Audio
聲音的數位化 什麼是聲音? 聲音是像光一樣的波長的現象,但是這是巨觀來看,它其實是牽涉到空氣中的分子在一些實體設備運作下被壓縮與放大的結果。 例如,一個音效系統中的喇叭前後的震動產生一個縱向的壓力波,而這個波就是我們所接受到的聲音。. 因為聲音是一個壓力波,它是一個連續的數值,而不是數位資料。 即使這樣的壓力波是縱向的,它們仍然有波的特質與行為,如反射(反彈,bouncing), 折射(強度的不同的波進入媒介後角度的改變與繞射(沿著物體周圍彎曲)。 假使我們希望使用聲音的數位版本,必須形成聲音資訊的數位表示方式。
數位化(Digitization) 數位化意味著轉換成一串數字。 下圖是聲音的一維表示圖:振幅值取決於一個一維的變數,就是時間。
數位化(Digitization) 上圖必須把時間及振幅 作為數位化的參數,也就是取樣時要將它們記錄:一個時間對應一個振幅。 取樣即是測量我們想要知道訊號上的數值,取樣的間距通常會是許多相同大小的區間。 第一種取樣方式,就是利用在相同長度的時間間隔做測量。 這樣測量的速率叫做測量頻率(sampling frequency) 對聲音而言,典型的取樣頻率是8 kHz (8,000 samples per second) 到48 kHz。 在振幅或電壓的象限來取樣叫做quantization
數位化(Digitization)
數位化 因此決定要如何將聲音資料數位化,我們需要知道下列的問題: 取樣速率是多少? 資料可以量化到什麼程度,量化的量是一致的嗎? 聲音資料的格式為何?
Nyquist Theorem 訊號可以被拆成一組正弦波的總和,左圖顯示有比重的正弦撥可以建立一個複雜的訊號。
Nyquist Theorem Nyquist理論是要告知取樣的頻率要多快才可以還原本來的聲音。 下圖(a)顯示單一的一個正弦波:它是一個單純的頻率 。 假使取樣速率恰好與實際頻率相等,下圖(b)顯示會還原一個錯誤的訊號:它只是一個沒有頻率的常數。 再來,如果取樣變成了1.5倍,下圖(c)顯示所得到仍是一個不正確頻率的波 (alias) ,這個波的頻率小於原來訊號:是原來的一半 (頂點間的波長是原來的兩倍)。 因此正確的取樣頻率必須至少是原來訊號的兩倍,這就是所謂的Nyquist rate。
Nyquist Theorem
Signal to Noise Ratio (SNR) 測量訊號品值的方法。 SNR通常是以decibel為單位(dB),而1 dB就是1bel的十分之一。以db為單位SNR值被定義成電壓平方的以10x為底的對數,詳細定義如下:: SNR = 10log10V2signal /V2noise=20log10Vsignal /Vnoise
Signal to Noise Ratio (SNR) 訊號的能量是與電壓的平方成比正比. 例如: 假始訊號電壓為雜訊訊號電壓的十倍, 那SNR就是20log10(10)=20dB. 就能量而言,10把小提琴的能量當然是一把小提琴能量的十倍,然而以能量比的SNR就是10dB, or 1B. 通常我們所聽到四周的聲音的層級就是靠decibel來區分,也就是以我們可以聽到最安靜的聲音來做比例,下表就是四周聲音大概的分級。
Signal to Quantization Noise Ratio 除了在原來類比訊號中會出現雜訊外,另外也會有因為量化所產生的誤差。 假使電壓設在0到1之間,但是我們只有8個位元來表示不同的電壓,所以我們也只能有效地將所有連續的電壓值用256個不同的值來代表。 這樣當然會有所謂的進位誤差(round-off error),這不算真的雜訊,通常我們會稱它為量化誤差(quantization noise 或 quantization error).
Signal to Quantization Noise Ratio 量化的品質是由Signal to Quantization Noise Ratio (SQNR)來區分。 Quantization noise: 對一個特定的取樣時間,在最接近量化區間的量化數值與實際類比訊號數值之間差異。 最多,這樣的誤差就是區間值的一半。 對每個取樣有N個位元量化準確度下,SQNR 可以簡單地由下表示: SQNR = 20log10Vsignal /Vquan noise = 20log10 2N-1/(1/2)= 20Nlog2 = 6.02N(dB)
線性與非線性量化 線性量化方式:樣本是以平均的量化值來儲存。 非平均方式量化(Non-uniform quantization): 以人的聽力敏感度為準來設定更適當且不同大小的區間。
聲音的過濾 在取樣與AD轉換之前,聲音訊號通常也會做過濾來清除不需要的頻率訊號。 而要保留的訊號與其應用有關: 對語音而言,頻率是保留在50Hz到10kHz之間,通常可以利用一個可以濾掉較低及較高頻訊號波的band-pass filter將其它的訊號去掉。 一個音樂的訊號一般是落在20Hz與20kHz之間 在DA 轉換器的末端,高頻可以在輸出重現 因為取樣及量化,原來平順的訊號會被一系列含有所有可能頻率的step functions所取代。 所以在解碼端,在DA線路後端會使用一個low-pass filter。
聲音品質與資料速率
Synthetic Sounds FM (Frequency Modulation),一個產生合成聲音的方法: x(t) = A(t) cos[ωcπt+I(t)cos(ωmπt+ψm)+ψc]
Synthetic Sounds Wave Table synthesis: 一個更準確產生聲音數位訊號的方法,也就是在取樣時用到的方法:
Musical Instrument Digital Interface 使用音效卡上對聲音處理的基本設定:使用一套簡單的scripting language以及硬體上 的設定稱為MIDI. MIDI Overview MIDI是一個scripting language,它會將所謂的事件編碼,事件就是代表某個聲音的產生。,例如一個MIDI事件可能包含一個音階的音調,它持續的時間及音量。 MIDI是一個被電子樂器廠商所採納的標準,它是用來控制像用來產生音樂的合成樂器與音效卡等設備。 大多數的合成樂器都支援MIDI,所以經由一個合成樂器所產生的聲音可以在其他的合成樂器上播放及處理,而且播放出來聲音會相當接近。 電腦必須有一個特別的MIDI介面,但是它是放在音效卡上,音效卡也必須同時有D/A與A/D轉換器。
MIDI的觀念 MIDI的channels是用來分開(指令)訊息. 有編號從0到15的16個通道。訊息中的最後面的的四個位元(LSB)代表通道。 通常通道對應的是一個特別的樂器:例如通道1是給鋼琴,通道10是給鼓等等。 然而視需要,可以中途換樂器給任何一個通道。
MIDI的觀念 系統訊息 一個合成樂器對於一個不屬它所在通道的MIDI訊息是不會理會的 像是給所有樂器變換調子或時序的一般訊息。 假使最前面的四個位元都是1,這個訊息就被認為是一個系統共用訊息。 一個合成樂器對於一個不屬它所在通道的MIDI訊息是不會理會的 假使有好幾個訊息是給它所在的通道,這個樂器的反應就是提供多聲音,也就是一次播放超過一個音符。
聲音的量化與傳輸 對聲音所產生量化後的取樣輸出叫做 PCM (Pulse Code Modulation)。另外一個版本是 DPCM (一個原始但有效的變形叫DM)。具有適應性的版本叫ADPCM。
Pulse Code Modulation 產生從類比訊號到數位訊號的基本技術就是取樣與量化(sampling and quantization). 量化包含選擇量值上的中斷點,然後重新對應任意在一段區間的值到一個具有代表性的級數。
PCM 區間界限的集合稱為decision boundaries,而代表值稱為reconstruction levels. 量化器輸入的區間界限將會對應到相同輸出級數形成一個所謂的coder mapping. 從量化器輸出的代表值是一個所謂的decoder mapping. 最後我們希望能壓縮資料 經由一個較少的位元數來代表一個最常出現的訊號值,來有效代表聲音的位元串流。
PCM 每種壓縮方法有三步驟: Transformation 將輸入資料轉換成一個較容易壓縮或更有效壓縮的新格式。 Loss 過程中資訊會漏失,量化就是一個主要產生漏失的步驟,我們使用一個比原來訊號少而且有限的 reconstruction levels。 Coding 對每一個輸出級數或符號配一個 codeword (這樣就形成了二進位位元流)。Codeword可以是固定長度或者是像Huffman coding一樣的可變長度編碼(VLC) (Chap. 7). 對聲音訊號而言,我們先介紹最單純的PCM的數位化,也會看到與無漏失可預測的編碼方式(Lossless Predictive Coding)與DPCM,這兩個方法是使用所謂差異化編碼方式(differential coding). 同樣也會看到所謂的適應性版本: ADPCM,一個可以提供較好的壓縮方式。
語音壓縮的PCM 假使語音的頻寬從50 Hz到10 kHz,所以Nyquist所建議的取樣速率是20 kHz。 如果使用等量量化(uniform quantization)而沒有採用所謂動態壓縮在不同大小的範圍內,這樣最小的取樣大小可能需要12個位元。
聲音的差值編碼 聲音不再以簡單的PCM方式儲存,取而代之的是利用取樣訊號間的差異,這些差異通常來說是比較小的數字,當然有可能可以使用較少的位元數來儲存。 零次預測器 一次預測器
破壞性壓縮 在可攜性、複雜度與品質間取得平衡 日常見到的VCD, DVD, MP3都經過破壞性壓縮 大多可同步播放
最小聽覺門檻 人耳聽覺的frequency response集中於2KHz~5KHz的音訊 利用類似BPF的手法使壓縮後的音訊集中於此頻段,進而減少資料量
最小聽覺門檻 BEFORE AFTER
遮蔽效應 由聽覺心理學的模型而來: 太陽
位元儲存槽 可以產生類似VBR的效果: 波形簡單時用較低的bit rate 將省下的空間留給波形複雜時用 維持整個流量的大小
Joint Stereo 立體音 一般MP3兩者交互使用 Intensity Stereo:減少高頻的音場資訊 Mid/Side (M/S) Stereo:以左右聲道都有收到的訊號為主,對左右不同的訊號加以處理 一般MP3兩者交互使用
Huffman Coding 一種常見的無失真壓縮的方法 利用使用機率來編碼 實際使用約可節省20%之空間
無失真壓縮 APE的壓縮技巧基本上有三大技巧: Mid/Side Coding Predictor Rice Coding
Mid/Side Coding 像先前提到的Mid/Side Stereo,將訊號分為兩喇叭的mean和difference進行編碼
Predictor 在時域上的音樂訊號彼此的關聯性都不小 我們可以利用adapting的predictor將訊號中可預測的部份取出
Rice Coding 猜測編碼所需要的位元數 1. 根據先前的經驗猜測coding所需的位元數k 2. 當一個sample進入系統,取出並儲存它的最右k個bits 3. 將overflow的部份取出 4. 對overflow進行編碼,方式是:這個值是多少就加幾個0 e.g. 若k = 4,訊號大小= 18(10010),則編碼後的結果是00010