国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-14 11:13:30
字體:
來源:轉載
供稿:網友

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

采樣 -> 量化 -> 編碼

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

采樣頻率

采樣頻率是指單位時間內對聲音模擬信號的采樣次數。采樣率類似于視頻的幀數,比如電影的采樣率是24Hz。當我們把采樣到的一個個靜止畫面再以采樣率同樣的速度回放時,看到的就是連續的畫面。同樣的道理,把以44.1kHZ采樣率記錄的CD以同樣的速率播放時,就能聽到連續的聲音。顯然,這個采樣率越高,聽到的聲音和看到的圖像就越連貫。當然,人的聽覺和視覺器官能分辨的采樣率是有限的。對同一段聲音,用20kHz和44.1kHz來采樣,重放時,可能可以聽出其中的差別,而基本上高于44.1kHZ采樣的聲音,比如說96kHz采樣,絕大部分人已經覺察不到兩種采樣出來的聲音的分別了。之所以使用44.1kHZ這個數值是因為經過了反復實驗,人們發現這個采樣精度最合適,低于這個值就會有較明顯的損失,而高于這個值人的耳朵已經很難分辨,而且增大了數字音頻所占用的空間。我們所使用的CD的采樣標準就是44.1k。

采樣位數

采樣位數可以理解為采集卡處理聲音的解析度。這個數值越大,解析度就越高,錄制和回放的聲音就越真實。我們首先要知道:電腦中的聲音文件是用數字0和1來表示的。連續的模擬信號按一定的采樣頻率經數碼脈沖取樣后,每一個離散的脈沖信號被以一定的量化精度量化成一串二進制編碼流,這串編碼流的位數即為采樣位數,也稱為量化精度。

在電腦上錄音的本質就是把模擬聲音信號轉換成數字信號。反之,在播放時則是把數字信號還原成模擬聲音信號輸出。采集卡的位是指采集卡在采集和播放聲音文件時所使用數字聲音信號的二進制位數。采集卡的位客觀地反映了數字聲音信號對輸入聲音信號描述的準確程度。例如,同一段音頻信息,使用8bit描述單個采樣信息,那么采樣量化的范圍就是0~255,如果使用16bit表示單個采樣值,那么相應的采樣量化的范圍為0~64k。與8位采樣位數相比,16位采樣的動態范圍的寬度更小,動態范圍更寬廣,聲音的被記錄的更加精細。一般CD使用的采樣位數為16位。

16位二進制數的最小值是0000000000000000,最大值是1111111111111111,對應的十進制數就是0和65535,也就是最大和最小值之間的差值是65535,也就是說,它量化的模擬量的動態范圍可以差65535,也就是96.32分貝(20 * lg65535)),所以,量化精度只和動態范圍有關,和頻率響應沒關系。動態范圍定在96分貝也是有道理的,人耳的無痛苦極限聲壓是90分貝,96分貝的動態范圍在普通應用中足夠使用,所以96分貝動態范圍內的模擬波,經量化后,不會產生削波失真的。

所謂分貝是指兩個相同的物理量(例A1和A0)之比取以10為底的對數并乘以10(或20)。N = 10lg(A1/A0) 分貝符號為”dB”,它是無量綱的。式中A0是基準量(或參考量),A是被量度量。被量度量和基準量之比取對數,這對數值稱為被量度量的”級”。亦即用對數標度時,所得到的是比值,它代表被量度量比基準量高出多少”級”。

位速/比特率/碼率

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

從碼率的計算公式中可以清楚的看出碼率和采樣位數的關系:

碼率=取樣頻率×量化精度×聲道數

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

VBR、ABR、CBR

VBR(Variable Bitrate)動態比特率。也就是沒有固定的比特率,壓縮軟件在壓縮時根據音頻數據即時確定使用什么比特率。這是新發展的算法,他們將一首歌的復雜部分用高Bitrate編碼,簡單部分用低Bitrate編碼。主意雖然不錯,可惜新編碼器的VBR算法很差,音質與CBR相去甚遠。幸運的是, Lame完美地優化了VBR算法,使之成為MP3的最佳編碼模式。這是以質量為前提兼顧文件大小的方式,推薦編碼模式。

ABR(Average Bitrate)平均比特率,是VBR的一種插值參數。Lame針對CBR不佳的文件體積比和VBR生成文件大小不定的特點獨創了這種編碼模式。ABR也被稱為“Safe VBR”,它是在指定的平均Bitrate內,以每50幀(30幀約1秒)為一段,低頻和不敏感頻率使用相對低的流量,高頻和大動態表現時使用高流量。舉例來說,當指定用192kbps ABR對一段wav文件進行編碼時,Lame會將該文件的85%用192kbps固定編碼,然后對剩余15%進行動態優化:復雜部分用高于192kbps 來編碼、簡單部分用低于192kbps來編碼。與192kbps CBR相比,192kbps ABR在文件大小上相差不多,音質卻提高不少。ABR編碼在速度上是VBR編碼的2到3倍,在128-256kbps范圍內質量要好于CBR。可以做為 VBR和CBR的一種折衷選擇。

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

PCM格式與LPCM格式

PCM(脈沖編碼調制)是一種將模擬語音信號變換為數字信號的編碼方式。主要經過3個過程:抽樣、量化和編碼。抽樣過程將連續時間模擬信號變為離散時間、連續幅度的抽樣信號,量化過程將抽樣信號變為離散時間、離散幅度的數字信號,編碼過程將量化后的信號編碼成為一個二進制碼組輸出。

量化分為線性量化和非線性量化。線性量化在整個量化范圍內,量化間隔均相等,稱為LPCM。非線性量化采用不等的量化間隔。量化間隔數由編碼的二進制位數決定。例如,CD采用16bit線性量化,則量化間隔數L=65536。位數(n)越多,精度越高,信噪比SNR=6.02n+1.76(dB)也越高。但編碼的二進制位數不是無限制的,需要根據所需的數據率確定。比如:CD可以達到的數據率為2×44.1×16=1411.2Kbit/s。

總而言之,LPCM格式中的音頻數據是未壓縮的線性量化后的音頻數據。

用iOS的官方文檔中對幾個關鍵詞的解釋:

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幀為單位的,我們一般將壓縮后的音頻數據幀稱為媒體幀,對應原始的PCM數據稱為原始幀。每個媒體幀又分成head頭,body數據體。在幀頭中,會存儲這個媒體幀中body部分的碼率,采樣率等解碼必須的信息,因此每一個媒體幀都可以獨立于文件存在和播放。在body中存儲著一個或者多個媒體幀,這些媒體真是若干個PCM原始幀經過特定的壓縮算法壓縮得到的。通常情況下,我們將單位時間的媒體幀的個數稱為幀率。

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 板桥市| 宁阳县| 黔东| 长治市| 工布江达县| 民县| 哈巴河县| 曲松县| 高雄县| 吴堡县| 临桂县| 花垣县| 封丘县| 保康县| 探索| 海口市| 桑日县| 和顺县| 德昌县| 尚志市| 海南省| 广汉市| 马公市| 曲麻莱县| 都昌县| 沂南县| 高青县| 丹棱县| 灵璧县| 旅游| 稷山县| 仁怀市| 句容市| 遂宁市| 中阳县| 四会市| 甘孜县| 菏泽市| 保德县| 棋牌| 高平市|