ベクターグラフィックス、ビットマップ、ドットマトリックス、RGB、YUV

学習の過程でも開発の過程でも、ビットマップの概念、ドットマトリックス、rgb、yuv、およびYUVデータのさまざまなストレージ形式との関係について混乱しているので、この記事ではこれらの概念を要約します。

1.ベクトル図

ベクトルグラフィックスとビットマップはどちらも画像の表現です。ベクトルグラフィックスは、口の中でグラフィックスを説明する方法として理解できます。例:図A:半径10cmの緑色の実線の円。重要なポイントは次のとおりです。緑、半径10cm、円の中心の位置、この情報は画像Aを記録するために数バイトしか必要としないため、ベクトル図は小さなスペースを占めます。もう1つの特徴は、ズーム後に変形しないことです。で、どんなに大きくてもその特性は固定されています。ベクターグラフィックスのデメリットも明らかで、複雑なシーンを表現するのは難しい。ベクトル図のズームインと非変形の機能に基づいて、重要なアプリケーションシナリオは電子地図です。

2.ビットマップビットマップ
ビットマップまたはピクセルマップとも呼ばれます。コンピューター画面上の画像は、画面上の発光ポイント(つまりピクセル)で構成されます。各ポイントはバイナリデータを使用して色と明るさを記述します。これらのポイントは離散的です。格子に似ています。複数のピクセルの色の組み合わせは、ビットマップと呼ばれる画像を形成します。
ビットマップを一定の限界まで拡大すると、小さな正方形で構成されていることがわかります。これらの小さな正方形はピクセルと呼ばれ、ピクセルは画像内の最小の画像要素です。ビットマップ画像を処理する場合、編集されるのはオブジェクトや形状ではなくピクセルです。サイズと品質は画像のピクセル数によって異なります。1平方インチあたりのピクセル数が多いほど、画像と色が鮮明になります。ブレンドもスムーズになります。 。
コンピュータの記憶ビット画像は、実際には画像の各ピクセルの位置と色のデータを情報まで保存するため、画像が鮮明であるほど、ピクセル数が多くなり、対応する記憶容量が大きくなります。

ビットマップのピクセルには、特定の位置と色の値が割り当てられます。各ピクセルの色情報は、RGBの組み合わせまたはグレー値で表されます。ビット深度に応じて、ビットマップは1、4、8、16、24、および32ビットの画像に分割できます。各ピクセルで使用される情報のビットが多いほど、使用可能な色が多くなり、色のパフォーマンスがよりリアルになり、対応するデータの量が多くなります。たとえば、ビット深度が1のピクセルビットマップには2つの可能な値(黒と白)しかないため、バイナリビットマップとも呼ばれます。ビット深度が8の画像には、28(256)個の可能な値があります。ビット深度が8のグレースケール画像には、256の可能なグレー値があります。[1]
1.ドットマトリックス
ビット深度が1のピクセルビットマップには、 2つの可能な値(黒と白)しかないため、バイナリビットマップとも呼ばれます。
2.RGB
ビットマップの各ピクセルはRGB形式で表現できます。RGBの3文字は、それぞれ赤、緑、青を表します。これらの3色は、3原色と呼ばれ、さまざまな比率で追加すると、さまざまな色を生成できます。
画像表示では、1280 * 720のサイズの画像は、1280 * 720ピクセルであることを意味します。各ピクセルのカラー表示はRGBコーディング方式を採用しており、RGBを異なる値にすると、異なる色が表示されます。
ここに画像の説明を挿入
RGB画像では、各ピクセルには赤、緑、青の3つの原色があり、それぞれが1バイトである8ビットを占め、次に1ピクセルも3バイトである24ビットを占めます。
1280 * 720サイズの画像は、1280 * 720 * 3/1024/1024 = 2.63MBのストレージスペースを占有します。
3. YUV
YUVカラーコーディングでは、明るさと彩度を使用してピクセルの色を指定します。その中で、Yは明るさ(ルミナンス、ルマ)を表し、UとVはクロミナンス(クロミナンス、クロマ)を表します。そして、彩度は色の2つの側面を定義します:色相と彩度。YUVカラーコーディングを使用して画像を表すと、次の
ここに画像の説明を挿入
ようになります。画像を表すRGBと同様に、各ピクセルにはY、U、およびVコンポーネントが含まれます。ただし、Y成分とUV成分は分離できます。UV成分がない場合は、完全な画像を表示できますが、白黒になります。YUV画像の場合、すべてのピクセルにY、U、Vの3つのコンポーネントを含める必要はありません。さまざまなサンプリング形式に応じて、各Yコンポーネントを独自のUVコンポーネントに対応させることも、複数のYコンポーネントを共有UVコンポーネントにすることもできます。

