當前位置:成語大全網 - 書法字典 - 關於文件高壓縮率的問題

關於文件高壓縮率的問題

很簡單。MPEG=運動圖像專家組的縮寫。從1990年7月到1994年6月,在國際標準化組織(ISO)和國際電工委員會(IEC)的聯合技術委員會(JTC)中,壹群老人經過枯燥而漫長的技術討論,制定了本標準。ISO是授權發布的,因此它已被業界視為全球公認的行業標準。

MPEG可以完成視頻和音頻的壓縮。當然,我們這裏只談視頻壓縮。

事實上,壓縮應該做的是消除消息源的三重冗余。包括空間冗余、時間(動態)冗余和結構(靜態)冗余。

同壹幀信息源圖像中相鄰像素的幅值相近,即同壹行中相鄰像素的幅值相近,相鄰行之間同壹位置像素的幅值相近。這被稱為圖像的空間冗余;

源圖像相鄰兩幀相同位置像素的幅值相近,反映了源圖像的時間(動態)冗余。

源圖像的每個像素中使用的位數表示位結構,使用次數較多的位數是冗余的,這反映了靜態(結構)冗余。

MPEG如何消除這些冗余?它主要從兩個方面出發:

1.利用圖像信號的統計特性進行壓縮。

那就是:

通過運動補償(MC)消除時間冗余。

離散余弦變換(DCT)和遊程編碼(RLC)用於消除空間冗余。

可變長度編碼(VLC)用於消除靜態冗余。

後面我會講這三種計算的具體實現。現在妳只需要明白它們並不太復雜,至少不像它們的名字那樣令人生畏。

2.利用人類視覺生理特性設計壓縮。

人眼對不同頻率成分和物體不同運動程度的敏感度不同,這是由人眼的視覺生理特性決定的。例如,人的眼睛含有654.38+0.8億個對亮度敏感的柱狀細胞和0.08億個對顏色敏感的脊椎細胞。由於柱狀細胞的數量遠大於脊椎細胞,因此眼睛對亮度的敏感度大於對顏色的敏感度。因此,可以控制圖像以符合人眼的視覺特性,從而達到壓縮圖像數據的目的。例如,人眼對低頻信號比對高頻信號更敏感,因此高頻信號可以用更少的比特來表示;人眼對靜態物體比對動態物體更敏感,這可以減少表示動態物體的比特數;人眼對亮度信號的敏感度大於對色度信號的敏感度,並且可以在行和幀方向上減少表示色度信號的位數。人眼對圖像的中心信息比對圖像的邊緣信息更敏感,因此可以給邊緣信息分配較少的比特;人眼對圖像的水平和垂直信息敏感,這可以減少表示傾斜信息的高頻分量的比特數。在實際工作中,由於眼睛對亮度和色度的敏感度不同,可以分別對待。(這段話引自北京廣播學院電視工程2003年教材)

因此,我們將單位分量RGB更改為YUV(或YCrCb)全局分量,並在編碼時強調亮度信息,但我們可以刪除壹些色度信息,例如4:4:4到4:2:2,這意味著更改視頻的位結構。被去除的是所謂的靜態冗余。

引用教學部分提到的方法去除結構的冗余信息(RGB-》;YUV),可以實現適度壓縮。去除結構冗余對圖像質量沒有影響,因此可以稱為“無損壓縮”。但是無損壓縮的壓縮比不高,壓縮能力有限。為了提高壓縮率,MPEG標準采用了對圖像質量有害的“有損壓縮”技術,即去除上述時間和空間的冗余。這些都是要付出代價的——但這個賬戶非常劃算。

我們來詳細說說上面的算法~妳可能需要壹點離散數學/高等數學的基礎才能更好地理解它們,但如果妳不是很理解它們也沒關系,妳只需要理解這些過程所扮演的角色即可~

首先是運動補償預測。這似乎是這裏的ccf成員最熟悉的部分。我應該更仔細地描述它,因為有許多人知道它。

什麽是運動補償?運動補償過程是根據所獲得的運動矢量來移動前壹圖像幀的相應宏塊。為了壓縮視頻信號的時間冗余,MPEG采用了運動補償預測。

