スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

そのハイレゾ音源はハイレゾリューションなのか確認する

14/10/13初稿

 ハイレゾに関する試聴する際には、そもそも「本当にハイレゾに足る情報量を持っている」ハイレゾ音源をもってする必要があります。「非ハイレゾ音源」を作って比較する記事にも記していますが、元にするハイレゾ音源は「フォーマットがハイレゾ」なだけでなくハイレゾとして有意義なデータでなくては意味がありません。
 でも、それってどうやって確かめればいいのでしょう。“聴いて確認”では本末転倒ですもんね(笑)。

 さて、ハイレゾフォーマット(本稿ではPCMのこととします)のパラメータは「サンプリング周波数」と「ビット深度」です。
 このふたつについて「ホントにハイレゾか」の確かめ方を考えてみました。

 ハイレゾ音源は2496として記します。


■サンプリング周波数:高域入っているか見分ける方法

 単純にフォーマットを活かしているかの確認方法として記しますので、「ハイレゾの効果はCDを超える高域が含まれること」の是非は置いて考えます。
 あったらあった、なかったらなかったで、その意味は別途考えることになるでしょう。

・スペクトルを見る
 とりあえず、≪WaveSpectra≫などのスペクトル表示ソフトで「24kHz以上の音が含まれているか」を確認するのが第一歩ですよね。
 22kHzくらいで急峻に減少している場合はCDっぽいLPFがかかっていることになりますので、出自を確認した方がいいかも知れません。
 また、再生時に「ちょっとでも倍音のピークが立つ」とか「20kHz以下と連動してレベルが変化する」といった点も確認するといいと思います。

・確認ファイルを作る
 しかし、LPFがかかっておらず高域があったとしても、それは「ノイズではない」有意な音でないと“高域が入っている”とは言えないでしょう(「ノイズでも効果がある」といった説は別の議論になると思います)。
 よって、24kHz以上の帯域にある音の有意性を確かめる必要があります。
 そのためにはどうすればいいか考えた結果、「周波数成分が24kHz以上のみのファイル」を作って聞いてみることにしました。
 方法としては以下の2種類を考えました。

(1)HPFで24kHz以下をカットする
 ただし、普通HPFは低域をカットするのに使われるためか、この加工がマトモに動かないソフトも多いようです。
 フリーの波形加工ソフトでは、≪Wavosaour≫のHPFがちゃんと24kHzのHPFとして動作するようです。

(2)2448にダウンサンプリングして24kHz以上の情報をカット → それを2496にアップサンプリングし「なんちゃって2496」を得る → 「なんちゃって2496」と元の2496を反転mixする

 リサンプルしてもサンプル位置はズレないと思いますが、≪SoX Resampler0.8.3≫でx0.5x2した結果とオリジナルを≪Audacity≫で並べ、時間軸を拡大して比較し、ズレは発生していないことを確認しました。
 また、SoXで作った「なんちゃって2496」には24kHz以上の有意な音は生成されていませんでした。

 これによって24kHz(付近)以上の帯域しか入ってないWAVファイルを得ることができました。

 以下、≪foobar2000≫に関する記事で用いたe-onkyoの2496ハイレゾサンプルにつき、「≪Wavosaur x86 1.0.8.0≫にて24kHzをスレッシュにしたHPFかけたスペクトル」です。

Souvenir2496HPF.png

 24kHz以下(ナイキスト周波数以下)にも若干周波数成分残っていますが、気になる場合はもうちょっと高いスレッシュに設定してもよいでしょう。

・確認ファイルを聞く
 当然、これを普通に再生しても何も聞こえません。
 そこで、次のような再生を行います。≪SoundEngineFree≫などで実施できます。

step1.音量を上げる
 高域はもともとピークでもほとんど聞こえない音量しかありませんのでブーストします。今回は「有意な音が入っているか=ノイズじゃない音か」が判ればいいので、精度などはあまり気にする必要はないと思います。
 波形編集ソフトでノーマライズするのがカンタンでしょう。

