(57)【要約】【課題】印刷走査のためには、デジタルカメラに対してメモリに記憶できないデータ部分に対応するＪＰＥＧデータを要求し、それを受取って復号してイメージ展開する必要が繰り返し発生する。【解決手段】ＤＳＣからのＪＰＥＧデータを受信して記録するＰＤプリンタ装置であって、メモリの領域を複数のブロックに分割し、受信したＪＰＥＧデータをブロック単位で当該メモリに記憶し、そのメモリに記憶されているＪＰＥＧデータを伸長してイメージデータに展開して印刷する。ここで次に展開すべきＪＰＥＧデータがメモリに記憶されていないと判定すると（Ｓ３）、展開されるべきＪＰＥＧデータに加えて、ＤＳＣからの最大データ転送量以下で、少なくとも１つ以上のブロックに相当するＪＰＥＧデータをＤＳＣに要求する（Ｓ４）。【選択図】　図８
2004009440.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置からの圧縮画像データを受信して記録する画像記録装置であって、
メモリの領域を複数のブロックに分割し、受信した圧縮画像データを前記ブロック単位で当該メモリに記憶する記憶制御手段と、
前記メモリに記憶されている前記圧縮画像データを伸長してイメージデータに展開する展開手段と、
前記展開手段により展開されるべき圧縮画像データが前記メモリに記憶されているかどうかを判定する判定手段と、
前記判定手段により前記メモリに記憶されていないと判定されると、前記展開されるべき圧縮画像データに加えて、少なくとも１つ以上の前記ブロックに相当する圧縮画像データを前記撮像装置に要求する要求手段と、
を有することを特徴とする画像記録装置。
【請求項２】
前記要求手段は、前記展開されるべき圧縮画像データと前記少なくとも１つ以上の前記ブロックに相当する圧縮画像データの合計量が、前記撮像装置から送信される１パケット分のデータ量に等しいか、或いはそれ以下とすることを特徴とする請求項１に記載の画像記録装置。
【請求項３】
前記複数のブロックのそれぞれは、少なくともデータ領域、前記圧縮画像データにおけるデータ位置、及び論理的に連結している前後ブロックを指示するポインタとを含むことを特徴とする請求項１又は２に記載の画像記録装置。
【請求項４】
前記記憶制御手段は、空いているブロックが存在しない場合には、最も以前に圧縮画像データが格納されたブロックに、前記受信した圧縮画像データを記憶するように制御することを特徴とする請求項１乃至３のいずれか１項に記載の画像記録装置。
【請求項５】
記録ヘッドを走査して記録する記録手段を更に有し、前記展開手段は前記記録ヘッドの走査により記録される分の圧縮画像データを、該当するブロックから読み出して伸長することを特徴とする請求項１に記載の画像記録装置。
【請求項６】
撮像装置からの圧縮画像データを受信して記録する画像記録装置における画像記録制御方法であって、
メモリの領域を複数のブロックに分割し、受信した圧縮画像データを前記ブロック単位で当該メモリに記憶する記憶制御工程と、
前記メモリに記憶されている前記圧縮画像データを伸長してイメージデータに展開する展開工程と、
前記展開工程で展開されるべき圧縮画像データが前記メモリに記憶されているかどうかを判定する判定工程と、
前記判定工程で前記メモリに記憶されていないと判定されると、前記展開されるべき圧縮画像データに加えて、少なくとも１つ以上の前記ブロックに相当する圧縮画像データを前記撮像装置に要求する要求工程と、
を有することを特徴とする画像記録制御方法。
【請求項７】
前記要求工程では、前記展開されるべき圧縮画像データと前記少なくとも１つ以上の前記ブロックに相当する圧縮画像データの合計量が、前記撮像装置から送信される１パケット分のデータ量に等しいか、或いはそれ以下とすることを特徴とする請求項６に記載の画像記録制御方法。
【請求項８】
前記複数のブロックのそれぞれは、少なくともデータ領域、前記圧縮画像データにおけるデータ位置、及び論理的に連結している前後ブロックを指示するポインタとを含むことを特徴とする請求項６又は７に記載の画像記録制御方法。
【請求項９】
前記記憶制御工程では、空いているブロックが存在しない場合には、最も以前に圧縮画像データが格納されたブロックに、前記受信した圧縮画像データを記憶するように制御することを特徴とする請求項６乃至８のいずれか１項に記載の画像記録制御方法。
【請求項１０】
記録ヘッドを走査して記録する記録工程を更に有し、前記展開工程では、前記記録ヘッドの走査により記録される分の圧縮画像データを、該当するブロックから読み出して伸長することを特徴とする請求項６乃至９のいずれか１項に記載の画像記録制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばデジタルカメラ等で撮影された画像データを入力して記録媒体に記録する画像記録装置及びその記録制御方法に関するものである。
【０００２】
【従来の技術】
近年、簡単な操作で画像を撮影してデジタル画像データに変換できるデジタルカメラ（撮像装置）、所謂、デジカメが広く使用されるようになってきている。このようなカメラで撮影した画像を印刷して写真として使用する場合には、通常、一旦、その撮影されたデジタル画像データを、デジタルカメラからＰＣ（コンピュータ）に取り込み、そのＰＣで画像処理を行った後、そのＰＣからカラープリンタに出力して印刷するのが一般的である。
【０００３】
これに対して最近は、ＰＣを介することなく、直接、デジタルカメラからカラープリンタにデジタル画像データを伝送して印刷することができるカラープリントシステムや、デジタルカメラに搭載され、撮像した画像を記憶しているメモリカードを、直接、カラープリンタに装着し、そのメモリカードに記憶されている、撮影された画像を印刷できる、所謂フォトダイレクト（ＰＤ）プリンタ等も開発されている。
【０００４】
デジタルカメラに格納されている画像データは、一般的にはＪＰＥＧ等により圧縮されており、上述のＰＤプリンタ装置は、この圧縮画像データを入力しバッファに格納した後、それを伸長して印刷を行っている。このような圧縮画像データを入力し、それを伸長して印刷する場合の伸長方法として、例えば特開平１０−２６２２４９号公報「圧縮画像データの伸長方法及び装置」がある。これによると、圧縮画像データとして蓄積された以外の順序で、ＭＣＵ単位に画像データを取り出すことが記載されている。この方法を用いれば、１画面分の画像出力バッファを準備する必要がなく画像データの伸長処理に要するメモリサイズを縮小できるという利点がある。但し、この発明が有効なものとなる前提として、データの読み出し速度が十分に速いという要件が必要になる。これは、十分に速いアクセス速度が得られる場合は、頻繁にＭＣＵ単位でのデータのアクセスを行っても、その画像データを伸長して出力する速度に与える影響は少ないと考えられる。
【０００５】
【発明が解決しようとする課題】
しかしながら上記従来例では、ＭＣＵ単位での画像データのアクセスが頻繁に発生するために、画像ファイルなどへのリード、シークが十分に高速に行えない場合には、その画像データが印刷されるまでの時間が著しく長くなる。即ち、圧縮画像データを伸長処理前に１度読み取り、１画面中のＭＣＵ毎の符号化ビット長情報を求め、所定の順にＭＣＵ単位で圧縮画像の伸長処理を行うため、画像データの先端部から後端部にかけてランダムに、画像データへのアクセスが発生する。また、画像データのサイズが、そのＰＤプリンタ装置のメモリサイズを超えている場合は、単純に画像データの先頭からバッファリングを行っただけでは、最後の画像データ部分がバッファリングできない。このため、そのバッファメモリのサイズを越えた画像データ部分を印刷する際には、更にカメラにそのデータを要求して取得するためのアクセスが必要になり、よりアクセス速度の遅さの影響が出てしまう。
【０００６】
この問題点を図１１及び図１２を参照して詳しく説明する。
【０００７】
図１１は、ラスタ走査順に圧縮されたＪＰＥＧデータをその順序で受信してイメージ展開した場合の、イメージメモリにおける画像データの存在域（斜線部）を示す図で、図示のように、イメージ展開された画像データは、その水平方向の長さがそれぞれ異なっている。ここでプリンタ装置のメモリ容量を抑えて製品のコストダウンを図るために、このイメージメモリのメモリ容量はイメージデータ全体を格納できる容量以下に設定されている。図において、１００００で示す部分がイメージメモリに格納可能な範囲とする。
【０００８】
また、プリントヘッドの走査範囲を狭くして製品の小型化を図りながら、より大きな画像の印刷出力を可能にするために、図１１におけるような横長の画像に対して垂直方向に画像を印刷する方法が用いられている。
【０００９】
従って、図１２のように、１１０００で示す画像データを、ラスタ順、即ち、ＪＰＥＧデータの順に格納して展開すると、１１００１で示す部分がイメージメモリのメモリ容量内に含まれ、１１００２で示す部分がはみ出してしまい、記憶されなくなる。ここで、キャリッジ（プリントヘッド）の走査方向は垂直方向であるため、最初のヘッド走査で印刷されるデータ部分（斜線部：１１００３＋１１００４）の内、１１００４で示すデータ部分がイメージメモリに格納されていないため、この印刷走査のためには、更にデジタルカメラに対して、この部分１１００４に対応するＪＰＥＧデータを要求し、それを受取って復号してイメージ展開する必要が生じる。このような処理は画像データの印刷に要する時間を長くし、ユーザにとって極めて使いずらいものとなっていた。
【００１０】
本発明は上記従来例に鑑みてなされたもので、画像データを撮像装置から効率良く取得してメモリに記憶し、撮像装置からの画像データの転送回数を減らして画像の印刷に要する時間を短縮する画像記録装置及びその記録制御方法を提供することを目的とする。
【００１１】
また本発明の目的は、少ないメモリ容量の場合でも、画像データを効率良く記憶して画像データの転送回数を減らし、画像の印刷に要する時間を短縮できるようにした画像記録装置及びその記録制御方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するために本発明の画像記録装置は以下のような構成を備える。即ち、
撮像装置からの圧縮画像データを受信して記録する画像記録装置であって、
メモリの領域を複数のブロックに分割し、受信した圧縮画像データを前記ブロック単位で当該メモリに記憶する記憶制御手段と、
前記メモリに記憶されている前記圧縮画像データを伸長してイメージデータに展開する展開手段と、
前記展開手段により展開されるべき圧縮画像データが前記メモリに記憶されているかどうかを判定する判定手段と、
前記判定手段により前記メモリに記憶されていないと判定されると、前記展開されるべき圧縮画像データに加えて、少なくとも１つ以上の前記ブロックに相当する圧縮画像データを前記撮像装置に要求する要求手段と、
を有することを特徴とする。
【００１３】
上記目的を達成するために本発明の画像記録制御方法は以下のような工程を備える。即ち、
撮像装置からの圧縮画像データを受信して記録する画像記録装置における画像記録制御方法であって、
メモリの領域を複数のブロックに分割し、受信した圧縮画像データを前記ブロック単位で当該メモリに記憶する記憶制御工程と、
前記メモリに記憶されている前記圧縮画像データを伸長してイメージデータに展開する展開工程と、
前記展開工程で展開されるべき圧縮画像データが前記メモリに記憶されているかどうかを判定する判定工程と、
前記判定工程で前記メモリに記憶されていないと判定されると、前記展開されるべき圧縮画像データに加えて、少なくとも１つ以上の前記ブロックに相当する圧縮画像データを前記撮像装置に要求する要求工程と、
を有することを特徴とする。
【００１４】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１５】
図１は、本発明の実施の形態に係るフォトダイレクトプリンタ装置（以下、ＰＤプリンタ装置）１０００の概観斜視図である。このＰＤプリンタ装置１０００は、ホストコンピュータ（ＰＣ）からデータを受信して印刷する通常のＰＣプリンタとしての機能と、メモリカードなどの記憶媒体に記憶されている画像データを直接読取って印刷したり、或いはデジタルカメラからの画像データを受信して印刷する機能を備えている。
【００１６】
図１において、本実施の形態に係るＰＤプリンタ装置１０００の外殻をなす本体は、ケースＭ１００１、上ケース１００２、アクセスカバー１００３及び排出トレイ１００４の外装部材を有している。また、下ケース１００１は、ＰＤプリンタ装置１０００の略下半部を、上ケース１００２は本体の略上半部をそれぞれ形成しており、両ケースの組合せによって内部に後述の各機構を収納する収納空間を有する中空体構造をなし、その上面部及び前面部にはそれぞれ開口部が形成されている。さらに、排出トレイ１００４は、その一端部が下ケース１００１に回転自在に保持され、その回転によって下ケース１００１の前面部に形成される開口部を開閉させ得るようになっている。このため、記録動作を実行させる際には、排出トレイ１００４を前面側へと回転させて開口部を開成させることにより、ここから記録シートが排出可能となると共に、排出された記録シートを順次積載し得るようになっている。また、排紙トレイ１００４には、２枚の補助トレイ１００４ａ，１００４ｂが収納されており、必要に応じて各トレイを手前に引き出すことにより、用紙の支持面積を３段階に拡大、縮小させ得るようになっている。
【００１７】
アクセスカバー１００３は、その一端部が上ケース１００２に回転自在に保持され、上面に形成される開口部を開閉し得るようになっており、このアクセスカバー１００３を開くことによって本体内部に収納されている記録ヘッドカートリッジ（不図示）あるいはインクタンク（不図示）等の交換が可能となる。なお、ここでは特に図示しないが、アクセスカバー１００３を開閉させると、その裏面に形成された突起がカバー開閉レバーを回転させるようになっており、そのレバーの回転位置をマイクロスイッチなどで検出することにより、アクセスカバーの開閉状態を検出し得るようになっている。
【００１８】
また、上ケース１００２の上面には、電源キー１００５が押下可能に設けられている。また、上ケース１００２の右側には、液晶表示部１００６や各種キースイッチ等を備える操作パネル１０１０が設けられている。この操作パネル１０１０の構造は、図２を参照して詳しく後述する。１００７は自動給送部で、記録シートを装置本体内へと自動的に給送する。１００８は紙間選択レバーで、プリントヘッドと記録シートとの間隔を調整するためのレバーである。１００９はカードスロットで、ここにメモリカードを装着可能なアダプタが挿入され、このアダプタを介してメモリカードに記憶されている画像データを直接取り込んで印刷することができる。このメモリカード（ＰＣ）としては、例えばコンパクトフラッシュ（登録商標）メモリ、スマートメディア、メモリスティック等がある。１０１１はビューワ（液晶表示部）で、このＰＤプリンタ装置１０００の本体に着脱可能であり、ＰＣカードに記憶されている画像の中からプリントしたい画像を検索する場合などに、１コマ毎の画像やインデックス画像などを表示するのに使用される。１０１２は後述するデジタルカメラを接続するためのＵＳＢ端子である。また、このＰＤ装置１０００の後面には、パーソナルコンピュータ（ＰＣ）を接続するためのＵＳＢコネクタが設けられている。
【００１９】
図２は、本実施の形態に係るＰＤプリンタ装置１０００の操作パネル１０１０の概観図である。
【００２０】
図において、液晶表示部１００６には、その左右に印刷されている項目に関するデータを各種設定するためのメニュー項目が表示される。ここに表示される項目としては、例えば、印刷したい範囲の先頭写真番号、指定コマ番号（開始コマ指定／印刷コマ指定）、印刷を終了した範囲の最後の写真番号（終了）、印刷部数（部数）、印刷に使用する用紙（記録シート）の種類（用紙種類）、１枚の用紙に印刷する写真の枚数設定（レイアウト）、印刷の品位の指定（品位）、撮影した日付を印刷するかどうかの指定（日付印刷）、写真を補正して印刷するかどうかの指定（画像補正）、印刷に必要な用紙枚数の表示（用紙枚数）等がある。これら各項目は、カーソルキー２００１を用いて選択、或いは指定される。２００２はモードキーで、このキーを押下する毎に、印刷の種類（インデックス印刷、全コマ印刷、１コマ印刷等）を切り替えることができ、これに応じてＬＥＤ２００３の対応するＬＥＤが点灯される。２００４はメンテナンスキーで、プリントヘッドのクリーニング等、プリンタのメンテナンスを行わせるためのキーである。２００５は印刷開始キーで、印刷の開始を指示する時、或いはメンテナンスの設定を確立する際に押下される。２００６は印刷中止キーで、印刷を中止させる時や、メンテナンスの中止を指示する際に押下される。
【００２１】
次に図３を参照して、本実施の形態に係るＰＤプリンタ装置１０００の制御に係る主要部の構成を説明する。尚、この図３において、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２２】
図３において、３０００は制御部（制御基板）を示している。３００１はＡＳＩＣ（専用カスタムＬＳＩ）を示し、その構成は図４のブロック図を参照して詳しく後述する。３００２はＤＳＰ（デジタル信号処理プロセッサ）で、内部にＣＰＵを有し、後述する各種制御処理及び、輝度信号（ＲＧＢ）から濃度信号（ＣＭＹＫ）への変換、スケーリング、ガンマ変換、誤差拡散等の画像処理等を担当している。３００３はメモリで、ＤＳＰ３００２のＣＰＵの制御プログラムを記憶するプログラムメモリ３００３ａ、及び実行時のプログラムを記憶するＲＡＭエリア、画像データなどを記憶するワークメモリとして機能するメモリエリアを有している。３００４はプリンタエンジンで、ここでは、複数色のカラーインクを用いてカラー画像を印刷するインクジェットプリンタのプリンタエンジンが搭載されている。３００５はデジタルカメラ（ＤＳＣ）３０１２を接続するためのポートとしてのＵＳＢコネクタである。３００６はビューワ１０１１を接続するためのコネクタである。３００８はＵＳＢハブ（ＵＳＢ　ＨＵＢ）で、このＰＤプリンタ装置１０００がＰＣ３０１０からの画像データに基づいて印刷を行う際には、ＰＣ３０１０からのデータをそのままスルーし、ＵＳＢ３０２１を介してプリンタエンジン３００４に出力する。これにより、接続されているＰＣ３０１０は、プリンタエンジン３００４と直接、データや信号のやり取りを行って印刷を実行することができる（一般的なＰＣプリンタとして機能する）。３００９は電源コネクタで、電源３０１１により、商用ＡＣから変換された直流電圧を入力している。ＰＣ３０１０は一般的なパーソナルコンピュータ、３０１１は前述したメモリカード（ＰＣカード）、３０１２はデジタルカメラ（ＤＳＣ：Ｄｉｇｉｔａｌ　Ｓｔｉｌｌ　Ｃａｍｅｒａ）である。
【００２３】
尚、この制御部３０００とプリンタエンジン３００４との間の信号のやり取りは、前述したＵＳＢ３０２１又はＩＥＥＥ１２８４バス３０２２を介して行われる。
【００２４】
図４は、ＡＳＩＣ３００１の構成を示すブロック図で、この図４においても、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２５】
４００１はＰＣカードインターフェース部で、装着されたＰＣカード３０１１に記憶されている画像データを読取ったり、或いはＰＣカード３０１１へのデータの書き込み等を行う。４００２はＩＥＥＥ１２８４インターフェース部で、プリンタエンジン３００４との間のデータのやり取りを行う。このＩＥＥＥ１２８４インターフェース部４００２は、デジタルカメラ３０１２或いはＰＣカード３０１１に記憶されている画像データを印刷する場合に使用されるバスである。４００３はＵＳＢインターフェース部で、ＰＣ３０１０との間でのデータのやり取りを行う。４００４はＵＳＢホストインターフェース部で、デジタルカメラ３０１２との間でのデータのやり取りを行う。４００５は操作パネル・インターフェース部で、操作パネル１０１０からの各種操作信号を入力したり、表示部１００６への表示データの出力などを行う。４００６はビューワ・インターフェース部で、ビューワ１０１１への画像データの表示を制御している。４００７は各種スイッチやＬＥＤ４００９等との間のインターフェースを制御するインターフェース部である。４００８はＣＰＵインターフェース部で、ＤＳＰ３００２との間でのデータのやり取りの制御を行っている。４０１０はこれら各部を接続する内部バス（ＡＳＩＣバス）である。
【００２６】
図５は、本実施の形態に係るフォトダイレクトプリンタ装置１０００の画像処理制御に係る機能構成をより詳しく示す機能ブロック図である。尚、この図８においても、前述の図面と共通する部分は同じ記号を付与して、それらの説明を省略する。
【００２７】
図５において、ＵＳＢバスインターフェース等のインターフェース部７００５を介して入力されたＰＣカード３０１１、カメラ３０１２或はＰＣ３０１０からの画像データ或はＪＰＥＧ圧縮された画像データは、一旦入力バッファ７０００に格納され、圧縮されたデータの場合はＪＰＥＧ解凍部（ＪＰＥＧデコーダ）７００６により解凍され、Ｙ，Ｃｂ，Ｃｒ信号からＲＧＢ信号に変換された後、ＲＧＢバッファ７００１に格納される。７０１０はＸ，Ｙスケーリング部で、ＲＧＢバッファ７００１に格納された画像データのＸ及び／又はＹ方向のサイズを変換する。３Ｄ３（７００７）は、ルックアップテーブル７００９を参照してＲＧＢデータの色空間を変換する。また３Ｄ６（７００８）は、ルックアップテーブル７００９を参照して、ＲＧＢ信号をＣ，Ｍ，Ｙ，Ｋ，ＬＣ（明るいシアン），ＬＭ（明るいマゼンタ）の６色の信号に変換する。７０１１は１Ｄ出力部で、一次元テーブル７０１２を参照してγ変換等の色処理を実行する。７０１２は誤差拡散（ＥＤ）部で、多値画像データに対して誤差拡散処理を実行して、各色の２値画像データ（或は多値データ）を生成する。こうして生成された２値（或は多値）画像データは、ＥＤバッファ７００３に格納される。７００４はワークバッファで、各色のインクを吐出する複数の記録ヘッドのそれぞれに対応する記録データを記憶している。こうして作成された各記録ヘッドに対応する記録データはプリンタインターフェース７０１３を介してプリンタエンジン３００４に送られて印刷される。
【００２８】
以上の構成に基づく動作概要を以下に説明する。
【００２９】
＜通常のＰＣプリンタモード＞
これはＰＣ３０１０から送られてくる印刷データに基づいて画像を印刷する印刷モードである。
【００３０】
このモードでは、ＰＣ３０１０からのデータがＵＳＢコネクタ１０１３（図３）を介して入力されると、ＵＳＢハブ３００８、ＵＳＢ３０２１を介して直接プリンタエンジン３００４に送られ、ＰＣ３０１０からのデータに基づいて印刷が行われる。
【００３１】
＜ＰＣカードからの直接プリントモード＞
ＰＣカード３０１１がカードスロット１００９に装着或いは脱着されると割り込みが発生し、これによりＤＳＰ３００２はＰＣカード３０１１が装着されたか或いは脱着（取り外された）されたかを検知できる。ＰＣカード３０１１が装着されると、そのＰＣカード３０１１に記憶されている圧縮された（例えばＪＰＥＧ圧縮）画像データを読込んでメモリ３００３に記憶する。その後、その圧縮された画像データを解凍して再度メモリ３００３に格納する。次に、操作パネル１０１を使用して、その格納した画像データの印刷が指示されると、ＲＧＢ信号からＹＭＣＫ信号への変換、ガンマ補正、誤差拡散等を実行してプリンタエンジン３００４で印刷可能な記録データに変換し、ＩＥＥＥ１２８４インターフェース部４００２を介してプリンタエンジン３００４に出力することにより印刷を行う。
【００３２】
＜カメラからの直接プリントモード＞
図６は本実施の形態に係るＰＤプリンタ装置１０００とデジタルカメラ３０１２とを接続した状態を示す図である。
【００３３】
図において、ケーブル５０００は、ＰＤプリンタ装置１０００のコネクタ１０１２と接続されるコネクタ５００１と、デジタルカメラ３０１２の接続用コネクタ５００３と接続するためのコネクタ５００２とを備えており、また、デジタルカメラ３０１２は、内部のメモリに保存している画像データを、接続用コネクタ５００３を介して出力可能に構成されている。なお、デジタルカメラ３０１２の構成としては、内部に記憶手段としてのメモリを備えるものや、取外し可能なメモリを装着するためのスロットを備えたものなど、種々の構成を採用することができる。このように、図６に示すケーブル５０００を介してＰＤプリンタ装置１０００とデジタルカメラ３０１２とを接続することにより、デジタルカメラ３０１２からの画像データを直接ＰＤプリンタ装置１０００で印刷することができる。
【００３４】
ここで図６に示すように、ＰＤプリンタ装置１０００にデジタルカメラ３０１２が接続された場合は、操作パネル１０１０の表示部１００６にはカメラマークのみが表示され、操作パネル１０１０における表示及び操作が無効になり、又ビューワ１０１１への表示も無効になる。従って、これ以降はデジタルカメラ３０１２でのキー操作及びデジタルカメラ３０１２の表示部（不図示）への画像表示のみが有効になるので、ユーザはそのデジタルカメラ３０１２を使用して印刷指定を行うことができる。
【００３５】
以下、本実施の形態の特徴部分について説明する。
【００３６】
図７（Ａ）〜（Ｃ）は、デジタルカメラ３０１２からＪＰＥＧデータを受信して記憶する入力バッファ７０００の中の画像データを格納するメモリエリアの構成を説明する図である。この入力バッファ７０００は、受信したＪＰＥＧデータを記憶しており、ＪＰＥＧ解凍部７００６からＪＰＥＧデータが要求されると、それに対応するＪＰＥＧデータをＪＰＥＧ解凍部７００６に供給して解凍させる。こうして解凍されたＪＰＥＧ画像データは、印刷イメージに対応するＲＧＢデータ、ＹＭＣＫデータに変換され、プリンタエンジンにおけるヘッドの走査に同期してプリンタエンジン３００４に出力されて印刷が行われる。
【００３７】
図７（Ａ）は、この入力バッファ７０００のメモリ構成を示す概念図で、ここではメモリ内を複数のセル（ブロック）に分割して、セル単位にＪＰＥＧデータを記憶している。図において、斜線部は、有効なＪＰＥＧデータが記憶されているセル（有効セル）を示し、白のセルは有効なＪＰＥＧデータが記憶されていないセル（空きセル）を示している。
【００３８】
図７（Ｂ）は、各セルのデータ構造を説明する図である。
【００３９】
図において、６０１はデータ（５１２バイト）で、ＪＰＥＧデータが記憶される。なお、本実施例では５１２バイトのデータを例に挙げて説明するが、本発明を適用可能なシステムにおいて、データのバイト数が５１２バイトに限定されるものではない。６０２は、データ６０１のデータが、元の画像ファイルの何処（何バイト目）に位置しているかを示す位置情報である。６０３は有効フラグで、このセルのデータが有効であるか否かを示す。６０４は次セルへのポインタで、このセルに後続しているセルを指示している。６０５は前セルのポインタで、このセルの一つ前の連携しているセルを指示している。このようなポインタにより、各セル同士の接続関係を規定することにより、１つの画像ファイルのＪＰＥＧデータのセルをメモリ空間上で物理的な位置に隣接して配置する必要がない。これにより、メモリ空間を有効に活用することができる。
【００４０】
図７（Ｃ）は、各セル同士の関連を説明する図で、ヘッダセル→「空きセル」→「有効セル」（最も古い（最初に格納されたセル）セル→新しい（最近格納されたセル）セルの順）→ヘッダセルの順に、リング状に論理的に関連付けて接続されている。ここでは「有効セル」を、最古のセルから最新のセルの順に並べてあるので、「空きセル」がなくなったときに、最も古い「有効セル」を「空きセル」に変更して、その「空きセル」に新たに取得したデータを格納することができる。またヘッダセルの直後に「空きセル」を配置しているので、新たな圧縮画像データを受信した時に、その圧縮画像データを記憶するための「空きセル」を直に探すことができる。
【００４１】
次に、図８のフローチャートを参照して、このＰＤプリンタ装置１０００とデジタルカメラ（ＤＳＣ）３０１２とのやり取りの概要を説明する。
【００４２】
この処理はＤＳＣ３０１２において、画像ファイルが指定されて、その印刷が指示されることにより開始され、まずステップＳ１で、ＤＳＣ３０１２より、その指定された画像ファイルのＪＰＥＧデータを入力して入力バッファ７０００の所定のメモリエリアに格納する。ここで、画像ファイルのデータ量によっては、この入力バッファ７０００に、その画像ファイルの圧縮データを全て格納できない場合があり得る。このステップＳ１の処理は図９のフローチャートを参照して後述する。
【００４３】
次にステップＳ２に進み、ＪＰＥＧ解凍部７００６にＪＰＥＧデータを送り、そのＪＰＥＧデータの解凍を指示する。次にステップＳ３に進み、入力バッファ７０００に格納されている圧縮データを解凍すると、プリンタエンジン３００４におけるプリントヘッドの一走査分の記録データ（イメージデータ）が生成できるかどうかを判定し、生成できる場合はステップＳ６に進み、そのＪＰＥＧデータを伸長して、一主走査分のイメージデータを展開する。そしてステップＳ７に進んで一主走査のプリント処理を実行し、次にステップＳ８で、この画像ファイルの印刷処理が終了したかを調べる。終了していないときはステップＳ２に戻り、次の一主走査の圧縮データの伸長処理に進む。
【００４４】
一方、ステップＳ３で、一走査分の記録データ（イメージデータ）が生成されない場合はステップＳ４に進み、ＤＳＣ３０１２に対してＪＰＥＧデータを要求し、その要求に応じて送られてくる圧縮データを受信して入力バッファ７０００に記憶する。これにより、次の一主走査で印刷するイメージデータの生成が可能になる。
【００４５】
図９は前述のステップＳ１における、ＤＳＣ３０１２からのＪＰＥＧデータの入力処理を示すフローチャートである。
【００４６】
まずステップＳ１１で、入力バッファ７０００の画像データ記憶エリアの各セルのデータを初期化（クリア）する。次にステップＳ１２に進み、ＤＳＣ３０１２に対して、ＤＳＣ３０１２から取得できる最大サイズのデータを要求し、それを受信する。次にステップＳ１３に進み、その受信したＪＰＥＧデータを、入力バッファ７０００のセル単位で取り込む。この処理をステップＳ１４で、入力バッファ７０００の「空きセル」がなくなるまで繰り返し実行する。
【００４７】
この処理を図７を参照して説明する。最初、図７（Ａ）において、入力バッファ７０００の全てのセルはクリアされた状態にあり、空いているセルに、受信した順番にＪＰＥＧデータが記憶される。そして、その格納されたセルの順番に、「有効セル」の最古のセル乃至「有効セル」の最新セルというように、各セルのポインタにより各セル同士が関連付けられる。尚、「空きセル」がなくなった状態では、ヘッダセルの直後には、「有効セル」の内の最古のセルが位置付けられる。但し、これらセルの関連付けは、前述したように、あくまでも概念的なものであり物理的な位置順序を示すものではない。
【００４８】
次に、図１０のフローチャートを参照して、図８のステップＳ３乃至Ｓ５の処理をより詳しく説明する。
【００４９】
まずステップＳ２１で、次の一主走査で印刷される分のイメージデータをＪＰＥＧ解凍部７００６に供給して、このＪＰＥＧ解凍部７００６から要求されるＪＰＥＧデータを全て処理したかどうかを判定する。そうであれば、これ以上処理を行う必要がないので、そのまま処理を終了する。
【００５０】
そうでない時、即ち、ＪＰＥＧ解凍部７００６から次のＪＰＥＧデータが要求されている時はステップＳ２２に進み、その要求されたＪＰＥＧデータが既に入力バッファ７０００のいずれかのセルに格納されているか否かを判断する。これはＪＰＥＧ解凍部７００６から次に必要なＪＰＥＧデータが指定されるので、それに対応するセルのデータを、そのセルの位置情報６０２を参照して探す。こうして要求されたＪＰＥＧデータがセルに格納されている時はステップＳ２３に進み、そのセルからＪＰＥＧデータを読み出して、ＪＰＥＧ解凍部７００６に供給する。そしてステップＳ２４に進み、そのＪＰＥＧデータを読み出したセルの有効フラグ６０３を使用済みを示すオフにして、そのセルを「空きセル」とする。そして、この「空きセル」を、図７（Ｃ）に示すヘッダセルの直後に位置付ける。これはヘッダセルの次セルへのポインタ６０４を、その「空きセル」の先頭位置にし、その「空きセル」の前セルのポインタ６０５をヘッダセルの最後尾を指示する値にし、その「空きセル」の次セルへのポインタ６０４を、それ以前の「空きセル」の先頭位置、或いは他に「空きセル」がない場合は、最古の「有効セル」の先頭を指示する値に変更すればよい。また、その「有効セル」から「空きセル」に変更されたセルの前後の「有効セル」或いは「空きセル」のポインタ６０４，６０５も同様に、変更されることはいうまでもない。
【００５１】
これにより、既に入力バッファ７０００に記憶されているＪＰＥＧデータをデコードしてイメージに展開し、そのデコードにより、そのＪＰＥＧデータが記憶されていたセルを解放することができる。
【００５２】
一方、ステップＳ２２で、ＪＰＥＧ解凍部７００６から要求されたＪＰＥＧデータが入力バッファ７０００のいずれのセルにも格納されていない時はステップＳ２５に進み、ＤＳＣ３０１２に対してＪＰＥＧデータを要求しなければならない。ここでは、ＪＰＥＧ解凍部７００６から要求されたＪＰＥＧデータ量だけを要求したのでは効率的でないため、更に複数のセル分に相当するＪＰＥＧデータ（最適取得セル個数分）を要求する。ここではこの最適取得セル個数は、（ＪＰＥＧ解凍部７００６から要求されたＪＰＥＧデータ量）＋（最適取得セル個数分）の合計値が、ＤＳＣ３０１２から一度に取得可能なＪＰＥＧデータ量（１パケット分）以下であることが必須条件である。ここで、最適取得セル個数は、以下の計算式で求めることができる。
重み＝ファイルサイズ／受信バッファサイズ
・ファイルサイズと受信バッファサイズの比率を算出
１ＭＣＵライン辺りのサイズ＝ファイルサイズ／（ＭＣＵ数×セルデータサイズ）
・１ＭＣＵライン中にどれだけのデータが入るか算出
最適取得量＝（１ＭＣＵライン辺りのサイズ／重み）×セルデータサイズ；
・１ＭＣＵライン当りの取得サイズを算出
【００５３】
こうして、この要求したデータ量に従ってＤＳＣ３０１２から送信されるＪＰＥＧデータを受信するとステップＳ２６に進み、ＪＰＥＧ解凍部７００６から要求された分のＪＰＥＧデータをＪＰＥＧ解凍部７００６に供給する。次にステップＳ２７に進み、余分に要求した（最適取得セル個数分）のＪＰＥＧデータを入力バッファ７０００に格納するために、その（最適取得セル個数分）のＪＰＥＧデータを格納できるだけの「空きセル」が、入力バッファ７０００にあるかどうかをみる。それだけの「空きセル」があればステップＳ２８に進み、その（最適取得セル個数分）のＪＰＥＧデータを「空きセル」に格納し、それら新たにＪＰＥＧデータが格納されたセルを「有効セル」とし、それらセルを図７（Ｃ）に示す「最新有効セル」の後（ヘッダセルの前方）に続けて位置付ける。
【００５４】
またステップＳ２７で、（最適取得セル個数分）のＪＰＥＧデータを格納できるだけの「空きセル」が入力バッファ７０００にない場合はステップＳ２９に進み、「有効セル」の中の最古のセル（最もヘッダセルに近い「有効セル」）から必要な個数分（（最適取得セル個数分）−（既に存在している「空きセル」の数））のセルを「空きセル」に変更する。これにより、図７（Ｃ）において、連続している「空きセル」の個数が（最適取得セル個数分）確保されたことになり、ステップＳ２８で、それら最適取得セル個数分のＪＰＥＧデータをセルに格納することができる。
【００５５】
この様にして、入力バッファ（メモリ）を効率良く使用して、ＤＳＣ３０１２からのＪＰＥＧデータの取得回数を減らすことにより、ＤＳＣ３０１２からＪＰＥＧデータを取得して印刷するまでの時間を短縮することができる。
【００５６】
また、ＤＳＣ３０１２から取得したデータを記憶するメモリ容量を少なく抑えながら、印刷に要する時間の増大を防止できるという効果がある。
【００５７】
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００５８】
また、本発明の目的は、前述した実施形態の機能（カメラ側で行われる処理、プリンタ側で行われる各種印刷処理）を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００５９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６０】
【発明の効果】
以上説明したように本発明によれば、少ない容量のメモリを効率良く使用して、撮像装置からの画像データを効率良く記憶できる。
【００６１】
また本発明によれば、メモリ容量の少ないメモリを使用した場合でも、撮像装置からの画像データの転送回数を減らして画像の印刷に要する時間を短縮することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るＰＤプリンタ装置の概観斜視図である。
【図２】本実施の形態に係るＰＤプリンタ装置の操作パネルの概観図である。
【図３】本実施の形態に係るＰＤプリンタ装置の制御に係る主要部の構成を示すブロック図である。
【図４】本実施の形態に係るＰＤプリンタ装置のＡＳＩＣの構成を示すブロック図である。
【図５】本実施の形態に係るフォトダイレクトプリンタ装置の画像処理制御に係る機能構成を示す機能ブロック図である。
【図６】本実施の形態に係るＰＤプリンタ装置とデジタルカメラとを接続した状態を示す図である。
【図７】本実施の形態に係る入力バッファのデータ構成を説明する図である。
【図８】本発明の実施の形態に係るＰＤプリンタ装置におけるデジタルカメラからのデータ取得処理の概要を説明するフローチャートである。
【図９】図８のステップＳ１におけるカメラからのＪＰＥＧデータの入力処理を示すフローチャートである。
【図１０】本実施の形態の入力バッファでのバッファリング処理を説明するフローチャートである。
【図１１】従来の問題点を説明する図である。
【図１２】従来の問題点を説明する図である。
【図１】
2004009440.tif 000003
【図２】
2004009440.tif 000004
【図３】
2004009440.tif 000005
【図４】
2004009440.tif 000006
【図５】
2004009440.tif 000007
【図６】
2004009440.tif 000008
【図７】
2004009440.tif 000009
【図８】
2004009440.tif 000010
【図９】
2004009440.tif 000011
【図１０】
2004009440.tif 000012
【図１１】
2004009440.tif 000013
【図１２】
2004009440.tif 000014