以下、添付の図面を参照して、本発明によるデータ処理装置の第1から第7の実施形態を説明する。なお、本発明に関する特に主要な処理、データ構造等は実施形態6および7において説明する。
(実施形態1)
図5は、本実施形態による光ディスクレコーダ200(以下「レコーダ200」と記述する)の構成を示す。レコーダ200は、MPEG2トランスポートストリーム(以下「トランスポートストリーム」と記述する)を処理の対象とする。映像信号及び音声信号の記録時は、映像信号入力部100及び音声信号入力部102から入力した信号を各々映像圧縮部101及び音声圧縮部103で圧縮し、次にシステムエンコード部104においてPAT/PMT生成部105が生成するPATを含むパケット及びPMTを含むパケットを圧縮された映像信号及び音声信号に混ぜてトランスポートストリームを作成し、記録部120及びピックアップ130を経由して相変化光ディスク131へ書き込む。この処理は、映像信号及び音声信号を受け取りながら行われる。すなわち、信号の受信と並行して記録を行うため、リアルタイム記録とも呼ばれる。上述の映像圧縮部101、音声圧縮部103、システムエンコード部104、及びPAT/PMT生成部105はMPEGエンコーダ170を構成する。
映像信号及び音声信号の再生時は、ピックアップ130、及び再生部121を経由して取り出したトランスポートストリームをシステムデコード部114で映像信号と音声信号に分離し、各々映像伸長部111及び音声伸長部113を介して、映像表示部110及び音声出力部112へ出力する。映像伸長部111、音声伸長部113、及びシステムデコード部114はMPEGデコーダ171を構成する。
映像信号及び音声信号の記録時には、記録制御部161が記録部120、連続データ領域検出部160及び論理ブロック管理部163の制御を行い、記録を実施する。このとき、連続データ領域検出部160は、記録制御部161の指示によって、論理ブロック管理部163において管理されるセクタの使用状況を調べて、物理的に連続する空き領域を検出する。
映像信号及び音声信号の再生時には、再生制御部162が再生部121の制御を行い、再生を実施する。
記録された映像ファイルをIEEE1394インタフェース部140経由のIsochronous転送モードで外部に出力する場合、再生部121を経由して読出したトランスポートストリームを出力タイミング生成部141で送出タイミングを求め、算出された送出タイミングに応じて当該トランスポートストリームを1394インタフェース部140へ渡すことになる。
本実施形態による機器は、システムエンコード部104がPAT_TSP、PMT_TSP、及びPCRを挿入するタイミングに主要な特徴を有している。
図6は、レコーダ200によって記録された記録ファイルのデータ構造を示している。記録ファイルは、PAT_TSP及びPMT_TSPの記録位置を除いて、周知のVOBUから構成されるものとする。
図6において、各VOBUの先頭には必ずPAT_TSP及びPMT_TSPが配置されている。さらに、次のトランスポートパケットにはPCRを有するV_TSPが配置されている。また、VOBU内においては、日本のBSデジタル放送の規格及び欧州のデジタル放送(DVB)の規格に従って100msec以内の頻度で記録するように、PAT_TSP及びPMT_TSPが挿入されている。具体的には、例えば2〜3フレームに一度の頻度でPAT_TSP及びPMT_TSPを記録する。さらに、VOBU内においては、PCRもMPEG2規格(ISO/IEC 13818−1)の規定にしたがって100msec以内の時間間隔で記録することになる。
以上の構成によって、ユーザが設定可能な再生開始点をVOBUの先頭とした場合においては、どのVOBUの先頭が指定されたとしても、必ず先頭にはPAT_TSP、及びPMT_TSPが含まれていることになることから、以降の全トランスポートパケットについて、システムデコード部114が容易に映像データと音声データとを識別することができ、容易に映像伸長部111と音声伸長部113へ振り分けて再生表示することが可能となる。これにより、指定された全てのフレームが再生開始時、及びシーン切り替え時に指定されたフレームが欠落することなく表示可能になる。さらに、PCRが映像に付加されるDTS及びPTSよりも先に到着するので、MPEGデコーダはDTS又はPTSを活用(参照)した再生表示を実施することが可能となる。
また、1394インタフェース部140を介してトランスポートストリームを外部機器へ出力する場合において、ユーザがどのVOBUの先頭を再生開始点に指定したとしても、PAT_TSP及びPMT_TSPを先頭パケットとしたトランスポートストリームを容易に出力することが可能となる。
さらに、本実施形態において、ファイルはUDFファイルシステムで管理しているものとして説明しているが、FATやその他の独自ファイルシステムで管理されている場合であっても同様の効果が期待できる。
なお、本実施形態において、VOBU内のPAT_TSP及びPMT_TSPの記録頻度は少なくとも100msecごとに1回であるものとしているが、他の規格に合わせて、異なる頻度でPAT_TSP及びPMT_TSPを配置するように挿入してもよい。
また、本実施形態において、PCRはVOBU内の先頭のV_TSPに含まれるものとしているが、PCRのみからなるトランスポートパケットがVOBU内の最初のV_TSPとPMT_TSPの間に記録されてもよい。このトランスポートパケットのPIDはV_TSPのPIDと同じでもよいし、異なってもよい。
(実施形態2)
実施形態1では、図5に示すようにレコーダ内部でトランスポートストリームを生成して記録し、また記録再生装置内部で再生し、同時に外部へトランスポートストリームを出力していた。
本実施形態においては、外部から入力したトランスポートストリームを記録し、その後外部へトランスポートストリームを出力するという点において実施形態1と相違する。
図7は、本実施形態による光ディスクレコーダ300(以下「レコーダ300」と記述する)のブロック構成を示す。図7において、まず記録時には、1394インタフェース部301からトランスポートストリームを入力し、記録部303及びピックアップ312を介して相変化光ディスク311に対して書き込みを行う。この時、記録制御部307は、同時に連続データ領域検出部306を起動して、記録するために必要な空いた連続データ領域を検出することになる。論理ブロック管理部310は、記録制御部307から記録時に使用された論理ブロック番号の通知を受けて使用状況を管理する。
また、管理情報生成部302は、入力されたトランスポートストリームから、シーケンスヘッダ及びその直前のPESヘッダを含むV_TSPと、PATを含むトランスポートパケットPAT_TSPと、PMTを含むトランスポートパケットPMT_TSPとを検出する。そして管理情報生成部302は、隣り合ったシーケンスヘッダを含むV_TSP及びPESヘッダ間のデータサイズ、及び再生時の時間長を管理情報として生成する。再生時の時間長は映像フレーム数を単位として生成する。また、シーケンスヘッダ直後のIピクチャのデータサイズについても管理情報として生成する。
さらに、あるシーケンスヘッダ及びPESヘッダを含むV_TSPから過去に遡って最も近い過去に入力したPMTを含むトランスポートパケットに対して、さらに過去に遡って最も近い過去に入力したPATを含むトランスポートパケットと、シーケンスヘッダ及びPESヘッダを含むトランスポートパケットとの間のデータサイズについても、トランスポートパケット数の単位で管理情報として生成する。
記録制御部307は、入力したトランスポートパケットについて、記録部303を起動して相変化光ディスク上に管理情報の書き込みを行い、管理ファイルとして生成する。
一方、再生時には、まず再生制御部308が、相変化光ディスク311に格納された管理ファイルをピックアップ312及び再生部305を介して読み出すことになる。そして、指定された再生開始時刻に基づいて管理ファイルを参照することによって、対応するMPEG Sequence Object Unit(以下、「SOBU」という。)の記録位置と、対応するPAT_TSPの位置を割り出し、そのPAT_TSPのデータ、その位置以降に含まれる最初のPMT_TSPのデータ、及び対応するSOBU以降のデータをピックアップ312及び再生部305を介して読み出す。つまり、そのPAT_TSPと対応するSOBU先頭の間に記録されているトランスポートパケットのうち、PAT_TSP及びPMT_TSP以外のトランスポートパケットは出力しない。SOBUについては後述する。
また、読み出されたデータは、出力タイミング生成部304及び1394インタフェース部301を介して出力される。出力タイミング生成部304では、読み出されたデータに対してMPEG2システム規格(ISO/IEC 13818−1)で規定されるトランスポートストリームターゲットデコーダ(T_STD)のバッファシミュレーションを実施することによって適切な出力タイミングを算出し、この算出された出力タイミングに従って、1394インタフェース部301へ読み出されたデータを渡す。そして1394インタフェース部301は、そのタイミングを保持しながらトランスポートパケットを出力することになる。
図8は、レコーダ300によって記録された記録ファイルのデータ構造図である。図8に示すように、記録ファイルはSOBUで構成されている。
本明細書においては、SOBUとVOBU(図6)とは以下のように使い分けられている。すなわち、「VOBU」とは、主としてレコーダがアナログ信号を自ら符号化して生成したときのデータストリームの再生単位をいう。一方「SOBU」とは、主としてレコーダが外部から受け取ったトランスポートストリームのデータ構造を実質的にそのまま維持して記録媒体に書き込んだときの、データストリームの再生単位をいう。また、VOBUとSOBUのどちらの再生単位であるか、特に意識する必要がない場合は、SOBUと呼ぶものとする。これらの使い分けは便宜のためである。上述の定義によって発明が限定されることはない。
SOBUは、原則として映像のシーケンスヘッダ及びその直前のPESヘッダを含むV_TSPから、次のシーケンスヘッダ及びその直前のPESヘッダを含むV_TSPの1個前までを含んでいる。ただし、先頭のSOBUは、例外的に先頭にPAT_TSPを含んでいる。これは、本実施形態2において、PAT_TSPから記録を開始するからである。また、かかる構成とすることにより、最初のシーケンスヘッダを含むV_TSPとPAT_TSPの間に半端なデータを含むことになる。また、各SOBUは複数のGOPを含むものであってもよい。
また図8では、最初のSOBU内における最後のPMT_TSPの直前のPAT_TSPの位置は、当該SOBUの末尾からM個目であるものとする。また、2個目のSOBUは先頭にシーケンスヘッダ及びその直前のPESヘッダを含むV_TSPを含み、さらにこのSOBU内における最後のPMT_TSPの直前のPAT_TSPの位置が、当該SOBUの末尾からN個目であるものとする。
ただし、シーケンスヘッダ及びその直前のPESヘッダを含むV_TSPは、そのデータ領域(以下、「ペイロード」という。)の先頭からPESヘッダ及びシーケンスヘッダを含んでいる必要はない。外部から入力するトランスポートストリームのシーケンスヘッダの開始位置は指定できないからである。
極端な場合、例えばシーケンスヘッダが、2個のV_TSPにまたがって配置される場合も考えられる。この場合、シーケンスヘッダの先頭に配置される4バイトのシーケンスヘッダコード(0x000001B3)のうち、第1バイト目(0x00)を含むV_TSPがSOBU内の最初のV_TSPであるものとする。
図9は、レコーダ300によって記録された管理ファイルのデータ構造図である。図9に示すように、管理ファイルは、TMAP_GIテーブル、複数のTM_ENTテーブル(TM_ENTs)、及び複数のSOBU_ENTテーブル(SOBU_ENTs)から構成されている。この3つのテーブルは、ファイルの先頭を時刻0(ゼロ)とし、その時刻から経過した時間と、その時刻に対応するトランスポートパケットの記録位置との関係を保持する。
まず、TMAP_GIテーブルにおいては、TMAPタイプに管理ファイルのデータ構造の識別子としてタイプ番号を格納している。また、タイムエントリ数としてTM_ENTテーブルの数を格納し、SOBUエントリ数にはSOBU_ENTテーブルの数を格納している。さらに、先頭のタイムオフセットには、最初のTM_ENTテーブルが参照する時刻がファイル内の最初の映像フレームからどの程度経過した時刻であるかを、フィールド数で表した値として格納している。
次に、SOBU_ENTテーブルにおいては、SOBUの先頭におけるIピクチャのデータサイズをI−picture data sizeフィールドへ設定する。このデータサイズはトランスポートパケット数を利用して記述される。また、SOBUの表示に要する時間長についてもフィールド数SOBU時間長フィールドへ設定している。また、SOBUのデータサイズをSOBUデータサイズフィールドへトランスポートパケット数の単位で設定する。上述の構成は、従来から知られているタイムマップ情報に近似する。
さらに、1個前のSOBUにおける最後のPMT_TSPに対して最も近い過去に入力したPAT_TSPの位置を、1個前のSOBU末尾からのパケット数としてPAT/PMTポインタフィールドへ設定している。さらに、連続する2個のSOBUを構成するトランスポートパケットの内、各SOBUの先頭のパケットの到着時間差を27MHzのクロックによるカウンタ値を使ってTSP到着時間フィールドに設定している。
さらに、TSP到着時間フィールドの時間長情報と、SOBU時間長フィールドの時間長情報を、単位をそろえた後で比較し、1.5倍以上(または1.5倍より大きく)異なる場合は、時間長有効フラグフィールドを‘0’とし、1.5倍未満(または1.5倍以下)の場合は時間長有効フラグフィールドを‘1’とする。この時間長有効フラグが‘1’の場合には、SOBU時間長フィールドの値が有効であり、‘0’の場合にはTSP到着時間フィールドの方が有効であることを示している。
また、TM_ENTテーブルは、10秒間隔の参照時刻に対する記録ファイル上での位置を格納している。すなわち、SOBU Entry Indexには、10秒間隔の参照時刻に対応するSOBUに対して、それに対応するSOBU_ENTテーブルの通し番号を格納している。また、Time Differenceには、10秒間隔の参照時刻に対応する映像フレームと、SOBU Entry Indexが参照するSOBUの先頭フレームとの時間差について、フィールド数を単位として表現した値を格納している。
さらに、PAT/PMTポインタについては、図8に示す記録ファイルの場合を考えると、1個目、2個目、及び3個目のSOBUに対応するSOBU_ENTテーブルのPAT/PMTポインタは、それぞれ‘0(ゼロ)’、‘M’、‘N’を格納することになる。
記録時においては、1394インタフェース部301を介して入力したトランスポートストリームを記録して記録ファイルを作成し、同時に管理ファイルも作成される。ただし、TM_ENT及びTMAP_GIは、記録ファイル及びSOBU_ENTの作成が完了した後に、SOBU_ENTを参照して作成することになる。この時、時間長有効フラグが‘0’の場合は、TSP到着時間フィールドを参照して該当するSOBUの時間長とみなして、TM_ENTを生成する。
そして、再生時においては、管理ファイルを事前に読み出しておき、TM_ENTテーブルを参照して、指定された再生開始時刻に対応するSOBUのSOBU_ENTテーブルを検出する。さらに、当該SOBU_ENT内におけるPAT/PMTポインタを参照して、その位置からディスク上のトランスポートパケットを読み出し、必要なトランスポートパケットを外部へ出力する。
以上の構成により、指定された再生開始時刻に対応するSOBU以降のデータについて、適切なPAT及びPMTを含んだ形で出力することが可能となる。より具体的には、再生開始時刻として特定のSOBUの先頭を指定した場合においても、SOBU以降の再生に必要なデータが欠けることなく、全て出力することが可能となる。これによって、1394インタフェース部301に接続されたDTVやSTB等の外部機器に対して、SOBUの単位による時刻指定であれば、どのタイミングであっても再生可能な形態で出力することが可能となる。
また、SOBUの先頭を検出する際には、シーケンスヘッダコードの第4バイト目を含むV_TSPを検出し、そのV_TSPをSOBUの先頭として管理データを作成してもよい。この方法は、シーケンスヘッダコードの直前のPESヘッダの第1バイトを含むV_TSPを検出し、そのV_TSPをSOBUの先頭として管理データを作成する場合と比較して、検出処理を簡略化できる。なぜなら、シーケンスヘッダ又は直前のPESヘッダが2個のV_TSPにまたがっていた場合、SOBUの先頭位置をシーケンスヘッダの第4バイト目を検出してから、1つ前のV_TSPまで遡って算出する必要があるからである。この時、この2個のV_TSP間に挟まれるトランスポートパケットの個数は一定ではないことから、挟まれる個数を毎回算出する必要がある。これに較べて、本実施形態の方法では挟まれる個数は0(ゼロ)であり、毎回算出する必要がないからである。
第4バイト目を含むV_TSPをSOBU内の最初のV_TSPとする場合、再生時において、PAT/PMTポインタの指すPAT_TSPとSOBU先頭との間に存在するシーケンスヘッダの第1バイト目を含むV_TSPも送出する必要がある。または、シーケンスヘッダの第1バイト目を含むV_TSPを新規に生成して挿入する必要がある。または、受信側のMPEGデコーダにおいてペイロード先頭が0xB3であった場合は、シーケンススタートコードと見なして再生を行う必要がある。
また、TSP到着時間及び時間長有効フラグを設けたことにより、入力するトランスポートストリームが特殊再生用のものだった場合においても、SOBUによる1秒弱の単位の時間管理及びTM_ENTによる10秒間隔の時間管理も適切な時間間隔を保持可能になる。特殊再生用のトランスポートストリームとしては、例えば1秒間に5フレーム程度の表示速度を有するスロー再生用のトランスポートストリームを記録する場合がある。この時のトランスポートストリームはIBBPBB・・・のように各ピクチャを順に入力することになる。この場合、SOBU内のフレーム数は‘5’となり、すなわち約1/3秒分であるが、TSP到着時間は1秒となる。このような入力に対しても表示時間長に等しい1秒分のSOBUとして管理可能となる。
一方、1秒間に5フレーム程度の表示速度を有する高速再生用のトランスポートストリームを有する場合もある。この時のトランスポートストリームはIIII・・・のようにIピクチャを順に入力することになる。このような入力に対しても表示時間に等しい1秒分のSOBUとして管理可能となる。
なお、本実施形態では、記録時においてSOBUの先頭から過去に遡って最も近い過去に入力したPAT/PMTへのポインタをSOBU_ENTに登録しているが、SOBUの直後のPAT及びPMTへのポインタを格納するものであってもよい。ただし、この場合には、再生時において、当該PAT/PMTポインタによって参照されているPAT及びPMTの連続性カウンタ(Continuity Counter)のカウンタ値を‘1’だけ減算したトランスポートパケットをSOBUに先だって出力する必要がある。さらに、PAT又はPMTを含むトランスポートパケットにプログラムクロックリファレンス(PCR)フィールドが含まれている場合には、この値についてもPCR値を先立って出力する時間分だけ減らすように修正する必要がある。また、PCRが含まれている場合には、別途PCRを含むトランスポートパケットを送出するのが望ましい。
本実施形態においては、再生時にSOBU_ENTテーブルのPAT/PMTポインタを参照するとしたが、参照しなくてもよい。そのときには、SOBUの直前のデータを所定量だけ読み出し、SOBU先頭から過去に入力したトランスポートパケットの方向へ検索し、最初に検出したPMT_TSPと、続けて検出したPAT_TSPとをSOBUの出力前に出力すればよい。特にデジタル放送規格に準拠したトランスポートストリームの場合には、PAT_TSPとPMT_TSPの挿入頻度が規定されている場合も考えられることから、この挿入頻度に対応した所定量を読み出せば、必ずPAT_TSP及びPMT_TSPが含まれることになる。例えば、15Mbpsのストリーム内に100msec以下の頻度で存在する場合には、所定量は187.5キロバイトとなる。ただし、この場合には、パケットの検索処理時間が余計に必要になることは言うまでもない。
さらに、本実施形態においては、再生時にSOBU_ENTテーブルのPAT/PMTポインタを参照するものとしているが、参照することなくSOBUの先頭以降のデータを所定量だけ読み出し、そのデータの中から必要なトランスポートパケットを検索することで、SOBUの先頭に最も近いPAT_TSPと、SOBUの先頭に最も近いPMT_TSPと、SOBUの先頭に最も近いPCRを含むトランスポートパケットを抽出し、内部のデータを変更してSOBUの前に出力するものであってもよい。特にデジタル放送規格に準拠したトランスポートストリームの場合には、PAT_TSPとPMT_TSPの挿入頻度が規定されている場合も考えられることから、この挿入頻度に対応した所定量を読み出せば、必ずPAT_TSP及びPMT_TSPが含まれることになる。例えば、15Mbpsのストリーム内に100msecの頻度で存在する場合には、所定量は187.5キロバイトとなる。ただし、この場合には、パケットの検索処理時間が余計に必要になることは言うまでもない。
なお、この場合も同様に、PAT_TSP、PMT_TSP、及びPCRが含まれるトランスポートパケットの連続性カウンタ(Continuity Counter)を‘1’だけ減算したトランスポートパケットをSOBUに先だって出力する必要がある。さらに、PAT又はPMTを含むトランスポートパケットにプログラムクロックリファレンス(PCR)フィールドが含まれている場合には、この値についてもPCR値を先立って出力する時間分だけ減らすように修正する必要がある。また、PCRが含まれるトランスポートパケットについては、アダプテーションフィールドを広げてペイロード部分をなくすように更新する必要も生じる。
なお、本実施形態の管理ファイルと同様の管理ファイルを実施形態1に示す方法で記録してもよい。また、本実施形態では、管理ファイルを別途記録するものとしているが、トランスポートパケット内に格納する形、例えば記録ファイルの末尾部分にトランスポートパケットに分割されたプライベートPESストリームの形で記録するものであってもよい。
また、本実施形態では、PAT/PMTポインタは、SOBUから過去に遡って最も近い過去に入力したPMT_TSPに対してさらに過去に遡って最も近い過去に入力したPAT_TSPと、そのSOBU先頭との間のデータサイズであるものとしているが、SOBUから過去に遡って最も近い過去に入力したPCRを含むトランスポートパケットに対してさらに過去に遡って最も近い過去に入力したPMT_TSPに対してさらに過去に遡って最も近い過去に入力したPAT_TSPと、そのSOBUの間のデータサイズであるものとすれば一層よい。
この場合、再生時にはSOBUの送出の前に、SOBU先頭とPAT/PMTポインタに挟まれたPAT_TSP、PMT_TSP、及びPCRを含むトランスポートパケットのみを出力する。これにより、トランスポートストリームの受信側のMPEGデコーダは、SOBUの最初のV_TSP内のPESヘッダに記載されたPTSやDTSを参照する前にPCRの値を入手することになるので、PTSやDTSを参照した動作を実施することができる。
一方、本実施形態では、PTSやDTSを参照した動作を実施することができず、映像データ中のvbv_delayフィールドを参照し、SOBUの最初のV_TSPの入力時刻からの経過時間がvbv_delayフィールドの値と一致したときに映像の復号を開始する等のタイミング制御が必要となる。
さらに、本実施形態では、PAT/PMTポインタは、SOBU先頭とSOBUから過去に遡って最も近い過去に入力したPMT_TSPに対してさらに過去に遡って最も近い過去に入力したPAT_TSPとの間のデータサイズであるものとしている。しかし、SOBU先頭よりも所定数だけ前に離れた位置(例えば、トランスポートパケット100個分だけ前、等)を指示するものであってもよい。この場合には、PAT/PMT/PCRの挿入頻度から、それらが必ず含まれる個数であることが望ましい。
また、本実施形態では、PAT/PMTポインタは、SOBU先頭とSOBUから過去に遡って最も近い過去に入力したPMT_TSPに対してさらに過去に遡って最も近い過去に入力したPAT_TSPとの間のデータサイズであるものとしているが、SOBU先頭よりも所定時間だけ過去に入力したトランスポートパケットの位置(例えば、300msec前)を指示するものであってもよい。
例えば300msec前であれば、日本のデジタル放送の場合及び欧州のデジタル放送(DVB)の場合は、この間にPAT_TSP、それに続くPMT_TSP、及びそれに続くPCRがこの順序で含まれる可能性が高い。これは、PAT_TSP及びPMT_TSPの送出頻度が100msec以上という運用規定があるからである。
また、所定時間だけ過去に入力したトランスポートパケットの位置をPAT/PMTポインタで指さなくても、再生時にその位置を検索すればよい。ただし、この場合、トランスポートパケット単位で到着タイミングを別途記録していることが前提となる。
なお、SOBUが特殊再生時に使用されるトリックモードフラグをPESヘッダ内に有する場合には、時間長有効フラグを‘0’としてもよい。
また、本実施形態においては、PAT/PMTポインタを管理情報として記録しているが、実際のPATを含むトランスポートパケット及びPMTを含むトランスポートパケットを、MPEG規格の連続性を確保したSOBUのグループの単位ごとに、SOBUのグループごとの管理情報とは別に記録してもよい。また、記録ファイルごとに記録してもよい。ただし、記録ファイルごとに記録する場合には、DITを含むトランスポートパケットを検出した場合、検出前と検出後で記録ファイルを分断する必要がある。また、トランスポートパケットヘッダを含まないでPAT及びPMTのテーブルのみであってもよい。
また、記録ファイルごとに記録する場合、PATを含むトランスポートパケット及びPMTを含むトランスポートパケットをそのまま記録しないで、図10に示すように、内部に含まれる各エレメンタリストリームの種別とPIDの対応、PMTのPID、PCRが格納されるPID等を要約して記録してもよい。
さらに、SOBU内で最初のPAT、及びPMTを含むトランスポートパケットの連続性カウンタの値を検出して含んでもよい。図11は、このようなSOBUごとの管理情報の例を示す。
また、通常は複数のSOBUに渡ってPAT及びPMTは変化しないことから、SOBUのグループごとの管理情報として別途記録したPAT_TSP及びPMT_TSPを識別するための識別子を各SOBUのグループごとに記録してもよい。
そして、ユーザに指定された特定のSOBUを再生開始点とする場合には、そのSOBUに先だって、別に記録されたPAT及びPMTをトランスポートパケットとして構成して送出する必要がある。さらに、PCRを含むトランスポートパケットについても、PMTとSOBUの間のタイミングで送出する必要がある。
この時、PATを含むトランスポートパケット及びPMTを含むトランスポートパケットの連続性カウンタの値としては、管理情報として記録されたSOBU内で最初のPAT及びPMTの連続性カウンタの値から‘1’だけ減算した値を使用すればよい。このように、管理情報としてSOBU内で最初のPAT及びPMTの連続性カウンタの値を保持することにより、容易にPAT及びPMTを作成することができる。
なお、本実施形態では、シーケンス・スタート・コードの第1バイトを含むV_TSPを2個目以降のSOBUの先頭に配置するものとしているが、SOBUの先頭に別のトランスポートパケットが記録されてもよい。これはSOBU内の最初のV_TSPがシーケンス・スタート・コードの第1バイトと含んでいればよいからである。別のトランスポートパケットを記録する例としては、トランスポートパケットごとの到着タイミング情報を所定の数だけまとめて格納する場合である。
また、本実施形態のレコーダはMPEGデコーダを持たないが、MPEGデコーダを設けてもよい。これにより、レコーダ内部の処理によって再生表示が可能となる。
さらに、本実施形態では、シーケンスヘッダを含むV_TSPがPESヘッダを含むものとしているが、必ずしもPESヘッダを含まなくてもよい。MPEG規格上は、映像のPESヘッダがストリームの先頭に1回しかない場合も許されているからである。
また、本実施形態では、SOBU先頭のV_TSPの前に送出するPAT_TSP、PMT_TSP、及びPCRを含むトランスポートパケットの送出タイミングについては触れていないが、受信側の処理速度を考慮して時間的な間隔をあけて送出するようにしてもよい。
さらに、本実施形態では、1個目のSOBUはPAT_TSPから記録するものとしているが、他の種類のトランスポートパケットから記録を開始してもよい。例えば、最初のPAT_TSPが到着するまでのトランスポートパケットをすべて記録してもよい。
また、本実施形態では、SOBUごとにSOBU時間長とTSP到着時間を記録するものとしているが、TSP到着時間のみを記録するものであってもよい。この場合、シーケンスヘッダの検出処理やフィールド数のカウント処理が不要になることから、管理情報生成部を簡略化することが可能となる。
(実施形態3)
以下、本発明の実施形態3による装置を、図面を参照しながら説明する。上述した実施形態1および2は映像ファイルの記録・再生に関していたのに対し、本実施形態は音声ファイルの記録・再生に関する。
まず、本実施形態による音声ファイルを記録再生するレコーダの構成は、図5に示すレコーダ200と同じである。レコーダ200の構成は実施形態1において説明したので、以下では詳細な説明は省略する。
図12は、音声ファイルのデータ構造図である。図12に示すように、音声ファイルは、データサイズが固定長(例えば約2キロバイト)のヘッダ、及びオーディオオブジェクト(以下、「AOB」という。)から構成され、AOBは複数のオーディオオブジェクトユニット(以下、「AOBU」という。)から構成されている。
ヘッダには、音声ファイルに関する管理情報が格納されている。各AOBUには、所定数(例えば4個)の音声フレームが含まれており、先頭にはPAT_TSP及びPMT_TSPが含まれている。また、1音声フレームは、所定数(例えば3個)のトランスポートパケットA_TSPにより構成されている。図12においては、各音声フレームが固定ビットレートとなることを前提としている。
図12に示す音声ファイルのデータ構造を採用することにより、途中のAOBUから再生を開始する場合において、確実にPAT_TSP及びPMT_TSPを含むようになる。したがって、音声ファイルのどのAOBUから再生する場合であっても、確実に先頭音声フレームから再生することが可能となる。
また、本実施形態に示すように、AOBUに含まれる音声フレームを4個にすれば、PAT/PMTの挿入タイミングを100msecごと以内にすることができる。こうすることで、日本のBSデジタル放送に対応した1394の伝送規格が定める100msec以内に収めることができる。具体的には、ISO/IEC 13818−7 Advanced Audio Coding圧縮を48KHzサンプリング、1024サンプルで使用する場合がこれに該当する。
また、図12に示すように、PAT_TSP及びPMT_TSPの挿入タイミング、AOBUを構成する音声フレーム数、及び音声フレームを構成するトランスポートパケット数を固定化することにより、時刻指定により途中のAOBUから再生する場合に、時刻と対応するAOBUの位置が単純な計算のみで求まることから、実施形態2のようにTM_ENTテーブルやSOBU_ENTテーブルに相当するテーブルを記録しておく必要がなくなる。必要な情報としては、1音声フレームのフレーム時間、1音声フレームを構成するトランスポートパケット数、及び1AOBUを構成する音声フレーム数で十分である。これらの情報を、例えば音声ファイルのヘッダ部分に記録しておけばよい。
なお、本実施形態では、PAT_TSP及びPMT_TSPの挿入タイミング、AOBUを構成する音声フレーム数、及び音声フレームを構成するトランスポートパケット数を固定化するものとして説明しているが、AOBUを構成する音声フレーム数、及び音声フレームを構成するトランスポートパケット数を所定数以下でもよいものとしてもよい。ただし、この場合には実施形態2のようなTM_ENTテーブルやSOBU_ENTテーブルに相当するテーブルをファイルフッタまたは別の管理ファイルとして記録した方がよい。
また、実施形態1および3では、PAT_TSP及びPMT_TSPをVOBUまたはAOBUの先頭に配置するものとしているが、PAT_TSP及びPMT_TSPの直前に別のトランスポートパケットが記録され、続いてPAT_TSP、PMT_TSPが記録されてもよい。これはVOBU又はAOBU内の最初のV_TSP又はA_TSPよりも前に、PAT_TSP及びPMT_TSPが記録されていればよいからである。別のトランスポートパケットを記録する例としては、トランスポートパケットごとの到着タイミング情報を所定の数だけまとめて格納する場合である。
なお、AOBU内の最初のA_TSP内にはトランスポートパケットヘッダ内にPCRが含まれることが望ましい。A_TSP内の音声データよりも先にPAT_TSP、PMT_TSP、及びPCRを送出できるからである。
(実施形態4)
図13は、本実施形態によるプレーヤ400の構成を示す。プレーヤ400は、例えばレコーダ200(図5)の1394インタフェース部と1394ケーブルを介して接続される。
1394インタフェース部401から入力されたトランスポートストリームは、PAT/PMT/PCR解析部402によりPAT、PMT、及びPCRフィールドが抽出される。解析部402は、解析後、復号に必要な映像及び音声のPIDとPCRを再生部403に送る。再生部403は映像のPID、音声のPID、及びPCRを受け取るとすぐに、入力されたトランスポートストリームの蓄積を開始する。そして受け取った情報を利用してトランスポートストリームの復号処理を開始する。再生部403は、復号した映像信号及び音声信号を表示部404へ渡す。
復号処理の開始時においては、PCRを含むトランスポートパケットが蓄積及び復号のきっかけ(トリガ)となる場合は、当該トランスポートパケット自体以降のトランスポートパケットが蓄積及び復号の対象となるとする。以降、PAT/PMT/PCR解析部402は、PAT/PMT/PCRを検出するごとに、再生部403へPIDとPCRを渡すことになる。
以上の構成により、実施形態1〜3にかかるレコーダの1394インタフェース部から出力されるトランスポートストリームを、図13に示すプレーヤの1394インタフェース部401において受け取ることにより、確実にトランスポートストリームの先頭から再生することができる。
PAT/PMT/PCRの解析処理のために必要な処理時間は、各機器によって異なる。例えば処理時間が0.5秒の機種もあれば、1.0秒の機種もある。しかし、これらの処理時間に依存することなく、本実施形態1、2及び3による送出側機器が統一的なトランスポートストリームを出力すれば、実施形態4による受信側のプレーヤはPAT/PMT/PCRの解析処理が終了するとすぐに映像等の再生を開始できる。
この方法によれば、送信側機器が解析処理時間の最大値を見積もり、PAT/PMT/PCRを含むトランスポートパケットのみを送出し、かつ、解析処理時間の最大値の間だけトランスポートストリームの出力を停止する方法よりも、映像及び音声出力までの遅延時間を短縮することができる。さらに、特定のシーンを選択して、選択した複数のシーンを連続して再生する場合においても、シーンの切り換え時間を短縮化することもできる。
また、このようなシーンの切り換えが発生するとき、シーンの切換タイミングを事前に機器に通知してもよい。通知内容としては、例えば前のシーンに使用されたSTC(システムタイムクロック)の値として表現して、次のシーンの最初のフレームが再生されるタイミングを通知してもよい。通知方法としては、例えば1394におけるAVCコマンドを使うものであってもよい。また、特別のトランスポートパケットにより通知してもよい。
また、次のシーンのPAT/PMTに関する情報をトランスポートストリームの切り替え点よりも少し前に機器に通知してもよい。通知するために、PAT及びPMTのバージョン番号(version_number)フィールド及びカレント_ネックスト_識別子(current_next_indicator)フィールドを使用してもよい。
また、シーンの切換点において、送出側がDIT(Discontinuity Information Table)を含むトランスポートパケットを挿入することにより、トランスポートストリーム内における切換タイミングを入力ストリームの監視によって確認できるようにしてもよい。
なお、本実施形態では、PAT/PMT/PCR解析部402はPAT、PMT、PCRの順に入力する場合を想定しているが、異なる順序で入力した場合であっても、そのPAT、PMT、及びPCRに含まれる映像及び音声のPIDとPCR等の情報を再生部403へ渡してもよい。
このような処理を前提とすることにより、実施形態3において、シーケンスヘッダを含むトランスポートパケットよりも100msec以内の過去に入力したトランスポートパケットの中からPAT_TSP、PMT_TSP、及びPCRを含むトランスポートパケットを抽出して、そのままの順序で送出してもよい。このとき、PAT_TSP、PMT_TSP、及びPCRを含むトランスポートパケットの送出順序がどのようになっていたとしても、受信側でPAT_TSP、PMT_TSP、及びPCRを含むトランスポートパケットの順序に直して解釈される。これによって、300msec前に入力したトランスポートストリームの中からこれらのトランスポートパケットを抽出する必要がなくなる。
また、このような処理を前提とすれば、実施形態1及び2において、PAT_TSP、PMT_TSP、及びPCRを含むトランスポートパケットの送出順序及び記録順序はこの順番が守られていなくてもよい。また、実施形態3におけるPAT/PMTポインタは、PAT_TSP、PMT_TSP、又はPCRを含むトランスポートパケットのうち最も過去に入力されたトランスポートパケットの位置情報を参照すればよい。その位置からSOBUの先頭までにこの3種類のトランスポートパケットが存在することになるからである。
(実施形態5)
図14は、ARIB(Association of Radio Industries Businesses:社団法人電波産業会)規格のマルチビュー放送に利用されるトランスポートストリームの管理情報のデータ構造を示している。マルチビュー放送は、1つのトランスポートストリーム内に最大3つの番組が多重化される。このようなトランスポートストリームの場合、その番組ごとにSOBU_ENTテーブル及びTM_ENTテーブルを作成することになる。
そして、表示時間が近接している番組1、番組2、及び番組3のそれぞれのSOBU_ENTテーブルを1、2、3、1、2、3、…の様に順番に繰り返し記録する。TM_ENTテーブルも同様に記録する。なお、それぞれのSOBU_ENTテーブル及びTM_ENTテーブルは、実施形態2と同じデータ構造であるものとする。また、TMAP_GI内に番組の多重数を記録するものとする。その他の構成は実施形態2と同様である。
以上の構成により、マルチビュー放送であっても、任意の番組における任意のシーケンスヘッダよりPAT、PMT、及びPCRを含んだ形でトランスポートストリームの送出が可能となる。
なお、番組2及び番組3に対応するSOBU_ENTテーブルを、番組1のSOBU_ENTテーブルの後に直列に記録してもよい。また、同様に番組2及び番組3に対応するTM_ENTテーブルを、番組1のTM_ENTテーブルの後に直列に記録してもよい。
(実施形態6)
以下では、データストリームの2種類の管理ファイルを説明する。その後、いずれの管理ファイルへも容易に変換可能な、本実施形態による管理ファイルを説明する。あわせて、そのような管理ファイルを生成する本実施形態による装置を説明する。
なお、以下に説明する実施形態においては、記録装置が自ら符号化して動画ストリームを生成していても、動画ストリームの再生単位をSOBUと呼ぶ。説明の便宜のためSOBUとVOBUとを区別しないことに留意されたい。
図15は、第1の管理ファイル1のデータ構造を示す。
光ディスクレコーダ等の記録機器は、1以上のSOBUを生成してストリームファイルとして記録する。その後、そのストリームファイルに関する管理情報を格納した管理ファイルを記録する。ストリームファイルと管理ファイルは、相変化光ディスク131上の同一のディレクトリに配置される。また、ファイル名は、ファイル拡張子のみを相違させ、ファイル拡張子以外は同じ名前を割り当てる。例えば、MOVIE001.MPG(ストリームファイル)とMOVIE001.CTL(管理ファイル)のように、1:1の対応関係を保持させて記録する。管理ファイルの管理情報は、例えばストリームファイル中の任意の箇所から映像、音声を再生するために利用される。再生時において、機器は、ユーザが指定した再生開始箇所の先頭からの経過時間からに基づいて、再生すべきSOBUの格納先アドレスを管理ファイルから導出し、そのアドレスに格納されているストリームファイルのデータを用いて映像等を再生する。
図15に示す管理ファイル1は、TMAP_GIテーブル2、及び複数のSOBU_ENTテーブル(SOBU_ENTs)3から構成されている。
まず、TMAP_GIテーブル2においては、TMAPタイプに管理ファイルのデータ構造の識別子としてタイプ番号が格納されている。また、SOBUエントリ数にはSOBU_ENTテーブルの個数が格納されている。
次に、SOBU_ENTテーブル3を説明する。まず、SOBUの先頭に記録されたIピクチャのデータサイズが“I−picture data size”フィールド4に設定される。設定される値は、Iピクチャのデータの先頭が格納されたトランスポートパケットから、そのデータの末尾が格納されたトランスポートパケットまでの個数である。なお、各トランスポートパケットの間には、例えばオーディオデータを格納したトランスポートパケットパケットもインターリーブされ得る。このときは、Iピクチャのデータを格納していないトランスポートパケットの数も含めて値が設定される。
また、各SOBUに含まれるピクチャの総再生時間はSOBU時間長フィールド5に設定される。設定される値は、そのSOBUが再生されたときの映像フィールド数である。また、各SOBUのデータサイズが、SOBUデータサイズフィールド6に設定される。設定される値は、SOBUに含まれるトランスポートパケットの数である。トランスポートパケットのデータ長は188バイトに固定されているため、パケット数を記述すれば容易にそのSOBUのデータ長を特定できる。
また、1394インタフェース部640を介して入力したトランスポートストリームを記録する場合にもストリームファイルを作成し、同時に管理ファイルを生成すればよい。
図16は、第2の管理ファイル11のデータ構造を示す。管理ファイル11は、例えばブルーレイディスクにおいて採用されている。
管理ファイル11は、TMAP_GIテーブル12、及び複数のSOBU_ENTテーブル(SOBU_ENTs)13から構成されている。
まず、TMAP_GIテーブル12においては、TMAPタイプに管理ファイルのデータ構造の識別子としてタイプ番号が格納されている。また、SOBUエントリ数にはSOBU_ENTテーブルの個数が格納されている。
次に、SOBU_ENTテーブル13においては、 “I−picture data size”フィールド14、PTS差分フィールド15およびSOBUデータサイズフィールド16が設けられる。フィールド14および16には、それぞれ管理ファイル1における同名のフィールド4および6と同等の情報が記述される。
一方、PTS差分フィールド15には、データストリーム中で隣接する2つのSOBUの先頭に記録されたIピクチャ同士のPTSの差分が設定される。
以下、図17(a)および(b)を参照しながら、上述のPTSの差分をより詳しく説明する。図17(a)は、SOBU、SOBU先頭のIピクチャのPTS差分の定義、およびSOBU時間長の関係を示す。記号“B”、“I”および“P”は、それぞれMPEG規格におけるBピクチャ、IピクチャおよびPピクチャを示す。各ピクチャは、再生される順序で図示されている。
図17(a)に示す各SOBU内の各ピクチャの表示順は、BBIBBP、IBBP、BBIである。図中のSOBU時間長は、各SOBUに含まれる映像フレームの再生時間長を示し、映像フィールド数を単位として定義する。また、Iピクチャ間のPTS差分は、あるSOBUの先頭フレームであるIフレームの表示タイミング(PTS)と直後のSOBUの先頭フレームであるIフレームの表示タイミング(PTS)との時間差で定義される。ただし、本実施形態においては、現実に付加されているPTS値ではなく映像フィールド数が設定されるとする。
一方、図17(b)は各ピクチャのデータがトランスポートストリーム内で配置される順序を示す。各ピクチャのデータはこの順序で記録媒体に書き込まれる。図17(b)に示されたIBBPBB、IPBB、IBB・・・は、SOBU#i、SOBU#(i+1)、SOBU#(i+2)の中に、映像フレームを圧縮したIBBPBB、IPBB、IBBの各ピクチャが含まれることを示す。なお、図17(a)および(b)において、1個のSOBUを構成する映像フレーム数は例である。より多くのピクチャが含まれてもよい。
本明細書においては、HDDおよび相変化光ディスクには図15に示すデータ構造を有する管理ファイルが記録され、メモリカードには図16に示すデータ構造を有する管理ファイルが記録されるとする。一方、ストリームファイルのデータ構造は、記録媒体の種類によらず同じであるとする。すなわち、HDDおよび相変化光ディスクのいずれにおいても、ストリームファイルはトランスポートストリームを格納しているとする。なお、ストリームファイルおよび管理ファイルのデータ構造は、記録媒体の規格で規定されていることもあるし、または任意に決定されることもある。
本実施形態においては、図15に示す管理ファイル1、および、図16に示す管理ファイル11のいずれにも容易に変換可能な、新たな管理ファイルを規定する。そのような管理ファイルは、ストリームファイルの生成とともに生成される。本実施形態による管理ファイルを利用することにより、レコーダから他の機器にデータストリームを転送する際には、その管理ファイルを転送先の機器に適合する管理ファイルに変換すればよい。データストリームを全て解析して管理ファイルを生成する必要がないため、データストリームおよび管理ファイルの転送が高速で完了する。
以下、本実施形態による管理ファイルを生成するレコーダの構成および動作と、管理ファイルのデータ構造とを説明する。
図18は、本実施形態によるHDD内蔵光ディスクレコーダ500の主要な機能ブロックの構成を示す。HDD内蔵光ディスクレコーダ500(以下「レコーダ500」と記述する)は、映像信号および音声信号を記録再生部540によって符号化してトランスポートストリームおよびその管理情報を生成する。そしてトランスポートストリームおよび管理情報をストリームファイルおよび管理ファイルとして、HDD(ハードディスクドライブ)部520および/または光ディスクドライブ部530を介して各記録媒体に記録する。この管理ファイルは、図15に示すようなSOBU時間長フィールドを含むが、図15に示すデータ構造とは異なる。詳細なデータ構造は、後に図20を参照しながら説明する。
図19は、レコーダ500の記録再生部540の詳細な構成を示す。映像信号および音声信号を受信して自ら符号化する(すなわちセルフエンコードする)場合には、図5に示すレコーダ200のストリームの記録処理、および図15に示したSOBU時間長を含む管理情報の記録処理と基本的には同様の処理を行う。
記録再生部540のフォーマット変換部510は、HDDまたは相変化光ディスクに記録されたストリームファイルを読み取り、メモリカードドライブ部550を介してメモリカードへ書き込むことができる。また、フォーマット変換部510は、HDDまたは相変化光ディスクに記録された管理ファイルを読み取り、フォーマット変換してメモリカードドライブ部550のメモリカードへ書き込むことができる。
さらに記録再生部540は、他の装置から1394インタフェースを介してトランスポートストリームを受け取り、記録すること(すなわちインポートすること)ができる。また記録再生部540は、1394インタフェースを介して、他の装置へトランスポートストリームを送出し、その装置に記録させること(すなわちエクスポートすること)ができる。これらのインポート/エクスポート処理は、実施形態2におけるストリームのインポート/エクスポート処理と同じである。また、管理情報を管理ファイルとして記録する処理も図16に示す管理情報の記録処理と同様に行われる。
図20は、本実施形態による管理ファイル21のデータ構造を示す。管理ファイル21は、TMAP_GIテーブル22、及び複数のSOBU_ENTテーブル(SOBU_ENTs)23から構成されている。
この管理ファイル21が図15に示す管理ファイル1と相違する点は、管理ファイル21のSOBU_ENTテーブル23が新たに先行表示枚数フィールド27を有することである。先行表示枚数フィールド27には、SOBU内の先頭Iフレームよりも前に表示される映像フレームの情報が記述される。その他のフィールドには、図15に示す管理ファイル1の対応するフィールドと同等の情報が記述される。
なお、対応するSOBU時間長フィールド25とSOBUのデータサイズ(またはSOBUの記録位置)フィールド26とが各SOBU_ENTテーブル23に格納されている。これらは、各SOBU固有の情報として位置づけられる。
以下、図21(a)および(b)を参照しながら、先行表示枚数フィールドに記述される情報が示す意味を説明する。
図21(a)および(b)は、管理ファイルに記録される先行表示枚数の定義を模式的に示す。
まず図21(b)は各フレームのデータが記録される順序を示す。トランスポートストリーム中のSOBU#i、SOBU#(i+1)、SOBU#(i+2)には、それぞれIBBPB・・・B、IPBBPB・・・B、IBI・・・の順序でピクチャのデータが記録されている。
一方の図21(a)は、各フレームが表示される順序を示している。この例では、表示順は、それぞれのSOBUに関してBBIBB・・・P、IBBPBB・・・P、BIB・・・である。SOBU#iにおいて、図21(a)によれば、Iフレームの前の2枚のBフレームはIフレームよりも前に表示される。よって先行表示枚数は2フレーム(4フィールド)である。
続くSOBU#(i+1)では、その先頭のIフレームよりも前に表示されるフレームは存在しない。よって先行表示枚数は0フレーム(0フィールド)である。
そして、SOBU#(i+2)では、1枚のBフレームのみが先頭のIフレームより前に表示される。よって先行表示枚数は1フレーム(2フィールド)である。
レコーダ500は、映像信号を受け取った後自ら符号化処理を行ってトランスポートストリームを生成する。そのため、各SOBUを生成するごとに、各SOBU内の先頭Iフレームよりも前に表示されるフレームの時間長を特定することができる。
上述のように特定される各SOBU内の先頭Iフレームよりも前に表示されるフレームの時間長が、映像のフィールド数を単位としてSOBU_ENTテーブルの先行表示枚数フィールドに記述される。1秒間に30枚のフレーム画像が表示される映像システムにおいては、1フィールド画像は1/60秒の時間長に対応する。よって2枚のフレーム画像がIフレームよりも先に表示されるときには、先行表示枚数フィールドには「4」が記述される。
なお、映像のフィールド数を利用して先行表示枚数を記述する理由は以下のとおりである。例えば、実質24フレームのフィルム素材を毎秒60フィールドへ3:2プルダウン変換して記録する場合、記録される1枚の映像フレームが2フィールドまたは3フィールド分の再生時間長を有する場合がある。よってフィールドを単位とするほうが好ましい。仮にこの様なケースを想定しない場合、単位を映像フレーム数としてもよいことは言うまでもない。
図22は、レコーダ500が管理ファイル21を生成する処理の手順を示す。説明を簡単にするため、以下では映像信号に関する処理に絞って説明する。
ステップS211において、MPEGエンコーダ670は映像信号に基づいて映像フレーム単位で符号化処理を行う。そしてステップS212において、MPEGエンコーダ670はSOBU先頭のIピクチャ(Iフレーム)よりも先に表示される映像フレームを特定する。具体的には、MPEGエンコーダ670は、先のSOBUの末尾の映像フレーム以降に入力された映像フレームの中から、どの映像フレームを最初のIフレームとして符号化したかを特定すればよい。それにより、その映像フレームよりも前に入力された映像フレーム(すなわちIフレームよりも先に表示されるBフレーム)を特定できる。MPEGエンコーダ670は、Iフレームよりも先に表示される映像フレームの数に関する情報を出力する。なお、映像フレームの数に関する情報に代えて、映像フレームが生成されたことを個別に通知してもよい。
このとき、MPEGエンコーダ670は、Iピクチャのデータサイズ、SOBU時間長およびSOBUデータサイズに関する情報もあわせて出力する。MPEGエンコーダ670が符号化処理およびパケットの配列処理を行うため、これらのすべての情報は各SOBUが生成されるたびに特定される。
ステップS213において、管理情報生成部642は特定した映像フレームの数に対応する表示時間をフィールド数で算出する。そしてステップS214において、管理情報生成部642は、算出したフィールド数の値をSOBU_ENTテーブル23内の先行表示枚数フィールド27に記述する。管理情報生成部642は、Iピクチャのデータサイズ、SOBU時間長およびSOBUデータサイズの情報もSOBUが生成されるたびにテーブルに書き込む。
上述の処理の結果、各SOBU_ENTテーブル(SOBU_ENTs)23が生成される。なお、すべてのSOBUが取得されると、TMAP_GIテーブル22の内容も確定する。
その後は、記録制御部661はその管理情報を受け取って、HDDおよび/または相変化光ディスクに書き込むよう、HDD部520および/または光ディスクドライブ部530に送信する。この結果、管理ファイル21が得られる。
なお、HDDはレコーダ500に内蔵されているため、書き込むデータのデータ構造に関しては外部機器との整合を考慮しなくてもよい。よって本実施形態による管理ファイル21のデータ構造を書き込んでも問題は生じない。管理ファイル21のデータ構造に対応していない外部機器に出力する際には、図23を参照しながら説明する変換処理によって、図15に示す管理ファイル1または図16に示す管理ファイル11に変換すればよい。
一方、相変化光ディスクはリムーバブルであるため、管理ファイル21に対応していない機器に装填されると処理できずにエラーを生じる可能性がある。しかし、管理ファイル21の各データ構造が規格化されること等の事情によっては、相変化光ディスクに管理ファイル21を記録することに問題はない。
本実施形態によるレコーダ500は、管理ファイル21を利用して映像および音声を再生することができる。例えば管理ファイル21を参照して、指定されたストリームの先頭から10秒目以降を再生する処理も容易に実現できる。
具体的には以下のとおりである。まず管理情報生成部642は、10秒を超えるまでSOBU時間長フィールド25の値を加算する。10秒を超えたときは、最後に加算したSOBU時間長に対応するSOBU内に10秒目の映像フレームデータが格納されているといえる。管理情報生成部642によってSOBUが特定されると、再生制御部662の指示に基づいて再生部621はそのSOBUを読み出し、MPEGデコーダ671に送る。MPEGデコーダ671は、そのSOBUを復号化して、ストリームの先頭から10秒目の映像フレーム以降を出力する。この結果、指定された時刻の映像から再生が開始される。なお、上述の処理は再生時のみならず、1394インタフェースを介して映像を出力する場合にも同様に行われる。
次に、レコーダ500が、管理ファイル21を、図15に示す管理ファイル1または図16に示す管理ファイル11に変換する処理を説明する。以下では、レコーダ500のHDDに記録されたストリームファイルおよび管理ファイルを他の記録媒体に転送するとして変換処理を説明する。
図23は、管理ファイルの変換処理の手順を示す。
まずステップS221において、レコーダ500は、リモコンまたはレコーダ500本体のボタン(いずれも図示せず)を介して、ユーザから転送指示を受け取る。このとき、転送指示とともに、転送先の記録媒体やその記録機器が特定される。するとステップS222において、まずレコーダ500の再生制御部662は、ストリームファイルをHDDから読み出すよう指示する。そして再生部621によって読み出されたストリームファイルは、例えば光ディスクドライブ部530や、メモリカードドライブ部550に転送され、特定された記録媒体に書き込まれる。上述のように、記録媒体の種類にかかわらず、トランスポートストリームがそのまま転送される。
次のステップS223以降は、管理情報の変換処理が行われる。まずステップS223においては、フォーマット変換部510は、転送先はメモリカードか否かを判定する。その理由は、メモリカードであれば図16の管理ファイル11に変換することを要し、メモリカード以外の記録媒体(例えば光ディスク)であれば図15の管理ファイル1に変換することを要するからである。転送先がメモリカードであれば処理はステップS224に進み、転送先がメモリカード以外の記録媒体であれば処理はステップS226に進む。
なお「メモリカード」には、レコーダ500に装填されたメモリカードのみならず、レコーダ500に接続された外部機器のメモリカードも含まれる。また、「メモリカード以外の記録媒体」には、レコーダ500の光ディスクや、レコーダ500に接続された外部機器の光ディスクまたはHDDが含まれる。
次にステップS224において、再生制御部662の指示に基づいて再生部621は管理ファイル21を読み出す。フォーマット変換部510は、管理ファイル21を受け取り、各テーブルの先行表示枚数フィールド27を参照して、IピクチャのPTS差分を算出する。
このPTS差分は、図17に示すSOBU_ENTテーブルのSOBU時間長および先行表示枚数の関係を利用すると、以下の式1により算出できる。
(式1)
SOBU_ENTテーブル#j(図16)のIピクチャのPTS差分
=SOBU_ENTテーブル#j(図20)のSOBU時間長
−SOBU_ENTテーブル#j(図20)の先行表示枚数
+SOBU_ENTテーブル#(j+1)(図20)の先行表示枚数
次のステップS225において、管理情報生成部642は、各テーブル23のSOBU時間長フィールド25の値を、算出した各PTS差分値に置き換える。これにより、図16のPTS差分フィールド15が生成される。
ステップS226において、フォーマット変換部510は、各テーブル23の先行表示枚数フィールド27を削除する。以上の処理により、図20に示す管理ファイル21から、図16に示す管理ファイル11を得ることができる。
なお、ステップS223において、転送先がメモリカード以外であると判断されたときは、管理ファイル21の先行表示枚数フィールド27を削除するのみで、管理ファイル1が得られる。これは図20の管理ファイル21と図15の管理ファイル1との関係から明らかである。
上述の処理において言及したフィールド以外のフィールドは、特に変換する必要はない。得られた管理ファイルは、特定された記録媒体に転送され、記録される。
なお、上述の処理においては、ストリームの転送指示を受けた時に変換処理を実行するとした。しかしレコーダ500は、任意のタイミングで上述の変換処理を実行してもよい。例えば、転送指示を受けていない時点で予め変換処理を行って管理ファイル1および/または管理ファイル11を保持しておき、転送指示を受けたあとにすぐ転送を開始できるようにしていてもよい。また、上述の変換処理においては、ストリームファイルの転送を管理ファイルの変換前に行っているが、管理ファイルの変換後、すなわちステップS226の後にストリームファイルを転送してもよい。
以上の構成により、本実施形態によるレコーダ500により記録された映像ストリームおよびそのストリームの管理情報を、メモリカード等の他の記録媒体へエクスポートする際に、記録された映像ストリームの全てのSOBUを読み込み、解析して管理情報を変換する必要がないので、高速に変換処理が可能となる。
なお、本実施形態の管理ファイル21は、SOBU_ENTテーブルにSOBU時間長フィールド25を含むものとした。しかしそのフィールドに代えて、図15のフィールド15に対応するIピクチャ間のPTS差分フィールドを含んでもよい。PTS差分フィールドを設けたときは、対応するIピクチャデータサイズとPTS差分フィールドとが各SOBU_ENTテーブル23に格納される。これらはいずれも、各SOBUのIピクチャに関する情報である。
PTS差分フィールドを設けたとしても、SOBU時間長を得ることは容易である。すなわち式1の右辺第1項を左辺に移項し、左辺の項を右辺に移項すれば、SOBU時間長を得ることができる。
また、先行表示枚数を記録せず、Iピクチャのデータサイズ、SOBU時間長、SOBUデータサイズ、Iピクチャ間のPTS差分を含んでもよい。それらのフィールドを利用しても、変換後の管理ファイルを容易に得ることができる。
なお、1394インタフェースを備えた機器との間でインポート/エクスポートを行う場合に、ストリームのみならず、管理ファイル21も転送し、さらに、管理ファイルを所定の形式(例えば管理ファイル1もしくはまたは管理ファイル21の形式)にデータ変換しても良い。ただし、管理ファイルは1394規格の非同期通信モードで伝送する必要があることに留意されたい。
(実施形態7)
実施形態6においては、HDDまたは相変化光ディスク上のストリームファイルおよび管理ファイルを、他のHDD、相変化光ディスクまたはメモリカードへエクスポートする処理を説明した。
本実施形態においては、ストリームファイルおよび管理ファイルを、HDD、相変化光ディスクまたはメモリカードへインポートする処理を説明する。この処理において利用される管理情報のデータ構造は、実施形態6におけるデータ構造とは異なっている。以下、機器の動作とともにそのような処理およびデータ構造を説明する。なお、本実施形態によるレコーダ500は、実施形態6によるエクスポート処理を行うこともできる。その処理は実施形態6において説明した処理と同じであるため、説明は省略する。
本実施形態による機器のハードウェアの構成は、レコーダ500(図18および図19)の構成と同じである。よってその説明は省略する。以下においては、レコーダ500を本実施形態による機器として説明する。
フォーマット変換部510はメモリカードドライブ部550から記録済みのストリームファイルを読み取り、HDDまたは光ディスクへ書き込む。またさらに、フォーマット変換部510は、メモリカードに書き込まれた管理ファイルを読み取り、フォーマット変換してHDDまたは光ディスクに書き込む。インポートされたストリームファイルと管理情報とは1:1で対応する。
図24は、本実施形態による管理ファイル31のデータ構造を示す。
管理ファイル31のデータ構造が実施形態6の管理ファイル21のデータ構造と相違する点は、図20におけるSOBU_ENTテーブル23のSOBU時間長フィールド25に代えて、「SOBU時間長またはIピクチャ間のPTS差分」フィールド37を有することである。
さらに相違する点は、TMAP_GIテーブル32に、2つのフラグフィールド34および35を設けたことにある。フラグフィールド34には、SOBU_ENTテーブル33内のフィールド37に、SOBU時間長の数値およびPTS差分の数値のいずれが記述されているかを示す切替えフラグが書き込まれる。また、フラグフィールド35には、SOBU_ENTテーブル33に先行表示枚数が記録されているかどうかを示す有効性フラグを記録する点である。各フラグの詳細は後述する。上述の相違点を除く他のフィールド(フィールド36、38等)は、図20に示す同名のフィールドと同じである。
セルフエンコード時においては、記録再生部540の管理情報生成部642は、フィールド37にはSOBU時間長の数値を記述する。そして、MPEGエンコーダ670の出力に基づいて先行表示枚数を特定し、その値をフィールド39に設定する。このとき、TMAP_GI32のフィールド34の切替えフラグの値を0とする。あわせてフィールド35の有効性フラグの値を1とする。これにより、フィールド37にはSOBU時間長の数値が記述され、フィールド39には先行表示枚数値が記述されていることが示される。
図25は、本実施形態のレコーダ500において、メモリカードへのエクスポート時と、メモリカードからのインポート時における、管理ファイルのSOBU_ENTテーブルの各フィールドの対応関係を示す。このうちエクスポート時には、フォーマット変換部510によって、セルフエンコード時の管理ファイル内のSOBU_ENTテーブル33は、SOBU_ENTテーブル13に変換される。メモリカード上の管理ファイルのIピクチャ間のPTS差分フィールド15の値は、SOBU_ENTテーブル33のSOBU時間長フィールド37および先行表示枚数フィールド39の両方の値を利用して生成される。
またインポート時には、フォーマット変換部510は、メモリカード上の管理ファイル内のSOBU_ENTテーブル13を、SOBU_ENTテーブル43に変換する。メモリカード上のPTS差分フィールド15の値は、SOBU時間長またはIピクチャ間のPTS差分フィールド44へコピーされる。ただしこのとき、SOBU時間長/PTS差分の切替えフラグ34(図24)は、PTS差分値が記述されていることを示す値1が選択されて記述される。そして、先行表示枚数の有効性フラグ35の値は、無効であること示す値0が選択されて記述される。
本実施形態によるレコーダ500は、HDD部または光ディスク部に記録されたストリームファイルを再生する場合に、そのストリームに対する管理ファイルを参照して、再生開始点を決定できる。例えば、ストリームの先頭から10秒目の開始点から再生を開始する場合には、ストリーム中の再生開始点を特定する必要がある。管理ファイルには、SOBU時間長、または2つの隣接するSOBUの先頭のIピクチャ間のPTS差分が格納されている。再生制御部662はSOBU時間長、とPTS差分のうち、どちらの値が記述されていても、再生開始点となるトランスポートパケットを特定できる。詳細は実施形態6に関連して説明したとおりである。
以上の構成により、本実施形態のレコーダは、外部からトランスポートストリームファイルおよびその管理ファイルをインポートする際に、ストリームを解析することなく管理ファイルを生成できる。さらに、外部へトランスポートストリームのファイルおよびその管理ファイルエクスポートする際にも、ストリームを解析することなく管理ファイルを生成できる。
これにより、メモリカードのような別の種類の記録媒体との間でインポート/エクスポートが容易に実現できる。
なお、本実施形態ではセルフエンコード時にSOBU時間長および先行表示枚数を記録するとした。しかし、PTS差分と先行表示枚数の方を選択して記録してもよい。このとき、例えばエクスポート先の機器に対応する管理ファイルがSOBU時間長を採用するデータ構造を有していても、以下の式2により、容易にSOBU時間長を算出できる。
(式2)
他の管理ファイルのSOBU_ENTテーブル#jのSOBU時間長=
セルフエンコード時のSOBU_ENTテーブル#jのPTS差分
+セルフエンコード時のSOBU_ENTテーブル#jの先行表示枚数
―セルフエンコード時のSOBU_ENTテーブル#(j+1)の先行表示枚数
なお、本実施形態において、管理情報はSOBU時間長、またはPTS差分のいずれかを選択して値を設定するとした。しかし両者のフィールドをSOBU_ENTテーブル毎に設けてもよい。
本実施形態においては、メモリカードはIピクチャ間のPTS差分を含む管理情報が記録されるとした。しかし、メモリカードの種類に応じて異なるデータ構造が採用されていてもよい。例えば図26は、本実施形態による、管理ファイルのSOBU_ENTテーブルの各フィールドの第2の対応関係を示す。図25の例と同様に、メモリカード#1の管理ファイルのテーブル13には、Iピクチャ間のPTS差分フィールドが設けられる。一方、メモリカード#2のテーブル53には、SOBU時間長フィールド54が設けられる。
レコーダ500は、図26のメモリカード#1にエクスポートしたストリームファイルおよび管理ファイルを、再びレコーダ500にインポートし、その後メモリカード#2へエクスポートすることもできる。最初にエクスポートする前の管理ファイルに含まれていた先行表示枚数の情報が失われるため、メモリカード#2へのエクスポート後には、管理ファイルのテーブル53は先行表示枚数の情報が含まれない。
仮にメモリカード#2においても先行表示枚数の情報を記述するときは、フォーマット変換部510がトランスポートストリームを解析して、管理ファイルのSOBU時間長を検出する必要がある。または、メモリカード#1のストリームファイルを一旦ハードディスクに記録した後で、次にハードディスク上のトランスポートストリームを復号して再度圧縮符号化してもよい。この処理はセルフエンコード処理と同等であるため、レコーダ500は管理ファイルに記述すべき管理情報を生成することができる。その後、メモリカード#2へそのトランスポートストリームおよび管理情報を保存してもよい。このように再度圧縮および符号化すると同時に、管理ファイルの各フィールドを新規に生成して、メモリカード#2の管理データとして保存する。
また、レコーダ500のハードディスク520を介して、ストリームファイルおよび管理ファイルをメモリカード#2からメモリカード#1へダビングするときにも、上述の処理と同様の解析処理または再度圧縮符号化が必要となる。メモリカード#2からレコーダ500にインポートされたときには、メモリカード#2には先行表示枚数フィールドは存在しない。よって、インポート後の管理ファイルにおいては、先行表示枚数フィールド65が無効とされるように、有効性フラグ35の値は、無効であること示す値0が選択されて記述される。
実施形態6および7においては、セルフエンコード時にMPEGエンコーダはSOBUのデータ形式でデータを生成するとした。しかし実施形態1において言及したVOBUのデータ形式であってもよい。すなわち、VOBUのように、先頭のパケットがPAT_TSP、PMT_TSPから始まってもよい。
なお、実施形態6および7において、MPEGシステムストリームはトランスポートストリームであるとしたが、プログラムストリームであってもよい。この時、IピクチャのデータサイズフィールドやSOBUのデータサイズは、トランスポートパケット数ではなく、パック数に読み替える必要がある。
なお、実施形態6および7において、MPEGシステムストリームはトランスポートストリームであるとしたが、QuickTimeストリーム、ISO Base Mediaファイルストリーム、MP4ファイルストリームであってもよい。またはAVCファイルストリームのストリーム部分であってもよい。ただし、後者の場合、管理ファイルの各フィールドはファイルヘッダ内のそれぞれのデータフィールドにマッピングされて格納される。
なお、実施形態6および7において、SOBUデータサイズは、各SOBUのストリーム先頭を零としたアドレス値であっても良い。
本実施形態6および7においては、フォーマット変換部は管理情報ファイルのみデータ変換して、ストリームファイルはデータ変換しないとした。しかし必要に応じてストリームファイルをデータ変換してもよい。
本発明の本実施形態6および7においては、ストリームおよびストリームの管理ファイルは、はじめに相変化光ディスクまたはHDD上に記録されるとした。しかし、はじめに半導体メモリに記録されてもよい。このときは、レコーダは、ストリームを相変化光ディスクまたはメモリにコピーした後で、さらに管理ファイルのデータ変換を行う。
なお、実施形態6および7において、ストリーム中に音声データが含まれるものとしたが、存在しなくてもよい。また、ストリームの管理情報は実施形態2で示したPAT/PMTポインタ、TSP到着時間、および時間長有効フラグフィールドを含まないとしたが、必要に応じて含んでもよい。
なお、実施形態6および7において、TMAP_GIには、先頭SOBUのIフレームのPTS絶対値が記録されても良い。これにより、PTS差分と合わせて、PTSの絶対値を導出できる。このPTS絶対値を使うことにより、MPEGデコーダの表示開始箇所を細かく制御できる。
実施形態6および7において、SOBU_ENT内の各データフィールドは、それぞれが独立したテーブルとして設けられてもよい。独立した各テーブルは、例えば独立した管理ファイルとして存在し、管理情報を構成する。
また、例えば先行表示枚数のフィールドのみを別のテーブルとして設けてもよい。この例によれば、実施形態6および7による管理ファイルのデータ構造構成は管理ファイル11のデータ構造と近似するため、管理ファイル11との親和性が向上する。
なお、上述の実施形態において、ストリームおよびその管理情報はレコーダの内蔵ドライブを介して記録媒体へ記録されるとした。しかし、レコーダとネットワークを介して接続されたドライブ装置によって、記録媒体に記録されてもよい。
上述の実施形態においては、光ディスクファイルシステムはUDFであるものとしたが、NTFS、FAT、UFS(Unix(登録商標) File System)等であってもよい。また、デジタルインタフェースは1394インタフェースを例示した。しかし他にUSB2.0やHDMI等のデジタルインタフェースであってもよい。
上述の実施形態においては、MPEG−2ビデオ規格に従ってピクチャは1枚のプログレッシブ映像フレーム、トップフィールドおよびボトムフィールドの2枚のインターレース映像の組、または1枚のインターレース映像を指す。このピクチャは例えばMPEG−4ビデオ規格のビデオオブジェクトプレーン(VOP)に対応する。
また、記憶媒体は相変化光ディスクであるとして説明しているが、特にこれに限定するものではない。他には、例えばDVD−RAM、MO、DVD−R、DVD−RW、DVD+RW、CD−R、CD−RW等の光ディスクやハードディスク等のディスク形状を有する記録媒体やメモリカードのようなディスク形状を有さない記録媒体であってもよい。また、フラッシュメモリ、MRAM、FeRAM等の半導体メモリであってもよい。また、読み書きヘッドはピックアップとしたが、記録媒体がMOであればピックアップ及び磁気ヘッドとなり、またハードディスクであれば磁気ヘッドとなる。
なお、図19等の各機能ブロックは典型的には複数の1以上の集積回路(Large Scale Integrated Circuit;LSI)のチップとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。例えば、エンコーダ670および管理情報生成部642を1チップ化し、記録再生部540に実装してもよい。このチップは、HDDドライブ部520、光ディスクドライブ部530および/またはメモリカードドライブ部550を介して、データストリームおよび管理情報の各ファイルを記録媒体に書き込むことができる。
なお、エンコーダ670およびデコーダ671を1チップ化し、管理情報生成部642を他のチップとして実現してもよい。このとき管理情報生成部642は、上述した管理情報生成部が有する機能を実現するコンピュータプログラムを実行する専用プロセッサまたは汎用プロセッサ等として実装される。
本実施形態において、論理ブロックは32Kバイト、セクタは2Kバイトとしているが、論理ブロックサイズがセクタサイズの整数倍であれば特に限定されるものではない。例えば論理ブロックが16Kバイト、セクタが2Kバイトであってもよい。また、論理ブロック、セクタ共に2Kバイトであってもよい。
また、本実施形態において、映像圧縮符号及び音声圧縮符号は、それぞれMPEG2映像圧縮符号及びAAC圧縮符号であるものとして説明した。しかし、MPEG1映像圧縮符号、MPEG4映像圧縮符号等、MPEG4AVC符号(H.264符号)や、MPEG−Audio圧縮符号、Dolby AC3圧縮符号、またはTwin−VQ圧縮符号等であってもよい。
なお、図25および図26の例では、管理情報生成部は記録媒体の種類に応じてSOBU_ENTテーブルの各項目の情報を生成していた。しかし、管理情報生成部は記録媒体の記録フォーマットのみに応じて各情報を生成してもよい。または、記録媒体の種類および記録フォーマットに応じて各情報を生成してもよい。
上述の実施形態においては、トランスポートストリームの送信タイミングは出力タイミング生成部によって決定されるとした。しかし、記録時にシステムエンコード部104が出力するトランスポートパケットの送信タイミングをトランスポートパケットと同時に記録しておき、この送信タイミング情報を1394出力時に利用してもよい。この場合、例えばトランスポートパケットの直前に4バイトの送信タイミング情報を記録し、合計192バイトのパケット形式で記録しておくことにより実現できる。ただしこの場合、SOBUデータ長として192バイトのパケット数でカウントする必要がある。また、複数の送信タイミング情報を送信タイミング情報格納用の専用のトランスポートパケットに格納し、そのトランスポートパケットの直後に対応するトランスポートパケットを記録するようにしてもよい。この場合、パケットのデータサイズは188バイトのままとなる。
上述の実施形態においては、ストリームの管理情報は、連続したストリームを前提として説明したが、ストリームは所定のパケットを境にPCR、PTS、または送信タイミング情報等のタイムスタンプが不連続となってもよい。ただし、この場合、管理情報はストリームの連続している範囲毎に、分けて管理して記録すればよい。
本発明によるレコーダ(データ処理装置)は、図22および図23に示す処理手順を規定したコンピュータプログラムに基づいて動作する。データ処理装置のコンピュータ(例えばCPU)は、そのようなコンピュータプログラムを実行することによって装置内の各構成要素を動作させ、上述した処理を実現することができる。コンピュータプログラムはCD−ROM等の記録媒体に記録されて製品として市場に流通され、またはインターネット等の電器通信回線を通じて伝送される。これにより、コンピュータシステムを、上述のデータ処理装置と同等の機能を有する機器として動作させることができる。