複製鏈接
請複製以下鏈接發送給好友

opus

(聲音編碼格式)

鎖定
Opus是一個有損聲音編碼的格式,由Xiph.Org基金會開發,之後由IETF(互聯網工程任務組)進行標準化,目標是希望用單一格式包含聲音和語音,取代Speex和Vorbis,且適用於網絡上低延遲的即時聲音傳輸,標準格式定義於RFC 6716文件。Opus格式是一個開放格式,使用上沒有任何專利或限制。
外文名
Opus
性    質
聲音編碼格式
前    身
CELT編碼器
開    發
IETF(互聯網工程任務組)

opus簡介

Opus集成了兩種聲音編碼的技術:以語音編碼為導向的SILK和低延遲的CELT。Opus可以無縫調節高低比特率。在編碼器內部它在較低比特率時使用線性預測編碼在高比特率時候使用變換編碼(在高低比特率交界處也使用兩者結合的編碼方式)。Opus具有非常低的算法延遲(默認為22.5 ms),非常適合用於低延遲語音通話的編碼,像是網上上的即時聲音流、即時同步聲音旁白等等,此外Opus也可以透過降低編碼碼率,達成更低的算法延遲,最低可以到5 ms。在多個聽覺盲測中,Opus都比MP3、AAC、HE-AAC等常見格式,有更低的延遲和更好的聲音壓縮率。 [1] 

opus技術特性

Opus可以處理各種音頻應用,包括IP語音、視頻會議、遊戲內聊天、流音樂、甚至遠程現場音樂表演。它可以從低比特率窄帶語音擴展到非常高清音質的立體聲音樂。支持的功能包括:
  1. 6 kb/秒到510 kb/秒的比特率;單一頻道最高256 kb/秒
  2. 採樣率從8 kHz(窄帶)到48 kHz(全頻)
  3. 幀大小從2.5毫秒到60毫秒
  4. 支持恆定比特率(CBR)、受約束比特率(CVBR)和可變比特率(VBR)
  5. 支持語音(SILK層)和音樂(CELT層)的單獨或混合模式
  6. 支持單聲道和立體聲;支持多達255個音軌(多數據流的幀)
  7. 可動態調節比特率,音頻帶寬和幀大小
  8. 良好的魯棒性丟失率和數據包丟失隱藏(PLC)
  9. 浮點和定點實現 [1] 

opus開發歷史

