協議軟件部培訓PPT-H264視頻編解碼技術_第1頁
協議軟件部培訓PPT-H264視頻編解碼技術_第2頁
協議軟件部培訓PPT-H264視頻編解碼技術_第3頁
協議軟件部培訓PPT-H264視頻編解碼技術_第4頁
協議軟件部培訓PPT-H264視頻編解碼技術_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

H.264視頻編解碼技術普天信息信息技術研究院PotevioInstituteofTechnology

11/14/20221目標重點培訓內容參考資料目錄11/14/20222培訓目標掌握視頻信息和視頻編碼的相關概念理解H.264編解碼器的工作原理和關鍵算法掌握主流的H.264開源編解碼器的架構和實現掌握H.264視頻數據RTP傳輸封包格式11/14/20223培訓重點視頻信息特點和格式視頻編碼的相關術語和概念視頻編碼標準H.263、H.264H.264編解碼器的工作原理和關鍵過程H.264開源編碼器X264、解碼器FFMPEG架構和實現H.264視頻數據RTP傳輸封包格式11/14/20224培訓內容視頻信息特點直觀性確切性高效性廣泛性高帶寬性詳見《預研報告》中的闡述說明。11/14/20225培訓內容視頻信息格式視頻信號的取樣有兩種:時間取樣:運動圖像可由每秒若干幀靜止圖像構成,我國采用的PAL制彩色視頻規定每秒25幀,美日等采用的NTSC制彩色視頻則為每秒30幀。這種取樣方式即時間取樣。空間取樣:在同一視頻信號幀中,同一行由若干取樣點構成,這些取樣點稱為像素,這種取樣就屬于空間取樣。常用彩色視頻格式:亞QCIF-96×128QCIF-144×176CIF-288×3524CIF-576×72011/14/20226培訓內容視頻信息格式彩色空間RGB

任何彩色圖像可由不同比例的紅色、綠色和藍色組合而成,即三基色原理。這種表示彩色圖像的方法即RGB彩色空間。YCbCr(YUV)

人類視覺系統(HDV)對亮度比彩色更敏感,因此可以把亮度信息從彩色信息分離出來,并使之具有更高的清晰度,彩色信息的清晰度較低些,可顯著壓縮帶寬,實現視頻壓縮的一部分,人的感覺卻沒有不同。

如果亮度分量用Y表示,色度用Cb,Cr表示,則由大量實驗得出:

Y=0.299R+0587G+0.114B

Cb=0564(B-Y) Cr=0.713(R-Y)11/14/20227培訓內容視頻信息格式視頻取樣

4:2:0,在水平和垂直清晰度方面,Cb

和Cr都是Y的一半。

4:2:2,這時彩色分量和亮度分量具有同樣的垂直清晰度,但水平清晰度彩色分量是亮度分量的一半。

4:4:4,Y、Cb

和Cr具有同樣的水平和垂直清晰度,在每一像素位置,都有Y,Cb

和Cr分量,即不論水平方向還是垂直方向,每4個亮度像素相應的有4個Cb和4個Cr色度像素。

4:2:04:2:24:4:4YCbCr

11/14/20228培訓內容視頻編碼的相關術語場和幀片和宏塊片組檔次和級SP和SISPS和PPS圖像序列號(POC)RBSP和SODB詳見《預研報告》中的闡述說明。11/14/20229培訓內容視頻編解碼的概念視頻編解碼系統的基本結構:

