撮像装置
【課題】空き容量は十分有るにもかかわらず、連続した空き容量が確保できないことで発生するメモリのフラグメンテーションを回避し、連続撮影効率が向上した撮像装置を提供する。
【解決手段】撮影画像データを一時的に記憶する記憶手段と、記憶手段を管理する記憶管理手段とを有する撮像装置において、前記複数の画質は、それぞれ画質の高低に対応する、最も高い画質と、最も低い画質と、両者の中間にあたる1又は2種類以上の画質であり、記憶手段は、最も大きい画質のデータが記憶できる大きさの大ブロックに分割され、前記大ブロックは最も小さい画質の大きさの小ブロックに分割され、前記記憶管理手段は撮影画像データの画質が、記憶できる最大の画質より小さい前記大ブロックは、一時的に記憶不可とするリザーブ状態にし、撮影画像の画質と、記憶できる最大の画質が同じ大ブロックには、優先して撮影画像データを記憶する撮像装置を提供する。
【解決手段】撮影画像データを一時的に記憶する記憶手段と、記憶手段を管理する記憶管理手段とを有する撮像装置において、前記複数の画質は、それぞれ画質の高低に対応する、最も高い画質と、最も低い画質と、両者の中間にあたる1又は2種類以上の画質であり、記憶手段は、最も大きい画質のデータが記憶できる大きさの大ブロックに分割され、前記大ブロックは最も小さい画質の大きさの小ブロックに分割され、前記記憶管理手段は撮影画像データの画質が、記憶できる最大の画質より小さい前記大ブロックは、一時的に記憶不可とするリザーブ状態にし、撮影画像の画質と、記憶できる最大の画質が同じ大ブロックには、優先して撮影画像データを記憶する撮像装置を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオカメラ及びスチルカメラ等の撮像装置における、撮影画像データの記憶管理方法を有する撮像装置に関する。
【背景技術】
【0002】
従来、撮影画像をデジタル値の撮影画像データとして変換し、記憶媒体に記憶する撮像装置がある。かかる撮像装置は、撮影を行うことによって取得する撮影画像データの画質によって、画像データサイズが異なる構成となっていた。
【0003】
例えば、最も画質の高いHiとその次に高いMedと、最も低いLowの3種類の画質で撮影画像データを取得する撮像装置が想定される。このような撮像装置において、Hiの画質の撮影画像データが最も画像データサイズが大きく、次にMedの画質の撮影画像データの画像データサイズが大きく、Lowの画質の撮影画像データの画像データサイズが最も小さい。
【0004】
また、上記のような撮像装置において、ユーザは撮影中、撮影画像データの画質を変更して撮影を続けたいという場合がある。
【0005】
例えば、まず、画質は低いが画像データサイズが小さいLowに設定して撮影を行い、構図や色を確認し、構図や色が良ければ画質を上げ、さらに高画質で同じ被写体の撮影を撮影したいという場合があった。
【0006】
また、上記のような撮像装置において撮影を行うと、通常、撮影画像データはバッファメモリに一時的に記憶される。
【0007】
バッファメモリとは通常RAM上にある、情報を一時的に記憶する記憶領域であり、上記のような撮像装置においては、取得した撮影画像データを一時的に記憶している。
【0008】
撮影画像データは取得されると画像処理を施される。しかしながら、前に取得した撮影画像データの画像処理が終わってからでなければ、次の撮影画像データは取得できないとなると、一枚撮影画像データを取得してから次の撮影画像データを取得するまで時間がかかってしまう。
【0009】
そこで、通常、上記のような撮像装置は、撮影画像データを取得すると、画像処理を施すまで、かかる撮影画像データをバッファメモリに一時的に記憶しておき、さらに続けて次の撮影画像データの取得を行う構成となっている。
【0010】
また、上記のような撮像装置においては、空いているバッファメモリに間隔をあけず、順番に撮影画像データを記憶していき、記憶した順に画像処理を施し、記憶領域を解放していくことで、順番に空き容量が発生する構成となっている。
【0011】
図1は撮影画像をデジタル値の撮影画像データとして変換し、記憶媒体に記憶する撮像装置におけるバッファメモリの使用例を示している。
【0012】
例えば、上記のような撮像装置において、まずLowの画質で撮影を行い、バッファメモリにLowの画質の撮影画像データが残っている状態で、画質をMedに設定して、バッファメモリがフル状態になるまでMedの画質で撮影した図1Aのような場合、バッファメモリがフル状態から、バッファメモリに残っているLowの画質の撮影画像データの処理が完了した図1Bの状態のときにフラグメンテーションが起こってしまう。
【0013】
つまり、この例では、バッファメモリにMedの画質の撮影画像データを格納するだけの十分な空き容量があるにもかかわらず、空き容量が連続していないため、次の撮影画像データの画質がMedであった場合に、突発的にバッファメモリに記憶することができなくなってしまう。
【0014】
上記のような撮像装置では、撮影画像データを分割して記憶することができず、必ず連続した記憶領域に記憶しなければならないからである。
【0015】
メモリのフラグメンテーションの問題を解決するため、例えば引用文献1に記載の発明のような従来例がある。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開平08−249225号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
引用文献1には、空きメモリブロックを管理し、隣接する空きメモリブロックが発生した場合には、これらのメモリブロックを結合して新たな空きメモリブロックを構成することでフラグメンテーションをできるだけ回避し、効率的に空きメモリブロックを確保するという技術が記載されている。
【0018】
しかしながら、引用文献1に記載された発明は、複数のアプリケーションに共有されるメモリ領域を有する装置向きの技術である。
【0019】
つまり、引用文献1に記載の発明では、複数のアプリケーションがバッファメモリの様々なところに様々なデータサイズのデータを書き込み、様々なところからデータの処理が終了し、空きメモリブロックが発生する構造を前提としている。
【0020】
対して、撮像装置においては、取得するデータサイズが定型で、記憶に使用されていたメモリブロックが撮影画像データを記憶した順に解放されていくため、予め、どこにどの大きさの空きメモリブロックが発生するか常に予定されている。
【0021】
すなわち、引用文献1に記載の発明を撮像装置に用いても、メモリブロックの結合により、期待するサイズの空きメモリブロックが構成できるかわからず、結果、効率的に空きメモリブロックを構成できないおそれがある。
【課題を解決するための手段】
【0022】
撮影画像データを一時的に記憶する記憶手段と、記憶手段を管理する記憶管理手段とを有する撮像装置において、前記記憶手段は、複数の画質で撮影画像データを記憶し、前記複数の画質は、それぞれ画質の高低に対応する、最も高い画質と、最も低い画質と、両者の中間にあたる1又は2種類以上の画質であり、前記記憶手段は、最も高い画質のデータが記憶できる大きさの大ブロックに分割され、前記大ブロックは最も低い画質の大きさの小ブロックに分割され、前記記憶手段の前記大ブロックの状態は、記憶できる撮影画像データの最高の画質が最も低い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質と最も低い画質の中間にあたる1又は2種類以上のいずれかの画質である状態、又は、記憶ができない状態のいずれかにあたり、前記記憶管理手段は、撮影画像データの画質が、記憶できる最高の画質より低い前記大ブロックは、一時的に記憶不可とするリザーブ状態にし、撮影画像データの画質と、記憶できる最高の画質が同じ大ブロックには、優先して撮影画像データを記憶し、撮影画像データの画質によって予め決められている、撮影画像データが記憶される小ブロックの優先順位にしたがって、撮影画像データを前記記憶手段に記憶することを特徴とする、撮像装置を提供する。
【発明の効果】
【0023】
本発明により、空き容量は十分有るにもかかわらず、連続した空き容量が確保できないことで発生するメモリのフラグメンテーションを回避し、連続撮影効率が向上した撮像装置を提供することができる。
【図面の簡単な説明】
【0024】
【図1】撮影画像をデジタル値の撮影画像データとして変換し、記憶媒体に記憶する撮像装置におけるバッファメモリの使用例
【図2】本発明の実施例における撮像装置のブロック図
【図3】本実施例のデジタルカメラにおける記憶手段の構成を示す概念図
【図4】大ブロックの記憶の状態Fullの一例を示す図
【図5】大ブロックの記憶の状態Sprawlの一例を示す図
【図6】大ブロックの記憶の状態Crowdedの一例を示す図
【図7】大ブロックの記憶の状態Vacantを示す図
【図8】フラグメンテーションが想定される事例を示す図
【図9】Hiの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャート
【図10】Medの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャート
【図11】Lowの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャート
【図12】図11のステップ#25のリザーブ状態の更新方法を示すフローチャート
【発明を実施するための形態】
【0025】
図2は本発明の実施例であるデジタルカメラシステムの概略構成を示すブロック図である。
【0026】
図2において、100は、本実施形態におけるデジタルカメラであり、被写体を撮影し、撮影した画像データを記憶する。200は、デジタルカメラ100に装着可能なレンズである。本実施例において、デジタルカメラ100は、レンズの交換が可能な構成としており、デジタルカメラ100とレンズ200とで全体としてレンズ交換式デジタルカメラシステムを構成している。
【0027】
デジタルカメラ100において、101はイメージャー、102は記憶手段、103は記憶管理手段、104は外部記憶手段、105は表示手段、106は制御手段である。
【0028】
レンズ200は、レンズ光学系201のほか、不図示のレンズCPU、絞りなどを有する。
【0029】
イメージャー101は、レンズ系200を通して入射した光を画像信号に変換する、CMOSやCCDである。
【0030】
記憶手段102は、記憶領域であり、本実施例においては画像処理を行う前の撮影画像データを、一時的に記憶するバッファメモリとしての役割を果たしている。
【0031】
図3は本実施例のデジタルカメラにおける記憶手段の構成を示す概念図である。
【0032】
本実施例のデジタルカメラ100では、最も画質が高いHiと、最も画質が低いLowと、HiとLowの中間の画質であるMedの3種類の画質のうち、いずれかの画質で撮影画像データを取得することとする。本実施例では3種類の画質のデータサイズの比率を、Hiが4、Medが2、Lowが1と定義して、以下に説明する。
【0033】
本実施例におけるHi、Med、Lowの各画質のデータサイズは、それぞれ、該当の画質で撮影画像データを取得した際に、最もデータサイズが大きい状態となるデータサイズを想定している。
【0034】
図3に示す通り、本実施例の記憶手段102は4つの大ブロックに分割され、大ブロックはさらに4つの小ブロックで分割されている。
【0035】
かかる大ブロックはHiの画質の撮影画像データが記憶できる大きさであり、小ブロックはLowの画質の撮影画像データが記憶できる大きさである。つまり、本実施例においては、4つの小ブロック全てが記憶に使用されていない状態の大ブロックは、前述のHiの画質の撮影画像データ1つ、Medの画質の撮影画像データ2つ、又はLowの画質の撮影画像データ4つが記憶できる。
【0036】
図4から図7は大ブロックの記憶の状態を示す図である。
【0037】
本実施例において、前記大ブロックは、画像データの記憶の状態によって、図4に示すようなLowの画質の撮影画像データサイズでさえも記憶できない状態をFull、図5に示すようなMedの画質の撮影画像データサイズは記憶できないが、Lowの画質の撮影画像データサイズは記憶できる状態をSprawl、図6に示すようなHiの画質の撮影画像データサイズは記憶できないが、Medの画質の撮影画像データは記憶できる状態をCrowded、又は、図7に示すようなHiの画質の撮影画像データが記憶できる状態をVacantとして、定義した。
【0038】
なお、図4から図7に示した図は、各状態の一例である。
【0039】
本実施例において、小ブロックは前述の通り、Lowの画質の撮影画像データのみを記憶できるデータサイズであり、大ブロックは小ブロック4つで構成されるように分割されている。大ブロック内では、撮影画像データの画質によって、どの位置の小ブロックに撮影画像データを優先的に記憶するかの優先順位が予め決められている。
【0040】
本実施例においてHiの画質の撮影画像データを記憶するには、大ブロックがVacantの状態でなくてはならない。そのため、Hiのデータサイズの撮影画像データを記憶する場合は、Vacantの状態の大ブロックの小ブロック4つ全てを使って記憶を行うほかない。つまり、大ブロック内において小ブロック単位の記憶先頭を左端と考えたとき、左端の小ブロックが優先順位第1となる。
【0041】
本実施例において、Medの画質の撮影画像データを記憶するには、大ブロックがVacantか、又はCrowdedの状態でなくてはならない。
【0042】
大ブロックがVacantか、またはCrowdedの状態の場合は、本実施例の小ブロックの撮影画像データが記憶される優先順位は次のようになる。
【0043】
大ブロック内において小ブロック単位の記憶先頭を左端と考えたとき、左端の小ブロックが優先順位第1となる。つまり、左端の小ブロックにMedの画質の撮影画像データを記憶した場合、左端の小ブロックと連結する左端から2番目の小ブロックに撮影画像データが記憶される。
【0044】
次に、優先順位第2となるのは、左端から3番目の小ブロックである。つまり、左端の小ブロックが使用されて埋まっており、左端から2番目、3番目、右端の3つの小ブロックが空いていた場合、左端から2番目の小ブロックを使用せず、左端から3番目の小ブロックにMedの画質の撮影画像データを記憶する。この場合、左から3番目の小ブロックと連結する右端の小ブロックに撮影画像データが記憶される。
【0045】
そして、優先順位第3となるのは、左端から2番目の小ブロックである。つまり、左から2番目の小ブロックにMedの画質の撮影画像データを記憶した場合、左端から2番目の小ブロックと連結する左端から3番目の小ブロックに撮影画像データが記憶される。
【0046】
なお、Medの画質は連続する2つの小ブロックに記憶できる画質のため、最後尾の小ブロックである右端の小ブロックは候補とされない。
【0047】
図8はフラグメンテーションが想定される事例を示す図である。
【0048】
前述の通り、Medの画質の撮影画像データを記憶する際、優先順位は先頭である左端から順にはなっていない。なぜなら、例えば、大ブロックがCrowdedの状態であり、且つ、左端の小ブロックがLowの画質の撮影画像データの記憶に使用されて、のこり3つの小ブロックが空いている場合、図8(A)に示すように、左端から2番目の小ブロックからMedの画質の撮影画像データを記憶してしまうと、左端の小ブロックに記憶されているLowの画質の撮影画像データの画像処理が終了し、左端の小ブロックが空いた場合、図8(A)に示すようなフラグメンテーションが発生してしまうからである。つまり、2つぶんの小ブロックが空いているにもかかわらず、かかる2つの小ブロックが連続していないため、Medの画質の撮影画像データが記憶できない状態となってしまう。
【0049】
このようなフラグメンテーションを避けるため、本実施例では、大ブロックがCrowdedの状態であり、且つ、左端の小ブロックがLowの画質の撮影画像データの記憶に使用されて、のこり3つの小ブロックが空いている場合、図8(B)に示すように、優先順位第2の左端から3番目の小ブロックからMedの画質の撮影画像データを記憶する。
【0050】
これにより、左端の小ブロックに記憶されているLowの画質の撮影画像データの画像処理が終了し、左端の小ブロックが空いた場合、図8(B)に示すように、2つの空いた小ブロックが連続し、フラグメンテーションが発生しない。
【0051】
Lowのデータサイズの撮影画像データを記憶するには、Full以外の状態であればよい。
【0052】
大ブロックがVacantか、Crowdedか、又はSprawlの状態の場合、小ブロックの撮影画像データが記憶される優先順位は以下のようになる。
大ブロック内において小ブロック単位の記憶先頭を左端と考えたとき、左端の小ブロックが優先順位第1となり、左端の小ブロック1つに撮影画像データが記憶される。
【0053】
次に、優先順位第2となるのは、左端から2番目の小ブロックである。つまり、左端の小ブロックが使用されて埋まっていて、左端から2番目の小ブロックが空いている場合には左端から2番目の小ブロック1つに撮影画像データが記憶される。
【0054】
次に優先順位3となるのは、左端から3番目の小ブロックである。つまり、左端の小ブロックと左端から2番目の小ブロックが使用されて埋まっていて、左端から3番目の小ブロックが空いている場合には左端から3番目の小ブロック1つに撮影画像データが記憶される。
【0055】
そして、優先順位第4となるのは、右端の小ブロックである。つまり、右端の小ブロックに撮影画像データを記憶するのは、右端以外の小ブロック3つが使用されて埋まっており、右端以外に使用できる小ブロックがない場合、右端の小ブロック1つに撮影画像データが記憶される。
【0056】
前述の通り、Lowの画質の撮影画像データを記憶する際、優先順位は大ブロック内において小ブロック単位の記憶先頭である左端から順になっている。なぜなら、Lowの画質の撮影画像データを記憶する際、間隔をあけて記憶すれば、かえってフラグメンテーションを発生させてしまうからである。
【0057】
例えば、左端の小ブロックがLowの画質の撮影画像データで使用されており、左端から2番目、3番目、右端の3つの連続した空き小ブロックがあるCrowdedの状態の大ブロックにおいて、左端から2番目の小ブロックにLowの画質の撮影画像データを記憶すれば、左端から3番目と右端の小ブロックという連続した2つの小ブロックには、Medの画質の撮影画像データを記憶することができる。一方、左端から3番目の小ブロックにLowの画質の撮影画像データを記憶した場合、連続した空き小ブロックがなくなり、この場合にはMedの画質の撮影画像データが記憶できなくなる。
【0058】
したがって、Lowの画質の撮影画像データを記憶する際、優先順位は大ブロック内において小ブロック単位の記憶先頭である左端から順であることが望ましいことが分かる。
【0059】
記憶管理手段103は、撮影画像データを記憶する際、大ブロックの画像データの記憶の状態が、前記Full、Sprawl、Crowded、Vacantのいずれにあたるかを判断する。そして、記憶をする場合には、記憶手段102の大ブロック内のどの位置の小ブロックを撮影画像データの記憶の先頭に使用するか、前述の優先順位をもとに判断し、撮影画像データを記憶手段102に記憶する。
【0060】
外部記憶手段104は撮影画像を記憶するためのメディアである。外部記憶手段104としては例えば、デジタルカメラ100に着脱自在な記録媒体を用いることができる。
【0061】
表示手段105は、プレビュー画像やカメラに着脱可能な外部記憶手段104から読み出した撮影画像データやメニュー画像等を表示することができる。手外部表示手段105としては例えば、液晶や有機ELなどを用いることができる。
【0062】
制御手段106はCPUであり、撮影した画像データに対して、例えばガンマ補正、YCbCr変換、ノイズ除去等の各種画像処理を行う。また、不図示のAE機構やAF機構等の各種デバイスの制御を行う。
【0063】
次に、本実施例における、撮影画像データの記憶管理方法について説明する。
【0064】
前述の通り、本実施例のデジタルカメラ100は、最も画質が高いHiと、最も画質が低いLowと、HiとLowの中間の画質であるMedの3種類の画質のうち、いずれかの画質で撮影画像データを記録する。
【0065】
したがって、以下では、取得する撮影画像データの画質毎に、撮影画像データの記憶管理方法について説明する。
【0066】
第1に、Hiの画質の撮影画像データを取得した場合の記憶管理方法について説明する。
【0067】
図9はHiの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャートである。
【0068】
まずステップ#1では、記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。未探索の大ブロックとは、まだ、取得した撮影画像データが記憶可能な大ブロックか否かを判断されていない大ブロックである。つまり、ステップ#1では、記憶管理手段103が、記憶手段102中の大ブロック全てにおいて、取得したHiの画質の撮影画像データが記憶可能か否かの検討を行ったかどうかを判断する。
【0069】
すでに、記憶手段102中の全ての大ブロックにおいて、Hiの画質の撮影画像データが記憶可能か否かの検討を完了した場合には、ステップ#4に進む。まだ、全ての大ブロックでHiの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了していない場合にはステップ#2に進む。
【0070】
ステップ#2では、まだ検討されていない大ブロックにおいて、かかる大ブロックがVacantであるか否かを判断する。
【0071】
かかる大ブロックがVacantの状態の大ブロックであった場合には、ステップ#3に進み、記憶管理手段103は取得したHiの画質の撮影画像データをかかる大ブロックに優先順に記憶する。
【0072】
一方、かかる大ブロックがVacant以外の状態であった場合には、ステップ#1に戻り、他に未探索の大ブロックがあるか否かを検討する。
【0073】
ステップ#4は、記憶手段102中の全ての大ブロックにおいて、Hiの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了したが、取得したHiの画質の撮影画像データを記憶できないと判断された場合である。この場合、記憶管理手段103は、記憶手段102中にHiの画質の撮影画像データを記憶可能なVacantの状態の大ブロックがないとして、撮影画像データを記憶手段102に記憶せず終了する。
【0074】
第2に、Medの画質の撮影画像データを取得した場合の記憶管理方法について説明する。
【0075】
図10はMedの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャートである。
【0076】
ステップ#11では、まず記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。
【0077】
すでに、記憶手段102中の全ての大ブロックにおいて、取得したMedの画質の撮影画像データが記憶可能か否か検討を完了した場合には、ステップ#17に進み、まだ全ての大ブロックでMedの画質の撮影画像データが記憶可能な大ブロックがあるか否か検討を行っていない場合にはステップ#12に進む。
【0078】
ステップ#12では、まだ検討されていない大ブロックにおいて、まずは、かかる大ブロックがCrowdedの状態であるか否かを判断する。
【0079】
かかる大ブロックがCrowdedの状態の大ブロックであった場合には、ステップ#13に進み、記憶管理手段103はMedの画質の撮影画像データをかかる大ブロックの小ブロックに、前述の優先順に従って記憶し、終了とする。このとき、リザーブ状態の大ブロックがあればリザーブ状態を解除する。
【0080】
一方、かかる大ブロックがCrowded以外の状態であった場合には、ステップ#14に進み、かかる大ブロックがVacantであるか否かを判断する。
【0081】
かかる大ブロックがVacantの状態の大ブロックであった場合には、ステップ#15に進み、Vacantの状態の大ブロックでもなかった場合には、ステップ#1に戻る。
【0082】
ステップ#15では、記憶手段102中にリザーブ状態の大ブロックがあるか否かを検討する。
【0083】
ここで、リザーブ状態について説明する。
【0084】
リザーブ状態とは、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックについて、記憶管理手段103が撮影画像データをかかる大ブロックに記憶せず、かかる大ブロックが一時的に記憶不可の状態とされた状態をいう。
【0085】
ステップ#15において、記憶手段102中にかかるリザーブ状態の大ブロックがある場合には、ステップ#11に戻る。リザーブ状態の大ブロックがない場合には、ステップ#16に進む。そして、検討中であったVacant状態の大ブロックをリザーブ状態にし、ステップ#11に戻る。
【0086】
ステップ#11では、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。すでに、記憶手段102中の全ての大ブロックにおいて、取得したMedの画質の撮影画像データが記憶可能か否か検討を完了した場合には、ステップ#17に進む。
【0087】
ステップ#17では、記憶手段102にリザーブ状態の大ブロックがあるか否かについて検討する。
【0088】
ステップ#17において、記憶手段102にリザーブ状態の大ブロックがある場合にはステップ#13に進み、記憶管理手段103は、Medの撮影画像データをかかるリザーブ状態の大ブロックの小ブロックに、前述の優先順に従って記憶し、終了となる。このとき、かかるリザーブ状態の大ブロックのリザーブ状態は解除される。
【0089】
なお、かかるリザーブ状態の大ブロックは必ずVacantの状態である。前述の通り、リザーブ状態とは、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックであるためである。
【0090】
ステップ#17において記憶手段102にリザーブ状態の大ブロックがない場合にはステップ#18に進む。
【0091】
ステップ#18は、記憶手段102中の全ての大ブロックでMedの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了したが、Medの画質の撮影画像データを記憶できていないと判断された場合である。この場合、記憶管理手段103は、記憶手段102中にMedの画質の撮影画像データを記憶可能なCrowdedか、Vacantの状態の大ブロックがないとして、取得したMedの画質の撮影画像データを記憶手段102に記憶せず終了する。
【0092】
以上のように、本実施例では、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックがあった場合に、記憶管理手段103は撮影画像データをかかる大ブロックに記憶せず、かかる大ブロックを一時的に記憶不可のリザーブ状態にして大ブロックの空き容量を効率的に使う。
【0093】
ここで、本実施例において、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックをリザーブ状態とする理由について述べる。
【0094】
記憶管理手段103は、例えば、Medの画質の撮影画像データをVacantの状態の大ブロックにすぐに記憶せず、リザーブ状態として、記憶手段102中の他の大ブロックの中に、Crowdedの状態の大ブロックがないか、探索を行う。かかる探索を行い、すぐにVacantの状態の大ブロックに記憶しないのは、Hiの画質の撮影画像データサイズは記憶できないが、Medの画質の撮影画像データは記憶できるCrowdedの状態の大ブロックを優先して使用し、Hiの画質の撮影画像データを記憶できる可能性のあるVacantの状態の大ブロックをむやみに消費しないためである。
【0095】
つまり、記憶手段102中に撮影画像データを記憶可能なブロックとして、Vacantの状態の大ブロックとCrowdedの状態の大ブロックの2つがある場合、記憶管理手段103が、Medの画質の撮影画像データをVacantの状態の大ブロックに記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、かかる撮影画像データは記憶できなくなってしまう。
【0096】
一方、記憶管理手段103が、Medの画質の撮影画像データをVacantの状態の大ブロックに記憶させずに、一時的にVacantの状態の大ブロックをリザーブ状態として、記憶手段102中にCrowdedの状態の大ブロックがないか探索を行い、Crowdedの状態の大ブロックにMedの画質の撮影画像データを記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、先ほどリザーブ状態として、Medの画質の撮影画像データの記憶に使用しなかったVacantの状態の大ブロックにかかる撮影画像データを記憶することができる。
【0097】
以上のように、本実施例では、上述のように撮影画像データの画質が、記憶できる最大の画質より小さい大ブロックをリザーブ状態とすることで、大ブロック内に十分な空き小ブロックはあっても、かかる小ブロックが連続していないために、画像データを記憶できないという事例の発生を防いでいる。
【0098】
第3に、Lowの画質の撮影画像データを取得した場合の記憶管理方法について説明する。
【0099】
図11はLowの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャートである。
【0100】
ステップ#21では、まず、記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。
【0101】
すでに、記憶手段102中の全ての大ブロックについて、取得したLowの画質の撮影画像データが記憶可能か否かの検討を完了した場合には、ステップ#26に進む。まだ、全ての大ブロックでLowの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を行っていない場合には、ステップ#22に進む。
【0102】
ステップ#22では、まだ検討されていない大ブロックにおいて、まずは、かかる大ブロックがSprawlの状態であるか否かを判断する。
【0103】
かかる大ブロックがSprawlの状態の大ブロックであった場合には、ステップ#23に進み、記憶管理手段103はLowの画質の撮影画像データをかかる大ブロックの小ブロックに、前述の優先順に従って記憶し、終了とする。このとき、リザーブ状態の大ブロックがあればリザーブ状態を解除する。
【0104】
一方、かかる大ブロックがSprawl以外の状態であった場合には、ステップ#24に進み、かかる大ブロックがFullであるか否かを判断する。
【0105】
かかる大ブロックがFullの状態の大ブロックでもなかった場合には、ステップ#25に進む。
【0106】
図12は図11のステップ#25のリザーブ状態の更新方法を示すフローチャートである。
【0107】
ステップ#25では、リザーブ状態の更新を開始する。リザーブ状態の更新では記憶手段102中にリザーブ状態の大ブロックがない場合に、検討中の大ブロックをリザーブ状態としたり、また、リザーブ状態の大ブロックがあっても、よりリザーブ状態とするのに効率的な大ブロックがあれば、かかるブロックを新たなリザーブ状態の大ブロックとしたりするものである。
【0108】
リザーブ状態とするのに効率的な大ブロックは、記憶しようとする撮影画像データの画質と、記憶できる最大の撮影画像データの画質がより近い大ブロックのことである。
【0109】
例えば、記憶しようとする撮影画像データがLowの画質の撮影画像データであった場合には、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブ状態とするのにより効率的な大ブロックである。
【0110】
記憶手段102中の空きブロックに、Vacantの状態の大ブロックとCrowdedの状態の大ブロックがあった場合、記憶管理手段103が、Lowの画質の撮影画像データをVacantの状態の大ブロックに記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、かかる撮影画像データは記憶できなくなってしまう。
【0111】
一方、記憶管理手段103が、Lowの画質の撮影画像データをCrowdedの状態の大ブロックにLowの画質の撮影画像データを記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、Vacantの状態の大ブロックにかかる撮影画像データを記憶することができる。
【0112】
以上から、Lowの画質の撮影画像データを記憶するときは、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブするのに効率的な大ブロックであると言える。
【0113】
ステップ#25のリザーブの更新では、かかる大ブロックがVacantの状態の場合と、Crowdedの状態の場合の二通りがある。
【0114】
ステップ#31で、まず、かかる大ブロックがVacantの状態の場合について説明する。
【0115】
かかる大ブロックがVacantの状態であった場合、ステップ#31からステップ#35へと進む。
【0116】
ステップ#35では記憶手段102中にリザーブ状態の大ブロックがあるか否かを判断する。
【0117】
記憶手段102中にリザーブ状態の大ブロックがない場合は、ステップ#33に進み、かかるVacantの状態の大ブロックをリザーブ状態として、ステップ#25からステップ#21へと戻る。
【0118】
記憶手段102中にリザーブ状態の大ブロックがある場合は、かかるVacantの状態の大ブロックをリザーブ状態にせず、そのままステップ#25からステップ#21へと戻る。
【0119】
ステップ#35で、リザーブ状態の大ブロックがある場合に、かかるVacantの状態の大ブロックをリザーブ状態にしないのは、すでにリザーブ状態の大ブロックがあり、現在検討中の大ブロックがVacantの状態のためである。
【0120】
つまり、現在検討中のブロックがVacantの状態のため、現在リザーブ状態の大ブロックがVacantの状態であれば、条件は同じであるため、現在検討中のVacant状態の大ブロックをあえてリザーブ状態に更新する意味はない。
【0121】
また、現在リザーブ状態の大ブロックがCrowdedの状態であれば、前述の通り、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブするのに効率的な大ブロックであるため、現在検討中のVacant状態の大ブロックはリザーブ状態にせず、そのままステップ#25からステップ#21へと戻る。
【0122】
ステップ#31で、次に、かかる大ブロックがCrowdedの状態の場合について説明する。
【0123】
かかる大ブロックがCrowdedの状態であった場合、ステップ#31からステップ#32へと進む。
【0124】
ステップ#32では記憶手段102中にすでにリザーブ状態の大ブロックがあるか否かを判断する。
【0125】
記憶手段102中にリザーブ状態の大ブロックがない場合は、ステップ#33に進み、かかる大ブロックをリザーブ状態として、ステップ#25からステップ#21へと戻る。
【0126】
記憶手段102中にすでにリザーブ状態の大ブロックがある場合は、ステップ#34に進み、リザーブ状態の大ブロックがVacantの状態か否かを判断する。
【0127】
リザーブ状態の大ブロックがVacantの状態であった場合、ステップ#33へ進み、リザーブ状態のVacantの大ブロックのリザーブ状態を解除し、現在検討中のCrowdedの大ブロックをリザーブ状態として、ステップ#25からステップ#21へと戻る。
【0128】
これは、前述の通り、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブするのに効率的な大ブロックであるためである。
【0129】
一方、リザーブ状態の大ブロックがCrowdedの状態であった場合、現在検討中のCrowded状態の大ブロックはリザーブ状態にせず、そのままステップ#25からステップ#21へと戻る。
【0130】
これは、現在検討中のブロックがCrowdedの状態のため、現在リザーブ状態の大ブロックがCrowdedの状態であれば、条件は同じであるため、現在検討中のCrowded状態の大ブロックをあえてリザーブ状態に更新する意味はないからである。
【0131】
ステップ#21において、記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。
【0132】
すでに、記憶手段102中の全ての大ブロックについて、取得したLowの画質の撮影画像データが記憶可能か否かの検討を完了した場合には、ステップ#26に進む。
【0133】
ステップ#26において記憶手段102にリザーブ状態の大ブロックがない場合にはステップ#27に進む。
【0134】
ステップ#27は、記憶手段102中の全ての大ブロックでLowの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了したが、Lowの画質の撮影画像データを記憶できていないと判断された場合である。この場合、記憶管理手段103は、記憶手段102中にLowの画質の撮影画像データを記憶可能なSprawlか、Crowdedか、Vacantの状態の大ブロックがない、つまり全ての大ブロックがFullであるとして、取得したLowの画質の撮影画像データを記憶手段102に記憶せず、終了する。
【0135】
以上に説明した通り、本発明により、記憶手段102中に空き容量は十分有るにもかかわらず、連続した空き容量が確保できないことで発生するフラグメンテーションを解消し、連続撮影効率が向上したデジタルカメラシステムを提供することができる。
【符号の説明】
【0136】
100 デジタルカメラ
101 イメージャー
102 記憶手段
103 記憶管理手段
104 外部記憶装置
105 外部表示装置
106 制御手段
【技術分野】
【0001】
本発明は、ビデオカメラ及びスチルカメラ等の撮像装置における、撮影画像データの記憶管理方法を有する撮像装置に関する。
【背景技術】
【0002】
従来、撮影画像をデジタル値の撮影画像データとして変換し、記憶媒体に記憶する撮像装置がある。かかる撮像装置は、撮影を行うことによって取得する撮影画像データの画質によって、画像データサイズが異なる構成となっていた。
【0003】
例えば、最も画質の高いHiとその次に高いMedと、最も低いLowの3種類の画質で撮影画像データを取得する撮像装置が想定される。このような撮像装置において、Hiの画質の撮影画像データが最も画像データサイズが大きく、次にMedの画質の撮影画像データの画像データサイズが大きく、Lowの画質の撮影画像データの画像データサイズが最も小さい。
【0004】
また、上記のような撮像装置において、ユーザは撮影中、撮影画像データの画質を変更して撮影を続けたいという場合がある。
【0005】
例えば、まず、画質は低いが画像データサイズが小さいLowに設定して撮影を行い、構図や色を確認し、構図や色が良ければ画質を上げ、さらに高画質で同じ被写体の撮影を撮影したいという場合があった。
【0006】
また、上記のような撮像装置において撮影を行うと、通常、撮影画像データはバッファメモリに一時的に記憶される。
【0007】
バッファメモリとは通常RAM上にある、情報を一時的に記憶する記憶領域であり、上記のような撮像装置においては、取得した撮影画像データを一時的に記憶している。
【0008】
撮影画像データは取得されると画像処理を施される。しかしながら、前に取得した撮影画像データの画像処理が終わってからでなければ、次の撮影画像データは取得できないとなると、一枚撮影画像データを取得してから次の撮影画像データを取得するまで時間がかかってしまう。
【0009】
そこで、通常、上記のような撮像装置は、撮影画像データを取得すると、画像処理を施すまで、かかる撮影画像データをバッファメモリに一時的に記憶しておき、さらに続けて次の撮影画像データの取得を行う構成となっている。
【0010】
また、上記のような撮像装置においては、空いているバッファメモリに間隔をあけず、順番に撮影画像データを記憶していき、記憶した順に画像処理を施し、記憶領域を解放していくことで、順番に空き容量が発生する構成となっている。
【0011】
図1は撮影画像をデジタル値の撮影画像データとして変換し、記憶媒体に記憶する撮像装置におけるバッファメモリの使用例を示している。
【0012】
例えば、上記のような撮像装置において、まずLowの画質で撮影を行い、バッファメモリにLowの画質の撮影画像データが残っている状態で、画質をMedに設定して、バッファメモリがフル状態になるまでMedの画質で撮影した図1Aのような場合、バッファメモリがフル状態から、バッファメモリに残っているLowの画質の撮影画像データの処理が完了した図1Bの状態のときにフラグメンテーションが起こってしまう。
【0013】
つまり、この例では、バッファメモリにMedの画質の撮影画像データを格納するだけの十分な空き容量があるにもかかわらず、空き容量が連続していないため、次の撮影画像データの画質がMedであった場合に、突発的にバッファメモリに記憶することができなくなってしまう。
【0014】
上記のような撮像装置では、撮影画像データを分割して記憶することができず、必ず連続した記憶領域に記憶しなければならないからである。
【0015】
メモリのフラグメンテーションの問題を解決するため、例えば引用文献1に記載の発明のような従来例がある。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開平08−249225号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
引用文献1には、空きメモリブロックを管理し、隣接する空きメモリブロックが発生した場合には、これらのメモリブロックを結合して新たな空きメモリブロックを構成することでフラグメンテーションをできるだけ回避し、効率的に空きメモリブロックを確保するという技術が記載されている。
【0018】
しかしながら、引用文献1に記載された発明は、複数のアプリケーションに共有されるメモリ領域を有する装置向きの技術である。
【0019】
つまり、引用文献1に記載の発明では、複数のアプリケーションがバッファメモリの様々なところに様々なデータサイズのデータを書き込み、様々なところからデータの処理が終了し、空きメモリブロックが発生する構造を前提としている。
【0020】
対して、撮像装置においては、取得するデータサイズが定型で、記憶に使用されていたメモリブロックが撮影画像データを記憶した順に解放されていくため、予め、どこにどの大きさの空きメモリブロックが発生するか常に予定されている。
【0021】
すなわち、引用文献1に記載の発明を撮像装置に用いても、メモリブロックの結合により、期待するサイズの空きメモリブロックが構成できるかわからず、結果、効率的に空きメモリブロックを構成できないおそれがある。
【課題を解決するための手段】
【0022】
撮影画像データを一時的に記憶する記憶手段と、記憶手段を管理する記憶管理手段とを有する撮像装置において、前記記憶手段は、複数の画質で撮影画像データを記憶し、前記複数の画質は、それぞれ画質の高低に対応する、最も高い画質と、最も低い画質と、両者の中間にあたる1又は2種類以上の画質であり、前記記憶手段は、最も高い画質のデータが記憶できる大きさの大ブロックに分割され、前記大ブロックは最も低い画質の大きさの小ブロックに分割され、前記記憶手段の前記大ブロックの状態は、記憶できる撮影画像データの最高の画質が最も低い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質と最も低い画質の中間にあたる1又は2種類以上のいずれかの画質である状態、又は、記憶ができない状態のいずれかにあたり、前記記憶管理手段は、撮影画像データの画質が、記憶できる最高の画質より低い前記大ブロックは、一時的に記憶不可とするリザーブ状態にし、撮影画像データの画質と、記憶できる最高の画質が同じ大ブロックには、優先して撮影画像データを記憶し、撮影画像データの画質によって予め決められている、撮影画像データが記憶される小ブロックの優先順位にしたがって、撮影画像データを前記記憶手段に記憶することを特徴とする、撮像装置を提供する。
【発明の効果】
【0023】
本発明により、空き容量は十分有るにもかかわらず、連続した空き容量が確保できないことで発生するメモリのフラグメンテーションを回避し、連続撮影効率が向上した撮像装置を提供することができる。
【図面の簡単な説明】
【0024】
【図1】撮影画像をデジタル値の撮影画像データとして変換し、記憶媒体に記憶する撮像装置におけるバッファメモリの使用例
【図2】本発明の実施例における撮像装置のブロック図
【図3】本実施例のデジタルカメラにおける記憶手段の構成を示す概念図
【図4】大ブロックの記憶の状態Fullの一例を示す図
【図5】大ブロックの記憶の状態Sprawlの一例を示す図
【図6】大ブロックの記憶の状態Crowdedの一例を示す図
【図7】大ブロックの記憶の状態Vacantを示す図
【図8】フラグメンテーションが想定される事例を示す図
【図9】Hiの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャート
【図10】Medの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャート
【図11】Lowの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャート
【図12】図11のステップ#25のリザーブ状態の更新方法を示すフローチャート
【発明を実施するための形態】
【0025】
図2は本発明の実施例であるデジタルカメラシステムの概略構成を示すブロック図である。
【0026】
図2において、100は、本実施形態におけるデジタルカメラであり、被写体を撮影し、撮影した画像データを記憶する。200は、デジタルカメラ100に装着可能なレンズである。本実施例において、デジタルカメラ100は、レンズの交換が可能な構成としており、デジタルカメラ100とレンズ200とで全体としてレンズ交換式デジタルカメラシステムを構成している。
【0027】
デジタルカメラ100において、101はイメージャー、102は記憶手段、103は記憶管理手段、104は外部記憶手段、105は表示手段、106は制御手段である。
【0028】
レンズ200は、レンズ光学系201のほか、不図示のレンズCPU、絞りなどを有する。
【0029】
イメージャー101は、レンズ系200を通して入射した光を画像信号に変換する、CMOSやCCDである。
【0030】
記憶手段102は、記憶領域であり、本実施例においては画像処理を行う前の撮影画像データを、一時的に記憶するバッファメモリとしての役割を果たしている。
【0031】
図3は本実施例のデジタルカメラにおける記憶手段の構成を示す概念図である。
【0032】
本実施例のデジタルカメラ100では、最も画質が高いHiと、最も画質が低いLowと、HiとLowの中間の画質であるMedの3種類の画質のうち、いずれかの画質で撮影画像データを取得することとする。本実施例では3種類の画質のデータサイズの比率を、Hiが4、Medが2、Lowが1と定義して、以下に説明する。
【0033】
本実施例におけるHi、Med、Lowの各画質のデータサイズは、それぞれ、該当の画質で撮影画像データを取得した際に、最もデータサイズが大きい状態となるデータサイズを想定している。
【0034】
図3に示す通り、本実施例の記憶手段102は4つの大ブロックに分割され、大ブロックはさらに4つの小ブロックで分割されている。
【0035】
かかる大ブロックはHiの画質の撮影画像データが記憶できる大きさであり、小ブロックはLowの画質の撮影画像データが記憶できる大きさである。つまり、本実施例においては、4つの小ブロック全てが記憶に使用されていない状態の大ブロックは、前述のHiの画質の撮影画像データ1つ、Medの画質の撮影画像データ2つ、又はLowの画質の撮影画像データ4つが記憶できる。
【0036】
図4から図7は大ブロックの記憶の状態を示す図である。
【0037】
本実施例において、前記大ブロックは、画像データの記憶の状態によって、図4に示すようなLowの画質の撮影画像データサイズでさえも記憶できない状態をFull、図5に示すようなMedの画質の撮影画像データサイズは記憶できないが、Lowの画質の撮影画像データサイズは記憶できる状態をSprawl、図6に示すようなHiの画質の撮影画像データサイズは記憶できないが、Medの画質の撮影画像データは記憶できる状態をCrowded、又は、図7に示すようなHiの画質の撮影画像データが記憶できる状態をVacantとして、定義した。
【0038】
なお、図4から図7に示した図は、各状態の一例である。
【0039】
本実施例において、小ブロックは前述の通り、Lowの画質の撮影画像データのみを記憶できるデータサイズであり、大ブロックは小ブロック4つで構成されるように分割されている。大ブロック内では、撮影画像データの画質によって、どの位置の小ブロックに撮影画像データを優先的に記憶するかの優先順位が予め決められている。
【0040】
本実施例においてHiの画質の撮影画像データを記憶するには、大ブロックがVacantの状態でなくてはならない。そのため、Hiのデータサイズの撮影画像データを記憶する場合は、Vacantの状態の大ブロックの小ブロック4つ全てを使って記憶を行うほかない。つまり、大ブロック内において小ブロック単位の記憶先頭を左端と考えたとき、左端の小ブロックが優先順位第1となる。
【0041】
本実施例において、Medの画質の撮影画像データを記憶するには、大ブロックがVacantか、又はCrowdedの状態でなくてはならない。
【0042】
大ブロックがVacantか、またはCrowdedの状態の場合は、本実施例の小ブロックの撮影画像データが記憶される優先順位は次のようになる。
【0043】
大ブロック内において小ブロック単位の記憶先頭を左端と考えたとき、左端の小ブロックが優先順位第1となる。つまり、左端の小ブロックにMedの画質の撮影画像データを記憶した場合、左端の小ブロックと連結する左端から2番目の小ブロックに撮影画像データが記憶される。
【0044】
次に、優先順位第2となるのは、左端から3番目の小ブロックである。つまり、左端の小ブロックが使用されて埋まっており、左端から2番目、3番目、右端の3つの小ブロックが空いていた場合、左端から2番目の小ブロックを使用せず、左端から3番目の小ブロックにMedの画質の撮影画像データを記憶する。この場合、左から3番目の小ブロックと連結する右端の小ブロックに撮影画像データが記憶される。
【0045】
そして、優先順位第3となるのは、左端から2番目の小ブロックである。つまり、左から2番目の小ブロックにMedの画質の撮影画像データを記憶した場合、左端から2番目の小ブロックと連結する左端から3番目の小ブロックに撮影画像データが記憶される。
【0046】
なお、Medの画質は連続する2つの小ブロックに記憶できる画質のため、最後尾の小ブロックである右端の小ブロックは候補とされない。
【0047】
図8はフラグメンテーションが想定される事例を示す図である。
【0048】
前述の通り、Medの画質の撮影画像データを記憶する際、優先順位は先頭である左端から順にはなっていない。なぜなら、例えば、大ブロックがCrowdedの状態であり、且つ、左端の小ブロックがLowの画質の撮影画像データの記憶に使用されて、のこり3つの小ブロックが空いている場合、図8(A)に示すように、左端から2番目の小ブロックからMedの画質の撮影画像データを記憶してしまうと、左端の小ブロックに記憶されているLowの画質の撮影画像データの画像処理が終了し、左端の小ブロックが空いた場合、図8(A)に示すようなフラグメンテーションが発生してしまうからである。つまり、2つぶんの小ブロックが空いているにもかかわらず、かかる2つの小ブロックが連続していないため、Medの画質の撮影画像データが記憶できない状態となってしまう。
【0049】
このようなフラグメンテーションを避けるため、本実施例では、大ブロックがCrowdedの状態であり、且つ、左端の小ブロックがLowの画質の撮影画像データの記憶に使用されて、のこり3つの小ブロックが空いている場合、図8(B)に示すように、優先順位第2の左端から3番目の小ブロックからMedの画質の撮影画像データを記憶する。
【0050】
これにより、左端の小ブロックに記憶されているLowの画質の撮影画像データの画像処理が終了し、左端の小ブロックが空いた場合、図8(B)に示すように、2つの空いた小ブロックが連続し、フラグメンテーションが発生しない。
【0051】
Lowのデータサイズの撮影画像データを記憶するには、Full以外の状態であればよい。
【0052】
大ブロックがVacantか、Crowdedか、又はSprawlの状態の場合、小ブロックの撮影画像データが記憶される優先順位は以下のようになる。
大ブロック内において小ブロック単位の記憶先頭を左端と考えたとき、左端の小ブロックが優先順位第1となり、左端の小ブロック1つに撮影画像データが記憶される。
【0053】
次に、優先順位第2となるのは、左端から2番目の小ブロックである。つまり、左端の小ブロックが使用されて埋まっていて、左端から2番目の小ブロックが空いている場合には左端から2番目の小ブロック1つに撮影画像データが記憶される。
【0054】
次に優先順位3となるのは、左端から3番目の小ブロックである。つまり、左端の小ブロックと左端から2番目の小ブロックが使用されて埋まっていて、左端から3番目の小ブロックが空いている場合には左端から3番目の小ブロック1つに撮影画像データが記憶される。
【0055】
そして、優先順位第4となるのは、右端の小ブロックである。つまり、右端の小ブロックに撮影画像データを記憶するのは、右端以外の小ブロック3つが使用されて埋まっており、右端以外に使用できる小ブロックがない場合、右端の小ブロック1つに撮影画像データが記憶される。
【0056】
前述の通り、Lowの画質の撮影画像データを記憶する際、優先順位は大ブロック内において小ブロック単位の記憶先頭である左端から順になっている。なぜなら、Lowの画質の撮影画像データを記憶する際、間隔をあけて記憶すれば、かえってフラグメンテーションを発生させてしまうからである。
【0057】
例えば、左端の小ブロックがLowの画質の撮影画像データで使用されており、左端から2番目、3番目、右端の3つの連続した空き小ブロックがあるCrowdedの状態の大ブロックにおいて、左端から2番目の小ブロックにLowの画質の撮影画像データを記憶すれば、左端から3番目と右端の小ブロックという連続した2つの小ブロックには、Medの画質の撮影画像データを記憶することができる。一方、左端から3番目の小ブロックにLowの画質の撮影画像データを記憶した場合、連続した空き小ブロックがなくなり、この場合にはMedの画質の撮影画像データが記憶できなくなる。
【0058】
したがって、Lowの画質の撮影画像データを記憶する際、優先順位は大ブロック内において小ブロック単位の記憶先頭である左端から順であることが望ましいことが分かる。
【0059】
記憶管理手段103は、撮影画像データを記憶する際、大ブロックの画像データの記憶の状態が、前記Full、Sprawl、Crowded、Vacantのいずれにあたるかを判断する。そして、記憶をする場合には、記憶手段102の大ブロック内のどの位置の小ブロックを撮影画像データの記憶の先頭に使用するか、前述の優先順位をもとに判断し、撮影画像データを記憶手段102に記憶する。
【0060】
外部記憶手段104は撮影画像を記憶するためのメディアである。外部記憶手段104としては例えば、デジタルカメラ100に着脱自在な記録媒体を用いることができる。
【0061】
表示手段105は、プレビュー画像やカメラに着脱可能な外部記憶手段104から読み出した撮影画像データやメニュー画像等を表示することができる。手外部表示手段105としては例えば、液晶や有機ELなどを用いることができる。
【0062】
制御手段106はCPUであり、撮影した画像データに対して、例えばガンマ補正、YCbCr変換、ノイズ除去等の各種画像処理を行う。また、不図示のAE機構やAF機構等の各種デバイスの制御を行う。
【0063】
次に、本実施例における、撮影画像データの記憶管理方法について説明する。
【0064】
前述の通り、本実施例のデジタルカメラ100は、最も画質が高いHiと、最も画質が低いLowと、HiとLowの中間の画質であるMedの3種類の画質のうち、いずれかの画質で撮影画像データを記録する。
【0065】
したがって、以下では、取得する撮影画像データの画質毎に、撮影画像データの記憶管理方法について説明する。
【0066】
第1に、Hiの画質の撮影画像データを取得した場合の記憶管理方法について説明する。
【0067】
図9はHiの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャートである。
【0068】
まずステップ#1では、記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。未探索の大ブロックとは、まだ、取得した撮影画像データが記憶可能な大ブロックか否かを判断されていない大ブロックである。つまり、ステップ#1では、記憶管理手段103が、記憶手段102中の大ブロック全てにおいて、取得したHiの画質の撮影画像データが記憶可能か否かの検討を行ったかどうかを判断する。
【0069】
すでに、記憶手段102中の全ての大ブロックにおいて、Hiの画質の撮影画像データが記憶可能か否かの検討を完了した場合には、ステップ#4に進む。まだ、全ての大ブロックでHiの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了していない場合にはステップ#2に進む。
【0070】
ステップ#2では、まだ検討されていない大ブロックにおいて、かかる大ブロックがVacantであるか否かを判断する。
【0071】
かかる大ブロックがVacantの状態の大ブロックであった場合には、ステップ#3に進み、記憶管理手段103は取得したHiの画質の撮影画像データをかかる大ブロックに優先順に記憶する。
【0072】
一方、かかる大ブロックがVacant以外の状態であった場合には、ステップ#1に戻り、他に未探索の大ブロックがあるか否かを検討する。
【0073】
ステップ#4は、記憶手段102中の全ての大ブロックにおいて、Hiの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了したが、取得したHiの画質の撮影画像データを記憶できないと判断された場合である。この場合、記憶管理手段103は、記憶手段102中にHiの画質の撮影画像データを記憶可能なVacantの状態の大ブロックがないとして、撮影画像データを記憶手段102に記憶せず終了する。
【0074】
第2に、Medの画質の撮影画像データを取得した場合の記憶管理方法について説明する。
【0075】
図10はMedの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャートである。
【0076】
ステップ#11では、まず記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。
【0077】
すでに、記憶手段102中の全ての大ブロックにおいて、取得したMedの画質の撮影画像データが記憶可能か否か検討を完了した場合には、ステップ#17に進み、まだ全ての大ブロックでMedの画質の撮影画像データが記憶可能な大ブロックがあるか否か検討を行っていない場合にはステップ#12に進む。
【0078】
ステップ#12では、まだ検討されていない大ブロックにおいて、まずは、かかる大ブロックがCrowdedの状態であるか否かを判断する。
【0079】
かかる大ブロックがCrowdedの状態の大ブロックであった場合には、ステップ#13に進み、記憶管理手段103はMedの画質の撮影画像データをかかる大ブロックの小ブロックに、前述の優先順に従って記憶し、終了とする。このとき、リザーブ状態の大ブロックがあればリザーブ状態を解除する。
【0080】
一方、かかる大ブロックがCrowded以外の状態であった場合には、ステップ#14に進み、かかる大ブロックがVacantであるか否かを判断する。
【0081】
かかる大ブロックがVacantの状態の大ブロックであった場合には、ステップ#15に進み、Vacantの状態の大ブロックでもなかった場合には、ステップ#1に戻る。
【0082】
ステップ#15では、記憶手段102中にリザーブ状態の大ブロックがあるか否かを検討する。
【0083】
ここで、リザーブ状態について説明する。
【0084】
リザーブ状態とは、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックについて、記憶管理手段103が撮影画像データをかかる大ブロックに記憶せず、かかる大ブロックが一時的に記憶不可の状態とされた状態をいう。
【0085】
ステップ#15において、記憶手段102中にかかるリザーブ状態の大ブロックがある場合には、ステップ#11に戻る。リザーブ状態の大ブロックがない場合には、ステップ#16に進む。そして、検討中であったVacant状態の大ブロックをリザーブ状態にし、ステップ#11に戻る。
【0086】
ステップ#11では、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。すでに、記憶手段102中の全ての大ブロックにおいて、取得したMedの画質の撮影画像データが記憶可能か否か検討を完了した場合には、ステップ#17に進む。
【0087】
ステップ#17では、記憶手段102にリザーブ状態の大ブロックがあるか否かについて検討する。
【0088】
ステップ#17において、記憶手段102にリザーブ状態の大ブロックがある場合にはステップ#13に進み、記憶管理手段103は、Medの撮影画像データをかかるリザーブ状態の大ブロックの小ブロックに、前述の優先順に従って記憶し、終了となる。このとき、かかるリザーブ状態の大ブロックのリザーブ状態は解除される。
【0089】
なお、かかるリザーブ状態の大ブロックは必ずVacantの状態である。前述の通り、リザーブ状態とは、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックであるためである。
【0090】
ステップ#17において記憶手段102にリザーブ状態の大ブロックがない場合にはステップ#18に進む。
【0091】
ステップ#18は、記憶手段102中の全ての大ブロックでMedの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了したが、Medの画質の撮影画像データを記憶できていないと判断された場合である。この場合、記憶管理手段103は、記憶手段102中にMedの画質の撮影画像データを記憶可能なCrowdedか、Vacantの状態の大ブロックがないとして、取得したMedの画質の撮影画像データを記憶手段102に記憶せず終了する。
【0092】
以上のように、本実施例では、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックがあった場合に、記憶管理手段103は撮影画像データをかかる大ブロックに記憶せず、かかる大ブロックを一時的に記憶不可のリザーブ状態にして大ブロックの空き容量を効率的に使う。
【0093】
ここで、本実施例において、記憶できる最高の画質が、取得した撮影画像データの画質より高い大ブロックをリザーブ状態とする理由について述べる。
【0094】
記憶管理手段103は、例えば、Medの画質の撮影画像データをVacantの状態の大ブロックにすぐに記憶せず、リザーブ状態として、記憶手段102中の他の大ブロックの中に、Crowdedの状態の大ブロックがないか、探索を行う。かかる探索を行い、すぐにVacantの状態の大ブロックに記憶しないのは、Hiの画質の撮影画像データサイズは記憶できないが、Medの画質の撮影画像データは記憶できるCrowdedの状態の大ブロックを優先して使用し、Hiの画質の撮影画像データを記憶できる可能性のあるVacantの状態の大ブロックをむやみに消費しないためである。
【0095】
つまり、記憶手段102中に撮影画像データを記憶可能なブロックとして、Vacantの状態の大ブロックとCrowdedの状態の大ブロックの2つがある場合、記憶管理手段103が、Medの画質の撮影画像データをVacantの状態の大ブロックに記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、かかる撮影画像データは記憶できなくなってしまう。
【0096】
一方、記憶管理手段103が、Medの画質の撮影画像データをVacantの状態の大ブロックに記憶させずに、一時的にVacantの状態の大ブロックをリザーブ状態として、記憶手段102中にCrowdedの状態の大ブロックがないか探索を行い、Crowdedの状態の大ブロックにMedの画質の撮影画像データを記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、先ほどリザーブ状態として、Medの画質の撮影画像データの記憶に使用しなかったVacantの状態の大ブロックにかかる撮影画像データを記憶することができる。
【0097】
以上のように、本実施例では、上述のように撮影画像データの画質が、記憶できる最大の画質より小さい大ブロックをリザーブ状態とすることで、大ブロック内に十分な空き小ブロックはあっても、かかる小ブロックが連続していないために、画像データを記憶できないという事例の発生を防いでいる。
【0098】
第3に、Lowの画質の撮影画像データを取得した場合の記憶管理方法について説明する。
【0099】
図11はLowの画質の撮影画像データを取得した場合の撮影画像データの記憶管理方法を示すフローチャートである。
【0100】
ステップ#21では、まず、記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。
【0101】
すでに、記憶手段102中の全ての大ブロックについて、取得したLowの画質の撮影画像データが記憶可能か否かの検討を完了した場合には、ステップ#26に進む。まだ、全ての大ブロックでLowの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を行っていない場合には、ステップ#22に進む。
【0102】
ステップ#22では、まだ検討されていない大ブロックにおいて、まずは、かかる大ブロックがSprawlの状態であるか否かを判断する。
【0103】
かかる大ブロックがSprawlの状態の大ブロックであった場合には、ステップ#23に進み、記憶管理手段103はLowの画質の撮影画像データをかかる大ブロックの小ブロックに、前述の優先順に従って記憶し、終了とする。このとき、リザーブ状態の大ブロックがあればリザーブ状態を解除する。
【0104】
一方、かかる大ブロックがSprawl以外の状態であった場合には、ステップ#24に進み、かかる大ブロックがFullであるか否かを判断する。
【0105】
かかる大ブロックがFullの状態の大ブロックでもなかった場合には、ステップ#25に進む。
【0106】
図12は図11のステップ#25のリザーブ状態の更新方法を示すフローチャートである。
【0107】
ステップ#25では、リザーブ状態の更新を開始する。リザーブ状態の更新では記憶手段102中にリザーブ状態の大ブロックがない場合に、検討中の大ブロックをリザーブ状態としたり、また、リザーブ状態の大ブロックがあっても、よりリザーブ状態とするのに効率的な大ブロックがあれば、かかるブロックを新たなリザーブ状態の大ブロックとしたりするものである。
【0108】
リザーブ状態とするのに効率的な大ブロックは、記憶しようとする撮影画像データの画質と、記憶できる最大の撮影画像データの画質がより近い大ブロックのことである。
【0109】
例えば、記憶しようとする撮影画像データがLowの画質の撮影画像データであった場合には、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブ状態とするのにより効率的な大ブロックである。
【0110】
記憶手段102中の空きブロックに、Vacantの状態の大ブロックとCrowdedの状態の大ブロックがあった場合、記憶管理手段103が、Lowの画質の撮影画像データをVacantの状態の大ブロックに記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、かかる撮影画像データは記憶できなくなってしまう。
【0111】
一方、記憶管理手段103が、Lowの画質の撮影画像データをCrowdedの状態の大ブロックにLowの画質の撮影画像データを記憶させたとする。この場合、次の撮影画像データの画質がHiであったとき、Vacantの状態の大ブロックにかかる撮影画像データを記憶することができる。
【0112】
以上から、Lowの画質の撮影画像データを記憶するときは、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブするのに効率的な大ブロックであると言える。
【0113】
ステップ#25のリザーブの更新では、かかる大ブロックがVacantの状態の場合と、Crowdedの状態の場合の二通りがある。
【0114】
ステップ#31で、まず、かかる大ブロックがVacantの状態の場合について説明する。
【0115】
かかる大ブロックがVacantの状態であった場合、ステップ#31からステップ#35へと進む。
【0116】
ステップ#35では記憶手段102中にリザーブ状態の大ブロックがあるか否かを判断する。
【0117】
記憶手段102中にリザーブ状態の大ブロックがない場合は、ステップ#33に進み、かかるVacantの状態の大ブロックをリザーブ状態として、ステップ#25からステップ#21へと戻る。
【0118】
記憶手段102中にリザーブ状態の大ブロックがある場合は、かかるVacantの状態の大ブロックをリザーブ状態にせず、そのままステップ#25からステップ#21へと戻る。
【0119】
ステップ#35で、リザーブ状態の大ブロックがある場合に、かかるVacantの状態の大ブロックをリザーブ状態にしないのは、すでにリザーブ状態の大ブロックがあり、現在検討中の大ブロックがVacantの状態のためである。
【0120】
つまり、現在検討中のブロックがVacantの状態のため、現在リザーブ状態の大ブロックがVacantの状態であれば、条件は同じであるため、現在検討中のVacant状態の大ブロックをあえてリザーブ状態に更新する意味はない。
【0121】
また、現在リザーブ状態の大ブロックがCrowdedの状態であれば、前述の通り、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブするのに効率的な大ブロックであるため、現在検討中のVacant状態の大ブロックはリザーブ状態にせず、そのままステップ#25からステップ#21へと戻る。
【0122】
ステップ#31で、次に、かかる大ブロックがCrowdedの状態の場合について説明する。
【0123】
かかる大ブロックがCrowdedの状態であった場合、ステップ#31からステップ#32へと進む。
【0124】
ステップ#32では記憶手段102中にすでにリザーブ状態の大ブロックがあるか否かを判断する。
【0125】
記憶手段102中にリザーブ状態の大ブロックがない場合は、ステップ#33に進み、かかる大ブロックをリザーブ状態として、ステップ#25からステップ#21へと戻る。
【0126】
記憶手段102中にすでにリザーブ状態の大ブロックがある場合は、ステップ#34に進み、リザーブ状態の大ブロックがVacantの状態か否かを判断する。
【0127】
リザーブ状態の大ブロックがVacantの状態であった場合、ステップ#33へ進み、リザーブ状態のVacantの大ブロックのリザーブ状態を解除し、現在検討中のCrowdedの大ブロックをリザーブ状態として、ステップ#25からステップ#21へと戻る。
【0128】
これは、前述の通り、Vacantの状態の大ブロックより、Crowdedの状態の大ブロックの方がリザーブするのに効率的な大ブロックであるためである。
【0129】
一方、リザーブ状態の大ブロックがCrowdedの状態であった場合、現在検討中のCrowded状態の大ブロックはリザーブ状態にせず、そのままステップ#25からステップ#21へと戻る。
【0130】
これは、現在検討中のブロックがCrowdedの状態のため、現在リザーブ状態の大ブロックがCrowdedの状態であれば、条件は同じであるため、現在検討中のCrowded状態の大ブロックをあえてリザーブ状態に更新する意味はないからである。
【0131】
ステップ#21において、記憶管理手段103は、記憶手段102の中に未探索の大ブロックがあるか否かを判断する。
【0132】
すでに、記憶手段102中の全ての大ブロックについて、取得したLowの画質の撮影画像データが記憶可能か否かの検討を完了した場合には、ステップ#26に進む。
【0133】
ステップ#26において記憶手段102にリザーブ状態の大ブロックがない場合にはステップ#27に進む。
【0134】
ステップ#27は、記憶手段102中の全ての大ブロックでLowの画質の撮影画像データが記憶可能な大ブロックがあるか否かの検討を完了したが、Lowの画質の撮影画像データを記憶できていないと判断された場合である。この場合、記憶管理手段103は、記憶手段102中にLowの画質の撮影画像データを記憶可能なSprawlか、Crowdedか、Vacantの状態の大ブロックがない、つまり全ての大ブロックがFullであるとして、取得したLowの画質の撮影画像データを記憶手段102に記憶せず、終了する。
【0135】
以上に説明した通り、本発明により、記憶手段102中に空き容量は十分有るにもかかわらず、連続した空き容量が確保できないことで発生するフラグメンテーションを解消し、連続撮影効率が向上したデジタルカメラシステムを提供することができる。
【符号の説明】
【0136】
100 デジタルカメラ
101 イメージャー
102 記憶手段
103 記憶管理手段
104 外部記憶装置
105 外部表示装置
106 制御手段
【特許請求の範囲】
【請求項1】
撮影画像データを一時的に記憶する記憶手段と、
記憶手段を管理する記憶管理手段と
を有する撮像装置において、
前記記憶手段は、複数の画質で撮影画像データを記憶し、
前記複数の画質は、それぞれ画質の高低に対応する、最も高い画質と、最も低い画質と、両者の中間にあたる1又は2種類以上の画質であり、
前記記憶手段は、最も高い画質のデータが記憶できる大きさの大ブロックに分割され、
前記大ブロックは最も低い画質の大きさの小ブロックに分割され、
前記記憶手段の前記大ブロックの状態は、記憶できる撮影画像データの最高の画質が最も低い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質と最も低い画質の中間にあたる1又は2種類以上のいずれかの画質である状態、又は、記憶ができない状態のいずれかにあたり、
前記記憶管理手段は、撮影画像データの画質が、記憶できる最高の画質より低い前記大ブロックは、一時的に記憶不可とするリザーブ状態にし、
撮影画像データの画質と、記憶できる最高の画質が同じ大ブロックには、優先して撮影画像データを記憶し、
撮影画像データの画質によって予め決められている、撮影画像データが記憶される小ブロックの優先順位にしたがって、撮影画像データを前記記憶手段に記憶する
ことを特徴とする、撮像装置。
【請求項1】
撮影画像データを一時的に記憶する記憶手段と、
記憶手段を管理する記憶管理手段と
を有する撮像装置において、
前記記憶手段は、複数の画質で撮影画像データを記憶し、
前記複数の画質は、それぞれ画質の高低に対応する、最も高い画質と、最も低い画質と、両者の中間にあたる1又は2種類以上の画質であり、
前記記憶手段は、最も高い画質のデータが記憶できる大きさの大ブロックに分割され、
前記大ブロックは最も低い画質の大きさの小ブロックに分割され、
前記記憶手段の前記大ブロックの状態は、記憶できる撮影画像データの最高の画質が最も低い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質である状態、記憶できる撮影画像データの最高の画質が最も高い画質と最も低い画質の中間にあたる1又は2種類以上のいずれかの画質である状態、又は、記憶ができない状態のいずれかにあたり、
前記記憶管理手段は、撮影画像データの画質が、記憶できる最高の画質より低い前記大ブロックは、一時的に記憶不可とするリザーブ状態にし、
撮影画像データの画質と、記憶できる最高の画質が同じ大ブロックには、優先して撮影画像データを記憶し、
撮影画像データの画質によって予め決められている、撮影画像データが記憶される小ブロックの優先順位にしたがって、撮影画像データを前記記憶手段に記憶する
ことを特徴とする、撮像装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−235247(P2012−235247A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−101460(P2011−101460)
【出願日】平成23年4月28日(2011.4.28)
【出願人】(000131326)株式会社シグマ (167)
【Fターム(参考)】
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願日】平成23年4月28日(2011.4.28)
【出願人】(000131326)株式会社シグマ (167)
【Fターム(参考)】
[ Back to top ]