インテリジェント ストリーミング

Microsoft Corporation

October 2000

目次
はじめに
インテリジェント ストリーミングの動作
インテリジェント ストリーミングに対応したコンテンツの作成
まとめ

はじめに

インテリジェント ストリーミングは、Microsoft® Windows Media™ テクノロジーの機能の 1 つであり、ネットワークの状態を自動的に検出して、ビデオ ストリームのプロパティを調整し、最高の品質を実現します。今日のインターネット接続は、特定の接続で達成される実際のスループットという点でも、可能な接続速度の範囲という点でも、非常に変動が大きくなっています。たとえば、ラップトップ コンピュータのユーザーは、自宅では 300 Kbps の DSL 接続で、職場では 1.5 Mbps の T1 接続で、出張中は 56.6 Kbps のモデム接続でインターネット サービス プロバイダに接続することができます。さらに、このそれぞれの状況で達成される実際のスループットも一定ではないでしょう。これは特に低帯域幅のモデム接続の場合に大きな意味を持っています。モデム接続では、ネットワークとインターネット サービス プロバイダ (ISP) の混雑具合によって、最大値の半分以下の速度しか達成できないことがあります。

Windows Media テクノロジーはエンドツーエンド接続のクライアント/サーバー システムなので、サーバーとクライアントが互いに通信して、実際のネットワーク スループットを確立し、一連の調整によってストリームの品質を最大化します。インテリジェント ストリーミングは、ユーザーに大きなメリットをもたらします。まず、利用可能な帯域幅を最大限に利用できます。DSL または LAN 環境では、ユーザーは接続速度に合わせて設計されたコンテンツを受信します。次に、ユーザー経験を大幅に改善します。モデムで接続しているユーザーは、プレゼンテーションが滑らかになり、ぎくしゃくせず、全体的な品質が高くなったことにすぐに気づくでしょう。

インテリジェント ストリーミングの動作

インテリジェント ストリーミングはバージョン 3.0 で導入され、Windows Media テクノロジー4.0 で大幅にアップグレードされました。バージョン 4.0 は、複数のビデオ ビット レートに自動的に適応し、ビデオ ストリームを自動的にクリーンアップすることができます。

ネットワーク経由でメディアをストリーム配信する上で最も難しいタスクは、非常に変わりやすい環境でユーザーに対する継続的なプレゼンテーションを維持することです。バッファリングは、ストリーミング メディアの最大の問題です。バッファリングは、Microsoft Windows Media Player、すなわちクライアントがデータ不足になり、さらに多くのデータを待たなければならないときに発生します。メディアのビット レートが現在の帯域幅を超える場合には、クライアントは常にデータ不足になります。

インターネットでは、帯域幅を予測できないことは仕方がないことと見なされています。たとえば、ユーザーは本来は 56 Kbps でインターネット サービス プロバイダ (ISP) に接続することができます。しかし、接続速度が高速でも、帯域幅がそのビット レートをサポートするとは限りません。実際の帯域幅はネットワークの状態によって決まり、インターネットのトラフィックは常に変動しているため、帯域幅は瞬間的に 18 Kbps に落ち込んだかと思うと、次の瞬間には 40 Kbps に上昇したりします。ユーザーが 50 Kbps でストリーム配信されているメディアを見ようとした場合、帯域幅が限られているときにはプレゼンテーションの品質はかなり低下します。

連続的なプレゼンテーションを保証するには、利用可能な帯域幅の変化に応じてビット レートを調整するシステムを採用する必要があります。インテリジェント ストリーミングは、以下の方法によってこれを行います。

  • ユーザーが最初に接続したときには、適切な帯域幅でストリームを送信します。
  • 帯域幅の変化に応じて、動的かつシームレスにビット レートを調整します。

マルチ ビット レート エンコード

インテリジェント ストリーミングをフルに活用するには、コンテンツを複数のビット レートでエンコードする必要があります。マルチ ビット レート エンコードは、Windows Media テクノロジー4.0 (Beta) の主要な新機能の 1 つです。マルチ ビット レート エンコードでは、最大 10 つの個別のユーザー定義のビデオ ストリームと、1 つの低ビット レート保証ビデオ ストリーム、および 1 つのオーディオ ストリームが単一の Windows Media ストリームにエンコードされます。それぞれのビデオ ストリームは同じコンテンツからエンコードされますが、それぞれ異なるビット レート用にエンコードされます。マルチ ビット レートの Windows Media ファイル (ファイル拡張子 .wmv) またはライブ ストリームを Windows Media サーバーに接続されている Windows Media Player で再生すると、ビデオ ストリームのうち、現在の帯域幅条件に最も適した 1 つだけが受信されます。適切なストリームを選択するプロセスはユーザーにはまったく見えず、それゆえに インテリジェント ストリーミングと呼ばれます。

