コーデック2
| コーデック2 | |
|---|---|
| 開発者 | デビッド・グラント・ロウ |
| 初回リリース | 2010年8月25日 |
| 安定版リリース | 1.2.0 / 2023年6月24日 |
| リポジトリ | github |
| 書かれた | C99 |
| プラットフォーム | クロスプラットフォーム |
| タイプ | オーディオコーデック |
| ライセンス | GNU LGPL、v2.1 |
| Webサイト | www.rowetel.com |
Codec 2は、特許フリーでオープンソースの低ビットレート音声コーデック(音声符号化)です。[ 1 ] Codec 2は、人間の音声に特化した正弦波符号化方式を用いて音声を圧縮します。3200~450ビット/秒のビットレートを実現しています。Codec 2は、アマチュア無線などの高圧縮音声アプリケーション 向けに設計されました。
概要
このコーデックは、David Grant Roweが他の研究者( OpusのJean-Marc Valinなど)の支援と協力を得て開発しました。[ 2 ]
Codec 2は、3200、2400、1600、1400、1300、1200、700、450ビット/秒のコーデックモードで構成されています。他のほとんどの低ビットレート音声コーデックよりも優れた性能を発揮します。例えば、Advanced Multi-Band Excitationの半分の帯域幅で同等の品質の音声をエンコードできます。この音声コーデックは16ビットPCMサンプリング音声を使用し、パックされたデジタルバイトを出力します。パックされたデジタルバイトを送信すると、PCMサンプリング音声が出力されます。音声のサンプリングレートは8kHzに固定されています。
リファレンス実装はオープンソースであり、 GitHubリポジトリから無料で入手できます。[ 3 ]ソースコードはGNU Lesser General Public License(LGPL)バージョン2.1の条件に従って公開されています。[ 4 ] C言語でプログラムされており、現在のソースコードでは浮動小数点演算が必要ですが、アルゴリズム自体はこれを必要としません。リファレンスソフトウェアパッケージには、周波数分割多重デジタル音声ソフトウェアモデムとWxWidgetsに基づくグラフィカルユーザーインターフェイスも含まれています。ソフトウェアはLinux上で開発されており、Apple MacOS版に加えて、Cygwinで作成されたMicrosoft Windows版も提供されています。
このコーデックは様々な会議で発表されており、2012年のARRL技術革新賞[ 5 ]とLinuxオーストラリア会議のベストプレゼンテーション賞を受賞しました。[ 6 ]
テクノロジー
内部的には、パラメトリックオーディオコーディングアルゴリズムが、人間の音声モデルを用いて10msのPCMフレームを処理します。これらの各オーディオセグメントは、有声音(母音)または無声音(子音)として宣言されます。
コーデック2は、音声をモデル化するために正弦波符号化を使用します。これは、マルチバンド励起コーデックの符号化と密接に関連しています。正弦波符号化は、倍音周波数のパターンの規則性(周期性)に基づいており、倍音正弦波を重層します。話し声は、話者の声の特定の基本周波数(ピッチ)の上に、線スペクトル対(LSP)と呼ばれる独立した振幅を持つ倍音的に関連した正弦波の合計として音声をモデル化することで再現されます。倍音の(量子化された)ピッチと振幅(エネルギー)は符号化され、LSPとともにデジタル形式でチャネルを介して交換されます。LSP係数は周波数領域で線形予測符号化(LPC)モデルを表し、LPCパラメータの堅牢で効率的な量子化に役立ちます。[ 7 ]
デジタルバイトはビットフィールド形式で、バイトにまとめられています。これらのビットフィールドは、グループ化される前にオプションでグレイコーディングされます。グレイコーディングは生のデータをそのまま送信する場合に便利ですが、通常はアプリケーションがビットフィールドをバースト送信します。これらのビットフィールドは、保存または交換される様々なパラメータ(ピッチ、エネルギー、ボイシングブール値、LSPなど)を構成します。
例えば、モード3200では、20msのオーディオデータが64ビットに変換されます。つまり、64ビットが20msごとに(1秒間に50回)出力され、最小データレートは3200ビット/秒となります。この64ビットは8バイトとしてアプリケーションに送信され、アプリケーションはビットフィールドをアンラップするか、データチャネルを介してバイトを送信する必要があります。
もう1つの例として、モード1300があります。このモードでは、40msのオーディオ信号が送信され、40msごとに52ビット(1秒間に25回)出力されます。これにより、最低1300ビット/秒のレートが実現されます。これらの52ビットは、7バイトとしてアプリケーションまたはデータチャネルに送信されます。
採択
Codec 2 は現在、いくつかの無線およびソフトウェア定義無線システムで使用されています。
Codec 2 もFreeSWITCHに統合されており、Asteriskでサポートするためのパッチが利用可能です。
2017年に国際宇宙ステーションから打ち上げられ、その後展開されたアマチュア無線キューブサットLilacSat-1(コールサインON02CN、QB50コンステレーション)には、地球軌道上にFMからCodec2へのデジタル音声中継装置が搭載されていました。[ 13 ]
歴史
著名なフリーソフトウェア提唱者でありアマチュア無線家でもあるブルース・ペレンズは、 5 kbit/s未満で動作する音声コーデックの開発をロビー活動で推進しました。ペレンズ自身にはその経験がなかったため、2008年にジャン=マルク・ヴァリンに接触し、ヴァリンはペレンズを主任開発者のデイビッド・グラント・ロウに紹介しました。ロウはヴァリンと共にSpeexの開発に何度も携わっています。ロウ自身もアマチュア無線家(アマチュア無線のコールサインはVK5DGR)であり、音声コーデックや音声信号用の信号処理アルゴリズムの開発と使用の経験を持っていました。彼は1990年代に音声符号化の博士号を取得し、初期の衛星電話システムの一つ(モバイルサット)の開発に携わりました。
彼はその仕事を引き受け、2009年8月21日にフォーマット開発に取り組む決断を発表した。彼は博士論文の研究と発見を基に作業を進めた。[ 14 ] [ 15 ]基礎となる正弦波モデリングは、1980年代半ばのロバート・J・マコーレーとトーマス・F・クアティエリ(MITリンカーン研究所)による開発に遡る。
2010年8月、David Roweはバージョン0.1アルファを公開しました。[ 16 ]バージョン0.2は2011年末にリリースされ、1,400ビット/秒のモードが導入され、量子化が大幅に改善されました。
2012年1月、linux.conf.auで、Jean-Marc Valinは、Roweがあまり詳しくない線スペクトル対の量子化の改善に協力しました。[ 17 ] 2011年冬と2012年春に利用可能なビットレートモードに数回の変更が行われた後、同年5月以降、2,400、1,400、1,200ビット/秒モードが利用可能になりました。
700ビット/秒のビットレートを持つ新しいモードであるコーデック2 700Cは、2017年初頭に完成しました。[ 18 ]
2018年7月、エアランゲン=ニュルンベルク大学の修士論文の一環として開発された、実験的な450ビット/秒モードが実証されました。ベクトル量子化を巧みに訓練することで、700Cモードの原理に基づいてデータレートをさらに低減することができました。[ 19 ]
参考文献
- ^ 「DCC2011-Codec2-VK5DGR」(PDF) .
- ^ 「Codec2用ピッチエネルギー量子化器」 。2015年6月19日時点のオリジナルよりアーカイブ。
- ^ 「Codec 2ソースのリポジトリ」 . GitHub . 2021年10月14日.
- ^ 「Codec2 – オープンソースの低帯域幅音声コーデック」 Slashdot 、 2010年9月21日。
- ^ 「ARRL理事会が2012年第2回会議で受賞者を選出」www.arrl.org。
- ^ 「Linux Australia 2012 カンファレンス」。2012年11月29日時点のオリジナルよりアーカイブ。2012年8月2日閲覧。
- ^ 「高調波正弦波符号化技術」(PDF) 。 2013年5月15日時点のオリジナル(PDF)からアーカイブ。 2013年4月12日閲覧。
- ^ 「FreeDV: オープンソースのアマチュアデジタル音声 - アマチュア無線が最先端技術を推進」。
- ^ 「FreeDV、CODEC2、そしてWaveformAPI」。2015年4月2日時点のオリジナルよりアーカイブ。2015年3月6日閲覧。
- ^ 「SM1000スマートマイクのご紹介 – Rowetel」 2014年5月21日。
- ^ 「Quisk、ソフトウェア定義無線(SDR)」。james.ahlstrom.name。
- ^ 「M17プロトコルの説明」。GitHub 。
- ^ 「QB-50コンステレーション衛星がISSから展開」アメリカ無線中継連盟ウェブサイト2017年11月15日. 2019年3月31日閲覧。
- ^ 「高調波正弦波符号化技術」(PDF) 。 2013年5月15日時点のオリジナル(PDF)からアーカイブ。 2013年4月12日閲覧。
- ^ 「オープンソースの低レート音声コーデック パート1 – Rowetel」 2009年8月21日。
- ^ 「Codec2 V0.1 Alpha リリース – Rowetel」 2010年8月25日。
- ^ 「Codec2 用ピッチエネルギー量子化器」。
- ^ 「オープンソースコーデックが音声をわずか700ビット/秒にエンコード」 Slashdot 、 2017年1月13日。 2019年3月31日閲覧。
- ^ 「Codec2 HFデジタル音声(450bps)」サウスゲートアマチュア無線ニュース。2018年7月8日。 2019年3月31日閲覧。