step2.周波数を低域にシフトする
 ノーマライズしたまま再生速度を変えて再生すればOKです。例えば0.5倍速再生にすれば24~28kHzの帯域は12~24kHzに下がってきますので、高音として聞こえるようになります。

 これで「このハイレゾ音源には“CDを超える有意な高域音声”は入っているか」を聞いて確かめることができます。
 もちろん楽曲には聞こえませんが、元ファイルと同じリズム(特に高音の楽器)を刻む音が入っているか否かは確認できると思います。ナンでしたらDTMソフトや≪Audacity≫などにように複数ファイルを同時再生できる環境で「リズムが同期しているか」を確かめることもできます。
 リズムが確認できたなら、少なくとも「ノイズ以外の音も入っている」とは言えると思います。もちろん、それがどこまで有意義な音(録音時からある音? 機器の仕様上保証された音?)なのか確認する術はありませんが。

 上記e-onkyoサンプルは、24kHzと30kHzをスレッシュにHPFしたファイルで「リズム刻んでいる」ことが確認できました。

 繰り返しになりますが、最初に記した通り、高域の有無だけがハイレゾの価値かどうかについては別問題として本稿は記しています。

 ちなみに、しかるべき性能のADCによってデジタル化すれば「アナログレコード音源」を「ハイレゾ音源」とみなして同種の確認することも出来るのでは、なんて密かに思ってるんですけど…


■実験注意

 本項15/01/17追記。
 初稿に以下のように書きました。

> ただし、HPFのフィルタやリサンプリング処理や再生速度変更処理によって
>何らかの高域音声が生成されてしまっている可能性も否定はできません。
> ただ、ふたつの方法で作ったファイルがほぼニアリーな音になったことなどから、
>とりあえず、その影響“だけ”で何か聞こえているのではないと想定しています。

 甘かったです(苦笑)。その後、以下のような挙動が確認されました。

・≪SoundEngineFree 5.02≫で可変速再生すると、「1.0倍以上」にしても音が聞こえる。
・24kHzカットオフ設定のHPFだと24kHzのやや下までは残ってしまうので、念のため≪Wavosaur x64 1.1.0.0≫で30kHzカットオフしたファイルを生成して同様な再生してみると、0.5倍や1.0倍では何も聞こえない。逆に0.4倍や1.2倍などにすると聞こえる。

 この現象から、以下のことが想像されます。

・可変速再生は一種のリサンプリング処理であり、付帯音が生成され、上記の場合それを聞いている可能性が高いのではないか。
・0.5倍速では「サンプルを単純2倍」にしているためリサンプリング処理による付帯音がない状態なのではないか。
・ということは、24kHzあたりの周波数を1/2にした12kHzは聞こえたけれど、30kHzの半分の15kHzは聞こえなかったということではないか。

 とすると、30kHz以上の高域を確認するためには、1/3倍速程度の低速再生を“リサンプリングせず”実現する必要があります。加えて言うと、同じ理由でWindowsAudioEngineによるリサンプリングも避けたいので、排他WASAPIによって再生することが望ましいです。
 それを満たすため次の方法を考えて確認してみました。

・≪Wavosaur x64 1.1.0.0≫で30kHzHPFかけた2496ファイルを、バイナリエディタでヘッダ情報を書き換えることにより24bit32kHzのファイルに“変換”。
 これで「30kHz以上」は「10kHz以上」になります。これなら聞こえるハズ。
・≪SoundEngineFree 5.02≫でノーマライズ。
 Impulse波形を同処理し、当該処理ではフィルタ演算は行われていない(単純にレベルが上がるだけ)ことを確認。
・≪WAVEフォーマット変換プラス 1.02≫の“単純間足し”で2496化。
 排他WASAPIで再生するためにはデバイスネイティブフォーマットである必要がありますが、32kHz、64kHzは非対応なので96kHzに。
 バイナリエディタで同サンプルが3個続いていることを確認(フィルタ演算なしでサンプリング周波数変換)。
