「蒼弓ノート」 別館

aoTuV ヒストリー

最終更新:

匿名ユーザー

- view
メンバー限定 登録/ログイン
#blognavi
 最近WikipediaやAudio Coding JapanにaoTuVに関する記述が加えられているのに気付き、少し恥ずかしい感じでした。なんだかムズムズします。
 そこで思いついたのですが、少しaoTuVを振り返って見たいと思います。特に昔のバージョンについては具体的に書いたことが無かったので。

  • aoTuV alpha1 - 2003/12/23
オフィシャルのVorbis開発が全く進展しないので、自分で少し弄ってみたものです。今と比べても右も左も解らない状況でした。しかし、幾つかの問題を改善することができました。またquality-2(40kbps)モードを追加したりもしました。

  • aoTuV alpha2 - 2004/01/01
  • aoTuV alpha3 - 2004/01/31
alpha1の延長線上にあります。エンコード・デコードライブラリであるlibvorbisはmode(=quality)毎にエンコードのための多くのパラメータを設定[*1]するようになっており、alpha1に引き続きそのパラメータ群を弄っていました。

[*1]lib/modesフォルダ以下にあるヘッダファイルに記述されています。
チューニングでは全体の整合性が問題になるので、ここは今でもよく変更します。

  • aoTuV beta1 - 2004/02/15
  • aoTuV beta1a - 2004/02/27(26)
本質的にはalpha版と変わりません。細かい部分の修正はありますが、一番大きな違いはソースコード公開のためにコメントを整理したことです。beta1aはバグフィックス版です(にゃおちさんにはお世話になりました)。

  • aoTuV beta2 - 2004/04/21
当時注目株のVorbisエンコーダと言えは、QantumKnot(Hydrogenaudioでのニックネーム)氏のQKTuneでした。初期のQKTuneは幾多のチューニング版と同じく設定用パラメータのみを弄ったものでしたが、ちょうどチャンネルカップリング周りのコードに手を入れた版が公開された時期でした。それは少し乱暴な手法を採っていましたが、確かに効果的な側面もありました。
私はそれに触発され、コードベースの変更を加えることになりました。そしてその試行錯誤の結果がbeta2です。追加したコードは、聞こえにくい部分のResidue(エネルギーの詳細)を小さくし、逆に聞こえやすい部分は少し大きくするように働きます。
このバージョンは高い評価を受け、後に本家libvorbis1.1にほぼそのまま採用されました(除いた処理が一部ありますが)。

  • aoTuV beta3 - 2004/11/21
より効率的なプリエコーの削減を実現するためのコードを追加。またq-2(ターゲットビットレートを40kbpsから32kbpsに変更)を全てのサンプリング周波数で使用できるようにしたり、弱音対策を施したものがこの版です。
aoTuV beta2を取り込んだlibvorbis 1.1をベースとしています。

  • aoTuV beta4 - 2005/06/18
チャンネルカップリング周りに手を入れました。これはbeta3で大きくノイズ量を変化させるようになったために、ステレオ周りの問題が目立つケースがあったからです。他にも細かい変更・追加があります。companderパラメータの調整は、高ビットレートで効果がありましたが、全体としてはbeta3のfix版と言った位置付けです。

  • aoTuV beta4.5 - 2005/11/05
  • aoTuV beta4.51 - 2005/11/19(17)
beta3の弱音処理コードの書き換えが主な変更点。4.51はバグフィックス版であり、またGCC4で正常に動作するバイナリをコンパイル出来るようになりました。

  • おまけ
aoTuV beta5?
主に低ビットレートから中ビットレートでの改善に主眼を置いています。初期のpre-beta5の目標は主にnoise normalization[*2]の挙動の改善でした。それから、チャンネルカップリングでは動的にステレオの閾値の変更をするようにしました。公開バージョンのpre-beta5からは追加したステレオ処理周りのリプレイスとnoise normalization周りの小さな変化(floor[*3]関連を除く)が含まれます。

[*2] noise normalizationはバンド毎のエネルギーを保護する仕組みです。これは複雑な方法ではありませんが、Vorbisフォーマット(floor1)に適合した方法で低いビットレートで効果的です。

[*3] floorは他のフォーマットでいうscale factorに相当するものです。昔のbeta版libvorbisではfloor0が、現行のVorbisエンコーダではfloor1という仕組みが使われています。floor1は一般的なscale factorとは少し違った動作をします(詳しくはVorbis I の仕様書をご覧ください)。


カテゴリ: [vorbis] - &trackback() - 2006年08月15日 13:07:05
  • aoTuVは -- fp (2006-08-15 22:18:15)
  • 低レートでラジオなどの肉声のみのスピーチをエンコードすると、あまり良い結果になりません。低レートにも比較的強いのに、少し不思議です。 -- fp (2006-08-15 22:23:59)
  • その事例での原因の一つは解っていますが、ビットレートを抑えたまま改善するのは現状では難しいです。新しいアルゴリズムを開拓するしかありません。 -- 蒼弓 (2006-08-15 23:22:35)
  • aoTuV beta2 に誤植: liborbis1.1 -> libvorbis1.1 -- しーやん (2006-08-15 23:41:51)
  • ご指摘どうも。直しました。 -- 蒼弓 (2006-08-15 23:51:19)
  • -q 5で常用しています。個人的にはbeta2とbeta4が衝撃的でした^^ -- md (2006-08-16 01:42:39)
名前: コメント:
#blognavi
記事メニュー
目安箱バナー