簡(jiǎn)介
????音頻是個(gè)專業(yè)術(shù)語耗溜,音頻一詞已用作一般性描述音頻范圍內(nèi)和聲音有關(guān)的設(shè)備及其作用。人類能夠聽到的所有聲音都稱之為音頻松靡,它可能包括噪音等。聲音被錄制下來以后王凑,無論是說話聲、歌聲聋丝、樂器都可以通過數(shù)字音樂軟件處理索烹,把它制作成音頻文件。而音頻只是儲(chǔ)存在計(jì)算機(jī)里的聲音潮针。
????簡(jiǎn)單講术荤,其實(shí)就是將采集到的音頻模擬信號(hào),經(jīng)過一定的轉(zhuǎn)換每篷,變成方便在信道中傳輸?shù)臄?shù)字信號(hào)瓣戚。在不同的使用場(chǎng)景端圈,也許會(huì)使用不同的編碼方式,那么音頻質(zhì)量子库、碼率舱权、安全系數(shù)等都不一樣。
音頻基礎(chǔ)知識(shí)
采樣和采樣頻率:
一秒鐘內(nèi)采樣的次數(shù)稱為采樣頻率仑嗅。采樣頻率越高宴倍,越接近原始信號(hào),但是也加大了運(yùn)算處理的復(fù)雜度仓技。根據(jù)Nyquist采樣定理鸵贬,要想重建原始信號(hào),采樣頻率必須大于信號(hào)中最高頻率的兩倍脖捻。人能感受到的頻率范圍為20HZ--20kHZ, 一般音樂的采樣頻率為44.1kHZ, 更高的可以是48kHZ和96kHZ阔逼,不過一般人用耳聽感覺不出差別了。語音主要是以溝通為主地沮,不需要像音樂那樣清晰嗜浮,用16k采樣的語音就稱為高清語音了。現(xiàn)在主流的語音采樣頻率為16kHz摩疑。
采樣位數(shù):
數(shù)字信號(hào)是用0和1來表示的危融。采樣位數(shù)就是采樣值用多少位0和1來表示,也叫采樣精度雷袋,用的位數(shù)越多就越接近真實(shí)聲音吉殃。如用8位表示,采樣值取值范圍就是-128--127片排,如用16位表示寨腔,采樣值取值范圍就是-32768--32767∷俪蓿現(xiàn)在一般都用16位采樣位數(shù)率寡。
聲道:
聲道是指處理的聲音是單聲道還是立體聲。Android支持雙聲道立體聲和單聲道倚搬。CHANNEL_IN_MONO單聲道冶共,CHANNEL_IN_STEREO立體聲。單聲道在聲音處理過程中只有單數(shù)據(jù)流每界,而立體聲則需要左捅僵、右聲道的兩個(gè)數(shù)據(jù)流。顯然眨层,立體聲的效果要好庙楚,但相應(yīng)的數(shù)據(jù)量要比單聲道的數(shù)據(jù)量加倍。
碼率:
就是比特率趴樱。比特率是指每秒傳送的比特(bit)數(shù)馒闷。碼率=采樣率X采樣位數(shù)X聲道數(shù)酪捡。
音頻采集和播放:
一般用專門的芯片(通常叫codec芯片)采集音頻,做AD轉(zhuǎn)換纳账,然后把數(shù)字信號(hào)通過I2S總線(主流用I2S總線逛薇,也可以用其他總線,比如PCM總線)送給CPU處理(也有的會(huì)把codec芯片與CPU芯片集成在一塊芯片中)疏虫。當(dāng)要播放時(shí)CPU會(huì)把音頻數(shù)字信號(hào)通過I2S總線送給codec芯片永罚,然后做DA轉(zhuǎn)換得到模擬信號(hào)再播放出來。
音頻編碼過程
時(shí)域轉(zhuǎn)頻域變化
時(shí)域是描述數(shù)學(xué)函數(shù)或物理信號(hào)對(duì)時(shí)間的關(guān)系卧秘。
在研究時(shí)域的信號(hào)時(shí)呢袱,常會(huì)用示波器將信號(hào)轉(zhuǎn)換為其時(shí)域的波形
頻域是指在對(duì)函數(shù)或信號(hào)進(jìn)行分析時(shí),分析其和頻率有關(guān)部份翅敌,而不是和時(shí)間有關(guān)的部份
有興趣的可以去了解一下傅里葉變換
心理聲學(xué)原理
心理聲學(xué)原理是指用功能強(qiáng)大的算法將我們聽不到的音頻信息去掉产捞。
20hz-20000hz之間的,才是人能聽到的哼御。之外的可以稱為冗余數(shù)據(jù)坯临。
冗余數(shù)據(jù)還有被遮蔽掉的數(shù)據(jù),分為頻域遮蔽和時(shí)域遮蔽恋昼。
量化編碼
通常也把音頻采樣過程叫脈沖編碼調(diào)制編碼看靠,即PCM(Pulse Code Modulation)編碼,采樣值也叫PCM值液肌。
PCM通過抽樣挟炬、量化、編碼三個(gè)步驟將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為數(shù)字編碼嗦哆。
如圖谤祖,我們首先對(duì)一段音頻片段進(jìn)行10次抽樣。
每次采樣老速,都存在不同的振幅粥喜。為了實(shí)現(xiàn)以數(shù)字碼表示樣值,必須采用“四舍五入”的方法把樣值分級(jí)“取整”橘券,使一定取值范圍內(nèi)的樣值由無限多個(gè)值變?yōu)橛邢迋€(gè)值额湘。這一過程稱為量化。
然后我們將不同的樣值進(jìn)行編碼旁舰,將十進(jìn)制的值轉(zhuǎn)化為計(jì)算機(jī)認(rèn)識(shí)的二進(jìn)制的值锋华。
最后根據(jù)二進(jìn)制的值,我們轉(zhuǎn)化為數(shù)字信號(hào)箭窜。就是所形成的方波毯焕。
音頻壓縮
音頻壓縮類型
1.有損壓縮,就是消除冗余數(shù)據(jù)磺樱。音頻采集過程中采集到各種各樣的聲音纳猫,只有一部分是人能識(shí)別出來的紧阔。其他的聲音,我們直接刪除掉续担∩玫ⅲ恢復(fù)回來的時(shí)候沒有了,所以稱為有損壓縮物遇。
2.哈夫曼無損壓縮乖仇,利用數(shù)據(jù)的統(tǒng)計(jì)冗余進(jìn)行壓縮,可完全恢復(fù)原始數(shù)據(jù)而不引起任何數(shù)據(jù)丟失的询兴,稱為無損壓縮乃沙。
使用音頻壓縮技術(shù)的原因
????要計(jì)算一個(gè)PCM音頻流的碼率是一件很輕松的事情,采樣率值×采樣大小值×聲道數(shù)诗舰。一個(gè)采樣率為44.1KHz警儒,采樣大小為16bit,雙聲道的PCM編碼的音頻文件眶根,它的碼率則為 44.1K×16×2 =1411.2 Kbps蜀铲。注意這邊的單位是小b,單位是位属百。如果我們將單位轉(zhuǎn)換為字節(jié)记劝,則需要將碼率除以8,就可以得到這個(gè)WAV的數(shù)據(jù)速率族扰,即176.4KB/s厌丑。這表示存儲(chǔ)一秒鐘采樣率為44.1KHz,采樣大小為16bit渔呵,雙聲道的PCM編碼的音頻信號(hào)怒竿,需要176.4KB的空間,1分鐘則約為10.34M扩氢,這對(duì)大部分用戶是不可接受的耕驰,尤其是喜歡在電腦上聽音樂的朋友,要降低磁盤占用类茂,只有2種方法耍属,降低采樣指標(biāo)或者壓縮托嚣。降低指標(biāo)是不可取的巩检,因此專家們研發(fā)了各種壓縮方案。
????MP3發(fā)展已經(jīng)有10個(gè)年頭了示启,MP3作為前幾年最為普及的音頻壓縮格式兢哭,他是MPEG(MPEG:Moving Picture Experts Group) Audio Layer-3的簡(jiǎn)稱,是MPEG1的衍生編碼方案夫嗓,1993年由德國Fraunhofer IIS研究院和湯姆生公司合作發(fā)展成功迟螺。MP3可以做到12:1的驚人壓縮比并保持基本可聽的音質(zhì)冲秽,在當(dāng)年硬盤天價(jià)的日子里,MP3迅速被用戶接受矩父,為大家所大量接受锉桑。
常見音頻的壓縮編碼
目前主要有三大技術(shù)標(biāo)準(zhǔn)組織制定壓縮標(biāo)準(zhǔn):
a)ITU,主要制定有線語音的壓縮標(biāo)準(zhǔn)(g系列)窍株,有g(shù)711/g722/g726/g729等民轴。
b)3GPP,主要制定無線語音的壓縮標(biāo)準(zhǔn)(amr系列等), 有amr-nb/amr-wb。后來ITU吸納了amr-wb球订,形成了g722.2后裸。
c)MPEG,主要制定音樂的壓縮標(biāo)準(zhǔn),有11172-3冒滩,13818-3/7微驶,14496-3等。
一些大公司或者組織也制定壓縮標(biāo)準(zhǔn)开睡,比如iLBC因苹,OPUS。
目前市場(chǎng)編解碼器性能比較OPUS > Vorbis > AAC 篇恒,其他的已經(jīng)隨時(shí)間慢慢退出市場(chǎng)了
參考文獻(xiàn)
Android官方文獻(xiàn)
音頻基礎(chǔ)
PCM編碼
下一篇:Android 音視頻之音頻編碼
有問題的地方請(qǐng)大家?guī)兔χ赋鋈菅啵x謝。
持續(xù)更新中...