JP2000333128A - データ処理装置および方法、並びに媒体 - Google Patents

データ処理装置および方法、並びに媒体

Info

Publication number
JP2000333128A
JP2000333128A JP13720399A JP13720399A JP2000333128A JP 2000333128 A JP2000333128 A JP 2000333128A JP 13720399 A JP13720399 A JP 13720399A JP 13720399 A JP13720399 A JP 13720399A JP 2000333128 A JP2000333128 A JP 2000333128A
Authority
JP
Japan
Prior art keywords
unit
data
time
address
map
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.)
Withdrawn
Application number
JP13720399A
Other languages
English (en)
Inventor
Motoki Kato
元樹 加藤
Toshiya Hamada
俊也 浜田
Masanobu Nakamura
政信 中村
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 JP13720399A priority Critical patent/JP2000333128A/ja
Publication of JP2000333128A publication Critical patent/JP2000333128A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】 【課題】 記録媒体に対して、符号化ストリームを効率
的に記録し、迅速にランダムアクセスできるようにす
る。 【解決手段】 入力されたトランスポートストリームか
ら、記録が指定されたチャネルの所定の数のパケットが
集められて、ブロックユニット化され、ダミーパケット
が付加されることなく、記録媒体に記録される。各ブロ
ックユニットBU0,BU1, BU2のパケットの内、記録さ
れたパケットの先頭のアドレスblock_unit_addressと、
例えば、タイムユニットBU1の先頭の時刻T(BU1)から、
タイムユニットBU0の先頭の時刻T(BU0)を減算した値で
表わされるブロックユニットBU0のデータ長が、対応さ
れ、ブロックユニットマップとして記録媒体に記録され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置お
よび方法、並びに媒体に関し、特に符号化ストリームか
ら特徴点情報を抽出することにより、複数のプログラム
が多重化されている場合においても、迅速にランダムア
クセスができるようにしたデータ処理装置および方法、
並びに媒体に関する。
【0002】
【従来の技術】ヨーロッパのDVB(Digital Video Broadc
ast)や日本のディジタルBS放送などの多チャネルディジ
タルテレビジョン放送では、MPEG(Moving Picture Expe
rts Group)2トランスポートストリームが使われる。ト
ランスポートストリームは、トランスポートパケットが
連続したストリームであり、トランスポートパケット
は、例えば、MPEG2ビデオストリームやMPEG1オーディ
オストリームがパケット化されたものである。放送の電
波で伝送される1本のトランスポートストリームには、
1つまたは複数のAV(Audio Visual)プログラムが多重化
されている。一般に、各チャネルのAVプログラムは、お
互いに独立している。
【0003】したがって、放送で送られるトランスポー
トストリームを家庭の受信機でそのまま受信し、記録す
れば、そのトランスポートストリームのすべてのチャネ
ルのプログラムを同時に記録することができる。また、
放送で送られるトランスポートストリームの中からユー
ザによって選択された幾つかのチャネルのAVプログラム
のトランスポートストリームを分離したものを記録すれ
ば、選択された任意の数のチャネルのプログラムを同時
に記録することができる。
【0004】図1に従来のトランスポートストリームの
記録方法の例を示す。図1(A)は、複数のAVプログラム
が多重化されたトランスポートストリームを示す。ここ
で横軸は、時間であり、Δtの間隔のブロックユニットB
Ui(i=0, 1, 2 ・・・)毎に区切られている。入力
トランスポートストリームの中から1つまたは複数のAV
プログラムが選択された時に、選択されたトランスポー
トパケットは斜線を施して示されている。選択されたト
ランスポートパケットは、一般に、図1(B)に示すよう
に、不規則なタイミングで現れ、ブロックユニットBUi
毎のトランスポートパケットの数は変化する。
【0005】Δtの間隔のブロックユニットBUi毎の選択
されたトランスポートパケットは、図2に示すように、
間隔を詰めて記録媒体に記録される。この時、各トラン
スポートパケットは、それぞれのストリーム上の時刻を
示すタイムスタンプを付加して記録される。このタイム
スタンプは、例えば、DV(Digital Video)フォーマット
で規定されているところのトランスポートパケットに付
加される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に記載のデータ
処理装置は、入力された符号化ストリームに含まれるデ
ータを処理するデータ処理装置において、入力された符
号化ストリームを、所定の単位のユニットにユニット化
するユニット化手段と、ユニット化手段によりユニット
化された符号化ストリームを記憶する記憶手段と、ユニ
ット化手段によりユニット化された符号化ストリームの
ユニット毎のデータの量を表すデータ量情報を含むユニ
ットマップを作成する第1の作成手段と、符号化ストリ
ームのプログラム毎のエントリポイントの位置を示す、
ユニットマップに従属するエントリポイントマップを作
成する第2の作成手段を備えることを特徴とする。
【0011】前記ユニットマップのデータ量情報は、記
憶手段のアドレス、または記憶手段に記憶されているユ
ニットのデータ量に対応する時間で表すことができる。
【0012】前記第2の作成手段により、符号化ストリ
ームが編集されたとき、エントリポイントマップを変更
するようにすることができる。
【0013】前記ファイル化手段によりファイル化され
たデータを記録媒体に記録する記録手段をさらに設ける
ことができる。
【0014】前記第1の作成手段により、符号化ストリ
ームが編集されたとき、ユニットマップを変更すること
ができる。
【0015】請求項8に記載のデータ処理方法は、入力
された符号化ストリームに含まれるデータを処理するデ
ータ処理装置のデータ処理方法において、入力された符
号化ストリームを、所定の単位のユニットにユニット化
するユニット化ステップと、ユニット化ステップの処理
によりユニット化された符号化ストリームを記憶する記
憶ステップと、ユニット化ステップの処理によりユニッ
ト化された符号化ストリームのユニット毎のデータの量
を表すデータ量情報を含むユニットマップを作成する作
成ステップと、符号化ストリームのプログラム毎のエン
トリポイントの位置を示す、ユニットマップに従属する
エントリポイントマップを作成する第2の作成ステップ
を含むことを特徴とする。
【0016】請求項9に記載の媒体のプログラムは、入
力された符号化ストリームに含まれるデータを処理する
プログラムであって、入力された符号化ストリームを、
所定の単位のユニットにユニット化するユニット化ステ
ップと、ユニット化ステップの処理によりユニット化さ
れた符号化ストリームを記憶する記憶ステップと、ユニ
ット化ステップの処理によりユニット化された 符号化
ストリームのユニット毎のデータの量を表すデータ量情
報を含むユニットマップを作成する作成ステップと、符
号化ストリームのプログラム毎のエントリポイントの位
置を示す、ユニットマップに従属するエントリポイント
マップを作成する第2の作成ステップを含むことを特徴
とする。
【0017】請求項1に記載のデータ処理装置、請求項
8に記載のデータ処理方法、および請求項9に記載の媒
体においては、符号化ストリームがユニット化され、ユ
ニット毎のデータの量を表すデータ量情報を含むユニッ
トマップが作成される。
【0018】
【発明の実施の形態】以下、符号化ストリームが1つま
たは複数のプログラムが多重化されている多重化ストリ
ームである場合を例として本発明を説明するが、本発明
は、符号化ストリームがMPEGビデオストリーム等のエレ
メンタリーストリームであっても適用できるものであ
る。
【0019】最初に、本発明の基本的な原理について説
明する。本発明の動画像記録装置は、1つまたは複数の
プログラムが多重化されているトランスポートストリー
ムをディスク、テープなどの記録媒体に記録する時に、
所定のデータ量のブロックユニット毎に区切り、ブロッ
クユニット毎のデータのストリーム上の時刻を計算す
る。そして、このブロックユニット毎のデータのストリ
ーム上の時刻を示すブロックユニットマップが作成され
る。さらに、記録するトランスポートストリームのプロ
グラム毎のエントリーポイント(ランダムアクセスポイ
ント)の場所を示すエントリーポイントマップが作成さ
れる。エントリーポイントマップは、ブロックユニット
マップに従属する構造を有する。このブロックユニット
マップについて、以下に説明する。
【0020】図3は、複数のAVプログラムが多重化され
たトランスポートストリームを示す。ここで横軸は、ス
トリーム上の時刻を示す時間軸である。入力トランスポ
ートストリームの中から1つまたは複数のAVプログラム
が記録のために選択される。選択されたトランスポート
パケットは斜線を付して示されている。選択されたトラ
ンスポートパケットは、一般に図3(B)に示すように、
不規則なタイミングで現れる。
【0021】選択されたトランスポートパケットは、図
4に示すように、間隔を詰めて記録媒体に記録される。
この時、各トランスポートパケットには、それぞれのス
トリーム上の時刻を示すタイムスタンプが付加される。
このタイムスタンプは、例えば、DVフォーマットで規定
されているところのトランスポートパケットに付加され
る4バイト長のTSP_extra_headerと同様のものとされ
る。
【0022】図4には、横軸に、記録されたトランスポ
ートストリームのバイト位置を示すアドレスと、ストリ
ーム上の時刻が表されている。記録されたトランスポー
トストリームは、所定のデータ量Δbのブロックユニッ
ト毎に区切られる。この例では、Δbを4個のトランスポ
ートパケット分のデータ量としている。ブロックユニッ
トをBUと示す。BUの後ろに続く数字は、BUの時間順序を
示す。最初のオリジナル記録の時は、すべてのBUのデー
タ長は同じくΔbである。なお、Δbのデータ長は、こ
の例に限らず、例えば、ECCブロックサイズの整数倍と
しても良い。
【0023】図4の時間軸は、トランスポートストリー
ム上の時刻を示す時間軸を示す。この軸上に、ブロック
ユニット毎の先頭データの時刻を示す。ブロックユニッ
トBU0, BU1, BU2の先頭データの時刻は、それぞれT(BU
0), T(BU1), T(BU2)である。
【0024】図5は、ブロックユニットマップ、すなわ
ち記録されたトランスポートストリームのブロックユニ
ット毎の先頭データのストリーム上の時刻のテーブルを
示す。ここで、block_unit_addressは、記録されたスト
リーム上のブロックユニットの先頭データのアドレスで
ある。また、block_unit_timeは、ブロックユニットの
先頭データの時刻を表し、delta_block_unit_timeはブ
ロックユニット毎の時間長を表す。ブロックユニットマ
ップでは、ブロックユニット毎のdelta_block_unit_tim
eがテーブル化される。
【0025】図5の例においては、ブロックユニットBU
0の先頭のデータのアドレスblock_unit_addressは0と
され、対応する時刻block_unit_timeは、T(BU0)と
されている。同様に、ブロックユニットBU1の先頭のデ
ータアドレスblock_unit_addressは、Δbとされ、対応
する時刻block_unit_timeは、T(BU1)とされてい
る。さらに、ブロックユニットBU2の先頭のデータのア
ドレスblock_unit_addressは、2×Δbされ、対応する
時刻block_unit_timeは、T(BU2)とされている。
【0026】そして、ブロックユニットBU0の時間長de
lta_block_unit_timeは、ブロックユニットBU1の先頭
のデータの時刻T(BU1)と、ブロックユニットBU0の
先頭のデータの時刻T(BU0)との差(T(BU1)−T
(BU0))とされている。ブロックユニットBU1の時間
長delta_block_unit_timeは、ブロックユニットBU2の
先頭のデータの時刻T(BU2)と、ブロックユニットBU
1の先頭のデータの時刻T(BU1)との差(T(BU2)
−T(BU1))とされている。さらに、ブロックユニッ
トBU2の時間長(delta_block_unit_time)は、ブロッ
クユニットBU2の最後のデータの時刻end_timeと、ブロ
ックユニットBU2の先頭のデータの時刻T(BU2)との
差(end_time−T(BU2))とされている。
【0027】次に、上述のエントリーポイントマップに
ついて説明する。図6に示すトランスポートストリーム
は、図4に示したトランスポートストリームと同様のト
ランスポートストリームである。ここで斜線で示すトラ
ンスポートパケットにおいて、エントリーポイントが開
始しているものとする。具体的には、エントリーポイン
トにおいて、MPEGビデオのシーケンスヘッダとIピクチ
ャデータが開始しているものとする。所定のブロックユ
ニットの中にエントリーポイントが存在する場合、その
ブロックユニットのデータの先頭アドレスからエントリ
ーポイントのアドレスまでのオフセットアドレスが計算
される。
【0028】すなわち、図6の例では、ブロックユニッ
トBU0とBU2にエントリーポイント(Iピクチャ)が存在
する。そこで、ブロックユニットBU0においては、その
先頭のアドレス0から、Iピクチャの先頭のアドレスI_s
tart_addressまでの間隔aが、オフセットアドレスとし
て計算される。同時に、ブロックユニットBU2において
は、その先頭のアドレス2×Δbから、Iピクチャの先
頭のアドレスI_start_addressまでの間隔bがオフセッ
トアドレスとして計算される。
【0029】図7は、エントリーポイントマップ、すな
わちブロックユニット毎のエントリーポイントまでのオ
フセットアドレスのテーブルの例を示す。entry_point_
flagは、対応するブロックユニットBUiにエントリーポ
イントが存在する時、「1」とされ、存在しない時、
「0」とされる。entry_point_flagが「1」であるブロ
ックユニットについて、そのブロックユニットのデータ
の先頭アドレスblock_unit_addressから、エントリーポ
イントのアドレスI_start_addressまでのオフセットア
ドレスI_start_offset_from_block_unit_addressは、次
式に示すように計算される。
【0030】 I_start_offset_from_block_unit_address= I_start_ad
dress - block_unit_address また、エントリーポイント毎に、エントリーポイントの
Iピクチャデータの終了アドレスI_end_address、エント
リーポイントのIピクチャの次のPまたはIピクチャの終
了アドレスP1_end_address、エントリーポイントのIピ
クチャの次の次のPまたはIピクチャの終了アドレスP2_
end_addressが、次式に示すように計算される。
【0031】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 これらのアドレスの具体例を図8に示す。図8は、所定
のブロックユニットの先頭からはじまるMPEGビデオデー
タを示す。ここで、I,P,BはそれぞれIピクチャ、Pピク
チャ、またはBピクチャを表し、また添え字の数字は、
ピクチャの表示順序を示す。このブロックユニットに
は、I2で示すエントリーポイントのIピクチャが存在す
る。また、IピクチャI2の次のPピクチャはP5であり、
IピクチャI2の次の次のPピクチャは、P8である。この
時、上記式で演算されたI_start_offset_from_block_un
it_address, I_end_offset_address,P1_end_offset_ad
dress, P2_end_offset_addressは、図に示す関係にな
る。
【0032】すなわち、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を減算した値とされてい
る。
【0033】I_start_offset_from_block_unit_address
は、エントリーポイントのアドレスI start_addressか
ら、ブロックユニットのデータの先頭のアドレスblock_
unit_addressを減算した値とされている。
【0034】なお、記録するトランスポートストリーム
の中に複数のプログラムが含まれる場合、エントリーポ
イントの情報は、プログラム毎に区別して作成される。
また、すべてのプログラムについて、エントリーポイン
トデータを用意できない場合を考慮して、エントリーポ
イントマップは、プログラム毎にエントリーポイントデ
ータが存在するかどうかを示す情報(parsed_program_fl
ag)を有する。
【0035】記録媒体に記録したトランスポートストリ
ームを編集した場合、そのブロックユニットマップは変
更(更新)される。次に、その方法を説明する。図9
(A)は、図4に示すトランスポートストリームの先頭の
2パケットを消去する場合の例を示す。図9(B)は、こ
のようにしてパケットが部分消去された後のトランスポ
ートストリームを示す。図10は、図9(B)のトランス
ポートストリームのブロックユニットマップを示す。こ
のようにブロックユニットの途中までのデータが消去さ
れた場合、最初のブロックユニットBU0の時間長(first
_block_unit_size)が変化するので、これが書き換えら
れる。図9(B)の場合は、ブロックユニットBU0のデータ
長delta_block_unit_timeが、ブロックユニットBU1の先
頭アドレスT(BU1)と、消去後のブロックユニットBU0の
先頭のパケットxのタイムスタンプの差分値に変更され
る。
【0036】次に上述のブロックユニットマップのシン
タックスの例を図11と図12に示す。図11と図12
は、それぞれブロックユニットマップのヘッダ部(Block
UnitMapHeader()) とデータ部(BlockUnitMapData()) を
表す。ブロックユニットマップをファイルとして記録す
る時は、ヘッダ部とデータ部を1つのファイルにして記
録しても良いし、別々のファイルとして記録しても良
い。BlockUnitMapHeader()のstart_time, end_time
は、それぞれ、このブロックユニットマップの開始時刻
と終了時刻を示し、例えば、あるトランスポートストリ
ームを記録する時の記録開始時刻と記録終了時刻を示
す。first_block_unit_sizeは、最初のブロックユニッ
トの時間長を示す。block_unit_size は、第2番目以降
のブロックユニットの時間長を示す。number_of_block_
unit_entriesは、トランスポートストリームの中のブロ
ックユニットの数を示す。BlockUnitMapData()には、nu
mber_of_block_unit_entriesで示される数のdelta_bloc
k_unit_address(図5)が書かれる。
【0037】また、上述のエントリーポイントマップの
シンタックスの第1の例を、図13乃至図15に示す。
図13は、エントリーポイントマップのヘッダ部(Entry
PointMapHeader()) を表し、図14はエントリーポイン
トマップのデータ部(EntryPointMapData())を表す。図
15は、さらに図14のentry_point_data()のシンタッ
クスを表わしている。エントリーポイントマップをファ
イルとして記録する時は、ヘッダ部とデータ部を1つの
ファイルにして記録しても良いし、別々のファイルとし
て記録しても良い。
【0038】図13のEntryPointMapHeader()のnumber_
of_programsは、トランスポートストリームの中のプロ
グラム数を示す。このシンタックスの第3行目から第6
行目には、記録する各プログラムについて、エントリー
マップテーブルが存在するかどうかを示す情報がある。
第4行目のprogram_numberは、プログラムを特定(識
別)する情報であり、対応するプログラムのPMT(Progra
m Map Table)に書かれている情報である。第5行目のpa
rsed_program_flagは、そのプログラムのエントリーポ
イントデータが存在するかどうかを示す。
【0039】第8行目から第10行目には、記録する各
プログラムのPMTの情報が続く。MPEG2_TS_program_ma
p_section()は、記録するトランスポートストリームの
中から抽出した、MPEG2 systems規格で規定されている
PMTである。ここで、NUMBER_OF_ParsedProgramsは、par
sed_program_flagが「1」であるプログラムの数であ
る。第8行目のNUMBER_OF_ParsedProgramsのループの中
でデータが現れる順番は、第3行目のnumber_of_progra
msのループでparsed_program_flag が「1」であるprog
ram_numberが現れる順番である。
【0040】図14のEntryPointMapData()には、記録
する各プログラムについてのエントリーポイントのデー
タが記述される。1つのブロックユニットについてのエ
ントリーポイントのパラメータは、entry_point_flagと
entry_point_data()である。1つのブロックユニットに
ついてのentry_point_data()の内容は、図15に示すよ
うに、entry_point_time_stamp, I_start_offset_from_
block_unit_address,I_end_offset_address, P1_end_o
ffset_address, P2_end_offset_addressである。ここ
で、entry_point_time_stampは、エントリーポイントの
トランスポートパケットのストリーム上の時刻、また
は、エントリーポイントのIピクチャのPTS(Presentati
on Time Stamp)に基づいて計算される。PTSは、MPEG2
システムズ規格のPES パケットのヘッダに付加されてい
る情報である。
【0041】また、上述のエントリーポイントマップの
シンタックスの第2の例を、図16に示す。EntryPoint
MapHeader()とentry_point_data()の構成は、上述の第
1の例における図13または図15に示す場合と同様で
ある。この図16と図14を比較して明らかなように、
各プログラムについてのエントリーポイントのデータの
並び方が、図14の第1の例とは異なる。
【0042】次に、以下に示す状態の第1の例と第2の
例のそれぞれの場合のエントリーマップのデータの並び
の例を示す。ここでは、図17に示すように、トランス
ポートストリームの中に3個のプログラム(program#1,
program#2, program#3)が多重化されていて、ブロッ
クユニットBUi(i=0, 1, 2, 3)毎に、各プログラ
ムのエントリーポイントがあるものとする。この場合、
各パラメータは次のようになる。
【0043】 number_of_block_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 図18は、第1の例(図14の例)の場合のエントリー
ポイントマップを示す。この場合、プログラム毎にエン
トリーポイントデータのリストが別れた形になる。すな
わち、program#1のEntryPointMapDataは、図18(A)に
示すように、ブロックユニットBU0乃至BU3のそれぞれ
に、entry_point_dataとして、entry_point_data#1-1
乃至entry_point_data#1-4が存在するため、entry_po
int_flagはそれぞれ「1」とされる。
【0044】なお、entry_point_data#A-Bは、program_
number=AのB番目のエントリーポイントについてのentr
y_point_data()を表わす。
【0045】program#2のEntryPointMapDataは、図1
8(B)に示すように、ブロックユニットBU1, BU3に
は、entry_point_dataが存在しないため、そのentry_po
int_flagは「0」とされる。これに対して、ブロックユ
ニットBU0, BU2においては、それぞれentry_point_da
ta#2-1,entry_point_data#2-2が存在するため、そ
のentry_point_flagは「1」とされる。
【0046】さらに、program#3のEntryPointMapData
のブロックユニットBU0, BU2には、entry_point_data
が存在しないため、entry_point_flagは「0」とされ
る。ブロックユニットBU1, BU3には、entry_point_da
ta#3-1,entry_point_data#3-2がそれぞれ存在する
ため、そのentry_point_flagは「1」とされている。
【0047】これらのentry_point_flagと、entry_poin
t_dataが、EntryPointMapDataに記述される。
【0048】また、図19は、第2の例(図16の例)
の場合のエントリーポイントマップを示す。
【0049】この場合、ブロックユニット毎に各プログ
ラムのエントリーポイントデータが時間順に並ぶ形にな
り、エントリーポイントデータのリストは1つの形とな
る。すなわち、ブロックユニットBU0において、3つの
プログラムprogram#1乃至#3が記述され、それぞれに
ついて、entry_point_flagと対応するentry_point_data
が記述される。この例では、program#3には、entry_po
int_dataが存在しないため、そのentry_point_flagは
「0」とされ、program#1, #2については、entry_poi
nt_data#1-1, #2-1が存在するため、そのentry_poi
nt_flagは「1」とされている。
【0050】その他のブロックユニットBU1乃至BU3に
おいても、program#1乃至#3それぞれについて、entry
_point_flagと、entry_point_dataが記述される。
【0051】次に、入力されたトランスポートストリー
ムから、上述のテーブルを作成してトランスポートスト
リームとともに、記録媒体に記録する動画像記録装置1
の構成例を図20に示す。
【0052】端子10から入力されるトランスポートス
トリームには、1つまたは複数のAVプログラムが多重化
されている。端子22には、ユーザインタフェースによ
って選択されたAVプログラムのチャネル(サービス名)
が入力される。ここで選択されるチャネル数は、1つで
も複数でも良い。
【0053】PIDフィルタ11は、入力されたトランス
ポートストリームの中から、ストリーム解析部12によ
り指定されたPID(Packet ID)のトランスポートパケット
を取り出す。PIDは、トランスポートパケットのヘッダ
の固定位置にある13ビット長の符号であり、そのトラ
ンスポートパケットのペイロードにストアされているデ
ータのタイプを表す。はじめにPIDフィルタ11は、PID
=0x0000であるPAT(Program Association Table)の
トランスポートパケットを取り出す。PATには、トラン
スポートストリームに多重化されている各プログラムの
PMT(Program Map Table)のトランスポートパケットのPI
Dが書かれている。PIDフィルタ11から出力されるPAT
のトランスポートパケットは、ストリーム解析部12へ
入力される。
【0054】カウンタ24は、記録するトランスポート
ストリームの先頭パケットから現在のパケットまでのパ
ケット数を計数し、現在のパケットナンバーを、ブロッ
クユニットマップ作成部23とエントリーポイントマッ
プ作成部16へ出力する。
【0055】ストリーム解析部12は、PCR(Program Cl
ock Reference)を伝送するトランスポートパケットから
PCRを抽出して、PLL部13へ出力する。PCRを伝送する
トランスポートパケットのPIDが複数ある場合は、どれ
か1つのPIDのパケットからPCRが抽出される。PLL部1
3は、入力されたPCRに同期して、27MHzの周波数のク
ロックを生成し、そのクロックをタイムスタンプ発生部
14に出力する。
【0056】タイムスタンプ発生部14は、入力された
クロックをカウントし、そのカウント値に対応したタイ
ムスタンプを生成する。このタイムスタンプは、最初に
記録するトランスポートパケットのタイムスタンプをゼ
ロとすれば、そのトランスポートストリームの記録後の
経過時間を表すことになる。このタイムスタンプは、ス
トリーム解析部12、タイムスタンプ付加部15、およ
びブロックユニットマップ作成部23へ出力される。
【0057】タイムスタンプ付加部15は、PIDフィル
タ11から入力されたトランスポートパケットに、その
到着時刻を示すタイムスタンプを付加し、タイムスタン
プの付加したトランスポートパケットをファイルシステ
ム部17へ出力する。
【0058】ブロックユニットマップ作成部23は、カ
ウンタ24から入力されるパケットナンバーと、タイム
スタンプ発生部14から入力されるタイムスタンプに基
づいて、上述のブロックユニットマップを作成する。作
成されたブロックユニットマップは、エントリーポイン
トマップ作成部16とファイルシステム部17へ出力さ
れる。
【0059】ストリーム解析部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などのス
トリームタイプを表す。
【0060】ストリーム解析部12はまた、記録するス
トリームのエントリーポイントデータを作成し、エント
リーポイントマップ作成部16へ入力する。エントリー
ポイントデータの内容は、図15に示すものである。な
お、エントリーポイントのタイムスタンプをエントリー
ポイントのPTSとする場合、PTSはストリーム解析部12
が入力ストリームから取り出すので、タイムスタンプ発
生部14により作成したタイムスタンプをストリーム解
析部12へ入力する必要はない。
【0061】エントリーポイントマップ作成部16は、
エントリーポイントデータをプログラム毎にテーブル化
し、上述のエントリーポイントマップを作成し、ファイ
ルシステム部17へ出力する。
【0062】次に、その動作について説明する。PIDフ
ィルタ11は、端子10からトランスポートストリーム
が入力されると、PID=0x0000であるPIDを含むト
ランスポートパケットを抽出し、ストリーム解析部12
に出力する。ストリーム解析部12は、この時、図21
のフローチャートに示す処理を実行する。
【0063】ステップS11で、ストリーム解析部12
は、PIDフィルタ11からPID=0x0000のトランス
ポートパケットを受信すると、そのPATから、端子22
を介して指令された各プログラムのPMTのトランスポー
トパケットのPIDを取得する。
【0064】ステップS12で、ストリーム解析部12
は、各プログラムのPMTのPIDをPIDフィルタ11にセッ
トする。PIDフィルタ11は、これらPMTのPIDをもつト
ランスポートパケットを取り出すと、それをストリーム
解析部12へ出力する。
【0065】ステップS13で、ストリーム解析部12
は、PIDフィルタ11からPMTのトランスポートパケット
を受信する。PMTには、そのプログラムを構成するビデ
オストリームやオーディオストリームをペイロードに持
つトランスポートパケットのPIDやPCR(Program Clock R
eference)を伝送しているパケットのPIDが書かれてい
る。ストリーム解析部12は、ユーザインタフェースに
よって選択された各プログラムを構成するビデオストリ
ームやオーディオストリームをペイロードに持つトラン
スポートパケットのPIDとPCRを伝送しているパケットの
PIDをここで取得する。
【0066】ステップS14で、ストリーム解析部12
は、ユーザインタフェースによって選択された各プログ
ラムを構成するビデオストリームやオーディオストリー
ムをペイロードに持つトランスポートパケットのPID と
PCRを伝送しているパケットのPIDを、PIDフィルタ11
にセットする。
【0067】なお、あらかじめEPG(Electrical Program
Guide)等を伝送するサービスインフォメーションのパ
ケットのPIDがわかっている場合は、これらのPIDもま
た、PIDフィルタ11にセットされ、それらPIDのパケッ
トも、PIDフィルタ11から出力される。
【0068】このようにして、PIDフィルタ11により
抽出されたトランスポートパケットは、カウンタ24、
ストリーム解析部12およびタイムスタンプ付加部15
に供給される。カウンタ24は、記録するトランスポー
トストリームの先頭のパケットから現在のパケットまで
のパケット数を計数し、現在のパケットナンバを検知す
る。検知された現在のパケットNO.は、ブロックユニッ
トマップ作成部23と、エントリーポイントマップ作成
部16へ供給される。
【0069】また、ストリーム解析部12は、入力され
るトランスポートパケットからPCRを抽出し、PLL部13
へ供給する。PLL部13は、入力されたPCRに同期して、
27MHzの周波数のクロックを生成し、タイムスタンプ
発生部14に供給する。
【0070】タイムスタンプ発生部14は、入力された
クロックをカウントし、そのカウント値に対応するタイ
ムスタンプを生成する。タイムスタンプ付加部15は、
PIDフィルタ11から入力されたトランスポートパケッ
トに、その到着時刻を示す、タイムスタンプ発生部14
が発生したタイムスタンプを付加し、ファイルシステム
部17に供給する。
【0071】ブロックユニットマップ作成部23は、カ
ウンタ24から入力されるパケットナンバと、タイムス
タンプ発生部14から入力されるタイムスタンプに基づ
いて、図5に示したようなブロックユニット毎のblock_
unit_addressと、delta_block_unit_timeとを対応させ
たブロックユニットマップを作成し、エントリーポイン
トマップ作成部16と、ファイルシステム部17へ供給
する。
【0072】ストリーム解析部12はまた、プログラム
毎の上述したプログラム情報を、エントリーポイントマ
ップ作成部16へ供給する。
【0073】このため、ストリーム解析部12は、図2
2と図23に示すような、エントリーポイントの解析処
理を実行する。
【0074】ステップS31でストリーム解析部12
は、記録するプログラムのビデオのPIDと、そのstream_
typeをPIDフィルタ11にセットする。これにより、PID
フィルタ11から、指定したビデオのパケットが、スト
リーム解析部12に供給される。
【0075】ステップS32でストリーム解析部12
は、ビデオパケットのポインタvppを初期化し、vpp=0
とする。ポインタvppは、現在処理している上記PIDのビ
デオパケットの順番を表す。
【0076】ステップS33でストリーム解析部12
は、ビデオパケットのポインタvppをインクリメントす
る(例えば、1だけ増加する)。
【0077】ステップS34で、ストリーム解析部12
は、ペイロードの中のストリームに、MPEGビデオのsequ
ence_header_code(32ビット長で"0x000001B
3"の符号)が含まれているか否かを調べる。sequence_h
eader_codeが含まれていない時は、処理はステップS3
3へ戻る。
【0078】ステップS34で、ペイロードにsequence
_header_codeが含まれていると判定された時は、ステッ
プS35へ進み、ストリーム解析部12は、sequence_h
eader_codeを含むパケット(最初のIピクチャのパケッ
ト)のアドレスをI_start_addressとする(図8)。
【0079】ステップS36でストリーム解析部12
は、ビデオパケットのポインタvppをインクリメントす
る。
【0080】ステップS37で、ストリーム解析部12
は、上記Iピクチャのデータが終了したか否かを調べ
る。Iピクチャのデータがまだ終了していない場合、処
理はステップS36へ戻る。Iピクチャのデータが終了
した場合、処理はステップS38へ進む。
【0081】ステップS38で、ストリーム解析部12
は、Iピクチャが終了するパケットのアドレスをI_end_a
ddressとする(図8)。以上により、最初のIピクチャ
のアドレスが決定されたことになる。
【0082】ストリーム解析部12は、ステップS39
で(ビデオポインタvppはインクリメントしないで)、
次のビデオパケットがシーケンスヘッダコードを含んで
いるか否かを調べる。パケットがシーケンスヘッダコー
ドを含んでいる場合、処理はステップS47へ進む。パ
ケットがシーケンスヘッダコードを含んでいない場合、
処理はステップS40へ進む。
【0083】ストリーム解析部12は、ステップS40
でビデオパケットのポインタvppをインクリメントす
る。
【0084】ストリーム解析部12は、ステップS41
で、PピクチャまたはIピクチャが終了したかどうかを調
べる。PピクチャまたはIピクチャが終了していない場
合、処理はステップS39へ戻る。PピクチャまたはIピ
クチャが終了している場合、処理はステップS42へ進
む。
【0085】ストリーム解析部12は、ステップS42
で、PまたはIピクチャが終了するパケットのアドレスを
P1_end_addressとする(図8)。以上により、Iピクチ
ャの次の最初のPピクチャまたはIピクチャのアドレスが
決定されたことになる。
【0086】ストリーム解析部12は、ステップS43
で(ビデオポインタvppはインクリメントしないで)、
次のビデオパケットがシーケンスヘッダコードを含んで
いないか否かを調べる。ビデオパケットがシーケンスヘ
ッダコードを含んでいる場合、処理はステップS47へ
進む。ビデオパケットがシーケンスヘッダコードを含ん
でいない場合、処理はステップS44へ進む。
【0087】ストリーム解析部12は、ステップS44
でビデオパケットのポインタvppをインクリメントす
る。
【0088】ストリーム解析部12は、ステップS45
でPピクチャまたはIピクチャが終了したかどうかを調べ
る。PピクチャまたはIピクチャが終了していない場合、
処理はステップS43へ戻る。PピクチャまたはIピクチ
ャが終了している場合、処理はステップS46へ進む。
【0089】ストリーム解析部12は、ステップS46
で、PまたはIピクチャが終了するパケットのアドレス
を、P2_end_addressとする(図8)。以上により、Iピ
クチャの次の次のPピクチャまたはIピクチャのアドレス
が決定されたことになる。
【0090】ストリーム解析部12は、ステップS47
でI_start_address, I_end_address, P1_end_address,
P2_end_addressのアドレスを、エントリーポイントマ
ップ作成部16へ出力する。なお、この時、P1_end_ad
dressとP2_end_addressの少くとも一方は存在しない場
合もある。
【0091】ストリーム解析部12は、ステップS48
で、現在のパケットが最後の入力パケットであるかどう
かを判定する。現在のパケットが最後のパケットでない
場合、処理はステップS33へ戻る。現在のパケットが
最後のパケットである場合、処理は終了される。
【0092】以上のビデオストリームの解析は、記録す
るトランスポートストリームの中に複数のプログラムが
ある場合は、それぞれのプログラムのビデオパケットに
対して行なわれる。
【0093】ストリーム解析部12は、以上のようにし
てエントリーポイントデータを生成すると、これをエン
トリーポイントマップ作成部16に供給する。エントリ
ーポイントマップ作成部16は、ストリーム解析部12
より供給されたエントリーポイントデータを、プログラ
ム毎にテーブル化し、図7に示すようなエントリーポイ
ントマップを作成し、ファイルシステム部17に供給す
る。
【0094】以上のようにして、ファイルシステム部1
7には、タイムスタンプ付加部15によりタイムスタン
プが付加されたトランスポートストリームと、その特徴
点を表わす特徴点データとしてのブロックユニットマッ
プと、エントリーポイントマップが、ブロックユニット
マップ作成部23とエントリーポイントマップ作成部1
6からそれぞれ供給される。ファイルシステム部17
は、トランスポートストリームと、それに対応する特徴
点データをファイル化する。
【0095】図24は、このファイル構造の例を表わし
ている。この例においては、トランスポートストリーム
ファイルの中に、3個のプログラムが多重化されてい
る。同図に示すように、エントリーポイントマップは、
ブロックユニットマップに従属する構成とされている。
そして、各エントリーポイントマップは、プログラム毎
にそれぞれ次のデータを有する。 (1) プログラムのprogram_number (2) プログラムのPMTのトランスポートパケットのPID (3) プログラムを構成するビデオのトランスポートパ
ケットのPIDとstream_type (4) プログラムを構成するオーディオのトランスポー
トパケットのPIDとstream_type (5) プログラムのPCRのPID (6) エントリーポイントのリスト ファイルシステム部17により生成されたファイルは、
誤り訂正部18に供給され、誤り訂正符号が付加された
後、変調部19に供給され、所定の方式で変調される。
変調部19より出力された信号は、書き込み部20に供
給され、記録媒体21に書き込まれる。
【0096】以上のようにして、トランスポートストリ
ームとその特徴点データが、記録媒体21に記録され
る。
【0097】以上においては、ブロックユニットマップ
とエントリーポイントマップを、トランスポートストリ
ームから作成するようにしたが、例えば、動画像記録装
置自身が、トランスポートストリームを多重化し、生成
するような場合、その多重化動作時に、ブロックユニッ
トマップとエントリーポイントマップを、作成するよう
にすることもできる。図25は、この場合の構成例を表
わしている。
【0098】すなわち、図25の例においては、多重化
器40に複数(n個)のプログラムの、ビデオとオーデ
ィオのエレメンタリーストリーム#1乃至#nが入力され
ている。システムタイムクロック部42は、27MHzの
周波数のシステムタイムクロックをカウントし、タイム
スタンプを生成し、コントローラ41とブロックユニッ
トマップ作成部43に出力している。コントローラ41
は、多重化器40に入力された各エレメンタリーストリ
ームを解析し、多重化器40が、MPEG2システム規格の
T-STD(Transport Stream System Target Decoder)を満
たして、トランスポートストリームを多重化するよう
に、多重化器40を制御する。
【0099】コントローラ41は、多重化器40から出
力される、トランスポートパケットの数を示すパケット
ナンバーを、ブロックユニットマップ作成部43とエン
トリーポイントマップ作成部44に出力する。ブロック
ユニットマップ作成部43は、コントローラ41より入
力されるパケットナンバと、システムタイムクロック4
2より入力されるタイムスタンプに基づいて、ブロック
ユニットマップを生成する。
【0100】コントローラ41はまた、プログラム情報
とエントリーポイントデータとを、エントリーポイント
マップ作成部44に出力する。エントリーポイントマッ
プ作成部44は、コントローラ41より供給される、パ
ケットナンバ、プログラム情報、およびエントリーポイ
ントデータ、並びにブロックユニットマップ作成部43
より供給されるブロックユニットマップに基づいて、エ
ントリーポイントマップを生成する。
【0101】多重化器40より出力されたトランスポー
トストリーム、ブロックユニットマップ作成部43によ
り作成されたブロックユニットマップ、およびエントリ
ーポイントマップ作成部44により作成されたエントリ
ーポイントマップは、それぞれ、図20に示したファイ
ルシステム部17に供給される。ファイルシステム部1
7乃至記録媒体21までの構成は、図20に示した場合
と同様である。
【0102】この図25に示すような構成の動画像記録
装置1においては、コントローラ41が、多重化器40
により多重化されるエレメンタリーストリームから、プ
ログラム情報と、エントリーポイントデータを生成し、
エントリーポイントマップ作成部44に出力する。ま
た、コントローラ41は、システムタイムクロック42
より入力されるタイムスタンプに対応するパケットナン
バを、ブロックユニットマップ作成部43とエントリー
ポイントマップ作成部44に出力する。
【0103】ブロックユニットマップ作成部43は、コ
ントローラ41から入力されるパケットナンバと、シス
テムタイムクロック42より入力されるタイムスタンプ
に基づいて、ブロックユニットマップを作成する。同様
に、エントリーポイントマップ作成部44は、コントロ
ーラ41より入力されるパケットナンバ、プログラム情
報、およびエントリーポイントデータ、並びにブロック
ユニットマップ作成部43より入力されるブロックユニ
ットマップに基づいて、エントリーポイントマップを作
成する。
【0104】そして、作成されたトランスポートストリ
ーム、ブロックユニットマップおよびエントリーポイン
トマップは、図20に示した場合と同様に、ファイルシ
ステム部17によりファイル化され、誤り訂正部18に
より誤り訂正分が付加される。そして変調部19により
さらに変調された後、書き込み部20により、記録媒体
21に記録される。
【0105】次に、以上のようにして、トランスポート
ストリームファイルと、そのストリームの特徴点データ
が記録された記録媒体21を再生する動画像再生装置に
ついて説明する。図26は、このような動画像再生装置
51の構成例を表わしている。読み出し部61は、記録
媒体21に記録されているデータを読み出し、復調部6
2に出力する。復調部62は、読み出し部61より入力
されたデータを復調して、誤り訂正部63に出力する。
誤り訂正部63は、復調部62より入力されたデータの
誤りを訂正し、ファイルシステム部64に供給する。
【0106】ファイルシステム部64は、誤り訂正部6
3より入力されたデータを、トランスポートストリーム
ファイルと、特徴点データとに分離し、ファイルストリ
ームファイルをデマルチプレクサ65に供給するととも
に、特徴点データを再生制御部67に出力する。再生制
御部67は、端子69からユーザインタフェースを介
し、てユーザより入力された指令に対応して、読み出し
部61、デマルチプレクサ65、およびAVデコーダ66
を制御する。
【0107】デマルチプレクサ65は、ファイルシステ
ム部64より入力されたトランスポートストリームファ
イルから、再生制御部67からの指令に対応するチャネ
ルのビデオデータと、オーディオデータとを抽出し、AV
デコーダ66に出力する。AVデコーダ66は、デマルチ
プレクサ65より入力された、ビデオデータとオーディ
オデータをデコードし、端子68から出力する。
【0108】次に、その動作について説明する。記録媒
体21には、図20(または図25)の動画像記録装置
1で記録したトランスポートストリームファイルと、そ
のストリームの特徴点データが記録されている。トラン
スポートストリームファイルには、1つまたは複数のプ
ログラムが多重化されている。
【0109】はじめに再生制御部67は、読み出し部6
1に対して、ストリームの特徴点データを読み出すよう
に指示する。このとき、読み出し部61は、記録媒体2
1からストリームの特徴点データを読み出し、復調部6
2に出力する。復調部62は、入力されたデータを復調
し、誤り訂正部63に出力する。誤り訂正部63は、入
力されたデータの誤りを訂正し、ファイルシステム部6
4に供給する。ファイルシステム部64は、入力された
ストリーム特徴点データを再生制御部67に出力する。
【0110】端子69からは、ユーザインタフェースに
よって再生を指定されたプログラム番号が入力され、そ
れが再生制御部67へ入力される。再生制御部67は、
そのプログラムのPMTのトランスポートパケットのPID
、プログラムを構成するビデオのトランスポートパケ
ットのPIDとstream_type、プログラムを構成するオーデ
ィオのトランスポートパケットのPIDとstream_type、並
びにPCRのPIDを、特徴点データから読み出し、デマルチ
プレクサ65とAVデコーダ66へ出力する。
【0111】さらに、再生制御部67は、読み出し部6
1に対して、トランスポートストリームファイルを読み
出すように指示する。この指令に対応して、読み出し部
61は、記録媒体21からトランスポートストリームフ
ァイルを読み出す。このデータは、上述した場合と同様
に復調部62、誤り訂正部63、ファイルシステム部6
4の処理を経て、デマルチプレクサ65へ入力される。
【0112】デマルチプレクサ65は、ユーザインタフ
ェースにより指定されたプログラムを構成するビデオと
オーディオのトランスポートパケットを、入力されたト
ランスポートストリームから分離し、それをAVデコーダ
66へ入力する。AVデコーダ66は、ビデオストリーム
とオーディオストリームを復号し、再生ビデオ信号と再
生オーディオ信号として端子68から出力する。
【0113】ユーザインタフェースによってランダムア
クセス再生が指示された場合、再生制御部67は、内部
に記憶されているストリームの特徴点データの内容に基
づいて、記録媒体21からのデータの読み出し位置を決
定し、ランダムアクセス制御情報を読み出し部61へ入
力する。例えば、ユーザによって選択されたプログラム
を所定の時刻から途中再生する場合、再生制御部67
は、ブロックユニットマップに基づいて、指定された時
刻に対応するトランスポートストリームのアドレスを計
算し、そのアドレスからデータを読み出すように読み出
し部61へ指示する。以下に、その手順を説明する。
【0114】ブロックユニットマップのデータからN番
目のブロックユニットの先頭データの時刻block_unit_t
ime(N)は、次の様に計算できる。
【0115】
【数1】 ここで、delta_block_unit_time(i)は、i番目のブロッ
クユニットのdelta_block_unit_timeである。i=0のブロ
ックユニットはBU0である。そして、block_unit_time
(N)がユーザーから指定された時刻よりも大きくなるNが
わかったら、N番目のブロックユニットからデータを読
み出せば良いことがわかる。
【0116】この場合、記録されているトランスポート
ストリーム上の0番目のブロックユニットの先頭データ
のアドレスを0とすれば、N番目(N>0)のブロックユニッ
トの先頭データのアドレスは次のようになる。first_bl
ock_unit_size + (N−1)×block_unit_sizeまた、ユー
ザによって選択されたプログラムに対応するエントリー
ポイントマップのデータが存在する場合、再生制御部6
7は、エントリーポイントデータに基づいて、特殊再生
を制御できる。例えば、高速再生の場合、再生制御部6
7は、エントリーポイント毎のアドレスのストリームデ
ータを順次連続して読み出すように読み出し部61へ指
示する。
【0117】図27は、この場合の再生制御部67の動
作を表わしている。再生制御部67は、ステップS61
で、ユーザからの指令に対応して、内蔵するメモリに、
再生するプログラムのprogram_numberをセットする。
【0118】再生制御部67は、ステップS62で、pa
esed_program_flagから、そのプログラムのエントリー
ポイントデータが存在するか否かを調べる。存在する(p
aesed _program_flag=1である)場合は、ステップS
63へ進む。エントリーポイントデータが存在しない場
合は、エントリーポイントマップを使用したデータアク
セスはできないので、処理は終了される。
【0119】再生制御部67は、ステップS63で、ユ
ーザにより指定された時刻から読み出し開始するブロッ
クユニットの番号BNを上述のようにして計算する。す
なわち、上記した[数1]で計算した値(ブロックユニ
ットの先頭の時刻)が、指定された時刻よりも大きくな
るブロックユニットの番号BNが計算される。
【0120】再生制御部67は、ステップS64で、B
N番目のブロックユニットに、そのプログラムのエント
リーポイントが存在するか否かを、entry_point_flagか
ら調べる。エントリーポイントが存在する(entry_point
_flag=1である)場合は、ステップS65へ進み、存
在しない場合は、ステップS67へ進む。
【0121】再生制御部67は、エントリーポイントが
存在する場合、ステップS65で、entry_point_data()
からエントリーポイントのストリームデータを読み出す
アドレスを計算する。ストリームデータの読み出し開始
アドレスは、I_start_addressであり、読み出し終了ア
ドレスは、I_end_address、P1_end_address、またはP
2_end_addressである。
【0122】再生制御部67は、ステップS66で、ス
テップS65で計算したアドレスに基づいて、エントリ
ーポイントのストリームデータを読み出すように読み出
し部61に指示する。読み出し部61はこの指示に対応
して読み出し動作を実行する。
【0123】再生制御部67は、ステップS67で、番
号BNをインクリメントする。再生制御部67は、ステ
ップS68で、処理の終了が指令されたか否かを判定
し、処理の終了が指令されていない場合は、ステップS
64へ戻り、そうでない場合は処理を終了する。
【0124】読み出し部61は、指定されたランダムア
クセスポイントからデータを読み出す。読み出されたデ
ータは、復調部62、誤り訂正部63、ファイルシステ
ム部64の処理を経て、デマルチプレクサ65へ入力さ
れ、AVデコーダ66で復号され、出力される。
【0125】このステップS63の計算処理の詳細につ
いて、図28と図29のフローチャートを参照してさら
に説明する。ステップS81において、再生制御部67
に、端子69からprogram_numberと、再生開始時刻Tst
が入力されると、ステップS82において、再生制御部
67は、ステップS81で入力された再生開始時刻Tst
が、特徴点データに含まれる、トランスポートストリー
ムの開始時刻start_time(図3(B))と等しいか否かを判
定する。再生開始時刻Tstが開始時刻start_timeと等し
い場合には、ステップS86に進み、再生制御部67
は、ブロックユニットの番号を表わす変数Nに0を設定
し、そのブロックユニット(0番目のブロックユニッ
ト)のblock_unit_address(N)に0を設定する。
【0126】これに対して、ステップS82において、
再生開始時刻Tstが開始時刻starttimeと等しくないと判
定された場合、ステップS83に進み、再生制御部67
は、ブロックユニットマップのヘッダ部を読み込み、ス
テップS84において、ブロックユニットマップに基づ
いて、次の不等式を満たす最小の値Nを計算する。
【0127】Tst≦block_unit_time(N) ここで、block_unit_time(N)は、次式で表される。
【0128】
【数2】 ステップS85において、再生制御部67は、N番目の
ブロックユニットのアドレスblock_unit_address(N)
を、次式から演算する。
【0129】 block_unit_address(N) = first_block_unit_size +(N−1)×block_unit_size N番目のブロックユニットの先頭データの時刻block_un
it_address(N)が求められた時、ステップS87におい
て、再生制御部67は、N番目のブロックユニットのア
ドレスblock_unit_address(N)からのデータ読み出し
を、読み出し部61に指示する。
【0130】読み出し部61は、再生制御部67からの
指令に対応して、ステップS88において、アドレスbl
ock_unit_address(N)からのトランスポートストリーム
を記録媒体21から読み出す。読み出されたデータは、
復調部62、誤り訂正部63、ファイルシステム部64
を介して、デマルチプレクサ65に供給される。
【0131】ステップS89において、再生制御部67
は、デマルチプレクサ65に対して、ユーザより再生が
指示された、プログラムのprogram_numberを出力する。
デマルチプレクサ65は、ステップS90において、再
生制御部67より指示された、program_numberのプログ
ラムのトランスポートパケットを分離し、AVデコーダ6
6に出力する。ステップS91において、AVデコーダ6
6は、デマルチプレクサ65より入力されたデータをデ
コードし、端子68から出力する。
【0132】次に、第2の実施の形態について説明す
る。この実施の形態の動画像記録装置は、1つまたは複
数のプログラムが多重化されているトランスポートスト
リームをディスク、テープなどの記録媒体に記録する時
に、ストリーム上の時間を所定のタイムユニット(単位
時間)毎に区切り、タイムユニット毎のデータのストリ
ーム上のアドレスを計算する。そして、このタイムユニ
ット毎のデータのストリーム上のアドレスを示すタイム
ユニットマップが作成される。さらに、記録するトラン
スポートストリームのプログラム毎のエントリーポイン
ト(ランダムアクセスポイント)の場所を示すエントリ
ーポイントマップが作成される。エントリーポイントマ
ップは、タイムユニットマップに従属する構造を有す
る。このタイムユニットマップについて、以下に説明す
る。
【0133】図30は、複数のAVプログラムが多重化さ
れたトランスポートストリームを示す。ここで横軸は、
時間を示し、Δtの間隔のタイムユニットTUi(i=0,
1,2 ・・・)毎に区切られている。文字TUの後ろに続
く数字iは、タイムユニットTUの時間順序を示す。最初
のオリジナル記録の時は、すべてのタイムユニットTUの
時間長は同じ値Δtである。値Δtの大きさは、例えば
0.5秒とされる。入力トランスポートストリームの中
から1つまたは複数のAVプログラムが記録のために選択
される。選択されたトランスポートパケットは斜線を付
して示されている。選択されたトランスポートパケット
は、一般に図30(B)に示すように、不規則なタイミン
グで現れ、Δtの間隔のタイムユニットTUi毎のトランス
ポートパケットの数は変化する。
【0134】選択されたトランスポートパケットは、図
31に示すように、間隔を詰めて記録媒体に記録され
る。この時、各トランスポートパケットには、それぞれ
のストリーム上の時刻を示すタイムスタンプが付加され
る。このタイムスタンプは、例えば、DVフォーマットで
規定されているところのトランスポートパケットに付加
される4バイト長のTSP_extra_headerと同様のものとさ
れる。
【0135】図31において、横軸は記録されたトラン
スポートストリームのバイト位置を示すアドレスであ
る。また、横軸上にタイムユニット毎に最初に入力され
たトランスポートパケットの先頭アドレスを示す。この
例では、タイムユニットTU0,TU1, TU2では、それぞ
れ4個、3個、または6個のトランスポートパケットが
記録されている。2つのタイムユニットにまたがって入
力されるトランスポートパケットは、前側のタイムユニ
ットに含められる。タイムユニットTU0, TU1,TU2の
最初に入力されたトランスポートパケットの先頭アドレ
スを、それぞれA(TU0), A(TU1), A(TU2)と表わすも
のとする。
【0136】図32は、タイムユニットマップ、すなわ
ち記録されたトランスポートストリームのタイムユニッ
ト毎のデータの先頭アドレスのテーブルの例を示す。こ
こで、time_unit_addressは、記録されたストリーム上
のタイムユニットの先頭データのアドレスを示す。タイ
ムユニットマップでは、タイムユニット毎のデータ長de
lta_time_unit_addressがテーブル化される。
【0137】この例においては、タイムユニットTU0の
データ長は、タイムユニットTU1の先頭のアドレスA(TU
1)と、タイムユニット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))で表わ
される。
【0138】次に、上述のエントリーポイントマップに
ついて説明する。図33に示すトランスポートストリー
ムは、図31に示したトランスポートストリームと同様
のトランスポートストリームである。ここで斜線で示す
トランスポートパケットにおいて、エントリーポイント
が開始しているものとする。具体的には、エントリーポ
イントにおいて、MPEGビデオのシーケンスヘッダとIピ
クチャデータが開始しているものとする。所定のタイム
ユニットの中にエントリーポイントが存在する場合、そ
のタイムユニットのデータの先頭アドレスからエントリ
ーポイントのアドレスまでのオフセットアドレスが計算
される。すなわち、図33の例では、タイムユニットTU
0とTU2にエントリーポイント(Iピクチャ)が存在す
る。そこで、タイムユニットTU0においては、その先頭
のアドレスA(TU0)から、Iピクチャの先頭のアドレスI_
start_addressまでの間隔aが、オフセットアドレスと
して計算される。同時に、タイムユニットTU2において
は、その先頭のアドレスA(TU2)から、Iピクチャの先頭
のアドレスI_start_addressまでの間隔bがオフセット
アドレスとして計算される。
【0139】図34は、エントリーポイントマップ、す
なわちタイムユニット毎のエントリーポイントまでのオ
フセットアドレスのテーブルの例を示す。entry_point_
flagは、対応するタイムユニットTUiにエントリーポイ
ントが存在する時、「1」とされ、存在しない時、
「0」とされる。entry_point_flagが「1」であるタイ
ムユニットについて、そのタイムユニットのデータの先
頭アドレスtime_unit_addressから、エントリーポイン
トのアドレスI_start_addressまでのオフセットアドレ
スI_start_offset_from_time_unit_addressは、次式に
示すように計算される。
【0140】I_start_offset_from_time_unit_address=
I_start_address - time_unit_address また、エントリーポイント毎に、エントリーポイントの
Iピクチャデータの終了アドレスI_end_address、エント
リーポイントのIピクチャの次のPまたはIピクチャの終
了アドレスP1_end_address、エントリーポイントのIピ
クチャの次の次のPまたはIピクチャの終了アドレスP2_
end_addressが、次式に示すように計算される。
【0141】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 これらのアドレスの具体例を図35に示す。図35は、
所定のタイムユニットの先頭からはじまるMPEGビデオデ
ータを示す。ここで、I,P,BはそれぞれIピクチャ、Pピ
クチャ、またはBピクチャを表し、また添え字の数字
は、ピクチャの表示順序を示す。このタイムユニットに
は、I2で示すエントリーポイントのIピクチャが存在す
る。また、IピクチャI2の次のPピクチャはP5であり、
IピクチャI2の次の次のPピクチャは、P8である。この
時、上記式で演算されたI_start_offset_from_time_uni
t_address, I_end_offset_address,P1_end_offset_add
ress, P2_end_offset_addressは、図に示す関係にな
る。
【0142】すなわち、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を減算した値とされてい
る。
【0143】I_start_offset_from_time_unit_address
は、エントリーポイントのアドレスIstart_addressか
ら、タイムユニットのデータの先頭のアドレスtime_uni
t_addressを減算した値とされている。
【0144】なお、記録するトランスポートストリーム
の中に複数のプログラムが含まれる場合、エントリーポ
イントの情報は、プログラム毎に区別して作成される。
また、すべてのプログラムについて、エントリーポイン
トデータを用意できない場合を考慮して、エントリーポ
イントマップは、プログラム毎にエントリーポイントデ
ータが存在するかどうかを示す情報(parsed_program_fl
ag)を有する。
【0145】記録媒体に記録したトランスポートストリ
ームを編集した場合、そのタイムユニットマップは変更
(更新)される。次に、その方法を説明する。図36
(A)は、図31に示すトランスポートストリームの先頭
の2パケットと終わりの3パケットを消去する場合の例
を示す。図36(B)は、このようにしてパケットが部分
消去された後のトランスポートストリームを示す。図3
7は、図36(B)のトランスポートストリームのタイム
ユニットマップを示す。このようにタイムユニットの途
中までのデータが消去された場合、最初のタイムユニッ
トTU0の時間長(first_time_unit_size)が変化するの
で、これが書き換えられる。
【0146】図36(B)の場合は、タイムユニットTU0
の時間長が、タイムユニットTU1の先頭のパケットPbの
タイムスタンプ(A(TU1))と、消去後のタイムユニットT
U0の先頭のパケットPaのタイムスタンプ(C)の差分値(A
(TU1)−C)に変更される。また、タイムユニットTU2の
時間長は、消去後のタイムユニットTU2の最後のパケッ
トのアドレスDと、そのタイムユニットTU2の先頭のパ
ケットのアドレスA(TU2)の差(D−A(TU2))に更新され
る。タイムユニットマップが変更された場合は、それに
関係するエントリーポイントマップも変更される。
【0147】次に上述のタイムユニットマップのシンタ
ックスの例を図38と図39に示す。図38と図39
は、それぞれタイムユニットマップのヘッダ部(TimeUni
tMapHeader()) とデータ部(TimeUnitMapData()) を表
す。タイムユニットマップをファイルとして記録する時
は、ヘッダ部とデータ部を1つのファイルにして記録し
ても良いし、別々のファイルとして記録しても良い。Ti
meUnitMapHeader()のstart_time, end_time は、それぞ
れ、このタイムユニットマップの開始時刻と終了時刻を
示し、例えば、あるトランスポートストリームを記録す
る時の記録開始時刻と記録終了時刻を示す。first_time
_unit_sizeは、最初のタイムユニットの時間長を示す。
time_unit_size は、第2番目以降のタイムユニットの
時間長を示す。number_of_time_unit_entriesは、トラ
ンスポートストリームの中のタイムユニットの数を示
す。TimeUnitMapData()には、number_of_time_unit_ent
riesで示される数のdelta_time_unit_address(図32)
が書かれる。
【0148】また、上述のエントリーポイントマップの
シンタックスの第1の例を、図40と図41に示す。な
お、エントリーポイントマップのヘッダ部(EntryPointM
apHeader()) の構成は、図13に示した場合と同様であ
るので、ここでは省略する。図40はエントリーポイン
トマップのデータ部(EntryPointMapData())を表す。図
41は、さらに図40のentry_point_data()のシンタッ
クスを表わしている。エントリーポイントマップをファ
イルとして記録する時は、ヘッダ部とデータ部を1つの
ファイルにして記録しても良いし、別々のファイルとし
て記録しても良い。
【0149】図40のEntryPointMapData()には、記録
する各プログラムについてのエントリーポイントのデー
タが記述される。1つのタイムユニットについてのエン
トリーポイントのパラメータは、entry_point_flagとen
try_point_data()である。1つのタイムユニットについ
てのentry_point_data()の内容は、図41に示すよう
に、entry_point_time_stamp, I_start_offset_from_ti
me_unit_address, I_end_offset_address, P1_end_off
set_address, P2_end_offset_addressである。ここ
で、entry_point_time_stampは、エントリーポイントの
トランスポートパケットのストリーム上の時刻、また
は、エントリーポイントのIピクチャのPTS(Presentati
on Time Stamp)に基づいて計算される。PTSは、MPEG2
システムズ規格のPES パケットのヘッダに付加されてい
る情報である。
【0150】また、上述のエントリーポイントマップの
シンタックスの第2の例は、図16に示した場合と同様
であるので、ここでは省略する。EntryPointMapHeade
r()とentry_point_data()の構成は、上述の第1の例に
おける図13または図41に示す場合と同様である。図
16と図40を比較して明らかなように、各プログラム
についてのエントリーポイントのデータの並び方が、図
40の第1の例とは異なる。
【0151】次に、以下に示す状態の第1の例と第2の
例のそれぞれの場合のエントリーマップのデータの並び
の例を示す。ここでは、図42に示すように、トランス
ポートストリームの中に3個のプログラム(program#1,
program#2, program#3)が多重化されていて、タイム
ユニットTUi(i=0, 1, 2, 3)毎に、各プログラム
のエントリーポイントがあるものとする。この場合、各
パラメータは次のようになる。
【0152】 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 図43は、第1の例(図40の例)の場合のエントリー
ポイントマップを示す。この場合、プログラム毎にエン
トリーポイントデータのリストが別れた形になる。すな
わち、program#1のEntryPointMapDataは、図43(A)に
示すように、タイムユニットTU0乃至TU3のそれぞれ
に、entry_point_dataとして、entry_point_data#1-1
乃至entry_point_data#1-4が存在するため、entry_po
int_flagはそれぞれ「1」とされる。
【0153】なお、entry_point_data#A-Bは、program_
number=AのB番目のエントリーポイントについてのentr
y_point_data()を表わす。
【0154】program#2のEntryPointMapDataは、図4
3(B)に示すように、タイムユニットTU1, TU3には、e
ntry_point_dataが存在しないため、そのentry_point_f
lagは「0」とされる。これに対して、タイムユニットT
U0, TU2においては、それぞれentry_point_data#2-
1,entry_point_data#2-2が存在するため、そのentr
y_point_flagは「1」とされる。
【0155】さらに、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」とされている。
【0156】これらのentry_point_flagと、entry_poin
t_dataが、EntryPointMapDataに記述される。
【0157】また、図44は、第2の例(図16の例)
の場合のエントリーポイントマップを示す。
【0158】この場合、タイムユニット毎に各プログラ
ムのエントリーポイントデータが時間順に並ぶ形にな
り、エントリーポイントデータのリストは1つの形とな
る。すなわち、タイムユニットTU0において、3つのプ
ログラムprogram#1乃至#3が記述され、それぞれにつ
いて、entry_point_flagと対応するentry_point_dataが
記述される。この例では、program#3には、entry_poin
t_dataが存在しないため、そのentry_point_flagは
「0」とされ、program#1, #2については、entry_poi
nt_data#1-1, #2-1が存在するため、そのentry_poi
nt_flagは「1」とされている。
【0159】その他のタイムユニットTU1乃至TU3にお
いても、program#1乃至#3それぞれについて、entry_p
oint_flagと、entry_point_dataが記述される。
【0160】次に、入力されたトランスポートストリー
ムから、上述のテーブルを作成してトランスポートスト
リームとともに、記録媒体に記録する動画像記録装置1
の構成例を図45に示す。
【0161】この構成例においては、図20におけるブ
ロックユニットマップ作成部23が、タイムユニットマ
ップ作成部123に変更されている。その他の構成と動
作は、図20乃至図23における場合と同様であるの
で、その詳細な説明は省略する。
【0162】ストリーム解析部12は、エントリーポイ
ントデータを生成すると、これをエントリーポイントマ
ップ作成部16に供給する。エントリーポイントマップ
作成部16は、ストリーム解析部12より供給されたエ
ントリーポイントデータを、プログラム毎にテーブル化
し、図34に示すようなエントリーポイントマップを作
成し、ファイルシステム部17に供給する。
【0163】ファイルシステム部17には、タイムスタ
ンプ付加部15によりタイムスタンプが付加されたトラ
ンスポートストリームと、その特徴点を表わす特徴点デ
ータとしてのタイムユニットマップと、エントリーポイ
ントマップが、タイムユニットマップ作成部123とエ
ントリーポイントマップ作成部16からそれぞれ供給さ
れる。ファイルシステム部17は、トランスポートスト
リームと、それに対応する特徴点データをファイル化す
る。
【0164】図46は、このファイル構造の例を表わし
ている。この例においては、トランスポートストリーム
ファイルの中に、3個のプログラムが多重化されてい
る。同図に示すように、エントリーポイントマップは、
タイムユニットマップに従属する構成とされている。各
エントリーポイントマップが、プログラム毎に有するデ
ータは、図24における場合と同様である。
【0165】ファイルシステム部17により生成された
ファイルは、誤り訂正部18に供給され、誤り訂正符号
が付加された後、変調部19に供給され、所定の方式で
変調される。変調部19より出力された信号は、書き込
み部20に供給され、記録媒体21に書き込まれる。
【0166】以上のようにして、トランスポートストリ
ームとその特徴点データが、記録媒体21に記録され
る。
【0167】以上においては、タイムユニットマップと
エントリーポイントマップを、トランスポートストリー
ムから作成するようにしたが、例えば、動画像記録装置
自身が、トランスポートストリームを多重化し、生成す
るような場合、その多重化動作時に、タイムユニットマ
ップとエントリーポイントマップを、作成するようにす
ることもできる。図47は、この場合の構成例を表わし
ている。
【0168】図47の例においては、図25の例におけ
るブロックユニットマップ作成部43が、タイムユニッ
トマップ作成部143に変更されている。その他の構成
と動作は、図25における場合と同様であるので、ここ
では省略する。
【0169】以上のようにして、トランスポートストリ
ームファイルと、そのストリームの特徴点データが記録
された記録媒体21を再生する動画像再生装置は、図2
6に示した場合と同様となる。
【0170】次に、その動作について説明する。記録媒
体21には、図45(または図47)の動画像記録装置
1で記録したトランスポートストリームファイルと、そ
のストリームの特徴点データが記録されている。トラン
スポートストリームファイルには、1つまたは複数のプ
ログラムが多重化されている。
【0171】はじめに再生制御部67は、読み出し部6
1に対して、ストリームの特徴点データを読み出すよう
に指示する。このとき、読み出し部61は、記録媒体2
1からストリームの特徴点データを読み出し、復調部6
2に出力する。復調部62は、入力されたデータを復調
し、誤り訂正部63に出力する。誤り訂正部63は、入
力されたデータの誤りを訂正し、ファイルシステム部6
4に供給する。ファイルシステム部64は、入力された
ストリーム特徴点データを再生制御部67に出力する。
【0172】端子69からは、ユーザインタフェースに
よって再生を指定されたプログラム番号が入力され、そ
れが再生制御部67へ入力される。再生制御部67は、
そのプログラムのPMTのトランスポートパケットのPID
、プログラムを構成するビデオのトランスポートパケ
ットのPIDとstream_type、プログラムを構成するオーデ
ィオのトランスポートパケットのPIDとstream_type、並
びにPCRのPIDを、特徴点データから読み出し、デマルチ
プレクサ65とAVデコーダ66へ出力する。
【0173】さらに、再生制御部67は、読み出し部6
1に対して、トランスポートストリームファイルを読み
出すように指示する。この指令に対応して、読み出し部
61は、記録媒体21からトランスポートストリームフ
ァイルを読み出す。このデータは、上述した場合と同様
に復調部62、誤り訂正部63、ファイルシステム部6
4の処理を経て、デマルチプレクサ65へ入力される。
【0174】デマルチプレクサ65は、ユーザインタフ
ェースにより指定されたプログラムを構成するビデオと
オーディオのトランスポートパケットを、入力されたト
ランスポートストリームから分離し、それをAVデコーダ
66へ入力する。AVデコーダ66は、ビデオストリーム
とオーディオストリームを復号し、再生ビデオ信号と再
生オーディオ信号として端子68から出力する。
【0175】ユーザインタフェースによってランダムア
クセス再生が指示された場合、再生制御部67は、内部
に記憶されているストリームの特徴点データの内容に基
づいて、記録媒体21からのデータの読み出し位置を決
定し、ランダムアクセス制御情報を読み出し部61へ入
力する。例えば、ユーザによって選択されたプログラム
を所定の時刻から途中再生する場合、再生制御部67
は、タイムユニットマップに基づいて、指定された時刻
に対応するトランスポートストリームのアドレスを計算
し、そのアドレスからデータを読み出すように読み出し
部61へ指示する。以下に、その手順を説明する。
【0176】ゼロ番目のタイムユニットTU0の先頭デー
タの時刻をstart_timeとすれば、N番目(N>0)のタイム
ユニットの先頭データの時刻は、(start_time+first_t
ime_unit_size+(N-1)* time_unit_size)となる。ユー
ザから指定された時刻よりもタイムユニットの先頭デー
タの時刻が大きくなるタイムユニットの番号がわかった
ら、その番号のタイムユニットからデータを読み出せば
良いことがわかる。
【0177】この場合、記録されたストリーム上の0番
目のタイムユニットの先頭データのアドレスを0とすれ
ば、N番目のタイムユニットの先頭データのアドレスtim
e_unit_address(N)は、次の様に計算できる。
【0178】
【数3】 また、ユーザによって選択されたプログラムに対応する
エントリーポイントマップのデータが存在する場合、再
生制御部67は、エントリーポイントデータに基づい
て、特殊再生を制御できる。例えば、高速再生の場合、
再生制御部67は、エントリーポイント毎のアドレスの
ストリームデータを順次連続して読み出すように読み出
し部61へ指示する。
【0179】図48は、この場合の再生制御部67の動
作を表わしている。再生制御部67は、ステップS16
1で、ユーザからの指令に対応して、内蔵するメモリ
に、再生するプログラムのprogram_numberをセットす
る。
【0180】再生制御部67は、ステップS162で、
paesed_program_flagから、そのプログラムのエントリ
ーポイントデータが存在するか否かを調べる。存在する
(paesed _program_flag=1である)場合は、ステップ
S163へ進む。エントリーポイントデータが存在しな
い場合は、エントリーポイントマップを使用したデータ
アクセスはできないので、処理は終了される。
【0181】再生制御部67は、ステップS163で、
ユーザにより指定された時刻から読み出し開始するタイ
ムユニットの番号TNを上述のようにして計算する。すな
わち、start_time+first_time_unit_size+(N-1)*tim
e_unit_sizeの値(タイムユニットの先頭の時刻)が、
指定された時刻よりも大きくなるタイムユニットの番号
TNが計算される。
【0182】再生制御部67は、ステップS164で、
TN番目のタイムユニットに、そのプログラムのエントリ
ーポイントが存在するか否かを、entry_point_flagから
調べる。エントリーポイントが存在する(entry_point_f
lag=1である)場合は、ステップS165へ進み、存
在しない場合は、ステップS167へ進む。
【0183】再生制御部67は、エントリーポイントが
存在する場合、ステップS165で、entry_point_data
()からエントリーポイントのストリームデータを読み出
すアドレスを計算する。ストリームデータの読み出し開
始アドレスは、I_start_addressであり、読み出し終了
アドレスは、I_end_address、P1_end_address、または
P2_end_addressである。
【0184】再生制御部67は、ステップS166で、
ステップS165で計算したアドレスに基づいて、エン
トリーポイントのストリームデータを読み出すように読
み出し部61に指示する。読み出し部61はこの指示に
対応して読み出し動作を実行する。
【0185】再生制御部67は、ステップS167で、
番号TNをインクリメントする。再生制御部67は、ステ
ップS168で、処理の終了が指令されたか否かを判定
し、処理の終了が指令されていない場合は、ステップS
164へ戻り、そうでない場合は処理を終了する。
【0186】読み出し部61は、指定されたランダムア
クセスポイントからデータを読み出す。読み出されたデ
ータは、復調部62、誤り訂正部63、ファイルシステ
ム部64の処理を経て、デマルチプレクサ65へ入力さ
れ、AVデコーダ66で復号され、出力される。
【0187】このステップS163の計算処理の詳細に
ついて、図49と図50のフローチャートを参照してさ
らに説明する。ステップS181において、再生制御部
67に、端子69からprogram_numberと、再生開始時刻
Tstが入力されると、ステップS182において、再生
制御部67は、ステップS181で入力された再生開始
時刻Tstが、特徴点データに含まれる、トランスポート
ストリームの開始時刻start_time(図30(B))と等しい
か否かを判定する。再生開始時刻Tstが開始時刻start_t
imeと等しい場合には、ステップS186に進み、再生
制御部67は、タイムユニットの番号を表わす変数Nに
0を設定し、そのタイムユニット(0番目のタイムユニ
ット)のtime_unit_address(N)に0を設定する。
【0188】これに対して、ステップS182におい
て、再生開始時刻Tstが開始時刻starttimeと等しくない
と判定された場合、ステップS183に進み、再生制御
部67は、タイムユニットマップのヘッダ部を読み込
み、ステップS184において、次の不等式を満たす最
小の値Nを計算する。
【0189】Tst≦start_time+first_time_unit_size
+(N−1)×time_unit_size ステップS185において、再生制御部67は、タイム
ユニットマップのデータに基づいて、数1で示す式に従
って、time_unit_address(N)を演算する。
【0190】N番目のタイムユニットの先頭データの時
刻time_unit_address(N)が求められた時、ステップS1
87において、再生制御部67は、N番目のタイムユニ
ットのアドレスtime_unit_address(N)からのデータ読み
出しを、読み出し部61に指示する。
【0191】読み出し部61は、再生制御部67からの
指令に対応して、ステップS188において、アドレス
time_unit_address(N)からのトランスポートストリーム
を記録媒体21から読み出す。読み出されたデータは、
復調部62、誤り訂正部63、ファイルシステム部64
を介して、デマルチプレクサ65に供給される。
【0192】ステップS189において、再生制御部6
7は、デマルチプレクサ65に対して、ユーザより再生
が指示された、プログラムのprogram_numberを出力す
る。デマルチプレクサ65は、ステップS190におい
て、再生制御部67より指示された、program_numberの
プログラムのトランスポートパケットを分離し、AVデコ
ーダ66に出力する。ステップS191において、AVデ
コーダ66は、デマルチプレクサ65より入力されたデ
ータをデコードし、端子68から出力する。
【0193】上述した一連の処理は、ハードウエアによ
り実行させることもできるが、ソフトウエアにより実行
させることもできる。一連の処理をソフトウエアにより
実行させる場合には、そのソフトウエアを構成するプロ
グラムが、専用のハードウエアとしての動画像記録再生
装置に組み込まれているコンピュータ、または、各種の
プログラムをインストールすることで、各種の機能を実
行することが可能な、例えば汎用のパーソナルコンピュ
ータなどにインストールされる。
【0194】次に、図51を参照して、上述した一連の
処理を実行するプログラムをコンピュータにインストー
ルし、コンピュータによって実行可能な状態とするため
に用いられる媒体について、そのコンピュータが汎用の
パーソナルコンピュータである場合を例として説明す
る。
【0195】プログラムは、図51(A)に示すよう
に、コンピュータ301に内蔵されている記録媒体とし
てのハードディスク302や半導体メモリ303に予め
インストールした状態でユーザに提供することができ
る。
【0196】あるいはまた、プログラムは、図51
(B)に示すように、フロッピーディスク311、CD-R
OM(Compact Disk-Read Only Disk)312、MO(Magne
to-Optical)ディスク313、DVD(Digital Versatile D
isk)314、磁気ディスク315、半導体メモリ316
などの記録媒体に、一時的あるいは永続的に格納し、パ
ッケージソフトウエアとして提供することができる。
【0197】さらに、プログラムは、図51(C)に示
すように、ダウンロードサイト321から、デジタル衛
星放送用の人工衛星322を介して、コンピュータ32
3に無線で転送したり、ローカルエリアネットワーク、
インターネットといったネットワーク131を介して、
コンピュータ323に有線で転送し、コンピュータ32
3において、内蔵するハードディスクなどに格納させる
ことができる。
【0198】本明細書における媒体とは、これら全ての
媒体を含む広義の概念を意味するものである。
【0199】また、本明細書において、媒体により提供
されるプログラムを記述するステップは、記載された順
序に沿って時系列的に行われる処理はもちろん、必ずし
も時系列的に処理されなくとも、並列的あるいは個別に
実行される処理をも含むものである。
【0200】なお、本明細書において、システムとは、
複数の装置により構成される装置全体を表すものであ
る。
【0201】このように、1つまたは複数のトランスポ
ートストリームが記録された記録媒体にランダムアクセ
スして再生する場合、Iピクチャやオーディオフレーム
の開始位置を効率よくサーチすることができるので、ユ
ーザ入力に対して応答の速いランダムアクセス再生をす
ることができる。
【0202】
【発明の効果】以上の如く、請求項1に記載のデータ処
理装置、請求項8に記載のデータ処理方法、および請求
項9に記載の媒体によれば、符号化ストリームをユニッ
ト化し、ユニット毎のデータの量を表すデータ量情報を
含むユニットマップを作成するようにしたので、応答の
速いランダムアクセスが可能となる。
【図面の簡単な説明】
【図1】従来のトランスポートストリームのパケットを
説明する図である。
【図2】従来の記録されるトランスポートストリームを
説明する図である。
【図3】本発明のトランスポートストリームを説明する
図である。
【図4】本発明の記録されるトランスポートストリーム
を説明する図である。
【図5】ブロックユニットマップの例を示す図である。
【図6】ブロックユニット毎のオフセットアドレスを説
明する図である。
【図7】エントリーポイントマップの例を示す図であ
る。
【図8】エントリーポイントデータを説明する図であ
る。
【図9】データの消去を説明する図である。
【図10】データを消去した時のブロックユニットマッ
プの例を示す図である。
【図11】BlockUnitMapHeader()のシンタックスを示す
図である。
【図12】BlockUnitMapData()のシンタックスを示す図
である。
【図13】EntryPointMapHeader()のシンタックスを示
す図である。
【図14】EntryPointMapData()のシンタックスを示す
図である。
【図15】entry point data()のシンタックスを示す
図である。
【図16】EntryPointMapData()のシンタックスを示す
図である。
【図17】トランスポートストリームファイルのエント
リーポイントを説明する図である。
【図18】EntryPointMapDataの例を示す図である。
【図19】EntryPointMapDataの例を示す図である。
【図20】本発明を適用した動画像記録装置の構成例を
示すブロック図である。
【図21】図20の動画像記録装置の動作を説明するフ
ローチャートである。
【図22】図20の動画像記録装置の動作を説明するフ
ローチャートである。
【図23】図20の動画像記録装置の動作を説明するフ
ローチャートである。
【図24】トランスポートストリームファイルのブロッ
クユニットマップとエントリーポイントマップの関係を
説明する図である。
【図25】本発明を適用した動画像記録装置の他の構成
例を示すブロック図である。
【図26】本発明を適用した動画像再生装置の構成例を
示すブロック図である。
【図27】図26の動画像再生装置の動作を説明するフ
ローチャートである。
【図28】図26の動画像再生装置の動作を説明するフ
ローチャートである。
【図29】図26の動画像再生装置の動作を説明するフ
ローチャートである。
【図30】本発明のトランスポートストリームを説明す
る図である。
【図31】本発明の記録されるトランスポートストリー
ムを説明する図である。
【図32】タイムユニットマップの例を示す図である。
【図33】タイムユニット毎のオフセットアドレスを説
明する図である。
【図34】エントリーポイントマップの例を示す図であ
る。
【図35】エントリーポイントデータを説明する図であ
る。
【図36】データの消去を説明する図である。
【図37】データを消去した時のタイムユニットマップ
の例を示す図である。
【図38】TimeUnitMapHeader()のシンタックスを示す
図である。
【図39】TimeUnitMapData()のシンタックスを示す図
である。
【図40】EntryPointMapData()のシンタックスを示す
図である。
【図41】entry point data()のシンタックスを示す
図である。
【図42】トランスポートストリームファイルのエント
リーポイントを説明する図である。
【図43】EntryPointMapDataの例を示す図である。
【図44】EntryPointMapDataの例を示す図である。
【図45】本発明を適用した動画像記録装置の構成例を
示すブロック図である。
【図46】トランスポートストリームファイルのタイム
ユニットマップとエントリーポイントマップの関係を説
明する図である。
【図47】本発明を適用した動画像記録装置の他の構成
例を示すブロック図である。
【図48】図26の動画像再生装置の動作を説明するフ
ローチャートである。
【図49】図26の動画像再生装置の動作を説明するフ
ローチャートである。
【図50】図26の動画像再生装置の動作を説明するフ
ローチャートである。
【図51】媒体を説明する図である。
【符号の説明】
1 動画像記録装置, 11 PIDフィルタ, 12
ストリーム解析部,14 タイムスタンプ発生部, 1
5 タイムスタンプ付加部, 16 エントリーポイン
トマップ作成部, 17 ファイルシステム部, 21
記録媒体,23 タイムユニットマップ作成部, 2
4 カウンタ, 40 多重化器,41 コントロー
ラ, 42 システムタイムクロック部, 43 ブロ
ックユニットマップ作成部, 44エントリーポイント
マップ作成部, 61 読み出し部, 65 デマルチ
プレクサ, 66 AVデコーダ, 67 再生制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中村 政信 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 5C053 FA20 FA22 FA24 GA11 GB01 GB05 GB11 GB15 GB37 GB38 HA21 JA01 JA22 5C059 KK08 MA00 PP05 PP06 PP07 RB02 RB16 RF04 SS02 SS11 SS20 SS30 UA02 UA05

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 入力された符号化ストリームに含まれる
    データを処理するデータ処理装置において、 入力された前記符号化ストリームを、所定の単位のユニ
    ットにユニット化するユニット化手段と、 前記ユニット化手段によりユニット化された符号化スト
    リームを記憶する記憶手段と、 前記ユニット化手段によりユニット化された前記符号化
    ストリームのユニット毎のデータの量を表すデータ量情
    報を含むユニットマップを作成する第1の作成手段と、 前記符号化ストリームのプログラム毎のエントリポイン
    トの位置を示す、前記ユニットマップに従属するエント
    リポイントマップを作成する第2の作成手段を備えるこ
    とを特徴とするデータ処理装置。
  2. 【請求項2】 前記ユニットマップの前記データ量情報
    は、前記記憶手段のアドレスで表されていることを特徴
    とする請求項1に記載のデータ処理装置。
  3. 【請求項3】 前記ユニットマップの前記データ量情報
    は、前記記憶手段に記憶されている前記ユニットのデー
    タ量に対応する時間で表されていることを特徴とする請
    求項1に記載のデータ処理装置。
  4. 【請求項4】 前記第2の作成手段は、前記符号化スト
    リームが編集されたとき、前記エントリポイントマップ
    を変更することを特徴とする請求項1に記載のデータ処
    理装置。
  5. 【請求項5】 前記符号化ストリームとともに、前記ユ
    ニットマップまたはエントリポイントマップの少なくと
    も一方をファイル化するファイル化手段をさらに備える
    ことを特徴とする請求項1に記載のデータ処理装置。
  6. 【請求項6】 前記ファイル化手段によりファイル化さ
    れたデータを記録媒体に記録する記録手段をさらに備え
    ることを特徴とする請求項5に記載のデータ処理装置。
  7. 【請求項7】 前記第1の作成手段は、前記符号化スト
    リームが編集されたとき、前記ユニットマップを変更す
    ることを特徴とする請求項1に記載のデータ処理装置。
  8. 【請求項8】 入力された符号化ストリームに含まれる
    データを処理するデータ処理装置のデータ処理方法にお
    いて、 入力された前記符号化ストリームを、所定の単位のユニ
    ットにユニット化するユニット化ステップと、 前記ユニット化ステップの処理によりユニット化された
    符号化ストリームを記憶する記憶ステップと、 前記ユニット化ステップの処理によりユニット化された
    前記符号化ストリームのユニット毎のデータの量を表す
    データ量情報を含むユニットマップを作成する作成ステ
    ップと、 前記符号化ストリームのプログラム毎のエントリポイン
    トの位置を示す、前記ユニットマップに従属するエント
    リポイントマップを作成する第2の作成ステップを含む
    ことを特徴とするデータ処理方法。
  9. 【請求項9】 入力された符号化ストリームに含まれる
    データを処理するプログラムであって、 入力された前記符号化ストリームを、所定の単位のユニ
    ットにユニット化するユニット化ステップと、 前記ユニット化ステップの処理によりユニット化された
    符号化ストリームを記憶する記憶ステップと、 前記ユニット化ステップの処理によりユニット化された
    前記符号化ストリームのユニット毎のデータの量を表す
    データ量情報を含むユニットマップを作成する作成ステ
    ップと、 前記符号化ストリームのプログラム毎のエントリポイン
    トの位置を示す、前記ユニットマップに従属するエント
    リポイントマップを作成する第2の作成ステップを含む
    ことを特徴とするプログラムをコンピュータに実行させ
    る媒体。
JP13720399A 1999-03-17 1999-05-18 データ処理装置および方法、並びに媒体 Withdrawn JP2000333128A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13720399A JP2000333128A (ja) 1999-03-17 1999-05-18 データ処理装置および方法、並びに媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-72303 1999-03-17
JP7230399 1999-03-17
JP13720399A JP2000333128A (ja) 1999-03-17 1999-05-18 データ処理装置および方法、並びに媒体

Publications (1)

Publication Number Publication Date
JP2000333128A true JP2000333128A (ja) 2000-11-30

Family

ID=26413445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13720399A Withdrawn JP2000333128A (ja) 1999-03-17 1999-05-18 データ処理装置および方法、並びに媒体

Country Status (1)

Country Link
JP (1) JP2000333128A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003075275A1 (fr) * 2002-03-05 2003-09-12 Sanyo Electric Co., Ltd. Dispositif d'enregistrement d'informations, dispositif de reproduction d'informations, procede d'enregistrement d'informations, procede de reproduction d'informations, programme d'enregistrement d'informations, programme de reproduction d'informations, et support d'enregistrement d'informations
US7738779B2 (en) 1999-05-06 2010-06-15 Sony Corporation Method of processing multiplexed program data using entry points and time units

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7738779B2 (en) 1999-05-06 2010-06-15 Sony Corporation Method of processing multiplexed program data using entry points and time units
WO2003075275A1 (fr) * 2002-03-05 2003-09-12 Sanyo Electric Co., Ltd. Dispositif d'enregistrement d'informations, dispositif de reproduction d'informations, procede d'enregistrement d'informations, procede de reproduction d'informations, programme d'enregistrement d'informations, programme de reproduction d'informations, et support d'enregistrement d'informations
US7433578B2 (en) 2002-03-05 2008-10-07 Sanyo Electric Co., Ltd. Information recording device, information reproduction device, information recording method, information reproduction method, information recording program, information reproduction program, and information recording medium

Similar Documents

Publication Publication Date Title
KR100784652B1 (ko) 데이터 처리 방법/장치, 데이터 재생 방법/장치, 및 기록매체
JP2001024985A (ja) データ処理装置および方法、データ再生装置および方法、並びに記録媒体
KR100722358B1 (ko) 전송 스트림 재생 장치 및 방법
JP4270379B2 (ja) デジタル情報の効率的な伝送および再生
KR100565875B1 (ko) 기록 재생장치 및 방법 및 제공매체
AU763849B2 (en) Signal processing on information files so as to obtain characteristic point information sequences
US20090007208A1 (en) Program, data processing method, and system of same
US5818547A (en) Timing detection device and method
JP4269495B2 (ja) トランスポートストリーム記録装置および方法、プログラム記録媒体、データ記録媒体、並びにデータ生成装置
JP2000333128A (ja) データ処理装置および方法、並びに媒体
US7539395B2 (en) Audio/video recording apparatus and method of multiplexing audio/video data
JP3907589B2 (ja) データ作成装置、データ再生装置
EP1340227B1 (en) Method for providing program specific information recorded on high density disc medium
EP1474920B1 (en) An apparatus and a record carrier for, and a method of recording a sequence of video data signals
JPH11298859A (ja) 映像信号符号化システム及び映像信号符号化方法
JP2001078145A (ja) データ再生装置及びデータ再生方法
JP2005228469A (ja) 記録再生装置および方法、並びに提供媒体
MXPA06009466A (en) Information storage medium having recorded thereon text subtitle data synchronized with av data, and reproducing method and apparatus therefor
JP2002191018A (ja) Mpegトランスポートストリーム記録再生方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060801