畢業(yè)論文 視頻壓縮編碼技術(shù)設(shè)計(jì)

上傳人:1888****888 文檔編號(hào):38509200 上傳時(shí)間:2021-11-08 格式:DOC 頁數(shù):33 大?。?59KB
收藏 版權(quán)申訴 舉報(bào) 下載
畢業(yè)論文 視頻壓縮編碼技術(shù)設(shè)計(jì)_第1頁
第1頁 / 共33頁
畢業(yè)論文 視頻壓縮編碼技術(shù)設(shè)計(jì)_第2頁
第2頁 / 共33頁
畢業(yè)論文 視頻壓縮編碼技術(shù)設(shè)計(jì)_第3頁
第3頁 / 共33頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)論文 視頻壓縮編碼技術(shù)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)論文 視頻壓縮編碼技術(shù)設(shè)計(jì)(33頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、摘 要 H.264標(biāo)準(zhǔn)是由國際標(biāo)準(zhǔn)化組織和國際電工委員會(huì)(ISO/IEC)與國際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門(ITU-T)組成的聯(lián)合視頻組(JVT)制定的新一代視頻壓縮編碼標(biāo)準(zhǔn)。H.264和以前的標(biāo)準(zhǔn)一樣,也是差分脈沖編碼調(diào)制(differential pulse code modulation, DPCM)加離散余弦(Discrete Cosine Transform, DCT)變換編碼的混合編碼模式。 在技術(shù)上,H.264集中了以往標(biāo)準(zhǔn)的優(yōu)點(diǎn),并吸收了它們的經(jīng)驗(yàn)。H.264應(yīng)用了幀內(nèi)預(yù)測(cè),整數(shù)變換,不同的預(yù)測(cè)塊大小,多個(gè)參考幀,1/4象素預(yù)測(cè)精度,自適應(yīng)算術(shù)編碼,去塊效應(yīng)濾波器(De

2、-blocking filter)以及基于率失真優(yōu)化的模式選擇算法等技術(shù)。H.264分為視頻編碼層(Video Coding Layer, VCL)和網(wǎng)絡(luò)提取層(Network Abstraction Layer, NAL)。因此,H.264可以達(dá)到極高的壓縮比,在所有碼率下都能持續(xù)提供較高的視頻質(zhì)量。 本文詳細(xì)介紹了H.264的主要技術(shù),并用軟件實(shí)現(xiàn)了H.264編碼器。本論文包含以下內(nèi)容,首先回顧了視頻壓縮技術(shù)的背景知識(shí),評(píng)述了國內(nèi)外視頻編碼的研究狀況,對(duì)H.264 編碼方案作了一個(gè)整體的說明;接著分析了整數(shù)變換,基于內(nèi)容的自適應(yīng)可變長(zhǎng)度編碼技術(shù)(CAVLC)和結(jié)合宏塊大小的自適應(yīng)塊變換(

3、ABT)技術(shù);然后論文對(duì)H.264的預(yù)測(cè)編碼技術(shù)進(jìn)行了詳細(xì)的分析,對(duì)比了各種標(biāo)準(zhǔn)的幀內(nèi)編碼效率;最后介紹軟件H.264編碼器并對(duì)編碼結(jié)果做出分析。 關(guān)鍵詞:視頻編碼,整數(shù)變換,運(yùn)動(dòng)補(bǔ)償,幀內(nèi)預(yù)測(cè),去方塊濾波 Abstract H.264 standard is a new generation of video compression coding standard which formulate by the Joint video team (JVT) who composed by the ISO/IEC and ITU-T. H.264 standard, just

4、 like the standards before, also commix by differential pulse code modulation (DPCM) and Discrete Cosine Transform (DCT) transformation coding. Technically, H.264 standard concentrated the merits of all the standards before and absorb their experience. H.264 applied technical such as forecast i

5、n frame, integer conversion, the different size forecast pieces, multiple reference frames, 1/4 image forecast precision, adaptive arithmetic coding, Deblocking filter, and based on the rate distortion algorithm optimization model selection algorithms. H.264 classified into Video Coding Layer (VCL)

6、and Network Abstraction Layer (NAL).Therefore, H.264 can achieve extremely high compression ratio, provide higher quality video in all code rate. This paper detailed introduced the main technique of H.264 standard, and accomplish H.264 code device with software implementation. It include the be

7、low substance, first of all reviewed video compression technique backdrop information, the condition of video coding research at the home and abroad, do an entirety directions to the H.264 coding scheme; Then analyze the whole number transformation, and Context-Adaptive Variable Length Coding (CAVLC

8、) and unite the macro-block size Self-adapt Block Transition( ABT ) technique; Afterwards the paper detailed analyze the intra-frame coding, and compare the different standards intra-frame coding effectiveness; Finally introducing the code device and make an analysis to the coding result. Keyword

9、s: Video coding, Whole number transformation, Motion estimate, Intra-frame coding, De-blocking filter 29 目 錄 摘 要 I Abstract II 1 緒 論 1 1.1 課題背景 1 1.2 視頻壓縮編碼的理論基礎(chǔ) 1 1.3 視頻壓縮編碼標(biāo)準(zhǔn) 2 1.3.1 H.261視頻編碼標(biāo)準(zhǔn) 2 1.3.2 H.263視頻編碼標(biāo)準(zhǔn) 2 1.3.3 MPEG-x視頻編碼標(biāo)準(zhǔn) 3 1.4 H.264視頻編碼標(biāo)準(zhǔn) 3 2 H.264算法

10、分析 5 2.1 H.264的三個(gè)不同檔次的應(yīng)用 5 2.2 幀內(nèi)預(yù)測(cè) 5 2.2.1 16 x16幀內(nèi)預(yù)測(cè) 6 2.2.2 4x4幀內(nèi)預(yù)測(cè)模式 7 2.2.3 色差分量的幀內(nèi)預(yù)測(cè) 8 2.3 幀間預(yù)測(cè) 8 2.3.1 樹型構(gòu)造的運(yùn)動(dòng)補(bǔ)償 8 2.3.2 1/4像素精度的運(yùn)動(dòng)估計(jì) 9 2.3.3 多參考幀模式選擇 9 2.4 變換與量化 9 2.4.1 整數(shù)DCT 變換 9 2.4.2 量化 10 2.5 熵編碼 10 2.5.1 Exp-Golomb碼 11 2.5.2 CAVLC 11 2.5.3 CABAC 12 2.6

11、 去方塊濾波 12 2.7 碼率控制 13 2.7.1 Lagrangian優(yōu)化算法 13 2.8 h.264傳輸 13 3 H.264標(biāo)準(zhǔn)中的幀預(yù)測(cè)技術(shù) 14 3.1 幀內(nèi)預(yù)測(cè) 14 3.1.1 4 x 4幀內(nèi)預(yù)測(cè) 14 3.1.2 16 x16幀內(nèi)預(yù)測(cè) 17 3.1.3 色差分量的幀內(nèi)預(yù)測(cè) 18 3.2 幀間預(yù)測(cè) 18 3.2.1 樹結(jié)構(gòu)的運(yùn)動(dòng)補(bǔ)償 19 3.2.2 半象素搜索與象素填充 20 3.2.1 SP幀(Primary SP-Frame)技術(shù) 22 4 H.264的軟件實(shí)現(xiàn) 23 4.1 開發(fā)環(huán)境 23 4.2 軟件介紹

12、 23 4.3 軟件設(shè)計(jì)結(jié)構(gòu) 23 4.4 結(jié)果分析 24 結(jié)束語 25 致 謝 27 參考文獻(xiàn) 28 1 緒 論 本章闡述目前網(wǎng)絡(luò)和多媒體通訊的現(xiàn)狀和由此帶來的挑戰(zhàn),回顧了視頻壓縮技術(shù)的背景知識(shí),扼要評(píng)述了國內(nèi)外視頻編碼的研究狀況和相關(guān)的國際標(biāo)準(zhǔn)與建議,針對(duì)這些問題指出了在H.264 中相應(yīng)的解決辦法,闡述H.264的研究背景、現(xiàn)狀以及發(fā)展方向,明確指出了H.264所面臨的問題。 1.1 課題背景 隨著半導(dǎo)體技術(shù)在處理能力及存儲(chǔ)容量上的進(jìn)步,Internet的不斷發(fā)展,人們希望在網(wǎng)上傳送更多的多媒體信息。視頻信號(hào)的傳輸是多媒體信息傳輸?shù)暮诵模?/p>

