數字視頻編解碼基礎知識大全

原文轉載自:http://blog.csdn.net/gougouzhuzhu/article/details/1828535

內容實在是相當豐富與精彩,以下是原文轉載,只調整了部分順序,並重點標明段落標記。

========================================================================================================================

圖像及視頻基礎知識
一、光和顏色
1 光和顏色
    可見光是波長在380 nm~780 nm 之間的電磁波,我們看到的大多數光不是
一種波長的光,而是由許多不同波長的光組合成的。如果光源由單波長組成,就
稱爲單色光源。該光源具有能量,也稱強度。實際中,只有極少數光源是單色的,
大多數光源是由不同波長組成,每個波長的光具有自身的強度。這稱爲光源的光
譜分析。
    顏色是視覺系統對可見光的感知結果。研究表明,人的視網膜有對紅、綠、
藍顏色敏感程度不同的三種錐體細胞。紅、綠和藍三種錐體細胞對不同頻率的光
的感知程度不同,對不同亮度的感知程度也不同。
    自然界中的任何一種顏色都可以由R,G,B 這3 種顏色值之和來確定,以這
三種顏色爲基色構成一個RGB 顏色空間,基色的波長分別爲700 nm(紅色)、546.1
nm(綠色)和435.8 nm(藍色)。
    顏色=R(紅色的百分比)+G(綠色的百分比)+B(藍色的百分比)
    可以選擇不同的三基色構造不同的顏色空間,只要其中一種不是由其它兩種
顏色生成。例如Y(Yellow,黃色),C( Cyan,青色),M(Magenta,品紅)。
2 顏色的度量
    圖像的數字化首選要考慮到如何用數字來描述顏色。國際照明委員會CIE
(International Commission on Illumination )對顏色的描述作了一個通用
的定義,用顏色的三個特性來區分顏色。這些特性是色調,飽和度和明度,它們
是顏色所固有的並且是截然不同的特性。
    色調(hue)又稱爲色相,指顏色的外觀,用於區別顏色的名稱或顏色的種類。
色調用紅、橙、黃、綠、青、藍、靛、紫等術語來刻畫。用於描述感知色調的一
個術語是色彩(colorfulness)。
    飽和度(saturation)是相對於明度的一個區域的色彩,是指顏色的純潔性,
它可用來區別顏色明暗的程度。完全飽和的顏色是指沒有滲入白光所呈現的顏
色,例如僅由單一波長組成的光譜色就是完全飽和的顏色。
    明度(brightness)是視覺系統對可見物體輻射或者發光多少的感知屬性。它
和人的感知有關。由於明度很難度量,因此國際照明委員會定義了一個比較容易
度量的物理量,稱爲亮度(luminance) 來度量明度,亮度(luminance)即輻射的
能量。明度的一個極端是黑色(沒有光),另一個極端是白色,在這兩個極端之間
是灰色。
    光亮度(lightness)是人的視覺系統對亮度(luminance)的感知響應值,光亮
度可用作顏色空間的一個維,而明度(brightness)則僅限用於發光體,該術語用
來描述反射表面或者透射表面。
3 顏色空間
    顏色空間是表示顏色的一種數學方法,人們用它來指定和產生顏色,使顏色
形象化。顏色空間中的顏色通常使用代表三個參數的三維座標來指定,這些參數
描述的是顏色在顏色空間中的位置,但並沒有告訴我們是什麼顏色,其顏色要取
決於我們使用的座標。
    使用色調、飽和度和明度構造的一種顏色空間,叫做HSB(hue, saturation
and brightness)顏色空間。RGB(red,green and blue)和CMY(cyan, magenta and
yellow)是最流行的顏色空間,它們都是與設備相關的顏色空間,前者用在顯示
器上,後者用在打印設備上。
      從技術上角度區分,顏色空間可考慮分成如下三類:
    Ø RGB 型顏色空間/計算機圖形顏色空間:這類模型主要用於電視機和計
算機的顏色顯示系統。例如,RGB,HSI, HSL 和HSV 等顏色空間。
    Ø XYZ 型顏色空間/CIE 顏色空間:這類顏色空間是由國際照明委員會定
義的顏色空間,通常作爲國際性的顏色空間標準,用作顏色的基本度量方法。例
如,CIE 1931 XYZ,L*a*b,L*u*v 和LCH 等顏色空間就可作爲過渡性的轉換空
間。
    Ø YUV 型顏色空間/電視系統顏色空間:由廣播電視需求的推動而開發的顏
色空間,主要目的是通過壓縮色度信息以有效地播送彩色電視圖像。例如,YUV,
YIQ,ITU-R BT.601 Y'CbCr, ITU-R BT.709 Y'CbCr 和SMPTE-240M Y'PbPr 等顏
色空間。
4 顏色空間的轉換
    不同顏色可以通過一定的數學關係相互轉換:
    Ø 有些顏色空間之間可以直接變換。例如,RGB 和HSL,RGB 和HSB,
RGB 和R'G'B', R'G'B'和Y'CrCb,CIE XYZ 和CIE L*a*b*等。
    Ø 有些顏色空間之間不能直接變換。例如,RGB 和CIE La*b*, CIE XYZ
和HSL,HSL 和Y'CbCr 等,它們之間的變換需要藉助其他顏色空間進行
過渡。
    R'G'B'和Y'CbCr 兩個彩色空間之間的轉換關係用下式表示:
    Y = 0.299R + 0.587G + 0.114B
    Cr = (0.500R - 0.4187G - 0.0813B) + 128
    Cb = (-0.1687R - 0.3313G + 0.500B) + 128
二、彩色電視的制式及其顏色空間
1、彩色電視制式
    目前世界上現行的彩色電視制式有三種:NTSC 制、PAL 制和SECAM 制。這裏
不包括高清晰度彩色電視HDTV (High-Definition television)。
    NTSC(National Television Systems Committee)彩色電視制是1952 年美國
國家電視標準委員會定義的彩色電視廣播標準,稱爲正交平衡調幅制。美國、加
拿大等大部分西半球國家,以及日本、韓國、菲律賓等國和中國的臺灣採用這種
制式。
    NTSC 彩色電視制的主要特性是:
    (1) 525 行/幀, 30 幀/秒(29.97 fps, 33.37 ms/frame)
    (2) 高寬比:電視畫面的長寬比(電視爲4:3;電影爲3:2;高清晰度電視爲
16:9)
    (3) 隔行掃描,一幀分成2 場(field),262.5 線/場
    (4) 在每場的開始部分保留20 掃描線作爲控制信息,因此只有485 條線的
可視數據。Laser disc 約~420 線,S-VHS 約~320 線
    (5) 每行63.5 微秒,水平回掃時間10 微秒(包含5 微秒的水平同步脈衝),
所以顯示時間是53.5 微秒。
    (6) 顏色模型:YIQ
    一幀圖像的總行數爲525 行,分兩場掃描。行掃描頻率爲15 750 Hz, 周
期爲63.5μs;場掃描頻率是60 Hz,週期爲16.67 ms;幀頻是30 Hz,週期33.33
ms。每一場的掃描行數爲525/2=262.5 行。除了兩場的場回掃外,實際傳送圖像
的行數爲480 行。
    由於NTSC 制存在相位敏感造成彩色失真的缺點,因此德國(當時的西德)於
1962 年制定了PAL(Phase-Alternative Line)制彩色電視廣播標準,稱爲逐行倒
相正交平衡調幅制。德國、英國等一些西歐國家,以及中國、朝鮮等國家採用這
種制式。
    PAL 電視制的主要掃描特性是:
    (1) 625 行(掃描線)/幀,25 幀/秒(40 ms/幀)
    (2) 長寬比(aspect ratio):4:3
    (3) 隔行掃描,2 場/幀,312.5 行/場
    (4) 顏色模型:YUV
    法國制定了SECAM (法文:Sequential Coleur Avec Memoire)彩色電視廣播標
準,稱爲順序傳送彩色與存儲制。法國、蘇聯及東歐國家採用這種制式。世界上
約有65 個地區和國家試驗這種制式。
    這種制式與PAL 制類似,其差別是SECAM 中的色度信號是頻率調製(FM),而
且它的兩個色差信號:紅色差(R'-Y')和藍色差(B'-Y')信號是按行的順序傳輸
的。法國、俄羅斯、東歐和中東等約有65 個地區和國家使用這種制式,圖像格
式爲4:3,625 線,50 Hz,6 MHz 電視信號帶寬,總帶寬8 MHz。
2、彩色電視的顏色空間
    在彩色電視中,用Y、C1, C2 彩色表示法分別表示亮度信號和兩個色差信號,
C1,C2 的含義與具體的應用有關。在NTSC 彩色電視制中,C1,C2 分別表示I、
Q 兩個色差信號;在PAL 彩色電視制中,C1,C2 分別表示U、V 兩個色差信號;
在CCIR 601 數字電視標準中,C1,C2 分別表示Cr,Cb 兩個色差信號。所謂色
差是指基色信號中的三個分量信號(即R、G、B)與亮度信號之差。
    NTSC 的YIQ 顏色空間與RGB 顏色空間的轉換關係如下:
    Y=0.30R+0.59G+0.11B
    I=0.74(R-Y)-0.27(B-Y) = 0.60R+0.28G+0.32B
    Q=0.48(R-Y)-0.27(B-Y) = 0.21R+0.52G+0.31B
    PAL 的YUV 顏色空間與RGB 顏色空間的轉換關係如下:
    Y=0.30R+0.59G+0.11B
    U=0.493(B-Y) = -0.15R-0.29G+0.44B
    Q=0.877(R-Y) = 0.62R-0.52G-0.10B
三、視頻圖像採樣
    模擬視頻的數字化包括不少技術問題,如電視信號具有不同的制式而且採用
複合的YUV 信號方式,而計算機工作在RGB 空間;電視機是隔行掃描,計算機顯
示器大多逐行掃描;電視圖像的分辨率與顯示器的分辨率也不盡相同等等。因此,
模擬視頻的數字化主要包括色彩空間的轉換、光柵掃描的轉換以及分辨率的統
一。
    模擬視頻一般採用分量數字化方式,先把複合視頻信號中的亮度和色度分
離,得到YUV 或YIQ 分量,然後用三個模/數轉換器對三個分量分別採樣並進行
數字化,最後再轉換成RGB 空間。
1、圖像子採樣
    對彩色電視圖像進行採樣時,可以採用兩種採樣方法。一種是使用相同的採
樣頻率對圖像的亮度信號(Y)和色差信號(Cr,Cb)進行採樣,另一種是對亮
度信號和色差信號分別採用不同的採樣頻率進行採樣。如果對色差信號使用的採
樣頻率比對亮度信號使用的採樣頻率低,這種採樣就稱爲圖像子採樣
(subsampling)。由於人的視覺對亮度信號的敏感度高於對色差的敏感度,這樣
做利用人的視覺特性來節省信號的帶寬和功率,通過選擇合適的顏色模型,可以
使兩個色差信號所佔的帶寬明顯低於Y 的帶寬,而又不明顯影響重顯彩色圖像的
觀看。
    目前使用的子採樣格式有如下幾種:
    (1) 4:4:4 這種採樣格式不是子採樣格式,它是指在每條掃描線上每4 個連
續的採樣點取4 個亮度Y 樣本、4 個紅色差Cr 樣本和4 個藍色差Cb 樣本,這就
相當於每個像素用3 個樣本表示。
    (2) 4:2:2 這種子採樣格式是指在每條掃描線上每4 個連續的採樣點取4
個亮度Y 樣本、2 個紅色差Cr 樣本和2 個藍色差Cb 樣本,平均每個像素用2 個
樣本表示。
    (3) 4:1:1 這種子採樣格式是指在每條掃描線上每4 個連續的採樣點取4
個亮度Y 樣本、1 個紅色差Cr 樣本和1 個藍色差Cb 樣本,平均每個像素用1.5
個樣本表示。
    (4) 4:2:0 這種子採樣格式是指在水平和垂直方向上每2 個連續的採樣點上
取2 個亮度Y 樣本、1 個紅色差Cr 樣本和1 個藍色差Cb 樣本,平均每個像素用
1.5 個樣本表示。
2、CIF、QCIF 和SQCIF 格式
    爲了既可用625 行的電視圖像又可用525 行的電視圖像,CCITT 規定了稱爲
公用中分辨率格式CIF(Common Intermediate Format),1/4 公用中分辨率格式
(Quarter-CIF,QCIF)和(Sub-Quarter Common Intermediate Format,SQCIF)
格式對電視圖像進行採樣。
    CIF 格式具有如下特性:
    (1) 電視圖像的空間分辨率爲家用錄像系統(Video Home System,VHS)的分辨率,即352×288。
    (2) 使用非隔行掃描(non-interlaced scan)。
    (3) 使用NTSC 幀速率,電視圖像的最大幀速率爲30000/1001≈29.97 幅/秒。
    (4) 使用1/2 的PAL 水平分辨率,即288 線。
    (5) 對亮度和兩個色差信號(Y、Cb 和Cr)分量分別進行編碼,它們的取值範圍同ITU-R BT.601。即黑色=16,白色=235,色差的最大值等於240,最小值等於16。
    下面爲5 種 CIF 圖像格式的參數說明。參數次序爲“圖象格式 亮度取樣的
象素個數(dx) 亮度取樣的行數 (dy) 色度取樣的象素個數(dx/2) 色度取樣的行
數(dy/2)”。
    sub-QCIF 128  96   64  48
    QCIF     176  144  88  72
    CIF      352  288  176 144
    4CIF     704  576  352 288
    16CIF    1408 1152 704 576
 

http://www.blogcn.com/u/6/89/52mp4/index.html

關於視頻與音頻的格式

    作爲計算機多媒體技術的重要組成部分的音頻與視頻技術的發展非常迅速,本文對它們簡要的加以介紹
一音頻(Audio):

音頻格式:
  音頻文件主要分爲聲音文件與MIDI文件兩大類型。
       1.MIDI(Music Instrument Digital Interface,樂器數字接口)文件內部存儲的不是聲音信號,而是各種樂器的發音命令,播放時系統根據這些命令合成樂曲,MIDI文件的優點是非常小,缺點是隻能演奏音樂,對其它聲音無能爲力。

       2.聲音文件通常是WAV格式文件,以及由於壓縮算法的不同又派生出一些新的聲音格式文件,如MP3等。       
      (1)WAV格式文件,是通過對聲波的連續採集來記錄聲音,優點是可以精確地記錄各種聲音,缺點是文件很大,雖然可以通過降低採樣頻率,減少聲道數目等方法來縮小文件,但這是得不償失的。
       (2)音樂CD,通過音軌的方式將聲音記錄在光盤上。
       (3)MP3格式文件是由WAV文件經MPEG-1音頻第三層壓縮而來的,全稱(MPEG-1 Audio Layer 3),因爲是有損壓縮,所以MP3的聲音質量要略低於CD和WAV格式,這種差異用耳朵難以分辨,壓縮後MP3文件的體積與WAV文件的比例通常是1:12。       
       (4)RA格式文件(RealAudio),一種適用於Internet的“流式文件”,可以一邊下載到本地的內存緩衝區,一邊播放,文件比MP3格式的還小,只是音質較差。
       
(5)VFQ格式文件,是NTT公司與YAMAHA公司共同開發的一種新的音樂格式,它具有比MP3更高的壓縮比,能達到1:18,而音質與MP3不相上下。
       
(6)WMA格式文件,由Microsoft公司開發,它的音質可以與MP3相比,而大小隻有MP3格式的一半,同時支持音頻流技術,因此也可以應用於Internet,它的音質要好於RA格式。
       
(7)MP4格式文件,由GMO公司開發,它採用的壓縮技術並非採用MPEG-1的第四層,而是MPEG-2的第二層,它的壓縮比MP3更高,能達到1:15,而且內嵌播放器,更重要的是它得到了美國唱片行業聯合會的支持。

音頻文件的播放
       1.MIDI文件,使用Windows自帶的媒體播放器。
執行步驟:(1)執行“開始-程序-附件-娛樂-媒體播放器”,打開媒體播放器。
         (2)選擇菜單“文件-打開”,單擊“瀏覽”按鈕。
         (3)選擇相應的MIDI文件。
         (4)按播放按鈕播放MIDI文件。
       2.WAV文件,使用Windows自帶的媒體播放器,執行步驟與上面相似。
       3.音樂CD,使用Windows自帶的CD播放器。
執行步驟:(1)執行“開始-程序-附件-娛樂-CD播放器”,打開CD播放器。
         (2)在光驅中插入一張CD音樂盤。
         (3)按“播放”等按鈕控制CD播放。
       4.MP3文件,MP3的播放器很多,這裏我們介紹使用最廣泛的Winamp。
執行步驟:(1)安裝,執行Winamp。
         (2)單擊“打開文件”按鈕,(類似彈出按鈕)。
         (3)按“播放”等按鈕控制播放過程。     
注意:多首歌曲連續播放有三個方法:
         (1)打開文件時,按shift複選歌曲。
         (2)使用"PL"按鈕,然後添加歌曲。
         (3)在浮動面板上按右鍵,選“Playlist Editor”。
       5.VQF文件,使用YAMAHA公司的YAMAHA soundVQ player播放軟件。
       6.WMA格式文件,使用微軟的Windows Media Player播放器。
      7.MP4格式文件,使用Winamp播放器,但需要一個“in_MP$.dll”的plugins(插件)。
音頻文件的製作及相互轉換
       1.MIDI製作,需專用設備和較強的音樂才能,不是一般發燒友能解決的。
       2.WAV製作,使用Windows自帶的錄音機。
執行步驟:(1)執行“開始-程序-附件-娛樂-錄音機”,打開錄音機程序。
         (2)執行“開始-程序-附件-娛樂-音量控制”,打開音量控制程序。
         (3)根據聲音來源調整相應的聲音通道。
         (4)開始錄音。
         (5)將聲音存儲爲WAV文件。
       
3.CD轉MP3,這也是最實用的一種轉換,現在許多播放器都擁有此功能,如“東方影都”“豪傑超級解霸”等。目前製作MP3的軟件數不勝數,就不一一列舉了。
       4.RA文件製作,使用Realaudio公司的RealProducer工具軟件。
       5.CD音樂製作,硬件上要有光盤刻錄機,使用支持音樂CD刻錄的刻盤軟件,如AudioWriter。
       6.VFQ格式文件製作,使用VQnvert工具軟件。
       7.WMA格式文件製作,使用Audio Convert2.0工具軟件。
二視頻(Video) :
  日常生活中我們接觸的VCD、多媒體CD光盤中的動畫等都是視頻文件。視頻文件不僅包含了大量圖像信息,還容納了大量音頻信息。
視頻格式:
    1.AVI格式   
      AVI的名字叫做音頻視頻交錯(Audio Video Interleaved)格式。它是由Microsoft公司開發的一種數字音頻與視頻文件格式,原先僅僅用於微軟的視窗視頻操作環境(VFW ,Microsoft Video for Windows),現在已被大多數操作系統直接支持。AVI格式允許視頻和音頻交錯在一起同步播放,但AVI文件沒有限定壓縮標準,由此就造成不同的AVI格式之間往往互不兼容。不同壓縮標準生成的AVI文件,就必須使用相應的解壓縮算法才能將之播放出來。常用的AVI播放驅動程序,主要有Microsoft Video for Windows或Windows 95/98中的Video 1,以及Intel公司的Indeo Video等等。 
      2.MOV格式(QuickTime) 
  QuickTime格式大家可能不怎麼熟悉,因爲它是Apple公司開發的一種音頻、視頻文件格式。QuickTime用於保存音頻和視頻信息,現在它被包括Apple Mac OS、Microsoft Windows 95/98/NT在內的所有主流電腦平臺支持。QuickTime文件格式支持25位彩色,支持領先的集成壓縮技術,提供150多種視頻效果,並配有提供了200多種MIDI兼容音響和設備的聲音裝置。新版的QuickTime的MOV也可以作爲一種流文件格式,包含了基於Internet應用的關鍵特性。

      3.MPEG/MPG/DAT格式 
  MPEG就是Moving Pictures Experts Group(動態圖像專家組)的縮寫,由國際標準化組織ISO(International Standards Organization)與IEC(International Electronic Committee)於1988年聯合成立,專門致力於運動圖像(MPEG視頻)及其伴音編碼(MPEG音頻)標準化工作。MPEG是運動圖像壓縮算法的國際標準,現已被幾乎所有的計算機平臺共同支持。和前面某些視頻格式不同的是,MPEG是在保證影像質量的基礎上採用有損壓縮方法減少運動圖像中的冗餘信息從而達到高壓縮比的目的。MPEG壓縮標準是針對運動圖像而設計的,其基本方法是:在單位時間內採集並保存第一幀信息,然後只存儲其餘幀相對第一幀發生變化的部分,從而達到壓縮的目的。MPEG的壓縮比最高可達200∶1,壓縮效率之高由此可見一斑。Video 
CD (VCD)、Super VCD (SVCD)、DVD (Digital Versatile Disk)就是全面採用MPEG技術而產生出來的。 
      4.RM(Real Media)格式 
  RM格式是RealNetworks公司開發的一種新型流式視頻文件格式。RealAudio用來傳輸音頻數據,RealVideo用來傳輸連續視頻數,RealMedia可以根據網絡數據傳輸速率的不同制定了不同的壓縮比率,從而實現在低速率的廣域網上進行影像數據的實時傳送和實時播放。RealVideo除了可以以普通的視頻文件形式播放之外,還可以與RealServer服務器相配合,由RealServer負責廣播RealMedia視頻文件,在數據傳輸過程中可以邊下載邊由RealPlayer播放視頻影像,而不必像大多數視頻文件那樣,必須先下載然後才能播放。
      5.ASF(Advanced Streaming Format)格式 
  Microsoft公司推出的Advanced Streaming Format (ASF,高級流格式),也是一個在Internet上實時傳播多媒體的技術標準。ASF的主要部件是NetShow服務器和NetShow播放器。有獨立的編碼器將媒體信息編譯成ASF流,然後發送到NetShow服務器,再由NetShow服務器將ASF流發送給網絡上的所有NetShow播放器,從而實現單路廣播或多路廣播。
