未來音樂的格式——Opus格式

  最近還在搞桌面化視頻網站系統,因爲播放技術才用的是html5裏標籤,所以經常去了解該標籤支持的格式,今天發現其支持的一個音頻格式Opus格式,發現這個音頻格式真的會成爲未來音頻發展的趨勢。下面我具體介紹下Opus格式。

一、Opus格式簡介:
 

Opus是一款開源、免費、自由度高的有損音頻編解碼器,融合了Skype的SILK和XVID的CELT 技術,擁有比AAC、OGG等其它有損格式更大的壓縮率。它已經被標準化互聯網組織IETF認證通過,是AAC後新一代的編碼格式,目前處在開放階段就已經獲得foobar、Skype、Firefox等的大力支持和推廣,並且爲HTML5標準加入了一股重要力量。
官方網站:opus-codec, 內有源代碼下載。

二、特性
Opus的前身是celt編碼器。在當今的有損音頻格式爭奪上,擁有衆多不同編碼器的AAC格式打敗了同樣頗有潛力的mpc、ogg等格式,而在Opus格式誕生後,情況似乎不同了,Opus單單是在目前的開發階段就已經取得了技術上諸多的優勢。通過諸多的對比測試,低碼率下Opsu完勝曾經優勢明顯的HEAAC,中碼率就已經可以媲敵碼率高出30%左右的AAC格式,而高碼率下更接近原始音頻。
Opus的優勢可以參看官方的測試對比:https://people.xiph.org/~greg/opus/ha2011/ 以及著名的hydrogenaudio論壇的公開測試:http://listening-tests.hydrogenaudio.org/igorc/results.html

    三、播放
Opus格式音頻可以使用gstreamer, libavcodec,Foobar2000,Firefox(15 Beta或更新)等播放,推薦Foobar2000 1.1.14beta 1或者更新的版本播放。我這樣的Firefox高度依賴者用Firefox播放也很爽,只是不能控制音量。

四、編碼(含教程)
編碼毫無疑問是重頭戲,同AAC一樣,Opus支持vbr cbr cvbr三種編碼模式,vbr當然依舊是編碼效率最高的模式。不同於Itunes AAC動不動就是20Kbps的碼率估算差值,Opus的VBR碼率控制的非常出色,平均碼率和估算值一般只有4Kbps以內。
Opus的碼率支持6 kbps到510kbps,採樣率支持8 kHz到48 kHz(這點和qtaac相似,但都比不上Nero aac最高的96kHz,不過一般的CD級別的足夠了)最大支持255聲道……
值得注意的是,普通的CD級音頻所用的44.1kHz採樣率通過Opus編碼後會重採樣到48kHz,至於爲什麼這麼做OpusFAQ上有解釋,下面的測試環節同樣證明重採樣到48kHz並無任何壞處。

http://www.saunalahti.fi/~cse/Opus/
有國外的網站出了一個相當詳細的轉換教程,不過適用於自定義編碼需要輸入命令行(用熟練了推薦命令行,非常方便)。附上命令行參數:

Quote:

Usage: opusenc [options] input_file output_file.opus

Encodes input_file using Opus. It can read the WAV, AIFF, or raw files.

General options:
-h, --help        This help
-v, --version      Version information
--quiet            Quiet mode

input_file can be:
  filename.wav      file
  -                stdin

output_file can be:
  filename.opus    compressed file
  -                stdout

Encoding options:
--speech          Optimize for speech
--music            Optimize for music
--bitrate n.nnn    Encoding bitrate in kbit/sec (6-256 per channel)
--vbr              Use variable bitrateencoding (default)
--cvbr            Use constrained variablebitrate encoding
--hard-cbr        Use hard constant bitrate encoding
--comp n          Encoding complexity (0-10, default:10)
--framesize n      Maximum frame size in milliseconds (2.5, 5,10, 20, 40, 60, default: 20)
--expect-loss      Percentage packet loss to expect (default: 0)
--downmix-mono    Downmix to mono
--downmix-stereo  Downmix to stereo (if >2 channels)
--max-delay n      Maximum container delay in milliseconds(0-1000, default: 1000)

Diagnostic options:
--save-range file  Saves check values for every frame to a file
--set-ctl-int x=y  Pass the encoder control x with value y (advanced)
                     Preface with s: to direct the ctl to multistream s
                     This may be used multiple times
--uncoupled        Use one mono stream per channel

Metadata options:
--comment          Add the given string as an extracomment This may be used multiple times
--artist          Author of this track
--title            Title for this track

Input options:
--raw              Raw input
--raw-bits n      Set bits/sample for raw input (default: 16)
--raw-rate n      Set sampling rate for raw input (default:48000)
--raw-chan n      Set number of channels for raw input (default:2)
--raw-endianness n 1 for bigendian, 0 for little (defaults to 0)
--ignorelength    Always ignore the datalength in Wave headers


    新版的Foobar已經有了更簡單的可視化轉換界面,下面就分步驟詳細講解:
1、從http://opus-codec.org/downloads/下載最新版的Windows平臺的opus工具包。



