2013年9月26日木曜日

  

LAMEでmp3エンコード

LAME 3.99.5 32bit/64bit
公式ソースからビルドされたバイナリ。

AltiVec/SSE Optimized LAME Encoder
AltiVec/SSEを使って高速化したエンコーダらしい。

LAME 64bitにパスを通すとEACがエラーで起動しなくなる。
EAC本体は32bitなのだがLAME 64bitのパスが通っていると
その機能を内包した状態で起動しようとするからである。

foobar2000は本体は32bitで動いているが
コンソールアプリには純粋にコマンドラインを投げるだけなので
64bitエンコーダが利用できた。

LAMEの強みはLAMEタグによるギャップレスエンコードと
VBRの最適化にあると思うので-Vオプションを使うことにした。
-V 0 ~ -V9
←高音質 低音質→

EAC
-S --noreplaygain -V 0 -h %s %d
foobar2000



Encoder file:任意LAMEを置いたディレクトリを選ぶ
Extension:mp3
Prameters:-S --noreplaygain -V 0 -h - %d
Format is:lossy
Highest BPS mode supported:24
Encoder name:MP3 (tmkk-LAME)分かり易い名称。
Bitrate (kbps):245VBR(V0)オプションなので、245ぐらい。
Settings:V0VBR V0オプションを使用するので。

  

flacclを使った高速flacエンコード

Flaccl
flacclはGPUの持つGPGPU機能をOpenCLで動かすエンコーダ
OpenCLに対応したグラボを用意すれば動作する。
CPUを利用したエンコーダとは速さが違う気がする。
上のHPからDLできるのはflaccl 0.3だが、
CUETools_2.1.4の中にはflaccl 0.4が含まれている。(違いはよくわからん)

可逆圧縮は、コンバータ設定にあるBit depthのHighest BPS mode supportedを16に設定する。
(ビットパーフェクトに出力するため)

エンコードオプション
-0 ~ -11
←高速低圧縮 低速度高圧縮→
本家flacは-8までなのでとりあえず-8にしてる
--cpu-threads X
Xの場所にCPUのスレッド数を入力する。
--opencl-type X
通常は設定の必要はないが、intelのIvy Bridgeでエンコードする時は
CPUと指定してやる必要があった。

EACやfoobar2000で設定してやると、
うちはCore i 7 980Xと560 TIなので、
/c CUETools.FLACCL.cmd --quiet -8 --verify  --cpu-threads 12  %s -o %d
ってな設定で450倍~500倍の速度が出た。

Core i 7 3612QMのノートでは
/c CUETools.FLACCL.cmd --quiet -8 --opencl-type CPU --verify  --cpu-threads 8  %s -o %d
で一応動いたが速度はあまり出ず7倍程度だった。

2013年9月25日水曜日

  

FLACについて調べてみた

 Walkman等がFLACに対応してきた影響で、SONY本家が提供している変換ソフト
Media Goなどもエンコードに対応しているらしい。
しかしせっかくD&Dに対応したのに、変換ソフトをインストールするのはナンセンスだと思う。
(インストールする時に変なコーデックが入るという話も聞く。)
エンコードもどうせシングルスレッドで、時間もかかるだろうし面白くない。
flacファイルは可逆圧縮でタグも使え、画像の埋め込みなどにも対応していて
PCでの管理がしやすい。その反面、エンコードにそれなりの時間を有する。
そこでフロントエンドとコマンドラインプログラムを調べてみたことをまとめておく。

FLAC v.1.3.0
公式のコンソールプログラム
2Gを超すwavファイルからの変換に対応している。
シングルスレッドプログラムなので変換に要する時間が長い。

fpFLAC
1.2.1をベースにマルチスレッド処理が加わったコンソールプログラム。
64bitのOSとCPUの対応が必要。
マルチコアCPU環境でエンコードの高速化を期待できる。

FLACCL
グラフィックボードのGPGPU機能を利用してエンコードを行うコンソールプログラム
専用のハードウェアとドライバ(OpenCL)が必要(GeForce,Radeon等)
環境さえ整えばおそらく最速でエンコードができる。

hello World!