lazyman
|
發表於 2005-11-18 01:26 PM |
引用: lovelegend寫到:
我說的是 sample 一個 wave, 不是說 waveform...
另外 waveform 的失真當然和音質有關, 問題是失真率有很大, 和聽的人的敏感度 (金耳朵和牛耳朵當然不同了... )
我已經強調是 MP3 了,waveform 失真與音質無關。
因為這篇的主題是 MP3,所以我自然會 focus 在 lossy compression;
以 MP3 這類的壓縮格式而言,客觀的評估方式(SNR 等)會變的不適用,
而改採主觀的評估方式(MOS 等)。
| |
lovelegend
|
發表於 2005-11-18 12:25 PM |
引用: lazyman寫到:
對 MP3 而言,time domain 上的 waveform 失真與音質無涉,
我說的是 sample 一個 wave, 不是說 waveform...
另外 waveform 的失真當然和音質有關, 問題是失真率有很大, 和聽的人的敏感度 (金耳朵和牛耳朵當然不同了... )
引用: 即使用最高音質的 320kbps MP3 轉回 PCM 與原始的檔案比對 waveform,
結果仍然會差非常多,而算出來的 SNR 會爛的一蹋糊塗;
mp3 是破壞性壓縮, wavform 和 LPCM 當然有很大分別...
版主 innison 之前也做貼過測圖, 亦發現 mp3 其實並不是最好的壓縮方法, 但當然普通最緊要, 以前 win98 不停當機人們還不是一邊罵一邊 reboot? ... (一大堆比 mp3 好的壓縮方法但就是普遍不起來)
引用: 如果有興趣的話,可以用 MATLAB 將音樂檔過一個 22.05 kHz 的 LPF,
你會發現處理過的聲音會變得比較空洞,
但是之前提過 44.1 kHz MP3 用 low bit rate (below 48kbps or 64kbps),
scalefactor 的量化誤差則會造成嚴重的 noise。
我不知 mp3 的詳情, 但我之前亦說過, low bitrate 的話 wma 遠比 mp3 好...
引用: 對於不知道的事情,還是拜一下 google 大神吧。
都已經日拜夜拜了, 這些小事便猜一下便算吧...
看過了過幾個月又忘得一乾二淨, 又何必太認真呢?
| |
lazyman
|
發表於 2005-11-18 11:41 AM |
引用: lovelegend寫到:
我覺得除非檔案的 highest frequency 是 11kHz,
否則失真應該仍然是 22.05kHz 的較大 (因為一個 wave 連 1 peak + 1 valley 也取不到),
我自己未試過轉成 22kHz (只有用 Matlab 做過 aliasing 的測試),
但我有個網友試過把一首歌轉成 32kHz, 結果是 -- 老牛唱歌...
對 MP3 而言,time domain 上的 waveform 失真與音質無涉,
即使用最高音質的 320kbps MP3 轉回 PCM 與原始的檔案比對 waveform,
結果仍然會差非常多,而算出來的 SNR 會爛的一蹋糊塗;
因為 MP3 壓縮的關鍵是在 freq. domain 上的 psychoacoustic model ,
原始頻譜跟壓縮過後的頻譜就已經差很多了,只是人耳聽不太出來,
更不用說經過 imdct 轉回 time domain 上的 waveform 了。
至於你上面所提到的,跟我們前面討論的並沒有太大關聯,
如果有興趣的話,可以用 MATLAB 將音樂檔過一個 22.05 kHz 的 LPF,
你會發現處理過的聲音會變得比較空洞,
但是之前提過 44.1 kHz MP3 用 low bit rate (below 48kbps or 64kbps),
scalefactor 的量化誤差則會造成嚴重的 noise。
引用: lovelegend寫到:
20kHz 不是 "全人類" 聽到的最高頻,
應該是加了 10% margin 吧?
對於不知道的事情,還是拜一下 google 大神吧。
http://www.beareyes.com.cn/2/lib/200112/09/20011209026.htm
那么为什么要用 44.1kHz 这个数字呢?那是因为在CD发明前硬盘还很贵,所以主要将数字音频信号储存媒体是录像带,用黑白来记录0与1。而当时的录像带格式为每秒30张,而一张图又可以分为490条线,每一条线又可以储存三个取样信号,因此每秒有30×490×3=44100个取样点,而为了研发的方便,CD唱盘也继承了这个规格,这就是44.1kHz的由来。
--更正--
對不起,剛剛看到小熊在綫,才突然想到八成不是原創。
被節錄的原始文章應該是 DH 來的。
http://www.dearhoney.idv.tw/Audio/LukeLo20010705/
音樂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的由來。
[lazyman 在 2005-11-18 11:56 AM 作了最後編輯]
| |
lovelegend
|
發表於 2005-11-18 09:08 AM |
引用: lazyman寫到:
再者,如果要讓 44.1kHz 跟 22.05kHz 用同樣的 bitrate 輸出,
我想在 48kbps 甚至 64kbps 以下會是後者勝出,
畢竟 low bitrate 下,44.1 kHz 算 scalefactor 的量化誤差會非常大,
我覺得除非檔案的 highest frequency 是 11kHz,
否則失真應該仍然是 22.05kHz 的較大 (因為一個 wave 連 1 peak + 1 valley 也取不到),
我自己未試過轉成 22kHz (只有用 Matlab 做過 aliasing 的測試),
但我有個網友試過把一首歌轉成 32kHz, 結果是 -- 老牛唱歌...
引用: 另外,CD 的取樣頻率訂為 44.1 kHz 並不是因為音樂頻譜,
而是因為人耳能夠聽到的頻率範圍為 20-20k Hz,
至於 44.1k 這個奇怪的數字是怎麼訂出來的,我也不清楚。
20kHz 不是 "全人類" 聽到的最高頻,
應該是加了 10% margin 吧?
引用: 甚至 AAC 還可以支援到 96 kHz,
只是我一直蠻好奇哪來的 96 kHz source 可以轉。
我們當然沒有, 但錄音室的母帶應該不只 48kHz 這麼少....
| |
lazyman
|
發表於 2005-11-18 08:11 AM |
引用: lovelegend寫到:
仍然不太對...
低 sampling frequency 已經是對音質的直接破壞,
在相同 bitrate 下 22kHz 的音質是比 44kHz 的差 (除非那檔案的最高 frequency 是在 11kHz 之下)
但要知道 sampling frequency 對檔案大小沒有影響,
一個 128kbps/22kHz 的檔案和一個 128kbps/44kHz 的檔案 filesize 是一樣的, 因為檔案大小是取決於 bitrate per second, 所以降低 sampling frequency 根本沒有作用 (也不是說沒有作用, 應該說對最高 frequency 11kHz 的檔案才會有用, 但一般的音樂檔都是 22kHz 以內, 所以 CD 的取樣頻率才會是 44kHz)...
file size = bitrate * time
從上述關係看來,檔案大小確實與 bitrate 無關,
問題是 sampling freq. 與所能夠使用的 bitrate 相關。
要知道其對應關係,比較簡單的方式請參考 Winamp,
[Options] -> [Preferences] 內,
打開 [Plug-ins] -> [Output] 的 [out_disk.dll],
點擊正中央的 [...] 然後 [格式] 選 MPEG Layer-3,
在 [屬性] 的下拉選單中即可看到不同 sampling freq. 所能使用的 bitrate。
再者,如果要讓 44.1kHz 跟 22.05kHz 用同樣的 bitrate 輸出,
我想在 48kbps 甚至 64kbps 以下會是後者勝出,
畢竟 low bitrate 下,44.1 kHz 算 scalefactor 的量化誤差會非常大,
即使頻寬比較寬,但 spectrum 應該都爛掉了,
更不用說還要考慮 frame header 的 overhead。
另外,CD 的取樣頻率訂為 44.1 kHz 並不是因為音樂頻譜,
而是因為人耳能夠聽到的頻率範圍為 20-20k Hz,
至於 44.1k 這個奇怪的數字是怎麼訂出來的,我也不清楚。
當然還是有人會 argue 說自己聽得出來 44.1k 有失真,
所以後來才會有 48 kHz 的 sampling freq.,
甚至 AAC 還可以支援到 96 kHz,
只是我一直蠻好奇哪來的 96 kHz source 可以轉。
| |
lovelegend
|
發表於 2005-11-18 06:50 AM |
引用: starroach寫到:
所以比較可行的方法應該是用high pass/low pass過濾掉一些東西...再配合down sampling...這樣應該可行吧
仍然不太對...
低 sampling frequency 已經是對音質的直接破壞,
在相同 bitrate 下 22kHz 的音質是比 44kHz 的差 (除非那檔案的最高 frequency 是在 11kHz 之下)
但要知道 sampling frequency 對檔案大小沒有影響,
一個 128kbps/22kHz 的檔案和一個 128kbps/44kHz 的檔案 filesize 是一樣的, 因為檔案大小是取決於 bitrate per second, 所以降低 sampling frequency 根本沒有作用 (也不是說沒有作用, 應該說對最高 frequency 11kHz 的檔案才會有用, 但一般的音樂檔都是 22kHz 以內, 所以 CD 的取樣頻率才會是 44kHz)...
| |
lazyman
|
發表於 2005-11-17 02:40 PM |
引用: starroach寫到:
所以比較可行的方法應該是用high pass/low pass過濾掉一些東西...再配合down sampling...這樣應該可行吧
上述這些動作,在 trans-coding 時,程式都會幫你完成。
例如用 Adobe Audition (即以前的 CoolEdit Pro) 開啟某個檔案,
另存新檔時選擇不同的 sampling frequency,按個鍵就完成了。
| |
lazyman
|
發表於 2005-11-17 02:34 PM |
引用: lovelegend寫到:
這是萬萬不可的事, sampling frequency 少過 highest frequency 的兩倍便會有 aliasing 的出現...
這種問題並不會發生,
因為輸入訊號會先通過一個 cut-off frequency 對應的 Low-pass filter。
以 MPEG-1 Layer 3 來說,
支援的 sampling freq. 有 32, 44.1, 48 kHz,
MPEG-2 BC 則增加 16, 22.05, 24 kHz,
業界衍生的 MPEG-2.5 又增加了 8, 11.025, 12 kHz;
目前的 codec 應該都有支援上述這些 sampling freq.,
而 aliasing 的問題自然會被 coder 處理掉。
不過低到如 8 kHz sampling freq. 比較適合用來錄音,(人聲的頻率為 320-4k)
如果用來轉錄音樂,quality 會很糟糕。
| |
starroach
|
發表於 2005-11-17 01:21 AM |
引用: lovelegend寫到:
引用: starroach寫到:
2.由44100壓成22050Hz(22.05Khz)甚至11025Hz(11.025Khz)
這是萬萬不可的事, sampling frequency 少過 highest frequency 的兩倍便會有 aliasing 的出現...
阿!對! 我都忘記了 多謝指正
最近東忘西忘的...
所以比較可行的方法應該是用high pass/low pass過濾掉一些東西...再配合down sampling...這樣應該可行吧
| |
lovelegend
|
發表於 2005-11-14 12:31 AM |
引用: starroach寫到:
2.由44100壓成22050Hz(22.05Khz)甚至11025Hz(11.025Khz)
這是萬萬不可的事, sampling frequency 少過 highest frequency 的兩倍便會有 aliasing 的出現...
| |
本主題回覆較多,請 點擊這裡 檢閱。 |