2、解壓工具包,將其中的opusenc.exe程序放置到Foobar根目錄下。





3、打開Foobar,打開轉換器設置界面,在“輸出格式”中打開“新建”。




4、在“編碼器”中選擇“Opus”,“比特率”選項中選擇合適的碼率(無損轉換Opus推薦選擇256,下面的對比測試中會解釋的),“比特率管理”中用默認的VBR即可,“調整”選項中最好選擇“音樂





5、點擊確定,你就可以在“選擇輸出格式”中看到“Opus”啦,然後轉換即可。





五、對比測試
測試條件(都是些低端但有口碑的設備,見笑了):
聲    卡——樂之邦 茉莉
耳    機——拜亞動力DT235
操作系統——Windows 7 Ultimate 32bit SP1
播放軟件——Foobar2000 1.1.14a Final
音    源——無損音軌:
  Coldplay - Viva La Vida《Greatest Hits》16Bit/44.1KHz
  Coldplay - Yellow《Greatest Hits》16Bit/44.1KHz
Coldplay - Clocks《Greatest Hits》16Bit/44.1KHz
Vivaldi - 4 Seasons Spring Allegro《Gala Stradivarius Concert》16Bit/44.1KHz
Gamma Ray - My Temple《Majesty》16Bit/44.1KHz
Eric Clapton - Wonderful Tonight《Slowhand》(StereoSACD) 24bit/88.2KHz
Hans Zimmer & James Newton Howard - Why SoSerious《The Dark Knight OST》24bit/96kHz
所選曲目有流行、古典、民謠、金屬等,覆蓋範圍較廣。
    測試方法——
    44.1KHz採樣的音源直接用Foobar轉換成VBR模式的蘋果Quciktime aac(簡稱qtaac)和opus,高於48KHz的音源SSRC重採樣到16Bit/48KHz的Wave,再用生成的Wave用Foobar轉換成VBR模式的qtaac和opus,進行盲聽測試。

測試結果——
    從聽感來講,256K的Opus讓我虎軀一震,它蘊含的音頻素質超過了我的預期,低頻上同qtaac對比好不少,與Lame編碼的MP3格式刻意下潛的低頻不同,Opus飽滿豐盈的低頻與無損差別甚微,中頻紮實,既沒有Nero稍稍的刻意渲染也無削弱感,高頻沒有qtaac稍稍毛刺那樣的感覺,乾淨利落,一句話概括,opus的特點就是紮實,還原度非常優秀。

頻譜對比:
無損——



Opus 音樂優化——


Opus 默認——


qtaac——


對衆多的頻譜黨來說,這纔是他們關心的環節。我再次(也不知多少次)強調:頻譜和聽感是完全不同甚至多數時候是完全相反的!!無損的頻譜好看,那是因爲有充足的碼率,對於碼率有限的有損音頻來說,頻譜幾乎是一無是處!!!同編碼器、同碼率的有損音頻,頻譜越好看聽感其實越差,與其將碼率用於人耳難以分辨的20KHz以上遠遠不如省下碼率用在20KHz以下!
現在我還是要將無損、qtaac和Opus的頻譜做對比,是用來解釋爲什麼Opus的聲音素質要強於qtaac,同時也能看到Opus令我極爲驚訝的超強表現!!
頻譜圖賞析:
1、同碼率下qtaac的範圍到了22KHz,Opus到20KHz,Opus的實際聽感更好
2、Opus的音樂模式編碼和默認模式編碼的頻譜看不出有絲毫的不同,但是用hash工具又能得出兩個文件並不一樣。
3、仔細對比一下,Opus的頻譜圖就像是無損的頻譜圖等比縮放到20KHz以內,強悍到令人震驚啊!!我搗鼓有損音頻格式也有些年頭了,還真是第一次見到和無損音頻如此接近的頻譜圖,其它有損格式即使碼開到最高,頻譜圖也有很大的改變。

再把無損轉化爲48K 80K 128K 192K 224K 288K320K 512K,分析頻譜圖(不貼圖了,所有原圖可以在下面的鏈接中下載)+盲聽可以得到三點結論:
1、頻譜範圍全在0-20KHz之間,可以說從頻譜上看不出音質好壞。
2、從我的設備上講192K以上的編碼想要聽出差別已經相當難了。
3、320K以下的編碼在頻譜上有些異同,而320K以上幾乎沒有異同了。
結論:碼率選擇最好在192K-320K之間,所以256K很合適。




    再看看這兩張頻譜圖,你能想像的到有一張是40K的碼率一張是512K碼率的嗎?頻譜黨們開開眼界吧。

    更多的頻譜對比原圖下載鏈接:http://dl.vmall.com/c01djlgha1


六、結束語
不可否認,在AAC已經很難有進步的現在,Opus格式的發展潛力是巨大的,雖然現在還處在開發階段,目前很多移動設備和解碼工具並不支持,但目前的形勢相當樂觀,無論是技術的先進性還是foobar、Skype、Firefox等的大力支持和推廣,都昭示着新一代的音頻格式Opus很有可能在未來替代AAC成爲音頻格式霸主。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章