您的位置:首页 > 编程语言 > Go语言

[转载]維基百科全書--H.264/MPEG-4 AVC全面介绍

2005-09-20 20:23 363 查看

維基百科,自由的百科全書

 
視頻編碼標準
 
MPEG 標準MPEG制定MPEG-1 | MPEG-2 | (MPEG-3) | MPEG-4 | MPEG-7 | MPEG-21
ITU-T 標準VCEG制定H.261 | (H.262) | H.263 | H.263v2 | H.264
H.264, 或者 MPEG-4 第十部分,是由ITU-T視頻編碼專家組(VCEG)和ISO/IEC運動圖像專家組(MPEG)聯合組成的聯合視頻組(JVT,Joint Video Team)提出的高度壓縮數字視頻編解碼器標準。ITU-T的H.264標準和ISO/IECMPEG-4第10部分(正式名稱是ISO/IEC 14496-10)在編解碼技術上是相同的,這種編解碼技術也被稱為AVC,即高級視頻編碼(Advanced Video Coding)。該標準第一版的最終草案(FD)已於2003年5月完成。

H.264是ITU-T以H.26x系列為名稱命名的標準之一,同時AVC是ISO/IEC MPEG一方的稱呼。這個標準通常被稱之為H.264/AVC (或者 AVC/H.264 或者 H.264/MPEG-4 AVC or MPEG-4/H.264 AVC)而明確的說明它兩方面的開發者。該標準最早來自於ITU-T的稱之為H.26L的項目的開發。H.26L這個名稱雖然不太常見,但是一直被使用著。有時候該標準也被稱之為"JVT 編解碼器",這是由於該標準是由JVT組織並開發的(作為兩個機構合作開發同一個標準的事情並非空前,之前的視頻編碼標準MPEG-2也是由MPEGITU-T兩方合作開發的--因此MPEG-2在ITU-T的命名規範中被稱之為H.262)。

H.264/AVC項目最初的目標是希望新的編解碼器能夠在比相對以前的視頻標準(比如MPEG-2或者H.263)低很多的碼率下(比如說,一半或者更少)提供很好的視頻質量;同時,並不增加很多複雜的編碼工具,使得硬體難以實現。另外一個目標是可適應性,即該編解碼器能夠在一個很廣的範圍內使用(比如說,即包含高碼率也包含低碼率,以及不同的視頻解析度),並且能在各種網路和系統上(比如組播DVD存儲,RTP/IP包網路,ITU-T多媒體電話系統)工作。

JVT最近完成了一個對原標準的拓展,該拓展被稱為高精度拓展 (Fidelity Range Extensions, FRExt)。該拓展通過支持更高的像素精度(包括10比特和12比特像素精度)和支持更高的色度精度(包括YUV 4:2:2YUV 4:4:4)來支持更高精度的視頻編碼。該拓展加入了一些新的特性(比如自適應的4x4和8x8的整數變換,用戶自定義量化加權矩陣,高效的幀間無失真編碼,支持新增的色度空間和色度參差變換)。該拓展的設計於2004年7月完成,草案也於2004年9月完成。

由於該標準的最早版本於2003年5月完成,JVT已經完成了一輪對標準的勘誤工作,新一輪的勘誤也已於最近完成並且得到了ITU-T的批准,不久也將被MPEG批准。

目錄

[隱藏]
1 技術細節

2 專利許可

3 應用

4 產品和實現

5 外部連結

[編輯]

技術細節

H.264/AVC包含了一系列新的特徵,使得它比起以前的編解碼器不但能夠更有效的進行編碼,還能在各種網路環境下的應用中使用。這些新特性包括:

多參考幀的運動補償。比起以前的視頻編碼標準,H.264/AVC以更靈活的方式使用已編碼的更多幀來作為參考幀。在某些情況下,可以使用最多32個參考幀(在以前的標準裡面,參考幀的數目不是1就是對B幀來說的2)。該特性對大多數場景序列都可以帶來一定的碼率降低或者質量提高,對某些類型的場景序列,例如快速重複的閃光,反覆的剪切或者背景遮擋的情況,它能很顯著的降低編碼的碼率。

變塊尺寸運動補償。使用最大16x16最小4x4的塊來進行運動估計與運動補償,能夠對圖像序列中的運動區域進行更精確的分割。

為了減少「振鈴」效應並最終得到更銳化的圖像,採用六抽頭的濾波器來產生二分之一像素的亮度分量預測值。

宏塊對結構允許場模式中採用16x16的宏塊(相對於MPEG-2中的16x8)

