(57)【要約】  クライアントに対してフレーム／パケットのタイムリな配信を行うための方法及びストリーミングサーバ（１１０）。本方法は、カレンダホィール（２００）においてストリームデータを動作中コッグ（３１０、２１０）からフェッチするステップを含み、さらに、フェッチしたストリームデータを用いて、動作中コッグの形で示されるフレーム／パケットがビデオ記憶装置（１４０）内のフレーム／パケットのロケーションからクライアントへ送信される。ストリームデータはストリーム、動画及びフレームに関する情報を含む。オプションとしてパケットに関する情報も提供される。
2010525738.tif 000002
【特許請求の範囲】
【請求項１】
フレームをクライアントへ配信するストリーミングサーバにおける方法であって、
それぞれ規定の期間を表すエレメントを備えたメモリアレイの動作エレメントの中にストリームデータが存在するか否かを判定するステップと、
ストリームに関する情報と、メディア・アイデンティティと、現在のフレームとを含むストリームデータを、前記動作エレメントからフェッチするステップと、
メディア・アイデンティティと現在のフレームとに関連する情報を用いて、前記現在のフレームをメディア記憶装置から取得するステップと、
フェッチしたストリームデータのストリームにより前記現在のフレームをクライアントへ送信するステップと
を有することを特徴とする方法。
【請求項２】
前記規定の期間、待機するステップと、
動作エレメント＝動作エレメント＋１として、エレメントインデックスを更新するステップと
をさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
次のフレームのためにスケジュールされるエレメントを計算するステップと、
ストリーム、メディア・アイデンティティ及び次のフレームに関する情報を前記スケジュールされるエレメントの中に入力するステップと、を有する単一のエレメントのスケジューリング手順をさらに有することを特徴とする請求項１又は２に記載の方法。
【請求項４】
複数の次のフレームについて、複数のスケジュールされたエレメントを計算するステップと、
前記スケジュールされたエレメントにストリームデータを入力するステップと、
それがストリームデータ情報を保持している最後のエレメントであること、及び、新たなスケジューリングを行う必要があることを示す通知情報を、最後のスケジュールされたエレメントの中に入力するステップと
を有する複数エレメントのスケジューリング手順をさらに有することを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記複数エレメントのスケジューリング手順は、
新たな複数エレメントのスケジューリングを行うべきか否かを前記動作エレメント内の情報から判定するステップで始まることを特徴とする請求項５に記載の方法。
【請求項６】
前記送信するステップに先行して、
前記現在のフレームがどこのロケーションに存在するかをフレーム索引テーブルから判定するステップと、
前記現在のフレームを前記ロケーションからフェッチし、前記現在のフレームを出力メモリに記憶するステップと
を行うことを特徴とする請求項１に記載の方法。
【請求項７】
前記計算するステップは、
フレーム情報テーブル内の次の１以上のフレームの時刻情報ＤＴＳをフェッチするステップを含むと共に、前記フェッチした時刻情報を前記規定の期間と共に用いて、前記次の１以上のフレームに関する情報を挿入するために１以上の前記スケジュールされたエレメントが計算されることを特徴とする請求項３又は４に記載の方法。
【請求項８】
フレームがパケットを含むことを特徴とする請求項１から７のいずれか１項に記載の方法。
【請求項９】
メディア記憶装置からクライアントへフレーム／パケットを配信するストリーミングサーバであって、
規定の期間中にフレーム／パケットがクライアントへ配信される場合、コッグがストリームデータ情報を運ぶ該期間を表すコッグを備えたカレンダホィールと、
クライアントへ配信されるメディアのフレーム／パケット情報であって、該フレーム情報はフレーム／パケットのロケーション情報を含む、フレーム／パケット情報を有するデータベースと、
前記カレンダホィールからのストリームデータのフェッチ／読出しを制御すると共に、フレーム／パケットの前記ロケーション情報を用いて、前記フレーム／パケットの前記メディア記憶装置からのフェッチを制御するプロセッサと、
前記フレーム／パケットをクライアントへ配信する、前記ストリームと接続された出力手段と
を備えることを特徴とするストリーミングサーバ。
【請求項１０】
前記ストリームデータ情報は、ストリーム番号と、メディア・アイデンティティと、フレーム番号とから構成されることを特徴とする請求項９に記載のストリーミングサーバ。
【請求項１１】
フレーム／パケット情報を有する前記データベースは、前記フレーム／パケットが前記クライアントへ配信される時刻の情報をさらに有することを特徴とする請求項９に記載のストリーミングサーバ。
【請求項１２】
前記プロセッサは、スケジュールされたコッグを計算するために次のフレームの前記時刻情報（ＤＴＳ）を用いることを特徴とする請求項１１に記載のストリーミングサーバ。
【請求項１３】
前記カレンダホィールは最後のコッグ通知情報を含むことを特徴とする請求項９に記載のストリーミングサーバ。
【請求項１４】
前記ストリーミングサーバはビデオ・オン・デマンドストリーミングサーバであり、前記メディアは特定された動画に関するものであることを特徴とする請求項９に記載のストリーミングサーバ。
【請求項１５】
前記カレンダホィールはメモリアレイであり、コッグは当該メモリアレイ中のエレメントであることを特徴とする請求項９から１４のいずれか１項に記載のストリーミングサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にビデオストリーミングサーバからセットトップボックスへのフレームの配信に関し、特に、タイムリに配信されるフレームのスケジューリングに関する。
【背景技術】
【０００２】
ビデオストリーミングサーバは何百から何千ものビデオストリームをクライアントの構内のセットトップボックスへストリーミングを行う能力を備えた装置である。コンテンツ自体は、ＣＤの従来型の回転ディスク、フラッシュディスク又はＲＡＭの中に存在するものであってもよい。今日最もよく使用されている記憶装置は、データ量当たりのディスクが低価格になったことに起因して通常のディスクである。
【０００３】
ビデオのストリーミングには、ある特定のフレームが前回のフレームを基準として相対的に送信される時点に関して正確なタイミングが要求される。さらに、上記ストリーミングには当該フレームに属する個々のパケットが送信される時点に関して正確なタイミングが要求される。１つのフレームの中に、フレームの形で送信されるデータ量に応じて１ないしいくつかのパケットが含まれている。フレームがタイムリに送信されなかった場合、セットトップボックス内のビデオバッファはオーバーフローか、アンダーフローかのいずれかの状態になる。さらに、パケットがタイムリに送信されなかった場合、ＡＤＳＬなどの加入者回線は過剰に利用されることになり、それによってサービスレベルの合意に違反し、結果としてパケットロスを生じることになる。
【０００４】
数千ものストリームを順序よくストリーミングする処理は、ある特定の時点にどのようなフレーム又はパケットの送信を行うかを選択するスケジュラに対して高度の要求を同時に課すことになる。
【０００５】
カレンダホィールを用いることによるスケジューリングが多様な分野において適用されてきた。例えば、ＡＴＭスケジューリングが今では一般に行われている。
【０００６】
従来技術によれば、Ｄｅｌｐ他による「セル／フレームスケジューリング方法及び通信セル／フレームスケジュラ」（特許文献１）において、セル及びフレームの送信スケジューリングを通信ネットワークにおいて行う方法及び装置についての記載がある。スケジューリングアルゴリズムの選択ステップを利用してセル及びフレームの送信スケジュールが行われる。セル／フレームスケジューリングアルゴリズムにはフレーム又はセルの送信タイプを特定するステップが含まれる。この特定されたフレームタイプ又はセル送信タイプに応じて、フレーム乗算値が特定され、この乗算値はターゲット転送時間を計算するために用いられる。上記特許の主要目的は品質及び帯域幅に関するスケジューリングを行うことである。この特許ではセットトップボックスへの数百又は数千のビデオストリームストリーミングについては論じられていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第６，４７７，１６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、ビデオストリーミングサーバから異なるセットトップボックスへの数百のストリームのストリーミングを管理することであり、この目的は従来技術による解決方法では取り扱われていない。本発明のさらなる目的は、異なるセットトップボックスに対して異なる動画を取り扱うことである。本発明によればフレーム／パケットが適時正確にクライアントへ配信される。
【０００９】
これらの目的及びその他の目的は添付の請求項によって規定されているように本発明により達成される。
【課題を解決するための手段】
【００１０】
本発明は、フレームをクライアントへタイムリに配信するためのストリーミングサーバにおける方法に関し、前記方法は、規定の期間を個々に表すエレメントを含むメモリアレイの動作エレメント内にストリームデータが存在するか否かを判定するステップと、ストリーム、メディア・アイデンティティ及び現在のフレームに関する情報を含むストリームデータを動作エレメントからフェッチするステップと、メディア・アイデンティティと現在のフレームとに関連する情報を用いることによって現在のフレームをメディア記憶装置から取得するステップと、フェッチしたストリームデータのストリームにより現在のフレームをクライアントへ送信するステップとを有する。
【００１１】
本方法は、規定の期間の間待機し、次いで、動作エレメント＝動作エレメント＋１に対してインデックスを更新するステップをさらに有する。
【００１２】
本方法は、フレーム内のパケットに関するものであってもよい。上記送信ステップに先行して、現在のフレームがどこに位置しているかを判定し、現在のフレームをその位置からフェッチし、クライアントへ配信するために現在のフレームを出力メモリに記憶するステップが行われる。
【００１３】
本発明は、メディア記憶装置からクライアントへフレーム／パケットをタイムリに配信するためのストリーミングサーバも備える。コッグ（歯車）期間中にフレーム／パケットをクライアントへ配信する場合、コッグがストリームデータ情報を運ぶようになっている規定の期間が表されているコッグを備えたカレンダホィールがストリーミングサーバの中に含まれている。ストリーミングサーバはまた、クライアントへ配信されるメディアに関連するフレーム情報／パケット情報（フレーム情報にはフレーム／パケットのロケーション情報が含まれている）を含むデータベースと、カレンダホィールからのストリームデータのフェッチ／読出しを制御すると共に、フレーム／パケットのロケーション情報を用いてメディア記憶装置からフレーム／パケットをフェッチするステップを制御するプロセッサとを含み、さらに、ストリーミングサーバはフレーム／パケットをクライアントへ配信するためのストリームと接続された出力部も含む。
【００１４】
データベースは、フレーム／パケットをクライアントへ配信する時刻に関する情報を含むことができる。
【００１５】
本発明の主たる効果として、フレーム又はパケットをクライアントへ送信する正確なタイミングが挙げられる。したがって、ビデオバッファのフィリングレートはオーバーフロー又はアンダーフロー状態を伴うことなく適正なレベルの範囲内に留まることになる。
【００１６】
［略語］
ＳＴＢ−セットトップボックス
ＲＡＭ−ランダムアクセスメモリ
ＣＤ−コンパクトディスク
ＡＤＳＬ−非対称デジタル加入者回線
ＡＴＭ−非同期転送モード
ＶｏＤ−ビデオ・オン・デマンド
ＭＰＥＧ−動画専門家グループ
ＤＴＳ−復号化タイムスタンプ
【図面の簡単な説明】
【００１７】
添付図面と共に以下の説明を参照することによって本発明は理解される。
【図１】本発明の教示を適用できる通信システムの簡素化された概略図である。
【図２ａ】本発明に係る回動するカレンダホィールを示す。
【図２ｂ】イベントがホィール内のコッグに入れられる方法を示す。
【図２ｃ】パケットが送信される旨を示すパイプの中にイベントを入れる方法を示す図である。
【図２ｄ】ホィールが回動し続けることを示す図である。
【図３】本発明に係るビデオストリーミングサーバのブロック図を示す。
【図４】本発明に係る通信システムにおいて信号を例示するシーケンス図である。
【図５ａ】ストリーミングサーバにおいて実行される動作ステップを例示するフローチャートである。
【図５ｂ】ストリーミングサーバにおいて実行される動作ステップを例示するフローチャートである。
【図５ｃ】ストリーミングサーバにおいて実行される動作ステップを例示するフローチャートである。
【発明を実施するための形態】
【００１８】
図面を通じてずっと、同じ参照文字は対応する要素又は類似の要素を表すために用いるものとする。
【００１９】
図１は、本説明においてセットトップボックス１１２、１１４、１１６により表されるクライアントに対してビデオコンテンツのストリーミングを行うためのビデオ・オン・デマンドＶｏＤストリーミングサーバ１１０を含む通信システム１００に関する。ストリーム内の情報が復号化され、ＴＶ１３０へ配信される前にストリームを最初にバッファしたバッファ１２０が個々のＳＴＢの中に含まれる。ＴＶはまた、図１には示されていないＳＴＢ１１４と１１６にも接続される。ストリーミングサーバ１１０はフレームをタイムリに配信するタスクを有し、バッファ１２０のタスクはネットワーク遅延を補償することである。コンテンツ自体は例えば従来型の回転ディスクなどのメディア記憶装置１４０、１５０に記憶される。本例では記憶装置１４０、１５０はビデオ記憶装置として実装される。ストリームをＳＴＢＳへ配信するためのネットワークは開示されていないが、図１に複数のストリーム１−ｎが開示されている。
【００２０】
ＭＰＥＧビデオストリームは、フレームレートの逆数に密接に対応するタイムギャップによって送出されなければならない一連の連続フレームから構成される。フレームレートとはスクリーン上に毎秒提示される映像である。個々のフレームは、サービス内容合意書（ＳＬＡ）に記載されている毎秒当たりの最大パケット数の逆数に密接に対応して、タイムギャップによって送出されなければならない一連のパケットから構成される。実際にはＳＬＡには毎秒当たりのバイト数が通常記載されているが、パケット当たりのバイト数が一定である（典型的には約１５００）ことが知られているため、パケット数とバイト数の数値は相互から導き出すことができる。
【００２１】
典型的フレームレートは、４０ｍｓの逆数の場合毎秒２５フレームとなり、したがって、このフレームがフレームを送出するためのタイムギャップとなる。典型的パケットレートは２．５ｍｓの逆数の場合毎秒４００パケットであり、このパケットがパケットを送出するためのタイムギャップとなる。パケット間における最大２０％のタイミング誤差を許容すれば、この結果、パケットスケジューリングに対する０．２＊２．５ｍｓ＝０．５ｍｓの精度が得られることになる。タイミングエラーによる２０％の許容は、ＳＬＡが実際のパケットレートよりも２０％高いものでなければならないことを意味する。近い将来、高品質の動画によって、さらに高いパケットレートが要求され、そのためパケットのスケジューリングの高い精度も要求されるようになることが考えられる。パケット配信時の精度に関する今日及び将来の要求を満たすことが本発明の目的である。以下の説明における一例によればパケットに対する精度は０．５ｍｓである。
【００２２】
パケットのスケジューリング及び配信時の精度要件を満たすために、いわゆるカレンダホィールが用いられる。本発明を容易に理解できるようにするために、図２ａ、２ｂ、２ｃ及び２ｄにこのカレンダホィール方法が例示されている。
【００２３】
図２ａは、複数のコッグ（歯車）２１０、２１２、２１４から構成される「水車」として回動する様子がわかるカレンダホィール２００を示す図である。個々のコッグは絶対時間内のある特定の範囲を表している。この範囲のサイズはパケットの送出タイミングの精度に対応している。本願の例では個々のコッグは前述したように０．５ｍｓを表すものとする。本願の例では、パケットの送信であるイベントは、イベントが発生すると想定される場合の時間的範囲を表すコッグの中に置かれる。ホィールは、時刻がホィールのイベントの滝に達すると一定の速度で回動する。この図ではカレンダホィール２００は空である。異なるビデオストリーム２２０、２３０、２４０からのパケットがカレンダホィールに着信する。ボックス２５０はパケットの送信を例示する。図２ａではボックスは空であり、パケットの送信は行われない。
【００２４】
図２ｂはイベントをカレンダホィール２００のコッグの中に入れる方法を示す図である。これらのイベントはイベントが発生すると想定される時刻に対応してコッグの中へ入れられる。図２ｂによれば、すべての３つのストリーム２２０、２３０、２４０からのイベントがコッグ２１４の中へ入れられる。次のコッグ２１２にはイベントがスケジュールされていない。そして、コッグ２１０の一例としてパケットを送信するためにストリーム２３０からの１つのイベントがスケジュールされる。
【００２５】
図２ｃは、パケットが送信される旨を示すパイプの中にイベントを入れる方法を示す図である。３つのイベント２２０、２３０、２４０が図２ｂのコッグ２１４からパケット送信用ボックス２５０の中に落ちたところである。
【００２６】
図２ｄはカレンダホィールが回動し続けていることを示す図である。
【００２７】
カレンダホィールにおけるコッグの数はイベントが予めスケジュールにかけ得る最長の時間に対応する。
【００２８】
実際にはカレンダホィールは円形メモリアレイとして実装することが可能であり、この円形メモリアレイは、第１のエレメントが最後のエレメントに後続すると考えられるメモリアレイである。個々のエレメントはイベントのリンクされたリストの先頭を保持する。したがって、アレイの個々のエレメントは１つのコッグと考えることができる。
【００２９】
プログラムが現在のコッグのインデックスを保持している。ハードウェアのタイマを用いて、個々のインタバルについて一回ハードウェアへの割込みを行うことができる。初めに示した例では、本願で必要な精度として０．５ｍｓの精度が規定された。したがって、ハードウェアに対して０．５ｍｓ毎に割込みがかけられることになる。この割り込みによりプログラムが呼び出され、インデックスを１ステップずつ進めて、イベントのリストの中を走査する。
【００３０】
カレンダホィールは、ビデオストリーム用のフレームとパケットとのスケジューリングに特に適した２つの重要な特徴を有している。一方の特徴として、イベントをスケジュールに載せる時刻が一定であり、この時刻はカレンダホィールのサイズ、すなわちスケジュールに載せられているイベントの数には左右されないという点が挙げられる。他方の特徴として、同じコッグ内のイベントに関する厳しい順序付けが存在しなければ、イベントのスケジュール時刻が一定であるという点が挙げられる。
【００３１】
整形を伴う数千のビデオストリームのストリーミングは、スケジュールされる１００００のオーダーのイベントが存在することを意味する。したがって、上記双方の特徴は高性能ビデオストリームにおいて極めて重要なものとなる。本発明は、フレームとパケットとをビデオストリームの形でタイムリにスケジューリングするためのベースとして用いられるカレンダホィール方法を規定するものである。新規の特徴について以下さらに詳細に説明する。
【００３２】
図３は、動画におけるフレーム／パケットをタイムリにクライアントへ配信するための本発明の実施形態に基づくＶｏＤストリーミングサーバ１１０を示す図である。ストリーミングサーバの１つの重要な部分として、前述したカレンダホィールすなわち円形アレイとして実装されるメモリアレイ２００がある。カレンダホィールは、複数のコッグすなわち、本例で１０２４個の個数となるエレメント３１０を備えている。個々のコッグ／エレメントに対して、フレーム又はパケットの送信用ストリームデータの保持が可能な情報領域３１２が存在する。このストリームデータには、以下の情報が含まれる：ストリーム２６などのストリーム番号、動画１１などの動画用アイデンティティ及びフレーム番号（本例ではフレーム１８）に関する情報。オプションとしてパケット番号又はパケット・アイデンティティ（パケットＮｏ．）を含むことも可能である。本例で、コッグ番号３に含まれる一時的に記憶されたストリームデータ情報はどのストリームが動画１１のフレーム１８を送出するかに関する情報である。ストリームデータがコッグ用の情報領域３１２に存在しなければ、フレームはこのコッグ期間、クライアントへは送信されない。
【００３３】
動画は単にストリーム済みメディアの１例であり、このストリーム済みメディアである動画以外の任意の種類のメディアであってもよい。したがって、動画１１はメディア・アイデンティティの１例である。
【００３４】
個々のコッグは規定の期間を表し、本例ではこの期間は１パケットについて０．５ｍｓである。ポインタ３１４は、カレンダホィール内のすべてのコッグの中を１ステップずつ進み、０．５ｍｓ毎に１つのコッグを動かす。ポインタがコッグ番号３に達すると、フレームをクライアントへ配信するためにストリームデータフィールド内の情報がフェッチされる。ポインタ３１４は、現在のコッグのインデックスを保持しつつプログラム／プロセッサ３１８として実装される。ハードウェアのタイマすなわちクロック３２０はプロセッサ３１８を制御して、カレンダホィールが選択済みの一定のスピード（本例では１コッグ当たり０．５ｍｓ）で回動するように保証している。プロセッサ３１８はカレンダホィール２００からのストリームデータの読出しを制御している。
【００３５】
図３のカレンダホィール２００には個々のコッグのための通知領域３１６も含まれ、この通知領域には、通知情報が複数のコッグのスケジューリング手順を行うための情報として保持されている。
【００３６】
したがって、要約すると、カレンダホィールすなわちメモリアレイ２００は、ＳＴＢを有する加入者へ向けて送信する対象フレーム又はパケットに関する情報を保持することになる。本例では個々のコッグすなわちエレメントは０．５ｍｓを表し、カレンダホィールは１０２４個のコッグ／エレメントに関する情報を保持している。このことは、ホィール全体が約＝１０２４＊０．５ｍｓで処理されることを意味する。個々のコッグには、フレーム／パケットを上記コッグ期間中に送信しなければならないストリームのリストが含まれている。コッグによっては、フレームを送信する必要がないものもあれば、いくつかのフレーム／パケットを送信できるものもある。コッグへの個々のエントリには、上記出力部が属しているストリームと、送信すべき動画及び動画内のフレームとに関する情報が含まれている。コッグはイベントをスケジュールすることができる小さな期間を表す。ストリームはＳＴＢへ向うストリームを表す。
【００３７】
ビデオ・オン・デマンドストリーミングサーバにおいて、データベース３２１には、１例として動画が挙げられるメディアに関連するフレーム情報が含まれている。個々の動画について、動画を表す識別番号が存在し、上記データベースは個々の動画についてソートされた情報により構成される。例えば、本願の例ではコッグ内の情報は、動画１１内のフレーム１８をストリーム２６でクライアントへ送信するように命じている。
【００３８】
データベース３２１には、個々の動画に対して、動画内のすべてのフレームに関する情報が含まれているフレームインデックス欄が含まれ、さらに、復号化を行うためのフレームの順序を送信する必要がある。また上記データベースには、復号化を行うためにフレームをＳＴＢへ送信する時刻であるＤＴＳ情報（復号化タイムスタンプ）含む時刻欄３２４が含まれている。ＤＴＳは単に一例であり、他の方法で時刻を記述してもよい。スケジューリングに用いられるこの情報について以下説明する。フレームがビデオ記憶装置１４０のどこに保存されているかに関する情報を意味するフレームロケーション情報が第３の欄３２６に存在する。したがって、前述したようにプロセッサ３１８はカレンダホィール２００からのストリームデータの読出しを制御し、次いでプロセッサはストリームデータの読出しの際に、データベース３２１内のロケーション情報を用いて、メディア記憶装置からの（ストリームデータ内の）フレームのフェッチを制御することになる。
【００３９】
代替例として、基本通知が動画ではなくストリームとなるように、データベース３２１を別の方法で構成することも可能である。
【００４０】
ＶｏＤストリーミングサーバ１１０は、ストリームの形で送信されるフレームが送信前に入れられる出力記憶装置３２８、３３０、３３２をさらに備える。動画１１内のフレーム１８は、ビデオ記憶装置１４０内の該フレームのロケーションからフェッチされ、次いで、出力部３２８へ配信され、この出力部３２８からフレーム１８はストリーム２６の形でクライアントのＳＴＢへ送信される。
【００４１】
図１、２、３に記載の通信システムにおける信号が図４のシーケンス図によって例示されている。この図は、読み出されたコッグメッセージ４１０をカレンダホィール２００へ送信するプロセッサ３１８から始まる基本フローである。前述の記載によれば、プロセッサはどのコッグを読み出すべきかを追跡している。コッグからのストリームデータがフェッチされる（ステップ４１２）。例えば、このストリームデータは、ストリーム番号２６について前述したコッグ３のストリームデータ、動画番号１１、及びフレーム１８であってもよい。前述したように、パケット番号を示すことも可能である。次いで、プロセッサ３１８は、ロケーションに関する動画１１のフレーム情報を求める要求４１４をデータベース３２０へ送信する。これに対する返信としてデータベースは動画１１内のフレーム１８のロケーションに関する情報を送信する（ステップ４１６）。このロケーションは本例ではビデオ記憶装置１４０内のアドレスである。さらに、プロセッサ３１８はフレーム１８のＳＴＢへの送信要求をビデオ記憶装置１４０へ発信する（ステップ４１８）。この要求にはフレームに関連するロケーション情報が含まれている。ステップ４１８で上記送信要求が受信されると、フレーム１８は、好適には前述した方法でビデオ記憶装置からＳＴＢ１１２へ送信される（ステップ４２０）。オプションとして、フレーム１８は完全なフレームでなく、フレーム内のパケットであってもよく、このパケットは前述のパケットによって示されるものである。
【００４２】
フレーム／パケットが送信されるか、おそらく１つのコッグの中のいくつかのフレームが送信されると、次のフレームのスケジューリングを行う手順が行われる。いくつかのフレームが送信される場合、これらのフレームは異なる動画に属していることを意味する。図４において、次のフレームに関連する時刻情報をステップ４２２で取得するためにプロセッサ３１８がデータベース３２０と通信するとき、上記手順が開始する。次のフレームは、本例では時刻欄３２４から得られるフレーム１９である（図３を参照のこと）。プロセッサ３１８は、メッセージ内の動画１１のフレーム１９用のＤＴＳ情報を受信する（ステップ４２４）。ステップ４２４でのメッセージの受信時に、プロセッサはＳＴＢへ送信するフレーム１９用のコッグをステップ４２６において計算する。次いで、フレーム１９用のストリームデータはカレンダホィール２００内の計算済みのコッグに保存される（ステップ４２８）。点線の矢印４３０はコッグ４１０からの読出し処理が再び開始したことを示す。
【００４３】
この図４は、本発明のための方法と、システム内のエンティティ間でのインタラクションとを簡単に説明する図である。図５ａ、ｂ及びｃにおいて、コッグのスケジューリングを行うための別の実施形態を用いて本方法についてさらに説明する。
【００４４】
図５ａのフローチャートによる方法は、ストリームデータが動作中コッグの中に存在するか否かをポインタ３１４を介するプロセッサ３１８（図３を参照のこと）が判定するステップ５００から開始する。動作中コッグはポインタが現時点にあるコッグである。前述したように、コッグは規定のコッグ期間を表す。図３の例によれば、ポインタ３１４はストリームデータを運ぶコッグ番号３に置かれている。コッグ番号３の中にストリームデータが存在しているため、プロセッサ３１８はストリームデータすなわちストリーム２６と、動画１１と、フレーム１８とをフェッチする。このフェッチは図５ａのステップ５２０において行われる。
【００４５】
ストリームデータがコッグの中に存在していなければ、例えば図３においてコッグがコッグ番号２であったった場合、代わりに次のステップは、１つの規定のコッグの期間、待機するステップ５０５と、動作中コッグのコッグインデックスの更新（今回は動作中コッグはコッグ番号３となることを意味する）を含むステップ５１０とになっていたはずである。次いで、手順／方法は、ストリームデータが動作中コッグの中に存在しているか否かの判定を行うステップ５００から始まる。
【００４６】
ストリームデータがプロセッサ３１８へフェッチされるステップ５２０の後、次のステップ５２５は現在のフレーム（本例ではビデオ記憶装置から得られる動画１１のフレーム１８）を取得するステップとなる。このステップを実行するために、動画及び現在のフレームに関連するストリーム情報が用いられる。上記現在のフレームの取得ステップは、現在のフレームがどこに位置しているかをデータベース３２１から判定し、その位置から現在のフレームをフェッチし、現在のフレームを出力メモリ３２８に記憶するステップを含む。
【００４７】
フレームをクライアントへタイムリに配信する本方法における最後のステップは現在のフレームをクライアントへ送信するステップ５３０である。このとき、本方法が判定ステップ５００から再び開始する前にステップ５０５と５１０とが実行される。
【００４８】
前記フェッチステップ５２０の後で、動作中コッグ内のストリームデータを除去するステップが実行される。ストリームデータの除去後、新たなストリームデータをカレンダホィールの中に入力することができる。
【００４９】
本方法にはフレームのスケジューリングも含まれる。２つのスケジューリングの実施形態５２２及び５２３が存在するが、これらの実施形態は図５ａに点線で図示のようにフェッチステップ５２０の直後か、送信ステップ５３０の後かのいずれかの時点に行うことができる。
【００５０】
第１のスケジューリングの実施形態５２２は単一のコッグのスケジューリング手順であり、この手順には次のフレーム＝現在のフレーム＋１としてスケジュールされるコッグを計算するステップ５４０が含まれる。このステップは、図３の例では動画１１のフレーム１９用のスケジュールを行うステップである。この計算ステップはフレーム情報テーブル３２０内の次のフレーム用の時刻情報ＤＴＳをフェッチすることにより行われる。カレンダホィールにおいてこの時刻情報を規定のコッグ期間と共に用いて、次のフレーム用のストリーム情報が挿入されることになるスケジュールされるコッグの計算が行われる。
【００５１】
プロセッサ３１８はアルゴリズムに従って計算を行う。この計算は、例えば、｛ＤＴＳ（フレーム１９）−ＤＴＳ（フレーム１８）｝／規定のコッグ期間＝コッグの数とすることができる。
【００５２】
このことは、現在のコッグに先んじてストリームデータの入力が上記結果（コッグの数）という形で実行されることを意味する。現在のコッグが番号３であり、かつ、コッグの数が７００と計算された場合、フレーム１９用のストリームデータはコッグ番号７０３で入力されることになる。
【００５３】
代替の実施形態として複数のコッグのスケジューリング手順５２３がある。この手順では、複数のコッグのスケジューリング手順が要求されていることを意味する最後のコッグ通知情報が存在しているか否かの判定方法がコッグ番号３などの動作中コッグの中に含まれているか否かの判定が最初に実行される。この判定は、新たな複数のコッグのスケジューリングを実行するように命じる図３の単純なマーク×であってもよい。
【００５４】
図３に例示されているようなマークが存在すれば、複数のコッグのスケジューリング手順５２３を行う必要がある。本方法は単一のコッグのスケジューリング手順の場合と類似した方法であるが、相違点として、１０個などの複数のコッグが同時に計算され、１０個のスケジュールされるコッグの中にストリームデータを入力するステップ５６０が結果として得られ、次いで、最終的にステップ５６５で、このコッグがストリームデータ情報を保持する最後のコッグであり、新たなスケジューリングを行う必要がある旨の通知情報がスケジュールされる最後のコッグの中に入力されるという点が挙げられる。したがって、この複数のコッグのスケジューリング手順では、送出される個々のフレームに対するスケジューリングは行われないことになる。代わりに、複数のフレームが同時にスケジュールされる。
【００５５】
本発明はストリーミングサーバからクライアントへメディアオブジェクトのストリーミングを行うためのコンピュータプログラム製品も含むものであり、該コンピュータプログラム製品は、コンピュータ上で実行されるとき、図５に記載の方法を実行する。
【００５６】
本発明によれば、加入者回線のＳＬＡＳに関してパケットスケジューリング又はパケット整形を可能にする非常に効率のよい方法でフレームスケジューリングが行われる。というのは、本発明によって帯域幅の制御を保つことが可能となるからである。
【図１】
2010525738.tif 000003
【図２ａ】
2010525738.tif 000004
【図２ｂ】
2010525738.tif 000005
【図２ｃ】
2010525738.tif 000006
【図２ｄ】
2010525738.tif 000007
【図３】
2010525738.tif 000008
【図４】
2010525738.tif 000009
【図５ａ】
2010525738.tif 000010
【図５ｂ】
2010525738.tif 000011
【図５ｃ】
2010525738.tif 000012
【手続補正書】
【提出日】平成21年2月13日(2009.2.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フレームをクライアントへ配信するストリーミングサーバにおける方法であって、
それぞれ規定の期間を表すエレメントを備えたメモリアレイの動作エレメントの中にストリームデータが存在するか否かを判定するステップと、
ストリーム番号に関する情報と、メディア・アイデンティティと、現在のフレーム番号とを含むストリームデータを、前記動作エレメントからフェッチするステップと、
メディア・アイデンティティと現在のフレームとに関連する情報を用いて、前記現在のフレームをメディア記憶装置から取得するステップと、
前記フェッチしたストリームデータのストリームにより前記現在のフレームをクライアントへ送信するステップと、
データベース内の次のフレームの時刻情報をフェッチするステップと、
前記時刻情報を前記規定の期間と共に用いてエレメントを計算することにより前記次のフレームをスケジュールし、該次のフレームのストリームデータを該エレメントに挿入するステップと
を有することを特徴とする方法。
【請求項２】
前記規定の期間、待機するステップと、
動作エレメント＝動作エレメント＋１として、エレメントインデックスを更新するステップと
をさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
次のフレームのためにスケジュールされるエレメントを計算するステップと、
ストリーム番号、メディア・アイデンティティ及び次のフレーム番号に関する情報を前記スケジュールされるエレメントの中に入力するステップと、を有する単一のエレメントのスケジューリング手順をさらに有することを特徴とする請求項１又は２に記載の方法。
【請求項４】
複数の次のフレームについて、複数のスケジュールされたエレメントを計算するステップと、
前記スケジュールされたエレメントにストリームデータの情報を入力するステップと、
それが最後のエレメントであること、ストリームデータ情報を保持していること、及び、新たなスケジューリングを行う必要があることを示す通知情報を、最後のスケジュールされたエレメントの中に入力するステップと
を有する複数エレメントのスケジューリング手順をさらに有することを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記複数エレメントのスケジューリング手順は、
新たな複数エレメントのスケジューリングを行うべきか否かを前記動作エレメント内の情報から判定するステップで始まることを特徴とする請求項５に記載の方法。
【請求項６】
前記送信するステップに先行して、
前記現在のフレームがどこのロケーションに存在するかをフレーム索引テーブルから判定するステップと、
前記現在のフレームを前記ロケーションからフェッチし、前記現在のフレームを出力メモリに記憶するステップと
を行うことを特徴とする請求項１に記載の方法。
【請求項７】
フレームが一連のパケットから構成されることを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
メディア記憶装置からクライアントへフレームを配信するストリーミングサーバであって、
規定の期間中にフレーム／パケットがクライアントへ配信される場合、コッグがストリームデータ情報を運ぶ該期間を表すコッグを備えたカレンダホィールと、
クライアントへ配信されるメディアのフレーム／パケット情報であって、該フレーム情報は、フレーム／パケットのロケーション情報と、前記フレームが前記クライアントへ配信される時刻の時刻情報とを含む、フレーム／パケット情報を有するデータベースと、
前記カレンダホィールからのストリームデータのフェッチ／読出しを制御すると共に、フレーム／パケットの前記ロケーション情報を用いて、前記フレーム／パケットの前記メディア記憶装置からのフェッチを制御し、次のフレームの時刻情報を用いて該次のフレームのスケジューリングを行うコッグをさらに計算する、プロセッサと、
前記フレーム／パケットをクライアントへ配信する、前記ストリームと接続された出力手段と
を備えることを特徴とするストリーミングサーバ。
【請求項９】
前記ストリームデータ情報は、ストリーム番号と、メディア・アイデンティティと、フレーム番号とを有することを特徴とする請求項８に記載のストリーミングサーバ。
【請求項１０】
前記カレンダホィールは最後のコッグ通知情報を含むことを特徴とする請求項８に記載のストリーミングサーバ。
【請求項１１】
前記ストリーミングサーバはビデオ・オン・デマンドストリーミングサーバであり、前記メディアは特定された動画に関するものであることを特徴とする請求項８に記載のストリーミングサーバ。
【請求項１２】
前記カレンダホィールはメモリアレイであり、コッグは当該メモリアレイ中のエレメントであることを特徴とする請求項８から１１のいずれか１項に記載のストリーミングサーバ。
【手続補正書】
【提出日】平成21年12月15日(2009.12.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フレームをクライアントへ配信するストリーミングサーバにおける方法であって、
それぞれ規定の期間を表すエレメントを備えたメモリアレイの動作エレメントの中にストリームデータが存在するか否かを判定するステップと、
ストリーム番号に関する情報と、メディア・アイデンティティと、現在のフレーム番号とを含むストリームデータを、前記動作エレメントからフェッチするステップと、
メディア・アイデンティティと現在のフレームとに関連する情報を用いて、前記現在のフレームをメディア記憶装置から取得するステップと、
前記フェッチしたストリームデータのストリームにより前記現在のフレームをクライアントへ送信するステップと、
データベース内の次のフレームの時刻情報をフェッチするステップと、
前記時刻情報を前記規定の期間と共に用いてエレメントを計算することにより前記次のフレームをスケジュールし、該次のフレームのストリームデータを該エレメントに挿入するステップと
を有することを特徴とする方法。
【請求項２】
前記規定の期間、待機するステップと、
動作エレメント＝動作エレメント＋１として、エレメントインデックスを更新するステップと
をさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
次のフレームのためにスケジュールされるエレメントを計算するステップと、
ストリーム番号、メディア・アイデンティティ及び次のフレーム番号に関する情報を前記スケジュールされるエレメントの中に入力するステップと、を有する単一のエレメントのスケジューリング手順をさらに有することを特徴とする請求項１又は２に記載の方法。
【請求項４】
複数の次のフレームについて、複数のスケジュールされたエレメントを計算するステップと、
前記スケジュールされたエレメントにストリームデータの情報を入力するステップと、
それが最後のエレメントであること、ストリームデータ情報を保持していること、及び、新たなスケジューリングを行う必要があることを示す通知情報を、最後のスケジュールされたエレメントの中に入力するステップと
を有する複数エレメントのスケジューリング手順をさらに有することを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記複数エレメントのスケジューリング手順は、
新たな複数エレメントのスケジューリングを行うべきか否かを前記動作エレメント内の情報から判定するステップで始まることを特徴とする請求項４に記載の方法。
【請求項６】
前記送信するステップに先行して、
前記現在のフレームがどこのロケーションに存在するかをフレーム索引テーブルから判定するステップと、
前記現在のフレームを前記ロケーションからフェッチし、前記現在のフレームを出力メモリに記憶するステップと
を行うことを特徴とする請求項１に記載の方法。
【請求項７】
フレームが一連のパケットから構成されることを特徴とする請求項１から６のいずれか１項に記載の方法。
【請求項８】
メディア記憶装置からクライアントへフレームを配信するストリーミングサーバであって、
規定の期間中にフレーム／パケットがクライアントへ配信される場合、コッグがストリームデータ情報を運ぶ該期間を表すコッグを備えたカレンダホィールと、
クライアントへ配信されるメディアのフレーム／パケット情報であって、該フレーム情報は、フレーム／パケットのロケーション情報と、前記フレームが前記クライアントへ配信される時刻の時刻情報とを含む、フレーム／パケット情報を有するデータベースと、
前記カレンダホィールからのストリームデータのフェッチ／読出しを制御すると共に、フレーム／パケットの前記ロケーション情報を用いて、前記フレーム／パケットの前記メディア記憶装置からのフェッチを制御し、次のフレームの時刻情報を用いて該次のフレームのスケジューリングを行うコッグをさらに計算する、プロセッサと、
前記フレーム／パケットをクライアントへ配信する、前記ストリームと接続された出力手段と
を備えることを特徴とするストリーミングサーバ。
【請求項９】
前記ストリームデータ情報は、ストリーム番号と、メディア・アイデンティティと、フレーム番号とを有することを特徴とする請求項８に記載のストリーミングサーバ。
【請求項１０】
前記カレンダホィールは最後のコッグ通知情報を含むことを特徴とする請求項８に記載のストリーミングサーバ。
【請求項１１】
前記ストリーミングサーバはビデオ・オン・デマンドストリーミングサーバであり、前記メディアは特定された動画に関するものであることを特徴とする請求項８に記載のストリーミングサーバ。
【請求項１２】
前記カレンダホィールはメモリアレイであり、コッグは当該メモリアレイ中のエレメントであることを特徴とする請求項８から１１のいずれか１項に記載のストリーミングサーバ。
【国際調査報告】
2010525738.tif 000013
2010525738.tif 000014
2010525738.tif 000015
2010525738.tif 000016