如何 分析YUV資料

2022-08-17 09:39:19 字數 2110 閱讀 2404

yuv,分為三個分量,「y」表示 明亮度(luminance或luma),也就是灰度值;而「u」和「v」 表示的則是

色度(chrominance或chroma),作用是描述影像色彩及飽和度,用於指定畫素的顏色。

極少的頻寬。

好了,言歸正傳,談談如何分析yuv碼流吧。yuv碼流有 多種不同的格式,要分析yuv碼流,就必須搞清楚你面對的到底是哪一種格式,並且必須搞清楚這種格式的yuv取樣 和 分布

1.  取樣方式: 

yuv碼流的儲存格式其實與其取樣的方式密切相關,主流的取樣方式有三種,yuv4:4:4,yuv4:2:2,yuv4:2:0,關於其詳細原理,可以通過網上其它文章了解,這裡我想強調的是如何根據其取樣格式來從碼流中還原每個畫素點的yuv值,因為只有正確地還原了每個畫素點的yuv值,才能通過yuv與rgb的轉換公式提取出每個畫素點的rgb值,然後顯示出來。

用三個圖來直觀地表示採集的方式吧,以黑點表示取樣該畫素點的y分量,以空心圓圈表示採用該畫素點的uv分量。

先記住下面這段話,以後提取每個畫素的yuv分量會用到。

yuv 4:4:4取樣,每乙個y對應一組uv分量。 

yuv 4:2:2取樣,每兩個y共用一組uv分量。 

yuv 4:2:0取樣,每四個y共用一組uv分量。 

2.  儲存方式 :

下面我用圖的形式給出常見的yuv碼流的儲存方式,並在儲存方式後面附有取樣每個畫素點的yuv資料的方法,其中,cb、cr的含義等同於u、v。

(1) yuvy 格式 (屬於yuv422)

yuyv為yuv422取樣的儲存格式中的一種,相鄰的兩個y共用其相鄰的兩個cb、cr,分析,對於畫素點y'00、y'01 而言,其cb、cr的值均為 cb00、cr00,其他的畫素點的yuv取值依次類推。

(2) uyvy 格式 (屬於yuv422)

uyvy格式也是yuv422取樣的儲存格式中的一種,只不過與yuyv不同的是uv的排列順序不一樣而已,還原其每個畫素點的yuv值的方法與上面一樣。

(3) yuv422p(屬於yuv422)

yuv422p也屬於yuv422的一種,它是一種plane模式,即打包模式,並不是將yuv資料交錯儲存,而是先存放所有的y分量,然後儲存所有的u(cb)分量,最後儲存所有的v(cr)分量,如上圖所示。其每乙個畫素點的yuv值提取方法也是遵循yuv422格式的最基本提取方法,即兩個y共用乙個uv。比如,對於畫素點y'00、y'01 而言,其cb、cr的值均為 cb00、cr00。

(4)yv12,yu12格式(屬於yuv420)

yu12和yv12屬於yuv420格式,也是一種plane模式,將y、u、v分量分別打包,依次儲存。其每乙個畫素點的yuv資料提取遵循yuv420格式的提取方式,即4個y分量共用一組uv。注意,上圖中,y'00、y'01、y'10、y'11共用cr00、cb00,其他依次類推。

(5)nv12、nv21(屬於yuv420)

nv12和nv21屬於yuv420格式,是一種two-plane模式,即y和uv分為兩個plane,但是uv(cbcr)為交錯儲存,而不是分為三個plane。其提取方式與上一種類似,即y'00、y'01、y'10、y'11共用cr00、cb00

3.  總結

幾種常見的yuv碼流格式就簡單地列在上面了,大家在處理yuv碼流前,先了解清楚自己的碼流到底屬於哪一種,然後對應進行處理。

全面分析YUV資料

yuv,分為三個分量,y 表示明亮度 luminance或luma 也就是灰度值 而 u 和 v 表示的則是色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。1.取樣方式 yuv碼流的儲存格式其實與其取樣的方式密切相關,主流的取樣方式有三種,yuv4 4 4...

YUV資料總結

yuv資料格式詳解 yuv簡介 yuv定義 分為三個分量,y 表示明亮度 luminance 或luma 也就是灰度值 而 u 和 v 表示的則是色度 chrominance 或chroma 作用是描述影像色彩 r y即 u色差 及飽和度 b y即 v色差 用於指定畫素的顏色。yuv格式 有兩大類 ...

YUV資料詳解

yuv格式有兩大類 planar和packed。對於planar的yuv格式,先連續儲存所有畫素點的y,緊接著儲存所有畫素點的u,隨後是所有畫素點的v。對於packed的yuv格式,每個畫素點的y,u,v是連續交 儲存的。yuv,分為三個分量,y 表示明亮度 luminance或luma 也就是灰度...