(57)【要約】【課題】早送りでファイルの終端まで達した場合に、最終ＧＯＰのフレームを出力することができるコンテンツ再生装置を提供する。【解決手段】スキップ先に画像データがあるか判断する判断手段２５と、画像データがない場合、コンテンツの最終の画像フレームのタイムスタンプと複数の画像フレームをグループに分けた際のフレーム数とに基づき、最終の画像フレームが属する最終のグループのキー画像フレームのタイムスタンプを求める算出手段１２と、キー画像フレームの画像データより前の任意の画像データの時間的位置を求める時間位置取得手段２４と、時間的位置より後の画像データを含むコンテンツデータの取得要求を行う要求手段１０と、要求により受信された画像データに対応する画像フレームのタイムスタンプとキー画像フレームのタイムスタンプとに基づき、最終のグループのキー画像フレーム以降の画像データをデコードさせる取得手段２５とを備える。【選択図】図１
2009049855.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像フレームを構成する画像データと音声データとを含むコンテンツデータであって、外部又は内部の記憶手段から取得された前記コンテンツデータをデコード手段によりデコードしコンテンツを再生している際に、所定の画像データ量ごとにスキップさせて前記コンテンツをスキップ再生させるスキップ再生指示を受け付けることによりスキップ再生を行うコンテンツ再生装置において、
受け付けた前記スキップ再生指示に基づいて、スキップ先に前記画像データが存在するか否かを判断する判断手段と、
前記スキップ先に前記画像データが存在しないと判断された場合、前記コンテンツの時系列的に最終の画像フレームの時間情報を示すタイムスタンプと、複数の前記画像フレームを所定のフレーム数で複数のグループに分けた際の前記所定のフレーム数とに基づいて、前記コンテンツの最終の前記画像フレームが属する前記グループである最終のグループの基礎となるフレーム内符号化によって得られるキー画像フレームの前記タイムスタンプを求める算出手段と、
前記最終のグループの前記キー画像フレームを構成する画像データより時系列的に前の任意の画像データの、前記コンテンツの画像データ全体の時間配列における時間的位置を所定の演算又はプログラムによって求める時間位置取得手段と、
求められた前記時間的位置よりも時系列的に後の画像データを含む前記コンテンツデータを前記外部又は内部の記憶手段から取得するための要求を行う要求手段と、
前記要求により受信された前記画像データに対応する前記画像フレームの前記タイムスタンプと、前記最終のグループの前記キー画像フレームの前記タイムスタンプとに基づいて、前記最終のグループの前記キー画像フレームを含むそれ以降の画像フレームに対応する画像データを取得して前記デコード手段にデコードさせる取得手段とを、
備えることを特徴とするコンテンツ再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを経由して、映像・音声などを再生するコンテンツ再生装置に関する。
【背景技術】
【０００２】
現在、動画圧縮技術であるＭＰＥＧ(Moving Picture Experts Group)が、ＤＶＤ−Ｖｉｄｅｏ、デジタルテレビ放送などで広く普及している。ＭＰＥＧは、図９に示すように、Ｉ、Ｂ、Ｐ-Ｐｉｃｔｕｒｅ（ピクチャ）で構成されている。ＩピクチャはＩｎｔｒａ符号化画像（フレーム内符号化画像）、ＰピクチャはＰｒｅｄｉｃｔｉｖｅ符号化画像（フレーム間順方向予測符号化画像）、ＢピクチャはＢｉｄｉｒｅｃｔｉｏｎａｌｌｙ ｐｒｅｄｉｃｔｉｖｅ符号化画像（双方向予測符号化画像）である。
【０００３】
Ｐピクチャは、前の画面（Ｉピクチャ若しくはＰピクチャ）を基にして作られており、Ｂピクチャは、前後の画面データ（Ｉピクチャ若しくはＰピクチャ）を基にして作られている。そのため、ＰピクチャとＢピクチャは、１画面だけで完結したフレームにはならない。そのため、何枚かのフレームを１つのまとまりにしたＧＯＰ（Group Of Picture）を単位としてランダムアクセスを実現させている。図９の例では１ＧＯＰは１５フレームである。
【０００４】
また、ＰＣ（パーソナルコンピュータ）やネットワーク機器の高速化により、ネットワークを経由して、ネットワーク越しのサーバに記録されている映像・音声などを再生するネットワークメディアプレーヤ（ネットワークプレーヤ装置とも言い、下記の非特許文献１を参照）が出現した。また、様々なメーカーのサーバ、クライアントの相互接続性を実現するために、Ｄｉｇｉｔａｌ Ｌｉｖｉｎｇ Ｎｅｔｗｏｒｋ Ａｌｌｉａｎｃｅ（以下、ＤＬＮＡとも言い、下記の非特許文献２を参照）で標準化が進められている。しかし、ネットワークを用いたファイルアクセスは、通常の（ローカルの）ファイルアクセスに比べて遅いため、早送り、早戻しなどのトリックプレイはローカルのビデオ再生とは異なる。ＤＬＮＡでは、早送り/早戻しを実現する方法の１つとして、図１０に示すようなスキップ処理（早送り処理、早戻し処理）を提示している。
【非特許文献１】http://www.regza.jp/product/tv/z2000/index.html
【非特許文献２】http://itpro.nikkeibp.co.jp/NNW/index.html,「はじめてのＤＬＮＡ」日経ネットワーク２００６年３月号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、スキップ処理（早送り処理）による早送りでファイルの終端まで達した場合、必ずしも終端近傍のフレームを出力できるとは限らない。例えば、図１１に示すように、シーク位置がファイル終端を超えてしまった場合は、最終フレームから遠く離れたフレームが最後に表示されることとなる。この現象は、例えば６０倍速、１００倍速といった高速の早送りの際に特に顕著に表れる（スキップするサイズが大きいため）。これを解決するためには、最終ＧＯＰのシーク位置（先頭からのバイト数）を知る必要があるが、現在、広く使用されているＭＰＥＧ２規格のビデオデータは可変ビットレートをサポートしているため、ビットレートから正確な最終ＧＯＰのシーク位置を求めることができない。
【０００６】
本発明は、上記課題を解決するためのものであり、早送りでファイルの終端まで達した場合に、最終ＧＯＰ（上述した最終グループの一例）のフレームを出力することができるコンテンツ再生装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明によれば、複数の画像フレームを構成する画像データと音声データとを含むコンテンツデータであって、外部又は内部の記憶手段から取得された前記コンテンツデータをデコード手段によりデコードしコンテンツを再生している際に、所定の画像データ量ごとにスキップさせて前記コンテンツをスキップ再生させるスキップ再生指示を受け付けることによりスキップ再生を行うコンテンツ再生装置において、受け付けた前記スキップ再生指示に基づいて、スキップ先に前記画像データが存在するか否かを判断する判断手段と、前記スキップ先に前記画像データが存在しないと判断された場合、前記コンテンツの時系列的に最終の画像フレームの時間情報を示すタイムスタンプと、複数の前記画像フレームを所定のフレーム数で複数のグループに分けた際の前記所定のフレーム数とに基づいて、前記コンテンツの最終の前記画像フレームが属する前記グループである最終のグループの基礎となるフレーム内符号化によって得られるキー画像フレームの前記タイムスタンプを求める算出手段と、前記最終のグループの前記キー画像フレームを構成する画像データより時系列的に前の任意の画像データの、前記コンテンツの画像データ全体の時間配列における時間的位置を所定の演算又はプログラムによって求める時間位置取得手段と、求められた前記時間的位置よりも時系列的に後の画像データを含む前記コンテンツデータを前記外部又は内部の記憶手段から取得するための要求を行う要求手段と、前記要求により受信された前記画像データに対応する前記画像フレームの前記タイムスタンプと、前記最終のグループの前記キー画像フレームの前記タイムスタンプとに基づいて、前記最終のグループの前記キー画像フレームを含むそれ以降の画像フレームに対応する画像データを取得して前記デコード手段にデコードさせる取得手段とを、備えることを特徴とするコンテンツ再生装置が提供される。この構成により、早送りでファイルの終端まで達した場合に、最終ＧＯＰ（上述した最終グループの一例）のフレームを出力することができる。なお、上述するグループは、例えばＧＯＰに相当する。また、キー画像フレームは、例えば後述するＩピクチャフレームに相当する。また、所定の画像データ量は、例えば後述するスキップバイト数に相当する。また、所定の演算とは、例えば後述する式（２）を用いてseek_posを求める操作を言い、所定のプログラムとは、例えば式（２）によってseek_posを求めるためのアルゴリズムを言う。
【発明の効果】
【０００８】
本発明のコンテンツ再生装置は、上記構成を有し、早送りでファイルの終端まで達した場合に、最終ＧＯＰ（上述した最終グループの一例）のフレームを出力することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明のネットワークプレーヤ装置（コンテンツ再生装置に相当）について説明する。図１は、早送りでＭＰＥＧファイル（ＭＰＥＧデータから構成される）の終端に達した場合に、最終ＧＯＰのフレームを出力することができるネットワークプレーヤ装置（以下、単にプレーヤとも言う）の構成の一例を示す構成図である。図１に示すように、プレーヤ１００は、サーバ１０１と同一の通信ネットワーク１０２に接続されている。本発明の実施の形態におけるサーバ１０１は、ＭＰＥＧ２−ＰＳフォーマットのビデオファイル（以下、ＭＰＥＧファイルとも言う）を有しており、プレーヤ１００からのリクエスト（要求）に応じて、プレーヤ１００へＭＰＥＧファイル送信する機能を有している。また、サーバ１０１は、バイトシーク（データの先頭から任意の位置をシークする）機能を有する。
【００１０】
プレーヤ１００は、サーバ１０１が有するＭＰＥＧファイルを受信し、再生することができ、また、早送り、早戻し機能を有する。本発明の実施の形態では、プレーヤ１００は、サーバ１０１が有するＭＰＥＧファイルと、そのファイルサイズとをあらかじめ知っているものとする。
【００１１】
ここで、本発明の実施の形態で用いるＭＰＥＧ２−ＰＳのシステム構造について簡単に説明する。ＭＰＥＧ２−ＰＳデータ（ＭＰＥＧデータ）は、複数の個別ストリーム（Ｖｉｄｅｏ（ビデオ）、Ａｕｄｉｏ（オーディオ）など）が適当な長さにパケット化され、多重化されている。通常、複数（若しくは１つ）のパケットを束ねたパックと呼ばれる単位で扱われる。図２にＭＰＥＧ２−ＰＳデータの構造を示す。図３に示すように、各パケットはヘッダ部（パケット開始コードからその他までの部分）とデータ部（データの部分）からなる。
【００１２】
パケット開始コードは、パケットに割り振られたコード番号などである。ストリームＩＤは、ビデオデータ、オーディオデータのストリームＩＤであって、ＭＰＥＧ規格で規定されている。パケット長はパケットの長さを示すものであり、フラグ類はパケットの種類などを示すものであり、ヘッダ長はヘッダの長さを示すものであり、タイムスタンプは、ＡＶ同期のための時間情報である。
【００１３】
また、図２に示すパックヘッダにはＳＣＲ（System Clock Reference）が書き込まれている。ＳＣＲは、デコーダがＡＶ同期を行う際に、デコーダのクロックを設定するための値である。すなわち、デコーダはパックヘッダ内のＳＣＲと、ビデオパケット、オーディオパケットのタイムスタンプとを用いてＡＶ同期を実現する。また、不図示のシステムヘッダには、ビットレートなどが書き込まれている。以上が、ＭＰＥＧ２−ＰＳのシステム構造の概要である。
【００１４】
以下、プレーヤ１００の構成について図１を用いて説明する。まず、送受信手段１０について説明する。送受信手段１０は、受信したデータ量をカウントする受信データ量カウンタを保持している。そして、送受信手段１０は、後述する制御手段２５から制御命令を受けて、サーバ１０１にＭＰＥＧファイル（ＭＰＥＧデータ）を要求し、ＭＰＥＧデータを受信し、受信したＭＰＥＧデータをバッファ手段１１に書き込む。ここで、送受信手段１０が受信する制御命令は、受信開始命令と、受信停止命令、カウンタリセット命令の３種類の命令である。
【００１５】
受信開始命令を受けた場合は、サーバ１０１からＭＰＥＧデータを受信し、受信したＭＰＥＧデータをバッファ手段１１に書き込む。また、受信したデータ量だけ、受信データ量カウンタをインクリメントする。また、受信停止命令を受けた場合は受信を停止する。また、カウンタリセット命令を受けた場合は、受信データ量カウンタをゼロクリアする。
【００１６】
バッファ手段１１は、送受信手段１０がサーバ１０１から受信したＭＰＥＧデータをバッファリングし、Ｄｅｍｕｘ手段１２へ出力する。次に、ビットレート管理手段２０、ＧＯＰ管理手段２１、時間情報管理手段２２、フレームレート管理手段２３について説明する。ビットレート管理手段２０は、上述したＤｅｍｕｘ手段１２から入力されるビットレート情報を記憶するものである。ＧＯＰ管理手段２１は、後述するビデオデコード手段１５から入力されるＧＯＰ内のピクチャ枚数を記憶するものである。
【００１７】
時間情報管理手段２２は、ビデオデコード手段１５から入力される時間情報、すなわち、ビデオデコード手段１５が処理したピクチャのタイムスタンプを記憶するものである。フレームレート管理手段は、ビデオデコード手段１５から入力されるフレームレート情報を記憶するものである。
【００１８】
次に、Ｄｅｍｕｘ手段１２について説明する。Ｄｅｍｕｘ手段１２は後述する制御手段２５からの制御命令を受けて、バッファ手段１１のＭＰＥＧデータをビデオパケット、オーディオパケット、不図示のシステム情報（システムに関する情報）、ビットレート情報に分離し、切り替えスイッチ（ＳＷ）２６を介してビデオパケットをビデオバッファ手段１４へ出力し、オーディオパケットをオーディオバッファ手段１７へ出力し、不図示のシステム情報をシステムデコード手段１３へ出力する。また、Ｄｅｍｕｘ手段１２はビットレート情報をビットレート管理手段２０へ出力する。
【００１９】
ここで、制御手段２５からＤｅｍｕｘ手段１２への制御命令について説明する。制御手段２５がＤｅｍｕｘ手段１２に対して出力する制御命令は、通常Ｄｅｍｕｘと、タイムスタンプ指定のＤｅｍｕｘがある。Ｄｅｍｕｘ手段１２は、通常Ｄｅｍｕｘ命令を受けた場合は、バッファ手段１１のＭＰＥＧデータを上述のとおり分離する。一方、タイムスタンプ指定Ｄｅｍｕｘ命令を受けた場合は、指定されたタイムスタンプ以降のデータのみ出力する。
【００２０】
次に、ビデオデコード手段１５について説明する。ビデオデコード手段１５は、制御手段２５からのデコード開始命令、キャプチャ命令、デコード停止命令を受けて動作し、ビデオバッファ手段１４に書き込まれたビデオデータをデコードし、ビデオ出力手段１６へ出力する。また、デコード中にＧＯＰ情報を検出した場合は、それをＧＯＰ情報管理手段２１に出力し、タイムスタンプを検出した場合は、それを時間情報管理手段２２に出力し、フレームレート情報を検出した場合は、フレームレート管理手段２３にそれぞれ出力する。また、キャプチャ命令を受けた場合は、デコード開始から１枚のピクチャのデコード完了の時点で、制御手段２５にキャプチャ完了を通知する。
【００２１】
次に、オーディオデコード手段１８について説明する。オーディオデコード手段１８は、制御手段２５から制御命令を受けて動作する。オーディオデコード手段１８が、受信する制御命令は、デコード開始命令とデコード停止命令の２種類である。デコード開始命令を受信した場合は、オーディオバッファ手段１７に書き込まれたオーディオデータをデコードし、オーディオ出力手段１９へ出力する。一方、デコード停止命令を受信すると、デコード処理を停止する。
【００２２】
ビデオ出力手段１６は、ビデオデコード手段１５によってデコードされた画像を不図示の表示手段に表示する。また、オーディオ出力手段１９は、オーディオデコード手段１８によってデコードされた音声データを出力する。
【００２３】
最終ＧＯＰシーク位置計算手段２４は、ビットレート管理手段２０に記憶されているビットレートと、ＧＯＰ情報管理手段２１に記憶されているＧＯＰのピクチャ枚数と、時間情報管理手段２２に記憶されているタイムスタンプとから最終ＧＯＰのシーク位置を求め、制御手段２５へ出力する。ここで、シーク位置の情報は、ＭＰＥＧファイルの先頭からのバイト数を表す。制御手段２５は、ユーザからのコマンドを受けて、プレーヤ１００の各モジュール（各手段）を制御し、ユーザ操作を実現する。制御手段２５の動作に関しては、後述するプレーヤ１００の動作で説明する。以上が、本発明の実施の形態に係るプレーヤの構成の一例の説明である。
【００２４】
次に、本発明の実施の形態に係るプレーヤの動作について図４を用いて説明する。プレーヤ１００を起動すると、制御手段２５は、ユーザからのコマンド（ユーザ操作）を待ち、ユーザ操作が何であるか判断する（ステップＳ４０１）。ユーザから再生コマンドを受け付けた場合は、再生ステップＳ４０２へ移行し、早送りコマンドを受けた場合は早送りキャプチャステップＳ４０４へ移行し、早戻しコマンドを受けた場合は早戻しキャプチャステップＳ４０６へ移行し、終了コマンドを受けた場合は終了となる。
【００２５】
まず、再生コマンドを受け付けた場合について説明する。ステップＳ４０２では、サーバ１０１からＭＰＥＧデータを受信し、デコードし、出力する。ステップＳ４０３では、再生後、ユーザ操作が何であるかを判断し（ステップＳ４０３）、停止コマンドの場合には停止ステップＳ４０８へ移行し、終了コマンドの場合には終了する。ユーザ操作がなかった場合は、再生ステップＳ４０２へ戻り、再生処理を継続する。早送りコマンドの場合には早送りキャプチャステップＳ４０４へ移行し、早戻しコマンドの場合には早戻しキャプチャステップＳ４０６へ移行する。
【００２６】
また、ステップＳ４０１において、ユーザからの操作が早送りコマンドであった場合は、早送りキャプチャステップＳ４０４へ移行し、その後、ステップＳ４０５において停止コマンドがあった場合は、停止ステップＳ４０８へ移行する。一方、ステップＳ４０１において、ユーザからの操作が早戻しコマンドであった場合は、早戻しキャプチャステップＳ４０６へ移行し、その後、ステップＳ４０７において停止コマンドがあった場合は、停止ステップＳ４０８へ移行する。停止ステップＳ４０８では、ビデオデコード手段１５、オーディオデコード手段１８に対して停止命令を発行し、送受信手段１０に受信停止命令を発行し、送受信手段１０の受信データ量カウンタをゼロクリアし、ステップＳ４０１へ戻り、再びユーザ操作を待つ。
【００２７】
ここで、再生ステップＳ４０２の詳細について図５を用いて説明する。図５は再生ステップＳ４０２の動作の一例を示すフローチャートである。受信ステップＳ５０１において、送受信手段１０は、ＭＰＥＧデータを受信し、バッファ手段１１に書き込む。ＤｅｍｕｘステップＳ５０２において、Ｄｅｍｕｘ手段１２は、バッファ手段１１のＭＰＥＧデータを分離する。ビデオデコードステップＳ５０３において、ビデオデコード手段１５は、分離されたビデオデータをデコードし、ビデオ出力手段１６に出力する。オーディオデコードステップＳ５０４において、オーディオデコード手段１８は、オーディオバッファ手段１７に書き込まれたオーディオデータをデコードし、オーディオ出力手段１９に出力する。
【００２８】
ここで、ビデオデコードステップＳ５０３の詳細について図６を用いて説明する。デコードステップＳ６０１において、ビデオデコード手段１５は、ビデオバッファ手段１４に書き込まれたビデオデータをデコードし、ビデオ出力手段１６へ出力する。ステップＳ６０２において、ビデオデコード手段１５は、ＧＯＰ情報の有無を判断し、ＧＯＰ情報があった場合は、ＧＯＰ情報管理ステップＳ６０３において、ＧＯＰ管理手段２１にＧＯＰ情報を記憶する。
【００２９】
一方、ＧＯＰ情報がない場合、ステップＳ６０４において、ビデオデコード手段１５は、タイムスタンプの有無を判断し、タイムスタンプがあった場合には、タイムスタンプ管理ステップＳ６０５において、時間情報管理手段２２に記憶する。一方、タイムスタンプがない場合、ステップＳ６０６において、ビデオデコード手段１５は、フレームレート情報の有無を判断し、フレームレート情報があった場合には、フレームレート管理ステップＳ６０７において、フレームレート管理手段２３に記憶する。一方、フレームレート情報がない場合には終了する。以上の処理を行うことで、サーバ１０１から受信したＭＰＥＧデータを再生し、またＧＯＰ情報、時間情報、フレームレート情報を得ることができる。
【００３０】
次に、早戻し処理について説明する。早戻し処理は、図４に示すように、早戻しキャプチャ処理（ステップＳ４０６、Ｓ４０７）を繰り返し行うことで実現される。早戻しキャプチャステップＳ４０６では、サーバ１０１から受信するＭＰＥＧデータのシーク位置を決定し、そのシーク位置からＭＰＥＧデータをサーバ１０１に要求する。そして、受信データを分離（Ｄｅｍｕｘ）し、デコードし、画像をキャプチャ（取得）する。詳細については後述する。
【００３１】
ステップＳ４０７では、ユーザ操作が何かを判断し、ユーザ操作がなかった場合は、早戻しキャプチャステップＳ４０６へ戻り、処理を継続する。ユーザから再生コマンドがあった場合は、再生ステップＳ４０２へ移行し、ユーザから停止コマンドがあった場合は、停止ステップＳ４０８へ移行する。
【００３２】
ここで、早戻しキャプチャステップＳ４０６について図７を用いて説明する。シーク位置決定ステップＳ７０１では、送受信手段１０の受信データ量カウンタの値から、任意のスキップバイト数を引いた値をシーク位置とする。このスキップバイト数を小さくすれば、低速早戻しとなり、大きくすれば高速早戻しとなる。要求ステップＳ７０２では、制御手段２５は、送受信手段１０の受信データ量カウンタに、ステップＳ７０１で求めたシーク位置をセットし、送受信手段１０は、サーバ１０１に対して、シーク位置からデータを要求する。
【００３３】
受信ステップＳ７０３では、送受信手段１０は、サーバ１０１からＭＰＥＧデータを受信し、受信したデータをバッファ手段１１に書き込む。ＤｅｍｕｘステップＳ７０４では、Ｄｅｍｕｘ手段１２が、バッファ手段１１に書き込まれたＭＰＥＧデータからビデオデータを分離し、ビデオバッファ手段１４に書き込む。この際、ビデオデータ以外は破棄する。ビデオデコードステップＳ７０５では、ビデオデコード手段１５は、再生処理で説明した、図５のビデオデコードステップＳ５０３と同様の処理を行う。
【００３４】
ステップＳ７０６では、ビデオデコードステップＳ７０５で、画像が１枚出力されたかどうかを判断し、出力されていない場合は受信ステップＳ７０３へ戻り、処理を継続する。画像が１枚出力された場合は、早戻しキャプチャステップＳ４０６の処理は終了となる。以上が早戻しキャプチャステップＳ４０６の詳細である。これにより、スキップとキャプチャを繰り返し、早戻し処理の動作を実現する。
【００３５】
次に、早送り処理について説明する。早送り処理は、早戻し処理と同様に、図４のように早送りキャプチャ処理（ステップＳ４０４、Ｓ４０５）を繰り返し行うことで実現する。早送りキャプチャステップＳ４０４では、サーバ１０１から受信するＭＰＥＧデータのシーク位置を決定し、データを受信し、画像をキャプチャする。詳細は後述する。ステップＳ４０５では、ユーザ操作が何かを判断し、ユーザ操作がなかった場合は、早送りキャプチャステップＳ４０４へ戻り、処理を継続する。ユーザから再生コマンドがあった場合は、再生ステップＳ４０２へ移行し、ユーザから停止コマンドがあった場合は、停止ステップＳ４０８へ移行する。
【００３６】
ここで、早送りキャプチャステップＳ４０４について図８を用いて説明する。ここで、図８の手順は、キャプチャのみを目的としたステップＳ８０１からＳ８０７の手順と、最終ＧＯＰのフレームをキャプチャすることを目的とした手順の２つに分けられる。キャプチャのみの場合は、ステップＳ８０１からステップＳ８０７を実行することで実現される。一方、最終ＧＯＰのフレームをキャプチャする場合は、ステップＳ８０９からステップＳ８１６を実行し、最終ＧＯＰのシーク位置と、最終Ｉピクチャのタイムスタンプとを求め、その後ステップＳ８０３からステップＳ８０７を実行し、最終Ｉピクチャフレームをキャプチャすることで実現できる。以下に詳細を述べる。
【００３７】
シーク位置決定ステップＳ８０１では、制御手段２５が、ＭＰＥＧデータ（コンテンツ）が再生されている際に、ユーザから早送り指示（スキップ再生指示）を受け付けると、送受信手段１０の受信データ量カウンタの値から、任意のスキップバイト数（所定の画像データ量）を加えた値をシーク位置とする。スキップバイト数を小さくすれば低速早送りとなり、大きくすれば高速早送りとなる。
【００３８】
シーク位置判定ステップＳ８０２では、制御手段２５（上述する判断手段）が、シーク位置決定ステップＳ８０１で求めたシーク位置がＭＰＥＧファイルサイズの範囲内か否かを判定する。すなわち、早送り指示に基づいて、スキップ先にＭＰＥＧデータが存在するか否かを判断する。範囲内であれば、要求ステップＳ８０３へ移行し、範囲外、すなわちＭＰＥＧファイルサイズよりも大きい値が求められた場合であれば、最終Ｉピクチャを出力するために、最終フレームシーク位置決定ステップＳ８０９へ移行する。
【００３９】
要求ステップＳ８０３では、送受信手段１０が、ステップＳ８０１若しくは後述する最終Ｉピクチャシーク位置決定ステップＳ８１６で求めたシーク位置で、サーバ１０１にＭＰＥＧデータを要求する。受信ステップＳ８０４では、送受信手段１０が、サーバ１０１からＭＰＥＧデータを受信し、受信したＭＰＥＧデータをバッファ手段１１に書き込む。ＤｅｍｕｘステップＳ８０５では、Ｄｅｍｕｘ手段１２が、バッファ手段１１に書き込まれたＭＰＥＧデータからビデオデータを分離し、ビデオバッファ手段１４に書き込む。この際、ビデオデータ以外は破棄する。
【００４０】
ビデオデコードステップＳ８０６では、ビデオデコード手段１５は、再生処理で説明した、図５のビデオデコードステップＳ５０３と同様の処理を行う。ステップＳ８０７では、制御手段２５又はビデオデコード手段１５が、ビデオデコードステップＳ８０６で、画像が１枚出力されたかどうかを判断し、出力されていない場合はステップＳ８０８へ移行し、画像が出力された場合は、早送りキャプチャステップは終了となる。ステップＳ８０８では、送受信手段１０が、受信終了か否かを判定する。すなわち、ＭＰＥＧファイルの終端まで受信したかどうかを判定する。
【００４１】
受信終了でない場合は、受信ステップＳ８０４へ戻り、処理を継続する。一方、受信終了の場合は、キャプチャできずにＭＰＥＧファイルの終端まで達した場合であり、最終ＧＯＰのフレームを出力するために、最終フレームシーク位置検出ステップＳ８０９へ移行する。
【００４２】
ここで、最終ＧＯＰのフレームをキャプチャする手順（ステップＳ８０９〜Ｓ８１６）について説明する。最終フレームシーク位置決定ステップＳ８０９では、例えば最終ＧＯＰシーク位置計算手段２４又は制御手段２５が、ビットレート管理手段２０に記憶されているビットレートから、最終フレームのシーク位置を決定する。シーク位置は、例えば以下の式（１）を用いて求めることができる。
【００４３】
【数１】
2009049855.tif 000003
【００４４】
ここで、bitrateは、ビットレート情報管理手段２０に記憶されているビットレートであり、frame_rateはフレームレート情報管理手段２３に記憶されているフレームレートである。file_sizeはＭＰＥＧファイルの大きさである。しかし、式（１）で求めたシーク位置は、最終フレームのシーク位置とは限らない。そこで、まず、ステップＳ８１０からＳ８１４を実行することで、最終フレームのタイムスタンプを求める。要求ステップＳ８１０では、送受信手段１０が、サーバ１０１に対してステップＳ８０９で求めたシーク位置からＭＰＥＧデータを要求する。
【００４５】
受信ステップＳ８１１では、送受信手段１０が、受信データをバッファ手段１１に書き込み、ＤｅｍｕｘステップＳ８１２では、Ｄｅｍｕｘ手段１２が、バッファ手段１１に書き込まれたＭＰＥＧデータからビデオデータを分離し、ビデオバッファ手段１４に書き込む。この際、ビデオデータ以外は破棄する。タイムスタンプ検出ステップＳ８１３では、ビデオデコード手段１５が、ビデオデータのタイムスタンプを検出し、時間情報管理手段２２に記憶する。ステップＳ８１４では、送受信手段１０が受信終了か否かを判定する。すなわち、ＭＰＥＧファイルの終端まで受信したか否かを判定する。
【００４６】
ＭＰＥＧファイルの終端まで受信していない場合は、受信ステップＳ８１１へ戻り、処理を継続する。以上のステップＳ８１１からＳ８１３までの処理を行うことで、最終フレームのタイムスタンプが時間情報記憶手段２２に書き込まれる。次に、Ｄｅｍｕｘ手段設定ステップＳ８１５では、最終Ｉピクチャのタイムスタンプを求め、Ｄｅｍｕｘ手段１２にタイムスタンプ指定の命令を行う。最終Ｉピクチャのタイムスタンプは、ステップＳ８０９からＳ８１３までの処理で求めた最終フレームのタイムスタンプから、ＧＯＰ枚数分を引いた値である。
【００４７】
すなわち、Ｄｅｍｕｘ手段１２（上述する算出手段）が、コンテンツの時系列的に最終の画像フレームにおける、画像フレームの時間情報を示すタイムスタンプと、複数の画像フレームを所定のフレーム数で複数のグループ（ＧＯＰ）に分けた際の所定のフレーム数とに基づいて、コンテンツの最終の画像フレームが属するグループである最終グループの基礎となるフレーム内符号化によって得られるキー画像フレーム（最終Ｉピクチャ）のタイムスタンプを求める。
【００４８】
次に、最終Ｉピクチャシーク位置決定ステップＳ８１６では、最終ＧＯＰシーク位置計算手段２４（上述する時間位置取得手段）が、最終のＩピクチャ付近の位置である最終Ｉピクチャのシーク位置を求める。すなわち、最終ＧＯＰシーク位置計算手段２４が、最終のキー画像フレーム（最終のＩピクチャフレーム）を構成する画像データより時系列的に前の任意の画像データの、コンテンツの画像データ全体の時間配列における時間的位置（シーク位置）を所定のプログラム（後述する式（２）に対応するプログラム）によって決定する。
【００４９】
シーク位置は、最終ＧＯＰシーク位置計算手段２４が、ＧＯＰ情報管理手段２１に記憶されているＧＯＰ情報（GOP_frames：１ＧＯＰのピクチャ枚数）と、ビットレート管理手段２０に記憶されているビットレート（bitrate）と、ＭＰＥＧファイルサイズ（file_size）と、フレームレート（frame_rate）とに基づいて、以下の式（２）を用いて求める。
【００５０】
【数２】
2009049855.tif 000004
【００５１】
そして、送受信手段１０（上述する要求手段）が、求められたシーク位置（すなわち、シーク位置よりも時系列的に後）からＭＰＥＧデータを要求し、先に求められた最終Ｉピクチャフレームのタイムスタンプに基づいて、最終ＧＯＰのＩピクチャをキャプチャすることができる。すなわち、制御手段２５（上述する取得手段）が、決定された位置（シーク位置）以降の画像データを含むコンテンツデータの受信により得られる画像データによる画像フレームのタイムスタンプと、最終のキー画像フレーム（最終のＩピクチャフレーム）のタイムスタンプとに基づいて、最終のキー画像フレームを取得（キャプチャ）し、最終のキー画像フレームを含むそれ以降の画像フレームをビデオデコード手段１５に表示させる。要求ステップＳ８０３からステップＳ８０７を上述のように実行することにより、最終ＧＯＰのＩピクチャをキャプチャすることができる。
【００５２】
以上のように、ＭＰＥＧファイル終端のＭＰＥＧデータを受信して、最終フレームのタイムスタンプを求め、そのタイムスタンプとＧＯＰ情報とから、最終ＧＯＰのＩピクチャのタイムスタンプを求め、さらに最終Ｉピクチャのシーク位置を求め、求められたシーク位置から受信するＭＰＥＧデータと最終ＧＯＰのＩピクチャのタイムスタンプとにより、最終ＧＯＰのフレームキャプチャを実現できる。これにより、スキップによる早送りをし、ＭＰＥＧファイルの終端まで達した場合でも、必ず最終ＧＯＰのフレームを出力することができるようになる。
【００５３】
なお、式（２）のGOP_framesに、例えば１より大きい数を掛け合わせることにより、シーク位置がコンテンツの開始地点により近づくため、受信するＭＰＥＧデータの量が多くなり、確実に最終ＧＯＰのＩピクチャフレームをキャプチャすることができる。このように余分なＭＰＥＧデータを受信することにより、受信開始時の不具合などにより最初のＭＰＥＧデータがうまく受信できない場合であっても、確実に最終ＧＯＰのＩピクチャフレームはキャプチャすることができるため、多くのＭＰＥＧデータを受信することは有用である。また、求められたシーク位置からＭＰＥＧデータをサーバ１０１に要求しているが、最終ＧＯＰのＩピクチャのタイムスタンプを求める際に一度ＭＰＥＧデータを受信しているため、一度受信したＭＰＥＧデータを所定の記憶領域に記憶しておくことにより、再度のＭＰＥＧデータの要求を不要とすることも可能である。
【００５４】
また、上述したプレーヤの機能をプログラムによりコンピュータに実現させるようにしてもよい。このプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。
【産業上の利用可能性】
【００５５】
本発明に係るネットワークプレーヤ装置は、早送りでファイルの終端まで達した場合に、最終ＧＯＰ（上述した最終グループの一例）のフレームを出力することができるため、ネットワークを経由して、映像・音声などを再生するネットワークプレーヤ装置などに有用である。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施の形態に係るコンテンツ再生装置（ネットワークプレーヤ装置）の構成の一例を示す構成図である。
【図２】本発明の実施の形態におけるＭＰＥＧ２−ＰＳデータの構造の一例を示す図である。
【図３】本発明の実施の形態におけるパケットの構成の一例を示す構成図である。
【図４】本発明の実施の形態に係るコンテンツ再生装置の動作フローの一例を示すフローチャートである。
【図５】本発明の実施の形態における再生ステップの詳細について説明するためのフローチャートである。
【図６】本発明の実施の形態におけるビデオデコードステップの詳細について説明するためのフローチャートである。
【図７】本発明の実施の形態における早戻しキャプチャステップの詳細について説明するためのフローチャートである。
【図８】本発明の実施の形態における早送りキャプチャステップの詳細について説明するためのフローチャートである。
【図９】従来から存在するＭＰＥＧについて説明するための図である。
【図１０】従来の早送り/早戻しを実現する方法の１つを説明するための図である。
【図１１】従来におけるシーク位置がファイル終端を超えてしまう問題点を説明するための図である。
【符号の説明】
【００５７】
１０  送受信手段（要求手段）
１１  バッファ手段
１２  Ｄｅｍｕｘ手段（算出手段）
１３  システムデコード手段
１４  ビデオバッファ手段
１５  ビデオデコード手段
１６  ビデオ出力手段
１７  オーディオバッファ手段
１８  オーディオデコード手段
１９  オーディオ出力手段
２０  ビットレート管理手段
２１  ＧＯＰ情報管理手段
２２  時間情報管理手段
２３  フレームレート管理手段
２４  最終ＧＯＰシーク位置計算手段（時間位置取得手段）
２５  制御手段（判断手段、取得手段）
２６  切り替えスイッチ（ＳＷ）
１００  プレーヤ
１０１  サーバ
１０２  通信ネットワーク
【図１】
2009049855.tif 000005
【図２】
2009049855.tif 000006
【図３】
2009049855.tif 000007
【図４】
2009049855.tif 000008
【図５】
2009049855.tif 000009
【図６】
2009049855.tif 000010
【図７】
2009049855.tif 000011
【図８】
2009049855.tif 000012
【図９】
2009049855.tif 000013
【図１０】
2009049855.tif 000014
【図１１】
2009049855.tif 000015