為什么數字圖像可以被壓縮?
舊島空心
圖片是由像素塊組成的,像素經實際測量后,把真實值與預測值的差值求出來,并利用這個差值來表示第二個格子的色彩,后面的色彩值就可以滾雪球似的一個個求出來,被稱為無損壓縮。如果把很少的差值徹底丟棄,這種方法屬于有損壓縮。
如果想要搞清楚這個問題,就要從圖像是如何被數字化的談起。先來看一張玩具鴨子的圖片是怎么被數字化的。
首先,要把這張圖片分成若干小塊,每個小塊中的顏色用一個數字來表示。如果圖像是純黑純白兩色的,那每塊只用1 或0 表示即可。如果圖像是16 色的,那每塊就要用4 位二進制數來表示,因為4 位二進制數有16 種組合,每種組合表示一種顏色,正好可以表示16 種顏色。而真彩色位圖的每個小塊,都是由不同等級的紅、綠、藍三種色彩組合的,表達起來就更復雜一些。如果每種顏色有28 個等級,那就可以有224 種顏色,這樣一來,每小塊就需要24 位二進制數來表示,才能囊括所有色彩。
由此可見,數字圖像色彩越絢麗,需要記錄的二進制數就越多。小色塊越多,分布得越密,則一幅圖的總數據量就越大。
回頭來看這個玩具鴨子圖片,如果像圖中所示被分成了154 個色塊(11×14)(11×14),并按真彩色位圖來計算,則總數據量就是154×24=3696154×24=3696比特。這些小格子顯然是太大了,如果這樣來切分圖片,還原后的圖片就不能表現圖片的細節(jié)。在實際應用中切分的格子要密得多。這些格子其實就是我們常說的像素。格子分得越多表示像素越高,也就是分辨率越高,大家都熟悉的顯示器分辨率就是1024×7681024×768。所謂數字化圖片,就是將圖片的畫面信息用二進制數字來表示。
知道了圖像數字化的道理,再來看圖像為什么可以被壓縮和還原。先看一張滑雪圖,由于人體的色彩變化比較多,而天空和雪的色彩卻非常單調,可以想象,天空與雪所代表的每個小格顏色的數值應該非常接近,圖右下的原始數據是8個相鄰格子的色彩數據,由于兩個相鄰格子的數據差異很小,所以可以用第一個格子的數據來表達第二個格子數據的預測值,經實際測量后,把真實值與預測值的差值求出來,并利用這個差值來表示第二個格子的色彩,那么,實際記錄下的就是第三行差值?;謴蛿祿r,用前面一個值加上差值,就是當前的色彩值,只要有第一位的基礎值,后面的色彩值就可以滾雪球似的一個個求出來。用差值來記錄色彩,只是簡單地進行了很多個減法運算,在還原時再加回來,數據并沒有一丁點的損失,因此被稱為無損壓縮。如果把很少的差值徹底丟棄,在還原時讓一個格子的色彩信息代表了周圍很多格子的色彩,則壓縮率更高,但這樣一來格子之間的微小差別就丟失了,這種方法屬于有損壓縮。
壓縮文件有很多種格式,你在自己的圖片文件后看到的“.bmp”或“.jpg”就是文件格式的名稱。bmp 格式是將圖像的每個格子都獨立記錄的,因此數據量很大。如果按照前述的預測差值運算后,就變成了有損壓縮式,jpg 格式就是其中之一。對于畫質基本相同的兩幅圖像,jpg 格式的數據量要比bmp 小得多。不過,雖然jpg 是有損壓縮的,但畫質的損失非常小。因為它是很智能的,比如它可以自動對有大面積相似色彩的飛機圖片給予較大的壓縮率,而對人群圖片給予較小的壓縮率。
相對于上述的靜態(tài)的圖像壓縮,視頻圖像的壓縮率就更大了。視頻圖像文件也有很多文件格式。一般情況下,一秒鐘視頻會切換成幾十張畫面,而這些畫面的絕大部分都是相同的,可是采集是每幅獨立采的,因此生成的avi格式的數據量是很大的。不僅每幅畫面本身可以壓縮,更重要的是幅與幅之間也可以壓縮,這就形成了數據量小得多的mpeg 格式。當然,也可以采用壓縮率更高的rm 格式。rm 格式的畫質比mpeg 差得不多,但數據量卻小了很多倍,更方便在網上傳輸。
不同的視頻,幅與幅之間的相似度是不同的,有些相似度很大的電視劇,也許在幾分鐘內,演員都坐在沙發(fā)上聊天,除了嘴巴動作外每幅畫面都基本一樣,對這種視頻可以采用較大的壓縮率,而對動感性很強的武打片,則需要采用較小的壓縮率,這種格式就是rmvb。跟rm 格式不同的是,它的壓縮率是可變的,vb 就是可變比特率的意思。rmvb 則比rm 更先進,相同數據量的rmvb 視頻會比rm 視頻清晰,而相同清晰度的視頻,rmvb 格式的數據量會更小。
是不是一旦進行了有損壓縮,數據缺失了,畫質就很難復原了?是很難復原,但這也并不是完全不可能,這里面有個關鍵的概念是“先驗信息”(先驗信息也就是我們以前已經知道了的知識)。例如下圖左邊這張民國女性黑白照片的嘴唇,要壓縮成這個灰度,右邊的彩色圖例中有五種可能,但通過先驗信息知道,美女的嘴唇不可能是綠的、藍的和紫的,只能是右下的紅色,把它還原成紅色就對了。
根據先驗信息我們知道,只有極少數的組合是經常出現的,絕大多數的組合是基本不會出現的,如果我們得到了一組模糊不清的組合,它跟經常出現的某個組合與基本不會出現的某個組合的相似度一樣,那我們就毫不猶豫地認定它就是那個經常出現的組合。當然,它是那個基本不會出現的組合的可能性也是不能排除的。就好比那個民國美女如果真的涂了藍嘴唇,那我們依靠先驗信息做的判斷就可能出錯了。