視頻文件的播放:
       1.微軟的Windows Media Player播放器。
可以播放ASF,AVI,MPG格式的視頻文件,加入Div X插件後,還可播放MPG4視頻文件。
       2.Real Networks公司的Realplayer播放器。
可以播放RM格式的視頻文件,還可上網收聽音樂及收看電視等視頻轉播。
       3.Apple公司的QuickTime播放器。
可以播放MOV格式的視頻文件。
       4.我國的“東方影都”“豪傑超級解霸”等。
它們是綜合性的視頻播放軟件,支持多種格式的視頻文件的播放。
視頻文件的製作及相互轉換:
       1.AVI文件製作,硬件上需專用音頻與視頻採集設備,軟件上使用Adobe公司的Premiere或友利公司的Media Studio 
Pro進行採集。
       2.MPG文件及DAT(VCD)的製作,使用豪傑超級解霸。
執行步驟:使用豪傑超級解霸播放視頻文件時暫停,選擇要採集段落的開始和結尾,輸入MPG文件的文件名,開始轉換。
       3.MPG4文件的製作,使用豪傑超級解霸2000+。
       4.RM文件製作,使用Realaudio公司的RealProducer工具軟件。
       5.ASF格式文件製作,使用Sonic Foundry Stream Anywhere工具軟件及Windows Media Toolkit工具軟件。


MPEG-4視頻編碼核心思想及技術研究

  當今時代,信息技術和計算機互聯網飛速發展,在此背景下,多媒體信息已成爲人類獲取信息的最主要載體,同時也成爲電子信息領域技術開發和研究的熱點。多媒體信息經數字化處理後具有易於加密、抗干擾能力強、可再生中繼等優點,但同時也伴隨海量數據的產生,這對信息存儲設備及通信網絡均提出了很高要求,從而成爲阻礙人們有效獲取和使用信息的重大瓶頸。

  因此研究高效的多媒體數據壓縮編碼方法,以壓縮形式存儲和傳輸數字化的多媒體信息具有重要意義。作爲多媒體技術的核心及關鍵,多媒體數據壓縮編碼近年來在技術及應用方面都取得了長足進展,它的進步和完善正深刻影響着現代社會的方方面面。

 2 視頻編碼研究與MPEG標準演進

  人類獲取的信息中70%來自於視覺,視頻信息在多媒體信息中佔有重要地位;同時視頻數據冗餘度最大,經壓縮處理後的視頻質量高低是決定多媒體服務質量的關鍵因素。因此數字視頻技術是多媒體應用的核心技術,對視頻編碼的研究已成爲信息技術領域的熱門話題。

  視頻編碼的研究課題主要有數據壓縮比、壓縮/解壓速度及快速實現算法三方面內容。以壓縮/解壓後數據與壓縮前原始數據是否完全一致作爲衡量標準,可將數據壓縮劃分爲無失真壓縮(即可逆壓縮)和有失真壓縮(即不可逆壓縮)兩類。

  傳統壓縮編碼建立在仙農信息論基礎之上的,以經典集合論爲工具,用概率統計模型來描述信源,其壓縮思想基於數據統計,因此只能去除數據冗餘,屬於低層壓縮編碼的範疇。

  伴隨着視頻編碼相關學科及新興學科的迅速發展,新一代數據壓縮技術不斷誕生並日益成熟,其編碼思想由基於像素和像素塊轉變爲基於內容 (content-based)。它突破了仙農信息論框架的束縛,充分考慮了人眼視覺特性及信源特性,通過去除內容冗餘來實現數據壓縮,可分爲基於對象(object-based)和基於語義(semantics-based)兩種,前者屬於中層壓縮編碼,後者屬於高層壓縮編碼。

  與此同時,視頻編碼相關標準的制定也日臻完善。視頻編碼標準主要由ITU-T和ISO/IEC開發。ITU-T發佈的視頻標準有H.261、 H.262、 H.263、 H.263+、H.263++,ISO/IEC公佈的MPEG系列標準有MPEG-1、MPEG-2 、MPEG-4 和MPEG-7,並且計劃公佈MPEG-21。

   MPEG即Moving Picture Expert Group(運動圖像專家組),它是專門從事制定多媒體視音頻壓縮編碼標準的國際組織。MPEG系列標準已成爲國際上影響最大的多媒體技術標準,其中MPEG-1和MPEG-2是採用以仙農信息論爲基礎的預測編碼、變換編碼、熵編碼及運動補償等第一代數據壓縮編碼技術;MPEG-4(ISO/IEC 14496)則是基於第二代壓縮編碼技術制定的國際標準,它以視聽媒體對象爲基本單元,採用基於內容的壓縮編碼,以實現數字視音頻、圖形合成應用及交互式多媒體的集成。MPEG系列標準對VCD、DVD等視聽消費電子及數字電視和高清晰度電視(DTV&&HDTV)、多媒體通信等信息產業的發展產生了巨大而深遠的影響。


常見視頻格式解析
現在網上的視頻格式實在太多,我將這些格式整理了一下,給大家分享。有沒有寫全的,請回復。
目前,國際上有兩大公認的音視頻編碼標準化組織:一個是國際電信聯合會ITU屬下的視頻編碼專家組VCEG(Video Code Expert Group), VCEG制定的H.261、H.262、H.263已成爲電視會議的視頻壓縮標準,最新推出的H.264是爲新一代交互視頻通訊制定的標準;另一個則名氣更大——國際標準化組織ISO屬下的運動圖像專家組MPEG(Motion Picture Expert Group),MPEG制定的標準有MPEG-1、MPEG-2、MPEG-4、MPEG-4 AVC 、MPEG-7和MPEG-21。 
MPEG-1是較早的視頻編碼,質量比較差,主要用於 CD-ROM 存儲視頻,以及大家熟悉的 VCD(Video CD);MPEG-2是一高清視頻編碼標準,分辨率達到了1920x1080。現在不但用於 DVD-Video ,而且大部分高清電視也採用 MPEG-2 編碼, 美國、歐洲、日本都普遍採用MPEG-2編碼作爲數字視頻的壓縮標準;MPEG-4是爲交互式多媒體通訊制定得壓縮標準,幾乎包括了所有多媒體、存儲媒體和通信的接口;MPEG-4 AVC是一種不同於MPEG-4 的編碼,更加適合低帶寬傳輸;MPEG-7是爲互聯網視頻檢索制定的壓縮標準;MPEG-21 是定義21世紀多媒體應用的標準化技術。 
爲了彼此交流的需要,兩大國際視頻編碼標準化組織也相互認證了一些標準,如H.262標準就等同於MPEG-2,而最新的H.264標準則被納爲MPEG-4的一部分。 
我國“數字音視頻編解碼技術標準工作組” 制定了AVS這一具有自主知識產權的第二代信源編碼標準。它的編碼效率比MPEG-2高2-3倍,與MPEG-4 AVC和H.264處於同一水平。AVS憑藉簡潔的技術方案,並回避了AVC的專利許可問題,有望成爲中國數字電視的信源編碼標準。  
數字視頻編碼技術上的實力派還有微軟的WMV(Windows Media Video),它授權費用低,而且可以在電腦中免費使用,它還是DVD論壇的下一代DVD編碼標準之一,因此其應用前景被業界看好。  
此外, 我們經常看到視頻網站上的影視節目通常採用realplay的RM、RMVB格式和蘋果的quicktime格式, 可以說它們已經成爲網上視頻的主角。這主要得益於它們較好地平衡了影音效果和文件體積的關係。 
除了以上商業色彩濃厚的編碼技術外,民間的視頻編碼技術也異彩紛呈,例如我們熟知的採用 MPEG-4 視頻編碼方案的DivX、XivD、3ivX等。
具體分類:
ASF
ASF 是 Advanced Streaming format 的縮寫,由字面(高級流格式)意思就應該看出這個格式的用處了吧。說穿了 ASF 就是 MICROSOFT 爲了和現在的 Real player 競爭而發展出來的一種可以直接在網上觀看視頻節目的文件壓縮格式!由於它使用了 MPEG4 的壓縮算法,所以壓縮率和圖像的質量都很不錯。因爲 ASF 是以一個可以在網上即時觀賞的視頻“流”格式存在的,所以它的圖象質量比 VCD 差一點點並不出奇,但比同是視頻“流”格式的 RAM 格式要好。不過如果你不考慮在網上傳播,選最好的質量來壓縮文件的話,其生成的視頻文件比 VCD (MPEG1)好是一點也不奇怪的,但這樣的話,就失去了 ASF 本來的發展初衷,還不如干脆用 N AVI 或者 DIVX 。但微軟的“子第”就是有它特有的優勢,最明顯的是各類軟件對它的支持方面就無人能敵。
n AVI
n AVI 是 newAVI 的縮寫,是一個名爲 ShadowRealm 的地下組織發展起來的一種新視頻格式。它是由 Microsoft ASF 壓縮算法的修改而來的(並不是想象中的 AVI),視頻格式追求的無非是壓縮率和圖象質量,所以 NAVI 爲了追求這個目標,改善了原始的 ASF 格式的一些不足,讓 NAVI 可以擁有更高的幀率(frame rate)。當然,這是犧牲 ASF 的視頻流特性作爲代價的。概括來說, NAVI 就是一種去掉視頻流特性的改良型 ASF 格式!再簡單點就是---非網絡版本的 ASF !
AVI
AVI 是 Audio Video Interleave 的縮寫,這個看來也不用我多解釋了,這個微軟由 WIN3.1 時代就發表的舊視頻格式已經爲我們服務了好幾個年頭了。如果這個都不認識,我看你還是別往下看了,這個東西的好處嘛,無非是兼容好、調用方便、圖象質量好,但缺點我想也是人所共知的:尺寸大!就是因爲這點,我們現在纔可以看到由 MPEG1 的誕生到現在 MPEG4 的出臺。
MPEG
MPEG 是 Motion Picture Experts Group 的縮寫,它包括了 MPEG-1, MPEG-2 和 MPEG-4 (注意,沒有MPEG-3,大家熟悉的MP3 只是 MPEG Layer 3)。MPEG-1相信是大家接觸得最多的了,因爲它被廣泛的應用在 VCD 的製作和一些視頻片段下載的網絡應用上面,可以說 99% 的 VCD 都是用 MPEG1 格式壓縮的,(注意 VCD2.0 並不是說明 VCD 是用 MPEG-2 壓縮的)使用 MPEG-1 的壓縮算法,可以把一部 120 分鐘長的電影(未視頻文件)壓縮到 1.2 GB 左右大小。MPEG-2 則是應用在 DVD 的製作(壓縮)方面,同時在一些 HDTV(高清晰電視廣播)和一些高要求視頻編輯、處理上面也有相當的應用面。使用 MPEG-2 的壓縮算法壓縮一部 120 分鐘長的電影(未視頻文件)可以到壓縮到 4 到 8 GB 的大小(當然,其圖象質量等性能方面的指標 MPEG-1 是沒得比的)。MPEG-4 是一種新的壓縮算法,使用這種算法的 ASF 格式可以把一部 120 分鐘長的電影(未視頻文件)壓縮到 300M 左右的視頻流,可供在網上觀看。其它的 DIVX 格式也可以壓縮到 600M 左右,但其圖象質量比 ASF 要好很多。
DIVX
DIVX 視頻編碼技術可以說是一種對 DVD 造成威脅的新生視頻壓縮格式(有人說它是 DVD 殺手),它由 Microsoft mpeg4v3 修改而來,使用 MPEG4 壓縮算法。同時它也可以說是爲了打破 ASF 的種種協定而發展出來的。而使用這種據說是美國禁止出口的編碼技術 --- MPEG4 壓縮一部 DVD 只需要 2 張 CDROM!這樣就意味着,你不需要買 DVD ROM 也可以得到和它差不多的視頻質量了,而這一切只需要你有 CDROM 哦!況且播放這種編碼,對機器的要求也不高,CPU 只要是 300MHZ 以上(不管你是PII,CELERON,PIII,AMDK6/2,AMDK6III,AMDATHALON,CYRIXx86)在配上 64 兆的內存和一個 8兆 顯存的顯卡就可以流暢的播放了。這絕對是一個了不起的技術,前途不可限量!
QuickTime 
QuickTime(MOV)是 Apple(蘋果)公司創立的一種視頻格式,在很長的一段時間裏,它都是隻在蘋果公司的 MAC 機上存在。後來才發展到支持 WINDOWS 平臺的,但平心而論,它無論是在本地播放還是作爲視頻流格式在網上傳播,都是一種優良的視頻編碼格式。到目前爲止,它共有 4 個版本,其中以 4.0 版本的壓縮率最好!
REAL VIDEO
REAL VIDEO (RA、RAM)格式由一開始就是定位就是在視頻流應用方面的,也可以說是視頻流技術的始創者。它可以在用 56K MODEM 撥號上網的條件實現不間斷的視頻播放,當然,其圖象質量和 MPEG2、DIVX 等比是不敢恭維的啦。畢竟要實現在網上傳輸不間斷的視頻是需要很大的頻寬的,這方面 ASF 的它的有力競爭者!
普通的rm格式是real8.0格式,採用的是固定碼率編碼。多見於VCD-rm,呈流行了一段時間。但由於VCD片源的先天不足,不夠清晰,所以壓出來的rm也不會清晰。特別是標準在線的225kbps碼率,清晰度簡直慘不忍睹。
RMVB比RM多了一個VB,VB指的就是variable bit,動態碼率的意思!就是real公司的新的編碼格式9.0格式。rmvb(real9.0)和rm(real8.0)在音頻的編碼上都仍舊是採用8.0格式,我們壓片時至少採用32kbps sterero music,通常時44K,MTV類的有用到96K,再高就沒必要壓縮了!


MPEG基礎知識

前序:
因爲本人工作的原因,MP3這塊做了1年多,算是比較熟悉。而相對MP3來講,MP4這塊情況相對複雜些,其一,標準不象MP3這麼分明,其二由於加入視頻這塊,比較複雜,所以,剛開始連自己都被MP4搞的頭昏腦漲,因此,我整理個專題,其中有原創也有轉載,基於我之前給一些朋友的公司做過MP4的培訓,把這些材料整理成文,希望對廣大入門級的MP4fans有所幫助!呵呵。閒話少說,開始我們的入門知識。我想從以下幾個方面講起。
(一)MPEG基礎知識
(二)MPEG-4不同壓縮編碼格式
(三)常見視頻格式解析
(四)什麼是MP4?常見品牌的命名解釋,MP4硬件架構
(五)主流MP4產品解決方案
(六)MP4屏幕類型

(一)MPEG基礎知識
MPEG的全稱是“MotionPictureExpertGroup”(移動影像專家組),組建於1988年,目的是爲傳送音頻和視頻制定標準。
MPEG-1:
廣泛的應用在VCD的製作和一些視頻片段下載的網絡應用上面,可以說99%的VCD都是用MPEG1格式壓縮的。我們目前習慣的MP3,並不是MPEG-3,而是MPEG1layer3,屬於MPEG1中的音頻部分。MPEG1的像質等同於VHS,存儲媒體爲CD-ROM,圖像尺寸320×240,音質等同於CD,比特率爲1.5Mbps。
該標準分三個部分:
  1.系統:控制將視頻、音頻比特流合爲統一的比特流。
  2.視頻:基於H.261和JPEG。
  3.音頻:基於MUSICAM技術。
MPEG-2:
應用在DVD的製作(壓縮)方面,同時在一些HDTV(高清晰電視廣播)和一些高要求視頻編輯、處理上面也有相當的應用面。
目標:
---------------------------------------------------------------
Level   size  Pixels/secbit-rat  Application 
---------------------------------------------------------------
Low    352x240  3M  4  consumertapeequiv.
Main    720x480  10M  15  studioTV 
High1440 1440x1152 47M  60  consumerHDTV 
High   1920x1080 63M  80  filmproduction 
---------------------------------------------------------------
•與MPEG-1的區別:
 1.除了對幀(frame)進行搜索,還對場(field)進行搜索。
 2.MB色度格式還可爲4:2:2、4:4:4。
 3.幀尺寸最大可爲16383×16383
 4.可分級(Scalable):時域(Temporal)等等……
 5.非線性MB量化因子。
 6.Abunchofminorfixes
MPEG-3:
原本針對於HDTV(1920×1080),後來被MPEG-2代替。
MPEG-4:
針對多媒體應用的圖像編碼標準。
是一種新的壓縮算法,使用這種算法的ASF格式可以把一部120分鐘長的電影(未視頻文件)壓縮到300M左右的視頻流,可供在網上觀看。其它的DIVX格式也可以壓縮到600M左右,但其圖象質量比ASF要好很多。
MPEG-7:
基於內容表示的標準,應用於多媒體信息的搜索,過濾,組織和處理。
—————————————————————————————————————————————————
由以上學術文章可以表達出以下幾點核心:
第一:MPEG-1就是家裏的VCD,MPEG-2就是家裏的了DVD,MPEG-3被淘汰,MPEG-4文件相對體積非常小,常見的700M/2小時,但是圖象質量基本接近DVD。
第二:之所以叫MP4,有一大部分人定義爲:能播放MPEG-4編碼標準的機器就叫MP4。。所以,根據這個標準,就知道市面上到底哪些是在掛羊頭,賣狗肉。
第三:所謂MP3,就不是大家眼睛中的MPEG-3,以後聽到有人說MP3就是MPEG-3的朋友要指正他哦。正確的叫法爲:MPEG1-layer3。

(二)MPEG-4 不同壓縮編碼格式
MP4播放器所支持的編碼格式可以說是非常混亂,除了PMC,由於硬件平臺的沒有統一的標準,軟件系統也是由廠商自行設計,這是造成MP4播放器的解碼兼容性和解碼穩定性參差不齊的根本原因;另外,由MPEG-4編碼體系洐生出來的格式很多,除PMC之外的MP4,解碼兼容性和硬件有關,這就大大增加了解碼的難度,視頻格式本來就多例如AVI,ASF,MPG,WMV,再加上編碼算法也多:MPEG-1,MPEG-2,MPEG-4,而大多MP4播放器所支持的MPEG-4編碼,又有多種衍生的編碼算法:DivX、XviD、H.263、 MS MPEG-4 3688 、 Microsoft Video1 、Microsoft RLE......
  流媒體格式當中,微軟所開發的ASF和WMV都是採用MPEG-4編碼的,部分MP4支持ASF或WMV這兩種流媒體格式。mpg格式既可以是MPEG-1和MPEG-2編碼又可以是MPEG-4編碼。

MPEG4編解碼器-DivX和Xvid的歷史與未來

http://xpatrick.spaces.live.com/
簡述:DivX和Xvid的歷史與未來,基於MPEG-4的兩種影音壓縮技術
簡述:DivX和Xvid的歷史與未來,基於MPEG-4的兩種影音壓縮技術