インテリジェントな帯域幅制御

インテリジェント ストリーミングプロセスには多くのステップがあります。それぞれが戦略です。すなわち、現在の帯域幅に関係なく、クライアント側での中断が発生しないようにビット レートを変更するための方法です。サーバーとクライアントの間の帯域幅が変動すると、サーバーはその変化を検出して、ベストな戦略を選択します。帯域幅がベストな状態にあるときには、サーバーは最初の戦略を使用します。条件が悪化すると、現在の帯域幅でビット レートが最適化されるまで、サーバーはオプション リストを 1 つずつチェックします。

インテリジェント ストリーミングは、次のような戦略を使用します。

  1. サーバーとクライアントは、現在利用可能な帯域幅を自動的に調べ、サーバーは適切なビット レートを選択し、そのビット レートでビデオ ストリームを配信します。
  2. 送信中に利用可能な帯域幅が減少した場合、サーバーはその変化を自動的に検出して、低い帯域幅のストリームに切り替えます。帯域幅が改善されると、サーバーは高い帯域幅のストリームに切り替えますが、元の帯域幅より高くすることはありません。
  3. 帯域幅が最も低いマルチ ビット レート ストリームより下のレベルまで悪化した場合には、サーバーは保証ストリームを選択します。保証ストリームは、マルチ ビット レート機能が選択されると自動的にエンコードされます。この保証ストリームは、エンコードされる最低帯域幅のストリームの約 70 % のビット レートです。
  4. ストリーミング ビデオをサポートできないレベルまで帯域幅が低下した場合には、クライアントとサーバーはインテリジェントに画質を下げます。

ネットワークが極端に混雑している場合には、インテリジェント ストリーミングはオーディオ ストリームの維持を試みます。サーバーはバッファリングによる中断を最小限に抑えるために、ビデオのフレーム レートを下げます。それでもビット レートが高すぎる場合には、サーバーはビデオ フレームの送信を停止します。音質が低下し始めた場合は、クライアントはストリームの一部をインテリジェントに再構成して、品質を維持します。

インテリジェントな画像処理

クライアントはインテリジェントにビデオ ストリームを後処理して、非常に低いビット レートでも品質を強化します。Windows Media テクノロジーには、Windows Media Player の Microsoft Windows Media Video 7 コーデック と連携動作して、画像のムラ(ブロック)やゴーストを除去し、ビデオの全体的な品質を大幅に高める新しいインテリジェント フィルタリング機能が含まれています。

画像のムラは、高ビット レート ストリームのデコード時にも発生しますが、それほど目立ちません。Windows Media Video 7 コーデックなどのストリーミング メディア コーデック は、ビデオ画像をピクセルに分解することによってエンコードします。ビット レートが低いほど、ピクセル数は少なくなります。画像の作成に使用されるピクセル数が少なすぎると、画像はブロックのように見えます。インテリジェント ストリーミングで使用されるクライアントの後処理フィルタは、ブロックの端を滑らかにし、リングなど、その他のキズを消して、より見やすい画像にします。

インテリジェント ストリーミングに対応したコンテンツの作成

マルチ ビット レートでエンコードするには、Windows Media エンコーダ 7で提供されているマルチ ビット レートプロファイルを選択するだけです。きめ細かに制御したい場合は、最大 10のエンコード ストリームのそれぞれについて、手動で正確なビット レートを選択することができます。クライアント後処理、およびインテリジェントなビット レート最適化は、すべて自動的な機能です。何より、1 つのファイルを作成して管理するだけで、複数のビット レートを処理することができるようになりました。

以下のトピックを理解するには、Windows Media エンコーダ 7の操作に慣れておくべきです。詳細な情報は、Windows Media エンコーダ 7 に含まれるヘルプ文書を参照してください。Windows Media エンコーダ7は、Windows Media webサイトからダウンロードできます。

プロファイルを使用してエンコーダをセットアップする

