以下、図面を参照してこの発明の種々な実施の形態を説明する。デジタル放送は国毎に放送方式が違う。例えば、ヨーロッパでは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となっている。
デジタル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の通常の再生手順としては、EPG情報により、ユーザが番組を決定すると、目的の番組の開始時間に、PATを読み込み、そのデータを元に、希望の番組に属するPMTのPIDを決定し、そのPIDに従って、目的のPMTを読み出し、そこに含まれる再生すべきビデオ、オーディオパケットのPIDを決定し、PMT、やSIにより、ビデオ、オーディオの属性を読み出し、各デコーダへセットし、前記ビデオ、オーディオデータをPIDに従って、切り出して、再生を行う。ここで、PAT、PMT、SI等は途中再生にも使用するために、数100ms毎に、送信されてくる。
ここで、デジタル放送は国毎に放送方式がちがう。たとえば、ヨーロッパではDVB(Digital Video Broadcasting)、米国ではATSC(Advanced Television Systems Committee)、日本ではARIB(Association of Radio Industries and Businesses)となっている。
このように各国により、デジタ放送の方式は違い、また、放送局毎にも違う可能性がある。そのため、レコーダでは、それぞれの使用する方式に応じてオブジェクトをファイルとして記録す必要がある。このことから、現行のVRファイル構成より追加されるファイルは、図2に示すようにHR_SFIx.IFO、HR_SFIx.bupでxは複数存在可能な事を示し、各放送方式毎に追加される。また、x=00の場合は、放送方式が不明な場合や、該当レコーダがその放送方式に対応していない場合に使用し、TYPE Bのストリーム(SOB_STRB)として保存する。
そのため、放送局毎(または、放送方式毎)にデジタル放送用の管理用情報であるESTR_FIを変更するため、複数のESTR_FIが存在する事になる。そこで使用するESTR_FIファイルを指定するために、ESTR_FI_SRP情報が存在し、その構造は、図3に示すように、ESTR_FIのファイルネーム:ESTR_FI_FN、ESTR_FIファイルの更新日時情報:ESTR_FI_LAST_MOD_TM、ESTR_FIのファイルサイズ:ESTR_FI_SZ、放送方式情報であるAP_FORMAT-1とCountry code、Packet TypeとSOBIの数等により構成される。ここで、更新日時情報はESTR_FIファイル内にも設定されており、編集時ESTR_FIを変更した場合、その値も更新し、再生時、この値とESTR_FIファイル内の値を比べ、同じ値の場合、再生可能とする。また、ESTR_FIの数は7個以下とし、SOBIの数も999個以下としている。さらに、ESTR_FI file name:HR_SFInn.IFOのnnの部分がSTMAPのFile Name:HR_STMnn、IFOに反映され、STMAPのファイル名が決定される。
ESTR_FIファイル(HR_SFIxx.IFO)は、図4に示すように、通常のESTR_FIと同じ構成とする。さらに、解析可能な場合(TYPE A:STRA)はPTMベースでTMAPが作成可能であるが、解析できない場合(スクランブルが解けない、想定している放送局とは違う方式のデータが入力された場合等)(TYPE B:STRB)、TMAPをPTMベースでは無く、受信時間(PATS)ベースで作成する事が考えられる。ただし、再生時間で無いので正確に特殊再生等はできないが大体の特殊再生が可能となる。
図4において、PATS_SSはPATSの精度を示す値で構成されている。例えば後述する図16の装置において、ネットワークやIEEE1394等のデータそのものを取り込む場合、PATSが4バイトあるいはPATSがダミーなどのときがある。そのような場合に対応するため、PATS_SSの値として、“00=PATS, FIRST_PATS_EXTの両方が有効:精度6バイト”、“01=PATSのみ有効:精度4バイト”、“10=PATS, FIRST_PATS_EXTの両方が無効:精度無し)”を用意している。
また、デジタル放送において、特徴としてあげられるのがマルチビュー放送などに代表される複数の映像を同時に(タイムシェアリングして)流し、その内、必要なものだけを選んで再生することにより、複数のコンテンツをユーザの好み等により選択するものである。たとえば、マルチアングル放送でX、Y、Zのストリームと降雨対応としてUがひとつのTSとしてレコーダが受け取った場合、再生時に必要なストリームを選択して再生し、キーにより自由に切り替える必要があり得る。これに対応するため、グルーピング情報(GPI)を追加して、この目的を可能にしている。
さらに、DVDレコーダでは通常、VOBの管理情報として、TMAPIを持っている。この情報はVOB/SOBをVOBU/SOBU毎に分けて、その単位で再生、特殊再生等を行えるようにするための情報であるが、最大0.5s毎に1件の情報が必要になるため、将来、ディスクの容量が増えたり、圧縮効率の高い圧縮方式を採用した場合、TMAPIが増え、編集などを行った場合に煩雑になり、IFO内にあるとTMAPIを変更するだけで、関係のない他の領域のデータを移動、書き換え等を行う必要がでてきて、効率が悪い。その状況を改善するためにTMAPIを別領域に記録するようにして対応している。
さらに、録画する機器はメーカーや機種により、DVDフォーマットには記載されていない独自の機能をもち、他社との差別化を行うことが考えられる。その場合、メーカー独自の情報をオブジェクトデータに埋め込む必要がある場合がある。そこで、この発明の一実施の形態ではそれに対応するために、Packet Group Headerにその領域としてMNFI(Manufacturer's Information)を設ける。
DVDディスクは図1に示す様に、ディスク内のデータは、ファイルシステムが入っているボリューム/ファイル構造情報領域とデータファイルを実際に記録するデータ領域で構成されている。ファイルシステムは、どのファイルがどこに記録されているかを示す情報で構成されている。データ領域には一般のコンピュータが記録する領域とAVデータを記録する領域にわけられる。AVデータ記録領域は、AVデータの管理をするためのVMGファイルがあるAVデータ管理情報領域とビデオレコーディング規格のオブジェクトデータ(EVOBS)ファイル(VROファイル)の記録されるVRオブジェクト群記録領域とデジタル放送に対応したオブジェクト(ESOBS:Extended Stream object set)が記録されているストリームオブジェクトデータ(ESOBS)ファイル(SROファイル)が記録される記録領域で構成されている。ここで、DVD-Video(ROM Video)はVIDEO-TS、DVD-RTR(録再DVD)はDVD-RTAVとフォーマット毎にディレクトリをわけており、今回のデジタル放送対応のDVD規格も例えばDVD_HDVRというディレクトリに記録される。
つまり、図2に示す様に、DVD_HDVRというディレクトリに、データの管理を行うためのVMGファイルとアナログ放送及びラインインなどのアナロク記録用のオブジェクトファイルであるVROと、デジタル放送のオブジェクトであるSROファイルが記録され、そのSROファイルはSOBS(Stream object Set)とし、管理データはVRと共通のVMGファイルに記録され、VRと共通に制御され、CELL単位でリンクされ、再生場所の指定は再生時間単位で指定される。この管理データはVR_MANEGER.IFOと称している。ここで、TMAPTを別ファイルにする場合、図2に示すように、HR_VTMAP.IFO、HR_STMAP.IFOとそのバックアップファイルであるHR_VTMAP.BUP、HR_STMAP.BUPが追加されている。
ESOBSの構造は、1以上のESOBで構成され、ESOBは、例えば、一番組に相当する。ESOBは1以上のESOBU(Extended Stream object unit)で構成され、ESOBUは、一定時間間隔(ESOBU_PB_TM_RNGの値により変化する)分のオブジェクトデータもしくは、1以上のGOPデータに相当する。ただし、転送レートが低い場合1s(1秒)以内で1GOPが送られない場合が考えられる(VRでは内部エンコードであるため自由に設定できるがデジタル放送の場合エンコードが放送局であるため、どんなデータがくるか不明な可能性がある)。また、レートが高く、Iピクチャが頻繁に送られた場合などが考えられる。その場合、ESOBUが頻繁に区切られ、それに伴いESOBUの管理情報が増え、全体の管理情報が肥大化するおそれがある。そこで、ESOBUは総録画時間により決めた一定時間間隔(最小の制限はESOB最後のESOBU以外、ただし、区切りはピクチャ単位:例1s毎)または1以上GOPで区切るのが適当となる。ここで、解析不能時にPATSベースで管理情報を構築する場合、ESOBUはSOBU_PATS_TM_RNGに示される時間間隔で区切られる。SOBU_PATS_TM_RNGは秒単位で指定する場合と27MHzのカウント値で指定する場合の2種類が考えられる。
この一実施の形態では、1つのESOBUは1以上のPacket Groupで構成され、1つのPacket Groupは16Logical Block(1LB=2048バイト;16LB=32640バイト)に対応する。各Packet GroupはPacket Group HeaderとTSパケット(170個)で構成されている。各TSパケットの到着時間は、各TSパケットの前に配置されたPATS(Packet Arrival Time:4バイト)で表すことができる。
ここで、TSパケットの到着時間は、録画開始を0(または所定の値)とし、録画終了までリニアにカウントアップさせる必要がある。そのため、録画中、複数の番組を一度に録画したり、編集された番組などの場合、システムタイムカウンタに不連続(STCのディスコンティニュー)が発生する可能性がある。そのような場合、STCの調整が必要となるが、この場合でも転送時間に関してはリニアに増える必要がある。この要求を満たすためには、STCの乗り換え(切り替え)に影響されないよう内部カウンタ(図16の実施の形態では90a)で処理する方法と、切り替え時にESOBを分ける方法が有る。ただし、リニアにする場合、その内部カウンタのカウント間隔は、再生同期の合っている状態のPCR(Program Clock Reference)取り込みと次のPCR取り込み間隔のSTCのカウント間隔と、カウント時間間隔を同期させる必要がある。
また、ESOBを分ける場合、ディスコンティニューするタイミングを正確に知る必要がある。但し、Packet Groupには2つまでのESOBが混在する事を許可する。つまり、ESOB毎にアラインしないと言うことである。
さらに、Packet Group Headerは図14〜図15に示す様にPacket Groupの先頭にSync Patternを設定し、次にPKT_GRP_GI、CCI:コピー管理情報(Copy Control Information)とFIRST_PATS_EXTとMNI(Manufacturer's information)で構成されている。
PKT_GRP_GIは、PKT_GRP_TY:Packet種別(1:MPEG_TS)、VERSION:DVD BOOKバージョン番号、PKT_GRP_SS:Packet Groupのステータス情報、Valid_PKT_Ns:Packet Group内の有効Packet数とFIRST_PATS_EXT:先頭のPacketに対するPATSの上位2バイトで構成されている。
さらに、PKT_GRP_SS(図15)は、STUF:スタッフィングが行われたかどうかを示すビット(このビット設定されている場合、Valid_PKT_Nsが0xAA以外の値を取る事を示している。)、PATS_SS(図4参照):PATSの精度を示す値(00=PATS, FIRST_PATS_EXTの両方が有効:精度6バイト、01=PATSのみ有効:精度4バイト、10=PATS, FIRST_PATS_EXTの両方が無効:精度無し)で構成されている。
CCIには、デジタルコピー制御(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のことで、一実施の形態ではマクロビジョンを想定している。
また、MNFIはMNF_IDとMNF_DATAで構成されている。NMF_IDは各メーカーを表す値である。その後ろのMNF_DATAは各企業毎に自由に設定可能なデータ領域となっている。FIRST_PATS_EXTはPacket Groupの先頭にあるPacketの到着時間の上位2バイトで、残り4バイトは各Packetの前に付けられている。これにより、より正確な時間の再生処理が可能となる。
ここで、管理情報について説明する。HDVRディレクトリには、図2に示されるように、DVDの管理情報ファイルであるHR_MANGER.IFOとアナログビデオオブジェクトファイルであるVROファイルとデジタル放送対応用のSROファイルで構成されている。また、ストリームデータの管理は図2に示す様にVMG内に保存され、VRデータと同列に管理される。
ストリームの管理情報はESTR_FIT(Extended Stream File Information table)に保存されている。ESTR_FITはESTR_FITI(ESTR_FIT Information)と1以上のESTR_FI_SRPとそのSRPで示されるESTR_FI(Extended Stream File Information)で構成される。ESTR_FITIは、ESTR_FIの総数とこのテーブルの終了アドレスで構成され、ESTR_FIは、ESTR_FI_GI(ESTR_FI General Information)、1以上のESOBI_SRP(Extended Stream Object information Search Pointer)とSRPと同数でその値で示されるESOBI(ESOB Information)で構成される。
ESTR_FI_GIには、該ESTR_FIの管理するオブジェクトのファイル名/ファイル番号と該ESTR_FI内のESOBI_SRPの数、記録されるコンテンツのソースであるデジタル放送の種類(AP_FORMAT_1)、録画した国コード:Country code(国コード:JPN=日本)、PKT_TY(1=MPEG-TS)、PKT_GP_SZ(16Logical Blockで固定)、PKT_Ns(0xAA:170TSpacketで固定)で構成されている。
図5は、図4のESOBIに含まれるESOBI_GIがどのように構成されるかの一例を説明する図である。ESOBI_GIは、図示の順番で図示する各種情報をを含んでいる。
すなわち、ESOBI(図5)は、ESOBI_GIと、ESOB_V_ESI(Extended Video Elementary Information)および/またはESOB_A_ESI(Extended Audio Elementary Information)に対応するESOB_ESI#と、ESOB_DCNI(Discontinuity Information)と、ESOB_PATSI(Packet Arrival Time Information)と、ESOB_SMLI(Extended Seamless Information)と、ESOB_AGAPI(ESOB Audio GAP Information)と、ESOB_TMAP(ESOB Time Map)と、ESOB_ES_GPI(ESOB_ES Group Information)で構成されている。
ESOBI_GIは、AP_FORMAT(1=ISDB-S:BS/CS放送、2=ISDB-T:地上デジタル放送)、録画開始時間、録画時間、先頭のPTM、終了PTM、さらに、PSI(Program Specific Information)、SI(Service Information)の値を元に、PROGRAM_NUMBER(SERVICE_ID)、PMT_ID、NETWORK_ID、TS_ID、FORMAT_ID、録画するデータを元に、SOB_ES_Ns(録画のために選択したESの数)、SOB_V_ES_Ns(録画したビデオESの内、TMAPを作ったESの数)、SOB_A_ES_Ns(録画したオーディオESの内、TMAPを作ったESの数)、CP_CTL_IFO、録画レート等で構成されている。SOB_TYのb15,14では、TMAPのタイプを競ってしており、0でPTMベース、1でPATSベースとなっている。
ESOB_PATSI(図6)は、ESOB_PATSI_GIとPATS_WRAPI#1〜#Kで構成され、PATSI_GIはPATSI_WAPIの数で構成され、PATS_WRAPIはPATSが一周した所の位置情報で、Packet Group番号とPacket Group内でのPacket番号で構成されている。
SOB_TMAPはSOB_TMAP_GIと1以上のES_TMAPIで構成される。ここで、SOB_TMAP_GIは、TMAP_TY(=0:PTMベース、=1:PATSベース)、ADR_OFS(ファイル先頭からのSOB先頭までのPacket Group番号(又はLBアドレス))と、PTMベースの場合、SOBU_PB_TM_RNG(SOBUの再生時間の範囲:1=0.4s〜1.2s、2=1s〜2s、3=2s〜3s)と、SOB_S_PKT_POS(SOBの先頭のPacket group内での始まり:1≦SOB_S_PKT_POS≦170)と、SOB_E_PKT_POS(SOBの先頭のPacket group内での終わり:1≦SOB_E_PKT_POS≦170)で構成される。
また、ES_TMAPIは、ES_PID(該TMAPの対象ESのPID:PIDは13ビットの実データで記載する方法とPMT内の順番を記載する方法の2通りが考えられる)、ADR_OFS(SOBファイル先頭から該ESの先頭までの論理アドレス)、ES_S_PTM(スタートPTM)、ES_E_PTM(エンドPTM)、ES_SOBU_ENT_Ns(SOBU_ENTの数)、LAST_SOBU_E_PKT_POS(最後のSOBUのPacket Group内での位置)、STMAP_N(該ESに属するSTMAPT内のTMAPの番号:ただし、STMAPTがSTR_FI毎にそれぞれ別ファイルに記録されている場合、各STMAPTに順番に記録されている場合はこの番号は無くても良い)で構成される。また、STMAPTは、別領域に記録され(別ファイル)、STMAPTIと1以上のSTMAPI_SRPとそれと同数のSTMAPIで構成される。
STMAPTI(図10、図11)は、STMAPTのエンドアドレス情報、該TMAPのバージョン情報、STMAP_SRP_Ns(TAMP_SRPIの数=TMAPIの数)、STMAPの更新日時情報(VMGIの値と同じ)で構成され、STMAP_SRPは各STMAPTの要素であるSTMAPIへのアドレス情報で構成され、各STMAPIはETMAPI_GIとESOBU_ENTが必要数で構成されている。STMAPI_GIは、ESOBU_ENT_Ns(エントリ数)で構成される。ただし、ESOBU_ENT間にごみデータが有っても良い。
PATSベースの場合、SOBU_PATS_TM_RNG(SOBUの到着時間間隔:1=0.5s、 2=1s、又は27MHzの場合のカウント値)、ESOB_S_PAT/ESOB_E_PATS(先頭/最後のPacketの到着時間)、TM_OFS(先頭のSOBUのTMレンジとの差分時間、無い例も考えられる)で構成され、編集はSOBU単位で行い、PATS開始/終了時間(CELLI)で調整を行う。
ここで、SOBU/VOBU_PB_TM_RNGを設定する事により録画時間が増えても、TMAPI情報が極端に大きくなることが防ぐことが可能となる。ただし、各エントリの時間間隔が広がる為、2倍速再生等がスムーズにできない可能性が増える。
ESOBU/EVOBUの間隔は、TM_RNGの値がある場合は、この値が示す時間間隔を最大とし、この前にGOPの切れ目がある場合は、そこでSOBUをきる。また、シーケンスヘッダ(SH)とI−PICがある場合には、そのSHの先頭できる。
VTMAPT(図9)はVTMAPTIとVTMAP_SRPTとVTMAP#1-#nで構成され、VTMAPTIは、VMG_ID(VMGIの先頭に在るVMG_IDと同じ値)、とVTMAPT_EA(VTMAPのエンドアドレス)、VERN(TMAPのバージョン情報)、IFO_LAST_MOD_TM (TMAPTの更新日時情報、HR_MANGR.IFOと同じ値)、VTMAP_SRPNs(サーチ情報の総数)で構成され、VTMAP_SRPTは1以上のVTMAP_SRP(各VTMAPのサーチ情報)で構成され、さらに、VTMAP_SRPはVTMAP_SA(VTMAPのスタートアドレス)と、VOBU_ENT_Ns(VOEU_ENTの総数)で構成され、VTMAPは、一以上のVOBU_ENTで構成されている。
図13に示される様に、PTMベースの場合、ESOUB_ENTは、1st_Ref_PIC_SZ(LB単位で表され、エントリ内で最初のリファレンスピクチャ(Iピクチャ等)のESOBU先頭からの最終アドレス情報)、SOBU_PB_TM(フィールド数で表されるSOBUの再生時間)、SOBU_SZ(SOBUに属するパケットグループの数で表されるSOBUサイズ)、SOBU_S_PKT_POS(パケットグループ先頭からのパケット数で表され、ESOBUの先頭が入っているパケット位置)、SOBU_SH_EXIST_Flag(シーケンスヘッダ(SH)情報)を含んで構成される。
SH情報は、2種類考えられる。第1は、図13のように、ESOBU内にSHがあると言う事を示すフラグESOBU_SH_EXIST_FLAGがある場合である。第2は、SOBUの先頭からI−PICまでの間にSHがあることを示すフラグESOB_SH_I_EXIST_FLAGと、SOBU内にSHがあると言う事を示すフラグ(もしくは、I−PICからSOBU最後までにSHがある事を示すフラグESOBU_SH_EXIST_FLAGがある場合である。
第1のSH情報は、SHが番組内(ESOB内)で一定の場合、もしくはESOBUが必ずSHで始まるようにESOBUを区切る場合に採用される。これにより、ESOBU内のSHを利用して再生が可能となる。
第2のSH情報は、SHが頻繁に変化する場合、もしくはSHがESOBU先頭に有るとは限らない場合に採用される。第2のSH情報を採用することにより、ESOBU先頭からI−PICまでにSHがない場合でも、その前(通常は1つ前のESOBUであるが、場合によっては2つ以上前のESOBUの場合も可能とする)の、SHのあるESOBUを読み出すことにより、SHを設定でき、再生が可能となる。
タイムサーチの場合、PB_TMの累積で目的の時間のESOBUを求め、そのESOBUの先頭からのフィールド数で再生開始PTMを換算する。ここで、アドレスは目的のESOBUをK、目的のアドレスをAとすると、
A=SOB__ADR_OFS
+目的のESのES_ADR_OFS+Σk-1 N=1ESOBU_SZ(N)×16+1
となり、さらに、先頭のパケットはESOBU_S_PKT_POSの値のパケットとなり、このアドレスにアクセスすることになる。
PATSベースのESOBU_ENTは、Packet単位の場合とPacket Group単位の2種類が考えられる。Packet単位の場合、より正確なアドレスが得られるが、ESOBU_ENTのデータが増えPacket Goup単位の場合はESOBU_ENTのデータは少ないがPacket Group単位でしかアドレスを取れない。Packet単位の場合は、PATSベースのESOBU_ENTはAT_SOBU_SZとAT_SOBU_S_PKT_POSで構成される。AT_SOBU_S_PKT_POSはPacket_Group内でのSOBUの先頭の位置をPacket数で示している。
一方、Packet Group単位の場合は、PATSベースのESOBU_ENTはAT_SOBU_SZで構成され、ESOB_S_PKT_POS、ESOB_E_PKT_POSは0に固定される。
ESOB_TMAP_GI(図8)には、ADR_OFSとSOB_SZ、SOB_E_PKT_POSがSOB全体の値に関した値として記されている。また、各ES用のTMAPIとして、ES_TMAPI(図7)には、ES_S_ADR_OFS(SOBの先頭から該ESの先頭のESOBUまでのアドレス(Packet Group数))と、ES_E_ADR_OFS(該ESの最後のESOBUからESOBの最後までのアドレス(Packet Group数))と、ES_LAST_SOBU_E_PKT_POS(最後のSOBUのPacket Group内での最後のPacketまでのPacket数)と、ES_SOBU_ENTNs(ESOBU_ENTの総数)と、該ESのデフォルトのPID(PIDは13ビットの実データで記載する方法とPMT内の順番を記載する方法の2通りが考えられる)等が、ES_TMAP全体の値として記されいる。
各STMAPI内のESOBU_ENT(図12〜図13)には、ESOBU_S_PKT_POS(またはAT_SOBU_S_PKT_POS)、SOBU_SZ(またはAT_SOBU_SZ)がESOBUに属する値として記載されている。
さらに、SOB_SZが有る場合、ES_E_ADR_OFS(図7)は以下の計算で求められるため、どちらかが有れば良い。
ES_E_ADR_OFS
=SOB_SZ−(ES_S_ADR_OFS+Σk-1 N=1SOBU_SZ(N)+1)
SOB_SZ>ES_S_ADR_OFS、SOB_SZ>SOBU_SZ等の式も成り立つ。
また、図8は、PATSベースの実際のTEMAPとESOBUの構造である。Packet単位の場合、SOB_SZ(図8)はESOBの先頭が属するPacket GroupからESOBの最後が属するPacket GroupまでのPacket Group数である。また、AT_SOBU_SZはESOBUの先頭のPacket GroupからESOBU最後のPacket Groupまでの数となり、AT_SOBU_S_PKT_POSはESOBUの切れ目とPacket Groupの切れ目の差をPacket数で表している。
ここで、時間情報は、PATSベースのため、ESOBの開始時間としてSOB_S_PATS、終了時間をSOB_E_PATSとし、PATSで表している。ただし、SOB_E_PATSに関しては、最後のPacket Groupの最後のPacketのPATS(到着開始時間)であり、最終受信終了時間では無い。編集はESOBU毎に行い、再生開始時間(CELLIのCELL_S_PATS)を指定する。ESOBU毎の編集のため、ESOB_S_PATSは必ずESOBUの先頭と一致する。ただし、PATSはPATS_SSにより、精度が示される。
TM_OFSは、ESOBの先頭のPATSとTM_RNGで指定されたTM(時間)レンジとの実際の差を27MHzのカウント値で表す。ただし、この値が無い例も考えられる。
Packet Group単位で処理を行う場合、ESOBUとPacket Groupの切れ目が一致するため、ESOBU_S_PKT_POSは不要となる。また、ESOB_S_PKT_POS、ESOBU_E_PKT_POSも0固定となる。
さらに、ESOBにおいては、マルチビュー放送や降雨対応放送、さらに、複数番組同時録画対応として、SOB_ES_GPI(Group Information)がある。そのGPIは、ESOB_GPI_GI、GPI_SRP、GPIで構成される。ESOB_GPI_GIには、GPI_TY(0=レコーダ内で作成、1=放送時に定義)と、GPI_SRP_Ns(ES_GPI_SRPの数)が入り、GPI_SRPは、GPI_SA(GPIのスタートアドレス)で構成され、各GPIは、GPI_GI、各ES_PIDで構成され、GPI_GIはPIORITY(優先度:指定しない場合は全て0、1が最優先)と、ES_PID_Ns(該グループのESの数)で構成されている。ただし、ビデオPIDが有る場合、同じGPには属さない。
再生情報はEX_PGC情報で、通常のVRフォーマットと同じで、ORG_EX_PGC情報は録画時に機器が自動で作成し、録画順に設定し、UD_EX_PGC情報は、ユーザが自由に追加する再生順番に従って作成され、PLAYLISTと呼ばれている。この二つのフォーマットはEX_PGCレベルで共通で、そのEX_PGCフォーマットは次のようになっている。すなわち、EX_PG情報には、このEX_PGが更新された日時情報が保存される。これにより、該EX_PGが何時編集されたかがわかる。また、テキスト情報として番組名用には、PRM_TXTが使用され、その他のテキスト情報を保存するためにIT_TXT領域にその他の情報(監督名、主演名、…)を保存し、該EX_PGIにはその保存したIT_TXTのSRP番号を設定して、リンクさせ、さらに、IT_TXTデータの方にもPG番号を設定している。ここで、EX_PG番号はこのディスクに記録し初めてからの絶対番号で、他のEX_PGを削除しても変わらないインデックス番号としている。
さらに、EX_PGには、RSM_MRKIが存在し、各プログラム毎のレジュームマーカー(再生中断時にどこまで再生したかを示すマーカー)を設けており、再生を再開するための情報として、EX_CELL番号、再生開始PTMとそのマーカーを作成した日時情報を設定している。これをタイトルレジュームとして使用する。
また、メーカー特有の機能を実現させるために設けられたMNFIを利用するためにEX_PGIにMNFIのSRP番号を設定し、さらにMNFI情報でも、EX_PG番号を設定する事により、MNFI情報内のデータとのリンクを計っている。
さらに、MNFI、IT_TXTの両方にもPGの更新日時情報を設定する事により、メニュー表示時にその時刻の一致をチェックする事により、他社メーカーの編集かどうかを検証する。
さらに、EX_CELL情報では、従来のVRのCELLタイプにSOBの種別(STRA_CELL、STRB_CELL)が加わっており、ESOB番号、開始時間、終了時間再生するGP番号を指定する。ここで、開始時間、終了時間は、再生時間(PTMベースの場合)またはPATS時間(PATSベースの場合)の2種類のどちらかで表せる場合が考えられる。
ここで、時間指定を再生時間:再生時の実時間にすると、従来のVRと同じアクセス方法が可能となり、ユーザが再生時間で指定するため、ユーザ希望が完全に反映されることになる。ただし、この方法は、ストリームの内容が十分に解析可能な場合に指定できる方法で有るが、十分に内容がわからない場合には転送時間単位で指定せざるを得ない。
再生時間で指定した場合、必ずしもIピクチャの先頭で再生を開始できるとは限らない。再生開始のフレームがIで無い場合は、その直前のIよりデコードを開始し、目的のフレームまでデコードをした所で、表示を開始し、ユーザには指定されたフレームから再生開始した様に見せる事により対応している。
また、参照するIDは、再生するストリームの代表するストリームのPID(PIDは13ビットの実データで記載する方法とPMT内の順番を記載する方法の2通りが考えられる。またはコンポーネントタグの値)を設定する方法と、マルチビューTVなどの場合などで、コンポーネントグループのIDを設定する方法が考えられる。また、EX_PG、EX_CELLに特有のID番号を付け、途中のEX_PG、EX_CELLを削除しても変わらない番号でEX_PG、EX_CELLを指定できるようにしている。
また、EX_CELLには再生するESTR_FI番号とESOB番号を設定している。さらに、EX_CELLにはチャプターに相当するEPI(Entry Point Information)がある。EPIには、各CELLタイプ毎に2種類あり、合計8種類となる。
M_CELL_EPI_TY_Aは、EPI_TY(EPIのタイプ情報)とEPのついているPTMで構成され、TY_Bはさらに、PRM_TXTI(テキスト情報)、REP_PIC_PTM(サムネール用ポインタ)で構成されている。S_CELL_EPI_TY_Aは、EPI_TY(EPIのタイプ情報)、EPのついているS_VOB_ENT番号で構成され、TY_Bはさらに、PRM_TXTI(テキスト情報)で構成されている。
STR_A_CELL_EPI_TY_A(ESOBのTYPE A)は、EPI_TY(EPIのタイプ情報)、EPのついているPTM、そのEPのついているESのPID(又はグループ番号)で構成され、TY_Bはさらに、PRM_TXTI(テキスト情報)、REP_PIC_PTM(サムネール用ポインタ)で構成されている。STR_B_CELL_EPI_TY_A(ESOBのTYPE B)は、EPI_TY(EPIのタイプ情報)、EPのついているPATS、そのEPのついているESのPIDで構成され、TY_Bはさらに、PRM_TXTI(テキスト情報)、REP_PIC_PTM(サムネール用ポインタ)で構成されている。
図16は、この発明の一実施の形態に係るデータ構造を利用して、情報記録媒体(光ディスク、ハードディスク等)にAV情報(デジタルTV放送プログラム等)を記録し再生する装置の一例を説明するブロック図である。
一実施の形態に係る録再装置は、図16に示すように、MPU部80、表示部104、デコーダ部59、エンコーダ部79、TVチューナ部82、STC部(System Time Counter)102、D−PRO部52、一時記憶部53、ディスクドライブ部51、キー入力部103、Vミキシング部66、フレームメモリ部73、TV用D/A部67と、地上波デジタルチューナ部89と、IEEE1394I/F部74(および/またはイーサネット(登録商標)I/F部)、リモコン受信部103bと、さらに、STB部(BSデジタルチューナ等)83、緊急放送検出部83b、HDD部100aにより構成されている。この構成は、録再DVDレコーダにストリーマの機能を追加する形で構成している。
なお、図示しないが、図16のI/Fとして、HDMI端子および/またはD3〜D5端子をさらに装備することができる。
エンコーダ部79内は、A/D部84、ビデオエンコード部87、オーディオエンコード部86、副映像エンコード部(図示せず)、フォーマット部90、バッファメモリ部91より構成される。デコード部59は、分離部60、ビデオデコード部61、副映像(SP)デコード部63、オーディオデコード部64、TSパケット転送部101、V−PRO部65、オーディオ用D/A部70より構成されている。さらに、STB部83には、デジタル放送を受信するためのアンテナ83aが付いている。なお、STC部102は27MHzベースでカウントするように構成されている。
記録時の信号の流れは、STB部83(または地上波デジタルチューナ部89)で受け取ったTSパケットデータは、フォーマッタ部90で、パケットグループ化されワークRAM91へ保存し、一定量たまった時点でディスク100またはHDD100aに記録される。
このフォーマッタ部90には、PATS用の内部カウンタ90aが接続されている。TSパケットの到着時間はPATS用のカウンタ90aでカウントし、そのカウント値を各TSパケットの先頭に付けて、バッファリングされる。このカウンタ90aはSCR(System Clock Reference)によりカウント間隔の微調整は行うがSTC102のようにSCRの値をロードする事は無い。この時の動作は、TSパケットを受信すると170パケットづつグルーピング化し、パケットグループヘッダを作成する。その場合、Packet Groupの先頭のPacketのPATSの上位2バイトのみヘッダに入れ、それ以外のPATSは下位4バイトのみがTSパケットとともに(TSパケットの前に)保存される。
また、地上波チューナ82やライン入力81から入力されたアナログ信号は、A/D部84でデジタル変換される。そのデジタル信号は、各エンコーダ部へ入力される。ビデオ信号はビデオエンコード部87へ、オーディオ信号はオーディオエンコード部86へ、文字放送などの文字データは図示しない副映像エンコード部へ入力されて、ビデオ信号はMPEG圧縮され、オーディオ信号はAC3圧縮またはMPEGオーディオ圧縮がなされ、文字データはランレングス圧縮される。
各エンコーダ部(VR用)から、圧縮データがパック化された場合に2048バイトになるようにパケット化されて、フォーマッタ部90へ入力される。フォーマッタ部90では、各パケットがパック化され、さらに、プログラムストリームとして、多重化され、D−PRO部52へ送られる。D−PRO部52では、16Logical Bock毎にECCブロックを形成し、エラー訂正データを付け、ドライブ部51によりディスク100に記録される。
ここで、ドライブ部51がシーク中やトラックジャンプなどの場合のため、ビジィー状態の場合には、記録情報は、一時、バッファ部53へ入れられ、ドライブ部51の準備ができるまで待つこととなる。さらに、フォーマッタ部90では、録画中、各切り分け情報を作成し、定期的にMPU部80へ送る(GOP先頭割り込みなど)。切り分け情報としては、EVOBU(ESOBU)のパック数、EVOBU(ESOBU)先頭からのIピクチャのエンドアドレス、EVOBU(ESOBU)の再生時間などである。
また、再生時の記録の流れは、ディスク100からドライブ部51よりデータを読み出し、D−PRO部52でエラー訂正を行い、デコード部59へ入力される。MPU部80は入力されるデータがVRデータか、SRデータかの種別を判定し(Cell TYPEより判定する)、デコーダ部59に再生前にその種別を設定する。
SRデータの場合、MPU部80は再生するセル情報EX_CELLIより、再生するPIDを決め、PMTより、再生する各アイテム(ビデオ、オーディオ等)のPIDを決め、デコーダ部59へ設定する。デコーダ部59は、そのPIDを元に、分離部60で各TSパケットを各デコード部へ送る。さらに、TSパケット転送部101へ送り、到着時間にしたがって、STB部83(1394I/F部74)へTSパケットの形で送信する。
各デコード部は、デコードを行い、D/A部67でアナログ信号に変換し、TV68で表示する。VRデータの場合、分離部60は固定のIDに従い各デコード部へ送る。各デコード部は、デコードを行い、D/A部67でアナログ信号に変換し、TV68で表示する。
図16の装置で用いる媒体100(100a)の特徴を簡単に纏めると、次のようになる。すなわち、この媒体は、管理領域130とデータ領域131で構成され、データ領域にはデータが複数のオブジェクトデータ(ESOB)に分かれて記録され、それぞれのオブジェクトデータはデータユニット(ESOBU)の集まりで構成される。そして、1つのデータユニット(ESOBU)は、MPEG−TSに準じたデジタル放送信号をTSパケット毎に複数パケットでパケットグループ化したパケットグループにより構成される(図1、図14参照)。一方、前記管理領域130は再生手順を管理する情報としてEX_PGC情報(EX_PGCI)を持ち、このEX_PGC情報はEX_CELL情報(EX_CI)を含んで構成される。さらに、管理領域130内にオブジェクトデータ(ESOB)を管理する情報を持つ。
図16の装置は、上記のようなデータ構造を持つ媒体100(100a)に対して、ビデオレコーディングの他にストリームレコーディングを行うことができる。その際、TSパケットのストリーム内からプログラムマップテーブルPMTやサービス情報SIを取り出すために、MPU部80はサービス情報取り出し部(図示せず;管理データ作成部80Bの一部を構成するファームウエア)を持つように構成される。またこのサービス情報取り出し部で取り出した情報を元に、属性情報(PCR_パック番号あるいはPCR_LB数番号など)を作成する属性情報作成部(図示せず;管理データ作成部80Bの一部を構成するファームウエア)を持つように構成される。
MPU部80はさらに、MPEG−TSからPTS(Presentation Time Stamp)および/またはDTS(Decoding Time Stamp)を検出する検出部80E、連続(隣接)するGOP間を検出する検出部80F、ストリームが不連続しているか否かを検出する検出部80G等をファームウエアとして具備している。
なお、再生時は、ディスク100から読み出したパックデータを分離部60で解析し、TSパケットが入っているパックの場合にはTSパケット転送部101へ送り、さらにその後、各デコーダへ送って、再生を行う。STB83へ転送する場合(あるいはデジタルTV等の外部機器へ送信する場合)は、TSパケット転送部101は、そのデータを到着時と同じ時間間隔で、TSパケットのみを転送する。STB部83は、デコードを行い、AV信号を発生させ、そのAV信号をストリーマ内ビデオエンコーダ部を通して、TVへ表示する。
例えば図16の装置の電源がオンされると、MPU部80は、(工場出荷時またはユーザが設定した後の)初期設定を行い、表示設定を行って、ユーザ操作を待つ。ユーザがキー入力部103またはリモコン103aからキー入力を行うと、MPU部80はそのキー入力の内容を解釈する。この入力キー解釈の結果に応じて、以下のデータ処理が適宜実行される。すなわち、キー入力が例えばタイマ予約録画設定のキー操作であれば、番組設定処理に入る。キー入力が録画開始のキー操作であれば、録画処理に入る。キー入力が再生開始のキー操作であれば、再生処理に入る。キー入力がSTBへデジタル出力させるキー操作であれば、デジタル出力処理に入る。編集処理のキー操作であれば、編集処理に入る。
以上の処理は、そのタスク毎に適宜並列処理される。例えば、再生処理中にSTBへデジタル出力する処理が並列に実行される。あるいは、タイマ予約録画でない録画処理中に新たな番組設定処理を並列に処理するように構成することができる。あるいは、高速アクセス可能なディスク記録の特徴を生かし、録画処理中に再生処理とデジタル出力処理を並列処理するように構成することもできる。HDDへの録画中にディスクの編集処理を行うように構成することも可能である。
図17および図18は、図16の装置の録画動作の一例を説明するフローチャート図である。ストリーム録画時のデータ処理は、以下のようになる:
d1)まず、番組設定処理でEPG(Electronic Program Guide)を使用して録画する番組を決めておき、受信を開始し、その決めた番組の録画を行う;
d2)MPU部がキー入力部より録画命令受けると、ドライブ部から管理データを読み込み、書き込む領域を決定する。このとき、ファイルシステムをチェックし(ステップST100)、録画可能かどうかを判断し(ステップST102)、録画可能の場合は記録する位置を決定し(ステップST105)、録画可能でない場合はその旨をユーザに示して(ステップST104)、処理を中止する。
d3)録画対象がデジタル放送であり(ステップST106)エラーが出ていないときは(ステップST111)、決定された領域を書き込むように管理領域に設定し、ビデオデータの書き込みスタートアドレスをドライブ部に設定し、データを記録する準備を行う(ステップST112);
d4)STC部に時間のリセットを行う。ここで、STC部はシステムのタイマーでこの値を基準に録画、再生を行う;
d5)録画する番組のPATを読み込み、目的の番組のPMTを取り込むためのPIDを決定し、目的のPMTを読み込み、デコードすべき(録画すべき)各データ(ビデオ、オーディオ)のPIDを決定する。このとき、MPU部のワークRAM部にPAT、PMTを保存し、管理情報に書き込む。ファイルシステムに、VMGファイルのデータを書き込み、VMGIに必要な情報を書き込む。
d6)各部へ録画設定を行う(ステップST114)。このとき、フォーマッタ部へ、各データの切り分けの設定や、TSパケットの受け取り設定を行う。また、このとき、記録すべきデータのPIDを設定し、目的のビデオストリームのみ記録するようにする。また、バッファへTSパケットの保持を開始するように設定する(ステップST116)。すると、フォーマッタ部90は動作を開始する。
d7)PMTよりSOB_ESIを作成する(ステップST120);
d8)バッファ内のデータが一定量たまった場合は、D−PROを通して、ECC処理を行い、ディスクに記録する(ステップST130);
d9)録画中、定期的に(フォーマッタ部のバッファRAMが一杯になる前に)、切り分け情報をMPU部のワークRAMに保存する。ここでの切り分け情報は、ESOBUの切り分け情報で、ESOBUの先頭のアドレス、ESOBUのパック長、I-Picの終了アドレス、ESOBUの到着時間(ATS)等である;
d10)録画終了かどうかをチェックし(録画終了キーを入力したかどうか、または、残り容量が無くなったかどうか)、終了時には、フォーマッタ部より残りの切り分け情報を取り込み、ワークRAMへ追加し、それらのデータを管理データ(VMGI)に記録し、さらに、ファイルシステムに、残りの情報を記録する;
d11)終了で無い場合は、d7)に移行し、データの取り込み及び再生を続けて行うようにする。
記録時の信号の流れでは、STB部(または地上波デジタルチューナ)で受け取ったTSパケットデータは、フォーマッタ部で、パケットグループ化されワークRAMへ保存し、一定量たまった時点(1またはその整数倍のCDA分がたまった段階で)でディスクに記録される。
この時の動作は、TSパケットを受信すると170パケットづつグルーピング化し、パケットグループヘッダを作成する。具体的には以下のようになる:
1)TSパケットを受信する;
2)取り込んだTSパケットにPCRが有る場合はSTCの修正を行う;
3)パケットグループの先頭の場合は、Sync_Pattern:00ffa5a5を設定し、先頭でない場合は6)へ移行する。
4)TSパケットの到着時間をPATSとして、PATSの下位4バイトをTSパケットの前に配置し、先頭のPATSの上位2バイトをFIRST_PATS_EXTとしてPacket Group Headerに設定する;
5)PAT_SSに0を設定し、7)へ移行する;
6)TSパケットデータエリアに取り込んだTSパケットにPATSの下位4バイトをTSPacketの前に付け、Packet Groupのデータリアに設定する。
7)パケットグループが終わったかどうかを判定し、(170個のTSパケットをグルーピングしたかどうかを判定し)、終わってない場合は、1)へ移行し、終わった場合は、PKT_GRP_GI設定処理、CCI処理、MNFI処理を行いグループデータをバッファRAM内に一時保存する。ここで、PATSの精度が4バイトの場合、4)、5)の処理のFIRST_PATS_EXTが無くなり(又は0を設定)、PATS_SSの値が01となる。
次にPKT_GRP_GI設定処理を説明する:
1)Packetタイプを調べ、MPEG_TSパケットの場合は1を設定し、それ以外の場合は、そのタイプにあった値をPacket Typeに設定する;
2)該当規格のBOOKバージョンに対応した値をVERSIONに設定する;
3)該Packet Group内でPATSが一周したかどうかを調べ、一周した場合にはEESOB_PATSIのPATS_WRAPIに其のアドレス情報を設定する。
また、録画時のデータ処理は、以下の通りとなる。
1)番組設定処理でEPG(Electronic Program Guide)を使用して録画する番組を決めておき、受信を開始し、その決めた番組の録画を行う;
2)MPU部がキー入力部より録画命令受けると、ドライブ部から管理データを読み込み、書き込む領域を決定する。このとき、ファイルシステムをチェックし、録画可能かどうかを判断し、録画可能の場合は、記録する位置を決定し、録画可能でない場合は、その旨をユーザに示して、処理を中止する;
3)決定された領域を書き込むように管理領域に設定し、ビデオデータの書き込みスタートアドレスをドライブ部に設定し、データを記録する準備を行う。
4)STC部に時間のリセットを行う。ここで、STC部はシステムのタイマーでこの値を基準に録画、再生を行う;
5)録画する番組のPATを読み込み、目的の番組のPMTを取り込むためのPIDを決定し、目的のPMTを読み込み、デコードすべき(録画すべき)各データ(ビデオ、オーディオ)のPIDを決定する。このとき、MPU部のワークRAM部にPAT、PMTを保存し、管理情報に書き込む。ファイルシステムに、VMGファイルのデータを書き込み、VMGIに必要な情報を書き込む;
6)各部へ録画設定を行う。このとき、フォーマッタ部へ、各データの切り分けの設定や、TSパケットの受け取り設定を行う。また、このとき、記録すべきデータのPIDを設定し、目的のビデオストリームのみ記録する様にする。また、バッファへTSパケットの保持を開始する様に設定する。すると、フォーマッタ部90は動作を開始する。
7)PMTよりESOB_ESIを作成する;
8)バッファ内のデータが一定量たまった場合は、D−PROを通して、ECC処理を行い、ディスクに記録する;
9)録画中、定期的に(フォーマッタ部のバッファRAMがいっぱいになる前に)、切り分け情報をMPU部のワークRAMに保存する。ここでの切り分け情報は、ESOBUの切り分け情報で、ESOBUの先頭のアドレス、ESOBUのパック長、I-Picの終了アドレス、再生時間、Packetの到着時間(PATS)、シーケンスヘッダ情報の有無等である。
10)録画終了かどうかをチェックし(録画終了キーを入力したかどうか、または、残り容量が無くなったかどうか)、終了時には、フォーマッタ部より残りの切り分け情報を取り込み、ワークRAMへ追加し、それらのデータを管理データ(VMGI)に記録し、録画時の平均の録画レートを記録し、さらに、ファイルシステムに、残りの情報を記録する;
11)終了で無い場合は、7)に移行し、データの取り込み及び再生を続けて行うようにする。
ここで、TVに表示するために、デコーダ部へD−PRO部と同時に送り、再生を行う。ただし、この場合、MPU部はデコーダ部へ再生時の設定を行い、その後はデコーダが自動的に再生を行う。D−PRO部は16パック毎にまとめてECCグループとして、ECCをつけてドライブ部へ送る。ただし、ドライブ部がディスクへの記録準備が出来ていない場合には、一時記憶部へ転送し、データを記録する準備が出来るまで待ち、用意が出来た段階で記録を開始する。ここで、一時記憶部は高速アクセスで数分以上の記録データを保持するため、大容量メモリが想定される。ただし、マイコンは、ファイルの管理領域などを読み書きするために、D−PRO部へマイコンバスを通して、読み書きすることが出来る。
ESOB_ESIの設定処理は、例えば次のようになる:
1)PSI、SIを調べ、設定されているストリーム数を調べる;
2)設定されているストリーム数の数だけ4)〜5)を繰り返す;
3)PSI、SIよりストリームタイプを調べ、ビデオ、オーディオのストリームかその他かどうかを判定し、次のストリームチェックに移行する;
4)ストリームタイプをMPEG1ビデオ、MPEG2ビデオ、MPEG1オーディオ、MPEG2オーディオ…等の種別に分け、それぞれの種別応じて、内部のデータをチェックし、各属性情報を読み出す。
5)ビデオストリームの場合、ES_TY=0とし、各属性情報を設定し、特に解像度データ、アスペクト情報等を取り出し、V_ATRを作成し、8)へ移行する;
6)オーディオストリームの場合、ES_TY=0x40とし、各属性情報を設定し、特にサンプリング周波数、チャンネル数等を取り出し、A_ATRを作成し、8)へ移行する;
7)その他の場合、ES_TY=0x80とし、各属性情報を設定し、8)へ移行する;
8)コピー情報を取り出し、CP_CTL_INFOを作成する;
9)属性情報を元に新たにESIを設定し、次のストリームチェックに移行する。
さらに、STR_FIの作成処理は、例えば以下のようになる:
1)ESOBIを一つ増やすため、サーチポインタ(SRP)を増やし、領域を確保し、PKT_TYに0:MPEG_TSを設定する;
2)録画時間をESOB_REC_TMに設定する。ここで、内部の時計は、TDT(Time Data Table)により、設定、補正が行なわれ、常に正確な時間が得られる;
3)スタートPTM、エンドPTMを設定する;
4)ストリームの種類がTSストリーム(ARIB、DVB)の場合は、AP_PKT_SZに188を設定し、PKT_GRP_SZに16を設定する。そうでない場合は、放送方式にあった値をAP_PKT_SZに設定する。
5)PKT_TYにMPEG_TSを設定する;
6)PATより、TS_ID、NETWORK_PID、PMT_ID(該ESOBで使用しているPMTのPID:PIDは13ビットの実データで記載する方法とPMT内の順番を記載する方法の2通りが考えられる)を設定する;
7)PMTより、Program_Number(PMT内のSERVICE_ID )、PCR_PID、を設定し、さらに、FORMAT_ID、VERSIONに付いては、内部チューナの場合は、機器内でデフォルトの方式とし、外部デジタル入力の場合は、デジタル入力より送られてくるRegistration_Descriptorの値を設定する。TMAPタイプに従ってESOB_TYを設定する;
8)さらに、録画したESの数を設定する。(PMTには放送している全てのESの情報:数が設定されているが、録画時に全てのESを記録しているとは限らないため、記録したESの数を設定する。
9)録画を開始したLBアドレスをADR_OFSに設定し、デフォルトのPIDを設定する。デフォルトのビデオのPIDとはコンポーネントタグ値が00の値のもの、もしくは、マルチビューTVの場合、メインのコンポーネントグループに記載されているコンポーネントタグに相当するストリームのPIDが相当する;
10)GPIを設定する処理(後述)等を行い、各切りわけ情報を元にストリーム毎にTMAPIを作成する;
11)PATSの精度に従い、PATS_SSを設定する(Packet_Group Header内の値と同じ値);
12)編集日時を設定する。
GPI設定処理は、例えば以下のようになる:
1)ストリームのタイプを調べる;
2)複数番組を1ストリームにしたの場合、ESOB_TYにGPIありとし、GPI_TYに0、全PRIORITY=0と設定し、1番組を1GPIで構成し、グループ数を設定し、5)へ移行する;
3)降雨対応放送の場合、ESOB_TYにGPIありとし、GPI_TYに40h、高階層をPRIORITY:1とし、そのほかをPRIORITY:2と設定する。階層毎に1GPIで構成しグループ数を設定し、5)へ移行する。
4)マルチビュー放送の場合、ESOB_TYにGPIありとし、GPI_TYに40h、高階層をPRIORITY:1とし、そのほかをPRIORITY:2と設定し、1ビューに1GPIで構成し、まだ、ほかのGPとすべきESがあるかどうかを判断し、有る場合は1)へ移行し、無い場合はグループ数を設定し、5)へ移行する;
5)他のグループが無いかどうかをチェックし、ある場合は2)へ移行し、無い場合は、現在選択されているPIDのグループでプレイリストを作って、登録し、この処理を終了する;
6)GPが無い場合はESOB_TYにGPIなしと設定し、この処理を終了する。これにより、現在選択されているグループで再生をする場合には、自動作成されたプレイリストを再生することにが可能となる。
さらに、TMAP設定処理について、以下に説明する:
1)ESOB/VOBの構造を決定する;
2)ESOBの場合:TMAP_TYを決定する。PTMベースの場合、GP数を考慮し、STMAPを作成するESを決定し、そのESの数(ビデオのESの数)をTMAP数とし、TMAP毎に作成するES_PIDを設定する。(ただし、1GPに必ず1TMAPが付く必要は無い。無い場合は同じMAIN_GPもしくは同じGP_NUMが付いているGPのTMAPを利用し、再生、サーチ、特殊再生等を行う。)PATSベースとVOBの場合、1つTMAPを追加する;
3)切り分け情報よりESOB(PTMベース)/VOB開始時間終了時間、TMAP毎の開始時間終了時間、エントリ数、ESOB(PATSベース)の先頭のPacketの到着時間、最終Packetの到着時間等を設定する。
4)TMAPTを追加し、切り分け情報を元にエントリ情報:ESOBのTYPE Aの場合、1st_REF_PIC_SZ(先頭のI-picの終了アドレス、I-Picが無い場合は0をセット)、SOBU_SZ(ESOBUのサイズをPacketGP単位で示す)、SOBU_S_PKT_POS(PacketGP内でのESOBUの先頭の位置)、SOBU_SH_EXIST_FLAG(ESOBU内のシーケンスヘッダの存在を示す。有=1、無=0)、SOBU_SH_I_EXIST_FLAG(ESOBUの先頭からI−PICまでの間にシーケンスヘッダの有無を示す。有=1、無=0:I-Picが無い場合は0を設定)、ESOBUのTYPE_Bの場合、SOBU_SZ(ESOBUのサイズをPacketGP単位で示す)、SOBU_S_PKT_POS(ESOBUの先頭のPacket Group内での位置(PKT単位))を設定する;
5)SOBU_SZ、SOBU_PB_TMを作成する。ここで、TMAPT情報は別ファイルの場合とIFOファイルの最後に追加する場合が考えられる。
VOB/ESOBの構造設定処理は、例えば以下のようになる:
1)録画した録画時間を調べ、録画時間が2時間以下の場合は2)に移行し、2時間から4時間の場合は3)へ移行し、4時間以上は4)へ移行する;
2)VOB/SOB_PB_TM_RNGに0を設定し、切り分け情報(0.4s〜1.0sの情報)より、ESOBUが0.4s〜1sになる様にVOB/ESOBU_ENTを作成し、5)へ移行する;
3)VOB/SOB_PB_TM_RNGに1を設定し、切り分け情報(0.4s〜1.0sの情報)より、ESOBUが1s〜2sになる様にVOB/ESOBU_ENTを作成し、5)へ移行する;
4)VOB/SOB_PB_TM_RNGに2を設定し、切り分け情報(0.4s〜1.0sの情報)より、ESOBUが2s〜3sになる様にVOB/SOBU_ENTを作成する;
5)この処理を終了する。
さらに、CP_CTL_IFOの設定処理は、例えば以下のようになる:
1)最新のPMT、EIT内にコピー情報が有るかどうか調べ、有る場合は、その情報を元にコピー情報を構成し、設定し、3)へ移行する;
2)コピー情報がない場合は、コピーフリーとして設定する;
3)最新のPMT、EIT内にコンテンツ利用記述子が有るかどうか調べ、有る場合は、その情報を元にICT、EPNを設定しする;
4)受信したTSパケット内にコピー情報がない場合は、コピーフリーとしてICT、EPNとして構成する。
さらに、CCI設定処理の場合を説明する:
1)最新のPMT、EIT内にコピー情報が有るかどうか調べ、有る場合は、その情報を元にコピー情報を構成し、設定し、3)へ移行する;
2)受信したTSパケット内にコピー情報がない場合は、前回のパックと同じ情報をコピー情報として構成する;
3)最新のPMT、EIT内にコンテンツ利用記述子が有るかどうか調べ、有る場合は、パケットグループの途中で変化した場合、その変化した所から新たなパケットグループとするように前のパケットグループにダミーデータを挿入し、変化後からを新たなパケットグループとするようにし、その情報を元にCCIを設定する。このとき、PKT_GRP_GI:STUFに1を設定し、有効なPacketの数をPKT_GRP_GI:VALID_PKT_Nsに設定する;
4)受信したTSパケット内にコピー情報がない場合は、コピーフリーとしてCCIを構成する。
さらに、PGC作成処理は、例えば以下のようになる:
1)ディスクの最初の記録かどうかをチェックし、最初の場合はORG_PGCを作成し、最初で無い場合はそのORG_PGCの後に追加する様に設定する;
2)PG_TYに消去許可:0を設定し、Cell_NsにCELLの数を設定する;
3)ARIBの場合、EIT内の短形式イベント記述子のlanguage_codeに"jpn"の場合は、VMG_MATのCHRに0x12を設定し、PRM_TXTIの第二領域にEVENT_NAMEに設定し、REP_PICTIに代表画像の情報を設定する;
4)LAST_MNF_IDに該当機器のメーカIDを設定する。この値は、PGI、CI、VOBの変更があった場合にその変更した機器のメーカーIDを設定し、最後に編集、記録したのがどのメーカーであるかをわかるために設定するもので、これにより、違うメーカーが変更した場合の対応が取りやすくなる。
5)PG_INDEXにPGの絶対番号を設定し、他のアプリケーションソフトウエアなどから参照する場合にPG単位での参照が可能にしている。さらに、該PG更新日時情報を記録する。この時、該当機器で対応している(メーカーのコードが一致した)MNFIおよび/またはIT_TXTが有る場合には、その対応するデータの更新日時情報も設定する;
6)MNFIに各メーカー独自の情報を設定する;
7)CELL_TYにストリーマであることを示す情報を設定する:CELLI
8)参照するESOB番号を設定し、再生するIDとして代表(ビデオの)PIDまたは、Component_Group_Idを設定し、EPIの数、再生開始PTM、終了PTM、EPを設定それぞれ設定する。
9)PG_RSM_INFに頭から再生できるように先頭の情報を設定する。なお、EPを自動でつける場合の要因としては、映像及び時間関係では、一定時間と映像のモード変化(アスペクト比、動きベクトルの大きい場合)でその条件に映像フレームの先頭Packet(Unit Start Indicator)GOPの先頭Packet(シーケンスヘッダの先頭、I−PICの先頭)を組み合わせた場合が考えられる。さらに、音声関係では音声の変化(音量の変化等)/音声モード(ST/MONO)でその条件に音声フレームの先頭Packet(Unit Start Indicator、フレームヘッダ)の組み合わせた場合が考えられる。
さらに、再生時のデータ処理は、例えば以下のようになる(図19参照):
1)ディスクチェックし、rewritable Disc(R、RW、RAM)かどうかをチェックし、rewritable Discで無い場合には、その旨を返して終了する;
2)ディスクのファイルシステムを読み出し、録画されたデータが有るかどうかチェックし、無い場合には、“録画されていません”と表示して終了する;
3)VMGファイルを読み込み(ステップST207)、再生するプログラム、セルを決定し(ユーザに選ばせ)を決定する。ここで、記録順の再生選択した場合には、ORG_PGCIに従って再生をおこない、番組毎の再生を行う場合には、再生したい番組に相当する番号のUD_PGCに従って再生を行う;
4)PKT_TYの値を読み出し、対応可能な放送方式かどうかチェックし、対応可能で無い場合は、その旨を表示して処理を終了する(もしくは次のCELLへ移行する)。
5)再生するタイトル情報、レジューム情報(PL_RSM_IFO, PG_RSM_IFO)等により再生するESOB/VOB、再生開始PTM等を決定し、再生開始PTMより、再生を開始するファイルポインタ(論理アドレス)を決定する。さらにSTI、ESIの値により、各デコーダ部設定を行い再生の準備を行う。また、先頭のパケットグループヘッダ内のCCIより、APSの設定をビデオデコーダにAPSのON/OFF、APSのタイプ等を設定し、デジタルコピー制御によりCGMSAの設定をビデオデコーダに行う。さらに、デジタル出力(IEEE1394、インターネット等)が有る場合:EPNの値により、0:スクランブルon又は出力禁止、1:そのまま出力に出力ICに設定し、LCTが0の場合、画像の解像度を制限を加え、HDをSDに変換し、1の場合はそのまま出力に出力ICに設定する。この時、再生を開始するフレームがIピクチャで無い場合、その直前のIを読み出しそこからデコードを開始し、目的のフレームまできた所で表示を開始し、通常再生を開始する。
6)再生開始時の処理を行う;
7)各デコーダの設定を行う;
8)セルの再生処理を行い、再生終了かどうかをチェックし、終了の場合には、エラーチェックを行い、エラーの場合には、その旨を表示し、エラーでない場合には再生終了処理を行い、この動作を終了する;
9)PGCIより次のセルを決定し、デコーダの設定が変更されたかどうかをチェックし、変更された場合には、次のシーケンスエンドコードにデコーダの設定が変更されるようにデコーダに変更属性を設定する;
10)再生が終了したかどうかをチェックし、再生終了しない場合は、6)へ移行する。
デコーダの設定は、例えば次のようになる:
1)再生するグループを決め、GPIに従い、再生するESを決める;
2)属性情報(STI又はESI)を読み込む;
3)レコーダが対応できるフォーマットかどうかをチェックし、対応可能な場合はその設定を行い、対応不能の場合は、ミュートを設定する。
4)再生するビデオが再生可能かどうかをチェックし、可能な場合は、再生準備を行い、不能の場合は、ミュートする。この場合、PIDは13ビットのPIDが設定されている場合はそのまま使用できるが、PMT内の順番で設定されている場合はPMTを参照してPIDを決める;
5)再生するオーディオが再生可能かどうかをチェックし、可能な場合は、再生準備を行い、不能の場合は、ミュートする。この場合、PIDは13ビットのPIDが設定されている場合はそのまま使用できるが、PMT内の順番で設定されている場合はPMTを参照してPIDを決める;
6)CCI情報を元に、コピー管理処理を行う。
また、セルの再生処理は、例えば以下のようになる:
1)TMAPIの内容よりCELLの開始FP(LBN)、終了FPを決定し、さらに、CELLI内の開始時間、終了時間より開始のESOBU_ENTRY、終了のESOBU_ENTRYを決定し、ADR_OFSに目的のESOBU_ENTRYまでのエントリのデータ長を累積し、開始アドレス(LB=FP)、終了アドレスをもとめる。残りCELL長は終了アドレスより開始アドレスを引いた値とし、再生開始時間をSTCへセットする。再生するPIDを決定し、デコーダ(STB、デジタルチューナ)に設定する。この場合、PIDは13ビットのPIDが設定されている場合はそのまま使用できるが、PMT内の順番で設定されている場合はPMTを参照してPIDを決める。
2)再生中の読み出し処理を実行し、開始ファイルポインタより読み出しアドレス、読み出しサイズを決定する;
3)読み出す読み出し単位サイズと残りセル長を比べ、残りセル長が大きい場合には、残りセル長に残りセル長より読み出す読み出し単位サイズを引いた値を設定する。小さい場合には、読み出し長を残りセル長にセットし、残りセル長を0にセットする;
4)読み出し長を読み出し単位の長さに設定し、ドライブ部へ読み出しアドレス、読み出し長、読み出し命令を設定する;
5)バッファに1ESOBU分たまるのを待つ。1ESOBU分たまったら、バッファデコーダ転送処理を行い、次へ移行する。
6)転送が終了したかどうかをチェックし、終了した場合には、次へ移行する;
7)アングルキー等が押されたかどうかをチェックし、押された場合は、GPIがあるかどうかチェックし、ある場合は、GP切り替え処理を行い、無い場合は、何もせずに次の処理へ移行する;
8)Skip SWが押されたかどうかをチェックし、押された場合は、SKIP処理を行う;
9)STOP SWが押されたかどうかをチェックし、押された場合は、中断情報(RSM_IFO)をタイトル再生の場合は、PG_RSM_IFOに、プレイリスト再生の場合は、PL_RSM_IFOに保存し、終了処理を行う;
10)残りセル長をチェックし“00”でない場合には、2)へ移行し、“00”の場合には、この処理を終了する。
バッファデータデコーダ転送処理は、例えば以下のようになる:
1)バッファRAM内のパケットグループの数をチェックし、1パケットグループ無い場合はこの処理を終了する。1以上有る場合は、最初のパケットグループを処理する様設定する;
2)目的のパケットグループをバッファRAM内より読み出す。パケットグループの先頭は、パケットグループ長とSync_Patternにより検出する;
3)パケットグループヘッダのSTUFを調べ、1がセットされている場合は、VALID_PKT_Nsの値に従って、有効なPacketを取り出す。設定されていない場合は、170Packetが有効とする。
4)PATS_SSにより、PATSの精度を検出し、その精度情報を元にPATS(4バイト)と、FIRST_PATS_EXTとPATS_WRAPIよりTSパケットの転送時間を計算し、その時間に各TSパケットをデコーダ部(STB部)に送る;
精度6バイトの場合:FIRST_PATS_EXTをPacket Groupの先頭のPacketのPATSの上位2バイトとし、そこから直前のPATSの下位4バイトとして計算する;
精度4バイトの場合:直前のPATSとPATS_WRAPIより、桁上がりを考慮してPATSを計算する。
精度無しの場合:Packetデータを取り出すと、リクエストが有り次第直ちに出力する。
5)MNFが有るかどうかをチェックし、ある場合、そのIDが該当機器のメーカーと一致するかどうかを判断し、一致している場合は、そのデータを読み込み、所定の処理を行う(各社独自の処理);
6)CCI処理を行う;
7)ディスコンティニュー処理を行う;
8)転送終了まで待ち、パックグループがバッファRAMに残っているかどうかをチェックし、いない場合はこの処理を終了する;
9)次のパケットグループを処理する様設定し、2)に移行する。
GP切り替え処理は、例えば以下のようになる:
1)切り替えSWの種別を調べる;
2)現在再生しているGPのGPIを読み込む;
3)GPIが有るかどうかを調べ、無い場合はこの処理を終了する;
4)そのほかのGPに切り替えるためにGPI情報を読み込み、デコーダ設定処理を行う。
また、ディスコンティニュー処理は、例えば以下のようになる:
1)DCNIをチェックし、再生中の位置にCNT_SEGの切れ目が有る場合は、デコーダの再生モードを内部クロックモード(PTSの値を無視し、内部のクロックの値のみで再生を行い、PCRがきた段階でPTSを再び有効にする動作モード:外部同期モード)に移行させ、この処理を終了させる;
2)無いの場合は、何もぜずにこの処理を終了させる。
スキップ処理は、例えば以下のように行うことができる:
1)EPITを読み込む;
2)SKIPの方向を調べ、(SKIPキーの種類で決定)フォワードの場合は、現在再生している位置よりも後ろのEPで、バックワードの場合は前のEPで現在再生ているPIDと同じPIDをもつEPを検索して、その情報を読み込む;
3)検出されたEPIより、再生するESOBU_ENTを決定する;
4)ESOBU_ENT情報を読み込み、再生を開始する時間(STC)を決定する。
5)目的のESOBU_ENTにI−PICがあるかどうかを調べ(1st_Ref_SZ=0)、ない場合は一つ前の同じグループのESOBU_ENTの情報を読み、5)を繰り返す;
6)ESOBU_ENT内でI−PICの前にシーケンスヘッダがあるかどうかを調べ(SOBU_SH_I_EXIST_Flag)、存在する場合は、8)へ移行する。(SOBU_SH_EXIST_Flagのみの場合は、この処理もSOBU_SH_EXIST_Flagで行う。)
7)一つ前の同じグループのESOBU_ENTの情報を読み、ESOBU_ENT内にシーケンスヘッダがあるかどうかを調べ(SOBU_SH_EXIST_Flag)、ない場合は7)へ移行する;
8)SHを読み込み、デコーダへ設定し、先ほど見つけたI−PICを読み出し、その位置よりデコードを開始し、EPで指定された再生時間より表示を開始するようデコーダを設定し、通常の再生処理に移行する。
ここで、タイプAのESOBUは、例えば以下のように定義できる:
<タイプAのESOBUの定義>
(1)ESOBUは後ろにI−PICを従えたシーケンスヘッダで始まる短いシーケンスのストリームで、0.4sから1sの再生時間を持つと定義される。
(2)次のI−PICを従えたシーケンスヘッダを再生時間で1s以内に見つける事が出来ない場合、このESOBUは1s以内で終了され、1st_Ref_SZに0をセットする。
(3)「(2)のケース」の場合でも、できるだけリファレンスピクチャ(すなわちI−PICまたはP−PIC)の前で終了する事をが推奨される。
(4)リファレンスピクチャーが長い間見つけられることができない場合、前記の条件「(1)〜(3)」を満たすポイントが無い場合はノンリファレンスピクチャ(B−PIC)の前でESOBUを終了しても良い。
このケースの場合、このESOBUの最後のリファレンスピクチャをデコードしたピクチャ(P50)は、SOBU_PB_TMのカウントには含まれないが、SOBU_SZのカウントには含まれる。
(5)ESOBUの再生時間(SOBU_PB_TM)は再生オーダー(各ピクチャを表示した場合のオーダー)で計られ、ESOBUのサイズ(SOBU_SZ)は記録オーダー(ディスクに記録する時のオーダー)で計られる。
(6)全てのケースで、ESOBU境界線は、ピクチャ境界(シーケンスヘッダまたはピクチャヘッダの直前)で整列する。
(7)下記のケース以外のESOBUは0.4s〜1sの間の再生時間を持つ。ESOBの最後のESOBUは0.4秒より少ない再生時間であってもよい。I−PICが続くシーケンスヘッダから始めていないESOBUの場合、0.4秒より少ない再生時間があってもよい。
なお、タイプBのESOBUは、以下のように定義できる:
<タイプBのESOBUの定義>
ESOBUは到着時間(PATS)で一定時間内に到着したPacketの集合とする。
次に、図1〜図19の構成を利用してデジタル放送記録を行なうシステムの要部について説明を続ける。なお、前述の説明では、ESOB(Extended Stream object)あるいはESOBU(Extended Stream object unit)のように“E”を付けているが、以下の説明では“E”を省略して説明する。“E”が省略されたSOBやSOBUは、以下の説明では、図1〜図19の構成を利用して説明したESOBやESOBUの意味も包括するより大きな概念を示している。例えば、ESOBもSOBも通常はMPEG2−TSのデータストリームに対応するが、以下の説明におけるSOBはMPEG4−AVCあるいはそれ以外の(MPEG2−TSに対応した内容を持つ)デジタルストリーム信号も包含する(ただしESOBをMPEG2−TS関連だけに限定するという意図はない)。
図20は、図16のデジタル記録再生装置の要部を書き直した、デジタル放送記録装置201のブロック図を示す。デジタル放送記録装置201はアンテナ202からの信号をデジタルチューナ2011によって受信し、選局された放送のみが含まれた Partial Transport Stream(以下、適宜TSと略記する)のデータを取り出す。このTSデータは、Packet Group処理部2012によって32kB毎にPacket Group Headerが付けられたPacket Group形式というデータに変換され、Stream Buffer2013を経てHDD(および/または光ディスク)2014等に記録される。
一方、Packet Group処理部2012で作成されたPacket Group形式のデータを解析するMPEG Stream解析部2015では、該データ中のどの位置にGOPの開始位置(1st Reference Pictureの開始位置)があるか、PAT/PMTといったSection情報には何が書かれているかなどのMPEG Stream内部を解析しており、必要な情報を管理情報(図2では〜.IFOファイルの情報)としてHDD(および/または光ディスク)2014に記録する。この管理情報をもとに記録済みデータを再生するときは、Stream Buffer2013を経てMPEG2-TS Decoder2016に記録したデータを送信してMPEGデータのデコードを行い、HDMI端子、D3〜D5端子、IEEE1394等を経由してDigital TV203に出力する。。
なお、図20のPacket Group処理部2012およびMPEG Stream解析部2015の処理機能は、図16のMPU部80のファームウエアとして実現できる。
図21は、デジタル放送記録時におけるMPEG Stream解析部2015の処理内容の一例を示す。記録が開始されると、MPEG Stream解析部2015ではデータストリーム中を解析してSequence Header(SH)を探す(ステップST300)。第一のSequence Headerが発見されると(ステップST302イエス)次のSequence Headerを探索する(ステップST304)。デジタル放送(日本ではARIB)の場合、GOPの開始位置にはSequence Headerが挿入されているため、Sequence Headerを探索すればGOPの検出を行うことができる。
この発明の一実施の形態では、1GOPをストリームオブジェクトユニット(SOBUまたはESOBU)として管理している。SOBUにはSOBUのサイズとSOBU再生時間が記憶されており、Sequence Header(SH)間のパケットグループ数をSOBUのサイズとして記憶する(ステップST308)。一方SOBU再生時間は、各SOBU先頭のPictureのPTS(Presentaion Time Stamp)をデータストリームから求め、その差からSOBUの再生時間を算出する(ステップST310)。
こうして求めたSOBUのサイズと再生時間から、記録処理中において、記録対象のデータストリームの不連続性判定(ステップST312)が適宜なされる。
図1〜図19に開示された実施の形態では、同一の属性を持つMPEG−TSに準じたデータストリームをストリームオブジェクト(SOBまたはESOB)として取り扱うことが例示されている。従って、この形式に準拠した記録再生装置を実現するためには、MPEG−TSの属性の相違点を確認し、この不一致を検出したら別のストリームオブジェクトとして管理する必要がある。属性の不一致を検出するには、PATやPMTといったセクションの情報を監視し、属性が異なった時点で新たなストリームオブジェクトとして以後のデータストリームを管理することになる。
図22は、データストリームと、管理情報(図4〜図13のESOBI、TMAPI等に対応)に記憶されるSOBU及びSOBの関係を例示するもので、ここでは、データストリーム(MPEG−TS)内で連続したGOP群毎にストリームオブジェクト(SOB)が形成され、GOP不連続点でストリームオブジェクトが分割される様子を例示している。
ここで、データストリ−ムの連続性も確認し、不連続であることを検出したら(図21のステップST312)別のストリームオブジェクトとして管理しなくてはならない。これは、MPEGではSCRという基準クロックを利用してエンコード・デコードを行っており、データストリームが不連続であるということはこのSCRカウンタも不連続であることになり、不連続地点で再生が正常に行えなくなるためである。
不連続なデータストリームが生成される要因としては、例えばデジタルビデオカセット(DVHS:登録商標)などで編集を行った場合が考えられる。DVHSなどのテープメディアで編集を行う場合、不要区間を録画ポーズなどで飛ばすなどが行われる。DVHSはTSをそのまま記録するものであるため、録画ポーズされた区間はそのままTSが抜ける形になっている。このようなTSの記録を行うと、図23(a)に示すように、編集地点でPTSのみが大きく飛ぶ(P01→P02)という現象が発生する。
一方、ストリーム自体は不連続なものではないが伝送路上でデータの一部に誤りが発生し、わずかな区間のみPTSの値を誤るということも考えられる。この場合。図23(b)のように一部のみPTSが不連続になり(P31→P30)、その後また連続的なデータに復帰する(P30→P32)。このような場合は連続的なデータであるとして記録した方がストリームオブジェクトの個数が節約できる(結果的にSOBの管理情報量も小さくなる)。
そこで、この発明の一実施の形態では、PTSのギャップと、そのPTSを受信したときの内部カウンタ(図16ではPATS用内部カウンタ90a)の値の差に着目し、これら2つの事象を見分けている。この処理を図24を用いて詳細に説明する。
図24は、DVHS(登録商標)で編集を行ったような途中から不連続になるStreamを記録した図である。横軸の内部カウンタ(PATSカウンタ)の値は単調増加する(傾き一定)が、縦軸のPTS値は不連続な部分で前回の値から突然値が変化する(P01→P02で傾き急変)。このStreamに対してMPEG Stream解析部2015において検出できたGOP群が701である。GOP#1を検出したときのGOP#1先頭受信時の内部カウンタ(PATS)値は702、GOP#2を検出したときのGOP#2先頭受信時の内部カウンタ(PATS)値は703である。一方、GOP#1の先頭PictureのPTS値は704、GOP#2の先頭PictureのPTS値は705である。
702と703の間のPATS差と、704と705の間のPTS差の比(傾き)は、正常なStreamを記録したのであれば一定のはずである。これは、PTSを生成するためにベースとなるSCRカウンタと内部カウンタは同期しているからである。707の部分(P01→P02の傾き急変部分)のように、この比がそれ以前と異なる場合は、この部分に不連続なStreamがあることがわかる。この場合は、この部分(P01→P02の傾き急変部分)でストリームオブジェクトを分割して記録を行う(例えば図25のステップST530)。
図25は、MPEG Stream解析部2015の動作を例示している。図21の場合と同様で、まずMPEG Streamを解析してGOP境界の検出を行う(ステップST500)。GOPを検出する毎に(ステップST502イエス)、そのGOP先頭のTSパケットに付加されている内部カウンタ(PATSカウンタ90a)の値を記憶し(ステップST504)、次のGOPの検出を行う(ステップST506)。
2つ目のGOP境界を発見したら(ステップST508イエス)、同じく内部カウンタ(PATS)の値を記憶し(ステップST510)、2つのGOP境界間のPTS差を求める(ステップST512)。更に次のGOP境界を検出したとき、同じく内部カウンタ(PATS)の値とGOP境界間のPTS差を求める(ステップST514)。これにより、図24の(703-702)の値と(705-704)の値が求められるので、その比(図24の直線の傾き)を求める。同じことをもう一つのGOPについて行い、その比(傾き)を比較することで、707(P01→P02の傾き急変部分)のようなPTSの不連続点を発見することができる(ステップST516以後の処理は後述する)。
一方、図26は、伝送路上のノイズなどにより一部分だけPTSの値が壊れたStreamを記録した図である。図24の場合と同様に記録を行っている際に(ステップST516〜ST518)異常なPTSを持つGOP800(図26のP30)が検出されたときは、内部カウンタ(PATSカウンタ90a)の値の差は801(ステップST520)、PTSの差は802となり(ステップST522)、その比(ステップST524〜ST526)は有意な差がある(ステップST600イエス)と判定され、SOBが分割される(ステップST530)。
図26の場合では、更に次のGOPの検出まで進め(ステップST516〜ST518)、異常が発生した次のGOPまでの各値803と804を求め、その比の比較を行う(図25のステップST520〜ST526;または図27のステップST604〜ST606)。図26の場合は異常な値を示すGOPは1つのみであり、804と803の比は通常時と変わらない値となる(ステップST600ノー)ため、SOB分割せずに録画を継続可能と判定できる。この場合は、誤ったPTSを検出した点の前後のGOPの情報は信頼性がないため、内部カウンタ(PATSカウンタ90a)の値を用いてSOBU情報を生成する。これは実際にStreamから読み取ったSOBU情報ではないため、図26の場合ではダミーSOBU情報と呼んでいる。
図27は、異常な値を示したGOPが1つのみか否かでSOB分割するかダミーSOBUを挿入するかを決定するまでの処理の一例を示している。図27は図25のステップST600以降の処理にあたる。PTSとカウンタ値の比に有意差があり(ステップST600イエス)Streamが不連続であることを検出したら、更に次のGOPを検出し(ステップST602)、そことの比を求めている(ステップST604〜ST606)。これにより1GOPのみが異常値だったのか、その地点で本当に不連続点があったのかを見分け、1GOPのみが異常である場合には(ステップST608イエス)SOB分割を行わず、誤ったGOPを補間するダミーSOBU情報を内部カウンタ(PATSカウンタ90a)の値を用いて作成し(ステップST610)、SOB分割は行わないようにする。これによりSOBの個数の節約することができる。
なお、ダミーSOBUを作成した場合は、ダミーSOBU(放送コンテンツなし)と通常のSOBU(放送コンテンツ入り)との区別をするために、ダミーSOBUの管理情報(図13のESOBU_ENT等)に、ダミーSOBU(またはnon-entry ESOBU)であることを示す情報(例えば“0”が書き込まれた1st_Ref_PIC_SZ)が書き込まれる(ステップST610)。
図27の処理を採用すれば、ストリームデータの異常点で常にストリームオブジェクト分割(ステップST530)がなされるのでなく、ダミーSOBU挿入等の手当でストリームオブジェクト分割をしない(ステップST610)ケースが可能となるので、ストリームオブジェクトの管理情報量がストリームデータ異常の発生(タイムスタンプ情報の誤り発生等)により不必要に増えることがなくなる。
<実施の形態のまとめ>
1.デジタル放送波(MPEG−TS等)に重畳されているSCRカウンタに同期した内部カウンタを具備するデジタル放送記録装置において、デジタル放送を記録する際に記録中に前回検出したPictureのPTS或いはDTSの値と内部カウンタ(PATSのカウンタ)の値を対にして記憶する(図25のST500〜ST510)。そして、次のPTS或いはDTS検出時に、PTS或いはDTSの増加分と内部カウンタ(PATSのカウンタ)の増加分を比較して(図25のST512〜ST526)、有意な差がある場合(図25のST600イエス)、PTS/DTSの値に誤りが発生していることを判断して記録処理(図25のST530)を行う。
2.放送波(MPEG−TS等)に重畳されているSCRカウンタに同期した内部カウンタ(PATSのカウンタ)を具備し、デジタル放送を記録する際にStream中のGOPを検出してそのGOPの先頭PictureのPTSを管理情報に保存するデジタル放送記録装置において、GOPを検出したときの内部カウンタ(PATSのカウンタ)の値とGOP内のPictureのPTS或いはDTSの値を対にする(図25のST500〜ST510)。そして、次のGOPを検出したとき、GOP間のPTS或いはDTSの差と、内部カウンタ(PATSのカウンタ)の値同士の差を比較して(図25のST512〜ST526)、有意な差がある場合は(図25のST600イエス)PTSの値に誤りが発生していることを判断して記録処理(図25のST530)を行う。
3.前記2において、GOPを検出したときの内部カウンタ(PATSのカウンタ)の値と該GOP内のPictureのPTS或いはDTSの値を対にして、更に内部カウンタの値の差とGOP間のPTS或いはDTSの値の差の比を計算する(図25のST522〜ST526)。そして、この比に有意な差がある場合は(図25のST600イエス)PTS或いはDTSの値に誤りが発生していることを判断して記録処理(図25のST530)を行う。
4.前記2において、GOPを検出したときの内部カウンタ(PATSのカウンタ)の値と該GOP内のPictureのPTS或いはDTSの値を対にして、更に内部カウンタの値の差とGOP間のPTS或いはDTSの値の差の比と、それよりも更に前のGOP検出時における内部カウンタの値の差とGOP間のPTS或いはDTSの値の差の比を計算する(図25のST512〜ST526)。そして、直前のGOPとの間の比に有意な差が認められても(図25のST600イエス)、更に前のGOPとの間の比に有意な差がない場合は、直前のGOPのPTSのみが誤っていると判断して(図27のST608イエス)記録処理(図27のST610)を行う。
5.前記2において、GOPを検出したときの内部カウンタ(PATSのカウンタ)の値と該GOP内のPictureのPTS或いはDTSの値を対にして、更に内部カウンタの値の差とGOP間のPTS或いはDTSの値の差の比と、それよりも更に前のGOP検出時における内部カウンタの値の差とGOP間のPTS或いはDTSの値の差の比を計算する(図25のST512〜ST526)。そして、直前のGOPとの間の比に有意な差が認められ(図25のST600イエス)、更に前のGOPとの間でも有意な差がある場合には、その位置にストリーム的な不連続点があると判断して(図27のST608ノー)記録処理(図27のST530)を行う。
以上により、記録中にMPEG−TSのデータが誤ってしまった場合でも、ストリームオブジェクトの個数を節約して記録処理を継続することが可能になり、デジタル放送に対応した木目細かい制御動作が実現できる。
なお、この発明は前述した実施の形態に限定されるものではなく、現在または将来の実施段階では、その時点で利用可能な技術に基づき、その要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題が解決でき、発明の効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。