如今的電影是越來越好看,拍攝、製作的特技效果越來越精彩,人們期待的程度越來越高,盜版也越來越多;同時電影製作公司的防盜版技術做的越來越高明。但有句老話叫:"道高一尺,魔高一丈",無論你的電影多精彩、防盜技術多高明,總是有人偏偏能夠把你"盜"出來,而且還"盜亦有盜",在保持"原版原味"的條件下,佔用的空間變得越來越小,操作越來越靈活、簡單,越來越方便傳播。而且這種技術隨着版本不斷更新,畫質越來越貼近原版、壓縮速度越來越快、壓縮/播放進程對計算機的需求越來越低。這就是DivX時代的新生力量――XviD。


  黑格爾說過"存在即合理"

  隨着時代的進步,社會的發展,在計算機視頻技術方面更是突飛猛進。如今視頻的業界標準已經到了DVD時代。主流的DVD光驅的價格已經降到400元人民幣以內。DVD播放機的價格最便宜的已經降到了700元。但是這些都是近期發生的事情,目前仍有一大羣only CD-ROM羣體,他們不願意再投資去買DVD光驅,有的甚至由於機器無法再擴充而不能購買DVD光驅。這便促使另一個的解決方案的萌發。

  除此之外,互聯網寬帶的普及,Adsl寬帶入戶,P2P軟件的泛濫,使得650MB的大文件輕鬆的實現異地傳輸。還有正版DVD大片的價格居高不下,也是正版DVD普及化的一大障礙。

  基於以上因素的存在,有一種新的視頻壓縮技術出現,那就是DivX,即"壓縮電影"。壓縮電影的技術有很多種,但是DivX最爲普及,它廣泛流傳於互聯網與盜版盤。

  隨着時間的推移DivX再推出剛剛推出不久,就不斷推陳出新,從DivX3.11到DivX4 ,目前最新版本爲DivX5.02。本來版本越高,技術也就越高、播放的質量應該更好、更清晰。但是事實告訴我們隨着版本的提升,壓縮後的播放效果提升不明顯,壓縮所用的時間越來越長,壓縮後的體積沒有太大的進步,甚至有的使用DivX5.02壓縮以後會出現跳幀的問題。這到底是爲什麼呢?難道視頻壓縮技術已經達到頂峯不能夠再穿越了麼?

  目前又出現一種新的壓縮技術名爲XviD,在視頻業界初見端倪,就目前來看它的壓縮時間就是一大賣點,它可以在保持DivX5的畫質的基礎上,大大提高壓縮時間。

  光從名字上看就可以看出Xvid與Divx,他們之間肯定有着千絲萬縷的聯繫,大家一定想知道。下面就爲大家談談關於XviD的故事。

  Long long ago…

  故事的經過是這樣的。

  早在1998年微軟開發了第一個(也是唯一的)在PC上使用的MPEG-4(注)編碼器,它包括MS MPEG4V1、MS MPEG4V2、MS MPEG4V3的系列編碼內核。其中的V1和V2用來製作AVI文件,一直到現在它都是作爲Windows的默認組件。不過V1和V2的編碼質量不是很好,一直到MS MPEG4V3纔開始有好轉,畫質有了顯著的進步。但是不知微軟出何居心,卻將這個MS MPEG4V3 的視頻編碼內核封閉在僅僅應用於Windows Media流媒體技術上,也就是說,我們經常看到的ASF流媒體文件中。ASF文件雖然有一些優勢,但是由於過分的封閉,不能被編輯,未得到廣泛的應用。這便惹怒了不怕天不怕地的視頻黑客和置於鑽研視頻編碼的高手。後來,這些小組不僅破解了微軟的視頻編碼,而且經過他們的修改,一種新的視頻編碼誕生了。那就是廣爲流傳的Mpeg4編碼器――DivX3.11。

  隨後一發不可收拾,DivX被傳得紅得發紫,很快就成了業界的標準。但是問題同樣很快的出現了,DivX的基礎技術是非法盜用微軟的,只能在地下里流傳,卻上不了檯面,正所謂"名不正,言不順",無法進行廣泛的發展,即產品化,更無法生產硬件播放機。


  "生產力要改變生產關係"

  在這種情況的迫使下,一些視頻編碼的高級程序員(包括原DivX 的開發者)組建了一家公司,名爲DivXNetworks Inc。這家公司發起一個完全開放源碼的項目,名爲"ProjectMayo",目標是開發一套全新的、開放源碼的MPEG4編碼軟件。由於它完全符合ISO MPEG4標準,又是完全開放源代碼(就象linux操作系統),OpenDivX CODEC吸引了很多軟件、視頻高手參與。人力、物力大大投入,OpenDivX編碼器和解碼器原型很快便公佈於衆,之後又開發出具有更高性能的編碼器Encore 2等等。這DivX的輝煌時期。

  雖然主要編碼工作是DXN的人在做,但許多的技術難關的突破完全得力於來自開放源碼社會的幫助。

  DivX的優勢被人們所接受,高品質的DVD電影的容量一般爲5GB,但經過DivX編碼後的大小隻有650MB,僅僅爲原DVD容量的八分之一,圖像品質卻與DVD相當。它可以通過互聯網相互傳輸,還可以報存在一張CD光盤(650MB)上。


  DXN的野心:

  DivXNetworks一直希望DivX能成爲好萊塢巨頭們選擇的行業標準,並可以通過互聯網進行傳輸的視頻文件,就像唱片發行公司不得不接受MP3格式,並使用它在網上傳輸音樂文件一樣。DXN希望並計劃在網上出售視頻內容的公司達成技術轉讓的協議。但是,到目前爲止,它尚未和任何一家主要的、甚至具有影響力的電影製片公司達成這類協議。

  很可惜的是想DivX這麼好的電影只能在電腦上播放,目前還沒有一款播放機能夠播放這樣的光盤。日前,DXN已經來到了中國,這家公司的負責人表示,目前有許多美國人都希望能買到採用這一技術的DVD播放設備,但全球還沒有人能生產,所以他希望能與中國的DVD製造商攜手,在年內拿出產品,並且首先在美國推出。


  "天底下真的好人多麼?那麼小人算好人麼?"

  就在DivX順利發展時期,DivX的技術逐漸成熟,商機無限的時候,一臺好戲上演了。由於DivX的技術不是依據GPL協議(通用公共許可證,一種開放源碼項目中常用的保障自由使用和修改的軟件或源碼的協議),而是LGPL協議(注)。這是DXN公司爲自己留的後門。

  2001年7月就在Encore2基本成型的時候,DXN公司突然封閉了DivX的原代碼,並在此基礎上發佈了自有產品DivX4。DivX 4的基礎就是開放源代碼OpenDivX中的Encore 2,DXN利用了DivX的招牌。DNX公司這麼做,可以說是初其不備的擺了所有人一刀。開放源碼社會就這樣被狠狠地涮了一回,他們是那麼的無辜。

  DXN公司趁熱打鐵,很快推出了DivX5,但是DivX5沒有比DivX4強到哪裏去,甚至有bug,更可氣的是這一版本還要收費。可憐阿,有那麼多無償爲DivX技術付出的智慧與勞動的人,可悲阿,他們爲一值都在無償的爲DNX公司賺錢。這種壟斷和一直處於壟斷地位的微軟來說,DXN要更恨、更毒。

人世間還是好人多!正義當頭!

  首先是全球整個0dayz組織(注)永遠的拒絕了DXN公司的DivX4/5。

  被人"涮"了一把的開源社團決定另起門戶,逐漸重新聚攏開發力量,在OpenDivX版本的基礎上,再次開發出一種新的MPEG-4編碼、解碼軟件。這就是:XviD。從技術上來說XviD已經基本上與DivX5接近,或者還有所超越;

  春天來了:

  近一年來XviD繼承並發展了曾經的OpenDIVX Encore 2,並且使其的性能、效率的到了極大的提升,被認爲是目前最快的MPEG4編碼。這是因爲XviD重新改寫了所有原代碼,煥然一新。除此之外,Xvid還吸收了前車之鑑,依照GPL發佈。(不再是以前DivX的LGPL,也就是說:誰要是想用它做成產品而不開放源碼是非法的)而且在2002年,也就是今年,TDX2002(全球最著名的地下電影發行組織,每年在網上放出數千部最新而且高品質影片RIP)已經接納XviD爲官方標準。這樣TDX2002就有了兩個正式標準:DivX 3.11與XviD。而DivX 4、5像其它封閉的商業軟件一樣,被永遠拒絕。

  報應來了!

  對開源軟件下毒手的人遠不止DXN一家,目前因爲一家商業軟件公司盜用XviD源代碼,而被迫停止開發。具體的情況請參閱:http://www.xvid.org

  DivX 4/5  XviD  
出品公司 DivXNetworks Inc 開放源代碼(GPL授權) 
推出時間 1998年 2002年2月 
創始人 羅達(Rota)及電腦黑客基爾(Gej) 被DXN"涮"的人 
TDX2002認證 Yes Yes 
oDay認證 No Yes 
最新版本 5.02 1.3+ 
費用 收費 免費 
壓縮時間 長 稍短 
圖像質量 高、接近DVD 高、接近DVD 
壓縮容量 較小 較小 
編碼容量 3.4MB 359K 
優化設置 一般 強大的可調節性,使用這可設置很多選項,分別針對不同電影進行不同方式的壓縮。

  XviD使用技巧:

  關於XviD壓縮設置的文章很多,XviD可以調節的選項很細,由於篇幅限制,不再本文的討論之內。在這裏,我推薦大家使用"2-Pass"編碼, 因爲它能給我們更精確的最終文件大小,並且生成最佳質量的編碼 (在文件大小相同的情況下)。


  只安裝DivX5的編解碼器不能播放由Xvid壓縮的電影。但是隻安裝XviD編碼,可以順利播放DivX5壓縮的電影。但是在播放DivX5電影的時候,速度不能讓人滿意。加上ffdshow(注)之後效果明顯改善。看來XviD在播放divX5的還不是很完善。

  雖然XviD到目前來講與DivX5對戰,仍有些身單力薄,優勢不是很明顯。但是筆者很看好XviD。首先,它是絕對開放源代碼,這使得有更多的人投入到XviD的研發之中。還有,它完全重寫DivX的原代碼,讓新的XivD去粗取精、煥然一新;目前XviD的開發人員有很多都是當初DivX的研發人員,對DivX的錯誤瞭解得很清楚,重寫之後,XivD的地層優勢可見一斑。另外,DivX4/5雖然版本不斷更新,但是功能提升並不高,優勢不明顯。XviD是新生力量,而且充滿了復仇的力量。祝XviD一路走好。

  XviD版本的歷史:

  1.0  2002年2月17日 第一版 ,首次發佈
  1.0  2002年2月28日 大量的修正和更準確地解釋
  1.1  2002年3月2日 分析澄清了很多概念
  1.2  2002年3月4日 加入量化矩陣(quantization matrix), 移去量(removed quant). 柔和(smoothing) 技術
  1.3  2002年3月8日 關於 Nic's XviD Directshow Filter 的詳釋
  1.3+ 2002年7月23日 按照Nic's XVID Codec校正補充部分內容(目前最新版本)

  關於DivX起源的小知識:

  這種名爲DivX 的技術,由一個27歲的法籍影音發燒友羅達(Rota)及電腦黑客基爾(Gej)創造出來得。

  原來DivX所採的技術並非這兩位仁兄發明的,他們只不過是個盜版天才。隨着Windows的大行其道,微軟開發了MPEG-4技術,能夠將視頻影像文件容量壓縮到很小。羅達與基爾將程式重寫一遍,但將其改名爲DivX,且放在網上隨意任人下載。

  微軟聲稱將對所有推動DivX發展的人、企業作出追究。可是羅達正全面申請將他們的DivX合法化。由於DivX雖然是從Windows的發明出來的,但卻沒有用過任何微軟的技術。而且,他更與美國一些技術人士及財經人員開會,和組新公司 ProjectMayo.com全力推廣DivX。

  其實,DivX是視頻DVD的另一種保存方式,要靠DeCSS程序(注)才能做到。因爲DVD本身有防複製的標記,讓DVD不能隨便複製到電腦裏,但DeCSS能將它解碼,令其可以複製,壓縮成DivX電影。針對這一做法,各大電影商立即採取行動,防止DeCSS外流及散播,但爲時已晚,DeCSS在Yahoo!、Google上都能找到。 

  名詞解釋:

  TDX2002組織:全球最著名的地下電影發行組織,每年在網上放出數千部最新而且高品質影片RIP。

  0day組織:全球著名的破解組織。其意思爲在不到一天的時間裏破解軟件(自然包括遊戲,軟件,現在還涉及到其他東西),0Day只是一個統稱(和WareZ的意思一樣)。成爲他們旗下的會員就可以獲得他們提供給你的帳號,當然由於要求嚴格,所以一般是很難進入的!!(這裏我只提醒一下,多留意NFO文件裏的信息).

  DeCSS程序:喬•約翰森編寫的小程序,僅有57K,不僅震撼了好萊塢,還引發了無數的法律糾紛。他創造出來的“小魔怪”,如今已經成了好萊塢製片商們最恨之入骨的冤家對頭。DeCSS程序能夠將正版加密的DVD影片複製到計算機硬盤上。它還可以將這些影片上傳到互聯網上。

  MPEG-4技術:是一種嶄新的低碼率、高壓縮比的視頻編碼標準,傳輸速率爲4.8~64kbit/s,使用時佔用的存儲空間比較小。目前的DivX(最新的XviD)電影都採用的此技術,現在被廣泛採用。

  GPL協議:通用公共許可證,一種開放源碼項目中常用的保障自由使用和修改的軟件或源碼的協議。

  LGPL協議:次級GPL(Lesser GPL),與GPL一樣,是一種公共許可證。與GPL的最大不同是它允許私有。

  Ffdshow:一個支持 Xvid、MPEG4-V3 MPEG4-V2 以及 DivX 所有版本所製作的視頻文件的播放軟件,佔CPU 資源比較少。


《MPEG-4壓縮標準之三國演義》
 運動圖像專家組,英文簡稱MPEG(Moving Picture Experts Group)隸屬於ISO/IEC的一個專家工作組,主要負責爲數字音視頻編碼算法開發和制定標準。該組織始建於1988年,並於1992年制定出MPEG0-1標準,它是將視頻數據壓縮成1-2Mb/s的標準數據流,工業產品VCD機和MP3播放器都是以該標準爲基礎洐生出來的。隨後的1994年,制定出MPEG-2標準,它是爲了獲得更高的分辨率(720*486),提供廣播級視頻和CD品質的音頻而產生的高質量音視頻編碼標準,傳輸速率在3-10Mbit/s之間,它也是數字電視、DVB和DVD所遵循的壓縮標準。
  隨着研究工作的深入發展,ISO又公佈了“超低比特率活動圖像和語音壓縮標準”,排序MPEG-4,1998年10月批准第一版,1994年4月又公佈了第二版及其校驗模型(VM),MPEG-4正式編號是ISO/IEC國際標準14496,它是一種新型的多媒體標準,它與前標準一個重要區別就在於它是一個基於對象的視編碼壓縮標準,它所定義的碼率控制的目標就是獲得在給定碼率下的最優質量,它爲互聯網上傳輸高質量的多媒體視頻提供了很好的技術平臺。
  1998年微軟開發了第一個在PC上使用的MPEG-4編碼器,它包括MS MPEG4V1、MS MPEG4V2、MS MPEG4V3的系列編碼內碼,其中V1和V2用來製作AVI文件,一直到現在它都是作爲Windows的默認組件,不過V1和V2的編碼質量不是很好,一直到MS MPEG4V3纔開始有好轉,畫質有了顯著的進步,但是不知微軟出何居心,卻將這個MS MPEGV3的視頻編碼內核封閉,僅僅使其應用於Windows Media流媒體技術上,也就是我們熟悉的ASF流媒體文件中,ASF文件雖然有一些優勢,但是由於過分的封閉不能被編輯,末得到廣泛的應用,這便惹怒了那些個不怕天不怕地的視頻黑客和致力於鑽研視頻編碼的高手,後來,這些小組不僅破解了微軟的視頻編碼,而且經過他們的修改,一種新的視頻編碼誕生了:那就是廣爲流傳的MPEG編碼器-DivX3.11。
  DivX採用了MS的MPEGV3,改良後並加入自己功能稱之爲DivX3.11,也是目前互聯網上普通採用的MPEG-4編碼器之一。很快,DivX被傳得紅得發紫,幾乎成了業界的標準,但是總是同樣很快的出現了,DivX的基礎技術是非法盜用微軟的,微軟聲稱將對所有推動DivX發展的人、企業進行追究,可是DivX技術的創造者之一羅達(Rota)正全面申請將DivX合法化,這是基於DivX雖然是從Window的發明出來的,但卻沒有用過任何微軟的技術,更組建新公司DivXNetworks全力推廣DivX,看來DivX(俗稱壓縮電影)蓬勃發展的大潮是勢不可擋了。
  然而——看來任何吸引眼球的故事在關鍵時刻都會發生轉折,DivX的發展竟也不能脫離這一俗套,就在DivX順利發展時期,DivX的技術逐漸成熟,商機無限的時候,一臺好戲上演了,DivXNetworks成立初衷就是擺脫微軟的技術封閉,因而發起一個完全開放源碼的項目,名爲“Projet Mayo”,目標是開發一套全新的、開放源碼的MPEG4編碼軟件,由於它完全符合ISO MPEG標準,又是完全開放源代碼,OpenDivXCODEC吸引了很多軟件,視頻高手參與,很快便開發出具有更高性能的編碼器Encore2等等,就在DivX最輝煌的時期,DXN公司突然封閉了DivX的源代碼,並在Encore2的基礎上發佈了自有產品DivX4,原來DXN早就給自己留了後門,DivX採取的是LGPL協議,而不是GPL協議,雖說它們都是公共許可證協議,保障自由使用和修改軟件或源碼的權利,但LGPL允許私有,DXN就是利用這一協議初其不備的擺了所有人一刀。
  接着——就象好萊塢復仇電影那樣,所有被DXN公司狠狠涮了一回的軟件、視頻團體另起門戶,逐漸重新聚攏開發力量,高舉復仇大旗,在OpenDivX版本基礎上,再次開發出一種新的MPEG-4編碼--XviD,名字的順序和Divx剛好相反,僅僅從名字就可以看出Xvid充滿了復仇的力量。
  從技術上來說,Xvid已經基本上與DXN公司的最新版本DivX5接近,或者還有所超越,它可以在保持DivX5畫質基礎上,大大提高壓縮時間,被認爲是目前最快的MPEG4編碼。除此之外,Xvid還吸收了前車之鑑,依照GPL發佈,也就是說,誰要是想做成產品而不開放源碼是非法的。
  跌宕起伏的故事講完了,從技術和應用上來說,MPEG是非常好的壓縮技術,甚至有人說它是21世紀數字視頻壓縮的標準,由於從MPEG-4洐生出來的格式很多,並且各大電影廠商也對MPEG-4技術存有戒心,雖然在互聯網上可以找到基於MPEG-4標準的高質量的電影節目,但實際支持MPEG-4技術的硬件產品不是很多,Sigma公司的MPEG4解碼卡NS4000支持ISO MPEG4和DivX,但卻不兼容微軟公司的WMV,直到Snazzi推出Snazzi*DV AVIO,全面兼容MPEG-4的WMV、DivX和Xvid格式,是一款性價比極高的MPEG-4實時編解碼卡。今天,我們終於有幸用硬件實時製作高畫質的MPEG-4格式的電影了,隨着科技的飛速發展,相信今後會有更多MPEG-4硬件產品可供我們選用。MPEG-4的春天就要來了。

================================================================================
好,艱澀的文字看完,動人的歷史故事看完,有朋友會說:原來MPEG-4這麼複雜,充滿了傳奇的色彩。呵呵,我看完文章也有這樣感受,結合實際,總結如下幾點:
第一:微軟的ASF格式,WMV,採用DIVX,XVID編碼的AVI格式,全部都是MPEG-4編碼。因此,能播放以上格式的,可以統稱爲MPEG-4播放器,簡稱MP4

第二:MPEG-4並沒有確定必須用什麼擴展名,它只是一種編碼方法而已,使用avi作爲擴展名,是一種習慣性的沿用,這和標準的AVI是有所區別的。現在主流的MP4一般都支持DivX或Xvid編碼的avi格式,但是其它很多編碼的avi就不一定支持了。最後一提,格式兼容性還跟視頻格式的分辨率,楨率和比特率有關,一個支持DivX的MP4播放器,卻播放不了DivX的avi,很可能跟前面的三個因素有關。

mpeg_4編解碼技術意義

   現在,我們又迎來了一次媒體革命,它就是mpeg_4,它以其出色的媒體性能,圖形質量接近dvd,聲音品質接近cd,同時又有更高的壓縮比而迅速火爆起來,在多媒體領域掀起狂瀾。那麼,到底什麼是mpeg呢?

       我們知道,多媒體信息主要包括圖像、聲音和文本三大類,其中視頻、音頻等信號的信息量是非常大的。對於音頻處理來說,傳輸數字圖像所需的帶寬遠高於前者,例如,ntsc圖像以大約640*480的分辨率,24bits像素,每秒30幀的質量傳輸時,其數據率達28mb字節/秒或221mb/秒。而且以這個速率保存的15秒的未壓縮視頻圖像將佔用420mb字節的內存空間,顯然這樣的要求對臺式計算機來說是難以接受的,所以,視頻圖像的壓縮編碼方法mpeg就應運而生了。

      mpeg本是動態圖像專家組(moving pictures experts group)的英文縮寫,這個專家組始建於1988年,專門負責爲cd建立視頻和音頻標準,其成員均爲視頻、音頻及系統領域的技術專家。由於iso/iec1172壓縮編碼標準是由此小組提出並制定mpeg由此揚名世界,對於今天我們所泛指的mpeg_x版本,是指一組由itu(international telecommunications union)和iso(international standards organization)制定發麪的視頻、音頻、數據的壓縮標準。mpeg_4就是mpeg的第4個版本,mpeg的締造者們原先打算開發4個版本;mpeg_1~mpeg_4,以適用於不同帶寬和數字字影像質量的要求。後由於mpeg—3被放棄,所以現存只有三個版本的mpeg:mpeg-1,mpeg-2,mpeg-4.

     總體來說,mpeg在三方面優於其他壓縮/解壓方案。首先,由於在一開始它就是做爲一個國際化的標準來研究制定,所以,mpeg具有很好的兼容性。其次,mpeg能夠比其他算法提供更好的壓縮比,最高可達200:1,更重要的是,mpeg在提供高壓縮比的同時,對數據的損失很小,mpeg在發展過程中經歷了以下過程:

     mpeg-1 制定於1992年,爲工業級標準而設計,可適用於不同帶寬的設備,發cd-rom、video-cd、cd-i.它可針對sif標準分辨率(對於 ntsc製爲352*240;對於pal製爲352*288)的圖像進行壓縮,傳輸速率爲1.5mbits/s,最高可達4-5mbits/s,每秒播放30幀,具有cd(指激光唱盤)音質,質量級別基本與vhs相當。
mpeg-2 制定於1994年,設計目標是高級工業標準的圖像質量以及更高的傳輸率,mpeg-2所能提供的傳輸率在3-15mbits/sec間,其在ntsc制式下的分辨率可達720*486,mpeg-2能夠提供廣播級的視像和cd級的音質。mpeg-2的音頻編碼可提供左右中及兩個環繞聲道,以及一個加重低音聲道,和多達7個伴音聲道。除了做爲dvd的指定標準外,mpeg-2還可用於廣播,有線電視網,電纜網以及衛星直播提供廣播級的數字視頻。
     mpeg-4就是在mpeg-1、mpeg-2進入廣泛的實際應用之時,mpeg小組又於1998年發佈了mpeg-4標準的草稿,該標準對壓縮算法進行了改進:mpeg-1和mpeg-2的壓縮率大概在20到30倍之間,而DVD一片4.7gb的資料量。可以存放超過兩小時的影片。mpeg-1和mpeg-2的壓縮率用在儲存媒體上是足夠了,但是運用在網絡傳輸上還是很低,尤其是無線通訊方面。於是mpeg-4在訂定標準時,爲了達到更好的壓縮效果,採用了許多新的技術與觀念。mpeg-4裏是採用了物件的觀念。壓縮之前先將影片中各個主要物件區分開來。例如電視新聞播報的場景中,主播是一個物件,播報臺、背後的佈景、主播旁邊的3D玩偶也分別是一個物件。主播的聲音也是一個物件,在影片進行中,主播會有輕微的移動。播報臺是固定不動的。而佈景則有時候會播放新聞影片。將各個物件分隔開來有什麼好處呢?那就是可以針對不同的物件特性採取不同的壓縮編碼技巧,以得到最好的壓縮效果。例如播報臺只要傳送一次資料,以後不再傳送,以節省資料量。3D玩偶則用3D動畫適用的演算法。主播和新聞影片採用mpeg-2的格式。聲音採用MP3的格式。將這些不同的資料整合後結合起來一起傳送。解碼器收到資料後,先將各個不同格式的資料分開。依照自自的格式解碼。再根據時間和空間的關係,將各個物件加以組合。就可以得到原來的影片了。爲了達到以上的壓縮觀念,MPEG—4引進了許多新的壓縮技術來應用於各種不同的物件。對於聲音部分,可以分成自音、語音和合成音。針對不同發聲原理採用不同演算算法。可以根據對音質的要求,而得到2KBITS/64KBITS/S之間的資料量。在影像方面,則可細分爲自然物體、2D影像、3D影像、人臉、背景等不同特性物件。根據不同影像特性可以有5KBITS/S到10MBITS/S的資料量,mpeg-4的壓縮率可以超過100倍,而仍然保有極佳的音質和畫質。可以用最少的數據獲得最佳的圖像質量,因此滿足了低碼率應用需求;另外,mpeg-4還把提高多媒體系統的交互性和靈活性作爲一項重要的目標,因此它更適合於交互式av服務以及遠程監控。爲了滿足各種應用的需求,mpeg-4標準實際上相當宏大,它具有廣泛的適應性和可擴展性。

     就其應用前景而言,mpeg-4未來將在多個應用領域大顯身手,如internet/interanet上的多媒體流服務、視頻點播、可視遊戲、低碼率的移動多媒體通信(視頻手機等)、交互式式多媒體應用、實時多孀體監控、數字電視與演播電視、虛擬會議等。

     mpeg-4可達到兩個目標:低比特率下的多媒體通信和多工業的多媒體通信的綜合。

 

