問題タブ [nv12-nv21]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
27757 参照

android - YUVNV21からRGBへの変換に関する混乱

http://developer.android.com/reference/android/graphics/ImageFormat.html#NV21によると、NV21がデフォルトで使用される形式です。

YUV NV21からRGBへの変換に関しては、Web上にかなりの数のコードがあります。しかし、私がコードを調べているとき、私はコードの正確さに疑問を持っています。

最初のコンポーネントVが最初に来て、次に最初のコンポーネントUが来るはずです

http://wiki.videolan.org/YUV#NV21によると、NV21 is like NV12, but with U and V order reversed: it starts with V.しかし、私がコードの実装を行ったとき

Rは最も重要な位置である必要がありますColor.java の実装によるint argbと、Rは最も重要な位置にあると想定されます。ただし、次のコード実装を実行しました

私は疑問に思っていました、彼らはよくある間違いを犯していますか、それとも私は何かを見落としていますか?

現在、私の実装は次のとおりです。

0 投票する
1 に答える
4962 参照

format - ファイルが nv12 形式のファイルかどうかを判断する方法は?

NV12形式のファイルかどうか知りたいのですが、nv12形式のファイルかどうかを判断する方法を教えてください。ツールやテスト コードはありますか?

0 投票する
2 に答える
10996 参照

c# - NV12 フォーマットと UV プレーン

NV12 形式について少し混乱しています。形式を理解するためにこのページを見ています。私が現在理解しているのは、縮小の画像またはビデオがある場合640 x 480、Y プレーンには 640 x 480バイトがあり、U と V の両方のプレーンには640/2 x 480/2. U プレーン640/2 x 480/2と V プレーン640/2 x 480/2の両方が640/2 x 480/2バイトしかないという意味ではありません。したがって、出力バッファ配列の合計バイト数は次のようになります。(640/2) * (480/2)uv プレーンは 2 バイトを使用するため、2 が乗算されます。

だから問題は、私がそれを正しい方法で理解しているということですか?そして、NV12フォーマットを指定するフォーマットでバイト配列を作っています。

0 投票する
2 に答える
1087 参照

c# - Bitmapimage C# での NV12 形式のサポート

フォーマットを実行BitmapImageまたはWriteableBitmapImageサポートしNV12ます。またはNV12 形式で配置されたバイト配列からBitmapImageorを作成できますか?WriteableBitmapImage

ありがとう

0 投票する
1 に答える
22426 参照

image-processing - 画像フォーマット メモリ内の NV12 ストレージ

質問に記載されている NV12 フォーマットのサイズについて完全に理解しています

NV12 フォーマットと UV プレーン

現在、この形式での UV プレーンのストレージに関する 2 つの情報源から読んでいます。

NV12

すべての Y サンプルは、偶数行の unsigned char 値の配列としてメモリに最初に表示されます。Y プレーンの直後には、パックされた U (Cb) および V (Cr) サンプルを含む unsigned char 値の配列が続きます。結合された UV 配列がリトル エンディアンの WORD 値の配列としてアドレス指定される場合、LSB には U 値が含まれ、MSB には V 値が含まれます。NV12 は、DirectX VA で推奨される 4:2:0 ピクセル形式です。これは、4:2:0 ビデオをサポートする DirectX VA アクセラレータの中期的な要件になると予想されます。次の図は、Y 平面と、パックされた U および V サンプルを含む配列を示しています。

私が理解しているのは、UV プレーンでは、各 U と V が single byte に格納されていることです。

これについてウィキペディアから読んだとき: https://wiki.videolan.org/YUV#NV12

それは言います:

NV12

I420 に関連して、NV12 には 1 つの輝度「ルミナンス」プレーン Y と、U 値と V 値がインターリーブされた 1 つのプレーンがあります。NV12 では、クロマ プレーン (青と赤) は、水平方向と垂直方向の両方の次元で 2 倍にサブサンプリングされます。ピクセルの 2x2 グループの場合、4 つの Y サンプルと 1 つの U および 1 つの V サンプルがあります。NV12 を、U プレーンと V プレーンがインターリーブされた I420 と考えると便利です。これは NV12 のグラフ表示です。各文字は 1 ビットを表します: 1 NV12 ピクセルの場合: YYYYYYYY UVUV 2 ピクセル NV12 フレームの場合: YYYYYYYYYYYYYYYY UVUVUVUV 50 ピクセル NV12 フレームの場合: Y*8*50 (UV)*2*50 n ピクセル NV12 フレームの場合: Y*8*n (UV)*2*n

ここで私が理解しているのは、各 U と V が各バイトでビットごとにインターリーブされていることです。したがって、UV プレーンの各バイトには、インターリーブされた 4U ビットと 4V ビットが含まれます。

誰かが私の疑問を明確にすることができますか?

0 投票する
1 に答える
2792 参照

android - NV21 形式と奇数の画像寸法

私は Android で NV21 イメージをしばらく使用しており、NV21 イメージの不適切なインデックス バイトが原因である可能性があるバグを追跡しています。

この質問の回答の画像には、Y、U、および V バイトが画像バッファーにどのように配置されているかがよくわかります。許可されているかどうかはわかりませんが、以下に埋め込みます。

YUV420SP NV21フォーマット

  1. 画像の次元が奇数の場合 (パリティなど) はどうなりますか? それはこの形式でも可能ですか?
  2. この形式の公式仕様はどこかにありますか?
0 投票する
1 に答える
2133 参照

android - 画像フォーマット NV21 とそれが持っているように見えるさまざまなメモリ レイアウトに関する混乱

上記の形式の画像を処理する必要があります。しかし、私はそれについて相反する情報を見つけました。

別のスタックオーバーフローの回答によると、UV値は互いに続きますが、ウィキペディアによると、V値はメモリ内のU値の後にあります。どちらが正しいか、または両方が正しい場合、違いは何ですか?

NV12 対 NV21 の問題でしょうか? ただし、このサイトでは、単に切り替える必要があると述べています。

これらの用語が何を意味するのかはわかりませんが、画像が平面、半平面、または平面ではないことに関係しているのかもしれません。

誰かがこれを少し明確にすることができますか?

0 投票する
1 に答える
7446 参照

c - IPP を使用して RGB を NV12 色空間に変換する方法

Intel® Media SDK などのビデオ エンコーダーには、NV12 ビデオ入力形式が必要です。

NV12 フォーマットは YUV 4:2:0 フォーマットで、最初に Y プレーン、次にインターリーブされた UV プレーンにパックされたクロマ サンプルがメモリ内で順序付けられます。

例:
YYYYYY
YYYYYY
UVUVUV

ここに画像の説明を入力

RGB カラー形式は、Pixel-Order RGB (ピクセルごとのバイト、下位バイトは赤) を指します。
RGBRGBRGBRGBRGB
RGBRGBRGBRGBRGB

ここに画像の説明を入力

Web で調べたところ、NV12 に関して、YUVは YCbCr 色空間として定義されていることがわかりました。現在、NV12 を適用できる YCbCr 形式が少なくとも 2 つあります。

私の質問は: RGB 色空間を NV12 に変換するIPP機能はありますか?