以下、本発明の一実施の形態を、添付図面を参照して説明する。本実施の形態では、取り外し可能な複数の記録媒体を用いて、映像と音声の記録と再生を行うことが可能な撮像装置1に適用した例として説明する。
図1は、本例の撮像装置1の内部構成例を示したブロック図である。撮像装置1は、大別して、ビデオカメラを制御し、ビデオデータを生成する撮像部2と、ビデオデータ、オーディオデータ、メタデータを半導体メモリに記録し、再生する記録部3とで構成される。
まず、撮像部2を構成する各部について説明する。レンズ、絞り、フィルタ等で構成された光学部11より入力した撮像光を、電荷結合素子(CCD:Charge Coupled Devices)等で構成される撮像部12が光電変換して、アナログビデオ信号を生成する。そして、撮像部12は、アナログ/デジタル変換器、画像調整機能等を有するビデオプロセッサ13に、アナログビデオ信号を供給する。ビデオプロセッサ13は、供給されたアナログビデオ信号をデジタルビデオ信号に変換し、画像調整を行う。そして、ビデオプロセッサ13は、デジタルビデオ信号を所定の方式で圧縮するビデオ信号圧縮部16に、変換したデジタルビデオ信号を供給する。ビデオ信号圧縮部16は、供給されたデジタルビデオ信号をMPEG(Moving Picture Experts Group)方式で圧縮する。そして、ビデオ信号圧縮部16は、ビデオインタフェース17を介して、圧縮したビデオ信号をデータバス20に供給する。圧縮したビデオ信号は、後述する記録部インタフェース26を介して記録部3に供給され、後述する第1又は第2の半導体メモリに保存される。撮像部2で用いられる各種の信号、データ等は、データバス20を介して各部に伝送される。
後述する操作部39でユーザ操作された結果、操作信号が、記録部3から後述する撮像部インタフェース41,記録部インタフェース26,データバス20を介して、撮像部2内の各部の処理を制御するCPU(Central Processing Unit)21に供給される。そして、CPU21は、供給された操作信号を解釈する。操作信号を解釈する際に、CPU21は、読み出しのみ可能なROM(Read Only Memory)22より、所定のタイミングで制御プログラムを読み出すと共に、一時データ、パラメータ等を、書き込み可能なRAM(Random Access Memory)23に一時保存する。
CPU21は、操作部39から供給された操作信号を、撮像部12を駆動する制御信号に変換し、カメラコントローラインタフェース15を介してカメラコントローラ14に供給する。カメラコントローラ14は、供給された制御信号に基づいて、撮像部12の絞り、ズーム、フィルタ等の制御を行う。また、CPU21は、画像処理を指示する画像処理信号を、ビデオプロセッサインタフェース18を介してビデオプロセッサ13に供給する。ビデオプロセッサ13は、供給された画像処理信号に基づいて、デジタルビデオ信号の圧縮処理等を行う。
撮像部2は、撮影中の画像、再生画像、メタデータ等を表示するビューファインダ25を備えている。データバス20を介して伝送された撮影中の画像、再生画像、メタデータ等は、ビューファインダインタフェース24を介して、液晶画面を有するビューファインダ25に表示される。
次に、記録部3を構成する各部について説明する。被写体の方向に向けられたマイクロフォン30が周囲の音声を集音し、アナログオーディオ信号を生成する。マイクロフォン30は、アナログ/デジタル変換器、音声調整機能等を有するオーディオプロセッサ31に、アナログオーディオ信号を供給する。オーディオプロセッサ31は、供給されたアナログオーディオ信号をデジタルオーディオ信号に変換し、音声調整を行う。そして、オーディオプロセッサ31は、オーディオインタフェース32を介してデジタルオーディオ信号をデータバス50に供給する。デジタルオーディオ信号は、後述する第1又は第2の半導体メモリに保存される。記録部3で用いられる各種の信号、データ等は、データバス50を介して各部に伝送される。
図示しないボタン、スイッチ等で構成されている操作部39は、撮像部2と記録部3の記録、再生、編集操作で用いられる。撮像開始等の手動操作によって、操作部39は操作信号を生成する。生成された操作信号は、操作部39から操作部インタフェース40とデータバス50を介して、記録部3内の各部の処理を制御するCPU34に供給される。また、記録時には、後述する撮像部インタフェース41を介して撮像部2に操作信号が供給される。そして、CPU34は、供給された操作信号を解釈し、読み出しのみ可能なROM35より、所定のタイミングで制御プログラムを読み出すと共に、一時データ、パラメータ等を、書き込み可能なRAM36に一時保存する。
本例の撮像装置1は、スロット状に形成された2つの半導体メモリインタフェースを備えており、記録媒体として第1の半導体メモリ37aと第2の半導体メモリ37bを挿し込んで、順にデータの書き込みと読み出しを行うことができる。カード形状の第1の半導体メモリ37aは、第1の半導体メモリインタフェース38aに挿し込まれることでデータの書き込みと読み出しが行われる。同様に、カード形状の第2の半導体メモリ37bは、第2の半導体メモリインタフェース38bに挿し込まれることでデータの書き込みと読み出しが行われる。第1の半導体メモリ37aと第2の半導体メモリ37bを用いることで、ビデオデータ、オーディオデータ、メタデータ、各種システム設定情報、プロキシデータを記憶したり、メタデータや各種設定値を更新したりすることができる。なお、以下の説明では、第1の半導体メモリ37aと第2の半導体メモリ37bを共にメモリカードとも称する。
撮像部2とデータをやりとりするため、撮像部インタフェース41がデータバス50に接続されている。撮像部2で撮像されたビデオデータは、記録部インタフェース26,撮像部インタフェース41,データバス50,第1の半導体メモリインタフェース38aを介して第1の半導体メモリ37aに保存される。また、第1の半導体メモリ37aの記憶容量が不足した場合は、第2の半導体メモリインタフェース38bを介して第2の半導体メモリ37bにビデオデータが保存される。
CPU34は、データバス50,液晶表示インタフェース43を介して、液晶画面を有する液晶表示部44にモニタ映像、タイムコード、オーディオレベル、メタデータ、各種メニュー等を表示させる。第1の半導体メモリ37a又は第2の半導体メモリ37bから読み出されたビデオデータ、オーディオデータ等は、液晶表示部44で再生したビデオ画像として表示することもできる。
撮像装置1は、外部のコンピュータとの間でデータをやりとりするために用いられるコンピュータインタフェース42を備えている。コンピュータインタフェース42は、例えばUSB規格に準拠したインタフェースであり、図示しない外部のコンピュータ装置を接続してデータを伝送したり、スピーカを接続して再生したオーディオデータを放音したりすることができる。また、撮像装置1は、ネットワーク経由でデータのやりとりを行うために用いられるネットワークインタフェース45を備えている。ネットワークインタフェース45は、例えばIEEE(Institute of Electrical and Electronic Engineers)1394規格に準拠したインタフェースであり、図示しないサーバや外部のコンピュータ装置に接続してデータを伝送することができる。
次に、撮像装置1を用いて画像を再生、記録、編集する際の処理例について説明する。
始めに、画像を再生、記録、編集する際に用いられるエディットリスト(以下の説明では、EditListとも称する。)の概念構成例と記述例について説明する。撮像装置1は、各メモリカードに元の長時間クリップ全体を表現したエディットリストを生成している。エディットリストとは、複数のAV素材のうち、再生すべき箇所を列挙したものである。従来、EDL(Edit Decision List)と呼ばれるデータによって、同様の機能が提供されていた。しかしながら、AV素材がファイル化され、よりIT(Information Technology)指向な映像制作環境が求められるに伴い、EDLの機能をより強化したものが新たに求められることとなった。このため、エディットリストは、具体的にはSMILを、業務用の映像制作環境での利用にも耐え得るように機能拡張したものである。生成したエディットリストは、メモリカード毎に保存される。
ここでは簡単のため、エディットリストの仕様の内、本発明を説明する上で必要とされる箇所について説明を行う。なお、SMILをベースとしたエディットリスト自体はあくまで一つの表記の仕方に過ぎない。このため、例えば、データの表記の仕方がいかなるものであれ、以下に説明する機能を提供できるのであれば、それもまたエディットリストの範疇に含まれる。
まず、エディットリストを用いたクリップの逐次再生の例について、図2を参照して説明する。図2で示すように、第1のAV素材51,第2のAV素材52,第3のAV素材53が元のクリップとして与えられている。そして、第1のAV素材51から切り出した1500〜2800フレーム区間を、第1のクリップ61と称する。同様に、第2のAV素材52から切り出した500〜800フレーム区間を、第2のクリップ62と称する。第3のAV素材53から切り出した50〜1350フレーム区間を、第3のクリップ63と称する。なお、第1〜第3のクリップは、それぞれClip1〜Clip3として、後述するエディットリストに記述される。
第1のクリップ61〜第3のクリップ63を逐次再生させる場合について考える。このとき、第1のクリップ61〜第3のクリップ63を逐次再生するための再生手順情報が第1のエディットリスト55に記述される。再生手順情報は、対象とするAV素材を特定する名称と、当該AV素材において実際に再生対象となる部分(クリップ)を指定する手段とを含むものである。第1のエディットリスト55は、仮想的なものであり、実際に、第1のクリップ61〜第3のクリップ63が編集されて、つなぎ合わされてはいない。なお、第1のエディットリスト55は、EditList1として、後述するエディットリストに記述される。撮像装置1が第1のエディットリスト55を参照してクリップの再生を行う場合、第1のクリップ61〜第3のクリップ63がつなぎ合わされた再生クリップ56として再生される。再生クリップ56は、再生時間軸57の矢印方向に従って再生される。第1のクリップ61〜第3のクリップ63は、重複するフレームはないものとする。
次に、逐次再生を行う場合における第1のエディットリスト55の記述例について、図3を参照して説明する。再生手順情報が記述された第1のエディットリスト55は、<smil>要素をルート要素とするXML(Extensible Markup Language)文書として表記される。そして、再生手順情報は、分割クリップ毎に再生開始を表すフレーム番号及び再生終了を表すフレーム番号を含むものである。<smil>要素のname属性には、第1のエディットリスト55の名称である“EditList1”が記述される。そして、再生手順を示す<body>要素が、<smil>要素にネストして連なる。さらに、それぞれが記述した区間を上から順に逐次再生することを表す<video>要素が、<body>要素の直下にネストして列挙される。各<video>要素は、AV素材をsrc属性で指定する。また、AV素材において実際に再生対象となる部分を、再生開始位置であるイン点を示すclipBegin属性と、再生終了位置であるアウト点を示すclipEnd属性で指定する。
なお、Clip1〜Clip3は、エディットリストで表記される名称であるが、この名称に限定されるものではない。つまり、図3では、src属性がとりうる値として“Clip1”等で表記されるAV素材の抽象名を用いているが、src属性がとりうる値として、AV素材ファイルへのファイルパス(例えば、src="D:\video\Clip1.mxf")や、UMID等のAV素材を識別するためのユニークな識別子(例えば、src="urn:smpte:umid:060E2B34…FF")等を付けることができる。またclipBegin属性とclipEnd属性は、先頭から数えたフレーム数をとり得る値(フレーム番号)としているが、その他にも場合に応じてタイムコード(例えば、clipBegin="hh:mm:ss:ff")等をとり得る値とすることができる。
さらにclipBegin属性とclipEnd属性は省略可能としている。そして、clipBegin属性が省略された場合には、先頭フレーム(clipBegin="0")が指定されたものとみなす。また、clipEnd属性が省略された場合には、最終フレームの次のフレーム(clipEnd="n+1")が指定されたものとみなす。
次に、第1のエディットリスト55の記述例の別表現として、並行再生の記述を可能とした場合における第1のエディットリスト55の記述例について、図4を参照して説明する。図4は、図3と等価であるが、<par>要素を含む記述例としている。
図4において、各<video>要素が持つsrc属性,clipBegin属性,clipEnd属性の意味は図3で説明したものと同じである。図4で示すエディットリストは、新たにbegin属性を導入することによって、再生時間軸上におけるクリップ毎の再生開始位置を指定している。“Clip1”を参照する<video>要素にはbegin属性が省略されている。この場合、“Clip1”を参照する<video>要素では、begin="0"が指定されたもの、すなわち再生時間軸上の先頭位置から第1のクリップ61の再生を開始することを意味する。そして、“Clip2”を参照する<video>要素においては、begin属性値は1300である。この場合、再生時間軸上において1300フレーム目、つまり、第1のクリップ61の再生を終えた直後に、第2のクリップ62の再生を開始することを意味する。さらに、“Clip3”を参照する<video>要素においてbegin属性値は2600である。この場合、再生時間軸上において2600フレーム目、つまり、第2のクリップ62の再生を終えた直後に第3のクリップ63の再生を開始することを意味する。
図4で示すように、エディットリストに<par>要素を導入することによって、複数の指定区間を重ねて再生させる等といった記述が可能となる。例えば、遷移エフェクトの表現等、複数の区間を重ねて表現したい場合がある。このような表現を行うために、<par>要素を導入し、<par>要素を<body>要素と<video>要素の間に挿入する。この時、<video>要素によって指定された区間は、再生時間軸上において任意の位置をとり得ることができる。ところで、出力ポートが一つしか存在しない場合に、複数の指定区間を重ねて再生させるといった記述をどう解釈するかが問題となる。この場合、言語仕様としては後段に位置する<video>要素が記述した再生指定区間が優先される。つまり<video>要素の記述は、それ以前の指定区間の再生クリップは、後段で指定された指定区間の再生によって置き換えられることとなる。この結果、例えば図4において全てのbegin要素を省略すると、実際のディスプレイには、第3のクリップ63を参照する<video>要素によって記述された区間のみ表示され、第1のクリップ61と第2のクリップ62は再生されない。
次に、他のエディットリストを参照したエディットリストの例について、図5を参照して説明する。これまで説明したように、エディットリスト自体は、あくまで再生手順を記述したデータに過ぎない。しかしながら、別の見方をすれば、エディットリストは、参照するAV素材を切り出して編集した結果得られる仮想的な二次素材とみなすこともできる。エディットリストを仮想的な二次素材とみなすことにより、<video>要素内のsrc属性は(二次素材としての)エディットリスト自体を参照することが可能となる。
具体例として、いま図5で示すように、第1のAV素材51〜第3のAV素材53から切り出した第1のクリップ61〜第3のクリップ63について検討する。第1のAV素材51から切り出した1500〜2800フレームのClip1区間と、第2のAV素材52から切り出した500〜1800フレームのClip2区間とを第2のエディットリスト65として記述する。そして、第3のAV素材53から切り出した50〜1350フレームのClip3区間を、第3のエディットリスト66として記述する。さらに、第2のエディットリスト65と第3のエディットリスト66とを連続して参照する第4のエディットリスト67を生成する。なお、第2のエディットリスト65〜第4のエディットリスト67は、それぞれEditList2〜EditList4として、エディットリストに記述される。
この場合、第2のエディットリスト65〜第4のエディットリスト67は、図6〜図8で示すように記述される。
図6は、第2のエディットリスト65の記述例である。<body>要素、<par>要素は、図4で示した第1のエディットリスト55と同様に記述してある。そして、<smil>要素が持つname属性は、“EditList2”とする。<video>要素が持つsrc属性は“Clip1”、clipBegin属性は“1500”、clipEnd属性は“2800”とする。さらに、後段の<video>要素が持つsrc属性は“Clip2”、clipBegin属性は“500”、clipEnd属性は“1800”、begin属性は“1300”とする。
図7は、第3のエディットリスト66の記述例である。<body>要素、<par>要素は、図4で示した第1のエディットリスト55と同様に記述してある。そして、<smil>要素が持つname属性は、“EditList3”とする。<video>要素が持つsrc属性は“Clip3”、clipBegin属性は“50”、clipEnd属性は“1350”とする。
図8は、第4のエディットリスト67の記述例である。<smil>要素が持つname属性は、“EditList4”とする。そして、<video>要素が持つsrc属性は“EditList2”とする。また後段の<video>要素が持つsrc属性は“EditList3”とする。
図6〜図8で示したように、<video>要素が持つsrc属性を記述することで、エディットリスト自体を参照することが可能となる。つまり、再生手順情報としてのエディットリストは、別のエディットリストを再帰して参照するものである。なお、図6と図7において、<par>要素とbegin属性を省略することで、<video>要素を<body>要素の直下に羅列してもよい。また、図8において、<body>要素の直下に<par>要素を挿入し、下位の<video>要素にbegin="2600"を付与してもよい。
次に、<video>要素への追加属性として導入するalt属性の記述例について、図9を参照して説明する。alt属性は、参照に関する注釈等を記述した属性である。図9では、第3のエディットリスト66の<video>要素に、alt属性として“In Memory Card #3”を追加してある。alt属性によって、第3のクリップ63がメモリカード#3に記録されていることが示されている。
以上、エディットリストの記述例について説明してきたが、これらの特徴は全てそのベースとなったSMILが本来有していた特徴に他ならない。また、エディットリストはあくまで複数のAV素材のうち、再生すべき箇所を列挙するための汎用ツールである。このため、「複数のメモリカードに渡る長時間クリップを記録する場合に、それぞれのメモリカードに記録された分割クリップの記述を一本化する」ために導入されたものではない。
それぞれのメモリカードに含まれる分割ファイルに記録された分割クリップは、あくまで元の長時間クリップの一部に過ぎない。このため、分割ファイルを集めて元の長時間クリップを再構築するためには、元の長時間クリップ内に対するそれぞれの分割ファイル(分割クリップ)の位置付けを記述した補助情報が必要である。従来では、対象となる分割クリップに対し、その前後となる分割クリップを何らかの手段で同定するようにしていた。これは、例えばメモリカードiにおいて、「前方向分割クリップ=“Clip-(i-1)”、後方向分割クリップ=“Clip-(i+1)”」等といった記述内容を、ファイルとしてメモリカードiに併せて記録しておくことに相当するものであった。
これに対し、本実施の形態例では、それぞれの分割ファイルに記録された分割クリップの、元の長時間クリップ内における位置付け情報の記述を、エディットリストを用いて行うようにしている。
ここで、複数の分割ファイルに記録された分割クリップを長時間クリップとして扱う場合におけるエディットリストの記述例について、図10を参照して説明する。ここでは、長時間の撮影を行い、その長時間クリップをn枚のメモリカードに分割して記録した場合について考える。
それぞれのメモリカードに記録した順に従って、第1のメモリカード100a〜第nのメモリカード100nに対して、それぞれのメモリカードを識別するための識別子が付与される。第1のメモリカード100aには、第1のクリップ101aが記録されており、第1のエディットリスト102aが記述されている。第2のメモリカード100bには、第2のクリップ101bが記録されており、第2のエディットリスト102bが記述されている。同様に、第iのメモリカード100iには、第iのクリップ101iが記録されており、第iのエディットリスト102iが記述されている。そして、第nのメモリカード100nには、第nのクリップ101nが記録されており、第nのエディットリスト102nが記述されている。
このように、第iのメモリカードには、元の長時間クリップを、その先頭からi番目に分割して生成された分割クリップとして、第iのクリップが記録される。なお、以下の説明では、エディットリストの記述に際して、第1のクリップ101aをClip-1、第1のエディットリストをEditList-1と記述する。同様に、第iのクリップをClip-i、第iのエディットリストをEditList-iと記述する。そして、第nのクリップをClip-n、第nのエディットリストをEditList-nと記述する。
本実施の形態例によれば、それぞれのメモリカードが補助情報としてエディットリストを有している。ただし、本発明が従来技術と大きく異なる点は、エディットリストの記述内容にある。すなわちそれぞれのメモリカードに含まれるエディットリストには、単に分割クリップの前後関係を記述するのでなく、エディットリスト単独で、元の長時間クリップ全体と再生手順を表現する点にある。
ここで、メディア上に形成されたエディットリストとクリップの概念例について、図11を参照して説明する。ある長時間クリップが分割されて、第1のメモリカード100a〜第3のメモリカード100cのそれぞれに、第1のクリップ101a〜第3のクリップ101cとして存在しているとする。撮像装置1で再生を開始すると、まず第1のメモリカード100aに記述されている第1のエディットリスト102aにアクセスする。第1のエディットリスト102aには、第1のクリップ101aの情報と第2のエディットリスト102bの情報が記述されている。そして、第1のクリップ101aが再生される。第1のクリップ101aの再生が終わると、撮像装置1は、第2のメモリカード100bに記述されている第2のエディットリスト102bにアクセスする。第2のエディットリスト102bには、第1のクリップ101aと第2のクリップ101bの情報と、第3のエディットリスト102cの情報が記述されている。そして、第2のクリップ101bが再生される。
第2のクリップ101bの再生が終わると、撮像装置1は、第3のメモリカード100cに記述されている第3のエディットリスト102cにアクセスする。第3のエディットリスト102cには、第1のクリップ101a〜第3のクリップ101cの情報が記述されている。そして、第3のクリップ101cが再生される。本実施の形態に係る撮像装置1では、例えば第2のメモリカード100bが挿し込まれると同時に、第2のメモリカード100bに記録された第2のクリップ101bの、全体のクリップにおける再生時間軸上の位置付けが容易に判ることを特徴としている。
さらに、Clip-iを生成する段階でClip-1からClip-(i-1)に関する情報は既知であることから、これらの情報を明示的にエディットリストに記述できる。すなわち、EditList-iとEditList-nはそれぞれ以下のように記述される。
ここで、第iのエディットリスト102iの記述例について、図12を参照して説明する。<body>要素、<par>要素は、図4で示した第1のエディットリスト55と同様に記述してある。そして、<smil>要素が持つname属性は“EditList-i”とする。冒頭の<video>要素が持つsrc属性は“Clip-1”とする。<video>要素は、i番目まで同様に列挙される。そして、i番目の<video>要素が持つsrc属性は“Clip-i”とする。i番目以降の<video>要素が持つsrc属性は“EditList-(i+1)”、clipBegin属性は“Dur(Clip-1)+…+Dur(Clip-i)”とする。ここで、clipBegin属性に指定した“Dur”とは、<video>要素に記述されたClip-1〜Clip-nの再生を行なった後に、第i+1番目のクリップを再生することを意味する。つまり、“Dur(Clip-1)+…+Dur(Clip-i)”とは、EditList-(i+1)が元の長時間クリップを表現している場合に、既に再生の終了した第1のクリップ〜第iのクリップまでの区間をスキップして、第i+1番目のクリップから再生することを意味している。なお、このようなエディットリストを中途エディットリストと称する。
<中途エディットリスト>
ここで、中途エディットリストを用いて再生される機会の例を大別して以下に挙げる。記録されたカードの枚数より、再生装置のカードスロットの数が少ない場合と、サーバやコンピュータ装置に撮影順に吸い上げている最中に、映像をモニタする場合と、サーバやコンピュータ装置に、全クリップと全エディットリストが揃っているが、中途のクリップが選択された場合とがある。
記録途中のメモリカードには、途中段階の中途エディットリストを作成する。記録しているメモリカード以降のクリップは記録途中では未定であるが、記録するメモリカードが切り替わるときは前後のメモリカードが撮像装置1内に存在するので、次のメモリカードのクリップやエディットリストを特定する名称、例えばUMIDを書くことができる。そこで、各メモリカードに自身のクリップと次のエディットリストを載せた中途エディットリストを記述する。従来のように、次のクリップのUMIDを書くだけなら、単に前後のクリップを知ることができるだけなので、全てのクリップの位置情報をつなぎ合わせることができず、後で次のエディットリストを探さなければならない。一方、本実施の形態で用いるようにエディットリストを参照する方式であれば、次々に辿れる上、全てのエディットリストが論理的に等価、すなわち元の長時間クリップの再生を表すことになる。このため、ユーザの選択ミス等による再生不良を防ぐことができる。
ここで、中途エディットリストの記述例について、図13を参照して説明する。図13(a)は、第1のエディットリストの記述例を示す。第1のエディットリストのファイル名は、ABCD1001E01.SMIとする。第1のエディットリストが記述されている第1のメモリカードには、ACD1001Q01.MP4ファイルが格納されている。図13(b)は、第2のエディットリストの記述例を示す。第2のエディットリストのファイル名は、ABCD1001E02.SMIとする。第2のエディットリストが記述されている第2のメモリカードには、ACD1002Q01.MP4ファイルが格納されている。図13(c)は、第3のエディットリストの記述例を示す。第3のエディットリストのファイル名は、ABCD1001E03.SMIとする。第3のエディットリストが記述されている第3のメモリカードには、ABCD1003Q01.MP4ファイルが格納されている。なお、第1のエディットリスト〜第3のエディットリストに書き込まれる再生手順情報は、分割クリップ毎に再生開始を表す時刻情報及び再生終了を表す時刻情報を含むものである。
図13(a)の第1のエディットリストは、ABCD1001Q01.MP4ファイルを“00:00:00:00”から“00:29:59:29”まで再生を行なった後、第2のエディットリストを参照して“00:30:00:00”で以降の再生を開始することを意味している。図13(b)の第2のエディットリストは、ABCD1002Q01.MP4ファイルを“00:30:00:00”から“00:59:59:29”まで再生を行なった後、第3のエディットリストを参照して“01:00:00:00”で以降の再生を開始することを意味している。図13(c)の第3のエディットリストは、ABCD1003Q01.MP4ファイルを“01:00:00:00”から“01:09:59:29”まで再生を行なうことを意味している。このように、第1〜第3のエディットリストのいずれにも再生が行われるクリップの情報が記述されているため、互いに参照することでクリップ全体に対する分割クリップの位置を知ることができる。なお、最後のABCD1001E03.SMIは、後述する完成版の“全編エディットリスト”そのものである。
次に、第nのエディットリスト102nの記述例について、図14を参照して説明する。<body>要素、<par>要素は、図4で示した第1のエディットリスト55と同様に記述してある。そして、<smil>要素が持つname属性は“EditList-n”とする。冒頭の<video>要素が持つsrc属性は“Clip-1”とする。<video>要素は、n番目まで同様に列挙される。すなわち、図14が示すように、EditList-nはもはや他の中途エディットリストを介した間接的な記述ではなく、全ての分割クリップ(Clip-1〜Clip-n)を直接参照する記述となっている。なお、このようなエディットリストを全編エディットリストと称する。
<全編エディットリスト>
ここで、全編エディットリストで再生される機会の例を大別して以下に挙げる。記録されたメモリカードの枚数より、再生装置のメモリカードインタフェースの数が少ない場合と、サーバやコンピュータ装置に、全クリップと全編エディットリストが吸い上げられている場合とがある。
録画時には、先述の全編エディットリストは、最後のメモリカードだけに置かれる。最後のメモリカードだけに置かれる理由としては、記録途中では、全編エディットリストが確定していないためである。全編エディットリストの内容は、例えばABCD1001Q01.MP4,ABCD1002Q01.MP4,…など、先頭からの分割クリップを参照した<video>要素を羅列したものとなる。なお、全編エディットリスト自体もそれを特定する名称、例えばUMIDを持ち、連結結果を一つのクリップ、つまり元の長時間クリップとして扱えるようにする。
ここで、全編エディットリストの構成例について、図15を参照して説明する。図15(a)は、サーバに蓄積された第1〜第3のクリップとエディットリストの概念例について示している。複数のメモリカードから読み出したクリップは、サーバ70に蓄積される。サーバ70上で再生や編集を行う場合、第1のクリップ101a〜第3のクリップ101cの情報が記述されているエディットリスト102sを用いる。
図15(b)は、全編エディットリストの記述例について示している。エディットリスト102sは、サーバ70において、全編エディットリストとして機能している。エディットリスト102sには、第1のクリップ101aのファイル名称である“ABCD1001Q01.MP4”、第2のクリップ101bのファイル名称である“ABCD1002Q01.MP4”、第3のクリップ101cのファイル名称である“ABCD1003Q01.MP4”を指定したsrc属性及び、それぞれの再生対象区間を指定したclipBegin属性、clipEnd属性が記述されている。サーバ70は、このエディットリスト102sを参照することで、元の長時間クリップ全体に対する、ある分割クリップの再生時間軸上の位置を知ることができる。
ここまで、第iのエディットリスト、第nのエディットリストの記述例について、図12と図14で説明したが、これらは以下のように書き換えることもできる。以下、図16〜図18を参照して、第1のメモリカードに記録された第1のエディットリスト、第iのメモリカードに記録された第iのエディットリスト、第nのメモリカードに記録された第nのエディットリストの別の記述例について説明する。
まず、第1のエディットリスト102aの記述例について、図16を参照して説明する。<smil>要素が持つname属性は“EditList-1”とする。<video>要素が持つsrc属性は“Clip-1”とする。そして、次に列挙される<video>要素が持つsrc属性は“EditList-2”、clipBegin属性は“Dur(Clip-1)”とする。このように指定することで、第1のクリップの再生が終了した後、第2のエディットリストを探し、再生済みの部分をスキップして、以降の再生を行うことができる。
次に、第iのエディットリスト102iの記述例について、図17を参照して説明する。<smil>要素が持つname属性は“EditList-i”とする。冒頭の<video>要素が持つsrc属性は“EditList-(i-1)”、clipEnd属性は“Dur(Clip-1)+…+Dur(Clip-(i-1))”とする。次に列挙される<video>要素が持つsrc属性は“Clip-1”とする。そして、最後に列挙される<video>要素が持つsrc属性は“EditList-(i+1)”、clipBegin属性は“Dur(Clip-1)+…+Dur(Clip-i)”とする。このように指定することで、第1〜第i−1番目のクリップまで再生した後、第i番目のクリップを再生し、第i+1番目のエディットリストを探し、再生済みの部分をスキップして、以降の再生を行うことができる。
次に、第nのエディットリスト102nの記述例について、図18を参照して説明する。<smil>要素が持つname属性は“EditList-n”とする。冒頭の<video>要素が持つsrc属性は“EditList-(n-1)”、clipEnd属性は“Dur(Clip-1)+…+Dur(Clip-(n-1))”とする。そして、次に列挙される<video>要素が持つsrc属性は、“Clip-n”とする。このように指定することで、第1〜第n−1番目のクリップまで再生した後、第n番目のクリップを再生して再生処理を終了することができる。
図17で示すようにEditList-iは、メモリカードiに記録されたClip-iを直接参照する他、Clip-iの前方に位置するメモリカード(i-1)に記録されたEditList-(i-1)と、Clip-iの後方に位置するメモリカード(i+1)に記録されたEditList-(i+1)を参照している。
そして、Clip-iの時間長(またはフレーム数)をDur(Clip-i)で表すようにすると、EditList-(i-1)、EditList-(i+1)は、共に元の長時間クリップ全体の再生を表現しているわけであるから、冒頭の<video>要素は元の長時間クリップの先頭からメモリカードiに含まれたClip-iの開始直前までが再生対象であることを表している。また、三番目の<video>要素は元の長時間クリップにおいてClip-iの終了直後からその最後までが再生対象であることを表している。その結果、EditList-iもまた元の長時間クリップ全体(の再生方法)を表現していることとなる。
図16と図18で示したエディットリストの記述例は、一連の長時間クリップを参照する場合における先頭と末尾の記述に相当する。すなわち、図16においては第1のメモリカードに記録された先頭の分割ファイルであるClip-1を直接参照して再生する。続けて、元の長時間クリップの先頭からClip-1の再生部分をスキップした残りを再生する。このように再生することで元の長時間クリップ全体の再生を表現している。また、図18においては、元の長時間クリップの先頭から末尾の分割ファイルであるClip-(n-1)を取り除いた部分まで再生する。続けて、Clip-nを直接参照して再生する。このように再生することでやはり元の長時間クリップ全体の再生を表現している。
ここで着目すべきは、例えばEditList-1を生成する場合、上述したようにclipEnd属性を省略したときの解釈が対象素材の最後(厳密には最終フレームの次のフレーム)を示すことである。このため、EditList-1を生成した時点では元の長時間クリップ全体の時間長が不明であっても、EditList-1を生成することが可能となる。すなわちEditList-1の生成に必要な情報はClip-1の時間長と第2のメモリカードが保有するEditList-2への参照情報(それを特定する名称としてのファイル名あるいは識別子)であるから、第1のメモリカードの分割ファイルであるClip-1の生成が完了した段階でEditList-1を生成することができる。
なお、本実施の形態例では、<par>要素を含まない逐次再生を行う表現に基づいてエディットリストを記述した。それに加えて、<par>要素を用いた並行再生を行う表現に基づいてエディットリストを記述することも可能である。この場合、再生時間軸上におけるそれぞれの再生位置を指定する必要がある。しかしながら、再生位置のいずれもがclipBegin属性値とclipEnd属性値に準じたものであり、エディットリストの生成時に既知である。
<タイトル付与>
次に、元の長時間クリップにタイトルや注釈を付与する場合のエディットリストの記述例について、図19を参照して説明する。図19は、全てのエディットリストが元の長時間クリップ全体の再生手順情報を表現していることを利用して、タイトルを付与する記述例を示している。つまり、エディットリストに付与される再生手順情報は、前記複数の分割クリップ全体に共通する情報を付与するものである。
図19より、<Metadeta>要素の“targetClip”属性は、“EditList-n”としてある。そして、<Title>要素は、「My long AV clip」とする。さらに、<Description>要素は、「Worldcup Football Game」とする。このように任意のエディットリストを参照先に指定することで、元の長時間クリップに対して「My long AV clip」なるタイトルや、「Worldcup Football Game」なる注釈を付けたことと等価となる。
<無効フレーム区間の考慮>
次に、記録されたクリップに存在する無効フレーム区間の影響を考慮する場合におけるエディットリストの記述例について、図20を参照して説明する。インターコーデック方式においてGOP単位で記録した場合、クリップの最初と最後には、有効区間外だがデータを圧縮するのに必要となるフレームが記録される無効フレーム区間が存在する場合がある。このようなクリップを単にエディットリストでクリップ名を指定するだけでは、再生時間軸上で重複が生じる可能性がある。このような無効フレーム区間を排除するため、図20のようにエディットリストを記述する。
いま、例えば128フレームで構成されるClip-iのうち、有効フレーム領域が3〜120フレームであったとする。この場合、2段目の<video>要素が持つsrc属性を“Clip-i”、clipBegin属性は“3”、clipEnd属性は“121”とする。このようにclipBegin属性とclipEnd属性を指定することで無効フレーム区間の影響を排除して重複なく逐次再生することが可能となる。
また、データの記録途中に発生した障害等によって、記録が中断すると共に、記録したデータが失われる場合がある。このような場合に備えて、データを復活するために重複してデータを記録する「サルベージ」という技術が使われる場合がある。いま、「サルベージ」としてクリップのみを対象とし、エディットリストに適用しない場合を考える。この時、録画中にメモリカードが切り替わる際、以前のメモリカードに書き込まれるエディットリストを、以後のメモリカードにも書いておき、「サルベージ」処理の段階で、当該エディットリストの最終行をそれと共に記録されたクリップ名に書き換える。また、適切なclipEnd値を指定することで、全編エディットリストを復活させることができる。
次に、エディットリストを用いてクリップの再生を行う場合の処理例について説明する。ここでは、エディットリストが与えられた場合に、エディットリストに基づいて複数のAV素材の指定区間を逐次再生する処理について述べる。この再生処理は、あるメモリカードに記録されたエディットリストを元に分割ファイルをつないで、元の長時間クリップを再構築することに相当する。なお、説明を簡単にするため、処理の対象となるエディットリストの仕様は上述したものに限定し、また指定区間が重複したり指定区間の間にギャップが生じたりといった状況は考慮しないものとする。
<再生区間リスト>
まず、エディットリストを用いて再生処理を行う撮像装置1が必要とするデータについて、図21を参照して説明する。図21は、図2に説明したクリップの例を参照して、撮像装置1が必要とするデータを模式的に示したもの、すなわち縦軸を再生区間、横軸を再生時間軸として、実データとして参照するクリップと再生対象区間をリストとして表したものである。ここでは、再生対象となるクリップへの参照をクリップ名にて、またその再生対象区間をクリップに対するイン点、アウト点のフレーム数で表現し、それらを再生時間軸上に列挙している。以下の説明では、このようなデータを再生区間リストと称する。
<再生区間リストの処理>
次に、再生区間リストの処理について、図22を参照して説明する。図22は、与えられたエディットリストに基づいて所定区間を逐次再生する場合の再生処理例について示すフローチャートである。
まず、指定されたエディットリストを再生区間リストに変換し、撮像装置1の内部で保持する。(ステップS1)ステップS1の詳細な処理例については後述する。次に、再生区間リストに列挙された項目に従って、クリップにアクセスする(ステップS2)。具体的には参照するクリップが格納されているファイルを開き、所定の再生区間の開始位置に読み出しポインタを進める等の処理を行う。
そして、所定の再生区間のクリップを読み出し、再生する(ステップS3)。所定の再生区間のクリップ再生が終了した後、次の再生区間があるかどうかを確認する(ステップS4)。再生区間がある場合、ステップS2へ戻って処理を繰り返す。再生すべき区間がない場合、処理を終了する。
<再生区間リストへの変換処理>
次に、エディットリストの再生区間リストへの変換処理の例について、図23を参照して説明する。図23は、図22で説明したステップS1の処理(再生区間リストの生成処理)を、さらに詳細に説明したものである。
始めに、指定されたエディットリストが保存されたファイルを開く(ステップS11)。そして、<video>要素を検出し、構文解析を行う(ステップS12)。さらに、src属性の値を抽出し、参照するAV素材の有無を確認する。参照するAV素材が存在しなければ、再生することができないのでエラー報告をして処理を終了する(ステップS13)。
AV素材が存在する場合、src属性で参照するAV素材がクリップかエディットリストかを確認する(ステップS14)。参照するAV素材がエディットリストである場合、エディットリストを入力として図23の処理フローを再帰的に呼び出して再生区間リストを生成し(ステップS20)、ステップS15に処理を移す。
参照するAV素材がクリップである場合、参照するAV素材(あるいはステップS20で得られた再生区間リストの正味)の再生区間を指定するために、clipBegin属性値とclipEnd属性値を抽出する(ステップS15)。また、再生時間軸上の再生開始位置を指定した値であるbegin属性値を抽出する(ステップS16)。参照するAV素材、あるいは、ステップS20で得られた再生区間リストに対して、抽出したclipBegin属性値とclipEnd属性値による指定に基づいて、再生時間軸上での再生区間を決定する(ステップS17)。
そして、決定された再生区間を再生区間リストへ追加する(ステップS18)。そして、次の<video>要素の存在の有無を確認する(ステップS19)。次の<video>要素が存在しない場合、全ての<video>要素が処理されたこととなるので、処理を終了する。次の<video>要素が存在する場合、未処理の<video>要素を処理するために、ステップS12に処理を移し、以降の処理を繰り返す。
<再生処理>
あるエディットリストを再生する処理は、全編エディットリストでも中途エディットリストでも同様である。唯一の違いは、他のエディットリストを参照するか否かである。撮像装置1の再生処理は、一般的なSMILの再生手順と何ら変わることないが、理解や参考のため、処理の流れを図24のフローチャートを参照して説明する。処理の引数は、ファイル名と再生開始時刻である。
始めに、再生処理の初期動作を開始する(ステップS21)。このとき、ユーザにより、再生すべきエディットリストが選択される。ここで、UMIDで再生すべきエディットリストが指定された場合は、UMIDを名前解決してファイル名を得る。そして、ファイル名と再生開始時刻=0を引数にして、処理ルーチンを起動する。
次に、処理ルーチンの開始処理を行う(ステップS22)。このとき、再生すべきファイルが見つからない場合は、ユーザにメモリカードのマウントを促し、メモリカードがマウントされるまで待機する。再生すべきファイルが見つかった場合、そのファイルを開き、引数の再生開始時刻まで、エディットリストを読み飛ばす。そして、読み飛ばした先のUMIDを名前解決してファイル名を得る。
次に、クリップの再生処理を行う(ステップS23)。再生すべきクリップを格納したファイル見つからない場合は、ユーザにメモリカードのマウントを促し、メモリカードがマウントされるまで待機する。再生すべきクリップを格納したファイルが見つかった場合は、そのクリップのファイルを開く。そして、クリップに記録されている映像データの先頭と再生開始時刻が異なる場合、その差分だけ映像データを読み飛ばす。そして、再生モジュールがデータの受け入れを許すまで待ち、尺(clipEnd属性値からclipBegin属性値)を引数にして、再生モジュールを起動する。
次に、クリップ再生を終了する(ステップS24)。このとき、撮像装置1は、クリップの読み出しが終わるまで待機する。ただし、クリップの読み出しは早いので再生は継続している。そして、エディットリストを一つ読み進み、次に再生するUMIDを求め、ファイル名を得る。さらに、次のエディットリスト又はクリップの再生開始時刻を、clipBegin属性値から計算して求める。次がエディットリストならステップS22の処理に移る。次がクリップならステップS23の処理に移る。次のエディットリスト又はクリップがない場合は、再生処理を終了する。
<記録処理>
次に、長時間クリップを分割して、複数のメモリカードに分割クリップとして記録する処理例について、図25を参照して説明する。複数のメモリカードに亘る分割クリップを紐付けるため、エディットリストを用いている。ここで、エディットリストが使われる状況を仮定すると、予め全てのメモリカードの内容をサーバ等に取り込んだ後、逐次再生する場合と、メモリカードを取り替えながら、メモリカードを直接読み込んで逐次再生する場合とに大別できる。クリップ全体を知ることができるならば、複数の分割クリップをつなぎ合わせて元の長時間クリップとして扱う全編エディットリストが便利である。この場合、エディットリストには図3で説明したような、分割クリップを再生順に並べて記述する方式を採用する。ここで、それぞれの分割クリップは、それを特定する名称としてのUMIDを用いて参照されていることとする。
全編エディットリストは、録画終了時に確定するものである。このため、メモリカードインタフェースが二つあっても、録画に使うメモリカードが3枚以上になると、全編エディットリストを確定して書き込むことができない。そこで、最後のメモリカード以外には中途エディットリストを記録し、自身のクリップのUMIDの次の行に、次のメモリカードのエディットリストのUMIDを書き込んでおく。これより、所望のクリップは、間接参照によってアクセスすることができる。当然、そのエディットリストには、その次のエディットリストが書かれているので、それらを順に辿ることにより、最終クリップへ到達することができる。つまり、各メモリカードに書かれたエディットリストは、多段参照によって全て等しく元の長時間クリップを表したものになり、どのエディットリストから読み始めても元の長時間クリップ全編を再生することが可能となる。
ここで、撮像装置1の記録処理の例について説明する。クリップの記録中に、第1のメモリカードの残量がわずかとなり、第2のメモリカードに空き容量があって、かつ、ユーザ設定で連続記録が選ばれている場合に以下の処理が行われる。なお、第1のメモリカードに置かれた最初のクリップを第1のクリップとする。このとき、撮像装置1には、第1と第2のメモリカードが挿し込まれた状態である。
まず、記録を行い、第1のメモリカードの残量がわずかとなり、第2のメモリカードに空きがある場合、第1のメモリカードに書き込む第1のエディットリストのUMIDと、第2のメモリカードに書き込む第2のエディットリストのUMIDを決定する(ステップS31)。なお、第2のメモリカードに置かれたクリップを第2のクリップとする。
そして、第1のクリップを閉じ、第2のクリップを第2のメモリカードに開き、録画を続ける。第1のクリップのUMIDと尺(clipEnd属性値からclipBegin属性値)、第2のエディットリストのUMIDを用い、第1のエディットリストを作り、第1のメモリカードに記録する(ステップS32)。また、第1のエディットリストの内容は、撮像装置1のRAM36に保存しておく。そして、第1のメモリカードを抜き、第3のメモリカードを挿しこむ。このとき、撮像装置1には、第2と第3のメモリカードが挿し込まれた状態にある。
引き続き記録を行い、第2のメモリカードの残量がわずかとなり、第3のメモリカードに空きがある場合、第2のメモリカードに書き込む第2のエディットリストのUMIDと、第3のメモリカードに書き込む第3のエディットリストのUMIDを決定する(ステップS33)。
そして、第2のクリップを閉じ、第3のクリップを第3のメモリカードに開き、録画を続ける。第2のクリップのUMIDと尺、第3のエディットリストのUMIDを用い、第2のエディットリストを作り、第2のメモリカードに記録する(ステップS34)。第2のエディットリストの内容は、撮像装置1のRAM36に保存しておく。
そして、ユーザが操作部39を操作し、録画を終了する(ステップS35)。録画の終了が指示されたら、第3のクリップを閉じる。また、第2のエディットリストと第3のクリップのUMIDと尺、第3のエディットリストのUMIDを用い、第3のエディットリストを作り、第3のメモリカードに記録する(ステップS36)。ここで、第3のエディットは、先述した全編エディットリストに他ならない。
以上説明した本実施の形態例では、汎用フォーマットでAV素材が記録される任意のクリップ、ファイル等の参照情報を書き込んだエディットリストを生成することが可能となる。すなわち、エディットリストに基づいて、複数の分割クリップを連続して再生する機能をサポートしていた場合に、長時間クリップを分割して得られた分割クリップを元の長時間クリップとして再生することが、特別の処理を別途追加することなく可能となるという効果がある。また、エディットリストは、クリップ自体のファイルフォーマットに依存しておらず、さらにクリップのユーザ領域を用いた特別な処理や機能を追加しなくてもよい。このように、エディットリストを用いて汎用的にデータの記録、再生、編集処理を行うことで、特定の機種や機能に依存することなく、記録、再生、編集を行うことができるという効果がある。
また、本発明では、元の長時間クリップにおける各分割クリップの時間軸上の位置付けが、エディットリストの中に明示的に記述されている。すなわちClip-iの位置付けはEditList-i中のEditList-(i+1)を参照した<video>要素のclipBegin属性値からClip-iの時間長を減じた値に相当する。このため、複数のメモリカードに亘って長時間クリップが記録されていたとしても、メモリカードを撮像装置1に挿し込むと同時に、長時間クリップに対する分割クリップの時間軸上の位置付けが容易に判るようになるという効果がある。
また、エディットリストは、相互参照可能であり、互いのエディットリストの情報を引き継ぐことができる。このため、メディア毎、エディットリスト毎等でクリップを参照するために複雑な設定を行う必要がなくなるという効果がある。また、エディットリスト自体は、単なるデータの再生手順情報であるため、実際にデータが記録されているクリップ、ファイルに影響を及ぼさない。このため、エディットリストの書き換えは容易に行うことができるという効果がある。
また、本発明では、全てのエディットリストに分割ファイルへの参照情報が記述されるため、あるエディットリストが喪失した場合の耐性が著しく高まるという効果がある。特に最後の全編エディットリスト(EditList-n)は、他のエディットリストに依存しない完全な情報を有していることから、元の長時間クリップを再構成する場合には、単にEditList-nだけを処理対象にすればよく、実装が一層容易になるといった効果がある。
また、クリップの再生手順情報として、クリップの前後関係を参照できるような情報であるエディットリストを各々の分割クリップと共に書き込むようにしている。このため、再生時には、1つの分割クリップの再生が終了しても、次の分割クリップを連続して再生することができる。さらに、ランダムアクセス可能な媒体に記録してあるファイルであれば、必要な箇所だけをダイジェスト再生、例えば5秒単位、10秒単位で再生シーンをつなげるといった再生を行うこともできる。もちろん分割クリップの再生順は、ユーザの好みに応じて並べ替えてもよい。
さらに本発明では、複数のメディアに分割して記録されたファイル、クリップ等を容易に編集することができる。この場合、編集機能を備えた撮像装置や、撮像装置から伝送されたデータを蓄積したサーバ上で編集が行われる。そして、エディットリストを用いることで複数の分割ファイルの前後関係を認識することが容易となるという効果がある。また、複数の分割ファイルとして長時間クリップが分割されていても論理的につなげて1つの長時間クリップとして認識することが容易となるという効果もある。
また、記録時において、長時間クリップが複数のメディアにまたがる場合であっても、複数の半導体メモリを半導体メモリインタフェースに挿し込んだままで、1つの半導体メモリの記憶容量が満杯になったら次の半導体メモリに書き込むようにすることができる。記録途中には、半導体メモリに対してエディットリスト(中途エディットリスト)を書き込んでいるため、元のクリップ全体に対する記録中のクリップの位置を確実に知ることができるという効果がある。
なお、エディットリストで指定したUMIDを、個別のURLに変換するようにしてもよい。このように変換することで、ユーザがどこにいてもインターネット経由でデータを取得し、視聴することが可能となり、利便性が向上するという効果がある。また、ストリーミング配信時においても、複数の分割クリップに対してエディットリストを付加することで、受信した分割クリップを元の長時間クリップに再構築することが容易となるという効果がある。
また、上述した実施の形態では、半導体メモリインタフェースを複数備えて、1つの半導体メモリの容量が満杯になったら、他の半導体メモリに取り替えてデータを書き込んでいくようにしたが、半導体メモリインタフェースを1つだけとしてもよい。この場合、撮像装置の内蔵メモリを多く確保することで、上述した実施の形態と同様にエディットリストを作成し、複数のクリップへの記録、編集を行うことができる。また、撮像装置に高速なネットワーク回線を接続することで記録するデータをネットワーク回線経由でサーバやコンピュータ装置に伝送するようにしてもよい。
また、上述した実施の形態に係る撮像装置は、取り外し可能な複数の記録媒体を用いて、映像と音声の記録と再生を行う場合に適用するようにしたが、その他の用途(例えば、監視カメラ)に用いても同様の機能、効果を得ることができることは言うまでもない。また、上述した実施の形態に係る撮像装置は、記録媒体として半導体メモリを用いるようにしたが、光ディスク、磁気ディスク等のその他の記録媒体を用いてデータを記録するようにしてもよい。あるいは、記録するデータは常時ネットワークでサーバ等に伝送するようにしてもよい。