關於 XviD 保留的細節比較多的問題。

MPEG 壓縮的時候,以每個 16x16 像素方塊大小的 MacroBlock 爲單位作 ME,然後量化的時候會切成 4 個 8x8 的 Block(微方塊),做一種稱爲 DCT 的轉換。經過 DCT 轉換以後,8x8 方塊裏的 64 個像素點的 YUV 值,就變成代表空間頻率的係數。人眼對高頻比較不敏感,相對的低頻的係數就比較重要,所以我們利用量化把高頻的係數削掉多一點,保留比較重要的低頻係數,在有限的流量的情況下,可以增進肉眼看起來的品質。

XviD 可以使用兩種不同的量化方法(Quantization Type),一種是 H.263,另一種是 MPEG。H.263 的量化方法,顧名思義,就是使用 H.263 這個壓縮規格所使用的量化方法,量化的時候,8x8 的像素方塊內的所有 DCT 係數,全部除以同一個數字。例如全部都除以 32,如果有一個 DCT 係數爲 15,小於 32,經過相除之後,會被量化爲 0,如此便可以省下很多記錄的 bits。當然,除的數字越大,量化的誤差也就越大,品質也就越差,但是壓縮率會越高,壓出來檔案會越小。

我們會利用另一個參數來調整量化的誤差,控制最後量化的品質和檔案的大小,這個參數叫做 Quantizer。量化的係數會再乘上這個 Quantizer 的倍數,例如原本要除的量化係數是 32,Quantizer 是 2,對應的放大倍數也是 2,最後真正要除的量化係數就變成 32*2 = 64。所以 Quantizer 越大,要除的量化係數就越大,量化誤差就越大,品質就越差,但是檔案也越小。H.263 的量化方法還規定,相鄰的兩個 MacroBlock 的 Quantizer 不能相差超過 2。

而另一種 MPEG 的量化方法,高低頻係數可以除以不同的量化係數,可以視情況將高頻削多一點。這個 8x8 的量化係數,也就是 Quantize Matrix(量化矩陣)。XviD 還可以讓你自訂、編輯這個矩陣的量化係數,你可以依照影片內容、使用碼率,自訂最適當的量化矩陣。(量化方法要選 MPEG-Custom,同時更改 Edit Quantizer Matrix... 裏面的預設量化矩陣,目前這個功能無法和 B-Frame 同時共享)

MPEG 的量化方法對相鄰的 MB 使用的 Quantizer 差距並沒有限制。根據經驗,使用均勻量化矩陣(uniform quantization)的 H.263 量化法,壓出來的畫面會較模糊。MPEG 量化方法的畫面會比較銳利。(不過銳利線條的周圍、物體的邊緣,會產生一些噪聲)MS MPEG-4,也就是 DivX 3.11,使用的是 MPEG 的量化方式,所以一直以來,大家的評價都是 MS MPEG-4的畫面比較銳利,保留比較多的細節。

DivX 4, DivX 5 都是使用 H.263 的量化方法,尤其是 DivX 4,畫面非常模糊。
雖然表面上看起來壓縮瑕疵較少,但是細節都被削光光了。
(可以參考上面 net1999 兄提供的圖片)
(DivX 5 其實可以藉由修改 registry 的方法,改成以 MPEG 的量化方式壓縮,但是顯然有 bug,壓出來的東西慘不忍睹)

XviD 則可以讓使用者自行選擇要固定使用哪種量化方法,或者是視情況切換量化的方法。(量化方法選擇 Modulated,Quantizer 小於或等於 3 時會使用 MPEG 量化,大於 3 時使用 H.263 量化。New Modulated HQ 則反過來)

GMC,也就是 S(GMC)-VOP,只有在整個畫面上,有大部分的區塊都往同一個方向移動時,才能派上用場。譬如說鏡頭做 pan(由左往右 或 由右往左 平移)的時候,全體由上往下,或由下往上移動,以及 zoom in/zoom out(物體放大縮小)的時候,纔會使用 S(GMC)-VOP。(其實還有其他功能,例如變形、旋轉的時候,不過目前 DivX 和 XviD 都沒有完整的作出這些功能)

使用 GMC 的時候,那個 Frame 會使用 MPEG-4 纔有的 Frame Type,叫做 S-VOP。(因爲 MPEG-4 是以物件 Object 爲單位壓縮,所以叫做 Video Object Plane,VOP,視訊物件平面。有 I-VOP/P-VOP/B-VOP 和特別的 S-VOP 這幾種 VOP)爲了要和 Stripe 做區分,我們又把它叫做 S(GMC)-VOP。
所以要比較 GMC 的使用情形,必須找兩個相同的畫面,而且是 S(GMC)-VOP(也就是有使用 GMC 的 VOP),才能看出 GMC 的使用結果。

目前 XviD 的 GMC 只有非常簡單的功能,現在使用 Global MC 不會比原來的 Local MC 有效率,對壓縮沒有助益,用了之後檔案反而會更大(壓縮效率更差,同容量下品質更差)。而且還有一些正確性的問題要修正(要符合 ISO 制訂的 MPEG-4 的標準規格,否則便是做錯,壓出來的東西將來無法爲其他標準的 MPEG-4 decoder 解碼),所以不建議使用。

XviD 的編程人員每個人都是學富五車,而且是世界上頂尖的編程高手,目前Codec中的問題他們不是不知道,而是還在思考解決的方法。譬如說目前 B-frame 一定要勾選 DX50 B-VOP compatibility,這個 Closed GOV(等於 MPEG-1/2 的 Closed GOP)的問題開發人員不是不知道,而是很困難解決。
(我們來想的話會覺得很簡單。沒錯,理論上很簡單,實作就知道有多困難 )

而且開發人員每個人都還有自己的學業、工作要忙,僅能利用一點的閒餘時間來從事這項編程工作,所以無法說改就改,立刻就解決這些問題。
不過儘管如此,XviD 仍然是目前世界上,品質最好的 MPEG-4 編碼軟件... 之一 


XviD中的精彩技術

Quarter Pel = Quarter Pixel = 1/4 Pixel = QPel:
MPEG 壓縮的時候,P-Frame 會參考前一個畫面壓縮,B-Frame 會參考前面或後面,或前後的畫面壓縮。此時只要紀錄和參考畫面之間的差異,也就是預測的誤差,還有物體移動的方向(動作向量 MV),不用重新壓縮整個畫面,所以可以節省很多 bits,達到很高的壓縮率。

其中又以 B-Frame 的壓縮效率最高,因爲 B-Frame 可以同時參考前面和後面的畫面,以前後畫面的平均值((前+後)/2)做爲參考畫面,可以大幅減少預測的誤差。(預測的誤差越小,所需花費的紀錄誤差的 bits 數就越少,檔案就越小,壓縮效率就越高)同時 MPEG-4 的 B-VOP 還有第四種預測模式,叫做 Direct Mode,直接拿後面的 P-Frame 的 MV除以二作爲動作向量,省去記錄 MV 的空間,也可以達到很高的壓縮效率。

如:
I B P

我們可以預測,B 的物體移動必然是介於 I 和 P 之間,所以 B 的 MV 大概會接近 P 的 MV 的一半。以上是大致的壓縮原理,我們回過頭來看什麼是 QPel。

前面說到 P/B Frame 會在參考畫面上尋找最接近的區塊,然後記錄和這個區塊的誤差值,以及相距的方向和位置(MV)。
MPEG 壓縮的時候是以 16x16 的方塊爲單位,稱爲 MacroBlock(MB),一個 MB 一個 MB 地搜尋最匹配、誤差最小的參考方塊在哪裏。
(也就是搜尋這個物體移動到哪裏)

搜尋會在一定的範圍內搜尋,譬如說在周圍 32x32 的範圍內搜尋,而不會無限制的擴大搜尋下去。所以當畫面上動態很大的時候,物體移動距離較遠,超出搜尋範圍,或是畫面變化的差異太大,我們就找不到誤差很小的參考方塊,此時壓縮率就會下降,需要較多的 bits 來記錄。

很明顯的,物體的移動和像素(Pixel)的精確度無關,物體不會按照像素的格子,一格一格的移動,每次都移動整數的格子點,剛好落在像素上。
所以我們以整數像素的單位做搜尋、比對,顯然無法找到最匹配、最相似、誤差最小的參考方塊。爲了克服這個問題,MPEG-2 壓縮的時候,會先將要參考的畫面做內插補值(interpolation),

補出像素和像素之間的次像素的數值,如:
A x B
x x x
C x D

像素 A 的值爲 11,像素 B 的值爲 13,則我們可以預測 A 和 B 之間的次像素 x 的值爲 12。依此類推,補出所有的 x 的數值,也就是 1/2 Pixel 的值,再以此 1/2 Pixel 精確度的畫面做爲參考畫面,於其上搜尋最近似的參考方塊。
這樣,我們就可以找到誤差更小的參考方塊,壓縮率就更高,同品質下檔案就更小,同容量下品質就更高。根據測試,使用 1/2 Pixel 精確度的 ME(動作估計),PSNR(Peak Signal to Noise Ratio,訊噪比,常見的一種客觀測試影像品質的方法)可以上升 3~5dB。
而 MPEG-4 用的 Quarter Pixel = 1/4 Pel,就是比 1/2 Pel 更精確,再補出 1/2 像素和像素之間的 1/4 Pel,以此做爲參考畫面。理論上 1/4 Pel 可以再提升 PSNR 2~3dB。
AoxoB
ooooo 
xoxox
ooooo
CoxoD

1/4 Pel

但是,如果 1/4 Pel 沒有良好的實作出來,導致用了 1/4 Pel 也沒有找到更好的參考方塊,那麼因爲 1/4 Pel 所使用的動作向量 MV 需要原本 1/2 Pel 的雙倍精度來記錄(如:1.5 --> 1.25),所以壓出來的檔案反而會變大。(同容量下品質就更差)

早期 XviD 的 QPel 就是沒有良好的實作,同時有一些錯誤,所以對於壓縮效率沒有助益,使用之後檔案反而更大。但是現在 XviD 的 QPel 已經修正完畢,完全符合 MPEG-4 的標準規範,同時也達到理論上它的壓縮助益。您可以做一個測試,以同品質壓縮(固定 Quantizer),開了 QPel 之後,檔案大約會減小 ~3%。這代表同檔案大小下,開 QPel 的品質會比沒開 QPel 的品質好。


有了以上這些 MPEG 壓縮的基礎說明,我補充一下上次提到的幾個名詞說明:
Chroma ME 這個選項
ME = Motion Estimation 動作估計,在參考畫面上搜尋最近似的方塊,找出相距的距離和方向 => 動作向量 MV = Motion Vector 的過程叫做 ME。
MC = Motion Compensation 動作補償
將目前要壓縮的方塊和找到的參考方塊相減,紀錄它們之間的誤差值,以便在解壓縮的時候能夠補上這個誤差值,這個過程叫做 MC。

MPEG 壓縮的時候將像素分爲 YUV 三個平面,一般只在 Y(亮度)的平面上做 ME,搜尋 Y 誤差最小的 MV。而 UV(色度,Chroma)的動作向量則是直接拿 Y 找到的動作向量除以二,作爲 UV 的動作向量。(當 MPEG 以 YUV 4:2:0 記錄時,UV 的分辨率只有 Y 的一半,也就是畫面大小隻有 Y 的一半。如 Y: 640x480,UV 則只有 320x240。所以動作向量直接拿 Y 除以二,可以得到近似值)這是因爲人眼對 Y 亮度比較敏感,對 C 色度比較不敏感。色度分辨率差一點,人眼也看不出來。減少 C 所佔的空間,給 Y 使用多一點空間,可以在有限的流量大小下,增進視覺看起來的品質。

然而做 ME 的時候偷懶,只精確的求 Y 的 MV,而 C 的 MV 就直接拿 Y 的 MV/2 來使用,這樣雖然可以加快壓縮的速度,但是品質也會下降。(C 沒有精確的求出誤差最小的參考方塊,需要花較多的 bits 紀錄,使得壓縮率下降)

XviD 現在加入了 Chroma ME 的這個選項,會同時搜尋 Y/C 平面上,誤差最小的 MV,速度會慢一點,但是品質會較好。尤其是壓動畫類影片,效果最明顯。


爲什麼動態越大的時候要減少連續 B-Frame 的個數?B-Frame 不是壓縮率最高,越多越好嗎?

MPEG-1 裏面,有三種 Frame 型態:
I-Frame: 不參考其它畫面,獨立壓縮,壓縮率最差,需要最多 bits,Frame size 最大。
P-Frame: 參考前一張 I 或 P Frame 壓縮,壓縮率次之。
B-Frame: 參考前後的 I 或 P Frame 壓縮,壓縮率最高。B-Frame 不能被其它 Frame 拿來當作參考畫面。

B-Frame(在 MPEG-4 裏面正確的名稱是 B-VOP)的預測模式有四種:
a. Forward 順向預測,參考前一張畫面,記錄和前一張畫面的差距。和 P-Frame 的預測方法一樣。
b. Backward 逆向預測,參考下一張畫面,記錄和下一張畫面的的差距。
c. Bi-Directionally 雙向預測,參考前面和後面兩張畫面,記錄的是和「前後兩張畫面的平均值」的差距。也叫做內插預測,壓縮率最高。
d. Direct Mode,不搜尋、紀錄動作向量,直接由下一張的 P Frame推導出動作向量。譬如說 I B P,我們可以預測 B 畫面的動作必然是介於 I 和 P 兩個畫面之間,所以我們可以直接用 P 的 MV/2 作爲B 的動作向量,這樣可以省去記錄 MV 的空間。

壓縮 B-Frame 的時候會從上面幾種預測模式中選壓出來最小的一個模式來使用。

當把最大 B Frame 的個數設得太多的時候,如果 XviD 的動態 Frame Type 決策沒有好好發揮它的功能,會造成誤判,在高動態的地方還是插入過多的 B-frame。
如:
大動態畫面
I B B B B P
P 距離參考的 I Frame 太遠,誤差太大,容量暴增。而第一個 B-frame,因爲 I 和 P 的差距很大,(I+P)/2 兩個 Frame 的平均值和 B Frame 的差異還是很大,倒不如只用 I Frame來預測。此時 B 只參考前一張 I 壓縮,等於 P-frame。中間的 B 參考 (I+P)/2 壓縮,因爲差異量大,還是無法取得很好的壓縮率。最後一個 B 只參考後面的 P 壓縮。最後這四張 B-frame 都無法取得很好的壓縮率,大小都變成和 P 差不多大,

此時如果改成
0 1 2 3 4 5
I P P P P P
反而可以得到更好的壓縮率。
(因爲 1P 參照 0I,差距小。2P 又可以參照 1P,差距也小。以此類推....)

