2017-06-16 5 views
0

私には、例えば、ドキュメントを理解していなかった。ffmpeg - AVPixelFormat、 "smaples"とはドキュメント上の意味ですか?

AV_PIX_FMT_YUV422P planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) 

私は、「(2×Yサンプルあたり1つのクロム& Cbのサンプル)」の意味を理解 、それは4何を意味しませんでした:2 :2?私はどこにでも説明を見つけることができませんでした。

また、私には、AVPIX_FMT_YUV420Pのようなタイプがあり、12bppを持っています。それは各ピクセルが12ビットで表されることを意味しますか?もしそうなら、どのように表現されていますか?各ピクセルに2バイトを割り当て、最後の4ビットを無視する必要がありますか?またはceil((#pixels)* 1.5)バイトのようなものを割り当てる必要がありますか?

+0

https://en.wikipedia.org/wiki/YUV? – aergistal

答えて

2

AV_PIX_FMT_YUV422P平面YUV 4:2:2、は16bpp、(2×当たり1つのクロム&のCbサンプル Yサンプル)

ここですべての意図および目的のため

Cb = U及びCr = v(区別があります平面のためのPAV_PIX_FMT_YUV422Pでスタンドが

)今のところ無視して、ここで作られているが、それは唯一のものは、より多くの混乱になります、だから、最高ではありません。すべてのチャンネルがそれ自身の飛行機またはバッファを持っていることを意味します。別Y、U用画像、及び4:2:2においてV.

クロマ(UV)面は、輝度(Y)面の半分の高さがあります。したがって、画像が1920x1080の場合、彩度平面は1920x540です。 4:2:0の場合クロム面は半分の高さで半分の幅は960x540です。

4:2:2 16bpp = (8 × 1920 × 1080 + 8 × 1920 × 1080 + 8 × 960 × 540)/(1920 × 1080)

4:2:0 12bpp = (8 × 1920 × 1080 + 8 × 960 × 540 + 8 × 960 × 540)/(1920 × 1080)

Iは、画素毎に2つのバイトを割り当てる必要がありますか?

いいえ、あなたは3つのプレーンを割り当てて、それらを別々に入力する必要があります。

関連する問題