図1は、本発明を適用した情報記録再生システムで用いる情報記録媒体上のアプリケーションフォーマットの簡単化された構造を示している。このフォーマットは、AV(Audio Visual)ストリームの管理のためにPlayList(プレイリスト)とClip(クリップ)の2つのレイヤをもつ。そして、Volume Information(ボリュウムインフォメーション)は、ディスク内のすべてのClipとPlayListの管理をする。
1つのAVストリームとそれの付属情報のペアを1つのオブジェクトと考え、それをClipと呼ぶ。AVストリームファイルはClip AVストリームファイルと呼ばれ、その付属情報は、Clip Information file(クリップインフォメーションファイル)と呼ばれる。
1つのClip AVストリームファイルは、MPEG2トランスポートストリームをDVR(Digital Video Recorder)アプリケーションフォーマットによって規定される構造に配置したデータをストアする。
一般に、コンピュータ等で用いるデータファイルは、バイト列として扱われるが、Clip AVストリームファイルのコンテンツは、時間軸上に展開され、PlayListは、Clipの中のアクセスポイントを主にタイムスタンプで指定する。PlayList が、Clipの中へのアクセスポイントをタイムスタンプで指し示している時、Clip Information fileは、Clip AVストリームファイルの中でストリームのデコードを開始すべきアドレス情報を見つけるために役立つ。
PlayListは、Clipの中からユーザが見たい再生区間を選択し、それを簡単に編集することができることを目的にして導入された。1つのPlayListは、Clipの中の再生区間の集まりである。あるClipの中の1つの再生区間は、PlayItemと呼ばれ、それは、時間軸上のIN点とOUT点のペアで表される。それゆえ、PlayListは、PlayItemの集まりである。
PlayListには、2つのタイプがある。1つは、Real PlayListであり、もう1つは、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と呼んでいる。
図2は、PlayList上のマークとClip上のマークを説明する図である。マークは、ClipおよびPlayListの中のハイライトや特徴的な時間を指定するためにある。
(1) Clipに付加されるマークは、AVストリームの内容に起因する特徴的なシーンを指定する。このマークは、例えば、シーンチェンジ点(シーンスタートポイント)などで構成される。PlayListを再生する時、そのPlayListが参照するClipのマークを参照して、使用する事ができる。
(2) PlayListに付加されるマークは、主にユーザによってセットされる。このマークは、例えば、ユーザにより任意のポイントで指定されるブックマークや、前回の再生終了点を示すリジュームマークなどにより構成される。
(3) ClipまたはPlayListにマークをセットすることは、マークの時刻を示すタイムスタンプをマークリストに追加することにより行われる。また、マークをデリートすることは、マークリストの中からそのマークのタイムスタンプを除去する事である。それゆえ、マークのセットやデリートは、AVストリームを何も変化させない。
サムネールは、Volume(ディスク),PlayListまたはClipに付加される静止画である。サムネールには、図3に示されるように2つの種類がある。1つは、内容を表す代表画としてのサムネール(メニューサムネール)である。これは主としてユーザがカーソルを操作して見たいものを選択するためのメニュー画面で使われる。もう1つは、マークが指しているシーンを表す画像(マークサムネール)である。
Volumeと各PlayListは代表画を持つことができるようにする。Volumeの代表画は、情報記録媒体としてのディスクをプレーヤに入れた時に、ディスクの内容を表す静止画を最初に表示する場合などに用いられる(図4のMenu Thumbnailを参照)。PlayListの代表画とは、PlayListを選択するメニュー画面において、PlayListの内容を表すための静止画として用いられることを想定している(図5のMenu Thumbnailを参照)。PlayListの代表画の最も簡単な実現方法は、PlayListの最初の画像をサムネールにすることであるが、必ずしも再生時刻0の先頭の画像が内容を表す上で最適な画像とは限らない。PlayListのサムネールとして、任意の画像を決めることが出来る目的はこのためである。
以上2種類のサムネールをメニューサムネールと呼ぶが、メニューサムネールは頻繁に表示されるため、ディスクから高速に読むことが可能であることが求められる。この要求を満たすには、すべてのメニューサムネールを1つのファイルに格納することが効率的である(図6のMenu Thumbnail fileを参照)。メニューサムネールは、必ずしもボリューム内の動画から抜き出したピクチャだけではなく、パーソナルコンピュータ(PC)やデジタルスチルカメラ(DSC)などから取り込んだ画像でもよい(図4と図5)。
一方、ClipとPlayListは複数個のマークを任意の位置に付加して、マーク位置の内容を、マーク点の画像から容易に見ることが出来るようにする必要がある。このようなマーク点を表すピクチャをマークサムネール(Mark Thumbnails)と呼ぶ(図5のMark Thumbnail、および図7のMark Thumbnailを参照)。よって、この場合は、サムネールの元となるものは、外部から取り込んだ画像とすることができるが、それよりも、マーク点の画像を抜き出したものが主となる。メニューサムネールと異なり、マークサムネールはPlayListの詳細を表す時に使われるサブメニュー等で使われるため、短いアクセス時間は要求されない。そのため、サムネールが必要になる度に、プレーヤがファイルを開き、ファイルの一部を読むことで多少時間がかかっても、問題にはならない。また、ボリューム内に存在するファイル数を減らすために、ボリュームサムネールとPlayListのメニューサムネールが1つのメニューサムネールファイルに格納されるように、すべてのマークサムネールは1つのファイル(マークサムネール)に格納するのがよい(図6のMark Thumbnail fileを参照)。PlayListはメニューサムネール1つと複数のマークサムネールを有することができるが、Clipはユーザが直接選択する必要性がない(通常、PlayList経由で指定する)ため、メニューサムネールを持つことはしない。
DVRディスク上に必要なディレクトリは、次の通りである:"DVR"ディレクトリを含むrootディレクトリ。"PLAYLIST"ディレクトリ,"CLIPINF"ディレクトリ,"STREAM"ディレクトリおよび"DATA"ディレクトリを含む"DVR"ディレクトリ。図8に、DVRディスク上のディレクトリ構造の例を示す。
rootディレクトリは、1つのディレクトリを含む。
"DVR" -- DVRアプリケーションフォーマットによって規定されるすべてのファイルとディレクトリは、このディレクトリの下にストアされなければならない。
"DVR"ディレクトリは、次に示すファイルをストアする。
"info.dvr" -- DVRディレクトリの下に作られるアプリケーションレイヤの全体的な情報をストアするファイル。DVRディレクトリの下には、ただ1つのinfo.dvrがなければならない。ファイル名は、info.dvrに固定される。
"menu.tidx" and "menu.tdat"-- この2つのファイルは、メニューサムネール画像に関連する情報をストアする。menu.tidxは、メニューサムネール画像のヘッダ情報をストアする「サムネール情報ファイル」である。menu.tdatは、メニューサムネール画像の画像データをストアする「サムネール画像ファイル」である。
"mark.tidx" and "mark.tdat"-- この2つのファイルは、マークサムネール画像に関連する情報をストアする。mark.tidxは、マークサムネール画像のヘッダ情報をストアする「サムネール情報ファイル」である。mark.tdatは、マークサムネール画像の画像データをストアする「サムネール画像ファイル」である。
"DVR"ディレクトリは、3個のディレクトリを含む。
"PLAYLIST" -- Real PlayListとVirtual PlayList(図1)のデータベースファイルは、このディレクトリの下に置かなければならない。
"CLIPINF" -- Clip(図1)のデータベースは、このディレクトリの下に置かなければならない。
"STREAM" -- AVストリームファイル(図1)は、このディレクトリの下に置かなければならない。
"PLAYLIST"ディレクトリは、2種類のPlayListファイルをストアするものであり、それらは、Real PlayListとVirtual PlayListである。
"xxxxx.rpls" -- このファイルは、1つのReal PlayListに関連する情報をストアする。それぞれのReal PlayList毎に、1つのファイルが作られる。ファイル名は、"xxxxx.rpls"である。ここで、"xxxxx"は、5個の0から9まで数字である。ファイル拡張子は、"rpls"でなければならない。
"yyyyy.vpls" -- このファイルは、1つのVirtual PlayListに関連する情報をストアする。それぞれのVirtual PlayList毎に、1つのファイルが作られる。ファイル名は、"yyyyy.vpls"である。ここで、"yyyyy"は、5個の0から9まで数字である。ファイル拡張子は、"vpls"でなければならない。
"CLIPINF"ディレクトリは、それぞれのAVストリームファイルに対応して、1つのファイルをストアする。
"zzzzz.clpi" -- このファイルは、1つのAVストリームファイル(Clip AVストリームファイル または Bridge-Clip AVストリームファイル)に対応するClip Information fileである。ファイル名は、"zzzzz.clpi"であり、ここで、"zzzzz"は、5個の0から9までの数字である。ファイル拡張子は、"clpi"でなければならない。
"STREAM"ディレクトリは、AVストリームのファイルをストアする。
"zzzzz.m2ts" -- このファイルは、DVRシステムにより扱われるAVストリームファイルである。これは、Clip AVストリームファイルまたはBridge-Clip AVストリームファイルである。ファイル名は、"zzzzz.m2ts"であり、ここで"zzzzz"は、5個の0から9までの数字である。ファイル拡張子は、"m2ts"でなければならない。
1つのAVストリームファイルとそれに対応するClip information fileは、同じ5個の数字"zzzzz"を使用しなければならない。
AVストリームファイルの構造を説明する。AVストリームファイルは図9に示すDVR MPEG2トランスポートストリームの構造を持たなければならない。DVR MPEG2トランスポートストリームは次に示す特徴を持つ。
(1) DVR MPEG2トランスポートストリームは、整数個のAligned unitから構成される。
(2) Aligned unitの大きさは、6144 バイト (2048×3 バイト)である。
(3) Aligned unitは、ソースパケットの第1バイト目から始まる。
(4) ソースパケットは、192バイト長である。1つのソースパケットは、TP_extra_headerとトランスポートパケットから成る。TP_extra_headerは、4バイト長であり、またトランスポートパケットは、188バイト長である。
(5) 1つのAligned unitは、32個のソースパケットから成る。
(6) DVR MPEG2トランスポートストリームの中の最後のAligned unitも、また32個のソースパケットから成る。
(7) 最後のAligned unitが、入力トランスポートストリームのトランスポートパケットで完全に満たされなかった場合、残りのバイト領域をヌルパケット(PID=0x1FFFのトランスポートパケット)を持ったソースパケットで満たさねばならない。
TP_extra_header は、トランスポートパケットのペイロードのコピー制限情報とトランスポートパケットがデコーダに到着する時刻を示すアライバルタイムスタンプを含む。
次に、AVストリームファイルの再生情報を管理するデータベースフォーマットについて説明する。
図10は、info.dvrにストアされるデータの一部であるUIAppInfpoDVRのシンタクスを示す。ref_to_menu_thumbnail_indexは、Volumeを代表するサムネール画像の情報を示す。ref_to_menu_thumbnail_indexフィールドが、0xFFFFでない値の場合、Volumeにはサムネール画像が付加されており、そのサムネール画像は、menu.tdatファイルの中にストアされている。その画像は、menu.tidxファイルの中でthumbnail_indexの値を用いて参照される(図13を参照して後述する)。ref_to_menu_thumbnail_indexフィールドが、0xFFFF である場合、Volumeには、サムネール画像が付加されていない事を示す。
図11は、PlayListファイルにストアされるデータの一部であるPlayListMarkのシンタクスを示す。PlayListMarkは、PlayListに付加されるマークの情報をストアする。なお、PlayListの代表画像の情報もまた、PlayListMarkに含まれる。
number_of_PlayList_marksは、PlayListMarkの中にストアされているマークのエントリー数を示す。
mark_typeは、マークのタイプを示す。
ref_to_PlayItem_idは、マークが置かれているPlayItemを指定するところのPlayItem_idの値を示す。
mark_time_stampは、そのマークが指定されたポイントを示すタイムスタンプをストアする。
ref_to_menu_thumbnail_indexは、PlayListの代表画像を示すサムネール画像の情報を示す。ref_to_menu_thumbnail_indexフィールドが、0xFFFFでない値の場合、PlayListの代表画像を示すサムネール画像が存在し、そのサムネール画像は、menu.tdatファイルの中にストアされている。その画像は、menu.tidxファイルの中でthumbnail_indexの値を用いて参照される(図13を参照して後述する)。ref_to_menu_thumbnail_indexフィールドが、0xFFFF である場合、PlayListの代表画像を示すサムネール画像が存在しない事を示す。
ref_to_mark_thumbnail_indexは、マークに付加されるサムネール画像の情報を示す。ref_to_mark_thumbnail_indexフィールドが、0xFFFFでない値の場合、そのマークにはサムネール画像が付加されており、そのサムネール画像は、mark.tdatファイルの中にストアされている。その画像は、mark.tidxファイルの中でthumbnail_indexの値を用いて参照される(図13を参照して後述する)。ref_to_mark_thumbnail_indexフィールドが、0xFFFF である場合、そのマークにはサムネール画像が付加されていない事を示す。
図12は、Clip Informationファイルにストアされるデータの一部であるClipMarkのシンタクスを示す。ClipMarkは、Clipに付加されるマークの情報をストアする。
number_of_Clip_marksは、ClipMarkの中にストアされているマークのエントリー数を示す。
mark_typeは、マークのタイプを示す。
ref_to_STC_idは、mark_time_stampが置かれているClipのシステムタイムベースの時間軸を指定する情報である。
mark_time_stampは、Clip AVストリームの中でマークが指定されたポイントをプレゼンテーションタイムスタンプをベースとして表す。
ref_to_mark_thumbnail_indexは、マークに付加されるサムネール画像の情報を示す。ref_to_mark_thumbnail_indexフィールドが、0xFFFFでない値の場合、そのマークにはサムネール画像が付加されており、そのサムネール画像は、mark.tdatファイルの中にストアされている。その画像は、mark.tidxファイルの中でthumbnail_indexの値を用いて参照される(図13を参照して後述する)。ref_to_mark_thumbnail_indexフィールドが、0xFFFF である場合、そのマークにはサムネール画像が付加されていない事を示す。
次に、サムネールについての情報をストアするファイルの内容を説明する。
"menu.tidx"と"menu.tdat"(図8)は、メニューサムネール,すなわちVolumeを代表する1つのピクチャ、およびPlayList毎にそれを代表する1つのピクチャの情報をストアする。すべてのメニューサムネールのヘッダ情報は、1つのmenu.tidxに集めて管理される。すべてのメニューサムネールのピクチャデータは、1つのmenu.tdatに集めて管理される。
"mark.tidx"と"mark.tdat"(図8)は、マークサムネール,すなわちマーク点で指されるピクチャについての情報をストアする。Volume中のすべてのClipおよびPlayListに付加されているすべてのマークサムネールのヘッダ情報は、1つのmark.tidxに集めて管理される。すべてのマークサムネールのピクチャデータは、1つのmark.tdatに集めて管理される。
サムネールのピクチャデータは、例えば、画像をJPEGで符号化したデータである。
これら4個のファイルのシンタクスとセマンティクスを説明する。
"menu.tidx"と"mark.tidx"は、同じシンタクス構造を持つ。図13は、"menu.tidx"と"mark.tidx"のシンタクス構造を示す。
number_of_thumbnailsは、menu.tidxの場合にはmenu.tdatにストアされているサムネールピクチャの数であり、mark.tidxの場合にはmark.tdatにストアされているサムネールピクチャの数である。
tn_block_sizeは、menu.tidxの場合にはmenu.tdatの中の1つのtn_blockのサイズを示し、mark.tidxの場合にはmark.tdatの中の1つのtn_blockのサイズを示す。このサイズは、1024バイトを単位とする大きさである。例えば、tn_block_size=16は、1つのtn_blockのサイズが16×1024バイトであることを示す。1つのサムネールピクチャは、1つのtn_blockの中にストアされなければならない。
number_of_tn_blocksは、menu.tidxの場合にはmenu.tdatの中にあるtn_blockの数を示し、mark.tidxの場合にはmark.tdatの中にあるtn_blockの数を示す。
thumbnail_indexは、このthumbnail_indexフィールドに続くサムネール情報のインデクス番号を表す。thumbnail_indexして、0xFFFF という値を使用してはならない。menu.tidxの場合、thumbnail_indexはUIAppInfoVolume(), PlayListMark() の中のref_to_menu_thumbnail_indexによって参照される。mark.tidxの場合、thumbnail_indexはPlayListMark()およびClipMark()の中のref_to_mark_thumbnail_indexによって参照される。
ref_to_tn_block_idは、menu.tdat / mark.tdatのシンタクス中のtn_block_idの値を参照する。menu.tidxの場合、ref_to_tn_block_idは、menu.tdat中の1つのtn_blockを示し、そのtn_blockは、thumbnail_indexで指されるサムネール画像をストアしている。mark.tidxの場合、ref_to_tn_block_idは、mark.tdat中の1つのtn_blockを示し、そのtn_blockは、thumbnail_indexで指されるサムネール画像をストアしている。
picture_byte_size[ref_to_tn_block_id]は、thumbnail_indexのインデックス番号を持つサムネール画像のデータ長をバイト単位で示す。picture_byte_sizeは、(1024×tn_block_size-N1)バイト以下でなければならない(N1については、図16を参照して後述する)。すなわち、記録装置は1つの符号化サムネールピクチャのデータ長を(1024×tn_block_size-N1)バイト以下になるように、符号化しなければならない。
horizontal_picture_size[ref_to_tn_block_id]は、thumbnail_indexのインデックス番号を持つサムネール画像の水平方向の画素数を示す。
vertical_picture_size[ref_to_tn_block_id]は、thumbnail_indexのインデックス番号を持つサムネール画像の垂直方向の画素数を示す。
図14は、"menu.tdat"と"mark.tdat"のシンタクス構造を示す。"menu.tdat"と"mark.tdat"は、同じシンタクス構造を持つ。
tn_block(tn_block_id)は、tn_blockの配列の中でtn_block_idの引数によって指し示される1つのtn_blockを示す。menu.tdatの場合、tn_block_idの値は、menu.tidxの中のref_to_tn_block_idによって参照される。mark.tdatの場合には、tn_block_idの値は、mark.tidxの中のref_to_tn_block_idによって参照される。
menu.tdatの場合、1つのtn_blockのサイズはmenu.tdatの中のtn_block_sizeで示される。mark.tdatの場合、1つのtn_blockのサイズはmark.tdatの中のtn_block_sizeで示される。
図15は、tn_blockの使用方法の例を示す。サムネールは頻繁に追加、削除されるので、追加操作と部分削除の操作は容易に高速に実行できなければならない。この理由のため、menu.tdat とmark.tdatはブロック構造を有する。1つのサムネール画像は1つのtn_blockに格納される。図15の例では、サムネール画像a,b,cは、それぞれ、tn_block_id=0,1,3のtn_blockに格納されている。
menu.tdatおよびmark.tdatのtn_block列の中に、使用されていないtn_block(図15の例では、tn_block_id=2のtn_block)が存在してもよい。例えば、あるサムネールの削除をする場合、サムネール情報ファイルの中にエントリーされているthumbnail_indexを消去し、サムネール画像ファイルを何も変更しなかったとき、tn_block列の中に、使用されていないtn_blockができる。
図16は、tn_block(tn_block_id)のシンタクスを示す。
thumbnail_picture[tn_block_id]は、tn_block_idの値により指し示される1つのサムネール画像をストアする領域である。
menu.tdatの場合、tn_block_idの値は、menu.tidxの中のref_to_tn_block_idによって参照される。mark.tdatの場合、tn_block_idの値は、mark.tidxの中のref_to_tn_block_idによって参照される。
サムネールピクチャの第1バイト目は、thumbnail_picture[tn_block_id]の第1バイト目と一致していなければならない。サムネールピクチャの符号化バイトサイズは、picture_byte_size[tn_block_id]に等しい。
CP_Info_thumbnail()は、thumbnail_picture[tn_block_id]にストアされるサムネール画像のコンテンツ保護情報を示すN1バイトの情報である。コンテンツ保護情報については、図22の記録装置の処理に関連して後述する。
padding_byteは任意の値をもつ1バイトの値であり、NPの値は、次に示す式を満たすように計算される。
NP = tn_block_size × 1024 - picture_byte_size[tn_block_id] - N1
図17は、CP_Info_thumbnail()のシンタクスを示す。
CCI_thumbnailは、サムネール画像のコピーの世代管理情報(copy generation management information)を示す。値の意味を図18に示す。“00”は、copy free、“01”は、no more copy、“10”は、copy once、“11”は、copy prohibitedを示す。
APS_thumbnailは、サムネール画像をアナログビデオ出力する時のアナログ コピープロテクション情報を示す。値の意味を図19に示す。“00”乃至“11”のそれぞれのAPSの定義は、Default Settings of the Macrovision Anti-taping Process for DVD Products, Revision 1.0, July 5,1997 に記載されている。なお、2L/4L Colorstripe は、NTSCのアナログ出力の場合のみに適用可能である。
flag_need_AVstreamInfoは、サムネール画像がClip AVストリームの中の画像から作成された場合に、当該サムネール画像のコンテンツ保護情報として、Clip AVストリームの中のコンテンツ保護情報を参照する必要があるかどうかを示す。その値の意味を図20に示す。“1”は、「必要がある」を、“0”は、「必要がない」を、それぞれ示す。
CCI_thumbnail, APS_thumbnail以外のコンテンツ保護情報の具体例としては、将来、DTLAがDTCP_descriptorへ追加する情報が上げられる。2001年7月現在で、DTCP_descriptorはCCIとAPSの情報だけを持つが、将来、DTLAが、ビデオ信号に新しいコンテンツ保護情報を導入する場合に、そのビデオ信号に含まれる画像を使って作成したサムネール画像に対しても、その新しいコンテンツ保護情報を適用する必要が出てくるかもしれない。そのようになった場合に、このflag_need_AVstreamInfoを1にセットする。値が1の時、当該サムネール画像に関連づけられたマークのmark_time_stampが指し示すClip AVストリームの中の画像に対するコンテンツ保護情報(DTCP descriptor等)を、当該サムネール画像のコンテンツ保護情報として参照する必要がある。
CCI, APS以外のコンテンツ保護情報とは、例えば、ビデオコンテンツをアナログ再生する場合の解像度制限情報、ビデオコンテンツのコピー可能な期限情報などである。
Integrity_Check_Valueは、CP_Info_thumbnail()の内容が改竄されていないことを示すための符号である。これは、CP_Info_thumbnail()の第1バイト目からIntegrity_Check_Valueの直前のバイトまでのデータを入力として、所定の暗号アルゴリズムで計算した符号である。この暗号アルゴリズムは、例えば、ISO/IEC 9797(Information technology - Security techniques - Data integrity mechanism using a cryptographic check function employing a block cipher algorithm)に記載されているアルゴリズムを用いる。
もし、悪意を持ったユーザによって、CP_Info_thumbnail()の内容が改竄されたとしても、記録装置はIntegrity_Check_Valueの値を検査することにより、CP_Info_thumbnail()が改竄されたことを検出できる。もし、CP_Info_thumbnail()が改竄されたことを検出した場合は、もはや、CP_Info_thumbnail()は信じられないので、記録装置は、そのCP_Info_thumbnail()を持つサムネールを再生できないようにする。または、CP_Info_thumbnail()の内容を改竄できないようにするために、menu.tdatファイルおよびmark.tdatファイル全体をスクランブルしてもよい。
tn_block()のシンタクスが、図15に示すように、thumbnail_picture[tn_block_id]の後に、CP_Info_thumbnail()が続く形式になっている理由を説明する。それは、この形式にすることで、サムネール画像ファイル(menu.tdat / mark.tdat)の中でCP_Info_thumbnail()の開始位置をランダム化できるからである。もし、CP_Info_thumbnail()をthumbnail_picture[tn_block_id]の前に配置すると、CP_Info_thumbnail()が、サムネール画像ファイルの中でtn_block_size単位で規則的に現れる。CP_Info_thumbnail()をthumbnail_picture[tn_block_id]の後ろに配置すれば、thumbnail_picture[tn_block_id]のサイズは、サムネール画像のサイズによって可変であるので、CP_Info_thumbnail()の開始位置をランダムにできる。このことは、サムネール画像ファイルからCP_Info_thumbnail()の内容の取り出すことを難しくする効果がある。
なお、図21に示すように、CP_Info_thumbnail()をmenu.tidx / mark.tidxファイルの中にストアしても良い。
次に、図22に、AVストリームを記録するとともに、そのAVストリームの代表画像やマーク点の画像をサムネールに符号化して記録する、記録装置のブロック図を示す。
はじめに端子12,10からのビデオ、オーディオ入力をセルフエンコードしたAVストリームを記録する場合を説明する。マクロビジョン(商標)検出部13は、入力ビデオのアナログコピープロテクション信号(APS)を所定の方法で検出して、ビデオ信号の記録制限を行う。入力ビデオ信号にAPSが含まれていない場合だけ、そのビデオ信号を記録することができる。したがって、ビデオ信号を記録できる場合、そのAPSは、コピーフリー(00)である。
入力ビデオ信号がAPSを含まない場合、マクロビジョン検出部13は、入力ビデオをCGMS検出・更新部14へ供給する。CGMS検出・更新部14は、入力ビデオのCGMS(CGMS-AまたはCGMS-D)を所定の方法により解析して、記録するAVストリームのCCI(図の中でCCI_oで示す)をコントローラ21へ供給する。また、CGMS検出・更新部14は、入力ビデオをWM(Water Mark)検出・更新部15へ供給する。
WM検出・更新部15は、入力ビデオのWater Markを所定の方法により検出解析して、記録するAVストリームのWM(図の中でWM_oで示す)をコントローラ21へ供給する。また、WM検出・更新部15は、入力ビデオをMPEG2 AVエンコーダ16およびビデオ解析部18へ供給する。
MPEG2 AVエンコーダ16は入力ビデオ,オーディオ信号をエンコードして、ビデオストリームとオーディオストリームを多重化・ソースパケット化部17へ供給する。
コントローラ21は入力されるCCI_oおよびWM_oに基づいて、多重化・ソースパケット化部17へ多重化ストリームの中で符号化するE_CCI(Embedded CCI)の値を所定の方法により決定する。多重化・ソースパケット化部17はビデオストリームとオーディオストリームを多重化して、AVストリームをスクランブル部(暗号化部)22とストリーム解析部20へ供給する。
スクランブル部(暗号化部)22は、入力されるAVストリームを所定の方法で暗号化して、ECC符号化部23へ供給する。AVストリームは、ECC符号化部23,変調部24,ドライブ25の処理の後に、AVストリームファイルとして、情報記録媒体26へ記録される。
本記録装置は、AVストリームファイルを記録すると共に、そのファイルに関係するアプリケーションデータベース情報(info.dvr, PlayList, Clip Information, サムネール情報ファイル,サムネール画像ファイル)もまた記録する。アプリケーションデータベース情報は、コントローラ21により作成される。コントローラ21への入力情報は、ビデオ解析部18からのビデオ信号の特徴情報,ストリーム解析部20からのAVストリームの特徴情報,および端子11から入力されるユーザの指示情報である。
ビデオ解析部18からのビデオ信号の特徴情報は、記録装置が自動生成するものである。ビデオ解析部18は、入力ビデオ信号の内容を解析し、入力ビデオ信号の中の特徴的なマーク点の画像に関係する情報を生成する。例えば、入力ビデオ信号のプログラム開始点、シーンチェンジ点、CMのスタート・エンド点などのマーク点の画像の指示情報である。また、入力ビデオ信号の中で最初のマーク点の画像を、そのビデオ信号の代表画像(PlayListの代表画像)としても良い。
ビデオ解析部18は、ビデオ信号の中でマーク点の画像を指し示すタイムスタンプ(マークの位置)をコントローラ21へ入力する。サムネールエンコーダ19は、マーク点の画像をサムネール画像にエンコードして、それらサムネール画像をコントローラ21へ供給する。コントローラ21は、マーク点のタイムスタンプ、マーク点の画像に対応するCCI_oとWM_o,および、マーク点の画像のサムネール画像を関連付けて記憶する。また、コントローラ21は、マーク点の画像に対応するCCI_oとWM_oに基づいて、上述のCP_Info_thumbnail()のCCI_thumnailの値を所定の方法により決定する。
また、ストリーム解析部20は、マーク点のタイムスタンプが指し示すAVストリームの中の画像に対するコンテンツ保護情報(DTCP descriptor等)を検出する。そして、コンテンツ保護情報(DTCP_descriptor等)にCCI, APS以外のコンテンツ保護情報があるかどうかを解析する。CCI, APS以外のコンテンツ保護情報がある場合、マーク点のサムネール画像に対するCP_Info_thumbnail()(図17)のflag_need_AvstreamInfo=1にする。または、上記コンテンツ保護情報の中にCCI, APS以外のコンテンツ保護情報がない場合は、flag_need_AvstreamInfo=0にする。
入力ビデオ信号をセルフエンコードしたAVストリームを記録する場合のコピーコントロール処理をまとめたものを図23に示す。
入力信号のCGMSまたはWMが、“01”または“101”(no more copy)の場合、および、“11”(copy prohibited)の場合、入力ビデオ信号の記録は不可とされ、“10”(copy once)の場合、入力ビデオ信号が記録されるとともに、“01”または“101”(no more copy)に書き換えられる。入力ビデオ信号のCGMSまたはWMが、“00”(copy free)の場合、入力ビデオ信号が記録されるとともに、CGMSまたはWMは、そのままの値(“00”(copy free))とされる。
コントローラ21は、アプリケーションデータベース情報(info.dvr, PlayList file, Clip Information file, サムネール情報ファイル,サムネール画像ファイル)にストアするサムネールに関する情報を作成する。コントローラ21は、アプリケーションデータベース情報をスクランブル部22へ供給する。スクランブル部22は、入力されるアプリケーションデータベース情報を所定の方法で暗号化して、ECC符号化部23へ供給する。アプリケーションデータベース情報は、ECC符号化部23,変調部24,ドライブ25の処理の後に、アプリケーションデータベースファイルとして、情報記録媒体26へ記録される。
次に、端子27からのトランスポートストリーム(TS)入力を記録する場合を説明する。E_CCI(Embedded CCI)解析・更新部28は、入力TSの中に符号化されているE_CCI(Embedded CCI) を所定の方法により解析して、記録するAVストリームのCCI(図の中でCCI_oで示す)をコントローラ21へ供給する。また、E_CCI解析・更新部28は、入力TSをWM検出・更新部29へ供給する。
WM検出・更新部29は、入力ビデオのWater Markを所定の方法により解析して、記録するAVストリームのWM(図の中でWM_oで示す)をコントローラ21へ供給する。また、WM検出・更新部29は、入力TSを多重化・ソースパケット化部17へ供給する。多重化・ソースパケット化部17は入力TSをソースパケット列のストリームに変換し、それをストリーム解析部20とスクランブル部22へ供給する。
スクランブル部(暗号化部)22は、入力されるAVストリームを所定の方法でスクランブル(暗号化)して、ECC符号化部23へ供給する。AVストリームは、ECC符号化部23,変調部24,ドライブ25の処理の後に、AVストリームファイルとして、情報記録媒体26へ記録される。
また、端子27からの入力TSは、デコーダ30へ入力される。デコーダ30は入力TSのビデオストリームを復号して、ビデオ信号をビデオ解析部18へ供給する。ビデオ解析部18,サムネールエンコーダ19の処理は、上述した、端子12からの入力ビデオをセルフエンコード処理する場合と同様である。
ストリーム解析部20は、入力ストリームの中のコンテンツ保護情報(DTCP_descriptor等)を解析し、そして、アナログコピープロテクション情報(APS)を取り出し、それをコントローラ21へ供給する。そして、入力ストリームのマーク点画像に対応するAPSと、それら画像のサムネール画像のAPS_thumbnailは同じ値にセットされる。
CCI_thumbnailとflag_need_AvstreamInfoの値は、上述の入力ビデオをセルフエンコード記録する場合と同様にして、ストリーム解析部20により決定される。
入力TSを記録する場合のコピーコントロール処理をまとめたものを図24に示す。その内容は、実質的に、図23に示した場合と同様である。
コントローラ21は、アプリケーションデータベース情報をスクランブル部22へ供給する。スクランブル部22は、入力されるアプリケーションデータベース情報を所定の方法で暗号化して、ECC符号化部23へ供給する。アプリケーションデータベース情報は、ECC符号化部23,変調部24,ドライブ25の処理の後に、アプリケーションデータベースファイルとして、情報記録媒体26へ記録される。
AVストリームを記録するとともに、そのAVストリームの代表画像や特徴点画像をサムネールに符号化して記録する処理のフローチャートを図25に示す。
ステップS101で、マクロビジョン検出部13、CGMS検出更新部14、WM検出更新部15、E_CCI解析更新部28、およびWM検出更新部29は、入力信号(ビデオ信号またはTS)のCCIを解析する。
ステップS102で、MPEG2AVエンコーダ16および多重化ストリームソース化パケット部17は、入力信号をAVストリームに符号化する。
ステップS103で、ビデオ解析部18は、ビデオ信号を解析して、マーク点の画像(代表画像および特徴点画像)を検出する。
ステップS104で、コントローラ21は、マーク点の画像の取得する。
ステップS105で、サムネールエンコーダ19は、マーク点の画像をサムネール画像にエンコードする。
ステップS106で、コントローラ21は、マーク点のタイムスタンプが指し示すAVストリーム上の位置にあるコンテンツ保護情報(DTCP descriptor等)を解析する。
ステップS107で、コントローラ21は、サムネール画像のCP_Info_thumbnail()を作成する。具体的には上述したように、コントローラ21は、CCI_thumbnail, APS_thumbnail, flag_need_AvstreamInfoの値を決定する。
ステップS108で、コントローラ21は、アプリケーションデータベース情報にストアするサムネールに関する情報を作成する。
ステップS109で、スクランブル部22、ECC符号化部23、変調部24、およびドライブ25は、AVストリームとアプリケーションデータベース情報を、情報記録媒体26に記録する。
次に、図26に、記録されているAVストリームに対して、ユーザにより指定された画像のサムネールを付加して記録する、記録装置のブロック図を示す。
情報記録媒体75からドライブ74を介して読み出されたアプリケーションデータベースは、復調部73,ECC復号部72,デスクランブル部71の処理を経て、コントローラ69へ入力される。コントローラ69は、情報記録媒体75の記録内容を説明するメニュー画面を作成して、それをモニター(図示せず)へ出力し、表示する。ユーザは、端子61のUI入力を介して、再生したいPlayListを選択する。コントローラ69はユーザから指定されたPlayListを再生するために必要なAVストリームを情報記録媒体75から読み出すように指示する。
情報記録媒体75からドライブ74を介して読み出されたAVストリームファイルは、復調部73,ECC復号部72,デスクランブル部71の処理を経て、ソースデパケット化・分離部66へ入力される。ソースデパケット化・分離部66で分離されたビデオストリームはMPEG2AVデコーダ65で復号されて、ビデオ信号が出力される。ビデオ信号はCGMS挿入部64、マクロビジョン挿入部63で所定の処理が行われて、端子62からビデオ信号が出力されて、モニターへ出力、表示される。オーディオ信号は、端子70からスピーカ(図示せず)に出力される。
ユーザは、再生されるビデオの中からマークしたいシーン(例えば、お気に入りのシーン)を、端子61のUI入力を通してコントローラ69へ指示する。
マーク点に付加して記録するサムネール画像は、マーク点の画像から作成しても良いし、または、パーソナルコンピュータやデジタルスチルカメラなどから外部入力経由で記録装置へ取り込んだ画像から作成しても良い。
マーク点の画像からサムネール画像を作成する場合、コントローラ69は、ユーザがマークした画像のタイムスタンプを取得する。そして、コントローラ69は、マーク点の画像をMPEG2 AVデコーダ65から取得して、その画像をサムネールエンコーダ67へ入力させる。サムネールエンコーダ67はサムネール画像を符号化して、それをコントローラ69へ入力する。また、ソースデパケット化・分離部66は、マーク点のタイムスタンプが指し示すAVストリーム上の位置にあるコンテンツ保護情報(DTCP descriptor等)を取り出して、コントローラ69へ入力する。
コントローラ69は、そのコンテンツ保護情報(DTCP_descriptor等)を解析し、CCIとアナログコピープロテクション情報(APS)を取り出す。そして、マーク点の画像のサムネール画像に対するCP_Info_thumbnail()のCCI_thumbnailとAPS_thumbnailの値を、それぞれ上記のCCIとAPSと同じ値にセットする。また、コントローラ69は、上記のコンテンツ保護情報にCCI, APS以外のコンテンツ保護情報があるかどうかを解析する。CCI, APS以外のコンテンツ保護情報がある場合、コントローラ69は、マーク点のサムネール画像に対するCP_Info_thumbnail()のflag_need_AvstreamInfo=1にする。また、上記コンテンツ保護情報の中にCCI, APS以外のコンテンツ保護情報がない場合、コントローラ69は、flag_need_AvstreamInfo=0にする。
次に、マーク点に付加して記録するサムネール画像を、パーソナルコンピュータやデジタルスチルカメラなどの外部入力経由で記録装置へ取り込んだ静止画像から作成する場合の動作を説明する。コントローラ69は、外部入力端子85から静止画像を取得する。そして、コンテンツ保護情報検出部86が、入力画像のコンテンツ保護情報(CGMS, APS, DTCP descriptor等)を取り出して、コントローラ69へ入力する。コントローラ69は、そのコンテンツ保護情報を解析し、CCIとアナログコピープロテクション情報(APS)を取り出す。そして、コントローラ69は、サムネール画像に対するCP_Info_thumbnail()のCCI_thumbnailとAPS_thumbnailの値を、それぞれ上記のCCIとAPSと同じ値にセットする。コントローラ69は、flag_need_AvstreamInfoを、ゼロにセットする。そして、上記静止画像はサムネールエンコーダ67へ入力される。サムネールエンコーダ67はサムネール画像を符号化して、それをコントローラ69へ入力する。
サムネール画像とそのコンテンツ保護情報が作成できると、次に、コントローラ69は、アプリケーションデータベース情報(info.dvr, PlayList file, Clip Information file, サムネール情報ファイル,サムネール画像ファイル)にストアするサムネールに関する情報を作成する。コントローラ69は、アプリケーションデータベース情報をスクランブル部76へ供給する。スクランブル部76は、入力されるアプリケーションデータベース情報を所定の方法でスクランブル(暗号化)して、ECC符号化部77へ供給する。アプリケーションデータベース情報は、ECC符号化部77,変調部78,ドライブ74の処理の後に、アプリケーションデータベースファイルとして、情報記録媒体75へ記録される。
記録されているAVストリームに対して、ユーザにより指定された画像のサムネールを付加して記録する、処理のフローチャートを図27に示す。
ステップS201において、ユーザによって再生するPlayListが指定されると、コントローラ69は、この指定を入力する。
ステップS202において、コントローラ69はドライブ74を制御し、指定されたPlayListのビデオ信号を情報記録媒体75から再生させる。再生信号は、復調部73、ECC復号部72、デスクランブル部71、ソースデパケット化分離部66、MPEG2AVデコーダ65、CGMS挿入部64、およびマクロビジョン挿入部63の処理を経て、端子62(ビデオ信号)と端子70(オーディオ信号)から出力される。
ステップS203において、ユーザがマークしたいシーンを捜し、再生中あるいは一時停止中にマークボタンを押す。この操作に対応する信号は、端子61から、コントローラ69に入力される。
ステップS204において、コントローラ69は、ステップS203の処理で取り込まれたタイミングにおいて、出力表示されていた位置をマーク位置として決定する。
ステップS205において、コントローラ69は、端子62からメッセージを出力し、ユーザに対してマーク位置の画像をサムネールに使うか、またはサムネールに使う静止画像を端子85から取得するかを選択するように要求する。ユーザは、この要求に基づいて端子61から選択を入力する。コントローラ69は、ステップS205において、この選択に基づいてマーク位置の画像をサムネールに使うか否かを判定する。
マーク位置の画像をサムネールに使う場合には、ステップS206に進み、コントローラ69は、MPEG2AVデコーダ65の出力から、マーク位置に対応する画像を取得し、サムネールエンコーダ67に供給させる。
ステップS207において、コントローラ69は、ソースデパケット化分離部66の出力から、マーク位置のAVストリームのコンテンツ保護情報を取得する。
一方、ステップS205において、マーク位置の画像をサムネールに使わないと判定した場合、コントローラ69は、ステップS208に進み、サムネールに使う静止画像を端子85から取得する。そして、ステップS209において、コントローラ69は、コンテンツ保護情報検出部86の出力から、その静止画像のコンテンツ保護情報を取得する。
ステップS207またはステップS209の処理の後、ステップS210に進み、コントローラ69は、サムネールエンコーダ67にサムネール画像をエンコードさせる。
ステップS211において、コントローラ69は、サムネール画像のCP_Info_thumbnail()を作成する。具体的には上述したように、コントローラ69は、CCI_thumbnail, APS_thumbnail, flag_need_AvstreamInfoの値を決定する。
ステップS212において、コントローラ69は、アプリケーションデータベース情報にストアするサムネールに関する情報を作成する。
ステップS213において、コントローラ69は、アプリケーションデータベース情報を上述した場合と同様にして、情報記録媒体75に記録させる。
次に、図28に、AVストリームを再生するとともに、そのAVストリームの代表画像や特徴点画像のサムネールを再生する、再生装置のブロック図を示す。
情報記録媒体75からドライブ74を通して読み出されたアプリケーションデータベースは、復調部73,ECC復号部72,デスクランブル部71の処理を経て、コントローラ69へ入力される。
コントローラ69は、ビデオ出力へ表示するサムネール画像を決定する。例えば、あるPlayListの代表画像のサムネールを表示することを決める。
コントローラ69は、再生するサムネール画像に対するCP_Info_thumbnail()を取得する。そのflag_need_AVstreamInfoが1である場合は、当該サムネール画像に関連づけられたマークのmark_time_stampが指し示すClip AVストリームの中の画像に対するコンテンツ保護情報(DTCP descriptor等)を、情報記録媒体75から読み出す必要がある。
コントローラ69は、当該サムネール画像をサムネールデコーダ80へ入力し、デコード画像をグラフィックス画像処理部81へ入力する。ここで、当該サムネール画像に対するflag_need_AVstreamInfoが1の場合は、上記読み出したコンテンツ保護情報に従って、サムネールの再生制限をする必要がある。例えば、コンテンツ保護情報が、ビデオコンテンツをアナログ再生する場合の解像度制限情報を持つ場合、それに基づいて、サムネールの再生制限をしなければならない。グラフィックス画像処理部81からの出力画像は、画像ブレンダ処理部82で処理されて、CGMS挿入部64へ入力される。
CGMS挿入部64は、当該サムネール画像に対するCP_Info_thumbnail()のCCI_thumbnailと同じ意味を表すCGMS信号を、出力画像に挿入する。次に、マクロビジョン挿入部63は、CP_Info_thumbnail()のAPS_thumbnailと同じ意味を表すアナログコピープロテクション信号を、出力画像に挿入する。そして、端子62からビデオが再生される。
AVストリームの代表画像や特徴点画像のサムネールを再生する、再生動作のフローチャートを、図29に示す。
ステップS301において、コントローラ69は、アプリケーションデータベース情報ファイルを読み出す。すなわち、情報記録媒体75からドライブ74により読みだされたデータが、復調部73、ECC復号部72の処理を経て、デスクランブル部71に供給され、デスクランブルされる。コントローラ69は、デスクランブル部71の出力から、アプリケーションデータベース情報ファイルを取得する。
また、デスクランブル部71より出力されたデータは、ソースデパケット化分離部66、MPEG2AVデコーダ65、画像ブレンダ処理部82、CGMS挿入部64、およびマクロビジョン挿入部63の処理を介して、端子62と端子70から出力される。
ステップS302において、コントローラ69は、端子61からのユーザの指令に基づいて、再生するサムネール画像を決定する。
ステップS303において、コントローラ69は、再生するサムネール画像のCP_Info_thumbnail()を取得する。
ステップS304において、コントローラ69は、flag_need_AVstreamInfoが1か否かを判定し、1の場合は、マーク位置のAVストリームのコンテンツ保護情報を読み出す。
ステップS305において、デスクランブル部71はサムネールを復号(デスクランブル)する。
ステップS306において、コントローラ69は、flag_need_AVstreamInfoが1の場合は、ステップS304の処理で読み出したコンテンツ保護情報に従って、サムネールの再生制限をする。例えば、コンテンツ保護情報が、ビデオコンテンツをアナログ再生する場合の解像度を制限することを規定している場合、コントローラ69は、グラフィックス画像処理部81を制御し、サムネールの解像度を制限させる。あるいはまた、グラフィックス画像処理部81は、コントローラ69の制御に基づいて、サムネールの画枠を縮小する。
ステップS307において、コントローラ69は、CGMS挿入部64とマクロビジョン挿入部63を制御し、CP_Info_thumbnail()に従って、CGMSとマクロビジョン(アナログコピープロテクション信号(CAPS))を、サムネールの表示画像に付加させる。この付加処理も、一種の制限となる。
ステップS308において、コントローラ69は、サムネールの表示画像を端子62からビデオ出力させる。
図30は、コピー元(出力側)の再生装置101から、コピー先(入力側)の記録装置102へ、DVRのAVストリームファイルとそれに関係するデータベースファイルを、ディジタルバス103経由でコピーする場合の構成を示すブロック図である。
まず、再生装置101の情報記録媒体201に記録されている所望のPlayListを、記録装置102の情報記録媒体310へコピーすることを指示する情報が、図示しないユーザインタフェースを介して、コピー制御コマンドに乗って、再生装置101へ入力される。このコマンドは、ディジタルバスインタフェース205、バスコントローラ207を経由して、制御部208へ入力される。
制御部208は、上記PlayListの再生に必要なAVストリームのストリーム部分を決定し、そのAVストリームデータを情報記録媒体201から読み出すように、ドライブ202に指示を出す。また、制御部208は、上記PlayListに関係するデータベースファイル(PlayListファイル、Clip Information fileとサムネールファイル)を情報記録媒体201から読み出すように、ドライブ202に指示を出す。
制御部208は、復調部203、ECC復号部204の処理を経て読み出された前記AVストリームデータを、AVストリームファイルとして、ディジタルバスインタフェース205へ供給するように指示する。
一方、情報記録媒体201から読み出されたAVストリームデータに対応するデータベースファイルが、復調部203、ECC復号部204を経て、メモリ206へ入力される。制御部208は、メモリ206にあるデータを元にして、ディジタルバスインタフェース205から出力される上記のAVストリームファイルの再生に必要なデータベース(Clip Informationファイル,PlayListファイル)を作成する。また、制御部208は、上記のAVストリームファイルに対応するClipとコピーするPlayListファイルが使用するサムネールファイルを作成する。
そして、制御部208は、上記新たに作成されたデータベースファイル(Clip Informationファイル,PlayListファイルとサムネールファイル)をメモリ206からディジタルバスインタフェース205へ供給するように指示する。
バスコントローラ207は、ディジタルインタフェース205からのファイル出力を制御する。制御部208は、バスコントローラ207に対して、ディジタルバスインタフェース205から、AVストリームファイルとデータベースファイルを出力するように指示する。
前記AVストリームファイルと前記データベースファイルは、ディジタルバス103を経由して、コピー先の記録装置102へ入力される。
コピー先の記録装置102のバスコントローラ302は、ディジタルバスインタフェース301からのファイル入力を制御する。また、バスコントローラ302とバスコントローラ207は、ファイルのコピー制御コマンドを交換して、データ伝送/受信のタイミングを制御する。
記録装置102の制御部308は、ディジタルバスインタフェース301へ入力されるAVストリームファイルを、ECC符号化部304、変調部305、ドライブ309の処理を経て、情報記録媒体310に記録するように指示する。
また、制御部308は、ディジタルバスインタフェース301へ入力されるデータベースファイルを、メモリ303へ書きこむように指示する。
また、制御部308は、情報記録媒体310に記録されているデータベースファイル(Info.dvrファイルとサムネールファイル)を、ドライブ309、復調部307、ECC復号部306の処理を経て、メモリ303へ読み出すように指示する。
そして、制御部308は、メモリ303にあるInfo.dvrファイルとサムネールファイルを更新する。具体的には、コピー先にあるInfo.dvrファイルのTableOfPlayListに、新たに記録するPlayListファイル名を追加し、また、コピー先にあるサムネールファイルに新たに記録するサムネールを追加する。
制御部308は、メモリ303にあるデータベースファイルを読み出して、ECC符号化部304、変調部305、ドライブ309の処理を経て、情報記録媒体310に記録するように指示する。
図31は、コピー元(出力側)の再生装置101から、コピー先(入力側)の記録装置102へ、サムネール画像をコピーする場合の、コピー元の処理を説明するフローチャートである。
ステップS701で、制御部208は、アプリケーションデータベース情報ファイル(図13)を読み出す。すなわち、制御部208は、ドライブ202を制御し、情報記録媒体201から、アプリケーションデータベース情報ファイルの読み出しを指令する。情報記録媒体201から読み出されたアプリケーションデータベース情報ファイルは、復調部203、ECC復号部204の処理を経て、メモリ206に供給され、記憶される。制御部208は、メモリ206に記憶されたアプリケーションデータベース情報ファイルを読み取る。
ステップS702で、制御部208は、ユーザからの指示に基づいて、コピー先へ転送するするサムネール画像を選択する。
ステップS703で、制御部208は、メモリ206に記憶されたアプリケーションデータベース情報ファイル(menu.tidx/mark.tidx)から、ステップS702で選択された上記サムネール画像のCP_Info_thumbnail()(図16と図17)を取得する。
ステップS704で、制御部208は、flag_need_AvstreamInfo(図17)が1か否かを判定し、1の場合は、マーク位置のAVストリームのコンテンツ保護情報を読み出す。
ステップS705で、制御部208は、flag_need_AvstreamInfo(図17)が1か否かを判定し、1の場合は、上記コンテンツ保護情報に従って、サムネールのコピー制限をする。例えば、コンテンツ保護情報が、コピー可能な期限情報を持つ場合、制御部208は、それに基づいて、サムネールのコピー制限を実行する。
ステップS706で、制御部208は、CP_Info_thumbnail()のCCI_thumbnail(図17)がCopy freeでない場合は、そのサムネールのコピーを禁止する。
ステップS707で、制御部208は、コピー可能なサムネール画像についてのサムネール画像ファイル(menu.tdat/mark.tdat)とサムネール情報ファイル(menu.tidx/mark.tidx)を作成する。
ステップS708で、制御部208は、サムネール画像ファイルとサムネール情報ファイルをコピー先へ転送する。
以上のように、AVストリームを記録するとともに、そのAVストリームの代表画像や特徴点を表すサムネール画像を記録する場合において、本発明では、サムネール画像に、そのコンテンツ保護情報を付加して記録することができる。
当該コンテンツ保護情報は、少なくともコピー世代管理情報(CCI)とアナログコピープロテクション情報(APS)の1つを含む。
例えば、AVストリーム中の特徴点の画像を使用してサムネール画像を作成する場合、AVストリーム中の前記特徴点の画像に対するコンテンツ保護情報に基づいて、サムネール画像のコンテンツ保護情報が作成される。
また、当該サムネール画像のコンテンツ保護情報は、サムネール画像がAVストリームの中の画像から作成された場合、AVストリームの中のコンテンツ保護情報を参照する必要があるかどうかを示す識別子(flag_need_AvstreamInfo)を含む。これにより、サムネール画像のコンテンツ保護情報として、CCIとAPS以外の情報が必要である場合にも対応できるようになる。
このようにして、サムネール画像に、そのコンテンツ保護情報を付加して記録するので、サムネール画像の著作権を守って記録することができる。
サムネール画像とそのコンテンツ保護情報を、所定の大きさのブロック(tn_block)単位で記録する。これにより、サムネールの追加操作と部分削除の操作を容易に高速に実行できる。
また、サムネール画像の後に続いて、そのコンテンツ保護情報をストアする形式で記録するようにした場合、それにより、サムネール画像のサイズは可変であるため、コンテンツ保護情報の前記ブロックの中での開始位置をランダムにできる。このことは、サムネール画像ファイルからコンテンツ保護情報の内容を取り出すことを難しくする効果がある。
サムネール画像のフォーマットはJPEGを使用する。JPEGはデファクトスタンダードとして広く使用されているので、インプリメントが比較的容易であり、互換性が高い。なお、サムネール画像のフォーマットはJPEGに限らず、MPEGのI-pictureやPNG, GIF, TIFF等を用いても構わない。
AVストリームとともに、そのAVストリームの代表画像や特徴点を表すサムネール画像が記録されている情報記録媒体からサムネール画像を再生する場合において、本発明では、サムネール画像に付加して記録されているコンテンツ保護情報に基づいて、サムネール画像の再生制限を行う。すなわち、再生信号にコピー世代管理信号やアナログコピープロテクション信号を付加して再生する。さらに、AVストリームの中のコンテンツ保護情報に基づいて、サムネール画像の再生制限を行う。このようにして、そのサムネール画像の不正なコピーを防ぐことができる。
AVストリームとともに、そのAVストリームの代表画像や特徴点を表すサムネール画像が記録されている情報記録媒体の再生装置から、AVストリームとそのサムネール画像を別の情報記録媒体へコピーする場合において、本発明では、サムネール画像に付加して記録されているコンテンツ保護情報に基づいて、サムネール画像のコピー制限を行う。すなわち、サムネール画像のコピー世代管理情報(CCI)の制限を守るように、サムネール画像をコピーして良いかどうかを判断する。さらに、AVストリームの中のコンテンツ保護情報に基づいて、サムネール画像のコピー制限を行う。
これにより、ビデオ信号と共にそのサムネール画像をコピーするというアプリケーションを、サムネール画像の著作権を守りながら実現できる。AVストリームだけしかコピーできない場合に比べると、コピーしたAVストリームにユーザが新たにサムネール画像を付加する手順が不要になるので、有用である。
13 マクロビジョン検出部, 14 CGMS検出更新部, 15 WM検出更新部, 17 多重化ソースパケット化部, 18 ビデオ解析部, 19 サムネールエンコーダ, 20 ストリーム解析部, 21 コントローラ, 22 スクランブル部, 26 情報記録媒体, 28 E_CCI解析更新部, 29 WM検出更新部, 30 デコーダ