現在 XviD 的動態分配決策已經比以前好很多,最大 B-frames 個數可以放心設到 4 沒有問題。至於 DivX 5 的 B-frame,最多連續個數只能爲 1,只能是 I B P B P B P B... 這種型態,更別提 XviD 現在使用的先進 I/P/B Frame 分配決策,DivX 5 已經完全比不上 XviD。



 3 MPEG-4視頻編碼核心思想及關鍵技術

 3.1 核心思想 
  在MPEG-4制定之前,MPEG-1、MPEG-2、H.261、H.263都是採用第一代壓縮編碼技術,着眼於圖像信號的統計特性來設計編碼器,屬於波形編碼的範疇。第一代壓縮編碼方案把視頻序列按時間先後分爲一系列幀,每一幀圖像又分成宏塊以進行運動補償和編碼,這種編碼方案存在以下缺陷:

  • 將圖像固定地分成相同大小的塊,在高壓縮比的情況下會出現嚴重的塊效應,即馬賽克效應;

  • 不能對圖像內容進行訪問、編輯和回放等操作;

  • 未充分利用人類視覺系統(HVS,Human Visual System)的特性。 

  MPEG-4則代表了基於模型/對象的第二代壓縮編碼技術,它充分利用了人眼視覺特性,抓住了圖像信息傳輸的本質,從輪廓、紋理思路出發,支持基於視覺內容的交互功能,這適應了多媒體信息的應用由播放型轉向基於內容的訪問、檢索及操作的發展趨勢。 

  AV對象(AVO,Audio Visual Object)是MPEG-4爲支持基於內容編碼而提出的重要概念。對象是指在一個場景中能夠訪問和操縱的實體,對象的劃分可根據其獨特的紋理、運動、形狀、模型和高層語義爲依據。在MPEG-4中所見的視音頻已不再是過去MPEG-1、MPEG-2中圖像幀的概念,而是一個個視聽場景(AV場景),這些不同的AV場景由不同的AV對象組成。AV對象是聽覺、視覺、或者視聽內容的表示單元,其基本單位是原始AV對象,它可以是自然的或合成的聲音、圖像。原始AV對象具有高效編碼、高效存儲與傳輸以及可交互操作的特性,它又可進一步組成複合AV對象。因此MPEG-4標準的基本內容就是對AV對象進行高效編碼、組織、存儲與傳輸。AV對象的提出,使多媒體通信具有高度交互及高效編碼的能力,AV對象編碼就是MPEG-4的核心編碼技術。
      MPEG-4不僅可提供高壓縮率,同時也可實現更好的多媒體內容互動性及全方位的存取性,它採用開放的編碼系統,可隨時加入新的編碼算法模塊,同時也可根據不同應用需求現場配置解碼器,以支持多種多媒體應用。

  MPEG-4 採用了新一代視頻編碼技術,它在視頻編碼發展史上第一次把編碼對象從圖像幀拓展到具有實際意義的任意形狀視頻對象,從而實現了從基於像素的傳統編碼向基於對象和內容的現代編碼的轉變,因而引領着新一代智能圖像編碼的發展潮流。

 3.2 關鍵技術

  MPEG-4除採用第一代視頻編碼的核心技術,如變換編碼、運動估計與運動補償、量化、熵編碼外,還提出了一些新的有創見性的關鍵技術,並在第一代視頻編碼技術基礎上進行了卓有成效的完善和改進。下面重點介紹其中的一些關鍵技術。

  1. 視頻對象提取技術

   MPEG-4實現基於內容交互的首要任務就是把視頻/圖像分割成不同對象或者把運動對象從背景中分離出來,然後針對不同對象採用相應編碼方法,以實現高效壓縮。因此視頻對象提取即視頻對象分割,是MPEG-4視頻編碼的關鍵技術,也是新一代視頻編碼的研究熱點和難點。

  視頻對象分割涉及對視頻內容的分析和理解,這與人工智能、圖像理解、模式識別和神經網絡等學科有密切聯繫。目前人工智能的發展還不夠完善,計算機還不具有觀察、識別、理解圖像的能力;同時關於計算機視覺的研究也表明要實現正確的圖像分割需要在更高層次上對視頻內容進行理解。因此,儘管MPEG-4 框架已經制定,但至今仍沒有通用的有效方法去根本解決視頻對象分割問題,視頻對象分割被認爲是一個具有挑戰性的難題,基於語義的分割則更加困難。

  目前進行視頻對象分割的一般步驟是:先對原始視頻/圖像數據進行簡化以利於分割,這可通過低通濾波、中值濾波、形態濾波來完成;然後對視頻/圖像數據進行特徵提取,可以是顏色、紋理、運動、幀差、位移幀差乃至語義等特徵;再基於某種均勻性標準來確定分割決策,根據所提取特徵將視頻數據歸類;最後是進行相關後處理,以實現濾除噪聲及準確提取邊界。

  在視頻分割中基於數學形態理論的分水嶺(watershed)算法被廣泛使用,它又稱水線算法,其基本過程是連續腐蝕二值圖像,由圖像簡化、標記提取、決策、後處理四個階段構成。分水嶺算法具有運算簡單、性能優良,能夠較好提取運動對象輪廓、準確得到運動物體邊緣的優點。但分割時需要梯度信息,對噪聲較敏感,且未利用幀間信息,通常會產生圖像過度分割。

  2. VOP視頻編碼技術

  視頻對象平面(VOP,Video Object Plane)是視頻對象(VO)在某一時刻的採樣,VOP是MPEG-4視頻編碼的核心概念。MPEG-4在編碼過程中針對不同VO採用不同的編碼策略,即對前景VO的壓縮編碼儘可能保留細節和平滑;對背景VO則採用高壓縮率的編碼策略,甚至不予傳輸而在解碼端由其他背景拼接而成。這種基於對象的視頻編碼不僅克服了第一代視頻編碼中高壓縮率編碼所產生的方塊效應,而且使用戶可與場景交互,從而既提高了壓縮比,又實現了基於內容的交互,爲視頻編碼提供了廣闊的發展空間。 
  MPEG-4支持任意形狀圖像與視頻的編解碼。對於任意形狀視頻對象。對於極低比特率實時應用,如可視電話、會議電視,MPEG-4則採用VLBV(Very Low Bit-rate Video,極低比特率視頻)核進行編碼。 

  傳統的矩形圖在MPEG-4中被看作是VO的一種特例,這正體現了傳統編碼與基於內容編碼在MPEG-4中的統一。VO概念的引入,更加符合人腦對視覺信息的處理方式,並使視頻信號的處理方式從數字化進展到智能化,從而提高了視頻信號的交互性和靈活性,使得更廣泛的視頻應用及更多的內容交互成爲可能。因此VOP視頻編碼技術被譽爲視頻信號處理技術從數字化進入智能化的初步探索。

  3. 視頻編碼可分級性技術

  隨着因特網業務的巨大增長,在速率起伏很大的IP(Internet Protocol)網絡及具有不同傳輸特性的異構網絡上進行視頻傳輸的要求和應用越來越多。在這種背景下,視頻分級編碼的重要性日益突出,其應用非常廣泛,且具有很高的理論研究及實際應用價值,因此受到人們的極大關注。

  視頻編碼的可分級性(scalability)是指碼率的可調整性,即視頻數據只壓縮一次,卻能以多個幀率、空間分辨率或視頻質量進行解碼,從而可支持多種類型用戶的各種不同應用要求。 
  MPEG-4通過視頻對象層(VOL,Video Object Layer)數據結構來實現分級編碼。MPEG-4提供了兩種基本分級工具,即時域分級(Temporal Scalability)和空域分級(Spatial Scalability),此外還支持時域和空域的混合分級。每一種分級編碼都至少有兩層VOL,低層稱爲基本層,高層稱爲增強層。基本層提供了視頻序列的基本信息,增強層提供了視頻序列更高的分辨率和細節。

  在隨後增補的視頻流應用框架中,MPEG-4提出了FGS(Fine Granularity Scalable,精細可伸縮性)視頻編碼算法以及PFGS(Progressive Fine Granularity Scalable,漸進精細可伸縮性)視頻編碼算法。


  FGS編碼實現簡單,可在編碼速率、顯示分辨率、內容、解碼複雜度等方面提供靈活的自適應和可擴展性,且具有很強的帶寬自適應能力和抗誤碼性能。但還存在編碼效率低於非可擴展編碼及接收端視頻質量非最優兩個不足。

  PFGS則是爲改善FGS編碼效率而提出的視頻編碼算法,其基本思想是在增強層圖像編碼時使用前一幀重建的某個增強層圖像爲參考進行運動補償,以使運動補償更加有效,從而提高編碼效率。

  4. 運動估計與運動補償技術 

  MPEG-4採用I-VOP、P-VOP、B-VOP三種幀格式來表徵不同的運動補償類型。它採用了H.263中的半像素搜索(half pixel searching)技術和重疊運動補償(overlapped motion compensation)技術,同時又引入重複填充(repetitive padding)技術和修改的塊(多邊形)匹配(modified block (polygon)matching)技術以支持任意形狀的VOP區域。 

  此外,爲提高運動估計算法精度,MPEG-4採用了MVFAST(Motion Vector Field Adaptive Search Technique)和改進的PMVFAST(Predictive MVFAST)方法用於運動估計。對於全局運動估計,則採用了基於特徵的快速頑健的FFRGMET(Feature-based Fast and Robust Global Motion Estimation Technique)方法。 
  在MPEG-4視頻編碼中,運動估計相當耗時,對編碼的實時性影響很大。因此這裏特別強調快速算法。運動估計方法主要有像素遞歸法和塊匹配法兩大類,前者複雜度很高,實際中應用較少,後者則在H.263和MPEG中廣泛採用。在塊匹配法中,重點研究塊匹配準則及搜索方法。目前有三種常用的匹配準則:

  (1)絕對誤差和(SAD, Sum of Absolute Difference)準則; 
  (2)均方誤差(MSE, Mean Square Error)準則; 
  (3)歸一化互相關函數(NCCF, Normalized Cross Correlation Function)準則。 

  在上述三種準則中,SAD準則具有不需乘法運算、實現簡單方便的優點而使用最多,但應清楚匹配準則的選用對匹配結果影響不大。 

  在選取匹配準則後就應進行尋找最優匹配點的搜索工作。最簡單、最可靠的方法是全搜索法(FS, Full Search),但計算量太大,不便於實時實現。因此快速搜索法應運而生,主要有交叉搜索法、二維對數法和鑽石搜索法,其中鑽石搜索法被MPEG-4校驗模型(VM, Verification Model)所採納,下面詳細介紹。 

  鑽石搜索(DS, Diamond Search)法以搜索模板形狀而得名,具有簡單、魯棒、高效的特點,是現有性能最優的快速搜索算法之一。其基本思想是利用搜索模板的形狀和大小對運動估計算法速度及精度產生重要影響的特性。在搜索最優匹配點時,選擇小的搜索模板可能會陷入局部最優,選擇大的搜索模板則可能無法找到最優點。因此DS算法針對視頻圖像中運動矢量的基本規律,選用了兩種形狀大小的搜索模板。

    • 大鑽石搜索模板(LDSP, Large Diamond Search Pattern),包含9個候選位置;

  • 小鑽石搜索模板(SDSP, Small Diamond Search Pattern),包含5個候選位置。 

  DS算法搜索過程如下:開始階段先重複使用大鑽石搜索模板,直到最佳匹配塊落在大鑽石中心。由於LDSP步長大,因而搜索範圍廣,可實現粗定位,使搜索不會陷於局部最小,當粗定位結束後,可認爲最優點就在LDSP 周圍8 個點所圍菱形區域中。然後再使用小鑽石搜索模板來實現最佳匹配塊的準確定位,以不產生較大起伏,從而提高運動估計精度。 
   此外Sprite視頻編碼技術也在MPEG-4中應用廣泛,作爲其核心技術之一。Sprite又稱鑲嵌圖或背景全景圖,是指一個視頻對象在視頻序列中所有出現部分經拼接而成的一幅圖像。利用Sprite可以直接重構該視頻對象或對其進行預測補償編碼。 

  Sprite視頻編碼可視爲一種更爲先進的運動估計和補償技術,它能夠克服基於固定分塊的傳統運動估計和補償技術的不足,MPEG-4正是採用了將傳統分塊編碼技術與Sprite編碼技術相結合的策略。

 4 結束語 

  多媒體數據壓縮編碼的發展趨勢是基於內容的壓縮,這實際上是信息處理的高級階段,更加向人自身的信息處理方式靠近。人的信息處理並不是基於信號的,而是基於一個比較抽象的、能夠直接進行記憶和處理的方式。 

  MPEG-4作爲新一代多媒體數據壓縮編碼的典型代表,它第一次提出了基於內容、基於對象的壓縮編碼思想。它要求對自然或合成視聽對象作更多分析甚至是理解,這正是信息處理的高級階段,因而代表了現代數據壓縮編碼技術的發展方向。 

  MPEG-4實現了從矩形幀到VOP的轉變以及基於像素的傳統編碼向基於對象和內容的現代編碼的轉變,這正體現了傳統視頻編碼與新一代視頻編碼的有機統一。基於內容的交互性是MPEG-4的核心思想,這對於視頻編碼技術的發展方向及廣泛應用都具有特別重要的意義。


視頻通信中MPEG-4的誤碼彈性

  二、MPEG-4誤碼彈性(error resilience)工具

  MPEG4視頻標準也包含幾個差錯恢復工具,來提高信道差錯下的性能。

  1、數據分割

  由於視頻數據參數的差錯敏感度不同,可將視頻數據分成兩部分來提高MPEG-4的差錯健壯性。每個視頻分組(VOP)的輪廓和運動數據放在第一部分,相對敏感度較低的紋理數據(AC TCOEFF)放在第二部分。分割兩個部分的再生同步碼,在INTER VOP中稱爲運動標誌,在INTRA VOP中稱爲DC標誌。當差錯不敏感的第二部分紋理數據發生一些比特差錯時,視頻解碼器可存儲視頻分組中無差錯的運動和輪廓數據。也就是說,可成功隱藏第二部分的差錯,僅會有輕微的視覺失真。由於紋理數據組成了VOP的主要部分,數據分割允許分組的主要部分出錯,僅對視頻質量有輕微影響。

  運動矢量比紋理數據對差錯更敏感,輪廓數據對面向對象視頻編碼差錯健壯性的影響還需確定。當紋理差錯隱蔽較好時,運動和輪廓數據的隱蔽會使得圖像失真較大。當序列運動量大,幀間的視頻內容會變化較大,也使得在解碼端很難實現隱藏。若比特流誤碼率不高,紋理數據的損傷對可視失真影響很小。

  2、FEC中的RCPC(速率兼容的收縮卷積碼)

  速率兼容的收縮卷積碼(RCPC碼)用於多速率信道的差控。此技術必須伴隨高速反饋信道指示機制,根據網絡狀態動態更新編碼器。卷積編碼器以僅發送母碼開始而不加保護位。如果FEC解碼器由於出錯不能解釋母碼,那麼就通過反向信道通知編碼器,從而相應提高保護率。四個寄存器的卷積編碼器可提供四種不同速率,編碼器先設定的速率爲1作爲起始,再按需要來降低速率。對降級的信道條件,信道編碼器必須爲輸出信號分配較大數目的保護比特,以增強信道解碼器的糾錯能力,然後速率保持逐漸降級,直到解碼器能維持無檢測差錯重構母碼比特爲止。當已達最後速率而解碼器仍未能糾正差錯信號時,解碼器就剔除當前像塊而轉向下一個像塊。因此,卷積編碼器的速率依據糾正損壞比特的能力而變化,所需速率越高,爲獲得較好的差錯保護而對輸出信號添加的冗餘比特就越多。這種多速率的差錯保護編碼被稱作截斷碼。RCPC技術主要用於延遲敏感的視頻應用,由於反饋信息和對損傷信號的重傳可能會引入過多的時延,對實時應用不是很適合。RCPC和反向信道指示經常組合使用,來實現MPEG-4標準的差錯彈性恢復。

  3、AIR(自適應INTRA幀更新技術)

  AIR是MPEG-4標準中Annex E所規定的技術,與對VOP中所有MB進行統一的INTRA編碼的循環INTRA更新(CIR)截然不同,它包括在每個VOP中發送限定數目的INTRA宏塊。AIR進行INTRA編碼的宏塊數遠遠少於每VOP或每幀的總宏塊數。根據通過標記運動宏塊位置得到的更新映射圖,AIR對每幀中固定和預定的宏塊數目,有選擇地進行INTRA編碼。通過對MB的絕對誤差和(SAD)與其門限值(SADth)進行比較,來得到運動估值,SAD是通過MB和在先前VOP中空間相應的MB間計算得到,SADth是先前VOP中全部宏塊的平均SAD值,如果某一宏塊的SAD超過了SADth,編碼器就判定該MB屬於高運動區域,也就是對傳輸差錯敏感的區域,從而標誌該MB要進行INTRA編碼。如果標誌INTRA編碼的宏塊數超過了設定的數目,那麼視頻編碼器就以垂直掃描方向下移幀來編碼INTRA MB,直到預定數目的MB被INTRA編碼。對於下一幀,編碼器從相同的地方開始,並對INTRA宏塊開始編碼,包括在先前幀中標誌要進行INTRA編碼的宏塊。編碼宏塊的數目要基於視頻應用需求的比特率和幀率來確定。然而,爲了提高差錯健壯性,宏塊的數目可以根據每個視頻幀運動特徵來動態調整。由於圖像運動區域通常以INTRA模式編碼,就可能快速更新損壞的運動區域。

  顯然,增加每幀中更新的宏塊數目可以加速差錯恢復,但在給定目標比特率時,會降低無差錯時的視頻質量。這是由於爲了獲得目標比特率,而採用了粗量化過程。然而,在相同的目標比特率下,AIR比常規INTRA更新技術能提供更好更持久的客觀無差錯質量,因此,要進行INTRA編碼的宏塊數目是在健壯性和比特速率、無差錯視頻質量間的權衡。

  4、雙向解碼及RVLC

  雙向解碼是來降低視頻流中有效誤碼率的差錯彈性技術,比特差錯對感覺視頻質量損傷最大,也導致瞭解碼器端丟失同步。在這種情況下,會忽略數據流中該差錯之後的部分,直到檢測到無差錯的同步碼字。然而,拋棄的視頻數據可無差錯接收,從而明顯增強感覺質量,拋棄的比特數是差錯位置和下一個無差錯同步字位置間距離的函數。結果,實際誤碼率的數量級遠遠高於實際信道比特差錯率。爲了僅將損傷限制在受影響區域,並節省無差錯接收的比特,雙向解碼還可進行反向解碼。基於前向檢測到的差錯,解碼器會停止其搜索下一個同步字。當解碼器在同步碼字處恢復了同步時,再由反向恢復操作,對前向操作中跳過的數據段解碼。

  爲了實現雙向路解碼,須採用可逆VLC(即RVLC)。可逆碼字是變長編碼,可以前向和後向解碼,產生同樣的輸出。可採用以下幾個技術產生可逆VLC碼(Takashima,Wada and Murakami,1995;Watanabe,1996):其一是生成恆重碼(二進制序列中1的數目),另一種生成恆重RVLC碼錶的方法是,利用一個碼字第一符號的固定數目,或者說,如果解碼器從0開始解碼,則在碼字中搜索固定長度的0,反之亦然。

  由於在每個碼字中第一個被檢測到的符號數目可以確定,這些碼字都能雙向解碼,除了恆定碼重策略,其他生成RVLC表的方法是在每個碼字中分配固定數目的0、1。在這種情況下,RVLC碼可能的設定由01、10、0011、1100、001011、000111、110100等組成。相比於優化的Huffman碼,雙向可解碼的編碼比特率增加2~3個百分點。

  5、EREC(差錯彈性的熵編碼)

  儘管雙向解碼算法提高了抑制同步丟失的效率,但是相關聯的可逆VLC碼字在編碼比特流中引入了不必要的開銷,EREC通過在各種視頻參數的連續傳輸間提供轉換,顯著提高了編碼視頻流的差錯彈性。視頻通信中差錯最具破壞性的作用是使解碼器丟失同步,這源於視頻參數的變長碼和兩個連續同步字之間參數的可變數目。EREC試圖使用定長的時隙結構來重組變長碼,使得每個VLC碼的起始總是跟定長時隙起始位置相一致。定長時隙長短由編碼器決定,並在傳送該時隙之前,放在視頻塊首發送給解碼器。如果解碼器檢測到VLC碼中有比特差錯,同步總在下一個時隙開始時恢復,因此限制了受損時隙中的比特差錯損傷。

  三、組合的誤碼彈性工具

  除了前述獨立的差錯彈性機制,在視頻編碼算法中還可以使用組合技術來優化差錯彈性。彈性技術具有多種選擇,爲了獲得擬選的優化視頻質量,我們應選擇特定分組段。例如,分組的第一部分是由所包含宏塊的輪廓和運動編碼數據組成的,尚包含有關的管理數據,如COD標誌和MCBPC。第二部分包含變長的DCT數據和某些符合標準的控制數據,如CBPY和差分量化步長(DQUANT)。爲了在差錯發生時,解碼器能在重要的第一部分中自動恢復同步,採用EREC將編碼的運動矢量放入定長時隙。使用HEC(信頭擴展碼)標誌,對每個視頻幀中重要的頭部數據,在視頻分組中被複制,來減少在視頻序列中剔除的幀數。進一步說,第二部分的TCOEFF係數(DCT數據)採用RVLC碼字而便於後向解碼,減少了由於同步丟失而拋棄的DCT數據。第一部分的運動矢量也可採用可雙向解碼的編碼方式,但是EREC則取消了可逆VLC碼介入的開銷。實驗表明組合差錯彈性技術所改善的客觀質量(以110kbit/s和25f/s的速率採用MPEG-4編碼的Suzie序列)。首先,應用數據分割將幀中編碼的運動矢量(第一部分)和紋理數據(第二部分)分開,對第一部分的運動數據應用EREC;而當解碼器標誌第二部分出錯時,DCT數據採用可逆的VLC碼,可對DCT係數雙向解碼;進而,採用半碼率的Turbo碼來保護第一部分的頭部數據。

  四、結束語

  差控策略用來減輕傳輸差錯對解碼視頻質量的影響,策略的選擇依賴於很多因素,如在雙向和多點通信中介入的延遲、誤碼恢復技術帶來的比特率開銷、處理過程的複雜度等,這是任何系統應用需要設計的問題。

  信道差錯對感覺視頻質量有着決定性影響,可以有各種形式。然而,最有破壞性的信道差錯會導致解碼端的同步丟失。由於在視頻編碼算法中應用了時間和空間預測,差錯會在視頻序列範圍內從時間和空間上迅速傳播。爲了限制這種差錯傳播並減輕其影響,採用了差控機制來滿足用戶需求和期望。最簡單的差控技術是當受到傳輸差錯影響,需要隱蔽出現在視頻內容中的“馬賽克”。這些技術基於解碼器,則在壓縮視頻流中不必增加開銷。另一類差控技術包含一些力圖阻止差錯在時空間累積的機制。這類技術中最典型的代表是INTRA更新,該技術以規則的時間間隔發送INTRA幀。改進後的自適應INTRA更新(AIR)是以INTRA模式發送預定數目的運動宏塊,每幀發送一次。

由於AIR在更規則的間隔上更新視頻場景中最活躍的部分,比INTRA更新獲得更穩定的視頻質量。再一類差控機制是致力於檢測到差錯時恢復同步的機制,這類差錯彈性機制的例子有EREC和雙向解碼。EREC將變長碼放到預置的定長時隙中,當解碼器不能完成對當前VLC碼解碼時,其能在下一時隙起始處恢復同步。這樣就減少了由於丟失同步而拋掉的比特數目。當編碼視頻流遇到傳輸差錯時,雙向解碼是最小化有效誤碼率的高效算法。雙向解碼是解碼器能對比特流雙向解碼,來恢復全部或部分在前向解碼中扔掉的比特流。爲了使解碼器能反向解碼,在比特流中採用了可逆碼字。


H.264 sequence parameter sets成員值含義學習筆記

