(57)【特許請求の範囲】
【請求項１】
入力されたトランスポートストリームに含まれるデータを処理するデータ処理装置において、
入力された前記トランスポートストリームを、所定のタイムユニット毎に区分する区分手段と、
前記トランスポートストリームから所定のトランスポートパケットを取り出す取り出し手段と、
前記所定のトランスポートパケットから抽出したPCRに基づいてクロックを生成するクロック生成手段と、
前記クロックのカウント値に対応したタイムスタンプを生成するタイムスタンプ生成手段と、
前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づいて、前記タイムユニットのアドレスを生成し、
前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成する
タイムユニットマップ生成手段と
を備えるデータ処理装置。
【請求項２】
前記タイムユニットマップ生成手段は、
前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号を、前記タイムユニットのアドレスとし、
前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成する
請求項１に記載のデータ処理装置。
【請求項３】
前記タイムユニットマップ生成手段は、
前記タイムユニットのアドレスと、時間的に前記タイムユニットの次に続く他のタイムユニットのアドレスとに基づいて、前記タイムユニットのデータ長も生成し、
前記タイムユニットのアドレスに対応付けて前記データ長も保持する前記タイムユニットマップを生成する
請求項１に記載のデータ処理装置。
【請求項４】
前記トランスポートストリームと、前記タイムユニットマップとをそれぞれ別ファイルとしてファイル化するファイル化手段を
さらに備える請求項１に記載のデータ処理装置。
【請求項５】
前記ファイル化手段によりファイル化されたデータをそれぞれ情報記録媒体に記録する記録手段を
さらに備える請求項４に記載のデータ処理装置。
【請求項６】
前記タイムユニットマップ作成手段は、前記トランスポートストリームが編集されたとき、前記タイムユニットマップを変更する
請求項１に記載のデータ処理装置。
【請求項７】
入力されたトランスポートストリームに含まれるデータを処理するデータ処理装置のデータ処理方法において、
入力された前記トランスポートストリームを、所定のタイムユニット毎に区分する区分ステップと、
前記トランスポートストリームから所定のトランスポートパケットを取り出す取り出しステップと、
前記所定のトランスポートパケットから抽出したPCRに基づいてクロックを生成するクロック生成ステップと、
前記クロックのカウント値に対応したタイムスタンプを生成するタイムスタンプ生成ステップと、
前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づいて、前記タイムユニットのアドレスを生成し、
前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成する
タイムユニットマップ生成ステップと
を含むデータ処理方法。
【請求項８】
入力されたトランスポートストリームに含まれるデータを処理するプログラムであって、
入力された前記トランスポートストリームを、所定のタイムユニット毎に区分する区分ステップと、
前記トランスポートストリームから所定のトランスポートパケットを取り出す取り出しステップと、
前記所定のトランスポートパケットから抽出したPCRに基づいてクロックを生成するクロック生成ステップと、
前記クロックのカウント値に対応したタイムスタンプを生成するタイムスタンプ生成ステップと、
前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づいて、前記タイムユニットのアドレスを生成し、
前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成する
タイムユニットマップ生成ステップと
を含む処理を、コンピュータに実行させるためのコンピュータ読み取り可能なプログラムが記録されている記録媒体。
【請求項９】
情報記録媒体に記録されている、トランスポートストリームファイルと、タイムユニットマップとをそれぞれ読み出す読み出し手段と、
前記読み出し手段により読み出された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記トランスポートストリームを、任意の位置から再生する再生手段と
を備え、
前記タイムユニットマップは、前記トランスポートストリームを区分して得られるタイムユニットに含まれるトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づき生成された前記タイムユニットのアドレスを保持するものである
データ再生装置。
【請求項１０】
情報記録媒体に記録されている、トランスポートストリームファイルと、タイムユニットマップとをそれぞれ読み出す読み出しステップと、
前記読み出しステップの処理により読み出された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記トランスポートストリームを、任意の位置から再生する再生ステップと
を含み、
前記タイムユニットマップは、前記トランスポートストリームを区分して得られるタイムユニットに含まれるトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づき生成された前記タイムユニットのアドレスを保持するものである
データ再生方法。
【請求項１１】
情報記録媒体に記録されている、トランスポートストリームファイルと、タイムユニットマップとをそれぞれ読み出す読み出しステップと、
前記読み出しステップの処理により読み出された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記トランスポートストリームを、任意の位置から再生する再生ステップと
を含み、
前記タイムユニットマップは、前記トランスポートストリームを区分して得られるタイムユニットに含まれるトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づき生成された前記タイムユニットのアドレスを保持するものである
処理を、コンピュータに実行させるためのコンピュータ読み取り可能なプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置および方法、並びに記録媒体に関し、特に符号化ストリームから特徴点情報を抽出することにより、複数のプログラムが多重化されている場合においても、迅速にランダムアクセスができるようにしたデータ処理装置および方法、並びに記録媒体に関する。
【背景技術】
【０００２】
ヨーロッパのDVB(Digital Video Broadcast)や日本のディジタルBS放送などの多チャネルディジタルテレビジョン放送では、MPEG(Moving Picture Experts Group)２トランスポートストリームが使われる。トランスポートストリームは、トランスポートパケットが連続したストリームであり、トランスポートパケットは、例えば、MPEG２ビデオストリームやMPEG１オーディオストリームがパケット化されたものである。放送の電波で伝送される１本のトランスポートストリームには、１つまたは複数のAV(Audio Visual)プログラムが多重化されている。一般に、各チャネルのAVプログラムは、お互いに独立している。
【０００３】
したがって、放送で送られるトランスポートストリームを家庭の受信機でそのまま受信し、記録すれば、そのトランスポートストリームのすべてのチャネルのプログラムを同時に記録することができる。また、放送で送られるトランスポートストリームの中からユーザによって選択された幾つかのチャネルのAVプログラムのトランスポートストリームを分離したものを記録すれば、選択された任意の数のチャネルのプログラムを同時に記録することができる。
【０００４】
図１に従来のトランスポートストリームの記録方法の例を示す。図１(A)は、複数のAVプログラムが多重化されたトランスポートストリームを示す。ここで横軸は、時間であり、Δtの間隔のタイムユニットTUi(ｉ＝０, １, ２ ・・・）毎に区切られている。入力トランスポートストリームの中から１つまたは複数のAVプログラムが選択される。選択されたトランスポートパケットは斜線を施して示されている。選択されたトランスポートパケットは、一般に、図１(B)に示すように、不規則なタイミングで現れ、タイムユニットTUi毎のトランスポートパケットの数は変化する。
【０００５】
Δtの間隔のタイムユニットTUi毎の選択されたトランスポートパケットは、図２に示すように、間隔を詰めて記録媒体に記録される。この時、各トランスポートパケットは、それぞれのストリーム上の時刻を示すタイムスタンプを付加して記録される。このタイムスタンプは、例えば、DV(Digital Video)フォーマット（Specification  Of  Consumer-Use  Digital  VCRs  using  ６．３mm  magnetic  tape（HD  digital  VCR  conference），PART７DVB  Specifications  of  Consumer-Use  Digital  VCR）で規定されているところのトランスポートパケットに付加される４バイト長のTSP_extra_headerと同様のものである。
【０００６】
図２において、横軸は記録されたトランスポートストリームのバイト位置を示すアドレスである。図１(B)に示すような可変ビットレートのトランスポートストリームが入力されると、記録装置は、図２に示すように、ダミーデータを入れて、固定の記録レートでデータを記録する。したがって、記録されたトランスポートストリームの時間の経過に対するデータ量は比例する。すなわち、タイムユニットあたりの記録データ量をxとすると、n番目（ｎ＝０, １, ２,・・・）のタイムユニットの先頭データのバイト位置は、n倍のxとなる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、従来の記録方法は、ダミーデータを挿入して一定の記録レートにしているため、トランスポートストリームの記録効率が良くない。しかしながら、ダミーデータを挿入しないと、記録されたトランスポートストリームの時間の経過とファイルのデータ量が比例しなくなるので、トランスポートストリームの時間軸上の所定の位置のデータにアクセスする場合、データのアクセス性が悪くなる問題が発生する。
【０００８】
また、一般に、MPEG２ビデオのストリームでは、０.５秒くらいの間隔でIピクチャが符号化され、それ以外のピクチャはPピクチャまたはBピクチャとして符号化される。したがって、MPEG２ビデオのストリームが記録された記録媒体から、ビデオ信号を高速再生する場合は、Iピクチャをサーチしなければならない。ところが、ディジタル放送等のトランスポートストリームが記録された記録媒体から、ランダムアクセスにより再生を行う場合、Iピクチャの開始バイトを効率よくサーチすることが難しかった。すなわち、記録媒体上のトランスポートストリームのランダムなバイト位置から読み出したビデオストリームのシンタックスを解析し、Iピクチャやオーディオフレームの開始バイトがサーチされていた。そのため、場合によっては、Iピクチャのサーチに時間がかかってしまい、ユーザ入力に対して応答の速いランダムアクセス再生をすることが困難であった。
【０００９】
本発明は、このような状況に鑑みてなされたものであり、複数のプログラムが多重化されている場合においても、迅速に、ランダムアクセスができるようにするものである。
【課題を解決するための手段】
【００１０】
本発明の第１の側面のデータ処理装置は、入力された前記トランスポートストリームを、所定のタイムユニット毎に区分する区分手段と、前記トランスポートストリームから所定のトランスポートパケットを取り出す取り出し手段と、前記所定のトランスポートパケットから抽出したPCRに基づいてクロックを生成するクロック生成手段と、前記クロックのカウント値に対応したタイムスタンプを生成するタイムスタンプ生成手段と、前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づいて、前記タイムユニットのアドレスを生成し、前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成するタイムユニットマップ生成手段とを備える。
【００１１】
前記タイムユニットマップ生成手段は、前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号を、前記タイムユニットのアドレスとし、前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成するようにすることができる。
【００１２】
前記タイムユニットマップ生成手段は、前記タイムユニットのアドレスと、時間的に前記タイムユニットの次に続く他のタイムユニットのアドレスとに基づいて、前記タイムユニットのデータ長も生成し、前記タイムユニットのアドレスに対応付けて前記データ長も保持する前記タイムユニットマップを生成するようにすることができる。
【００１３】
前記トランスポートストリームと、前記タイムユニットマップとをそれぞれ別ファイルとしてファイル化するファイル化手段をさらに備えるようにすることができる。
【００１４】
前記ファイル化手段によりファイル化されたデータをそれぞれ情報記録媒体に記録する記録手段をさらに備えるようにすることができる。
【００１５】
前記タイムユニットマップ作成手段は、前記トランスポートストリームが編集されたとき、前記タイムユニットマップを変更するようにすることができる。
【００１６】
本発明の第１の側面のデータ処理方法は、入力された前記トランスポートストリームを、所定のタイムユニット毎に区分する区分ステップと、前記トランスポートストリームから所定のトランスポートパケットを取り出す取り出しステップと、前記所定のトランスポートパケットから抽出したPCRに基づいてクロックを生成するクロック生成ステップと、前記クロックのカウント値に対応したタイムスタンプを生成するタイムスタンプ生成ステップと、前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づいて、前記タイムユニットのアドレスを生成し、前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成するタイムユニットマップ生成ステップとを含む。
【００１７】
本発明の第１の側面の第１の記録媒体に記録されているプログラムは、入力された前記トランスポートストリームを、所定のタイムユニット毎に区分する区分ステップと、前記トランスポートストリームから所定のトランスポートパケットを取り出す取り出しステップと、前記所定のトランスポートパケットから抽出したPCRに基づいてクロックを生成するクロック生成ステップと、前記クロックのカウント値に対応したタイムスタンプを生成するタイムスタンプ生成ステップと、前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づいて、前記タイムユニットのアドレスを生成し、前記タイムユニット毎に生成した前記アドレスを保持するタイムユニットマップを生成するタイムユニットマップ生成ステップとを含む処理を、コンピュータに実行させる。
【００１８】
本発明の第２の側面のデータ再生装置は、情報記録媒体に記録されている、トランスポートストリームファイルと、タイムユニットマップとをそれぞれ読み出す読み出し手段と、前記読み出し手段により読み出された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記トランスポートストリームを、任意の位置から再生する再生手段とを備え、前記タイムユニットマップは、前記トランスポートストリームを区分して得られるタイムユニットに含まれるトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づき生成された前記タイムユニットのアドレスを保持するものである。
【００１９】
本発明の第２の側面のデータ再生方法は、情報記録媒体に記録されている、トランスポートストリームファイルと、タイムユニットマップとをそれぞれ読み出す読み出しステップと、前記読み出しステップの処理により読み出された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記トランスポートストリームを、任意の位置から再生する再生ステップとを含み、前記タイムユニットマップは、前記トランスポートストリームを区分して得られるタイムユニットに含まれるトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づき生成された前記タイムユニットのアドレスを保持するものである。
【００２０】
本発明の第２の側面の第２の記録媒体に記録されているプログラムは、情報記録媒体に記録されている、トランスポートストリームファイルと、タイムユニットマップとをそれぞれ読み出す読み出しステップと、前記読み出しステップの処理により読み出された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記トランスポートストリームを、任意の位置から再生する再生ステップとを含み、前記タイムユニットマップは、前記トランスポートストリームを区分して得られるタイムユニットに含まれるトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づき生成された前記タイムユニットのアドレスを保持するものである処理を、コンピュータに実行させる。
【００２１】
本発明の第１の側面のデータ処理装置、データ処理方法、および第１の記録媒体に記録されているプログラムによれば、入力された前記トランスポートストリームが、所定のタイムユニット毎に区分され、前記トランスポートストリームから所定のトランスポートパケットが取り出され、前記所定のトランスポートパケットから抽出したPCRに基づいてクロックが生成され、前記クロックのカウント値に対応したタイムスタンプが生成され、前記タイムユニットに含まれる前記所定のトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づいて、前記タイムユニットのアドレスが生成され、前記タイムユニット毎に生成された前記アドレスを保持するタイムユニットマップが生成される。
【００２２】
本発明の第２の側面のデータ再生装置、データ再生方法、および第２の記録媒体に記録されているプログラムによれば、情報記録媒体に記録されている、トランスポートストリームファイルと、タイムユニットマップとがそれぞれ読み出され、読み出された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記トランスポートストリームが、任意の位置から再生され、前記タイムユニットマップには、前記トランスポートストリームを区分して得られるタイムユニットに含まれるトランスポートパケットのうち、最も過去の時刻を示すタイムスタンプが付加されたトランスポートパケットのパケット番号に基づき生成された前記タイムユニットのアドレスが保持される。
【発明の効果】
【００２３】
以上の如く、本発明の第１の側面のデータ処理装置、データ処理方法、および第１の記録媒体に記録されているプログラムによれば、応答の速いランダムアクセスが可能となる。
【００２４】
本発明の第２の側面のデータ再生装置、データ再生方法、および第２の記録媒体に記録されているプログラムによれば、迅速なランダム生成が可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、符号化ストリームが１つまたは複数のプログラムが多重化されている多重化ストリームである場合を例として本発明を説明するが、本発明は、符号化ストリームがMPEGビデオストリーム等のエレメンタリーストリームであっても適用できるものである。
【００２６】
最初に、本発明の基本的な原理について説明する。本発明の動画像記録装置は、１つまたは複数のプログラムが多重化されているトランスポートストリームをディスク、テープなどの記録媒体に記録する時に、ストリーム上の時間を所定のタイムユニット（単位時間）毎に区切り、タイムユニット毎のデータのストリーム上のアドレスを計算する。そして、このタイムユニット毎のデータのストリーム上のアドレスを示すタイムユニットマップが作成される。さらに、記録するトランスポートストリームのプログラム毎のエントリーポイント（ランダムアクセスポイント）の場所を示すエントリーポイントマップが作成される。エントリーポイントマップは、タイムユニットマップに従属する構造を有する。このタイムユニットマップについて、以下に説明する。
【００２７】
図３は、複数のAVプログラムが多重化されたトランスポートストリームを示す。ここで横軸は、時間を示し、Δtの間隔のタイムユニットTUi(ｉ＝０, １, ２・・・）毎に区切られている。文字TUの後ろに続く数字ｉは、タイムユニットTUの時間順序を示す。最初のオリジナル記録の時は、すべてのタイムユニットTUの時間長は同じ値Δtである。値Δtの大きさは、例えば０.５秒とされる。入力トランスポートストリームの中から１つまたは複数のAVプログラムが記録のために選択される。選択されたトランスポートパケットは斜線を付して示されている。選択されたトランスポートパケットは、一般に図３(B)に示すように、不規則なタイミングで現れ、Δtの間隔のタイムユニットTUi毎のトランスポートパケットの数は変化する。なお、現実のトランスポートストリームにおいて、タイムユニットの時間長を約０.５秒と考える場合、タイムユニットに含まれるトランスポートパケットの数は、図３に示す例よりも、ずっと多いが、ここでは簡単化して図示している。
【００２８】
選択されたトランスポートパケットは、図４に示すように、間隔を詰めて記録媒体に記録される。この時、各トランスポートパケットには、それぞれのストリーム上の時刻を示すタイムスタンプ(Arrival Time Stamp)が付加される。Arrival Time Stampは、例えば、DVフォーマットで規定されているところのトランスポートパケットに付加される４バイト長のTSP_extra_headerと同様のものとされる。本明細書では、Arrival_Time_Stampを含む４バイト長のヘッダの付加されたトランスポートパケットをソースパケットと呼ぶ。トランスポートパケットは、１８８バイト長であるので、ソースパケットは、１９２バイト長となる。
【００２９】
ソースパケットのシンタックスは、図５に示すように、TP_extra_header()とtransport_packet()で構成される。TP_extra_header()は、図６に示すように構成され、copy_permission_indicatorと、arrival_time_stampで構成される。
【００３０】
図４において、横軸は記録されたトランスポートストリームのバイト位置を示すアドレスである。また、横軸上にタイムユニット毎に最初に入力されたトランスポートパケットの先頭アドレスを示す。この例では、タイムユニットTU０, TU１, TU２では、それぞれ４個、３個、または６個のトランスポートパケットが記録されている。２つのタイムユニットにまたがって入力されるトランスポートパケットは、前側のタイムユニットに含められる。タイムユニットTU０, TU１, TU２の最初に入力されたトランスポートパケットの先頭アドレス、または、それらトランスポートパケットを含むソースパケットの先頭アドレスを、それぞれA(TU０), A(TU１), A(TU２)と表わすものとする。
【００３１】
図７は、タイムユニットマップ、すなわち記録されたトランスポートストリームのタイムユニット毎のデータの先頭アドレスのテーブルの例を示す。ここで、time_unit_addressは、記録されたストリーム上のタイムユニットの先頭データのアドレスを示す。タイムユニットマップでは、タイムユニット毎のデータ長delta_time_unit_addressがテーブル化される。
【００３２】
この例においては、タイムユニットTU０のデータ長は、タイムユニットTU１の先頭のアドレスA(TU１)と、タイムユニットTU０の先頭のアドレスA(TU０)の差(A(TU１)-A(TU０１))で表わされる。同様に、タイムユニットTU１のデータ長は、タイムユニットTU２の先頭のアドレスA(TU２)と、タイムユニットTU１の先頭のアドレスA(TU１)の差(A(TU２)-A(TU１))で表わされ、タイムユニットTU２のデータ長は、タイムユニットTU２の最後のアドレスend_addressと、タイムユニットTU２の先頭のアドレスA(TU２)の差(end_address-A(TU２))で表わされる。
【００３３】
次に、上述のエントリーポイントマップについて説明する。図８に示すトランスポートストリームは、図４に示したトランスポートストリームと同様のトランスポートストリームである。ここで斜線で示すトランスポートパケットにおいて、エントリーポイントが開始しているものとする。具体的には、エントリーポイントにおいて、MPEGビデオのシーケンスヘッダとIピクチャデータが開始しているものとする。所定のタイムユニットの中にエントリーポイントが存在する場合、そのタイムユニットのデータの先頭アドレスからエントリーポイントのアドレスまでのオフセットアドレスが計算される。すなわち、図８の例では、タイムユニットTU０とTU２にエントリーポイント(Iピクチャ）が存在する。そこで、タイムユニットTU０においては、その先頭のアドレスA(TU０)から、Iピクチャの先頭のアドレスI_start_addressまでの間隔ａが、オフセットアドレスとして計算される。同時に、タイムユニットTU２においては、その先頭のアドレスA(TU２)から、Iピクチャの先頭のアドレスI_start_addressまでの間隔ｂがオフセットアドレスとして計算される。
【００３４】
図９は、エントリーポイントマップ、すなわちタイムユニット毎のエントリーポイントまでのオフセットアドレスのテーブルの例を示す。entry_point_flagは、対応するタイムユニットTUiにエントリーポイントが存在する時、「１」とされ、存在しない時、「０」とされる。entry_point_flagが「１」であるタイムユニットについて、そのタイムユニットのデータの先頭アドレスtime_unit_addressから、エントリーポイントのアドレスI_start_addressまでのオフセットアドレスI_start_offset_from_time_unit_addressは、次式に示すように計算される。
【００３５】
I_start_offset_from_time_unit_address
= I_start_address  -  time_unit_address
【００３６】
また、エントリーポイント毎に、エントリーポイントのIピクチャデータの終了アドレスI_end_address、エントリーポイントのIピクチャの次のPまたはIピクチャの終了アドレスP１_end_address、エントリーポイントのIピクチャの次の次のPまたはIピクチャの終了アドレスP２_end_addressが、次式に示すように計算される。
【００３７】
I_end_offset_address  = I_end_address - I_start_address
P１_end_offset_address= P１_end_address - I_start_address
P２_end_offset_address= P２_end_address - I_start_address
【００３８】
これらのアドレスの具体例を図１０に示す。図１０は、所定のタイムユニットの先頭からはじまるMPEGビデオデータを示す。ここで、I,P,BはそれぞれIピクチャ、Pピクチャ、またはBピクチャを表し、また添え字の数字は、ピクチャの表示順序を示す。このタイムユニットには、I２で示すエントリーポイントのIピクチャが存在する。また、IピクチャI２の次のPピクチャはP５であり、IピクチャI２の次の次のPピクチャは、P８である。この時、上記式で演算されたI_start_offset_from_time_unit_address, I_end_offset_address, P１_end_offset_address,P２_end_offset_addressは、図に示す関係になる。
【００３９】
すなわち、I_end_offset_addressは、IピクチャI２の終了アドレスI_end_addressから、IピクチャI２の開始アドレスI_start_addressを減算した値とされている。P１_end_offset_addressは、PピクチャP５の終了アドレスP１_end_addressから、IピクチャI２の開始アドレスI_start_addressを減算した値とされている。さらにP２_end_offset_addressは、PピクチャP８の終了アドレスP２_end_addressから、IピクチャI２の開始アドレスI_start_addressを減算した値とされている。
【００４０】
I_start_offset_from_time_unit_addressは、エントリーポイントのアドレスI_start_addressから、タイムユニットのデータの先頭のアドレスtime_unit_addressを減算した値とされている。
【００４１】
なお、記録するトランスポートストリームの中に複数のプログラムが含まれる場合、エントリーポイントの情報は、プログラム毎に区別して作成される。また、すべてのプログラムについて、エントリーポイントデータを用意できない場合を考慮して、エントリーポイントマップは、プログラム毎にエントリーポイントデータが存在するかどうかを示す情報(parsed_program_flag）を有する。
【００４２】
記録媒体に記録したトランスポートストリームを編集した場合、そのタイムユニットマップは変更（更新）される。次に、その方法を説明する。図１１(A)は、図４に示すトランスポートストリームの先頭の２パケットと終わりの３パケットを消去する場合の例を示す。図１１(B)は、このようにしてパケットが部分消去された後のトランスポートストリームを示す。図１２は、図１１(B)のトランスポートストリームのタイムユニットマップを示す。このようにタイムユニットの途中までのデータが消去された場合、最初のタイムユニットTU０の時間長(first_time_unit_size)が変化するので、これが書き換えられる。図１１(B)の場合は、タイムユニットTU０の時間長が、タイムユニットTU１の先頭のパケットPbのタイムスタンプと、消去後のタイムユニットTU０の先頭のパケットPaのタイムスタンプの差分値に変更される。また、図１２に示すように、タイムユニットTU０のdelta_time_unit_addressが、タイムユニットTU１の先頭のパケットPbのアドレスA(TU１)と、消去後のタイムユニットTU０の先頭のパケットPaのアドレスCの差分値 (A(TU１)−C)に更新される。タイムユニットマップが変更された場合は、それに関係するエントリーポイントマップも変更される。
【００４３】
次に上述のタイムユニットマップのシンタックスの例を図１３と図１４に示す。図１３と図１４は、それぞれタイムユニットマップのヘッダ部(TimeUnitMapHeader()) とデータ部(TimeUnitMapData()) を表す。タイムユニットマップをファイルとして記録する時は、ヘッダ部とデータ部を１つのファイルにして記録しても良いし、別々のファイルとして記録しても良い。TimeUnitMapHeader()のstart_time, end_time は、それぞれ、このタイムユニットマップの開始時刻と終了時刻を示し、例えば、あるトランスポートストリームを記録する時の記録開始時刻と記録終了時刻を示す。first_time_unit_sizeは、最初のタイムユニットの時間長を示す。time_unit_size は、第２番目以降のタイムユニットの時間長を示す。number_of_time_unit_entriesは、トランスポートストリームの中のタイムユニットの数を示す。TimeUnitMapData()には、number_of_time_unit_entriesで示される数のdelta_time_unit_address(図７)が書かれる。
【００４４】
また、上述のエントリーポイントマップのシンタックスの第１の例を、図１５乃至図１７に示す。図１５は、エントリーポイントマップのヘッダ部(EntryPointMapHeader()) を表し、図１６はエントリーポイントマップのデータ部(EntryPointMapData())を表す。図１７は、さらに図１６のentry_point_data()のシンタックスを表わしている。エントリーポイントマップをファイルとして記録する時は、ヘッダ部とデータ部を１つのファイルにして記録しても良いし、別々のファイルとして記録しても良い。
【００４５】
図１５のEntryPointMapHeader()のnumber_of_programsは、トランスポートストリームの中のプログラム数を示す。このシンタックスの第３行目から第６行目には、記録する各プログラムについて、エントリーマップテーブルが存在するかどうかを示す情報がある。第４行目のprogram_numberは、プログラムを特定（識別）する情報であり、対応するプログラムのPMT(Program Map Table)に書かれている情報である。第５行目のparsed_program_flagは、そのプログラムのエントリーポイントデータが存在するかどうかを示す。
【００４６】
第８行目から第１０行目には、記録する各プログラムのPMTの情報が続く。MPEG２_TS_ｐrogram_map_section()は、記録するトランスポートストリームの中から抽出した、MPEG２ systems規格で規定されているPMTである。ここで、NUMBER_OF_ParsedProgramsは、parsed_program_flagが「１」であるプログラムの数である。第８行目のNUMBER_OF_ParsedProgramsのループの中でデータが現れる順番は、第３行目のnumber_of_programsのループでparsed_program_flag が「１」であるprogram_numberが現れる順番である。
【００４７】
図１６のEntryPointMapData()には、記録する各プログラムについてのエントリーポイントのデータが記述される。１つのタイムユニットについてのエントリーポイントのパラメータは、entry_point_flagとentry_point_data()である。１つのタイムユニットについてのentry_point_data()の内容は、図１７に示すように、entry_point_time_stamp, I_start_offset_from_time_unit_address, I_end_offset_address, P１_end_offset_address,  P２_end_offset_addressである。ここで、entry_point_time_stampは、エントリーポイントのトランスポートパケットのストリーム上の時刻、または、エントリーポイントのIピクチャのPTS（Presentation Time Stamp）に基づいて計算される。PTSは、MPEG２システムズ規格のPES パケットのヘッダに付加されている情報である。
【００４８】
また、上述のエントリーポイントマップのシンタックスの第２の例を、図１８に示す。EntryPointMapHeader()とentry_point_data()の構成は、上述の第１の例における図１５または図１７に示す場合と同様である。この図１８と図１６を比較して明らかなように、各プログラムについてのエントリーポイントのデータの並び方が、図１６の第１の例とは異なる。
【００４９】
次に、以下に示す状態の第１の例と第２の例のそれぞれの場合のエントリーマップのデータの並びの例を示す。ここでは、図１９に示すように、トランスポートストリームの中に３個のプログラム(program#１, program#２, program#３)が多重化されていて、タイムユニットTUi(ｉ＝０, １, ２, ３）毎に、各プログラムのエントリーポイントがあるものとする。この場合、各パラメータは次のようになる。
【００５０】
number_of_time_unit_entries ＝４
number_of_programs＝３
program_number＝１：parsed_program_flag＝１
program_number＝２：parsed_program_flag＝１
program_number＝３：parsed_program_flag＝１
NUMBER_OF_ParsedPrograms＝３
【００５１】
図２０は、第１の例（図１６の例）の場合のエントリーポイントマップを示す。この場合、プログラム毎にエントリーポイントデータのリストが別れた形になる。すなわち、program#１のEntryPointMapDataは、図２０(A)に示すように、タイムユニットTU０乃至TU３のそれぞれに、entry_point_dataとして、entry_point_data#１-１乃至entry_point_data#１-４が存在するため、entry_point_flagはそれぞれ「１」とされる。
【００５２】
なお、entry_point_data#A-Bは、program_number＝AのB番目のエントリーポイントについてのentry_point_data()を表わす。
【００５３】
program#２のEntryPointMapDataは、図２０(B)に示すように、タイムユニットTU１, TU３には、entry_point_dataが存在しないため、そのentry_point_flagは「０」とされる。これに対して、タイムユニットTU０, TU２においては、それぞれentry_point_data#２-１，entry_point_data#２-２が存在するため、そのentry_point_flagは「１」とされる。
【００５４】
さらに、program#３のEntryPointMapDataのタイムユニットTU０, TU２には、entry_point_dataが存在しないため、entry_point_flagは「０」とされる。タイムユニットTU１, TU３には、entry_point_data#３-１，entry_point_data#３-２がそれぞれ存在するため、そのentry_point_flagは「１」とされている。
【００５５】
これらのentry_point_flagと、entry_point_dataが、EntryPointMapDataに記述される。
【００５６】
また、図２１は、第２の例（図１８の例）の場合のエントリーポイントマップを示す。
【００５７】
この場合、タイムユニット毎に各プログラムのエントリーポイントデータが時間順に並ぶ形になり、エントリーポイントデータのリストは１つの形となる。すなわち、タイムユニットTU０において、３つのプログラムprogram#１乃至#３が記述され、それぞれについて、entry_point_flagと対応するentry_point_dataが記述される。この例では、program#３には、entry_point_dataが存在しないため、そのentry_point_flagは「０」とされ、program#１, #２については、entry_point_data#１-１, #２-１が存在するため、そのentry_point_flagは「１」とされている。
【００５８】
その他のタイムユニットTU１乃至TU３においても、program#１乃至#３それぞれについて、entry_point_flagと、entry_point_dataが記述される。
【００５９】
次に、図２２を用いて、タイムユニットマップの別の例を説明する。図２２(A), (B)は、前述の図３(A), (B)と同様の構成を示す。また、図２２(C)は、図４と同様に、記録媒体上に記録されたソースパケットデータを示す。トランスポートパケットとソースパケットの関係は、図４に示すとおりである。図２２(C)では、横軸は記録されたソースパケットの番号を示す。ソースパケット番号は、ソースパケットの記録された順番であり、ゼロから開始して、順番に１づつインクリメントする。タイムユニット毎のデータの先頭アドレスA(TU０), A(TU１),A(TU２)は、ソースパケット番号単位でカウントして、それそれ０，４，７となる。
【００６０】
図２２（Ｄ）は、タイムユニットマップ、すなわち記録されたトランスポートストリームのタイムユニット毎のデータの先頭アドレスのテーブルの例を示す。ここで、RSPN（Relative  Source  Packet  Number）time_unit_startは、記録されたストリーム上のタイムユニットの先頭データのアドレスを示す。タイムユニットマップでは、記録されたトランスポートストリームの先頭からのタイムユニットの順にRSPN_time_unit_startがテーブル化され、図２２(D)の場合、A(TU０), A(TU１), A(TU２)の順に値が並ぶ。
【００６１】
次に上述のタイムユニットマップのシンタックスの例を図２３と図２４に示す。図２３と図２４は、それぞれタイムユニットマップのヘッダ部(TimeUnitMapHeader()) とデータ部(TimeUnitMapData()) を表す。タイムユニットマップをファイルとして記録する時は、ヘッダ部とデータ部を１つのファイルにして記録しても良いし、別々のファイルとして記録しても良い。
【００６２】
図２３のTimeUnitMapHeader()の offset_SPN は、記録されたトランスポートストリームの一番目のソースパケットの番号を示す。本実施の形態では、RSPN_time_unit_startは、offset_SPNに対する相対的なソースパケット番号で表す。タイムユニットマップをはじめて作成する時の、offset_SPNの初期値は、ゼロである。次のoffset  timeは、このタイムユニットマップの開始時刻を示すものであり、一番目のタイムユニットの開始時刻を示す。
【００６３】
time_unit_sizeは、このタイムユニットマップのタイムユニットの時間長を示す。
【００６４】
number_of_time_unit_entriesは、記録されたトランスポートストリームの中のタイムユニットの数を示す。
【００６５】
図２４のTimeUnitMapData()には、number_of_time_unit_entriesで示される数のRSPN_time_unit_start (図２２（Ｄ）)が書かれる。
【００６６】
次に、記録されたトランスポートストリームを編集した場合の上述のタイムユニットマップの変更（更新）の方法を説明する。図２５（Ａ）は、図２２（Ｃ）に示すトランスポートストリームの先頭の２パケット、すなわち先頭からＣで示すアドレスのソースパケットまでを消去する場合の例を示す。図２５(B)は、このようにしてパケットが部分消去された後のトランスポートストリームを示す。
【００６７】
図２６は、図２５（Ａ）と(B)の場合のトランスポートストリームのタイムユニットマップを示す。このようにタイムユニットの先頭部分のデータが消去された場合、消去された部分のデータを含むタイムユニットを参照するRSPN_time_unit_startのデータが消去される。図２６（Ｂ）の場合は、TU０のRSPN_time_unit_startのデータが消去される。これに伴って、number_of_time_unit_entriesが、消去したRSPN_time_unit_startのデータの数だけデクリメントされる。
【００６８】
また、上述のoffset_SPNとoffset_timeが変更される。図２６（Ａ）の場合は、offset_SPNは、ゼロであり、また、offset_timeは、TU０のタイムユニットの開始時刻のゼロがセットされている。図２６（Ｂ）の場合は、offset_SPNが、新しく先頭になったソースパケットの元々のソースパケットの番号のＣ（＝２）に変更される。また、offset_timeが新しく先頭になったタイムユニット，すなわち、この例ではTU１の元々の開始時刻のΔTに変更される。なお、編集前後で、time_unit_sizeは、変更されない。
【００６９】
タイムユニットマップが変更された場合は、それに関係するエントリーポイントマップも変更される。
【００７０】
次に、入力されたトランスポートストリームから、上述のテーブルを作成してトランスポートストリームとともに、記録媒体に記録する動画像記録装置１の構成例を図２７に示す。
【００７１】
端子１０から入力されるトランスポートストリームには、１つまたは複数のAVプログラムが多重化されている。端子２２には、ユーザインタフェースによって選択されたAVプログラムのチャネル（サービス名）が入力される。ここで選択されるチャネル数は、１つでも複数でも良い。
【００７２】
PIDフィルタ１１は、入力されたトランスポートストリームの中から、ストリーム解析部１２により指定されたPID(Packet ID)のトランスポートパケットを取り出す。PIDは、トランスポートパケットのヘッダの固定位置にある１３ビット長の符号であり、そのトランスポートパケットのペイロードにストアされているデータのタイプを表す。はじめにPIDフィルタ１１は、PID=０x００００であるPAT(Program Association Table)のトランスポートパケットを取り出す。PATには、トランスポートストリームに多重化されている各プログラムのPMT(Program Map Table)のトランスポートパケットのPIDが書かれている。PIDフィルタ１１から出力されるPATのトランスポートパケットは、ストリーム解析部１２へ入力される。
【００７３】
カウンタ２４は、記録するトランスポートストリームの先頭パケットから現在のパケットまでのパケット数を計数し、現在のパケットナンバを、タイムユニットマップ作成部２３とエントリーポイントマップ作成部１６へ出力する。
【００７４】
ストリーム解析部１２は、PCR(Program Clock Reference)を伝送するトランスポートパケットからPCRを抽出して、PLL部１３へ出力する。PCRを伝送するトランスポートパケットのPIDが複数ある場合は、どれか１つのPIDのパケットからPCRが抽出される。PLL部１３は、入力されたPCRに同期して、２７MHzの周波数のクロックを生成し、そのクロックをタイムスタンプ発生部１４に出力する。
【００７５】
タイムスタンプ発生部１４は、入力されたクロックをカウントし、そのカウント値に対応したタイムスタンプ(Arrival_Time_Stamp)を生成する。このタイムスタンプは、最初に記録するトランスポートパケットのタイムスタンプをゼロとすれば、そのトランスポートストリームの記録後の経過時間を表すことになる。このタイムスタンプは、ストリーム解析部１２、タイムスタンプ付加部１５、およびタイムユニットマップ作成部２３へ出力される。
【００７６】
タイムスタンプ付加部１５は、PIDフィルタ１１から入力されたトランスポートパケットに、その到着時刻を示すタイムスタンプを含むヘッダを付加し、ソースパケット（図４）をファイルシステム部１７へ出力する。
【００７７】
タイムユニットマップ作成部２３は、カウンタ２４から入力されるパケットナンバと、タイムスタンプ発生部１４から入力されるタイムスタンプに基づいて、上述のタイムユニットマップを作成する。作成されたタイムユニットマップは、エントリーポイントマップ作成部１６とファイルシステム部１７へ出力される。
【００７８】
ストリーム解析部１２は、プログラム毎の次に示すプログラム情報をエントリーポイントマップ作成部１６へ出力する。(１) プログラムのprogram_number(２) プログラムのPMTのトランスポートパケットのPID(３) プログラムを構成するビデオのトランスポートパケットのPIDとstream_type(４) プログラムを構成するオーディオのトランスポートパケットのPIDとstream_type(５) プログラムのPCRのPID  ここで、stream_typeは、PMTに書いてある内容であり、ビデオの場合、MPEG２/MPEG１などのストリームタイプを表し、またオーディオの場合、MPEG１/AC-３などのストリームタイプを表す。
【００７９】
ストリーム解析部１２はまた、記録するストリームのエントリーポイントデータを作成し、エントリーポイントマップ作成部１６へ入力する。エントリーポイントデータの内容は、図１７に示すものである。なお、エントリーポイントのタイムスタンプをエントリーポイントのPTSとする場合、PTSはストリーム解析部１２が入力ストリームから取り出すので、タイムスタンプ発生部１４により作成したタイムスタンプをストリーム解析部１２へ入力する必要はない。
【００８０】
エントリーポイントマップ作成部１６は、エントリーポイントデータをプログラム毎にテーブル化し、上述のエントリーポイントマップを作成し、ファイルシステム部１７へ出力する。
【００８１】
次に、その動作について説明する。PIDフィルタ１１は、端子１０からトランスポートストリームが入力されると、PID＝０x００００であるPIDを含むトランスポートパケットを抽出し、ストリーム解析部１２に出力する。ストリーム解析部１２は、この時、図２８のフローチャートに示す処理を実行する。
【００８２】
ステップＳ１１で、ストリーム解析部１２は、PIDフィルタ１１からPID＝０x００００のトランスポートパケットを受信すると、そのPATから、端子２２を介して指令された各プログラムのPMTのトランスポートパケットのPIDを取得する。
【００８３】
ステップＳ１２で、ストリーム解析部１２は、各プログラムのPMTのPIDをPIDフィルタ１１にセットする。PIDフィルタ１１は、これらPMTのPIDをもつトランスポートパケットを取り出すと、それをストリーム解析部１２へ出力する。
【００８４】
ステップＳ１３で、ストリーム解析部１２は、PIDフィルタ１１からPMTのトランスポートパケットを受信する。PMTには、そのプログラムを構成するビデオストリームやオーディオストリームをペイロードに持つトランスポートパケットのPIDやPCR(Program Clock Reference)を伝送しているパケットのPIDが書かれている。ストリーム解析部１２は、ユーザインタフェースによって選択された各プログラムを構成するビデオストリームやオーディオストリームをペイロードに持つトランスポートパケットのPIDとPCRを伝送しているパケットのPIDをここで取得する。
【００８５】
ステップＳ１４で、ストリーム解析部１２は、ユーザインタフェースによって選択された各プログラムを構成するビデオストリームやオーディオストリームをペイロードに持つトランスポートパケットのPID とPCRを伝送しているパケットのPIDを、PIDフィルタ１１にセットする。
【００８６】
なお、あらかじめEPG(Electrical Program Guide)等を伝送するサービスインフォメーションのパケットのPIDがわかっている場合は、これらのPIDもまた、PIDフィルタ１１にセットされ、それらPIDのパケットも、PIDフィルタ１１から出力される。
【００８７】
このようにして、PIDフィルタ１１により抽出されたトランスポートパケットは、カウンタ２４、ストリーム解析部１２およびタイムスタンプ付加部１５に供給される。カウンタ２４は、記録するトランスポートストリームの先頭のパケットから現在のパケットまでのパケット数を計数し、現在のパケットナンバを検知する。検知された現在のパケットNO．は、タイムユニットマップ作成部２３と、エントリーポイントマップ作成部１６へ供給される。
【００８８】
また、ストリーム解析部１２は、入力されるトランスポートパケットからPCRを抽出し、PLL部１３へ供給する。PLL部１３は、入力されたPCRに同期して、２７MHzの周波数のクロックを生成し、タイムスタンプ発生部１４に供給する。
【００８９】
タイムスタンプ発生部１４は、入力されたクロックをカウントし、そのカウント値に対応するタイムスタンプを生成する。タイムスタンプ付加部１５は、PIDフィルタ１１から入力されたトランスポートパケットに、その到着時刻を示す、タイムスタンプ発生部１４が発生したタイムスタンプを付加し、ソースパケットをファイルシステム部１７に供給する。
【００９０】
タイムユニットマップ作成部２３は、カウンタ２４から入力されるパケットナンバと、タイムスタンプ発生部１４から入力されるタイムスタンプに基づいて、図７に示したようなタイムユニット毎のtime_unit_addressと、delta_time_unit_addressとを対応させたタイムユニットマップを作成し、エントリーポイントマップ作成部１６と、ファイルシステム部１７へ供給する。または、タイムユニットマップ作成部２３は、図２２（Ｄ）に示したようなタイムユニット毎のRSPN_time_unit_startを対応づけたタイムユニットマップを作成し、エントリーポイントマップ作成部１６と、ファイルシステム部１７へ供給する。
【００９１】
ストリーム解析部１２はまた、プログラム毎の上述したプログラム情報を、エントリーポイントマップ作成部１６へ供給する。
【００９２】
このため、ストリーム解析部１２は、図２９と図３０に示すような、エントリーポイントの解析処理を実行する。
【００９３】
ステップＳ３１でストリーム解析部１２は、記録するプログラムのビデオのPIDと、そのstream_typeをPIDフィルタ１１にセットする。これにより、PIDフィルタ１１から、指定したビデオのパケットが、ストリーム解析部１２に供給される。
【００９４】
ステップＳ３２でストリーム解析部１２は、ビデオパケットのポインタvppを初期化し、vpp=０とする。ポインタvppは、現在処理している上記PIDのビデオパケットの順番を表す。
【００９５】
ステップＳ３３でストリーム解析部１２は、ビデオパケットのポインタvppをインクリメントする（例えば、１だけ増加する）。
【００９６】
ステップＳ３４で、ストリーム解析部１２は、ペイロードの中のストリームに、MPEGビデオのsequence_header_code(３２ビット長で"０x０００００１B３"の符号)が含まれているか否かを調べる。sequence_header_codeが含まれていない時は、処理はステップＳ３３へ戻る。
【００９７】
ステップＳ３４で、ペイロードにsequence_header_codeが含まれていると判定された時は、ステップＳ３５へ進み、ストリーム解析部１２は、sequence_header_codeを含むパケット（最初のIピクチャのパケット）のアドレスをI_start_addressとする（図１０）。
【００９８】
ステップＳ３６でストリーム解析部１２は、ビデオパケットのポインタvppをインクリメントする。
【００９９】
ステップＳ３７で、ストリーム解析部１２は、上記Iピクチャのデータが終了したか否かを調べる。Iピクチャのデータがまだ終了していない場合、処理はステップＳ３６へ戻る。Iピクチャのデータが終了した場合、処理はステップＳ３８へ進む。
【０１００】
ステップＳ３８で、ストリーム解析部１２は、Iピクチャが終了するパケットのアドレスをI_end_addressとする（図１０）。以上により、最初のIピクチャのアドレスが決定されたことになる。
【０１０１】
ストリーム解析部１２は、ステップＳ３９で（ビデオポインタvppはインクリメントしないで）、次のビデオパケットがシーケンスヘッダコードを含んでいるか否かを調べる。パケットがシーケンスヘッダコードを含んでいる場合、処理はステップＳ４７へ進む。パケットがシーケンスヘッダコードを含んでいない場合、処理はステップＳ４０へ進む。
【０１０２】
ストリーム解析部１２は、ステップＳ４０でビデオパケットのポインタvppをインクリメントする。
【０１０３】
ストリーム解析部１２は、ステップＳ４１で、PピクチャまたはIピクチャが終了したかどうかを調べる。PピクチャまたはIピクチャが終了していない場合、処理はステップＳ３９へ戻る。PピクチャまたはIピクチャが終了している場合、処理はステップＳ４２へ進む。
【０１０４】
ストリーム解析部１２は、ステップＳ４２で、PまたはIピクチャが終了するパケットのアドレスをP１_end_addressとする（図１０）。以上により、Iピクチャの次の最初のPピクチャまたはIピクチャのアドレスが決定されたことになる。
【０１０５】
ストリーム解析部１２は、ステップＳ４３で（ビデオポインタvppはインクリメントしないで）、次のビデオパケットがシーケンスヘッダコードを含んでいないか否かを調べる。ビデオパケットがシーケンスヘッダコードを含んでいる場合、処理はステップＳ４７へ進む。ビデオパケットがシーケンスヘッダコードを含んでいない場合、処理はステップＳ４４へ進む。
【０１０６】
ストリーム解析部１２は、ステップＳ４４でビデオパケットのポインタvppをインクリメントする。
【０１０７】
ストリーム解析部１２は、ステップＳ４５でPピクチャまたはIピクチャが終了したかどうかを調べる。PピクチャまたはIピクチャが終了していない場合、処理はステップＳ４３へ戻る。PピクチャまたはIピクチャが終了している場合、処理はステップＳ４６へ進む。
【０１０８】
ストリーム解析部１２は、ステップＳ４６で、PまたはIピクチャが終了するパケットのアドレスを、P２_end_addressとする（図１０）。以上により、Iピクチャの次の次のPピクチャまたはIピクチャのアドレスが決定されたことになる。
【０１０９】
ストリーム解析部１２は、ステップＳ４７でI_start_address, I_end_address, P１_end_address, P２_end_addressのアドレスを、エントリーポイントマップ作成部１６へ出力する。なお、この時、P１_end_addressとP２_end_addressの少くとも一方は存在しない場合もある。
【０１１０】
ストリーム解析部１２は、ステップＳ４８で、現在のパケットが最後の入力パケットであるかどうかを判定する。現在のパケットが最後のパケットでない場合、処理はステップＳ３３へ戻る。現在のパケットが最後のパケットである場合、処理は終了される。
【０１１１】
以上のビデオストリームの解析は、記録するトランスポートストリームの中に複数のプログラムがある場合は、それぞれのプログラムのビデオパケットに対して行なわれる。
【０１１２】
ストリーム解析部１２は、以上のようにしてエントリーポイントデータを生成すると、これをエントリーポイントマップ作成部１６に供給する。エントリーポイントマップ作成部１６は、ストリーム解析部１２より供給されたエントリーポイントデータを、プログラム毎にテーブル化し、図９に示すようなエントリーポイントマップを作成し、ファイルシステム部１７に供給する。
【０１１３】
以上のようにして、ファイルシステム部１７には、タイムスタンプ付加部１５によりタイムスタンプが付加されたトランスポートストリームと、その特徴点を表わす特徴点データとしてのタイムユニットマップと、エントリーポイントマップが、タイムユニットマップ作成部２３とエントリーポイントマップ作成部１６からそれぞれ供給される。ファイルシステム部１７は、トランスポートストリームと、それに対応する特徴点データをファイル化する。
【０１１４】
図３１は、このファイル構造の例を表わしている。この例においては、トランスポートストリームファイルの中に、３個のプログラムが多重化されている。同図に示すように、エントリーポイントマップは、タイムユニットマップに従属する構成とされている。そして、各エントリーポイントマップは、プログラム毎にそれぞれ次のデータを有する。
(１) プログラムのprogram_number
(２) プログラムのPMTのトランスポートパケットのPID
(３) プログラムを構成するビデオのトランスポートパケットのPIDとstream_type
(４) プログラムを構成するオーディオのトランスポートパケットのPIDとstream_type
(５) プログラムのPCRのPID
(６) エントリーポイントのリスト
【０１１５】
ファイルシステム部１７により生成されたファイルは、誤り訂正部１８に供給され、誤り訂正符号が付加された後、変調部１９に供給され、所定の方式で変調される。変調部１９より出力された信号は、書き込み部２０に供給され、記録媒体２１に書き込まれる。
【０１１６】
以上のようにして、トランスポートストリームとその特徴点データが、記録媒体２１に記録される。
【０１１７】
以上においては、タイムユニットマップとエントリーポイントマップを、トランスポートストリームから作成するようにしたが、例えば、動画像記録装置自身が、トランスポートストリームを多重化し、生成するような場合、その多重化動作時に、タイムユニットマップとエントリーポイントマップを、作成するようにすることもできる。図３２は、この場合の構成例を表わしている。
【０１１８】
すなわち、図３２の例においては、多重化部４０に複数（ｎ個）のプログラムの、ビデオとオーディオのエレメンタリーストリーム#１乃至#nが入力されている。システムタイムクロック部４２は、２７MHzの周波数のシステムタイムクロックをカウントし、タイムスタンプを生成し、コントローラ４１とタイムユニットマップ作成部４３に出力している。コントローラ４１は、多重化部４０に入力された各エレメンタリーストリームを解析し、多重化部４０が、MPEG２システム規格のT-STD(Transport Stream System Target Decoder)を満たして、トランスポートストリームを多重化するように、多重化部４０を制御する。
【０１１９】
コントローラ４１は、多重化部４０から出力される、トランスポートパケットの数を示すパケットナンバを、タイムユニットマップ作成部４３とエントリーポイントマップ作成部４４に出力する。タイムユニットマップ作成部４３は、コントローラ４１より入力されるパケットナンバと、システムタイムクロック４２より入力されるタイムスタンプに基づいて、タイムユニットマップを生成する。
【０１２０】
コントローラ４１はまた、プログラム情報とエントリーポイントデータとを、エントリーポイントマップ作成部４４に出力する。エントリーポイントマップ作成部４４は、コントローラ４１より供給される、パケットナンバ、プログラム情報、およびエントリーポイントデータ、並びにタイムユニットマップ作成部４３より供給されるタイムユニットマップに基づいて、エントリーポイントマップを生成する。
【０１２１】
多重化部４０より出力されたトランスポートストリーム、タイムユニットマップ作成部４３により作成されたタイムユニットマップ、およびエントリーポイントマップ作成部４４により作成されたエントリーポイントマップは、それぞれ、図２７に示したファイルシステム部１７に供給される。ファイルシステム部１７乃至記録媒体２１までの構成は、図２７に示した場合と同様である。
【０１２２】
この図３２に示すような構成の動画像記録装置１においては、コントローラ４１が、多重化部４０により多重化されるエレメンタリーストリームから、プログラム情報と、エントリーポイントデータを生成し、エントリーポイントマップ作成部４４に出力する。また、コントローラ４１は、システムタイムクロック４２より入力されるタイムスタンプに対応するパケットナンバを、タイムユニットマップ作成部４３とエントリーポイントマップ作成部４４に出力する。
【０１２３】
タイムユニットマップ作成部４３は、コントローラ４１から入力されるパケットナンバと、システムタイムクロック４２より入力されるタイムスタンプに基づいて、タイムユニットマップを作成する。同様に、エントリーポイントマップ作成部４４は、コントローラ４１より入力されるパケットナンバ、プログラム情報、およびエントリーポイントデータ、並びにタイムユニットマップ作成部４３より入力されるタイムユニットマップに基づいて、エントリーポイントマップを作成する。
【０１２４】
そして、作成されたトランスポートストリーム、タイムユニットマップおよびエントリーポイントマップは、図２７に示した場合と同様に、ファイルシステム部１７によりファイル化され、誤り訂正部１８により誤り訂正分が付加される。そして変調部１９によりさらに変調された後、書き込み部２０により、記録媒体２１に記録される。
【０１２５】
次に、以上のようにして、トランスポートストリームファイルと、そのストリームの特徴点データが記録された記録媒体２１を再生する動画像再生装置について説明する。図３３は、このような動画像再生装置５１の構成例を表わしている。読み出し部６１は、記録媒体２１に記録されているデータを読み出し、復調部６２に出力する。復調部６２は、読み出し部６１より入力されたデータを復調して、誤り訂正部６３に出力する。誤り訂正部６３は、復調部６２より入力されたデータの誤りを訂正し、ファイルシステム部６４に供給する。
【０１２６】
ファイルシステム部６４は、誤り訂正部６３より入力されたデータを、トランスポートストリームファイルと、特徴点データとに分離し、ストリームファイルをバッファ６５に供給するとともに、特徴点データを再生制御部７１に出力する。再生制御部７１は、端子７３からユーザインタフェースを介して、ユーザより入力された指令に対応して、読み出し部６１、デマルチプレクサ６９、およびAVデコーダ７０を制御する。
【０１２７】
バッファ６５は、ストリームファイルからarrival_time_stampに格納されている値を初期値として、カウンタ６８に供給し、セットさせる。カウンタ６８は、システムタイムクロック部６７が発生する２７MHzの周波数のクロックを、バッファ６５からの初期値を基準としてカウントし、カウント値を比較部６６に供給する。
【０１２８】
比較部６６は、カウンタ６８より供給されたカウンタの値と、バッファ６５より供給されたトランスポートパケットに含まれているarrival_time_stampの値を比較し、両者の値が一致したとき、そのトランスポートパケットをデマルチプレクサ６９に出力する。
【０１２９】
デマルチプレクサ６９は、比較部６６より入力されたトランスポートストリームファイルから、再生制御部７１からの指令に対応するチャネルのビデオデータと、オーディオデータとを抽出し、AVデコーダ７０に出力する。AVデコーダ７０は、デマルチプレクサ６９より入力された、ビデオデータとオーディオデータをデコードし、端子７２から出力する。
【０１３０】
次に、その動作について説明する。記録媒体２１には、図２７（または図３２）の動画像記録装置１で記録したトランスポートストリームファイルと、そのストリームの特徴点データが記録されている。トランスポートストリームファイルには、１つまたは複数のプログラムが多重化されている。
【０１３１】
はじめに再生制御部７１は、読み出し部６１に対して、ストリームの特徴点データを読み出すように指示する。このとき、読み出し部６１は、記録媒体２１からストリームの特徴点データを読み出し、復調部６２に出力する。復調部６２は、入力されたデータを復調し、誤り訂正部６３に出力する。誤り訂正部６３は、入力されたデータの誤りを訂正し、ファイルシステム部６４に供給する。ファイルシステム部６４は、入力されたストリーム特徴点データを再生制御部７１に出力する。
【０１３２】
端子７３からは、ユーザインタフェースによって再生を指定されたプログラム番号が入力され、それが再生制御部７１へ入力される。再生制御部７１は、そのプログラムのPMTのトランスポートパケットのPID 、プログラムを構成するビデオのトランスポートパケットのPIDとstream_type、プログラムを構成するオーディオのトランスポートパケットのPIDとstream_type、並びにPCRのPIDを、特徴点データから読み出し、デマルチプレクサ６９とAVデコーダ７０へ出力する。
【０１３３】
さらに、再生制御部７１は、読み出し部６１に対して、トランスポートストリームファイルを読み出すように指示する。この指令に対応して、読み出し部６１は、記録媒体２１からトランスポートストリームファイルを読み出す。このデータは、上述した場合と同様に復調部６２、誤り訂正部６３、ファイルシステム部６４の処理を経て、バッファ６５へ入力される。
【０１３４】
バッファ６５は、入力されたトランスポートストリームファイルから、arrival_time_stampに記憶されている値を読み出し、カウンタ６８に初期値として供給し、セットさせる。カウンタ６８は、この初期値を基準として、システムタイムクロック部６７が発生するクロックをカウントし、そのカウント値を比較部６６に供給する。比較部６６は、バッファ６５より供給されるトランスポートストリームファイルから、arrival_time_stampの値を読み出し、カウンタ６８から供給されるカウンタ値と比較する。両者の値が一致するタイミングで、比較部６６は、トランスポートストリームファイルを、デマルチプレクサ６９に出力する。
【０１３５】
デマルチプレクサ６９は、ユーザインタフェースにより指定されたプログラムを構成するビデオとオーディオのトランスポートパケットを、入力されたトランスポートストリームから分離し、それをAVデコーダ７０へ入力する。AVデコーダ７０は、ビデオストリームとオーディオストリームを復号し、再生ビデオ信号と再生オーディオ信号として端子７２から出力する。
【０１３６】
ユーザインタフェースによってランダムアクセス再生が指示された場合、再生制御部７１は、内部に記憶されているストリームの特徴点データの内容に基づいて、記録媒体２１からのデータの読み出し位置を決定し、ランダムアクセス制御情報を読み出し部６１へ入力する。例えば、ユーザによって選択されたプログラムを所定の時刻から途中再生する場合、再生制御部７１は、タイムユニットマップに基づいて、指定された時刻に対応するトランスポートストリームのアドレスを計算し、そのアドレスからデータを読み出すように読み出し部６１へ指示する。以下に、その手順を説明する。
【０１３７】
はじめに、図７に示したタイムユニットマップの場合を説明する。  ゼロ番目のタイムユニットTU０の先頭データの時刻をstart_timeとすれば、N番目(N>０)のタイムユニットの先頭データの時刻は、(start_time＋first_time_unit_size+(N-１)* time_unit_size)となる。ユーザから指定された時刻よりもタイムユニットの先頭データの時刻が大きくなるタイムユニットの番号がわかったら、その番号のタイムユニットからデータを読み出せば良いことがわかる。
【０１３８】
この場合、記録されたストリーム上の０番目のタイムユニットの先頭データのアドレスを０とすれば、N番目のタイムユニットの先頭データのアドレスtime_unit_address(N)は、次の様に計算できる。
【０１３９】
【数１】
0004670952.tif 000002
【０１４０】
次に、図２２（Ｄ）に示したタイムユニットマップの場合を説明する。
【０１４１】
この場合、N番目(N>=０)のタイムユニットの先頭データの時刻は、(offset_time＋N* time_unit_size)となる。ユーザから指定された時刻よりもタイムユニットの先頭データの時刻が大きくなるタイムユニットの番号がわかったら、その番号のタイムユニットからデータを読み出せば良いことがわかる。N番目のタイムユニットの先頭データのソースパケット番号は、(RSPN_time_unit_start(N)−offset_SPN）となる。ここで、RSPN_time_unit_start(N)は、N番目のタイムユニットについてのRSPN_time_unit_startの値である。
【０１４２】
また、ユーザによって選択されたプログラムに対応するエントリーポイントマップのデータが存在する場合、再生制御部７１は、エントリーポイントデータに基づいて、特殊再生を制御できる。例えば、高速再生の場合、再生制御部７１は、エントリーポイント毎のアドレスのストリームデータを順次連続して読み出すように読み出し部６１へ指示する。
【０１４３】
図３４は、この場合の再生制御部７１の動作を表わしている。再生制御部７１は、ステップＳ６１で、ユーザからの指令に対応して、内蔵するメモリに、再生するプログラムのprogram_numberをセットする。
【０１４４】
再生制御部７１は、ステップＳ６２で、paesed_program_flagから、そのプログラムのエントリーポイントデータが存在するか否かを調べる。存在する(paesed _program_flag＝１である）場合は、ステップＳ６３へ進む。エントリーポイントデータが存在しない場合は、エントリーポイントマップを使用したデータアクセスはできないので、処理は終了される。
【０１４５】
再生制御部７１は、ステップＳ６３で、ユーザにより指定された時刻から読み出し開始するタイムユニットの番号TNを上述のようにして計算する。すなわち、図７に示したタイムユニットマップの場合、start_time＋first_time_unit_size＋(N-１)*time_unit_sizeの値（タイムユニットの先頭の時刻）が、指定された時刻よりも大きくなるタイムユニットの番号TNが計算される。または、図２２（Ｄ）に示したタイムユニットマップの場合、(offset_time＋N* time_unit_size)が、指定された時刻よりも大きくなるタイムユニットの番号TNが計算される。
【０１４６】
再生制御部７１は、ステップＳ６４で、TN番目のタイムユニットに、そのプログラムのエントリーポイントが存在するか否かを、entry_point_flagから調べる。エントリーポイントが存在する(entry_point_flag＝１である）場合は、ステップＳ６５へ進み、存在しない場合は、ステップＳ６７へ進む。
【０１４７】
再生制御部７１は、エントリーポイントが存在する場合、ステップＳ６５で、entry_point_data()からエントリーポイントのストリームデータを読み出すアドレスを計算する。ストリームデータの読み出し開始アドレスは、I_start_addressであり、読み出し終了アドレスは、I_end_address、P１_end_address、またはP２_end_addressである。
【０１４８】
再生制御部７１は、ステップＳ６６で、ステップＳ６５で計算したアドレスに基づいて、エントリーポイントのストリームデータを読み出すように読み出し部６１に指示する。読み出し部６１はこの指示に対応して読み出し動作を実行する。
【０１４９】
再生制御部７１は、ステップＳ６７で、番号TNをインクリメントする。再生制御部６７は、ステップＳ６８で、処理の終了が指令されたか否かを判定し、処理の終了が指令されていない場合は、ステップＳ６４へ戻り、そうでない場合は処理を終了する。
【０１５０】
読み出し部６１は、指定されたランダムアクセスポイントからデータを読み出す。読み出されたデータは、復調部６２、誤り訂正部６３、ファイルシステム部６４バッファ６５、比較部６６の処理を経て、デマルチプレクサ６９へ入力され、AVデコーダ７０で復号され、出力される。
【０１５１】
このステップＳ６３の計算処理の詳細について、図７に示したタイムユニットマップの場合を、図３５と図３６のフローチャートを参照してさらに説明する。ステップＳ８１において、再生制御部７１に、端子７３からprogram_numberと、再生開始時刻Tstが入力されると、ステップＳ８２において、再生制御部７１は、ステップＳ８１で入力された再生開始時刻Tstが、特徴点データに含まれる、トランスポートストリームの開始時刻start_time（図３(B))と等しいか否かを判定する。再生開始時刻Tstが開始時刻start_timeと等しい場合には、ステップＳ８６に進み、再生制御部７１は、タイムユニットの番号を表わす変数Nに０を設定し、そのタイムユニット（０番目のタイムユニット）のtime_unit_address(N)に０を設定する。
【０１５２】
これに対して、ステップＳ８２において、再生開始時刻Tstが開始時刻starttimeと等しくないと判定された場合、ステップＳ８３に進み、再生制御部７１は、タイムユニットマップのヘッダ部を読み込み、ステップＳ８４において、次の不等式を満たす最小の値Ｎを計算する。
TstΔstart_time＋first_time_unit_size＋(N−１) time_unit_size
【０１５３】
ステップＳ８５において、再生制御部７１は、タイムユニットマップのデータに基づいて、数１で示す式に従って、time_unit_address(N)を演算する。
【０１５４】
Ｎ番目のタイムユニットの先頭データの時刻time_unit_address(N)が求められた時、ステップＳ８７において、再生制御部７１は、Ｎ番目のタイムユニットのアドレスtime_unit_address(N)からのデータ読み出しを、読み出し部６１に指示する。
【０１５５】
読み出し部６１は、再生制御部７１からの指令に対応して、ステップＳ８８において、アドレスtime_unit_address(N)からのトランスポートストリームを記録媒体２１から読み出す。読み出されたデータは、復調部６２、誤り訂正部６３、ファイルシステム部６４、バッファ６５、比較部６６を介して、デマルチプレクサ６９に供給される。
【０１５６】
ステップＳ８９において、再生制御部７１は、デマルチプレクサ６９に対して、ユーザより再生が指示された、プログラムのprogram_numberを出力する。デマルチプレクサ６９は、ステップＳ９０において、再生制御部７１より指示された、program_numberのプログラムのトランスポートパケットを分離し、AVデコーダ７０に出力する。ステップＳ９１において、AVデコーダ７０は、デマルチプレクサ６９より入力されたデータをデコードし、端子７２から出力する。
【０１５７】
また、図３４のフローチャートのステップＳ６３の計算処理の詳細について、図２２（Ｄ）に示したタイムユニットマップの場合を、図３７のフローチャートを参照してさらに説明する。
【０１５８】
図３７のフローチャートは、図３５と図３６のフローチャートのステップＳ８２，Ｓ８４，Ｓ８５を、それぞれステップＳ１０２，Ｓ１０４，Ｓ１０５へ変更したものである。これら以外は、図３７のフローチャートは、図３５と図３６のフローチャートと同じである。以下では、ステップＳ１０２，Ｓ１０４，Ｓ１０５の各ステップについてのみ説明する。
【０１５９】
ステップＳ１０２では、再生開始時刻Tstがタイムユニットマップの開始時刻offset_timeと比較される。
【０１６０】
ステップＳ１０４においては、次の不等式を満たす最小の値Ｎが計算される。Tst<= offset_time + N*time_unit_size
【０１６１】
ステップＳ８５においては、再生制御部７１が、タイムユニットマップのデータに基づいて、次に示す式に従って、time_unit_address(N)を演算する。time_unit_address(N)=RSPN_time_unit_start(N)−offset_SPN
【０１６２】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアとしての動画像記録再生装置に組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどにインストールされる。
【０１６３】
次に、図３８を参照して、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられる記録媒体について、そのコンピュータが汎用のパーソナルコンピュータである場合を例として説明する。
【０１６４】
プログラムは、図３８（Ａ）に示すように、コンピュータ３０１に内蔵されている記録媒体としてのハードディスク３０２や半導体メモリ３０３に予めインストールした状態でユーザに提供することができる。
【０１６５】
あるいはまた、プログラムは、図３８（Ｂ）に示すように、フロッピー（登録商標）ディスク３１１、CD-ROM(Compact Disk-Read Only Disk）３１２、ＭＯ(Magneto-Optical)ディスク３１３、DVD(Digital Versatile Disk)３１４、磁気ディスク３１５、半導体メモリ３１６などの記録媒体に、一時的あるいは永続的に格納し、パッケージソフトウエアとして提供することができる。
【０１６６】
さらに、プログラムは、図３８（Ｃ）に示すように、ダウンロードサイト３２１から、ディジタル衛星放送用の人工衛星３２２を介して、コンピュータ３２３に無線で転送したり、ローカルエリアネットワーク、インターネットといったネットワーク１３１を介して、コンピュータ３２３に有線で転送し、コンピュータ３２３において、内蔵するハードディスクなどに格納させることができる。
【０１６７】
本明細書における記録媒体とは、これら全ての記録媒体を含む広義の概念を意味するものである。
【０１６８】
また、本明細書において、記録媒体により提供されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１６９】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１７０】
このように、１つまたは複数のトランスポートストリームが記録された記録媒体にランダムアクセスして再生する場合、Iピクチャやオーディオフレームの開始位置を効率よくサーチすることができるので、ユーザ入力に対して応答の速いランダムアクセス再生をすることができる。
【図面の簡単な説明】
【０１７１】
【図１】従来のトランスポートストリームのパケットを説明する図である。
【図２】従来の記録されるトランスポートストリームを説明する図である。
【図３】本発明のトランスポートストリームを説明する図である。
【図４】本発明の記録されるトランスポートストリームを説明する図である。
【図５】Source  Packetのシンタックスを示す図である。
【図６】TP_extra_headerのシンタックスを示す図である。
【図７】タイムユニットマップの例を示す図である。
【図８】タイムユニット毎のオフセットアドレスを説明する図である。
【図９】エントリーポイントマップの例を示す図である。
【図１０】エントリーポイントデータを説明する図である。
【図１１】データの消去を説明する図である。
【図１２】データを消去した時のタイムユニットマップの例を示す図である。
【図１３】TimeUnitMapHeader()のシンタックスを示す図である。
【図１４】TimeUnitMapData()のシンタックスを示す図である。
【図１５】EntryPointMapHeader()のシンタックスを示す図である。
【図１６】EntryPointMapData()のシンタックスを示す図である。
【図１７】entry  point  data()のシンタックスを示す図である。
【図１８】EntryPointMapData()のシンタックスを示す図である。
【図１９】トランスポートストリームファイルのエントリーポイントを説明する図である。
【図２０】EntryPointMapDataの例を示す図である。
【図２１】EntryPointMapDataの例を示す図である。
【図２２】本発明のトランスポートストリームを説明する図である。
【図２３】TimeUnitMapHeader()のシンタクスを示す図である。
【図２４】TimeUnitMapData()のシンタクスを示す図である。
【図２５】データの消去を説明する図である。
【図２６】データを消去したときのタイムユニットマップの例を示す図である。
【図２７】本発明を適用した動画像記録装置の構成例を示すブロック図である。
【図２８】図２７の動画像記録装置の動作を説明するフローチャートである。
【図２９】図２７の動画像記録装置の動作を説明するフローチャートである。
【図３０】図２７の動画像記録装置の動作を説明するフローチャートである。
【図３１】トランスポートストリームファイルのタイムユニットマップとエントリーポイントマップの関係を説明する図である。
【図３２】本発明を適用した動画像記録装置の他の構成例を示すブロック図である。
【図３３】本発明を適用した動画像再生装置の構成例を示すブロック図である。
【図３４】図３３の動画像再生装置の動作を説明するフローチャートである。
【図３５】図３３の動画像再生装置の動作を説明するフローチャートである。
【図３６】図３３の動画像再生装置の動作を説明するフローチャートである。
【図３７】図３３の動画像再生装置の動作を説明するフローチャートである。
【図３８】記録媒体を説明する図である。
【符号の説明】
【０１７２】
１  動画像記録装置，  １１  PIDフィルタ，  １２  ストリーム解析部，  １４タイムスタンプ発生部，  １５  タイムスタンプ付加部，  １６  エントリーポイントマップ作成部，  １７  ファイルシステム部，  ２１  記録媒体，  ２３  タイムユニットマップ作成部，  ２４  カウンタ，  ４０  多重化部，  ４１  コントローラ，  ４２  システムタイムクロック部，  ４３  タイムユニットマップ作成部，  ４４エントリーポイントマップ作成部，  ６１  読み出し部，  ６９  デマルチプレクサ，  ７０  AVデコーダ，  ７１  再生制御部
【図１】
0004670952.tif 000003
【図２】
0004670952.tif 000004
【図３】
0004670952.tif 000005
【図４】
0004670952.tif 000006
【図５】
0004670952.tif 000007
【図６】
0004670952.tif 000008
【図７】
0004670952.tif 000009
【図８】
0004670952.tif 000010
【図９】
0004670952.tif 000011
【図１０】
0004670952.tif 000012
【図１１】
0004670952.tif 000013
【図１２】
0004670952.tif 000014
【図１３】
0004670952.tif 000015
【図１４】
0004670952.tif 000016
【図１５】
0004670952.tif 000017
【図１６】
0004670952.tif 000018
【図１７】
0004670952.tif 000019
【図１８】
0004670952.tif 000020
【図１９】
0004670952.tif 000021
【図２０】
0004670952.tif 000022
【図２１】
0004670952.tif 000023
【図２２】
0004670952.tif 000024
【図２３】
0004670952.tif 000025
【図２４】
0004670952.tif 000026
【図２５】
0004670952.tif 000027
【図２６】
0004670952.tif 000028
【図２７】
0004670952.tif 000029
【図２８】
0004670952.tif 000030
【図２９】
0004670952.tif 000031
【図３０】
0004670952.tif 000032
【図３１】
0004670952.tif 000033
【図３２】
0004670952.tif 000034
【図３３】
0004670952.tif 000035
【図３４】
0004670952.tif 000036
【図３５】
0004670952.tif 000037
【図３６】
0004670952.tif 000038
【図３７】
0004670952.tif 000039
【図３８】
0004670952.tif 000040