詳解YUV資料格式

2022-06-15 18:00:13 字數 2953 閱讀 2395

yuv,是一種顏色編碼方法。常使用在各個影像處理元件中。 yuv在對**或影片編碼時,考慮到人類的感知能力,允許降低色度的頻寬。

yuv是編譯true-color顏色空間(color space)的種類,y'uv, yuv, ycbcr,ypbpr等專有名詞都可以稱為yuv,彼此有重疊。

「y」表示明亮度(luminance、luma),「u」和「v」則是色度、濃度(chrominance、chroma),y′uv, yuv, ycbcr, ypbpr所指涉的範圍,常有混淆或重疊的情況。

從歷史的演變來說,其中yuv和y'uv通常用來編碼電視的模擬訊號,而ycbcr則是用來描述數字的影像訊號,適合影片與壓縮以及傳輸,例如mpeg、jpeg。 但在現今,yuv通常已經在電腦系統上廣泛使用。

y'代表明亮度(luma; brightness)而u與v儲存色度(色訊; chrominance; color)部分; 亮度(luminance)記作y,而y'的prime符號記作伽瑪校正。

yuv formats分成兩個格式:

緊縮格式(packed format)中的yuv是混合在一起的,對於yuv4:4:4格式而言,用緊縮格式很合適的,因此就有了uyvy、yuyv等。

平面格式(planar formats)是指每y分量,u分量和v分量都是以獨立的平面組織的,也就是說所有的u分量必須在y分量後面,而v分量在所有的u分量後面,此一格式適用於取樣(subsample)。平面格式(planar format)有i420(4:2:0)、yv12、iyuv等。

y'uv的發明是由於彩色電視與黑白電視的過渡時期[1]。黑白視訊只有y(luma,luminance)視訊,也就是灰階值。到了彩色電視規格的制定,是以yuv/yiq的格式來處理彩色電檢視像,把uv視作表示彩度的c(chrominance或chroma),如果忽略c訊號,那麼剩下的y(luma)訊號就跟之前的黑白電視頻號相同,這樣一來便解決彩色電視機與黑白電視機的相容問題。y'uv最大的優點在於只需占用極少的頻寬。

因為uv分別代表不同顏色訊號,所以直接使用r與b訊號表示色度的uv。 也就是說uv訊號告訴了電視要偏移某象素的的顏色,而不改變其亮度。 或者uv訊號告訴了顯示器使得某個顏色亮度依某個基準偏移。 uv的值越高,代表該畫素會有更飽和的顏色。

彩色影象記錄的格式,常見的有rgb、yuv、cmyk等。彩色電視最早的構想是使用rgb三原色來同時傳輸。這種設計方式是原來黑白頻寬的3倍,在當時並不是很好的設計。rgb訴求於人眼對色彩的感應,yuv則著重於視覺對於亮度的敏感程度,y代表的是亮度,uv代表的是彩度(因此黑白電影可省略uv,相近於rgb),分別用cr和cb來表示,因此yuv的記錄通常以y:uv的格式呈現。

為節省頻寬起見,大多數yuv格式平均使用的每畫素位數都少於24位元。主要的抽樣(subsample)格式有ycbcr 4:2:0、ycbcr 4:2:2、ycbcr 4:1:1和ycbcr 4:4:4。yuv的表示法稱為a:b:c表示法:

最常用y:uv記錄的比重通常1:1或2:1,***-video是以yuv 4:2:0的方式記錄,也就是我們俗稱的i420,yuv4:2:0並不是說只有u(即cb), v(即cr)一定為0,而是指u:v互相援引,時見時隱,也就是說對於每乙個行,只有乙個u或者v分量,如果一行是4:2:0的話,下一行就是4:0:2,再下一行是4:2:0...以此類推。至於其他常見的yuv格式有yuy2、yuyv、yvyu、uyvy、ayuv、y41p、y411、y211、if09、iyuv、yv12、yvu9、yuv411、yuv420等。

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

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

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

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

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

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

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

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

詳解YUV資料格式

yuv422,yuv420相互轉換 yv12和i420的區別 平坦格式大彙總 yuv分為三個分量 有兩種格式,packed和planer 打包就是y0u0v0 y1u1v1 y2u2v2 y3u3v3 平鋪就是y0y1y2y3 u0u1u2u3 v0v1v2v3 平鋪的方式調節亮度和顏色比較方便。打...

詳解YUV420資料格式

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

詳解YUV420資料格式

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