Opus (音訊格式)

Opus是一個有損音訊壓縮的數位音訊編碼格式，由Xiph.Org基金會開發，之後由網際網路工程任務組進行標準化，目標是希望用單一格式包含聲音和語音，取代Speex和Vorbis，且適用於網路上低延遲的即時聲音傳輸，標準格式定義於RFC 6716檔案。Opus格式是一個開放格式，使用上沒有任何專利或限制。Opus整合了兩種聲音編碼的技術：以語音編碼為導向的SILK和低延遲的CELT。Opus可以無縫調節高低位元率。在編碼器內部它在較低位元率時使用線性預測編碼在高位元率時候使用變換編碼，非常適合用於低延遲語音通話的編碼，像是網路上的即時聲音串流、即時同步聲音旁白等等，此外Opus也可以透過降低編碼位元率，達成更低的演演算法延遲，最低可以到5 ms。在多個聽覺盲測中，Opus都比MP3、AAC、HE-AAC等常見格式，有更低的延遲和更好的聲音壓縮率。Opus在 Discord、WhatsApp 等應用程式中廣泛用作 IP 語音(VoIP) 的編解碼器。技術特性.Opus可以處理各種音訊應用，包括IP語音、視訊會議、遊戲內聊天、串流音樂、甚至遠端現場音樂表演。它可以從低位元率窄帶語音擴充套件到非常高音質的立體聲音樂。支援的功能包括：開發歷史.Opus被提出用於在IETF上標準化新的音訊格式，最終被IETF編解碼器工作組接受和授予。它基於Xiph.Org基金會和Skype技術公司兩項最初分開的標準提案。其主要開發人員包括Jean-Marc Valin也參與其中。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內開發和規範寬頻音訊格式。之後一年內，在是否要建立IETF工作組方面發生了巨大辯論。。參與專利保護競爭格式標準化的幾家公司的代表表示反對開始免版稅格式的標準化過程，其中包括G.719的創始人和許可人Polycom和愛立信，以及G.718的建立者法國電信，華為和橙色實驗室。2010年2月，工作組正式建立。2010年7月，提出了一種混合格式的原型，將兩種提出格式的候選者SILK和CELT相結合。2010年9月，Opus作為標準化提案提交給IETF。在短時間內，格式在2010年10月獲得現有名稱之前，以Harmony的名義出現。2011年2月初，位元流格式暫時凍結，但有待最後更改。2011年7月底，Jean-Marc Valin被Mozilla公司僱用，繼續開發Opus。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，可以提高音軌分配和質量，特別是低頻音軌。1.1.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工作。1.2.2017年6月26日，Opus 1.2.1版本釋出，精簡了音訊檔案體積，改善了音訊質量，增強了部分情況下的安全性，編解碼器效率提升。準備推動RFC 6716標準更新，標準未更新之前繼續相容RFC 6716。此版本也帶來了面向VR的立體聲音訊解決方案。音質和低延遲比較.Opus在更高的位元率下，已被證明具有優異的音質，而它的音訊格式比AAC、HE-AAC和Vorbis更具有競爭力。在64kbit / s的聽力測試中，與HE-AAC編解碼器相比，Opus表現出更優異的音質，HE-AAC由於使用了專利的頻譜帶複製技術，這些編解碼器在以前佔主導地位。在96 kbit / s的聽力測試中，Opus顯示出比Vorbis略高的音質，與AAC和MP3相比音質明顯更好。Opus具有非常低的演算法延遲，作為低音訊延遲通訊鏈路一部分的必要性，可以在現場活動中允許自然對話，網路音樂表演或對嘴表演。音訊格式的總演算法延遲是無論處理速度和傳輸速度如編碼器和實況音訊流的解碼器必須承擔的延遲的總和，例如將音訊樣本緩衝到塊或幀中，允許視窗重疊和可能允許對噪聲整形在解碼器中先行和任何其他形式的先行的，或用於將MP3編碼器，使用的位元儲存器。150毫秒以下的單向延遲是大多數VoIP系統的首選目標 ，使自然對話與轉向受到延遲的影響很小。音樂家通常會感覺到高達約30毫秒音訊延遲的時間，大致符合Haas效果的融合時間，儘管將每個使用者自己的樂器的播放延遲與往返延遲相匹配也可以有所幫助。音訊╱影片同步，約45-100毫秒的音訊延遲可能是可以接受的。Opus允許減少質量或提高位元率以實現更小的演算法延遲。雖然參考實現的預設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的最小演算法延遲。部署與採用.格式和演算法是公開的，參考實作是作為自由軟體發布的。Xiph的參考實現稱為libopus，一個名為opus-tools的包提供命令列編碼器和解碼器實用程式。它是根據BSD授權條款發布的。它是用C語言編寫的，可以針對具有或不具有浮點單元的硬體架構進行編譯。隨附的診斷工具opusinfo報告有關Opus檔案的詳細技術資訊，包括有關位元流格式標準符合性的資訊。它是基於ogginfo從因此，與編碼器和解碼器不同，vorbis-tools可以在GPL第2版的條款下使用。實作.RFC 6716包含用C編寫的參考實現的完整原始碼。FFmpeg的專案和GStreamer的專案具有編碼器和解碼器的實現不是從參考庫的。libopus引用庫已作為名為Concentus的專案的一部分移植到C＃和Java。這些移植版本犧牲了效能，以便輕鬆整合到跨平臺應用程式中。軟體.該GatesAir Intraplex IP Link和Tieline廣播IP音訊編解碼器的梅林和精靈族和Tieline報告-IT移動編解碼器新增到嵌入式和移動裝置的作品的支援。Digital Radio Mondiale - AM頻率的數字無線電格式 - 可以使用Dream 軟體定義的無線電廣播和接收Opus音訊。在維基媒體基金會贊助的免費和開源的線上的JavaScript作品編碼器，瀏覽器支援所需的HTML5功能。自 2016 年以來，WhatsApp一直使用 Opus 作為其音訊檔案格式。Signal在2017年初從Speex切換到Opus音訊編解碼器，以提供更好的音訊質量。2018 年，SoundCloud 從 MP3 切換到 Opus，將音樂流媒體所需的頻寬減少了一半。2021 年 1 月，Vimeo 將 Opus 引入其影片平臺。作業系統支援.大多數終端使用者軟體依賴於作業系統提供的多媒體框架。Native Opus編解碼器支援在類Unix作業系統的大多數主要多媒體框架中實現，包括GStreamer，FFmpeg和Libav庫。谷歌在Android 5.0增加了對封裝在Ogg容器中的Opus音訊的支援。由於在Apple的WebKit渲染引擎中增加了WebRTC支援，macOS High Sierra和iOS 11為封裝在核心音訊格式(Core Audio Format)容器中的Opus音訊提供原生播放支援。在Windows 10上，Microsoft為封裝在Matroska中的 Opus音訊和Windows 10週年更新可用於提供有限的支援。媒體播放器支援.雖然多媒體框架中的支援自動支援Opus對基於此類框架構建的軟體的支援，但是一些應用程式開發人員為在其軟體中支援Opus音訊格式做出了額外的努力。這種支援被新增到AIMP， Amarok，cmus，音樂播放器守護程序，foobar2000，Mpxplay，MusicBee，SMplayer，VLC多媒體播放器， Winamp 和Xmplay音訊播放器; Icecast，Airtime音訊流軟體; 和Asunder音訊CD，CDBurnerXP CD燒錄機，FFmpeg，Libav和MediaCoder媒體編碼工具。流媒體Icecast無線電試驗自2012年9月和2013年1月開始實施。SteamOS使用Opus或Vorbis進行流式音訊。瀏覽器支援.對於WebRTC實現，Opus支援是強制性的。Opus在Mozilla Firefox，Chromium和Google Chrome，基於Blink的Opera，以及依賴GStreamer支援多媒體格式的類Unix系統的所有瀏覽器中得到支援。雖然Internet Explorer本身不提供播放Opus音訊的功能，但Microsoft Edge瀏覽器內建了對Opus格式(和VP9)的支援，從而實現了對WebM的完全支援。從iOS 11和MacOS High Sierra開始，Safari支援Opus。VoIP支援.由於其能力，Opus從VoIP軟體供應商那裡獲得了早期的興趣。幾個SIP客戶端，包括Acrobits Softphone，Bria X-Lite，CSipSimple，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 /電視劇編解碼器，其系統黨的聊天。硬體.從版本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播放。