(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5684920
(24)【登録日】2015年1月23日
(45)【発行日】2015年3月18日
(54)【発明の名称】適応ストリーミングのための様々なビットのビデオストリーム
(51)【国際特許分類】
H04N 21/462 20110101AFI20150226BHJP
H04N 21/2662 20110101ALI20150226BHJP
【FI】
H04N21/462
H04N21/2662
【請求項の数】9
【全頁数】16
(21)【出願番号】特願2013-543282(P2013-543282)
(86)(22)【出願日】2011年12月6日
(65)【公表番号】特表2014-502483(P2014-502483A)
(43)【公表日】2014年1月30日
(86)【国際出願番号】US2011063564
(87)【国際公開番号】WO2012078655
(87)【国際公開日】20120614
【審査請求日】2013年8月6日
(31)【優先権主張番号】12/961,375
(32)【優先日】2010年12月6日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506267178
【氏名又は名称】ネットフリックス・インコーポレイテッド
【氏名又は名称原語表記】NETFLIX, INC.
(74)【代理人】
【識別番号】100073184
【弁理士】
【氏名又は名称】柳田 征史
(74)【代理人】
【識別番号】100090468
【弁理士】
【氏名又は名称】佐久間 剛
(72)【発明者】
【氏名】ハント,ネイル ディー
【審査官】
赤穂 州一郎
(56)【参考文献】
【文献】
国際公開第2009/149100(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/76 − 5/956
19/00 −19/98
21/00 −21/858
(57)【特許請求の範囲】
【請求項1】
適応的にデジタルビデオコンテンツをダウンロードする方法において、
前記デジタルビデオコンテンツに関連付けられたシーン複雑度マップを受信して、前記デジタルビデオコンテンツの各部分に関連付けられている複雑度のレベルを特定するステップと、
前記デジタルビデオコンテンツに対応するエンコード済みビデオストリームであって、エンコード済みビデオストリームのそれぞれが、異なるビットレートに関連付けられ、かつ、前記デジタルビデオコンテンツの各部分に対して前記異なるビットレートでエンコードされたエンコード部分を含む複数のエンコード済みビデオストリームを特定するステップと、
前記シーン複雑度マップに基づいて、前記デジタルビデオコンテンツの第1の部分に関連する前記複雑度のレベルを決定するステップと、
前記デジタルビデオコンテンツの別の部分の再生中に、前記デジタルビデオコンテンツの前記第1の部分と関連付けられた前記複雑度のレベルに基づいて、前記デジタルビデオコンテンツの前記第1の部分に対応する第1のエンコード部分をダウンロードする、前記複数のエンコード済みビデオストリームのうちの第1のエンコード済みビデオストリームを動的に決定するステップと、
再生するために、前記第1のエンコード部分を前記第1のエンコード済みビデオストリームからコンテンツプレーヤ装置に存在するコンテンツバッファーにダウンロードするステップと、
を備え、
前記デジタルビデオコンテンツの第2の部分が前記デジタルビデオコンテンツの前記第1の部分と比較して低い複雑度のレベルを有し、前記第1のエンコード済みビデオストリームには前記第2の部分に対応するエンコード部分は含まれないことを特徴とするダウンロード方法。
【請求項2】
前記シーン複雑度マップに基づいて、前記デジタルビデオコンテンツの前記第1の部分に時間的に続く前記デジタルビデオコンテンツの第3の部分に関連付けられている前記複雑度のレベルを決定することを特徴とする請求項1記載のダウンロード方法。
【請求項3】
前記デジタルビデオコンテンツの前記第1の部分は、前記第3の部分の前記複雑度のレベルより複雑度のレベルが低く、前記第1のエンコード済みビデオストリームは、前記第3の部分に対応する第3のエンコード部分をダウンロードする第3のエンコード済みビデオストリームと関連付けられている前記ビットレートより低いことを特徴とする請求項2記載のダウンロード方法。
【請求項4】
前記決定するステップは、さらに前記コンテンツバッファーのサイズに基づいて、前記第1のエンコード部分をダウンロードする前記第1のエンコード済みビデオストリームを決定することを特徴とする請求項1記載のダウンロード方法。
【請求項5】
前記決定するステップは、さらに利用可能な帯域幅に基づいて、前記第1のエンコード部分をダウンロードする前記第1のエンコード済みビデオストリームを決定することを特徴とする請求項1記載のダウンロード方法。
【請求項6】
前記決定するステップは、さらに生成される表示の種類に基づいて、前記第1のエンコード部分をダウンロードする前記第1のエンコード済みビデオストリームを決定することを特徴とする請求項1記載のダウンロード方法。
【請求項7】
前記第2の部分に対応する第2のエンコード部分は、前記第1のエンコード済みビデオストリームに関連付けられたビットレートよりも低いビットレートに関連付けられている第2のエンコード済みビデオストリームからダウンロードすることを特徴とする請求項1記載のダウンロード方法。
【請求項8】
デジタルビデオコンテンツを適応的にダウンロードするコンピューターシステムとして機能させるための命令を格納したコンピューター読み取り可能な記録媒体であって、
プロセッサに、
前記デジタルビデオコンテンツに関連付けられたシーン複雑度マップを受信して、前記デジタルビデオコンテンツの各部分に関連付けられている複雑度のレベルを特定するステップと、
前記デジタルビデオコンテンツに対応するエンコード済みビデオストリームであって、エンコード済みビデオストリームのそれぞれが、異なるビットレートに関連付けられ、かつ、前記デジタルビデオコンテンツの各部分に対して前記異なるビットレートでエンコードされたエンコード部分を含む複数のエンコード済みビデオストリームを特定するステップと、
前記シーン複雑度マップに基づいて、前記デジタルビデオコンテンツの第1の部分に関連する前記複雑度のレベルを決定するステップと、
前記デジタルビデオコンテンツの別の部分の再生中に、前記デジタルビデオコンテンツの前記第1の部分と関連付けられた前記複雑度のレベルに基づいて、前記デジタルビデオコンテンツの前記第1の部分に対応する第1のエンコード部分をダウンロードする、前記複数のエンコード済みビデオストリームのうちの第1のエンコード済みビデオストリームを動的に決定するステップと、
再生するために、前記第1のエンコード部分を前記第1のエンコード済みビデオストリームからコンテンツプレーヤ装置に存在するコンテンツバッファーにダウンロードするステップと、
を実行させるための命令を格納したンピューター読み取り可能な記録媒体であり、
前記デジタルビデオコンテンツの第2の部分が前記デジタルビデオコンテンツの前記第1の部分と比較して低い複雑度のレベルを有し、前記第1のエンコード済みビデオストリームには前記第2の部分に対応するエンコード部分はいずれも含まれないことを特徴とするコンピューター読み取り可能な記録媒体。
【請求項9】
適応的にデジタルビデオコンテンツをダウンロードするダウンロードシステムであって、
再生アプリケーションと、コンテンツバッファーと、前記デジタルビデオコンテンツに関連付けられているとともに前記デジタルビデオコンテンツの各部分に関連付けられた複雑度のレベルを特定するシーンの複雑度マップとを格納するメモリ、および、
前記メモリに接続され、前記再生アプリケーションを実行するように構成するプロセッサ、
を備え、
前記プロセッサに、
前記デジタルビデオコンテンツに関連付けられた前記シーン複雑度マップを受信して、前記デジタルビデオコンテンツの各部分に関連付けられている複雑度のレベルを特定するステップと、
前記デジタルビデオコンテンツに対応するエンコード済みビデオストリームであって、エンコード済みビデオストリームのそれぞれが、異なるビットレートに関連付けられ、かつ、前記デジタルビデオコンテンツの各部分に対して前記異なるビットレートでエンコードされたエンコード部分を含む複数のエンコード済みビデオストリームを特定するステップと、
前記シーン複雑度マップに基づいて、前記デジタルビデオコンテンツの第1の部分に関連する前記複雑度のレベルを決定するステップと、
前記デジタルビデオコンテンツの別の部分の再生中に、前記デジタルビデオコンテンツの前記第1の部分と関連付けられた前記複雑度のレベルに基づいて、前記デジタルビデオコンテンツの前記第1の部分に対応する第1のエンコード部分をダウンロードする、前記複数のエンコード済みビデオストリームのうちの第1のエンコード済みビデオストリームを動的に決定するステップと、
再生するために、前記第1のエンコード部分を前記第1のエンコード済みビデオストリームから前記コンテンツバッファーにダウンロードするステップと、
を実行させるダウンロードシステムであり、
前記デジタルビデオコンテンツの第2の部分が前記デジタルビデオコンテンツの前記第1の部分と比較して低い複雑度のレベルを有し、前記第1のエンコード済みビデオストリームには前記第2の部分に対応するエンコード部分はいずれも含まれないことを特徴とするダウンロードシステム。
【発明の詳細な説明】
【0001】
この出願は、2010年12月6日に出願され、ここに援用される米国特許出願第12/961,375号の利益を主張する。
【技術分野】
【0002】
本発明は、一般的に、デジタルメディアに関するものであり、具体的には適応ストリーミング(最適化配信)による可変ビットのビデオストリームに関連するものである。
【背景技術】
【0003】
従来、デジタルコンテンツ配信システムは、コンテンツサーバー、コンテンツプレーヤ、および、コンテンツプレーヤにコンテンツサーバーを接続する通信ネットワークを備えている。コンテンツサーバーは、コンテンツサーバーからコンテンツプレーヤにダウンロードされるデジタルコンテンツのファイルを格納するように構成される。各デジタルコンテンツファイルは、ユーザーによく知られた「風と共に去りぬ」等の特定の識別タイトルに対応している。デジタルコンテンツファイルには、通常、再生する時間に従った順番で並べられたコンテンツデータが含まれ、オーディオデータ、ビデオデータ、またはその組み合わせで構成される。
【0004】
コンテンツプレーヤは、ユーザーが再生するために選択しているタイトルの要求に応じて、デジタルコンテンツのファイルをダウンロードして再生するように構成される。デジタルコンテンツファイルを再生する処理には、オーディオおよびビデオデータをエンコードしてオーディオおよびビデオ信号に変換する処理が含まれ、その信号がスピーカーサブシステムとビデオサブシステムを備えた表示システムを駆動する。通常、再生には、「ストリーミング」として知られている技術が用いられ、コンテンツサーバーが順番にコンテンツプレーヤへデジタルコンテンツファイル送信し、コンテンツプレーヤでデジタルコンテンツファイルを構成するコンテンツデータを受信しながらデジタルコンテンツファイルを再生する。通信ネットワーク内での待ち時間と帯域幅の変化を考慮するために、コンテンツバッファーは、実際にコンテンツデータが再生される前に受信したコンテンツデータを待ち行列に入れる。ネットワークの輻輳の発生した際は、それが、コンテンツデータが利用可能な帯域幅の減小につながり、コンテンツバッファーに追加されるコンテンツデータが少なくなり、特定の再生ビットレートで再生をサポートする際に、待ち行列から取り出されるコンテンツデータの流れが滞る可能性がある。しかしながら、ネットワークの帯域幅が高い間は、コンテンツバッファーが補充され、コンテンツバッファーが、通常、再び一杯になるまでは、追加のバッファー時間が加えられる。実用的なシステムでは、コンテンツバッファーに、数秒から1分以上にわたるタイムスパンに対応するコンテンツデータが持ち行列に入る可能性がある。
【0005】
コンテンツサーバーに格納されている各デジタルコンテンツファイルは、通常、特定の再生ビットレートでエンコードされる。再生を開始する前に、コンテンツプレーヤはコンテンツサーバーで利用可能な帯域幅を測定し、測定された利用可能な帯域幅でサポートすることが可能なビットレートのデジタルコンテンツファイルを選択する。再生品質を最大にするには、通常、測定された帯域幅を超えない最も高いビットレートのデジタルコンテンツファイルを選択する。通信ネットワークは、ビットレートの要求を満たすように、選択したデジタルコンテンツのファイルをダウンロードするのに適した帯域幅を提供することが可能な範囲で、満足がいくように再生が進められる。しかし、実際には、通信ネットワークに接続されている異なる装置が独立したタスクを実行しているので、通信ネットワークの利用可能な帯域幅は常に変化する。
【0006】
ネットワークの状態の変動に対応するために、タイトル毎に異なるビットレートを持つ複数のビデオストリームが存在する適応ストリーミングを実装するようにしてもよい。ネットワークの状態が変化すると、コンテンツプレーヤは、ネットワークの状況に応じてビデオストリームを切り替えるようにしてもよい。例えば、ビデオデータは、ネットワークの状態が良好なときは、高いビットレートでエンコードされたビデオストリームからダウンロードするようにし、ネットワークの状態が悪化したときには、低いビットレートでエンコードされたビデオストリームから次のビデオデータをダウンロードするようにしてもよい。
【0007】
可変ビットレート(VBR)技術を用いて、ビデオストリームをエンコードする際に、適応ストリーミングのソリューションを実装すると問題が発生する。VBRビデオストリームでは、帯域幅またはファイルが使用するスペースの使用率を最適化するように、これらのビデオのシーンの複雑度に応じて異なるビデオのシーンをエンコードする。複雑度が高いシーンのビットを「セーブ」するために、複雑度が低いシーンはより低いビットレートでエンコードされる。VBRビデオストリーム全体にわたる平均ビットレートは、そのため、VBRビデオストリーム内の特定のシーンのビットレートを反映しているのではない。これが、適応ストリーミングが実装されたときに問題を引き起こす。なぜなら、平均ビットレートに基づいて、コンテンツプレーヤがエンコード済のビデオストリームを選択するが、エンコード済みのビデオストリームからダウンロードしたビデオデータの特定の部分は、平均ビットレートよりもはるかに高い、またははるかに低いビットレートでエンコードされた可能性がある。このようなシナリオでは、エンコード済みのビデオストリーム間で切り替えが適切にまたは効果的に行うことが出来ず、再生の品質を全体に引き下げる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述で説明したように、この分野で必要とされているものは、デジタルコンテンツのシーンの複雑度に基づいて、コンテンツプレーヤにデジタルコンテンツをダウンロードするための手法である。
【課題を解決するための手段】
【0009】
本発明の一実施形態では、適応的にデジタルビデオコンテンツをダウンロードする方法について説明する。
【0010】
本発明の方法は、前記デジタルビデオコンテンツに関連付けられたシーン複雑度マップを受信して、前記デジタルビデオコンテンツの各部分に関連付けられている複雑度のレベルを特定するステップと、前記デジタルビデオコンテンツに対応するエンコード済みビデオストリームであって、エンコード済みビデオストリームのそれぞれが、異なるビットレートに関連付けられ、かつ、前記デジタルビデオコンテンツの各部分に対して前記異なるビットレートでエンコードされたエンコード部分を含む複数のエンコード済みビデオストリームを特定するステップと、前記シーン複雑度マップに基づいて、前記デジタルビデオコンテンツの第1の部分に関連する複雑度のレベルを決定するステップと、デジタルビデオコンテンツの別の部分の再生中に、前記デジタルビデオコンテンツの前記第1の部分と関連付けられた複雑度に基づいて、前記デジタルビデオコンテンツの前記第1の部分に対応する前記第1のエンコード部分をダウンロードする、前記複数のエンコード済みビデオストリームに含まれる第1のビデオストリームを動的に決定するステップと、再生するために、前記第1のエンコード部分を前記第1のエンコード済みビデオストリームからコンテンツプレーヤ装置に存在するコンテンツのバッファーにダウンロードするステップとを備える。
【0011】
開示された技術の利点の1つは、ビデオデータの各部分の複雑度のレベルに基づいて異なる一定のビットレートでエンコードされたストリームからビデオデータの各部を選択することによって、様々なビットでエンコードされたストリームが、再生時にコンテンツプレーヤ装置によって動的に生成される。このような技術により、ビデオデータの再生を最適化し、現在の状況とシーンの複雑度に基づいてビデオストリームを最高の品質で再生することが可能になる。
【図面の簡単な説明】
【0012】
本発明の特徴を詳細に理解することができるように、実施形態と添付された図面を参照して、上記の簡単に要約された発明のより具体的な説明を行う。ただし、添付の図面は、この発明の単に典型的な実施形態を示すものであり、その範囲に制限されるものではなく、本発明は同様に有効な他の実施形態を許容することが可能である。
【
図1】本発明の1以上の態様を実装するように構成されたコンテンツ配信システムを示す図。
【
図2】本発明の一実施形態による
図1のエンコードサーバーの詳細な図。
【
図3】本発明の一実施形態による
図2の複雑度マップ生成部によって生成されたシーン複雑度マップを示す図
【
図4】本発明の一実施形態によるビデオスリームエンコード部によって生成された様々なビデオストリームを示す図。
【
図5】本発明の一実施形態による
図1のコンテンツプレーヤの詳細な図。
【
図6】本発明の一実施形態による、シーンの複雑度に基づいて、複数のビデオストリームの1つから再生する次のシーンを選択するための方法のステップを示すフローチャート。
【発明を実施するための形態】
【0013】
以下の説明では、本発明をより理解することができるように、多くの具体的な細部について説明する。ただし、本発明は1以上のこれらの具体的な細部でなくとも実施できることは、当業者にとって明らかである。他の例では、本発明が不明瞭になるのを避けるために周知の特徴については説明しない。
【0014】
図1に、本発明の1つ以上の態様を実装するように構成したコンテンツ配信システム100を示す。図に示すように、コンテンツ配信システム100は、エンコードサーバー102、通信ネットワーク104、コンテンツ配信ネットワーク(CDN)106、およびコンテンツプレーヤ108を備える。
【0015】
通信ネットワーク104は、ルーターやスイッチ等の複数のネットワーク通信システムを備え、エンコードサーバー102とCDN106とコンテンツプレーヤ108間のデータ通信を容易にするように構成される。当業者であれば、通信ネットワーク104を構築するために、周知のインターネット通信ネットワーク上で展開される技術を含む、多くの技術的に実現可能な技術が存在することを理解されるであろう。
【0016】
エンコードサーバー102は、適応ストリーミング用のデジタルコンテンツファイルに関連付けられているビデオストリームをエンコードするように構成されたコンピューターシステムである。
図2および
図3を用いて、適応ストリーミング用のビデオストリームをエンコードするためのエンコードのワークフローについてより詳細に説明する。コンテンツ配信システム100は、1つ以上のエンコードサーバー102を備え、各エンコードサーバー102は、ビデオストリームのエンコードに必要とされる全ての機能を実行するように構成される、または、各エンコードサーバー102は、各ビデオストリームをエンコードするために必要な特定の機能を実行するように構成される。エンコード済みのビデオストリームで構成されているデジタルコンテンツファイルをコンテンツプレーヤ108に配信するために、通信ネットワーク104経由でCDN106によって取り出される。
【0017】
CDN106は1つ以上のコンピューターシステムで構成され、コンピューターシステムは、コンテンツプレーヤ108からのデジタルコンテンツファイルに対する要求をダウンロードできるように構成される。デジタルコンテンツファイルは、コンピューターシステムにアクセス可能な大容量記憶システム上に置かれるようにしてもよい。大容量記憶システムには、これらに限定されるものではないが、直接接続型ストレージ、ネットワーク接続されているファイルスレージ、または、ネットワーク接続されたブロックレベルのストレージ等で構成されてもよい。デジタルコンテンツファイルは、フォーマットされ、任意の実現可能な技術が用いられた大容量記憶システムに格納される。周知のハイパーテキスト転送プロトコル(HTTP)等のデータ転送プロトコルが、デジタルコンテンツファイルをコンテンツサーバーから、コンテンツプレーヤ108にダウンロードするために用いられるようにしてもよい。
【0018】
コンテンツプレーヤ108は、コンピューターシステム、セットトップボックス、携帯電話のようなモバイル装置、または、他の技術的に適したコンピューティングプラットフォーム等で構成され、それぞれ、ネットワーク接続機能を有し、かつ、ビデオフレームを表示し音響出力を行うための表示装置とスピーカー装置が接続または装備される。コンテンツプレーヤ108は、適応ストリーミング用に構成され、すなわち、特定の再生ビットレートでエンコードされたビデオストリームの単位でダウンロードされ、それに続くビデオストリームの単位のダウンロードは、通信ネットワーク104内で使われている帯域幅の条件に応じて、異なる再生ビットレートでエンコードされたものに切り替える。通信ネットワーク104内の利用可能な帯域幅が制限されるに従って、コンテンツプレーヤ108は低い再生ビットレートでエンコードされたビデオストリームを選択するようにしてもよい。利用可能な帯域幅が増加するに従って、高い再生ビットレートでエンコードされたビデオストリームを選択するようにしてもよい。
【0019】
上記の説明では、コンテンツ配信システム100は1つのコンテンツプレーヤ108とCDN106で示されているが、
図1の構造は、単に模範的な発明の実施例であることを当業者であれば理解されるであろう。他の実施形態では、任意の数のコンテンツプレーヤ108またはCDN106で構成するようにしてもよい。したがって、いかなる方法において本発明の範囲を
図1に制限するものではない。
【0020】
図2は、本発明の一実施形態による、
図1のエンコードサーバー102をより詳細に示す図である。図に示すように、エンコードサーバー102は、中央処理装置(CPU)202、システムディスク204、入出力(I/O)装置用インターフェイス206、ネットワークインターフェース208、相互接続部210およびシステムメモリ212を備えている。
【0021】
CPU202は、システムメモリ212に保存されたプログラムの命令を取得し実行するように構成する。同様に、CPU202は、アプリケーションデータを格納し、システムメモリ212からアプリケーションデータを取得するように構成する。相互接続部210は、CPU202、システムディスク204、I/O装置用インターフェイス206、ネットワークインターフェース208、およびシステムメモリ212間で行われるプログラム命令とアプリケーションデータ等のデータの送信が容易になるように構成する。I/O装置用インターフェイス206は、I/O装置222から入力データを受け取り、相互接続部210を経由してCPU202へ入力データを送信するように構成する。例えば、I/O装置222は、1つ以上のボタン、キーボード、マウスまたは他のポインティングデバイスで構成されるようにしてもよい。また、I/O装置用インターフェイス206は、CPU202から相互接続部210を介して出力データを受け取り、出力データをI/O装置222に送信するように構成する。ハードディスクドライブやフラッシュメモリ記憶ドライブ等のシステムディスク204は、エンコードされたビデオストリーム等の変化しないデータを格納するように構成する。エンコードされたビデオストリームは、通信ネットワーク104を介してCDN106によって取得することが可能である。ネットワークインターフェース208は、相互接続部210を経由してCPU202に接続され、通信ネットワーク104を介してパケットデータを送受信するように構成する。一実施形態では、ネットワークインターフェース208は、周知の標準のイーサネット(登録商標)に準拠して動作するように構成する。
【0022】
システムメモリ212には、適応ストリーミングのために、特定のコンテンツのタイトルに関連付けられた1つ以上のビデオストリームをエンコードするための命令を含むソフトウェアが記憶される。
図2に示すように、これらのソフトウェアは、複雑度マップ生成部214、ビデオストリームエンコード部216、ビデオストリームシーケンスヘッダーインデックス(SHI)生成部218を備える。
【0023】
特定のビデオストリームに対して、複雑度マップ生成部214は、ビデオストリームを分析して、ビデオストリームの異なる部分(ここでは「シーン」として参照される)の動画コンテンツの複雑度を決定する。複雑なシーンは、通常、著しくフレームからフレームへ変化するシーンで、例えば、アクション映画の車のクラッシュシーンです。逆に、単純なシーンは、通常、フレームからフレームへ変化がないシーンで、例えば、平穏な夜の水域のシーンです。複雑度マップ生成部214は、予め経験に基づいて決定された情報に基づいて、ビデオストリームを分析するようにしてもよい。分析に基づき、複雑度マップ生成部214が、
図3を用いて以下により詳細に説明するシーン複雑度マップを生成する。
【0024】
ビデオストリームエンコード部216は、ビデオストリームを特定の再生ビットレートでエンコードするエンコード操作を実行し、エンコードされたビデオストリームをVC1のような特定の規格に準拠したビデオコードに変換して、適応ストリーミング用に構成する。別の実施形態では、MPEGやH.264のような別の規格に準拠したビデオコードに変換するようにビデオストリームをエンコードすることも可能である。操作において、特定のビデオストリームのために、ビデオストリームエンコード部216は、ビデオストリームを異なる一定のビットレートでエンコードして複数のエンコード済みビデオストリームを生成し、各エンコード済みビデオストリームは、異なる一定のビットレートに対応付けられ、つまり、異なる品質を持つ。ビデオストリームエンコード部216によって生成されたエンコード済みビデオストリームには、写真のグループ(group of photo:GOP、各GOPはビデオデータの複数のフレームで構成される。)の順序が含まれる。
【0025】
SHI生成部218は、エンコード済みの各ビデオストリームに対応してシーケンスヘッダーのインデックスを生成する。シーケンスヘッダーのインデックスを生成するために、SHI生成部218は、最初に、エンコード済みビデオストリームを検索して、エンコード済みビデオストリーム内の異なる複数のGOPに対応するキーフレームを捜す。キーフレームに含まれるシーケンスヘッダーで指定されたシーケンス開始コードに基づいて、SHI生成部218によってキーフレームの位置を見つけることができる。特定されたキーフレームのそれぞれに対応するGOPに対して、SHI生成部218は、シーケンスヘッダーのインデックス内にスイッチポイントを定義し、そのシーケンスヘッダーのインデックスに、(i)GOPに対応するキーフレームを含むデータパケットを特定するデータパケット番号と、(ii)GOPに対応する再生オフセットが格納される。再び、GOPに対応する再生オフセットは、エンコード済みビデオストリームに収録された連続する複数のGOPの中のそのGOPの位置に基づいて決定される。
【0026】
エンコードサーバー102は、上記の方法を用いて、同じコンテンツのタイトルに関連付けられるとともに異なる再生ビットレートでエンコードされた複数のエンコード済みビデオストリームを生成する。ここに記載されたエンコード処理によれば、異なるエンコードが行われた複数のビデオストリームに亘って、複数のGOPが同じ再生時間間隔で割り当てられ、かつ、異なるエンコードが行われた複数のビデオストリーム間で対応する複数のGOPに、同じ再生オフセットが割り当てられることが、保証される。したがって、特定のコンテンツのタイトルに関連付けられた一つのエンコード済みビデオストリームに含まれるシーケンスヘッダーに定義された各スイッチポイントに対応するスイッチポイントが、同じコンテンツのタイトルに関連付けられた他のエンコード済みビデオストリームのそれぞれに含まれるシーケンスヘッダーに定義される。
【0027】
同じコンテンツのタイトルに関連付けられた2つのエンコード済みビデオストリームのシーケンスヘッダーのインデックスに基づいて、コンテンツプレーヤは、シーケンスヘッダーのインデックス内の適切なスイッチポイントを特定して、エンコード済みビデオストリーム間を効率的に切り替えることができる。現在再生中のエンコード済みビデオストリームと新しいエンコード済みビデオストリームを切り替える時に、コンテンツプレーヤ108のようなコンテンツプレーヤは、新しいエンコード済みビデオストリームに含まれるシーケンスヘッダーのインデックスを検索して、次に再生するGOPに対応する再生オフセットを規定している特定のスイッチポイントの位置を捜す。コンテンツプレーヤは、そこで、再生するために特定のスイッチポイントで新しいエンコード済みビデオストリームに切り替え、指定されたデータパケットに格納されているGOPをダウンロードする。例えば、エンコード済みビデオストリームに対して各GOPに3秒の再生時間間隔が割り当ててあれば、0秒の再生オフセットが割り当てられている最初のGOPが現在再生されている場合には、次に再生するGOPは3秒の再生オフセットが割り当てられる。このようなシナリオでは、コンテンツプレーヤは、新しいエンコード済みストリームシーケンスのヘッダーを検索して3秒の再生オフセットが規定されている特定のスイッチポイントの位置を捜す。特定のスイッチポイントの位置が一度見つけられると、コンテンツプレーヤは再生するためにスイッチポイントで特定されたデータパケットに格納されているGOPをダウンロードする。
【0028】
実際には、1つのGOPに複数のシーンまたはシーンの一部が含まれる。便宜上、本発明に関して、エンコード済みビデオストリーム内のGOPではなく、エンコード済みビデオストリーム内の特定のシーンに注目して、以下説明する。コンテンツプレーヤ108等のコンテンツプレーヤが、対応するシーケンスヘッダーのインデックスで定義されたGOPの境界に応じて、異なるエンコードが行われたビデオストリーム間を切り替え、スイッチング処理はGOP内に含まれているシーンの複雑度の量を考慮にいれる。このスイッチング処理は、以下にさらに詳しく説明する。
【0029】
図3は、本発明の一実施形態において、
図2の複雑度マップ生成部214によって生成されたシーン複雑度マップ302を示す。図に示すように、シーン複雑度マップ302は、ビデオストリーム内の異なるシーン304の複雑度のレベルを規定する。例えば、シーン304(0)および304(4)のそれぞれはシーンの複雑度は中程度、シーン304(1)はシーンの複雑度は低く、シーン304(2)および304(3)のそれぞれはシーンの複雑度は高い。また、シーン複雑度マップ302の他の実施形態も、この発明で検討される。別の実施形態では、シーンの複雑度のレベルは、数値ベースかつ/またはより細かい単位であらわされる。本発明の目的のため、シーン複雑度マップ302は、ビデオストリーム内の各シーンの複雑度のレベルを規定し、特定のシーンがビデオストリーム内の特定のフレームに対応する。
【0030】
図4は、本発明の一実施形態における、ビデオストリームエンコード部216によって生成された異なるエンコードが行われたビデオストリーム404を示す。図に示すように、各エンコード済みのビデオストリーム404は、同じタイトルと関連付けられ、かつ、
図3に示すシーン304が複数含まれる。さらに、各エンコード済みのビデオストリーム404は異なるビットレートでエンコードされる。エンコード済みのビデオストリーム404(0)は、エンコード済みのビデオストリーム404(1)のビットレートより低いビットレートでエンコードされる。同様に、エンコード済みのビデオストリーム404(1)は、エンコード済みのビデオストリーム404(2)のビットレートより低いビットレートでエンコードされる。また、図に示すように、各エンコード済みビデオストリーム404内のシーン304毎のビット割り当ては、一定である。例えば、エンコード済みビデオストリーム404(0)内の各シーン304は、ビット割り当て406によって規定されるビットを割り当てる。同様に、エンコード済みビデオストリーム404(1)内の各シーン304は、ビット割り当て408によって特定されるビットを割り当て、エンコード済みのビデオストリーム404(2)内の各シーン304はビット割り当て410によって特定されるビットを割り当てる。重要なのは、ビット割り当て406、408および410は、対応するエンコード済みビデオストリーム404に関連付けられているビットレートによって変わり、ビット割り当て406がビット割り当て408よりも小さく、ビット割り当て408はビット割り当て410よりも小さい。
【0031】
図5は、本発明の一実施形態における
図1のコンテンツプレーヤ108のより詳細な図である。図に示すように、コンテンツプレーヤ108は、これに制限されるものではないが、中央処理装置(CPU)510、グラフィックスサブシステム512、入出力(I/O)装置用インターフェイス514、ネットワークインターフェース518、相互接続部520、メモリサブシステム530を備える。また、コンテンツプレーヤ108に、大容量記憶部516を備えるようにしてもよい。
【0032】
CPU510は、メモリサブシステム530に格納されたプログラミング命令を取得し実行するように構成される。同様に、CPU510は、メモリサブシステム530内に存在するアプリケーションデータを格納および取得するように構成する。相互接続部520は、CPU510、グラフィックスサブシステム512、I/O装置用インターフェイス514、大容量記憶部516、ネットワークインターフェース518、およびメモリサブシステム530間で、プログラム命令とアプリケーションデータ等のデータの送信が容易になるように構成する。
【0033】
グラフィックスサブシステム512は、ビデオデータのフレームを生成し、表示装置550へビデオデータのフレームを送信するように構成する。一実施形態では、グラフィックスサブシステム512は、CPU510と共に、集積回路に統合されるようにしてもよい。表示装置550は、表示する画像を生成するために技術的に可能な手段で構成されたものであればよい。例えば、表示装置550は、液晶ディスプレイ(LCD)技術、ブラウン管技術、発光ダイオード(LED)ディスプレイ技術(有機又は無機)を用いたものであってもよい。入出力(I/O)装置用インターフェイス514は、ユーザー用I/O装置552から入力データを受け取り、CPU510へ相互接続部520を経由して入力データを送信するように構成する。例えば、ユーザー用I/O装置552は、1つ以上のボタン、キーボード、マウスまたは他のポインティングデバイスで構成されるようにしてもよい。また、I/O装置用インターフェイス514は、また、電気的なオーディオ出力信号を生成するよう構成されたオーディオ出力部を備える。ユーザー用I/O装置552は、電気的なオーディオ出力信号に応じた音響出力を生成するスピーカーで構成される。別の実施形態では、表示装置550にスピーカーが含まれるようにしてもよい。テレビは、ビデオフレームを表示して音響出力を生成することができる、この分野でよく知られている装置の一例である。ハードディスクドライブやフラッシュメモリ記憶ドライブ等の大容量記憶部516は、変化しないデータを格納するように構成される。ネットワークインターフェース518は、通信ネットワーク150を介してデータのパケットを送受信するように構成する。一実施形態では、ネットワークインターフェース518は、周知の「イーサネット」標準を用いて通信するように構成する。ネットワークインターフェース518はCPU510に相互接続部520を介して接続される。
【0034】
メモリサブシステム530は、オペレーティングシステム532、ユーザーインターフェイス534、および再生アプリケーション536を構成するプログラミング命令とデータとを備える。オペレーティングシステム532は、ネットワークインターフェース518、大容量記憶部516、I/O装置用インターフェイス514、およびグラフィックスサブシステム512を含むハードウェアデバイスの管理等のシステム管理機能を実行する。また、オペレーティングシステム532は、ユーザーインターフェイス534および再生アプリケーション536に対して、プロセス管理およびメモリ管理のモデルを提供する。ユーザーインターフェイス534は、コンテンツプレーヤ108とユーザーが対話入力を行うためのウィンドウやオブジェクトのメタファ等の特定の構造を提供する。当業者であれば、コンテンツプレーヤ108に組み込むのに適した、周知の様々なオペレーティングシステムとユーザーインターフェイスであればよいことを理解されるであろう。
【0035】
再生アプリケーション536は、CDN106からネットワークインターフェース518を介してデジタルコンテンツを取得し、グラフィックスサブシステム512を介してデジタルコンテンツを再生するように構成する。グラフィックスサブシステム512は、画像に変換されたビデオ信号を表示装置550に送信するように構成する。通常の操作では、再生アプリケーション536は、特定のタイトルを再生するためにユーザーから要求を受け取る。再生アプリケーション536は、CDN106から要求されたタイトルに関連付けられている異なるエンコードが行われた複数のビデオストリームを特定する。ここで、各エンコード済みビデオストリームは、異なる再生ビットレートでエンコードされている。再生アプリケーション536は、要求されたタイトルに関連付けられたエンコード済みビデオストリームの位置を見つけた後、再生アプリケーションはCDN106から要求されたタイトルに関連付けられている各エンコード済みビデオストリームに対応するシーケンスヘッダーのインデックスをダウンロードする。本明細書で既に説明したよう、エンコード済みビデオストリームに関連付けられたシーケンスヘッダーのインデックスには、デジタルコンテンツファイルに含まれるエンコード済みシーケンスに関連する情報が含まれている。
【0036】
一実施形態では、再生するためのセットアップ時間が最小になるように、再生アプリケーション536は、要求されたタイトルに関連付けられた最も低い再生ビットレートでエンコードされたエンコード済みシーケンスで構成されるデジタルコンテンツファイルのダウンロードから始める。単に説明のために、デジタルコンテンツファイルは、要求されたタイトルと関連付けられた最も低い再生ビットレートでエンコードされたエンコード済みシーケンスで構成されているものとする。要求されたデジタルコンテンツファイルは、ファーストイン・ファーストアウトの待ち行列になるように構成されたコンテンツバッファー543にダウンロードされる。一実施形態では、ダウンロードされた各データの単位は、ビデオデータの単位またはオーディオデータの単位で構成される。要求されたデジタルコンテンツファイルに関連付けられているビデオデータの単位でコンテンツプレーヤ108にダウンロードされると、ビデオデータの単位でコンテンツバッファー543にプッシュされる。同様に、要求されたデジタルコンテンツファイルに関連付けられたオーディオデータの単位で、コンテンツプレーヤ108にダウンロードされると、オーディオデータの単位でコンテンツバッファー543にプッシュされる。一実施形態では、ビデオデータの単位でコンテンツバッファー543内のビデオバッファー546に格納され、オーディオデータの単位でコンテンツバッファー543内のオーディオバッファー544に格納される。
【0037】
ビデオデコーダー548は、ビデオバッファー546からビデオデータの単位で読み取り、ビデオデータの単位で固定間隔の再生時間に対応するビデオフレームのシーケンスに変換する。ビデオバッファー546からビデオデータの単位で読み出すことで、効率的にビデオバッファー546(かつ、コンテンツバッファー543から)の待ち行列からビデオデータの単位で取り出される。ビデオフレームのシーケンスは、グラフィックスサブシステム512で処理され、表示装置550に送信される。
【0038】
オーディオデコーダー542は、オーディオバッファー544からオーディオデータの単位で読み取り、オーディオデータの単位で、一般的にビデオフレームのシーケンスの時間と同期させたオーディオサンプルのシーケンスに変換する。一実施形態では、オーディオサンプルのシーケンスが、オーディオサンプルのシーケンスを電気信号に変換するI/O装置用インターフェイス514に送信される。電気的なオーディオ信号は、それに応じて音響出力を生成するユーザー用I/O装置552内のスピーカーに送信される。
【0039】
通信ネットワーク150の帯域幅に制限が与えられると、再生アプリケーション536は、複雑度に基づいて、異なる一定のビットレートでエンコードされたビデオストリームからビデオデータの連続した部分をダウンロードするようしてもよい。操作では、再生が開始されると、再生アプリケーション536は、再生するデジタルビデオに関連付けられているシーン複雑度マップ302を受信する。前述で説明したように、シーン複雑度マップ302は、デジタルビデオの異なるシーンの複雑度のレベルを規定する。ダウンロードするビデオデータの次の部分を選択すると、再生アプリケーション536はシーン複雑度マップ302に基づいてビデオデータの一部に含まれるシーンの複雑度のレベルを決定する。シーンの複雑度のレベルと1以上のパフォーマンスの要因とに基づいて、再生アプリケーション536は、ビデオデータのその部分をダウンロードする特定のエンコード済みビデオストリームを決定する。例えば、利用可能な帯域幅が低いシナリオでは、シーンの複雑度が低い場合、再生アプリケーション536は、低いビットレートでエンコードされたビデオストリームから複数のシーンを含むビデオデータの一部をダウンロードする。この方法では、複雑度の高いシーンに対してはより高いビットレートでエンコードされたビデオストリームの後続の部分をダウンロードすることで、再生アプリケーション536によって通信ネットワーク150の帯域幅を効果的に管理することができる。このようなシナリオでは、中程度の複雑度のシーンと比較して低い複雑度のシーンをダウンロードするために低い帯域幅を用いて、複雑度が高いシーンで構成されたビデオデータの部分に対応する中程度または高いビットレートでエンコードされたビデオストリームの部分をダウンロードするのに有利になるように帯域幅を節約する。一方、従来のコンテンツプレーヤは、可変ビットレートのビデオストリームの特定の部分がエンコードされたシーンの複雑度を考慮せず、単に利用可能な帯域幅に基づいて、可変ビットレートでエンコードされたビデオストリームのいずれかを選択していた。
【0040】
ビデオデータの一部に含まれる複数のシーンの複雑度のレベルは別として、ビデオデータの一部をダウンロードする特定のエンコード済みストリームに影響を与える可能性がある他のパフォーマンス要因には、ビデオデータの後続のシーンの複雑度のレベル、ビデオバッファー546のバッファーサイズ、ビデオコンテンツを表示するエンドユーザーの動作、生成される表示タイプ(高精細、標準画質等)、利用可能なリードタイムが含まれる。通信ネットワーク150の帯域幅の制限と組み合わせて、これらの要因は、ビデオデータのその部分に含まれている複数のシーンの複雑度に基づいて、ビデオデータの各部分をダウンロードする特定のエンコード済みビデオストリームを決定するために用いることができる。このような方法で、異なる一定のビットレートでエンコードされたビデオストリームから、可変ビットレートのビデオストリームが生成される。
【0041】
別の実施形態では、複雑度の高いシーンを含むビデオデータの部分だけを、高いビットレートでエンコードする。同様に、複雑度が中程度または高いシーンを含むビデオデータの部分だけを、中程度のビットレートでエンコードする。複雑度の低いシーンしか含まないビデオデータの部分は、低いビットレートのみでエンコードする。
図4を再び参照すると、ビデオスリームのエンコードされたレベルが中程度のビットレートでは、エンコード後のビデオストリーム404(1)には、シーン304(1)は含まれず、ビデオストリームのエンコードされたレベルが高いビットレートでは、エンコード後のビデオストリーム404(2)には、シーン304(0)、304(1)、および304(4)は含まれない。このような実施形態では、再生アプリケーション536は、高いビットレートでエンコードされたビデオストリームから複雑度が高いシーンを含むビデオデータの部分だけをダウンロードし、低いビットレートでエンコードされたビデオストリームからビデオデータの全ての他の部分をダウンロードするようにしてもよい。
【0042】
図6は、本発明の一実施形態による、シーンの複雑度に基づいて、複数のビデオストリームの中の1つから再生する次のシーンを選択する方法のフローチャートである。この方法のステップは、
図1〜5のシステムと組み合わせて説明されるが、当業者であれば、この方法のステップを、任意の順序で実行するように構成したシステムであっても発明の範囲内であることを理解されるであろう。
【0043】
ステップ602では、再生アプリケーション536は、再生が開始されているデジタルビデオに関連付けられているシーン複雑度マップ302を受信する。前述で説明したように、シーン複雑度マップ302は、デジタルビデオの異なるシーンの複雑度のレベルを規定する。ステップ604では、再生アプリケーション536が再生するデジタルビデオに関連付けられているエンコード済みビデオストリームの一組を特定する。
図3を用いて前述で説明したように、各エンコード済みビデオストリームは異なるビットレートでエンコードされる。
【0044】
ステップ606では、再生アプリケーション536は、ビデオデータは次の部分に対して、次の部分の含まれているシーンに関連付けられている複雑度のレベルを決定する。複雑度のレベルは、ステップ602で取得したシーン複雑度マップ302に基づいて決定される。ステップ608では、再生アプリケーション536は、1以上のパフォーマンス要因だけでなく決定された複雑度のレベルに基づいて、ビデオデータの次の部分をダウンロードするために特定のエンコード済みビデオストリームを選択する。前述で説明したように、パフォーマンス要因は、帯域幅の制限やコンテンツバッファー543のサイズが含まれる。特定のエンコード済みビデオストリーム選択するために、コンテンツプレーヤ108で実行している再生アプリケーション536は、デジタルビデオコンテンツの別の(前の)部分を再生している間に、ダウンロードするビデオデータの次の部分に対するビデオストリームのエンコードレベル(高い、中程度、または低いビットレート)を動的に決定する。
【0045】
ステップ610では、再生アプリケーション536は、ビデオデータの再生中に別の時間ステップが発生するかを決定し、そうである場合は、再生アプリケーション536はビデオストリームの別の部分に対してステップ606、608を繰り返す。別の時間ステップがビデオデータの再生中に発生しないときは、すなわち、ビデオコンテンツの再生は終わっている。時間ステップは、一定の間隔(秒またはフレーム)で発生する、あるいは、コンテンツバッファー543が一杯であるか空であるかをトリガーとして発生するようにしてもよい。
【0046】
開示の技術の利点の1つは、ビデオデータの各部分の複雑度のレベルに基づいて、異なる一定のビットレートでエンコードされたビデオストリームからビデオデータの一部を選択することにより、様々なビットレートでエンコードされたストリームが再生時に動的に生成される。このような技術により、現在の状況とシーンの複雑度に基づいてビデオデータの再生を最適化して、最高の再生品質のビデオストリームを生成することが可能になる。
【0047】
本発明の一実施形態は、コンテンツプレーヤ108内のコンピューターが読み取り可能な記憶媒体に格納したプログラム製品として実装することが可能である。この実施形態において、コンテンツプレーヤ108には、セットトップボックス等の組込型コンピューターのプラットフォームを含む。本発明の別の実施例では、例えば、インターネットのWEBサイトに埋め込まれた実行可能な命令のように、コンピューターシステム内のメモリにダウンロードされるプログラム製品として実装するようにしてもよい。この実施形態では、コンテンツプレーヤ108にはコンピューターシステムが装備されている。
【0048】
本発明の実施形態に従うことなく、基本的な範囲から逸脱することがなく、発明を他のさらなる実施形態で実施することが可能である。例えば、本発明は、ハードウェアまたはソフトウェア、またはハードウェアとソフトウェアの組み合わせで実装することが可能である。本発明の一実施形態のコンピューターシステムで使用するためのプログラム製品として実装するようにしてもよい。プログラム製品のプログラムは実施形態(ここに記載された方法を含む)の機能を規定し、各種コンピューターの読み取り可能な記憶媒体に記憶することが可能である。説明したコンピューターが読み取り可能な記録媒体に限定されることはなく:(i)書き込み不可能な記録媒体(例えば、CD−ROMドライブによって読み取り可能なCD−ROMディスクのようなコンピューター内の読み取り専用メモリ、フラッシュメモリ、ROMチップ、またはあらゆる種類の不揮発性半導体メモリ)に情報が永久的に格納され:(ii)書き込み可能な記録媒体(例えば、ディスクドライブ内のフロッピー(登録商標)ディスク、またはハードディスクドライブ、またはあらゆる種類のランダムアクセス可能な半導体メモリ)に変更可能な情報が格納される。本発明の機能を指示するコンピューターが読み取り可能な命令を運ぶものであればコンピューター読み取り可能記録媒体は、本発明の実施形態に含まれる。
【0049】
上記の観点から、請求項に従って本発明の範囲が決定される。