運動補償預測假設可以通過以某個提前時間(pre)平移圖像來局部預測當前圖像。這裏的局部是指位移的幅度和方向在圖片中的任何地方都可以不同。運動估計的結果用於運動補償,以便盡可能減小預測誤差。運動估計包括壹組從視頻序列中提取運動信息的技術,並且該技術和經處理的圖像序列的特性決定了運動補償的性能。

所謂預測實際上是從先前的(n-1)圖像幀中導出當前(n)幀中考慮的像素的預測值,然後通過運動矢量編碼傳輸第n幀的實際像素值與其預測值之間的差值。例如,假設宏塊(MB)是M×N的矩形塊,並將(n-1)幀的宏塊與N幀的宏塊進行比較。這實際上是宏塊匹配的運動補償過程,即將N幀中16×16像素的宏塊與n-1幀中定義搜索區域(SR)的所有16×16像素的宏塊進行比較。該過程試圖確定運動在n-1幀的MB到N幀中的位置。如果n-1幀的圖像亮度信號為f【n -1(I,j)】,則N幀的圖像亮度信號為f【N(I,j)】,其中(I,j)是N幀的M×N個宏塊的任意位置,N幀中的壹個M×N宏塊被視為從N開始的壹個宏塊。這樣,通過在N-1幀的有限搜索區域(SR)中進行搜索,總能搜索到某個宏塊 從而最小化N幀中宏塊與待匹配宏塊之間的差值的絕對值,並獲得運動矢量的運動數據,在n-1幀和運動數據的控制下獲得N幀的相應預測值。 這樣做直到N幀的M×N宏塊的任何位置(I,j)的所有像素都被n-1幀的像素預測。眾所周知,不僅像N和n-1這樣的兩個相鄰幀可以進行MCP,而且實際上MPEG-1和MPEG-2可以基於當前幀之前的幾個幀之壹進行MCP。

為了提高預測效果,可以采用現場預測。這在絲滑薩馬的《聖經》中有明確說明。

需要註意的是,MPEG定義了基於幀、場和雙場的圖像預測,還定義了16×8的運動補償。

對於逐行掃描,可以使用基於幀的圖像預測;隔行掃描模式,基於場的圖像預測也可以使用。因此,MPEG-2編碼器應該首先判斷每個圖像是幀模式壓縮還是場模式壓縮。在隔行掃描模式下:在運動較少的場景中,采用基於幀的圖像預測,因為基於幀的圖像的相鄰兩行之間幾乎沒有位移,並且幀中相鄰行之間的相關性比場中的相關性更強,從整個幀中去除的空間冗余比從單個場中去除的要多得多;在劇烈運動的場景中,采用基於場的圖像預測。由於基於幀的相鄰兩行之間存在1場延遲時間,因此相鄰行之間的像素位移較大,幀中相鄰兩行之間的相關性將大大降低。基於場的圖像中相鄰兩行之間的相關性比幀中相鄰行之間的相關性更強。在1幀中,場間運動中有許多高頻分量(絲滑強調),從場中去除的高頻分量比從整個幀中去除的高頻分量多。從上面可以看出,在基於幀的圖像預測和基於場的圖像預測之間進行選擇的關鍵是線相關性。因此,在DCT之前,應選擇幀DCT編碼或場DCT編碼,並使用對原始圖像或亮度16×16進行運動補償後獲得的差值來計算幀中相鄰行與場中相鄰行之間的相關系數。如果幀中相鄰行之間的相關系數大於場中相鄰行之間的相關系數,則選擇幀DCT編碼,否則選擇場DCT編碼。

MPEG采用20世紀70年代Ahmed(壹位偉大的數學家)等人提出的DCT-離散余弦變換壓縮算法來減少視頻信號的空間冗余。

DCT將運動補償誤差或原始圖像信息塊轉換為表示不同頻率分量的系數集,它有兩個優點:第壹,信號通常將其大部分能量集中在頻域的1個小範圍內,因此只需要幾個比特來描述不重要的分量;其次,頻域分解映射了人類視覺系統的處理過程,並允許後續的量化過程滿足其靈敏度要求。

這壹點在我手頭的教程中有詳細描述,所以讓我直接引用:

