(57)【要約】【課題】外部メモリへ直接データを出力する制御により高速転送を実現するとともに、内部メモリを使用した外部メモリへのデータ転送によりデータを保証すること。【解決手段】データ処理装置は、処理されたデータを一時的に記憶する内部メモリであるＤＲＡＭ１１０と、外部メモリである外付けカード１１１に対してデータ転送を制御する。ＤＭＡコントローラ１０５は外付けカード１１１へのデータ転送状態を監視し、ＤＲＡＭ１１０経由で外付けカード１１１にデータを転送する第１のモードでの制御と、ＤＲＡＭ１１０を経由せずに外付けカード１１１にデータを転送する第２のモードでの制御を切り替える。第２のモードではデータを直接外部メモリへ転送することによって高スループットでの転送処理が可能となり、第１のモードではデータ転送速度の低下に応じて内部メモリから読み出したデータが外部メモリに転送される。【選択図】  図１
2014170476.tif 000002
【特許請求の範囲】
【請求項１】
データを入力する入力手段と、
前記入力手段により入力されたデータを、第１の記憶媒体および第２の記憶媒体に転送して記憶すると共に、前記第１の記憶媒体に記憶されたデータを前記第２の記憶媒体に転送して記憶する手段であって、前記第１の記憶媒体から前記第２の記憶媒体にデータを転送して記憶する第１のモードと、前記入力手段からのデータを前記第２の記憶媒体に転送して記憶する第２のモードとを切り替える制御手段とを備え、
前記制御手段は、前記入力手段から前記第２の記憶媒体にデータを転送して記憶することが可能であるか否かに応じて前記第１のモードと前記第２のモードを切り替えることを特徴とするデータ処理装置。
【請求項２】
前記制御手段は、前記第２の記憶媒体へのデータ転送速度が閾値未満である場合、前記第１のモードを設定することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記制御手段は、前記入力手段から前記第２の記憶媒体に書き込まれるデータ量が閾値以上である場合、前記第２のモードに設定することを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記制御手段は、前記第２のモードにおいて、前記入力手段から前記第２の記憶媒体へのデータの転送と並列に、前記入力手段から前記第１の記憶媒体へのデータの転送を行うことを特徴とする請求項１から３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記制御手段は、前記入力手段により入力されたデータを蓄積する蓄積手段を有し、前記第２のモードにおいて、前記蓄積手段に蓄積されたデータのうち前記第２の記憶媒体に記憶されていないデータの量が閾値を超えた場合、前記第２のモードから前記第１のモードに変更することを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記制御手段は、前記第２のモードから前記第１のモードに変更した後、前記第１の記憶媒体に記憶されたデータのうち、前記第２の記憶媒体に記憶されていないデータから前記第２の記憶媒体への転送を開始することを特徴とする請求項５に記載のデータ処理装置。
【請求項７】
前記制御手段は、前記第２のモードにおいて、前記第１の記憶媒体に記憶されたデータと同じデータが前記第２の記憶媒体に記憶されたことに応じて、前記第１の記憶媒体のうち前記同じデータが記憶されていた領域にデータを書き込むことを特徴とする請求項４に記載のデータ処理装置。
【請求項８】
前記入力手段は、複数のデータから１つのデータを選択して入力することを特徴とする請求項１に記載のデータ処理装置。
【請求項９】
前記入力手段は撮像手段を含むことを特徴とする請求項１に記載のデータ処理装置。
【請求項１０】
処理されたデータを一時的に記憶する第１の記憶媒体と、前記データおよび前記第１の記憶媒体から転送されるデータを記憶する第２の記憶媒体に対してデータ転送を制御するデータ処理装置にて実行される制御方法であって、
前記データを前記第１の記憶媒体および第２の記憶媒体に転送して記憶させる場合、前記第２の記憶媒体へのデータの転送状態を監視するステップと、
前記ステップでの監視結果により、前記第１の記憶媒体を経由して前記第２の記憶媒体に前記データを転送する第１のモードでの制御と、前記第１の記憶媒体を経由せずに前記第２の記憶媒体にデータを転送する第２のモードでの制御を切り替えるステップを有することを特徴とするデータ処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびその制御方法に関し、特に、複数の記憶媒体を用いる処理に関するものである。
【背景技術】
【０００２】
従来のデジタルカメラやビデオカメラ等の撮像装置において、例えば撮像データはカメラ内部のメモリ（以下、内部メモリという）に一旦蓄積されてから、着脱可能な記録媒体（以下、外部メモリという）へ出力される。特許文献１では外部メモリの挿入を検知すると、それが使用可能であるか否かを判定し、その後の撮影動作に反映させる処理が開示されている。外部メモリの使用可否判定によって書き込み不可と判断された場合、撮像動作が禁止される。
【０００３】
カメラの動作開始時において、挿入された記録媒体の状態のチェックは行われるが、記録媒体のデータ転送速度を厳密に定義することは困難である。このため、内部メモリにデータを蓄積してから外部メモリへ転送される。一般的に、外部メモリは内部メモリに比べて低速な場合が多く、両者の速度差を吸収するために、内部メモリを介して外部メモリへのデータ転送が行われる。仮に、外部メモリが十分なデータ転送速度を有する場合でも、エラー発生時にはデータの再送が必要となる。例えば、ＳＤカード（商標）では最低保証速度に関してＣｌａｓｓ１０にて１０メガバイト／秒とされるが、カメラ本体と外部メモリとの間の伝送路に起因するＣＲＣ（転送時の誤り検出方式）のエラーが発生し得る。このような場合にはデータ転送速度を保証することが難しいため、外部メモリへ出力するデータは内部メモリに一旦蓄積する必要がある。
【０００４】
画像データを内部メモリへ一旦蓄積するシステムの場合、カメラの連続撮影枚数は、蓄積可能な内部メモリのサイズに依存する。例えば、画像１枚当りの平均データサイズを５メガバイトとし、内部メモリの容量を５０メガバイトとすると、連続撮影可能な枚数は１０枚となる。内部メモリへのデータ転送と、外部メモリへのデータ出力を同時に実行できないシステムでは、内部メモリへのデータ転送が完了してから、外部メモリへデータを出力する必要がある。よって、最大連続撮影枚数、つまり、カメラが連続して撮影できる最大枚数（１０枚）を超えたときに、ユーザは次の撮影まで待たされることになる。
【０００５】
一方、内部メモリへのデータ転送と同時に、既に内部メモリに蓄積された画像データを外部メモリへ出力できるシステムの場合、最大連続撮影枚数を増やすことができる。例えば、内部メモリへのデータ転送を１０枚分行っている期間中に、そのうちの５枚分のデータを外部メモリへ出力できるとすると、最大連続撮影枚数は１５枚程度となる。どちらのシステムでも、連続撮影が可能な枚数には制限がある。内部メモリへのデータ転送速度に比較して、一般的に外部メモリの方が遅い場合が多いので、最大連続撮影枚数は、内部メモリへの蓄積量（バッファ量）に依存することになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０６−００６６６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、外部メモリに使用するカード型記憶デバイスは、データ転送速度の高速化が進んでおり、カメラで撮像した画像データを直接書き込むことが可能になりつつある。この場合、内部メモリのデータ蓄積容量によらずに、最大連続撮影枚数を外部メモリに出力可能な最大サイズまで増やすことができる。しかし、データ転送速度が十分に高速な外部メモリであったとしても、ＣＲＣエラー等が発生して、データの書き込みに失敗した場合のデータ保証が必要となる。
本発明は、外部メモリへ直接データを出力する制御により高速転送を実現するとともに、内部メモリを使用した外部メモリへのデータ転送によりデータを保証することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明に係る装置は、データを入力する入力手段と、前記入力手段により入力されたデータを、第１の記憶媒体および第２の記憶媒体に転送して記憶すると共に、前記第１の記憶媒体に記憶されたデータを前記第２の記憶媒体に転送して記憶する手段であって、前記第１の記憶媒体から前記第２の記憶媒体にデータを転送して記憶する第１のモードと、前記入力手段からのデータを前記第２の記憶媒体に転送して記憶する第２のモードとを切り替える制御手段とを備える。前記制御手段は、前記入力手段から前記第２の記憶媒体にデータを転送して記憶することが可能であるか否かに応じて前記第１のモードと前記第２のモードを切り替える。
【発明の効果】
【０００９】
本発明によれば、第２の記憶媒体へ直接データを出力する制御により高速転送を実現するとともに、第１の記憶媒体を経由して第２の記憶媒体に転送する制御によりデータを保証することができる。
【図面の簡単な説明】
【００１０】
【図１】図２ないし図５と併せて本発明の第１実施形態を説明するために、装置の構成例を示す図である。
【図２】ＤＭＡコントローラとカードコントローラのデータパスの切り替え制御を詳細に説明するための図である。
【図３】データ転送処理例を説明するフローチャートである。
【図４】図５とともにデータ転送の流れを例示する概念図であり、（Ａ）ないし（Ｄ）の転送状態を示す。
【図５】図４に続く（Ｅ）ないし（Ｇ）の転送状態を示す図である。
【図６】図７および図８とともに本発明の第２実施形態を説明するために、装置の構成例を示す図である。
【図７】処理例を説明するためのタイムチャート（Ａ）、およびＤＲＡＭのデータ配置例（Ｂ）を示す図である。
【図８】データ転送処理例を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明の各実施形態について説明する。各実施形態では、電子機器としてデジタルカメラを例示するが、デジタルビデオカメラやカメラ付携帯電話等の撮像装置に幅広く適用可能である。
【００１２】
［第１実施形態］
図１は、本発明の第１実施形態に係るデジタルカメラにおけるシステム構成例を説明するブロック図である。
【００１３】
撮像光学系１００は撮像レンズ、シャッタ、絞り等を備える。撮像部１０１は、撮像光学系１００を介した被写体からの光を光電変換して撮像信号を生成する撮像素子と、撮像信号に含まれるリセットノイズを除去する不図示の相関二重サンプリング部を備える。この他、撮像部１０１は、撮像信号のレベルを利得可変に増幅する利得可変増幅部と、アナログデータをデジタルデータに量子化するＡ／Ｄ変換部を備える。撮像部１０１は後述のＤＭＡ（Direct Memory Access）コントローラ１０５に撮像データを出力する。図１では、撮像部１０１の出力する撮像データを処理するデータ処理手段として、撮像データの現像処理等を行う信号処理部１０２と、画像データの圧縮処理および伸長処理を行う画像圧縮伸長部１０３を例示する。
信号処理部１０２は、撮像部１０１によって得られたデジタル画像データに対し、不図示の画像評価処理部による評価値に基づいて適切なデジタル信号処理を行う。画像圧縮伸長部１０３は、信号処理部１０２で処理された画像データに圧縮処理を施し、例えば、ＪＰＥＧ（Joint Photographic Experts Group）データを生成する。また、画像圧縮伸長部１０３は、圧縮されたＪＰＥＧ画像データの伸長処理を行い、表示デバイス等に表示する画像データを生成する。
【００１４】
ＣＰＵ（中央演算処理装置）１０４は、制御プログラムを実行して各部を制御する。ＤＭＡコントローラ１０５は、撮像部１０１、信号処理部１０２、画像圧縮伸長部１０３との間で送受されるデータを制御する第１制御手段である。表示コントローラ１０６は、システムバス１１２を介して取得した表示画像データを、表示デバイス１０９へ送信する。表示デバイス１０９は、表示画像データに従って画面に画像を表示する。
ＤＲＡＭ（Dynamic Random Access Memory）コントローラ１０７は、ＤＲＡＭ１１０へのデータアクセスを制御する。ＤＲＡＭ１１０は、処理されたデータを一時的に退避するための内部メモリ（第１の記憶媒体）である。また、カードコントローラ１０８は、外付けカード（主にフラッシュメモリ）１１１へのデータアクセスを制御する第２制御手段である。外付けカード１１１は撮像装置に着脱可能な外部メモリ（第２の記憶媒体）であり、各種カード型記憶デバイスや磁気記録媒体を用いた記録デバイス等を使用できる。
【００１５】
ＣＰＵ１０４や各コントローラはシステムバス１１２に接続されている。ＣＰＵ１０４、ＤＭＡコントローラ１０５をバス・マスタとし、表示コントローラ１０６、ＤＲＡＭコントローラ１０７、カードコントローラ１０８をバス・スレーブとしてシステムバス１１２に各部が接続されている。カードダイレクトパス１１３は、システムバス１１２とは独立したデータパスとして、ＤＭＡコントローラ１０５からカードコントローラ１０８にデータを直接転送する。フロー制御信号線１１４は、外付けカード１１１への書き込みのデータフロー制御を行うための信号線である。
【００１６】
次に、図２を参照して、ＤＭＡコントローラ１０５およびカードコントローラ１０８を中心とする構成例について説明する。ＤＭＡコントローラ１０５内の第１セレクタ１０５−１は、複数の入力データである撮像部１０１、信号処理部１０２、画像圧縮伸長部１０３の各データから１つを選択する第１データ選択手段である。第１セレクタ１０５−１における信号選択はＣＰＵ１０４により制御される。
【００１７】
データＦＩＦＯメモリ（以下、単にＦＩＦＯという）１０５−２は、データを一時的に保持して出力するデータバッファであり、第１セレクタ１０５−１により選択されたデータを蓄積して順次出力する。ＦＩＦＯは”First-In First-Out”の略号である。データパス１１２−３は、システムバス１１２へのライトアクセス時におけるＤＭＡコントローラ１０５の接続線である。また、カードダイレクトパス１１３は、ＦＩＦＯ１０５−２からカードコントローラ１０８へデータを転送する経路を示す。
【００１８】
カードコントローラ１０８内の第２セレクタ１０８−１は、システムバス１１２からの入力データと、ＤＭＡコントローラ１０５からの入力データのいずれかを選択する第２データ選択手段である。第２セレクタ１０８−１は、ＦＩＦＯ１０５−２の出力データと、内部メモリであるＤＲＡＭ１１０から読み出したデータを、外付けカード１１１に書き込むデータとして選択する役目をもつ。第２セレクタ１０８−１における信号選択はＣＰＵ１０４により制御される。システムバス１１２とカードコントローラ１０８とを接続するデータパス１１２−４は、外付けカード１１１に書き込みを行う際のデータ転送に使用される。
データパス１１２−１は、システムバス１１２とＣＰＵ１０４を接続し、またデータパス１１２−２は、システムバス１１２とＤＲＡＭコントローラ１０７とを接続する。
【００１９】
次に、図３、図４、図５を参照して、撮像部１０１から入力される画像データを、外付けカード１１１に対して直接書き込む場合の処理例について説明する。図３は処理の流れを説明するフローチャートであり、図４、図５はデータ転送例を説明する概念図である。
【００２０】
外付けカード１１１がカメラのカードスロットに挿入されると、ＣＰＵ１０４は外付けカード１１１の属性をチェックする。このとき、データの読み出し速度および書き込み速度を判別可能である。図３の処理が開始し、Ｓ３０１でＣＰＵ１０４は、カード挿入時にチェックしたデータ転送速度に基づき、撮像部１０１が出力するデータをＤＭＡコントローラ１０５経由で外付けカード１１１に直接書き込む処理（カードダイレクト処理）が可能か否かを判定する。カードダイレクト処理が不可能なカードの場合、例えば、外付けカード１１１のデータ転送速度が撮像部１０１のデータ転送速度より遅い場合、Ｓ３０９に処理を進め、第１のモードが設定される。以下、内部メモリ（ＤＲＡＭ１１０）から読み出した画像データを外部メモリ（カード１１１）に転送して記録する第１のモードを「内部バッファモード」という。内部バッファモードでは、撮像部１０１の出力データが、ＤＲＡＭ１１０へ一時的に記憶された後、ＤＲＡＭ１１０から外付けカード１１１に転送されて書き込み処理が実行される。つまり、外部メモリが低速な記録メディアである場合には、処理後のデータは、ＦＩＦＯ１０５−２からＤＲＡＭ１１０へ転送して一時的に記憶した上で、カード１１１へ転送される。
【００２１】
一方、カードダイレクト処理が可能な場合、例えば、カードスロットに挿入されたカード１１１のデータ転送速度が、撮像部１０１の出力データを直接書き込むのに十分な速度であると判断された場合には、Ｓ３０２に処理を進める。Ｓ３０２で第２のモードが設定される。以下、ＤＲＡＭ１１０を経由せずにカード１１１に画像データを転送して記録する第２のモードを「カードダイレクトモード」という。この場合、ＣＰＵ１０４は、第１セレクタ１０５−１が撮像部１０１からの入力を選択し、第２セレクタ１０８−１がカードダイレクトパス１１３からの入力を選択するように設定処理を行う。ＣＰＵ１０４は、ＤＭＡコントローラ１０５による画像データの転送を開始させる。また、カードダイレクトモードにおいても、カードコントローラ１０８への画像データの転送と並列に、ＤＲＡＭコントローラ１０７への画像データの転送が行われる。次のＳ３０３では撮像動作が開始し、撮像光学系１００、撮像部１０１による画像データの取り込みが開始し、ＤＭＡコントローラ１０５内のＦＩＦＯ１０５−２に画像データが入力される。
【００２２】
ここで、図４、図５を参照して、ＦＩＦＯ１０５−２、ＤＲＡＭ１１０、外付けカード１１１に入力されるデータの流れを説明する。本実施形態では、ＦＩＦＯ１０５−２の総容量を２０４８バイトとし、これを４分割して使用する場合を想定する。つまり、１ブロック当たりのデータ量は、５１２バイトとなる。撮像部１０１から出力される画像データについては、ＦＩＦＯ１０５−２にて１ブロック分のデータが蓄積されると、ＤＲＡＭ１１０と外付けカード１１１へ転送される。
【００２３】
図４（Ａ）は、各部のデータ蓄積量について概念的に示す。ＦＩＦＯ１０５−２は４ブロックからなり、１ブロックが５１２バイトである。ＤＲＡＭ１１０、外付けカード１１１についても、ブロック単位で分割した状態で示す。図中の第１ポインタ（ＦＩＦＯライトポインタ）は、撮像データをＦＩＦＯ１０５−２に書き込む位置を指す。また、第２ポインタ（カードライトポインタ）は、撮像データをＦＩＦＯ１０５−２から外付けカード１１１へ書き込む位置を指す。第３ポインタ（ＤＲＡＭライトポインタ）は、撮像データをＦＩＦＯ１０５−２からＤＲＡＭ１１０へ書き込む位置を指す。これらのポインタは、図３のＳ３０３の時点では同じ位置を指しており、この位置はＦＩＦＯライトポインタの位置（この基準位置をゼロとする）となっている。
【００２４】
図４（Ｂ）は、撮像開始後に時間が経過した状態を例示する。図中に丸枠内で示す数字によってブロックごとの撮像データを区別しており、明細書中では各データをＤ（Ｘ）と表記する。Ｘは自然数変数を表す。図４（Ｂ）の状態にて、ＦＩＦＯ１０５−２には、ＦＩＦＯライトポインタで示すように、Ｄ（１）からＤ（３）までデータが蓄積されており、Ｄ（４）を書き込み中である。ＤＲＡＭ１１０においては、ＤＲＡＭライトポインタで示すように、Ｄ（１）とＤ（２）の書き込みが終了し、Ｄ（３）のデータを転送中である。このとき、外付けカード１１１にエラーが発生した場合、再送処理が実行され、従って、データ転送処理に遅れが発生する。なお、カードライトポインタに示すように、Ｄ（１）のデータは外付けカード１１１に転送中である。
【００２５】
図４（Ｃ）に示す状態では、カードライトポインタがＤ（２）の先頭を指しており、現時点でＤ（２）のデータが外付けカード１１１に転送されている。ＦＩＦＯライトポインタはＤ（５）の先頭を指しており、Ｄ（５）の書き込みが行われている。つまり、Ｄ（１）のデータは、既に転送が完了しているため、Ｄ（５）は、以前にＤ（１）が存在した領域に書き込むことが可能である。
【００２６】
ＦＩＦＯ１０５−２でＤ（５）の書き込みを終了し、次のＤ（６）を撮像部１０１からＦＩＦＯ１０５−２に転送しようとすると、現時点で外付けカード１１１へ転送を行っているＤ（２）が上書きされてしまう可能性がある。そこで、この時点で、ＦＩＦＯ１０５−２がそれ以上データの書き込みを許可しない状態（Ｆｕｌｌ）である旨を示す通知がＣＰＵ１０４に対して行われる。Ｆｕｌｌ状態については、例えばＦＩＦＯ１０５−２のデータ蓄積量が閾値を超えたか否かにより判定できる。図３のＳ３０４には、ＦＩＦＯ１０５−２に係るＦｕｌｌ状態の判定処理を示す。ＦＩＦＯ１０５−２がＦｕｌｌ状態と判定された場合、Ｓ３０５に処理を進め、また、Ｆｕｌｌ状態でないと判定された場合、Ｓ３０７に処理を進める。ＤＭＡコントローラ１０５が撮像部１０１のデータを受け付ける際には、特定のフレームレートでの撮像データに関するリアルタイム処理が要求される。この撮像データをカードダイレクト処理で外部メモリに書き込む場合、書き込み処理の待ち時間をとることができない。このため、ＦＩＦＯ１０５−２におけるデータ蓄積量を、常に監視する必要がある。
【００２７】
Ｓ３０５でＣＰＵ１０４は内部バッファモードの設定処理を行う。これにより、第２セレクタ１０８−１は、データパス１１２−４からのデータ入力を選択する状態に切り替わる。すなわち、ＤＲＡＭ１１０からシステムバス１１２を介して、カードコントローラ１０８に入力されたデータを、外付けカード１１１への書き込む処理が実行される。このとき、図４（Ｃ）に示すＤＲＡＭ１１０上のデータＤ（１）については、既に外付けカード１１１への転送が完了しているので、Ｄ（１）を記憶していた領域は、データ保持の必要がないために解放される。図４にて斜線を付して示す領域は、解放可能な領域、つまり再びデータの書き込みに使用可能な領域を示している。なお、ＤＲＡＭ１１０上のデータのうちで、外付けカード１１１への書き込みが完了しているデータを記憶する領域については、解放によって当該領域に次のデータを書き込める状態となる。
【００２８】
図４（Ｄ）は、内部バッファモードに切り替わった状態を示し、カードライトポインタがＤＲＡＭ１１０上のＤ（２）の先頭を指している。ＤＲＡＭ１１０上に在るＤ（２）が外付けカード１１１に転送されている。図５（Ｅ）の状態では、内部バッファモードが継続中であり、ＤＲＡＭ１１０上のＤ（４）を外付けカード１１１に転送中である。このときのＦＩＦＯライトポインタはＤ（６）の先頭を指しており、撮像部１０１からＤ（６）の書き込みが行われる。ＦＩＦＯライトポインタの指している書き込み位置と、カードライトポインタの指している位置との差分は２ブロック以上である。この時点で、図３のＳ３０４の判定結果は、ＦＩＦＯ１０５−２がＦｕｌｌ状態でないことを示す。すなわち、Ｆｕｌｌ状態が解除される。この場合、Ｓ３０７に処理を進め、カードダイレクトモードに設定され、第２セレクタ１０８−１はカードダイレクトパス１１３の入力を選択する。またこの時点では既に、ＤＲＡＭ１１０においてＤ（１）〜Ｄ（３）を記憶している領域については、外付けカード１１１への転送を完了している。よって、これらの領域を解放することができる。
【００２９】
図５（Ｆ）では、カードダイレクトモードの設定状態であり、カードライトポインタが、ＦＩＦＯ１０５−２のＤ（４）の先頭を指している。ＦＩＦＯライトポインタの指している位置と、カードライトポインタの指している位置との差分は２ブロック以上であるため、カードダイレクトモードを継続中である。図５（Ｇ）は、図５（Ｆ）から更に進んだ状態を示しており、カードライトポインタはＤ（５）の先頭を示しているが、ＦＩＦＯライトポインタはＤ（７）の先頭を指している。これらのポインタの指す位置が２ブロック以上離れているため、カードダイレクトモードを継続することが可能である。また、ＤＲＡＭ１１０上のＤ（５）については、既に解放された領域である、Ｄ（１）を保持していた領域に書き込みが行われる。
【００３０】
このように、本実施形態では撮像部１０１からＦＩＦＯ１０５−２へデータを書き込む際に用いる第１ポインタと、ＦＩＦＯ１０５−２から外部メモリへデータを書き込む際に用いる第２ポインタを監視する。第１ポインタの指す位置が第２ポインタの指す位置を追い越してしまうかどうかを判断するために、ポインタ位置の差分が算出されて閾値と比較される。算出した差分が閾値以上である場合には、処理に余裕があるため、撮像データを外部メモリに転送して直接書き込む制御を継続することができる。一方、算出した差分が閾値未満である場合、第１ポインタの指す位置が第２ポインタの指す位置を追い越す可能性があると判断される。この場合、撮像データを外部メモリに転送して直接書き込む制御が中止され、既に内部メモリに退避された撮像データを読み出して外部メモリに転送して書き込む制御が行われる。すなわち、データ転送経路を変更するモード切り替えの判断規準は、第１ポインタと第２ポインタがそれぞれ指す位置の差分量を閾値と比較した結果に基づいており、モードの切り替えが動的に行われることになる。
【００３１】
図３のＳ３０５の次にＳ３０６へ処理が移ると、ＣＰＵ１０４は撮像動作を終了するか否かを判断し、撮影動作を続行する場合、Ｓ３０４に処理を戻す。同様に、Ｓ３０７からＳ３０８に処理が移り、撮影動作を続行すると判定された場合には、Ｓ３０４に処理を戻す。Ｓ３０９からＳ３１０へ処理が移り、撮影動作を続行すると判定された場合、Ｓ３０９に処理を戻す。Ｓ３０６、Ｓ３０８、Ｓ３１０で撮影動作の終了が判定された場合、図３に示す一連の処理が終了する。
以上のように、第１ポインタおよび第２ポインタを監視しながら、外付けカード１１１へのデータ転送が完了するまでの間、内部バッファモードとカードダイレクトモードについてのダイナミックな切り替え制御が行われる。
【００３２】
第１実施形態によれば、データ保証のために最低限必要な容量の第１の記憶媒体（内部メモリ）を使用して、撮像装置に装着される第２の記憶媒体（外部メモリ）に直接データを出力して記憶させることができる。その際、外部メモリの転送状態（転送速度等）を監視するとともに、ＤＭＡコントローラのＦＩＦＯのデータ蓄積量を把握した上で、監視結果に従って外部メモリに対してデータを直接に書き込む制御を行う。一般的に、外部メモリのデータ転送速度を厳密に判断することは難しいが、データ転送速度が十分であると判断された場合、外部メモリへのダイレクト処理が実行される。この場合、内部メモリに退避したデータから外部メモリへ転送する方式に比べて、高スループットでのデータ転送が可能である。
【００３３】
また、外部メモリへのデータ転送と同時に内部メモリに記憶させるデータについては、外部メモリへの転送が完了した領域から順次に解放することで、内部メモリ上に確保する記憶領域を最小限にすることができる。外部メモリの転送エラー等が発生してデータ転送速度が低下した場合には、内部メモリに退避されたデータを外部メモリへ書き込む処理に切り替わるので、転送するデータを保証することができる。また、撮像装置内の処理に応じて、外部メモリへのダイレクト処理が可能かどうかの判断規準を変更することにより、それぞれの処理に応じて最適なデータ転送処理を実現できる。
【００３４】
［第２実施形態］
次に本発明の第２実施形態を説明する。第２実施形態では、撮像部から出力したデータに対して信号処理を施し、更に画像圧縮したＪＰＥＧデータを直接、外部メモリに記憶する処理について説明する。なお、第２実施形態において、第１実施形態の場合と同様の構成要素については既に使用した符号を用いることで、それらの詳細な説明を省略し、以下では相違点を中心に説明する。
【００３５】
図６は、画像圧縮後のＪＰＥＧ画像データを、外付けカード１１１に出力するシステムの構成例を示す図である。
ハードウェアタイマ１２０は、規定時間が経過すると、タイマ割り込み信号線１２１を介してＣＰＵ１０４に時間経過を通知する。ＤＭＡコントローラ１０５のフロー制御信号線１２２は、ＦＩＦＯ１０５−２のデータが全て貯まった状態を検知した場合、画像圧縮伸長部１０３に信号を伝えて、ＤＭＡコントローラ１０５へのデータ入力を停止させる。第１実施形態の場合、撮像部１０１からのデータ入力については途中で停止することはできない。これに対して第２実施形態の場合、信号処理および画像圧縮を行う処理系のデータ入力については、ＤＲＡＭ１１０からのデータ読み出しを中断すれば、途中で処理を停止することが可能である。
【００３６】
次に図７を参照して、撮像部１０１からの撮像データを信号処理してＪＰＥＧデータを生成する処理について説明する。図７（Ａ）は処理の流れを説明する模式図であり、時間軸方向に区分した４つの期間T1,T2,T3,T4を示す。各期間は、連続撮影時の１駒当たりの処理時間に相当する。例えば、１秒間に１０駒の連続撮影を実施する場合を想定すると、期間T1,T2,T3,T4の時間長はそれぞれ１００ミリ秒である。つまり１駒当たり、１０００／１０＝１００ミリ秒となる。図中の丸枠内の数字によって各期間における撮像データ、現像データ、ＪＰＥＧデータをそれぞれ区別している。明細書中ではこれらをＤ（Ｘ）と表記する。Ｘは自然数変数であり、Ｄ（Ｘ）は、Ｘ駒目の画像データを示すものとする。撮像データとして、期間T1ないしT4にそれぞれＤ（１）ないしＤ（４）を示す。現像データとして、期間T2ないしT4にそれぞれＤ（１）ないしＤ（３）を示し、ＪＰＥＧデータとして、期間T3，T4にそれぞれＤ（１）、Ｄ（２）を示す。
【００３７】
期間T4に注目したときのＤＲＡＭ１１０へのアクセスの様子について、図７（Ｂ）を参照して説明する。図７（Ｂ）は期間T4におけるＤＲＡＭ１１０上の画像データ配置を矩形枠内に例示する。矩形枠の左側には撮像部１０１と、信号処理部１０２内の現像処理部による各ライトポインタを示し、矩形枠の右側には現像処理部と画像圧縮伸長部１０３による各リードポインタを示す。
期間T4にてＤＲＡＭ１１０には、撮像部１０１からの撮像データＤ（４）が書き込まれる。現像データに関しては、期間T3にて既に撮像処理を完了していた撮像データＤ（３）が読み出され、現像処理部がＤ（３）の現像処理を行い、ＤＲＡＭ１１０に書き込んでいる。ＪＰＥＧデータに関しては、期間T3にて既に現像処理を完了していた現像データＤ（２）が読み出される。該データＤ（２）は画像圧縮伸長部１０３で圧縮処理を施され、ＤＭＡコントローラ１０５からカードコントローラ１０８へと、カードダイレクトパス１１３経由で転送されて、外付けカード１１１へ出力される。
【００３８】
このとき、撮像データ、現像データ、ＪＰＥＧデータに係る一連の処理を１０００ミリ秒内に完了できないと、１秒間に１０駒の連続撮影を継続することができない。従って、カメラの内部メモリであるＤＲＡＭ１１０への画像データの転送速度が厳密に保証されているとすると、ＪＰＥＧデータのカードダイレクト処理にかかる時間が、所定時間を超えないようにする必要がある。この所定時間は、本例では１０００ミリ秒であり、以下、１Ｖ処理時間という。換言すれば、内部メモリに対する撮像データのリードおよびライト、現像データのリードおよびライトが１Ｖ処理時間内で可能である場合、圧縮データを外部メモリに転送する時間が１Ｖ処理時間を超えないことを保証する必要がある。
【００３９】
次に、図８を参照して、ＪＰＥＧデータのカードダイレクト処理にかかる時間が１Ｖ処理時間を超えないように保証するためのシーケンスについて説明する。
第１実施形態の図３のフローチャートと同様に、外付けカード１１１がカメラのカードスロットに挿入された場合、該カードの属性がチェックされる。Ｓ７０１でカードダイレクト処理が不可能と判断された場合、Ｓ７１０に進み、内部バッファモードが設定される。即ち、画像圧縮伸長部１０３が出力するＪＰＥＧデータは、システムバス１１２、ＤＲＡＭコントローラ１０７を経由して、一旦ＤＲＡＭ１１０に記憶保持されてから読み出されて外付けカード１１１に記憶される。Ｓ７１１で撮影終了と判断された場合、処理を終了するが、撮像動作の続行中は内部バッファモードが設定されたままである。
【００４０】
一方、Ｓ７０１でカードダイレクト処理が可能と判断された場合、Ｓ７０２へ移る。Ｓ７０２では、ユーザがレリーズスイッチを操作している状態であれば、連続撮影（いわゆる連写）が継続されていると判定されて、Ｓ７０３に処理を進める。また、連写終了時には、現時点での駒の処理を完了する。Ｓ７０３では、前の駒のＪＰＥＧデータ出力が終了したか否かが判定される。例えば、連写動作の途中で、図７（Ａ）に示す期間T4での処理の開始前に、期間T3のＪＰＥＧデータＤ（１）を外付けカード１１１へ書き込む処理が完了しているか否かが判定される。データＤ（１）の処理が完了していない場合、Ｓ７０８に進み、データＤ（１）の処理が完了していた場合、Ｓ７０４に進む。Ｓ７０８では内部バッファモードに設定され、ＪＰＥＧデータは、一旦ＤＲＡＭ１１０に書き込まれてから読み出されて外付けカード１１１に記憶される。
【００４１】
Ｓ７０４では、カードダイレクトモードが設定され、撮像処理、現像処理、ＪＰＥＧ圧縮処理が一斉に開始する。例えば、図７（Ａ）に示す期間T4にて、データＤ（４）とＤ（３）のリードおよびライトについては、前述の通り、１Ｖ処理時間内で確実に処理が完了することを保証されている。ところが、ＪＰＥＧデータのカードダイレクト処理での書き込みの場合、１Ｖ処理時間内での処理の完了が必ずしも保証されるわけではない。例えば、外付けカード１１１の書き込みエラーが発生した場合には再送処理が必要となり、外付けカード１１１への転送速度が遅くなる場合がある。このため、１Ｖ処理時間内に、図７（Ｂ）に示すＪＰＥＧデータＤ（２）を外付けカード１１１に記憶できない場合があり得る。そこで、外付けカード１１１のデータ転送速度が閾値速度よりも遅くなったことを検知するためにタイマ監視機能が用いられる。つまり、期間T4での処理開始とともに、ハードウェアタイマ１２０が起動し、例えば、５００ミリ秒が経過した時点でＣＰＵ１０４に割り込みがかかり、ＣＰＵ１０４はＪＰＥＧデータの外付けカード１１１への書き込み量を計測してチェックする処理を実行する。ここで設定している時間閾値５００ミリ秒は、１Ｖ処理時間を１０００ミリ秒とするとき、その半分の時間である。例えば、ＪＰＥＧデータを生成するための現像データ（図７（Ｂ）のＤ（２）参照）の読み出しアドレスを監視してリード処理の進捗状況のチェックが行われる。データの計測量を、時間閾値内で処理されるべき予定データ量（閾値）と比較することにより、外付けカード１１１への書き込み処理が問題なく行われているか、または、書き込み処理が遅れているかを判断できる。Ｓ７０５にてタイマ割り込みが発生したか否かについて判定され、５００ミリ秒の経過時点でのタイマ割り込みが発生すると、Ｓ７０６に移る。Ｓ７０６では、ＪＰＥＧデータの外付けカード１１１への書き込み処理が問題なく進行しているか否かについてチェックが行われる。ここで、ＪＰＥＧデータの出力量が規定値未満の場合、つまり外付けカード１１１への書き込み速度が遅くなり、このままではカードダイレクト処理が１Ｖ処理時間の終了時点に間に合わなくなると判断された場合、Ｓ７０８に移る。Ｓ７０８にて内部バッファモードが設定され、ＪＰＥＧデータの書き込み処理が保証される。また、Ｓ７０６でＪＰＥＧデータの出力量が規定値以上の場合、Ｓ７０７に処理を進める。
【００４２】
Ｓ７０７では現在の駒のＪＰＥＧデータの出力が終了したか否かが判定される。カードダイレクト処理にて現在の駒（図７の期間T4内の駒を参照）に対する処理が終了したことが確認されると、Ｓ７０２に処理を戻し、未終了の場合、Ｓ７０５に戻る。同様に、Ｓ７０８からＳ７０９に進むと、内部バッファモードにて現在の駒のＪＰＥＧデータの出力が終了したか否かが判定される。現在の駒に対する処理が終了すると処理をＳ７０２に戻し、未終了の場合、Ｓ７０９の判定処理が繰り返される。Ｓ７０２で連写動作が終了すると、シーケンスを終了する。
【００４３】
第２実施形態によれば、撮像処理、現像処理、データ圧縮処理という一連の処理を規定時間内に行いつつ、処理済みのデータを外部メモリに転送して記憶させることができる。データ圧縮処理においては、内部メモリから外部メモリへデータを転送する場合、書き込み速度に応じて処理を待たせることが可能であるが、連続撮影のように１駒当たりの処理時間が規定されている処理の場合には、規定時間の監視が必要である。ハードウェアタイマ１２０により時間の監視を行い、規定時間の途中で処理データの進捗状況を計測しつつ、計測量に基づいてデータの転送制御が行われる。これにより、データ圧縮処理された出力データを外部メモリに転送して直接書き込む制御を継続させるか、または内部メモリに記憶したデータを転送して外部メモリへ書き込む制御に変更するかが選択される。
また、ＤＭＡコントローラ１０５は、撮像部１０１からのデータを選択した場合、ＦＩＦＯ１０５−２のアドレスポインタを監視し、また画像圧縮伸長部１０３からデータの場合には、ＣＰＵ１０４がその処理時間を監視する。このように処理内容に応じて監視処理を適切に切り替えることができる。
【符号の説明】
【００４４】
１０４  ＣＰＵ
１０５  ＤＭＡコントローラ
１１０  ＤＲＡＭ（第１の記憶媒体）
１１１  外付けカード（第２の記憶媒体）
【図１】
2014170476.tif 000003
【図２】
2014170476.tif 000004
【図３】
2014170476.tif 000005
【図４】
2014170476.tif 000006
【図５】
2014170476.tif 000007
【図６】
2014170476.tif 000008
【図７】
2014170476.tif 000009
【図８】
2014170476.tif 000010