FLACによる可逆音声圧縮
mp3やOgg Vorbisなどの音声圧縮の場合、一度エンコードで劣化した信号はデコードしても復活することはないが、その代わりに驚異的な圧縮率を実現している。このような圧縮は、元の情報に戻すことができないことから「非可逆圧縮」あるいは「不可逆圧縮」と呼ばれる。画像情報のJPEG圧縮、動画のMPEG圧縮などもこれに該当する。
これに対し、デコード時に元の情報を完全に復元することができる圧縮を「可逆圧縮」と呼ぶ。ZIP、LHAなどのファイル圧縮や、画像のPNG圧縮などがこれに当たる。
可逆音声圧縮は非可逆音声圧縮に比べて圧縮率で大きく劣るが、元の情報と変わりないクオリティーでの再生が可能であるため最高音質での音楽鑑賞やデータ保存用などの目的で使われるケースが多い。近年では、ハードディスク、フラッシュメモリや、その他の記憶媒体の容量が増大しているため、可逆圧縮形式での保存も、一般的になりつつある。
可逆音声圧縮の形式は様々だが、ここではFLAC(Free Lossless Audio Codec)という可逆音声圧縮コーデックを用い、CDexなどでのエンコード方法、及びオプション設定を紹介する。
1. 音楽CD から FLACファイルへの変換(CDex)
1.1. 必要なソフトウェア
*ファイル名はバージョンなどによって異なる。
|
FLAC (flac-1.2.1-win.zip) |
FLACの変換プログラムを配布している. |
|
CDex (cdex_151.zip) |
音楽CDからの音声エンコードまでの作業を一括して行うソフトウェア. 英語ソフトウェアだが,次項のLanguageFileを適用することで日本語化できる. |
|
CDexの日本語LanguageFile (japanese151.zip) |
CDexの公式日本語LanguageFileを配布している. また,CDexの使い方を丁寧に説明している. |
1.2. インストール
- CDex,CDexの日本語LanguageFile,FLACをダウンロードする.
- CDexを適切なフォルダに解凍する.(例 c:\Application\cdex\)
- CDex用の日本語LanguageFileを解凍し,japanese.cdex.langを,CDexの「lang」フォルダにコピーする.
- FLACを適切なフォルダに解凍する.(例 c:\Application\flac\)
1.3. 設定
- CDexを起動し,メニューより[Option][Select Language][japanese]を選択する.
- メニューから[オプション][設定]を選択し,[一般]タブを開き,ID3タグバージョンを「None」とする.
- [オプション][設定]の[エンコーダ]タブを開く.

- 上図にように,エンコーダを「External Encoder」とし,エンコーダパスにflac.exeのパスを指定する.
- flacの変換パラメータを入力する.
例「-T "Artist=%a" -T "Title=%t" -T "Album=%b" -T "Date=%y" -T "Tracknumber=%tn" -T "Genre=%g"-V --fast -o "%2" -」オプションの詳細. - 「拡張子」をflacとする.
- 「WAVヘッダーを標準入力へ送る」にチェックを入れる.
- 「オンザフライエンコード」にチェックを入れる.
--replay-gain スイッチを使用する場合は,上記設定例の場合エラーで変換処理ができないため,
「オンザフライエンコード」のチェックを外し,
オプション指定例の最後の「-」を「"%1"」に変更する.
例:-T "Artist=%a" -T "Title=%t" -T "Album=%b" -T "Date=%y" -T "Tracknumber=%tn" -T "Genre=%g" -V --fast --replay-gain -o "%2" "%1"
また,音楽CDのアルバム名,曲名,アーティスト名の情報を日本語で取得するための
データベースサーバが公開されているので,これを利用するために以下の設定をしておく.
- [オプション][設定]の[リモートCDDB]タブを開く.

- 「サーバーを追加」ボタンを押し,サーバーアドレスとして「freedbtest.dyndns.org」を入力,
E-mailアドレスの欄に適当なアドレスを入力する.
CDexの起動の際に
「Failed to load the wnaspi32.dll driver!
Use the "Native NT SCSI library" driver option instead?」
のメッセージ(下図)が出る場合は「はい」を選べばよい.

