視訊編解碼器設計
一個典型的數字視訊編解碼器的第一步是将從錄影機輸入的視訊從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解碼器解碼,反之亦然),僅僅對解碼器的解碼過程進行規範就足夠了。通常編碼的過程并不完全被一個标準所定義,使用者有設計自己編碼器的自由,隻要使用者設計的編碼器編碼産生的碼流是符合解碼規範的就可以了。是以,由不同的編碼器對同樣的視訊源按照同樣的标準進行編碼,再解碼後輸出圖像的品質往往可能相差很多。
常用的視訊編解碼器
很多視訊編解碼器可以很容易的在個人計算機和消費電子産品上實作,這使得在這些裝置上有可能同時實作多種視訊編解碼器,這避免了由于相容性的原因使得某種占優勢的編解碼器影響其它編解碼器的發展和推廣。最後我們可以說,并沒有那種編解碼器可以替代其它所有的編解碼器。下面是一些常用的視訊編解碼器,按照它們成為國際标準的時間排序:
H.261
H.261主要在老的視訊會議和視訊電話産品中使用。H.261是由ITU-T開發的,第一個使用的數字視訊壓縮标準。實質上說,之後的所有的标準視訊編解碼器都是基于它設計的。它使用了常見的YCbCr顔色空間,4:2:0的色度抽樣格式,8位的抽樣精度,16x16的宏塊,分塊的運動補償,按8x8分塊進行的離散餘弦變換,量化,對量化系數的Zig-zag掃描,run-level符号影射以及霍夫曼編碼。H.261隻支援逐行掃描的視訊輸入。
H.263
H.263主要用在視訊會議、視訊電話和網絡視訊上。在對逐行掃描的視訊源進行壓縮的方面,H.263比它之前的視訊編碼标準在性能上有了較大的提升。尤其是在低碼率端,它可以在保證一定品質的前提下大大的節約碼率。
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隻支援逐行掃描的視訊輸入。
MPEG-2第二部分
MPEG-2第二部分等同于H.262,使用在DVD、SVCD和大多數數字視訊廣播系統和有線分布系統(cable distribution systems)中。當使用在标準DVD上時,它支援很高的圖像品質和寬屏;當使用在SVCD時,它的品質不如DVD但是比VCD高出許多。但是不幸的是,SVCD最多能在一張CDCD光牒上容納40分鐘的内容,而VCD可以容納一個小時,也就是說SVCD具有比VCD更高的平均碼率。MPEG-2也将被使用在新一代DVD标準HD-DVD 和 Blu-ray(藍光CD光牒)上。從技術上來講,比起MPEG-1,MPEG-2最大的改進在于增加了對隔行掃描視訊的支援。MPEG-2可以說是一個相當老的視訊編碼标準,但是它已經具有很大的普及度和市場接受度。
MPEG-4第二部分
MPEG-4第二部分标準可以使用在網絡傳輸、廣播和媒體存儲上。比起MPEG-2和第一版的H.263,它的壓縮性能有所提高。和之前的視訊編碼标準的主要不同點在于,“面向對象”(Object-oriented)的編碼方法和一些其它并非用于提高通常視訊編碼壓縮率的技術。當然它也引入了一些提高壓縮能力的技術,包括一些H.263的技術和1/4像素的運動補償。和MPEG-2一樣,它同時支援逐行掃描和隔行掃描。
MPEG-4第十部分
MPEG-4第十部分技術上和ITU-T H.264是相同的标準,有時候也被叫做“AVC”)。 這個剛剛制定完成的标準是ITU-T VCEG和ISO/IEC MPEG合作完成的性能最優的視訊編碼标準,并且在已經得到了越來越多的應用。該标準引入了一系列新的能夠大大提高壓縮性能的技術,并能夠同時在高碼率端和低碼率端大大超越以前的諸标準。已經使用和将要使用H.264技術的産品包括例如索尼公司的PSP,Nero公司的Nero Digital 産品套裝,蘋果公司的Mac OS X v10.4,以及新一代DVD标準HD-DVD和藍光CD光牒(Blu-ray)。
AVS
AVS是中國制定的音視訊壓縮編碼标準,故準确來說,其不僅僅包括視訊編碼标準。它最主要的目的是通過采用與H.264不同的專利授權方式,來避免付出大筆的專利授權費用。在技術上,AVS的視訊編碼部分采用的技術與H.264非常相似,但采取了一些簡化措施。這樣做,其一可以回避一些非必要專利,另外據稱也可以在幾乎不影響編碼壓縮效率的基礎上,提高編解碼速度。
DivX,XviD和3ivx
DivX,XviD和3ivx視訊編解碼器基本上使用的都是MPEG-4第二部分的技術,以字尾*.avi, *.mp4, *.ogm 或者 *.mkv 結尾的檔案有一部分是使用這些視訊編解碼器的。
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有諸多相似之處。
其他視訊編碼器
RealVideo是由RealNetworks公司開發的視訊編解碼器。
Sorenson 3是由蘋果公司的軟體QuickTime使用的一種編解碼器。很多網際網路上的QuickTime格式的視訊都是這種編解碼器壓縮的。
Cinepak同樣是由蘋果公司的軟體QuickTime使用的一種很老的編解碼器,好處是即使很老的計算機(如486)也都支援并且能順利播放。
Indeo Video Indeo Video 是由 Intel 所研發的編解碼器。
上面提到的編解碼器都有各自的優點和缺點,經常可以看到有對這些編解碼器進行比較的文章,這時候最重要的同時考慮編碼的碼率和清晰度(常說的律有損特性,健壯性)。
編解碼器和視訊檔案的問題
一個常見問題,如果一個使用者想要觀看特定的編解碼器編碼的視訊流,如果該特定的編碼方式不存在或者 沒有正确的被安裝在使用者的電腦上,視訊将會無法被播放(或不會達到最好效果)。 MPlayer 和VLC media player媒體播放器在一個獨立的便攜式的庫中包含了許多流行的編解碼器,可用于 多種作業系統,包括 Windows,Linux和Mac OSX。這同樣也解決了Windows中一些編碼沖突的問題。
原文請檢視:http://zh.wikipedia.org/zh-cn/%E8%A7%86%E9%A2%91%E7%BC%96%E8%A7%A3%E7%A0%81%E5%99%A8