視頻信號的譜線在0-6MHz範圍內,1幅視頻圖像中大部分是低頻譜線,只有圖像面積比例較低的圖像邊緣的視頻信號含有高頻譜線。因此,在視頻信號的數字處理中,可以根據頻譜因子分配比特數:可以將更多的比特分配給信息量大的低頻區域,將較少的比特分配給信息量小的高頻區域,而不會對圖像質量造成可察覺的損害,從而達到碼率壓縮的目的。然而,所有這些只能在熵值較低的情況下實現有效編碼。壹串數據能否被有效編碼取決於每個數據的概率。每個數據出現概率的巨大差異表明熵值較低,並且數據串可以被有效編碼。另壹方面,如果概率差小並且熵值高,則不能進行有效編碼。視頻信號的數字化由A/D轉換器以指定的采樣頻率從視頻電平轉換而來,並且每個像素的視頻信號的幅度隨每層的時間周期性地變化。每個像素的平均信息之和就是總的平均信息,也就是熵值。由於每個視頻級別具有幾乎相等的概率,因此視頻信號的熵值非常高。熵值是定義壓縮率的參數。視頻圖像的壓縮比取決於視頻信號的熵值。在大多數情況下,視頻信號具有高熵值。為了高效編碼,需要將高熵值變為低熵值。如何成為低熵值?有必要分析視頻頻譜的特性。在大多數情況下,視頻頻譜的幅度隨著頻率的增加而減小。其中低頻頻譜以幾乎相等的概率獲得從0到最高的電平。相比之下,高頻譜通常得到低電平和罕見的高電平。顯然,低頻頻譜具有較高的熵值,而高頻頻譜具有較低的熵值。因此,可以分別處理視頻的低頻分量和高頻分量以獲得高頻壓縮值。

從上面的引文中可以看出,碼率壓縮基於兩種算法:變換編碼和熵編碼。前者用於降低熵值,後者將數據轉化為壹種有效的編碼方法,可以減少位數。在MPEG標準中,DCT用於變換編碼。雖然變換過程本身不會產生速率壓縮,但變換後的頻率系數對速率壓縮非常有益。實際上,壓縮數字視頻信號的整個過程分為四個主要過程:塊采樣、DCT、量化和編碼-首先,將原始圖像分成N(水平)×N(垂直)個采樣塊,可以根據需要選擇4×4、4×8、8×8、8×16和16。其範圍在139-163之間,並被發送到DCT編碼器,以便將時域中的采樣塊轉換為頻域中的DCT系數塊。DCT系統的變換是在每個采樣塊中進行的,這些塊中的每個樣本是壹個數字化值,它表示壹個場中相應像素的視頻信號的幅度值。

解壓縮過程中DCT及其逆運算的具體算法如下。

當u,v = 0時,如果DCT後的系數為F(0,0)= 1,則IDCT後的遞推函數為常數,因此F(0,0)稱為DC。當u,v≠0時,正變換後的系數為F(u,v)= 0,則逆變換後的再生函數F(x,y)不是常數,正變換後的系數F(u,v)為AC系數。

DCT變換的壹個具體應用如下圖所示:(我們做了壹個員工培訓的幻燈片,恰到好處)

/rzy/Kean/DCT pro . jpg

從上面的變換原理可以註意到兩點:第壹,DCT後的64個DCT頻率系數對應於DCT前的64個像素塊,DCT前後有64個點,在不壓縮的情況下只有1個無損變換過程。第二,單個1場圖像的所有DCT系數塊的頻譜幾乎集中在左上角的系數塊中,只有從該塊的頻譜才能形成1壓縮圖像;DCT輸出的頻率系數矩陣左上角的DC系數幅度最大,圖中為315。因為它表示X軸和Y軸上的DC分量,所以它表示輸入矩陣所有幅度的平均值。從DC系數向下和向右移動的其他DCT系數具有更高的頻率和更小的幅度,圖中右下角為-0.11,這意味著大部分圖像信息集中在DC系數及其附近的低頻頻譜上,而遠離DC系數的高頻頻譜幾乎不包含圖像信息,甚至僅包含雜波。顯然,盡管DCT本身沒有壓縮功能,但它為未來壓縮中的“取”和“舍”奠定了必不可少的基礎。