1.4. エンコード手順
- CDexを起動する.
- 音楽CDをCD-ROMドライブに挿入する.自動的にトラックが読み込まれる.
- メニューから[CDDB][リモートCDDBから読み込み]を実行する.
CDDBデータベースに存在するCDであれば,自動的に曲名などのデータが表示される. - メニューから[変換][CDをMPEGに]を実行すると,変換処理が始まる.
2. FlacDropによるwav→FLAC/ FLAC→wav変換
2.1. 変換に必要なソフトウェア
*ファイル名はバージョンなどによって異なる.
|
FLAC (flac-1.2.1-win.zip) |
FLACの変換プログラムを配布している. |
|
FlacDrop (flacdrop.zip) |
FLACをGUIで利用するためのフロントエンド. |
2.2. インストール
- FLAC,FlacDropをダウンロードする.
- FLACを適切なフォルダに解凍する.(例 c:\Application\flac\)
- FlacDropを適切なフォルダに解凍する.(例 c:\Application\flacdrop\)
2.3. 設定
- FlacDrop.exeを起動する.(白いWindowが出る)
- Window内で右クリック[Options][FLAC...]を開き,flac.exeの場所を指定する.
(wav→FLAC変換の場合)
- Window内で右クリック[Setting]より,変換パラメータを選択する.
0:高速低圧縮,8:低速高圧縮
(FLAC→wav変換の場合)
- Window内で右クリック[Setting][Custom...]を開き,Switches:の入力欄に「--decode」と入力してOKする.
2.4. 変換手順
- 白いWindowに入力ファイル(wav or FLAC)をドロップすると,変換処理が始まる.
FLACのオプション設定
| -v, --version | FLACのバージョン情報を表示する. |
| -h, --help | FLACの基本的な使用法とオプションリストを表示する. |
| -H, --explain | FLACの詳細なヘルプを表示する. |
| -d, --decode | デコード処理の場合に指定する(デフォルトはエンコード). MD5チェックサムがデコードファイルと一致しないなど,何らかのエラーがある場合 終了コードが「1」となり,それ以外の場合は「0」となる. |
| -t, --test | テストモードの指定. -dのデコード処理と同じように終了コードを出力する. ただしデコードファイルの出力はされない. |
| -a, --analyze | 解析モードの指定. -dのデコード処理と同じように終了コードを出力する. ただしデコードファイルの出力はされない. このオプションは主に開発者向けであり,各々のフレーム,サブフレームに関する 解析データ(テキストファイル)を出力する. |
| -c, --stdout | 出力を標準出力へ書き出す. |
| -s, --silent | エンコード/デコード時に進捗状況などを表示しない. |
| --totally-silent | エラー,警告を含めて何も表示しない.終了コードのみ出力する. |
| --no-utf8-convert | 文字セットをUTF-8に変換しない.このオプションは,他のどのオプションよりも前に指定しなければならない. |
| -w, --warnings-as-errors | 全ての警告をエラーとして扱う. |
| -f, --force | 出力ファイルを強制的に上書きする. デフォルトでは同名ファイルがある場合に警告を出す. |
| -o filename, --output-name=filename | 出力ファイル名を指定する. |
| --output-prefix=string | |
| --delete-input-file | エンコード/デコード処理が成功した場合に 入力ファイルを削除する. ただし,ベリファイエラーを含めて何らかのエラーが出た場合は削除されない. |
| --keep-foreign-metadata | |
| --skip={#|mm:ss.ss} | |
| --until={#|[+|-]mm:ss.ss} | |
| --ogg | Ogg FLAC形式で出力する. |
| --serial-number=# | |
| --residual-text | |
| --residual-gnuplot | |
| --cue=[#.#][-[#.#]] | |
| -F, --decode-through-errors | |
| -V, --verify | オリジナルとのベリファイ(比較)処理を行なう. |
| --lax | |
| --replay-gain | リプレイゲイン値を計算しFLACタグに書き込む.ただし 標準入力を介したコマンド指定の場合には使用できない. |
| --cuesheet=FILENAME | |
| --picture={FILENAME|SPECIFICATION} | |
| --sector-align | |
| -S {#|X|#x|#s}, --seekpoint={#|X|#x|#s} | |
| -P #, --padding=# | |
| -T FIELD=VALUE, --tag=FIELD=VALUE | 曲名,アーティスト名などの情報をtagに入力する. |
| --tag-from-file=FIELD=FILENAME | |
| -b #, --blocksize=# | |
| -m, --mid-side | |
| -M, --adaptive-mid-side | |
| -0 .. -8, --compression-level-0 .. --compression-level-8 | 圧縮レベルを指定する.-0は最高速度/最低圧縮率,-8は最低速度/最高圧縮率. |
| -0, --compression-level-0 | 「-l 0 -b 1152 -r 3」と同じ. |
| -1, --compression-level-1 | 「-l 0 -b 1152 -M -r 3」と同じ. |
| -2, --compression-level-2 | 「-l 0 -b 1152 -m -r 3」と同じ. |
| -3, --compression-level-3 | 「-l 6 -b 4096 -r 4」と同じ. |
| -4, --compression-level-4 | 「-l 8 -b 4096 -M -r 4」と同じ. |
| -5, --compression-level-5 | 「-l 8 -b 4096 -m -r 5」と同じ. |
| -6, --compression-level-6 | 「-l 8 -b 4096 -m -r 6」と同じ. |
| -7, --compression-level-7 | 「-l 8 -b 4096 -m -e -r 6」と同じ. |
| -8, --compression-level-8 | 「-l 12 -b 4096 -m -e -r 6」と同じ. |
| --fast | 最高速度で出力する.「-0」と同じ. |
| --best | 最高の圧縮率で出力する.「-8」と同じ. |
| -e, --exhaustive-model-search | |
| -A "function", --apodization="function" | |
| -l #, --max-lpc-order=# | |
| -q #, --qlp-coeff-precision=# | |
| -p, --qlp-coeff-precision-search | |
| -r [#,]#, --rice-partition-order=[#,]# | |
| --endian={big|little} | |
| --channels=# | |
| --bps=# | |
| --sample-rate=# | |
| --sign={signed|unsigned} | |
| --input-size=# | |
| --force-aiff-format | |
| --force-raw-format |

ディスカッション
コメント一覧
まだ、コメントがありません