天天看點

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

原文轉載自: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,通過音軌的方式将聲音記錄在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光牒刻錄機,使用支援音樂CD刻錄的刻盤軟體,如AudioWriter。

       6.VFQ格式檔案制作,使用VQnvert工具軟體。

       7.WMA格式檔案制作,使用Audio Convert2.0工具軟體。

二視訊(Video) :

  日常生活中我們接觸的VCD、多媒體CDCD光牒中的動畫等都是視訊檔案。視訊檔案不僅包含了大量圖像資訊,還容納了大量音頻資訊。

視訊格式:

    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相當。它可以通過網際網路互相傳輸,還可以報存在一張CDCD光牒(650MB)上。

  DXN的野心:

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

  很可惜的是想DivX這麼好的電影隻能在電腦上播放,目前還沒有一款播放機能夠播放這樣的CD光牒。日前,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的産業化不僅可以節省相當可觀的專利費,還能節省信道資源和CD光牒存儲資源,為我國數字電視等音視訊産業和相關晶片産業提供跨越發展的技術源頭,讓我國AV産業在競争中直起腰杆。中國AVS工作組首席顧問、美國MPEG前視訊組組長CliffReader先生公開表示,中國AVS将是世界第一個高清DVD标準、第一個高效編碼高清數字電視标準。

AVS标準是一個極具戰略性的領域,它會影響到從多媒體數字信号編解碼器晶片和移動網絡到數字電視、高清晰度CD光牒和寬帶網絡應用程式等等重大關鍵數字音視訊前端系統與資訊家電産業。AVS标準包括系統、視訊、音頻、數字版權管理等四個主要技術标準和一緻性測試等支撐标準。最初的應用領域主要有兩個。首先是新一代EVD,也被稱作EVD2。這種CD光牒規格處理的是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-視訊下一步的工作重點。

繼續閱讀