影片編解碼器

影片編解碼器（Video Codec）是指一個能夠對數字影片進行壓縮或者解壓縮的程式或者裝置。通常這種壓縮屬於有損資料壓縮。歷史上，影片訊號是以模擬形式儲存在磁帶上的。隨著 CD 的出現並進入市場，音訊訊號以數字化方式進行儲存，影片訊號也開始使用數字化格式，一些相關技術也開始隨之發展起來。

音訊和影片都需要可定製的壓縮方法。工程師和數學家們嘗試了很多種不同的辦法來試圖解決這個問題。

一個複雜的平衡關係存在於以下因素之間：影片的質量、用來表示影片所需要的資料量（通常稱之為位元速率）、編碼演算法和解碼演算法的複雜度、針對資料丟失和錯誤的魯棒性（Robustness）、編輯的方便性、隨機訪問、編碼演算法設計的完美性、端到端的延時以及其它一些因素。

應用

在日常生活中，影片編解碼器的應用非常廣泛。例如在 DVD（MPEG-2）中，在 VCD（MPEG-1）中，在各種衛星和陸上電視廣播系統中，在網際網路上。線上的影片素材通常是使用很多種不同的編解碼器進行壓縮的，為了能夠正確地瀏覽這些素材，使用者需要下載並安裝編解碼器包 -- 一種為 PC 準備的編譯好的編解碼器元件。

由使用者自己來進行影片的壓縮已經隨著 DVD 燒錄機的出現而越來越風行。由於商店中販賣的 DVD 通常容量比較大（雙層）而目前雙層 DVD 燒錄機還不太普及，所以使用者有時候會對 DVD 的素材進行二次壓縮使其能夠在一張單面 DVD 上完整地儲存。

影片編解碼器設計

一個典型的數字影片編解碼器的第一步是將從攝像機輸入的影片從 RGB 色度空間轉換到 YCbCr 色度空間，而且通常還伴有色度抽樣來生成 4:2:0 格式的影片（有時候在隔行掃描的情況下會採用 4:2:2 的抽樣方式）。轉換到 YCbCr 色度空間會帶來兩點好處：

1) 這樣做部分的解除了色度訊號中的相關性，提高了可壓縮能力。

2) 這樣做將亮度訊號分離出來，而亮度訊號對視覺感覺是最重要的，相對來說色度訊號對視覺感覺就不是那麼重要，可以抽樣到較低的解析度（4:2:0 或者 4:2:2）而不影響人觀看的感覺。

在真正的編碼之前，對空域或者時域抽樣可以有效地降低原始影片資料的資料量。

輸入的影片影像通常被分割為宏塊分別進行編碼，宏塊的大小通常是 16x16 的亮度塊資訊和對應的色度塊資訊。然後使用分塊的運動補償從已編碼的幀對當前幀的資料進行預測。之後，使用塊變換或者子帶分解來減少空域的統計相關性。最常見的變換是 8x8 的離散餘弦變換（DCT fordiscrete cosine transform）。變換的輸出係數接下來被量化，量化後的係數進行熵編碼併成為輸出碼流的一部分。實際上在使用 DCT 變換的時候，量化後的二維的係數通常使用 Zig-zag 掃描將係數表示為一維的，再透過對連續 0 係數的個數和非 0 係數的大小（Level）進行編碼得到一個符號，通常也有特殊的符號來表示後面剩餘的所有係數全部等於 0。這時候的熵編碼通常使用變長編碼。

解碼基本上執行和編碼的過程完全相反的過程。其中不能被完全恢復原來資訊的步驟是量化。這時候，要儘可能接近的恢復原來的資訊。這個過程被稱為反量化，儘管量化本身已經註定是個不可逆過程。

影片編解碼器的設計通常是標準化的，也就是說，有釋出的文件來準確的規範如何進行。實際上，為了使編碼的碼流具有互操作性（即由 A 編碼器編成的碼流可以由 B 解碼器解碼，反之亦然），僅僅對解碼器的解碼過程進行規範就足夠了。通常編碼的過程並不完全被一個標準所定義，使用者有設計自己編碼器的自由，只要使用者設計的編碼器編碼產生的碼流是符合解碼規範的就可以了。因此，由不同的編碼器對同樣的影片源按照同樣的標準進行編碼，再解碼後輸出影像的質量往往可能相差很多。

