2

私が扱っているシナリオは、実際には次のとおりです。アルファ チャネルを維持しながら、OpenGL によって生成された画面を取得し、HDMI 経由で FPGA コンポーネントに送信する必要があります。しかし、現在 HDMI 経由で送信されているデータは RGB (アルファ チャネルなしの 24 ビット) のみであるため、何らかの形でこのポートを介してアルファ ビットを強制的に送信する方法が必要です。

画像を参照してください: http://i.imgur.com/hhlcbb9.jpg

私が考えることができる1つの解決策は、RGBバッファ内でアルファチャンネルを混合しながら、スクリーンバッファをRGBAモードからRGBに変換することです。

例えば:

The original buffer: [R G B A][R G B A][R G B A]
The output i want: [R G B][A R G][B A R][G B A] 

ポイントは、すべてのピクセルを通過する必要がないことです。しかし、OpenGL やその他のテクノロジ (VideoCore カーネル?) を使用してそれが可能かどうかはわかりません。

4

2 に答える 2

1

ビデオ カードの別の RGB または HDMI ビデオ出力を介して、opengl でアルファ チャネルを個別に送信できる場合があります。したがって、PC は 1 つのケーブルで RGB を出力し、もう 1 つのケーブルでアルファを出力します。アルファはおそらくグレースケールに変換して、24 ビットのままにする必要があります。次に、fpga のキーとなる信号を選択します。fpgaがクロマキーをサポートしていると思います。

私は以前に似たようなことをしましたが、SDI 出力をサポートする特定のビデオ カードを使用し、RGB とアルファを別々のビデオ チャネル (ケーブル) に分割し、ビジョン ミキサーがキーイングを行う Brainstorm というプログラムを使用しました。

しかし今日、私は最初に PC で複数のビデオ チャンネルをミキシングし、次に最終的にミキシングされたビデオを RTMP ストリーミング サーバーまたは DVI から SDI へのスキャン コンバーターに直接出力する新しいソリューションを作成しました。

于 2015-11-19T11:43:59.923 に答える