(57)【特許請求の範囲】
【請求項１】
新しいソフトウェア機能を含む着脱式メモリデバイスを支援する電子撮像装置において、ホットマウント／アンマウントコードを用いて前記着脱式メモリデバイスから得られた機能情報をメニュー構成コードに提供することによって、再ブートをせずにソフトウェア機能を動的に更新するシステムであって、該電子撮像装置のメモリ中に格納され、該電子撮像装置内のデータプロセッサ上で動作するプログラムによって読み書きされる動的メニュー編成データ構造であって、同データ構造がメニュー位置情報保存領域およびコード位置情報保存領域を有し、前記着脱式メモリデバイスから得られた機能情報を前記メニュー構成コードに提供するホットマウント／アンマウントコードをさらに備え、該機能情報が、メニュー位置情報およびコード位置情報を有することと、前記着脱式メモリデバイス上の前記新しいソフトウェア機能を検出することに応答して、前記動的メニュー編成データ構造を動的に更新するメニュー構成コードと、を備え、前記新しいソフトウェア機能をメニューに表示し、選択することが可能であり、それにより前記電子撮像装置のソフトウェア機能を更新するシステム。
【請求項２】
前記データプロセッサ上で動作するプログラムによって読み書きされる動的メニュー編成データ構造の中のメニュー位置情報が、既存のメニューの位置情報を含む請求項１に記載のシステム。
【請求項３】
前記機能情報の中のメニュー位置情報が新しいソフトウェア機能に応答して確立された新しいメニューの位置情報を含む請求項１に記載のシステム。
【請求項４】
着脱式メモリデバイスを支援する電子撮像装置において、ホットマウント／アンマウントコードを用いて前記着脱式メモリデバイスから得られた機能情報をメニュー構成コードに提供することによって、再ブートをせずにソフトウェア機能を動的に更新する方法であって、前記電子撮像装置の中のメモリに格納されている動的メニュー編成データ構造を、電子撮像装置内のプロセッサ上で実行されるプログラムによって読み書きする工程であって、該動的メニュー編成データ構造がメニュー位置情報保存領域およびコード位置情報保存領域を有し、ホットマウント／アンマウントコードを利用することによって、前記着脱式メモリデバイスから得られた機能情報を前記メニュー構成コードに供給する工程であって、該機能情報が、メニュー位置情報およびコード位置情報を有することと、ソフトウェアの機能に関連する情報を編成する工程と、メニュー構成コードにより前記動
的メニュー編成データ構造を更新する工程とから成る方法。
【請求項５】
前記データプロセッサ上で動作するプログラムによって読み書きされる動的メニュー編成データ構造の中のメニュー位置情報が既存のメニューの位置情報を含む請求項４に記載の方法。
【請求項６】
前記機能情報の中のメニュー位置情報が新しいソフトウェアの機能に応答して確立された新しいメニューに位置情報を含む請求項４に記載の方法。
【請求項７】
前記着脱式メモリデバイスが前記電子撮像装置に挿入されるかあるいは前記電子撮像装置から取り出された場合に前記ホットマウント／アンマウントコードに信号を送るディスクドライバを更に備える請求項１に記載のシステム。
【請求項８】
機能情報の提供が、電子撮像装置のコンピュータが着脱式メモリ上の機能項目をホットマウント／アンマウントコードによってリスト形式にした、ディスクファイルリストの作成を含む請求項１に記載のシステム。
【請求項９】
前記動的メニュー編成データ構造に列挙されたメニュー項目を表示するためのメニュー・ダイアログ管理プログラムをさらに備える請求項１に記載のシステム。
【請求項１０】
前記メニュー・ダイアログ管理プログラムが前記ソフトウェア機能を開始する請求項９に記載のシステム。
【請求項１１】
前記動的メニュー編成データ構造がデフォルトメニュー編成データ構造により最初にロードされる請求項１０に記載のシステム。
【請求項１２】
前記電子装置がデジタルカメラである請求項１１に記載のシステム。
【発明の詳細な説明】
【０００１】
発明の背景
本発明は一般に電子画像装置に関し、より具体的には、電子画像装置においてソフトウェアにより駆動される機能を動的に更新するシステムおよび方法に関する。
【０００２】
最近のデジタルカメラは画像捕捉能力だけでなく、画像保存能力および操作能力も提供する。かつては外部のコンピュータ・ワークステーションで実行されていた高性能のソフトウェアツールが、現在ではデジタルカメラ自体の内部で実行可能である。しかし、デジタルカメラの小型化により、深刻なデータメモリ不足という問題が生じる。デジタルカメラは通常ラップトップコンピュータや個人向けデジタル支援ツールより小型であるが、画像操作はデジタル処理のうち最もメモリを要する形態の一つである。現在のメモリ技術では、一般ユーザの希望するソフトウェアのすべてを同時に保存するのに充分なメモリを通常のデジタルカメラに備えることは不可能である。さらに、特定のデジタルカメラを消費者が購入した後で、新しくてより良いソフトが開発されることがある。デジタルカメラが消費者に販売された後では、アプリケーションソフトを更新することは困難であり得る。
【０００３】
この問題に対処する方法の１つとして、フロッピーディスクや不揮発性半導体メモリカード等の着脱式メモリデバイスの使用が挙げられる。ユーザは、任意の状況で各ユーザのニーズに合った１組の着脱式メモリデバイスを選択し、任意の着脱式デバイスのソフトウェアの機能が必要になった時にそのメモリデバイスをデジタルカメラに挿入すればよい。この例が、サルバディカリ（Ｓａｒｂａｄｈｉｋａｒｉ）らの米国特許第５，４７７，２６４号に開示されている。サルバディカリ（Ｓａｒｂａｄｈｉｋａｒｉ）は、着脱式メモリカードを使用して、新しいアプリケーションプログラムおよびアルゴリズムをインポートすることについて説明している。サルバディカリが教示しているのはデジタルカメラ内にすでに存在するＲＡＭにアプリケーションのプログラムをロードすることである、と認識することが重要である。この場合、システムの再ブートが必要になるだけでなく、新しいソフトウェアを保存するための充分なＲＡＭが存在しなければならない。
【０００４】
コンピュータの使用中にフロッピーディスクをコンピュータに挿入することができ、コンピュータのオペレーションシステムがそのフロッピーディスク上のファイルを認識することはよく知られている。さらに最近に開発されたのは、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）によって公表された仕様に合わせて製造されたもののような「ホットマウント」回路カードである。ここでは、ホットマウントとは、電源が入れられた動作中のコンピュータのバスコネクタにカードを安全に挿入し得る特性のことを指す。ホットマウント回路カードは、コンピュータのオペレーティングシステムによっても認識可能である。
【０００５】
しかしながら、着脱式メモリデバイスでできることが現在は限られている。データは着脱式メモリデバイスを介して入力され、現行のアプリケーションは、このデータを実行することが可能である。アプリケーションプログラムは着脱式メモリデバイスからロードされ、それらのプログラムはコンピュータを再ブートしなくても実行可能である。しかし、アプリケーションプログラムのバージョンを変更したりあるいはモジュール化コードで機能をアプリケーションプログラムに追加したりすると、アプリケーションプログラムおよびオペレーティングシステムを再ブートプロセスにより再初期化しなければならない。グラフィカルユーザインターフェースメニューでアプリケーションプログラムの新しいソフトウェア機能を表示するか新たに更新されたソフトウェアのプログラムを実行するためにオペレーティングシステムの再ブートが必要であることは、現在の技術においてよく知られていることである。
【０００６】
現行のアプリケーションプログラムにモジューラコードを追加するたびに再ブートが必要になると、デジタルカメラで着脱式メモリデバイスを使用する利便性が損なわれてしまう。着脱式メモリデバイスが搭載されて新しいソフトウェアモジュールが使用準備できるたびに、ユーザは進行中の作業とアプリケーションプログラムの設定をすべてセーブし、コンピュータが再ブートを実行している間待機しなければならない。ユーザにとっての高い利便性があるのは、アプリケーションがホットマウントデバイスを利用して、常に再ブートを必要しなくても現在のアプリケーションソフトの機能性を拡張できるシステムである。
【０００７】
したがって、以上のすべての理由により、電子画像装置においてソフトウェアにより駆動される機能を動的に更新するための改良型システムおよび方法が必要である。
【０００８】
発明の要旨
本発明では、電子画像装置においてソフトウェアにより駆動される機能を動的に更新するためのシステムおよび方法を開示する。電子画像装置のユーザは、電子画像装置に内蔵された基本的アプリケーションプログラムでは支援されない種々の機能を使いたいと思う場合がある。本発明において、ユーザは、基本的アプリケーションプログラムを補うために、着脱式メモリデバイスを選択する。次にユーザは着脱式メモリデバイスを電子画像装置の外部コネクタに挿入する。すると電子画像装置のコンピュータは、実行可能なソフトウェア項目を求めて着脱式メモリデバイスを自動的に走査し、必要に応じて種々のメニューでそれらの項目を表示する。次にユーザは、電子画像装置のコンピュータを再ブートしなくても、それらの項目を選択して実行することが可能である。
【０００９】
この機能性を実現するために、電子画像装置のコンピュータは動的に更新可能なデータ構造内にユーザが選択可能な機能のパラメータを保存する。同パラメータは、実行可能コードのメニュー位置情報と入口点を含む。着脱式メモリデバイスの情報が検出されると、協動して機能する特定のユーティリティがデータ構造を更新する。次に、メニュー表示とコードの実行を制御する他のユーティリティが標準データ構造で応答指令信号を送り（ｉｎｔｅｒｒｏ ｇａｔｉｏｎ ）、これにより支援される現在のソフトウェア機能、表示されるべきメニューおよびその入口点の位置が決定される。
【００１０】
ユーザが着脱式メモリデバイスに含まれる機能の使用を終了すると、ユーザは着脱式メモリデバイスを取り出すことができ、その後のオペレータによる介入は不要である。次に、電子画像装置のコンピュータは、着脱式メモリデバイスから追加された実行可能なソフトウェア項目を、適切なメニューから自動的に削除する。
【００１１】
本発明は、任意の電子画像装置における複数の着脱式メモリデバイスの使用も支援する。本発明の別の実施形態において、コンピュータは、１つよりも多くの着脱式メモリデバイスからの実行可能なソフトウェア機能の変更を追跡する。該追跡機能は、たとえば着脱式メモリデバイスの取り出しの際などにすべてではないがいくつかの着脱式メモリデバイスが応答指令信号の送信用に存在しなくなった時、最も重要となる。
【００１２】
このように本発明は、着脱式メモリデバイスと共に使用した場合に、電子画像装置の性能を向上し、電子画像装置を簡単に使用できるようにする。
詳細な説明
本発明は、デジタルカメラを初めとする電子画像装置における改良に関する。以下の説明は、当業者が本発明を製造および使用できるようにするために提示したものであり、特許出願およびその要件の文脈において提供される。好ましい実施形態の種々の修正が当業者にとっては容易に明白となり、本明細書中の一般原則は他の実施形態にも適用可能である。したがって、本発明は図示した実施形態に限られることを意図してはおらず、本明細書に説明した原理および特徴と符号する最も広い範囲を含むものとする。
【００１３】
本発明は、電子画像装置においてソフトウェアで駆動される機能を動的に更新するシステムおよび方法を含む。電子画像装置のユーザは、電子画像装置に内蔵された基本的アプリケーションプログラムに支援されない種々の機能を使いたいと思う場合がある。本発明において、ユーザは、基本的アプリケーションプログラムを補うために、着脱式メモリデバイスを選択する。次にユーザは着脱式メモリデバイスを電子画像装置の外部コネクタに挿入する。すると電子画像装置のコンピュータは、実行可能なソフトウェア項目を求めて着脱式メモリデバイスを自動的に走査し、必要に応じて種々のメニューでそれらの項目を表示する。次にユーザは、電子画像装置のコンピュータを再ブートする必要なく、項目を選択して実行する。ユーザが着脱式メモリデバイスの機能の使用を終了すると、ユーザはその後のオペレータによる介入を不要とせずに、着脱式メモリデバイスを取り出すことが可能である。次に電子画像装置のコンピュータは、着脱式メモリデバイスから追加された実行可能なソフト項目を適切なメニュ−から自動的に削除する。本発明は、任意の電子画像装置における複数の着脱式メモリデバイスの使用も支援する。
【００１４】
図１を参照すると、本発明によるデジタルカメラ１１０のブロック図が示されている。カメラ１１０は好ましくは、画像装置１１４、システムバス１１６、およびコンピュータ１１８を備える。画像装置１１４は、物体１１２に光学的に結合されると共に、システムバス１１６を介してコンピュータ１１８に電気的に接続されている。撮影者が画像装置１１４の焦点を物体１１２に合わせ、キャプチャ・ボタンその他の手段を用いて、カメラ１１０に物体１１２の像を捕らえるよう指示すると、コンピュータ１１８はシステムバス１１６を介して物体１１２を表す生画像データを捕捉するよう画像装置１１４に命令を発する。捉えられた生画像データは、システムバス１１６を介してコンピュータ１１８に転送され、コンピュータ１１８は、画像データに種々の画像処理機能を実行してから、その内部メモリにデータを保存する。画像装置１１４とコンピュータ１１８の間を種々のステ−タスおよび制御信号がさらにシステムバス１１６を通じて流れる。
【００１５】
図２を参照すると、画像装置１１４の１実施形態のブロック図が示される。画像装置１１４は一般に、絞りを有するレンズ２２０、フィルタ２２２、画像センサ２２４、タイミング発生器２２６、アナログ信号プロセッサ（ＡＳＰ）２２８、アナログ・デジタル（Ａ／Ｄ）コンバータ２３０、インターフェース２３２、および１個ないし複数のモータ２３４を備えている。
【００１６】
画像装置１１４は、光路２３６に沿って画像センサ２２４に入射する反射光を介して物体１１２像を捉える。一般に電荷結合素子（ＣＣＤ）である画像センサ２２４は、捉えた画像１１２を表す生データのセットをＣＣＤ形式で生成する。その生画像データは、続いて、ＡＳＰ２２８、Ａ／Ｄコンバータ２３０、およびインターフェース２３２を介して送られる。インターフェース２３２は、ＡＰ２２８、モータ２３４、およびタイミング発生器２３２を制御するための出力部を有する。生画像データは、システムバス１１６を介してインターフェース２３２からコンピュータ１１８に送られる。
【００１７】
図３を参照すると、コンピュータ１１８の１実施形態のブロック図が示される。システムバス１１６により、画像装置１１４、電気的消去可能なプログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）３４１、オプションの電源管理部３４２、中央処理装置（ＣＰＵ）３４４、動的ランダムアクセスメモリ（ＤＲＡＭ）３４６、入力／出力インターフェース（Ｉ／Ｏ）３４８、不揮発性メモリ３５０、および１個ないし複数のバッファ／コネクタ３５２の間に接続パスが提供される。１個ないし複数の着脱式メモリ３５４が、バッファ／コネクタ３５２を介してシステムバス１１６に接続される。
【００１８】
電源管理部３４２は、導線３６６を介して電源３５６と接続し、カメラ１１０の電源管理操作を調節する。ＣＰＵ３４４は通常、カメラ１１０の動作を制御するための従来型の演算装置を有する。好ましい実施形態において、ＣＰＵ３４４は、複数のソフトウェアルーチンを同時に実行し、マルチスレッド環境においてカメラ１１０の種々のプロセスを制御できる。ＤＲＡＭ３４６は動的メモリの隣接ブロックであり、種々の保存機能に選択的に割り当てられる。液晶ディスプレイ（ＬＣＤ）コントローラ３９０はＤＲＡＭ３４６にアクセスし、処理ずみ画像データをＬＣＤ画面３０２に転送し、表示させる。
【００１９】
Ｉ／Ｏ３４８は、コンピュータ１１８との通信を可能にするインターフェースデバイスである。たとえば、Ｉ／Ｏ３４８により、外部ホストコンピュータ（図示せず）がコンピュータ１１８に接続され、コンピュータ１１８との通信が可能となる。Ｉ／Ｏ３４８はまた、ＬＣＤ画面３０２と同様にカメラのユーザインターフェース３０８のハードウェア構成要素である複数個のボタンおよび／ダイアル３０４ならびにオプションのステータスＬＣＤ３０６ともインターフェースで接続する。
【００２０】
不揮発性メモリ３５０は通常、従来の読み取り専用メモリかフラッシュメモリを含み、カメラ１１０の動作を制御するためのコンピュータ読み取り可能プログラム命令のセットを保存する。
【００２１】
着脱式メモリ３５４は、さらなる画像データ保存領域として、またはさらなるプログラムコード保存領域として機能する。着脱式メモリ３５４は好ましくは、バッファ／コネクタ３５２を介してカメラ１１０のユーザによって簡単に着脱可能かつ交換可能な不揮発性デバイスである。この場合、複数の着脱式メモリ３５４を所有するユーザは、一杯になった着脱式メモリ３５４を空の着脱式メモリ３５４と交換し、カメラ１１０の写真撮影容量またはソフトウェア能力を効果的に拡張できる。本発明の好ましい実施形態において、着脱式メモリ３５４は一般に、フラッシュディスクと呼ばれるディスクファイルシステム構造で構築された電子的消去可能なメモリカードを使用して実行される。かかるフラッシュディスクの例としては、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）によって公表された種々の規準に合わせて製造されたものがある。
【００２２】
電源３５６は、カメラ１１０の種々の構成要素に動作電力を供給する。好ましい実施形態において、電源３５６により、主電源バス３６２や２次電源バス３６４にも動作電力が供給される。主電源バス３６２は、画像装置１１４、Ｉ／Ｏ３４８、不揮発性メモリ３５０、および着脱式メモリ３５４に電源を供給する。２次電源バス３６４は、電源管理器３４２、ＣＰＵ３４４、およびＤＲＡＭ３４６に電源を供給する。
【００２３】
電源３５６は、主電池３５８およびバックアップ電池３５６にも接続される。好ましい実施形態において、カメラ１１０のユーザは、外部電源にも電源３５６を接続し得る。電源３５６を通常使用している間、主電池３５８は電源３５６に動作電力を供給し、次に、電源３５６が主電源バス３６２および２次電源バス３６４の両方を介してカメラ１１０に動作電力を供給する。主電池３５８が停止する場合（出力電圧が動作の最低電圧レベルを下回った場合）のような停電状態では、バックアップ電池３６０が電源３５６に動作電力を供給し、電源３５６はカメラ１１０の２次電源バス３６４にのみ動作電力を供給する。
【００２４】
図４を参照すると、不揮発性メモリ３５０に保存されたソフトウェアの図が示される。図４の実施形態において、不揮発性メモリ３５０は、制御アプリケーション４００、ツールボックス４０２、ドライバ４０４、核４０６、およびシステム構成４０８を備える。
【００２５】
制御アプリケーション４００は、カメラ１１０の種々の機能を制御および調整するためのプログラム命令を有する。本発明においてプログラム命令でも特に重要なのは、デフォルトメニュー編成データ構造４２０と、メニュー構成コード４２２である。メニュー編成データ構造は、ユーザが選択できるソフトウェア機能の各々をどのメニューで表示するか（メニュー位置情報として定義）を示すと共に対応するソフトウェアコードの位置を示すデータを構築するためのデータ構造である。好ましい実施形態において、着脱式メモリ３５４はディスクファイルシステム構造を有し、したがってコードの位置はファイルの参照により得られる。別の実施形態において、着脱式メモリ３５４はフラットメモリであり、この場合コードの位置は開始アドレス（コード入口点として定義）によって与えられる。カメラ１１０によって永久的にロードされるソフトウェア機能の位置も、コード入口点によって与えられる。デフォルトメニュー編成データ構造４２０は、カメラ１１０の電源を最初に入れたときに存在する制御アプリケーション４００のそれらの機能に関連する情報を有する。デフォルトメニュー編成データ構造４２０は、その位置で使用するためにまず不揮発性メモリ３５０から動的ランダムアクセスメモリ（ＤＲＡＭ）３４６にロードされる。あるいは代わりに、デフォルトメニュー編成データ構造４２０は変更する必要が生じるまで不揮発性メモリから直接使用することが可能である。その時点で、デフォルトメニュー編成データ構造４２０はＤＲＡＭ３４６にロードされる。デフォルトメニュー編成データ構造４２０のＤＲＡＭコピーは、動的メニュー編成データ構造５４０（図５に関連して以下に詳述する）になり、カメラに新しい機能が追加されるためデフォルトメニュー編成データ構造４２０とは異なる。デフォルトメニュー編成データ構造４２０は、カメラの電源オン時に使用され、着脱式メモリデバイスを１つの着脱式メモリデバイスカメラから取り外すたびに使用される。メニュー構成コード４２２は、動的メニュー編成データ構造５４０の更新と必要時のデフォルトメニュー編成データ構造４２０の再保存を行なうプログラムである。
【００２６】
ツールボックス４０２は、アプリケーション管理プログラム４２４、メニュー・ダイアログ管理プログラム４２６、アプリケーション開始プログラム４２８、スクリプト管理プログラム４３０、ホットマウント／アンマウントコード４３２、およびファイルシステム管理プログラム４３４を備えた選択される機能モジュールを含む。アプリケーション管理プログラム４２４は基本的な制御アプリケーション４００同時に実行し得るアプリケーションプログラムを実行する役割を果たす。このようなアプリケーションプログラムは同時アプリケーションプログラムと呼ばれる。メニュー・ダイアログ管理プログラム４２６は、ＬＣＤ画面３０２上の表示情報を初めとするユーザインターフェース３０８に関連する機能を調整するソフトウェアルーチンを含む。基本的な制御アプリケーション４００と同時には実行できないアプリケーションプログラムを起動すると、アプリケーション開始プログラム４２８は、コンピュータシステムを再ブートする。このようなアプリケーションプログラムは代替アプリケーションプログラムと称される。スクリプト管理プログラム４３０は、制御アプリケーション４００による要求を受けて、スクリプト化されたコードモジュールを実行する役割を果たす。ホットマウント／アンマウントコード４３２は、着脱式メモリデバイス３５４およびディスクファイルリスト上で発見される追加機能の要約を作成し、完了時に制御アプリケーション４００に知らせる。ファイルシステム管理プログラム４３４は、着脱式メモリ３５４上のディスク動作システムファイル構造を処理する。
【００２７】
ドライバ４０４は、カメラ１１０内の種々のハードウェアデバイス（たとえばモータ２３４）を制御する。本発明のドライバのセットでも特に重要なのは、、ハードウェアで生じたバッファ／コネクタ３５２からの着脱式メモリの挿入／取出信号を受信しかつ解釈するディスクドライバ４３６である。
【００２８】
核４０６は、カメラ１１０のオペレーティングシステムに基本的サービスを提供する。システム構成４０８は、ブートルーチンおよび初期システム診断を初めとするカメラ１１０の初期起動ルーチンを実行する。
【００２９】
図５を参照すると、動的ランダムアクセスメモリ（ＤＲＡＭ）３４６の１実施形態のメモリマップが示される。図５の実施形態において、ＤＲＡＭ３４６は、ワーキングメモリ５３０、ＲＡＭディスク５３２、およびシステム領域５３４を備える。
【００３０】
ワーキングメモリ５３０は、種々のスタックと、データ構造と、にＣＰＵ３４４によって使用される変数とを含むと同時に、コンピュータ１１８内で使用されるソフトウェアルーチンを実行する。ワーキングメモリ５３０は、画像変換のために画像装置１１４から受け取った生画像データのセットを一時的に保存する複数の入力バッファ５３８およびＬＣＤ画面３０２上に表示するためのデータを保存するフレームバッファ５３６も含む。本発明で重要なのは、動的メニュー編成データ構造５４０と１ないし複数のディスクファイルリスト５４２，５４４，５４６である。動的メニュー編成データ構造５４０は、図４の説明で前述した。ディスクファイルリスト５４２，５４４，５４６は、電子画像装置のコンピュータが着脱式メモリ上の機能項目をホットマウント／アンマウントコード４３２によってリスト形式にして、作成される。メニュー構成コード４２２は動的メニュー編成データ構造５４０を更新するためにディスクファイルリスト５４２，５４４，５４６を使用する。好ましい実施形態では、図５に示されるように、挿入された１つの着脱式メモリ３５４当たり、１つのディスクファイルリストがある。別の実施形態では、ソースとなる着脱式メモリのボリューム名をタグ付与された各項目を有する１つのディスクファイルリストが存在し得る。
【００３１】
ＲＡＭディスク５３２は、生データおよび圧縮画像データを保存するために使用されるメモリ領域であり、一般に、従来のハードディスクドライブと同様のセクタ形式に構成される。好ましい実施形態において、ＲＡＭディスク５３２はよく知られている標準化ファイルシステムを使用しており、これにより外部ホストコンピュータシステムはＩ／Ｏ３４８を介してＲＡＭディスク５３２上に保存されたデータを簡単に認識およびアクセスすることが可能である。システム領域５３４は通常、コンピュータ１１８の再起動時にＣＰＵ３４４によって使用するためのシステムエラー（たとえば、システムのシャットダウンの原因）に関するデータを保存する。
【００３２】
好ましい実施形態において、変換プロセスはライブ画像生成プログラムによって実行されるが、このプログラムは不揮発性メモリ３５０に保存されると共にＣＰＵ３４４上で実行される。ただし、ハードウェアを使って変換プロセスを実行することも可能である。図３に戻り、図示しないライブ画像生成プログラムの実行の間、ＣＰＵ３４４は入力バッファ５３８から生画像データをＣＣＤ形式で取り込み、データの色空間変換を実行する。変換プロセスはガンマ補正を実行し、ＬＣＤ画面３０２で受像可能な赤、緑、青（ＲＧＢ）色形式もしくは輝度、クロミナンス−赤、クロミナンス−青（ＹＣＣ）色形式のいずれかに生ＣＣＤデータを変換する。変換後、ＣＰＵ３４４は、フレームバッファ５３６に画像データを保存する。次に、ＬＣＤコントローラ３９０は、処理した画像データを表示するために、フレームバッファ５３６からＬＣＤ画面３０２に（オプションのアナログコンバータを介して）転送する。
【００３３】
図６Ａと６Ｂは、カメラ１１０のユーザインターフェース３０８の望ましいハードウェア構成要素を示す図である。図６Ａは、カメラ１１０の背面図であり、ＬＣＤ画面３０２、４方向移動制御ボタン６０９、オーバーレイボタン６１２、メニューボタン６１４、一連のプログラム可能なソフトキー６１６を示している。図６Ｂは、カメラ１１０の平面図であり、シャッターボタン６１８およびモードダイアル６２０を示す。カメラは、ステータスＬＣＤ３０６、ステータスＬＣＤスクロール・セレクトボタン６２２，６２４、録音ボタン６２６、およびズームイン・ズームアウトボタン６２６ａ，６２６ｂをオプションで備えてもよい。
【００３４】
ユーザインターフェース３０８は、種々のカメラの機能を支援するための複数の異なる動作モードを備えている。各モードは、カメラのユーザが所望のソフトウェア駆動による機能を選択するのを可能にする一連のメニューを有する。この説明に関連するモードは、巻き戻しモード、再生モード、キャプチャ（録画）モードである。巻き戻しモードでは、カメラ１１０は、カメラの内容の巻き戻し、画像の編集と分類、画像の印刷と転送といった動作を支援する。再生モードでは、カメラ１１０によりユーザはＬＣＤ画面４０２に画面大の画像を観察し、表示された画像とともに録音された音を聞くことができる。キャプチャモードでは、カメラ１１０は、画像の撮影の準備、ＬＣＤ画面３０２またはステータスＬＣＤ３０６をファインダとして利用した画像の撮影といった動作を支援する。
【００３５】
ユーザはモードダイアル６２０を用いて、巻き戻し、再生、キャプチャモードを切り換えることが望ましい。カメラをある特定のモードにしている場合、そのモードのデフォルト画面がＬＣＤ画面３０２上に表示され、そこにモード固有の画像、アイコン、テキストなどの項目のセットが表示される。
【００３６】
図７を参照すると、着脱式メモリ３５４のフラッシュディスク７１０のメモリマップが示される。フラッシュディスク７１０は従来のフロッピーディスクのものと同様のセクタ形式に構成されたメモリである。フラッシュディスク７１０は、複数の画像データファイル７２０，７２２と、複数の実行可能ファイルを含む。本発明の望ましい実施例において、３種類の実行可能ファイルが直接関連し、これらは、フラッシュディスク７１０上にＳＹＳＴＥＭという名で保存される。これら３種類の実行可能ファイルは、それぞれの固有ファイル名拡張子で識別し得る。それらは、ファイル名拡張子．ｃａｍ（カメラアプリケーションモジュール）、．ｃｓｍ（カメラスクリプトモジュール）７３２および．ｃｍｍ（カメラメニューモジュール）７３０を有するファイルである。拡張子．ｃａｍ７３０のファイルはアプリケーションプログラムであり、図４の説明ですでに定義したような同時アプリケーションプログラムか代替アプリケーションプログラムの２つの形態のいずれかであり得る。．ｃａｍ７３０ファイルのいずれの形態もシステム内に動的にリンクされ得る。拡張子が．ｃｓｍのファイルはスクリプトである。スクリプトファイルは、頻繁に繰返される一連の機能の実行にあるいは特定の用途にカメラ１１０をカスタマイズする場合に便利である。拡張子が．ｃｍｍ７３４のファイルは、制御アプリケーションの機能性を拡張するモジュール化機能である。．ｃｍｍファイルは、システムに動的にリンクされるソフトウエアの実行可能コードの一部であり、定義された入口点を有する。
【００３７】
これらの３種類の実行可能ファイルは、特定の構造的特徴を共通に有する。．ｃｓｍ７３２と．ｃｍｍ７３４は、メニューセットと、メニュー名と、メニューの項目名の３つの項目を含む。メニューセットは、追加機能を表示するモードで、図６の説明ですでに概要を説明したように、巻き戻しモード、再生モード、およびキャプチャモードから成る。メニュー名は、追加機能を表示する固有のメニューである。メニュー名の例としては、「巻き戻しモード」の固有のメニューである「編集」などがある。メニュー項目名は、固有のメニューで表示される追加機能の名称である。編集メニューに表示されるかかる機能の一例は「著作権の注意書きを挿入」などである。
【００３８】
同時アプリケーションを表わす．ｃａｍ７３０ファイルの場合、．ｃａｍ７３０ファイルは常に「アプリケーション」メニューに表示されるため、１つのメニュー名はすでに分かっている。．ｃａｍ７３０ファイルは完全に新しいメニュー名をさらに有し得る。これらの場合、新しいメニューが新しいメニュー名に追加される。
【００３９】
前述したように、各実行可能なファイル内のメニュー情報項目は、ホットマウント／アンマウントコード４３２によって抽出され、ディスクファイルリスト５４２，５４４，５４６の１つを作成するために使用される。次に、動的メニュー編成データ構造５４０を更新する際に、新しいディスクファイルリストがメニュー構成コード４２２によって読み出される。
【００４０】
図８を参照すると、本発明の望ましい実施形態によるソフトウェア機能を追加するプロセスステップのフローチャートが示される。ステップ８１０で、カメラユーザは、着脱式メモリ３５４のフラッシュディスク７１０をバッファ／コネクタ３５２に物理的に挿入（ホットマウント）することで、プロセスを開始する。バッファ／コネクタ３５２は、ディスクドライバ４３６によって解釈される、ハードウェアによって生成されるデバイス発生信号を生成する。
【００４１】
次にステップ８１２で、ディスクドライバ４３６は、制御アプリケーション４００に信号を発し、制御アプリケーション４００はホットマウント／アンマウントコード４３２を呼出し、ホットマウント／アンマウントコード４３２がフラッシュディスク７１０を走査してホットマウント可能なファイルを探す。ホットマウント可能なファイルの走査後、ステップ８１４で、ホットマウント／アンマウントコード４３２が、発見された追加機能の要約を作成する。この要約はディスクファイルリストである。次に、制御アプリケーション４００がメニュー構成コード４２２に信号を出す。
【００４２】
ステップ８１６では、メニュー構成コード４２２が、ディスクファイルリストから追加機能のリストを抽出する。次にメニュー構成コード４２２はメニュー位置情報とコード入口点とを抽出し、ステップ８１８で、該情報から、動的メニュー編成データ構造５４０を再構築し、追加機能を反映させる。
【００４３】
動的メニュー編成データ構造５４０が更新されると、オペレータによってどの機能が選択できるかを制御アプリケーション４００が認識する。この時点で、ステップ８２０で決定がなされる。任意の新しい機能を含むメニューがＬＣＤ画面３０２上に現在表示されているなら、ステップ８２２で、メニュー・ダイアログ管理プログラム４２６がただちにメニューを再表示し、新しい機能を追加する。任意の新しい機能を含むメニューがＬＣＤ画面３０２上に現在表示されていない場合、現在の表示活動は開始されない。更新された動的メニュー編成データ構造５４０は、新しい機能に関する情報と、かかるメニューが次に表示されるまで、どのメニューに表示されるかを保持する。
【００４４】
前述の図８の説明では、新たに挿入された着脱式メモリが、唯一のものである（デジタルカメラの１つのカードスロット型）か、複数の着脱式メモリの１つである（デジタルカメラの複数のカードスロット型）かの区別はされていない。取出プロセス中は区別が行なわれる。任意のデジタルカメラに１つだけ着脱式メモリが存在する場合、簡単なソフト取出プロセスが可能である。
【００４５】
図９を参照すると、１つの着脱式メモリ環境でソフトウェア機能を除去するプロセスステップのフローチャートが示される。ステップ９１０では、デジタルカメラ１１０のユーザが、カメラ１１０から着脱式メモリ３５４のフラッシュディスク７１０を物理的に取り出すことで、プロセスが開始する。バッファ／コネクタ３５２は、除去を示すハードウェアステータス信号を発生する。該信号を用いて、ステップ９１２では、ディスクドライバ４３６が制御アプリケーション４００に信号を送り、制御アプリケーション４００は、ホットマウント／アンマウントコード４３２を呼び出し、次にメニュー構成コード４２２を呼び出して、除去を処理する。この場合は着脱式メモリが１つだけなので、動的メニュー編成データ構造５４０での変化はすべて、以前に挿入された着脱式メモリ３５４のフラッシュディスク７１０に対応したものであった。したがって、ステップ９１４では、個々の機能メニュー項目を除去するために必要な変更を算出するのではなく、動的メニュー編成データ構造５４０にデフォルトメニュー編成データ構造４２０を復元する方がより簡単である。デフォルトメニュー編成データ構造４２０が復元されると、ステップ９１６で、制御アプリケーション４００が、メニュー・ダイアログ管理プログラム４２６がＬＣＤ画面３０２上にメニューを表示しているかどうかをチェックする。表示している場合、制御アプリケーション４００はメニュー・ダイアログ管理プログラム４２６を呼び出し、動的メニュー編成データ構造５４０からメニューを再表示する。表示されていない場合、メニューが再表示されるまで、更新された動的メニュー編成データ構造５４０は、変更された機能に関する情報を保持する。
【００４６】
図１０を参照すると、複数の着脱式メモリ環境でソフトウェア機能を除去するプロセスステップのフローチャートが示される。ステップ１０１０では、デジタルカメラ１１０のユーザが、この場合カメラ１１０からｍ番の着脱式メモリ３５４のフラッシュディスク７１０を物理的に取り出すことで、プロセスが開始する。バッファ／コネクタ３５２は、ｍ番のユニットの除去を示すハードウェアステータス信号を発生する。該信号を用いて、ステップ１０１２では、ディスクドライバ４３６が制御アプリケーション４００に信号を送り、制御アプリケーション４００は、ホットマウント／アンマウントコード４３２を呼び出し、次にメニュー構成コード４２２を呼び出して、除去を処理する。次に、ステップ１０１４では、メニュー構成コード４２２がディスクファイルリストｍを検査し、ｍ番の着脱式メモリ３５４のフラッシュディスク７１０から追加機能のリストを抽出する。次にメニュー構成コード４２２は、動的メニュー編成データ構造５４０の一時複写を作成する。ステップ１０１６では、ｍ番の着脱式メモリ３５４のフラッシュディスク７１０によって追加機能が一時複写から削除される。すべての削除が完了すると、ステップ１０１８で、メニュー構成コード４２２が動的メニュー編成データ構造５４０を一時複写と交換する。ここで、ディスクファイルリストｍと動的メニュー編成データ構造５４０の一時複写が廃棄される。ステップ１０２０では、ここでもＬＣＤ画面３０２上にメニューが表示されているかどうかを制御アプリケーション４００がチェックしてプロセスが終了する。表示している場合、ステップ１０２２で、制御アプリケーション４００はメニュー・ダイアログ管理プログラム４２６を呼び出し、動的メニュー編成データ構造５４０を再読み込みし、該メニューを再表示する。表示されていない場合、メニューが再表示されるまで、更新された動的メニュー編成データ構造５４０は、変更された機能に関する情報を保持する。
【００４７】
図１１を参照すると、ユーザが選択したソフトウェア機能の実行のプロセスステップのフローチャートが示される。図１１に示した事象が起こる前に、着脱式メモリ３５４（図３参照）はホットマウントされ、動的メニュー編成データ構造５４０（図５参照）は図８に図示されるように更新され、着脱式メモリ３５４上に保存された追加ソフトウェア機能を参照する。動的メニュー編成データ構造５４０に参照されたソフトウェア機能は、これでメニューに表示できるようになり、ユーザによって選択できる。しかし、該機能のソフトウェアコードは、ユーザが所望の機能を選択するまでは着脱式メモリ３５４からＤＲＡＭ３４６にはロードされない。これにより、所要ＤＲＡＭ３４６量が減少する。
【００４８】
ステップ１１１０では、カメラのユーザが、グラフィカルユーザインターフェース（ＧＵＩ）メニューから所望のソフトウェア機能を選択する。ステップ１１２０，１１３０，１１４０および１１５０では、一連の決定が、選択したソフトウェア機能の種類を判断する。ステップ１１２０でソフトウェア機能がコードモジュール、望ましい実施形態では．ｃｍｍ７３４の種類、であると判断された場合、ステップ１１２２で、コードモジュールは着脱式メモリ３５４のディスクファイル構造からＤＲＡＭ３４６にロードされる。コードモジュールがＤＲＡＭ３４６に存在するようになった後、コードモジュールはコードモジュールのコード入口点をアプリケーションに通信することによりアプリケーションにリンクされる。同様に、ツールボックス４０２の入口点がコードモジュールと通信される。次にステップ１１２４で、コードモジュールが実行される。コードモジュールの実行後、ステップ１１２６で、コードモジュールに占められたＤＲＡＭ３４６領域は、再使用されるために割当を解除され、プロセスがステップ１１７０で完了する。
【００４９】
ステップ１１３０で、ソフトウェア機能がスクリプト、望ましい実施形態では．ｃｓｍ７３２の種類、であると判断された場合、ステップ１１３２で、スクリプトはＤＲＡＭ３４６にロードされる。スクリプトはソースコードであり、実行可能なオブジェクトコードではないため、ステップ１１３４で、スクリプト管理プログラム４３０がスクリプトを解釈し、それによってスクリプトを実行する。スクリプト実行後、ステップ１１３６で、スクリプトに占められたＤＲＡＭ３４６領域は、再使用されるために割当を解除され、プロセスがステップ１１７０で完了する。
【００５０】
ステップ１１４０で、ソフトウェア機能が同時アプリケーション、望ましい実施形態では．ｃａｍ７３０の種類、であると判断された場合、ステップ１１４２で、スクリプトはＤＲＡＭ３４６にロードされる。同時アプリケーションがＤＲＡＭ３４６に存在するようになった後、同時アプリケーションは、同時コード入口点をアプリケーションに通信させ、ツールボックス４０２の入口点を同時アプリケーションと通信させることで、アプリケーションにリンクされる。ステップ１１４４で、同時アプリケーションが実行される。同時アプリケーション実行後、ステップ１１６で、同時アプリケーションに占められたＤＲＡＭ３４６領域は、再使用されるために割当を解除され、プロセスが１１７０で完了する。
【００５１】
ステップ１１５０で、ソフトウェア機能が、カメラの再ブートを必要とする代替アプリケーション、望ましい実施形態では．ｃａｍ７３０の種類、であると判断された場合、ステップ１１５２で、代替アプリケーションを再ブート後に実行させるよう条件が設定される。次に、ステップ１１５４で、カメラが再ブートされ、プロセスがステップ１１７０で完了する。
【００５２】
最後に、ステップ１１５０で、ソフトウェア機能が、カメラの再ブートを必要としない代替アプリケーション、すなわち望ましい実施形態では．ｃａｍ７３０の種類、であると判断された場合、ステップ１１６２で、現行アプリケーションが終了され、ステップ１１６４で、代替アプリケーションが実行される。
【００５３】
図１２Ａを参照すると、着脱式メモリ３５４を挿入する前のグラフィカルユーザインターフェース（ＧＵＩ）が示される。好ましい実施形態において、ユーザは、ＬＣＤ画面３０２（図３参照）に表示されたＧＵＩを見る。ＬＣＤ画面３０２は、アイコン領域１２１０およびメニュー選択領域１２３０を備え得る。アイコン１２２０はアイコン領域１２１０に表示される。メニュー選択領域１２３０は、将来的にメニュー項目を利用できるよう空の空間を備えた状態で示される。好ましい実施形態において、メニュー項目がない場合は、アイコンおよびメニューモードは図示されない。
【００５４】
図１２Ｂを参照すると、着脱式メモリ３５４を挿入した後のＧＵＩが示される。「モーフィングツール」と呼ばれる新しいアプリケーション１（１２４０）と「ＪＰＥＧツール」と呼ばれる新しいアプリケーション２（１２５０）が、着脱式メモリ３５４に含むことができるアプリケーションの例として、メニュー選択領域１２３０に図示されている。新しいアプリケーション１（１２４０）および新しいアプリケーション２（１２５０）はメニュー選択領域１２３０に示されるため、カメラユーザはそれらを利用することが可能である。図１２Ａおよび図１２Ｂの例では、新しいソフトウェア機能を現行メニューに表示し得る。着脱式メモリ３５４に備えられた新しいソフトウェア機能は、単に現行メニューに新しい項目を追加するのではなく、まったく新しいメニューを作成し得ることに留意する。このような場合、デフォルトアイコンを使用してもよいし、あるいはファイルのアタッチメントからアイコンを作成してもよい。
【００５５】
図１３を参照すると、本発明の好ましい実施形態による、所望のソフトウェア機能の選択方法を示すＧＵＩが示される。例示を目的として、ソフトウェア機能である「写真スクリプト」用の下位機能メニューが示される。メニュー選択領域１２３０では、反転させた題名１３１０と反転させていない複数の題名１３２０を示す。好ましい実施形態において、ユーザは４方向の移動制御ボタン６０９（図６参照）を調節して、図示したメニュー項目上で反転を移動させることできる。所望のメニュー項目を反転させたら、ユーザは、機能ソフトキー表示バー１３３０に表示される機能ソフトキー・インジケータ１３３２「実行」の隣にあるプログラム可能ソフトキー６１６を押すことで、対応するソフトウェアの下位機能を使用することが可能である。
【００５６】
以上のように、本発明を望ましい１実施形態に関して説明してきた。本開示に照らし合わせれば、当業者には他の実施形態が明白である。たとえば、本発明は、前述の実施形態で説明されたものとは別の構成を用いて簡単に実施することが可能である。さらに、本発明は、好ましい実施形態として前述されたシステム以外のシステムと組み合わせて効果的に使用できる。したがって、実施形態に関する以上のおよび他の変更は、本発明に包含されるものであり、本発明は特許請求の範囲によってのみ限定される。
【図面の簡単な説明】
【図１】本発明によるデジタルカメラのブロック図。
【図２】図１の画像装置の１実施形態のブロック図。
【図３】図１のコンピュータの１実施形態のブロック図。
【図４】図３の不揮発性メモリの１実施形態のメモリマップ。
【図５】図３の動的ランダムアクセスメモリの１実施形態のメモリマップ。
【図６Ａ】図１のカメラの後部の１実施形態の正面図。
【図６Ｂ】図１のカメラの上部の１実施形態の平面図。
【図７】図３の着脱式メモリの１実施形態のメモリマップ。
【図８】本発明によるソフトウェア機能を追加するプロセスステップのフローチャート。
【図９】本発明による１つの着脱式メモリ環境でソフトウェア機能を除去するプロセスステップのフローチャート。
【図１０】本発明による複数の着脱式メモリ環境でソフトウェア機能を除去するプロセスステップのフローチャート。
【図１１】本発明によるユーザが選択したソフトウェア機能の実行のプロセスステップのフローチャート。
【図１２Ａ】着脱式メモリを挿入する前のグラフィカルユーザインターフェースの図。
【図１２Ｂ】着脱式メモリを挿入した後のグラフィカルユーザインターフェースの図。
【図１３】所望のソフトウェア機能の選択方法を示したグラフィカルユーザインターフェースの図。
【図１】
0003629427.tif 000002
【図２】
0003629427.tif 000003
【図３】
0003629427.tif 000004
【図４】
0003629427.tif 000005
【図５】
0003629427.tif 000006
【図６Ａ】
0003629427.tif 000007
【図６Ｂ】
0003629427.tif 000008
【図７】
0003629427.tif 000009
【図８】
0003629427.tif 000010
【図９】
0003629427.tif 000011
【図１０】
0003629427.tif 000012
【図１１】
0003629427.tif 000013
【図１２Ａ】
0003629427.tif 000014
【図１２Ｂ】
0003629427.tif 000015
【図１３】
0003629427.tif 000016