13、頻信號(hào)在計(jì)算機(jī)終端播放已不成問題,關(guān)鍵問題在于信號(hào)的壓縮及傳輸技術(shù)以及視頻編碼算法的發(fā)展,人們希望開發(fā)出一種性能更好的視頻編碼國際標(biāo)準(zhǔn)。在此需求下,ITU-T的視頻編碼專家組(VCEG)和ISO/IEC的活動(dòng)圖像專家組(MPEG)組成了一個(gè)聯(lián)合視頻小組(JVT),著手制訂一個(gè)比現(xiàn)有任何標(biāo)準(zhǔn)壓縮性能都要高出很多的嶄新的標(biāo)準(zhǔn)11-31,這個(gè)標(biāo)準(zhǔn)在ITU-T中稱為H.264,在ISO/IEC中稱為高級(jí)視頻編碼(AM ,并且編入MPEG-4,成為其第10部分.本文中,該標(biāo)準(zhǔn)被稱為H.264。 1.2 視頻壓縮編碼的理論基礎(chǔ) 視頻壓縮編碼的理論基礎(chǔ)是信息論。壓縮就是從時(shí)域、空域兩方面去除冗

14、余信息,即將可推知的確定信息去掉。如圖1.1為圖像編碼的一般原理: 原始圖像 量化器 反映射變換 熵編碼 信道 重建圖像 映射變換 熵解碼器 反量化器 圖1.1 圖像編碼的一般框圖 編碼方法大致可分為三類: (1)考慮到圖像信源的統(tǒng)計(jì)特性采用的預(yù)測(cè)編碼方法、變換編碼方法、矢量量化編碼方法、子帶-小波編碼方法及神經(jīng)網(wǎng)絡(luò)編碼方法等; (2)考慮到視覺特性采用的基于方向?yàn)V波的圖像編碼方法、基于圖像輪廓/紋理的編碼方法; (3)考慮到圖像傳遞的景物特征,采用的分形編碼、基于模塊的編碼方法。針對(duì)不同的數(shù)據(jù)冗余,可使用不同的壓縮編碼方法。 經(jīng)典的圖像壓縮編碼方法

15、就是利用統(tǒng)計(jì)冗余來達(dá)到減少圖像數(shù)據(jù)量的目的,其一般框圖如圖1.1所示。由圖可以看出,經(jīng)典的圖像編碼采用的是混合編碼的方法。 1.3 視頻壓縮編碼標(biāo)準(zhǔn) 1.3.1 H.261視頻編碼標(biāo)準(zhǔn) H.261是ITU-T為在綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)上開展雙向聲像業(yè)務(wù)(可視電話、視頻會(huì)議)而制定的,速率為64kb/s的整數(shù)倍。H.261只對(duì)CIF和QCIF兩種圖像格式進(jìn)行處理,每幀圖像分成圖像層、宏塊組(GOB)層、宏塊(MB)層、塊(Block)層來處理。   H.261是最早的運(yùn)動(dòng)圖像壓縮標(biāo)準(zhǔn),它詳細(xì)制定了視頻編碼的各個(gè)部分,包括運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)、DCT變換、量化、熵編碼,以及與固定速率

16、的信道相適配的速率控制等部分。 1.3.2 H.263視頻編碼標(biāo)準(zhǔn) H.263是最早用于低碼率視頻編碼的ITU-T標(biāo)準(zhǔn),隨后出現(xiàn)的H.263+及H.263++增加了許多選項(xiàng),使其具有更廣泛的適用性。 H.263是ITU-T為低于64kb/s的窄帶通信信道制定的視頻編碼標(biāo)準(zhǔn)。它是在H.261基礎(chǔ)上發(fā)展起來的,其標(biāo)準(zhǔn)輸入圖像格式可以是S-QCIF、QCIF、CIF、4CIF或者16CIF的彩色4∶2∶0亞取樣圖像。H.263采用了半象素的運(yùn)動(dòng)補(bǔ)償,并增加了4種有效的壓縮編碼模式。   無限制的運(yùn)動(dòng)矢量模式允許運(yùn)動(dòng)矢量指向圖像以外的區(qū)域?;诰浞ǖ乃阈g(shù)編碼模式使用算術(shù)編碼代

17、替霍夫曼編碼,可在信噪比和重建圖像質(zhì)量相同的情況下降低碼率。先進(jìn)的預(yù)測(cè)模式允許一個(gè)宏塊中4個(gè)8×8亮度塊各對(duì)應(yīng)一個(gè)運(yùn)動(dòng)矢量,從而提高了預(yù)測(cè)精度;兩個(gè)色度塊的運(yùn)動(dòng)矢量則取這4個(gè)亮度塊運(yùn)動(dòng)矢量的平均值。補(bǔ)償時(shí),使用重疊的塊運(yùn)動(dòng)補(bǔ)償,8×8亮度塊的每個(gè)象素的補(bǔ)償值由3個(gè)預(yù)測(cè)值加權(quán)平均得到。   PB-幀模式規(guī)定一個(gè)PB-幀包含作為一個(gè)單元進(jìn)行編碼的兩幀圖像。PB-幀模式可在碼率增加不多的情況下,使幀率加倍。   H.263+采用先進(jìn)的幀內(nèi)編碼模式;增強(qiáng)的PB-幀模式改進(jìn)了H.263的不足,增強(qiáng)了幀間預(yù)測(cè)的效果;去塊效應(yīng)濾波器不僅提高了壓縮效率,而且提高重建圖像的主觀質(zhì)量。

18、   H263++在H263+基礎(chǔ)上增加了3個(gè)選項(xiàng),主要是為了增強(qiáng)碼流在惡劣信道上的抗誤碼性能,同時(shí)為了提高增強(qiáng)編碼效率。 1.3.3 MPEG-x視頻編碼標(biāo)準(zhǔn) MPEG-1標(biāo)準(zhǔn)的碼率為1.2Mbit/s左右,可提供30幀CIF (352x288)質(zhì)量的圖像,是為CD-ROM光盤的視頻存儲(chǔ)和播放所制定的。MPEG-1標(biāo)準(zhǔn)視頻編碼部分的基本算法與H.261/H.263相似,也采用運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)、二維DCT,VLC游程編碼等措施。此外還引入了幀內(nèi)幀(I)、預(yù)測(cè)幀(P)、雙向預(yù)測(cè)幀(B)和直流幀(D)等概念,進(jìn)一步提高了編碼效率。在MPEG-1的基礎(chǔ)上,MPEG-2標(biāo)準(zhǔn)在提高圖像

