H.264/MPEG-4 AVC

影片壓縮標準

H.264,又称为MPEG-4第10部分,高级视频编码(英語:MPEG-4 Part 10, Advanced Video Coding,缩写为MPEG-4 AVC)是一种面向块,基于运动补偿视频编码标准英语Video_coding_format 。到2014年,它已经成为高精度视频录制、压缩和发布的最常用格式之一。第一版标准的最终草案于2003年5月完成。

Advanced Video Coding
通用视听服务的高级视频编码
状态现行
开始年2003年
最新版本2019年6月
组织ITU-T, ISO, IEC
委员会VCEG, MPEG
基础标准H.261,
H.262 (又称 MPEG-2 Video),
H.263,
MPEG-1
有关标准H.265, H.266
领域視訊壓縮
网站https://www.itu.int/rec/T-REC-H.264

H.264/AVC项目的目的是为了创建一个更佳的视频压缩标准,在更低的比特率的情况下依然能够提供良好视频质量的标准(如,一半或者更少于MPEG-2,H.263,或者MPEG-4 Part2 )。同时,还要不会太大的增加设计的复杂性。H.264的另外一个目标是提供足够的灵活性,以允许该标准能够应用于各种各样的网络和系统的各应用上,包括低和高比特率,低和高分辨率视频,广播,DVD存储,RTP / IP分组网络和ITU-T多媒体电话系统。H.264标准可以被视为由多个不同的应用框架 / 配置文件(profiles)组成的“标准系列”。

H.264/MPEG-4 AVC是一种面向块的基于运动补偿的编解码器标准。由ITU-T视频编码专家组ISO/IEC联合工作组——即动态图像专家组(MPEG)——联合组成的联合视频组(JVT,Joint Video Team)开发。因ITU-T H.264标准和ISO/IEC MPEG-4 AVC标准(正式名称是ISO/IEC 14496-10—MPEG-4第十部分,高级视频编码)有相同的技术内容,故被共同管理。

H.264因其是蓝光碟片的其中一种编解码标准而著名,所有蓝光碟片播放器都必须能解码H.264。它也被广泛用于网络流媒体数据如VimeoYouTube、以及iTunes Store,网络软件如Adobe Flash PlayerMicrosoft Silverlight,以及各种高清晰度電視地面電視DVB-TDVB-T2)、有線電視(DVB-C)以及卫星(DVB-S和DVB-S2)。

概述

H.264/AVC项目是想创建一种视频标准。与旧标准相比,它能够在更低带宽下提供优质视频(换言之,只有MPEG-2H.263MPEG-4第2部分的一半带宽或更少),也不增加太多设计复杂度使得无法实现或实现成本过高。另一目的是提供足够的灵活性以在各种应用、网络及系统中使用,包括高、低带宽,高、低视频分辨率,广播,DVD存储,RTP/IP网络,以及ITU-T多媒体电话系统。

H.264标准可以被看作一个“标准家族”,成员有下面描述的各种配置(profile)。一个特定的解码器至少支持一种,但不必支持所有的。解码器标准描述了它可以解码哪些配置。

H.264的命名遵循了ITU-T的命名约定,它是VCEG视频编码标准H.26x线中的一员;MPEG-4 AVC的命名来自ISO/IEC MPEG的命名约定,它是ISO/IEC 14496的第10部分,该协议族被称为MPEG-4。该标准是作为VCEG和MPEG的一部分开发的,此前在ITU-T作为VCEG的项目,叫做H.26L。所以常用于指代此标准的名称有H.264/AVC,AVC/H.264,H.264/MPEG-4 AVC,或MPEG-4/H.264 AVC,以强调共同遗产。有时,也用“JVT编解码”指代它,以指明是JVT(联合开发组)组织开发的。(这种伙伴关系和多命名并不少见。例如,视频编码标准MPEG-2也出现在MPEGITU-T的伙伴关系中,MPEG-2视频在ITU-T社区中称作H.262。[1])一些软件(如VLC media player)内部标识此标准为AVC1。

H.264/AVC标准化的第一个版本于2003年5月完成。在第一个扩展原始标准的项目中,JVT开发了高精度拓展(Fidelity Range Extensions,FRExt)。該拓展通過支持更高的像素精度(包括10位元和12位元像素精度)和支持更高的色度抽樣率(包括YUV 4:2:2和YUV 4:4:4)來支持更高精度的視頻編碼。該拓展加入了一些新的特性(比如自適應的4x4和8x8的整數變換,用戶自定義量化加權矩陣,高效的幀間無失真編碼,支持新增的色度空間和色度參差變換)。該拓展的設計於2004年7月完成,草案也於2004年9月完成。

