看了站上有關的文章,覺得只是摸到邊而已
總覺得還不是很了解,只能大概知道那個是什麼東西而已
想請問各位哪邊有SRC更詳細的文獻或是相關的說明
可以對SRC有更深入的了解
謝謝... :lol: :lol:
想多了解SRC
版主: DearHoney、Tiberius、LukeLo、Ian、JamesT、justthinking、Barlos
SRC: Sampling Rate Converter,取樣頻率轉換器。
站上的說明文件中可以找到詳細的說明,請用「站內搜尋」。
簡單的說,現今大部分的娛樂用音效卡是遵循 AC'97 的規範來設計,因為電腦上有將數個不同取樣頻率的聲波檔做混音的需要,在考慮到聲音品質和製作成本之間要找一個折衷的平衡點:品質不能太差,成本也不能太高;AC'97 採用了將所有的聲音訊號一律轉為 48KHz 再由 DAC 輸出的設計。
這在電腦這種消費性產品上,雖然不是最好,但是是兼顧品質與成本的良好設計。
然而 SRC 的轉換計算是一種需要很高計算量的數位濾波計算,尤其是當轉換的兩個頻率之間不是相差一個簡單的整數倍的時候。而播放聲音的時候又需要即時的回放,使用者不希望聽到聲音延遲或斷音的現象。所以高品質的即時 SRC 轉換需要高速的硬體 DSP,或者是高 CPU 使用率的軟體運算。這些設計的成本也很高,在現實硬體能力或軟體環境的考量下,娛樂用的音效卡使用的 SRC 轉換品質一直不是做得很好。這也就是這幾年以來一直為人所詬病的 SRC 轉換品質的問題。
SRC 轉換是怎麼作的呢?譬如說從 44.1KHz upsampling 到 48KHz,"概念上" :
1. 因為 44.1K 和 48K 之間的比例是 147/160,所以先將 44.1K 每個 sample 之間多補上 159 個 0,也就是 44.1K 乘上 160,把取樣頻率加倍到 44.1K 和 48K 的最小公倍數 7.056 MHz。
2. 然後把所有 sample 經過一個 FIR 的數位濾波器, 內插計算新 sample 的數值。
3. 然後將計算好的結果輸出,每 147 sample 的輸出中砍掉 146 個,只留下一個,也就是將 7.056 MHz 除以 147,這樣取樣頻率頻率就會變成 48KHz。注意必需要檔掉 22.05KHz 以上的頻率。
所以 SRC 轉換會用到兩種 filter: interpolation filter 和 decimation filter。你可看到它的計算量有多高。(7.056 M 個 sample)
所以實作上會使用多種不同的方法,譬如說用 multi-stage conversion,減低計算量,還有不同的 filter 的特性設計,會造成不同的 SRC 品質變化。
一個讓你自行設計 SRC 使用的 FIR filters 的軟體
http://www.mds.com/products/src/src_filter.htm
一個評測不同 SRC 計算法的品質的網頁
http://leute.server.de/wilde/resample.html
以上是很簡單的介紹,詳細原理和過程請翻閱 DSP 的課本,Google 搜尋,或是請有心的大大補完。
站上的說明文件中可以找到詳細的說明,請用「站內搜尋」。
簡單的說,現今大部分的娛樂用音效卡是遵循 AC'97 的規範來設計,因為電腦上有將數個不同取樣頻率的聲波檔做混音的需要,在考慮到聲音品質和製作成本之間要找一個折衷的平衡點:品質不能太差,成本也不能太高;AC'97 採用了將所有的聲音訊號一律轉為 48KHz 再由 DAC 輸出的設計。
這在電腦這種消費性產品上,雖然不是最好,但是是兼顧品質與成本的良好設計。
然而 SRC 的轉換計算是一種需要很高計算量的數位濾波計算,尤其是當轉換的兩個頻率之間不是相差一個簡單的整數倍的時候。而播放聲音的時候又需要即時的回放,使用者不希望聽到聲音延遲或斷音的現象。所以高品質的即時 SRC 轉換需要高速的硬體 DSP,或者是高 CPU 使用率的軟體運算。這些設計的成本也很高,在現實硬體能力或軟體環境的考量下,娛樂用的音效卡使用的 SRC 轉換品質一直不是做得很好。這也就是這幾年以來一直為人所詬病的 SRC 轉換品質的問題。
SRC 轉換是怎麼作的呢?譬如說從 44.1KHz upsampling 到 48KHz,"概念上" :
1. 因為 44.1K 和 48K 之間的比例是 147/160,所以先將 44.1K 每個 sample 之間多補上 159 個 0,也就是 44.1K 乘上 160,把取樣頻率加倍到 44.1K 和 48K 的最小公倍數 7.056 MHz。
2. 然後把所有 sample 經過一個 FIR 的數位濾波器, 內插計算新 sample 的數值。
3. 然後將計算好的結果輸出,每 147 sample 的輸出中砍掉 146 個,只留下一個,也就是將 7.056 MHz 除以 147,這樣取樣頻率頻率就會變成 48KHz。注意必需要檔掉 22.05KHz 以上的頻率。
所以 SRC 轉換會用到兩種 filter: interpolation filter 和 decimation filter。你可看到它的計算量有多高。(7.056 M 個 sample)
所以實作上會使用多種不同的方法,譬如說用 multi-stage conversion,減低計算量,還有不同的 filter 的特性設計,會造成不同的 SRC 品質變化。
一個讓你自行設計 SRC 使用的 FIR filters 的軟體
http://www.mds.com/products/src/src_filter.htm
一個評測不同 SRC 計算法的品質的網頁
http://leute.server.de/wilde/resample.html
以上是很簡單的介紹,詳細原理和過程請翻閱 DSP 的課本,Google 搜尋,或是請有心的大大補完。