EasyWavPackの整合性(Ver2.2以降)
私の作成したソフトウェア「EasyWavPack」が本当にロスレスであるかを念のため検証して
おきたいと思います。
基本的にそのままWavPackとflacを使用しているのでロスレス(可逆)なはずですが、
万が一と言うこともありますので(TTAみたいに)
データ劣化を嫌う方にとっては一番重要な部分なのですが、意外と確認するのが面倒なので
確認していない方がほとんどかと思います。
ここではCRCで確認して一致すればデータとして1ビットの誤差もないということにします。
検証方法
1.EACでWaveファイルを取り込む
2.EasyWavPackを使ってWaveをWavPackにエンコードする
3.EasyWavPackを使ってWavPackをWaveにデコードする
4.EasyWavPackを使ってWaveをflacにエンコードする
5.EasyWavPackを使ってflacをWaveにデコードする
各工程でCRCを確認します。ロスレスであれば1=3=5になるはずです。
検証結果
工程
|
容量(bytes)
|
CRC32
|
1.EAC Wave *注1
|
97,424,588
|
C5C7C88F
|
2.EasyWavPack WavPackエンコード
|
70,505,063
|
A349C920
|
3.EasyWavPack WavPackデコード |
97,424,588 |
C5C7C88F |
4.EasyWavPack flacエンコード |
71,107,272
|
FDAE0263
|
5.EasyWavPack flacデコード |
97,424,588 |
C5C7C88F |
*注1 EACの結果で出ているCRCはWaveヘッダ無しで計算されたものです。
Waveファイルからヘッダ44bytesを削除してCRC32計算するとEACと一致します。
上記結果はWaveヘッダが付いたものを計算した結果です。
結論
・WavPack、Flac共にロスレス圧縮で劣化なし。元のWavに復元可能。
・EasyWavPackでエンコード、デコードしても問題なくロスレス変換できている。
まぁ当然と言えば当然なんですけどね・・・
一致しなくなったらロスレスではないですし。
N数少ないので気になる方は各自で検証お願いします。