对标准进一步的最新扩展包括:增加五个新的配置,主要用于专业应用;增加扩展全范围(extended-gamut)色彩空间的支持;定义附加长宽比标识;定义“补充增强信息”的两个附加类型(滤波后提示和色调映射);以及废弃一个根据产业反馈应该另行设计的早期FRExt配置。

接着加入标准的主要特性是可适应视频编码(Scalable Video Coding,SVC)。据H.264/AVC附件G,SVC允许码流结构中包含遵循标准的子码流,这种称作“基础层”的码流要能够为不支持SVC的H.264/AVC编解码器所解码。为达成在时间上的可适应性,在推导子码流时,从码流中移除了完整访问单元(complete access unit)。这种情况下,要按相应方式来构造码流中的高层语法和帧间预测参考帧。另一方面,为达成空间和质量的可适应性(换言之,低分辨率/低质量作为子码流而不是主码流),推导子码流时移除了NAL(网络抽象层)。这种情况下,层间预测(暨,从低分辨率/低质量信号数据中预测高分辨率/高质量信号)常被用于提高编码效率。可适应视频编码扩展于2007年11月完成。

下一个加入标准的主要特性是多视图编码(Multiview Video Coding,MVC)。据H.264/AVC附件H,MVC使得码流结构可以表达一个视频场景的不止一个视图。该功能的一个重要例子是3D立体视频编码。MVC的工作中开发了两个配置:多视图高配置(Multiview High Profile)支持任意数量的视图,立体高配置(Stereo High Profile)是为双视图立体视频特别设计的。多视图编码扩展于2009年11月完成。

