人力検索に関する私信

id:makocanさん
以下の質問へのお返事です。
http://q.hatena.ne.jp/1250170210
長々と書いてしまいましたが、ご確認ください・・・(^-^;

容量は落ちても音質は劣化しないものなのでしょうか?
SWFの圧縮により容量を小さくした場合は劣化していないはずです。*1
MP3やAACなどの不可逆圧縮により、別の形式に変換してサイズが小さくなった場合は劣化します。*2
別の形式への変換でも、TTAFLACなどは可逆圧縮なので劣化しません。(Flashへの埋め込みが出来ないので、今回の質問とは関係ありませんが・・・)
どういう目的で無圧縮のままSWFに変換したいのか分かりませんが、人間の耳で判別できるのは、128〜192kbpsくらいまでだそうです。
それ以上の音は聞き取ることが出来ないそうですので、カットしても問題ないと思いますが、無圧縮のWAVである必要があるのでしょうか?

SWFの圧縮の仕組みについては分かりませんが、SWF圧縮による音質の劣化が無い事を証明する為に、以下の方法でファイルを検証してみました。

確認の手順

  1. 検証用のWAVファイルを用意して、MP3ファイルに変換します。*3
  2. 用意した元のWAVファイルをSWFに変換します。
    ※SWF圧縮した物と圧縮しない物の2種類作成。*4
  3. 用意したMP3ファイルをSWFに変換します。
    ※同じようにSWF圧縮した物と圧縮しない物の2種類作成。
  4. 作成した4つのSWFファイルから音声ファイルを抽出*5
    ※HugFlashでMP3からWAVに変換して抽出することも可能ですが、ここではMP3のまま抽出して次の手順でWAVに変換しています。
  5. 抽出したMP3ファイルをWAVにデコード*6
  6. 抽出したWAVファイル2個とデコードしたWAVファイル2個の合計4個のWAVファイルを元のWAVファイルと比較します。*7

結果は次の通りです。

SWFから抽出したWAVファイルの比較

項目 WAV(SWF圧縮なし) WAV(SWF圧縮あり) MP3→WAV
(SWF圧縮なし)
MP3→WAV
(SWF圧縮あり)
元のWAVファイル × ×
WAV(SWF圧縮なし) ‐(未検証) × ×
WAV(SWF圧縮あり) ‐(未検証) × ×
MP3→WAV
(SWF圧縮なし)
× × ‐(未検証)
MP3→WAV
(SWF圧縮あり)
× × ‐(未検証)

◎…完全一致、×…不一致、−(未検証)…同一ファイルなので検証していません。

上記の結果では、WAVのままSWFに変換して抽出した場合は、SWF圧縮の有無に関わらず元のWAVファイルと一致し、また抽出した各WAVファイル同士も一致しています。
MP3に変換後にSWFに変換、その後抽出・復元したWAVファイルの場合は、元のWAVファイルともWAVのままSWF変換した各ファイルとも一致しませんでした。
※各ファイル同士は一致していますので、正常にMP3からWAVへのデコードは完了しているようです。

これらの事から、SWFによる圧縮は音質には影響していない事が分かると思います。

今回使用したフリーソフトたち

KKKKK.Net - Lame Ivy Frontend Encoder
Suzuka
窓の杜 - HugFlash
音くらべ

ありがとうございました!

*1:SWFの圧縮とは・・・「パブリッシュ設定」の「ムービーの圧縮」による圧縮の事です。

*2:AAC可逆圧縮もあり、こちらは劣化しません。

*3:MP3ファイルへの変換にはLife(Lame Ivy Frontend Encoder)を使用しました。

*4:SWFへの変換にはSuzukaを使用しました。

*5:音声ファイルの抽出にはHugFlashを使用しました。

*6:MP3ファイルからWAVへの変換にはLife(Lame Ivy Frontend Encoder)を使用しました。

*7:WAVファイルの比較には音くらべを使用しました。