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月完成。
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。它也被廣泛用於網絡流媒體數據如Vimeo、YouTube、以及iTunes Store，網絡軟件如Adobe Flash Player和Microsoft Silverlight，以及各種高清晰度電視地面電視（DVB-T、DVB-T2）、有線電視（DVB-C）以及衛星（DVB-S和DVB-S2）。

**概述**
H.264/AVC項目是想創建一種視頻標準。與舊標準相比，它能夠在更低帶寬下提供優質視頻（換言之，只有MPEG-2，H.263或MPEG-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也出現在MPEG和ITU-T的夥伴關係中，MPEG-2視頻在ITU-T社區中稱作H.262。）一些軟件（如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）。
** 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長。”
*基於上下文的變長編碼（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作為必需的編碼格式，包括：- DVD論壇制訂的HD DVD格式- 藍光光碟聯盟（BDA）制訂的藍光光碟Blu-ray Disc格式

**數位電視**

**歐洲與北美洲地區**
歐洲的數位電視廣播（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編碼，而其中包括了以下的電視臺：- 日本放送協會（NHK）- TBS電視臺（TBS）- 日本電視臺（NTV）- 朝日電視臺（TV Asahi）- 富士電視臺（Fuji TV）- 東京電視臺（TV Tokyo）
在臺灣以DVB-T數位電視廣播格式進行高解析度無線數位電視頻道，自2020年10月12日起，均採用H.264/MPEG-4 AVC作為視訊編碼格式。
香港的無綫電視、港臺電視與香港電視娛樂的所有頻道都使用H.264/MPEG-4 AVC作為編碼制式。
澳門方面，澳廣視的所有自家及轉播頻道均採用H.264作為視訊編碼格式。
韓國也正在考慮改使用H.264/MPEG-4 AVC，作為數位電視無線廣播的視訊編碼規格。

**衛星數碼電視**
衛星數碼電視廣播方面，以下數間服務供應商亦採用了該編碼標準，包括：- News Corp.／DirecTV（美國）- Echostar / Dish Network / Voom TV（美國）- Euro1080（歐洲）- Premiere（德國）- BSkyB（英國及愛爾蘭）

**網絡電視**
南京電信在南京推廣的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）已經接受H.264/AVC作為其ISMA 2.0的技術規範。
MPEG組織將H.264/AVC完全的集成進入了它的系統協議（例如MPEG-2和MPEG-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公司同時提供針對windows、Linux和Macintosh平臺的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 AG和Ateme共同開發的軟件包提供了對H.264編碼的支持，並在Doom9獲得"Pick Hit" 獎項。
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加速運算的功能，可以更快的輸出檔案。

**設計**
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).

**註釋**

**參考資料**

**外部連結**
 H.264/AVC綜述文章，包含了新的高精度拓展（Sullivan, Topiwala, and Luthra） date=20190914041234 - 一些有關H.264/AVC的文章（Wiegand）date=20151017133852 - 更多的關於H.264/AVC的文章（Marpe）date=20151017133851 - H.264/AVC參考軟件date=20150802074706 - H.264/MPEG-4 Part 10教程（Richardson）date=20110128164552 - H.264 and MPEG-4 Video Compression date=20121014001902 （Iain E. G. Richardson）- H.264/AVC教科書 date=20171223112323 （大久保榮、角野眞也、菊池義浩、鈴木輝彥）- JVT Experts Group文檔- MPEG LA關於H.264/MPEG-4 AVC專利授權的條款- VIA Licensing關於H.264/MPEG-4 AVC專利授權的訊息- 一個基於GPL的H.264編碼庫，支持大部分H.264的功能 date=20080807132343 - MPEG工業論壇 date=20210126122639 - ITU-T官方網頁date=20191017024821 - H.264 ISO官方網頁 date=20070824184654 - W&W Communications H.264概述和IEEE文章- 蘋果公司H.264素材實例- 61IC工程師H.264討論區- 迎接高解析的未來　H.264與VC-1兩大視訊壓縮技術比較 date=20110604010941