・≪PlayPcmWin x64 4.0.72.0≫で排他WASAPI再生。

 これならリサンプリング処理はどこにもなく、フィルタ演算による付帯音は発生していないハズです。
 できたファイルのスペクトルはこれ。16kHz以上にイメージングノイズが付加されていますが、フィルタ演算で生成されたものではないので今回の目的においては無視していいでしょう。

30kHzHPF 2432 nrm WCPx3

 ただのノイズではなくリズムのある音に聞こえました。完璧な方法とは言えませんがひと安心(笑)。
 参考までに、2496ファイルをリサンプルなく1/3倍速再生となる2432ファイルに“変換”するために書き換えるWAVファイルのヘッダは以下の反転部分です。

2432ヘッダ

 元の2496ファイルでは「00 77 01 00 00 CA 08 00」となっているハズ。WAVヘッダの意味はこちらです。

 なお、波形編集ソフトは“目的以外の処理も明示せず行う”ことがありますので注意が必要です。
 ノーマライズ処理に使った≪SoundEngineFree 5.02≫はリンク先記事で問題ないことを確認しています。切った貼ったではありませんが、おそらくノーマライズ処理でもそれ以外のことはしていないと思います。 

 HPFで何かくっついてきてたらやむなしです。


■高域があっても“ネイティブじゃない高域”かも知れない話

 本項15/02/25追記:22~24kHzくらいより上の高域がない場合は、CD音源やDAT音源のアップサンプリングである可能性が高いです。高域がまるでないアナログ音源のリマスタかも知れませんが、その場合は高域が-110dBくらいのフロアノイズ(実際のノイズレベルという意味ではありません)になってるハズなので区別できるとは思います。
 しかし、高域があっても安心はできません。“ネイティブ高域”でない場合もありえるためです。
 そんな可能性を示すスペクトルをふたつほど作ってみました。

DSD64→2488

 これはあるDSD64音源を2488に変換したものです。DSD64ですが22kHzあたりで一旦ストンと落ちてますからおそらくCD音源から変換したものでしょう。その上にはDSD特有のシェイピングによるノイズが発生しています。もちろん有意な高音ではありません。ノイズですのでぞわぞわするだけす。もちろん音楽と連動したりしません。
 「再生中に変動しない右肩上がりのノイズ」があったらこのパターンでしょう。
 ただ、ややこしいことに、ナイキストで減衰せず右肩上がりノイズの中に倍音が出現するような場合もあります(2496のハイレゾ商品で実際ありました)。それは何らかのハイレゾソースから変換したDSD64をさらにPCMに変換したものでしょう。何故そうするのかは解りませんけれど。

 もうひとつ。

1644→WaveUpCnvx2

 こちらはCD音源の「高域補間」です。88.2kHzになっています。見事に高域を生成していますが、元ソースの限界点22kHzあたりの減衰は残っています。
 「ナイキストのヘソ」があったらこれかな。
 ただし、元ソースに明確なLPFがかかっていない場合はヘソが見当たらないかも知れません。

 以上、22~24kHz以上の高域があるソースでも、このような特徴がある場合はネイティブではない可能性が高いでしょう。それが即ダメとは思っていませんが、“売り物”の場合はちゃんと明示して欲しいとも思っています。

 以下オマケ。

WaveCnvPlus x2

 これは同じサンプルを“単純間足し”してサンプル数を倍にしたデータのスペクトルです。倍ですから88.2kHzですね。高域は「イメージングノイズ」で満ちています。もちろん有意とは言えません。
 「全体的に右肩下がりなロールシャッハテスト画像」なカンジになります。
 もしこんな音源があったら憚ることなく「ニセレゾ」と言っていいでしょう。そんな商品は流石に無いと思いますが…


