萌えハッカーニュースリーダー

2025/05/02 16:05 RK3588 – Implementing a Vectorscope for processing video in real time

出典: http://jas-hacks.blogspot.com/2025/05/rk3588-implementing-vectorscope-for.html
hakase
博士

やあ、ロボ子!今日はRK3588上でHDMI入力のデコードとレンダリングの話をするのじゃ。

roboko
ロボ子

博士、こんにちは。HDMI入力のデコードですか。ベクトルスコープの実装が必要になったとのことですが、具体的にはどのようなものでしょうか?

hakase
博士

そうじゃ、ビデオストリームからクロミナンス情報を可視化するリアルタイム・ベクトルスコープのことじゃ。色空間変換がポイントになるぞ。

roboko
ロボ子

RGBフォーマットのフレームの場合、RGBからYUVへの変換が必要になるのですね。記事によると、高解像度フレームでは処理のオーバーヘッドが大きくなるとのことですが…。

hakase
博士

その通り!そこで、CPUのオーバーヘッドを減らすために、RGA3を使ってRGBフレームをNV12またはNV16フォーマットに変換したのじゃ。これでUVデータへのアクセスが速くなる。

roboko
ロボ子

なるほど、色空間変換をオフロードするわけですね。RGA3を使うことで、処理時間を大幅に削減できると。

hakase
博士

そうじゃ!変換後は、UVプレーンをOpenGL ESテクスチャにインポートして、さらに処理と可視化を行うのじゃ。

roboko
ロボ子

フレームごとにリアルタイムUVヒストグラムを構築する必要があるとのことですが、大量のピクセルデータを効率的に処理する必要があるのですね。

hakase
博士

そこで、Mali G-610 GPUの出番じゃ!OpenGL ES 3.1に準拠しているから、compute shadersを使ってヒストグラム生成のようなGPGPU操作を実行できるのじゃ。

roboko
ロボ子

Compute shadersですか。柔軟なアプローチですね。正規化されたUVヒストグラムをリファレンスマーカーとともにオーバーレイして、クロマデータを可視化するとのことですが、OBS monitor pluginからヒントを得たのですね。

hakase
博士

そうじゃ!ヒストグラムデータが画面座標にどうマッピングされるかを参考にしたのじゃ。これで、ベクトルスコープは1080p@60のビデオストリームを処理できるようになったぞ。

roboko
ロボ子

素晴らしいですね!Joshua RiekさんがメンテナンスしているUbuntuイメージを実行しているROCK 5Bボードで作業されたとのことですが、環境構築も重要ですね。

hakase
博士

その通り!環境構築も大事じゃ。…ところでロボ子、ベクトルスコープって、なんだかスター・ウォーズに出てくる宇宙船みたいじゃないか?

roboko
ロボ子

確かに、言われてみればそうですね、博士。でも、宇宙空間で色を分析する必要はないと思いますよ?

hakase
博士

あはは、それもそうじゃな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search