TAKにおける最適な圧縮率のオプションは?

最高なオプションなどなく人それぞれに適しているオプションは違います。
自分にあった圧縮率のオプションをこの記事で探してみてください。

TAKC -mode [-p# -fsl# -wm# -ihs -sts# -v -overwrite -fim# -l# -silent -w] infile [outfile]

TAKのコマンドは上記のようになっています。
今回は-p#に注目してみようと思います。
その他の詳細はTAK付属のReadme.htmlのCommand line version TAKCを見てください

TAK 1.0.4
http://www.hydrogenaudio.org/forums/index.php?showtopic=61874&st=0&p=552232&#entry552232

  • p#オプションはwavからTAKにエンコードする際の圧縮率を指定するオプションです。

ヘルプには以下のように書いてあります。

 -p#        select encoder preset #: 0-5 (fastest to strongest, default is 2).
            Append E/M (-p2m) to increase the evaluation level to Extra/Max.
            pMax is a synonym for the strongest setting.

適当に意訳すると

 -p#        エンコードするための0〜5の数字を選んでください。
      (0がエンコード時間が最速、5が最高の圧縮率、初期設定では2です。)
            eやmのオプションを追加して (例:-p2m) 更に圧縮のレベルを追加することができます。
            mのオプションは更に高い圧縮率でエンコードを行う場合は設定して下さい。

これ以降細かい比較がだらだら続いて読むのめんどくさい人も多いと思うので一般的なお勧めを書いておきますw

  • -p2e
    • これが一番バランスがとれていていいとは思います。
    • エンコードにいくら時間がかかってもかまわない。サイズ、性能重視という方は-p2mの方がいいかと思います。

圧縮率はもちろん高い方がファイルのサイズが小さくなるからわけだから、-p5m(最高圧縮の設定)がいいだろ
と思いますがそうでもなかったりします。

具体的に何がまずいのかというと

  1. 圧縮率を上げるほどエンコードを終えるまでに時間がかかる
  2. 圧縮率を上げるほどデコードを終えるまでに時間がかかる
    • wavに戻す際に時間がかかる。プレイヤーで再生した際も時間がかかる。
  3. 実はある値以上だとたいして圧縮率は上がらないで時間だけかかる

ということです。

なのでこのオプションはそれぞれその人が何を重視するかによって最適なオプションは変わってきます。

時間?そんなの関係ないだろ。HDD容量を無駄にしたくないんだよ。という方は

-p5m

HDDの容量?そんなの500G8000円の時代に何言ってるんだよ。(wavはさすがにつらいけど・・・)って人は

-p0

ということになります。
がさすがにこれは極端な例なのでやっぱり適度な値がベストだと思います。
そのためには具体的なオプションによるエンコード時間、圧縮率、デコード時間、圧縮率が必要です。
そんな一覧が紹介されているのが以下のサイト(前振り長いな・・・)

synthetic soul - Lossless Codec Comparison
http://www.synthetic-soul.co.uk/comparison/lossless/

上記を参考に自分に最適なオプションを見つけてみましょう!

↑見てもよくわからない。という方は続きを読んでみてください。


まずTAK -p2e、TAK -p2m、TAK -p3この3つの違いを見てみましょう。
エンコードする前のwavのファイルサイズは2030.59 MB

エンコードオプション 圧縮後のサイズ 圧縮率 エンコード時間 デコード時間
 TAK -p2e 1298.50 MB 63.947%   03:49  01:33
 TAK -p2m 1296.75 MB 63.861%   06:13  01:33
 TAK -p3 1296.19 MB 63.833%   04:51  01:42

ここからmオプションが余り時間に対して圧縮率が効率的でないことが読み取れると思います。
TAK -p2mはTAK -p2eに対して倍近く(大げさ?)のエンコード時間にもかかわらず圧縮率においては0.086%しか差がありません。
700MBのCDの場合0.06MBの違いにしかなりません。微々たる差です。
(それに圧縮率上げるならTAK -p2mよりTAK -p3の方が時間もかからないし、圧縮率がいいだろ!という感じです。しかしそうではなく-p2mにもメリットがあります。デコード時間は-p3の方が-p2mに比べて遅いため、再生する際の時間やwavに戻す場合の時間は-p3の方がかかってしまうということです。)
しかしTAK -p2eとTAK -p2mではデコード時間には違いがありません。
ということはTAK -p2mで作成した.takはTAK -p2eに対して劣っているところはないともいえます。(サイズが小さくてデコード時間は同じわけですから)
更にもし音楽ファイルを200G持っていたとしたら172Mの違いがでてきます。
これをどう考えるかは人それぞれです。

(今回あげた中で)まとめると

  • とりあえずエンコード時間とのバランスをとりたいなら
    • -p2e
  • 完成してからが問題であり、エンコードの仮定における時間なんてどうでもいいということなら
    • -p2m
  • とりあえず圧縮率上げたい
    • -p3

ということになります。では0〜5どの値がいいのでしょうか?
ここからはもう単純に自分が何に重点を置くかで考えるといいと思います。

  • ファイルサイズが最重要であり、エンコード時間、デコード時間なんてどうでもいいということなら
  • 5
  • 遅すぎないデコード速度、エンコード時間は余り気にしない、圧縮率もぼちぼちのバランス
  • 3
  • 再生した際の速度を重視、エンコード時間はそれなりに早く、圧縮率は余りよくなくても問題なし
  • 1

2は1と3の間、4は3と5の間という感じでしょうか?w

以上を踏まえて自分としては

  1. エンコードの時間は余り気にしないけど無駄に遅いのは嫌だ
  2. デコードが遅いのは嫌だ
  3. ある程度圧縮して欲しい

ということで -p2eを選択します。
(今まで書いたことを無駄にするような話だけど、デコードの性能差って体感できない気がする・・・)

人によってエンコードしている環境は違うと思うのでそれぞれの設定方法を書いていこうと思います。

コマンドラインで行っている場合

TAKC -e -p2e -ihs infile.cue outfile.tak

TAK1.0.4付属のTak.exeでエンコードを行う場合

起動 > Compress > Option

EACとflacencodeを使っている場合

\flacencode\flacencode.iniの一番下の設定(p2eではなくpをつけず2eなので注意)

TAK_COMPRESSION_LEVEL=2e