私が60fps E Inkモニター Modos Flowを作った方法
(youtu.be)- 13.3インチのE Inkモニターは300ppiで毎秒60回更新し、4年にわたる独自コントローラー・ハードウェア・ファームウェア開発を経て実製品の形になった
- 既存のE Inkコントローラーは約100msの全体更新待ちのため、速度とコントラストをトレードオフするが、ピクセル単位更新方式は変化したピクセルを即座に更新する
- ピクセル単位更新では、13インチの白黒表示で必要な帯域幅が20MB/sから540MB/sへ増え、DDR3とDisplayPortが必要になった
- グレースケールは非点滅方式では実現できないため、Bayer dithering、blue noise、error diffusionとハイブリッド表示モードを組み合わせた
- 最終成果物は、タッチスクリーン、フロントライト、カラーオプション、複数の表示モード、オープンソースのハードウェア・FPGAゲートウェア・ファームウェアを備えた高リフレッシュレートE Inkモニターとなった
出発点: E InkノートPCから独自コントローラーへ
- 60fpsのE Inkモニターは300ppiで動作し、E Inkは速度で知られるディスプレイではないにもかかわらず毎秒60回更新する
- 開発の出発点はE InkノートPCで、当時E InkをサポートするSoCは電子書籍リーダー向けに設計されており、低消費電力・低速プロセッサ・制限されたインターフェースに縛られていた
- ノートPCを作るにはSoCと画面を分離する必要があり、その間にFPGAベースのドライバーチップを入れて独自のE Inkコントローラーを作る構成が必要だった
- 初期のノートPC設計には大型タッチバーのように動作するバー型LCDがあり、一部の作業には高速ディスプレイが必要で、E Inkは遅くてもよいという前提があった
- 60fpsは当初の主目標ではなく、ノートPCとして十分に速ければよく、60fpsが無理でも15fpsでも妥当な目標だった
ピクセル単位更新が生んだ速度と品質
- 既存のE Inkコントローラーは全体更新タイマーを使い、画面を更新するとき前の更新が終わるまで待つ
- 従来の更新には約100msかかるため、最悪の場合、新しい画像は処理される前から100ms待たされる
- タイマーを速く回せばフレームレートは上がるが、E Ink粒子が反応する時間が足りず、画像が洗い流されたように見える
- 従来方式はリフレッシュレートとコントラストの間に折衷を生み、一部のコントローラーは4〜16の領域を独立更新してこれを緩和する
- 領域ベースの緩和方式ではソフトウェアが領域を直接管理する必要があり、それでも限界が残る
- ピクセル単位更新方式では、すべてのピクセルを独立した更新領域のように扱い、何かが変わったピクセルは待たずに即座に更新を始める
- この方式により、高いフレームレートと高いコントラストを同時に得られ、従来の速度・品質のトレードオフがなくなる
- 欠点はメモリ帯域幅であり、13インチパネルで白黒画像を表示する場合、既存コントローラーは毎秒20MBで足りるが、この方式では毎秒540MBが必要になる
- 高い帯域幅要求のため、標準的なSDRAMではなくDDR3が必要で、USBではなくDisplayPortが必要になり、コストが増加する
- 読書用途には不要な構成だが、モニター用途では大きな違いを生む
表示品質: ディザリングとハイブリッドグレースケール
- プロジェクトはノートPCより先に優れたモニターを作る方向へ変わり、その後数年にわたり余暇時間で進められた
- E Inkは非点滅方式のグレースケールを実現できないため、ディザリングが必須だった
- 実装したディザリングアルゴリズムはBayer dithering、blue noise、error diffusionの3つだった
- Bayer ditheringは高速だが目立つパターンが生じ、blue noiseはより良い見た目を作り、error diffusionは最も高品質だが高解像度への拡張が難しい
- ディザリングは機能するが真のグレースケールには及ばず、例外は点滅方式のグレースケールだった
- 既存モニターは遅い点滅モードを実装するか、グレースケールを完全に省く方式だった
- ハイブリッド方式では、画像が変化したとき高速な2値モードに切り替え、しばらく安定したらグレースケールで再レンダリングする
- この方式は読書には非常に向いていたが、ほかの用途にはあまり適さず、独自コントローラーのおかげでプリセットモードに縛られず用途に合わせて最適化できた
ハードウェア反復と製品化の過程
- 最初のプロトタイプはフルサイズのDisplayPortを使用し、その後DisplayPortを含むUSB Type-Cへ移行した
- 統合電源管理ICが生産終了となり、個別のDC-DCコンバーターへ切り替えなければならなかった
- 予期しないlatch-upイベントから画面を保護するため、基板に全体の電圧・電流モニタリングを追加した
- 各変更には新しいPCBリビジョンが必要で、各リビジョンが新たな学びにつながった
- 外注先から最初のケース設計が戻ってきたとき、机上のむき出しPCBではなく実際の製品のように見え始めた
- Hackaday Supercon、LatchUp、SupplyのTeardownイベントでデモを行い、人々はこの製品が実際に出てほしいと望んだ
- 技術は動作し、需要もあり、設計もあったため、最後のひと押しのために会社を辞めた
- 計画は数カ月集中して設計を磨き、製造し、出荷することだった
全面再設計、サプライヤー問題、最終機能
- 専業に切り替えた直後、E Inkがより高解像度でより良い仕様、しかも低価格の新パネルを発表した
- 新パネルはより良い製品につながる可能性があったが、高解像度化により高帯域幅デコーダIC、高帯域幅DDRメモリ、新しいFPGA、より大電流の電源供給が必要になった
- この変更は基板のほぼ全体を作り直すレベルで、少なくとも半年の遅延を生んだ
- 最終製品では、先に基板を設計してケースを合わせる方式から離れ、シャーシ・正確な寸法・マウントポイントなどフォームファクターを先に決めてから基板を合わせる方式へ変わった
- 新方式は全体設計をより最適化され一貫したものにしたが、もう一度大規模なリビジョンが必要だった
- 完全組み立て済みプロトタイプはDesign Shenzhenで披露されたが、ランダムなグリッチ、映像途切れ、初期化失敗のため、出荷するには不安定すぎた
- ビデオデコーダーチップの供給元はNDAとサービス契約があったにもかかわらず支援を拒否し、最初からドライバーコードも提供しなかった
- チップを使うためのソースコードを受け取るには追加費用を払う必要があったが、そのコードは動作せず、動くコードにはさらに多くの金額を要求された
- その後、別のサプライヤーへ切り替え、新しい供給元ははるかに協力的だったが、プロジェクト開始時点ではそのチップを入手できなかった
- その後タッチスクリーン対応を追加する際には、新しいタッチコントローラーの統合、ドライバー作成、キャリブレーション処理が必要だった
- ちらつきのないフロントライト、鮮明さに役立つフレームレートリミッター、電源接続がないときに消費電力を抑える低電力モード、そしてこれらの機能を制御するオンスクリーンディスプレイが追加された
- 各機能は一文で書くと単純に見えるが、正しく実装するには数週間かかり、締め切りは絶えず後ろへずれた
- 専業化後は会社勤めのときよりも長く働き、夜と週末の境目が曖昧になり、ゲームや自由時間は減った
- 自分で決めればすぐ実行でき、問題を解決すれば解決済みの状態を維持でき、機能実装のために他人を説得する必要もなかった
- 4年後、成果物は13.3インチ、最大60fps、非常に低いレイテンシー、複数の表示モード、タッチスクリーン、フロントライト、カラーオプションを備えたモニターになった
- ハードウェア設計、FPGAゲートウェア、ファームウェアはすべてオープンソースとして公開されており、自分で作ることもできる
1件のコメント
Lobste.rsのコメント
今年のFOSDEMでAlexに会ってこのデモを見たけど、かなり良さそうだった
まだ試作品でケースも完成前なので完全には確信できなかったけれど、可能性は大きそうで、次に電子インク製品を買うならたぶんmodos製になると思う
以前のCrowd Supplyキャンペーンでもらった 開発キット を持っているので、気になることがあれば聞いてくれていい
明るい日光の下でのコントラストがどうか、ソフトウェア面で問題に遭遇したことがないかも気になる
本当にすばらしいディスプレイだ。ノートPCやタブレットに入ったらよさそうだけど、小型の外付けディスプレイ単体としては使い道があるのかはよく分からない
「移動中はUSB Type-Cケーブル1本でFlowを最大40Hzで駆動でき、デスクでは追加の電源をつないでフルの60Hzリフレッシュレートを使える」という説明は少し変に聞こえる
消費電力の数値は見つけられなかったが、USB-Cケーブル1本で高級ノートPC全体にも給電できるのに、ディスプレイ1台がそれ以上食うとは思えない
AC/DC入力のあるデスクトップ用モニターなら60Wや100WのPDを出力できるが、自分のノートPCはPDを出力しない
PDでしか充電できないカメラを持っているが、ノートPCにはUSB-Cで普通につながる一方で、25Wや30Wほど必要なので充電はしてくれない
ただ、家にあるほかのポータブルモニターはノートPCのUSB-Cだけでも動く。電子インクはセルを消去するのに5Vより高い電圧が必要なので、60Hzではその昇圧のせいで消費電力が大きくなりすぎる可能性はありそうだ
これは少し信じがたい。自分の理解では、低フレームレートは基本的に ソフトウェアの限界 であって、ハードウェアの限界ではないように思えるのだが、なぜまだもっと広く普及していないのだろう?
顧客が必要としていない、より高価なコントローラーを載せる理由も弱いし、電子インクをより強く駆動すると寿命が縮んで価値提案も変わってしまう
電子インクディスプレイは特許コストと厄介な機械設計のため、もともと高価な部類だ。Toyota Corollaを時速150マイルで走らせることはできるかもしれないが、快適性のための内部要素を変え、いくつかの安全装置を外さなければならず、可動部品は1周しただけで壊れるかもしれないのと似ている
結局のところ「すべてのハードウェアはアルゴリズムなのでソフトウェアから始まる」という言い方は正しいが、電子インクの場合、コントローラー市場はDVIやVGAコントローラーのように数十年かけて成熟した市場に追いつけていない
Alexの作業はオープンソースなので、そう遠くないうちにどこかの時点で大規模に再現される可能性はあると思う
高リフレッシュレート と 高コントラスト を備えた反射型画面への需要は明らかにありそうだ。なのに、なぜほとんどのアプローチが「普通の電子ペーパーを何とか使うか改造しよう」という方向なのか気になる
メーカーがSharpのMemory Display系のような方式で、6インチ超の反射型LCDパネルを作らないのはなぜだろう?
ついでに言えば、電子業界には購入可能な電気湿潤ディスプレイも少し作ってほしい