19、分辨率、兼容數(shù)字電視等方面做了一些改進(jìn),例如它的運(yùn)動(dòng)矢量的精度為半像素;在編碼運(yùn)算中(如運(yùn)動(dòng)估計(jì)和DCT)區(qū)分“幀”和“場(chǎng)’,引入了編碼的可分級(jí)性技術(shù),如空間可分級(jí)性、時(shí)間可分級(jí)性和信噪比可分級(jí)性等。近年推出的MPEG-4標(biāo)準(zhǔn)引入了基于視聽對(duì)象( AVO:Audio-Visual Object)的編碼,大大提高了視頻通信的交互能力和編碼效率。MPEG-4中還采用了一些新的技術(shù),如形狀編碼、自適應(yīng)DCT、任意形狀視頻對(duì)象編碼等。但是MPEG-4的基本視頻編碼器還是屬于和H.263相似的一類混合編碼器。 1.4 H.264視頻編碼標(biāo)準(zhǔn) 2003年,ISO/IEC的運(yùn)動(dòng)圖像專家組(MP

20、EG)與ITU-T的視頻編碼專家組(VCEG)聯(lián)手制定了最新的第三代視頻編碼標(biāo)準(zhǔn)H.264/AVC。其主要目的就是為了提供更高的編碼效率和更好的網(wǎng)絡(luò)適應(yīng)性。H.264有多個(gè)技術(shù)改進(jìn),如:標(biāo)準(zhǔn)統(tǒng)一的VLC符號(hào)編碼,高精度、多模式的位移估計(jì),多參考幀,基于4x4塊的整數(shù)變換、在相同重構(gòu)圖像質(zhì)量下,與H.263+和MPEG-4 ASP標(biāo)準(zhǔn)相比,能節(jié)約50%的碼流;采用分層模式,定義了視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL),后者專為網(wǎng)絡(luò)傳輸設(shè)計(jì),能適應(yīng)不同網(wǎng)絡(luò)中的視頻傳輸,進(jìn)一步提高網(wǎng)絡(luò)的‘親和性’。H.264引入了面向IP包的編碼機(jī)制,有利于網(wǎng)絡(luò)中的分組傳輸,支持網(wǎng)絡(luò)中視頻的流媒體傳輸;具有較強(qiáng)

21、的抗誤碼特性,特別適應(yīng)丟包率高、干擾嚴(yán)重的無線視頻傳輸?shù)囊蟆? H.264標(biāo)準(zhǔn)提供了許多種編碼模式,例如僅幀內(nèi)編碼的luminance分量就有4種16x16預(yù)測(cè)模式和9種4x4預(yù)測(cè)模式,再加上4種chrominance分量的預(yù)測(cè)模式,這樣一個(gè)宏塊可能的模式組合就有(16*9+4)*4=592種。而該軟件在實(shí)現(xiàn)時(shí)為了找到R-D意義上最優(yōu)的模式,采用了拉格朗日乘法,即最小的J=D+ x R所對(duì)應(yīng)的模式被認(rèn)為是最優(yōu)的。這樣對(duì)每一個(gè)宏塊,程序要計(jì)算592次J=D+ x R,而D和R都要經(jīng)過實(shí)際的編碼和解碼過程才能得到,因此每編碼一個(gè)宏塊相當(dāng)于做了592次編碼和解碼。盡管這里的解碼不需要熵解碼

22、過程,有些MB也不是所有的模式組合都可用,但這種窮舉算法顯然太耗時(shí)。如果在編碼P幀時(shí)再和7種幀間預(yù)測(cè)模式組合一下,以判斷采用幀間編碼還是幀內(nèi)編碼,計(jì)算量就更大了。因此,H.264算法復(fù)雜度極大,編碼速度極慢,對(duì)硬件要求也很高。因此需要改進(jìn),開發(fā)快速算法。 2 H.264算法分析 視頻信號(hào)的數(shù)據(jù)量是很大的,為了達(dá)到高效的壓縮,必須充分利用各種冗余,一般來講,視頻序列里的冗余包括兩類。 一類是統(tǒng)計(jì)冗余,它包含: (1)頻譜冗余,指色彩分量之間的相關(guān)性; (2)空間冗余; (3)時(shí)間冗余,這是視頻壓縮區(qū)別于靜止圖像壓縮的根本點(diǎn),視頻壓縮主要利用時(shí)間冗余來實(shí)現(xiàn)大的壓縮比。 另

23、一類是視覺生理冗余,這是由于人類的視覺系統(tǒng)(HVS)特性造成的,比如人眼對(duì)色彩分量沒有對(duì)亮度分量敏感,對(duì)圖像高頻(即細(xì)節(jié))處的噪聲不敏感等。 針對(duì)這些冗余,視頻壓縮算法采用了不同的方法加以利用,但主要的考慮集中在空間冗余和時(shí)間冗余上。與以前的標(biāo)準(zhǔn)類似,H.264也采用了所謂的混合(hybrid)結(jié)構(gòu),即對(duì)空間冗余和時(shí)間冗余分別進(jìn)行處理。對(duì)空間冗余,標(biāo)準(zhǔn)通過變換及量化達(dá)到消除的目的,這樣編碼的幀叫做I幀;而時(shí)間冗余則是通過幀間預(yù)測(cè),即運(yùn)動(dòng)估計(jì)和補(bǔ)償來去除的,這樣編碼的幀叫做P幀或B幀。 2.1 H.264的三個(gè)不同檔次的應(yīng)用 (1)基本檔次:主要用于視頻會(huì)話,如會(huì)議電視,可視電話

24、,遠(yuǎn)程教育,遠(yuǎn)程醫(yī)療等。 (2)擴(kuò)展檔次:主要用于網(wǎng)絡(luò)視頻流。 (3)主要檔次:主要用于消費(fèi)應(yīng)用電子,如數(shù)字電視廣播。 2.2 幀內(nèi)預(yù)測(cè) 與以前的標(biāo)準(zhǔn)不同的是,H.264在編碼I幀時(shí),采用了幀內(nèi)預(yù)測(cè),然后對(duì)預(yù)測(cè)誤差進(jìn)行編碼。這樣就充分利用了空間相關(guān)性,提高了編碼效率。H.2 64 幀內(nèi)預(yù)測(cè)以16x16的宏塊為基本單位。首先,編碼器將與當(dāng)前宏塊同一幀的鄰近像素作為參考,產(chǎn)生對(duì)當(dāng)前宏塊的預(yù)測(cè)值,然后對(duì)預(yù)測(cè)殘差進(jìn)行變換與量化,再對(duì)變換與量化后的結(jié)果做熵編碼。熵編碼的結(jié)果就可以形成碼流了。由于在解碼器端能夠得到的參考數(shù)據(jù)都是經(jīng)過反變換與反量化后的重建圖像,所以為了使編、解碼一

25、致,編碼器端用于預(yù)測(cè)的參考數(shù)據(jù)就和解碼器端一樣,也是經(jīng)過反變換與反量化后的重建圖像。 幀內(nèi)預(yù)測(cè)的目的是生成對(duì)當(dāng)前宏塊的預(yù)測(cè)值。一個(gè)宏塊由一個(gè)16x16的luminance分量和兩個(gè)8x8的chrominance分量構(gòu)成,luminance塊有兩類幀內(nèi)預(yù)測(cè)方式,按標(biāo)準(zhǔn)中的記號(hào)表示為:Intra _16x 16和Intra_4x4,而兩個(gè)chrominance分量則采用相同的預(yù)測(cè)方式。Intra _16x 16是對(duì)整個(gè)16x16大小的luminance進(jìn)行預(yù)測(cè),一般用于圖像比較平坦的區(qū)域,共有4種預(yù)測(cè)方式.而Intra 4x4方式是將16x16大小的luminance劃分為16個(gè)4x4大小的亮度

26、塊,然后對(duì)每個(gè)4x4大小的塊進(jìn)行預(yù)測(cè),共有9種預(yù)測(cè)方式。 對(duì)于chrominance分量(Cr和Cb),預(yù)測(cè)是對(duì)整個(gè)8x8塊進(jìn)行的,共4種預(yù)測(cè)方式。 H.264的幀內(nèi)編碼框圖如圖2.1所示: 宏塊 幀內(nèi)預(yù)測(cè) 熵編碼 反變換 反量化 熵編碼 量化 變換 圖2.1 幀內(nèi)編碼框圖 2.2.1 16 x16幀內(nèi)預(yù)測(cè) 16 x 1 6 預(yù)測(cè)方式是基于在16x16塊的基礎(chǔ)上,用于對(duì)圖像中的相對(duì)不變的部分進(jìn)行編碼。16x16幀內(nèi)預(yù)測(cè)模式根據(jù)與當(dāng)前宏塊鄰近的33個(gè)像素來生成luminance分量的預(yù)測(cè)數(shù)據(jù),共有4種預(yù)測(cè)方式,如圖2.2.1,垂直(vertical)、水平(ho

27、rizontal), DC和平面(plane)。在進(jìn)行預(yù)測(cè)之前,首先要判斷這些鄰近像素是否可用(available),如果這些像素不可用,例如鄰近像素所在的宏塊位于其它Slice之中或當(dāng)前宏塊位于圖像邊緣時(shí)某些預(yù)測(cè)模式就用不起來。 Mean(H+V) 圖2.2.1 16 x16幀內(nèi)預(yù)測(cè) 2.2.2 4x4幀內(nèi)預(yù)測(cè)模式 在此模式下,編碼器將當(dāng)前宏塊16x16的luminance分量劃分為16個(gè)4x4的塊,然后根據(jù)每個(gè)4x4塊周圍的鄰近像素對(duì)該塊做預(yù)測(cè)。按理說,對(duì)一塊像素做預(yù)測(cè),其上下左右的像素都應(yīng)當(dāng)作為參考,但由于編碼順序的原因,H.264只選擇了13個(gè)像素作為參考。