H.264中定義的sequence parameter sets中包括了一個圖像序列的所有信息.它是H.264的基礎之一,是編碼前進行初始化的關鍵的一環,本文通過參考H.264的標準文檔,對每個函數進行了一些註釋性的說明,還有一些圖表性的東西,因爲blog上帖不是很方便,請參考文檔中相應的部分.
sequence_parameter_set_rbsp_t結構體內成員及用途:
1. unsigned profile_idc:
它指的是碼流對應的profile.
1.1 基線profile(Baseline profile)
遵循基線profile的碼流應該遵循以下的約束:
a) 只有I和P切片存在
b) NAL單元流不應該有範圍在2到4的nal_unit_type值,包括2和4.
c) 序列參數集(sps)的frame_mbs_only_fag(之後介紹)應該等於1
d) 圖象參數值(psp)的weighted_pred_flag和weighted_bipred_idc都應該爲0
e) 圖象參數值(psp)的entropy_coding_mode_flag應該等於0
f) 圖象參數值(psp)的num_slice_groups_minus1應該在0到7之間,包括0和7
**psp部分參數含義在關於psp的文章中給出。
g) 對於基線profile對應的level度應該滿足.
符合基線profile的碼流的profile_idc被賦66.符合一定level的基線Baseline的解碼器應該可以解碼所有的profile_idc等於66的碼流或constrained_set0_flag(等會介紹)爲1而且level_idc(在level部分介紹)少於或等於一個指定的level的碼流。
1.2 主profile(Main profile)
符合主profile的碼流應該遵循以下的約束:
a) 只有I,P,B切片存在.
b) NAL單元流不包括nal_unit_type值範圍在2-4之內的值。包括2和4.
c) 不能允許有隨意順序的切片
d) 圖像參數集(psp)的num_slice_groups_minus1應該只爲0
e) 圖像參數集(psp)的redundant_pic_cnt_present_flag應該只爲0
f) 對於主profile所要求的level級需要達到。
符合主profile的碼流的profile_idc應爲77。符合指定level的主profile的解碼器應該可以解碼所有的profile_idc爲77的或constrained_set1_flag值爲1且level_idc值小於或等於指定level的碼流。
1.3 擴展profile(Extended profile)
符合擴展profile的碼流應該遵循以下的約束:
a) 序列參數集的direct_8x8_inference_flag值應該爲1
b) 圖像參數集的entropy_coding_mode_flag值應該爲0
c) 圖像參數集的num_slice_groups_minus1的值範圍爲0到7,包括0和7
d) 對於擴展profile指定的level級應該被達到
符合指定level級的擴展profile的解碼器可以解碼所有的profile_idc值爲88的或constrained_set2_flag值爲1的,而且level_idc小於等於指定level級的碼流。
符合指定level級的擴展profile的解碼器可以解碼所有的profile_idc值爲66的或constrained_set0_flag值爲1的,而且level_idc小於等於指定level級的碼流。
2. constrained_set0_flag
當constrained_set0_flag值爲1的時候,就說明碼流應該遵循基線profile(Baseline profile)的所有約束.constrained_set0_flag值爲0時,說明碼流不一定要遵循基線profile的所有約束。
3. constrained_set1_flag
當constrained_set1_flag值爲1的時候,就說明碼流應該遵循主profile(Main profile)的所有約束.constrained_set1_flag值爲0時,說明碼流不一定要遵循主profile的所有約束。
4. constrained_set2_flag
當constrained_set2_flag值爲1的時候,就說明碼流應該遵循擴展profile(Extended profile)的所有約束.constrained_set2_flag值爲0時,說明碼流不一定要遵循擴展profile的所有約束。
注意:當constraint_set0_flag,constraint_set1_flag或constraint_set2_flag中不只一個值爲1的話,那麼碼流必須滿足所有相應指明的profile約束。
5. level_idc
它指的是碼流對應的level級.
5.1 獨立於profile的level約束
讓fR是這樣一個變量:
a) 如果圖像n是一幀,fR設爲1/172
b) 如果圖像n是一個場,fR設爲1/(172*2)
任何profile下的指定的level都應該滿足如下約束:
a) 理論上可訪問單元n從CPB中的移除時間滿足這樣的約束:t(n)-t(n-1)要比Max(PicSizeInMbs,MaxMBPS,fR)值大或相等,MaxMBPS是說在level表中指出的對於圖像n的值,PicSizeInMbs是指在圖像n中的宏塊數。
b) 如果圖像n是一個輸出圖像而且它不是碼流的最後一個輸出圖象,從DPB中取出的連續的輸出圖象差滿足:Dt(n) >= Max(PicSizeInMbs, MaxMBPS, fR), MaxMBPS是指對於圖象n來說的相應的值。PicSizeInMbs指圖象n的宏塊。
c) 對於可訪問單元0的NumBytesInNALunit變量的總和少於或等於256*ChromaFormatFactor*(PicSizeInMbs+MaxMBPS*tr(0)-trn(0)/MinCR,MaxMBPS和MinCR是圖象0在level表中相應的值,PicSizeInMbs是圖象0的宏塊數量。
d) 對於可訪問單元n的NumBytesInNALunit值的總和是小於或等於256*ChromaFormatFactor*MaxMBPS*(tr(n)-trn(n-1))/MinCR,MaxMBPS和MinCR的值是圖像n在level級表中對應的值。
e) PicWidthInMbs * FrameHeightInMbs <= MaxFS, MaxFS是在level表中指定的值。
f) PicWidthInMbs <= Sqrt(MaxFS * 8)
g) FrameHeightInMbs <= Sqrt(MaxFS * 8)
h) max_dec_frame_buffering <=MaxDpbSize, MaxDpbSize等於Min(1024 * MaxDPB / (PicWidthInMbs * FrameHeightInMbs * 256 * ChromaFormatFactor,16),MaxDPB是對於1024字節單元的MaxDPB值,max_dec_frame_buffering也叫做DPB大小值。
i) 對於VCL HRD參數值,至少對於一個SchedSelIdx值來說,碼率BitRate[SchedSelIdx] <= 1000 * MaxBR且CpbSize[SchedSelIdx] <= 1000 * MaxCPB。MaxBR和MaxCPB是對於1000bits/s和1000位單元對應於level級表的值。碼流應該爲0到cpb_cnt_minus1中的一個值,包括0和cpb_cnt_minus1.CpbSize[SchedSelIdx]也叫做CPB大小值。
j) 對於NAL HRD參數來說,BitRate[SchSelIdx] <= 1200 * MaxBR且CpbSize[SchedSelIdx] <= 1200 * MaxCPB,MaxBR和MaxCPB是在1200bits/s和1200位的單元值在極限level下的值。碼流應該滿足至少SchedSelIdx值從0到cpb_cnt_minus1中的一個值。
k) 在亮度幀採樣中,垂直運動向量元素範圍不能超過MaxVmvR,MaxVmvR值在level極限表中提供
l) 在亮度幀採樣單元中,水平運動向量範圍不能超過-2048到2047.75,包括-2048和2047.75。
m) 按解碼順序的兩個連續的宏愉的運動向量的數量不超過MaxMvsPer2Mb(對於當前宏塊的最後一個切片和下一個宏塊的第一個切片也適用),MaxMvsPer2Mb值在level極限表中提供.
n) 對於任何宏塊的macroblock_layer()的位數值都不能大於128 + 2048 * ChromaFormatFactor.依賴於entropy_coding_mode_flag值,macroblock_layer()的值由如下方式計算
 如果entropy_coding_mode_flag值爲0的話,macroblock_layer()的值由macroblock_layer()的對於一個macroblock的語法結構給出
 其他情況下,對於一個宏塊的macroblock_layer()值是由read_bits(1)給出的.
5.2 與profile相關的level級
對於基線profile,主profile和擴展profile的相應的level級約束在H.264的文檔中有表可查。
6. seq_parameter_set_id
seq_parameter_set_id指定了由圖像參數集指明的序列參數集。seq_parameter_set_id值應該是從0到31,包括0和31
注意: 當可用的情況下,編碼器應該在sps值不同的情況下使用不同的seq_parameter_set_id值,而不是變化某一特定值的seq_parameter_set_id的參數集的語法結構中的值。
7. log2_max_frame_num_minus4
log2_max_frame_num_minus4指定了變量MaxFrameNum的值,MaxFrameNum = 2(log2_max_frame_num_minus4+4)
log2_max_frame_num_minus的值應該在0到12之間,包括0和12.
8. pic_order_cnt_type
pic_order_cnt_type指定了解碼圖像順序的方法。pic_order_cnt_type的值是0,1,2。
pic_order_cnt_type在當一個編碼視頻序列有如下限定時不爲2
a) 包含非參考幀的可訪問單元,並緊接着一個包含非參考可訪問單元
b) 兩個可訪問單元,它們分別包含兩個場中的一個,它們一塊兒組成了一個互補的非參考場對,被緊接着一個包括非參考圖像的可訪問單元。
c) 一個包含非參考場的可訪問單元,並緊接着一個包含另一個非參考圖像的可訪問單元,它們不組成互補的非參考場對。
9. log2_max_pic_order_cnt_lsb_minus4
log2_max_pic_order_cnt_lsb_minus4指出變量MaxPicOrderCntLsb的值,它是在解碼過程中使用到的圖像順序計算值:
MaxPicOrderCntLsb = 2(log2_max_pic_order_cnt_lsb_minus4+4)
log2_max_pic_order_cnt_lsb_minus4的值爲包括0和12以及它們之間的值。
10. delta_pic_order_always_zero_flag
delta_pic_order_always_zero_flag等於1的時候表示當delta_pic_order_cnt[0]和delta_pic_order_cnt[1]在序列的切片頭中不存在,並被認爲是0。delta_pic_order_always_zero_flag值等於0時表示delta_pic_order_cnt[0]在序列的切片頭中存在而delta_pic_order_cnt[1]可能在序列的切片頭中存在。
11. offset_for_non_ref_pic
offset_for_non_ref_pic被用來計算一個非參考圖像的圖像順序值。offset_for_non_ref_pic值取值範圍爲(-2)^(31)到2^(31)-1,包括邊界值。
12. offset_for_top_to_bottom_field
offset_for_top_to_bottom_field被用來計算一幀中的下場的圖像順序值。offset_for_top_to_bottom_field值的取值範圍爲(-2)^(31)到(2)^(31)-1,包括邊界值。
13. num_ref_frames_in_pic_order_cnt_cycle
num_ref_frames_in_pic_order_cnt_cycle在解碼過程中被用來計算圖像順序值。num_ref_frames_in_pic_order_cnt_cycle在0到255之間取值,包括邊界值。
14. offset_for_ref_frame[i]
offset_for_ref_frame[i]是一列num_ref_frames_in_pic_order_cnt_cycle中的一個元素,它被在解碼過程的解碼順序值中使用。offset_for_ref_frame[i]的值爲(-2)^31到(2)^(31)-1,包括邊界值。
15. num_ref_frames
num_ref_frames指定了長期的和短期的參考幀的最大總數目,互補的參考場對和在解碼過程中對於任何序列使用的幀間預測的非配對的參考場。num_ref_frames也決定了滑動窗口的操作大小過程。num_ref_frames值在0-16之間,包括邊界值。
16. gaps_in_frame_num_value_allowed_flag
gaps_in_frame_num_value_allowed_flag值指明瞭frame_num允許的值和解碼過程中的frame_num的差距值。
17. pic_width_in_mbs_minus1
pic_width_in_mbs_minus1加1指明瞭對於每個解碼圖像中的寬度值。在宏塊單元中的圖像寬度的變量值爲:
PicWidthInMbs = pic_width_in_mbs_minus1+1;
對於亮度元素來說圖像寬度變量的值:PicWidthInSamplesL = PicWidthInMbs * 16;
對於色度元素來說圖像寬度變量的值:PicWidthInSamplesC = PicWidthInMbs * 8
18. pic_height_in_map_units_minus1
pic_height_in_map_units_minus1指明瞭解碼幀或場中的一個切片組的高度。變量PicHeightInMapUnits的值和PicSizeInMapUnits:
PicHeightInMapUnits = pic_height_in_map_units_minus1 + 1;
PicSizeInMapUnits = PicWidthInMbs * PicHeightInMapUnits

19.frame_mbs_only_flag
frame_mbs_only_flag等於0指明瞭視頻序列的編碼圖象可能是編碼場或編碼幀。frame_mbs_only_flag等於1指明瞭每個編碼視頻序列的編碼圖像都是隻含幀宏塊的編碼幀。
依賴於frame_mbs_only_flag的值,pic_height_in_map_units_minus1如下定義:
如frame_mbs_only_flag等於0,pic_height_in_map_units_minus1就是宏塊單元的場高
如frame_mbs_only_flag等於1,pic_height_in_map_units_minus1就是宏塊單元的場寬
FrameHeightInMbs的值:
FrameheightInMbs = ( 2 - frame_mbs_only_flag ) * PicHeightInMapUnits
20. mb_adaptive_frame_field_flag
mb_adaptive_frame_field_flag等於0表明在一個圖像內不能切換使用幀和場宏塊。mb_adaptive_frame_field_flag等於1表示在一幀中有可能使用場和幀的切換,當mb_adaptive_frame_field_flag沒有設定的時候,應該賦給0.
21. direct_8x8_inference_flag
direct_8x8_inference_flag指明瞭在亮度運動向量生成B_Skip,B_Direct_16x16和B_Direct_8x8的方法。當frame_mbs_only_flag爲0時,direct_8x8_inference_flag應爲1
22. frame_cropping_flag
frame_cropping_flag等於1表明在sps中下一個使用的幀剪切偏移量參數。frame_cropping_flag等於0表明幀剪切偏移量不存在。
23. frame_crop_left_offset,frame_crop_right_offset,frame_crop_top_offset,frame_crop_bottom_offset指明瞭在一個窗中一幀的採樣值。
24. vui_parameters_present_flag
vui_parameters_present_flag等於1表示vui_parameters()在碼流中是存在的,vui_parameters_present_flag等於0表明vui_parameters()在碼流中不存在。
H.264 picture parameter sets成員值含義學習筆記
H.264中定義的picture parameter sets中包括了一個圖像的所有切片信息.它也是H.264的基礎之一,
是編碼前進行初始化的關鍵的一環,本文跟下一篇sps的參考筆記是兄弟篇,通過參考H.264的標準文檔,
對每個函數進行了一些註釋性的說明,還有一些圖表性的東西,因爲blog上帖不是很方便,請參考文檔中
相應的部分.
picture parameter sets
1. pic_parameter_set_id
pic_parameter_set_id指明瞭在切片頭中對應的某個psp.pic_parameter_set_id的值應該在0到255,
包括0和255
2. seq_parameter_set_id
set_parameter_set_id表示激活的sps.seq_parameter_set_id應該取值在0到31之間,包括邊界值.
3. entropy_coding_mode_flag
entropy_coding_mode_flag決定了在解碼方法上使用的方法.
如果entropy_coding_mode_flag爲0的話,就使用Exp-Golomb編碼方法
如果entropy_coding_mode_flag爲1的話,就使用CABAC方法.
4. pic_order_present_flag
pic_order_present_flag等於1表示在切片頭中圖像順序值存在,pic_order_present_flag爲0表示切片
頭中的圖像順序值不存在
5. num_slice_groups_minus1
num_slice_groups_minus1加上1表示一個圖像中的切片組數目.當num_slice_groups_minus1爲0時,
圖象所有的切片屬於同一組.
6. slice_group_map_type
slice_group_map_type表示從切片組單到切片組的映射方法.slice_group_map_type的值可以取0到6.
slice_group_map_type=0表示插值切片組.
slice_group_map_type=1表示分散切片組映射
slice_group_map_type=2表示一個或多個"前景"切片組和一個"剩餘"切片組.
slice_group_map_type=3,4,5時,表示變換切片組.當num_slice_groups_minus1不不1時,
slice_group_map_type應該不爲3,4,5.
slice_group_map_type=6時,表示從外部對對於每個切片組單元進行外部的切片賦值.
如果frame_mbs_only_flag爲0而且mb_adaptive_frame_field_flag爲1且編碼圖像是一幀的話,切片組
映射單元是宏塊對
如果frame_mbs_only_flag爲1而且mb_adaptive_frame_field_flag爲1且編碼圖像是一場的話,切片組
映射單元是宏塊
其他的情況下,切片組單元是兩個宏塊,它們在一幀宏塊對中是垂直連續的
7.run_length_minus1[i]被用來賦給在光柵掃描中第i個切片組指明連續切片組單元的數量.
run_length_minus1[i]的取值應爲0到PicSizeInMapUnits-1.
top_left[ i ] and bottom_right[ i ] specify the top-left and bottom-right corners of a rectangle, 
respectively. top_left[ i ] and bottom_right[ i ] are slice group map unit positions in a raster scan of the picture for the slice group map units. For each rectangle i, all of the following constraints shall be obeyed by the values of the syntax elements top_left[ i ] and bottom_right[ i ]
8.top_left[i] and bottom_right[i]
top_left[i] and bottom_right[i]指出了矩形區左上角和右下角.top_left[i] and bottom_right[i]是對
於一個切片組的圖像的光柵掃描位置.對於每個矩形i,top_left[i] and bottom_right[i]應該滿足所有的
以下的約束:
a) top_left[i]應該比bottom_right[i]小或等於,bottom_right[i]應該比PicSizeInMapUnits的值小.
b) (top_left[i]%PicWidthInMbs)應該比(bottom_right[i]%PicWidthInMbs)的值小或等於.
9. slice_group_change_direction_flag在slice_group_map_type爲3,4,5時跟
slice_group_map_type一塊兒來提取生成映射類型,
10.slice_group_change_rate_minus1
slice_group_change_rate_minus1用來指明SliceGroupChangeRate變量的值.
SliceGroupChangeRate指出當切片組的大小對於每個圖像來說都不同的時候,對切片組數目的運算
的乘數.slice_group_change_rate_minus1取值範圍爲0到PicSizeInMapUnits-1:
SliceGroupChangeRate = slice_group_change_rate_minus1+1;
11. pic_size_in_map_units_minus1
pic_size_in_map_units_minus1用來指明在一個圖象中使用的切片組映射單元的數目.
pic_size_in_map_units_minus1應該等於PicSizeInMapUnits-1.
12. slice_group_id[i]
slice_group_id[i]說明了切片組單元中由光柵掃描順序指定的第i個切片組.slice_group_id[i]應該取
0到num_slice_groups_minus1.
13. num_ref_idx_l0_active_minus1指明瞭參考圖像列表0中的最大參考索引值,它被用來解碼圖像
的每一個切片,列表0在num_ref_idx_active_override_flag值爲0的時候被使用.當MbaffFrameFlag值
爲1時,num_ref_idx_l0_active_minus1是解碼幀宏塊的最大索引值,而
2 * num_ref_idx_10_active_minus1 + 1是解碼場宏塊的最大索引值.
num_ref_idx_l0_active_minus1的取值爲0到31.
14. num_ref_idx_l1_active_minus1與num_ref_idx_l0_active_minus1有相同的語義,只不過它是
針對列表1來說的.
15.weighted_pred_flag
weighted_pred_flag=0表示加權預測在P和SP切片中沒有被使用
weighted_pred_flag=1表示加權預測在P和SP切片中有使用.
16. weighted_bipred_idc
weighted_bipred_idc=0表示默認的加權預測被應用到B切片中.
weighted_bipred_idc=1表示外部的加權預測被應用到B切片中.
weighted_bipred_idc=2表示內部的加權預測被應用到B切片中.
weighted_bipred_idc的取值爲0,1,2.
17.pic_init_qp_minus26指出了對於每個切片來說的SliceQPY的初始值減26.初始值在切片層中
當非0的slice_qp_delta被解碼後時改變,在非0的mb_qp_delta值被在宏塊層解碼時再次被改變.
pic_init_qp_minus26應該取-26到+25.
18. pic_init_qs_minus26
pic_init_qs_minus26指出了對於SP或SI切片中的SliceQSY的被始值減26.這個初始值在切片層中
當一個非0的slice_qs_delta被解碼的時候被修改.pic_init_qs_minus26的取值爲-26到25.
19.chroma_qp_index_offset
chroma_qp_index_offset表示在查QPC表時,對於QPY和QSY應該加上的偏移量.
chroma_qp_index_offset取值爲-12到12
20. deblocking_filter_control_present_flag
deblocking_filter_control_present_flag=1表示在切片頭處用來控制解塊濾波的特徵值是存在的.
deblocking_filter_control_present_flag=0表示在切片頭處用來控制解塊濾波的特徵值是不存在的.
21. constrained_intra_pred_flag
constrained_intra_pred_flag=0表示在幀內預測的時候允許剩餘數據和鄰近宏塊解碼採樣.
constrained_intra_pred_flag=1表示在受限的幀內預測,對宏塊預測中使用幀內宏塊預測模式只使
用剩餘數據和從I和SI宏塊類型中的解碼採樣值.

22. redundant_pic_cnt_present_flag
redundant_pic_cnt_present_flag=0表示redundant_pic_cnt在切片頭中,數據分區B和數據分區C中
不存在.
redundant_pic_cnt_present_flag=1表示redundant_pic_cnt在所有切片頭中,數據分區B和數據分
區C中存在.
T264中的slice type decision
T264中的slice type decision方法。
在H.264裏面當前幀屬於哪個slice的決定形式是多種多樣的,對於JM中的碼流中,一般一幀圖象就
認爲是一個slice,那麼如果當前幀是一個I幀,那麼它就屬於一個I slice.這時整個frame的爲
一個slice.但是具體我們用什麼樣的方式來進行slice type的決策呢,這也是一個問題。我們看
一下T264裏面是如何處理這個問題的。
在T264中,如果我們設定了,USE_SCENEDETECT的話,當前的slice種類是由當前幀的幀號與設定
的idrframe,iframe跟bframe相關的,如果frame_no%idrframe==0的話,那麼說明當前幀是
屬於一個IDR slice的,如果frame_no%iframe==0的話,該幀屬於一個I slice.如果上面的
情況不滿足那麼是屬於P slice或B slice.由於碼流中只有如下幾種類型:0) I P P P 
..... I P P P  1) I B P B P.....B P B P   2) I B B P B B P.....B B P I 
B B P,所以如果frame_no%(bframe+1)==0的話,就屬於P slice,如果不是的話屬於
B slice.如沒有使用USE_SCENEDETECT的話,是用MeAnalysis來決定當前屬於什麼slice的。
這種形式是動態式地決定是不是要加入一個I slice。決定流程如下:如果我們達到了我們在
config裏面設定的iframe interval的話,當前幀就是一個I slice.我們設定一個
INTRA_THRESHOLD,對幀中的每一個宏塊進行預測,來計算sad.這個過程因爲計算量比較大,
所以使用了簡化算法,首先用前一幀的mv做預測值,計算sad,如果這個值大於我們設定的
SEARCH_THRESHOLD的話,說明上一幀的mv已不適合做當前幀的預測,我們會使用一個簡化
的diamond search來簡單地找一下當前宏塊的mv,進行sad計算。整個幀的sad計算結束之後,
我們與INTRA_THRESHOLD進行比較,如果sad大的話,這一幀爲I slice中的一幀,如果小的話,
我們認爲它是一個P或B幀。對於當前幀是P還是B幀還是用上面的方法進行。

http://shiyingxiang.spaces.live.com/blog/
H.264 像素塊預測與運動補償
摘 要:本文詳細分析了像素塊預測與運動補償技術。 
關鍵詞:像素塊預測 運動補償 信源編碼

一、像素塊預測

H.264/ AVC標準中的基本預測技術是基於塊,而不是基於對象的。它的編碼器是利用混合的編碼方案來提高編碼效率,這些方案包括高級的預測技術和有效熵編碼技術。在運動預測中它使用不同的塊的大小進行預測,以樹結構的方式來組織預測模式。其主要的特點也包含在多參考幀預測方式和通用B幀的概念上。H.264像素塊預測編碼包括幀內塊預測和幀間塊預測,而幀內塊預測在H.264中佔有極重要的地位。在圖像信號壓縮編碼中,由於亮度信號和色差信號是分別進行處理的,因此,預測又可分亮度信號預測和色差信號預測。下面就兩種不同預測方式分別加以討論。

1. 幀內預測

在H.264/AVC中採用的預測編碼方法與在14496-2標準的MPEG-4視頻編碼規範不同,幀內預測是在變換編碼之前進行的。在H.264/AVC標準的幀內預測中,當前塊的抽樣值總是利用鄰塊的抽樣值來獲取。這樣也許會因爲在相鄰的幀間編碼的宏塊的運動補償誤差而引起圖像誤差的擴散。因此,在圖像編碼過程中還有一種限制幀內編碼模式,此時只允許相鄰的幀內預測宏塊爲已知纔可以作爲其他當前宏塊的參考宏塊。

