JP4264575B2 - Data processing apparatus and method, data reproducing apparatus and method, and recording medium - Google Patents

Data processing apparatus and method, data reproducing apparatus and method, and recording medium Download PDF

Info

Publication number
JP4264575B2
JP4264575B2 JP2000075128A JP2000075128A JP4264575B2 JP 4264575 B2 JP4264575 B2 JP 4264575B2 JP 2000075128 A JP2000075128 A JP 2000075128A JP 2000075128 A JP2000075128 A JP 2000075128A JP 4264575 B2 JP4264575 B2 JP 4264575B2
Authority
JP
Japan
Prior art keywords
time unit
map
time
unit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000075128A
Other languages
Japanese (ja)
Other versions
JP2001024985A (en
Inventor
元樹 加藤
俊也 浜田
政信 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2000075128A priority Critical patent/JP4264575B2/en
Publication of JP2001024985A publication Critical patent/JP2001024985A/en
Application granted granted Critical
Publication of JP4264575B2 publication Critical patent/JP4264575B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、データ処理装置および方法、並びに記録媒体に関し、特に符号化ストリームから特徴点情報を抽出することにより、複数のプログラムが多重化されている場合においても、迅速にランダムアクセスができるようにしたデータ処理装置および方法、並びに記録媒体に関する。
【0002】
【従来の技術】
ヨーロッパのDVB(Digital Video Broadcast)や日本のディジタルBS放送などの多チャネルディジタルテレビジョン放送では、MPEG(Moving Picture Experts Group)2トランスポートストリームが使われる。トランスポートストリームは、トランスポートパケットが連続したストリームであり、トランスポートパケットは、例えば、MPEG2ビデオストリームやMPEG1オーディオストリームがパケット化されたものである。放送の電波で伝送される1本のトランスポートストリームには、1つまたは複数のAV(Audio Visual)プログラムが多重化されている。一般に、各チャネルのAVプログラムは、お互いに独立している。
【0003】
したがって、放送で送られるトランスポートストリームを家庭の受信機でそのまま受信し、記録すれば、そのトランスポートストリームのすべてのチャネルのプログラムを同時に記録することができる。また、放送で送られるトランスポートストリームの中からユーザによって選択された幾つかのチャネルのAVプログラムのトランスポートストリームを分離したものを記録すれば、選択された任意の数のチャネルのプログラムを同時に記録することができる。
【0004】
図1に従来のトランスポートストリームの記録方法の例を示す。図1(A)は、複数のAVプログラムが多重化されたトランスポートストリームを示す。ここで横軸は、時間であり、Δtの間隔のタイムユニットTUi(i=0, 1, 2 ・・・)毎に区切られている。入力トランスポートストリームの中から1つまたは複数のAVプログラムが選択される。選択されたトランスポートパケットは斜線を施して示されている。選択されたトランスポートパケットは、一般に、図1(B)に示すように、不規則なタイミングで現れ、タイムユニットTUi毎のトランスポートパケットの数は変化する。
【0005】
Δtの間隔のタイムユニットTUi毎の選択されたトランスポートパケットは、図2に示すように、間隔を詰めて記録媒体に記録される。この時、各トランスポートパケットは、それぞれのストリーム上の時刻を示すタイムスタンプを付加して記録される。このタイムスタンプは、例えば、DV(Digital Video)フォーマット(Specification Of Consumer-Use Digital VCRs using 6.3mm magnetic tape(HD digital VCR conference),PART7DVB Specifications of Consumer-Use Digital VCR)で規定されているところのトランスポートパケットに付加される4バイト長のTSP_extra_headerと同様のものである。
【0006】
図2において、横軸は記録されたトランスポートストリームのバイト位置を示すアドレスである。図1(B)に示すような可変ビットレートのトランスポートストリームが入力されると、記録装置は、図2に示すように、ダミーデータを入れて、固定の記録レートでデータを記録する。したがって、記録されたトランスポートストリームの時間の経過に対するデータ量は比例する。すなわち、タイムユニットあたりの記録データ量をxとすると、n番目(n=0, 1, 2,・・・)のタイムユニットの先頭データのバイト位置は、n倍のxとなる。
【0007】
【発明が解決しようとする課題】
このように、従来の記録方法は、ダミーデータを挿入して一定の記録レートにしているため、トランスポートストリームの記録効率が良くない。しかしながら、ダミーデータを挿入しないと、記録されたトランスポートストリームの時間の経過とファイルのデータ量が比例しなくなるので、トランスポートストリームの時間軸上の所定の位置のデータにアクセスする場合、データのアクセス性が悪くなる問題が発生する。
【0008】
また、一般に、MPEG2ビデオのストリームでは、0.5秒くらいの間隔でIピクチャが符号化され、それ以外のピクチャはPピクチャまたはBピクチャとして符号化される。したがって、MPEG2ビデオのストリームが記録された記録媒体から、ビデオ信号を高速再生する場合は、Iピクチャをサーチしなければならない。ところが、ディジタル放送等のトランスポートストリームが記録された記録媒体から、ランダムアクセスにより再生を行う場合、Iピクチャの開始バイトを効率よくサーチすることが難しかった。すなわち、記録媒体上のトランスポートストリームのランダムなバイト位置から読み出したビデオストリームのシンタックスを解析し、Iピクチャやオーディオフレームの開始バイトがサーチされていた。そのため、場合によっては、Iピクチャのサーチに時間がかかってしまい、ユーザ入力に対して応答の速いランダムアクセス再生をすることが困難であった。
【0009】
本発明は、このような状況に鑑みてなされたものであり、複数のプログラムが多重化されている場合においても、迅速に、ランダムアクセスができるようにするものである。
【0010】
【課題を解決するための手段】
本発明のデータ処理装置は、入力された前記符号化ストリームを、所定のタイムユニット毎に区分する区分手段と、前記区分手段により区分された前記符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを作成する第1の作成手段と、前記符号化ストリームのエントリポイントの位置を示す、前記タイムユニットマップに従属するエントリポイントマップを作成する第2の作成手段とを備え
【0011】
前記タイムユニットマップは、タイムユニット毎のデータのアドレスとして、タイムユニット毎の先頭のパケットのパケット番号を保持するようにすることができる。
【0012】
前記タイムユニットマップは、タイムユニットの先頭のデータのアドレスと、そのタイムユニット内に含まれるデータ量に対応するアドレスの間隔とを対応して保持するようにすることができる。
【0013】
前記符号化ストリームとともに、タイムユニットマップをファイル化するファイル化手段をさらに備えるようにすることができる。
【0014】
前記ファイル化手段によりファイル化されたデータを情報記録媒体に記録する記録手段をさらに備えるようにすることができる。
【0015】
前記第1の作成手段は、符号化ストリームが編集されたとき、タイムユニットマップを変更するようにすることができる。
【0016】
記エントリポイントマップは、エントリポイントのタイムユニットの先頭からのアドレスの間隔を含むようにすることができる。
前記エントリポイントは、タイムユニット内に含まれるIピクチャの先頭のアドレスを表し、エントリポイントマップは、Iピクチャの先頭のアドレスから、Iピクチャの終了アドレスまでの間隔、またはIピクチャが含まれるタイムユニット内の、それより後のPピクチャの終了アドレスまでの間隔を含むようにすることができる。
前記エントリポイントマップは、タイムユニットにおけるエントリポイントの有無を表すフラグを含むようにすることができる。
【0017】
前記符号化ストリームが、複数のプログラムを多重化して生成された符号化ストリームである場合、第2の作成手段は、エントリポイントマップを、プログラム毎に作成するようにすることができる。
【0018】
前記第2の作成手段は、符号化ストリームが編集されたとき、エントリポイントマップを変更するようにすることができる。
【0019】
本発明のデータ処理方法は、入力された符号化ストリームを、所定のタイムユニット毎に区分する区分ステップと、区分ステップの処理により区分された符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを作成する第1の作成ステップと、符号化ストリームのエントリポイントの位置を示す、タイムユニットマップに従属するエントリポイントマップを作成する第2の作成ステップとを含
【0020】
本発明の第1の記録媒体のプログラムは、入力された符号化ストリームを、所定のタイムユニット毎に区分する区分ステップと、区分ステップの処理により区分された符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを作成する第1の作成ステップと、符号化ストリームのエントリポイントの位置を示す、タイムユニットマップに従属するエントリポイントマップを作成する第2の作成ステップとを含む処理を、コンピュータに実行させる
【0021】
本発明のデータ再生装置は、情報記録媒体に記録されている、符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを再生する第1の再生手段と、第1の再生手段により再生された、タイムユニットマップに基づいて、情報記録媒体に記録されている符号化ストリームを、任意の位置から再生する第2の再生手段とを備え、第1の再生手段は、符号化ストリームのエントリポイントの位置を示す、タイムユニットマップに従属するエントリポイントマップもさらに再生し、第2の再生手段は、第1の再生手段により再生された、タイムユニットマップとエントリポイントマップに基づいて、情報記録媒体に記録されている符号化ストリームを、任意の位置から再生する
【0023】
本発明のデータ再生方法は、情報記録媒体に記録されている、符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを再生する第1の再生ステップと、第1の再生ステップの処理により再生された、タイムユニットマップに基づいて、情報記録媒体に記録されている符号化ストリームを、任意の位置から再生する第2の再生ステップとを含み、第1の再生ステップの処理では、符号化ストリームのエントリポイントの位置を示す、タイムユニットマップに従属するエントリポイントマップもさらに再生し、第2の再生ステップの処理では、第1の再生手段により再生された、タイムユニットマップとエントリポイントマップに基づいて、情報記録媒体に記録されている符号化ストリームを、任意の位置から再生する
【0024】
本発明の第2の記録媒体のプログラムは、情報記録媒体に記録されている、符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを再生する第1の再生ステップと、第1の再生ステップの処理により再生された、タイムユニットマップに基づいて、情報記録媒体に記録されている符号化ストリームを、任意の位置から再生する第2の再生ステップとを含み、第1の再生ステップの処理では、符号化ストリームのエントリポイントの位置を示す、タイムユニットマップに従属するエントリポイントマップもさらに再生し、第2の再生ステップの処理では、第1の再生手段により再生された、タイムユニットマップとエントリポイントマップに基づいて、情報記録媒体に記録されている符号化ストリームを、任意の位置から再生する処理を、コンピュータに実行させる。
本発明のデータ処理装置、データ処理方法、および、第1の記録媒体のプログラムにおいては、入力された符号化ストリームが、タイムユニット毎に区分され、そのタイムユニット毎のデータのアドレスを示すタイムユニットマップと、符号化ストリームのエントリーポイントの位置を示すタイムユニットマップに従属するエントリーポイントマップが作成される。
【0025】
本発明のデータ再生装置、データ再生方法、および、第2の記録媒体のプログラムにおいては、情報記録媒体から符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップと、符号化ストリームのエントリーポイントの位置を示すタイムユニットマップに従属するエントリポイントマップが再生され、それらに基づいて符号化ストリームが任意の位置から再生される
【0026】
【発明の実施の形態】
以下、符号化ストリームが1つまたは複数のプログラムが多重化されている多重化ストリームである場合を例として本発明を説明するが、本発明は、符号化ストリームがMPEGビデオストリーム等のエレメンタリーストリームであっても適用できるものである。
【0027】
最初に、本発明の基本的な原理について説明する。本発明の動画像記録装置は、1つまたは複数のプログラムが多重化されているトランスポートストリームをディスク、テープなどの記録媒体に記録する時に、ストリーム上の時間を所定のタイムユニット(単位時間)毎に区切り、タイムユニット毎のデータのストリーム上のアドレスを計算する。そして、このタイムユニット毎のデータのストリーム上のアドレスを示すタイムユニットマップが作成される。さらに、記録するトランスポートストリームのプログラム毎のエントリーポイント(ランダムアクセスポイント)の場所を示すエントリーポイントマップが作成される。エントリーポイントマップは、タイムユニットマップに従属する構造を有する。このタイムユニットマップについて、以下に説明する。
【0028】
図3は、複数のAVプログラムが多重化されたトランスポートストリームを示す。ここで横軸は、時間を示し、Δtの間隔のタイムユニットTUi(i=0, 1, 2・・・)毎に区切られている。文字TUの後ろに続く数字iは、タイムユニットTUの時間順序を示す。最初のオリジナル記録の時は、すべてのタイムユニットTUの時間長は同じ値Δtである。値Δtの大きさは、例えば0.5秒とされる。入力トランスポートストリームの中から1つまたは複数のAVプログラムが記録のために選択される。選択されたトランスポートパケットは斜線を付して示されている。選択されたトランスポートパケットは、一般に図3(B)に示すように、不規則なタイミングで現れ、Δtの間隔のタイムユニットTUi毎のトランスポートパケットの数は変化する。なお、現実のトランスポートストリームにおいて、タイムユニットの時間長を約0.5秒と考える場合、タイムユニットに含まれるトランスポートパケットの数は、図3に示す例よりも、ずっと多いが、ここでは簡単化して図示している。
【0029】
選択されたトランスポートパケットは、図4に示すように、間隔を詰めて記録媒体に記録される。この時、各トランスポートパケットには、それぞれのストリーム上の時刻を示すタイムスタンプ(Arrival Time Stamp)が付加される。Arrival Time Stampは、例えば、DVフォーマットで規定されているところのトランスポートパケットに付加される4バイト長のTSP_extra_headerと同様のものとされる。本明細書では、Arrival_Time_Stampを含む4バイト長のヘッダの付加されたトランスポートパケットをソースパケットと呼ぶ。トランスポートパケットは、188バイト長であるので、ソースパケットは、192バイト長となる。
【0030】
ソースパケットのシンタックスは、図5に示すように、TP_extra_header()とtransport_packet()で構成される。TP_extra_header()は、図6に示すように構成され、copy_permission_indicatorと、arrival_time_stampで構成される。
【0031】
図4において、横軸は記録されたトランスポートストリームのバイト位置を示すアドレスである。また、横軸上にタイムユニット毎に最初に入力されたトランスポートパケットの先頭アドレスを示す。この例では、タイムユニットTU0, TU1, TU2では、それぞれ4個、3個、または6個のトランスポートパケットが記録されている。2つのタイムユニットにまたがって入力されるトランスポートパケットは、前側のタイムユニットに含められる。タイムユニットTU0, TU1, TU2の最初に入力されたトランスポートパケットの先頭アドレス、または、それらトランスポートパケットを含むソースパケットの先頭アドレスを、それぞれA(TU0), A(TU1), A(TU2)と表わすものとする。
【0032】
図7は、タイムユニットマップ、すなわち記録されたトランスポートストリームのタイムユニット毎のデータの先頭アドレスのテーブルの例を示す。ここで、time_unit_addressは、記録されたストリーム上のタイムユニットの先頭データのアドレスを示す。タイムユニットマップでは、タイムユニット毎のデータ長delta_time_unit_addressがテーブル化される。
【0033】
この例においては、タイムユニットTU0のデータ長は、タイムユニットTU1の先頭のアドレスA(TU1)と、タイムユニットTU0の先頭のアドレスA(TU0)の差(A(TU1)-A(TU01))で表わされる。同様に、タイムユニットTU1のデータ長は、タイムユニットTU2の先頭のアドレスA(TU2)と、タイムユニットTU1の先頭のアドレスA(TU1)の差(A(TU2)-A(TU1))で表わされ、タイムユニットTU2のデータ長は、タイムユニットTU2の最後のアドレスend_addressと、タイムユニットTU2の先頭のアドレスA(TU2)の差(end_address-A(TU2))で表わされる。
【0034】
次に、上述のエントリーポイントマップについて説明する。図8に示すトランスポートストリームは、図4に示したトランスポートストリームと同様のトランスポートストリームである。ここで斜線で示すトランスポートパケットにおいて、エントリーポイントが開始しているものとする。具体的には、エントリーポイントにおいて、MPEGビデオのシーケンスヘッダとIピクチャデータが開始しているものとする。所定のタイムユニットの中にエントリーポイントが存在する場合、そのタイムユニットのデータの先頭アドレスからエントリーポイントのアドレスまでのオフセットアドレスが計算される。すなわち、図8の例では、タイムユニットTU0とTU2にエントリーポイント(Iピクチャ)が存在する。そこで、タイムユニットTU0においては、その先頭のアドレスA(TU0)から、Iピクチャの先頭のアドレスI_start_addressまでの間隔aが、オフセットアドレスとして計算される。同時に、タイムユニットTU2においては、その先頭のアドレスA(TU2)から、Iピクチャの先頭のアドレスI_start_addressまでの間隔bがオフセットアドレスとして計算される。
【0035】
図9は、エントリーポイントマップ、すなわちタイムユニット毎のエントリーポイントまでのオフセットアドレスのテーブルの例を示す。entry_point_flagは、対応するタイムユニットTUiにエントリーポイントが存在する時、「1」とされ、存在しない時、「0」とされる。entry_point_flagが「1」であるタイムユニットについて、そのタイムユニットのデータの先頭アドレスtime_unit_addressから、エントリーポイントのアドレスI_start_addressまでのオフセットアドレスI_start_offset_from_time_unit_addressは、次式に示すように計算される。
【0036】
I_start_offset_from_time_unit_address
= I_start_address - time_unit_address
【0037】
また、エントリーポイント毎に、エントリーポイントのIピクチャデータの終了アドレスI_end_address、エントリーポイントのIピクチャの次のPまたはIピクチャの終了アドレスP1_end_address、エントリーポイントのIピクチャの次の次のPまたはIピクチャの終了アドレスP2_end_addressが、次式に示すように計算される。
【0038】
I_end_offset_address = I_end_address - I_start_address
P1_end_offset_address= P1_end_address - I_start_address
P2_end_offset_address= P2_end_address - I_start_address
【0039】
これらのアドレスの具体例を図10に示す。図10は、所定のタイムユニットの先頭からはじまるMPEGビデオデータを示す。ここで、I,P,BはそれぞれIピクチャ、Pピクチャ、またはBピクチャを表し、また添え字の数字は、ピクチャの表示順序を示す。このタイムユニットには、I2で示すエントリーポイントのIピクチャが存在する。また、IピクチャI2の次のPピクチャはP5であり、IピクチャI2の次の次のPピクチャは、P8である。この時、上記式で演算されたI_start_offset_from_time_unit_address, I_end_offset_address, P1_end_offset_address,P2_end_offset_addressは、図に示す関係になる。
【0040】
すなわち、I_end_offset_addressは、IピクチャI2の終了アドレスI_end_addressから、IピクチャI2の開始アドレスI_start_addressを減算した値とされている。P1_end_offset_addressは、PピクチャP5の終了アドレスP1_end_addressから、IピクチャI2の開始アドレスI_start_addressを減算した値とされている。さらにP2_end_offset_addressは、PピクチャP8の終了アドレスP2_end_addressから、IピクチャI2の開始アドレスI_start_addressを減算した値とされている。
【0041】
I_start_offset_from_time_unit_addressは、エントリーポイントのアドレスI_start_addressから、タイムユニットのデータの先頭のアドレスtime_unit_addressを減算した値とされている。
【0042】
なお、記録するトランスポートストリームの中に複数のプログラムが含まれる場合、エントリーポイントの情報は、プログラム毎に区別して作成される。また、すべてのプログラムについて、エントリーポイントデータを用意できない場合を考慮して、エントリーポイントマップは、プログラム毎にエントリーポイントデータが存在するかどうかを示す情報(parsed_program_flag)を有する。
【0043】
記録媒体に記録したトランスポートストリームを編集した場合、そのタイムユニットマップは変更(更新)される。次に、その方法を説明する。図11(A)は、図4に示すトランスポートストリームの先頭の2パケットと終わりの3パケットを消去する場合の例を示す。図11(B)は、このようにしてパケットが部分消去された後のトランスポートストリームを示す。図12は、図11(B)のトランスポートストリームのタイムユニットマップを示す。このようにタイムユニットの途中までのデータが消去された場合、最初のタイムユニットTU0の時間長(first_time_unit_size)が変化するので、これが書き換えられる。図11(B)の場合は、タイムユニットTU0の時間長が、タイムユニットTU1の先頭のパケットPbのタイムスタンプと、消去後のタイムユニットTU0の先頭のパケットPaのタイムスタンプの差分値に変更される。また、図12に示すように、タイムユニットTU0のdelta_time_unit_addressが、タイムユニットTU1の先頭のパケットPbのアドレスA(TU1)と、消去後のタイムユニットTU0の先頭のパケットPaのアドレスCの差分値 (A(TU1)−C)に更新される。タイムユニットマップが変更された場合は、それに関係するエントリーポイントマップも変更される。
【0044】
次に上述のタイムユニットマップのシンタックスの例を図13と図14に示す。図13と図14は、それぞれタイムユニットマップのヘッダ部(TimeUnitMapHeader()) とデータ部(TimeUnitMapData()) を表す。タイムユニットマップをファイルとして記録する時は、ヘッダ部とデータ部を1つのファイルにして記録しても良いし、別々のファイルとして記録しても良い。TimeUnitMapHeader()のstart_time, end_time は、それぞれ、このタイムユニットマップの開始時刻と終了時刻を示し、例えば、あるトランスポートストリームを記録する時の記録開始時刻と記録終了時刻を示す。first_time_unit_sizeは、最初のタイムユニットの時間長を示す。time_unit_size は、第2番目以降のタイムユニットの時間長を示す。number_of_time_unit_entriesは、トランスポートストリームの中のタイムユニットの数を示す。TimeUnitMapData()には、number_of_time_unit_entriesで示される数のdelta_time_unit_address(図7)が書かれる。
【0045】
また、上述のエントリーポイントマップのシンタックスの第1の例を、図15乃至図17に示す。図15は、エントリーポイントマップのヘッダ部(EntryPointMapHeader()) を表し、図16はエントリーポイントマップのデータ部(EntryPointMapData())を表す。図17は、さらに図16のentry_point_data()のシンタックスを表わしている。エントリーポイントマップをファイルとして記録する時は、ヘッダ部とデータ部を1つのファイルにして記録しても良いし、別々のファイルとして記録しても良い。
【0046】
図15のEntryPointMapHeader()のnumber_of_programsは、トランスポートストリームの中のプログラム数を示す。このシンタックスの第3行目から第6行目には、記録する各プログラムについて、エントリーマップテーブルが存在するかどうかを示す情報がある。第4行目のprogram_numberは、プログラムを特定(識別)する情報であり、対応するプログラムのPMT(Program Map Table)に書かれている情報である。第5行目のparsed_program_flagは、そのプログラムのエントリーポイントデータが存在するかどうかを示す。
【0047】
第8行目から第10行目には、記録する各プログラムのPMTの情報が続く。MPEG2_TS_program_map_section()は、記録するトランスポートストリームの中から抽出した、MPEG2 systems規格で規定されているPMTである。ここで、NUMBER_OF_ParsedProgramsは、parsed_program_flagが「1」であるプログラムの数である。第8行目のNUMBER_OF_ParsedProgramsのループの中でデータが現れる順番は、第3行目のnumber_of_programsのループでparsed_program_flag が「1」であるprogram_numberが現れる順番である。
【0048】
図16のEntryPointMapData()には、記録する各プログラムについてのエントリーポイントのデータが記述される。1つのタイムユニットについてのエントリーポイントのパラメータは、entry_point_flagとentry_point_data()である。1つのタイムユニットについてのentry_point_data()の内容は、図17に示すように、entry_point_time_stamp, I_start_offset_from_time_unit_address, I_end_offset_address, P1_end_offset_address, P2_end_offset_addressである。ここで、entry_point_time_stampは、エントリーポイントのトランスポートパケットのストリーム上の時刻、または、エントリーポイントのIピクチャのPTS(Presentation Time Stamp)に基づいて計算される。PTSは、MPEG2システムズ規格のPES パケットのヘッダに付加されている情報である。
【0049】
また、上述のエントリーポイントマップのシンタックスの第2の例を、図18に示す。EntryPointMapHeader()とentry_point_data()の構成は、上述の第1の例における図15または図17に示す場合と同様である。この図18と図16を比較して明らかなように、各プログラムについてのエントリーポイントのデータの並び方が、図16の第1の例とは異なる。
【0050】
次に、以下に示す状態の第1の例と第2の例のそれぞれの場合のエントリーマップのデータの並びの例を示す。ここでは、図19に示すように、トランスポートストリームの中に3個のプログラム(program#1, program#2, program#3)が多重化されていて、タイムユニットTUi(i=0, 1, 2, 3)毎に、各プログラムのエントリーポイントがあるものとする。この場合、各パラメータは次のようになる。
【0051】
number_of_time_unit_entries =4
number_of_programs=3
program_number=1:parsed_program_flag=1
program_number=2:parsed_program_flag=1
program_number=3:parsed_program_flag=1
NUMBER_OF_ParsedPrograms=3
【0052】
図20は、第1の例(図16の例)の場合のエントリーポイントマップを示す。この場合、プログラム毎にエントリーポイントデータのリストが別れた形になる。すなわち、program#1のEntryPointMapDataは、図20(A)に示すように、タイムユニットTU0乃至TU3のそれぞれに、entry_point_dataとして、entry_point_data#1-1乃至entry_point_data#1-4が存在するため、entry_point_flagはそれぞれ「1」とされる。
【0053】
なお、entry_point_data#A-Bは、program_number=AのB番目のエントリーポイントについてのentry_point_data()を表わす。
【0054】
program#2のEntryPointMapDataは、図20(B)に示すように、タイムユニットTU1, TU3には、entry_point_dataが存在しないため、そのentry_point_flagは「0」とされる。これに対して、タイムユニットTU0, TU2においては、それぞれentry_point_data#2-1,entry_point_data#2-2が存在するため、そのentry_point_flagは「1」とされる。
【0055】
さらに、program#3のEntryPointMapDataのタイムユニットTU0, TU2には、entry_point_dataが存在しないため、entry_point_flagは「0」とされる。タイムユニットTU1, TU3には、entry_point_data#3-1,entry_point_data#3-2がそれぞれ存在するため、そのentry_point_flagは「1」とされている。
【0056】
これらのentry_point_flagと、entry_point_dataが、EntryPointMapDataに記述される。
【0057】
また、図21は、第2の例(図18の例)の場合のエントリーポイントマップを示す。
【0058】
この場合、タイムユニット毎に各プログラムのエントリーポイントデータが時間順に並ぶ形になり、エントリーポイントデータのリストは1つの形となる。すなわち、タイムユニットTU0において、3つのプログラムprogram#1乃至#3が記述され、それぞれについて、entry_point_flagと対応するentry_point_dataが記述される。この例では、program#3には、entry_point_dataが存在しないため、そのentry_point_flagは「0」とされ、program#1, #2については、entry_point_data#1-1, #2-1が存在するため、そのentry_point_flagは「1」とされている。
【0059】
その他のタイムユニットTU1乃至TU3においても、program#1乃至#3それぞれについて、entry_point_flagと、entry_point_dataが記述される。
【0060】
次に、図22を用いて、タイムユニットマップの別の例を説明する。図22(A), (B)は、前述の図3(A), (B)と同様の構成を示す。また、図22(C)は、図4と同様に、記録媒体上に記録されたソースパケットデータを示す。トランスポートパケットとソースパケットの関係は、図4に示すとおりである。図22(C)では、横軸は記録されたソースパケットの番号を示す。ソースパケット番号は、ソースパケットの記録された順番であり、ゼロから開始して、順番に1づつインクリメントする。タイムユニット毎のデータの先頭アドレスA(TU0), A(TU1),A(TU2)は、ソースパケット番号単位でカウントして、それそれ0,4,7となる。
【0061】
図22(D)は、タイムユニットマップ、すなわち記録されたトランスポートストリームのタイムユニット毎のデータの先頭アドレスのテーブルの例を示す。ここで、RSPN(Relative Source Packet Number)time_unit_startは、記録されたストリーム上のタイムユニットの先頭データのアドレスを示す。タイムユニットマップでは、記録されたトランスポートストリームの先頭からのタイムユニットの順にRSPN_time_unit_startがテーブル化され、図22(D)の場合、A(TU0), A(TU1), A(TU2)の順に値が並ぶ。
【0062】
次に上述のタイムユニットマップのシンタックスの例を図23と図24に示す。図23と図24は、それぞれタイムユニットマップのヘッダ部(TimeUnitMapHeader()) とデータ部(TimeUnitMapData()) を表す。タイムユニットマップをファイルとして記録する時は、ヘッダ部とデータ部を1つのファイルにして記録しても良いし、別々のファイルとして記録しても良い。
【0063】
図23のTimeUnitMapHeader()の offset_SPN は、記録されたトランスポートストリームの一番目のソースパケットの番号を示す。本実施の形態では、RSPN_time_unit_startは、offset_SPNに対する相対的なソースパケット番号で表す。タイムユニットマップをはじめて作成する時の、offset_SPNの初期値は、ゼロである。次のoffset timeは、このタイムユニットマップの開始時刻を示すものであり、一番目のタイムユニットの開始時刻を示す。
【0064】
time_unit_sizeは、このタイムユニットマップのタイムユニットの時間長を示す。
【0065】
number_of_time_unit_entriesは、記録されたトランスポートストリームの中のタイムユニットの数を示す。
【0066】
図24のTimeUnitMapData()には、number_of_time_unit_entriesで示される数のRSPN_time_unit_start (図22(D))が書かれる。
【0067】
次に、記録されたトランスポートストリームを編集した場合の上述のタイムユニットマップの変更(更新)の方法を説明する。図25(A)は、図22(C)に示すトランスポートストリームの先頭の2パケット、すなわち先頭からCで示すアドレスのソースパケットまでを消去する場合の例を示す。図25(B)は、このようにしてパケットが部分消去された後のトランスポートストリームを示す。
【0068】
図26は、図25(A)と(B)の場合のトランスポートストリームのタイムユニットマップを示す。このようにタイムユニットの先頭部分のデータが消去された場合、消去された部分のデータを含むタイムユニットを参照するRSPN_time_unit_startのデータが消去される。図26(B)の場合は、TU0のRSPN_time_unit_startのデータが消去される。これに伴って、number_of_time_unit_entriesが、消去したRSPN_time_unit_startのデータの数だけデクリメントされる。
【0069】
また、上述のoffset_SPNとoffset_timeが変更される。図26(A)の場合は、offset_SPNは、ゼロであり、また、offset_timeは、TU0のタイムユニットの開始時刻のゼロがセットされている。図26(B)の場合は、offset_SPNが、新しく先頭になったソースパケットの元々のソースパケットの番号のC(=2)に変更される。また、offset_timeが新しく先頭になったタイムユニット,すなわち、この例ではTU1の元々の開始時刻のΔTに変更される。なお、編集前後で、time_unit_sizeは、変更されない。
【0070】
タイムユニットマップが変更された場合は、それに関係するエントリーポイントマップも変更される。
【0071】
次に、入力されたトランスポートストリームから、上述のテーブルを作成してトランスポートストリームとともに、記録媒体に記録する動画像記録装置1の構成例を図27に示す。
【0072】
端子10から入力されるトランスポートストリームには、1つまたは複数のAVプログラムが多重化されている。端子22には、ユーザインタフェースによって選択されたAVプログラムのチャネル(サービス名)が入力される。ここで選択されるチャネル数は、1つでも複数でも良い。
【0073】
PIDフィルタ11は、入力されたトランスポートストリームの中から、ストリーム解析部12により指定されたPID(Packet ID)のトランスポートパケットを取り出す。PIDは、トランスポートパケットのヘッダの固定位置にある13ビット長の符号であり、そのトランスポートパケットのペイロードにストアされているデータのタイプを表す。はじめにPIDフィルタ11は、PID=0x0000であるPAT(Program Association Table)のトランスポートパケットを取り出す。PATには、トランスポートストリームに多重化されている各プログラムのPMT(Program Map Table)のトランスポートパケットのPIDが書かれている。PIDフィルタ11から出力されるPATのトランスポートパケットは、ストリーム解析部12へ入力される。
【0074】
カウンタ24は、記録するトランスポートストリームの先頭パケットから現在のパケットまでのパケット数を計数し、現在のパケットナンバーを、タイムユニットマップ作成部23とエントリーポイントマップ作成部16へ出力する。
【0075】
ストリーム解析部12は、PCR(Program Clock Reference)を伝送するトランスポートパケットからPCRを抽出して、PLL部13へ出力する。PCRを伝送するトランスポートパケットのPIDが複数ある場合は、どれか1つのPIDのパケットからPCRが抽出される。PLL部13は、入力されたPCRに同期して、27MHzの周波数のクロックを生成し、そのクロックをタイムスタンプ発生部14に出力する。
【0076】
タイムスタンプ発生部14は、入力されたクロックをカウントし、そのカウント値に対応したタイムスタンプ(Arrival_Time_Stamp)を生成する。このタイムスタンプは、最初に記録するトランスポートパケットのタイムスタンプをゼロとすれば、そのトランスポートストリームの記録後の経過時間を表すことになる。このタイムスタンプは、ストリーム解析部12、タイムスタンプ付加部15、およびタイムユニットマップ作成部23へ出力される。
【0077】
タイムスタンプ付加部15は、PIDフィルタ11から入力されたトランスポートパケットに、その到着時刻を示すタイムスタンプを含むヘッダーを付加し、ソースパケット(図4)をファイルシステム部17へ出力する。
【0078】
タイムユニットマップ作成部23は、カウンタ24から入力されるパケットナンバーと、タイムスタンプ発生部14から入力されるタイムスタンプに基づいて、上述のタイムユニットマップを作成する。作成されたタイムユニットマップは、エントリーポイントマップ作成部16とファイルシステム部17へ出力される。
【0079】
ストリーム解析部12は、プログラム毎の次に示すプログラム情報をエントリーポイントマップ作成部16へ出力する。(1) プログラムのprogram_number(2) プログラムのPMTのトランスポートパケットのPID(3) プログラムを構成するビデオのトランスポートパケットのPIDとstream_type(4) プログラムを構成するオーディオのトランスポートパケットのPIDとstream_type(5) プログラムのPCRのPID ここで、stream_typeは、PMTに書いてある内容であり、ビデオの場合、MPEG2/MPEG1などのストリームタイプを表し、またオーディオの場合、MPEG1/AC-3などのストリームタイプを表す。
【0080】
ストリーム解析部12はまた、記録するストリームのエントリーポイントデータを作成し、エントリーポイントマップ作成部16へ入力する。エントリーポイントデータの内容は、図17に示すものである。なお、エントリーポイントのタイムスタンプをエントリーポイントのPTSとする場合、PTSはストリーム解析部12が入力ストリームから取り出すので、タイムスタンプ発生部14により作成したタイムスタンプをストリーム解析部12へ入力する必要はない。
【0081】
エントリーポイントマップ作成部16は、エントリーポイントデータをプログラム毎にテーブル化し、上述のエントリーポイントマップを作成し、ファイルシステム部17へ出力する。
【0082】
次に、その動作について説明する。PIDフィルタ11は、端子10からトランスポートストリームが入力されると、PID=0x0000であるPIDを含むトランスポートパケットを抽出し、ストリーム解析部12に出力する。ストリーム解析部12は、この時、図28のフローチャートに示す処理を実行する。
【0083】
ステップS11で、ストリーム解析部12は、PIDフィルタ11からPID=0x0000のトランスポートパケットを受信すると、そのPATから、端子22を介して指令された各プログラムのPMTのトランスポートパケットのPIDを取得する。
【0084】
ステップS12で、ストリーム解析部12は、各プログラムのPMTのPIDをPIDフィルタ11にセットする。PIDフィルタ11は、これらPMTのPIDをもつトランスポートパケットを取り出すと、それをストリーム解析部12へ出力する。
【0085】
ステップS13で、ストリーム解析部12は、PIDフィルタ11からPMTのトランスポートパケットを受信する。PMTには、そのプログラムを構成するビデオストリームやオーディオストリームをペイロードに持つトランスポートパケットのPIDやPCR(Program Clock Reference)を伝送しているパケットのPIDが書かれている。ストリーム解析部12は、ユーザインタフェースによって選択された各プログラムを構成するビデオストリームやオーディオストリームをペイロードに持つトランスポートパケットのPIDとPCRを伝送しているパケットのPIDをここで取得する。
【0086】
ステップS14で、ストリーム解析部12は、ユーザインタフェースによって選択された各プログラムを構成するビデオストリームやオーディオストリームをペイロードに持つトランスポートパケットのPID とPCRを伝送しているパケットのPIDを、PIDフィルタ11にセットする。
【0087】
なお、あらかじめEPG(Electrical Program Guide)等を伝送するサービスインフォメーションのパケットのPIDがわかっている場合は、これらのPIDもまた、PIDフィルタ11にセットされ、それらPIDのパケットも、PIDフィルタ11から出力される。
【0088】
このようにして、PIDフィルタ11により抽出されたトランスポートパケットは、カウンタ24、ストリーム解析部12およびタイムスタンプ付加部15に供給される。カウンタ24は、記録するトランスポートストリームの先頭のパケットから現在のパケットまでのパケット数を計数し、現在のパケットナンバを検知する。検知された現在のパケットNO.は、タイムユニットマップ作成部23と、エントリーポイントマップ作成部16へ供給される。
【0089】
また、ストリーム解析部12は、入力されるトランスポートパケットからPCRを抽出し、PLL部13へ供給する。PLL部13は、入力されたPCRに同期して、27MHzの周波数のクロックを生成し、タイムスタンプ発生部14に供給する。
【0090】
タイムスタンプ発生部14は、入力されたクロックをカウントし、そのカウント値に対応するタイムスタンプを生成する。タイムスタンプ付加部15は、PIDフィルタ11から入力されたトランスポートパケットに、その到着時刻を示す、タイムスタンプ発生部14が発生したタイムスタンプを付加し、ソースパケットをファイルシステム部17に供給する。
【0091】
タイムユニットマップ作成部23は、カウンタ24から入力されるパケットナンバと、タイムスタンプ発生部14から入力されるタイムスタンプに基づいて、図7に示したようなタイムユニット毎のtime_unit_addressと、delta_time_unit_addressとを対応させたタイムユニットマップを作成し、エントリーポイントマップ作成部16と、ファイルシステム部17へ供給する。または、タイムユニットマップ作成部23は、図22(D)に示したようなタイムユニット毎のRSPN_time_unit_startを対応づけたタイムユニットマップを作成し、エントリーポイントマップ作成部16と、ファイルシステム部17へ供給する。
【0092】
ストリーム解析部12はまた、プログラム毎の上述したプログラム情報を、エントリーポイントマップ作成部16へ供給する。
【0093】
このため、ストリーム解析部12は、図29と図30に示すような、エントリーポイントの解析処理を実行する。
【0094】
ステップS31でストリーム解析部12は、記録するプログラムのビデオのPIDと、そのstream_typeをPIDフィルタ11にセットする。これにより、PIDフィルタ11から、指定したビデオのパケットが、ストリーム解析部12に供給される。
【0095】
ステップS32でストリーム解析部12は、ビデオパケットのポインタvppを初期化し、vpp=0とする。ポインタvppは、現在処理している上記PIDのビデオパケットの順番を表す。
【0096】
ステップS33でストリーム解析部12は、ビデオパケットのポインタvppをインクリメントする(例えば、1だけ増加する)。
【0097】
ステップS34で、ストリーム解析部12は、ペイロードの中のストリームに、MPEGビデオのsequence_header_code(32ビット長で"0x000001B3"の符号)が含まれているか否かを調べる。sequence_header_codeが含まれていない時は、処理はステップS33へ戻る。
【0098】
ステップS34で、ペイロードにsequence_header_codeが含まれていると判定された時は、ステップS35へ進み、ストリーム解析部12は、sequence_header_codeを含むパケット(最初のIピクチャのパケット)のアドレスをI_start_addressとする(図10)。
【0099】
ステップS36でストリーム解析部12は、ビデオパケットのポインタvppをインクリメントする。
【0100】
ステップS37で、ストリーム解析部12は、上記Iピクチャのデータが終了したか否かを調べる。Iピクチャのデータがまだ終了していない場合、処理はステップS36へ戻る。Iピクチャのデータが終了した場合、処理はステップS38へ進む。
【0101】
ステップS38で、ストリーム解析部12は、Iピクチャが終了するパケットのアドレスをI_end_addressとする(図10)。以上により、最初のIピクチャのアドレスが決定されたことになる。
【0102】
ストリーム解析部12は、ステップS39で(ビデオポインタvppはインクリメントしないで)、次のビデオパケットがシーケンスヘッダコードを含んでいるか否かを調べる。パケットがシーケンスヘッダコードを含んでいる場合、処理はステップS47へ進む。パケットがシーケンスヘッダコードを含んでいない場合、処理はステップS40へ進む。
【0103】
ストリーム解析部12は、ステップS40でビデオパケットのポインタvppをインクリメントする。
【0104】
ストリーム解析部12は、ステップS41で、PピクチャまたはIピクチャが終了したかどうかを調べる。PピクチャまたはIピクチャが終了していない場合、処理はステップS39へ戻る。PピクチャまたはIピクチャが終了している場合、処理はステップS42へ進む。
【0105】
ストリーム解析部12は、ステップS42で、PまたはIピクチャが終了するパケットのアドレスをP1_end_addressとする(図10)。以上により、Iピクチャの次の最初のPピクチャまたはIピクチャのアドレスが決定されたことになる。
【0106】
ストリーム解析部12は、ステップS43で(ビデオポインタvppはインクリメントしないで)、次のビデオパケットがシーケンスヘッダコードを含んでいないか否かを調べる。ビデオパケットがシーケンスヘッダコードを含んでいる場合、処理はステップS47へ進む。ビデオパケットがシーケンスヘッダコードを含んでいない場合、処理はステップS44へ進む。
【0107】
ストリーム解析部12は、ステップS44でビデオパケットのポインタvppをインクリメントする。
【0108】
ストリーム解析部12は、ステップS45でPピクチャまたはIピクチャが終了したかどうかを調べる。PピクチャまたはIピクチャが終了していない場合、処理はステップS43へ戻る。PピクチャまたはIピクチャが終了している場合、処理はステップS46へ進む。
【0109】
ストリーム解析部12は、ステップS46で、PまたはIピクチャが終了するパケットのアドレスを、P2_end_addressとする(図10)。以上により、Iピクチャの次の次のPピクチャまたはIピクチャのアドレスが決定されたことになる。
【0110】
ストリーム解析部12は、ステップS47でI_start_address, I_end_address, P1_end_address, P2_end_addressのアドレスを、エントリーポイントマップ作成部16へ出力する。なお、この時、P1_end_addressとP2_end_addressの少くとも一方は存在しない場合もある。
【0111】
ストリーム解析部12は、ステップS48で、現在のパケットが最後の入力パケットであるかどうかを判定する。現在のパケットが最後のパケットでない場合、処理はステップS33へ戻る。現在のパケットが最後のパケットである場合、処理は終了される。
【0112】
以上のビデオストリームの解析は、記録するトランスポートストリームの中に複数のプログラムがある場合は、それぞれのプログラムのビデオパケットに対して行なわれる。
【0113】
ストリーム解析部12は、以上のようにしてエントリーポイントデータを生成すると、これをエントリーポイントマップ作成部16に供給する。エントリーポイントマップ作成部16は、ストリーム解析部12より供給されたエントリーポイントデータを、プログラム毎にテーブル化し、図9に示すようなエントリーポイントマップを作成し、ファイルシステム部17に供給する。
【0114】
以上のようにして、ファイルシステム部17には、タイムスタンプ付加部15によりタイムスタンプが付加されたトランスポートストリームと、その特徴点を表わす特徴点データとしてのタイムユニットマップと、エントリーポイントマップが、タイムユニットマップ作成部23とエントリーポイントマップ作成部16からそれぞれ供給される。ファイルシステム部17は、トランスポートストリームと、それに対応する特徴点データをファイル化する。
【0115】
図31は、このファイル構造の例を表わしている。この例においては、トランスポートストリームファイルの中に、3個のプログラムが多重化されている。同図に示すように、エントリーポイントマップは、タイムユニットマップに従属する構成とされている。そして、各エントリーポイントマップは、プログラム毎にそれぞれ次のデータを有する。
(1) プログラムのprogram_number
(2) プログラムのPMTのトランスポートパケットのPID
(3) プログラムを構成するビデオのトランスポートパケットのPIDとstream_type
(4) プログラムを構成するオーディオのトランスポートパケットのPIDとstream_type
(5) プログラムのPCRのPID
(6) エントリーポイントのリスト
【0116】
ファイルシステム部17により生成されたファイルは、誤り訂正部18に供給され、誤り訂正符号が付加された後、変調部19に供給され、所定の方式で変調される。変調部19より出力された信号は、書き込み部20に供給され、記録媒体21に書き込まれる。
【0117】
以上のようにして、トランスポートストリームとその特徴点データが、記録媒体21に記録される。
【0118】
以上においては、タイムユニットマップとエントリーポイントマップを、トランスポートストリームから作成するようにしたが、例えば、動画像記録装置自身が、トランスポートストリームを多重化し、生成するような場合、その多重化動作時に、タイムユニットマップとエントリーポイントマップを、作成するようにすることもできる。図32は、この場合の構成例を表わしている。
【0119】
すなわち、図32の例においては、多重化部40に複数(n個)のプログラムの、ビデオとオーディオのエレメンタリーストリーム#1乃至#nが入力されている。システムタイムクロック部42は、27MHzの周波数のシステムタイムクロックをカウントし、タイムスタンプを生成し、コントローラ41とタイムユニットマップ作成部43に出力している。コントローラ41は、多重化部40に入力された各エレメンタリーストリームを解析し、多重化部40が、MPEG2システム規格のT-STD(Transport Stream System Target Decoder)を満たして、トランスポートストリームを多重化するように、多重化部40を制御する。
【0120】
コントローラ41は、多重化部40から出力される、トランスポートパケットの数を示すパケットナンバーを、タイムユニットマップ作成部43とエントリーポイントマップ作成部44に出力する。タイムユニットマップ作成部43は、コントローラ41より入力されるパケットナンバと、システムタイムクロック42より入力されるタイムスタンプに基づいて、タイムユニットマップを生成する。
【0121】
コントローラ41はまた、プログラム情報とエントリーポイントデータとを、エントリーポイントマップ作成部44に出力する。エントリーポイントマップ作成部44は、コントローラ41より供給される、パケットナンバ、プログラム情報、およびエントリーポイントデータ、並びにタイムユニットマップ作成部43より供給されるタイムユニットマップに基づいて、エントリーポイントマップを生成する。
【0122】
多重化部40より出力されたトランスポートストリーム、タイムユニットマップ作成部43により作成されたタイムユニットマップ、およびエントリーポイントマップ作成部44により作成されたエントリーポイントマップは、それぞれ、図27に示したファイルシステム部17に供給される。ファイルシステム部17乃至記録媒体21までの構成は、図27に示した場合と同様である。
【0123】
この図32に示すような構成の動画像記録装置1においては、コントローラ41が、多重化部40により多重化されるエレメンタリーストリームから、プログラム情報と、エントリーポイントデータを生成し、エントリーポイントマップ作成部44に出力する。また、コントローラ41は、システムタイムクロック42より入力されるタイムスタンプに対応するパケットナンバを、タイムユニットマップ作成部43とエントリーポイントマップ作成部44に出力する。
【0124】
タイムユニットマップ作成部43は、コントローラ41から入力されるパケットナンバと、システムタイムクロック42より入力されるタイムスタンプに基づいて、タイムユニットマップを作成する。同様に、エントリーポイントマップ作成部44は、コントローラ41より入力されるパケットナンバ、プログラム情報、およびエントリーポイントデータ、並びにタイムユニットマップ作成部43より入力されるタイムユニットマップに基づいて、エントリーポイントマップを作成する。
【0125】
そして、作成されたトランスポートストリーム、タイムユニットマップおよびエントリーポイントマップは、図27に示した場合と同様に、ファイルシステム部17によりファイル化され、誤り訂正部18により誤り訂正分が付加される。そして変調部19によりさらに変調された後、書き込み部20により、記録媒体21に記録される。
【0126】
次に、以上のようにして、トランスポートストリームファイルと、そのストリームの特徴点データが記録された記録媒体21を再生する動画像再生装置について説明する。図33は、このような動画像再生装置51の構成例を表わしている。読み出し部61は、記録媒体21に記録されているデータを読み出し、復調部62に出力する。復調部62は、読み出し部61より入力されたデータを復調して、誤り訂正部63に出力する。誤り訂正部63は、復調部62より入力されたデータの誤りを訂正し、ファイルシステム部64に供給する。
【0127】
ファイルシステム部64は、誤り訂正部63より入力されたデータを、トランスポートストリームファイルと、特徴点データとに分離し、ストリームファイルをバッファ65に供給するとともに、特徴点データを再生制御部71に出力する。再生制御部71は、端子73からユーザインタフェースを介して、ユーザより入力された指令に対応して、読み出し部61、デマルチプレクサ69、およびAVデコーダ70を制御する。
【0128】
バッファ65は、ストリームファイルからarrival_time_stampに格納されている値を初期値として、カウンタ68に供給し、セットさせる。カウンタ68は、システムタイムクロック部67が発生する27MHzの周波数のクロックを、バッファ65からの初期値を基準としてカウントし、カウント値を比較部66に供給する。
【0129】
比較部66は、カウンタ68より供給されたカウンタの値と、バッファ65より供給されたトランスポートパケットに含まれているarrival_time_stampの値を比較し、両者の値が一致したとき、そのトランスポートパケットをデマルチプレクサ69に出力する。
【0130】
デマルチプレクサ69は、比較部66より入力されたトランスポートストリームファイルから、再生制御部71からの指令に対応するチャネルのビデオデータと、オーディオデータとを抽出し、AVデコーダ70に出力する。AVデコーダ70は、デマルチプレクサ69より入力された、ビデオデータとオーディオデータをデコードし、端子72から出力する。
【0131】
次に、その動作について説明する。記録媒体21には、図27(または図32)の動画像記録装置1で記録したトランスポートストリームファイルと、そのストリームの特徴点データが記録されている。トランスポートストリームファイルには、1つまたは複数のプログラムが多重化されている。
【0132】
はじめに再生制御部71は、読み出し部61に対して、ストリームの特徴点データを読み出すように指示する。このとき、読み出し部61は、記録媒体21からストリームの特徴点データを読み出し、復調部62に出力する。復調部62は、入力されたデータを復調し、誤り訂正部63に出力する。誤り訂正部63は、入力されたデータの誤りを訂正し、ファイルシステム部64に供給する。ファイルシステム部64は、入力されたストリーム特徴点データを再生制御部71に出力する。
【0133】
端子73からは、ユーザインタフェースによって再生を指定されたプログラム番号が入力され、それが再生制御部71へ入力される。再生制御部71は、そのプログラムのPMTのトランスポートパケットのPID 、プログラムを構成するビデオのトランスポートパケットのPIDとstream_type、プログラムを構成するオーディオのトランスポートパケットのPIDとstream_type、並びにPCRのPIDを、特徴点データから読み出し、デマルチプレクサ69とAVデコーダ70へ出力する。
【0134】
さらに、再生制御部71は、読み出し部61に対して、トランスポートストリームファイルを読み出すように指示する。この指令に対応して、読み出し部61は、記録媒体21からトランスポートストリームファイルを読み出す。このデータは、上述した場合と同様に復調部62、誤り訂正部63、ファイルシステム部64の処理を経て、バッファ65へ入力される。
【0135】
バッファ65は、入力されたトランスポートストリームファイルから、arrival_time_stampに記憶されている値を読み出し、カウンタ68に初期値として供給し、セットさせる。カウンタ68は、この初期値を基準として、システムタイムクロック部67が発生するクロックをカウントし、そのカウント値を比較部66に供給する。比較部66は、バッファ65より供給されるトランスポートストリームファイルから、arrival_time_stampの値を読み出し、カウンタ68から供給されるカウンタ値と比較する。両者の値が一致するタイミングで、比較部66は、トランスポートストリームファイルを、デマルチプレクサ69に出力する。
【0136】
デマルチプレクサ69は、ユーザインタフェースにより指定されたプログラムを構成するビデオとオーディオのトランスポートパケットを、入力されたトランスポートストリームから分離し、それをAVデコーダ70へ入力する。AVデコーダ70は、ビデオストリームとオーディオストリームを復号し、再生ビデオ信号と再生オーディオ信号として端子72から出力する。
【0137】
ユーザインタフェースによってランダムアクセス再生が指示された場合、再生制御部71は、内部に記憶されているストリームの特徴点データの内容に基づいて、記録媒体21からのデータの読み出し位置を決定し、ランダムアクセス制御情報を読み出し部61へ入力する。例えば、ユーザによって選択されたプログラムを所定の時刻から途中再生する場合、再生制御部71は、タイムユニットマップに基づいて、指定された時刻に対応するトランスポートストリームのアドレスを計算し、そのアドレスからデータを読み出すように読み出し部61へ指示する。以下に、その手順を説明する。
【0138】
はじめに、図7に示したタイムユニットマップの場合を説明する。 ゼロ番目のタイムユニットTU0の先頭データの時刻をstart_timeとすれば、N番目(N>0)のタイムユニットの先頭データの時刻は、(start_time+first_time_unit_size+(N-1)* time_unit_size)となる。ユーザから指定された時刻よりもタイムユニットの先頭データの時刻が大きくなるタイムユニットの番号がわかったら、その番号のタイムユニットからデータを読み出せば良いことがわかる。
【0139】
この場合、記録されたストリーム上の0番目のタイムユニットの先頭データのアドレスを0とすれば、N番目のタイムユニットの先頭データのアドレスtime_unit_address(N)は、次の様に計算できる。
【0140】
【数1】

Figure 0004264575
【0141】
次に、図22(D)に示したタイムユニットマップの場合を説明する。
【0142】
この場合、N番目(N>=0)のタイムユニットの先頭データの時刻は、(offset_time+N* time_unit_size)となる。ユーザから指定された時刻よりもタイムユニットの先頭データの時刻が大きくなるタイムユニットの番号がわかったら、その番号のタイムユニットからデータを読み出せば良いことがわかる。N番目のタイムユニットの先頭データのソースパケット番号は、(RSPN_time_unit_start(N)−offset_SPN)となる。ここで、RSPN_time_unit_start(N)は、N番目のタイムユニットについてのRSPN_time_unit_startの値である。
【0143】
また、ユーザによって選択されたプログラムに対応するエントリーポイントマップのデータが存在する場合、再生制御部71は、エントリーポイントデータに基づいて、特殊再生を制御できる。例えば、高速再生の場合、再生制御部71は、エントリーポイント毎のアドレスのストリームデータを順次連続して読み出すように読み出し部61へ指示する。
【0144】
図34は、この場合の再生制御部71の動作を表わしている。再生制御部71は、ステップS61で、ユーザからの指令に対応して、内蔵するメモリに、再生するプログラムのprogram_numberをセットする。
【0145】
再生制御部71は、ステップS62で、paesed_program_flagから、そのプログラムのエントリーポイントデータが存在するか否かを調べる。存在する(paesed _program_flag=1である)場合は、ステップS63へ進む。エントリーポイントデータが存在しない場合は、エントリーポイントマップを使用したデータアクセスはできないので、処理は終了される。
【0146】
再生制御部71は、ステップS63で、ユーザにより指定された時刻から読み出し開始するタイムユニットの番号TNを上述のようにして計算する。すなわち、図7に示したタイムユニットマップの場合、start_time+first_time_unit_size+(N-1)*time_unit_sizeの値(タイムユニットの先頭の時刻)が、指定された時刻よりも大きくなるタイムユニットの番号TNが計算される。または、図22(D)に示したタイムユニットマップの場合、(offset_time+N* time_unit_size)が、指定された時刻よりも大きくなるタイムユニットの番号TNが計算される。
【0147】
再生制御部71は、ステップS64で、TN番目のタイムユニットに、そのプログラムのエントリーポイントが存在するか否かを、entry_point_flagから調べる。エントリーポイントが存在する(entry_point_flag=1である)場合は、ステップS65へ進み、存在しない場合は、ステップS67へ進む。
【0148】
再生制御部71は、エントリーポイントが存在する場合、ステップS65で、entry_point_data()からエントリーポイントのストリームデータを読み出すアドレスを計算する。ストリームデータの読み出し開始アドレスは、I_start_addressであり、読み出し終了アドレスは、I_end_address、P1_end_address、またはP2_end_addressである。
【0149】
再生制御部71は、ステップS66で、ステップS65で計算したアドレスに基づいて、エントリーポイントのストリームデータを読み出すように読み出し部61に指示する。読み出し部61はこの指示に対応して読み出し動作を実行する。
【0150】
再生制御部71は、ステップS67で、番号TNをインクリメントする。再生制御部67は、ステップS68で、処理の終了が指令されたか否かを判定し、処理の終了が指令されていない場合は、ステップS64へ戻り、そうでない場合は処理を終了する。
【0151】
読み出し部61は、指定されたランダムアクセスポイントからデータを読み出す。読み出されたデータは、復調部62、誤り訂正部63、ファイルシステム部64バッファ65、比較部66の処理を経て、デマルチプレクサ69へ入力され、AVデコーダ70で復号され、出力される。
【0152】
このステップS63の計算処理の詳細について、図7に示したタイムユニットマップの場合を、図35と図36のフローチャートを参照してさらに説明する。ステップS81において、再生制御部71に、端子73からprogram_numberと、再生開始時刻Tstが入力されると、ステップS82において、再生制御部71は、ステップS81で入力された再生開始時刻Tstが、特徴点データに含まれる、トランスポートストリームの開始時刻start_time(図3(B))と等しいか否かを判定する。再生開始時刻Tstが開始時刻start_timeと等しい場合には、ステップS86に進み、再生制御部71は、タイムユニットの番号を表わす変数Nに0を設定し、そのタイムユニット(0番目のタイムユニット)のtime_unit_address(N)に0を設定する。
【0153】
これに対して、ステップS82において、再生開始時刻Tstが開始時刻starttimeと等しくないと判定された場合、ステップS83に進み、再生制御部71は、タイムユニットマップのヘッダ部を読み込み、ステップS84において、次の不等式を満たす最小の値Nを計算する。
【0154】
TstΔstart_time+first_time_unit_size+(N−1) time_unit_size
テップS85において、再生制御部71は、タイムユニットマップのデータに基づいて、数1で示す式に従って、time_unit_address(N)を演算する。
【0155】
N番目のタイムユニットの先頭データの時刻time_unit_address(N)が求められた時、ステップS87において、再生制御部71は、N番目のタイムユニットのアドレスtime_unit_address(N)からのデータ読み出しを、読み出し部61に指示する。
【0156】
読み出し部61は、再生制御部71からの指令に対応して、ステップS88において、アドレスtime_unit_address(N)からのトランスポートストリームを記録媒体21から読み出す。読み出されたデータは、復調部62、誤り訂正部63、ファイルシステム部64、バッファ65、比較部66を介して、デマルチプレクサ69に供給される。
【0157】
ステップS89において、再生制御部71は、デマルチプレクサ69に対して、ユーザより再生が指示された、プログラムのprogram_numberを出力する。デマルチプレクサ69は、ステップS90において、再生制御部71より指示された、program_numberのプログラムのトランスポートパケットを分離し、AVデコーダ70に出力する。ステップS91において、AVデコーダ70は、デマルチプレクサ69より入力されたデータをデコードし、端子72から出力する。
【0158】
また、図34のフローチャートのステップS63の計算処理の詳細について、図22(D)に示したタイムユニットマップの場合を、図37のフローチャートを参照してさらに説明する。
【0159】
図37のフローチャートは、図35と図36のフローチャートのステップS82,S84,S85を、それぞれステップS102,S104,S105へ変更したものである。これら以外は、図37のフローチャートは、図35と図36のフローチャートと同じである。以下では、ステップS102,S104,S105の各ステップについてのみ説明する。
【0160】
ステップS102では、再生開始時刻Tstがタイムユニットマップの開始時刻offset_timeと比較される。
【0161】
ステップS104においては、次の不等式を満たす最小の値Nが計算される。Tst<= offset_time + N*time_unit_size
【0162】
ステップS85においては、再生制御部71が、タイムユニットマップのデータに基づいて、次に示す式に従って、time_unit_address(N)を演算する。
time_unit_address(N)=RSPN_time_unit_start(N)−offset_SPN
【0163】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアとしての動画像記録再生装置に組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどにインストールされる。
【0164】
次に、図38を参照して、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられる記録媒体について、そのコンピュータが汎用のパーソナルコンピュータである場合を例として説明する。
【0165】
プログラムは、図38(A)に示すように、コンピュータ301に内蔵されている記録媒体としてのハードディスク302や半導体メモリ303に予めインストールした状態でユーザに提供することができる。
【0166】
あるいはまた、プログラムは、図38(B)に示すように、フロッピーディスク311、CD-ROM(Compact Disk-Read Only Disk)312、MO(Magneto-Optical)ディスク313、DVD(Digital Versatile Disk)314、磁気ディスク315、半導体メモリ316などの記録媒体に、一時的あるいは永続的に格納し、パッケージソフトウエアとして提供することができる。
【0167】
さらに、プログラムは、図38(C)に示すように、ダウンロードサイト321から、デジタル衛星放送用の人工衛星322を介して、コンピュータ323に無線で転送したり、ローカルエリアネットワーク、インターネットといったネットワーク131を介して、コンピュータ323に有線で転送し、コンピュータ323において、内蔵するハードディスクなどに格納させることができる。
【0168】
本明細書における記録媒体とは、これら全ての記録媒体を含む広義の概念を意味するものである。
【0169】
また、本明細書において、記録媒体により提供されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0170】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0171】
このように、1つまたは複数のトランスポートストリームが記録された記録媒体にランダムアクセスして再生する場合、Iピクチャやオーディオフレームの開始位置を効率よくサーチすることができるので、ユーザ入力に対して応答の速いランダムアクセス再生をすることができる。
【0172】
【発明の効果】
以上の如く、本発明のデータ処理装置、データ処理方法、および第1の記録媒体のプログラムによれば応答の速いランダムアクセスが可能となる。
【0173】
本発明のデータ再生装置、データ再生方法、および第2の記録媒体のプログラムによれば迅速なランダム生成が可能となる。
【図面の簡単な説明】
【図1】従来のトランスポートストリームのパケットを説明する図である。
【図2】従来の記録されるトランスポートストリームを説明する図である。
【図3】本発明のトランスポートストリームを説明する図である。
【図4】本発明の記録されるトランスポートストリームを説明する図である。
【図5】 Source Packetのシンタックスを示す図である。
【図6】 TP_extra_headerのシンタックスを示す図である。
【図7】タイムユニットマップの例を示す図である。
【図8】タイムユニット毎のオフセットアドレスを説明する図である。
【図9】エントリーポイントマップの例を示す図である。
【図10】エントリーポイントデータを説明する図である。
【図11】データの消去を説明する図である。
【図12】データを消去した時のタイムユニットマップの例を示す図である。
【図13】 TimeUnitMapHeader()のシンタックスを示す図である。
【図14】 TimeUnitMapData()のシンタックスを示す図である。
【図15】 EntryPointMapHeader()のシンタックスを示す図である。
【図16】 EntryPointMapData()のシンタックスを示す図である。
【図17】 entry point data()のシンタックスを示す図である。
【図18】 EntryPointMapData()のシンタックスを示す図である。
【図19】トランスポートストリームファイルのエントリーポイントを説明する図である。
【図20】 EntryPointMapDataの例を示す図である。
【図21】 EntryPointMapDataの例を示す図である。
【図22】本発明のトランスポートストリームを説明する図である。
【図23】 TimeUnitMapHeader()のシンタクスを示す図である。
【図24】 TimeUnitMapData()のシンタクスを示す図である。
【図25】データの消去を説明する図である。
【図26】データを消去したときのタイムユニットマップの例を示す図である。
【図27】本発明を適用した動画像記録装置の構成例を示すブロック図である。
【図28】図27の動画像記録装置の動作を説明するフローチャートである。
【図29】図27の動画像記録装置の動作を説明するフローチャートである。
【図30】図27の動画像記録装置の動作を説明するフローチャートである。
【図31】トランスポートストリームファイルのタイムユニットマップとエントリーポイントマップの関係を説明する図である。
【図32】本発明を適用した動画像記録装置の他の構成例を示すブロック図である。
【図33】本発明を適用した動画像再生装置の構成例を示すブロック図である。
【図34】図33の動画像再生装置の動作を説明するフローチャートである。
【図35】図33の動画像再生装置の動作を説明するフローチャートである。
【図36】図33の動画像再生装置の動作を説明するフローチャートである。
【図37】図33の動画像再生装置の動作を説明するフローチャートである。
【図38】記録媒体を説明する図である。
【符号の説明】
1 動画像記録装置, 11 PIDフィルタ, 12 ストリーム解析部, 14タイムスタンプ発生部, 15 タイムスタンプ付加部, 16 エントリーポイントマップ作成部, 17 ファイルシステム部, 21 記録媒体, 23 タイムユニットマップ作成部, 24 カウンタ, 40 多重化部, 41 コントローラ, 42 システムタイムクロック部, 43 タイムユニットマップ作成部, 44エントリーポイントマップ作成部, 61 読み出し部, 69 デマルチプレクサ, 70 AVデコーダ, 71 再生制御部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data processing apparatus and method, and a recording medium, and more particularly, by extracting feature point information from an encoded stream so that even when a plurality of programs are multiplexed, quick random access is possible. The present invention relates to a data processing apparatus and method, and a recording medium.
[0002]
[Prior art]
MPEG (Moving Picture Experts Group) 2 transport streams are used in multi-channel digital television broadcasts such as European DVB (Digital Video Broadcast) and Japanese digital BS broadcasts. The transport stream is a stream in which transport packets are continuous, and the transport packet is, for example, a packetized MPEG2 video stream or MPEG1 audio stream. One or more AV (Audio Visual) programs are multiplexed in one transport stream transmitted by broadcast radio waves. In general, the AV programs for each channel are independent of each other.
[0003]
Therefore, if a transport stream sent by broadcasting is received and recorded as it is by a home receiver, programs for all channels of the transport stream can be recorded simultaneously. Also, by recording the transport stream of several channels selected by the user from the transport stream sent by broadcasting, the program of any number of selected channels can be recorded simultaneously. can do.
[0004]
FIG. 1 shows an example of a conventional transport stream recording method. FIG. 1A shows a transport stream in which a plurality of AV programs are multiplexed. Here, the horizontal axis represents time, which is divided for each time unit TUi (i = 0, 1, 2,...) Having an interval of Δt. One or more AV programs are selected from the input transport stream. The selected transport packet is indicated by hatching. As shown in FIG. 1B, the selected transport packet generally appears at irregular timing, and the number of transport packets for each time unit TUi changes.
[0005]
The selected transport packets for each time unit TUi with an interval of Δt are recorded on the recording medium with a close interval, as shown in FIG. At this time, each transport packet is recorded with a time stamp indicating the time on each stream. This time stamp is specified in, for example, DV (Digital Video) format (Specification Of Consumer-Use Digital VCRs using 6.3 mm magnetic tape (HD digital VCR conference), PART7DVB Specifications of Consumer-Use Digital VCR). This is the same as the 4-byte-long TSP_extra_header added to the transport packet.
[0006]
In FIG. 2, the horizontal axis is an address indicating the byte position of the recorded transport stream. When a variable bit rate transport stream as shown in FIG. 1 (B) is input, the recording apparatus records dummy data at a fixed recording rate, as shown in FIG. Therefore, the amount of data with respect to the passage of time of the recorded transport stream is proportional. That is, assuming that the amount of recording data per time unit is x, the byte position of the head data of the n-th (n = 0, 1, 2,...) Time unit is n times x.
[0007]
[Problems to be solved by the invention]
Thus, since the conventional recording method inserts dummy data to obtain a constant recording rate, the transport stream recording efficiency is not good. However, if dummy data is not inserted, the elapsed time of the recorded transport stream is not proportional to the amount of data in the file. Therefore, when accessing data at a predetermined position on the time axis of the transport stream, The problem of poor accessibility occurs.
[0008]
In general, in an MPEG2 video stream, an I picture is encoded at intervals of about 0.5 seconds, and other pictures are encoded as a P picture or a B picture. Therefore, when a video signal is reproduced at high speed from a recording medium on which an MPEG2 video stream is recorded, an I picture must be searched. However, when playback is performed by random access from a recording medium on which a transport stream such as digital broadcasting is recorded, it is difficult to efficiently search for the start byte of the I picture. That is, the syntax of the video stream read from the random byte position of the transport stream on the recording medium is analyzed, and the start byte of the I picture or audio frame is searched. For this reason, in some cases, it takes time to search for an I picture, and it is difficult to perform random access reproduction with quick response to user input.
[0009]
The present invention has been made in view of such a situation, and enables quick random access even when a plurality of programs are multiplexed.
[0010]
[Means for Solving the Problems]
  The data processing apparatus of the present invention indicates a classification unit that divides the input encoded stream for each predetermined time unit, and an address of data for each time unit of the encoded stream divided by the classification unit. A first creation means for creating a time unit map;Second creation means for creating an entry point map subordinate to the time unit map, indicating a position of an entry point of the encoded stream;WithRu.
[0011]
The time unit map can hold the packet number of the first packet for each time unit as an address of data for each time unit.
[0012]
The time unit map can hold the address of the data at the head of the time unit and the address interval corresponding to the amount of data included in the time unit.
[0013]
A filing means for filing a time unit map with the encoded stream may be further provided.
[0014]
  The data filed by the file forming meansinformationA recording means for recording on the recording medium can be further provided.
[0015]
The first creating means may change the time unit map when the encoded stream is edited.
[0016]
in frontThe entry point map may include an address interval from the beginning of the entry point time unit.
  The entry point represents the start address of the I picture included in the time unit, and the entry point map represents the interval from the start address of the I picture to the end address of the I picture, or the time unit including the I picture. It is possible to include an interval up to the end address of the P picture after that.
  The entry point map may include a flag indicating the presence / absence of an entry point in the time unit.
[0017]
In the case where the encoded stream is an encoded stream generated by multiplexing a plurality of programs, the second creation means can create an entry point map for each program.
[0018]
The second creation means may change the entry point map when the encoded stream is edited.
[0019]
  The data processing method according to the present invention includes a division step for dividing an input encoded stream for each predetermined time unit, and a time indicating a data address for each time unit of the encoded stream divided by the processing of the division step. Create a unit mapFirstCreation steps andA second creation step for creating an entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream;IncludingMu.
[0020]
  The program of the first recording medium of the present invention includes a segmentation step for segmenting an input encoded stream for each predetermined time unit, and data for each time unit of the encoded stream segmented by the process of the segmentation step. Create a time unit map showing addressesFirstCreation steps andA second creation step for creating an entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream;includingHave the computer execute the process.
[0021]
  The data reproducing apparatus of the present inventioninformationBased on the first reproduction means for reproducing the time unit map indicating the address of the data for each time unit of the encoded stream recorded on the recording medium, and the time unit map reproduced by the first reproduction means. ,informationSecond playback means for playing back an encoded stream recorded on a recording medium from an arbitrary positionThe first reproducing means further reproduces the entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream, and the second reproducing means is reproduced by the first reproducing means. Based on the time unit map and entry point map, the encoded stream recorded on the information recording medium is reproduced from an arbitrary position..
[0023]
  The data reproduction method of the present inventioninformationA first reproduction step for reproducing the time unit map indicating the address of the data for each time unit of the encoded stream recorded on the recording medium, and the time unit map reproduced by the processing of the first reproduction step On the basis of,informationA second reproduction step of reproducing the encoded stream recorded on the recording medium from an arbitrary position.In the process of the first reproduction step, the entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream is further reproduced. In the process of the second reproduction step, the first reproduction means is provided. Based on the time unit map and entry point map reproduced by the above, the encoded stream recorded on the information recording medium is reproduced from an arbitrary position..
[0024]
  The program of the second recording medium of the present invention isinformationA first reproduction step for reproducing the time unit map indicating the address of the data for each time unit of the encoded stream recorded on the recording medium, and the time unit map reproduced by the processing of the first reproduction step On the basis of,informationA second reproduction step of reproducing the encoded stream recorded on the recording medium from an arbitrary position.In the process of the first reproduction step, the entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream is further reproduced. In the process of the second reproduction step, the first reproduction means is provided. Based on the time unit map and the entry point map reproduced by the above, the computer is caused to execute a process of reproducing the encoded stream recorded on the information recording medium from an arbitrary position.
  In the data processing apparatus, the data processing method, and the program of the first recording medium of the present invention, the input encoded stream is divided for each time unit, and the time unit indicates the address of the data for each time unit Indicates the location of the map and the entry point of the encoded stream,An entry point map subordinate to the time unit map is created.
[0025]
  Data of the present inventionRegenerationEquipment, dataRegenerationIn the method and the program of the second recording medium,informationTime unit map indicating the address of data for each time unit of the encoded stream from the recording medium, and the position of the entry point of the encoded stream,An entry point map subordinate to the time unit map is reproduced, and the encoded stream is reproduced from an arbitrary position based on the map..
[0026]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described by taking an example in which the encoded stream is a multiplexed stream in which one or a plurality of programs are multiplexed. However, the present invention is not limited to an elementary stream such as an MPEG video stream. Even so, it can be applied.
[0027]
First, the basic principle of the present invention will be described. The moving image recording apparatus of the present invention records a time on a stream as a predetermined time unit (unit time) when a transport stream in which one or more programs are multiplexed is recorded on a recording medium such as a disk or a tape. Divide every time and calculate the address on the data stream for each time unit. Then, a time unit map indicating addresses on the data stream for each time unit is created. Furthermore, an entry point map indicating the location of the entry point (random access point) for each program of the transport stream to be recorded is created. The entry point map has a structure subordinate to the time unit map. This time unit map will be described below.
[0028]
FIG. 3 shows a transport stream in which a plurality of AV programs are multiplexed. Here, the horizontal axis represents time, and is divided into time units TUi (i = 0, 1, 2,...) Having an interval of Δt. The number i following the character TU indicates the time order of the time unit TU. At the time of the first original recording, the time lengths of all time units TU are the same value Δt. The magnitude of the value Δt is, for example, 0.5 seconds. One or more AV programs are selected for recording from the input transport stream. The selected transport packet is indicated by hatching. As shown in FIG. 3B, the selected transport packet generally appears at irregular timing, and the number of transport packets for each time unit TUi at intervals of Δt changes. In the actual transport stream, when the time length of the time unit is assumed to be about 0.5 seconds, the number of transport packets included in the time unit is much larger than the example shown in FIG. Simplified and illustrated.
[0029]
The selected transport packets are recorded on the recording medium at intervals as shown in FIG. At this time, a time stamp (Arrival Time Stamp) indicating the time on each stream is added to each transport packet. The arrival time stamp is the same as the 4-byte long TSP_extra_header added to the transport packet defined in the DV format, for example. In this specification, a transport packet to which a 4-byte length header including Arrival_Time_Stamp is added is referred to as a source packet. Since the transport packet is 188 bytes long, the source packet is 192 bytes long.
[0030]
The syntax of the source packet is composed of TP_extra_header () and transport_packet () as shown in FIG. TP_extra_header () is configured as shown in FIG. 6, and is composed of copy_permission_indicator and arrival_time_stamp.
[0031]
In FIG. 4, the horizontal axis is an address indicating the byte position of the recorded transport stream. Further, the top address of the transport packet input first for each time unit is shown on the horizontal axis. In this example, four, three, or six transport packets are recorded in time units TU0, TU1, and TU2, respectively. A transport packet input across two time units is included in the front time unit. A (TU0), A (TU1), and A (TU2) are the start addresses of the transport packets input at the beginning of the time units TU0, TU1, and TU2, or the start addresses of the source packets that include these transport packets, respectively. It shall be expressed as
[0032]
FIG. 7 shows an example of a time unit map, that is, a table of the head address of data for each time unit of the recorded transport stream. Here, time_unit_address indicates the address of the head data of the time unit on the recorded stream. In the time unit map, the data length delta_time_unit_address for each time unit is tabulated.
[0033]
In this example, the data length of the time unit TU0 is the difference between the start address A (TU1) of the time unit TU1 and the start address A (TU0) of the time unit TU0 (A (TU1) -A (TU01)). It is represented by Similarly, the data length of the time unit TU1 is represented by the difference between the start address A (TU2) of the time unit TU2 and the start address A (TU1) of the time unit TU1 (A (TU2) -A (TU1)). The data length of the time unit TU2 is represented by a difference (end_address-A (TU2)) between the last address end_address of the time unit TU2 and the first address A (TU2) of the time unit TU2.
[0034]
Next, the above entry point map will be described. The transport stream shown in FIG. 8 is the same transport stream as the transport stream shown in FIG. Here, it is assumed that the entry point has started in the transport packet indicated by hatching. Specifically, it is assumed that an MPEG video sequence header and I picture data are started at an entry point. When an entry point exists in a predetermined time unit, an offset address from the start address of the time unit data to the entry point address is calculated. That is, in the example of FIG. 8, entry points (I pictures) exist in the time units TU0 and TU2. Therefore, in the time unit TU0, the interval a from the head address A (TU0) to the head address I_start_address of the I picture is calculated as an offset address. At the same time, in the time unit TU2, an interval b from the head address A (TU2) to the head address I_start_address of the I picture is calculated as an offset address.
[0035]
FIG. 9 shows an example of an entry point map, that is, a table of offset addresses up to the entry point for each time unit. entry_point_flag is set to “1” when an entry point exists in the corresponding time unit TUi, and is set to “0” when it does not exist. For a time unit whose entry_point_flag is “1”, an offset address I_start_offset_from_time_unit_address from the head address time_unit_address of the time unit data to the entry point address I_start_address is calculated as shown in the following equation.
[0036]
I_start_offset_from_time_unit_address
= I_start_address-time_unit_address
[0037]
Further, for each entry point, the end address I_end_address of the I picture data of the entry point, the next P or I picture end address P1_end_address of the entry point I picture, the next P or I picture of the entry point I picture The end address P2_end_address is calculated as shown in the following equation.
[0038]
I_end_offset_address = I_end_address-I_start_address
P1_end_offset_address = P1_end_address-I_start_address
P2_end_offset_address = P2_end_address-I_start_address
[0039]
Specific examples of these addresses are shown in FIG. FIG. 10 shows MPEG video data starting from the beginning of a predetermined time unit. Here, I, P, and B represent an I picture, a P picture, or a B picture, respectively, and the subscript numbers indicate the display order of the pictures. In this time unit, there is an I picture at the entry point indicated by I2. The next P picture after I picture I2 is P5, and the next P picture after I picture I2 is P8. At this time, I_start_offset_from_time_unit_address, I_end_offset_address, P1_end_offset_address, and P2_end_offset_address calculated by the above formula have the relationship shown in the figure.
[0040]
That is, I_end_offset_address is a value obtained by subtracting the start address I_start_address of the I picture I2 from the end address I_end_address of the I picture I2. P1_end_offset_address is a value obtained by subtracting the start address I_start_address of the I picture I2 from the end address P1_end_address of the P picture P5. Further, P2_end_offset_address is a value obtained by subtracting the start address I_start_address of the I picture I2 from the end address P2_end_address of the P picture P8.
[0041]
  I_start_offset_from_time_unit_address is the entry point addressI_start_addressFrom this, the value is obtained by subtracting the start address time_unit_address of the data of the time unit.
[0042]
When a plurality of programs are included in the transport stream to be recorded, entry point information is created separately for each program. In consideration of the case where entry point data cannot be prepared for all programs, the entry point map includes information (parsed_program_flag) indicating whether or not entry point data exists for each program.
[0043]
When the transport stream recorded on the recording medium is edited, the time unit map is changed (updated). Next, the method will be described. FIG. 11A shows an example in which the first two packets and the last three packets of the transport stream shown in FIG. 4 are deleted. FIG. 11B shows the transport stream after the packet is partially erased in this way. FIG. 12 shows a time unit map of the transport stream of FIG. When the data up to the middle of the time unit is erased in this way, the time length (first_time_unit_size) of the first time unit TU0 changes, and this is rewritten. In the case of FIG. 11B, the time length of the time unit TU0 is changed to the difference value between the time stamp of the first packet Pb of the time unit TU1 and the time stamp of the first packet Pa of the time unit TU0 after erasure. The Also, as shown in FIG. 12, the delta_time_unit_address of the time unit TU0 is the difference value between the address A (TU1) of the first packet Pb of the time unit TU1 and the address C of the first packet Pa of the time unit TU0 after erasure ( A (TU1) -C). When the time unit map is changed, the entry point map related thereto is also changed.
[0044]
Next, examples of syntax of the above time unit map are shown in FIGS. FIG. 13 and FIG. 14 show the header part (TimeUnitMapHeader ()) and the data part (TimeUnitMapData ()) of the time unit map, respectively. When recording the time unit map as a file, the header portion and the data portion may be recorded as one file, or may be recorded as separate files. Start_time and end_time of TimeUnitMapHeader () indicate the start time and end time of this time unit map, respectively, for example, the recording start time and the recording end time when a certain transport stream is recorded. first_time_unit_size indicates the time length of the first time unit. time_unit_size indicates the time length of the second and subsequent time units. number_of_time_unit_entries indicates the number of time units in the transport stream. In TimeUnitMapData (), the number of delta_time_unit_address (FIG. 7) indicated by number_of_time_unit_entries is written.
[0045]
A first example of the above entry point map syntax is shown in FIGS. FIG. 15 shows the header part (EntryPointMapHeader ()) of the entry point map, and FIG. 16 shows the data part (EntryPointMapData ()) of the entry point map. FIG. 17 further shows the syntax of entry_point_data () of FIG. When recording the entry point map as a file, the header portion and the data portion may be recorded as one file, or may be recorded as separate files.
[0046]
The number_of_programs of EntryPointMapHeader () in FIG. 15 indicates the number of programs in the transport stream. The third to sixth lines of this syntax have information indicating whether an entry map table exists for each program to be recorded. Program_number on the fourth line is information for identifying (identifying) a program, and is information written in a PMT (Program Map Table) of the corresponding program. Parsed_program_flag on the fifth line indicates whether or not entry point data of the program exists.
[0047]
From the 8th line to the 10th line, PMT information of each program to be recorded follows. MPEG2_TS_program_map_section () is a PMT defined in the MPEG2 systems standard, extracted from the transport stream to be recorded. Here, NUMBER_OF_ParsedPrograms is the number of programs whose parsed_program_flag is “1”. The order in which the data appears in the NUMBER_OF_ParsedPrograms loop on the eighth line is the order in which program_number whose parsed_program_flag is “1” appears in the number_of_programs loop on the third line.
[0048]
EntryPointMapData () in FIG. 16 describes entry point data for each program to be recorded. The entry point parameters for one time unit are entry_point_flag and entry_point_data (). The contents of entry_point_data () for one time unit are entry_point_time_stamp, I_start_offset_from_time_unit_address, I_end_offset_address, P1_end_offset_address, and P2_end_offset_address, as shown in FIG. Here, entry_point_time_stamp is calculated based on the time on the stream of the transport packet at the entry point or the PTS (Presentation Time Stamp) of the I picture at the entry point. PTS is information added to the header of the MPEG2 Systems standard PES packet.
[0049]
FIG. 18 shows a second example of the entry point map syntax described above. The configuration of EntryPointMapHeader () and entry_point_data () is the same as that shown in FIG. 15 or FIG. 17 in the first example. As is apparent from a comparison between FIG. 18 and FIG. 16, the arrangement of entry point data for each program is different from the first example of FIG.
[0050]
Next, an example of the arrangement of entry map data in each of the first example and the second example in the following states will be described. Here, as shown in FIG. 19, three programs (program # 1, program # 2, program # 3) are multiplexed in the transport stream, and time units TUi (i = 0, 1, It is assumed that there is an entry point for each program every 2, 3). In this case, each parameter is as follows.
[0051]
number_of_time_unit_entries = 4
number_of_programs = 3
program_number = 1: parsed_program_flag = 1
program_number = 2: parsed_program_flag = 1
program_number = 3: parsed_program_flag = 1
NUMBER_OF_ParsedPrograms = 3
[0052]
FIG. 20 shows an entry point map in the case of the first example (example of FIG. 16). In this case, the entry point data list is separated for each program. That is, as shown in FIG. 20 (A), entry_point_flag of program # 1 has entry_point_data # 1-1 to entry_point_data # 1-4 as entry_point_data in each of time units TU0 to TU3. “1”.
[0053]
Entry_point_data # A-B represents entry_point_data () for the Bth entry point of program_number = A.
[0054]
As shown in FIG. 20 (B), entry_point_data of program # 2 is “0” because entry_point_data does not exist in time units TU1 and TU3. On the other hand, entry_point_data # 2-1 and entry_point_data # 2-2 exist in time units TU0 and TU2, respectively, and entry_point_flag is set to “1”.
[0055]
Further, entry_point_data does not exist in the time units TU0 and TU2 of EntryPointMapData of program # 3, so entry_point_flag is set to “0”. Since entry_point_data # 3-1 and entry_point_data # 3-2 exist in the time units TU1 and TU3, entry_point_flag is set to “1”.
[0056]
These entry_point_flag and entry_point_data are described in EntryPointMapData.
[0057]
FIG. 21 shows an entry point map in the case of the second example (example of FIG. 18).
[0058]
In this case, the entry point data of each program is arranged in time order for each time unit, and the entry point data list is in one form. That is, in the time unit TU0, three programs program # 1 to # 3 are described, and entry_point_data corresponding to entry_point_flag is described for each of them. In this example, since entry_point_data does not exist in program # 3, its entry_point_flag is set to “0”, and entry_point_data # 1-1 and # 2-1 exist for program # 1 and # 2, entry_point_flag is set to “1”.
[0059]
In other time units TU1 to TU3, entry_point_flag and entry_point_data are described for each of program # 1 to # 3.
[0060]
Next, another example of the time unit map will be described with reference to FIG. 22A and 22B show the same configuration as that of FIGS. 3A and 3B described above. FIG. 22C shows source packet data recorded on the recording medium, as in FIG. The relationship between the transport packet and the source packet is as shown in FIG. In FIG. 22C, the horizontal axis indicates the number of the recorded source packet. The source packet number is the order in which the source packets are recorded, starting from zero and incrementing by one in the order. The start addresses A (TU0), A (TU1), and A (TU2) of data for each time unit are counted in units of source packet numbers and become 0, 4, and 7, respectively.
[0061]
FIG. 22D shows an example of a time unit map, that is, a table of a head address of data for each time unit of a recorded transport stream. Here, RSPN (Relative Source Packet Number) time_unit_start indicates the address of the head data of the time unit on the recorded stream. In the time unit map, RSPN_time_unit_start is tabulated in the order of time units from the beginning of the recorded transport stream. In the case of FIG. 22D, values are in the order of A (TU0), A (TU1), and A (TU2). Line up.
[0062]
Next, examples of the syntax of the above time unit map are shown in FIGS. FIG. 23 and FIG. 24 show the header part (TimeUnitMapHeader ()) and the data part (TimeUnitMapData ()) of the time unit map, respectively. When recording the time unit map as a file, the header portion and the data portion may be recorded as one file, or may be recorded as separate files.
[0063]
23, offset_SPN of TimeUnitMapHeader () indicates the number of the first source packet of the recorded transport stream. In this embodiment, RSPN_time_unit_start is represented by a source packet number relative to offset_SPN. When the time unit map is created for the first time, the initial value of offset_SPN is zero. The next offset time indicates the start time of this time unit map, and indicates the start time of the first time unit.
[0064]
time_unit_size indicates the time length of the time unit of this time unit map.
[0065]
number_of_time_unit_entries indicates the number of time units in the recorded transport stream.
[0066]
In the TimeUnitMapData () in FIG. 24, the number of RSPN_time_unit_start (FIG. 22D) indicated by number_of_time_unit_entries is written.
[0067]
Next, a method for changing (updating) the above time unit map when the recorded transport stream is edited will be described. FIG. 25A shows an example in which the top two packets of the transport stream shown in FIG. FIG. 25B shows the transport stream after the packet is partially erased in this way.
[0068]
FIG. 26 shows a time unit map of the transport stream in the case of FIGS. When the data of the head part of the time unit is erased in this way, the data of RSPN_time_unit_start that refers to the time unit including the data of the erased part is erased. In the case of FIG. 26B, the data of RSPN_time_unit_start of TU0 is deleted. Accordingly, number_of_time_unit_entries is decremented by the number of deleted RSPN_time_unit_start data.
[0069]
Further, the above-described offset_SPN and offset_time are changed. In the case of FIG. 26A, offset_SPN is zero, and offset_time is set to zero of the start time of the time unit of TU0. In the case of FIG. 26B, offset_SPN is changed to C (= 2), which is the original source packet number of the source packet that is newly at the head. Also, offset_time is changed to the first time unit, that is, ΔT of the original start time of TU1 in this example. Note that time_unit_size is not changed before and after editing.
[0070]
When the time unit map is changed, the entry point map related thereto is also changed.
[0071]
Next, FIG. 27 shows a configuration example of the moving image recording apparatus 1 that creates the above-described table from the input transport stream and records it on the recording medium together with the transport stream.
[0072]
One or more AV programs are multiplexed in the transport stream input from the terminal 10. The terminal 22 receives the channel (service name) of the AV program selected by the user interface. The number of channels selected here may be one or more.
[0073]
The PID filter 11 extracts a transport packet having a PID (Packet ID) designated by the stream analysis unit 12 from the input transport stream. PID is a 13-bit code at a fixed position in the header of the transport packet, and represents the type of data stored in the payload of the transport packet. First, the PID filter 11 extracts a PAT (Program Association Table) transport packet with PID = 0x0000. In the PAT, the PID of the transport packet of the PMT (Program Map Table) of each program multiplexed in the transport stream is written. The PAT transport packet output from the PID filter 11 is input to the stream analysis unit 12.
[0074]
The counter 24 counts the number of packets from the first packet of the transport stream to be recorded to the current packet, and outputs the current packet number to the time unit map creating unit 23 and the entry point map creating unit 16.
[0075]
The stream analysis unit 12 extracts the PCR from the transport packet that transmits the PCR (Program Clock Reference), and outputs the PCR to the PLL unit 13. When there are a plurality of PIDs of transport packets that transmit the PCR, the PCR is extracted from any one of the PID packets. The PLL unit 13 generates a clock having a frequency of 27 MHz in synchronization with the input PCR and outputs the clock to the time stamp generation unit 14.
[0076]
The time stamp generation unit 14 counts the input clock and generates a time stamp (Arrival_Time_Stamp) corresponding to the count value. If the time stamp of the transport packet to be recorded first is zero, this time stamp represents the elapsed time after recording the transport stream. This time stamp is output to the stream analyzing unit 12, the time stamp adding unit 15, and the time unit map creating unit 23.
[0077]
The time stamp adding unit 15 adds a header including a time stamp indicating the arrival time to the transport packet input from the PID filter 11 and outputs the source packet (FIG. 4) to the file system unit 17.
[0078]
The time unit map creating unit 23 creates the above-described time unit map based on the packet number input from the counter 24 and the time stamp input from the time stamp generating unit 14. The created time unit map is output to the entry point map creation unit 16 and the file system unit 17.
[0079]
The stream analysis unit 12 outputs the following program information for each program to the entry point map creation unit 16. (1) Program_number of the program (2) PID of the transport packet of the PMT of the program (3) PID and stream_type of the transport packet of the video constituting the program (4) PID and stream_type of the transport packet of the audio constituting the program (5) PID of the PCR of the program Here, stream_type is the content written in the PMT, and represents the stream type such as MPEG2 / MPEG1 in the case of video, and the stream such as MPEG1 / AC-3 in the case of audio. Represents a type.
[0080]
The stream analysis unit 12 also creates entry point data for the stream to be recorded and inputs the entry point data to the entry point map creation unit 16. The contents of the entry point data are as shown in FIG. When the time stamp of the entry point is set as the PTS of the entry point, the PTS is extracted from the input stream by the stream analysis unit 12, so that it is not necessary to input the time stamp created by the time stamp generation unit 14 to the stream analysis unit 12. .
[0081]
The entry point map creation unit 16 tabulates entry point data for each program, creates the entry point map described above, and outputs the entry point map to the file system unit 17.
[0082]
Next, the operation will be described. When a transport stream is input from the terminal 10, the PID filter 11 extracts a transport packet including a PID with PID = 0x0000 and outputs the transport packet to the stream analysis unit 12. At this time, the stream analysis unit 12 executes the processing shown in the flowchart of FIG.
[0083]
In step S11, when the stream analysis unit 12 receives the transport packet of PID = 0x0000 from the PID filter 11, the stream analysis unit 12 acquires the PID of the PMT transport packet of each program instructed via the terminal 22 from the PAT. .
[0084]
In step S <b> 12, the stream analysis unit 12 sets the PID of the PMT of each program in the PID filter 11. When the PID filter 11 extracts the transport packet having the PID of the PMT, the PID filter 11 outputs it to the stream analysis unit 12.
[0085]
In step S <b> 13, the stream analysis unit 12 receives a PMT transport packet from the PID filter 11. In the PMT, the PID of a transport packet having a video stream or audio stream constituting the program as a payload and the PID of a packet transmitting a PCR (Program Clock Reference) are written. The stream analysis unit 12 obtains the PID of the transport packet having the video stream and the audio stream constituting each program selected by the user interface in the payload and the PID of the packet transmitting the PCR.
[0086]
In step S14, the stream analysis unit 12 converts the PID of a transport packet having a video stream or audio stream constituting each program selected by the user interface in the payload and the PID of the packet transmitting the PCR into the PID filter 11. Set to.
[0087]
If the PIDs of service information packets that transmit EPG (Electrical Program Guide) or the like are known in advance, these PIDs are also set in the PID filter 11, and these PID packets are also output from the PID filter 11. Is done.
[0088]
In this way, the transport packet extracted by the PID filter 11 is supplied to the counter 24, the stream analysis unit 12, and the time stamp addition unit 15. The counter 24 counts the number of packets from the first packet of the transport stream to be recorded to the current packet, and detects the current packet number. Detected current packet NO. Is supplied to the time unit map creating unit 23 and the entry point map creating unit 16.
[0089]
Further, the stream analysis unit 12 extracts the PCR from the input transport packet and supplies it to the PLL unit 13. The PLL unit 13 generates a clock with a frequency of 27 MHz in synchronization with the input PCR and supplies the clock to the time stamp generation unit 14.
[0090]
The time stamp generation unit 14 counts the input clock and generates a time stamp corresponding to the count value. The time stamp adding unit 15 adds the time stamp generated by the time stamp generating unit 14 indicating the arrival time to the transport packet input from the PID filter 11 and supplies the source packet to the file system unit 17.
[0091]
Based on the packet number input from the counter 24 and the time stamp input from the time stamp generating unit 14, the time unit map creating unit 23 obtains time_unit_address and delta_time_unit_address for each time unit as shown in FIG. The corresponding time unit map is created and supplied to the entry point map creation unit 16 and the file system unit 17. Alternatively, the time unit map creating unit 23 creates a time unit map in which RSPN_time_unit_start for each time unit as shown in FIG. 22D is associated, and supplies the time unit map to the entry point map creating unit 16 and the file system unit 17. To do.
[0092]
The stream analysis unit 12 also supplies the above-described program information for each program to the entry point map creation unit 16.
[0093]
Therefore, the stream analysis unit 12 executes entry point analysis processing as shown in FIGS. 29 and 30.
[0094]
In step S31, the stream analysis unit 12 sets the PID of the video of the program to be recorded and its stream_type in the PID filter 11. Thus, the designated video packet is supplied from the PID filter 11 to the stream analysis unit 12.
[0095]
In step S32, the stream analysis unit 12 initializes the pointer vpp of the video packet and sets vpp = 0. The pointer vpp represents the order of the video packets of the PID currently being processed.
[0096]
In step S33, the stream analysis unit 12 increments the pointer vpp of the video packet (for example, increases by 1).
[0097]
In step S34, the stream analysis unit 12 checks whether or not the MPEG video sequence_header_code (32-bit length “0x000001B3” code) is included in the stream in the payload. When sequence_header_code is not included, the process returns to step S33.
[0098]
If it is determined in step S34 that the payload includes sequence_header_code, the process proceeds to step S35, and the stream analysis unit 12 sets the address of the packet (sequence of the first I picture) including sequence_header_code as I_start_address (FIG. 10).
[0099]
In step S36, the stream analysis unit 12 increments the pointer vpp of the video packet.
[0100]
In step S37, the stream analysis unit 12 checks whether or not the data of the I picture has been completed. If the data of the I picture has not been completed yet, the process returns to step S36. If the data of the I picture has been completed, the process proceeds to step S38.
[0101]
In step S38, the stream analysis unit 12 sets the address of the packet where the I picture ends as I_end_address (FIG. 10). As described above, the address of the first I picture is determined.
[0102]
In step S39 (the video pointer vpp is not incremented), the stream analysis unit 12 checks whether or not the next video packet includes a sequence header code. If the packet includes a sequence header code, the process proceeds to step S47. If the packet does not include a sequence header code, the process proceeds to step S40.
[0103]
In step S40, the stream analysis unit 12 increments the video packet pointer vpp.
[0104]
In step S41, the stream analysis unit 12 checks whether the P picture or the I picture has been completed. If the P picture or I picture has not ended, the process returns to step S39. If the P picture or I picture has been completed, the process proceeds to step S42.
[0105]
In step S42, the stream analysis unit 12 sets the address of the packet where the P or I picture ends as P1_end_address (FIG. 10). As described above, the address of the first P picture or I picture next to the I picture is determined.
[0106]
In step S43 (the video pointer vpp is not incremented), the stream analysis unit 12 checks whether or not the next video packet includes a sequence header code. If the video packet includes a sequence header code, the process proceeds to step S47. If the video packet does not include a sequence header code, the process proceeds to step S44.
[0107]
In step S44, the stream analysis unit 12 increments the video packet pointer vpp.
[0108]
In step S45, the stream analysis unit 12 checks whether the P picture or I picture has been completed. If the P picture or I picture has not ended, the process returns to step S43. If the P picture or I picture has been completed, the process proceeds to step S46.
[0109]
In step S46, the stream analysis unit 12 sets the address of the packet where the P or I picture ends as P2_end_address (FIG. 10). Thus, the address of the next P picture or I picture next to the I picture is determined.
[0110]
In step S47, the stream analysis unit 12 outputs the addresses I_start_address, I_end_address, P1_end_address, and P2_end_address to the entry point map creation unit 16. At this time, at least one of P1_end_address and P2_end_address may not exist.
[0111]
In step S48, the stream analysis unit 12 determines whether the current packet is the last input packet. If the current packet is not the last packet, the process returns to step S33. If the current packet is the last packet, the process is terminated.
[0112]
When there are a plurality of programs in the transport stream to be recorded, the above video stream analysis is performed on the video packet of each program.
[0113]
When the stream analysis unit 12 generates the entry point data as described above, the stream analysis unit 12 supplies the entry point data to the entry point map creation unit 16. The entry point map creation unit 16 tabulates the entry point data supplied from the stream analysis unit 12 for each program, creates an entry point map as shown in FIG. 9, and supplies the entry point map to the file system unit 17.
[0114]
As described above, the file system unit 17 includes the transport stream to which the time stamp is added by the time stamp adding unit 15, the time unit map as the feature point data representing the feature point, and the entry point map. Supplied from the time unit map generator 23 and the entry point map generator 16 respectively. The file system unit 17 converts the transport stream and the corresponding feature point data into a file.
[0115]
  FIG. 31 shows an example of this file structure. In this example, three programs are multiplexed in the transport stream file. As shown in the figure, the entry point map is subordinate to the time unit map. Each entry point map has the following data for each program.
(1) Program_number of program
(2) Program PMT transport packet PID
(3) PID and stream_type of the video transport packet that composes the program
(4) PID and stream_type of audio transport packets that make up the program
(5) Program PCR PID
(6) List of entry points
[0116]
The file generated by the file system unit 17 is supplied to the error correction unit 18, and after an error correction code is added, the file is supplied to the modulation unit 19 and modulated by a predetermined method. The signal output from the modulation unit 19 is supplied to the writing unit 20 and written to the recording medium 21.
[0117]
As described above, the transport stream and its feature point data are recorded on the recording medium 21.
[0118]
In the above, the time unit map and the entry point map are created from the transport stream. For example, when the moving image recording apparatus multiplexes and generates the transport stream, the multiplexing operation is performed. Sometimes a time unit map and an entry point map can be created. FIG. 32 shows a configuration example in this case.
[0119]
That is, in the example of FIG. 32, video and audio elementary streams # 1 to #n of a plurality (n) of programs are input to the multiplexing unit 40. The system time clock unit 42 counts a system time clock having a frequency of 27 MHz, generates a time stamp, and outputs the time stamp to the controller 41 and the time unit map creating unit 43. The controller 41 analyzes each elementary stream input to the multiplexing unit 40, and the multiplexing unit 40 satisfies the MPEG-2 system standard T-STD (Transport Stream System Target Decoder) and multiplexes the transport stream. Thus, the multiplexing unit 40 is controlled.
[0120]
The controller 41 outputs the packet number indicating the number of transport packets output from the multiplexing unit 40 to the time unit map generating unit 43 and the entry point map generating unit 44. The time unit map creating unit 43 creates a time unit map based on the packet number input from the controller 41 and the time stamp input from the system time clock 42.
[0121]
The controller 41 also outputs program information and entry point data to the entry point map creation unit 44. The entry point map creation unit 44 creates an entry point map based on the packet number, program information, and entry point data supplied from the controller 41, and the time unit map supplied from the time unit map creation unit 43. .
[0122]
The transport stream output from the multiplexing unit 40, the time unit map created by the time unit map creation unit 43, and the entry point map created by the entry point map creation unit 44 are the files shown in FIG. Supplied to the system unit 17. The configuration from the file system unit 17 to the recording medium 21 is the same as that shown in FIG.
[0123]
In the moving image recording apparatus 1 configured as shown in FIG. 32, the controller 41 generates program information and entry point data from the elementary stream multiplexed by the multiplexing unit 40, and creates an entry point map. To the unit 44. Further, the controller 41 outputs a packet number corresponding to the time stamp input from the system time clock 42 to the time unit map creating unit 43 and the entry point map creating unit 44.
[0124]
The time unit map creation unit 43 creates a time unit map based on the packet number input from the controller 41 and the time stamp input from the system time clock 42. Similarly, the entry point map creation unit 44 generates an entry point map based on the packet number input from the controller 41, program information, and entry point data, and the time unit map input from the time unit map creation unit 43. create.
[0125]
Then, the created transport stream, time unit map, and entry point map are filed by the file system unit 17 as in the case shown in FIG. Then, the signal is further modulated by the modulation unit 19 and then recorded on the recording medium 21 by the writing unit 20.
[0126]
Next, a description will be given of a moving image playback apparatus that plays back the recording medium 21 on which the transport stream file and the feature point data of the stream are recorded as described above. FIG. 33 shows an example of the configuration of such a moving image playback device 51. The reading unit 61 reads data recorded on the recording medium 21 and outputs the data to the demodulation unit 62. The demodulation unit 62 demodulates the data input from the reading unit 61 and outputs the demodulated data to the error correction unit 63. The error correction unit 63 corrects an error in the data input from the demodulation unit 62 and supplies the corrected data to the file system unit 64.
[0127]
The file system unit 64 separates the data input from the error correction unit 63 into a transport stream file and feature point data, supplies the stream file to the buffer 65, and sends the feature point data to the reproduction control unit 71. Output. The reproduction control unit 71 controls the reading unit 61, the demultiplexer 69, and the AV decoder 70 in response to a command input from the user via the terminal 73 via the user interface.
[0128]
The buffer 65 supplies the counter 68 with the value stored in arrival_time_stamp as an initial value from the stream file and sets it. The counter 68 counts the 27 MHz frequency clock generated by the system time clock unit 67 based on the initial value from the buffer 65 and supplies the count value to the comparison unit 66.
[0129]
The comparison unit 66 compares the value of the counter supplied from the counter 68 with the value of arrival_time_stamp included in the transport packet supplied from the buffer 65, and when both values match, the transport packet is Output to demultiplexer 69.
[0130]
The demultiplexer 69 extracts the video data and audio data of the channel corresponding to the command from the reproduction control unit 71 from the transport stream file input from the comparison unit 66, and outputs them to the AV decoder 70. The AV decoder 70 decodes the video data and the audio data input from the demultiplexer 69 and outputs from the terminal 72.
[0131]
Next, the operation will be described. On the recording medium 21, the transport stream file recorded by the moving image recording apparatus 1 of FIG. 27 (or FIG. 32) and the feature point data of the stream are recorded. One or more programs are multiplexed in the transport stream file.
[0132]
First, the reproduction control unit 71 instructs the reading unit 61 to read the feature point data of the stream. At this time, the reading unit 61 reads the feature point data of the stream from the recording medium 21 and outputs it to the demodulation unit 62. The demodulator 62 demodulates the input data and outputs it to the error corrector 63. The error correction unit 63 corrects an error in the input data and supplies it to the file system unit 64. The file system unit 64 outputs the input stream feature point data to the reproduction control unit 71.
[0133]
From the terminal 73, the program number designated for reproduction by the user interface is inputted and inputted to the reproduction control unit 71. The playback control unit 71 receives the PID of the PMT transport packet of the program, the PID and stream_type of the video transport packet constituting the program, the PID and stream_type of the audio transport packet constituting the program, and the PID of the PCR. The feature point data is read out and output to the demultiplexer 69 and the AV decoder 70.
[0134]
Furthermore, the playback control unit 71 instructs the reading unit 61 to read the transport stream file. In response to this command, the reading unit 61 reads a transport stream file from the recording medium 21. This data is input to the buffer 65 through the processing of the demodulator 62, error corrector 63, and file system 64 as in the case described above.
[0135]
The buffer 65 reads the value stored in arrival_time_stamp from the input transport stream file, supplies it to the counter 68 as an initial value, and sets it. The counter 68 counts the clock generated by the system time clock unit 67 with the initial value as a reference, and supplies the count value to the comparison unit 66. The comparison unit 66 reads the value of arrival_time_stamp from the transport stream file supplied from the buffer 65 and compares it with the counter value supplied from the counter 68. The comparison unit 66 outputs the transport stream file to the demultiplexer 69 at the timing when both values match.
[0136]
The demultiplexer 69 separates the video and audio transport packets constituting the program designated by the user interface from the input transport stream, and inputs them to the AV decoder 70. The AV decoder 70 decodes the video stream and the audio stream, and outputs them from the terminal 72 as a reproduced video signal and a reproduced audio signal.
[0137]
When the random access playback is instructed by the user interface, the playback control unit 71 determines the data reading position from the recording medium 21 based on the content of the feature point data of the stream stored therein, and performs random access. Control information is input to the reading unit 61. For example, when the program selected by the user is played back halfway from a predetermined time, the playback control unit 71 calculates the address of the transport stream corresponding to the specified time based on the time unit map, and from that address The reading unit 61 is instructed to read data. The procedure will be described below.
[0138]
First, the case of the time unit map shown in FIG. 7 will be described. If the time of the top data of the zeroth time unit TU0 is start_time, the time of the top data of the Nth (N> 0) time unit is (start_time + first_time_unit_size + (N−1) * time_unit_size). If the time unit number at which the time of the first data of the time unit becomes larger than the time specified by the user is found, it can be understood that the data should be read from the time unit of that number.
[0139]
In this case, if the address of the top data of the 0th time unit on the recorded stream is set to 0, the address time_unit_address (N) of the top data of the Nth time unit can be calculated as follows.
[0140]
[Expression 1]
Figure 0004264575
[0141]
Next, the case of the time unit map shown in FIG. 22D will be described.
[0142]
In this case, the time of the top data of the Nth (N> = 0) time unit is (offset_time + N * time_unit_size). If the time unit number at which the time of the first data of the time unit becomes larger than the time specified by the user is found, it can be understood that the data should be read from the time unit of that number. The source packet number of the head data of the Nth time unit is (RSPN_time_unit_start (N) −offset_SPN). Here, RSPN_time_unit_start (N) is the value of RSPN_time_unit_start for the Nth time unit.
[0143]
Further, when there is entry point map data corresponding to the program selected by the user, the reproduction control unit 71 can control special reproduction based on the entry point data. For example, in the case of high-speed reproduction, the reproduction control unit 71 instructs the reading unit 61 to sequentially read stream data at addresses for each entry point.
[0144]
FIG. 34 shows the operation of the reproduction control unit 71 in this case. In step S61, the playback control unit 71 sets program_number of the program to be played back in the built-in memory in response to a command from the user.
[0145]
In step S62, the reproduction control unit 71 checks whether or not entry point data of the program exists from the paid_program_flag. If it exists (paesed_program_flag = 1), the process proceeds to step S63. If there is no entry point data, data access using the entry point map is not possible, and the process is terminated.
[0146]
In step S63, the reproduction control unit 71 calculates the number TN of the time unit that starts reading from the time designated by the user as described above. That is, in the case of the time unit map shown in FIG. 7, the time unit number TN in which the value of start_time + first_time_unit_size + (N−1) * time_unit_size (the time at the beginning of the time unit) is greater than the specified time is calculated. . Alternatively, in the case of the time unit map shown in FIG. 22D, a time unit number TN in which (offset_time + N * time_unit_size) is larger than the specified time is calculated.
[0147]
In step S64, the playback control unit 71 checks from the entry_point_flag whether or not the entry point of the program exists in the TN-th time unit. If there is an entry point (entry_point_flag = 1), the process proceeds to step S65, and if not, the process proceeds to step S67.
[0148]
If there is an entry point, the playback control unit 71 calculates an address for reading the entry point stream data from entry_point_data () in step S65. The read start address of the stream data is I_start_address, and the read end address is I_end_address, P1_end_address, or P2_end_address.
[0149]
In step S66, the playback control unit 71 instructs the reading unit 61 to read the stream data of the entry point based on the address calculated in step S65. The read unit 61 executes a read operation in response to this instruction.
[0150]
In step S67, the reproduction control unit 71 increments the number TN. In step S68, the playback control unit 67 determines whether or not the end of the process is instructed. If the end of the process is not instructed, the reproduction control unit 67 returns to step S64, and otherwise ends the process.
[0151]
The reading unit 61 reads data from the designated random access point. The read data is input to the demultiplexer 69 through the processes of the demodulator 62, error correction unit 63, file system unit 64 buffer 65, and comparator 66, and is decoded and output by the AV decoder 70.
[0152]
Details of the calculation process in step S63 will be further described with reference to the flowcharts of FIGS. 35 and 36 in the case of the time unit map shown in FIG. In step S81, when program_number and the reproduction start time Tst are input from the terminal 73 to the reproduction control unit 71, in step S82, the reproduction control unit 71 determines that the reproduction start time Tst input in step S81 is the feature point. It is determined whether or not the transport stream start time start_time (FIG. 3B) included in the data is equal. When the reproduction start time Tst is equal to the start time start_time, the process proceeds to step S86, in which the reproduction control unit 71 sets 0 to a variable N representing the time unit number, and the time unit (0th time unit) is set. Set 0 to time_unit_address (N).
[0153]
On the other hand, when it is determined in step S82 that the reproduction start time Tst is not equal to the start time starttime, the process proceeds to step S83, where the reproduction control unit 71 reads the header part of the time unit map, and in step S84, Calculate the minimum value N that satisfies the following inequality:
[0154]
  TstΔstart_time + first_time_unit_size + (N-1) time_unit_size
TheIn step S85, the playback control unit 71 calculates time_unit_address (N) according to the equation shown in Equation 1 based on the data of the time unit map.
[0155]
When the time time_unit_address (N) of the head data of the Nth time unit is obtained, in step S87, the playback control unit 71 reads out data from the address time_unit_address (N) of the Nth time unit. To instruct.
[0156]
In response to the command from the playback control unit 71, the reading unit 61 reads the transport stream from the address time_unit_address (N) from the recording medium 21 in step S88. The read data is supplied to the demultiplexer 69 via the demodulator 62, error corrector 63, file system unit 64, buffer 65, and comparator 66.
[0157]
In step S89, the reproduction control unit 71 outputs the program_number of the program instructed to be reproduced by the user to the demultiplexer 69. In step S <b> 90, the demultiplexer 69 separates the transport packet of the program with the program_number designated by the reproduction control unit 71, and outputs it to the AV decoder 70. In step S 91, the AV decoder 70 decodes the data input from the demultiplexer 69 and outputs it from the terminal 72.
[0158]
Further, details of the calculation processing in step S63 of the flowchart of FIG. 34 will be further described with reference to the flowchart of FIG. 37 in the case of the time unit map shown in FIG.
[0159]
The flowchart of FIG. 37 is obtained by replacing steps S82, S84, and S85 of the flowcharts of FIGS. 35 and 36 with steps S102, S104, and S105, respectively. Except for these, the flowchart of FIG. 37 is the same as the flowcharts of FIGS. Below, only each step of step S102, S104, S105 is demonstrated.
[0160]
In step S102, the reproduction start time Tst is compared with the start time offset_time of the time unit map.
[0161]
In step S104, the minimum value N that satisfies the following inequality is calculated. Tst <= offset_time + N * time_unit_size
[0162]
In step S85, the playback control unit 71 calculates time_unit_address (N) according to the following equation based on the data of the time unit map.
time_unit_address (N) = RSPN_time_unit_start (N) −offset_SPN
[0163]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program that constitutes the software is installed by installing a computer incorporated in a moving image recording / playback device as dedicated hardware, or various programs. It is installed in, for example, a general-purpose personal computer capable of executing various functions.
[0164]
Next, with reference to FIG. 38, the recording medium used for installing the program for executing the series of processes described above into a computer and making it executable by the computer is a general-purpose personal computer. A case will be described as an example.
[0165]
As shown in FIG. 38A, the program can be provided to the user in a state where it is preinstalled in a hard disk 302 or a semiconductor memory 303 as a recording medium built in the computer 301.
[0166]
Alternatively, as shown in FIG. 38B, the program includes a floppy disk 311, a CD-ROM (Compact Disk-Read Only Disk) 312, an MO (Magneto-Optical) disk 313, a DVD (Digital Versatile Disk) 314, It can be temporarily or permanently stored in a recording medium such as the magnetic disk 315 or the semiconductor memory 316 and provided as package software.
[0167]
Further, as shown in FIG. 38 (C), the program is wirelessly transferred from a download site 321 to a computer 323 via an artificial satellite 322 for digital satellite broadcasting, or a network 131 such as a local area network or the Internet. Through the computer 323, and can be stored in a built-in hard disk or the like in the computer 323.
[0168]
The recording medium in this specification means a broad concept including all these recording media.
[0169]
Further, in this specification, the step of describing the program provided by the recording medium is not limited to the processing performed in time series according to the described order, but is not necessarily performed in time series. It also includes processes that are executed individually.
[0170]
In the present specification, the system represents the entire apparatus constituted by a plurality of apparatuses.
[0171]
As described above, when a recording medium on which one or a plurality of transport streams are recorded is randomly accessed and reproduced, the start position of an I picture or an audio frame can be efficiently searched. Random access playback with quick response can be performed.
[0172]
【The invention's effect】
  As described above, according to the data processing apparatus, the data processing method, and the program of the first recording medium of the present invention,,Random access with quick response is possible.
[0173]
  According to the data reproducing apparatus, data reproducing method, and program of the second recording medium of the present invention,Rapid random generation is possible.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining a packet of a conventional transport stream.
FIG. 2 is a diagram for explaining a conventional transport stream to be recorded.
FIG. 3 is a diagram illustrating a transport stream according to the present invention.
FIG. 4 is a diagram for explaining a transport stream to be recorded according to the present invention.
FIG. 5 is a diagram illustrating the syntax of Source Packet.
FIG. 6 is a diagram illustrating the syntax of TP_extra_header.
FIG. 7 is a diagram showing an example of a time unit map.
FIG. 8 is a diagram illustrating an offset address for each time unit.
FIG. 9 is a diagram showing an example of an entry point map.
FIG. 10 is a diagram illustrating entry point data.
FIG. 11 is a diagram for explaining data erasure.
FIG. 12 is a diagram showing an example of a time unit map when data is erased.
FIG. 13 is a diagram illustrating the syntax of TimeUnitMapHeader ().
FIG. 14 is a diagram illustrating the syntax of TimeUnitMapData ().
FIG. 15 is a diagram illustrating the syntax of EntryPointMapHeader ().
FIG. 16 is a diagram illustrating the syntax of EntryPointMapData ().
Fig. 17 is a diagram illustrating the syntax of entry point data ().
[Fig. 18] Fig. 18 is a diagram illustrating the syntax of EntryPointMapData ().
FIG. 19 is a diagram illustrating entry points of a transport stream file.
FIG. 20 is a diagram illustrating an example of EntryPointMapData.
FIG. 21 is a diagram illustrating an example of EntryPointMapData.
FIG. 22 is a diagram illustrating a transport stream according to the present invention.
FIG. 23 is a diagram illustrating the syntax of TimeUnitMapHeader ().
FIG. 24 is a diagram illustrating the syntax of TimeUnitMapData ().
FIG. 25 is a diagram for explaining data erasure.
FIG. 26 is a diagram showing an example of a time unit map when data is erased.
FIG. 27 is a block diagram illustrating a configuration example of a moving image recording apparatus to which the present invention is applied.
FIG. 28 is a flowchart for explaining the operation of the moving image recording apparatus of FIG. 27;
29 is a flowchart for explaining the operation of the moving image recording apparatus of FIG. 27. FIG.
30 is a flowchart for explaining the operation of the moving image recording apparatus of FIG. 27. FIG.
FIG. 31 is a diagram for explaining the relationship between a time unit map of a transport stream file and an entry point map;
FIG. 32 is a block diagram showing another configuration example of the moving image recording apparatus to which the present invention is applied.
FIG. 33 is a block diagram illustrating a configuration example of a moving image playback device to which the present invention has been applied.
34 is a flowchart for explaining the operation of the moving image playback apparatus in FIG. 33. FIG.
FIG. 35 is a flowchart for explaining the operation of the moving image playback apparatus in FIG. 33;
36 is a flowchart for explaining the operation of the moving image playback apparatus in FIG. 33. FIG.
FIG. 37 is a flowchart for explaining the operation of the moving image playback apparatus in FIG. 33;
FIG. 38 is a diagram illustrating a recording medium.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Moving image recording device, 11 PID filter, 12 Stream analysis part, 14 Time stamp generation part, 15 Time stamp addition part, 16 Entry point map preparation part, 17 File system part, 21 Recording medium, 23 Time unit map preparation part, 24 counter, 40 multiplexing unit, 41 controller, 42 system time clock unit, 43 time unit map creating unit, 44 entry point map creating unit, 61 reading unit, 69 demultiplexer, 70 AV decoder, 71 playback control unit

Claims (16)

入力された符号化ストリームに含まれるデータを処理するデータ処理装置において、
入力された前記符号化ストリームを、所定のタイムユニット毎に区分する区分手段と、
前記区分手段により区分された前記符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを作成する第1の作成手段と
前記符号化ストリームのエントリポイントの位置を示す、前記タイムユニットマップに従属するエントリポイントマップを作成する第2の作成手段と
を備えるータ処理装置。
In a data processing apparatus that processes data included in an input encoded stream,
Sorting means for sorting the input encoded stream for each predetermined time unit;
First creating means for creating a time unit map indicating an address of data for each time unit of the encoded stream divided by the dividing means ;
Data processing apparatus and a second generating means for generating an entry point map in which the indicating the position of the entry point of the coded stream, dependent on the time unit map.
前記タイムユニットマップは、前記タイムユニット毎のデータのアドレスとして、タイムユニット毎の先頭のパケットのパケット番号を保持する
求項1に記載のデータ処理装置。
The time unit map holds the packet number of the first packet for each time unit as the data address for each time unit.
The data processing apparatus according to Motomeko 1.
前記タイムユニットマップは、前記タイムユニットの先頭のデータのアドレスと、そのタイムユニット内に含まれるデータ量に対応するアドレスの間隔とを対応して保持する
求項1に記載のデータ処理装置。
The time unit map holds the address of the head data of the time unit and the address interval corresponding to the amount of data included in the time unit.
The data processing apparatus according to Motomeko 1.
前記符号化ストリームとともに、前記タイムユニットマップをファイル化するファイル化手段を
さらに備える求項1に記載のデータ処理装置。
Together with the coded stream, the data processing apparatus according to Motomeko 1, further comprising filing means for filing the time unit map.
前記ファイル化手段によりファイル化されたデータを情報記録媒体に記録する記録手段を
さらに備える求項4に記載のデータ処理装置。
The data processing apparatus according to Motomeko 4, further comprising recording means for recording a file of data in the information recording medium by the file means.
前記第1の作成手段は、前記符号化ストリームが編集されたとき、前記タイムユニットマップを変更する
求項1に記載のデータ処理装置。
The first creation means changes the time unit map when the encoded stream is edited.
The data processing apparatus according to Motomeko 1.
前記エントリポイントマップは、前記エントリポイントの前記タイムユニットの先頭からのアドレスの間隔を含む
求項に記載のデータ処理装置。
The entry point map includes an interval between addresses of the entry points from the beginning of the time unit.
The data processing apparatus according to Motomeko 1.
前記エントリポイントは、前記タイムユニット内に含まれるIピクチャの先頭のアドレスを表し、
前記エントリポイントマップは、前記Iピクチャの先頭のアドレスから、前記Iピクチャの終了アドレスまでの間隔、または前記Iピクチャが含まれるタイムユニット内の、それより後のPピクチャの終了アドレスまでの間隔を含む
求項に記載のデータ処理装置。
The entry point represents a leading address of an I picture included in the time unit,
The entry point map includes an interval from the start address of the I picture to an end address of the I picture, or an interval from the end address of a P picture later in the time unit including the I picture. Include
The data processing apparatus according to Motomeko 7.
前記エントリポイントマップは、前記タイムユニットにおける前記エントリポイントの有無を表すフラグを含む
求項に記載のデータ処理装置。
The entry point map includes a flag indicating the presence / absence of the entry point in the time unit.
The data processing apparatus according to Motomeko 1.
前記符号化ストリームが、複数のプログラムを多重化して生成された符号化ストリームである場合、前記第2の作成手段は、前記エントリポイントマップを、前記プログラム毎に作成する
求項に記載のデータ処理装置。
When the encoded stream is an encoded stream generated by multiplexing a plurality of programs, the second creation unit creates the entry point map for each program.
The data processing apparatus according to Motomeko 1.
前記第2の作成手段は、前記符号化ストリームが編集されたとき、前記エントリポイントマップを変更する
求項に記載のデータ処理装置。
The second creation means changes the entry point map when the encoded stream is edited.
The data processing apparatus according to Motomeko 1.
入力された符号化ストリームに含まれるデータを処理するデータ処理装置のデータ処理方法において、
入力された前記符号化ストリームを、所定のタイムユニット毎に区分する区分ステップと、
前記区分ステップの処理により区分された前記符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを作成する第1の作成ステップと
前記符号化ストリームのエントリポイントの位置を示す、前記タイムユニットマップに従属するエントリポイントマップを作成する第2の作成ステップと
を含むータ処理方法。
In a data processing method of a data processing apparatus for processing data included in an input encoded stream,
A dividing step of dividing the input encoded stream into predetermined time units;
A first creation step of creating a time unit map indicating an address of data for each time unit of the encoded stream divided by the processing of the division step ;
Data processing method and a second generation step of generating an entry point map in which the indicating the position of the entry point of the coded stream, dependent on the time unit map.
入力された符号化ストリームに含まれるデータを処理するプログラムであって、
入力された前記符号化ストリームを、所定のタイムユニット毎に区分する区分ステップと、
前記区分ステップの処理により区分された前記符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを作成する第1の作成ステップと
前記符号化ストリームのエントリポイントの位置を示す、前記タイムユニットマップに従属するエントリポイントマップを作成する第2の作成ステップと
を含む処理を、コンピュータに実行させるためのコンピュータみ取り可能なプログラムが記録されている記録媒体。
A program for processing data included in an input encoded stream,
A dividing step of dividing the input encoded stream into predetermined time units;
A first creation step of creating a time unit map indicating an address of data for each time unit of the encoded stream divided by the processing of the division step ;
Indicating the position of the entry point of the coded stream, the process and a second generation step of generating an entry point map subordinate to the time unit map, the computer read-capable program for causing a computer to execute Recorded recording medium.
情報記録媒体に記録されている、符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを再生する第1の再生手段と、
前記第1の再生手段により再生された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記符号化ストリームを、任意の位置から再生する第2の再生手段と
を備え
前記第1の再生手段は、前記符号化ストリームのエントリポイントの位置を示す、前記タイムユニットマップに従属するエントリポイントマップもさらに再生し、
前記第2の再生手段は、前記第1の再生手段により再生された、前記タイムユニットマップとエントリポイントマップに基づいて、前記情報記録媒体に記録されている前記符号化ストリームを、任意の位置から再生する
ータ再生装置。
First reproducing means for reproducing a time unit map indicating an address of data for each time unit of the encoded stream recorded in the information recording medium;
Based on the time unit map reproduced by the first reproduction means, the second reproduction means for reproducing the encoded stream recorded on the information recording medium from an arbitrary position ;
The first reproduction means further reproduces an entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream,
The second reproduction means is configured to read the encoded stream recorded on the information recording medium from an arbitrary position based on the time unit map and the entry point map reproduced by the first reproduction means. Reproduce
The data reproducing apparatus.
情報記録媒体に記録されている、符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを再生する第1の再生ステップと、
前記第1の再生ステップの処理により再生された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記符号化ストリームを、任意の位置から再生する第2の再生ステップと
を含み、
前記第1の再生ステップの処理では、前記符号化ストリームのエントリポイントの位置を示す、前記タイムユニットマップに従属するエントリポイントマップもさらに再生し、
前記第2の再生ステップの処理では、前記第1の再生手段により再生された、前記タイムユニットマップとエントリポイントマップに基づいて、前記情報記録媒体に記録されている前記符号化ストリームを、任意の位置から再生する
ータ再生方法。
A first reproduction step of reproducing a time unit map indicating an address of data for each time unit of the encoded stream recorded in the information recording medium;
A second reproduction step of reproducing the encoded stream recorded on the information recording medium from an arbitrary position based on the time unit map reproduced by the processing of the first reproduction step. See
In the process of the first reproduction step, an entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream is further reproduced.
In the process of the second reproduction step, the encoded stream recorded on the information recording medium is arbitrarily recorded on the basis of the time unit map and the entry point map reproduced by the first reproduction unit. Play from position
Data reproduction method.
情報記録媒体に記録されている、符号化ストリームのタイムユニット毎のデータのアドレスを示すタイムユニットマップを再生する第1の再生ステップと、
前記第1の再生ステップの処理により再生された、前記タイムユニットマップに基づいて、前記情報記録媒体に記録されている前記符号化ストリームを、任意の位置から再生する第2の再生ステップと
を含み、
前記第1の再生ステップの処理では、前記符号化ストリームのエントリポイントの位置を示す、前記タイムユニットマップに従属するエントリポイントマップもさらに再生し、
前記第2の再生ステップの処理では、前記第1の再生手段により再生された、前記タイムユニットマップとエントリポイントマップに基づいて、前記情報記録媒体に記録されている前記符号化ストリームを、任意の位置から再生する
処理を、コンピュータに実行させるためのコンピュータみ取り可能なプログラムが記録されている記録媒体。
A first reproduction step of reproducing a time unit map indicating an address of data for each time unit of the encoded stream recorded in the information recording medium;
A second reproduction step of reproducing the encoded stream recorded on the information recording medium from an arbitrary position based on the time unit map reproduced by the processing of the first reproduction step. See
In the process of the first reproduction step, an entry point map subordinate to the time unit map indicating the position of the entry point of the encoded stream is further reproduced.
In the process of the second reproduction step, the encoded stream recorded on the information recording medium is arbitrarily recorded on the basis of the time unit map and the entry point map reproduced by the first reproduction unit. Play from position
Processing, recording medium having a computer read-capable program to be executed by the computer is recorded.
JP2000075128A 1999-05-06 2000-03-17 Data processing apparatus and method, data reproducing apparatus and method, and recording medium Expired - Fee Related JP4264575B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000075128A JP4264575B2 (en) 1999-05-06 2000-03-17 Data processing apparatus and method, data reproducing apparatus and method, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP12616499 1999-05-06
JP11-126164 1999-05-06
JP2000075128A JP4264575B2 (en) 1999-05-06 2000-03-17 Data processing apparatus and method, data reproducing apparatus and method, and recording medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008318978A Division JP4670952B2 (en) 1999-05-06 2008-12-15 Data processing apparatus and method, data reproducing apparatus and method, and recording medium

Publications (2)

Publication Number Publication Date
JP2001024985A JP2001024985A (en) 2001-01-26
JP4264575B2 true JP4264575B2 (en) 2009-05-20

Family

ID=26462385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000075128A Expired - Fee Related JP4264575B2 (en) 1999-05-06 2000-03-17 Data processing apparatus and method, data reproducing apparatus and method, and recording medium

Country Status (1)

Country Link
JP (1) JP4264575B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458478B (en) * 2007-12-06 2011-08-31 株式会社东芝 Developing roller, developing apparatus, and image forming apparatus
KR20190133912A (en) * 2018-05-24 2019-12-04 주식회사 알로이스 Multimedia device and method for providing time machine function of broadcast stream using over the top service

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892022B1 (en) * 2000-03-30 2005-05-10 Maxtor Corporation Storing and retrieving encoded data stream with specified time of delivery on a hard disk
KR20030087193A (en) 2002-05-07 2003-11-14 엘지전자 주식회사 Method for managing a multi-channel broadcast stream record
RU2316831C2 (en) 2002-06-21 2008-02-10 Эл Джи Электроникс Инк. Record carrier with data structure for managing reproduction of video data recorded on it
RU2356106C2 (en) 2002-06-21 2009-05-20 Эл Джи Электроникс Инк. Record medium with data structure for control of recorded video data reproduction
CN101350214B (en) 2002-06-24 2015-07-01 Lg电子株式会社 Method and device for recording and reproducing data structure of reproduction for video data
KR20040000290A (en) 2002-06-24 2004-01-03 엘지전자 주식회사 Method for managing multi-path data stream of high density optical disc
RU2320030C2 (en) 2002-06-24 2008-03-20 Эл Джи Электроникс Инк. Record carrier with data structure for controlling reproduction of video data of several reproduction channels recorded on it and methods and devices for recording and reproduction
US7889968B2 (en) 2002-06-24 2011-02-15 Lg Electronics Inc. Recording medium having data structure for managing reproduction of multiple reproduction path video data for at least a segment of a title recorded thereon and recording and reproducing methods and apparatuses
RU2334286C2 (en) 2002-06-28 2008-09-20 Эл Джи Электроникс Инк. Recording medium with data structure for recording and playback control of data from several channels recorded on it and methods and recording/playback devices
AU2003243025B2 (en) 2002-06-28 2009-02-19 Lg Electronics Inc. Recording medium having data structure for managing reproduction of multiple play-back path video data recorded thereon and recording and reproducing methods and apparatuses
KR100665439B1 (en) 2002-10-14 2007-01-04 엘지전자 주식회사 Recording medium having data structure for managing reproduction of multiple audio streams recorded thereon and recording and reproducing methods and apparatuses
AU2003269521B2 (en) 2002-10-15 2009-05-28 Lg Electronics Inc. Recording medium having data structure for managing reproduction of multiple graphics streams recorded thereon and recording and reproducing methods and apparatuses
US8064755B2 (en) 2002-11-08 2011-11-22 Lg Electronics Inc. Method and apparatus for recording a multi-component stream and a high-density recording medium having a multi-component stream recorded thereon and reproducing method and apparatus of said recording medium
US7720356B2 (en) 2002-11-12 2010-05-18 Lg Electronics Inc Recording medium having data structure for managing reproduction of multiple reproduction path video data recorded thereon and recording and reproducing methods and apparatuses
US7783160B2 (en) 2002-11-20 2010-08-24 Lg Electronics Inc. Recording medium having data structure for managing reproduction of interleaved multiple reproduction path video data recorded thereon and recording and reproducing methods and apparatuses
US7693394B2 (en) 2003-02-26 2010-04-06 Lg Electronics Inc. Recording medium having data structure for managing reproduction of data streams recorded thereon and recording and reproducing methods and apparatuses
US7809775B2 (en) 2003-02-27 2010-10-05 Lg Electronics, Inc. Recording medium having data structure for managing playback control recorded thereon and recording and reproducing methods and apparatuses
WO2004077417A1 (en) 2003-02-28 2004-09-10 Lg Electronics Inc. Recording medium having data structure for managing random/shuffle reproduction of video data recorded thereon and recording and reproducing methods and apparatuses
US7620301B2 (en) 2003-04-04 2009-11-17 Lg Electronics Inc. System and method for resuming playback
KR101451239B1 (en) 2007-08-13 2014-10-15 삼성전자 주식회사 Method for creating and accessing media metadata in media file format and apparatus thereof
JP4731619B2 (en) * 2009-09-18 2011-07-27 三菱電機株式会社 Storage / playback device
JP5605238B2 (en) * 2011-01-25 2014-10-15 ソニー株式会社 Memory system and operation method thereof
JP4954337B2 (en) * 2011-03-30 2012-06-13 三菱電機株式会社 Storage / playback device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458478B (en) * 2007-12-06 2011-08-31 株式会社东芝 Developing roller, developing apparatus, and image forming apparatus
KR20190133912A (en) * 2018-05-24 2019-12-04 주식회사 알로이스 Multimedia device and method for providing time machine function of broadcast stream using over the top service
KR102089854B1 (en) * 2018-05-24 2020-03-16 주식회사 알로이스 Multimedia device and method for providing time machine function of broadcast stream using over the top service

Also Published As

Publication number Publication date
JP2001024985A (en) 2001-01-26

Similar Documents

Publication Publication Date Title
JP4670952B2 (en) Data processing apparatus and method, data reproducing apparatus and method, and recording medium
JP4264575B2 (en) Data processing apparatus and method, data reproducing apparatus and method, and recording medium
JP4737572B2 (en) Data recording medium
JP4973773B2 (en) Transport stream playback device
JP3887006B2 (en) Additional information generation method for ensuring continuous reproduction between data strings, recording medium and recording, editing and / or reproducing apparatus for storing this information
US8326117B2 (en) Data recording device, data recording method, data processing device, data processing method, program, program recording medium, data recording medium, and data structure
US20040005142A1 (en) Method and apparatus of recording/reproducing multi-channel stream
KR20000062962A (en) Recording Apparatus, Recording Method, Playback Apparatus, Playback Method and Recording Media
JP4229035B2 (en) Recording / reproducing apparatus and method, reproducing apparatus and method, recording apparatus and method, and program
JP4650112B2 (en) RECORDING / OUTPUT DEVICE, RECORDING / OUTPUT METHOD, AND RECORDING DEVICE
JP4269495B2 (en) Transport stream recording apparatus and method, program recording medium, data recording medium, and data generation apparatus
US8346059B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
JP2002152688A (en) Digital broadcast recording/reproducing device
US20080232782A1 (en) Recording apparatus, image reproducing apparatus, and special reproduction method therefor
KR20050055621A (en) Information recording device, information reproduction device, method, and computer program
US20030091331A1 (en) Method for implementing low-speed playback of a digital broadcast program
JP4763589B2 (en) Playback device and playback method thereof
JP4128323B2 (en) Reception device and recording control device
JP4099743B2 (en) Recording apparatus and method, and recording medium
JP2000333128A (en) Data processor, its method and medium
JP4861221B2 (en) RECORDING DEVICE, RECORDING METHOD, VIDEO RECORDING / REPRODUCING DEVICE, AND RECORDING FILE PROCESSING METHOD THEREOF
JP2003274337A (en) Data recording device, data reproducing device, data recording and reproducing device, and data recording method
JP2008236163A (en) Reproducing device, and video recording and reproducing device and special reproduction method thereof
JP2005167649A (en) Apparatus and method for storing and outputting a plurality of consecutive data
JP2006333327A (en) Program recording apparatus and program reproducing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090128

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees