close

    今天,我們來看一下何謂PCM,何謂I2S。

    尤記得當步入職場,第一次遇到數位音訊格式是在T牌的audio codec IC上面,那時候還不知道什麼叫做codec,以為是通訊上面講的coder\decoder,後來才比較清楚這是audio業界的行話,泛指音訊可以在IC裡做交換、轉換,我們就稱它為codec。扯遠了,PCM(Pulse Code Modulation)是一種ADC編碼方式,利用"Pulse"(脈衝,其實就是sample點),將類比訊號轉成數位碼(code)的調變技術。PCM在電話系統裡,還隱含了u-law與a-law,目的是為了在最常用的音量大小區間有比較小的量化誤差(Quatization Error,是ADC產生失真的地方之一)。那麼,PCM與I2S(Inter-IC Sound,唸做I Square S)是什麼關係呢?

    在audio interface裡,常見的傳輸格式有PCM、I2S、SPDIF這些。而傳送資料的格式也可以拿來傳輸音訊,像是UART、SDIO等等,它們應用在需要交待音檔資訊的時候,像Bluetooth在播音樂的時候,還會額外跟你說專輯資訊等等。PCM與I2S差別主要在於標註聲道的bit長相不同,請見下圖:

PCM.bmp

    在PCM介面上,LRCK或稱WS(word select)的訊號是用一個bit呈現,而I2S則簡化成全部HIGH或LOW。I2S這樣的做法更為簡單,直接指明了LRCK就是sampling rate,但也限制使用這種介面就只能傳送雙聲道。而PCM在多聲道的傳輸,好比5.1聲道,就是採用TDM(Time Division Multiplexing)的方法, 照時間順序將聲道放進去,換句話說,在接收端也要知道各個聲道是按什麼順序排列,才不會將聲道錯置。

    剛接觸I2S的同學需要注意的是,標準(不知道為什麼)I2S的MSB是落後1 bit LRCK出現的。變種的I2S有很多,像是Left-justified(MSB靠左對齊,不delay 1 bit),Right-justified(LSB靠右對齊),或是MSB delay any bit的作法。而在閱讀datasheet的時候要注意,有些限制BCLK=64xLRCK,也就是左右聲道各32bit,但內容(content、payload... )可以允許16bit、24bit、32bit。有時候不見得會寫這麼清楚,就要詢問各家工程師了。

    最後,同場加映一個也叫做pcm檔的播放格式。簡單來說,pcm檔就是沒有標頭(header)的wav檔。有許多IC在除錯的時候, 僅輸出pcm檔,原因就是IC抓到什麼音訊資料,就丟什麼出來。缺點就是我們要明確知道1. sampling rate 2. 幾聲道 3. 多少bit。以上三個缺一不可,否則一連串0101的資料播放器沒辦法處理。細心的看倌到這邊一定對pcm有更深一層的認識。我的體會是只要跟pcm這字樣沾上點邊的,大概就是raw data的樣子,格式不拘。

 

arrow
arrow
    文章標籤
    Audio DSP Interface
    全站熱搜

    IJDK 發表在 痞客邦 留言(1) 人氣()