RGBからYUVへの変換

画像表示はRGBモデルで画像を表示し、YUVモデルは帯域幅を節約できるため、画像データの送信にはYUVモデルを使用します。そのため、画像収集時にRGBモデルをYUVモデルに変換し、表示時にYUVモデルをRGBモデルに変換する必要があります。RGBからYUVへの変換は、画像のすべてのピクセルのR、G、およびBコンポーネントをY、U、およびVコンポーネントに変換することです。

YUVサンプリングフォーマット

YUV画像の主流のサンプリング方法は3つあります
。YUV4:4:4サンプリング
YUV 4:2:2サンプリング
YUV 4:2:0サンプリング
(1)YUV 4:4:4サンプリング
はY、U、Vを意味します3サンプリング各成分の比率は同じであるため、生成された画像では、各ピクセルの3つの成分情報が完全であり、すべて8ビット(1バイト)です。

举个例子 :

假如图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

那么采样的码流为:Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3 

最后映射出的像素点依旧为 [Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]

このサンプリング方法の画像サイズは、RGBカラーモデルの画像サイズと同じであり、帯域幅を節約する目的を達成していません。RGB画像をYUV画像に変換する場合、最初にYUV4に変換されます。 :4:4サンプル画像。
(2)YUV 4:2:2サンプリング
YUV 4:2:2サンプリングとは、UV成分がY成分サンプリングの半分であり、Y成分とUV成分が2:1の比率でサンプリングされることを意味します。水平方向に10ピクセルある場合、10個のY成分がサンプリングされ、5個のUV成分のみがサンプリングされます。

举个例子 :

 假如图像像素为:[Y0 U0 V0]、[Y1 U1 V1]、[Y2 U2 V2]、[Y3 U3 V3]
 
 那么采样的码流为:Y0 U0 Y1 V1 Y2 U2 Y3 V3 
 
 其中,每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一个采集一个。
 最后映射出的像素点为 [Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]

サイズが1280 * 720の画像、YUV 4:2:2サンプリング時のサイズは次のとおりです。

(1280 * 720 * 8 + 1280 * 720 * 0.5 * 8 * 2)/ 8 / 1024 / 1024 = 1.76 MB 。

(3)YUV 4:2:0サンプリング
YUV 4:2:0サンプリングは、U成分のみがサンプリングされ、V成分がサンプリングされないことを意味するものではありません。これは、各ラインスキャン中に1つのクロミナンス成分(UまたはV)のみがスキャンされ、Y成分が2:1の方法でサンプリングされることを意味します。たとえば、最初のラインがスキャンされると、YUは2:1の方法でサンプリングされ、2番目のラインがスキャンされると、YVコンポーネントは2:1の方法でサンプリングされます。各クロミナンスコンポーネントについて、その水平および垂直サンプリングとYコンポーネントは両方とも2:1です。

举个例子 :
 
假设图像像素为:
 
[Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3]
[Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]
 
那么采样的码流为:Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8
 
其中,每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一行按照 2 : 1 进行采样。
 
最后映射出的像素点为:

[Y0 U0 V5]、[Y1 U0 V5]、[Y2 U2 V7]、[Y3 U2 V7]
[Y5 U0 V5]、[Y6 U0 V6]、[Y7 U2 V7]、[Y8 U2 V8]

サイズが1280 * 720、YUV 4:2:0サンプリング時のサイズの画像は次のとおりです。

(1280 * 720 * 8 + 1280 * 720 * 0.25 * 8 * 2)/ 8 / 1024 / 1024 = 1.32 MB 

YUVストレージフォーマット

