アカウント名:
パスワード:
> ちなみに、AIFFとWAVではエンディアンも異なる。
ビッグエンディアンのほうが演算素子の回路構成やメモリへのデータ格納イメージが堂々と力強いので、堂々と力強い音楽に向いています。一方、リトルエンディアンは、繊細でこまやかな表現に優れています。
とすると、エンディアンを選択できるフォーマットが最強のように思えますが、選択機構のところがノイズ源になるので避けるべきというのが常識です。
データバスが16bit以上のの場合、リトルエンディアンかビッグエンディアンかで、配線の束の右側に上位側が来るか、左側に来るか異なります。配線の右側と左側にある部品は異なりますので、それによって特性が変わって来ます。
#冗談だよ、冗談。
なるほど、で、地球上の生物は全て光学異性体のうちL体で作られているので、左側にくるほうが、聞いていてなんとなく落ち着くのですね。
しかし、エンディアンが音質に与える影響はないとは言えないんじゃないかな。どっちも再生できる機器の場合、どこかでスワップ処理してるのは確かなんだから、バッファのサイズによっては不具合が生じてもおかしくない。つまり、ソフトウェア的に同一ではない場合、片方だけバグがあるってことは有り得るんじゃないの。
あるいは、どっちかがヘッダの処理を間違えているとか、コンバーターの実装が狂っていて数十バイトの情報すら正確に写し取れないとか。無圧縮でも丸めちゃうとか。
おっしゃるとおり、エンディアンの変換には時間がかかりますし、バグがつきものです。たとえば、Z80の場合で、HLレジスタに16ビットデータが入っている場合、LD A,HLD H,LLD L,Aで16ビットデータの上位・下位8ビットが交換できます。
まず時間について考えてみましょう。それぞれ4クロックの時間がかかりますので、全体で12クロックです。クロック4MHzのZ80Aの場合、3マイクロ秒かかることになってしまいます。100,000Hzくらいの音を聞くことができる人にとっては、これは致命的なことです。現代的なCPUはクロックがGHz程度ですので、100,000,000Hzくらいの音を聞くことができる人にとって、やはりこれは致命的な問題です。
次に、バグの問題について考えてみます。データの上位・下位の交換には上記のように3行にもわたるプログラミングが必要です。さらに、データが32ビットの場合には6行、64ビットの場合には12行ものプログラミングが必要です。このように長いプログラムをまったくバグなしで行うのは、長いデスマを乗り越えてきて睡眠不足が極限まで積み重なったプログラマにとっては、過酷な要求です。なお、現代的なCPUはデータ交換命令を持っていて、従来では3行必要なプログラムを1行で表現できる可能性もありますが、CPUそのものにハードウェア的なバグがある可能性がありますので、使用を避けた方がいい場合も考えられます。ですので、バグの可能性はあると考えた方がよいでしょう。
つまり、結論として、エンディアンの変換による音質への影響はあると考えるべきです。
スワップそのものじゃなくて、バッファのとり方の問題ね。
仮に片側1サンプルのビット数が16だったとして、16ビットごとにスワップするならバグも遅延もないかもしれないけれど、多分そういう作りにはなってない。だって、圧縮音源も同様に再生できなきゃいけないから。生データ(不揮発)をデコーダに流してメモリに展開してから、そのバッファを音響ハードに食べさせるっていう処理をしているはず。で、デコーダがスワップしてれば遅延とかは生じないだろうけど、
be+無圧縮:生→バッファ→ハードbe+圧縮 :生→デコーダ→バッファ→ハードle+無圧縮:生→バッファ→スワップ→ハードle+圧縮 :生→デコーダ→バッファ→スワップ→ハード
で、スワップのところが混みすぎたらってこと。一見、le+無圧縮の実装がおかしいようにも見えるけど、多分、本当に問題なのはデコーダが可変長leで吐くかもしれないってところにあるんだと思う。
ないない。
be+無圧縮:生→デコーダ→バッファ→ハードbe+圧縮 :生→デコーダ→バッファ→ハードle+無圧縮:生→デコーダ→バッファ→ハードle+圧縮 :生→デコーダ→バッファ→ハード
何のためのデコーダなのよ、と。ビット数・チャンネル数・サンプリングレートの違う音声をソフトでミキシングするんなら、もう一段バッファかませて処理を行うことはあるかもしれませんが。エンディアンは後にとっとく意味がないです。
バカか! ソフトウェア制御でスワップなんて使っていたら、処理が遅くて間に合わないだろ。両方のI/Oポートを用意して、外のリレーで切り替えるんだよ。再生装置よりもリレーの制御で電力消耗するんだぜ。
先生!リレーを高速で切り替える音がミシンみたいに聞こえます!
最近あまりみかけないけど編み機(セーターやマフラーを)の動作音はミシン以上にノイジーです。
10 MOTOR ON:MOTOR OFF:GOTO 10
昔さ、PC-8801て8ビットパソコンがあって、ゲームが一杯出てたのよ。でさ、ビープ音でゲーム中のファンファーレとか頑張ってるんだ。ある日、PC-8801mkIIってのが発売されてさ、IOポート1ビットがサウンド用に割り当てられて、こっちのポート使うとちょっとだけ音質が改善したんだ。PC-8801持ってる連中は悔しくて、ゲームハックしてこのポート出力をビープにするパッチ書いたり、ハードパッチ充てて同じ音が出るようにしたんだ。俺はある日、あるゲームで書き換えるポートをテープコントロールのリレーにしてみたんだ・・・
ちゃんと鳴ったよ。ファンファーレが。すごく小さい音だけど。何かヤバい感じがして二度とやらなかったけどね。
CPUのSIMD命令か、SoCのオーディオ部分ですかね>スワップ処理VGAの漏れ電磁波でラジオを鳴らしたり [erikyyy.de]、テレビ放送波を流したり [bellard.org]できるので、影響があっても不思議では無い気はします。
もしくは、パススルーやハードウェアミキサ、ソフトウェアフィルタなどの処理経路の問題もありえるかな?
エンコード時にビット深度やサンプリング周波数の変化、または不可逆圧縮が起こってるオチもありえそう。
エンディアン、嘘つかない
アフリカのとあるジャングルの奥地に、リトルエンディアン族とビッグエンディアン族がいて、片方は嘘ばかり、もう片方は本当のことばかりをしゃべるという。
ある探検家が両部族の村に行き、「AIFFとWAVでは音質が違うか?」と尋ねてみた。
リトルエンディアン族は「はい」と答えた。ビッグエンディアン族は「いいえ」と答えた。
さてどっちが本当だ?
両方の族に、 「もう一方の族に「AIFFとWAVでは音質が違うか?」と訪ねると「はい」と答えると思うか?」という質問をすればよい。
両方の族は頭がこんがらがったらしく、冷や汗を垂らして考え始めた。探検家は、「これでフェルマーの最終定理に匹敵する世紀の大問題に終止符を打つことができる!」と期待して答えを待っていたが、ついに、リトルエンディアンの青年の頭がフットーし、「わけのわからない質問をするな!」と、探検家を槍で刺して殺してしまった。そして、謎は謎のまま残された。
頭がフットーするのは、槍で刺す方ではなくて聖剣で貫かれたほうです。
謎は謎のままの方が、ロマンがあっていいじゃないですか。
「もう一方の族に「AIFFとWAVでは音質が違うか?」と訪ねると「はい」と答えると思うか?」
リトルエンディアン族の族長は「はい、エンディアン嘘つかない」と細やかでよくコントロールされた声で答えた。
ビッグエンディアン族の族長 は「はい、エンディアン嘘つかない」とおおらかで味のある声で答えた。
AIFFとWAVでは音質に差はないが、リトルエンディアンとビッグエンディアンの音質には顕著な差がある事が判明した。
「この箱は時限爆弾であり金庫でもある。中には1億円が入っている。今から同じ曲が繰り返し再生されるが、実はAIFFを音源とするものとWAVを音源とするものがランダムに切り替わって再生される。AIFFを再生中にボタンを押せば時限爆弾は解除され、WAVを再生中にボタンを押せば即座に爆発する。もちろん時間切れになっても爆発する。さてどうする?」と質問して、ボタンを押したら音質に違いがある。逃げ出したら差はない。
分からなくても押しちゃう人もいるみたい。 [labaq.com]
あと、違いは分かるんだけど、どちらがどちらか分からないとか。
ワンリトルツーリトルスリーリトルエンディアン
flac, ape, apple lossless, wma lossless などの比較もよろしく。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
エンディアン (スコア:5, おもしろおかしい)
> ちなみに、AIFFとWAVではエンディアンも異なる。
ビッグエンディアンのほうが演算素子の回路構成やメモリへのデータ格納イメージが堂々と力強いので、堂々と力強い音楽に向いています。
一方、リトルエンディアンは、繊細でこまやかな表現に優れています。
とすると、エンディアンを選択できるフォーマットが最強のように思えますが、選択機構のところがノイズ源になるので避けるべきというのが常識です。
Re:エンディアン (スコア:5, おもしろおかしい)
エンディアン嘘つかない。
Re:エンディアン (スコア:4, おもしろおかしい)
データバスが16bit以上のの場合、リトルエンディアンかビッグエンディアンかで、
配線の束の右側に上位側が来るか、左側に来るか異なります。
配線の右側と左側にある部品は異なりますので、それによって特性が変わって来ます。
#冗談だよ、冗談。
TomOne
Re: (スコア:0)
なるほど、で、地球上の生物は全て光学異性体のうちL体で作られているので、
左側にくるほうが、聞いていてなんとなく落ち着くのですね。
Re: (スコア:0)
しかし、エンディアンが音質に与える影響はないとは言えないんじゃないかな。どっちも再生できる機器の場合、どこかでスワップ処理してるのは確かなんだから、バッファのサイズによっては不具合が生じてもおかしくない。つまり、ソフトウェア的に同一ではない場合、片方だけバグがあるってことは有り得るんじゃないの。
あるいは、どっちかがヘッダの処理を間違えているとか、コンバーターの実装が狂っていて数十バイトの情報すら正確に写し取れないとか。無圧縮でも丸めちゃうとか。
Re:エンディアン (スコア:5, おもしろおかしい)
おっしゃるとおり、エンディアンの変換には時間がかかりますし、バグがつきものです。
たとえば、Z80の場合で、HLレジスタに16ビットデータが入っている場合、
LD A,H
LD H,L
LD L,A
で16ビットデータの上位・下位8ビットが交換できます。
まず時間について考えてみましょう。それぞれ4クロックの時間がかかりますので、全体で12クロックです。
クロック4MHzのZ80Aの場合、3マイクロ秒かかることになってしまいます。
100,000Hzくらいの音を聞くことができる人にとっては、これは致命的なことです。
現代的なCPUはクロックがGHz程度ですので、100,000,000Hzくらいの音を聞くことができる人にとって、
やはりこれは致命的な問題です。
次に、バグの問題について考えてみます。データの上位・下位の交換には上記のように3行にもわたる
プログラミングが必要です。さらに、データが32ビットの場合には6行、64ビットの場合には12行もの
プログラミングが必要です。このように長いプログラムをまったくバグなしで行うのは、長いデスマを
乗り越えてきて睡眠不足が極限まで積み重なったプログラマにとっては、過酷な要求です。
なお、現代的なCPUはデータ交換命令を持っていて、従来では3行必要なプログラムを1行で表現
できる可能性もありますが、CPUそのものにハードウェア的なバグがある可能性がありますので、
使用を避けた方がいい場合も考えられます。
ですので、バグの可能性はあると考えた方がよいでしょう。
つまり、結論として、エンディアンの変換による音質への影響はあると考えるべきです。
Re: (スコア:0)
スワップそのものじゃなくて、バッファのとり方の問題ね。
仮に片側1サンプルのビット数が16だったとして、16ビットごとにスワップするならバグも遅延もないかもしれないけれど、多分そういう作りにはなってない。だって、圧縮音源も同様に再生できなきゃいけないから。生データ(不揮発)をデコーダに流してメモリに展開してから、そのバッファを音響ハードに食べさせるっていう処理をしているはず。で、デコーダがスワップしてれば遅延とかは生じないだろうけど、
で、スワップのところが混みすぎたらってこと。一見、le+無圧縮の実装がおかしいようにも見えるけど、多分、本当に問題なのはデコーダが可変長leで吐くかもしれないってところにあるんだと思う。
Re: (スコア:0)
ないない。
何のためのデコーダなのよ、と。
ビット数・チャンネル数・サンプリングレートの違う音声をソフトでミキシングするんなら、もう一段バッファかませて処理を行うことはあるかもしれませんが。
エンディアンは後にとっとく意味がないです。
Re:エンディアン (スコア:3, おもしろおかしい)
バカか! ソフトウェア制御でスワップなんて使っていたら、処理が遅くて間に合わないだろ。
両方のI/Oポートを用意して、外のリレーで切り替えるんだよ。再生装置よりもリレーの制御で電力消耗するんだぜ。
Re: (スコア:0)
先生!リレーを高速で切り替える音がミシンみたいに聞こえます!
Re:エンディアン (スコア:1)
最近あまりみかけないけど編み機(セーターやマフラーを)の動作音はミシン以上にノイジーです。
Re: (スコア:0)
10 MOTOR ON:MOTOR OFF:GOTO 10
継電器演奏 (スコア:1)
昔さ、PC-8801て8ビットパソコンがあって、ゲームが一杯出てたのよ。
でさ、ビープ音でゲーム中のファンファーレとか頑張ってるんだ。
ある日、PC-8801mkIIってのが発売されてさ、IOポート1ビットがサウンド用に割り当てられて、
こっちのポート使うとちょっとだけ音質が改善したんだ。
PC-8801持ってる連中は悔しくて、ゲームハックしてこのポート出力をビープにするパッチ書いたり、
ハードパッチ充てて同じ音が出るようにしたんだ。
俺はある日、あるゲームで書き換えるポートをテープコントロールのリレーにしてみたんだ・・・
ちゃんと鳴ったよ。ファンファーレが。すごく小さい音だけど。
何かヤバい感じがして二度とやらなかったけどね。
Re: (スコア:0)
CPUのSIMD命令か、SoCのオーディオ部分ですかね>スワップ処理
VGAの漏れ電磁波でラジオを鳴らしたり [erikyyy.de]、テレビ放送波を流したり [bellard.org]できるので、影響があっても不思議では無い気はします。
もしくは、パススルーやハードウェアミキサ、ソフトウェアフィルタなどの処理経路の問題もありえるかな?
エンコード時にビット深度やサンプリング周波数の変化、または不可逆圧縮が起こってるオチもありえそう。
Re: (スコア:0, 既出)
エンディアン、嘘つかない
Re:エンディアン (スコア:5, おもしろおかしい)
アフリカのとあるジャングルの奥地に、リトルエンディアン族とビッグエンディアン族がいて、片方は嘘ばかり、もう片方は本当のことばかりをしゃべるという。
ある探検家が両部族の村に行き、「AIFFとWAVでは音質が違うか?」と尋ねてみた。
リトルエンディアン族は「はい」と答えた。
ビッグエンディアン族は「いいえ」と答えた。
さてどっちが本当だ?
Re:エンディアン (スコア:3, すばらしい洞察)
両方の族に、
「もう一方の族に「AIFFとWAVでは音質が違うか?」と訪ねると「はい」と答えると思うか?」
という質問をすればよい。
Re:エンディアン (スコア:1)
両方の族は頭がこんがらがったらしく、冷や汗を垂らして考え始めた。
探検家は、「これでフェルマーの最終定理に匹敵する世紀の大問題に終止符を打つ
ことができる!」と期待して答えを待っていたが、
ついに、リトルエンディアンの青年の頭がフットーし、
「わけのわからない質問をするな!」と、探検家を槍で刺して殺してしまった。
そして、謎は謎のまま残された。
Re:エンディアン (スコア:1)
頭がフットーするのは、槍で刺す方ではなくて聖剣で貫かれたほうです。
Re: (スコア:0)
謎は謎のままの方が、ロマンがあっていいじゃないですか。
Re:エンディアン (スコア:1)
「もう一方の族に「AIFFとWAVでは音質が違うか?」と訪ねると「はい」と答えると思うか?」
リトルエンディアン族の族長は「はい、エンディアン嘘つかない」と細やかでよくコントロールされた声で答えた。
ビッグエンディアン族の族長 は「はい、エンディアン嘘つかない」とおおらかで味のある声で答えた。
AIFFとWAVでは音質に差はないが、リトルエンディアンとビッグエンディアンの音質には顕著な差がある事が判明した。
Re: (スコア:0)
「この箱は時限爆弾であり金庫でもある。中には1億円が入っている。
今から同じ曲が繰り返し再生されるが、実はAIFFを音源とするものとWAVを音源とするものがランダムに切り替わって再生される。
AIFFを再生中にボタンを押せば時限爆弾は解除され、WAVを再生中にボタンを押せば即座に爆発する。
もちろん時間切れになっても爆発する。
さてどうする?」
と質問して、ボタンを押したら音質に違いがある。
逃げ出したら差はない。
Re: (スコア:0)
分からなくても押しちゃう人もいるみたい。 [labaq.com]
あと、違いは分かるんだけど、どちらがどちらか分からないとか。
Re:エンディアン (スコア:1)
Re: (スコア:0)
ワンリトルツーリトルスリーリトルエンディアン
Re: (スコア:0)
Re: (スコア:0)
flac, ape, apple lossless, wma lossless などの比較もよろしく。