Opus被提出用於在IETF上標準化新的音頻格式,最終被IETF編解碼器工作組接受和授予。它基於Xiph.Org基金會和Skype技術公司兩項最初分開的標準提案。其主要開發人員包括Jean-Marc Valin(Xiph.Org,Octasic,Mozilla Corporation),Koen Vos(Skype)和Timothy B. Terriberry(Xiph.Org,Mozilla Corporation)。其中包括Juin-Hwey(Raymond)Chen(Broadcom),Gregory Maxwell(Xiph.Org,Wikimedia)和Christopher Montgomery(Xiph.Org)也參與其中。
CELT的發展部分格式可以追溯到Vorbis的繼任者的工作名稱Ghost下。作為Xiph.Org基金會的新一代語音編解碼器,Opus取代了Xiph的較早的語音編解碼器Speex,該版本是Jean-Marc Valin先前的一個項目。CELT自2007年11月起開始工作。
SILK部分自2007年1月起一直在Skype開發,作為其SVOPC的繼任者,該公司是一個內部項目,使公司獨立於iSAC和iLBC等第三方編解碼器和相應的許可證付款。
2009年3月,Skype建議在IETF內開發和規範寬帶音頻格式。近一年來,成立了一個適當的工作組,進行了大量辯論。參與專利保護競爭格式標準化的幾家公司的代表表示反對開始免版税格式的標準化過程:Polycom和愛立信的代表(G.719的創始人和許可人)以及法國Télécom,華為和橙色實驗室(法國Télécom部門),參與創建G.718。
2010年7月,提出了一種混合格式的原型,將兩種提出格式的候選者SILK和CELT相結合。2010年9月,Opus作為標準化提案提交給IETF。在短時間內,格式在2010年10月獲得現有名稱之前,以Harmony的名義出現。2011年2月初,比特流格式暫時凍結,但有待最後更改。2011年7月底,Jean-Marc Valin被Mozilla公司僱用,繼續從事Opus。[20] 2011年11月,工作組最近發出了關於比特流格式的更改的通知。比特流自2012年1月8日以來已被凍結。2012年7月2日,Opus被IETF批准用於標準化。參考軟件中輸入8月8日發佈的候選狀態最後的規範發佈的RFC 6716於2012年9月10日,和版本為1.0和1.0.1 參考實現被釋放一天之後。
2013年7月11日,Opus 1.0.3帶來了錯誤修復和一個新的Surround聲音API,可以提高音軌分配和質量,特別是低頻音軌(LFE)。
2013年12月5日,Opus 1.1發佈,整體速度提升和顯著的編碼器質量改進:調諧估計提高了以前有問題的樣本的比特率和質量(如大鍵)、自動語音/音樂檢測提高了混合音頻的質量、中端立體聲降低了許多歌曲的比特率需求、提高瞬態帶寬精度、以及DC抑制低於3 Hz。增加了兩種新的VBR模式:不受限制的更一致的質量以及時間VBR,可以提升響亮的畫面,並通常提高清。
Opus 1.1.1於2015年11月26日發佈,並於2016年1月12日發佈了1.1.2,同時增加了速度優化和錯誤修復。2016年7月15日發佈版本1.1.3,幷包含錯誤修復、優化、文檔更新和實驗性的Ambisonics工作。
2017年6月26日,Opus 1.2.1版本發佈,精簡了音頻文件體積,改善了音頻質量,增強了部分情況下的安全性,編解碼器效率提升。準備推動RFC 6716標準更新,標準未更新之前繼續兼容RFC 6716。此版本也帶來了面向VR的立體聲音頻解決方案。 [1] 

opus音質和低延遲比較

Opus在更高的比特率下,已被證明具有優異的音質,而它的音頻格式比AAC、HE-AAC和Vorbis更具有競爭力。
在64kbit / s的聽力測試中,與HE-AAC編解碼器相比,Opus表現出更優異的音質,HE-AAC由於使用了專利的頻譜帶複製(SBR)技術,這些編解碼器在以前占主導地位。在96 kbit / s的聽力測試中,Opus顯示出比Vorbis略高的音質,與AAC和MP3相比音質明顯更好。
Opus具有非常低的算法延遲,作為低音頻延遲通信鏈路一部分的必要性,可以在現場活動中允許自然對話,網絡音樂表演或對嘴表演。音頻格式的總算法延遲是無論處理速度和傳輸速度如編碼器和實況音頻流的解碼器必須承擔的延遲的總和,例如將音頻樣本緩衝到塊或幀中,允許窗口重疊和可能允許對噪聲整形在解碼器中先行和任何其他形式的先行的,或用於將MP3編碼器,使用的比特存儲器。
150毫秒以下的單向延遲是大多數VoIP系統的首選目標,使自然對話與轉向受到延遲的影響很小。音樂家通常會感覺到高達約30毫秒音頻延遲的時間,大致匹配Haas效果的融合時間,儘管將每個用户自己的樂器的播放延遲與往返延遲相匹配也可以有所幫助。音頻/視頻同步,約45-100毫秒的音頻延遲可能是可以接受的。
Opus允許減少質量或提高比特率以實現更小的算法延遲(最小5.0 ms)。雖然參考實現的默認Opus幀為20.0 ms長,但SILK層需要進一步5.0 ms的前瞻加1.5 ms進行重採樣,默認延遲為26.5 ms。當CELT層處於活動狀態時,默認情況下,為了與SILK層同步,窗口重疊需要2.5 ms的前視,其中添加了4.0 ms的匹配延遲。如果編碼器在特殊限制低延遲模式下實例化,則刪除4.0 ms匹配延遲,並禁用SILK層,允許5.0 ms的最小算法延遲。 [1] 