11/14/202210培訓內容視頻編解碼的概念根據采用信源模型,視頻編碼可以分為兩大類:基于波形的編碼利用像素間的空間相關性和幀間的時間相關性,采用預測編碼和變換編碼技術可大大減少視頻信號的相關性,從而顯著降低視頻序列的碼率,實現壓縮編碼的目標。H.263、H.264、H.320、H.323都屬于基于波形的編碼。基于內容的編碼先把視頻幀分成對應于不同物體的區域,然后對其編碼。具體說來,即對不同物體的形狀、運動和紋理進行編碼。MPEG-4采用的編碼方法就既基于塊的混合編碼,又有基于內容的編碼方法。11/14/202211培訓內容視頻編碼標準發展簡史1984年,CCITT第15研究組發布了數字基群電視會議編碼標準H.120建議。1988年,CCITT通過了“p×64Kbps(p=1,2,3,4,5,,,,30)”視像編碼標準H.261建議,被稱為視頻壓縮編碼的一個里程碑。1986年,ISO和CCITT成立了聯合圖像專家組(JPEG,JointPhotographicExpertsGroup),研究連續色調靜止圖像壓縮算法國際標準,1992年7月通過了JPEG標準。1988年,ISO/IEC信息技術聯合委員會成立了活動圖像專家組(MPEG,MovingPictureExpertGroup)。1991年公布了MPEG-1視頻編碼標準,碼率為1.5Mbps,主要應用于家用VCD的視頻壓縮;1994年11月,公布了MPEG-2標準,用于數字視頻廣播(DVB)、家用DVD的視頻壓縮及高清晰度電視(HDTV)。11/14/202212培訓內容視頻編碼標準發展簡史 1995年,ITU-T推出H.263標準,用于低于64Kbps的低碼率視頻傳輸,如PSTN信道中可視會議、多媒體通信等。1984年和2000年又分別公布了H.263+、H.263++等標準。 1999年12月份,ISO/IEC通過了“視聽對象的編碼標準”---MPEG4,它除了定義視頻壓縮編碼標準外,還強調了多媒體通信的交互性和靈活性。 2003年3月,ITU-T和ISO/IEC正式公布了H.264視頻壓縮標準,不僅顯著提高了壓縮比,而且具有良好的網絡親和性,加強了對IP網、移動網的誤碼和丟包的處理。11/14/202213培訓內容視頻編碼標準H.263–技術背景H.263是由ITU-T制定的視頻會議用的低碼率視頻編碼標準,屬于視頻編解碼器。H.263最初設計為基于H.324的系統進行傳輸(即基于公共交換電話網和其它基于電路交換的網絡進行視頻會議和視頻電話)。后來發現H.263也可以成功的應用于H.323(基于RTP/IP網絡的視頻會議系統),H.320(基于綜合業務數字網的視頻會議系統),RTSP(流式媒體傳輸系統)和SIP(基于因特網的視頻會議)。H.263支持用于視頻會議和視頻電話應用程序的視頻壓縮(解碼)。H.263基于H.261編碼,并且為在最低帶寬為20K到24Kbit/sec上傳輸的視頻流而開發。作為一種一般規則,H.263只需H.261一半的帶寬即可達到與H.261相同的視頻質量,所以在很大程度上H.263取代了H.261。H.263使用RTP傳輸視頻流。11/14/202214培訓內容視頻編碼標準H.263–編解碼技術H.263的編碼算法和H.261中的類似,但它在H.261的基礎上有了提高和改變,從而增強了性能和錯誤恢復能力。H.263中運動補償采用的是半像素精度,而在H.261中采用的是全像素精度和環路過濾。數據流中分層結構的某些部分是可選的,如此視頻編譯碼就可以被配置成有較低的數據率或較好的錯誤恢復能力。目前有四種能夠提高性能的可選協商選項:無限制運動矢量、基于語法的算術編碼、先進預測和前后幀預測,這類似于MPEG,叫做P-B幀。H.263支持五種分辨率。除了H.261支持的QCIF和CIF外,還有SQCIF、4CIF和16CIF。SQCIF的分辨率大約是QCIF的一半,而4CIF和16CIF的分辨率分別是CIF的4倍和16倍。支持4CIF和16CIF意味著視頻編碼器可以與其它具有較高比特率的視頻編碼標準相抗衡,如MPEG標準。11/14/202215培訓內容視頻編碼標準H.263–協議結構 H.263有效載荷頭定義了三種格式(模式A、模式B和模式C)。在模式A中,在實際壓縮H.263視頻比特流之前存在4字節的H.263有效載荷頭。這樣允許在GOB邊界有分段。在模式B中,使用的是8字節的H.263有效載荷頭,且每個數據包從MB邊界開始,沒有PB幀選項。最后,模式C中使用的是12字節的H.263有效載荷頭,采用PB幀選項支持在MB邊界的幀分段。 以模式A為例,頭格式如下所示:

1258111213141516bitFPSBITEBITSRCIUSARR(cont.)DBQTRBTR11/14/202216培訓內容視頻編碼標準H.264–技術背景H264標準是由JVT(JointVideoTeam,視頻聯合工作組)組織提出的新一代數字視頻編碼標準。JVT于2001年12月在泰國Pattaya成立。它由ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)兩個國際標準化組織的專家聯合組成。JVT的工作目標是制定一個新的視頻編碼標準,以實現視頻的高壓縮比、高圖像質量、良好的網絡適應性等目標H264標準。H264標準將作為MPEG-4標準的一個新的部分(MPEG-4part.10)而獲得批準,是一個面向未來IP和無線環境下的新數字視頻壓縮編碼標準。