常用的影片編解碼器

很多影片編解碼器可以很容易的在個人計算機和消費電子產品上實現，這使得在這些裝置上有可能同時實現多種影片編解碼器，這避免了由於相容性的原因使得某種佔優勢的編解碼器影響其它編解碼器的發展和推廣。最後我們可以說，並沒有那種編解碼器可以替代其它所有的編解碼器。下面是一些常用的影片編解碼器，按照它們成為國際標準的時間排序：

3.1 H.261

H.261 主要在老的視訊會議和影片電話產品中使用。H.261 是由 ITU-T 開發的，第一個使用的數字影片壓縮標準。實質上說，之後的所有的標準影片編解碼器都是基於它設計的。它使用了常見的 YCbCr 顏色空間，4:2:0 的色度抽樣格式，8 位的抽樣精度，16x16 的宏塊，分塊的運動補償，按 8x8 分塊進行的離散餘弦變換，量化，對量化係數的 Zig-zag 掃描，run-level 符號影射以及霍夫曼編碼。H.261 只支援逐行掃描的影片輸入。

3.2 H.263

H.263 主要用在視訊會議、影片電話和網路影片上。在對逐行掃描的影片源進行壓縮的方面，H.263 比它之前的影片編碼標準在效能上有了較大的提升。尤其是在低位元速率端，它可以在保證一定質量的前提下大大的節約位元速率。

3.3 MPEG-1 第二部分

MPEG-1 第二部分主要使用在 VCD 上，有些線上影片也使用這種格式。該編解碼器的質量大致上和原有的 VHS 錄影帶相當，但是值得注意的是 VCD 屬於數字影片技術，它不會像 VHS 錄影帶一樣隨著播放的次數和時間而逐漸損失質量。如果輸入影片源的質量足夠好，編碼的位元速率足夠高，VCD 可以給出從各方面看都比 VHS 要高的質量。但是為了達到這樣的目標，通常 VCD 需要比 VHS 標準要高的位元速率。實際上，如果考慮到讓所有的 VCD 播放機都可以播放，高於 1150kbps 的影片位元速率或者高於 352x288 的影片解析度都不能使用。大體來說，這個限制通常僅僅對一些單體的 VCD 播放機（包括一些 DVD 播放機）有效。MPEG-1 第三部分還包括了目前常見的 *.mp3 音訊編解碼器。如果考慮通用性的話，MPEG-1 的影片 / 音訊編解碼器可以說是通用性最高的編解碼器，幾乎世界上所有的計算機都可以播放 MPEG-1 格式的檔案。幾乎所有的 DVD 機也支援 VCD 的播放。從技術上來講，比起 H.261 標準，MPEG-1 增加了對半畫素運動補償和雙向運動預測幀。和 H.261 一樣，MPEG-1 只支援逐行掃描的影片輸入。

3.4 MPEG-2 第二部分

MPEG-2 第二部分等同於 H.262，使用在 DVD、SVCD 和大多數數字影片廣播系統和有線分佈系統（cable distribution systems）中。當使用在標準 DVD 上時，它支援很高的影像質量和寬屏；當使用在 SVCD 時，它的質量不如 DVD 但是比 VCD 高出許多。但是不幸的是，SVCD 最多能在一張 CD 光碟上容納 40 分鐘的內容，而 VCD 可以容納一個小時，也就是說 SVCD 具有比 VCD 更高的平均位元速率。MPEG-2 也將被使用在新一代 DVD 標準 HD-DVD 和 Blu-ray（藍光光碟）上。從技術上來講，比起 MPEG-1，MPEG-2 最大的改進在於增加了對隔行掃描影片的支援。MPEG-2 可以說是一個相當老的影片編碼標準，但是它已經具有很大的普及度和市場接受度。

3.5 MPEG-4 第二部分

MPEG-4 第二部分標準可以使用在網路傳輸、廣播和媒體儲存上。比起 MPEG-2 和第一版的 H.263，它的壓縮效能有所提高。和之前的影片編碼標準的主要不同點在於，“物件導向”（Object-oriented）的編碼方法和一些其它並非用於提高通常影片編碼壓縮率的技術。當然它也引入了一些提高壓縮能力的技術，包括一些 H.263 的技術和 1/4 畫素的運動補償。和 MPEG-2 一樣，它同時支援逐行掃描和隔行掃描。

