(57)【特許請求の範囲】
【請求項１】
コンテンツを分割したセグメントを単位としてコンテンツ配信を行うコンテンツ配信システムのクライアント装置であって、
サーバ装置からコンテンツの各セグメントのサイズを示すサイズ情報を取得する取得手段と、
前記サーバ装置から前記コンテンツを取得して再生するために、前記サーバ装置に前記コンテンツのセグメントを再生時間順に要求する要求手段と、
前記要求手段による要求の応答として前記サーバ装置から受信したセグメントをバッファするバッファ手段と、
前記コンテンツの再生開始タイミングを判定する判定手段と、
を備えており、
前記判定手段は、セグメントを受信する度に、少なくとも当該セグメントのサイズと、当該セグメントの受信期間を使用して伝送速度を判定し、前記判定した伝送速度に基づき、当該セグメントを受信したときから所定時間後までの間に受信できるデータ量を判定し、前記サイズ情報に基づき前記所定時間後までのデータ消費量の評価値を判定し、前記受信できるデータ量と前記評価値とを比較することで、前記コンテンツの再生を開始するか否かを判定することを特徴とするクライアント装置。
【請求項２】
前記評価値は、前記所定時間の間に再生されるセグメントのサイズの合計値であることを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記判定手段は、前記受信できるデータ量が前記評価値より大きいと、前記コンテンツの再生を開始すると判定することを特徴とする請求項１又は２に記載のクライアント装置。
【請求項４】
コンテンツを分割したセグメントを単位としてコンテンツ配信を行うコンテンツ配信システムのクライアント装置であって、
前記セグメントは複数のフレームを含み、
前記クライアント装置は、
サーバ装置からコンテンツの各セグメントのサイズを示すサイズ情報を取得する取得手段と、
前記コンテンツの各セグメントのサイズの分散値に基づき、各セグメントの各フレームのサイズを推定する推定手段と、
前記サーバ装置から前記コンテンツを取得して再生するために、前記サーバ装置に前記コンテンツのセグメントを再生時間順に要求する要求手段と、
前記要求手段による要求の応答として前記サーバ装置から受信したセグメントをバッファするバッファ手段と、
前記コンテンツの再生開始タイミングを判定する判定手段と、
を備えており、
前記判定手段は、セグメントを受信すると、少なくとも当該セグメントのサイズと、当該セグメントの受信期間を使用して伝送速度を判定し、前記判定した伝送速度に基づき、当該セグメントを受信したときから所定時間後までの間に受信できるデータ量を判定し、前記推定した各フレームのサイズに基づき前記所定時間後までのデータ消費量の評価値を判定し、前記受信できるデータ量と前記評価値とを比較することで、フレームの再生周期毎に、前記コンテンツの再生を開始するか否かを判定することを特徴とするクライアント装置。
【請求項５】
前記評価値は、前記所定時間の間に再生されるフレームのサイズの合計値であることを特徴とする請求項４に記載のクライアント装置。
【請求項６】
コンテンツを分割したセグメントを単位としてコンテンツ配信を行うコンテンツ配信システムのクライアント装置において、コンテンツの再生開始タイミングを判定する方法であって、
サーバ装置からコンテンツの各セグメントのサイズを示すサイズ情報を取得する取得ステップと、
前記サーバ装置から前記コンテンツを取得して再生するために、前記サーバ装置に前記コンテンツのセグメントを再生時間順に要求する要求ステップと、
前記要求の応答として前記サーバ装置から受信したセグメントをバッファするバッファステップと、
前記コンテンツの再生開始タイミングを判定する判定ステップと、
を含み、
前記判定ステップにおいては、セグメントを受信する度に、少なくとも当該セグメントのサイズと、当該セグメントの受信期間を使用して伝送速度を判定し、前記判定した伝送速度に基づき、当該セグメントを受信したときから所定時間後までの間に受信できるデータ量を判定し、前記サイズ情報に基づき前記所定時間後までのデータ消費量の評価値を判定し、前記受信できるデータ量と前記評価値とを比較することで、前記コンテンツの再生を開始するか否かを判定することを特徴とする方法。
【請求項７】
コンテンツを分割したセグメントを単位としてコンテンツ配信を行うコンテンツ配信システムのクライアント装置において、コンテンツの再生開始タイミングを判定する方法であって、
前記セグメントは複数のフレームを含み、
前記方法は、
サーバ装置からコンテンツの各セグメントのサイズを示すサイズ情報を取得する取得ステップと、
前記コンテンツの各セグメントのサイズの分散値に基づき、各セグメントの各フレームのサイズを推定する推定ステップと、
前記サーバ装置から前記コンテンツを取得して再生するために、前記サーバ装置に前記コンテンツのセグメントを再生時間順に要求する要求ステップと、
前記要求の応答として前記サーバ装置から受信したセグメントをバッファするバッファステップと、
前記コンテンツの再生開始タイミングを判定する判定ステップと、
を含み、
前記判定ステップにおいては、セグメントを受信すると、少なくとも当該セグメントのサイズと、当該セグメントの受信期間を使用して伝送速度を判定し、前記判定した伝送速度に基づき、当該セグメントを受信したときから所定時間後までの間に受信できるデータ量を判定し、前記推定した各フレームのサイズに基づき前記所定時間後までのデータ消費量の評価値を判定し、前記受信できるデータ量と前記評価値とを比較することで、フレームの再生周期毎に、前記コンテンツの再生を開始するか否かを判定することを特徴とする方法。
【請求項８】
請求項１から５のいずれか１項に記載のクライアント装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ配信システムのクライアント装置における再生開始タイミングの判定技術に関する。
【背景技術】
【０００２】
例えば、ＤＡＳＨ（Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ）配信方式といったコンテンツ配信システムにおいて、クライアント装置は、バッファ量が所定値になるとコンテンツの再生を開始する。特許文献１は、コンテンツを受信し始めたときの伝送速度に基づきバッファ量が所定値となるタイミングを求め、これにより、コンテンツの再生開始タイミングを決定する構成を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２２９０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の方法は、伝送速度の揺らぎを考慮していない。
【０００５】
本発明は、伝送速度の揺らぎを考慮してコンテンツの再生開始タイミングを決定するクライアント装置、コンテンツの再生開始タイミングを決定する方法及びプログラムを提供するものである。
【課題を解決するための手段】
【０００６】
本発明の一側面によると、コンテンツを分割したセグメントを単位としてコンテンツ配信を行うコンテンツ配信システムのクライアント装置は、サーバ装置からコンテンツの各セグメントのサイズを示すサイズ情報を取得する取得手段と、前記サーバ装置から前記コンテンツを取得して再生するために、前記サーバ装置に前記コンテンツのセグメントを再生時間順に要求する要求手段と、前記要求手段による要求の応答として前記サーバ装置から受信したセグメントをバッファするバッファ手段と、前記コンテンツの再生開始タイミングを判定する判定手段と、を備えており、前記判定手段は、セグメントを受信する度に、少なくとも当該セグメントのサイズと、当該セグメントの受信期間を使用して伝送速度を判定し、前記判定した伝送速度に基づき、当該セグメントを受信したときから所定時間後までの間に受信できるデータ量を判定し、前記サイズ情報に基づき前記所定時間後までのデータ消費量の評価値を判定し、前記受信できるデータ量と前記評価値とを比較することで、前記コンテンツの再生を開始するか否かを判定することを特徴とする。
【発明の効果】
【０００７】
伝送速度の揺らぎを考慮してコンテンツの再生開始タイミングを決定することができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態によるコンテンツ配信システムの構成図。
【図２】一実施形態によるコンテンツ配信処理のシーケンス図。
【図３】一実施形態によるクライアント装置の構成図。
【発明を実施するための形態】
【０００９】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００１０】
図１は、本実施形態によるコンテンツ配信システムの構成図である。例えば、インターネットといったネットワーク２にはサーバ装置３とクライアント装置１が接続されている。サーバ装置３は、配信対象のコンテンツを保持しており、クライアント装置１からの要求に従い、クライアント装置１が指定するコンテンツを当該クライアント装置１に配信する。なお、以下では、サーバ装置３及びクライアント装置１は、ＤＡＳＨに従いコンテンツ配信及び受信を行うものとして説明する。しかしながら、本発明は、コンテンツを複数のセグメントに分割し、セグメントを単位としてコンテンツの要求及び配信を行う任意のコンテンツ配信システムに適用できる。
【００１１】
図２は、本実施形態によるコンテンツ配信のシーケンス図である。クライアント装置１は、Ｓ１で、取得したいコンテンツのＭＰＤ（Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）ファイルをサーバ装置３に要求するためのＭＰＤ要求メッセージを送信する。ＭＰＤファイルには、コンテンツを構成するセグメントと、そのＵＲＩが記述されている。サーバ装置３は、クライアント装置１からＭＰＤ要求メッセージを受信すると、Ｓ２で、要求されたＭＰＤファイルをクライアント装置１に送信する。続いて、クライアント装置１は、Ｓ３で、サーバ装置３にコンテンツのセグメントサイズ時系列情報を要求する時系列情報要求メッセージを送信する。セグメントサイズ時系列情報とは、コンテンツを構成するセグメントのサイズを、セグメントの再生時間順に記述したものである。サーバ装置３は、クライアント装置１から時系列情報要求メッセージを受信すると、Ｓ４で、要求されたセグメントサイズ時系列情報をクライアント装置１に送信する。なお、セグメントサイズ時系列情報をＭＰＤファイルに含める構成であっても良い。クライアント装置１は、以後、サーバ装置３から、セグメントの再生時間順にセグメントを取得する。このため、クライアント装置１は、まず、Ｓ５で、最初のセグメントをサーバ装置３に要求するセグメント要求メッセージを送信し、サーバ装置３は、セグメント要求メッセージを受信すると、Ｓ６で、要求されたセグメントをクライアント装置１に配信する。
【００１２】
クライアント装置１は、セグメント要求メッセージの応答として受信したセグメントをバッファし、以下に説明する判定処理を行って、コンテンツの再生を開始するか否かを判定する。コンテンツの再生を開始しない場合には、Ｓ５〜Ｓ７の処理が繰り返される。なお、以後の繰り返しにおいてクライアント装置１が要求するセグメントは、直前に取得したセグメントの次のセグメントである。また、コンテンツの再生を開始した以降においては、Ｓ５及びＳ６の処理が繰り返される。
【００１３】
続いて、Ｓ７における判定処理について説明する。なお、以下では、セグメントのサイズがその時間順にＳ１、Ｓ２、・・・ＳＮであるものとする。なお、Ｎはコンテンツを構成するセグメントの総数である。つまり、ｋ番目のセグメント（ｋは1からＮの整数）のサイズをＳｋとする。なお、各セグメントにより再生されるコンテンツの期間は等しく、これをΔｔとする。また、ｋ番目のセグメントを受信したタイミング（時刻）をｔｋとする。
【００１４】
クライアント装置１は、ｋ番目のセグメントを受信すると、ｋ番目のセグメント及ｋ番目のセグメントの受信期間から、ｋ番目のセグメントを受信したタイミングにおける推定伝送速度Ｒｋを判定する。なお、推定伝送速度Ｒｋの判定には、過去所定期間内に受信したセグメントのサイズ及びその受信期間を更に使用することもできる。この場合、推定伝送速度Ｒｋを判定するために使用するセグメント数を可変とすることができる。例えば、１番目のセグメントを受信したときには、当該セグメントのサイズと受信期間から、推定伝送速度Ｒ１を算出し、２番目のセグメントを受信したときには、１番目のセグメントのサイズとその受信期間から算出される速度と、２番目のセグメントのサイズとその受信期間から算出される速度との平均値を推定伝送速度Ｒ２とする。そして、３番目以降においては、受信したセグメントと過去２つのセグメントのサイズと、それらの受信期間から、３つの速度を求め、これらの平均値を推定伝送速度とすることができる。なお、上記特定の数字は、説明のための例示であり、クライアント装置１は、任意の方法で推定伝送速度Ｒｋを算出することができる。
【００１５】
そして、クライアント装置１は、ｋ番目のセグメントからｋ＋ｑ番目のセグメントまでのセグメントのサイズの合計値、つまり、Ｓｋ〜Ｓｋ＋ｑの合計値と、Ｒｋ×ｑ×Δｔとを比較する。Ｓｋ〜Ｓｋ＋ｑの合計値は、ｋ番目のセグメントからｑ＋１個のセグメントを再生した場合に、バッファから取り出されるデータ量であり、Ｒｋ×ｑ×Δｔは、現在の推定伝送速度が継続したと仮定した場合に、現時点からｑ+１個のセグメントを再生するまでに受信できるデータ量である。Ｓｋ〜Ｓｋ＋ｑの合計値は、再生する場合のデータ消費量の評価値であり、Ｓｋ〜Ｓｋ＋ｑの合計値よりＲｋ×ｑ×Δｔが大きいと、バッファに格納されたデータ量は減少しない。よって、クライアント装置１は、１番目のセグメントを受信したときから、Ｓｋ〜Ｓｋ＋ｑの合計値とＲｋ×ｑ×Δｔとを比較し、Ｓｋ〜Ｓｋ＋ｑの合計値よりＲｋ×ｑ×Δｔが大きいと、コンテンツの再生を開始すると決定する。なお、Ｒｋ×ｑ×Δｔと比較する対象は、Ｓｋ〜Ｓｋ＋ｑの合計値ではなく、Ｓ１〜Ｓ１＋ｑの合計値とすることもできる。この場合には、Ｓ１〜Ｓ１＋ｑの合計値は、現時点（ｋ番目のセグメントを受信した時点）で再生を開始した場合に、さらにｑ個セグメントを受信するまでにバッファから取り出されるデータ量であり、この値がＲｋ×ｑ×Δｔより小さいと、バッファのデータ量は増加することになる。
【００１６】
以上、セグメントを受信する度に、受信した時点における伝送速度を推定し、当該受信した時点から所定時間後において受信できるデータ量と、データの消費量の評価値とを比較する。そして、受信できるデータ量が消費量より多い場合にコンテンツの再生を開始する。これにより、バッファアンダーフローを抑えることができる。
【００１７】
図３は、本実施形態によるクライアント装置１の構成図である。送受信部１０は、ネットワーク２との間で送受信処理を行う。制御部１１は、送受信部１０を介してサーバ装置３にＭＰＤファイル及びセグメントサイズ時系列情報を要求し、これらを取得する。さらに、制御部１１は、送受信部１０を介してサーバ装置３にセグメントを要求する。一方、サーバ装置３が送信したセグメントを、送受信部１０は、バッファ部１２に格納する。そして制御部１１は、上述した判定処理を行って、コンテンツの再生を開始すると判定すると、再生部１３にコンテンツの再生を指示する。再生部１３は、制御部１１からコンテンツの再生指示を受け取ると、バッファ部１２に格納されたセグメントを、その時間順に取り出してコンテンツの再生を開始する。
【００１８】
なお、上述した実施形態では、複数のフレームで構成されるセグメントのサイズに基づきコンテンツ再生の開始タイミングを判定していた。しかしながら、セグメントのサイズに基づき、各フレームのサイズを推定し、フレームのサイズに基づきコンテンツ再生の開始タイミングを判定することができる。具体的には、上述した様に、１つのセグメントにより再生されるコンテンツの期間は既知の値Δｔであり、フレーム・レートも既知である。つまり、１つのセグメントに含まれるフレーム数は既知である。例えば、制御部１１は、セグメントのサイズの分散値を求め、この分散値から１つのセグメント内の各フレームのサイズを推定する。
【００１９】
例えば、あるセグメントのサイズが１００であり、フレーム数が１０であるものとするこの場合、セグメントのサイズの分散値が０であると、制御部１１は、各フレームのサイズが、その平均値に等しく１０であると推定する。一方、分散値が０より大きいＡであると、制御部１１は、平均値より大きい初期値を求める。例えば、この初期値を１５とする。この場合、制御部１１は、当該セグメントの１番目から６番目のフレームのサイズを１５と推定し、７番目のフレームのサイズを、残りのサイズである１０と判定し、８〜１０番目のフレームのサイズを０と推定する。さらに、分散値がＡより大きいＢであると、制御部１１は、初期値を１５より大きい、例えば、２０と判定する。この場合、制御部１１は、当該セグメントの１番目から５番目のフレームのサイズを２０と推定し、６〜１０番目のフレームのサイズを０と推定する。なお、分散値と初期値との関係については予め定めておくが、分散値が大きくなると、初期値も大きくなる様にする。
【００２０】
そして、制御部１１は、フレームの再生周期毎に、つまり、１つのセグメントの再生期間がΔｔであり、１つのセグメントが１０フレームである場合、期間Δｔ／１０毎に再生を開始するか否かの判定を行う。なお、判定方法は、上記セグメントを、フレームと読み替えるのみであり、再度の説明は省略する。また、推定伝送速度は、直近に受信したセグメントのサイズ及び受信期間により判定したものを使用する。
【００２１】
なお、本発明によるクライアント装置は、コンピュータを上記クライアントとして動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【符号の説明】
【００２２】
１１：制御部、１２：バッファ部
【図１】
0006501691.tif 000002
【図２】
0006501691.tif 000003
【図３】
0006501691.tif 000004