11/14/202217培訓內容視頻編碼標準H.264–技術優勢更高的編碼效率:同H.263等標準的特率效率相比,能夠平均節省大于50%的碼率。高質量的視頻畫面:H.264能夠在低碼率情況下提供高質量的視頻圖像,在較低帶寬上提供高質量圖像傳輸是H.264應用亮點。提高網絡適應能力:H.264可以工作在實時通信應用(如視頻會議)低延時模式下,也可以工作在沒有延時的視頻存儲或視頻流服務器中。采用混合編碼結構:同H.263相同,H.264也使用采用DCT變換編碼加DPCM的差分編碼的混合編碼結構,還增加了如多模式運動估計、幀內預測、多幀預測、基于內容的變長編碼、4x4二維整數變換等新的編碼方式,提高了編碼效率。

11/14/202218培訓內容視頻編碼標準H.264–技術優勢H.264的編碼選項較少:在H.263中編碼時往往需要設置相當多選項,增加了編碼的難度,而H.264做到了力求簡潔的“回歸基本”,降低了編碼時復雜度。H.264可以應用在不同場合:H.264可以根據不同的環境使用不同的傳輸和播放速率,并且提供了豐富的錯誤處理工具,可以很好的控制或消除丟包和誤碼。錯誤恢復功能:H.264提供了解決網絡傳輸包丟失的問題的工具,適用于在高誤碼率傳輸的無線網絡中傳輸視頻數據。較高的復雜度:H264性能的改進是以增加復雜性為代價而獲得的。據估計,H.264編碼的計算復雜度大約相當于H.263的3倍,解碼復雜度大約相當于H.263的2倍。11/14/202219培訓內容視頻編碼標準H.264–關鍵技術分層設計(VCL和NAL)。高精度、多模式運動估計。4×4塊的整數變換。統一的VLC。幀內預測。面向IP和無線環境。詳見《預研報告》中的闡述說明。11/14/202220培訓內容視頻編碼標準H.264–性能分析TML-8為H.264的測試模式,用它來對H.264的視頻編碼效率進行比較和測試。測試結果所提供的PSNR已清楚地表明,相對于MPEG-4(ASP:AdvancedSimpleProfile)和H.263++(HLP:HighLatencyProfile)的性能,H.264的結果具有明顯的優越性。H.264的PSNR比MPEG-4(ASP)和H.263++(HLP)明顯要好,在6種速率的對比測試中,H.264的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。6個測試速率及其相關的條件分別為:32kbit/s速率、10f/s幀率和QCIF格式;64kbit/s速率、15f/s幀率和QCIF格式;128kbit/s速率、15f/s幀率和CIF格式;256kbit/s速率、15f/s幀率和QCIF格式;512kbit/s速率、30f/s幀率和CIF格式;1024kbit/s速率、30f/s幀率和CIF格式。11/14/202221培訓內容視頻編碼標準H.264–編碼器原理11/14/202222培訓內容視頻編碼標準H.264–編碼器算法預測編碼(幀內預測、幀間預測)變換編碼(K-L變換、離散余弦變換DCT)熵編碼(變長編碼CAVLC和算術編碼CABAC)詳見《預研報告》中的闡述說明。11/14/202223培訓內容視頻編碼標準H.264–解碼器原理11/14/202224培訓內容視頻編碼標準H.264–解碼器流程11/14/202225培訓內容H.264開源編碼器X264-背景 目前業界主流的H264開源編碼器有JM和X264。 JM是H.264的官方測試源碼,由德國HHI研究所負責開發。該代碼旨在實現H.264的所有特性,因而結構冗長,編碼復雜度極高,多用于學術研究,不適于實際應用。 而X264是由法國巴黎中心學校的中心研究所于2004年6月發起,并由許多視頻編碼愛好者共同完成的項目。其目標是實現實用的H264編碼器,所以它引入MMX、SSE等匯編指令來提高編碼速度,同時摒棄了一些耗時但對編碼性能提高微小的模塊,如多參考幀等。本項目選定編碼效率較高的X264作為H264編碼器,為統一的H264編解碼器FFMPEG提供編碼器靜態庫LIB。11/14/202226培訓內容H.264開源編碼器X264–編碼流程11/14/202227培訓內容H.264開源編碼器X264–核心數據結構x264_level_t/*維護X264級別配置數據*/x264_nal_t/*維護NAL單元數據*/x264_picture_t/*維護編碼圖像數據*/

