書き換えが遅いはずの電子ペーパーで、動画が20fpsでなめらかに再生される——。そんなデモを、イギリスの開発者Tony Westonさんが公開しています。使ったのは71ドルの市販開発ボード1枚だけ。高速化の定番だったFPGA(自由に回路を組める特別なチップ)も、パソコンからの支援もなしで、安価なマイコンESP32-S3が単独で画面を駆動しています。成果は「EPD_Painter」というオープンソースのArduinoライブラリとして公開されていて、同じボードを持っていれば誰でも試せます。

電子ペーパーが遅い理由
電子ペーパー(E Ink)は、電子書籍リーダーでおなじみの「紙のような画面」です。画面の中には黒と白に帯電した細かい顔料の粒が入っていて、電圧をかけると粒がゆっくり移動し、白黒の模様を作ります。液晶やOLEDのように光のオンオフを切り替えるのではなく、物理的に粒を動かすので、どうしても書き換えに時間がかかります。
しかも1枚の絵を出すのに、画面全体を1回なぞるだけでは足りません。粒は電圧がかかっている間だけ少しずつ動くため、今回のパネルでは「この画素は黒く」「この画素は白く」という指示を、画面全体に7回繰り返し流し込んでようやく1枚の絵になります。ふつうのマイコンでこれを律儀にやると、出せてもせいぜい毎秒数コマ。動画レベルの速度を出すには、これまで高性能なFPGAで駆動信号を作り込むのが定番でした。
「変わったところにしか払わない」という設計
Westonさんのドライバーがやっているのは、乱暴に言えば徹底したサボりです。ドライバーは「いまパネルに物理的に表示されている内容」の写しをメモリ上に持っておき、新しいフレームが来たら写しと見比べて、変わった画素だけを拾い出します。黒くする画素のリストと白くする画素のリストを作り、どの行に作業があるかの目印も添える。変化のない行は、7回の書き込みパスのどれでも一切読まれず、処理されません。画面の大半が静止している動画なら、動いている部分のぶんしかコストを払わない、という理屈です。
この比較処理を支えているのが、ESP32-S3にひっそり載っているベクトル演算ユニットです。128ビットのレジスタで64画素ぶんをひとまとめに扱えるため、画面全体(約52万画素)の差分検出が6.4ミリ秒で終わります。さらに、画素の値を駆動信号に変換する対応表も、メモリから毎回引くのではなくレジスタに読み込んだまま使い回す作りにして、画素あたりのメモリ参照をゼロにしています。データの送出はDMA(CPUを介さずにデータを転送する仕組み)に任せ、次の行を変換している裏で前の行がパネルに流れていく。どの工程も「同じデータに二度触らない」ことを徹底した結果が、20fpsという数字です。
フラットベッドスキャナーが計測器
この開発で面白いのが、家庭用のフラットベッドスキャナーを計測器として使っている点です。電子ペーパーの表示を人間の目で見て判断すると、どうしても印象に引きずられます。そこでWestonさんは、パネルを画面ごとスキャナーに伏せて300dpiで読み取り、表示結果を数値で測るという手を取りました。グレーの濃さを調整するキャリブレーションも、開発途中で出た「黒が薄くしか出ない」という不具合の原因究明も、このスキャナーでの実測が決め手になっています。理屈で何日も悩むより、測ったら1枚の画像で決着がついた——と本人も書いています。
ちなみにこのプロジェクト、AIアシスタントのClaudeをペアプログラマーとして開発したことも明記されています。ハードウェアの勘どころは人間、アセンブリコードの実装や検証用プローブの作成はAI、そして両者の思い込みをスキャナーの実測が正す、という役割分担だったそうです。
対応パネルと留意点
いくつか押さえておきたい点があります。
まず、これはすべての電子ペーパーで再現できる話ではありません。対応しているのは、コントローラーを持たない「素のガラス」タイプの960×540パネル(4階調グレースケール)で、具体的にはLilyGo T5 E-Paper S3 ProやM5PaperS3といったESP32-S3搭載ボードです。電子書籍リーダーによくある、専用コントローラー越しに命令を送るタイプのパネルには、この方法はそのまま使えません。
また、20fpsが出るのは画質を速度に振った「高速モード」でのことです。パス間の待ち時間を削って速度を稼いでいるので、じっくり表示する高画質モードとはトレードオフの関係にあります。カラー表示でもありません。それでも、白黒4階調の動画がコントローラーなしのパネルで安定して20fps出るというのは、「電子ペーパーは遅い」という常識からすると十分に驚きのある結果です。
FPGAを使えば電子ペーパーで動画が出せること自体は、以前から実証されていました。マイコンで素のパネルを駆動するライブラリ(EPDiyやFastEPD)も先行しています。今回の成果はその交差点——誰でも買えるボードで、読めるコードで、動画レートを出したところ——にあります。パネル自体は最初からこの速度を出せる素質があって、無駄な仕事をしないドライバーを待っていただけだった、というのが本人の総括です。
出典
Bad Apple at 20 fps on a $71 e-paper display(Tony Weston/製作者本人による技術解説)


コメント