Ustream配信音声の上限周波数
この記事はだいぶ前にデータをまとめ、Googleドキュメントで公開している物の補完解説です。詳細なデータだけ見たい人はGoogleドキュメント側で見て頂いた方がよいでしょう。
Googleドキュメント:Ustream配信音声の上限周波数
短縮URL:http://bit.ly/aLVCW6
GoogleドキュメントをWeb形式で公開したものです。
Ustreamではいろいろな方がいろいろな環境で配信をされていますが、見ていると音声の品質に独特のクセがあります。一言で言ってしまえば「エリアシング・ノイズの有無」なのですが、そのへんのチェックをするために配信音をスペアナで見ていると、妙なことが判って来たのです。
なんか15kHz ぐらいまでしか出ていない配信が多い
特に「高音質」に拘ったはずの音楽系の配信に15kHz配信が多く、簡易配信っぽい配信では盛大なエリアシング・ノイズが目立つと言った傾向がみられました。また時たま21kHzまで伸びた配信がありますが、それはモノラルに限られる。と言ったパターンがあるのです。
さて、これは何が原因なのか?また、ステレオ20kHz配信は可能なのか?など技術的好奇心をくすぐられてしまい、膨大なテストとデータ収集を始めることとなったのです。
この記事の短縮URL → http://bit.ly/g1N5nc
傾向を調べ始めてすぐに気がつくのは、配信(エンコード)に使用するソフトの違いによる物です。勝手な先入観で Broadcaster<Producer<FMLE というような序列を思い浮かべるのですが、そんなに単純ではありません。次に「パラメータの掛け合わせでしょ」と技術的にはしごく真っ当に考え、各ソフトのプリセットや可変パラメータでのサンプリング周波数を調べてみました。
ソフト | サンプリング周波数 | |||||||
Broadcaster | 5 | 8 | 11 | 15 | 22 | 44 | ||
Producer | 32k | 44.1k | ||||||
FMLE MP3 | 11025 | 22050 | 44100 | |||||
FMLE AAC | 8000 | 11025 | 22050 | 32000 | 44100 | 48000 |
デジタル音声の基礎的常識からすれば、
伝送可能上限周波数 ≒ サンプリング周波数 ÷ 2
の関係にあるはずですので、これだけを見ると15kHz配信はProducerかFMLEのAACで配信されていることになります。しかし、もう少し調べてみると更に妙なことが判ってきました。Producerの32kサンプリングのプリセットはモノラルしか無いのですが、Producerのステレオ配信物も15kHz配信になっているのです。
プリセット | ビットレート | サンプリング | チャンネル |
Lowest SD | 200kbps | 32k | Mono |
Basic SD | 350kbps | 32k | Mono |
Standard SD | 350kbps | 44.1k | Stereo |
High SD | 500kbps | 44.1k | Stereo |
Best SD | 600kbps | 44.1k | Stereo |
これはつまり、44.1kHzサンプリング以外のどこかで意図的に音声帯域を絞るフィルターが挿入されていることを意味します。
こうなるとソフトの設計で全然違って来てしまいますので、全て実際に調べてみるしかありません。 用意するものは・・・
- ホワイトノイズジェネレータ → iPhone アプリSignalSuite
- スペクトラムアナライザー → Windows アプリWaveStectra
- 配信環境 → Mac および Windows
- 配信ソフト → Broadcaste、Producer(無印)、FMLE
見て判る様に特殊なのはiPhoneアプリのSignalSuiteぐらいです。これは1,200円と結構お高いソフトですが、各種信号を発生できるので音声系の簡易調整用に非常に便利です。ただホワイトノイズを出すだけなら、他にいくらでも方法はあると思います。(Audacityで作るとか)
この信号を Mac および Windows のライン入力に入れ各種設定でUstream配信し、受信した物をWaveStectraで計測します。この時、Windowsは良くわからないので放置ですが、Macの方はCoreAudioの設定で明示的に48kHzに設定しなおします。(ここが32kとかだと意味が無い)
CoreAudio設定:
AudioMIDI設定(ユーティリティフォルダ)
内蔵入力
ソース:ライン入力
フォーマット:48000.0Hz 2ch-16ビット
WaveSpectraはフリーのスペクトラムアナライザーソフト(Windowsのみ)です。
Macで計測する場合は、AU LabにBlue Cat’s FreqAnalystの組み合わせであればフリーで揃います。AU LabはMacデベロッパキットをインストールすれば入っています。なお、ブラウザの音声出力をAU Labに取り込むにはSoundflowerの併用も必要です。
AU Lab + Blue Cat’s FreqAnalyst
この種の計測をする場合、計測環境のスペック確認やキャリブレーションが必須ですが、長くなるので省略します。
以下はこの環境で計測した結果をグラフ化した物です。
– Broadcaster の場合 –
Ustream Broadcaster(ブラウザ上のFlash Playerベース)
これを見ると、Ustream Broadcaster(Flash Playerベース)は何もフィルタがかかっていないことが判ります。その代わり、アンチ・エリアシング用のフィルタも無いようで、44(44.1kHz)以外では盛大にエリアシング・ノイズが乗ります。スペアナで見る際はこのエリアシング・ノイズを伝送音声と見間違えない様に注意する必要があります。ホワイトノイズの場合は明らかにナイキスト周波数辺りに大きな谷ができますので判りますが、動的な音声の場合21kHz辺りまで信号がある様に見えなくもないですが、これはノイズです。
エリアシング・ノイズは音で聞くと「キンキン」とした変調が元の音声にまとわりつくように聞こえますので、慣れればすぐに判る様になります。
エリアシング・ノイズを防止・軽減するには、入力側でナイキスト周波数(ここで言う上限周波数と同義)以上の音を急峻なフィルタでバッサリ切る必要があります。ただ通常のEQ程度ではだめで、かえって元の音声を聞き難くしてしまう可能性があります。
– Ustream Producer の場合 –
次にProducerですがSD設定の場合(4:3でも16:9でも)無印・Pro共に15kHzでバッサリ切られています。HD設定にした場合は18kHz弱まで伸びますが、HD設定はProに限られます。また、映像と音声のプリセットが切り離せないため、映像重視や音声重視などの要望には応えることができません。ただ、Broadcasterとは違い、きっちり入力側にアンチ・エイリアス用のフィルタがかかっているようで、エリアシング・ノイズは観測されません。
– Flash Media Live Encoder の場合 –
Flash Media Live Encoder(Stereo)
Flash Media Live Encoder(Mono)
FMLE(Flash Media Live Encoder)では、概ねビットレートを上げるに従って上限帯域(のフィルタリング周波数)は伸びて行き、44.1kHzサンプリングの場合20kHz超、48kHzサンプリングにすれば22kHz超まで伝送が可能となっています。また、サンプリング周波数・ビットレートの他にStereo/Monoの設定が独立して行えるため、モノラル配信でも高音質な配信が可能となっています。
モノラルにした場合ビットレート的にも余裕があり、かなり低ビットレートでも高音質を保てますので、映像重視の場合や、全体のビットレートを絞りたい場合、モノラルでギリギリまでレートを下げるという手法も取れます。
なお、エリアシング・ノイズに関してはProducer同様きっちり対策がされているため、観測はされませんでした。これも低ビットレートにする際に大きなアドバンテージとなるでしょう。FMLE=高ビットレート、高品質用というイメージですが、低ビットレート配信こそFMLEの出番なのかもしれません。
ただ注意が必要なのはこのデータはMac版のFMLEであり、AACを使用しているということです。これがWindows版ですとAACは高価な有償オプションなので、実質的に使用できません。 そのためMP3を使用することになりますが、グラフを見て判る様に(Mac版ですが)MP3は低ビットレートに弱いらしく、上限周波数がどんどん下がってしまいます。このためWindowsで低ビットレートにする場合は注意が必要です。
以上、夏前に取ったデータをベースにBlog化してみましたが、Windowsでも同様なのか?とかWirecastはどうなのか?など不備な部分もあります。似たような実験をされている方が居ましたら是非ご連絡をください。
2010年12月16日 18:28
[...] 何も足さない、何も引かない : Ustream配信音声の上限周波数 meteor.blog.avis.jp/archives/202 – view page – cached [...]
2011年02月15日 6:38
[...] Ustream配信音声の上限周波数 [...]