淺談影像壓縮(上)
小弟還記得大一的時候(1996年),在宿舍裏用我人生中第一部個人電腦,和室友們連線玩雷神之鎚(Quake)時,當時的螢幕解析度才640×480(VGA),mpeg壓縮的過場影片解析度也才352×288(CIF),但這樣的聲光效果就已經令我深深著迷。曾幾何時,我的電腦螢幕已經是1920×1080(Full HD)的解析度,和12年前相比成長了6.75倍;除此之外,我還可以在YouTube上看1920×1080(1080p)的mp4(H.264/AAC)影片,解析度更是成長了20.45倍多,而且是在線上觀看。由此可見,螢幕和影片的解析度都在快速地成長,為的是滿足人們對影像清晰度的要求。
未來的顯示器會愈趨清晰,愈趨高解析度
【圖片來源:NCTU Multimedia Architecture and Processing Laboratory】
由於面板技術的突飛猛進,面板的解析度愈做愈高,甚至已經可以做到人眼無法分辨單個像素的300ppi以上,也就是大家常說的視網膜顯示器(Retina Display)。在人們追求高畫質的現在,除了有高解析度的顯示器外,如何在相同的網路傳輸速率(bitrate)下,傳輸更高解析度的影像給終端顯示器,就成了一項刻不容緩的議題。
一般顯示器(左)與視網膜顯示器(右)的比較
【圖片來源:Type is Beautiful】
在說明影像壓縮之前,我們要先了解什麼是資料壓縮,資料壓縮的目的是將大量的資料壓縮成少量的資料,以減少儲存所須的空間或傳輸所須的頻寬。而資料壓縮分為兩種-非破壞性資料壓縮(Lossless Compression)和破壞性資料壓縮(Lossy Compression)。
非破壞性資料壓縮指的是壓縮後的資料經過解壓縮後,可以100%恢復成壓縮前的資料,而不會破壞原本檔案的資料,通常是將出現機率越高的位元組,以越短的代碼來代替,進而減少資料量。而解壓縮時只須將代碼所代替的位元組復元回去,即可恢復成原本的資料。它經常是用在壓縮文件檔案,試想如果你把你寫的文章儲存成檔案,經過壓縮後,再解壓縮後竟然和原來的不一樣,這豈不冏很大。
破壞性資料壓縮,顧名思義會破壞原本檔案的資料,但這樣的破壞是扔掉「不重要」的資訊,保留「關鍵」的資訊,進而減少資料量。而解壓縮後,並無法100%恢復成原本的資料,只能恢復「關鍵」的資料。它經常是用在壓縮聲音和影像檔案,以最為人所知的mp3為例,它刻意針對人耳不易察覺的頻率和遮蔽效應不進行編碼,省略「不重要」的資訊,以減少資料量。
相同品質的wav(上)和mp3(下)檔案的頻譜比較
【圖片來源:Why MP3 Is Unacceptable As A Trading Format】
拜影像壓縮之賜,我們能將影片壓縮(encode)成更小的檔案大小後,用網路傳輸給終端裝置,再由終端裝置來做解壓縮(decode)後,播放在顯示器上。理論上壓縮比愈高的壓縮技術,可以把檔案壓縮的愈小,在相同的網路傳輸速率下傳輸,也就是傳輸到終端的資料量是相同的情況下,終端裝置解壓縮後的資料量就會愈大,資料量愈大代表可以顯示解析度愈高的影像(但如果一味追求高壓縮比,反而造成嚴重失真,就會適得其反)。
以上我們可以理解為什麼要做影像壓縮,而又有哪些常見的影像壓縮標準呢?在此容小弟先賣個關子,待下回再為大家介紹。