表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

8/21

8.picocalcでjpegデータを表示したい

しばらく前の事、ESP32と言う液晶(320x240)付きのマイコンでjpgデータを表示しようと苦戦していた頃。

高速と話題の bitbank2/JPEGDEC というデコーダをmicropythonに実装して試してみた。

結果としてはESP32のROMの速度が足を引っ張って動画っぽく表示するのは無理だったんで、監視カメラの画像をWiFiで飛ばして表示するようになった。


せっかく移植したんだから、今回はpico 向けにして、ついでに任意で import して使える mpy ファイルにしよう。

と思って修正始めたんだが大ハマリ。

picoが使ってるCPUは Cortex-M0 というんだが、除算機能を持っていない。

C言語で除算を使うコードを書くと今どきのCPUは除算命令に置き換えるが、picoだと関数呼び出しに置き換える。

micropython本体に組み込むドライバだったら、標準ライブラリにその関数があるので問題にならない。

ただ mpy ファイルにする際は、外部ライブラリが使えない仕様なので、自前で用意しないとならない。

とはいえ、自作は面倒なので、google さんに相談して、なんとかソースコードを発見。

いくつかの関数はコンパイルできたんだが、肝心の除算だけはエラーになる。


結局、問題の箇所を探すため-S オプションを付けてコンパイルして、アセンブラソースから除算の箇所を検索。

除算を自前の関数(mydiv)で置き替えてという力業で解決。

実に美しくない。

それでも 320x200の画像が 50ms 程度で展開できたのでまぁOK。(pico2 だからこれで済んだがpicoだと100ms以上かかりそう)


ただ、SDカードからの読み込みがとにかく遅くて足を引っ張ってる。100kB/s ぐらいしか出てない。

12kBのデータの読み込みに120msなんてかかるんじゃ動画にならない。


次の課題は SD カードなのである。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