28、 同 Intra_16x16模式一樣,在開始預(yù)測(cè)之前,首先需判斷A-M這些參考像素是否可用,如果有些參考像素不可用,那么有些預(yù)測(cè)模式也就不能用了。編碼器端用于預(yù)測(cè)的參考數(shù)據(jù)是經(jīng)過反變換與反量化后的重建圖像,所以判斷的主要依據(jù)就是看這些像素是否在當(dāng)前的4x4塊之前已經(jīng)完成編碼,即已經(jīng)是經(jīng)過重建了的圖像。如果4x4塊E-H參考像素所在的4x4塊尚未編碼,那么它們的E-H參考像素是不可用的。另外,如果E-H不可用而D是可用的,則用D來替代E-H并將E-H標(biāo)記為可用。 在決定了哪些參考像素可用后,就可以通過它們產(chǎn)生預(yù)測(cè)值了。H.264一共定義了9種Intra _4x4預(yù)測(cè)方式,除了DC方式(模式2

29、)之外,其它8種都是向某一個(gè)方向上進(jìn)行預(yù)測(cè),也就是做外插。 這8個(gè)預(yù)測(cè)方向和預(yù)測(cè)的方式如圖2.2.2所示: 8 6 1 4 5 0 7 3 圖2.2.2 4x4塊的8個(gè)預(yù)測(cè)方向 由圖中可以看出,如果某一塊區(qū)域內(nèi)的像素值呈現(xiàn)出一種方向性,那么選用與這個(gè)方向相近的某個(gè)預(yù)測(cè)方式,將會(huì)達(dá)到較好的預(yù)測(cè)效果。作為空間相關(guān)性的一種表現(xiàn),在空間上相臨的塊其預(yù)測(cè)模式也是相近的,所以對(duì)于Intra 4x4預(yù)測(cè),H.264并不直接編碼各個(gè)塊的預(yù)測(cè)模式,而是根據(jù)當(dāng)前塊左邊和上邊塊的預(yù)測(cè)模式,對(duì)當(dāng)前塊的預(yù)測(cè)模式進(jìn)行估計(jì),只有當(dāng)前塊的預(yù)測(cè)模式和這個(gè)估計(jì)出來的預(yù)測(cè)模式不相同時(shí)才額外傳送當(dāng)前塊的預(yù)

30、測(cè)模式。 2.2.3 色差分量的幀內(nèi)預(yù)測(cè) 該預(yù)測(cè)針對(duì)的是當(dāng)前宏塊的兩個(gè)8x8的色差分量Cr和Cb,共有4種模式,兩個(gè)chrominance分量采用相同的預(yù)測(cè)模式,預(yù)測(cè)對(duì)兩個(gè)分量分別進(jìn)行,預(yù)測(cè)的范圍是整個(gè)8x8的色差分量。預(yù)測(cè)的參考像素是同一個(gè)chrominance分量的周圍17個(gè)像素。 預(yù)測(cè)的過程同16x16基本相似,首先判斷這17個(gè)參考像素的可用性(availability),然后進(jìn)行預(yù)測(cè)。 2.3 幀間預(yù)測(cè) 2.3.1 樹型構(gòu)造的運(yùn)動(dòng)補(bǔ)償 H.264編碼支持從16x16到4x4范圍尺寸的運(yùn)動(dòng)補(bǔ)償塊,在這個(gè)范圍中亮度樣本可有多個(gè)選擇。每個(gè)圖像宏模塊亮

31、度組件可以按4種方式分開(如圖1所示):16x16、 16x8、8x16 和 8x8。每一個(gè)被分的子區(qū)是宏模塊的一部分。如果選擇了8x8的模式,每一個(gè)8x8模塊被按4種模式分成多個(gè)子塊(如圖2所示):8x8、 8x4、4x8 和 4*4 (被稱作宏模塊子區(qū))。這種模塊區(qū)和模塊子區(qū)在每個(gè)宏模塊產(chǎn)生大量的組合。這種劃分宏模塊為各種尺寸的動(dòng)態(tài)子模塊的方法被稱作樹型運(yùn)動(dòng)補(bǔ)償。 每一個(gè)區(qū)和子區(qū)要求由各自的運(yùn)動(dòng)矢量描述。每一個(gè)運(yùn)動(dòng)矢量都要被編碼和發(fā)送;除此之外,所選的區(qū)需在壓縮的比特流中編碼。選擇了大的區(qū)域意味著用少量的比特?cái)?shù)據(jù)去描述運(yùn)動(dòng)矢量和區(qū)域類型。然而,經(jīng)過補(bǔ)償后的運(yùn)動(dòng)的畫面還有大量的運(yùn)動(dòng)細(xì)節(jié)描寫

32、。選擇小的區(qū)的劃分會(huì)在使用運(yùn)動(dòng)補(bǔ)償后產(chǎn)生少量的編碼。因此,選擇分區(qū)的尺寸大小具有顯著的意義。總之,大的分區(qū)適合均勻的區(qū)域,小的分區(qū)適合描述細(xì)節(jié)。在宏模塊中每一個(gè)顯示組件的分辨率是亮度組件的一半,每一個(gè)顯示被按同一方式分成亮度元素。 2.3.2 1/4像素精度的運(yùn)動(dòng)估計(jì) 幀間編碼宏塊的每個(gè)分割或者子宏塊都是對(duì)參考圖像的某一相同尺寸區(qū)域進(jìn)行預(yù)測(cè)而得到的。兩者之間的差異(MV)對(duì)亮度成分采用1/4像素精度,色度1/8像素精度。亞像素位置的亮度和色度像素并不存在于參考圖像中,需利用鄰近已編碼點(diǎn)進(jìn)行內(nèi)插而得。如果MV的垂直和水平分量為整數(shù),參考?jí)K相應(yīng)像素就已實(shí)際存在。如果其中一個(gè)或兩個(gè)為分

33、數(shù),預(yù)測(cè)像素則要通過參考幀中相應(yīng)像素內(nèi)插獲得。 2.3.3 多參考幀模式選擇 H.264標(biāo)準(zhǔn)為幀間圖像編碼提供了多參考幀選擇,可選擇5個(gè)不同的參考幀, 進(jìn)行幀間預(yù)測(cè),這使得幀間編碼更加有效,恢復(fù)視頻的主觀效果更好,而且,使用多參考幀將會(huì)有助于H.264比特流錯(cuò)誤的恢復(fù),這樣比單獨(dú)參考幀方法可以節(jié)省5 %~10 %的傳輸碼率。另外,圖像編碼順序不是基于時(shí)間的圖像顯示順序,而是基于圖像之間的依賴關(guān)系。 2.4 變換與量化 將圖像的當(dāng)前像素值與預(yù)測(cè)值相減,就形成了預(yù)測(cè)殘差。殘差內(nèi)仍然含有空間冗余,為了消除這種冗余,通常采用變換編碼,即變換-量化-熵編碼三步。變換并不壓縮數(shù)

