(57)【要約】【課題】  バッファメモリのサイズより大きなデータ量を有する画像データを回転して印刷する場合であっても、印刷時間を効果的に短縮すること。【解決手段】  所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷するプリンタ２は、画像データにおける画像の行数と少なくとも同数の画像データバッファ７２を有する。要求手段９３は、画像の印刷順にしたがって、印刷領域に対応するデータを要求する。読込手段９２は、要求に係るデータが複数の画像データバッファ７２にない場合には、その要求に係るデータを含む画像データバッファ７２のサイズ分のデータを読み込んで、複数の画像データバッファ７２に先読先出ルールにしたがって格納する。出力手段９２は、要求に係るデータを要求手段９３へ出力する。【選択図】  図９
2005262651.tif 000002
【特許請求の範囲】
【請求項１】
所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷するプリンタにおいて、
上記画像データにおける画像の行数と少なくとも同数の画像データバッファと、
画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータを含む上記画像データバッファのサイズ分のデータを読み込んで、上記複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、
上記要求に係るデータを上記要求手段へ出力する出力手段と、
を有することを特徴とするプリンタ。
【請求項２】
所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷するプリンタにおいて、
所定のサイズを有するバッファメモリと、
上記画像データのデータ量が上記バッファメモリのサイズより大きい場合には、上記バッファメモリに、上記画像データにおける画像の行数と少なくとも同数である第一の数の画像データバッファを形成し、上記画像データのデータ量が上記バッファメモリのサイズ以下の場合には、上記バッファメモリに、上記第一の数より少ない第二の数の画像データバッファを形成する形成手段と、
画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータを含む上記画像データバッファのサイズ分のデータを読み込んで、上記複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、
上記要求に係るデータを上記要求手段へ出力する出力手段と、
を有することを特徴とするプリンタ。
【請求項３】
所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷するプリンタにおいて、
所定のサイズを有するバッファメモリと、
上記画像データの行数を取得する取得手段と、
上記バッファメモリに、上記取得手段により取得された上記通信データの行数に基づき、その行数と少なくとも同数の複数の画像データバッファを形成する形成手段と、
画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータを含む上記画像データバッファのサイズ分のデータを読み込んで、上記複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、
上記要求に係るデータを上記要求手段へ出力する出力手段と、
を有することを特徴とするプリンタ。
【請求項４】
所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷するプリンタにおいて、
上記複数の画像データにおける画像の行数の総数と少なくとも同数の画像データバッファと、
画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータむ上記画像データバッファのサイズ分のデータを読み込んで、上記複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、
上記要求に係るデータを上記要求手段へ出力する出力手段と、
を有することを特徴とするプリンタ。
【請求項５】
所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷するプリンタにおいて、
所定のサイズを有するバッファメモリと、
上記複数の画像データの総データ量が上記バッファメモリのサイズより大きい場合には、上記バッファメモリに、上記複数の画像データにおける画像の行数の総数と少なくとも同数である第一の数の画像データバッファを形成し、上記複数の画像データのデータ量が上記バッファメモリのサイズ以下の場合には、上記バッファメモリに、上記第一の数より少ない第二の数の画像データバッファを形成する形成手段と、
画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータを含む上記画像データバッファのサイズ分のデータを読み込んで、上記複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、
上記要求に係るデータを上記要求手段へ出力する出力手段と、
を有することを特徴とするプリンタ。
【請求項６】
所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷するプリンタにおいて、
所定のサイズを有するバッファメモリと、
上記画像データの行数を取得する取得手段と、
上記バッファメモリに、上記取得手段により取得された上記画像データの行数に基づき、その行数の総数と少なくとも同数の画像データバッファを形成する形成手段と、
画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータを含む上記画像データバッファのサイズ分のデータを読み込んで、上記複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、
上記要求に係るデータを上記要求手段へ出力する出力手段と、
を有することを特徴とするプリンタ。
【請求項７】
前記読込手段は、前記要求に係るデータが先頭となるように、前記画像データバッファのサイズ分のデータを読み込むことを特徴とする請求項１から請求項６の中のいずれか１項記載のプリンタ。
【請求項８】
前記画像データは、符号化された画像データであり、
前記要求手段は、符号化された前記画像データを復号化するデコーダであり、
前記画像データバッファの数またはその上限値は、上記デコーダにより復号可能な一辺の画素数に基づいて決定されること、
を特徴とする請求項１から請求項６の中のいずれか１項記載のプリンタ。
【請求項９】
前記画像データは、符号化された画像データであり、
前記要求手段は、符号化された前記画像データを復号化するデコーダであり、
前記画像データバッファの数またはその上限値は、上記デコーダにより復号可能な一辺の画素数および前記画像データの画像の縦横比に基づいて決定されること、
を特徴とする請求項１から請求項６の中のいずれか１項記載のプリンタ。
【請求項１０】
前記形成手段は、印刷時のキャリッジ駆動方向に対応する画像方向と画像データにおいて連続的に配置される画像の行の方向が９０度または２７０度ずれている場合にのみ動作することを特徴とする請求項２、請求項３、請求項５および請求項６の中のいずれか１項記載のプリンタ。
【請求項１１】
半導体メモリと第一の通信手段とを有する画像供給装置と、
上記第一の通信手段と通信する第二の通信手段を有する請求項１から１０の中のいずれか１項記載のプリンタとを備え、
上記半導体メモリは、画像データを格納し、
前記プリンタの前記読込手段は、上記第一および第二の通信手段を介して上記半導体メモリから画像データを読み込むことを特徴とする画像印刷システム。
【請求項１２】
所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷する印刷方法であって、
画像の印刷順にしたがって、印刷領域に対応するデータを要求するステップと、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータを含む上記画像データバッファのサイズ分のデータを読み込んで、上記画像データにおける画像の行数と少なくとも同数の画像データバッファに先読先出ルールにしたがって格納するステップと、
上記要求に係るデータをその要求元へ出力するステップと、
を有することを特徴とする印刷方法。
【請求項１３】
所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷する印刷方法であって、
画像の印刷順にしたがって、印刷領域に対応するデータを要求するステップと、
上記要求に係るデータが上記複数の画像データバッファにない場合には、その要求に係るデータを含む上記画像データバッファのサイズ分のデータを読み込んで、上記複数の画像データにおける画像の行数の総数と少なくとも同数の画像データバッファに先読先出ルールにしたがって格納するステップと、
上記要求に係るデータをその要求元へ出力するステップと、
を有することを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、画像印刷システムおよび印刷方法に関する。
【背景技術】
【０００２】
特許文献１および特許文献２には、印刷システムが開示されている。これらの従来の印刷システムは、ＵＳＢストレージクラスデバイスのデジタルカメラと、ＵＳＢホストのプリンタとを、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）で直接に接続する。そして、この従来の印刷システムでは、カメラは、そのボタンへの操作に応じてプリンタに対する印刷要求を生成し、プリンタは、この要求に基づいて印刷処理に必要となる画像データのファイルをカメラから読み込み、その画像データに基づいて画像を印刷する。
【０００３】
【特許文献１】特開２００３−２５９２７４号公報（図面、発明の詳細な説明）
【特許文献２】特開２００２−５６６７６号公報（図面、発明の詳細な説明）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、従来の印刷システムにおいて、プリンタは、カメラに保存されている画像データのファイルを読み込んで、この画像データに基づく画像を印刷する。
【０００５】
そのため、このプリンタにバッファメモリを設け、そのバッファメモリに画像データのファイルをまとめて読み込み、そのバッファメモリから印刷に必要となるデータを読み出すようにすれば、画像の印刷に必要となるデータが発生するたびにカメラから画像データを読み込む必要がなくなるので、印刷時間が短縮される。
【０００６】
また、このようなバッファメモリをプリンタに設けたとしても、バッファメモリのサイズより大きなデータ量を有する画像データは、このバッファメモリに複数回にわけて読み込むことで、その画像データを印刷することができる。
【０００７】
しかしながら、このようなバッファメモリをプリンタに設けたとしても、そのバッファメモリのサイズより大きなデータ量を有する画像データの画像を９０度回転して印刷する場合にあっては、一定以上の印刷時間の短縮効果を期待することはできない。これは、以下の理由による。
【０００８】
半導体メモリに記憶されている画像データは、１ピクセル単位でのデータが集められたデータ、あるいは、数ピクセル毎のブロック単位でのデータが集められたデータになっている。また、その複数のピクセル単位のデータあるいは複数のブロック単位のデータは、画像データファイルでは、画像の行ごとに整列して格納されている。
【０００９】
プリンタでは、キャリッジの走査に基づいて、画像の印刷に必要となるデータが発生する。そのため、画像データファィルの画像を９０度回転して印刷する場合、プリンタは、キャリッジの１走査分の印刷制御データを生成するために、画像データ内で別々の行に離散的に格納されているデータを順次利用する必要がある。
【００１０】
そして、印刷に使用する画像データを複数回にわけてバッファメモリに読み込んでいる場合において、キャリッジのある１走査分の印刷制御データの生成が完了した後に、その次のキャリッジのある１走査分の印刷制御データの生成を開始するとき、そのときに必要となる画像データがバッファメモリに残っていないことがある。その場合には、再度、カメラから画像データを読み込む必要が生じる。
【００１１】
したがって、プリンタは、画像データファイルによる画像を９０度回転して印刷する場合には、キャリッジの１走査分の印刷制御データを生成するたびにカメラからバッファメモリへの画像データの読み込みが頻繁に発生する。このため、一定以上の印刷時間の短縮効果を期待することはできない。
【００１２】
本発明は、以上の問題に鑑みなされたものであり、バッファメモリのサイズより大きなデータ量を有する画像データに基づく画像を回転して印刷する場合であっても、印刷時間の効果的に短縮することができるプリンタ、画像印刷システムおよび印刷方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係るプリンタは、所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷するプリンタにおいて、画像データにおける画像の行数と少なくとも同数の画像データバッファと、画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータを含む画像データバッファのサイズ分のデータを読み込んで、複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、要求に係るデータを要求手段へ出力する出力手段と、を有するものである。
【００１４】
本発明の構成では、複数の画像データバッファは、画像データにおける画像の行数と同数あるいはその行数より多い数になっている。したがって、画像を回転して印刷する場合において、たとえば読込手段が画像の一列目のデータを画像データバッファへ読み込む際に二列目のデータをいっしょに読み込み、要求手段のデータ要求に応じて二列目を印刷する際には、読込手段による画像データバッファへの読込処理をすることなく、出力手段がその一列目のデータとともに読み込んだ二列目のデータを画像データバッファから読み出して出力することができる。
【００１５】
その結果、この構成を採用すれば、複数の画像データバッファのサイズより大きなデータ量を有する画像データに基づく画像を回転して印刷する場合であっても、印刷時間を効果的に短縮することができる。
【００１６】
本発明に係る他のプリンタは、所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷するプリンタにおいて、所定のサイズを有するバッファメモリと、画像データのデータ量がバッファメモリのサイズより大きい場合には、バッファメモリに、画像データにおける画像の行数と少なくとも同数である第一の数の画像データバッファを形成し、画像データのデータ量がバッファメモリのサイズ以下の場合には、バッファメモリに、第一の数より少ない第二の数の画像データバッファを形成する形成手段と、画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータを含む画像データバッファのサイズ分のデータを読み込んで、複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、要求に係るデータを要求手段へ出力する出力手段と、を有するものである。
【００１７】
この構成を採用すれば、画像データのデータ量がバッファメモリのサイズより大きい場合には、画像データにおける画像の行数と同数あるいはその行数より多い第一の数の画像データバッファを用いることで、印刷時間を効果的に短縮することができる。
【００１８】
また、この構成では、画像データのデータ量がバッファメモリのサイズ以下の場合には、その第一の数より少ない第二の数より少ない数の複数の画像データバッファを用いる。そのため、この構成を採用すれば、画像データのデータ量がバッファメモリのサイズ以下の場合には、その画像データにおける画像の行数と同数あるいはその行数より多い数の複数の画像データバッファを用いる場合にくらべて、画像供給装置からの画像データの読み込み回数を減らし、印刷時間をさらに効果的に短縮することができる。
【００１９】
本発明に係る第三のプリンタは、所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷するプリンタにおいて、所定のサイズを有するバッファメモリと、画像データの行数を取得する取得手段と、バッファメモリに、取得手段により取得された通信データの行数に基づき、その行数と少なくとも同数の複数の画像データバッファを形成する形成手段と、画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータを含む画像データバッファのサイズ分のデータを読み込んで、複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、要求に係るデータを要求手段へ出力する出力手段と、を有するものである。
【００２０】
この構成を採用すれば、印刷に係る画像データにおける画像の行数と同数あるいはその行数より多い数の画像データバッファを用いるので、使用する画像データに応じた最適な印刷時間の短縮効果を期待することができる。
【００２１】
本発明に係る第四のプリンタは、所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷するプリンタにおいて、複数の画像データにおける画像の行数の総数と少なくとも同数の画像データバッファと、画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータむ画像データバッファのサイズ分のデータを読み込んで、複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、要求に係るデータを要求手段へ出力する出力手段と、を有するものである。
【００２２】
この構成では、複数の画像データバッファは、キャリッジの駆動方向に並べて印刷する画像データにおける画像の行数の総数と同数あるいはその行数の総数より多い数になっている。したがって、この構成を採用すれば、複数の画像データバッファのサイズより大きなデータ量となる複数の画像データに基づく複数の画像を回転して印刷する場合（たとえば、４ｕｐレイアウトの場合）であっても、印刷時間を効果的に短縮することができる。
【００２３】
本発明に係る第五のプリンタは、所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷するプリンタにおいて、所定のサイズを有するバッファメモリと、複数の画像データの総データ量がバッファメモリのサイズより大きい場合には、バッファメモリに、複数の画像データにおける画像の行数の総数と少なくとも同数である第一の数の画像データバッファを形成し、複数の画像データのデータ量がバッファメモリのサイズ以下の場合には、バッファメモリに、第一の数より少ない第二の数の画像データバッファを形成する形成手段と、画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータを含む画像データバッファのサイズ分のデータを読み込んで、複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、要求に係るデータを要求手段へ出力する出力手段と、を有するものである。
【００２４】
この構成を採用すれば、キャリッジの駆動方向に並べて印刷する複数の画像データの総データ量がバッファメモリのサイズより大きい場合には、それら複数の画像データにおける画像の行数の総数と同数あるいはその行数の総数より多い数の画像データバッファを用いることで、印刷時間を効果的に短縮することができる。また、この構成を採用すれば、その複数の画像データの総データ量がバッファメモリのサイズ以下の場合には、画像供給装置からの画像データの読み込み回数を減らして、印刷時間をさらに効果的に短縮することができる。
【００２５】
本発明に係る第六のプリンタは、所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷するプリンタにおいて、所定のサイズを有するバッファメモリと、画像データの行数を取得する取得手段と、バッファメモリに、取得手段により取得された画像データの行数に基づき、その行数の総数と少なくとも同数の画像データバッファを形成する形成手段と、画像の印刷順にしたがって、印刷領域に対応するデータを要求する要求手段と、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータを含む画像データバッファのサイズ分のデータを読み込んで、複数の画像データバッファに先読先出ルールにしたがって格納する読込手段と、要求に係るデータを要求手段へ出力する出力手段と、を有するものである。
【００２６】
この構成を採用すれば、キャリッジの駆動方向に並べて印刷される複数の画像データにおける画像の行数の総数と同数あるいはその行数の総数より多い数の画像データバッファを用いるので、使用する複数の画像データに応じた最適な印刷時間の短縮効果を期待することができる。
【００２７】
本発明に係る上述したいずれか１つの発明に係るプリンタは、上述したそれぞれの発明の構成に加えて、読込手段が、要求に係るデータが先頭となるように、画像データバッファのサイズ分のデータを読み込むものである。
【００２８】
この構成を採用すれば、画像データバッファには、それ以降の印刷で使用するデータがより多く先読みされる。その結果、たとえば、画像データを画像データバッファのサイズごとに分割し、その分割した単位毎に画像データを読み込む場合に比べて、画像データの読み込み回数を減らし、印刷時間をさらに効果的に短縮することができる。
【００２９】
本発明に係る上述したいずれか１つの発明に係るプリンタは、上述したそれぞれの発明の構成に加えて、画像データが、符号化された画像データであり、要求手段が、符号化された画像データを復号化するデコーダであり、画像データバッファの数またはその上限値が、デコーダにより復号可能な一辺の画素数に基づいて決定されるものである。
【００３０】
この構成を採用すれば、符号化された画像データをデコードする場合に、デコードに対応する数の画像データバッファを確保できる。
【００３１】
本発明に係る上述したいずれか１つの発明に係るプリンタは、上述したそれぞれの発明の構成に加えて、画像データが、符号化された画像データであり、要求手段が、符号化された画像データを復号化するデコーダであり、画像データバッファの数またはその上限値が、デコーダにより復号可能な一辺の画素数および画像データの画像の縦横比に基づいて決定されるものである。
【００３２】
この構成を採用すれば、符号化された画像データをデコードする場合に、デコードに対応する数の画像データバッファを確保できる。
【００３３】
本発明に係る上述したいずれか１つの発明に係るプリンタは、上述したそれぞれの発明の構成に加えて、形成手段が、印刷時のキャリッジ駆動方向に対応する画像方向と画像データにおいて連続的に配置される画像の行の方向が９０度または２７０度ずれている場合にのみ動作するものである。
【００３４】
本発明に係る画像印刷システムは、半導体メモリと第一の通信手段とを有する画像供給装置と、第一の通信手段と通信する第二の通信手段を有する上述したいずれか１つの発明に係るプリンタとを備え、半導体メモリが、画像データを格納し、プリンタの読込手段が、第一および第二の通信手段を介して半導体メモリから画像データを読み込むものである。
【００３５】
この構成を採用すれば、画像供給装置の第一の通信手段からプリンタの第二の通信手段へ送信される印刷に係る画像データは、その印刷に係る画像データの行数あるいは複数の画像データの行数の総数に応じた複数の画像データバッファに記憶される。その結果、この構成を採用すれば、メモリのサイズより大きなデータ量を有する画像データや、総データ量がメモリのサイズより大きくなる複数の画像データに基づく画像を回転して印刷する場合であっても、印刷時間を効果的に短縮することができる。
【００３６】
本発明に係る印刷方法は、所定画素数分の高さを有する行ごとにデータが配列されている画像データを読み込んでその画像を印刷する印刷方法であって、画像の印刷順にしたがって、印刷領域に対応するデータを要求するステップと、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータを含む画像データバッファのサイズ分のデータを読み込んで、画像データにおける画像の行数と少なくとも同数の画像データバッファに先読先出ルールにしたがって格納するステップと、要求に係るデータをその要求元へ出力するステップと、を有するものである。
【００３７】
この方法では、印刷に係る画像データは、その画像の行数と同数あるいはその行数より多い数の複数の画像データバッファに格納され、データ要求に対してはその複数の画像データバッファからデータが出力される。したがって、この構成を採用すれば、複数の画像データバッファのサイズより大きなデータ量を有する画像データに基づく画像を回転して印刷する場合であっても、印刷時間を効果的に短縮することができる。
【００３８】
本発明に係る他の印刷方法は、所定画素数分の高さを有する行ごとにデータが配列されている複数の画像データを読み込んでそれらの画像をキャリッジの駆動方向に並べて印刷する印刷方法であって、画像の印刷順にしたがって、印刷領域に対応するデータを要求するステップと、要求に係るデータが複数の画像データバッファにない場合には、その要求に係るデータを含む画像データバッファのサイズ分のデータを読み込んで、複数の画像データにおける画像の行数の総数と少なくとも同数の画像データバッファに先読先出ルールにしたがって格納するステップと、要求に係るデータをその要求元へ出力するステップと、を有するものである。
【００３９】
この方法では、印刷に係る複数の画像データは、その複数の画像の行数の総数と同数あるいはその行数の総数より多い数の複数の画像データバッファに格納され、データ要求に対してはその複数の画像データバッファからデータが出力される。したがって、この構成を採用すれば、複数の画像データバッファのサイズより大きな総データ量となる複数の画像データに基づく画像を回転して印刷する場合であっても、印刷時間を効果的に短縮することができる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の実施の形態に係るプリンタ、画像印刷システムおよび印刷方法を、図面に基づいて説明する。画像印刷システムは、ダイレクト印刷システムを例として説明する。印刷方法は、プリンタの動作の一部として説明する。
【００４１】
実施の形態１．
図１は、本発明の実施の形態１に係るダイレクト印刷システムを示す図である。ダイレクト印刷システムは、画像供給装置としてのデジタルスチルカメラ（ＤＳＣ：Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ）１と、プリンタ２とを有する。また、ＤＳＣ１とプリンタ２とは、ＵＳＢケーブル３にて接続される。
【００４２】
図２は、図１中のＤＳＣ１のハードウェア構成を示すブロック図である。ＤＳＣ１は、プログラムを実行する中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、プログラムを記憶するフラッシュメモリ１２と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ポート１３と、これらを接続するシステムバス１４とを有する。
【００４３】
ＤＳＣ１のＩ／Ｏポート１３には、撮像装置としてのＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）１５と、外部メモリ接続装置としてのカードリーダ１６と、表示装置としての液晶モニタ１７と、入力装置としての入力デバイス１８と、第一の通信手段としてのＵＳＢ通信Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ：インターフェース）１９とが接続される。
【００４４】
ＣＣＤ１５は、受光部を有する。この受光部は、複数の受光素子を有する。この複数の受光素子は、受光部に、その全体が略長方形となるように縦方向および横方向に並べて配列されている。各受光素子は、受光光量に応じたレベル信号を出力する。ＣＣＤ１５は、複数の受光素子から出力されるレベル信号に基づいて、受光素子と同数のピクセルデータを生成する。また、ＣＣＤ１５は、この生成した複数のピクセルデータを１つの撮像データとして出力する。
【００４５】
カードリーダ１６は、挿入部を有する。この挿入部には、カード形状に形成された半導体メモリ２０を挿入することができる。カード形状に形成された半導体メモリ２０としては、たとえばフラッシュメモリなどがある。そして、カードリーダ１６は、挿入部に挿入されている半導体メモリ２０にデータを書き込んだり、挿入部に挿入されている半導体メモリ２０からデータを読み出したりする。
【００４６】
液晶モニタ１７は、表示部を有する。液晶モニタ１７は、表示データに基づいて、表示部に、その表示データに基づく画像を表示する。
【００４７】
入力デバイス１８は、複数の入力キーやタッチパネルを有する。入力デバイス１８は、ユーザがプッシュ操作した入力キーに応じた入力データを出力する。また、入力デバイス１８は、タッチパネルのユーザにより押圧された位置に応じた入力データを出力する。
【００４８】
ＵＳＢ通信Ｉ／Ｆ１９は、ＵＳＢコネクタを有する。ＵＳＢコネクタには、ＵＳＢケーブル３が接続される。ＵＳＢ通信Ｉ／Ｆ１９は、ＵＳＢコネクタから信号が入力されるとその信号からデータを抽出する。また、ＵＳＢ通信Ｉ／Ｆ１９は、送信するデータに基づいて信号を生成し、この信号をＵＳＢコネクタへ出力する。
【００４９】
図３は、図２中のフラッシュメモリ１２の記憶内容を示す図である。ＤＳＣ１のフラッシュメモリ１２には、ＥＸＩＦ（Ｅｘｃｈａｎｇｅａｂｌｅ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）画像データ生成プログラム２１と、印刷指示データ生成プログラム２２と、画像データ送信プログラム２３と、通信制御プログラム群とが記憶される。ＤＳＣ１の通信制御プログラム群は、ＵＳＢマスストレージクラスプログラム２４とを有する。
【００５０】
ＥＸＩＦ画像データ生成プログラム２１は、中央処理装置１１に実行されることでＥＸＩＦ画像データ生成部を実現する。ＥＸＩＦ画像データ生成部は、ＣＣＤ１５から出力された撮像データを圧縮してＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）形式の画像データを生成し、この画像データにＥＸＩＦヘッダやサムネイル画像データを付加したＥＸＩＦ画像データを生成し、このＥＸＩＦ画像データをカードリーダ１６へ出力する。ＥＸＩＦヘッダには、画像の縦方向のピクセル数および横方向のピクセル数、撮影条件などを含めることができる。
【００５１】
印刷指示データ生成プログラム２２は、中央処理装置１１に実行されることで印刷指示データ生成部を実現する。印刷指示データ生成部は、液晶モニタ１７に画像選択画面や印刷条件選択画面を表示する。また、印刷指示データ生成部は、印刷指示データを生成する。この印刷指示データには、画像選択画面に基づいて選択された画像を、印刷条件選択画面に基づいて選択された印刷条件で印刷するための印刷指示が含まれる。
【００５２】
画像データ送信プログラム２３は、中央処理装置１１に実行されることで、送信手段としての画像データ送信部を実現する。画像データ送信部は、送信する画像データのファイルとそのファイルから抽出するデータ位置とが指定されると、そのファイルのそのデータ位置のデータを抽出する。また、画像データ送信部は、抽出したデータを出力する。
【００５３】
画像データのファイルは、あるデータ量を有する。このファイルのデータ位置とは、この画像ファイルの先頭ビットから数えた場合におけるそのあるビットの順番を示す値である。たとえば、データ位置として１０ｋバイトが指定されると、画像データ送信部は、ファイルの先頭ビットから１０ｋバイト目の所定の長さのデータを抽出する。
【００５４】
ＵＳＢマスストレージクラスプログラム２４は、中央処理装置１１に実行されることでＵＳＢマスストレージクラスを実現する。ＵＳＢマスストレージクラスでは、ホストとデバイスとの間でデータをバルク転送したりすることができる。なお、本実施の形態では、サブクラスとしては、ＳＣＳＩサブクラスが使用される。
【００５５】
図４は、図２のＤＳＣ１において撮像時に実現される機能を示すブロック図である。図４に示すように、撮像時には、ＤＳＣ１においてＥＸＩＦ画像データ生成部３１が実現される。
【００５６】
ＣＣＤ１５は、ＥＸＩＦ画像データ生成部３１へ撮像データを出力する。ＥＸＩＦ画像データ生成部３１は、この撮像データをＪＰＥＧ方式で圧縮し、ＥＸＩＦ画像データを生成する。カードリーダ１６は、このＥＸＩＦ画像データに所定のファイル名をつけて、このＥＸＩＦ画像データを半導体メモリ２０に書き込む。カードリーダ１６は、半導体メモリ２０内の複数のＥＸＩＦ画像データのファイル同士３２が互いに区別できるように、その複数のＥＸＩＦ画像ファイル３２には、互いに異なるファイル名を付加する。
【００５７】
図５は、図４中のＥＸＩＦ画像データ生成部３１による圧縮処理の説明図である。図５（Ａ）は、画像における複数のピクセルの配列を説明する図である。ＣＣＤ１５が出力する撮像データの画像は、図５（Ａ）に示すように、縦方向のピクセル数より横方向のピクセル数が多い、全体が横長の長方形の画像を構成するものとして説明する。
【００５８】
このような撮像データが入力されると、ＥＸＩＦ画像データ生成部３１は、図５（Ｂ）に示すように、８×８ピクセルを１つのブロックとして、そのブロック毎に空間周波数を演算する。なお、１ブロックあたりのピクセル数は、８×８に限られず、たとえば１６×１６などであってもよい。
【００５９】
また、ＥＸＩＦ画像データ生成部３１は、図５（Ｂ）に示すように、横長の画像の長辺に沿った図中上側のブロックの行から順番に、且つ、同じブロック行の中では図中左側のブロックから順番に、ブロックの空間周波数を演算する。図５（Ｂ）は、ブロックの画像上の配置を示す図である。
【００６０】
そして、図５（Ｂ）に示すようにｍ行ｎ列（ｍ、ｎは、１以上の整数）のブロックのすべてについて空間周波数を演算したら、ＥＸＩＦ画像データ生成部３１は、空間周波数の総データ量が所定のデータ量以下となるように空間周波数のデータを間引く。ＥＸＩＦ画像データ生成部３１は、ＪＰＥＧ形式のデータの総データ量が所定量以下となるまでこのデータの間引き処理を繰り返す。以上のエンコード処理によって、ＥＸＩＦ画像データ生成部３１は、所定のデータ量以下のデータ量のＪＰＥＧ形式のデータを生成する。なお、ＪＰＥＧ形式のデータにおいて複数のブロックのデータ量は、一定の量に揃わない。
【００６１】
図５（Ｃ）は、ＥＸＩＦ画像データ上での各ブロックのデータ配置を示す図である。ＥＸＩＦ画像データの先頭には、ＥＸＩＦヘッダのデータが格納される。このＥＸＩＦヘッダの後には、複数のブロックのデータがそのエンコード順にしたがって格納されている。つまり、ＥＸＩＦヘッダの後には、画像の左上のブロック（１）のデータが続く。画像の左上のブロック（１）のデータの次には、そのブロックの右隣りのブロック（２）のデータが続く。画像の一番上のブロック行の右端のブロック（ｎ）のデータの次には、画像の上から二行目のブロック行の左端のブロック（ｎ＋１）のデータが続く。複数のブロックデータの最後には、画像の右下のブロック（ｍ×ｎ）のデータがくる。複数のブロックの後には、ファイルのデータの終わりを示すＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｉｌｅ）データが格納される。
【００６２】
なお、このように撮像データをＪＰＥＧ形式に圧縮し、その圧縮された画像データを半導体メモリ２０に記憶させた場合、その画像における画像の行数は、ブロック行の行数となる。
【００６３】
図６は、図１中のプリンタ２のハードウェア構成を示すブロック図である。プリンタ２は、中央処理装置４１と、中央処理装置４１がプログラムの実行の際に利用するメモリ４２と、プログラムを記憶する記憶部４３と、Ｉ／Ｏポート４４と、これらを接続するシステムバス４５とを有する。
【００６４】
プリンタ２のＩ／Ｏポート４４には、第二の通信手段としてのＵＳＢ通信Ｉ／Ｆ４６と、印刷デバイス４７とが接続される。プリンタ２のＵＳＢ通信Ｉ／Ｆ４６は、ＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９と同様の機能を有するものであり、その説明を省略する。ただし、プリンタ２のＵＳＢ通信Ｉ／Ｆ４６は、ＵＳＢホストとして機能し、ＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９は、ＵＳＢデバイスとして機能する。
【００６５】
図７は、図１中のプリンタ２の内部機構を示す透過斜視図である。印刷デバイス４７は、給紙トレイ５１と、給紙ローラ５２と、搬送ローラ対５３と、排紙トレイ５４と、キャリッジ５５と、キャリッジ保持部材５６とを有する。給紙ローラ５２と、搬送ローラ対５３と、キャリッジ保持部材５６と、キャリッジ５５とは、プリンタ２の筐体５７の内部に配設される。
【００６６】
給紙トレイ５１には、用紙５８が載置される。給紙ローラ５２は、給紙トレイ５１上の用紙５８をニップし、給紙トレイ５１内の一番上の用紙５８を排紙トレイ５４の方向へ送り出す。搬送ローラ対５３は、この給紙トレイ５１から送り出された用紙５８をさらに排紙トレイ５４の方向へ送る。これにより、給紙トレイ５１に載置された用紙５８は、１枚ずつ給紙トレイ５１から排紙トレイ５４へ搬送され、排紙トレイ５４に排出される。
【００６７】
キャリッジ保持部材５６は、長い棒形状に形成される。また、このキャリッジ保持部材５６は、搬送ローラ対５３と排紙トレイ５４との間の用紙５８の搬送経路の上方において、その長尺方向が搬送ローラ対５３の伸在方向と略平行となる姿勢で配設される。キャリッジ５５は、このキャリッジ保持部材５６に移動可能に取り付けられる。これにより、キャリッジ５５は、搬送ローラ対５３の伸在方向に移動することができる。
【００６８】
キャリッジ５５は、インクタンクと、複数のノズルとを有する。ノズルは、インクタンク内のインクを吐出する。また、複数のノズルは、キャリッジ５５の移動方向と垂直な方向に沿って並べて形成される。なお、複数のノズルは、複数の列に分けて並べられていてもよい。
【００６９】
このような構成を有する印刷デバイス４７は、印刷制御データに基づいて搬送ローラ対５３を回転させて、キャリッジ５５に対向する位置（印刷位置）に用紙５８を搬送する。また、印刷デバイス４７は、印刷制御データに基づいてキャリッジ５５を移動させながら、所定のノズルからインクを吐出させる。そして、キャリッジ５５に１印刷行分のインクを吐出させたら、印刷デバイス４７は、搬送ローラ対５３を回転させて用紙５８をその１印刷行分だけ送る。また、印刷デバイス４７は、次の印刷制御データに基づいてキャリッジ５５を移動させながら、所定のノズルからインクを吐出させる。このように１印刷行ずつのキャリッジ５５からのインクの吐出制御と、１印刷行ずつの用紙５８送りとを交互に繰り返すことで、印刷デバイス４７は、用紙５８の紙面に印刷制御データに基づく画像を形成する。
【００７０】
また、印刷デバイス４７は、用紙５８へのインクの吐出が完了したら、搬送ローラ対５３を回転させて、印刷位置から排紙トレイ５４へ用紙５８を排出する。これにより、印刷制御データに基づく画像が形成された用紙５８が排紙トレイ５４に排出されることになる。
【００７１】
図８は、図６中の記憶部４３の記憶内容を示す図である。プリンタ２の記憶部４３には、印刷指示データ解釈プログラム６１と、キャッシュシステムプログラム６２と、デコーダプログラム６３と、印刷制御データ生成プログラム６４と、通信制御プログラム群とが記憶される。プリンタ２の通信制御プログラム群は、ＵＳＢマスストレージクラスプログラム６５を有する。図９は、図１のダイレクト印刷システムに実現される機能を示すブロック図である。図８に示す各種プログラムを実行することで、図９におけるプリンタ２側の各種機能が実現される。
【００７２】
ＵＳＢマスストレージクラスプログラム６５は、中央処理装置４１に実行されることでＵＳＢマスストレージクラス９５を実現する。なお、本実施の形態１では、サブクラスとしてＳＣＳＩサブクラスが使用される。
【００７３】
印刷指示データ解釈プログラム６１は、中央処理装置４１に実行されることで印刷指示データ解釈部９１を実現する。印刷指示データ解釈部９１は、印刷指示データを解釈して、その印刷指示データにて指定された印刷処理をプリンタ２に実行させる。
【００７４】
キャッシュシステムプログラム６２は、中央処理装置４１に実行されることで、読込手段および出力手段としてのキャッシュシステム９２を実現する。キャッシュシステム９２は、メモリ４２にキャッシュメモリ７１を生成する。このキャッシュメモリ７１は、所定本数の画像データバッファとしての所定本数のキャッシュバッファ７２を有する。各キャッシュバッファ７２には、記憶しているデータのファイル名（ファイルＩＤ）およびデータ位置の範囲を示す情報と、キャッシュした順番（たとえば時刻）の情報とが対応付けられる。
【００７５】
図１０は、図６中のメモリ４２に生成されるキャッシュメモリ７１の構成を示す図である。図１０のキャッシュメモリ７１は、Ｐ本のキャッシュバッファ７２を有する。また、各キャッシュバッファ７２は、そのサイズ分のデータを記憶する領域として生成される。
【００７６】
なお、キャッシュバッファ７２の本数Ｐは、印刷可能な画像データサイズの上限値に対応する所定の大きな値とされる。たとえば、ブロックの縦横ピクセル数がｈであるＥＸＩＦ（ＪＰＥＧ）形式の画像データの場合、デコーダ９３によりデコード可能な画素数（画像の一辺の画素数）がαとし、画像の縦横比が３：４とすると、Ｐは、値（α×３／４）／ｈ（＝α／ｈ×３／４）の小数点以下を切り上げた整数とされる。あるいは４ｕｐの場合を想定して、たとえば、ブロックの縦横ピクセル数がｈであるＥＸＩＦ（ＪＰＥＧ）形式の画像データの場合、デコーダ９３によりデコード可能な画素数（画像の一辺の画素数）がαとし、画像の縦横比が３：４とすると、Ｐは、値（α×３／４）／ｈ×２（＝α／ｈ×３／２）の小数点以下を切り上げた整数とされる。
【００７７】
また、キャッシュシステム９２は、デコーダ９３からデータの出力要求があったら、まず、その取得要求に係るデータがキャッシュメモリ７１に記憶されているか否かを確認する。そして、取得要求に係るデータがキャッシュメモリ７１に記憶されている場合には、キャッシュシステム９２は、そのデータをキャッシュメモリ７１から読み出して出力する。
【００７８】
取得要求に係るデータがキャッシュメモリ７１に記憶されていない場合には、キャッシュシステム９２は、その取得要求に係るデータが先頭となるように１つのキャッシュバッファ７２のサイズに等しいバイト数のデータの送信要求を生成する。なお、この送信要求では、そのキャッシュするデータのファイル名（あるいはファイルＩＤ）も指定される。
【００７９】
また、キャッシュシステム９２は、要求したデータを受信すると、空いているキャッシュバッファ７２を選択して、その選択したキャッシュバッファ７２に受信したデータを格納する。なお、空いているキャッシュバッファ７２が無い場合には、キャッシュシステム９２は、最も早くキャッシュしたキャッシュバッファ７２を選択し、その選択したキャッシュバッファ７２に受信したデータを格納する。ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ：先読先出）方式でキャッシュメモリ７１が更新される。また、キャッシュシステム９２は、その新たなデータを格納したキャッシュバッファ７２からあるいはＵＳＢホスト９５から出力要求に係るデータを取得し、デコーダ９３へ出力する。
【００８０】
図８に示すデコーダプログラム６３は、中央処理装置４１に実行されることで、画像の印刷順にしたがってデータを要求する要求手段としてのデコーダ９３を実現する。デコーダ９３は、ＥＸＩＦ画像データを復号化し、ロウ（ＲＡＷ）画像データを生成する。復号化後の画像データでは、各ピクセルのデータが、データとしてピクセル毎に互いに独立した状態に分かれている。データがピクセル毎に分かれている画像データとしては、たとえば、ビットマップ形式の画像データ、ＴＩＦＦ（Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ）形式の画像データなどがある。
【００８１】
印刷制御データ生成プログラム６４は、中央処理装置４１に実行されることで印刷制御データ生成部９４を実現する。印刷制御データ生成部９４は、データがピクセル毎に分かれている画像データと印刷のレイアウト情報とに基づいて、印刷デバイス４７のキャリッジ５５および搬送ローラ対５３を制御するための印刷制御データを生成する。
【００８２】
次に、以上のような構成を有するダイレクト印刷システムの動作を説明する。
【００８３】
ＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９とプリンタ２のＵＳＢ通信Ｉ／Ｆ４６とがＵＳＢケーブル３で接続される。そして、ＤＳＣ１では、印刷指示データ生成部８１と、画像データ送信部８２と、ＵＳＢマスストレージクラス８３とが実現される。また、プリンタ２では、印刷指示データ解釈部９１と、キャッシュシステム９２と、デコーダ９３と、印刷制御データ生成部９４と、ＵＳＢマスストレージクラス９５とが実現される。キャッシュシステム９２は、キャッシュメモリ７１を生成する。
【００８４】
プリンタ２のＵＳＢ通信Ｉ／Ｆ４６は、ＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９へ、ＵＳＢのディスクリプタの送信要求を送信する。
【００８５】
ＵＳＢ通信Ｉ／Ｆ１９は、このディスクリプタの送信要求に応じて、ＤＳＣ１のディスクリプタを出力する。ＤＳＣ１のディスクリプタは、プリンタ２のＵＳＢ通信Ｉ／Ｆ４６へ送信される。プリンタ２のＵＳＢ通信Ｉ／Ｆ４６は、受信したＤＳＣ１のディスクリプタに基づいて、エンドポイントと呼ばれる通信バッファを生成する。このエンドポイントには、ＵＳＢマスストレージクラス８３，９５同士がデータをバルク転送するために使用するものが含まれている。これにより、ＵＳＢのコンフィグレーション処理は、完了する。
【００８６】
印刷指示データ生成部８１は、まず、半導体メモリ２０から、半導体メモリ２０に記憶されているＥＸＩＦ画像ファイル３２のファイル名のリストを読み込み、このファイル名のリストを割り付けたＥＸＩＦ画像ファイル３２の選択画面の表示データを液晶モニタ１７に出力する。これにより、液晶モニタ１７には、ＥＸＩＦ画像ファイル３２の選択画面の選択画面が表示される。なお、印刷指示データ生成部８１は、ファイル名の替わりにサムネイル画像を読み込み、サムネイル画像を割り付けたＥＸＩＦ画像ファイル３２の画像選択画面を液晶モニタ１７に表示させてもよい。
【００８７】
ユーザは、入力キーあるいはタッチパネルを操作して、液晶モニタ１７に表示されているファイル名のリストの中から、ファイル名を選択する。この選択操作に応じて、入力デバイス１８は、入力データを生成する。印刷指示データ生成部８１は、入力データに基づいて、ファイル名を選択する。なお、ユーザが複数のファイル名を選択する操作をした場合には、印刷指示データ生成部８１は、その複数のファイル名を選択する。
【００８８】
画像を選択した後、印刷指示データ生成部８１は、印刷条件選択画面を液晶モニタ１７に表示させる。ユーザの操作に応じて入力デバイス１８は、入力データを生成する。この入力データに基づいて、印刷指示データ生成部８１は、印刷条件を選択する。なお、印刷条件としては、たとえば画像の印刷品質（高画質、標準など）、用紙５８の種類（Ａ４、Ｂ５、Ｌ判など）、１枚の用紙５８に印刷する画像のレイアウト（１ｕｐ、２ｕｐ、４ｕｐなど）などがある。
【００８９】
画像および印刷条件を選択したら、印刷指示データ生成部８１は、印刷指示データを生成する。
【００９０】
印刷指示データを生成した後、印刷指示データ生成部８１は、この生成した印刷指示データをＵＳＢマスストレージクラス８３によりプリンタ２へ送信する。
【００９１】
プリンタ２のＵＳＢマスストレージクラス９５は、印刷指示データを受信すると、印刷指示データを印刷指示データ解釈部９１へ出力する。なお、この印刷指示データの送信は、たとえば特開２００３−２５６１５４号公報と同様の方法を利用すればよい。
【００９２】
図１１は、図１０中の印刷指示データ解釈部９１の動作を示すフローチャートである。
【００９３】
印刷指示データ解釈部９１は、印刷指示データが入力されると、その印刷指示データにて指定される印刷処理の制御を開始する（ステップＳ１）。具体的には、印刷指示データ解釈部９１は、まず、印刷指示データの中からファイル名（あるいはファイルＩＤ）を抽出し、そのファイル名等のファイルの画像サイズ情報の取得要求データを生成する。
【００９４】
この画像サイズ情報の取得要求データは、ＳＣＳＩホスト９７からプリンタ２のＵＳＢマスストレージクラス９５へ渡され、プリンタ２のＵＳＢマスストレージクラス９５により、ＤＳＣ１のＵＳＢマスストレージクラス８３へ転送される。ＤＳＣ１のＵＳＢマスストレージクラス８３は、この画像サイズ情報の取得要求データを画像データ送信部８２へ出力する。
【００９５】
画像データ送信部８２は、画像サイズ情報の取得要求データを受け取ると、その取得要求データに含まれるファイル名を抽出する。また、画像データ送信部８２は、そのファイル名のファイル３２のＥＸＩＦヘッダから、画像の縦方向のピクセル数および横方向のピクセル数を読み込み、この画像の縦方向のピクセル数および横方向のピクセル数の情報を出力する。
【００９６】
この画像の縦方向のピクセル数および横方向のピクセル数の情報は、ＤＳＣ１のＵＳＢマスストレージクラス８３によりプリンタ２へ送信され、プリンタ２のＵＳＢマスストレージクラス９５により印刷指示データ解釈部９１に入力される。
【００９７】
画像の縦方向のピクセル数および横方向のピクセル数の情報が入力されると、印刷指示データ解釈部９１は、印刷指示データに含まれるレイアウト情報とそれらの縦横の各ピクセル数とに基づいて、画像を回転させる必要があるか否かを判断する（ステップＳ２）。
【００９８】
画像の縦方向のピクセル数と横方向のピクセル数の情報が入力されると、印刷指示データ解釈部９１は、印刷指示データに含まれるレイアウト情報とそれらの縦横の各ピクセル数とに基づいて、画像を回転して印刷するか否かを判断する（ステップＳ２）。
【００９９】
たとえば、キャリッジ走査方向が用紙５８の短辺と平行であって、印刷レイアウトが１ｕｐまたは４ｕｐである場合、画像の縦方向のピクセル数が横方向のピクセル数より小さいときには、印刷指示データ解釈部９１は、画像を回転すると判断し、画像の縦方向のピクセル数が横方向のピクセル数以上であるときには、印刷指示データ解釈部９１は、画像を回転しないと判断する。
【０１００】
また、たとえば、キャリッジ走査方向が用紙５８の短辺と平行であって、印刷レイアウトが２ｕｐまたは８ｕｐである場合、画像の縦方向のピクセル数が横方向のピクセル数以下であるときには、印刷指示データ解釈部９１は、画像を回転しないと判断し、画像の縦方向のピクセル数が横方向のピクセル数より大きいときには、印刷指示データ解釈部９１は、画像を回転すると判断する。
【０１０１】
図１２は、画像のピクセル数について説明する図である。図１２（Ａ）に示すように、画像の横ピクセル数は、エンコード方向に沿った一辺（つまりブロック行）のピクセル数であり、画像の縦ピクセル数は、エンコード方向に対して垂直な一辺（つまりブロック列）のピクセル数である。
【０１０２】
また、画像を回転すると判断する場合には、図１２（Ｂ）に示すように、キャリッジの走査方向（つまり１回に印刷するライン向き）と画像データのエンコード方向に対応する画像２０１上の方向とが垂直となる場合である。
【０１０３】
画像を回転する必要がないと判断した場合、印刷指示データ解釈部９１は、ファイル名を指定して、そのファイル名のファイル３２に含まれるＥＸＩＦ画像データをデコードする指示をデコーダ９３へ出力する（ステップＳ３）。つまり、印刷指示データ解釈部９１は、画像を回転することなくデコード処理を行う指示をデコーダ９３へ出力する。
【０１０４】
また、画像を回転する必要があると判断した場合、印刷指示データ解釈部９１は、ファイル名（あるいはファイルＩＤ）を指定するとともに、そのファイル名等のファイル３２に含まれるＥＸＩＦ画像データの画像を回転しながらデコードする指示をデコーダ９３へ出力する（ステップＳ４）。
【０１０５】
図１３は、図１０中のデコーダ９３の動作を示すフローチャートである。図１４は、図１０中のキャッシュシステム９２の動作を示すフローチャートである。
【０１０６】
デコーダ９３は、まず、印刷指示データ解釈部９１からのデコード指示に画像を回転させる指示が含まれているか否かを判断する（ステップＳ１１）。
【０１０７】
画像を回転させる指示が含まれていない場合、デコーダ９３は、ＥＸＩＦ画像データの読み込みを開始する（ステップＳ１２）。具体的には、デコーダ９３は、ファイル名を指定して、そのファイルの先頭から１ワード分のデータを出力する指示をキャッシュシステム９２へ出力する。
【０１０８】
ファイルの先頭から１ワード分のデータを出力する指示が入力されると、キャッシュシステム９２は、その指示に係る１ワード分のデータがキャッシュメモリ７１内に格納されているか否かを判断する（ステップＳ３１）。指定されたファイル名のＥＸＩＦ画像ファイル３２をはじめて読み込む場合には、そのファイルのデータはキャッシュメモリ７１に読み込まれていない。したがって、キャッシュシステム９２は、その指示に係る１ワード分のデータがキャッシュメモリ７１内に格納されていないと判断する。
【０１０９】
指示に係る１ワード分のデータがキャッシュメモリ７１内に格納されていない場合、キャッシュシステム９２は、データの送信要求を生成する（ステップＳ３２）。このデータの送信要求には、要求に係るファイル名と、読み込むデータのデータ位置の範囲（たとえば読み込むデータ位置の範囲の先頭バイトのデータ位置と最終バイトのデータ位置とを組み合わせたもの）とが含まれる。最初のデータの送信要求では、読み込むデータの先頭バイトとしてファイルの先頭バイトが指定され、最終バイトとしてキャッシュバッファ７２のサイズに相当するバイトが指定される。
【０１１０】
このデータの送信要求は、キャッシュシステム９２から出力された後、プリンタ２のＵＳＢマスストレージクラス９５、プリンタ２のＵＳＢ通信Ｉ／Ｆ４６、ＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９およびＤＳＣ１のＵＳＢマスストレージクラス８３を介して、画像データ送信部８２へ送信される。
【０１１１】
画像データ送信部８２は、データの送信要求が入力されると、その要求に係るデータを半導体メモリ２０から読み込む。この最初のデータの要求に基づいて、画像データ送信部８２は、指定されたファイル名のＥＸＩＦ画像ファイル３２の先頭バイトから、キャッシュバッファ７２のサイズに相当するバイトまでのデータを読み込む。
【０１１２】
画像データ送信部８２に読み込まれたデータは、画像データ送信部８２から出力された後、ＤＳＣ１のＵＳＢマスストレージクラス８３、ＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９、プリンタ２のＵＳＢ通信Ｉ／Ｆ４６およびプリンタ２のＵＳＢマスストレージクラス９５を介して、キャッシュシステム９２へ送信される。
【０１１３】
キャッシュシステム９２は、要求していたデータが入力されると、そのデータを空いているキャッシュバッファ７２に書き込む（ステップＳ３３）。また、キャッシュシステム９２は、そのキャッシュバッファ７２に格納したデータのファイル名および格納しているデータ位置の範囲を示す情報と、キャッシュした時刻の情報とを記憶する。なお、空いているキャッシュバッファ７２が無い場合には、キャッシュシステム９２は、最も早くデータをキャッシュしたキャッシュバッファ７２を選択し、その選択したキャッシュバッファ７２に受信したデータを上書きする。
【０１１４】
そして、キャッシュシステム９２は、そのデータをデコーダ９３へ出力する（ステップＳ３４）。
【０１１５】
キャッシュシステム９２に要求した１ワード分のデータがキャッシュシステム９２から入力されると、図１３に示すように、デコーダ９３は、そのデータの入力によって、ブロック１つ分のすべてのデータの読み込みが完了したか否かを判断する（ステップＳ１３）。そして、デコーダ９３は、ＪＰＥＧの符号化ブロック１つ分のすべてのデータの読み込みが完了するまで、次の１ワード分のデータの出力要求をキャッシュシステム９２へ繰り返し出力する。
【０１１６】
キャッシュシステム９２は、デコーダ９３から１ワード分のデータの出力要求が入力される度に、キャッシュバッファ７２のデータの範囲を示す情報と要求されたデータの位置とを比較して、その要求に係るデータがキャッシュメモリ７１内にあるか否かを判断する（ステップＳ３１）。また、キャッシュシステム９２は、キャッシュメモリ７１内にデータがある場合には、キャッシュメモリ７１から読み出して出力し（ステップＳ３４）、キャッシュメモリ７１内にデータがない場合には、ＤＳＣ１から新たなデータを取得して（ステップＳ３２，Ｓ３３）、要求に係るデータを出力する（ステップＳ３４）。
【０１１７】
デコーダ９３は、ブロック１つ分のすべてのデータの読み込みが完了すると、そのブロックのデコード処理を行う（ステップＳ１４）。デコーダ９３は、復号化したピクセル毎のピクセルのデータを印刷制御データ生成部９４へ出力する。なお、デコード処理は、１ブロック毎ではなく所定の数のブロックに対してまとめて行うようにしてもよい。
【０１１８】
デコード処理が完了すると、デコーダ９３は、印刷指示データ解釈部９１が指定したファイルのＥＸＩＦ画像データをすべて読み込んだか否かを判断する（ステップＳ１５）。そして、デコーダ９３は、指定されたファイルのすべてのＥＸＩＦ画像データを読み込んだ場合には、デコード処理を終了する。
【０１１９】
なお、ファイルのすべてのＥＸＩＦ画像データを読み込んだ否かは、ファイルの最後に付加されているＥＯＦデータを読み込んだか否かに基づいて判断すればよい。
【０１２０】
指定されたファイルのすべてのＥＸＩＦ画像データの読込みが完了していない場合には、デコーダ９３は、次のブロックの先頭ビットから、ワード毎のデータ読み込み処理を再開する（ステップＳ１６）。
【０１２１】
なお、ブロック１つ分のすべてのデータの読み込みが完了したと判断する際に、デコーダ９３は、その最後に読み込んだデータの最終バイトの次のバイトを次のブロックの先頭バイトと判断する。
【０１２２】
以上の処理により、印刷指示データ解釈部９１がデコーダ９３に指定したファイルのＥＸＩＦ画像データはすべて、ピクセル毎のピクセルデータへ変換され、印刷制御データ生成部９４へ出力される。
【０１２３】
印刷制御データ生成部９４は、ブロック毎に入力されるピクセルデータを保持する。そして、印刷制御データ生成部９４は、少なくとも１印刷行（つまり、少なくとも１回のキャリッジ走査）分のピクセルデータがそろったら、その１印刷行分のピクセルデータに基づいて印刷制御データを生成する。印刷デバイス４７は、この印刷制御データを用いて用紙５８に少なくとも１行分の印刷処理を行う。
【０１２４】
また、印刷制御データ生成部９４は、この１印刷行分のピクセルデータに基づく印刷制御データの生成処理を、すべてのピクセルデータについて繰り返す。これにより、排紙トレイ５４に排出される用紙５８には、印刷指示データ解釈部９１がデコーダ９３に指定したファイルのＥＸＩＦ画像データに基づく画像が所定のレイアウトにて形成される。また、その画像は、画像の長手方向が用紙５８の給紙方向となる姿勢にて形成される。
【０１２５】
ところで、デコーダ９３によるワード単位でのデータ読み込みが進んで、キャッシュバッファ７２内にデコーダ９３により要求されるデータがなくなると、キャッシュシステム９２は、１つのキャッシュバッファ７２分のデータをＤＳＣ１から新たに取得する。また、キャッシュシステム９２は、ＤＳＣ１から新たに取得したデータを、空いているキャッシュバッファ７２、あるいは、空いているキャッシュバッファ７２が無い場合には最も更新時刻が古いキャッシュバッファ７２に格納する。また、キャッシュシステム９２は、新たに取得したデータの中から、デコーダ９３により要求されたデータを読み出して、デコーダ９３へ出力する。
【０１２６】
このように、キャッシュメモリ７１にキャッシュされるデータは、デコーダ９３によるワード単位でのデータ読み込みが進むにつれて更新される。また、先にキャッシュしたデータは、後からキャッシュしたデータによって消去される。
【０１２７】
図１５は、画像を回転しない場合におけるキャッシュメモリ７１の状態変化の一例を示す図である。図１５（Ａ）は、キャッシュメモリ７１に読み込まれるＥＸＩＦ画像データのデータ構造を示すものである。図１５（Ｂ）は、画像を回転させずにデコードする場合において、デコードを開始した直後のキャッシュメモリ７１の記憶状態の一例を示す図である。図１５（Ｃ）は、画像を回転させずにデコードする場合において、デコードを終えた時のキャッシュメモリ７１の記憶状態の一例を示す図である。
【０１２８】
画像を回転させずにデコードする場合、図１５に例示するように、キャッシュメモリ７１には、ＥＸＩＦ画像データの先頭から順番に読み込まれる。また、空いているキャッシュバッファ７２が無くなったら、古いデータを記憶するキャッシュバッファ７２から順番に、新たに読み込んだデータにて上書きされる。
【０１２９】
したがって、ＥＸＩＦ画像データを回転させずに印刷する場合には、キャッシュシステム９２は、ＥＸＩＦ画像データを、キャッシュバッファ７２のサイズ分ずつ先頭から順番にキャッシュする。また、ＥＸＩＦ画像データの各バイトは、１回ずつキャッシュメモリ７１に読み込まれる。
【０１３０】
図１３および図１４に戻り、印刷指示データ解釈部９１からのデコード指示に画像を回転させる指示が含まれている場合には、デコーダ９３は、そのデコードを指示されたＥＸＩＦ画像データのプレスキャンを開始する（ステップＳ１７）。
【０１３１】
プレスキャンにおいて、デコーダ９３は、ファイル名を指定して、キャッシュシステム９２に対して１ワード単位でデータ読込み指示を出力し、ＥＸＩＦ画像データを先頭から最後まで順番に読み込む。キャッシュシステム９２は、デコーダ９３から要求されたデータがキャッシュメモリ７１にある場合には、そのキャッシュメモリ７１からデータを読み出してデコーダ９３へ出力し（ステップＳ３４）、デコーダ９３から要求されたデータがキャッシュメモリ７１にない場合には、そのデータを含むデータをＤＳＣ１からキャッシュバッファ７２へ読み込み（ステップＳ３２、Ｓ３３）、その１ワードのデータをデコーダ９３へ出力する（ステップＳ３４）。
【０１３２】
キャッシュシステム９２から１ワード分のデータが入力されると、デコーダ９３は、そのデータが、ブロック行の先頭バイトであるか否かを判断する。ブロック行の先頭バイトとは、画像においてブロック行の左端に位置するブロックの先頭バイトである。
【０１３３】
そして、キャッシュシステム９２から入力されたデータがブロック行の先頭バイトである場合には、デコーダ９３は、その先頭バイトの、ＥＸＩＦ画像データにおけるデータ位置、すなわちＥＸＩＦ画像データの先頭ビットから何バイト目のデータであるのかを記憶する。
【０１３４】
デコーダ９３は、ＥＸＩＦ画像データの終わりまでワード単位でのデータ取得を繰り返す。そして、ＥＸＩＦ画像データの終わりまでワード単位でのデータ取得を繰り返した後には、デコーダ９３は、ＥＸＩＦ画像データに含まれる画像のすべてのブロック行の先頭バイトのデータ位置を記憶している。なお、各ブロック行の先頭バイトのデータ位置は、それぞれのポインタバッファに記憶される。
【０１３５】
以上のプレスキャン処理を完了したら、デコーダ９３は、ＥＸＩＦ画像データのデコードのための読み込みを開始する（ステップＳ１８）。デコーダ９３は、まず、画像の一番上のブロック行（つまり、画像データの先頭に最も近い１行分のブロック）の先頭バイトからワード単位でのデータ読み込みを開始する。キャッシュシステム９２は、デコーダ９３に要求されたデータを、必要に応じてキャッシュしながらデコーダ９３へ出力する。なお、本実施の形態では、画像の上とは、画像データのはじめの部分による画像部分をいい、画像の左とは、画像データの最初のブロックによる画像が配置される側をいう。
【０１３６】
また、デコーダ９３は、ブロック１つ分のすべてのデータの読み込みが完了したか否かを判断し（ステップＳ１９）、それが完了するまでワード単位のデータの読み込みを繰り返す。
【０１３７】
そして、ブロック１つ分のすべてのデータの読み込みが完了すると、デコーダ９３は、そのデータの次のバイトのデータ位置を記憶する。デコーダ９３は、このブロック行について、この新たなデータ位置を、このブロック行のポインタバッファに上書きする（ステップＳ２０）。
【０１３８】
ポインタバッファに格納するデータ位置を更新したら、デコーダ９３は、読み込んだブロックのデコード処理を行う（ステップＳ２１）。また、デコーダ９３は、デコード処理により生成したピクセル毎のピクセルのデータを印刷制御データ生成部９４へ出力する。なお、デコーダ９３は、複数ブロックをまとめて復号化するようにしてもよい。
【０１３９】
デコード処理が完了すると、デコーダ９３は、印刷指示データ解釈部９１が指定したファイル３２のＥＸＩＦ画像データをすべてデコードしたか否かを判断する（ステップＳ２２）。そして、デコーダ９３は、指定されたファイルのすべてのＥＸＩＦ画像データをデコードした場合には、デコード処理を終了する。
【０１４０】
指定されたファイルのすべてのＥＸＩＦ画像データの読込みが完了していない場合には、デコーダ９３は、さらに画像のブロック列１列（つまり、少なくとも１回のキャリッジ走査による印刷に必要なブロック１列）分のデータ読込みが完了しているか否かを判断する（ステップＳ２３）。
【０１４１】
画像の左上のブロックのデコード処理が完了した時点では、ＥＸＩＦ画像データをデコードのためにすべて読み込んでおらず、また、画像のブロック列１列分のデータ読込みも完了していない。そのため、デコーダ９３は、次のブロック行のデコード処理を開始する（ステップＳ２４）。
【０１４２】
具体的には、デコーダ９３は、画像の上から二行目のブロック行に対応するポインタバッファからデータ位置を読み込み、このデータ位置からワード単位でのデータ読み込みを開始する。そして、デコーダ９３は、ブロック１つ分のデータを読み込んだら（ステップＳ１９）、その画像の上から二行目のブロック行のポインタバッファの値を、そのブロックの最後のデータの次のデータのデータ位置に更新し（ステップＳ２０）、そのブロックのデコード処理を行う（ステップＳ２１）。
【０１４３】
また、デコーダ９３は、このブロック行毎のデコード処理（ステップＳ１９〜Ｓ２４）を繰り返す。そして、画像の左端のブロック列のすべてのブロックについてデコード処理が完了すると、デコーダ９３は、画像の一番上のブロック行についてのデコード処理を行う（ステップＳ２５）。このとき、画像の一番上のブロック行に対応するポインタバッファには、画像の左端のブロックの最終バイトの次のバイトのデータ位置が格納されている。したがって、デコーダ９３は、画像の一番上のブロック行の左から二番目のブロックのデコード処理を行うことになる。
【０１４４】
以上のように、デコーダ９３は、画像のブロック行毎にブロックの先頭ビットを格納するポインタバッファを設け、各ブロックのデータを読み込んだらこのポインタバッファに格納されるデータ位置を順次更新し、複数のブロック行について順番にデコード処理を繰り返す。これにより、デコーダ９３は、画像の左側（つまり最初に印刷される画像に対応するブロック列）のブロック列から右側のブロック列までについて順番にデコード処理を行うことになる。
【０１４５】
また、印刷制御データ生成部９４は、ブロック毎に入力されるピクセルデータを保持する。そして、印刷制御データ生成部９４は、少なくとも１印刷行（つまり、少なくとも１回のキャリッジ走査）分のピクセルデータがそろったら、その１印刷行分のピクセルデータに基づいて印刷制御データを生成する。印刷デバイス４７は、この印刷制御データを用いて用紙５８に少なくとも１行分の印刷処理を行う。
【０１４６】
また、印刷制御データ生成部９４は、この少なくとも１印刷行分のピクセルデータに基づく印刷制御データの生成処理を、すべてのピクセルデータについて繰り返し行う。これにより、排紙トレイ５４に排出される用紙５８には、印刷指示データ解釈部９１がデコーダ９３に指定したファイルのＥＸＩＦ画像データに基づく画像が所定のレイアウトにて形成される。また、その画像は、画像の長手方向が用紙５８の給紙方向となる姿勢にて、つまり９０度あるいは２７０度に回転して形成される。
【０１４７】
ところで、このように画像を回転して印刷する場合であっても、デコーダ９３によるワード単位でのデータ読み込みが進んで、キャッシュバッファ７２内にデコーダ９３により要求されるデータがなくなると、キャッシュシステム９２は、キャッシュバッファ７２のサイズ分のデータをＤＳＣ１から新たに取得する。また、キャッシュシステム９２は、ＤＳＣ１から新たに取得したデータを、空いているキャッシュバッファ７２、あるいは、空いているキャッシュバッファ７２が無い場合には最も更新時刻が古いキャッシュバッファ７２に格納する。
【０１４８】
図１６は、画像を回転する場合におけるキャッシュメモリ７１の状態変化の一例を示す図である。図１６（Ａ）は、キャッシュメモリ７１に読み込まれるＥＸＩＦ画像データのデータ構造を示すものである。図１６（Ｂ）は、画像を回転させてデコードする場合において、ブロックを一列分のデコード処理が完了した時点でのキャッシュメモリ７１の記憶状態の一例を示す図である。図１６（Ｃ）は、画像を回転させてデコードする場合において、ブロックを２列分のデコード処理が完了した時点でのキャッシュメモリ７１の記憶状態の一例を示す図である。
【０１４９】
なお、キャッシュシステム９２は、画像のブロック行の行数ｍ以上の本数Ｐのキャッシュバッファ７２を有する。また、通常、キャッシュバッファ７２のサイズは、１つのブロックのデータ量より大きい。ちなみに、ＪＰＥＧ形式の画像データにおいて一列分のブロックのデータ量は、数十バイト、大きくても数キロバイトであるのが一般的である。
【０１５０】
そのため、画像を回転してデコードする場合において、画像の左端の一列（まり、最初に印刷される画像に対応するブロック列）分のブロックのデコードが完了した時点では、図１６（Ｂ）に例示するように、キャッシュメモリ７１の複数のキャッシュバッファ７２には、画像の左端のブロック列のすべてのブロックのデータがキャッシュされることになる。また、画像の左端の一列分のブロックのデータとともにキャッシュされた画像の左から二列目のブロックのデータも、消されることなく、すべてキャッシュメモリ７１内に残っている。したがって、この場合では、キャッシュシステム９２がＤＳＣ１からデータをキャッシュしないでも、デコーダ９３は、左から二列目以降のブロックをデコードすることができる。
【０１５１】
また、キャッシュシステム９２は、キャッシュメモリ７１内にデコーダ９３から要求されたデータがキャッシュメモリ７１内に無い場合には、そのデータを先頭とするキャッシュバッファ７２のサイズに相当するデータ量のデータを、ＤＳＣ１からキャッシュバッファ７２へ読み込む。つまり、図１６（Ｃ）に例示するように、キャッシュシステム９２は、画像の一番上の左から二番目のブロックがデコードされる際には、そのブロックのデータの中のキャッシュしていない分のデータだけを新たにキャッシュする。なお、このキャッシュの際に、左から三番目以降のブロックのデータも一緒にキャッシュされる。
【０１５２】
ブロック列における各ブロックのデータ量が均一である理想的な場合には、ブロック行の本数と同数にキャッシュバッファ７２に格納されているデータが、同時期に順番にキャッシュアウトし、各ブロック行の後続のデータがキャッシュインすることになる。この理想状態の場合では、各データは、一度だけキャッシュインし、そのデータのデコーダ９３への読み込みが完了すると、キャッシュアウトしていく。
【０１５３】
実際の場合、ブロック列における各ブロックのデータ量が均一となることは稀であると予想されるが、その場合でも、ブロック行数以上のキャッシュバッファ７２が用意されていることにより、２つのブロック行を跨いだデータがキャッシュバッファ７２に格納されず、また、印刷上の同一走査ラインに対応する、複数のブロック行に属する複数のブロックが、複数のキャッシュバッファ７２に並行して架空のされた状態となる可能性が高くなる。これにより、データのキャッシュアウトおよび再度のキャッシュインの頻度が少なくて済み、キャッシュシステム９２でのキャッシュヒット率が高まる。
【０１５４】
さらに、キャッシュシステム９２は、ＤＳＣ１に対するデータリードの最小単位で、読み込みデータを指定する。このため、過去にキャッシュインしデコードに既に使用されたデータが再度キャッシュインする割合が低減する。なお、この実施の形態１では説明の都合上、データリードの最小単位を１バイト単位としているが、ＳＣＳＩコマンドを使用する場合には、通常、データリードの最小単位は、５１２バイトか１０２４バイトとなる。また、データリードの最小単位は、使用するファイルシステムやファイル管理プロトコルによって異なるため、実装される方式の最小単位のデータ量を採用すればよい。
【０１５５】
次に、本実施の形態１によるキャッシュシステム９２の有効性を示すために、他のキャッシュ方式との比較について説明する。
【０１５６】
図１７は、他のキャッシュ方式でのキャッシュメモリの状態変化を示す図である。この方式では、画像を回転する場合においてキャッシュバッファの本数Ｐを画像のブロックの行数ｍより少なくしたものである。また、この方式では、キャッシュシステムがキャッシュバッファのサイズごとにＥＸＩＦ画像データを分割し、その分割単位毎にデータをキャッシュする。
【０１５７】
図１７（Ａ）は、画像を回転してデコードする場合において、デコードを開始した直後にキャッシュバッファが一杯になった時点でのキャッシュメモリの記憶状態の一例を示す図である。図１７（Ｂ）は、画像を回転してデコードする場合において、ブロックを１列分デコードした時点でのキャッシュメモリの記憶状態の一例を示す図である。
【０１５８】
キャッシュバッファの本数Ｐが画像のブロックの行数ｍより少ない場合、キャッシュメモリの容量が画像データより小さいと、図１７（Ａ）に示すように、キャッシュメモリには、ブロック一列分のデータをキャッシュすることができない。したがって、一列分のブロックのデコード処理が完了した時点では、図１７（Ｂ）に示すように、画像の一番上のブロック行のデータは、キャッシュメモリに残っていない。そのため、キャッシュシステムは、デコーダが各ブロックをデコードする度に、ＤＳＣ１からデータをキャッシュしなければならない。また、キャッシュバッファのサイズを読み込み単位としているため、キャッシュインしても使用されないデータが多くなる。
【０１５９】
この従来の方式、つまり図１７の方式のようにキャッシュバッファの本数Ｐが画像のブロックの行数ｍより少なく、ＥＸＩＦ画像データをキャッシュバッファのサイズごとに分割した単位でデータをキャッシュする場合に比べて、この実施の形態１に係るダイレクト印刷システムは、ＤＳＣ１での印刷画像の選択操作からプリンタ２での印刷完了までの時間を格段に短縮することができる。
【０１６０】
たとえば、縦３４５０ピクセル、横４６００ピクセルの画像を８×８ピクセル毎にブロックのデータへ変換する場合、ブロック行の行数は、４３２（≒３４５０／８＝４３１．２５）行となる。この画像４つを１枚の用紙５８に印刷する場合には、用紙５８の給紙方向に垂直な方向に２つの画像を並べることになる。このとき、１印刷行を生成するためには、８６４（＝４３２×２）個のブロックをデコードする必要がある。
【０１６１】
このような４つの画像を３Ｍバイトのキャッシュメモリでキャッシュして回転して印刷する場合において、従来の方式で１本１５ｋバイトのキャッシュバッファを２００本だけ用いる場合に比べて、本実施の形態のキャッシュメモリの構造では、ＤＳＣ１での印刷画像の選択操作からプリンタ２での印刷完了までの時間が約５分の１に減らすことができた。
【０１６２】
なお、３Ｍバイトのキャッシュメモリ７１において本実施の形態のキャッシュメモリの構造を実現する場合、キャッシュバッファ７２のサイズは、３４７２（≒３Ｍ／８６４）バイトになる。
【０１６３】
また、そのような３Ｍバイトのキャッシュメモリ７１において８６４本のキャッシュバッファ７２を構成した場合、４Ｍバイトの画像データによる１つの画像を１枚の用紙５８に回転して印刷するときには、２００本のキャッシュバッファを構成した場合に比べて、ＤＳＣ１での印刷画像の選択操作からプリンタ２での印刷完了までの時間を約３分の１に減らすことができた。
【０１６４】
以上のように、この実施の形態１に係るダイレクト印刷システムでは、上記構成により、キャッシュメモリ７１の効率が向上し、容量が小さいキャッシュメモリ７１であっても大きな画像データに基づく画像を迅速に印刷することができる。上述した理想的な状態の場合には、画像を回転して印刷する場合であっても、デコード処理の際には、およそＥＸＩＦ画像データのデータ量をキャッシュバッファ７２のサイズで割った回数（余りがある場合には商に１を加えた回数）だけ、ＤＳＣ１からプリンタ２へデータをキャッシュするだけで、そのＥＸＩＦ画像データに基づく画像を印刷することができる。
【０１６５】
また、この実施の形態１では、キャッシュシステム９２は、読み込むデータの先頭に、デコーダ９３に要求されたデータが含まれるように半導体メモリ２０からデータを読み込んでいる。そのため、キャッシュバッファ７２には、それ以降の印刷で使用するデータがより多く先読みされる。その結果、たとえば、画像データを画像データバッファ７１のサイズごとに分割し、その分割した単位毎に画像データを読み込む場合に比べて、画像データの読み込み回数を減らすことができる。
【０１６６】
なお、この実施の形態１では、キャッシュシステム９２は、画像データにおける画像のブロック行の行数（ｍ）と同数あるいはそのブロック行の行数（ｍ）より多い数の複数のキャッシュバッファ７２を生成している。このほかにもたとえば、複数の画像データの画像をキャリッジ５５の駆動方向に並べて印刷する場合には、キャッシュシステム９２は、それら複数の画像データのブロック行の行数の総数と同数あるいはそのブロック行の行数の総数より多い数の複数のキャッシュバッファ７２を生成するようにすれば、同様の効果を期待することができる。
【０１６７】
実施の形態２．
本発明の実施の形態２に係るダイレクト印刷システムは、画像データのサイズに応じて、キャッシュメモリ７１の構成を変更するようにしたものである。なお、ＤＳＣ１の構成および動作は、実施の形態１のものと同じであり、同一の符号を付して説明を省略する。また、プリンタ２のハードウェア構成は、実施の形態１のものと同じであり、同一の符号を付して説明を省略する。
【０１６８】
図１８は、本発明の実施の形態２のプリンタ２における記憶部４３の記憶内容を示す図である。また、図１９は、本発明の実施の形態２のダイレクト印刷システムに実現される機能を示すブロック図である。プリンタ２の記憶部４３には、印刷指示データ解釈プログラム１０１と、キャッシュシステムプログラム１０２と、デコーダプログラム６３と、印刷制御データ生成プログラム６４と、通信制御プログラム群とが記憶される。プリンタ２の通信制御プログラム群は、ＵＳＢマスストレージクラスプログラム６５とを有する。
【０１６９】
デコーダプログラム６３、印刷制御データ生成プログラム６４およびＵＳＢマスストレージクラスプログラム６５は、実施の形態１のものと同じであり、同一の符号を付して説明を省略する。
【０１７０】
印刷指示データ解釈プログラム１０１は、中央処理装置４１に実行されることで印刷指示データ解釈部１１１を実現する。キャッシュシステムプログラム１０２は、中央処理装置４１に実行されることで、形成手段、読込手段および出力手段としてのキャッシュシステム１１２を実現する。これら印刷指示データ解釈部１１１およびキャッシュシステム１１２は、実施の形態１のものと基本的に同じものであるが、後述するように、画像を回転して印刷する際の動作の一部が変更されている。
【０１７１】
次に、以上のような構成を有するダイレクト印刷システムの動作を説明する。
【０１７２】
ＤＳＣ１では、印刷指示データ生成部８１と、画像データ送信部８２と、ＵＳＢマスストレージクラス８３とが実現される。また、プリンタ２では、印刷指示データ解釈部１１１と、キャッシュシステム１１２と、デコーダ９３と、印刷制御データ生成部９４と、ＵＳＢマスストレージクラス９５とが実現される。形成手段としてのキャッシュシステム１１２は、メモリ４２に、所定のサイズを有するバッファメモリとしてのキャッシュメモリ１１３を生成する。この生成時のキャッシュメモリ１１３内のキャッシュバッファのサイズおよび本数は、実施の形態１のキャッシュメモリ７１のものと同じである。
【０１７３】
そして、プリンタ２のＵＳＢ通信Ｉ／Ｆ４６とＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９とによるコンフィグレーション処理が完了し、ＤＳＣ１の印刷指示データ生成部８１から印刷指示データ解釈部１１１へ印刷指示データが送信される。
【０１７４】
図２０は、図１９中の印刷指示データ解釈部１１１の動作を示すフローチャートである。
【０１７５】
印刷指示データ解釈部１１１は、印刷指示データが入力されると、その印刷指示データにて指定される印刷処理の制御を開始する（ステップＳ４１）。具体的には、印刷指示データ解釈部１１１は、まず、印刷指示データの中からファイル名等を抽出し、そのファイル名のファイルのデータ量（ファイルサイズ）と、そのファイルに含まれる画像のサイズ情報との取得を要求するデータを生成する。
【０１７６】
このファイルのデータ量および画像サイズ情報の取得要求データは、画像データ送信部８２へ送信される。画像データ送信部８２は、画像サイズ情報の取得要求データを受け取ると、その取得要求データに含まれるファイル名を抽出する。また、画像データ送信部８２は、そのファイル名のファイル３２から、そのデータ量および画像サイズ情報を読み込み、これらを印刷指示データ解釈部１１１へ送信する。
【０１７７】
印刷指示データ解釈部１１１は、画像ファイル３２のデータ量（ファイルサイズ）、画像の縦ピクセル数と横ピクセル数を受信すると、画像の回転が必要か否かを判断する（ステップＳ４２）。
【０１７８】
印刷指示データ解釈部１１１は、画像の回転が必要ではない場合には、キャッシュメモリ１１３の第一の再構成指示をキャッシュシステム１１２へ出力する。キャッシュシステム１１２は、この再構成指示を受け取ると、キャッシュバッファの本数を少なくし（たとえば２００本）、一本のキャッシュバッファの容量を実施の形態１のキャッシュバッファの容量より大きくする（たとえば、１５ｋバイト）（ステップＳ４３）。
【０１７９】
その後、実施の形態１と同様にしてデコーダ９３により画像データのデコードが行われる（ステップＳ３）。この場合、キャッシュバッファのサイズが大きいので、キャッシュバッファ内のデータの入れ替えを行う回数が減る。
【０１８０】
一方、印刷指示データ解釈部１１１は、画像の回転が必要である場合には、画像ファイル３２のデータ量がキャッシュメモリ１１３のサイズ以下であるか否かを判断する（ステップＳ４４）。
【０１８１】
印刷指示データ解釈部１１１は、画像ファイル３２のデータ量がキャッシュメモリ１１３のサイズ以下である場合、キャッシュメモリ１１３の第一の再構成指示をキャッシュシステム１１２に行わせる（ステップＳ４５）。その後、デコーダ９３により画像を回転させる順番で画像データのデコードが行われる（ステップＳ４）。この場合、画像の回転が行われるが、画像ファイル３２のすべてのデータがキャッシュされているため、キャッシュデータのヒット率は高くなり、この点についての問題は特に生じない。
【０１８２】
また、印差指示データ解釈部１１１は、画像ファイル３２のデータ量がキャッシュメモリ１１３のサイズより大きい場合、キャッシュメモリ１１３の第二の再構成指示をキャッシュシステム１１２へ出力する。キャッシュシステム１１２は、この再構成指示を受け取ると、キャッシュバッファのサイズと本数を、実施の形態１の場合と同様に設定する（ステップＳ４６）。つまり、ステップＳ４３の場合と比べ、キャッシュバッファの本数は多くなり、一本のキャッシュバッファサイズは小さくなる。
【０１８３】
その後、実施の形態１と同様にしてデコーダ９３により、画像を回転させる順番で、画像データのデコードが行われる（ステップＳ４）。このように、実施の形態２では、キャッシュメモリ１１３のサイズが画像ファイル３２のデータ量より小さく、かつ画像の回転が必要である場合にのみ、実施の形態１のキャッシュ方式で、キャッシュシステム１１２およびキャッシュメモリ１１３が動作する。
【０１８４】
なお、印刷制御データ生成部９４の動作および印刷デバイス４７による用紙５８への印刷処理については、実施の形態１の場合と同様であるので、その説明を省略する。
【０１８５】
以上のように、この実施の形態２では、キャッシュメモリ１１３のサイズが画像ファイル３２のデータ量より小さく、かつ画層の回転が必要である場合にのみ、実施の形態１のキャッシュ方式で、キャッシュシステム１１２およびキャッシュメモリ１１３が動作し、それ以上の場合では、キャッシュバッファの本数が少なくかつキャッシュバッファの容量が大きくされる。これにより、キャッシュメモリ１１３のサイズが画像ファイル３２のデータ量より小さく、かつ画像の回転が必要である場合には、実施の形態１と同様にしてキャッシュデータヒット率を高くし印刷時間を低減でき、また、そうでない場合には、キャッシュメモリ１１３のデータの出し入れの回数を少なくして印刷時間を低減することができる。
【０１８６】
なお、この実施の形態２では、キャッシュシステム１１２は、画像データにおける画像のブロック行の行数（ｍ）と同数あるいはそのブロック行の行数（ｍ）より多い数の複数のキャッシュバッファを生成している。このほかにもたとえば、複数の画像データの画像をキャリッジ５５の駆動方向に並べて印刷する場合には、キャッシュシステム１１２は、それら複数の画像データのブロック行の行数の総数と同数あるいはそのブロック行の行数の総数より多い数の複数のキャッシュバッファを生成するようにすれば、同様の効果を期待することができる。
【０１８７】
実施の形態３．
本発明の実施の形態３に係るダイレクト印刷システムは、画像ファイル３２のデータ量に応じてキャッシュメモリ１３３の構成を変更するようにしたものである。なお、ＤＳＣ１の構成および動作は、実施の形態１のものと同じであり、同一の符号を付して説明を省略する。また、プリンタ２のハードウェア構成は、実施の形態１のものと同じであり、同一の符号を付して説明を省略する。
【０１８８】
図２１は、本発明の実施の形態３のプリンタ２における記憶部４３の記憶内容を示す図である。また、図２２は、本発明の実施の形態３のダイレクト印刷システムに実現される機能を示すブロック図である。プリンタ２の記憶部４３には、印刷指示データ解釈プログラム１２１と、キャッシュシステムプログラム１２２と、デコーダプログラム６３と、印刷制御データ生成プログラム６４と、通信制御プログラム群とが記憶される。プリンタ２の通信制御プログラム群は、ＵＳＢマスストレージクラスプログラム６５を有する。
【０１８９】
デコーダプログラム６３、印刷制御データ生成プログラム６４およびＵＳＢマスストレージクラスプログラム６５は、実施の形態１のものと同じであり、同一の符号を付して説明を省略する。
【０１９０】
印刷指示データ解釈プログラム１２１は、中央処理装置４１に実行されることで印刷指示データ解釈部１３１を実現する。キャッシュシステムプログラム１２２は、中央処理装置４１に実行されることで、形成手段、読込手段および出力手段としてのキャッシュシステム１３２を実現する。これら印刷指示データ解釈部１３１およびキャッシュシステム１３２は、実施の形態１のものと基本的に同じものであるが、後述するように、画像を回転して印刷する際の動作の一部が変更されている。
【０１９１】
次に、以上のような構成を有するダイレクト印刷システムの動作を説明する。
【０１９２】
ＤＳＣ１では、印刷指示データ生成部８１と、画像データ送信部８２と、ＵＳＢマスストレージクラス８３とが実現される。また、プリンタ２では、印刷指示データ解釈部１３１と、キャッシュシステム１３２と、デコーダ９３と、印刷制御データ生成部９４と、ＵＳＢマスストレージクラス９５とが実現される。形成手段としてのキャッシュシステム１３２は、メモリ４２に、所定のサイズを有するバッファメモリとしてのキャッシュメモリ１３３を生成する。
【０１９３】
そして、プリンタ２のＵＳＢ通信Ｉ／Ｆ４６とＤＳＣ１のＵＳＢ通信Ｉ／Ｆ１９とによるコンフィグレーション処理が完了し、ＤＳＣ１の印刷指示データ生成部８１から印刷指示データ解釈部１３１へ印刷指示データが送信される。
【０１９４】
図２３は、図２２中の印刷指示データ解釈部１３１の動作を示すフローチャートである。
【０１９５】
印刷指示データ解釈部１３１は、印刷指示データが入力されると、その印刷指示データにて指定される印刷処理の制御を開始する（ステップＳ１）。具体的には、印刷指示データ解釈部１３１は、まず、画像サイズ情報の取得要求データを、画像データ送信部８２へ送信する。画像データ送信部８２は、画像サイズ情報の取得要求データを受け取ると、その取得要求データに含まれるファイル名等を抽出する。また、画像データ送信部８２は、そのファイル名のファイル３２から、その画像サイズ情報を読み込み、これを印刷指示データ解釈部１３１へ送信する。
【０１９６】
印刷指示データ解釈部１３１は、これらの情報を受信したら、画像の縦方向のピクセル数および横方向のピクセル数の情報並びに用紙５８への画像の印刷レイアウトに基づいて、画像を回転させる必要があるか否かを判断する（ステップＳ２）。
【０１９７】
そして、画像を回転する必要がないと判断した場合、実施の形態１と同様にデコードおよび印刷処理が行われる（ステップＳ３）。
【０１９８】
一方、画像を回転する必要があると判断した場合、印刷指示データ解釈部１３１は、画像の縦方向のピクセル数の情報と、印刷レイアウトとに基づいて、キャッシュメモリ１３３内のキャッシュバッファの本数および一本のキャッシュバッファの容量を演算する（ステップＳ５１）。
【０１９９】
具体的にはたとえば、用紙の給紙方向と垂直な方向に画像を並べることなく印刷する場合（たとえば１ｕｐの場合）には、印刷指示データ解釈部１３１は、画像の縦のピクセル数を１ブロックの縦のピクセル数（ここでは８）で割る。そして、印刷指示データ解釈部１３１は、その演算結果の商の値（余りがある場合には、商に１を加算した値）を、キャッシュメモリ１３３内のキャッシュバッファの本数として演算する。なお、一本のキャッシュバッファの容量は、たとえば、キャッシュメモリ１３３の容量をキャッシュバッファの本数で割り、読み込みの最小単位未満の端数を切り捨てることで得られる。
【０２００】
ほかにもたとえば、用紙の給紙方向と垂直な方向に２つの画像を並べて印刷する場合（たとえば４ｕｐの場合）には、印刷指示データ解釈部１３１は、画像の縦のピクセル数を１ブロックの縦のピクセル数（ここでは８）で割る。そして、印刷指示データ解釈部１３１は、その演算結果の商の値（余がある場合には、商に１を加算した値）の二倍を、キャッシュメモリ１３３内のキャッシュバッファの本数として演算する。
【０２０１】
なお、用紙の給紙方向と垂直な方向にｐ（ｐは自然数）個の画像を並べる場合には、１画像あたりの演算結果のｐ倍を、キャッシュメモリ１３３内のキャッシュバッファの本数として演算すればよい。また、複数の画像を並べる場合に、各画像のピクセル数が異なるときには、各画像の縦ピクセル数の和からキャッシュバッファの本数を計算するようにしてもよい。
【０２０２】
また、印刷指示データ解釈部１３１は、演算したキャッシュバッファの本数および容量の情報をキャッシュシステム１３２へ出力する。
【０２０３】
印刷指示データ解釈部１３１からキャッシュバッファの本数の情報が入力されると、形成手段としてのキャッシュシステム１３２は、キャッシュメモリ１３３内のキャッシュバッファの本数がその指示された本数および容量となるように、キャッシュメモリ１３３を再構成する。
【０２０４】
その後、実施の形態１のステップＳ４５と同様にして、ＥＸＩＦ画像データの画像は回転しながらデコードされ、その画像が印刷される（ステップＳ４）。
【０２０５】
以上のように、この実施の形態３では、印刷に係る画像データにおける画像のブロック行の数と同数のキャッシュバッファを形成し用いるので、キャッシュメモリ１３３の使用効率をより高くすることができ、画像データに応じた最適な印刷時間の短縮効果を期待することができる。
【０２０６】
なお、この実施の形態３では、キャッシュシステム１３２は、画像データにおける画像のブロック行の行数（ｍ）と同数あるいはそのブロック行の行数（ｍ）より多い数の複数のキャッシュバッファを生成している。このほかにもたとえば、複数の画像データの画像をキャリッジ５５の駆動方向に並べて印刷する場合には、キャッシュシステム１３２は、それら複数の画像データのブロック行の行数の総数と同数あるいはそのブロック行の行数の総数より多い数の複数のキャッシュバッファを生成するようにすれば、同様の効果を期待することができる。
【０２０７】
以上の各実施の形態は、本発明の好適な実施の形態であるが、本発明はこれに限定されるものではなく、種々の変形、変更が可能である。
【０２０８】
上記実施の形態では、画像を回転させる場合には、デコーダ９３はプレスキャンをしてから、デコードのためのデータの読み込みを開始している。この他にもたとえば、デコード処理の前段階において画像の画質を変更するためのＡＰＦ（Ａｕｔｏ  Ｐｉｃｔｕｒｅ  Ｆｉｎｅ）処理などの画像最適化処理をする場合には、その処理に使用するパラメータを生成するために画像データをスキャンする際に各ブロック行の先頭バイトのデータ位置をポインタバッファに格納し、デコーダ９３によるプレスキャン処理を省略するようにしてもよい。
【０２０９】
また、ほかにもたとえば、デコーダ９３は、画像を回転する場合であっても画像を回転しない場合と同様にプレスキャンをすることなく、ＥＸＩＦ画像データの先頭から順番にデータを読み込んでその画像の左端のブロック列のデコード処理を開始し、その画像の左端のブロック列のデコード処理の際に各ブロック行の左から二番目のブロックの先頭バイトのデータ位置をポインタバッファに格納し、各ブロック行の左から二番目以降のブロック列のデコード処理においてはそのポインタバッファを用いてブロック行毎の読み込み処理を行うようにしてもよい。
【０２１０】
上記各実施の形態では、ＥＸＩＦ画像データをキャッシュして印刷処理をしている。この他にもたとえば、ダイレクト印刷システムは、ＪＰＥＧ画像データ、ビットマップ形式の画像データなどを印刷してもよい。たとえば横長の画像のビットマップ形式の画像データの場合には、その画像における画像の行数はピクセル行となるので、その縦方向のピクセル数と同数あるいはそれ以上の数のキャッシュバッファを用いれば、実施の形態１と同様の効果を得ることができる。つまり、ビットマップ形式の画像データなどでは、１回のデータのキャッシュによって、キャリッジの複数回の走査で使用するデータを読み込むことができ、それによる印刷時間の短縮効果を得ることができる。
【０２１１】
上記各実施の形態では、ＤＳＣ１のカードリーダ１６に挿入された半導体メモリ２０のＥＸＩＦ画像データの画像を回転して印刷している。この他にもたとえば、本発明は、プリンタにカードリーダを設け、このカードリーダに挿入された半導体メモリ２０のＥＸＩＦ画像データの画像を回転して印刷する場合にも適用することができる。
【０２１２】
また、上記各実施の形態では、ＤＳＣ１とプリンタ２がＵＳＢにより接続されているが、その代わりに、別のインタフェースを採用してもよい。その場合、有線のインタフェースや有線の通信方式の他、ブルートゥース（商標）、赤外線通信などの無線のインタフェースや無線ＬＡＮなどの有線の通信方式を使用してもよい。また、ＤＳＣ１とプリンタ２との間のダイレクト印刷の制御コマンドやその応答などをＵＳＢマスストレージクラスを利用して行っているが、その代わりに、ＰｉｃｔＢｒｉｄｇｅ（商標）などを利用するようにしてもよい。
【０２１３】
また、上記各実施の形態では、ＤＳＣ１に画像ファイル３２が格納されているが、その代わりに、携帯電話機、音楽プレーヤ、撮影機能のないストレージ装置などといった他の電子機器を使用してもよい。その場合、その電子機器には、プリンタ２と通信可能な通信手段が設けられる。
【０２１４】
また、上記各実施の形態では、キャッシュシステム９２，１１２，１３２、デコーダ９３、印刷制御データ生成部９４は、ソフトウェアにより実現されているが、これらのうちの一部または全部を専用のハードウェアにより実現するようにしてもよい。
【０２１５】
なお、上記各実施の形態では、ＥＸＩＦ画像データ３２のデータ量としてファィルサイズを使用しているが、その代わりに、ＥＸＩＦ画像データ３２のＥＸＩＦヘッダを除いたデータ量としてもよい。
【産業上の利用可能性】
【０２１６】
本発明は、たとえばデジタルカメラとプリンタとを直接に接続し、そのデジタルカメラに記憶されている画像データファイルに基づく画像をプリンタで印刷するダイレクト印刷システムに利用することができる。
【図面の簡単な説明】
【０２１７】
【図１】本発明の実施の形態１に係るダイレクト印刷システムを示す図である。
【図２】図１中のＤＳＣのハードウェア構成を示すブロック図である。
【図３】図２中のフラッシュメモリの記憶内容を示す図である。
【図４】図２のＤＳＣにおいて撮像時に実現される機能を示すブロック図である。
【図５】図４中のＥＸＩＦ画像データ生成部による圧縮処理の説明図である。
【図６】図１中のプリンタのハードウェア構成を示すブロック図である。
【図７】図１中のプリンタの内部機構を示す透過斜視図である。
【図８】図６中の記憶部の記憶内容を示す図である。
【図９】図１のダイレクト印刷システムに実現される機能を示すブロック図である。
【図１０】図６中のメモリに実現されるキャッシュメモリの構成を示す図である。
【図１１】図１０中の印刷指示データ解釈部の動作を示すフローチャートである。
【図１２】画像のピクセル数について説明する図である。
【図１３】図１０中のデコーダの動作を示すフローチャートである。
【図１４】図１０中のキャッシュシステムの動作を示すフローチャートである。
【図１５】画像を回転しない場合でのキャッシュメモリの状態変化の一例を示す図。
【図１６】画像を回転する場合におけるキャッシュメモリの状態変化の一例を示す図。
【図１７】他のキャッシュ方式でのキャッシュメモリの状態変化の比較例を示す図。
【図１８】本発明の実施の形態２に係るダイレクト印刷システムのプリンタの記憶部の記憶内容を示す図。
【図１９】本発明の実施の形態２に係るダイレクト印刷システムに実現される機能を示すブロック図。
【図２０】図１９中の印刷指示データ解釈部の動作を示すフローチャートである。
【図２１】本発明の実施の形態３に係るダイレクト印刷システムのプリンタの記憶部の記憶内容を示す図。
【図２２】本発明の実施の形態３に係るダイレクト印刷システムに実現される機能を示すブロック図。
【図２３】図２２中の印刷指示データ解釈部の動作を示すフローチャートである。
【符号の説明】
【０２１８】
１  ＤＳＣ（画像供給装置）、２  プリンタ、１９  ＵＳＢ通信Ｉ／Ｆ（第一の通信手段）、２０  半導体メモリ、４６  ＵＳＢ通信Ｉ／Ｆ（第二の通信手段）、５５  キャリッジ、７２  キャッシュバッファ（画像データバッファ）、８２  画像データ送信部（送信手段）、９３  デコーダ（要求手段）、９２  キャッシュシステム（読込手段、出力手段）、１１３，１３３  キャッシュメモリ（バッファメモリ）、１１２，１３２  キャッシュシステム（形成手段、読込手段、出力手段）
【図１】
2005262651.tif 000003
【図２】
2005262651.tif 000004
【図３】
2005262651.tif 000005
【図４】
2005262651.tif 000006
【図５】
2005262651.tif 000007
【図６】
2005262651.tif 000008
【図７】
2005262651.tif 000009
【図８】
2005262651.tif 000010
【図９】
2005262651.tif 000011
【図１０】
2005262651.tif 000012
【図１１】
2005262651.tif 000013
【図１２】
2005262651.tif 000014
【図１３】
2005262651.tif 000015
【図１４】
2005262651.tif 000016
【図１５】
2005262651.tif 000017
【図１６】
2005262651.tif 000018
【図１７】
2005262651.tif 000019
【図１８】
2005262651.tif 000020
【図１９】
2005262651.tif 000021
【図２０】
2005262651.tif 000022
【図２１】
2005262651.tif 000023
【図２２】
2005262651.tif 000024
【図２３】
2005262651.tif 000025