H.264根據相鄰像素可能有相同的性質,利用相鄰像素的相關性,採用了新的幀內(Intra)預測模式。通過當前像素塊的左邊和上邊的像素(已編碼重建的像素)進行預測。只對實際值和預測值的差值進行編碼,這樣就能用較少的比特數來表達幀內編碼的像素塊信息。在H.264標準中,亮度塊可以有9種4×4塊和4種16×16塊的幀內預測模式,而色度8×8塊的4種模式與亮度的4種16×16塊的模式相同。對於每個4×4塊(除了邊緣塊特別處置以外),每個像素都可用17個最接近的先前已編碼的像素的不同加權和(有的權值可爲0)來預測,即此像素所在塊的左上角的17個像素。顯然,這種幀內預測不是在時間上,而是在空間域上進行的預測編碼算法,可以除去相鄰塊之間的空間冗餘度,取得更爲有效的壓縮。如圖1所示,4×4方塊中a、b、…、p爲16個待預測的像素點,而A、B、…、P是已編碼的像素。按照所選取的預測參考的點不同,亮度共有9類不同的模式,但色度的幀內預測只有1類模式。

4×4幀內預測方法用於對圖像細節部分進行編碼,它的基本思路是從不同的方向計算、比較塊中各個像素之間的亮度差值,即梯度值。通過選擇具有最小預測誤差的方向作爲最佳的預測方向。下面對其中的預測模式舉例說明。如圖1所示,其中4×4塊中16個抽樣值(a~p)是由先前解碼鄰近宏塊抽樣值(A~Q)利用各種預測模式預測得來。這種預測模式共有8個方向,加上各像素作平均計算共9種模式。

2. 4×4幀內預測模式編碼過程

每個4×4塊的幀內預測模式的選擇一定會告知解碼器,這可能需要很多比特。然而,附近的4×4塊的幀內模式是非常相關的。舉例來說,如果圖2裏的先前編碼的4×4塊A和B是使用模式2預測的,塊C(當前塊)的最佳模式很有可能也是模式2。對於每個當前塊C,編碼器和解碼器計算最合適的模式most_probable_mode。如果A和C都在4×4幀內模式中編碼,且都在當前的slice層中,最合適的模式(most_probable_mode)是A和C預測模式的最小量;否則most_probable_mode 被設定成模式2(直流預測)。

編碼器爲每個4×4塊發送一個flag標誌,使用最合適的模式use_most_probable_mode。如果flag是“1”,採用參數most_probable_mode。如果flag是“0”,發送另外的一個參數remaining_mode_selector,來指出模式變化。如果remaining_mode_selector比當前的most_probable_mode小,那麼預測模式被設定爲remaining_mode_selector;否則預測模式被設定爲 remaining_mode_selector+1。這樣,remaining_mode_selector只需用8個數值(0到7)表示目前的幀內模式(0到8)。

3. 亮度信號16×16幀內預測

16×16預測方式是基於在16×16塊的基礎上,用於對圖像中的相對不變的部分進行編碼。它只有四種預測方式,分別爲垂直預測方式、水平預測方式,直流預測方式和平面預測方式。用一個4×4亮度分量的可選模式,可預測一個宏塊的整個16×16亮度分量,有4種模式。

模式0:(垂直預測)由上面的抽樣值插補(H);

模式1:(水平預測)由左邊的抽樣值插補(V);

模式2:(直流預測)由上面的和左側的抽樣值平均數插補(H+V);

模式4:(平面預測)由上面的和左側的抽樣值插補。

線性“平面”可設置由上面和左側的抽樣值H和V插補, 這在平滑的亮度區域效果較好。

4. 色度信號的幀內預測

一個宏塊的每個8×8色度分量藉助於上面的和左面的已被編碼、重建的色度分量抽樣值進行預測。由於色度在圖像中是相對平坦的,其預測方法與16×16亮度信號幀內預測相似方式進行。因此也有四種幀內預測模式:垂直預測(模式0),水平預測(模式1),直流預測(模式2)和平面預測(模式3)。

5. 幀間預測

幀間預測是利用先前已編碼幀的圖像作爲參考圖像對當前圖像進行預測的一種方式。它把參考圖像的抽樣點通過運動矢量的補償作爲當前圖像抽樣值的參考值。H.264/AVC標準中使用了從H.261標準以來主要標準中使用的塊結構運動補償。然而,它與早期標準最大區別在於:①支持多種塊結構的預測;②運算精度能精確到1/4像素。

在H.264/AVC標準中還使用了H.263標準中曾使用過的多幀預測的方法,主要思想是增加運動矢量中時間軸的估計參考幀數。在宏塊的級別上,允許選擇一個或幾個前面視頻幀作爲參考幀。用於運動補償的多幀預測方式在大多數情況下會明顯改善預測增益。

下面我們就以在兩種不同類型的片(slice)中使用的幀間預測方式進行討論。在說明它們之前我們首先介紹樹結構的運動補償,其中主要簡述了宏塊的分塊。

幀間預測用於降低圖像的時域相關性,通過採用多幀參考和更小運動預測區域等方法,對下一幀精確預測,從而減少傳輸的數據量。每個亮度宏塊被劃分成形狀不等的區域,作爲運動描述區域。如圖4所示,其劃分方法有16×16,16×8,8×16,8×8 共4種。當選用8×8方式時,可以進一步劃分成8×8,8×4,4×8和4×4共4個子區域。每個區域包含自己的運動向量,每個運動向量和區域選取信息必須通過編碼傳輸。因此,當選用較大區域時,用於表示運動向量和區域選取的數據量減少,但運動補償後的殘差會增大;當選用小區域時,殘差減少,預測更精確,但用於表示運動向量和區域選取的數據量增大。大區域適合反映幀間同質部分,小區域適合表現幀間的細節部分。

在H.264中,運動預測的精度也有所改進,對QCIF(144×176像素)格式的圖像,使用1/4像素精度;對CIF(288×352 像素)格式的圖像,使用1/8 像素精度。其中,1/4 像素插值是先使用一個6抽頭濾波器進行水平和垂直濾波得到半像素插值點,然後對其進行線性插值;而1/8 像素插值是直接使用一個8抽頭濾波器進行水平和垂直濾波。

在幀內編碼模式下,H.264 對空間係數進行雙向預測,而不是對變換後的係數進行預測(見H.263+的先進幀內預測模式)。另外,與H.263+的附錄N類似,H.264支持參考幀可選模式,即在編碼後續圖像時,可以從編碼緩存中選擇使用前面的參考幀(多於一幀)進行運動估值。

H.264 除了支持I 幀、P 幀和B 幀外,還提出了一種新的圖像類型SP 幀,SP幀也是預測編碼幀,根據需要可以改變用於該幀預測的圖像。SP幀可用於信道速率的改變、視頻比特流的切換和碼流隨機接入等操作,在時變無線信道上的視頻通信和流媒體傳輸中有廣泛的應用前景。

二、運動補償

1. 樹結構的運動補償

H.264採用了不同大小和形狀的宏塊分割與亞分割的方法。一個宏塊的16×16亮度值可以按照16×16、16×8、8×16或8×8進行分割;而如果選擇了8×8分割,還可以按照8×8、8×4、4×8或4×4進行亞分割,如圖5所示。這些宏塊分割與亞分割的方法將會使得每個宏塊中包含有許多不同大小塊。利用各種大小的塊進行運動補償的方法我們將稱爲樹結構的運動補償(tree structured motion compensation)。宏塊分割與亞分割所產生的每一個亮度塊都有自己獨立的運動矢量。對於宏塊中色度值,分割方法是和亮度一樣的,但是由於4∶2∶0採樣的關係,色度分割塊的大小是亮度分割塊的一半,而且當色度塊在利用運動矢量時,必須要將它各個分量除以2。其次,H.264可以達到1/4像素的運動精度,這是通過利用整像素點的亮度值進行內插得到的。內插過程先是通過6抽頭的濾波器來獲得半像素精度,然後用線性濾波器來獲得1/4像素的精度。又由於4∶2∶0採樣的關係,色度的運動精度就達到1/8像素,這也是通過線性濾波器插值得到的。由於運動矢量之間也有一定的相關性,所以H.264就利用已經編碼塊的運動矢量對當前未編碼塊的運動矢量進行預測,最後只需要編碼和傳輸實際運動矢量與預測值的差值即可。

再次,H.264還可以採用多參考圖像(最多前向和後向各5幀)來進行運動預測,這樣可以對週期性運動,平移封閉運動和不斷在兩個場景間切換的視頻流有效果非常好的運動預測。使用了多參考圖像,H.264不僅能夠提高編碼效率,同時也能實現更好的碼流誤碼恢復,但需要增加額外的時延和存儲容量。

最後,H.264也在B圖像中利用後向運動預測,這和以前的標準是一致的,但不同的是B圖像通過加權也能作爲其他圖像的參考圖像。

在H.264/AVC標準中獲得運動補償的塊結構大小不再侷限於在宏塊的基礎上,可以從宏塊的分塊或子分塊中獲取運動矢量。

每個運動矢量都將會被編碼、傳送,另外分塊方式也必須被編碼在數據流中。選擇大的分塊方式(16×16、16×8或8×16)也許只需要傳送很少的比特用於說明運動矢量和分塊方式,但是運動補償後抽樣點差值也許將會比較大。選擇小的分塊方式(8×4或4×4)也許能得到很小運動補償後抽樣點差值,但是要花費很多比特去傳輸運動矢量和分塊方式。因此對於分塊的選擇將會對壓縮效果有着重大的影響。通常,大的分塊方式用於幀內均勻的部分,而小的分塊方式將有利於圖像中細節描述,每個色度塊將按照亮度的分塊方式進行分塊。由於宏塊中色度分辨率是亮度分辨率的一半,因此色度塊的大小不管在水平還是垂直方向上都只是亮度塊的一半。同時,色度塊上垂直運動向量和水平運動向量也只是亮度塊的一半。

2. 在P類型片中的幀間預測

以往,一般的視頻壓縮的最高運動估計精度爲半像素(half pixel),比如在14496-2標準(即MPEG-4視頻編碼部分)中的基本補償技術就是採用半像素精度,採用的內插方法也是簡單的雙線性內插法,其補償的質量也是相對於較低的。與上述不同的是,在H.264/AVC標準中的運動估計精度要求達到1/4(quarter pixel)精度。

在H.264/AVC標準中,對於P類型的片編碼時可以採用多幀運動補償預測,也就是超過一個先前編碼幀可作爲當前幀運動補償的參考幀。

多幀預測需要解碼器和編碼器在緩衝中存貯多幀圖像作爲參考幀。解碼器則利用比特流中參數設置信息內存管理控制操作(memory management control operation)去複製編碼器相同的多幀緩衝。同時對於每個運動補償的16×16、16×8、8×16或8×8塊及其子塊需傳送參考索引參數,用於確定該塊或子塊參考幀在緩存中的位置。P類型片預測方式是與宏塊中塊相對應的,也即是與前面所介紹宏塊中分塊相對的。在P類型片中預測模式不僅僅只有表中所描述6種類型,還可以包括幀內預測模式。另外對於P_8×8類型預測方式,它是對應於8×8塊的預測,還可以有子分塊上預測模式。

對於P幀中不同預測模式分類可見JM中函數interpret_mb_mode_P,在其中它把當前宏塊的分塊方式及其模式存入到currMB數據結構中,以便在函數readMotionInfoFromNAL獲取當前塊的運動矢量,在readCBPandCoeffsFromNAL函數中獲得預測差值。

3. 在B類型的片中幀間預測

與先前圖像編碼標準相比,在H.264/AVC標準中B類型片的概念得到推廣,最大特點是由B類型片所組成B幀可以作爲其他圖像的參考幀。B類型片與P類型片最本質的區別是在B類型片中宏塊或其子塊的預測值是通過兩個不同運動補償值加權平均後取得的。B類型片使用兩組不同參考圖像,分別爲list0(前向參考圖像集)和list1(後向參考圖像集)。

在B類型片中,四組不同的宏塊預測方式將支持下面四種模式:①直接方式(direct mode):這種方式不需要傳送運動矢量等附加信息(side information)。②單向預測方式(inter mode):只需傳送1個宏塊預測信息。③多假設預測方式(multihypothesis mode):需傳送兩個宏塊預測信息。④幀內預測方式(intra mode)。下面我們分別具體介紹直接預測方式和多假設預測方式。

(1)直接預測方式(direct mode)

直接方式使用雙向預測方式,傳送預測差值。這種方式前向和後向運動矢量(mv0,mv1)是通過隨後的參考圖像(RL1)上公共確定宏塊(co-located macroblock)的運動矢量(mvc)計算得到的。使用直接預測方式的宏塊與公共確定宏塊應具有相同的分塊。

其中MV0爲前向運動矢量,MV1爲後向運動矢量,MVC代表着隨後幀間圖像公共確定塊運動矢量。對於先前B幀概念而言,TDD爲當前幀前一幀與後一幀相差的時間。TDB爲當前B幀圖像與前一幀的時差。當使用多幀預測後,這種概念發生變化。TDB爲當前幀與其前向參考幀RL0之間的時差,而TDD爲前向參考幀RL0與後向參考幀RL1之間的時差。在H.264/AVC標準中,直接預測方式因對預測信號進行混合加權運算,比先前標準中使用平均加權方式得到改善。這種技術最適合音樂電視和電影結尾的使用,它們通常是場景慢慢衰弱的。特別是在電影的結尾,場景逐漸衰弱成黑幕。在先前標準中沒有好的壓縮方式這種情況很難編碼。如果把這種現象編碼成PBBB模式,由於平均加權將使得第一和第三個B幀相對於周圍的幀內、幀間幀及第二個B幀有較大的圖像惡化,而基於幀間相對距離的混合加權方式卻可以大大改善。

其中c爲當前B幀中宏塊或塊中抽樣值,cp爲前向參考圖像預測宏塊或塊中抽樣值,cs爲後向參考圖像預測宏塊或塊中抽樣值。

(2)多假設預測方式(multihypothesis mode)

多假設預測方式需要疊加由兩個運動矢量所預測兩個宏塊預測值。我們把每個塊預測值稱爲假設(hypotheses)。最後預測塊通過兩個假設的運動矢量得到的預測值平均後得到。多假設預測與雙向預測方式不同。雙向預測方式只允許前後向預測對線性組合而成。見圖8。而多假設預測方式取消這種限制,它可以一個方向上預測對來獲取最終的預測值。可以(前向,前向)或(後向,後向)進行預測。

當第一個假設來源於先前參考圖像而第二個假設來源於後向參考圖像時,多假設預測方式也可以成爲雙向預測方式。


H.264的技術優勢及其在H.323系統中的應用
--------------------------------------------------------------------------------

一、引言 
近年來,隨着我國通信網絡基礎設施的快速建設,視訊業務由於可以爲處於多點的與會者提供音視頻等多種信息,節省大量費用,提高工作效率,因而發展迅速,並有望成爲NGN的主要業務。視訊會議系統從產生至今,發展了多種適於各類通信網絡的系統,目前傳輸多媒體信息的主要有H.323、H.324和H.320等系統。IP技術的開放性特點使得它非常適合承載多種業務,隨着IP的安全和QoS等問題的逐步解決,以IP作爲承載網的優勢將更加明顯,下一代網絡也將採用IP技術作爲承載網技術。因此,本文以適用於在IP網上提供多媒體業務的H.323系統爲主進行闡述。H.264是由JVT爲實現視頻的更高壓縮比,更好的圖像質量和良好的網絡適應性而提出的新的視頻編解碼標準。事實證明,H.264編碼更加節省碼流,它內在的抗丟包、抗誤碼能力和良好網絡適應性使它非常適於IP傳輸,H.264有望成爲H.323系統中首選的視頻標準。 
H.323系統對視頻編解碼標準提出了以下三個主要要求: 
(1)一些IP網絡接入方式如xDSL可提供的帶寬有限,除去音頻、數據佔用的帶寬,傳輸視頻的可用帶寬就更少,這就要求視頻編解碼壓縮率高,這樣就可以在一定的比特率下具有更好的圖像質量。 
(2)抗丟包性能和抗誤碼性能好,適應各種網絡環境,包括丟包和誤碼嚴重的無線網絡。 
(3)網絡適應性好,便於視頻流在網絡中傳輸。 
二、H.264適於H.323系統的三個技術優勢 
H.264在制定時充分考慮了多媒體通信對視頻編解碼的各種要求,並借鑑了以往視頻標準的研究成果,因而具有明顯的優勢。以下將結合H.323系統對視頻編解碼技術的要求,闡述H.264的三個優勢。 
1. 壓縮率和圖像質量方面 
對傳統的幀內預測、幀間預測、變換編碼和熵編碼等算法的改進,使H.264的編碼效率和圖像質量在以往標準的基礎上進一步提高。 
(1)可變塊大小:幀間預測時可以靈活選擇塊的大小。在宏塊(MB)劃分上H.264採用了16×16,16×8,8×16,8×8四種模式;當劃分爲8×8模式時,又可進一步採用8×4、4×8、4×4三種子宏塊劃分模式進一步劃分,這樣可以使運動物體的劃分更加精確,減小預測誤差,提高編碼效率。幀內預測一般採取兩種亮度預測模式:Intra_4×4和Intra_16×16。Intra_4×4適合圖像中細節豐富的區域,而Intra_16×16模式更適合粗糙的圖像區域。 
(2)高精度運動估值:在H.264中亮度信號運動補償預測的精度是1/4像素。如果運動矢量指向參考圖像的整像素位置,預測值就是該位置上參考圖像像素的值;否則使用6階FIR濾波器的線性內插獲得1/2像素位置的預測值,通過取整數和1/2像素位置像素值均值的方式獲得1/4像素位置的值。顯然採用高精度運動估計會進一步減小幀間預測誤差。 
(3)多參考幀運動估值:每一個M×N亮度塊都要經過運動補償預測得到運動矢量和參考圖像索引,子宏塊中的每個子宏塊劃分都會有不同的運動矢量。選擇參考圖像過程是在子宏塊層次上進行的,因而一個子宏塊中的多個子宏塊劃分在預測時使用相同的參考圖像,而同一個slice的多個子宏塊之間選擇的參考圖像可以不同,這就是多參考幀運動估值。 
(4)參考圖像的選取更加靈活:參考圖像甚至可以是採用雙向預測編碼方式的圖像,這就允許選取與當前圖像更加匹配的圖像爲參考圖像進行預測,從而可以減小預測誤差。 
(5)加權預測:允許編碼器以一定的係數對運動補償預測值進行加權,從而在一定的場景下可以提高圖像質量。
(6)運動補償循環內的消除塊效應濾波器:爲消除在預測和變換過程中引入的塊效應,H.264也採用了消除塊效應濾波器,但不同的是H.264的消除塊效應濾波器位於運動估計循環內部,因而可以利用消除塊效應以後的圖像去預測其他圖像的運動,從而進一步提高預測精度。 
2. 抗丟包和抗誤碼方面 
參數集、片的使用、FMO、冗餘片等關鍵技術的使用可以大大提高系統的抗丟包和抗誤碼性能。 
(1)參數集:參數集及其靈活的傳送方式會大大降低因關鍵的頭信息丟失而造成錯誤發生的可能。爲保證參數集可靠地到達解碼器端,可以採用重發的方式多次發送同一參數集,或傳送多個參數集。 
(2)片(slice)的使用:圖像可以劃分成一個或幾個片。將圖像劃分爲多個片,當某一片不能正常解碼時的空間視覺影響就會大大降低,而且片還提供了重同步點。 
(3)PAFF和MBAFF:當對隔行掃描圖像進行編碼時,由於兩個場之間存在較大的掃描間隔,這樣,對運動圖像來說幀中相鄰兩行的空間相關性相對於逐行掃描時就會減小,這時對兩個場分別進行編碼會更節省碼流。對幀來說,存在三種可選的編碼方式,將兩場合並作爲一幀進行編碼或將兩場分別編碼或將兩場合並起來作爲一幀,但不同的是將幀中垂直相鄰的兩個宏塊合併爲宏塊對進行編碼。前兩種稱爲PAFF編碼,對運動區域進行編碼時場方式有效,非運動區域由於相鄰兩行有較大的相關性,因而幀方式會更有效。當圖像同時存在運動區域和非運動區域時,在MB層次上,對運動區域採取場方式,對非運動區域採取幀方式會更加有效,這種方式就稱爲MBAFF。 
(4)FMO:通過FMO可以進一步提高片的差錯恢復能力。通過片組(slice group)的使用,FMO改變了圖像劃分爲片和宏塊的方式。宏塊到片組的映射定義了宏塊屬於哪一個片組。利用FMO技術,H.264定義了七種宏塊掃描模式。圖1給出了其中一種模式的示例。 
如圖1所示,陰影部分宏塊屬於片組0,白色部分屬於片組1。假設片組0在傳輸過程中丟失,由於丟失宏塊的相鄰宏塊都屬於片組1,這樣差錯恢復工具就會有更多的可利用信息來恢復丟失片的數據。片組可以進一步劃分爲大小合適的片以適應網絡的MTU值。 
(1)幀內預測:H.264借鑑了以往視頻編解碼標準在幀內預測上的經驗,值得注意的是,在H.264中,IDR圖像可以使參考圖像緩存無效,之後的圖像在解碼時不再參考IDR圖像之前的圖像,因而IDR圖像具有很好的重同步作用。在一些丟包和誤碼嚴重的信道中,可以採取不定期傳送IDR圖像的方式進一步提高H.264的抗誤碼和抗丟包性能。 
(2)冗餘圖像:爲提高H.264的解碼器在發生數據丟失時的頑健性,可以採用傳送冗餘圖像的方式。當基本圖像丟失時,可以通過冗餘圖像重構原圖像。 
(3)數據劃分:由於運動矢量和宏塊類型等信息相對於其他信息具有更高的重要性,因而在H.264中引入了數據劃分的概念,將片中語義彼此相關的語法元素放在同一個劃分中。在H.264中有三類不同的數據劃分,三類數據劃分分開傳送,若第二類或第三類劃分的信息丟失,使用差錯恢復工具仍然可以通過第一類劃分中的信息對丟失信息進行適當恢復。 
(4)多參考幀運動估值:多參考幀運動估值不但可以提高編碼器的編碼效率,還可以提高差錯恢復能力。在H.323系統中,通過使用RTCP,當編碼器得知有參考圖像丟失時,可以選擇解碼器已經正確接收的圖像作爲參考圖像。 
(5)爲阻止錯誤在空間上的蔓延,解碼器端可以指定當P片或B片中的宏塊在做幀內預測時不使用相鄰的非幀內編碼宏塊作爲參考。 
3. 網絡適應性方面 
爲適應各種網絡環境和應用場合,H.264定義了視頻編碼層(VCL)和網絡提取層(NAL)。其中VCL功能是進行視頻編解碼,包括運動補償預測,變換編碼和熵編碼等功能;NAL用於採用適當的格式對VCL視頻數據進行封裝打包。H.264編解碼器的層結構如圖2所示。 
(1)NAL Units:視頻數據封裝在整數字節的NALU中,它的第一個字節標誌該單元中數據的類型。H.264定義了兩種封裝格式。基於包交換的網絡(如H.323系統)可以使用RTP封裝格式封裝NALU。而另外一些系統可能要求將NALU作爲順序比特流傳送,爲此H.264定義了一種比特流格式的傳輸機制,使用start_code_prefix將NALU封裝起來,從而確定NAL邊界。 
(2)參數集:以往視頻編解碼標準中GOB/GOP/圖像等頭信息是至關重要的,包含這些信息的包的丟失常導致與這些信息相關的圖像不能解碼。爲此H.264將這些很少變化並且對大量VCL NALU起作用的信息放在參數集中傳送。參數集分爲兩種,即序列參數集和圖像參數集。爲適應多種網絡環境,參數集可以帶內傳送,也可以採用帶外方式傳送。 
三、在H.323系統中實現H.264 
由於H.264是一種新的視頻編解碼標準,在H.323體系中應用H.264存在一些問題,比如如何在H.245能力協商過程中定義實體的H.264能力,因此必須對H.323標準進行必要的補充和修改。爲此,ITU-T制定了H.241標準。本文僅介紹與H.323相關的修改。 
首先,要規定如何在H.245能力協商過程中定義H.264能力。H.264能力集是一個包含一個或多個H.264能力的列表,每一個H.264能力都包含Profile和Level兩個必選參數和CustomMaxMBPS、CustomMaxFS等幾個可選參數。在H.264中,Profile用於定義生成比特流的編碼工具和算法,Level則是對一些關鍵的參數要求。H.264能力包含在GenericCapability結構中,其中CapabilityIdentifier的類型爲standard,值爲0.0.8.241.0.0.1,用於標識H.264能力。MaxBitRate用於定義最大比特率。Collapsing字段包含H.264能力參數。Collapsing字段第一個條目是Profile,ParameterIdentifier類型爲standard,值爲41,用於標識Profile,ParameterValue類型爲booleanArray,其值標識Profile,可以爲64、32或16,這三個值依次表示Baseline、Main和Extended三個Profile;Collapsing字段第二個條目是Level,ParameterIdentifier類型爲standard,值爲42,用於標識Level,ParameterValue類型爲unsignedMin,其值標識H.264 AnnexA中定義的15個可選的Level值。其他的幾個參數作爲可選項出現。 
其次,由於H.264中圖像的組織結構與傳統的標準不同,一些原有的H.245信令不在適用於H.264,如MiscellaneousCommand中的videoFastUpdateGOB等,因此H.241重新定義了幾個信令提供相應功能。 
最後,H.264的RTP封裝參考RFC 3550,載荷類型(PT)域未作規定。 
四、結束語 
作爲一種新的國際標準,H.264在編碼效率、圖像質量、網絡適應性和抗誤碼方面都取得了成功。但隨着終端和網絡的快速發展,對視頻編解碼的要求在不斷提高,因此H.264仍在繼續地完善和發展以適應新的要求。現在對H.264的研究主要集中在如何進一步降低編解碼時延、算法優化和進一步提高圖像質量上。目前,使用H.264進行編解碼的視頻會議系統越來越多,大多數做到了在Baseline Profile上的互通。隨着H.264自身的不斷完善和視頻通信的不斷普及,相信H.264的應用將越來越廣泛。