1/4像素精度的運動補償能夠提供更高精度的運動塊的預測,由於色度通常是亮度抽樣的1/2(參見4:2:0),這時運動補償的精度就達到了1/8像素精度。

加權的運動預測,指在運動補償時可以使用增加權重和偏移的辦法。它能在一些特殊的場合,如淡入、淡出、淡出而後淡入等場合提供相當大的編碼增益。

使用了一個環內的除塊效應濾波器,能夠減輕普遍存在於其他基於離散余弦變換(DCT)的視頻編解碼器的塊效應。

一個匹配的整數4x4變換(類似於離散余弦變換的設計),同樣在高精度拓展 中,一個整數8x8變換被採用,並能在4x4變換和8x8變換中進行自適應的選擇。

在第一次4x4變換後,對DC繫數(色度的DC繫數和某種特殊狀況的亮度DC繫數)再進行一個Hadamard變換,使得在平滑區域得到更好的壓縮效果。

利於臨近塊的邊界像素的Intra空間預測(比曾在MPEG-2視頻部分使用的直流繫數預測和在[[H。263+]]和MPEG-4視頻部分使用的變換繫數預測的效果要好)。

基於上下文的二元算數編碼 (CABAC),它能夠靈活的將各種語法元素在已知相應的上下文的機率分佈的狀況下更有效的進行無損的熵編碼

基於上下文的變長編碼 (CAVLC),用於對量化後的變化繫數進行編碼。比起CABAC它的複雜度相對較低,壓縮比不高,但是比起以前的視頻編碼標準所使用的熵編碼方案,它又是相當有效的。

使用一個被稱為Exponential-Golomb(Exp-Golomb)的簡單的熵編碼方案對既不是用CABAC也不是用CAVLC的語法元素進行編碼。

使用一個網路抽象層 (NAL),使得相同的視頻語法可以適用於多種網路環境中;並且使用了序列參數集(SPSs)和圖像參數集(PPSs)來提供更高的魯棒性(robustness)和靈活性。

切換條帶(Switching slices,包括SP和SI兩種),它使得編碼器能夠指令解碼器跳轉到一個正在處理的視頻碼流,用來解決視頻碼流碼率切換和"竅門模式"(Trick mode)操作。當解碼器利用SP/SI條帶跳轉到一個視頻碼流中間時,除非之後的解碼幀引用切換幀之前的圖像作為參考幀,它都可以得到完全一致的解碼重建圖像。

靈活的宏塊排列模式(FMO for Flexible macroblock ordering,也被稱為條帶組slice groups技術)和任意條帶排列(ASO for arbitrary slice ordering)模式,用來更改圖像編碼的最基本單位-宏塊的編碼順序。它能夠用來提高有繞通道下碼流的魯棒性(robustness)以及一些其它的目的。

數據分區(DP for Data partitioning),能夠將重要程度不同的語法元素分開打包傳輸,並使用非平等數據保護(UEP for unequal error protection)等技術來改善視頻碼流對抗通道誤碼/丟包的魯棒性(Robustness).

冗余條帶(RS for Redundant Slices),同樣是一個提高碼流魯棒性的技術。編碼器利用該技術可以發送圖象某區域(或者全部)的另一個編碼表示(通常是較低解析度的編碼碼流)使得當主表示發生錯誤或者丟失的時候能夠用冗余的第二個編碼表示來解碼。

使用了一個自動的位元組碼流打包方法,避免了碼流中出現與開始碼重複的碼字。開始碼是碼流中用於隨機訪問和重建同步的碼字。

補充增強信息(SEI for Supplemental Enhancement Information)和視頻可用信息(VUI for Video Usability Information)增加了向視頻碼流中加入信息的辦法,為各種應用提供了藉口。

輔助圖層(Auxiliary pictures), 可以用來實現某些特殊的功能,例如alpha複合(alpha compositing)。

幀編號,使用該功能支持創建一個視頻序列的子序列(支持實現時域的可伸縮性),還支持對丟失的整幀圖像(由於網路丟包或者通道誤碼造成的)進行檢測和隱藏。

圖像順序計數,使用該功能使得各幀圖像的順序和解碼圖像的像素值與時間信息無關(即使用一個單獨的系統對時間信息進行傳輸、控制、更改,從而不影響解碼圖像的像素值。)

上述這些技術,和一些其它的技術一起,使得H.264比起以前的視頻編解碼能夠帶來性能上顯著的提高,併在各種不同的環境下支持更廣泛的應用。H.264在壓縮性能上比起MPEG-2有很大的提高,在相同的圖像質量下可以,碼率可以減少到一半或者更少。

