(57)【要約】【課題】ビデオオンデマンドシステムにおいて、現在の再生位置を起点とした映像制御コマンドのレスポンス速度を改善することにより視聴者のストレスを軽減する。【解決手段】映像再生用クライアント103は、ビデオサーバ101へ要求した映像データをネットワーク経由で受信して表示する。受信した映像データは、圧縮データを蓄積する第１のバッファ111、112に一時的に蓄積される。現在の映像の再生位置を含んだ第１の時間範囲の外にはみ出した前記蓄積映像データは、所定の規則に従ってその一部のみを残しつつ第１のバッファから削除する。時間的に不連続なフレームを表示するフレーム飛ばし再生を新規に実行する際には、第１のバッファに保持されている前記受信データを取り出してデコードを開始すると同時に、サーバ101に対して第１のバッファに蓄積されたデータの時間的に最も過去のデータあるいは未来のデータを送信開始位置として映像データをサーバ101に要求する。【選択図】      図１
2006339980.tif 000002
【特許請求の範囲】
【請求項１】
ビデオサーバへ要求した映像データをネットワーク経由で受信し、前記映像データをデコードして表示する映像再生装置において、受信した前記映像データである圧縮データを蓄積する第１のバッファと、圧縮データをデコードする映像デコード手段と、デコードされた非圧縮データを一定時間分保持する第２のバッファと、映像再生装置全体を制御する制御手段とを備え、前記第１のバッファは、現在の映像の再生位置を中心として設定された所定の時間範囲の連続した映像データと、前記所定の時間範囲の外側に複数のキーフレームの映像データとを蓄積しており、前記制御手段は、映像制御コマンドを新規に実行する際に、前記第１のバッファに保持されている前記映像データを取り出し、前記デコード手段にデコードを開始させることを特徴とする映像再生装置。
【請求項２】
前記制御手段は、時間的に連続するフレームを順次表示する連続再生コマンドを新規に実行する際に、前記第２のバッファに保持している前記映像データを取得して表示を開始させると同時に、前記第２のバッファに蓄積されているデータの時間における最も過去の時間あるいは最も未来の時間を起点として前記第１のバッファから順次映像データ取得し、前記デコード手段にその映像データのデコードを開始させることを特徴とする請求項１記載の映像再生装置。
【請求項３】
前記第１のバッファに保持する圧縮データの時間長は、前記ビデオサーバへ映像データを要求してからネットワークを介して受信するまでかかる時間の統計値から決定されることを特徴とする請求項１または２に記載の映像再生装置。
【請求項４】
前記ビデオサーバから受信した前記映像データである圧縮データには、ファイルにおける位置情報が付加されており、前記第１のバッファには位置情報も蓄積し、前記制御手段は、前記ビデオサーバへ映像データの送信を要求する際に、位置情報を付加して要求を行うことを特徴とする請求項１、２または３記載の映像再生装置。
【請求項５】
前記制御手段は、映像制御コマンドのうち時間的に不連続なフレームを順次表示するフレーム飛ばし再生コマンドまたは連続するフレームを順次表示する連続再生コマンドを新規に実行する際、前記第１のバッファに蓄積されたデータのち時間的に最も過去のデータあるいは未来のデータを送信開始位置として、映像データを前記ビデオサーバに要求することを特徴とする請求項１記載の映像再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像再生装置に係り、特に、映像制御コマンドのレスポンス速度を向上させた映像再生装置に関する。
【背景技術】
【０００２】
近年、映像圧縮技術の向上とネットワークの高速化とにより、映像をサーバに蓄積しユーザの要求に応じてネットワーク経由で映像を配信するストリーミングと呼ばれる映像の視聴形態が普及してきた。現在では、放送局等の映像のプロフェッショナル等によっても多く使用されるようになってきており、多機能な映像操作機能が要求されている。また、そのようなケースでは、単純に映像を再生するだけではなく、頻繁に異なる映像操作コマンドを実行するため、ストリーミングといえどもいかに軽快に操作を行うことができるかが課題として挙げられる。
【０００３】
放送局では、従来からテープに映像を記録していたこともあり、ジョグシャトルを用いて映像の制御を行うのが一般的である。そのため、ビデオオンデマンドにおいても同様の操作感が得られることが望ましいとされる。ジョグシャトルによる操作は、必ず現在の再生位置を起点とするため、ビデオオンデマンドにおいても現在の再生位置を起点とした映像制御を高速化する効果が大きいといえる。
【０００４】
映像制御コマンドの高速化に関する従来技術として、例えば、特許文献１等に記載された技術が知られている。この特許文献１に記載された従来技術は、シークの遅いディスク装置に蓄積した映像データを再生する際に、キーフレーム圧縮データを保持することにより、逆再生時に視聴開始までの時間を短縮することを可能とするというものである。
【０００５】
また、視聴開始にかかる時間を短縮することを可能とした従来技術として、例えば、特許文献２等に記載された技術が知られている。この特許文献２に記載された従来技術は、視聴する可能性のあるコンテンツの先頭部分を予めダウンロードしておくことにより、ユーザが視聴を開始したときのレスポンス速度を上げることを可能としたものである。
【特許文献１】特開平８−７９７１０号公報
【特許文献２】特開２００３−２８４０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した特許文献２に記載の従来技術は、視聴開始にかかる時間だけを短縮することが可能であり、視聴中に行う映像制御コマンドを高速化することができないという問題点を有しており、また、特許文献１に記載の従来技術は、レスポンス時間を短縮することができるのはキーフレームのみを再生するフレーム飛ばし再生コマンドのみであり、フレーム飛ばし再生以外の連続再生の場合、レスポンス時間を短縮することができないという問題点を有している。
【０００７】
本発明の目的は、前述した従来技術の問題点を解決し、現在の再生位置を起点とするフレーム飛ばし再生コマンド（逆方向も含む）と連続再生コマンド（逆方向も含む）との両方を高速化することができる映像再生装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明によれば前記目的は、ビデオサーバへ要求した映像データをネットワーク経由で受信し、前記映像データをデコードして表示する映像再生装置において、受信した前記映像データである圧縮データを蓄積する第１のバッファと、圧縮データをデコードする映像デコード手段と、デコードされた非圧縮データを一定時間分保持する第２のバッファと、映像再生装置全体を制御する制御手段とを備え、前記第１のバッファは、現在の映像の再生位置を中心として設定された所定の時間範囲の連続した映像データと、前記所定の時間範囲の外側に複数のキーフレームの映像データとを蓄積しており、前記制御手段は、映像制御コマンドを新規に実行する際に、前記第１のバッファに保持されている前記映像データを取り出し、前記デコード手段にデコードを開始させることにより達成される。
【発明の効果】
【０００９】
本発明によれば、現在の再生位置付近を視聴開始位置とする連続再生コマンドとフレーム飛ばし再生コマンドとコマ送り／戻しコマンドとのレスポンス時間を極めて短くすることができ、映像視聴者が軽快に映像を制御することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明による映像再生装置の実施形態を図面により詳細に説明する。
【００１１】
図１は本発明の一実施形態による映像再生装置を含むビデオオンデマンドシステムのプログラム構成を示すブロック図である。図１において、１０１はビデオサーバ、１０２はネットワーク、１０３はクライアント、１０４は制御コマンド送信部、１０５はプレーヤ制御部、１０６はストリーム受信部、１０７は圧縮データ制御部、１０８は映像デコード部、１０９は非圧縮データ制御部、１１０は映像レンダラ、１１１は連続圧縮データバッファ、１１２はキーフレーム圧縮データバッファ、１１３は非圧縮データバッファ、１１４は入力装置、１１５はモニタである。
【００１２】
図１に示すビデオオンデマンドシステムは、映像の表示処理を行うクライアント１０３と、映像情報をクライアント１０３に送出するビデオサーバ１０１とがネットワーク１０２により接続されて構成される。そして、ビデオサーバ１０１は、クライアント１０３からネットワーク１０２を介して映像制御コマンドを受け取り、映像ファイルを指定された位置から指定された方式でクライアント１０３に送出し、クライアント１０３は、ビデオサーバ１０１から映像データを受け取って再生する。
【００１３】
次に、前述したように構成されるクライアント１０３の動作の概要にを説明する。
【００１４】
映像の時間的に連続するフレームを順次表示する連続再生コマンドを実行する場合、クライアント１０３は、ビデオサーバ１０１に映像制御コマンドを送信すると同時に、非圧縮データバッファ１１３からデータを取り出して表示を開始する。そして、非圧縮データバッファ１１３に残っている画像を表示している間に、連続圧縮データバッファ１１１に格納された圧縮データを映像デコード部１０８でデコードし非圧縮データバッファ１１３に追加していき、連続圧縮データバッファ１１１に蓄積されたデータが枯渇する前に、ビデオサーバ１０１から映像データを受信する。
【００１５】
また、映像の時間的に不連続なフレームを順次表示するフレーム飛ばし再生コマンドを実行する場合、クライアント１０３は、ビデオサーバ１０１に映像制御コマンドを送信すると同時に、非圧縮データバッファ１１３からデータを取り出して表示を開始する。そして、非圧縮データバッファ１１３に残っている画像を表示している間に、キーフレーム圧縮データバッファ１１２に格納された圧縮データを映像デコード部１０８デコードし非圧縮データバッファ１１３に追加していき、キーフレーム圧縮データバッファ１１２に蓄積されたデータが枯渇する前に、ビデオサーバ１０１から映像データを受信する。
【００１６】
クライアント１０３がビデオサーバ１０１にコマンドを送ってから映像データが返ってくるまでの時間をサーバレスポンス時間と呼ぶ。連続圧縮データバッファの長さは、最大連続再生速度×サーバレスポンスタイムとし、キーフレーム圧縮データバッファ１１２の長さは、最大フレーム飛ばし再生速度×サーバレスポンスタイムとする。
【００１７】
クライアント１０３は、ＰＣ等のような計算機により構成され、よく知られているように、ＣＰＵ、主メモリ、ネットワークインタフェース、ＨＤＤ等の記憶装置、ビデオカード等を備えて構成されていればよく、コマンドの入力を行うために使用する入力装置１１４、映像を表示するモニタ１１５が接続されている。そして、クライアント１０３を構成する次に説明する各コンポーネントは、ＰＣが持つ主メモリに格納したプログラムをＣＰＵが実行することによって実現することができる。
【００１８】
クライアント１０３は、外部の入力装置１１４から入力されたコマンドに従って映像制御コマンドの送出から映像データの再生までの全体を制御するプレーヤ制御部１０５と、ビデオサーバ１０１に対して映像制御コマンドを送信する制御コマンド送信部１０４と、ビデオサーバ１０１から映像データを受信するストリーム受信部１０６と、受信した映像データを連続圧縮データバッファ１１１及びキーフレーム圧縮データバッファ１１２へ蓄積し、また、映像デコード部１０８に対して連続圧縮データバッファ１１１及びキーフレーム圧縮データバッファ１１２から取得したデータを送出する圧縮データ制御部１０７と、受信したデータのうち時間的に連続な映像データを格納する連続圧縮データバッファ１１１と、受信したデータのうちキーフレーム圧縮データのみを格納するキーフレーム圧縮データバッファ１１２と、符号化されて圧縮された映像データをデコードする映像デコード部１０８と、非圧縮データの非圧縮データバッファ１１３への入出力を管理し、また、映像レンダラ１１０へ非圧縮データの送信を行う非圧縮データ制御部１０９と、符号化された圧縮データをデコードして生成した非圧縮データを蓄積する非圧縮データバッファ１１３と、非圧縮データ制御部１０９が送信した非圧縮データをモニタ１１５に出力する映像レンダラ１１０とにより構成される。
【００１９】
前述したように構成されるクライアント１０３において、プレーヤ制御部１０５は、入力装置１１４から制御コマンドを受けると、制御コマンド送信部１０４に制御コマンドメッセージのビデオサーバ１０１への送信を指示する。制御コマンドは、ビデオサーバ１０１とクライアント１０３とを接続するための接続コマンドと、映像再生を制御する映像制御コマンドとを備える。制御コマンド送信部１０４は、ビデオサーバ１０１とクライアント１０３とが接続されていない状態の場合、接続コマンドのみ受け付ける。映像制御コマンドには、任意の方向とスピードとにより全ての画像フレームを表示する連続再生コマンドと、任意の方向とスピードとによりキーフレームのみを表示するフレーム飛ばし再生コマンドと、任意の方向に１フレーム進めて表示するコマ送り／コマ戻しコマンドとがある。なお、前述したような各コマンドの処理手順については後述する。
【００２０】
制御コマンド送信部１０４は、プレーヤ制御部１０５から指示された命令が接続コマンドの場合に、ネットワーク１０２を介してビデオサーバ１０１へ接続要求メッセージを送信し、その応答として接続応答メッセージを受信し、受信した接続応答メッセージ内のセッションＩＤが失敗を意味するものでなければ、プレーヤ制御部１０５にその旨を通知する。それ以降、プレーヤ制御部１０５は、映像制御コマンドを実行可能とする。また、制御コマンド送信部１０４は、プレーヤ制御部１０５から受けた命令が映像制御コマンドの場合、そのままネットワーク１０２を介してビデオサーバ１０１へ制御コマンドメッセージを送信し、その応答のうちリターンコードのみを受信し、受信したリターンコードが成功であれば、ストリーム受信部１０６へ通信用のソケットを渡してデータの受信を行わせる。
【００２１】
ストリーム受信部１０６は、制御コマンド送信部１０４から渡された通信用ソケットを利用し、ネットワーク１０２を介してビデオサーバ１０１から送信されてくる映像データを受信し、受信した映像データを圧縮データ制御部１０７へ渡す。また、ストリーム受信部１０６は、制御コマンド送信部１０４がビデオサーバ１０１へ制御コマンドコマンドメッセージを送ってからストリーム受信部１０６が映像データを受け取るまでの時間を計測し、計測した時間をプレーヤ制御部１０５へ通知する。これにより、プレーヤ制御部１０５は、ストリーマの負荷状態とネットワーク状態とを知ることができる。
【００２２】
圧縮データ制御部１０７は、制御コマンドがフレーム飛ばし再生のとき、ストリーム受信部１０６から渡された圧縮データを、キーフレーム圧縮データバッファ１１２へ格納し、それ以外のコマンドの場合、連続圧縮データバッファ１１１へ追加するが、そのとき、キーフレームの圧縮データをキーフレーム圧縮データバッファ１１２へも同時に格納する。また、圧縮データ制御部１０７は、連続圧縮データバッファ１１１の最大蓄積時間を越えないように過去に追加したデータを削除する。同様に、圧縮データ制御部１０７は、キーフレーム圧縮データバッファ１１２の最大蓄積時間を越えないように過去に登録したデータを削除する。キーフレーム圧縮データバッファ１１２の最大蓄積時間は、連続圧縮データバッファ１１１の最大蓄積時間より小さいため、クライアント１０３としては、再生位置の近傍の圧縮データは、時間的に連続に蓄積し、時間的に離れたデータは、離散的に蓄積することになる。なお、連続圧縮データバッファ１１１とキーフレーム圧縮データバッファ１１２とには、受信したデータを２重に格納してもよいがメモリ上のデータのアドレスは同一であってもよい。また、圧縮データ制御部１０７は、映像制御コマンド実行時には、映像デコード部１０８に対し、可能な限り速い速度でデータを送信する。但し、映像デコード部１０８がデータの受け取りを拒否した場合、受け取るまで待機する。
【００２３】
映像デコード部１０８は、圧縮データ制御部１０７から送られてきた圧縮データをデコードし、非圧縮データを生成する。生成された非圧縮データは、非圧縮データ制御部１０９に送信される。
【００２４】
非圧縮データ制御部１０９は、映像デコード部１０８から渡された非圧縮データを非圧縮データバッファ１１３へ格納すると共に、その処理と並列に非圧縮データバッファ１１３から非圧縮データを取得し、取得した非圧縮データに再生速度と再生位置とに応じて変化させた再生時刻を付加して映像レンダラ１１０へ渡す。再生時刻は、映像レンダラ１１０において、映像のフレームを表示するタイミングを表した時刻である。コマ送り／戻しの場合、再生時刻は特に参照されない。
【００２５】
映像レンダラ１１０は、非圧縮データ制御部１０９から非圧縮データを受け取って、映像レンダラ１１０内に設けられている図示しないフレームバッファに一旦格納し、その非圧縮データの再生時刻になるのを待ってから、フレームバッファ内の受け取った非圧縮データをモニタ１１５に出力し、映像の再生を行う。また、映像レンダラ１１０は、コマ送り／戻しコマンドを処理する場合、１コマの表示を行った後、次のコマ送り／戻し命令が実行されるまでの間、非圧縮制御部１０９からデータの受け取りをブロックする。
【００２６】
図２は非圧縮データバッファ１１３と連続圧縮バッファ１１１とキーフレーム圧縮データバッファ１１２とに蓄積されるデータ形式について説明する図であり、次に、これについて説明する。
【００２７】
連続圧縮データバッファ１１１は、図２（ａ）に示すように、映像のＧＯＶ２０１を蓄積の単位としてデータを蓄積する。ＧＯＶ２０１は、画像フレームの集合であり、通常、１秒程度の映像を表示することができる数の画像フレームの集合（一般には３０枚）であり、それ自体でデコード可能なキーフレーム２０２（図２ではＩと表記する）と、他のフレームのデコード結果を参照しなければデコードすることができない差分フレーム２０３（図２ではＰと表記する）とから構成される。差分フレーム２０３には、デコード時に依存するフレームの数が１枚のＰフレームと、デコード時に依存するフレームが２枚のＢフレームとがあるが、ここではＰフレームであるとしている。キーフレーム２０２は、位置を識別するための時間２０４とキーフレーム圧縮データ２０５とから構成される。差分フレーム２０３も、同様に、位置を識別するための時間２０６とフレーム相関圧縮データ２０７とから構成される。
【００２８】
連続圧縮データバッファ１１１の最大蓄積時間の制約条件は、最大連続再生速度で蓄積データを全て消費するのにかかる時間が、サーバレスポンスタイムよりも大きいことである。サーバレスポンスタイムは、制御コマンド送信部１０４がビデオサーバ１０１に映像送信要求メッセージを送ってから、ストリーム受信部１０６がビデオサーバ１０１から映像データメッセージの受け取りを開始するまでの時間であり、ストリーム受信部１０６において統計を取っている。従って、連続圧縮データバッファ１１１の最大蓄積時間（第１の時間）は、最大連続再生速度×サーバレスポンスタイム＋α（安全度を見込んだ余分の時間）であってよい。最大連続再生速度は、システムが許容する連続再生の最大速度である。
【００２９】
キーフレーム圧縮データバッファ１１２は、図２（ｂ）に示すように、キーフレーム圧縮データ２０２のみを蓄積するバッファである。キーフレーム圧縮データの時間当りのデータ量は、連続データより小さいため、キーフレーム圧縮データバッファ１１２は、キーフレーム圧縮データバッファ１１２と同一の容量でも長時間蓄積することが可能である。キーフレーム圧縮データバッファ１１２の最大蓄積時間の制約条件は、時間的に不連続なフレームを順次再生するフレーム飛ばし再生でキーフレーム圧縮データバッファ１１２の蓄積データをすべて消費するのにかかる時間が、前記サーバレスポンスタイムよりも大きいことである。従って、キーフレーム圧縮データバッファ１１２の最大蓄積時間（第２の時間）は、連続圧縮データバッファ１１１の最大蓄積時間と同様に、最大フレーム飛ばし再生速度×サーバレスポンスタイム＋αとしてよい。
【００３０】
前述した連続圧縮データバッファ１１１の蓄積時間範囲（第１の時間）及びキーフレーム圧縮データバッファ１１２の蓄積時間範囲（第２の時間）は、現在の再生位置が中心ととなるように設定される。これは、例えば、順方向に再生している状態で、現在の再生位置から逆方向の再生がコマンドにより指示されたときに、即座に対応可能とするためである。
【００３１】
説明している本発明の実施形態では、連続圧縮データバッファ１１１とキーフレーム圧縮データバッファ１１２とを独立に設けるとしているが、本発明は、これらの２つを１つの圧縮データバッファとして纏めることができる。この場合に、１つに纏めた圧縮データバッファ（第１のデータバッファ）に蓄積されるデータ形式を図２（ｃ）に示している。  通常、キーフレーム圧縮データバッファ１１２の最大蓄積時間は、連続圧縮データバッファ１１１の最大蓄積時間より小さいので、１つに纏めた圧縮データバッファ（第１のデータバッファ）には、図２（ｃ）に示すように、再生位置の近傍の圧縮データを時間的に連続に第１の時間分蓄積し、時間的に離れたデータを離散的に第１の時間を含めて第２の時間分蓄積するようにすればよい。すなわち、図２（ｃ）における現在位置を中心とする第１の時間の範囲には、連続した複数のＧＯＶが蓄積され、その前後に複数のキーフレームを配置して、全体で第２の時間となるように蓄積されればよい。
【００３２】
非圧縮データバッファ１１３は、図２（ｄ）に示すように、フロントバッファ２０９とバッグバッファ２０８とにより構成される。バッファ２０９、２０８のそれぞれは、１つのＧＯＶに含まれるフレーム全てのデコード結果を格納することができる。そして、逆方向の連続再生時、フロントバッファ２０９内の非圧縮データを映像レンダラ１１０へ送信している間に、バッグバッファ２０８へ映像デコード部１０８から送信されたＧＯＶのデコード結果を蓄積し、フロントバッファ２０９の非圧縮データを全て消費したタイミングでフロントバッファ２０９とバッグバッファ２０８とをスワップする。このスワップの技術は、公知の技術である。また、順方向の再生時には、フロントバッファ２０９に対し映像デコード部１０８から送信された非圧縮データを格納すると同時に、そのデータを映像レンダラ１１０へ送信する。フロントバッファ２０９の最大蓄積時間を超えたら、フロントバッファ２０９とバッグバッファ２０８とをスワップする。
【００３３】
フロントバッファ２０９とバッグバッファ２０８との最大蓄積時間の制約条件は、ＧＯＶ１個分の非圧縮データを格納できることであり、通常１秒程度である。また、フロントバッファ２０８とバッグバッファ２０９とは、非圧縮データ２１２と映像内の時間２１１とのセットをその蓄積の単位とする。
【００３４】
図３は制御コマンド送信部１０４とビデオサーバ１０１との間で授受される制御コマンドメッセージの形式を説明する図であり、次に、図３を参照して、制御コマンドメッセージの形式について説明する。制御コマンドメッセージには、接続要求メッセージ３００と、その応答である接続応答メッセージ３２０と、映像データを要求する映像送信要求メッセージ３３０と、その応答である映像データメッセージ３４０とがある。
【００３５】
接続要求メッセージ３００は、図３（ａ）に示すように、視聴するコンテンツを指定するためのコンテンツ識別子３０１により構成される。接続応答メッセージ３２０は、図３（ｂ）に示すように、配信を識別するためのセッションＩＤ３２１により構成される。映像送信要求メッセージ３３０は、図３（ｃ）に示すように、再生方向３３１と、再生モード３３２と、送信開始位置（開始時間）３３３と、セッションＩＤ３３４とにより構成される。再生方向３３１には、順方向と逆方向とが指定可能である。再生モード３３２には、キーフレームのみを再生する「フレーム飛ばし再生」と、全フレームを再生する「連続再生」とが指定可能である。映像データメッセージ３４０は、図３（ｄ）に示すように、映像送信要求の結果を表すためのリターンコード３４１と、要求が成功した場合にビデオサーバから送信される映像データ３４２とから構成される。
【００３６】
図４はビデオサーバから配信される映像データ３４２の詳細について説明する図であり、次に、図４を参照して、映像データ３４２の詳細について説明する。映像データ３４２は、再生モード３３２が「連続再生」である場合と「フレーム飛ばし再生」の場合とでその形式が異なる。
【００３７】
再生モード３３２が「連続再生」である場合の映像データ４０１を図４（ａ）に示しており、この場合の映像データ４０１は、再生方向３３１が順方向である場合には、映像データがＧＯＶを構成の単位として順方向に配列されており、再生方向３３１が逆方向である場合には、ＧＯＶを構成の単位として時間的に逆順に配列されている。そして、それぞれのＧＯＶ２０１の中に含まれるフレームは、いずれの場合も時間的には順方向である。
【００３８】
再生モード３３２が「フレーム飛ばし」である場合の映像データ４０２を図４（ｂ）に示しており、この場合の映像データ４０２は、キーフレーム圧縮データ２０５とその時間２０４とのセットを１つの単位として配列されている。映像ファイルにおいて、キーフレームデータは、離散的に挿入（一般的には、0.5 秒から１秒程度）されているため、映像データ４０２は、時間的に不連続となる。そして、再生方向３３１が順方向である場合には、前述のセットが時間的に順方向に送信され、逆方向である場合は前述のセットが時間的に逆方向に送信されてくる。
【００３９】
プレーヤ制御部１０５における映像制御コマンドの処理手順について説明すると、プレーヤ制御部１０５は、映像制御コマンドを処理する際、初めに非圧縮データ制御部１０９と圧縮データ制御部１０７とにおけるデータの送信処理を停止させ、その後に映像制御コマンドの種類に応じた異なる手順を実行する。
【００４０】
次に、各映像制御コマンドの処理手順について、図１を参照して説明する。まず、プレーヤ制御部１０５における順方向の連続再生コマンドの処理手順を説明する。
【００４１】
プレーヤ制御部１０５は、初めに、非圧縮制御部１０９を経由して、非圧縮データバッファ１１３に蓄積された非圧縮データの中で最も未来の非圧縮データの時間（以下、この時間を非圧縮データ末端時間という）を取得する。次に、プレーヤ制御部１０５は、圧縮データ制御部１０７を経由して、連続圧縮データバッファ１１１に蓄積された圧縮データの中で最も未来の非圧縮データの時間（以下、この時間を圧縮データ末端時間という）を取得する。次に、プレーヤ制御部１０５は、非圧縮データ制御部１０９に対して、現在の再生位置を送信開始位置として送信再開を指示する。次に、プレーヤ制御部１０５は、圧縮データ制御部１０７に対して、非圧縮データ末端時間の時間を送信開始位置として送信再開を指示する。次に、プレーヤ制御部１０５は、制御コマンド送信部１０４に対して、送信開始位置を圧縮データ末端時間とした映像制御コマンドメッセージのビデオサーバ１０１への送信を指示する。なお、非圧縮データ制御部１０９と圧縮データ制御部１０８におけるデータ送信処理の詳細については後述する。
【００４２】
次に、プレーヤ制御部１０５における逆方向の連続再生コマンドの処理手順を説明する。この逆方向の連続再生コマンドの処理手順は、順方向の連続再生コマンドの処理手順における非圧縮データ末端時間と圧縮データ末端時間とを次のように読み替えることによって表現することができる。すなわち、非圧縮データ末端時間は、非圧縮データバッファ１１３に蓄積された非圧縮データの中で最も未来のものの時間として読み替え、圧縮データ末端時間は、連続圧縮データバッファ１１１に蓄積された圧縮データの中で最も過去のものの時間として読み替える。なお、非圧縮データ制御部１０９と圧縮データ制御部１０８とにおけるデータ送信処理の詳細については後述する。
【００４３】
次に、プレーヤ制御部１０５における順方向のフレーム飛ばし再生の処理手順を説明する。
【００４４】
プレーヤ制御部１０５は、非圧縮データ制御部１０９に対して非圧縮データバッファのクリアを指示する。次に、プレーヤ制御部１０５は、圧縮データ制御部１０７を経由して、キーフレーム圧縮データバッファ１１２に蓄積された圧縮データの中で最も未来の圧縮データの時間（以下、この時間を圧縮データ末端時間という）を取得する。次に、プレーヤ制御部１０５は、非圧縮データ制御部１０９に対して、フレーム飛ばし再生を指示する。次に、プレーヤ制御部１０５は、圧縮データ制御部１０７に対して、現在の再生位置近傍のキーフレーム圧縮データの時間を送信開始位置として送信再開を指示する。次に、プレーヤ制御部１０５は、制御コマンド送信部１０４に対して、圧縮データ末端時間を送信開始位置とした映像制御コマンドメッセージのビデオサーバ１０１への送信を指示する。なお、非圧縮データ制御部１０９と圧縮データ制御部１０８とにおけるデータ送信処理の詳細については後述する。
【００４５】
次に、プレーヤ制御部１０５における逆方向のフレーム飛ばし再生の処理手順を説明する。この逆方向のフレーム飛ばし再生の処理手順は、順方向のフレーム飛ばし再生コマンドの処理手順における圧縮データ末端時間を次のように読み替えることによって表現することができる。すなわち、圧縮データ末端時間は、キーフレーム圧縮データバッファ１１２に蓄積された圧縮データの中で最も過去のものの時間として読み替える。なお、非圧縮データ制御部１０９と圧縮データ制御部１０８とにおけるデータ送信処理の詳細については後述する。
【００４６】
図５は圧縮データ制御部１０７におけるデータ送信処理の詳細を説明するＰＡＤを示す図であり、次に、図５に示すＰＡＤを参照して、圧縮データ制御部１０７におけるデータ送信処理の詳細を説明する。
【００４７】
（１）まず、圧縮データ制御部１０７は、プレーヤ制御部１０５から映像制御命令のパラメータとして再生方向、再生モード、再生速度、送信開始位置を取得する。再生方向には、順方向と逆方向とがあり、再生モードには、連続再生とフレーム飛ばし再生とがある（ステップ５０１）。
【００４８】
（２）次に、圧縮データ制御部１０７は、プレーヤ制御部１０５から取得した再生モードにより、取得した再生モードが連続再生かフレーム飛ばし再生かを判定する（ステップ５０２）。
【００４９】
（３）ステップ５０２の判定で、再生モードが連続再生であった場合、圧縮データ制御部１０７は、再生方向が順方向（コマ送りを含む）であるか、逆方向（コマ戻しを含む）であるかを判定する（ステップ５０３）。
【００５０】
（４）ステップ５０３の判定で、再生方向が順方向（コマ送りを含む）であった場合、圧縮データ制御部１０７は、圧縮データ制御部１０７における連続順方向送信ロジックにより、連続圧縮データバッファ１１１の中からプレーヤ制御部１０５から指示された送信開始位置を含むＧＯＶを検索し、そのＧＯＶから順番に未来方向にデータを取得させて、そのデータを映像デコード部１０８が受け取り得る限り送信し続ける。映像デコード部１０８は、圧縮データ制御部１０７から送信されたデータをデコードするが、再生開始位置より過去のデータは廃棄しているため、再生開始位置がＧＯＶの途中であっても問題はない（ステップ５０５）。
【００５１】
（５）ステップ５０３の判定で、再生方向が逆方向（コマ戻しを含む）であった場合、圧縮データ制御部１０７は、圧縮データ制御部１０７における逆方向送信ロジックにより、連続圧縮データバッファ１１１の中からプレーヤ制御部１０５から指示された送信開始位置を含むＧＯＶを検索し、そのＧＯＶから順番に過去方向にデータを取得させて、そのデータを映像デコード部１０８が受け取り得る限り送信し続ける。映像デコード部１０８は、圧縮データ制御部１０７から送信されたデータをデコードするが、再生開始位置より未来のデータは廃棄しているため、再生開始位置がＧＯＶの途中であっても問題はない（ステップ５０６）。
【００５２】
（６）ステップ５０２の判定で、再生モードがフレーム飛ばし再生であった場合、再生方向が順方向であるか、逆方向であるかを判定する（ステップ５０４）。
【００５３】
（７）ステップ５０４の判定で、再生方向が順方向であった場合、圧縮データ制御部１０７は、圧縮データ制御部１０７におけるフレーム飛ばし順方向送信ロジックにより、不連続データバッファ１１２の中からプレーヤ制御部１０５から指示された送信開始位置から未来方向に順番にキーフレームデータを取得し、そのキーフレームデータを、映像デコード部１０８が受け取り得る限り送信し続ける（ステップ５０７）。
【００５４】
（８）ステップ５０４の判定で、再生方向が逆方向であった場合、圧縮データ制御部１０７は、圧縮データ制御部１０７におけるフレーム飛ばし逆方向送信ロジックにより、不連続データバッファ１１２の中からプレーヤ制御部１０５から指示された送信開始位置から過去方向に順番にキーフレームデータを取得し、そのキーフレームデータを、映像デコード部１０８が受け取り得る限り送信し続ける（ステップ５０８）。
【００５５】
図６は非圧縮データ制御部１０９におけるデータ送信処理の詳細を説明するＰＡＤを示す図であり、次に、図６に示すＰＡＤを参照して、非圧縮データ制御部１０９におけるデータ送信処理の詳細を説明する。
【００５６】
（１）まず、非圧縮データ制御部１０９は、プレーヤ制御部１０５から映像制御命令のパラメータとして再生方向、再生モード、再生速度、送信開始位置を取得する（ステップ６０１）。
【００５７】
（２）次に、非圧縮データ制御部１０９は、プレーヤ制御部１０５から取得した再生モードにより、取得した再生モードが連続再生かフレーム飛ばし再生かを判定する（ステップ６０２）。
【００５８】
（３）ステップ６０２の判定で、再生モードが連続再生であった場合、非圧縮データ制御部１０９は、再生方向が順方向（コマ送りを含む）であるか、逆方向（コマ戻しを含む）であるかを判定する（ステップ６０３）。
【００５９】
（４）ステップ６０３の判定で、再生方向が順方向（コマ送りを含む）であった場合、非圧縮データ制御部１０９は、非圧縮データ制御部１０９における連続順方向送信ロジックにより、プレーヤ制御部１０５から指示された送信開始位置の非圧縮データを非圧縮データバッファ１１３から検索させ、そのデータから未来方向に順番に非圧縮データを取得して、映像レンダラ１１０が受け取り得る限り送信を続ける。映像レンダラ１１０へ送るデータに対して、再生速度と再生を開始した時刻とから算出した表示予定時刻を設定する。これにより、映像レンダラ１１０は、タイミングをとって画像を表示することが可能になる（ステップ６０５）。
【００６０】
（５）ステップ６０３の判定で、再生方向が逆方向（コマ戻しを含む）であった場合、非圧縮データ制御部１０９は、非圧縮データ制御部１０９における連続逆方向送信ロジックにより、プレーヤ制御部１０５から指示された送信開始位置の非圧縮データを非圧縮データバッファ１１３から検索させ、そこから過去方向に順番に非圧縮データを取得して、映像レンダラ１１０が受け取り得る限り送信を続ける。映像レンダラ１１０へ送るデータに対して、再生速度と再生開始した時刻とから算出した表示予定時刻を設定する。これにより、映像レンダラ１１０でタイミングをとって画像を表示することが可能になる（ステップ６０７）。
【００６１】
（６）ステップ６０２の判定で、再生モードがフレーム飛ばし再生であった場合、再生方向が順方向であるか、逆方向であるかを判定する（ステップ６０４）。
【００６２】
（７）ステップ６０４の判定で、再生方向が順方向であった場合、非圧縮データ制御部１０９は、非圧縮データ制御部１０９におけるフレーム飛ばし順方向送信ロジックにより、映像デコード部１０８から受け取った非圧縮データを、非圧縮データバッファ１１３に蓄積せずに、そのまま映像レンダラ１１０へ渡すように指示する。映像レンダラ１１０へ渡すデータには、再生速度と再生開始した時刻とから算出した表示予定時刻を設定する。これにより、映像レンダラ１１０でタイミングをとって表示画像を更新することができる（ステップ６０７）。
【００６３】
（８）ステップ６０４の判定で、再生方向が逆方向であった場合、非圧縮データ制御部１０９は、非圧縮データ制御部１０９におけるフレーム飛ばし逆方向送信ロジックにより、映像デコード部１０８から受け取った非圧縮データを、非圧縮データバッファ１１３に蓄積せずに、そのまま映像レンダラ１１０へ渡すように指示する。映像レンダラ１１０へ渡すデータには、再生速度と再生開始した時刻とから算出した表示予定時刻を設定する。これにより、映像レンダラ１１０でタイミングをとって表示画像を更新することができる（ステップ６０８）。
【００６４】
前述した本発明の実施形態での各処理は、プログラムにより構成し計算機が備えるＣＰＵに実行させることができ、また、それらのプログラムは、ＦＤ、ＣＤＲＯＭ、ＤＶＤ等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
【００６５】
図７はクライアント１０３のモニタ１１５に表示される表示画面の例及び再生状態について説明する図、図８は入力装置１１４の１つであるジョグシャトルの構成を示す図であり、次に、図７、図８を参照して、表示画面の例、フレーム飛ばし再生、連続再生における映像の表示状態及びジョグシャトル機能について説明する。図７、図８において、９００は表示画面、９０１は映像表示領域、９０２はスライダ、９０３はつまみ、１０００はジョグシャトル、１００１はジョグ、１００２はシャトルである。
【００６６】
モニタ１１５に表示される表示画面９００は、図７（ａ）に示すように、映像表示領域９０１と、スライダ９０２とを備えて構成される。映像表示領域９０１には、ビデオサーバ１０１から受信した映像データが表示される。映像表示領域９０１に映像が表示されている状態で、スライダ９０２全体の長さは、映像表示領域９０１に表示しているコンテンツの時間長を表しており、つまみ９０３は、現在表示している映像の位置（時間）を示している。このつまみ９０３をマウス等によりスライダ９０２上をドラッグして移動させると、プレーヤ制御部１０５は、つまみ９０３の値から計算した再生位置をもとに映像の再生を行う。
【００６７】
ジョグシャトル１０００は、図８に示すように、指穴を有して回転可能に設けられた円形のジョグ１００１と、このジョグ１００１の外側に設けられてジョグ１００１とは独立に回転可能に設けられたリング上のシャトル１００２とにより構成される。そして、ジョグシャトル１０００をクライアント装置１０３の入力装置１１４として利用する場合、ジョグシャトル１０００のシャトル１００２あるいはジョグ１００１を回転させることにより、プレーヤ制御部１０５に命令が入力され、映像を制御することができる。
【００６８】
前述において、シャトル１００２をユーザが手で回すと、プレーヤ制御部１０５は、シャトル１００２の回転した角度を取得し、角度に応じた方向と速度とで現在の再生位置を開始位置とする映像再生命令を実行する。一般には、速度が大きければ、フレーム飛ばし再生、遅ければ連続再生を行う。また、ジョグ１００１をユーザが手で回すと、プレーヤ制御部１０５は、ジョグの回転を検出し、回転方向に応じてコマ送りあるいはコマ戻しを行う。
【００６９】
次に、フレーム飛ばし再生を行っているときの表示画面の見え方と、連続再生を行っているときの表示画面の見え方を図７（ｂ）参照して説明する。図７（ｂ）には、再生速度が同一の場合のフレーム飛ばし再生のフレーム表示時間と連続再生のフレーム時間とを示している。フレーム飛ばし再生は、１つのＧＯＶに含まれるＩフレームの映像データを１つのＧＯＶ全体を再生する場合と同一の時間だけ繰り返し連続して表示することにより行われる。この結果、フレーム飛ばし再生中のフレーム表示時間９０３は、連続再生中のフレーム表示時間９０４より長い。
【００７０】
前述した本発明の実施形態において、ビデオサーバ１０１へ映像の送信を要求する場合、送信開始位置として、時間を指定するとして説明したが、本発明は、送信開始位置をコンテンツの中での映像データのバイト位置とすることができる。これにより、ビデオサーバ１０１における映像検索時のファイルシーク処理を高速化することができる。
【産業上の利用可能性】
【００７１】
本発明は、例えば、放送局向け映像サーバに利用することができる。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態による映像再生装置を含むビデオオンデマンドシステムのプログラム構成を示すブロック図である。
【図２】非圧縮データバッファと連続圧縮バッファとキーフレーム圧縮データバッファ１１２とに蓄積されるデータ形式について説明する図である。
【図３】制御コマンド送信部とビデオサーバとの間で授受される制御コマンドメッセージの形式を説明する図である。
【図４】サーバから配信される映像データの詳細について説明する図である。
【図５】圧縮データ制御部におけるデータ送信処理の詳細を説明するＰＡＤを示す図である。
【図６】非圧縮データ制御部におけるデータ送信処理の詳細を説明するＰＡＤを示す図である。
【図７】クライアントのモニタに表示される表示画面の例及び再生状態について説明する図である。
【図８】入力装置の１つであるジョグシャトルの構成を示す図である。
【符号の説明】
【００７３】
１０１  ビデオサーバ
１０２  クライアント
１０３  ネットワーク
１０４  制御コマンド送信部
１０５  プレーヤ制御部
１０６  ストリーム受信部
１０７  圧縮データ制御部
１０８  映像デコード部
１０９  非圧縮データ制御部
１１０  映像レンダラ
１１１  連続圧縮データバッファ
１１２  キーフレーム圧縮データバッファ
１１３  非圧縮データバッファ
１１４  入力装置
１１５  モニタ
９００  表示画面
９０１  映像表示領域
９０２  スライダ
９０３  つまみ
１０００  ジョグシャトル
１００１  ジョグ
１００２  シャトル
【図１】
2006339980.tif 000003
【図２】
2006339980.tif 000004
【図３】
2006339980.tif 000005
【図４】
2006339980.tif 000006
【図５】
2006339980.tif 000007
【図６】
2006339980.tif 000008
【図７】
2006339980.tif 000009
【図８】
2006339980.tif 000010