iOS音頻系列(一)--音頻基礎

前些日子由于項目需要,一直在研究iOS CoreAudio相關(guān)的內(nèi)容.在這里記錄一些筆記.現(xiàn)實生活中,我們聽到的聲音都是時間連續(xù)的僻造,我們稱為這種信號叫模擬信號宴树。模擬信號需要進行數(shù)字化以后才能在計算機中使用缘圈。數(shù)字化的過程如下:

采樣 -> 量化 -> 編碼

通過獲取間隔相同時間的某個模擬信號的值穿香,然后對這些采樣以后得到的值進行量化,然后使用一定的bit進行編碼存儲贞岭,整個過程結(jié)束后就會輸出PCM數(shù)據(jù)八毯。在iOS的Core Audio Services中使用的音頻數(shù)據(jù)只能是線性PCM格式的音頻數(shù)據(jù),這是一種未進過壓縮的音頻數(shù)據(jù)格式瞄桨。要理解整個過程就需要理解多個重要概念:采樣頻率和采樣位數(shù)话速,比特率等。

采樣頻率

采樣頻率是指單位時間內(nèi)對聲音模擬信號的采樣次數(shù)芯侥。采樣率類似于視頻的幀數(shù)泊交,比如電影的采樣率是24Hz。當我們把采樣到的一個個靜止畫面再以采樣率同樣的速度回放時,看到的就是連續(xù)的畫面活合。同樣的道理雏婶,把以44.1kHZ采樣率記錄的CD以同樣的速率播放時,就能聽到連續(xù)的聲音白指。顯然留晚,這個采樣率越高,聽到的聲音和看到的圖像就越連貫告嘲。當然错维,人的聽覺和視覺器官能分辨的采樣率是有限的。對同一段聲音橄唬,用20kHz和44.1kHz來采樣赋焕,重放時,可能可以聽出其中的差別仰楚,而基本上高于44.1kHZ采樣的聲音隆判,比如說96kHz采樣,絕大部分人已經(jīng)覺察不到兩種采樣出來的聲音的分別了僧界。之所以使用44.1kHZ這個數(shù)值是因為經(jīng)過了反復實驗侨嘀,人們發(fā)現(xiàn)這個采樣精度最合適,低于這個值就會有較明顯的損失捂襟,而高于這個值人的耳朵已經(jīng)很難分辨咬腕,而且增大了數(shù)字音頻所占用的空間。我們所使用的CD的采樣標準就是44.1k葬荷。

采樣位數(shù)

采樣位數(shù)可以理解為采集卡處理聲音的解析度涨共。這個數(shù)值越大,解析度就越高宠漩,錄制和回放的聲音就越真實举反。我們首先要知道:電腦中的聲音文件是用數(shù)字0和1來表示的。連續(xù)的模擬信號按一定的采樣頻率經(jīng)數(shù)碼脈沖取樣后哄孤,每一個離散的脈沖信號被以一定的量化精度量化成一串二進制編碼流照筑,這串編碼流的位數(shù)即為采樣位數(shù)吹截,也稱為量化精度瘦陈。

在電腦上錄音的本質(zhì)就是把模擬聲音信號轉(zhuǎn)換成數(shù)字信號。反之波俄,在播放時則是把數(shù)字信號還原成模擬聲音信號輸出晨逝。采集卡的位是指采集卡在采集和播放聲音文件時所使用數(shù)字聲音信號的二進制位數(shù)。采集卡的位客觀地反映了數(shù)字聲音信號對輸入聲音信號描述的準確程度懦铺。例如捉貌,同一段音頻信息,使用8bit描述單個采樣信息,那么采樣量化的范圍就是0255,如果使用16bit表示單個采樣值,那么相應的采樣量化的范圍為064k趁窃。與8位采樣位數(shù)相比牧挣,16位采樣的動態(tài)范圍的寬度更小,動態(tài)范圍更寬廣醒陆,聲音的被記錄的更加精細瀑构。一般CD使用的采樣位數(shù)為16位。

16位二進制數(shù)的最小值是0000000000000000刨摩,最大值是1111111111111111寺晌,對應的十進制數(shù)就是0和65535,也就是最大和最小值之間的差值是65535澡刹,也就是說呻征,它量化的模擬量的動態(tài)范圍可以差65535,也就是96.32分貝(20 * lg65535))罢浇,所以陆赋,量化精度只和動態(tài)范圍有關(guān),和頻率響應沒關(guān)系嚷闭。動態(tài)范圍定在96分貝也是有道理的奏甫,人耳的無痛苦極限聲壓是90分貝,96分貝的動態(tài)范圍在普通應用中足夠使用凌受,所以96分貝動態(tài)范圍內(nèi)的模擬波阵子,經(jīng)量化后,不會產(chǎn)生削波失真的胜蛉。

