一、IPCM宏塊簡(jiǎn)介
在H.264中,一個(gè)宏塊包括16*16個(gè)像素良风,I宏塊有三種形式:
- 16個(gè)I4x4編碼方式組成的宏塊(為了方便,簡(jiǎn)稱I4x4方式的宏塊);
- I16x16宏塊;
- IPCM宏塊(特殊)
分塊越細(xì)窑多,就越準(zhǔn)確,所以I4x4編碼方式適合編碼那些紋理比較復(fù)雜的宏塊洼滚,而I16x16編碼方式就更加籠統(tǒng)埂息,適合編碼那些比較平滑的區(qū)域。
最特別的是IPCM宏塊遥巴,這種宏塊的脾氣很古怪:不預(yù)測(cè)千康,沒殘差,不變換铲掐,無量化等操作拾弃,而是直接傳像素值,直接將最原始的yuv數(shù)據(jù)寫入到碼流中迹炼,可見IPCM的信息不會(huì)有任何損失砸彬,是完全無損的. 如果將視頻的所有宏塊都編碼成IPCM宏塊,那么H.264就是一個(gè)無損編碼,當(dāng)然斯入,在現(xiàn)實(shí)中,很少有人這么做蛀蜜。
視頻應(yīng)用五類舉例:
1刻两、news(新聞):變化和運(yùn)動(dòng)的區(qū)域比較小(比如人臉滴某,一般占視頻畫面的15%)磅摹,背景是靜止的滋迈。
2、soccer(足球):包含大面積統(tǒng)一方向的運(yùn)動(dòng)户誓。鏡頭通常會(huì)在一個(gè)統(tǒng)一顏色的背景下(綠色)跟蹤一個(gè)快速運(yùn)動(dòng)的物體(足球)饼灿。
3、cartoon(卡通):主題在運(yùn)動(dòng)帝美,背景是絕對(duì)靜止的碍彭。
4、panorama(全景畫):包含大面積統(tǒng)一方向的運(yùn)動(dòng)悼潭,運(yùn)動(dòng)方向是一致的庇忌。
5、rest(其他):除以上幾種之外的視頻都屬于這一類舰褪。通常包含大量雜亂的運(yùn)動(dòng)皆疹,或者有很多鏡頭切換。
二占拍、級(jí)別詳表
High Profile的最大比特率是Base / Extended / Main Profile的1.25倍略就,Hi10P是3倍,Hi422P / Hi444PP是4倍晃酒。
亮度采樣的數(shù)量是宏塊數(shù)量的16×16 = 256倍(并且每秒亮度采樣的數(shù)量是每秒宏塊數(shù)量的256倍)
針對(duì)表格的一些講解說明:
Level:級(jí)別残制。
Max macroblocks:最大宏塊數(shù)。注:宏塊尺寸是16x16的掖疮。
per second:每秒(的最大宏塊數(shù))初茶。可用于約束幀率浊闪。
per frame:每幀(的最大宏塊數(shù))恼布。可用于約束分辨率搁宾。
Max video bit rate (kbit/s):最大視頻碼率折汞。不同檔次(Profile)下會(huì)有區(qū)別。
BP:Baseline Profile盖腿,基線檔次爽待。
XP:Extended Profile,進(jìn)階檔次翩腐。
MP:Main Profile鸟款,主要檔次。
HiP:High Profile茂卦,高級(jí)檔次何什。
Hi10P:High 10 Profile,高級(jí)10位檔次等龙。
Hi422P:High 4:2:2 Profile处渣,高級(jí)4:2:2檔次伶贰。
Hi444PP:High 4:4:4 Predictive Profile,高級(jí)4:4:4(實(shí)驗(yàn)性罐栈?)檔次黍衙。
Examples for high resolution @ frame rate (max stored frames):范例:高分辨率@幀率(最大存儲(chǔ)幀數(shù))。
三荠诬、分辨率和幀率的計(jì)算
解碼圖片緩沖
H.264 / AVC編碼器使用先前編碼的圖片來預(yù)測(cè)其他圖片中樣本的值琅翻。這使編碼器能夠有效地決定對(duì)給定圖像進(jìn)行編碼的最佳方式。在解碼器處浅妆,這樣的圖片被存儲(chǔ)在虛擬解碼圖片緩沖器(DPB)中望迎。DPB的最大容量,以幀(或場(chǎng)對(duì))為單位凌外,如上表右列中的括號(hào)所示辩尊,可以計(jì)算如下:
capacity = min(floor(MaxDpbMbs /(PicWidthInMbs * FrameHeightInMbs)),16)
注1:floor(x)是向向下取整康辑。
其中MaxDpbMbs是下表中作為級(jí)數(shù)的函數(shù)提供的常數(shù)值摄欲,并且PicWidthInMbs和FrameHeightInMbs是編碼視頻數(shù)據(jù)的圖片寬度和幀高度,以宏塊為單位表示(四舍五入為整數(shù)值并考慮裁剪和宏塊配對(duì)時(shí)適用)疮薇。
這里以宏塊數(shù)1616,480P(800480)作為例子舉例:
水平宏塊數(shù)(PicWidthInMbs )= ceil(視頻寬度 / 16) = ceil(480 / 16) = 30
垂直宏塊數(shù)(FrameHeightInMbs)= ceil(視頻高度 / 16) = ceil( 800 / 16 ) = 50
注:ceil(x)為向上取整函數(shù)
每幀宏塊數(shù) = 水平宏塊數(shù) * 垂直宏塊數(shù) = 50 * 30 = 1500
查上面的級(jí)別詳表胸墙,可知支持 每幀宏塊數(shù)1500 的最低級(jí)別是2.2。
級(jí)別2.2所允許的 每秒最大宏塊數(shù)(Max macroblocks per second) 是 20250按咒。20250 / 1500 = 13.5迟隅。即最高支持每秒13.5幀。