opus標籤

由於 Opus 格式使用了 Ogg 容器,所以繼承了Vorbis註釋。建議的標籤如下(大小寫無關,多用大寫):
  • TITLE
  • VERSION
  • ALBUM
  • TRACKNUMBER
  • ARTIST
  • PERFORMER
  • COPYRIGHT
  • LICENSE
  • ORGANIZATION
  • DESCRIPTION
  • GENRE
  • DATE
  • LOCATION
  • CONTACT
  • ISRC
ID3不同之處在於可以重複,比如若作者多於一人,可以用ARTIST="主要作者一", ARTIST="主要作者二"標記。

opus部署與採用

格式和算法是公開記錄的,參考實現是作為自由軟件發佈的。Xiph的參考實現稱為libopus,一個名為opus-tools的包提供命令行編碼器和解碼器實用程序。它是根據BSD授權條款發佈的。它是用C語言編寫的,可以針對具有或不具有浮點單元的硬件架構進行編譯。隨附的診斷工具opusinfo報告有關Opus文件的詳細技術信息,包括有關比特流格式標準匹配性的信息。它是基於ogginfo從因此,與編碼器和解碼器不同,vorbis-tools可以在GPL第2版的條款下使用。

opus實施

RFC 6716包含用C編寫的參考實現的完整源代碼。FFmpeg的項目和GStreamer的項目具有編碼器和解碼器的實現不是從參考庫的。libopus引用庫已作為名為Concentus的項目的一部分移植到C#Java。這些端口犧牲了性能,以便輕鬆集成到跨平台應用程序中。 [1] 

opus軟件

該GatesAir Intraplex IP Link和Tieline廣播IP音頻編解碼器的梅林和嚮導族和Tieline報告-IT移動編解碼器添加到嵌入式和移動設備的作品的支持。Digital Radio Mondiale - AM頻率的數字無線電格式 - 可以使用Dream 軟件定義的無線電廣播和接收Opus音頻(儘管在官方標準中未被識別)。在維基媒體基金會贊助的免費和開源的在線的JavaScript作品編碼器,瀏覽器支持所需的HTML5功能。信號從Speex切換到Opus音頻編解碼器,在2017年初提供更好的音頻質量。
操作系統支持
大多數最終用户軟件依賴於操作系統提供的多媒體框架。Native Opus編解碼器支持在類Unix操作系統的大多數主要多媒體框架中實現,包括GStreamer,FFmpeg和Libav庫。
谷歌在Android 5.0(“Lollipop”)中添加了對Opus音頻播放的原生支持。將載體限定,然而,對作品的音頻包封在Matroska的容器,如.mkv和.webm文件。Android 6.0(“Marshmallow”)和Android 7.0(“Nougat”)增加了對封裝在Ogg容器中的Opus音頻的支持。
由於在Apple的WebKit渲染引擎中增加了WebRTC支持,macOS High Sierra和iOS 11為封裝在核心音頻格式(Core Audio Format)容器中的Opus音頻提供原生播放支持。
在Windows 10上,Microsoft為封裝在Matroska中的 Opus音頻和Windows 10週年更新(1607)設備的WebM文件提供本機支持。Web Media Extensions提供了對封裝在Ogg容器中的Opus音頻的支持,Web Media Extensions是Windows 10 Fall Creators Update(1709)設備的可選附件。在Windows 8.1及更早版本中,第三方解碼器(如LAV過濾器)可用於提供有限的支持。
Opus支持不同的操作系統