34、據(jù),它只是消除數(shù)據(jù)中的相關(guān)性,或者說將數(shù)據(jù)中的冗余(或相關(guān)性)以一種便于隨后進(jìn)行熵編碼的方式表現(xiàn)出來。壓縮是在熵編碼步驟中完成的。此外為了進(jìn)一步減少數(shù)據(jù)量,編碼器還對(duì)變換后的系數(shù)進(jìn)行量化,它的實(shí)質(zhì)是減少數(shù)據(jù)的取值范圍以減少每一個(gè)符號(hào)的熵。它會(huì)造成信息的損失,是有損編碼的一個(gè)重要步驟,它也是控制圖像率失真(R-D)特性的一個(gè)主要手段。在H.264中,變換與量化兩個(gè)步驟緊密相連。 2.4.1 整數(shù)DCT 變換 圖像編碼中常用的變換是DCT,因?yàn)樗谀撤N條件下近似于理論上最優(yōu)的K-L變換。但是如果直接采用DCT的定義進(jìn)行變換,會(huì)帶來兩個(gè)問題:一個(gè)是需要進(jìn)行浮點(diǎn)數(shù)操作,從而造成系統(tǒng)設(shè)計(jì)上

35、的復(fù)雜性:第二,由于變換核都是無理數(shù),而有限精度的浮點(diǎn)數(shù)不可能精確地表示無理數(shù),再加上浮點(diǎn)數(shù)的運(yùn)算可能會(huì)引入舍入誤差,這就使得在具體實(shí)現(xiàn)時(shí)會(huì)導(dǎo)致編解碼的不一致(mismatch),即反變換的輸出結(jié)果和正變換的輸入不一樣。為了克服這些問題,H.264采用整數(shù)DCT變換,使得變換操作僅用整數(shù)加減和移位操作就可以完成,這樣既降低了設(shè)計(jì)復(fù)雜度,又避免了編解碼的不一致,而由此帶來的編碼性能的減少微乎其微。需要注意的是,此時(shí)的變換已經(jīng)不是真正的DCT,仍然稱其為DCT變換只是為了說它是由DCT推導(dǎo)而來,且為了和另一個(gè)哈達(dá)瑪變換(Hadamard變換)相區(qū)別罷了。 H.264 編碼器的變換與量化過

36、程如圖2.3所示: Hadamard變換44 整數(shù)DCT變換44 Hadamard變換22 整數(shù)DCT變換44 整數(shù)DCT變換44 DC系數(shù)量化 AC系數(shù)量化 AC系數(shù)量化 AC系數(shù)量化 AC系數(shù)量化 AC系數(shù)量化 DC系數(shù)量化 AC系數(shù)量化 AC系數(shù)量化 16*16 4*4 其他 DC DC 圖2.3 H.264編碼器變換與量化過程 圖中輸入為預(yù)測(cè)殘差,輸出為準(zhǔn)備進(jìn)行熵編碼的數(shù)據(jù),一共有五類。為了更大程度地利用空間冗余,對(duì)于16x16幀內(nèi)預(yù)測(cè)模式,H.264在對(duì)16x16的luminance分量的

37、16個(gè)4x4塊進(jìn)行DCT變換后,將每個(gè)4x4塊的DC系數(shù)(還沒有經(jīng)過量化)提取出來,組成一個(gè)4x4的luminance DC塊,對(duì)其再進(jìn)行4x4的哈達(dá)瑪(Hadamard)變換。同樣,對(duì)8x8 chrominance分量的4個(gè)4x4塊進(jìn)行DCT變換后,也將每個(gè)4x4塊的DC系數(shù)提取出來,組成一個(gè)2x2的chrominance DC塊,對(duì)其進(jìn)行2x2的Hadamard變換。 2.4.2 量化 一般量化原理為: FQ=round(y/QP) 其中:y為輸入樣本點(diǎn)編碼,QP為量化步長(zhǎng),F(xiàn)Q為y的量化值,round()為取整函數(shù)。 2.5 熵編碼 在完成變換與量

38、化之后,這些數(shù)據(jù)就送往熵編碼器,完成整個(gè)變換編碼的最后一步。H.264一共有3種熵編碼: (1)Exp-Golomb碼(Exponential Golomb codes); (2)CAVLC (Context-based Variable Length Coding): (3)CABAC(Context-based Adaptive Binary Arithmetic Coding). H.264對(duì)這三種碼的使用范圍做了規(guī)定:(1)不出現(xiàn)在殘差數(shù)據(jù)中;(2)僅出現(xiàn)在殘差數(shù)據(jù)中:(3)僅出現(xiàn)在Slice層以下(從Slice data開始)的數(shù)據(jù)中。(1)和(2)都是采用查表方式,但是(

39、1)的表是固定的,而(2)在編碼過程中會(huì)根據(jù)周圍宏塊以及在之前編碼的數(shù)據(jù)信息,選擇不同的表,從而具有上下文自適應(yīng)功能。(3)屬于自適應(yīng)算術(shù)編碼,能夠獲得比(2)更好的壓縮性能和自適應(yīng)能力.。 2.5.1 Exp-Golomb碼 Exp-Golomb碼的編碼過程分為兩步:第一步將待編碼的數(shù)據(jù)轉(zhuǎn)換為一個(gè)中間變量code-Num。根據(jù)轉(zhuǎn)換方式,可將Exp-Golomb碼分為4種,按H.264的記號(hào)分別表示為uc, mc, sc和tc.其中uc和sc分別用于無符號(hào)整數(shù)和有符號(hào)整數(shù)的編碼,mc用于對(duì)coded_block_pattern編碼,這是表示當(dāng)前宏塊中哪些子塊含有非零系數(shù)的一個(gè)參數(shù)

40、,to用于編碼ref_idx_10和ref_idx_l1,該參數(shù)表示使用緩存中的哪個(gè)參考幀做幀間預(yù)測(cè),第二步是將code-Num映射為二進(jìn)制編碼。 2.5.2 CAVLC CAVLC是基于上下文的自適應(yīng)變長(zhǎng)碼的英文簡(jiǎn)稱,它用于編碼預(yù)測(cè)殘差。VLC的基本思想是對(duì)經(jīng)常出現(xiàn)的符號(hào)賦予較短的碼字,反之則較長(zhǎng)。與一般的VLC碼不同的是,CAVLC能夠根據(jù)以往編碼的數(shù)據(jù)在若干碼表中自適應(yīng)地選擇,找出與當(dāng)前編碼數(shù)據(jù)統(tǒng)計(jì)特性最相符的一個(gè)碼表來進(jìn)行編碼.并且它將以前標(biāo)準(zhǔn)中所采用的(Run, Level)二元組拆開來,分別進(jìn)行編碼,從而能達(dá)到更好的自適應(yīng)性,提高了編碼性能。由于CAVLC改進(jìn)的編碼性

41、能以及實(shí)現(xiàn)簡(jiǎn)單,它被JVT所采納,同上面的Exp-Golomb碼一起代替了原先的UVLC. CAVLC 的設(shè)計(jì)考慮了如下幾個(gè)事實(shí): 1)經(jīng)過變換與量化后的預(yù)測(cè)殘差中含有較多的0,這樣在Zig-Zag掃描之后,用Run和Level表示預(yù)測(cè)殘差可以取得較好壓縮效果。這一點(diǎn)在以前的標(biāo)準(zhǔn)中也用到了。這里L(fēng)evel表示非零系數(shù)值Run表示非零系數(shù)之前的0的數(shù)目. 2)殘差末尾的幾個(gè)非零系數(shù)一般為+1或-1,CAVLC對(duì)它們單獨(dú)進(jìn)行了編碼。 3)作為空間相關(guān)性的一種表現(xiàn),當(dāng)前塊中的非零系數(shù)個(gè)數(shù)和周圍塊的中的非零系數(shù)個(gè)數(shù)應(yīng)該差不多,CAVLC利用這一點(diǎn)自適應(yīng)地選擇編碼當(dāng)前塊中非零系數(shù)數(shù)的碼表。