■ビット深度:24bit有効か見分ける方法 ⇒ 改めピーク潰れしてないか確認する方法

 「24bit有効かどうか」 ズバリ、これはワカリマセン(笑)。
 周波数のようにファイルをいじって、下位8bitが元々有意なデータなのか? 演算によって生成された“小数点以下”なのか? を見分けるのはたぶん無理だと思いますので…

 ですので、できることとしたら「コンプかけすぎてないか」「クリッピングしてピーク潰れていないか」を確認する程度かと思います。
 ≪Audacity≫でクリッピングチェックするのが一般的でしょうか(≪Audacity≫の仕様については稿末)。

 ただ、それにも以下のような点に注意が必要でしょう。

・「音圧」とは「音量」のことではない
 「音圧が高い」とは、「小さな音を大きくして大きな音との差を縮めて“全体的な”音量を上げた状態」という理解でいいと思います。
 ダイナミックレンジを大きくとったまま大きな音をフルビットに収めるとチープな再生環境では小さな音が聴こえにくくなりますが、小さな音が聴こえるように音量だけ上げると当然大きな音はフルビットで収まらなくなります(ピークが潰れまくります)。そういうワケにはいかないので、“コンプ”の登場です。
 「大きな音を小さく圧縮=小さな音を伸張」して小さな音との差を縮めます(だから「コンプレッサ」と言うのでしょう)。
 それによって楽曲全体の(平均的)音量を大きく収録することが出来るというワケです(音質の問題は別)。

・「コンプかけすぎ」「ピーク潰れ」「音圧上げすぎ」は同義ではない
 波形が潰れないように音圧を上げることは可能です(音質の問題は別)。
 「コンプかけすぎ」は「ピーク潰し」や音質劣化を厭わず「音圧上げる」ために施されたものであることが多い、ってことですね。

・「昆布」や「海苔」の見え方は時間軸で変わる
 同じ表示領域なら曲の長さによって時間軸の密度が変わるので、長い曲ほど高密度になり「昆布」や「海苔」に見えやすくなるでしょう。

・「昆布」や「海苔」に見えてもコンプかけすぎとは言えない
 当たり前ですけれど、「無理にコンプかけたワケではなく、もともと全体の音圧が高い音楽」もあると思います。

・「クリッピングを検出」しても必ずピーク潰れしているワケではない
 例えば以下のような波形では、ピーク1サンプルだけが天井にドンツキしているので検出されていますが、波形が崩れている(ピークが潰れている)とは言い難いでしょう。
 ≪Audacity 2.0.6≫「クリッピングの検出」の「開始閾値」「停止閾値」はどちらも1にて。

クリップしてるけど潰れてない例

 CD音源ですが事情の例示としては問題ないですよね(TruePeak問題は別として)。 

・「クリッピングを検出」しなくても必ずピーク潰れしていないワケではない
 例えば以下ような波形です。

クリップしてないけど潰れている例

 クリップ表示は出ませんし最大音量も-0.07dB(≪SoundEngineFree 5.02≫にて)ですが、最大音量波形としては潰れています(こちらもCD音源)。

・ハイレゾがCDより音量大きくても音圧上げたとは限らない
 16/12/11追記:ハイサンプリングになるとTruePeakがリアルサンプルとしてデータ化されますので、“アナログ化したら同じ音量”の楽曲であってもデジタルデータのピークは上がります。もちろん、だからってそれでピーク潰れしちゃダメですけど(ローレゾの時にもリコンストラクションで潰れてたってことですから)。
 逆に言うと、ハイサンプリングの方が「TruePeakを想定したマージン」は小さくできますから、CDよりハイレゾの方が全体音量が大きくなっていても「ハイレゾで音圧上げた」とは言えません。

・サンプルレートが違えば「クリッピングの検出」結果は変わる
 同じような波形でもサンプルが増えることから、CDよりハイレゾの方がクリッピング検出箇所が増える可能性があります。以下≪Audacity≫項参照。

・ということを踏まえて波形で判断
 以下は、あるハイレゾ(2496)女性ヴォーカルの最大音量(-0.10dB)あたりの波形です。

