しかしながら、上記の方法においては内部メモリ(リングバッファ)の容量によって、動画像の記録時間(録画時間)が決まってしまう。そのため、実際に動画データを記録するメモリカードの空き容量にみあった長時間の録画を可能とするには、ユーザーが設定可能な上限の録画品質や、または固定的に設定しておく録画品質を、使用されるメモリカード等へのデータの書き込み速度に合わせておくこととなる。
ところが、前述したように録画中において一定時間内に処理しなければならないデータ量は録画品質によってほぼ決定されるが、撮像される画像の内容によって変動する。また、メモリカード等に対するデータの書き込み速度も、それが同一規格のメディアであっても製造メーカー毎にバラツキがあり、しかも空き容量や、データが記録される領域の違い、さらにはシステムの電源電圧の変化等の実使用環境によっても変化するため、必ずしも一定ではない。
係ることから、ユーザーが設定可能な上限の録画品質や、または固定的に設定しておく録画品質をメモリカード等の種類に応じて決めておいたとしても、一定時間内に処理しなければならないデータ量が大幅に増大したり、メモリカード等へのデータ書込み速度が大きく低下したりすることに起因して、フレームデータの書き込み処理が間に合わなくなり録画処理が時間的に破綻し、その結果、画像と音声の同期がズレたり、不正なデータを書き込んだりするといった事態の発生が懸念される。したがって、メモリカード等の空き容量にみあった長時間の録画を可能とするには、ユーザーが設定可能な録画品質の上限や、固定的に設定しておく録画品質を自ずと予め低めに決めておかなければならないという問題があった。
本発明は、かかる従来の課題に鑑みてなされたものであり、データ書き込み速度のバラツキや、使用状態の影響を受けることなく、記録媒体の空き容量にみあった長時間の動画像をより高品質で記録することができる動画像記録装置及び電子カメラ装置、動画像記録方法、その実現に使用されるプログラムを提供することを目的とする。
前記課題を解決するため請求項1の発明にあっては、動画像を構成する画像データを所定のフレーム周期で画像処理しながら記録媒体に順次記録する動画像記録装置において、前記記録媒体への画像処理後の画像データの書込み処理に、動画像の正常な記録を阻害する遅れが生じているか否かを判断する判断手段と、この判断手段により前記遅れが生じていると判断されたとき、前記記録媒体に対する書き込みデータ量を減少させる調整手段とを備えたものとした。
かかる構成においては、動画像の記録中に、記録媒体への画像処理後の画像データの書込み処理に動画像の正常な記録を阻害する遅れが生じたときには、記録媒体に対する書き込みデータ量が減らされることとなる。
したがって、動画像の記録中に、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じたときであっても、書き込みデータ量を減少させることにより、正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止できる。
また、請求項2の発明にあっては、前記調整手段は、前記判断手段により前記遅れが生じていると判断されたとき、前記記録媒体に対する次のフレームの画像処理後の画像データの書込み処理を中止させる中止手段を含み、その中止手段により書込み処理が中止された画像データに基づく画像に代えて、当該画像データのフレームの前後いずれかのフレームと同一内容の画像を再生させるための所定情報を前記記録媒体に記録させるものとした。
かかる構成においては、動画像の記録中に、記録媒体への画像処理後の画像データの書込み処理に動画像の正常な記録を阻害する遅れが生じたときには、次のフレームの画像処理後の画像データの書込み処理が中止され、その場合には、記録動作が中止された画像データに基づく画像に代えて、当該画像データのフレームの1つ前のフレームと同一内容の画像を再生させるための所定情報が記録媒体に記録されることとなる。
したがって、動画像の記録中に、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じたときであっても、再生時における見かけ上のフレームレートを一時的に低下させることにより正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止できる。
また、請求項3の発明にあっては、前記記録媒体に記録される複数フレーム分の画像処理後の画像データには、各々の画像データの再生順を示すインデックス情報が付随し、前記調整手段は、前記所定情報を前記インデックス情報として前記記録媒体に記録させるものとした。
また、請求項4の発明にあっては、前記判断手段は、前記記録媒体に対する新たな画像処理後の画像データの書込み時点で、1つ前の画像処理後の画像データが書き込み中であったとき、動画像の正常な記録を阻害する遅れが生じていると判断するものとした。
かかる構成においては、記録媒体に記録される複数フレーム分の画像処理後の画像データを一時記憶するバッファを設けなくとも、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じたときには、書き込みデータ量を減少させることによって、録画処理が時間的に破綻することが防止できる。
また、請求項5の発明にあっては、前記記録媒体に記録される複数フレーム分の画像処理後の画像データを一時記憶するバッファを備え、前記判断手段は、前記バッファへの新たな画像処理後の画像データの書込み時点で、前記バッファの空きサイズが所定以下であったとき、動画像の正常な記録を阻害する遅れが生じていると判断するものとした。
かかる構成においては、動画像の記録を開始した当初から、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じた場合であっても、一定時間内については再生時におけるフレームレートとして、設定されているフレームレートを確保することができる。
また、請求項6の発明にあっては、前記調整手段は、前記判断手段により前記遅れが生じていると判断されたとき、前記バッファへの新たな画像処理後の画像データの書込みを禁止するものとした。
また、請求項7の発明にあっては、前記判断手段により前記遅れが生じていると判断されたとき、設定されている録画品質が確保できていない旨を報知する報知手段を備えたものとした。
かかる構成においては、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じることにより、設定されている録画品質が確保できていないことを、録画中にその都度使用者に知らせることができる。
また、請求項8の発明にあっては、動画像を構成する画像データを所定のフレーム周期で画像処理しながら記録媒体に順次記録する動画像記録方法において、前記記録媒体への画像処理後の画像データの書込み処理に、動画像の正常な記録を阻害する遅れが生じているか否かを判断する工程と、遅れが生じていると判断された場合に、前記記録媒体に対する書き込みデータ量を減少させる処理を行う工程とを含む方法とした。
かかる方法によれば、動画像の記録中に、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じたときであっても、書き込みデータ量を減少させることにより、正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止できる。
また、請求項9の発明にあっては、動画像を構成する画像データを所定のフレーム周期で画像処理しながら記録媒体に順次記録する動画像記録装置が有するコンピュータを、前記記録媒体への画像処理後の画像データの書込み処理に、動画像の正常な記録を阻害する遅れが生じているか否かを判断する判断手段と、この判断手段により前記遅れが生じていると判断されたとき、前記記録媒体に対する書き込みデータ量を減少させる調整手段として機能させるためのプログラムとした。
また、請求項10の発明にあっては、撮像手段により所定のフレーム周期で撮像された、動画像を構成する画像データを前記所定のフレーム周期で圧縮しながら着脱自在な記録媒体に順次記録する動画撮影機能を備えた電子カメラ装置において、前記記録媒体への圧縮後の画像データの書込み処理に、動画像の正常な記録を阻害する遅れが生じているか否かを判断する判断手段と、この判断手段により書込み処理に前記遅れが生じていると判断されたとき、前記記録媒体に対する次のフレームの圧縮後の画像データの書込み処理を中止させる中止手段と、その中止手段により書込み処理が中止された画像データに基づく画像に代えて、当該画像データのフレームの1つ前のフレームと同一内容の画像を再生させるための所定情報を前記記録媒体に記録させる調整手段とを備えたものとした。
かかる構成においては、撮像された画像からなる動画像の記録中に、記録媒体への圧縮後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じたときであっても、再生時における見かけ上のフレームレートを一時的に低下させることにより正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止できる。
本発明の装置及び方法においては、動画像の記録中に、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じたときであっても、書き込みデータ量を減少させることにより、正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止できるようにした。そのため、ユーザーが設定可能な録画品質の上限や、固定的に設定しておく録画品質を高めにすることができる。よって、データ書き込み速度のバラツキや、使用状態の影響を受けることなく、記録媒体の空き容量にみあった長時間の動画像をより高品質で記録することが可能となる。
特に、請求項2の発明によれば、再生時における見かけ上のフレームレートを一時的に低下させることにより書き込みデータ量を減少させるため、簡単な処理によって、正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止できる。
また、請求項4の発明によれば、記録媒体に記録される複数フレーム分の画像処理後の画像データを一時記憶するバッファを設けなくとも、上記効果を得ることができるようにした。よって、動画記録装置が有するメモリをより有効に活用することが可能となる。
また、請求項5の発明によれば、動画像の記録を開始した当初から、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じた場合であっても、一定時間内については再生時におけるフレームレートとして、設定されているフレームレートを確保することができるようにした。よって、使い勝手を向上させることができる。
また、請求項7の発明によれば、記録媒体への画像処理後の画像データの記録動作に動画像の正常な記録を阻害する遅れが生じることにより、設定されている録画品質が確保できていないことを、録画中にその都度使用者に知らせることができるようにした。これによっても、使い勝手を向上させることができる。
以下、本発明の一実施の形態を図にしたがって説明する。
(実施形態1)
図1は、本発明の各実施の形態に共通するデジタルカメラのブロック図である。このデジタルカメラは動画撮影機能を備えたものであり、以下の構成を備えている。
デジタルカメラは、カメラ本体1と、カメラ本体1に着脱可能な記録メディア20から構成されており、カメラ本体1には複数枚のレンズからなる光学系2、及び光学系2を介して自己の受光面に被写体の光像を結像される撮像手段であるベイヤ配列等の色フィルタが装着されたCCD3が配置されている。CCD3はタイミングジェネレータ7から送られる駆動信号により駆動され、被写体の光像を光電変換し撮像信号として出力する。CCD3からの出力信号はCDS回路4で相関二重サンプリング及びゲイン調整が行われ、A/D変換回路5でデジタル信号に変換される。A/D変換されたベイヤデータはDSP部6に入力され、ペデスタルクランプ等の処理が施された後、ブロック内の輝度・色差マトリックス回路で輝度(Y)信号及び色差(UV)信号に変換される。なお、DSP部6では、オートアイリス、オートホワイトバランス、輪郭強調などの画品質向上のための処理も行われる。
DSP部6で変換されたYUVデータは解像度変換ブロック8で予め設定された画像サイズに変換された後、1フレーム分のデータが順次内蔵メモリ14(例えばSDRAM)に格納される。内蔵メモリ14に格納された1フレーム分のYUVデータは表示コントローラ11へ送られ、そこでビデオ信号に変換された後、LCD(液晶表示器)12によりスルー画像として表示される。なお、LCD12は、後述する動画記録時においては本発明の報知手段としても機能する。
動画撮影時に内蔵メモリ14に格納されたYUVデータは順次データ圧縮伸長ブロック9へ送られ、所定の動画記録方式(例えばMotion−JPEGやMPEG)のコーデックによりデータ圧縮後コード化されて、メディアコントローラ10を介してフレームデータ(ビデオデータ)として記録メディア20に順次書き込まれる。係る一連の動作はフレーム毎に繰り返し実行され、内蔵メモリ14内の圧縮データは順次書き換えられる。つまりストリーム記録される。なお、その際のフレームレートはタイミングジェネレータ7で作成されるタイミング信号によって決まり、コード化されるデータの圧縮率はデータ圧縮伸長ブロック9内の量子化テーブル値によって決定される。また、内蔵メモリ14のメモリ容量は、圧縮された1フレーム分の画像データに相当する容量(変動幅が勘案された容量)である。
なお、静止画撮影時に内蔵メモリ14に格納された1フレームの分YUVデータは、前記データ圧縮伸長ブロック9でJPEG方式等でデータ圧縮後コード化され、内蔵メモリ14内でファイル化された後、メディアコントローラ10を介して記録メディア20に静止画データとして記録される。また、データ圧縮伸長ブロック9は、静止画又は動画の再生時には記録メディア20から読み出された静止画や動画のデータを伸張し、静止画データやフレームデータとして内蔵メモリ14に展開する。
音声処理ブロック15は、動画撮影時においてカメラ本体1に内蔵されたマイク16に入力した音声をデジタル信号に変換し、データ圧縮後にオーディオデータとして内蔵メモリ14へ送る。内蔵メモリ14に送られたオーディオデータはフレームデータと共にストリームデータとして記録メディア20に順次書き込まれる。また、音声処理ブロック15は、動画再生時には、内蔵メモリ14から送られたオーディオデータを復号し、アナログの音声信号に変換した後、カメラ本体1に内蔵された内蔵スピーカ17から音声出力させる。
キー入力ブロック18は、シャッターボタン、電源キー、MENUキー等の複数の操作キーを含み、使用者によるキー操作に応じたキー入力信号をCPU13に出力する。なお、シャッターボタンは動画撮影に録画開始/終了ボタンとしても機能する。
上述した各ブロックはCPU13により制御されており、CPU13が各ブロックの制御に必要とされるプログラムやデータはプログラムメモリ19に記憶されている。そして、CPU13は上記プログラム及びキー入力信号に基づき動作することにより本発明の判断手段、中止手段、調整手段として機能する。また、プログラムメモリ19はEEPROMやフラッシュメモリ等の書き換え可能な不揮発性メモリからなり、上記プログラムやデータ以外にも、ユーザーにより設定されたシステムや各機能に関する設定データ、例えば動画撮影時における録画品質の設定値(圧縮方式や圧縮率、画像サイズ、フレームレート等の録画パラメータ)が随時記憶される。
次に、以上の構成からなるデジタルカメラにおいて、動画像の記録(録画)が行われるときの本発明に係る動作を説明する。図2は、録画中においてCPU13が実施する処理内容を示すフローチャートである。
CPU13は、ユーザーによる録画開始操作に応じた録画処理の開始に伴い、先ず内蔵メモリ14の所定領域に記憶するダミーフレームカウンタを初期化する(ステップSA1)。ダミーフレームカウンタは、CCD3により撮像されたフレーム画像のうち、記録メディア20へのデータの書き込み時間がフレームレートに比べて長期化することにより記録できない(フレーム落ちする)フレーム数を示すデータである。なお、以下の説明においては、録画中に取得される前述したオーディオデータについては、記録メディア20へのデータの書き込み時間がフレームデータに比べて僅かであり、記録メディア20の種類等に関係なく常に記録可能であるものとする。
次に、CCD3による撮像処理を開始した後(ステップSA2)、フレーム周期タイミングを待って(ステップSA3)、その時点で記録メディア20に書き込み中のデータがあるか否かを先ず確認する。ここで書き込み中のデータがなければ(ステップSA4でNO)、引き続きダミーフレームカウンタの値を参照し、それが"0"であれば(ステップSA5でNO)、そのまま圧縮済みのフレームデータを記録メディア20へ書き込む(ステップSA6)。以後、録画終了操作がなく、且つ記録メディア20の空き容量があれば(ステップSA7でNO)、ステップSA3へ戻って、次のフレーム周期タイミングを待って上記処理を繰り返す。
その間に、いずれかのフレーム周期タイミングが到来した時点で、最後に書き込み処理を開始したデータの書き込みが終了しておらず、記録メディア20に書き込み中のデータがあった場合には(ステップSA4でYES)、内蔵メモリ14内の最新の圧縮済みフレームデータを破棄する(上書きを許容する)とともに(ステップSA8)、ダミーフレームカウンタを1つ加算する(ステップSA9)。さらに、例えば「フレームレートを下げて録画をしています。」といったような、設定されている録画品質が確保できていない旨を示す注意メッセージをLCD12にOSD機能により表示した後(ステップSA10)、録画終了操作がなければ(ステップSA7でNO)、ステップSA3へ戻る。なお、係るステップSA8〜SA10の処理は、次のフレーム周期タイミングが到来した時点であっても、最後に書き込み処理を開始したデータの書き込みが終了していなければ(ステップSA4でYES)、繰り返し行われる。
そして、上記ステップSA8〜SA10の処理を経た後には、次のフレーム周期タイミングが到来した時点で、最後に書き込み処理を開始したデータの書き込みが終了していたら(ステップSA4でNO)、ダミーカウンタが1以上であるため(ステップSA5でYES)、ステップSA11へ進み、ダミーカウンタ分の数のダミーフレームと、最新の圧縮済みのフレームデータとを記録メディア20に書き込む(ステップSA11)。ここで、上記ダミーフレームは、前のフレームの表示を保持する指定を行うための所定のデータであって、実際のフレームデータよりもデータ量が極めて小さいものとする。例えば動画フォーマットがMPEG−4であれば、"vop_coded=0"のフレームデータがそれに相当する。
しかる後、この時点でダミーフレームカウンタを初期化した後(ステップSA12)、録画終了操作がなく、且つ記録メディア20の空き容量があれば(ステップSA7でNO)、ステップSA3へ戻って引き続き上述した処理を繰り返し行い、録画終了操作があった時点又は記録メディア20の空き容量がなくなった時点で(ステップSA7でYES)、録画処理を終了する。
以上のように本実施の形態においては、例えば使用されている記録メディア20におけるデータの書き込み速度が、空き容量やデータが記録される領域の違い、システムの電源電圧の変化等の実使用環境の違いにより、あるいはCPU13における処理負荷の増大を起因として、想定されている速度よりも大きく低下した状況下で、フレームデータのサイズ変動に伴い記録メディア20に対するフレームデータの書き込み処理が間に合わなくなったときには、実際に撮像されかつ圧縮されたフレームデータに代えてダミーフレームが記録メディア20に記録される。
したがって、フレームデータの書き込み処理が間に合わなくなったときには、録画された動画の再生時における見かけ上のフレームレートを一時的に低下させることにより正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止できる。つまり画像と音声の同期がズレたり、不正なデータを書き込んだりすることがない。そのため、ユーザーが設定可能な録画品質の上限や、固定的に設定しておく録画品質を高めにすることができる。よって、データ書き込み速度のバラツキや、使用状態の影響を受けることなく、記録メディア20の空き容量にみあった長時間の動画像をより高品質で記録することができる。
しかも、書き込み速度が速い記録メディア20が使用される場合には、そのまま設定されている録画品質での録画を問題なく行うことができる。
また、本実施の形態においては、内蔵メモリ14に、圧縮済みのフレームデータを複数フレーム分記憶させる領域を設ける必要がないため、録画動作時には内蔵メモリ14を他の処理等に有効に利用することができる。また、録画途中にダミーフレームが記録メディア20に記録される状況が発生したときには、その度毎に前述した注意メッセージをLCD12に表示して、設定されている録画品質が確保できていないことをユーザーに知らせることができるため、使い勝手もよい。なお、例えば音声無しの録画を行う場合にあっては、注意メッセージの表示に代えて、所定のアラーム音や音声メッセージをスピーカ17から出力させるようにしてもよい。
なお、本実施の形態では、記録メディア20に対するフレームデータの書き込み処理が間に合わなくなったとき記録メディア20に記録するダミーフレームを、MPEG−4における"vop_coded=0"のフレームデータ等のように、圧縮後のフレームデータよりも極めて小さいデータとしたが、ダミーフレームは、圧縮後のフレームデータと同一乃至は同程度のサイズのデータとしてもよい。例えば、動画フォーマットがMotion−JPEGの場合には、直前のフレームデータつまりコピーデータとする等、動画フォーマットに応じて適宜決めることができる。コピーデータとする場合には、その旨を示す情報をフレームデータに代えて記録しておき、録画終了後に、その情報に基づいてコピーを実施することとなる。また、ダミーフレームのデータサイズをより小さくして、ダミーフレームの書き込み時間を短くした方が、動画中のダミーフレームの数が少なくなり、動画再生時における見かけ上のフレームレートの変動(回数)を抑えることができるため、より良質の録画品質が確保できる。
(実施形態2)
次に、本発明の第2の実施の形態について説明する。本実施の形態は、図1に示した構成を備えたデジタルカメラにおいて、録画時に前記記録メディア20に記録される動画ファイルがAVI(Audio Video Interleave)ファイルであるものである。
図3(a)は、本実施の形態において記録されるAVIファイル100の概略のデータ構造を示す模式図であり、AVIファイル100にはデータ本体であるmoviチャンク101とindexチャンク102とが含まれるとともに、moviチャンク101が、各々が圧縮されたフレームデータ(以下、ビデオデータ)である3つの画像チャンク(図でビデオ1、ビデオ2、ビデオ3、・・・)につき圧縮されたオーディオデータである1つの音声チャンク(図でオーディオ1、・・・)で構成され、indexチャンク102に、各々の画像チャンク及び音声チャンクのポインタとサイズを示すインデックス情報が記録順に並んで記録された構造である。なお、動画再生時には、indexチャンク102のインデックス情報の並び順に従って画像チャンク及び音声チャンクのデータが再生されることとなる。
また、本実施の形態においては、前述した内蔵メモリ14には上記画像チャンク及び音声チャンクを一時記憶するための、図3(b)に示したような録画用バッファ110が確保されている。この録画用バッファ110は先に説明したリングバッファとして使用されるものであり、本実施の形態において、そのサイズは最低60秒分のビデオ及びオーディオデータの合計サイズにマージンを加えたサイズである。なお、以下の説明においては、ビデオデータが、フレームレート=15fps、1フレームの平均データサイズ=10kbであり、オーディオデータが、サンプルレート周波数=8kHz、1サンプルあたりのビット数=8ビット、チャンネル=モノラルであるものとし、録画用バッファ110のサイズが、
[(10kb×15)+8000]×60≒9.25kb+マージン
であるものとする。
次に、以上の構成からなるデジタルカメラにおいて、動画像の記録(録画)が行われるときの本発明に係る動作を説明する。図4は、録画中においてCPU13が実施する処理内容を示すフローチャートである。
CPU13は、ユーザーによる録画開始操作に応じて録画処理を開始すると、まず暫定的な仮のヘッダチャンク(図示せず)を有するとともに、前述したindexチャンク102が付加されていないAVIファイル100を記録メディア20に作成する(ステップSB1)。さらに、内蔵メモリ14の所定領域に、録画終了後にAVIファイル100に付加されるindexチャンク102の元となる前記インデックス情報を記憶するための作業用インデックスファイル120(図5参照)を作成した後(ステップSB2)、CCD3による撮像処理、及び前述した録画用バッファ110へのデータ(画像チャンク及び音声チャンク)の記憶を開始する(ステップSB3)。
以後、データ圧縮伸長ブロック9や音声処理ブロック15からの録画用バッファ110へのデータ書き込み要求がある毎に(ステップSB4でYES)、その時点で録画用バッファ110がバッファフルの状態であるか否かを判断する(ステップSB5)。なお、かかる判断は、以下の判断基準によって行う。すなわち書き込み要求があったデータが画像チャンクのデータである場合には、当該データのサイズ+1音声チャンクの平均データサイズ+マージン分の空き容量が残存していない状態をバッファフルとし、かつ書き込み要求があったデータが音声チャンクのデータである場合には、当該データのサイズ以上の空き容量が残存していない状態をバッファフルとする。これは、録画用バッファ110内に常に1音声チャンク分の空き容量を確保するためである。
そして、録画開始当初においては、録画用バッファ110がフル状態でないため(ステップSB5でNO)、そのまま録画用バッファ110へのデータ書き込みを許可するとともに(ステップSB6)、書き込まれたデータのポインタとサイズを示すインデックス情報を作業用インデックスファイル120に追加する(ステップSB7)。引き続き、録画用バッファ110に記憶された、未だAVIファイル100(記録メディア20)への書き込みが済んでいないデータ(最先のデータ)をAVIファイル100に書き込むとともに、当該データを録画用バッファ110から消去(当該データに対する上書きを許可)した後(ステップSB8でYES、ステップSB9)、ステップSB4へ戻り、上記動作を繰り返す。これにより、AVIファイル100に複数フレーム分の画像チャンク及び音声チャンクが記録順に格納され、同様に作業用インデックスファイル120にそれらのチャンクのインデックス情報が記録順に格納される。
ここで、上記の録画用バッファ110へのデータ書き込み(及びインデックス情報の追加)と、AVIファイル100へのデータ書き込み(及び録画用バッファ110からの書き込み済みデータの消去)は非同期で行い、実際には、AVIファイル100へのデータ書き込みが終了する以前であっても、録画用バッファ110へのデータ書き込み等が一定のフレーム周期(本実施の形態では15fps)で行われる。そのため、AVIファイル100へのデータ書き込みに遅れが生じると、未書き込みのデータが録画用バッファ110内に蓄積されることになる。
図5(a)は、その状態の一例を示した図であって、記録メディア20に対するデータの書き込み速度が10fpsであった場合における60秒後の状態を示した図である。本実施の形態においてはフレームレートが15fpsであるため、録画用バッファ110にビデオデータが3フレーム分記憶される間におけるAVIファイル100へのデータの書き込み分が2フレームとなる。したがって、60秒後の時点では、AVIファイル100へ2/3のデータが書き込まれ、残りの1/3のデータが録画用バッファ110に残存し、かつそのサイズも録画用バッファ110の1/3程度となる。また、作業用インデックスファイル120には、AVIファイル100へ書き込まれた全てのデータのインデックス情報が格納された状態となる。
一方、前述した処理を繰り返す間に、録画用バッファ110がバッファフルの状態となったときには(ステップSB5でYES)、要求された録画用バッファ110へのデータの書き込みを制限(禁止)して(ステップSB10)、作業用インデックスファイル120に、1つ前に書き込まれたデータと同一のインデックス情報を追加する(ステップSB11)。なお、本実施の形態ではバッファフルの状態を前述した判断基準によって行っているため、ステップSB10で制限つまり破棄されるデータは画像チャンクのデータのみとなる。
図5(b)は、その一例を示した図であって、記録メディア20に対するデータの書き込み速度が10fpsであった場合における180秒後の状態を示した図である。180秒後には、120秒分のデータのみがAVIファイル100に書き込まれ、残りのデータ(図で、ビデオ1801〜オーディオ900)が録画用バッファ110に格納された状態にある。この時点で、録画用バッファ110が既にバッファフルの状態となっている。したがって、録画用バッファ110への新たなデータ書き込み要求があった時には、録画用バッファ110内のデータはそのままで、作業用インデックスファイル120に、1つ前のデータ(図で、ビデオ2700)のインデックス情報が再度追加されることとなる。
引き続き、例えば「フレームレートを下げて録画をしています。」といったような、設定されている録画品質が確保できていない旨を示す注意メッセージをLCD12にOSD機能により表示する(ステップSB12)。そして、前述したステップSB8へ進み、以後は、録画用バッファ110にデータが残存する間においては(ステップSB8でYES)、録画終了操作の有無に関係なく、AVIファイル100へのデータ書き込みを続ける(ステップSB9)。そして、録画用バッファ110にデータがなくなり、そのとき既に録画終了操作が行われていたら(ステップSB8でNO、ステップSB13がYES)、その時点で作業用インデックスファイル120のデータに基づきindexチャンクを生成し、それをAVIファイル100に付加してAVIファイル100を完成させ(ステップSB14)、全ての録画処理を完了する。
以上のように本実施の形態においては、先に説明したような原因により想定されている速度よりも大きく低下した状況下で、フレームデータのサイズ変動に伴い記録メディア20へのデータの書き込みに遅れが生じ、録画中に録画用バッファ110(リングバッファ)に新たな画像チャンクが蓄積することができなくなったときには、その1つ前の画像チャンクを示すインデックス情報がindexチャンクに記録される。
したがって、録画用バッファ110に新たな画像チャンクが蓄積することができなくなったときには、録画された動画の再生時における見かけ上のフレームレートを一時的に低下させることにより正常な動画記録を維持したままで、録画処理が時間的に破綻することが防止でき、ユーザーが設定可能な録画品質の上限や、固定的に設定しておく録画品質を高めにすることができる。
よって、第1の実施の形態と同様、データ書き込み速度のバラツキや、使用状態の影響を受けることなく、記録メディア20の空き容量にみあった長時間の動画像をより高品質で記録することができる。しかも、書き込み速度が速い記録メディア20が使用される場合には、そのまま設定されている録画品質での録画を問題なく行うことができる。また、録画途中に録画用バッファ110に新たな画像チャンクが蓄積することができなくなった状況が発生したときには、その度毎に前述した注意メッセージをLCD12に表示して、設定されている録画品質が確保できていないことをユーザーに知らせることができ、使い勝手もよい。
さらに、本実施の形態においては、内蔵メモリ14に、複数フレーム分の画像チャンクを記憶する録画用バッファ110を設け、それをリングバッファとして使用することにより、例えば録画開始当初から、設定されているフレームレートに対して記録メディア20へのデータの書き込み速度が遅い場合であっても、その当初の一定期間(本実施の形態では60秒)については、再生時におけるフレームレートとして、設定されているフレームレートを確保することができる。これによっても、使い勝手がよい。
なお、本実施の形態では、記録メディア20に記録する動画ファイルがAVIファイル100である場合について説明したが、動画ファイルの形式は、圧縮後のフレームデータに、各々のフレームデータの再生順を示すインデックス情報が付随するものであれば、他の形式のファイルであってもかまわない。
また、動画像を、本実施の形態のようにAVIファイル100として、またそれ以外のインデックス情報を備えた形式のファイルとして記録する場合、内蔵メモリ14に録画用バッファ110を設けることなく、第1の実施の形態で説明したもののように、圧縮後のフレームデータを記録メディア20に直接書き込む構成としてもよい。その場合、記録メディア20に対するデータの書き込みに遅れが生じたか否かは、第1の実施の形態と同様の基準で判断すればよい。なお、前述した作業用インデックスファイル120等を設ける場所は任意であり、その点については本実施の形態においても同様である。
また、上記とは別に、第1の実施の形態で説明したものに、本実施の形態における録画用バッファ110に相当するものを設けた構成とし、記録メディア20に対するデータの書き込みにおくれが生じたか否かを、第1の実施の形態と同様の基準で判断するものとしてもよい。
また、本実施の形態においては、録画用バッファ110がバッファフルとなった時、記録メディア20に対するデータの書き込みに遅れが生じたと判断するようにしたが、録画用バッファ110の空き容量が所定量以下になった時点を遅れが生じた時点と判断するようにしてもよい。このようにすれば、一時的に低下させるときのフレームレートの低減量(低減幅)を小さくすることができる。つまりフレームレートを急激に低下させなくとも正常な動画記録ができ、より高い録画品質が確保できる。
また、録画用バッファ110に圧縮後の画像データ(フレームデータ)を順次記憶するものとしたが、圧縮前の画像データを録画用バッファ110に順次記憶するようにしてもよい。
また、以上説明した第1及び第2の実施の形態においては、前記遅れが生じたときには、前述したように動画の再生時における見かけ上のフレームレートを一時的に低下させるための処理によって書き込みデータ量を減らするようにしたが、上記の処理とは別に、又はそれと並行して、前記フレームレート以外の他の録画パラメータ(圧縮率、画像サイズ等)を変更して書き込みデータ量を減らするようにしてもよい。
また、第1及び第2の実施形態においては、本発明を、動画撮影機能を備えたデジタルカメラに採用した場合について説明したが、これに限らず本発明は、録画時に動画をストリーム記録する構成を備えたものであれば、例えばデジタルビデオカメラ、カメラ付き携帯電話機、カメラ付きPDA、カメラ付きパソコン等の種々の電子カメラ装置にも採用することができる。その場合においても、前述した効果を得ることができる。
さらに、任意の形式で圧縮して記録する動画像は撮影されたものでなくとも、例えばアナログのテレビ放送の放送画像やビデオ入力端子から入力された動画像であってもよく、また、その場合を含め、動画を記録する記録媒体は半導体メモリに限らずハードディスク等であってもかまわない。