42、4)位于低頻處的系數(shù)值一般較大,而位于高頻處的則相反,CAVLC利用這一點(diǎn)自動(dòng)地選擇編碼Level的碼表。 5)位于低頻處的非零系數(shù)一般是連著的,中間沒有零,此時(shí)用(Run,Level)形式來表示它們就顯得效率不高,因此CAVLC將Run和Level分開單獨(dú)進(jìn)行編碼。 2.5.3 CABAC CABAC只對(duì)二進(jìn)制符號(hào)0和1進(jìn)行編碼,所以首先要對(duì)輸入的Syntax Element (SE)的值做二值化(Bin-variation),即映射成一串0,1序列,序列中的每一個(gè)二進(jìn)制符號(hào)稱為一個(gè)“bin", bin是CABAC的編碼單元。對(duì)每一個(gè)bin的編碼包括兩個(gè)步驟:選擇c

43、ontext和進(jìn)行算術(shù)編碼。 由于空間相關(guān)性,SE的取值與鄰近相同的SE取值是相關(guān)的,這樣,描述當(dāng)前SE的概率就應(yīng)該用條件概率模型。Context就是這樣一個(gè)條件概率模型,每一個(gè)context描述了在鄰近SE的某一個(gè)取值或取值組合下,當(dāng)前SE中某一個(gè)bin的條件概率。由于一般鄰近SE有多種可能取值,所以當(dāng)前bin也對(duì)應(yīng)有多種不同的context(以ctxIdx索引),這就需要編碼器根據(jù)鄰近SE的取值選取不同的context(也就是ctxIdx )對(duì)當(dāng)前bin進(jìn)行編碼,這里鄰近的含義不僅包括空間上相鄰,而且也包括先前編碼的bin,即時(shí)間上相鄰。 在選擇了合適的context之后,編碼器就開始

44、算術(shù)編碼,在編碼完成后編碼器更新bin的概率(實(shí)際上是FSM的狀態(tài)),記錄在所用的context中。如前所述,編碼過程中計(jì)算子區(qū)間長(zhǎng)度和概率估計(jì)均采用查表操作,避免了乘除法運(yùn)算,而其它的一些運(yùn)算和操作也是針對(duì)整數(shù)進(jìn)行的。 當(dāng)前 bin 的編碼完成后,編碼器對(duì)下一個(gè)bin重復(fù)上述兩個(gè)步驟直至當(dāng)前SE的所有bin都編碼完畢。 2.6 去方塊濾波 在H.264/MPEG-4 AVC視頻編碼標(biāo)準(zhǔn)中,編解碼器反變換量化后圖像會(huì)出現(xiàn)方塊效應(yīng)。其產(chǎn)生的原因有兩個(gè): 1)在基于塊的幀內(nèi)和幀間預(yù)測(cè)殘差的DCT變換中,其變換系數(shù)的量化過程相對(duì)粗糙,因而反量化過程恢復(fù)的變換系數(shù)帶有誤差,會(huì)造成在圖

45、像塊邊界上的視覺不連續(xù)。 2)來自于運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),運(yùn)動(dòng)補(bǔ)償塊可能是從非同一幀的不同位置上的內(nèi)插樣點(diǎn)數(shù)據(jù)中復(fù)制而來的,因?yàn)檫\(yùn)動(dòng)補(bǔ)償塊的匹配不可能是絕對(duì)準(zhǔn)確的,所以就會(huì)在復(fù)制塊的邊界上產(chǎn)生數(shù)據(jù)不連續(xù)。而參考幀中存在的邊界的不連續(xù)也被復(fù)制到需要補(bǔ)償?shù)膱D像塊內(nèi)。 H.264采用了去除塊效應(yīng)濾波器,應(yīng)用于所有的宏塊之中。通過對(duì)宏塊邊緣的平滑濾波,減輕視頻編碼中的塊效應(yīng)。當(dāng)塊邊界上兩邊差較小則使用濾波器使差別“平滑”掉, 若邊界上圖像特征明顯則不使用濾波。這樣既減弱“塊效應(yīng)”的影響又避免濾掉圖像的客觀特征, 同時(shí)在相同主觀質(zhì)量下使比特率減少5%~ 10%。H.264根據(jù)內(nèi)容來選擇濾波器強(qiáng)度,按照所處理

46、的當(dāng)前邊緣附近像素值的不同, 選取不同強(qiáng)度的濾波器。 2.7 碼率控制 基于Lagrangian優(yōu)化算法的編碼控制模型。 2.7.1 Lagrangian優(yōu)化算法 若有集合S=(S1,S2……Sk),對(duì)每一個(gè)Sk選取編碼模式Q=(Q1,Q2…….Qk)中的Ik(Ik∈Qk)進(jìn)行編碼,在給定碼率Rc下,使編碼后的失真度最小。 即:D(S,I)R(S,I)<=Rc。 在實(shí)際中,若:J(S,I/X)=D(S,I)+X×R(S,I),最小則最優(yōu)。 其中,D(S,I) 為輸出流的失真度,R(S,I)為碼率, X為L(zhǎng)agrang參數(shù)。因此,對(duì)每一樣本選擇最

47、優(yōu)編碼模式,可以得到J(S,I/X)的最小值,實(shí)現(xiàn)碼率控制。 2.8 h.264傳輸 h.264的視頻編碼序列包括一系列NAL的單元,每個(gè)NAL單元包含一個(gè)RBSP。編碼片和序列RBSP結(jié)束符被定義為VCL NAL單元,其余的為NAL單元。典型的RBSP單元序列如圖2.8.1所示。每個(gè)單元都按獨(dú)立的NAL單元傳送。NAL單元的頭信息定義了RBSP單元的類型,NAL單元的其余部分則為RBSP數(shù)據(jù)。 SPS SEI PPS I片 圖像定界符 P片 P片 圖2.8.1 RBSP序列 3 H.264標(biāo)準(zhǔn)中的幀預(yù)測(cè)技術(shù) H.264標(biāo)準(zhǔn)中的基本預(yù)測(cè)技術(shù)是基于塊,而

48、不是基于對(duì)象的。它的編碼器是利用混合的編碼方案來提高編碼效率,這些方案包括高級(jí)的預(yù)測(cè)技術(shù)和有效熵編碼技術(shù)。在運(yùn)動(dòng)預(yù)測(cè)中它使用不同的塊的大小進(jìn)行預(yù)測(cè),以樹結(jié)構(gòu)的方式來組織預(yù)測(cè)模式。其主要的特點(diǎn)也包含在多參考幀預(yù)測(cè)方式和通用B幀的概念上。下面我們就從運(yùn)用在標(biāo)準(zhǔn)中兩種不同預(yù)測(cè)方式分別加以討論。 3.1 幀內(nèi)預(yù)測(cè) 在 H.2 64標(biāo)準(zhǔn)中,幀內(nèi)預(yù)測(cè)是在變換編碼之前進(jìn)行的,并且運(yùn)用了多種不同的幀內(nèi)預(yù)測(cè)方法,最大程度地減少圖像的空間冗余信息。就亮度信號(hào)而言,幀內(nèi)預(yù)測(cè)可分為4x4和16x16兩種預(yù)測(cè)方式,其中4x4方式有9種可選的預(yù)測(cè)模式,16x16方式有4種可選方式,而I_ PCM編碼方式是作

49、為這兩種方式的替代方式,允許編碼器不經(jīng)過預(yù)測(cè)和變換編碼過程,而是直接把編碼的抽樣值傳送過去。對(duì)色差信號(hào)則采用8x8預(yù)測(cè)方式,只有1種預(yù)測(cè)模式。 在 H. 264標(biāo)準(zhǔn)的幀內(nèi)預(yù)測(cè)中,當(dāng)前塊的抽樣值總是利用鄰塊的抽樣值來獲取。這樣也許會(huì)因?yàn)樵谙噜彽膸g編碼的宏塊的運(yùn)動(dòng)補(bǔ)償誤差而引起圖像誤差的擴(kuò)散。因此,在圖像編碼過程中還有一種限制幀內(nèi)編碼模式,此時(shí)只允許相鄰的幀內(nèi)預(yù)測(cè)宏塊才可以作為其他當(dāng)前宏塊的參考宏塊。 3.1.1 4 x 4幀內(nèi)預(yù)測(cè) 4x4 幀內(nèi)預(yù)測(cè)方法是獨(dú)立地基于在4X4塊上,用于對(duì)圖像細(xì)節(jié)部分進(jìn)行編碼。它的基本思路是從不同的方向計(jì)算、比較塊中各個(gè)像素之間的亮度差值,即梯度值。