技術細節

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

  • 多參考幀的運動補償。比起以前的視頻編碼標準,H.264/AVC以更靈活的方式使用已編碼的更多幀來作為參考幀。在某些情況下,可以使用最多32個參考幀(在以前的標準裡面,參考幀的數目不是1就是對B幀來說的2)。該特性對大多數場景序列都可以帶來一定的碼率降低或者質量提高,對某些類型的場景序列,例如快速重複的閃光,反覆的剪切或者背景遮擋的情況,它能很顯著的降低編碼的碼率。
  • 變塊尺寸運動補償。可使用最大16x16至最小4x4的塊來進行運動估計與運動補償,能夠對圖像序列中的運動區域進行更精確的分割。這些類型共有16×16、16×8、8×16、8×8、8×4、4×8、4×4
  • 為了減少混疊(Aliasing)並得到更銳化的圖像,採用六抽頭的濾波器(六阶数字滤波器)來產生二分之一像素的亮度份量預測值。
  • 灵活的隔行扫描视频编码(interlaced-scan video coding)。隔行扫描图像的每帧包括两个场,所以对于隔行扫描图像有三种编码方式:1、将两场合并为一帧进行编码;2、将两场分别编码;3、将两场合并为一帧,但是在宏块级别上,将一个帧宏块划分为两个场宏块进行编码。以上前两种编码方式称为图像自适应帧/场编码(Picture-adaptive frame-field, PicAFF or PAFF),第三种称为宏块自适应帧/场编码(Macroblock-adaptive frame-field, MBAFF)。[2]
    • PAFF:对于一个运动图像,由于场之间存在着较大的扫描间隔,所以帧中相邻两行之间的空间相关性相对于逐行扫描图像较小,因此对两个场分别编码会更节省码流。对于一个非运动图像,相邻两行之间存在较大的空间相关性,将两场合并为一帧编码更有效。所以PAFF编码方式可以针对整个图像的编码方式做自适应调整,选择帧编码或场编码。
    • MBAFF:当图像同时存在运动区域和非运动区域时,PAFF的劣势便显现出来,PAFF的自适应粒度太粗,无法实现满足更加精细的编码要求,于是MBAFF应运而生。MBAFF对帧编码或场编码的选择是基于宏块的,MBAFF将两场合并为一帧进行编码,但将每一个帧宏块(16x16)划分为场宏块对(8x16),针对每一个帧宏块,比较帧编码和场编码产生的码流大小,使用最节省码流的方式。
  • 1/4像素精度的運動補償能夠提供更高精度的運動塊預測,由於色度通常是亮度抽樣的1/2(參見4:2:0),這時運動補償的精度就達到了1/8像素精度。
  • 加權的運動預測,指在運動補償時可以使用增加權重和偏移的辦法。它能在一些特殊的場合,如淡入、淡出、淡出而後淡入等情況提供相當大的編碼增益。
  • 使用了一個Loop的除塊效應濾波器,能夠減輕普遍存在於其他基於離散餘弦變換DCT)的視頻編解碼器的塊效應。
  • 一個匹配的整數4x4變換(類似於離散餘弦變換的設計),同樣在高精度拓展中,採用整數8x8變換,並能在4x4變換和8x8變換中進行自適應的選擇。
  • 在第一次4x4變換後,對DC係數(色度的DC係數和某種特殊狀況的亮度DC係數)再進行一次Hadamard變換,使得在平滑區域得到更好的壓縮效果。
  • 利用臨近塊的邊界像素的Intra空間預測(比曾在MPEG-2視頻部分使用的直流係數預測和在H.263+MPEG-4視頻部分使用的變換係數預測的效果要好)。
  • 基於上下文的二元算數編碼(CABAC),它能夠靈活的將各種語法元素,在已知相應上下文概率分佈的狀況下進行更有效的無損熵編碼。“通过序列foreman和coastguard对CABAC和CAVLC的压缩性能进行了比较,在给定的实验条件下得出CABAC的比特率比CAVLC节省5%~14%,并且随量化步长的增大,比特率节省增多。但是CABAC计算复杂度高,耗时比CAVLC长。”[3]
  • 基於上下文的變長編碼(CAVLC),用於對量化後的變化係數進行編碼。比起CABAC它的複雜度相對較低,壓縮比不高,但是比起以前的視頻編碼標準所使用的熵編碼方案,它又是相當有效的。CAVLC支援所有的H.264 profiles, CABAC則不支援Baseline以及Extended profiles.
  • 對既不是用CABAC也不是用CAVLC的語法元素,使用指數哥倫布碼(Exponential-Golomb,Exp-Golomb)熵編碼方案,進行編碼。
  • 使用一個網絡抽像層(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第二部分視頻和其它一些技術的專利許可。

其他的專利許可則需要向另一家稱為VIA Licensing的私有組織申請,這家公司另外也管理偏向音頻壓縮的標準如MPEG-2 AAC及MPEG-4 Audio的專利許可。

應用

光碟儲存

當時競爭的兩種下一代光碟格式技術,都已經計劃在2005年下半年,將H.264/MPEG-4 AVC作為必需的編碼格式,包括:

數位電視

歐洲與北美洲地區

歐洲的數位電視廣播(DVB)標準組織,於2004年下半年通過了採用H.264/MPEG-4 AVC於歐洲地區進行數位電視廣播,而法國總理讓-皮埃爾·拉法蘭於2004年宣佈法國將會選用H.264/MPEG-4 AVC作為高畫質電視接收器和數位電視地面廣播服務的付費電視頻道的一項要求。

另外,美國正在考慮使用H.264/MPEG-4 AVC,作為數位電視地面廣播的視訊編碼規格。

亞洲地區

至於亞洲地區,日本所採用的ISDB數位電視廣播制式,提供的ISDB行動電視廣播服務,使用了H.264/MPEG-4 AVC編碼,而其中包括了以下的電視台:

台灣DVB-T數位電視廣播格式進行高解析度無線數位電視頻道,自2020年10月12日起,均採用H.264/MPEG-4 AVC作為視訊編碼格式。

香港無綫電視港台電視香港電視娛樂的所有频道都使用H.264/MPEG-4 AVC作為編碼制式。[4]

澳門方面,澳廣視的所有自家及轉播頻道均採用H.264作為視訊編碼格式。

韓國也正在考慮改使用H.264/MPEG-4 AVC,作為數位電視無線廣播的視訊編碼規格。

衛星數碼電視

衛星數碼電視廣播方面,以下數間服務供應商亦採用了該編碼標準,包括:

网络電視

南京电信在南京推广的IPTV业务由于受带宽限制,将原有4M左右码流的MPEG-2格式的标清卫星节目用H.264重新编码约为2.23M码流的节目播放。

通訊與多媒體

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

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

互聯網工程工作小組(IETF)已經完成了一個負載打包格式(RFC 3984)作為在其實時傳輸協議(RTP)上傳輸H.264/AVC碼流的打包辦法。

互聯網流媒體協會(ISMA for Internet Streaming Media Alliance英语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將很可能被各種視頻點播服務(Video-On-Demand,VOD)使用,用來在互聯網上提供電影電視節目直接到個人電腦的點播服務。

產品和實現

有幾家公司正在製作能夠對H.264/AVC視頻進行解碼的可編程芯片。2005年1月博通(Broadcom)的BCM7411、科胜讯公司(Conexant)的CX2418X、Neomagic的MiMagic 6和意法半導體(STMicroelectronics)的STB7100等幾家公司推出的產品都提供了可供測試的樣片。Sigma Designs預計在2005年3月提供樣片。這些芯片的出現將極大的推動低成本的能夠播放標準畫質高畫質分辨率的H.264/AVC視頻的快速推廣。除了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 Video公司提供廣播、電話用廣播質量的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在硬件上提供對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於2005年6月24日正式發佈。發佈版本分為WinDVD 7 Gold黃金版和WinDVD 7 Platinum白金版,白金版支持H.264/MPEG-4 AVC解碼播放,推薦配置為P4 3.6G。(不屬於原文)

ATI於2005年10月5日發佈的Radeon X1300、X1600、X1800系列圖形芯片支持H.264硬件加速解碼。

Matrox公司推出的Matrox Mxo2 mini with MAX產品提供了H.264加速運算的功能,可以更快的輸出檔案。

設計

最大性能級別[5]
Level 最大解碼速度 最大幀率 最大視頻編碼層比特率[a] 高解析度@ 最高幀率
切換詳細資訊
Luma samples/s Macroblocks/s 明亮度 宏區塊
1 380,160 1,485 25,344 99 64
128×96@30
176×144@15
1b 380,160 1,485 25,344 99 128
128×96@30
176×144@15
1.1 768,000 3,000 101,376 396 192
128x96@60
176×144@30
352×288@7.5
1.2 1,536,000 6,000 101,376 396 384
128x96@120
176×144@60
352×288@15
1.3 3,041,280 11,880 101,376 396 768
128x96@172
176×144@120
352×288@30
2 3,041,280 11,880 101,376 396 2,000
128x96@172
176x144@120
352×288@30
2.1 5,068,800 19,800 202,752 792 4,000
176x144@172
352×240@60
352×288@50
352×480@30
352×576@25
2.2 5,184,000 20,250 414,720 1,620 4,000
176×144@172
352×480@30
352×576@25
720×480@15
720×576@12.5
3 10,368,000 40,500 414,720 1,620 10,000
176×144@172
352×240@120
352×480@60
720×480@30
720×576@25
3.1 27,648,000 108,000 921,600 3,600 14,000
352x288@172
352x576@130
640x480@90
720×576@60
1,280×720@30
3.2 55,296,000 216,000 1,310,720 5,120 20,000
640x480@172
720x480@160
720x576@130
1,280×720@60
4 62,914,560 245,760 2,097,152 8,192 20,000
720x480@172
720x576@150
1,280×720@60
2,048×1,024@30
4.1 62,914,560 245,760 2,097,152 8,192 50,000
720x480@172
720x576@150
1,280×720@60
2,048×1,024@30
4.2 133,693,440 522,240 2,228,224 8,704 50,000
720x576@172
1,280×720@140
2,048×1,080@60
5 150,994,944 589,824 5,652,480 22,080 135,000
1,024×768@172
1,280×720@160
2,048×1,080@60
2,560×1,920@30
3,680×1,536@25
5.1 251,658,240 983,040 9,437,184 36,864 240,000
1,280×720@172
1,920×1,080@120
2,048×1,536@80
4,096×2,048@30
5.2 530,841,600 2,073,600 9,437,184 36,864 240,000
1,920×1,080@172
2,048×1,536@160
4,096×2,160@60
6 1,069,547,520 4,177,920 35,651,584 139,264 240,000
2,048×1,536@300
4,096×2,160@120
8,192×4,320@30
6.1 2,139,095,040 8,355,840 35,651,584 139,264 480,000
2,048×1,536@300
4,096×2,160@240
8,192×4,320@60
6.2 4,278,190,080 16,711,680 36,651,584 139,264 800,000
4,096*2,304@300
8,192×4,320@120

The maximum bit rate for High Profile is 1.25 times that of the Base/Extended/Main Profiles, 3 times for Hi10P, and 4 times for Hi422P/Hi444PP.

The number of luma samples is 16x16=256 times the number of macroblocks (and the number of luma samples per second is 256 times the number of macroblocks per second).

註釋

  1. ^ (Video Coding Layer)
    kbit/s (Baseline, Extended and Main Profiles)

參考資料

  1. ^ H.262 : Information technology —Generic coding of moving pictures and associated audio information: Video. [2007-04-15]. (原始内容存档于2015-10-17). 
  2. ^ 视频编码中的PAFF和MBAFF的区别. [2014-01-19]. (原始内容存档于2015-09-22). 
  3. ^ 比较CABAC与CAVLC. [2014-01-19]. (原始内容存档于2016-03-05). 
  4. ^ 工商及科技局,《立法會參考資料摘要:推行數碼地面電視廣播[失效連結]》,頁5,2006年6月4日
  5. ^ Advanced video coding for generic audiovisual services. ITU-T TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU. : 324 [2018-03-05]. (原始内容存档于2017-09-14). Recommendation ITU-T H.264 

外部連結