マイコン工作実験日記

Microcontroller を用いての工作、実験記録

オフィシャルパートナー

2024-07-14 17:44:31 | Weblog

Githubでlvglのプルリクを見ていたら、#6487 としてNemaGFXでの描画サポートの追加というのが出ていました。調べてみたら、NegaGFXというのは Think SilliconのGPUの API のようで、どうやらSTM32でNeoChromとかNeoChrom VGとか呼ばれているGPU機能は Think Silliconの製品を採用したもののようです。

近いうちにNeoChromがlvgl でも使えるようになることが期待できます。

そう思っていたら、いつの間にか LVGLのオフィシャルパートナーにSTのロゴが加わっていることに気づきました。正式発表も近いかな。

でも、NeoChromってNucleoボードに搭載されているMCUではサポートされていないんですよね。やっぱ、DMA2Dのサポートも復活して欲しいところです。

 


A2DP sink機能の追加 -- その2

2024-07-11 16:57:31 | DoomPlayer

曲名やアーティスト名が長い場合にスクロール表示が発生すると、表示の更新が遅くなってしまう原因を調べたところTTF(True Type Font)を使って表示しているために、その表示処理に時間がかかってしまっていることがわかりました。通常の埋め込みフォントであれば、描画の負荷が小さいのですが、TTFフォントを使うと展開と描画の負荷が重いようです。

ちょっと調べたところでは、LVGLのTiny TTF font engine では展開したビットマップイメージをキャッシュしているものの、Unicodeからglyph indexへの変換情報はキャッシュされていなかったために展開速度の低下を招いていたようです。ちょうど運良く、この問題を修正したPRが出ていてマージされたので、早速試してみました。確かに目で見てわかるほどにスクロール表示が改善されています。

TTFフォントを使った場合には文字のサイズを変更しても綺麗に表示されるのですが、A8フォーマットのビットマップに展開されているので、メモリと描画処理の負荷は重くなっていると思われます。フォントの描画処理をDMA2Dを使うように最適化すれば、もう少し早くできるかもしれません。