Opus (音频格式)

Opus是一個有損音訊壓縮的數位音訊編碼格式，由Xiph.Org基金會開發，之後由網際網路工程任務組（IETF）進行標準化，目標是以單一格式對語音和一般音訊進行高效編碼，確保音質同時保持足夠低的延遲以實現即時交互通信，並且對於低端嵌入式處理器來說有足夠低的複雜性，適用於網路上低延遲的即時聲音傳輸，取代Speex和Vorbis，標準格式定義於RFC 6716文件。Opus格式是一個開放格式，使用上沒有任何專利或限制。

Opus整合了兩種聲音編碼的技術：以語音編碼為導向的SILK和低延遲的CELT。Opus可以无缝调节高低比特率。在编码器内部它在较低比特率时使用线性预测编码在高比特率时候使用变换编码（在高低比特率交界处也使用两者结合的编码方式）。Opus具有非常低的演算法延遲（預設為22.5 ms），非常適合用於低延遲語音通話的編碼，像是網路上的即時聲音串流、即時同步聲音旁白等等，此外Opus也可以透過降低編碼位元率，達成更低的演算法延遲，最低可以到5 ms。在多個聽覺盲測中，Opus都比MP3、AAC、HE-AAC等常見格式，有更低的延遲和更好的聲音壓縮率。

Opus在Discord、WhatsApp等应用程序中广泛用作IP语音（VoIP）的编解码器。

技术特性
Opus可以處理各種音頻應用，包括IP語音、視頻會議、遊戲內聊天、串流音樂、甚至遠端現場音樂表演。它可以從低比特率窄帶語音擴展到非常高音質的立體聲音樂。支持的功能包括：
 6 kb/秒到510 kb/秒的比特率；單一頻道最高256 kb/秒
 采样率从8 kHz（窄带）到48 kHz（全频）
 帧大小从2.5毫秒到60毫秒
 支持恒定比特率（CBR）、受約束比特率（CVBR）和可变比特率（VBR）
 支持语音（SILK層）和音乐（CELT層）的單獨或混合模式
 支持单声道和立体声；支持多达255个音軌（多数据流的帧）
 可动态调节比特率，音频带宽和帧大小
 良好的鲁棒性丢失率和数据包丢失隐藏（PLC）
 浮点和定点实现

 開發歷史 
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內開發和規範寬帶音頻格式。之后一年内，在是否要创建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，可以提高音軌分配和質量，特別是低頻音軌（LFE）。
 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的立体声音频解决方案。

 1.3 
libopus 1.3 於 2018 年 10 月 18 日發布。 Opus 1.3 主要版本再次帶來品質改進、新功能和錯誤修復。自 1.2.x 以來的變化包括：

 使用循環神經網路 (RNN) 改進語音偵測和語音/音樂分類
 支援使用通道映射系列 2 和 3 的 Ambisonics 編碼
 改進低位元率下立體聲語音的效果
 在 9 kbit/s 的位元率下使用寬頻語音編碼（不再使用中帶）
 使 SILK 的位元率可降至 5 kbit/s
 音調品質略有改善
 預設啟用 RFC 8251 中的規格修復
 安全/強化改進

值得注意的錯誤修復包括：

 對 CELT PLC 的修復
 頻寬偵測修復

 音質和低延遲比較 

Opus在更高的比特率下，已被證明具有優異的音質，而它的音頻格式比AAC、HE-AAC和Vorbis更具有競爭力。

在64kbit/s的聽力測試中，與HE-AAC編解碼器相比，Opus表現出更優異的音質，HE-AAC由於使用了專利的（SBR）技術，這些編解碼器在以前占主導地位Next-Gen Low-Latency Open Codec Beats HE-AAC , Slashdot-Meldung vom 14. April 2011.。在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的最小算法延遲。

 部署與採用 
格式和算法是公開的，參考實作是作為自由軟件發布的。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（“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支援不同的操作系统  Microsoft Windows macOS Linux Android iOS 編解碼器支援          容器支援 在Windows 10週年更新（1607）:  WebM (.webm)  Matroska (.mka, .mkv)  在Windows 10 Fall Creators更新（1709）上使用Web Media Extensions附加組件:  Ogg在 Windows 10 October 2018 更新 (1809):

WebM

在 Windows 10 May 2019 更新 (1903):

Ogg (.opus, .oga, .ogg) 核心音頻格式 (.caf) Ogg (.opus)  WebM (.webm)  Matroska (.mka, .mkv)  MPEG-TS (.ts)  MP4 (.mp4) 在 Android 5:  WebM (.webm)  Matroska (.mka, .mkv)  在 Android 6/Android 7:  Ogg 在 Android 10: Ogg (.opus, .oga, .ogg) 核心音頻格式 (.caf) MP4 (.mp4) 備註 在Windows 10上:  - 需要Fall Creators Update（1709）並安裝Web Media Extensions附加組件以支持Ogg容器。 - 在通用Windows平台應用程序（Groove Music，Microsoft Movies＆TV）上受支援。Windows Media Player上不支援。 - 直到v1809，無法識別文件擴展名.opus（替換為.m4a）  在Windows 8.1及更早版本中:  - 需要安裝LAV Filters僅支持CAF容器中的Opus音頻。 – 直到Android 9，無法識別文件擴展名.opus。（用.ogg或.m4a代替） 支持MP4/CAF容器中的Opus音頻。

 媒體播放器支持 
雖然多媒體框架中的支持自動支持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（通過附加插件），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 /電視劇編解碼器，其系統黨的聊天。

 硬件 
從版本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播放。

 注釋 

 參見 

 音訊編碼格式的比較
 串流媒體


 參考資料 

 外部連結 


 關於Hydrogenaudio知識庫

Category:互联网标准
Category:开源软件
Category:數位音訊
Category:音频编解码器