50、通過選擇具有最小預(yù)測(cè)誤差的方向作為最佳的預(yù)測(cè)方向。下面對(duì)其中的預(yù)測(cè)模式舉例說明。見下圖3.1.1,其中4X4塊中16個(gè)抽樣值(a-p) 是由先前解碼鄰近宏塊抽樣值(A-Q)利用各種預(yù)測(cè)模式預(yù)測(cè)得來。 各預(yù)測(cè)模式(見圖2.2.2)的實(shí)現(xiàn): (1)模式2:D C預(yù)測(cè) 如果所有的參考樣點(diǎn)均在圖像內(nèi),那么: DC= (A+B+C+D+I+J+K+L+4) /8 如果A, B, C, D在圖像外,而I, J, K和L在圖像中, DC=(I+J+K+L+2) 14 如果I, J, K和L在圖像外,而A,日,C, D在圖像中, DC= (A+B+C+D+2) /4 如果所有的參考樣點(diǎn)均在

51、圖像外,那么: DC =128 相關(guān)程序如下: s0=0; if(block_available_up&&block_available_left) { s0=(P_A+P_B+PC+PD+P_I+P_J+P_K+P_L+4)/(2+BLOCK_SIZE); } else if (block_available_up&&!block_available_left) { s0 =(P_I+P_J+P_K+P_L+2)/BLOCK_SIZE; } else if (block_available_ up && !block_

52、available_left) { s0=(P_A+P_ B+P_C +P_D+2)/BLOCK_SIZE; } else //if (!block_available_up && !block_available_left) s0 = 128; for(j =0;j< BLOCK_SIZE;j+ +) for (i =0;i< BLOCK_SIZE;i+ +) img ->mpr[i+ioff][j+joff]=s0; 其中P _A-P_ L分別代表著圖3.1.1中A-L的值,BLOCK SIZE的值為4。 (2)模式0:垂直預(yù)測(cè) 如

53、果A, B, C, D存在,那么: a, e, i, m由A預(yù)測(cè)得到; b, f , j , n 由B預(yù)測(cè)得到: c, g ,k ,o 由C預(yù)測(cè)得到; d, h ,!.p由D預(yù)測(cè)得到。 相關(guān)程序如下: for(j=0;j<BLOCK_SIZE;j++) for (i= 0;i <BLOCK_SIZE;i++) img->mpr[i+ioff][j+joff]= imgY[pixb.pos.y][pix.b.pos.x]; 其中 imgY[pixb.pos.y][pix.b.pos.x]存放著上面鄰近塊的抽樣值,相當(dāng)于A--D的值。 (3)模式1::水平預(yù)測(cè)

54、 如果 !, J, K 和 L 存在,那么: a, b , c ,d 由I預(yù)測(cè)得到; e, f , g ,h 由J預(yù)測(cè)得到: i, j , k , ! 由K預(yù)測(cè)得到; m, n ,o ,p由L預(yù)測(cè)得到。 相關(guān)程序如下: for(j=0;j<BLOCK_SIZE;j++) for (i= 0;i <BLOCK_SIZE;i++) img->mpr[i+ioff][j+joff]=imgY[pix_a[j].pos_y][pix_a[j].pos_x]; 其中imgY[pix_a[j].pos_y][pix_a[j].pos_x]存放著左邊鄰近塊的抽樣值,相當(dāng)

55、于I一L的值。 (4)模 式 3::對(duì)角方向-下/左方向預(yù)測(cè) 如果 A, B ,C ,D ,E ,F ,G ,H 存在,那么: a= (A + 2 B+ C +2 ) / 4 e, b = (B + 2C + D +2 ) 1 4 i,f, c= (C+2D+E+2) /4; m,j,g,d=(D+2E+F+2) /4 n, k, h = (E+2 F+G+2) /4 o,l=(F+2G+H+2) /4 p= (G+3H+2) /4 相關(guān)程序如下: img->mpr[O+ioff][O+joff]=(P_A +P_C+2*(P_B)+2)/4; img->m

56、pr[1+ioff][O+joff]= img->mpr[O+ioff][O+joff]=(P_B+P_D+2*(P_C)+2)/4; img->mpr[2+ioff][O+joff]= img->mpr[1+ioff][1+joff]= img->mpr[O+ioff][2+joff]=(P_C+P_E+2*(P_D)+2)/4; img->mpr[3+ioff][O+joff]= img->mpr[2+ioff][1+joff]= img->mpr[1+ioff][2+joff]= img->mpr[O+ioff][3+jof

57、f]=(P_D+P_F+2*(P_E)+2)/4; img->mpr[3+ioff][1+joff]= img->mpr[2+ioff][2+joff]= img->mpr[1+ioff][3+joff]=(P_E+P_G+2*(P_F)+2)/4; img->mpr[3+ioff][2+joff]= img->mpr[2+ioff][3+joff]=(P_F+P_H +2*(P_G)+2)/4; img->mpr[3+ioff][3+joff]=(P_G+3*(P_H)+2)/4; 當(dāng)相對(duì)于本塊的右上角的鄰塊不存在時(shí),那么P_E=P_F=P_

58、G=P_H=P_D。 a b c d e f g h i j k l m n o p A B C D E F G H I J K L 圖3.1.1 4X4子快中及其參考樣點(diǎn)分布 3.1.2 16 x16幀內(nèi)預(yù)測(cè) 16 x 16預(yù)測(cè)方式是基于在16x16塊的基礎(chǔ)上,用于對(duì)圖像中的相對(duì)不變的部分進(jìn)行編碼。 Intra_16x16幀內(nèi)預(yù)測(cè)模式根據(jù)與當(dāng)前宏塊鄰近的33個(gè)像素來生成luminance分量的預(yù)測(cè)數(shù)據(jù),共有4種預(yù)測(cè)方式,垂直(vertical)、水平(horizontal), DC和平面(plane)。在進(jìn)

59、行預(yù)測(cè)之前,首先要判斷這些鄰近像素是否可用(available),如果這些像素不可用,例如鄰近像素所在的宏塊位于其它Slice之中或當(dāng)前宏塊位于圖像邊緣時(shí)某些預(yù)測(cè)模式就用不起來。對(duì)于垂直模式,如果H可用的話,預(yù)測(cè)值即為H,否則不能使用此模式,對(duì)于水平模式,如果V可用的話,預(yù)測(cè)值即為V,否則不能使用此模式,對(duì)于 DC 模式,如果H和V都可用,就用這32個(gè)像素的均值作為預(yù)測(cè)值,如果只有H或V可用,就用這16個(gè)像素的均值作為預(yù)測(cè)值,如果H和V都不可用,例如當(dāng)前宏塊位于一個(gè)Slice的開頭,則預(yù)測(cè)值為128.,對(duì)于plane模式,要求必須所有的33個(gè)鄰近像素都可用,這種方式實(shí)質(zhì)上就是利用H和V做外插(

60、extrapolation),為便于敘述,引入一個(gè)坐標(biāo)系,其中橫向?yàn)閤軸,縱向?yàn)閅軸,定義當(dāng)前宏塊左上角像素的坐標(biāo)為(0,0)。用P(x,y)表示位于坐標(biāo)(x,y)處的33個(gè)鄰近像素值,其中H對(duì)應(yīng)p(x, -1),x= 0…15, V 對(duì)應(yīng)P(-1,Y ),y= 0…15,而左上角處的鄰近像素值為p(-1,1) 。預(yù)測(cè)值用pred(x,y),x,y= 0…15表示。其中如果參考樣點(diǎn)不在編碼圖像內(nèi)則以128代替。 模式0: 垂直預(yù)測(cè) Pred (i,j)=P(i,-1) i,j =0...15 模式1: 水平預(yù)測(cè) Pred(i,j)=P(-1,j) i, j= 0...15 模式2

