PCM音頻編碼

概述

PCM 脈沖編碼調(diào)制是Pulse Code Modulation的縮寫。脈沖編碼調(diào)制是數(shù)字通信的編碼方式之一。主要過程是將話音、圖像等模擬信號(hào)每隔一定時(shí)間進(jìn)行取樣,使其離散化,同時(shí)將抽樣值按分層單位四舍五入取整量化,同時(shí)將抽樣值按一組二進(jìn)制碼來表示抽樣脈沖的幅值。

語(yǔ)音編碼原理

有一定電子基礎(chǔ)的都知道傳感器采集音頻信號(hào)是模擬量,而我們實(shí)際傳輸過程中使用的是數(shù)字量。而這就涉及到模擬轉(zhuǎn)數(shù)字的過程。而模擬信號(hào)數(shù)字化必須經(jīng)過三個(gè)過程,即抽樣、量化和編碼,以實(shí)現(xiàn)話音數(shù)字化的脈沖編碼調(diào)制(PCM,Pulse Coding Modulation)技術(shù)。

模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)

抽樣(Sampling)

抽樣是把模擬信號(hào)以其信號(hào)帶寬2倍以上的頻率提取樣值,變?yōu)樵跁r(shí)間軸上離散的抽樣信號(hào)的過程。

采樣率 (sample):每秒從連續(xù)信號(hào)中提取并組成離散信號(hào)的采樣個(gè)數(shù),用赫茲(Hz)來表示.

舉例:
如音頻信號(hào)采樣率為8000hz。
可以理解上圖采樣對(duì)應(yīng)圖中 那段電壓隨時(shí)間變化的曲線 為1秒 那下面那個(gè)1 2 3 …10那就因該有1-8000個(gè)點(diǎn),即將1秒均分為8000份,依次取出來那8000個(gè)點(diǎn)時(shí)間 對(duì)應(yīng)的電壓值。

量化(quantizing)

抽樣信號(hào)雖然是時(shí)間軸上離散的信號(hào),但仍然是模擬信號(hào),其樣值在一定的取值范圍內(nèi),可有無(wú)限多個(gè)值。顯然,對(duì)無(wú)限個(gè)樣值一一給出數(shù)字碼組來對(duì)應(yīng)是不可能的。為了實(shí)現(xiàn)以數(shù)字碼表示樣值,必須采用“四舍五入”的方法把樣值分級(jí)“取整”,使一定取值范圍內(nèi)的樣值由無(wú)限多個(gè)值變?yōu)橛邢迋€(gè)值。這一過程稱為量化。

量化后的抽樣信號(hào)與量化前的抽樣信號(hào)相比較,當(dāng)然有所失真,且不再是模擬信號(hào)。這種量化失真在接收端還原模擬信號(hào)時(shí)表現(xiàn)為噪聲,并稱為量化噪聲。量化噪聲的大小取決于把樣值分級(jí)“取整”的方式,分的級(jí)數(shù)越多,即量化級(jí)差或間隔越小,量化噪聲也越小。

采樣位數(shù):指的是描述數(shù)字信號(hào)所使用的位數(shù)。
8位(8bit)代表2的8次方=256,16 位(16bit)則代表2的16次方=65536; 采樣位數(shù)越高,精度越高。

這里引用了采樣位數(shù)來描述模擬信號(hào)之間的最小間隔。
假設(shè)我們采樣位數(shù)是 8 ,而模擬信號(hào)的范圍是2,0,那么數(shù)字信號(hào)之間的間隔最小就是2/2^8= 2/256=1/128;
同理采樣位數(shù)是16,那么 數(shù)字信號(hào)之間的最小間隔就是2/256/256=1/(128*256)

舉例
如音頻傳感器采集到的電壓范圍為0-3.3V,采樣位數(shù)為8bit(位)
即我們把3.3V/ 2^8 = 0.0128 即為量化精度。
我們把3.3v分成0.0128為步進(jìn)的Y軸,如圖3中的1 2 …8就變成了0 0.0128 0.0256 …..3.3 V
比如某個(gè)采樣點(diǎn)的電壓值為1.652V(128 * 0.128 與 129 * 0.128之間) 我們對(duì)它四舍五入就為1.65V 對(duì)應(yīng) 量化等級(jí)為128 。

