H.264簡單總結

來源:互聯網
上載者:User
(quan整理) 一、視頻資訊和訊號的特點

1.1直觀性       利用人的視覺系統,直接擷取視頻資訊1.2確定性       視頻資訊只管具體,不易與其他內容混淆1.3高效性       利用視覺系統,人們可以並行的觀察映像的各個象素,因此具有高效性。1.4廣泛性       視覺系統占外界資訊總量的70%1.5視頻訊號的高帶款性       視頻資訊包含大量的變化的資訊,資訊量極大,傳輸網路所需要的頻寬相對較大。  二、視頻壓縮的要求和可能性2.1視頻壓縮編碼的目標                 由於視頻資訊量大,傳輸頻寬高,就要求先對視頻源壓縮,然後傳輸,以便節約頻寬和儲存空間。                (1)       視頻必須壓縮在一定的頻寬內,要保證足夠的壓縮比。                (2)       視頻壓縮後,經恢複要保證一定的視頻品質                (3)       視頻編碼器的實現方式應力求簡單、易實現、低成本、可靠性高。2.2視頻壓縮的可能行                (1)時間相關行                     在一組視頻序列中,相鄰相鄰兩幀只有極少的不同之處,這便是時間相關性。                (2)空間相關性                     在同一幀中,相鄰象素之間有很大的相關性,兩象素越近,側相關性越強。  三、 視頻編碼技術3.1基本結構       視頻編碼方式與採用的信源有關。根據採用的信源的模型,視頻編碼可以分為兩大類:基于波形的編碼和基於內容的編碼。3.2 基于波形的編碼       如果採用“一幅映像由許多象素構成”的信源模型,這種信源模型的參數就是象素的亮度和色度的幅度值,對這些參數進行編碼的技術即為基于波形編碼。       利用象素空間的相關性和幀間的時間相關性,採用預測性編碼和變化編碼技術,減少視頻訊號的相關性,從而顯著降低視頻序列的碼率,實現壓縮編碼的目標。3.3基於內容的編碼        如果採用一個分量有幾個物體構成的信源模型,這種信源模型的參數事各個物體的形狀,紋理,運動,對這些參數進行編碼的技術就是基於內容的編碼。 四、 h264 的應用4.1 H. 264的技術特點可以歸納為三個方面        (1)注重實用;        (2)注重對移動和IP網路的適應;        (3)在混合編碼器的基本架構下,對其主要關鍵組件都做了重大改進,如多模式運動估計、幀內預測、多幀預測、基於內容的變長編碼、4X4二維整數變換等。        (4)在關注H. 264的優越效能的同時必然需要衡量其實現難度。從總體上說,H. 264效能的改進是以增加複雜性為代價而獲得的。據估計,H. 264 編碼的計算複雜度大約相當於H. 263的3倍,解碼複雜度大約相當於H. 263的2倍.4.2  h264應用可分為3個層級:        (1) 基本檔次:  (簡單版本, 應用面廣 , 支援幀內和幀間編碼,基於可變程度的熵編碼.)                                  應用領域:  視頻會話,會議電視, 無線通訊等即時通訊.        (2) 主要檔次:  ( 採用了多項提高映像品質和增加壓縮比的技術措施, 支援隔行視頻, 支援基於內容相關的自適應的算術編碼.)                                  應用領域:  數位廣播與數位視訊儲存.       (4)擴充檔次: 應用領域: 可用於各種網路的視頻流傳輸,ApsaraVideo for VOD 五、 視頻編碼原理5.1基本概念              (1)視頻編碼器 能夠對一個映像或者一個視頻序列進行壓縮,產生碼流。                在中,編碼器輸入的幀或場Fn,以宏塊為單位被編碼器處理。              如果採用幀間預測性編碼:其預測值P,是由已編碼的映像做參考,經運動補償得到的。預測映像P和當前幀Fn相減,得到兩映像的殘差值Dn,Dn在經過轉換T,量化Q,去處空間冗餘,得到係數X,將X重排(使資料更加緊湊),熵編碼(加入運動向量。。。一些映像相關得資訊),得到nal資料。              再編碼器中有個重構的過程(解碼的過程),量化係數X,反量化,反變換,得到Dn’,Dn’和預測映像P相加,得到uFn’,再濾波得到Fn’,Fn’就是Fn編碼再解碼後得映像。              如果採用幀內預測性編碼:預測值P,是由當前片中,己編碼的宏塊預測得到的(亮度4×4或者16×16預測,色度8×8預測)。當前待處理的塊,減去預測值P,得殘差值Dn,Dn在經過轉換T,量化Q,得到係數X,將X重排(使資料更加緊湊),熵編碼,得到nal資料。              再重構的過程中,量化係數X,反量化,反變換,得到Dn’,Dn’和預測映像P相加得到當前宏塊編碼解碼後得值,該值可以用來做幀內預測的參考宏塊。              編碼器要有重構機制的原因:重構過程,實質上是個解碼的過程,解碼後的映像和源圖肯定有差別,我門利用解碼後的映像做參考,就能夠和解碼器中保值一致,就能夠提高映像的預測精度。(再解碼器中,是利用己解碼的映像做參考,是從解碼的映像預測出下一副映像)               (2)視頻解碼器 能夠對一個碼流解碼,長生和源圖或源視頻序列相近的映像或視頻序列。如果解碼出的映像和源圖是一樣的,這個編解碼過程是無損的,否則是有損。                       解碼器的實現和編碼器的重構機制,是一樣的。               (3)場 、幀、映像                     場:隔行掃描的映像,偶數行成為頂場行。奇數行成為底場行。所有頂場行稱為頂場。所有底場行稱為底場。                     幀:漸進式掃描的映像。                     映像:場和幀都可認為是映像。              (4)宏塊、片:                     宏塊:一個宏塊由一個16×16亮度塊、一個8×8Cb和一個8×8Cr組成。                     片:一個映像可以劃分成一個或多個片,一個片由一個或多個宏塊組成。5.2編碼資料格式              5.2.1  h264支援4:2:0的連續或隔行視頻編碼解碼。              5.2.2  h264的編碼格式                            制定h264的主要目標有兩個:                            (1)得到高的視頻壓縮比                            (2)具有良好的網路親和性,即可適應於各種傳輸網路。                            為此,h264的功能分為兩層,視頻編碼層(VCL)和網路提取層(NAL)                            VCL資料即被壓縮編碼後的視頻資料序列。在VCL資料要封裝到NAL單元中之後,才可以用來傳輸或儲存。NAL儲存格式如:

   