和MPEG的其它視頻標準一樣,H.264/AVC也提供了一個參考軟體,並可以免費下載。它的主要目的是提供一個演示H.264/AVC各種功能的演示平臺,而不是作為一個直接的應用平臺(在後面的連結部分可以找到下載的地址)。目前在MPEG也同時在進行一些硬體參考設計的實現。

[編輯]

專利許可

MPEG-2第一部分、第二部分,MPEG-4 第二部分一樣,使用H.264/AVC的產品製造商和服務提供商需要向他們的產品所使用的專利的持有者支付專利許可費用。這些專利許可的主要來源是一家稱為MPEG-LA,LLC的私有組織(實際上該組織和MPEG標準化組織沒有任何關聯,但是該組織也管理著MPEG-2第一部分系統、第二部分視頻。MPEG-4第二部分視頻和其它一些技術的專利許可)。

[編輯]

應用

競爭下一代DVD格式的兩種主要技術都計劃在2005下半年將H.264/AVC HP作為必須的播放器特徵加入進來,包括:

DVD論壇制訂的HD-DVD格式

藍光協會(BDA)制訂的藍光光碟Blu-ray Disc格式

歐洲的數字電視廣播(DVB)標準組織在2004下半年通過了採用H.264/AVC在歐洲進行電視廣播。

2004下半年,法國首相Jean-Pierre_Raffarin宣佈在法國選用H.264/AVC作為HDTV接收器和數字電視地面廣播服務的付費電視頻道的一項要求。

美國ATSC標準組織正在考慮可能在美國的電視廣播中採用H.264/AVC。

韓國數字多媒體廣播(DMB)服務將採用H.264/AVC。

日本使用數字廣播集成服務ISDB-T提供的移動分區地上廣播服務將使用H.264/AVC 編解碼器,包括主要的廣播服務提供商:

日本放送協會 (NHK)

東京放送 (TBS)

日本電視臺 (NTV)

朝日電視臺 (TV Asahi)

富士電視臺 (Fuji TV)

東京電視臺 (TV Tokyo)

直接衛星廣播Direct broadcast satellite服務將使用該標準,包括:

News Corp. / DirecTV (在美國)

Echostar / Dish Network / Voom TV (在美國)

Euro1080 (在 歐洲)

Premiere (在 德國)

BSkyB (in the 英國 and 愛爾蘭)

第三代移動通信合作組織(3GPP)已經在第六次發佈中批准H.264/AVC作為其移動多媒體電話服務標準的可選技術。

美國國防部(DoD for United States Department of Defense)下的運動圖像標準協會(MISB for The Motion Imagery Standards Board)已經接受H.264/AVC為其核心應用的推薦視頻編解碼器。

網際網路工程工作小組(IETF for Internet Engineering Task Force)已經完成了一個負載打包格式(RFC 3984)作為在其實時傳輸協議(RTP for Real-time Transport Protocol)上傳輸H.264/AVC碼流的打包辦法。

網際網路流媒體協會(ISMA for Internet Streaming Media Alliance)已經接受H.264/AVC作為其ISMA 2.0的技術規範。

MPEG組織將H.264/AVC完全的集成進入了它的系統協議(例如MPEG-2MPEG-4 系統)和ISO媒體格式協議。