所謂分貝是指兩個相同的物理量(例A1和A0)之比取以10為底的對數(shù)并乘以10(或20)挠进。N = 10lg(A1/A0) 分貝符號為"dB",它是無量綱的誊册。式中A0是基準量(或參考量)领突,A是被量度量。被量度量和基準量之比取對數(shù)案怯,這對數(shù)值稱為被量度量的"級"君旦。亦即用對數(shù)標度時,所得到的是比值嘲碱,它代表被量度量比基準量高出多少"級"金砍。

位速/比特率/碼率

位速/比特率/碼率描述的都是一個東西,是指在一個數(shù)據(jù)流中每秒鐘能通過的信息量麦锯。我們可能看到過音頻文件用 “128–Kbps MP3” 或 “64–Kbps WMA” 進行描述的情形恕稠。Kbps 表示 “每秒千位數(shù)”,因此數(shù)值越大表示數(shù)據(jù)越多:128–Kbps MP3 音頻文件包含的數(shù)據(jù)量是 64–Kbps WMA 文件的兩倍扶欣,并占用兩倍的空間鹅巍。(不過在這種情況下千扶,這兩種文件聽起來沒什么兩樣。原因是什么呢骆捧?有些文件格式比其他文件能夠更有效地利用數(shù)據(jù)澎羞, 64–Kbps WMA 文件的音質(zhì)與 128–Kbps MP3 的音質(zhì)相同。)需要了解的重要一點是敛苇,位速越高煤痕,信息量越大,對這些信息進行解碼的處理量就越大接谨,文件需要占用的空間也就越多摆碉。

從碼率的計算公式中可以清楚的看出碼率和采樣位數(shù)的關(guān)系:

碼率=取樣頻率×量化精度×聲道數(shù)

一張CD,雙聲道,采樣率44.1kHz,每個采樣位數(shù)13bit脓豪,時長74分鐘(4440秒)巷帝,則CD的容量為13*2*44100*4440約等于640MB

VBR扫夜、ABR楞泼、CBR

VBR(Variable Bitrate)動態(tài)比特率。也就是沒有固定的比特率笤闯,壓縮軟件在壓縮時根據(jù)音頻數(shù)據(jù)即時確定使用什么比特率堕阔。這是新發(fā)展的算法,他們將一首歌的復雜部分用高Bitrate編碼颗味,簡單部分用低Bitrate編碼超陆。主意雖然不錯,可惜新編碼器的VBR算法很差浦马,音質(zhì)與CBR相去甚遠时呀。幸運的是, Lame完美地優(yōu)化了VBR算法晶默,使之成為MP3的最佳編碼模式谨娜。這是以質(zhì)量為前提兼顧文件大小的方式,推薦編碼模式磺陡。

ABR(Average Bitrate)平均比特率趴梢,是VBR的一種插值參數(shù)。Lame針對CBR不佳的文件體積比和VBR生成文件大小不定的特點獨創(chuàng)了這種編碼模式币他。ABR也被稱為“Safe VBR”坞靶,它是在指定的平均Bitrate內(nèi),以每50幀(30幀約1秒)為一段圆丹,低頻和不敏感頻率使用相對低的流量滩愁,高頻和大動態(tài)表現(xiàn)時使用高流量。舉例來說辫封,當指定用192kbps ABR對一段wav文件進行編碼時硝枉,Lame會將該文件的85%用192kbps固定編碼,然后對剩余15%進行動態(tài)優(yōu)化:復雜部分用高于192kbps 來編碼倦微、簡單部分用低于192kbps來編碼妻味。與192kbps CBR相比,192kbps ABR在文件大小上相差不多欣福,音質(zhì)卻提高不少责球。ABR編碼在速度上是VBR編碼的2到3倍,在128-256kbps范圍內(nèi)質(zhì)量要好于CBR拓劝〕猓可以做為 VBR和CBR的一種折衷選擇。

CBR(Constant Bitrate)郑临,常數(shù)比特率栖博,指文件從頭到尾都是一種位速率。相對于VBR和ABR來講厢洞,它壓縮出來的文件體積很大仇让,但音質(zhì)卻不會有明顯的提高。

PCM格式與LPCM格式

PCM(脈沖編碼調(diào)制)是一種將模擬語音信號變換為數(shù)字信號的編碼方式躺翻。主要經(jīng)過3個過程:抽樣丧叽、量化和編碼。抽樣過程將連續(xù)時間模擬信號變?yōu)殡x散時間公你、連續(xù)幅度的抽樣信號踊淳,量化過程將抽樣信號變?yōu)殡x散時間、離散幅度的數(shù)字信號陕靠,編碼過程將量化后的信號編碼成為一個二進制碼組輸出嚣崭。

量化分為線性量化和非線性量化。線性量化在整個量化范圍內(nèi)懦傍,量化間隔均相等雹舀,稱為LPCM。非線性量化采用不等的量化間隔粗俱。量化間隔數(shù)由編碼的二進制位數(shù)決定说榆。例如,CD采用16bit線性量化寸认,則量化間隔數(shù)L=65536签财。位數(shù)(n)越多,精度越高偏塞,信噪比SNR=6.02n+1.76(dB)也越高唱蒸。但編碼的二進制位數(shù)不是無限制的,需要根據(jù)所需的數(shù)據(jù)率確定灸叼。比如:CD可以達到的數(shù)據(jù)率為2×44.1×16=1411.2Kbit/s神汹。

