2023年5月17日 聯合報 科技.人文聯合講座

伸縮自如的資料變身術

趙坤茂

在數位生活裡,資料壓縮處處扮演著幕後功臣,默默分擔資料儲存與傳輸的重責大任。舉凡網路收發的文件檔案、LINE交流的照片影片、親朋好友的視訊對話、數位電視的高畫質節目等,其間都經歷了資料壓縮和解壓縮的程序,讓我們能更即時收發資訊。

資料壓縮透過編碼技術,將原始檔案轉變為容量更小的壓縮檔案,除可節省儲存空間外,也能縮短傳輸時間。它分成兩種類型,一類為保真(lossless)壓縮,另一類為失真(lossy)壓縮。保真壓縮完整保留資料內容,解壓縮時可無損回復原始資料,例如文字檔案必須做到一字不差,壓縮務必保真。失真壓縮僅保留重點內容,解壓縮時未必能完整回復原始資料,例如圖像影音的資料量龐大,再加上眼耳的敏感度有限,通常容許局部失真以大幅降低檔案容量。

以居家事務打比方,壓縮枕就如同保真壓縮,真空時枕頭體積扁平,待解開密封袋接觸空氣後,枕頭可完全恢復原狀;而即溶奶粉則如同失真壓縮,加水沖泡成牛奶後,雖然營養成分與鮮奶大致相符,但並不完全等同鮮奶。

資料壓縮的一種策略是讓出現頻率較高的字符,使用較短編碼。例如摩斯電碼分別以一點和一劃,表示英文出現頻率最高的字母E和T。又如霍夫曼編碼可根據文件裡各個字符的出現頻率,以巧妙的二元樹分派編碼,使得每個字符的平均位元數最少。

另一種策略是將連續出現的同一符號,以精簡方式表示。例如資料內容為11…1,共有一萬個1,若每個1都用一個位元表示,則需要一萬個位元來儲存;但若以「重複一萬次1」表示,是不是更精簡呢?此策略亦可應用在圖像中一片片顏色相近的區塊,或者在圖像失真轉換後一堆數值為0的矩陣。

還有一種策略是將重複出現的字串以短代碼表示,在壓縮時依序讀取字符,並建立該文件的代碼字典,一旦出現重複字串,就可用代碼表示那一串字符。該方法的妙處在於代碼字典不必另外儲存或傳送,而可在解壓縮時同步回推生成,並依序回復原始文件內容。回顧七○年代,Abraham LempelJacob Ziv所創的LZ壓縮方法奠定該策略的基礎,可惜兩位先驅已分別於今年二月和三月逝世。

近年來,由於人工智慧技術在圖像影音的辨識功力大增,使得資料壓縮強度也隨之進化。例如去年十月,臉書推出的數位音訊編碼方法EnCodec,能更精準掌握音訊中人們難以察覺的變化,其壓縮效果比當今流行的MP3強上十倍;又如今年蘋果收購的WaveOne,專攻內容感知的視訊壓縮,可用來提升影音串流效率。

他日當你我翱翔於數位多重宇宙時,資料壓縮必將是咱們加速前進的得力推手。

【2023/5/17 聯合報】