サンプリングについて話した後、次のステップは、サンプリングされたデータを保存する方法です。YUVには2つの保存形式があります。
(1)平面形式:最初にすべてのピクセルのYコンポーネントを連続して保存し、次にUコンポーネントを保存し、最後にVコンポーネントを保存します。
(2)パックパッキングモード:各ピクセルのY、U、およびVコンポーネントが交互に連続して保存されることを意味します。
さまざまなサンプリング方法と保存形式に応じて、複数のYUV形式があります。これらのフォーマットは、主にYUV 4:2:2およびYUV 4:2:0サンプリングに基づいています。
YUV 4:2:2サンプリングに基づく一般的な形式は次のとおりです。

YUV 4:2:2サンプリング
YUYVフォーマット
UYVY形式
YUV422Pフォーマット

YUV 4:2:0サンプリングに基づく一般的な形式は次のとおりです。

YUV 4:2:0サンプリング YUV 4:2:0サンプリング
YUV420Pタイプ YV12フォーマット YU12フ​​ォーマット
YUV420SPタイプ NV12フォーマット NV21フォーマット

YUV 4:2:2サンプリングに基づくフォーマット

YUV 4:2:2サンプリングでは、Y成分とUV成分が2:1の比率でサンプリングされ、2つのY成分がUV成分のセットを共有することが規定されています。

YUYVフォーマット

YUYV形式はパック形式で保存されます。つまり、各ピクセルはYコンポーネントを使用しますが、他のすべてのピクセルはそのUVコンポーネントをサンプリングします。シーケンスは次のとおりです。

Y0 UO Y1 V0 Y2 U2 Y3 V2				//Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….

UYVY形式

UYVYフォーマットもパックフォーマットで保存されます。順序はYUYVと逆です。最初にUコンポーネントが使用され、次にYコンポーネントがサンプリングされます。配置シーケンスは次のとおりです。

U0 Y0 V0 Y1 U2 Y2 V2 Y3				///Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U2 V2 分量….

UVとYの順序に応じて、YVYU形式、VYUY形式など、他の形式があります。原理はほぼ同じです。

YUV422Pフォーマット

YUV 422PフォーマットはI422とも呼ばれ、フラットフォーマットを使用して保存されます。最初にすべてのYコンポーネントが保存され、次にすべてのUコンポーネント、次にすべてのVコンポーネントが保存されます。

YUV 4:2:0サンプリングに基づくフォーマット

YUV 4:2:0サンプリングに基づくフォーマットには、主にYUV420PとYUV420SPの2つのタイプがあり、各タイプは他の特定のフォーマットに対応しています。

  • YUV420Pタイプ
    • YU12フ​​ォーマット
    • YV12フォーマット
  • YUV420SPタイプ
    • NV12フォーマット
    • NV21フォーマット

YUV420PとYUV420SPはどちらも平面モードに基づいて保存されます。すべてのYコンポーネントを最初に保存した後、YUV420PタイプはすべてのUまたはVコンポーネントを最初に保存し、YUV420SPはUVまたはVUの交互の順序で保存されます。下の写真
をご覧ください:
ここに画像の説明を挿入
YUV420SPのフォーマット:YUV420Pのフォーマット
ここに画像の説明を挿入

YU12およびYV12フォーマット

YU12フ​​ォーマットとYV12フォーマットはどちらもYUV420Pタイプに属します。つまり、Yコンポーネントが最初に格納され、次にUコンポーネントとVコンポーネントが格納されます。違いは、YU12が最初にY、UがV、YV12がYです。次にV、次にU。
ここに画像の説明を挿入
YU 12はI420フォーマットとも呼ばれ、そのストレージフォーマットはVとUの逆です。

NV12およびNV21フォーマット

NV12フォーマットとNV21フォーマットはどちらもYUV420SPタイプに属します。また、最初にY成分を保存しますが、すべてのUまたはV成分を保存する代わりに、UV成分を交互に連続的に保存します。ここに画像の説明を挿入
(1)NV12はIOSのモードであり、その保存順序は、最初にYコンポーネントを保存し、次にUVを交互に保存することです。
(2)NV21はAndroidのモードで、保存順序はYコンポーネントを最初に保存し、次にVUに保存することです。

おすすめ

転載: blog.csdn.net/weixin_37921201/article/details/89024590