なぜハイレゾは「バカげている」のか

2012年のことだが Xiph.org (Ogg VorbisやFLACの開発元) のクリス・モンゴメリーは [24/192 Music Downloads are Very Silly Indeed](http://people.xiph.org/~xiphmont/demo/neil-young.html) 「24bit 192kHz 音楽ダウンロードは本当にバカげている」 でハイレゾをバッサリと斬った。非常にわかりやすい記事なので一度は目を通しておくのも良い。

まず記事の要点を説明しつつ、ハイレゾがなぜ全くバカげているのかをわかりやすく説明しよう。

視聴覚とも呼ばれるように、聴覚と視覚は人の認知の重大な要素である。
ここで、「百聞は一見に如かず」ともいうし聴覚と視覚の対応を取ってハイレゾのバカらしさを説明したい。

# サンプリングレート
## 可聴周波数と可視光
まず、人間が見ることのできる可視光線は決まっている。という当然の事実を説明する。以下の図では、可視光のスペクトログラムを示している。
![visspec.png](https://qiita-image-store.s3.amazonaws.com/0/19148/ae19871d-3000-8d47-91a2-6aae11bd2c9e.png)
400THz から 850THz までである。

人間は可視光しか見えない。紫外線を見ることができる！や赤外線を見ることができる！という人がいないのと同様、可聴音も 20Hz から 20000Hz 以下 (私は16kHzまでしか聴こえない) なのである。

ここで、**紫外線や赤外線を映し出すことのできるテレビやモニターを販売したとして、買うだろうか**？

「赤外線を認知できる人間」が見たPCモニター（**想像図**）。
![2015-07-06-12.00.46.jpg](https://qiita-image-store.s3.amazonaws.com/0/19148/f1ca4381-45fb-35d9-5903-b7967e0a3016.jpeg)


Apple TVのリモコン。あなたはリモコンが出す赤外線を認識できる？
![apple-ir.jpg](https://qiita-image-store.s3.amazonaws.com/0/19148/f28381aa-e1d4-82be-c881-c47d4d495fba.jpeg)


![ath-top.png](https://qiita-image-store.s3.amazonaws.com/0/19148/68305a8c-8865-262a-018a-c0bd86b6c453.png)

ラウドネス曲線。「聴こえない」限界と「これ以上は痛い」ラインが赤線で描かれている。
「可視光線」特に緑色の光線が敏感に認知できるのと同様、「可聴音」についても敏感に認知できる周波数がある。しかしながら、人によって違うが、 16-20kHz 以上はどれ程大きい音でも認知することは絶対に無理である。

## Q. 聴こえないけど聴覚に何らかの良い影響があるはずでは！
192kHzというサンプリング周波数では、その半分である96kHzまでの音声が収録できる（ことになっている）。ただ、その領域まで収録できるマイクなどがスタジオに配備されているわけはないし、そもそも音として認知できないわけだからその領域においての音質の評価などできるわけもない。

つまり、その領域の音が実際の楽器の倍音か、あるいはただのノイズであるかすら分からない。

ただ、科学的見地からは、**逆に有害**であるということはわかっている。
Intermodulation (IM; 混変調歪み や 相互変調歪 といわれるものである。)
これはクリス・モントゴメリーの原文にも書いてあるが、アンプやDACなどは可聴域を超えた部分からはノンリニアな特性になったりしてしまう。

結果として、聴こえない超音波がアンプに悪い影響を及ぼして可聴域の音質が悪くなってしまうことがあり得る。

**以下の音源は、本当に優れた特性のDAC・アンプ・スピーカーなら、 無音 に聴こえる音であるが、 何か聴こえる なら、可聴域の音質が害されていることになる。**
(テストの前に、OSのサウンドドライバーやDACをきちんと192kHzのサンプリング周波数にセットすること)

* 30kHz tone + 33kHz tone (24 bit / 96kHz) 
    * http://people.xiph.org/~xiphmont/demo/30_and_33.wav
* 26kHz - 48kHz warbling tones (24 bit / 96kHz)
    * http://people.xiph.org/~xiphmont/demo/warbles-96.wav
* 26kHz - 96kHz warbling tones (24 bit / 192kHz)
    * http://people.xiph.org/~xiphmont/demo/warbles-192.wav
* Song clip shifted up by 24kHz (24 bit / 96kHz WAV)
    * http://people.xiph.org/~xiphmont/demo/Pido_O_trollbat.wav

## Q. ではなぜスタジオで 96kHz や 192kHz が使われたのか？
**96や192が使われていたのは、アナログフィルタでのアンチエイリアシングにおける制約からである。**
20kHz～ナイキスト周波数までの間を、アナログLPFフィルタのなだらかな特性のためのヘッドルームとして使えるわけだ。（オーバーサンプリング）

![filters.png](https://qiita-image-store.s3.amazonaws.com/0/19148/7af0b769-46df-f032-b40e-1451476d75f1.png)

デジタルフィルタではアナログフィルタほどの制約はないので、あまり意味はない。
ただし、量子化ビット数を下げる際にノイズシェーピングとして、高周波数帯にノイズを追いやるということは可能である。ただ、再生の際には、高周波数帯のS/N比は低いものとなり、スピーカーユニットから出す音としての意味は全くない。（が故に、むしろ逆に再生できることが有害という話にすらなる。）

そもそも、そのようにノイズを追いやった部分は48/44.1kHzにリサンプリングするなどしてバッサリ切ってしまったほうが良いのではないか？

# 量子化ビット数の話
ビット数はダイナミックレンジに関係している。が、結論から言うと、**16bitで十分**ということが原文に書かれている。なぜか？それはリスニングの環境にある。

## リスニング環境
人間は最低 -8dbSPL の音を聴くことができるとされている。
完璧に遮音された理想的な空間では、100W電球から放出される 10dBSPL のハムノイズを聴くことができるらしい。
ただ、放送スタジオなどでプロレベルで防音がしっかりしていても 20dBSPL の環境ノイズがあるらしく、その環境ではすでに「100W電球の音」を聴くことはできない。

一般家庭では言わずもがなである。また、ポータブルプレイヤーなどを利用し屋外で聴く際には24bitどころか16bitですら、ダイナミックレンジは過剰すぎるのかもしれない。

## 「16bit は 96dB のダイナミックレンジ」は嘘
よく (6*bits) dB が量子化ビット数とダイナミックレンジの関係であるといわれるが、間違っている。

* 0dB (最大音量)
    * http://people.xiph.org/~xiphmont/demo/1kHz-0-dither.wav
* -105dB
    * http://people.xiph.org/~xiphmont/demo/1kHz-105-dither.wav

16bit は 96dB の嘘は、このスペクトラムから明らかである。

![-105dB.png](https://qiita-image-store.s3.amazonaws.com/0/19148/046e5c1e-098d-0a6b-b2b5-08f04e28849b.png)

(6*bits) dBは帯域全体におけるRMSノイズであるが、耳は全体の帯域のうち少ししか鋭敏ではないため、ノイズフロアは-96dBより低くなる。
すなわち、 6*bit は単に耳の特性を考慮に入れない計算であるといえる。

「ディザリング」を使えば、16bitであっても120dBのダイナミックレンジを得ることができる。

[pngquant](https://pngquant.org/) というソフトウェアをご存じだろうか？
これは、見た目を保ったまま、色数（ビット深度）を減らすというもので、PNGのサイズが劇的に減らせる。

元の画像
![Ducati_side_shadow.png](https://qiita-image-store.s3.amazonaws.com/0/19148/43f4c216-4cef-b118-ed3f-83f8ea060728.png)

8bit PNG (256色)
![Ducati_side_shadow-fs8.png](https://qiita-image-store.s3.amazonaws.com/0/19148/6ab4696d-3627-b62c-e606-9f6dca33e008.png)

**下の画像は256色で表現されているが、上の画像と判別できない人も多いだろう。これは、「[ディザリング](https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AD%E3%82%A4%E3%83%89-%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%B3%E3%83%90%E3%83%BC%E3%82%B0%E3%83%BB%E3%83%87%E3%82%A3%E3%82%B6%E3%83%AA%E3%83%B3%E3%82%B0)」と呼ばれるものを用いており、人間の知覚に適切な方法で色数を減らすことで、見た目の影響を与えずに低いビット深度で表現することができる。**
パレットの選択方法も適切なものを利用しているらしい。

同じことは聴覚にも言えるわけだ。

## ではなぜ24bit/32bitなどが利用されるのか
プロの制作工程では、何重にもエフェクトを掛けたりすることがある。
この際、16bitを利用していると誤差が蓄積し音質に影響することになる。そのため、最低でも24bit、できれば32bit floatや64bit floatなどを利用することになる。
だが、コンシューマーでは全く不要である。そもそも、音楽を楽しむために、ダイナミックレンジを損なってしまうエアコンや、照明も付けずに防音室に籠るような人はいないだろう。
24bitのダイナミックレンジを楽しむためには、[ノイズ源である心臓&肺まで止めないといけないのだから](http://www.dtmstation.com/archives/51510928.html)

# 音の違いをテストしたい場合
-