基本的に、マイクロコントローラーはなく、ラズベリーパイでも十分に高速ではありません。ラズベリーパイには、HDMI出力を生成するオンボードGPUがあります。それ以外に、raspberry piのI / O機能は非常に制限されています。HDMI以外の最高帯域幅インターフェイスはUSBです。HDMI変換プロジェクトの多くでは、奇妙な形式の別のビデオストリームを取り込み、それをHDMI経由で標準のHDTVに送信できるものに作り直します。これには、ビデオ信号を読み込むカスタムインターフェイスロジック、再フォーマットする信号処理ロジック、HDMI TMDSエンコードロジック、HDMIポートを実際に駆動する高速シリアライザーが必要です。
ストリーミング、非圧縮、高解像度ビデオを使用するには、大量のデータを処理する必要がありますが、これは汎用CPUでは実現不可能です。1秒あたり30フレームの1080pビデオ信号には、1秒あたり約6,200万ピクセルがあります。raspberry piは700 MHzで実行されるため、ピクセルあたり11命令あります。そして、それは奇数のビデオ形式でリアルタイムに読み込み、それを再スケーリングするなどの11の指示です。不可能です。期間。
FPGAでは、クロックサイクルごとに1つ以上のピクセルを処理できる長い処理パイプラインを生成し、非常に決定的な方法で(割り込みやタスクの切り替えなしで)処理できるため、ピクセルデータをHDMIで送信する準備ができます正確なタイミングで。あらゆる種類のオペレーティングシステムを実行している汎用CPUで広範囲に作業している場合、ミリ秒レベルで正確なタイミングを取得することは多かれ少なかれ実行可能ですが、マイクロ秒レベルではほとんど不可能です。HDMIの場合、ナノ秒スケールの精度が必要です。汎用CPUでは実行できません。また、neo geo向けのHDMIオーディオ/ビデオプロジェクトもご覧ください。これは、ビデオを再スケーリングするだけでなく、オーディオをリサンプリングしてHDMIビデオストリームに挿入する必要があります。
そして、これはあなたが持っているどんな入力データ形式でも読むのに必要なカスタムロジックをまだ考慮していません。これを解釈するには、カスタムハードウェアが必要です。ソフトウェアは、十分に高速でも確定的でもありません。たとえば、何らかのUSBベースのストリームに再フォーマットできるかもしれませんが、とにかくカスタムデジタルロジックが必要になるため、HDMIを直接出力することもできます。
これらすべてを実装するには、デジタルロジックが実際に唯一の実行可能なソリューションです。また、デジタルロジックを実行している場合、FPGAが唯一の実現可能なソリューションです。個別の7400ロジックとASICには速すぎて複雑すぎるため、ASICは数桁高価です。
もう1つの必須コンポーネントは、ケーブルを介して送信されるパラレルシリアルデータストリームを生成するための実際の高速シリアライザーと差動ドライバーです。汎用CPUから1秒あたり1ギガビット程度のシリアルデータをビットバンすることはできません。これには専用のハードウェアが必要です。raspberry piにはこれを行うオンボードGPUがありますが、文書化されていることは言うまでもなく、GPUができることに関しては制限されています。ほとんどのFPGAには、少なくとも、低解像度ビデオをサポートするのに十分な差動ドライバーとDDRフリップフロップが含まれています。また、フルHDストリームを生成するために必要なシリアライザー(ザイリンクスOSERDESブロック)も含むFPGAがかなりあります。シリアルストリームが「ベースバンド」ではないことを忘れないでください 実際のデータはフレーミング情報とともに逐語的に送信される通常のシリアルポートのように、データは実際にTMDS(遷移最小差動信号)でエンコードされ、特定の電気的特性を信号に与えます。これを実装するには、実際の高速シリアライザーに加えて、少しのロジックが必要です。これはすべて、ASICまたはFPGAのいずれかの純粋なデジタルロジック(エンコードはとにかく-シリアライザーはほぼアナログ、または少なくとも混合信号)で行うのは比較的簡単です。
実際には、システムのどの部分をソフトウェアで実装でき、どの部分がハードウェアを必要とするか、市販の専用チップ、FPGA、カスタムのいずれかの形で把握することは、デジタル/組み込みシステム全体の設計プロセスの非常に重要な部分ですASIC、ハードIPまたはハードIP(HDL、ネットリスト、GDSII)など。この場合は明確です。ビデオ信号の生成には、汎用CPUと組み合わせたGPU、統合ハードまたはソフトCPUコアまたは外部CPUとのペア、またはより特殊なもの。
編集:fpga4funサイトとneo geoビデオプロジェクトの両方がフルHDではなく640x480で実行されることに気付きました。ただし、操作が非常に簡単になりますが、実際にはこれは行われません。最小ピクセルクロックは25 MHzで、ビットクロックは250 MHzです。つまり、FPGAはHDMIの送信にシリアライザーを実際に必要とせず、DDRフリップフロップのみを必要とします。ただし、これでもビデオデータの読み取りの問題は軽減されません。ハードウェアの支援なしでラズベリーパイでそれをしたい場合は、25 MHzでGPIOから連続的に読み取る必要があります。これは、175命令ごとに1回読み取られます。可能性の領域に入りますが、その作業を行う唯一の方法は、ハンドコーディングされたアセンブリを使用したベアメタル(Linuxなし)上です。