先日、BMP画像をメモリへあらかじめ読み込んで置いて、それをパラパラマンガのように電子ペーパーにアニメーションすることでできました。
今回は、SDカードから毎フレーム読みだして再生しようと思います。しかも、音声もつけます。
画像データを加工しておく
画像の圧縮
電子ペーパーの解像度は800x600 です。画素あたり白黒1bitとすると60kBあります。SDカードからのデータの読み出しはそれほど速くないので、解像度をたて半分に縮小して、表示の時に伸張することで、データ量を半分にしました。
電子ペーパは、5インチのサイズなので、解像度が半分になっても、荒さはそれほど気になりません。
また、BMPファイルではなく、電子ペーパーへ転送するデータそのものにして、BMPから電子ペーパーの表示データする処理を行わないようにし、少し高速化しました。
画像に音声を載せる
画像と音声ファイルを別にしてしまうと、アクセスが分散してしまい、処理の速度が低下すると考え、音声を画像の不要な領域(黒い部分)に載せることにしました。
再生
画像はディザリングした白黒2階調ですが、それなりにグレースケールに見えます。音は、ESP32のマルチコアを使って別CPUで処理し、DA出力より出力しています。
元の映像は、こちらの「The Daily Dweebs」です。
こっちを見てから電子ペーパーの動画を見ると、「あー 確かにそーかもね」ってなりそうですね。
長編も可能
SDカードから読み出しながら再生しているので、前回のメモリから再生するのと違って、SDカードの容量いっぱいいっぱいまでデータを保存できます。何10GBも保存できるので、かなり長い動画も再生できそうです。
しかしながら、電子ペーパーは残像が残ってしまうので、動画向きではなさそうですね。
コメント