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. インストール

 1.3. 設定

--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のアルバム名,曲名,アーティスト名の情報を日本語で取得するための データベースサーバが公開されているので,これを利用するために以下の設定をしておく.

CDexの起動の際に
「Failed to load the wnaspi32.dll driver!
Use the "Native NT SCSI library" driver option instead?」
のメッセージ(下図)が出る場合は「はい」を選べばよい.

 1.4. エンコード手順

 2. OggDropXPdによるFLAC→Ogg Vorbis変換

別ページ参照

 3. FlacDropによるwav→FLAC/ FLAC→wav変換

 3.1. 変換に必要なソフトウェア

*ファイル名はバージョンなどによって異なる.
FLAC
(flac-1.2.1-win.zip)
FLACの変換プログラムを配布している.
FlacDrop
(flacdrop.zip)
FLACをGUIで利用するためのフロントエンド.

 3.2. インストール

 3.3. 設定

(wav→FLAC変換の場合) (FLAC→wav変換の場合)

 3.4. 変換手順

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


スポンサーリンク