(57)【要約】    【課題】  可動式の記録装置にエンコードされた動画データが記録されている場合であっても、迅速に目的とするフレームを得ることのできる装置を提供する。    【解決手段】    ストリームキャッシュ処理手段１０は、予測手段８の予測に基づき、使用が予想される動画データファイル６の一部を、可動式記録部２から読み出して非可動式記録部１４に記録する。この際、非可動式記録部１４に記録した各フレームのフレーム番号やアクセス位置を併せて記録する。復元手段２４は、対象フレームを、非可動式記録部１４から読み出す。この際、非可動式記録部１４に記録されているフレーム番号やアクセス位置を参照することで迅速に読み出すことができる。復元手段１４は読み出したデータに基づいてフレームを復元し、表示部２６において表示する。【選択図】  図１
2006325086.tif 000002
【特許請求の範囲】
【請求項１】
動画を構成するフレームをエンコードした動画データファイルを記録し、アクセスのための可動部を有する可動式記録部と、
動画の一部である各動画素材の開始フレーム順番情報および終了フレーム順番情報を特定する編集構成データファイルを記録した編集構成データファイル記録部と、
動画データファイルのフレーム群を記録するための非可動式のストリームキャッシュ記録部と、
編集構成データファイルに基づいて必要となる複数フレームを予想する予測手段と、
予測手段による当該予想複数フレームに対応する動画データファイルの一部を、可動式記録部から読み出して、ストリームキャッシュ記録部に記憶するストリームキャッシュ処理手段と、
編集構成データファイルに基づいて次に必要な対象フレームを特定する特定手段と、
ストリームキャッシュ手段に記憶された動画データファイルに基づいて、前記対象フレームをデコードするフレーム復元手段と、
フレーム復元手段によって復元されたフレームを表示する表示部と、
を備えた動画再生機能を有する装置。
【請求項２】
コンピュータによって動画データファイルからフレームを取得するフレーム取得装置を構成するためのフレーム取得プログラムであって、
動画を構成するフレームをエンコードした動画データファイルを記録し、アクセスのための可動部を有する可動式記録部と、動画の一部である各動画素材の開始フレーム順番情報および終了フレーム順番情報を特定する編集構成データファイルを記録した編集構成データファイル記録部と、動画データファイルのフレーム群を記憶するためのストリームキャッシュ記録部にアクセスするためのアクセス手段と、
予想された必要となる予想複数フレームに対応する動画データファイルの一部を、可動式記録部から読み出して、ストリームキャッシュ記録部に記憶する非可動式のストリームキャッシュ処理手段と、
ストリームキャッシュ手段に記憶された動画データファイルに基づいて、特定された次に必要な対象フレームをデコードするフレーム復元手段と、
をコンピュータによって実現するためのフレーム取得プログラム。
【請求項３】
請求項１の装置または請求項２のプログラムにおいて、
前記可動式記録部に記録された動画データファイルは、エンコードした複数フレームの動画をグループ化してグループデータとし、当該グループデータを時系列順に配置したものであり、
動画データファイル中の各グループデータの代表点の記録位置をアクセス位置として記述するとともに各グループデータに含まれる代表フレームの、動画データファイル全体のフレームにおける順番を示す代表フレーム順番情報を記述したインデックスファイルが、動画データファイルに対応づけて記録されたインデックスファイル記録部が設けられており、
前記ストリームキャッシュ処理手段は、予想複数フレームの両端のフレーム順番情報とインデックスファイルの代表フレーム順番情報に基づいて、予想複数フレームを含むグループデータを特定し、当該グループデータのアクセス位置に基づいて、前記可動式記録部からグループデータを取得することを特徴とするもの。
【請求項４】
請求項１の装置または請求項２のプログラムにおいて、
前記可動式記録部に記録された動画データファイルは、エンコードした複数フレームの動画をグループ化してグループデータとし、当該グループデータをパケット化したパケットデータを時系列順に配置したものであり、
動画データファイル中の各グループデータを含むパケットの代表点の記録位置をアクセス位置として記述し、各グループデータに含まれる代表フレームの、動画データファイル全体のフレームにおける順番を示す代表フレーム順番情報を記述したインデックスファイルが、動画データファイルに対応づけて記録されたインデックスファイル記録部が設けられており、
前記ストリームキャッシュ処理手段は、a)予想複数フレームの両端のフレーム順番情報とインデックスファイルの代表フレーム順番情報に基づいて、予想複数フレームを含むグループデータを特定し、b)当該グループデータを含むパケットのアクセス位置に基づいて、前記可動式記録部からグループデータを含むパケットを取得し、c)当該パケットからグループデータを復元してストリームキャッシュ記録部に記録することを特徴とするもの。
【請求項５】
請求項３または４の装置またはプログラムにおいて、
前記ストリームキャッシュ処理手段は、グループデータをストリームキャッシュ部に記録する際に、当該グループデータを構成する少なくとも主要ピクチャーデータの個別フレーム順番情報を算出してストリームキャッシュ部に記録し、
前記フレーム復元手段は、前記個別フレーム情報に基づいて、対象フレームの復元に必要なピクチャーデータを特定することを特徴とするもの。
【請求項６】
請求項３〜５のいずれか装置またはプログラムにおいて、
前記ストリームキャッシュ処理手段は、グールプデータをストリームキャッシュ部に記録する際に、当該グループデータを構成する少なくとも主要ピクチャーデータのストリームキャッシュ記録部における記録位置を個別アクセス位置としてストリームキャッシュ記録部に記録し、
前記フレーム復元手段は、前記個別フレーム情報に基づいて、対象フレームの復元に必要なピクチャーデータを特定することを特徴とするもの。
【請求項７】
請求項１〜６のいずれかの装置またはプログラムにおいて、
前記フレーム復元手段は、対象フレームを得るために復元した一以上のフレームをデコード済キャッシュ記録部に記録しておき、新たに必要となった対象フレームについて、デコード済キャッシュ記録部に記録されていればこれから取得し、デコード済キャッシュ記録部に記録されていなければ、ストリームキャッシュ記録部から取得して復元することを特徴とするもの。
【請求項８】
請求項７の装置またはプログラムにおいて、
前記フレーム復元手段は、対象フレームがデコード済キャッシュ記録およびストリームキャッシュ記録部のいずれにも記録されていない場合には、可動式記録部から取得して復元することを特徴とするもの。
【請求項９】
請求項１〜８のいずれかの装置またはプログラムにおいて、
前記ストリームキャッシュ処理手段または前記予測手段は、予測複数フレームが、予想再生順序において降順であるか否かを、フレーム順番情報に基づいて判断し、降順であれば昇順に修正することを特徴とするもの。
【請求項１０】
請求項１〜９の装置において、
前記動画再生機能を有する装置は、動画編集装置であることを特徴とするもの。
【請求項１１】
請求項１〜９の装置において、
前記動画再生機能を有する装置は、動画送信装置であることを特徴とするもの。
【請求項１２】
動画を構成するフレームをエンコードした動画データファイルを記録し、アクセスのための可動部を有する可動式記録部と、動画の一部である各動画素材の開始フレーム順番情報および終了フレーム順番情報を特定する編集構成データファイルを記録した編集構成データファイル記録部と、動画データファイルのフレーム群を記録するためのストリームキャッシュ記録部にアクセス可能なコンピュータによって動画を再生する方法であって、
予測手段により、編集構成データファイルに基づいて必要となる複数フレームを予想し、
ストリームキャッシュ処理手段により、予測手段による当該予想複数フレームに対応する動画データファイルの一部を、可動式記録部から読み出して、ストリームキャッシュ記録部に記憶し、
特定手段により、編集構成データファイルに基づいて次に必要な対象フレームを特定し、
ストリーム復元手段により、ストリームキャッシュ手段に記憶された動画データファイルに基づいて、前記対象フレームをデコードし、
表示部により、フレーム復元手段によって復元されたフレームを表示することを特徴とする動画再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画ファイルの再生処理をスムースに行うための技術に関するものである。
【背景技術】
【０００２】
動画データは、データ容量が大きくなるため、圧縮された上、ハードディスクなどの可動部を有する大容量記録装置に動画データファイルとして記録されることが多い。動画データの圧縮方式としては、ＭＰＥＧが広く用いられている。
【０００３】
ＭＰＥＧ方式の動画データは、Ｉピクチャ、Ｐピクチャ、Ｂピクチャの３種類のデータによって構成される。Ｉピクチャはフレーム内符号化によって圧縮されており、それ単独で画像を復元することができる。Ｐピクチャは、過去のフレーム画像に基づく動き補償予測を用いたフレーム間予測により圧縮されている。Ｂピクチャは、過去または未来のフレーム画像に基づく動き補償予測を用いたフレーム間予測により圧縮されている。ＭＰＥＧ方式の動画データを記録したり伝送したり場合には、このようなＩピクチャ、Ｐピクチャ、Ｂピクチャをグループ化してＧＯＰとすることが多い。また、このＧＯＰを、さらにパケット化することも多い。
【０００４】
動画データの再生装置、編集装置、送信装置などは、対象とするフレームを含むＧＯＰを動画データをハードディスクから読み出し、デコードして対象フレームを復元する。
【０００５】
【特許文献１】特開２００３−１６３２６１
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このような動画データファイルを読み出して再生する装置（再生装置、編集装置、送信装置など）においては、可動部があるためアクセス時間を要するハードディスクからのトータルな読み出し時間をいかに短くするかが重要である。
【０００７】
いずれの装置においても、再生時の時間経過と同じ時間経過にて各フレームを再生することが好ましい。しかしながら、圧縮された動画データを伸張するための処理時間を要する上、ハードディスクへのアクセス時間が必要であるため、再生速度を維持することが困難な場合があった。特に、逆方向への再生を行う場合には、ハードディスクへの逆方向へのアクセスが発生し顕著な問題となっていた。同様に、トランジションなどの特殊効果などの再生の場合には、離れた場所に記録されている２つの動画データファイルに対して、交互にアクセスを行わねばならず、再生時間の遅延が特に問題であった。このような問題は、ＭＰＥＧ方式の動画データだけでなく、他のエンコード形式の動画データについても同様であった。
【０００８】
特許文献１には、上記のような再生時間の遅れが生じることを前提に、これに対する対応を施した装置を開示している。しかしながら、これは、上記の問題を直接的に解決するものではない。
【０００９】
この発明は上記のような問題点を解決して、可動式の記録装置にエンコードされた動画データが記録されている場合であっても、迅速に目的とするフレームを得ることのできる装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
(1)(2)この発明の一側面に係る動画再生機能を有する装置は、動画を構成するフレームをエンコードした動画データファイルを記録し、アクセスのための可動部を有する可動式記録部と、動画の一部である各動画素材の開始フレーム順番情報および終了フレーム順番情報を特定する編集構成データファイルを記録した編集構成データファイル記録部と、動画データファイルのフレーム群を記録するための非可動式のストリームキャッシュ記録部と、編集構成データファイルに基づいて必要となる複数フレームを予想する予測手段と、予測手段による当該予想複数フレームに対応する動画データファイルの一部を、可動式記録部から読み出して、ストリームキャッシュ記録部に記憶するストリームキャッシュ処理手段と、編集構成データファイルに基づいて次に必要な対象フレームを特定する特定手段と、ストリームキャッシュ手段に記憶された動画データファイルに基づいて、前記対象フレームをデコードするフレーム復元手段と、フレーム復元手段によって復元されたフレームを表示する表示部とを備えている。
【００１１】
予測手段を設けて、複数フレームに対応する動画データファイルの一部分をまとめて可動式記録部から読み出し、非可動式の記録部に記録するようにしているので、フレームを取得するためのトータルの時間を減少させることができる。
【００１２】
(3)この発明の一側面に係る動画再生機能を有する装置は、可動式記録部に記録された動画データファイルは、エンコードした複数フレームの動画をグループ化してグループデータとし、当該グループデータを時系列順に配置したものであり、可動式記録部には、動画データファイル中の各グループデータの代表点の記録位置をアクセス位置として記述するとともに各グループデータに含まれる代表フレームの、動画データファイル全体のフレームにおける順番を示す代表フレーム順番情報を記述したインデックスファイルが、動画データファイルに対応づけて記録されており、ストリームキャッシュ処理手段は、予想複数フレームの両端のフレーム順番情報とインデックスファイルの代表フレーム順番情報に基づいて、予想複数フレームを含むグループデータを特定し、当該グループデータのアクセス位置に基づいて、前記可動式記録部からグループデータを取得することを特徴としている。
【００１３】
インデックスファイルを設けているので、予想複数フレームを含むグループデータを、可動式記録部から迅速に読み出すことができる。
【００１４】
(4)この発明の一側面に係る動画再生機能を有する装置は、可動式記録部に記録された動画データファイルは、エンコードした複数フレームの動画をグループ化してグループデータとし、当該グループデータをパケット化したパケットデータを時系列順に配置したものであり、可動式記録部には、動画データファイル中の各グループデータを含むパケットの代表点の記録位置をアクセス位置として記述し、各グループデータに含まれる代表フレームの、動画データファイル全体のフレームにおける順番を示す代表フレーム順番情報を記述したインデックスファイルが、動画データファイルに対応づけて記録されており、ストリームキャッシュ処理手段は、a)予想複数フレームの両端のフレーム順番情報とインデックスファイルの代表フレーム順番情報に基づいて、予想複数フレームを含むグループデータを特定し、b)当該グループデータを含むパケットのアクセス位置に基づいて、前記可動式記録部からグループデータを含むパケットを取得し、c)当該パケットからグループデータを復元してストリームキャッシュ記録部に記録することを特徴としている。
【００１５】
インデックスファイルを設けているので、予想複数フレームを含むグループデータを、可動式記録部から迅速に読み出すことができる。
【００１６】
(5)この発明の一側面に係る動画再生機能を有する装置は、ストリームキャッシュ処理手段は、グループデータをストリームキャッシュ部に記録する際に、当該グループデータを構成する少なくとも主要ピクチャーデータの個別フレーム順番情報を算出してストリームキャッシュ部に記録し、フレーム復元手段は、前記個別フレーム情報に基づいて、対象フレームの復元に必要なピクチャーデータを特定することを特徴としている。
【００１７】
したがって、フレーム復元手段は、迅速に対象フレームを復元を行うことができる。
【００１８】
(6)この発明の一側面に係る動画再生機能を有する装置は、ストリームキャッシュ処理手段は、グールプデータをストリームキャッシュ部に記録する際に、当該グループデータを構成する少なくとも主要ピクチャーデータのストリームキャッシュ記録部における記録位置を個別アクセス位置としてストリームキャッシュ記録部に記録し、フレーム復元手段は、前記個別フレーム情報に基づいて、対象フレームの復元に必要なピクチャーデータを特定することを特徴としている。
【００１９】
したがって、フレーム復元手段は、迅速に対象フレームを復元を行うことができる。
【００２０】
(7)この発明の一側面に係る動画再生機能を有する装置は、フレーム復元手段は、対象フレームを得るために復元した一以上のフレームをデコード済キャッシュ記録部に記録しておき、新たに必要となった対象フレームについて、デコード済キャッシュ記録部に記録されていればこれから取得し、デコード済キャッシュ記録部に記録されていなければ、ストリームキャッシュ記録部から取得して復元することを特徴としている。
【００２１】
したがって、フレーム復元手段は、直近に使用したフレームを迅速に得ることができる。
【００２２】
(8)この発明の一側面に係る動画再生機能を有する装置は、フレーム復元手段は、対象フレームがデコード済キャッシュ記録にもストリームキャッシュ記録部にも記録されていない場合には、可動式記録部から取得して復元することを特徴としている。
【００２３】
したがって、確実に対象フレームを取得することができる。
【００２４】
(9)この発明の一側面に係る動画再生機能を有する装置は、ストリームキャッシュ処理手段または前記予測手段は、予測複数フレームが、予想再生順序において降順であるか否かを、フレーム順番情報に基づいて判断し、降順であれば昇順に修正することを特徴としている。
【００２５】
したがって、可動式記録部からの予測複数フレームの取り出しを迅速に行うことができる。
【００２６】
(12)この発明の一側面に係る動画再生方法は、動画を構成するフレームをエンコードした動画データファイルを記録し、アクセスのための可動部を有する可動式記録部と、動画の一部である各動画素材の開始フレーム順番情報および終了フレーム順番情報を特定する編集構成データファイルを記録した編集構成データファイル記録部と、動画データファイルのフレーム群を記録するためのストリームキャッシュ記録部にアクセス可能なコンピュータによって動画を再生する方法であって、予測手段により、編集構成データファイルに基づいて必要となる複数フレームを予想し、ストリームキャッシュ処理手段により、予測手段による当該予想複数フレームに対応する動画データファイルの一部を、可動式記録部から読み出して、ストリームキャッシュ記録部に記憶し、特定手段により、編集構成データファイルに基づいて次に必要な対象フレームを特定し、ストリーム復元手段により、ストリームキャッシュ手段に記憶された動画データファイルに基づいて、前記対象フレームをデコードし、表示部により、フレーム復元手段によって復元されたフレームを表示することを特徴としている。
【００２７】
複数フレームに対応する動画データファイルの一部分をまとめて可動式記録部から読み出し、非可動式の記録部に記録するようにしているので、フレームを取得するためのトータルの時間を減少させることができる。
【００２８】
この発明において、「可動式記録部」とは、記録内容にアクセスするために機械的動作が必要な記録装置をいい、ハードディスク、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブなどを含む概念である。実施形態では、ハードディスク２がこれに該当する。
【００２９】
「編集構成データファイル記録部」とは、少なくとも編集構成データを記録するものであり、可動式・非可動式を問わない。実施形態では、ハードディスク２、メモリ３４がこれに該当する。
【００３０】
「ストリームキャッシュ記録部」とは、少なくとも動画データファイルの一部を記録するものであり、非可動式のものをいう。ここに「非可動式記録部」とは、記録内容にアクセスするために機械的動作が本質的に必要でない記録装置をいい、ＲＡＭ、ＲＯＭ、ＵＳＢメモリ、メモリカードなどを含む概念である。実施形態では、メモリ３４がこれに該当する。
【００３１】
「予測手段」は、実施形態においては、図１６のステップＳ１０２がこれに対応する。
【００３２】
「ストリームキャッシュ処理手段」は、実施形態においては、図１６のステップＳ１０３がこれに対応する。
【００３３】
「特定手段」は、実施形態においては、図１６のステップＳ１０４がこれに対応する。
【００３４】
「フレーム復元手段」は、エンコードされたフレームを復元してフレームを得るものだけでなく、既に復元されて記録されているフレームを取得するものも含む概念である。実施形態においては、図１６のステップＳ１０５がこれに対応する。
【００３５】
「フレーム順番情報」とは、少なくとも、フレームの構成順序を明らかにすることのできるデータであり、フレーム番号、当該フレームのファイル開始からの再生時刻などを含む概念である。
【００３６】
「表示部」とは、復元したフレームを表示するものをいう。実施形態においては、ディスプレイ３２がこれに該当する。
【００３７】
「記録部にアクセスする手段」とは、記録部の内容を読み出したり、記録部に内容を記録したりする手段であり、実施形態においては図１６のステップＳ１０１、Ｓ１０３、図１７のステップＳ２０４、図１８のステップＳ３０１、図１９のステップＳ４０４等がこれに対応する。
【００３８】
「プログラム」とは、ＣＰＵにより直接実行可能なプログラムだけでなく、ソース形式のプログラム、圧縮処理がされたプログラム、暗号化されたプログラム等を含む概念である。
【発明を実施するための形態】
【００３９】
１．全体構成
図１に、この発明の一実施形態による動画再生装置の機能ブロック図を示す。可動式記録部２には、動画インデックスファイル４、動画データファイル６、編集構成データファイル１２が記録される。
【００４０】
動画データファイル６は、圧縮した複数フレームの動画をグループ化してグループデータとし、当該グループデータを時系列順に配置したものである。動画インデックスファイル４は、動画データファイル６に対応して設けられたものである。動画インデックスファイル４には、上記のグループデータ毎にグループ情報が記述されている。グループ情報には、動画データファイル４中の各グループデータの代表点の記録位置をアクセス位置や、各グループデータに含まれるグループ先頭フレームおよびグループ最終フレームの、動画データファイル６全体のフレームにおける順番を示す先頭最終フレーム順番情報が記述されている。
【００４１】
編集構成データファイル１２は、動画データファイル６の一部である各動画素材の開始フレーム順番情報および終了フレーム順番情報を特定することにより、再生する動画を決定するものである。
【００４２】
予測手段８は、編集構成データファイル１２を参照し、現在処理中のフレーム番号および再生形態（順方向再生か逆方向再生かなど）に基づいて、この先に必要となるフレームの固まり(予想複数フレーム)を予想する。
【００４３】
ストリームキャッシュ処理手段１０は、上記予想複数フレームの両端（最初と最後）のフレームのフレーム順番情報と、インデックスファイル４の代表フレームの順番情報に基づいて、予想複数フレームを含むグループデータを特定する。
【００４４】
さらに、インデックスファイル４に記述された当該グループデータのアクセス位置に基づいて、動画データファイル６の予想複数フレームを含むグループデータにアクセスする。取得した予想複数フレームを含むグループデータ１６は、非可動式記録部１４に記録される。
【００４５】
この際、ストリームキャッシュ処理手段１０は、当該グループデータ１６のアクセス位置をインデックスファイル４から取得し、これを非可動式記録部１４のアクセス位置（記録位置）に変換して記録する。さらに、当該グループデータに含まれる各フレームの(非可動式記録部１４における)アクセス位置を算出し、個別アクセス位置２０として記録する。さらに、当該グループデータ１６の先頭最終フレーム順番情報をインデックスファイル4から取得し、これに基づいて、当該グループデータに含まれる各フレームのフレーム順番情報を算出して、個別フレーム順番情報１８として記録する。
【００４６】
特定手段２２は、編集構成データファイル１２を参照し、動画データファイル６中の次に処理すべき対象フレームのフレーム順番情報を特定する。フレーム復元手段２４は、非可動式記録部１４の個別フレーム順番情報１８、個別アクセス位置２０に基づいて、グループデータ１６中の対象フレームをデコードし、表示部２６に与える。表示部２６は、デコードされたフレームを表示する。
【００４７】
２．ハードウエア構成
図２に動画再生装置のハードウエア構成を示す。ＣＰＵ３０には、ディスプレイ３２、メモリ３４、ハードディスク２、、キーボード／マウス３６、ＣＤ−ＲＯＭドライブ３８が接続されている。ディスプレイ３２は、デコードされた動画表示するためのものである。キーボード／マウス３６は、再生のための操作を入力するためのものである。メモリ３４は、ＣＰＵ３０のワーク領域として使用される。
【００４８】
ハードディスク２には、WINDOWS(商標)などのオペレーティングシステム２５、動画データファイル６、編集構成データファイル１２、再生処理プログラム２８などが記録されている。再生処理プログラム２８は、オペレーティングシステム２５と協働して、編集構成データファイル１２の記述にしたがって、動画データファイル６を再生する。インデックス作成プログラム５は、動画データファイル６に対応するインデックスファイル４を作成する。
【００４９】
再生処理プログラム２８、インデックス作成プログラム５は、ＣＤ−ＲＯＭ４０に記録されていたものを、ＣＤ−ＲＯＭドライブ３８を介してインストールしたものである。動画データファイル６は、ディジタルビデオカメラなどからの動画データを記録したものである。この実施形態では、動画データファイル６として、ＭＰＥＧ方式のエレメンタリーストリームが記録されている。
【００５０】
図３に、動画データファイル６の構造を示す。複数のＧＯＰが時系列順に記録されている。ＧＯＰの直前にはシーケンスヘッダＳＨが設けられている場合と、設けられていない場合とがある。シーケンスヘッダＳＨは、再生のために必要な画素縦横比などの情報を記録している。各ＧＯＰには、Ｉピクチャ、Ｂピクチャ、Ｐピクチャが記録されている。また、ＧＯＰの先頭には、スタートコード２０が記録されている。なお、ＧＯＰには、十数フレーム分の動画データが含まれている。
【００５１】
３．インデックスファイルの作成
再生を行う前の準備として、動画データファイル６のインデックスファイル４を作成しておく。図４、図５に、インデックス作成プログラム５のフローチャートを示す。
【００５２】
まず、ＣＰＵ３０は、ＧＯＰカウンタやフレーム数カウンタ等をクリアする。次に、ＣＰＵ３０は、ステップＳ１において、ハードディスク２から動画データファイル６を先頭から読み出す。ステップＳ２において、動画データファイル６の末尾に到達したかどうかを判断する。末尾に到達していなければ、ＣＰＵ３０はＧＯＰの先頭を探し出す。ＧＯＰの先頭には、図３に示すようにスタートコードが存在するのでこれを見いだす。なお、ＧＯＰのスタートコードは、"000001B8"によって開始されるので、これを検出することによりＧＯＰの先頭であることを判断することができる。
【００５３】
読み出した部分がＧＯＰの先頭でなければ(ステップＳ３)、ステップＳ１に戻って、さらに動画データファイル６を読み出す。ＧＯＰの先頭が見いだされれば(ステップＳ３)、ＧＯＰカウンタをインクリメントする(ステップＳ４）。次に、ＣＰＵ３０は、ＧＯＰの直前にシーケンスヘッダＳＨがあるかどうかを判断する(ステップＳ５)。シーケンスヘッダＳＨの開始を示すスタートコードは、"000001B3"で始まるので、これにより検出が可能である。
【００５４】
シーケンスヘッダＳＨがあれば、ＣＰＵ３０は、ＳＨヘッダのスタートコードの記録位置（動画データファイルの先頭から何バイト目にあるか(以下同じ)）を取得して、アクセス位置としてメモリ３４に記録する（ステップＳ６）。直前にシーケンスヘッダＳＨがなければ、ＧＯＰのスタートコードの記録位置を取得して、アクセス位置としてメモリ３４に記憶する(ステップＳ７）。
【００５５】
次に、ＣＰＵ３０は、ＧＯＰのスタートコードに記述されているタイムコード（動画の最初からの経過時間）およびクローズドＧＯＰかブロークンリンクかの区別を取得し、メモリ３４に記憶する(ステップＳ８)。当該ＧＯＰの画像データが、前のＧＯＰの画像データを参照しなくとも復元できる場合は、クローズドＧＯＰである旨、前のＧＯＰの画像データを参照しなければ復元できない場合は、ブロークンリンクである旨がスタートコード内に記録されている。ＣＰＵ３０は、これを取得してメモリ３４に記録する。
【００５６】
次に、ＣＰＵ３０は、動画データファイル６を読み出して当該ＧＯＰのデータを取得する(ステップＳ９）。取得したＧＯＰのデータを解析し、フレーム数カウンタによりフレーム数をカウントする(ステップＳ１０）。ＣＰＵ３０は、次のようにしてＧＯＰを解析し、当該ＧＯＰに含まれるフレームの数を取得する。
【００５７】
ＣＰＵ３０は、ＧＯＰの先頭から順にピクチャースタートコード(00000100)を見いだす。ピクチャースタートコードは、Ｉピクチャー、Ｂピクチャー、Ｐピクチャーの先頭に設けられている。したがって、ピクチャースタートコードを検出することにより、Ｉピクチャー、Ｂピクチャー、Ｐピクチャーの存在を知ることができる。
【００５８】
たとえば、Ｉピクチャー、Ｂピクチャー、Ｐピクチャーがそれぞれ１つのフレームに対応している場合には、ピクチャースタートコードが１つで、１つのフレームに対応する。
【００５９】
また、Ｉピクチャー（Ｂピクチャー、Ｐピクチャー）が２つで1フレームの画像を構成している場合もある。このような場合には、ピクチャースタートコードが２つで、1つのフレームに対応することになる。
【００６０】
図３に示すように、ピクチャースタートコードに続いて、Ｉピクチャー、Ｂピクチャー、Ｐピクチャーのいずれであるかを示す「種類」のデータと、当該１つのピクチャーで1フレームを構築するか(ノンインターレース)、２つのピクチャーで1フレームを構築するか(インターレース)の「区別」データが記録されている。ＣＰＵ３０は、この「区別」データを参照し、ノンインターレースの場合には、１つのピクチャースタートコードで1つのフレームを認識し、インターレースの場合には、２つのピクチャースタートコードで1つのフレームを認識する。
【００６１】
一方、フレーム数カウンタは、動画の最初のフレームからのフレーム数をカウントするものである。なお、ＣＰＵ３０は、当該ＧＯＰの最初のフレーム番号（フレー数カウンタの計数値）を先頭フレーム番号としてメモリ３４に記録する。
【００６２】
次に、ＣＰＵ３０は、当該ＧＯＰの最後までフレームを解析したかどうかを判断する(ステップＳ１１)。なお、この実施形態では、ＣＰＵ３０は、次のＧＯＰが現れたかどうかによって、最後までフレームを解析したかどうかを判断するようにしている。最後でなければ、ステップＳ９以下を繰り返し実行する。ＧＯＰの最後まで復元すれば、その時点のフレーム数カウンタの計数値を最終フレーム番号としてメモリ３４に記憶する(ステップＳ１２）。
【００６３】
次に、ＣＰＵ３０は、メモリ３４の記憶内容を、インデックスファイル４に出力する(ステップＳ１３）。
【００６４】
図６に、インデックスファイル４の構造を示す。総ＧＯＰ数、総フレーム数は、動画データファイル６のすべてのＧＯＰについての処理が終了してから記録される。ここでは、ＧＯＰのＩＤ（図ではＧＯＰ１として示されている）、アクセス位置、先頭フレーム番号、最終フレーム番号、タイムコード、種類(クローズドＧＯＰかブロークンリンクか）が、メモリ３４の記録内容に基づいて記録される。なお、ＧＯＰのＩＤは、ＧＯＰを特定するために各ＧＯＰに付した連番である。
【００６５】
次に、ＣＰＵ３０は、ステップＳ１に戻り、次のＧＯＰについて同様の処理を行う。これにより、図６のＧＯＰ２について、アクセス位置、先頭フレーム番号、最終フレーム番号、タイムコード、種類が記録される。
【００６６】
この処理を繰り返し動画ファイルの最後に到達すると(ステップＳ２)、ＣＰＵ３０は、総フレーム数、総ＧＯＰ数をインデックスファイル４に記録する(ステップＳ１５)。このようにしてインデックスファイル４が生成される。
【００６７】
なお、この実施形態では、動画データファイル６と当該動画データファイル６について作成されたインデックスファイル４とを対応づけるために、両ファイルのファイル名を同一にし、拡張子を異ならせるようにしている。たとえば、動画データファイルがaaa.mpgである場合には、インデックスファイルはaaa.imvとされる。これにより、同一ファイル名の動画データファイルとインデックスファイルが関連づけられていることが容易に判別できる。
【００６８】
上記実施形態では、動画データファイル６がエレメンタリーストリーム（ＥＳ）の形式である場合について説明した。動画データファイル６としては、図７に示すように、エレメンタリーストリームをパケット化したＰＥＳの形式も存在する。ＰＥＳの各パケットには、ビデオストリームスタートコードが付され、ＥＳを細分化したデータが内容として記述されている。たとえば、パケットＰ１は、ＥＳのαの部分のデータを記録している。また、パケットＰ２は、ＥＳのβの部分のデータを記録している。
【００６９】
このようなＰＥＳ形式の動画データファイル６についてインデックスファイルを生成する処理のフローチャートを図８、図９に示す。図４、図５と同様のステップについては、同一の符号を付している。
【００７０】
ＣＰＵ３０は、ＧＯＰの先頭であるかどうかを判断するために、まず、パケットを解く必要がある。したがって、ステップＳ３の前に、パケットを解くステップＳ２５を実行するようにしている。
【００７１】
図４においては、ＳＨまたはＧＯＰのスタートコードの記録位置を取得してインデックスファイルに記録するようにしていた（ステップＳ６、Ｓ７）。しかし、図９では、ＳＨまたはＧＯＰのスタートコードを含むパケットのビデオストリームスタートコードの記録位置を取得してインデックスファイルに記録するようにしている(ステップＳ６５、Ｓ７５）。たとえば、図７のＥＳのＳＨを見いだすと、これを含むパケットＰ２の先頭位置をアクセス位置として記録する。このようにパケットのスタートコードの記録位置をインデックスファイルに記録することにより、編集時にパケットを解かなくとも、所望のフレームを得るためにどのパケットにアクセスすればよいかを知ることができる。
【００７２】
ステップＳ８５においては、ＳＨまたはＧＯＰのスタートコードを含むパケットのスタートコード中に記録されているＰＴＳ(時間情報)を取得して、インデックスファイルに記録するようにしている。
【００７３】
また、ステップＳ１０においてフレーム数をカウントする前に、パケットを解いてＧＯＰのデータを取得する処理を行っている(ステップＳ９５)。
【００７４】
上記の処理によって生成されたインデックスファイル４のデータ構造を、図１０に示す。基本的には図６と同様であるが、アクセス位置としてパケットの位置が記録されている点が異なっている。
【００７５】
なお、音声データのＰＥＳと動画データのＰＥＳ双方を含むＰＳ(プログラムストリーム)についても、動画データのＰＥＳだけのためのインデックスファイルと上記と同様にして作成することができる。
【００７６】
上記実施形態では、動画データファイル６がパケット化されたエレメンタリーストリーム（ＰＥＳ）の形式である場合について説明した。動画データファイル６としては、図１１に示すように、ＰＥＳをさらにパケット化したトランスポートストリーム（ＴＳ）の形式も存在する。ＴＳの各パケットには、パケットＩＤが付され、ＰＥＳを細分化したデータが内容として記述されている。
【００７７】
このようなＰＥＳ形式の動画データファイル４についてインデックスファイルを生成するプログラムのフローチャートを図１２、図１３に示す。図４、図５、図８、図９と同様のステップについては、同一の符号を付している。
【００７８】
ＣＰＵ３０は、ＧＯＰの先頭であるかどうかを判断するために、まず、ＴＳのパケットを解いてＰＥＳのパケットを得て（ステップＳ２５５）、さらに、ＰＥＳのパケットを解く必要がある(ステップＳ２５)。したがって、ステップＳ３の前に、ＴＳパケットを解くステップＳ２５５、ＰＥＳパケットを解くステップＳ２５を実行するようにしている。
【００７９】
図８においては、ＳＨまたはＧＯＰのスタートコードを含むＰＥＳパケットのビデオストリームスタートコードの記録位置を取得してインデックスファイルに記録するようにしていた(ステップＳ６５、Ｓ７５）。しかし、図１２では、ＳＨまたはＧＯＰのスタートコードを含むＰＥＳパケットのビデオストリームスタートコードを含むＴＳパケットの記録位置を取得してインデックスファイルに記録するようにしている(ステップＳ６５５、Ｓ７５５)。たとえば、図１１のＥＳのＳＨを見いだすと、これを含むＰＥＳパケットＰ２の先頭位置を見いだし、さらに、この先頭位置を含むＴＳパケットγの先頭位置をアクセス位置として記録する。このようにＴＳパケットのスタートコードの記録位置をインデックスファイルに記録することにより、編集時にパケットを解かなくとも、所望のフレームを得るためにどのＴＳパケットにアクセスすればよいかを知ることができる。
【００８０】
ステップＳ８５５においては、アクセス位置のＴＳパケット内のＰＥＳに記録されているＰＴＳ(時間情報)を取得して、インデックスファイルに記録するようにしている。
【００８１】
また、ステップＳ１０においてフレーム数をカウントする前に、ＴＳパケットを解いてＰＥＳパケットを得て、さらにＰＥＳパケットを解いてＧＯＰのデータを取得する処理を行っている(ステップＳ９５５、Ｓ９５)。
【００８２】
上記の処理によって生成されたインデックスファイル４のデータ構造を、図１４に示す。基本的には図６、図１０と同様であるが、アクセス位置としてＴＳパケットの位置が記録されている点が異なっている。
【００８３】
なお、上記の各実施形態では、動画データファイル４がＥＳ、ＰＥＳ（ＰＳ）、ＴＳである場合のそれぞれについて説明した。しかし、図１５に示すように、取得した動画データファイル６が上記のいずれに該当するかを判断し(ステップＳ５０)、それぞれ適切な処理を選択してインデックスファイル４を作成するようにしてもよい。
【００８４】
なお、動画データファイル６が複数ある場合には、それぞれの動画データファイル６に対してインデックスファイル４が生成される。
【００８５】
４．再生処理
次に、再生処理について説明する。再生処理プログラムのフローチャートを図１６に示す。ここでは、動画データファイル６が、図３のような構造である場合（ＥＳ）について説明する。
【００８６】
ＣＰＵ３０は、ステップＳ１０１において、編集構成データファイル１２をハードディスク２から読み出して、メモリ３４に記録する。編集構成データファイル１２の構造を、図２０に示す。図２１に示すように、編集構成データファイル１２は、動画データファイル６からクリップ(動画素材)Ｃ1、Ｃ2、Ｃ3を特定し、編集済み動画を定義するファイルである。
【００８７】
図２０において、タイムライン情報２００に、各クリップ（動画素材）ごとの情報が示される。各クリップの情報の中には、ＡＶＩファイル名２０２、ＩＮ点情報２０４、ＯＵＴ点情報２０６、タイムライン上の開始位置タイムコード２０８、オーディオレベル情報２１０、オーディオビデオリンク情報２１２、再生速度情報２１４が含まれる。
【００８８】
ＡＶＩファイル名２０２は、動画データファイル６のファイル名である。ＩＮ点情報２０４は、そのクリップが開始するメイン動画データファイル６上の位置である。ＯＵＴ点情報２０６は、そのクリップが終了する動画データファイル６上の位置である。タイムライン上の開始位置タイムコード２０８は、そのクリップの先頭を再生する際の、再生タイミングを示している。つまり、編集済み動画を再生する際の、そのクリップの先頭フレームの再生タイミングを、再生開始からの経過時間によって表したものである。オーディオレベル情報２１０は、オーディオ情報の再生レベルを示すものである。オーディオビデオリンク情報２１２は、動画とオーディオの同期をとるための情報である。再生速度情報２１４は、再生速度を示すものである。
【００８９】
図２１に、動画データファイル６と所望の編集済み動画と編集構成データとの関係を示す。図に示すように、動画データファイル６の一部をクリップＣ1、Ｃ2、Ｃ3として抜き出して結合し、編集済み動画としたい場合には、編集構成データを図に示すように構成する。編集構成データ１５のタイムライン情報の最初のクリップ記述の部分に、クリップＣ1の開始点ａ1(動画データファイル６におけるフレーム番号)と終了点ａ2(動画データファイル６におけるフレーム番号)を記述する。さらに、タイムライン上の開始位置のタイムコード記述の部分に、編集済み動画におけるフレーム番号ｂ1を記録する。クリップＣ2、Ｃ3についても同様である。
【００９０】
なお、編集済み動画は、動画データファイル６と編集構成データファイル１２によって特定されるものであり、編集済み動画データファイルとして独立して記録されるものではない。このようにすることにより、編集構成データファイル１２を修正するだけで、動画データファイル６を改変することなく、編集を行うことができる。
【００９１】
次に、ＣＰＵ３０は、メモリ３４に記録した編集構成データファイル１２に基づいて、キャッシュすべき必要複数フレームを予測する(ステップＳ１０２)。この予測処理の詳細フローチャートを、図１７に示す。
【００９２】
ＣＰＵ３０は、編集構成データファイル１２に基づいて、必要複数フレームのリストを作成する(ステップＳ２０１)。たとえば、編集構成データファイル１２のタイムライン情報２００のＩＮ点とＯＵＴ点の記述が、図２２に示すようであったとする。この構成データファイル１２によれば、通常再生モードにおいては、クリップＣＬ1、ＣＬ2、ＣＬ3、ＣＬ4の順に再生が行われることがわかる。なお、クリップＣＬ3は、通常再生モードにおいて、逆方向にフレームが進行するクリップである。
【００９３】
ここで、クリップＣＬ1（フレーム番号１〜１０）については、既にキャッシュ済みであるとする。この場合、ＣＰＵ３０は、次にキャッシュすべきフレーム範囲を次のように決定する。なお、ここでは、通常再生が指示されているものとする。逆方向再生などの場合にも、予測方向が逆になるだけであり、同様の手法にて予測を行うことができる。
【００９４】
キャッシュすべきフレーム数は、たとえば、２０フレームというように予め定められている。ＣＰＵ３０は、編集構成データファイル１２のタイムライン情報に基づいて、既にキャッシュしているフレームより後の２０フレームを必要複数フレームとする。図２２の場合であれば、クリップＣＬ2のフレーム１５〜２５およびクリップＣＬ3のフレーム３０〜２０を必要複数フレームとすることになる。ＣＰＵ３０は、これを図２３Ａに示すような範囲リストとして、メモリ３４に記録する(ステップＳ２０１)。図２３Ａにおいては、範囲リストに２つの項目が設けられている。対象となるクリップのサイズが大きい場合には、項目は一つになる。
【００９５】
次に、ＣＰＵ３０は、範囲リストの各項目において、ＩＮ点がＯＵＴ点より大きい場合には、ＩＮ点とＯＵＴ点を入れ替える(ステップＳ２０２)。したがって、範囲リストは、図２３Ｂのように書き換えられる。
【００９６】
ＣＰＵ３０は、範囲リストの各項目を、ＩＮ点のフレーム番号が昇順になるように並び替える。これは、後に、ハードディスク２にアクセスする際に、戻る方向へのヘッドシークをなくすためである。図２３Ｂの範囲リストでは、既に昇順となっているので、並び替えは行われない。
【００９７】
次に、ＣＰＵ３０は、範囲リストの各項目のそれぞれにつき、ＩＮ点、ＯＵＴ点に基づいて、インデックスファイル４を参照し、必要複数フレームが含まれる動画データファイル６のＧＯＰを特定してアクセス位置を取得する（ステップＳ２０４）。たとえば、インデックスファイル４の内容が図２４に示すようであれば、最初の項目（フレーム番号１５〜２５）についてはＧＯＰ１とＧＯＰ２が特定され、２番目の項目（フレーム番号２０〜３０）についてはＧＯＰ２が特定される。つまり、最初の項目については、ＧＯＰ１のアクセス位置からＧＯＰ２の最後の位置（ＧＯＰ３のアクセス位置の直前）までを読み出せばよいことがわかる。２番目の項目については、ＧＯＰ２のアクセス位置からＧＯＰ２の最後の位置（ＧＯＰ３のアクセス位置の直前）までを読み出せばよいことがわかる。
【００９８】
続いて、ＣＰＵ３０は、連続または重複するアクセス範囲を１つにまとめる(ステップＳ２０５)。上記の場合であれば、ＧＯＰ２についてのアクセス範囲が重複しているのでこれをまとめて、ＧＯＰ１のアクセス位置からＧＯＰ２の最後の位置（ＧＯＰ３のアクセス位置の直前）までをアクセス範囲とする。なお、２つの項目のアクセス範囲が連続する場合には、連続する１つのアクセス範囲とする。アクセス速度を速くするためのである。
【００９９】
次に、ＣＰＵ３０は、上記のようにして算出した必要複数フレームのアクセス範囲について、既に、ストリームキャッシュ記録部(メモリ３４）にキャッシュされていないかどうかを判断する。キャッシュされている範囲があれば、当該部分を必要複数フレームのアクセス範囲から外す(ステップＳ２０６)。たとえば、上記の例において、ＧＯＰ１についてストリームキャッシュ記録部（めもり３４）にキャッシュがなされていれば、ＧＯＰ２だけを必要複数フレームとする。つまり、アクセス範囲は、ＧＯＰ２のアクセス位置からＧＯＰ２の最後の位置（ＧＯＰ３のアクセス位置の直前）までとなる。上記のようにして必要複数フレームを含むＧＯＰ(必要複数ＧＯＰ)を予測し、アクセス範囲を取得する。
【０１００】
図１６に戻って、ステップＳ１０３において、ＣＰＵ３０は、予測した必要複数ＧＯＰをハードディスク２の動画データファイル６から読み出し、ストリームキャッシュ記録部（メモリ３４）に記録する。このストリームキャッシュ処理の詳細なフローチャートを図１８に示す。
【０１０１】
ＣＰＵ３０は、予測処理において算出したアクセス範囲の先頭のアクセス位置に基づいて、ハードディスク２の動画データファイル６にアクセスし、必要ＧＯＰを読み出す(ステップＳ３０１)。
【０１０２】
ＣＰＵ３０は、読み出したＧＯＰの内容をストリームキャッシュ記録部に記録する(ステップＳ３０２)。ここでは、ＧＯＰの内容をデコードせずそのまま記録する。ＣＰＵ３０は、上記の記録時に、ＧＯＰの先頭フレームのフレーム番号をインデックスファイル４に基づいて取得する(ステップＳ１０２において取得しておいてもよい)。さらに、上記記録時に、ＧＯＰを構成するＩピクチャ、Ｐピクチャ、Ｂピクチャの存在を判断し、各フレームのフレーム番号を個別的に算出し、個別フレーム番号を算出する（ステップＳ３０３）。
【０１０３】
また、ＣＰＵ３０は、上記記録時に、ＧＯＰのアクセス位置をインデックスファイル４に基づいて取得する(ステップＳ１０２において取得しておいてもよい)。このアクセス位置を、ストリームキャッシュ記録部（メモリ３４）におけるアクセス位置に変換する。さらに、上記記録時に、ＧＯＰを構成するＩピクチャ、Ｐピクチャ、Ｂピクチャの存在を判断し、各フレームのストリームキャッシュ記録部（メモリ３４）におけるアクセス位置を個別的に算出し、個別アクセス位置を算出する（ステップＳ３０３）。
【０１０４】
ＣＰＵ３０は、このようにして算出した個別フレーム番号、個別アクセス位置およびピクチャの種類（Ｐ、Ｂ、Ｉピクチャの区別）をキャッシュインデックスデータとして、メモリ３４に記録する。図２５にキャッシュインデックスファイルのデータ例を示す。なお、この実施形態では、すべてのフレームについて個別フレーム番号、個別アクセス位置を算出して記録しているが、主要なフレームについてのみこれを行うようにしてもよい。
【０１０５】
次に、ＣＰＵ３０は、すべての必要複数ＧＯＰについて処理を行ったかどうかを判断する(ステップＳ３０４)。図２３の例では、最終的に必要複数ＧＯＰは連続する１つのグループにまとまったが、場合によっては、複数のグループに分かれることもある。このような場合には、すべての必要複数ＧＯＰについて上記の処理を繰り返す。
【０１０６】
図１６に戻って、ＣＰＵ３０は、ステップＳ１０４において、編集構成データファイル１２に基づいて、次にデコードすべきフレームを特定し対象フレームとする。つまり、対象フレームのフレーム番号を特定する。ＣＰＵ３０は、いずれのフレームまでをデコードし再生用バッファに転送したかを記録しているので、次にデコードすべきフレームを特定することができる。
【０１０７】
次に、ＣＰＵ３０は、デコードして対象フレームを復元する処理を行う(ステップＳ１０５)。このフレーム復元処理の詳細フローチャートを図１９に示す。
【０１０８】
ＣＰＵ３０は、対象フレームがデコード済キャッシュ（メモリ３４）に記録されているかどうかを判断する（ステップＳ４０１）。デコード済キャッシュに記録されていれば、これを読み出して対象フレームを取得する（ステップＳ４０２）。
【０１０９】
デコード済キャッシュに記録されていなければ、ＣＰＵ３０は、ストリームキャッシュ記録部から対象フレームを探す（ステップＳ４０３）。ＣＰＵ３０は、メモリ３４のキャッシュインデックスファイル（図２５参照）に記述された個別フレーム番号に基づいて、対象フレームのフレーム番号があるかどうかを判断することにより、対象フレームがあるかどうかを判断することができる。対象フレームがストリームキャッシュ記録部にあれば、ＣＰＵ３０は、キャッシュインデックスファイルに記述された対象フレームの種別を取得する。
【０１１０】
対象フレームがＩピクチャであば、対象フレームの個別アクセス位置に基づいて、ストリームキャッシュ記録部にアクセスし、データを取得して対象フレームをデコードする（ステップＳ４０４）。
【０１１１】
対象フレームがＩピクチャでなければ、対象フレームの直前のＩピクチャの個別アクセス位置をキャッシュインデックスファイルから取得し、ストリームキャッシュ記録部にアクセスし、データを取得してＩフレームをデコードする。これに続くフレームをデコードし、対象フレームまでこれを続ける。このようにして対象フレームをデコードする（ステップＳ４０４）。なお、ステップＳ４０４においてデコードしたフレームは、デコード済キャッシュ（メモリ３４）に記録する（ステップＳ４０５）。
【０１１２】
なお、ステップＳ４０３において、対象フレームがストリームキャッシュ記録部に存在しない場合もある（予測が外れた場合）。この場合、ＣＰＵ３０は、ハーディスク２のインデックスファイル４を参照し、対象フレームを得るためのＧＯＰを特定する。これは、対象フレームのフレーム番号とＧＯＰの先頭フレーム番号と最終フレーム番号とに基づいて判断することができる。特定したＧＯＰのアクセス位置を取得する（ステップＳ４０６）。
【０１１３】
次に、ＣＰＵ３０は、アクセス位置に基づき、ハードディスク２の動画データファイル６にアクセスしＧＯＰを取得する。ＧＯＰの最初のフレームからデコードし、対象フレームを得る（ステップＳ４０７）。なお、ステップＳ４０７においてデコードしたフレームは、デコード済キャッシュ（メモリ３４）に記録する（ステップＳ４０５）。
【０１１４】
図１６に戻って、ＣＰＵ３０は、上記のようにして取得した対象フレームを再生用バッファ（図示せず）に出力する（ステップＳ１０６）。これにより、ディスプレイ３２は、再生用バッファに記録されたフレームを表示する。
【０１１５】
なお、ＣＰＵ３０は、どのフレームを再生用バッファに出力したかをメモリ３４において記録している。ＣＰＵ３０は、ストリームキャッシュ記録部に記録されたＧＯＰに含まれるフレームのうち必要複数フレームのすべてについて再生用バッファに出力した場合には、当該ストリームキャッシュ記録部の内容を消去する。
【０１１６】
ストリームキャッシュ記録部の内容が無くなると（ステップＳ１０７）、ステップＳ１０２に戻って、次の必要複数フレームをストリームキャッシュ記録部に記録する。
【０１１７】
なお、ストリームキャッシュ記録部は２つ以上設けるようにしてもよい。一方のストリームキャッシュ記録部の必要複数フレームがすべて再生用バッファに出力されると内容が消去され、次の必要複数フレームを蓄積するように処理がなされる。この間、もう一方のストリームキャッシュ記録部の記録内容により、対象フレームがデコードされる。この場合、図１６のフローチャートのステップＳ１０２、Ｓ１０３の処理とステップＳ１０４〜Ｓ１０６の処理は、平行して実行される。
【０１１８】
上記では、動画データファイルが図３のような構造である場合（ＥＳ）について説明した。次に、動画データファイルが図７のような構造である場合（ＰＥＳ、ＰＳ）について説明する。基本的な処理の流れは図１６と同じである。
【０１１９】
ただし、予測処理、ストリームキャッシュ処理、フレーム復元処理が、それぞれ、図２６、図２７、図２８に示すように若干異なっている。図１７、図１８、図１９と同じ処理の部分には同一の符号を付している。
【０１２０】
図２６の予測処理では、ステップＳ２０４１において、必要複数フレームが含まれるＰＥＳパケットのアクセス位置をインデックスファイル（図１０参照）から取得する。
【０１２１】
図２７のストリームキャッシュ処理では、ステップＳ３０１１において、必要複数ＧＯＰが含まれるＰＥＳパケットにアクセスし、ステップＳ３０１２において、ＰＥＳパケットを取得してＧＯＰを復元する。このように、ストリームキャッシュ処理に段階で、ＧＯＰをまとめて復元してキャッシュしておくことにより、処理の迅速化を図っている。
【０１２２】
図２８のフレーム復元処理では、ステップＳ４０６１において、インデックスファイル４（図１０）を参照し、対象フレームを得るためのＰＥＳパケットのアクセス位置を取得する。ステップＳ４０６２において、ＰＥＳパケットを取得し、当該ＰＥＳ形式パケットに基づいてＧＯＰを復元する。
【０１２３】
上記では、動画データファイルが図７のような構造である場合（ＰＥＳ、ＰＳ）について説明した。次に、動画データファイルが図１１のような構造である場合（ＴＳ）について説明する。基本的な処理の流れは図１６と同じである。
【０１２４】
ただし、予測処理、ストリームキャッシュ処理、フレーム復元処理が、それぞれ、図２９、図３０、図３１に示すように若干異なっている。図１７、図１８、図１９と同じ処理の部分には同一の符号を付している。
【０１２５】
図２９の予測処理では、ステップＳ２０４５において、必要複数フレームが含まれるＴＳパケットのアクセス位置をインデックスファイル（図１４参照）から取得する。
【０１２６】
図３０のストリームキャッシュ処理では、ステップＳ３０１５において、必要複数ＧＯＰが含まれるＴＳパケットにアクセスし、ステップＳ３０１６において、ＴＳパケットを取得してＰＥＳパケットを復元し、さらにＧＯＰを復元する。このように、ストリームキャッシュ処理に段階で、ＧＯＰをまとめて復元してキャッシュしておくことにより、処理の迅速化を図っている。
【０１２７】
図３１のフレーム復元処理では、ステップＳ４０６５において、インデックスファイル４（図１４）を参照し、対象フレームを得るためのＴＳパケットのアクセス位置を取得する。ステップＳ４０６６において、ＴＳパケットを取得し、当該ＴＳパケットに基づいてＰＥＳパケットを復元し、ＧＯＰを復元する。
【０１２８】
上記実施形態では、同時に再生すべきクリップが１つである場合について説明した。しかし、図３２に示すように、２つのフレームをデコードして、これらフレームに基づいて１つのフレームを作るトランジションの場合においても適用することができる。図３２において、Ｔ1およびＴ2の部分が、トランジションである。
【０１２９】
この場合には、トランジションの対象となる２つのクリップのためにそれぞれ独立したフレームキャッシュ記録部を設ける。たとえば、トランジションＴ1においては、動画データファイルＸのクリップＣｌｉｐ００１のフレームと、動画データファイルＹのクリップＣｌｉｐ００２のフレームの２つを合成しなければならない。ハードディスク２から両フレームを読み出した場合には、動画データファイルＸと動画データファイルＹに対してフレーム毎に、交互にアクセスしなければならなくなる。したがって、処理速度がきわめて遅くなってしまう。
【０１３０】
この実施形態では、メモリ３４にフレームキャッシュ記録部を設けているので、処理速度を向上させることができる。
【０１３１】
なお、このようなトランジションは、図３３に示すように、編集構成データ１２のトランジション情報２１５に記述されているので、ＣＰＵ３０は予測を行うことができる。
【０１３２】
５．その他の実施形態
上記実施形態では、再生装置を例として説明したが、再生機能を有する装置、たとえば動画編集装置、動画送信装置などにも同様に適用することができる。動画編集装置においては、オペレータの操作入力に基づいて、編集構成データファイル６の記述を書き換えることにより編集を行う。
【０１３３】
上記実施形態では、インデックスファイルを用いてアクセスを迅速化している。しかし、インデックスファイルを用いなくとも、この発明を実施することができる。この場合、予測手段８、ストリームキャッシュ処理手段１０は、インデックスファイル４を参照できないので、直接的に動画データファイル６にアクセスして所望のデータを探し出すことになる。また、この場合において、ストリームキャッシュ処理手段１０は、動画データファイル６の該当部分を読み出して非可動式記録部１４に記録する際に、キャッシュインデックスファイルを生成するようにしてもよい。
【０１３４】
上記実施形態では、図６、図１０、図１４に示すように、インデックスファイルにおいて、各ＧＯＰごとに、先頭フレームおよび最終フレームを代表フレームとし、先頭フレーム番号および最終フレーム番号を記録するようにしている。しかし、先頭フレームを代表フレームとし、先頭フレーム番号を記録するようにしてもよい。この場合、最終フレーム番号は記録されないが、ＣＰＵ１３０は、ステップＳ４０２、Ｓ５０３において、時系列に並んだ次のＧＯＰの先頭フレーム番号を取得すれば、当該ＧＯＰに含まれるフレーム番号の範囲を認識することができる。
【０１３５】
上記実施形態では、ＭＰＥＧ形式のデータについて説明したが、双方向予測符号化を用いる他の圧縮形式の動画データについても同様に適用することができる。
【０１３６】
上記実施形態では、グループデータやパケットの代表点として、先頭位置を用いている。しかし、アクセスを容易にできる位置であれば、どの場所を代表点として用いてもよい。たとえば、動画データファイルの後方からアクセする場合には、終了位置を代表点として用いるとよい。
【０１３７】
上記実施形態では、ＣＰＵを用いて各機能を達成しているが、その全部または一部をハードウエアによって構成してもよい。
【図面の簡単な説明】
【０１３８】
【図１】図１は、この発明の一実施形態による動画再生装置の機能ブロック図である。
【図２】動画再生装置のハードウエア構成を示す図である。
【図３】メイン(プロキシ)動画データファイル（ＥＳ）の構成を示す図である。
【図４】インデックスファイル作成処理のフローチャートである。
【図５】インデックスファイル作成処理のフローチャートである。
【図６】インデックスファイルの構成を示す図である。
【図７】動画データファイル（ＰＥＳ）の構成を示す図である。
【図８】インデックスファイル作成処理のフローチャートである。
【図９】インデックスファイル作成処理のフローチャートである。
【図１０】インデックスファイルの構成を示す図である。
【図１１】動画データファイル（ＴＳ）の構成を示す図である。
【図１２】インデックスファイル作成処理のフローチャートである。
【図１３】インデックスファイル作成処理のフローチャートである。
【図１４】動画インデックスファイルの構成を示す図である。
【図１５】インデックスファイル作成処理のフローチャートである。
【図１６】再生処理プログラムのフローチャートである。
【図１７】予測処理のフローチャートである。
【図１８】ストリームキャッシュ処理のフローチャートである。
【図１９】フレーム復元処理のフローチャートである。
【図２０】編集構成データの構造を示す図である。
【図２１】動画データファイルと編集構成データとの関係を示す図である。
【図２２】編集構成データの一部を示す図である。
【図２３】リストを示す図である。
【図２４】インデックスファイルのデータ例である。
【図２５】キャッシュインデックスファイルのデータ例を示す図である。
【図２６】予測処理のフローチャートである。
【図２７】ストリームキャッシュ処理のフローチャートである。
【図２８】フレームの復元処理のフローチャートである。
【図２９】予測処理のフローチャートである。
【図３０】ストリームキャッシュ処理のフローチャートである。
【図３１】フレーム復元処理のフローチャートである。
【図３２】トランジションを説明するための図である。
【図３３】編集構成データのトランジション情報の詳細を示す図である。
【符号の説明】
【０１３９】
２・・・可動式記録部
４・・・インデックスファイル
６・・・動画データファイル
８・・・予測手段
１０・・・ストリームキャッシュ処理手段
１２・・・非可動式記録部
１６・・・グループデータ
１８・・・個別フレーム順番情報
２０・・・個別アクセス位置
２２・・・特定手段
２４・・・フレーム復元手段
２６・・・表示部
【図１】
2006325086.tif 000003
【図２】
2006325086.tif 000004
【図３】
2006325086.tif 000005
【図４】
2006325086.tif 000006
【図５】
2006325086.tif 000007
【図６】
2006325086.tif 000008
【図７】
2006325086.tif 000009
【図８】
2006325086.tif 000010
【図９】
2006325086.tif 000011
【図１０】
2006325086.tif 000012
【図１１】
2006325086.tif 000013
【図１２】
2006325086.tif 000014
【図１３】
2006325086.tif 000015
【図１４】
2006325086.tif 000016
【図１５】
2006325086.tif 000017
【図１６】
2006325086.tif 000018
【図１７】
2006325086.tif 000019
【図１８】
2006325086.tif 000020
【図１９】
2006325086.tif 000021
【図２０】
2006325086.tif 000022
【図２１】
2006325086.tif 000023
【図２２】
2006325086.tif 000024
【図２３】
2006325086.tif 000025
【図２４】
2006325086.tif 000026
【図２５】
2006325086.tif 000027
【図２６】
2006325086.tif 000028
【図２７】
2006325086.tif 000029
【図２８】
2006325086.tif 000030
【図２９】
2006325086.tif 000031
【図３０】
2006325086.tif 000032
【図３１】
2006325086.tif 000033
【図３２】
2006325086.tif 000034
【図３３】
2006325086.tif 000035