RGB フレーム (ARGB などのピクセル形式) を YUV (YUV420 など) に変換できるサンプル GLSL フラグメント シェーダー コードを探しています。
サイズが 1920x1080 の RGB フレームを想像してください。フラグメント シェーダーを使用して YUV フレームに変換するのが好きです。
コンパイルして Ubuntu ボックスで実行できるコードを教えてください。
RGB フレーム (ARGB などのピクセル形式) を YUV (YUV420 など) に変換できるサンプル GLSL フラグメント シェーダー コードを探しています。
サイズが 1920x1080 の RGB フレームを想像してください。フラグメント シェーダーを使用して YUV フレームに変換するのが好きです。
コンパイルして Ubuntu ボックスで実行できるコードを教えてください。
まず、質問の表現が不十分であることを知っておく必要があります。誰もあなたのサンプル コードを書くつもりはありません。RGB から YUV に変換するコードの検索エンジン (またはこのサイトを検索) を使用できます。
ここで探しているものと同様の回答を書きました。RGB から YIQ に変換し、色相をシフトして元に戻します。必要な場合は、YIQ の代わりに Y'CbCr マトリックスを色変換に使用できます。
ただし、4:2:0 にはダウンコンバートされません。ただし、それは簡単に実行できるはずです。Y'CbCr 形式になったら、必要に応じて適切なチャネルをダウンサンプリングできます。エイリアシング アーティファクトを避けるために、最初にこれらのチャンネルでローパス フィルターを実行することをお勧めします。
私は Linux を扱っていないので、Ubuntu ではテストしていません。幸運を。
このリンクには、計算シェーダー GLSL を使用した YUV 4:2:2 v210 から RGB への実装が含まれています。YUV 4:2:2 v210 --> RGB GLSL ソース コード