[轉錄] 一、話說從頭 ADPCM是Adaptive Differential Pulse Code Modulation的簡寫 一般我們在聽的CD,以及常見的wav檔,都是用PCM的方式來把聲音數位化 那麼,PCM跟ADPCM有什麼差別呢? 其實說穿了也沒什麼,都是當初的先烈(!)前輩們所想出來,減少資料大小的辦法 二、何謂DPCM 要講ADPCM之前,我們先來看看DPCM是什麼 D=Differential,Differential這個字在這邊是"差",相差多少的意思 因此,顧名思義… 假設某段聲音的PCM編碼是 250,268,269,241,這樣子會花掉12個數字的儲存空間 那麼這段聲音改用DPCM會是250,+18,+19,-9,這樣子就只花8個數字的儲存空間 所以,DPCM是PCM的紀錄方式的改良,用較少的bit數記錄一樣的東西 而250,+18,+19,-10經由反推可以得到和PCM一樣的數字,所以DPCM是無失真的壓縮 三、從DPCM看ADPCM 但是這樣子能壓縮掉的東西很有限,所以我們需要ADPCM A=Adaptive,Adaptive這個字是適應性的意思(英文教學時間@_@) 承接上面的例子,當PCM是250,268,269,241、DPCM是250,+18,+19,-9時 250,+18,+19,-10可以進一步簡化成250,(+9,+9,-5)*2←這個就是ADPCM的編碼 那麼可以發現,250,(+9,+9,-4)*2只要花6個數字的儲存空間,比DPCM更少 而250,(+9,+9,-4)*2反推回去後,得到250,+18,+18,-8,跟原來的不一樣了 所以ADPCM是失真性的壓縮 實際上,編碼器執行壓縮的工作時,會考慮前後波形的變化,選擇簡化所使用的數字, 比如上面的那個*2可能改為*5,這就是"Adaptive 適應性"的意義所在 再看看上面的例子,250,268,269,241->250,(+9,+9,-4)*2 想像一個有所變化的聲波,我們只記錄某個時間點,之後的波與那個時間點的差值 假如差值大過我們能省略的,那麼就再重新設立一個開始點 如此一來,我們就不需要用很多很長的數字來描述一段聲音的波形 因此,音樂CD需要用16個bits(-32768~+32767的數字範圍),才能記錄的聲音波形變化 經過ADPCM的簡化,就只需要4個bits(-8~+7的數字範圍)就可以記錄(*) 所以,ADPCM的壓縮比一般當作1:4,比MP3常用的1:10~1:12壓縮比要高一些
------ 3月 18 週五 200506:48
[轉錄]ADPCM
文章標籤
全站熱搜

Very useful information, thank you.