H.264/MPEG-4 AVC
技術細節

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也同時在進行一些硬件參考設計的實現。