以下、添付の図面を用いて本発明に係る情報記録媒体、記録装置及び再生装置の実施形態であるDVDディスク、DVDレコーダ及びDVDプレーヤについて下記の順序で説明する。
特に、発明のポイントは「8.発明の概要」及び「9.詳細な実施形態」で説明する。なお、関連の度合いは異なるが、全て本発明の実施形態である。
1.DVDレコーダ装置のシステム概要
2.DVDレコーダ装置の機能概要
3.DVDディスクの概要
4.再生されるAV情報の概要
5.AV情報の管理情報と再生制御の概要
6.再生機能の基本動作
7.記録機能の基本動作
8.発明の概要
9.詳細な実施形態
なお、以下では、説明の便宜上、MPEGトランスポートストリーム(MPEG−TS)からMPEGプログラムストリーム(MPEG−PS)への変換を「TS2PS変換」と称する。また、MPEG−PS形式である、DVD−Video規格フォーマット、DVD−Video Recoriding規格フォーマットを総称して「DVDフォーマット」と称する。
(1.DVDレコーダ装置のシステム概要)
図1は、DVDレコーダ装置の外観と関連機器とのインターフェースの一例を説明する図である。
図1に示すように、DVDレコーダには光ディスクであるDVDが装填され、ビデオ情報の記録再生を行う。操作は一般的にはリモコンで行われる。
DVDレコーダに入力されるビデオ情報にはアナログ信号とデジタル信号の両者があり、アナログ信号としてはアナログ放送があり、デジタル信号としてデジタル放送がある。一般的にはアナログ放送は、テレビジョン装置に内蔵された受信機により受信、復調され、NTSC等のアナログビデオ信号としてDVDレコーダに入力され、デジタル放送は、受信機であるSTB(Set Top Box)でデジタル信号に復調され、DVDレコーダに入力され記録される。
一方、ビデオ情報が記録されたDVDディスクはDVDレコーダにより再生され外部に出力される。出力も入力同様に、アナログ信号とデジタル信号の両者があり、アナログ信号であれば直接テレビジョン装置に入力され、デジタル信号であればSTBを経由し、アナログ信号に変換された後にテレビジョン装置に入力されテレビジョン装置で映像表示される。
また、DVDディスクにはDVDレコーダ以外のDVDカムコーダや、パーソナルコンピュータでビデオ情報が記録再生される場合がある。DVDレコーダ外でビデオ情報が記録されたDVDディスクであっても、DVDレコーダに装填されれば、DVDレコーダはこれを再生する。
なお、上述したアナログ放送やデジタル放送のビデオ情報には通常、音声情報が付随している。付随している音声情報も同様にDVDレコーダで記録再生される。またビデオ情報は一般的には動画であるが、静止画の場合もある。例えば、DVDカムコーダの写真機能で静止画が記録される場合がそうなる。
なお、STBとDVDレコーダの間のデジタルI/FはIEEE1394、ATAPI、SCSI等がありうる。
なお、DVDレコーダとテレビジョン装置との間はコンポジットビデオ信号であるNTSCと例示したが、輝度信号と色差信号を個別に伝送するコンポーネント信号でもよい。さらには、AV機器とテレビジョン装置の間の映像伝送I/FはアナログI/FをデジタルI/F、例えば、DVIに置きかえる研究開発が進められており、DVDレコーダとテレビジョン装置がデジタルI/Fで接続されることも当然予想される。
(2.DVDレコーダ装置の機能概要)
図2は、DVDレコーダ装置の機能を示すブロック図である。ドライブ装置は、DVD−RAMディスク100のデータを読み出す光ピックアップ101、ECC(Error Correcting Code)処理部102、トラックバッファ103、トラックバッファへ103の入出力を切り替えるスイッチ104、エンコーダ部105及びデコーダ部106を備える。
図に示すように、DVD−RAMディスク100には、1セクタ=2KBを最小単位としてデータが記録される。 また、16セクタ=1ECCブロックとして、ECCブロックを単位としてECC処理部102でエラー訂正処理が施される。
なお、DVDレコーダ装置はデータの蓄積媒体として、DVDディスクに加え、半導体メモリカードやハードディスクドライブ装置を備えても良い。図4は、半導体メモリカードとハードディスクドライブ装置を備える場合のDVDレコーダのブロック図を示す。
なお、1セクタは512Bでも良いし、8KB等でも良い。また、ECCブロックも1セクタ、16セクタ、32セクタ等でも良い。記録できる情報容量の増大に伴い、セクタサイズ及びECCブロックを構成するセクタ数は増大すると予想される。
トラックバッファ103は、DVD−RAMディスク100にAVデータをより効率良く記録するため、AVデータを可変ビットレート(VBR)で記録するためのバッファである。DVD−RAM100への読み書きレート(Va)が固定レートであるのに対して、AVデータはその内容(ビデオであれば画像)の持つ複雑さに応じてビットレート(Vb)が変化するため、このビットレートの差を吸収するためのバッファである。
このトラックバッファ103を更に有効利用すると、ディスク100上にAVデータを離散配置することが可能になる。図3を用いてこれを説明する。
図3(a)は、ディスク上のアドレス空間を示す図である。図3(a)に示す様にAVデータが[a1、a2]の連続領域と[a3、a4]の連続領域に分かれて記録されている場合、a2からa3へシークを行っている間、トラックバッファに蓄積してあるデータをデコーダ部106へ供給することでAVデータの連続再生が可能になる。この時の状態を示したのが図3(b)である。
位置a1で読み出しを開始したAVデータは、時刻t1からトラックバッファへ103入力されるとともに、トラックバッファ103からデータの出力が開始される。これにより、トラックバッファへの入力レート(Va)とトラックバッファからの出力レート(Vb)のレート差(Va−Vb)の分だけトラックバッファへデータが蓄積されていく。この状態が、検索領域がa2に達するまで、すなわち、時刻t2に達するまで継続する。この間にトラックバッファ103に蓄積されたデータ量をB(t2)とすると、時間t2から、領域a3のデータの読み出しを開始する時刻t3までの間、トラックバッファ103に蓄積されているB(t2)を消費してデコーダ106へ供給しつづけられれば良い。
言い方を変えれば、シーク前に読み出すデータ量([a1、a2])が一定量以上確保されていれば、シークが発生した場合でも、AVデータの連続供給が可能である。
AVデータの連続供給が可能な連続領域のサイズはECCブロック数(N_ecc)に換算すると次の式で示される。式において、N_secはECCブロックを構成するセクタ数であり、S_sizeはセクタサイズ、Tjはシーク性能(最大シーク時間)である。
N_ecc = Vb*Tj/((N_sec*8*S_size)*(1-Vb/Va))
また、連続領域の中には欠陥セクタが生じる場合がある。この場合も考慮すると連続領域は次の式で示される。式において、dN_eccは容認する欠陥セクタのサイズであり、Tsは連続領域の中で欠陥セクタをスキップするのに要する時間である。このサイズもECCブロック数で表される。
N_ecc = dN_ecc+Vb*Tj/((N_sec*8*S_size)*(1-Vb/Va))
なお、ここでは、DVD−RAMからデータを読み出す、即ち再生の場合の例を説明したが、DVD−RAMへのデータの書き込み、即ち録画の場合も同様に考えることができる。
上述したように、DVD−RAMでは一定量以上のデータが連続記録さえされていればディスク上にAVデータを分散記録しても連続再生/録画が可能である。DVDでは、この連続領域をCDAと称する。
(3.DVDディスクの概要)
図5は、記録可能な光ディスクであるDVD−RAMディスクの外観と物理構造を表した図である。なお、DVD−RAMは一般的にはカートリッジに収納された状態でDVDレコーダに装填される。記録面を保護するのが目的である。但し、記録面の保護が別の構成で行われたり、容認できる場合にはカートリッジに収納せずに、DVDレコーダに直接装填できるようにしてももちろん良い。
DVD−RAMディスクは相変化方式によりデータを記録する。ディスク上の記録データはセクタ単位で管理され、アクセス用のアドレスが付随する。16個のセクタは誤り訂正の単位となり、誤り訂正コードが付与され、ECCブロックと呼称される。
図5(a)は、記録可能な光ディスクであるDVD−RAMディスクの記録領域を表した図である。同図のように、DVD−RAMディスクは、最内周にリードイン領域を、最外周にリードアウト領域を、その間にデータ領域を配置している。リードイン領域は、光ピックアップのアクセス時においてサーボを安定させるために必要な基準信号や他のメディアとの識別信号などが記録されている。リードアウト領域もリードイン領域と同様の基準信号などが記録される。データ領域は、最小のアクセス単位であるセクタ(2048バイトとする)に分割されている。 また、DVD−RAMは、記録・再生時においてZ−CLV(Zone Constant Linear Velocity)と呼ばれる回転制御を実現するために、データ領域が複数のゾーン領域に分割されている。
図5(a)は、DVD−RAMに同心円状に設けられた複数のゾーン領域を示す図である。同図のように、DVD−RAMは、ゾーン0〜ゾーン23の24個のゾーン領域に分割されている。DVD−RAMの回転角速度は、内周側のゾーン程速くなるようにゾーン領域毎に設定され、光ピックアップが1つのゾーン内でアクセスする間は一定に保たれる。これにより、DVD−RAMの記録密度を高めるとともに、記録・再生時における回転制御を容易にしている。
図5(b)は、図5(a)において同心円状に示したリードイン領域と、リードアウト領域と、ゾーン領域0〜23を横方向に配置した説明図である。
リードイン領域とリードアウト領域は、その内部に欠陥管理領域(DMA:Defect Management Area)を有する。欠陥管理領域とは、欠陥が生じたセクタの位置を示す位置情報と、その欠陥セクタを代替するセクタが上記代替領域の何れに存在するかを示す代替位置情報とが記録されている領域をいう。
各ゾーン領域はその内部にユーザ領域を有すると共に、境界部に代替領域及び未使用領域を有している。ユーザ領域は、ファイルシステムが記録用領域として利用することができる領域をいう。代替領域は、欠陥セクタが存在する場合に代替使用される領域である。未使用領域は、データ記録に使用されない領域である。未使用領域は、2トラック分程度設けられる。未使用領域を設けているのは、ゾーン内では隣接するトラックの同じ位置にセクタアドレスが記録されているが、Z−CLVではゾーン境界に隣接するトラックではセクタアドレスの記録位置が異なるため、それに起因するセクタアドレス誤判別を防止するためである。
このようにゾーン境界にはデータ記録に使用されないセクタが存在する。そのためデータ記録に使用されるセクタのみを連続的に示すように、DVD−RAMは、内周から順に論理セクタ番号(LSN:Logical Sector Number)をユーザ領域の物理セクタに割り当てている。
図6は、論理セクタにより構成されるDVD−RAMの論理的なデータ空間を示す。論理的なデータ空間はボリューム空間と呼称され、ユーザデータを記録する。
ボリューム領域は、記録データをファイルシステムで管理する。すなわち、データを格納する1群のセクタをファイルとして、さらには1群のファイルをディレクトリとして管理するボリューム構造情報がボリューム領域の先頭と終端に記録される。本実施の形態のファイルシステムはUDFと呼称され、ISO13346規格に準拠している。
なお、上記1群のセクタはボリューム空間で必ずしも連続的には配置されず、部分的に離散配置される。このため、ファイルシステムは、ファイルを構成するセクタ群のうち、ボリューム空間で連続的に配置される1群のセクタをエクステントとして管理し、ファイルを関連のあるエクステントの集合として管理する。
図7は、DVD−RAMに記録されるディレクトリとファイルの構造を示す。ルートの下に、VIDEO_RTディレクトリがあり、この下に、再生用のデータである各種オブジェクトのファイルと、これらの再生順序や各種属性を示す管理情報としてVIDEO Managerファイルが格納される。
オブジェクトはMPEG規格に準拠したデータであり、PS_VOB、TS1_VOB、TS2_VOB、AOB、POB、MNF(Manufacturer's Private Data)がある。
PS_VOB、AOB、POBはMPEGのプログラムストリーム(PS)であり、TS1_VOB及びTS2_VOBはトランスポートストリーム(TS)である。プログラムストリームは、パッケージメディアにAV情報を格納することを考慮されたデータ構造を有し、一方、トランスポートストリームは通信メディアを考慮したデータ構造を有する。
PS_VOB、TS1_VOB、TS2_VOBは、いずれも映像情報と音声情報を共に有し映像情報が主体となるオブジェクトである。このうち、TS1_VOBは原則、DVDレコーダによりエンコードが行われ、内部のピクチャ構造が詳細に管理されているオブジェクトであり、TS2_VOBはDVDレコーダ外でエンコードされたオブジェクトであり、内部のピクチャ構造等のデータ構造が一部不明なオブジェクトである。
典型的には、TS1_VOBは外部から入力されるアナログビデオ信号をDVDレコーダがトランスポートストリームにエンコードしたオブジェクトであり、TS2_VOBは外部から入力されるデジタルビデオ信号をエンコードすることなく直接ディスクに記録したオブジェクトである。つまりデジタル放送をDVDレコーダが記録する際には、一般的にTS2_VOBである。
AOB、POBはMPEGのプログラムストリームであり、AOBは音声情報が主体となるオブジェクトであり、POBは静止画が主体となるオブジェクトである。
MNF(Manufacturer's Private Data)は製造者固有の情報を格納するためのデータ領域である。
上述した、映像情報主体、音声情報主体とは、ビットレートの割り当てが大きいことを意味する。VOBは映画等のアプリケーションに用いられ、AOBは音楽アプリケーションに用いられる。
(4.再生されるAV情報の概要)
図8は、DVDディスクに各種AVオブジェクトとして記録されるMPEGデータの構造を示す図である。
図8が示すようにビデオストリーム及びオーディオストリームは、それぞれ分割され多重される。MPEG規格においては、多重化後のストリームをシステムストリームと呼称する。DVDの場合、DVD固有の情報が設定されたシステムストリームをVOB(Video Object)と呼称している。分割の単位は、パック・パケットと称され、約2KByteのデータ量を有する。
ビデオストリームはMPEG規格で符号化されており、可変ビットレートで圧縮されており、動きが激しい等の複雑な映像であればビットレートが高くなっている。MPEG規格では、映像の各ピクチャは、Iピクチャ、Pピクチャ、Bピクチャに種類分けして符号化される。このうち、Iピクチャはフレーム内で完結する空間的な圧縮符号化が施されおり、Pピクチャ、Bピクチャはフレーム間の相関を利用した時間的な圧縮符号化が施されている。MPEGでは少なくともIピクチャを含む区間をGOP(Group of Picture)として管理する。GOPは早送り再生等の特殊再生におけるアクセスポイントになる。フレーム内圧縮されたIピクチャを有するためである。
一方、音声ストリームの符号化には、DVDの場合、MPEGオーディオに加え、AC―3やLPCMの符号化が用いられる。
図8が示すように、GOPを構成するビデオ情報とそれに付随する音声情報とを含む多重化後のデータ単位はVOBU(Video Object Unit)と称される。VOBUには、当該動画区間の管理用の情報をヘッダ情報として含ませる場合がある。
図8で説明したシステムストリームには、プログラムストリーム(PS)とトランスポートストリーム(TS)がある。前者はパッケージメディアを考慮したデータ構造を有し、後者は通信メディアを考慮したデータ構造を有する。
図9は、プログラムストリームとトランスポートストリームのデータ構造の概要を説明する図である。
プログラムストリームは、伝送及び多重化の最小単位である固定長のパックからなり、パックはさらに、1つ以上のパケットを有する。パックもパケットもヘッダ部とデータ部を有する。MPEGではデータ部をペイロードと称する。DVDの場合はパックの固定長はセクタサイズと整合性をとり2KBになる。パックは複数のパケットを有することができるが、DVDの映像や音声を格納するパックは1パケットのみを有するため、特別な場合を除いて1パック=1パケットになる。
一方、トランスポートストリームの伝送及び多重化の単位は固定長のTSパケットからなる。TSパケットのサイズは188Bであり、通信用規格であるATM伝送との整合性をとっている。TSパケットは1つ以上が集まりPESパケットを構成する。
PESパケットはプログラムストリームとトランスポートストリームで共通する概念であり、データ構造は共通である。プログラムストリームのパックに格納されるパケットはPESパケットを直接構成し、トランスポートストリームのTSパケットは1つ以上が集まりPESパケットを構成する。
また、PESパケットは符号化の最小単位であり、符号化が共通するビデオ情報、オーディオ情報をそれぞれ格納する。すなわち、一つのPESパケット内に符号化方式の異なるビデオ情報、オーディオ情報が混在して格納されることはない。但し、同じ符号化方式であればピクチャバウンダリやオーディオフレームのバウンダリは保証せずとも良い。図9に示すように複数のPESパケットで1つのフレームを格納したり、1つのPESパケットに複数のフレームを格納するケースもありうる。
図10と図11に、トランスポートストリームとプログラムストリームの個別のデータ構造を示す。
図10、図12に示すように、TSパケットは、TSパケットヘッダと、適用フィールドと、ペイロード部から構成される。TSパケットヘッダにはPID(Packet Identifier)が格納され、これにより、TSパケットが所属するビデオストリームまたはオーディオストリーム等の各種ストリームが識別される。
適用フィールドにはPCR(Program Clock Reference)が格納される。PCRはストリームをデコードする機器の基準クロック(STC)の参照値である。機器は典型的にはPCRのタイミングでシステムストリームをデマルチプレクスし、ビデオストリーム等の各種ストリームに再構築する。
PESヘッダには、DTS(Decoding Time Stamp)とPTS(Presentation Time Stamp)が格納される。DTSは当該PESパケットに格納されるピクチャ/オーディオフレームのデコードタイミングを示し、PTSは映像音声出力等のプレゼンテーションタイミングを示す。
なお、全てのPESパケットヘッダにPTS、DTSを有する必要はなく、Iピクチャの先頭データが格納開始されるPESパケットのヘッダにPTS、DTSがあればデコード及び出力に支障はない。
TSパケットの構造の詳細は図12に示される。
図12に示すように、適用フィールドにはPCRに加えて、ランダムアクセス表示フラグが格納され、当該フラグにより、対応するペイロード部にビデオ・オーディオのフレーム先頭であってアクセスポイントとなりうるデータを格納するか否かを示す。また、TSパケットのヘッダ部には前述したPIDに加えて、PESパケットの開始を示すユニット開始表示フラグ、適用フィールドが後続するか否かを示す適用フィールド制御情報も格納される。ユニット開始表示フラグは新たなPESパケットの開始を示し、PIDはストリームの種類及び属性を示す。
図11には、プログラムストリームを構成するパックの構造を示す。パックは、パックヘッダにSCRを有し、格納するパケットのパケットヘッダにstream_idを有している。SCRはトランスポートストリームのPCRと、stream_idはPIDと実質同じである。またPESパケットのデータ構造はトランスポートストリームと共通なため、PESヘッダにPTSとDTSが格納される。
プログラムストリームとトランスポートストリームの大きな違いの1つに、トランスポートストリームではマルチプログラムが許される点がある。すなわち、番組という単位では1つの番組しかプログラムストリームは伝送できないが、トランスポートストリームは複数の番組を同時に伝送することを想定している。このため、トランスポートストリームでは、番組毎に番組を構成するビデオストリームとオーディオストリームがいずれかを再生装置が識別することが必要になる。
図13に、番組を構成するオーディオストリームとビデオストリームの構成情報を伝送するPATテーブル、PMAPテーブルを示す。これらの図に示すように、番組毎に使用されるビデオストリームとオーディオストリームの組み合わせに関する情報をPMAPテーブルが格納し、番組とPMAPテーブルの組み合わせに関する情報をPATテーブルが格納する。再生装置は、PATテーブル、PMAPテーブルにより出力が要求された番組を構成するビデオストリームとオーディオストリームを検出することができる。
次に上述してきたプログラムストリームのパックと、トランスポートストリームのTSパケットのディスク上の配置に関して、図14を用いて説明する。
図14(a)に示すように、16個のセクタはECCブロックを構成する。
プログラムストリームの形式をとるビデオオブジェクト(PS_VOB)を構成するパック(PS Pack)は、図14(b)が示すように、セクタバウンダリで配置される。パックサイズもセクタサイズも2KBだからである。
一方、トランスポートストリームの形式をとるビデオオブジェクト(TS1−VOB/TS2−VOB)は8KBのサイズを有する単位でECCブロック内に配置される。この8KB単位で18Bのヘッダ領域を有し、データ領域にはATS情報が付加されたTSパケットが43個配置される。ATS情報(Arrival Time Stamp Information)は、DVDレコーダにより生成し付加される情報であって、当該パケットがDVDレコーダに外部より伝送されてきたタイミングを示す情報である。
尚、図14(c)に示したように、固定バイトのATSとMPEG−TSパケットとの組で連続して記録したMPEG−TSの蓄積フォーマットも有り得る。
(5.AV情報の管理情報と再生制御の概要)
図15、16は図7が示すところのビデオ管理情報(Video Manager)と称されるファイルのデータ構造を示す図である。
ビデオ管理情報は、各種オブジェクトのディスク上の記録位置等の管理情報を示すオブジェクト情報と、オブジェクトの再生順序等を示す再生制御情報とを有する。
図15はディスクに記録されるオブジェクトとして、PS−VOB#1〜PS−VOB#n、TS1−VOB#1〜TS1−VOB#n、TS2−VOB#1〜TS2−VOB#nがある場合を示す。
図15(a)が示すように、これらオブジェクトの種類に応じて、PS−VOB用の情報テーブルと、TS1−VOB用の情報テーブルと、TS2−VOB用の情報テーブルが個別に存在すると共に、各情報テーブルは各オブジェクト毎のVOB情報を有している。
VOB情報は、それぞれ、対応するオブジェクトの一般情報と、オブジェクトの属性情報と、オブジェクトの再生時刻をディスク上のアドレスに変換するためのアクセスマップ、当該アクセスマップの管理情報を有している。一般情報は、対応するオブジェクトの識別情報、オブジェクトの記録時刻等を有し、属性情報は、ビデオストリームのコーディングモードをはじめとするビデオストリーム情報(V_ATR)と、オーディオストリームの本数(AST_Ns)と、オーディオストリームのコーディングモードをはじめとするオーディオストリーム情報(A_ATR)とから構成される。
アクセスマップを必要とする理由は2つある。まず1つは、再生経路情報がオブジェクトのディスク上での記録位置をセクタアドレス等で直接的に参照するのを避け、オブジェクトの再生時刻で間接的に参照できるようにするためである。RAM媒体の場合、オブジェクトの記録位置が編集等で変更される場合がおこりうるが、再生経路情報がセクタアドレス等で直接的にオブジェクトの記録位置を参照している場合、更新すべき再生経路情報が多くなるためである。一方、再生時刻で間接的に参照している場合は、再生経路情報の更新は不要で、アクセスマップの更新のみ行えば良い。
2つ目の理由は、AVストリームが一般に時間軸とデータ(ビット列)軸の二つの基準を有しており、この二つの基準間には完全な相関性がないためである。
例えば、ビデオストリームの国際標準規格であるMPEG−2ビデオの場合、可変ビットレート(画質の複雑さに応じてビットレートを変える方式)を用いることが主流になりつつあり、この場合、先頭からのデータ量と再生時間との間に比例関係がないため、時間軸を基準にしたランダムアクセスができない。この問題を解決するため、オブジェクト情報は、時間軸とデータ(ビット列)軸との間の変換を行なうためのアクセスマップを有している。
図15(a)が示すように再生制御情報は、ユーザ定義再生経路情報テーブル、オリジナル再生経路情報テーブル、タイトルサーチポインタを有する。
図16(a)が示すように、再生経路には、DVDレコーダがオブジェクト記録時に記録された全てのオブジェクトを示すように自動生成するオリジナル定義再生経路情報と、ユーザが自由に再生シーケンスを定義できるユーザ定義再生経路情報の2種類がある。再生経路はDVDではPGC情報(Program Chain Information)と統一的呼称され、また、ユーザ定義再生経路情報はU−PGC情報、オリジナル再生経路情報はO−PGC情報と呼称される。O−PGC情報、U−PGC情報はそれぞれ、オブジェクトの再生区間であるセルを示す情報であるセル情報をテーブル形式で列挙する情報である。O−PGC情報で示されるオブジェクトの再生区間はオリジナルセル(O−CELL)と呼称され、U−PGC情報で示されるオブジェクトの再生区間はユーザセル(U−CELL)と呼称される。
セルは、オブジェクトの再生開始時刻と再生終了時刻でオブジェクトの再生区間を示し、再生開始時刻と再生終了時刻は前述したアクセスマップにより、オブジェクトの実際のディスク上の記録位置情報に変換される。
図16(b)が示すように、PGC情報により示されるセル群は、テーブルのエントリー順序に従って順次再生される一連の再生シーケンスを構成する。
図17は、オブジェクト、セル、PGC、アクセスマップの関係を具体的に説明する図である。
図17に示すように、オリジナルPGC情報50は少なくとも1つのセル情報60、61、62、63を含む。 セル情報60…は再生するオブジェクトを指定し、かつ、そのオブジェクトタイプ、オブジェクトの再生区間を指定する。PGC情報50におけるセル情報の記録順序は、各セルが指定するオブジェクトが再生されるときの再生順序を示す。
一のセル情報60には、それが指定するオブジェクトの種類を示すタイプ情報(Type)60aと、オブジェクトの識別情報であるオブジェクトID(Object ID) 60bと、時間軸上でのオブジェクト内の開始時刻情報(Start_PTM)60cと、時間軸上でのオブジェクト内の終了時刻情報(End_PTM)60dとが含まれる。
データ再生時は、PCG情報50内のセル情報60が順次読み出され、各セルにより指定されるオブジェクトが、セルにより指定される再生区間分再生されることになる。
アクセスマップ80cは、セル情報が示す開始時刻情報と終了時刻情報とをオブジェクトのディスク上での位置情報に変換する。
上述したマップ情報であるが、オブジェクトの記録時にともに生成され記録される。マップを生成するためには、オブジェクトのデータ内のピクチャ構造を解析する必要がある。具体的には図9で示すIピクチャの位置の検出と、図10、図11に示す当該Iピクチャの再生時刻であるPTS等のタイムスタンプ情報の検出が必要になる。
ここで、PS−VOBとTS1−VOBとTS2−VOBのマップ情報を生成する際に生じる問題について以下説明する。
PS−VOB、TS−VOB1は、図1で説明したように主として、受信されたアナログ放送をDVDレコーダがMPEGストリームにエンコードすることにより生成される。このため、Iピクチャや各種タイムスタンプの情報は自らが生成しており、DVDレコーダにとってストリーム内部のデータ構造は明確であり、マップ情報の生成になんの問題も生じない。
次に、TS2−VOBであるが、図1で説明したように主として、受信されたデジタル放送をDVDレコーダがエンコードすることなく直接ディスクに記録する。このため、PS−VOBのようにIピクチャの位置とタイムスタンプ情報を自ら生成するわけではないため、DVDレコーダにとってストリーム内部のデータ構造は明確ではなく、記録するデジタルストリームからこれら情報を検出することが必要になる。
このため、DVDレコーダは、レコーダ外部にてエンコードされたストリームを記録しているTS2−VOBのマップ情報については下記のようにIピクチャとタイムスタンプを検出する。
まず、Iピクチャの検出は、図12に示すTSパケットの適用フィールドのランダムアクセス表示情報を検出することにより行う。また、タイムスタンプの検出については、PESヘッダのPTSを検出することにより行う。タイムスタンプについては、PTSの代わりに、適用フィールドのPCRや、TSパケットがDVDレコーダに伝送されてきた到着タイミングであるATSで代用することもある。いずれにせよ、DVDレコーダはMPEGストリームのビデオ層のデータ構造を解析することなく、その上位層であるシステム層の情報により、Iピクチャの位置を検出する。これは、マップ情報を生成するためにビデオ層の解析まで行うのはシステムの負荷が大きいためである。
また、システム層の検出が不可能な場合もありうるが、この場合は、マップ情報が生成できないため、有効なマップ情報が無いことを示すことが必要になる。DVDレコーダでは図15(b)に示すマップ管理情報によりこれらが示される。
図15(b)に示すようにマップ管理情報は、マップ有効性情報と自己エンコーディングフラグとを有する。自己エンコーディングフラグは、DVDレコーダ自らがエンコードしたオブジェクトであることを示し、内部のピクチャ構造が明確であり、マップ情報のタイムスタンプ情報やIピクチャの位置情報等が正確であることを示している。また、マップ有効性情報は、有効なアクセスマップの有無を示す。
なお、システム層の検出が不可能な例としては、適用フィールドが設定されていない場合や、そもそもMPEGトランスポートストリームで無いデジタルストリームの場合が考えうる。デジタル放送が世界各国で各種方式が成立しうるため、DVDレコーダがマップを生成できないオブジェクトを記録するケースも当然予想される。例えば、日本のデジタル放送を想定したDVDレコーダを米国で使用し、米国のデジタル放送を記録した場合、マップを生成できないオブジェクトを記録するケースが出てくる。
但し、DVDレコーダはマップ情報が生成されないオブジェクトについても、先頭から順次再生することは可能である。この場合、記録されたデジタルストリームをデジタルI/Fを介して、当該ストリームに対応したSTBに出力することでこれを映像再生することができる。
(6.再生機能の基本動作)
次に、図18を用いて上記光ディスクを再生するDVDレコーダプレーヤの再生動作について説明する。
図18に示すように、プレーヤは、光ディスク100からデータを読み出す光ピックアップ201と、読み出したデータのエラー訂正等を行なうECC処理部202と、エラー訂正後の読み出しデータを一時的に格納するトラックバッファ203と、動画オブジェクト(PS_VOB)等のプログラムストリームを再生するPSデコーダ205と、デジタル放送オブジェクト(TS2_VOB)等のトランスポートストリームを再生するTSデコーダ206と、オーディオ・オブジェクト(AOB)を再生するオーディオデコーダ207と、静止画オブジェクト(POB)をデコードする静止画デコーダ208と、各デコーダ205、206…へのデータ入力を切り換える切換え手段210と、プレーヤの各部を制御する制御部211とを備える。
光ディスク100上に記録されているデータは、光ピックアップ201から読み出され、ECC処理部202を通してトラックバッファ203に格納される。トラックバッファ203に格納されたデータは、PSデコーダ205、TSデコーダ206、オーディオデコーダ207、静止画デコーダ208の何れかに入力されデコードおよび出力される。
このとき、制御部211は読み出すべきデータを図16が示す再生経路情報(PGC)が示す再生シーケンスに基づき決定する。すなわち、図16の例であれば、制御部211は、VOB#1の部分区間(CELL#1)を最初に再生し、次いで、VOB#3の部分区間(CELL#2)を再生し、最後にVOB#2(CELL#3)と再生する制御を行う。
また、制御部211は、図17が示す再生経路情報(PGC)のセル情報により、再生するセルのタイプ、対応するオブジェクト、オブジェクトの再生開始時刻、再生終了時刻を獲得することができる。制御部211は、セル情報により特定されるオブジェクトの区間のデータを、適合するデコーダに入力する。
この際、制御部211は、セル情報のObject IDにより再生対象のオブジェクトを特定する。さらに、制御部211は、特定したオブジェクトの再生区間であるセルの特定を、セル情報のStartPTMとEndPTMを、対応するVOB情報のアクセスマップでディスク情報のアドレスに変換することにより行う。
また、本実施形態のプレーヤは、さらに、AVストリームを外部に供給するためのデジタルインターフェース204を有している。これにより、AVストリームをIEEE1394やIEC958などの通信手段を介して外部に供給することも可能である。これは、特に、自らがエンコードしていないTS2−VOBについては、プレーヤ内部に該当するデコーダが存在しないケースもありうるため、デコードすることなく、直接、デジタルインターフェース204を通じて外部のSTBに出力し、そのSTBで再生させることができる。
外部にデジタルデータを直接出力する際には、制御部211は図15(b)のマップ管理情報に基づき、ランダムアクセス再生が可能かを否か判断する。アクセスポイント情報フラグが有効であれば、アクセスマップはIピクチャの位置情報を有する。このため、制御部211は外部機器から早送り再生等の要求があればこれに応じて、Iピクチャを含むデジタルデータをデジタルI/Fを介して外部機器に出力することができる。また、タイムアクセス情報フラグが有効であれば、タイムアクセスが可能である。このため制御部211は、外部の機器からのタイムアクセスの要求に応じて、指定された再生時刻に相当するピクチャデータを含むデジタルデータをデジタルI/Fを介して外部機器に出力することができる。
(7.記録機能の基本動作)
次に、図19を用いて上記光ディスクに対して記録、再生を行なう本発明に係るDVDレコーダの構成および動作について説明する。
図19に示すように、DVDレコーダは、ユーザへの表示およびユーザからの要求を受け付けるユーザインターフェース部222、DVDレコーダ全体の管理および制御を司るシステム制御部212、VHFおよびUHFを受信するアナログ放送チューナ213、アナログ信号をデジタル信号に変換しMPEGプログラムストリームにエンコードするエンコーダ214、デジタル衛星放送を受信するデジタル放送チューナ215、デジタル衛星で送られるMPEGトランスポートストリームを解析する解析部216、テレビおよびスピーカなどの表示部217、AVストリームをデコードするデコーダ218とを備える。デコーダ218は、図18に示した第1及び第2のデコーダ等からなる。さらに、DVDレコーダは、デジタルインターフェース部219と、書きこみデータを一時的に格納するトラックバッファ220と、DVD−RAM100にデータを書きこむドライブ221とを備える。デジタルインターフェース部219はIEEE1394等の通信手段により外部機器にデータを出力するインターフェースである。
このように構成されるDVDレコーダにおいては、ユーザインターフェース部222が最初にユーザからの要求を受ける。ユーザインターフェース部222はユーザからの要求をシステム制御部212に伝え、システム制御部212はユーザからの要求を解釈すると共に各モジュールへの処理要求を行う。
録画には、入力されるデジタルデータを自らエンコードするセルフエンコーディングと、エンコード済みのデジタルデータをエンコードすることなくディスクに記録するアウトサイドエンコーディングがある。
(7.1 セルフエンコーディングによる録画動作)
最初にセルフエンコーディングの録画について、アナログ放送をPS−VOBにエンコードして記録する動作を以下、具体的に説明する。
システム制御部212はアナログ放送チューナ213への受信とエンコーダ部214へのエンコードを要求する。
エンコーダ部214はアナログ放送チューナ213から送られるAVデータをビデオエンコード、オーディオエンコードおよびシステムエンコードしてトラックバッファ220に送出する。
エンコーダ部214は、エンコード開始直後に、エンコードしているMPEGプログラムストリームの先頭データが有するタイムスタンプ情報を再生開始時刻(PS_VOB_V_S_PTM)としてシステム制御部212に送り、続いてアクセスマップを作成するために必要な情報をエンコード処理と平行してシステム制御部212に送る。この値は、後に生成される図17に示すセル情報のStart_PTMに設定される。タイムスタンプ情報は、一般的にはPTSになるがSCRで代用しても良い。
次にシステム制御部212は、ドライブ221に対して記録要求を出し、ドライブ221はトラックバッファ220に蓄積されているデータを取り出しDVD−RAMディスク100に記録する。この際、前述した連続領域(CDA)をディスク上の記録可能領域から検索し、検索した連続領域にデータを記録していく。
録画終了はユーザからのストップ要求によって指示される。ユーザからの録画停止要求は、ユーザインターフェース部222を通してシステム制御部212に伝えられ、システム制御部212はアナログ放送チューナ213とエンコーダ部214に対して停止要求を出す。
エンコーダ214はシステム制御部212からのエンコード停止要求を受けエンコード処理を止め、最後にエンコードを行ったMPEGプログラムストリームの終端データが有するタイムスタンプ情報を再生終了時刻(PS_VOB_V_E_PTM)として、システム制御部212に送る。この値は、図17に示すセル情報のEnd_PTMに設定される。タイムスタンプ情報は通常PTSが設定されるが、SCRで代用しても良い。
システム制御部212は、エンコード処理終了後、エンコーダ214から受け取った情報に基づき、図15に示すPS−VOB用のVOB情報(PS−VOBI)と再生制御情報を生成する。
ここで、生成されるVOB情報はオブジェクト種類に適合したアクセスマップとマップ管理情報とを含む。システム制御部212は、マップ管理情報のマップ有効性情報を有効に設定すると共に、自己エンコーディングフラグをONにする。
また、再生制御情報は、記録されるオブジェクトを再生対象の1つとする図16に示すオリジナル再生経路(O−PGC情報)が生成される。生成されたO−PGC情報はオリジナル再生経路テーブルに追記される。オリジナル再生経路(O−PGC情報)はセル情報を有する。セル情報のタイプ情報には「PS−VOB」が設定される。
最後にシステム制御部212は、ドライブ221に対してトラックバッファ220に蓄積されているデータの記録終了と、PS−VOB用のVOB情報(PS_VOBI)および再生制御情報の記録を要求し、ドライブ221がトラックバッファ220の残りデータと、これらの情報をDVD−RAMディスク100に記録し、録画処理を終了する。
なお、アナログ放送をTS1−VOBにエンコードしてももちろん良い。この場合、エンコーダ214はアナログ信号をデジタル信号に変換しMPEGトランスポートストリームにエンコードするエンコーダである必要があり、セル情報内のタイプ情報は「TS1−VOB」に設定される。
この場合のStart_PTMおよびEnd_PTMは、PTSでも良いしPCRを用いても良い。
(7.2 アウトサイドエンコーディングによる録画動作)
次にアウトサイドエンコーディングによる録画について、デジタル放送を録画する動作を通して以下、具体的に説明する。この場合、記録されるオブジェクトの種類はTS2−VOBになる。
ユーザによるデジタル放送録画要求は、ユーザインターフェース部222を通してシステム制御部212に伝えられる。システム制御部212はデジタル放送チューナ215への受信と解析部216へのデータ解析を要求する。
デジタル放送チューナ215から送られるMPEGトランスポートストリームは解析部216を通してトラックバッファ220へ転送される。
解析部216は、最初にデジタル放送として受信されたエンコード済みのMPEGトランスポートストリーム(TS2−VOB)のVOB情報(TS2_VOBI)の生成に必要な情報として、トランスポートストリームの先頭データが有するタイムスタンプ情報を開始時刻情報(TS2_VOB_V_S_PTM)として抽出し、システム制御部212に送る。開始時刻情報は、後に生成される図17に示すセル情報のStart_PTMに設定される。このタイムスタンプ情報は、PCR又はPTSになる。また、オブジェクトがDVDレコーダに伝送されてくるタイミングであるATSで代用しても良い。
解析部216は、さらに、MPEGトランスポートストリームのシステム層を解析し、アクセスマップ作成に必要な情報を検出する。Iピクチャのオブジェクト内での位置については、前述したようにTSパケットヘッダ中の適用フィールド(adaptation field)内のランダムアクセスインジケータ(randam_access_indicator)をもとに検出する。
次にシステム制御部212は、ドライブ221に対して記録要求を出力し、ドライブ221はトラックバッファ220に蓄積されているデータを取り出しDVD−RAMディスク100に記録する。この時、システム制御部212はファイルシステムのアロケーション情報からディスク上のどこに記録するかをあわせてドライブ221に指示する。この際、前述した連続領域(CDA)をディスク上の記録可能領域から検索し、検索した連続領域にデータを記録していく。
録画終了はユーザからのストップ要求によって指示される。ユーザからの録画停止要求は、ユーザインターフェース部222を通してシステム制御部212に伝えられ、システム制御部212はデジタルチューナ215と解析部216に停止要求を出す。
解析部216はシステム制御部212からの解析停止要求を受け解析処理を止め、最後に解析を行ったMPEGトランスポートストリームの終了区間のデータが有するタイムスタンプ情報を表示終了時刻(TS2_VOB_V_E_PTM)としてシステム制御部212に送る。この値は、図17に示すセル情報のEnd_PTMに設定される。このタイムスタンプ情報は、PCR又はPTSになる。また、オブジェクトがDVDレコーダに伝送されてくるタイミングであるATSで代用しても良い。
システム制御部212は、デジタル放送の受信処理終了後、解析部216から受け取った情報に基づき、図15に示すTS2−VOB用のVOB情報(TS2_VOBI)と再生制御情報を生成する。
ここで、生成されるVOB情報はオブジェクト種類に適合したアクセスマップとマップ管理情報とを含む。システム制御部212は、Iピクチャのオブジェクト内での位置等を検出でき有効なアクセスマップを生成した場合にはマップ管理情報のマップ有効性情報を有効に設定する。また自己エンコーディングフラグはOFF設定をする。有効なアクセスマップを生成できなかった場合にはマップ有効性情報を無効に設定する。なお、有効なアクセスマップを生成できないケースとしては、対応していないデジタル放送を受信した場合や、適用フィールドにランダムアクセス情報が無い場合等が考えられる。また、デジタルI/Fから直接入力された場合は、MPEGトランスポートストリームでないケースもありえ、この場合も当然、マップ有効性情報は無効に設定される。
また、再生制御情報は、記録されるオブジェクトを再生対象の1つとする図16に示すオリジナル再生経路(O−PGC情報)が生成される。生成されたO−PGC情報はオリジナル再生経路テーブルに追記される。オリジナル再生経路(O−PGC情報)はセル情報を有する。セル情報のタイプ情報には「TS2−VOB」が設定される。
最後にシステム制御部212は、ドライブ221に対してトラックバッファ220に蓄積されているデータの記録終了と、TS2−VOB用のVOB情報(TS2_VOBI)および再生制御情報の記録を要求し、ドライブ221がトラックバッファ220の残りデータと、これらの情報をDVD−RAMディスク100に記録し、録画処理を終了する。
以上、ユーザからの録画開始および終了要求をもとに動作を説明したが、例えば、VTRで使用されているタイマー録画の場合では、ユーザの代わりにシステム制御部が自動的に録画開始および終了要求を発行するだけであって、本質的にDVDレコーダの動作が異なるものではない。
(8.発明の概要)
本発明の情報記録媒体は様々なフォーマットのデータを記録するものであって、アナログ放送もしくはデジタル放送のコンテンツや、アナログ/デジタルインターフェースを介して入力される多種多様なデータを記録した情報記録媒体であり、本発明の情報記録装置は、その情報記録媒体に対してAVデータの記録/再生を行う装置である。
特に、本発明の情報記録媒体には、外部入力されたAVデータがMPEG−TS形式で記録され、各MPEG−TSパケットのデコーダ入力時刻情報を、各MPEG−TSパケットに付与したストリームが記録されている。
さらに、MPEG−TSの制御情報を受け持つPSI(Program Specific Information)パケットの配置とレコーダ固有/コンテンツ固有等の情報をユーザプライベートストリーム(UPパケット)として埋め込み、各パケットのデコーダ入力時刻情報を蓄積に適した形式で付与することを特徴とする。
さらに、前記MPEG−TSの多重化の際に、MPEG−PSへの変換が容易になるように、1パック(2048バイト)相当のデータを1多重化連続単位としてシステムエンコードし、各多重化連続単位を1つまたは複数のMPEG−TSパケットに分割しながら、MPEG−TS記録することを特徴とする。
(9.詳細な実施形態)
第1の実施例.
本発明の情報記録/再生装置の記録/再生時の基本動作に関しては、ほぼ前述の説明の通りであるため、以下にアナログ外部入力記録時の基本動作に関してのみ図20を用いて具体的に説明する。この場合、記録されるオブジェクトの種類はTS1−VOBになる。
ユーザによる外部入力録画要求は、ユーザインターフェース部222を通してシステム制御部212に伝えられる。システム制御部212は外部入力部223への受信とエンコーダ214へのデータ符号化を要求する。
エンコーダ214から送られるMPEGトランスポートストリームはトラックバッファ220へ転送される。
エンコーダ214は、最初にエンコード済みのMPEGトランスポートストリーム(TS1−VOB)のVOB情報(TS1_VOBI)の生成に必要な情報として、トランスポートストリームの先頭データが有するタイムスタンプ情報を開始時刻情報(TS1_VOB_V_S_PTM)として設定し、システム制御部212に送る。開始時刻情報は、後に生成される図17に示すセル情報のStart_PTMに設定される。このタイムスタンプ情報は、PCR又はPTSになる。
エンコーダ214は、さらに、MPEGトランスポートストリームを生成しながら、アクセスマップ作成に必要な情報を生成する。
例えば、Iピクチャの先頭MPEGトランスポートパケットには、adaptation fieldを格納し、random_access_indicatorのビットを立て、VOBUのスタートであることをシステム制御部212に転送する。
次にシステム制御部212は、ドライブ221に対して記録要求を出力し、ドライブ221はトラックバッファ220に蓄積されているデータを取り出しDVD−RAMディスク100に記録する。この時、システム制御部212はファイルシステムのアロケーション情報からディスク上のどこに記録するかをあわせてドライブ221に指示する。この際、前述した連続領域(CDA)をディスク上の記録可能領域から検索し、検索した連続領域にデータを記録していく。
録画終了はユーザからのストップ要求によって指示される。ユーザからの録画停止要求は、ユーザインターフェース部222を通してシステム制御部212に伝えられ、システム制御部212はエンコーダ214に停止要求を出す。
エンコーダ214はシステム制御部212からの記録停止要求を受け符号化処理を止め、最後に符号化を行ったMPEGトランスポートストリームの終了区間のデータが有するタイムスタンプ情報を表示終了時刻(TS1_VOB_V_E_PTM)としてシステム制御部212に送る。この値は、図17に示すセル情報のEnd_PTMに設定される。このタイムスタンプ情報は、PCR又はPTSになる。
システム制御部212は、記録処理終了後、エンコーダ214から受け取った情報に基づき、図15に示すTS1−VOB用のVOB情報(TS1_VOBI)と再生制御情報を生成する。
ここで、生成されるVOB情報はオブジェクト種類に適合したアクセスマップとマップ管理情報とを含む。システム制御部212は、マップ管理情報のマップ有効性情報を有効に設定する。また自己エンコーディングフラグはON設定をする。
また、再生制御情報は、記録されるオブジェクトを再生対象の1つとする図16に示すオリジナル再生経路(O−PGC情報)が生成される。生成されたO−PGC情報はオリジナル再生経路テーブルに追記される。オリジナル再生経路(O−PGC情報)はセル情報を有する。セル情報のタイプ情報には「TS1−VOB」が設定される。
最後にシステム制御部212は、ドライブ221に対してトラックバッファ220に蓄積されているデータの記録終了と、TS1−VOB用のVOB情報(TS1_VOBI)および再生制御情報の記録を要求し、ドライブ221がトラックバッファ220の残りデータと、これらの情報をDVD−RAMディスク100に記録し、録画処理を終了する。
以下、エンコーダ214にて生成されるセルフエンコーディングMPEGトランスポートストリームの詳細について説明する。
図21(a)にセルフエンコーディングMPEGトランスポートストリームの構造を示す。同図に示すように、セルフエンコーディングのMPEGトランスポートストリームはVOBU単位に区切られ、各VOBUの先頭にはPATパケットとPMTパケットさらにはストリームに固有の情報を埋め込んだユーザプライベートパケット(以下「UPパケット」と称す。)が続いている。または、少なくともVOBの先頭にはPATパケット、PMTパケットが配置される。
図21(b)に示したように、それぞれのパケットにはデコーダ入力時刻情報であるATSが付与されており、個々のパケットは対応するATSで意図された時刻にデコーダへ転送される。
先頭パケットのPATパケットには、セルフエンコーディングのプログラム情報(PMTパケットのPID等)が格納され、ATS1の時刻でデコーダに入力される。
2番目のパケットのPMTパケットには、プログラムを構成するエレメンタリーストリームごとのPID等が格納される。ここでは、ビデオ、オーディオ、データ放送(図中の”Data”)、ユーザプライベート(図中の”private”)パケットのPIDを格納した例を示す。
3番目のパケットのUPパケットには、ストリームへの付加情報が格納される。例えば、ストリームのタイトル情報や、記録日時情報や、ストリームの符号化情報(ビットレート、ビデオ解像度、フレームレート、アスペクト比、符号化方式等)であるストリーム属性や、外部入力がアナログかデジタルか等の識別する入力源識別情報や、さらにはデジタルであった場合に入力AVデータの符号化方式を特定する情報や、コピー許可/不許可等の著作権保護情報や、VBI(Vertical Blanking Interval)信号である、クローズドキャプション(CC)やテレテキストデータ、または表示制御を指定するWSS(Wide−Screen Signaling)等や、システムエンコードの条件を示した情報や、各種DVD規格との変換性(互換性)を示す情報や、該ストリームを記録した製造業者の固有データ等を用いてユーザ利便性の高いメニュー情報や、各種DVD規格対応のMPEG−PSに変換する際に有用な様々なデータを格納することが考えられる。
前述のようにMPEGトランスポートストリーム内に配置され、付加情報を格納されたパケットのデコーダ入力時刻について図22を用いて詳細に説明する。
図22(a)はトランスポートストリームシステムターゲットデコーダ(T−STD)と呼ばれる基本的なデコーダの構成を示したブロック図であり、前述では触れていなかったPSIパケットを解析し、デコーダの制御を行うシステムデコーダ235も加えて示した図である。
PSIパケットであるPAT、PMTパケットは、T−STDに入力されると、デマルチプレクサ232でパケット種別に応じて弁別され、システムコントロールに関するPSIパケットはトランスポートバッファ233に瞬時に転送される。
続いて、トランスポートバッファ233に蓄積されたデータは随時システムバッファ234に1000000ビット/秒(=Rsys)のレートで転送される。
PSIデータが有効になるのは、システムバッファ234に必要なPSIのデータが揃った瞬間である。
このようにMPEGのT−STDモデルでは、デコーダの動作モデルを規定し、MPEGトランスポートストリームの転送レート等の基準を定めている。
情報記録装置はT−STDにて正しく復号が可能と保証されるMPEGトランスポートストリームの形式に従いセルフエンコーディングする必要があるため、PSIパケットの転送にはいくつかの制限がある。以下に図22(b)を用いて、パケット転送レートを決定するATSの決定方法について説明する。
セルフエンコーディングストリームの再生時には、まずは先頭のPAT、PMT、UPパケットがそれぞれATS1、ATS2、ATS3が示す時刻にT−STDに入力される。
PMTパケットとUPパケットに注目すれば、PMTパケットで指定されたUPパケットのPIDをT−STDが解釈し、有効にするためには、TS_program_map_section(mバイト)の最後のバイトがシステムバッファ234に蓄えられている必要がある。
つまり、PMTが有効になるには、PMTパケット入力時刻であるATS2から、(m+n+5)×8/Rsys秒が経過しなければならない。ここで、nはPMTパケットのadaptation_fieldのバイト長である。
T−STDの基準クロックであるSystem Clock Frequency(SCF)は27000000Hz(誤差として±810Hzまでの許容範囲が規定されている)であるため、ATSをSystem Clock Frequencyの時刻精度で表した時刻情報だとすると、ATS3とATS2の間には以下の関係が成り立つ必要がある。
ATS3≧ATS2 + ((m+n+5)*8/Rsys)*SCF
さらに、ATS2とATS3の最小間隔はPMTパケット内にadaptation_fieldがなく(n=0)、かつPMTパケットには最小のTS_program_map_section(21バイト)が格納されているのみの時であるため、この場合208/Rsys×SCFの時間間隔が最小となる。
同様に、PATパケットの入力時刻ATS1とPMTパケットの入力時刻ATS2に関しても、PATパケット内のProgram association
sectionのバイト長をm0とし、PATパケットのadaptation_fieldのバイト長をn0とすれば、以下の関係を満足する必要がある。
ATS2≧ATS1 + ((m0+n0+5)*8/Rsys)*SCF
さらに、ATS1とATS2の最小間隔はPATパケット内にadaptation_fieldがなく(n0=0)、かつPATパケットには最小のProgram association section(16バイト)が格納されているのみの時であるため、この場合168/Rsys×SCFの時間間隔が最小となる。
System Clock Frequency(SCF)を27MHzとして時間を27MHzの精度で表現すれば、ATS1とATS2の時間間隔およびATS2とATS3の時間間隔の最小値は、それぞれ4536と5616となる。
続いて、図23、図24、図25、図26を用いて、User Privateパケット(UPパケット)のセルフエンコーディングトランスポートストリームへの格納方法について説明する。
図23では、UPパケットをUser Private streamとして定義した場合のUPパケット格納方法を示している。この場合、UPパケットに対応するPMTのstream_typeには、0x80以上でかつ0xFF以下の識別番号が割り振られ、UPパケットには固有のPIDが付与され、UPパケット内部のデータ構造はMPEG規格外となる。また、ここではUPパケット内に、DVD_attribute_section()というセクション構造を持たせた例を示している。
また、図24では、UPパケットをprivate_section構造を持たせ、固有のPIDを付与する場合の格納方法を示している。private_section内のsection_syntax_indicatorの値によって、private_sectionのデータ構造が若干異なるが、UPパケットの固有データはprivate_sectionのprivate_data_byteに格納される。この場合、stream_typeには、0x05の識別番号が割り振られる。
また、図25では、UPパケットをPMTと同じPIDのパケットとして格納する方法が示されている。この場合、UPパケットのデータ構造はprivate_section構造に従う。この場合、stream_typeは定義されず、UPパケットにはPMTパケットのPIDが付与される。
また、図26では、UPパケットを個別に設けずに、PMTパケットに内包する方法が示されている。この場合も、UPパケットに該当する固有データはprivate_section構造となり、TS_program_map_sectionに続いてprivate_sectionが記述される。すなわち、PMTパケット内に、TS_program_map_sectionとprivate_sectionの両方を格納している。
ここで、前述の方法によってMPEG−TSに格納される固有データの詳細について、説明する。
図23、図24、図25、図26にて記述されているように、固有データとしては、DVD Video Recording規格のRDI UnitのRDI_GI(Real-time Data Information General Information)と、DCI_CCI(Display Control Information and Copy Control Information)を持つ。
RDI_GIは、該当VOBUの先頭再生開始時刻(VOBU_S_PMT)と、記録日時情報を格納し、DCI_CCIは、当該VOBU内のアスペクト比情報、サブタイトルモード情報、フィルム・カメラモード情報等の表示制御に関わる情報と、コピー世代管理情報や、APS情報、入力ソース情報等が格納されている。(RDI_GIとDCI_CCIの詳細についてはDVD Video
Recording規格を参照。)
また、V_ATRには、ビデオのビットレート情報、解像度情報、フレームレート情報(もしくはNTSC/PAL等のvideo_format情報)、アスペクト比情報、符号化方式(MPEG2−Videoや、MPEG1−Video等の識別)の情報が格納される。
同様に、A_ATRにも、オーディオの本数に応じて、全部もしくは一部のオーディオのビットレート、符号化方式、チャンネル数、量子化ビット数、ダイナミックレンジコントロール等の情報が格納される。
また、CCには、当該VOBU内のClosed Captionデータが格納される。CCデータの格納には、PS変換の移植性を高めるために、予めextension_and_user_data(1)(GOPレイヤーでユーザデータを格納する方法)形式で記述しても良いし、CCデータを別記述方式で記述しても良い。
GOPレイヤーのユーザデータにCCデータを格納する形式で記述するのがMPEG−PS変換の効率を高めるのは、DVD−VideoやDVD Video Recording規格がそのようにしているからである。
また、C_SEには、当該VOBU(もしくはVOB)のTS2PS変換時に問題となるいくつかの問題点に対する情報が記述されている。
例えば、CC/WSS/Teletextデータ格納位置情報には、CCデータがUPパケットにあるのか、各ピクチャヘッダのユーザデータとして記述されているのか、もしくはこのVOBU(VOB)にCCデータが無いのか等を識別するための情報である。
WSS格納位置情報については、固有データとしてUPパケットにまとめて格納されているのか、各ピクチャヘッダのユーザデータに記述されているのか等を示す情報である。
Teletext格納位置情報については、Teletextを格納したTSパケットを設けて格納されているのか、各ピクチャヘッダのユーザデータに記述されているのか等を示す情報である。
多重化ブロック構造・転送情報については、図27に示す多重化ブロック(1つのエレメンタリーストリームのみが、他のエレメンタリーストリームと混在することなく格納されたデータブロック)を構成するTSパケットが固定数なのか可変数なのか、また、固定数ならばその固定数を表す情報や、PTS/DTSが多重化ブロックの先頭TSパケットに付与されているかを示す情報や、同一多重化ブロック内での転送レートについての情報等が記述されている。従来の多重化に条件を課さないMPEG−TSエンコード時には、多重化ブロックは1つのTSパケットからのみ構成される固定長サイズとして記述することも可能である。
各デコーダバッファ制御用情報については、ビデオベリファイングバッファのパラメータであるvbv_delayや、vbv_buffer_size等のビデオバッファの余裕量を示す情報や(この情報を用いてビデオデータをATSの入力時刻からどれだけ先読みして良いのか判断することができる)、当該VOBU内のフレームでバッファ入力時刻が最もそのフレームのデコード時刻に近いフレームの入力完了時刻とデコード時刻との時刻差情報(この情報を用いてビデオ・オーディオデータをATSの入力時刻からどれだけ後読みして良いのか判断することができる)等を記述する。
さらに、DVD_Compatibility情報には、該MPEG−TSを各DVD規格に準じたMPEG−PSにトランスコードする際に、どの程度の負荷があるかを示した情報である。
例えば、多重化ブロックが2KB以下で構成されていることでレベル1のインジケータ、CC、WSS、Teletextデータが存在する場合に、CC、WSSデータがUPパケットに格納され、Teletextがビデオデータを格納した多重化ブロック内にTeletextパケットとして格納されていればレベル2のインジケータ、CC、WSS、Teletextデータを各DVD規格で定める領域に格納した際にバッファマネージメントを考慮する必要がなければレベル3のインジケータ、多重化ブロックの先頭TSパケットのATSをSCRに置換する際に、バッファマネージメントを考慮する必要がなければレベル4のインジケータ等と、該MPEG−TSを各DVDのフォーマットに容易に変換できるか否かの変換性を示す情報である。
このDVD_Compatibility情報は、DVD−Video用、DVD−Audio用、DVD Video Recording用、DVD Stream Recording用等といった、DVDフォーマットにそれぞれ対応した変換容易性を示す情報群である。
図27に多重化ブロックを利用したMPEG−TSの構造図と、それをDVD−Video、DVD Video Recordingフォーマットに変換した場合のデータ構成図を示した。
図27(a)に示す自己録TSストリームは、図27(b)に示す自己録TSストリームのVOBU(再生・復号の単位)から構成される。図27(c)に示すように、1つのVOBUは複数の多重化ブロック(MPEG−PSのパックに該当する)から構成される。それぞれの多重化ブロックは、図27(d)に示すように、固定長データサイズに分割されてもよく(これにより機器への実装が簡単になる。)、もしくは、図27(e)に示すように、可変長データサイズに分割されてもよい(この場合、記録媒体の容量を浪費しない)。図27(d)、27(e)の場合は、PSI/SIパケットやUPパケット等の非エレメンタリーストリームと、エレメンタリーストリームとをそれぞれ分離して多重化ブロックを構成しているが、図27(f)に示すように、多重化ブロックにおいて、エレメンタリーストリームとともに、PSI/SIパケットやUPパケット等の非エレメンタリーストリームが格納されてもよい。なお、図27(f)の場合、多重化ブロック#1と多重化ブロック#2とが1つの多重化ブロックとなる。
さらに上記ストリームは、容易に図27(g)に示すDVD−Video形式や、図27(h)に示すDVD Video Recording形式に変換されることができる。
この場合、多重化ブロックの並びの通りにMPEG−PSのパックが形成され、1多重化ブロックは1パックのデータを格納した単位であることが、TS2PS変換を簡単に行うために重要である。
なお、図27において、カプセルヘッダや、ATSは本発明と関連が性が低いため、省略している。また、図27(g)、27(h)で示した変換後のMPEG−PSの各パックは格納されるエレメンタリのバイト長やVOBUアライメントに応じてstuffingやpaddingがなされる。
図28は、図8で示した従来のストリームの多重化方法と対応して本発明における多重化を説明した図である。同図に示すように、最終的なフォーマットは図28(g)のMPEG−TSに準拠したフォーマットである。ビデオストリーム(図28(a))は複数のGOPからなる(図28(a))。各GOPは所定のピクチャデータからなり、MPEG−PSに変換したときの1パックのデータ量に相当するデータ量を持つTSパケット群を1つの多重化ブロックとする(図28(c)参照)。すなわち、1つの多重化ブロックは図28(d)に示すように1パックのデータ量に相当する複数のTSパケットに分割される。オーディオストリームについても同様に複数のTSパケットをまとめて1つの多重化ブロックとする。そして、図28(e)に示すように、多重化ブロック単位で多重化することによりVOBUを構成する。このように、本発明では、MPEG−PSの1パックのデータ量に相当するデータ量を有するデータを多重化ブロックとしてまとめて配置する(図28(e) 参照)点が、図8に示す従来例に対して最大の相違点である。
また、MPEG−TSの各パケットに付与するATSについて、図29に示すように、同一多重化ブロック内においては、一定の増分(ΔATS)だけATSを増加させながらATSを付与してもよい。このことは、TS2PSへの変換時に複雑なバッファマネージメントを行うことを避け、単純なオフセット又はオフセットなしでATSからSCRに置換するために有効である。このとき、ATSi(i=0,1,2,...)は次式の関係を満たす。
ATSi+(多重化ブロック内のパケット数)×ΔATS≦ATSi+1
多重化ブロックが固定長の場合、1つの多重化ブロックに含まれるTSパケット数は一定であるため、多重化ブロックの境界を容易に知ることができる。しかし、多重化ブロックが可変長であるとき、1つの多重化ブロックに含まれるTSパケット数は不定であるため、多重化ブロックの境界を知ることが困難となる。そこで、この場合は、多重化ブロックの境界におけるATS値の増分(ΔATS)を、多重化ブロック内での増分(一定値)とは異なる所定の値に設定する。つまり、前の多重化ブロック内の最後のパケットのATS値と、その直後の多重化ブロックの最初のパケットのATS値との差分(ΔATS)を、一定値と異なる所定の値に設定する。これにより、ΔATSを監視することにより、多重化ブロックの境界を知ることができる。MPEG−PSへ変換する際のTSパケットとパックとを一対一に対応付けることができる。このとき、ATSiは次式の関係を満たす。
ATSi+(多重化ブロック内パケット数)×ΔATS<ATSi+1
また、図29に示すように、MPEG−TSにおける多重化ブロックの先頭のパケットに付与されたATSiと、変換後のMPEG−PSのパック毎に付与されるSCRiとが対応する。
また、図29に示すように、UPパケット内にClosed CaptionやDSI等の文字情報を格納してもよい。UPパケット内のDSIは変換後のNV_PCKのデータ生成に使用され、Closed Captionはビデオパックに格納される。また、欧州でのPAL規格にも対応できるように、図30に示すように多重化ブロックにおいてTeletextデータを格納したパケットを、ビデオデータを格納したパケットの間に挿入してもよい。このとき、Teletextデータを格納したパケットは、同時に表示されるPTSを持つピクチャの直前に配置される。Teletextデータは、変換後はビデオパックに格納される。図31に上記のようにDSI等を格納するUPパケットのデータ構造を示す。
また、UPパケットの付加情報に、VOBU先頭のIピクチャの最後のバイトを格納したTSパケットを特定する情報(VOBU先頭からの相対番号等)を記述してもよく、これにより、効率良い特殊再生が実現できる。同様に、VOBU内のいくつかのI、Pピクチャや、全ピクチャのピクチャ符号化種別情報と、そのピクチャのデータ長情報(例えば、最後のバイトを含んだTSパケットを特定する情報等)と、各ピクチャのDTS/PTSを示す情報を記述することで、特殊再生を支援することも可能である。
尚、前述の実施例において、PTS/DTSを付与されたTSパケットが多重化ブロックの先頭になるようにエンコードすれば、TS2PS変換後のパックの先頭にアクセスユニットの先頭が配置されることになり、DVD固有のヘッダ処理が簡単になる効果が期待できる。
尚、多重化ブロックを形成するTSパケットにはMPEG−PSへの変換を考慮し、パックに格納されるデータがあふれることの無いように、適宜スタッフィングを入れても良いし、多重化ブロック最後のTSパケットからスタッフィングを必要バイト数挿入しても良い。
尚、上記説明においては、DVDに記録することを中心に説明を行ったが、本発明はこれに限る訳ではなく、自己録TSをHDDや半導体メモリー等の情報記録媒体に記録した後、同一もしくは別の記録媒体上にMPEG−PS変換されたストリームを記録するようにしても良い。
尚、上記説明においては、PAT、PMT、UPパケットを各VOBUの先頭に記録するとしたが、少なくともVOBの先頭に記録するとしても良いし、少なくとも再生管理単位であるCellの先頭に記録するとしても良い。
尚、上記説明においては、PAT、PMT、UPパケットを記録するとしたが、UPパケットは無くても良い。
尚、上記説明においては、PAT、PMT、UPパケットの配置を先頭に固定配置したが、本発明はこれに限る訳ではなく、Nullパケットを格納したパケット等を間に挿入して記録しても良い。
尚、上記説明においては、セルフエンコーディングのストリームはPATパケットから始まるとしたが、これに限る訳ではなく、Nullパケットから始まっても良い。
尚、Nullパケットをセルフエンコーディングのストリームに適宜挿入することで、システム転送レートを固定レートにしても良い。
尚、図7のように、製造業者固有の情報を格納するデータ領域を設け、そこにMPEG−TSシステムエンコードの条件を記述するようにしても良い。
尚、上記説明にてUPパケットに記述した情報の全て若しくは一部を、図15に示したTS1−VOB情報内に記述しても良い。
尚、dual monoの音声チャンネルで記録されたセルフエンコーディングトランスポートストリームをDVD−Videoフォーマットに変換するときには、DVD−Videoには、dual monoの音声が規格上存在しないため、2本の異なる音声ストリームとして、左右のモノラル音声をそれぞれ分割し変換しても良い。
また、上記説明にてUPパケットに記述されるパラメータの一部もしくは全部を管理情報内に記述するようにしても良い。これは、1セルフエンコーディングトランスポートストリーム内で変化しないパラメータを多数回記録することを避けることで無駄な記録領域を発生させず、UPパケットの出現ごとにパラメータが変化したか否かを判定する余分なデコーダ処理を軽減する効果が得られる。
第2の実施例.
(エンコーダの構成)
以下、本発明の別の実施例について詳細に説明する。最初に、本発明に係る情報記録装置のエンコーダについて、AV入力を受けてMPEG−TSにセルフエンコードを行うエンコード処理に焦点を当てて説明する。
図33に、本発明に係る情報記録装置のエンコーダの構成を示す。同図に示したようにエンコーダ214は、各エレメンタリーエンコーダ230a、230b、230cと、システムエンコーダ232とからなる。エンコーダ214はシステム制御部212からの制御信号を受け、エレメンタリーエンコーダ230a、230b、230c及びシステムエンコーダ232により、エレメンタリーエンコード又はシステムエンコードに切替えながらエンコード処理を行なう。各エレメンタリーエンコーダ230a、230b、230cは、ビデオ、オーディオ、VBI(Vertical Blanking Interval)のそれぞれの信号を受けとり、エンコードを行う。
ビデオエンコーダ230aは、システム制御部212からの制御信号を受け、これに従い、ビデオストリームのビットレート、解像度、アスペクト比等の属性を決められた範囲内でエンコードする。具体的には、ビデオエンコーダ230aは、エンコード開始時にシステム制御部212から、「DVD−Video互換モード」、「DVD Video Recording互換モード」または「通常モード」のいずれかの動作モードを指定する制御信号を受信する。制御信号が指定するモードが「DVD−Video互換モード」であれば、DVD−Video規格のビデオ属性に準じたビデオストリームを、「DVD Video Recording互換モード」であれば、DVD Video Recording(以下「DVD VR」と称す。)規格のビデオ属性に準じたビデオストリームを、「通常モード」であれば、ある所定の範疇の属性に準じたビデオストリームを生成する。
オーディオエンコーダ230bも同様に、システム制御部212からの制御信号を受け、これに従い、オーディオストリームのビットレート、量子化ビット数、チャンネル数等の属性を決められた範囲でエンコードする。ビデオエンコーダ230aと同様に、具体的にはシステム制御部212から動作モードを示す制御信号を受信し、制御信号が示すモードが、「DVD−Video互換モード」であれば、DVD−Video規格のオーディオ属性に準じたオーディオストリームを、「DVD Video Recording互換モード」であれば、DVD VR規格のオーディオ属性に準じたオーディオストリームを、「通常モード」であれば、ある所定の範疇の属性に準じたオーディオストリームを生成する。
VBIエンコーダ230cも、システム制御部212から動作モードを指定する制御信号を受け取り、これに従って、VBIデータをエンコードする。具体的には、VBIエンコーダ230cは、システム制御部212からVBIエンコーダへ入力されるエレメンタリーストリームエンコード制御信号が、「DVD−Video互換モード」、「DVD Video Recording互換モード」を指定する時には、夫々の規格で規定されたVBIデータの格納方法にしたがいVBIデータを追加でエンコードする。追加でエンコードするとは、元々の通常モードでもVBIデータを格納する方法が別途決められている可能性があるため、それと重複してエレメンタリーストリーム内に格納することを意味している。
以上のようにして、エンコードされたエレメンタリーストリームは夫々システムエンコーダ232によってMPEG−TSシステムストリームへ多重化される。
システムエンコーダ232も、各エレメンタリーストリームエンコーダ230a、230b、230cと同様にシステム制御部212からエンコードの制御信号を受け、これに従ったエンコードを行う。
システム制御部212からシステムエンコーダ232への制御信号は、通常のMPEG−TSへのシステムエンコード制御信号か、通常のMPEG−TSに制限を加え、MPEG−PS(特にDVD固有のフォーマット)に容易に変換できるシステムエンコード制御信号(DVD−Videoモードか、DVD Video Recordingモード)かのどちらかである。
通常のMPEG−TSへのシステムエンコード制御信号である場合には、システムエンコーダ232は、各エレメンタリーストリームエンコーダ230a、230b、230cから入力されてきたエレメンタリーストリームをMPEG−TSシステムストリームの基準となるデコーダモデル(以下「T−STD」と称す。)で破綻を起こさないように、バッファマネージメントしながら、システムエンコードを行う。
さらに、システム制御部212からの制御信号が、MPEG−PSへ容易に変換できるMPEG−TSへのシステムエンコードを指定する制御信号である場合には、上記に加えさらに特殊なシステムエンコードルールを守りながらエンコードを行う。
このようにして生成されたセルフエンコーディングMPEG−TSシステムストリームがエンコーダ214から出力される。
上述のように、本発明の情報記録装置は、エレメンタリーストリームとシステムストリームレベルで個々にエンコードモードを切り換えることを特徴としている。このエンコードモードの切り換えによって、夫々のエンコードモードに対しDVDフォーマットへ変換する際の処理をまとめた表を図34に示す。
このように、エレメンタリーストリームエンコーダ230a、230b、230c及び、システムストリームエンコーダ232にMPEG−PSへの変換を前提としたエンコードを行わせることで、MPEG−PSへ容易に変換可能なMPEG−TSが作成される。
(セルフエンコードされたMPEG−TS)
以下に、本発明の情報記録装置にてセルフエンコードされたMPEG−TSのフォーマットの一実施例を詳細に説明し、通常のMPEG−TS(以下「SESF」と称す。)と、MPEG−PSに容易に変換可能なMPEG−TS(以下「Constrained SESF」と称す。)との相違を説明する。
以下の例では、MPEG−TSストリーム単位で属性情報等を格納するVOBIに、そのストリームの符号化条件を表す情報を格納する。このようにストリーム中ではなく、管理情報に符号化条件を表す情報を格納することにより、ストリームを解析することなくそのストリームがDVD−VideoやDVD VRのフォーマットに容易に変換可能なのか否かの判定を素早く行うことが可能となる。なお、このストリームの符号化条件を表す情報は後述のTipパケット中に格納されても良い。
このストリームの符号化条件を表す情報を”encode_condition”という2ビットのフラグで表す。フラグの値の意味は以下の通りである。
00b:通常のMPEG−TS (SESF)
01b:DVD VR規格のストリームフォーマットに容易に変換可能なMPEG−TS (Constrained SESF)
10b:リザーブ
11b:DVD Video規格のストリームフォーマットに容易に変換可能なMPEG−TS (Constrained SESF)
ストリーム管理情報内に、00bの値を取る場合には、元々MPEG−PSへの高速変換を考慮せずにエンコードされている場合と、ユーザの編集作業によって、個々のMPEG−PSへの変換が容易なMPEG−PSを連結して一つのストリームとした場合が考えられる。
また、ストリーム中にもencode_conditionを併せ持つ場合、通常のMPEG−TSを示すencode_condition=00bをストリーム内に持つ意味は無く、ストリーム中では(後述のTipパケット内では)、encode_condition=00bはリザーブとして、使用禁止とされるとして、encode_conditionの使用方法がストリーム内/外で異なることもあり得る。
以上のようにフラグの値を決定することで、VOBIのencode_conditionフィールドの値から、そのストリームがDVD−VideoやVRフォーマットに容易に変換できるのか否かを判定することができる。ここでいう容易に変換できるというのは後述の変換方法で変換できることを意味している。
(Constrained SESFのストリーム構造)
図80にConstrained SESFの全体的なストリーム構造を示す。Constrained SESFは複数のSESF capsule(SESFカプセル)からなる。SESF capsuleは所定のMultiplexing Unitを含み、かつ、先頭にTipパケット(詳細は後述)を有する。各SESF capsuleの再生時刻情報(PTS)と、Tipパケットのアドレス情報とはアクセスマップ80cにより対応付けられる。後述するように、TS2PS変換では、このSESF capsule毎に変換処理が行なわれる。
図32は1つのSESF capsule内の各パケットとMPEG−PSのパックとの対応を示した図である。図32に示すように、Constrained SESF内に、ストリームの固有情報を格納したTSパケット(以下「Tipパケット」と称す。)が挿入される。以下に、Constrained SESF内に埋め込まれるTipパケットを図35から図41を用いて説明する。
<Tipパケット>
図35にTipパケットの全体構造を示す。この図にあるようにTipパケットは、そのパケットがTipパケットであると特定するためのData_IDと、DVD VRのDCI_CCIフィールドに対応し、表示制御やコピー制御情報を含むdisplay_and_copy_infoと、ストリームのエンコード情報を格納したencode_infoと、製造者独自の付加情報を記述できるMakersPrivateDataとを格納する。
図35、36に示したように、Tipパケットには後述のSCR演算に必要なPCR値をアダプテーションフィールド内に記述している。このアダプテーションフィールドも固定バイト長であるため、Tipパケット内の各種情報へ固定アドレスでのアクセスが可能である。
図37にData_IDの構造を示す。Data_IDは、そのパケットがTipパケットであることを識別するためのData_Identifierを備える。Data_Identifierは、アスキーコードで”TIP”を表す「0x544950」の値を持った3バイトのフィールドである。再生装置のデコーダはこのフィールドの値を判定し、Tipパケットと特定することもできる。
図38に、display_and_copy_infoの構造を示す。このdisplay_and_copy_infoに、DVD VR規格のRDI UnitのDCI_CCIと同一の構造および情報を持たせることで、当該Constrained SESFをDVD VRフォーマットへ変換する際のRDIパックの生成を容易にしている。(なお、DVD VR規格のDCI_CCIの詳細については「DVD Specifications for Rewritable/Re−recordable Disc Part3 VIDEO RECORDING」や特許第3162044号に開示されている。これらの文献においては、一部フィールド名が異なっているが、各フィールドの定義はDVD VRフォーマットへの変換時にそのままコピーを可能にするため同一である。)
図39にencode_infoの構造を示す。video_resolutionフィールドには、Tipパケットに続くビデオストリームの解像度情報が記述される。encode_infoの値を以下に示す。
0000b:720x480(NTSC)、720x576(PAL)
0001b:704x480(NTSC)、704x576(PAL)
0010b:352x480(NTSC)、352x576(PAL)
0011b:352x240(NTSC)、352x288(PAL)
0100b:544x480(NTSC)、544x576(PAL)
0101b:480x480(NTSC)、480x576(PAL)
Others:リザーブ
DVD VRフォーマットでは1連続記録中の解像度が、可変であっても良い。しかしながら、この場合、解像度が異なるストリームは別個のVOBとして管理され、レコーダによっては再生時のシームレス接続が保証される。したがって、Constrained SESF記録中に解像度変化を起こす場合には、DVD VRフォーマットに変換した場合に、どの地点からVOBを切り分ける必要があるのかを判定するために、このフィールドが使用される。
DVD−Videoフォーマットに変換することを考慮して記録されるConstrained SESF(encode_condition=11b)では、解像度変化は1ストリーム内では起こらない。
encode_conditionフィールドは、VOBIに格納された値と(00bである場合を除き)同一である。ストリームの管理情報だけでなく、ストリーム中にも埋め込んでencode_conditionフィールドを格納する理由は、IEEE1394に代表されるデジタルインターフェースを介してストリームがコピーされるようなことがあっても、受け手の記録装置がこのTipパケット内のencode_conditionフィールドを確認することで、容易にDVDフォーマットへ変換できるか否かの判定を行うことを可能とするためである。
FVFPSTフィールドには、DVD VR規格のVOBU_S_PTMが記録される。これは、Constrained SESFをDVD−Video/VRフォーマットへ変換する際に、Tipパケットに続き符号化されているビデオストリームの解析を行い、最初に表示されるビデオフィールドの再生時刻を算出する処理を省くためである。
FVFPSTフィールドは、前記ビデオフィールドの表示時刻を90KHz精度で表した32ビットのフィールドと、これに表現されない27MHz精度で表した16ビットのフィールドから成る。
図40に、PES_infoの構造を示す。PES_infoは、エレメンタリーストリームの解析をすることなく、Constrained SESFをDVD−Videoフォーマットへ変換するために必須となる情報である。この情報は、DVD−Videoのストリームに挿入されるNV_PCKと呼ばれる、特殊再生を支援するためのパックに格納される情報を生成するために必要となる。
PES_infoには、合計136個のビデオデータとオーディオデータを格納したPESパケットの情報を格納することが可能である。夫々のPESパケットに対して、4ビットずつのデータが割り当てられ、PESパケットの内部を解析せずともNV_PCKの情報を生成できるようになっている。尚、ビデオまたは、オーディオデータを格納していないPESパケットがある場合には、そのPESパケットは無視される。
Tipパケットから、次のTipパケットの一つ前のパケットまでのデータ単位であるSESF Capsuleに対して、PES_existence_flagは、j番目のPESパケットがこの該当のSESF Capsule内に存在するか否かのフラグである。PES_existence_flagの値は以下のように設定される。
0b:j番目のPESパケットが当該SESF Capsule内に存在しない。
1b:j番目のPESパケットが当該SESF Capsule内に存在する。
PES_extension_flag=0b(PESパケットが存在しない場合)である時には、当該PESパケットの残りのフィールドは全て0bとする。
PES_payload_identifierは、該PESパケットに格納されたデータが、ビデオデータなのか、オーディオデータなのかを識別するための情報である。PES_payload_identifierの値は以下のように設定される。
0b:ビデオストリーム
1b:オーディオストリーム
PES_existence_flagとPES_payload_identifierは対象となる全てのPESパケットについて記述されるフィールドである。
さて、上記PES_payload_identifierによってビデオかオーディオが格納されていると判明した時点で、PESパケットが格納するストリームの種別によって、それ以降のフィールド定義が異なる。
そのPESパケットがビデオストリームを格納していた場合(PES_payload_identifier=0b)は、PES_payload_identifierに続いて、そのPESパケットに格納されたピクチャの種別を示すpicture_coding_typeが定義される。
picture_coding_typeの値は以下のように設定される。
00b:01b、10b以外の符号化が施されたピクチャ
01b:フレームエンコードされたIピクチャまたは、フィールドエンコードされたIピクチャの一対または、フィールドエンコードされたIピクチャとフィールドエンコードされたPピクチャの一対
10b:フレームエンコードされたPピクチャまたは、フィールドエンコードされたPピクチャの一対
11b:リザーブ
つまり、01bもしくは10bのピクチャはDVD−Video規格で定義される参照ピクチャとなるピクチャである。以上が、ビデオを格納したPESパケットに対する付加情報である。
一方、PESパケットがオーディオストリームを格納していた場合(PES_payload_identifier=1b)は、PES_payload_identifierに続いて、そのPESパケットに格納されたオーディオストリームが第一音声ストリームなのか、第二音声ストリームなのかを識別するstream_identifierと、毎Tipパケットに記述されたFVFPST(一番最初に表示されるビデオフィールドの再生開始時刻)と同時もしくはその直後に再生が開始されるオーディオフレームを含んでいるか否かの判定フラグであるsync_presentation_flagとがある。
stream_identifierの値は以下のように設定される。
0b:第一音声ストリーム
1b:第二音声ストリーム
第一音声ストリームか、第二音声ストリームかの識別は、PIDの設定規則や、PMTでのエレメンタリーストリーム宣言の順番等でも決めることができる。
sync_presentation_flagの値は、以下のように設定される。
0b:該オーディオPESパケットの中に、FVFPSTと同時もしくは直後に再生開始されるオーディオフレームが格納されていない。
1b:該オーディオPESパケットの中に、FVFPSTと同時もしくは直後に再生開始されるオーディオフレームが格納されている。
以上が、オーディオを格納したPESパケットに対する付加情報である。PES_infoは、このように該Tipパケットに続く個々のPESパケットごとの情報を抽出し、格納しているフィールドである。
図41に、MakersPrivateDataを示す。図示した通り、MakersPrivateDataは、該Constrained SESFを生成した製造者を特定するmaker_IDと、その製造者が固有付加情報を記述するmaker_private_dataを設ける。
図42に、TipパケットのPIDとストリームの種別を示すstream_type値の一例を示す。PID、stream_type共にMPEGや他規格にて予約されている値があるため、それらと干渉せずかつMPEG規格外のプライベートデータであることを加味し、上記の値を選択した。
以上のように、Constrained SESFに格納されるTipパケットには、各種ストリームの属性情報が抽出され格納されている。上記説明したフィールドがDVDフォーマットへ変換する際にどのように使用されているかの詳細については、後述する。
(システムエンコード条件)
次に、Constrained SESFのシステムエンコード条件について詳細に説明する。尚、以下のシステムエンコード条件は通常のSESFには適用されない。
(多重化単位(Multiplexing Unit))
Constrained SESF内のエレメンタリーストリームを格納したTSパケットは、DVDフォーマットの2KBのパックに格納されるデータをまとめたユニットである多重化単位(Multiplexing Unit)から構成される。なお、この多重化単位(Multiplexing Unit)は第1の実施例の多重化ブロックに対応する。
1つのMultiplexing Unit内には、1種類のエレメンタリーストリームを格納するTSパケットだけが格納されており、他の種類のエレメンタリーストリームを格納するTSパケットと混在することはない。また、NULLパケットとの混在は、1つのMultiplexing Unitを構成する際に必要となる場合があるので(例えば、ストリームの最後のパートを格納したMultiplexing Unit)、禁止しない。これも、Multiplexing Unitとパックの関係を明確にするために必要である。
1つのMultiplexing Unitは11個の連続したTSパケットから構成され、各Multiplexing Unit内のエレメンタリーストリーム(ペイロードデータ)は対応する1つのパックに完全に格納される。これも同様に、パックとの関連性を制限している。
ビデオストリームを格納したPESパケットが複数のMultiplexing Unitに分割配置される場合には、PESパケットの最後のバイトを含むMultiplexing Unitを除き、全てのMultiplexing
Unitは184×11=2024BのTSパケットペイロードデータを格納する。これは、最大の効率でストリームを転送することと、TSパケット単位の逐次処理がTS2PS変換時に容易に実行できるようにするためである。仮に最後以外のMultiplexing Unitのデータ量を2024B以下と認めてしまうと、TS2PS変換時にMultiplexing Unit最初のTSパケットを変換する際にMPEG−PSのパック毎のパケットヘッダに格納されるPES_packet_lengthの値を容易に決定することができなくなる。
Multiplexing Unitの中で始まる最初の完全なオーディオフレームデータは、PESパケットペイロードの中で先頭のオーディオフレームでなければならない。
これは、オーディオストリームを格納したPESパケットが複数のMultiplexing Unitに格納されることを考えると分り易い。仮に1つのオーディオPESパケットが複数のMultiplexing Unitに分割配置されるとすると、2つ目以降のMultiplexing UnitをMPEG−PSのパックに変換する際に、パケットヘッダを生成するために、PTSを特定し、1つのパックに格納されるオーディオフレームの個数を決定する必要がある。このため、TS2PS変換時にオーディオストリームの内部解析が必要となり変換処理が煩雑となることを避けている。
以上がMultiplexing Unitの定義となる。Constrained SESFを生成するエンコーダは、上記Multiplexing Unitの制限の中でシステムエンコードを行う。
(Constrained SESF内のPESパケットヘッダの制限)
次に、Constrained SESF内のPESパケットヘッダのフィールド値について、いくつかの制限を説明する。
図43に示したように、PESパケットヘッダのフィールドには、固定値しか許されないものがある。これは、DVDフォーマットへ変換した際に余計な処理を発生させないためである。余計な処理とは、DVDフォーマットで定義された値と異なる値によって付加的に発生/消滅するフィールドを処理することを意味している。言い換えれば、TS2PS変換時に、ヘッダに追加されるフィールドや削除されるフィールドを極力押さえることが、このPESパケットヘッダの制限の目的である。
PES_packet_legnthの値はMPEG−TSに格納されたビデオストリーム場合、0が許されることがある。
PTS_DTS_flagsは、PTS、DTSが記述されているか否かを示すフラグである。
オーディオストリームを格納したPESパケットの場合、必ず1つ以上のオーディオフレームがPESパケット内で開始され、PTS_DTS_flagsは10b(DTSがある場合には11b)に設定される。
PES_extension_flagとPES_header_data_legnthには、TS2PS変換の際にTSパケット単位の逐次処理を行うための制限がある。これを図44に示した。
図44に示した通り、エレメンタリーストリームの種別、PESパケットの位置とencode_conditionの値によって、夫々の値が定義される。
ここで、図44にあるVPDとは、PESパケットのPTSフィールドとDTSフィールドを足し合わせたバイト長である。即ち、
PTS_DTS_flags=00bならば、VPD=0
PTS_DTS_flags=10bならば、VPD=5
PTS_DTS_flags=11bならば、VPD=10
である。
前述の通り、DVD−VideoやVRへ変換する際に、1パックのペイロード長が確定してからパックを構成するのではなく、TSパケットごとの逐次処理を容易にするためにこの制限が必要となる。
以上が、PESパケットヘッダの定義となる。Constrained SESFを生成するエンコーダは、上記制限の中でシステムエンコードを行う。
(Tipパケットの挿入間隔に対する制限)
次に、Constrained SESF内に挿入されるTipパケットの挿入間隔に関する制限を説明する。
TipパケットのATS(ATS1)が示すデコーダ入力時刻と、Tipパケットに続いて最初にデコーダに入力されるビデオもしくはオーディオストリームを格納したTSパケットのATS(ATS2)が示すデコーダ入力時刻とは、以下の関係が成り立つ必要がある。
ATS1 + T <= ATS2
T = (PS_pack_size*8*system_clock_frequency) / PSrate
Tは、PSパックの最小転送期間である。この最小転送期間は、PSパックがシステムデコーダに入力開始されてから完了するまでの最小期間である。すなわち上記の式は、各TSパケットのATS間隔は、少なくとも変換後のPSパックがシステムデコーダに入力可能な間隔よりも大きいことが必要なことを示している。
Tの値を求めると次のようになる。
PS_pack_sizeはTS2PS変換で生成されるMPEG−PSでの1パックのバイト長であり、system_clock_frequencyはMPEG−PSデコーダの基準時刻の周波数であり、PSrateはTS2PS変換で生成されるMPEG−PSストリームの多重化レートである。
DVDフォーマットの場合、それぞれ以下の値を取るため、ATS1とATS2の関係は次のようになる。
PS_pack_size=2048 バイト、
system_clock_frequency=27000000 Hz、
PSrate=10080000 ビット/秒、
ATS1 + 43885.714... <= ATS2
よって、ATS1 + 43886 = ATS2 がATS2の最小値となる。典型的には、後述のTS2PS変換にてTipパケットがNV_PCK(DVD−Video変換時)もしくはRDI_PCK(DVD VR変換時)の2KBのサイズを持つパックに変換されるが、上記の式を満たさない場合は、続くエレメンタリーストリームの転送時刻が早まり、DVDのシステム転送レート10.08Mbpsの上限を超えてしまうことになる。
一つのSESF capsuleには整数個のGOPがアライメントされて配置される。これは、DVDフォーマットのVOBUの概念をConstrained SESF上で実現するために、SESF capsuleを、DVDフォーマットのVOBUに対応させるためである。DVDフォーマット(DVD VR)では、このVOBUは整数個のGOPから構成される必要がある。
一つのSESF capsule内に格納されるビデオデータの再生時間軸上での時間幅は、0.4秒以上、1.0秒以下でなければならない。また、最後のSESF capsuleに格納されるビデオデータの再生時間軸上での時間幅は、encode_condition=11b(DVD−Videoモード)時には0.4秒以上1.2秒以下であり、encode_condition=01b(DVD VRモード)時には1.0秒以下でなければならない。これは、SESF capsuleがVOBUとなり、各DVDフォーマットに従うために必要である。
各Tipパケットは、通常、時間−アドレス変換を行うアクセスマップと1対1にポイントされることが望まれる。これは、TS2PS変換を行う際に、DVDフォーマットで言う所のVOBU単位で変換を即座に始められるようにすることと、変換時にDVD−Videoフォーマットに変換する場合に、TipパケットをNV_PCKへと変換していく際に、NV_PCK内に格納される近隣VOBUへのアドレス情報であるDSI(Data Search Information)をアクセスマップから作成するために必要である。DSIを計算するためには、アクセスマップが、Tipパケットごとにその再生時間(FVFPSTに準じたTipパケット直後のAV再生時刻情報の一部もしくは全部)とTipパケットの記録アドレスとを格納し、2つの連続するTipパケット間にMultiplexing
Unitが何個格納されているかが判れば良い。これは次の制約によって実現される。
尚、全てのTipパケットがアクセスマップからポイントされなくても良い、例えば、Constrained SESF内で一番最後のTipパケットに続くAVデータは、再生時間長や次のTipパケットが無い等、他のTipパケットと異なる状態にあるため扱いが異なる。このような場合、一番最後のTipパケットをアクセスマップに登録せずとも特に再生や変換に支障をきたす訳ではない為、機器の実装を鑑み、例外処理としても良い。
連続する2つのTipパケット間には、Multiplexing Unitに属さないパケットが合計32個挿入される。これは、TS2PS変換時にアクセスマップを用いてDVDフォーマットに変換した場合、VOBUのパック数がいくつになるのかを特定するために必要である。(パケット数は32個に限定する必要はないが、ある所定の個数である必要がある。アクセスマップのTipパケットのアドレス情報から、Tipパケットに続くTSパケット数が特定できるため、Multiplexing Unitでないパケットがいくつあるのかが判れば、DVDフォーマットに変換した際に、VOBUにいくつのパックが入るのか特定できる。これが重要である。また、この情報はMNFや各Tipパケット内のMakersPrivateData内に記述されても良い。)
また、32個にする理由は、MPEG−TSのプログラム構成情報を示すPAT、PMTパケットが最低100msecに一回以上埋め込まれることと、プログラムごとの固有情報を格納したSITパケットが最低1秒に一回以上埋め込まれることと、デコーダ基準時刻を作り出すPCR(Program Clock Reference)を格納するPCRパケットが最低100msecに一回以上埋め込まれることと、何れのMultiplexing Unitにも属さないNULLパケットが自由に付加できることと、Tipパケットの挿入間隔がAVデータ再生時間軸で1.0秒以下であることから、連続する2つのTipパケット間には、少なくとも31個のPAT、PMT、PCR、SITパケットがあれば良い事になる。従って連続する2つのTipパケット間に、その時間に応じたPAT、PMT、PCR、SITパケットを挿入し、32パケットになるまでNULLパケットを付与することで、VOBUのパック数をアクセスマップから特定することができる。
一例として、0.5秒間隔でTipパケットが挿入され、アクセスマップから特定できる該Tipパケットに続くTSパケットの個数が1209TSパケットである場合について変換後のパック数を考えてみると、PAT、PMT、PCRパケットを合計して15パケット(=5+5+5)、SITパケットがこのTipパケットに続けて挿入されたとして1パケット、残りの16パケットをNULLパケットとして挿入する。これをDVDフォーマットに変換する場合には、TipパケットがNV_PCK(DVD−Videoへ変換時)もしくはRDI_PCK(DVD VRへ変換時)に変換されて1パック、1つのMultiplexing
Unit(11TSパケット)は1パックに夫々変換される。従って、VOBUのパック数は、
1+Multiplexing Unitの個数
という式で求めることができ、Mulitplexing Unitの個数は、
(該Tipパケットに続くTSパケット数−32)/11
であるため、この例の場合には、
1+((1209-32)/11) = 1+107 = 108
となり、該VOBUは、トータル108パックであることが計算できる。このVOBU毎のパック数と再生開始時刻情報があれば、DVD Videoへ変換する際に必要となるNV_PCKのDSIパケットを生成するのがきわめて高速に実現できる。
以上が、Tipパケット挿入間隔に対する制限である。Constrained SESFを生成するエンコーダは、上記制限の中でシステムエンコードを行う。
(デコーダ制御に関する制限)
次に、Constrained SESFのデコーダ制御(バッファマネージメント)に関する制限を説明する。
Constrained SESFは、MPEG−TSの基準デコーダモデルであるT−STDの基準を満たすよう作成される必要がある。これは、T−STD準拠のデコーダを搭載したSTB等でもストリームの種別さえ合えば、Constrained SESFのデコードが可能であることを意味している。
MPEG−TSの基準デコーダモデルであるT−STDと、MPEG−PSの基準デコーダモデルであるP−STDは、ほぼ同じ動作・処理能力を持つが、オーディオストリームのデコーダへの入力レートが異なる。具体的には、T−STDは、図18を用いて説明すると、オーディオデコーダ前のトランスポートバッファからオーディオバッファへの転送レートがAACを除いて、2Mbps固定となっている。しかしながら、P−STDはシステムレートつまりDVDだと10.08Mbpsのレートで、各種ストリームをデコーダへ入力することができる。
したがって、Constrained SESFとDVDフォーマットとのバッファマネージメントは共通化できないことになる。
このように、一般的には、MPEG−TSとMPEG−PS間でのバッファマネージメントは共通化できないが、Constrained SESFをDVDフォーマットへ変換する際に、再度バッファマネージメントを考慮しながらシステムエンコード処理を行うことを避け、各TSパケットに付与されたATSを用いて、変換後のパックのデコーダ入力開始時刻を示すSCR(System Clock Reference)を算出できれば、極めて高速にかつ容易に変換が実行できる。ATSを用いたSCRの導出方法の詳細は後述する。
また、本発明のConstrained SESFは、T−STD準拠であると共に、後述する変換方法によって生成されたMPEG−PSが、P−STD準拠であることを保証できるように、予めエンコードされる必要がある。
つまり、Constrained SESFとは、MPEG−PSに変換してもP−STD準拠になるようにMPEG−TSにエンコードされたストリームである。
以上が、Constrained SESFのバッファマネージメントに関する制限である。なお、SESFではこれらのことを気にすることなく、T−STDに合致するようにエンコードするのみである。
ここで、T−STD、P−STDの基準モデルに準拠しないMPEG−TS、MPEG−PSの例を説明する。
最初に図45に、MPEG−PSに変換可能だが、T−STDモデルを満たさないようにセルフエンコードされたMPEG−TSの例を示す。ストリームTS1は、T−STDモデルに準拠するようにシステムエンコードされたMPEGトランスポートストリームである。ストリームTS2は、T−STDモデルに準拠していないMPEGトランスポートストリームである。すなわち、ストリームTS2においては、ATS[47]からATS[57]の値が、MPEG−TSにおいてオーディオデータに対して許容される転送レートを超えてしまうように設定されており、このため、オーディオのトランスポートバッファ(図18参照)をオーバーフローさせてしまいT−STDモデルを満たさないようになっている。これに対し、ストリームTS1は、ATS[47]からATS[57]の値がMPEG−TSにおいてオーディオデータに対して許容される転送レートを満たすように設定されている。このストリームからは、後述のSCR変換式にてP−STD準拠のMPEGプログラムストリームPS1に正しく変換できる。また、ストリームTS2も、T−STDを満たさないが、後述のSCR変換式で変換すれば、PS1を生成する。ストリームTS2をT−STD準拠のMPEG−TSにするためには、ATS[47]からATS[57]で指定されるオーディオパケットの転送時間間隔を広げ、トランスポートバッファをオーバーフローさせないようにすることが必要である。
次に、図46にT−STDは満たすが、MPEG−TSから変換されたMPEG−PSがP−STDモデルを満たさない場合の例を示す。ストリームTS3はMPEGトランスポートストリームであり、ストリームPS3はMPEGトランスポートストリームTS3から変換されたMPEGプログラムストリームである。図46(b)は、各ストリームのデコ−ド時のビデオデータ用バッファの状態の変化を示している。PES#1のピクチャのデコード時刻はSCR[2]であり、PES#2のピクチャのデコード時刻はSCR[4]とSCR[5]の間にくる。 図46(b)に示すように、トランスポートストリームTS3においては、PES#1、PES#2に含まれるピクチャデータのデコードまでに各TSパケットのデータ転送が間に合っている。これに対し、プログラムストリームPS3ではPES#1に対してはV_PCK#1の転送が間にあっているが、PES#2に対しては、V_PCK#4の転送が間に合わず、その転送途中でデコードが開始されたためにバッファアンダーフローを生じる。よって、P−STDモデルが満たされていない。このような状態を回避するためには、MPEG−TSにおいてPES#2の転送が早期に完了するように、V_PCK#2〜V_PCK#4に変換される各TSパケットのATS(ATS[14]、ATS[25]、ATS[36])の値を時間的に早くなるようにシフトさせればよい。
<ATS−SCR変換>
次に、Constrained SESFのストリームをプログラムストリームに変換するときのPSパケットのSCRの導出方法について説明する。なお、SCRの計算が必要となるのは新規にパックを生成するときであるため、Tipパケットと、Multiplexing Unitの先頭のTSパケットを変換するときのみ必要となる。
Constrained SESFのストリームは、図14(c)に示す構造を持っている。TSパケット中には基準時刻情報(PCR)を格納したPCRパケットが適宜挿入されており、これを用いてデコーダ基準時刻であるSTC(System
Time Clock)をある時間間隔でリセットすることが可能である。また、各TSパケットには、各TSパケット間の相対的な送出時刻情報を格納したATSが前置されている。そのため、PCRを格納したTSパケット以降に送出されるTSパケットは、PCR値と、TSパケット間の相対的な送出時刻情報であるATSとから得られるタイミングでデコーダに入力される。つまり、PCRを格納したTSパケット以降のTSパケットに対しては、各TSパケットのデコーダ入力時刻(以下「calculated_PCR」と称す)を生成できる。また、PCRを格納したTSパケットが無い場合でも、PCRに相当する情報を管理情報に抽出しておくことも可能である。
図47は、Constrained SESFからMPEG−PSへ変換した際のcalculated_PCRとSCRの関係を示した図であり、図80で示すCapsuleの先頭部である。なお、図において、各TSパケットにストリーム先頭から昇順で付与されたATSをATS[k]と表記している。また、Multiplexing Unit先頭のTSパケットに対して、その出現順に計算されたPCR値をcalculated_PCR[i](i=0,1,2,...)と表記している。同様に変換後のパックのSCRも出現順にSCR[i]と表記している。
前述の通り、T−STD基準モデルでは、ビデオストリームの転送については最大転送レート15Mbps(MP@MLの場合、マルチプレクサバッファからビデオバッファの転送レートは15Mbpsを超えない)の制限があり、オーディオストリームの入力レートについては、ビデオよりも低いレート制限がある。(トランスポートバッファからオーディオバッファへの転送レートはAACを除き2Mbpsを超えない)このため、オーディオデータを格納したMultiplexing Unitは、ビデオデータを格納したMultiplexing
Unitと異なり、低レートで転送される。従って、ビデオデータの転送レートをDVDフォーマットの最大レートである9.8Mbps近くまで上げようとすれば、転送レートが低く時間がかかるオーディオデータの転送時間を確保するために、ビデオデータのTSパケットは、DVDの転送レート(10.08Mbps)より高いレートで送出される必要がある。
図47に示すように、Constrained SESFと、DVDフォーマットとの間で、転送時間帯が異なっていることがわかる。
TipパケットもしくはMultiplexing Unitの先頭のTSパケットのデコーダ到着時刻(calculated_PCR)と、それらが変換された後のパックのSCRとの間には、次の関係式が成り立つ必要がある。
SCR[0] = calculated_PCR[0]
SCR[i] = max( SCR[i-1] + T , calculated_PCR[i] ) (i= 1,2,
3, ...)
calculated_PCR[i] = PCR_tip + (ATS[n] - ATS_tip + WA*BS)
T = PS_pack_size*8*system_clock_frequency / PSrate
ここで、PCR_tipとATS_tipは夫々、変換するMultiplexing Unit直前のTipパケットに記述されたPCR値と、そのTipパケットのATS値である。WAは、i番目のMultiplexing Unitの中で先頭のTSパケットに付与されたATS(ATS[n])とATS_tipとの間のATSで、何回桁あふれが起きたかを表しており、BSは、ATSの一回の桁あふれの量を表している。また、max(a, b)はa,bの内で大きい方の値を選択する関数である。
また、SCR[i](i=0、1、2、3...)に関する関係式では、前述の通り、PS_pack_sizeはTS2PS変換で生成されるMPEG−PSのパック1個分のバイト長である。system_clock_frequencyはMPEG−PSデコーダの基準時刻の周波数であり、PSrateはTS2PS変換で生成されるMPEG−PSストリームの多重化レートである。すなわち、
PS_pack_size=2048 バイト、
system_clock_frequency=27000000 Hz、
PSrate=10080000 ビット/秒である。
従って、先頭以降のパックの送出については、一つ前のパックの送出時刻から転送レートで定められる転送最小時間経過後に送出するか、そのパックを形成する最初のTSパケットのデコーダ入力時刻にて送出されるか、の2つのパターンがある。ビデオデータをDVDフォーマットへ変換した時刻よりも早い時刻に送出している時には、前者の転送最小時間間隔をあけて送出される方が選択される。例えば、ビデオデータをDVDフォーマットへ変換したときよりも早い時間帯に送出している場合は、一つ前のパックの送出時刻から転送レートで定められる転送最小時間経過後に送出される。
尚、Constrained SESFは編集が可能であるため、encode_condition=11bで記録した場合でも、ストリームの先頭部分を編集で消去した場合等は、calculated_PCR[0]=0とならないことも考えられる。
しかしながら、encode_condition=11bでありながら、calculated_PCR[0]=0でない場合には、encode_condition=11bの場合のみ、次の変換式を定義することで、問題を解決することができる。
SCR[0] = 0
SCR[i] = max( SCR[i-1] + T, calculated_PCR[i] ) - calculated_PCR[0] (i= 1,2, 3, ...)
calculated_PCR[i] = PCR_tip + (ATS[n] - ATS_tip + WA*BS)
T = PS_pack_size*8*system_clock_frequency / PSrate
PTS(DVD-Video) = PTS(Constrained SESF) - calculated_PCR[0]
DTS(DVD-Video) = DTS(Constrained SESF) - calculated_PCR[0]
ATS[n]、WAは上記の通り、i番目のMultiplexing Unit先頭のTSパケットのATS値と、ATS_tipからの桁あふれ回数である。
つまり、DVD−Video規格に準拠させるために、SCR[0]=0とし、以降のSCRは前述の変換式の結果に時間calculated_PCR[0]だけオフセットされた値を用い、DVD−Videoストリーム中のPTS、DTSも全て、一律に時間calculated_PCR[0]だけオフセットする。
こうして、ストリームの時刻情報を一律にオフセットすることで、Constrained SESF(encode_condition=11b)の先頭等を削除した場合でも、encode_condition=11bのまま管理されDVD−Videoフォーマットへ変換ができる。
DVD−Video規格フォーマットへの変換においては、PTS/DTS値の変換が発生するが、TSパケット単位の逐次処理で容易に実現できる。
TS2PS変換する際には、上式に基づいてATSからSCRが計算される。TS2PS変換により得られるプログラムストリームは前述のようにP−STDモデルを準拠する必要があり、このためSCRの値はある範囲に制限される。したがって、Constrained SESFの各パケットに付与されるATSの値は上述のATS−SCR関係式を考慮して設定される必要がある。
(エレメンタリーストリームに関する制限)
次に、Constrained SESFのエレメンタリーストリームに関する制限を説明する。
エレメンタリーストリームの再エンコードは機器にとって非常に負荷の高い処理になるため、ビデオデータについては、MPEG2−Videoのみが許され、オーディオデータについては、AC−3、MPEG1−Audio、LPCMが許される。
ここで説明するConstrained SESFは、LPCMを除外しているが、これは20ビット以上の量子化ビット数を持つLPCMの場合にエレメンタリーストリームの再エンコードを行う危険性を避けるためと、転送レートが上げられないオーディオのデータ量を削減することで、バッファマネージメントを容易に行うためでもある。しかしながら、16ビットのLPCMであれば、特に除外する必要はない。以下に説明するConstrained SESFに許されたストリームは、ビデオに関してMPEG2−Video、オーディオに関してAC−3、MPEG1−Audioの2種類のみとして説明する。なお、Constrained SESFでない通常のSESFでは、オーディオデータの符号化がこれに限らず、BSデジタル放送で使用されているAAC(Advanced Audio Coding)等の符号化方式が用いられても良い。
図48にencode_condition="11b"の場合のエレメンタリーストリーム属性をまとめて示した。
同図に示された属性は、DVD−Video又はDVD VRフォーマットに対してエレメンタリーストリームレベルでの互換性を保てるように設定されているため、この属性に従ったConstrained SESF(encode_condition=11b)は、DVD−Video又はDVD VRフォーマットへ変換する際に、エレメンタリーストリームの再エンコードを必要とせず、高速変換が可能である。
図49にencode_condition="01b"時のエレメンタリーストリーム属性をまとめて示した。
同図に示された属性は、DVD VRとのエレメンタリーストリームレベルでの互換性を保てるように設定されているため、この属性に従ったConstrained SESF(encode_condition=01b)は、DVD
VRフォーマットへ変換する際に、エレメンタリーストリームの再エンコードを必要とせず、高速に変換可能である。
ここで、図48、図49に記述したNote1〜4について説明する。
Note1:この属性は、同一VOB内で変化してはいけない。
Note2:この属性は、Tipパケットに続く最初のエレメンタリーストリームを格納したTSパケット内で変化しても良い。言い換えれば、SESF Capsuleで先頭のビデオもしくはオーディオのTSパケットでのみ変化できる。
Note3:horizontal_size、vertical_sizeとaspect_ratio_informationが同一であるsequence_header間には、sequence_end_codeを挿入してはならない。
Note4:この属性は、モノラル、ステレオ、デュアルモノの間であれば、同一VOB内で変化しても良い。
以上が、Constrained SESFのエレメンタリーストリームに関する制限である。
ここで、説明してきたエンコード条件を加えることでDVDフォーマットへ容易にかつ高速に変換可能なConstrained SESFの生成が可能となる。
(変換後のDVD−Video/DVD VRフォーマット)
次に、Constrained SESFが変換されるべきDVD−Video、DVD VRのフォーマットにおけるフィールド設定について説明する。
<DVD−Videoフォーマット>
以下では、簡単にDVD−Video規格のストリームについて説明する。なお、DVD−Videoのストリームフォーマットの詳細については、「DVD
Specifications for Read−Only Disc Part3 VIDEO SPECIFICATIONS」に記述されている。
図50にDVD−Video規格のフォーマットのストリーム構造を示す。同図に示すように、各ストリームは複数のVOBを含み、各VOBは整数個のVOBUから成る。VOBUは整数個のパックから成り、NV_PCKを先頭としてビデオパック(V_PCK)やオーディオパック(A_PCK)がこれに続く。NV_PCKは、通常のDVDのパックの構造と異なり2つのパケットを内包した形となっている。それぞれのパケットはPCI(Presentation Control Information)パケット、DSI(Data Search Information)パケットと呼ばれ、PCIパケットには、当該VOBUに対する再生制御情報が格納される。DSIパケットには、当該VOBUと周辺のVOBUとの位置関係等の特殊再生に有用な情報が格納されている。以下では、フィールドを説明するとともに、その生成方法を合わせて記述していく。
図51にNV_PCKのPCIデータの構造を示す。PCIデータは、PCIの全般的な情報を格納するPCI_GI(PCI General Information)と、非シームレスのアングル情報であるNSML_AGLIと、メニューボタンなどにハイライトを当てるための情報であるHLIと、ISRC(International Standard Recording Code)を格納するRECIとから構成される。
NSML_AGLIとHLIは、Constrained SESFから変換された場合には、無効を意味するデータが記述される。
ISRCには、無効を意味するデータを記述しても良いし、ISRCコードを正しく記述しても良いが、Constrained SESFからの変換に関係がないため、ここでの説明は割愛する。従って、Constrained SESFからPCIデータを作成する際に問題となるのは、PCI_GIのみである。
図52にNV_PCKのPCI_GIの構造を示す。以下では、Constrained SESFから変換する際に計算を要するフィールドについてのみその算出方法を説明する。
NV_PCK_LBN(VOBSファイル内での該NV_PCK相対アドレス)は、情報記録装置が変換中に何番目のパックになるか数えておくことで、生成可能である。
VOBU_CAT(アナログコピープロテクション状態の情報)は、NV_PCKに対応しているTipパケットのdisplay_and_copy_infoから取得可能である。
VOBU_S_PTM(VOBU内で最初に表示されるビデオフィールドの再生時刻情報)は、NV_PCKに対応しているTipパケットのFVFPSTから計算可能である。
VOBU_E_PTM(VOBU内のビデオデータが再生完了する時刻情報)は、アクセスマップの次のエントリーに記述された再生時刻情報から取得するか、VOBUに対応するビデオストリームを解析して、ビデオの再生が終了する時刻を算出することで生成可能である。
VOBU_SE_E_PTM(VOBU内のビデオデータでsequence_end_codeによって再生が終了する時刻情報)は、sequence_end_codeがVOBの最後にしか認められていないため(図48参照)、ストリーム途中のVOBUには、sequence_end_codeがなく、「0x00000000」が埋められる。最後のVOBU内にSequence_end_codeがあるNV_PCKについてのみ、VOBU_E_PTMと同値となる。
C_ELTM(該NV_PCKが格納されるCELLの最初に表示されるビデオフレームの再生時刻と該VOBU内で最初に表示されるビデオフレームとの時間差情報。フレーム精度が必要)は、情報記録装置が変換中に、CELL最初に表示されるビデオフレームの再生時刻情報と、該当するTipパケットのFVFPSTを用いて随時計算することが可能である。
以上のようにして、NV_PCKのPCIデータは、変換中に、VOBU単位で随時生成していくことが可能である。
図53にNV_PCKのDSIの構造を示す。図示したように、DSIデータは、DSIの一般情報を格納するDSI_GI(Data Search Information General Information)と、VOB間をシームレス再生するために必要となる記録アドレス、再生情報等を格納したSML_PBI(Seamless Playback Information)と、異なるアングル間でシームレス再生するための配置情報等を格納したSML_AGLI(Angle Information for seamless)と、そのVOBU近隣のVOBUの記録アドレス情報等を格納したVOBU_SRI(VOB Unit Search Information)と、ビデオとオーディオ/サブピクチャとの同期再生のための情報であるSYNCI(Synchronous Information)とから構成される。
SML_AGLIは、Constrained SESFから変換された場合には、無効を意味するデータが記述される。
図54にNV_PCKのDSI_GIの構造を示す。Constrained
SESFから変換する場合に、計算が必要なフィールドについてだけ、以下にその算出方法を説明する。
NV_PCK_SCR(NV_PCKのSCR値)は、後述する算出方法でConstrained SESFのATSからSCRを導出しており、そのSCRから導出される。
NV_PCK_LBN(VOBSファイル内でのNV_PCK相対アドレス)は、PCIデータとそれを求めるのと同様である。
VOBU_EA(NV_PCKからVOBU内の最後のパックまでの相対アドレス)は、アクセスマップから計算可能である。前述の通り、2つの連続するTipパケット間において、Multiplexing Unitに属さないパケット個数が既知(固定)であるため、アクセスマップから、次のエントリー(次のTipパケット)までのTSパケット数が計算でき、そのTSパケット内に、Multiplexing Unitに属さないTSパケットの個数を減算し、その結果を11で割ることでNV_PCKに続き、何個のパックが形成されるか計算可能である。最後のTipパケットから派生されるNV_PCK、もしくは全てのNV_PCKについては、変換後に生成されたパック数をカウントしておきそれを記述しても良い。
VOBU_1STREF_EA(VOBU内で、NV_PCKから1番目の参照ピクチャの最後のパックまでの相対アドレス)と、VOBU_2NDREF_EA(VOBU内で、NV_PCKから2番目の参照ピクチャの最後のパックまでの相対アドレス)と、VOBU_3RDREF_EA(VOBU内で、NV_PCKから3番目の参照ピクチャの最後のパックまでの相対アドレス)とについては、TipパケットのPES_infoを参照しながら、TS2PS変換を行えば、ビデオストリーム層まで解析する必要なく導出することが可能である。
PES_infoには、各ビデオのPESパケットが、どのようなエンコードをされたピクチャかを示すpicture_coding_typeが記述されている。picture_coding_type=01b,10bを持つPESパケットは、DVD−Video規格でいう参照ピクチャを格納している。
従って、TS2PS変換を行いながら、PES_infoを参照し、現在変換しているPESパケットが、参照ピクチャを格納しているのか否かを判断し、この変換しているPESパケットが終了したパックが、参照ピクチャの終端のパックとなる。
このようにして、参照ピクチャの終端のパックは、変換中に識別可能であるため、VOBUを生成しながら、1番目、2番目、3番目の参照ピクチャがどのパックで完結しているかを求め、VOBU先頭のNV_PCKのVOBU_1STREF_EAと、VOBU_2NDREF_EAと、VOBU_3RDREF_EAとに夫々の終端までの相対アドレスを記述することが可能である。
もしくは、SESF Capsuleを変換中にビデオを格納したPESパケットのPTS_DTS_flagsの値を参照し、PTS_DTS_flags=11bであれば、参照ピクチャが格納されており、PTS_DTS_flags=10bであれば、非参照ピクチャが格納されていると逐次判断しながら、これらの値を算出しても良い。
VOBU_VOB_IDN(該VOBUが属するVOBのID番号)は、情報記録装置が変換中に求めることができるはずである。1つのConstrained SESFを変換している時には、Constrained SESF(encode_condition=11b)の定義により、属性の変化等のストリームの条件でVOBが分割される可能性はなく、同一番号が割り振られる。
VOBU_C_IDN(VOBUが属するCELLのID番号)もVOBU_VOB_IDNと同様に、情報記録装置が変換中に自ら設定する番号であり、ストリームとの関連はない。Constrained SESFのPGC情報等の管理情報からCELLを意図的に分割する場合には、分割に応じた番号が付与されるだけである。
C_ELTM(NV_PCKが格納されるCELLの最初に表示されるビデオフレームの再生時刻とVOBU内で最初に表示されるビデオフレームとの時間差情報。フレーム精度が必要)は、PCIデータ内に記述されたC_ELTMと同一である。
以上のようにして、NV_PCKのDSI_GIの各フィールドは、変換中に、VOBU単位で随時生成していくことが可能である。
図55にNV_PCKのSML_PBIの構造を示す。以下では、Constrained SESFから変換する場合に計算が必要となるフィールドについてのみその算出方法を説明する。
VOB_V_S_PTM(NV_PCKが属するVOBの最初に表示されるビデオフレームの時刻情報)は、最初のTipパケットのFVFPSTから計算可能である。
VOB_V_E_PTM(NV_PCKが属するVOBのビデオ再生終了時刻情報)は、TS2PS変換の前に、予めConstrained SESFの中で、変換に指定された部分で最後のTipパケット以降のストリームを解析しビデオの再生終了時刻を求めておくことで、随時設定可能である。
以上のようにして、NV_PCKのSML_PBIの各フィールドは、変換前に、計算しておくことが可能であり、変換中にはその値を用いれば良い。
VOBU_SRIは、前述の通り、アクセスマップを利用し、計算することが可能であるため、ここでの説明は割愛する。
また、VOBU_SRIはセルごとに完結して記述されるため、セルが定義されなければ、計算することはできない。したがって、リアルタイムにDVD−Videoフォーマットで記録するようなレコーダにおいては、任意の区間でセルを切ることができず、編集性、再生性に欠けるが、Constrained SESFから変換する際には、上記方法に従って、ユーザが指定した区間をセルと定義し変換することが可能なため、チャプターをユーザが意図した通りに作成できることになり、ユーザ指定の地点から再生を開始するプレイリストがDVD−Videoフォーマットで実現可能となる。
図56にNV_PCKのSYNCIの構造を示す。以下では、Constrained SESFから変換する場合に計算が必要なフィールドについてだけ、その算出方法を説明する。
A_SYNCA0(プライマリーオーディオを格納したパックで、VOBU_S_PTMと同時もしくは直後に再生されるオーディオフレームが格納されたパックの相対アドレス)は、Tipパケット内のPES_infoを用いて、ストリーム解析することなく、TS2PS変換中に取得することが可能である。
PES_infoのstream_identifierを参照することで、そのPESパケットがプライマリーオーディオを格納しているか判別でき、次のsync_presentation_flagにて、PESパケットの中に含まれるオーディオフレームの中に、VOBU_S_PTMと同時もしくはその直後に再生されるオーディオフレームがあるか否かが識別できる。従って、TS2PS変換を行いながら、PESパケットがプライマリーオーディオを含み、かつ、sync_presentation_flag=1bである場合に、NV_PCKからPESパケットが格納されたパックまでのアドレスを記述できる。
尚、sync_presentation_flagがVOBU内の1つのオーディオパック内で1bになる保証はない。オーディオを先に多重化しているエンコーダであれば、あるVOBUのVOBU_S_PTMと同時もしくは直後に再生されるオーディオパックが前のVOBUに格納されることも考えられるし、またその逆も考えられる。
従って、A_SYNCA0の値の設定において、変換中のプライマリーオーディオのPESパケット(そのsync_presentation_flagは1b)と、以降生成されるNV_PCKとの順序関係を正しく理解した上で、その値を設定する必要がある。
尚、この処理をなくすために、予めConstrained SESFは、SESF capsule内に、そのSESF capsule先頭のTipパケットに記述されたFVFPSTと同時もしくは直後に再生されるオーディオデータを格納するようにシステムエンコードするようにしておいても良い。
このように定義することで、VOBU(SESF capsule)を超えてVOBU_S_PTM(FVFPST)と同期したオーディオデータを検出する処理をなくすことが可能となる。
A_SYNCA1(セカンダリーオーディオを格納したパックで、VOBU_S_PTMと同時もしくは直後に再生されるオーディオフレームが格納されたパックの相対アドレス)は、A_SYNCA0と同様の方法にて設定可能である。
以上のようにして、NV_PCKのDSIデータは、変換中に、A_SYNCAを除きVOBU単位で随時生成していくことが可能である。
図82にNV_PCKの生成方法の一例をまとめる。
<DVD Video Recordingのフォーマット>
DVD Video Recording(VR)のストリームフォーマットへの変換時のフィールド設定について説明する。
以下、簡単にDVD VRのストリームを説明する。なお、DVD VRのストリームフォーマットの詳細については、「DVD Specifications for Rewritable/Re−recordable Discs Part3 VIDEO RECORDING」に記述されている。
図57にDVD VRフォーマットによるストリーム構造を示す。ここに示したように、各ストリームは複数個のVOBを含み、各VOBは整数個のVOBUから成る。VOBUは整数個のパックから成り、RDI_PCKを先頭としてビデオパック(V_PCK)やオーディオパック(A_PCK)がこれに続く。RDI_PCKは、通常のパックと異なり、表示やコピーの制御情報や、製造者固有情報を格納している。以下では、RDI_PCKに含まれる各フィールドを説明するとともに、その計算方法を合わせて説明する。
図に示したように、RDI_PCKのペイロードデータ(RDI Unit)は、RDIの全般情報を格納したRDI_GI(Real-time Data Information
General Information)と、表示およびコピー制御のための情報を格納したDCI_CCI(Display Control Information and Copy Control Information)と、製造者固有情報を格納するMNFI(Manufacturer's Information)とから構成される。
RDI_GIはその内部にVOBU_S_PTMフィールドを含み、このフィールドだけが可変であり、その他のフィールドは固定値が埋め込まれる。
VOBU_S_PTMは、変換前トランスポートストリーム中の対応するTipパケットに記述されたFVFPSTと全く同一形式であるため、FVFPSTの値がそのままコピーできる。
DCI_CCIは、Tipパケットのdisplay_and_copy_infoと全く同一形式であるため、display_and_copy_infoの値がそのままコピーされることが可能である。
MNFIは、Tipパケットに記述されたmaker_IDが当情報記録装置の製造者IDと同一の場合のみ、固有の製造者IDが割り当てられ、製造者固有情報が記述(コピー)される。しかし、Tipパケット内のmaker_IDが、他製造業者のIDである場合や、無効なmaker_ID値である場合には、MNFIに無効なデータを記述することでRDIパックを生成しても良い。
尚、Tipパケット内に記述されたデータが一部無効である場合が想定される。この場合、Tipパケット内の該当データが無効であることを意味するフラグ(無効化フラグ)が格納されているはずであるので、その無効化フラグがONである場合には、Tipパケットの該当データを最新のデータに更新してから変更する必要がある。
一例として、各TSパケットごとのATS(4B)の中に最新のCCI情報とTSパケット内のCCIデータ無効化フラグが存在する場合等が考えられる。
この場合、TS2PS変換する際に、無効化フラグが立っていないことを確認し、立っていれば、ATS内のCCIフラグでもってdisplay_and_copy_infoのCCI情報を更新したデータを用いてRDI_PCKに変換する必要がある。
以上のように、RDI_PCKは、対応するTipパケット(及びそのATS)のみから、逐次作成できる。
図58に上記のRDI_PCKの生成フローチャートを示す。
RDI_PCK(またはNV_PCK)の場合、システムヘッダは固定値のフィールドから構成されている。システムヘッダの詳細は図61に示してある。また、RDI_PCKに格納される、パケットヘッダ、プライベートヘッダをそれぞれ図62に示した。図示した通り、これらのヘッダも固定値フィールドから構成されるため、生成が容易である。
図59にAVデータを格納したTSパケット(1Multiplexing Unit)からPSのパックを生成するためのフローチャートを示す。
同図に示したように、AVデータを格納するConstrained SESFのTSパケットは、1Multiplexing Unitをその処理単位として、AVデータを格納するMPEG−PSの2KBのパックへと変換される。以下に、各ステップごとに処理を追って説明する。
(ステップS4200) Constrained SESFのストリームの変換開始点からTSパケットを1つだけ読み出す。
(ステップS4201) 読み出したTSパケットが、AVデータを格納し、かつ、Multiplexing Unitの先頭のTSパケットであるか否かを判定する。AVデータの格納の判定は、PMTにてAVデータを格納すると宣言されたTSパケットのPID値を参照することによって行われる。Multiplexing Unitの先頭か否かの判定については、その前のTSパケットが、Tipパケット、PSI/SIパケット及びPCRパケットのいずれかである場合に、その直後に続くAVデータを格納したTSパケットがMultiplexing Unitの先頭であると判定する。変換開始点はTipパケットであることが予想されるため、Multiplexing Unitの先頭か否かは順にTSパケットを読み込むことで判定可能である(つまりTipパケット直後のAVデータを格納したTSパケットは必ずMultiplexing Unitの先頭である。)。判定の結果、Multiplexing Unitの先頭でないTSパケットの場合、または、変換がTipパケットからスタートしておらず、判定ができない場合は、次のTSパケットを読み込むため、S4200へ処理が戻される。Multiplexing Unit先頭であることが確認できた場合は、次の処理へ進む。
(ステップS4202) Multiplexing Unit先頭のTSパケットに付与されたATSを用いて、そのTSパケットが変換されるMPEG−PSのパックがデコーダに入力される時刻(calculated_PCR)を算出する。この算出方法については前述のとおりである。PCRが計算されれば、SCRが前述の算出方法によって計算でき、図60に示したパックヘッダが完全に決定される。これは、パックヘッダは、SCRを除いて固定の値しか認められないためである。
(ステップS4203) パケットヘッダ、プライベートヘッダを作成する。
パケットヘッダは、Constrained SESFのPESパケットヘッダを基に作成される。作成されたパケットヘッダは、図63に示されたフィールド値を満たす形式でなければならない。これは、ヘッダ長を変えるようなフィールドの値は決定しておかなければConstrained SESFからの変換が一意に決定されず、バッファマネージメントに影響を及ぼす危険があるためである。ここに示されていないフィールドは固定値であるため列挙していない。
Constrained SESFでPESパケットヘッダの個々のフィールド値を詳細に決定しているのは、PESパケットヘッダ(MPEG−TS)からパケットヘッダ(MPEG−PS)への変換で要する処理を最小限にするためである。
PESパケットのサイズが1パックのサイズに比較して大きい場合には、1PESパケットが複数のパックに変換されることになる。この場合、2つ目以降のパックのパケットヘッダは、PESパケットから生成された最初のパケットヘッダのPTS_DTS_flagsを「00b」に、PES_extension_flagを「0b」に設定すること、stuffing_byte長を調整すること、及び、PES_header_data_lengthを補正することが修正点となる。
プライベートヘッダは、MPEG規格外のストリームを格納する際に必要となるため、NV_PCKやRDI_PCK、それにAC−3、LPCM等を格納したパックに必要である。
図64にAC−3のプライベートヘッダを示す。図に示すフィールドのうち、Constrained SESFのMultiplexing Unitの定義によって、TS2PS変換時に計算を要するものは、number_of_frame_headersのみである。このフィールドはそのパックに格納されるAC−3のオーディオフレームの数を指定するため、そのフィールドの値は、固定レートのAC−3については、1オーディオフレームのバイト長がそのビットレートから計算でき、かつその値が固定長となることから、容易にPES_packet_length等から計算できる。
尚、AC−3のプライベートヘッダ(4B)により、Constrained
SESFのPESパケットヘッダのPES_header_data_lengthが4バイト分余計にスタッフィングされていることに注意すべきである。(図44参照)このように、予め変換後のヘッダ長を見積もってペイロードの位置をずらしておくことで、TSパケット単位の逐次処理を容易にしているのである。
以上のように、最初のパケットヘッダはそのPESパケットのヘッダから一部修正し、2つ目以降のパケットヘッダは、最初のパケットヘッダを一部修正し、プライベートヘッダはMPEG規定外ストリームの時のみ挿入することで、パケットヘッダおよびプライベートヘッダを生成することが可能である。
(ステップS4204) プライベートヘッダが作成されれば、後はTSパケットのペイロード部分をPSパックのペイロード部分の先頭から順に詰めてコピーしていくだけである。
(S4205〜S4207) これをMultiplexing Unit(11個のTSパケット)が終了するまで単純に繰り返すだけだが、途中でNULLパケットが挿入されている可能性があるため、NULLパケットのPID(0x1FFF)を確認して、TSパケットのペイロードデータのコピーを行う。
尚、この際、PESパケットの最後のデータを格納するTSパケットだけがアダプテーションフィールドを持つように定義しておくのが好ましい。これにより、Constrained SESFの中でPESパケットの最後のデータを格納するTSパケット最後を除くTSパケットは、常に184Bのペイロードデータが格納されていることになるため、ペイロードデータの読み出しが容易になる。
(ステップS4208) 次に、Multiplexing Unitのペイロードデータまで、完全にコピーが終了した時点で、形成されたパックのバイト長を計算し、2048Bになっているかどうか確認する。既に2048Bになっていれば、そのパックの生成は終了する。まだ2048Bになっていない場合には、S4209へ進む。
(ステップS4209) パックが2048Bになっていない場合、2048Bになるようにパディングパケットをペイロードの最後に追加する。
以上のように、AVデータを格納したMultiplexing Unitからの変換処理を行なう。上記の処理を、Constrained SESFの指定された変換部分の処理が終了するまで、Multiplexing Unitが検出された場合のみ繰り返せば良い。
上記の変換処理について各種パック毎の変換結果を説明すると以下のようになる。
<ビデオパック(V_PCK)への変換>
図65にConstained SESFからMPEG−PSへの変換を図示した。図65(a)に示したように、一つのビデオPESパケットは、通常2KBよりも大きいため、複数のMultiplexing Unitに分割され、Constrained SESFに多重化されているのが一般的である。
Constrained SESFの規定により、一つのビデオPESパケットを構成する最後のMultiplexing Unitを除き、Multiplexing Unitには、最大にビデオPESパケットのデータが詰め込まれる。従って、最後のMultiplexing Unitを除き、全てのMultiplexing Unitは、2024バイト(=184×11バイト)のデータが格納される。
このように規定することで、TS2PS変換時に個々のパックのPES_packet_lengthや、stuffing_byteといったフィールドを予め決めておくことができる。
一つのビデオPESパケットのデータを格納した最後のMultiplexing Unitは、余ったデータ量をアダプテーションフィールドと、NULLパケットで埋め合わせ、1つの完全なMultiplexing Unitを構成しても良いし、データ転送の効率化(変換したMPEG−PSパックへの格納データ量を増やす目的)のために、次のPESパケットのデータを格納するようにしても良い。
ただし、DVDへの変換容易性を考えて、SESF Capsule内のIピクチャだけは、そのSESF Capsule内で先頭のビデオデータを格納するMultiplexing Unitの先頭TSパケットから配置される。
Pピクチャ、Bピクチャは、上記のように、Multiplexing Unitの先頭から配置されなくとも良い。
図65に図示したように、一つのビデオPESパケットを構成するMultiplexing Unitは、以下の3つの種類に分別が可能である。
PESパケットの先頭データを格納した最初のMultiplexing Unit(図中MU#1)と、PESパケットの途中部分のデータを格納したMultiplexing Unit(図中MU#n、ここで、n=2,3,・N-1)と、PESパケットの最後のデータを格納したMultiplexing Unit(図中MU#N)である。
それぞれの種類に応じて、TS2PS変換されたMPEG−PSストリームの各パックは、同図65(b)に示す構造になる。
MU#1から変換されたパックは、パック生成時に必ず10バイト以上の空きができるため、パディングパケットが最後に挿入される。
DVDフォーマットでは、パックに7バイト以下の空きができる時には、スタッフィングバイト(パケットヘッダの最後のフィールド)を2048バイトになるまで追加し、8バイト以上の空きができる時には、パディングパケットを挿入する決まりになっているためである。
また、MU#nから変換されたパックは、スタッフィングを1バイト足してパックを構成する。
また、MU#Nから変換されたパックは、通常、パック構成時の空き領域が8バイトよりも大きくパディングパケットが挿入されることになる。
<オーディオパック(A_PCK)への変換>
図66にConstained SESFからMPEG−PSへの変換を図示した。図66(a)に示したように、(1つ以上のオーディオフレームを格納する)一つのオーディオPESパケットは、1つのMultiplexing Unitよりも小さなサイズとなる。
一つのオーディオPESパケットは、一つのMultiplexing Unitに収まるため、ビデオPESパケットのように複雑な変換は必要ない。つまり、図66(b)に示したように、必ずパディングパケットが挿入されるパックが生成されるはずである。
また、PES_packet_lengthもTS2PS変換で変わることがないため、変換時に計算するのは、MPEG1−Audioを変換する際にstream_idを適宜設定したり、AC−3用のプライベートヘッダを生成したりする程度の簡単な処理のみである。
また、図に示したように、Constrained SESFのシステムエンコードを困難にする大きな要素であるオーディオデータの転送時間を、最小にすることで、バッファマネージメントを簡単にすることが可能である。
オーディオMultiplexing Unitの転送時間分は、ビデオデータやその他のPSI/SIパケットが転送できないため、全体の転送レートが下がってしまう課題(画質低下)と、この転送時間が長くなればなる程、その分ビデオデータをTS上では前倒しで転送する必要が出てくる課題(システムエンコードが複雑化)等の問題を引き起こすため、可能な限り短い時間で転送することが理想である。
言い換えれば、オーディオMultiplexing Unitを短い時間で転送するということは、オーディオの転送レートを上げるということであり、これは、T−STDとP−STDの大きな違いであった、オーディオの許容入力レートの差を減少させることにつながる。従って、2つのデコーダモデルに合致しなければならないConstrained SESFを生成することを容易にするという大きな利点がある。
図67に、Constrained SESFで許される各音声のビットレートと、その夫々ごとにAC−3とMPEG1−Audioを格納する場合に、1オーディオPESパケットに格納される最大ペイロード長を示した。ここに示すバイト長よりも大きなデータが1オーディオPESパケットに格納されることはないため、常にパディングパケットが挿入されることになる。
(PESパケットにおける制限)
整数個のオーディオフレームを含む整数個のPESパケットを、整数個のMultiplexing Unitに格納するようにして、変換後のMPEG−PSパックへの格納データ量を増やし、効率的に多重化しても良い。ただし、この場合、変換時のPTSの演算が問題となる。
DVD規格では、オーディオのPESパケットヘッダ内のPTSとして、そのPESパケット内で始まる最初のオーディオフレームのPTSを記述するように定められている。
TS2PS変換を行う際に、MPEG−PS(DVD)へ変換後にPESパケットの先頭になるオーディオフレームと、変換前のConstrained SESFで多重化されたPESパケットの先頭になるオーディオフレームが一致しないケースがある。そこで、本発明では、変換後のMPEG−PSのパックのPESパケット内で最初に始まるオーディオフレームが必ずPTSを持つようにConstrained SESFで多重化する。これにより、TS2PS変換時に、新たにPTSを演算して求める必要がなくなる。
したがって、Multplexing Unitの中で、最初に始まる完全なオーディオフレームは、Multplexing Unit内のPESパケットのペイロードの中で最初のオーディオフレーム(つまり必ずPTSが記述されたオーディオフレーム)とすることが有効である。そこで、本発明に係るConstrained SESFは、「Multplexing Unitの中で最初に始まる完全なオーディオフレームは、Multplexing Unit内のPESパケットのペイロードの中で最初のオーディオフレームとする」ことを規定する。なお、この規定は「Multiplexing Unitの中でフレーム先頭バイトが最初に始まるオーディオフレームは、Multiplexing Unit内のPESパケットのペイロードの中で最初のオーディオフレームとする」としてもよい。本規定による制約はConstrained SESFの制限の1つであるため、encode_conditionフラグを参照することにより、上記の規定を満たすか否かが判定できる。
図83Aは、上記規定を満たすConstrained SESFでフォーマットされたMPEG−TSと、それから変換されるMPEG−PSとを説明した図である。
PESパケット411、412、413のPESパケットヘッダには、それぞれ、各PESパケット411、412、413に含まれるオーディオフレームの中の最初のオーディオフレーム(AF#1、AF#5、AF#8)に対するPTS値(PTS#1、PTS#5、PTS#8)が含まれている。
最初のMultplexing Unit(401)には、PESパケット411の全てのデータとPESパケット412の途中までのデータとが含まれる。
最初のMultplexing Unit(401)において、そのMultplexing Unit(401)内の最初の完全なオーディオフレームはオーディオフレーム#1であり、これは、PESパケット411のペイロード内の最初のオーデオフレームとなっており、上記の規定を満たしている。また、第2番目のMultplexing Unit(402)に注目すると、Multplexing Unit(402)内の最初の完全なオーディオフレームはオーディオフレーム#8であり、これは、PESパケット413のペイロード内の最初のオーディオフレームとなっており、上記の規定を満たしている。なお、Multplexing Unit(402)は、PESパケットヘッダ直後にオーディオフレーム#7の後半部分を含んでいるが、それはオーディオフレームの一部であって完全なオーディオフレームではないため、上記規定を考慮する際の条件とはならない。
最初のMultplexing Unit(401)に含まれるPESパケット411のPESパケットヘッダには、それに続くオーディオフレーム(AF)の中の最初の完全なオーディオフレーム#1のPTSの値(PTS#1)が含まれる。また、第2番目のMultplexing Unit(402)には、それに続くオーディオフレーム(AF)中の最初の完全なオーディオフレーム#8のPTSの値(PTS#8)が含まれている。
第2番目のMultplexing Unit(402)を、MPEG−PSに変換するとき、変換先のMPEG−PS内のPESパケットヘッダには、Multplexing Unit(402)に含まれるPESパケットヘッダに格納されるPTSの値(PTS#8)がそのままコピーされる。このように、PS2TS変換時において、PTS値をそのままコピーするだけでよく、処理が簡略化される。
次にPESパケットにビデオデータが含まれる場合を説明する。Constrained SESFの制約の1つとして、ビデオデータを含むPESパケットに対し、「Iピクチャを格納したPESパケットは、Multplexing Unitの先頭から始まる」という制約を設けてもよい。
図83Bに上記規定を満たした例を示す。図83Bにおいて、PESパケット416はIピクチャを含み、そのPESパケットヘッダには、IピクチャのPTS値(PTS#2)が格納されている。そして、PESパケット416はMultplexing Unit(404)の先頭に配置されている。
変換後のMPEG−PSパックにおいて、PESパケットヘッダ421に格納されるPTS値(PTS#2)はその直後のIピクチャを指し示している。なお、Multplexing Unit(403)はPESパケット415のペイロードに含まれるPピクチャを格納し、その残りの部分にNULLパケットを挿入することにより、Iピクチャを次のMultplexing Unit(404)にアライメントしている。
Multplexing Unit(404)をMPEG−PSに変換する際には、MPEG−PSパックのPESパケットヘッダ421に、Multplexing Unit(404)内のPESパケットヘッダの値(PTS#2)がコピーされる。このようにPTS値はコピーされるだけでよいので、PTS値を演算して求める必要がなく、処理を簡略化できる。
(TS2PS変換処理)
図68から図79のフローチャートを用いてTS2PS変換処理の詳細を説明する。
図68はTS2PS変換のメインの処理を示したフローチャートである。本処理はユーザによりTS2PS変換のリクエストがあったときに開始される。まず、変換を開始する先頭のSESF Capsuleをシークする(S11)。そして、処理すべきSESF Capsuleが有るか否かを判断し(S12)、なければ処理を終了し、SESF Capsuleがあれば、初期化処理(S13)及びカプセル単位処理(S14)を行なう。
図69のフローチャートを用いて初期化処理(S13)について説明する。ここでは、その後の処理に使用される変数等の設定、初期化を行なう。まず、Tipパケットが読み込まれているか否かを判断し(S21)、未だTipパケットが読み込まれていなければ、Tipパケットを読み込む(S22)。変数ATSTipにTipパケットのATS値を代入する(S23)。変数PCRTipにTipパケットのPCR値を代入する(S24)。処理中のMultiplexing
Unitの番号を指定する変数MU_numを0に設定する(S25)。ATSの桁あふれの回数を示す変数WAを0に設定する(S26)。
図70のフローチャートを用いてカプセル単位処理(S14)について説明する。一つのTSパケットを読み込む(S31)。読み込んだTSパレットがTipパケットであるか否かを判断する(S32)。Tipパケットであれば処理を終了する。Tipパケットでなければ、読み込んだTSパケットがオーディオパケットまたはビデオパケットかを判断する(S33)。読み込んだTSパケットがオーディオパケットまたはビデオパケットでない場合、ステップS31に戻り、読み込んだTSパケットがオーディオパケットまたはビデオパケットになるまで順次TSパケットを読む(S31〜S33)。読み込んだTSパケットがオーディオパケットまたはビデオパケットであれば、その後に続く10個のTSパケットを読み込む(S34)。MU_numをインクリメントする(S35)。Multiplexing Unit先頭のTSパケットのATS値を、変数ATS[MU_num]に格納する(S36)。Multiplexing Unitに格納されたPESパケットのペイロードデータのバイト長をpayload_lenとする(S37)。そして、パック単位処理を行なう(S38)。
パック単位処理は図71のフローチャートに示すように、SCR演算処理(S41)、パックヘッダ処理(S42)、パケットヘッダ処理(S43)、ペイロード処理(S44)及びパディングパケット処理(S45)からなる。以下に各処理を詳細に説明する。
図72を用いてSCR演算処理を説明する。
ここでは、パックのSCR値を求めている。まず、変数MU_numの値を参照し、Cupsuleにおいて第1番目のMultiplexing Unitか否かを判断し、第1番目であれば、変数ATS[0]に変数ATSTipの値を、変数SCR[0]に変数PCRTipの値を代入する(S51〜S53)。
そして、ATS[MU_num]と、ATS[MU_num−1]とを比較する(S55)。ATS「i」には、Multiplexing Unit先頭のパケットのATS値が格納され、このATS値は、あるパケットを基準とした相対的な転送タイミングを示す値である。したがって、通常は、後のパケットのATS値は前のパケットのATS値よりも大きな値をとる。しかし、ATS値は一般に30ビットで表される有限な値であるため、桁あふれを起こす場合があり、このときは、後のパケットのATS値は前のパケットのATS値よりも小さくなる。ステップS54では、このATS値の逆転を見ており、これにより、桁あふれが発生したか否かを判断している。ATS[MU_num]がATS[MU_num−1]以下であれば、すなわち、桁あふれが発生していれば、変数WAをインクリメントする(S55)。
そして、SCR[MU_num]に、SCR[MU_num−1]+Tか、(PCRTIP+ATS[MU_num]−ATSTip+WA×BS)のいずれか大きい方を代入する(S56)。
図73を用いてパックヘッダ処理を説明する。
ここでは、図60に示すデータ構造を有するパックヘッダデータを編集する。SCR_extensionにSCRを300で除算したときの余りの値を代入する(S61)。SCR_baseにSCRを300で除算したときの商の値を代入する(S62)。program_mux_rateに「0x6270」を代入する(S63)。pack_stuffing_lengthに「000b」を代入する(S64)。その他のフィールドを編集し、パックヘッダデータを完成させる(S65)。
図74を用いてパケットヘッダ処理を説明する。
まず、ストリームIDを設定するストリームID処理を行なう(S71)。その後、Multiplexing Unitにビデオデータが含まれるか否かを判断する(S72)。
Multiplexing Unitにビデオデータが含まれる場合は、Multiplexing Unit先頭のTSパケットがPESパケットヘッダを含むか否かを判定する(S73)。Multiplexing Unit先頭のTSパケットがPESパケットヘッダを含む場合、Video PESパケット先頭処理を行ない(S74)、そうでない場合は、PESパケット非先頭処理を行なう(S75)。尚、Multiplexing Unit先頭のTSパケットがPESパケットヘッダを含むか否かは、TSパケットのヘッダのpayload_unit_start_indicatorを参照したり、直接、PESパケットヘッダのスタートコードが格納されているかを参照することで判定する。
一方、Multiplexing Unitにビデオデータが含まれない場合は、Multiplexing UnitにPESパケットヘッダを含むか否かを判定する(S76)。Multiplexing UnitがPESパケットヘッダを含む場合、オーディオPESパケット先頭処理を行ない(S77)、そうでない場合は、オーディオPESパケット非先頭処理を行なう(S78)。
図75を用いてストリームID処理を説明する。
ここでは、stream_idフィールドの値を設定する。処理中のストリームの種類が”MPEG2−video”であれば、stream_idに”0xE0”を設定する(S81、S82)。処理中のストリームの種類が”AC3−audio”であれば、stream_idに”0xBD”を設定する(S83、S84)。処理中のストリームの種類が”MPEG1−audio”で且つ”Primary audio”場合は、stream_idに”0xC0”を設定する(S85、S86、S87)。処理中のストリームの種類が”MPEG1−audio”で且つ”Secondary audio”場合は、stream_idに”0xC1”を設定する(S85、S88、S89)。
図76Aを用いてビデオPESパケット先頭処理を説明する。
図81はMPEG規格におけるPESパケットの構造を詳細に示した図であるが、本処理では同図の構造にしたがい各フィールドを編集する。
まず、Multiplexing Unit先頭のTSパケットに格納されたPESパケットヘッダと同一のPESパケットヘッダを、変換後のMPEG−PSのPESパケットヘッダとして生成する(S91)。次に、PES_packet_lengthに次式で計算した値を設定する(S92)。
PES_packet_length=
(3+PES_header_data_length)+payload_len
次に、PES_extension_flagが”1”か否かを判断し(S93)、PES_extension_flagが”1”のときは、PES_private_data_flagからP−STD_buffer_sizeまでの3バイトを所定値(”0x1E60E8”)で上書きする(S94)。
図76Bを用いてビデオPESパケット非先頭処理を説明する。
PESパケットヘッダに仮の値(”0x000001E007EC800001FF”)を設定する(S111)。(2025−payload_len)の値が1と8の間にあるか否かを判定する(S112)。
(2025−payload_len)の値が8以上であれば、ステップS116に進む。
(2025−payload_len)の値が1と8の間にあれば、PES_header_data_lengthを(2025−payload_len)に設定し(S113)、PES_packet_lengthに次式で計算した値を設定する(S114)。
PES_packet_length=
(3+PES_header_data_length)+payload_len
そして、stuffing_byteに、(2024−payload_len)バイトのスタッフィングバイトを設定し(S115)、ステップS116に進む。
ステップS116では、(2025−payload_len)の値が8以上か否かを判定する。8以上であれば、PES_header_data_lengthを0に設定し(S117)、PES_packet_lengthに次式で計算した値を設定する(S118)。
PES_packet_length=3+payload_len
そして、stuffing_byteから、1バイトのスタッフィングバイトを削除する(S119)。
図77Aを用いてオーディオPESパケット先頭処理について説明する。
まず、Multiplexing Unit内で最初に現れるPESパケットヘッダと同一のPESパケットヘッダを、変換後のMPEG−PSのPESパケットヘッダとして生成する(S181)。次に、PES_packet_lengthに次式で計算した値を設定する(S182)。
PES_packet_length=
(3+PES_header_data_length)+payload_len
次に、PES_extension_flagが”1”か否かを判断し(S183)、PES_extension_flagが”1”のときは、P−STD_buffer_flagに1を設定する(S184)。そして、オーディオデータがAC−3オーディオか否かを判断する(S185)。AC−3オーディオであれば、PES_extension_flag_2に続く2バイトを所定値(”0x603A”)に設定する(S186)。AC−3オーディオでなければ、PES_extension_flag_2に続く2バイトを所定値(”0x4020”)に設定する(S187)。
図77Bを用いてオーディオPESパケット非先頭処理について説明する。
stream_idが”0xBD”か否か、すなわち、オーディオデータがAC−3オーディオか否かを判定する(S191)。stream_idが”0xBD”であれば、PESパケットヘッダに仮の値”0x000001BD0000800004FFFFFFFF”を設定する(S192)。そして、PES_packet_lengthに次式で計算した値を設定する(S193)。
PES_packet_length=7+payload_len
一方、stream_idが”0xBD”でなければ、stream_idが”0xC0”か否か、すなわち、オーディオデータがMPEG−1プライマリオーディオか否かを判定する(S194)。MPEG−1プライマリオーディオであれば、PESパケットヘッダに仮の値”0x000001C00000800000”を設定する(S195)。MPEG−1プライマリオーディオでなければ、PESパケットヘッダに仮の値”0x000001C10000800000”を設定する(S196)。そして、PES_packet_lengthに次式で計算した値を設定する(S197)。
PES_packet_length=3+payload_len
図78を用いてペイロード処理を説明する。
変数iに1を設定する(S121)。i番目のTSパケットに格納されたPESパケットのペイロードデータを読み込む(S122)。i番目のTSパケットに格納されたPESパケットのペイロードデータをパックのペイロードに追加する(S123)。変数iをインクリメントする(S124)。上記処理を変数iが12を超えない範囲で繰り返す(S125)。すなわち、1つのMultiplexing Unitに含まれる全てのTSパケットについて上記の処理が行なわれるまで、処理が繰り返される(S122〜S125)。
図79を用いてパディングパケット処理を説明する。
PES_packet_lengthが2028か否かを判定する(S131)。PES_packet_lengthが2028でなければ、パディングパケットのPES_packet_lengthに{(2028−PES_packet_length)−6}を設定する(S132)。ペイロードに続けてパディングパケットを追加する(S133)。
上述のように変換したMPEG−2のPESパケットに記述されるPTSは、Multiplexing Unitの中で最初に現れたPESパケットヘッダを参照して設定することが可能である。(図83A、図83B参照)
尚、上記説明において、ビデオのPESパケットの長さを示すPES_packet_lengthが0であるために、パックへ変換した後のパケットヘッダ内PES_packet_lengthの算出がパックにデータが確定した後でなければ確定しない問題があったが、SESF capsule内のビデオPESパケットごとのPES_packet_lengthをTipパケットに記述するようにしても良い。その結果、PES_packet_lengthをTSパケット単位の逐次処理にて決定することが可能となり、変換がさらに高速に行えるようになる。
尚、上記説明において、パックヘッダ(SCR)をTS2PS変換時に生成するように説明したが、MPEG−TSに格納されるPESパケットヘッダにパックヘッダを予め格納しておいても良い。例えば、PESパケットヘッダのpack_header_field_flag=1bとして、PESパケットヘッダ内にTS2PS変換後のパックヘッダを格納しておき、該パックヘッダと同一のパックに格納されるデータは該TSパケットから所定の規則(例えば所定個数)までのTSパケットに格納されたデータがパックに格納されるとしても良い。
(一連続のSTC区間内におけるビデオピクチャの制限)
図84(a)に示したように、一連続のSTC(システムターゲットデコーダ基準時刻)区間内において、最初の完全なSESF Capsule内で最初に表示されるビデオピクチャ(Pf)がトップフィールドであり、最後の完全なSESF Capsule内で最後に表示されるビデオピクチャ(Pl)がボトムフィールドとなるようにしてもよい。図84(b)は、このルールを満たさないケースを示した図であり、最初の完全なSESF Capsule内で最初に表示されるビデオピクチャ(Pf)がボトムフィールドとなり、最後の完全なSESF Capsule内で最後に表示されるビデオピクチャ(Pl)がトップフィールドとなっている。
このように完全なSESF Capsule連続区間でビデオの表示形態に制限を設けるのは、DVD−VideoのVOBへの変換時に(記録したストリームへの編集が無ければ)、ビデオストリームの再エンコードを防ぐことができるためである。これはDVD−Video規格では、1VOB内のビデオは、トップフィールドから再生され、ボトムフィールドの再生で終わることが要求されているためである。
上記の制約はConstrained SESFの制限の1つであるため、encode_conditionフラグを参照することにより、上記の制約を満たすか否かが判定できる。すなわち、このフラグを参照することにより、一連続のSTC区間内において、最初の完全なSESF Capsule内で最初に表示されるビデオピクチャがトップフィールドであり、かつ最後の完全なSESF Capsule内で最後に表示されるビデオピクチャがボトムフィールドであるか否かが判定できる。
図85は、上記の制限を設けたConstrained SESFでの録画処理のフローチャートである。
最初に、一連続なSTCの生成を開始する(S201)。次に、事前に設定されたencode_conditionの値を取得する(S202)。encode_conditionの値は、ユーザや録画機器の初期設定等により事前に設定されている。encode_conditionが”11b”か否かを判断する(S203)。encode_conditionが”11b”(DVD−Videoモードでの録画)のとき、最初の完全なSESF Capsuleをエンコードしているか否かを判断する(S208)。最初の完全なSESF Capsuleをエンコードしている場合、最初の完全なSESF Capsule中の最初の表示ピクチャがトップフィールドとなるようにエンコードする(S209)。続いて、encode_conditionが”11b”のときの要求を満たすConstraind SESFとしてデータをエンコードする(S210)。
一方、encode_conditionが”01b”(DVD−Video Recordingモードでの録画)のとき、encode_conditionが”01b”のときの要求を満たすConstraind SESFとしてデータをエンコードする(S204)。
その後、SESF Capsuleが完成する度にタイムマップ情報を逐次追加する(S205)。録画終了か否かが判断され(S206)、終了であれば、録画終了処理を行う(S207)。終了するまで、上記ステップS203からS205が繰り返される。
図86を用いて録画終了処理を説明する。
encode_conditionが”11b”か否かを判断する(S211)。encode_conditionが”11b”のとき、最後の完全なSESF Capsule中の最後に表示されるピクチャがボトムピクチャか否かが判断される(S212)。ボトムピクチャでなければ、新規のSESFを作成し、または現在エンコード中のSESFを完成させ、最後がボトムピクチャで終わるようにエンコードする(S213)。
一方、encode_conditionが”11b”でなければ、encode_conditionが”01b”のときの要求を満たす、最後のSESF Capsuleを生成する(エンコードを停止する)(S214)。
その後、タイムマップ情報を完成させ、記録媒体に記録する(S215)。
尚、上記説明においてMPEG−PSからMPEG−TSへの逆変換については、説明していないが、TS2PS変換の逆として同様に考えることができる。
例えば、1PSパックを複数個の連続したTSパケットに変換し、その際に生成される複数個の連続したTSパケットのATSの増分を固定として、ディスク上もしくはストリームの内部にその情報を格納することも考えられる。
また、MPEG−PSのクリップの名称(コンテンツ内容を示す番組情報等)をSITパケット内に格納してMPEG−TSへ変換すると、STB等のデコーダで、元の番組名をメニュー表示すること等が可能となる。
以上に示した情報記録装置/方法では、外部入力されたAVデータをMPEGトランスポートストリーム形式にセルフエンコーディングする際に、デコーダ互換を保ちながら効率良く符号化/復号化処理を行うことが可能である。
また、情報記録媒体に記録されるストリームには、ユーザプライベート情報を格納することができるため、MPEGトランスポートストリーム形式の記録コンテンツの付加価値を高めることが可能である。
さらに、情報記録媒体に記録されるMPEG−TSは、MPEG−PSへの親和性が高くなるように2KB以下のブロック単位で多重化処理がなされるため、MPEG−TSをMPEG−PSに変換することが、バッファマネージメントを考慮することなく極めて容易に実現することができる。
また、以上説明した本発明に係るデータ処理は、コンピュータが所定のプログラムを実行することによって実現できることは言うまでもない。そのプログラムはフロッピーディスク、ハードディスク、CD−ROM、その他のコンピュータに読み取り可能な情報記録媒体に格納されることができる。
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願2003−106399号(2003年4月10日提出)に関連し、それらの内容は参照することにより本文中に組み入れられる。