(57)【特許請求の範囲】
【請求項１】
ネットワークを介して端末と接続され、前記端末にコンテンツを配信するコンテンツ配信サーバにおいて、
コンテンツを記憶する記憶手段と、
前記端末へ配信するコンテンツを一時的に記憶するバッファと、
前記端末からコンテンツの配信の要求を受信する受信手段と、
配信の要求があった前記コンテンツの転送ビットレートに応じたサイズの前記バッファを複数確保し、該コンテンツを前記記憶手段から読み出し、確保した該バッファの１つに読み出したコンテンツを書き込むとともに、バッファの所定の割合までコンテンツを書き込んだとき、他の確保した前記バッファへの読み出したコンテンツの書き込みを開始するバッファ制御手段と、
前記バッファ制御手段が前記バッファへ書き込んだ前記コンテンツを配信の要求元の前記端末へ配信する配信手段と、
を備えることを特徴とするコンテンツ配信サーバ。
【請求項２】
前記記憶手段は、転送ビットレート毎のバッファサイズを記憶し、
前記バッファ制御手段は、前記コンテンツの転送ビットレートに応じたバッファサイズを前記記憶手段から読み出して、確保するバッファのサイズを決定する、
ことを特徴とする請求項１に記載のコンテンツ配信サーバ。
【請求項３】
前記バッファ制御手段は、転送ビットレートからバッファサイズを算出するための計算式を用いて、確保するバッファのサイズを決定することを特徴とする請求項１に記載のコンテンツ配信サーバ。
【請求項４】
ネットワークを介して端末と接続され、前記端末にコンテンツを配信するコンテンツ配信サーバにおいて、
コンテンツを記憶する記憶手段と、
前記端末へ配信するコンテンツを一時的に記憶するバッファとを備え、
前記端末からコンテンツの配信の要求を受信し、
配信の要求があった前記コンテンツの転送ビットレートに応じたサイズの前記バッファを複数確保し、
配信の要求があった前記コンテンツを前記記憶手段から読み出し、
確保した前記バッファの１つに読み出したコンテンツを書き込むとともに、バッファの所定の割合までコンテンツを書き込んだとき、他の確保した前記バッファへの読み出したコンテンツの書き込みを開始する一方、
前記バッファへ書き込まれた前記コンテンツを配信の要求元の前記端末へ配信する、
ことを特徴とするコンテンツ配信方法。
【請求項５】
ネットワークを介して端末と接続され、前記端末にコンテンツを配信するコンテンツ配信サーバ上で実行されるコンピュータプログラムであって、
前記端末からコンテンツの配信の要求を受信するステップと、
内部に備えられ、配信の要求があった前記コンテンツの転送ビットレートに応じたサイズのバッファを複数確保するステップと、
配信の要求があった前記コンテンツを内部から読み出し、確保した前記バッファの１つに読み出したコンテンツを書き込むとともに、バッファの所定の割合までコンテンツを書き込んだとき、他の確保した前記バッファへの読み出したコンテンツの書き込みを開始するステップと、
前記バッファへ書き込まれた前記コンテンツを配信の要求元の前記端末へ配信するステップと、
をコンピュータに実行させるためのコンテンツ配信サーバのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンテンツの転送ビットレートに応じたサイズのバッファに読み込まれたコンテンツから配信データを作成してコンテンツ配信を行うコンテンツ配信サーバ及びコンテンツ配信方法に関する。
【０００２】
【従来の技術】
近年、インターネット技術の発展にともない、ブロードバンド環境が整備され、インターネットプロバイダやＡＳＰ（Application Service Provider）は、様々なコンテンツを配信するサービスを提供している。コンテンツ配信サーバは、一旦、バッファと呼ばれるデータ処理のために一時的に利用されるメモリ領域にデータベース内のコンテンツファイルを読み込んで配信データを生成し、ユーザへコンテンツ配信を行っている。しかし、従来、６４ｋｂｐｓ〜６Ｍｂｐｓと様々な転送ビットレートによりコンテンツを配信する場合であっても、コンテンツ配信サーバは、固定のサイズのバッファにコンテンツファイルを読み込み、配信データを作成していた。
【０００３】
【発明が解決しようとする課題】
コンテンツのストリーミング配信において、１台のサーバから配信できるストリーミングの本数を最大にすることは、コスト削減において大変重要である。例えば、６Ｍｂｐｓなどの転送ビットレートの大きなコンテンツを配信するときに、小さなサイズのバッファを使用した場合は、コンテンツファイルを記憶しているディスクへのアクセス回数が増えてしまうため、１度にディスクから読み込むデータ量が大きいほど効率がよい。一方、６４ｋｂｐｓなど転送ビットレートの小さなコンテンツの配信において大きなバッファを使用した場合、１度にディスクから読み込むデータ量が大きくなることにより、ディスクのヘッド利用時間が長くなるため、多重度、すなわち、ストリーミングの本数を増やすことができないばかりか、途中でユーザがコンテンツを視聴しなくなることにより、読み込んだバッファを破棄する確率が高くなるといった問題がある。そこで、コンテンツの転送ビットレートに合わせてバッファのサイズを適正化し、１台のサーバから配信できるストリーミングの本数を増やすことが求められていた。
この発明は、このような事情を考慮してなされたもので、その目的は、コンテンツの転送ビットレートに応じたサイズのバッファを動的に確保し、確保したバッファに読み込んだコンテンツファイルから配信データを作成してコンテンツを配信することができるコンテンツ配信サーバ及びコンテンツ配信方法を提供することにある。
【０００４】
【課題を解決するための手段】
この発明は、上記の課題を解決すべくなされたもので、請求項１に記載の発明は、ネットワークを介して端末と接続され、前記端末にコンテンツを配信するコンテンツ配信サーバにおいて、コンテンツを記憶する記憶手段と、前記端末へ配信するコンテンツを一時的に記憶するバッファと、前記端末からコンテンツの配信の要求を受信する受信手段と、配信の要求があった前記コンテンツの転送ビットレートに応じたサイズの前記バッファを複数確保し、該コンテンツを前記記憶手段から読み出し、確保した該バッファの１つに読み出したコンテンツを書き込むとともに、バッファの所定の割合までコンテンツを書き込んだとき、他の確保した前記バッファへの読み出したコンテンツの書き込みを開始するバッファ制御手段と、前記バッファ制御手段が前記バッファへ書き込んだ前記コンテンツを配信の要求元の前記端末へ配信する配信手段と、を備えることを特徴とするコンテンツ配信サーバである。
【０００５】
請求項２に記載の発明は、請求項１に記載のコンテンツ配信サーバであって、前記記憶手段は、転送ビットレート毎のバッファサイズを記憶し、前記バッファ制御手段は、前記コンテンツの転送ビットレートに応じたバッファサイズを前記記憶手段から読み出して、確保するバッファのサイズを決定する、ことを特徴とする。
【０００６】
請求項３に記載の発明は、請求項１に記載のコンテンツ配信サーバであって、前記バッファ制御手段は、転送ビットレートからバッファサイズを算出するための計算式を用いて、確保するバッファのサイズを決定することを特徴とする。
【０００７】
請求項４に記載の発明は、ネットワークを介して端末と接続され、前記端末にコンテンツを配信するコンテンツ配信サーバにおいて、コンテンツを記憶する記憶手段と、前記端末へ配信するコンテンツを一時的に記憶するバッファとを備え、前記端末からコンテンツの配信の要求を受信し、配信の要求があった前記コンテンツの転送ビットレートに応じたサイズの前記バッファを複数確保し、配信の要求があった前記コンテンツを前記記憶手段から読み出し、確保した前記バッファの１つに読み出したコンテンツを書き込むとともに、バッファの所定の割合までコンテンツを書き込んだとき、他の確保した前記バッファへの読み出したコンテンツの書き込みを開始する一方、前記バッファへ書き込まれた前記コンテンツを配信の要求元の前記端末へ配信する、ことを特徴とするコンテンツ配信方法である。
【０００８】
請求項５に記載の発明は、ネットワークを介して端末と接続され、前記端末にコンテンツを配信するコンテンツ配信サーバ上で実行されるコンピュータプログラムであって、前記端末からコンテンツの配信の要求を受信するステップと、内部に備えられ、配信の要求があった前記コンテンツの転送ビットレートに応じたサイズのバッファを複数確保するステップと、配信の要求があった前記コンテンツを内部から読み出し、確保した前記バッファの１つに読み出したコンテンツを書き込むとともに、バッファの所定の割合までコンテンツを書き込んだとき、他の確保した前記バッファへの読み出したコンテンツの書き込みを開始するステップと、前記バッファへ書き込まれた前記コンテンツを配信の要求元の前記端末へ配信するステップと、をコンピュータに実行させるためのコンテンツ配信サーバのプログラムである。
【０００９】
【発明の実施の形態】
以下、図面を参照し、この発明の実施の形態について説明する。図１は、この発明の一実施の形態によるコンテンツ配信サーバを用いたコンテンツ配信システムの構成を示すブロック図である。
【００１０】
端末１は、コンテンツ配信サービスのユーザが保有するパーソナルコンピュータであり、インターネットなどの公衆網であるネットワークＮと接続され、ネットワークＮを介してコンテンツ配信業者の保有するコンテンツ配信サーバ２と接続される。そして、コンテンツ配信サーバ２へコンテンツの配信の要求を送信する機能と、コンテンツ配信サーバ２からストリーミング配信されるコンテンツを受信し、再生する機能を備える。
【００１１】
コンテンツ配信サーバ２は、コンテンツ配信業者の保有するサーバであり、ネットワークＮを介してユーザの端末１と接続され、受信手段２１、バッファ制御手段２２、データベース２３、データベース２４及び配信手段２５から構成される。これらの各ブロックは、具体的には、ＣＰＵならびにメモリを含む周辺ＬＳＩで構成され、ＣＰＵがメモリに記録されたプログラムを読み出し逐次実行することにより、そのブロックが持つ機能を実現するものである。
【００１２】
受信手段２１は、ネットワークＮを介して端末１からコンテンツの配信の要求を受信する機能と、受信したコンテンツ配信の要求をバッファ制御手段２２に通知する機能を有する。
【００１３】
バッファ制御手段２２は、受信手段２１からコンテンツの配信の要求を受信する機能と、データベース２４内に記憶され、転送ビットレートに応じたバッファサイズが記述されたテーブルを検索して、コンテンツの転送ビットレートに合ったバッファサイズを読み出し、バッファを確保する機能と、配信対象のコンテンツファイルをデータベース２３から読み出してバッファへ書き込む機能と、配信手段２５へコンテンツの配信を指示する機能を有する。なお、バッファとは、半導体メモリ上に存在し、配信手段２５が端末１に対してコンテンツをストリーミング配信するときに送信する配信データを生成するために、コンテンツファイルを一時的に記憶する領域である。
【００１４】
データベース２３は、複数のコンテンツファイルを記憶する。コンテンツファイルは、転送ビットレート、画像の横の画素数、画像の縦のライン数、画像の表示周期などの情報からなるヘッダ情報と、コンテンツの画像及び音声データからなるストリーミングデータにより構成される。
【００１５】
データベース２４は、コンテンツファイルの転送ビットレートに応じたバッファサイズを記述したテーブルを記憶する。テーブルの設定例を以下に示す。
0003676330.tif 000002
上記テーブルは、転送ビットレート６４ｋｂｐｓのコンテンツファイルのストリーミング配信においては、サイズが１６Ｋバイトのバッファを使用し、転送ビットレートが１２８ｋｂｐｓの場合はサイズが３２Ｋバイトのバッファ、転送ビットレートが５１２ｋｂｐｓの場合はサイズが２５６Ｋバイトのバッファ、転送ビットレートが１Ｍｂｐｓの場合はサイズが５１２Ｋバイトのバッファ、転送ビットレート６Ｍｂｐｓの場合はサイズが３Ｍバイトのバッファを使用することを示している。
なお、適切なバッファサイズは、配信サーバ２の記憶手段２３が実装するディスク台数やディスクの回転速度、ディスクの１セクタなどの大きさなど、ハードウェアの構成に依存する。
【００１６】
配信手段２５は、バッファに読み出されたコンテンツファイルのストリーミングデータから配信データを生成し、ネットワークＮを介して端末１へ送信することにより、コンテンツをストリーミング配信する機能を有する。
【００１７】
続いて、同実施の形態によるコンテンツ配信サーバ２の動作について説明する。図２は、コンテンツ配信サーバ２の動作のフローを示す。
ステップＳ３０：
まず、端末１は、ネットワークＮを介して、コンテンツ配信サーバ２へコンテンツの配信の要求を送信する。コンテンツの配信の要求には、配信を要求するコンテンツのファイル名、タイトル、コードなどのコンテンツ識別情報と、要求を送信した端末１のＩＰアドレスなどのアドレス情報が設定される。コンテンツ配信サーバ２の受信手段２１は、ネットワークＮを介して端末１からコンテンツの配信の要求を受信すると、バッファ制御手段２２へ通知する。バッファ制御手段２２は、通知されたコンテンツ識別情報により識別されるコンテンツファイルのヘッダ情報をデータベース２３から読み出す。そして、読み出したヘッダ情報に含まれている転送ビットレートを取得する。
【００１８】
ステップＳ３５：
バッファ制御手段２２は、ステップＳ３０において取得した転送ビットレートにより、データベース２４に記憶されているテーブルを検索し、バッファサイズを取得する。
ステップＳ４０：
バッファ制御手段２２は、現在使用されていないバッファの領域から、ステップＳ３５において取得したバッファサイズに相当するサイズのバッファを２つ確保する。
【００１９】
ステップＳ４５：
バッファ制御手段２２は、ステップＳ３０において通知されたコンテンツ識別情報で識別されるコンテンツファイルのストリーミングデータをデータベース２３から読み出し、ステップＳ４０において確保した１つ目のバッファに書き込む。そして、１つ目のバッファの６割、あるいは、８割など、予め決められたサイズまでストリーミングデータを書き込むと、１つ目のバッファへのストリーミングデータの書き込みを続けながら、同時に２つ目のバッファへのストリーミングデータの書き込みを始める。そして、１つ目のバッファサイズの上限までストリーミングデータの書き込みを終えると、配信手段２５へ端末１へのストリーミング配信を指示する。配信手段２５は、バッファ制御手段２２からストリーミング配信の指示を受信すると、１つ目のバッファに書き込まれたストリーミングデータを読み出して配信データを生成し、ネットワークＮを介してステップＳ３０において通知されたアドレス情報が示す端末１へ送信する。
一方、バッファ制御手段２２は、２つ目のバッファへ予め決められたサイズまでストリーミングデータを書き込むと、１つ目のバッファに書き込んだ内容が既に配信済みであれば、２つ目のバッファへのストリーミングデータの書き込みを続けながら、同時に１つ目のバッファへのストリーミングデータの書き込みを始める。そして、２つ目のバッファサイズの上限までストリーミングデータの書き込みを終えると、配信手段２５へ端末１へのストリーミング配信を指示し、配信手段２５は、２つ目のバッファに書き込まれたストリーミングデータを読み出して配信データを生成し、端末１へ送信する。
このようにして、ストリーミングデータを全てバッファへ読み込み、配信を終えるまで、バッファ制御手段２２によるストリーミングデータのバッファへの書き込みと、配信手段２５による配信データの送信を繰り返し、端末１へストリーミング配信を行う。
【００２０】
なお、ステップＳ３５において、バッファ制御手段２３は、記憶手段２４が記憶しているテーブルからバッファサイズを求める代わりに、読み出したコンテンツファイルの転送ビットレートからバッファサイズを求めるための計算式、例えば、
（バッファサイズ）＝ａｘ２＋ｂｘ＋ｃ
ｘ：転送ビットレート、  ａ，ｂ，ｃ：定数
などによりバッファサイズを取得してもよい。ただし、適切なバッファサイズを求めるための計算式は、ハードウェアの構成に依存する。
【００２１】
また、データベース２３は、コンテンツ配信サーバ２に接続されるデータベースサーバなど、外部に接続される装置でもよい。
【００２２】
なお、上述のコンテンツ配信サーバ２は、内部にコンピュータシステムを有している。そして、上述した動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、ＯＳや周辺機器等のハードウェアを含むものである。
【００２３】
また、「コンピュータ読み取り可能な記録媒体」とは、ＲＯＭの他に、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のシステムやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００２４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００２５】
【発明の効果】
この発明によれば、配信するコンテンツの転送ビットレートに応じて、コンテンツファイルの読み込みに最適なサイズのバッファを動的に確保することができる。これにより、最も効率的にバッファ領域を使用して配信データを生成することができるため、１台のサーバにおいて配信可能なストリーミングの本数を最大に近づけることが可能となる。
【図面の簡単な説明】
【図１】  この発明の一実施の形態によるコンテンツ配信サーバを用いたコンテンツ配信システムの構成を示すブロック図である。
【図２】  同実施の形態によるコンテンツ配信サーバ２の動作フローを示す図である。
【符号の説明】
１…端末
２…コンテンツ配信サーバ
２１…受信手段
２２…バッファ制御手段
２３、２４…データベース（記憶手段）
２５…配信手段
【図１】
0003676330.tif 000003
【図２】
0003676330.tif 000004