(57)【要約】【課題】  インターフェースに依存しない画像データの転送及び記録指示を行うことにより、各社の撮像装置からの画像データを受信し、良好な画像を記録できるようにする。また、デジタルカメラ等の撮像装置で画像特徴量を算出し、算出結果を記録装置に転送することにより、巨大な画像データを何度も撮像装置から、記録装置へと転送する必要がなくなり、高速で、かつ良好な画像出力を可能とする。【解決手段】  デジタルカメラ（ＤＳＣ）３０１２からＰＤプリンタ装置１０００に画像データを送信して記録する際、ＰＤプリンタ装置とＤＳＣに実装されたアプリケーション（ＮＣＤＰ）による通信手順の確立後、ＰＤプリンタ装置からＤＳＣに、そのＰＤプリンタ装置が有しているCapabilityを纏めて送信する。ＤＳＣは、そのCapabilityに応じて、プリント選択された画像の画像特徴量を算出して、算出結果をＰＤプリンタ装置に送信する。この情報を受信したＰＤプリンタは、その画像特徴量を元に、画像補正を行い、記録（印刷）を行う。【選択図】      図２５
2004274728.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置と記録装置とが直接通信し、前記撮像装置から前記記録装置に画像データを送信して記録する記録システムであって、
前記記録装置には、
前記記録装置と前記撮像装置に実装されたアプリケーションによる通信手順の確立後、前記記録装置から前記撮像装置に前記記録装置が有している機能情報を送信する第1送信手段と、
前記撮像装置から、画像データと当該画像の特徴量に関する情報を受信する第1受信手段と、
前記第1受信手段により受信された画像データを、前記特徴量に基づいて補正する補正手段とを有し、
前記撮像装置には、
前記記録装置から前記機能情報を受信する第２受信手段と、
撮影された画像の特徴量を抽出する特徴量抽出手段と、
前記第２受信手段により受信された前記機能情報に基づいて、前記特徴量抽出手段によって、抽出された特徴量に関する情報を前記記録装置に送信する第２送信手段と
を有することを特徴とする記録システム。
【請求項２】
前記記録装置は、前記補正手段により補正された画像をプリント出力する出力手段を有することを特徴とする請求項１に記載の記録システム。
【請求項３】
前記撮像装置は、さらに、前記記録装置へ送信すべき画像を指定する指定手段を有し、前記第２送信手段は、前記指定手段により指定された画像を指定する情報とともに前記特徴量に関する情報を送信することを特徴とする請求項１乃至２のいずれか１項に記載の記録システム。
【請求項４】
前記第２送信手段は、前記第２受信手段により受信された前記機能情報に応じた種類の特徴量を送信することを特徴とする請求項１ないし３のいずれか1項に記載の記録システム。
【請求項５】
前記特徴量抽出手段は、撮像画像の明度、彩度、色相に関するヒストグラムを生成することを特徴とする請求項１に記載の記録システム。
【請求項６】
前記記録装置は、前記第１受信手段により受信された画像データより画像の特徴量を抽出する特徴量抽出手段と
前記撮像装置から受信した第１の当該画像の特徴量に関する情報および前記記録装置で抽出した第２の当該画像の特徴量に関する情報のうち、少なくとも一つの当該画像の特徴量に基づき、前記第1受信手段により受信された画像データを、前記特徴量に基づいて補正する補正手段と
を有することを特徴とする請求項１乃至５のいずれか１項に記載の記録システム。
【請求項７】
撮像装置と記録装置とが直接通信し、前記撮像装置から前記記録装置に画像データを送信して記録する記録システムの制御方法であって、
前記記録装置と前記撮像装置に実装されたアプリケーションによる通信の確立後、前記記録装置から前記撮像装置に前記記録装置が有している機能情報を送信する第1送信工程と、
前記撮像装置側において、撮影された画像の特徴量を抽出する特徴量抽出工程と、
第１送信工程で送信された前記機能情報に基づいて、前記特徴量抽出工程によって、抽出された特徴量に関する情報を前記記録装置に送信する第２送信工程と
第２送信工程により送信された前記特徴量に関する情報に基づいて、前記記録装置において画像データを補正する補正工程とを有する事を特徴とする制御方法。
【請求項８】
さらに、前記補正工程で補正された画像データをプリント出力するプリント工程を有することを特徴とする請求項７に記載の制御方法。
【請求項９】
前記第２工程は、前記機能情報に応じた種類の特徴量を送信することを特徴とする請求項７又は８に記載の制御方法。
【請求項１０】
撮像装置と直接通信するプリンタであって、
前記撮像装置との通信の確立後、前記撮像装置に前記プリンタが有している機能情報を送信する送信手段と、
前記撮像装置から、画像データと、前記機能情報に応じた前記画像データの特徴量に関する情報を受信する受信手段と、
前記受信手段により受信された画像データを前記特徴量に関する情報を用いて補正した画像をプリントするプリント手段とを有する事を特徴とするプリンタ。
【請求項１１】
前記特徴量には、撮像画像の明度、彩度、色相のヒストグラムの少なくとも１つが含まれることを特徴とする請求項１０に記載のプリンタ。
【請求項１２】
撮像装置と直接通信するプリンタの制御方法であって、
前記撮像装置との通信の確立後、前記撮像装置に前記プリンタが有している機能情報を送信する送信工程と、
前記撮像装置から、画像データと、前記機能情報に応じた前記画像データの特徴量に関する情報を受信する受信工程と、
前記受信手段により受信された画像データを前記特徴量に関する情報を用いて補正した画像をプリントするプリント工程とを有する事を特徴とする制御方法。
【請求項１３】
プリンタと直接通信する撮像装置であって、
前記撮像装置との通信の確立後、前記プリンタが有している機能情報を受信する受信手段と、
画像データの特徴量を抽出する特徴量抽出手段と、
画像データと、前記特徴量抽出手段により抽出された特徴量に関する情報とを、前記プリンタに送信する送信手段とを有することを特徴とする撮像装置。
【請求項１４】
前記送信手段は、前記機能情報に応じた種類の特徴量を送信することを特徴とする請求項１３に記載の撮像装置。
【請求項１５】
前記特徴量抽出手段は、撮像画像の明度、彩度、色相に関するヒストグラムを生成することを特徴とする請求項１３に記載の撮像装置。
【請求項１６】
さらに、撮像手段と、撮像により得られた画像データを記録媒体に記録する記録手段とを有し、前記特徴量抽出手段は、画像撮像時に特徴量を抽出して、前記画像データとともに前記記録媒体に前記特徴量に関する情報を記録し、前記送信手段は、前記記録媒体に記録されている特徴量のうちのいずれかを、前記機能情報に応じて選択して送信する事を特徴とする請求項１３に記載の撮像装置。
【請求項１７】
プリンタと直接通信する撮像装置の制御方法であって、
前記撮像装置との通信の確立後、前記プリンタが有している機能情報を受信する受信工程と、
画像データの特徴量を抽出する特徴量抽出工程と、
画像データと、前記特徴量抽出工程により抽出された特徴量に関する情報とを、前記プリンタに送信する送信工程とを有することを特徴とする制御方法。
【請求項１８】
前記送信工程は、前記機能情報に応じた種類の特徴量を送信することを特徴とする請求項１６に記載の制御方法。
【請求項１９】
さらに、撮像装置には、撮像手段と、撮像により得られた画像データを記録媒体に記録する記録手段とを有しており、
前記特徴量抽出工程は、画像撮像時に特徴量を抽出して、前記画像データとともに前記記録媒体に前記特徴量に関する情報を記録し、前記送信工程は、前記記録媒体に記録されている特徴量のうちのいずれかを、前記機能情報に応じて選択して送信する事を特徴とする請求項１８に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラなどの撮像装置と記録装置とを有する記録システム及びその記録制御方法とフォトダイレクト印刷装置に関するものである。
【背景技術】
【０００２】
近年、簡単な操作で画像を撮影してデジタル画像データに変換できるデジタルカメラ（撮像装置）、所謂、デジタルカメラが広く使用されるようになってきている。このようなカメラで撮影した画像を印刷して写真として使用する場合には、通常、一旦、その撮影されたデジタル画像データを、デジタルカメラからＰＣ（コンピュータ）に取り込み、そのＰＣで画像処理を行った後、そのＰＣからカラープリンタに出力して印刷するのが一般的である。
【０００３】
これに対して最近は、ＰＣを介することなく、直接、デジタルカメラからカラープリンタにデジタル画像データを伝送して印刷することができるカラープリントシステムや、デジタルカメラに搭載され、撮像した画像を記憶しているメモリカードを、直接、カラープリンタに装着し、そのメモリカードに記憶されている、撮影された画像を印刷できる、所謂フォトダイレクト（ＰＤ）プリンタ等も開発されている。
【０００４】
また、一方でデジタルカメラで撮影された画像をよりきれいに出力するための技術も多く開示されている。その一例として、デジタルカメラで撮影された画像の撮影時に発生するホワイトバランスのずれや、コントラストの低下などを出力時に補正し、よりきれいに出力する手法も知られている（特許文献１）。この技術は、画像を特徴付けている、画像の濃度、彩度、色相、明度などのヒストグラムを個々の画像の特徴量として抽出し、それらに基づき画像をより鮮明に出力するように、画像を補正するものである。この技術により、画像毎により高質な画像出力が、簡単に可能となっている。
【特許文献１】特開２０００−１３６２５公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特に、デジタルカメラから直接プリンタに画像データを伝送して印刷する場合は、デジタルカメラは各メーカごとにその仕様や操作方法などが異なっているため、各種メーカのデジタルカメラに対応できるフォトダイレクトプリンタ装置の出現が望まれている。
【０００６】
また、このような各メーカごとのデジタルカメラに対応できるフォトダイレクトプリンタでは、デジタルカメラから与えられる機能情報を理解できず、そのプリンタ装置の有していない機能を用いた印刷指示が与えられる可能性がある。例えば、デジタルカメラから指示されたサイズ或いは種類の用紙と、実際にプリンタにセットされている用紙のサイズ或いは種類が異なる場合が発生する虞がある。そのような場合は、記録画像の形成に支障をきたすことが考えられる。
【０００７】
本発明は上記従来例に鑑みてなされたもので、インターフェースに依存しない画像データの転送及び記録指示を行うことにより、各社の撮像装置からの画像データを受信して記録できる記録システム及びその記録制御方法とフォトダイレクト印刷装置を提供することを目的とする。
【０００８】
また本発明の目的は、撮像装置から指示された記録条件が、記録装置が実際に有している条件と異なる場合に、当該記録装置の有している条件で記録することにより、記録条件の不整合による記録画像の劣化を防止した記録システム及びその記録制御方法とフォトダイレクト印刷装置を提供することにある。
【０００９】
さらに、前述の画像補正を、フォトダイレクトプリンタで行う場合、さらに以下のような課題が発生する。先の画像補正を行う場合には、印刷開始前に、画像を取得するために一度画像全体の解析処理を行う必要がある。このため、デジタルカメラでは撮像した画像をＪＰＥＧ圧縮して保存している。従って、それを受信するフォトダイレクトプリンタでは、そのＪＰＥＧデータ全体を一度デコードし、各画素データから必要な特徴量を抽出し、補正処理のためのパラメータを作成する。そして、実際に印刷する場合には、再度ＪＰＥＧデータをデコードして、先に得られたパラメータに従ってデコードした画像データを補正して記録用データの作成を行う。すなわち２度のデーコードが必要としている。
【００１０】
これは、一度デコードしたデータを保持するのに十分なメモリを前述のフォトダイレクトプリンタ装置内に持つことが必要になり、コストアップの要因となる。さらには、画像全体の全ピクセルのデータより、画像特徴量を算出する必要がある。このような、画像処理を行うことにより、処理時間が多く必要となり、全体的な印字速度が遅くなることがある。特にＣＰＵやメモリの制限が大きいフォトダイレクトプリンタでは、この現象が顕著にあらわれることがある。
【００１１】
また、フォトダイレクトプリンタプリンタ側にデジタルカメラから送信されてくるＪＰＥＧデータを十分に受信できるだけのメモリがない場合、デジタルカメラからフォトダイレクトプリンタプリンタに対しては画像データを複数回に別けて転送する必要がある。
【００１２】
すなわち、このような状況で前述の画像補正を行うためには、プリンタとデジタルカメラ間で画像出力のために何度も画像データの送受信が必要となる。そのため通常のＰＣでの出力と比較しても、画像データのうちどこまでのデータが転送できたかを管理/制御のため、システム構成が複雑化するだけでなく、その分の転送時間が増えるため印刷処理がおそくなり、ユーザビリティに欠ける。さらに、近年のデジタルカメラの高画素化に伴い、画像データサイズが年々大きくなっている。このような課題がますます大きなものとなる。
【００１３】
本発明はさら上記課題に対して改善をこころみるもので、デジタルカメラからのフォトダイレクト印刷時の画像補正を、より高速に、そして、簡易に行うことを目的とする。
【課題を解決するための手段】
【００１４】
かかる課題を解決する為、撮像装置と記録装置とが直接通信し、撮像装置から記録装置に画像データを送信して記録する記録システムであって、記録装置には、記録装置と撮像装置に実装されたアプリケーションによる通信手順の確立後、記録装置から撮像装置に記録装置が有している機能情報を送信する第1送信手段と、撮像装置から、画像データと当該画像の特徴量に関する情報を受信する第1受信手段と、第1受信手段により受信された画像データを、特徴量に基づいて補正する補正手段とを有し、撮像装置には、記録装置から機能情報を受信する第２受信手段と、撮影された画像の特徴量を抽出する特徴量抽出手段と、第２受信手段により受信された機能情報に基づいて、特徴量抽出手段によって、抽出された特徴量に関する情報を記録装置に送信する第２送信手段とを有することを特徴とする記録システムを開示する。
【発明の効果】
【００１５】
本発明によれば、インターフェースに依存しない画像データの転送及び記録指示を行うことにより、各社の撮像装置からの画像データを受信して記録できる。
【００１６】
また本発明によれば、撮像装置で画像特徴量を算出し、算出結果を記録装置に転送することにより、巨大な画像データを何度も撮像装置から、記録装置へと転送する必要がなくなり、高速で、かつ快適な画像出力が可能となる。
【００１７】
また本本発明によれば、撮像装置から指示された記録条件が、記録装置が実際に有している条件と異なる場合に、当該記録装置の有している条件で記録することにより、記録条件の不整合による記録画像の劣化を防止できるという効果がある。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１９】
図１は、本発明の実施の形態に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ装置）１０００の概観斜視図である。このＰＤプリンタ装置１０００は、ホストコンピュータ（以下、ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷する機能、及び、デジタルカメラからの画像データをダイレクトに受信して印刷する機能を備えている。
【００２０】
図１において、本実施の形態に係るＰＤプリンタ装置１０００の外殻をなす本体は、ケースＭ１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ装置１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部が形成されている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録シートが排出可能となると共に、排出された記録シートを順次積載し得るようになっている。また、排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、用紙の支持面積を３段階に拡大、縮小させ得るようになっている。
【００２１】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）あるいはインクタンク（不図示）等の交換が可能となる。なお、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバーの開閉状態を検出し得るようになっている。
【００２２】
また、上ケース１００２の上面には、電源キー１００５が押下可能に設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、記録シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドと記録シートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ装置１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００２３】
図２は、本実施の形態に係るＰＤプリンタ装置１０００の操作パネル１０１０の概観図である。
【００２４】
図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、印刷したい範囲の先頭写真番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了した範囲の最後の写真番号（終了）、印刷部数（部数）、印刷に使用する用紙（記録シート）の種類（用紙種類）、１枚の用紙に印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要な用紙枚数の表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００２５】
次に図３を参照して、本実施の形態に係るＰＤプリンタ装置１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２６】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示し、その構成は図４のブロック図を参照して詳しく後述する。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ(USB HUB)で、このＰＤプリンタ装置１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１１により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：Digital Still Camera)である。なお、３００２は、プリンタの有する機能情報を生成し、DSCに送信する為の機能や、画像の特徴量に関するデータに基づいて、画像データを補正する処理を行う機能も有する。このような機能を発揮する為のプログラムも、プログラムメモリ３００３ａに記録されている。
【００２７】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
【００２８】
図４は、ＡＳＩＣ３００１の構成を示すブロック図で、この図４においても、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２９】
４００１はＰＣカードインターフェース部で、装着されたＰＣカード３０１１に記憶されている画像データを読取ったり、或いはＰＣカード３０１１へのデータの書き込み等を行う。４００２はＩＥＥＥ１２８４インターフェース部で、プリンタエンジン３００４との間のデータのやり取りを行う。このＩＥＥＥ１２８４インターフェース部４００２は、デジタルカメラ３０１２或いはＰＣカード３０１１に記憶されている画像データを印刷する場合に使用されるバスである。４００３はＵＳＢインターフェース部で、ＰＣ３０１０との間でのデータのやり取りを行う。４００４はＵＳＢホストインターフェース部で、デジタルカメラ３０１２との間でのデータのやり取りを行う。４００５は操作パネル・インターフェース部で、操作パネル１０１０からの各種操作信号を入力したり、表示部１００６への表示データの出力などを行う。４００６はビューワ・インターフェース部で、ビューワ１０１１への画像データの表示を制御している。４００７は各種スイッチやＬＥＤ４００９等との間のインターフェースを制御するインターフェース部である。４００８はＣＰＵインターフェース部で、ＤＳＰ３００２との間でのデータのやり取りの制御を行っている。４０１０はこれら各部を接続する内部バス（ＡＳＩＣバス）である。
【００３０】
以上の構成に基づく動作概要を以下に説明する。
【００３１】
＜通常のＰＣプリンタモード＞
これはＰＣ３０１０から送られてくる印刷データに基づいて画像を印刷する印刷モードである。
【００３２】
このモードでは、ＰＣ３０１０からのデータがＵＳＢコネクタ１０１３（図３）を介して入力されると、ＵＳＢハブ３００８、ＵＳＢ３０２１を介して直接プリンタエンジン３００４に送られ、ＰＣ３０１０からのデータに基づいて印刷が行われる。
【００３３】
＜ＰＣカードからの直接プリントモード＞
ＰＣカード３０１１がカードスロット１００９に装着或いは脱着されると割り込みが発生し、これによりＤＳＰ３００２はＰＣカード３０１１が装着されたか或いは脱着（取り外された）されたかを検知できる。ＰＣカード３０１１が装着されると、そのＰＣカード３０１１に記憶されている圧縮された（例えばＪＰＥＧ圧縮）画像データを読込んでメモリ３００３に記憶する。次に操作パネル１０１を使用して、その格納した画像データの印刷が指示されると、圧縮された画像データを解凍してメモリ３００３に格納し、ＲＧＢ信号からＹＭＣＫ信号への変換、ガンマ補正、誤差拡散等を実行してプリンタエンジン３００４で印刷可能な記録データに変換し、ＩＥＥＥ１２８４インターフェース部４００２を介してプリンタエンジン３００４に出力することにより印刷を行う。
【００３４】
＜カメラからの直接プリントモード＞
図５は本実施の形態に係るＰＤプリンタ装置１０００とデジタルカメラ（ＤＳＣ）３０１２とを接続した状態を示す図である。
【００３５】
図において、ケーブル５０００は、ＰＤプリンタ装置１０００のコネクタ１０１２と接続されるコネクタ５００１と、デジタルカメラ３０１２の接続用コネクタ５００３と接続するためのコネクタ５００２とを備えており、また、デジタルカメラ３０１２は、内部のメモリに保存している画像データを、接続用コネクタ５００３を介して出力可能に構成されている。なお、デジタルカメラ３０１２の構成としては、内部に記憶手段としてのメモリを備えるものや、取外し可能なメモリを装着するためのスロットを備えたものなど、種々の構成を採用することができる。このように、図５に示すケーブル５０００を介してＰＤプリンタ装置１０００とデジタルカメラ３０１２とを接続することにより、デジタルカメラ３０１２からの画像データを直接ＰＤプリンタ装置１０００で印刷することができる。
【００３６】
ここで図５に示すように、ＰＤプリンタ装置１０００にデジタルカメラ３０１２が接続された場合は、操作パネル１０１０の表示部１００６にはカメラマークのみが表示され、操作パネル１０１０における表示及び操作が無効になり、又ビューワ１０１１への表示も無効になる。従って、これ以降はデジタルカメラ３０１２でのキー操作及びデジタルカメラ３０１２の表示部（不図示）への画像表示のみが有効になるので、ユーザはそのデジタルカメラ３０１２を使用して印刷指定を行うことができる。
【００３７】
本実施の形態では、複数のメーカのデジタルカメラを接続してプリントすることができるＰＤプリンタ装置を提供することを目的とし、本実施の形態に係るＰＤプリンタ装置１０００とデジタルカメラとを接続してプリントを行なう場合の通信規約について詳しく説明する。
【００３８】
本実施の形態においては、ＰＤプリンタ装置とデジタルカメラとの間の通信制御を汎用ファイル、汎用フォーマットを用いて行い、インターフェースに依存しないＮＣＤＰ（New Camera Direct Print）を提案する。
【００３９】
図６は、このＮＣＤＰの構成の一例を示す図である。
【００４０】
図において、６００はＵＳＢによるインターフェース、６０１はブルーツース（Bluetooth）によるインターフェースを示している。６０２はＮＣＤＰによるシステムを構築する際に組込まれるアプリケーションレイヤを示している。６０３は既存のプロトコル及びインターフェースを実行するためのレイヤで、ここではＰＴＰ（Picture Transfer Protocol），ＳＣＳＩ及びブルーツースのＢＩＰ（Basic Image Profile），ＵＳＢインターフェース等が実装されている。本実施の形態に係るＮＣＤＰは、このようなプロトコルレイヤ等のアーキテクチャが実装されていて、その上にアプリケーションとして実装されることが前提である。ここではＰＤプリンタ装置１０００は、ＵＳＢホスト、カメラ３０１２はＵＳＢスレーブとして規定されており、図６に示すように、それぞれ同じＮＣＤＰ構成となっている。
【００４１】
図７は、本実施の形態に係るＮＣＤＰによる、ＰＤプリンタ装置１０００とデジタルカメラ（ＤＳＣ）３０１２との間での通信手順の流れを説明する図である。
【００４２】
ここでは、図５に示すようにＵＳＢケーブル５０００によりＰＤプリンタ装置１０００とＤＳＣ３０１２とが接続されたことを、それぞれの機器が検知すると、これら機器間での通信が可能になる。これにより、これら機器に実装されているアプリケーションが実行されてＮＣＤＰによる手順７１０への移行が開始される。７０２はＮＣＤＰの初期状態を示し、ここでは互いの機種がＮＣＤＰを実行可能かどうかを判断し、可能であればＮＣＤＰによる手順７１０に移行している。もしここで、ＤＳＣ３０１２がＮＣＤＰを実装していない場合には、ＮＣＤＰによる通信制御は実行されない。こうしてＮＣＤＰに移行した後、手順７０３で示すように、ＤＳＣ３０１２から「基本手順」による画像データの転送／印刷が指示されると、ＤＳＣ３０１２から画像ファイルをＰＤプリンタ装置１０００に転送して印刷する簡易印刷モードに移行する。また手順７０４で示すように、ＤＳＣ３０１２から「推奨手順」による画像データの転送／印刷が指示されると、ＤＳＣ３０１２とＰＤプリンタ装置１０００との間で各種ネゴシエーションを行ってその印刷条件等を決定した後、画像ファイルをＤＳＣ３０１２からＰＤプリンタ装置１０００に転送して印刷するより多彩な印刷モードに移行する。また手順７０５は「拡張手順」による指示がＤＳＣ３０１２によりなされると、例えばＤＰＯＦ，ＸＨＴＭＬ-print，ＳＶＧ等の高度レイアウト機能、及び各社ベンダーユニークな仕様での印刷を行うモードが設定される。尚、この「拡張手順」による詳細仕様に関しては、ＤＳＣのメーカ各社個別の拡張仕様書で規定されるので、ここでは特に説明しない。尚、これら「基本手順」及び「推奨手順」による画像印刷に関しては、図９乃至図１１を参照して後述する。
【００４３】
図８は、本実施の形態に係るＮＣＤＰにおいてプリントを行うために規定したコマンドを説明する図である。
【００４４】
図８において、「対応モード」はＤＳＣ３０１２から指示される、前述した「基本手順」、「推奨手順」及び「拡張手順」に対応している。「推奨手順」では全てのコマンドが使用できるのに対し、「基本手順」は簡易印刷モードであるため、ＮＣＤＰへの移行及びその終了、「基本手順」、「推奨手順」及び「拡張手順」の各モードへの移行コマンド及びカメラ３０１２からの画像データの取得及びカメラ３０１２よりの印刷命令のみが使用可能である。尚、「拡張手順」では、ＮＣＤＰへの移行及びその終了、「基本手順」、「推奨手順」及び「拡張手順」の各モードへの移行コマンドだけが用いられるように記載されているが、前述のように、各社の仕様に応じて他のコマンドが用いられても良いことはいうまでもない。
【００４５】
以下、前述した「基本手順」及び「推奨手順」による画像印刷について説明する。
【００４６】
図９は、「基本手順」による画像印刷を行う場合のＮＣＤＰの通信手順を説明する図である。この「基本手順」は、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して１枚の画像ファイルを転送して印刷するだけの簡易印刷モードであり、対応している画像フォーマットとしては、例えばＶＧＡサイズ（６４０×４８０画素）のＲＧＢ画像、ＶＧＡサイズ（６４０×４８０画素）のＪＰＥＧ画像とし、画像ファイルサイズとしては約１Ｍバイト以下としている。ＤＳＣ３０１２はＰＤプリンタ装置１０００がサポートしている画像フォーマットで送信する。この場合はエラーハンドリグは実行しない。
【００４７】
まずタイミング９００で、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対してＮＣＤＰへの移行を指示するコマンド（NCDPStart）を送信する。ここでＤＳＣ３０１２がＮＣＤＰを実装していればＯＫが返送される（タイミング９０１）。尚、このＮＣＤＰの確認手順を行う場合の一例としてＰＴＰを用いた場合の具体例に関しては、図１４を参照して詳しく後述する。
【００４８】
こうして互いにＮＣＤＰが実装されていることが確認されると、ＰＤプリンタ装置１０００からモードに移行するように命令（ProcedureStart）がＤＳＣ３０１２に送信される（タイミング９０２）。これに対してタイミング９０３で、ＤＳＣ３０１２から簡易印刷モードである「基本手順」が送られてくると、これ以降は「基本手順」による印刷モードに移行する。この場合は、ＤＳＣ３０１２における操作により印刷したい画像が選択されて印刷が指示されると、印刷の開始を指示するコマンド（JobStart）がＤＳＣ３０１２からＰＤプリンタ装置１０００に送られる（タイミング９０４）。これによりＰＤプリンタ装置１０００は簡易印刷モードとなり、ＤＳＣ３０１２に対してコマンド（GetImage）を送信してＪＰＥＧ画像を要求する（タイミング９０５）。これによりＤＳＣ３０１２からＪＰＥＧ画像がＰＤプリンタ装置１０００に送信され（タイミング９０６）、ＰＤプリンタ装置１０００における印刷処理が開始される。こうして、指示された画像の印刷が終了すると印刷ジョブの終了を示すコマンド（JobEnd）がＰＤプリンタ装置１０００からＤＳＣ３０１２に送信される（タイミング９０７）。これに対してＤＳＣ３０１２から肯定応答（ＯＫ）が返送されると（タイミング９０８）、この「基本手順」による印刷処理が完了する。尚、この「基本手順」でやり取りするかどうかに関しても、ＤＳＣとＰＤプリンタ装置の双方のCapability情報で決定される。
【００４９】
図１０は、「推奨手順」による画像印刷を行う場合のＮＣＤＰの通信手順を説明する図で、前述の図９と共通する手順には同じ番号を付して、その説明を省略する。この「推奨手順」では、ＰＤプリンタ装置１０００とＤＳＣ３０１２との間でのネゴシエーションを前提とした「より多彩な印刷」モードが設定でき、複数枚の写真印刷やレイアウト印刷が可能になる。また、エラーハンドリングも実行可能となる。
【００５０】
図１０において、図９の場合と同様にして、互いにＮＣＤＰが実装されていることを確認した後、この場合では、ＤＳＣ３０１２から「推奨手順」が指示される（タイミング９１０）。この後はこの「推奨手順」による手順が実行される。まずタイミング９１１で示すように、ＰＤプリンタ装置１０００は、自機の備えている機能及び用紙設定等を含む機能をCapability情報として全てＤＳＣ３０１２に伝える。このCapability情報は、スクリプト形式（テキスト）でＤＳＣ３０１２に送信される。
【００５１】
このCapability情報の一例を図１２に示す。
【００５２】
図１２に示すように、このCapability情報は、印刷可能な用紙の種類及びサイズ、印刷品位、画像データのフォーマット、日付印刷の有無、ファイル名印刷の有無、レイアウト、画像補正の有無、更にはオプションとして、各カメラメーカの仕様に対応した機能の有無等の情報を含んでいる。
【００５３】
このようにCapability情報をスクリプト表記とすることにより、他の通信プロトコルのアーキテクチャへの移植を簡単にし、このような機能情報のやり取りを、より標準化し易くしている。尚、このスクリプト表記はＸＭＬ準拠であっても良い。
【００５４】
このようなCapability情報を受信したＤＳＣ３０１２のユーザは、そのＰＤプリンタ装置１０００が備えている機能の内のいずれを使用して印刷を行うかを判定し、印刷したい画像を選択すると共に、その画像の印刷条件をそのＰＤプリンタ装置１０００の有している機能の中から選択して決定する。こうして印刷したい画像及び印刷条件などが決定されて印刷開始が指示されるとプリント命令（JobStart）がＰＤプリンタ装置１０００に送られる。これによりＰＤプリンタ装置１０００から、その画像データを要求するコマンド（GetImage xn）が発行され（タイミング９１２）、それに応答してＤＳＣ３０１２から、対応する画像データが、ＰＤプリンタ装置１０００が受信可能な画像フォーマット（Ｔｉｆｆ，ＪＰＥＧ，ＲＧＢなど）で送信される（タイミング９１３）。ここで１枚の画像印刷に対して複数の画像データを送信できるようになっているのは、例えば２×２等のレイアウト印刷が指定されている場合は、１枚の用紙に対して４枚分の画像データを送信する必要があるためである。こうして、指示された画像の印刷が終了すると印刷ジョブの終了を示すコマンド（JobEnd）がＰＤプリンタ装置１０００からＤＳＣ３０１２に送信される（タイミング９０７）。これに対してＤＳＣ３０１２から肯定応答（ＯＫ）が返送されると（タイミング９０８）、再び、この「推奨手順」による、次に画像の選択・印刷処理に移行する。
【００５５】
図１１は、前述の「推奨手順」による画像印刷を行う場合のＮＣＤＰの通信手順において、ＰＤプリンタ装置１０００でエラーが発生した場合の通信手順を説明する図で、前述の図１０と共通する手順には同じ番号を付して、その説明を省略する。
【００５６】
この例では、「推奨手順」での印刷処理の実行中に、ＰＤプリンタ装置１０００において給紙エラーが発生した場合の例を示している。この場合には、タイミング９１４で、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して給紙エラーを示すステータス情報（Status）が送信される。これに対してＤＳＣ３０１２のユーザによる判断に基づいて、その印刷処理を継続するか（JobContinue）、中止するか（JobAbort）を示すコマンドがＰＤプリンタ装置１０００に送信される（タイミング９１５）。これによりＰＤプリンタ装置１０００では、中止の場合はその印刷処理を中止してプリントジョブの終了通知（JobEnd）を送信して印刷を中止する。或いは継続が指示された場合には、その給紙エラーの修復を待って、印刷処理を継続するように動作する。
【００５７】
次に、前述した処理手順を図１３のフローチャートを参照して説明する。
【００５８】
図１３は、図７に示す処理手順を説明するフローチャートである。
【００５９】
まずステップＳ１で、デジタルカメラ（ＤＳＣ）３０１２とＰＤプリンタ装置１０００との間の通信を確立し（タイミング７００）、ステップＳ２で、これら機器がＮＣＤＰを実装済みかどうかを判定し、実装済みであればＮＣＤＰに移行する。次にステップＳ３に進み、ＤＳＣ３０１２からの手順指示を受信して、その指示された手順に移行する。ここで「基本手順」が指示された時はステップＳ４からステップＳ５に進み、「基本手順」による印刷処理を実行する。また「推奨手順」が指示された時はステップＳ６からステップＳ７に進み、前述した「推奨手順」による印刷処理を実行する。更に「拡張手順」が指示された時はステップＳ８からステップＳ９に進み、各ベンダーに応じた「拡張手順」による印刷処理を実行する。それ以外の場合はステップＳ１０に進み、このＰＤプリンタ装置１０００とＤＳＣ３０１２とによる独自のモードでの印刷を実行する。
【００６０】
次に上述したＮＣＤＰにおける各種コマンド（図８）を、汎用のＰＴＰを用いて実現した（ＰＴＰによるラッパー）例を説明する。尚、本実施の形態では、ＰＴＰを用いたＮＣＤＰの場合で説明するが本発明はこれに限定されるものではなく、例えば、他のインターフェース、他のクラス（Class）上でダイレクトプリントサービスＡＰＩを実装しても良い。
【００６１】
［NCDPStart］
図１４は、ＮＣＤＰ手順の開始を指示する命令（NCDPStart）をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００６２】
ＰＤプリンタ装置１０００とＤＳＣ３０１２とが物理的に接続された後、まずタイミング１４００で、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対してGetDeviceInfoが送信され、ＤＳＣ３０１２に対して、その保持しているオブジェクトに関する情報が要求される。これに対してＤＳＣ３０１２は、タイミング１４０１にて、DeviceInfo Datasetにより、ＤＳＣ３０１２に保持しているオブジェクトに関する情報をＰＤプリンタ装置１０００に送信する。次にタイミング１４０２で、OpenSessionにより、ＤＳＣ３０１２をリソースとして割り当て、必要に応じてデータオブジェクトにハンドルをアサインしたり、特別な初期化を行うための手順の開始要求が発行されてＤＳＣ３０１２から肯定応答（ＯＫ）が返送されるとＰＴＰでの通信が開始される。次にタイミング１４０３で、ＤＳＣ３０１２に対してスクリプト形式の全てのハンドルを要求する（Storage ID: FFFFFF, Object Type: Script）と、これに対してタイミング１４０４で、ＤＳＣ３０１２に保持されている全てのハンドルリストが返送される。次にタイミング１４０５，１４０６において、ＰＤプリンタ装置１０００からｉ番目のオブジェクトハンドルの情報を取得する。ここで、このオブジェクトに、ＤＳＣ３０１２の識別を示すキーワード（例えば「NCDP camera」という文字列）が含まれていると、次にタイミング１４０７において、ＰＤプリンタ装置１０００からオブジェクト情報の送信を指示して（SendObjectInfo）、それに対して肯定応答（ＯＫ）を受信すると、SendObjectにより、オブジェクト情報をＰＤプリンタ装置１０００からＤＳＣ３０１２に対して送信する。ここで、このオブジェクトには、前述のキーワードに対する応答キーワード（合言葉）として例えば「NCDP Printer」という文字列が含まれている。
【００６３】
このようにして、ＰＤプリンタ装置１０００とＤＳＣ３０１２の双方が互いに接続相手を認識できることになり、これ以降はＮＣＤＰによる手順（図７のタイミング７１０）に移行することができる。このようにファイルの受渡しができるトランスポートレイヤーであればキーワードの受渡しを確実に行うことができる。即ち、本実施の形態のＮＣＤＰにユニークなコマンド等を追加することなく、キーワードを交換することができる。尚、ここでキーワードとしては、上述の例に限定されるものでなく、同じキーワードであっても良い。またこのキーワードによるネゴシエーションを行う時間を短縮するために、スクリプト形式のハンドルの最初にこのキーワードを入れておくことにより、互いの機器を確認するのに要する時間を短縮できる。
【００６４】
［ProcedureStart］
図１５は、ＤＳＣ３０１２からの、モードへの移行手順を指示する命令を受信して、そのモードに移行するための命令（ProcedureStart）をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００６５】
ここではまずタイミング１５０１で、ＰＤプリンタ装置１０００がサポートしている手続「基本手順」、「推奨手順」、「拡張手順」をＤＳＣ３０１２に通知するためにSendObjectInfoにより、ＤＳＣ３０１２に対して送信したいオブジェクト情報があることを伝える。これに対して肯定応答（ＯＫ）がＤＳＣ３０１２から送られてくると、ＰＤプリンタ装置１００は、タイミング１５０２で、SendObjectによりオブジェクトを送信する旨をＤＳＣ３０１２に伝え、次のタイミング１５０３のObjectDataで、このＰＤプリンタ装置１０００がサポートしている手続に関する情報を送信する。次にタイミング１５０４で、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して、GetObject動作を起動したい（プッシュモードに移行）旨を伝える。これによりタイミング１５０５で、ＰＤプリンタ装置１０００からオブジェクト情報に関する情報を受信する旨が伝えられると（GetObjectInfo）、タイミング１５０６で、ObjectInfo Datasetにより、その情報がＤＣＳ３０１２からＰＤプリンタ１０００に返送され、次にタイミング１５０７で、ＰＤプリンタ１０００はそのオブジェクト情報を指定してオブジェクト情報そのものを要求する(GetObject)。この結果、ＤＳＣ３０１２はObject Datasetにより、ＤＳＣ３０１２が使用する手続（「基本」、「推奨」、「拡張」等）をＰＤプリンタ装置１０００に知らせる（タイミング１５０８）。
【００６６】
これにより、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して、画像の印刷モードを指定することができる。
【００６７】
［NCDPEnd］
図１６は、本実施の形態に係るＮＣＤＰにおける通信制御手順を終了する命令（NCDPEnd）をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００６８】
この手順では、タイミング１６００において、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して送信したいオブジェクト情報があることを伝え、ObjectDataにより、ＤＳＣ３０１２に対してＮＣＤＰのモードから抜けることを通知する。これに対して肯定応答（ＯＫ）を受信すると、タイミング１６０１でCloseSessionを送信して、この通信を終了させる。これによりＮＣＤＰによる通信手順を終了する。
【００６９】
［Capability］
図１７は、本実施の形態に係るＮＣＤＰにおける、ＰＤプリンタ装置１０００の機能をＤＳＣ３０１２に通知するCapability命令における通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００７０】
この手順では、タイミング１７００において、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して送信したいオブジェクト情報があることをSendObjectInfoにより伝える。そしてタイミング１７０１で、SendObjectによりＤＳＣ３０１２に対してオブジェクト情報の伝送を伝え、続くObject Dataにより、ＰＤプリンタ装置１０００が有している機能情報（Capability情報）をスクリプト（Script）形式（図１２）でＤＳＣ３０１２に送信する。
【００７１】
［GetImage］
図１８は、本実施の形態に係るＮＣＤＰにおける、ＰＤプリンタ装置１０００がＤＳＣ３０１２に保持されている画像データ（ＪＰＥＧ画像）を取得する（GetImage）通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００７２】
まずタイミング１８００で、ＤＳＣ３０１２が保持しているオブジェクトに関する情報を要求すると、タイミング１８０１で、そのオブジェクトに関する情報（Object Dataset）がＤＳＣ３０１２からＰＤプリンタ装置１０００に送られる。次に、タイミング１８０２で、そのオブジェクトを指定して取得要求（GetObject）を発行すると、タイミング１８０３で、その要求された画像ファイル（Object Dataset）がＤＳＣ３０１２からＰＤプリンタ装置１０００に対して送信される。この様にしてＰＤプリンタ装置１０００は、ＤＳＣ３０１２から所望の画像ファイルを取得することができる。
【００７３】
［StatusSend］
図１９は、本実施の形態に係るＮＣＤＰにおける、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対してエラー状態などを通知する（StatusSend）通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００７４】
まずタイミング１９００で、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して送信したいオブジェクト情報がある旨をSendObjectInfoにより通知する。そしてタイミング１９０１で、そのオブジェクト情報に関する情報セット（Object Dataset）をＤＳＣ３０１２に送信する。ＰＤプリンタ装置１０００はＤＳＣ３０１２からの肯定応答（ＯＫ）があると、タイミング１９０２にて、ＰＤプリンタ装置１０００におけるエラー等のステータス情報をＤＳＣ３０１２にSendObjectおよびObjectDatasetにより送信する。
【００７５】
［PageEnd］
図２０は、本実施の形態に係るＮＣＤＰにおける、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して、１ページのプリント処理が終了したことを通知する（PageEnd）通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００７６】
［JobEnd］
図２１は、本実施の形態に係るＮＣＤＰにおける、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して、プリントジョブが終了したことを通知する（JoeEnd）通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００７７】
図２０，図２１においては、図１９のタイミング１９００乃至１９０１で示された手順を実行後、図２０のタイミング１９１０で、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して１ページ印刷処理が終了したことが通知され、図２１のタイミング１９１１では、ＰＤプリンタ装置１０００からＤＳＣ３０１２に対して印刷ジョブが終了したことが通知される。
【００７８】
［JobStart］
図２２は、本実施の形態に係るＮＣＤＰにおける、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して、プリントジョブの開始を通知する（JobStart）通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００７９】
まずタイミング２２００において、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対してRequestObjectTransferを送り、ＰＤプリンタ装置１０００がGetObjectコマンドを発行するように促す。これによりタイミング２２０１で、ＰＤプリンタ装置１０００からGetObjectInfoが発行されると、ＤＳＣ３０１２は送信したいオブジェクト情報に関する情報を送信する（タイミング２２０２）。これに対して、タイミング２２０３にて、ＰＤプリンタ装置１０００はオブジェクト情報を要求する（GetObjet）ことになるので、ＤＳＣ３０１２はタイミング２２０４にてＰＤプリンタ装置１０００に対して印刷命令を記述したデータを発行（送信する）する。
【００８０】
［JobAbort］
図２３は、本実施の形態に係るＮＣＤＰにおける、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対してプリント中止命令を発行する（JobAbort）通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。基本的には、ＤＳＣ３０１２から送信すべきオブジェクトが存在することをＰＤプリンタ装置１０００に通知し、その結果、オブジェクトの送信要求（Get Object）がＤＳＣ３０１２に送信されてくるので、ＤＳＣ３０１２はタイミング２３０１にて、プリント中止を示す記述のデータをObject DataSetとして送信することになる。
【００８１】
［JobContinue］
図２４は、本実施の形態に係るＮＣＤＰにおける、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対してプリント再開命令を発行する（JobContinue）通信手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【００８２】
図２３及び図２４において、図２２のタイミング２２００乃至２２０３の手順を実行した後、図２３のタイミング２３０１で、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して印刷中止命令が発行され、図２４のタイミング２４０１では、ＤＳＣ３０１２からＰＤプリンタ装置１０００に対して印刷再開命令が通知されることになる。
【００８３】
［Capabilityの自由裁量］
次に本実施の形態に係る特徴部分であるＰＤプリンタ装置１０００とＤＳＣ３０１２との間での通信手順と、ＰＤプリンタ装置１０００とＤＳＣ３０１２における処理について説明する。
【００８４】
本実施形態のＰＤプリンタ装置１０００は、接続されるＤＳＣ３０１２からの画像データに対して補正を行い出力を行う。前述したようにCapabilty情報によりプリンタ装置で可能な画像補正に関する情報を、デジタルカメラＤＳＣ３０１２に送信する。ここで送信する情報には、次の項目が含まれる。
・画像補正のON/OFF
・画像補正の種類
・画像補正に使用する画像特徴量の種類
・特徴量の表色系
また本実施の形態では、ＰＤプリンタ装置１０００に接続されるＤＳＣ３０１２は、各メーカで製造された不特定のデジタルカメラが接続されることを前提としているため、例えばＰＤプリンタ装置１０００からＤＳＣ３０１２に対して、そのＰＤプリンタ装置１０００が有している全ての情報をCapabilityとしてＤＳＣに送信しても、そのＤＳＣ３０１２は、そのCapabilityの内容を全て或いはある一部を理解できない可能性がある。その様な場合には、ＰＤプリンタ装置１０００が意図していない印刷条件が記述されたプリントジョブファイルがＤＳＣから送られてくることになり、このような場合に、そのプリントジョブファイルで指示された通りの印刷条件で印刷を行うと、その印刷された画像そのものが全く価値のないものとなる虞がある。そこで本実施の形態では、このような状態で発生し得る問題点を解決することも可能としている。
【００８５】
図２５は、図１１に示す「推奨手順」におけるCapabilityのやり取りの手順を説明する図である。
【００８６】
図において、タイミング２５０１で、前述したようにＰＤプリンタ装置１０００は、ＤＳＣ３０１２に対してCapabilityがスクリプト表記のデータを送信する。このCapability情報のスクリプトには、画像補正に関する項目があり、以下に示すような画像補正に関する情報が記載されている。
【００８７】
画像補正：ON/OFF
画像補正の種類：自動（プリンタおまかせ）
画像補正に使用する特徴量の種類：明度ヒストグラム／彩度ヒストグラム／色相ヒストグラム
特徴量の表色系：YCC
【００８８】
例えばこれらを４つの項目を４Byteの数字に割り当て定義、規定することにより、送信するスクリプトの量を削減することができる。以下に一例を示す。
【００８９】
１Byte目：画像補正のON/OFF
OFFのとき：８０  ONのとき：８１
２Byte目：画像補正の種類
自動のとき：ＦＦ
色かぶり補正のとき：０１
鮮やかさ補正のとき：０２
ガンマ補正のとき：０４
３Byte目：画像補正の種類画像補正に使用する画像特徴量の種類
明度ヒストグラム：０１
彩度ヒストグラム：０２
色相ヒストグラム：０４
濃度ヒストグラム：０８
ホワイトポイントの色ずれ量：１０
ブラックポイントの色ずれ量：２０
４Byte目：画像特徴量の表色系
ＲＧＢ系：０１
ＸＹＺ系：０２
Ｌａｂ系：０４
ＹＣbＣｒ系：０８
ここで、画像補正の種類、画像補正の種類画像補正に使用する画像特徴量の種類に関しての項目については、各Ｂｙｔｅ中の各Ｂｉｔごとに実際の設定内容を割り当てている。これらの項目設定内容は互いに独立であり、同時に設定されることが多い。その場合、互いの理論和としてその項目の設定を行う。たとえば３Byte目の“画像補正の種類画像補正に使用する画像特徴量の種類”を例にとって説明する。ＰＤプリンタとしてはこの項目では “明度ヒストグラム”、“彩度ヒストグラム”、“色相ヒストグラム”を同時サポート可能とすると、上記コードでは
１bit目：“明度ヒストグラム”
２bit目：“彩度ヒストグラム”
３bit目：“色相ヒストグラム”
４bit目：“濃度ヒストグラム”
５bit目：“ホワイトポイントの色ずれ量”
６bit目：“ブラックポイントの色ずれ量”
となっているので、
３Byte目の設定値としては
（“明度ヒストグラム”のコード）＋（“彩度ヒストグラム”のコード）＋（“色相ヒストグラム”のコード）＝０１＋０２＋０４＝０７
となる。こうすることにより、同時に関連する項目については対応するbitを解釈すれば、安易に解釈することができる。
【００９０】
このようにして、先の例だとＰＤプリンタ装置１０００からかは“８１ＦＦ０７０８”のコードが画像補正のCapabilityとしてＤＳＣ３０１２に送られる。
【００９１】
ＤＳＣ３０１２はこのCapabilityを解釈する。このプリンタからのCapabilityと、ＤＳＣ３０１２自身がサポートできる機能とを比較して、合致部分の項目に合わせてプリント準備を行う。さらに理解できない事項があればそれを無視する。たとえば、自分自身が “画像補正の種類”の選択項目を準備していなければ、３byte目の情報を無視すればよい。ＤＳＣ３０１２が各項目についてＰＤプリンタからのCapabilityと比較し、合致部分で今回のプリント時には以下の設定でプリントを行うこと決定する。上記コードだと“８１ＦＦ０１０８”となる。
画像補正：ＯＮ
画像補正の種類：自動
画像特徴量の種類：明度ヒストグラム
表色系：ＹCbCr
【００９２】
ＤＳＣ３０１２のユーザは、タイミング２５０２にて、このＤＳＣ３０１２のＵＩを使用して印刷したい画像ファイルや印刷条件を指定する。そそして、ＤＳＣ３０１２は、タイミング２５０３にて、指定された画像ファイルに対して先に決定した画像特徴量（明度ヒストグラム）を算出し、その特徴量を、指定された画像ファイルと関連づけてレファイル化してメモリに記憶しておく。ＤＳＣ３０１２は、タイミングにおいて、プリントジョブを指定するプリントジョブ形式のファイルを作成する。このジョブファイルには画像補正に関する情報が記載されている。画像ファイルの情報とともに、上記画像補正に関する設定と、その画像に関する画像特徴量の算出結果を保存したファイル名をこのジョブファイル中に埋め込む。
【００９３】
そしてタイミング２５０５にて、例えば図２２のようなやり取りにより、objectとしてのプリントジョブファイルをＤＳＣ３０１２からＰＤプリンタ装置１０００に送信する。これを受信したＰＤプリンタ装置１０００は、そのプリントジョブファイルに記述されている内容を解析する。
【００９４】
次にタイミング２５０６にて、ＰＤプリンタ装置１０００は、受信した画像ファイルを、そのプリントジョブファイルで指定された印刷条件および画像補正条件を元に画像ファイル自身と対応する画像特徴量を保存したファイルをＤＳＣ３０１２より送信してもらい印刷する。こうして印刷が終了すると、タイミング２５０７において、プリントジョブが終了したことをＤＳＣ３０１２に通知する。
【００９５】
ここで、図２５におけるタイミング２５０５、２５０６におけるPrintJob File、ヒストグラムデータファイルおよび画像ファイルを受信した際のＰＤプリンタ１０００における処理内容を図３０のフローチャートに従って説明する。
【００９６】
ここでは、ヒストグラムデータと画像データが別々にPrintJob File中に指定してあり、ＰＤプリンタ装置１０００がＤＳＣ３０１２に各々のファイルを取得するケースを説明する。
【００９７】
まずＰＤプリンタ装置１０００は、ＤＳＣ３０１２からPrintJob Fileを取得する（ステップＳ２９０１）と、PrintJobFile内に記述されている各Capability情報の解析を行い（ステップＳ２９０２）、その解析結果のCapability情報に従い、用紙の種類やサイズ、トリミング情報などのプリンタが印刷動作を開始するための各種設定を行う（ステップＳ２９０３）。この際、Cpabilityの設定がされていなかったり、Default設定のような、プリンタが独自に決定して良い項目があった場合には、それらの設定も行う。ここで、画像補正に関するCapability情報があった場合には、それに応じた各種パラメータの設定を行う。ここで、各種パラメータとは、先に述べた画像補正（On/Off/Default）、画像補正の種類、画像特徴量の種類、表色系といった情報である。また、画像補正の項目に関しては、特にPrintJob File中に指定が無かったり、Default設定の場合には画像補正を自動に行うものとして、処理を進める。ただし、これらの扱いは本発明の意図するところとは直接関係無いので、ベンダーによっては画像補正を行わなくても特に問題はないことは言うまでも無い。
【００９８】
そして、画像補正を行うかどうかの指定があるかを判断し（ステップＳ２９０４）、画像補正を行わない場合、PrintJob File中で指定された画像ファイルをＤＳＣ３０１２から取得し（ステップＳ２９１１）、印刷処理を開始する（ステップＳ２９０１）。
【００９９】
一方、ステップＳ２９０４において、画像補正を行うと判断された場合、処理はステップＳ２９０５に進み、PrintJob File中にヒストグラムデータファイルが指定されているかを判断する。ここで、ヒストグラムデータファイルが指定されていれば、ヒストグラムデータファイルをＤＳＣ３０１２から取得し（ステップＳ２９０６）、取得したヒストグラムデータファイル中のヒストグラムデータの解析を行い（ステップＳ２９０７）、ヒストグラムデータの解析結果に基づき画像補正を行うためのパラメータの算出する（ステップＳ２９０８）。そして、そのPrintJob File中で指定された画像ファイルをＤＳＣ３０１２から取得し（ステップＳ２９０９）、印刷処理を開始する（ステップＳ２９１０）。
【０１００】
またステップＳ２９０５において、PrintJob File中にヒストグラムデータファイルが指定されていないと判断した場合にはステップＳ２９１２に進み、PrintJob File中で指定された画像ファイルをＤＳＣ３０１２から取得する。そして、ステップＳ２９１３において、取得した画像ファイルからヒストグラムの解析を行いヒストグラムデータの算出を行う。算出されたヒストグラムデータの解析を行い（ステップＳ２９１４）、ヒストグラムデータの解析結果に基づき画像補正を行うためのパラメータの算出する（ステップＳ２９１５）。そして、この場合、既にステップＳ２９１２において画像ファイルをＤＳＣ３０１２から取得しているため、ステップＳ２９１０にて、そのまま印刷処理を開始することができる。
【０１０１】
このように、jobとして補正用の画像特徴量を示すデータ（例えば、ヒストグラムファイル）が指定されている場合に、プリント対象の画像データよりも先立って、画像特徴量を示すデータをプリンタに取り込むことによって、画像データを取り込みながら補正処理を行なうなどの処理も可能になる。
【０１０２】
尚、ここで、ＰＤプリンタ装置１０００が上記のように画像補正量として「明度ヒストグラム」を受信可能なのに、ＤＳＣ３０１２から受信したプリントジョブファイルのCapabilityに「濃度ヒストグラム」が指定されていた場合、ＰＤプリンタ装置１０００におけるCapabilityにおける記載を自由裁量として判定する。即ち、その画像データを画像補正を行い印刷しようとすると、画像が正しく印刷されない場合があるため、ＰＤプリンタ装置１０００は、ＤＳＣ３０１２からのCapabilityで記述されているこの事項を無視し、画像ファイルを取得し、ＰＤプリンタ装置１０００で、画像解析を行い「明度ヒストグラム」を作成する。
【０１０３】
これは例えば、他の画像補正に関するCapabilityに関しても同様である。画像補正方法に関するCapabilityについても、ＰＤプリンタ装置１０００が「色かぶり補正」のみが可能な場合に、もしＤＳＣ３０１２から受信したプリントジョブファイルのCapabilityに「ガンマ補正」が指定されていた場合、ＰＤプリンタ装置１０００におけるCapabilityにおける記載を自由裁量として判定する。すなわち、画像補正を行なわず画像を出力することも、「色かぶり補正」の画像補正を行って画像を出力してもよい。このときさらに「色かぶり補正」の画像補正を行う場合には、ヒストグラムファイルには「ガンマ補正」に必要な「明度ヒストグラム」しか記載されていないこともある。その場合は「ガンマ補正」処理についてはヒストグラム中の「明度ヒストグラム」を使用し、「色かぶり補正」に関してはＰＤプリンタ装置１０００で、必要な画像解析を行い画像特徴量（この場合「彩度ヒストグラム」と「色相ヒストグラム」）を抽出し、その結果を用いて「色かぶり補正」を行う。すなわち、ＤＳＣから送信される画像特徴量だけでなく、必要に応じてＰＤプリンタ装置１０００でも画像特徴量の抽出を行い、その双方もしくは片方で画像補正を行う。
【０１０４】
なお、ＤＳＣ３０１２が作成したヒストグラムデータ専用ファイルを、ＰＤプリンタ装置１０００が受信する場合には、それら機器間では図３１に示すＲＴＰアーキテクチャに従ってを用いて通信すればよい。
【０１０５】
先ず、タイミング３００１にて、ＤＳＣ３０１２が保持しているヒストグラムデータファイルに関する情報を要求する（Get HistogramData Info）。この結果、タイミング３００２にて、ＤＳＣ３０１２からは、そのヒストグラムデータファイルに関する情報（HistogramData Info Dataset）がＰＤプリンタ装置１０００に送られる。この結果、ＰＤプリンタ装置１０００は、ＤＳＣ３０１２に保持されたヒストグラムの存在がわかるので、タイミング３００２にて、その目的とするヒストグラムをＤＳＣ３０１２に要求する（Get HistogramData）。この結果、タイミング３００３にて、ＤＳＣ３０１２からは、指定されたヒストグラムデータファイル（HistgramDataSet）が送信されてくるので、ＰＤプリンタ装置１０００はそれを受信し、取得することができる。
【０１０６】
次に、上述の「推奨手順」での処理手順におけるＤＳＣ３０１２での処理を図２６のフローチャートに従って説明する。
【０１０７】
まずステップＳ２１で、ＰＤプリンタ装置１０００からCapabilityを受信すると、ステップＳ２２に進み、そのCapabilityを解析する。ここで、理解できない項目があればそれを無視する。次にステップＳ２３に進み、印刷指示画面（ＵＩ）をカメラ３０１２の表示部に表示し、ステップＳ２４で、そのＵＩ画面を使用して、ユーザに印刷指示の入力を行わせる。こうして印刷指示が入力されると、ステップＳ２５で指定されてファイルの画像の各画素の画像特徴量（ヒストグラム等）の算出を行う。処理がステップＳ２６に進むと、ＵＩを使用して設定された印刷対象画像ファイル及び各種印刷条件などを記述したプリントジョブファイルを作成し、ステップＳ２７で、そのプリントジョブファイルをＰＤプリンタ装置１０００に送信する。続いてステップＳ２８で、そのプリントジョブファイルに記述されている画像ファイルをＰＤプリンタ装置１０００送信する。
【０１０８】
次に図２９を用いて図２６中のステップＳ２２のCapabilityの解釈処理の詳細を説明する。ここで、このＤＳＣ３０１２は画像補正に関するCpabilityをＰＤプリンタ装置１０００より受信した場合、以後の動作が画像補正について何らかの処理／作業を行う。なお、この処理は、ＤＳＣ３０１２が画像補正のCapabilityをサポートしている場合の処理であることに注意されたい。
【０１０９】
先ず、ステップＳ３１において、ＰＤプリンタ装置１０００からのCapability情報の中に、画像補正に関するCapabilityがあるかを判断する。Cpability情報がある場合にはステップＳ３２に進み、画像補正の項目があること示す画像補正ＦＬＡＧを“１”に設定する。この画像補正Flagが１の場合、ＤＳＣはその後画像補正に関するCpabilityがあると認識し、表示部に接続中のＰＤプリンタ１０００が補正機能を有することを表示し、ＰＤプリンタに返却するCapabilityのリストを生成する際の準備に利用される。
【０１１０】
ステップＳ３３からは画像補正に関する各項目のCapability情報に関しての判断処理を行ってゆく。ステップＳ３４ではＤＳＣ自身でサポートしている機能かどうかの判断を行い、サポートしていると判断した場合には、ステップ３５に進み対応する項目の内容を、受信したCapability情報に基づきセットする。一方ステップ３４でＤＳＣ自身がサポートしていない機能の場合は、そのCapabilityに関しては無視して進む。その後、送信されてきた画像補正リスト中の最後の項目かどうかの判断を行い（ステップＳ３６）、最後でなければ、次の項目に進み（ステップＳ３９）、ステップ３４からＳ３６を繰り返す。
【０１１１】
また、補正に関する最後の項目だった場合、ステップＳ３７に進み、プリンタからのCapability全体で最後のCapabilityであった場合はそのまま終了し、異なる場合、次のCapbabilityの解析（ステップS40）へ進み終了する。またスッテップ３１において、画像補正に関するCapabilityが無かった場合は、ステップＳ３８に進み画像補正FALAGを０（なし）にセットし、ステップＳ３７に進み、同様の判断を行い終了する。
【０１１２】
図２６中のステップＳ２２のCapabilityの解釈では実際には画像補正のCapability以外の様々なCapabilityについて解析を行うことになる。しかしながら、本発明の意図するところをわかりやすくするために、ここでの説明では、画像補正に関するCapabilityの判断についてのみ説明を行った。他のCapabilityの解析との順序/タイミングは特に既定する必要も無く、ＵＩ構築/ジョブ指定ファイルの作成までに行えば問題はない。
【０１１３】
図２７は図２５中のタイミング２５０５でＤＳＣ３０１２からＰＤプリント装置１０００へ送信されるPrintJobFileの一例を示している。このPrintJobFileではＤＳＣ内に保存されているファイル（ファイル名「０００１」）の１枚の印字の指定している例である。さらに先の画像補正に関する情報は<imageOptimize>81FF0108</imageOptimize>の記述により、指定がなされていることを示している。またプリント対象の画像ファイル「０００１」は<fileID>0001</fileID>で記述されており、対応する画像特徴量を保存したファイルＨ０００１は<fileID>H0001</fileID>で記述されている。従って、ＰＤプリンタは印刷すべき画像並びに画像特徴長それぞれのファイルをこの記述に従い、ＤＳＣ３０１２に要求することが可能となる。
【０１１４】
このプリントジョブファイルは、ＤＳＣ３０１２等の画像再生装置において所望の画像をプリント指定した場合に、その画像の特徴量を記述したファイルを指定する情報も自動的にジョブファイルに記録するようにしている。
【０１１５】
つまり、ＤＳＣ等の再生装置が画像特徴量を抽出する機能を有している場合には、ある画像がプリント指定されたことを認識すると、自動的にその画像を解析して特徴量を抽出し、その特徴量のデータをファイル化する。そして、生成するプリントジョブファイルには、そのプリント対象の画像を指定する情報と共に、生成した画像特徴量を示すファイルを指定する情報を記述するようにする。
【０１１６】
もし、プリントすべき画像データを選択した際に、既にその画像に対応する画像特徴量を記述したファイルが作成済みで、記憶保持している場合には、新たにその画像の特徴量を抽出処理は省略して、その画像の特徴量を記述したファイルを指定する情報も自動的にジョブファイルに記録する。
【０１１７】
さらには、上記説明では印刷対象画像の画像特徴量の算出結果を別ファイル化して、そのファイル名をプリントジョブファイル中に書きこみ送信を行い、別途、画像特徴量を別ファイルとする方法について説明を行ったが、転送する画像ファイル自身がExifフォーマット形式などの場合、これらヒストグラムの画像特徴量の情報自体をExifのプライベートタグ内に書き込むことにより、先のプリントジョブファイル中に書きこんだ画像特徴量を保存したファイル「Ｈ０００１」、及びプリントジョブ中の<fileID>H0001</fileID>を省略することが可能となる。これにより、プリンタから参照するファイル数が減り、画像ファイルと画像特徴量を保存したファイルとの対応づけをプリンタ側で行う必要も無くなり、複数枚の画像を同時に印刷する場合などの制御性の手間が半減することができ、より高速化に役立つ。
【０１１８】
またさらには、上記説明では印刷対象画像の画像特徴量の算出結果を別ファイル化して、そのファイル名をプリントジョブファイル中に書きこみ送信を行い、別途、画像特徴量を別ファイルとする方法について説明を行ったが、これらヒストグラムの情報自体を先のプリントジョブファイル中に書きこんでも良い。
【０１１９】
図２８はこの場合のプリントジョブファイルの内容を示している。図２７で示した画像特徴量のファイルを示したファイルを指定する場合とほぼ同じ内容であるが、
<histogramInfo>
< histogramData>
0100000050806…00
</ histogramData >
</histogramInfo >
の内容が異なっている。
【０１２０】
この数字列の部分が今回の送信内容の画像特徴量（明度に関するヒストグラム）の情報が記載されている。
【０１２１】
0100000050806…00
このデータは予め定められておりフォーマットで１ｂｙｔｅ単位の１６進数で意味をなしており、最初の１ｂｙｔｅデータは、この特徴量データが、先の画像補正に関するCapability項目中の“画像補正の種類画像補正に使用する画像特徴量の種類“を表しており、”０１“なので、このデータが“明度に関するヒストグラム”であることを示している。そのあとに実際のヒストグラムデータの各明度の頻度が続くことになる。明度のヒストグラムの場合、明度のレンジが仮に０乃至２５５であるとすると、ヒストグラムデータの頻度データの個数は２５６個となり、個々のヒストグラムは１バイトで表現される。従って、先頭の特徴量の種類の１バイトを含めると、ヒストグラムデータ長は２５７バイトとなる。ただし、頻度データの最大値は２５５となるが、これは現実の画素数を意味するものではなく、画像全体の画素数で正規化した値（比率）である。これにより現画像の総画素数が増えても不要に送信データ量が増加すること防止している。
【０１２２】
図示では、１種類の画像特徴量（明度に関するヒストグラム）にのみの例を示したが、実際には複数の画像特徴量を送信することとなり、その場合は、
<histogramInfo>
< histogramData>
0100000050806…00
</ histogramData >
< histogramData>
02000509589F5…00
</ histogramData >
</histogramInfo >
といったように先頭の１Byteでヒストグラムの種類を指定して、データを記載することによりプリンタ側での解読も容易にできる。
【０１２３】
実施形態におけるＰＤプリンタ１０００は、例えば明度に関する補正を行う場合には、ＤＳＣ３０１２から明度に関するヒストグラムを受信して、画像を補正して印刷を行うことになる。
【０１２４】
画像の補正の一例を図３２に従って説明する。図３２は、或る画像の明度のヒストグラムを示しており、画像全体の明るさに関するダイナミックレンジが狭く、コントラストが低い、いわゆるボケた画像を示している。横軸が明度Ｌ、縦軸が頻度Ｄである。
【０１２５】
頻度データをＤ（Ｌ）と定義したとき、ヒストグラムの面積ＳはΣＤ（Ｌ）で求めることができる。実施形態では、最低明度位置から面積Ｓの５％に相当する明度値Ｂ１と、最高明度位置から面積Ｓの５％に相当する明度Ｂ２を求める。そして、求めた明度値Ｂ１、Ｂ２から、明度補正曲線Ｆを決定し、入力した画像のダイナミックレンジを広げ、コントラストを高くする補正を行う。明度補正曲線ＦはＢ１、Ｂ２に応じて一意に決めるように、予めＬＵＴ（ルックアップテーブル）として用意するか、或いは、Ｂ１、Ｂ２、及び、入力画素の輝度値を引数とする１つの関数で実現してもよい。
【０１２６】
なお、上記の説明においては、ＰＤプリンタ装置の機能情報（Capability情報）をＤＳＣ３０１２が受信後、ユーザが印刷すべき画像を指定した際にＤＳＣ３０１２にて特徴量の抽出処理を行った。これは、印刷指定した画像のみの特徴量を算出するように構成するのに好適であり、撮像時に全画像の特徴量を抽出する場合に比べて全体の計算不可を軽減することが出来る。
【０１２７】
ただし、撮像時に各画像の特徴量を抽出し、撮像画像と関連付けて記憶するようにしても構わない。この場合には、抽出された特徴量に関する情報は、画像データとともに、メモリカード等の記録媒体に記録しておき、プリントジョブファイルを作成時に、機能情報に応じて選択的に特徴量をプリンタに送信するようにすればよい。
【０１２８】
このような構成の場合には、撮像時の計算不可が大きく、また、機能情報に適合した特徴量を抽出する保証はなくなるが、画像に関する多くの特徴を属性情報として記録している撮像装置では、既に記録されている特徴量に関する情報を利用したほうが効率が良くなる。
【０１２９】
次に本実施形態の効果について説明を行う。本実施形態による画像補正ように、ＤＳＣ３０１２側で、画像補正を行うのに必要な画像特徴量を予め算出し、ＰＤプリンタ装置１０００に送信することにより、画像データのデータ量が多くなっても必要以上に画像ファイルを何度もＤＳＣ３０１２側からＰＤプリンタ装置１０００に送信する必要がなく、データ転送の管理/制御のため、システム構成が複雑化を防止し、転送時間が増加を防ぎ、快適なダイレクトプリントを可能する。
【０１３０】
また、例えば画像補正の内容に関して完全にCompatibilityを有していないＰＤプリンタ装置１０００とＤＳＣ３０１２との間でも、その時点で最適と判断される印刷条件で、ＤＳＣ３０１２からの画像を印刷することができる。
【０１３１】
さらには、画像特徴量を得るための画像解析処理は、高画質化し画素数が増すほど、ＣＰＵへの負荷が重くなり、記録装置側の制限された環境で行う場合には印字速度への大きく影響を与えていたが、本実施形態ように、ＤＳＣ３０１２で画像解析を行い画像特徴量の算出を行うことにより、画像出力に要する時間が全体として低減することが可能となる。
【０１３２】
なお、画像特徴量の種類は、実施形態に記載したものだけに限らず、種種の特徴量に適用可能である。
【０１３３】
また、複数の特徴量を、１画像に適用するように構成しても良いのは明らかである。その場合には、複数の特徴量それぞれをファイルと構成して、ジョブファイルに複数の特徴の複数のファイルを記述すればよい。また、複数の特徴量を１つのファイルにまとめてもよい。この場合プリントジョブファイルの記述が簡単になるばかりでなく、プリンタとカメラの通信が簡潔になり通信時間も短縮できる。
【０１３４】
このとき、画像データに適用しようとする特徴量の種類の組み合わせは、前述のcapabilityに応じて決められるようにするのがよいであろう。つまりcapabilityの解析結果に応じて、どれとどれの特徴量を用いるかを決めるようにする。
【０１３５】
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１３６】
また、本発明の目的は、前述した実施形態の機能(カメラ側で行われる処理、プリンタ側で行われる各種印刷処理)を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１３８】
以上説明したように本実施の形態によれば、ＰＤプリンタ装置をＵＳＢホストにＤＳＣをスレーブに設定し、印刷動作に入る前に、ＰＤプリンタ装置が有しているCapabilityに関する情報をＤＳＣに送信し、ＤＳＣ側でそのCapability情報に基づいて最適な印刷モードを決定して印刷を行わせることができる。
【０１３９】
またこのCapability情報の送信をスクリプトにより行うことにより、他の通信プロトコルへの移植が容易になり、標準化し易くなる。
【０１４０】
また、デバイス間の通信手順は汎用ファイル、汎用フォーマットを用いて行い、その上位レイヤに、本実施の形態に係るアプリケーションの通信手順レイヤを規定することにより、各種インターフェース仕様に依存しない通信手順を規定することができる。
【図面の簡単な説明】
【０１４１】
【図１】本発明の実施の形態に係るＰＤプリンタ装置の概観斜視図である。
【図２】本実施の形態に係るＰＤプリンタ装置の操作パネルの概観図である。
【図３】本実施の形態に係るＰＤプリンタ装置の制御に係る主要部の構成を示すブロック図である。
【図４】本実施の形態に係るＰＤプリンタ装置のＡＳＩＣの構成を示すブロック図である。
【図５】本実施の形態に係るＰＤプリンタ装置とデジタルカメラとを接続した状態を示す図である。
【図６】本実施の形態に係るＮＣＤＰを実装したＰＤプリンタ装置とデジタルカメラのソフトウェア構成を説明する概念図である。
【図７】本実施の形態に係るＮＣＤＰ通信手順の概要を説明する図である。
【図８】本実施の形態に係るＮＣＤＰにおけるコマンドを説明する図である。
【図９】本実施の形態に係るＮＣＤＰにおける「基本手順」による印刷手順を説明する図である。
【図１０】本実施の形態に係るＮＣＤＰにおける「推奨手順」による印刷手順を説明する図である。
【図１１】本実施の形態に係るＮＣＤＰにおける「推奨手順」におけるエラー発生時の印刷手順を説明する図である。
【図１２】本実施の形態に係るＮＣＤＰで送信されるCapabilityの一例を説明する図である。
【図１３】本実施の形態に係るＮＣＤＰ通信手順の概要を説明するフローチャートである。
【図１４】ＮＣＤＰ手順の開始を指示する命令（NCDPStart）をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図１５】ＮＣＤＰ手順において、カメラから各手順への移行命令を受取る（ProcedureStart）手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図１６】ＮＣＤＰ手順の終了を指示する命令（NCDPEnd）をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図１７】ＮＣＤＰ手順においてＰＤプリンタ装置からカメラに対してCapabilityを送信する命令（Capability）をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図１８】ＮＣＤＰ手順において、ＰＤプリンタ装置からカメラに保持されている画像ファイルを取得する命令（GetImge）の手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図１９】ＮＣＤＰ手順において、ＰＤプリンタ装置からカメラに対してエラーステータスを送信する命令（StatusSend）の手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図２０】ＮＣＤＰ手順において、ＰＤプリンタ装置からカメラに対して１ページの印刷終了を送信する命令（PageEnd）の手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図２１】ＮＣＤＰ手順において、ＰＤプリンタ装置からカメラに対して印刷ジョブの終了命令（JobEnd）を発行する手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図２２】ＮＣＤＰ手順において、カメラからＰＤプリンタ装置に対して印刷命令の発行（JobStart）する手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図２３】ＮＣＤＰ手順において、カメラからＰＤプリンタ装置に対して印刷の中止命令（JobAbort）を発行する手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図２４】ＮＣＤＰ手順において、カメラからＰＤプリンタ装置に対して印刷再開命令（JobContinue）を発行する手順をＰＴＰアーキテクチャを用いて実現した例を説明する図である。
【図２５】本実施の形態に係るＤＳＣとＰＤプリンタ装置との間での「推奨手順」によるデータのやり取りを説明する図である。
【図２６】本実施の形態に係るＤＳＣにおける「推奨手順」での印刷指示を説明するフローチャートである。
【図２７】本実施の形態に係るプリントジョブファイルの一例を示す図である。。
【図２８】本実施の形態に係るプリントジョブファイルの他の例を示す図である。
【図２９】実施形態におけるデジタルカメラの処理手順を示すフローチャートである。
【図３０】実施形態におけるＰＤプリンタの処理手順を示すフローチャートである。
【図３１】実施形態におけるＰＤプリンタ装置からカメラに対してヒストグラム要求する場合のシーケンスを示す図である。
【図３２】実施形態における明度ヒストグラムと補正曲線との関係を示す図である。
【図１】
2004274728.tif 000003
【図２】
2004274728.tif 000004
【図３】
2004274728.tif 000005
【図４】
2004274728.tif 000006
【図５】
2004274728.tif 000007
【図６】
2004274728.tif 000008
【図７】
2004274728.tif 000009
【図８】
2004274728.tif 000010
【図９】
2004274728.tif 000011
【図１０】
2004274728.tif 000012
【図１１】
2004274728.tif 000013
【図１２】
2004274728.tif 000014
【図１３】
2004274728.tif 000015
【図１４】
2004274728.tif 000016
【図１５】
2004274728.tif 000017
【図１６】
2004274728.tif 000018
【図１７】
2004274728.tif 000019
【図１８】
2004274728.tif 000020
【図１９】
2004274728.tif 000021
【図２０】
2004274728.tif 000022
【図２１】
2004274728.tif 000023
【図２２】
2004274728.tif 000024
【図２３】
2004274728.tif 000025
【図２４】
2004274728.tif 000026
【図２５】
2004274728.tif 000027
【図２６】
2004274728.tif 000028
【図２７】
2004274728.tif 000029
【図２８】
2004274728.tif 000030
【図２９】
2004274728.tif 000031
【図３０】
2004274728.tif 000032
【図３１】
2004274728.tif 000033
【図３２】
2004274728.tif 000034