總而言之庆捺,LPCM格式中的音頻數(shù)據(jù)是未壓縮的線性量化后的音頻數(shù)據(jù)。

用iOS的官方文檔中對幾個關(guān)鍵詞的解釋:

  • A sample is single numerical value for a single channel.
  • A frame is a collection of time-coincident samples. For instance, a stereo sound file has two samples per frame, one for the left channel and one for the right channel.
  • A packet is a collection of one or more contiguous frames. In linear PCM audio, a packet is always a single frame. In compressed formats, it is typically more. A packet defines the smallest meaningful set of frames for a given audio data format.

壓縮過的音頻格式

在常見的音頻格式對PCM原始幀進行封裝時也是以frame幀為單位的屁魏,我們一般將壓縮后的音頻數(shù)據(jù)幀稱為媒體幀滔以,對應原始的PCM數(shù)據(jù)稱為原始幀。每個媒體幀又分成head頭氓拼,body數(shù)據(jù)體你画。在幀頭中,會存儲這個媒體幀中body部分的碼率桃漾,采樣率等解碼必須的信息鸥拧,因此每一個媒體幀都可以獨立于文件存在和播放腋腮。在body中存儲著一個或者多個媒體幀,這些媒體真是若干個PCM原始幀經(jīng)過特定的壓縮算法壓縮得到的。通常情況下砰蠢,我們將單位時間的媒體幀的個數(shù)稱為幀率亏栈。

上文的采樣率和幀率這兩個概念都描述了音頻媒體的“連續(xù)”性岳颇,二者的區(qū)別在于每個音頻的媒體幀中會包含多個音頻采樣(多個PCM data)氧骤,如1個AAC幀中包含1024個采樣。

在學習音頻/視頻相關(guān)內(nèi)容之前,首先需要弄清楚的的是音頻的文件類型和音頻格式是有本質(zhì)區(qū)別的.封裝類型比如.ogg,音頻格式比如.mp3.(具體的區(qū)別可以百度)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末几于,一起剝皮案震驚了整個濱河市蕊苗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沿彭,老刑警劉巖朽砰,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異喉刘,居然都是意外死亡瞧柔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門睦裳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來造锅,“玉大人,你說我怎么就攤上這事廉邑「缥担” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵蛛蒙,是天一觀的道長糙箍。 經(jīng)常有香客問我,道長牵祟,這世上最難降的妖魔是什么深夯? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮诺苹,結(jié)果婚禮上咕晋,老公的妹妹穿的比我還像新娘雹拄。我一直安慰自己,他們只是感情好捡需,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布办桨。 她就那樣靜靜地躺著筹淫,像睡著了一般站辉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上损姜,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天饰剥,我揣著相機與錄音,去河邊找鬼摧阅。 笑死汰蓉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的棒卷。 我是一名探鬼主播顾孽,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼比规!你這毒婦竟也來了若厚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蜒什,失蹤者是張志新(化名)和其女友劉穎测秸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灾常,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡霎冯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钞瀑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沈撞。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雕什,靈堂內(nèi)的尸體忽然破棺而出缠俺,到底是詐尸還是另有隱情,我是刑警寧澤监徘,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布晋修,位于F島的核電站,受9級特大地震影響凰盔,放射性物質(zhì)發(fā)生泄漏墓卦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一户敬、第九天 我趴在偏房一處隱蔽的房頂上張望落剪。 院中可真熱鬧睁本,春花似錦、人聲如沸忠怖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凡泣。三九已至枉疼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鞋拟,已是汗流浹背骂维。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贺纲,地道東北人航闺。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像猴誊,于是被迫代替她去往敵國和親潦刃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 前言 學習AudioToolBox有一段時間了懈叹,期間有遇到不少坑(主要還是英文不夠好乖杠,看官方文檔不甚明了)。隨著一...
    anyoptional閱讀 8,155評論 4 26
  • 前言 說到視頻,大家自己腦子里基本都會想起電影环揽、電視劇略荡、在線視頻等等,也會想起一些視頻格式 AVI歉胶、MP4汛兜、RMV...
    ForestSen閱讀 22,821評論 10 202
  • 摘要 該配置文件定義了支持高質(zhì)量音頻分發(fā)所需的Bluetooth?設備的要求。這些要求以終端用戶服務的方式表達通今,并...
    公子小水閱讀 9,423評論 0 4
  • OpusEncoder 1:獲得 OpusEncoder結(jié)構(gòu)的大小 2:分配和初始化 encoder狀態(tài).一個編碼...
    今憶Zoe閱讀 6,409評論 0 3
  • [TOC] 音視頻&流媒體 是什么促使我要寫這一篇音視頻入門文章粥谬?那是因為和一妹子打賭碼率的概念,結(jié)果輸了辫塌;對一個...
    AllenWu閱讀 4,794評論 1 25