このリポジトリには、Raspberry Pi 経由で UDP ビデオ ストリーム (netvid) を IBM 5153 互換モニターにレンダリングするためのコードと構成が含まれています。 RetroArch および Open Broadcaster Software では、ビデオ ストリームを提供するための粗雑なフックを使用できます。
ビデオ信号は、4 ビットのカラー (RGBI) と 2 つの同期信号を使用して、DPI (パラレル ディスプレイ インターフェイス) を通じて提供されます。 RPi ピクセル クロックは厳しいため、ピクセル クロックと関連するタイミングを 3 倍にする必要がありました。したがって、実際のフレームバッファ解像度は 1920x200 です。
このリポジトリには GPIO インターフェイスも含まれていますが、オシロスコープの分析でタイミングの問題 (主な原因と思われるのは USB ポーリング) が明らかになった後、完成することはありませんでした。
実際のアダプター ボードとタイミングは、Benjamin Gould による以前の作品に基づいています。電流を制限するためにいくつかの抵抗を追加しました。純粋に予防的です。私のモニターでは、中央に画像を表示するために垂直ポーチと水平ポーチを調整する必要もありました。
Raspberry Pi 3 に適した必要な config、cmdline、およびデバイス ツリー オーバーレイ ファイルがこのリポジトリに追加されました。
このアダプターは、完全な 16 色の CGA パレットを最大 640x200 の解像度でレンダリングできます。
時間的ディザリングは、パレットを 136 色まで拡張するためにサポートされています。上の画像は、2 つの 60 Hz 露出を組み合わせたものです。
ダウンサンプル アプリケーションは、16 ビット/32 ビット RGB ビデオ ストリーム (RetroArch/OBS によって提供される) を CGA 互換の 4 ビット ビデオ ストリームに変換するために必要な処理を提供します。最近傍カラー ダウンサンプリング (従来の CGA/EGA 出力のレンダリング用)、時間ディザリングおよびベイヤー ディザリング、ローカル コントラスト強調、および黒レベル調整をサポートします。
コマンドライン:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm nearest
コマンドライン:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,2
コマンドライン:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,2 --local-contrast-gain .25 --local-contrast-stddev 32
ローカル コントラスト強調では、画像のさまざまな部分の明るさの範囲を最大化しようとします。これは、IBM5153 のように、グラデーションが非常に少ないが範囲が広いパレットに限定されている場合に便利です。ビデオ入力が漫画などの大きな均一領域で構成されていない場合に適しています。
コマンドライン:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,2 --local-contrast-gain .25 --local-contrast-stddev 32 --temporal-dither client --staggered-temporal-dithering
フレームごとにピクセルの色を切り替えると、より多くの色が表示されますが、ちらつきが発生します。
コマンドライン:
./downsampling/main --recv 0:<input-port> --send <output-host>:<output-port> --algorithm bayer --bayer 2,4 --local-contrast-gain .25 --local-contrast-stddev 32 --temporal-dither client --staggered-temporal-dithering
この例では、ピクセル アスペクト比に対応するために 640x200 入力と非正方形ベイヤー パターンを使用します。