(57)【特許請求の範囲】
【請求項１】
コンテンツ提供デバイスからコンテンツ・ストリームを受信するコンテンツ受信プレーヤ装置の受信バッファが許容不能に低いスレッショルドに到達する確率を決定するように、かつ、前記決定された前記コンテンツ受信プレーヤ装置の受信バッファが許容不能に低いスレッショルドに到達する確率を少なくとも部分的に基礎として前記コンテンツのストリーミング・レートを動的に適応させるように設計された複数のプログラミング・インストラクションがストアされたストレージ・メディアと、
前記ストレージ・メディアに結合され、前記プログラミング・インストラクションを実行する少なくとも１つのプロセッサと
を含む装置。
【請求項２】
前記プログラミング・インストラクションは、パケットの前記受信バッファへの到着と、そこからの出発を、それぞれマルコフの入力および出力プロセスとして、かつ前記受信バッファを単一チャンネルのキューとしてモデリングすることによって前記確率を決定するように設計されている請求項１に記載の装置。
【請求項３】
前記許容不能に低いスレッショルドは空に等しく、前記プログラミング・インストラクションは、
１‐受信バッファの利用率
を決定することによって前記受信バッファが空になる確率を決定するように設計されている請求項１に記載の装置。
【請求項４】
前記プログラミング・インストラクションは、さらに、コンテンツ・ストリームの、それぞれ前記受信バッファへ到着するパケットと前記受信バッファから移動するパケットに対して、平均のパケット間到着時間と平均のパケット間出発時間の間における比を決定することによって前記受信バッファの前記利用率を決定するように設計されている請求項３に記載の装置。
【請求項５】
前記装置は、前記コンテンツ受信プレーヤ装置であり、
前記プログラミング・インストラクションは、さらに、前記コンテンツ・ストリームのパケットの到着を監視し、かつ前記コンテンツ・ストリームの前記平均のパケット間到着時間を、前記監視の観察を少なくとも部分的に基礎として決定するように設計されている請求項４に記載の装置。
【請求項６】
前記装置は、前記コンテンツ受信プレーヤ装置であり、
前記プログラミング・インストラクションは、さらに、前記コンテンツ受信プレーヤ装置から、そのコンテンツ受信プレーヤ装置によって受信された累積パケットを含むフィードバック情報を受信し、かつ前記コンテンツ受信プレーヤ装置における前記コンテンツ・ストリームの前記平均のパケット間到着時間を、前記コンテンツ受信プレーヤ装置から受信した前記受信済み累積パケットのフィードバック情報を少なくとも部分的に基礎として決定するように設計されている請求項４に記載の装置。
【請求項７】
前記プログラミング・インストラクションは、さらに、前記コンテンツ受信プレーヤ装置のところにある前記受信バッファからの前記コンテンツ・ストリームのパケットの処理のための移動について前記平均のパケット間出発時間を決定するように設計されている請求項４に記載の装置。
【請求項８】
前記プログラミング・インストラクションは、さらに、前記コンテンツ・ストリームの現在のコーディング・レートを少なくとも部分的に基礎として前記平均のパケット間出発時間を決定するように設計されている請求項７に記載の装置。
【請求項９】
前記プログラミング・インストラクションは、さらに、少なくとも部分的にパケット・サイズを基礎として前記平均のパケット間出発時間を決定するように設計されている請求項７に記載の装置。
【請求項１０】
前記装置は、前記コンテンツ提供デバイスであり、
前記プログラミング・インストラクションは、さらに、前記コンテンツ受信プレーヤ装置からフィードバック情報を受信し、かつそのコンテンツ受信プレーヤ装置から受信した前記フィードバック情報を少なくとも部分的に基礎として前記コンテンツ受信プレーヤ装置のところにある前記コンテンツ・ストリームの受信バッファが許容不能に低いスレッショルドに到達する確率を決定するように設計されている請求項１に記載の装置。
【請求項１１】
前記プログラミング・インストラクションは、さらに、前記確率があらかじめ決定済みのシーリング・スレッショルドより大きいと決定された場合には、常に、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより低い第２のストリーミング・レートへ適応させるように設計されている請求項１に記載の装置。
【請求項１２】
前記プログラミング・インストラクションは、さらに、前記確率があらかじめ決定済みのフロア・スレッショルドより小さいと決定された場合には、常に、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより高い第２のストリーミング・レートへ適応させるように設計されている請求項１に記載の装置。
【請求項１３】
前記装置は、前記コンテンツ受信プレーヤ装置であり、
前記プログラミング・インストラクションは、さらに、前記コンテンツ・ストリームのパケットの到着と処理を監視し、前記監視を少なくとも部分的に基礎として前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定するように設計されている請求項１に記載の装置。
【請求項１４】
前記装置は、前記コンテンツ提供デバイスであり、
前記プログラミング・インストラクションは、さらに、前記コンテンツ受信プレーヤ装置からフィードバック情報を受信し、かつ前記コンテンツ受信プレーヤ装置から受信した前記フィードバック情報を少なくとも部分的に基礎として前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定するように設計されている請求項１に記載の装置。
【請求項１５】
前記装置は、前記コンテンツ受信プレーヤ装置であり、該コンテンツ受信プレーヤ装置は、手のひらサイズのコンピューティング・デバイス、ワイヤレス携帯電話、携帯情報端末、ラップトップ・コンピューティング・デバイス、デスクトップ・コンピューティング・デバイス、セット‐トップ・ボックス、サーバ、コンパクト・ディスク・プレーヤ、ディジタル多用途ディスク・プレーヤ、テレビジョン、ディスプレイ・モニタのうちの選択された１つである請求項１に記載の装置。
【請求項１６】
前記装置は、前記コンテンツ受信プレーヤ装置であり、該コンテンツ受信プレーヤ装置は、ドーター・カードとマザーボードのうちの選択された１つであり、前記受信バッファは、前記ドーター・カード／マザーボードに配置される請求項１に記載の装置。
【請求項１７】
前記装置は、前記コンテンツ提供デバイスである請求項１に記載の装置。
【請求項１８】
装置をプログラムして、その装置を、コンテンツ提供デバイスからコンテンツ・ストリームを受信するコンテンツ受信プレーヤ装置の受信バッファが許容不能に低いスレッショルドに到達する確率を決定できるようにし、かつ、その決定された前記コンテンツ受信プレーヤ装置の受信バッファが許容不能に低いスレッショルドに到達する確率を少なくとも部分的に基礎として前記コンテンツのストリーミング・レートを動的に適応させる、複数のプログラミング・インストラクション、
を記録した記録可能メディア。
【請求項１９】
前記プログラミング・インストラクションは、パケットの前記受信バッファへの到着とそこからの移動を、それぞれマルコフの入力および出力プロセスとして、かつ前記受信バッファを単一チャンネルのキューとしてモデリングすることによって前記コンテンツ受信プレーヤ装置の受信バッファが許容不能に低いスレッショルドに到達する確率を前記装置が決定できるように設計されている請求項１８に記載の記録可能メディア。
【請求項２０】
前記許容不能に低いスレッショルドは空に等しく、前記プログラミング・インストラクションは、前記装置が、コンテンツ・ストリームのパケットの前記受信バッファへの到着と前記受信バッファからの出発それぞれの、平均のパケット間到着時間と平均のパケット間出発時間の間における比を決定することによって前記受信バッファの利用率を決定し、その後
１‐受信バッファの利用率
を決定することによって前記受信バッファが空になる確率を決定するように設計されている請求項１８に記載の記録可能メディア。
【請求項２１】
前記装置は、前記コンテンツ受信プレーヤ装置であり、かつ、前記プログラミング・インストラクションは、さらに、前記確率が動作範囲の外であると決定された場合には常に前記装置が前記コンテンツ提供デバイスへ通知することができるように設計されている請求項１８に記載の記録可能メディア。
【請求項２２】
前記装置は、前記コンテンツ提供デバイスであり、かつ、前記プログラミング・インストラクションは、さらに、前記確率があらかじめ決定済みのシーリング・スレッショルドより大きいと決定された場合には、常に、前記装置が、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより低い第２のストリーミング・レートへ適応させることができるように設計されている請求項１８に記載の記録可能メディア。
【請求項２３】
前記装置は、前記コンテンツ提供デバイスであり、かつ、前記プログラミング・インストラクションは、さらに、前記確率があらかじめ決定済みのフロア・スレッショルドより小さいと決定された場合には、前記装置が、常に、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより高い第２のストリーミング・レートへ適応させることができるように設計されている請求項１８に記載の記録可能メディア。
【請求項２４】
前記装置は、前記コンテンツ受信プレーヤ装置であり、かつ、
前記プログラミング・インストラクションは、さらに、前記装置が、前記コンテンツ・ストリームのパケットの前記受信バッファへの到着、および前記受信バッファからの前記パケットの処理のための移動を監視し、前記監視を少なくとも部分的に基礎として前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定することができるように設計されている請求項１８に記載の記録可能メディア。
【請求項２５】
前記装置は、前記コンテンツ提供デバイスであり、かつ、
前記プログラミング・インストラクションは、さらに、前記装置が、前記コンテンツ受信プレーヤ装置からフィードバック情報を受信し、かつ前記コンテンツ受信プレーヤ装置から受信した前記フィードバック情報を少なくとも部分的に基礎として前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定することができるように設計されている請求項１８に記載の記録可能メディア。
【請求項２６】
動作方法が、
コンテンツ提供デバイスから第１のストリーミング・レートで提供されるコンテンツ・ストリームの部分を連続的に受信し、
前記受信した部分をコンテンツ受信プレーヤ装置の受信バッファ内に連続的にバッファし、
前記コンテンツ受信プレーヤ装置で前記バッファした部分を処理するために連続的に移動させ、
少なくとも周期的に前記受信バッファが許容不能に低いスレッショルドに到達する確率を前記コンテンツ受信プレーヤ装置で決定し、
前記決定された前記受信バッファが許容不能に低いスレッショルドに到達する確率を少なくとも部分的に基礎として、前記コンテンツ受信プレーヤ装置によって、動的に、前記第１のストリーミング・レートと異なる第２のストリーミング・レートで前記コンテンツ・ストリームを提供すること
を含むコンテンツ受信プレーヤ装置。
【請求項２７】
前記周期的に前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定することは、前記コンテンツ・ストリームのパケットの前記受信バッファへの到着と前記パケットの前記受信バッファからの処理のための移動を、それぞれマルコフの入力および出力プロセスとして、かつ前記受信バッファを単一チャンネルのキューとしてモデリングすることを含む請求項２６に記載のコンテンツ受信プレーヤ装置。
【請求項２８】
前記許容不能に低いスレッショルドは空に等しく、前記周期的に前記コンテンツ受信プレーヤ装置の前記受信バッファが空になる確率を決定することは、周期的に、
１‐受信バッファの利用率
を決定することを含む請求項２６に記載のコンテンツ受信プレーヤ装置。
【請求項２９】
前記周期的に、１‐受信バッファの利用率を決定することは、周期的に、前記受信バッファへの前記コンテンツ・ストリームの平均のパケット間到着時間と、処理のための前記受信バッファからのパケットの移動の平均のパケット間出発時間の間における比を決定することを含む請求項２８に記載のコンテンツ受信プレーヤ装置。
【請求項３０】
さらに、前記受信バッファへの前記コンテンツ・ストリームのパケットの到着を監視することを含み、かつ前記比を決定することは、前記監視の観察に基づいて前記平均のパケット間到着時間を決定することを含む請求項２９に記載のコンテンツ受信プレーヤ装置。
【請求項３１】
前記動的に前記コンテンツ・ストリームを提供することは、前記確率が動作範囲の外であると決定された場合に常に前記コンテンツ受信プレーヤ装置が前記コンテンツ提供デバイスへ通知することを含む請求項２６に記載のコンテンツ受信プレーヤ装置。
【請求項３２】
動作方法が、
コンテンツ受信プレーヤ装置に対して第１のストリーミング・レートでコンテンツ・ストリームの部分を連続的にストリーミングし、前記コンテンツ受信プレーヤ装置が、受信した部分を前記コンテンツ受信プレーヤ装置の受信バッファ内に連続的にバッファし、かつそのバッファした部分を処理のために連続的に移動させ、
前記コンテンツ受信プレーヤ装置によって、周期的に前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定し、
前記決定された前記受信バッファが許容不能に低いスレッショルドに到達する確率を少なくとも部分的に基礎として、前記コンテンツ提供デバイスによって、前記第１のストリーミング・レートと異なる第２のストリーミング・レートで提供されるように前記コンテンツ・ストリームを動的に適応させること
を含むコンテンツ提供デバイス。
【請求項３３】
前記周期的に決定することは、前記コンテンツ・ストリームのパケットの前記受信バッファへの到着と前記パケットの前記受信バッファからの処理のための移動を、それぞれマルコフの入力および出力プロセスとして、かつ前記受信バッファを単一チャンネルのキューとしてモデリングすることを含む請求項３２に記載のコンテンツ提供デバイス。
【請求項３４】
前記許容不能に低いスレッショルドは空に等しく、前記周期的に前記コンテンツ受信プレーヤ装置の受信バッファが空になる確率を決定することは、周期的に、
１‐コンテンツ受信プレーヤ装置の受信バッファの利用率
を決定することを含む請求項３２に記載のコンテンツ提供デバイス。
【請求項３５】
前記周期的に、１‐コンテンツ受信プレーヤ装置の受信バッファの利用率を決定することは、周期的に、前記コンテンツ受信プレーヤ装置の前記受信バッファへの前記コンテンツ・ストリームの平均のパケット間到着時間と、処理のための前記受信バッファからのパケットの移動の平均のパケット間出発時間の間における比を決定することを含む請求項３４に記載のコンテンツ提供デバイス。
【請求項３６】
前記方法が、さらに、前記コンテンツ受信プレーヤ装置からフィードバック情報を受信することを含み、前記フィードバック情報が前記コンテンツ受信プレーヤ装置によって受信された累積パケットを含み、かつ前記比を決定することは、前記受信済み累積パケットのフィードバックを少なくとも部分的に基礎として前記平均のパケット間到着時間を決定することを含む請求項３５に記載のコンテンツ提供デバイス。
【請求項３７】
前記方法が、さらに、前記コンテンツ受信プレーヤ装置からフィードバック情報を受信することを含み、前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定することは、受信した前記フィードバック情報の少なくとも一部を少なくとも部分的に基礎として前記確率を決定することを含む請求項３２に記載のコンテンツ提供デバイス。
【請求項３８】
前記動的に前記第１のストリーミング・レートから第２のストリーミング・レートへ前記コンテンツのストリーミングを適応させることは、前記確率があらかじめ決定済みのシーリング・スレッショルドより大きいと決定された場合には、常に、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより低い第２のストリーミング・レートへ適応させることを含む請求項３２に記載のコンテンツ提供デバイス。
【請求項３９】
前記動的に適応させることは、前記確率があらかじめ決定済みのフロア・スレッショルドより低いと決定された場合には、常に、前記コンテンツ提供デバイスによって、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより高い第２のストリーミング・レートへ適応させることを含む請求項３２に記載のコンテンツ提供デバイス。
【請求項４０】
前記方法が、さらに、前記コンテンツ受信プレーヤ装置からフィードバック情報を受信することを含み、かつ前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定することは、受信した前記フィードバック情報の少なくとも一部を少なくとも部分的に基礎として前記確率を決定することを含む請求項３２に記載のコンテンツ提供デバイス。
【請求項４１】
動作方法が、
コンテンツ提供デバイスから受信プレーヤ装置へコンテンツを部分に分けて第１のストリーミング・レートで連続的にストリーミングし、
前記コンテンツ受信プレーヤ装置において、受信した前記部分を受信バッファ内に連続的にバッファし、
前記コンテンツ受信プレーヤ装置において、処理のために、前記受信バッファから前記バッファした部分を連続的に移動させ、
コンテンツ提供デバイスおよびコンテンツ受信プレーヤ装置のうちの少なくとも一方によって周期的に前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定し、
前記コンテンツ提供デバイスが、前記決定された前記受信バッファが許容不能に低いスレッショルドに到達する確率を少なくとも部分的に基礎として、動的に、前記第１のストリーミング・レートと異なる第２のストリーミング・レートへコンテンツ・ストリームの提供を適応させること
を含むシステム。
【請求項４２】
前記コンテンツ受信プレーヤ装置の前記受信バッファが許容不能に低いスレッショルドに到達する確率を決定することは、前記コンテンツ受信プレーヤ装置の前記受信バッファへのパケットの到着および処理のための前記受信バッファからの前記バッファされたパケットの移動を、それぞれマルコフの入力および出力プロセスとして、かつ前記受信バッファを単一チャンネルのキューとしてモデリングすることを含む請求項４１に記載のシステム。
【請求項４３】
前記許容不能に低いスレッショルドは空に等しく、前記コンテンツ受信プレーヤ装置の受信バッファが空になる確率を決定することは、
１‐コンテンツ受信プレーヤ装置の受信バッファの利用率
を決定することを含む請求項４１に記載のシステム。
【請求項４４】
前記動的に前記第１のストリーミング・レートから第２のストリーミング・レートへ前記コンテンツのストリーミングを適応させることは、前記確率があらかじめ決定済みのシーリング・スレッショルドより大きいと決定された場合には、常に、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより低い第２のストリーミング・レートへ適応させることを含む請求項４１に記載のシステム。
【請求項４５】
前記動的に前記第１のストリーミング・レートから第２のストリーミング・レートへ前記コンテンツのストリーミングを適応させることは、前記確率があらかじめ決定済みのシーリング・スレッショルドより低いと決定された場合には、常に、前記コンテンツのストリーミングを動的に、第１のストリーミング・レートから前記第１のストリーミング・レートより高い第２のストリーミング・レートへ適応させることを含む請求項４１に記載のシステム。
【請求項４６】
前記コンテンツ提供デバイスが、前記コンテンツ受信プレーヤ装置の前記受信バッファのために前記許容不能に低いスレッショルドの確率の決定を行い、さらに、前記コンテンツ受信プレーヤ装置がコンテンツ提供へフィードバック情報を提供し、コンテンツ提供デバイスが、それを、少なくとも部分的に前記コンテンツ受信プレーヤ装置の前記受信バッファのための前記許容不能に低いスレッショルドの確率の決定の基礎とすることを含む請求項４１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ・ストリーミングの分野に関する。より詳細に述べれば、本発明は、適応コンテンツ・ストリーミングに関する。
【背景技術】
【０００２】
マイクロプロセッサ、ネットワーキング、その関連テクノロジにおける進歩によって、サーバ‐クライアント・ベースのアプリケーションが幅広く配備され、採用されるようになってきた。特に、インターネット等の高速公衆ネットワークの進歩に伴って、大量の豊富なコンテンツがサービスに供され、ネットワーク・クライアントによる消費に利用されている。これらの豊富なコンテンツの多くは、消費のためにクライアント・デバイスへストリーミングされる。
【０００３】
ネットワーキングや関連テクノロジにおいては相当の進歩がなされているが、何らかの形式の帯域幅リザベーションが採用されない限り、インターネット等の高速のベスト・エフォート・ネットワークを介したコンテンツの配信は、ネットワーク状態の変化に起因して未だにいくらかの予測不能性を残している。
【０００４】
それらの『グリッチ』の顕在化を最小にするため、さらにユーザ経験、すなわち連続性とともに視覚的、聴覚的忠実度を向上させるため、一般に受信クライアント・デバイスに受信バッファが採用されており、受信したコンテンツ・ストリームのパケットをバッファして受信クライアント・デバイスのデコーダが充分なコンテンツを利用できることを保証している。さらに、コンテンツが、種々のストリーミング・レート（すなわちデータ・レート）における配信とデコーディングのためにエンコードされている。いくつかのアプリケーションにおいては、ストリーミング／データ・レートの選択された１つにおける配信が、パケット落ちレート等の１ないしは複数のメトリクスによって測定されるネットワーク状態に基づいて動的に適応される。
【０００５】
実際問題として、ネットワーク状態を基礎として代替ストリーミング／データ・レートの適応選択の合図をいつ行うかについての決定は、結局のところ比較的困難なタスクであることがわかった。決定は、配信品質のいずれの属性を測定するべきか、またいかにしてそれらを測定すれば適応プロセスのためのもっとも正確な信号を提供できるかについて行われなければならない。好ましくは、ソリューションがスケーラブルであり、既存のコンテンツ配信テクニックに適用されることである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
経験によって、種々の従来技術テクニックは、受け入れ可能ではあるが、継続して満足のゆくパフォーマンスを提供しないことが明らかにされた。したがって、適応コンテンツ・ストリーミングに対する改善されたアプローチが望まれている。
【発明を実施するための最良の形態】
【０００７】
以下、添付図面に例示した実施形態によって限定を意図することなく本発明を説明するが、それらの図面においては、類似の参照が類似の要素を示している。
【０００８】
本発明は、コンテンツ・プロバイダと受信装置のコンポーネント、それらに対して実施されるオペレーションの方法、そのように構成されたシステム、そのほかの関連する内容を含む。
【０００９】
以下の説明には、本発明の各種側面が説明されている。しかしながら当業者であれば明らかであろうが、本発明は、本発明のいくつかの側面だけまたはすべての側面を伴って実施することができる。説明の目的から、本発明の完全な理解を提供するために特定の数、材料、構成が示されている。しかしながら、当業者には明らかであるように、本発明は、これらの特定の詳細を伴うことなく実施することができる。一方、周知の特徴については、本発明の不明瞭化を避けるために省略もしくは簡略化されている。
【００１０】
［用語］
説明の一部は、コンテンツ・ストリーミングとキューイング理論における、たとえばパケット、エンコーディング、デコーディング、到着、出発、受信、移動といった用語を用いて、これら２つの技術の当業者による研究の実体をそれぞれの技術の別の当業者に伝えるために広く使用されている方法と一貫性を持って示される。これらの用語は、それぞれの技術の当業者には充分に理解されている。特に、コンテンツ・プロバイダまたは受信装置において、コンテンツと関連データは、プロセッサやそのサブシステムの電気的および／または光学的コンポーネントを介してストア、転送、結合、その他の操作が可能な電気、磁気、または光信号の形式をとることができる。
【００１１】
［セクションの見出し、説明ならびに実施形態の順序］
セクションの見出しは、純粋に読みやすさの向上のために使用しており、本発明を限定しあるいは狭めるものと解釈されるべきではない。
【００１２】
複数の離散的ステップとして順番に、本発明の理解をもっとも助ける形で種々のオペレーションを説明するが、説明の順序は、それらのオペレーションが必然的に順序依存であることを意味しているものと解釈されるべきではない。特に、それらのオペレーションは、呈示された順序で実施される必要はない。
【００１３】
『一実施形態において』という表現が繰り返し使用されている。この表現は、概して同一の実施形態を参照しないが、することもある。『包含する』、『有する』、『含む』という用語は、文脈から異なる解釈がもたらされない限り同義語とする。
【００１４】
［システム概要］
図１は、本発明のシステムの概要を一実施形態に従って例示している。これに例示されているとおり、ストリーマ１０４が装備されたコンテンツ・プロバイダ１０２が、バッファ１１３やデコーダ１１４を有する受信装置１１２と結合されており、受信装置１１２に対してストリーミング・コンテンツを提供している。本ストリーマ１０４は、たとえば、受信装置へストリーミングされるコンテンツをエンコーディングするためのエンコーダを含んでいる。
【００１５】
コンテンツは、各種のストリーミング・レートでストリーミングのためにエンコードされ、プロバイダ１０２は、希望に応じてより高い、またはより低いストリーミング・レートに動的に適応できるようになっている。ストリーミング・レートは、アプリケーション依存であり、本発明は、任意のストリーミング・レートで実施することができる。
【００１６】
受信装置１１２は、受信コンテンツをバッファするバッファ１１３を用いて、提供されるコンテンツを、所望のように、中断なく連続して味わうように処理するために、充分なコンテンツをデコーダ１１４が持てるようにする。一実施形態においては、コンテンツがパケット形式で提供され、連続的にバッファされ、その後バッファ済みパケットが処理のためにバッファ１１３から連続的に移動される。
【００１７】
本発明によれば、システムに、バッファ１１３が空になる尤度を決定する能力と、その尤度の決定の結果を少なくとも部分的に基礎としてストリーミング・レートを適応させる能力を備えている。バッファ１１３が空になる尤度を決定する能力は、ストリーミング・レートの適応における関連因子であり、ネットワークがコンテンツを配信しているレートがそのコンテンツをユーザに提供するために必要なデコード・レートに対して適切でないことをそのイベントが表示できることによる。
【００１８】
代替実施形態においては、本発明を、バッファ１１３が、空ではなく許容不能に低いスレッショルドに到達する尤度を決定する能力と、その尤度の決定の結果を少なくとも部分的に基礎としてストリーミング・レートを適応させる能力を備えたシステムで実現することもできる。何が許容不能に低いスレッショルドを構成するかについては、アプリケーションおよび／またはリスク許容度依存である。好ましくはこのスレッショルドを設定可能とする。
【００１９】
以下の説明から明らかになるとおり、バッファ１１３が空になる（または、許容不能に低いスレッショルドに到達する）尤度の決定は、受信装置１１２かコンテンツ・プロバイダ１０２のいずれかによって決定することができる。前者の場合においては、受信装置１１２がコンテンツ・プロバイダ１０２に対して決定の結果および／または適応の必要性もしくは提案を通知する。後者の場合においては、受信装置１１２がコンテンツ・プロバイダ１０２に対してフィードバックを提供し、プロバイダはそのフィードバックを少なくとも部分的に基礎として尤度の決定を行う。
【００２０】
詳細については後述するが、一実施形態においては、この尤度が、バッファ１１３が空になる（または、許容不能に低いスレッショルドに到達する）確率を決定することによって決定される。ストリーミング・レートは、この確率が『シーリング』オペレーション確率スレッショルドより高い場合に、より低いレートに対して適応され、この確率が『フロア』オペレーション確率スレッショルドより低い場合に、より高いレートに対して適応される。好ましくは、これらの確率スレッショルドもまた設定可能であり、その設定は、インストレーション／セットアップ、初期化、さらにはリアルタイムでオペレーションの間においてさえ行われることを許容する。設定／再設定は、この技術分野において公知の多数のテクニックのいずれか１つ、たとえばプログラマブル・レジスタを使用して行うことができる。
【００２１】
これについても詳細を後述するが、一実施形態においては、確率モデルを採用し、パケットのバッファ１１３への到着やそこからの移動を、それぞれマルコフの入力および出力プロセスとして、かつバッファ１１３を単一チャンネルのキューとしてモデリングすることによってこの確率が決定される。キューイング理論の表現を用いて言い換えれば、バッファリング・オペレーションがＭ／Ｍ／１キューとしてモデリングされる。代替実施形態においては、別のモデリング・テクニックを使用してバッファ１１３をモデリングすることができる。
【００２２】
コンテンツは、この技術分野で公知の多数のタイプの豊富なコンテンツの任意の１つとすることができ、限定を意図することなく述べれば、オーディオ、ビデオ、グラフィック、それらの組み合わせを含む。
【００２３】
コンテンツ・プロバイダ１０２と受信装置１１２は、この技術分野で公知の多数のコンテンツを提供する装置や受信する装置の任意の１つとすることができる。コンテンツ・プロバイダ１０２は、たとえば、ビデオ・サーバ、オーディオ・サーバ、あるいはその両方とすることができる。コンテンツ受信装置１１２は、たとえば、ドーター・カード、マザーボード、手のひらサイズのコンピューティング・デバイス、ワイヤレス携帯電話、携帯情報端末、ラップトップ・コンピューティング・デバイス、デスクトップ・コンピューティング・デバイス、セット‐トップ・ボックス、サーバ、コンパクト・ディスク・プレーヤ、ディジタル多用途ディスク・プレーヤ、テレビジョン、あるいはディスプレイ・モニタとすることができる。
【００２４】
バッファ１１３は、多数の揮発性もしくは不揮発性ストレージ・メディアの任意の１つを使用して実装することができ、限定を意図することなく述べれば、それにはディスク、フラッシュ・メモリ、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）が含まれる。受信は、受信済みパケットをバッファ１１３へ『書き込む』ことを含み、移動は、バッファされたパケットをバッファ１１３から『読み出す』ことを含む。
【００２５】
コンテンツ・プロバイダ１０２とレシーバ１１２は、有線もしくは無線接続を介して互いに結合することができる。この接続を、たとえばユニバーサル・シリアル・バス（ＵＳＢ）、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、あるいはそのほかのバス等のバス接続としてもよい。またこの接続を、たとえばイーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ）、トークン・リング、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）またはそのほかの類似の種類のネットワーク・プロトコル／伝送等のローカルまたはワイド・エリア・ネットワーク接続とすることができる。
【００２６】
［方法概要］
図２は、本発明の方法の概要を一実施形態に従って例示している。これに例示されているとおり、ブロック２０２において前述したようにシステム１００が、バッファ１１３が空になる（または、許容不能に低いスレッショルドに到達する）尤度を決定する。すでに触れたが、これは、受信装置１１２かコンテンツ・プロバイダ１０２のいずれかによって行うことができる。後者の場合においては、受信装置１１２がコンテンツ・プロバイダに対してフィードバック情報を提供するが、一実施形態においてはそれにバッファ１１３へのパケットの到着とそれらの出発、すなわちバッファ１１３からのパケットの移動を特定する情報が含まれる。続いてコンテンツ・プロバイダ１０２が、提供されたフィードバック情報を少なくとも部分的に基礎として尤度の決定を行う。
【００２７】
ブロック２０４においては、尤度の決定に応答してシステム１００が結果を考察し、バッファ１１３がすぐに空になりそうである（または、許容不能に低いスレッショルドに到達する）か否かを決定する。これについても同様に、受信装置１１２かコンテンツ・プロバイダ１０２のいずれかによって行うことができる。通常、必ずではないが、尤度決定と同一のエンティティによって行われる。
【００２８】
尤度決定の結果によって、バッファ１１３がすぐに空になりそうである（または、許容不能に低いスレッショルドに到達する）と示された場合に、システム１００は、ブロック２０６において、ストリーミング・レートをより低いストリーミング・レートへ動的に適応させる。その後プロセスがブロック２０２へ戻る。これにおいても、受信装置１１２かコンテンツ・プロバイダ１０２によって適応を『開始』することができる。通常、必ずではないが、尤度決定の結果を評価する同様のエンティティによって実行される。前者の場合においては、受信装置１１２がストリーミング・レートをより低くする要求、またはより低いストリーミング・レートの提案を行うことができる。
【００２９】
尤度決定の結果によって、バッファ１１３がすぐに空になりそうである（または、許容不能に低いスレッショルドに到達する）と示されなかった場合に、システム１００が、さらにブロック２０８において、バッファ１１３がすぐに空になりそうである（または、許容不能に低いスレッショルドに到達する）ことを示しているか否かについて決定する。これについても同様に受信装置１１２かコンテンツ・プロバイダ１０２のいずれかによって行うことができる。通常、必ずではないが、尤度決定と同一のエンティティによって行われる。
【００３０】
尤度決定の結果によって、バッファ１１３がすぐに空になりそうなこと（または、許容不能に低いスレッショルドに到達する）ことが示されなかった場合に、この実施形態のシステム１００は、ブロック２１０において、ストリーミング・レートをより高いストリーミング・レートへ動的に適応させる。その後プロセスがブロック２０２へ戻る。それにおいても、受信装置１１２かコンテンツ・プロバイダ１０２によって適応を『惹起』することができる。通常、必ずではないが、尤度決定の結果の評価と同じエンティティによって実行される。前者の場合においては、受信装置１１２はストリーミング・レートを増加する要求、またはより高いストリーミング・レートの要求するであろう。
【００３１】
尤度決定の結果によって、バッファ１１３が空になる（または、許容不能に低いスレッショルドに到達する）ことが非常にもっともらしいこと、もしくはバッファ１１３が空になる（または、許容不能に低いスレッショルドに到達する）ことが非常にもっともらしくないことのいずれも示されなかった場合に、システム１００はプロセスを繰り返し、ブロック２０２に戻ってプロセスを継続する。
【００３２】
この実施形態については、プロセスが継続的に繰り返される。代替実施形態においては、尤度の傾向に依存して一定期間または可変期間を伴って周期的に繰り返されるようにできる。
【００３３】
［尤度決定］
図３ａ〜図３ｃは、尤度決定オペレーションをさらに詳細に、一実施形態に従って例示している。すでに述べたとおり、この実施形態については、バッファ１１３が空になる（または、許容不能に低いスレッショルドに到達する）確率が計算される。より厳密に言えば、確率モデルを採用し、バッファ１１３へのパケットの到着と、バッファ１１３からの出発、すなわちパケットの移動を、それぞれマルコフの入力および出力プロセスとして、かつバッファ１１３を単一チャンネルのキューとしてモデリングすることによってこの確率が決定される。キューイング理論の表現を用いて言い換えれば、バッファリング・プロセスがＭ／Ｍ／１キューとしてモデリングされる。すでに述べたとおり、代替実施形態においては、別のモデリング・テクニックを使用してバッファをモデリングすることができる。
【００３４】
したがって、図３ａのブロック３０２においては、システム１００が、まず平均のパケット間到着時間を決定する。この決定の一実施形態を図３ｂに例示する。
【００３５】
前述したとおり、これは、受信装置１１２もしくはコンテンツ・プロバイダ１０２のいずれかによって行うことができる。一実施形態においては、このオペレーションが受信装置１１２によって行われるか、あるいはコンテンツ・プロバイダ１０２によって行われるかにかかわりなく、受信装置１１２は監視、すなわちバッファ１１３内へのパケットの到着を観察するようになっている。一実施形態においては、受信装置１１２は累積的な受信済みパケットをコンテンツ・プロバイダ１０２へレポートするようになっている。一実施形態においては、受信装置１１２が、ＲＴＰコントロール・プロトコル（ＲＴＣＰ）（ＲＦＣ１８８９，インターネット・エンジニアリング・タスク・フォース（Internet Engineering Task Force））に従ってそのレポートを作成する。一実施形態においては、より厳密には図３ｂの実施形態においては、コンテンツ・プロバイダ１０２が確率を計算し、コンテンツ・プロバイダ１０２が、次に示す比を計算することによってパケット間到着時間を決定する（ブロック３２６）。
（周期的な時間間隔）／（累積的な受信済みパケット）      （１）
【００３６】
一実施形態においては『周期的な時間間隔』が、ブロック３２２において、ＲＴＣＰに従って受信装置１１２によって提供される２つのレシーバ・レポート（ＲＲ）の間に経過した時間とされる。一実施形態においては、この期間にわたって受信されたパケットの数が、ブロック３２４において、送信済みパケットの数から失われたパケットの数を減じることによって決定される。この『期間』に送信されたパケットの数は、２つの連続するＲＲの『もっとも高い連続番号』の間の差に基づいて決定され（図４の４０２）、その期間に失われたパケットの数は、２つの連続するＲＲ内にレポートされた累積的なパケット損失の数の間の差に基づいて決定される（図４の４０４）。
【００３７】
図３ａに戻るが、この実施形態では、システム１００は、平均のパケット間到着時間が決定されると、ブロック３０４において平均のパケット間出発時間を決定する。この決定の一実施形態を図３ｃに例示する。
【００３８】
前述したとおり、これは、受信装置１１２またはコンテンツ・プロバイダ１０２のいずれかによって行うことができる。一実施形態においては、平均のパケット間出発時間が次に示す比を計算することによって決定される（ブロック３２６）。
（現在のコンテンツのエンコード／デコード・レート）
／（コンテンツのパケット・サイズ）      （２）
【００３９】
現在のコンテンツのエンコード／デコード・レートとコンテンツのパケット・サイズは、それぞれブロック３２２、３２４において決定される。これら両方の量は、コンテンツ・ストリーミングのプロセスの一部として、コンテンツ・プロバイダ１０２はもとより受信装置１１２にとっても容易に利用可能である。
【００４０】
再度図３ａに戻って参照を継続するが、ブロック３０６においてシステム１００は、バッファ１１３が空になる（または、許容不能に低いスレッショルドに到達する）確率を、確率モデルの中で前述した平均のパケット間到着時間と平均のパケット間出発時間を使用して計算する。より厳密に述べれば、この確率モデルは、バッファ１１３へのパケットの到着とバッファ１１３からの移動を、マルコフの入力および出力プロセスとして、かつバッファ１１３を単一チャンネルのキューとしてモデリングする。キューイング理論の表現を用いて言い換えれば、パケット・コンテンツのバッファリングがＭ／Ｍ／１キューとしてモデリングされる。
【００４１】
Ｍ／Ｍ／１モデルの単一キューが空になる確率は、次のように計算される。
Ｐ０＝１‐（ｌ／ｍ）
これにおいて、Ｐ０は『キュー』が空になる確率であり、
ｌ＝『キュー』へのコンテンツ・パケットの平均のパケット間到着時間、
ｍ＝『キュー』から移動するコンテンツ・パケットの平均の出発間時間である。
【００４２】
Ｍ／Ｍ／１モデルの単一キューが特定の低いスレッショルド（ｔ）に到達する確率は、同様に次のようにして計算することができる。
Ｐ（ｎ＜ｔ）＝Σ（１‐（ｌ／ｍ））（ｌ／ｍ）n
ｎ＝０，１，．．．ｔ
【００４３】
［利点］
したがって、以上の説明から理解できるように、本発明はコンテンツ・プロバイダ上における具体化に特に適応性がある。それに加えて、コンテンツ・プロバイダによって要求される情報を、ＲＴＣＰ等の標準プロトコルのレポートから引き出すことができる。さらに演算オーバーヘッドが低い。
【００４４】
結果として、これらの実施形態について、レガシー・受信装置を、ほとんどもしくはまったく修正を伴うことなくサポートすることができる。さらに、コンテンツ・プロバイダの更新の方が、厖大な数の受信装置の更新よりはるかに容易であり、本発明を特にスケーラブルなものとする。
【００４５】
［製品］
図５は、前述したストリーマ１０４および／またはデコーダ１１４のソフトウエア実施形態を具体化するプログラミング・インストラクションを有する記録可能メディア５００を含む製品を例示している。ストリーマ１０４および／またはデコーダ１１４のソフトウエア実施形態を具体化するプログラミング・インストラクションは、コンテンツ・プロバイダまたは受信装置１０２、１１２をプログラムし、コンテンツ・プロバイダまたは受信装置１０２、１１２に本発明の能力を提供する用途のために設計される。
【００４６】
この実施形態について、コンテンツ・プロバイダまたは受信装置１０２、１１２は、コンテンツ・プロバイダまたは受信装置１０２、１１２のソフトウエア実施形態を実装するプログラミング・インストラクションの作業コピーの少なくとも一部をストアするストレージ・メディア５０２、およびそのストレージ・メディア５０２と接続されており、そのプログラミング・インストラクションを実行する少なくとも１つのプロセッサ５０４を含む。
【００４７】
コンテンツ・プロバイダまたは受信装置１０２／１１２は、これまでに列挙した例示のデバイスまたはそれらに類似のそのほかのデバイスのうちの任意の１つとすることができる。製品５００は、たとえばディスケット、コンパクト・ディスク（ＣＤ）、ＤＶＤ、またはこれらに類似のそのほかのコンピュータ可読メディアとすることができる。別の実施形態においては、製品５００を、インターネット等の専用および／または公衆ネットワークを介してライン上にコンテンツ・プロバイダまたは受信装置１０２／１１２を配置する配信サーバとすることができる。一実施形態においては、製品５００がウェブ・サーバとなる。
【００４８】
［結論とまとめ］
このように、以上述べた説明から理解できるように、コンテンツの適応ストリーミングを行う改良された確率的アプローチが記述されている。
【００４９】
本発明は、以上の実施形態ならびに応用例に関して記述されているが、当業者であれば認識されるように、本発明はここに記述されている実施形態や応用例に限定されない。本発明は、付随する特許請求の範囲によって示される精神と範囲から逸脱することなく修正および変形を伴って実施することができる。
【００５０】
したがって、この説明は本発明に対する限定としてではなく、例示と考えられるべきである。
【図面の簡単な説明】
【００５１】
【図１】本発明の教示が組み込まれたコンテンツ・プロバイダおよび受信装置を有するシステムを一実施形態に従って例示したブロック図である。
【図２】本発明の方法の概要を一実施形態に従って例示したフローチャートである。
【図３ａ】受信装置のバッファが空になる（または、許容不能に低いスレッショルドに到達する）尤度を決定する確率的アプローチを一実施形態に従って例示したフローチャートである。
【図３ｂ】受信装置のバッファが空になる（または、許容不能に低いスレッショルドに到達する）尤度を決定する確率的アプローチを一実施形態に従って例示したフローチャートである。
【図３ｃ】受信装置のバッファが空になる（または、許容不能に低いスレッショルドに到達する）尤度を決定する確率的アプローチを一実施形態に従って例示したフローチャートである。
【図４】一実施形態に従った『レシーバ・レポート』の形式の受信装置からの一例のフィードバックを示した説明図である。
【図５】一実施形態に従って本発明を伴うデバイスを備えるべくコンテンツ・プロバイダおよび／または受信装置をプログラムする用途のために設計された、本発明のソフトウエアによる具体化を有する記録可能メディアを伴う製品を例示したブロック図である。
【図１】
0004620041.tif 000002
【図２】
0004620041.tif 000003
【図３ａ】
0004620041.tif 000004
【図３ｂ】
0004620041.tif 000005
【図３ｃ】
0004620041.tif 000006
【図４】
0004620041.tif 000007
【図５】
0004620041.tif 000008