【正文】
運動,這時只需估計其整體的運動就可以了。 塊匹配算法:對每個編碼幀宏塊中的 16 16亮度塊 , 在參考幀中一定搜索范圍內 , 搜索與它最相似的亮度塊 —— 匹配塊 , 并根據(jù)匹配塊與它的坐標差 , 確定運動矢量 。 像塊匹配程度的判定常采用平均絕對差準則 ( MAD, Mean Absolute Difference) , 即在搜索范圍內按下式求幀間像素塊亮度差的絕對值的平均值 。 1 6 1 61111( , ) ( , ) ( , )256 kkmnM A D i j f m i n j f m n???? ? ? ???當 MAD(i,j)達到最小時 , 兩個像素塊匹配 。 此時運動矢量為 MV( i,j) 。 這種搜索方法稱為全搜索 , 運算量相當大 。 為加快搜索過程 , 提出了三步法 、共軛方向法 、 正交搜索法等 , 但效果不如全搜索 , 全搜索仍然是通用的方法 。 。 M i M N j N? ? ? ? ? ?Hunan University of Technology MPEG2中運動補償?shù)木仁前胂袼?, ,都需要在參考幀中根據(jù)已知整像素值 , 用線性內插的方法得到半像素和四分之一像素值以后 , 再進行塊匹配計算 。 Hunan University of Technology Hunan University of Technology ? B幀圖像的幀間預測編碼 預測值是其前面參考幀的前向預測值與其后面參考幀的后向預測值的平均值 ——雙向預測。 在進行運動補償時,需要前向和后向兩個運動矢量。 圖 49 在圖像序列中, P幀和 B幀傳送的是像素值與預測值的差值和每個宏塊的運動矢量。考慮到鄰近宏塊間運動矢量存在相關性,對運動矢量也采用預測編碼。 ? 幀間預測模式 為了既能處理逐行掃描圖像,又能處理隔行掃描圖像, 數(shù)字電視的幀間預測編碼主要有兩類:幀預測和場預測。 ? 幀預測:預測來自于最近的重構參考圖像。 R e fe r e nc e F r a m eP os s i bl e I nt e r ve ni ng B p i c t ur e s ( N o t ye t d e c ode d )R e f e r e nc e F r a m eP os s i bl e I nt e r ve ni n g B p i c t ur e s ( N o t ye t d e c ode d )R e f e r e nc e F r a m eP os s i bl e I nt e r ve ni n g B p i c t ur e s ( A l r e a dy d e c ode d )P幀預測示意 B幀預測示意 ? P場預測:預測來自于最近的重構參考圖像。 編碼幀中第一場圖像的預測 T o p R e f e r e n c e F i e l dB o t t o m R e f e r e n c e F i e l dP o s s i b l e I n t e r v e n i n g B p i c t u r e s ( N o t y e t d e c o d e d )T o p R e f e r e n c e F i e l dB o t t o m R e f e r e n c e F i e l dP o s s i b l e I n t e r v e n i n g B p i c t u r e s ( N o t y e t d e c o d e d )編碼幀中第二場圖像為底場的預測 ? B場預測:用于預測的兩個參考場來自于最近的解碼參考頂場和底場。 編碼幀中第二場圖像為頂場的預測 T o p R e f e r e n c e F i e l dB o t t o m R e f e r e n c e F i e l dP o s s i b l e I n t e r v e n i n g B p i c t u r e s ( N o t y e t d e c o d e d )T op R e f e r e nc e F i e l dB ot t om R e f e r e nc e F i e l dP os s i bl e I nt e r ve ni ng B p i c t ur e s ( N o t ye t d e c od e d )P os s i bl e I nt e r ve ni ng B p i c t ur e s ( A l r e a dy d e c od e d )T op R e f e r e nc e F i e l dB ot t om R e f e r e nc e F i e l dB場圖像或 B幀圖像的預測 變換編碼原理 ? 變換編碼是為了將圖像數(shù)據(jù)或運動補償殘差數(shù)據(jù)轉換到變換域,以去除空間相關性,對變換后的系數(shù)編碼,達到數(shù)據(jù)壓縮的目的。 變換編碼系統(tǒng)基本結構 離散余弦變換 (DCT, Discrete Cosine Transform) 考慮到空間相關性只在一定范圍內存在,變換是以塊為單位進行的,采用 8 8塊。 設由 8 8像素組成的像素塊用矩陣 X表示,變換后的系數(shù)塊用矩陣 Y表示,則: 正向 DCT 反 DCT 其中 C表示 8 8的 DCT矩陣, CT是其轉置矩陣 TTY CX CX C Y C??18( 2 1 )12 160 , 0 7c os 1 7, 0 7ij ijijCij??? ? ???? ?? ? ? ???TTC C C C I?? C滿足正交矩陣性質 右圖為 8 8DCT基本圖像 。 任何 8 8圖像塊都可以用基本圖像與變換系數(shù)乘積的組合來表示 。 DCT系數(shù)矩陣左上角系數(shù) y00對應空間直流分量 , 稱為 DC系數(shù) , 其他 63個對應交流分量 ,稱為 AC系數(shù) 。 Hunan University of Technology ? 經過 DCT變換后, 64個樣值仍然得到 64個系數(shù)。原樣值是 9比特,數(shù)據(jù)從 0~ 511;得到的直流系數(shù)的范圍是 0~ 4095,交流系數(shù)的范圍是 2048~ 2047;量化之后大多數(shù)高頻分量的系數(shù)變?yōu)?0。人眼對低頻分量比較敏感,對高頻分量則不太敏感;因而量化的結果是去掉了不太重要的高頻分量,降低了碼率。 ? I幀:系數(shù)矩陣左上角部位的系數(shù)對應空間低頻分量,采用較小的量化間隔,位于右下角部位的系數(shù)采用較大的量化間隔。 ? P幀和 B幀:是對幀間預測差值的變換, DCT系數(shù)不僅僅決定于空間頻率,故采用相同的量化間隔。 DCT系數(shù)的量化 8 16 19 22 26 27 29 34 16 16 22 24 27 29 34 37 19 22 26 27 29 34 34 38 22 22 26 27 29 34 37 40 22 26 27 29 32 35 40 48 26 27 29 32 35 40 48 58 26 27 29 34 38 46 56 69 27 29 35 38 46 56 69 83 Hunan University of Technology 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 對于 I幀的亮度和色度的量化加權矩陣 對于 P幀和 B幀的亮度和色度的量化加權矩陣 ? 對自然景物圖像的統(tǒng)計表明 , DCT系數(shù)矩陣的能量集中在反映水平和垂直低頻分量的左上角 。 圖 ? 游程編碼的方法是將掃描得到的一維序列轉化為一個由二元數(shù)組 (run,level)組成的數(shù)組序列 , 其中 run表示連零的長度 , level表示緊接在這串連零之后出現(xiàn)的非零值 。 當剩 下 的 所 有 系 數(shù) 都 為 零 時 , 用符號EOB(End of Block)來代表 。 游程編碼 (RLC, Run Length Coding) 幀圖像的 DCT系數(shù)分布(按非零系數(shù)可能性畫圖) 場圖像的 DCT系數(shù)分布(對照幀圖像,左側有更多的非零系數(shù),這是由于場圖像在垂直方向有更強的高頻分量) 對應這兩種圖像結構,規(guī)定了兩種掃描方式, Zigzag掃描與交替掃描。 Hunan University of Technology 經 DCT變換以后,系數(shù)大多數(shù)集中在左上角,即低頻分量區(qū),因此按 Zigzag掃描讀出實際上是按二維頻率的高低順序讀出系數(shù)的。掃描后出現(xiàn)連零的機會比較多,特別到最后,如果都是零,在讀到最后一個數(shù)后,只要給出“塊結束”( EOB)碼,就可以結束輸出,因此節(jié)省了很多碼率。 如圖 Hunan University of Technology 熵編碼原理 ? 熵編碼 ( Entropy Coding) 是一類無損編碼 ,編碼后的平均碼長接近信源的熵 。 – 霍夫曼 (Huffman)編碼:變長編碼 , 對出現(xiàn)概率大的信源符號分配較短的碼字 , 對出現(xiàn)概率小的信源符號分配較長的碼字 , 以獲得較短的平均碼長 。 – 運動矢量的熵編碼:對運動矢量的水平和垂直方向差值進行熵編碼 。 – DCT系數(shù)的熵編碼 MPEG2視頻編碼器和解碼器 Hunan University of Technology ? MPEG2視頻編碼器 V a r i a bl e L e n g t h D e c odi ngInv e rs e Q u a nt i s a t i o nInv e rs e S c a nM o t i on Co m p e n s a t i onInv e rs e D C TF ra m e s