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