Windows Media エンコーダとともにインストールされるシステムプロファイルのうち、どれがマルチビットレートでエンコードできるのかについては、[新しいセッションウィザード]の[プロファイルの選択]画面か、[セッションのプロパティ]ダイアログボックスの[プロファイル]タブの説明を読めばわかります。たとえば、「ダイヤルアップ モデムまたは単一チャンネル ISDN (28.8 kbps から 56 kbps まで) 用ビデオ」プロファイルの説明には次のように書いてあります:「ダイアルアップ モデムまたは単一チャンネル ISDN 接続 (帯域幅が 28.8 Kbps から 56 Kbps まで) を使用するクライアントは、このマルチビット レート プロファイルを使用してください。」。このプロファイルを使用して、エンコーダは28.8kbpsから56kbpsの間の速度で接続するユーザーをカバーする、いくつかのストリームを作成します。

オーディオのみのエンコード、または[新しいセッションウィザード]の[出力ファイルの配布]画面で[Webサーバーからストリーム配信、またはコンピュータ上で直接再生する]オプションを選択した場合には、マルチビットレートのプロファイルは表示されませんのでご注意ください。インテリジェントストリーミングは、Windows Media サーバーからストリーム配信されるビデオにのみ適用されます。

マルチビットレートでエンコードする新しいプロファイルの作成または編集に関する詳しい情報は、Windows Media エンコーダ 7 のヘルプ文書を参照してください。

プロセスを表示する

エンコードの前に、システムのパフォーマンス モニタを開きます。Microsoft Windows NTR またはWindows 2000® オペレーティング システムでは、タスクバーを右クリックして、[タスク マネージャ] をクリックし、[パフォーマンス] タブをクリックします。Microsoft WindowsR 98にも、同様のパフォーマンス モニタ オプションがあります。

マルチビットレートのプロファイルを選択してWindows Media エンコーダの設定を済ませ、パフォーマンス モニタを実行し、ビデオおよびオーディオ ストリームの接続と調整を済ませたら、エンコードを開始します。コンピュータが400 MHz デュアル プロセッサを搭載している場合、CPU 使用率は 35~40 % です。その範囲内の使用率では、エンコーダはフレームの詳細の急速な増加を処理できるだけの十分な処理パワーを持っています。ただし、より低速なコンピュータでエンコードする場合には、プロセッサの能力を酷使することになります。たとえば、200 MHz シングル プロセッサを使用した場合、エンコードを開始するとすぐに、CPU 使用率は 100 % に達します。1 つのファイルから別のファイルにエンコードするときには、これは正常なことですが、ライブ エンコードの際の CPU 使用率の高さは、フレームがドロップしていることを意味します。

動作中のエンコーダをモニタするには、[モニタ] パネルの統計ボタンを参照します。

Dd148585.intstreaming01(ja-jp,MSDN.10).gif

このパネル内のいくつかのフィールドの数値は、エンコードのプロセスに応じて連続的に変化します。[エンコード]の下の「メディアビットレート」は1 秒あたりのビデオの詳細の量が増加するにつれて、動的に変化します。これは、エンコーダが連続的にパラメータを調整して、現在のビット レートを可能な限りプロファイルで選択したビット レートに近く維持することを示しています。

余分なストリームのために、マルチ ビット レートのWindows Mediaファイルは同じ長さの単一のビット レート ファイルより大きくなります。同様に、エンコーダとサーバーの間の接続の帯域幅は、より多くのストリームを処理できるように、より大きくなければなりません。この例では、6 つのマルチビットレート ビデオ ストリームと 1 つのオーディオ ストリーム、合計 7 つのストリームが Windows Media サービス サーバーに配信されます。しかし、サーバーからクライアントに配信されるのは、そのうちの 2 つのストリームだけです。すなわち、オーディオ ストリームと 1 つのビデオ ストリームだけです。

クライアントがサーバーに接続して、ライブ プレゼンテーションの受信を試みると、サーバーは接続の現在の帯域幅を調べます。たとえば、ユーザーは 56 Kbps アナログ モデムを介して接続していますが、そのときのトラフィックが特に高かったとします。ユーザーが接続したとき、サーバーは実際使用可能な帯域幅が40Kbps であることを調べます。この帯域幅では53 Kbps のストリームでは高すぎるので、サーバーは 31kbpsのビデオストリームとオーディオ ストリームを送信します。

10 分後、ネットワークの混雑具合が悪化して、帯域幅が 32 Kbps に急落します。フレーム レートが低下し始め、いくつかのパケットが失われますが、サーバーは 19kbps ストリームに切り替えることによってすぐに反応します。ユーザーは画質がやや低下したことに気づきますが、音が途切れることはなく、プレゼンテーションの中断は最小限です。20 分後、帯域幅が再び悪化して、14 Kbps まで低下します。これは一番低いビデオストリームにも低すぎるので、Windows Media サーバーはすべてのビデオを停止します。ユーザーはビデオが表示されなくなったことに気づきますが、まだオーディオ ストリームは中断されずに流れています。オーディオ ストリームだけの場合、必要な帯域幅はわずか 8 Kbps です。数分後、帯域幅が大幅に改善されて、サーバーは再び31kbpsのビデオストリームを送信できるようになります。

