AAC編碼

聲音

如何將現(xiàn)實(shí)生活中的聲音轉(zhuǎn)換成數(shù)字信號(hào)?

脈沖編碼調(diào)制(PCM)

pcm.png

脈沖編碼調(diào)制示意圖

  • 圖3-2(a),是一個(gè)以Ts為時(shí)間間隔的窄脈沖序列p(t)。因?yàn)橐盟M(jìn)行抽樣,所以稱為#抽樣脈沖。
  • 圖3-2(b),v(t)是待抽樣的模擬電壓信號(hào),抽樣后的離散信號(hào)k(t)的取值分別為k(0)=0.2,k(Ts)=0.4,k(2Ts)=1.8,k(3Ts)=2.8,k(4Ts)=3.6,k(5Ts)=5.1,k(6Ts)=6.0,k(7Ts)=5.7,k(8Ts)=3.9,k(9Ts)=2.0,k(10Ts)=1.2,可見取值在0-6之間是隨機(jī)的,也就是說可以有無窮個(gè)可能的取值。
  • 圖3-2(c),為了把無窮個(gè)可能取值變成有限個(gè),我們必須對(duì)k(t)的取值進(jìn)行量化(即四舍五入),得到m(t)則m(t)的取值變?yōu)?m(0)=0.0,m(Ts)=0.0,m(2Ts)=2.0,m(3Ts)=3.0,m(4Ts)=4.0,m(5Ts)=5.0,m(6Ts)=6.0,m(7Ts)=6.0,m(8Ts)=4.0,m(9Ts)=2.0,m(10Ts)=1.0,總共只有0-6等7個(gè)可能的取值。
  • 圖3-2(d),m(t)已經(jīng)變成數(shù)字信號(hào),但還不是實(shí)際應(yīng)用中的二進(jìn)制數(shù)字信號(hào),因此對(duì)m(t)用3位二進(jìn)制編碼元進(jìn)行自然編碼就得到圖3-2(d)的數(shù)字信號(hào)d(t),從而完成了A/D轉(zhuǎn)換,實(shí)現(xiàn)了脈沖編碼調(diào)制,即PCM全過程。


    圖3-2.png

模擬電壓信號(hào)V(t)通過乘法器與一個(gè)抽樣窄脈沖序列p(t)相乘,就會(huì)得到一個(gè)幅度值隨V(t)的變化而變化的窄脈沖序列k(t)

圖.png

了解量化過程

量化就是將一個(gè)連續(xù)函數(shù)的無限個(gè)數(shù)值的集合映射為一個(gè)離散函數(shù)的有限個(gè)數(shù)值的集合。

  • 量化值—— 確定的量化后的取值
  • 量化級(jí)—— 量化值的個(gè)數(shù)
  • 量化間隔—— 相鄰的2個(gè)量化值之差
    v(t)的樣值信號(hào)k(t)和量化后的量化信號(hào)m(t)是不一樣的。
    例如:k(0) = 0.2 而 m(0) = 0

接收端只能是量化后的信號(hào)m(t),而不能恢復(fù)出k(t),這樣就使得收發(fā)信號(hào)之間的誤差,這稱為量化誤差或量化噪聲。

采用的是"四舍五入"進(jìn)行量化,因此量化噪聲的最大值是0.5,一般來說,量化噪聲,最大絕對(duì)誤差值是0.5個(gè)量化間隔。這個(gè)量化間隔都一樣的量化叫做均勻量化。

音頻壓縮編碼原理&標(biāo)準(zhǔn)

數(shù)字音頻的質(zhì)量取決于:采樣頻率和量化位數(shù)這2個(gè)參數(shù)為了保證在時(shí)間變化方向上取樣點(diǎn)盡量密,取樣頻率要高,在幅度取值上盡量細(xì),量化比特率要高,直接的結(jié)果就是存儲(chǔ)容量及傳輸信道容量要求的壓力。

  • 音頻信號(hào)的傳輸率 = 取樣頻率 * 樣本量化比特?cái)?shù) * 通道數(shù)

     取樣頻率 = 44.1kHz
    
     樣本值的量化比特率 = 16
    
     普通立體聲的信號(hào)通道數(shù)= 2
    
     數(shù)字信號(hào)傳輸碼流大約 1.4Mbit(8/Byte)
    
     達(dá)176.4Byte(字節(jié)),等于88200個(gè)漢字的數(shù)據(jù)量
    
  • 數(shù)字音頻信號(hào)包含的對(duì)人們感受信息影響可以忽略的成分成為冗余
    — 時(shí)域冗余
    — 頻域冗余
    — 聽覺冗余

