(57)【特許請求の範囲】
【請求項１】
Ｎ個（Ｎ：２以上の整数）のコンテンツを並列的に取り込む取り込み手段、
記録媒体に分散的に形成され得る空き領域がＮ個以上であるか否かを前記取り込み手段の取り込み処理に関連して判別する判別手段、
前記判別手段の判別結果が否定的であるとき前記記録媒体に形成されたＮ個未満の空き領域をＮ個以上の空き領域に分割する分割手段、および
前記取り込み手段によって取り込まれたＮ個のコンテンツを前記記録媒体に形成されたＮ個の空き領域にそれぞれ記録する記録手段を備える、コンテンツ記録装置。
【請求項２】
前記取り込み手段によって取り込まれるＮ個のコンテンツの１つを前記Ｎ個の空き領域の１つに記録する第１記録手段、および前記取り込み手段によって取り込まれるＮ個のコンテンツの他の１つを前記Ｎ個の空き領域の他の１つに記録する第２記録手段を含み、
前記判別手段は前記第１記録手段による記録処理の実行中に前記第２記録指示を受け付けたとき判別処理を実行する、請求項１記載のコンテンツ記録装置。
【請求項３】
前記分割手段は前記第１記録手段によって記録される空き領域を分割する、請求項２記載のコンテンツ記録装置。
【請求項４】
前記記録媒体は各々が単位サイズを有する複数の単位領域によって形成され、
１つの空き領域は連続して空き状態にある１または２以上の単位領域によって形成される、請求項１ないし３のいずれかに記載のコンテンツ記録装置。
【請求項５】
前記分割手段は、前記Ｎ個未満の空き領域の中から２以上の単位領域によって形成される１つの空き領域を特定する特定手段、および前記特定手段によって特定された空き領域を分割する分割実行手段を含む、請求項４記載のコンテンツ記録装置。
【請求項６】
前記取り込み手段によって取り込まれるＮ個のコンテンツは動画像コンテンツおよび静止画像コンテンツを含む、請求項１ないし５のいずれかに記載のコンテンツ記録装置。
【請求項７】
前記取り込み手段によって取り込まれるＮ個のコンテンツの少なくとも１つは前記取り込み手段による取り込みが開始された時点でサイズが不定のコンテンツである、請求項１ないし６のいずれかに記載のコンテンツ記録装置。
【請求項８】
請求項１ないし７のいずれかに記載のコンテンツ記録装置を備える、ビデオカメラ。
【請求項９】
コンテンツ記録装置のプロセサに、
Ｎ個（Ｎ：２以上の整数）のコンテンツを並列的に取り込む取り込みステップ、
記録媒体に分散的に形成され得る空き領域がＮ個以上であるか否かを前記取り込みステップの取り込み処理に関連して判別する判別ステップ、
前記判別ステップの判別結果が否定的であるとき前記記録媒体に形成されたＮ個未満の空き領域をＮ個以上の空き領域に分割する分割ステップ、および
前記取り込みステップによって取り込まれたＮ個のコンテンツを前記記録媒体に形成されたＮ個の空き領域にそれぞれ記録する記録ステップを実行させるための、
記録制御プログラム。
【請求項１０】
コンテンツ記録装置によって実行される記録制御方法であって、
Ｎ個（Ｎ：２以上の整数）のコンテンツを並列的に取り込む取り込みステップ、
記録媒体に分散的に形成され得る空き領域がＮ個以上であるか否かを前記取り込みステップの取り込み処理に関連して判別する判別ステップ、
前記判別ステップの判別結果が否定的であるとき前記記録媒体に形成されたＮ個未満の空き領域をＮ個以上の空き領域に分割する分割ステップ、および
前記取り込みステップによって取り込まれたＮ個のコンテンツを前記記録媒体に形成されたＮ個の空き領域にそれぞれ記録する記録ステップを備える、記録制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンテンツ記録装置に関し、特にたとえば互いに性質の異なる複数のコンテンツを記録媒体に記録する、コンテンツ記録装置に関する。
【背景技術】
【０００２】
従来のこの種の装置の一例が、特許文献１に開示されている。この従来技術によれば、ハードディスクは、ＺＣＡＶ（Zone Constant Angular Velocity）方式を採用する。データをいずれのゾーンに記録するかは、データの属性に基づいて決定される。このため、たとえば動画像データはゾーン１に記録され、静止画像データはゾーン２に記録され、そして音声データはゾーン３に記録される。これによって、ハードディスク上でのフラグメントの増大が回避される。
【特許文献１】特開２００５−８６７３７号公報［H04N 5/91, G11B 20/10, 20/12, H04N 5/225］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来技術では、データの記録先がゾーン単位で振り分けられるため、ハードディスクの容量の利用効率が低下するという問題がある。
【０００４】
それゆえに、この発明の主たる目的は、記録媒体内でのフラグメントの増大と記録媒体の利用効率の低下とを回避することができる、コンテンツ記録装置を提供することである。
【課題を解決するための手段】
【０００５】
請求項１の発明に従うコンテンツ記録装置(10)は、Ｎ個（Ｎ：２以上の整数）のコンテンツを並列的に取り込む取り込み手段(S71, S77)、記録媒体(38)に分散的に形成され得る空き領域がＮ個以上であるか否かを取り込み手段の取り込み処理に関連して判別する判別手段(S153)、判別手段の判別結果が否定的であるとき記録媒体に形成されたＮ個未満の空き領域をＮ個以上の空き領域に分割する分割手段(S155, S163, S167)、および取り込み手段によって取り込まれたＮ個のコンテンツを記録媒体に形成されたＮ個の空き領域にそれぞれ記録する記録手段(S91, S127)を備える。
【０００６】
Ｎ個（Ｎ：２以上の整数）のコンテンツは、取り込み手段によって並列的に取り込まれる。判別手段は、記録媒体に分散的に形成され得る空き領域がＮ個以上であるか否かを、取り込み手段の取り込み処理に関連して判別する。判別手段の判別結果が否定的であれば、記録媒体に形成されたＮ個未満の空き領域が、分割手段によってＮ個以上の空き領域に分割される。記録手段は、取り込み手段によって取り込まれたＮ個のコンテンツを記録媒体に形成されたＮ個の空き領域にそれぞれ記録する。
【０００７】
したがって、記録媒体に形成された空き領域がＮ個以上であれば、Ｎ個のコンテンツはＮ個の空き領域にそれぞれ記録される。一方、記録媒体に形成された空き領域がＮ個未満であれば、領域分割処理によってＮ個以上の空き領域が記録媒体に形成される。Ｎ個のコンテンツは、領域分割処理によって得られたＮ個の空き領域にそれぞれ記録される。
【０００８】
Ｎ個のコンテンツはＮ個の空き領域にそれぞれ記録されるため、記録媒体内でのフラグメントの増大が回避される。また、領域分割処理はＮ個のコンテンツを並列的に取り込むときに必要に応じて実行されるため、記録媒体の利用効率の低下が回避される。
【０００９】
請求項２の発明に従うコンテンツ記録装置は、請求項１に従属し、取り込み手段によって取り込まれるＮ個のコンテンツの１つをＮ個の空き領域の１つに記録する第１記録手段(S91)、および取り込み手段によって取り込まれるＮ個のコンテンツの他の１つをＮ個の空き領域の他の１つに記録する第２記録手段(S127)を含み、判別手段は第１記録手段による記録処理の実行中に第２記録指示を受け付けたとき判別処理を実行する。これによって、領域分割処理は必要なタイミングで実行される。
【００１０】
請求項３の発明に従うコンテンツ記録装置は、請求項２に従属し、分割手段は第１記録手段によって記録される空き領域を分割する。
【００１１】
請求項４の発明に従うコンテンツ記録装置は、請求項１ないし３のいずれかに従属し、記録媒体は各々が単位サイズを有する複数の単位領域によって形成され、１つの空き領域は連続して空き状態にある１または２以上の単位領域によって形成される。
【００１２】
請求項５の発明に従うコンテンツ記録装置は、請求項４に従属し、分割手段は、Ｎ個未満の空き領域の中から２以上の単位領域によって形成される１つの空き領域を特定する特定手段(S155)、および特定手段によって特定された空き領域を分割する分割実行手段(S163, S167)を含む。これによって、領域分割処理が的確に実行される。
【００１３】
請求項６の発明に従うコンテンツ記録装置は、請求項１ないし５のいずれかに従属し、取り込み手段によって取り込まれるＮ個のコンテンツは動画像コンテンツおよび静止画像コンテンツを含む。
【００１４】
請求項７の発明に従うコンテンツ記録装置は、請求項１ないし６のいずれかに従属し、取り込み手段によって取り込まれるＮ個のコンテンツの少なくとも１つは取り込み手段による取り込みが開始された時点でサイズが不定のコンテンツである。
【００１５】
請求項８の発明に従うビデオカメラは、請求項１ないし７のいずれかに記載のコンテンツ記録装置を備える。
【００１６】
請求項９の発明に従う記録制御プログラムは、コンテンツ記録装置(10)のプロセサ(40)に、Ｎ個（Ｎ：２以上の整数）のコンテンツを並列的に取り込む取り込みステップ(S71, S77)、記録媒体(38)に分散的に形成され得る空き領域がＮ個以上であるか否かを取り込みステップの取り込み処理に関連して判別する判別ステップ(S153)、判別ステップの判別結果が否定的であるとき記録媒体に形成されたＮ個未満の空き領域をＮ個以上の空き領域に分割する分割ステップ(S155, S163, S167)、および取り込みステップによって取り込まれたＮ個のコンテンツを記録媒体に形成されたＮ個の空き領域にそれぞれ記録する記録ステップ(S91, S127)を実行させるための記録制御プログラムである。
【００１７】
請求項１０の発明に従う記録制御方法は、コンテンツ記録装置(10)によって実行される記録制御方法であって、Ｎ個（Ｎ：２以上の整数）のコンテンツを並列的に取り込む取り込みステップ(S71, S77)、記録媒体(38)に分散的に形成され得る空き領域がＮ個以上であるか否かを取り込みステップの取り込み処理に関連して判別する判別ステップ(S153)、判別ステップの判別結果が否定的であるとき記録媒体に形成されたＮ個未満の空き領域をＮ個以上の空き領域に分割する分割ステップ(S155, S163, S167)、および取り込みステップによって取り込まれたＮ個のコンテンツを記録媒体に形成されたＮ個の空き領域にそれぞれ記録する記録ステップ(S91, S127)を備える。
【発明の効果】
【００１８】
この発明によれば、Ｎ個のコンテンツはＮ個の空き領域にそれぞれ記録されるため、記録媒体内でのフラグメントの増大が回避される。また、領域分割処理はＮ個のコンテンツを並列的に取り込むときに必要に応じて実行されるため、記録媒体の利用効率の低下が回避される。
【００１９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２０】
図１を参照して、この実施例のディジタルビデオカメラ１０は、フォーカスレンズ１２を含む。被写界の光学像は、フォーカスレンズ１２を通してイメージセンサ１４の撮像面に照射される。撮像面では、光電変換によって被写界の光学像に対応する電荷つまり生画像信号が生成される。
【００２１】
キー入力装置４２によってカメラモードが選択されると、スルー画像処理つまり被写界のリアルタイム動画像をＬＣＤモニタ２６に表示する処理が実行される。ＣＰＵ４０はまず、露光および間引き読み出しの繰り返しをドライバ１８に命令する。ドライバ１８は、イメージセンサ１４の露光とこれによって生成された生画像信号の間引き読み出しとを繰り返し実行する。露光および間引き読み出しは、１／３０秒毎に発生する垂直同期信号に応答して実行される。これによって、被写界の光学像に対応する低解像度の生画像信号が、３０ｆｐｓのフレームレートでイメージセンサ１４から出力される。
【００２２】
出力された各フレームの生画像信号は、ＣＤＳ／ＡＧＣ／ＡＤ回路２０によってノイズ除去，レベル調整およびＡ／Ｄ変換の一連の処理を施され、これによってディジタル信号である生画像データが得られる。信号処理回路２２は、ＣＤＳ／ＡＧＣ／ＡＤ回路２０から出力された生画像データに白バランス調整，色分離，ＹＵＶ変換などの処理を施し、ＹＵＶ形式の画像データを生成する。生成された各フレームの画像データはメモリ制御回路２４によってＳＤＲＡＭ２６に書き込まれ、その後同じメモリ制御回路２４によって読み出される。
【００２３】
ビデオエンコーダ２８は、メモリ制御回路２４によって読み出された画像データをＮＴＳＣフォーマットに従うコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をＬＣＤモニタ３０に与える。この結果、被写界のスルー画像がモニタ画面に表示される。なお、以下では説明を適宜省略するが、ＳＤＲＡＭ２６へのアクセスは必ずメモリ制御回路２４を通して行われる。
【００２４】
キー入力装置４２によって動画記録開始操作が実行されると、ＣＰＵ４０は、動画記録処理を実行するべく、ＭＰＥＧ４コーデック３４およびカードドライバ３６を起動する。
【００２５】
ＭＰＥＧ４コーデック３４は、ＳＤＲＡＭ２６に格納された画像データを１／３０秒毎に読み出し、読み出された各フレームの画像データにＭＰＥＧ４フォーマットに従う圧縮処理を施し、そして圧縮画像データつまりＭＰＥＧデータをＳＤＲＡＭ２６に書き込む。
【００２６】
カードドライバ３６は、動画ファイルをメモリカード３８に新規に作成しかつオープンし、ＳＤＲＡＭ２６に蓄積されたＭＰＥＧデータをオープン状態の動画ファイルに所定量ずつ書き込んでいく。
【００２７】
キー入力装置４２によって動画記録終了操作が行われると、動画記録終了処理が実行される。オープン状態にある動画ファイルはクローズされ、これによって動画ファイルが完成する。
【００２８】
キー入力装置４２によって静止画記録操作が実行されると、ＣＰＵ４０はまず、ドライバ１６を制御してフォーカスレンズ１２を合焦点に設定し、ドライバ１８に最適露光時間を設定する。撮影条件の調整が完了すると、静止画読み出し処理および静止画記録処理が実行される。
【００２９】
静止画読み出し処理では、ＣＰＵ４０は、１回の本露光と１回の全画素読み出しとをドライバ１８に命令する。ドライバ１８は、イメージセンサ１４の本露光とこれによって生成された生画像信号の全画素読み出しとを１回ずつ実行する。これによって、被写界の光学像に対応する高解像度の生画像信号がイメージセンサ１４から出力される。出力された生画像信号は上述と同様の処理によってＹＵＶ形式の静止画像データに変換され、変換された静止画像データはＳＤＲＡＭ２６に書き込まれる。
【００３０】
静止画記録処理では、ＣＰＵ４０は、ＪＰＥＧコーデック３２およびカードドライバ３６を起動する。ＪＰＥＧコーデック３２は、ＳＤＲＡＭ２６から静止画像データを読み出し、読み出された静止画像データにＪＰＥＧ圧縮を施し、そして圧縮静止画像データつまりＪＰＥＧデータをＳＤＲＡＭ２６に書き込む。カードドライバ３６は、静止画ファイルをメモリカード３８に新規に作成しかつオープンし、ＳＤＲＡＭ２６に格納されたＪＰＥＧデータをオープン状態の静止画ファイルに書き込む。オープン状態の静止画ファイルは、ＪＰＥＧデータの書き込みが完了した後にクローズされる。
【００３１】
キー入力装置４２によって再生モードが選択され、かつメモリカード３８から所望の動画ファイルが選択されると、ＣＰＵ４０は、動画再生処理を実行するべく、カードドライバ３６，ＭＰＥＧ４コーデック３４およびビデオエンコーダ２８を起動する。
【００３２】
カードドライバ３６は、所望の動画ファイルに格納されたＭＰＥＧデータを所定量ずつＳＤＲＡＭ２６に転送する。ＭＰＥＧ４コーデック３４は、ＳＤＲＡＭ２６に格納されたＭＰＥＧデータを１／３０秒に１フレームの割合で読み出し、読み出されたＭＰＥＧデータにＭＰＥＧ４方式に従う伸長処理を施し、そして伸長画像データをＳＤＲＡＭ２６に書き込む。
【００３３】
ビデオエンコーダ２８は、ＳＤＲＡＭ２６に格納された画像データを１／３０秒に１フレームの割合で読み出し、読み出された画像データをＮＴＳＣフォーマットに従うコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をＬＣＤモニタ３０に与える。この結果、被写界の再生動画像がモニタ画面に表示される。
【００３４】
再生モードが選択された状態でメモリカード３８から所望の静止画ファイルが選択されると、ＣＰＵ４０は、静止画再生処理を実行するべく、カードドライバ３６，ＪＰＥＧコーデック３２およびビデオエンコーダ２８を起動する。
【００３５】
カードドライバ３６は、所望の静止画ファイルに格納されたＪＰＥＧデータを転送する。ＪＰＥＧコーデック３２は、ＳＤＲＡＭ２６に格納されたＪＰＥＧデータを読み出し、読み出されたＪＰＥＧデータをＪＰＥＧ方式で伸長し、そして伸長画像データをＳＤＲＡＭ２６に書き込む。
【００３６】
ビデオエンコーダ２８は、ＳＤＲＡＭ２６に格納された画像データを１／３０秒に１フレームの割合で読み出し、読み出された画像データをＮＴＳＣフォーマットに従うコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をＬＣＤモニタ３０に与える。この結果、被写界の再生静止画像がモニタ画面に表示される。
【００３７】
所望の動画ファイルまたは静止画ファイルが選択された状態でキー入力装置４２によってファイル削除操作が行われると、ＣＰＵ４０は、選択されたファイルの削除をカードドライバ３６に要求する。選択されたファイルは、メモリカード３８から削除される。
【００３８】
図２を参照して、メモリカード３８は、ＭＳ−ＤＯＳフォーマットを採用し、リザーブ領域３８ａおよびデータ領域３８ｂを有する。リザーブ領域３８ａは、ＭＢＲ(Master Boot Area)，ＰＢＲ(Partition Boot Area)，ＦＡＴ(File Allocation Table)１，ＦＡＴ１の複製であるＦＡＴ２およびルートディレクトリを有する。データ領域３８ｂは複数のクラスタによって形成され、各々のクラスタは３２個のセクタによって形成される。また、“２”から始まる識別番号（クラスタ番号）が、各々のクラスタに割り当てられる。ここで、各々のセクタのサイズは５１２バイトであり、各々のクラスタのサイズは１６３８４バイトである。
【００３９】
データ領域３８ｂには、たとえば図３に示すように記録済み領域および空き領域が形成される。図３によれば、１番目の空き領域は６番目のクラスタから始まる８５個のクラスタによって形成され、２番目の空き領域は１２１番目のクラスタから始まる３２個のクラスタによって形成され、そして３番目の空き領域は１７８番目のクラスタから始まる４８個のクラスタによって形成される。
【００４０】
データ領域３８ｂに形成された空き領域は、図４に示すフリーリスト（空き領域リスト）４０ｔによって管理される。図４によれば、３つの空き領域にそれぞれ対応して、カラムＬ（０）〜Ｌ（２）が作成される。カラムＬ（０）〜Ｌ（２）のいずれも、“ｈｅａｄ”，“ｓｉｚｅ”および“ｎｅｘｔ”の項目を有する。“ｈｅａｄ”には、注目する空き領域を形成する先頭クラスタの識別番号が記述される。“ｓｉｚｅ”には、注目する空き領域を形成するクラスタの数が記述される。“ｎｅｘｔ”には、次の空き領域に対応するカラム番号が記述される。
【００４１】
動画記録開始操作が行われると、フリーリスト４０ｔを参照して空き領域が検出される。ＭＰＥＧデータは、検出された空き領域に記録される。記録先の空き領域を管理するカラムの“ｈｅａｄ”および“ｓｉｚｅ”は、記録とともに更新される。
【００４２】
静止画記録操作が行われたときも、上述と同様、フリーリスト４０ｔを参照して空き領域が検出される。ＪＰＥＧデータは、検出された空き領域に記録される。記録先の空き領域を管理するカラムの“ｈｅａｄ”および“ｓｉｚｅ”は、記録とともに更新される。
【００４３】
動画記録処理の途中で静止画記録操作が行われた場合、ＪＰＥＧデータの記録のために検出される空き領域は、ＭＰＥＧデータの記録先の空き領域と異なる。ＭＰＥＧデータの記録先がカラムＬ（０）によって管理される空き領域であれば、ＪＰＥＧデータはカラムＬ（１）によって管理される空き領域に記録される。これによって、互いに性質の異なるコンテンツの記録処理が並行することに起因するフラグメントの増大が抑制される。
【００４４】
データ領域３８ｂに１つの空き領域しか存在せず、この唯一の空き領域への動画記録処理が実行されている途中で静止画記録操作が行われた場合は、ＪＰＥＧデータの記録に先立って領域分割処理が実行される。つまり、図５（Ａ）に示すように１番目および２番目の空き領域が満杯となり、３番目の空き領域にＭＰＥＧデータが記録されているときに静止画記録操作が行われると、３番目の空き領域が図５（Ｂ）に示す要領で２分割される。
【００４５】
静止画記録操作が行われた時点のフリーリスト４０ｔのカラムＬ（２）の記述が図６（Ａ）に示す状態である場合、図６（Ｂ）に示す要領でカラムＬ（２）の記述が更新されかつカラムＬ（３）が新規に作成される。図６（Ａ）および図６（Ｂ）によれば、カラムＬ（２）の“ｓｉｚｅ”が“４４”から“２２”に更新され、カラムＬ（２）の“ｎｅｘｔ”に“３”が書き込まれる。さらに、カラムＬ（３）の“ｈｅａｄ”および“ｓｉｚｅ”に“２０４”および“２２”が書き込まれる。このように、領域分割処理は必要に応じて実行される。この結果、データ領域３８ｔの利用効率の低下が回避される。
【００４６】
再生モードにおいて削除処理が実行されると、データ領域３８ｔに空き領域が形成され、これに応じてフリーリスト４０ｔが更新される。図７（Ａ）（図３と同じ）に示すように空き領域が形成されている状態で１５３番目〜１７２番目のクラスタのデータが削除されると、図７（Ｂ）に示すように２番目の空き領域のサイズが拡大される。フリーリスト４０ｔのカラムＬ（１）の記述は、図８（Ａ）から図８（Ｂ）に更新される。
【００４７】
また、図８（Ａ）（図３と同じ）に示すように空き領域が形成されている状態で１７３番目〜１７７番目のクラスタのデータが削除されると、図８（Ｂ）に示すように２番目の空き領域と３番目の空き領域との間に新規の空き領域が作成される。これに応じて、図１０（Ａ）〜図１０（Ｂ）から分かるように、カラムＬ（２）の“ｎｅｘｔ”に“３”が書き込まれ、カラムＬ（３）が新規に作成される。
【００４８】
ＣＰＵ４０は、図１２〜図１５に示すメインタスク，図１６に示す撮像制御タスク，図１７〜図１８に示す動画記録制御タスク，図１９〜図２１に示す静止画記録制御タスク，および図２２〜図２３に示す再生タスクを含む複数のタスクを並列的に実行する。なお、これらのタスクに対応する制御プログラムは、フラッシュメモリ４４に記憶される。
【００４９】
まず図７を参照して、ステップＳ１では初期化処理を実行する。フラグＦｅｒｒは、初期化処理に成功したとき“０”に設定され、初期化処理に失敗したとき“１”に設定される。ステップＳ３では、このようなフラグＦｅｒｒの状態を判別する。フラグＦｅｒｒが“０”であればステップＳ５以降の処理に進む一方、フラグＦｅｒｒが“１”であればエラー処理に進む。
【００５０】
ステップＳ５ではフリーリスト作成処理を実行し、ステップＳ７では現在のモードがカメラモードおよび再生モードのいずれであるかを判別する。カメラモードであれば、ステップＳ９で撮像制御タスク，動画記録制御タスクおよび静止画記録制御タスクを起動する。再生モードであれば、ステップＳ１１で再生タスクを起動する。ステップＳ９またはＳ１１の処理が完了すると、モード切換操作が行われたか否かをステップＳ１３で判別する。ここでＹＥＳであれば、ステップＳ９またはＳ１１で起動されたタスクをステップＳ１５で停止し、ステップＳ７に戻る。
【００５１】
ステップＳ１の初期化処理は、図１３に示すサブルーチンに従って実行される。まずステップＳ２１でカードドライバ３６の初期化を試みる。ステップＳ２３では、カードドライバ３６から返送された通知が“ＯＫ”および“ＮＧ”のいずれであるかを判別する。通知が“ＮＧ”であれば、カードドライバ３６の初期化に失敗したとみなして、ステップＳ３１でフラグＦｅｒｒを“１”に設定する。通知が“ＯＫ”であれば、カードドライバ３６の初期化に成功したとみなし、ステップＳ２５以降の処理を実行する。
【００５２】
ステップＳ２５ではメモリカード３８のリザーブ領域３８ａ（図２参照）に形成されたＭＢＲおよびＰＢＲの正当性をチェックし、ステップＳ２７ではチェック結果が“正当”であるか否かを判別する。ＹＥＳであればステップＳ２９でフラグＦｅｒｒを“０”に設定する一方、ＮＯであればステップＳ３１でフラグＦｅｒｒを“１”に設定する。ステップＳ２９またはＳ３１の処理が完了すると、上階層のルーチンに復帰する。
【００５３】
図１２に示すステップＳ５のフリーリスト作成処理は、図１４〜図１５に示すサブルーチンに従って実行される。まずステップＳ４１で、ＰＢＲを参照してデータエリア３８ｂに形成されたクラスタの総数を検出する。ステップＳ４３では変数ｋを“１”に設定し、ステップＳ４５ではカラムＬ（ｋ）をフリーリスト４０ｔに作成する。作成されたカラムＬ（ｋ）の“ｈｅａｄ”，“ｓｉｚｅ”および“ｎｅｘｔ”はいずれも“０”を示す。
【００５４】
ステップＳ４７では、先頭カラムを指向するポインタＬｔｏｐおよび末尾カラムを指向するポインタＬｌａｓｔの各々にカラムＬ（ｋ）を設定する。ステップＳ４９ではクラスタ番号を識別する変数ｎを“２”に設定し、ステップＳ５１ではｎ番目のクラスタが末尾クラスタであるか否かをステップＳ４１で検出された総数に基づいて判別する。ここでＹＥＳであれば上階層のルーチンに復帰する一方、ＮＯであればステップＳ５３に進む。
【００５５】
ステップＳ５３では、ｎ番目のクラスタが空き状態であるか否かを判別する。ステップＳ５５では、ポインタＬｌａｓｔによって指向されるカラムの“ｈｅａｄ”が“０”を示すか否かを判別する。ステップＳ５９では、ポインタＬｌａｓｔによって指向されるカラムの“ｈｅａｄ”および“ｓｉｚｅ”によってそれぞれ示される２つの数値の総和が変数ｎに等しいか否かを判別する。
【００５６】
ステップＳ５３およびＳ５５の各々でＹＥＳであれば、注目するクラスタは１番目の空き領域を形成する先頭クラスタであるとみなし、ステップＳ５７に進む。ステップＳ５７では、ポインタＬｌａｓｔによって指向されるカラムの“ｈｅａｄ”および“ｓｉｚｅ”に“ｎ”および“１”を書き込む。ステップＳ５７の処理が完了すると、ステップＳ６９で変数ｎをインクリメントしてステップＳ５１に戻る。
【００５７】
ステップＳ５３でＹＥＳであり、ステップＳ５５でＮＯであり、そしてステップＳ５９でＹＥＳであれば、注目するクラスタは空き領域を形成するクラスタのうち先頭クラスタおよび末尾クラスタと異なるクラスタであるとみなし、ステップＳ６１に進む。ステップＳ６１では、ポインタＬｌａｓｔによって指向されるカラムの“ｓｉｚｅ”が示す数値をインクリメントする。ステップＳ６１の処理が完了すると、ステップＳ６９を経てステップＳ５１に戻る。
【００５８】
ステップＳ５３でＹＥＳでありかつステップＳ５５およびＳ５９の各々でＮＯであれば、注目するクラスタは２番目以降の空き領域を形成する先頭クラスタであるとみなし、ステップＳ６３に進む。ステップＳ６３では変数ｋをインクリメントし、ステップＳ６５ではフリーリスト４０ｔの末尾にカラムＬ（ｋ）を新規作成する。作成されたカラムＬ（ｋ）の“ｈｅａｄ”および“ｓｉｚｅ”には、“ｎ”および“１”がそれぞれ書き込まれる。また、ポインタＬｌａｓｔによって指向されるカラムの“ｎｅｘｔ”には“ｋ”が書き込まれる。ステップＳ６７ではポインタＬｌａｓｔにカラムＬ（ｋ）を設定し、その後にステップＳ６９を経てステップＳ５１に戻る。
【００５９】
なお、ステップＳ５３でＮＯであれば、ステップＳ６９で変数ｎをインクリメントしてからステップＳ５１に戻る。
【００６０】
図１６を参照して、ステップＳ７１ではスルー画像処理を実行する。これによって、被写界のスルー画像がＬＣＤモニタ３０から出力される。ステップＳ７３では静止画記録操作が行われたか否かを判別し、ＹＥＳであればステップＳ７５でフォーカスや露光量などの撮像条件を調整する。調整が完了すると、静止画読み出し処理を実行する。これによって、静止画記録操作が行われた時点の被写界像を表す静止画像データがＳＤＲＡＭ２６に確保される。ステップＳ７７の処理が完了すると、ステップＳ７１に戻る。
【００６１】
図１７を参照して、ステップＳ８１では、フラグＦｍｏｖを“０”に設定する。フラグＦｍｏｖは動画記録処理が中断状態および実行状態のいずれであるかを識別するためのフラグであり、“０”が中断状態を示す一方、“１”が実行状態を示す。
【００６２】
ステップＳ８３では、動画記録開始操作が行われたか否かを判別する。ここでＹＥＳであれば、ステップＳ８５でフラグＦｍｏｖを“１”に設定し、ステップＳ８７でＭＰＥＧ４コーデック３４を起動し、そしてステップＳ８９でカラム取得処理１を実行する。ステップＳ８９の処理によって、空き領域を定義するカラムＬ（ｉ）がフリーリスト４０ｔから検出される。ステップＳ９１では、ＳＤＲＡＭ２６に蓄積されたＭＰＥＧデータの一部を、データ領域３８ｂ（図２）を形成する複数のクラスタのうちカラムＬ（ｉ）の“ｈｅａｄ”によって示されるクラスタに書き込む。
【００６３】
ステップＳ９３では、動画記録終了操作が行われたか否かを判別する。ＹＥＳであれば、ステップＳ９５でＭＰＥＧ４コーデック３４を停止し、ステップＳ９７で動画記録終了処理を行ってからステップＳ８１に戻る。ステップＳ９３でＮＯであれば、ステップＳ９１の処理のために注目されるクラスタが満杯になったか否かをステップＳ９９で判別する。注目するクラスタが満杯でなれればステップＳ９１に戻り、注目するクラスタが満杯であればステップＳ１０１に進む。
【００６４】
ステップＳ１０１では、カラムＬ（ｉ）の“ｈｅａｄ”に記述された数値をインクリメントする一方、カラムＬ（ｉ）の“ｓｉｚｅ”に記述された数値をディクリメントする。カラムＬ（ｉ）の記述は、注目する空き領域の最新の状態（位置およびサイズ）を定義する。ステップＳ１０３では、カラムＬ（ｉ）の“ｓｉｚｅ”に記述された数値が“０”を示すか否かを判別し、ＮＯであればステップＳ９１に戻る一方、ＹＥＳであればステップＳ８９に戻る。
【００６５】
ステップＳ９５のカラム取得処理１は、図１８に示すサブルーチンに従って実行される。まずステップＳ１１１で変数ｉを“０”に設定し、ステップＳ１１３でカラムＬ（ｉ）がフリーリスト４０ｔに存在するか否かを判別する。ここでＮＯであればエラー処理に進み、ＹＥＳであればカラムＬ（ｉ）の“ｓｉｚｅ”に記述された数値が“０”を上回るか否かをステップＳ１１５で判別する。数値が“０”であれば、ステップＳ１１７で変数ｉをインクリメントしてステップＳ１１３に戻る。数値が“１”以上であれば、上階層のルーチンに復帰する。こうして、空き領域を定義するカラムＬ（ｉ）が検出される。
【００６６】
図１９を参照して、ステップＳ１２１では、静止画記録操作が行われたか否かを判別する。ここでＹＥＳであれば、ステップＳ１２３でＪＰＥＧコーデック３２を起動し、ステップＳ１２５でカラム取得処理２を実行する。ステップＳ１２５の処理によって、空き領域を定義する先頭のカラムＬ（ｊ）がフリーリスト４０ｔから検出される。ステップＳ１２７では、ＳＤＲＡＭ２６に蓄積されたＪＰＥＧデータの一部を、カラムＬ（ｊ）の“ｈｅａｄ”によって示されるクラスタに書き込む。
【００６７】
ステップＳ１２９では、ＪＰＥＧデータの書き込みが完了したか否かを判別し、ＹＥＳであればステップＳ１２１に戻る。ＮＯであれば、ステップＳ１２７の処理のために注目されるクラスタが満杯になったか否かをステップＳ１３１で判別する。注目するクラスタが満杯でなければステップＳ１２７に戻り、注目するクラスタが満杯であればステップＳ１３３に進む。
【００６８】
ステップＳ１３３では、カラムＬ（ｊ）の“ｈｅａｄ”に記述された数値をインクリメントする一方、カラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値をディクリメントする。カラムＬ（ｊ）の記述は、注目する空き領域の最新の状態を定義する。ステップＳ１３５では、カラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値が“０”を示すか否かを判別し、ＮＯであればステップＳ１２７に戻る一方、ＹＥＳであればステップＳ１２５に戻る。
【００６９】
ステップＳ１２５のカラム取得処理２は、図２０に示すサブルーチンに従って実行される。まずステップＳ１４１でフラグＦｍｏｖが“０”であるか否かを判別する。ＹＥＳであれば動画記録処理は中断状態にあるとみなしてステップＳ１４３に進む一方、ＮＯであれば動画記録処理が実行状態にあるとみなしてステップＳ１５１に進む。
【００７０】
ステップＳ１４３では変数ｊを“０”に設定し、ステップＳ１４５ではフリーリスト４０ｔ上にカラムＬ（ｊ）が存在するか否かを判別する。カラムＬ（ｊ）が存在しなければエラー処理に進む一方、カラムＬ（ｊ）が存在すればカラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値が“０”を上回るか否かをステップＳ１４７で判別する。数値が“０”であれば、ステップＳ１１７で変数ｊをインクリメントしてステップＳ１４５に戻る。数値が“１”以上であれば、上階層のルーチンに復帰する。こうして、空き領域を定義するカラムＬ（ｊ）が検出される。
【００７１】
ステップＳ１５１では変数ｊを変数ｉと一致させ、ステップＳ１５３ではカラムＬ（ｊ）がポインタＬｌａｓｔによって指向されるカラムと一致するか否かを判別する。ここでＮＯであれば、少なくとも２つの空き領域がデータ領域３８ｔに存在するとみなし、ステップＳ１５７で変数ｊをインクリメントする。変数ｊがインクリメントされた結果、ＪＰＥＧデータの記録先の空き領域は、ＭＰＥＧデータの記録先の空き領域と相違する。
【００７２】
ステップＳ１５９ではカラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値が“０”を上回るか否かを判別し、ステップＳ１６１ではカラムＬ（ｊ）がポインタＬｌａｓｔによって指向されるカラムと一致するか否かを判別する。ステップＳ１５９でＹＥＳであれば上階層のルーチンに復帰し、ステップＳ１６１でＹＥＳであればエラー処理に進み、ステップＳ１５９およびＳ１６１のいずれにおいてもＮＯであればステップＳ１５７に戻る。こうして、空き領域を定義するカラムＬ（ｊ）が検出される。
【００７３】
ステップＳ１５３でＹＥＳであれば、カラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値が“２”以上であるか否かを判別する。ここでＮＯであればエラー処理に進む一方、ＹＥＳであればフリーリスト４０ｔの末尾にカラム（ｊ＋１）を新規に作成する。作成されたカラムＬ（ｊ＋１）の“ｈｅａｄ”には、カラムＬ（ｊ）の“ｈｅａｄ”に記述された数値とカラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値の１／２との総和が書き込まれる。カラムＬ（ｊ＋１）の“ｓｉｚｅ”には、カラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値からカラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値の１／２を減算して求められた数値が書き込まれる。また、カラムＬ（ｊ）の“ｎｅｘｔ”には“ｊ＋１”が書き込まれる。
【００７４】
ステップＳ１６５では、ポインタＬｌａｓｔをカラムＬ（ｊ＋１）に設定する。ステップＳ１６７では、カラムＬ（ｊ）の“ｓｉｚｅ”に記述された数値をその１／２の数値に更新する。こうして、最後の空き領域が２分割され、ＪＰＥＧデータおよびＭＰＥＧデータは互いに異なる空き領域に記録される。
【００７５】
ステップＳ１６７の処理が完了すると、ステップＳ１６９で変数ｊおよびｋの各々をインクリメントしてから上階層のルーチンに復帰する。こうして、空き領域を定義するカラムＬ（ｊ）が検出される。
【００７６】
なお、分割される空き領域を形成するクラスタ数が奇数である場合、分割された一方の空き領域を形成するクラスタ数は、分割された他方の空き領域を形成するクラスタ数よりも“１”大きい。
【００７７】
図２２を参照して、ステップＳ１７１では所望のファイル（動画ファイルまたは静止画ファイル）を指定するファイル指定処理を実行し、ステップＳ１７３では指定されたファイルを再生するファイル再生処理を実行する。ステップＳ１７５ではファイル更新操作が実行されたか否かを判別し、ステップＳ１７７ではファイル削除操作が実行されたか否かを判別する。ステップＳ１７５でＹＥＳであれば、ステップＳ１７１に戻る。ステップＳ１７７でＹＥＳであれば、ステップＳ１７９でファイル削除処理を実行してからステップＳ１７９に戻る。
【００７８】
ステップＳ１７９のファイル削除処理は、図２３に示すサブルーチンに従って実行される。ステップＳ１８１では、指定された動画ファイルまたは静止画ファイルを格納する１または２以上のクラスタの中から先頭クラスタを特定し、特定された先頭クラスタの識別番号を変数Ｍに設定する。ステップＳ１８３ではＭ番目のクラスタに隣接するクラスタを管理するカラムをフリーリスト４０ｔからサーチし、ステップＳ１８５ではサーチに成功したか否かを判別する。
【００７９】
ステップＳ１８５でＹＥＳであればステップＳ１８７に進み、カラムＬ（ｘ）の“ｈｅａｄ”に記述された数値から“１”を引き算して得られた数値が変数Ｍと一致するか否かを判別する。ステップＳ１８７でＹＥＳであれば、Ｍ番目のクラスタとカラムＬ（ｘ）によって管理されるクラスタとは図１１（Ａ）に示す位置関係にあるとみなして、ステップＳ１８９を経てステップＳ１９１に進む。ステップＳ１８９でＮＯであれば、Ｍ番目のクラスタとカラムＬ（ｘ）によって管理されるクラスタとは図１１（Ｂ）に示す位置関係にあるとみなして、そのままステップＳ１９１に進む。ステップＳ１８９では、カラムＬ（ｘ）の“ｈｅａｄ”に記述された数値をディクリメントする。ステップＳ１９１では、カラムＬ（ｘ）の“ｓｉｚｅ”に記述された数値をインクリメントする。
【００８０】
ステップＳ１８５でＮＯであれば、ステップＳ１９３で変数ｋをインクリメントし、ステップＳ１９５でカラムＬ（ｋ）をフリーリスト４０ｔに作成する。作成されたカラムＬ（ｋ）の“ｈｅａｄ”，“ｓｉｚｅ”および“ｎｅｘｔ”はそれぞれ“Ｍ”，“１”および“０”を示す。ステップＳ１９７ではポインタＬｌａｓｔによって指向されるカラムの“ｎｅｘｔ”に“ｋ”を記述し、ステップＳ１９９ではポインタＬｌａｓｔにカラムＬ（ｋ）を設定する。ステップＳ１９９の処理が完了すると、ステップＳ２０１に進む。
【００８１】
ステップＳ２０１では、Ｍ番目のクラスタが指定された動画ファイルまたは静止画ファイルを格納する末尾クラスタであるか否かを判別する。ここでＮＯであればステップＳ２０３に進み、Ｍ番目のクラスタが空き状態となるようにＦＡＴを更新する。ＦＡＴの更新が完了すると、ステップＳ２０５で変数ＭをインクリメントしてからステップＳ１８３に戻る。ステップＳ２０１でＹＥＳであれば、ステップＳ２０７でステップＳ２０３と同様の処理を実行し、上階層のルーチンに復帰する。
【００８２】
以上の説明から分かるように、イメージセンサ１４によって捉えられた被写界を表す動画像コンテンツおよび静止画像コンテンツ（Ｎ個のコンテンツ）は、ＣＰＵ４０の処理によって並列的に取り込まれる(S71, S77)。メモリカード３８に分散的に形成され得る空き領域の数が２（＝Ｎ）以上であるか否かは、動画像コンテンツおよび静止画像コンテンツの取り込み処理に関連して判別される(S153)。この判別結果が否定的であれば、メモリカード３８に形成された空き領域が、２分割される(S155, S163, S167)。ＣＰＵ４０は、取り込まれた動画像コンテンツおよび静止画像コンテンツをメモリカード３８に形成された２つの空き領域にそれぞれ記録する。
【００８３】
したがって、メモリカード３８に形成された空き領域が２つ以上であれば、動画像コンテンツおよび静止画像コンテンツは２つの空き領域にそれぞれ記録される。一方、メモリカード３８に形成された空き領域が１つであれば、領域分割処理によって２つの空き領域がメモリカード３８に形成される。動画像コンテンツおよび静止画像コンテンツは、領域分割処理によって得られた２つの空き領域にそれぞれ記録される。
【００８４】
２つのコンテンツは２つの空き領域にそれぞれ記録されるため、メモリカード３８内でのフラグメントの増大が回避される。また、領域分割処理は２つのコンテンツを並列的に取り込むときに必要に応じて実行されるため、メモリカード３８の利用効率の低下が回避される。
【００８５】
なお、この実施例では、２つのコンテンツを並列的に取り込むことを想定しているが、並列的に取り込むコンテンツは３つ以上（Ｎ≧３）でもよい。また、この実施例では、取り込むコンテンツとして動画像コンテンツおよび静止画像コンテンツを想定しているが、これらに代えてまたはこれらとともに音声コンテンツを取り込むようにしてもよい。さらに、この実施例では、ディジタルビデオカメラを想定しているが、この発明は据置型のビデオレコーダやオーディオレコーダなどの他の装置にも適用できる。
【図面の簡単な説明】
【００８６】
【図１】この発明の一実施例の構成を示すブロック図である。
【図２】図１実施例に適用されるメモリカードのマッピング状態の一例を示す図解図である。
【図３】メモリカードに分散的に形成された空き領域の分布状態の一例を示す図解図である。
【図４】図１実施例で参照されるフリーリスト（空き領域リスト）の一例を示す図解図である。
【図５】（Ａ）は領域分割を施される前のメモリカードのマッピング状態の一例を示す図解図であり、（Ｂ）は領域分割を施された後のメモリカードのマッピング状態の一例を示す図解図である。
【図６】（Ａ）は領域分割を施される前のフリーリストの一部を示す図解図であり、（Ｂ）は領域分割を施された後のフリーリストの一部を示す図解図である。
【図７】（Ａ）は削除処理を施される前のメモリカードのマッピング状態の一例を示す図解図であり、（Ｂ）は削除処理を施された後のメモリカードのマッピング状態の一例を示す図解図である。
【図８】（Ａ）は削除処理を施される前のフリーリストの一部を示す図解図であり、（Ｂ）は削除処理を施された後のフリーリストの一部を示す図解図である。
【図９】（Ａ）は削除処理を施される前のメモリカードのマッピング状態の一例を示す図解図であり、（Ｂ）は削除処理を施された後のメモリカードのマッピング状態の他の一例を示す図解図である。
【図１０】（Ａ）は削除処理を施される前のフリーリストの他の一部を示す図解図であり、（Ｂ）は削除処理を施された後のフリーリストの他の一部を示す図解図である。
【図１１】（Ａ）は削除処理動作の一例を示す図解図であり、（Ｂ）は削除処理動作の他の一例を示す図解図である。
【図１２】図１実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図１３】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図１４】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図１５】図１実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図１６】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図１７】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図１８】図１実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図１９】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図２０】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図２１】図１実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図２２】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図２３】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【符号の説明】
【００８７】
１０  …ディジタルビデオカメラ
１４  …イメージセンサ
２２  …信号処理回路
２６  …ＳＤＲＡＭ
３２  …ＪＰＥＧコーデック
３４  …ＭＰＥＧ４コーデック
３６  …カードドライバ
３８  …メモリカード
４０  …ＣＰＵ
【図１】
0004657130.tif 000002
【図２】
0004657130.tif 000003
【図３】
0004657130.tif 000004
【図４】
0004657130.tif 000005
【図５】
0004657130.tif 000006
【図６】
0004657130.tif 000007
【図７】
0004657130.tif 000008
【図８】
0004657130.tif 000009
【図９】
0004657130.tif 000010
【図１０】
0004657130.tif 000011
【図１１】
0004657130.tif 000012
【図１２】
0004657130.tif 000013
【図１３】
0004657130.tif 000014
【図１４】
0004657130.tif 000015
【図１５】
0004657130.tif 000016
【図１６】
0004657130.tif 000017
【図１７】
0004657130.tif 000018
【図１８】
0004657130.tif 000019
【図１９】
0004657130.tif 000020
【図２０】
0004657130.tif 000021
【図２１】
0004657130.tif 000022
【図２２】
0004657130.tif 000023
【図２３】
0004657130.tif 000024