サーバーとクライアントの間のネゴシエーションは自動的かつシームレスに処理されます。どちらの側でも手動調整は必要ありません。サーバーがマルチ ビット レート ストリームを利用できる場合には、サーバーはそれらを使用します。作成者がしなければならないことは、ストリームがそこにあることを確認することだけです。マルチ ビット レート プロファイルの 1 つがニーズに合わない場合は、[プロファイルの管理]ダイアログボックスで編集したり、新規で作成したりできます。このダイアログボックスは、[セッションのプロパティ]の[プロファイル]タブか、[新しいセッションウィザード]の[プロファイルの選択]画面から開くことができます。

パフォーマンスを監視する

マルチ ビット レート環境で最大の関心事は CPU の速度です。これは、単一の低ビット レートの時代にも確かにファクターの 1 つでしたが、今や決定的なファクターとなっています。可能な場合は、400 MHz 以上のプロセッサでデュアル プロセッサを搭載したコンピュータに投資することをお勧めします。ライブ エンコードが最も低い 2 つのビット レートに限られ、ファイルのエンコード時間が問題でない場合には、低速なコンピュータ(たとえば、200 MHz 程度)でもかまいません。マルチ ビット レート環境では、エンコーダが使用できる CPU 速度が高いほど、より多くのストリームが可能であり、ビット レートとフレーム レートが高いほど、フレーム サイズは大きくなり、品質が高くなります。

CPU とメモリ リソースのパフォーマンスの監視は、エンコードの品質を監視するための単純な手段です。ライブ ビデオの再生品質が低い場合は、CPU の過負荷が原因かもしれません。エンコードプロファイルを選択するということは、結果として、CPU が実行すべきタスクの一覧を割り当てることです。ストリームが多いほど、1 秒あたりのフレーム数が多いほど、画像サイズが大きいほど、そして入力した品質が高いほど、CPU が実行しなければならない 1 秒あたりのタスクが多くなります。Windows Media エンコーダは、タスクの負荷を、特定の帯域幅と CPU の限界に応じて自動的に調整します。たとえば、高フレーム レート(毎秒 30 フレーム)と低帯域幅(28.8 Kbps)を入力した場合、Windows Media エンコーダは帯域幅を一定に保ち、画像品質を下げることによって、要求されたフレーム レートの達成を試みます。

CPU は、特にマルチ ビット レート エンコードで過負荷になることがあります。CPU の処理能力に比べて 1 秒あたりのタスク数が多すぎる場合、エンコーダはフレーム数を下げることによって環境に適応します。動きの激しいシーケンスでは、少々のこま落ちは目立ちませんが、CPU 使用率が常に 100 % というような場合には、画像の品質とフレーム レートが低下することがあります。最高の品質を得るには、ストリーム数、画像サイズ、または 1 秒あたりのフレーム数を下げて、使用率が 90 % を超えないようにしてください。

1 つのファイルから別のファイルにエンコードするときには、Windows Media エンコーダはプロセッサの速度に順応します。時間は問題ではないので、エンコーダは、品質を犠牲にせずにメディアを正しくレンダリングするために必要なだけの時間と CPU 帯域幅を使用します。プロセッサの速度によっては、30 秒のファイルをエンコードするのに、あるマシンでは 5 分かかり、別のマシンでは 10 秒しかかからないこともあります。エンコーダは、エンコード時間を可能な限り短くするために CPU を最大限に使用するので、CPU 使用率は 100 % になります。しかし、ライブ エンコードと違って、これはフレームがドロップされていることを意味しません。

カスタムプロファイル

このセクションでは、作成したプロファイルを使用して、ライブ ストリーミングのために Windows Media エンコーダをセットアップする方法を説明します。Windows Media エンコーダのメニューバーの [セッション] をクリックして、[新しいセッションウィザード] をクリックします。現在のエンコーダ設定が保存されていると仮定すると、[新しいセッションウィザード] 画面が表示されます。ウィザードを通して、[プロファイルの選択]画面まで進めます。その他の画面に関する詳細な情報については、Windows Media エンコーダ7のヘルプ文書を参照してください。[プロファイルの作成と管理]をクリックし、次に[新規作成]をクリックします。[新しいプロファイル]ウィザードが開きます。