3.6 MPEG-4 第十部分

MPEG-4 第十部分技術上和 ITU-T H.264 是相同的標準，有時候也被叫做 “AVC”）。是 ITU-T VCEG 和 ISO/IEC MPEG 合作，在 2003 年制定完成的影片編碼標準，並且在已經得到了越來越多的應用。該標準引入了一系列新的能夠大大提高壓縮效能的技術，並能夠同時在高位元速率端和低位元速率端大大超越以前的諸標準。已經使用和將要使用 H.264 技術的產品包括例如索尼公司的 PSP，Nero 公司的 Nero Digital 產品套裝，蘋果公司的 Mac OS X v10.4，以及新一代 DVD 標準 HD-DVD 和藍光光碟（Blu-ray）。

3.7 MPEG-H 第二部分

MPEG-H 第二部分又稱為高效率影片編碼（High Efficiency Video Coding, HEVC），是 ITU-T VCEG 和 ISO/IEC MPEG 再度合作，在 2013 年制定完成的影片編碼標準，被視為是取代 H.264 的新一代視訊編碼標準。

3.8 AVS

AVS 是中國製定的音影片壓縮編碼標準，故準確來說，其不僅僅包括影片編碼標準。它最主要的目的是透過採用與 H.264 不同的專利授權方式，來避免付出大筆的專利授權費用。在技術上可以迴避一些非必要專利，也可以在幾乎不影響編碼壓縮效率的基礎上，提高編解碼速度。

3.9 DivX,XviD 和 3ivx

DivX，XviD 和 3ivx 影片編解碼器基本上使用的都是 MPEG-4 第二部分的技術，以後綴 .avi, .mp4, .ogm 或者 .mkv 結尾的檔案有一部分是使用這些影片編解碼器的。

3.10 WMV

WMV（Windows Media Video）是微軟公司的影片編解碼器家族，包括 WMV 7、WMV 8、WMV 9、WPV 10。這一族的編解碼器可以應用在從撥號上網的窄帶影片到高畫質晰度電視（HDTV）的寬頻影片。使用 Windows Media Video 使用者還可以將影片檔案刻錄到 CD、DVD 或者其它一些裝置上。它也適用於用作媒體伺服器。WMV 可以被看作是 MPEG-4 的一個增強版本。最新的 WMV 的版本是正在 SMPTE 制定中的 VC-1 標準。WMV-9（VC-1，開發代號為 “Corona”）剛推出的時候稱為 VC-9，之後才被電影電視工程師協會（SMPTE）改稱為 VC-1（VC 指 Video Codec）。技術上，VC-1 也與 H.264 有諸多相似之處。

3.11 AV1

AOMedia Video 1（簡稱 AV1）是一個開放、免專利的影片編碼格式，專為透過網路進行串流傳輸而設計。它由開放媒體聯盟（AOMedia）開發，該聯盟由半導體企業、隨選視訊供應商和網頁瀏覽器開發商於 2015 年成立。網際網路工程任務組（IETF）也將這項工作標準化為網路影片編解碼器。

3.12 其他影片編碼器

RealVideo 是由 RealNetworks 公司開發的影片編解碼器。

Sorenson 3 是由蘋果公司的軟體 QuickTime 使用的一種編解碼器。很多因特網上的 QuickTime 格式的影片都是這種編解碼器壓縮的。

Cinepak 同樣是由蘋果公司的軟體 QuickTime 使用的一種很老的編解碼器，好處是即使很老的計算機（如 486）也都支援並且能順利播放。

Indeo Video 是由 Intel 所研發的編解碼器。

上面提到的編解碼器都有各自的優點和缺點，經常可以看到有對這些編解碼器進行比較的文章，這時候最重要的同時考慮編碼的位元速率和清晰度（常說的律失真特性，健壯性）。

編解碼器和影片檔案的問題

一個常見問題，如果一個使用者想要觀看特定的編解碼器編碼的影片流，如果該特定的編碼方式不存在或者沒有正確的被安裝在使用者的電腦上，影片將會無法被播放（或不會達到最好效果）。

MPlayer 和 VLC media player 媒體播放器在一個獨立的行動式的庫中包含了許多流行的編解碼器，可用於多種作業系統，包括 Windows，Linux 和 Mac OSX。這同樣也解決了 Windows 中一些編碼衝突的問題。