機械翻訳より多少マシに

Opus: ネイティブOpusエンコーダーを追加
これはOpusエンコーダーを一切のlibopusのコードを使わずに書いた初めてのものです。
エンコーダーの目的は、変わったエンコーダーでどれだけこのフォーマットが使えるかを証明することです。

今のところはエンコーダーの基本のCBRエンコードしかサポートしていませんが、内部的にはCELT(ケルト)が持つすべての機能が実装されています。(残りの実装されていない部分とうまく動作する必要があるピッチ・プレフィルターを除く)
心理音響とレートコントロールは開発中です。

エンコーダーは120サンプルのフレームを取り込み、opus_delayの値に応じて追加の先読みバッファとして使用する予定です。
今のところはエンコーダーは先読みをせずに、最も近く大きな有効フレームサイズ選択しますが、心理音響システムが実装されればそうではなくなるでしょう。

とても基本的なエンコーダーですが、すでにFFmpegエンコーダーが含んでいる膨大な、他のどのネイティブエンコーダーよりも優れた性能を持っています。

PVQ(ピラミッドベクトル量子化 https://people.xiph.org/~tterribe/daala/pvq201404.pdf)アルゴリズムは、libopusのアルゴリズムよりも正確なので、エンコーダーの性能はlibopusの性能に計算量以外では近いです。(libopusはもっとSIMDを使っている)
PVQアルゴリズムは将来libopusや他のコーデックに移植されるかもしれません。

このエンコーダーには依然として多少のバグがあります。(例えば20msで9kbps以下の超低ビットレートでの同期不良など)