編解碼器支持
(有限文件擴展名識別)
(有限的容器支持)
(有限文件擴展名識別)
(有限的容器支持
容器支持
在Windows 10週年更新(1607):
WebM(.webm)
Matroska(.mka, .mkv)
在Windows 10 Fall Creators更新(1709)上使用Web Media Extensions附加組件:
核心音頻格式 (.caf)
Ogg(.opus)
WebM(.webm)
Matroska(.mka, .mkv)
MPEG-TS(.ts)
MP4(.mp4)
Android 5:
WebM(.webm)
Matroska(.mka, .mkv)
Android 6/Android 7:
核心音頻格式 (.caf)
備註
在Windows 10上:
- 需要Fall Creators Update(1709)並安裝Web Media Extensions附加組件以支持Ogg容器。
- 在通用Windows平台應用程序(Groove Music,Microsoft Movies&TV)上受支持。Windows Media Player上不支持。
- 無法識別文件擴展名.opus(替換為.m4a)
在Windows 8.1及更早版本中:
- 需要安裝LAV Filters
僅支持CAF容器中的Opus音頻。
無法識別文件擴展名.opus。(用.ogg或.m4a代替)
僅支持CAF容器中的Opus音頻。
媒體播放器支持
雖然多媒體框架中的支持自動支持Opus對基於此類框架構建的軟件的支持,但是一些應用程序開發人員為在其軟件中支持Opus音頻格式做出了額外的努力。這種支持被添加到AIMP, Amarok,cmus,音樂播放器守護進程,foobar2000,Mpxplay,MusicBee,SMplayerVLC多媒體播放器, Winamp和Xmplay音頻播放器; Icecast,Airtime(軟件)音頻流軟件; 和Asunder音頻CD,CDBurnerXP CD刻錄機,FFmpeg,Libav和MediaCoder媒體編碼工具。流媒體Icecast無線電試驗自2012年9月和2013年1月開始實施。SteamOS使用Opus或Vorbis進行流式音頻。
瀏覽器支持
對於WebRTC實現,Opus支持是強制性的。Opus在Mozilla Firefox,ChromiumGoogle Chrome,基於Blink的Opera,以及依賴GStreamer支持多媒體格式的類Unix系統的所有瀏覽器中得到支持。雖然Internet Explorer不會本機提供Opus播放,但Microsoft Edge瀏覽器和VP9內置了對格式的支持,以提供完整的WebM支持。Safari支持iOS 11和MacOS High Sierra的Opus。
VoIP支持
參見:VoIP軟件的比較
由於其能力,Opus從VoIP軟件供應商那裏獲得了早期的興趣。幾個SIP客户端,包括Acrobits Softphone,Bria X-Lite,CSipSimple(通過附加插件),Empathy(通過GStreamer),Jitsi,Tuenti,Line2(目前僅在iOS上),Linphone,Phoner和PhonerLite,SFLphone,Mumble,Discord和TeamSpeak 3語音聊天軟件也支持Opus。TrueConf在其VoIP產品中支持Opus。由於法律原因,Asterisk缺乏內置的Opus支持,但第三方補丁可供下載並且2016年9月增加了通過二進制blob的官方支持。Tox P2P視頻會議軟件使用Opus只。分類廣告分佈式消息傳遞應用程序在其VoIP實現中在TLS套接字內發送原始opus幀。的PlayStation 4遊戲機也採用了CELT /電視劇編解碼器,其系統黨的聊天。

opus硬件

從版本3.13開始,Rockbox在支持的便攜式媒體播放器上播放Opus ,包括Apple的iPod系列產品,iriver,Archos和Sandisk製造的設備,以及使用“Rockbox as a Application”的Android設備。所有最近的Grandstream IP電話都支持Opus音頻編碼和解碼。OBihai OBi1062,OBi1032和OBi1022 IP電話全部支持Opus。最近的BlueSound無線揚聲器支持Opus播放。 [1] 
參考資料
  • 1.    YE, NONG, VAN CHEN, and TONI FARLEY. "Qos Requirements Of Multimedia Data On Computer Networks". Proceedings of the Second International Conference on Active Media Technology, Chongqing, PR China, 29–31 May 2003. World Scientific Publishing Company Incorporated. 2003: 183–189. ISBN 978-981-238-343-3.