図1は、本開示に係る動画像記録装置の一実施の形態の構成を示すブロック図である。PIDフィルタ11は、1または複数のAVプログラムが多重化されているトランスポートストリームが入力され、所定のPIDを含むトランスポートパケットを取り出し、スイッチ12、カウンタ22、タイムスタンプ付加部16に所定のトランスポートパケットを供給する。
PIDフィルタ11に入力される1つのAVプログラムは、MPEG2ビデオで符号化されたビデオストリーム、およびMPEG1オーディオなどで符号化されたオーディオストリームが、トランスポートパケットによって多重化されている。PIDは、図2のトランスポートパケットのシンタックスに示すように、トランスポートパケットのヘッダの所定の位置にある13ビット長の符号であり、そのトランスポートパケットのペイロードにストアされているデータのタイプを示す。
PIDフィルタ11は、PID=0x0000であるPATを含むトランスポートパケットが供給されたとき、PATを含むトランスポートパケットをスイッチ12に供給する。スイッチ12は、PATを含むトランスポートパケットが入力されたとき、PATを含むトランスポートパケットをPAT/PMT解析部13に出力する。
ユーザインターフェース23は、ユーザによりAVプログラムのチャネルの選択が入力され、選択された1または2以上のAVプログラムのチャネルを示すデータをPAT/PMT解析部13に供給する。
PAT/PMT解析部13は、スイッチ12を介して、PIDフィルタ11から供給されたトランスポートパケット、およびユーザインターフェース23から供給されたデータを基に、トランスポートパケットに含まれる所定のデータをPIDフィルタ11、ストリーム解析部14、およびトランスポートストリーム管理テーブル作成部15に供給する。
PAT/PMT解析部13は、AVプログラム毎に、次のデータをトランスポートストリーム管理テーブル作成部15に供給する。
1.AVプログラムのprogram_number
2.AVプログラムのPMTのトランスポートパケットのPID
3.AVプログラムを構成するビデオのトランスポートパケットのPIDおよびビデオのstream_type
4.AVプログラムを構成するオーディオのトランスポートパケットのPIDおよびオーデイオのstream_type
5.AVプログラムのPCR_PID
ここで、program_numberは、放送のチャネル番号であり、そのAVプログラムのPMTのPIDを適用するAVプログラムを示す。stream_typeとは、PMTに記述されている内容を示しており、ビデオの場合、MPEG2/MPEG1などのストリームタイプを示し、またオーディオの場合、MPEG1/AC−3などのストリームタイプを示す。
ビデオストリームが複数含まれている場合は、各ストリーム毎に上記3のデータ(AVプログラムを構成するビデオのトランスポートパケットのPIDおよびビデオのstream_type)を作成する。オーディオストリームについても同様である。
PAT/PMT解析部13はまた、ビデオのストリームおよびオーディオのストリームのランダムアクセスポイントを示す情報をトランスポートストリーム管理テーブル作成部15に供給する。
ストリーム解析部14は、スイッチ12を介して、PIDフィルタ11から供給されたトランスポートパケットの"adaptation_field()"に含まれる"random_access_Indicator"の値、PAT/PMT解析部13から供給された所定のデータ、カウンタ22から供給されたデータ、およびタイムスタンプ付加部16から供給されたデータを基に、ランダムアクセス再生できるトランスポートパケットを識別し、所定のデータをトランスポートストリーム管理テーブル作成部15に供給する。
図3にトランスポートパケットの"adaptation_field()"のシンタックスを示す。MPEGにおいて、ビデオのトランスポートパケットで"random_access_Indicator"が1である場合、そのトランスポートパケットまたはそれと同じPIDの次のトランスポートパケットは、ビデオのsequence_headerを含むことが規定されている。
また、MPEGにおいて、オーディオのトランスポートパケットで"random_access_Indicator"が1である場合、そのトランスポートパケットまたはそれと同じPIDの次のトランスポートパケットは、オーディオフレームの第1バイト目を含むことが規定されている。
トランスポートストリーム管理テーブル作成部15は、PAT/PMT解析部13から供給されたデータおよびストリーム解析部14から供給されたデータを基に、ビデオのストリームおよびオーディオのストリームのランダムアクセスポイントを示す情報を、同じPIDのトランスポートパケット毎にテーブル化する。
図4は、トランスポートストリーム管理テーブル作成部15が作成するトランスポートストリーム管理テーブルに含まれるランダムアクセスポイントのリストの概念の一例を示している。
例えば、トランスポートストリームに、プログラムAおよびプログラムBの2つのプログラムが多重化されているとき、図4(A)に示すように、ストリーム解析部14によって、ランダムアクセスポイントが抽出される。
トランスポートストリーム管理テーブル作成部15は、ストリーム解析部14に抽出されたデータを基に、図4(B)に示すランダムアクセスポイントのリストを生成する。ランダムアクセスポイントは、ランダムアクセスするデータのタイムスタンプとデータ読み出し開始のアドレスを表す。アドレスは、記録するトランスポートストリームファイルの中でのランダムアクセスするデータの位置を表すものである。具体的には、アドレスは、ランダムアクセスデータを含むトランスポートパケットに付加された4バイトのヘッダの第1バイト目の位置を表す。また、アドレスは、そのトランスポートパケットの第1バイト目の位置、またはランダムアクセスデータの第1バイト目の位置を表してもよい。
図5は、トランスポートストリーム管理テーブル作成部15が作成するトランスポートストリーム管理テーブルに含まれるランダムアクセスポイントのリストの概念の他の一例を示している。例えば、マルチアングルのプログラムであり、トランスポートストリームのプログラムに2つのビデオストリームが多重化されているとき、図5(A)に示すように、ストリーム解析部14によって、ランダムアクセスポイントが抽出される。トランスポートストリーム管理テーブル作成部15は、ストリーム解析部14に抽出されたデータを基に、図4(B)と同様にして、図5(B)に示すランダムアクセスポイントのリストを生成する。
ランダムアクセスポイントのリストは、トランスポートストリームに多重化されているプログラム毎に管理される。
トランスポートストリーム管理テーブル作成部15は、ランダムアクセスポイントのリストを含むトランスポートストリーム管理テーブルをファイルシステム17に出力する。
図6は、トランスポートストリームおよびトランスポートストリーム管理テーブルの関係を示す図である。トランスポートストリームファイルの中に、3つのAVプログラムから多重化されている場合を例に説明する。ランダムアクセスポイントのリストは、AVプログラム毎に管理され、以下のデータが格納されている。
1.AVプログラムのprogram_number
2.AVプログラムのPMTのトランスポートパケットのPID
3.AVプログラムを構成するビデオのトランスポートパケットのPIDおよびビデオのstream_type
4.AVプログラムを構成するオーディオのトランスポートパケットのPIDおよびオーディオのstream_type
5.AVプログラムのPCR_PID
6.ビデオのランダムアクセスポイントのリスト
7.オーディオのランダムアクセスポイントのリスト
AVプログラムのprogram_number、AVプログラムのPMTのトランスポートパケットのPID、AVプログラムを構成するビデオのトランスポートパケットのPIDおよびビデオのstream_type、およびAVプログラムを構成するオーディオのトランスポートパケットのPIDおよびオーディオのstream_typeのデータは、トランスポートストリームの中のPATまたはPMTのパケットにも含まれているが、PATまたはPMTのパケットの発生頻度は、100ミリ秒毎であるので、ランダムアクセスしたとき、PATまたはPMTのパケットを取り出すには時間がかかる。
そこで、トランスポートストリーム管理テーブルに、PATまたはPMTのパケットに含まれている情報を格納しておくことにより、これらのデータをトランスポートストリームから読み出す必要がなくなり、迅速に所定のデータを読み出すことが可能となる。
図7は、トランスポートストリームのプログラムに、複数のビデオストリームが多重化されている時におけるトランスポートストリームおよびトランスポートストリーム管理テーブルの関係を示す図である。図6に示した情報と同じ情報を持つが、トランスポートストリームファイルの中に、複数のビデオストリームが含まれている場合、ビデオストリーム毎にランダムアクセスポイントのリストが作成される。各ランダムアクセスポイントリストは、パケットのPIDによって区別される。なお、オーディオストリームについても同様に、ランダムアクセスポイントリストが作成され、各ランダムアクセスポイントリストは、パケットのPIDによって区別される。
図1に戻り、カウンタ22は、PIDフィルタ11から供給されるトランスポートパケットを基に、記録されるトランスポートストリームの先頭パケットから現在のパケットまでのバイト数を計算し、その値をストリーム解析部14に供給する。
タイムスタンプ付加部16は、PIDフィルタ11から供給されるトランスポートパケットを受信し、トランスポートパケットの到着時刻を示すタイムスタンプをストリーム解析部14に出力し、到着時刻を示すタイムスタンプを付加したトランスポートパケットを、ファイルシステム17に供給する。このタイムスタンプは、例えば、D-VHSフォーマットで規定されているトランスポートパケットに付加される4バイト長のパケットヘッダと同様なものであり、一番最初に記録されるトランスポートパケットのタイムスタンプをゼロとすれば、そのトランスポートストリームの記録の経過時間を表すものとなる。
ファイルシステム17は、タイムスタンプ付加部16から供給されたトランスポートパケットをトランスポートストリームのファイルに変換し、トランスポートストリーム管理テーブル作成部15から供給されたトランスポートストリーム管理テーブルを所定のファイルに変換する。
ファイルシステム17から、出力されるファイルは、誤り訂正部18および変調部19で所定の処理が施され、書き込み部20に供給される。書き込み部20は、供給されたファイルを記録媒体21に記録する。
制御部24は、ドライブ25を制御して、磁気ディスク26、光ディスク27、光磁気ディスク28、または半導体メモリ29に記憶されている制御用プログラムを読み出し、読み出した制御用プログラム、およびユーザインタフェース23に入力されるユーザからのコマンド等に基づいて、動画像記録装置の各部を制御する。
以上のように、トランスポートストリームおよびトランスポートストリーム管理テーブルは、所定のファイルとして、記録媒体21に記録される。
次に、PAT/PMT解析部13のPATおよびPMTを解析する処理について、図8のフローチャートを参照して説明する。ステップS11において、PAT/PMT解析部13はPATのトランスポートパケットを受信する。PATには、トランスポートストリームに多重化されている各プログラムのPMTのトランスポートパケットのPIDが書かれている。PAT/PMT解析部13は、ユーザインタフェース23によって選択されたAVプログラムのPMTのトランスポートパケットのPIDを取得する。
ステップS12において、PAT/PMT解析部13は各プログラムのPMTのPIDをPIDフィルタ11にセットする。PIDフィルタ11は、これらPMTのPIDをもつトランスポートパケットを取り出し、PAT/PMT解析部13に供給する。
ステップS13において、PAT/PMT解析部13は、スイッチ12を介して、PIDフィルタ11から供給されたPMTのトランスポートパケットを受信する。PMTには、そのAVプログラムを構成するビデオストリームおよびオーディオストリームをペイロードに持つトランスポートパケットのPIDが書かれている。PAT/PMT解析部13は、ユーザインタフェース23に入力された各プログラムを構成するビデオストリームまたはオーディオストリームをペイロードに持つトランスポートパケットのPIDを取得する。
ステップS14において、PAT/PMT解析部13は、ユーザインタフェース23によって選択された各プログラムを構成するビデオストリームまたはオーディオストリームをペイロードに持つトランスポートパケットのPIDを、PIDフィルタ11およびストリーム解析部14に供給する。PIDフィルタ11は、PAT/PMT解析部13から指定されたビデオのトランスポートパケットおよびオーディオのトランスポートパケットを入力されたトランスポートストリームの中から取り出し、それをスイッチ12を介して、ストリーム解析部14に入力する。ビデオのトランスポートパケットとオーディオのトランスポートパケット以外のトランスポートパケット(サービスインフォメーションのパケットなど)は、ストリーム解析部14に入力されない。
次に、ストリーム解析部14のストリームを解析する処理について、図9のフローチャートを参照して説明する。ステップS21において、ストリーム解析部14は、スイッチ12を介して、PIDフィルタ11から、ビデオのトランスポートパケットまたはオーディオのトランスポートパケットを受信する。ステップS22において、ストリーム解析部14は、トランスポートパケットのヘッダの"random_access_Indicator"を復号する。
ステップS23において、ストリーム解析部14は、復号された"random_access_Indicator"の値が1であるか否かを判定し、"random_access_Indicator"の値が1であると判定された場合、そのトランスポートパケットがランダムアクセス再生できるポイントなので、ステップS24に進み、現在のパケットがランダムアクセス再生できるポイントであること示すデータを、トランスポートストリーム管理テーブル作成部15に出力する。より具体的には、ストリーム解析部14は、トランスポートストリーム管理テーブル作成部15に、そのパケットのPID、そのパケットのタイムスタンプ、および記録しているトランスポートストリームの先頭からそのパケットまでのバイト数を供給する。
ステップS25において、ストリーム解析部14は、現在のパケットが最後のパケットであるか否かを判定し、現在のパケットが最後のパケットであると判定された場合、処理は終了される。ステップS25において、現在のパケットが最後のパケットでないと判定された場合、ステップS21に戻り、ストリーム解析の処理が繰り返される。
ステップS23において、"random_access_Indicator"の値が1でないと判定された場合、そのトランスポートパケットがランダムアクセス再生できるポイントではないので、ステップS21に戻り、ストリーム解析の処理が繰り返される。 以上のように、ストリーム解析部14は、ビデオのトランスポートパケットまたはオーディオのトランスポートパケットを受信し、ランダムアクセス再生できるポイントを示すデータをトランスポートストリーム管理テーブル作成部15に出力する。
次に、"random_access_Indicator"が運用されていないときにおける動画像記録装置の処理について説明する。"random_access_Indicator"は、MPEGの規格ではオプションなので、全ての"random_access_Indicator"が0であるトランスポートストリームが存在する。
全ての"random_access_Indicator"が0であるビデオデータのトランスポートストリームを解析するストリーム解析部14の処理を図10のフローチャートを参照して説明する。ステップS51において、ストリーム解析部14は、記録するビデオのPIDおよびstream_typeを、PAT/PMT解析部13から受信する。記録するトランスポートストリームに複数のAVプログラムが含まれる場合、それぞれのAVプログラムのビデオのPIDおよびstream_typeが、PAT/PMT解析部13に入力される。
ステップS52において、ストリーム解析部14は、ビデオのトランスポートパケットを受信する。ストリーム解析部14は、記録するトランスポートストリームの中に複数のAVプログラムが含まれている場合、そのプログラム数と同じ数のビデオバッファを内蔵し、それぞれのビデオバッファとAVプログラムとは、1対1に対応づけられている。ストリーム解析部14は、ビデオのトランスポートパケットを受信すると、そのペイロードを対応するビデオバッファに入力する。
ステップS53において、ストリーム解析部14は、ビデオバッファに記憶されているストリームにMPEGビデオのsequence_header_code(32ビット長で"0x000001B3"の符号)が含まれているか否かを判定し、ストリームにMPEGビデオのsequence_header_codeが含まれていると判定された場合、ステップS54に進み、sequence_header_codeの第1バイト目を含むパケットをランダムアクセスするときのIピクチャの読み出し開始ポイントとする。
ステップS55において、ストリーム解析部14は、ステップS54で設定したIピクチャの読み出し開始ポイントをトランスポートストリーム管理テーブル作成部15に送信する。更に、ビデオのPID、そのパケットの読み出し開始ポイントのタイムスタンプ、および記録するトランスポートストリームの先頭からそのパケットまでのバイト数が、トランスポートストリーム管理テーブル作成部15に入力される。
ステップS56において、ストリーム解析部14は、最終のパケットであるか否かを判定し、最終のパケットであると判定した場合、処理を終了する。ステップS56において、最終のパケットでないと判定された場合、ステップS52に戻り、解析の処理が繰り返される。
ステップS53において、ストリームにMPEGビデオのsequence_header_codeが含まれていないと判定された場合、ステップS52に戻り、解析の処理が繰り返される。
以上のように、ストリーム解析部14は、全ての"random_access_Indicator"が0であっても、ビデオデータのトランスポートストリームを解析することができる。
次に、全ての"random_access_Indicator"が0であるビデオデータのトランスポートストリームを解析するストリーム解析部14の他の処理を図11のフローチャートを参照して説明する。なお、同図のステップS71乃至S74の処理は、図10のステップS51乃至S54とそれぞれ同様であるので、その説明は省略する。
ステップS75において、ストリーム解析部14は、前のビデオパケットと同じPIDのビデオのトランスポートパケットを受信し、そのトランスポートパケットのペイロードをビデオバッファの最後のデータへ追加入力(append)する。
ステップS76において、ストリーム解析部14は、ビデオストリームバッファの中のストリームにステップS74で読み出し開始ポイントに設定したIピクチヤの次のピクチヤのpicture_start_code(32ビット長で"0x00000100"の符号)が含まれるか否かを判定し、ビデオストリームバッファの中のストリームにステップS74で読み出し開始ポイントに設定したIピクチヤの次のピクチヤのpicture_start_codeが含まれると判定された場合、ステップS77に進み、picture_start_codeの最後のバイトを含むパケットをランダムアクセスするときのIピクチャデータの読み出し終了ポイントに設定する。
ステップS76において、ビデオストリームバッファの中のストリームにステップS74で読み出し開始ポイントに設定したIピクチヤの次のピクチヤのpicture_start_codeが含まれないと判定された場合、ステップS75に戻り、前のビデオパケットと同じPIDのビデオのトランスポートパケットを受信する処理以降の処理が繰り返される。
ステップS78において、ストリーム解析部14は、ステップS74で設定したIピクチャの読み出し開始ポイントおよびステップS77で設定したIピクチャデータの読み出し終了ポイントをトランスポートストリーム管理テーブル作成部15に送信する。更に、ビデオのPID、そのパケットの読み出し開始ポイントのタイムスタンプ、記録するトランスポートストリームの先頭からIピクチャデータの読み出しの開始ポイントのパケットまでのバイト数、および記録するトランスポートストリームの先頭からIピクチャデータの読み出しの終了ポイントのパケットまでのバイト数が、トランスポートストリーム管理テーブル作成部15に入力される。
ステップS79において、ストリーム解析部14は、現在のパケットが最終の入力パケットであるか否かを判定し、最終のパケットでないと判定された場合、ステップS72に戻り、解析の処理を繰り返す。ステップS79において、最終のパケットであると判定された場合、処理は終了される。
以上のように、図11のフローチャートに示す手続きにより、ストリーム解析部14は、トランスポートストリーム管理テーブル作成部15にIピクチャデータの読み出しの開始ポイントおよびIピクチャデータの読み出しの終了ポイントを示すデータを供給することができる。
次に、ストリーム解析部14によるビデオストリームの解析処理の別の動作例について、図12のフローチャートを参照して説明する。この動作例においては、ビデオの1ピクチャが、1つのPESパケットにパケット化されていることを前提としている。これは、アメリカにおけるDTV や日本におけるISDB等のディジタル放送で規定されている符号化方法である。
ステップS81において、ストリーム解析部14は、記録するAVプログラムのビデオのPIDをセットする。トランスポートストリームの中に複数のAVプログラムが含まれている場合は、それぞれのプログラムのビデオPIDをセットする。
ステップS82において、ストリーム解析部14は、ビデオのトランスポートパケットを受信する。ステップ83において、ストリーム解析部14は、トランスポートパケットのペイロードがPESパケットの第1バイト目から開始しているか否かを判定する。具体的には、トランスポートパケットヘッダにある"payload_unit_start_indicator"の値が1であるか否かを判定する。"payload_unit_start_indicator"の値が1である、すなわち、トランスポートパケットのペイロードがPESパケットの第1バイト目から開始していると判定された場合、ステップS84に進む。
ステップS84において、ストリーム解析部14は、PESパケットのペイロードが、MPEGビデオのsequence_header_code(32ビット長で"0x000001B3"の符号)の第1バイト目から開始するか否かを判定する。PESパケットのペイロードがMPEGビデオのsequence_header_codeの第1バイト目から開始すると判定された場合、ステップS85に進み、現在のトランスポートパケットをエントリポイントと判定する。
ステップS86において、ストリーム解析部14は、当該トランスポートパケットの読み出し開始ポイントをトランスポートストリーム管理テーブル作成部15に送信し、さらに、ビデオのPID、読み出し開始ポイントのタイムスタンプ、および、記録するトランスポートストリームの先頭から当該パケットまでのバイト数を、トランスポートストリーム管理テーブル作成部15に供給する。
ステップS87において、ストリーム解析部14は、現在のトランスポートパケットが最終のトランスポートパケットであるか否かを判定する。最終のトランスポートパケットでないと判定された場合、ステップS82に戻り、それ以降の処理が繰り返され、最終のトランスポートパケットであると判定された場合、この解析処理は終了される。
なお、ステップS83において、"payload_unit_start_indicator"の値が1ではない、すなわち、トランスポートパケットのペイロードがPESパケットの第1バイト目から開始していないと判定された場合、ステップS82に戻り、それ以降の処理が繰り返される。
また、ステップS84において、PESパケットのペイロードがMPEGビデオのsequence_header_codeの第1バイト目から開始していないと判定された場合も、ステップS82に戻り、それ以降の処理が繰り返される。
次に、オーディオデータのトランスポートストリームを解析するストリーム解析部14の処理を図13のフローチャートを参照して説明する。ステップS91において、ストリーム解析部14は、記録するオーディオのPIDおよびstream_typeを、PAT/PMT解析部13から受信する。ステップS92において、ストリーム解析部14は、オーディオのトランスポートパケットを受信する。
ステップS93において、ストリーム解析部14は、ペイロードのオーディオストリームの中にオーディオフレームの第1バイト目のsync_byteが含まれているか否かを判定し、ペイロードのオーディオストリームの中にオーディオフレームの第1バイト目のsync_byteが含まれていると判定された場合、ステップS94に進み、オーディオフレームのsync_byteが含まれているパケットをランダムアクセスするときのオーディオフレームの読み出し開始ポイントであることを示すデータをトランスポートストリーム管理テーブル作成部15に送信し、さらに、オーディオパケットのPID、そのオーディオパケットのタイムスタンプ、および記録するトランスポートストリームの先頭から当該パケットまでのバイト数を、トランスポートストリーム管理テーブル作成部15に供給する。
ステップS95において、ストリーム解析部14は、最終のパケットであるか否かを判定し、最終のパケットであると判定した場合、処理を終了する。ステップS95において、最終のパケットでないと判定された場合、ステップS92に戻り、それ以降の処理が繰り返される。
以上のように、ストリーム解析部14は、オーディオフレームのランダムアクセスポイントを示すデータをトランスポートストリーム管理テーブル作成部15に送信する。なお、このオーディオストリームの解析は、記録するトランスポートストリームの中に複数のAVプログラムがある場合は、それぞれのAVプログラムのオーディオパケットに対して実行される。
なお、ランダムアクセスポイントリストで管理する「タイムスタンプ」を、ランダムアクセスポイントのIピクチャやオーディオフレームのPTS(Presentation Time Stamp)に基づいて計算するようにしてもよい。PTSは、MPEG2システムズ規格のPESパケットのヘッダに付加されている情報である。この場合、ランダムアクセスポイントリストで管理するタイムスタンプは、記録するトランスポートストリームの最初に表示されるビデオのPTSをオフセットとすれば、そのランダムアクセスポイントの絶対的な表示時刻を表すことになる。
タイムスタンプとして、PTSを使用する場合、図9のステップS22、図10のステップS52、図11のステップS72、図12のステップS82、および図13のステップS92の各処理に、さらに、PTSを検出する処理を追加する必要がある。
また、図10のステップS53または図11のステップS73、および図12のステップS84の各処理は、上述した方法に限定されるものではない。例えば、ビデオストリームのsequence_header_codeの後に、Iピクチャデータが続いてることを判定するようにすれば、アクセスポイントの判定をさらに確実に実行することが可能となる。この場合、まずsequence_header_codeを検出して、その直後のピクチャのpicture_coding_typeの値がIピクチャを示す"001"であるか否かを判定するようにすればよい。
図14は、本開示に係る動画像再生装置の一実施の形態の構成を示すブロック図である。記録媒体30には、本開示に係る動画像記録装置で記録したトランスポートストリームファイルおよびそのストリーム管理テーブルファイルが記録されている。トランスポートストリームファイルは、1つまたは複数のAVプログラムが多重化されている。
読み出し部31は、記録媒体30に記録されているトランスポートストリームファイルおよびそのストリーム管理テーブルファイルを読み出し、復調部32に供給する。復調部32は、読み出し部31から供給されたトランスポートストリームファイルおよびそのストリーム管理テーブルファイルを復調し、誤り訂正部33に出力する。誤り訂正部33は、復調されたトランスポートストリームファイルおよびそのストリーム管理テーブルファイルに含まれるデータの誤りを訂正し、ファイルシステム34に出力する。ファイルシステム34は、トランスポートストリームをデマルチプレクサ35に供給し、ストリーム管理テーブルを再生制御部37に出力する。
再生制御部37は、ドライブ38を制御して、磁気ディスク39、光ディスク40、光磁気ディスク41、または半導体メモリ42に記憶されている制御用プログラムを読み出し、読み出した制御用プログラムやユーザインタフェース23から供給されたデータを基に、読み出し部31の動作を制御し、ユーザインタフェース23から供給されたデータおよびストリーム管理テーブルを基に、デマルチプレクサ35、およびAVデコーダを制御する。より詳細に説明すれば、再生制御部37は、そのAVプログラムのPMTのトランスポートパケットのPID、AVプログラムを構成するビデオのトランスポートパケットのPID、ビデオのstream_type、AVプログラムを構成するオーディオのトランスポートパケットのPID、オーディオのstream_type、PCR_PIDを、デマルチプレクサ35およびAVデコーダ36に出力する。
デマルチプレクサ35は、ユーザインタフェース23により指定されたAVプログラムを構成するビデオおよびオーデイオのトランスポートパケットを、ファイルシステム34から供給されたトランスポートストリームから分離し、AVデコーダ36に出力する。
AVデコーダ36は、再生制御部37の制御に基づき、デマルチプレクサ35から供給された所定のAVプログラムを構成するビデオおよびオーデイオのトランスポートパケットをデコードし、ビデオ信号およびオーディオ信号を出力する。
次に、動画像再生装置の再生処理について、図15のフローチャートを参照して説明する。ステップS101において、ユーザは、ユーザインタフェース23を操作して、所定のAVプログラムを指定する。ユーザインタフェース23は、所定のAVプログラムを指定するデータを再生制御部37に供給する。
ステップS102において、再生制御部37は、読み出し部31に、記録媒体30から所定のAVプログラムに対応するトランスポートストリーム管理テーブルファイルを読み出させる。読み出されたトランスポートストリーム管理テーブルファイルは、復調部32、誤り訂正部33、およびファイルシステム34の処理を経て、再生制御部37に入力される。ステップS103において、再生制御部37は、読み出し部31に、記録媒体30から所定のAVプログラムに対応するトランスポートストリームを読み出させる。
ステップS104において、復調部32は、読み出し部31から供給されたトランスポートストリームファイルを復調し、誤り訂正部33に出力する。誤り訂正部33は、復調されたトランスポートストリームファイルに含まれるデータの誤りを訂正し、ファイルシステム34に出力する。ファイルシステム34は、トランスポートストリームをデマルチプレクサ35に供給する。デマルチプレクサ35は、再生制御部37の制御に基づき、ユーザに指定されたAVプログラムを構成するビデオおよびオーデイオのトランスポートパケットを、ファイルシステム34から供給されたトランスポートストリームから分離し、AVデコーダ36に出力する。AVデコーダ36は、再生制御部37の制御に基づき、デマルチプレクサ35から供給された所定のAVプログラムを構成するビデオおよびオーデイオのトランスポートパケットをデコードし、ビデオ信号およびオーディオ信号を出力する。
ステップS105において、再生制御部37は、ユーザインタフェース23からの入力を基に、ランダムアクセス再生が指示されたか否かを判定し、ランダムアクセス再生が指示されていないと判定された場合、ステップS106に進み、AVプログラムの再生を終了するか否かを判定する。ステップS106において、AVプログラムの再生を終了しないと判定された場合、ステップS103に戻り、再びトランスポートストリームを記録媒体30から読み出して、再生処理を継続する。
ステップS106において、AVプログラムの再生を終了すると判定された場合、この再生処理は終了される。
なお、ステップS105において、ランダムアクセス再生の指示が入力されたと判定された場合、再生制御部37は、トランスポートストリーム管理テーブルを基に、トランスポートストリームの読み出し位置を決定し、次に読み出させるAVプログラムの制御情報をデマルチプレクサ35およびAVデコーダ36にセットし、読み出し部31に読み出し位置のデータを出力した後、ステップS103に戻る。
例えば、ユーザによって選択されたAVプログラムを指定された時刻から途中再生をする場合、再生制御部37は、トランスポートストリーム管理テーブルのタイムスタンプのリストから、指定された時刻に最も近いタイムスタンプを検索し、そのタイムスタンプに対応するトランスポートストリームのアドレスにあるIピクチャからデータを読み出すように読み出し部31を制御する。
さらに、再生制御部37は、次に読み出させるAVプログラムの制御情報として、PMTのトランスポートパケットのPID、AVプログラムを構成するビデオのトランスポートパケットのPID、ビデオのstream_type、AVプログラムを構成するオーディオのトランスポートパケットのPID、および、オーディオのstream_type、PCR_PIDを、デマルチプレクサ35およびAVデコーダ36にセットする。
また例えば、ユーザによって選択されたAVプログラムを高速再生をする場合、再生制御部37は、そのAVプログラムに対応する、トランスポートストリーム管理テーブルのランダムアクセスポイントのデータに基づいて、プログラムの中のIピクチヤデータを順次連続して読み出すように、読み出し部31を制御する。さらに、再生制御部37は、次に読み出させるIピクチャのビデオストリームの制御情報として、ビデオのトランスポートパケットのPID、およびビデオのstream_typeを、デマルチプレクサ35およびAVデコーダ36にセットする。
以上のように、動画像再生装置は、ランダムアクセス再生が指示された場合、予め読み出されたトランスポートストリーム管理テーブルを基に、トランスポートストリームを読み出して再生する。
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図1に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク26(フロッピディスクを含む)、光ディスク27(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク28(MD(Mini Disc)を含む)、もしくは半導体メモリ29などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMやハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。