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」とする.
- [オプション][設定]の[エンコーダ]タブを開く.
![](http://yamaken.tokyo/wp-content/uploads/2019/03/flac_cdex-300x195.png)
- 上図にように,エンコーダを「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]タブを開く.
![](http://yamaken.tokyo/wp-content/uploads/2019/03/cdex_cddb-300x187.png)
- 「サーバーを追加」ボタンを押し,サーバーアドレスとして「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 |
ディスカッション
コメント一覧
まだ、コメントがありません