編碼(Coding)

量化后的抽樣信號(hào)就轉(zhuǎn)化為按抽樣時(shí)序排列的一串十進(jìn)制數(shù)字碼流,即十進(jìn)制數(shù)字信號(hào)。簡(jiǎn)單高效的數(shù)據(jù)系統(tǒng)是二進(jìn)制碼系統(tǒng),因此,應(yīng)將十進(jìn)制數(shù)字代碼變換成二進(jìn)制編碼,根據(jù)十進(jìn)制數(shù)字代碼的總個(gè)數(shù),可以確定所需二進(jìn)制編碼的位數(shù),即字長(zhǎng)(采樣位數(shù))這種把量化的抽樣信號(hào)變換成給定字長(zhǎng)的二進(jìn)制碼流的 過程稱為編碼。

舉例
接著上面的1.65V 對(duì)應(yīng) 量化等級(jí)為128 。對(duì)應(yīng)的2進(jìn)制為10000000 。即該采樣點(diǎn)編碼后結(jié)果為10000000 。當(dāng)然這是沒有考慮正負(fù)值情況下的編碼方式,而且編碼方式種類非常多,需要具體問題具體分析。(PCM音頻格式編碼為A律13折線編碼)

PCM 音頻編碼

PCM信號(hào)未經(jīng)過任何編碼和壓縮處理(無(wú)損壓縮)。與模擬信號(hào)比,它不易受傳送系統(tǒng)的雜波及失真的影響。動(dòng)態(tài)范圍寬,可得到音質(zhì)相當(dāng)好的效果。編碼上采用A律13折線編碼。

A律13折線

A律是PCM非均勻量化中的一種對(duì)數(shù)壓擴(kuò)形式。數(shù)字脈沖編碼調(diào)制(PCM)是目前模擬信號(hào)數(shù)字化的基本方法,PCM包括采樣、量化、編碼三個(gè)步驟,其中量化是對(duì)抽樣值的取值離散,根據(jù)量化間隔的不同選取分為均勻量化和非均勻量化,非均勻量化可以有效地改善信號(hào)的量化信噪比。語(yǔ)音信號(hào)的量化常采用ITU建議的兩種對(duì)數(shù)形式的非均勻量化壓縮特性:A律和μ律,A律編碼主要用于30/32路一次群系統(tǒng), A律PCM用于歐洲和中國(guó)。

具體可以看文章

聲道

聲道可以分為單聲道和立體聲(雙聲道)
PCM的每個(gè)樣本值包含在一個(gè)整數(shù)i中,i的長(zhǎng)度為容納指定樣本長(zhǎng)度所需的最小字節(jié)數(shù)。

首先存儲(chǔ)低有效字節(jié),表示樣本幅度的位放在i的高有效位上,剩下的位置為0,這樣8位和16位的PCM波形樣本的數(shù)據(jù)格式如下所示。

采樣頻率

人對(duì)頻率的識(shí)別范圍是 20HZ - 20000HZ, 如果每秒鐘能對(duì)聲音做 20000 個(gè)采樣, 回放時(shí)就足可以滿足人耳的需求.

  • 8000hz 為電話采樣。
  • 22050 的采樣頻率是常用的。
  • 44100已是CD音質(zhì), 超過48000的采樣對(duì)人耳已經(jīng)沒有意義

對(duì)采樣率為44.1kHz的AAC(Advanced Audio Coding)音頻進(jìn)行解碼時(shí),一幀的解碼時(shí)間須控制在23.22毫秒內(nèi)。通常是按1024個(gè)采樣點(diǎn)一幀。

