視頻格式基礎(chǔ)知識(shí)
目?錄
1 視頻基礎(chǔ)知識(shí)
1.1簡(jiǎn)介
1.2 RGB格式
1.3?YUV格式
1.3.1?YUV的編碼格式
1.3.2?YUV的存儲(chǔ)格式
1.3.3
?
YUV的采樣方式
1.4 RGB與YUE的轉(zhuǎn)換
硬件設(shè)計(jì)基礎(chǔ)
1?視頻基礎(chǔ)知識(shí)
1.1?簡(jiǎn)介
常用的像素的格式有兩種:
RGB格式
和
YUV格式
,像素的格式定義了像素在內(nèi)存中的
編碼方式
。在介紹這兩種格式的信息之前,我們連接一些常用名詞:
●?
像素
:像素是一個(gè)圖片的基本單位。單位px是picture element的縮寫,所以像素有“圖像元素”之意。
●?
分辨率
:是指圖像的大小或尺寸,比如1920*1080(行周期數(shù)*場(chǎng)周期數(shù))。
●?位深:是指在記錄數(shù)字圖像顏色時(shí),計(jì)算機(jī)實(shí)際上是用每個(gè)像素所需要的位深來(lái)表示的,比如紅色、綠色、藍(lán)色的分量用8bit。
●?
幀率
:在1秒鐘時(shí)間里傳輸?shù)膱D片的幀數(shù),也可以理解為圖像處理器每秒中能夠刷新的次數(shù),比如25fps每秒中有25張圖片(幀率通常也稱為刷新率)。
●?
碼率
:視頻文件在單位時(shí)間內(nèi)使用的數(shù)據(jù)流量,比如1Mbps。(碼率就是通常我們描述速率)
●?
Stride
:指在內(nèi)存中每行像素的所占的空間大小,目的是為了實(shí)現(xiàn)內(nèi)存對(duì)齊,每行像素在內(nèi)存中所占的空間并不一定是圖像的寬度。
頻率的計(jì)算公式為:
頻率?=?行周期數(shù) *?場(chǎng)周期數(shù)?*幀率
速率的計(jì)算公式:
速率?=?頻率?*?帶寬
以常見的1080P、30fps的視頻的時(shí)序圖為例,主要由三個(gè)信號(hào)組成H、V、DE。其有效像素的分辨率為1920x1080,算上消隱期,其像素分辨率為2200x1125,為HD-SDI格式,其頻率和速率的計(jì)算公式為:
頻 率 = 2200 × 1125 × 30 = 74.25 M H z
速率=74.25×20=1.485Gbit/s
1.2?RGB格式
RGB格式有三個(gè)通道R、G、B,分別對(duì)應(yīng)紅色、綠色、藍(lán)色,由這三個(gè)分量直接決定顏色。有些圖片會(huì)附件一個(gè)一個(gè)Alpha通道,用于表示透明度,即四個(gè)分量共同控制顏色(RGBA)。
圖1?RGB格式 一張1920*1080的圖片,具有2073600個(gè)像素點(diǎn),如果采用RBG的格式進(jìn)行存儲(chǔ),其占用的空間大小為: 1920*1080*3/1024/1024 = 5.93MB 如果采用RBGA的格式進(jìn)行存儲(chǔ),其占用的空間大小為: 1920*1080*4/1024/1024 = 7.91MB
1.3?YUV格式
?
1.3.1?YUV的編碼格式
相比于RGB格式,YUV格式最大的好處是
在保持圖像質(zhì)量降低不明顯的前提下,減小文件大小
。YUV的編碼合適采用亮度和色度來(lái)指定像素的顏色,其中Y表示亮度,U和V表示色度。對(duì)于?YUV?圖像來(lái)說(shuō),并不是每個(gè)像素點(diǎn)都需要包含了?Y、U、V?三個(gè)分量,根據(jù)不同的采樣格式,可以每個(gè)?Y?分量都對(duì)應(yīng)自己的?UV?分量,也可以幾個(gè)?Y?分量共用?UV?分量。
1.3.2?YUV的存儲(chǔ)格式
YUV的存儲(chǔ)格式可分為兩種:
平面格式(Plannr)
和
緊湊模式(Packed)
。
??
平面格式(Plannr)
:對(duì)于planar的YUV格式,先連續(xù)存儲(chǔ)所有像素點(diǎn)的Y,緊接著存儲(chǔ)所有像素點(diǎn)的U,隨是存儲(chǔ)所有像素點(diǎn)的V,或者是先V后U。 ??
緊湊模式(Packed)
:對(duì)于packed的YUV格式,每個(gè)像素點(diǎn)的Y,U,V是連續(xù)交替存儲(chǔ)的。比如YUV420P,其中P表示緊湊,YUV420SP其中的SP表示“半緊湊”。 其中,p表示逐行采樣,i表示隔行采樣。
1.3.3?YUV的采樣方式
YUV主流的擦癢方式有三種:YUV4:4:4、YUV4:2:2、YUV4:2:0。
1?YUV4:4:4格式
YUV4:4:4這種格式占用的空間最大,每個(gè)像素都有一個(gè)Y分量、U分量、V分量。YUV4:4:4大小和RGB存儲(chǔ)的大小是一樣的,為3個(gè)字節(jié)。根據(jù)U和V的順序不同,又有兩種不同的格式。YUV4:4:4每個(gè)像素包含一個(gè)Y分量和一個(gè)UV分量。
每個(gè)像素的占用的空間:
1byte(Y) +?1byte(U) +?1byte(V) = 3?byte
單幀占用空間:
FrameSize?=?FrameWith?*?FrameWith?*?3(byte)
●?
單個(gè)像素
●?
2*2個(gè)像素
2 YUV4:2:2格式
YUV4:2:2是每?jī)蓚€(gè)Y分量共用一個(gè)UV分量,所以一個(gè)像素占用兩個(gè)字節(jié),根據(jù)存儲(chǔ)順序不同分為四種不同格式。
每個(gè)像素占用空間為:
1?byte(Y) +?1/2?byte(U) +?1/2?byte(V) =?2?byte
單幀占用空間:
FrameSize?=?FrameWith?*?FrameWith?* 2(byte)
●?
2個(gè)像素
YUV4:2:2(2像素)
●?
4*4個(gè)像素
YUV4:2:2(4*4像素)
?
2?YUV4:2:0格式
YUV4:2:0是每四個(gè)Y分量共用一個(gè)UV分量,所以一個(gè)像素占用1.5個(gè)字節(jié),根據(jù)存儲(chǔ)順序不同分為四種不同格式。
每個(gè)像素占用空間為:
1?byte(Y) +?1/4?byte(U) +?1/4?byte(V) =?1.5?byte
單幀占用空間:
FrameSize?=?FrameWith?*?FrameWith?*?1.5(byte)
●?
四個(gè)像素
●?
4*4個(gè)像素
?
1.4 RGB與YUE的轉(zhuǎn)換
YUV像素格式來(lái)源于RGB像素格式,通過(guò)公式運(yùn)算,YUV三分量可以還原出RGB,YUV轉(zhuǎn)RGB的公式如下:
●?R = Y + 1.403V
●?G = Y – 0.344U – 0.714V
●?B = Y + 1.770U
一般,將RGB和YUV的范圍均限制在[0,255]間,則有如下轉(zhuǎn)換公式:
●?R = Y + 1.403(V-128)
●?G = Y – 0.344(U?-128)– 0.714(V-128)
●?B = Y + 1.770(U-128)?