Nal頭 Rbsp Nal頭 Rbsp Nal頭 Rbsp
             5.2.3         h264碼流結構5.3參考映像           H264為提高精度,H264最多可從15個映像總進行選擇,選出最佳的匹配圖           優點:  大大提高預測精度           缺點:    複雜度大為增加           參考映像由參考列表(list0,list1)管理,          P幀有一個參考列表 list0          B幀有兩個參考列表 list0 和 list 1 5.4幀內預測          預測塊P是基於已編碼重建塊和當前塊形成的.          對於亮度的預測:4×4亮度預測,16×16亮度預測          對於色度象素預測:   8×8色度預測         5.4.1  4×4亮度預測                          4×4亮度預測 有9種預測模式                                            (a)利用上面和左面的象素,對a~q進行幀內4×4預測                  (b)幀內4×4預測的8個方向                        
模式 描述
模式 0 (垂直) 由上邊象素垂直推出相應象素值
模式 1 (水平) 由左邊象素水平推出相應象素值
模式 2 (DC) 由上邊及左邊平均值推出所有象素值
模式 3 (下左對角) 由45度方向象素插入得出相應象素值
模式 4 (下右對角線) 由45度方向象素插入得出相應象素值
模式 5 (右垂直) 由26.6度方向象素值插入得出相應象素值
模式 6 (下水平) 由26.6度方向象素值插入得出相應象素值
模式 7 (左垂直) 由26.6度方向象素值插入得出相應象素值
模式 8 (上水平) 由26.6度方向象素值插入得出相應象素值
       9種預測模式計算產生的相應的預測塊(SAE 定義了每種預測的預測誤差),其中 SAE 最小的預測塊與當前塊最匹配                5.4.2  16×16亮度預測模式―――共有4種預測模式                  
