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