以下、図面を参照してこの発明の一実施の形態に係るストリームデータの記録方法およびそのデータ構造などについて説明をする。
図1は、この発明の一実施の形態に係るストリームデータのデータ構造を説明する図である。図1には、情報媒体(たとえば相変化記録方式、光磁気記録方式などを利用した光ディスク)上に記録するストリームデータのデータ構造(階層構造)と、その構築経過を示している。
情報媒体上に記録されるストリームデータ(図1(f)のSTREAM.VRO106)は、ストリームデータ内の映像情報のコンテンツ毎に、ストリームオブジェクト(SOBと略記される)としてまとまって記録されている。図1では、そのうちの2個のストリームオブジェクトについて詳細に示され、それらはストリームオブジェクト#A(SOB#A)298とストリームオブジェクト#B(SOB#B)299で表現されている。図1には、STREAM.VRO106(SOB#A・298、SOB#B・299、…)を構成するデータと、それが構築されるまでの途中のデータ構造が示されている。
SOB#A・298は、図1(e)(g)に示すように、ストリームオブジェクトユニット(SOBUと略記される)51、52、…で構成される。同様に、SOB#B・299は、SOBU54、…、SOBU57、…で構成される。
各SOBUは、図1(d)(h)に示すように、複数のストリームパックで構成されている。ここでは、SOB#A・298のSOBU51がストリームパックNo.0、No.1、…No.31で構成され、SOB#A・298のSOBU52がストリームパックNo.32、No.33、…No.32n−1で構成された例を示している。
ストリームパックNo.0は、図1(c)に示すように、パックヘッダ1と、PESヘッダ&サブストリームID6と、ロングアプリケーションヘッダ11と、データエリア21とで構成されている。他のストリームパックも同様に構成される。ここで、ロングアプリケーションヘッダ11は記録媒体に記録が行われるときに付加されるものである。記録時には、図1(b)に示すように、データエリア21にはモディファイドタイムスタンプ(あるいはアプリケーションタイムスタンプ)およびアプリケーションパケットの組が1以上含まれる。
図1(b)のモディファイドタイムスタンプは、デジタル放送で送られてきたオリジナルタイムスタンプ(図1(a))を、記録装置用として付け直したものである。オリジナルタイムスタンプは、IEEE1394の規格に基いて送信するときのタイムスタンプである。図1(b)のアプリケーションパケットは、デジタル放送により送られてきたパケットそのものである。
次に、ストリームオブジェクト#B(SOB#B)299側について説明する。SOB#B・299のSOBU54は、図1(g)(h)に示すように、ストリームパックNo.32n、No.32n+1、…No.32n+15で構成され、SOB#B・299のSOBU57はストリームパックNo.32n+16、…No.32n+16mー2、パディングパック40で構成されている。
ストリームパックNo.32nは、図1(i)に示すように、パックヘッダ3と、PESヘッダ&サブストリームID8と、アプリケーションヘッダ(ショートアプリケーションヘッダ)13と、データエリア24とで構成されている。他のストリームパックも同様に構成できる。データエリア24には、図1(j)に示すように、タイムスタンプとアプリケーションパケットの組が1以上含まれる。
DVD−RAMディスクなどの記録媒体にストリームデータを記録する場合には、2048kバイト毎のセクタを最小単位として、記録が行われる。ストリームデータの記録フォーマット(データ構造)では、図1(d)、(h)に示すように、セクタ毎にストリームパックを構成している。ストリームパックは、図1(c)または図1(i)に示すように、パックヘッダ、PESヘッダ&サブストリームIDと、ロングアプリケーションヘッダまたはショートアプリケーションヘッダと、データエリアとで構成される。
つまり、各ストリームパックの先頭位置には、パックヘッダ1、2、3、4とそれに続くPESヘッダ&サブストリームID6、7、8、9が配置されている。また、実際のストリームデータが記録されているデータエリア21〜26と上記PESヘッダ&サブストリームID6〜9との間には、アプリケーションヘッダが配置されている。この発明の一実施の形態では、記録されるストリームデータの情報内容に応じて、このアプリケーションヘッダとして、ロングアプリケーションヘッダ11、12とショートアプリケーションヘッダ13、14との使い分けを行っている。
また、この発明の一実施の形態では、同一のストリームオブジェクト(SOB#A・298またはSOB#B・299)内では、全てのストリームパック内のアプリケーションヘッダのタイプ(ロングアプリケーションヘッダかショートアプリケーションヘッダか)が同一となっている。すなわち、図1(c)に示すようにSOB#A・298内では全てロングアプリケーションヘッダ11、12が使用され、図1(i)に示すようにSOB#B・299内では全てショートアプリケーションヘッダ13、14が使用されている。
ロングアプリケーションヘッダ11およびショートアプリケーションヘッダ13の詳細については、図7および図8を参照して後述する。
図1に戻って説明を続ける。図1(b)に示すように、デジタルTV放送を受信したときに得られたアプリケーションパケットdを情報媒体上に記録する場合、2個のストリームパックに分割記録することがある。これは、情報媒体の記録エリアを効率的に利用するためである。このときのアプリケーションパケットを部分アプリケーションパケットとして示している。この場合にはストリームパックNo.1のデータエリア22の開始位置には、部分アプリケーションパケットd2が配置記録される。
ストリームデータ再生時にストリームパックNo.1(図1(d))の情報から再生を開始する場合には、図示しないが、この部分アプリケーションパケットd2直後のモディファイドタイムスタンプ位置から再生開始する必要がある。したがって、再生装置の再生手段がこのモディファイドタイムスタンプに直接アクセス可能なように、ストリームパック内の最初に配置されたモディファイドタイムスタンプの先頭位置情報が、ロングアプリケーションヘッダ11あるいはショートアプリケーションヘッダ13内のフィールド325(図7、図8参照)に、バイト数で記録される。
この情報(ストリームパック内の最初に配置されたモディファイドタイムスタンプの先頭位置情報)と、モディファイドタイムスタンプのデータ長(図7、図8のフィールド322)の情報と、アプリケーションパケットのデータ長(図7、図8のフィールド323)の情報とから、図1(c)のデータエリア21内に記録されている所定番号のアプリケーションパケット位置を求めることができる。
図1(e)(g)に示すように、複数のストリームパックをまとめてストリームオブジェクトユニットSOBU51〜57が形成されている。図1に示した実施の形態では、SOB#A・298内の1個のSOBU51またはSOBU52は32個のストリームパック(セクタ)から構成され、SOB#B・299内の1個のSOBU54またはSOBU57は16個のストリームパック(セクタ)から構成されている。
最後のストリームパック内の最後に記録されたアプリケーションパケットf、z(図1(a)(j))の後ろには、図1(b)(j)に示すように、エンドコード31、32が記録される。これらのエンドコードの後ろには、全てが“1”または全てが“0”のデータで埋められたパディングエリア36、37が適宜設けられる。
ストリーム情報が最後に記録された最後のストリームパックがSOBU57の中央部に位置している場合には、同一SOBU57内でそれ以降のセクタは図1(h)に示すパディングパック40になる。
SOB#B・299内でストリームデータが記録されている範囲を示すため、SOB#B・299の開始/終了アプリケーションパケットがストリームパック内に存在することを示すフラグが、ショートアプリケーションヘッダ13内のフィールド327*、328*(図8参照)内に設けられる。
情報媒体上に記録されたアプリケーションパケットに対する検索情報としてモディファイドタイムスタンプ情報を用いて検索することができる。特に録画経過時間を利用して検索する場合、アプリケーションヘッダ内のフィールド329(図7、図8参照)に記述されているモディファイドタイムスタンプの基準クロック周波数の値が重要となる。そのため、この基準クロック周波数情報も、ロングアプリケーションヘッダ11およびショートアプリケーションヘッダ13内に記録されている。
図2は、この発明の一実施の形態に係るデータファイルのディレクトリ構造を説明する図である。図2を用いて、この発明の一実施の形態に係る情報媒体上に記録される情報の内容(ファイル構造)について説明する。
DVDーRAMディスク等の情報媒体に記録される情報は、各情報毎に階層ファイル構造を持っている。この実施の形態において説明される映像情報とストリームデータ情報は、DVD_RTRディレクトリ(またはDVD_RTAV)102と言う名のサブディレクトリ101内に入っている。
DVD_RTR(DVD_RTAV)ディレクトリ102内には、以下の内容のデータファイル103が格納される。すなわち、管理情報(ナビゲーションデータ)のグループとして、RTR.IFO(またはVR_MANGR.IFO)104と、STREAM.IFO(SR_MANGR.IFO/SR_MANGR.BUP)105と、SR_PRIVT.DAT/SR_PRIVT.BUP105aとが格納される。
また、データ本体(コンテンツ情報)として、STREAM.VRO(またはSR_TRANS.SRO)106と、RTR_MOV.VRO(VR_MOVIE.VRO)107と、RTR_STO.VRO(またはVR_STILL.VRO)108と、RTR_STA.VRO(またはVR_AUDIO.VRO)109とが格納される。
上記データファイル103を含むサブディレクトリ101の上位階層にあるルートディレクトリ100には、その他の情報を格納するサブディレクトリ110を設けることができる。このサブディレクトリの内容としては、ビデオプログラムを収めたビデオタイトルセットVIDEO_TS111、オーディオプログラムを収めたオーディオタイトルセットAUDIO_TS112、コンピュータデータ保存用のサブディレクトリ113等がある。
有線または無線のデータ通信経路上をパケット構造の形で伝送されたデータに対して、パケット構造を保持したまま情報媒体に記録したデータを、「ストリームデータ」と呼ぶ。そのストリームデータそのものはSTREAM.VRO(またはSR_TRANS.SRO)106と言うファイル名でまとめて記録される。そのストリームデータに対する管理情報が記録されているファイルが、STREAM.IFO(またはSR_MANGR.IFOとそのバックアップファイルSR_MANGR.BUP)105である。
また、VCR(VTR)あるいは従来TVなどで扱われるアナログ映像情報をMPEG2規格に基づきデジタル圧縮して記録されたファイルが、RTR_MOV.VRO(またはVR_MOVIE.VRO)107であり、アフターレコーディング音声あるいはバックグランド音声等を含む静止画像情報を集めたファイルがRTR_STO.VRO(またはVR_STILL.VRO)108であり、そのアフレコ音声情報ファイルがRTR_STA.VRO(またはVR_AUDIO.VRO)109である。
図3は、この発明の一実施の形態に係る情報媒体(DVD録再ディスク)上の記録データ構造(とくに管理情報の構造)を説明する図である。図3(a)の情報媒体201の内周方向202の端部と外周方向203の端部とで挟まれた領域には、図3(b)に示すように、リードインエリア204と、ファイルシステム情報が記録されているボリューム&ファイル構造情報206と、データエリア207と、リードアウトエリア205が存在する。リードインエリア204はエンボスおよび書替可能データゾーンで構成され、リードアウトエリア205は書替可能データゾーンで構成されている。データエリア207も書替可能データゾーンで構成されている。
データエリア207内は、図3(c)に示すように、コンピュータデータとオーディオ&ビデオデータとが混在記録可能となっている。この例では、コンピュータデータエリア208およびコンピュータデータエリア209の間に、オーディオ&ビデオデータエリア210が、挟まれる形態となっている。
オーディオ&ビデオデータエリア210内は、図3(d)に示すように、リアルタイムビデオ記録エリア221およびストリーム記録エリア222の混在記録が可能となっている。(リアルタイムビデオ記録エリア221あるいはストリーム記録エリア222の一方だけを使用することも可能である。)
図3(e)に示すように、リアルタイムビデオ記録エリア221には、図2に示された、RTRのナビゲーションデータRTR.IFO(VR_MANGR.IFO)104と、ムービーリアルタイムビデオオブジェクトRTR_MOV.VRO(VR_MOVIE.VRO)107と、スチルピクチャリアルタイムビデオオブジェクトRTR_STO.VRO(VR_STILL.VRO)108と、アフターレコーディング等のオーディオオブジェクトRTR_STA.VRO(VR_AUDIO.VRO)109とが記録される。
同じく図3(e)に示すように、ストリーム記録エリア222には、図2に示された、ストリーマのナビゲーションデータSTREAM.IFO(SR_MANGR.IFO/SR_MANGR.BUP)105と、トランスポートビットストリームデータSTREAM.VRO(SR_TRANS.VRO)106とが記録される。
なお、図3(d)(e)では図示しないが、ストリーム記録エリア222には、図2に示したアプリケーション固有のナビゲーションデータSR_PRIVT,DAT/SR_PRIVT.BUP105aを記録することもできる。このSR_PRIVT,DAT105aは、ストリーマに接続(供給)された個々のアプリケーションに固有のナビゲーションデータであり、ストリーマにより認識される必要のないデータである。
ストリームデータに関する管理情報であるSTREAM.IFO(またはSR_MANGR.IFO)105は、図3(f)〜(i)に示すようなデータ構造を有している。すなわち、図3(f)に示すように、STREAM.IFO(またはSR_MANGR.IFO)105は、ビデオマネージャ(VMGIまたはSTR_VMGI)231と、ストリームファイル情報テーブル(SFIT)232と、オリジナルPGC情報(ORG_PGCI)233と、ユーザ定義PGC情報テーブル(UD_PGCIT)234と、テキストデータマネージャ(TXTDT_MG)235と、製造者情報テーブル(MNFIT)またはアプリケーション固有のナビゲーションデータSR_PRIVT.DAT105aを管理するアプリケーションプライベートデータマネージャ(APDT_MG)236とで構成されている。
図3(f)のストリームファイル情報テーブル(SFIT)232は、図3(g)に示すように、ストリームファイル情報テーブル情報(SFITI)241と、1以上のストリームオブジェクト情報(SOBI)#A・242、#B・243、…と、オリジナルPGC情報一般情報271と、1以上のオリジナルセル情報#1・272、#2・273、…とを含むことができるようになっている。
図3(g)の各ストリームオブジェクト情報(たとえばSOBI#A・242)は、図3(h)に示すように、ストリームオブジェクト一般情報(SOBI_GI)251、タイムマップ情報252、その他を含むことができる。
また、図3(g)の各オリジナルセル情報(たとえば#1・272;後述するが図17で示されるSCIに対応)は、図3(h)に示すように、セルタイプ281(後述するが図17で示されるC_TYに対応)と、セルID282と、該当セル開始時間(図17で示されるSC_S_APATに対応)283と、該当セル終了時間(図17で示されるSC_E_APATに対応)284とを含むことができる。
図3(g)のSOBI#Aに含まれる図3(h)のタイムマップ情報252は、図3(i)に示すように、ストリームブロック番号261、第1ストリームブロックサイズ262、第1ストリームブロック時間差263、第2ストリームブロックサイズ264、第2ストリームブロック時間差265、…を含むことができる。
図4は、この発明におけるストリームオブジェクト(SOB)、セル、プログラムチェーン(PGC)等の間の関係を説明する図である。以下、図4の例示を用いてSOBとPGCの関係を説明する。
ストリームデータ(STREAM.VROまたはSR_TRANS.SRO)106内に記録されたストリームデータは、1個以上のECCブロックの集まりとしてストリームブロックを構成し、このストリームブロック単位で記録、部分消去処理等がなされる。このストリームデータは、記録する情報の内容毎(たとえばデジタル放送での番組毎)にストリームオブジェクトと言うまとまりを作る。STREAM.VRO(SR_TRANS.SRO)106内に記録されたストリームオブジェクト(SOB#A、SOB#B)毎の管理情報(オリジナルPGC情報233、ユーザ定義PGC情報テーブル234等)は、ナビゲーションデータSTREAM.IFO(SR_MANGR.IFO)105(図4の最下部および図3(e)(f)参照)内に記録されている。
図4の各ストリームオブジェクト#A・298、#B・299毎の管理情報(STREAM.IFO105)は、図3(f)(g)に示すように、ストリームファイル情報テーブル(SFIT)232内のストリームオブジェクト情報(SOBI)#A・242、#B・243として記録されている。ストリームオブジェクト情報(SOBI)#A・242、(SOBI)#B・243それぞれの内部は、主にストリームブロック毎のデータサイズおよび時間情報等が記載されているタイムマップ情報252を含んでいる。
ストリームデータの再生時には、1個以上のセルの連続で構成されるプログラムチェーン(PGC)の情報(後述する図17のPGCI#iに対応)が利用される。このPGCを構成するセルの設定順にしたがって、ストリームデータを再生することができる。PGCには、STREAM.VRO(SR_TRANS.SRO)106に記録された全ストリームデータを連続して再生することのできるオリジナルPGC290(図3(f)ではORG_PGCI・233)と、ユーザが再生したいと希望する場所と順番を任意に設定できるユーザ定義PGC#a・293、#b・296(図3(f)ではUD_PGCIT・234の中身に対応)の2種類が存在する。
オリジナルPGC290を構成するオリジナルセル#1・291、#2・292は、基本的にストリームオブジェクト#A・298、#B・299と一対一に対応して存在する。それに対して、ユーザ定義PGCを構成するユーザ定義セル#11・294、#12・295、#31・297は、1個のストリームオブジェクト#A・298または#B・299の範囲内では任意の位置を設定することができる。
なお、各ストリームブロックのセクタサイズは種々に設定可能であるが、好ましい実施の形態としては、図4のストリームブロック#1のように、2ECCブロック(32セクタ)で一定サイズ(64kバイト)のストリームオブジェクトユニット(SOBU)を、ストリームブロックとして採用するとよい。このようにストリームブロックを一定サイズ(たとえば2ECCブロック=32セクタ=64kバイト)のSOBUに固定すれば、次の利点が得られる:
(01)SOBU単位でストリームデータの消去あるいは書替を行っても、そのSOBUのECCブロックが、消去あるいは書替対象以外のSOBUのECCブロックに影響しない。そのため、消去あるいは書替に伴う(消去あるいは書替の対象でないSOBUに対する)ECCのデインターリーブ/インターリーブのやり直しが、生じない;
(02)任意のSOBU内部の記録情報に対するアクセス位置を、セクタ数(あるいはセクタ数に対応した他のパラメータ;たとえば後述する図15のストリームパックおよびその内部のアプリケーションパケット群の情報)で特定できる。たとえば、あるSOBU#kの中間位置にアクセスする場合は、SOBU#kー1とSOBU#kとの境界から16セクタ目(あるいは16セクタ目に対応するアプリケーションパケットの位置)を指定すればよい。
図5は、図1に示されるパックヘッダの内部構造を例示する図である。パックヘッダ1は例えば14バイトで構成されており、ここにはパック開始コード301、”01”コード、システムクロックリファレンスSCR303、多重化レート(例えば8Mbps)304、スタッフィング長305、およびスタッフィングバイト306のフィールドがあり、それぞれのフィールドに該当情報が記述されている。
ところで、ストリームオブジェクトSOBの記録中にストリーマに入ってくるアプリケーションパケットAP_PKTは、ストリーマ内部のローカル基準クロックによりタイムスタンプされる。このタイムスタンプで示される時間がアプリケーションパケット到着時間APATである。SOB内の最初のパックに対しては、ストリーマ内部のローカル基準クロック(図5のSCR303または後述する図15のSCRベースに対応)は、そのパック内で開始する最初のアプリケーションパケットのAPATに等しくなる。
図6は、図1に示されるPESヘッダ&サブストリームIDの内部構造を例示する図である。PESヘッダ&サブストリームID6は例えば6バイトで構成されており、ここにはパケット開始コード311、ストリームID312、”11”コード313、PES・CRCフラグ314、PES拡張フラグ316、PESヘッダ長316、サブストリームID317の各記述フィールドが存在する。
次に、ロングアプリケーションヘッダ11とショートアプリケーションヘッダ13の詳細について説明する。図7は、図1(c)に示されるロングアプリケーションヘッダ11(または12)の内部構造を例示する図である。また、図8は、図1(i)に示されるアプリケーションヘッダ/ショートアプリケーションヘッダ13(または14)の内部構造を例示する図である。
図7および図8の図示から分かるように、ロングアプリケーションヘッダ11内のデータ内容の一部がショートアプリケーションヘッダ13のデータ内容になっている。ストリームデータの内容に依存しない共通に必要な情報がショートアプリケーションヘッダ13内に含まれており、全てのストリームデータを情報媒体上に記録するときにストリームデータと一緒にこのショートアプリケーションヘッダ13の内容が記録される。
ところで、デジタルTV放送の映像情報は、一般にMPEG2を用いて情報圧縮されている。したがって、ストリームデータとしてデジタルTV映像情報を情報媒体上に記録した場合、再生時にはMPEG2固有の情報が必要となる。そこで、全てのストリームデータに共通なショートアプリケーションヘッダ13の情報にデジタルTV放送(MPEG2)の再生に必要な情報を付加した情報を、ロングアプリケーションヘッダ11に持たせている。
以下、図7および図8を参照して、ロングアプリケーションヘッダ11の情報内容およびショートアプリケーションヘッダ13内の情報内容について、具体的に説明する。以下の説明において、特に断りがない限り、同じ参照番号のフィールドは、ロングアプリケーションヘッダ11とショートアプリケーションヘッダ13との間で共通である。
アプリケーションヘッダ11、13は、その内部にロングアプリケーションヘッダ11の識別フラグを格納する1ビットフィールド326を持つ。この識別フラグが“1”のときはロングアプリケーションヘッダであることが示され、“0”のときはショートアプリケーションヘッダであることが示される。また、アプリケーションヘッダ11、13は、個々のストリームデータに対応したサービスID情報を格納するフィールド330も持つ。このID情報と別の場所に記録してあるサービス情報とのリンクをとることで、各ストリームデータ毎の固有のサービス情報を得ることができる。また、将来アプリケーションヘッダの情報内容を変更できるように、アプリケーションヘッダのバージョン番号がフィールド321に記録されている。
さらに、アプリケーションヘッダ11、13内には、モディファイドタイムスタンプのデータ長(バイト数)がフィールド322に記述される。またアプリケーションパケットのデータ長(バイト数)がフィールド323にバイト数で記述される。さらにストリームパケット内に存在するアプリケーションパケットの数がフィールド324に記述される。このアプリケーションパケット数は、ストリームパック内の最初に配置されたモディファイドタイムスタンプが指し示すアプリケーションパケットから数えた数である。さらにストリームパック内の最初に配置されたモディファイドタイムスタンプの先頭位置情報がフィールド325にバイト数で記述される。フィールド326には、ロングアプリケーションヘッダの識別フラグが記述される。
ここで、図8のフィールド327*にはSOB#B・299の開始アプリケーションパケットがストリームパック内に存在することを示すフラグが記述され、図8のフィールド328*にはSOB#B・299の終了アプリケーションパケットがストリームパック内に存在することを示すフラグが記述される。
同様に、図7のフィールド327にはSOB#A・298の開始アプリケーションパケットがストリームパック内に存在することを示すフラグが記述され、図7のフィールド328にはSOB#A・298の終了アプリケーションパケットがストリームパック内に存在することを示すフラグが記述される。
アプリケーションヘッダ11、13内のフィールド329には、モディファイドタイムスタンプの基準クロック周波数情報が記述される。
さらに、図7に示すロングアプリケーションヘッダ11内のフィールド331には、最大ビットレート情報が記述される。これはデータ溢れ量を制御するモデルのための出力ビットレートパラメータである。また、ロングアプリケーションヘッダ11内のフィールド332には、スムーズバッファサイズが記述される。これはデータ溢れ量を制御するモデル(ストリーマのスムージングバッファモデル)のためのバッファサイズパラメータ(バイト)である。
図7、図8ではモディファイドタイムスタンプ(図1(b)参照)のデータ長(フィールド322)、モディファイドタイムスタンプの基準クロック周波数(フィールド329)を例示したが、それに限らず、この発明の実施の形態によっては、タイムスタンプの付け直しを行わず、受信直後のタイムスタンプをそのまま情報媒体上に記録することも可能である。その場合には、通常のタイムスタンプのデータ長(フィールド322)および/または通常のタイムスタンプの基準クロック周波数(フィールド329)の情報を用いることができる。
上記スムージングバッファモデルとは、SOB内に記録されるアプリケーションデータの平均ビットレートおよび瞬間的な途切れを制限するために定義されたものである。パケットヘッダ、PESヘッダ、アプリケーションヘッダ、アプリケーションタイムスタンプ、およびスタッフィングを含む完全なパックデータは、このモデルのスムージングバッファに入る。このスムージングバッファからアプリケーションパケットを取り除くに際しては、該当アプリケーションパケットの先頭バイトと先行アプリケーションパケットの最終バイトとの間に格納された全てのデータバイトが、スムージングバッファから瞬間的に削除される。
MPEG2プログラムストリームをスムージングバッファに導入でき、かつアプリケーションタイムスタンプにより規定され正しく再構成された再生タイミングに基づいてその全てのアプリケーションパケットをスムージングバッファから取り除くことができるようにSOBが媒体(DVD−RAMディスクなど)に記録されるなら、それはストリーマのスムージングバッファモデルにより与えられた制限に従うものと解釈される。この制限は、スムージングバッファのサイズおよびMPEG2プログラムストリームの最大プログラム多重化レート(図5の304あるいは図15(e)のプログラム多重化レート)の最大値(10.08Mbps)に応じて定めることができる。
記録(録画)中に、パックを形成するに十分なアプリケーションデータがスムージングバッファ内に貯まれば、直ちに、パックをスムージングバッファからトラックバッファに転送できる。そのための条件は、(1)パックがアプリケーションパケットにより完全に埋められるか、(2)システムクロックリファレンスSCRとローカルクロック(27MHz)とのずれが所定のしきい値(秒数で表される時間値)を越えるかしたときに、満足される。
いま、先行パックのSCRをSCR_prevとしてみる。この場合、アプリケーションパケットの開始が含まれない後続パックに対しては、”SCR=SCR_prev+2048×8ビット/10.08MHz”の関係から、それらパックのSCRを求めることができる。
一方、アプリケーションパケットの開始を少なくとも1つ含む後続パックに対しては、”SCR=(SCR_prev+2048×8ビット/10.08MHz;あるいはAPAT[40…0])の最大値”から、それらパックのSCRを求めることができる。ここで、APATとは、該当パック内で開始する先頭アプリケーションパケットの到着時間を指す。
SOB内の最初のパックに対して、そのSCRはそのパック内で開始する先頭アプリケーションパケットのAPATと同じになる。このことを具体的に例示すれば、”SCR[40…0]=APAT[40…0]”となる。このSCR[40…0]の次のSCR[41]はゼロとなる。なお、SCR[40…0]の[40…0]はこのSCRを構成する情報ビット(40)〜(0)の内容を示し、APAT[40…0]の[40…0]はこのAPATを構成する情報ビット(40)〜(0)の内容を示す。同様に、SCR[41]の[41]はこのSCRを構成する情報ビット(41)の内容を示す。
ファームウエアのプログラミングで例示すれば、上述したことは、以下のように表現できる:
if (APAT[40...0] > (SCR_prev + 2048*8bits/10.08Mbps)), then
SCR[40...0] = APAT[40...0]
SCR[41] = 0
else
SCR[40...0] = (SCR_prev + 2048*8bits/10.08Mbps)[40...0]
SCR[41] = 0
endif
なお、再生中にスムージングバッファが満杯になれば、アプリケーションパケットを出力する処理を直ちに開始することができる。
図9は、この発明の一実施の形態に係るストリームデータ記録再生システム(光ディスク装置/ストリーマ、STB装置)の構成を説明する図である。この実施の形態では、情報媒体201として、DVD−RAMディスクのような記録/再生可能光ディスクを想定している。
このストリームデータ記録再生装置は、光ディスク装置(ストリーマ)415、STB装置416およびその周辺機器から構成される。周辺機器としては、ビデオミキシング部405、フレームメモリ部406、外部スピーカ433、パーソナルコンピュータ(PC)435、モニタTV437、D/Aコンバータ432、436、I/F部431、434等がある。
光ディスク装置415は、ディスクドライブを含む記録再生部409と、記録再生部409へのストリームデータ(あるいは記録再生部409からのストリームデータ)を処理するデータプロセサ部(以下D−PRO部と略記する)410と、D−PRO部410からオーバーフローしてきたストリームデータを一時記憶する一時記憶部(前述したスムージングバッファとして利用可能)411と、記録再生部409およびD−PRO部410の動作を制御する光ディスク装置制御部412とを備えている。
光ディスク装置415はさらに、STB装置416からIEEE1394等を介して送られてきたストリームデータを受ける(あるいはIEEE1394等を介してSTB装置416へストリームデータを送る)データ転送インターフェイス部414と、データ転送インターフェイス部414で受けたストリームデータを情報媒体(RAMディスク)201に記録する信号形式に変換する(あるいは媒体201から再生されたストリームデータをIEEE1394等の信号形式に変換する)フォーマッタ/デフォーマッタ部413とを備えている。
具体的には、データ転送インターフェイス部414のIEEE1394受信側は、基準クロック発生部(ローカルクロック)440のタイムカウント値に基づいて、ストリームデータ転送開始からの時間を読み込む。このタイムカウント値(時間情報)に基づいて、ストリームデータをストリームブロック毎(あるいはSOBU毎)に切り分ける区切れ情報を作成するとともに、この区切れ情報に対応したセルの切り分け情報およびプログラムの切り分け情報、さらにはPGCの切り分け情報を作成する。
フォーマッタ/デフォーマッタ部413は、STB装置416から送られてきたストリームデータをストリームパックの列に変換し、変換されたストリームパック列をD−PRO部410へ入力する。入力されたストリームパックはセクタと同じ2048バイトの一定サイズを持っている。D−PRO部410は、入力されたストリームパックを16セクタ毎にまとめてECCブロックにして、記録再生部409へ送る。
記録再生部409において媒体201への記録準備ができていない場合には、D−PRO部410は、記録データを一時記憶部411に転送して一時保存し、記録再生部409においてデータ記録準備ができるまで待つ。記録再生部409において記録準備ができた段階で、D−PRO部410は一時記憶部411に保存されたデータを記録再生部409に転送する。これにより、媒体201への記録が開始される。一時記憶部411に保存されたデータの記録が済むと、その続きのデータはフォーマッタ/デフォーマッタ部413からD−PRO部410へシームレスに転送されるようになっている。ここで、一時記憶部411は、高速アクセス可能で数分以上の記録データを保持できるようにするため、大容量メモリを想定している。
なお、フォーマッタ/デフォーマッタ部413を介して記録ビットストリームに付されるタイムスタンプ情報は、基準クロック発生部440から得ることができる。また、フォーマッタ/デフォーマッタ部413を介して再生ビットストリームから取り出されたタイムスタンプ情報(SCR)は、基準クロック発生部440にセットすることができる。
情報媒体201に記録されたストリームデータ内のパックヘッダには、基準クロック(システムクロックリファレンスSCR)が記録されている。この媒体201に記録されたストリームデータ(SOBまたはSOBU)を再生する場合において、基準クロック発生部440は、媒体201から再生された基準クロック(SCR)に適合される(SCRの値が基準クロック発生部440にセットされる)。つまり、SOBあるいはSOBUのデータを再生するために、ストリーマ(光ディスク装置415)内の基準クロック(基準クロック発生部440)を、再生が開始される最初のストリームパック内に記述されたシステムクロックリファレンスSCRに合わせる。その後は、基準クロック発生部440のカウントアップは自動的に行われる。
STB部416は、衛星アンテナ421で受信したデジタル放送電波の内容を復調し、1以上の番組が多重化された復調データ(ストリームデータ)を提供するデモジュレータ422と、デモジュレータ422で復調されたデータから(ユーザが希望する)特定番組の情報を選択する受信情報セレクタ部423とを備えている。受信情報セレクタ部423で選択された特定番組の情報(トランスポートパケット)を情報媒体201に記録する場合は、STB制御部404の指示に従い、セレクタ部423は特定番組のトランスポートパケットだけを含むストリームデータを、データ転送インターフェイス部420を介して、IEEE1394転送により、光ディスク装置415のデータ転送インターフェイス部414に送る。受信情報セレクタ部423で選択された特定番組の情報(トランスポートパケット)を記録することなく単に視聴するだけの場合は、STB制御部404の指示に従い、セレクタ部423は特定番組のトランスポートパケットだけを含むストリームデータを、デコーダ部402の多重化情報分離部425に送る。
一方、情報媒体201に記録された番組を再生する場合は、IEEE1394のシリアルバスを介して光ディスク装置415からSTB装置416に送られてきたストリームデータは、セレクタ部423を介してデコーダ部402の多重化情報分離部425に送られる。多重化情報分離部425は、セレクタ部423から送られてきたストリームデータに含まれる各種パケット(ビデオパケット、オーディオパケット、サブピクチャパケット等)を、内部メモリ部426上で、各パケットのIDにより区分けする。そして、区分けされたパケットを、それぞれ該当するデコード部(ビデオデコード部428、サブピクチャデコード部429、オーディオデコード部430に分配する。
ビデオデコード部428は、多重化情報分離部425から送られてきた(MPEGエンコードされた)ビデオパケットをデコードして、動画データを生成する。その際、MPEGビデオデータ中のIピクチャから記録内容を代表する縮小画像(サムネールピクチャ)を生成する機能を持たせるために、ビデオデコード部428は、代表画像(サムネール)生成部439を内蔵している。ビデオデコード部428でデコードされた動画(および/または生成部439で生成された代表画像)と、サブピクチャデコード部429でデコードされたサブピクチャ(字幕、メニュー等の情報)と、オーディオデコード部430でデコードされた音声とは、ビデオプロセサ部438を介してビデオミキシング部405へ送出される。
ビデオミキシング部405は、フレームメモリ部406を利用して、動画に字幕等を重ねたデジタル映像を作り出す。このデジタル映像は、D/A変換器436を介してアナログ映像化され、モニタTV437に送られる。また、ビデオミキシング部405からのデジタル映像は、I/F部434およびIEEE194等の信号ラインを介して、パーソナルコンピュータ435に適宜取り込まれる。一方、オーディオデコード部430でデコードされたデジタルオーディオ情報は、D/A変換器432および図示しないオーディオアンプを介して、外部スピーカ433に送られる。また、デコードされたオーディオ情報は、I/F部431を介して外部にデジタル出力される。なお、STB装置416内の動作タイミングは、システムタイムカウンタ(STC)部424からのクロックにより決定される。
上述したSTB制御部404による指示(STB装置416の内部構成各々の動作制御)等は、プログラムメモリ部404aに格納された制御プログラムにより実行される。その際、STB制御部404による制御過程においてワークメモリ部(RAM)407が適宜利用される。
図9に示すストリームデータ記録再生装置では光ディスク装置415とSTB装置416との間でデータ転送インターフェイス部414、420を介してストリームデータの転送処理が行われる。MPEG2の形式で圧縮されたデジタルTVの映像情報が間欠なく連続して転送されるために必要な情報として、データ転送インターフェイス部414と420間で情報転送するときの最大ビットレート(情報の最大転送速度)の情報がロングアプリケーションヘッダ11のフィールド327(図7)に記録されている。また、光ディスク装置415およびSTB装置416のデータ転送インターフェイス部414、420間でMPEG2映像情報のリアルタイム連続転送を保証するために必要な情報、すなわちデータ転送インターフェイス部414、420内部で持つ必要のあるメモリサイズが、スムーズバッファサイズとして、図7のフィールド332に記録されている。
このSTB制御部404およびデコーダ部402を含めSTB装置416の内部動作のタイミングは、STC部424からのクロックで規制できる。また、光ディスク装置415の基準クロック発生部440とSTB装置416のSTC部424を同期させることで、光ディスク装置415およびSTB装置416を含めたストリーマシステム全体の動作タイミングを規制できる。
基準クロック発生部440とSTC部424を同期させる方法としては、データ転送インターフェイス部414とデータ転送インターフェイス部420との間で受け渡されるストリームデータ中の基準クロック(SCR)により、基準クロック発生部440およびSTC部424をセットする方法がある。
具体的には、STB装置416から光ディスク装置(ストリーマ)415に送られてくるストリームデータに含まれるSOB内の最初のパックに対して、ストリーマ415内部のローカル基準クロック(440)を、そのパック内で開始する最初のアプリケーションパケットのAPATに設定することになる。
図19の装置構成を機能別にみると、STB装置416内は、「受信時刻管理部」と、「ストリームデータ内容解析部」と、「ストリームデータ転送部」と、「時間関連情報生成部」とに分割/分類できる。
ここで、「受信時刻管理部」は、デモジュレータ(復調部)422、受信情報セレクタ部423、多重化情報分離部425、STB制御部404等で構成される。この「受信時刻管理部」は、衛星アンテナ421でデジタルTV放送を受信し、受信した放送情報内の各トランスポートパケット毎の受信時刻を記録する。
「ストリームデータ内容解析部」は、多重化情報分離部425、STB制御部404等で構成される。この「ストリームデータ内容解析部」は、受信したストリームデータの中身を解析し、I,B,Pの各ピクチャ位置および/またはPTS(プレゼンテーションタイムスタンプ)値を抽出する。
「ストリームデータ転送部」は、多重化情報分離部425、受信情報セレクタ部423、STB制御部404、データ転送インターフェイス部420等で構成される。この「ストリームデータ転送部」は、各トランスポートパケット毎の差分受信時刻間隔を保持したままストリームデータを光ディスク装置415へ転送する。
「時間関連情報生成部」は、多重化情報分離部425、STB制御部404、データ転送インターフェイス部420等で構成される。この「時間関連情報生成部」は、「受信時刻管理部」で記録した受信時刻(タイムスタンプ)情報と「ストリームデータ内容解析部」で抽出した表示時刻情報(PTS値および/またはフィールド数)との間の関係情報を作成する。
この発明の一実施の形態では、STB装置416で取り込まれたアプリケーションパケット(トランスポートパケット)間の時間間隔を保持したままディスク201に記録可能とし、受信時の各パケット間の時間間隔を保持したまま再生(STB装置へ光ディスク装置から送信)可能としている。ただし、この場合、STB装置416内の基準クロック周波数(STC424)と、光ディスク装置415内の基準クロック周波数(ローカルクロック440)とが異なるために、光ディスク装置415で記録する前にタイムスタンプの付け直しを行い、光ディスク装置415内のクロックをパックヘッダに記録するようにしている。これにより、再生時には、受信時の各パケット間の時間間隔を保持したまま光ディスク装置415からSTB装置416へアプリケーションパケットを送信することが可能となる。その結果、STB装置416では、データ転送インターフェイス部420および受信情報セレクタ部423を通して多重化情報分離部425に取り込まれたアプリケーションパケットは、衛星アンテナ421を通じて取り込まれたときと同様な処理でデコード可能となる。
すなわち、先に説明した「受信時刻管理部」が機能し、アプリケーションパケットの受信時刻(取り込み時刻)およびアプリケーションパケットが多重情報分離部425のメモリ部426に取り込まれる。次に「ストリームデータ内容解析部」ではメモリ部426に記憶されているアプリケーションパケット内の情報を解析し、そのヘッダであるトランスポートパケットヘッダ、ペイロードを認識する(図14参照)。ペイロードの種類としては、ピクチャ情報、オーディオ情報、副映像情報、さらにはデータ、テキスト情報なども含まれる。それぞれの情報には、PTS(プレゼンテーションタイムスタンプまたは再生タイムスタンプ)が付加されている。トランスポートパケットヘッダには、追随するペイロードがどのようなデータであるかの識別情報や各種の属性情報が含まれているので、この情報にしたがって、ピクチャ情報、オーディオ情報、副映像情報などの切り出し、それぞれの情報に対応するPTSの抽出が行われる。
各情報は、それぞれ対応するビデオデコード部428、オーディオデコード部430、サブピクチャデコード部429に入力されデコードされる。ビデオデコード部428からのビデオ信号と、サブピクチャデコード部429からの副映像信号とは、ビデオプロセッサ部438に入力される。ビデオプロセッサ部438では、デコードされたビデオ信号と副映像信号との合成処理、その他ビデオ信号に必要な処理が行なわれる。ビデオプロセッサ部438からの出力ビデオ信号は、ビデオミキシング部405を介してデジタルアナログ変換部436に入力され、ここでアナログ信号となり、テレビジョン受像機437でモニタされる。
ビデオミキシング部405には、フレームメモリ部406が接続されており、ミキシング処理のときの一時保管部として利用される。またミキシング部405のデジタル出力(映像、副映像、オーディオを含む)は、インターフェイス434を介してパーソナルコンピュータ435に与えることもできる。オーディオデコード部430の出力は、インターフェイス部431を介してデジタル出力として取り出すことができる。またオーディオデータは、デジタルアナログ変換部432を介してアナログ信号に変換されスピーカ433に入力される。
上述したように、図9の装置では、受信時の各パケット間の時間間隔を保持したまま再生(光ディスク装置からSTB装置への送信)可能としている。このことは、しかしながら、記録媒体201に対する物理的記録箇所が間欠的にならないことを意味するものではない。場合によっては、物理的な記録箇所が間隔を有することもあるが、基本的には連続的に記録される。しかし、上述したようにパケット間には時間間隔が時間情報上で存在するので、記録媒体からのデータ再生量がSTB装置の単位時間当たりのデータ処理量よりも多くなることがある。この場合には、光ディスク装置のキックバック機能が働くようになっており、取り込んだ再生データの一部を破棄し、再度、記憶媒体201から読み取るようになっている。これにより、アプリケーションパケットは、アンテナより受信したときと同様なタイミングでSTB装置へ伝送される。
図10は、この発明の一実施の形態に係るストリームデータ記録手順を説明するフローチャート図である。まず、図9のSTB装置416においてデジタルTV放送の映像情報が受信される(ステップS1)。一般にデジタルTV放送での受信情報は、1個のトランスポンダ内に複数番組情報が時分割多重化されている。その情報に対して、受信情報セレクタ部423内で、特定番組のみのアプリケーションパケットが抽出される。
図9の説明で述べた「受信時刻管理部」では、必要な番組情報が多重化情報分離部425内のメモリ部426内に一時保管される。これと同時に、「受信時刻管理部」では各アプリケーションパケット毎の受信時刻が計測され、その計測値が、図1(a)に示したようなオリジナルタイムスタンプとして各アプリケーションパケット毎に付加される(ステップS2)。ここで、オリジナルタイムスタンプは、IEEE1394の規格に基いてデータ伝送するとき(各アプリケーションパケットを伝送するとき)のタイムスタンプである。このように付加されたオリジナルタイムスタンプ情報は、メモリ部426内に記録される。
次に、図9の説明で述べた「ストリームデータ内容解析部」では、メモリ部426内に記録されたアプリケーションパケット内の情報が解析される。具体的には、アプリケーションパケット列から各ピクチャ境界位置を切り出す処理と、PTS(プレゼンテーションタイムスタンプ)情報の抽出処理とが行なわれる。また、「ストリームデータ内容解析部」では、ストリームデータ内容からデジタルTV放送の映像情報であるか否かの判定も行なわれる。以上の処理が行なわれたあと、オリジナルタイムスタンプのタイミングに合わせてストリームデータがデータ転送インターフェイス部420に転送される。
データ転送インターフェイス部414とデータ転送インターフェイス部420との間でストリームデータを転送するとき、このデータ転送と同時に、データ転送インターフェイス部414内部で発生させたデジタルTV映像情報識別フラグが添付されて転送される(ステップS3)。
光ディスク装置415側では、データ転送インターフェイス部414から出力された各アプリケーションパケットに対して、装置内部の基準クロック発生部440で生成する基準クロックに合わせて、タイムスタンプの付け替え(モディファイドタイムスタンプの付け直し)が行なわれる(ステップS4)。
このタイムスタンプの付け替えにより、STB装置416から光ディスク装置(ストリーマ)415に送られてくるストリームデータに含まれるストリームオブジェクトSOB内の最初のパックに対して、ストリーマ415内部のローカル基準クロック(440)を、そのパック内で開始する最初のアプリケーションパケットのAPATに設定することになる。換言すれば、SOBの記録中にストリーマに入ってくるアプリケーションパケットAP_PKTは、ストリーマ内部のローカル基準クロックによりタイムスタンプされ(このタイムスタンプで示される時間がアプリケーションパケット到着時間APAT)、SOB内の最初のパックに対しては、ストリーマ内部のローカル基準クロック(図5のSCR303または後述する図15のSCRベースに対応)は、そのパック内で開始する最初のアプリケーションパケットのAPATに等しくなる。
上記ステップS4のタイムスタンプ付け替え処理と並行して、光ディスク装置制御部415ではデジタルTV映像情報識別フラグが認識され、図1(c)または図7で示されたロングアプリケーションヘッダ11の設定が行なわれる(ステップS5)。
ストリームデータを情報媒体201上に記録する処理においては、図9のD−PRO(デジタルプロセッサ)部410がデータ制御を行い、記録再生部409が動作する(ステップS6〜ステップS9)。このときは、図1(c)に示すように、各セクタ毎に、順次パックヘッダ1、PESヘッダ&サブストリームID6、ロングアプリケーションヘッダ11が記録され、データエリア21内では順次モディファイドタイムスタンプおよびアプリケーションパケットが記録されて行く。
ここで、パックヘッダ1には図5に示すSCR303(後述する図15のSCRベースに対応)が記録されている。情報媒体201にストリームデータを記録するときの時刻情報として基準クロック発生部440から出力されたクロックのカウント値が、このSCR情報として記録される。
ステップS6〜ステップS9の中身をより具体的に説明すると、まずD−PRO部410を介して記録再生部409でストリームパック(セクタ)毎にパックヘッダが情報媒体に記録される(ステップS6)。次に、D−PRO部410を介して記録再生部409でストリームパック(セクタ)毎にPESヘッダ&サブストリームIDが情報媒体に記録される(ステップS7)。続いて、D−PRO部410を介して記録再生部409でストリームパック(セクタ)毎にロングアプリケーションヘッダが情報媒体に記録される(ステップS8)。そして、D−PRO部410を介して記録再生部409でストリームパック(セクタ)毎にモディファイドタイムスタンプおよびアプリケーションパケットが情報媒体に記録される(ステップS7)。
以上の処理により、図9の光ディスク装置(またはストリーマ)415内では、基準クロック発生部440からの基準クロックを用いて作成した時間情報(モディファイドタイムスタンプ/SCR)を、データの送出/転送のタイミングを得るための情報として利用できるようになる。
以上の処理を別の言葉で表現すると、以下のようになる。すなわち、情報媒体上にストリームデータを記録する場合において、前記ストリームデータを記録する第1の記録単位(ストリームパック/セクタ)および第2の記録単位(アプリケーションパケット)が用意される。そして、前記第1の記録単位(ストリームパック/セクタ)毎に第1のヘッダ(パックヘッダ)情報が記録され、前記第2の記録単位(アプリケーションパケット)毎に時間情報(タイムスタンプ)が記録され、前記第2の記録単位(アプリケーションパケット)毎に前記ストリームデータが記録される。また、前記第1のヘッダ(パックヘッダ)情報内に所定のシステムクロック情報が記録されるとともに、前記第2の記録単位(アプリケーションパケット)毎に記録される前記時間情報(タイムスタンプ)が、前記所定のシステムクロックの値に連動して設定される(ステップS4)。
図11は、この発明の一実施の形態に係るストリームデータ再生手順を説明するフローチャート図である。この再生手順において、まずパックヘッダ1から再生が開始される(ステップS31)。
パックヘッダ1にはストリームデータを記録するときの時刻情報として基準クロック発生部440から出力されたクロックのカウント値が記録されており、その値に合わせて基準クロック発生部440の初期値の再設定が行なわれる(ステップS32)。
その直後に、図9の情報再生部409で、情報媒体201上に記録されたタイムスタンプおよびアプリケーションパケットが再生され、その再生データが一時記憶部411に一時保管される(ステップS33)。
情報媒体201に記録されたモディファイドタイムスタンプは、前述したSCR303に連動して設定されている。このことから、基準クロック発生部440から発生した基準クロックのカウント値がモディファイドタイムスタンプの値に一致したときに、一時記憶部411内に一時記録されたモディファイドタイムスタンプとそれに関連したアプリケーションパケットがデータ転送インターフェイス部414に転送される(ステップS34)。
データ転送インターフェイス部414内部では、その内部に持っている基準クロックに合わせてタイムスタンプ値が付け直されて、一時記憶部411から転送されてきた情報がデータ転送インターフェイス部420に転送される。
ところで、情報媒体201上に点在記録されたストリームデータを記録再生部409内の光学ヘッド(図示せず)がアクセスして再生する場合、モディファイドタイムスタンプの連続性が崩れる。そこで、情報媒体201上に点在記録されたストリームデータに光学ヘッドがアクセスし(ステップS35)、情報媒体上の大きく離れた位置で再生開始する場合には、次のような処理が行われる。すなわち、図9の記録再生部409で情報媒体201上に記録されたパックヘッダからSCR303が再生され(ステップS36)、再生されたSCRの値に合わせて基準クロック発生部440の値が再設定される(ステップS37)。
このような処理により、基準クロック発生部440から得られるSCRの値が、再生されるパケットのタイムスタンプに同期可能な関係になる。この同期関係が確立されてから、情報再生部409において、情報媒体上に記録されたタイムスタンプおよびアプリケーションパケットが再生される(ステップS38)。最後に、基準クロック発生部440から発生した基準クロックのカウント値がモディファイドタイムスタンプの値に一致したときに、一時記憶部411内に一時記録されたモディファイドタイムスタンプとそれに関連したアプリケーションパケットがデータ転送インターフェイス部414に転送される(ステップS39)。
データ転送インターフェイス部414に転送された再生情報はIEEE1394ライン等を介してSTB装置416に送られ、そこで必要なデコードが行われる。デコードされた情報(媒体201上の記録コンテンツ)は、図9のTV437、スピーカ433等により再生される。
以上の処理を別の言葉で表現すると、以下のようになる。すなわち、記録されたビットストリームに対する再生データを表すストリームオブジェクト(SOB)が1以上集まってストリームデータが構成され、前記ストリームオブジェクト(SOB)が1以上のストリームパック(S_PCK)で構成され、前記ストリームパック(S_PCK)はパックヘッダとストリームパケット(S_PKT)とで構成され、前記パックヘッダが所定の時間情報(SCR)を含み、前記ストリームパケット(S_PKT)が所定のタイムスタンプ(ATS)が付されたアプリケーションパケット(AP_PKT)を1以上含み、(ストリーマに)入ってくる前記アプリケーションパケット(AP_PKT)が前記所定の時間情報(SCR)に対応した(ストリーマ内部の)ローカル基準クロック(図9の440)によりタイムスタンプされ、前記タイムスタンプの情報が前記ストリームパック(S_PCK)内に記録された形式で前記ストリームオブジェクト(SOB)が記録された情報媒体(201)から記録情報を再生する場合において、
前記情報媒体(201)から再生された前記ローカル基準クロック(図5のSCR303、図15のSCRベース)に基づいて再生用の基準クロックが設定され(ステップS37)、前記設定された再生用の基準クロック(SCR)に基づいて、前記情報媒体(201)から前記ビットストリームの内容が再される。
以上の処理をさらに別の言葉で表現すると、以下のようになる。すなわち、第1の記録単位(ストリームパック/セクタ)毎にシステムクロック情報が記録されている第1のヘッダ(パックヘッダ)情報と、第2の記録単位(アプリケーションパケット)毎に記録されているストリームデータと、前記第2の記録単位(アプリケーションパケット)毎に記録されている時間情報(タイムスタンプ)とを有したビットストリーム情報が記録された媒体から記録情報を再生する場合において、
前記第1のヘッダ(パックヘッダ)情報内から前記システムクロック情報が再生され(ステップS36)、前記再生したシステムクロック情報から基準クロックが再設定され(ステップS37)、前記第2の記録単位(アプリケーションパケット)毎に記録されている時間情報(タイムスタンプ)が再生され(ステップS38)、前記再設定した基準クロックを基に前記再生した時間情報(タイムスタンプ)に応じて前記媒体に記録されたビットストリーム情報の内容が出力される(ステップS39)。
図12は、この発明の他の実施の形態に係る記録再生システム(光ディスク装置とSTB装置とが一体化されたストリームデータ記録再生装置)の構成を説明する図である。
この実施の形態におけるストリームデータ記録再生装置は、エンコーダ部401、デコーダ部402、STB部403、メインMPU404、V(ビデオ)ミキシング部405、フレームメモリ部406、キー入力部457、表示部458、情報媒体(DVD−RAMディスク等)201に対して情報記録あるいは情報再生を行なう記録再生部(ディスクドライブ部)409、データプロセサ(D−PRO)部410、一時記憶部411、A/V(オーディオ・ビデオ)入力部442、TVチューナ部443を備えている。また、デジタルTVの映像情報以外に、例えばMPEG4で圧縮されたTV電話の映像情報あるいはMD(ミディディスク)もしくはCD(コンパクトディスク)などのデジタルオーディオ情報などを入力し、ストリームデータとして情報媒体201上に記録することも可能とするために、デジタル信号入力部441を備えている。
このストリームデータ記録再生装置はさらに、STB部403に接続された衛星アンテナ421、システムタイムカウンタ(STC)部424、ビデオミキシング部(Vミキシング部)405からパーソナルコンピュータ(PC)435へデジタルビデオ信号を送るインターフェイス(I/F)434、アナログTV437用D/A変換部436を備えている。
ここで、Vミキシング部405は、デコーダ部402のV−PRO部438からのデジタルビデオ信号と、STB部403からのデジタルビデオ信号453とを、適宜ミキシングする機能を持っている。このミキシング機能により、たとえばTV437の表示画面の左側にSTB部403からの放送画像を表示し、TV437の表示画面の右側にディスク201から再生した画像を表示することができる。あるいは、STB部403からの放送画像とディスク201からの再生画像とを、PC435のモニタ画面において、オーバーラッピングウインドウに重ねて表示することもできる。
以上の構成において、エンコーダ部401内は、ビデオおよびオーディオ用のA/D変換部444、A/D変換部444からのデジタルビデオ信号、STB部403からのデジタルビデオ信号453あるいはデジタル信号入力部441からのデジタル信号を選択してビデオエンコード部446に送るセレクタ445、セレクタ445からのビデオ信号をエンコードするビデオエンコード部446、A/D変換部444からのオーディオ信号をエンコードするオーディオエンコード部447、TVチューナ部443からのクローズドキャプション(cc)信号あるいは文字放送信号等を副映像(SP)にエンコードするSPエンコード部448、フォーマッタ部449、一時的にデータを格納するためのバッファメモリ部450より構成される。
一方、デコーダ部402内は、メモリ426を内蔵する分離部425、縮小画像(サムネールピクチャ)生成部439を内蔵するビデオデコード部428、SPデコード部429、オーディオデコード部430、TSパケット(トランスポートパケット)転送部427、ビデオプロセサ(V−PRO)部438、オーディオ用D/A変換部432より構成されている。
オーディオデコード部430でデコードされたデジタルオーディオ信号は、インターフェイス(I/F)431を介して外部出力可能となっている。また、このデジタルオーディオ信号をD/A変換部432でアナログ化したアナログオーディオ信号により、外部のオーディオアンプ(図示せず)を介してスピーカ433が駆動されるようになっている。D/A変換部432は、オーディオデコード部430からのデジタルオーディオ信号のみならず、STB部403からのデジタルオーディオ信号452のD/A変換もできるように構成される。
なお、ディスク201からの再生データをSTB部403に転送する場合は、TSパケット転送部427において分離部425からの再生データ(ビットストリーム)をトランスポートパケット(TSパケット)に変更し、STC424からの時間情報に転送時間を合わせて、TSパケットをSTB部403に送ればよい。
図12のメインMPU404は、作業用メモリとしてのワークRAM454aと、ストリームデータ作成制御部454bという名の制御プログラムと、ストリームデータ再生制御部454cという名の制御プログラムと、ストリームデータの部分消去/仮消去制御部454dという名の制御プログラム等を含んでいる。ストリームデータ記録再生装置における録画時の制御は、上記制御プログラム(シーケンシャルな制御プログラム)を用いメインMPU404により行われる。
ここで、ファイルの管理領域(図2あるいは図3(e)のナビゲーションRTR.IFO104、STREAM.IFO105)などを読み書きするために、メインMPU404は、D−PRO部410に、専用のマイクロコンピュータバスを介して接続されている。
まず、図12の装置における録画時のビデオ信号の流れについて説明をする。録画時には、メインMPU404内のストリームデータ作成制御部454bという名のシーケンシャルプログラムにしたがって、一連の処理が行われる。すなわち、IEEE1394規格に準拠した伝送経路経由してSTB部403からエンコーダ部401へ送出されたストリームデータは、まずフォーマッタ部449に転送される。フォーマッタ部449のIEEE1394受信側は、STC424のタイムカウント値に基づいて、ストリームデータ転送開始からの時間を読み込む。読み込んだ時間情報は、管理情報としてメインMPU404へ送られ、ワークRAM部454aに保存される。
メインMPU404は、上記時間情報に基づいて、ストリームデータをストリームブロック毎(ビデオレコーダではVOBU毎、ストリーマではSOBU毎)に切り分ける区切れ情報を作成するとともに、この区切れ情報に対応したセルの切り分け情報およびプログラムの切り分け情報、さらにはPGCの切り分け情報を作成し、メインMPU404内のワークRAM部454aに逐次記録する。
フォーマッタ部449は、メインMPU404のストリームデータ作成制御部454bからの指示にしたがって、STB部403から送られてきたストリームデータをストリームパックの列に変換し、変換されたストリームパック列をD−PRO部410へ入力する。入力されたストリームパックはセクタと同じ2048バイトの一定サイズを持っている。D−PRO部410は、入力されたストリームパックを16セクタ毎にまとめてECCブロックにして、ディスクドライブ部409へ送る。ディスクドライブ部409では、データ記録を行なうに適した変調処理が施され、図示しない光学ヘッドを介して媒体201へ記録が行われるようになっている。
ディスクドライブ部409においてDVD−RAMディスク(情報媒体)201への記録準備ができていない場合には、D−PRO部410は、記録データを一時記憶部411に転送して一時保存し、ディスクドライブ部409においてデータ記録準備ができるまで待つ。ディスクドライブ部409において記録準備ができた段階で、D−PRO部410は一時記憶部411に保存されたデータをディスクドライブ部409に転送する。これにより、ディスク201への記録が開始される。一時記憶部411に保存されたデータの記録が済むと、その続きのデータはフォーマッタ部449からD−PRO部410へシームレスに転送されるようになっている。ここで、一時記憶部411は、高速アクセス可能で数分以上の記録データを保持できるようにするため、大容量メモリを想定している。
次に、再生時のデータ処理について説明する。ストリームデータ記録再生装置における再生時の制御は、ストリームデータ再生制御部454cという名のシーケンシャルプログラムにしたがい、メインMPU404によって、一連の処理が行われる。まず、ディスクドライブ部409により、RAMディスク(情報媒体)201からストリームデータが再生される。再生されたストリームデータは、D−PRO部409を経由してデコーダ部402に転送される。
デコーダ部402内部では、再生されたストリームデータ中のトランスポートパケットを分離部425が受け取る。分離部425は、ストリームID/サブストリームIDに従って、ビデオパケットデータ(MPEGビデオデータ)はビデオデコード部428へ転送し、オーディオパケットデータはオーディオデコード部430へ転送し、副映像パケットデータはSPデコード部429へ転送する。
ビデオデコード部428でデコードされたビデオデータは、Vミキシング部405およびD/A変換部436を介してアナログTV信号に変換され、TV437に転送されて画像表示される。同時に、オーディオデコード部430でデコードされたオーディオ信号もD/A変換部432へ送られ、デジタル音声データに変換される。変換されたデジタル音声データは、I/F431を介して外部オーディオ機器(図示せず)のデジタル入力に転送される。あるいは、変換されたデジタル音声データは、D/A変換部432によりアナログ音声信号に変換され、図示しないオーディオアンプを介して、スピーカ433に送られる。
図12に示したストリームデータ記録再生装置では、ディスクドライブ部409とSTB部403とが一体化された構成を採っているため、図9のようなデータ転送インターフェイス部414、420を持たない。また、STC部424というシステム全体に共通の基準クロック発生部を持っているため、モディファイドタイムスタンプで示されるようなタイムスタンプの付け替え処理が不要となる。またデジタル信号入力部441を持っているため、デジタルTVの映像情報以外の例えばMPEG4で圧縮されたTV電話の映像情報やMD(ミディディスク)やCD(コンパクトディスク)などのPCMオーディオ情報などを入力し、ストリームデータとして情報媒体201上に記録することもできる。
なお、モディファイドタイムスタンプで示されるようなタイムスタンプの付け替え処理が不要とはいっても、ストリーム記録時において、「SOB内の最初のパックに対してストリーマ内部のローカル基準クロックをそのパック内で開始する最初のアプリケーションパケットのAPATに等しくする」ことは必要である。
図12の装置において、再生が行われる場合には、図示しない光学ヘッドを介して情報媒体201の記録データが読み取られる。記録再生部409ではその復調処理が行われ、復調されたデータはD−PRO部410に入力され、エラー訂正処理等が施される。復調されたデータは、多重化情報分離部425に入力される。この多重化情報分離部425では、図9で説明したのと同様な信号処理が行われる。ビデオデコード部428には、縮小画面生成部439(図9では代表画像生成部と称した)が設備されているが、これは、例えば編集用や見出し用の画像を生成する部分である。
図13は、この発明の他の実施の形態に係るストリームデータ記録手順(ショートアプリケーションヘッダ利用)を説明するフローチャート図である。たとえば図12のデジタル信号入力部441からデジタルストリームデータが入力される(ステップS11)。入力されたストリームデータに対して、図12のフォーマッタ部449において、STC424が発生する基準クロックに合わせて、アプリケーションパケット毎に、タイムスタンプが生成される(ステップS12)。この処理と並行して、メインMPU部454により、入力されたストリームデータの内容が判別され(ステップS13)、判別された内容に応じてショートアプリケーションヘッダの設定が行なわれる(ステップS14)。
ステップS12で生成されるタイムスタンプが示す時間は、前述したアプリケーションパケット到着時間APATに相当する。つまり、SOB内の最初のパックに対して、ストリーマ内部のローカル基準クロック(図5のSCR303または後述する図15のSCRベースに対応)が、そのパック内で開始する最初のアプリケーションパケットのAPATに等しくなる。
図13のその後の処理(ステップS15〜ステップS18)は、ステップST17で記録されるアプリケーションヘッダがショートアプリケーションヘッダであることを除き、図10を参照して説明したステップS6〜ステップS9の処理と同様である。
図14は、この発明の一実施の形態に係るデータ構造において、とくにデータエリア内のデータ構造を説明する図である。図14には、図1(c)のデータエリア(21〜23)に配置されるデータの構成がさらに詳しく例示されている。
図14の最上段に示すデータエリアには、図14の2段目に示すように、モディファイドタイムスタンプとアプリケーションパケットとの組が複数存在する。このアプリケーションパケット内には、図14の3段目に示すように、アプリケーションパケットヘッダとペイロードとの組が複数格納される。複数のペイロードからデータを集めると、図14の4段目に例示するように、Iピクチャ、Bピクチャ、Pピクチャのデータ集合体となる。ここで、Iピクチャのデータ部を見ると、図14の5段目に示すように、ピクチャヘッダ、圧縮情報等が存在する。また、ピクチャヘッダの内部を見ると、図14の最下段に示すように、ヘッダID、ピクチャIDなどが存在する。
なお、図示しないが、プレゼンテーションタイムスタンプPTSは、図9のメモリ部426からビデオデコード部428へパケットを送るタイミングを示している。システムタイムカウンタ(システムクロック)STC部424の値がPTSの値に一致したとき、または所定の大きな値となったときに、図14のIピクチャ情報がビデオデコード部428に送られ、ビデオデコード部428は図示しないデコードタイムスタンプDTSのタイミングで、送られてきたIピクチャ情報のデコードを開始するようになっている。
ここで、たとえば図9の光ディスク装置415とSTB装置416との間で同期ずれがあると、PTSに基いてメモリ部426からビデオデコード部428へ送られるデータ転送量と、光ディスク装置415からメモリ部426へ送られてくるデータ量の不整合(アンマッチング)が生じる。このような不具合を取り除くために、図9の装置では、次のような機能が設けられている。
たとえばアプリケーションパケットの特定個数(例えば1万個、あるいは10万個)を送信/受信する毎に、光ディスク装置とSTB装置側とで、その送信時刻/受信時刻を一時記憶部411、ワークRAMメモリ部407に記憶する。これにより、両者には、アプリケーションパケットを特定個数を送信/受信する毎の時刻情報テーブルを作成することができる。ここで、適当な時間間隔たとえば10分、あるいは30分間隔(この時間間隔は任意に修正できるようにしてもよい)で、STB装置側から、光ディスク装置側へ時刻情報テーブルを転送する。光ディスク装置側では、両者の時刻情報テーブルを比較し、時刻のずれ情報を把握する。そうすれば、アプリケーションパケットの特定個数毎に、双方の装置間でどのくらいの時間ずれ(同期ずれ)が生じているのかを把握することができる。この同期ずれ量に応じて、光ディスク装置415側のデータ再生速度あるいは、データの転送タイミングの調整を行なうことができる。
データの転送タイミングを制御する手段の例としては、前述したモディファイドタイムスタンプを、実際に使用する前に図示しない変換テーブルを通して使用する方法がある。時間調整手段としては、その調整量に応じて各種の方法が可能である。この調整手段は、情報媒体201に対するデータ記録が、別の光ディスク装置によってなされている場合に有効である。実際にデータを再生する装置の基準クロックと実際にデータ記録した装置の基準クロックとの間に周波数ずれがあると、再生されたモディファイドタイムスタンプの値が、再生する装置の予期しているモディファイドタイムスタンプの値とずれている場合があるからである。
以上説明したこの発明の実施の形態における効果をまとめると以下のようになる。
*情報媒体に記録するストリームデータの内容(種類)に応じて最適なアプリケーションヘッダタイプ(ロングかショートか)を選択するため、アプリケーションヘッダ情報として不要な情報を記録する必要がない。その結果、情報媒体上に記録する情報の記録効率を向上させ、情報媒体に対する実質的な有効記録容量を増加させることができる。
*IEEE1394などで転送されてくるストリームデータに対して、ストリーマ内部の基準クロックでタイムスタンプを付け直し、さらにその基準クロックに基づき各ストリームパック先頭位置での時刻情報をシステムクロック(SCR)としてストリームパック内に記録することができる。こうすることで、
(a)ストリームデータを読み飛ばしながら再生する場合にストリームパック内に記録されたシステムクロック(SCR)に合わせてストリーマの基準クロックをリセットし、そのリセットしたストリーマ内の基準クロックを基準にしてタイムスタンプ情報のタイミングに合わせて各アプリケーションパケットを出力することができる。このようにストリームパック内に記録されたシステムクロック(SCR)で常にリセットすると、情報媒体上に点在するストリームデータをランダムかつ断続的に再生しても安定に各アプリケーションパケット間の出力タイミングを保持できる。
(b)タイムスタンプの値を用いて情報媒体上に記録されたストリームデータを検索する場合、いちいちタイムスタンプまで再生せずにストリームパック内に記録されたシステムクロック(SCR)の値を再生するだけで(見出しとして活用して)粗いアクセスを行うことができる。
(c)再生時にストリームパック内に記録されたシステムクロック(SCR)の値とタイムスタンプの値を比較することで、現在再生中のストリームデータが本来再生したいデータであるかどうかの確認を、リアルタイムで行うことができる。
*光ディスク装置からSTB装置側へ転送されるデータが適切な量となるように、装置間の同期を管理することができる。
図15は、ストリームパックのデータ構造を説明する図である。各ストリームパックは、図15(b)に示すようなデータ構造を持っている。すなわち、14バイトのパックヘッダと、6バイトのPESヘッダと、1バイトのサブストリームIDと、9バイトのアプリケーションヘッダと、必要に応じて用いられるオプションのアプリケーションヘッダエクステンションと、必要に応じて用いられるオプションのスタッフィングバイトと、アプリケーションタイムスタンプATSが付されたアプリケーションパケットを1以上含むアプリケーションパケット群とで、1つのストリームパックが構成される。
図15(b)のパックヘッダは、図15(e)に示すように、パック開始コードの情報、システムクロックリファレンス(SCR)ベースの情報、SCRエクステンションの情報、プログラム多重化レートの情報、パックスタッフィング長の情報等を含んでいる。SCRベースは32ビットで構成され、その32ビット目はゼロとされる。また、プログラム多重化レートとしては、たとえば10.08Mbpsが採用される。
図15(b)のPESヘッダは、図15(d)に示すように、パケット開始コードプリフィックスの情報、ストリームID(プライベートストリーム2)の情報、PESパケット長の情報を含んでいる。このサブストリームIDは、図15(d)に示すように、ストリーム記録データを特定する内容を持つ。具体的には、サブストリームID=”00000010b”によって、そのストリームパックに格納されたデータがストリーム記録データであることが示される。このストリームIDが”10111110b”のときは、そのストリームパックがパディングパケットに用いられるものであることが示される。
図15(b)のアプリケーションヘッダは、図15(a)に示すように、バージョン情報、アプリケーションパケット数AP_Ns、先頭アプリケーションパケットのタイムスタンプ位置FIRST_AP_OFFSET、エクステンションヘッダ情報EXTENSION_HEADER_IFO、サービスID等を含んでいる。
ここで、バージョンには、アプリケーションヘッダフォーマットのバージョン番号が記述される。
アプリケーションヘッダのAP_Nsは、該当ストリームパック内で開始するアプリケーションパケットの数を記述したものである。該当ストリームパック内にATSの先頭バイトが格納されているときは、このストリームパック内でアプリケーションパケットが開始すると見なすことができる。
FIRST_AP_OFFSETには、該当ストリームパケット内で開始される最初のアプリケーションパケットのタイムスタンプ位置が、このストリームパケットの最初のバイトからの相対値として、バイト単位で、記述される。もしストリームパケット内で開始するアプリケーションパケットがないときは、FIRST_AP_OFFSETには「0」が記述される。
EXTENSION_HEADER_INFOには、該当ストリームパケット内にアプリケーションヘッダエクステンションおよび/またはスタッフィングバイトが存在するか否かが、記述される。EXTENSION_HEADER_INFOの内容が00bの場合は、アプリケーションヘッダの後にアプリケーションヘッダエクステンションもスタッフィングバイトも存在しないことが示される。EXTENSION_HEADER_INFOの内容が10bの場合は、アプリケーションヘッダの後にアプリケーションヘッダエクステンションがあるが、スタッフィングバイトは存在しないことが示される。EXTENSION_HEADER_INFOの内容が11bの場合は、アプリケーションヘッダの後にアプリケーションヘッダエクステンションが存在し、かつアプリケーションヘッダエクステンションの後にスタッフィングバイトも存在することが示される。EXTENSION_HEADER_INFOの内容が01bとなることは禁止されている。
アプリケーションパケットエリアの前のスタッフィングバイト(オプション)は、「EXTENSION_HEADER_INFO=11b」によりアクティブになる。こうすることで、アプリケーションヘッダエクステンション内のバイト数と、アプリケーションパケットエリア内に格納できるアプリケーションパケット数との間に矛盾が生じた場合に「パッキングパラドクス」が起きるのを防止できる。
SERVICE_IDには、ストリームを生成するサービスのIDが記述される。このサービスが未知のものであれば、SERVICE_IDに0x0000が記述される。
図15(b)のスタッフィングバイトおよびアプリケーションパケット群は、アプリケーションパケットエリアを構成している。このアプリケーションパケットエリアの先頭部分は、図15(b)のストリームパケットに対して先行するストリームパケットから跨るアプリケーションパケットの一部(部分パケット)を適宜含むことができる。その後に、アプリケーションタイムスタンプATSとアプリケーションパケットとのペアが複数ペア、シーケンシャルに記録できる。そして、アプリケーションパケットエリアの末尾部分は、図15(b)のストリームパケットに対して後続するストリームパケットへ跨るアプリケーションパケットの一部(部分パケット)、あるいは予約されたバイト数のスタッフィングエリアを適宜含むことができる。
別の言い方をすると、アプリケーションパケットエリアの開始位置には、部分アプリケーションパケットが存在でき、アプリケーションパケットエリアの終了位置には、部分アプリケーションパケットあるいは予約されたバイト数のスタッフィングエリアが存在できる。
各アプリケーションパケットの前に配置されたアプリケーションタイムスタンプ(ATS)は、32ビット(4バイト)で構成される。このATSは、2つの部分、すなわち基本部分と拡張部分に分けられる。基本部分は90kHzユニット値と呼ばれる部分であり、拡張部分は27MHzで測った細かい値(less significant value)を示す。
図15(b)において、アプリケーションヘッダエクステンションは、アプリケーションパケット〜アプリケーションパケット間で異なり得る情報を格納することに用いることができる。このような情報は、必ずしも全てのアプリケーションに必要なものではない。それゆえ、アプリケーションヘッダのデータフィールドは、ストリームデータエリア内にオプションのアプリケーションヘッダエクステンションが存在することを(前述したEXTENSION_HEADER_INFOにおいて)記述できるように定義されいる。
ストリームの記録時において、最初のアプリケーションパケットのアプリケーションタイムスタンプATSの先頭バイトは、ストリームオブジェクトSOBの始まりにおける最初のストリームパケット内のアプリケーションパケットエリアの開始位置に、アラインされている必要がある。
一方、SOB内のその後のストリームパケットについては、隣接ストリームパケット境界で、アプリケーションパケットが分割(スプリット)されてもよい。図15(b)に示した部分パケットは、この分割(スプリット)により生じたアプリケーションパケットを示している。
ストリームパケット内で開始される最初のアプリケーションタイムスタンプのバイトオフセット、およびそのストリームパケット内で開始されるアプリケーションパケットの数は、そのアプリケーションヘッダに記述される。こうすることにより、あるストリームパケット内において、最初のアプリケーションタイムスタンプの前および最後のアプリケーションパケットの後におけるスタッフィングが、自動的に行われる。すなわち、上記自動化メカニズムにより、「アプリケーションが自分でスタッフィングを行なう」ことが実現される。この自動スタッフィングにより、ストリームパケットは常に必要な長さを持つことになる。
アプリケーションヘッダエクステンション(オプション)はエントリのリストからなる。ここには、該当ストリームパケット内で開始する各アプリケーションパケットに対する1バイト長の1エントリがある。これらエントリのバイトは、アプリケーションパケット毎に異なり得る情報を格納することに利用できる。
なお、1バイトのアプリケーションヘッダエクステンション(オプション)には、図15(c)に示すように、1ビットのAU_STARTと、1ビットのAU_ENDと、2ビットのCOPYRIGHTとを記述できるようになっている。AU_STARTが”1”にセットされると、関連アプリケーションパケットが、ストリーム内にランダムアクセスエントリポイント(ランダムアクセスユニットの開始)を含むことが示される。AU_ENDが”1”にセットされると、関連アプリケーションパケットがランダムアクセスユニットの最終パケットであることが示される。COPYRIGHTには、関連アプリケーションパケットの著作権の状態が記述される。
図15のパケット構造は、該当ストリームオブジェクト(SOB)の最終セクタ以外に適用できるが、その最終セクタには必ずしも適用されない。SOBの情報記録が行われないような最終セクタに対しては、アプリケーションパケットエリアが1つのATSとゼロバイトで埋められたスタッフィングパケット(先頭のスタッフィングパケット)、あるいはアプリケーションパケットエリアがゼロバイトで埋められたスタッフィングパケット(後続のスタッフィングパケット)が適用される。
図15のデータ構造の特徴を纏めると、たとえば次のようになる。すなわち、記録されたビットストリームに対する再生データを表すストリームオブジェクト(SOB)が1以上集まってストリームデータが構成される。前記ストリームオブジェクト(SOB)が1以上のストリームパック(S_PCK)で構成される。前記ストリームパック(S_PCK)はパックヘッダとストリームパケット(S_PKT)とで構成される。前記パックヘッダは所定の時間情報(SCR)を含む。前記ストリームパケット(S_PKT)は所定のタイムスタンプ(ATS)が付されたアプリケーションパケット(AP_PKT)を1以上含む。そして、前記ストリームオブジェクト(SOB)の記録中に(ストリーマに)入ってくる前記アプリケーションパケット(AP_PKT)が、前記所定の時間情報(SCR)に対応した(ストリーマ内部の)ローカル基準クロック(図9の440)によりタイムスタンプされ(図14のモディファイドタイムスタンプ;図15のATS)、前記タイムスタンプの情報が前記ストリームパック(S_PCK)内に記録される。
前記ストリームパケットはアプリケーションヘッダを持ち、前記ストリームパケット内の最初に記録されているタイムスタンプの位置情報(FIRST_AP_OFFSET)が前記アプリケーションヘッダ内に含まれる。
前記ストリームオブジェクト(SOB)を情報媒体(201)に記録するときは、(ストリーマに)入ってくる前記アプリケーションパケット(AP_PKT)が、前記所定の時間情報(SCR)に対応した(ストリーマ内部の)ローカル基準クロック(図9の440)によりタイムスタンプされ(図10のS4のモディファイドタイムスタンプ;図21〜図23ではST106、ST212、ST312のタイムスタンプ)、前記タイムスタンプの情報が前記ストリームパック(S_PCK)内に記録される。
図16は、ストリーマの管理情報(図2または図3のSTREAM.IFOに対応)の内部データ構造を説明する図である。図2あるいは図3(e)に示した管理情報(ナビゲーションデータ)であるSTREAM.IFO(SR_MANGR.IFO)105は、図16に示すように、ストリーマ情報STRIを含んでいる。
このストリーマ情報STRIは、図3(f)あるいは図16に示すように、ストリーマビデオマネージャ情報STR_VMGIと、ストリームファイル情報テーブルSFITと、オリジナルPGC情報ORG_PGCI(より一般的に表現すればPGC情報PGCI#i)と、ユーザ定義PGC情報テーブルUD_PGCITと、テキストデータマネージャTXTDT_MGと、アプリケーションプライベートデータマネージャAPDT_MGとで、構成されている。
ストリーマビデオマネージャ情報STR_VMGIは、図16に示すように、STRI、STR_VMGIに関する管理情報等が記述されたビデオマネージャ情報管理情報VTSI_MATと、ストリーム内のプレイリストをサーチするためのサーチポインタが記述されたプレイリストサーチポインタテーブル(PL_SRPT)とを含んでいる。ここで、プレイリストとは、プログラムの一部のリストである。このプレイリストにより、(プログラムの内容に対して)任意の再生シーケンスをユーザが定義できる。ストリームファイル情報テーブルSFITは、ストリーマ動作に直接関係する全てのナビゲーションデータを含むものである。ストリームファイル情報テーブルSFITの詳細については、図18を参照して後述する。
オリジナルPGC情報ORG_PGCIは、オリジナルPGC(ORG_PGC)に関する情報を記述した部分である。ORG_PGCはプログラムセットを記述したナビゲーションデータを示す。ORG_PGCはプログラムの連なり(チェーン)であり、「〜.SRO」ファイル(図2ではSR_TRANS.SRO106)内に記録されたストリームデータを含む。
ここで、プログラムセットとは、情報媒体201の記録内容全体(全てのプログラム)を示すものである。プログラムセットの再生においては、任意のプログラムが編集されオリジナル記録に対してその再生順序が変更されている場合を除き、再生順序としてはそのプログラムの記録順序と同じ再生順序が用いられる。このプログラムセットは、オリジナルPGC(ORG_PGC)と呼ばれるデータ構造に対応している。
また、プログラムは、ユーザにより認識されあるいはユーザにより定義されるところの、記録内容の論理単位である。プログラムセット中のプログラムは、1以上のオリジナルセルにより構成される。プログラムはオリジナルPGC内でのみ定義されるものである。さらに、セルは、プログラムの一部を示すデータ構造である。オリジナルPGC内のセルは「オリジナルセル」と呼ばれ、後述するユーザ定義PGC内のセルは「ユーザ定義セル」と呼ばれる。プログラムセット内の各々のプログラムは、少なくとも1個のオリジナルセルで構成される。また、各々のプレイリスト中のプログラムの一部それぞれは、少なくとも1個のユーザ定義セルで構成される。
一方、ストリーマでは、ストリームセル(SC)だけが定義される。各ストリームセルは、記録されたビットストリームの一部を参照するものである。この発明の実施の形態においては、特に断りなく「セル」と述べた場合は、「ストリームセル」のことを意味している。
なお、プログラムチェーン(PGC)とは、上位概念的な単位を示す。オリジナルPGCでは、PGCはプログラムセットに対応したプログラムの連なり(チェーン)を指す。また、ユーザ定義PGCでは、PGCはプレイリストに対応するプログラムの一部の連なり(チェーン)を指す。また、プログラムの一部のチェーンを指すユーザ定義PGCは、ナビゲーションデータだけを含む。そして、各プログラムの一部が、オリジナルPGCに属するストリームデータを参照するようになっている。
図16のユーザ定義PGC情報テーブルUD_PGCITは、ユーザ定義PGC情報テーブル情報UD_PGCITIと、1以上のユーザ定義PGCサーチポインタUD_PGC_SRP#nと、1以上のユーザ定義PGC情報UD_PGCI#nとを含むことができる。ユーザ定義PGC情報テーブル情報UD_PGCITIは、図示しないが、ユーザ定義PGCサーチポインタUD_PGC_SRPの数を示すUD_PGC_SRP_Nsと、ユーザ定義PGC情報テーブルUD_PGCITの終了アドレスを示すUD_PGCIT_EAとを含む。
UD_PGC_SRP_Nsが示すUD_PGC_SRPの数は、ユーザ定義PGC情報(UD_PGCI)の数と同じであり、ユーザ定義PGC(UD_PGC)の数とも同じである。この数は、最大「99」まで許されている。UD_PGCIT_EAは、該当UD_PGCITの終了アドレスを、そのUD_PGCITの先頭バイトからの相対バイト数(F_RBN)で記述したものである。ここで、F_RBNとは、ファイル内において、定義されたフィールドの先頭バイトからの相対バイト数を示すもので、ゼロから始まる。
オリジナルPGC情報ORG_PGCIあるいはユーザ定義PGC情報テーブルUD_PGCIT内のユーザ定義PGC情報UD_PGCIを一般的に表現したPGCI#iについては、図17を参照して後述する。
図16のテキストデータマネージャTXTDT_MGは、補足的なテキスト情報である。このTXTDT_MGは、図17のプライマリテキスト情報PRM_TXTIとともに、プレイリストおよびプログラム内に格納できる。
図16のアプリケーションプライベートデータマネージャAPDT_Mは、図示しないが、アプリケーションプライベートデータマネージャ一般情報APDT_GIと、1以上のAPDTサーチポインタAPDT_SRP#nと、1以上のAPDTエリアAPADTA#nとを含むことができる。ここで、アプリケーションプライベートデータAPDTとは、ストリーマに接続されたアプリケーションデバイスが任意の非リアルタイム情報(リアルタイムストリームデータに加えさらに望まれる情報)を格納できるような概念上のエリアである。
図17は、PGC情報(図3のORG_PGCI/UD_PGCITまたは図16のPGCI#i)の内部データ構造を説明する図である。図17のPGC情報PGCI#iは、図16のオリジナルPGC情報ORG_PGCIあるいはユーザ定義PGC情報テーブルUD_PGCIT内のユーザ定義PGC情報UD_PGCIを一般的に表現したものである。
図17に示すように、PGC情報PGCI#iは、PGC一般情報PGC_GIと、1以上のプログラム情報PGI#mと、1以上のストリームセル情報サーチポインタSCI_SRP#nと、1以上のストリームセル情報SCI#nとで構成されている。PGC一般情報PGC_GIは、プログラムの数PG_Nsと、ストリームセル情報サーチポインタSCI_SRPの数SCI_SRP_Nsとを含んでいる。各プログラム情報PGI(たとえばPGI#1)は、プログラムタイプPG_TYと、該当プログラム内のセルの数C_Nsと、該当プログラムのプライマリテキスト情報PRM_TXTIと、アイテムテキストのサーチポインタ番号IT_TXT_SRPNとを含んでいる。
ここで、プログラムタイプPG_TYは、該当プログラムの状態を示す情報を含む。とくに、そのプログラムが誤消去などから保護された状態にあるかどうかを示すフラグ、すなわちプロテクトフラグを含む。このプロテクトフラグが「0b」のときは該当プログラムは保護されておらず、「1b」のときは保護された状態にある。
セルの数C_Nsは、該当プログラム内のセルの数を示す。PGCの全プログラムおよび全セルの全体に渡り、セルは、その昇順に従い、プログラムに(暗黙のうちに)付随している。たとえば、PGC内でプログラム#1がC_Ns=1を持ち、プログラム#2がC_Ns=2を持つとすれば、そのPGCの最初のストリームセル情報SCIはプログラム#1に付随するものとなり、第2、第3のSCIはプログラム#2に付随するものとなる。
プライマリテキスト情報PRM_TXTIは、情報媒体(DVD−RAMディスク)201を世界中で利用可能とするために、1つの共通キャラクタセット(ISO/IEC646:1983(ASCIIコード))を持ったテキスト情報を記述したものである。
アイテムテキストのサーチポインタ番号IT_TXT_SRPNは、アイテムテキスト(該当プログラムに対応するテキストデータ)IT_TXTに対するサーチポインタ番号を記述したものである。該当プログラムがアイテムテキストを持たないときは、IT_TXT_SRPNは「0000h」にセットされる。
各ストリームセル情報サーチポインタSCI_SRP(たとえばSCI_SRP#1)は、対応ストリームセル情報SCIの開始アドレスを示すSCI_SAを含んでいる。このSCI_SAは、PGCIの先頭バイトからの相対バイト数(F_RBN)で記述される。
各ストリームセル情報SCI(たとえばSCI#1)は、ストリームセル一般情報SC_GIと、1以上のストリームセルエントリポイント情報SC_EPI#nとで構成される。ストリームセル一般情報SC_GIは、仮消去(テンポラリイレーズ;TE)状態を示すフラグTEを含むセルタイプC_TYと、ストリームセルのエントリポイント情報の数SC_EPI_Nsと、ストリームオブジェクト番号SOB_Nと、ストリームセル開始APAT(SC_S_APAT)と、ストリームセル終了APAT(SC_E_APAT)と、セルが仮消去状態(TE=10b)にあるときにその仮消去セルの開始APATを示す消去開始APAT(ERA_S_APAT)と、セルが仮消去状態(TE=10b)にあるときにその仮消去セルの終了APATを示す消去終了APAT(ERA_E_APAT)とを含んでいる。
セルタイプC_TYは、該当ストリームセルの形式およびその仮消去状態を記述するものである。すなわち、セルの形式C_TY1=「010b」は全てのストリームセルの形式に記述される(このC_TY1=「010b」によりストリームセルとそれ以外のセルの区別ができる)。
一方、フラグTEが「00b」であれば該当セルは通常の状態にあることが示され、フラグTEが「01b」あるいは「10b」であれば該当セルは仮消去の状態にあることが示される。フラグTE=「01b」は、該当セル(仮消去状態にあるセル)が、SOBU内で開始する最初のアプリケーションパケットの後から開始し、同じSOBU内の最終アプリケーションパケットの前で終了する場合を示す。また、フラグTE=「10b」は、該当セル(仮消去状態にあるセル)が、少なくとも1つのSOBU境界(先頭アプリケーションパケットあるいは最終アプリケーションパケットがそのSOBU内で開始する)を含む場合を示す。
なお、プログラムのプロテクトフラグと、そのプログラム内のセルのTEフラグとは、同時に設定できないようになっている。それゆえ、
(a)プロテクト状態にあるプログラム内のセルは何れも仮消去状態に設定できず;
(b)仮消去状態にあるセルを1以上含むプログラムはプロテクト状態に設定できない。
ストリームセルのエントリポイント情報の数SC_EPI_Nsは、該当ストリームセル情報SCI内に含まれるストリームセルエントリポイント情報の数を記述したものである。
図17の各ストリームセルエントリポイント情報SC_EPI(たとえばSC_EPI#1)は、2種類(タイプAとタイプB)存在する。タイプAのSC_EPIは、エントリポイントタイプEP_TYとエントリポイントのアプリケーションパケット到着時間EP_APATとを含む。タイプAは、エントリポイントタイプEP_TY1=「00b」により示される。タイプBのSC_EPIは、タイプAのEP_TYおよびEP_APATの他に、プライマリテキスト情報PRM_TXTIを含む。タイプBは、エントリポイントタイプEP_TY1=「01b」により示される。
任意のストリームセルにおいて、記録内容の一部をスキップする道具として、エントリポイントを利用することができる。全てのエントリポイントはアプリケーションパケット到着時間(APAT)により特定できる。このAPATにより、どこからデータ出力が開始されるのかを特定できる。
ストリームオブジェクト番号SOB_Nは、該当セルが参照するSOBの番号を記述したものである。ストリームセル開始APAT(SC_S_APAT)は、該当セルの開始APATを記述したものである。ストリームセル終了APAT(SC_E_APAT)は、該当セルの終了APATを記述したものである。
消去開始APAT(ERA_S_APAT)は、少なくとも1個のSOBU境界を含む仮消去セル(そのC_TYのTEフィールドが「10b」)において、この仮消去セルに先頭が含まれる最初のSOBU内で開始する最初のアプリケーションパケットの到着時間(APAT)を記述したものである。消去終了APAT(ERA_E_APAT)は、少なくとも1個のSOBU境界を含む仮消去セル(そのC_TYのTEフィールドが「10b」)において、仮消去セルのすぐ後に続くアプリケーションパケットを含むSOBU内で開始する最初のアプリケーションパケットの到着時間(APAT)を記述したものである。
図17のデータ構造の特徴を纏めると、たとえば次のようになる。すなわち、前記ストリームオブジェクト(SOB)はストリームセル(SC)の情報を含む。前記ストリームセルに対する前記アプリケーションパケット(AP_PKT)の到着時間情報(SC_S_APAT/SC_E_APAT)は、前記ストリームパック(S_PCK)内に記録された前記タイムスタンプの情報の値と連動する。そして、前記タイムスタンプ情報値が、前記ストリームパック(S_PCK)内の前記時間情報(SCR)に対応して設定される。
図18は、ストリームファイル情報テーブル(SFIT)の内部データ構造を説明する図である。図示するように、ストリームファイル情報テーブルSFITは、ストリームファイル情報テーブル情報SFITIと、1以上のストリームオブジェクトストリーム情報SOB_STI#nと、ストリームファイル情報SFIとで構成される。
ストリームファイル情報テーブル情報SFITIは、情報媒体(DVD−RAMディスク)201上のストリームファイル情報の数SFI_Nsと、SFITIに続くストリームオブジェクトストリーム情報の数SOB_STI_Nsと、SFITの終了アドレスSFIT_EAと、SFIの開始アドレスSFI_SAとで構成される。SFIT_EAは、SFITの先頭バイトからの相対バイト数(F_RBN)でSFITの終了アドレスを記述したものである。また、SFI_SAは、SFITの先頭バイトからの相対バイト数(F_RBN)でSFIの開始アドレスを記述したものである。
各ストリームオブジェクトストリーム情報SOB_STIは、3種類のパラメータを含む。各パラメータは箇々のビットストリーム記録に対して固有な値を持つことができる。しかしながら、通常は、多くのビットストリーム記録においてこれらのパラメータセットは等しいものにできる。それゆえ、SOB_STIは、ストリームオブジェクト情報(SOBI)のテーブルとは別のテーブルに格納され、幾つかのストリームオブジェクト(SOB)が同じSOB_STIを共有する(つまり同じSOB_STIをポイントする)ことが認められている。したがって、通常は、SOBの数よりもSOB_STIの数の方が少なくなる。
図18の各ストリームオブジェクトストリーム情報SOB_STI(たとえばSOB_STI#1)は、アプリケーションパケットサイズAP_SIZと、サービスIDの数SERV_ID_Nsと、サービスID(SERV_IDs)と、アプリケーションパケットデバイスユニークID(AP_DEV_UID)とを含んでいる。AP_SIZは、アプリケーションデバイスからストリーマへ転送されたビットストリーム内のパケットのバイト長で、アプリケーションパケットサイズを記述したものである。
なお、DVDストリーマでは、アプリケーションパケットサイズは、各ビットストリーム記録において一定とされている。そのため、各々の中断のない記録中において、アプリケーションパケットサイズが変化するようなことがあれば、現在のストリームオブジェクト(現SOB)はそこで終了され、新たなストリームオブジェクト(新SOB)が新たなAP_SIZを伴って開始される。その際、現SOBおよび新SOBの双方は、オリジナルPGC情報(ORG_PGCI)内の同じプログラムに属するものとなる。
SERV_ID_Nsは、後続パラメータに含まれるサービスIDの数を記述したものである。SERV_IDsは、サービスIDのリストを任意の順序で記述したものである。AP_DEV_UIDは、記録されたビットストリームを供給したアプリケーションデバイスに固有のユニークなデバイスIDを記述したものである。
ストリームファイル情報SFIは、図18に示すように、ストリームファイル一般情報SF_GIと、1以上のストリームオブジェクト情報(SOB情報)サーチポインタ(SOBI_SRP)#nと、1以上のSOB情報(SOBI)#nとで構成されている。ストリームファイル一般情報SF_GIは、SOBIの数SOBI_Nsと、SOBU1個あたりのセクタ数SOBU_SIZとを含んでいる。
ここで、SOBU_SIZは、SOBUのサイズをセクタ数で記述したもので、このサイズは32(32セクタ=64kバイト)で一定となっている。このことは、各タイムマップ情報(MAPL)内において、最初のエントリが、SOBの最初の32セクタ内に含まれるアプリケーションパケットに関係していることを意味する。同様に、2番目のエントリは、次の32セクタに含まれるアプリケーションパケットに関係する。3番目以降のエントリについても以下同様である。
各SOB情報サーチポインタ(たとえばSOBI_SRP#1)は、SOBIの開始アドレスSOBI_SAを含んでいる。このSOBI_SAは、ストリームファイル情報SFIの先頭バイトから相対バイト数(F_RBN)でもって関連SOBIの開始アドレスを記述したものである。
各SOB情報(たとえばSOBI#1)は、ストリームオブジェクト一般情報SOB_GIと、タイムマップ情報MAPLと、アクセスユニットデータAUD(オプション)とで構成される。
ストリームオブジェクト一般情報SOB_GIは、ストリームオブジェクトのタイプSOB_TYと、ストリームオブジェクト記録時間SOB_REC_TMと、ストリームオブジェクトのストリーム情報番号SOB_STI_Nと、アクセスユニットデータフラグAUD_FLAGSと、ストリームオブジェクトの開始アプリケーションパケット到着時間SOB_S_APATと、ストリームオブジェクトの終了アプリケーションパケット到着時間SOB_E_APATと、該当ストリームオブジェクトの先頭ストリームオブジェクトユニットSOB_S_SOBUと、タイムマップ情報のエントリ数MAPL_ENT_Nsとを含んでいる。
ストリームオブジェクトのタイプSOB_TYは、仮消去状態(TE状態)を示すビットおよび/またはコピー世代管理システムのビットを記述できる部分である。ストリームオブジェクト記録時間SOB_REC_TMは、関連ストリームオブジェクト(SOB)の記録時間を記述したものである。ストリームオブジェクトのストリーム情報番号SOB_STI_Nは、該当ストリームオブジェクトに対して有効なSOB_STIのインデックスを記述したものである。
アクセスユニットデータフラグAUD_FLAGSは、該当ストリームオブジェクトに対してアクセスユニットデータ(AUD)が存在するか否か、また存在するならどんな種類のアクセスユニットデータなのかを記述したものである。アクセスユニットデータ(AUD)が存在する場合は、AUD_FLAGSにより、AUDの幾つかの特性が記述される。アクセスユニットデータ(AUD)自体は、図18に示すように、アクセスユニット一般情報AU_GIと、アクセスユニットエンドマップAUEMと、再生タイムスタンプリストPTSLとで構成される。
アクセスユニット一般情報AU_GIは、該当SOBに対して記述されたアクセスユニットの数を示すAU_Nsと、該当SOBに属するSOBUのどれがアクセスユニットを含むのかを示すアクセスユニット開始マップAUSMとを含んでいる。アクセスユニットエンドマップAUEMは、(もし存在するときは)AUSMと同じ長さのビットアレイであり、該当SOBのアクセスユニットに付随するビットストリームセグメントの終端をどのSOBUが含むのかを示す。再生タイムスタンプリストPTSLは、該当SOBに属する全てのアクセスユニットの再生タイムスタンプのリストである。このリストに含まれる1つのPTSLエレメントは、対応アクセスユニットの再生タイムスタンプ(PTS)の値を含む。
なお、アクセスユニット(AU)とは、記録されたビットストリームのうちの任意の単一連続部分を指し、個別の再生に適するように構成されている。たとえばオーディオ・ビデオのビットストリームにおいては、アクセスユニットは、通常は、MPEGのIピクチャに対応する部分となる。
ここで再びSOB_GIの内容説明に戻る。AUD_FLAGSは、フラグRTAU_FLGと、フラグAUD_FLGと、フラグAUEM_FLGと、フラグPTSL_FLGとを含んでいる。フラグRTAU_FLGが0bのときは、該当SOBのリアルタイムデータ内にアクセスユニットフラグはないことが示される。フラグRTAU_FLGが1bのときは、図15(b)のアプリケーションヘッダエクステンション内に記述されるAUフラグ(AU_START、AU_END)が該当SOBのリアルタイムデータ内に存在可能なことが示される。この状態は、下記AUD_FLGが0bの場合にも許される。
フラグAUD_FLGが0bのときは、該当SOBに対してアクセスユニットデータ(AUD)がないことが示される。フラグAUD_FLGが1bのときは、該当SOBに対してアクセスユニットデータ(AUD)が存在し得ることが示される。フラグAUEM_FLGが0bのときは、該当SOBにAUEMが存在しないことが示される。フラグAUEM_FLGが1bのときは、該当SOBにAUEMが存在することが示される。フラグPTSL_FLGが0bのときは、該当SOBにPTSLが存在しないことが示される。フラグPTSL_FLGが1bのときは、該当SOBにPTSLが存在することが示される。
図18のSOB_GI内に含まれるSOB_S_APATは、ストリームオブジェクトの開始アプリケーションパケット到着時間を記述したものである。つまり、SOB_S_APATにより、該当SOBに属する最初のアプリケーションパケット到着時間が示される。このパケット到着時間(PAT)は、2つの部分、すなわち基本部分と拡張部分に分けられる。基本部分は90kHzユニット値と呼ばれる部分であり、拡張部分は27MHzで測った細かい値(less significant value)を示す。SOB_E_APATは、ストリームオブジェクトの終了アプリケーションパケット到着時間を記述したものである。つまり、SOB_E_APATにより、該当SOBに属する最後のアプリケーションパケット到着時間が示される。
SOB_S_SOBUは、該当ストリームオブジェクトの先頭ストリームオブジェクトユニットを記述したものである。つまり、SOB_S_SOBUにより、ストリームオブジェクトの先頭アプリケーションパケットの開始部分を含むSOBUが示される。MAPL_ENT_Nsは、SOBI_GIの後に続くタイムマップ情報(MAPL)のエントリ数を記述したものである。タイムマップ情報MAPLは、図3(h)のタイムマップ情報252に対応する内容を持つ。
図16および図18の内容の関連性の1つについて纏めると、次のようになる。すなわち、図2または図3(e)の管理情報105に含まれるストリーマ情報(STRI)は、ストリームデータの内容の一部を構成するストリームオブジェクトSOBを管理するストリームファイル情報テーブルSFITを含む。このSFITは、SOBを管理するストリームオブジェクト情報SOBIを含む。このSOBIが、管理情報(アクセスユニット開始マップAUSM)を含むアクセスユニット一般情報AU_GIと、管理情報(PTSL)とを含む。ここで、管理情報(ATSまたはAUSM)がストリームデータの転送時に使用される情報を含み、管理情報(PTSまたはSC_S_APAT)が前記ストリームデータを表示するときに使用される情報を含む。
図18のデータ構造の特徴を纏めると、たとえば次のようになる。すなわち、前記ストリームオブジェクト(SOB)に対する前記アプリケーションパケット(AP_PKT)の到着時間情報(SOB_S_APAT/SOB_E_APAT)は、前記ストリームパック(S_PCK)内に記録された前記タイムスタンプの情報の値と連動する。そして、前記タイムスタンプ情報値が、前記ストリームパック(S_PCK)内の前記時間情報(SCR)に対応して設定される。
図19は、アクセスユニット開始マップ(AUSM)とストリームオブジェクトユニット(SOBU)との対応関係を例示する図である。図示するように、AUSMのうちビット”1”の部分が、対応SOBUにアクセスユニット(AU)が含まれることを示している。
いま、AUSM内でビットがセットされたi番目(1≦i≦AU_Ns)のビット位置をAUSM_pos(i)としてみる。すると、アクセスユニットAUの位置は次のようになる。
(1)もしAUSM_pos(i)により示されるSOBU#iが1以上の開始AU(これはストリーム内で(もしあるなら)AU_STARTマークおよびAU_ENDマークにより記述される)を含むなら、AUSM_pos(i)は、SOBU#i内で開始する最初のAUに割り当てられる。ここで、SOBU#iは、AUSM_pos(i)および(AUEMが存在するなら)AUEM_pos(i)により記述されたSOBUs内に配置されたものである。
(2)AUは、このAU開始後に最初に現れるAU_ENDマークで終了し、かつ、AUは、(もしAUEMが存在するなら)割り当てられたAUEMエレメントにより示される最後のSOBUで終了する。
なお、いずれのアクセスユニットデータにおいても、SOBの各SOBU1個当たりに、2以上のアクセス可能なアクセスユニットを記述することはできない。
図20は、アクセスユニット開始マップ(AUSM)およびアクセスユニット終了マップ(AUEM)とストリームオブジェクトユニット(SOBU)との対応関係を例示する図である。
AUEMは、(もし存在するなら)AUSMと同じ長さのビットアレイである。AUEMのビットは、該当SOBのアクセスユニットに付随するビットストリームセグメントの末尾がどのSOBUに含まれるのかを示している。AUEM内にセットされたビットの数は、AUSM内にセットされたビットの数に一致する。すなわち、AUSM内の各設定ビットは、AUEM内に対応してセットされたビットを持つ。
いま、AUSM内でビットがセットされたi番目(1≦i≦AU_Ns)のビット位置をAUSM_pos(i)とし、AUEM内でビットがセットされたi番目(1≦i≦AU_Ns)のビット位置をAUEM_pos(i)としてみる。この場合、以下の関係がある。
(1)1≦AUSM_pos(i)≦AUEM_pos(i)≦MAPL_ENT_Ns;
(2)AUSM_pos(i+1)>AUEM_pos(i);
(3)もしi==AU_NsあるいはAUSM_pos(i+1)>1+AUEM_pos(i)なら、AU#iは、SOBU#[AUEM_pos(i)]で終了する(1≦i≦AU_Ns);
(4)もしAUSM_pos(i+1)==1+AUEM_pos(i)なら、AU#iは、SOBU#[AUEM_pos(i)]で終了する。あるいは
SOBU#[1+AUEM_pos(i)]==SOBU#[AUSM_pos(i+1)]のところで終了する。つまり、AU#iは、SOBU内においてAU#i+1が開始するところで終了する(1≦i≦AU_Ns)。
図21は、この発明の他の実施の形態に係るストリームデータ記録手順を説明するフローチャート図である。まず、アプリケーションデバイス(STBなど)がデジタルI/F上にパケットを出力する(ステップST100)。すると、ストリーマにおいて記録が開始される(ステップST102)。以下はストリーマ側の処理となる。
記録が開始されると、ストリーマは、ローカルクロックをt0=0にリセットする(ステップST104)。その後、ストリーマは、最初のSOBUのセクタ0〜31に、ローカルクロック値t0、t1、t2、…を付けて、アプリケーションパケットを詰め込む(ステップST106)。ステップST104〜ST106の処理(図10のステップS4、あるいは図13のステップS12に対応)により、SOB内最初のパックに対してストリーマ内部のローカル基準クロックがそのパック内で開始する最初のアプリケーションパケットの到着時間APATに等しくなる。そして、最初のSOBUのセクタ0〜31をプレゼンテーションデータ(再生データ)として情報媒体(ディスク)に書き込む(ステップST108)。
ストリーマは、2番目のSOBUの先頭パックを受け、最初のタイムマップエントリを生成して、生成したタイムマップエントリをナビゲーションデータとしてメモリに保存する(ステップST110)。以後、ローカルクロックのタイムスタンプを付けてパケットを2番目以降のSOBUに詰め込み、2番目以降のSOBUのセクタを再生データとしてディスクに書き込み、その後のタイムマップエントリを生成し、生成したタイムマップエントリをナビゲーションデータとしてメモリに保存する(ステップST112)。ステップST110〜ST112の処理(図10のステップS9、あるいは図13のステップS18に対応)は、記録が終了するまで反復される。
記録が終了すれば(ステップST114イエス)、最後のSOBUにパケットと適宜スタッフィングを詰め込み、最後のSOBUのセクタを再生データとしてディスクに書き込む(ステップST116)。最後に、最後のタイムマップエントリ、SOBUストリーム情報(SOB_STI)、SOB情報(SOBI)、および1セルのオリジナルPGCを、ナビゲーションデータとしてメモリ内に生成し、生成したナビゲーションデータをディスクに書き込む(ステップST118)。
図21の処理により、ローカル基準クロックのタイムスタンプが付されたアプリケーションパケット(AP_PKT)が記録される(ST106)とともに、所定のタイムマップエントリがナビゲーションデータとして生成される(ST110〜ST112)。
図22は、この発明のさらに他の実施の形態に係るストリームデータ記録手順(デジタルビデオ放送サービス)を説明するフローチャート図である。まず、アプリケーションデバイス(AD)において、記録が開始される(ステップST200)。この記録は、図示しないデバイスの記録ボタンが押され、あるいは図示しないユーザインターフェイスからの操作が生じたときに、開始される。
記録が開始されると、アプリケーションデバイスは、適正なバンド幅のアイソクロナスデジタルI/F(DIF)チャネルを確立し、ビットストリーム中にIピクチャの開始が生じるまで待機する(ステップST202)。
アプリケーションデバイスがストリーマに記録開始を通知すると、ストリーマはローカルクロックをリセットする(t0=0)(ステップST204)。この処理は、図13のステップS12に対応する。
次に、アプリケーションデバイスは、デジタルI/Fへオプションでシーケンスヘッダを出力し、その後、デジタルI/Fにパケットを出力する(ステップST206)。この処理は、図13のステップS15、S16に対応する。
続いて、ストリーマにおいて、ローカルクロック値でタイムスタンプしたアプリケーションパケットを連続したSOBUのセクタに詰め込み、連続SOBUのセクタを再生データとしてディスクに書き込み、連続したタイムマップエントリをナビゲーションデータとしてメモリ内に生成する(ステップST212)。このステップST212の処理は、アプリケーションデバイスにおいて記録終了の指示があるまで続く。
アプリケーションデバイスにおいて記録終了の指示が出ると(ステップST214イエス)、アプリケーションデバイスは、ビットストリームが現フレームの末尾に到達するまで待ち、デジタルI/Fのコマンドチャネルを介してストリーマに記録停止を通知する(ステップST215)。
すると、ストリーマは、最後のSOBUにパケットと適宜スタッフィングを詰め込み、最後のSOBUのセクタを再生データとしてディスクに書き込む(ステップST216)。
そして、ストリーマは、最後のタイムマップエントリ、SOBストリーム情報、SOB情報および1セルのオリジナルPGCをナビゲーションデータとしてメモリ内に生成し、生成したナビゲーションデータをディスクに書き込む(ステップST218)。
図22の処理により、ローカル基準クロックのタイムスタンプ情報に基づいてSOBに対するアプリケーションパケット(AP_PKT)の到着時間情報(SOB_S_APAT/SOB_E_APAT)が算出され、算出された到着時間情報(SOB_S_APAT/SOB_E_APAT)がナビゲーションデータとして記録される(ST218)。
図23は、この発明のさらに他の実施の形態に係るストリームデータ記録手順(記録済み媒体に新たなストリームオブジェクトを追記する場合)を説明するフローチャート図である。まず、アプリケーションデバイスがデジタルI/Fにパケットを出力する(ステップST300)。すると、ストリーマにおいて記録が開始される(ステップST302)。以下はストリーマ側の処理となる。
記録が開始されると、ストリーマは、ローカルクロックをt0=0にリセットする(ステップST304)。この処理は図13のステップS12に対応する。
その後、ストリーマにおいて、ローカルクロック値でタイムスタンプされたアプリケーションパケットが連続した新SOBUに詰め込まれ、連続した新SOBUのセクタが再生データとしてディスクに書き込まれ、連続した新タイムマップエントリがナビゲーションデータとしてメモリ内に生成される(ステップST312)。この処理は図13のステップS12に対応する。このステップST312の処理は、記録が終了されるまで続く。
記録が終了すると(ステップST314イエス)、最後の新SOBUにパケットと適宜スタッフィングを詰め込み、最後の新SOBUのセクタを再生データとしてディスクに書き込む(ステップST316)。
そして、ストリーマは、最後の新タイムマップエントリ、SOBストリーム情報(記録パラメータが先行記録に対して変更された場合のみ)およびSOB情報を生成し、メモリ内のナビゲーションデータのオリジナルPGCへ新たな1つのセルを追加し、その結果得られたナビゲーションデータをディスクに記録する(ステップST318)。この処理は図13のステップS18に対応する。
図23の処理により、ストリームセルに対するアプリケーションパケット(AP_PKT)の到着時間情報(SC_S_APAT/SC_E_APAT)が算出され、算出された到着時間情報(SC_S_APAT/SC_E_APAT)がナビゲーションデータとして記録される(ST318)。
以上説明したように、この発明の実施の形態によれば、たとえばデジタルTV放送で受信したときの各アプリケーションパケット間の転送タイミングを保持したまま情報媒体からストリームデータを再生できるような媒体上のデータ構造(記録フォーマット)を提供することができる。また、このデータ構造を利用して情報媒体にストリームデータを記録する方法を提供することができる。さらに、デジタルTV放送のデータ以外にパケット構造を持って転送されるデジタルデータも記録可能な汎用性のあるデータ構造(記録フォーマット)を提供することもできる。また、このデータ構造を利用して情報媒体にストリームデータを記録する方法を提供することができる。
なお、この発明は上記各実施の形態に限定されるものではなく、その実施の段階ではその要旨を逸脱しない範囲で種々な変形・変更が可能である。また、各実施の形態は可能な限り適宜組み合わせて実施されてもよく、その場合組み合わせによる効果が得られる。
さらに、上記実施の形態には種々な段階の発明が含まれており、この出願で開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。たとえば、実施の形態に示される全構成要件から1または複数の構成要件が削除されても、この発明の効果あるいはこの発明の実施に伴う効果のうち少なくとも1つが得られるときは、この構成要件が削除された構成が発明として抽出され得るものである。
以上述べたように、この発明によれば、効率良くストリームデータを記録できるとともに、デジタルTV放送で受信したときの各アプリケーションパケット間の転送タイミングを保持したままストリームデータを再生できるようなデータ構造(記録フォーマット)、およびこのデータ構造を利用して記録あるいは再生が行われる情報媒体を提供することができる。また、このデータ構造を用いてストリームデータを記録する方法を提供することができる。さらに、このデータ構造により記録されたストリームデータを再生する方法を提供することができる。
201…記録/再生可能光ディスク(情報媒体);401…エンコード部;402…デコード部;403…セットトップボックス;440…基準クロック(ローカルクロック)発生部;424…システムタイムカウンタ(STC)。