http://hi.baidu.com/komeworkroom/blog/item/5ff9e136f1e01e310a55a949.html

AVS標準簡介 
 
AVS是中國自主制定的音視頻編碼技術標準。AVS工作組成立於2002年6月,在短短的一年多時間內,審議了182個提案,先後採納了41項提案, AVS視頻部分於2003年12月定稿。AVS標準以當前國際上最先進的MPEG-4 AVC/ H.264框架爲起點,自主制定適合廣泛數字視頻應用的中國標準,其中強調自主知識產權,同時充分考慮實現難度。 
AVS與MPEG-4 AVC/ H.264標準的主要技術差異包括:8x8整數變換、量化、幀內預測、1/4精度像素插值、特殊的幀間預測運動補償、二維熵編碼、去塊效應環內濾波等。 
AVS採用整數8x8變換,它可以在16位處理器上無失配地實現,從而克服了MPEG-4 AVC/ H.264之前所有視頻壓縮編碼國際標準中採用的8x8 DCT變換存在失配的固有問題。而MPEG-4 AVC/ H.264所採用的4x4整數變換在高分辨率的視頻圖像上的去相關性能不及8x8的變換有效。AVS採用了64級量化,可以完全適應不同的應用和業務對碼率和質量的要求。目前AVS所採用的8x8變換與量化方案大大降低了芯片的實現難度(即可大大降低芯片功耗,這一點對移動類產品是十分寶貴的)。參照MPEG-4 AVC/ H.264幀內預測的思路,AVS採用幀內預測技術,用相鄰塊的像素預測當前塊,同時採用代表空間域紋理方向的多種預測模式。但AVS亮度和色度幀內預測都是以8x8塊爲單位的。亮度塊採用5種預測模式,色度塊採用4種預測模式,而這4種模式中又有3種和亮度塊的預測模式相同。在編碼質量相當的前提下,AVS採用較少的預測模式,使方案更加簡潔、實現的複雜度大爲降低。 
幀間運動補償編碼是混合編碼技術框架中最重要的部分之一。AVS標準採用了16×16,16×8,8×16和8×8的塊模式進行運動補償,而去除了MPEG-4 AVC/ H.264標準中的8×4,4×8,4×4的塊模式,目的是能更好地刻畫物體運動,提高運動搜索的準確性。實驗表明,對於高分辨率視頻,AVS選用的塊模式已經能足夠精細地表達物體的運動。較少的塊模式,能降低運動矢量和塊模式傳輸的開銷,從而提高壓縮效率、降低編解碼實現的複雜度。 
AVS和MPEG-4 AVC/ H.264都採用了1/4像素精度的運動補償技術。MPEG-4 AVC/ H.264採用6抽頭濾波器進行半像素插值並採用雙線性濾波器進行1/4像素插值。而AVS採用了不同的4抽頭濾波器進行半像素插值和1/4像素插值,在不降低性能的情況下減少插值所需要的參考像素點,減小了數據存取帶寬需求,這在高分辨率視頻壓縮應用中是非常有意義的。 
在傳統的視頻編碼標準(MPEG-x系列與H.26x系列)中,雙向預測幀B幀都只有一個前向參考幀與一個後向參考幀,而前向預測幀P 幀則只有一個前向參考幀。而新近的MPEG-4 AVC/ H.264充分地利用圖片之間的時域相關性,允許P幀和B幀有多個參考幀,最多可以有31個參考幀。多幀參考技術在提高壓縮效率的同時也將極大地增加存儲空間與數據存取的開銷。AVS中P幀可以利用至多2幀的前向參考幀,而B幀採用前後各一個參考幀,P幀與B幀(包括後向參考幀)的參考幀數相同,其參考幀存儲空間與數據存取的開銷並不比傳統視頻編碼的標準大,而恰恰是充分利用了必須預留的資源。 
AVS的B幀雙向預測使用了直接模式(direct mode)、對稱模式(symmetric mode)和跳躍模式(skip mode)。使用對稱模式時,碼流只需要傳送前向運動矢量,後向運動矢量可由前向運動矢量導出,從而節省後向運動矢量的編碼開銷。對於直接模式,前塊的前、後向運動矢量都是由後向參考圖像相應位置塊的運動矢量導出,無需傳輸運動矢量,因此也可以節省運動矢量的編碼開銷。跳躍模式的運動矢量導出方法和直接模式的相同,跳躍模式編碼塊的運動補償的殘差也均爲零,即該模式下宏塊只需要傳輸模式信號,而不需要傳輸運動矢量、補償殘差等附加信息。

AVS熵編碼採用自適應變長編碼技術。在AVS熵編碼過程中,所有的語法元素和殘差數據都是以指數哥倫布碼的形式映射成二進制比特流。採用指數哥倫布碼的優勢在於:一方面,它的硬件複雜度比較低,可以根據閉合公式解析碼字,無需查表;另一方面,它可以根據編碼元素的概率分佈靈活地確定以k階指數哥倫布碼編碼,如果k選得恰當,則編碼效率可以逼近信息熵。

對預測殘差的塊變換系數,經掃描形成(level、run)對串,level、run不是獨立事件,而存在着很強的相關性,在AVS中level、run採用二維聯合編碼,並根據當前level、run的不同概率分佈趨勢,自適應改變指數哥倫布碼的階數。 
AVS-視頻目前定義了一個檔次(profile)即基準檔次。該基準檔次又分爲4個級別(level),分別對應高清晰度與標準清晰度應用。與MPEG-4 AVC/ H.264的baseline profile相比,AVS-視頻增加了B幀、interlace等技術,因此其壓縮效率明顯提高,而與MPEG-4 AVC/ H.264的main profile相比,又減少了CABAC等實現難度大的技術。 
AVS標準的主要特點是應用目標明確,技術有針對性。因此在高分辨率應用中,其壓縮效率明顯比現在在數字電視、光存儲媒體中常用的MPEG-2視頻提高一個層次。在壓縮效率相當的前提下,又較MPEG-4 AVC/ H.264的 main profile的實現複雜度大爲降低。
目前的AVS視頻技術可實現標準清晰度(CCIR 601或相當清晰度)、低清晰度(CIF、SIF)等不同格式視頻的壓縮,但針對此類應用的壓縮效率還有待提高,這應當是AVS視頻下一步的工作重點。
二、AVS面臨的機遇與挑戰
數字音視頻編解碼標準是數字音視頻產業的基礎標準,在廣電、電信和消費類電子產品等領域具有巨大的產業需求。跨入新世紀以來,隨着編解碼技術本身的進步和芯片集成度和計算速度的迅速提高,數字音視頻編解碼技術標準面臨更新換代的歷史性機遇。在數字電視、高清晰度視盤、流媒體和多媒體通信這個即將來臨的產業大潮中,AVS 標準爲我國構建“技術-專利-標準-芯片與軟件-整機與系統製造-數字媒體網絡”的產業鏈提供了難得機遇。
中國數字音視頻產業的市場是非常龐大的,而在市場經濟的浪潮中,企業追求的是快速高效的市場佔有率和利潤。在MPEG-4 AVC/ H.264與AVS標準的選擇上,企業看中的是技術的成熟與可靠(實質上是成熟可靠的專用芯片及完整的系統解決方案)。AVS應當首先在這方面下功夫,以便在相關行業造成既成事實的行業標準,同時力爭將其納入國際標準。AVS產業聯盟首次籌備會的召開,意味着各企業將組織起來,把有限的資金通過分工合作的方式在AVS方面組成完整的產業鏈,使我國的音視頻產業少受制約。通過AVS產業聯盟,獲取國家更多的支持;同時通過聯盟的內部規則和約束手段,儘量規範市場、避免惡性競爭。
AVS工作組組長高文介紹說,2005年以前,是AVS的產業化推進期,AVS編解碼器軟件已經實現,在此基礎上,AVS衛星端到端直播系統已經在鑫諾衛星上試播成功。2005~2008年,是AVS的增長成熟期,從2005年開始,計劃AVS解碼器年部署量超過1000萬臺。2008~2015年,是AVS的平穩期,在此期間,AVS解碼設備年均產量將達到4000萬。

據估計,2004年到2012年,中國國內將會銷售4億臺數字電視機(含機頂盒)和激光視盤機,如按照MPEG-2每臺設備需要交2.5美元的專利使用費,我國相關企業將會需要付出近10億美元的代價。而加速推進AVS的產業化可以節省相當可觀的MPEG-2專利費,從技術上來看,如果利用MPEG-2技術傳送高清晰電視需佔20M帶寬,用AVS技術傳送同樣質量的節目只要8Mbit/s帶寬。如果利用現有MPEG-2技術,現有DVD盤片只能存二十幾分鐘的高清節目,而利用AVS技術,單張DVD盤片可放一部高清電影。AVS的產業化不僅可以節省相當可觀的專利費,還能節省信道資源和光盤存儲資源,爲我國數字電視等音視頻產業和相關芯片產業提供跨越發展的技術源頭,讓我國AV產業在競爭中直起腰桿。中國AVS工作組首席顧問、美國MPEG前視頻組組長CliffReader先生公開表示,中國AVS將是世界第一個高清DVD標準、第一個高效編碼高清數字電視標準。
AVS標準是一個極具戰略性的領域,它會影響到從多媒體數字信號編解碼器芯片和移動網絡到數字電視、高清晰度光盤和寬帶網絡應用程序等等重大關鍵數字音視頻前端系統與信息家電產業。AVS標準包括系統、視頻、音頻、數字版權管理等四個主要技術標準和一致性測試等支撐標準。最初的應用領域主要有兩個。首先是新一代EVD,也被稱作EVD2。這種光盤規格處理的是1080p格式視頻圖像。另一個就是中國的衛星電視。將用於中國計劃明年開通的衛星電視(DBS),有關將AVS用於3G移動通信系統的研究工作最近已經開始。

三、AVS的發展是一個系統工程
AVS標準的制定在整個產業鏈中是龍頭地位,可以帶動整個產業鏈的發展,標準化是爲了規範不同設備製造商的產品實現互通和兼容,是支持社會化大生產的一種重要機制。制定我國的AVS視頻標準,今後生產DVD、數字電視、手機、多媒體通信及視訊會議等新興音視頻產品的企業不用再因技術和專利使用費等受制於人。
我們要充分認識到一個標準的制定是否能取得預期的成功會受到很多因素的影響,它的發展是一項系統工程。現代市場經濟使得企業在做決策時非常實際,政府的干預只能在一定的限度內。只有當AVS標準及相關核心芯片和系統與當前MPEG-4 AVC/ H.264標準相比具備充分的優勢時,才能贏得衆多整機生產廠商的青睞。
AVS的發展速度始終是一個關鍵性因素,許多生產廠商決不願意做冒險嘗試,他們希望有成熟穩定的芯片和系統設計。一旦選定一項,很難再下決心重新選擇新的芯片和系統設計,除非能充分證明新系統有很好的性能穩定性,並能從中獲得極大的利潤空間。這就要求AVS標準在產業的發展初期就能迅速佔領儘可能大的市場份額,從而更好地促進AVS標準的發展。在“技術-專利-標準-芯片與軟件-整機與系統製造-數字媒體網絡”的產業鏈中,任何一個環節的變化都會影響到AVS標準的發展,應當把它看成是一項系統工程,抓好每個環節,統籌考慮,全面發展。


AVS-視頻技術概述
AVS是中國自主制定的音視頻編碼技術標準。AVS工作組成立於2002年6月,當年8月開始了第一次的工作會議。經過7次AVS正式工作會議和3次視頻組附加會議,經歷一年半的時間,審議了182個提案,先後採納了41項提案,2003年12月19日AVS視頻部分終於定稿!
當前,AVS視頻主要面向高清晰度電視、高密度光存儲媒體等應用中的視頻壓縮。
在2002年的最初幾次會議中,視頻組專家統一了以當前國際上最先進的MPEG-4 AVC/ H.264框架爲起點,自主制定適合既定應用的中國標準,其中強調自主知識產權,同時充分考慮實現複雜度。

 

一、AVS-視頻的核心技術

 

AVS-視頻當中具有特徵性的核心技術包括:8x8整數變換、量化、幀內預測、1/4精度像素插值、特殊的幀間預測運動補償、二維熵編碼、去塊效應環內濾波等。

 

1.變換量化

 

AVS的8x8變換與量化可以在16位處理器上無失配地實現,從而克服了MPEG-4 AVC/ H.264之前所有視頻壓縮編碼國際標準中採用的8x8 DCT變換存在失配的固有問題。而MPEG-4 AVC/ H.264所採用的4x4整數變換在高分辨率的視頻圖像上的去相關性能不及8x8的變換有效。AVS採用了64級量化,可以完全適應不同的應用和業務對碼率和質量的要求。在解決了16位實現的問題後,目前AVS所採用的8x8變換與量化方案,即適合於16位DSP或其他軟件方式的快速實現,也適合於ASIC的優化實現。

 

2.幀內預測

 

AVS的幀內預測技術沿襲了MPEG-4 AVC/ H.264幀內預測的思路,用相鄰塊的像素預測當前塊,採用代表空間域紋理方向的多種預測模式。但AVS亮度和色度幀內預測都是以8x8塊爲單位的。亮度塊採用5種預測模式,色度塊採用4種預測模式,而這4種模式中又有3種和亮度塊的預測模式相同。在編碼質量相當的前提下,AVS採用較少的預測模式,使方案更加簡潔、實現的複雜度大爲降低。

 

3.幀間預測

 

幀間運動補償編碼是混合編碼技術框架中最重要的部分之一。AVS標準採用了16×16,16×8,8×16和8×8的塊模式進行運動補償,而去除了MPEG-4 AVC/ H.264標準中的8×4,4×8,4×4的塊模式,目的是能更好地刻畫物體運動,提高運動搜索的準確性。實驗表明,對於高分辨率視頻,AVS選用的塊模式已經能足夠精細地表達物體的運動。較少的塊模式,能降低運動矢量和塊模式傳輸的開銷,從而提高壓縮效率、降低編解碼實現的複雜度。
AVS和MPEG-4 AVC/ H.264都採用了1/4像素精度的運動補償技術。MPEG-4 AVC/ H.264採用6抽頭濾波器進行半像素插值並採用雙線性濾波器進行1/4像素插值。而AVS採用了不同的4抽頭濾波器進行半像素插值和1/4像素插值,在不降低性能的情況下減少插值所需要的參考像素點,減小了數據存取帶寬需求,這在高分辨率視頻壓縮應用中是非常有意義的。
在傳統的視頻編碼標準(MPEG-x系列與H.26x系列)中,雙向預測幀B幀都只有一個前向參考幀與一個後向參考幀,而前向預測幀P 幀則只有一個前向參考幀。而新近的MPEG-4 AVC/ H.264充分地利用圖片之間的時域相關性,允許P幀和B幀有多個參考幀,最多可以有31個參考幀。多幀參考技術在提高壓縮效率的同時也將極大地增加存儲空間與數據存取的開銷。AVS中P幀可以利用至多2幀的前向參考幀,而B幀採用前後各一個參考幀,P幀與B幀(包括後向參考幀)的參考幀數相同,其參考幀存儲空間與數據存取的開銷並不比傳統視頻編碼的標準大,而恰恰是充分利用了必須預留的資源。
AVS的B幀的雙向預測使用了直接模式(direct mode)、對稱模式(symmetric mode)和跳過模式(skip mode)。使用對稱模式時,碼流只需要傳送前向運動矢量,後向運動矢量可由前向運動矢量導出,從而節省後向運動矢量的編碼開銷。對於直接模式,當前塊的前、後向運動矢量都是由後向參考圖像相應位置塊的運動矢量導出,無需傳輸運動矢量,因此也可以節省運動矢量的編碼開銷。跳過模式的運動矢量的導出方法和直接模式的相同,跳過模式編碼的塊其運動補償的殘差也均爲零,即該模式下宏塊只需要傳輸模式信號,而不需要傳輸運動矢量、補償殘差等附加信息。

 

4.熵編碼

 

AVS熵編碼採用自適應變長編碼技術。
在AVS熵編碼過程中,所有的語法元素和殘差數據都是以指數哥倫布碼的形式映射成二進制比特流。採用指數哥倫布碼的優勢在於:一方面,它的硬件複雜度比較低,可以根據閉合公式解析碼字,無需查表;另一方面,它可以根據編碼元素的概率分佈靈活地確定以k階指數哥倫布碼編碼,如果k選得恰當,則編碼效率可以逼近信息熵。
對預測殘差的塊變換系數,經掃描形成(level、run)對串,level、run不是獨立事件,而存在着很強的相關性,在AVS中level、run採用二維聯合編碼,並根據當前level、run的不同概率分佈趨勢,自適應改變指數哥倫布碼的階數。

 

二、AVS-視頻目前的性能與應用

 

AVS-視頻目前定義了一個檔次(profile)即基準檔次。該基準檔次又分爲4個級別(level),分別對應高清晰度與標準清晰度應用。
與MPEG-4 AVC/ H.264的baseline profile相比,AVS-視頻增加了B幀、interlace等技術,因此其壓縮效率明顯提高,而與MPEG-4 AVC/ H.264的main profile相比,又減少了CABAC等實現難度大的技術,從而增強了可實現性。
AVS-視頻的主要特點是應用目標明確,技術有針對性。因此在高分辨率應用中,其壓縮效率明顯比現在在數字電視、光存儲媒體中常用的MPEG-2視頻提高一個層次。在壓縮效率相當的前提下,又較MPEG-4 AVC/ H.264的 main profile的實現複雜度大爲降低。圖1爲一個高清晰度視頻序列(1280 x 720、60p)的壓縮實例。其中AVS採用參考軟件RM5.0,H.264 baseline和 main profile 均採用JM6.1e。除H.264 baseline幀類型設置爲IPPP…外,AVS、H.264 main profile、MPEG-2 幀類型均設置爲IBBPBBP…的格式,每隔0.5s出現1個I幀。
目前的AVS-視頻技術可實現標準清晰度(CCIR 601或相當清晰度)、低清晰度(CIF、SIF)等不同格式視頻的壓縮,但針對此類應用的壓縮效率還有待提高,這應當是AVS-視頻下一步的工作重點。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章