Opus (オーパス)とは、IETF によって開発され、主にインターネット上でのインタラクティブな用途に合わせて作られた非可逆音声圧縮 フォーマット[ 3] 。RFC 6716 によって標準化されたオープンフォーマット として、リファレンス実装 は3条項BSDライセンス の下で提供されている。Opusをカバーするすべての既知のソフトウェア特許は、ロイヤリティフリーの条項の下でライセンスされている[ 4] 。
Opusは、スピーチ向きのSILK (英語版 ) と低レイテンシ で音楽用途にも使えるCELT の2つのコーデックの技術を組み込んでいる[ 3] 。Opusは、ビットレート の高低を継ぎ目なく調節でき、内部的には、低いビットレートでは線形予測コーデック 、高ビットレートでは変換コーデック を使い、途中で切り替えることも可能である(短時間はハイブリッドでオーバーラップさせられる)。Opusは会話、ネットワーク上の音楽公演やライブイベントなどでリップシンク することができ、低遅延のオーディオ通信リンクの一部として使用するために必須な、非常に小さいアルゴリズム遅延 (デフォルトでは22.5 ms)を持つ。Opus は、音声品質を犠牲にすれば、アルゴリズム遅延を最高5 msまでに小さくすることができる。MP3 , Vorbis , HE-AAC などの既存の音楽用コーデックは100 ms以上の遅延があり、Opus はそれらよりも遅延がずっと小さいにもかかわらず、ビットレートに対する品質では遜色ないものとなっている[ 5] 。上記の既存コーデックとは異なり、Opusは個々のファイルに巨大なコードブック 定義を持たせないので、短いショートクリップ音声の保管にも適している[ 6] 。
機能
他のコーデックと比較した可能なビットレートと遅延の組み合わせ
6 kbit/sから510 kbit/s、フレームサイズ2.5 msから120 ms、サンプリングレート 8 kHz(帯域幅4 kHz)から48 kHz(帯域幅20 kHz、つまり、人間の持っている聴覚系の全聴力範囲 (英語版 ) を再現することが可能)の範囲での固定 及び可変ビットレート エンコードに対応している。Opusを使ったストリーミングはミッド/サイドコーディングを使って2つのチャンネルを結合 (英語版 ) できるため255までの音声チャンネル に対応できる。
Opusが持つ本質的な低遅延(既定値22.5 ms)の性質により、電話 、VoIP 、ビデオ会議 で必要とされる同一のリアルタイムコンピューティング を実現することができる。高品質な音声のためにより高いビットレートで低遅延を維持する技術はXiph.Org Foundation がCELT というコーデックの開発で実現している。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 のあるなしによらず、複数のハードウェアアーキテクチャーで利用できる。
現在、浮動小数点は、音声帯域検出 (SILKとCELT、ハイブリッドの各エンコーディング間の動的切り替え)と速度の最適化のためにのみ必要である。
OpusのデータはOgg のコンテナでカプセル化することができる。そのようなOgg Opusストリームの内容はaudio/ogg; codecs=opus
で指定する必要があり、Ogg Opusのファイルの拡張子は.opus
にすることが推奨される[ 1] 。その他、Matroska [ 8] 、WebM [ 9] のコンテナに格納することができる。
歴史
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はスカイプがiSAC やiLBC といったサードパーティ製コーデックと同様、それにそれぞれのライセンスへの支払のために会社から独立させた内部プロジェクトだったSVOPC の後継として2007年1月より開発を始めた。
2009年3月、スカイプはIETFによる広帯域音声コーデックの開発と標準化を承認したが、適切なワーキンググループの形成に関する多数の議論でほぼ1年費やした[ 10] 。G.719 の作成者でライセンサーであるポリコム とエリクソン の担当者、G.718 の開発に携わったフランステレコム 、華為技術、オレンジラブズ(フランステレコムの子会社)といった特許を妨げる競合するフォーマットの標準化に参加した数社の企業代表者が、ロイヤリティーフリーのコーデックの標準化プロセスの開始に関して異議を唱えた。ワーキンググループが最終的に形成されたのは2010年2月で、ITU-TのStudy Group 16が作業を支援することになった。
2010年6月、ハイブリッドフォーマットのプロトタイプがSILKとCELTの2つの計画されたコーデックを組み合わせる形で登場した。9月、OpusはIETFに標準化の提案として提出された。短期間だが、2010年10月までに現名称になるまでこのフォーマット名が「Harmony」だった時期がある[ 11] [ 12] 。2011年2月始め、ビットストリーム フォーマットが最終変更の影響で暫定的に凍結された[ 13] 。7月終わり近く、ジーン=マーク・ヴァリンはOpusの開発を続けるためにMozilla Corporationに雇用された[ 14] 。11月、ワーキンググループはビットストリームフォーマットの変更のためにラストコールを出したが、ビットストリームは2012年1月8日以降凍結されたままとなっている[ 15] 。2012年7月2日、Opusの標準化がIETFによって承認された[ 16] 。リファレンスソフトウェアは8月8日にリリース候補状態になり[ 17] 、最終的な仕様は2012年9月10日に RFC 6716 としてリリースされ[ 18] [ 7] 、リファレンス実装のバージョン1.0と1.0.1が後日公開された。一方で、とりわけフォーマットの可変ビットレートメカニズムのより広範的な利用に関するリファレンスエンコーダーの実験的な分野での開発作業が行われ、特に人声が中心のサンプルにおいて、有意なほど高いオーディオ品質を生み出すと報告された。
品質比較と低レイテンシパフォーマンス
Opusと他の人気のコーデックを比較した圧縮効率
Opusは優れた品質を持っていることが示されており[ 5] 、高いビットレート においてHE-AAC やVorbisのような非常に大きい遅延のあるコーデックと競合する結果となった[ 19] 。
64kbpsでのリスニングテストにおいて、プロプライエタリなSpectral Band Replication (SBR) 技術を使用することで低ビットレートの分野では支配的だったHE-AACと比べても、やはり優れた品質を示した[ 20] [ 21] 。96kbpsではOpusはわずかにAAC より良く、Vorbis やMP3 との比較では著しく良い結果となった。[ 22]
レイテンシ
低レイテンシ は会話、音楽公演、リップシンク等のリアルタイム用途に重要な特性である。レイテンシはジッタバッファ遅延・アルゴリズム遅延 ・処理遅延などからなり、十ミリ秒オーダーの低レイテンシ要件ではアルゴリズム遅延も重要になる。Opusは前記の用途に必要な低アルゴリズム遅延を備えている[ 3] 。
音声コーデックのアルゴリズム遅延 はエンコーダ/デコーダが信号を複数のブロックやフレームに分割し、ウインドウオーバーラップ ができるようにするための遅延の他、ノイズシェーピング (英語版 ) のための先読みを可能にするための遅延やその他のあらゆる先読みのための遅延、またMP3では、ビットリザーバーを使うための遅延などからなる。[ 23]
150 ms以下になっている合計の一方向レイテンシは発話交替による遅延の影響が軽微な状態で自然な会話を実現するために、ほとんどのVoIPシステムとの相性が良いものになっている[ 24] 。音楽家が典型的にリアルタイムで感じる30 msまでのオーディオレイテンシ[ 25] はハース効果 の融合時間とおおよそ一致するが、ユーザーの各楽器の再生遅延と往復待ち時間とのマッチングも助けることができる[ 26] 。45-100 msあたりのオーディオレイテンシが許容可能なリップシンク (英語版 ) も提案されている[ 27] 。
Opusは更に小さいアルゴリズム遅延(最小5.0 ms)を実現するために、品質とビットレートのトレードオフを許可している[ 28] 。既定値のOpusのフレームは20 msの長さだが、一般的に22.5 msの遅延が与えられるCELTレイヤーによるウインドウオーバーラップ やSILKレイヤーによるノイズシェーピングのためにさらに2.5 msの先読みが必要である。SILKレイヤーの最小限はフレーム10 ms(遅延12.5 ms)でCELTレイヤーの最小限はフレーム2.5 ms(遅延5.0 ms)である[ 29] 。
対応
フォーマットとアルゴリズムはドキュメントやリファレンス実装としてオープンになっており、フリーソフトウェア として公開されている。別々のエンコーダーとデコーダーで構成されているリファレンス実装 (Opus Audio Tools, opus-tools) はBSDライクライセンス の下で公開されている。C言語で書かれており、FPUの有るハードウェア用にも、FPUの無いハードウェア用にもコンパイルできる。付属する診断ツールであるopusinfoはビットストリームフォーマットの標準準拠情報を含むOpusファイルの技術的情報を詳細に表示するが、vorbisツールのogginfoがベースとなっており、従ってエンコーダやデコーダーと異なりGPLV2 の規約の下に公開されている。
VoIPソフトウェア
ウェブフレームワークとブラウザ
ストリーミングオーディオ
Icecast [ 44] では2012年9月より実験的にライブストリーミング配信を行なっている[ 45] 。
Liquidsoap
ネットラジオストリーミングで知られるFM++ はlibopusを使用[ 46] しており、国内のネットラジオ送信ではらじるらじるやListenradioと比べても、ファイルサイズが小さいので最も音声遅延が少ない。
オペレーティングシステムとデスクトップマルチメディアフレームワーク
ハードウェアの対応
プレーヤーソフトウェア
その他のソフトウェア
脚注
^ a b “Ogg Encapsulation for the Opus Audio Codec ”. IETF (2012年7月16日). 2012年9月12日 閲覧。
^ Network Working Group (July 4, 2011). “RTP Payload Format and File Storage Format for Opus Speech and Audio Codec ”. Opus codec . IETF. October 26, 2011 閲覧。
^ a b c “Opus Codec ”. Opus . Xiph.org Foundation. July 31, 2012 閲覧。
^ http://arstechnica.com/gadgets/2012/09/newly-standardized-opus-audio-codec-fills-every-role-from-online-chat-to-music/
^ a b Raymond Chen et al. Opus Testing . IETF 80
^ “Firefox Beta 15 supports the new Opus audio format ”. Mozilla Hacks . Mozilla Foundation (July 19, 2012). July 31, 2012 閲覧。
^ a b “It's Opus, it rocks and now it's an audio codec standard! ”. Mozilla Hacks. 2012年9月12日 閲覧。
^ Bunkus, Moritz (16 September 2013). "MKVToolNix v6.4.0 released" . Matroska users (Mailing list). 2016年2月13日閲覧 。
^ “WebM Container Guidelines ”. The WebM Project (2015年9月24日). 2016年2月13日 閲覧。
^ “IETF working towards royalty-free audio codec ”. H-online.com (2009年11月13日). 2012年9月12日 閲覧。
^ Vos, Koen (15 October 2010). "Harmony became Opus" . ietfcodec Discussion Archive (Mailing list). 2011年6月19日閲覧 。
^ “[codec] Harmony became Opus ”. Ietf.org (2010年10月15日). 2012年9月12日 閲覧。
^ “IETF Opus codec now ready for testing ”. Hydrogenaudio.org. 2012年9月12日 閲覧。
^ Valin, Jean-Marc (2011年8月1日). “IETF update, Mozilla ”. LiveJournal.com . 2012年10月5日 閲覧。
^ “Opus Codec ”. Opus Codec. 2012年9月12日 閲覧。
^ “Opus approved by the IETF ”. Jmspeex.livejournal.com (2012年7月3日). 2012年9月12日 閲覧。
^ “[opus] Release candidates for 1.0.0 and 1.0.1 are available ”. Lists.xiph.org. 2012年10月5日 閲覧。
^ “RFC 6716 on Definition of the Opus Audio Codec ”. Ietf.org. 2012年9月12日 閲覧。
^ Maxwell, Gregory (2011年). “64kbit/sec stereo multiformat listening test — unofficial results page ”. Xiph.Org Foundation. 2011年6月19日 閲覧。
^ Next-Gen Low-Latency Open Codec Beats HE-AAC , Slashdot-Meldung vom 14. April 2011
^ “Summary of Opus listening test results ”. Internet Engineering Task Force (2011年10月24日). 2012年1月16日 閲覧。
^ 公開リスニングテストの結果 (2014年7月)
^ 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 30 October 2012 閲覧。 .
^ 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 30 October 2012 閲覧。 .
^ 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 30 October 2012 閲覧。 .
^ 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 9781616928339 . https://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
^ 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 . https://books.google.co.uk/books?hl=en&lr=&id=UJBMYx_8_2UC&oi=fnd&pg=PA183#v=onepage&q&f=false
^ 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. 30 October 2012 閲覧。
^ Valin, Jean-Marc et al.. “Opus Codec Overview ”. IETF RFC 6716 . IETF. 30 October 2012 閲覧。
^ “Kommentare zu: Was ich so höre ... Liste freier Musik ”. Natenom.name (2010年10月14日). 2012年9月12日 閲覧。
^ “1.2.4 - Mumble ”. Mumble. 2012年9月12日 閲覧。
^ “SFLphone — Task #14602: [Codec] Implement opus ”. Savoir-faire Linux (2012年8月13日). 2012年9月12日 閲覧。
^ TrueConf supports Opus
^ “(SIP Communicator) | GSOC / Opus and CELT support in ”. Jitsi. 2012年9月12日 閲覧。
^ “(SIP Communicator) | Development / Roadmap ”. Jitsi. 2012年9月12日 閲覧。
^ a b https://download.jitsi.org/jitsi/changelogs/changelog-4506.html
^ “[Beta Channel TeamSpeak 3 Client 3.0.10]”. TeamSpeak Forums. 2012年12月10日 閲覧。
^ “[PreRelease TeamSpeak 3 Server 3.0.7 PreRelease 2]”. TeamSpeak Forums. 2012年12月10日 閲覧。
^ “Zwei Audio-Codecs für Echtzeit-Kommunikation im Browser ”. Heise.de. 2012年9月12日 閲覧。
^ “Media formats supported by the HTML audio and video elements ”. Developer.mozilla.org (2012年9月3日). 2012年9月12日 閲覧。
^ “Why no official mention of Opus support? ”. My.opera.com (2012年7月19日). 2013年9月14日時点のオリジナル よりアーカイブ。2012年9月12日 閲覧。
^ Shankland, Stephen (2012年8月17日). “How corporate bickering hobbled better Web audio ”. CNET News. 2012年9月12日 閲覧。
^ “Can I use... ”. 2015年10月11日 閲覧。
^ “Icecast 2.4 beta release ”. Lists.xiph.org. 2012年9月12日 閲覧。
^ Absolute Radio, Listen Labs. “Opus Streaming Trial ”. Absolute Radio. 30 October 2012 閲覧。
^ “その他 ”. fmplapla.com . FM++. 2020年1月1日 閲覧。
^ Debian Webmaster. “Details of package opus-tools in wheezy ”. Packages.debian.org. 2012年10月5日 閲覧。
^ “lavfilters — Open-Source DirectShow Media Splitter and Decoders ”. Google Project Hosting. 2012年10月5日 閲覧。
^ “GStreamer: news ”. Gstreamer.freedesktop.org. 2012年10月5日 閲覧。
^ http://ffmpeg.org/download.html#release_1.1
^ “iOS 12.2の新機能と変更点を徹底解説 ”. ITmedia NEWS . 2020年4月25日 閲覧。
^ https://downloads.polycom.com/voice/voip/uc/UC_Software_5_4_0_Release_Notes.pdf
^ Rockbox Contributors. “Rockbox code repository ”. Rockbox. 2012年10月14日 閲覧。
^ “RockboxAsAnApplication2010 < Main < Wiki ”. Rockbox.org. 2012年10月5日 閲覧。
^ “AIMP: Home Page ”. Aimp.ru. 2012年10月5日 閲覧。
^ “foobar2000 v1.1.14 beta ”. Hydrogenaudio Forums. 2012年10月5日 閲覧。
^ “PDSoft ”. mpxplay.sourceforge.net. 2018年10月29日 閲覧。
^ “VLC 2.0.4 Twoflower ”. VideoLAN. 2012年10月19日 閲覧。
^ “xmplay ”. www.un4seen.com. 2018年10月29日 閲覧。
関連項目
外部リンク