國際電信聯盟ITU-T標準組已經採納H.264/AVC 作為其H.32x系列的多媒體電話系統的系統規範的一部分。ITU-T的採納,使得H264/AVC 已經被廣泛的使用在視頻會議系統中,並獲得了視頻電話主要的兩家產品提供商(Polycom和Tandberg 的支持。實際上所有新的視頻會議產品都支持H.264/AVC。

H.264將很可能被各種視頻點播服務(VOD for video-on-demand)使用,用來在網際網路上提供電影電視節目直接到個人電腦的點播服務。

[編輯]

產品和實現

有幾家公司正在製作能夠對H.264/AVC視頻進行解碼的可編程晶元。2005年1月Broadcom (the BCM7411), Conexant (the CX2418X), Neomagic (MiMagic 6)和STMicroelectronics (the STB7100)幾家公司都提供了可供測試的樣片。 Sigma Designs 預計在2005年3月提供樣片。這些晶元的出現將極大的推動低成本的能夠播放標清高清解析度的H.264/AVC 視頻的快速推廣。這5種晶元中的4種(除了Neomagic的晶元,它是針對低能耗應用的)都具有播放高清解析度視頻的能力,而且大部分都將支持標準中的High Profile.

蘋果公司已經將H.264集成進入Mac OS X版本v10.4(昵稱老虎:Tiger),並於2005年5月發佈了支持H.264的Quicktime版本7.0。2005年4月蘋果公司升級了軟體DVD Studio Pro以支持授權的高清格式的內容。該軟體支持將HD-DVD格式的內容刻錄到標準DVD或者HD-DVD媒體(雖然現在還沒有對應的刻錄機)上。為了播放刻錄在標準DVD上的HD-DVD內容,所需要的硬體是PowerPC G5,軟體是Apple DVD Player v4.6, 以及 Mac OS X v10.4 或者更新。

Envivio公司已經可以提供針對H.264組播用的標清實時編碼器和離線的高清(720p, 1080i, 1080p)編碼器。Envivio公司同時提供針對windowsLinuxMacintosh平臺的H.264解碼器,H.264視頻伺服器和授權工具。

Modulus Viode公司提供廣播、電話用廣播質量的H.264標清實時編碼器,並宣佈將與2005年中提供高清實時編碼器(ME6000)。該公司曾在2004年4月在NAB上演示過高清實時編碼器,並獲得"Pick Hit"獎項。該公司使用LSI Logic的技術。

Tandberg television公司推出了EN5990實時編碼器。DirecTV 和 BSkyB 已經把EN5990編碼器用於它們的衛星直播服務(DBS)。

Harmonic(哈雷)也推出了它們的實時編碼器(型號:DiviCom MV 100)。TF1 (法國的廣播商)和Video Networks Limited (VNL)在倫敦的家用視頻點播服務已經宣佈使用該產品。 佩斯公司(Pace Micro)為一些主要的直播衛星公司提供了機頂盒。

Sony公司的PSP(PlayStation Portable)在硬體上提供對H.264 Main Profile Level 3解碼的支持。

Nero Digital公司推出的由Nero AGAteme共同開發的軟體包提供了對H.264編碼的支持,併在Doom9獲得"Pick Hit"[[1]]獎項。

Sorenson 提供了H.264實現方式。相關的編解碼軟體Sorenson AVC Pro codec已經包含在Sorenson Squeeze 4.1 for MPEG-4中。

自由軟體版x264的編解碼軟體採用GPL授權方式下載。

最新消息:InterVideo的WinDVD 7 於6月24日正式發佈。發佈版本分為WinDVD 7 Gold黃金版和WinDVD 7 Platinum白金版,白金版支持H.264/MPEG-4 AVC解碼播放,推薦配置為P4 3.6G。(不屬於原文)

[編輯]

外部連結

http://www.fastvdo.com/spie04/ H.264/AVC綜述文章,包含了新的高精度拓展(Sullivan, Topiwala, and Luthra)

http://iphome.hhi.de/wiegand/pubs.htm 一些有關H.264/AVC的文章(Wiegand)

http://iphome.hhi.de/marpe/pub.htm 更多的關於H.264/AVC的文章(Marpe)

http://iphome.hhi.de/suehring/tml/ H.264/AVC參考軟體

http://www.vcodex.com/h264.html H.264/MPEG-4 Part 10教程 (Richardson)

http://www.vcodex.com/h264mpeg4/ 書: H.264 and MPEG-4 Video Compression (Richardson)

http://internet.impress.co.jp/books/1983/ H.264/AVC 教科書 (日文: Okubo, Kadono, Kikuchi, and Suzuki)

http://ftp3.itu.ch/av-arch/jvt-site JVT Experts Group 文檔

http://www.mpegla.com/news/n_03-11-17_avc.html MPEG LA 關於H.264/MPEG-4 AVC專利授權的條款

http://www.videolan.org/x264.html 一個基於GPL的H.264編碼庫,支持大部分H.264的功能

http://www.m4if.org/ MPEG工業論壇

http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-H.264 ITU-T 官方網頁

http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=40890&ICS1=35&ICS2=40&ICS3= H.264 ISO 官方網頁

http://www.wwcoms.com/technology/standard.htm W&W Communications H.264 概述和IEEE文章

http://www.apple.com/quicktime/hdgallery/ 蘋果公司H.264素材實例

取自"http://zh.wikipedia.org/wiki/H.264/MPEG-4_AVC"
<script type="text/javascript">
google_ad_client = "pub-7168982058404735";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_color_border = "C3D9FF";
google_color_bg = "FFFFFF";
google_color_link = "3D81EE";
google_color_text = "000000";
google_color_url = "008000";
google_ui_features = "rc:0";
google_language = 'zh-CN';
//-->
</script><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息