(57)【要約】【課題】  複数の画像バッファに記憶されていない画像データを速やかに取得すること。【解決手段】  画像データキャッシュ装置の複数の画像バッファ６１は、印刷対象の画像データを所定のサイズ単位で区切った複数の部分画像データを記憶する。有無情報記憶手段４５は、各部分画像データについて、部分画像データが画像バッファ６１のいずれかに記憶されているか否かを示す有無情報を記憶する。判断手段４４は、印刷対象の画像データの要求があった場合に、要求に係る画像データを含む部分画像データに対応する有無情報を参照し、その部分画像データが画像バッファ６１に記憶されているか否かを判断する。要求に係る画像データを含む部分画像データがいずれの画像バッファ６１にも記憶されていない場合、取得手段４４は、その部分画像データを所定の取得先から取得し、画像バッファ６１に記憶させるとともにそれに対応する有無情報を更新する。【選択図】  図１
2006277267.tif 000002
【特許請求の範囲】
【請求項１】
印刷対象の画像データを所定のサイズ単位で区切った複数の部分画像データのいずれかをそれぞれ記憶する複数の画像バッファと、
各部分画像データについて、上記部分画像データが上記画像バッファのいずれかに記憶されているか否かを示す有無情報を記憶する有無情報記憶手段と、
印刷対象の画像データにおけるいずれかの画像データの要求があった場合に、要求に係る画像データを含む上記部分画像データに対応する有無情報を参照して、要求に係る画像データを含む上記部分画像データが上記画像バッファに記憶されているか否かを判断する判断手段と、
要求に係る画像データを含む上記部分画像データがいずれの上記画像バッファにも記憶されていないと上記判断手段により判断された場合、要求に係る画像データを含む上記部分画像データを所定の取得先から取得して上記画像バッファに記憶させるとともにその部分画像データに対応する上記有無情報を更新する取得手段と、
を有することを特徴とする画像データキャッシュ装置。
【請求項２】
前記有無情報記憶手段は、前記有無情報として、前記部分画像データの数と同数の１ビットデータを有し各部分画像データと各１ビットデータとが対応付けられたビット配列を記憶することを特徴とする請求項１記載の画像データキャッシュ装置。
【請求項３】
前記ビット配列は、印刷対象の画像データにおける前記部分画像データの順番と同一の順番で、各部分画像データに対応付けられた前記有無情報としての１ビットデータを有することを特徴とする請求項２記載の画像データキャッシュ装置。
【請求項４】
前記取得手段は、要求に係る画像データを含む前記部分画像データを所定の取得先から取得して前記画像バッファに上書きして記憶させた場合、その画像バッファへの上書きによって消去された前記部分画像データに対応する前記有無情報を更新することを特徴とする請求項１記載の画像データキャッシュ装置。
【請求項５】
要求に係る画像データを含む部分画像データが前記画像バッファに記憶されていると前記判断手段により判断された場合のみ、要求に係る画像データを前記画像バッファで検索し、要求に係る画像データを前記画像バッファから読み出して要求元へ供給する供給手段を有することを特徴とする請求項１記載の画像データキャッシュ装置。
【請求項６】
前記取得手段は、要求に係る画像データを含む前記部分画像データを、デジタルカメラ、カードリーダ、半導体メモリ、携帯端末あるいはコンピュータから取得することを特徴とする請求項１記載の画像データキャッシュ装置。
【請求項７】
要求に係る画像データをその要求元へ供給する請求項１から６の中のいずれか１項記載の画像データキャッシュ装置と、
上記画像データキャッシュに対して印刷する画像における画像データを要求しそれに応じて供給された画像データ用いて印刷制御データを生成する画像処理手段と、
上記印刷制御データに基づく印刷を実行する印刷手段と、
を有することを特徴とする印刷装置。
【請求項８】
印刷対象の画像データにおけるいずれかの画像データの要求があった場合に、各部分画像データについて、上記部分画像データが上記画像バッファのいずれかに記憶されているか否かを示す有無情報を記憶する所定の有無情報記憶手段から、要求に係る画像データを含む上記部分画像データに対応する上記有無情報を読み込むステップと、
読み込んだ上記有無情報に基づいて、上記画像バッファに、要求に係る画像データを含む上記部分画像データが記憶されているか否かを判断するステップと、
要求に係る画像データを含む上記部分画像データがいずれの上記画像バッファにも記憶されていないと上記判断手段により判断された場合、要求に係る画像データを含む上記部分画像データを所定の取得先から取得して上記画像バッファに記憶させるとともにその部分画像データに対応する上記有無情報を更新するステップと、
を有することを特徴とする画像データキャッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データキャッシュ装置、印刷装置および画像データキャッシュ方法に関する。
【背景技術】
【０００２】
特許文献１および特許文献２には、印刷システムが開示されている。これらの従来の印刷システムでは、デジタルカメラとプリンタとが、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ケーブルで接続される。そして、この従来の印刷システムでは、カメラは、そのボタンへの操作に応じてプリンタに対する印刷要求を生成し、プリンタは、この要求に基づいて印刷処理に必要となる画像データをカメラから読み込み、その画像データに基づいて画像を印刷する。
【０００３】
【特許文献１】特開２００３−２５９２７４号公報（図面、発明の詳細な説明）
【特許文献２】特開２００２−５６６７６号公報（図面、発明の詳細な説明）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これらの従来の印刷システムにおいて、プリンタは、印刷対象の画像の画像データをカメラから読み込み、印刷をする。この画像データの読み込みには、ＵＳＢケーブルが使用される。このような機器間のデータ通信の速度は、一般的に、同一機器内でのデータ授受の速度より遅い。
【０００５】
そこで、たとえばプリンタに画像バッファの配列を設け、画像データをその画像バッファに適宜記憶し、その後には、この画像バッファから、印刷のために必要な画像のデータを供給することで、画像データが必要になってからその画像データを取得するまでの時間を短縮し、その結果として、印刷時間を短縮することが考えられる。
【０００６】
しかしながら、このような複数の画像バッファを設けたことによる印刷時間の短縮の効果を十分に得ることができない場合がある。たとえば、印刷のために画像データが必要となったとき、プリンタは、画像バッファの配列の先頭から順番にその画像データが記憶されているか否かを判断する。この場合において、その画像データが最後の画像バッファに記憶されているとき、プリンタは、複数の画像バッファを先頭から最後まで調べなければ、そのデータが画像バッファに記憶されていると判断することができない。その結果、画像バッファ内に画像データがあるにも拘らず、画像データが必要になってからその画像データを得るまでに時間がかかり、印刷時間が効果的に短縮されなくなってしまう。
【０００７】
本発明は、画像が画像バッファに記憶されていない場合に画像データを速やかに取得することができる画像データキャッシュ装置、印刷装置および画像データキャッシュ方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る画像データキャッシュ装置は、印刷対象の画像データを所定のサイズ単位で区切った複数の部分画像データのいずれかをそれぞれ記憶する複数の画像バッファと、各部分画像データについて、部分画像データが画像バッファのいずれかに記憶されているか否かを示す有無情報を記憶する有無情報記憶手段と、印刷対象の画像データにおけるいずれかの画像データの要求があった場合に、要求に係る画像データを含む部分画像データに対応する有無情報を参照して、要求に係る画像データを含む部分画像データが画像バッファに記憶されているか否かを判断する判断手段と、要求に係る画像データを含む部分画像データがいずれの画像バッファにも記憶されていないと判断手段により判断された場合、要求に係る画像データを含む部分画像データを所定の取得先から取得して画像バッファに記憶させるとともにその部分画像データに対応する有無情報を更新する取得手段と、を有するものである。
【０００９】
この構成を採用すれば、画像処理手段から要求された画像データが画像データキャッシュ装置の画像バッファに記憶されていない場合には、そのことを効率よく判断してその要求に係る画像データを取得することができる。
【００１０】
本発明に係る画像データキャッシュ装置は、上述した発明の各構成に加えて、有無情報記憶手段が、有無情報として、部分画像データの数と同数の１ビットデータを有し各部分画像データと各１ビットデータとが対応付けられたビット配列を記憶するものである。
【００１１】
この構成を採用すれば、判断手段は、要求に係る画像データに対応するビットを、その順番に基づいて容易に特定することができる。
【００１２】
本発明に係る画像データキャッシュ装置は、上述した発明の各構成に加えて、ビット配列が、印刷対象の画像データにおける部分画像データの順番と同一の順番で、各部分画像データに対応付けられた有無情報としての１ビットデータを有するものである。
【００１３】
この構成を採用すれば、判断手段は、要求に係る画像データに対応するビットを、その順番に基づいて容易に特定することができる。
【００１４】
本発明に係る画像データキャッシュ装置は、上述した発明の各構成に加えて、取得手段が、要求に係る画像データを含む部分画像データを所定の取得先から取得して画像バッファに上書きして記憶させた場合、その画像バッファへの上書きによって消去された部分画像データに対応する有無情報を更新するものである。
【００１５】
この構成を採用すれば、印刷対象の画像データより少ない総記憶容量の複数の画像バッファを使用することができる。
【００１６】
本発明に係る画像データキャッシュ装置は、上述した発明の各構成に加えて、要求に係る画像データを含む部分画像データが画像バッファに記憶されていると判断手段により判断された場合のみ、要求に係る画像データを画像バッファで検索し、要求に係る画像データを画像バッファから読み出して要求元へ供給する供給手段を有するものである。
【００１７】
この構成を採用すれば、要求に係る画像データを含む部分画像データが画像バッファに記憶されていない場合に、画像バッファを無駄に検索してしまうことを防止することができる。
【００１８】
本発明に係る画像データキャッシュ装置は、上述した発明の各構成に加えて、取得手段が、要求に係る画像データを含む部分画像データを、デジタルカメラ、カードリーダ、半導体メモリ、携帯端末あるいはコンピュータから取得するものである。
【００１９】
この構成を採用すれば、デジタルカメラ、カードリーダ、半導体メモリ、携帯端末あるいはコンピュータに保存されている画像データを効率よく印刷することができる。
【００２０】
本発明に係る印刷装置は、取得を要求された画像データをその要求元へ供給する上述した発明に係る各構成の画像データキャッシュ装置と、画像データキャッシュ装置に対して印刷する画像の画像データの取得を要求し、それに応じて供給された画像データを用いて印刷制御データを生成する画像処理手段と、印刷制御データに基づく印刷を実行する印刷手段と、を有するものである。
【００２１】
この構成を採用すれば、画像処理手段から要求された画像データが画像データキャッシュ装置の画像バッファに記憶されていない場合には、そのことを効率よく判断してその要求に係る画像データを取得し、印刷することができる。
【００２２】
本発明に係る画像データキャッシュ方法は、印刷対象の画像データにおけるいずれかの画像データの要求があった場合に、各部分画像データについて、部分画像データが画像バッファのいずれかに記憶されているか否かを示す有無情報を記憶する所定の有無情報記憶手段から、要求に係る画像データを含む部分画像データに対応する有無情報を読み込むステップと、読み込んだ有無情報に基づいて、画像バッファに、要求に係る画像データを含む部分画像データが記憶されているか否かを判断するステップと、要求に係る画像データを含む部分画像データがいずれの画像バッファにも記憶されていないと判断手段により判断された場合、要求に係る画像データを含む部分画像データを所定の取得先から取得して画像バッファに記憶させるとともにその部分画像データに対応する有無情報を更新するステップと、を有するものである。
【００２３】
この方法を採用すれば、複数の画像バッファのすべてについて１つずつ順番に、要求に係る画像データを格納しているか否かを検索することなく、要求に係る画像データが複数の画像バッファに記憶されていないことを判断し、要求に係る画像データを速やかに取得することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態に係る画像データキャッシュ装置、印刷装置および画像データキャッシュ方法を、図面に基づいて説明する。印刷装置は、デジタルスチルカメラ（ＤＳＣ：Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ）から、印刷に使用する画像データを取得するプリンタを例として説明する。画像データキャッシュ装置は、プリンタの一部として説明する。画像データキャッシュ方法は、プリンタの動作の一部として説明する。
【００２５】
図１は、本発明の実施の形態に係る印刷装置としてのプリンタ１と、プリンタ１に接続される画像データの取得先としてのＤＳＣ２を示す図である。ＤＳＣ２とプリンタ１とは、ＵＳＢケーブル３にて接続される。このようにＤＳＣ２とプリンタ１とを直接に接続するシステムは、ダイレクト印刷システムの一種である。なお、ＤＳＣ２とプリンタ１とは、ＵＳＢケーブル３以外のたとえばプリンタ専用ケーブルなどの他のケーブルや、無線通信回線などにより接続されてもよい。
【００２６】
図２は、ＤＳＣ２が撮像モードで動作している場合の構成を示すブロック図である。ＤＳＣ２は、撮像データを出力するＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）カメラ５１と、画像などを表示する液晶モニタ１１と、図示外の撮像ボタンや選択ボタンなどを有する入力デバイス１２と、画像データ生成部５２と、保存処理部５３と、半導体メモリ１３と、を有する。半導体メモリ１３は、たとえばフラッシュメモリなどのカード形状に形成されたものであり、ＤＳＣ２の図示外の筐体と着脱可能である。
【００２７】
画像データ生成部５２は、入力デバイス１２の撮像ボタンが操作されたときのＣＣＤカメラ５１から出力される撮像データを用いて、ＥＸＩＦ画像データを生成する。
【００２８】
図３は、画像データ生成部５２によるＥＸＩＦ画像データの生成処理を説明するための説明図である。図３（Ａ）は、ＣＣＤカメラ５１から出力される撮像データによる画像である。撮像データによる画像は、横長の画像であり、一軒の家が撮像されている。
【００２９】
画像データ生成部５２は、図３（Ａ）に示す画像の撮像データを、図中の点線で区切られたブロック単位で符号化し、図３（Ｂ）に示すように、その符号化したデータをエンコード順に並べた中間データを生成する。１つのブロックは、図３（Ａ）に示すように、８×８ピクセルである。図３の画像では、画像データ生成部５２は、撮像データによる画像を縦６行、横１０列の６０個のブロックに分けて、そのブロック毎に符号化している。
【００３０】
ブロック単位で符号化した後、画像データ生成部５２は、その符号化後の中間データを、所定の圧縮率で圧縮する。具体的には、画像データ生成部５２は、圧縮前の図３（Ｂ）の中間データにおけるデータ量を基準として、圧縮後の総データ量が所定の圧縮率のデータ量となるように、画質への影響が少ない成分のデータを間引いたりして、中間データを圧縮する。
【００３１】
中間データを圧縮した後、画像データ生成部５２は、図３（Ｃ）に示すように、その圧縮された画像データとして含むＥＸＩＦ画像データを生成する。ＥＸＩＦ画像データは、ヘッダデータと、圧縮された中間データによる画像データと、ＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ）データと、を有する。ヘッダデータには、たとえば、画像データのサイズ（図３（Ａ）の画像の縦方向のピクセル数および横方向のピクセル数）などの情報が必要に応じて情報化される。ＥＸＩＦ画像データは、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式で圧縮された画像データを有する。
【００３２】
なお、図３（Ｂ）の中間データおよび図３（Ｃ）のＥＸＩＦ画像データにおいて、各四角形のサイズは、それぞれのブロックのデータ量を示している。図３（Ｂ）において各ブロックの四角形のサイズが等しいように、中間データにおいては、各ブロックのデータ量は、等しい。これに対して、図３（Ｃ）においてブロック３の四角形のサイズとブロック４の四角形のサイズとが異なるように、ＪＰＥＧ方式で圧縮をすると、各ブロックのデータ量は、ブロック毎に異なる。
【００３３】
図２に戻り、画像データ生成部５２は、生成したＥＸＩＦ画像データを保存処理部５３に供給する。保存処理部５３は、供給されたＥＸＩＦ画像データをＥＸＩＦ画像ファイル２１として、半導体メモリ１３に保存する。
【００３４】
半導体メモリ１３は、ＥＸＩＦ画像ファイル２１などのデータを記憶するデータ記憶領域２２と、メモリ管理領域２３と、を有する。半導体メモリ１３は、たとえばＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）１６やＦＡＴ３２などのファイルシステムにより、記憶データを管理する。メモリ管理領域２３には、データ記憶領域２２に記憶されるファイルのファイル名、ファイルサイズ、データ記憶領域２２内の保存位置情報などが保存される。
【００３５】
画像データ生成部５２は、データ記憶領域２２に、ＥＸＩＦ画像ファイル２１を保存する。また、保存処理部５３は、メモリ管理領域２３に、保存したＥＸＩＦ画像ファイル２１のファイル名、ファイルサイズ、データ記憶領域２２内の保存位置情報を保存する。これにより、半導体メモリ１３には、ＤＳＣ２により撮像された画像の画像データを有するＥＸＩＦ画像ファイル２１が保存される。
【００３６】
図１に戻り、ダイレクト印刷時には、ＤＳＣ２は、液晶モニタ１１、入力デバイス１２および半導体メモリ１３の他に、ＵＳＢ通信Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）１４およびＵＳＢマスストレージクラス１５を有する通信Ｉ／Ｆ１６と、印刷指示部１７と、画像データ送信部１８と、を有する。半導体メモリ１３には、複数のＥＸＩＦ画像ファイル２１が記憶される。なお、ＵＳＢマスストレージクラス１５、印刷指示部１７および画像データ送信部１８は、ＤＳＣ２の図示外のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が、図示外のＤＳＣ２の記憶デバイスに記憶されたＵＳＢマスストレージクラスプログラム、印刷指示プログラムおよび画像データ送信プログラムを実行することで、実現される。
【００３７】
ＵＳＢ通信Ｉ／Ｆ１４は、図示外のＵＳＢコネクタを有する。ＵＳＢコネクタには、ＵＳＢケーブル３が接続される。ＵＳＢ通信Ｉ／Ｆ１４は、ＵＳＢコネクタから信号が入力されるとその信号からデータを抽出する。また、ＵＳＢ通信Ｉ／Ｆ１４は、送信するデータに基づいて信号を生成し、この信号をＵＳＢコネクタへ出力する。
【００３８】
ＵＳＢマスストレージクラス１５は、ＵＳＢ通信Ｉ／Ｆ１４を用いて、ホストとデバイスとの間でデータを送受する通信処理部である。ＵＳＢマスストレージクラス１５は、そのサブクラスとして、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）サブクラスを使用する。
【００３９】
ＵＳＢ通信Ｉ／Ｆ１４とＵＳＢマスストレージクラス１５とを有するＤＳＣ２の通信Ｉ／Ｆ１６は、印刷指示部１７や画像データ送信部１８から供給されたデータを、ＵＳＢケーブル３を介してプリンタ１へ送信する。ＤＳＣ２の通信Ｉ／Ｆ１６は、ＵＳＢケーブル３を介してプリンタ１から受信したデータを、印刷指示部１７や画像データ送信部１８へ供給する。
【００４０】
印刷指示部１７は、印刷する画像を選択し、その画像をプリンタ１に印刷させるための印刷指示を生成し、ＤＳＣ２の通信Ｉ／Ｆ１６へ供給する。
【００４１】
画像データ送信部１８は、半導体メモリ１３から、送信を要求された画像データを読み込み、ＤＳＣ２の通信Ｉ／Ｆ１６へ供給する。
【００４２】
プリンタ１は、紙媒体３０などに対して印刷するための印刷機構として、媒体３０を送る送りローラ３１と、送りローラ３１などを回転駆動する送りモータ３２と、キャリッジ３３と、キャリッジ３３を送りローラ３１の軸方向に沿って往復運動させるキャリッジモータ３４と、を有する。キャリッジ３３は、イエロー、マゼンタ、シアン、ブラックなどといった所定色数のカートリッジが脱着可能に取り付けられる。キャリッジ３３の図示せぬプラテン側の部位には、図示外のインク吐出用ヘッドが形成される。インク吐出用ヘッドには、図示外の多数のインクジェットノズルが開設される。各インクジェットノズルの内側には、図示外のピエゾ素子が配設される。ピエゾ素子は、それに印加される電圧に応じて変形する素子である。ピエゾ素子が電圧により変形することで、その変形量に応じた量のインクがインクジェットノズルから吐出される。
【００４３】
プリンタ１は、この他にも、ＵＳＢ通信Ｉ／Ｆ３６およびＵＳＢマスストレージクラス３７を有する通信Ｉ／Ｆ３８と、印刷指示解釈部３９と、画像処理手段としての画像処理部４０と、画像処理メモリ４１と、印刷手段としての制御部４２と、画像バッファメモリ４３と、判断手段、取得手段および供給手段としての画像バッファ管理部４４と、有無情報記憶手段としての画像バッファ管理メモリ４５と、を有する。
【００４４】
プリンタ１の通信Ｉ／Ｆ３８は、ＵＳＢケーブル３を介してＤＳＣ２の通信Ｉ／Ｆ１６から受信したデータを、印刷指示解釈部３９または画像バッファ管理部４４へ供給する。プリンタ１の通信Ｉ／Ｆ３８は、印刷指示解釈部３９または画像バッファ管理部４４から供給されたデータを、ＵＳＢケーブル３を介してＤＳＣ２の通信Ｉ／Ｆ１６へ送信する。
【００４５】
印刷指示解釈部３９は、印刷指示を解釈し、その解釈に基づいて内部指示を生成し、画像処理部４０へ供給する。印刷指示解釈部３９は、画像バッファ管理部４４に、印刷開始を指示する。
【００４６】
画像処理部４０は、内部指示に基づいて、印刷する画像の画像データを取得し、取得した画像データを用いて印刷制御データを生成する。画像処理部４０は、その処理中に発生するたとえば画像処理用のパラメータなどを画像処理メモリ４１に一時的に保存し、印刷制御データの生成の際に利用する。画像処理部４０は、生成した印刷制御データを制御部４２へ供給する。
【００４７】
制御部４２は、印刷制御データに基づいて、送りモータ３２およびキャリッジモータ３４へ制御信号を出力し、キャリッジ３３の複数のピエゾ素子に電圧を印加する。これにより、制御部４２は、印刷制御データに基づいて、印刷を実行する。
【００４８】
図４は、画像バッファメモリ４３および画像バッファ管理メモリ４５のメモリ構造を示す図である。
【００４９】
画像バッファメモリ４３は、たとえば数〜数十メガバイト程度の記憶容量を有するメモリであり、所定の記憶容量の画像バッファ６１をｎ本（ｎは、１以上の整数）有する。  以下、複数の画像バッファ６１を互いに区別する場合には、図４の一番上に図示する先頭の画像バッファメモリ４３から順番に、第一画像バッファ６１、第二画像バッファ６１、・・・、第ｎ画像バッファ６１と記載する。複数の画像バッファ６１には、図４の上から順番に、０番から（ｎ−１）番までのインデックス番号が対応付けられる。
【００５０】
各画像バッファ６１の記憶容量は、たとえば数〜数十キロバイト程度であり、ＤＳＣ２から取得された画像データが格納される。各画像バッファ６１には、画像データが、その先頭から画像バッファ６１の１本の記憶容量毎に区切った単位で記憶される。以下、この区切り単位での各画像データを、部分画像データと記載する。たとえば、画像バッファ６１の１本の記憶容量が２キロバイトである場合、第一の画像バッファ６１には、画像データの先頭から、２キロバイト目までの部分画像データが格納され、第二の画像バッファ６１には、画像データの２キロバイト目の次のデータから、４キロバイト目の１つ前までの部分画像データが格納される。なお、画像バッファ６１の記憶容量は、後述するように、画像処理部４０が画像バッファ管理部４４に要求する１回のデータ量より大きい。たとえば、５メガバイトの画像バッファメモリ４３に、３キロバイトの画像バッファ６１を設ける場合、画像バッファ６１の本数は、約１６６６（＝ｎ）本になる。
【００５１】
画像バッファ管理メモリ４５は、数メガバイトの記憶容量を有するメモリであり、画像バッファ６１の本数（ｎ本）と同数のオフセットデータ６２を有する。なお、画像バッファメモリ４３と画像バッファ管理メモリ４５とは、同一のメモリ素子に形成してもよい。以下、複数のオフセットデータ６２を互いに区別する場合には、図４の一番上に図示する先頭の画像バッファ管理メモリ４５から順番に、第一オフセットデータ６２、第二オフセットデータ６２、・・・、第ｎオフセットデータ６２と記載する。複数のオフセットデータ６２には、図４の上から順番に、０番から（ｎ−１）番までのインデックス番号が対応付けられる。
【００５２】
各オフセットデータ６２は、同じインデックス番号が対応付けらける各画像バッファ６１と対で利用される。各オフセットデータ６２には、同じインデックス番号が対応付けられる画像バッファ６１に格納されている部分画像データの、取得先（ここでは、半導体メモリ１３のデータ記憶領域２２）での保存位置情報が格納される。保存位置情報は、たとえば４バイトのデータサイズであり、画像バッファ６１に格納されている部分画像データの先頭データの、画像データの先頭からのデータ位置を示すオフセット値が格納される。
【００５３】
また、各オフセットデータ６２には、格納時刻データ６３が対応付けられて記憶される。格納時刻データ６３には、画像バッファ６１に部分画像データを格納した時刻や、その部分画像データを取得した時刻などの、画像バッファ６１に格納されている部分画像データに関する時刻情報が格納される。
【００５４】
また、画像バッファ管理メモリ４５は、有無情報としてのビットマップデータ６４を有する。ビットマップデータ６４は、プリンタ１が印刷可能な画像データの最大サイズに相当するデータ量を、画像バッファ６１の１本の記憶容量（つまり、部分画像データのサイズ）で割った数と同数のビット数を有するビット配列である。たとえば、３２の部分画像データがＥＸＩＦ画像ファイル２１の先頭から最後までで得られる場合、ビットマップデータ６４は、３２ビットあればよい。
【００５５】
複数の画像バッファ６１には、印刷する画像データが、その先頭から画像バッファ６１の１本の記憶容量毎に区切った単位で記憶される。ビットマップデータ６４の各ビットは、各部分画像データと１対１に、且つ、印刷対象の画像データにおける部分画像データの順番と同一の順番で対応する。ビットマップデータ６４の先頭のビットは、印刷する画像データ（ＥＸＩＦ画像ファイル２１内の画像データ）の最初の部分画像データに対応する。
【００５６】
各ビットの値は、そのビットが対応する部分画像データが複数の画像バッファ６１のいずれかに読み込まれている場合、有りを意味する「１」になり、複数の画像バッファ６１のいずれにも読み込まれていない場合、無しを意味する「０」になる。ビットマップデータ６４において、同時に「１」となるビットの個数は、最大で画像バッファ６１の本数である。
【００５７】
画像バッファ管理部４４は、複数の画像バッファ６１、複数のオフセットデータ６２などを管理し、要求された画像データを、画像バッファ６１から読み出して、画像データの要求元へ供給する。画像バッファ管理部４４は、また、複数の画像バッファ６１に格納されていない部分画像データを、ＤＳＣ２から取得し、画像バッファ６１に記憶させるとともに、要求元へ供給する。
【００５８】
次に、以上のような構成を有するダイレクト印刷システムの動作を説明する。
【００５９】
ＤＳＣ２とプリンタ１がＵＳＢケーブル３で接続されると、ＤＳＣ２のＵＳＢマスストレージクラス１５とプリンタ１のＵＳＢマスストレージクラス３７とが通信する。これにより、ＵＳＢマスストレージクラス１５，３７がデータをバルク転送するために使用するエンドポイントなどを生成し、ＤＳＣ２とプリンタ１とは互いにデータを送受可能になる。
【００６０】
ＤＳＣ２の印刷指示部１７は、半導体メモリ１３に記憶されているＥＸＩＦ画像ファイル２１の中から、印刷する画像のファイルを選択する。具体的には、印刷指示部１７は、半導体メモリ１３から、ＥＸＩＦ画像ファイル２１のファイル名などのデータを読み込み、そのファイル名などを液晶モニタ１１に表示させる。印刷指示部１７は、ユーザの操作に対応して入力デバイス１２が出力する入力データに基づいて、印刷対象のＥＸＩＦ画像ファイル２１を選択する。
【００６１】
印刷する画像のファイルを選択した後、印刷指示部１７は、印刷条件を選択する。具体的には、印刷指示部１７は、印刷条件の選択画面を液晶モニタ１１に表示させる。印刷条件には、たとえばＡ４、Ｌ版などの印刷をする媒体３０のサイズや、普通紙、光沢紙などの媒体３０の種類、１ｕｐ、２ｕｐなどの１枚の媒体３０に印刷する画像のレイアウトなどがある。印刷指示部１７は、ユーザの操作に対応して入力デバイス１２が出力する入力データに基づいて、印刷条件を選択する。
【００６２】
その後、印刷指示部１７は、その画像をその印刷条件で印刷するための印刷指示を生成し、ＤＳＣ２の通信Ｉ／Ｆ１６に供給する。たとえば、画像を１ｕｐにてＬ版の光沢紙に印刷する場合、この印刷指示には、その印刷する画像のファイル名、媒体３０としてＬ版の光沢紙を指定する印刷条件、その媒体３０の全面に１つの画像を印刷する印刷条件などか含まれる。なお、印刷指示において、ファイル名に替えて、半導体メモリ１３に記憶されるＥＸＩＦ画像ファイル２１毎に、１対１対応にて発行されるファイルＩＤ（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）などを使用してもよい。
【００６３】
ＤＳＣ２の通信Ｉ／Ｆ１６は、供給された印刷指示を、ＵＳＢケーブル３を介してプリンタ１の通信Ｉ／Ｆ３８へ送信する。通信Ｉ／Ｆ３８は、受信した印刷指示を印刷指示解釈部３９へ供給する。
【００６４】
ＵＳＢの仕様では、ＵＳＢケーブル３で接続される複数の機器の中の１つは、ＵＳＢのホストとして機能し、その他はＵＳＢデバイスとして機能する。ＤＳＣ２は、ＵＳＢケーブル３により、ＵＳＢホストして機能するコンピュータと接続することを前提として製造されているので、一般的にＵＳＢデバイスとして機能する。このようなＤＳＣ２と直接に接続されるプリンタ１は、ＵＳＢホストとして機能する。この場合、ＤＳＣ２の通信Ｉ／Ｆ１６は、たとえば、プリンタ１の通信Ｉ／Ｆ３８による周期的な印刷指示の取得処理に基づいて、供給された印刷指示を、プリンタ１の通信Ｉ／Ｆ３８へ送信するようにすればよい。
【００６５】
印刷指示解釈部３９は、供給された印刷指示を解釈し、その印刷指示にて指定された印刷を実行するための内部指示を生成し、画像処理部４０へ供給する。たとえば、印刷指示において、印刷する画像のファイル名と、Ｌ版の光沢紙を指定する印刷条件と、その媒体３０の全面に１つの画像を印刷する印刷条件とが含まれている場合、印刷指示解釈部３９は、そのファイル名の画像データに対して画像補正の一種であるＡＰＦ（Ａｕｔｏ  Ｐｈｏｔｏ  Ｆｉｎｅ）処理をした後、Ｌ版の光沢紙に高品質にて全面に印刷する内部指示を生成し、画像処理部４０へ供給する。
【００６６】
印刷の内部指示が供給されると、画像処理部４０は、その内部指示に従って印刷制御データの生成を開始する。画像処理部４０は、画像データを、画像バッファ管理部４４に要求する。この画像データの要求において、画像処理部４０は、たとえば、印刷する画像データのファイル名と、要求する画像データの範囲とを指定する。要求する画像データの範囲は、たとえば、その範囲の先頭データのオフセット値（たとえば先頭からのキロバイト数）と、要求するデータ量とで指定する。データ量は、たとえば５１２バイトである。
【００６７】
また、印刷指示解釈部３９は、画像処理部４０へ内部指示を供給するとともに、画像バッファ管理部４４へ印刷開始を指示する。
【００６８】
図５は、画像バッファ管理部４４の動作を示すフローチャートである。
【００６９】
画像バッファ管理部４４は、印刷開始が指示されると（ステップＳＴ１）、初期設定処理をする（ステップＳＴ２）。画像バッファ管理部４４は、複数の画像バッファ６１を初期化し、複数のオフセットデータ６２および格納時刻データ６３をクリアし、ビットマップデータ６４のすべてのビットの値を「０」にし、制御ポインタ変数に初期値「０」を代入する。その後、画像バッファ管理部４４は、画像データの要求待ち状態になる（ステップＳＴ３）。
【００７０】
上述したように画像処理部４０が、印刷する画像データのファイル名と、要求する画像データの範囲とを指定して画像データを要求すると、画像バッファ管理部４４は、まず、その要求された範囲の先頭データのオフセット値を、画像バッファ６１の１本の記憶容量で除算する。画像バッファ管理部４４は、ビットマップデータ６４の先頭から数えて、その商の値（ただし、その整数部）に相当する順番のビットを、要求された画像データに対応するビットとして特定する（ステップＳＴ４）。画像バッファ管理部４４は、ビットマップデータ６４から、特定したビットの値を読み込み、読み込んだビットの値が「１」であるか否かを判断する（ステップＳＴ５）。
【００７１】
特定したビットに対応する部分画像データが複数の画像バッファ６１に読み込まれていない場合、それに対応するビットの値は「０」である。画像バッファ管理部４４は、読み込んだビットの値が「１」でないと判断すると、ＤＳＣ２からそのビットに対応する部分画像データを取得する（ステップＳＴ６）。
【００７２】
具体的には、画像バッファ管理部４４は、ＤＳＣ２の半導体メモリ１３に記憶されている部分画像データを、ＤＳＣ２に送信させる送信指示を生成する。画像バッファ管理部４４は、画像処理部４０により要求された画像データを含む部分画像データの送信を指示する送信指示を生成する。
【００７３】
図６は、画像処理部４０が画像バッファ管理部４４に要求する画像データと、画像バッファ管理部４４がＤＳＣ２から取得する部分画像データとの関係を示す図である。図６に示すように、画像処理部４０が、画像データの３ブロック目の途中のデータを先頭データとするオフセット値を指定し、そこから４ブロック目の途中までの画像データを要求した場合、画像バッファ管理部４４は、その要求にかかる画像データを含み、印刷する画像データをその先頭データから画像バッファ６１の１本分の記憶容量に相当するデータ量毎にくぎった範囲（図８では画像データの先頭から２つ目の範囲）の部分画像データの送信を要求する。
【００７４】
この実施の形態では、ＵＳＢマスストレージクラス３７，１５を用いているため、ＤＳＣ２の半導体メモリ１３が、プリンタ１側から見て、１つのストレージとして認識される。そのため、プリンタ１の画像バッファ管理部４４は、まず、ＤＳＣ２の画像データ送信部１８から、ＤＳＣ２の半導体メモリ１３のメモリ管理領域２３の情報を取得し、送信を指示する画像データの、半導体メモリ１３のデータ記憶領域２２内の保存場所を特定する。次に、画像バッファ管理部４４は、特定した保存場所に保存されている画像データの送信指示を生成する。
【００７５】
画像バッファ管理部４４は、生成した部分画像データの送信指示を、プリンタ１の通信Ｉ／Ｆ３８へ供給する。プリンタ１の通信Ｉ／Ｆ３８は、供給された部分画像データの送信指示を、ＤＳＣ２の通信Ｉ／Ｆ１６へ送信する。ＤＳＣ２の通信Ｉ／Ｆ１６は、受信した部分画像データの送信指示を、画像データ送信部１８へ供給する。画像データ送信部１８は、半導体メモリ１３から、送信を指示された画像データを読み込み、ＤＳＣ２の通信Ｉ／Ｆ１６に供給する。ＤＳＣ２の通信Ｉ／Ｆ１６は、供給された画像データを、プリンタ１の通信Ｉ／Ｆ３８へ送信する。プリンタ１の通信Ｉ／Ｆ３８は、受信した画像データを、画像バッファ管理部４４へ供給する。これにより、画像バッファ管理部４４は、送信を指示した部分画像データを取得する。
【００７６】
画像バッファ管理部４４は、送信を指示した部分画像データを取得すると、そのＤＳＣ２から取得した部分画像データを、部分画像データを格納していない空き画像バッファ６１に保存する。空いている画像バッファ６１が無い場合には、画像バッファ管理部４４は、画像バッファ管理メモリ４５において格納時刻が最も古いオフセットデータ６２に対応する画像バッファ６１に、ＤＳＣ２から取得した部分画像データを上書きする（ステップＳＴ７）。
【００７７】
また、画像バッファ管理部４４は、ＤＳＣ２から取得した部分画像データを保存した画像バッファ６１に対応するオフセットデータ６２に、ＤＳＣ２から取得した部分画像データの先頭データのオフセット値を保存し、そのオフセットデータ６２に対応する格納時刻データ６３の時刻を、現時刻に更新する。
【００７８】
また、画像バッファ管理部４４は、ビットマップデータ６４の、先に特定したビットの値を、「あり（１）」に更新する。空いている画像バッファ６１が無く、画像バッファ６１を上書きした場合、画像バッファ管理部４４は、その上書きにより消去された部分画像データに対応するビットの値を「なし（０）」に更新する（ステップＳＴ８）。画像バッファ管理部４４は、制御ポインタ変数の値を、更新したオフセットデータ６２のインデックス番号に更新する（ステップＳＴ９）。
【００７９】
ＤＳＣ２から取得した部分画像データを、特定した画像バッファ６１に格納した後、画像バッファ管理部４４は、そのＤＳＣ２から取得した部分画像データから、画像処理部４０により要求された画像データを抽出し、画像処理部４０へ供給する（ステップＳＴ１０）。その後、画像バッファ管理部４４は、画像データの要求待ちの状態に戻る（ステップＳＴ３）。
【００８０】
一方、特定したビットに対応する部分画像データが複数の画像バッファ６１のいずれかに格納されている場合、画像バッファ管理部４４がビットマップデータ６４から読み込んだビットの値は「１」である。この場合、画像バッファ管理部４４は、ステップＳＴ５において、特定したビットの値が「１」であると判断し、画像バッファ管理メモリ４５の検索処理を開始する。
【００８１】
画像バッファ管理メモリ４５の検索処理において、画像バッファ管理部４４は、まず、そのときに保持している制御ポインタ変数の値に等しいインデックス番号のオフセットデータ６２から、オフセット値を読み込む（ステップＳＴ１１）。画像バッファ管理部４４は、読み込んだオフセット値と、画像処理部４０の要求に含まれる画像データの先頭データのオフセット値とを比較し、オフセット値を読み込んだオフセットデータ６２と同じインデックス番号の画像バッファ６１に、画像処理部４０により要求された画像データが格納されているか否かを判断する（ステップＳＴ１２）。
【００８２】
たとえば、オフセットデータ６２から読み込んだオフセット値が「０」であり、１本の画像バッファ６１の記憶容量が３キロバイトであり、且つ、画像処理部４０が１キロバイト目から２キロバイト目までのオフセットの画像データを要求した場合、画像バッファ管理部４４は、要求された画像データが画像バッファ６１に格納されていると判断する。同様の状況下で、画像処理部４０が４キロバイト目から５キロバイト目までのオフセットの画像データを要求した場合、画像バッファ管理部４４は、画像バッファ６１には、要求された画像データが格納されていないと判断する。
【００８３】
制御ポインタ変数の値に等しいインデックス番号の画像バッファ６１に、画像処理部４０により要求された画像データが格納されていない場合、画像バッファ管理部４４は、制御ポインタ変数の値を、画像データを格納する画像バッファ６１の中の、次のインデックス番号に更新する（ステップＳＴ１３）。
【００８４】
図４に示すようにｎ本の画像バッファ６１がある場合において、制御ポインタ変数の値が「ｎ−１」（最後のインデックス番号）であるときには、画像バッファ管理部４４は、制御ポインタ変数の値を「０」（最初のインデックス番号）に更新する。制御ポインタ変数の値が「ｎ−１」以外の値であるときには、画像バッファ管理部４４は、制御ポインタ変数の値を「１」増加する。
【００８５】
制御ポインタ変数の値を更新した後、画像バッファ管理部４４は、更新した制御ポインタ変数の値に等しいインデックス番号のオフセットデータ６２の読込処理（ステップＳＴ１１）と、その読み込んだオフセット値を用いた画像データの有無の判断処理（ステップＳＴ１２）とを実行する。
【００８６】
このステップＳＴ１１からＳＴ１３までの検索処理を繰り返すことで、画像バッファ管理部４４は、画像処理部４０により要求された画像データが複数の画像バッファ６１に格納されているか否かを、画像バッファ６１ごとに１つずつ順番に判断する。
【００８７】
この画像バッファ管理部４４による検索処理は、要求に係る画像データを格納する画像バッファ６１が発見されるまで繰り返される。なお、ビットマップデータ６４に基づいて、要求に係る画像データが複数の画像バッファ６１の中のいずれかに格納されていることを事前に判断しているので、すべての画像バッファ６１について、要求に係る画像データが格納されていないと判断することはない。
【００８８】
そして、画像バッファ管理部４４は、オフセットデータ６２を用いた比較処理により、ある制御ポインタ変数の値において、要求に係る画像データが画像バッファ６１に格納されていると判断すると、その特定した画像バッファ６１から画像データを読み込む（ステップＳＴ１４）。また、画像バッファ管理部４４は、画像データが格納されていると判断したときの制御ポインタ変数の値を保持する（ステップＳＴ１５）。
【００８９】
その後、画像バッファ管理部４４は、画像バッファ６１から読み込んだ画像データの中から、画像処理部４０により要求された範囲の画像データを抽出し、画像処理部４０へ供給する（ステップＳＴ１０）。その後、画像バッファ管理部４４は、画像データの要求待ちの状態に戻る（ステップＳＴ３）。
【００９０】
画像処理部４０は、以上のように動作する画像バッファ管理部４４に対して、画像データが必要になると、その必要な画像データを要求し、それに応じて画像バッファ管理部４４から取得した画像データを用いて印刷制御データの生成処理を実行する。
【００９１】
具体的には、画像を９０度回転して媒体３０に印刷する場合（たとえば、図３（Ａ）の画像の左端の列から順番に媒体３０に印刷する場合）、画像処理部４０は、印刷イメージを生成する前に、印刷が指定されたファイル名の画像データを、そのファイルの先頭の画像データから所定データ量ずつ順番に取得し、画像ファイルにおける各行の先頭データ（図３（Ａ）の画像の左端のブロックの先頭データ）のオフセット値を特定する。画像処理部４０は、特定した各行の先頭データのオフセット値を、画像処理メモリ４１に記憶させる。
【００９２】
特に、印刷する画像データがＪＰＥＧ形式の画像データである場合、その画像データにおいて、各ブロックのデータ量は一定しない。画像処理部４０は、印刷イメージを生成する前に、印刷が指定されたファイル名の画像データを、そのファイルの先頭の画像データから所定データ量ずつ順番に取得し、画像ファイルにおける各行の先頭データのオフセット値を特定する。画像処理部４０は、特定した各行の先頭データのオフセット値を、画像処理メモリ４１に記憶させる。
【００９３】
また、画像処理部４０は、印刷指示解釈部３９の内部指示によりＡＰＦ処理などの画像処理が指定されている場合、画像に対してその処理をする前に、印刷が指定されたファイル名の画像データを、そのファイルの先頭の画像データから所定データ量ずつ順番に取得し、その画像処理に使用するパラメータを生成する。画像処理部４０は、演算したパラメータを画像処理メモリ４１に記憶させる。
【００９４】
また、画像処理部４０は、印刷イメージを生成するために、印刷が指定されたファイル名の画像データを、たとえばキャリッジ３３の走査により媒体３０へ印刷する順番で所定データ量ずつ取得し、印刷イメージを生成する。画像処理部４０は、ＡＰＦ処理などの画像処理のためのパラメータを演算している場合、取得した画像データに対してそのパラメータを用いた画像補正処理を実行し、その補正後の画像データを使用して印刷イメージを生成する。画像処理部４０は、生成した印刷イメージを画像処理メモリ４１に記憶させる。
【００９５】
このように、画像処理部４０は、印刷の内部指示に応じた回数にわたって、印刷する画像データを何度も利用する。そのとき、画像処理部４０は、個々の処理に応じて、画像データを、画像ファイルにおける画像データの格納順にて要求したり、その格納順とは異なる順番にて要求したりする。画像処理部４０は、印刷する画像データを、その全体からすれば任意の順番にて要求し、微視的には連続した順番にて要求する。
【００９６】
印刷イメージを生成すると、画像処理部４０は、生成した印刷イメージの色成分を、プリンタ１のインク色成分へ変換する色変換処理と、各インク色のイメージを、印刷するドット単位の印刷有無データへ変換するハーフトーン処理と、ドット単位の印刷有無データを、キャリッジ３３からのインク吐出順に並べ替えるなどのインターレース処理とを実行し、印刷制御データを生成する。画像処理部４０は、生成した印刷制御データを、制御部４２へ供給する。
【００９７】
印刷制御データが供給されると、制御部４２は、その印刷制御データに基づく印刷を開始する。制御部４２は、まず、供給された印刷制御データに基づいて、送りモータ３２を駆動し、プリンタ１にセットされている媒体３０を、所定の方向からキャリッジ３３に対向する位置へ供給する。制御部４２は、キャリッジモータ３４を駆動しながら、印刷制御データに基づいて、キャリッジ３３の複数のピエゾ素子に電圧を印加する。これにより、媒体３０のキャリッジ３３で走査された部位には、画像の一部が印刷される。また、制御部４２は、送りモータ３２を駆動して媒体３０を所定量ずつ送る制御と、印刷制御データに従って媒体３０のキャリッジ３３で走査する部位に画像を印刷する制御とを、繰り返し実行する。これにより、媒体３０には、ＤＳＣ２において指定された画像が、ＤＳＣ２において指定された印刷条件にて印刷される。
【００９８】
図７は、画像バッファ管理部４４がＤＳＣ２から順番に取得する部分画像データを示すリストである。画像バッファ管理部４４は、最初に、印刷する画像データの０キロバイト目から２キロバイト目までの部分画像データを取得し、次に、印刷する画像データの１５キロバイト目から１７キロバイト目までの部分画像データを取得する。以下、同様に図７に示す順番で、部分画像データを取得する。
【００９９】
図８は、図７の８番目までの部分画像データを取得した場合の、画像バッファメモリ４３の記憶状態および画像バッファ管理メモリ４５の記憶状態を示す図である。画像バッファメモリ４３は、８本の画像バッファ６１を有する。各画像バッファ６１の記憶容量は、３キロバイトである。
【０１００】
このタイミングでは、インデックス番号「０」の画像バッファ６１にはオフセット値「０〜２」の３キロバイトの部分画像データが格納され、インデックス番号「０」のオフセットデータ６２には、オフセット値「０」が記憶される。インデックス番号「１」の画像バッファ６１にはオフセット値「１５〜１７」の３キロバイトの部分画像データが格納され、インデックス番号「１」のオフセットデータ６２には、オフセット値「１５」が記憶される。インデックス番号「２」から「７」までの画像バッファ６１およびオフセットデータ６２についても、図９に示すように、同様の対応関係でデータが格納される。また、ビットマップデータ６４は、上記部分画像データに対応する先頭のビットから８ビット目までのビットの値が「あり（１）」になる。画像バッファ６１の本数と同数のビットの値が「あり（１）」になる。
【０１０１】
図９は、図７の９番目までの部分画像データを取得した場合の、画像バッファメモリ４３の記憶状態および画像バッファ管理メモリ４５の記憶状態を示す図である。このタイミングでは、図８において格納時刻データの値が最も古い、インデックス番号「０」の画像バッファ６１にオフセット値「３０〜３２」の３キロバイトの部分画像データが格納され、インデックス番号「０」のオフセットデータ６２に、オフセット値「３０」が記憶される。その他の画像バッファ６１およびオフセットデータ６２は、図８の場合と同様である。また、ビットマップデータ６４は、その先頭から２ビット目から８ビット目までのビットと、先頭から１１番目のビットとが、「あり（１）」になる。
【０１０２】
以上のように、この実施の形態では、画像処理部４０から画像データが要求された場合、画像バッファ管理部４４は、まず、画像バッファ管理メモリ４５に記憶されているビットマップデータ６４を参照して、その要求に係る画像データが、複数の画像バッファ６１に記憶されているか否かを判断する。そして、画像バッファ管理部４４は、その要求に係る画像データが、複数の画像バッファ６１に記憶されていない場合、その画像データを、ＤＳＣ２から取得する。
【０１０３】
したがって、画像バッファ管理部４４は、要求に係る画像データが複数の画像バッファ６１に格納されていない場合において、その複数の画像バッファ６１のすべてについて１つずつ順番に、要求に係る画像データを格納しているか否かを無駄に検索することなく、要求に係る画像データが複数の画像バッファ６１に記憶されていないと判断し、要求に係る画像データを速やかに取得することができる。画像バッファ管理部４４は、複数の画像バッファ６１についてのその１回り分の無駄な判断を実行することなく、複数の画像バッファ６１に記憶されていない部分画像データを速やかに取得することがきる。
【０１０４】
また、この実施の形態では、ビットマップデータ６４は、画像バッファ６１の本数より多いビット数のビット配列である。このビット配列の各ビットには、印刷対象の画像データにおける部分画像データの順番と同一の順番で、各部分画像データに対応付けられる。したがって、画像バッファ管理部４４は、印刷する画像データのデータ量が複数の画像バッファ６１の記憶容量より多い場合でも、ビットマップデータ６４に基づいて部分画像データの取得状況を把握し、必要な部分画像データを取得し、提供することができる。しかも、印刷対象の画像データより少ない総記憶容量の複数の画像バッファ６１を使用して、要求された画像データを提供することができる。
【０１０５】
また、この実施の形態では、図５のステップＳＴ９にあるように、制御ポインタ変数の値を、部分画像データを格納した画像バッファ６１のインデックス番号に更新している。そのため、画像バッファ管理部４４は、新たな部分画像データをＤＳＣ２から取得した後、その次の画像データの要求の際には、ステップＳＴ１１において、そのＤＳＣ２から取得した部分画像データを格納した画像バッファ６１に対応するオフセットデータ６２から順番に読み込む。また、画像バッファ管理部４４は、要求された画像データより多いデータ量の部分画像データを取得する。その一方で、画像処理部４０は、上述したように、画像データを、その全体からすれば任意の順番にて要求し、微視的には連続した順番にて要求する。
【０１０６】
したがって、画像バッファ管理部４４は、新たな部分画像データをＤＳＣ２から取得した後に次の画像データの要求があった場合であって、その要求に係る画像データが画像バッファ６１に格納されているときには、多くの場合において１つのオフセットデータ６２を検索するだけで、画像処理部４０により要求された画像データが画像バッファ６１に格納されていると判断する。
【０１０７】
また、この実施の形態では、図５のステップＳＴ１５において、制御ポインタ変数の値を、部分画像データを読み込んだ画像バッファ６１のインデックス番号に保持する。そのため、画像バッファ管理部４４は、画像バッファメモリ４３に、要求された画像データが格納されていた場合には、その次の画像データの要求の際には、その前回の画像データが格納されている画像バッファ６１から順番に検索する。画像バッファ管理部４４は、要求された画像データより多いデータ量の部分画像データを取得する。
【０１０８】
したがって、画像バッファ６１から画像データを読み込んで要求元へ供給した後に次の画像データの要求があった場合であって、その要求に係る画像データが画像バッファ６１に格納されているときには、画像バッファ管理部４４は、多くの場合において１つのオフセットデータ６２を検索するだけで、画像処理部４０により要求された画像データが画像バッファ６１に格納されていると判断する。
【０１０９】
以上の実施の形態は、本発明の好適な実施の形態の例であるが、本発明は、これに限定されるものではなく、発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【０１１０】
たとえば、上記実施の形態では、画総バッファ管理メモリ４５と画像バッファメモリ４３とが別々に設けられている。この他にもたとえば、複数のオフセットデータ６２などを、画像バッファメモリ４３内に設けるなどして、これらを１つのメモリとしてもよい。
【０１１１】
上記実施の形態では、ＤＳＣ２の印刷指示部１７は、印刷する画像の画像データを有するＥＸＩＦ画像ファイル２１のファイル名を指定した印刷指示を、プリンタ１の印刷指示解釈部３９へ送信している。この他にもたとえば、印刷指示部１７は、ファイル名と１対１に対応して発行される、ピクトブリッジ（ＰｉｃｔＢｒｉｄｇｅ）などで使用されるファィルＩＤを指定した印刷指示を、プリンタ１の印刷指示解釈部３９へ送信するようにしてもよい。なお、ピクトブリッジでは、画像データをＤＳＣ２からプリンタ１へ送信するために、ＰＴＰ（Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を使用する。
【０１１２】
上記実施の形態では、画像バッファ管理部４４は、ＤＳＣ２に接続されるプリンタ１に設けられ、このＤＳＣ２の半導体メモリ１３に保存されているＥＸＩＦ画像ファイル２１のデータを読み込んでいる。この他にもたとえば、画像バッファ管理部４４は、デジタルムービーカメラ、カードリーダ、半導体メモリ、携帯端末、コンピュータなどに接続されるプリンタ１に設けられ、これらに保存されている画像データを読み込ものであってもよい。
【産業上の利用可能性】
【０１１３】
本発明は、たとえばデジタルカメラが接続され、そのデジタルカメラに記憶されている画像ファイルに基づく画像を印刷するプリンタなどに利用することができる。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施の形態に係るプリンタおよびＤＳＣを示す図である。
【図２】ＤＳＣが撮像モードで動作している場合の構成を示すブロック図である。
【図３】画像データ生成部によるＥＸＩＦ画像データの生成処理の説明図である。
【図４】画像バッファメモリおよびオフセットデータメモリの説明図である。
【図５】画像バッファ管理部の動作を示すフローチャートである。
【図６】画像処理部および画像バッファ管理部のデータ取得の説明図である。
【図７】画像バッファ管理部の送信要求リストの一例である。
【図８】図７の８番目までの要求をしたときの記憶状態を示す図である。
【図９】図７の９番目までの要求をしたときの記憶状態を示す図である。
【符号の説明】
【０１１５】
１  プリンタ（印刷装置）、４０  画像処理部（画像処理手段）、４２  制御部（印刷手段）、４３  画像バッファメモリ、４４  画像バッファ管理部（判断手段、取得手段、供給手段）、４５  画像バッファ管理メモリ（有無情報記憶手段）、６１  画像バッファ、６４  ビットマップデータ（有無情報）
【図１】
2006277267.tif 000003
【図２】
2006277267.tif 000004
【図３】
2006277267.tif 000005
【図４】
2006277267.tif 000006
【図５】
2006277267.tif 000007
【図６】
2006277267.tif 000008
【図７】
2006277267.tif 000009
【図８】
2006277267.tif 000010
【図９】
2006277267.tif 000011