入力ソース

カスタム設定ウィザードの最初の画面で、[ライブ ソース] を選択します。

一般情報

ウィザードの最初の画面で、「圧縮」を選択し、[ビデオ]チェックボックスをオンにします。新しいプロファイルのための名前と説明を入力します。

配信対象の選択

次の画面で、10までの配信対象チェックボックスを選択することができます。配信対象に提供しなければならない再生クオリティの数だけ選択してください。ただし、追加すればするほど、CPUプロセスが必要になることを覚えておいてください。さらに、新しい[配信対象]を追加したり、既存の[配信対象]を編集したり削除したりすることができます。選択したそれぞれについて、ビデオストリームが[メディアビットレート]で指定された値でエンコードされます。

Dd148585.intstreaming02(ja-jp,MSDN.10).gif

共通ストリーム設定

Dd148585.intstreaming03(ja-jp,MSDN.10).gif

エンコードするストリームを選択した後で、1つのオーディオコーデック(圧縮タイプ)、1つのビデオコーデック、フォーマット、ビデオサイズを選択します。これらの設定は、すべてのストリームを構成するために使用されます。入力すべき設定を決めるには、テストや経験が必要です。設定のための決められたルールはありません。何を入力するかは、入力ソース、目的とする効果、個人的な好み、によって異なり、これらはすべて主観的なものです。しかし、すべての主観的な決定によるものです。多くの選択肢があります。

各ビデオストリームの設定

次の画面で、フレームレート、キーフレームの間隔、画像の品質の設定を入力します。各ストリーム用の設定を入力するには、タブをクリックします。 これらの設定に関する詳細な情報については、Windows Media エンコーダ7のヘルプ文書を参照してください。

いくつかの検討事項があります。高いフレーム レート(たとえば、毎秒 15 フレーム)を選択したのにもかかわらず、思うような再生品質が得られない場合には、Windows Media エンコーダの設定のバランスがとれていない可能性があります。たとえば、高いフレーム レートと大きい画像サイズを入力し、それに対して小さすぎる帯域幅を入力した場合、エンコーダは画像の品質を下げるだけでなく、動的にフレーム レートを調節することによって補償しようとします。高品質なストリームの作成には非常に多くの要素が関係しているので、決められた帯域幅にストリームを適応させるために、作成者が入力した設定がエンコード時にエンコーダによって変更されることがあります。

特定のタイプのビデオについて、自分が入力した設定が満足に機能するかどうかを知る唯一の方法は、それらをテストすることです。ライブに進む前に、さまざまな設定を試してみてください。結果を表示するには、Windows Media Player をエンコーダの出力 (http://EncodingMachine:port) に直接接続します。

フレーム レートが均一でない場合は、フレーム レートを下げるか、画像サイズを小さくします。Windows Media Player の [表示] をクリックして、[統計] をクリックします。[実際のレート] が [フレームレート] よりはるかに低い場合は、エンコーダがフレームのドロップを強いられている可能性があります。フレーム レートを 15 から 4 に下げれば、再生が滑らかになるでしょう。再生のモニタに加えて、エンコード コンピュータのパフォーマンス モニタをチェックしてください。CPU 使用率が常に 100 % の場合には、エンコーダはフレームをドロップすることによって補償しています。

まとめ

インテリジェント ストリーミングは、大部分が完全に自動的です。クライアントとサーバーの間の相互作用は舞台裏で行われます。オリジナルのメディアにマルチ ビット レート ストリーミングを追加した場合、サーバーは現在の帯域幅に応じてインテリジェントにビット レートを調整することができるので、ユーザーは滑らかなプレゼンテーションを受信することができます。

インテリジェント ストリーミングは、理想的なユーザー経験を作り出すための Windows Media テクノロジーのさらなるステップです。その目的は、経験をトランスペアレントにすることです。ユーザーの注意はコンテナではなくコンテンツに向けられるべきであり、作成者は優れたコンテンツを作成することに専念するべきです。インテリジェント ストリーミングは、ネットワーク経由でのメディア プレゼンテーションの理解と管理のための大きな一歩です。Windows Media テクノロジーでは、1 つのWindows Mediaファイルを作成するか、1 つのライブ ストリームをエンコードするだけで、さまざまなネットワーク条件でさまざまな速度で接続しているユーザーが高品質のプレゼンテーションを楽しむことができます。最も重要なことは、ユーザーが中断や伝送の途絶にいらいらすることなく、コンテンツを楽しめるということです。