以下、添付図面に基づき、本発明が適用される実施の形態について詳細に説明する。
まず、本実施の形態が適用されるシステム構成の説明に入る前に、その理解を容易にするため、本実施の形態にかかるデータフォーマットについて詳述する。
図1は、本実施の形態の情報記録装置、情報再生装置等で用いられる記録媒体上のアプリケーションフォーマットの構造を示した図である。このフォーマットは、AVストリームの管理のために、ユーザインターフェース(ユーザI/F)に近いプレイリスト(PlayList)レイヤ101と、システムに近いクリップ(Clip)レイヤ102の二つのレイヤを備えている。そして、ボリュームインフォメーション(Volume Information)100は、ディスク内の全てのClipとPlayListの管理を行っている。
また、ここでは、一つのAVストリームとそれの付属情報のペアを一つのオブジェクトと考え、それをClipと呼んでいる。AVストリームファイルはClip AVストリームファイルと呼ばれ、その付属情報はClip Information fileと呼ばれる。一つのClip AVストリームファイルは、MPEG2トランスポートストリームをDVRアプリケーションフォーマットによって規定される構造に配置したデータをストアしている。
一般に、コンピュータ等で用いるデータファイルは、バイト列として扱われるが、Clip AVストリームファイルのコンテンツは、時間軸上に展開され、PlayListは、Clipの中のアクセスポイントを主にタイムスタンプで指定される。PlayList によって、Clipの中におけるアクセスポイントのタイムスタンプが与えられたとき、Clip Information fileは、Clip AVストリームファイルの中でストリームのデコードを開始すべきアドレス情報を見つけるために役立っている。
PlayListは、Clipの中からユーザが見たい再生区間を選択し、それを簡単に編集することができることを目的として導入されている。一つのPlayListは、Clipの中における再生区間の集まりである。あるClipの中における一つの再生区間はPlayItemと呼ばれ、それは、時間軸上のIN点(In Time)とOUT点(Out Time)のペアで表される。即ち、PlayListは、PlayItemの集まりと言うことができる。
PlayListには、二つのタイプがある。一つは、Real PlayListであり、他の一つは、Virtual PlayListである。このReal PlayListは、それが参照しているClipのストリーム部分を共有していると見なされる。すなわち、Real PlayListは、それの参照しているClipのストリーム部分に相当するデータ容量をディスクの中で占めている。AVストリームが新しいClipとして記録される場合、そのClip全体の再生可能範囲を参照するReal PlayListが自動的に作られる。Real PlayListにおける再生範囲の一部分が消去された場合、それが参照しているClipのストリーム部分もまたデータが消去される。Virtual PlayListは、Clipのデータを共有していないと見なされる。Virtual PlayListが変更または消去されたとしても、Clipは何も変化しない。
尚、以下の説明においては、Real PlayListとVirtual PlayListを総称して単に、PlayListと呼んでいる。
DVRディスク上に必要なディレクトリとしては、まず、"DVR"ディレクトリを含むrootディレクトリがある。また、"PLAYLIST"ディレクトリ、"CLIPINF"ディレクトリ、"STREAM"ディレクトリ、および"DATA"ディレクトリを含む"DVR"ディレクトリがある。rootディレクトリの下に、これら以外のディレクトリを作っても良いが、それらは、このDVRアプリケーションフォーマットでは無視される。
図2は、DVRディスク上に作られるディレクトリ構造の一例を示した図である。
ここで、rootディレクトリ111は、一つのディレクトリ("DVR"ディレクトリ112)を含む。
"DVR": DVRアプリケーションフォーマットによって規定される全てのファイルとディレクトリは、このディレクトリの下にストアされなければならない。
また、"DVR"ディレクトリ112は、"PLAYLIST"ディレクトリ113、"CLIPINF"ディレクトリ114、"STREAM"ディレクトリ115、および"DATA"ディレクトリ116の4個のディレクトリを含む。
"PLAYLIST" : Real PlayListとVirtual PlayListのデータベースファイルは、このディレクトリの下に置かなければならない。このディレクトリは、PlayListが一つもなくても存在しなければならない。
"CLIPINF" : Clipのデータベースは、このディレクトリの下に置かなければならない。このディレクトリは、Clipが一つもなくても存在しなければならない。
"STREAM" : AVストリームファイルは、このディレクトリの下に置かなければならない。このディレクトリは、AVストリームファイルが一つもなくても存在しなければならない。
"PLAYLIST"ディレクトリ113は、2種類のPlayListファイルをストアするものであり、それらは、前述したReal PlayListとVirtual PlayListである。
"xxxxx.rpls" : このファイルは、一つのReal PlayListに関連する情報をストアする。それぞれのReal PlayList毎に、一つのファイルが作られる。ファイル名は、"xxxxx.rpls"である。ここで、"xxxxx"は、0から9まで数字5個である。ファイル拡張子は、"rpls"でなければならない。
"yyyyy.vpls" : このファイルは、一つのVirtual PlayListに関連する情報をストアする。それぞれのVirtual PlayList毎に、一つのファイルが作られる。ファイル名は、"yyyyy.vpls"である。ここで、"yyyyy"は、0から9までの数字5個である。ファイル拡張子は、"vpls"でなければならない。
"CLIPINF"ディレクトリ114は、それぞれのAVストリームファイルに対応して、一つのファイルをストアする。
"zzzzz.clpi" : このファイルは、一つのAVストリームファイル(Clip AVストリームファイルまたはBridge-Clip AVストリームファイル)に対応するClip Information fileである。ファイル名は、"zzzzz.clpi"であり、ここで"zzzzz"は、0から9までの数字5個である。ファイル拡張子は、"clpi"でなければならない。
"STREAM"ディレクトリ115は、AVストリームのファイルをストアする。"zzzzz.m2ts" : このファイルは、DVRシステムにより扱われるAVストリームファイルである。これは、Clip AVストリームファイルまたはBridge-Clip AVストリームファイルである。ファイル名は、"zzzzz.m2ts"であり、ここで"zzzzz"は、0から9までの数字5個である。ファイル拡張子は、"m2ts"でなければならない。一つのAVストリームファイルとそれに対応するClip information fileは、同じ5個の数字"zzzzz"を使用しなければならない。
尚、その他のディレクトリとファイル名は、その説明を省略する。
図3は、AVストリームファイルの構造を示した図である。AVストリームファイルは、図3に示すDVR MPEG2トランスポートストリームの構造を持たなければならない。図3から理解できるように、DVR MPEG2トランスポートストリームは次に示す特徴を備えている。
1) DVR MPEG2トランスポートストリームは、整数個のAligned unitから構成される。
2) Aligned unitの大きさは6144バイト(2048×3バイト)である。
3) Aligned unitはソースパケットの第一バイト目から始まる。
4) ソースパケット(source packet)は192バイト長である。一つのソースパケットは、TP_extra_headerとトランスポートパケット(Transport packet)から成る。TP_extra_headerは4バイト長であり、またトランスポートパケットは188バイト長である。
5) 一つのAligned unitは32個のソースパケットから成る。
更に、以下の特徴を備えている。
6) DVR MPEG2トランスポートストリームの中における最後のAligned unitも、また32個のソースパケットから成る。
7) 最後のAligned unitが入力トランスポートストリームのトランスポートパケットで完全に満たされなかった場合、残りのバイト領域をヌルパケット(PID=0x1FFFのトランスポートパケット)を持ったソースパケットで満たさねばならない。
図4は、ソースパケット(source packet)のプログラミング構文であるシンタクス(Syntax)を示した図である。TP_extra_header()は、4バイト長のヘッダである。また、transport_packet() は、ISO/IEC13818-1で規定される188バイト長のMPEG2トランスポートパケットである。
図5は、TP_extra_header()のシンタクスを示した図である。copy_permission_indicatorは、トランスポートパケットのペイロード(Payload)のコピー制限を表す整数である。コピー制限は、copy free, no more copy, copy once またはcopy prohibitedとすることができる。arrival_time_stampは、AVストリームの中で、対応するトランスポートパケットがデコーダに到着する時刻を示すタイムスタンプである。
図6は、copy_permission_indicatorの値とそれらによって指定されるモードの関係を示した図である。copy_permission_indicatorは、トランスポートパケットのペイロードのコピー制限を表す整数である。コピー制限は、copy free、no more copy、copy once、およびcopy prohibitedとすることができる。copy_permission_indicatorは、全てのトランスポートパケットに付加される。
IEEE1394ディジタルインターフェースを使用して入力トランスポートストリームを記録する場合、copy_permission_indicatorの値は、IEEE1394 isochronouspacket headerの中におけるEMI(Encryption Mode Indicator)の値に関連付けても良い。IEEE1394ディジタルインターフェースを使用しないで入力トランスポートストリームを記録する場合、copy_permission_indicatorの値は、トランスポートパケットの中に埋め込まれたコピー制限情報(CCI:Copy Control Information)の値に関連付けても良い。ビデオ入力をセルフエンコードする場合、copy_permission_indicatorの値は、入力信号のCGMSの値に関連付けても良い。
次に、AVストリームファイルの再生情報を管理するデータベースフォーマットについて説明する。
図7は、Clip Information fileのシンタクスを示した図である。Clip Information fileは、ClipInfo(), SequenceInfo(), ProgramInfo(), CPI(), ClipMark(), MakersPrivateData()を持つ。
図8は、このClipInfo()のシンタクスを示した図である。ClipInfo()の中にあるsource_security_info()は、Clip AVストリームのコピー制限情報を管理する情報を持つものであり、AVストリームの入力ソースと記録モードを管理するための情報を定義する。
図9は、ClipInfo()の中のsource_security_info()のシンタクスを示した図である。is_cognizantは、値が1である場合、そのAVストリームファイルの記録がCognizant記録であることを示し、値が0である場合、そのAVストリームファイルの記録がNon-cognizant記録であることを示す。
ここで、Cognizant記録とは、ディジタル放送等のトランスポートストリームを記録する時、トランスポートストリームの中に符号化されているCCI(Embedded CCIと呼ばれ、CCIを持つディスクリプタやウォーターマーク)を解析する記録モードである。また、Non-cognizant記録とは、ディジタル放送等のトランスポートストリームを記録する時、トランスポートストリームの中に符号化されているCCIを解析しない記録モードである。
IEEE1394ディジタルインターフェース経由で入力されるトランスポートストリームをNon-cognizant記録する場合、トランスポートストリームの記録制限は、IEEE1394 isochronous packet headerの中のEMI(Encryption Mode Indicator)の値に基づいて行われる。
is_WM_checkedは、その値が1の場合、記録装置がAVストリームの記録時に、AVストリームのウォーターマークを解析して、それを必要に応じて更新したことを示している。is_WM_checkedが0の場合、AVストリームの記録時にそのウォーターマークを解析せずに記録したことを示す。ウォーターマークは、現時点(2001年6月の時点)では未だ標準化がまとまっていない為、ウォーターマークによる記録制限が記録装置に強制される時点よりも以前に製造された記録装置は、is_WM_checkedをゼロとしても良い。
source_typeは、記録されたAVストリームの入力ソースを示している。source_type値の意味を、図10に示している。また、source_typeの意味の別の例を図11に示している。記録時のsource_typeの値の設定方法、また再生時のsource_typeの使用方法については、後で詳しく説明する。
Integrity_Check_Valueは、source_security_info()の内容が改竄されていないことを示すための符号である。これは、source_security_info()の第1バイト目からIntegrity_Check_Valueの直前のバイトまでのデータを入力として、所定の暗号アルゴリズムで計算した符号である。この暗号アルゴリズムとしては、例えば、ISO/IEC 9797(Information technology - Security techniques - Data integrity mechanism using a cryptographic check function employing a block cipher algorithm)に記載されているアルゴリズムが採用される。
もしも、悪意を持ったユーザによって、source_security_info()のsource_typeの内容が改竄されて、「DTCP準拠の入力」から「DTCP準拠でない入力」に書き変えられたとしても、記録装置はIntegrity_Check_Valueの値を検査することにより、source_security_info()が改竄されたことを検出できる。もしも、source_security_info()が改竄されたことを検出した場合には、もはやsource_security_info()は信じられないので、記録装置は、そのsource_security_info()を持つAVストリームを再生できないようにする。
また、source_security_info()の内容を改竄できないようにするために、source_security_info()をスクランブルするか、またはClip Information file全体をスクランブルしてもよい。
上述の例では、source_security_info()をClip Information fileの中で記述する場合を説明したが、source_security_info()をAVストリームの中で符号化するようにしても良い。例えば、source_security_info()をMPEG2トランスポートストリームで規定されているディスクリプタの形式で符号化する方法がある。
図12は、source_security_info()のシンタクスにおける別の例を示した図である。これは、Clip Information fileの中にストアすることは、勿論、他にも、AVストリームの中で符号化するときに適している。この図12のsource_security_info()は、図9に示したシンタクスに対して、status_WMとWM_transition_flagを加えている。
is_WM_checkedの意味は、その値が1の場合、記録装置がAVストリームの記録時に、AVストリームのウォーターマークを解析して、それを必要に応じて更新したことを示している。is_WM_checkedが0の場合、AVストリームの記録時にそのウォーターマークを解析しないで記録したことを示している。また、is_WM_checkedが1の場合、次に続くstatus_WMとWM_transition_flagの値が有効な値を持つことを示し、その値が0の場合、次に続くstatus_WMとWM_transition_flagの値が無効であることを示している。
図13は、status_WMの意味の例を示した図である。この場合に、status_WMはAVストリーム中で、そのstatus_WMが符号化されているアドレスにおけるAVストリームのコピー制限情報を示している。
図14は、WM_transition_flagの意味を示した図である。この場合に、WM_transition_flagの値が1であれば、AVストリーム中で、そのstatus_WMが符号化されているアドレスにおいて、AVストリームのWMの意味が、そのアドレス以前と比べて変化したことを示している。WM_transition_flagの値が0の場合、AVストリーム中で、そのstatus_WMが符号化されているアドレスにおいて、AVストリームのWMの意味が、そのアドレス以前と同じ意味であることを示している。
記録時に、このstatus_WMを記録することにより、AVストリームの再生時にそのウォーターマークの示す状態を知りたいときに、AVストリームを解析する必要がない。そのため、記録媒体上のあるAVストリーム別の記録媒体にコピーしたいときに、AVストリームに埋め込まれているウォーターマークを解析することなしに、status_WMを参照することによって、コピーの可否を判断することができる。また、WM_transition_flagは、AVストリームの中におけるWMの変化点に対する検索処理の高速化に役立てることができる。
Integrity_Check_Valueは、source_security_info()の内容が改竄されていないことを示すための符号である。これは、source_security_info()の第1バイト目からIntegrity_Check_Valueの直前のバイトまでのデータを入力として、所定の暗号アルゴリズムで計算した符号である。この暗号アルゴリズムは、例えば、ISO/IEC 9797に記載されているアルゴリズムを用いる。
また、source_security_info()の内容を改竄できないようにするために、source_security_info()をスクランブルするか、またはAVストリームファイル全体をスクランブルしてもよい。
次に、本実施の形態におけるシステム構成を説明する。
図15は、本実施の形態が適用される記録装置の構成を示したブロック図である。ここでは、AVストリームを記録するときに、そのsource_security_info()を作成して記録している。本実施の形態では、端子33から記録するAV信号の入力ソースの指示信号がコントローラ19へ供給されている。また、ここでは、入力ソースの種類として、ビデオのライン入力、記録装置に内蔵されるアナログTV放送のチューナ入力、記録装置に内蔵されるディジタルTV放送のチューナ入力、IEEE1394経由でDTCP準拠の方法を用いて入力されるトランスポートストリーム、そして、IEEE1394経由でDTCP準拠の方法を用いないで入力されるトランスポートストリームがある。コントローラ19は、この入力ソースの指示信号をsource_security_info()の中に符号化している。
図15に示す記録装置では、上記の入力ソースの種類別に、入力端子として、端子10,12,32,25を備えている。また、端子10のRF入力からビデオ信号を取り出すTVチューナ11、入力ビデオのマクロビジョン信号を解析して入力信号の記録制限を行うマクロビジョン検出部13、入力ビデオのCGMSを解析するCGMS検出・更新部14、入力ビデオのウォーターマーク(Water Mark)を解析するWM(Water Mark)検出・更新部15、入力ビデオオーディオ信号を符号化するMPEG2AVエンコーダ16、ソースパケットからなるAVストリームを供給する多重化・ソースパケット化部17を備えている。
また、入力されるソースパケット列の情報を解析するストリーム解析部18、端子33からの入力ソース指示信号をsource_security_info()の中に符号化し、また、入力されるCCI_oおよびWM_oに基づいてAVストリームの中で符号化するE_CCI(Embedded CCI)の値を決定するコントローラ19を備えている。更に、入力されるソースパケット列をスクランブルするスクランブラ20の他、ECC(誤り訂正)符号化部21、変調部22、ドライブ23およびDVR等の記録媒体24を備えている。
また図15には、DTCP準拠のIEEE1394接続の手続き処理を行うセットトップボックス(STB)26、DTCPに準拠していないトランスポートストリームを供給するPC27が示されている。更に、内蔵チューナであるディジタルTVチューナ28、IEEE1394接続の手続き処理を行うIEEE1394インターフェース(I/F)29、入力トランスポートストリームの中に符号化されているCCI(E_CCI:Embedded CCI)を解析するE_CCI解析・更新部30、および入力ビデオのウォーターマークを解析するWM検出・更新部31を備えている。
まず始めに、図15を用いて、端子12、32の外部ライン入力端子からのビデオ、オーディオ入力をセルフエンコードしたAVストリームを記録する場合について説明する。
マクロビジョン検出部13では、端子12から入力された入力ビデオのマクロビジョン信号が所定の方法により解析されて、入力信号の記録制限が行われる。この記録制限が行われた入力ビデオは、CGMS検出・更新部14へ供給される。このCGMS検出・更新部14では、入力ビデオのCGMS(CGMS‐AまたはCGMS‐D)が所定の方法により解析されて、記録されるAVストリームのCCI(図の中でCCI_oで示す)がコントローラ19へ供給される。また、CGMS検出・更新部14からWM検出・更新部15に対して入力ビデオが供給される。
WM検出・更新部15では、入力ビデオのウォーターマーク(WM)が所定の方法により解析されて、記録されるAVストリームのWM(図の中でWM_oで示す)がコントローラ19へ供給される。また、入力ビデオは、WM検出・更新部15からMPEG2AVエンコーダ16へ供給される。MPEG2AVエンコーダ16では、入力されるビデオオーディオ信号が、MPEGビデオとMPEGオーディオストリームに符号化される。これらのMPEGストリームは、多重化・ソースパケット化部17へ供給される。この多重化・ソースパケット化部17へは、このMPEGストリームとコントローラ19からの情報が入力される。
このように、コントローラ19では、入力されるWM_oの変化が検出されて、source_security_info()が作成される。source_security_info()の情報をAVストリームの中で符号化する場合、コントローラ19は、その情報を多重化・ソースパケット化部17へ供給している。そして、多重化・ソースパケット化部17は、source_security_info()の情報をAVストリームの中で符号化しており、例えば、その情報を持つディスクリプタが符号化される。
また、コントローラ19では、入力されるCCI_oおよびWM_oに基づいて、AVストリームの中で符号化するE_CCI(Embedded CCI)の値が所定の方法により決定される。このE_CCIは、例えば、DTCP_deascriptorが用いられてAVストリームの中で符号化される。
また、多重化・ソースパケット化部17では、ソースパケットヘッダに符号化するcopy_permission_indicatorの値が所定の方法により決定される。多重化・ソースパケット化部17は、ソースパケット列をスクランブラ20とストリーム解析部18へ供給している。スクランブラ20では、入力されるソースパケット列が所定の方法によりスクランブルされ、ECC符号化部21へ供給される。また、ストリーム解析部18では、入力されるソースパケット列の情報が解析されて、データベースファイル作成のための情報がコントローラ19へ供給される。
ここで、source_security_info()をClip Information fileの中にストアする場合には、コントローラ19は、source_security_info()を持つClip Information fileのデータを作成して、これをECC符号化部21へ供給する。このECC符号化部21へ入力されたAVストリームおよびClip Information fileのデータは、ECC符号化部21,変調部22,ドライブ23の処理の後に、それぞれAVストリームファイルとClip Information fileとして、記録媒体24へ記録される。
次に、図15を用いて、端子10から、アナログTV放送のRF入力のビデオ信号をセルフエンコードしたAVストリームを記録する場合について説明する。
TVチューナ11では、RF入力からビデオ信号が取り出され、WM検出・更新部15へ供給される。WM検出・更新部15では、入力ビデオのウォーターマークが所定の方法により解析されて、記録するAVストリームのWM(図の中でWM_oで示す)がコントローラ19へ供給される。また、WM検出・更新部15からは、入力ビデオがMPEG2AVエンコーダ16へ供給される。その後の処理は、上述の外部ライン入力端子からのビデオ、オーディオ入力をセルフエンコードしたAVストリームを記録する場合における、MPEG2AVエンコーダ16以降の処理と同様である。
次に、端子25から、ディジタルTV放送のRF入力からのトランスポートストリームを記録する場合について説明する。TVチューナ28は、RF入力からトランスポートストリームを取り出して、E_CCI(Embedded CCI)解析・更新部30へ供給する。
E_CCI解析・更新部30では、入力トランスポートストリームの中に符号化されているCCI(Embedded CCI)が所定の方法により解析されて、記録するAVストリームのCCI(図の中でCCI_oで示す)がコントローラ19へ供給される。また、E_CCI解析・更新部30からは、入力トランスポートストリームがWM検出・更新部31へ供給される。WM検出・更新部31では、入力ビデオのウォーターマーク(WM)が所定の方法により解析されて、記録するAVストリームのWM(図の中でWM_oで示す)がコントローラ19へ供給される。また、入力トランスポートストリームがWM検出・更新部31から多重化・ソースパケット化部17へ供給される。
多重化・ソースパケット化部17へは、入力トランスポートストリームとコントローラ19からの所定の指示信号が入力される。即ち、コントローラ19は、入力されるWM_oの変化を検出して、source_security_info()を作成する。source_security_info()をAVストリームの中で符号化する場合、コントローラ19は、source_security_info()を多重化・ソースパケット化部17へ供給する。多重化・ソースパケット化部17は、source_security_info()の情報をAVストリームの中で符号化する場合、例えば、その情報を持つディスクリプタを符号化する。
そして、多重化・ソースパケット化部17では、入力トランスポートストリームがソースパケット化され、スクランブラ20へ供給される。その後の処理は、上述の外部ライン入力端子からのビデオ、オーディオ入力をセルフエンコードしたAVストリームを記録する場合における、スクランブラ20以降の処理と同様である。
次に、IEEE1394で接続されたSTB26からDTCP準拠の方式で供給されるトランスポートストリームをCognizant記録モードで記録する場合について説明する。
図15に示される記録装置とSTB26では、DTCP準拠のIEEE1394接続の手続き処理が行われる。IEEE1394インターフェース29では、入力されるアイソクロナスパケットのヘッダにあるEMI(Encryption Mode Indicator)が所定の方法により解析されて、記録するAVストリームのCCI(図の中でCCI_oで示す)がコントローラ19へ供給される。また、IEEE1394インターフェース29では、入力トランスポートストリームがE_CCI解析・更新部30へ供給される。その後の処理は、上述のディジタルTV放送のRF入力からのトランスポートストリームを記録する場合における、E_CCI解析・更新部30以降の処理と同様である。
次に、IEEE1394で接続されたSTB26からDTCP準拠の方式で供給されるトランスポートストリームをNon-cognizant記録モードで記録する場合について説明する。
図15に示される記録装置とSTB26では、DTCP準拠のIEEE1394接続の手続き処理が行われる。IEEE1394インターフェース29では、入力されるアイソクロナスパケットのヘッダにあるEMIが所定の方法により解析されて、記録するAVストリームのCCI(図の中でCCI_oで示す)がコントローラ19へ供給される。また、IEEE1394インターフェース29から出力されるトランスポートストリームは、E_CCI解析・更新部30とWM解析・更新部31をスルーで通過して(何も処理されないで通過して)、多重化・ソースパケット化部17へ供給される。その後の処理は、上述のディジタルTV放送のRF入力からのトランスポートストリームを記録する場合における、多重化・ソースパケット化部17以降の処理と同様である。
次に、IEEE1394で接続されたPC27からDTCP準拠の方式を用いないで供給されるトランスポートストリームをCognizant記録モードで記録する場合について説明する。
図15に示す記録装置とPC27とは、DTCP準拠でないIEEE1394接続の手続き処理が行われる。この場合、入力されるイソクロナスパケットのEMIフィールドは意味を持たない。IEEE1394インターフェース29からは、入力トランスポートストリームがE_CCI解析・更新部30へ供給される。その後の処理は、上述のディジタルTV放送のRF入力からのトランスポートストリームを記録する場合における、E_CCI解析・更新部30以降の処理と同様である。
次に、図15に示した記録装置において、入力ソースの種類によって異なるコピーコントロールの処理について、図16〜図22を用いて説明する。
図16は、入力ソースがビデオのライン入力の場合(端子12からのビデオライン入力の場合)におけるコピーコントロール処理について説明した図である。図の中の「入力信号の状態」のCGMSとWMは、それぞれ入力信号が持つCGMSとWMの状態を示している。
ここでは、
・ 入力ビデオ信号のCGMSが'00'のとき、CGMS検出・更新部14は、CCI_o=00とする。
・ 入力ビデオ信号のCGMSが'10'のとき、CGMS検出・更新部14は、CCI_o=01とし、入力ビデオのCGMSを更新する。
・ 入力ビデオ信号のCGMSが'01'または'11'のとき、入力ビデオを記録できない。
入力ビデオ信号のWMを解析する場合において、
・ 入力信号のWMが'00'のとき、WM検出・更新部15は、WM_o=00とする。
・ 入力信号のWMが'10'のとき、WM検出・更新部15は、WM_o=101とし、入力ビデオのWMを更新する。
・ 入力信号のWMが'101'または'11'のとき、入力ビデオを記録できない。
ここで、コントローラ19は、記録するAVストリームの中に符号化されるE_CCIにCCI_oと同じ意味の値をセットし、ソースパケットヘッダのcopy_permission_indicator(c_p_I)に、CCI_oと同じ意味の値をセットする。また、コントローラ19は、source_security_info()の内容を次のようにセットする。
・ is_cognizantを1にセットする。
・ 入力ビデオ信号のWMを解析する場合は、is_WM_chekedを1にセットし、status_WMにWM_oと同じ意味の値をセットし、それ以前のWMの状態と比較して、WM_transition_flagの値を決める。
・ 入力ビデオ信号のWMを解析しない場合は、is_WM_chekedを0にセットする。
図17は、入力ソースが記録装置に内蔵のアナログTVチューナ(TVチューナ11)からのビデオ入力の場合におけるコピーコントロール処理を説明した図である。図の中における「入力信号の状態」のWMは、入力信号が持つWMの状態を示している。
ここでは、
・ 入力ビデオ信号のWMを解析しない場合、WM_o=00と見なす。
入力ビデオ信号のWMを解析する場合において、
・ 入力信号のWMが'00'のとき、WM検出・更新部15は、WM_o=00とする。
・ 入力信号のWMが'10'のとき、WM検出・更新部15は、WM_o=101とし、入力ビデオのWMを更新する。
・ 入力信号のWMが'101'または'11'のとき、入力ビデオを記録できない。
ここで、コントローラ19は、記録するAVストリームの中に符号化されるE_CCIにWM_oと同じ意味の値をセットし、ソースパケットヘッダのcopy_permission_indicator(c_p_I)に、WM_oと同じ意味の値をセットする。また、コントローラ19は、source_security_info()の内容を次のようにセットする。
・ is_cognizantを1にセットする。
・ 入力ビデオ信号のWMを解析する場合は、is_WM_chekedを1にセットし、status_WMにWM_oと同じ意味の値をセットし、それ以前のWMの状態と比較して、WM_transition_flagの値を決める。
・ 入力ビデオ信号のWMを解析しない場合は、is_WM_chekedを0にセットする。
図18は、入力ソースがディジタルTV放送の内蔵チューナ(ディジタルTVチューナ28)からのTS(トランスポートストリーム)の場合における、コピーコントロール処理を説明するための図である。図の中における「入力信号の状態」のE_CCIとWMは、それぞれ入力信号が持つE_CCIとWMの状態を示している。
ここでは、
・ 入力TSのE_CCIが'00'のとき、E_CCI解析・更新部30は、CCI_o=00とする。
・ 入力TSのE_CCIが'10'のとき、E_CCI解析・更新部30は、CCI_o=01とし、入力TSのE_CCIを'01'に更新する。
・ 入力TSのE_CCIが'01'または'11'のとき、入力TSを記録できない。
また、入力TSのWMを解析する場合において、
・ 入力TSのWMが'00'のとき、WM検出・更新部31は、WM_o=00とする。
・ 入力TSのWMが'10'のとき、WM検出・更新部31は、WM_o=101とし、入力TSのWMを'101'に更新する。
・ 入力TSのWMが'101'または'11'のとき、入力TSを記録できない。
ここで、コントローラ19は、ソースパケットヘッダのcopy_permission_indicator(c_p_I)に、CCI_oと同じ意味の値をセットする。また、コントローラ19は、source_security_info()の内容を次のようにセットする。
・ is_cognizantを1にセットする。
・ 入力ビデオ信号のWMを解析する場合は、is_WM_chekedを1にセットし、status_WMにWM_oと同じ意味の値をセットし、それ以前のWMの状態と比較して、WM_transition_flagの値を決める。
・ 入力ビデオ信号のWMを解析しない場合は、is_WM_chekedを0にセットする。
図19は、入力ソースがIEEE1394経由でDTCP準拠の方式で入力されるTSであり、そのTSをCognizant記録する場合における、コピーコントロール処理を説明するための図である。図の中の「入力信号の状態」のEMI、E_CCI、WMは、それぞれ入力信号が持つEMI、E_CCI、WMの状態を示している。
ここでは、
・ 入力TSのE_CCIが'00'のとき、E_CCI解析・更新部30は、CCI_o=00とする。
・ 入力TSのE_CCIが'10'のとき、E_CCI解析・更新部30は、CCI_o=01とし、入力TSのE_CCIを'01'に更新する。
・ 入力TSのE_CCIが'01'または'11'のとき、入力TSを記録できない。
また、入力TSのWMを解析する場合において、
・ 入力TSのWMが'00'のとき、WM検出・更新部31は、WM_o=00とする。
・ 入力TSのWMが'10'のとき、WM検出・更新部31は、WM_o=101とし、入力TSのWMを'101'に更新する。
・ 入力TSのWMが'101'または'11'のとき、入力TSを記録できない。
ここで、コントローラ19は、ソースパケットヘッダのcopy_permission_indicator(c_p_I)に、CCI_oと同じ意味の値をセットする。また、コントローラ19は、source_security_info()の内容を次のようにセットする。
・ is_cognizantを1にセットする。
・ 入力ビデオ信号のWMを解析する場合は、is_WM_chekedを1にセットし、status_WMにWM_oと同じ意味の値をセットし、それ以前のWMの状態と比較して、WM_transition_flagの値を決める。
・ 入力ビデオ信号のWMを解析しない場合は、is_WM_chekedを0にセットする。
図20は、入力ソースがIEEE1394経由でDTCP準拠の方式で入力されるTSであり、そのTSをNon-cognizant記録する場合における、コピーコントロール処理を説明するための図である。図の中における「入力信号の状態」のEMIは、それぞれ入力信号が持つEMIの状態を示している。
ここでは、
・ 入力TSのEMIが'00'のとき、IEEE1394インターフェース29は、CCI_o=00とする。
・ 入力TSのEMIが'10'のとき、IEEE1394インターフェース29は、CCI_o=01とする。
・ 入力TSのEMIが'01'または'11'のとき、入力TSを記録できない。
ここで、コントローラ19は、ソースパケットヘッダのcopy_permission_indicator(c_p_I)に、CCI_oと同じ意味の値をセットする。また、コントローラ19は、source_security_info()の内容を次のようにセットする。
・ is_cognizantを0にセットする。
・ is_WM_checkedを0にセットする。
図21は、入力ソースがIEEE1394経由でDTCP準拠の方式を用いないで入力されるTSであり、そのTSをCognizant記録する場合における、コピーコントロール処理を説明するための図である。図の中における「入力信号の状態」のE_CCIとWMは、それぞれ入力信号が持つE_CCIとWMの状態を示している。
ここでは、
・ 入力TSのE_CCIが'00'のとき、E_CCI解析・更新部30は、CCI_o=00とする。
・ 入力TSのE_CCIが'10'のとき、E_CCI解析・更新部30は、CCI_o=01とし、入力TSのE_CCIを'01'に更新する。
・ 入力TSのE_CCIが'01'または'11'のとき、入力TSを記録できない。
また、入力TSのWMを解析する場合において、
・ 入力TSのWMが'00'のとき、WM検出・更新部31は、WM_o=00とする。
・ 入力TSのWMが'10'のとき、WM検出・更新部31は、WM_o=101とし、入力TSのWMを'101'に更新する。
・ 入力TSのWMが'101'または'11'のとき、入力TSを記録できない。
ここで、コントローラ19は、ソースパケットヘッダのcopy_permission_indicator(c_p_I)に、CCI_oと同じ意味の値をセットする。また、コントローラ19は、source_security_info()の内容を次のようにセットする。
・ is_cognizantを1にセットする。
・ 入力ビデオ信号のWMを解析する場合は、is_WM_chekedを1にセットし、status_WMにWM_oと同じ意味の値をセットし、それ以前のWMの状態と比較して、WM_transition_flagの値を決める。
・ 入力ビデオ信号のWMを解析しない場合は、is_WM_chekedを0にセットする。
図22は、入力ソースがIEEE1394経由でDTCP準拠の方式を用いないで入力されるTSであり、そのTSをNon-cognizant記録する場合における、コピーコントロール処理を説明するための図である。この場合、信用できるCCIがなく、入力TSはCopy Freeとみなして記録される。
ここで、コントローラ19は、ソースパケットヘッダのcopy_permission_indicator(c_p_I)に、00をセットする。また、コントローラ19は、source_security_info()の内容を次のようにセットする。
・ is_cognizantを0にセットする。
・ is_WM_checkedを0にセットする。
図23は、本実施の形態における記録処理を説明するフローチャートである。まず、入力ソースのタイプが決定された(ステップ99)後に、入力ソースがトランスポートストリーム(TS)入力か否かが判断される(ステップ100)。入力ソースがトランスポートストリーム入力の場合はステップ101へ進み、入力ソースがビデオライン入力または内蔵アナログTVチューナ入力の場合はステップ111へ進む。
始めに、入力ソースがトランスポートストリーム入力の場合を説明する。
ここでは、まず、入力ソースがIEEE1394入力か内蔵のディジタルTVチューナ入力かが判断される(ステップ101)。入力ソースがIEEE1394入力の場合はステップ102へ進み、入力ソースが内蔵のディジタルTVチューナ入力の場合はステップ104へ進む。
ステップ101で入力ソースがIEEE1394入力の場合に、入力ソースがDTCP準拠か否かが判断される(ステップ102)。DTCP準拠である場合には、EMIの値が読み出され、EMIの処理がなされる(ステップ103)。一方、入力ソースがDTCP準拠でない場合には、EMIの値がゼロと見なされ(ステップ105)、ステップ104に移行する。
ステップ104で、入力TSをCognizant記録する場合はステップ106へ進み、図18、図19、図21で説明したようにE_CCIによるコピーコントロール処理が行われ、またis_cognizantは1にセットされる。一方、ステップ104で、入力TSをNon-cognizant記録する場合は、ステップ109へ進み、is_cognizantは0にセットされる。
ステップ107で、入力TSのWMを解析する場合はステップ108へ進み、図18、図19、図21で説明したようにWMによるコピーコントロール処理が行われ、またis_WM_checkedは1にセットされる。一方、入力TSのWMを解析しないで記録する場合はステップ110へ進み、is_WM_checkedは0にセットされる。
これらの処理の後、上述したようにcopy_permission_indicatorの値を決定し、入力トランスポートパケットをソースパケット化する(ステップ119)。その後、AVストリームを記録し(ステップ120)、source_security_infoを記録して(ステップ121)、処理が終了する。
次に、ステップ100で、入力ソースがビデオライン入力または内蔵アナログTVチューナ入力の場合について説明する。ここでは、まず、is_cognizantが1にセットされ(ステップ111)、ビデオライン入力か否かが判断される(ステップ112)。入力ソースがビデオライン入力の場合はステップ113へ進み、入力ソースがアナログTVチューナ入力の場合はステップ115へ進む。ステップ113で、入力ビデオのマクロビジョンによる記録制限が行われた後、入力ビデオのCGMSによるコピーコントロール処理が図16で説明したように実行される(ステップ114)。
ステップ115で、入力ビデオのWMを解析する場合はステップ116へ進み、図16および図17で説明したようにWMによるコピーコントロール処理が行われ、またis_WM_checkedは1にセットされる。一方、入力ビデオのWMを解析しないで記録する場合はステップ117へ進み、is_WM_checkedは0にセットされる。
これらの処理の後、入力ビデオをMPEGエンコードして、トランスポートストリーム化する(ステップ118)。そして、上述の入力ソースがTSの場合と同様に、ステップ119、ステップ120、 およびステップ121の処理が行われる。
このようにして、記録するAVストリームのsource_security_infoの情報が作成され、AVストリームと共に記録される。
次に、再生制限を行う再生装置について説明する。
図24は、本実施の形態が適用される再生装置を示したブロック図であり、AVストリームを再生するときに、そのsource_security_info()に基づいて再生制限を行っている。
この再生装置には、AVストリームファイルとアプリケーションデータベース情報が記録された記録媒体51を読み込むドライブ52、復調処理を行う復調部53、ECC(誤り訂正)復号部54、デスクランブル処理を行うデスクランブラ55、ソースデパケッタイズ・分離部56、E_CCIの検査と再生制限の処理を行うコントローラ57を備えている。また、入力ストリームを復号して、ビデオとオーディオを出力するMPEG2AVデコーダ59、WMの検査と再生制限の処理を行うWM検査部61、DTCP準拠の再生制限の処理を行うDTCP準拠の処理部62、CGMSの処理を行うCGMS挿入部63、マクロビジョンの処理を行うマクロビジョン挿入部64、再生ビデオ信号が出力される端子65、オーディオ信号が出力される端子66を備える。更には、WMの検査と再生制限の処理を行うWM検査部68、およびDTCP準拠の処理を行うIEEE1394インターフェース(I/F)70を備えている。この再生装置からのトランスポートストリームは、DTCP準拠のSTB71やDTCP準拠でない外部のPC72に出力される。
まず始めに、アプリケーションデータベース情報(source_security_infoを含む)を記録媒体51から読み出し、そのデータベース情報は、復調部53、ECC(誤り訂正)復号部54の処理を経て、コントローラ57へ入力される。コントローラ57では、アプリケーションデータベースに基づいて、ディスク(記録媒体51)に記録されているPlayListの一覧がユーザインターフェース(図示せず)へ出力される。ユーザは、PlayListの一覧から再生したいPlayListを選択し、再生を指定されたPlayListがコントローラ57へ指示される。コントローラ57では、そのPlayListの再生に必要なAVストリームファイルの記録媒体51からの読み出しが行われる。そして、ドライブ52では、記録媒体51からそのAVストリームが読み出され、読み出されたAVストリームは、復調部53、ECC復号部54の処理を経て、デスクランブラ55へ供給される。デスクランブラ55では、対応するデータベース情報に基づいたデスクランブル処理が行われ、ソースパケット列がソースデパケッタイズ・分離部56へ供給される。
その後の処理は、最終的な再生出力がビデオ出力か、TS出力かによって異なる。
始めに、再生出力がビデオ出力である場合のソースデパケッタイズ・分離部56以降の処理を説明する。
ソースデパケッタイズ・分離部56からは、入力されるソースパケットのヘッダのcopy_permission_indicator(c_p_I)がコントローラ57へ提供される。また、ソースデパケッタイズ・分離部56では、ソースパケット列から成るAVストリームの中にsource_security_infoの情報が符号化されている場合、その情報が復号され、コントローラ57へ供給される。また、ソースデパケッタイズ・分離部56からは、ソースパケット列から成るAVストリームの中に符号化されているE_CCI (Embedded CCI)がコントローラ57へ供給される。コントローラ57では、後述するように、このE_CCIの検査と再生制限の処理が行われる。
図25は、この再生装置が再生時にE_CCIを検査して再生制限を行う処理について示している。ここでは、source_security_infoのis_cognizantが'0'の場合、それに対応するAVストリームの記録時に、E_CCI(Embedded CCI)の解析を行っていないので、再生時にE_CCIの検査と再生制限の処理が行われる。即ち、E_CCIが'00'の場合は、ビデオを再生しても良い。また、E_CCIが'10'の場合は、ビデオを再生しても良いが、CCIを'01'に更新する。E_CCIが'11'または'01'であった場合は、不正に記録されていることになるので、ビデオの再生が中止される。
また、ソースデパケッタイズ・分離部56では、ソースパケット列からMPEGビデオストリームとオーディオストリームとが分離され、それらストリームがMPEG2AVデコーダ59へ供給される。MPEG2AVデコーダ59からは、入力ストリームが復号され、ビデオとオーディオが出力される。
次に、MPEG2AVデコーダ59からのビデオ信号は、WM検査部61へ入力されて、WMの検査と再生制限の処理が行われる。
図26は、WM検査部61が行う処理について説明するための図である。ここでは、source_security_infoのis_cognizantが'0'の場合、それに対応するAVストリームの記録時に、WMの解析を行っていないので、再生時にWMの検査と再生制限の処理が行われる。即ち、WMが'00'の場合は、AVストリームの再生をしても良い。また、WMが'10'の場合は、ビデオの再生をしても良いが、WMを'101'に更新する。WMが'101'または'11'であった場合は、不正に記録されていることになるので、AVストリームの再生を中止する。尚、例えばアナログTV放送にてウォーターマークが導入されないような場合には、source_security_infoのsource_typeがアナログTVのチューナ入力を示す場合、WM検査部61では何ら処理をしなくても構わない。
WM検査部61からのビデオ信号は、DTCP準拠の処理部62へ入力される。source_security_infoのsource_typeがDTCP準拠のソースであることを示す場合、DTCP準拠の処理部62では、DTCP準拠の再生制限の処理が行われる。例えば、source_typeがDTCP準拠のソースである場合、トランスポートストリームの中におけるDTCP descriptorのCCIが'01'(No more copy)である場合、DTLAの規定に従えば、アナログビデオ再生にHDTV(High Definition Television:高精細度テレビジョン)の解像度で出力してはいけない。よって、この場合に、DTCP準拠の処理部62では、HDTVのビデオが入力されたとき、ビデオをSDTV(Standard Definition Television:標準画像テレビ)の解像度にダウンサンプルして出力する処理が行われる。
このDTCP準拠の処理部62からのビデオ信号は、CGMS挿入部63へ入力されて、CGMSの処理が行われる。このCGMS挿入部63からのビデオ信号は、マクロビジョン挿入部64へ入力されて、マクロビジョンの処理が行われる。その後、マクロビジョン挿入部64から再生ビデオ信号が出力される。
次に、再生出力がTS出力である場合のソースデパケッタイズ・分離部56以降の処理を説明する。
ソースデパケッタイズ・分離部56からは、入力されるソースパケットのヘッダのcopy_permission_indicator (c_p_I)がコントローラ57へ提供される。また、ソースデパケッタイズ・分離部56では、ソースパケット列から成るAVストリームの中にsource_security_infoの情報が符号化されている場合、その情報が復号されて、コントローラ57へ供給される。また、ソースデパケッタイズ・分離部56からは、ソースパケット列から成るAVストリームの中に符号化されているE_CCI(Embedded CCI)がコントローラ57へ供給される。また、ソースデパケッタイズ・分離部56では、ソースパケット列からトランスポートストリームが分離されて、これがWM検査部68へ供給される。
ソースデパケッタイズ・分離部56からのトランスポートストリームは、WM検査部68へ入力されて、WMの検査と再生制限の処理が行われる。WM検査部68にて行われる処理は、上述した図26の説明と同様である。次に、このWM検査部68からのトランスポートストリームは、IEEE1394インターフェース70へ入力される。
source_security_infoのsource_typeがDTCP準拠のソースであることを示す場合、DTCP準拠の方法でトランスポートストリームを出力しなければならない。トランスポートストリームをDTCP準拠の方法でSTB71へ出力する場合、IEEE1394インターフェース70では所定のDTCP準拠の処理が行われる。source_security_infoのsource_typeがDTCP準拠のソースでないことを示す場合、トランスポートストリームをDTCP準拠でない外部のPC72へ出力することも可能である。
図27は、AVストリームを再生するときに、そのsource_security_info()に基づいて再生制限を行う処理を示したフローチャートである。再生処理では、まず、Source_security_infoが読み出され(ステップ200)、Source_security_infoに対応するAVストリームファイルが読み出される(ステップ201)。このAVストリームファイルのソースパケット列からトランスポートストリームが分離され、また、ソースパケットのヘッダにあるcopy_permission_indicatorが受信される(ステップ202)。尚、AVストリームの中にSource_security_infoが符号化されている場合は、このステップでSource_security_infoが読み出される。
次に、ビデオ出力の再生かTS出力の再生かが判断され(ステップ203)、ビデオ出力の再生である場合には、ステップ211へ進み、TS出力の再生の場合には、ステップ204へ進む。
まず始めに、TS出力の再生の場合について説明する。TS出力の再生の場合、ステップ204で、is_cognizantが1の場合はステップ205へ進み、is_cognizantが0の場合はステップ207へ進む。ステップ205では、is_WM_checkedが0の場合はステップ206へ進み、is_WM_checkedが1の場合はステップ207へ進む。このステップ206では、前述した図26の説明のように、WMの検査と再生制限が行われる。
ステップ207で、Source_security_infoのsource_typeがDTCP準拠の入力ソースであることを示す場合、ステップ208へ進み、そうでない場合は、ステップ210へ進む。DTCP準拠の場合、EMIにcopy_permission_indicatorの値がセットされ(ステップ208)、DTCPのルールの従ったTS出力の処理(例えばスクランブル処理等)が行われる(ステップ209)。そして、TSがIEEE1394へアイソクロナス伝送されて(ステップ210)、処理が終了する。
次に、ステップ203にて、ビデオ出力の再生の場合について説明する。ビデオ出力の再生の場合には、まず、トランスポートストリームがデコードされて、ビデオとオーディオ信号が取り出される(ステップ211)。その後、ステップ212で、is_cognizantがゼロの場合、ステップ213へ進み、is_cognizantが1の場合、ステップ214へ進む。ステップ213では、図25で説明したように、E_CCIの検査と再生制限が行われる。
ステップ214で、is_WM_checkedが0の場合、ステップ215へ進み、is_WM_checkedが1の場合、ステップ216へ進む。このステップ215では、図26で説明したようにWMの検査と再生制限が行われる。
ステップ216で、Source_security_infoのsource_typeがDTCP準拠の入力ソースであることを示す場合、ステップ217へ進み、そうでない場合はステップ218へ進む。このステップ217で、DTCPのルールに従ったビデオ出力の再生制限の処理(例えば、ライン数500本以内に制限する等の処理)を行う。ここでは、図24の再生装置におけるDTCP準拠の処理部62にて、前述した処理が行われる。
次に、ビデオへのCGMS挿入の処理が行われる(ステップ218)。もしも、ステップ213でCCIを更新した場合、またはステップ215でWMを更新した場合、更新された最新のCCIを表すようにCGMSがセットされる。CCIとWMの状態が異なる場合、どちらを優先するかはアプリケーションによって決められる。その後、所定の方法により、ビデオ信号にマクロビジョンが挿入される(ステップ219)。例えば、AVストリームファイルの中におけるDTCP_descriptorのAPSに符号化されているマクロビジョンの指示情報に従って、ビデオ信号にマクロビジョンが挿入される。そして、ビデオ出力がなされ(ステップ220)、処理が終了する。このようにして、記録されているAVストリームがSource_security_infoに基づいて適切に再生される。
このように、本実施の形態では、AVストリームと共に、その入力ソースの種類,Cognizant記録かNon-cognizant記録かの情報、記録時にウォーターマーク(Water mark)を解析して記録したかどうかの情報の少なくとも一つを持つsource_security_info()を記録することにより、そのAVストリームを再生する際に、適切な再生制限を行うことができる。
例えば、ディジタルTV放送などのトランスポートストリームを記録する場合、記録装置内蔵のディジタルTVチューナからのトランスポートストリームを入力ソースとするか、または、外部のセットトップボックスからIEEE1394経由で入力されるトランスポートストリームを入力ソースとするかの2通りの方法がある。前者の方法は、DTCP方式を使用しなくても良く、前者の方法で記録したストリームを再生する時は、DTCP方式に準拠した再生制限を行う必要がない。一方、後者の方法は、少なくとも日本のBSディジタル放送の場合、DTCP準拠の方法を用いて記録しなければならない。よって、後者の方法で記録したストリームを再生する時は、DTCP方式に準拠した再生制限を行わなければならない。かかる場合に、Source_security_infoのsource_typeを参照することにより、適切な再生制限を行うことができる。
また、現在、ウォーターマークは、まず、DVDビデオに導入されることが検討されている。これは、DVDビデオプレーヤからのアナログビデオ出力が不正に録画されることを防止することを目的としている。一方、録画が基本的には自由なアナログTV放送にはウォーターマークが導入されない可能性がある。かかる場合、アナログビデオのライン入力がセルフエンコードされて記録されたMPEGストリームは、入力ソースがDVDビデオ出力の可能性があるので、そのMPEGストリームの再生時に、ウォーターマークをチェックして再生制限を行うことが要求される。一方、アナログTV放送がセルフエンコードされて記録されたMPEGストリームは、そのMPEGストリームの再生時に、ウォーターマークをチェックする必要がないだろう、と予想される。この場合に、Source_security_infoのsource_typeを参照することにより、適切な再生制限を行うことができる。
更に、DTCP準拠の方式でトランスポートストリームを記録する場合、Cognizant記録モードとNon-cognizant記録モードがある。Cognizant記録モードで記録されたトランスポートストリームを復号してアナログビデオ再生するときは、トランスポートストリームのEmbedded CCIとウォーターマークをチェックする必要はない。一方、Non-cognizant記録モードで記録されたトランスポートストリームを復号してアナログビデオ再生するときは、トランスポートストリームのEmbedded CCIとウォーターマークをチェックする必要がある。この場合に、Source_security_infoのsource_type、is_cognizantおよびis_WM_checkedを参照することにより、適切な再生制限を行うことができる。
また更に、AVストリームの記録時にウォーターマークのチェックをして記録した場合は、そのAVストリームの再生時にウォーターマークのチェックを行う必要がない。逆に、AVストリームの記録時にウォーターマークのチェックを行わないで記録した場合は、そのAVストリームの再生時にウォーターマークのチェックを行う必要がある。かかる場合に、Source_security_infoのis_WM_checkedを参照することにより、適切な再生制限を行うことができる。
そして、Source_security_infoにIntegrity_Check_Valueを付加して記録するか、またはSource_security_infoをスクランブルして記録するので、Source_security_infoの情報が改竄されることがないように、セキュアに管理することができる。
更には、Source_security_infoにstatus_WMを記録することにより、AVストリームの再生時にそのウォーターマークの示す状態を知りたいときに、AVストリームを解析する必要がない。そのため、記録媒体上のあるAVストリーム別の記録媒体にコピーしたいとき、AVストリームに埋め込まれているウォーターマークを解析することなしに、status_WMを参照することによって、コピーの可否を判断できる。また、WM_transition_flagは、AVストリームの中にてWMの変化点の検索処理を行う際に、その処理の高速化に役立てることができる。
尚、本実施の形態では、ディジタルコンテンツの保護機能に関するルールに準拠したものとして、所謂5Cと呼ばれるDTCP(Digital Transmission Content Protection)に準拠したものを挙げている。しかしながら、本実施の形態の趣旨を逸脱しない限り、ディジタルコンテンツの保護機能に関する他のルールに対しても適用できることは言うまでもない。
また、本実施の形態にて説明した各処理は、情報記録装置、情報再生装置等のコンピュータ装置において実行されるプログラムとして提供することができる。このプログラムは、CD−ROM等の記憶媒体として提供されて、コンピュータ装置におけるCD−ROMドライブ等の読取手段によって読取可能に構成されている場合の他、例えば、ネットワークを介して遠隔地にあるプログラム伝送装置から提供され、コンピュータ装置にインストールされても良い。また、本実施の形態では、記憶媒体としてDVRを例に挙げて説明してきたが、同様のデータフォーマットを有する記憶媒体等、他の記憶媒体に対して適用できることは言うまでもない。
10…端子、11…TVチューナ、12…端子、13…マクロビジョン検出部、14…CGMS検出・更新部、15…WM(Water Mark)検出・更新部、16…MPEG2AVエンコーダ、17…多重化・ソースパケット化部、18…ストリーム解析部、19…コントローラ、20…スクランブラ、21…ECC(誤り訂正)符号化部、23…ドライブ、24…記録媒体、25…端子、26…セットトップボックス(STB)、27…PC、28…ディジタルTVチューナ、29…IEEE1394インターフェース(I/F)、30…E_CCI解析・更新部、31…WM検出・更新部、32…端子、51…記録媒体、52…ドライブ、54…ECC(誤り訂正)復号部、55…デスクランブラ、56…ソースデパケッタイズ・分離部、57…コントローラ、59…MPEG2AVデコーダ、61…WM検査部、62…DTCP準拠の処理部、63…CGMS挿入部、64…マクロビジョン挿入部、68…WM検査部、70…IEEE1394インターフェース(I/F)、71…STB、72…PC