Opus_codec

**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 語音、影片會議、遊戲內聊天、串流音樂、甚至遠端現場音樂表演。它可以從低位元速率窄帶語音擴展到非常高音質的立體聲音樂。支援的功能包括：

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. 浮點和定點實現

## 開發歷史

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 的立體聲音訊解決方案。

## 音質和低延遲比較

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 的最小演算法延遲。

## 部署與採用

格式和演算法是公開的，參考實作是作為自由軟體發布的。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 庫。

Google 在 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 對基於此類框架構建的軟體的支援，但是一些應用程式開發人員為在其軟體中支援 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 知識庫（頁面存檔備份，存於網際網路檔案館）