細說音樂CD(Compact Disc Digital Audio)
關於音樂CD實在是有太多可以聊了,這個於1982年由Sony和Philips共同制定於紅皮書的儲存媒體,便於攜帶音質又比錄音帶好,流行至今毫無頹勢。關於它的規格有許多有趣的故事,例如為什麼一片標準長度的CD是74分鐘呢?話說這是因為設計者想要把貝多芬第九號交響曲存進一片CD中,於是開始估計CD的直徑,另一套說法是著名指揮家卡拉揚(Herbert von Karajan)這樣要求,也有人說是Sony公司當時主席的太太這樣要求,另一套說法是Sony當時的Mr. Oga所決定的。另外要補充的是Herbert von Karajan指揮的貝多芬第九號交響曲總長度大概在68分鐘左右,一般的版本大概在65~74分中間分布。 根據網友nightmare告知,大賀典雄的傳記記載當卡拉揚還活著時,跟大賀的交情匪淺(算亦師亦友的感情吧),因此當年Philips找上 Sony制定CD規格時,大賀就一口咬定一片CD一定要能裝得下貝多芬第九號交響曲(大賀本身是聲樂家),因為古典音樂單首曲目的長度比這個長的也寥寥無幾,為了在聆賞時不影響興致,所以大賀對此非常堅持,而日後大賀用此錄卡拉揚預演的曲目,並讓卡拉揚聽,而卡拉揚非常讚賞這個劃時代的數位媒體,甚至後來在說明會之類的活動時,卡拉揚也幫 CD 說了不少好話。 CD是以螺旋狀由內到外儲存資料,在一片標準74分鐘的CD中,從裡繞到外總共有22188圈,把它全部伸展開來長達5.7km。音樂的CD讀取方式是等線速度(CLV),每秒有1.2m長的資料經過雷射頭,雷射在真空中波長為780nm,以偵測CD表面的凹凸變化判讀訊號。表面的凹凸刻痕寬 0.5um,深度為0.11um(約為780nm雷射在CD塑膠材質內波長的1/4),長度為0.8到3.1um。CD是以由凹變凸和由凸變凹定義為1,平坦的部分為0,所以改變刻痕的長度可以改變資料內容。而讀取頭就是靠著凹變凸和由凸變凹時的光干涉作用來判讀訊號。 音樂CD的規格為什麼是44.1kHz、16Bits呢?關於44.1kHz這個數字的選取分為兩個層面。首先我們知道人耳的聆聽範圍是20Hz到 20kHz,根據Nyquist Functions,理論上我們只要用40kHz以上的取樣率就可以完整紀錄20kHz以下的訊號。那麼為什麼要用44.1kHz這個數字呢?那是因為在 CD發明前硬碟還很貴,所以主要數位音訊儲存媒體是錄影帶,用黑白來記錄0與1。而當時的錄影帶格式為每秒30張,而一張圖又可以分為490條線,每一條線又可以儲存三個取樣訊號,因此每秒有30*490*3=44100個取樣點,而為了研發的方便,CD也繼承了這個規格,這就是44.1kHz的由來。 一張刮痕累累的CD放到CD Player中聽起來聲音常沒有什麼問題,這又是什麼原因呢?這是一個非常複雜的問題,我們必須從CD的訊號儲存格式說起。首先要引入的名詞是 block,CD每秒鐘的資料被分成7350個block。每個block內有588bits的資料。可是這588bits無法全部用來儲存有意義的資料,因為過度密集的凹凸變化會造成硬體設計難度的增加,且CD是以由凹變凸和由凸變凹定義為1,無法重複出現1,因此每14個bits中只有8個bits 是有意義的,這就是所謂EFM(Eight-to-Fourteen-Modulation)的目的。扣除6bits無意義的資料,每個block剩下 588*8/14=336bits,再扣除同步(sync)與合併(merge)資訊,剩下264bits,等於264/8=33bytes。在這33個 data bytes中,有1個sub-code byte、12個odd-audio bytes、4個Q-redundancy bytes、12個even-audio bytes和4個P-redundancy bytes。其中最有意義的就是那12+12=24個音訊bytes,每個block共有24*8=192bits,由於CD以16bits紀錄資料大小,因此每個block有6個立體聲取樣點資料(6*16*2=192)。還記得前面說過每秒鐘有7350個block嗎?由此可以得知每秒鐘有 6*7350=44100個立體聲取樣點!沒錯,就是這個數字。順帶一提的是每98個block組成一個frame,每秒有75個frame(98*75 =7350)。好了,我們還沒講到重點,為什麼有輕微刮痕的CD聽起來還是很正常呢? 答案就在於這24bits的音訊資料,並非單純按照出現順序儲存在單一的block中,而是打散順序離散分布在接下來109個block中,因此若有刮痕造成一部份的資料無法正確讀出,可以藉由前面提到的P-redundancy bytes和Q-redundancy bytes作同位檢查確保資料正確性,進而重建資料,還可利用聲音連續變化的特性,由問題資料的前後取樣點來內插補點。實際編碼時,是先將12bytes 的even samples重新排列然後經由C2編碼計算出4 bytes的Q-redundancy得到28bytes的資料,然後由這28bytes的資料來決定這24bytes的音訊要如何分布在0到108個 block中。再來將這28Bytes的資料經過C1編碼,如此就得到4bytes的P-redundancy。P-redundancy另外的用途是確保當取樣點都為0時這block中的32bits仍不都為零。另外每個block還有一個sub-code byte,其用途非常廣泛,在lead-in的區域sub-code紀錄了這張CD有幾軌、總長度多少﹔在音軌的部分則記錄了從這軌開頭已經經歷了多少時間、從第一軌開頭又經歷了多少時間、這音軌是二聲道還是四聲道(不過從來沒聽說過四聲道的CD)、是否允許複製、以及該音軌是否有經過Pre- emphasis處理與一些偵錯資訊。另外sub-code也可以用來記錄該CD的UPC(Universal Product Code)碼與該音軌的ISRC(International Standard Recording Code)碼。ISRC由IFPI統一發放,前兩碼英文代表國名,再來三碼英文為發行者,最後五碼是數字。 我們常在古典音樂CD上看到DDD,ADD,AAD字樣,又代表了什麼意思呢?這三個英文其實是Digital或Analog的縮寫,第一個英文表示錄音時的母帶為數位或是類比格式,第二的英文代表混音及剪輯時母帶使用數位或是類比格式,最後一個英文字代表最終的Master母帶是用數位還是類比格式儲存,由於音樂CD的母帶一定是數位化的,因此最後一個英文字都是D。 Pre-emphasis就是在錄音的時候將高頻訊號放大,放音時再把訊號用同樣的倍率縮小以還原波形(De-emphasis),在類比錄音的時代,這個技巧的主要用途是作為提高訊噪比。例如廣播發送時將頻率1500Hz to 2000Hz以上以每八度音6dB的倍率提高訊號,或是LP唱片(LP)在錄製時的RIAA(美國唱片工業協會)等化曲線(不過這曲線的制定目的主要與 LP的結構有關,且放大訊號不只高頻而已),以及錄音帶用的杜比抑噪系統,都是使用同樣的原理。在數位的領域,Pre-emphasis的主要用意在於降低量化失真,因為一般的音樂訊號高頻段往往振幅比較小,而且越高的頻率振幅越小,所以從PCM取樣的原理中我們可以發現這些小振幅會被分配到較少數的 bits來記錄,這樣有效描述振幅的數字就變小了,與原波型的誤差就變大了,因此我們使用Pre-emphasis的技巧先增加高頻振幅再取樣來降低高頻量化失真。使用這功能的音樂CD非常少見,推測是因為Pre-emphasis和De-emphasis這一來一回的計算,反而造成了更大的失真。
數位音訊處理名詞解釋
Pre-emphasis
Supersampling(Oversampling)
Supersampling字面上的翻譯叫做超取樣,原理是從已有的數位訊號經過內插補點計算得到取樣點間的訊號振幅資訊,例如把44.1kHz轉成 176.4kHz的四倍超取樣。超取樣並不能幫我們把更多的細節從量化失真中找回來,它的主要用意是幫助我們獲得更正確的類比訊號。怎麼說是更正確的呢?從之前關於PCM取樣的介紹我們知道越高頻的訊號被取樣的次數就會越少,想像一個20kHz的正弦波經過44.1kHz的取樣,一個週期分不到三個取樣點,要從這三個取樣點算出原來的正弦波理論上是可以辦到的,但實作的這樣的數位電路來計算是非常繁雜的,因此發展出來了各種取巧的方式希望能藉由較簡單的計算得到接近原波型的結果,超取樣算是其中的一種方法,用意是為了重建高頻訊號與原始波型。
Dynamic range
中文叫做動態範圍,也就是容許紀錄資料最大值與最小值的比值,例如16Bits紀錄精度的音樂CD其動態範圍最大就是20*log[(2^16) /1]=96.3dB。用越多bit紀錄,我們就可以得到越大的動態範圍。如果能紀錄越大的動態範圍,我們就能紀錄越多的細節,並且更能保存爆炸聲等大音量聲音的波形。當動態範圍不足時,為了不造成破音,我們只好降低錄音音量,可是小範圍的聲音變化可以分配的bit就減少了,造成量化失真更為嚴重。
Peak Level
把一段波型的最大振幅叫做Peak,peak level則是這最大振幅與最大可容許紀錄振幅的比值。在16bits的例子中,最大振幅就是32767,20bits的例子中就是524287。在之前 PCM取樣原理的介紹中我們可以發現越大的振幅可以分配到越多的bit去紀錄,因此同樣的一段波型只要Peak Level不超過1(超過可能會爆音),則原始類比訊號音量越大紀錄的波型越精準。
Normalize
Normalize就是將一段波型音量放大,放大的目標是讓原波型的最大振幅(peak)等於最大可容許振幅。我們常常會抱怨自做精選集CD這一首音量好大,下一首音量又太小,這時將每首都經過Normalize處理可以改善這個問題。不過由於經放大過後的振幅大小可能不是整數,最後不可避免要用到四捨五入之類的技巧,因此處理過的波型和原波型造成非線性放大產生誤差,再度導致量化失真。所以為了保留音色與相位的正確性,處理數位音樂盡量避免 Normalize,除非放到後剛好不須捨棄位數。
Dither
Dither是數位音樂處理上非常神奇的技巧,目的是用少數的bits達到與較多bits同樣的聽覺效果,方法是在最後一個bit(LSB: Least Significant Bit)動手腳。例如用16bits紀錄聽起來好似20bits的資料,聽到原先16Bits無法紀錄的微小資訊。舉例來說,今天我有個20Bits的取樣資料,我現在想把存成16Bits的資料格式,最簡單的轉換方式就是直接把後面四個bits直接去掉,但是這樣就失去用20Bits錄音/混音的意義。比較技巧性的方法是在第17~20Bits中加入一些噪音,這段噪音就叫做dither。這些噪音加入後,可能會進位而改變第16個Bit的資料,然後我們再把最後四個bits刪掉,這個過程我們稱為redithering,用意是讓後面四個bits的資料線性地反映在第16個bit上。由於人耳具有輕易將噪音與樂音分離的能力,所以雖然我們加入了噪音,實際上我們卻聽到了更多音樂的細節。
關於dither有種比喻是說我們透過手指間的細縫只能看到眼前部分的圖形,但是如果前後揮動手掌,就可以透過不同時刻看到的各個圖形的一小部份,在腦中建構出完整的圖形資訊,這是大腦神奇的地方,不是簡單的理論就可以說得通的。在眾多的dither技術中,Sony公司的SBM(Super Bit Mapping),LIVE STUDIO RECORDINGS的ULTRA MATRIX PROCESSING,都是專攻20bits轉16bits的技術。Dither在數位音訊處理用途非常廣泛,舉凡兩個波型的相加、振幅的縮放、 Normalize都會用到。現在的錄音室已經進展到24bits錄音,在CD還是主流儲存媒體的時代,dither還是非常重要的技術。順道一提,在影像處理領域,將24bits的全彩圖形以16bits的高彩畫面顯示也會用到dither的技術。
Jitter
Jitter一般翻譯作時基誤差,是數位音訊播放音質劣化的原因之一。Jitter會造成聲音的改變,成因並非振幅資料本身的錯誤,而是時間部分出錯了。在之前數位化的過程中我們知道一個取樣點包括振幅和時間這兩項資料,而jitter造成振幅沒有在準確的時間呈現出來使得波型扭曲。在普通的CD Player中,由於讀取機構是由資料流量來判斷轉速是否合宜,而電路的工作時脈又是以讀出的一連串數位訊號的多少來決定,因此當轉速不穩定時,每秒讀出的資料數量就有誤差,而電路工作時脈就受到影響,由電路工作時間所決定的各個取樣點的出現時間與實際的時間就產生誤差,這就是jitter的成因之一。還有很多影響工作時脈的因素可能造成jitter,例如CD的重量與厚度是否均勻影響轉動穩定性、反射面的材質、石英震盪的品質、CD轉盤到DAC之間的連接線,都會造成jitter。要避免jitter發生最直接的方法就是re-clock,將接收的數位訊號先存到緩衝記憶體中,在精準的時鐘運作下重新送出這些數位訊號,並且讓後續的數位電路以這個時鐘為運作基準。有些Hi-End器材使用不同於一般S/PDIF的單線數位傳輸介面,加入包含時鐘訊號的接線用意即在此。S/PDIF將運作時脈資訊藏在資料的變化中,因此資料流量會影響運作時脈。
或許讀者仍對所謂資料正確但是音質受到影響感到疑惑,為了讓讀者對jitter有更深刻的認識在此提出一個相關實驗。準備一張音樂CD,然後複製成另外一張,並用抓音軌軟體檢查確保這兩張CD的資料內容是相同的,可是放到CD Player中聆聽卻發現兩張CD的音質有很大差異。原先猜測是因為CD Player的讀取機制不如電腦光碟機精準,但經過專業用音效卡CardDeluxe數位錄音從CD Player的數位輸出(SPDIF Out)的結果,經過多次的比對我們發現數位錄音的結果與直接抓音軌的資料內容相同,也就是說CD Player讀取資料內容並沒有問題,而影響音質的主要原因是jitter。單位時間資料流量不穩定的變動造成jitter,但這些資料內容本身並沒有出錯,因此不能單從數位錄音的資料發現錯誤。一般來講,除非設計上有瑕疵,jitter不該會大到使資料內容出錯,否則該稱為Error而非jitter。
留言列表