模式 描述
模式 0 (垂直) 由上邊象素推出相應象素值
模式 1 (水平) 由左邊象素推出相應象素值
模式 2 (DC) 由上邊和左邊象素平均值推出相應象素值
模式 3 (平面) 利用線性"plane"函數推出相應象素值,適用於亮度變化平緩地區
           5.4.3  8×8色度塊預測模式                   4種預測模式,類似幀內16*16預測,只是編號不同                   DC 為模式 0, 水平為模式 1, 垂直為模式2, 平面為模式 3 5.5 幀間預測          H264幀間預測是利用已編碼的幀或場和基於塊的運動補償。在h264中,塊的尺寸更加靈活(16×16到4×4)。         5.5.1  基本概念                      活動圖表像臨近幀中的景物存在一定的相關性,因此將映像分成若干塊或宏塊,並設法搜尋出每個塊或宏塊在鄰近幀映像中的位置,並得出兩者之間的空間位置的便宜量.得到的相對位移量就是通常所指的運動向量(MV).到運動向量的過程稱為運動估計(ME).         5.5.2樹狀運動補償               每個宏塊(16×16)的亮度,可以按4種方式分割:1個16×16,2個16×8,2個8×16,4個8×8。8×8模式的子塊可以繼續劃分:1個8×8,2個4×8,2個8×4,4個4×4。這種分割的運動補償,稱為樹狀運動補償。                                             樹狀運動補償,靈活和細緻的劃分,大提高了運動估計的精確程度       塊的大小可變。在運動估計時,可以靈活地選擇塊的大小。在宏塊(MB)劃分上,H.264採用了16×6,16×8,8×16,8×8四種模式;當劃分為8×8模式時,又可進一步採用8×4,4×8,4×4三種子宏塊劃分模式進一步劃分,這樣做既可以使運動物體的劃分更加精確,減小運動物體邊緣的銜接誤差,又可以減小變換過程中的計算量。當對較大的平滑地區採用Intra_16×16的幀間預測方式時,為減小小尺寸變換帶來的塊間灰階差異,H.264採用了對亮度資料的16個4×4塊的DC係數進行第二次4×4變換,對色度資料的4個4×4塊的DC係數進行2×2變換的方式。       5.5.3 運動向量       幀間編碼宏塊的每個子宏塊都是從參考映像的某一相同尺寸地區進行預測得到 的。兩者之間的差異(MV),對亮度成分採用1/4象素精度,色度1/8象素精度。  附錄: 264 學習指南―――分三個階段學習1、第一個階段:學習H.264,首先要把最基本最必要的資料拿在手裡(//172.22.113.200/share/h264/H.264相關論文/其他/經典文章)。這些資料包括:標準文檔+測試模型+經典文章。首先看《H.264_MPEG-4 Part 10 White Paper》,看完之後再看《Video coding using the H.264 MPEG-4 AVC compression standard》和《Halsted.Press.H.264.And.MPEG-4.Video.Compression.Video.Coding.For.Next.Generation.Multimedia.eBook-LiB》,然後可以抽空看《Overview of the H.264_AVC Video Coding Standard.pdf》。這幾篇文章看完後,你應該對H.264的整體架構有個比較深入的瞭解了。前三篇文章可能需要花費你兩~三周的時間。 2、第二階段:       看代碼。這個時候你最常用的工具就是標準文檔和測試模型(建議使用JM86)。看代碼也要先從整體架構入手。先搞懂H.264的整體架構在代碼裡是怎麼分布的,一個功能模組的前伸模組和後繼模組是什麼。也就是搞清楚整個代碼流程。這個階段對標準文檔的使用可能很少。3、第三階段:然後你找到一個自己感興趣的切入點,開始以此為中心研究這個問題。你研究問題的時候應該是聯絡測試模型來研究,這個時候你就需要仔細看代碼中對這個問題的實現了。這個階段我絕對支援你一行行代碼跟蹤,一個參數一個參數地跟蹤。而代碼中不懂的地方可能需要查標準。這時你再來看標準文檔就有了針對性。也因為能將標準文檔和代碼對應起來,從而看標準文檔也不覺得有太大困難,也能明白標準文檔說的是什麼問題,在測試模型中是如何通過代碼實現的。在這個階段中,會牽連到很多H.264的相關知識,這樣通過以點帶線,以線帶面。會對H.264的內容認識越來越多。而你也就找到了自己的方向。==========【注意事項】==========1、切忌將代碼和標準文檔獨立開看,否則,你的困難會很大。2、對於剛開始接觸H.264的人,切忌直接看代碼和標準,哪怕是將標準和代碼結合起來看,你也會不太順利。換句話說:在沒有瞭解H.264整體架構之前,你最好什麼都不要做。

相關文檔:《H.264碼流結構》
下一篇:《H.264/AVC技術進展及其務實發展策略思考》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.