以下、図面を参照してこの発明の種々な実施の形態を説明する。図1は、この発明の一実施の形態に係るデータ構造を説明する図である。RecordableあるいはRe-writableな情報記録媒体の代表例として、DVDディスク(波長650nm前後の赤色レーザあるいは波長405nm以下の青紫ないし青色レーザを用いた、単記録層または複数記録層の、DVD±R、DVD±RW、DVD−RAM等)100がある。このディスク100は、図1に示すように、ファイルシステムが入っているボリューム/ファイル構造情報領域111とデータファイルを実際に記録するデータ領域112を含んで構成されている。上記ファイルシステムは、どのファイルがどこに記録されているかを示す情報で構成されている。
データ領域112は、一般のコンピュータが記録する領域120、122と、AVデータを記録する領域121を含んでいる。AVデータ記録領域121は、AVデータの管理をするためのビデオマネージャ(VMG)ファイルがあるAVデータ管理情報領域130と、DVD-Video(ROM Video)規格に準じたオブジェクトデータのファイルが記録されるROM_Videoオブジェクト群記録領域131と、ビデオレコーディング(VR)規格に準じたオブジェクトデータ(EVOBS:Extended Video Object Set)のファイル(VROファイル)が記録されるVRオブジェクト群記録領域132と、デジタル放送に対応したオブジェクトが記録されているストリームオブジェクトデータ(ESOBS:Extended Stream Object Set)ファイル(SROファイル)が記録される記録領域133を含んで構成されている。なお、SROファイルのためのレコーディング規格は、適宜、ストリームレコーディング(SR)規格と表記する。
ここで、DVD-Video(ROM Video)はビデオタイトルセット(VIDEO−TS)、録再DVD(DVD−RTR)はDVD−RTAVというように、フォーマット毎にファイルディレクトリが分けられ、この実施の形態で説明するデジタル放送対応の新たなDVD規格のファイルは、例えばDVD_HDVRというディレクトリに格納される(図3を参照して後述)。つまり、DVD_HDVRというディレクトリに、データの管理を行うためのVMGファイルと、アナログ放送及びライン入力などのアナログ記録用のオブジェクトファイルであるVROと、デジタル放送のオブジェクトであるSROファイルが記録され、そのSROファイルがESOBSとなる。
図1の構成において、1つのESOBU143は1以上のPacket Group147で構成されている。各Packet Group147は例えば16(あるいは32)パック(1 pack=1 Logical Block:2048バイト)に対応しており、各Packet Group147はPacket Group Header161と複数のTSパケット163(170個)で構成されている。各TSパケットの到着時間(Arrival Time)は、各TSパケットの前に配置されたPATS(Packet Arrival Time Stamp:4バイト)162で表すことができる。
Packet Group147の先頭に配置されたPacket Group Header161内は、図示しないが、Header_ID(0x00000FA5)が設定され、続いてパケットグループ一般情報PKT_GRP_GI、コピー管理情報CCI(Copy Control Information)またはCPI(Contents Protection Information)、および業者情報MNIあるいはMNFI(Manufacturer’s Information)を含んで構成されている。
ここで、TSパケットの到着時間は、録画開始を0(または所定の値)とし、録画終了までリニアにカウントアップさせる必要がある。ただし、STC(System Time Counter)とPATSは同じ値を示すとは限らない(初期値の違いなどのため)。しかしながら、PATS用カウンタのカウント間隔は、再生同期が合っている状態で、PCR(Program Clock Reference)取り込みと次のPCR取り込みの間隔に対応したSTC用カウンタのカウント間隔に対して、同期させると有利である。なお、PCRはMPEG−TS内の、図示しないアダプテーションフィールドに含まれている。また、Packet Groupには2つまでのESOBが混在する事を許可する。つまり、ESOB毎にPacket Groupをアラインしなくてもよいと言うことである。
なお、各PATSに固有の下位4バイトは各PATS(パケット到着時間の情報フィールド)に含まれているが、先頭PATSの上位2バイトはPacket Group Header161内の図示しないパケットグループ一般情報(PKT_GRP_GI)内に記述されるFIRST_PATS_EXTに含まれるようになっている。これにより、各PATSに6バイトのパケット到着時間を個別に記述するよりも、データ量を削減できる。
PKT_GRP_GIは、図示しないが、パケット種別PKT_GRP_TY(1=MPEG−TS)、Packet Groupのバージョン番号VERSION、Packet Groupのステータス情報PKT_GRP_SS、Packet Group内の有効パケット数Valid_PKT_Ns、先頭のパケットに対するPATSの上位2バイトFIRST_PATS_EXT等で構成されている。
さらに、PKT_GRP_SSは、スタッフィングが行われたかどうかを示すビットSTUF(このSTUFビットが設定されている場合、Valid_PKT_Nsが0xAA以外の値を取る事を示している)と、PATS_SSを含んで構成されている。ここで、PATS_SSは、PATSの精度を示す値である(例えば、PATS_SSが00のときはPATS、FIRST_PATS_EXTの両方が有効で精度6バイトとなり;PATS_SSが01のときはPATSのみ有効で精度4バイトとなり;PATS_SSが10のときはPATS, FIRST_PATS_EXTの両方が無効で精度無しとなる)。
なお、先頭パケットのPATSの拡張バイトFIRST_PATS_EXTは、例えばPacket Groupの先頭にあるパケットの到着時間の上位2バイトで構成され、下位4バイトは各パケットの前に付けられている。これにより、より正確な時間の再生処理が可能となっている。
Packet Group Header161内には、図示しないCP_CTL_INFO(コピー制御情報:適宜、CCIまたはCPIと略記)の記述場所がある。CP_CTL_INFOはPacket Group Header161のCCI(またはCPI)にあり、各Packet Groupのコピー制御をPacket Group Header161のところで行う。このCCI(またはCPI)の値は、デジタルコピー制御記述子、コンテント利用記述子により設定される。その内容は、例えばCGMS(0=禁止、1=無制限許可)と、APS(0=APS無し、1=APSタイプ1付加、2=APSタイプ2付加、3=APSタイプ3付加)と、EPN(0=コンテンツ保護(インターネット出力保護)、1=コンテンツ保護無し)と、ICT(0=解像度制限、1=制限無し)となっている。
あるいは、CCI(またはCPI)は、デジタルコピー制御(00=コピー禁止、01=1回コピー許可、11=コピー禁止)と、アナログコピー制御(00=APS無し、01=APSタイプ1、10=APSタイプ2, 11=APSタイプ3)と、EPN(0=コンテンツ保護、1=コンテンツ保護無し)と、ICT(0=アナログビデオ出力解像度制限、1=制限無し)で構成されている。ここで、APSとはAnalog Protection Systemのことでこの実施の形態ではマクロビジョン(登録商標)を想定している。
また、管理情報側(ESOBI_GI)にコピー制御情報(CCIまたはCPI)を置き全体でコピー管理(著作権管理)すること、もしくはCCI(またはCPI)を管理情報側とオブジェクト側(Packet Group)の両方に置き、オブジェクト側(Packet Group)の方を優先として、管理情報とオブジェクトの2段階でコピー管理(著作権管理)する事も考えられる。具体的には、タイトルメニューではESOBI_GIのCCIを利用し、実際の機器動作ではPacket Groupの方を優先して処理を行なうことができる。
図1のストリームオブジェクト群記録領域133に記録されるストリームオブジェクトセットESOBSの構造は、1以上のESOB141で構成され、各ESOBは、例えばTV放送の1番組に相当する。ESOB141は1以上のESOBU(Extended Stream object unit)143で構成され、ESOBUは、一定時間間隔(図示しないESOBU_PB_TM_RNGの値により変化する)分のオブジェクトデータもしくは、1以上のGOPデータに相当する。(なお、ESOBU_PB_TM_RNGは、後述する図8のESOBI内のタイムマップ情報ESOB_TMAPIに含まれている。)
ただし、転送レートが低い場合1s(1秒)以内で1GOPが送られない場合が考えられる(VRでは内部エンコードであるため自由にGOPを設定できるが、デジタル放送の場合エンコードが放送局であるため、どんなデータが来るか不明な可能性がある)。その場合は、ESOBUを1sの時間で区切り、区切ったESOBU内にリファレンスピクチャがないことを示すよう、1STREF_SZ=0を設定する。この場合、ランダムアクセスに使用できないESOBUが作られる。このため、ランダムアクセス可能なピクチャの先頭を含むESOBUをエントリESOBU(ESOBU_ENT)と称して区別する。なお、1STREF_SZの情報フィールドは、ストリームファイル情報テーブル(ESTR_FIT)に含まれるストリームタイムマップ(ESTMAP)内のESOBU_ENT(図示せず)に設けられる。
また、転送レートが高く、Iピクチャが頻繁に送られる場合も考えられる。その場合、ESOBUが頻繁に区切られ、それに伴いESOBUの管理情報が増え、全体の管理情報が肥大化する恐れがある。そこで、(ESOB最後のESOBU以外の)ESOBUは、総録画時間により決めた一定時間間隔(例えば1s毎:区切りはピクチャ単位)または1以上のGOPで区切るのが適当となる。
図2は、この発明の一実施の形態に係るデータ構造における再生管理情報層とオブジェクト管理情報層とオブジェクト層との関係を説明する図である。図2に示されるように、SRの管理データはVRと共通のファイルに記録され、SRはVRと共通に制御され、SRおよびVRはセル単位でリンクされ、再生場所の指定は再生時間単位で指定される。この管理データはHR_MANGER.IFO(図3を参照して後述)と称している。
ここでは、1つのESOBUは1以上のPacket Groupで構成され、各Packet Groupは16 Logical Block(1LB=2048バイトのとき32768バイト)としている。各Packet GroupはPacket Group HeaderとTSパケット(170個)で構成されている。各TSパケットの到着時間は、各TSパケットの前に配置されたPATS(Packet Arrival Time:4バイト)で表される。
次に、管理情報について、図3〜図10等を参照して説明する。図3は、この発明の一実施の形態に係るファイル構造例を説明する図である。この例では、EVOB、ESOBをそれぞれのディレクトリを階層ディレクトリで管理している。これにより、オブジェクト毎の管理がしやすくなり、HD_DVD-VIDEOにデータを変換する場合にもHDVR_VOBディレクトリのみを対象とすることが可能となる。
ここでは、DVD_HDVRというディレクトリにHR_MANGER.IFO(VMGファイル)を置き、HDVR_VOBにEVOBのオブジェクトファイル:HR_MOVIE.VROとEVOB毎のTMAPファイル:HR_Vmmmm.MAP(mmmmはVOB_INDEXと同じ番号:1〜1998)を置いている。そして、HDVR_SOBには、ESOBのオブジェクトファイル:HR_STRnn.SROと、ESOB(AT_SOB)の管理ファイル:HR_SFInn.SFI:(nn=00の場合はTYPE_B、nn=01〜0xffの場合はTYPE_A)と、ESOB(AT_SOB)毎のTMAPファイル:Snn_mmmm.SMP:(nn=00の場合はTYPE_B、nn=01〜0xffの場合はTYPE_A、mmmmはESOB(AT_SOB)_INDEXと同じ番号:1〜1998)を置いている。この場合、HD_DVD-VIDEOとの親和性を高めるために、VTMAP構造を共通にすることが考えられる。また、ここに図5等を参照して後述するTYPE_Cを追加する場合は、たとえば、nn=0xf0〜0xffとすることができる。
ところで、デジタルTV放送などやインターネットなどの有線を使用した放送などの圧縮動画を放送(配信)を行うための方式において、共通の基本フォーマットであるMPEG−TS方式は、パケットの管理データ部分とペイロードに分かれる。ペイロードには、再生されるべき対象のデータがスクランブルの掛かった状態で含まれている。ARIBによると、その他にPAT(Program Association Table)やPMT(Program Map Table)やSI(Service Information)に関しては、スクランブルされていない。また、PMTやSI(SDT:Service Description Table, EIT:Event Information Table、BAT:Bouquet association Table)を利用してさまざまな管理情報を作成する。
再生対象としては、MPEGビデオデータ、Dolby AC3オーディオデータ、MPEGオーディオデータ、データ放送データなど、さらに、直接、再生対象には関係ないが、再生する上で必要なPAT、PMT、SIなどの情報(番組情報等)などがある。PATには、番組毎のPMTのPID(Packet Identification)が含まれており、さらにPMTにはビデオデータやオーディオデータのPIDが記録されている。
例えばSTB(Set Top Box)の通常の再生手順としては、次のようなものがある。すなわち、電子番組表(EPG情報)等によりユーザが番組を決定すると、目的の番組の開始時間にPATを読み込み、その読み込みデータを元に希望の番組に属するPMTのPIDを決定し、そのPIDに従って、目的のPMTを読み出し、そこに含まれる再生すべきビデオ、オーディオパケットのPIDを決定する。そして、PMTおよび/またはSIによりビデオおよびオーディオの属性を読み出し、読み出した属性をビデオおよびオーディオの各デコーダへセットし、前記ビデオおよびオーディオデータをPIDに従って切り出して、再生を行う。ここで、PAT、PMT、SI等はチャネル切り替えにも使用するため(チャンネルを切り替えてすぐに映像が出るように)、数100ms毎に送信されてくる。HD_DVD-VR規格は、このようなストリームの記録再生を管理できるように構成されている。
ただし、移動体用の放送では1セグメント放送が現在行われている。ここでは、PATが無く、NIT(Network Information Table)とPMTだけである。NITで記載されているサービス番号により予めPMTが決まっており、このサービス番号に従ってPMTが決定される。
さらに、デジタル放送をチューナからストリーマなどの記録機器に送信して記録する場合には、目的の番組のオブジェクトデータのみを選択して記録する。このフォーマットをパーシャルTSと称している。この場合、PATおよび/またはPMTは目的の番組に合わせ再編集され、さらにSIT(Selection Information Table)、DIT(Discontinuity information Table)が追加される。SITは放送内のEIT(Event Information Table)などの情報を基に作られ、EITと同じタイミングで挿入される。また、DITはビットストリームが不連続な箇所に挿入される。DITは2TSパケット一組で挿入される。これにより、コンテンツが不連続かどうかを判定できる。
現在、DVDレコーダは一般に普及し、VTRの需要に取って代わりつつある。そのDVDレコーダの特徴的機能でチャプタ(エントリポイント)自動生成機能がある。この機能は、ほとんどのDVDレコーダが実装している機能で、一定時間おきにエントリポイントを打ち(自動チャプタ分割)、スキップで再生を飛ばすことができる機能である。
また、デジタル放送が普及し、将来的にはアナログ放送がデジタル放送に切り替わろうとしている。そこで、この発明の一実施の形態では、アナログ放送の場合同じくデジタル放送でもチャプタを自動作成する場合に、デジタル放送に対応したエントリポイントの打ち方を提唱する。また、DVDの再生単位であるセル毎にセルタイプC_TY(CELL_TYPE)をみて、再生処理(出力方法を)を変更することも提唱する。
ここで、デジタル放送番組をHDDやHD_DVD-RAMなどの高速なディスクメディアに記録する場合には、放送されたストリームデータをそのままデジタルデータとして記録する方が有利である。そのためにHD_DVD-VR規格が生まれた。この規格では、従来のVR(ビデオレコーディング)フォーマットとは違い、ストリームをそのまま記録するフォーマットとしてのESR(エクステンドストリームレコーディング)をVRにマージしている。これにより、HD_DVD-VR規格は、VRの資産を生かしつつデジタル放送に対応した規格となっている。
ところで、デジタル放送は国毎に放送方式がちがう。たとえば、ヨーロッパではDVB(Digital Video Broadcasting)、米国ではATSC(Advanced Television Systems Committee)、日本ではARIB(Association of Radio Industries and Businesses)となっている。
DVBでは、ビデオはMPEG2であるが、解像度が1152*1440i、1080*1920(i, p)、1035*1920、720*1280、(576, 480)*(720, 544, 480, 352)、(288, 240)*352で、フレーム周波数は30Hz、25Hzとなり、オーディオはMPEG-1 audio、MPEG-2 Audioでサンプリング周波数が32kHz、44.1kHz、48kHzとなっている。
ATSCでは、ビデオはMPEG2であるが解像度は1080*1920(i, p)、720*1280p、480*704(i, p)、480*640(i, p)でフレーム周波数は23.976Hz、24Hz、29.97Hz、30Hz、59.94Hz、60Hzとなり、オーディオはMPEG1 Audio Layer 1 & 2(DirecTV)、AC3 Layer 1 & 2(Primstar)でサンプリング周波数は48kHz、44.1kHz、32kHzとなっている。
ARIBでは、ビデオはMPEG2であり、解像度は1080i、720p、480i、480pでフレームレートは29.97Hz、59.94Hzとなり、オーディオはAAC(MPEG-2 Advanced Audio Coding)でサンプリング周波数が48kHz、44.1kHz、32kHz、24kHz、22.05kHz、16kHzとなっている。
このように各国により、デジタ放送の方式は違い、また、放送局毎にも違う可能性がある。そのため、レコーダでは、それぞれの使用する方式に応じてオブジェクトを1または複数のファイルとして記録する必要がある。
このことから、現行のVRファイル構成に対して、この発明の一実施の形態においてさらに追加されるファイルは、図3に示すように、HR_SFInn.SFIおよびHR_SFInn.BUPというファイル名において“nn”が複数存在可能なように構成される。このように構成された1以上のファイルが、各放送方式毎に追加される。
また、たとえば“nn”=00の場合は、放送方式が不明な場合や該当レコーダがその放送方式に対応していない場合に使用できる。この場合、放送方式不明のストリームまたはレコーダが非対応の放送方式のストリームは、タイプBのストリーム(ESPB_STRB)として保存できる。そこで、放送局毎(または放送方式毎)にデジタル放送用の管理用情報であるESTR_FIを変更するため、複数のESTR_FIが存在し得る事になる。
図4は、この発明の一実施の形態で扱うコンテンツの種類の一例を説明する図である。また、図5は、この発明の一実施の形態で扱うコンテンツの種類の他例を説明する図である。現行のHD_DVD-VR規格のコンテンツの種類は図4に示すようにアナログ放送若しくはアナログ入力用のEVOBとデジタル放送用ESOBの2種類あり、ESOBはさらに解析可能コンテンツ(TYPE_A_ESOB)と解析不能コンテンツ(TYPE_B_ESOB)に分けられる。EVOBはPS(Program stream)に基づいて作成され、ESOBはTS(Transport stream)に基づいて作成される。
これに加え、この発明の一実施の形態におけるTSベースのストリームで、デジタル放送でないもののコンテンツを追加する方法は、図5に示すように、4種類考えられる:
第1のタイプは、TYPE_Aとして追加し、属性情報があらかじめ決まっている場合にESIが必要なくなるため、ESIを省略した方式である;
第2のタイプは、TYPE_Aとして追加し、属性情報を従来どおり、ESIをつける方式である;
第3のタイプは、TYPE_Bとして追加する方式である;
第4のタイプは、新たなESOBのタイプとして処理する方式で、これをTYPE_Cとする。
ここで、タイプBのストリーム(例えば1秒の間に到着するパケットを含むストリームオブジェクト:ESPB_STRB)の基本単位としてAT_SOBU(Arrival Time based SOBU)が定義される。ストリームの解析不能時にPATSベースで管理情報を構築する場合、AT_SOBUはAT_SOBU_TM(Time Range of Arrival Time based SOBU)に示される時間間隔で区切られる。 AT_SOBU_TMは秒単位で指定する場合と27MHzのカウント値で指定する場合の2種類が考えられる。このAT_SOBU_TMは、図示しないが、ESOBI内に、タイプBのタイムマップ情報の一部として記述できる。
図6は、ストリームファイル情報(ESTR_FIT)内がどのように構成されるかの一例を説明する図である。図3のDVD_HDVRディレクトリは、DVDの管理情報ファイルであるHR_MANGER.IFOとアナログビデオオブジェクトファイルであるVROファイルとデジタル放送対応用のSROファイルを含んで構成されている。管理情報であるHDVMGファイル(図6のHDVR_MG)は、従来のDVD−VR規格の管理情報にESTR_FIT(Extened Stream File Information table)が追加された構成を採っている。
ESTR_FITは、ESTR_FIのサーチポインタテーブルESTR_FI_SRPTと、1以上のストリームファイル情報ESTR_FI#1〜#nと、1以上のストリームタイムマップテーブルSTMAPT#1〜#nを含んで構成されている。各STMAPTは、図示しないが、1以上のストリームタイムマップSTMAP#1〜#nを含んで構成されている。各STMAPは、ストリームタイムマップ一般情報STMAP_GIと、1以上のエレメンタリタイムマップ情報サーチポインタETMAPI_SRP#1〜#nと、1以上のエレメンタリタイムマップ情報ETMAPI#1〜#nを含んで構成されている。各ETMAPIは、1以上のストリームオブジェクトユニットエントリESOBU_ENT#1〜#nを含んで構成されている。各ESOBU_ENTは、該当ESOBUの最初のリファレンスピクチャ(MPEG−TSの場合はIピクチャ)のサイズを記述する1STREF_SZと、該当ESOBUの再生時間を記述するESOBU_PB_TMと、該当ESOBUのサイズを記述するESOBU_SZと、該当ESOBUの開始パケット位置を記述するESOBU_S_PKT_POS等を含んで構成されている。
さらに、図示しないが、自己録再用のVideo Recoding(VR)用のTMAP(Time Map)であるVTMAPTの更新日時情報(VTMAP_LAST_MOD_TM)をM_VOBI内に記載し、デジタル放送記録用のStream Recoding(SR)用のTMAPであるSTMAPTの更新日時情報(STMAP_FI_LAST_MOD_TM)をESTR_FI_GI内に、それぞれ記載し、この値と各TMAPTファイルに記載されている更新日時情報を比較し、同じ値であれば整合性が取れているとして処理を行うようにする。また、ストリームデータの管理はVMG内に保存され、VRデータと同列に管理される。
ストリームの管理情報はESTR_FIT(Stream File Information table)に保存されており、ESTR_FITはESTR_FI_SRPTと各ESTR_FIとSTMAPITで構成される。ESTR_FI_SRPTはESTR_FITI(ESTR_FIT Information)と1以上のESTR_FI_SRPで構成される。ESTR_FITIは、ESTR_FIの総数と本テーブルの終了アドレスで構成され、ESTR_FI_SRPは、ESTR_FI_FN(ESTR_FI_file_name)とESTR_FIファイルの編集更新時間(ESTR_FI_LAST_MOD_TM)とAP_FORMAT_1(放送方式:Majorな括り:Japan_ISDB、ATSC、EU_DVB等)と録画した国コード:Country code(国コード:JPN=日本)、PKT_TY(1=MPEG-TS)、ESOBI_Ns(SOBの数:ESOBの数またはAT_SOBの数)ESTR_FIファイルのサイズとSTMAPの合計サイズ等で構成することができる。
複数存在し得るESTR_FIのファイル中から使用するESTR_FIファイルを指定するために図6のESTR_FI_SRPT情報が存在し、その構造はESTR_FI_SRPTIと各ESTR_FIに対するポインタ情報であるESTR_FI_SRPで構成される。ここで、ESTR_FI_SRPは、ESTR_FIのファイルネームESTR_FI_FN、ESTR_FIファイルの更新日時情報ESTR_FI_LAST_MOD_TM、ESTR_FIのファイルサイズESTR_FI_SZ等の他に、放送方式情報であるAP_FORMAT_1とCountry code、Packet TypeとESOBIの数と、ESTR_FIのサイズと本ESTR_FIに属するSTMAPサイズの情報を含んで構成される。ここで、更新日時情報はESTR_FIファイル内にも設定されており、編集時ESTR_FIを変更した場合、その値も更新し、再生時、この値とESTR_FIファイル内の値を比べ、同じ値の場合、再生可能とする。また、例えばESTR_FIの数は4個以下とし、SOBIの数も999個以下としている。さらに、ESTR_FI file name:HR_SFInn.IFOのnnの部分がSTMAPのFile Name:HR_STMnn、IFOに反映され、STMAPのファイル名が決定される。
ところで、TSストリームのコンテンツとしては、デジタル放送ストリーム以外にも、デジタルハンディーカム、各種有線放送、インターネット放送などがある。それぞれのストリームの規格は、記録する場合に解析可能であるが、現状のHD_DVD-VR規格では登録されておらず、STCベースのTMAPを作成可能であるが、STR_FI、SOBI等で作成不能な部分がある可能性がある。そこで、この発明の一実施の形態では、業者(メーカー)独自のフォーマットでSTR_FI、ESOBI等を作成可能なモードをHD_DVD-VR規格に追加している。
ここで、デジタル放送ストリーム以外のストリームの特徴は、解析可能なストリームのためPTSベースのTMAPを作成可能であるが、component_tag、NETWORK_ID、SERVICE_TYPEなどの日本の放送では必ず存在するパラメータが無い可能性があるということである。そのため、従来のTYPE_A、TYPE_Bのストリームでは該当せず、この発明の一実施の形態では、次で述べるような方法で、デジタル放送ストリーム以外のストリームを新たなストリームとして処理するようにしている。
すなわち、ストリームがこの発明の実施により追加されたストリームである事(Manufacturer_MODE)を示すように、図6のAP_FORMAT_1に特別なコード(例えば、ffffffffhまたは0x00000000h)を設定する。さらにこの発明が適用される機器を作成したメーカーを示すID(Manufacturer_ID)、記録したストリームのソースを設定するID(MNF_AP_ID)等を追加している。ここで、Manufacturer_IDとしては、例えばTOSHIBOといった単一メーカーを表す記載とすることができる。あるいは、Manufacturer_IDとして、メーカーグループ共同のIDを記載することもできる(例えばTOSHIBO&MEC)。さらには、Manufacturer_IDが示す情報として、コンピュータのシステムソフト供給源や記録されるストリームのコンテンツプロバイダを表す記載を含めることもできる。
また、MNF_AP_IDの値は、各メーカー(業者)が自由に設定可能であある。例えばデジタルカメラレコーダ、デジタルVCRなど、ソースの所在をキャラクターで示したものをMNF_AP_IDとして用いることができる。これにより以下に続くESTR_FI(別ファイル)を開かずにそのESTR_FIの形式を判別することができ、レコーダがサポートしているフォーマットかどうかを判定できる(AP_FORMAT_1を用いた再生判定処理については図21を参照して後述する)。
この発明の一実施の形態における管理情報について説明を続ける。図7は管理情報ファイル(HR_SFInn.IFO)の構成例を説明ずる図であり、図8は管理情報の一部(ESOBI_GI)の構成例を説明ずる図であり、図9は管理情報の他部(ESOB_ESI)の構成例を説明ずる図である。また、図10は管理情報(PGCI)の構成例を説明ずる図である。
図6を参照して説明したESTR_FIは、ESTR_FI_GI(General Information)、1以上のESOBI_SRP(Stream Object information Search Pointer)、このESOBI_SRPと同数でその値で示されるESOBI(ESOB Information)で構成される。図7のHR_SFInn.IFOの一部に対応するESTR_FI_GIは、このESTR_FIが管理するオブジェクトのファイル名/ファイル番号(SFI_ID)とこのESTR_FI内のESOBI_SRPの数、このファイルのVERSION番号、パケットタイプPKT_TY(1=MPEG-TS)、パケットサイズPKT_SZ、パケットグループサイズPKT_GP_SZ(16 Logical Blockで固定)、パケットグループ内のTSパケット数PKT_Ns(0xAA:170 TS packetで固定)、STMAPの更新時間、STMAPのサイズ等を含む。このESTR_FI_GIには、さらに、この発明が適用される機器を作成したメーカーを示すID(Manufacturer_ID)、登録したストリームのソースを設定するID(MNF_AP_ID:その値は各メーカーが自由に設定可能、例えばデジタルカム、デジタルVTRなど、ソースの所在を示すID)、Manufacturer_DATA(メーカーが自由に設定可能な領域)等が追加されている。
ここで、SFI_IDは“HR_SFInn”と表現され、タイプBの記録モードでは“HR_SFI00”となる。一方、タイプAの記録モードでは“HR_SFInn”の「nn」は01からFFまでの何れか1つの値をとる。つまり、“HR_SFInn”の「nn」が「00」であるか否かにより、記録されたESOBがタイプAなのかタイプBなのかを識別できる。
ESOBIは、ESOBI_GI、ESOB_ESI(Elementary Information)、ESOB_DCNI(Discontinue Information)、ESOB_CONNI、ESOB_TMAP(Time Map)等で構成されている。図8に示すように、ESOBI_GIには、少なくともESOB_REC_MODE、AP_FORMAT_2(Minor)、録画開始日時(ESOB_REC_TM)、録画時間(ESOB_DURATION:有効値が無い場合はALL 0xff)、先頭の時間(ESOB_S_PTM/ESOB_S_PATS)、終了時間(ESOB_E_PTM/ESOB_E_PATS)等が記録され、さらに、PSI/SIの値を元に、SERVICE_ID、PMT_PID、NETWORK_ID、TS_ID、FORMAT_ID、SERVICE_TYPE、PCR_PID等を記録できるようになっている。ここで、AP_FORMAT_2は、その記載内容「1」でISDB-S(BS/CS放送)、「2」でISDB-T(地上デジタル放送)、「0xff」でその他(この発明の一実施の形態で追加されるデジタルハンディカム(登録商標)等のストリームはここを設定)を示すようになっている。
図8のESOBI_GIにはさらに、ESOB_ES_Ns(録画のために選択したESの数)、ESOB_V_ES_Ns(録画したビデオESの内、TMAPを作ったESの数)、ESOB_A_ES_Ns(録画したオーディオESのうち、TMAPを作ったESの数)を記録でき、さらに、Manufacturer_DATA(メーカーが自由に設定可能な領域)等を追加できるようになっている。
ただし、TYPE_Bと今回追加されるストリームの場合、解析出来ないで記録される場合がある。その場合は、PSI/SIの値が不明(もしくは信用出来ない)と言う事になり、SERVICE_ID、PMT_PID、NETWORK_ID、TS_ID、FORMAT_ID、SERVICE_TYPE、PCR_PID等が記載出来ない。このようなときにESOB_TYにPSI/SIの情報が無効であると言うフラグを設定することが考えられる。その場合、上記のSERVICE_ID、PMT_PID、NETWORK_ID、TS_ID、FORMAT_ID、SERVICE_TYPE、PCR_PIDの値が無効となる。または、全体のフラグで示すのでなく、SERVICE_ID、PMT_PID、NETWORK_ID、TS_ID、FORMAT_ID、SERVICE_TYPE、PCR_PIDのそれぞれの値に無効値(0xff)を設定し、無効の場合はその値を設定する事も考えられる。ただし、TYPE_BでもPSI/SIの値が有効の場合はあり得る。
図8のESOBI_GIに含まれるESOB_REC_MODEはストリームのタイプを示しており、01でType A SOB、02でType B SOB、03でType C(図5の第4タイプ)を示している。TYPE Aはストリームの構造が解析可能なストリームで管理情報がPTMベースで管理されており、TYPE Bはストリームの構造が解析できず、そのため、管理情報がPATSベースで管理されている。そのため、TMAPもType AはPTMベース、Type BはPATSベースとなっている。一方、TYPE Cでは、TMAPはPTMベースであるが、管理情報がARIBに合わない方式になっている。さらに、NORMAL flag がこの領域にある場合(図8のESOBI_GI)とESI内にある場合(図9のES_TY)の2種類が考えられる。
図9のESOB_ESIには、ES_TY(ビデオストリームかオーディオストリームか等を識別する情報)と、ES_PID(ESのPID)と、STREAM_TYPE(PMT内で示されるストリームタイプ)と、Es_Index(コンポーネント記述子で示されるCOMPONENT_TAGの値、若しくは本機器が適当に割り振った重ならない値)、さらに、Manufacturer_DATA(メーカーが自由に設定可能な領域)を追加することができる。
ここでのManufacturer_DATAには各ストリームの属性情報を入れることが可能で、Video streamの場合には、図9に例示するようなビデオ属性情報V_ATRを入れることが可能となっている:
Video圧縮モード(圧縮方式の種類:1=MPEG1、2=MPEG2、3=MPEG4_AVC、4=VC-1・・・)、
Aspect Ratio(0=4:3、1=16:9)、
Souse resolution(0=352*240(288) 、1=352*480(576) 、2=480*480(576) 、3=544*480(576) 、4=704×480(576)、5=720*480(576) 、8=1280*720、9=960*1080、10=1280*1080、11=1440*1080、12=1920*1080、16=640*480(576)、17=unspecified(Horizontal)*240(288)(Vertical)、18=unspecified(Horizontal)*480(576)(Vertical) 、19=unspecified(Horizontal)*720(Vertical) 、20=unspecified(Horizontal)*1080(Vertical)、1fh=unspecified、
Souse picture progressive mode(0=Interlace、1=Progressive、3=unspecified)、
frame rate(24/1.001、2=24、3= 25、4= 30/1.001、5=30、6=50、7= 60/1.001、8=60、0xf=unspecified)等。
ここで、unspecifiedは、PSI/SIの解析だけでは分からない場合でオブジェクト内を調べられない場合に、「不明」と言う事で記載する場合に設定する。ARIBにおいては、特に垂直解像度だけが判明し、水平解像度が不明の場合があるため、垂直解像度のみ記載する事が可能となっている。
Audio streamの場合は、図9に例示するように、Manufacturer_DATAを、Audio_Coding_Mode(0=AC3, 2=MPEG1 or MPEG2 without extension bitstream, 3=MPEG2 with extention bitstream, 4=L-PCM,0x30=MPEG2 AAC 0x3f=unspecified)、Sampling_frequency fs(0=48kHz, 1=96kHz, 2=192kHz, 4=12kHz, 5=24khz, 8=32kHz, 9=44.1kHz, 0xf=Unspecified)、number of audio channels(0=1h:Mono, 1=2ch:Stereo, 2=3ch, 3=4ch, 4=5ch, 5=6ch, 6=7ch, 7=8ch, 9=2h:Dual Mono, 0xf=unspecified)、Bit rate等のオーディオ属性情報A_ATRで構成することが可能となっている。
ただし、図5の第1タイプの場合にはESIは存在せず、前もって決められた属性で再生を行う。これは、記録するソースが固定で、そのソースから来るストリームの属性があらかじめ判明している場合に有効な手段であるが、不明若しくは複数の種類のストリームを扱う場合にはESIが必要となる。
この発明の一実施の形態では、新たなESI構造が提案されているが、従来のISDB対応の構造も同時に使用可能となっている。どちらの構造が使用されるのかの判定を行うため、ESOB_GI内に、若しくはESI内のES_TYにフラグ(NORMAL flag)を設け、このNORMAL flagを用いてその判別を行う。このNORMAL flag は、ESIが従来のARIB仕様のものであるか、この発明の一実施の形態で新しく提案している方式であるかを判定する情報である。これにより、再生時、ESIを読み込むときにそのESIの方式を判定可能となる。
ESOB_TMAPは、図示しないが、ESOB_TMAP_GIと1以上のES_TMAPI_GIで構成される。ここで、ESOB_TMAP_GIは、ADR_OFS(ファイル先頭からのESOB先頭までのPacket Group番号(又はLBアドレス))と、PTMベースの場合、ESOBU_PB_TM_RNG(ESOBUの再生時間の範囲:1=2s以下、2=3s以下、3=1s以下)と、ESOB_S_PKT_POS(ESOBの先頭のPacket Group内での始まり:0≦ESOB_S_PKT_POS≦169)と、ESOB_E_PKT_POS(ESOBの先頭のPacket Group内での終わり:0≦ESOB_E_PKT_POS≦169)と、ESOB_SZ(ESOBのサイズ)と、ES_TMAP_GI_Ns(本ESOBに所属するES_TMAPの数)で構成される。
ES_TMAPI_GIは、ESIN(本TMAPの対象ESのESI番号)、ADR_OFS(ESOBファイル先頭から本ESの先頭までの論理アドレス)、ES_S_PTM(スタートPTM)、ES_E_PTM(エンドPTM)、ES_ESOBU_ENT_Ns(ESOBU_ENTの数)、LAST_ESOBU_E_PKT_POS(最後のESOBUのPacket Group内での位置)、STMAP_N(本ESに属するSTMAPIT内のTMAP番号:各STMAPTに順番に記録されている場合はこの番号は無くても良い)で構成される。
STMAPITは、別領域に記録され(別ファイル)、STMAPITIと1以上のSTMAPI_GIと1以上のETMAP_SRPとそれと同数のETMAPIで構成される。STMAPTIは、STMAPTのエンドアドレス情報、本TMAPのバージョン情報、STMAP_SRP_Ns(TAMP_SRPIの数=TMAPIの数)、STMAPの更新日時情報(VMGIの値と同じ)、STMAPI_GIの数で構成される。STMAP_GIは所属するETMAP_SRPの数で構成され、STMAPに属するETMAPは頭から数順に決められる。ETMAP_SRPはETMAPIへのアドレス情報とESOBU_ENTの数で構成されている。ただし、ESOBU_ENT間にごみデータが有っても良い。
PATSベースの場合、ESOB_TMAP_GIは、ADR_OFS(ファイル先頭からのESOB先頭までのPacket Group番号(又はLBアドレス))と、AT_SOBU_TM(ESOBUの到着時間間隔:0=1s,1=2s)と、ESOB_S_PKT_POS(ESOBの先頭のPacket Group内での始まり:0≦ESOB_S_PKT_POS≦169)と、ESOB_E_PKT_POS(ESOBの先頭のPacket Group内での終わり:0≦ESOB_E_PKT_POS≦169)と、AT_SOBUI_Ns(本ESOBに所属するAT_SOBUの数)と、ESOB_SZ(ESOBのサイズ)で構成され、編集はAT_SOBU単位で行い、PATS開始/終了時間(CELLI)で調整を行う。
ここで、ESOBU/EVOBU_PB_TM_RNGを設定する事により、録画時間が増えても、TMAPI情報が極端に大きくなることを防ぐことが可能となる。ただし、各エントリの時間間隔が広がる為、2倍速再生等がスムーズにできない可能性は増える。
PTMベースのESOUB_ENTの場合は、エントリ内の最初のリファレンスピクチャ(Iピクチャ等)のESOBU先頭からの最終アドレス情報(LB単位)、ESOBUの再生時間(フィールド数)、ESOBUサイズ(ESOBUに属するパケットグループの数)、ESOBU_S_PKT_POS(ESOBUの先頭が入っているパケットグループの先頭からのパケット数)等で構成される。
タイムサーチの場合、PB_TMの累積で目的の時間のESOBUを求め、そのESOBUの先頭からのフィールド数で再生開始PTMを換算する。ここで、目的のESOBUをK、目的のアドレスをAとすると、
A=ESOB__ADR_OFS+目的のESのES_ADR_OFS+Σk-1 N=1ESOBU_SZ(N)×16+1
となる。さらに、先頭のパケットはESOBU_S_PKT_POSの値のパケットとなり、このアドレスにアクセスすることになる。
PATSベースのAT_SOBU_ENTは、Packet単位の場合とPacket Group単位の2種類が考えられる。Packet単位の場合、より正確なアドレスが得られるが、AT_SOBU_ENTのデータが増え、Packet Group単位の場合はAT_SOBU_ENTのデータは少ないがPacket Group単位でしかアドレスを取れない。
Packet単位の場合は、AT_SOBU_SZとAT_SOBU_POSで構成される。AT_SOBU_S_PKT_POSはPacket Group内でのAT_SOBUの先頭の位置をPacket数で示している。Packet Group単位の場合はAT_SOBU_SZで構成され、AT_SOB_S_PKT_POS、AT_SOB_E_PKT_POSは0に固定される。
また、ESOB_TMAP_GIには、ADR_OFSとAT_SOB_SZ、AT_SOB_E_PKT_POSがAT_SOB全体の値に関した値として記載される。ここで、
AT_ADR_E_OFS=AT_SOB_SZ-(AT_ADR_S_OFS+Σk-1 N=1AT_SOBU_SZ(N)+1)
また、AT_SOB_SZ>AT_ADR_S_OFS、AT_SOB_SZ>AT_SOBU_SZ等の式も成り立つ。
ESOB_SZは、AT_SOBの先頭の属するPacket GroupよりAT_SOBにPacket Groupの最後の属するPacket GroupまでのPacket Group数で、ESOBU1_SZはESOBUの先頭のPacket GroupからESOBU最後のPacket Groupまでの数となり、各ESOBU_S_PKT_POSはESOBUの切れ目とPacket Groupの切れ目の差をPacket数で表している。時間情報は、PATSベースのため、ESOBの開始時間としてESOB_S_PATS、終了時間をESOB_E_PATSとし、PATSで表している。ただし、ESOB_E_PATSに関しては、最後のPacket Groupの最後のPacketのPATS(到着開始時間)であり、最終受信終了時間では無い。編集はESOBU毎に行い、再生開始時間(CELLIのCELL_S_PATS)を指定する。ESOBU毎の編集のため、ESOB_S_PATSは必ずESOBUの先頭と一致する。ADR_OFSはファイル先頭からESOBの先頭までのLBNである。
図10は、HDVR_MG(図3のHDVMGファイル)に含まれるEX_ORG_PGCIおよびEX_UD_PGCIT(プレイリスト情報)がどのように構成されるかの一例を説明する図である。PGC情報(ORG_PGCIまたはUD_PGCI)は再生情報である。通常のVRフォーマットと同じく、ORG_PGC情報は録画時に機器が自動作成するもので、録画順に設定される。UD_PGC情報はユーザが自由に追加できるもので、再生順番に従って作成され、プレイリストと呼ばれている。この2つ(ORG_PGCIとUD_PGCI)のフォーマットはPGCレベルで共通ある。
ここで、PGC情報(ORG_PGCIまたはUD_PGCI)に含まれるプログラム情報(PG情報:EX_PGI)には、このPGが更新された日時情報が保存される。これにより、そのPGが何時編集されたかがわかる。ここで、PG番号は該当ディスクに記録し始めてからの絶対番号で、他のPGを削除しても変わらないインデックス番号としている。
さらに、CELL情報では、CELLタイプにTYPE_A/B/C(図5参照)の種別が加わっており、ESOBI_SRP番号、開始時間、終了時間、再生するデフォルトのビデオストリームのESI番号等を指定する。ここで、開始時間、終了時間は、再生時間(PTMベースの場合)またはPATS時間(PATSベースの場合)の2種類のどちらかで表わされる場合が考えられる。
時間指定を再生時間(再生時の実時間)にすると、従来のVRと同じアクセス方法が可能となる。すなわち、ユーザが再生時間で再生個所を指定できるため、ユーザ希望が完全に反映されることになる。ただし、この方法は、ストリームの内容が十分に解析可能な場合に指定できる方法であり、十分に内容が分からない場合には転送時間単位で指定せざるを得ない。
なお、再生時間で指定した場合、必ずしもIピクチャの先頭で再生を開始できるとは限らない。再生開始のフレームがIピクチャで無い場合は、その直前のIピクチャよりデコードを開始し、目的のフレームまでデコードをした所で、表示を開始し、ユーザには指定されたフレームから再生開始した様に見せる事により対応している。また、PGに特有のID番号(PG_INDEX)を付け、途中のPGを削除しても変わらない番号でPGを指定できるようにしている。さらに、CELLには再生するESTR_FI番号とESOBI_SRP番号を設定している。
ところで、再生処理時などにおいて参照するIDは、再生するストリームを代表するストリームのPIDを設定する方法と、マルチビューTVなどの場合などで、コンポーネントグループのIDを設定する方法と、ESI番号で指定する方法が考えられる(PIDの設定には、13ビットの実データで記載する方法、PMT内の順番を記載する方法、またはコンポーネントタグの値を記載する方法などがある)。また、参照するGRP番号(GRP_SRP番号)を入れ、切り換える方法も考えられる。
なお、プログラムに特有のID番号(図10のEX_PGI#pなどに対応するPG_INDEX:図示せず)を付けることで、途中のプログラムやセルを削除しても変わらない番号でプログラムやセルを指定できるようにしている。また、図10のセル情報(EX_CI)には、再生するストリームのファイル番号(ESTR_FIN)と対応ESOBIのサーチポインタ番号ESOBI_SRPNを設定している。さらに、EX_CIには、チャプタに相当するセルエントリポイントの情報C_EPI(Entry Point Information)が設けられている。
図10のEX_PGC情報に含まれるプログラム情報(EX_PGI#1〜#p)各々には、図示しないが、該当プログラムが更新された日時情報(PG_LAST_MOD_TM)が保存される。これにより、該当プログラムが何時編集されたかがわかる。また、各EX_PGIには、番組名等の記述用にプライマリテキスト情報(PRM_TXTI)のフィールドが用意されている。また、その他のテキスト情報を保存するため図10のEX_TXTDT_MG内にアイテムテキスト(IT_TXT)領域を設け、そこにその他の情報(監督名、主演名、…等)を保存する。そして、該EX_PGIにはその保存したIT_TXTのサーチポインタ番号を設定してリンクさせ、さらに、IT_TXTデータの方にも対応するプログラム番号を設定している。ここで、プログラム番号は、例えば図1のディスク100に記録し初めてからの絶対番号で、他のプログラムを削除しても変わらないインデックス番号(PG_INDEX)としている。
また、EX_PGIには、プレイリストと同様にレジューム情報フィールド(PG_RSM_MRKI)が存在し(プレイリストのサーチポインタに存在する)、各プログラム毎のレジュームマーカ(再生中断時にどこまで再生したかを示すマーカ)を記述できるようにしている。図示しないが、PG_RSM_MRKIには、再生を再開するための情報として、セル番号CN、再生開始点MRK_PT、そのマーカを作成した日時情報MRK_TMを設定している。これらをタイトルレジュームとして使用する。MRK_PTには、ムービーセルあるいはタイプAのストリームセルでは再生時間PTMが記述され、タイプBのストリームセルではパケット到着時間PATSが記述される。
さらに、EX_PGIには、プログラムの代表画像情報フィールド(PG_REP_PICTI)が存在する。このPG_REP_PICTIには、プログラム毎の代表画像情報(タイトルメニューなどでサムネールとして表示する画像のマーカ)として、ピクチャポイントPICT_PT、ピクチャポイントが存在するセルの番号CN等が記述される。PICT_PTには、ムービーセルあるいはタイプAのストリームセルでは代表画像の再生時間PTMが記述され、タイプBのストリームセルでは代表画像のパケット到着時間PATSが記述される。
図示しないが、図10のC_EPIには、各セルタイプ毎に2種類あり、合計6種類となる。M_CELL_EPI_TY_Aは、エントリポイント情報のタイプ(EPI_TY)と、エントリポイントがついている個所の再生時間(EP_PTM)で構成される。また、M_CELL_EPI_TY_Bは、EPI_TYおよびEP_PTMの他にPRM_TXTI(プライマリテキスト情報)をさらに含んで構成されている。
STR_A__CELL_EPI_TY_A(ESOBタイプA用)は、エントリポイント情報のタイプ(EPI_TY)と、エントリポイントがついている個所の再生時間(EP_PTM)で構成される。また、STR_A__CELL_EPI_TY_Bは、EPI_TYおよびEP_PTMの他にPRM_TXTI(テキスト情報)をさらに含んで構成されている。
STR_B__CELL_EPI_TY_A(ESOBタイプB用)は、エントリポイント情報のタイプ(EPI_TY)と、エントリポイントがついている個所のパケット到着時間(EP_PATS)で構成される。また、STR_B__CELL_EPI_TY_Bは、EPI_TYおよびEP_PATSの他にPRM_TXTI(テキスト情報)をさらに含んで構成されている。
図11は、この発明の一実施の形態に係るデータ構造を利用して、情報記録媒体(光ディスク、ハードディスク等)にAV情報(デジタルTV放送プログラム等)を記録し再生する装置の一例を説明するブロック図である。この録再装置は、図示するように、MPU部80、表示部104、デコーダ部59、エンコーダ部79、TVチューナ部82、STC部102、D−PRO部52、一時記憶部53、ディスクドライブ部51、キー入力部103、ビデオミキシング部66、フレームメモリ部73、TV用D/A部67、地上波デジタルチューナ部89、IEEE1394(および/またはHDMI)I/F部74、イーサネット(登録商標)I/F部(図示せず)、リモコン受信部104、さらに、STB部(BSデジタルチューナ等)83、緊急放送検出部83b、HDD部100a等により構成されている。この構成では、録再DVDレコーダにストリーマの機能を追加する形となっている。
エンコーダ部79は、A/D部84、ビデオエンコード部87、オーディオエンコード部86、副映像エンコード部(図示せず)、フォーマッタ部90、バッファメモリ部91等により構成されている。また、デコーダ部59は、分離部60、ビデオデコード部61、副映像デコード部63、オーディオデコード部64、TSパケット転送部101、V−PRO部65、オーディオ用D/A部70等により構成されている。さらに、STB部83には、デジタル放送を受信するためのアンテナ83aが接続されている。なお、STC部102は27MHzベースでカウントするように構成されている。
記録時の信号の流れは、次のようになる。すなわち、STB部83(または地上波デジタルチューナ89)で受け取ったTSパケットデータは、フォーマッタ部90で、パケットグループ化してバッファメモリ部91へ一時保存し、一定量たまった時点でディスク100および/または100aに記録する。このフォーマッタ部90にはPATS用の内部カウンタ90aが接続されている。TSパケットの到着時間はPATS用のカウンタ90aでカウントし、そのカウント値を各TSパケットの先頭に付けて、バッファメモリ部91でバッファリングする。このカウンタ90aはPCR(またはSCR)によりカウント間隔の微調整を行い同期化するが、STC102のようにPCR(またはSCR)の値をロードする事は無い。
この時の動作は、TSパケットを受信すると170パケットづつグルーピング化し、パケットグループヘッダを作成する。その場合、Packet Groupの先頭のPacketのPATSの上位2バイトのみヘッダ(FIRST_PATS_EXT)に入れ、それ以外のPATSは下位4バイトのみがTSパケットとともに(TSパケットの前のPATSに)保存される。また、地上波チューナ82やライン入力から入力されたアナログ信号は、A/D部84でデジタル変換される。そのデジタル信号は、各エンコード部へ入力される。すなわち、ビデオ信号はビデオエンコード部87へ、オーディオ信号はオーディオエンコード部86へ、文字放送などの文字データは図示しない副映像エンコード部へ入力される。ここでは、例えばビデオ信号はMPEG圧縮され、オーディオ信号はMPEGオーディオ圧縮がなされ、文字データはランレングス圧縮される。
各エンコーダ部(VR用)からの出力は、圧縮データがパック化された場合に2048バイトになるようにパケット化されて、フォーマッタ部90へ入力される。フォーマッタ部90では、各パケットがパック化され、さらに、プログラムストリームとして、多重化され、D−PRO部52へ送られる。
D−PRO部52では、16 Logical Bock毎にECCブロックを形成し、エラー訂正データを付け、ドライブ部51によりディスク100へ(あるいはHDD100aへ)記録を行う。ここで、ドライブ部51がシーク中やトラックジャンプなどのためビジィー状態にある場合には、一時記憶部53へ入れられ、ドライブ部51の準備ができるまで待つこととなる。さらに、フォーマッタ部90では、録画中、各切り分け情報を作成し、定期的にMPU部80へ送る(GOP先頭割り込みなど)。切り分け情報としては、EVOBU(ESOBU)のパック数、EVOBU(ESOBU)先頭からのリファレンスピクチャ(Iピクチャ)のエンドアドレス、EVOBU(ESOBU)の再生時間などがある。
また、再生時の信号の流れは、ドライブ部51によりディスク100から(あるいはHDD100aから)データを読み出し、D−PRO部52でエラー訂正を行い、デコーダ部59へ入力される。MPU部80は、入力されるデータがVRデータか、SRデータかの種別を(図5のセルタイプにより)判定し、再生前にその種別をデコーダ部59に設定する。SRデータの場合、MPU部80は、再生するESI番号により再生するPIDを決め、PMTより再生する各アイテム(ビデオ、オーディオ等)のPIDを決め、デコーダ部59へ設定する。デコーダ部59内では、そのPIDを元に、分離部60から各TSパケットを各デコード部61〜64へ送るとともにTSパケット転送部101へ送り、到着時間に従ってSTB部83(およびIEEE1394I/F部74)へTSパケットの形で送信する。各デコード部61〜64は、それぞれデコードを行い、D/A部67でアナログ信号に変換し、TV68で表示する。VRデータの場合、分離部60は、固定のIDに従い、各デコード部61〜64へ送る。各デコード部61〜64は、それぞれデコードを行い、D/A部67でアナログ信号に変換し、TV68で表示する。
記録時の信号の流れでは、STB部83(または地上波デジタルチューナ89)で受け取ったTSパケットデータは、フォーマッタ部90でパケットグループ化されワークRAM91へ保存される。このワークRAMに一定量たまった時点(1またはその整数倍のCDA分がたまった段階で)でディスク100(および/またはHDD100a)に記録される。この時の動作では、TSパケットを受信すると170パケットづつグルーピング化し、パケットグループヘッダ(図1の161)を作成する。すなわち、
1)TSパケットを受信する。
2)STCが一周したか(Wrap aroundしたか)をチェックし、した場合はその位置情報より、管理情報の一部(CNT_SEG情報:CNT_SEGI)を作成する。ここで、図7のESOBIは、図示しないが、ESOBの不連続情報ESOB_DCNIを含んでおり、このESOB_DCNIがCNT_SEGIを1以上含むように構成されている。各CNT_SEGIはCNT_SEG_SZ(CNT_SEGのサイズ:Packet Group数)およびCNT_SEG_PKT_POS(Packet Group内でのCNT_SEGの先頭のPacket数)で構成されている。これらの情報から、記録/再生装置のシステムタイムカウンタSTCのカウント動作が1周した(Wrap aroundした)か否かを示すことができる。これにより、例えば時間情報PTMにESOB先頭からのCNT_SEG数を入れ、事前にSTCのWrap aroundが発生している事を確認し、TMAPの計算などに使用することができる。
3)パケットグループの先頭の場合は、Header_ID:0x00000fa5を設定し、先頭でない場合は5)へ移行する;
4)TSパケットの到着時間をPATSとして、PATSの下位4バイトをTSパケットの前に配置し、先頭のPATSの上位2バイトをFIRST_PATS_EXTとしてPacket Group Header(図1の161)に設定し、6)へ移行する;
5)TSパケットデータエリアに取り込んだTSパケットに対して、PATSの下位4バイトをTSパケットの前に付け、Packet Groupのデータリアに設定する;
6)パケットグループが終わったかどうかを判定し(170個のTSパケットをグルーピングしたかどうかを判定し)、終わってない場合は、1)へ移行し、終わった場合は、CCI処理、MNFI処理を行い、グループデータをバッファRAM内に一時保存する。
なお、再生時は、ディスク100および/または100aから読み出したパックデータを分離部60で解析し、TSパケットが入っているパックの場合にはTSパケット転送部101へ送り、さらに、その後、各デコーダ61〜64へ送って、再生を行う。STB部83へ転送する場合(あるいはデジタルTV等の外部機器へIEEE1394等により送信する場合)は、TSパケット転送部101は、そのデータを到着時と同じ時間間隔で、TSパケットのみを転送する。STB部83は、デコードを行い、AV信号を発生させ、そのAV信号をストリーマ内ビデオエンコーダ部を通してTV68などで表示する。
図11の装置で用いる媒体100(100a)の特徴を簡単に纏めると、次のようになる。すなわち、この媒体は、管理領域130とデータ領域131で構成され、データ領域にはデータが複数のオブジェクトデータ(ESOB)に分かれて記録され、それぞれのオブジェクトデータはデータユニット(ESOBU)の集まりで構成される。そして、1つのデータユニット(ESOBU)は、MPEG−TSに準じたデジタル放送信号をTSパケット毎に複数パケットでパケットグループ化したパケットグループにより構成される(図1参照)。一方、前記管理領域130は再生手順を管理する情報としてEX_PGC情報(EX_PGCI)を持ち、このEX_PGC情報はセル情報(EX_CI)を含んで構成される。さらに、管理領域130内にオブジェクトデータ(ESOB)を管理する情報を持つ。
図11の装置は、上記のようなデータ構造を持つ媒体100(100a)に対して、ビデオレコーディングの他にストリームレコーディングを行うことができる。その際、TSパケットのストリーム内からプログラムマップテーブルPMTやサービス情報SIを取り出すために、MPU部80はサービス情報取り出し部(図示せず;管理データ作成部80Bの一部を構成するファームウエア)を持つように構成される。またこのサービス情報取り出し部で取り出した情報を元に、属性情報(PCRのパック番号あるいはPCRのLB数番号など)を作成する属性情報作成部(図示せず;管理データ作成部80Bの一部を構成するファームウエア)を持つように構成される。MPU部80はさらに、図21等の処理を行うファームウエアを、フォーマット管理部80Yとして具備している。
図12は、図11の装置の全体の動作の一例を説明するフローチャート図(全体動作処理フロー)である。ここでのデータ処理は、録画処理、再生処理、データ転送処理(STBへのデジタル出力処理など)、番組設定処理、編集処理の5通りとなる。例えば図11の装置の電源がオンされると、MPU部80は、(工場出荷時またはユーザが設定した後の)初期設定を行い(ST10)、表示設定を行なう(ST12)。そして、緊急放送フラグおよび予約録画のフラグがセットされているかどうかチェックし、セットされていれば(ST13Aイエス)予約録画の番組設定を行って、所定の時間に録画処理を行うよう設定する(ST13B)。緊急放送フラグおよび予約録画のフラグがセットされていなければ(ST13Aノー)、緊急放送の録画済みフラグがセットされているかどうかチェックし、セットされていれば(ST13Cイエス)、ユーザが何もしなくても、緊急放送の表示処理を行う(ST13D)。緊急放送の録画済みフラグがセットされていなければ(ST13Cノー)、ユーザ操作を待つ状態に移る。
ユーザが図11のキー入力部103またはリモコン103aからキー入力を行うと(ST14)、MPU部80はそのキー入力の内容を解釈する(ST16)。この入力キー解釈の結果に応じて、以下の4つのデータ処理が、適宜実行される。すなわち、キー入力が例えばタイマー予約録画設定のキー操作であれば、番組設定処理に入る(ST20)。キー入力が録画開始のキー操作であれば、録画処理に入る(ST22)。キー入力が再生開始のキー操作であれば、再生処理に入る(ST24)。キー入力がSTBへデジタル出力させるキー操作であれば、デジタル出力処理に入る(ST26)。編集処理のキー操作であれば、編集処理に入る(ST28)。
ST20〜ST28の処理は、そのタスク毎に適宜並列処理される。例えば、再生処理中(ST24)にSTBへデジタル出力する処理(ST26)が並列に実行される。あるいは、タイマー予約録画でない録画処理中(ST22)に新たな番組設定処理(ST20)を並列に処理するように構成することができる。あるいは、高速アクセス可能なディスク記録の特徴を生かし、録画処理(ST22)中に再生処理(ST24)とデジタル出力処理(ST26)を並列処理するように構成することもできる。HDDへの録画中にディスクの編集処理(ST28)を行うように構成することも可能である。
図13は、編集処理(ST28)の一例を説明するフローチャート図(編集動作処理フロー)である。編集処理に入ると、編集内容に応じて、5つの処理(A〜Eのいずれか)に入ることができる(ST280)。エントリポイントメニュー処理(ST282A)、コピー/移動処理(ST282B)、削除処理(ST282C)、プレイリスト作成処理(ST282D)、あるいはエントリポイント自動生成処理(ST282E)が済むと、この処理によるプログラム更新の日時が、各管理情報(プログラム情報EX_PGI、アイテムテキスト情報EX_IT_TXT、製造業者情報EX_MNFI等)に設定される(ST284)。
なお、プログラム情報EX_PGI、セル情報EX_CI、あるいはEVOB、ESOBのどれかが変更されたときに、このプログラム更新日時の設定を行うようにしてもよい。ここで、EVOBIおよび/またはESOBIが変更された場合は、EVOBIおよび/またはESOBIの編集時間(EDIT_TIME)をESOB_EDIT_TIME等(図示せず)に設定できる。もしくは、このプログラム更新日時の設定を行うようにしてもよい。
ついでながら、ST284の処理において、ST282A〜ST282Eの何れかの操作を行った機器のメーカーIDを、管理情報(VMG)内の図示しない編集者ID(LAST_MNF_ID)に設定してもよい。この編集者IDは、PGI、CI、ESOB(またはEVOB)のどれかが変更されると、その都度、その時に用いた機器のID情報により、設定(または更新)できる。
図14および図15は、録画動作例を説明するフローチャート図である。例えば図11の装置における録画時のデータ処理は、以下のようになる。すなわち、
d1)まず、番組設定処理でEPG(Electronic Program Guide)を使用して録画する番組を決めておき、受信を開始し、その決めた番組の録画を行う;
d2)MPU部80は、キー入力部103より録画命令受けると、ドライブ部51を介してディスク100(またはHDD部100a)から管理データを読み込み、書き込む領域を決定する。このとき、ファイルシステムをチェックし、録画可能かどうかを判断し、録画可能でない場合はその旨をユーザに示して、処理を中止する。録画可能の場合は、録画前処理を行う(ST105)。これにより、MPU部80は、記録する位置を決定し、管理情報(HDVR_MG等)を作成して、各管理領域に必要な情報の書き込みを行なう。その際、録画対象がデジタル放送でない(例えばアナログビデオ入力またはアナログTV放送)ときは(ST106ノー)、録画フォーマットとしてはストリームレコーディング(SR)でなくビデオレコーディング(VR)が採用できる。この場合はVR録画処理へ移行する。
d3)録画対象がデジタル放送の場合は(ST106イエス)、MPU部80は録画対象のストリームが解析可能か否かチェックする。MPU部80は、解析可能な場合は(ST107イエス)PTMベースのタイプAおよび/またはタイプCのストリームとして管理情報が作成されるような設定を行ない(ST109A)、解析不能な場合は(ST107ノー)PATSベースのタイプBストリームとして管理情報が作成されるような設定を行なう(ST109B)。
上記設定が済むと、扱うストリームが機器独自モードのものかどうか検出する。図11の装置が例えば業者独自系のストリーム記録に対応しており、その業者独自系のストリーム記録モードが設定されていたならば(ST110イエス)、図6等に示すManufacurer_MODE、MNF_AP_IDに対応値を設定する(ST111)。
しかる後、あるいは業者独自系のストリーム記録モードが設定されていない場合(ST110ノー)、ストリームデータ(ビデオデータ等)の書き込みスタートアドレスをドライブ部51に設定し、データを記録する準備を行う(ST112);
d4)この準備段階で、STC部102に対してカウント時間のリセットを行う。ここで、STC部102はシステムのタイマーであり、このSTCの値を基準に録画および/または再生が行われる。
d5)録画する番組のPATを読み込み、目的の番組のPMTを取り込むためのPIDを決定し、目的のPMTを読み込み、デコードすべき(録画すべき)各データ(ビデオ、オーディオ)のPIDを決定する。このとき、MPU部80のワークRAM部80AにPATおよびPMTを保存し、かつこれら(PAT、PMT)を管理情報(HDVR_MG)に書き込む。その際、ファイルシステム(図3参照)に、HDVMGファイルのデータを書き込み、VMGI(図6ではHDVR_MGI)に必要な情報を書き込む;
d6)各部へ録画設定を行う(ST114)。このとき、フォーマッタ部90へ、各データの切り分けの設定や、TSパケットの受け取り設定を行う。また、このとき、記録すべきデータのPIDを設定し、目的のストリームのみ記録するようにする。また、バッファ91へTSパケットの保持を開始するように設定する(ST116)。すると、フォーマッタ部90は次のように動作を開始する。
d7)PMTよりESOB_ESIを作成する(ST120);
d8)続いて録画対象のTSパケットのストリームをバッファ91に取り込む(ST130)。バッファ91内のデータが一定量たまった場合は(ST140イエス)、D−PRO部52を通してECC処理を行い、ECC処理されたデータをディスク100(および/または100a)に記録する(ST145);
d9)録画中、定期的に(フォーマッタ部90のバッファRAM91が一杯になる前に)、切り分け情報をMPU部80のワークRAM80Aに保存する。ここでの切り分け情報は、ESOBUの切り分け情報で、ESOBUの先頭のアドレス、ESOBUのパック長、Iピクチャ(基準画像)の終了アドレス、ESOBUの到着時間(ATS)等である。
d10)切り分け情報をワークRAM80Aに保存したあと、MPU部80はESOBを切るかどうかを判断し、切る場合(ST147イエス)はESOB切り処理を実行する(ST160)。
d11)録画終了かどうか(録画終了キーが入力されたかどうか、またはディスク(100/100a)の残り容量が無くなったかどうか)をチェックし、終了時には(ST148イエス)、フォーマッタ部90より残りの切り分け情報を取り込み、ワークRAM80Aへ追加し、それらのデータを管理データ(VMGIまたはHDVR_MGI)に記録し、録画時の平均の録画レートを記録し、さらに、ファイルシステムに残りの情報を記録する(ST150);
d12)終了で無い場合は(ST148ノー)、d7)に移行し、データの取り込み及び再生を続けて行うようにする。
ここで、録画中のストリームデータの内容をTV等に表示するために、録画対象のストリームデータをD−PRO部52へ転送すると同時にデコーダ部59へも送り、同時録画モニタを行なうように構成してもよい。この場合、MPU部80はデコーダ部59へ再生時の設定を行い、その後はデコーダ部59が自動的に再生処理を行う。D−PRO部52は、録画対象のストリームデータを16パック毎にまとめてECCグループとし、ECCをつけてドライブ部51(および/またはHDD100a)へ送る。ただし、ドライブ部51がディスク100への記録準備が出来ていない場合には、一時記憶部53へ転送し、データを記録する準備が出来るまで待ち、用意が出来た段階でディスク100への記録を開始する。ここで、一時記憶部53は高速アクセスで数分以上の記録データを保持するため、大容量メモリが想定される。なお、MPU部80は、ディスク100のファイル管理領域などを読み書きするために、D−PRO部52へマイコンバスを通して直結されている。
記録時の信号の流れを簡単に整理すると、次のようになる。すなわち、STB83(または地上波デジタルチューナ89)で受信されたMPEG−TSパケットのデータは、フォーマッタ部90でパケットグループ化されてバッファ91へ保存され、このバッファ91にデータが一定量たまった時点(1またはその整数倍のCDA分がたまった段階で)で、ディスク(100および/または100a)に記録される。
記録時の処理の流れは、以下のようなものでもよい:
a1)まず、番組設定処理で、EPG(Electronic Program Guide)等を使用して録画する放送番組を決めておき、その放送の受信を開始し、その決めた番組の録画を行う;
a2)MPU部80がキー入力部103より録画命令受けると、ドライブ部51から管理データを読み込み、書き込む領域を決定する。このとき、ファイルシステムをチェックし、録画可能かどうかを判断し、録画可能の場合は、記録する位置を決定し、録画可能でない場合は、その旨をユーザに示して、処理を中止する;
a3)決定された領域を書き込むように管理領域に設定し、ビデオデータの書き込みスタートアドレスをドライブ部51に設定し、データを記録する準備を行う;
a4)STC部102に時間のリセットを行う。ここで、STC部102はシステムのタイマーでこの値を基準に録画、再生を行う;
a5)録画する番組のPATを読み込み、目的の番組のPMTを取り込むためのPIDを決定し、目的のPMTを読み込み、デコードすべき(録画すべき)各データ(ビデオ、オーディオ)のPIDを決定する。このとき、MPU部80のワークRAM部80AにPAT,PMTを保存し、管理情報に書き込む。ファイルシステムに、VMGファイルのデータを書き込み、VMGIに必要な情報を書き込む。
a6)各部へ録画設定を行う。このとき、フォーマッタ部90へ、各データの切り分けの設定や、TSパケットの受け取り設定を行う。また、このとき、記録すべきデータのPIDを設定し、目的のビデオストリームのみ記録する様にする。また、バッファ91へTSパケットの保持を開始する様に設定する;
a7)PMTよりESOB_ESIを作成する;
a8)バッファ91内のデータが一定量たまった場合は、D−PRO52を通して、ECC処理を行い、ディスク100に記録する;
a9)録画中、定期的に(フォーマッタ部90のバッファRAM91が一杯になる前に)、切り分け情報をMPU部80のワークRAM80Aに保存する。ここでの切り分け情報は、ESOBUの切り分け情報で、ESOBUの先頭のアドレス、ESOBUのパック長、Iピクチャの終了アドレス、再生時間、パケットの到着時間(PATS)等である;
a10)ESOBを切るかどうかを判断し、切る場合はESOB切り処理を実行する;
a11)録画終了かどうかをチェックし(録画終了キーを入力したかどうか、または、残り容量が無くなったかどうか)、終了時には、フォーマッタ部より残りの切り分け情報を取り込み、ワークRAMへ追加し、それらのデータを管理データ(VMGI)に記録し、録画時の平均の録画レートを記録し、さらに、ファイルシステムに、残りの情報を記録する;
a12)終了で無い場合は、a7)に移行し、データの取り込み及び再生を続けて行うようにする。
ここで、TV68に表示(録画内容のモニタ)するために、デコーダ部59へD−PRO部52と同時にパケットを送り、その再生を行う。この場合、MPU部80はデコーダ部59へ再生時の設定を行い、その後はデコーダ部59が自動的に再生を行う。
D−PRO部52は16パック毎にまとめてECCグループとして、ECCをつけてドライブ部51へ送る。ただし、ドライブ部51がディスク100への記録準備が出来ていない場合には、一時記憶部53へ転送し、データを記録する準備が出来るまで待ち、用意が出来た段階でディスク100への記録を開始する。ここで、一時記憶部53は、高速アクセスで数分以上の記録データを保持するため、大容量メモリが想定される。また、MPU部80は、D−PRO部52へ内部バスを通してアクセスすることで、ディスク100のファイル管理領域などを読み書きすることが出来る。
図16はストリーム情報(ESI)作成処理(ST120)の一例を説明するフローチャート図である。
h1)まず、PSI、SIの情報を取り込み、その内容を調べる。その結果デジタル放送のストリームでないことが分かれば、図8のNORMAL flagに「02」をセットする。そのストリームが日本のデジタル放送である場合は、NORMAL flagに「01」をセットする(ST1202);
h2)設定されているストリーム数の数だけh4)〜h5)を繰り返す(ST1230イエスの場合);
h3)PSI、SIよりストリームタイプを調べ(ST1203)、ビデオストリームか、オーディオストリームか、その他のストリームかどうかを判定し、次のストリームチェックに移行する;
h4)その際、ストリームタイプをMPEG1ビデオ、MPEG2ビデオ、MPEG1オーディオ、MPEG2オーディオ…等の種別に分け、それぞれの種別応じて、内部のデータをチェックし、各属性情報を読み出す。
h5)ビデオストリームの場合(ST1213A)、ES_TY=0とし、各属性情報を設定し、特に解像度データ、アスペクト情報等を取り出し、V_ATRを作成し(ST1213C)、h8)へ移行する;
h6)オーディオストリームの場合(ST1215A)、ES_TY=0x40とする。そして、各属性情報を設定し、特にコーディングモード、サンプリング周波数、チャンネル数等を取り出し、A_ATRを作成し、作成した属性情報を図9のManufacturer DATAに設定して(ST1215C)、h8)へ移行する;
h7)その他のストリームの場合(ST1217A)、ES_TY=0x80とし、各属性情報を設定し(ST1217C)、h8)へ移行する;
h8)他にESIを作成していないストリームがあるかどうかチェックし、次のストリームチェックに移行する(ST1230ノーの場合)。
ESOB_ESIの設定処理の流れは、以下のようなものでもよい:
b1)PSI、SIを調べ、設定されているストリーム数を調べる;
b2)設定されているストリーム数の数だけb4)〜b5)を繰り返す;
b3)PSI、SIよりストリームタイプを調べ、ビデオ、オーディオのストリームかその他かどうかを判定し、次のストリームチェックに移行する。ここで、ストリームが日本のデジタル放送で無い場合は、NORMAL flag に02を設定し、b4)以降の処理を行う。日本のデジタル放送であれば、NORMAL flag に01を設定し、従来の処理を行う。
b4)ストリームタイプをMPEG1ビデオ、MPEG2ビデオ、MPEG1オーディオ、MPEG2オーディオ…等の種別に分け、それぞれの種別応じて,内部のデータをチェックし、各属性情報を読み出す。ビデオストリームの場合、ES_TY=0とし、各属性情報を設定し、特に解像度データ、アスペクト情報等を取り出し、Manufacturer_DATAにその値を設定し、b2)へ移行する。
b5)オーディオストリームの場合、ES_TY=0x40とし、各属性情報を設定し、特にサンプリング周波数、チャンネル数等を取り出し、Manufacturer_DATAにその値を設定し、b2)へ移行する。
b6)その他の場合、ES_TY=0x80とし、各属性情報を設定し、b2)へ移行する。
b7)属性情報を元に新たにESIを設定し、次のストリームチェックに移行する。
図17は、録画終了処理(ST150)におけるストリームファイル情報(ESTR_FI)作成処理の一例を説明するフローチャート図である;
j1)ESOBIを1つ増やすため、サーチポインタ(ESOBI_SRP)を1つ増やし、そのための領域を確保し、MPEG−TSの場合はPKT_TYに0x00を設定する。ソースがデジタル放送でない場合は、そのソースに対応して、Manufacturer_ID、MNF_AP_ID等を設定する(ST1500B);
j2)録画時間をESOB_REC_TM、ESOB_REC_TM_SUBに設定する(ST1502B)。ここで、装置内部の時計は、TDT(Time Data Table)により設定・補正が行なわれ、常に正確な時間が得られる;
j3)その際、ESOB_S_PTMおよびESOB_E_PTMをストリーム内より取り出し、STCの不連続情報を調べて、j1)で増やしたESOBIに対応するESOBの、スタートPTMおよびエンドPTMを設定する(ST1502B)。
j4)ストリームの種類がTSストリーム(ARIB、DVB)の場合は(ST1506Bイエス)、AP_PKT_SZに188を設定し、PKT_GRP_SZに16を設定する(ST1508B)。そうでない場合は(ST1506Bノー)、放送方式にあった値を設定する(ST1510B)。例えば、ST1508Bでは、country_codeとしてJPN(日本)を設定するとともにAP_FORMAT1としてJapanISDBを設定する。また、ST1510Bでは、country_codeとして該当装置の国コード(例えばUSA)を設定するとともにAP_FORMAT1として該当する放送方式(例えばATSC)を設定する。
また、ストリームがデジタル放送で無い場合で、メーカー独自の方式で記録する場合、Manufacturer_IDにメーカーのID(単一メーカーなら、例えばTOSHIBO;単一メーカーでなくメーカーグループ共同のIDなら、例えばTOSHIBO&MEC)を設定し、Manufacturer_DATAにメーカー独自のデータを設定し、MNF_AP_IDにソースコード(例えばデジタルカメラ、デジタルVTR)などの値を設定する。
j5)PSI、SI情報が有効かどうかを判断し、有効の場合は(つまりストリームが不明なものでない)、PATより、TS_ID、NETWORK_PID、PMT_ID(該ESOBで使用しているPMTのPID:PIDは13ビットの実データで記載する方法とPMT内の順番を記載する方法の2通りが考えられる)を設定する。また、AP_FORMAT_2に、衛星デジタル放送(BS)の場合はISDB_Sを設定し、地上波デジタル放送の場合はISDB_Tを設定し、メーカー独自の場合は0xffff(または0x0000)を設定する。一方、無効の場合は(つまり不明ストリーム)、ESOB_TY:b12に1を設定、もしくは各値に0xffを設定し(ST1513B)、j9)へ移行する。
j7)ストリーム内のPMT、NIT、EITより、Program_Number(PMT内のSERVICE_ID)、PCR_PID等を設定する。さらに、FORMAT_ID、VERSIONについては、内部チューナの場合は、機器内でデフォルトの方式とし、外部デジタル入力の場合は、デジタル入力より送られてくるRegistration_Descriptorの値を設定する。また、TMAPタイプに従ってESOB_TYを設定する(ST1516B)。
j9)TMAP設定処理(ST1540B)を行い、各切り分け情報を元にストリーム毎にTMAPIを作成する。
j10)続いて、録画を開始したLBアドレスをADR_OFSに設定し、デフォルトのPIDを設定する(ST1550B)。ここで、デフォルトのビデオのPIDとは、コンポーネントタグ値が一番若いビデオの値のもの、もしくは、マルチビューTVの場合、メインのコンポーネントグループに記載されているコンポーネントタグに対応するビデオストリームのESIの番号が相当する;
j11)そして、編集日時を設定する(ST1554B)。
ESTR_FIの作成処理の流れは、以下のようなものでもよい:
c1)ESOBIを一つ増やすため、そのサーチポインタSRPを1つ増やし、領域を確保し、PKT_TYに0:MPEG_TSを設定する;
c2)録画時間をESOB_REC_TMに設定する。ここで、内部の時計は、TDT(Time Data Table)により、設定、補正が行なわれ,常に正確な時間が得られる;
c3)スタートPTM、エンドPTMを設定する;
c4)ストリームの種類がTSストリーム(ARIB、DVB)の場合は、AP_PKT_SZに188をPKT_GRP_SZに16を設定し、そうでない場合は、放送方式にあった値を設定する(日本の場合はcontry_code←JPN、AP_FORMAT_1←JapanISDB);
また、ストリームがデジタル放送で無い場合で、メーカー独自の方式で記録する場合、Manufacturer_IDにメーカーのID(単一メーカーなら、例えばTOSHIBO;単一メーカーでなくメーカーグループ共同のIDなら、例えばTOSHIBO&MEC)を設定し、Manufacturer_DATAにメーカー独自のデータを設定し、MNF_AP_IDにソースコード(例えばデジタルカメラ、デジタルVTR)などの値を設定する。
c5)PKT_TYにMPEG_TSを設定する;
c6)PSI、SI情報が有効かどうかを判断し、無効の場合はESOB_TY:b12に1を設定するか、もしくは各値に0xffを設定し、c9)へ移行する;
c7)PATより、TS_ID、NETWORK_PID、PMT_PID(本ESOBで使用しているPMTのPID)を設定する。そして、AP_FORMAT_2に、BSの場合はISDB_Sを、地上波の場合はISDB_Tを、メーカー独自の場合は0xff(または0x0000)を設定する;
c8)PMTより、Program_Number(PMT内のSERVICE_ID)、PCR_PID等を設定する。さらに、FORMAT_ID、VERSIONについては、内部チューナの場合は、機器内でデフォルトの方式とし、外部デジタル入力の場合は、デジタル入力より送られてくるRegistration_Descriptorの値を設定する。不明の場合には0xFFを設定する。TMAPタイプに従ってSOB_TYを設定する。
c7*)さらに、録画したESの数、ビデオのES数、オーディオのES数を設定する。(PMTには放送している全てのESの情報:数が設定されているが、録画時に全てのESを記録しているとは限らないため、記録したESの数を設定する;
c8*)録画を開始したLBアドレスをADR_OFSに設定し、デフォルトのPIDを設定する。デフォルトのビデオのPIDとはコンポーネントタグ値が00の値のもの、もしくは、マルチビューTVの場合、メインのコンポーネントグループに記載されているコンポーネントタグに相当するビデオストリームのESIの番号が相当する;
c9)各切り分け情報を元にストリーム毎にTMAPIを作成する;
c10)編集日時を設定する。
図18は、録画終了処理(ST150)におけるプログラムチェーン(PGC)作成処理(プログラム設定処理を含む)の一例を説明するフローチャート図(プログラム設定処理フロー)である。以下、PGC作成処理例を説明する。
q1)ディスクの最初の記録かどうかをチェックし、最初の場合は(ST1600Zイエス)新たにORG_PGCを作成し(ST1602Z)、最初で無い場合は(ST1600Zノー)既に記録してあるPGC(ORG_PGC)の後にプログラムPGを追加する様に設定する(ST1604Z);
q2)PG_TYに消去許可:0を設定し、Cell_NsにCELLの数を設定し、ビデオのESI番号も設定する(ST1700Z)。
q3)ST1700Zの設定において、記録するデジタル放送がARIBの場合、EIT内の短形式イベント記述子のlanguage_codeが"jpn"のときは、VMG_MATのCHRに0x12を設定し、PRM_TXTIの第2領域にEVENT_NAMEに設定し、REP_PICTIに代表画像の情報を設定する;
q4)PG_INDEXにPGの絶対番号を設定し、他のアプリケーションソフトウエアなどから参照する場合にPG単位での参照を可能にする(ST1702Z)。その際、レジューム情報(PG_RSM_IFO)に開始セル番号を設定するとともに、開始時間(スタートPTM)を設定する。
q5)CELL_TY(例えば図10のセル情報EX_CI内に含まれるセルタイプ)にストリーマであることを示す情報を設定する(ST1703Z);
q6)ST1703Zの設定において、さらに、参照するESOB番号を設定し、再生するESとして代表(ビデオの)ESI番号(ESIN)を設定し、エントリポイント情報EPI(図10)の数、再生開始PTM、再生終了PTM、エントリポイントEPをそれぞれ設定する。さらに、STC不連続情報として不連続セグメントCNT_SEGを読み取り、その回数を管理情報の一部(例えばCNT_SEGN)に設定し、その他に再生するESOBのブロック番号を設定する。
q7)さらに、ST1703Zの設定において、PG_RSM_INF(再生開始PTM、ビデオのESI番号、オーディオのESI番号、Dual-Monoの主副情報等)に、頭から再生できるように先頭の情報を設定してもよい。なお、EPを自動でつける場合の要因としては、映像及び時間関係では、一定時間と映像のモード変化(アスペクト比、動きベクトルの大きい場合)でその条件に映像フレームの先頭Packet(Unit Start Indicator)GOPの先頭Packet(シーケンスヘッダの先頭、I-PICの先頭)を組み合わせた場合が考えられる。さらに、音声関係では音声の変化(音量の変化等)/音声モード(ST/MONO)でその条件に音声フレームの先頭Packet(Unit Start Indicator、フレームヘッダ)の組み合わせた場合が考えられる。
PGC作成処理の流れは、以下のようなものでもよい。すなわち、
e1)ディスクの最初の記録かどうかをチェックし、最初の場合はORG_PGCを作成し、最初で無い場合はそのORG_PGCの後に追加する様に設定する;
e2)PG_TYに消去許可:0を設定し、Cell_NsにCELLの数を設定する;
e3)ARIBの場合、EIT内の短形式イベント記述子のlanguage_codeに”jpn”の場合は、VMG_MATのCHRに0x12を設定し、PRM_TXTIの第2領域にEVENT_NAMEに設定し、REP_PICTIに代表画像の情報を設定する(ビデオのESI番号も設定)。
e4)PG_INDEXにPGの絶対番号を設定し、他のアプリソフトなどから参照する場合にPG単位での参照が可能にする。さらに、本PG更新日時情報を記録する。この時、本機器で対応している(メーカーのコードが一致した)MNFIやIT_TXTがある場合には、その対応するデータの更新日時情報も設定する;
e5)MNFIに各メーカー独自の情報を設定する;
e6)CELL_TYにストリーマであることを示す情報を設定する:CELLI
e7)参照するESOB番号を設定し、再生するESとして代表(ビデオの)ESI番号を設定し、EPIの数、再生開始PTM、再生終了PTM、エントリポイント(EP)をそれぞれ設定する;
e8)PG_RSM_INF(再生開始PTM、ビデオのESI番号、オーディオのESI番号、Dual-Monoの主副情報等)に頭から再生できるように先頭の情報を設定する。
図19は、再生動作の一例を説明するフローチャート図(全体の再生動作フロー)である。再生時のデータ処理は、例えば以下のようになる:
r1)まず、再生対象のディスクがRecordable/Rewritable Disc(R、RW、RAM)かどうかをチェックし、Recordable/Rewritable Discでない場合には、その旨を返して終了する;
r2)Recordable/Rewritable Discであれば、ディスクのファイルシステムを読み出し(ST207)、録画されたデータがあるかどうかチェックし、無い場合には、“録画されていません”と表示して終了する。
r3)VMGファイルを読み込み(ST207)、再生するプログラム、セルを決定する(デフォルトで決定するか、ユーザに選ばせる)(ST208)。ここで、記録順の再生選択した場合には、ORG_PGCIに従って再生を行い、(ユーザが編集した)番組毎の再生を行う場合には、再生したい番組に相当する番号のUD_PGC(プレイリスト)に従って再生を行う;
r4)再生するタイトル情報(PSI、SI情報が不明の場合はSTBへの転送処理のみを行なうよう設定)、レジューム情報(PL_RSM_IFO, PG_RSM_IFO)、セル情報(EX_CI)等により再生するオブジェクト(ESOB/EVOB)、再生開始PTM等を決定し、再生開始PTMより、再生を開始するファイルポインタ(論理アドレス)および再生するストリームのESIを決定する。さらにSTI、ESIの値により、各デコーダ部設定を行い、再生の準備を行う(ST211A)。
r5)続いて、AP_FORMAT_1, 2(図6、図8参照)から再生する方式を決定する(ST211B);
r6)タイプBストリームの再生でないなら(ST211Xノー)、PSI、SIの情報から再生するストリームを決定するとともに、PSI、SIの情報をワークRAMに保存する(ST211D)。タイプBストリームの再生なら(ST211Xイエス)、全てのストリームをSTBへ送信するように設定する(ST211E);
r7)続いて再生開始時の処理を行う。まず再生対象がタイプBのESOBかどうかチェックする。タイプBのESOBでなければ(ST213Xノー)、デコーダ設定処理へ入る(ST217)。タイプBのESOBであれば(ST213Xイエス)、TSパケットの送信処理のみを行なう(ST219)。
r8)続いてセルの再生処理を行い(ST220)、再生終了かどうかをチェックし、終了の場合には(ST230イエス)、エラーチェックを行なう。エラーの場合には(ST240イエス)、その旨を表示し(ST242)、再生終了処理を行なう(ST244)。エラーでない場合には(ST240ノー)、その他の再生終了時の処理を行い(ST246)、この動作を終了する。
r9)再生終了でない場合には(ST230ノー)、PGCIより次のセルを決定し(ST232)、ST211Aへ戻る。そして、デコーダ部59の設定(ST217)が変更されたかどうかをチェックし、変更された場合には、次のシーケンスエンドコードにデコーダの設定が変更されるようにデコーダ部59に変更属性を設定する;
r10)以後、再生が終了したかどうかをチェックしつつ(ST230)同様な処理(ST211A〜ST232)を繰り返す。
なお、図示しないが、セル再生時の処理ST220の具体例としては、次のものがある。すなわち、
t1)TMAPIの内容よりEX_CELLの開始ファイルポインタFP(論理ブロック番号LBN)、終了ファイルポインタFP(論理ブロック番号LBN)を決定し、さらに、EX_CI内の開始時間、終了時間より開始のESOBU_ENTRY、終了のESOBU_ENTRYを決定し、ADR_OFSに目的のESOBU_ENTRYまでのエントリのデータ長を累積し、開始アドレス(LB=FP)、終了アドレスを求める。残りEX_CELL長は終了アドレスより開始アドレスを引いた値とし、再生開始時間をSTCへセットする。さらに、再生するPIDを決定し、デコーダ(STB、デジタルチューナ)に設定する。この場合のPIDは、13ビットのPIDが設定されている場合はそのまま使用できるが、PMT内の順番で設定されている場合はPMTを参照してPIDを決める。
t2)ESOBの連続チェック処理を行う;
t3)再生中の読み出し処理を実行し、開始ファイルポインタより読み出しアドレス、読み出しサイズを決定する;
t4)読み出す読み出し単位サイズと残りセル長を比べ、残りセル長が大きい場合には、残りセル長に残りセル長より読み出す読み出し単位サイズを引いた値を設定する。小さい場合には、読み出し長を残りセル長にセットし、残りセル長を0にセットする;
t5)読み出し長を読み出し単位の長さに設定し、ドライブ部へ読み出しアドレス、読み出し長、読み出し命令を設定する。
t6)データ転送が開始したら、バッファに1ESOBU分たまるのを待つ。1ESOBU分たまったら、1ESOBU分のデータをバッファから読み込み、バッファデコーダ転送処理を行なう。そして、読み出しファイルポインタFPのインクリメントとMPEGデコーダの通常モードへの設定を行ったのち、t7)へ移行する。
t7)転送が終了したかどうかをチェックし、終了した場合には、t8)移行する;
t10)STOP SWが押されたかどうかをチェックする。Stop SWが押された場合は、中断情報(RSM_IFO)を、タイトル再生の場合はPG_RSM_IFOに、プレイリスト再生の場合はPL_RSM_IFOに保存し、終了処理を行う;
t11)Stop SWが押されていない場合は、残りセル長をチェックする。残りセル長が“0”でない、つまり現在のセルが最後のセルでない場合にはt3)へ戻る。残りセル長が“0”の場合には、この処理を終了する。
再生処理の流れは、以下のようなものでもよい。すなわち、
f1)ディスクチェックし、rewritable Disc(R,RW,RAM)かどうかをチェックし、rewritable Discで無い場合には、その旨を返して終了する;
f2)ディスクのファイルシステムを読み出し、録画されたデータが有るかどうかチェックし、無い場合には、“録画されていません”と表示して終了する;
f3)VMGファイルを読み込み、再生するプログラム、セルを決定し(ユーザに選ばせ)を決定する。ここで、記録順の再生選択した場合には、ORG_PGCIに従って再生を行い、番組毎の再生を行う場合には、再生したい番組に相当する番号のUD_PGCに従って再生を行う。
f4)PKT_TYの値を読み出し、対応可能な放送方式かどうかチェックし、対応可能で無い場合は、その旨を表示して処理を終了する(もしくは次のCELLへ移行する);
f5)再生するタイトル情報(PSI,SI情報が不明の場合はSTBへの転送処理のみを行なうよう設定)、レジューム情報(PL_RSM_IFO,PG_RSM_IFO)等により再生するESOB/EVOB、再生開始PTM等を決定し、再生開始PTMより、再生を開始するファイルポインタ(論理アドレス)、再生するストリームのESIを決定する。さらにSTI、ESIの値により、各デコーダ部設定を行い、再生の準備を行う。また、先頭のパケットグループヘッダ内のCCIより、APSの設定をビデオデコーダにAPSのON/OFF、APSのタイプ等を設定し、デジタルコピー制御によりCGMSAの設定をビデオデコーダに行う。さらに、デジタル出力(IEEE1394、インターネット等)が有る場合:EPNの値により、0:スクランブルon又は出力禁止、1:そのまま出力ICに設定する。また、LCTが0の場合、画像の解像度を制限を加えHD画質をSD画質に変換し、1の場合はそのまま出力ICに設定する。この時、再生を開始するフレームがIピクチャで無い場合、その直前のIを読み出しそこからデコードを開始し、目的のフレームまできた所で表示を開始し、通常再生を開始する。
f6)再生開始時の処理を行う;
f7)各デコーダの設定を行う;
f8)セルの再生処理を行い、再生終了かどうかをチェックし、終了の場合には、エラーチェックを行い、エラーの場合には、その旨を表示し、エラーでない場合には再生終了処理を行い、本動作を終了する;
f9)PGCIより次のセルを決定し、デコーダの設定が変更されたかどうかをチェックし、変更された場合には、次のシーケンスエンドコードにデコーダの設定が変更されるようにデコーダに変更属性を設定する;
f10)再生が終了したかどうかをチェックし、再生終了しない場合は、f6)へ移行する。
図20は、デコーダ設定処理(ST217)を説明するフローチャート図である。デコーダの設定例を以下に説明する:
s1)再生対象がESOBである場合(ST2170イエス)、再生するグループを決め、再生するESを決める(ST2171)。再生対象がEVOBである場合は(ST2170ノー)、ST2171はスキップする;
s2)再生するESOB(またはEVOB)の属性情報(STI、ESI)を読み込む(ST2172);
s3)再生するESOB(またはEVOB)が、レコーダ(図11の装置など)が対応できるフォーマットかどうかをチェックする。対応不能の場合(ST2173ノー)は、再生しないよう機器設定を行い、表示ミュートを設定する(ST2175)。
s4)再生するビデオが再生可能な場合は(ST2173イエス)、再生準備を行なう(ST2174A)。この場合、PIDは13ビットのPIDが設定されている場合はそのまま使用できるが、PMT内の順番で設定されている場合はPMTを参照してPIDを決める;
s5)再生するオーディオが再生可能かどうかをチェックし、可能な場合(ST2176イエス)は、再生準備を行なう(ST2177A)。この場合、PIDは13ビットのPIDが設定されている場合はそのまま使用できるが、PMT内の順番で設定されている場合はPMTを参照してPIDを決める。不能の場合(ST2176ノー)は、再生しないよう機器設定を行い、音声ミュートを設定する(ST2178)。
デコーダ設定処理は、以下のようなものでもよい。すなわち、
g1)再生するグループを決め、再生するESを決める;
g2)属性情報(STI又はESI)を読み込む;
g3)レコーダが対応できるフォーマットかどうかをチェックし、対応可能な場合はその設定を行い、対応不能の場合は、ミュートを設定する;
g4)再生するビデオが再生可能かどうかをチェックし、可能な場合は、再生準備を行い、不能の場合は、ミュートする;
g5)再生するオーディオが再生可能かどうかをチェックし、可能な場合は、再生準備を行い、不能の場合は、ミュートする。
図21は、タイトル再生判定処理の一例を説明するフローチャート図である。再生時、ESTR_FIの構造が複数存在することになるため、レコーダが再生をサポートしているかどうかを判定する必要がある。そのため、判定処理は、例えば次のようになる。
o1)管理情報(図10のHDVR_MG)を読み出し、そこからPGCIとESIT_FITを取り出す(ST400)。そして、PGCI内のセル情報(EX_CI)に含まれるセル一般情報(C_GI)内の情報(ESTR_FIN)により、再生するESTR_FIを決定し、その情報に対応してESTR_FI_SRPを読み出す(ST402);
o2)ESTR_FI_SRP(図6)内のAP_FORMAT_1の値を調べ、対応可能なデジタル放送の場合は、従来規格の再生処理を行う。対応不能なデジタル放送の場合は、その旨を表示し、図21の処理を終了する。一方、従来規格で扱うようなデジタル放送以外で、TSの規格(この発明の一実施の形態で提案する規格)である場合(図6においてHR_SFInn.IFOのnnがFC〜FFである場合、すなわちST404でAP_FORMAT_1の値がManufactureer_Modeである場合)は、ST406へ移行する。
o3)ST406では、Manufacturer_IDを調べ、レコーダがサポートしているIDである場合は(ST406イエス)、ST408へ移行する。そうでない場合は(ST406ノー)、その旨を表示し、図21の処理を終了する;
o4)ST408では、MNF_AP_IDの値でソースの機器選択する;
o5)ESTR_FI_SRP内のESTR_FI_FN(図6)に従ってESTR_FIを読み出し(ST410)、ESTR_FI_GI(図6)内のManufacturer_ID、MMF_AP_IDの整合性を確認する(ST412);
o6)PKT_TY、PKT_SZ、PKT_GRP_SZ、PKT_NsでESOBの構造を把握し、MNF_AP_IDで確認したソースに対応したフォーマットで残りの管理情報ファイル(IFO)を読み出し、再生を行うように設定する(ST414)。
<実施の形態の効果>
以上により、デジタル放送以外のTS対応コンテンツに対応した木目細かい制御動作が実現できる。
メーカー独自のフォーマットでSTR_FI、ESOBI等を作成可能なモード(Manufacturer_MODE)をHD_DVD-VR規格に追加することが可能となる。これにより、業者(メーカー等)毎のレコーダの特徴を出すことが可能となる。
なお、この発明は前述した実施の形態に限定されるものではなく、現在または将来の実施段階では、その時点で利用可能な技術に基づき、その要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題が解決でき、発明の効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
100…情報記録媒体(DVD±R、±RW、−RAMディスク等);121…AVデータ記録領域;122…VRオブジェクト群記録領域;130…AVデータ管理情報記録領域(HDVR_MG/VMG);131…ストリームオブジェクト群記録領域;132…エストリームオブジェクト(ESOB);134…ストリームオブジェクトユニット(ESOBU);140…パケットグループ;160…DVDトランスポートストリームパケット記録領域;161…パケットグループヘッダ;163…MPEGトランスポートストリーム(MPEG−TS)パケット;162…パケット到着時間(PATS);10…再生情報管理層;11…プログラムチェーン(PGC);12…プログラム(PG);13…セル;20…ストリームオブジェクト管理情報層;21…ストリームオブジェクト情報(ESOBI);22…ストリームオブジェクトユニット情報(ESOBUI);23…ビデオオブジェクト管理情報層;24…ビデオオブジェクト情報(EVOBI);25…ビデオオブジェクトユニット情報(EVOBUI);30…ストリームオブジェクト(ESOB)層;51…ディスクドライブ部(波長が例えば650nm〜405nmのレーザを用いた光ディスクドライブ等);59…デコーダ部;74…デジタルインターフェイス(IEEE1394I/F等);79…エンコーダ部;80…メインMPU部(制御部);83…セットトップボックス部(デジタルチューナ);89…地上波デジタルチューナ;100a…情報記録媒体(ハードディスクドライブ等)。