YUVカラー エンコーディング フォーマットの作業に何十夜も眠れぬ夜を費やした後、この注目すべきフォーマットに関する情報がいかに少ないかに気付きました。しかし、P2P ビデオ ストリーミングや AI によるビデオ ストリームの処理に携わる人にとっては、このフォーマットは非常に役立ちます。
一見すると、 RGBとYUV は単に色を表現する方法が異なるだけのように思えるかもしれません。しかし、この違いの裏には、利便性と効率性、正確性とパフォーマンス、完璧な認識と目に見える損失のない圧縮といった、絶え間ない争いが存在します。カメラ、画面、ほとんどのニューラル ネットワークが RGB で動作していることを考えると、 RGBが色空間の王者だと考える人もいるかもしれません。しかし、ビデオのストリーミングとエンコードの世界では、YUV がリードしています。その裏には、遅延なくビデオを視聴し、ギガバイト単位のデータを節約し、リアルタイム処理を高速化する一連の複雑なトレードオフが隠されています。
しかし、これら 2 つの世界を橋渡ししたい場合はどうすればよいでしょうか。RGB でトレーニングされた AI モデルは、YUV のビデオ ストリームをどのように処理するのでしょうか。コーデックが RGB での作業に消極的なのはなぜでしょうか。また、これらの形式の間で完璧なバランスを実現することは可能でしょうか。ここでは、RGB と YUV が異なる体重階級の 2 人のボクサーのように、ビデオ ストリーミングと AI テクノロジーの同じリングで対戦しなければならない理由について詳しく説明します。
RGBとRGBA形式は非常にわかりやすく、コンピュータ グラフィックスで広く使用されているため、ここでは基本について深く掘り下げません。簡単に言うと、コンピュータが画像をレンダリングするときは、赤 (R) 、緑 (G) 、青 (B)の 3 つのチャネルで動作します。ほとんどの画面はこのように機能します。
RGBA は透明度を制御するアルファ (A)という追加のチャンネルを追加し、Web グラフィックやデジタル デザインに特に役立ちます。RGBは歪みなく色を正確に表現しますが、非常に大きな欠点があります。それは、あまりにも多くのスペースを占有することです。たとえば、 RGBA形式 (チャンネルごとに 1 バイトを使用) で解像度1920 × 1080
の画像は、 1920×1080×4 = 8294400 bytes ≈ 8.2 MB
容量を占有します。
JPEG などの圧縮形式はファイル サイズを縮小しますが、P2P ビデオ ストリーミングや、オブジェクト認識、キー ポイント検出、セグメンテーションなどのクライアント マシンでの AI リアルタイム処理の世界では、これは実行可能なオプションではありません。圧縮アーティファクトを導入したり、重要な詳細を失ったりすることなく、すべてのフレームをリアルタイムで送信して分析する必要があります。ここでYUVが役立ち、品質、効率、パフォーマンスのバランスをとるよりスマートなアプローチを提供します。
色情報を直接保存する RGB とは異なり、 YUV は画像を輝度(Y)と彩度(U と V)のコンポーネントに分離します。このアプローチにより、品質を大幅に損なうことなく、効率的なデータ圧縮が可能になります。
Y (輝度、明度) – ピクセルの明るさを表し、ピクセルの明るさや暗さを決定します。基本的に、これは画像のグレースケール (白黒) バージョンであり、すべての形状と詳細が保持されます。
U と V (彩度、色) – 人間の目は色の正確さよりも明るさをより鮮明に認識するため、色情報を保存しますが、精度は低くなります。簡単に言うと、これらのチャネルは、明るさを異なる色相に向けて 2 次元的に「シフト」する働きをします。
この分離こそが、YUV がビデオ圧縮、ストリーミング、AI ベースのビデオ処理に非常に効果的である理由の鍵です。
YUVのあまり目立たないが、非常に効果的な利点の1つは、そのチャネルの1つ(Y)が色を保存することを意図していないことです。代わりに、それは正確に色を記述します。
人間の目は、網膜にある 2 種類の光受容体を使って画像を認識します。
桿体細胞(約 1 億 2000 万個) – 明るさとコントラストに敏感ですが、色を検出することはできません。この細胞により、暗い場所でも形や詳細を見ることができます。
錐体細胞(約 600 万個) – 色覚を司りますが、その数は 20 分の 1 です。良好な照明条件でのみ機能し、赤、緑、青(当然ながらRGB )の 3 種類があります。
この受容体の不均衡により、私たちの脳は色よりも形を優先します。明るさやコントラストが歪んでいると、私たちはすぐにそれに気づきます。しかし、わずかな色の変化は気づかれないことがよくあります。
これがYUVの核となる原理です
つまり、3 つのチャネルすべてが同等に重要なRGBとは異なり、YUV は人間の知覚に基づいてチャネルを異なる方法で扱います。色データ(U と V)はそれほど重要ではないため、知覚できる品質を損なうことなく、送信されるデータの量を減らすことができます。
これがまさにクロマ サブサンプリング メカニズムの仕組みです。つまり、明るさをそのまま維持しながら色情報を選択的に圧縮することでビデオ エンコーディングを最適化します。
クロマ サブサンプリングは、画像内のカラー データの量を削減する手法です。YUV では、 RGBのようにピクセルごとにカラーを保存するのではなく、明るさ (形状) をそのまま維持しながらカラー チャネルの解像度を下げます。
クロマ サブサンプリングには業界標準がいくつかあります。
4:2:2サブサンプリング– 各ピクセルのペアは色情報を共有します。目にはほとんど違いがわかりませんが、ファイル サイズは 33% 削減されます。この方法はほとんど使用されません。
4:2:0 サブサンプリング- 4 つのピクセルのうち 1 つのピクセルのみに色を保存し、最大限の圧縮を実現します。
なぜ 4:2:0 が主要標準なのでしょうか?
このフォーマットは、画質を著しく低下させることなくデータサイズを半分に削減します。そのため、ほぼすべてのストリーミング サービスやビデオ プラットフォームで標準として採用されています。たとえば、Microsoft Teams は、品質と帯域幅の効率性のバランスが最も良い4:2:0でビデオを送信します。
この設定では、1 つのカラー値が 4 つのピクセルを表し、明るさ (Y) は変わらないため、拡大しても人間の目には違いがわかりません。
1920×1080×1.5 = 3110400 bytes ≈ 3.1 MB
、 RGBAと比較してデータ サイズが 2 倍以上削減されますが、品質に目に見える損失はありません。
下の画像は、 4:2:0クロマ サブサンプリングを使用した場合の最終フレーム/画像の様子を示しています。1 つのU が4 つのY を表すことに注意してください。メモリが 4 倍になります。
今日の世界では、リアルタイムビデオ処理のための AI アプリケーションが急速に拡大しています。ニューラル ネットワークは、監視カメラの分析やストリーム品質の向上だけでなく、生成効果、リアルタイムの外観変更、オブジェクト認識、モーション トラッキングなどのより複雑なタスクにも使用されます。
たとえば、私たちはビデオチャットで人の顔に口紅とアイシャドウを塗る仮想メイクアップ システムを開発しました。これは、できるだけリアルに行われます。このようなタスクでは、形状と動きの精度が非常に重要で、色情報は二次的です。また、モデルをトレーニングしてグレースケール画像を理解させ、パフォーマンスを向上させることもできます。同時に、 YUV 4:2:0を入力として受け取ると、GPU でグレースケール画像を取得する方がはるかに効率的です。これは、結果として得られるグレースケール チャネルを取得するには、画像の最初の部分を切り取るだけでよいためです。
色よりも形が重要
AI モデルは、他の多くのコンピューター ビジョン システムと同様に、正確な色再現よりも、主にオブジェクトの構造、形状、エッジに重点を置いています。これは、顔認識、ポーズ追跡、異常検出、AR 効果に当てはまります。たとえば、モーション認識システムでは、体のピクセルの輪郭は肌の色よりもはるかに重要です。
パフォーマンスは重要
リアルタイム AI の場合、スムーズなフレーム レート ( 50–60 FPS
) を維持するために、各フレームを20 ms
未満で処理する必要があります。ニューラル ネットワークがフレームを受信して処理する速度が速いほど、アプリケーションはより自然で滑らかに実行されます。
1920×1080
RGBA フレームは8.2 MB
あり、メモリと処理能力に大きな負担がかかります。O(1)
の不要なデータを削減し、目に見える品質の低下なしに計算リソースを節約します。
最適化されたGPU処理
最新の GPU は YUV 処理に高度に最適化されており、画像を RGB に変換せずに操作できます。これにより、不要な計算がなくなり、処理速度が向上します。
帯域幅とメモリの節約
データ サイズの削減は、リアルタイムのビデオ伝送と処理にとって重要です。
正直に言うと、RGB は当然の選択のように思えます。カメラ、画面、コンピューター グラフィックスの標準です。しかし、現実世界のビデオ ストリーミングや AI 統合となると、 RGB は鈍重な恐竜と化します。そこでYUV が登場し、品質、速度、データ効率の完璧なバランスを実現します。その巧妙なストレージ システム (明るさと圧縮された色を分離) により、RGBでは計算上の悪夢となるようなことが可能になります。
RGBは素晴らしいですが、リアルタイム パフォーマンスや AI が関係する分野ではそうではありません。ビデオ ストリーミングでは、 YUVが真の主力であり、長年主要なソリューションを支えてきました。
したがって、RGB が王様だとまだ思っているなら、考え直す時期です。ビデオ形式は長い間、独自のルールに従ってきました。