(57)【要約】【課題】  記憶媒体用の入出力バスのクロック周波数を、記録装置の所望するデータの入出力速度に合わせて調整できるようにする。【解決手段】  デジタルカメラ１００と記憶媒体１５０との間の入出力バスの動作周波数である入出力バスクロック周波数を、記憶媒体１５０の入出力速度特性とデジタルカメラ１００の内部情報（動作設定等）とに応じて制御する。【選択図】  図１
2013025629.tif 000002
【特許請求の範囲】
【請求項１】
着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行する記録装置であって、
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出手段と、
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定手段と、
前記決定手段により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御手段と、を有することを特徴とする記録装置。
【請求項２】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測手段と、
前記要求値と前記実測値とを比較する比較手段と、をさらに有し、
前記決定手段は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項１に記載の記録装置。
【請求項３】
前記記憶媒体の識別情報と、当該識別情報により識別される記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値と、当該実測値を得たときの前記入出力バスのクロック周波数と、を含む情報を、複数の前記記憶媒体のそれぞれについて記憶する実測記憶手段と、
前記要求値と前記実測値とを比較する比較手段と、をさらに有し、
前記決定手段は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項１に記載の記録装置。
【請求項４】
前記実測記憶手段は、さらに、前記識別情報で識別される記憶媒体の前記記録装置における使用履歴を記憶し、
前記識別情報で識別される記憶媒体の前記記録装置における使用履歴に基づいて、当該記憶媒体とは異なる他の前記記憶媒体についての情報を削除することを特徴とする請求項３に記載の記録装置。
【請求項５】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測手段をさらに有し、
前記計測手段は、前記記録装置に装着された記憶媒体の情報が、前記実測記憶手段により記憶されていない場合に、当該記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測することを特徴とする請求項３又は４に記載の記録装置。
【請求項６】
前記決定手段は、前記要求値よりも速い速度の実測値がある場合には、当該実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定し、前記要求値よりも速い速度の実測値がない場合には、前記実測値のうち、最も速い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項２〜５の何れか１項に記載の記録装置。
【請求項７】
前記決定手段は、前記要求値よりも速い速度の実測値がある場合には、前記実測値のうち、最も遅い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項６に記載の記録装置。
【請求項８】
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報と、当該内部情報に基づいて前記導出手段により導出された要求値とを含む情報を記憶する要求記憶手段をさらに有し、
前記導出手段は、前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に対応する要求値が、前記要求記憶手段により記憶されていない場合に、当該要求値を導出することを特徴とする請求項１〜７の何れか１項に記載の記録装置。
【請求項９】
前記記録装置は、撮影装置であり、
前記記録装置の内部情報は、撮影される画像の解像度と、撮影された画像の圧縮率とを含むことを特徴とする請求項１〜８の何れか１項に記載の記録装置。
【請求項１０】
着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行する記録装置の制御方法であって、
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出工程と、
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定工程と、
前記決定工程により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御工程と、を有することを特徴とする記録装置の制御方法。
【請求項１１】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測工程と、
前記要求値と前記実測値とを比較する比較工程と、をさらに有し、
前記決定工程は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項１０に記載の記録装置の制御方法。
【請求項１２】
前記記憶媒体の識別情報と、当該識別情報により識別される記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値と、当該実測値を得たときの前記入出力バスのクロック周波数と、を含む情報を、複数の前記記憶媒体のそれぞれについて記憶する実測記憶工程と、
前記要求値と前記実測値とを比較する比較工程と、をさらに有し、
前記決定工程は、前記要求値よりも速い速度の実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項１０に記載の記録装置の制御方法。
【請求項１３】
前記実測記憶工程は、さらに、前記識別情報で識別される記憶媒体の前記記録装置における使用履歴を記憶し、
前記識別情報で識別される記憶媒体の前記記録装置における使用履歴に基づいて、当該記憶媒体とは異なる他の前記記憶媒体についての情報を削除することを特徴とする請求項１２に記載の記録装置の制御方法。
【請求項１４】
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測する計測工程をさらに有し、
前記計測工程は、前記記録装置に装着された記憶媒体の情報が、前記実測記憶工程により記憶されていない場合に、当該記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の実測値を、前記入出力バスの複数のクロック周波数のそれぞれについて計測することを特徴とする請求項１２又は１３に記載の記録装置の制御方法。
【請求項１５】
前記決定工程は、前記要求値よりも速い速度の実測値がある場合には、当該実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定し、前記要求値よりも速い速度の実測値がない場合には、前記実測値のうち、最も速い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項１１〜１４の何れか１項に記載の記録装置の制御方法。
【請求項１６】
前記決定工程は、前記要求値よりも速い速度の実測値がある場合には、前記実測値のうち、最も遅い実測値に対応する入出力バスのクロック周波数を、前記入出力バスのクロック周波数として決定することを特徴とする請求項１５に記載の記録装置の制御方法。
【請求項１７】
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報と、当該内部情報に基づいて前記導出工程により導出された要求値とを含む情報を記憶する要求記憶工程をさらに有し、
前記導出工程は、前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に対応する要求値が、前記要求記憶工程により記憶されていない場合に、当該要求値を導出することを特徴とする請求項１０〜１６の何れか１項に記載の記録装置の制御方法。
【請求項１８】
前記記録装置は、撮影装置であり、
前記記録装置の内部情報は、撮影される画像の解像度と、撮影された画像の圧縮率とを含むことを特徴とする請求項１０〜１７の何れか１項に記載の記録装置の制御方法。
【請求項１９】
記録装置に装着された着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行することをコンピュータに実行させるためのコンピュータプログラムであって、
前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出工程と、
前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定工程と、
前記決定工程により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御工程と、をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置、記録装置の制御方法、及びコンピュータプログラムに関し、特に、記録装置に装着された着脱可能な記憶媒体に対してデータの入出力を行うために用いて好適なものである。
【背景技術】
【０００２】
記録装置（情報処理装置）の状態に応じて、記録装置全体のクロック周波数（ＣＰＵを動作させるクロック周波数）を低くすることにより、記録装置の消費電力を低減する技術がある（特許文献１を参照）。
また、記録装置の複数の部分毎に、クロック周波数を個別に制御し、かつ、各部分を監視する技術がある（特許文献２を参照）。この技術では、各部分の動作状況により必要に応じて、各部分のクロック周期を下げることで、さらに効率良く記録装置の消費電力を減少させることができる。
【０００３】
一方、最近の着脱可能な記憶媒体（半導体メモリ、磁気ディスク、フラッシュ・メモリ・カード等）は大容量化し、それに比例するようにデータの入出力速度も向上している。そのため、記録装置に対して着脱される記憶媒体には、データを高速に書き込むことができる記憶媒体もある。
しかしながら、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置に、高速にデータの入出力を行うことに対応していない記憶媒体（例えばフラッシュ・メモリ・カード）を装着すると、次のような問題が生じる虞がある。すなわち、高いクロック周波数で記憶媒体に対してデータの入出力を行った場合の書き込み速度と、低いクロック周波数で記憶媒体に対してデータの入出力を行った場合の書き込み速度とに、差が生じないことがある。
【０００４】
この結果、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置に、高速にデータの入出力を行うことに対応していない記憶媒体を装着し、この記憶媒体に対してデータの入出力を行うと、記録装置において無駄な電力を消費する場合がある。この問題に対して、データの書き込み速度をできるだけ落とさずに、記憶媒体用の入出力バスのクロック周波数を低くすることにより、記録装置の無駄な消費電力を低減することができるようにする技術が提案されている（特許文献３を参照） 。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１９１０１７号公報
【特許文献２】特開２０００−１４８２７９号公報
【特許文献３】特開２００６−３５０９６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、前述の特許文献３に記載の技術では、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置の所望する「データの入出力速度」に応じて、クロック周波数を制御することができない。
そのため、記憶媒体用の入出力バスのクロック周波数を変更できる記録装置の所望する「データの入出力速度」が、記憶媒体自体の最大の「データの入出力速度」よりも低い場合には、次のような問題が生じる虞がある。すなわち、高いクロック周波数で記憶媒体に対してデータの入出力を行った場合と、低いクロック周波数で記憶媒体に対してデータの入出力を行った場合とで、データの転送時間に差が生じなくなる。これにより、高いクロック周波数で動作させた場合に、記録装置が無駄な電力を消費してしまう。
【０００７】
本発明は、このような問題点に鑑みてなされたものであり、記憶媒体用の入出力バスのクロック周波数を、記録装置の所望する「データの入出力速度」に合わせて調整できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の記録装置は、着脱可能な記憶媒体に対してデータの書き込みと読み出しの少なくとも何れか一方を実行する記録装置であって、前記記憶媒体に対するデータの入出力速度に影響を与える、前記記録装置の内部情報に基づいて、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出する導出手段と、前記記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値に応じて、前記記憶媒体と前記記録装置とを相互に接続する部分である入出力バスのクロック周波数を決定する決定手段と、前記決定手段により決定されたクロック周波数で前記入出力バスを動作させて、前記記憶媒体に対してデータの書き込みまたは読み出しを行う制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、記録装置の内部情報と、記録装置に装着された記憶媒体に対するデータの入力速度および出力速度の少なくとも何れか一方の要求値を導出し、当該要求値に応じて、入出力バスのクロック周波数を決定する。したがって、記憶媒体用の入出力バスのクロック周波数を、記録装置の所望する「データの入出力速度」に合わせて調整することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】デジタルカメラの構成を示す図である。
【図２】入出力バスクロック周波数決定ルーチンの第１の例を示すフローチャートである。
【図３】入出力速度特性実測ルーチンを示すフローチャートである。
【図４】入出力速度実測ルーチンを示すフローチャートである。
【図５】記憶媒体に対するデータの入出力速度特性を示す図である。
【図６】入出力速度見積もりルーチンを示すフローチャートである。
【図７】入出力速度特性をグラフで示す図である。
【図８】入出力バスクロック周波数決定ルーチンの第２の例を示すフローチャートである。
【図９】記憶媒体クロック特性テーブルを示す図である。
【図１０】ＵＭＬのシーケンス図を用いて制御プログラムを説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施形態を、図面に基づいて詳細に説明する。
（第１の実施形態）
図１は、本実施形態の記録装置の一例であるデジタルカメラの構成の一例を示す図である。
本実施形態の記録装置は、撮像素子を用いて撮影した静止画像又は動画像の画像データを、所定のファイル形式で、当該記録装置に着脱可能な記憶媒体に記録する機能を有する装置である。
以下、各実施形態では、記録装置がデジタルカメラである場合を例に挙げて説明する。しかしながら、記録装置は、当該記録装置に記憶媒体を着脱可能であり、かつ、当該記憶媒体に対してデータの入出力（読み書き）を行うためのインターフェースを有するものであれば、デジタルカメラに限るものではない。例えば、記録装置は、デジタルビデオカメラ、デジタルカメラ付き携帯電話等の、デジタルカメラとしての機能を有する装置であってもよい。
【００１２】
図１おいて、デジタルカメラ１００には、記憶媒体１５０が着脱される。
撮影レンズユニット１０１は、複数のレンズ（レンズ群）を備えている。デジタルカメラ１００は、撮影レンズユニット１０１を、他の撮影レンズユニットに交換することが可能である。
撮影レンズユニット１０１は、マイクロコンピュータ１２６と通信し、その結果に基づいて、撮影レンズユニット１０１内部のレンズ制御回路１０１ａを制御する。具体的に、撮影レンズユニット１０１は、撮影レンズユニット１０１内のフォーカシングレンズを変移させることにより、焦点を合わせる（すなわち、オートフォーカス機能を実行する）。
フォーカシングレンズの変移量は、測距回路１１７の出力に基づき、マイクロコンピュータ１２６で演算される。また、撮影レンズユニット１０１内には絞り制御回路１０１ｂが設けられている。撮影レンズユニット１０１は、マイクロコンピュータ１２６と通信し、その結果に基づいて、絞り制御回路１０１ｂを制御する。具体的に、撮影レンズユニット１０１は、光学的な絞り値を変化させる。
【００１３】
クイックリターンミラー１０２は、撮影光路中に配置される。クイックリターンミラー１０２は、撮影レンズユニット１０１（撮影レンズ）からの被写体光をファインダ光学系（不図示）に導く位置と撮影光路外に退避する位置との間で移動することが可能である。
シャッタ１０３は、露光を制御するものである。光学フィルタ１０４は、透過する光を調整するものである。光学フィルタ１０４は、防塵ガラスで覆われている。撮像素子１０５は、光学像を電気信号に変換する。Ａ／Ｄ変換器１０６は、撮像素子１０５からのアナログ信号の出力をディジタル信号に変換する。
【００１４】
タイミング発生回路１０８は、撮像素子１０５及びＡ／Ｄ変換器１０６に対してクロック信号や制御信号を供給する。このタイミング発生回路１０８は、後述するメモリ制御回路１１１及びマイクロコンピュータ１２６により制御される。
【００１５】
画像処理回路１０７は、Ａ／Ｄ変換器１０６からの画像データ、或いはメモリ制御回路１１１からの画像データに対して、当該画像データに付加されている処理データ等に基づき、所定の画素補間処理や現像処理等を行う。
メモリ制御回路１１１は、Ａ／Ｄ変換器１０６、画像処理回路１０７、タイミング発生回路１０８、画像表示メモリ１１２、メモリ１１３、及び圧縮／伸長回路１１４を制御する。
Ａ／Ｄ変換器１０６からのデータが、画像処理回路１０７及びメモリ制御回路１１１を介して、画像表示メモリ１１２或いはメモリ１１３に書き込まれる。
表示部１１０は、ＴＦＴ又はＬＣＤ等を備える。画像表示メモリ１１２に書き込まれた表示用の画像データは表示制御回路１０９により表示部１１０に表示される。
【００１６】
メモリ１１３は、例えばＲＡＭであり、以下のメモリ領域を有している。すなわち、メモリ１１３は、撮影した非圧縮の画像データを一時的に格納するイメージバッファとしての領域を有する。また、メモリ１１３は、画像処理回路１０７にて画像データを現像処理する際に使用する処理データや、ＡＦ／ＡＥ／ＡＷＢの演算結果の保持や、その他一時的に使用するデータを記憶するワークバッファとしての領域を有する。また、メモリ１１３は、圧縮／伸長回路１１４で圧縮された圧縮画像データを格納するファイルバッファとしての領域を有する。
メモリ１１３は、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶容量を備えている。これにより、複数枚の静止画像を連続して撮影する連写撮影の場合であっても、メモリ１１３に対して高速にかつ大量の画像データの書き込みを行うことが可能となる。
【００１７】
圧縮／伸長回路１１４は、離散コサイン変換（ＤＣＴ）等により画像データをＪＰＥＧデータとして圧縮伸長する。圧縮／伸長回路１１４は、メモリ１１３に格納された画像データを読み出して圧縮処理或いは伸長処理を行う。圧縮／伸長回路１１４は、圧縮処理或いは伸長処理を終えたデータをメモリ１１３に書き込む。
シャッタ制御回路１１５は、シャッタ１０３の動作を制御する。
【００１８】
ミラー制御回路１１６は、クイックリターンミラー１０２を、撮影光路の内外に駆動する。測距回路１１７は、撮影レンズユニット１０１のフォーカシングレンズの変位量を制御する。測光回路１１８は、被写体の輝度を測定する。測光回路１１８からの出力により、露出が制御される。
【００１９】
記憶媒体制御部１２３は、メモリカード等の記憶媒体１５０に対する読み書きを制御する。記憶媒体制御部１２３は、クロック周波数制御部１２３ａと、内部バッファ１２３ｂとを有する。クロック周波数制御部１２３ａは、記憶媒体制御部１２３から記憶媒体１５０に出力される記憶媒体駆動クロック信号の周波数を制御する。内部バッファ１２３ｂは、記憶媒体制御部１２３が記憶媒体１５０とデータを送受信する際、一時的に送受信データを蓄積する。
【００２０】
ＤＭＡ制御部１２４は、メモリ１１３に保存された画像ファイルデータを、記憶媒体制御部１２３を介して記憶媒体１５０に転送する機能と、記憶媒体１５０から転送されたデータを、記憶媒体制御部１２３を介してメモリ１１３に保存する機能とを有する。
マイクロコンピュータ１２６は、デジタルカメラ１００の動作を統括制御する。
タイマ制御部１６０は、基準クロックのサイクル数を計数することによって時間を計測する機能を有する。
割り込み制御部１６１は、ＤＭＡ制御部１２４や記憶媒体制御部１２３等の各部で発生した割り込みを、マイクロコンピュータ１２６に通知する機能を有する。
不揮発性メモリ１１９には、撮像処理を行うプログラム、画像処理を行うプログラム、及び画像ファイルデータを記憶媒体１５０に記録するプログラム等の各種プログラムが記録されている。また、不揮発性メモリ１１９には、これらのプログラムのマルチタスク構成を実現し実行するＯＳ等の各種プログラム、及び各種制御を行うための調整値等が記録されている。
【００２１】
次に、デジタルカメラ１００が備える各操作部材の一例について説明する。
レリーズスイッチ１２０及びメニュー操作スイッチ１２１は、マイクロコンピュータ１２６の各種の動作指示を入力するための操作部材である。レリーズスイッチ１２０及びメニュー操作スイッチ１２１は、各種ボタンスイッチ、ダイアル、及びタッチパネルの少なくとも何れか１つ等により構成される。
ここで、これらの操作部材の一例を具体的に説明する。
【００２２】
レリーズスイッチ１２０は、次に示す一連の処理の動作開始を指示するための操作部材である。レリーズスイッチ１２０がユーザによって半押しされると、レリーズスイッチ１２０はＳＷ１の状態となり、そのことを示す信号がマイクロコンピュータ１２６に出力される。この信号がマイクロコンピュータ１２６に出力されると、ＡＦ（オートフォーカス）処理、及びＡＥ（自動露出）処理等の撮影準備動作の開始が指示する。レリーズスイッチ１２０がユーザによって全押しされると、レリーズスイッチ１２０はＳＷ２の状態となり、そのことを示す信号がマイクロコンピュータ１２６に出力される。この信号がマイクロコンピュータ１２６に出力されると、撮像処理、ホワイトバランス補正処理、現像処理、及び記録処理等が行われる。撮像処理は、撮像素子１０５から出力された信号を、Ａ／Ｄ変換器１０６及びメモリ制御回路１１１を介して、メモリ１１３に画像データとして書き込む処理である。ホワイトバランス補正処理は、画像データに対して設定されているホワイトバランスモードに応じて、ホワイトバランスを調整する処理である。ホワイトバランス補正処理は、画像処理回路１０７により実行される。記録処理は、メモリ１１３から、現像された画像データを読み出し、その画像データに対して圧縮を行い、記憶媒体１５０に圧縮された画像データを書き込む処理である。画像データに対する圧縮は、圧縮／伸長回路１１４により行われる。
【００２３】
メニュー操作スイッチ１２１は、例えば、不図示のメニューキー、セットキー、及び十字キーの組み合わせで構成される。ユーザは、デジタルカメラ１００の撮影条件や現像条件等の各種設定の変更や、外部記憶媒体の省電力モードの選択等の各種操作を、表示部１１０に表示される画面表示を見ながらメニュー操作スイッチ１２１を操作することにより行うことができる。
【００２４】
次に、デジタルカメラ１００と接続される各構成要素及び付属部材について説明する。
電源制御回路１２２は、電池検出回路、ＤＣ−ＤＣコンバータ、及び通電するブロックを切り換えるスイッチ回路等を備える。
電源制御回路１２２は、電池の装着の有無、電池の種類、及び電池残量の検出を行う。そして、電源制御回路１２２は、これらの検出結果と、マイクロコンピュータ１２６からの指示とに基づいて、ＤＣ−ＤＣコンバータを制御する。これにより、必要な電圧が必要な期間、記憶媒体１５０を含む各部へ供給される。
コネクタ１２５は、デジタルカメラ１００と、メモリカード等の記憶媒体１５０とを相互に電気的に接続するためのものである。
【００２５】
記憶媒体１５０は、例えば、半導体メモリで構成されたメモリカードである。記憶媒体１５０は、コネクタ１５１と、メモリ制御部１５２と、記憶媒体部１５３とを有する。コネクタ１５１は、デジタルカメラ１００と記憶媒体１５０とを相互に電気的に接続するためのものである。メモリ制御部１５２は、記憶媒体部１５３に対するデータの読み書きを制御する。記憶媒体部１５３は、例えば、半導体メモリから構成される。
【００２６】
図２は、コネクタ１２５及びコネクタ１５１のクロック周波数を決定する入出力バスクロック周波数決定ルーチンの一例を説明するフローチャートである。以下の説明では、必要に応じて、コネクタ１２５とコネクタ１５１とを合わせて「入出力バス」と称する。尚、本ルーチンは、マイクロコンピュータ１２６が、不揮発性メモリ１１９内のコンピュータプログラムを実行することにより実現される。
【００２７】
ステップＳ２０１において、マイクロコンピュータ１２６は、タイマ制御部１６０の時間計測機能を用いて、入出力速度特性実測ルーチンを実行する。入出力速度特性実測ルーチンでは、記憶媒体１５０の入出力速度特性を実測する。
入出力速度特性とは、クロック周波数制御部１２３ａが出力する入出力バスのクロック周波数と、その入出力バスのクロック周波数で入出力バスを動作させた場合の「記憶媒体１５０におけるデータの入出力速度の実測値」とを組にしたものである。以下の説明では、クロック周波数制御部１２３ａが出力する入出力バスのクロック周波数を必要に応じて「入出力バスクロック周波数」と称する。
【００２８】
図３は、図２のステップＳ２０１の入出力速度特性実測ルーチンの詳細の一例を説明するフローチャートである。尚、本ルーチンは、マイクロコンピュータ１２６が、不揮発性メモリ１１９内のコンピュータプログラムを実行することにより実現される。
【００２９】
ステップＳ３０１において、マイクロコンピュータ１２６は、クロック周波数制御部１２３ａに設定可能な入出力バスクロック周波数のリストを不揮発性メモリ１１９から獲得する。クロック周波数制御部１２３ａに設定可能な入出力バスクロック周波数のリストには、クロック周波数制御部１２３ａに設定することのできる全ての周波数を格納することができる。また、クロック周波数制御部１２３ａに設定することのできる周波数から、１つ以上の周波数を選択し、格納してもよい。
【００３０】
次に、ステップＳ３０２において、マイクロコンピュータ１２６は、次の処理を行う。すなわち、マイクロコンピュータ１２６は、ステップＳ３０１で獲得した「入出力バスクロック周波数のリスト」から、未だ取り出していない入出力バスクロック周波数（ステップＳ３０７で説明するポインタで示される入出力バスクロック周波数）を１つ取り出す。
次に、ステップＳ３０３において、マイクロコンピュータ１２６は、ステップＳ３０２で１つ取り出された入出力バスクロック周波数が空値でないか否かを判断する。
【００３１】
ステップＳ３０３の判断の結果、ステップＳ３０２で１つ取り出された入出力バスクロック周波数が空値でない場合（ステップＳ３０３でＹＥＳとなる場合）には、ステップＳ３０４に進む。ステップＳ３０４に進むと、マイクロコンピュータ１２６は、ステップＳ３０２で１つ取り出された入出力バスクロック周波数をクロック周波数制御部１２３ａに設定する。
【００３２】
次に、ステップＳ３０５において、マイクロコンピュータ１２６は、入出力速度実測ルーチンを実行する。入出力速度実測ルーチンでは、ステップＳ３０４でクロック周波数制御部１２３ａに設定された入出力バスクロック周波数の入出力速度をタイマ制御部１６０の時間計測機能を用いて実測する。
【００３３】
図４は、図３のステップＳ３０５の入出力速度実測ルーチンの詳細の一例を説明するフローチャートである。このルーチンは、主として、マイクロコンピュータ１２６が不揮発性メモリ１１９内のコンピュータプログラムを実行することにより実現される。
【００３４】
ステップＳ４０１において、マイクロコンピュータ１２６は、記憶媒体１５０へのデータの出力速度を実測する。
具体的に、マイクロコンピュータ１２６は、実測量として十分な容量のデータを、記憶媒体制御部１２３を介して記憶媒体１５０に書き込む。次に、マイクロコンピュータ１２６は、前記データの書き込み時間を、タイマ制御部１６０の時間計測機能を用いて実測する。最後に、マイクロコンピュータ１２６は、実測した書き込み時間と、書き込んだデータ量とから、記憶媒体１５０へのデータの出力速度を算出する。
ここで、実測量として十分な容量のデータは、不揮発性メモリ１１９に予め用意してあるデータであってもよいし、不揮発性メモリ１１９内のコンピュータプログラムに従ってメモリ１１３に生成されるデータであってもよい。また、マイクロコンピュータ１２６は、記憶媒体部１５３に保存されているデータを、記憶媒体制御部１２３を介してメモリ１１３に書き込み、この書き込んだデータを、記憶媒体１５０に書き込むようにしてもよい。
【００３５】
次に、ステップ４０２において、マイクロコンピュータ１２６は、ステップ４０１で実測した「記憶媒体１５０へのデータの出力速度」をメモリ１１３へ書き込む。
次に、ステップ４０３において、マイクロコンピュータ１２６は、記憶媒体１５０からのデータの入力速度を実測する。
具体的に、マイクロコンピュータ１２６は、実測量として十分な容量のデータを、記憶媒体制御部１２３を介して記憶媒体１５０から読み出す。次に、マイクロコンピュータ１２６は、前記データの読み出し時間を、タイマ制御部１６０の時間計測機能を用いて実測する。最後に、マイクロコンピュータ１２６は、実測した読み込み時間と、読み出したデータ量とから、記憶媒体１５０からのデータの入力速度を算出する。ここで、実測量として十分な容量のデータは、ステップＳ４０１で記憶媒体１５０に書き込んだデータであっても、記憶媒体１５０内の別のデータであってもよい。
【００３６】
次に、ステップＳ４０４において、マイクロコンピュータ１２６は、ステップＳ４０３で実測した「記憶媒体１５０からのデータの入力速度」をメモリ１１３へ書き込む。そして、図３のフローチャートに戻る。
図４のフローチャートに示す例では、入力速度と出力速度とを実測しているが、クロック周波数制御部１２３ａを用いて、どちらか一方のみを実測してもよい。この場合、入力速度と出力速度とのうちの他方の値を一方の実測値とすることができる。また、図４のフローチャートに示す例では、出力速度を実測した後に入力速度を実測しているが、この順番に制限するものではなく、入力速度を実測した後に出力速度を実測してもよい。
【００３７】
図３のフローチャートの説明に戻り、ステップＳ３０６において、マイクロコンピュータ１２６は、ステップＳ３０５（図４）の入出力速度実測ルーチンで獲得した実測結果を、メモリ１１３へ記憶する。この実測結果は、記憶媒体１５０へのデータの出力速度と、記憶媒体１５０からのデータの入力速度である。
【００３８】
ステップＳ３０６において、マイクロコンピュータ１２６は、実測記憶処理を行うことができる。ここでいう実測記憶処理は、ステップＳ３０５で獲得した実測結果を、記憶媒体１５０に、特定のファイル名を付して書き込む処理である。このようにすれば、マイクロコンピュータ１２６は、デジタルカメラ１００に対する記憶媒体１５０の次回装着時に、そのファイル名から、実測結果を獲得することができる。また、マイクロコンピュータ１２６は、ステップＳ３０５で獲得した実測結果のファイルに、「デジタルカメラ１００の名称や、ファームバージョン等」のデジタルカメラ１００の個体識別情報を含めることができる。このようにすれば、マイクロコンピュータ１２６は、実測結果を獲得するに際し、その実測結果に対応するデジタルカメラ１００を特定することができる。よって、マイクロコンピュータ１２６は、別のデジタルカメラ１００で測定した記憶媒体１５０の実測結果を間違って使用しないようにすることができる。尚、個体識別情報の内容は、デジタルカメラ１００を識別する情報であれば、どのような情報であってもよい。
【００３９】
さらに、ステップＳ３０６において、マイクロコンピュータ１２６は、前述した実測記憶処理とは別の実測記憶処理を行うこともできる。ここでいう実測記憶処理は、ステップＳ３０５で獲得した実測結果を不揮発性メモリ１１９に書き込む処理である。このとき、マイクロコンピュータ１２６は、実測結果と、記憶媒体１５０の個体識別情報とを合わせて不揮発性メモリ１１９に書き込むことができる。このようにすれば、マイクロコンピュータ１２６は、デジタルカメラ１００に対する記憶媒体１５０の次回装着時に、不揮発性メモリ１１９から、その記憶媒体１５０に対応する実測結果を獲得することができる。よって、マイクロコンピュータ１２６は、別の記憶媒体１５０の実測結果を間違って使用しないようにすることができる。
【００４０】
次に、ステップＳ３０７において、マイクロコンピュータ１２６は、入出力バスクロック周波数のリストのポインタを進める。そして、ステップＳ３０２に戻り、ポインタで示されている入出力バスクロック周波数について、ステップＳ３０２以降の処理を繰り返し実行する。
ステップＳ３０３の判断の結果、ステップＳ３０２で１つ取り出された入出力バスクロック周波数が空値である場合（ステップ３０３でＮＯの場合）、図２のフローチャートに戻る。
【００４１】
図５は、記憶媒体１５０に対するデータの入出力速度特性の一例を示す図である。
図５に示すように、入出力速度特性には、クロック周波数制御部１２３ａに設定可能な入出力バスクロック周波数に対するデータ入出力速度の実測値が含まれる。ここで、データ入出力速度の実測値は、図３のステップＳ３０６でメモリ１１３に書き込まれた「記憶媒体１５０へのデータの出力速度と、記憶媒体１５０からのデータの入力速度」である。
【００４２】
図５に示す例では、クロック周波数制御部１２３ａに設定可能な入出力バスクロック周波数として、ａ［ＭＨｚ］、ｂ［ＭＨｚ］、ｃ［ＭＨｚ］、ｄ［ＭＨｚ］（ａ＜ｂ＜ｃ＜ｄ）の４つが設定されている。また、図５に示す例では、データ入出力速度を、単位時間（ｓｅｃ）あたりのデータ量（ＭＢ）で表している。
【００４３】
尚、図５に示す例では、記憶媒体１５０へのデータの出力速度と、記憶媒体１５０からのデータの入力速度とが入出力速度特性に含まれる場合を例に挙げて示している。しかしながら、これらのうち、どちらか一方が入出力速度特性に含まれるようにしてもよい。
また、図５に示す例では、入出力バスクロック周波数として、４つの周波数を入出力特性として設定している。しかしながら、入出力速度特性として設定する周波数の数はこれより多くても、少なくてもよい。
さらに、図５に示す例では、４つの周波数の全てに対して、データ入出力速度の実測値を設定している。しかしながら、クロック周波数制御部１２３ａに設定可能な入出力バスクロック周波数の全てに対して、データ入出力速度が実測されていなくてもよい。
【００４４】
図２の説明に戻り、ステップＳ２０２において、マイクロコンピュータ１２６は、入出力速度見積もりルーチンを実行する。入出力速度見積もりルーチンでは、デジタルカメラ１００が所望する「データの入出力速度」を見積もる。本実施形態では、デジタルカメラ１００が所望する「データの入出力速度」は、記憶媒体１５０に対するデータの入出力速度に影響を与える「デジタルカメラ１００の内部情報」に基づいて見積もられる。「記憶媒体１５０に対するデータの入出力速度に影響を与える『デジタルカメラ１００の内部情報』」を必要に応じて「デジタルカメラ１００の内部情報」と略称する。
デジタルカメラ１００の内部情報には、「撮影する画像の解像度、撮影した画像データの圧縮率、連写撮影時の連写速度、及びフレームレート」等の「メニュー操作スイッチ１２１でデジタルカメラ１００に設定される動作設定の情報」が含まれる。これらの情報は、例えば、不揮発性メモリ１１９やメモリ１１３等に保存されている。また、「デジタルカメラ１００の電池の残量等の電源制御回路１２２により得られる情報」等の「デジタルカメラ１００の動作状況の情報」等もデジタルカメラ１００の内部情報に含まれる。ただし、デジタルカメラ１００の内部情報は、これらに限定されるものではない。前述した動作設定の情報及び動作状況の情報の何れか一方のみが、デジタルカメラ１００の内部情報に含まれるようにしてもよい。
【００４５】
図６は、図２のステップＳ２０２の入出力速度見積もりルーチンの詳細の一例を説明するフローチャートである。このルーチンは、主として、マイクロコンピュータ１２６が不揮発性メモリ１１９内のコンピュータプログラムを実行することにより実現される。
【００４６】
ステップＳ６０１において、マイクロコンピュータ１２６は、デジタルカメラ１００の動作設定が、静止画撮影及び動画撮影の何れであるかを判断するものとする。
この判断の結果に応じて、マイクロコンピュータ１２６は、デジタルカメラ１００の内部情報を、不揮発性メモリ１１９やメモリ１１３等より獲得する。ここでは、マイクロコンピュータ１２６は、デジタルカメラ１００の動作設定の情報を獲得するものとする。図６に示す例では、デジタルカメラ１００の動作設定が静止画撮影であれば、ステップＳ６０２に進む。ステップＳ６０２に進むと、マイクロコンピュータ１２６は、画像の解像度、画像ファイルの圧縮率、及び撮影の連写速度を獲得する。
【００４７】
一方、デジタルカメラ１００の動作設定が動画像撮影であれば、ステップＳ６０３に進む。ステップＳ６０３に進むと、マイクロコンピュータ１２６は、動画像の解像度、動画像ファイルの圧縮率、及び動画像のフレームレートを獲得する。
尚、ステップＳ６０２、又はステップ６０３で獲得した動作設定は、メモリ１１３内に記憶されておいてもよい。
【００４８】
次に、ステップＳ６０４において、マイクロコンピュータ１２６は、ステップＳ６０２、又はステップＳ６０３で獲得した動作設定から、デジタルカメラ１００が所望する「データの入出力速度」を算出する。例えば、静止画撮影時で、画像の解像度がＡ×Ｂであり、ビット深度がＣであり、チャネル数がＤであり、画像ファイルの圧縮率がＥであり、連写枚数がＦだとする。この場合、単位時間当たりのデータ量は、Ａ×Ｂ×Ｃ×Ｄ×Ｅ×Ｆとなる。したがって、デジタルカメラ１００が所望する「データの入出力速度」は、Ａ×Ｂ×Ｃ×Ｄ×Ｅ×Ｆであると見積もられる。本実施形態では、このようにして、データの入出力速度の要求値が導出される。
【００４９】
尚、この例では、デジタルカメラ１００の動作設定として、解像度、ビット深度、チャネル数、画像ファイルの圧縮率、連写枚数の５つのパラメータを使用している。しかしながら、デジタルカメラ１００の動作設定は、これらのパラメータに限定されるものではなく、これらのパラメータとは別のパラメータを用いてもよい。また、これらのパラメータよりも多くのパラメータを用いて、デジタルカメラ１００が所望する「データの入出力速度」を算出してもよい。これとは逆に、これらのパラメータよりも少ないパラメータを用いて、デジタルカメラ１００が所望する「データの入出力速度」を算出してもよい。
【００５０】
さらに、マイクロコンピュータ１２６は、要求記憶処理を行うことができる。要求記憶処理では、デジタルカメラ１００が所望する「データの入出力速度」を算出した後、その値を固定値として、その値が得られたときの動作設定と対応付けてメモリ１１３又は不揮発性メモリ１１９に記憶する。これにより、マイクロコンピュータ１２６は、同じ動作設定をした際に、メモリ１１３又は不揮発性メモリ１１９に記憶した値を参照することができる。これにより、デジタルカメラ１００が所望する「データの入出力速度」を算出する手間を省くことができる。
【００５１】
以上の図６の入出力速度見積もりルーチンによる処理が終了すると、図２のフローチャートに戻る。図２のステップＳ２０３において、マイクロコンピュータ１２６は、ステップＳ２０２（図６）で見積もった「デジタルカメラ１００が所望する『データの入出力速度』」以上の速度で、記憶媒体１５０に対するデータの入出力を実現できるか否かを判断する。この判断は、ステップＳ２０１で得られた入出力速度特性（図５を参照）を基にして行われる。尚、以下の説明では、ステップ２０２（図６）で見積もった「デジタルカメラ１００が所望する『データの入出力速度』」を必要に応じて「見積もり入出力速度」と称する。
【００５２】
この判断の結果、見積もり入出力速度以上の速度で、記憶媒体１５０に対するデータの入出力を実現できる場合（ステップＳ２０３でＹＥＳの場合）には、ステップＳ２０４に進む。ステップＳ２０４に進むと、マイクロコンピュータ１２６は、見積もり入出力速度以上の速度に対応する入出力バスクロック周波数をクロック周波数制御部１２３ａに設定する。
ここで、見積もり入出力速度以上の速度に対応する入出力バスクロック周波数のうち、できるだけ低い周波数のものを選択することが好ましい。デジタルカメラ１００における無駄な電力消費を低減することができるからである。
【００５３】
一方、この判断の結果、見積もり入出力速度以上の速度で、記憶媒体１５０に対するデータの入出力を実現できない場合（ステップＳ２０３でＮＯの場合）には、ステップＳ２０５に進む。ステップＳ２０５に進むと、マイクロコンピュータ１２６は、できるだけ高い入出力速度を実現できる入出力バスクロック周波数をクロック周波数制御部１２３ａに設定する。
尚、見積もり入出力速度が、記憶媒体１５０に対する最大の入出力速度よりも速い場合、記憶媒体１５０では、見積もり入出力速度でデータの入出力を実現できないことを、例えば表示部１１０を用いてユーザに通知しても良い。
【００５４】
図７は、入出力速度特性の一例をグラフで示す図である。
図７に示す例では、マイクロコンピュータ１２６は、クロック周波数制御部１２３ａに入出力バスクロック周波数としてａ［ＭＨｚ］、ｂ［ＭＨｚ］、ｃ［ＭＨｚ］、ｄ［ＭＨｚ］（ａ＜ｂ＜ｃ＜ｄ）の４つを設定することができる。また、図７に示す見積もり入出力速度Ｘ［ＭＢ／ｓｅｃ］、および見積もり入出力速度Ｙ［ＭＢ／ｓｅｃ］は、図６に示した入出力速度見積もりルーチンで得られる見積もり入出力速度の一例である。
【００５５】
見積もり入出力速度Ｘ［ＭＢ／ｓｅｃ］は、入出力バスクロック周波数ａ［ＭＨｚ］でのデータ入出力速度Ｈ（ａ）［ＭＢ／ｓｅｃ］よりも速く、入出力バスクロック周波数ｂ［ＭＨｚ］でのデータ入出力速度Ｈ（ｂ）［ＭＢ／ｓｅｃ］よりも遅い。この場合、入出力バスクロック周波数ｂ［ＭＨｚ］で記憶媒体１５０に対するデータの入出力を行えば、デジタルカメラ１００が所望する「データの入出力速度」で記憶媒体１５０に対するデータの入出力を実現することができる。しかも、できるだけ低い入出力バスクロック周波数を選択することができる。そのため、マイクロコンピュータ１２６は、入出力バスクロック周波数ｂ［ＭＨｚ］をクロック周波数制御部１２３ａに設定する。
【００５６】
見積もり入出力速度Ｙ［ＭＢ／ｓｅｃ］は、入出力バスクロック周波数ｂ［ＭＨｚ］でのデータ入出力速度Ｈ（ｂ）［ＭＢ／ｓｅｃ］よりも速く、入出力バスクロック周波数ｃ［ＭＨｚ］でのデータ入出力速度Ｈ（ｃ）［ＭＢ／ｓｅｃ］よりも遅い。この場合、入出力バスクロック周波数ｃ［ＭＨｚ］で記憶媒体１５０に対するデータの入出力を行えば、デジタルカメラ１００が所望する「データの入出力速度」を実現することができる。しかも、できるだけ低い入出力バスクロック周波数を選択することができる。そのため、マイクロコンピュータ１２６は、入出力バスクロック周波数ｃ［ＭＨｚ］をクロック周波数制御部１２３ａに設定する。
【００５７】
見積もり入出力速度Ｚ［ＭＢ／ｓｅｃ］は、入出力バスクロック周波数ｄ［ＭＨｚ］でのデータ入出力速度Ｈ（ｄ）［ＭＢ／ｓｅｃ］よりも速く、このデータ入出力速度Ｈ（ｄ）［ＭＢ／ｓｅｃ］よりも速いデータ入出力速度はない。この場合、入出力バスクロック周波数ｄ［ＭＨｚ］で記憶媒体１５０に対するデータの入出力を行えば、デジタルカメラ１００が所望する「データの入出力速度」を実現することはできない。しかしながら、出来るだけ速い入出力バスクロック周波数を選択することができる。そのため、マイクロコンピュータ１２６は、入出力バスクロック周波数ｄ［ＭＨｚ］をクロック周波数制御部１２３ａに設定する。
【００５８】
以上のようにして入出力バスクロック周波数を設定すると、図２のステップＳ２０６に進む。ステップＳ２０６に進むと、マイクロコンピュータ１２６は、デジタルカメラ１００の内部情報に変更があるか否かを判断する。ここでは、マイクロコンピュータ１２６は、図６を参照しながら説明した動作設定（ステップＳ６０２又はＳ６０３で獲得した動作設定）に変更があるか否かを判断する。尚、マイクロコンピュータ１２６は、不揮発性メモリ１１９又はメモリ１１３の記憶領域を繰り返し確認することで、動作設定の変更を検出することができる。また、マイクロコンピュータ１２６は、例えば、メニュー操作スイッチ１２１等から、割り込みハンドラ等を介して、通知を受け取ることで、動作設定の変更を検出することもできる。
【００５９】
この判断の結果、ステップＳ６０２又はＳ６０３で獲得した動作設定の変更がある場合（ステップＳ２０６でＹＥＳの場合）には、ステップＳ２０２に戻り、変更後の動作設定に基づいて、ステップＳ２０２以降の処理を再度行う。
一方、ステップ６０２又は６０３で獲得した動作設定の変更がない場合（ステップＳ２０６でＮＯの場合）には、ステップＳ２０７に進む。ステップ２０７に進むと、マイクロコンピュータ１２６は、入出力バスクロック周波数決定ルーチンを終了するか否かを判断する。尚、入出力バスクロック周波数決定ルーチンを終了するか否かの判断は、例えば、ユーザの設定に基づいて行ったり、不揮発性メモリ１１９に記憶されているコンピュータプログラムの内容に基づいて行ったりすることができる。
この判断の結果、入出力バスクロック周波数決定ルーチンを終了する場合（ステップＳ２０７でＹＥＳの場合）には、図２のフローチャートによる処理を終了する。一方、入出力バスクロック周波数決定ルーチンを終了しない場合（ステップＳ２０７でＮＯの場合）には、動作設定の変更を確認するステップＳ２０６の処理に戻る。
【００６０】
以上のように本実施形態では、デジタルカメラ１００と記憶媒体１５０との間の入出力バスの動作周波数である入出力バスクロック周波数を、記憶媒体１５０の入出力速度特性とデジタルカメラ１００の内部情報（動作設定等）とに応じて制御する。したがって、デジタルカメラ１００に装着された記憶媒体１５０の入出力速度特性に応じて、記憶媒体１５０に対するデータ入出力速度を調整することができる。
【００６１】
本実施形態では、入出力バスクロック周波数に対するデータ入出力速度の実測値を得て、記憶媒体１５０の入出力速度特性を求めておく（図５、図７を参照）。そして、デジタルカメラ１００が所望する「データの入出力速度」の見積もり値と、入出力バスクロック周波数に対するデータ入出力速度の実測値とを比較し、比較した結果に基づいて、入出力バスクロック周波数を決定する。
具体的に説明すると、デジタルカメラ１００が所望する「データの入出力速度」の見積もり値以上の速度で、記憶媒体１５０に対するデータの入出力を実現できる場合には、次のようにして入出力バスクロック周波数を決定する。すなわち、デジタルカメラ１００が所望する「データの入出力速度」の見積もり値以上の速度の実績値に対応する入出力バスクロック周波数のうち、最も低い速度に対応する入出力バスクロック周波数を、入出力速度特性から取得して採用する。よって、デジタルカメラ１００が所望する「データの入出力速度」で記憶媒体１５０に対してデータの入出力を行いつつ、デジタルカメラ１００の無駄な電力消費を低減することができる。
【００６２】
一方、デジタルカメラ１００が所望する「データの入出力速度」の見積もり値以上の速度で、記憶媒体１５０に対するデータの入出力を実現できない場合には、次のようにして入出力バスクロック周波数を決定する。すなわち、最速の速度の実績値に対応する入出力バスクロック周波数を、入出力速度特性から取得して採用する。よって、デジタルカメラ１００が所望する「データの入出力速度」に出来るだけ近い速度で、記憶媒体１５０に対してデータの入出力を行うことができる。
【００６３】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。第１の実施形態では、基本的には、デジタルカメラ１００（記録装置）で使用する記憶媒体１５０を変える度に入出力速度特性を実測する。このため、実際の入出力速度特性を得るのに時間がかかる。そこで、本実施形態では、実測した入出力速度特性を不揮発性メモリ１１９にテーブルとして保持する実測記憶処理を行い、必要がある場合のみ、記憶媒体１５０の入出力速度特性を実測する。このように本実施形態と第１の実施形態とは、入出力速度特性を得るための構成及び処理の一部が主として異なる。よって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図７に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００６４】
図８は、入出力バスのクロック周波数を決定する入出力バスクロック周波数決定ルーチンの一例を説明するフローチャートである。
ステップＳ８０４〜Ｓ８１０の処理は、図２のステップＳ２０１〜Ｓ２０７の処理と同様であるため、その詳細な説明を省略する。尚、本ルーチンは、マイクロコンピュータ１２６が、不揮発性メモリ１１９内のコンピュータプログラムを実行することにより実現される。
【００６５】
ステップＳ８０１において、マイクロコンピュータ１２６は、記憶媒体制御部１２３を介して、記憶媒体１５０の個体識別情報を獲得し、メモリ１１３に書き込む。ここで、個体識別情報とは、記憶媒体１５０を識別する情報を指す。個体識別情報は、例えば、製造元名、製品バージョン、及び製品シリアル番号を含む情報である。ただし、個体識別情報は、これらに限定されるものではない。
【００６６】
不揮発性メモリ１１９には、クロック周波数に対するデータ入出力速度（入出力速度特性）が、記憶媒体１５０の個体識別情報毎に予め記憶されている。以下、この記憶されているデータのテーブルを、必要に応じて「記憶媒体クロック特性テーブル」と称する。
【００６７】
次に、ステップＳ８０２において、マイクロコンピュータ１２６は、メモリ１１３に書き込んだ記憶媒体１５０の個体識別情報で識別される記憶媒体１５０の情報が、記憶媒体クロック特性テーブルにあるか否かを判断する。この判断の結果、記憶媒体クロック特性テーブルに、当該個体識別情報で識別される記憶媒体１５０の情報がある場合（ステップＳ８０２でＹＥＳの場合）には、ステップＳ８０３に進む。
ステップＳ８０３に進むと、マイクロコンピュータ１２６は、記憶媒体クロック特性テーブルから、その個体識別情報に対応する入出力速度特性を獲得する。
【００６８】
一方、記憶媒体クロック特性テーブルに、当該個体識別情報で識別される記憶媒体１５０の情報がない場合には、ステップＳ８０４に進む。ステップＳ８０４に進むと、マイクロコンピュータ１２６は、入出力速度特性実測ルーチンを実行する。入出力速度特性実測ルーチンの詳細の一例は、図３に示した通りである。入出力速度特性実測ルーチンにより、記憶媒体１５０の入出力速度特性が実測される。
【００６９】
図９は、不揮発性メモリ１１９又はメモリ１１３に記憶されている記憶媒体クロック特性テーブルの一例を示す図である。
図９に示す例では、記憶媒体クロック特性テーブルには、記憶媒体１５０の個体識別情報と、記憶媒体１５０の最終使用日と、クロック周波数制御部１２３ａが出力できるクロック周波数に対するデータの入出力速度とが含まれる。
また、図９に示す例では、記憶媒体１５０の個体識別情報には、以下の情報が含まれる。まず、製造元ＩＤ（Ｍａｎｕｆａｃｔｕｒｅ  ＩＤ：以下「ＭＩＤ」と称する）と、製品名（Ｐｒｏｄｕｃｔ  ｎａｍｅ：以下「ＰＮＭ」と称する）が記憶媒体１５０の個体識別情報に含まれる。さらに、製品バージョン（Ｐｒｏｄｕｃｔ  ｒｅｖｉｓｉｏｎ：以下「ＰＲＶ」と称する）と、製品シリアル番号（Ｐｒｏｄｕｃｔ  ｓｅｒｉａｌ  ｎｕｍｂｅｒ：以下「ＰＳＮ」と称する）も記憶媒体１５０の個体識別情報に含まれる。ここで、図９の記憶媒体クロック特性テーブルの２行目、３行目のＰＳＮの値である「＊」は、特に値を指定しないことを意味している。また、図９の記憶媒体クロック特性テーブルの２行目、３行目のデータ入出力速度である「未対応」は、記憶媒体１５０が対応していない入出力バスクロック周波数であることを表す。
【００７０】
記憶媒体１５０の個体識別情報の内容は、記憶媒体１５０の種別等により異なるが、本実施形態では、記憶媒体１５０から読み取れる記憶媒体に固有の情報を記憶媒体１５０の個体識別情報として利用する。例えば、記憶媒体１５０の個体識別情報として、記憶媒体１５０のレジスタから、ＭＩＤとして「１」、ＰＮＭとして「ＳＤＹＹ」、ＰＲＶとして「ＹＹ」、ＰＳＮとして「０ｘ０２９３Ａ０Ｆ１」が読み出されるとする。これらの情報からなる記憶媒体１５０の個体識別情報は、図９の記憶媒体クロック特性テーブルの２行目の個体識別情報に一致する。よって、ステップＳ８０３において、マイクロコンピュータ１２６は、図９の記憶媒体クロック特性テーブルの２行目のデータ入出力速度（入出力速度特性）を獲得することになる。
【００７１】
ここで、検索する際のキーとして、記憶媒体クロック特性テーブルに含まれている個体識別情報の全てを使用しなくてもよい。例えば、記憶媒体１５０の個体識別情報として、記憶媒体１５０のレジスタから読み出した「ＭＩＤ及びＰＮＭ」が記憶媒体クロック特性テーブルの「ＭＩＤ及びＰＮＭ」と一致しているとする。この場合、マイクロコンピュータ１２６は、その他の個体識別情報を参照せずに、記憶媒体１５０の個体識別情報が、当該記憶媒体クロック特性テーブルの個体識別情報に該当しているとみなしてもよい。
【００７２】
ステップＳ８１１〜Ｓ８１４は、記憶媒体クロック特性テーブルをメンテナンスするルーチンである。
まず、ステップＳ８１１において、マイクロコンピュータ１２６は、不揮発性メモリ１１９に保存される記憶媒体クロック特性テーブルのサイズを取得する。記憶媒体クロック特性テーブルのサイズとは、記憶媒体クロック特性テーブルに格納されている記憶媒体１５０の数をいう。図９に示す例では、記憶媒体クロック特性テーブルには、３つの記憶媒体１５０の情報が格納されているため、記憶媒体クロック特性テーブルのサイズは「３」となる。
【００７３】
次に、ステップＳ８１２において、マイクロコンピュータ１２６は、ステップＳ８１１で取得した記憶媒体クロック特性テーブルのサイズが、不揮発性メモリ１１９に保持される閾値以下であるか否かを判断する。ここでいう閾値は、デジタルカメラ１００に予め設定される値でも良いし、ユーザによって決定される値でも良い。
【００７４】
この判断の結果、記憶媒体クロック特性テーブルに保存されている記憶媒体の数が閾値よりも多い場合（ステップＳ８１２でＮＯの場合）には、ステップＳ８１３に進む。ステップＳ８１３に進むと、マイクロコンピュータ１２６は、記憶媒体クロック特性テーブルから、最終使用日が最も古いレコード（記憶媒体１５０の個体識別情報、使用履歴、及びデータ入出力速度の情報）を削除する。そして、ステップＳ８１４に進む。
図９に示す例では、記憶媒体クロック特性テーブルの３行目のデータ（最終使用日が１９ＺＺ／ＺＺ／ＺＺのデータ）が最も古いデータとなる。このため、３行目のレコード（データ）が、記憶媒体クロック特性テーブルより削除される。
【００７５】
尚、図９に示す例では、記憶媒体クロック特性テーブルに最終使用日の情報を格納している。しかしながら、これ以外の情報を記憶媒体クロック特性テーブルに格納し、その情報を基に記憶媒体クロック特性テーブルをメンテナンスしてもよい。さらに、記憶媒体クロック特性テーブルに、記憶媒体１５０の個体識別情報と、データ入出力速度（入出力速度特性）のみを格納し、別の方法を用いて記憶媒体クロック特性テーブルをメンテナンスしてもよい。
【００７６】
一方、ステップＳ８１２の判断の結果、記憶媒体クロック特性テーブルに保存されている記憶媒体の数が閾値以下である場合（ステップＳ８１２でＹＥＳの場合）には、ステップＳ８１３の処理を行わずに、ステップＳ８１４に進む。
ステップＳ８１４に進むと、マイクロコンピュータ１２６は、不揮発性メモリ１１９に記憶されている記憶媒体クロック特性テーブルに、ステップＳ８０４で実測した「記憶媒体１５０の入出力速度特性」を追加する。具体的には、マイクロコンピュータ１２６は、メモリ１１３に記憶されている「『記憶媒体１５０の入出力速度特性』のデータと、記憶媒体１５０の個体識別情報」を不揮発性メモリ１１９に記憶されている記憶媒体クロック特性テーブルにコピーする。
【００７７】
以上のように本実施形態では、記憶媒体１５０の個体識別情報と、クロック周波数制御部１２３ａが出力できるクロック周波数に対するデータの入出力速度とを含む記憶媒体クロック特性テーブルを入出力速度特性の実測値に基づき作成する。したがって、デジタルカメラ１００に装着された記憶媒体１５０の個体識別情報が記憶媒体クロック特性テーブルに記憶されている場合には、記憶媒体１５０の入出力速度特性を、改めて実測することなく得ることができる。そして、得られた入出力速度特性と見積もり入出力速度とを用いて、入出力バスクロック周波数を決定することができる。よって、デジタルカメラ１００における無駄な消費電力をより一層低減することができる。
【００７８】
（制御プログラム）
図１０は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）のシーケンス図を用いて、第１の実施形態の制御プログラムの一例を説明する図である。
【００７９】
図１０において、メイン部１０００は、制御プログラムの本体モジュールである。タイマ制御ドライバ１００１は、タイマ制御部１６０を制御するデバイスドライバである。記憶媒体制御ドライバ１００２は、記憶媒体制御部１２３を制御するデバイスドライバである。入出力バスクロック制御ドライバ１００３は、クロック周波数制御部１２３ａを制御するデバイスドライバである。メニュー操作スイッチ制御ドライバ１００４は、メニュー操作スイッチ１２１を制御するデバイスドライバである。速度算出プログラム１００５は、デジタルカメラ１００の所望する「データの入出力速度」を、デジタルカメラ１００の動作設定を基に算出するプログラムである。周波数選択プログラム１００６は、デジタルカメラ１００の所望する「データの入出力速度」を引数として、記憶媒体１５０の入出力速度特性から、対応する入出力バスクロック周波数を選択するプログラムである。
【００８０】
まず、ステップＳ１０１０において、メイン部１０００は、入出力バスクロック制御ドライバ１００３に対して、クロック周波数制御部１２３ａが設定できるクロック周波数の取得を要求する。以下の説明では、クロック周波数制御部１２３ａが設定できるクロック周波数を必要に応じて「設定可能クロック周波数」と称する。
この要求を受けると、入出力バスクロック制御ドライバ１００３は、ステップＳ１０１０ａにおいて、不揮発性メモリ１１９等から設定可能クロック周波数を読み出す。
次に、ステップＳ１０１１において、入出力バスクロック制御ドライバ１００３は、メイン部１０００に対し、設定可能クロック周波数のリストを返す。以下の説明では、設定可能クロック周波数のリストを、必要に応じて「設定可能クロック周波数リスト」と称する。
【００８１】
次に、ステップＳ１０１２において、メイン部１０００は、設定可能クロック周波数リストからクロック周波数を１つ取り出す。そして、メイン部１０００は、取り出したクロック周波数に入出力バスクロック周波数を変更するよう、入出力バスクロック制御ドライバ１００３に対して要求を出す。
この要求を受けると、入出力バスクロック制御ドライバ１００３は、ステップ１０１２ａにおいて、クロック周波数制御部１２３ｂに、新たなクロック周波数を設定して、発生するクロック周波数を変更する。
【００８２】
ステップＳ１０１３〜Ｓ１０１９は、記憶媒体１５０へのデータの出力速度を実測するシーケンスである。
まず、ステップＳ１０１３において、メイン部１０００は、タイマ制御ドライバ１００１に対して、時間の計測開始を要求する。この要求を受けると、タイマ制御ドライバ１００１は、ステップ１０１３ａにおいて、タイマ制御部１６０を制御して、時間計測機能を起動する。
【００８３】
次に、ステップＳ１０１４において、メイン部１０００は、記憶媒体制御ドライバ１００２に対し、記憶媒体１５０へのデータの出力開始を要求する。
この要求を受けると、記憶媒体制御ドライバ１００２は、ステップＳ１０１４ａにおいて、記憶媒体１５０へのデータの出力を開始する。そして、記憶媒体１５０へのデータの出力が完了すると、ステップＳ１０１５において、記憶媒体制御ドライバ１００２は、割り込みハンドラ等を介して、メイン部１０００にデータの出力完了を通知する。
【００８４】
このデータの出力完了の通知を受けると、メイン部１０００は、ステップＳ１０１６において、タイマ制御ドライバ１００１に対し、時間の計測終了を要求する。この要求を受けると、タイマ制御ドライバ１００１は、ステップＳ１０１６ａにおいて、タイマ制御部１６０を制御して、時間計測機能を停止する。
さらに、ステップＳ１０１７において、メイン部１０００は、タイマ制御ドライバ１００１に対し、データの出力期間中に実測した時間の計測値の取得を要求する。
【００８５】
この要求を受けると、タイマ制御ドライバ１００１は、ステップＳ１０１７ａにおいて、タイマ制御部１６０のレジスタを参照する等して、実測した時間の計測値を取得する。そして、ステップ１０１８において、タイマ制御ドライバ１００１は、メイン部１０００に対し計測値を返信する。
次に、ステップＳ１０１９において、メイン部１０００は、取得した計測値と、出力したデータのサイズとに基づいて、記憶媒体１５０へのデータの出力速度を算出する。
【００８６】
ステップＳ１０２０〜Ｓ１０２６は、記憶媒体１５０からのデータの入力速度を実測するシーケンスである。
まず、ステップ１０２０において、メイン部１０００は、タイマ制御ドライバ１００１に対して、時間の計測開始を要求する。この要求を受けると、タイマ制御ドライバ１００１は、ステップＳ１０２０ａにおいて、タイマ制御部１６０を制御して、時間計測機能を起動する。
【００８７】
次に、ステップＳ１０２１において、メイン部１０００は、記憶媒体制御ドライバ１００２に対し、記憶媒体１５０からのデータの入力開始を要求する。
この要求を受けると、記憶媒体制御ドライバ１００２は、ステップＳ１０２１ａにおいて、記憶媒体１５０からのデータの入力を開始する。そして、記憶媒体１５０からのデータの入力が完了すると、記憶媒体制御ドライバ１００２は、ステップＳ１０２２において、割り込みハンドラ等を介して、メイン部１０００にデータの入力完了を通知する。
【００８８】
このデータ入力完了通知を受けると、メイン部１０００は、ステップＳ１０２３において、タイマ制御ドライバ１００１に対し、時間の計測終了を要求する。この要求を受けると、タイマ制御ドライバ１００１は、ステップＳ１０２３ａにおいて、タイマ制御部１６０を制御して、時間計測機能を停止する。
さらに、ステップＳ１０２４において、メイン部１０００は、タイマ制御ドライバ１００１に対し、データの入力期間中に実測した時間の計測値の取得を要求する。
【００８９】
この要求を受けると、タイマ制御ドライバ１００１は、ステップＳ１０２４ａにおいて、タイマ制御部１６０のレジスタを参照する等して、実測した時間の計測値を取得する。そして、ステップＳ１０２５において、タイマ制御ドライバ１００１は、メイン部１０００に対し計測値を返信する。
次に、ステップＳ１０２６において、メイン部１０００は、取得した計測値と、入力したデータのサイズとに基づいて、記憶媒体１５０からのデータの入力速度を算出する。
【００９０】
次に、ステップＳ１０２７において、メイン部１０００は、設定可能クロック周波数リストに、転送速度が未測定のクロック周波数があるか否かを判断する。この判断の結果、設定可能クロック周波数リストに、転送速度が未測定のクロック周波数がある場合には、ステップＳ１０１２に戻る。そして、設定可能クロック周波数リストに、転送速度が未測定のクロック周波数がなくなるまでステップＳ１０１２〜Ｓ１０２６の一連のシーケンスを繰り返す。
【００９１】
ステップＳ１０４０〜Ｓ１０４６ａは、デジタルカメラ１００の内部情報に基づいて、入出力バスクロック周波数を決定するシーケンスである。ここでは、デジタルカメラ１００の動作設定に基づいて、入出力バスクロック周波数を決定する場合を例に挙げて説明する。
まず、ステップＳ１０４０において、メイン部１０００は、デジタルカメラ１００の動作設定の取得をメニュー操作スイッチ制御ドライバ１００４に要求する。
この要求を受けると、メニュー操作スイッチ制御ドライバ１００４は、ステップ１０４０ａにおいて、不揮発性メモリ１１９等から、デジタルカメラ１００の動作設定を読み出す。そして、ステップＳ１０４１において、メニュー操作スイッチ制御ドライバ１００４は、読み出した動作設定を、メイン部１０００に返信する。
【００９２】
次に、ステップＳ１０４２において、メイン部１０００は、デジタルカメラ１００の動作設定から、デジタルカメラ１００が所望する「データの入出力速度」を見積もるため、速度算出プログラム１００５を起動し、入出力速度の見積もりを要求する。
この要求を受けると、速度算出プログラム１００５は、ステップＳ１０４２ａにおいて、デジタルカメラ１００の動作設定から、見積もり入出力速度を算出する。この見積もり入出力速度の算出方法は、図６のステップＳ７０４で説明したため、ここでは、その詳細な説明を省略する。
次に、ステップ１０４３において、速度算出プログラム１００５は、見積もり入出力速度をメイン部１０００へ返信する。
【００９３】
その後、ステップＳ１０４４において、メイン部１０００は、見積もり入出力速度から、入出力バスクロック周波数を選択するために、周波数選択プログラム１００６を起動し、クロック周波数の選択を要求する。
この要求を受けると、周波数選択プログラム１００６は、ステップＳ１０４４ａにおいて、見積もり入出力速度と、記憶媒体１５０の入出力速度特性とに基づいて、入出力バスクロック周波数を選択する。この選択方法は、図７を参照しながら説明したので、ここでは、その詳細な説明を省略する。
次に、ステップＳ１０４５において、周波数選択プログラム１００６は、選択した入出力バスクロック周波数をメイン部１０００へ返信する。
【００９４】
次に、ステップＳ１０４６において、メイン部１０００は、ステップ１０４５で取得したクロック周波数に入出力バスクロック周波数を変更するよう、入出力バスクロック制御ドライバ１００３に対して要求を出す。
この要求を受けると、入出力バスクロック制御ドライバ１００３は、ステップ１０４６ａにおいて、クロック周波数制御部１２３ａに新たなクロック周波数の値を設定して、入出力バスクロック周波数を変更する。
【００９５】
再度、デジタルカメラ１００の動作設定が変更された際には、ステップＳ１０３０において、メニュー操作スイッチ制御ドライバ１００４は、割り込みハンドラ等を介して、メイン部１０００に、デジタルカメラ１００の動作設定に変更があったことを通知する。この通知を受けたメイン部１０００は、ステップＳ１０４０〜Ｓ１０４６ａの一連のシーケンスを再度実行する。
【００９６】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００９７】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【００９８】
１００  デジタルカメラ、１２３  記憶媒体制御部、１５０  記憶媒体
【図１】
2013025629.tif 000003
【図２】
2013025629.tif 000004
【図３】
2013025629.tif 000005
【図４】
2013025629.tif 000006
【図５】
2013025629.tif 000007
【図６】
2013025629.tif 000008
【図７】
2013025629.tif 000009
【図８】
2013025629.tif 000010
【図９】
2013025629.tif 000011
【図１０】
2013025629.tif 000012