以下、本発明の実施の形態について、図面を参照して詳細に説明する。
なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
以下に述べる実施の形態では、QT(Quick Time)フォーマット及びQTフォーマットをベースにしたISO Base Media ファイルフォーマット(MPEG4−part12)と、そのアプリケーションフォーマットであるMPEG4(MP4) MPEG4−part14やMotion JPEG2000(MJ2)ファイルフォーマット、AVC(Advanced Video Coding :MPEG4−part15)ファイルフォーマットのような実データ格納部と管理情報格納部に分かれた形式のファイル構造を持つ、画像や音声などのマルチメディアファイルを作成するソフトウェアやハードウェアによるファイル作成方法について説明する。
本発明は、例えば光ディスクを記録媒体とするMPEGで圧縮した信号をQTベースのファイルフォーマット形式で記録するビデオディスクカメラに適用される。
図1は、本発明を適用したビデオディスクカメラにおける記録再生装置として用いられるビデオディスク装置30の構成を示すブロック図である。
このビデオディスク装置30は、図示しない撮像手段、音声取得手段により被写体のビデオ信号、オーディオ信号を取得し、このビデオ信号及びオーディオ信号による撮像結果を光ディスク20に記録し、この光ディスク20に記録した撮像結果を再生して液晶表示パネルによる表示手段、スピーカによる音声出力手段より出力し、また外部機器に出力するものであって、上記光ディスク20を回転駆動するスピンドルモータ21、上記光ディスク20を介してデータの記録・再生を行うための磁気ヘッド22及び光学ヘッド23を備える。
また、このビデオディスク装置30は、図示しない撮像手段により取得された被写体のビデオ信号が入力されるビデオ符号化器1、図示しない音声取得手段により取得されたオーディオ信号が入力されるオーディオ符号化器2、図示しない液晶表示パネルによる表示手段にビデオ信号を出力するビデオ復号器3、図示しないスピーカによる音声出力手段にオーディオ信号を出力するオーディオ復号器4、上記ビデオ符号化器1及びオーディオ符号化器2に接続されたファイル生成器5、上記ビデオ復号器3及びオーディオ復号器4に接続されたファイル復号器6、上記ファイル生成器5及びファイル復号器6に接続されたメモリコントローラ7、このメモリコントローラ7に接続されたメモリ8及びエラー訂正符号/復号器9、このエラー訂正符号/復号器9に接続されたメモリ10及びデータ変復調器11、このデータ変復調器11に接続された磁界変調ドライバ12を備え、上記磁気ヘッド22が磁界変調ドライバ12に接続され、また、上記光学ヘッド23が上記データ変復調器11に接続されている。
さらに、このビデオディスク装置30は、システム制御用のマイクロコンピュータ(以下、システム制御マイコンという)13、ドライブ制御用のマイクロコンピュータ(以下、ドライブ制御マイコンという)14及びサーボ回路15を備える。
このビデオディスク装置30において、動画を記録する時は、まず最初に、ビデオ信号はビデオ符号化器1に入力されて符号化され、オーディオ信号はオーディオ符号化器2に入力されて符号化されて、各々ディジタル信号のデータ列に変換される。ここで、ビデオ及び音声の符号化器1、2では、例えば、MPEGによるビデオ圧縮及び音声圧縮を行う。
すなわち、ビデオ符号化器1は、撮像結果として得られたビデオ信号をアナログディジタル変換処理してビデオデータを生成し、このビデオデータをMPEGのフォーマットに従って符号化処理し、ビデオデータによるエレメンタリストリームを出力する。またオーディオ符号化器2は、撮像結果として得られたオーディオ信号をアナログディジタル変換処理してオーディオデータを生成し、このオーディオデータをMPEGのフォーマットに従って符号化処理し、オーディオデータによるエレメンタリストリームを出力する。
次に、圧縮されたビデオデータ及びオーディオデータは、ファイル生成器5により、ビデオ及び音声の符号化時の同期がとられて多重化される。また、ファイル生成器5には、後述するQTフォーマットに準じたファイル形式を生成するための、ムービーアトム(タイプ名:‘moov’)と称される多重化する実データを管理する情報を格納する部分を、実装メモリとそのメモリ上で組み上げるソフトウェア並びにハードウェアを含んでいる。このムービーアトム(Movie Atom)は1回の記録撮影中に随時ディスクに記録していくものではなく、記録撮影が終了して初めてムービーアトム(Movie Atom)が完結できるものであるので、実装メモリ上で随時組み上げておき、記録撮影が終了した時点で最終的にディスク上に記録されるものである。加えて、多重化される実データは後述するQTフォーマットでは、メディアデータアトム(タイプ名:‘mdat’)と称される部分に格納されることになり、ムービーアトム(Movie Atom)とは異なり、記録中に随時、次のような処理を経てディスク上に記録されて行く。
そして、多重化されたデータは、メモリコントローラ7を介して、メモリ8に順次書き込まれる。メモリコントローラ7は、システム制御マイコン13によって入力されるディスクへのデータの書き込み要求に応じて、メモリ8から多重化されたビデオデータ及びオーディオデータを読み出して、エラー訂正符号/復号器9に出力する。ここで、ビデオデータ及びオーディオデータを多重化したデータの転送レートが、ディスクへのデータ書き込みの転送レートよりも低い場合には、多重化されたデータは、通常、ほぼ連続的にメモリ8に書き込まれるのに対して、メモリ8からの読み出しは、メモリ8がオーバーフロー及びアンダーフローしないことをシステム制御マイコン13が監視しながら、間欠的に行われる。
すなわち、ファイル生成器5は、記録時にビデオ符号化器1及びオーディオ符号化器2から出力されるビデオデータ及びオーディオデータの各エレメンタリストリームを同期化して多重化処理し、システム制御マイコン13の制御によりQTファイルを作成する。このためファイル生成器5は、順次入力されるビデオデータ及びオーディオデータの各エレメンタリストリームを多重化してムービーデータアトム(Movie Data Atom )のデータを順次出力しながら、このムービーデータアトム(Movie Data Atom )のデータに対応してメモリ8にムービーアトム(Movie Atom)の生成に必要なデータを追記して保持し、ムービーデータアトム(Movie Data Atom )の記録の完了によりメモリ8に保持したデータからムービーアトム(Movie Atom)のデータ列を生成して出力する。
エラー訂正符号/復号器9は、メモリコントローラ7から入力された多重化データをメモリ10に一旦書き込んで、インターリーブ及びエラー訂正のための符号を付加した後、再び、メモリ10から読み出して、データ変復調器11に出力する。
データ変復調器11は、光ディスク20に記録するための所定の変調を施した後、磁界変調ドライバ12に出力すると同時に、光学ヘッド23を駆動するための信号を出力する。磁界変調ドライバ12は、入力された信号に応じて、磁界用のコイルを駆動して光ディスク20に磁界を印加する。光学ヘッド23は、記録用のレーザービームを光ディスク20に照射して、光ディスク20に信号を記録する。なお、光ディスク20への記録動作は、メモリコントローラ7から読み出される間欠的なデータに対して記録処理を行うので、通常は、連続的な記録が行われずに、一定のデータ量を記録したら記録動作を中断して、次の記録要求まで待機するような動作を行う。これらの動作は、システム制御マイコン13からの要求に応じて、ドライブ制御マイコン14が、サーボ回路15に要求を出して、ディスクドライブ全体の制御を行う。
ここで、光ディスク20は、ディスク状記録媒体であり、この実施例では、光磁気ディスク(MO:Magneto-Optical Disk)、相変化型ディスク等の書き換え可能な光ディスクである。スピンドルモータ21は、この光ディスク20のフォーマットに従って、サーボ回路15の制御により線速度一定(CLV:Constant Linear Velocity)、角速度一定、(CAV:Constant Angular Velocity)、ゾーンCLV(ZCLV:Zone Constant Linear Velocity )等の条件により光ディスク20を回転駆動する。
サーボ回路15は、光学ヘッド23から出力される各種信号に基づいて、スピンドルモータ21の動作を制御し、スピンドル制御の処理を実行する。また、サーボ回路15は、同様にして光学ヘッド23をトラッキング制御、フォーカス制御し、また光学ヘッド23及び磁界ヘッド22をシークさせ、さらにはフォーカスサーチ等の処理を実行する。
ドライブ制御マイコン14は、システム制御マイコン13の指示により、これらサーボ回路15におけるシーク等の動作を制御する。
光学ヘッド23は、光ディスク20にレーザービームを照射してその戻り光を所定の受光素子により受光し、受光結果を演算処理することにより、各種制御用の信号を生成して出力し、また光ディスク20に形成されたピット列、マーク列に応じて信号レベルが変化する再生信号を出力する。また、光学ヘッド23は、システム制御マイコン13の制御により動作を切り換え、光ディスク20が光磁気ディスクの場合、記録時、光ディスク20に照射するレーザービームの光量を間欠的に立ち上げる。すなわち、このビデオディスク装置30では、いわゆるパルストレイン方式により光ディスク20に撮像結果を記録するようになされている。また光学ヘッド23は、光ディスク20が相変化型ディスク等の場合、データ変復調器11の出力データに応じて光ディスク20に照射するレーザービームの光量を再生時の光量から書き込み時の光量に立ち上げ、熱記録の手法を適用して光ディスク20に撮像結果を記録するようになされている。
このように、このビデオディスク装置30では、撮像結果として得られたビデオ信号及びオーディオ信号をビデオ符号化器1及びオーディオ符号化器2によりデータ圧縮してエレメンタリストリームに変換した後、ファイル生成器5によりQTフォーマットのファイルに変換し、メモリコントローラ7、エラー訂正符号/復号器9、データ変復調器11を順次介して、光学ヘッド23及び磁界ヘッド22により、このQTフォーマットのファイルを光ディスク20に記録する。
次に、このビデオディスク装置30における再生時の動作について説明する。
すなわち、このビデオディスク装置30において、再生時には、光学ヘッド23により再生用のレーザービームを光ディスク20に照射して、光ディスク20から反射されたビーム量から電気信号に光電変換し、再生信号を得る。再生時においても、記録時と同様、記録されているビデオデータ及びオーディオデータの多重化信号よりも高い転送レートで再生する場合には、通常は、連続的な再生が行われずに、一定のデータ量を再生したら再生動作を中断して、次の再生要求まで待機するような動作を行う。これらの動作は、記録時と同様、システム制御マイコン13からの要求に応じて、ドライブ制御マイコン14が、サーボ回路15に要求を出して、ディスクドライブ全体の制御を行う。
光学ヘッド23により再生された信号は、データ変復調器11に入力されて、所定の復調処理を施した後、エラー訂正符号/復号器9を介してメモリ10に一旦書き込まれ、エラー訂正符号/復号器9によるデ・インターリーブ及びエラー訂正処理が行われる。エラー訂正処理されたデータは、ビデオデータ及びオーディオデータの多重化データとして復元されているので、そのデータは、メモリコントローラ7を介してメモリ8に書き込まれる。メモリ8に書き込まれた多重化データは、システム制御マイコン13の要求に応じて、多重化を解く同期のタイミングに合わせて、ファイル復号器6に出力されて、ビデオデータとオーディオデータに分離される。また、ファイル復号器6では、ムービーアトム(タイプ名:‘moov’)に格納された実データ管理情報の解読を行い、メディアデータアトム(タイプ名:‘mdat’)の中に多重化されて格納された実データをどのように復号及び出力すれば良いかを解釈する。分離されたビデオデータは、ビデオ復号器3によって復号されてビデオ信号として出力される。同様に、オーディオデータは、オーディオ復号器4によって復号されてオーディオ信号として出力される。
ここで、システム制御マイコン13は、ビデオデータ及びオーディオデータを連続再生するために、メモリ8から読み出してビデオ復号器3及びオーディオ復号器4に出力されるデータ量と、光ディスク20から信号を再生してメモリ8に書き込まれるデータ量を監視して、メモリ8がオーバーフロー又はアンダーフローしないように、メモリコントローラ7やドライブ制御マイコン14に対して、ディスクからのデータの読み出し要求を行う。
なお、本実施例での光ディスクは磁界変調を行う光磁気ディスクを想定して書いているが、相変化ディスクになっても基本は同じである。
次に、QTフォーマットについて概略的に説明する。
QTフォーマットは、特殊なハードウエアを用いずに動画等を再生するためのOS(Operating System) の拡張機能として生まれたファイルフォーマットである。QTフォーマットは、動画、音声、静止画、文字、MIDI等の種々の形式による実データを1つの時間軸で同期させて再生することができるタイムベースのマルチメディアファイルフォーマットであり、ネットワーク上のストリーミングにも対応できるようになされている。
QTファイルにおいて、これら種々の形式による実データは、メディアデータとしてそれぞれ個別のトラックとして格納され、それぞれ動画、音声、文字による実データのトラックがビデオトラック、サウンドトラック(オーディオトラック)、テキストトラックと称され、時間軸で厳密に管理されている。なおQTファイルには、他にも、ビデオデータとオーディオデータが多重化されたデータ、例えばMPEG2-PS(Program Stream)データを管理するMPEG2-PSトラックなども有る。
QTファイルは、大きくはムービーアトム(タイプ名:‘moov’)と、ムービーデータアトム(タイプ名:‘mdat’)と呼ばれる2つの部分に分かれている。トラックの集合によりムービーデータアトム(Movie Data Atom )が形成され、このムービーデータアトム(Movie Data Atom )の各トラックの管理情報等がまとめられてムービーアトム(Movie Atom)が形成される。
なお、アトムは、ボックス(Box)と表現することもある。また、ムービーアトム(Movie Atom)は、ムービーリソース(Movie Resource)と表現することもある。さらに、メディアデータアトム(Media Data Atom)は、ムービーデータ(Movie Data)と表現することもある。
ムービーアトム(Movie Atom)には、このQTベースのファイルを再生するのに必要な時間情報や実データ(‘mdat’)を参照するのに必要な場所情報などが格納されており、また、メディアデータアトム(Media Data Atom)にビデオやオーディオの実データが格納されている。なお、QTベースのファイルフォーマットは、‘moov’と‘mdat’を1つのファイル内に閉じて格納している必要性はなく、例えば、他のファイルに存在するメディアデータを参照できるように、ムービーアトム(Movie Atom)内には、外部参照するメディアデータを含んでいる外部ファイル名を、例えば記録媒体上の相対パスや絶対パスを用いて指定する管理情報もムービーアトム(Movie Atom)内に格納することができる。
ここで、図2に、光ディスク20上に記録したQTベースのファイルの簡略化した構造の一例を示す。
図2に示した光ディスク20には、2種類のQTファイルF1,F2を記載しており、1つのQTファイルF1はムービーアトム(Movie Atom)とメディアデータアトム(Media Data Atom)をセットで持つ自己内包型ファイルである。もう一つのQTファイルF2は、ファイルとしてはムービーアトム(Movie Atom)のみで構成され、別ファイル中の実データを参照する、外部参照型ファイルである。
次に、図3に、一例としてオーディオデータと画像データとを扱うQTベースのファイルの構造を示す。
最も大きな構成部分は、ムービーアトム(Movie Atom)110とメディアデータアトム(Media Data Atom)120である。ムービーアトム(Movie Atom)には、そのファイルを再生するのに必要な時間情報や実データ参照のための場所情報などが格納される。また、メディアデータアトム(Media Data Atom)には、ビデオやオーディオなどの実データが格納される。
ムービーアトム(Movie Atom)110には、サウンドやビデオやテキストといった異なるタイプのメディアデータ(Media Data)をそれぞれ別のトラックとして格納する為のトラック(Track)と呼ばれる階層が必要に応じて複数存在する。各トラック(Track)には、それぞれの実データの圧縮方式や格納場所や表示時間を管理するためのメディア階層を持っており、その中で、実データを格納したメディアデータアトム(Media Data Atom)120に、どのような単位でデータを格納されているかを示す管理最小単位のサンプル(Sample)のサイズや、そのサンプル(Sample)を幾つか集めてブロック化したチャンク(Chunk)、そのチャンク(Chunk)の格納場所、そして各サンプル(Sample)の表示時間などの情報を格納している。
そして、ムービーアトム(Movie Atom)110には、メディアデータアトム(Media Data Atom)120に格納したトラック毎のデータに関する情報を記述するトラックアトム(‘trak’)の階層構造を有する。また、トラックアトム(Track Atom)には、そのトラックで実際に用いられる実データに関する情報を記述するメディアアトム(‘mdia’)の階層構造を有する。メディアアトム(Media Atom)には、そのメディアタイプで表現される情報を記述するメディアインフォメーションアトム(‘minf’)の階層構造を有する。メディアインフォメーションアトム(Media Information Atom)には、そのメディアの実データの最小管理単位であるサンプル(Sample)に関する情報を記述するサンプルテーブルアトム(‘stbl’)の階層構造を有する。なお、このムービーアトム図は、1つのビデオトラックに関して詳細を記載したものであり、図示を省略するが、オーディオトラックに関して同様の構造が記述される。
ムービーアトム(Movie Atom)110には、ファイル全体に関わるヘッダー情報を記述するムービーへッダーアトム(‘mvhd’)が含まれる。
トラックアトム(Track Atom)には、トラック全体に関わるヘッダー情報を記述するTトラックヘッダーアトム(‘tkhd’)と、トラックを構成するメディアとの時間関係に関する情報を記述するエディットアトム(‘edts’)が含まれる。エディットアトム(Edit Atom)には、トラックの時間軸とメディアの時間軸の関係を記述するエディットリストアトム(‘elst’)が含まれる。
メディアアトム(Media Atom)110には、メディア全体に関わるヘッダー情報を記述するメディアヘッダーアトム(‘mdhd’)と、メディア毎の取り扱いに関する情報を記述するハンドラーリファレンスアトム(‘hdlr’)が含まれる。
メディアインフォメーションアトム(Media Information Atom)には、ビデオトラックならばビデオメディアに関わるヘッダー情報を記述するビデオメディアヘッダーアトム(‘vmhd’)、そのデータの取り扱いに関する情報を記述するハンドラーリファレンスアトム(‘hdlr’)、実際に参照するデータの格納先に関する情報を記述するデータインフォメーションアトム(‘dinf’)が含まれる。データインフォメーションアトム(Data Information Atom)には、参照する実データの格納方法や場所やファイル名に関する情報を記述するデータリファレンスアトム(‘dref’)が含まれる。なお、オーディオトラックならばサウンドメディアに関わるヘッダー情報を記述するサウンドメディアヘッダーアトム(‘smhd’)が、ビデオメディアヘッダーアトム(‘vmhd’)の代わりに含まれる。
サンプルテーブルアトム(Sample Table Atom)には、各サンプル(Sample)に関する圧縮方式やその特性に関する情報の記述を行うサンプルディスクリプションアトム(‘stsd’)、各サンプル(Sample)と時間の関係を記述する時間サンプルアトム(‘stts’)、各サンプル(Sample)のデータ量を記述するサンプルサイズアトム(‘stsz’)、チャンク(Chunk)とそのチャンク(Chunk)を構成するサンプル(Sample)の関係を記述するサンプルチャンクアトム(‘stsc’)、ファイル先頭からの各チャンク(Chunk)の先頭位置を記述するチャンクオフセットアトム(‘stco’)、各サンプル(Sample)のランダムアクセス性を記述するシンクサンプルアトム(‘stss’)、各サンプル(Sample)と表示上の時間との関係を記述するコンポジションタイムサンプルアトム(‘ctts’)などが格納されている。
ここで、図4には、ほぼ同等のアトム構造をC言語風に一覧記述したものを示してある。
なお、図3や図4を用いて示した構造は、QTフォーマットをベースとするファイル構造の一例であり、ここに示す構造以外にも用いられるアトムタイプが存在するが、主要なものを示している。
これに対して、メディアデータアトム(Media Data Atom)には、例えばMPEG1 Audio Layer2に基づく圧縮符号化方式によって符号化されたオーディオデータ、及び例えばMPEG2 Video規定に従う圧縮符号化方式によって符号化された画像データが、それぞれ所定数のサンプル(Sample)で構成されるチャンク(Chunk)を単位として格納されている。勿論、符号化方式はこれらに限定するものではなく、例えばMotion JPEGやMotion JPEG2000やMPEG4やAVC(Advanced Video Coding :MPEG4−part10)、オーディオならDolby AC3やATRAC(Adaptive Transform Acoustic Coding)などでも良く、また、圧縮符号化が施されていないリニアデータを格納することも可能である。
次に、本発明においてのビデオエフェクトを含むQTベースのアトム構造の例をC言語風に一覧記述したものを図4乃至図8に示す。
なお、図3や図4乃至図8を用いて示したアトム構造は、QTフォーマットをベースとするファイル構造の一例であり、ここに示す構造以外にも用いられるアトムタイプが存在するが、主要なものを示している。
これに対して、メディアデータアトム(Media Data Atom)には、例えばMPEG1 Audio Layer2に基づく圧縮符号化方式によって符号化されたオーディオデータ、及び例えばMPEG2 Video規定に従う圧縮符号化方式によって符号化された画像データが、それぞれ所定数のサンプル(Sample)で構成されるチャンク(Chunk)を単位として格納されている。勿論、符号化方式はこれらに限定するものではなく、例えばMotion JPEGやMotion JPEG2000やMPEG4やAVC(Advanced Video Coding :MPEG4−part10)、オーディオならDolby AC3やATRAC(Adaptive Transform Acoustic Coding)などでも良く、また、圧縮符号化が施されていないリニアデータを格納することも可能である。
図4及び図5に示すファイルは、QTにおいて1ソースエフェクト(One-source Effect)と称される、エフェクトを施す対象トラック(ソーストラック)となる一つのビデオトラックに対して、所望のビデオエフェクトを施すエフェクトトラックを含んだ基本的なものである。実現されるエフェクト例としては、1つのビデオソースに対するフィルタ効果例として、モノクロームやセピア色変換、ぼかしやモザイクなどが挙げられる。
また、図6,図7及び図8に示すファイルは、QTにおいて2ソースエフェクト(Two-source Effect)と称される、エフェクトを施す対象トラック(ソーストラック)となる二つのビデオトラックに対して、所望のビデオエフェクトを施すEffectトラックを含んだ基本的なものである。実現されるエフェクト例としては、2つのビデオソース間のトランジション効果例として、ワイプやクロスフェードなどが挙げられる。
なお、本発明においては、ビデオエフェクトを対象としているので、オーディオトラックは図には記載していない。また、上記のエフェクトにとっての入力ソースとなるトラックは、ビデオトラックに加え、ビデオデータとオーディオデータが多重化されている、例えばMPEG−PSトラックも対象となる。
図4乃至図8において、エフェクトトラックはメディアタイプとしては、通常のビデオトラックと同じく、ビデオメディアとして扱われる。従って、トラックアトム(Track Atom)以下の構造は、ほぼ同じものであるが、次に挙げる2点のみ、エフェクトトラックとして機能する為に追加で必要となるアトム構造が存在する。
エフェクトトラックのトラックアトム(Track Atom)には、エフェクトを施す対象であるソーストラックとの参照関係を指定する為の情報を記述するトラックリファレンスアトム(‘tref’)が必要となる。トラックリファレンスアトム(Track Reference Atom)には、実際にソーストラックを指定する為に、指定対象となるトラックのトラックヘッダーアトム(Track Header Atom)内に格納されているトラック固有のトラックIDを指定するトラックリファレンスタイプアトム(‘ssrc’)が含まれる。なお、ソーストラックが一つである1ソースエフェクトにおいては、トラックリファレンスタイプアトム(Track Reference Type Atom)に格納するトラックIDは1個で、ソーストラックが二つである2ソースエフェクトにおいては2個となる。
また、エフェクトトラックのメディアアトム(Media Atom)には、エフェクトトラックにとって、エフェクトを施す対象でありエフェクトトラックにとっての入力であるソーストラックに関する情報を記述するトラックインプットマップアトム(‘imap’)が必要となる。トラックインプットマップアトム(Track Input Map Atom)には、これまでに登場したアトム構造とは少し異なり、QTにおいてQTアトム構造と呼ばれるもので構成されており、QTアトムコンテナ(‘sean’)を最上位アトムとするコンテナによってパッキングされたトラックインプットQTアトム(‘in’)が必要に応じて複数含まれる。トラックインプットQTアトム(Track Input QTatom)には、入力ソースがビデオメディアであることを指定するインプットタイプQTアトム(‘ty’)、それからソーストラックに対して固有の名称を与えるデータソースタイプQTアトム(‘dtst’)が含まれる。
なお、図4乃至図8に示すとおり、ソーストラックが一つである1ソースエフェクトにおいては、トラックインプットQTアトム(Track Input QTatom)は1個で、ソーストラックが二つである2ソースエフェクトにおいては2個となる。
なお、詳細は省略するが、エフェクトトラックの実データは、ソーストラックのビデオデータと同じく、エフェクトサンプル毎にムービーデータアトム(Movie Data Atom)内に格納される。格納されるエフェクトトラックのデータとは、下記で説明するエフェクトトラックのサンプルディスクリプションアトム(Sample Description Atom)内で、データフォーマットフィールドにて設定するエフェクト種別ごとに定義された、そのエフェクト処理の為のパラメータデータを必要に応じて格納する。
ここで、図4及び図5にて例示した1ソースエフェクトの実現例として、ムービーファイルにおけるトラック構成、ムービーアトム(Movie Atom)構造の概略及びムービーデータアトム(Movie Data Atom)構造の概略を図9に示す。
この図9に示す実現例は、(A)に示す1つのソーストラックに対して、そのトラックのある特定区間に所望のフィルタエフェクトを(B)に示すエフェクトパラメータデータに従って、(C)に示すムービーアトム(Movie Atom)により施すもので、その特定区間以外はNullエフェクト(Null Effect)を施す例である。特定のエフェクト種別に特定のパラメータ設定をすることによって実現される見た目上効果のないエフェクトをNullエフェクトと呼ぶ。この実現例では、ソーストラックが1つで、そのソーストラックを指定する為に、トラックリファレンスアトム(‘tref’)を使ってソーストラックのトラックID番号として[1]を指定し、トラックインプットマップアトム(‘imap’)を使ってソース固有の名前として‘srcA’を与えている。
また、図6乃至図8にて例示した2ソースエフェクトの実現例として、ムービーファイルにおけるトラック構成、ムービーアトム(Movie Atom)構造の概略及びムービーデータアトム(Movie Data Atom)構造の概略を図10に示す。
この図10に示す実現例は、(A)及び(B)に示す2つのソーストラックを使って、それらのトラックを重ねる特定区間に対して所望のトランジションエフェクトを(C)に示すエフェクトパラメータデータに従って、(B)に示すムービーアトム(Movie Atom)により施すもので、その特定区間以外は、どちらかのソーストラックに対してNullエフェクト(Null Effect)を施す例である。この実現例では、ソーストラックが2つで、それらのソーストラックのTrack ID番号として1つ目は1、2つ目は2を指定し、ソース固有の名前として1つ目は‘srcA’、2つ目は‘srcB’を与えている。
なお、所望のエフェクト(エフェクト種別2)を施す区間を図9(B)及び図10(B)では網掛けとして示している。網掛け以外の区間は、1つ目もしくは2つ目のソーストラックに対してある特定のエフェクト(エフェクト種別1)を、後述するエフェクトパラメータとして標準値を与えることにより、見かけ上は効果が現れない設定としている。また、エフェクトトラックは3つのエフェクトサンプルを持ち、1つ目と3つ目のエフェクトサンプルがエフェクト種別1のサンプルである。2つ目のエフェクトサンプルはエフェクト種別2のサンプルである。
このようにQTファイルでは、図9(C)及び図10(C)にそれぞれ1ソースエフェクト及び2ソースエフェクトに係るムービーアトム(ムービーリソース)とムービーデータアトムとの関係を示すように、エフェクトトラックETのトラックリファレンスアトム(Track Reference Atom(tref))、トラックインプットマップアトム(Track Input Map Atom(imap))によりソーストラックST、ST1、ST2を特定できるようになされている。なお、図9(A)〜(C)、図10(A)〜(C)は、実データに係るビデオデータとエフェクトの処理との関係をエフェクトトラックとの対比により示している。
次に、QTにおける多重エフェクトについて説明する。
多重エフェクトは、QTにおいてスタックエフェクト(Stack Effect)と称される。オリジナルのビデオトラックをソーストラックとしたエフェクトトラックを別のエフェクトトラックのソーストラックとすることができる。実現されるエフェクト例としては、セピア色変換したものにぼかしを施すなどが挙げられる。
通常のエフェクトはエフェクトトラックのソーストラックとしてオリジナルのビデオトラックを用いるが、多重エフェクトはソーストラックとしてエフェクトトラックを用いる点が異なる以外は、通常のエフェクトと同様にとトラックリファレンスアトム(‘tref’)、トラックインプットマップアトム(‘imap’)を構成することで実現される。ただし、多重エフェクト実現するにはサンプルテーブルアトム(Sample Table Atom)において次に示す点が異なる。
別のエフェクトのソーストラックとして用いられるエフェクトトラックには、そのサンプルディスクリプションアトム(‘stsd’)の中に格納するサンプルディスクリプションエントリーテーブル(Sample Description Entry Table)に拡張アトムが必要である。
ここで、この点について具体的に説明する。
本来、エフェクトトラックにおけるサンプルディスクリプションアトム(‘stsd’)においては、ビデオトラックにおける圧縮符号化方式を指定する為のデータフォーマットフィールドが存在する。このフィールドにはアスキーコードとして4文字アルファベット(4Byte)を用いて、その圧縮符号化方式を指定する。QTのエフェクトトラックにおいては、このフィールドに圧縮符号化方式ではなく、エフェクト種別を示す情報を同じく4文字アルファベットとして格納するものである。
多重エフェクトを実現するには、別のエフェクトトラックのソーストラックとして用いられるエフェクトトラックのサンプルディスクリプションエントリー(Sample Description Entry)内に、イメージディスクリプションエクステンションディスクライビングサンプルフォーマットアトム(‘idfm’)を拡張追加する必要がある。拡張アトムのタイプ名は、‘idfm’である。4Byteのデータフィールドを1つ持ち ‘fxat’の4文字アルファベットを指定する。このデータフィールドを持つエフェクトトラックがエフェクトトラックのソーストラックとして利用可能になる。
図11に多重でない通常のエフェクトトラックあるいは別のエフェクトトラックのソーストラックとして用いられないエフェクトトラックのサンプル(Sample)の特性や属性などを記述するサンプルディスクリプションアトム(‘stsd’)と、その中に格納するサンプルディスクリプションエントリーテーブル(Sample Description Entry Table)も含めてアトム内部の構造について示す。
ビデオトラックのサンプルディスクリプションアトム(sample description)においては、サンプルディスクリプションアトム(sample description)のサイズ(Size)、タイプ名(stsd)、バージョン、フラグが順次割り当てられる。またこのサンプルディスクリプションアトム(sample description)のエントリ数(number of Entries )が割り当てられ、このエントリ数の分だけ、データ圧縮方式、関連する情報によるエントリ(Videosample description entry)が割り当てられる。
また各エントリ(Video sample description entry)においては、各エントリ(Videosample description entry)のサイズ(Size)が割り当てられ、続くデータフォーマット(Data Format )によりデータ圧縮方式が記述される。なお各エントリ(Video sample description entry)においては、このデータフォーマット(Data Format )に関連する情報として、1サンプルに割り当てるフレーム数を記述するフィールド(Frame Count )等が割り当てられる。
図12には図11と同じ構造で、多重エフェクト時、別のエフェクトトラックのソーストラックとして用いられるエフェクトトラックのサンプルディスクリプションアトム(Sample Description Atom)を同様に示す。
エフェクトトラックのサンプルディスクリプションアトム(sample description)においては、図11との対比により図12に示すように、ビデオトラックのサンプルディスクリプションアトム(sample description)と同様に、サイズ(Size)、タイプ名(stsd)、バージョン、フラグ、エントリ数(number of Entries )が割り当てられ、続いて所定数だけエフェクトに係るエントリ(Effect sample description entry )が割り当てられる。
各エフェクトに係るエントリ(Effect sample description entry )は、さらにリザーブ、データリファレンスインデッス等の、ビデオトラックにおけるエントリと同一のフィールドが連続し、末尾に、データフォーマットの拡張情報を記述する為に用意される拡張アトムが割り当てられる。
なお、この図11及び続く図12においては、括弧書により各フィールドのデータ量をバイト数で示す。
ここで、本発明は、映像及び音声を記録時に再生目的の異なるムービーアトム(Movie Atom)を複数作成することにより実現される利便性を達成するものである。カムコーダで映像及び音声をディスクへ記録撮影する際、オリジナルのムービーのためのムービーアトム(Movie Atom)と、そのムービーにエフェクトの施されたムービーのためのムービーアトム(Movie Atom)の2つを同時に作成する場合を例にして説明する。
以下の説明において、この2つのムービーアトム(Movie Atom)は同一のムービーデータアトム(Movie Data Atom)を外部参照する方式をとる。
まず、概要を説明する。記録撮影中、符号化された映像及び音声データの実態であるムービーデータアトム(Movie Data Atom)が光ディスク20へ順次記録される。同時にオリジナルムービー用のビデオトラックのみを持つムービーデータアトム(Movie Data Atom)がメモリ8へ順次記録される。さらに、同時にビデオトラックとエフェクトトラックを持つムービー用のムービーアトム(Movie Atom)がメモリ8へ順次記録される。記録撮影が終了した時点でムービーデータアトム(Movie Data Atom)が完結すると同時に、2つのムービーアトム(Movie Atom)がメモリ8から光ディスク20上に書き出され、ムービーアトム(Movie Atom)が完結する。このときのオリジナルムービー用のビデオトラックのみを持つムービーアトム(Movie Atom)のトラック構成は図29(C)のようになる。オリジナルトラックを1つだけもつムービーアトム(Movie Atom)となる。また、ビデオトラックとエフェクトトラックを持つムービー用のムービーアトム(Movie Atom)のトラック構成は図29(D)のようになる。オリジナルムービーを管理するソーストラックとエフェクトトラックで構成される。
エフェクトの施されたムービーのためのムービーアトム(Movie Atom)については、映像及び音声を記録または再生時にユーザからの指示によるエフェクトの選択、エフェクトのON/OFFの情報をこのムービーアトム(Movie Atom)のエフェクトトラックの管理情報へ記録または再生終了時に反映する。
記録撮影時のメモリ8内においてムービーアトム(Movie Atom)のデータは、実態そのものが記録されるとは限らず、コード化されて記録されることもある。また、オリジナルのムービーのためのムービーアトム(Movie Atom)と、そのムービーにエフェクトの施されたムービーのためのムービーアトム(Movie Atom)の両アトムで共通な情報はメモリ8内で共用されることもある。
次に、記録撮影時、再生時エフェクト編集の詳細について例を示す。実装される記録撮影時、再生時のプログラムはメイン部とユーザ入力部に分かれる。メイン部は記録撮影時の大まかな流れを受け持つ。ユーザ入力部ではユーザインターフェースの状態によりユーザ要求を発行する部分を受け持つ。
このビデオディスク装置30を搭載したビデオディスクカメラ100は、例えば図13の外観斜視図に示すように、ユーザーインターフェースとして、記録開始ボタン41、再生開始ボタン42、停止ボタン43、エフェクトボタン44、エフェクト種別・パラメータ変更ボタン45、マークボタン46等の各種操作ボタンを備える。
まず、説明に必要な実装プログラムで使用するテーブルとビデオディスクカメラ100のユーザインターフェースについて説明する。メイン部ではエフェクト区間テーブル、マークテーブル、エフェクトスイッチを用いる。まず、それについての説明をする。
エフェクト区間テーブルは、図14に示すように、再生あるいは録画されるエフェクトトラックを持つムービーにおいて、どのような種別・パラメータのエフェクトがどの区間施されるかを記述しているもので、メモリ8上に置かれる。また、ムービーアトム(Movie Atom)内のエフェクトトラック1つにつきエフェクト区間テーブルが1つ存在する。エフェクトトラックを多数もつムービーアトム(Movie Atom)の場合はそれと同数のエフェクト区間テーブルが存在する。エフェクトの施されてない区間(Nullエフェクト区間)はこのテーブルに記述しない。エフェクトを削除する場合は、「エフェクト解除」をエフェクト区間として登録することにより行う。エフェクト区間テーブルへエフェクト区間を追加する場合には追加するエフェクト区間は最後のエントリとして追加する。
ここで、エフェクト区間テーブルを整理する処理について説明する。
図15(A)のようなエフェクト区間テーブルの状態では、図16(A)に示すようにエフェクト区間エントリがオーバーラップしている。
そこで、上記エフェクト区間テーブル整理を行い図15(B)のようにすることによって、図16(B)に示すようにエフェクト区間エントリがオーバーラップしない状態となる。
このように、区間がオーバーラップしている場合は、エフェクト区間テーブルを整理し再構築する。
図15(A)の状態から図15(B)の状態への整理において、00:01:00〜00:02:00区間では、もとからエフェクトがない(Nullエフェクト)。00:01:00〜00:02:00の区間ではEffect_1がそのまま残っている。00:01:00〜00:02:00の区間ではEffect_1がエフェクト解除によりNullエフェクトとなる。さらにそこへEffect_2が埋め込まれ、結果的にEffect_1がEffect_2で上書きされる。00:03:00〜00:04:00の区間ではEffect_1がそのまま残っている。00:04:00〜00:05:00区間ではもとからエフェクトがない(Nullエフェクト)。このような規則で整理が行われる。
また、図16(C)に示すようなエフェクトを与える図15(C)に示すエフェクト区間テーブルを整理すると図15(D)のようにする。すなわち、エフェクト区間を整理してもオーバーラップが残る場合は、エフェクト区間テーブルを新たに作成し、後から追加したエフェクト区間エントリをそこへ移動する。複数のテーブルはそれぞれ複数のエフェクトトラックの管理情報となる。図15(D)に示すエフェクト区間テーブル1,2は、図15(D)に示すEffect_1及びEffect_2を与える。
実際の処理ではエフェクト区間テーブルへの1エントリの登録は、エフェクトがONになった時、OFFになった時の2回に分けて行う。それぞれエフェクト区間登録処理A、エフェクト区間登録処理Bと呼ぶことにする。この処理には、多重エフェクトタイプと上書きタイプの2種類ある。
多重エフェクトタイプのエフェクト区間登録処理Aでは、図17に示すように、エフェクト区間テーブルのエントリーを追加し、エフェクト開始時刻、種別をテーブルに書き込む処理SAを行う。
この多重エフェクトタイプのエフェクト区間登録処理Aでは、処理直後のエフェクト区間テーブルの状態の一例を図18に示すように、エフェクト区間テーブルに所望のエフェクト種別・パラメータ、開始時刻を登録し、継続時間は何も入れない。
そして、多重エフェクトタイプのエフェクト区間登録処理Bでは、エフェクト継続時間を計算し、エフェクト区間テーブルに記録する処理SBを行う。
この多重エフェクトタイプのエフェクト区間登録処理Bでは、図19に示すように、処理直後のエフェクト区間テーブルの状態の一例を図20に示すように、継続時間を登録する。
これに対し、上書きタイプのエフェクト区間登録処理Aでは、図21に示すように、エフェクト区間テーブルのエントリーを追加し、種別を解除として開始時刻をテーブルに書き込む処理SA1を行い、さらに、エフェクト区間テーブルのエントリーを追加し、所望のエフェクトのためのエフェクト開始時刻、種別をテーブルに格納する処理SA2を行う。
この上書きタイプのエフェクト区間登録処理Aでは、処理直後のエフェクト区間テーブルの状態の一例を図22に示すように、エフェクト区間テーブルにエフェクト解除と所望のエフェクトの2つのエントリを追加する。2つのエントリともにエフェクト種別・パラメータ、開始時刻を登録し、継続時間は何も入れない。
そして、上書きタイプのエフェクト区間登録処理Bでは、図23に示すように、エフェクト継続時間を計算し、エフェクト解除用のエフェクト区間テーブルに記録する処理SB1を行い、さらに、エフェクト継続時間を計算し、所望のエフェクトのためのエフェクト区間テーブルに記録する処理SB2を行う。
この上書きタイプのエフェクト区間登録処理Bでは、処理直後のエフェクト区間テーブルの状態の一例を図24に示すように、2つのエントリに対し継続時間を登録する。
さらに、マークテーブルは、図25に示すように、録画開始、再生開始、停止、マークボタンが押されたときに再生または録画開始からの時刻を登録するテーブルである。
ここで、エフェクトの種別及びパラメータはプリセットで開発者が用意したものを選択できるような方法をとる。ユーザは、エフェクト種別・パラメータ変更ボタンによってプリセットのなかから選ぶ。そのなかには、ぼかし・弱、モザイク・小などの他に、任意のエフェクト区間を削除する場合に用いるエフェクト解除も含まれる。
エフェクトスイッチは、ON(エフェクトが施されている)/OFF(エフェクトが施されていない)を表す変数であり、このビデオディスクカメラ100にユーザーインターフェースとして備えられているエフェクトボタン44が押されるごとにON/OFFの状態がトグルする。
次に、ユーザ入力部について説明する。
ユーザ入力部は、メイン部から共通に呼ばれる関数であり、図26のフローチャートに示す手順に従って、記録開始ボタン41、再生開始ボタン42、停止ボタン43、エフェクトボタン44やエフェクト種別・パラメータ変更ボタン45の状態を読み取って、ユーザ要求を発行する処理を行う。
すなわち、先ず、ステップS1では、過去の録画開始要求、再生要求、停止要求ユーザ要求、マーク要求をクリアする。
次のステップS2では、ユーザインターフェースのボタン状態を取得する。
そして、次のステップS3では、記録開始ボタン41が押されたか否かを判定する。
このステップS3における判定結果がYESすなわち記録開始ボタン41が押された場合は、ステップS4に進んで録画開始要求を発行して、ステップS5に進む。
また、このステップS3における判定結果がNOすなわち記録開始ボタン41が押されていない場合は、ステップS5に進む。
ステップS5では、再生開始ボタン42が押されたか否かを判定する。
このステップS5における判定結果がYESすなわち再生開始ボタン42が押された場合は、ステップS6に進んで再生開始要求を発行して、ステップS7に進む。
また、このステップS5における判定結果がNOすなわち再生開始ボタン42が押されていない場合は、ステップS7に進む。
ステップS7では、停止ボタン43が押されたか否かを判定する。
このステップS7における判定結果がYESすなわち停止ボタン43が押された場合は、ステップS8に進んで停止始要求を発行して、ステップS9に進む。
また、このステップS7における判定結果がNOすなわち停止ボタン43が押されていない場合は、ステップS9に進む。
ステップS9では、エフェクトボタン44が押されたか否かを判定する。
このステップS9における判定結果がYESすなわちエフェクトボタン44が押された場合は、ステップS10に進んでエフェクトスイッチがON状態にあるか否かを判定する。
このステップS10における判定結果がYESすなわちエフェクトスイッチがON状態にある場合にはステップS11に進んでエフェクトスイッチをOFFにして、ステップS13に進む。
また、このステップS10における判定結果がNOすなわちエフェクトスイッチがOFF状態にある場合にはステップS12に進んでエフェクトスイッチをONにして、ステップS13に進む。
さらに、上記ステップS9における判定結果がNOすなわちエフェクトボタン44が押されていない場合は、ステップS13に進む。
ステップS13では、エフェクト種別・パラメータ変更ボタン45が押されたか否かを判定する。
このステップS13における判定結果がYESすなわちエフェクト種別・パラメータ変更ボタン45が押された場合は、ステップS14に進んでエフェクト種別・パラメータを変更して、ステップS15に進む。
また、このステップS13における判定結果がNOすなわちエフェクト種別・パラメータ変更ボタン45が押されていない場合は、ステップS15に進む。
ステップS15では、マークボタン46が押されたか否かを判定する。
このステップS15における判定結果がYESすなわちマークボタン46が押された場合は、ステップS16に進んでマーク要求を発行して、ユーザ入力処理を終了する。
また、このステップS15における判定結果がNOすなわちマークボタン46が押されていない場合は、直ちにユーザ入力処理を終了する。
次に、メイン部について説明する。
記録撮影時にユーザからの指示によりエフェクトが任意の時間に任意のエフェクト区間が作成され、撮影開始から終了するまで終始エフェクトを施さなかった場合はNullエフェクトを施す処理の例を示す。メイン部は、図27のフローチャートに示す手順に従って、この処理を行う。
すなわち、ステップS21では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS22では、録画開始要求があったか否かを判定する。
このステップS22における判定結果がNOすなわち録画開始要求がない場合には上記ステップS21に戻り、上記ステップS21とステップS22の処理を繰り返すことにより、ユーザから録画開始要求があるまで待機している。
そして、このステップS22における判定結果がYESすなわち録画開始要求があると、次のステップS23に進む。
ステップS23では、エフェクトスイッチがON状態にあるか否かを判定する。
このステップS23判定結果がNOすなわちエフェクトスイッチがOFFのときは、そのままステップS25に進む。
また、このステップS23判定結果がYESすなわちエフェクトスイッチがONのときはステップS24に進んで、上述のエフェクト区間登録処理Aを行って、すなわち、(その時点でのエフェクト種別・パラメータと開始時刻をエフェクト区間テーブルへ記録して、ステップS25に進む。
ステップS25では、映像音声データをムービーデータアトム(Movie Data Atom)としてストレージである光ディスク20に記録する。
次のステップS26では、映像や音声の管理情報をムービーアトム(Movie Atom)とし実装メモリ8に記録する。
次のステップS27では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS28では、上記ステップS27におけるユーザ入力としてエフェクトボタン44が押されてエフェクトスイッチの状態が変化したか否かを判定する。
このステップS28判定結果がNOすなわちエフェクトスイッチの状態が変化していないときは、そのままステップS32に進む。
また、このステップS28における判定結果がYESすなわちエフェクトスイッチの状態が変化した場合には、ステップS29に進んで、エフェクトスイッチがON状態にあるか否かを判定する。
そして、このステップS29判定結果がYESすなわちエフェクトスイッチがONのときは、ステップS30に進んで、上述のエフェクト区間登録処理Aを行って、すなわち、ステップS31に進んで、その時点でのエフェクト種別・パラメータと開始時刻をエフェクト区間テーブルへ記録して、ステップS32に進む。
また、このステップS23における判定結果がNOすなわちエフェクトスイッチがOFFのときは、上述のエフェクト区間登録処理Bを行って、すなわち、その時点でエフェクトの開始時刻と終了時刻より継続時間を求めエフェクト区間テーブルに既に記録されているエフェクト種別・パラメータとともに継続時間を記録しエフェクト区間を追加して、ステップS32に進む。
ステップS32では、停止要求があったか否かを判定する。
このステップS32における判定結果がNOすなわち停止要求がなければ上記ステップS25に戻り、上記ステップS25からステップS32の処理を繰り返し行う。
そして、このステップS32における判定結果がYESすなわち停止要求があれば、次のステップS33に進んでエフェクトスイッチがON状態にあるか否かを判定する。
このステップS33判定結果がNOすなわちエフェクトスイッチのON状態にない場合は、そのままステップS35に進む。
また、このステップS33における判定結果がYESすなわちエフェクトスイッチがON状態の場合には、ステップS34に進んで、上述のエフェクト区間登録処理Bを行って、すなわち、エフェクトの開示時刻と終了時刻からエフェクト区間を求め、エフェクト種別、エフェクト区間をメモリ8に記録して、ステップS35に進む。
ステップS35では、オリジナルトラックのみを持つ管理情報すなわちムービーアトム(Movie Atom)をメモリ8から読み出して光ディスク20に書き込む。
そして、次のステップS36では、オリジナルトラックをソーストラックとし、エフェクトトラックを持つ管理情報すなわちムービーアトム(Movie Atom)をメモリ8から読み出して光ディスク20に書き込む。その際、見かけ上効果のあるエフェクト種別・パラメータのエフェクト区間以外の区間は、Nullエフェクトのエフェクト区間を作成する。
以上の動作で、記録撮影時にユーザからの指示によりエフェクトが任意の時間に任意のエフェクト区間が作成され、撮影開始から終了するまで終始エフェクトを施さなかった場合はNullエフェクトを施すメイン部の処理は、完了する。
また、記録撮影後、記録撮影開始から終了までの間、見かけ上効果のあるエフェクト区間が1つもないときに、エフェクトトラックを含むムービーアトム(Movie Atom)を作成しない場合のメイン部の処理は、図28のフローチャートに示す手順で実行される。
すなわち、ステップS41では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS42では、録画開始要求があったか否かを判定する。
このステップS42における判定結果がNOすなわち録画開始要求がない場合には上記ステップS41に戻り、上記ステップS41とステップS42の処理を繰り返すことにより、ユーザから録画開始要求があるまで待機している。
そして、このステップS42における判定結果がYESすなわち録画開始要求があると、次のステップS43に進む。
ステップS43では、エフェクトスイッチがON状態にあるか否かを判定する。
このステップS43判定結果がNOすなわちエフェクトスイッチがOFFのときは、そのままステップS45に進む。
また、このステップS43判定結果がYESすなわちエフェクトスイッチがONのときはステップS44に進んで、上述のエフェクト区間登録処理Aを行って、すなわち、(その時点でのエフェクト種別・パラメータと開始時刻をエフェクト区間テーブルへ記録して、ステップS45に進む。
ステップS45では、映像音声データをムービーデータアトム(Movie Data Atom)としてストレージである光ディスク20に記録する。
次のステップS46では、映像や音声の管理情報をムービーアトム(Movie Atom)とし実装メモリ8に記録する。
次のステップS47では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS48では、上記ステップS47におけるユーザ入力としてエフェクトボタン44が押されてエフェクトスイッチの状態が変化したか否かを判定する。
このステップS48判定結果がNOすなわちエフェクトスイッチの状態が変化していないときは、そのままステップS52に進む。
また、このステップS48における判定結果がYESすなわちエフェクトスイッチの状態が変化した場合には、ステップS49に進んで、エフェクトスイッチがON状態にあるか否かを判定する。
そして、このステップS49判定結果がYESすなわちエフェクトスイッチがONのときは、ステップS50に進んで、上述のエフェクト区間登録処理Aを行って、すなわち、その時点でのエフェクト種別・パラメータと開始時刻をエフェクト区間テーブルへ記録して、ステップS52に進む。
また、このステップS43における判定結果がNOすなわちエフェクトスイッチがOFFのときは、ステップS51に進んで、上述のエフェクト区間登録処理Bを行って、すなわち、その時点でエフェクトの開始時刻と終了時刻より継続時間を求めエフェクト区間テーブルに既に記録されているエフェクト種別・パラメータとともに継続時間を記録しエフェクト区間を追加して、ステップS52に進む。
ステップS52では、停止要求があったか否かを判定する。
このステップS52における判定結果がNOすなわち停止要求がなければ上記ステップS45に戻り、上記ステップS45からステップS52の処理を繰り返し行う。
そして、このステップS52における判定結果がYESすなわち停止要求があれば、次のステップS53に進んでエフェクトスイッチがON状態にあるか否かを判定する。
このステップS53判定結果がNOすなわちエフェクトスイッチのON状態にない場合は、そのままステップS55に進む。
また、このステップS53における判定結果がYESすなわちエフェクトスイッチがON状態の場合には、ステップS54に進んで、上述のエフェクト区間登録処理Bを行って、すなわち、エフェクトの開示時刻と終了時刻からエフェクト区間を求め、エフェクト種別、エフェクト区間をメモリ8に記録して、ステップS55に進む。
ステップS55では、オリジナルトラックのみを持つ管理情報すなわちムービーアトム(Movie Atom)をメモリ8から読み出して光ディスク20に書き込む。
次のステップS56では、エフェクト区間がメモリ8上に存在しているか否かを判定する。
このステップS56における判定結果がNOすなわちエフェクト区間がメモリ8上にない場合には、そのまま処理を終了する。
また、このステップS56における判定結果がNOすなわちエフェクト区間がメモリ8上にある場合には、ステップS57に進んで、オリジナルトラックをソーストラックとし、エフェクトトラックを持つ管理情報すなわちムービーアトム(Movie Atom)をメモリ8から読み出して光ディスク20に書き込む。その際、見かけ上効果のあるエフェクト種別・パラメータのエフェクト区間以外の区間は、Nullエフェクトのエフェクト区間を作成する。
すなわち、停止要求があり記録撮影を停止した後、実装メモリ8上にエフェクト区間の情報が存在すれば、エフェクトトラックを含むムービーアトム(Movie Atom)を光ディスク20に書き出し、なければ何もしない、すなわち、エフェクトトラックを含むムービーアトム(Movie Atom)を光ディスク20上に作成しない。すなわち、上記ステップS56の判定処理以外は図27のフローチャートに示した処理との場合と同じである。
ここで、図27のフローチャートに示した処理の具体例を図29に示す。
図29(A)に示すように記録撮影を開始し、1分後にエフェクトボタンを押し、4分後にエフェクトボタンを押し、5分後に記録撮影を停止した場合、記録撮影中に図29(B)に示すようなエフェクト区間テーブルがメモリ8上に作成され、図29(E)のようなメディアデータがディスク上へ記録される。記録撮影後、図29(C)、図29(D)に示すようにオリジナルトラックのみを持つムービーアトム(Movie Atom)とソーストラック及びエフェクトトラックを持つムービーアトム(Movie Atom)が光ディスク20上に作成される。それぞれのムービーアトム(Movie Atom)内のビデオトラックあるいはエフェクトトラックはメディアデータを外部参照する。
次に、再生時にユーザからの指示によりエフェクトが任意の時間に任意のエフェクト区間が作成される再生時エフェクト編集の処理の例を図30に示す。この処理を行うメイン部は、図30のフローチャートに示す手順に従って再生処理を実行する。
すなわち、ステップS61では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS62では、再生開始要求があったか否かを判定する。
このステップS62における判定結果がNOすなわち再生開始要求がない場合には上記ステップS61に戻り、上記ステップS61とステップS62の処理を繰り返すことにより、ユーザから再生開始要求があるまで待機している。
そして、このステップS62における判定結果がYESすなわち再生開始要求があると、次のステップS63に進む。
ステップS63では、エフェクトトラックを持つムービーアトム(Movie Atom)が存在するか否かを判定する。
このステップS63における判定結果がYESすなわちエフェクトトラックを持つムービーアトム(Movie Atom)が存在する場合は、ステップS64に進んで、光ディスク20から任意のムービーアトム(Movie Atom)を読み出してメモリ8に書き込み、また、エフェクトトラックの情報をもとにエフェクト区間テーブルを構築して、ステップS66に進む。
また、このステップS63における判定結果がNOすなわちエフェクトトラックを持つムービーアトム(Movie Atom)が存在しない場合は、ステップS65に進んで、光ディスク20からオリジナルのビデオトラックのみのムービーアトム(Movie Atom)を読み出してメモリ8に書き込んで、ステップS66に進む。
ステップS66では、エフェクトスイッチがON状態にあるか否かを判定する。
このステップS66判定結果がNOすなわちエフェクトスイッチがOFF状態のときは、そのままステップS68に進む。
また、このステップS66判定結果がYESすなわちエフェクトスイッチがON状態のときはステップS67に進んで、上述のエフェクト区間登録処理Aを行って、すなわち、その時点でのエフェクト種別・パラメータと開始時刻をエフェクト区間テーブルへ記録して、ステップS68に進む。
ステップS68では、ストレージである光ディスク20から映像音声データすなわちムービーデータアトム(Movie Data Atom)をメモリ8に読み込み、デコードしてデバイスへ映像や音声を出力する。
次のステップS69では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS70では、上記ステップS47におけるユーザ入力としてエフェクトボタン44が押されてエフェクトスイッチの状態が変化したか否かを判定する。
このステップS70の判定結果がNOすなわちエフェクトスイッチの状態が変化していないときは、そのままステップS74に進む。
また、このステップS70における判定結果がYESすなわちエフェクトスイッチの状態が変化した場合には、ステップS71に進んで、エフェクトスイッチがON状態にあるか否かを判定する。
そして、このステップS71判定結果がYESすなわちエフェクトスイッチがONのときは、ステップS72に進んで、上述のエフェクト区間登録処理Aを行って、すなわち、その時点でのエフェクト種別・パラメータと開始時刻をエフェクト区間テーブルへ記録して、ステップS74に進む。
また、このステップS71における判定結果がNOすなわちエフェクトスイッチがOFFのときは、ステップS73に進んで、上述のエフェクト区間登録処理Bを行って、すなわち、その時点でエフェクトの開始時刻と終了時刻より継続時間を求めエフェクト区間テーブルに既に記録されているエフェクト種別・パラメータとともに継続時間を記録しエフェクト区間を追加して、ステップS74に進む。
ステップS74では、光ディスク20から再生する映像音声データがなくなったか否か、また、停止要求があったか否かを判定する。
このステップS74における判定結果がNOすなわち光ディスク20から再生する映像音声データあり停止要求なければ、上記ステップS68に戻り、上記ステップS68からステップS74の処理を繰り返し行う。
そして、このステップS74における判定結果がYESすなわち光ディスク20から再生する映像音声データがなくなるか停止要求があれば、次のステップS75に進んでエフェクトスイッチがON状態にあるか否かを判定する。
このステップS75判定結果がNOすなわちエフェクトスイッチのON状態にない場合は、そのままステップS77に進む。
また、このステップS75における判定結果がYESすなわちエフェクトスイッチがON状態の場合には、ステップS76に進んで、上述のエフェクト区間登録処理Bを行って、すなわち、エフェクトの開示時刻と終了時刻からエフェクト区間を求め、エフェクト種別、エフェクト区間をメモリ8に記録して、ステップS77に進む。
ステップS77では、ムービー全体がNullエフェクトであるか否かを判定する。
このステップS77における判定結果がNOすなわちメモリ8に記録されたエフェクトがムービー全体においてエフェクト区間テーブルにエントリが1つ以上あれば、エフェクトトラックを持つムービーアトム(Movie Atom)をメモリ8から読み出して光ディスク20へ書き込んで、再生処理を終了する。
また、このステップS77における判定結果がYESすなわちムービー全体がNullエフェクトである場合は、そのまま再生処理を終了する。
以上のような操作によってエフェクトトラックをもつムービーアトム(Movie Atom)が新たに作成され、元あったエフェクトトラックをもつムービーアトム(Movie Atom)もそのまま残すことができる。
ここで、上記ステップS78でエフェクトトラックをもつムービーアトム(Movie Atom)を光ディスク20へ書き出す際に、エフェクト区間テーブルにおいて、エフェクト区間エントリが時間的にオーバーラップしている場合がある。このとき、一つのエフェクトトラックのみを使用してエフェクト区間を上書きしていく方法、又は、新たにエフェクトトラックを追加しそこにエフェクト区間を作成し多重エフェクトとする方法により対処ことができる。
ここで、図30のフローチャートに示した再生処理の具体例を図31、図32図33及び図34に示す。
図31(A)のように上述の図29に示したムービーを再生開始し、2分後にエフェクトボタンを押し、3分後にエフェクトボタンを押し、5分後に再生を停止した場合における多重エフェクトの具体例では、再生開始直後に図31(B)に示すようなエフェクト区間テーブルが光ディスク20から読み出されてメモリ8上に書き込まれ、再生中に図31(C)のようなエフェクト区間が追加される。テーブルが整理され、図31(D)のようにエフェクト区間テーブルが新たに作成されそこへエフェクト区間が新たに追加される。新たに追加されたエフェクト区間のエフェクト種別・パラメータがメディアデータとしてディスク上へ記録される。
再生停止後、図32(A)に示すような多重エフェクトの構造を持つムービーアトム(Movie Atom)が光ディスク20上に作成される。ムービーアトム(Movie Atom)内のビデオトラックあるいはエフェクトトラックは図32(B)のようなメディアデータ(Media Data)を外部参照する。
また、図33(A)のように上述の図29に示したムービーを再生開始し、2分後にエフェクトボタンを押し、3分後にエフェクトボタンを押し、5分後に再生を停止した場合におけるエフェクト区間を上書きする具体例では、再生開始直後に図33(B)に示すようなエフェクト区間テーブルが光ディスク20から読み出されてメモリ8上に書き込まれ、再生中に図33(C)のようなエフェクト区間が追加される。テーブルが整理されて、図33(D)のようにエフェクト区間テーブルが再構築される。この場合は元からあったエフェクト区間が分断されている。新たに追加されたエフェクト区間のエフェクト種別・パラメータがメディアデータとして光ディスク20上へ記録される。
そして、再生停止後、図34(A)に示すようなエフェクトトラックを持つムービーアトム(Movie Atom)が光ディスク20上に作成される。ムービーアトム(Movie Atom)内のビデオトラックあるいはエフェクトトラックは図34(B)のようなメディアデータを外部参照する。
次に、記録撮影時に直接エフェクトトラックをもつムービーアトム(Movie Atom)を作成するのではなく、記録撮影時にはボタンを押すなどのユーザからの指示により時間軸にマークを付け、記録撮影終了後、任意のエフェクト種別・パラメータ、パラメータを任意のマークとマークの間の区間に設定し、その設定に従ったエフェクトトラックをもつムービーアトム(Movie Atom)が作成される処理の例を図35に示す。この処理を行うメイン部は、図35のフローチャートに示す手順に従って再生処理を実行する。
すなわち、ステップS81では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS82では、録画開始要求があったか否かを判定する。このステップS82における判定結果がNOすなわち録画開始要求がない場合には上記ステップS81に戻り、上記ステップS81とステップS82の処理を繰り返すことにより、ユーザから録画開始要求があるまで待機している。
そして、このステップS82における判定結果がYESすなわち録画開始要求があると、次のステップS83に進む。
ステップS83では、メモリ8上のマークテーブルを空にする。
次のステップS84では、マークテーブルへ時刻を記録する。
次のステップS85では、映像音声データをムービーデータアトム(Movie Data Atom)としてストレージである光ディスク20に記録する。また、映像音声データをムービーデータアトム(Movie Data Atom)としてストレージであるディスクへ記録する。
次のステップS86では、映像や音声の管理情報をムービーアトム(Movie Atom)とし実装メモリ8に記録する。
次のステップS87では、上記ユーザ入力部によるユーザ入力を行う。
次のステップS88では、上記ステップS87におけるユーザ入力としてマークボタン46の押圧によるマーク要求があったか否かを判定する。
このステップS88の判定結果がNOすなわちマーク要求がない場合には、そのままステップS90に進む。
また、このステップS88における判定結果がYESすなわちユーザからマーク要求があった場合には、ステップS89に進んで、録画開始からの時刻をマークテーブルへエントリ追加して、ステップS90に進む。
ステップS90では、停止ボタン43の押圧による停止要求があったか否かを判定する。
このステップS90の判定結果がNOすなわち再生すべき映像音声データが残っているか停止要求がない場合には、上記ステップS85に戻って、上記ステップS85からステップS90の処理を繰り返し行う。
そして、このステップS90の判定結果がYESすなわちユーザから停止要求があった場合には、上記ステップS91に進んで、録画開始からの時刻をマークテーブルへエントリ追加する。
次のステップS92では、オリジナルのビデオトラックのみを持つ管理情報すなわちムービーアトム(Movie Atom)をメモリ8からストレージである光ディスク20から書き込んで、ステップS93に進む。
ステップS93では、エフェクト区間の作成処理を行う。
次のステップS94では、ムービー全体がNullエフェクトであるか否かを判定する。
このステップS94における判定結果がNOすなわちメモリ8に記録されたエフェクト区間テーブル内に見かけ上効果のあるエフェクト区間が1つ以上あれば、ステップS95に進んで、オリジナルのトラックをソーストラックとし、エフェクトトラックをもつムービーアトム(Movie Atom)をメモリ8から読み出して光ディスク20へ書き込んで、記録処理を終了する。
また、このステップS94における判定結果がYESすなわちムービー全体がNullエフェクトである場合は、そのまま記録処理を終了する。
ここで、上記ステップS93では、エフェクト区間の作成処理の具体例を図36及び図37に示す。
図36(A)に示すように記録撮影を開始し、1、2、3、4分後にマークボタン46を押し、5分後に記録撮影を停止した場合、記録撮影中に図36(B)に示すようなマークテーブルがメモリ8上に作成される。そして、記録撮影停止後、図36(C)に示すような画面上でエフェクトの種別・パラメータを区間(マークと1つ次のマーク間)毎にユーザが設定する。設定が完了すると、図36(D)に示すようなエフェクト区間が作成され、エフェクトの種別・パラメータがメディアデータが光ディスク20上へ記録される。
図37(A),(B)に示すようにオリジナルトラックのみを持つムービーアトム(Movie Atom)とソーストラック及びエフェクトトラックを持つムービーアトム(Movie Atom)が光ディスク20上に作成される。それぞれのムービーアトム(Movie Atom)内のビデオトラックあるいはエフェクトトラックは図37(C)に示すようにメディアデータを外部参照する。
1 ビデオ符号化器、2 オーディオ符号化器、3 ビデオ復号器、4 オーディオ復号器、5 ファイル生成器、6 ファイル復号器、7 メモリコントローラ、8 メモリ、 9 エラー訂正符号/復号器、10 メモリ、11 データ変復調器、12 磁界変調ドライバ、13 システム制御マイコン、14 ドライブ制御マイコン、15 サーボ回路、20 光ディスク、21 スピンドルモータ、22 磁気ヘッド、23 光学ヘッド、30 ビデオディスク装置、41 記録開始ボタン、42 再生開始ボタン、43 停止ボタン、44 エフェクトボタン、45 エフェクト種別・パラメータ変更ボタン、46 マークボタン、100 ビデオディスクカメラ、110 ムービーアトム(Movie Atom)、120 メディアデータアトム(Media Data Atom)