一、IPCM宏塊簡介
在H.264中,一個(gè)宏塊包括16*16個(gè)像素,I宏塊有三種形式:
- 16個(gè)I4x4編碼方式組成的宏塊(為了方便,簡稱I4x4方式的宏塊);
- I16x16宏塊;
- IPCM宏塊(特殊)
分塊越細(xì),就越準(zhǔn)確,所以I4x4編碼方式適合編碼那些紋理比較復(fù)雜的宏塊,而I16x16編碼方式就更加籠統(tǒng),適合編碼那些比較平滑的區(qū)域。
最特別的是IPCM宏塊,這種宏塊的脾氣很古怪:不預(yù)測,沒殘差,不變換,無量化等操作,而是直接傳像素值,直接將最原始的yuv數(shù)據(jù)寫入到碼流中,可見IPCM的信息不會有任何損失,是完全無損的. 如果將視頻的所有宏塊都編碼成IPCM宏塊,那么H.264就是一個(gè)無損編碼,當(dāng)然,在現(xiàn)實(shí)中,很少有人這么做。
視頻應(yīng)用五類舉例:
1、news(新聞):變化和運(yùn)動的區(qū)域比較?。ū热缛四?,一般占視頻畫面的15%),背景是靜止的。
2、soccer(足球):包含大面積統(tǒng)一方向的運(yùn)動。鏡頭通常會在一個(gè)統(tǒng)一顏色的背景下(綠色)跟蹤一個(gè)快速運(yùn)動的物體(足球)。
3、cartoon(卡通):主題在運(yùn)動,背景是絕對靜止的。
4、panorama(全景畫):包含大面積統(tǒng)一方向的運(yùn)動,運(yùn)動方向是一致的。
5、rest(其他):除以上幾種之外的視頻都屬于這一類。通常包含大量雜亂的運(yùn)動,或者有很多鏡頭切換。
二、級別詳表

High Profile的最大比特率是Base / Extended / Main Profile的1.25倍,Hi10P是3倍,Hi422P / Hi444PP是4倍。
亮度采樣的數(shù)量是宏塊數(shù)量的16×16 = 256倍(并且每秒亮度采樣的數(shù)量是每秒宏塊數(shù)量的256倍)
針對表格的一些講解說明:
Level:級別。
Max macroblocks:最大宏塊數(shù)。注:宏塊尺寸是16x16的。
per second:每秒(的最大宏塊數(shù))??捎糜诩s束幀率。
per frame:每幀(的最大宏塊數(shù))??捎糜诩s束分辨率。
Max video bit rate (kbit/s):最大視頻碼率。不同檔次(Profile)下會有區(qū)別。
BP:Baseline Profile,基線檔次。
XP:Extended Profile,進(jìn)階檔次。
MP:Main Profile,主要檔次。
HiP:High Profile,高級檔次。
Hi10P:High 10 Profile,高級10位檔次。
Hi422P:High 4:2:2 Profile,高級4:2:2檔次。
Hi444PP:High 4:4:4 Predictive Profile,高級4:4:4(實(shí)驗(yàn)性?)檔次。
Examples for high resolution @ frame rate (max stored frames):范例:高分辨率@幀率(最大存儲幀數(shù))。
三、分辨率和幀率的計(jì)算
解碼圖片緩沖
H.264 / AVC編碼器使用先前編碼的圖片來預(yù)測其他圖片中樣本的值。這使編碼器能夠有效地決定對給定圖像進(jìn)行編碼的最佳方式。在解碼器處,這樣的圖片被存儲在虛擬解碼圖片緩沖器(DPB)中。DPB的最大容量,以幀(或場對)為單位,如上表右列中的括號所示,可以計(jì)算如下:
capacity = min(floor(MaxDpbMbs /(PicWidthInMbs * FrameHeightInMbs)),16)
注1:floor(x)是向向下取整。
其中MaxDpbMbs是下表中作為級數(shù)的函數(shù)提供的常數(shù)值,并且PicWidthInMbs和FrameHeightInMbs是編碼視頻數(shù)據(jù)的圖片寬度和幀高度,以宏塊為單位表示(四舍五入為整數(shù)值并考慮裁剪和宏塊配對時(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
查上面的級別詳表,可知支持 每幀宏塊數(shù)1500 的最低級別是2.2。
級別2.2所允許的 每秒最大宏塊數(shù)(Max macroblocks per second) 是 20250。20250 / 1500 = 13.5。即最高支持每秒13.5幀。