タイトル | : 長文すみませんm(__)m |
投稿日 | : 2002/01/22(Tue) 10:44 |
投稿者 | : フロート |
動作報告のレポートです。
午後3.09(exe版)を使用してwaveファイルのエンコードを行ったのですが、
-q オプションの挙動が変なことに気づきました。
-q 0 を指定した場合
D:\WAVE>gogo -q 0 TEST.wav ..\MP3\TEST_Q0.mp3
{ 12669/ 12669} 100.0% ( 19.78x) re:[00:00:00.00] to:[00:00:16.73]
-q 1 を指定した場合
D:\WAVE>gogo -q 1 TEST.wav ..\MP3\TEST_Q1.mp3
{ 12669/ 12669} 100.0% ( 12.61x) re:[00:00:00.00] to:[00:00:26.24]
※使用した曲はCD2WAVで吸い出した5:30ほどの曲です。
上のとおり、-q 0 よりも -q 1 のほうがエンコードに時間がかかっています。
また、実際にエンコードしたファイルを聞き比べたところ、-q 1 のほうが
音像的に元のwaveに近い印象がしました。
もしやバグかと思い調べたところ、lame.cにおかしな部分を発見。
320行目からの lame_init_qval(void) というサブルーチンで
-q オプションの数値を取得し、case文で振り分けているっぽいのですが、
そのなかに case 0: という部分が入っていませんでした(バグですかね?)
しょうがないので下記のように変更しました。
変更前(lame.cの348行目以降)
case 2:
RO.noise_shaping = 1;
RO.noise_shaping_amp = 1;
RO.noise_shaping_stop = 1;
RO.use_best_huffman = 1;
break;
case 1:
RO.noise_shaping = 1; /* 2=usually lowers quality */
RO.noise_shaping_amp = 2;
RO.noise_shaping_stop = 1;
RO.use_best_huffman = 1; /* 2 not yet coded */
break;
変更後
case 2:
case 1:
RO.noise_shaping = 1;
RO.noise_shaping_amp = 1;
RO.noise_shaping_stop = 1;
RO.use_best_huffman = 1;
break;
case 0:
RO.noise_shaping = 1; /* 2=usually lowers quality */
RO.noise_shaping_amp = 2;
RO.noise_shaping_stop = 1;
RO.use_best_huffman = 1; /* 2 not yet coded */
break;
用は-q 1をそのまま-q 0にして、もとの-q 1を-q 2と同じにしたわけです(^^;;;
これでコンパイルし、エンコードを行ったところ、今度は
予想通りの結果が返ってきました。
D:\WAVE>gogo -q 0 TEST.wav ..\MP3\TEST_Q0.mp3
{ 12669/ 12669} 100.0% ( 12.61x) re:[00:00:00.00] to:[00:00:26.24]
D:\WAVE>gogo -q 1 TEST.wav ..\MP3\TEST_Q1.mp3
{ 12669/ 12669} 100.0% ( 13.86x) re:[00:00:00.00] to:[00:00:23.87]
以上、動作報告のレポートでした。
代理サーバー経由のアクセスか、アクセス制限されたホストからのアクセスを検出しました。投稿できません