MPEG-1 音頻壓縮編碼標(biāo)準(zhǔn)    高保真壓縮

杜比AC-3 音頻壓縮編碼

MPEG-2 AAC       壓縮到20:1都不損音質(zhì),支持多聲道48個(gè),更高的解析度96hz,提升編碼效率,解碼占用內(nèi)存少   高效的處理方式

MPEG-4 音頻壓縮編碼

AAC解碼算法原理詳解

本文詳細(xì)介紹了符合ISO/IEC 13818-7(MPEG2 AAC audio codec) , ISO/IEC 14496-3(MPEG4 Audio Codec AAC Low Complexity)進(jìn)行壓縮的的AAC音頻的解碼算法。

AAC音頻格式有ADIF(適用于磁盤) & ADTS

將PCM轉(zhuǎn)換為AAC音頻流

1.設(shè)置編碼器(codec),并開始錄制
2.收集PCM數(shù)據(jù),傳給編碼器
3.編碼完成后回調(diào)callback,寫入文件


1、程序系統(tǒng)結(jié)構(gòu)

下面是AAC解碼流程圖:

屏幕快照 2017-08-01 上午10.53.39.png

在主控模塊開始運(yùn)行后,主控模塊將AAC比特流的一部分放入輸入緩沖區(qū),通 過查找同步字得到一幀的起始,找到后,根據(jù)ISO/IEC 13818- 7所述的語法開始進(jìn)行Noisless Decoding(無噪解碼),無噪解碼實(shí)際上就是哈夫曼解碼,通過反量化(Dequanti ze)、聯(lián)合立體聲(Joint Stereo),知覺噪聲替換(PNS),瞬時(shí)噪聲整形(TNS),反離散余弦變換(IM DCT),頻段復(fù)制(SBR)這幾個(gè)模塊之后,得出左右聲道的PCM碼流,再由主控 模塊將其放入輸出緩沖區(qū)輸出到聲音播放設(shè)備。
2. 主控模塊
主控模塊的主要任務(wù)是操作輸入輸出緩沖區(qū),調(diào)用其它各模塊協(xié)同工作。其中 ,輸入輸出緩沖區(qū)均由DSP控制模塊提供接口。輸出緩沖區(qū)中將存放的數(shù)據(jù)為解 碼出來的PCM數(shù)據(jù),代表了聲音的振幅。它由一塊固定長(zhǎng)度的緩沖區(qū)構(gòu)成,通過 調(diào)用DSP控制模塊的接口函數(shù),得到頭指針,在完成輸出緩沖區(qū)的填充后,調(diào)用 中斷處理輸出至I2S接口所連接的音頻ADC芯片(立體聲音頻DAC和DirectDrive 耳機(jī)放大器)輸出模擬聲音。
3. 同步及元素解碼
同步及元素解碼模塊主要用于找出格式信息,并進(jìn)行頭信息解碼,以及對(duì)元素
信息進(jìn)行解碼。這些解碼的結(jié)果用于后續(xù)的無噪解碼和尺度因子解碼模塊。
AAC的音頻文件格式有以下兩種:
ADIF:Audio Data Interchange Format 音頻數(shù)據(jù)交換格式。這種格式的特征是可以確定的找到這個(gè)音頻數(shù)據(jù)的開始, 不需進(jìn)行在音頻數(shù)據(jù)流中間開始的解碼,即它的解碼必須在明確定義的開始處 進(jìn)行。故這種格式常用在磁盤文件中。
ADTS:Audio Data Transport Stream 音頻數(shù)據(jù)傳輸流。這種格式的特征是它是一個(gè)有同步字的比特流,解碼可以在 這個(gè)流中任何位置開始。它的特征類似于mp3數(shù)據(jù)流格式。
AAC的ADIF格式見下圖:

ADIF.png

AAC音頻格式有ADIF & ADTS

最后編輯于
?著作權(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)容

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