💗計算機基礎系列文章💗
- 👉🍀計算機基礎(1)——計算機的發展史🍀
- 👉🍀計算機基礎(2)——馮諾依曼體系結構🍀
- 👉🍀計算機基礎(3)——計算機的系統組成🍀
- 👉🍀計算機基礎(4)——操作系統概述🍀
- 👉🍀計算機基礎(5)——進制與進制轉換🍀
- 👉🍀計算機基礎(6)——編碼與解碼🍀
- 👉🍀計算機基礎(7)——數字圖像技術🍀
- 👉🍀計算機基礎(8)——音頻數字化(模電與數電)🍀
- 👉🍀計算機基礎(9)——原碼、補碼、反碼🍀
- 👉🍀計算機基礎(10)——編程語言與跨平臺🍀
音頻的編碼與解碼
二進制轉換音頻的過程也叫音頻數字化,其過程較為復雜,是模擬聲音信號轉變為數字信號再由數字信號轉換為模擬信號的一個技術實現,其過程涉及到聲音的采集,轉換為模擬信號,采樣、量化等。了解音頻數字化之前我們先了解一些關于聲音的一些前置知識,
1.1 聲波
我們知道聲音是以聲波的形式在空氣中傳播的,聲波是聲音的物理表現形式,它是由物體振動產生的能量傳播方式。當物體振動時,它會激發周圍介質(如空氣、液體或固體)中的分子或原子振動,這些振動隨后以波的形式傳播開來。
一段聲波中包含有聲音的頻率、振幅、音色等聲音元素,通過聲波我們可以將聲音這一抽象概念通過數據的形式表現出來。聲波的采集就是原聲音的采集,通過麥克風、話筒等錄音設備就可以采集到一段聲音的聲波。
例如我們通過聲波來反映一段聲音的頻率、振幅、音色等信息。
(1)通過聲波的頻率反映聲音音調,頻率低音調低,頻率高音調高。
(2)通過聲波的振幅反映聲音響度,振幅大響度大,振幅小響度小。
(3)通過聲波的規律性反映聲音音色,一般來說具有規律性的聲波聽起來悅耳,反之為噪音。
1.2 模擬信號
當錄音設備采集到聲波數據后將會以電信號的方式模擬出聲波信號,聲波被電信號模擬出來的信號就是聲音模擬信號,這種模擬信號是對聲波的一種電子化表示,以便在音響設備中再現出類似原始聲波的效果。
模擬信號是連續變化的,模擬信號的最大特點是隨著時間連續變化的值,它可以包含無限數量的可能幅度值。
我們可以把模擬信號模擬聲波的過程看作是汽車的儀表盤模擬汽車行駛速度的過程,當駕駛員深踩一腳油門時,汽車會迅速提高行駛速度,然而汽車儀表盤的數據并不是從0km/h直接變成80km/h,雖然這個變化的時間很短,但也是從0km/h連續變化到80km/h,期間汽車儀表盤指針肯定指向過10、11.7、12.785、20.491、38.4、69.8、78等這樣的數據。同理,當聲波的頻率忽高忽低,振幅忽大忽小時模擬信號也會隨著時間連續不間斷的模擬出聲波頻率的高低以及振幅的大小。
例如汽車行駛速度的通過儀表盤來模擬,如圖所示。
通過觀察曲線圖我們可以看到,取任意一個時間點都可以獲取到這個時間點所對應的速度值,通過聲音模擬信號模擬聲波的變化也類似于這樣。如圖所示,當通過模擬信號將聲波信息模擬出來后,取任意一個時間點所對應的聲波幅度數值也能取出來,這就是模擬信號的最大特點——隨著時間連續變化的值。
類似于模擬信號的變化還有水銀溫度計的變化,當我們把水銀溫度計放置在10°的水溫環境下時突然加了一些溫水進去,使得水溫一下子驟升至50°,然而水銀溫度計的數值肯定經過了20°、32.7°、39.1°、45.8°等數值,并不是從10°直接變成到50°,而是隨著時間的變化溫度上數值從10°增加至50°(雖然這個時間可能非常短)。
1.3 數字信號
數字信號是模擬信號的數字化,它是一系列離散的電脈沖(信號),可以利用其某一瞬間的狀態來表示具體的數據。數字信號與模擬信號最大的不同點在于模擬信號是隨著時間連續變化的值,它可以去任意時間點上的數據。而數字信號則是離散的數值,即取某幾個瞬間的狀態來表示具體的數據,數字信號包含的是有限數量的可能幅度值。
如圖所示,數字信號來模擬聲波時,只有某個具體的時間點才會有對應的聲波數據,而不是和模擬信號那樣任意的時間點上都能查詢到對應的聲波數據。
數字信號只有某幾個時間點上才能有對應的數據,這些時間點并不是連續的,這意味著某些時間上的數據會缺失,將數字信號的這些時間點連接起來可以大致還原模擬信號。
如果將模擬信號看著是汽車上的儀表盤、水銀溫度計,那么數字信號就可以看做是電動車上面的數字儀表盤和電子溫度槍。
不管是數字儀表盤還是電子溫度槍,這些設備的數值和時間都是離散的。以電動車的數字儀表盤舉例,例如我們騎電動車時突然深擰加速,假設速度從0提速到了40km/h,那么電子儀表盤上的速度很有可能就從10km/h變化到25km/h再變化到34km/h,最后變化到40km/h,在電子儀表盤模擬電動車行駛速度的變化時,只顯示了(模擬了)25、34、40這些數值,而25~34
以及34~40
之間的數據都不會被顯示(模擬)。
那為什么有了模擬信號還要轉換為數字信號呢?因為數字信號相對比模擬信號存在有很多優點,如下:
(1)數字信號抗干擾性強:數字信號在傳輸和處理過程中可以通過糾錯碼等技術來提高抗干擾能力,相比之下,模擬信號在傳輸和處理過程中容易受到噪聲和干擾的影響,導致信號失真或丟失。
(2)數字信號的可編程性:數字信號可以通過編程進行處理和操作,例如濾波、壓縮、加密等,這使得數字信號在處理和存儲方面更加靈活和方便。
(3)數字信號的可復制性:數字信號可以通過復制和傳輸進行無損的復制和傳遞,而模擬信號在復制和傳輸過程中可能會產生失真或損失。
(4)數字信號便于存儲和傳輸:數字信號以二進制數的形式表示,便于計算機進行存儲和傳輸。同時,數字信號可以進行壓縮處理,以節省存儲空間和提高傳輸效率。
(5)數字信號便于加密和解密:數字信號可以通過加密算法進行加密處理,以保護信號的安全性和隱私性。而模擬信號則難以實現加密和解密操作。
數字信號相對模擬具有許多優勢,使其在現代通信中占據主導地位。
1.4 音頻數字化
所謂音頻數字化就是把模擬信號如何具體的轉換為數字信號,其過程分為采樣、量化、編碼等。
1.4.1 采樣
(1)采樣:將連續的模擬聲音信號轉換為一系列離散的采樣點的過程,采樣點隨后由模擬數字轉換器(ADC)轉換為數字信號,以便計算機或其他數字設備進行處理、存儲、傳輸和播放。每秒鐘對聲波幅度值樣本的采樣次數稱為采樣頻率,單位為HZ,聲音的質量受采樣頻率的影響。
如圖所示,在一段模擬信號中,我們對其根據指定時間進行采樣,我們可以發現采樣的頻率越高,與模擬信號越接近,聲音還原程度越高,數據量也越大。
1.4.2 量化
(2)量化:將幅度上連續取值(模擬量)的每一個樣本轉換為離散值(數字量)表示的過程,它實現了在幅度軸上對信號的數字化。通過量化,音頻信號被轉換為一系列的數字值,這些數字值可以精確地表示原始音頻信號的幅度,如圖所示。
通過對比不同的量化等級,我們可以發現量化等級越高量化值的精度也越高,更高的量化等級意味著更多的量化值可以用來表示音頻樣本,就能夠更好的還原音頻。
計算機底層是以二進制存儲的,因此我們需要將量化值轉換為二進制。在聲音量化過程中,我們使用量化位數來表示量化值所需要的二進制位數,例如在量化等級為4的情況下使用兩位二進制數就可以表示量化值,因此它的量化位數就是2bit,量化等級為8的量化位數就是3bit,如圖所示。
然而,需要注意的是,量化位數的提高雖然能夠提升音質,但也會導致音頻文件的數據量增大。因為每個音頻樣本都需要用更多的二進制位來表示,所以音頻文件的存儲空間會相應增加。例如,一個16bit的音頻文件在數據量上會是8bit音頻文件的兩倍。
1.4.3 編碼
(3)編碼
聲音通過采樣、量化過后就成為了010101的二進制數,編碼決定了這些二進制數如何存儲,有的編碼規則的存儲效率非常高,同樣一段的音頻可以使用非常少的空間將其存儲,有的編碼規則則更加注重與音頻的質量,但可能會花費更多的空間來存儲。
不同的編碼方式就被分成了不同類型的音頻文件類型,常見的音頻文件有:
- WAV(Waveform Audio File Format)格式:WAV是一種無損音頻格式,音質非常好,因為是無損的,保留了原始音頻的所有信息。常用于多媒體開發的中間文件、保存音樂和音效素材。由于WAV是無損壓縮,因此文件體積相對較大。
- MP3(MPEG Audio Layer III):MP3是一種有損音頻格式,廣泛應用于音樂、廣播、電視等領域,具有較高的壓縮比和較好的音質。音質在128Kbit/s以上表現還不錯,但相較于無損格式有所損失。適合需要較小文件體積,且對音質要求不太苛刻的場合,如網絡音樂下載、移動設備存儲等。
- AAC(Advanced Audio Coding):ACC是一種高壓縮比的音頻壓縮算法,它的壓縮比要遠超過較老的音頻壓縮算法,如AC-3、MP3等。適用于需要較高音質,同時文件體積也要相對較小的場合,如在線音樂流媒體、手機鈴聲等。