
既存の不可逆圧縮形式が完全に異常な状態でどのように動作するか疑問に思ったことはありませんか? 通常、削除された情報は正常にマスクされ、経験の浅いユーザーの耳には違いが聞こえません。 または、これは今日の音響学の欠如であり、明日それを更新した後、すべてが出てくるでしょうか?
インターネットでは、さまざまな形式のブラインドテストとスペクトログラムの比較に関する多くの情報を見つけることができます。 どのような品質が望ましいかについては、すでに多くの結論が出されています。 しかし、主な推奨事項は1つのままです。耳に頼ることです。 そして、ここで誰かとMP3 128kbpsがCD品質のために合格することが判明するかもしれません。 になる方法
完全に異常ではあるが、それでも視覚的な実験を行うことを提案します。 違いを聞くために、サウンドを1つではなく、5、10、または50回エンコードします!
再エンコードのたびに、エンコーダーは、人間の耳には聞こえない新しい情報をすべて削除します。 私たちのタスクは、一般的な不可逆圧縮形式(MP3およびOgg Vorbis)の最小ビットレートを特定することです。これにより、100回のトランスコーディングを行っても、サウンドが元のサウンドとほとんど区別できなくなります。
準備する
MP3エンコーディングでは、最新の安定バージョンの
LAME(3.98.4)を使用します。 再エンコードのプロセスを自動化するために、小さなbatファイルを作成します。 作業のスキームは単純です:wavファイルをmp3にエンコードし、それをデコードしてwavに戻し、次に既に受信したwavをエンコードします。
@ copy /Y %1 ~temp.wav
@ for /L %%i in (1,1, %3 ) do @(
@ echo -------------------------------------------------------------------------------
@ echo -- Iteration %%i
@ echo -------------------------------------------------------------------------------
lame %4 ~temp.wav ~temp.mp3
lame --decode ~temp.mp3 ~temp.wav
)
@ copy /Y ~temp.mp3 %2
@ del ~temp.wav
@ del ~temp.mp3
mp3_xcode.batと呼びましょう。 起動形式は次のようになります。
mp3_xcode <input.wav> <output.mp3> <iterations> "<lame params>"
Ogg Vorbisの場合、
OggEnc aoTuV b5.7を使用します。 この形式のbatファイルを作成しましょう。
@ copy /Y %1 ~temp.wav
@ for /L %%i in (1,1, %3 ) do @(
@ echo -------------------------------------------------------------------------------
@ echo -- Iteration %%i
@ echo -------------------------------------------------------------------------------
oggenc %4 -o ~temp.ogg ~temp.wav
oggdec -w ~temp.wav ~temp.ogg
)
@ copy /Y ~temp.ogg %2
@ del ~temp.wav
@ del ~temp.ogg
ogg_xcode.batと呼びましょう。 起動形式は次のようになります。
ogg_xcode <input.wav> <output.ogg> <iterations> "<oggenc params>"
自分で実験したい場合は、必要なすべてのファイルを含む
sndexp.7zアーカイブ(1.3 MB)が必要です。
最初に、注意、行進!
以下に、オーディオファイルへの多くのリンクがあります。 httpリンクを介してファイルを直接再生できるプレーヤー(
foobar2000など )を使用することをお勧めします。
すべての場合において、すべての場合のソース構成は、Therionによって実行された構成「O Fortuna」からの豊かなパッセージでした。 ここからダウンロードできます:
fortuna.flac (2.8 Mb)または
fortuna.ogg (466 Kb)。
それでは始めましょう。
最初の行:〜128kbps
VBRでエンコードするため、平均128kbpsを生成するパラメーターを選択します。
mp3_xcode fortuna.wav fortuna_128x10.mp3 10 "-V 6"
ogg_xcode fortuna.wav fortuna_128x10.ogg 10 "-q4"
ファイルを取得します。
これらの例は、MP3とOgg Vorbisのコーディングに対するアプローチがまったく異なることを明確に示しています。 各再エンコードの後、MP3のサウンドはますますホワイトノイズのようになります。 Ogg Vorbisにはまったく異なる効果があります-音がよりこもります。
すべての場合において、不快な結果が得られました。
バーを上げる:〜192kbps
約192kbpsを与えるパラメーターを選択します。
mp3_xcode fortuna.wav fortuna_192x10.mp3 10 "-V 2"
ogg_xcode fortuna.wav fortuna_192x10.ogg 10 "-q6"
ファイルを取得します。
このテストでは、10個のトランスコードを使用して、Ogg VorbisのパフォーマンスはMP3よりもはるかに優れていました。 あなたはすでに自分でそれを聞くことを強制することができますが、膨大な量のアーティファクトが明らかに感じられます。 50では、リスニングはできなくなりました。 判定-テストに失敗しました。
さらに高い:〜256kbps
約256kbpsを与えるパラメーターを選択します。
mp3_xcode fortuna.wav fortuna_256x10.mp3 10 "-V 0"
ogg_xcode fortuna.wav fortuna_256x10.ogg 10 "-q7,3"
ファイルを取得します。
ここでは、10回のコーディングの繰り返しにより、両方の形式でほぼ同じ結果が得られました。 ただし、すでに50で、古いMP3はすでにOgg Vorbisを明白に打ち負かし始めています。 さらに、結果として後者はより高いビットレートを持っています! 傾向を確認するために、反復回数を99に増やしました。傾向は継続しました。MP3はまだ比較的聴きやすく、Ogg Vorbisはこれに比べて著しく劣っています。
そして最後に:〜320kbps
-VパラメーターはLAMEで0未満に設定できないため、-b 320パラメーターを使用しますが、OggEncについても同じことを行います。 この場合、Ogg VorbisはVBRモードで動作し、MP3はCBRモードで動作します。
mp3_xcode fortuna.wav fortuna_320x10.mp3 10 "-b 320"
ogg_xcode fortuna.wav fortuna_320x10.ogg 10 "-b 320"
ファイルを取得します。
コーディングを10回繰り返した後、両方の形式で良い結果が得られました。 あなたはそれを聞くことができます、そしてMP3はオリジナルと区別するのが難しいです。 50回の繰り返し-どちらの形式でも、不快なアーティファクトは明らかに聞こえ、Ogg VorbisはMP3を再生しますが、再エンコードするたびにビットレートが自動的に増加します。
評決
- Ogg Vorbisは、最大256kbpsのビットレートでMP3よりも優れています
- 256kbps〜320kbpsのビットレートでMP3はOgg Vorbisよりも優れています
- Ogg Vorbisエンコーダーは以前にエンコードされたデータをほとんど消化できないため、ビットレートが増加します。
- 複数のトランスコーディングを備えた両方の形式のテスト済みエンコーダーは、すべてのテスト済みビットレートで透明なサウンドを提供できませんでした
結論
実験全体の不条理に照らして、私はあなたにそれをあまり真剣に受け止めないようにお願いします。 これはすべて、
FLACのような自家製の音楽コレクションロスレスフォーマットの保存を考える理由の1つにすぎません。 おそらくこれは、書かれたことから導き出せる唯一の合理的な結論です。
PS疑似損失のない候補
2002年には、Ogg Vorbisのエンコードに
OggEnc GT3エンコーダー(176Kb)が普及しました。 最高品質でエンコードすると、平均500kbps以上のビットレートが生成されます。 少し後に、私は実験にそれを使用しようとしましたが、その結果、私は驚きました:1000回変換した後でも、受信した
fortuna_q10x1000.oggファイル(1421Kb)を元のファイルと区別できないようです。 また、結果のファイルの平均ビットレートは、各反復後に実質的に変化しませんでした。 Ogg Vorbisエンコーダーの最新の公式バージョンとaoTuVの人気バージョンは、100のトランスコードを使用しても、悪い結果をもたらしました。 そのため、最高品質の古いGT3が最高のエンコードを行います。 ただし、他のビットレートでは、GT3は同様に機能しませんでした。