Opus (音声圧縮)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Opus
Opus logo2.svg
拡張子 .opus
MIME Type audio/ogg,[1] audio/opus[2]
開発者 IETF codecワーキンググループ
初版 2012年09月11日 (2012-09-11)
種別 音声
包含先 Ogg
派生元 SILK英語版CELT
国際標準 RFC 6716
公式サイト opus-codec.org
テンプレートを表示
libopus
開発元 Xiph.Org Foundation
初版 2012年08月26日 (2012-08-26)
最新版 1.1 / 2013年12月5日(4か月前) (2013-12-05
最新評価版 1.1-rc3 / 2013年12月3日(4か月前) (2013-12-03
プログラミング言語 C89
プラットフォーム クロスプラットフォーム
種別 音声コーデック
ライセンス 三条項BSDライセンス
公式サイト Opus codec downloads
テンプレートを表示

Opus(オーパス)とは、IETF によって開発され、主にインターネット上でのインタラクティブな用途に合わせて作られた非可逆音声圧縮フォーマット[3]RFC 6716によって標準化されたオープンフォーマットとして、リファレンス実装は3条項BSDライセンスの下で提供されている。 Opusをカバーするすべての既知のソフトウェア特許は、ロイヤリティフリーの条項の下でライセンスされている[4]

Opusは、スピーチ向きのSILK英語版と低レイテンシで音楽用途にも使えるCELT の2つのコーデックの技術を組み込んでいる[3]。Opusは、ビットレートの高低を継ぎ目なく調節でき、内部的には、低いビットレートでは線形予測コーデック、高ビットレートでは変換コーデックを使い、途中で切り替えることも可能である(短時間はハイブリッドでオーバーラップさせられる)。Opusは会話、ネットワーク上の音楽公演やライブイベントなどでリップシンクすることができ、低遅延のオーディオ通信リンクの一部として使用するために必須な、非常に小さいアルゴリズム遅延(デフォルトでは22.5 ms)を持つ。Opus は、音声品質を犠牲にすれば、アルゴリズム遅延を最高5msまでに小さくすることができる。MP3, Vorbis, HE-AAC などの既存の音楽用コーデックは100ms以上の遅延があり、Opus はそれらよりも遅延がずっと小さいにも関わらず、ビットレートに対する品質では遜色ないものとなっている[5]。上記の既存コーデックとは異なり、Opus は個々のファイルで巨大なコードブックの定義を必要としないため、短いショートクリップの音声にも適している[6]

機能[編集]

他のコーデックと比較した可能なビットレートと遅延の組み合わせ

6 kbit/sから510 kbit/s、フレームサイズ2.5 msから60 ms、サンプリングレート8 kHz(帯域幅4 kHz)から48 kHz(帯域幅20 kHz、つまり、人間の持っている聴覚系の全聴力範囲英語版を再現することが可能)の範囲での固定及び可変ビットレートエンコードに対応している。Opusを使ったストリーミングはミッド/サイドコーディングを使って2つのチャンネルを結合英語版できるため255までの音声チャンネルに対応できる。

Opusが持つ本質的な低遅延(既定値22.5 ms)の性質により、電話VoIPビデオ会議で必要とされる同一のリアルタイムコンピューティングを実現することができる。高品質な音声のためにより高いビットレートで低遅延を維持する技術はXiph.Org FoundationCELTというコーデックの開発で実現している。Opusを使ったストリーミング中(生放送もしくはファイル)のビットレート、帯域幅や遅延は、オーディオの歪みや断絶を伴わずに迅速かつシームレスに変更することができる。

他のオープン標準同様、アルゴリズムは文書で公開されており、またリファレンス実装ソースコード含む)も公開されている。ブロードコムとXiph.Org FoundationはCELTのアルゴリズムでソフトウェア特許を、スカイプ・テクノロジーズ英語版とマイクロソフトがSILKのアルゴリズムでソフトウェア特許を取得しているが、両特許ともIETF標準として一度承認されたコーデックであるOpusの使用に際してロイヤリティーフリーで使用できるようになっている。また、第三者による侵害訴訟対策として自身の特許を利用する権利も所有している。クアルコム華為技術がOpusに対し非ロイヤリティーフリー特許の適用性を主張していて論争となっている[7]

Opusでエンコードした音楽ファイルの異なる平均ビットレート(~32から~160 kbit/s)でCELTを使ったエンコーダーのローパス挙動や帯域エネルギーの比較的良好な保存状態をはっきりと示しているスペクトログラム(オリジナル、Vorbis、MP3、AACとの比較)

Opusは低レイテンシのCELTとスピーチ用途のSILK(両方とも統合するために大きく変更されており、それらのオリジナル形式と互換性が無くなるほどレンダリングされている)が元となっている。変換 (enレイヤー (CELT) はCELP(周波数領域であるものの励起コードブックである)によるアプローチのある修正離散コサイン変換 (MDCT) を元にしているだけでなく、20 msフレームの追加などの変更がなされている。スピーチ信号に特化されたSILKレイヤーは線形予測符号 (LPC) とオプションの長期予測フィルタが基になっていて、10 msフレームの追加などの変更がなされている。パケットの余計な負荷を最低限に抑えるためにSILKは60 msのより長い遅延(対してCELTは20 ms)に対応している。ハイブリッドストリーミングにおける両パーツの共有レンジコーダーはCELTによって賄われている。

このコーデックは3つの異なるモードが有り、純粋なスピーチ信号のための2つのモードと一般的なオーディオ(音楽含む)のための3番目のモードがある。スピーチモードの1つは人間が聴くことのできる範囲の完全なスペクトラムを再生することができ、CELTは周波数範囲の上部(8 kHz以上)で使われ、SILKは下部で使用される。低ビットレート(約30 kbit/s以下)において上限周波数を遮断することができ、SILKはここでも下部で使用される。オーディオでの高ビットレートではスピーチ信号に特化したSILKレイヤーは省かれ、特化していないCELTレイヤーが使用される。

レファレンス実装はC言語で書かれ、FPUのあるなしに関係なくハードウェアアーキテクチャでコンパイルされる。

OpusのデータはOggのコンテナでカプセル化することができる。そのようなOgg Opusストリームの内容はaudio/ogg; codecs=opusで指定する必要があり、Ogg Opusのファイルの拡張子は.opusにすることが推奨される[1]Matroskaのコンテナでのカプセル化対応は現在作業中である[8]

歴史[編集]

Opusは新たな音声コーデックの標準化としてIETFで計画され、IETFのコーデックワーキンググループによって最終的に承認された。Xiph.Org Foundationとスカイプ・テクノロジーズ(現マイクロソフト)による2つの当初分類されていた標準化計画に基づくものだった。主要開発者にジーン=マーク・ヴァリン (Xiph.Org, Octasic, Mozilla Corporation)、コエン・ボス(スカイプ)、ティモシー・B・テリーベリー (Xiph.Org, Mozilla Corporation) がおり、他にジュアン=ヒュイ(レイモンド)・チェン(ブロードコム)、グレゴリー・マクスウェル(Xiph.Org、ウィキメディア財団)、クリストファー・モンゴメリー英語版 (Xiph.Org) も関わっていた。

コーデックにおけるCELTの開発は「Ghost」のコードネームだったVorbisの後継として回帰した。OpusはXiphの古いスピーチ用コーデックでヴァリンによる初期のプロジェクトでもあるSpeexを置換するものとなっている。CELTは2007年9月より公開されている。

SILKはスカイプがiSACiLBCといったサードパーティ製コーデックと同様、それにそれぞれのライセンスへの支払のために会社から独立させた内部プロジェクトだったSVOPCの後継として2007年1月より開発を始めた。

2009年3月、スカイプはIETFによる広帯域音声コーデックの開発と標準化を承認したが、適切なワーキンググループの形成に関する多数の議論でほぼ1年費やした[9]G.719の作成者でライセンサーであるポリコム英語版エリクソンの担当者、G.718の開発に携わったフランステレコム、華為技術、オレンジラブズ英語版(フランステレコムの子会社)といった特許を妨げる競合するフォーマットの標準化に参加した数社の企業代表者が、ロイヤリティーフリーのコーデックの標準化プロセスの開始に関して異議を唱えた。ワーキンググループが最終的に形成されたのは2010年2月で、ITU-TのStudy Group 16が作業を支援することになった。

2010年6月、ハイブリッドフォーマットのプロトタイプがSILKとCELTの2つの計画されたコーデックを組み合わせる形で登場した。9月、OpusはIETFに標準化の提案として提出された。短期間だが、2010年10月までに現名称になるまでこのフォーマット名が「Harmony」だった時期がある[10][11]。2011年2月始め、ビットストリームフォーマットが最終変更の影響で暫定的に凍結された[12]。7月終わり近く、ジーン=マーク・ヴァリンはOpusの開発を続けるためにMozilla Corporationに雇用された[13]。11月、ワーキンググループはビットストリームフォーマットの変更のためにラストコールを出したが、ビットストリームは2012年1月8日以降凍結されたままとなっている[14]。2012年7月2日、Opusの標準化がIETFによって承認された[15]。リファレンスソフトウェアは8月8日にリリース候補状態になり[16]、最終的な仕様は2012年9月10日にRFC 6716としてリリースされ[17][7]、リファレンス実装のバージョン1.0と1.0.1が後日公開された。一方で、とりわけフォーマットの可変ビットレートメカニズムのより広範的な利用に関するリファレンスエンコーダーの実験的な分野での開発作業が行われ、特に人声が中心のサンプルにおいて、有意なほど高いオーディオ品質を生み出すと報告された。

品質比較と低レイテンシパフォーマンス[編集]

Opusと他の人気なコーデックを比較した圧縮効率

Opusは優れた品質を持っていることが示されており[5]、高いビットレートにおいてHE-AACやVorbisのような非常に大きい遅延のあるコーデックと競合する結果となった[18]

リスニングテストにおいて、プロプライエタリなSpectral Band Replication (SBR) 技術を使用することで、低ビットレートの分野では支配的だったHE-AACと比べてやはり優れた品質を示した[19][20]

Opusは会話、ネットワークを通じた音楽公演、ライブイベントでのリップシンクを可能にする低遅延のオーディオ通信リンクの一部として使用するために必須な、非常に低いアルゴリズム遅延を備える[3]

コーデックの総アルゴリズム遅延は、CPUの処理速度やネットワークの伝送速度に依存しない、エンコーダとデコーダが本質的に負う遅延の合計である。このような遅延には、オーディオサンプルをバッファ上で複数のブロックやフレームに分割し、ウインドウオーバーラップができるようにするための遅延の他、ノイズシェーピング英語版のための先読みを可能にするための遅延やその他のあらゆる先読みのための遅延、またMP3では、ビットリザーバーを使うための遅延も含むかもしれない。[21]

150 ms以下になっている合計の一方向レイテンシは発話交替による遅延の影響が軽微な状態で自然な会話を実現するために、ほとんどのVoIPシステムとの相性が良いものになっている[22]。音楽家が典型的にリアルタイムで感じる30 msまでのオーディオレイテンシ[23]ハース効果英語版の融合時間とおおよそ一致するが、ユーザーの各楽器の再生遅延と往復待ち時間とのマッチングも助けることができる[24]。45-100 msあたりのオーディオレイテンシが許容可能なリップシンク英語版も提案されている[25]

Opusは更に小さいアルゴリズム遅延(最小5.0 ms)を実現するために、品質とビットレートのトレードオフを許可している[26]。既定値のOpusのフレームは20 msの長さだが、一般的に22.5 msの遅延が与えられるCELTレイヤーによるウインドウオーバーラップやSILKレイヤーによるノイズシェーピングのためにさらに2.5 msの先読みが必要である。SILKレイヤーの最小限はフレーム10 ms(遅延12.5 ms)でCELTレイヤーの最小限はフレーム2.5 ms(遅延5.0 ms)である[27]

対応[編集]

フォーマットとアルゴリズムはドキュメントやリファレンス実装としてオープンになっており、フリーソフトウェアとして公開されている。別々のエンコーダーとデコーダーで構成されているリファレンス実装 (Opus Audio Tools, opus-tools) はBSDライクライセンスの下で公開されている。C言語で書かれており、FPUの有るハードウェア用にも、FPUの無いハードウェア用にもコンパイルできる。付属する診断ツールであるopusinfoはビットストリームフォーマットの標準準拠情報を含むOpusファイルの技術的情報を詳細に表示するが、vorbisツールのogginfoがベースとなっており、従ってエンコーダやデコーダーと異なりGPLV2の規約の下に公開されている。

VoIPソフトウェア[編集]

  • Mumble英語版というボイスチャット総計ではバージョン1.2.4でOpusにメインコーデックとして対応している[28][29]
  • SIPのソフトフォンであるPhonerPhonerLiteはOpusに対応している(Opusがまだ初期ドラフト段階のときから最初に対応している)。
  • SIPとIAX2クライアントのSFLphoneもOpusに最適化しようとしている[30]
  • Opus対応バージョンはまだ出ていないが、SkypeクライアントによるOpusの統合は完了している。
  • ビデオ会議ソリューションのTrueConfはOpusに対応している[31]
  • Jitsiはバージョン2.0の時にVP8ビデオ[32][33]サイズと共にOpusに対応している[34][35]
  • EmpathyはOpusを含むGStreamerが対応するフォーマットを使用出来る。
  • Line2は現コーデックをOpusに乗り換えた。iOSアプリケーションも公開当初からOpusに対応しているが、Androidアプリケーションは後に対応した。
  • CSipSimpleはプラグインの追加という形式でOpus、Codec2、G.726、G.722.1に対応している。
  • TeamSpeak 3というボイスチャットソフトウェアでもサーバーバージョン3.0.7とクライアントバージョン3.0.10から音声と音楽のためにOpusに対応している[36][37]

ウェブフレームワークとブラウザ[編集]

  • Opusへの対応はWebRTCの実行には必要不可欠である[38]
  • MozillaはFirefoxThunderbirdのバージョン15からOpusに対応している[39]
  • 使用中のバックエンドに応じる形で、Operaも組み込まれたOpusファイルのインライン再生に対応している[40]。OpusとWebRTCの正式対応は開発ロードマップに盛り込まれている[41]
  • ChromiumGoogle Chromeではバージョン25時点でOpusオーディオに部分対応しているが、<audio>要素には対応していない。

ストリーミングオーディオ[編集]

オペレーティングシステムとデスクトップマルチメディアフレームワーク[編集]

  • Debian GNU/Linuxでは2013年初頭リリースの安定版 ("wheezy") でOpus開発ツールとサポートライブラリを事前設定リポジトリからインストールすることができる[44]
  • Microsoft WindowsではDC-Bass Source ModやLAVフィルターを含むDirectShowフィルタがOpusに対応している[45]
  • GStreamerではOpus対応の統合が完了している[46]
  • FFmpegはFFmpeg 1.1より外部ライブラリのlibopusを使ってOpusを使ったデコードとエンコードに対応している[47]

ハードウェアの対応[編集]

プレーヤーソフトウェア[編集]

  • AIMPはバージョン3.20よりネイティブ対応している[50]
  • foobar2000はバージョン1.1.14ベータ1よりネイティブ対応している[51]
  • Mpxplayはバージョン1.60アルファ2の時点で外部のデコーダDLLを使用することでOpusに対応している。
  • VLC media playerはバージョン2.0.4以降でOpusに対応している[52]
  • XMPlayは開発元unseenによる公式のプラグインで対応している。

その他のソフトウェア[編集]

関連項目[編集]

脚注[編集]

  1. ^ a b Ogg Encapsulation for the Opus Audio Codec”. IETF (2012年7月16日). 2012年9月12日閲覧。
  2. ^ Network Working Group (2011年7月4日). “RTP Payload Format and File Storage Format for Opus Speech and Audio Codec”. Opus codec. IETF. 2011年10月26日閲覧。
  3. ^ a b c Opus Codec”. Opus. Xiph.org Foundation. 2012年7月31日閲覧。
  4. ^ http://arstechnica.com/gadgets/2012/09/newly-standardized-opus-audio-codec-fills-every-role-from-online-chat-to-music/
  5. ^ a b Raymond Chen et al. Opus Testing. IETF 80
  6. ^ Firefox Beta 15 supports the new Opus audio format”. Mozilla Hacks. Mozilla Foundation (2012年7月19日). 2012年7月31日閲覧。
  7. ^ a b It's Opus, it rocks and now it's an audio codec standard!”. Mozilla Hacks. 2012年9月12日閲覧。
  8. ^ MatroskaOpus”. XiphWiki (2012年7月5日). 2012年9月12日閲覧。
  9. ^ IETF working towards royalty-free audio codec”. H-online.com (2009年11月13日). 2012年9月12日閲覧。
  10. ^ Vos, Koen (2010年10月15日). “Harmony became Opus”. ietfcodec Discussion Archive mailing list.. http://www.ietf.org/mail-archive/web/codec/current/msg01852.html 2011年6月19日閲覧。 
  11. ^ [codec] Harmony became Opus”. Ietf.org (2010年10月15日). 2012年9月12日閲覧。
  12. ^ IETF Opus codec now ready for testing”. Hydrogenaudio.org. 2012年9月12日閲覧。
  13. ^ Valin, Jean-Marc (2011年8月1日). “IETF update, Mozilla”. LiveJournal.com. 2012年10月5日閲覧。
  14. ^ Opus Codec”. Opus Codec. 2012年9月12日閲覧。
  15. ^ Opus approved by the IETF”. Jmspeex.livejournal.com (2012年7月3日). 2012年9月12日閲覧。
  16. ^ [opus] Release candidates for 1.0.0 and 1.0.1 are available”. Lists.xiph.org. 2012年10月5日閲覧。
  17. ^ RFC 6716 on Definition of the Opus Audio Codec”. Ietf.org. 2012年9月12日閲覧。
  18. ^ Maxwell, Gregory (2011年). “64kbit/sec stereo multiformat listening test — unofficial results page”. Xiph.Org Foundation. 2011年6月19日閲覧。
  19. ^ Next-Gen Low-Latency Open Codec Beats HE-AAC, Slashdot-Meldung vom 14. April 2011
  20. ^ Summary of Opus listening test results”. Internet Engineering Task Force (2011年10月24日). 2012年1月16日閲覧。
  21. ^ Lutzky, Manfred; Schuller, Gerald; Gayer, Marc; Krämer, Ulrich; Wabnik, Stefan (2004.). “A guideline to audio codec delay”. In AES 116th convention, Berlin, Germany: 8–11. http://www.iis.fraunhofer.de/content/dam/iis/de/dokumente/amm/conference/AES116_guideline-to-audio-codec-delay.pdf 2012年10月30日閲覧。. 
  22. ^ Lironi, F.; et al. (2005). “Multi RAB-based multimedia services over GERAN mobile networks”. Vehicular Technology Conference, VTC-2005-Fall. IEEE 62nd 3: 1662–1666. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1558224 2012年10月30日閲覧。. 
  23. ^ Lago, Nelson Posse; Kon, Fabio (November 2004). “The quest for low latency”. In Proceedings of the International Computer Music Conference: 33–36. http://reference.kfupm.edu.sa/content/q/u/the_quest_for_low_latency_51966.pdf 2012年10月30日閲覧。. 
  24. ^ Carôt, Alexander (2010). "Low Latency Audio Streaming for Internet-Based Musical Interaction." in Streaming Media Architectures: Techniques and Applications: Recent Advances. IGI Global. pp. 362–383. ISBN 1616928336, 9781616928339. http://books.google.co.uk/books?hl=en&lr=&id=Cb4dWYVJ_8AC&oi=fnd&pg=PA362&dq=Carot+2006+audio+delay#v=onepage&q&f=false. 
  25. ^ YE, NONG, VAN CHEN, and TONI FARLEY (2003). "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. pp. 183–189. ISBN 9812383433, 9789812383433. http://books.google.co.uk/books?hl=en&lr=&id=UJBMYx_8_2UC&oi=fnd&pg=PA183#v=onepage&q&f=false. 
  26. ^ Montgomery, Christopher. “A quick showcase of the bleeding edge... CELT 0.10.0 @ constant PEAQ value, varying latency”. CELT v0.10 (latest prior to Opus integration). xiph.org. 2012年10月30日閲覧。
  27. ^ Valin, Jean-Marc et al.. “Opus Codec Overview”. IETF RFC 6716. IETF. 2012年10月30日閲覧。
  28. ^ Kommentare zu: Was ich so höre ... Liste freier Musik”. Natenom.name (2010年10月14日). 2012年9月12日閲覧。
  29. ^ 1.2.4 - Mumble”. Mumble. 2012年9月12日閲覧。
  30. ^ SFLphone — Task #14602: [Codec] Implement opus”. Savoir-faire Linux (2012年8月13日). 2012年9月12日閲覧。
  31. ^ TrueConf supports Opus
  32. ^ (SIP Communicator) | GSOC / Opus and CELT support in”. Jitsi. 2012年9月12日閲覧。
  33. ^ (SIP Communicator) | Development / Roadmap”. Jitsi. 2012年9月12日閲覧。
  34. ^ https://download.jitsi.org/jitsi/changelogs/changelog-4506.html
  35. ^ https://download.jitsi.org/jitsi/changelogs/changelog-4506.html
  36. ^ [Beta Channel TeamSpeak 3 Client 3.0.10]”. TeamSpeak Forums. 2012年12月10日閲覧。
  37. ^ [PreRelease TeamSpeak 3 Server 3.0.7 PreRelease 2]”. TeamSpeak Forums. 2012年12月10日閲覧。
  38. ^ Zwei Audio-Codecs für Echtzeit-Kommunikation im Browser”. Heise.de. 2012年9月12日閲覧。
  39. ^ Media formats supported by the HTML audio and video elements”. Developer.mozilla.org (2012年9月3日). 2012年9月12日閲覧。
  40. ^ Why no official mention of Opus support?”. My.opera.com (2012年7月19日). 2012年9月12日閲覧。
  41. ^ Shankland, Stephen (2012年8月17日). “How corporate bickering hobbled better Web audio”. CNET News. 2012年9月12日閲覧。
  42. ^ Icecast 2.4 beta release”. Lists.xiph.org. 2012年9月12日閲覧。
  43. ^ Absolute Radio, Listen Labs. “Opus Streaming Trial”. Absolute Radio. 2012年10月30日閲覧。
  44. ^ Debian Webmaster, webmaster@debian.org. “Details of package opus-tools in wheezy”. Packages.debian.org. 2012年10月5日閲覧。
  45. ^ lavfilters — Open-Source DirectShow Media Splitter and Decoders”. Google Project Hosting. 2012年10月5日閲覧。
  46. ^ GStreamer: news”. Gstreamer.freedesktop.org. 2012年10月5日閲覧。
  47. ^ http://ffmpeg.org/download.html#release_1.1
  48. ^ Rockbox Contributors. “Rockbox code repository”. Rockbox. 2012年10月14日閲覧。
  49. ^ RockboxAsAnApplication2010 < Main < Wiki”. Rockbox.org. 2012年10月5日閲覧。
  50. ^ AIMP: Home Page”. Aimp.ru. 2012年10月5日閲覧。
  51. ^ foobar2000 v1.1.14 beta”. Hydrogenaudio Forums. 2012年10月5日閲覧。
  52. ^ VLC 2.0.4 Twoflower”. VideoLAN. 2012年10月19日閲覧。

外部リンク[編集]