為什么這里需要說下音頻幀呢?
音頻的幀的概念沒有視頻幀那么清晰,幾乎所有視頻編碼格式都可以簡(jiǎn)單的認(rèn)為一幀就是編碼后的一副圖像。但音頻幀跟編碼格式相關(guān),它是各個(gè)編碼標(biāo)準(zhǔn)自己實(shí)現(xiàn)的。因?yàn)槿绻訮CM(未經(jīng)編碼的音頻數(shù)據(jù))來說,它根本就不需要幀的概念,根據(jù)采樣率和采樣精度就可以播放了。比如采樣率為44.1kHZ,采樣精度為16位的音頻,你可以算出bitrate(比特率)是4410016kbps,每秒的音頻數(shù)據(jù)是固定的4410016/8 字節(jié)。
但是我們不希望每一次采樣都返回給我們進(jìn)行處理,我們希望的是返回一段時(shí)間內(nèi)的所有采樣數(shù)據(jù)。這里的音頻幀就是每次返回給我們多少個(gè)采樣數(shù)據(jù),一般情況是下返回2048個(gè)采樣數(shù)據(jù)。
那么單聲道 采用16位采樣位數(shù) 2048個(gè)采樣數(shù)據(jù)的大小是多少呢 2048*16/8 = 4096字節(jié)。

采樣位數(shù)

每個(gè)采樣數(shù)據(jù)記錄的是振幅, 采樣精度取決于儲(chǔ)存空間(采樣位數(shù))的大小:

  • 1 字節(jié)(也就是8bit) 只能記錄 256 個(gè)數(shù), 也就是只能將振幅劃分成 256 個(gè)等級(jí)
  • 2 字節(jié)(也就是16bit) 可以細(xì)到 65536 個(gè)數(shù), 這已是 CD 標(biāo)準(zhǔn)了;
  • 4 字節(jié)(也就是32bit) 能把振幅細(xì)分到 4294967296 個(gè)等級(jí), 實(shí)在是沒必要了

如果是雙聲道(stereo), 采樣就是雙份的, 文件也差不多要大一倍.

比特率

碼率是指經(jīng)過編碼后的音頻數(shù)據(jù)每秒鐘需要用多少個(gè)比特來表示.

有損和無(wú)損

對(duì)于我們最常說的“無(wú)損音頻”來說,一般都是指?jìng)鹘y(tǒng)CD格式中的16bit/44.1kHz采樣率的文件格式,而知所以稱為無(wú)損壓縮,也是因?yàn)槠浒?0Hz-22.05kHz這個(gè)完全覆蓋人耳可聞范圍的頻響頻率而得名。

這里我有個(gè)混淆的地方是 聲道和采樣頻率之間的關(guān)系?剛開始假設(shè)采樣頻率是44100,要是使用雙聲道的話,那么每個(gè)聲道的采樣率就是22100了。其實(shí)這是錯(cuò)誤的,采樣頻率是在每個(gè)聲道上的采樣速率,不是在所有頻道的采樣速率。
因此,要是采樣速率是44100 ,那么雙聲道,采集的樣本個(gè)數(shù)應(yīng)該是88200個(gè)。

A律13折
參考文獻(xiàn)
百度百科

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 本篇開始講解在Android平臺(tái)上進(jìn)行的音頻編輯開發(fā),首先需要對(duì)音頻相關(guān)概念有基礎(chǔ)的認(rèn)識(shí)。所以本篇要講解以下...
    Ihesong閱讀 8,040評(píng)論 2 18
  • 采樣頻率 采樣頻率是指單位時(shí)間內(nèi)對(duì)聲音模擬信號(hào)的采樣次數(shù),采樣率類似于視頻的幀數(shù),比如電影的采樣率是24Hz,當(dāng)我...
    edison0428閱讀 1,261評(píng)論 0 0
  • 前些日子由于項(xiàng)目需要,一直在研究iOS CoreAudio相關(guān)的內(nèi)容.在這里記錄一些筆記.現(xiàn)實(shí)生活中,我們聽到的聲...
    brownfeng閱讀 4,814評(píng)論 4 14
  • 有陣子沒出文章,接下來爭(zhēng)取這段時(shí)間持續(xù)更新,將沉淀的東西記錄下來,廢話不多說剛接觸了音視頻方面,趁熱乎記錄一下,歡...
    vvengzt閱讀 5,624評(píng)論 0 20
  • 我獨(dú)行 但我不孤 一個(gè)人看書 一個(gè)人失眠 一個(gè)人想東想西 一個(gè)人規(guī)劃未來 一個(gè)人畫畫 一個(gè)人唱歌 我獨(dú)行嗎 我未曾獨(dú)行
    lemonzx閱讀 233評(píng)論 2 2

友情鏈接更多精彩內(nèi)容