以下、添付の図面を参照して、本発明によるデータ処理装置の実施形態を説明する。実施形態においては、データ処理装置は光ディスクレコーダであるとして説明する。
図1は、本実施形態による光ディスクレコーダ100と他の機器とによって形成されるシステムの構成を示す。光ディスクレコーダ100(以下「レコーダ100」と記述する)は、放送番組の映像および音声に関する動画のデータストリームをブルーレイディスク(Blu−ray Disc;BD)114に記録する録画機能を有する。またレコーダ100は、BD114に記録されたデータストリームを読み出して動画を再生する再生機能も有する。図1では、レコーダ100の録画機能および再生機能に関連して連携することが可能な他の機器を示している。レコーダ100の録画機能および再生機能に関する処理は、リモコン116や、レコーダ100本体のボタン(図示せず)等を利用してユーザが与えた指示に基づいて行われる。なお、BDには青色半導体レーザを利用してデータが書き込まれ、読み出される。本明細書においてはBDの階層構造およびBDの記録/再生機能に関する装置の構成を説明する。しかしこれは例であり、BD以外の記録媒体、例えばHD−DVDを用いてもよい。
まず、レコーダ100の録画機能に関連する処理を説明する。レコーダ100は、デジタル放送番組に関するデジタル信号を受信するアンテナ102a、および、アナログ放送番組に関するアナログ信号を受信するアンテナ102bと接続され、デジタル信号およびアナログ信号を受信する。レコーダ100は、例えば同軸ケーブル104を介してデジタル信号およびアナログ信号を受け取る。
デジタル信号は、MPEG−2トランスポートストリーム(以下「トランスポートストリーム」または「TS」と記述する)として伝送されている。TSを受信した場合には、レコーダ100は、そのTSに所定の処理を行い、後述するTSのパケット構造を保持しながらBD114に記録する。アナログ信号を受信した場合には、レコーダ100は、そのアナログ信号から得られた動画のデータを圧縮符号化してTSを生成し、そのTSをBD114に記録する。さらにレコーダ100は、SDメモリカードやメモリースティック(登録商標)等のメモリカード112に放送番組を録画することもでき、また、メモリカード112に記録された静止画データをBD114にコピーすることもできる。本明細書では、後に動画とともに静止画を管理するためのBD114のデータ構造およびそのデータ構造に関連する処理を説明する。
次に、レコーダ100の再生機能に関連する処理を説明する。レコーダ100はBD114に記録された映像および音声を復号化し、TV106、スピーカ(図示せず)等を介して再生する。この映像および音声は放送番組に限られることはなく、例えばカムコーダ110によって記録された映像および音声であってもよい。なお、映像および音声が記録されたBD114は、レコーダ100から取り出されてPC108等の他の機器に装填され、その機器が再生してもよい。
ここで、図2〜図4を参照しながら、デジタル放送信号として伝送されるトランスポートストリームのデータ構造を説明する。
図2は、トランスポートストリーム(TS)20のデータ構造を示す。TSパケットは、例えば、圧縮されたビデオデータが格納されたビデオTSパケット(V_TSP)30、圧縮されたオーディオデータが格納されたオーディオTSパケット(A_TSP)31の他、番組表(プログラム・アソシエーション・テーブル;PAT)が格納されたパケット(PAT_TSP)、番組対応表(プログラム・マップ・テーブル;PMT)が格納されたパケット(PMT_TSP)およびプログラム・クロック・リファレンス(PCR)が格納されたパケット(PCR_TSP)等を含む。各TSパケットのデータ量は188バイトである。また、PAT_TSP、PMT_TSP等のTSの番組構成を記述するTSパケットを一般に、PSI/SIパケットと呼ぶ。
以下、本発明の処理に関連するビデオTSパケットおよびオーディオTSパケットを説明する。図3(a)はビデオTSパケット30のデータ構造を示す。ビデオTSパケット30は、4バイトのトランスポートパケットヘッダ30a、および、184バイトのトランスポートパケットペイロード30bを有する。ペイロード30bにはビデオデータ30bが格納されている。一方、図3(b)は、オーディオTSパケット31のデータ構造を示す。オーディオTSパケット31も同様に、4バイトのトランスポートパケットヘッダ31a、および、184バイトのトランスポートパケットペイロード31bを有する。オーディオデータ31bはトランスポートパケットペイロード31bに格納されている。
上述の例から理解されるように、一般にTSパケットは4バイトのトランスポートパケットヘッダと、184バイトのエレメンタリデータとから構成されている。パケットヘッダには、そのパケットの種類を特定するパケット識別子(Packet IDentifier;PID)が記述されている。例えば、ビデオTSパケットのPIDは“0x0020”であり、オーディオTSパケットのPIDは“0x0021”である。エレメンタリデータは、ビデオデータ、オーディオデータ等のコンテンツデータや、再生を制御するための制御データ等である。どのようなデータが格納されているかは、パケットの種類に応じて異なる。
以下、ビデオデータを例に挙げて、映像を構成するピクチャとの関係を説明する。図4(a)〜(d)は、ビデオTSパケットからビデオピクチャを再生する際に構築されるストリームの関係を示す。図4(a)に示すように、TS40は、ビデオTSパケット40a〜40dを含む。なお、TS40には、他のパケットも含まれ得るが、ここではビデオTSパケットのみを示している。ビデオTSパケットは、ヘッダ40a−1に格納されたPIDによって容易に特定される。
ビデオデータ40a−2等の各ビデオTSパケットのビデオデータから、パケット化エレメンタリストリームが構成される。図4(b)は、パケット化エレメンタリストリーム(PES)41のデータ構造を示す。PES41は、複数のPESパケット41a、41b等から構成される。PESパケット41aは、PESヘッダ41a−1およびPESペイロード41a−2から構成されており、これらのデータがビデオTSパケットのビデオデータとして格納されている。
PESペイロード41a−2は、それぞれが1つのピクチャのデータを含んでいる。PESペイロード41a−2から、エレメンタリストリームが構成される。図4(c)は、エレメンタリストリーム(ES)42のデータ構造を示す。ES42は、ピクチャヘッダ、および、ピクチャデータの組を複数有している。なお、「ピクチャ」とは一般にフレームおよびフィールドのいずれも含む概念として用いられる。
図4(c)に示すピクチャヘッダ42aには、その後に配置されたピクチャデータ42bのピクチャ種別を特定するピクチャコーディングタイプが記述され、ピクチャヘッダ42cにはピクチャデータ42dのピクチャ種別を特定するピクチャコーディングタイプが記述されている。種別とは、Iピクチャ(Intra−coded picture)、Pピクチャ(Predictive−coded picture)またはBピクチャ(Bidirectionally−predictive−coded picture)を表す。種別がIピクチャであれば、そのピクチャコーディングタイプは、例えば“001b”である。
ピクチャデータ42b、42d等は、そのデータのみによって、または、そのデータとその前および/または後に復号化されるデータとによって構築可能な1枚分のフレームのデータである。例えば図4(d)は、ピクチャデータ42bから構築されるピクチャ43aおよびピクチャデータ42dから構築されるピクチャ43bを示す。
TSに基づいて映像を再生する際、レコーダ100はビデオTSパケットを取得して上述の処理にしたがってピクチャデータを取得し、映像を構成するピクチャを取得する。これにより映像をTV106上に再生することができる。
次に、図5を参照しながら、本実施形態によるレコーダ100の構成を説明する。図5は、レコーダ100の機能ブロックの構成を示す。レコーダ100は、記録媒体としてBD205aのみならず、ハードディスク205bをも有している。すなわちレコーダ100は、HDD205bを内蔵したBDレコーダである。
レコーダ100は、デジタルチューナ201aおよびアナログチューナ201bと、ADコンバータ202と、MPEG−2エンコーダ203と、TS処理部204と、MPEG−2デコーダ206と、グラフィック制御部207と、メモリ208と、DAコンバータ209と、CPUバス213と、ネットワーク制御部214と、指示受信部215と、インターフェース(I/F)部216と、メモリカード制御部217と、システム制御部250とを含む。なお、図5には、光ディスク205aがレコーダ100内に記載されているが、光ディスク205aは光ディスクレコーダ100から取り外し可能であり、レコーダ100自体の構成要素ではない。
以下、各構成要素の機能を説明する。デジタルチューナ201aは、アンテナ102a(図1)から1以上の番組が含まれるデジタル信号を受け取る。デジタル信号として伝送されるトランスポートストリームには複数の番組のパケットが混在している。複数の番組のパケットを含むトランスポートストリームは“フルTS”と呼ばれる。デジタルチューナ201aは、選局を行ってフルTSから必要な番組のパケットのみを取り出し、“パーシャルTS”として出力する。
フルTSから所望のチャンネルのパケットを取り出す手順は以下のとおりである。いま、希望の番組の番組番号(チャンネル番号)をXとする。まずはじめに、フルTSから番組表パケット(図2のPAT_TSP)が検索される。番組表パケットのパケットID(PID)には、必ず0が与えられているので、その値を有するパケットを検索すればよい。番組表パケット内の番組表には、各番組番号と、その番組番号に対応する各番組の番組対応表パケット(図2のPMT_TSP)のPIDが格納されている。これにより、番組番号Xに対応する番組対応表PMTのパケットID(PID)を特定できる。番組対応表PMTのPIDをXXとする。
次に、PID=XXが付された番組対応表パケット(図2のPMT_TSP)を抽出すると、番組番号Xに対応する番組対応表PMTが得られる。番組対応表PMTには、番組ごとに、視聴の対象として各番組を構成する映像・音声情報等が格納されたTSパケットのPIDが格納されている。例えば、番組番号Xの映像情報のPIDはXVであり、音声情報のPIDはXAである。このようにして得られた映像情報を格納したパケットのPID(=XV)と、音声情報を格納したパケットのPID(=XA)とを利用して、フルTSから特定の番組に関する映像・音声のパケットを抽出できる。
なお、フルTSからパーシャルTSを生成する際には、必要な映像・音声情報を格納したパケットを取り出すだけでなく、PSI(Program Specific Information)パケットおよびSI(Service Information)パケットも抽出および変更する必要がある。PSIパケットとは、図2に示す番組表パケット(PAT_TSP)および番組対応表パケット(PMT_TSP)等を総称するパケットである。PSIパケットを修正する理由は、フルTSとパーシャルTSとでは含まれる番組数等が異なるため、番組表および番組対応表をパーシャルTSに適合させる必要が生じるからである。一方、SIパケットとは、フルTSに含まれる番組の内容、スケジュール/タイミング等を記述するデータ、独自に定義された拡張情報(これらは「番組配列情報」とも呼ばれる)等を含むパケットである。フルTSではSIパケットに含まれるデータは20〜30種類にも上る。これらのデータのうち、パーシャルTSの再生等に関して重要なデータのみが抽出されて1つのSITパケットが生成され、パーシャルTS内に多重化される。またパーシャルTSでは、SITパケットにはそのストリームがパーシャルTSであることを示す情報(partial transport stream descriptor)が格納されている。パーシャルTS内にSITパケットを多重化することは慣用されている。これは、欧州/日本のデジタル放送規定(DVB/ARIB)との整合性のためである。
アナログチューナ201bは、アンテナ102b(図1)からアナログ信号を受け取り、周波数に基づいて選局を行って必要な番組の信号を取り出す。そして番組の映像および音声信号をADコンバータ202に出力する。なお、図1ではレコーダ100は同軸ケーブル104を介してデジタル信号およびアナログ信号を取得しているため、図5に入力される信号系統は厳密には1本である。しかし、デジタル信号およびアナログ信号は周波数によって容易に分離できるため、図5ではデジタル信号およびアナログ信号が別系統で入力されているように記載している。
ADコンバータ202は入力された信号をデジタル変換してMPEG−2エンコーダ203に供給する。MPEG−2エンコーダ203(以下「エンコーダ203」と記述する)は、録画の開始指示を受け取ると、供給されたアナログ放送のデジタルデータをMPEG−2形式に圧縮符号化してトランスポートストリームを生成し、TS処理部204に入力する。この処理は、エンコーダ203が録画の終了指示を受け取るまで継続される。エンコーダ203は圧縮符号化を行うために、参照ピクチャ等を一時的に保持するバッファ(図示せず)等を有している。
TS処理部204は、動画の記録時にはパーシャルTSを受け取り、クリップAVストリーム(ClipAVストリーム)を生成し、BD205aおよび/またはHDD205bに記録する。クリップAVストリームとは、BD205aおよび/またはHDD205bに記録するための形式を有するデータストリームである。クリップAVストリームは複数の「ソースパケット」から構成されており、「ソースパケット」はパーシャルTSを構成する各TSパケットに所定のヘッダを付加して生成される。なお、クリップAVストリームを生成する際の処理の詳細は、図7(a)〜(e)に関連して後述する。
TS処理部204は、動画の再生時には、BD205aおよび/またはHDD205bからクリップAVストリームを読み出し、そのクリップAVストリームに基づいてパーシャルTSを生成してMPEG−2デコーダ206に出力する。
また、TS処理部204は、後述するメモリカード制御部217からメモリカード112に格納された静止画データを受け取り、その静止画を加工することなくそのままBD205aおよび/またはHDD205bに記録する。また、BD205aおよび/またはHDD205bに記録された静止画データを読み出してデコーダ206に出力することもできる。TS処理部204のさらに具体的な構成および動作は、後に図6および図7を参照しながら詳述する。なお、本明細書では、TS処理部204がBD205aおよび/またはHDD205bにデータを記録し、またはそれらからデータを読み出すとして説明しているが、これは説明の便宜のためである。BD205aやHDD205bに対するストリームの書き込みや読み出しは、実際には、ディスクの回転、ヘッドの移動とともに各々のドライブ装置に設けられたコントローラ(図示せず)が行っている。
MPEG−2デコーダ206(以下「デコーダ206」と記述する)は、供給されたパーシャルTSを解析してMPEG−2圧縮符号化データを取得する。そして、その圧縮符号化データを伸長して非圧縮データに変換し、グラフィック制御部207に供給する。また、デコーダ206は、MPEG−2規格の圧縮符号化データのみならず、例えばJPEG規格に従った静止画データも非圧縮データに変換することができる。グラフィック制御部207には内部演算用のメモリ208が接続されており、オン・スクリーン・ディスプレイ(On Screen Display;OSD)機能を実現できる。例えば、グラフィック制御部207は種々のメニュー画像と映像とを合成してDAコンバータ209に出力することができる。DAコンバータ209は、入力されたOSD合成画像および音声データをアナログ変換して出力する。出力先は、例えばTV106である。
CPUバス213はレコーダ100内の信号を伝送する経路であり、図示されるように各機能ブロックと接続されている。また、CPUバス213には、後述するシステム制御部250の各構成要素も接続されている。
ネットワーク制御部214は、レコーダ100をインターネット等のネットワーク101に接続するためのインターフェイスであり、例えば、イーサネット(登録商標)規格に準拠した端子およびコントローラである。ネットワーク制御部214は、ネットワーク101を介してデータを授受する。このデータは、例えば放送番組に関する番組表のデータや、レコーダ100の動作を制御するためのソフトウェアプログラムの更新データである。
指示受信部215は、レコーダ100の本体部に設けられた操作ボタン、または、リモートコントローラからの赤外線を受光する受光部である。指示受信部215は、ユーザから、例えば録画の開始/停止、録画した番組の再生の開始/停止等の指示や、装填されたメモリカード112の静止画をBD205aまたはHDD205bにコピーする指示を与える。
インターフェース(I/F)部216は、レコーダ100が他の機器と通信するためのコネクタおよびその通信を制御する。I/F部216は、例えばUSB2.0規格の端子、IEEE1394規格の端子および各規格によるデータ通信を可能とするコントローラを含み、各規格に準拠した方式でデータを授受することができる。例えば、レコーダ100は、USB2.0規格の端子を介してPC108や、カムコーダ(図示せず)等と接続され、IEEE1394規格の端子の端子を介してデジタルハイビジョンチューナや、カムコーダ(図示せず)等と接続される。
メモリカード制御部217は、メモリカード112をレコーダ100に装填するためのスロット、および、レコーダ100とメモリカード112との間のデータ通信を制御するコントローラである。メモリカード制御部217は、装填されたメモリカード112から静止画データファイル、動画データファイル等を読み出して、CPUバス213に伝送する。
システム制御部250は、レコーダ100内の信号の流れを含む全体的な処理を制御する。システム制御部250は、プログラムROM210と、CPU211と、RAM212とを有している。それぞれはCPUバス213に接続されている。プログラムROM210にはレコーダ100を制御するためのソフトウェアプログラムが格納されている。
CPU211は、レコーダ100の全体の動作を制御する中央制御ユニットである。CPU211は、プログラムを読み出して実行することにより、プログラムに基づいて規定される処理を実現するための制御信号を生成し、CPUバス213を介して各構成要素に出力する。メモリ212は、CPU211がプログラムを実行するために必要なデータを格納するためのワーク領域を有する。例えば、CPU211は、CPUバス213を使用してプログラムROM210からプログラムをランダムアクセスメモリ(RAM)212に読み出し、そのプログラムを実行する。なお、コンピュータプログラムは、CD−ROM等の記録媒体に記録して市場に流通され、または、インターネット等の電気通信回線を通じて伝送される。これにより、PC等を利用して構成されたコンピュータシステムを、本実施形態によるレコーダ100と同等の機能を有するデータ処理装置として動作させることができる。
図6は、TS処理部204の詳細な機能ブロックの構成を示す。TS処理部204は、ソース・パケタイザ261と、クロックカウンタ262と、PLL回路263と、バッファ264と、ソース・デ・パケタイザ265とを有する。
ソース・パケタイザ261は、パーシャルTSを受け取り、そのパーシャルTSを構成するTSパケットの前に所定のヘッダを付加してソースパケットを生成して出力する。ヘッダには、そのTSパケットを受信した時刻(すなわちそのTSパケットの到着時刻)を示す時刻情報ATS(Arrival Time Stamp)が含まれている。TSパケットの到着時刻は、ソース・パケタイザ261に与えられる基準時刻からのカウント値(カウント情報)に基づいて特定される。TSパケットの到着時刻に関する情報を含める理由は、図7を参照しながら後述する。
クロックカウンタ262およびPLL回路263は、ソース・パケタイザ261がTSパケットの到着時刻を特定するために必要な情報を生成する。まずPLL回路263は、パーシャルTSに含まれるPCRパケット(図2のPCR_TSP)を抽出して、基準時刻を示すPCR(Program Clock Reference:プログラム時刻基準参照値)を取得する。PCRの値と同じ値がレコーダ100のシステム基準時刻STC(System Time Clock)として設定され、STCが基準時刻とされる。システム基準時刻STCのシステムクロックの周波数は27MHzである。PLL回路263は、27MHzのクロック信号をクロックカウンタ262に出力する。クロックカウンタ262はクロック信号を受け取り、そのクロック信号をカウント情報としてソース・パケタイザ261に出力される。
バッファ264は、ライトバッファ264aおよびリードバッファ264bを有する。ライトバッファ264aは、送られてきたソースパケットを逐次保持し、合計のデータ量が所定値(例えばバッファの全容量)になったときに、書き込みのためにBD205a等に出力する。このとき出力される一連のソースパケット列(データストリーム)を、クリップAVストリームと呼ぶ。一方、リードバッファ264bは、BD205a等から読み出されたクリップAVストリームを一時的にバッファして、ソースパケット単位で出力する。
ソース・デ・パケタイザ265は、ソースパケットを受け取ってTSパケットに変換し、パーシャルTSとして出力する。留意すべきは、ソース・デ・パケタイザ265は、クロックカウンタ262から与えられるタイミング情報と、ソースパケットに含まれていたTSパケットの到着時刻情報ATSとに基づいて、元の到着時刻に対応する時間間隔でTSパケットを出力することである。これにより、TS処理部204は、記録時のTSパケットの到着タイミングと同じタイミングで、TSパケットを出力することができる。なお、ソース・デ・パケタイザ265は、読み出したパーシャルTSの基準時刻を指定するために、例えば最初のソースパケットにおいて指定されている到着時刻を初期値としてクロックカウンタ262に送る。これにより、クロックカウンタ262においてその初期値からカウントを開始させることができ、よってその後のカウント結果をタイミング情報として受け取ることができる。
ここで、図7を参照しながら、TS処理部204において行われる処理を具体的に説明する。図7(a)〜(e)は、トランスポートストリームとクリップAVストリームとの関係を示す。参考のため、図7(a)にフルTS70を示している。フルTS70は、TSパケットが連続して配置されており、例えば3つの番組X,YおよびZのデータを含む。図7(b)は、デジタルチューナ201aによってフルTS70から生成されたパーシャルTS71を示す。パーシャルTS71は、連続したフルTSから一部のパケットを取り出したストリームであるため、パケットが時間的に離散して存在している。このパケットの間隔は、フルTSの送信側によって調整されており、デコーダにおいてデコードが適正に行われるために必要な条件を満たす。この「条件」とは、MPEG−2TSの理想モデルとして規定されたT−STD(TSシステムターゲットデコーダ;TS System Target Decoder)のバッファメモリがオーバーフローおよびアンダーフローを引き起こさないためにMPEG規格上定められた条件である。
パーシャルTS71は、例えば番組Xに関するTSパケットを含んでいる。
図7(c)は、クリップAVストリーム72を示す。クリップAVストリーム72は、ソースパケットが連続して配列されている。各ソースパケットは、ソースパケット番号(SPN)#1、2、3・・・で区別される。
図7(d)は、ソースパケット73のデータ構造を示す。ソースパケット73のデータ長は192バイトに固定されている。すなわち、各ソースパケット73は、188バイトのTSパケット75の前に、4バイトのTPエクストラヘッダ74を付加して構成されている。ソース・パケタイザ261は、パーシャルTSを構成するTSパケットの前にTPエクストラヘッダ74を付加することにより、ソースパケットを生成している。
図7(e)は、TPエクストラヘッダ74のデータ構造を示す。TPエクストラヘッダ74は、2ビットのコピー許可インジケータ(CPI)76と、30ビットの到着タイムスタンプATS77とから構成されている。コピー許可インジケータ(CPI)76は、そのビット値に応じて、クリップAVストリーム72の全部または一部のコピー回数(0回(コピー不可)/1回のみ/制限なし等)を規定している。到着タイムスタンプATS77には、90kHz精度で時刻が記述される。
なお、図7(c)に記載されたクリップAVストリーム72は、例えば32個のソースパケットの集合(6KB)を1つの単位としてBD205a等に記録される。このような単位をアラインド・ユニットという。アラインド・ユニットを規定する理由は、BD205aが1セクタ2KBであるため、32ソースパケットの単位でセクタとのアライメントが確保できるためである。
次に、図8を参照しながら、クリップAVストリームがどのようにBD205a上に記録されるかを説明する。なお、クリップAVストリームはHDD205bにも記録され得るため、同様のデータ構造によって記録することができる。ただし、HDD205bは一般にレコーダ100から取り外されて他の機器に装填されることはないため、独自のデータ構造によってデータを記録してもよい。
図8は、BD205aの記録領域と、そのディレクトリ/ファイル構造を示す。BD205aは、ギャザード・ファイル領域81とリアルタイム・データ領域82とを有する。ギャザード・ファイル領域81の記録容量は数百メガバイトである。ギャザード・ファイル領域81には、クリップAVストリームの再生等を管理する管理情報のファイル(データベースファイル)が記録される。図8に示すように、データベースファイルは複数種類存在しており、例えば管理ファイル82(Info.bdav)、プレイリストファイル83(01001.rpls、10000.vpls)、クリップ情報ファイル84(01000.clpi)が存在する。これらはアクセスされる頻度が高い。よって、ギャザード・ファイル領域81は効率的にアクセスが可能な、BD205aの記録領域の中間部に設けられている。また、データベースファイルはクリップAVストリーム等の動画ストリームを再生するために必須であり、記録内容の誤りは重大な障害を引き起こす。そのため、データベースファイルは同じBD205a上にバックアップされる。
一方、リアルタイム・データ領域82の記録容量は23〜27ギガバイトである。リアルタイム・データ領域82には、クリップAVストリームのストリームファイルが記録される。例えばクリップAVストリームファイル85(01000.m2ts)が記録される。先のデータベースファイルと異なり、ストリームファイルの再生誤りの影響は局所的であり、その一方、連続的な読み出しを確保する必要がある。よって、誤りの発生を低減するよりも、連続読み出しを保証する方に重点をおいた書き込み処理が行われる。具体的には、クリップAVストリームファイル85は最小で12Mバイトの連続領域(連続した論理セクタ)に記録される。この最小の記録データサイズは「エクステント」と呼ばれる。なお、リアルタイム・データ領域82には、DVストリームを記録することもできるが、以下ではクリップAVストリームが記録されているとして説明する。
次に、図9を参照しながら、上述の管理ファイル82、プレイリストファイル83、クリップ情報ファイル84およびクリップAVストリームファイル85相互の関係を説明する。図9(a)〜(d)は、管理情報とストリームデータとの関係を示す。図9(a)〜(c)が管理情報であり、図9(d)がストリームデータである。図9(a)は管理ファイル82(Info.bdav)に記述されるプレイリストのテーブルを示す。すなわち、管理ファイル82には、BD205a上に存在するプレイリストを特定するプレイリストファイル名のテーブルが格納されている。ここで「プレイリスト」とは、1以上のクリップAVストリームの一部または全部に跨る再生経路を規定した情報である。
図9(b)は、プレイリストファイル83(拡張子:rpls/vpls)に記述されるプレイリストを示す。プレイリストは、リアルプレイリストおよびバーチャルプレイリストに分類できる。リアルプレイリストは、例えば初めてストリームデータが記録されたときにレコーダ100によって生成されるプレイリストであり、再生経路として動画の最初から最後までが指定される。一方、バーチャルプレイリストは、記録されたストリームデータに対してユーザが設定したプレイリストであり、ユーザの希望する任意の位置および区間が指定される。
プレイリストの各区間は、プレイリスト内の各プレイアイテムにおいて規定される。すなわち、プレイアイテムには、再生開始位置に対応する開始時刻(In_time)および再生終了位置に対応する終了時刻(Out_time)が記述される。開始時刻および終了時刻は、映像のフレームの再生表示時刻や音声のフレームの再生出力時刻を特定するプレゼンテーションタイムスタンプ(PTS)によって記述される。通常、記録直後のリアルプレイリストではプレイアイテムは1つだけ設けられ、動画の最初と最後の時刻が指定される。一方、バーチャルプレイリストではプレイアイテムの数は任意である。1つのバーチャルプレイリストに複数のプレイアイテムを設け、各プレイアイテムが異なる動画ストリームを指定するように記述することもできる。
図9(c)はクリップ情報ファイル84(拡張子:clpi)に記述される時間・アドレス変換テーブル(EP_map)84を示す。変換テーブル(EP_map)84は、クリップAVストリームの再生時刻と、その時刻に再生されるデータが格納されたアドレスとを対応付けたテーブルである。この変換テーブル84を利用することにより、プレイアイテムにおいて指定される開始時刻(In_time)および終了時刻(Out_time)から、その時刻に再生すべきデータが格納されたクリップAVストリームにおけるアドレスを特定することができる。なお、この変換テーブル84を利用した変換の原理は、後に図13から図15を参照しながら詳述する。
図9(d)は、クリップAVストリームファイル85(拡張子:m2ts)に格納される動画ストリームを示す。この図では、ファイル“01000.m2ts”および“02000.m2ts”の各々がクリップAVストリームファイルである。
図9(c)および(d)に示すように、BD205a上では、1つのクリップAVストリームファイルに対して1つのクリップ情報ファイルが設けられる。以下では、クリップAVストリームファイルと、クリップ情報ファイルの対を、クリップ(Clip)と称する。
図10は、プレイリストファイル83に格納される情報(エントリ)およびそのデータ構造を示す。拡張子“rpls”および“vpls”ファイル83内にはPlayList()として示すエントリが存在する。これが上述の「プレイリスト」に対応する。プレイリスト情報(PlayList)の下位には、プレイアイテム(PlayItem)1、2・・・が記述される。各プレイアイテムには再生対象となるクリップ情報ファイルのファイル名(Clip_Information_file_name)、STCを特定するための識別子(ref_to_STC_id)、開始時刻(In_time)、終了時刻(Out_time)等が格納される。なお、プレイリストファイル83には、“プレイリストマーク(PlayListMark)”として示すエントリを設けることもできる。プレイリストマークの機能は後述する。
図11および図12は、クリップ情報ファイル84に格納される情報(エントリ)およびクリップ情報ファイルのエントリに関するデータ構造を示す図である。クリップ情報ファイル84には、種々のエントリが設けられている。このうち、図11にはさらに、クリップ関連情報(ClipInfo)の詳細なデータ構造とシーケンス情報(SequenceInfo)の詳細なデータ構造とが示されている。クリップ関連情報(ClipInfo)にもまた、複数のエントリが存在する。図11には、クリップ関連情報に含まれる1つのエントリ(TS_type_info_block)の詳細なデータ構造が示されている。また図12によれば、特徴点情報(CPI)内のエントリとして時間・アドレス変換テーブル(EP_map)が設けられていることが理解される。他のエントリ(ClipMark)等に関しては後述する。変換テーブル(EP_map)は、録画した番組ごと、換言すれば記録したビデオTSパケットのPIDごとに設けられる。
なお、図12に示されるように、EP_mapに代えてTU_mapを設けることもできる。TU_mapとは、パケットの到着時刻(ATS)とソースパケット番号との対応を示すテーブルである。パケットの到着時刻のエントリは、例えば1秒間隔で設けられる。そして、その時刻の直後に最初に受け取られたTSパケットから生成されたソースパケットの番号が、その時刻に対応付けられる。
次に、図13から図15を参照しながら、時間・アドレス変換テーブル(EP_map)のデータ構造と、変換テーブル84を利用した時間−アドレス変換の原理を説明する。図13は、時間・アドレス変換テーブルのデータ構造を示す。変換テーブルでは、時間を示すタイムスタンプ(PTS)とアドレスを示すソースパケット番号(SPN)とが対応付けられている。このタイムスタンプ(PTS)は、映像に関していえばMPEG規格のGOPの先頭に配置される各IピクチャのPTSを表す。またソースパケット番号(SPN)とは、そのPTSに対応する時刻に再生されるIピクチャの先頭データが格納されたソースパケット番号(SPN)である。ソースパケットのデータサイズは192バイトであるから、ソースパケット番号が特定されるとクリップAVストリームの先頭からのバイト数が特定され、そのデータに容易かつ確実にアクセスできる。なお、この変換テーブルにおけるソースパケット番号X1、X2等の実際の値は必ずしも連続する整数ではなく、飛び飛びに大きくなっていく整数値である。
図14は、第1の例による時間とアドレスの対応を示す。上述のように、GOPの先頭に配置される各IピクチャのPTS値のみを時間・アドレス変換テーブルに記述しているため、そのPTS値以外のPTS値が開始時刻(In_time)および/または終了時刻(Out_time)として指定されると、その時刻に対応するアドレス(ソースパケット番号)を直接得ることができない。しかし、MPEG−2ビデオの符号化圧縮方式では、ピクチャ間の差分を用いて圧縮処理を行うため、まず最初にGOP先頭のIピクチャを復号しなければ、続くピクチャも復号できない。したがって、Iピクチャのエントリーが記述されていれば実際の再生には問題なく、それ以上のピクチャ単位の再生制御は、時間・アドレス変換テーブル(EP_map)で指定されるIピクチャから復号を開始し、続くピクチャを解析/復号しながら、期待されるピクチャだけを表示処理すればよいことになる。
図15は、第2の例による時間とアドレスの対応を示す。図14の例と異なる点を説明する。放送番組の録画の対象は、1つの番組のみならず連続する複数の番組に亘る場合がある。このとき、各番組についてみればPTSやソースパケット番号は一意に定められているが、番組間でみればそれらの値が重複する場合がある。したがって、そのような場合にも時間・アドレス変換テーブル(EP_map)によって確実に時間とアドレスとの変換を行えるようにする必要がある。そこで、特定の再生ポイントを一意に特定するための情報(STC_ID)を規定し、時刻情報とともにソースパケット番号を特定するために利用する。
まず、最初に録画されている番組に対し、STC_ID=0を与える。図6に関連して説明したように、各パーシャルTSは独自のシステム時刻基準STCに基づいて処理されるため、番組の切り替え点においてはシステム時刻基準STCが不連続になる。図15には、番組A、BおよびCを録画したときにおいて、番組AとB、および、番組BとCとの間にSTC不連続点が存在する例を示す。各タイミングにおいて異なるSTC_IDを設定している。図15では、最初の番組AはSTC_ID=0、次の番組BはSTC_ID=1、最後の番組CはSTC_ID=2である。さらに、1つのSTC_IDのストリームの最長再生時間を規定することで、同一のSTC_ID内でも同一のPTSが存在しないことを保証している。(MPEGのPTSは90KHz精度で33ビット長であるため、約26.5時間しか正しく表現できない。)
上述のようにSTC_IDを割り当てておくことにより、時刻情報(In_time/Out_time)およびSTC_IDに基づいて、本来指定されたとおりの適切なソースパケット番号を得ることができる。図10に示すPlayItem()には、開始時刻(IN_time)および終了時刻(OUT_time)の情報とともにSTC_IDを特定するためのエントリ(ref_to_STC_id)が設けられていることが理解される。
次に、図16から図19を参照しながら、バーチャルプレイリストを利用したクリップAVストリームの編集処理を説明する。図16(a)は、リアルプレイリスト1および2と、対応するクリップ1および2を示す。クリップ1の一部およびクリップ2の一部を連続して再生するバーチャルプレイリストを生成することを考える。図16(b)は、IN1からOUT1までの第1区間およびIN2からOUT2までの第2区間を連続して再生するバーチャルプレイリストを示す。第1区間および第2区間はそれぞれバーチャルプレイリスト内の別個のプレイアイテムによって指定される。バーチャルプレイリストによれば、リアルプレイリスト1および2およびクリップ1および2を直接加工することなく、別個のクリップの一部の再生区間を見かけ上つなぎ合わせることができる。
しかしながら、前述の通り、MPEG−2ビデオ圧縮方式はピクチャ間の差分を用いて圧縮しているため、IN2で飛び込んだ直後のピクチャは、そのピクチャの復号に必要な先行するピクチャのデータが取得されていないために通常復号できず、しばらく映像が表示されないことになる。
映像のみに関し、シームレスな再生を実現するためには、もともとのストリームを破壊編集し、接続点でのビデオの再エンコードする必要がある。このとき、プレイアイテムの接続情報(connection_condition)は「4」に設定される。しかしながら、破壊編集は元の映像が残らない編集である。そこで、破壊編集のような元のストリームの編集は行わずに、接合点付近のストリームを集め、シームレス接続できるように再エンコード処理した「ブリッジクリップ」というクリップを新たに設けることができる。再生時は、つなぎ目の直前でブリッジクリップに再生制御を切り替え、ブリッジクリップの再生後に第2区間の再生に移る。これにより、矛盾のない滑らかな場面の切り替えを実現することができる。なお、このブリッジクリップによる接続情報は「3」に設定される。
図17(a)は、図16(b)のバーチャルプレイリストを分割するときの分割点の位置を示す。図17(b)は、分割されたバーチャルプレイリスト1および2を示す。バーチャルプレイリスト1は、リアルプレイリスト1の区間とリアルプレイリスト2の一部の区間の連続再生を規定する。一方、バーチャルプレイリスト2は、リアルプレイリスト2の残りの区間の再生を規定する。
図17(a)および(b)に示す処理とは逆の処理、すなわち複数のバーチャルプレイリストを併合することもできる。図18(a)は、併合の対象であるバーチャルプレイリスト1および2を示す。図18(b)は、1つに併合されたバーチャルプレイリストを示す。
図17(a)および(b)の例においても、また図18(a)および(b)の例においても、バーチャルプレイリストを用いることにより、リアルプレイリスト1および2およびクリップ1および2を直接加工することなく、クリップを見かけ上分割し、または併合することができる。
一方、リアルプレイリストの部分削除の場合には、クリップおよびリアルプレイリストを直接加工する必要がある。図19(a)は、区間A−Bを削除の対象とするリアルプレリストおよびクリップを示す。そして、図19(b)は、区間A−Bを削除して、点AおよびBの位置を結合したリアルプレイリストおよびクリップを示す。リアルプレイリストの部分削除および削除の場合にのみクリップおよびリアルプレイリストを直接加工する理由は、リアルプレイリストのみが映像・音声データと直接の因果関係を持つためである。つまり、レコーダ上のユーザーインターフェースにおいて、ユーザーにクリップを認識させず、リアルプレイリスト(ユーザーにとって、クリップと同じ意味を持つ)とバーチャルプレイリスト(単なる再生経路情報)のみを提示することを想定しているためである。
次に、図20を参照しながらサムネイルピクチャの管理を説明する。図20は、BD205aにおいて管理されるサムネイルピクチャと管理ファイルとの関係を示す。サムネイルピクチャとは、動画の一場面や静止画等の縮小されたピクチャであり、動画や静止画の内容を容易に確認する目的で設けられる。
サムネイルピクチャに関連するデータは、複数のファイルに格納される。図20には、サムネイルピクチャを管理するメニューサムネイルファイル302およびマークサムネイルファイル304が示されている。メニューサムネイルファイル302は、BD205aやプレイリストのサムネイルに関するインデクス情報を格納している。このインデクス情報は、メニューサムネイルファイル302において管理されるサムネイルピクチャ(サムネイルピクチャ302a、302b等)の管理番号(menu_thumbnail_index)を含む。サムネイルピクチャ302aはバーチャルプレイリスト312の代表的な内容を示す。また、サムネイルピクチャ302bはボリュームサムネイルと呼ばれ、本BDAVディレクトリの全体に関する代表的な内容を示す。なお図8には、メニューサムネイルファイル302に対応する“menu.tidx”ファイルと、各サムネイルピクチャの実体データを示す“menu.tdt(n)”(n=1,2・・・)が示されている。
一方、マークサムネイルファイル304は、所望の映像の位置に付加され、しおりとして機能する「マーク」のサムネイルに関するインデクス情報を格納している。このインデクス情報も同様に、マークサムネイルファイル304において管理されるサムネイルピクチャ(サムネイルピクチャ304a、304b、304c等)の管理番号(mark_thumbnail_index)を含む。サムネイルピクチャ304aはバーチャルプレイリスト312内のマークが付加された位置の縮小画像である。サムネイルピクチャ304bはリアルプレイリスト314内のマークが付加された位置の縮小画像である。また、サムネイルピクチャ304cはクリップ316内のクリップマークが付加された位置の縮小画像である。なお図8には、マークサムネイルファイル304に対応する“mark.tidx”ファイルと、各サムネイルピクチャの実体データを示す“mark.tdt(n)”(n=1,2・・・)が示されている。上述の各サムネイルピクチャのデータは、JPEG規格に基づいて圧縮符号化されている。
上述のメニューサムネイルファイル302およびマークサムネイルファイル304を利用すると、サムネイルピクチャを一覧表示したり、特定のマークのみのサムネイルピクチャを選択的に表示させることができる。これにより、ユーザはそのBD205aで管理されている動画の概要、種々のプレイリストの概要、または、特定のプレイリストの複数の場面の概要を容易に把握できる。
図21(a)〜(c)は、それぞれ、マークが付加されたバーチャルプレイリスト312、リアルプレイリスト314およびクリップ316を示す。BD205aではユーザは複数種類のマークを設定することができる。すなわち、所望の動画等(コンテンツ)の頭出し点を指定する「ブックマーク」、再生を飛ばす点(区間)を指定する「スキップマーク」、および、先に視聴を停止したコンテンツの位置を指定する「レジュームマーク」、チャプターの先頭を指定する「チャプターマーク」等である。
図21(a)に示すバーチャルプレイリスト312には、ブックマークおよびレジュームマークが設定されている。これらのマークは、プレイリストファイル(拡張子:vpls)の“PlayListMark”エントリに記述される。図10には、“PlayListMark”エントリに対応するPlayListMark()が記載されている。PlayListMark()において、“mark_type”は、ブックマーク、レジュームマーク等のマークの種類を特定する情報である。“mark_time_stamp”は、マークが設定されるピクチャのタイムスタンプ(PTS)を特定する情報である。各マークにはサムネイルピクチャを対応付けることもできる。図21(a)に示すサムネイルピクチャ304aは、ブックマークが設定された場面の縮小画像である。バーチャルプレイリスト312に設定されたサムネイルピクチャ304aは、マークサムネイルファイル304において管理される。
次に、図21(b)に示すリアルプレイリスト314には、ブックマーク、レジュームマークおよびスキップマークが設定されている。スキップマークについても、スキップ開始位置のサムネイルピクチャ304bを設定できる。またスキップする期間(duration)もあわせて設定できる。
図21(c)に示すクリップ316には、クリップマークが設定されている。クリップマークは、クリップAVストリームを生成した際にレコーダ100が付加するマークである。ユーザはクリップマークの生成に関与できず、また生成されたクリップマークの削除等にも関与できない。クリップマークは、クリップに直接付加されるため、プレイリスト312および314に基づく再生時にもその機能は有効である。なお、クリップマークにもサムネイルピクチャ304cが設定され得る。
上述の各マークには、録画機器(例えばレコーダ100)のメーカごとのID(maker_ID)と独自情報(makers_private_data)を付加することもできる。これにより、マークを用いてメーカ独自に機器の機能を拡張することができる。
上述のように、マークを利用するとサムネイルピクチャ等の静止画データを扱うことが可能である。そこで次に、上述のマークをさらに拡張して、プレイリスト等の内容とは関連がない静止画データを取り扱うことを可能とするデータ構造およびその処理を説明する。
図22は、メモリカード112に記録された静止画データがコピーされたBD205aを示す。コピーされた静止画データは、ユーザがデジタルスチルカメラやカムコーダの静止画撮影機能を利用して撮影した静止画に関する。なお、BD205aには予めBDAVフォルダが構築されているとする。
メモリカード112には、近年の多くのデジタルスチルカメラが採用する、DCF規格に準拠したファイルシステムが構築されている。このファイルシステムでは、フォルダの名称やフォルダの階層構造等に関する規定が設けられている。具体的には、DCF規格ではルートの直下に「DCIM」という名称のディレクトリ(フォルダ)が作成される。さらに、DCIMフォルダの下に「100XXXXX〜999XXXXX(Xは半角英数大文字の5文字)」という名称のフォルダが作成される。そして、各フォルダ内に、「YYYY0001〜YYYY9999(Yは半角英数大文字の4文字)」というファイル名でExif規格に則ったファイルフォーマットにて静止画データが保存される。DCF規格に準拠して記録されたデータであれば、記録媒体の種類にかかわらず、また再生機器のメーカにかかわらず、静止画データの格納位置とそのデータを特定することができる。その結果、静止画の再生も可能になる。
レコーダ100は、メモリカード112が装填されると、そのDCIMフォルダ以下のフォルダおよび静止画データを、BD205aのルートフォルダの直下にコピーする。BD205aのルートフォルダの直下にDCIMフォルダをコピーする理由は、BD205a上でもDCF規格にならったディレクトリ/ファイル構造で静止画データを格納するためである。これにより、BD205aがレコーダ100から取り出され、他の機器、例えばDCF規格対応のアプリケーションソフトウェアがインストールされたPCに装填されたときでも、そのPCのユーザは、そのソフトウェアを利用してDCF規格のディレクトリ/ファイル構成に従って静止画データの再生等が可能になる。また、再度SDメモリーカードなどへ静止画データを書き出す時には、DCIMフォルダ以下を直接コピーすればよく、簡単である。
本実施形態ではさらに、コピーされた静止画データをマークとして関連付け、上述したメニューの一部として動画のサムネイル等とともに表示させる。この関連付けに際して、BDAVフォルダ直下には、インデクス・アドレス変換テーブル(StillMap)を格納したファイルが設けられる。以下、図5および図23を参照しながら、BDにおいて静止画データを管理するためのレコーダ100の処理を説明する。
図23は、本実施形態による静止画データのコピー処理の手順を示す。まずステップS240では、レコーダ100のCPU211は、メモリカード制御部217およびBDドライブにBDおよびメモリーカードが装填されていることを検出する。次のステップS241では、CPU211はメモリカード制御部217を介してメモリカード112にアクセスし、メモリカード112に、DCF規格に準拠した形式で静止画データが格納されていることを検出する。その後、ステップS242において、CPU211はユーザに対し、メモリーカード112内の静止画データをBDにコピーするか否かを問い合わせる。例えば、CPU211はグラフィック制御部207に指示を出して、「メモリカードの静止画データをブルーレイディスクにコピーしますか?」というメッセージをTV106に表示させる。その結果、指示受信部215がユーザからコピー開始の指示を受け取るとステップS244に進む。コピーを行わない指示を受け取ると、処理は終了する。
ステップS244では、CPU211は、メモリーカード112のDCIMフォルダ以下のフォルダおよび静止画データを、BD205aにコピーする。具体的には、メモリカード制御部217がメモリカード112にアクセスしてフォルダおよび静止画データを読み出し、CPUバス213を介してTS処理部204に送る。TS処理部204は階層構造を保持しながら、受け取ったデータをBD205aに書き込む。
次に、ステップS245において、CPU211は所定の動画または静止画を利用してBD205a上にクリップを生成し、そのクリップに対応するプレイリストを生成する。そしてCPU211は、ステップS246において、コピーした静止画データの数に応じて静止画プレイリスト内に静止画マークのエントリを生成し、ステップS247において各静止画マークのエントリにインデクスを設定する。
ここで、ステップS245からステップS247の処理を、図24を参照しながらより詳しく説明する。図24は、コピー処理後のBD205aを示す。クリップ401は、レコーダ100の出荷時にそのROM等に格納されている静止画データ等であり、動画のクリップAVストリームに対応する。この静止画は、例えば「静止画マーク管理に対応した機器で再生してください」というメッセージを含む。BD205aの再生に対応した機器であっても本実施形態による処理に対応していない場合があるため、その機器のユーザに注意を促すためである。なお、本実施形態による処理に対応していない機器にBD205aが装填されると、その機器は新たなエントリである静止画マーク(StillPictureMark)は解析できない。よって静止画マークに関するデータエントリの解析および処理をしないと考えられる。
動画に関するクリップと同様、静止画に関するクリップ401に対してはプレイリスト402が生成され、プレイリストに対してはプレイアイテム403が設けられる。プレイアイテム403には、静止画クリップ401の一部であるクリップ情報ファイルのファイル名およびその静止画イメージ(実際には動画として符号化処理されている)の表示期間を示す情報等を記述しておけばよい。一方、プレイリスト402には、図10を参照しながら説明したように“プレイリストマーク(PlayListMark)”として示すエントリを設けることができ、そしてそのプレイリストマークにはマークタイプ(mark_type)によって特定されるブックマーク、スキップマーク等を設けることができる。
本実施形態では、このプレイリストマーク内に新たに静止画マーク(StillPictureMark)を規定する。静止画マークのマークタイプ(mark_type)は、ブックマーク、スキップマーク等の既存のマークに割り当てられたコードとは異なるコードを設定する。新たに規定する静止画マークは2種類であり、動画同期型の静止画マーク(SynchronousStillMark)および動画非同期型(静止画スライド再生型)の静止画マーク(AsynchronousStillMark)である。これらには別個のコードが付加される。
CPU211は、メモリカード112からBD205aにコピーされた静止画データの数だけ静止画マークを設定する。図24のプレイリスト402に向かう矢印は、静止画マークのエントリのイメージを示している。そして、各マークには一意の番号(インデクス)が割り当てられる。インデクスの値が特定されると、対応する静止画データも特定されることになる。
静止画マークを設定する際、CPU211は静止画マークに順序を付ける。この順序は、静止画のスライド再生時における再生順序を規定する。CPU211は、コピーされた静止画データの属性情報(例えばExif規格のタグ情報)に基づいて、静止画データの生成日時または記録日時を示すタイムスタンプを取得する。そしてタイムスタンプが古い順から新しい順に静止画データを順序付けし、順に静止画マークを登録する。すると、静止画マークの登録順にそのマークに対応する静止画が再生される。
再び図23を参照する。ステップS248では、CPU211は、各インデクスと、BD205a上の各静止画データを特定する情報とを対応付けた、インデクス・アドレス変換テーブル(StillMap)を生成する。静止画データを特定する情報とは、静止画データファイルが、BD205a上の階層構造内のどのフォルダに格納されているかを示す静止画データまでのパスおよびそのファイル名である。ステップS249では、CPU211は生成したテーブル(StillMap)をBDのBDAVフォルダ直下に記録する。
図24に示すように、インデクス・アドレス変換テーブル(StillMap)404によれば、プレイリスト402に設定された各静止画マークと、BD205aのDCIMフォルダ下に格納された各静止画データとを1対1で対応付けることができる。ここで図25(a)および(b)を参照しながら、静止画マークの詳細を説明する。
上述のように、本明細書においては動画同期型の静止画マークおよび動画非同期型の静止画マークが規定される。以下では静止画マークのエントリの概略を説明し、その後個々のマーク特有のエントリを説明する。
図25(a)および(b)は、本実施形態による2種類の静止画マークのデータ構造を示す。静止画マーク(StillPictureMark)は、図10に示すプレイリストマークの1つのエントリとして規定される。記述形式はブックマーク等と同様である。
各静止画マークは、マークタイプ(mark_type)、マークに付与されたサムネイルを一意に示すインデクス(ref_to_mark_thumbnail_index)、StillMapへの入力値となる静止画インデクス(ref_to_still_picture_index)、マークが位置する時刻情報を示すマークタイムスタンプ(mark_time_stamp)、表示期間(duration)等を示すエントリを含む。
マークタイプ(mark_type)は、静止画マークであることを示すコード(“AsynchronousStillMark”や“SynchronousStillMark”等)が与えられる。上述のように、このコードはブックマーク、スキップマーク等の既存のマークに割り当てられたコードとは異なる。
インデクス(ref_to_mark_thumbnail_index)は、そのマークのサムネイル画像のデータを識別するために一意に割り当てられた番号である。
静止画インデクス(ref_to_still_picture_index)は、静止画を一意に識別するための識別番号であり、本明細書では「静止画ID」とも呼ぶ。静止画IDは、例えばメモリカード112からBD205aへの静止画データがコピーされた直後に、存在する各静止画データに割り振られた通し番号である。
マークの位置をSTC時間軸上で示す“mark_time_stamp”は、再生出力のタイミングを示す情報である。
表示期間(duration)は、その静止画を表示する期間を示す。その期間は任意であり、ユーザが指定してもよいし、「5秒」等のように予め定められた固定長であってもよい。
図10に示すように、静止画マークはリアルプレイリスト内またはバーチャルプレイリスト内に設けられる。レコーダ100は、動画のクリップAVストリームのマーク処理と類似する処理によって容易に静止画マークを解析してメニュー表示等をすることができる。この結果、静止画マークに対応した機器では、動画のクリップおよび/またはプレイリストに付加されるマークと、各静止画に対応する静止画マークとを区別することなく、同時にメニュー画面等に表示することができる。また、静止画マークに対応していない機器では、動画のクリップおよび/またはプレイリストに付加される静止画マーク以外のマークをメニュー画面等に表示することができる。
図25(a)は、静止画の逐次再生(スライド再生)を行うための静止画マークの設定例を示す。静止画マークのデータは、図10のPlayListMark内のエントリ(StillPictureMark)として記述される。このエントリのマークタイプ(mark_type)には、スライド再生のために利用される静止画マークであることを示すために“AsynchronousStillMark”が設定されている。静止画マークは複数設けることができ、そのときには各静止画マークには異なる静止画IDが割り当てられる。図25(a)に示す静止画マークは、スライド再生を想定して設けられているため、再生時刻に対応する“mark_time_stamp”は、この場合無効であり、“0”が設定される。スライド再生を行うことを前提とするときは、各静止画は規定の表示期間に従って順を追って再生されるため再生タイミングの指定は不要だからである。そして、表示期間(duration)には、0より大きい値が設定される。
図25(b)は、動画と静止画とを混在して再生するときの静止画マークの設定例を示す。この静止画マークは、動画再生の合間に表示する際に設けられる。マークタイプ(mark_type)には“SynchronousStillMark”が設定される。図25(b)の静止画マークもまた複数設けることができ、各静止画マークには異なる静止画IDが割り当てられる。“mark_time_stamp”は、静止画が再生されるべき有効な時刻情報が記述される。この値は、動画再生における基準時刻を示すSTC時間軸上に設定されるため、正しい時刻設定のもとに、動画と静止画の混在再生が可能である。表示期間(duration)には0より大きい値が設定される。“SynchronousStillMark”で示される静止画は、“mark_time_stamp”で指定される時刻から、durationで示される期間表示され、その後、“mark_time_stamp”以降の時間に再生されるべき動画が再生される。
なお、ここでは静止画IDに割り当てる番号は、“ref_to_still_picture_index”として示すフィールドに格納されるとして説明しているが、例えば図25(a)および(b)に示す“ref_to_menu_thumbnail_index”として示すフィールド等に格納されてもよい。また、図25(a)および(b)では、静止画IDを参照しているが、その静止画IDに加え、または静止画IDに代えて静止画以外のデータを参照してもよい。例えば静止画ファイルと同様に音声(音楽)ファイルおよびその各々に対応するID(audio_index)を用意する。そして図25(a)の静止画マーク中に、“ref_to_still_picture_index”フィールドと並列して“ref_to_audio_index”を設け、そのIDを指定する。すると、各静止画のスライドショー中にその音声ファイルが参照されて、BGMを流すことができる。なお、音声ファイルは例である。他の例として、テキストファイルを利用して静止画の説明を付加することも可能である。
図26は、インデクス・アドレス変換テーブル(StillMap)404の対応関係を示す。変換テーブル404は、各静止画を一意に特定するサムネイルインデクス(静止画ID)と、フルパス表記されたファイル名との対応関係を規定する。「フルパス表記されたファイル名」とは、BD205aの階層構造においてルートからそのファイルの格納位置までのフォルダ経路を表記したファイル名をいう。以下、静止画ファイル名およびそのファイルまでのパスに関する情報を「静止画データ特定情報」と呼ぶ。
変換テーブル404は、静止画IDフィールド405と、静止画データ特定情報のエントリとが対応付けられて構成されている。静止画データ特定情報のエントリは、パスエントリ406aおよびファイルエントリ406bとから構成される。パスエントリ406aは、ファイルまでのパスに関する情報(パス情報)が格納される。パスエントリ406aでは各ファイルと1対1でパス情報が格納されているのではなく、共通するパス情報が1つだけ記述される。一方、ファイルエントリ406bには各ファイル名が格納される。
例えば図26では、ファイル名DSC0000x.JPG(x:1、2、3・・・)のパス情報は“DCIM¥101SDDCF¥”であり、各ファイルに共通している。そのため、パスエントリ406aには複数のファイルに対して“DCIM¥101SDDCF¥”が1つだけ記述される。DCF規格では、DCFディレクトリあたりの最大静止画ファイル数が9999個であり、大量に同一パスに静止画ファイルが格納されることになる。StillMapでは、共通するパス情報を重複して記述しないので、すべてのファイルエントリのパス情報を記述するときの情報量よりもはるかに少ない情報量で、変換テーブル404を構築できる。その具体的なデータ構造を図27を参照しながら説明する。
図27は、インデクス・アドレス変換テーブル(StillMap)404のデータ構造の例を示す。上述の静止画IDおよび静止画データ特定情報は、StillMap()フィールド270において規定されている。StillMap()フィールド270は、2つのfor構文を用いて適宜されている。
StillMap()フィールド270の第1のfor構文ではパスエントリ406aが規定される。パスエントリのシンタックスのうち、フィールド271にはフォルダ名が記述される。このフォルダ名は、フォルダに与えられた名前のみが単に格納されているのではなく、BD205aのファイルシステムにおける、ルートから静止画ファイルが格納されたフォルダまでの経路(パス)とともに記述されたフォルダ名である。またフィールド272には、そのフォルダに対応するファイルエントリのうちの、先頭のファイルID(例えば最も小さいファイルID)が記述される。ファイルIDは以下に説明する。
StillMap()フィールド270の第2のfor構文では、各静止画ファイルごとの静止画IDとファイルエントリ406bとが規定される。具体的には、このfor構文中のフィールド273には静止画IDが記述され、フィールド274にはその静止画IDに対応する静止画ファイル名が記述される。対応する静止画IDと静止画ファイル名には、共通のファイルID(file_id)が与えられる。よって静止画IDが与えられると、その静止画IDのファイルIDと同じファイルIDを持つ静止画ファイル名が一意に特定される。フィールド273の各Still_Picture_indexに示される静止画IDは、図25(a)および(b)における“ref_to_still_picture_index”において参照される。
図28は、変換テーブル404を用いた静止画のスライド再生処理の手順を示す。ここでのスライド再生は、図24に示す静止画のみのクリップ401のプレイリスト402に設けられた静止画マークに基づいて行われるとする。そのような静止画マークは、図25(a)に示す形式で規定される。まずステップS290では、CPU211は、指示受信部215を介してユーザから静止画再生の開始指示を受け取る。この指示は、例えばユーザが動画のクリップAVストリームのサムネイルピクチャとともに表示された静止画(またはその縮小画像)を確認することにより、指示受信部215を介して与えられる。
次に、ステップS291では、CPU211は静止画マーク(StillPictureMark)中にエントリされたマークタイプ(mark_type)の値に基づいて、静止画マークであることを示すコードを確認し、その後サムネイルインデクスを特定する。ステップS292では、CPU211は、サムネイルインデクスを用いて変換テーブル(StillMap)を参照し、フルパス表記されたファイル名を特定する。次のステップS293では、CPU211の指示に基づいてBD205aから特定されたファイル名の静止画データが読み出される。デコーダ206はその静止画データを復号化し、静止画をTV106等に出力する。CPU211は、静止画マーク(StillPictureMark)中に記述された期間(duration)が経過すると、静止画の出力を停止する。
ステップS294では、CPU211は、すべての静止画の再生を完了したか否かを判定する。具体的には、CPU211は、そのプレイリスト内のすべての静止画マーク(StillPictureMark)エントリの処理が終了したか否かを判定する。まだ再生が終了していない場合にはステップS295に進む。ステップS295では、CPU211は、次の静止画マークのサムネイルインデクスを取得する。その後、ステップS292に戻り、すべての静止画の再生を完了するまで処理を繰り返す。すべての静止画の再生を完了した後は、処理を終了する。
上述の処理は、図24に示す静止画マークに基づいて行われるとした。しかし、上述の静止画マークを、動画のクリップに対応するプレイリストに設定し、動画と静止画とを混在させて再生することもできる。このとき図25(b)に示す動画同期型の静止画マーク(SynchronousStillMark)が設定される。動画同期型の静止画マークは、例えば動画の記録開始日時情報と、静止画の撮影日時を示す撮影日時情報からレコーダが撮影順番通りに自動的に生成してもよい。以下、より詳しく説明する。
図29(a)は、動画と静止画とを混在させたときのBD205aを示す。動画1のクリップ501aおよび動画2のクリップ501bが存在し、クリップ501aおよびクリップ501bに亘る再生を管理するプレイリスト502が設けられている。なお、プレイリスト502には2つのプレイアイテム503aおよび503bが設けられている。
以下、静止画と動画との混在表示を実現するための設定手順を説明する。まずユーザが自ら静止画マークを設定する例を説明し、その後レコーダ100が自動的に静止画マークを設定する例を説明する。
ユーザによる静止画マークの設定手順は以下のとおりである。メモリカード112からBD205aへの静止画データのコピーが完了した直後、ユーザは特定の静止画を動画の再生の前後に設定することができる。図29(a)では、「特定の静止画」は、静止画1(¥DCIM¥101SDDCF¥DSC00001.JPG)および静止画2(¥DCIM¥102SDDCF¥DSC00320.JPG)であるとする。
図25(b)に示す静止画マークは以下の手順によって生成される。まずユーザは、動画と関連付けた再生の対象となる静止画1と、その再生出力時刻とを指定する。再生出力時刻は、例えば動画の再生出力開始前である。すると、CPU211は、静止画1の再生表示時刻を動画1のPTSによって特定し、そのPTSを静止画マーク(StillPictureMark)のPTSエントリとして設定する。また、静止画1を特定するサムネイルインデクスを設定する。ユーザによって指定された、または予め定められた表示期間(duration)もまた、表示期間(duration)として規定される。この結果、動画1の再生において静止画1の再生を管理する静止画マークが設定される。静止画2についても同様に設定される。静止画2については、再生出力時刻は動画1の再生出力終了後、かつ動画2の再生出力開始前とする。
図29(b)は、図29(a)において設定された静止画および動画の再生順序およびシステム時刻基準STCの遷移を示す。システム時刻基準STCは、デコーダ206において動作時刻の基準として生成され、カウントが管理されている。システム時刻基準STCを生成するために必要な構成は、図6のTS処理部204に設けられているクロックカウンタ262およびPLL回路263によって生成されるカウント情報と同様である。
図29(b)の上段に示すように、まず静止画1が所定期間表示され、その後動画1の再生に移る。動画1の再生が終了すると、次は静止画2が所定期間表示され、その後動画2が再生される。一方、下段に示すシステム時刻基準STCのカウントは、静止画1および2の再生中はポーズ(停止)され、動画1および2の再生中は進められる。動画1および2の再生中にカウントを進める理由は、STCは映像および音声の出力タイミングを決定するときの基準とされるからである。すなわち映像データおよび音声データに設定されたPTSがシステム時刻基準STCに一致したときに、その映像データおよび音声データが再生出力される。一方、静止画1および2の再生中は、STCのカウントを停止する必要がある。カウントを続けると動画の再生タイミングがずれるからである。よって、図29(b)に示すようにSTCのカウントを制御する処理が必要になる。
続いて、レコーダ100によって自動的に行われる静止画マークの設定手順を説明する。
メモリカード112からBD205aへの静止画データのコピーが完了した直後、レコーダ100のCPU211は、すべての静止画データを対象としてその静止画データの生成日時または記録日時を示すタイムスタンプを取得する。このタイムスタンプは、例えばExif規格のタグ情報から取得される。そしてタイムスタンプが古い順から新しい順に静止画データを順序付けする。
次に、CPU211は、動画の録画を現実に開始した時刻および終了した時刻の情報を取得する。開始時刻は、クリップAVストリーム中の最初の番組対応表パケット(PMT_TSP)に記述されているとする。番組対応表パケット(PMT_TSP)は約0.1秒ごとにストリームに挿入されているため、実質的に正確な動画の開始時刻を示しているといえる。一方の終了時刻は、その動画の開始時刻に再生時間を加算することにより算出できる。
再生時間は、例えば動画の先頭の時刻および末尾の時刻の差分値である。動画の先頭の時刻は、例えば図9(b)および図10に示すプレイアイテムの開始時刻(In_time)またはそれ以前の時刻であってもよいし、図11に示すクリップ情報ファイル84中のシーケンス情報(SequenceInfo)において規定されるストリームの表示開始時刻(Presentation_start_time)であってもよい。動画の末尾の時刻も同様に、例えばプレイアイテムの終了時刻(Out_time)またはそれ以後の時刻であってもよいし、図11に示すストリームの表示終了時刻(Presentation_end_time)であってもよい。これらの時刻がPTSとして表されているときには、PTSの差分値をその精度(周波数)で除算すれば、再生時間が得られる。以下では、動画の現実の録画開始時刻を単に「開始時刻」と呼び、録画終了時刻を単に「終了時刻」と呼ぶ。
CPU211は、静止画データのタイムスタンプが動画の開始時刻よりも前を示していれば、その動画の開始時刻に対応するPTSを、図25(b)における静止画マークの“mark_time_stamp”として設定する。そのような静止画データが複数存在するときには、対応する各静止画マークの“mark_time_stamp”には同じPTSが設定される。同じPTSが設定された場合の静止画の再生順序は、静止画マークが生成された順序(図25(b)に示す静止画マークの配置順序)に従う。そのためCPU211は、静止画データのタイムスタンプの順に静止画マークを生成して、撮影された順序での静止画の再生を確保する。
一方、静止画データのタイムスタンプが動画の開始時刻と終了時刻との間を示していれば、CPU211は、そのタイムスタンプに対応する動画の再生時刻のPTSを静止画マークの“mark_time_stamp”として設定する。動画と静止画とが異なるカメラで撮影されたときは、撮影時刻が重複する場合がある。しかし、その場合であっても再生は撮影順に行うことが可能となる。
CPU211は、静止画データのタイムスタンプが動画の終了時刻よりも後を示していれば、その動画の終了時刻に対応するPTSを、図25(b)における静止画マークの“mark_time_stamp”として設定する。この処理の対象となる静止画データが複数存在するときには、CPU211は、静止画データのタイムスタンプの順に静止画マークを生成する。先の例と同様に、静止画の再生順序は静止画マークが生成された順序(配列順序)に従う。
動画が複数存在するとき(撮影時刻順に「動画1」および「動画2」と呼ぶ。)には、静止画マークの“mark_time_stamp”として、動画1の終了時刻に対応するPTSを設定してもよいし、動画2の開始時刻に対応するPTSを設定してもよい。ただし、前者の処理を採用する方が簡易である。後者の処理を採用するときは動画2の存在を予め把握する処理、すなわちそのための解析および結果の保持動作を要するからである。さらに動画2が存在しないときには前者の処理に切り替えなければならず、処理が複雑化するといえる。なお、すべての静止画データを対象として静止画マークを設定するとしたが、どの静止画に対して静止画マークを設けるかについてユーザが指定してもよい。
レコーダ100が自動的に静止画マークを生成するにあたっては、各静止画の表示期間もまた自動的に設定される。この期間は、ユーザが予め設定してもよいし、レコーダ100の工場出荷時等において設定されていてもよい。表示期間は、図25(b)に示す“duration”において規定される。
レコーダ100によって静止画マークが設定されたときに、静止画再生中にシステム時刻基準STCのカウントを停止するか否かは任意である。ただし、動画の再生中に静止画を再生するときには、動画の再生を重視してSTCのカウントを進行させればよい。このとき静止画と動画とが同時に出力されることになるが、例えばα−ブレンド等の画像処理を行って映像のうえに静止画を合成してもよい。
上述の手順で静止画マークを設定したプレイリストを設けることにより、たとえ別個の機器で動画と静止画とを撮影したとしても、撮影した順序で動画と静止画とを再生することができる。ユーザは特に作業をすることなく時系列に沿って映像を楽しむことができるので、非常に便利である。この利点は、動画を撮影しながら同時に静止画の撮影が可能なカムコーダに対しても全く同様に適用できる。
別個の機器で動画と静止画とを撮影したときには、各機器に設定された時刻がもともと一致していないことがある。一致しなければ正確なタイムスタンプが付加されないため当然に現実の撮影順に動画と静止画とを再生することができない。ユーザは、そのずれを解消するために通常は編集作業を行う。このときユーザが静止画データのタイムスタンプ(図25(b)に示す“mark_time_stamp”)を一定時間だけずらしたときは、CPU211は、他の静止画のタイムスタンプも一定時間だけずらすように修正し、修正後のタイムスタンプに基づいて改めて静止画マークを生成すればよい。これにより、ユーザは1枚ずつタイムスタンプを修正する必要がなくなり編集作業の効率化を図ることができる。なお機器間に設定される時刻のずれをなくすために、例えばBluetooth規格等を利用して一方の機器の時刻を他方の機器の時刻に一致させてもよいし、または電波時計の電波を利用して各機器が時刻を修正し、結果として両方の機器の時刻を一致させてもよい。また、少なくとも1枚の静止画の撮影が動画撮影と並行して行われている場合には、動画シーケンスの中での静止画の時間位置(すなわち、動画シーケンスのPTS時間軸上でのPTS値)を合わせることにより、静止画を撮影した記録装置と動画を撮影した記録装置間の撮影時刻差を吸収することができる。逆に、静止画と動画とを同期再生するときは、予め動画撮影中に少なくとも1枚の静止画を撮影するようユーザーに促す表示を行ったり、推奨することで時刻差を吸収することもできる。
上述の説明から明らかなように、スライド再生を行うための静止画マーク(図25(a))と、動画と静止画とを混在して再生するときの静止画マーク(図25(b))とが共通のクリップまたはプレイアイテムに対して設定されることはない(例えば図24および図29)。しかし、プレイリストを利用すれば、図25(a)および(b)の静止画マークを混在させることができる。このとき、図25(a)および(b)のうちのいずれの静止画マークが規定されているかを示すフラグを設け、容易に静止画マークの種別を特定できるようにしてもよい。これにより静止画マークのタイプを調べなくてもよくなる。
なお本実施形態では、静止画マークのエントリを、リアルプレイリスト/バーチャルプレイリスト内のプレイリストマーク(PlayListMark)下に設けるとして説明した。しかし、静止画マークのエントリを設ける位置はプレイリストマーク(PlayListMark)内には限られない。例えば、静止画マークをクリップマークとしてレコーダが自動的に生成してもよい。
また、例えば静止画の各エントリを、プレイリスト情報(PlayList)の各プレイアイテム(図10)のひとつとして設けてもよい。プレイアイテム内の項目は、本実施形態において説明したエントリ、すなわちクリップ情報ファイルのファイル名、静止画の枚数、各静止画へのインデクス、その静止画の表示期間(duration)と、静止画用のプレイアイテムであることを示すプレイアイテムの種別情報である。このときも、インデクス・アドレス変換テーブル(StillMap)を利用して静止画のファイル名およびそのファイルまでのパスを得ることができる。静止画をプレイアイテムのひとつとして設けることにより、1つのプレイリスト内において動画に関するプレイアイテムと並存しながら静止画を管理することができる。なおこれとは別に、クリップ情報内に静止画マークのエントリを設けることもできる。