(57)【要約】    【課題】  所望の機能設定の作業を簡単に行うことができる機能設定システムを提供する。    【解決手段】  デジタルカメラのユーザが所望の機能を選択し、サーバに送信する。サーバは、送信された機能に基づいてデジタルカメラの制御ソフトウェアを構築する。デジタルカメラは、構築された制御ソフトウェアをサーバからダウンロードし、フラッシュＲＯＭに記憶する。記憶された制御ソフトウェアを実行することにより、所望の機能をデジタルカメラに設定する。【選択図】      図１
2006020298.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介してデータ処理装置に接続され、前記データ処理装置から送信された制御プログラムの実行によって機能を設定する撮像装置であって、
少なくとも１つの機能を選択する機能選択手段と、
前記選択された機能を前記データ処理装置に送信する機能送信手段と、
前記送信した機能に基づいて構築された制御プログラムを前記データ処理装置から受信する制御プログラム受信手段と、
前記受信した制御プログラムを記憶する記憶手段と、
前記受信した制御プログラムを実行することによって前記選択された機能を前記撮像装置に設定する機能設定手段と、
前記記憶手段の容量に関する情報を取得する取得手段と、
前記記憶手段の容量に関する情報に応じて、前記機能選択手段による機能の選択を制限する制限手段とを有することを特徴とする撮像装置。
【請求項２】
前記取得手段は、前記記憶手段の空き容量に関する情報を取得し、
前記取得した空き容量に関する情報を表示する表示手段を有することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記機能選択手段による機能の選択に応じて、前記空き容量に関する情報の表示を更新することを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記データ処理装置から前記機能選択手段によって選択可能な機能の一覧を受信する機能一覧受信手段を有し、各機能に対応した制御コードの容量を前記各機能とともに表示することを特徴とする請求項１に記載の撮像装置。
【請求項５】
前記送信した機能に基づいて前記データ処理装置で構築された制御プログラムの名称を
送信する制御プログラム名称送信手段と、
前記送信した機能に基づいて構築された制御プログラムを選択する制御プログラム選択手段とを有し、
前記制御プログラム受信手段は、前記制御プログラム選択手段によって選択された制御プログラムを受信することを特徴とする請求項１に記載の撮像装置。
【請求項６】
請求項１に記載の撮像装置に、通信回線を介して接続され、前記制御プログラムを構築するデータ処理装置であって、
前記撮像装置から送信された少なくとも１つの機能を受信する機能受信手段と、
前記受信した機能に基づいて前記制御プログラムを構築する構築手段と、
前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信手段とを備えたことを特徴とするデータ処理装置。
【請求項７】
前記構築された制御プログラムを登録する制御プログラム登録手段と、
前記登録された制御プログラムの一覧を前記撮像装置に送信する一覧送信手段とを備え、
前記制御プログラム送信手段は、前記撮像装置によって選択され、前記制御プログラム登録手段に登録された制御プログラムを前記撮像装置に送信することを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
データ処理装置から制御プログラムを撮像装置に送信し、前記撮像装置の機能を設定する機能設定方法であって、
少なくとも１つの機能を選択する機能選択ステップと、
前記選択された機能を前記データ処理装置に送信する機能送信ステップと、
前記送信された機能に基づいて前記制御プログラムを構築する構築ステップと、
前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信ステップと、
前記送信された制御プログラムを前記データ処理装置から受信する制御プログラム受信ステップと、
前記受信した制御プログラムの実行によって前記選択された機能を前記撮像装置に設定する機能設定ステップと、
前記受信した制御プログラムを前記撮像装置の記憶手段に記憶する記憶ステップと、
前記記憶手段の容量に関する情報を取得する取得ステップと、
前記記憶手段の容量に関する情報に応じて、前記機能選択ステップにおける機能の選択を制限する制限ステップとを有することを特徴とする機能設定方法。
【請求項９】
前記取得ステップは、前記記憶手段の空き容量に関する情報を取得し、
前記取得した空き容量に関する情報を表示する表示ステップを有することを特徴とする請求項８に記載の機能設定方法。
【請求項１０】
前記機能選択ステップにおける機能の選択に応じて、前記空き容量に関する情報の表示を更新することを特徴とする請求項９に記載の機能設定方法。
【請求項１１】
前記送信した機能に基づいて前記データ処理装置で構築された制御プログラムの名称を送信する制御プログラム名称送信ステップと、
前記送信した機能に基づいて構築された制御プログラムを選択する制御プログラム選択ステップとを有し、
前記制御プログラム受信ステップは、前記制御プログラム選択ステップにおいて選択された制御プログラムを受信することを特徴とする請求項８に記載の機能設定方法。
【請求項１２】
請求項８に記載の機能設定方法を実現するためのコンピュータ読み取り可能なプログラムコードを有する機能設定プログラム。
【請求項１３】
撮像装置と、前記撮像装置に通信回線を介して接続されたデータ処理装置とを備え、前記データ処理装置から制御プログラムを前記撮像装置に送信し、前記撮像装置の機能を設定する機能設定システムであって、
前記撮像装置は、
少なくとも１つの機能を選択する機能選択手段と、
前記選択された機能を前記データ処理装置に送信する機能送信手段と、
前記送信した機能に基づいて構築された制御プログラムを前記データ処理装置から受信する制御プログラム受信手段と、
前記受信した制御プログラムを記憶する記憶手段と、
前記受信した制御プログラムの実行によって前記選択された機能を前記撮像装置に設定する機能設定手段と、
前記記憶手段の容量に関する情報を取得する取得手段と、
前記記憶手段の容量に関する情報に応じて、前記機能選択手段の機能の選択を制限する制限手段とを備え、
前記データ処理装置は、
前記撮像装置から送信された機能を受信する機能受信手段と、
前記受信した機能に基づいて前記選択された制御プログラムを構築する構築手段と、
前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信手段とを備えたことを特徴とする機能設定システム。
【請求項１４】
前記撮像装置は、前記制御プログラムの一覧を表示する表示手段と、前記送信した機能に基づいて構築された制御プログラムを選択する制御プログラム選択手段とを備え、
前記データ処理装置は、前記構築された制御プログラムを登録する制御プログラム登録手段と、前記登録された制御プログラムの一覧を前記撮像装置に送信する一覧送信手段とを備え、
前記制御プログラム選択手段は、前記表示された制御プログラムの一覧の中から、前記登録された制御プログラムを選択することを特徴とする請求項１３記載の機能設定システム。
【請求項１５】
前記撮像装置は、当該撮像装置を特定する識別コードを記憶する識別コード記憶手段と、ユーザ情報を登録するユーザ情報登録手段とを備え、
前記データ処理装置は、前記識別コードおよび前記ユーザ情報を基に、認証を行ってユーザを特定する認証手段を備えたことを特徴とする請求項１３記載の機能設定システム。
【請求項１６】
前記データ処理装置は、複数のユーザを管理するユーザ管理手段を備え、
前記制御プログラム登録手段は、前記管理されたユーザ毎に前記制御プログラムを登録しておき、
前記制御プログラム送信手段は、前記認証手段によって特定されたユーザに該当する制御プログラムを送信することを特徴とする請求項１５記載の機能設定システム。
【請求項１７】
前記撮像装置は、前記ユーザ管理手段にユーザを登録するユーザ登録手段を備え、
前記制御プログラム登録手段は、前記ユーザ毎に前記制御プログラムが格納された個人プログラム格納手段と、複数のユーザによって共有される前記制御プログラムが格納された共有プログラム格納手段とを備え、
前記制御プログラム選択手段は、前記撮像装置からの指示に従って、前記個人プログラム格納手段および前記共有プログラム格納手段のいずれかから前記制御プログラムを選択することを特徴とする請求項１６記載の機能設定システム。
【請求項１８】
前記撮像装置は、前記機能の追加を指示する指示手段を備え、
前記構築手段は、前記登録された制御プログラムに対して前記指示された機能を追加して再構築をすることを特徴とする請求項１４記載の機能設定システム。
【請求項１９】
撮像装置と、前記撮像装置に通信回線を介して接続されたデータ処理装置とを備え、前記データ処理装置から制御プログラムを前記撮像装置に送信し、前記撮像装置の機能を設定する機能設定システムであって、
前記撮像装置は、
現在の機能の設定状態を記憶している第１の記憶手段と、
少なくとも１つの機能を選択する機能選択手段と、
前記選択された機能を前記データ処理装置に送信する機能送信手段と、
前記送信した機能に基づいて構築された制御プログラムを前記データ処理装置から受信する制御プログラム受信手段と、
前記受信した制御プログラムを記憶する制御プログラム記憶手段と、
前記受信した制御プログラムの実行によって前記選択された機能を前記撮像装置に設定する機能設定手段とを備え、
前記データ処理装置は、
前記撮像装置から送信された機能を受信する機能受信手段と、
前記受信した機能に基づいて前記制御プログラムを構築する構築手段と、
前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信手段と、
前記送信した前回の制御プログラムの設定状態を記憶している第２の記憶手段と、
前記撮像装置から前記第１の記憶手段に記憶されている現在の機能の設定状態を受信する設定状態受信手段と、
前記受信した現在の機能の設定状態と前記第２の記憶手段に記憶されている設定状態とを比較する比較手段とを備えたことを特徴とする機能設定システム。
【請求項２０】
前記データ処理装置は、前記比較手段の比較結果が異なる場合、前記第２の記憶手段の設定状態を前記第１の記憶手段の設定状態に変更する変更手段を備えたことを特徴とする請求項１９に記載の機能設定システム。
【請求項２１】
前記データ処理装置は、前記比較手段の比較結果が異なる場合、前記比較結果が異なる旨を前記撮像装置に通知する通知する通知手段と、前記撮像装置に機能設定処理の確認を促す画面を表示させる表示画面送信手段とを備えたことを特徴とする請求項１９に記載の機能設定システム。
【請求項２２】
前記撮像装置は、設定状態の初期設定を格納しておく第３の記憶手段を有し、前記比較手段の比較結果が異なる場合、前記撮像装置の機能設定状態を前記第３の記憶手段に記憶されている初期設定に戻すことを特徴とする請求項１９に記載の機能設定システム。
【請求項２３】
前記比較手段の比較結果が一致した場合、前記制御プログラム送信手段は、前記制御プログラムを前記撮像装置に送信することを特徴とする請求項１９に記載の機能設定システム。
【請求項２４】
前記比較手段の比較結果が一致した場合、前記機能設定手段は、前記受信した制御プログラムの実行によって前記選択された機能を前記撮像装置に設定することを特徴とする請求項１９に記載の機能設定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に登録された制御プログラムを撮像装置に送信し、該撮像装置の機能を設定する機能設定システム、撮像装置、データ処理装置、機能設定方法および機能設定プログラムに関する。
【背景技術】
【０００２】
近年、情報機器としての記録装置は、小型化かつ高機能化・多機能化しており、単体で複数の機能を実現するものが増えている。例えば、デジタルスチルカメラでは、動画撮影機能を盛り込んだもの、音声録音・再生機能を盛り込んだもの、音楽再生機能を盛り込んだもの等、複数の機能を盛り込んだものが登場している。
【０００３】
このように、複数の機能を実現する記録装置は、各機能が１チップ（半導体チップ）に凝集したハードウェア構成を有する。この共通のハードウェア上で動作するソフトウェアを変更することで、多機種の製品が出現し、コストダウンが図れる。
【０００４】
しかし、多くの機能を実現するソフトウェアを記録装置に組み込むためには、大容量の記憶メモリ、例えば、フラッシュメモリ、ＥＥＰＲＯＭなどが必要であり、記録装置の大型化や部品コストの上昇に繋がる。
【０００５】
高機能な記録装置では、大容量のメモリを用いることで、全ての機能を盛り込むことが可能であるが、比較的廉価な記録装置では、小容量のメモリを用いることで、コストを抑える必要がある。また、記録装置の利用者の中には、必要な操作機能や記録機能などの機能を所望の設定に変更（カスタマイズ）し、使い勝手の良い、自分だけのオリジナルな記録装置に設定することを望む者が多い。
【０００６】
このような問題に対し、インターネット等のネットワークを利用する、様々な記録装置のカスタマイズサービスが提案されている。例えば、パーソナルコンピュータおよびウェブを利用したアプリケーションコンポーネントのダウンロードサービスが提案されている（特許文献１参照）。
【０００７】
図２２は従来の記録装置のカスタマイズ処理手順を示すフローチャートである。記録装置のカスタマイズを行う場合、まず、ユーザは記録装置とＰＣを接続し、ＰＣ上で記録装置のカスタマイズソフトウェアを起動する（ステップＳ３０１）。カスタマイズソフトウェアによって、ＰＣを経由して記録装置とホストサーバとが接続されると（ステップＳ３０２）、記録装置からホストサーバに記録装置の性能に関する情報が送信される。
【０００８】
ホストサーバは、接続された記録装置の能力を決定し（ステップＳ３０３）、この記録装置が利用可能な機能のリストをＰＣに送信し、ＰＣの画面上に機能リストの一覧を表示する（ステップＳ３０４）。ユーザによって機能リストから所望の機能が選択されると、その選択された機能のデモ動作を表示する（ステップＳ３０５）。これにより、ユーザは選択した機能のデモ動作を確認できる。ユーザが選択された機能を決めると、この機能に関するパラメータの設定等の作業を行い、その採用決定をホストサーバに通知する（ステップＳ３０６）。
【０００９】
ホストサーバは、機能の採用決定を受け付けると、ＰＣに対し、この機能を実現するためのソフトウェアコンポーネントを送信し、カスタマイズソフトウェアにより、記録装置にソフトウェアコンポーネントをインストールする（ステップＳ３０７）。そして、本処理を終了する。
【００１０】
この後、ユーザは、機能の選択において、既に組み込まれている機能を削除したり、新たに追加することで、独自の組み合わせでソフトウェアを構築し、所望の記録装置を作り上げることができる。
【００１１】
また、他の従来のカスタマイズサービスとして、記録装置とサーバとを接続し、記録装置が実装する機能（能力）をサーバに通知することで、サーバからダウンロード可能なソフトウェアのメニューが送られ、その中から所望のソフトウェアを選択してダウンロードするシステムが提案されている（特許文献２参照）。この場合、ＰＣを介さずに、記録装置単体でサーバに接続することができ、ソフトウェアコンポーネントを直接ダウンロードすることができる。
【特許文献１】特開２００１−２４９３８号公報
【特許文献２】特開平１０−２０７７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来の機能設定システムでは、以下に掲げる問題があり、その改善が要望されていた。すなわち、撮像装置が持つ機能（能力）を必要に応じて使い分ける場合、所望の機能を実現するソフトウェアコンポーネントの組み合わせや、ソフトウェアの組み合わせを指定する必要があった。また、所望の機能を変更する度、毎回ソフトウェアコンポーネントの組み合わせ指定や、ソフトウェアの組み合わせ指定を行う必要があり、以前利用した組み合わせソフトウェアを利用する場合、組み合わせの指定をユーザが記憶しておかなければならず、煩わしい作業が必要だった。更に、組み合わせを指定する際に撮像装置のように装置内のＲＯＭ容量が限られている場合、容量を考慮する必要があり、個人ユーザの所望のコードサイズ、性能に見合ったソフトウェアの構築（最適化）が困難であった。更に、ユーザが複数の撮像装置を持っている場合、機種毎に機能設定を覚えておくことが必要になり、ソフトウェアの組み合わせを行うことが困難であった。また、ユーザが複数機種の撮像装置を持っている場合、ホストサーバと撮像装置との設定の整合性が取れなくなるという問題もあった。
【００１３】
そこで、本発明は、このような煩わしい作業を解消するために、所望の機能設定の作業を簡単に行うことができる機能設定システム、撮像装置、データ処理装置、機能設定方法および機能設定プログラムを提供する。
【課題を解決するための手段】
【００１４】
上記の目的を達成するために本発明の撮像装置は、通信回線を介してデータ処理装置に接続され、前記データ処理装置から送信された制御プログラムの実行によって機能を設定する撮像装置であって、少なくとも１つの機能を選択する機能選択手段と、前記選択された機能を前記データ処理装置に送信する機能送信手段と、前記送信した機能に基づいて構築された制御プログラムを前記データ処理装置から受信する制御プログラム受信手段と、前記受信した制御プログラムを記憶する記憶手段と、前記受信した制御プログラムを実行することによって前記選択された機能を前記撮像装置に設定する機能設定手段と、前記記憶手段の容量に関する情報を取得する取得手段と、前記記憶手段の容量に関する情報に応じて、前記機能選択手段による機能の選択を制限する制限手段とを有することを特徴とする。
【００１５】
また、本発明のデータ処理装置は、上記撮像装置に、通信回線を介して接続され、前記制御プログラムを構築するデータ処理装置であって、前記撮像装置から送信された少なくとも１つの機能を受信する機能受信手段と、前記受信した機能に基づいて前記制御プログラムを構築する構築手段と、前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信手段とを備えたことを特徴とする。
【００１６】
また、本発明の機能設定方法は、データ処理装置から制御プログラムを撮像装置に送信し、前記撮像装置の機能を設定する機能設定方法であって、少なくとも１つの機能を選択する機能選択ステップと、前記選択された機能を前記データ処理装置に送信する機能送信ステップと、前記送信された機能に基づいて前記制御プログラムを構築する構築ステップと、前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信ステップと、前記送信された制御プログラムを前記データ処理装置から受信する制御プログラム受信ステップと、前記受信した制御プログラムの実行によって前記選択された機能を前記撮像装置に設定する機能設定ステップと、前記受信した制御プログラムを前記撮像装置の記憶手段に記憶する記憶ステップと、前記記憶手段の容量に関する情報を取得する取得ステップと、前記記憶手段の容量に関する情報に応じて、前記機能選択ステップにおける機能の選択を制限する制限ステップとを有することを特徴とする。
【００１７】
また、本発明の機能設定システムは、撮像装置と、前記撮像装置に通信回線を介して接続されたデータ処理装置とを備え、前記データ処理装置から制御プログラムを前記撮像装置に送信し、前記撮像装置の機能を設定する機能設定システムであって、前記撮像装置は、少なくとも１つの機能を選択する機能選択手段と、前記選択された機能を前記データ処理装置に送信する機能送信手段と、前記送信した機能に基づいて構築された制御プログラムを前記データ処理装置から受信する制御プログラム受信手段と、前記受信した制御プログラムを記憶する記憶手段と、前記受信した制御プログラムの実行によって前記選択された機能を前記撮像装置に設定する機能設定手段と、前記記憶手段の容量に関する情報を取得する取得手段と、前記記憶手段の容量に関する情報に応じて、前記機能選択手段の機能の選択を制限する制限手段とを備え、前記データ処理装置は、前記撮像装置から送信された機能を受信する機能受信手段と、前記受信した機能に基づいて前記制御プログラムを構築する構築手段と、前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信手段とを備えたことを特徴とする。
【００１８】
また、本発明の機能設定システムは、撮像装置と、前記撮像装置に通信回線を介して接続されたデータ処理装置とを備え、前記データ処理装置から制御プログラムを前記撮像装置に送信し、前記撮像装置の機能を設定する機能設定システムであって、前記撮像装置は、現在の機能の設定状態を記憶している第１の記憶手段と、少なくとも１つの機能を選択する機能選択手段と、前記選択された機能を前記データ処理装置に送信する機能送信手段と、前記送信した機能に基づいて構築された制御プログラムを前記データ処理装置から受信する制御プログラム受信手段と、前記受信した制御プログラムを記憶する制御プログラム記憶手段と、前記受信した制御プログラムの実行によって前記選択された機能を前記撮像装置に設定する機能設定手段とを備え、前記データ処理装置は、前記撮像装置から送信された機能を受信する機能受信手段と、前記受信した機能に基づいて前記制御プログラムを構築する構築手段と、前記構築された制御プログラムを前記撮像装置に送信する制御プログラム送信手段と、前記送信した前回の制御プログラムの設定状態を記憶している第２の記憶手段と、前記撮像装置から前記第１の記憶手段に記憶されている現在の機能の設定状態を受信する設定状態受信手段と、前記受信した現在の機能の設定状態と前記第２の記憶手段に記憶されている設定状態とを比較する比較手段とを備えたことを特徴とする。
【００１９】
本発明の機能設定プログラムは、上記機能設定方法を実現するためのコンピュータ読み取り可能なプログラムコードを有することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、所望の機能設定の作業を簡単に行うことができる。
【発明を実施するための最良の形態】
【００２１】
本発明の機能設定システム、撮像装置、データ処理装置、機能設定方法および機能設定プログラムの実施の形態について図面を参照しながら説明する。本実施形態の機能設定システムはソフトウェアカスタマイズシステムに適用される。
【００２２】
［第１の実施形態］
［システム構成］
図１は第１の実施形態におけるソフトウェアカスタマイズシステムの構成を示す図である。このソフトウェアカスタマイズシステムは、ネットワークを介して記録装置１００およびホストサーバ１５０が接続された構成を有する。この記録装置１００は、具体的には、後述するように、デジタルカメラ５００に適用されるものであり、被写体からの光を変換し、画像データとして入力する記録データ入力部１０１、入力された画像データを記録媒体等に記録するデータ記録部１０２、マイクロコンピュータ１０３、一時記憶部１０４、ソフトウェア記憶部１０５、操作部１０６、表示部１０７および通信部１０８を有する。
【００２３】
マイクロコンピュータ１０３は、記録装置１００を総括的に制御する。一時記憶部１０４は、ＲＡＭからなり、処理を行う際のデータの一時記録やソフトウェアが利用するデータ領域として使用される。ソフトウェア記憶部１０５は、電気的書き換え可能で電源を落としても消えない不揮発性であるＲＯＭやフラッシュメモリからなり、マイクロコンピュータ１０３によって実行されるソフトウェア（プログラム）を格納する。操作部１０６は、スイッチ、ボタン、ダイヤルなどを有する。表示部１０７は例えば、撮像画像、ファインダ画像、メニュー表示等を行う液晶表示装置からなる。
【００２４】
また、ソフトウェア記憶部１０５には、記録装置制御ソフトウェア（制御プログラム）１１１、カスタマイズソフトウェア１１２、選択ソフトウェア１１３、ユーザ登録ソフトウェア１１４、通信ソフトウェア１１５、ユーザ登録情報１２０および記録装置固有のシリアルナンバー等の装置識別コード１２１が格納されている。
【００２５】
記録装置制御ソフトウェア１１１は、記録装置１００の動作を制御するものである。カスタマイズソフトウェア１１２は、ユーザが記録装置制御ソフトウェア（制御プログラム）のカスタマイズを行うためのアプリケーションプログラムである。選択ソフトウェア１１３は、ホストサーバ１５０に登録されている記録装置制御ソフトウェアを取得してユーザに選択させるためのアプリケーションプログラムである。ユーザ登録ソフトウェア１１４は、ユーザ名やパスワード等の個人情報の登録を行う。通信ソフトウェア１１５は、ホストサーバ１５０と接続するための通信を制御する。ユーザ登録情報１２０は記録装置１００のユーザを識別する情報である。装置識別コード１２１は、デジタルカメラの機種情報を含む固有の個体識別情報である。
【００２６】
一方、ホストサーバ１５０は、通信部１５１、ユーザ管理部１５２、ユーザ認証部１５３、ＣＰＵ１５６、記憶媒体１５７、ユーザ管理データベース１６０、ソフトウェア選択部１５４、汎用部品群１６１、ソフトウェア構築部１５５、および個人ソフトウェアデータベース１６２を有する。
【００２７】
通信部１５１は、記録装置１００との接続を行う。ユーザ管理部１５２は、ユーザ登録を管理する。ユーザ認証部１５３は、ホストサーバ１５０に接続したユーザの認証を行う。ユーザ管理データベース１６０には、ユーザの情報が蓄積されている。ソフトウェア選択部１５４は、登録されている記録装置制御ソフトウェアの一覧を送り、所望の記録装置制御ソフトウェアを選択する。汎用部品群１６１には、記録装置制御ソフトウェアを構築するためのソフトウェア部品が集められている。ソフトウェア構築部１５５は、ユーザのカスタマイズ希望に応じて、汎用部品群１６１のソフトウェア部品を組み合わせ、記録装置制御ソフトウェアを構築する。個人ソフトウェアデータベース１６２には、構築したユーザ固有の記録装置制御ソフトウェアが格納される。
【００２８】
［デジタルカメラの構成］
つぎに、記録装置１００として、具体的に適用されるデジタルカメラの構成を示す。図２はデジタルカメラの本体前面を示す図である。図３はデジタルカメラの本体背面を示す図である。このデジタルカメラ５００は、シャッタボタン５０１、撮影用レンズ５０２、光学ファインダ５０３、ストロボ発光部５０４、無線アンテナ５０５、録音用内蔵マイク５０６、液晶表示部５０７、操作スイッチ５０８、記録媒体５０９、音声再生用スピーカ５１０等を有する。
【００２９】
図４はデジタルカメラの電気的構成を示すブロック図である。デジタルカメラ５００は、前述した各部の他、撮像素子５１２、Ａ／Ｄ変換部６２２、信号処理部６２３、撮像素子制御部６１５、Ａ／Ｄ変換部６１６、画像処理部６１７、シャッタ制御部６１４、絞り制御部６１３、レンズ制御部６１２、レンズ鏡筒６１１、フラッシュＲＯＭ６０２、マイクロコンピュータ６０１、メモリ６０３、信号処理部６４１、液晶制御部６４２、信号処理部６５１、Ｄ／Ａ変換部６５２、通信制御部６６１、通信回線６６２等を有する。
【００３０】
フラッシュＲＯＭ６０２には、マイクロコンピュータ６０１によって実行される、前述した記録装置制御ソフトウェア１１１（図１参照）の他、カスタマイズソフトウェア１１２、選択ソフトウェア１１３、ユーザ登録ソフトウェア１１４、通信ソフトウェア１１５、ユーザ登録情報１２０および装置識別コード１２１が格納されている。この記録装置制御ソフトウェアを実行することにより実現される静止画撮影機能では、シャッタボタン５０１を押下すると、レンズ制御部６１２、絞り制御部６１３および撮像素子制御部６１５によって、画像データが撮像素子５１２に取り込まれる。撮像素子５１２に取り込まれた画像データは、撮像素子制御部６１５によって撮像素子５１２から読み出され、Ａ／Ｄ変換部６１６および画像処理部６１７を経てメモリ６０３に一時記憶される。マイクロコンピュータ６０１は、メモリ６０３に一時記憶された画像データを基に、フォーカス情報および露出情報を演算し、レンズ鏡筒６１１を駆動してフォーカス合わせ（オートフォーカス）および露出合わせ（自動露出）を行う。
【００３１】
フォーカス合わせ（オートフォーカス）を行う際、フォーカシングのスピードを優先させるために制御ソフトウェアのコード生成効率を犠牲にして、フォーカスの演算速度を早めることが可能である。また、露出合わせ（自動露出）制御においては、精度の高い露出制御を行うため複雑な演算や表（テーブル）参照を行うが、演算を関数（サブルーチン）化することでコードサイズを削減することも、関数の演算結果を予め表にまとめておくことによりコードサイズを犠牲にして処理速度を優先させることも可能である。
【００３２】
こうして、撮影準備が終了すると、絞り制御部６１３およびシャッタ制御部６１４は、所定の露出制御値で撮像素子５１２に対し、本露光を行う。露光された画像は、撮像素子制御部６１５により撮像素子５１２から画像信号として読み出され、Ａ／Ｄ変換部６１５によってアナログ出力である画像信号からデジタルデータに変換され、画像処理部６１７により画像データとしてメモリ６０３に一時的に格納される。また、メモリ６０３に格納された画像データは、記録媒体５０９に記憶される。また、撮影時の設定により、メモリ６０３に格納された画像データは、信号処理部６４１によって液晶表示用に変換され、液晶制御部６４２によりＴＦＴ液晶（液晶表示部）５０７に表示することも可能である。
【００３３】
シャッタ制御部６１４では、通常のシャッタ制御の他、メカシャッタと電子シャッタの組み合わせにより高速シャッタ制御を行うことも可能である。高速シャッタ制御を行う際、短時間での制御が必要であるので、プログラムのコード生成効率を犠牲にして処理速度を向上させる。逆に、シャッタ速度の上限を制限してプログラムのコード生成効率を優先させることも可能である。また同様に、撮影指示が出てから実際の撮影が開始されるまでのレリーズタイムラグの制御においても、短時間での制御が必要であるが、コード生成効率を犠牲にしてレリーズタイムラグを短縮することも、レリーズタイムラグを長めにすることでコード生成効率を優先させることも可能である。
【００３４】
また、このデジタルカメラ５００は、内蔵マイク５０６および内蔵スピーカ５１０を有し、動画撮影および再生可能である。デジタルカメラ５００は、フラッシュＲＯＭ６０２に格納された記録装置制御ソフトウェアを実行することにより動画撮影機能を実現し、シャッタボタン５０１を押下することで、レンズ制御部６１２、絞り制御部６１３および撮像素子制御部６１５により撮像素子５１２から画像データを取り込む。そして、Ａ／Ｄ変換部６１６および画像処理部６１７を経由して、フォーカス情報および露出情報を演算し、レンズ鏡筒６１１を駆動してフォーカス合わせ（オートフォーカス）および露出合わせ（自動露出）を行い、絞り制御部６１３およびシャッタ制御部６１４により、所定の露出制御値で撮像素子５１２を露光する。
【００３５】
撮像素子５１２で露光された画像は、撮像素子制御部６１５により撮像素子５１２から画像信号として読み出され、Ａ／Ｄ部変換部６１５によりアナログ出力である画像信号からデジタル画像データに変換され、画像処理部６１７により画像処理された後、メモリ６０３に一時的に格納される。メモリ６０３に格納された画像データは、動画データとして記録媒体５０９に記憶される。
【００３６】
また、画像撮影に合わせてマイク５０６から入力された音声データは、Ａ／Ｄ変換部６２２によりアナログ信号からデジタルデータに変換され、信号処理部６２３によってフィルタリング処理が施された後、メモリ６０３に一時的に格納される。メモリ６０３に格納された音声データは、動画データの一部として記録媒体５０９に記憶される。
【００３７】
シャッタボタン５０１が押下されている間、所定のタイミング（フレームレート）に同期して画像の取り込みが繰り返し行われ、動画撮影が行われる。デジタルカメラ５００は、動画撮影中、撮影した画像データからフォーカス情報および露出情報を演算し、レンズ鏡筒６１１を駆動してフォーカス合わせ（オートフォーカス）および露出合わせ（自動露出）を継続的に行う。
【００３８】
フラッシュＲＯＭ６０２に格納された記録装置制御ソフトウェアの動画再生機能を実行すると、操作スイッチ５０８を操作することで、記録媒体５０９に記憶された動画データがメモリ６０３に一時的に読み込まれる。画像データは、所定のタイミング（フレームレート）に同期して、信号処理部６４１によって液晶表示用に変換された後、液晶制御部６４１によりＴＦＴ液晶表示部５０７に表示される。一方、音声データは、画像データに同期して、信号処理部６５１により再生用に信号処理された後、Ｄ／Ａ変換部６５２によりアナログ信号に変換され、スピーカ５１０で再生される。
【００３９】
このように、デジタルカメラでは、静止画撮影・再生、動画撮影・再生など多機能化が進んでいる。図５および図６は第１の実施形態におけるデジタルカメラで実現可能な機能の一覧（汎用部品（コンポーネント）リスト）を示すテーブルである。このテーブルには、汎用部品および部品の機能説明からなる２つの項目が設けられている。デジタルカメラ５００のハードウェアに、図５および図６で示すような多くの機能を実現するソフトウェアを一度に組み込むことは可能であるが、そのためには、フラッシュＲＯＭ６０２を大容量にする必要があり、製品コストを増加させてしまうことになる。
【００４０】
そこで、第１の実施形態では、図５および図６に示す機能からユーザが選んだ機能を必要に応じて組み合わせ、ユーザが必要とするソフトウェア（制御プログラム）を構築してホストサーバ１５０に登録しておき、任意の時点で必要なソフトウェアを選択してダウンロードすることで、デジタルカメラ５００の機能をカスタマイズするサービスを提供する。なお、デジタルカメラのユーザは、本サービスを利用する際、ユーザ登録を行う必要がある。図７は液晶表示部５０７に表示されるメニュー画面を示す図である。このメニュー画面には、ユーザ登録、ソフトウェア構築（カスタマイズ）、ソフトウェア選択、ソフトウェア公開、ソフトウェア公開取り消し、その他の項目が表示されている。
【００４１】
［ユーザ登録］
図８はデジタルカメラ側のユーザ登録処理手順を示すフローチャートである。この処理プログラムは、フラッシュＲＯＭ６０２に格納されており、マイクロコンピュータ６０１によって実行される。ユーザが操作スイッチ５０８を操作したことに応じて、液晶表示部５０７にメニュー画面を表示し、ユーザによって「ユーザ登録」が選択されると、ユーザ登録ソフトウェア１１４の実行を開始する（ステップＳ１）。
【００４２】
ユーザ登録ソフトウェア１１４が実行されると、液晶表示部５０７にユーザ名入力画面（図示せず）が表示され、ユーザが操作スイッチ５０８を操作してユーザの名称（ユーザ名）を入力すると、この入力されたユーザの名称を設定する（ステップＳ２）。さらに、パスワード入力画面（図示せず）が表示され、ユーザが操作スイッチ５０８を操作して任意のパスワードを入力すると、この入力されたパスワードを設定する（ステップＳ３）。設定されたユーザ名およびパスワードを用いて、デジタルカメラ５００に登録されたユーザ登録情報１２０を検索し、該当するユーザ登録情報を取得する（ステップＳ４）。
【００４３】
そして、通信ソフトウェア１１５を起動させ、通信制御部６６１により通信回線６６２をホストサーバ１５０に接続する（ステップＳ５）。本実施形態では、通信回線として無線通信回線６８０を使用し、無線アンテナ５０５を介して公衆の無線電話回線に接続される。ホストサーバ１５０への接続が完了すると、デジタルカメラ５００は、ユーザ登録情報１２０および装置識別コード１２１をホストサーバ１５０に送信する（ステップＳ６）。
【００４４】
この後、デジタルカメラ５００は、ホストサーバ１５０からバスワード変更画面あるいは新規ユーザ登録確認画面のいずれかを受信する（ステップＳ７）。デジタルカメラ５００は、受信した入力画面がバスワード変更画面であるか、あるいは新規ユーザ登録確認画面であるかを判別し（ステップＳ８）、パスワード変更画面である場合、パスワード変更画面を表示し、ユーザが操作スイッチ５０８を操作することにより設定された新たなパスワードを入力し、入力した新たなパスワードをホストサーバ１５０に送信する（ステップＳ９）。一方、ステップＳ８で新規ユーザ登録確認画面である場合、新規ユーザ登録確認画面を表示し、ユーザが操作スイッチ５０８を操作することにより設定された新規のユーザ情報を入力し、入力した新規のユーザ情報をホストサーバ１５０に送信する（ステップＳ１０）。
【００４５】
そして、ホストサーバへの送信結果として更新登録時あるいは新規登録時のユーザ登録情報がデジタルカメラ５００に通知されると、ホストサーバ１５０との通信を切断し（ステップＳ１１）、デジタルカメラ５００内のユーザ登録情報部１２０に、通知されたユーザ登録情報を記憶し（ステップＳ１２）、本処理を終了する。
【００４６】
図９はホストサーバ１５０側のユーザ登録処理手順を示すフローチャートである。この処理プログラムは、ホストサーバ１５０内の記録媒体１５７に格納されており、ＣＰＵ１５６によって実行される。ホストサーバ１５０は、デジタルカメラ５００から送られたユーザ登録情報１２０および装置識別コード１２１を受信し（ステップＳ２１）、これらの情報を基に、ユーザ認証部１５３により、ユーザ管理データベース１６０を検索し、ユーザ認証を行う（ステップＳ２２）。
【００４７】
ユーザ認証の結果、ユーザ管理データベース１６０に、このユーザが登録されているか否かを判定する（ステップＳ２３）。登録済みのユーザである場合、パスワード変更画面をデジタルカメラ５００に送信する（ステップＳ２４）。そして、ユーザが必要に応じて設定した新パスワードを受信し、ユーザ管理部１５２により、新パスワードを登録することで、ユーザ管理データベース１６０の情報を変更する（ステップＳ２５）。さらに、ユーザ管理部１５２により、変更されたユーザ登録情報をデジタルカメラ５００に通知し（ステップＳ２６）、本処理を終了する。
【００４８】
一方、ステップＳ２３で未登録ユーザである場合、新規ユーザ登録確認画面をデジタルカメラ５００に送信する（ステップＳ２７）。そして、ユーザにより新規登録の確認が行われると、ユーザ管理部１５２により、ユーザ管理データベース１６０に新規ユーザの登録を行う（ステップＳ２８）。さらに、個人ソフトウェアデータベース１６２を構築する（ステップＳ２９）。そして、ユーザ管理部１５２により、新規に登録されたユーザ登録情報をデジタルカメラ５００に通知し（ステップＳ３０）、本処理を終了する。
【００４９】
このようにして、ユーザ登録情報の設定・変更が行われる。また、デジタルカメラのユーザは、本サービスを利用する際、予めソフトウェアの構築を行い、個人ソフトウェアデータベースに登録しておく必要がある。
【００５０】
［ソフトウェア構築］
図１０はデジタルカメラ側のソフトウェア構築処理手順を示すフローチャートである。この処理プログラムは、フラッシュＲＯＭ６０２に格納されており、マイクロコンピュータ６０１によって実行される。
【００５１】
まず、ユーザが操作スイッチ５０８を操作したことに応じて、液晶表示部５０７にメニュー画面（図７参照）を表示し、ユーザによって「カスタマイズ」が選択されると、カスタマイズソフトウェア１１２の実行を開始する（ステップＳ４１）。カスタマイズソフトウェア１１２が実行すると、ユーザ名入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより設定されたユーザの名称（ユーザ名）を入力する（ステップＳ４２）。
【００５２】
さらに、パスワード入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより指定された任意のパスワードを入力する（ステップＳ４３）。入力されたユーザ名およびパスワードを用いて、デジタルカメラ５００内のユーザ登録情報１２０を検索し、該当するユーザ登録情報を取得する（ステップＳ４４）。そして、通信ソフトウェア１１５を起動させ、通信制御部６６１により通信回線６６２をホストサーバ１５０に接続する（ステップＳ４５）。ホストサーバ１５０への接続が完了すると、ユーザ登録情報１２０および装置識別コード１２１をホストサーバ１５０に送信する（ステップＳ４６）。
【００５３】
この後、ホストサーバ１５０からデータを受信し（ステップＳ４７）、受信したデータが汎用部品メニュー（図５、図６の汎用部品リスト参照）であるか、あるいは認証エラーの通知であるかを判別する（ステップＳ４８）。汎用部品メニューである場合、それを表示し、ユーザが操作スイッチ５０８を操作することにより選択された汎用部品をホストサーバ１５０に送信する（ステップＳ４９）。この汎用部品の選択処理の詳細については、図２５を用いて後述する。さらに、ユーザが操作スイッチ５０８を操作することにより設定されたソフトウェア名称を入力し、ホストサーバ１５０に送信する（ステップＳ５０）。
【００５４】
そして、ホストサーバ１５０から個人ソフトウェアの一覧を受信すると（ステップＳ５１）、登録ソフトウェア名称の一覧を表示する（ステップＳ５２）。この後、ホストサーバ１５０との通信を切断し（ステップＳ５３）、本処理を終了する。
【００５５】
一方、ステップＳ４８で認証エラーの通知であった場合、無効なユーザ警告を表示し（ステップＳ５４）、ステップＳ５３の通信切断処理に移行する。
【００５６】
図１１はホストサーバ１５０側のソフトウェア構築処理手順を示すフローチャートである。この処理プログラムは、ホストサーバ１５０内の記憶媒体１５７に記憶されており、ホストサーバ１５０内のＣＰＵ１５６によって実行される。
【００５７】
ホストサーバ１５０は、ユーザ登録情報１２０および装置識別コード１２１を受信すると（ステップＳ６１）、これを基に、ユーザ認証部１５３により、ユーザ管理データベース１６０を検索し、ユーザ認証を行う（ステップＳ６２）。そして、このユーザ認証の結果を判定し（ステップＳ６３）、このユーザがユーザ管理データベース１６０に登録されている場合、ソフトウェア構築部１５５により、汎用部品群１６１に登録されている汎用部品リスト（汎用部品メニュー）をデジタルカメラ５００に送信する（ステップＳ６４）。
【００５８】
汎用部品メニューを基に、個々の汎用部品に対し、機能を実現するためのパラメータを選択・設定することが可能である。ユーザが操作スイッチ５０８を操作し、汎用部品メニューの中から、フラッシュＲＯＭ６０２の容量に見合った範囲で、希望する機能を選択し、その機能に対するパラメータを設定すると、ホストサーバ１５０はデジタルカメラ５００からユーザが利用したい汎用部品（機能）の選択及びソフトウェア名称を受信する（ステップＳ６５）。
【００５９】
選択された汎用部品および付属のパラメータを基に、ソフトウェア構築部１５５により汎用部品群１６１を組み合わせてデジタルカメラ制御ソフトウェア（撮像装置制御ソフトウェア）１１１を構築する（ステップＳ６６）。構築されたデジタルカメラ制御ソフトウェア１１１を、個人ソフトウェアデータベース１６２にソフトウェア名称と一緒に登録する（ステップＳ６７）。尚、構築した制御ソフトウェアを、その場で撮像装置に機能を設定する場合、データベースに登録しないで撮像装置側に送信してもよい。
【００６０】
デジタルカメラ制御ソフトウェア１１１の登録が完了すると、ソフトウェア選択部１５４により、個人ソフトウェアデータベース１６２に登録されているデジタルカメラ制御ソフトウェアの一覧をデジタルカメラ５００に送信する（ステップＳ６８）。そして、本処理を終了する。
【００６１】
一方、ステップＳ６３におけるユーザ認証の結果、このユーザがユーザ管理データベース１６０に登録されていない場合、ユーザ認証部１５３により、認証エラーをデジタルカメラ５００に通知する（ステップＳ６９）。この後、本処理を終了する。このようにして、デジタルカメラ制御ソフトウェア（制御プログラム）のカスタマイズ（機能設定）が行われる。
【００６２】
［ソフトウェア構築（最適化）］
前述したステップＳ６６におけるソフトウェア構築では、制御ソフトウェアを格納するデジタルカメラ側のフラッシュＲＯＭの容量が限られている場合、ＲＯＭ容量を考慮したソフトウェア構築を行う必要がある。ここでは、ＲＯＭ容量を考慮した場合のソフトウェア構築を示す。この場合、ユーザは、ステップＳ４９でフラッシュＲＯＭ６０２の容量に見合った範囲で、希望する機能（複数の汎用部品）を選択し、付属のパラメータを設定することになる。
【００６３】
デジタルカメラ５００側では、ステップＳ６４で送信された汎用部品メニュー（部品リスト、構築メニュー）をステップＳ４７において受信すると、マイクロコンピュータ６０１は、ＲＯＭの全容量および使用量から算出した空き容量情報を取得し、設定画面を表示する。図２３はソフトウェア構築（最適化）設定画面を示す図である。この設定画面には、デジタルカメラのフラッシュＲＯＭの全容量および現在の制御プログラムで使用可能な空きＲＯＭ容量が表示されている。この例では、既存の制御プログラムに加え、２４ＭＢのプログラム容量の空きがあることが示されている。
【００６４】
また、この部品リストの機能では、高速シャッタ機能、高速ＡＦ機能、高精度ＡＥ機能およびレリーズタイムラグの設定が示されている。各機能にはそれぞれ必要な空きＲＯＭ容量が定められている。尚、これらの機能は、デジタルカメラの設定における一例を示したものであり、特に機能を限定するものではない。各機能にはそれぞれ必要な空きＲＯＭ容量が定められているので、機能だけを表示する場合、空きＲＯＭ容量の範囲内で機能が選択可能である。また、空きＲＯＭ容量の範囲を超える機能がある場合、そのような機能の選択を行えないようにする、あるいは警告を出して機能の選択をやり直させるようにする。
【００６５】
さらに、各機能に対し、構築時の最適化オプションの指定を行うことができるようになっている。最適化オプションでは、各機能（コンポーネント）の動作と各機能に対する制御プログラムのコード容量を最適化して設定することが可能である。図２４は構築時の最適化オプションとしてコード生成最適化オプションを示すテーブルである。「Ｌｅｖｅｌ０」は、コードサイズを最も小さくする構築オプション指定である。このオプションを指定することで、同機能を実現させるためのプログラムコードを最も小さくすることが可能であり、空きＲＯＭ容量に対して多くの機能を入れることが可能である。一方、「Ｌｅｖｅｌ３」は、マイクロコンピュータの処理速度を最も速く実行できるコードを生成する構築オプション指定である。このオプションを指定することで、同機能を実現させるためにマイクロコンピュータのキャッシュサイズを考慮し、関数（サブルーチン）呼び出しを極力少なくし、更にループの見直しまで行うことで速度を速くすることができる。しかし、この構築オプション指定では、コードサイズが犠牲になっている。「Ｌｅｖｅｌ２」、「Ｌｅｖｅｌ３」は、それぞれ中間的なコード生成の構築オプション指定であり、それぞれに見合ったサイズのコードが生成される。尚、図２３では、各機能に対し、３段階の構築オプション指定が可能である。
【００６６】
このように、図２３のソフトウェア構築の設定画面では、機能を実現するための機能選択および最適化オプションが設定される。ユーザが操作スイッチ５０８を操作し、機能メニューの中から、希望する機能（複数の汎用部品）を選択し、最適化オプションを設定すると、空きＲＯＭ容量が更新される。ユーザは、ＲＯＭ容量に収まる範囲内で機能および処理速度のトレードオフを行い、ユーザの要望に見合った設定を行うことができる。
【００６７】
図２５はステップＳ４９の処理の一部として、デジタルカメラ側で実行される部品選択・構築オプション指定処理手順を示すフローチャートである。ステップＳ６４におけるホストサーバ１５０からの汎用部品、構築メニュー送信に対し、デジタルカメラ５００では、ホストサーバからの情報に従って機能の表示、ＲＯＭ容量情報の表示、最適化オプション指定の画面表示（図２３参照）を行う（ステップＳ４２１）。
【００６８】
ユーザによって指示された所望の機能の選択を行う（ステップＳ４２２）。最初に機能の選択が行われた際、本実施形態では、最適化オプションには「標準」が選択されている。尚、ＲＯＭの空き容量を考慮して自動的に初期値が選択されるようにしてもよい。機能の選択が行われると、最適化オプションの選択値（本実施形態では、標準）に対応するコードサイズ分のＲＯＭ使用容量（空き）を更新し、設定画面（図２３参照）に表示される空きＲＯＭ容量を更新する（ステップＳ４２３）。
【００６９】
引き続き、ユーザによって指示された最適化オプションの選択を行う（ステップＳ４２４）。ここで、機能毎に最適化オプションは異なり、前述したように、コードサイズを優先させる場合および速度を優先させる場合を段階的に選択することが可能である。ここで選択された値に対し、機能毎にコード生成最適化オプションが対応付けられ、ソフトウェア構築時の最適化レベルが決定される。最適化オプションが選択されると、対応するコードサイズ分のＲＯＭ容量（空き）を更新し、設定画面（図２３参照）に表示されている空きＲＯＭ容量を更新する（ステップＳ４２５）。
【００７０】
ユーザによる全ての機能選択および最適化オプションの選択が完了したか否かを判別する（ステップＳ４２６）。設定を継続する場合、ステップＳ４２２の機能選択処理に戻り、別の機能を選択する。一方、設定が完了した場合、マイクロコンピュータ６０１は、選択した結果、全ての機能が空きＲＯＭ容量に収まるか否かを判別する（ステップＳ４２７）。ＲＯＭ容量に収まる場合、本設定処理を終了する。
【００７１】
一方、ＲＯＭ容量に収まらない場合、再度、ステップＳ４２２の機能選択処理に戻り、ＲＯＭ容量に収まる範囲での機能選択、最適化オプション指定を繰り返す。尚、本実施形態では、ＲＯＭ容量の確認を、ステップＳ４２７として最後のステップ処理で行っているが、これは、ユーザが希望する機能選択および最適化オプションを全て入力させるためである。他の方法としては、ユーザが希望する機能を全て選択した後、ＲＯＭの空き容量に応じてコード生成の最適化を、マイクロコンピュータ側で自動的に設定するようにしてもよい。また、ユーザが機能の選択を行う毎にＲＯＭ空き容量を取得して更新し、ＲＯＭ空き容量を超える場合、その時点で新しい機能の選択やコード容量の大きい高速化オプションの表示をグレイアウトさせるなど、指定できないように制御する方法もある。また、選択をやり直させるように警告を出してもよい。
【００７２】
このように、デジタルカメラ側で設定が完了すると、ホストサーバ１５０は、ステップＳ６５において、デジタルカメラ５００から、ユーザが利用したい汎用部品の選択、構築オプション（最適化オプション）およびソフトウェア名称を受信する。さらに、ステップＳ６６において、選択された汎用部品および構築オプションを基に、ホストサーバ１５０側でソフトウェア構築部１５５により汎用部品群１６１を組み合わせ、かつ最適化オプションに従ってデジタルカメラ制御ソフトウェア（記録装置制御ソフトウェア）１１１を構築する。このようにして、デジタルカメラ制御ソフトウェア（制御プログラム）のカスタマイズ（機能設定）が行われる。
【００７３】
尚、ここでは、デジタルカメラ側で全ＲＯＭ容量と使用量から空き容量を算出し、機能選択を制御したが、ホストサーバ側でデジタルカメラ側からＲＯＭ容量に関する情報を取得し、ホストサーバ側から撮像装置側の機能選択を制御するようにしてもよい。
【００７４】
［ソフトウェア選択］
図１２はデジタルカメラ側のソフトウェア選択処理手順を示すフローチャートである。この処理プログラムは、フラッシュＲＯＭ６０２に格納されており、マイクロコンピュータ６０１によって実行される。
【００７５】
ユーザが操作スイッチ５０８を操作したことに応じて、液晶表示部５０７にメニュー画面を表示し（図７参照）、ユーザによって「ソフトウェア選択」が指定されると、選択ソフトウェア１１３の実行を開始する（ステップＳ７１）。選択ソフトウェア１１２が実行されると、ユーザ名入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより設定されたユーザの名称（ユーザ名）を入力する（ステップＳ７２）。さらに、パスワード入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより指定された任意のパスワードを入力する（ステップＳ７３）。
【００７６】
入力されたユーザ名およびパスワードを用いて、デジタルカメラ５００内のユーザ登録情報１２０を検索し、ユーザ登録情報を取得する（ステップＳ７４）。そして、通信ソフトウェア１１５を起動させ、通信制御部６６１により通信回線６６２をホストサーバ１５０に接続する（ステップＳ７５）。ホストサーバ１５０への接続が完了すると、ユーザ登録情報１２０および装置識別コード１２１をホストサーバ１５０に送信する（ステップＳ７６）。
【００７７】
この後、ホストサーバ１５０からデータを受信し（ステップＳ７７）、それが個人ソフトウェア一覧であるか、あるいは認証エラーであるかを判別する（ステップＳ７８）。個人ソフトウェア一覧である場合、液晶表示部５０７に、登録されたソフトウェアの一覧を表示する（ステップＳ７９）。ソフトウェアの一覧の中から、ユーザによって、所望のデジタルカメラ制御ソフトウェアが選択されると、その選択をホストサーバ１５０に送信する（ステップＳ８０）。そして、ホストサーバ１５０から選択された制御ソフトウェアを受信すると（ステップＳ８１）、ホストサーバ１５０との通信を切断する（ステップＳ８２）。この後、ホストサーバ１５０から送られた制御ソフトウェアを、記憶装置制御ソフトウェア１１１として、フラッシュＲＯＭ６０２に書き込み（ステップＳ８３）、本処理を終了する。
【００７８】
一方、ステップＳ７８で認証エラーである場合、デジタルカメラ５００は、液晶表示部５０７に無効なユーザ警告（ユーザ名またはパスワードに誤りがある旨など）を表示し（ステップＳ８４）、ステップＳ８２の通信切断処理に移行する。
【００７９】
図１３はホストサーバ１５０側のソフトウェア選択処理手順を示すフローチャートである。この処理プログラムは、ホストサーバ１５０内の記憶媒体１５７に記憶されており、ホストサーバ１５０内のＣＰＵ１５６によって実行される。
【００８０】
ホストサーバ１５０は、ユーザ登録情報１２０および装置識別コード１２１を受信すると（ステップＳ９１）、これらの情報を基に、ユーザ認証部１５３により、ユーザ管理データベース１６０を検索し、ユーザ認証を行う（ステップＳ９２）。そして、このユーザ認証の結果を判定する（ステップＳ９３）。このユーザがユーザ管理データベース１６０に登録されている場合、ソフトウェア選択部１５４により、個人ソフトウェアデータベース１６２に登録されているデジタルカメラ制御ソフトウェアの一覧をデジタルカメラ５００に送信する（ステップＳ９４）。
【００８１】
そして、ユーザの所望するデジタルカメラ制御ソフトウェアの選択をデジタルカメラ５００から受信すると（ステップＳ９５）、選択された制御ソフトウェアを、ソフトウェア選択部１５４により、個人ソフトウェアデータベース１６２から読み出し、デジタルカメラ５００に送信する（ステップＳ９６）。この後、本処理を終了する。
【００８２】
一方、ステップＳ９３のユーザ認証の結果、このユーザがユーザ管理データベース１６０に登録されていない場合、ユーザ認証部１５３により、認証エラーをデジタルカメラ５００に通知する（ステップＳ９７）、本処理を終了する。
【００８３】
このように、第１の実施形態によれば、デジタルカメラ５００のユーザは、ホストサーバ１５０に対してユーザ登録を行い、所望のデジタルカメラ制御ソフトウェアを構築してホストサーバ１５０の個人ソフトウェアデータベース１６２に登録しておき、必要に応じて、個人ソフトウェアデータベース１６２に登録された複数の制御ソフトウェアの中から所望の制御ソフトウェアを選択し、選択した制御ソフトウェアをホストサーバ１５０からダウンロードし、デジタルカメラ制御ソフトウェア１１１として、フラッシュＲＯＭ６０２に書き込むことで更新し、デジタルカメラの機能を任意の設定に変更する（カスタマイズする）ことができる。
【００８４】
尚、上記実施形態では、デジタルカメラ側で制御プログラムを格納する記憶媒体としてフラッシュＲＯＭを用いた場合を示したが、特にこれに限定されるものではなく、フラッシュＲＯＭの代わりに、ＥＥＰＲＯＭやＥＰＲＯＭを用いてもよい。また、このような記憶媒体として、デジタルカメラ本体に着脱自在なＵＳＢメモリやカード型メモリを用いてもよい。さらには、半導体メモリの代わりに、磁気バブルメモリや光磁気ディスク等を用いてもよい。このことは、以後の実施形態においても同様である。
【００８５】
［第２の実施形態］
図１４は第２の実施形態におけるソフトウェアカスタマイズシステムの構成を示す図である。第２の実施形態では、前記第１の実施形態のソフトウェアカスタマイズシステムに対して、ホストサーバの機能を拡張し、サービスが増強されている。以下に、ホストサーバの機能拡張に伴う記録装置の追加サービス利用手順について説明する。
【００８６】
［システム構成］
第２の実施形態のソフトウェアカスタマイズシステムは、前記第１の実施形態と同様、ネットワークを介して記録装置８００およびホストサーバ８５０が接続された構成を有する。この記録装置８００は、前記第１の実施形態と同様、具体的には、前述したデジタルカメラ５００に適用されるものであり、記録データ入力部１０１、データ記録部１０２、マイクロコンピュータ１０３、一時記憶部１０４、ソフトウェア記憶部８０５、操作部１０６、表示部１０７および通信部１０８を有する。尚、前記第１の実施形態と同一の構成要素については、同一の符号を付すことにより、その説明を省略する。また、デジタルカメラ５００の構成は、前記第１の実施形態と同じである。
【００８７】
ソフトウェア記憶部８０５には、記録装置制御ソフトウェア（制御プログラム）１１１、カスタマイズソフトウェア１１２、選択ソフトウェア１１３、ユーザ登録ソフトウェア１１４、通信ソフトウェア１１５、ユーザ登録情報１２０および装置識別コード１２１の他、公開ソフトウェア８１６および公開取り消しソフトウェア８１７が格納されている。
【００８８】
一方、ホストサーバ８５０は、通信部１５１、ユーザ管理部１５２、ユーザ認証部１５３、ＣＰＵ１５６、記憶媒体１５７、ユーザ管理データベース１６０、ソフトウェア選択部８５４、汎用部品群１６１、ソフトウェア構築部１５５、個人ソフトウェアデータベース１６２、ソフトウェア公開・公開取り消し部８５６を有する。
【００８９】
通信部１５１は記録装置８００に接続される。ここでは、この接続は無線により電気的に行われているが、有線で行われてもよい。ユーザ管理部１５２はユーザ登録を行う。ユーザ認証部１５３は接続したユーザの認証を行う。ユーザ管理データベース１６０には、ユーザの情報が蓄積されている。ソフトウェア選択部８５４は、登録されている記録装置制御ソフトウェアの一覧を記録装置８００に送り、所望の記録装置制御ソフトウェアを選択する。汎用部品群１６１には、記録装置の制御ソフトウェアを構築するためのソフトウェア部品が集められている。ソフトウェア構築部１５５は、ユーザの希望するカスタマイズに応じて、汎用部品群１６１のソフトウェア部品を組み合わせて記録装置制御ソフトウェアを構築する。個人ソフトウェアデータベース１６２には、構築したユーザ固有の記録装置制御ソフトウェアが格納される。
【００９０】
ソフトウェア公開・公開取り消し部８５６は、ユーザの操作により、個人ソフトウェアデータベースに登録されている記録装置制御ソフトウェアを公開し、全てのユーザが利用可能な共有（共用）ソフトウェアデータベース８６３に登録する。ここで、ソフトウェア公開・公開取り消し部８５６および共有ソフトウェアデータベース８６３は、第１の実施形態のシステムに対して追加された機能およびサービスである。
【００９１】
図１５は第２の実施形態において追加された分の汎用部品を示すテーブルである。このテーブルには、汎用部品および部品の機能説明からなる２つの項目が設けられている。追加された機能として、ソフトウェア公開機能、ソフトウェア公開取り消し機能、および新ソフトウェア選択機能が示されている。
【００９２】
また、記録装置８００としては、前記第１の実施形態と同様、デジタルカメラが用いられる。また、第２の実施形態では、ホストサーバ８５０にソフトウェア公開・公開取り消し部８５６および共有ソフトウェアデータベース８６３を加えることで、より幅広いデジタルカメラの利用価値が与えられる。第２の実施形態における新機能を利用するためには、図１５に示す部品を追加する必要がある。その手順として、第１の実施形態におけるソフトウェア構築処理（図１０、図１１参照）における、汎用部品メニュー選択（ステップＳ４９）で、図１５に示す部品を選択することで、ソフトウェアを構築する。
【００９３】
さらに、第１の実施形態におけるソフトウェア選択処理（図１２、図１３参照）において、登録ソフトウェア選択処理（ステップＳ８０）で、先に構築したソフトウェアを選択し、記録装置８００のソフトウェアカスタマイズを行うことで、ソフトウェア公開、ソフトウェア公開取り消しおよび新しいソフトウェア選択を利用することができる。したがって、デジタルカメラのユーザは、本サービスを利用する際、予めソフトウェアの構築を行い、個人ソフトウェアデータベースに登録しておく必要がある。
【００９４】
［ソフトウェア公開］
図１６はデジタルカメラ側のソフトウェア公開処理手順を示すフローチャートである。この処理プログラムは、フラッシュＲＯＭ６０２に格納されており、マイクロコンピュータ６０１によって実行される。
【００９５】
ユーザが操作スイッチ５０８を操作したことに応じて、液晶表示部５０７にメニュー画面（図７参照）を表示し、ユーザによって「ソフトウェア公開」が指定されると、公開ソフトウェア８１６の実行を開始する（ステップＳ１０１）。公開ソフトウェア１１６が実行されると、ユーザ名入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより、設定したユーザの名称（ユーザ名）を入力する（ステップＳ１０２）。さらに、パスワード入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより、指定した任意のパスワードを入力する（ステップＳ１０３）。入力されたユーザ名およびパスワードを用いて、デジタルカメラ５００内のユーザ登録情報１２０を検索し、ユーザ登録情報を取得する（ステップＳ１０４）。そして、通信ソフトウェア１１５を起動させ、通信制御部６６１により通信回線６６２をホストサーバ８５０に接続する（ステップＳ１０５）。ホストサーバ８５０への接続が完了すると、ユーザ登録情報１２０および装置識別コード１２１をホストサーバ８５０に送信する（ステップＳ１０６）。
【００９６】
この後、ホストサーバ８５０からデータを受信すると（ステップＳ１０７）、受信したデータが個人ソフトウェアの一覧であるか、あるいは認証エラーであるかを判別する（ステップＳ１０８）。個人ソフトウェアの一覧である場合、液晶表示部５０７に、登録されたソフトウェアの名称一覧を表示する（ステップＳ１０９）。ユーザが所望のデジタルカメラ制御ソフトウェアを名称一覧から選択すると、その選択をホストサーバ８５０に送信する（ステップＳ１１０）。そして、ホストサーバ８５０との通信を切断する（ステップＳ１１１）。この後、本処理を終了する。
【００９７】
一方、ステップＳ１０８で認証エラーが通知された場合、デジタルカメラ５００は、液晶表示部５０７に無効なユーザ警告（ユーザ名またはパスワードに誤りがある旨など）を表示し（ステップＳ１１２）、ステップＳ１１１の処理に移行する。
【００９８】
図１７はホストサーバ８５０側のソフトウェア公開処理手順を示すフローチャートである。この処理プログラムは、ホストサーバ８５０内の記憶媒体１５７に記憶されており、ホストサーバ８５０内のＣＰＵ１５６によって実行される。
【００９９】
ホストサーバ８５０は、ユーザ登録情報１２０および装置識別コード１２１を受信すると（ステップＳ１２１）、これらの情報を基に、ユーザ認証部１５３により、ユーザ管理データベース１６０を検索し、ユーザ認証を行う（ステップＳ１２２）。そして、このユーザ認証の結果を判定する（ステップＳ１２３）。
【０１００】
このユーザがユーザ管理データベース８６０に登録されている場合、ソフトウェア公開・公開取り消し部８５６により、個人ソフトウェアデータベース１６２に登録されているデジタルカメラ制御ソフトウェアの一覧をデジタルカメラ５００に送信する（ステップＳ１２４）。ユーザが所望するデジタルカメラ制御ソフトウェアの選択を受信すると（ステップＳ１２５）、ソフトウェア公開・公開取り消し部８５６により、選択されたソフトウェアを個人ソフトウェアデータベース１６２から読み出し、共有ソフトウェアデータベース８６３に転送する（ステップＳ１２６）。この後、本処理を終了する。
【０１０１】
一方、ステップＳ１２３でユーザ認証の結果、このユーザがユーザ管理データベース１６０に登録されていない場合、ユーザ認証部１５３により、デジタルカメラ５００に認証エラーを通知し（ステップＳ１２７）、本処理を終了する。
【０１０２】
［ソフトウェア選択］
図１８はデジタルカメラ側のソフトウェア選択処理手順を示すフローチャートである。この処理プログラムは、フラッシュＲＯＭ６０２に格納されており、マイクロコンピュータ６０１によって実行される。
【０１０３】
ユーザが操作スイッチ５０８を操作したことに応じて、液晶表示部５０７にメニュー画面（図７参照）を表示し、ユーザによって「ソフトウェア選択Ａ」が指定されると、選択ソフトウェア１１３の実行を開始する（ステップＳ１３１）。選択ソフトウェア１１３が実行されると、ユーザ名入力画面を表示し、ユーザが操作スイッチ５０８を操作することにより、設定したユーザの名称（ユーザ名）を入力する（ステップＳ１３２）。さらに、パスワード入力画面を表示し（図示せず）、ユーザが操作スイッチ５０８を操作することにより、指定した任意のパスワードを入力する（ステップＳ１３３）。入力されたユーザ名およびパスワードを用いて、デジタルカメラ内のユーザ登録情報１２０を検索し、ユーザ登録情報を取得する（ステップＳ１３４）。そして、通信ソフトウェア１１５を起動させ、通信制御部６６１により通信回線６６２をホストサーバ１５０に接続する（ステップＳ１３５）。ホストサーバ１５０への接続が完了すると、ユーザ登録情報１２０および装置識別コード１２１をホストサーバ１５０に送信する（ステップＳ１３６）。
【０１０４】
この後、ホストサーバ８５０からデータを受信すると（ステップＳ１３７）、このデータが認証エラーの通知であるか否かを判別する（ステップＳ１３８）。認証エラーの通知でない場合、個人ソフトウェアデータベース１６２に登録されているデジタルカメラ制御ソフトウェアの一覧であるか、あるいは共有ソフトウェアデータベース８６３に登録されているデジタルカメラ制御ソフトウェアの一覧であるかを判別する（ステップＳ１３９）。
【０１０５】
個人ソフトウェアデータベース１６２に登録されているデジタルカメラ制御ソフトウェアの一覧である場合、液晶表示部５０７に、登録されたソフトウェアの一覧を表示する（ステップＳ１４０）。ユーザが所望のデジタルカメラ制御ソフトウェアをその一覧から選択すると、この選択をホストサーバ８５０に送信する（ステップＳ１４１）。そして、ホストサーバ８５０から選択された制御ソフトウェアを受信すると（ステップＳ１４２）、ホストサーバ８５０との通信を切断する（ステップＳ１４３）。デジタルカメラ５００に送られたソフトウェアを、記憶装置制御ソフトウェア１１１として、フラッシュＲＯＭ６０２に書き込む（ステップＳ１４４）。この後、本処理を終了する。
【０１０６】
一方、ステップＳ１３９で共有ソフトウェアデータベース８６３に登録されているデジタルカメラ制御ソフトウェアの一覧である場合、液晶表示部５０７に、登録されたソフトウェアの一覧を表示する（ステップＳ１４５）。ユーザが所望のデジタルカメラ制御ソフトウェアを一覧から選択すると、この選択をホストサーバ８５０に送信する（ステップＳ１４６）。そして、ホストサーバ８５０から選択された制御ソフトウェアを受信すると（ステップＳ１４７）、ステップＳ１４３の通信切断処理に移行する。
【０１０７】
また一方、ステップＳ１３８で認証エラーが通知された場合、デジタルカメラ５００は、液晶表示部５０７に無効なユーザ警告（ユーザ名またはパスワードに誤りがある旨など）を表示し（ステップＳ１４８）、ステップＳ１４３の通信切断処理に移行する。
【０１０８】
図１９はホストサーバ８５０側のソフトウェア選択処理手順を示すフローチャートである。この処理プログラムは、ホストサーバ８５０内の記憶媒体１５７に記憶されており、ホストサーバ８５０内のＣＰＵ１５６によって実行される。
【０１０９】
ホストサーバ８５０は、ユーザ登録情報１２０および装置識別コード１２１を受信すると（ステップＳ１５１）、この情報を基に、ユーザ認証部１５３により、ユーザ管理データベース１６０を検索し、ユーザ認証を行う（ステップＳ１５２）。そして、このユーザ認証の結果を判定する（ステップＳ１５３）。
【０１１０】
このユーザがユーザ管理データベース１６０に登録されている場合、ソフトウェア選択部８５４により、ソフトウェアデータベースを選択する（ステップＳ１５４）。そして、選択の結果を判定する（ステップＳ１５５）。個人ソフトウェアデータベース１６２が選択された場合、個人ソフトウェアデータベース１６２に登録されているデジタルカメラ制御ソフトウェアの一覧をデジタルカメラ５００に送信する（ステップＳ１５６）。
【０１１１】
ユーザによる所望のデジタルカメラ制御ソフトウェアの選択を受信すると（ステップＳ１５７）、ソフトウェア選択部８５４により、選択されたソフトウェアを、個人ソフトウェアデータベース１６２から読み出してデジタルカメラ５００に送信する（ステップＳ１５８）。この後、本処理を終了する。
【０１１２】
一方、ステップＳ１５５で共有ソフトウェアデータベース８６３が選択された場合、共有ソフトウェアデータベース８６３に登録されているデジタルカメラ制御ソフトウェアの一覧をデジタルカメラ５００に送信する（ステップＳ１５９）。ユーザによる所望のデジタルカメラ制御ソフトウェアの選択を受信すると（ステップＳ１６０）、ソフトウェア選択部８５４により、選択されたソフトウェアを共有ソフトウェアデータベース８６３から読み出してデジタルカメラ５００に送信する（ステップＳ１６１）。この後、本処理を終了する。
【０１１３】
また一方、ステップＳ１５３でユーザ認証の結果、このユーザがユーザ管理データベース１６０に登録されていない場合、ユーザ認証部１５３により、認証エラーをデジタルカメラ５００に通知する（ステップＳ１６２）。この後、本処理を終了する。
【０１１４】
［ソフトウェア公開取り消し］
図２０はデジタルカメラ側のソフトウェア公開取り消し処理手順を示すフローチャートである。デジタルカメラのユーザは、本サービスを利用する際、予めソフトウェア公開を行い、共有ソフトウェアデータベースに登録しておく必要がある。この処理プログラムは、フラッシュＲＯＭ６０２に格納されており、マイクロコンピュータ６０１によって実行される。
【０１１５】
ユーザが操作スイッチ５０８を操作したことに応じて、液晶表示部５０７にメニュー画面（図７参照）を表示し、ユーザによって「非公開」が指定されると、公開取り消しソフトウェア８１７の実行を開始する（ステップＳ１７１）。公開取り消しソフトウェア８１７が実行されると、ユーザ名入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより設定されたユーザの名称（ユーザ名）を入力する（ステップＳ１７２）。さらに、パスワード入力画面（図示せず）を表示し、ユーザが操作スイッチ５０８を操作することにより指定された任意のパスワードを入力する（ステップＳ１７３）。
【０１１６】
入力されたユーザ名およびパスワードを用いて、デジタルカメラ５００内のユーザ登録情報１２０を検索し、ユーザ登録情報を取得する（ステップＳ１７４）。そして、通信ソフトウェア１１５を起動させ、通信制御部６６１により通信回線６６２をホストサーバ８５０に接続する（ステップＳ１７５）。ホストサーバ８５０への接続が完了すると、ユーザ登録情報１２０および装置識別コード１２１をホストサーバ８５０に送信する（ステップＳ１７６）。
【０１１７】
ホストサーバ８５０からデータを受信すると（ステップＳ１７７）、受信したデータが共有（共用）ソフトウェアの一覧であるか、あるいは認証エラーであるかを判別する（ステップＳ１７８）。共有ソフトウェアの一覧である場合、液晶表示部５０７に、登録されたソフトウェアの名称一覧を表示する（ステップＳ１７９）。ユーザによる所望のデジタルカメラ制御ソフトウェアの選択をホストサーバ８５０に送信する（ステップＳ１８０）。
【０１１８】
そして、ホストサーバ８５０から削除結果を受信すると（ステップＳ１８１）、所望のデジタルカメラ制御ソフトウェアが削除されたか否かを判別し（ステップＳ１８２）、削除された場合、ホストサーバ８５０との通信を切断する（ステップＳ１８３）。この後、本処理を終了する。一方、削除されなかった場合、液晶表示部５０７に、作成者が不一致である旨の警告表示を行い（ステップＳ１８４）、ステップＳ１８３の通信切断処理に移行する。また一方、ステップＳ１７８で認証エラーの通知であった場合、デジタルカメラ５００は、液晶表示部５０７に無効なユーザ警告（ユーザ名またはパスワードに誤りがある旨など）を表示し（ステップＳ１８５）、ステップＳ１８３の通信切断処理に移行する。
【０１１９】
図２１はホストサーバ８５０側のソフトウェア公開取り消し処理手順を示すフローチャートである。ホストサーバ８５０は、ユーザ登録情報１２０および装置識別コード１２１を受信すると（ステップＳ１９１）、これらの情報を基に、ユーザ認証部１５３により、ユーザ管理データベース１６０を検索し、ユーザ認証を行う（ステップＳ１９２）。このユーザ認証の結果を判定する（ステップＳ１９３）。このユーザがユーザ管理データベース１６０に登録されている場合、ソフトウェア公開・公開取り消し部８５６により、共有ソフトウェアデータベース８６３に登録されているデジタルカメラ制御ソフトウェアの一覧をデジタルカメラ５００に送信する（ステップＳ１９４）。
【０１２０】
ユーザによる所望のデジタルカメラ制御ソフトウェアの選択を受信すると（ステップＳ１９５）、ソフトウェア公開・公開取り消し部８５６により、選択されたソフトウェアはこのユーザが公開したものであるか否かを判定する（ステップＳ１９６）。このユーザが作成したソフトウェアである場合、共有ソフトウェアデータベース８６３からそのソフトウェアを削除する（ステップＳ１９７）。この後、本処理を終了する。
【０１２１】
一方、ステップＳ１９６で、選択されたソフトウェアはこのユーザが作成したソフトウェアでない場合、ソフトウェア公開・公開取り消し部８５６により、削除権限無しをデジタルカメラ５００に通知する（ステップＳ１９８）。この後、本処理を終了する。また一方、ステップＳ１９３でユーザ認証の結果、このユーザがユーザ管理データベース１６０に登録されていない場合、ユーザ認証部１５３により、認証エラーをデジタルカメラ５００に通知する（ステップＳ１９９）。この後、本処理を終了する。
【０１２２】
このように、第２の実施形態によれば、デジタルカメラ（記録装置）側では、ホストサーバ側の機能拡張に伴うサービス強化に対応することが可能である。
【０１２３】
［その他の実施形態］
上記各実施形態では、ユーザ登録情報１２０および装置識別コード１２１を用いて認証を行い、個人ソフトウェアデータベースはユーザ毎に管理を行っていたが、機器固有の装置識別コードではなく、機種毎に認証・管理を行ってもよい。これにより、一人のユーザが複数の機種のデジタルカメラを持っている場合、機種で自動的に認証可能になるため、ユーザ自身で機種を選択する処理が不要になり、また異なる機種のデータベースへのアクセスを防止できる。
【０１２４】
また、ユーザ認証の失敗やデジタルカメラ側でのエラーやサーバ間での通信エラーなどの理由によって、いずれかの機能設定状態が破損しているなどで両者の機能設定が異なっている場合、そのままデジタルカメラのＲＯＭに制御ソフトウェアを書き込み、更新してしまうと、デジタルカメラが動作しなくなってしまうおそれや、他のユーザの制御ソフトウェアで更新されてしまうといった可能性がある。
【０１２５】
そこで、デジタルカメラに現在の設定状態を格納し、ホストサーバ上の個人ソフトウェアデータベースに前回のデジタルカメラの機能設定状態を示す設定状態データを格納しておき、ＲＯＭの書き換えを行う前に、デジタルカメラとホストサーバ上の設定状態の整合性をチェックするようにしてもよい。尚、デジタルカメラおよびホストサーバのハードウェア構成は前記第１、第２の実施形態に示したものと同様である。
【０１２６】
図２６はホストサーバにおける設定状態のチェック処理手順を示すフローチャートである。この処理プログラムは、ホストサーバ内の記憶媒体に記憶されており、ホストサーバ内のＣＰＵによって実行される。まず、ユーザの認証を終えると、ホストサーバでは、デジタルカメラから設定状態データを取得する（ステップＳ４０１）。ホストサーバ側のＣＰＵは、各設定状態に整合性が取れているか否かの比較チェックを行う（ステップＳ４０２）。整合性が取れており、一致していると判別された場合、例えば、その比較結果をデジタルカメラ側に通知し、本チェック処理を終了する。デジタルカメラ側では、このチェック処理の結果を受けてから、ソフトウェアの構築処理によって構築された制御ソフトウェアの書き込み（ステップＳ８３参照）を行えるようにしてもよい。
【０１２７】
一方、ステップＳ４０２で整合性が取れておらず、不一致であると判別された場合、処置（１）として、ホストサーバ上の設定状態データを現在のデジタルカメラの設定状態データで上書きすることによって更新する（ステップＳ４０３）。この後、本チェック処理を終了する。
【０１２８】
尚、設定状態の更新は、次のいずれかの方法で行ってもよい。前述した処置（１）として、デジタルカメラ側の設定状態に合わせてホストサーバ上の設定状態データを変更する以外に、処置（２）として、設定状態データが異なっている、あるいは設定状態データが壊れている旨をホストサーバからデジタルカメラにエラーとして送り、デジタルカメラ側で確認や処理のやり直しを促すメッセージ画面を表示させるようにしてもよい。あるいは、処置（３）として、デジタルカメラ側のＲＯＭに機能設定の初期設定を格納しておき、設定状態データが異なっている場合、デジタルカメラ側をこの初期設定に戻し、初期設定状態をホストサーバ側にも送信して設定状態データを更新するようにしてもよい。
【０１２９】
さらには、これらの処置（１）〜（３）の３つの選択メニューをデジタルカメラに送信し、ユーザに選択させ、整合性が取れた後、上記チェック処理を終了するようにしてもよい。尚、このチェック処理は、ホストサーバからデジタルカメラに制御ソフトウェアを送信する前に行ってもよい。これにより、デジタルカメラ側およびホストサーバ側のいずれかで設定状態データが破損したまま、デジタルカメラのＲＯＭを上書きしてしまうことを確実に防止することができる。
【０１３０】
また、予め構築された制御ソフトウェアに対し、さらに機能を追加したい場合、ホストサーバから送信された、予め構築された制御ソフトウェアをその一覧から選択する。そして、ユーザは同様に追加したい機能のみを機能一覧から選択し、デジタルカメラからホストサーバに送信して指示する。これにより、ホストサーバは、既に構築された制御ソフトウェアに対して追加機能の変更を加えた制御ソフトウェアを再構築する。このように、以前に選択された機能に基づいて既に構築された制御ソフトウェアに、機能を追加したい場合、既に構築された制御ソフトウェアを指定し、変更したい機能のみを指示することにより制御ソフトウェアを再構築することも可能である。これにより、初めから機能を選択し直して制御ソフトウェアを構築する必要が無く、簡単にカスタマイズ可能となり、制御ソフトウェアの構築処理を短縮することが可能である。
【０１３１】
以上が本発明の実施形態の説明であるが、本発明は、これら実施の形態の構成に限られるものではなく、特許請求の範囲で示した機能、または実施の形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。
【０１３２】
例えば、上記実施形態では、設定する機能として、デジタルカメラの撮影等を設定する機能について示したが、操作スイッチやキーの割り当て機能、画面レイアウト設定機能など、特に設定される機能の種類は限定されるものではない。
【０１３３】
また、上記実施形態では、デジタルカメラに適用された場合を示したが、カメラ付き携帯端末、カメラ付き携帯電話、ビデオカメラ等でもよい。
【０１３４】
また、本発明は、上記実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１３５】
また、プログラムコードを供給するための記憶媒体としては、例えば、ＲＯＭ、フロッピー（登録商標）ディスク、ＰＣＭＣＩＡカードやコンパクトフラッシュ（登録商標）等のメモリカード、ハードディスク、マイクロＤＡＴ、光磁気ディスク、ＣＤ−ＲやＣＤ−ＲＷ等の光ディスク、ＤＶＤ等の相変化型光ディスク等で構成されてもよい。
【０１３６】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３８】
このように、予め機能設定を行った撮像装置の制御プログラムをデータ処理装置に登録しておき、必要に応じてデータ処理装置から簡単に取り出せるようにすることで、ユーザは所望の機能を選択するだけで実現するソフトウェアの組み合わせを指定することなく、組み合わせの指定をユーザが記憶しておく必要がないため、機能の選択が容易になる。
【図面の簡単な説明】
【０１３９】
【図１】第１の実施形態におけるソフトウェアカスタマイズシステムの構成を示す図である。
【図２】デジタルカメラの本体前面を示す図である。
【図３】デジタルカメラの本体背面を示す図である。
【図４】デジタルカメラの電気的構成を示すブロック図である。
【図５】第１の実施形態におけるデジタルカメラで実現可能な機能の一覧（汎用部品リスト）を示すテーブルである。
【図６】図５につづくデジタルカメラで実現可能な機能の一覧（汎用部品リスト）を示すテーブルである。
【図７】液晶表示部５０７に表示されるメニュー画面を示す図である。
【図８】デジタルカメラ側のユーザ登録処理手順を示すフローチャートである。
【図９】ホストサーバ１５０側のユーザ登録処理手順を示すフローチャートである。
【図１０】デジタルカメラ側のソフトウェア構築処理手順を示すフローチャートである。
【図１１】ホストサーバ１５０側のソフトウェア構築処理手順を示すフローチャートである。
【図１２】デジタルカメラ側のソフトウェア選択処理手順を示すフローチャートである。
【図１３】ホストサーバ１５０側のソフトウェア選択処理手順を示すフローチャートである。
【図１４】第２の実施形態におけるソフトウェアカスタマイズシステムの構成を示す図である。
【図１５】第２の実施形態において追加された分の汎用部品を示すテーブルである。
【図１６】デジタルカメラ側のソフトウェア公開処理手順を示すフローチャートである。
【図１７】ホストサーバ８５０側のソフトウェア公開処理手順を示すフローチャートである。
【図１８】デジタルカメラ側のソフトウェア選択処理手順を示すフローチャートである。
【図１９】ホストサーバ８５０側のソフトウェア選択処理手順を示すフローチャートである。
【図２０】デジタルカメラ側のソフトウェア公開取り消し処理手順を示すフローチャートである。
【図２１】ホストサーバ８５０側のソフトウェア公開取り消し処理手順を示すフローチャートである。
【図２２】従来の記録装置のカスタマイズ処理手順を示すフローチャートである。
【図２３】ソフトウェア構築（最適化）設定画面を示す図である。
【図２４】構築時の最適化オプションとしてコード生成最適化オプションを示すテーブルである。
【図２５】ステップＳ４９の処理の一部として、デジタルカメラ側で実行される部品選択・構築オプション指定処理手順を示すフローチャートである。
【図２６】ホストサーバにおける設定状態のチェック処理手順を示すフローチャートである。
【符号の説明】
【０１４０】
１００  記録装置
１１１  記録装置制御ソフトウェア
１１２  カスタマイズソフトウェア
１１３、８１３  選択ソフトウェア
１５０  ホストサーバ
１５３  ユーザ認証部
１５５、８５４  ソフトウェア構築部
１５６  ＣＰＵ
１５７  記憶媒体
１６０  ユーザ管理データベース
１６１  汎用部品群
１６２  個人ソフトウェアデータベース
６０２  フラッシュＲＯＭ
８１６  公開ソフトウェア
８１７  公開取り消しソフトウェア
８５６  ソフトウェア公開・公開取り消し部
８６３  共有ソフトウェアデータベース
【図１】
2006020298.tif 000003
【図２】
2006020298.tif 000004
【図３】
2006020298.tif 000005
【図４】
2006020298.tif 000006
【図５】
2006020298.tif 000007
【図６】
2006020298.tif 000008
【図７】
2006020298.tif 000009
【図８】
2006020298.tif 000010
【図９】
2006020298.tif 000011
【図１０】
2006020298.tif 000012
【図１１】
2006020298.tif 000013
【図１２】
2006020298.tif 000014
【図１３】
2006020298.tif 000015
【図１４】
2006020298.tif 000016
【図１５】
2006020298.tif 000017
【図１６】
2006020298.tif 000018
【図１７】
2006020298.tif 000019
【図１８】
2006020298.tif 000020
【図１９】
2006020298.tif 000021
【図２０】
2006020298.tif 000022
【図２１】
2006020298.tif 000023
【図２２】
2006020298.tif 000024
【図２３】
2006020298.tif 000025
【図２４】
2006020298.tif 000026
【図２５】
2006020298.tif 000027
【図２６】
2006020298.tif 000028