61、: 直流預(yù)測(cè) Pred(i,j)=((∑(P(-1,j)+P(i,-1)))+16)>>5 i,j=1...15 模式3: 平面預(yù)測(cè) predc(x,y)=Clipl(( a+ b * (x 一7)+c*(y一7)+16)>>5) x,y =0..15 其中: a=16 * (p(-1,15) + p(15,-1)) b=(5 * H + 32)>>6 c=(5 * V + 32)>>6 H=∑(x+1 ) *(p (8+x , -1)-p(6-x,-1)) x=0…7 V=∑(y+ 1) *(p (-1,8+y )-p(-

62、1,6-y)) y=0…7 Clipl(x )代表將x位于0到255之間(含),即 Clipl(x)=255 x> 255 0 x <0 x 0<_x<_255 3.1.3 色差分量的幀內(nèi)預(yù)測(cè) 該預(yù)測(cè)針對(duì)的是當(dāng)前宏塊的兩個(gè)8x8的色差分量Cr和Cb,共有4種模式,兩個(gè)chrominance分量采用相同的預(yù)測(cè)模式,預(yù)測(cè)對(duì)兩個(gè)分量分別進(jìn)行,預(yù)測(cè)的范圍是整個(gè)8x8的色差分量。預(yù)測(cè)的參考像素是同一個(gè)chrominance分量的周圍17個(gè)像素。 預(yù)測(cè)的過程同Intra_16x16基本相似,首先判斷這17個(gè)參考像素的可用性(avail

63、ability),然后進(jìn)行預(yù)測(cè)。 3.2 幀間預(yù)測(cè) 幀間預(yù)測(cè)是利用先前已編碼的圖像作為參考圖像對(duì)當(dāng)前圖像進(jìn)行預(yù)測(cè)的一種方式。它把參考圖像的抽樣點(diǎn)通過運(yùn)動(dòng)矢量的補(bǔ)償作為當(dāng)前圖像抽樣值的參考值。H.264/AVC標(biāo)準(zhǔn)中使用了從H.261標(biāo)準(zhǔn)以來主要標(biāo)準(zhǔn)中使用的塊結(jié)構(gòu)運(yùn)動(dòng)補(bǔ)償。然而,它與早期標(biāo)準(zhǔn)最大區(qū)別在于: 1) 支持多種塊結(jié)構(gòu)的預(yù)測(cè); 2) 運(yùn)算精度能精確到1/4像素點(diǎn)上。 在H.26 4標(biāo)準(zhǔn)中還使用了H.263標(biāo)準(zhǔn)中曾使用過的多幀預(yù)測(cè)的方法,主要思想是增加運(yùn)動(dòng)矢量中時(shí)間軸的估計(jì)參考幀數(shù)。在宏塊的級(jí)別上,允許選擇一個(gè)或幾個(gè)前面視頻幀作為參考幀。用于運(yùn)動(dòng)補(bǔ)償?shù)亩鄮A(yù)測(cè)方式在大多

64、數(shù)情況下會(huì)明顯改善預(yù)測(cè)增益。 下面我們就以在兩種不同類型的條(slice)中使用的幀間預(yù)測(cè)方式進(jìn)行討論。在說明它們之前我們首先介紹樹結(jié)構(gòu)的運(yùn)動(dòng)補(bǔ)償,其中主要簡(jiǎn)述了宏塊的分塊。 3.2.1 樹結(jié)構(gòu)的運(yùn)動(dòng)補(bǔ)償 在H.264標(biāo)準(zhǔn)中獲得運(yùn)動(dòng)補(bǔ)償?shù)膲K結(jié)構(gòu)大小不再局限于在宏塊的基礎(chǔ)上,可以從宏塊的分塊或子分塊中獲取運(yùn)動(dòng)矢量。每個(gè)宏塊也許被按照?qǐng)D3.2.1.和3.2.2中的方式進(jìn)行分解。 16×16 8 × 16 16×8 8×8 圖3.2.1 宏塊分塊中的子分塊:16x16, 8x16, 16x8, 8x8 8×8

65、4 × 8 8×4 4×4 圖3.2.1宏塊分塊中的子分塊:8x8,4x8,8x4,4x4 由圖3.2.1可知,16 x 1 6宏塊可能被分解為一個(gè)16 x 16塊,或2個(gè)8 x16塊,或2個(gè)16 x 8塊,或4個(gè)8 x 8塊。如果使用8 x 8模式,每個(gè)8 x 8的宏塊分塊(Macro-block partitions)將會(huì)按照?qǐng)D3.2.2進(jìn)一步分解為8 x 8, 4 x 8, 8 x 4, 4 x 4類型的塊。 這些分塊和子分塊將會(huì)使得每個(gè)宏塊中包含有許多不同大小塊。利用各種大小的塊進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)姆椒ㄎ覀儗⒎Q為樹結(jié)構(gòu)的運(yùn)動(dòng)補(bǔ)償(tre

66、e structured motion compensation.)。 每個(gè)塊或子塊都包含有一個(gè)獨(dú)立的運(yùn)動(dòng)矢量。每個(gè)運(yùn)動(dòng)矢量都將會(huì)被編碼,傳送,另外分塊方式也必須被編碼在數(shù)據(jù)流中。選擇大的分塊方式(16 x 16或16 x 8, 8 x 16)也許只需要傳送很少的比特用于說明運(yùn)動(dòng)矢量和分塊方式。但是運(yùn)動(dòng)補(bǔ)償后抽樣點(diǎn)差值也許將會(huì)比較大。選擇小的分塊方式(8 x 4或4 x 4)也許能得到很小運(yùn)動(dòng)補(bǔ)償后抽樣點(diǎn)差值,但是花費(fèi)很多比特去傳輸運(yùn)動(dòng)矢量和分塊方式。因此對(duì)于分塊的選擇將會(huì)對(duì)壓縮效果有著重大的影響。通常,大的分塊方式用于幀內(nèi)均勻的部分,而小的分塊方式將有利于圖像中細(xì)節(jié)描述。由于采用不同大小的

67、塊進(jìn)行幀間預(yù)測(cè),使得運(yùn)動(dòng)估計(jì)模型更接近物體的實(shí)際運(yùn)動(dòng),一般來說,使用小的運(yùn)動(dòng)補(bǔ)償塊可以提高預(yù)測(cè)精度,具體地說,小的塊增強(qiáng)了編碼模型處理精細(xì)運(yùn)動(dòng)細(xì)節(jié)能力,而且不會(huì)產(chǎn)生大的塊效應(yīng),同時(shí)提高了主觀視覺質(zhì)量。 每個(gè)色度塊將按照亮度的分塊方式進(jìn)行分塊。由于宏塊中色度分辨率是亮度分辨率的一半,因此其塊的大小不管在水平還是垂直方向上都只是亮度塊的一半。同時(shí),色度塊上垂直運(yùn)動(dòng)向量和水平運(yùn)動(dòng)向量也只是亮度塊的一半。 3.2.2 半象素搜索與象素填充 H.264比其它壓縮標(biāo)準(zhǔn)有更高的壓縮比,同時(shí)也能保證更好的圖像質(zhì)量,其原因就在于能夠最大程度上的消除冗余數(shù)據(jù),這也就要求能將運(yùn)動(dòng)估計(jì)做得足夠精確,這樣,H.264的算法中引入了半像素搜索,也就是在做運(yùn)動(dòng)估計(jì)的時(shí)候,當(dāng)完成整數(shù)像素搜索后,在匹配的像素點(diǎn)周圍就可以進(jìn)行半像素搜索了,也稱之為小菱形搜索,如圖3.2.2: 圖3.2.2 全象素和半象素搜索圖

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