クリップしてないし潰れてない例

 最大音量あたりでもピークは超えず滑らかに変化しているように見えます。
 波形を覗いてこのようなカンジだったら、ビット深度方向に関しては“丁寧なマスタリング”されている音源、と判断していいのではないかと思います。24bit=144dBもありながらガシガシピーク潰すマスタリングされていたら高音質なハイレゾ音源とはちょっと思えませんので、一応判断基準になるのでは。

 多分に感覚的ですが、ビット深度についてはこのような判断方法しか思いつかないですゴメンナサイ。


 上記の方法には何か間違いあるかも知れません。が、ハイレゾ関連の比較試聴する場合は、自分で納得した何らかの「ファイルの素性確認」した方がよいのでは、と思っています。


■≪Audacity≫によるクリッピングチェック方法

 本項15/04/21追記。≪Audacity≫について詳しいワケではないのであんまり自信はありませんが(苦笑)。
 「解析」カテゴリに「クリッピングの検出」、「表示」カテゴリに「クリッピングを表示」があります。これらは全く同じ機能ではありませんので、それぞれについて見ていきます。

・「クリッピングの検出」機能について
 ふたつパラメータがありますが、

・開始閾値(samples)・・・連続してピークドンツキしたらクリップ開始とみなす数
・停止閾値(samples)・・・連続してドンツキしなくなったらクリップ終了とみなす数

という意味だと思います。

 例えばデフォルトは「3と3」ですが、ドンツキが3サンプル連続でクリッピング開始と認識し、その後、非ドンツキが3サンプル以上連続したらクリッピング状態おわり、ということでしょう。この設定だと、途中で1~2サンプルドンツキじゃなくなっても連続したひとつのクリッピングと見なされるワケです。

・結果表示・・・ドンツキサンプル数 of そのクリッピングの総サンプル数

という意味だと思います。であろうことを、以下、2448ファイルにて確認しました。

 「1と1」設定の「クリッピング検出」では1of1しか検出されません。
 「4ドンツキ+1非ドンツキ+3ドンツキ」の波形(*)は以下のようになります。
   ・「1と1」設定・・・4of4と3of3の2カ所として検出される
   ・「3と3」設定・・・7of8としてまとめて検出される

*:当の≪Audacity≫でサンプルをつまんで引っ張ればすぐできます。

 検出ルールは上の通りですので、“音圧が同じ”1644のCD音源と2496ハイレゾでは、ドンツキ箇所のサンプル数はざっくり2倍になるでしょう。例えば、CD音源では2サンプルが連続フルビットだった箇所は2496では4サンプルに増えている可能性があります。
 これを「3と3」で検出した時、CD音源ではひっかからず2496では検出されることになりますが、波形の潰れ具合としてはきっとあんまり変わってないですよね。

・「クリッピングを表示」機能について
 「クリッピングの検出」設定とは無関係で、単純に、フルスイング(フルビット)になっているサンプルを赤くしているようです。たとえ連続してなくても天井(床)にドンツキしてるサンプルの密度が濃いと真っ赤な帯に見えちゃうワケですね。
 つまり、一般的なピーク潰れという意味の表示ではないということです。波形のピーク1サンプルだけリアルにフルビットだった場合でも赤くなりますので。例えば≪WaveGene≫で生成した0dBのサイン波も、ピークにサンプルがくる周波数の場合、真っ赤になっちゃいます。

 ですので、「クリッピングを表示」の“赤く染まり具合”だけで品質判断するのは早計で、「クリッピングの検出」を必ず併用(または拡大して波形を確認)すべきでしょう。


メインメニューへ
スポンサーサイト

テーマ : オーディオ
ジャンル : 趣味・実用

最新記事
ERIへようこそ

Author:らかせ
「最新記事」または
「メインメニュー」からどうぞ

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です

・一応、拍手にコメント(非公開)付けられるようにしてあります

・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください

・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください

・引用の考え方については「007:諸事」をご参照ください

・アフィリエイトはAmazonのみです

・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

カテゴリ
検索フォーム
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。