(57)【要約】【課題】低価格な大容量記憶装置を用いつつ、迅速な放送素材の送出を可能にする、低価格でありながら利便性の高い映像配信装置、映像配信方法及び映像配信プログラムを提供する。【解決手段】第二ストレージ２１４のタイムラグを解消するために、第一ストレージ２０４に動画先頭ファイル３０２を格納しておき、コンソール１０６あるいはデコーダ１０４から読み出し指令が来たら、最初は第一ストレージ２０４から動画先頭ファイル３０２を読み出してデコーダ１０４に送出する。そして、先読みバッファ４０１に第二ストレージ２１４から読み出された動画ファイル３０１のデータが溜まったことを確認したら、切替スイッチ４０２を制御して、先読みバッファ４０１から動画ファイル３０１のデータを読み出してデコーダ１０４に送出する。【選択図】図４
2014175687.tif 000002
【特許請求の範囲】
【請求項１】
動画ファイルの先頭部分よりなる動画先頭ファイルが格納される第一ストレージと、
前記動画ファイルが格納され、前記第一ストレージより記憶容量が大きく、かつ前記第一ストレージよりファイル転送要求に対する応答速度が遅い第二ストレージと、
前記動画ファイルと前記動画先頭ファイルの対応関係が記述されているインデックステーブルと、
前記第二ストレージから送出される前記動画ファイルのデータを一時的に蓄積する先読みバッファと、
上位装置から前記動画ファイルに対する再生指示を受けて、前記インデックステーブルから前記動画ファイルのファイル名と前記動画先頭ファイルのファイル名を取得し、前記第一ストレージに対して前記動画先頭ファイルの送出を指示するとともに、前記第二ストレージに対して前記動画ファイルの送出を指示し、前記先読みバッファに前記動画ファイルのデータが蓄積されるまでは前記動画先頭ファイルをデコーダに出力し、前記先読みバッファに前記動画ファイルのデータが蓄積された後は前記先読みバッファの前記データをデコーダに出力する、配信制御部と、
を具備する映像配信装置。
【請求項２】
更に、
前記第一ストレージから送出される前記動画先頭ファイルのデータ量を計数する第一バイトカウンタと
を具備し、
前記配信制御部は、前記第一バイトカウンタが計数する前記データ量に対応するオフセット位置以降のデータを前記先読みバッファから読み出す、
請求項１に記載の映像配信装置。
【請求項３】
更に、
前記第二ストレージから送出される前記動画ファイルのデータ量を計数する第二バイトカウンタと
を具備し、
前記配信制御部は、前記第一バイトカウンタが前記動画先頭ファイルの先頭位置から計数した前記データ量に対応する位置以降のデータが前記先読みバッファに蓄積されたことを前記第二バイトカウンタが計数した前記データ量に基づいて検出したら、前記第一バイトカウンタが計数する前記データ量に対応する位置以降のデータを前記先読みバッファから読み出す、
請求項２に記載の映像配信装置。
【請求項４】
前記配信制御部は、前記第一ストレージに対して前記動画先頭ファイルの送出を指示するとともに、前記第二ストレージに対して前記動画ファイルの、前記動画先頭ファイルと重複しない部分の先頭位置以降の送出を指示し、前記第一バイトカウンタが計数する前記データ量が前記動画先頭ファイルのデータ量と一致した時に、前記先読みバッファからデータを読み出す、
請求項２に記載の映像配信装置。
【請求項５】
上位装置から動画ファイルに対する再生指示を受けて、前記動画ファイルと、前記動画ファイルの先頭部分よりなる動画先頭ファイルとの対応関係が記述されているインデックステーブルを参照して、前記再生指示に該当する前記動画ファイルと前記動画先頭ファイルを特定するステップと、
前記動画先頭ファイルが格納されている第一ストレージに対して前記動画先頭ファイルの送出を指示するとともに、前記動画ファイルが格納されている第二ストレージに対して前記動画ファイルの送出を指示するステップと、
前記動画先頭ファイルのデータをデコーダに送出するとともに、前記動画ファイルのデータを先読みバッファに蓄積するステップと、
前記先読みバッファに蓄積されたデータを前記動画先頭ファイルのデータに代えて前記デコーダに送出するステップと、
を含む映像配信方法。
【請求項６】
上位装置から動画ファイルに対する再生指示を受けて、前記動画ファイルと、前記動画ファイルの先頭部分よりなる動画先頭ファイルとの対応関係が記述されているインデックステーブルを参照して、前記再生指示に該当する前記動画ファイルと前記動画先頭ファイルを特定する手順と、
前記動画先頭ファイルが格納されている第一ストレージに対して前記動画先頭ファイルの送出を指示するとともに、前記動画ファイルが格納されている第二ストレージに対して前記動画ファイルの送出を指示する手順と、
前記動画先頭ファイルのデータをデコーダに送出するとともに、前記動画ファイルのデータを先読みバッファに蓄積する手順と、
前記先読みバッファに蓄積されたデータを前記動画先頭ファイルのデータに代えて前記デコーダに送出する手順と、
をコンピュータに実行させる、映像配信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像配信装置、映像配信方法及び映像配信プログラムに関する。
【背景技術】
【０００２】
テレビジョン放送業務を遂行する、テレビジョン放送局やインターネットテレビ配信機関等の放送局は、ビデオサーバシステムを用いて、予め記憶装置に記憶された番組やコマーシャル等の放送素材を放送する。かつて放送素材を記憶する記憶媒体は磁気テープが用いられていたが、技術の進歩に伴い、放送素材がアナログビデオ信号からデジタルデータに変遷したことに伴い、光ディスクや光磁気ディスク、そして固定磁気ディスク装置（以下「ＨＤＤ」と略す。）へ変遷している。更に、迅速な放送素材の送出を目的として、近年大容量化及び低価格化が著しいフラッシュメモリも使用され始めている。
【０００３】
近年大容量化が著しいＨＤＤは、フラグメンテーション等で所望のファイルを読み出すまでに要する時間がかかる、という問題を抱えている。また、ＨＤＤは経年劣化等に起因するクラッシュの危険性をはらんでいるので、業務用途では複数のＨＤＤで構成されるディスクアレイ（以下「ＲＡＩＤ」と略す。）を用いることが多いが、このＲＡＩＤもアクセス速度低下の一因になり得る。このように、ビデオサーバシステムにＨＤＤを採用する場合、アクセス速度が放送素材を迅速に送出する目的に適わない場合がある。
【０００４】
なお、本発明に類似すると思われる技術が開示されている先行技術文献を、特許文献１に示す。特許文献１には、外部ストレージ装置に映像データを分割して配置することで、ビデオサーバにコピーし配信可能な状態にする待ち時間を削減する仕組みが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２３２３５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されている技術は、所定の映像データを先頭から配信する要求に対して、迅速に配信可能な状態にするために、外部ストレージ装置からビデオサーバへ映像データをコピーする。しかし、この映像データのコピーはクリティカルな処理である。具体的には、外部ストレージ装置の映像データ読み出し性能、外部ストレージ装置からビデオサーバへの映像データ転送性能によって、配信可能となるまでの待ち時間が変動する。特に、外部ストレージにＨＤＤを使用した場合、最悪のケースで１０秒以上の遅延が発生する場合もある。
このような課題を解決するには、読み出し速度が早いフラッシュメモリを用いることが考えられるが、フラッシュメモリはＨＤＤと比べるとまだ高価であり、記憶容量も少ない。また、ＨＤＤより書き込みの速度が遅い。
【０００７】
本発明は係る状況に鑑みてなされたものであり、低価格な大容量記憶装置を用いつつ、迅速な放送素材の送出を可能にする、利便性の高い映像配信装置、映像配信方法及び映像配信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の映像配信装置は、動画ファイルの先頭部分よりなる動画先頭ファイルが格納される第一ストレージと、動画ファイルが格納される第二のストレージを備える。この第二のストレージは、第一ストレージより記憶容量が大きく、かつ第一ストレージよりファイル転送要求に対する応答速度が遅いものである。
また、本発明の映像配信装置は、動画ファイルと動画先頭ファイルの対応関係が記述されているインデックステーブルと、第二ストレージから送出される動画ファイルのデータを一時的に蓄積する先読みバッファとを有する。
本発明の映像配信装置が備える配信制御部は、上位装置から動画ファイルに対する再生指示を受けて、インデックステーブルから動画ファイルのファイル名と動画先頭ファイルのファイル名を取得する。そして、第一ストレージに対して動画先頭ファイルの送出を指示するとともに第二ストレージに対して動画ファイルの送出を指示する。更に、先読みバッファに動画ファイルのデータが蓄積されるまでは動画先頭ファイルをデコーダに出力し、先読みバッファに動画ファイルのデータが蓄積された後は先読みバッファのデータをデコーダに出力する。
【発明の効果】
【０００９】
本発明によれば、大容量記憶装置を用いつつ、迅速な放送素材の送出を可能にすることにより、低価格でありながら利便性の高い映像配信装置、映像配信方法及び映像配信プログラムを提供することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態であるビデオサーバシステムの全体構成を示す模式図である。
【図２】ビデオサーバとネットワークストレージのハードウェア構成を示すブロック図である。
【図３】第一ストレージと第二ストレージに記憶されている動画ファイルの一例を模式的に示す図である。
【図４】ビデオサーバとネットワークストレージの、ソフトウェアの機能を示すブロック図である。
【図５】インデックステーブルのフィールド構成を示す図である。
【図６】本発明の第一の実施形態に係る、ビデオサーバによる動画データ配信処理の動作の流れを示すフローチャートである。
【図７】動画ファイル及び動画先頭ファイルと先読みバッファの関係及び状態を示す模式図である。
【図８】本発明の第二の実施形態に係る、ビデオサーバとネットワークストレージの、ソフトウェアの機能を示すブロック図である。
【図９】本発明の第二の実施形態に係る、ビデオサーバによる動画データ配信処理の動作の流れを示すフローチャートである。
【図１０】動画ファイル及び動画先頭ファイルと先読みバッファの関係を示す模式図である。
【図１１】本発明の第三の実施形態に係る、ビデオサーバとネットワークストレージの、ソフトウェアの機能を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、図１、２を参照して、本発明の実施形態である、ビデオサーバシステム１０１について説明する。
図１は、本発明の実施形態であるビデオサーバシステム１０１の全体構成を示す模式図である。図２は、ビデオサーバとネットワークストレージのハードウェア構成を示すブロック図である。
ビデオサーバ１０２は、アクセス速度が高速な、半導体の不揮発性ストレージである第一ストレージ２０４（図２参照）を備える。
ビデオサーバ１０２に接続されているネットワークストレージ１０３は、第一ストレージ２０４よりアクセス速度が低速で大容量な不揮発性ストレージである第二ストレージ２１４（図２参照）を備える。
第二ストレージ２１４には動画ファイルをそのまま格納する。第一ストレージ２０４には、第二ストレージ２１４に格納される動画ファイルの、先頭から所定の再生時間に相当する分だけ切り出した、動画先頭ファイルを格納する。
【００１２】
ビデオサーバ１０２は、上位装置から動画コンテンツの再生指示を受けると、先ず、該当する動画ファイルと、動画先頭ファイルを特定する。そして、第一ストレージ２０４から動画先頭ファイルを読み出して、デコーダへ送出する。これとともに、ネットワークストレージ１０３に対しても動画ファイルの再生指示を発行する。ネットワークストレージ１０３は第二ストレージ２１４から動画ファイルを読み出し、ビデオサーバ１０２に送出する。ビデオサーバ１０２は動画ファイルを受信すると、一旦先読みバッファに蓄積する。そして、先読みバッファに所定のデータ量が蓄積されたら、ビデオサーバ１０２はデコーダに送出するデータを、動画先頭ファイルから先読みバッファ内の動画ファイルに切り替える。こうして、再生指示の発行からファイルの読み出しに時間がかかる第二ストレージ２１４の速度を補いつつ、高価な第一ストレージの容量を必要最小限に抑えることができる。
【００１３】
本実施形態のビデオサーバシステム１０１は、動画像データを配信する際、二通りの動作を実施できる。この二通りの動作をそれぞれ、第一の実施形態と第二の実施形態で説明する。第一の実施形態と第二の実施形態は、ハードウェアの構成が共通し、ソフトウェアの機能と動作が異なる。また、第三の実施形態では動画像データをビデオサーバシステムに格納する手順を説明する。
【００１４】
［ビデオサーバシステム１０１の全体構成］
図１に示し、上述したように、ビデオサーバシステム１０１は、映像データを送出するビデオサーバ１０２と、ビデオサーバ１０２に映像データを供給するネットワークストレージ１０３を備える。更に、ビデオサーバシステム１０１は、映像データを映像信号へデコードする複数のデコーダ１０４ａ〜１０４ｎと、映像信号を選択的に送信設備に送出するスイッチャ１０５と、ビデオサーバ１０２とスイッチャ１０５を制御するコンソール１０６を備える。
デコーダ１０４は、第一デコーダ１０４ａ、第二デコーダ１０４ｂ…第ｎデコーダ１０４ｎで示すように複数のデコーダ１０４ａ〜１０４ｎを有し、これら複数のデコーダ１０４ａ〜１０４ｎがビデオサーバ１０２とスイッチャ１０５との間に設けられている。
【００１５】
一方、無圧縮の動画像データあるいはアナログの動画像信号は、第一エンコーダ１０７ａ、第二エンコーダ１０７ｂ…第ｎエンコーダ１０７ｎに示すように、複数のエンコーダ１０７によって所定のエンコード処理や圧縮処理を施された動画像データに変換される。そして、この変換された動画像データがビデオサーバ１０２に供給される。また、エンコーダ１０７を介することなく、予めエンコード処理及び圧縮処理された動画像データが直接、ビデオサーバ１０２に供給されることもある。
【００１６】
デコーダ１０４ａ〜１０４ｎとスイッチャ１０５との間はシリアルデジタルインタフェース（Serial Digital Interface: SDI）で接続されている。それ以外の、コンソール１０６とビデオサーバ１０２、コンソール１０６とスイッチャ１０５、ビデオサーバ１０２とネットワークストレージ１０３、ビデオサーバ１０２と複数のデコーダ１０４ａ〜１０４ｎとの間は、ネットワークで接続されている。
スイッチャ１０５の出力信号、すなわちデジタル映像信号は図示しない送信設備に送られる。送信設備はデジタル映像信号に所定のエンコード処理を施して、テレビジョン放送帯の電波として出力する。但し、送信設備は対象となる媒体に応じて変化する。もし、放送局がインターネットテレビ局であれば、ストリーム動画のエンコード処理を施して、インターネットに接続される放送用ストリームサーバへ出力する。本実施形態では、放送設備は発明の主たる構成要素ではないので、詳細な図示と説明を省略する。
【００１７】
［ビデオサーバ１０２とネットワークストレージ１０３のハードウェア構成］
また、図２に示すように、ビデオサーバ１０２とネットワークストレージ１０３は、いずれも周知のコンピュータシステムである。コンピュータシステムはパーソナルコンピュータを用いてもよい。
ビデオサーバ１０２は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、第一ストレージ２０４と第一ＮＩＣ２０５が、バス２０６に接続されている。なお、ビデオサーバ１０２にパーソナルコンピュータを用いる場合、表示部２０７及び操作部２０８を伴うが、表示部２０７及び操作部２０８は必ずしも必要とはされない。
ネットワークストレージ１０３もビデオサーバ１０２と同様に、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、第二ストレージ２１４と第二ＮＩＣ２１５が、バス２１６に接続されている。なお、ネットワークストレージ１０３にパーソナルコンピュータを用いる場合、表示部２１７及び操作部２１８が伴うが、この表示部２１７及び操作部２１８も同様に必ずしも必要とはされない。
第一ＮＩＣ２０５と第二ＮＩＣ２１５はネットワーク２１９に接続されている。なお、第一ＮＩＣ２０５にはこの他にもデコーダ１０４、コンソール１０６やエンコーダ１０７とも接続されているが、図２では図示を省略している。
【００１８】
第一ストレージ２０４はフラッシュメモリ等を用いたＳＳＤ（solid state drive）等の高速な不揮発性記憶装置である。記憶媒体に形成される物理的変化を直接的に電気信号に相互変換する、情報の記録及び再生に機械部品を用いない、静的記憶装置がこれに該当する。
第二ストレージ２１４はＨＤＤ等の、第一ストレージ２０４より低速で大容量の不揮発性記憶装置である。記憶媒体に形成される物理的変化を、記憶媒体と相対的な移動を行うピックアップを通じて検出し、あるいは形成することで、情報の記録及び再生を行う、情報の記録及び再生に機械部品を必要とする、動的記憶装置がこれに該当する。
【００１９】
第一ストレージ２０４には、一般的なネットワークＯＳと、コンピュータをビデオサーバ１０２として機能させるためのアプリケーションプログラムが記憶されている。ビデオサーバ１０２はネットワークＯＳと当該アプリケーションプログラムがコンピュータ上で稼働することによって成り立つ。
第二ストレージ２１４には、一般的なネットワークＯＳと、コンピュータをネットワークストレージ１０３として機能させるためのアプリケーションプログラムが記憶されている。ネットワークストレージ１０３はネットワークＯＳと当該アプリケーションプログラムがコンピュータ上で稼働することによって成り立つ。
【００２０】
［動画ファイルと動画先頭ファイルの構成］
図３Ａ及びＢは、第一ストレージ２０４と第二ストレージ２１４に記憶されている動画ファイルの一例を模式的に示す図である。
図３Ａは、第二ストレージ２１４に記憶されている動画ファイル３０１である。横方向は時間軸を表す。
図３Ｂは、第一ストレージ２０４に記憶されている動画先頭ファイル３０２である。すなわち、動画先頭ファイル３０２は、動画ファイル３０１の先頭から所定時間、例えば１５秒程度までの映像データに該当する部分だけが切り出されたファイルである。
【００２１】
［第一の実施形態：ビデオサーバ１０２とネットワークストレージ１０３のソフトウェア構成］
図４は、本発明の第一の実施形態に係る、ビデオサーバ１０２とネットワークストレージ１０３の、ソフトウェアの機能を示すブロック図である。なお、図４中、第二ストレージ２１４はネットワークストレージ１０３がビデオサーバ１０２に対して提供するソフトウェアの機能でもある。
第一ストレージ２０４には、動画先頭ファイル３０２が格納されている。
第二ストレージ２１４には、動画ファイル３０１が格納されている。
第二ストレージ２１４には、リングバッファを構成する先読みバッファ４０１が接続されている。そして、その先には切替スイッチ４０２が接続されている。
切替スイッチ４０２は第一ストレージ２０４と先読みバッファ４０１に接続され、第一ストレージ２０４と先読みバッファ４０１の何れかから出力される動画データをデコーダ１０４に送出する。
【００２２】
配信制御部４０３は、第一ストレージ２０４と、第二ストレージ２１４と、先読みバッファ４０１と、切替スイッチ４０２を制御する。
第一バイトカウンタ４０４は、第一ストレージ２０４から切替スイッチ４０２へ読み出される動画先頭ファイル３０２の、バイト数を計数するカウンタである。計数したバイト数の情報は配信制御部４０３に与えられる。
第二バイトカウンタ４０５は、第二ストレージ２１４から先読みバッファ４０１へ読み出される動画ファイル３０１の、バイト数を計数するカウンタである。計数したバイト数の情報は配信制御部４０３に与えられる。
【００２３】
図５は、インデックステーブル４０６のフィールド構成を示す図である。
第一ストレージ２０４に形成されるインデックステーブル４０６は、コンテンツ名フィールドと、動画ファイル名フィールドと、動画先頭ファイル名フィールドよりなる。
コンテンツ名フィールドには、動画ファイル３０１のコンテンツを示す名称（コンテンツ名）が格納される。
動画ファイル名フィールドには、第二ストレージ２１４に格納されている動画ファイル３０１のファイル名が格納される。
動画先頭ファイル名フィールドには、第一ストレージ２０４に格納されている動画先頭ファイル３０２のファイル名が格納される。
このようにインデックステーブル４０６は、第一ストレージ２０４に格納されている動画先頭ファイル３０２と、第二ストレージ２１４に格納されている動画ファイル３０１との関係を記述するテーブルである。
【００２４】
図４に戻って、ブロック図の説明を続ける。
配信制御部４０３は、上位装置であるコンソール１０６あるいはデコーダ１０４からコンテンツ名の再生指示を受け取ると、インデックステーブル４０６を参照して、第一ストレージ２０４に格納されている動画先頭ファイル３０２のファイル名と、第二ストレージ２１４に格納されている動画ファイル３０１のファイル名を特定する。そして、切替スイッチ４０２を第一ストレージ２０４側に設定して、第一ストレージ２０４と第二ストレージ２１４にそれぞれ読み出し指令を発行する。
そして配信制御部４０３は、先読みバッファ４０１に所望のデータが蓄積されたことを検出したら、切替スイッチ４０２を先読みバッファ４０１側に設定するとともに、先読みバッファ４０１の読み出し位置を適切なアドレスに指定する。すると、切替スイッチ４０２は先読みバッファ４０１に格納されている動画ファイル３０１の途中部分から読み出したデータを送出する。
【００２５】
第一ストレージ２０４はＳＳＤ等の静的記憶装置なので、ＲＡＭ２０３と略同等のレスポンスにて、瞬時に動画先頭ファイル３０２の読み出しが始まる。しかし、第二ストレージ２１４はＨＤＤ等の動的記憶装置なので、読み出し指令を発行してから動画ファイル３０１の読み出しが始まるまでに遅れ（タイムラグ）が生じる。その代わり、第二ストレージ２１４のデータ転送速度は、デコーダ１０４が必要とするデータ転送速度を十分上回る。したがって、一旦動画ファイル３０１の読み出しが開始されれば、動画ファイル３０１の読み出し自体は滞り無く遂行される。
すなわち、問題となっている点は第二ストレージ２１４の読み出し指令発行時点から指定されたファイルが読み出されるまでにかかるタイムラグである。
【００２６】
本実施形態のビデオサーバ１０２は、このタイムラグを解消するために、第一ストレージ２０４に動画先頭ファイル３０２を格納しておき、コンソール１０６あるいはデコーダ１０４から読み出し指令が来たら、最初は第一ストレージ２０４から動画先頭ファイル３０２を読み出してデコーダ１０４に送出する。そして、先読みバッファ４０１に第二ストレージ２１４から読み出された動画ファイル３０１のデータが溜まったことを確認したら、切替スイッチ４０２を制御して、先読みバッファ４０１から動画ファイル３０１のデータを読み出してデコーダ１０４に送出する。この時、先読みバッファ４０１の読み出し位置は既にデコーダ１０４に送出した動画先頭ファイル３０２のデータと重複してはいけない。そこで、配信制御部４０３は第一バイトカウンタ４０４でデコーダ１０４に送出したデータ量を監視して、切替スイッチ４０２を先読みバッファ４０１に切り替えた際、第一バイトカウンタ４０４のカウント値の分だけ読み飛ばす処理を行う。
【００２７】
［第一の実施形態：動作］
図６は、本発明の第一の実施形態に係る、ビデオサーバ１０２による動画データ配信処理の動作の流れを示すフローチャートである。
コンソール１０６あるいはデコーダ１０４から再生するコンテンツ名の指示を受けると（Ｓ６０１）、配信制御部４０３は最初にインデックステーブル４０６を参照して、第一ストレージ２０４に格納されている動画先頭ファイル３０２のファイル名と、第二ストレージ２１４に格納されている動画ファイル３０１のファイル名を特定する（Ｓ６０２）。そして、切替スイッチ４０２を第一ストレージ２０４側に設定する（Ｓ６０３）。
【００２８】
次に、配信制御部４０３は第一ストレージ２０４に動画先頭ファイル３０２のファイル名を指定した読み出し指令を発行する（Ｓ６０４）。そして、配信制御部４０３は第一バイトカウンタ４０４及び第二バイトカウンタ４０５を起動して、第一ストレージ２０４から送出される動画先頭ファイル３０２のデータ量を計数する（Ｓ６０５）。更に、配信制御部４０３は第二ストレージ２１４に動画ファイル３０１のファイル名を指定した読み出し指令を発行する（Ｓ６０６）。
なお、ステップＳ６０４、Ｓ６０５及びＳ６０６は略同時に実行するので、この順番は前後してもよい。
【００２９】
次に、配信制御部４０３は先読みバッファ４０１の状態をチェックする。第一ストレージ２０４から動画先頭ファイル３０２が読み出された時点から、第二ストレージ２１４のタイムラグを経過した後、先読みバッファ４０１には第二ストレージ２１４から読み出された動画ファイル３０１のデータが蓄積される。そこで配信制御部４０３は、先読みバッファ４０１に蓄積されている、デコーダ１０４へ送出すべきデータのデータ量が、デコーダ１０４が要求する最小限のデータ量に達するまで監視する（Ｓ６０７のＮＯ）。具体的には、第二バイトカウンタ４０５のカウント値から第一バイトカウンタ４０４のカウント値を減算した値が、デコーダ１０４が要求する最小限のデータ量に達したか否かを判定する。
先読みバッファ４０１に蓄積されている、デコーダ１０４へ送出すべきデータのデータ量が、デコーダ１０４が要求する最小限のデータ量に達したら（Ｓ６０７のＹＥＳ）、配信制御部４０３は切替スイッチ４０２を先読みバッファ４０１側に設定する（Ｓ６０８）。そして、先読みバッファ４０１内に蓄積されているデータを読み出して、切替スイッチ４０２を通じてデコーダ１０４へ出力する（Ｓ６０９）。続いて、配信制御部４０３は動画ファイル３０１の終端に至るまでデータの読み出し動作を継続し（Ｓ６１０のＮＯ）、先読みバッファ４０１から読み出すデータが動画ファイル３０１の終端に至ったら（Ｓ６１０のＹＥＳ）、一連の動作を終了する（Ｓ６１１）。
【００３０】
図７Ａ及びＢは、動画ファイル３０１及び動画先頭ファイル３０２と先読みバッファ４０１の関係及び状態を示す模式図である。
図７Ａは、先読みバッファ４０１に動画ファイル３０１から読み出されたデータの蓄積が開始された直後の状態を示す模式図である。
図７Ｂは、先読みバッファ４０１に動画ファイル３０１から読み出されたデータの蓄積が図７Ａの状態よりも進行して、所定時間が経過した状態を示す模式図である。
【００３１】
図７Ａにおいて、動画先頭ファイル３０２はその先頭位置から位置Ｐ７０１までが読み出されて、デコーダ１０４に送出される。位置Ｐ７０１は第一バイトカウンタ４０４のカウント値と対応している。
一方、先読みバッファ４０１には動画ファイル３０１の先頭位置から位置Ｐ７０２までが読み出されて、先読みバッファ４０１内に蓄積される。位置Ｐ７０２は第二バイトカウンタ４０５のカウント値と対応している。
図７Ａに示すように、位置Ｐ７０２が示すデータ量は、位置Ｐ７０１が示すデータ量より少ない。そして、位置Ｐ７０２まで蓄積されているデータは、既に動画先頭ファイル３０２から読み出されたデータである。つまり、第二バイトカウンタ４０５のカウント値（Ｐ７０２相当）から第一バイトカウンタ４０４のカウント値（Ｐ７０１相当）を減算すると、負の値になってしまう。このため、この時点で切替スイッチ４０２を先読みバッファ４０１側に切り替えても、本来読み出すべき位置Ｐ７０１以降のデータが先読みバッファ４０１に蓄積されていないので、動画ファイル３０１のデータを正しく送出できない。
したがって、図７Ａの時点では切替スイッチ４０２を先読みバッファ４０１側に切り替えてはならず、先読みバッファ４０１に更なるデータの蓄積を待つ必要がある。
【００３２】
図７Ｂにおいて、動画先頭ファイル３０２はその先頭位置から位置Ｐ７０３までが読み出されて、デコーダ１０４に送出されている。位置Ｐ７０３は第一バイトカウンタ４０４のカウント値と対応している。
一方、先読みバッファ４０１には動画ファイル３０１の先頭位置から位置Ｐ７０４までが読み飛ばされ、位置Ｐ７０４から位置Ｐ７０６までが読み出されて、先読みバッファ４０１内に蓄積されている。そして、位置Ｐ７０４から位置Ｐ７０５までのデータは既に動画先頭ファイル３０２から読み出されたデータと重複している。位置Ｐ７０６は第二バイトカウンタ４０５のカウント値と対応している。
図７Ｂに示すように、位置Ｐ７０４から位置Ｐ７０６までに蓄積されているデータのうち、位置Ｐ７０５から位置Ｐ７０６までに蓄積されているデータは、未だ動画先頭ファイル３０２から読み出されていないデータである。つまり、第二バイトカウンタ４０５のカウント値（Ｐ７０６相当）から第一バイトカウンタ４０４のカウント値（Ｐ７０３相当）を減算すると、正の値になる。したがって、この時点で切替スイッチ４０２を先読みバッファ４０１側に切り替えて、先読みバッファ４０１の位置Ｐ７０５から読み出すことで、動画先頭ファイル３０２から読み出していたデータと、先読みバッファ４０１内のデータとをシームレスに結合して、動画ファイル３０１のデータを正しく送出できる。
なお、配信制御部４０３は、先読みバッファ４０１に格納されている有効なデータの先頭位置である位置Ｐ７０４を管理する必要がある。
【００３３】
図７Ａ及び図７Ｂに示すように、先読みバッファ４０１が最低限備える必要がある記憶容量は、動画先頭ファイル３０２のデータ量と比較して必ずしも大きくする必要はない。切替スイッチ４０２に後続するデコーダ１０４が必要とする最低限のデータ量に、若干のマージン（余裕）を上乗せする程度の記憶容量があればよい。
【００３４】
以上説明した実施形態において、第二ストレージ２１４と先読みバッファ４０１との間、また切替スイッチ４０２とデコーダ１０４との間におけるデータ転送は、周知のフロー制御にて所定のブロック単位で行われる。例えば、先読みバッファ４０１にデータを記憶する際には、所定のブロックに相当する空き容量が確保できた時点で、第二ストレージ２１４に対して所定のブロックのデータ転送を要求する。
【００３５】
［第二の実施形態：ビデオサーバ１０２とネットワークストレージ１０３のソフトウェア構成］
次に、先に説明したフロー制御を活用することで、データ転送処理を簡略化する手法について説明する。
図８は、本発明の第二の実施形態に係る、ビデオサーバ１０２とネットワークストレージ１０３の、ソフトウェアの機能を示すブロック図である。
図８の、図４に示すブロック図との相違点は、第二バイトカウンタ４０５がない点である。
【００３６】
図９は、本発明の第二の実施形態に係る、ビデオサーバ１０２による動画データ配信処理の動作の流れを示すフローチャートである。
図９のフローチャートのステップＳ９０１は、図６のフローチャートのステップＳ６０１に、ステップＳ９０２は、ステップＳ６０２に、ステップＳ９０３は、ステップＳ６０３に、以下同様に最後のステップＳ９１１は、ステップＳ６１１に、それぞれ一対一に対応する。
図９に示すフローチャートの、図６のフローチャートとの相違点を、以下に列挙する。
・ステップＳ９０５において起動するバイトカウンタが第一バイトカウンタ４０４だけであること。
・ステップＳ９０６において、動画ファイル３０１の、動画先頭ファイル３０２に相当する部分を飛ばした後の位置から読み出す、読み出し指令を発行すること。
・ステップＳ９０７において、配信制御部８０３は動画先頭ファイル３０２を全部読みだしたか否かをチェックすること。
・ステップＳ９０９において、配信制御部８０３は先読みバッファ４０１内のデータを先頭から読み出すこと。
【００３７】
図１０は、動画ファイル３０１及び動画先頭ファイル３０２と先読みバッファ４０１の関係を示す模式図である。
先読みバッファ４０１には、動画ファイル３０１のうち、動画先頭ファイル３０２に相当する部分を飛ばした後の位置Ｐ９０１から、先読みバッファ４０１の記憶容量に相当する位置Ｐ９０２までのデータを記憶しておく。フロー制御が有効に作用しているので、先読みバッファ４０１に対する読み出しが行われて、先読みバッファ４０１に空き容量が生じるまでは、動画ファイル３０１からデータの読み出しは一時停止される。
このように、動画先頭ファイル３０２を全て第一ストレージ２０４から読み出すように処理を行うことで、第二バイトカウンタ４０５を省略できる。
また、第一バイトカウンタ４０４は動画先頭ファイル３０２の読み出しを完遂したか否かをチェックするためだけに存在することとなる。
【００３８】
［第三の実施形態：ビデオサーバ１０２とネットワークストレージ１０３のソフトウェア構成］
第一の実施形態と第二の実施形態では、動画像データをデコーダ１０４へ送出する処理について説明した。
これより説明する第三の実施形態では、動画像データをデコーダ１０４へ送出するために必要な、動画ファイル３０１と動画先頭ファイル３０２を作成し、そしてインデックステーブル４０６を更新する処理について説明する。
図１１は、本発明の第三の実施形態に係る、ビデオサーバ１０２とネットワークストレージ１０３の、ソフトウェアの機能を示すブロック図である。
無圧縮の動画像データあるいはアナログの動画像信号は、エンコーダ１０７によって所定のエンコード処理や圧縮処理を施された動画像データに変換されて、蓄積制御部１１０３に供給される。また、予めエンコード処理及び圧縮処理された動画像データが直接、蓄積制御部１１０３に供給されることもある。
蓄積制御部１１０３は、エンコーダ１０７や種々の動画像データ提供元から受信した動画像データを、一旦第二ストレージ２１４に動画ファイル３０１として蓄積する。
次に、蓄積制御部１１０３は、第二ストレージ２１４内に形成した動画ファイル３０１の先頭部分を読み出して、第一ストレージ２０４に動画先頭ファイル３０２として蓄積する。
最後に蓄積制御部１１０３は、コンソール１０６を通じて操作者によるコンテンツ名の入力を受けて、インデックステーブル４０６に新たなレコードを作成し、動画ファイル３０１のファイル名と、動画先頭ファイル３０２のファイル名と、コンテンツ名を新たなレコードに登録する。
【００３９】
以上説明した第一、第二及び第三の実施形態には、以下に記す応用例が可能である。
（１）第二ストレージ２１４はネットワークストレージ１０３として構成したが、ビデオサーバ１０２に内蔵してもよい。この場合、ネットワークストレージ１０３は不要になり、ビデオサーバ１０２のバス２０６には第一ストレージ２０４と第二ストレージ２１４が接続されることとなる。そしてこの場合、ビデオサーバ１０２は単体で映像配信装置を構成する。
また、デコーダ１０４やスイッチャ１０５をビデオサーバ１０２に内蔵させることもできる。
【００４０】
（２）コマーシャルや静止画テロップ等、極めて再生時間が短いコンテンツの場合、動画ファイル３０１を持たず、動画先頭ファイル３０２だけで構成する場合もある。この場合、インデックステーブル４０６の該当するレコードの動画ファイル名フィールドは空（ＮＵＬＬ）となる。このようなコンテンツを扱うと、コンテンツの実体を表す名称として「動画先頭ファイル」という名称は正確ではなくなる。すなわち、第一ストレージに格納される、本実施形態に直接的に関係するファイルは、長時間の動画ファイルの先頭部分である動画先頭ファイルと、短時間の動画ファイルと、静止画像ファイルと、インデックステーブル４０６である。
【００４１】
（３）インデックステーブル４０６を格納する場所は、必ずしも第一ストレージ２０４である必要はない。ＲＡＭ等にキャッシュできる程度の情報量であれば、第二ストレージに置いてもよい。
【００４２】
本実施形態では、ビデオサーバシステム１０１を開示した。
第一ストレージ２０４はＳＳＤ等の静的記憶装置なので、ＲＡＭ２０３と略同等のレスポンスにて、瞬時に動画先頭ファイル３０２の読み出しが始まる。しかし、第二ストレージ２１４はＨＤＤ等の動的記憶装置なので、読み出し指令を発行してから動画ファイル３０１の読み出しが始まるまでにタイムラグが生じる。そこで、第二ストレージ２１４のタイムラグを解消するために、第一ストレージ２０４に動画先頭ファイル３０２を格納しておき、コンソール１０６あるいはデコーダ１０４から読み出し指令が来たら、最初は第一ストレージ２０４から動画先頭ファイル３０２を読み出してデコーダ１０４に送出する。そして、先読みバッファ４０１に第二ストレージ２１４から読み出された動画ファイル３０１のデータが溜まったことを確認したら、切替スイッチ４０２を制御して、先読みバッファ４０１から動画ファイル３０１のデータを読み出してデコーダ１０４に送出する。
こうすることで、低価格で大容量なＨＤＤ等の第二ストレージ２１４を利用しつつ、第二ストレージ２１４のタイムラグを第一ストレージ２０４の良好なレスポンスで補い、使い勝手と低価格を両立したビデオサーバシステム１０１を実現できる。
【００４３】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
例えば、上記した実施形態例は本発明をわかりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることは可能であり、更にはある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることも可能である。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の揮発性あるいは不揮発性のストレージ、または、ＩＣカード、光ディスク等の記録媒体に保持することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００４４】
１０１…ビデオサーバシステム、１０２…ビデオサーバ、１０３…ネットワークストレージ、１０４…デコーダ、１０５…スイッチャ、１０６…コンソール、１０７…エンコーダ、２０４…第一ストレージ、２１４…第二ストレージ、３０１…動画ファイル、３０２…動画先頭ファイル、４０１…先読みバッファ、４０２…切替スイッチ、４０３…配信制御部、４０４…第一バイトカウンタ、４０５…第二バイトカウンタ、４０６…インデックステーブル、８０３…配信制御部、１１０３…蓄積制御部
【図１】
2014175687.tif 000003
【図２】
2014175687.tif 000004
【図３】
2014175687.tif 000005
【図４】
2014175687.tif 000006
【図５】
2014175687.tif 000007
【図６】
2014175687.tif 000008
【図７】
2014175687.tif 000009
【図８】
2014175687.tif 000010
【図９】
2014175687.tif 000011
【図１０】
2014175687.tif 000012
【図１１】
2014175687.tif 000013