パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

低ビットレートのMP3で圧縮された音楽はネガティブな印象を受けやすいという研究結果」記事へのコメント

  • 高ビットレートでもリピートしてると無意識に忌避するようになって可逆に乗り換えたんですが、MP3ではそうなるもののAACでは(まだ)なってないので、MP3自体に欠陥があるんじゃないかと思っています。

    • by Anonymous Coward

      mp3、デコード処理がマズくてデコード時にクリッピングしてる可能性もあるので、そこも疑うといいかも

      浮動小数点数で表現されてて-1.0~+1.0を超えるデータが普通にあるのに、-1.0~+1.0をそのまま16bit integerに割り当ててデコードしてる酷いプレイヤーが結構ある
      (クリッピングして波形が壊れた状態から音量調節してるので、プレイヤーの音量下げても無意味にクリッピングしちゃう)
      (正しくはfloatでデコードして音量調節してから16bit(等、DACとか目的にあわせた形式)にしないといけない)

      駄目なもの例えばWindows Media Player 12やWinampなんかがそういう酷いデコードしてる
      DAWのCakewalkやCubase(最新のはなおった?)のmp3インポート機能も同様正しく読み込めないで波形壊れる

      正しくデコードしてるプレイヤーをいくつか挙げるなら、foobar2000、VLC media player、KbMedia Player辺り(の最近のバージョン)ならだいじょうぶ

      • by Anonymous Coward

        Windowsのカーネルミキサーが、深く関係しているよね。
        WMPとかはカーネルミキサー通すから音質劣化がひどい。
        WASAPI排他モードに非対応だから、なおさらなんだよな。

        >foobar2000、VLC media player、KbMedia Player辺り(の最近のバージョン)ならだいじょうぶ
        VLCとかも、カーネルミキサー通さず再生する方法があるのか。
        foobarは、拡張機能を入れれば行けるとは聞いているけれど。

        • by Anonymous Coward on 2019年01月23日 15時33分 (#3553046)

          それもデコードがマズいって話と同様にプレイヤー側が正しく扱えていないという問題だったりします

          WASAPI共有モード、内部は32bit floatらしくて、単独の何らかのオーディオを流してループバック(※1)させてみるとわかるけど完全に元の精度を保っていて、超簡単に言うとミキサーを通しても音質は全く劣化しない

          (それだけで納得できる素直な人なら、この先は専門的な長文なので読まなくていいかも><;)

          よく言われるWASAPIは音が悪いというのは、ありぱぱさんが指摘した「リミッターの動作が雑であり、しかも 0 dBFSまで使わずに少し手前から効いてしまう」という話から生じた誤解かも(これですね [dgo.xsrv.jp] あとこれ [impress.co.jp]とか)

          じゃあどうすればいいのかというと、プレイヤー側で音量調節してからWASAPIに流してあげればよいわけで・・・
          すると、今度は例えば『それでは16bit精度では送れない』『(いわゆる)ビットパーフェクト(※2)にならないじゃないか』という誤解が発生するけど、WASAPIの内部の制度はかなりプロフェッショナル向けな構造になってるっぽくて、16bit精度のまま32bit floatにディザをかけずにアップコンバート(というかなんというか)してから音量調節して32bit floatでWASAPI共有に流してあげると、ミキサーを通った後にループバックしたデータを見るときれいに(32bit float精度の限界最大で)16bit精度でそのまま残っています

          なので、理屈の上では、例えば16bitソースを32bit floatに変換してからWASAPI共有に流して32bitのDACに送り込めば、16bitのビットパーフェクト再生と同等の再生が可能・・・なほどに高精度(※3)なので、Windowsが音が悪いというのは完全に誤解かも

          そして本題であるmp3の再生だけど、#3552646に書いたとおりmp3はそもそも-1.0~+1.0を超える表現が出来てしまい、もちろん理論上bitパーフェクトなんていう概念も基本的には無く、実際例えばamazon mp3で売ってるデータでも超えてるのが普通なので、そのまま音量調節せずに普通のDACに送り込めば(排他モードであっても)クリッピングを起こす
          つまりカーネルミキサーは音が悪いと誤解された原因と同じ現象をさらに悪化させたようなことが起きるので、もっと音が悪くなる
          (というか記録された波形とぜんぜん違う波形がDACに流れてしまう)

          なので、どっちにしてもmp3は正常な音声として鳴らすにはWASAPIに投げる前に音量調節が必要なので、その調節の時に十分にヘッドルームを空けていれば(※4)、WASAPI共有モードのミキサーは音質に全く影響をあたえないと言える

          なので、結論としては、WASAPI共有が音が悪いって話は、そもそもデジタル録音(の特に量子化)を理解してない(音の)エンジニアやソフトウェア開発者の勘違いと処理の手抜きの言い訳と言えるかも
          そしてWindowsのVista以降のオーディオシステムって、本格的にプロ向け(※5)な発想すぎて、一般人向けにはある意味オーバースペックなのかも(故にこんな誤解が出ちゃったのかも)

          ----

          (※1 Windows Core Audio(WASAPI)は柔軟なデザインなので、再生デバイスを録音デバイスのように扱うことで簡単にデジタルループバックができるようになってる)

          (※2 余談として、表現範囲と整数精度の量子化bit数の話で言うのであれば、半分で1bitだという当たり前の事を忘れずに考えるべきかも それを忘れて解像度の話をしてる人が当時結構居たかも)

          (※3 だけど、そこまでする意味はたぶん無いかも 数値として高精度であっても、人間が知覚するのは不可能だし、その違いが直接有意に現れるスピーカーやヘッドホンなんてもしあっても一般人は買えないだろうし、何よりもどうせDAC内部で1bit化してしまうので、世の中のほとんどのDACはそういう意味での真のbitパーフェクト再生(?)は出来ない(例えば「bitパーフェクト!」って言ってる人で実際にラダーDACをわざわざ使ってる人がどれだけ居るのかって考えるとなおさら) 結果的に音が知覚できるほどに変化する場合は、単にDAC側での処理がマズいと言えるかも(むしろディザ処理しないと逆に音質が悪化する可能性もある(けどそれも人間の耳じゃ判別無理そう)))

          (※4 他に音を出さないつもりなら、1dBFSでも十分かも(ありぱぱさんのおすすめは0.2dBFSのヘッドルーム。わたしのおすすめは3.0dBFSのヘッドルーム。それでも放送業界辺りの常識から見たら全然少なすぎ(音デカすぎ、余裕無くて危険)かも?))

          (※5 この文脈上のプロは、例えば放送業界とか信号処理とかそっち系であって、デジタル録音を理解せず日常的にクリッピングしてる楽曲データを作ってる音楽界隈の一部の馬鹿なエンジニアは含みません(有名人で駄目な人を一人挙げるなら、中田ヤスなんとかさんとか))

          親コメント

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

処理中...