標籤:
1.電視映像的資料率
1.1 ITU-R BT.601標準資料率
按照奈奎斯特(Nyquist)採樣理論,類比電視訊號經過採樣(把連續的時間訊號變成離散的時間訊號)和量化 (把連續的幅度變成離散的幅度訊號)之後,數字電視訊號的資料量大得驚人,當前的儲存空間和網路都還沒有足夠的能力支援這種資料轉送率,因此就要對數字電視訊號進行壓縮。為了在PAL、NTSC和SECAM彩色電視制之間確定一個共同的數字化參數,早在1982年國際無線電諮詢委員會 (CCIR)就制定了演播室品質的數字電視編碼通訊協定,這就是非常有名的ITU-R BT.601標準。按照這個標準,使用4:2:2的採樣格式,亮度訊號Y的採樣頻率選擇為13.5 MHz/s,而色差訊號Cr和Cb的採樣頻率選擇為6.75 MHz/s,在傳輸數字電視訊號通道上的資料轉送率就達到為270 Mb/s(兆位元/秒)
亮度(Y):
858樣本/行×525行/幀×30幀/秒×10位元/樣本 ≌ 13.5兆位元/秒(NTSC)
864樣本/行×625行/幀×25幀/秒×10位元/樣本 ≌ 13.5兆位元/秒(PAL)
Cr (R-Y):
429樣本/行×525行/幀×30幀/秒×10位元/樣本 ≌ 6.8兆位元/秒(NTSC)
429樣本/行×625行/幀×25幀/秒×10位元/樣本 ≌ 6.8兆位元/秒(PAL)
Cb (B-Y):
429樣本/行×525行/幀×30幀/秒×10位元/樣本 ≌ 6.8兆位元/秒(NTSC)
429樣本/行×625行/幀×25幀/秒×10位元/樣本 ≌ 6.8兆位元/秒(PAL)
總計:
27兆樣本/秒×10位元/樣本 = 270兆位元/秒
實際上,在熒光屏上顯示出來的有效映像的資料轉送率並沒有那麼高,
亮度(Y): 720×480×30×10 ≌ 104 Mb/s (NTSC)
720×576×25×10 ≌ 104 Mb/s (PAL)
色差(Cr,Cb):2×360×480×30×10 ≌ 104 Mb/s (NTSC)
2×360×576×25×10 ≌ 104 Mb/s (PAL)
總計: ~ 207 Mb/s
如果每個樣本的採樣精度由10位元降為8位元,彩色數字電視訊號的資料轉送率就降為166 Mb/s。
2. 資料壓縮演算法
電視映像本身在時間上和空間上都含有許多冗餘資訊,映像自身的構造也有冗餘性。此外,正如前面所介紹的,利用人的視覺特性也可對映像進行壓縮,這叫做視覺冗餘。
電視映像壓縮利用的各種冗餘資訊
種類 |
內容 |
目前用的主要方法 |
統計 |
空間冗餘 |
像素間的相關性 |
變換編碼,預測性編碼 |
特性 |
時間冗餘 |
時間方向上的相關性 |
幀間預測,移動補償 |
映像構造冗餘 |
映像本身的構造 |
輪廓編碼,地區分割 |
知識冗餘 |
收發兩端對人物的共有認識 |
基於知識的編碼 |
視覺冗餘 |
人的視覺特性 |
非線性量化,位分配 |
其他 |
不確定性因素 |
|
MPEG-Video映像壓縮技術基本方法和方法可以歸納成兩個要點:
① 在空間方向上,映像資料壓縮採用JPEG(Joint Photographic Experts Group)壓縮演算法來去掉冗餘資訊。
② 在時間方向上,映像資料壓縮採用移動補償(motion compensation)演算法來去掉冗餘資訊。
為了在保證映像品質基本不降低而又能夠獲得高的壓縮比,MPEG專家組定義了三種映像:幀內映像I(intra),預測映像P(predicted)和雙向預測映像B(bidirectionally interpolated ),這三種圖像將採用三種不同的演算法進行壓縮。
MPEG專家組定義的三種映像
補充:
視頻壓縮中,每幀代表一幅靜止的映像。而在實際壓縮時,會採取各種演算法減少資料的容量,其中IPB就是最常見的。簡單地說,I幀是主要畫面格,屬於幀內壓縮。就是和AVI的壓縮是一樣的。 P是向前搜尋的意思。B是雙向搜尋。他們都是基於I幀來壓縮資料。I幀表示主要畫面格,你可以理解為這一幀畫面的完整保留;解碼時只需要本幀資料就可以完成(因為包含完整畫面)。P幀表示的是這一幀跟之前的一個主要畫面格(或P幀)的差別,解碼時需要用之前緩衝的畫面疊加上本幀定義的差別,產生最終畫面。(也就是差別幀,P幀沒有完整畫面資料,只有與前一幀的畫面差別的資料)。B幀是雙向差別幀,也就是B幀記錄的是本幀與前後幀的差別(具體比較複雜,有4種情況),換言之,要解碼B幀,不僅要取得之前的緩衝畫面,還要解碼之後的畫面,通過前後畫面的與本幀資料的疊加取得最終的畫面。B幀壓縮率高,但是解碼時CPU會比較累~。
從上面的解釋看,我們知道I和P的解碼演算法比較簡單,資源佔用也比較少,I只要自己完成就行了,P呢,也只需要解碼器把前一個畫面緩衝一下,遇到P時就使用之前緩衝的畫面就好了,如果視頻流只有I和P,解碼器可以不管後面的資料,邊讀邊解碼,線性前進,大家很舒服。但網路上的電影很多都採用了B幀,因為B幀記錄的是前後幀的差別,比P幀能節約更多的空間,但這樣一來,檔案小了,解碼器就麻煩了,因為在解碼時,不僅要用之前緩衝的畫面,還要知道下一個I或者P的畫面(也就是說要預讀預解碼),而且,B幀不能簡單地丟掉,因為B幀其實也包含了畫面資訊,如果簡單丟掉,並用之前的畫面簡單重複,就會造成畫面卡(其實就是丟幀了),並且由於網路上的電影為了節約空間,往往使用相當多的B幀,B幀用的多,對不支援B幀的播放器就造成更大的困擾,畫面也就越卡。一般平均來說,I的壓縮率是7(跟JPG差不多),P是20,B可以達到50,可見使用B幀能節省大量空間,節省出來的空間可以用來儲存多一些I幀,這樣在相同碼率下,可以提供更好的畫質。
2.1.幀內映像I的壓縮編碼演算法
如果電視映像是用RGB空間表示的,則首先把它轉換成YCrCb空間表示的映像。每個映像平面分成8×8的圖塊,對每個圖塊進行離散餘弦變換 DCT(discrete Cosine Transform)。DCT變換後經過量化的交流分量係數按照Zig-zag的形狀排序,然後再使用無損壓縮技術進行編碼。DCT變換後經過量化的直流分量係數用差分脈衝編碼DPCM(DifferentialPulse Code Modulation),交流分量係數用行程長度編碼RLE(run-length encoding),然後再用霍夫曼(Huffman)編碼或者用算術編碼。
2.2.預測映像P的壓縮編碼演算法
預測映像的編碼也是以映像宏塊(macroblock)為基本編碼單元,一個宏塊定義為I×J像素的映像塊,一般取16×16。預測映像P使用兩種類型的參數來表示:一種參數是當前要編碼的映像宏塊與參考映像的宏塊之間的差值,另一種參數是宏塊的移動向量。假設編碼映像宏塊MPI是參考映像宏塊MRJ的首選塊,它們的差值就是這兩個宏塊中相應像素值之差。對所求得的差值進行彩色空間轉換,並作4:1:1的子採樣得到Y,Cr和Cb分量值,然後仿照JPEG壓縮演算法對差值進行編碼,計算出的移動向量也要進行霍夫曼編碼。
2.3.雙向預測映像B的壓縮編碼演算法
2.4.映像結構
MPEG 編碼器演算法允許選擇I映像的頻率和位置。I映像的頻率是指每秒鐘出現I映像的次數,位置是指時間方向上幀所在的位置。一般情況下,I映像的頻率為2。 MPEG編碼器也允許在一對I映像或者P映像之間選擇B映像的數目。I映像、P映像和B映像數目的選擇依據主要是根節目的內容。例如,對於快速運動的映像,I映像的頻率可以選擇高一些,B映像的數目可以選擇少一點;對於滿速運動的映像I映像的頻率可以低一點,而B映像的數目可以選擇多一點。此外,在實際應用中還要考慮媒體的速率。
一個典型的I、P、B映像安排。編碼參數為:幀內映像I的距離為N=15,預測映像(P)的距離為M=3。
MPEG電視幀編排
I、P和B映像壓縮後的大小如表所示,單位為位元。從表中可以看到,I幀映像的資料量最大,而B幀映像的資料量最小。
MPEG三種映像的壓縮後的典型值(位元)
映像類型 |
I |
P |
B |
平均資料/幀 |
MPEG-1 CIF 格式(1.15 Mb/s) |
150 000 |
50 000 |
20 000 |
38 000 |
MPEG-2 601 格式(4.00 Mb/s) |
400 000 |
200 000 |
80 000 |
130 000 |
流媒體 6——MPEG電視