x264_image_t/*維護原始圖像數據*/x264_t/*維護著CODEC的諸多重要信息*/x264_sps_t/*序列參數集*/x264_sps_t/*圖像參數集*/x264_frame_t/*維護編碼幀數據*/

,x264_param_t/*給出編碼過程中的各個參數的初始化*/

11/14/202228培訓內容H.264開源編碼器X264–核心函數x264_param_default()

/*為X264編碼器賦默認參數*/x264_picture_alloc()/*為圖像開辟內存空間并賦參數值*/x264_picture_clean()/*釋放開辟的圖像資源*/

x264_encoder_open()/*創建并初始化編碼器*/x264_encoder_encode()

/*對一幅圖像進行H264編碼*/x264_encoder_close()/*關閉并釋放編碼器資源*/11/14/202229培訓內容H.264開源解碼器FFMPEG–背景 FFmpeg是一個開源免費跨平臺的視頻和音頻流方案,屬于自由軟件,采用LGPL或GPL許可證(依據選擇的組件)。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質量,libavcodec里很多codec都是從頭開發的。 FFmpeg被許多開源項目采用,比如ffmpeg2theora,VLC,MPlayer,HandBrake,Blender,GoogleChrome等。還有DirectShow/VFW的ffdshow(externalproject)和QuickTime的Perian(externalproject)也采用了FFmpeg。目前流行的播放器暴風影音、QQ影音、KMP也都使用了FFmpeg的代碼。

11/14/202230培訓內容H.264開源解碼器FFMPEG–解碼流程 按照<AnffmpegandSDLTutorial>中的描述,FFMPEG解碼流程如下:

1 OPENvideo_streamFROMvideo.avi

2 READpacketFROMvideo_streamINTOframe

3 IFframeNOTCOMPLETEGOTO20

4DOSOMETHINGWITHframe(Decoding)

5GOTO2011/14/202231培訓內容H.264開源解碼器FFMPEG–核心數據結構AVCodecContext/*解碼器核心接口結構體*/AVCodec/*維護解碼器映射、像素格式信息等*/AVFrame/*維護待解碼圖像信息*/AVPicture/*維護解碼后圖像信息*/ 下面的這個生成關系表述了上述主要FFMPEG數據結構的關系:(->表示派生出)

AVFormatContext->AVStream->AVCodecContext->AVCodec

AVOutputFormatorAVInputFormat

AVFrame->AVPicture….->AVPacket11/14/202232培訓內容H.264開源解碼器FFMPEG–核心函數avcodec_open()/*打開并初始化AVCodecContext*/avcodec_close()/*關閉并釋放AVCodecContext*/avcodec_find_decoder()/*執行解碼時,查找對應的解碼器*/avcodec_alloc_frame()/*創建并初始化AVFrame*/avpicture_get_size()/*根據像素格式和視頻分辨率獲得picture存儲大小*/avpicture_fill()/*用ptr中的內容根據文件格式(YUV…)和分辨率填充picture。初始化階段填充為全零*/img_convert()/*不同像素格式之間的圖像轉換*/avcodec_alloc_context()/*創建并初始化AVCodecContext*/avcodec_decode_video()/*從緩沖區中將視頻數據解碼至picture結構中*/av_free()/*釋放由av_malloc(z)()或av_realloc()開辟的內存*/11/14/202233培訓內容H264的RTP傳輸幀格式 H264網絡傳輸層采用RTP承載,遵循RFC3550,RFC3984。 H.264Payload格式定義了三種不同的基本的負載(Payload)結構.接收端可能通過RTPPayload的第一個字節來識別它們.這一個字節類似NALU頭的格式,而這個頭結構的NAL單元類型字段則指出了代表的是哪一種結構,這個字節的結構如下,可以看出它和H.264的NALU頭結構是一樣的.

+---------------+

|0|1|2|3|4|5|6|7|

+-+-+-+-+-+-+

|F|NRI|Type

|

+---------------+

字段Type:這個RTPpayload中NAL單元的類型.這個字段和H.264中類型字段的區別是,當type的值為24~31表示這是一個特別格式的NAL單元,而H.264中,只取1~23是有效的值.11/14/202234培訓內容H264的RTP傳輸封包模式單一NAL單元模式

即一個RTP包僅由一個完整的NALU組成.這種情況下RTPNAL頭類型字段和原始的H.264的NA

溫馨提示

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

評論

0/150

提交評論