JP2006343922A - 画像データ取得装置、印刷装置および画像データ取得方法 - Google Patents
画像データ取得装置、印刷装置および画像データ取得方法 Download PDFInfo
- Publication number
- JP2006343922A JP2006343922A JP2005167848A JP2005167848A JP2006343922A JP 2006343922 A JP2006343922 A JP 2006343922A JP 2005167848 A JP2005167848 A JP 2005167848A JP 2005167848 A JP2005167848 A JP 2005167848A JP 2006343922 A JP2006343922 A JP 2006343922A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- data
- image
- acquisition
- printing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Television Signal Processing For Recording (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】 印刷処理において取得が要求された画像データを効率よく供給すること。
【解決手段】 画像データ取得装置の取得手段92は、印刷のために、画像ファイル内の画像データを取得する。バッファメモリ71は、取得手段92により取得された画像データを記憶する。供給手段92は、印刷のための画像データの取得要求に係る画像データがバッファメモリ71に記憶されている場合、バッファメモリ71からその取得要求に係る画像データを読み込んで取得要求元へ供給し、取得要求に係る画像データがバッファメモリ71に記憶されていない場合、その取得要求に係る画像データを取得手段92に取得させて取得要求元へ供給する。
【選択図】 図9
【解決手段】 画像データ取得装置の取得手段92は、印刷のために、画像ファイル内の画像データを取得する。バッファメモリ71は、取得手段92により取得された画像データを記憶する。供給手段92は、印刷のための画像データの取得要求に係る画像データがバッファメモリ71に記憶されている場合、バッファメモリ71からその取得要求に係る画像データを読み込んで取得要求元へ供給し、取得要求に係る画像データがバッファメモリ71に記憶されていない場合、その取得要求に係る画像データを取得手段92に取得させて取得要求元へ供給する。
【選択図】 図9
Description
本発明は、画像データ取得装置、印刷装置および画像データ取得方法に関する。
特許文献1および特許文献2には、印刷システムが開示されている。これらの従来の印刷システムは、USBストレージクラスデバイスのデジタルカメラと、USBホストのプリンタとを、USB(Universal Serial Bus)で直接に接続する。そして、この従来の印刷システムでは、カメラは、そのボタンへの操作に応じてプリンタに対する印刷要求を生成し、プリンタは、この要求に基づいて印刷処理に必要となる画像データのファイルをカメラから読み込み、その画像データに基づいて画像を印刷する。
プリンタは、デジタルカメラにおいて印刷のために選択された画像を印刷するために、その画像のデータをデジタルカメラから何度も取得しなければならないことがある。たとえば、画像を90度回転して印刷する場合において、その印刷する画像の画像データがJPEG(Joint Photographic Coding Experts Group)方式で圧縮されたものである場合、画像データ中の各行の先頭データ位置が一定の位置とはならない。そのため、プリンタは、その画像データを印刷のために取得する前に、その画像データにおける各行の先頭データ位置を特定するために画像データを取得しなければならない。この例のように、プリンタは、1回の印刷処理中に、デジタルカメラから同じ画像の画像データを何度も取得しなければならないことがある。
本発明は、印刷処理において取得が要求された画像データを効率よく供給する画像データ取得装置、それを用いた印刷装置および画像データ取得方法を得ることを目的とする。
本発明に係る画像データ取得装置は、印刷のために、画像ファイル内の画像データを取得する取得手段と、取得手段により取得された画像データを記憶するバッファメモリと、印刷のための画像データの取得要求に係る画像データがバッファメモリに記憶されている場合、バッファメモリからその取得要求に係る画像データを読み込んで取得要求元へ供給し、取得要求に係る画像データがバッファメモリに記憶されていない場合、その取得要求に係る画像データを取得手段に取得させて取得要求元へ供給する供給手段と、を有するものである。
この構成を採用すれば、ある画像データの取得要求に基づいて取得手段が画像データを取得した後には、その画像データをバッファメモリから読み込んで供給することができる。したがって、同じ画像データの取得要求が複数回あった場合、取得手段によるその画像データの取得回数は、取得要求の回数より減らすことが可能となる。そして、取得手段による画像データの取得回数が取得要求の回数より少なくなることで、印刷処理において取得が要求された画像データを効率よく取得要求元へ供給することができる。
本発明に係る画像データ取得装置は、上述した発明の構成に加えて、画像データが、複数の画素で構成される画像のデータがその画像における複数の画素の配置に従った所定の順番で配列されたデータであり、バッファメモリが、複数本の画像バッファを有し、取得手段が、画像バッファの1本分の画像データを所定の順番に沿って取得するものである。
この構成を採用すれば、取得手段は、画像バッファのサイズ毎に画像データを取得する。したがって、バッファメモリの記憶容量が画像データのデータ量より小さく、バッファメモリが画像データのすべてを記憶することができない場合であっても、取得手段が取得した画像データをバッファメモリに記憶し、このバッファメモリから読み出した画像データを、効率よく取得要求元へ供給することができる。
本発明に係る画像データ取得装置は、上述した発明の各構成に加えて、取得手段が、画像バッファの1本分の画像データの先頭部分に、取得を要求された画像データが含まれるように、画像データを取得するものである。
この構成を採用すれば、取得手段が取得する画像データの後部分には、取得を要求された画像データに続く画像データが含まれる。印刷処理において、画像データは画像ファイルの先頭から順番に使用される場合が多いため、画像バッファから、効率よく、画像データを供給することができることが多くなる。
本発明に係る画像データ取得装置は、上述した発明の各構成に加えて、バッファメモリが、複数本の画像バッファのすべてに画像データが記憶されている場合には、その中で最も古い画像データを記憶する画像バッファに、取得手段が新たに取得した画像データを上書きして記憶するものである。
この構成を採用すれば、バッファメモリには、取得手段が取得したデータの中の最新のものを記憶させることができる。印刷処理において、画像データは画像ファイルの先頭から順番に使用される場合が多いため、画像バッファから、効率よく、画像データを供給することができることが多くなる。
本発明に係る画像データ取得装置は、上述した発明の各構成に加えて、取得手段が、デジタルカメラ、半導体メモリ、携帯端末あるいはコンピュータから、印刷に使用する画像データを取得するものである。
この構成を採用すれば、デジタルカメラ、半導体メモリ、携帯端末あるいはコンピュータにある画像ファイルに基づき画像を効率よく印刷することができる。
本発明に係る印刷装置は、取得を要求された画像データをその要求元へ供給する上述した発明に係る各構成の画像データ取得装置と、画像データ取得装置に対して印刷する画像の画像データの取得を要求し、それに応じて供給された画像データを用いて印刷制御データを生成する画像処理手段と、印刷制御データに基づく印刷を実行する印刷手段と、を有するものである。
この構成を採用すれば、印刷処理において取得が要求された画像データを効率よく画像処理手段へ供給し、効率よく印刷をすることができる。
本発明に係る画像データ取得方法は、印刷のための画像データの取得要求を受け取るステップと、取得要求に係る画像データがバッファメモリに記憶されている場合、バッファメモリからその取得要求に係る画像データを読み込んで取得要求元へ供給し、取得要求に係る画像データがバッファメモリに記憶されていない場合、その取得要求に係る画像データを、画像ファイル内の画像データを取得する取得手段に取得させて取得要求元へ供給するとともにバッファメモリに記憶するステップと、を有するものである。
この方法を採用すれば、ある画像データの取得要求に基づいて画像データを取得した後には、その画像データをバッファメモリから読み込んで供給することができる。したがって、同じ画像データの取得要求が複数回あった場合、画像データの取得回数は、取得要求の回数より減らすことが可能となる。そして、画像データの取得回数が取得要求の回数より少なくなることで、印刷処理において取得が要求された画像データを効率よく取得要求元へ供給することができる。
以下、本発明の実施の形態に係る画像データ取得装置、印刷装置および画像データ取得方法を、図面に基づいて説明する。印刷装置は、プリンタを例として説明する。画像データ取得装置は、プリンタの一部として説明する。画像データ取得方法は、プリンタの動作の一部として説明する。
図1は、本発明の実施の形態に係るダイレクト印刷システムを示す図である。ダイレクト印刷システムは、デジタルスチルカメラ(DSC:Digital Still Camera)1と、印刷装置としてのプリンタ2とを有する。また、DSC1とプリンタ2とは、USBケーブル3にて接続される。
図2は、図1中のDSC1のハードウェア構成を示すブロック図である。DSC1は、プログラムを実行する中央処理装置(CPU:Central Processing Unit)11と、プログラムを記憶するフラッシュメモリ12と、I/O(Input/Output)ポート13と、これらを接続するシステムバス14とを有する。
DSC1のI/Oポート13には、CCD(Charge Coupled Device)15と、カードリーダ16と、液晶モニタ17と、入力デバイス18と、USB通信I/F(interface:インタフェース)19とが接続される。
CCD15は、受光部を有する。この受光部は、複数の受光素子を有する。この複数の受光素子は、受光部に、その全体が略長方形となるように縦方向および横方向に並べて配列されている。各受光素子は、受光光量に応じたレベル信号を出力する。CCD15は、複数の受光素子から出力されるレベル信号に基づいて、受光素子と同数のピクセルデータを生成する。また、CCD15は、この生成した複数のピクセルデータを1つの撮像データとして出力する。
カードリーダ16は、挿入部を有する。この挿入部には、カード形状に形成された半導体メモリ20を挿入することができる。カード形状に形成された半導体メモリ20としては、たとえばフラッシュメモリなどがある。そして、カードリーダ16は、挿入部に挿入されている半導体メモリ20にデータを書き込んだり、挿入部に挿入されている半導体メモリ20からデータを読み出したりする。
液晶モニタ17は、表示部を有する。液晶モニタ17は、表示データに基づいて、表示部に、その表示データに基づく画像を表示する。
入力デバイス18は、複数の入力キーやタッチパネルを有する。入力デバイス18は、ユーザがプッシュ操作した入力キーに応じた入力データを出力する。また、入力デバイス18は、タッチパネルのユーザにより押圧された位置に応じた入力データを出力する。
USB通信I/F19は、USBコネクタを有する。USBコネクタには、USBケーブル3が接続される。USB通信I/F19は、USBコネクタから信号が入力されるとその信号からデータを抽出する。また、USB通信I/F19は、送信するデータに基づいて信号を生成し、この信号をUSBコネクタへ出力する。
図3は、図2中のフラッシュメモリ12の記憶内容を示す図である。DSC1のフラッシュメモリ12には、EXIF(Exchangeable Image File Format)画像データ生成プログラム21と、印刷指示データ生成プログラム22と、画像データ送信プログラム23と、通信制御プログラム群とが記憶される。DSC1の通信制御プログラム群は、USBマスストレージクラスプログラム24を有する。
EXIF画像データ生成プログラム21は、中央処理装置11に実行されることでEXIF画像データ生成部を実現する。EXIF画像データ生成部は、CCD15から出力された撮像データを圧縮してJPEG形式の画像データを生成し、この画像データにEXIFヘッダやサムネイル画像データを付加したEXIF画像データを生成し、このEXIF画像データをカードリーダ16へ出力する。EXIFヘッダには、画像の縦方向のピクセル数および横方向のピクセル数、撮影条件などを含めることができる。
印刷指示データ生成プログラム22は、中央処理装置11に実行されることで印刷指示データ生成部を実現する。印刷指示データ生成部は、液晶モニタ17に画像選択画面や印刷条件選択画面を表示する。また、印刷指示データ生成部は、印刷指示データを生成する。この印刷指示データには、画像選択画面に基づいて選択された画像を、印刷条件選択画面に基づいて選択された印刷条件で印刷するための印刷指示が含まれる。
画像データ送信プログラム23は、中央処理装置11に実行されることで、画像データ送信部を実現する。画像データ送信部は、送信する画像データのファイルとそのファイルから抽出するデータ位置とが指定されると、そのファイルのそのデータ位置のデータを抽出する。また、画像データ送信部は、抽出したデータを出力する。
画像データのファイルは、あるデータ量を有する。このファイルのデータ位置とは、この画像ファイルの先頭ビットから数えた場合におけるそのあるビットの順番を示す値である。たとえば、データ位置として10kバイトが指定されると、画像データ送信部は、ファイルの先頭ビットから10kバイト目の所定の長さのデータを抽出する。
USBマスストレージクラスプログラム24は、中央処理装置11に実行されることでUSBマスストレージクラスを実現する。USBマスストレージクラスでは、ホストとデバイスとの間でデータをバルク転送したりすることができる。なお、本実施の形態では、サブクラスとしては、SCSIサブクラスが使用される。
図4は、図2のDSC1において撮像時に実現される機能を示すブロック図である。図4に示すように、撮像時には、DSC1においてEXIF画像データ生成部31が実現される。
CCD15は、EXIF画像データ生成部31へ撮像データを出力する。EXIF画像データ生成部31は、この撮像データをJPEG方式で圧縮し、EXIF画像データを生成する。カードリーダ16は、このEXIF画像データに所定のファイル名をつけて、このEXIF画像データを半導体メモリ20に書き込む。カードリーダ16は、半導体メモリ20内の複数のEXIF画像データのファイル同士32が互いに区別できるように、その複数のEXIF画像ファイル32には、互いに異なるファイル名を付加する。
図5は、図4中のEXIF画像データ生成部31による圧縮処理の説明図である。図5(A)は、画像における複数のピクセルの配列を説明する図である。CCD15が出力する撮像データの画像は、図5(A)に示すように、縦方向のピクセル数より横方向のピクセル数が多い、全体が横長の長方形の画像を構成するものとして説明する。
このような撮像データが入力されると、EXIF画像データ生成部31は、図5(B)に示すように、8×8ピクセルを1つのブロックとして、そのブロック毎に空間周波数を演算する。なお、1ブロックあたりのピクセル数は、8×8に限られるものではなく、たとえば16×16などであってもよい。
また、EXIF画像データ生成部31は、図5(B)に示すように、横長の画像の長辺に沿った図中上側のブロックの行から順番に、且つ、同じブロック行の中では図中左側のブロックから順番に、ブロックの空間周波数を演算する。図5(B)は、ブロックの画像上の配置を示す図である。
そして、図5(B)に示すようにm行n列(m、nは、1以上の整数)のブロックのすべてについて空間周波数を演算したら、EXIF画像データ生成部31は、画像データの総データ量が所定のデータ量以下となるように空間周波数のデータを間引く。EXIF画像データ生成部31は、JPEG形式の画像データの総データ量が所定量以下となるまでこのデータの間引き処理を繰り返す。以上のエンコード処理によって、EXIF画像データ生成部31は、所定のデータ量以下のデータ量のJPEG形式の画像データを生成する。なお、JPEG形式のデータにおいて複数のブロックのデータ量は、一定の量に揃わない。
図5(C)は、EXIF画像データ上での各ブロックのデータ配置を示す図である。EXIF画像データの先頭には、EXIFヘッダのデータが格納される。このEXIFヘッダの後には、複数のブロックのデータがそのエンコード順にしたがって格納されている。つまり、EXIFヘッダの後には、画像の左上のブロック(1)のデータが続く。画像の左上のブロック(1)のデータの次には、そのブロックの右隣りのブロック(2)のデータが続く。画像の一番上のブロック行の右端のブロック(n)のデータの次には、画像の上から二行目のブロック行の左端のブロック(n+1)のデータが続く。複数のブロックデータの最後には、画像の右下のブロック(m×n)のデータがくる。複数のブロックの後には、ファイルのデータの終わりを示すEOF(End Of File)データが格納される。
なお、このように撮像データをJPEG形式に圧縮し、その圧縮された画像データを半導体メモリ20に記憶させた場合、その画像における画像の行数は、ブロック行の行数となる。
図6は、図1中のプリンタ2のハードウェア構成を示すブロック図である。プリンタ2は、中央処理装置41と、中央処理装置41がプログラムの実行の際に利用するメモリ42と、プログラムを記憶する記憶部43と、I/Oポート44と、これらを接続するシステムバス45とを有する。
プリンタ2のI/Oポート44には、USB通信I/F46と、印刷手段としての印刷デバイス47とが接続される。プリンタ2のUSB通信I/F46は、DSC1のUSB通信I/F19と同様の機能を有するものであり、その説明を省略する。ただし、プリンタ2のUSB通信I/F46は、USBホストとして機能し、DSC1のUSB通信I/F19は、USBデバイスとして機能する。
図7は、図1中のプリンタ2の内部機構を示す透過斜視図である。印刷デバイス47は、給紙トレイ51と、給紙ローラ52と、搬送ローラ対53と、排紙トレイ54と、キャリッジ55と、キャリッジ保持部材56とを有する。給紙ローラ52と、搬送ローラ対53と、キャリッジ保持部材56と、キャリッジ55とは、プリンタ2の筐体57の内部に配設される。
給紙トレイ51には、用紙58が載置される。給紙ローラ52は、給紙トレイ51上の用紙58をニップし、給紙トレイ51内の一番上の用紙58を排紙トレイ54の方向へ送り出す。搬送ローラ対53は、この給紙トレイ51から送り出された用紙58をさらに排紙トレイ54の方向へ送る。これにより、給紙トレイ51に載置された用紙58は、1枚ずつ給紙トレイ51から排紙トレイ54へ搬送され、排紙トレイ54に排出される。
キャリッジ保持部材56は、長い棒形状に形成される。また、このキャリッジ保持部材56は、搬送ローラ対53と排紙トレイ54との間の用紙58の搬送経路の上方において、その長尺方向が搬送ローラ対53の伸在方向と略平行となる姿勢で配設される。キャリッジ55は、このキャリッジ保持部材56に移動可能に取り付けられる。これにより、キャリッジ55は、搬送ローラ対53の伸在方向に移動することができる。
キャリッジ55は、インクタンクと、複数のノズルとを有する。ノズルは、インクタンク内のインクを吐出する。また、複数のノズルは、キャリッジ55の移動方向と垂直な方向に沿って並べて形成される。なお、複数のノズルは、複数の列に分けて並べられていてもよい。
このような構成を有する印刷デバイス47は、印刷制御データに基づいて搬送ローラ対53を回転させて、キャリッジ55に対向する位置(印刷位置)に用紙58を搬送する。また、印刷デバイス47は、印刷制御データに基づいてキャリッジ55を移動させながら、所定のノズルからインクを吐出させる。そして、キャリッジ55に1印刷行分のインクを吐出させたら、印刷デバイス47は、搬送ローラ対53を回転させて用紙58をその1印刷行分だけ送る。また、印刷デバイス47は、次の印刷制御データに基づいてキャリッジ55を移動させながら、所定のノズルからインクを吐出させる。このように1印刷行ずつのキャリッジ55からのインクの吐出制御と、1印刷行ずつの用紙58送りとを交互に繰り返すことで、印刷デバイス47は、用紙58の紙面に印刷制御データに基づく画像を形成する。
また、印刷デバイス47は、用紙58へのインクの吐出が完了したら、搬送ローラ対53を回転させて、印刷位置から排紙トレイ54へ用紙58を排出する。これにより、印刷制御データに基づく画像が形成された用紙58が排紙トレイ54に排出されることになる。
図8は、図6中の記憶部43の記憶内容を示す図である。プリンタ2の記憶部43には、印刷指示データ解釈プログラム61と、キャッシュシステムプログラム62と、デコーダプログラム63と、印刷制御データ生成プログラム64と、通信制御プログラム群とが記憶される。プリンタ2の通信制御プログラム群は、USBマスストレージクラスプログラム65を有する。図9は、図1のダイレクト印刷システムに実現される機能を示すブロック図である。図8に示す各種プログラムを実行することで、図9におけるプリンタ2側の各種機能が実現される。
USBマスストレージクラスプログラム65は、中央処理装置41に実行されることでUSBマスストレージクラス95を実現する。なお、本実施の形態では、サブクラスとしてSCSIサブクラスが使用される。
印刷指示データ解釈プログラム61は、中央処理装置41に実行されることで印刷指示データ解釈部91を実現する。印刷指示データ解釈部91は、印刷指示データを解釈して、その印刷指示データにて指定された印刷処理をプリンタ2に実行させる。
キャッシュシステムプログラム62は、中央処理装置41に実行されることで、取得手段および供給手段としてのキャッシュシステム92を実現する。キャッシュシステム92は、メモリ42に、バッファメモリとしてのキャッシュメモリ71を生成する。このキャッシュメモリ71は、所定本数の画像バッファとしてのキャッシュバッファ72を有する。各キャッシュバッファ72には、記憶しているデータのファイル名(ファイルID)およびデータ位置の範囲を示す情報と、キャッシュした順番(たとえば時刻)の情報とが対応付けられる。
図10は、図6中のメモリ42に生成されるキャッシュメモリ71の構成を示す図である。図10のキャッシュメモリ71は、P本のキャッシュバッファ72を有する。また、各キャッシュバッファ72は、そのサイズ分のデータを記憶する領域として生成される。
なお、キャッシュバッファ72の本数Pは、印刷可能な画像データサイズの上限値に対応する所定の大きな値とされる。たとえば、ブロックの縦横ピクセル数がhであるEXIF(JPEG)形式の画像データの場合、画像処理手段としてのデコーダ93によりデコード可能な画素数(画像の一辺の画素数)がαとし、画像の縦横比が3:4とすると、Pは、値(α×3/4)/h(=α/h×3/4)の小数点以下を切り上げた整数とされる。あるいは4upの場合を想定して、たとえば、ブロックの縦横ピクセル数がhであるEXIF(JPEG)形式の画像データの場合、デコーダ93によりデコード可能な画素数(画像の一辺の画素数)がαとし、画像の縦横比が3:4とすると、Pは、値(α×3/4)/h×2(=α/h×3/2)の小数点以下を切り上げた整数とされる。
また、キャッシュシステム92は、デコーダ93からデータの出力要求があったら、まず、その取得要求に係るデータがキャッシュメモリ71に記憶されているか否かを確認する。そして、取得要求に係るデータがキャッシュメモリ71に記憶されている場合には、キャッシュシステム92は、そのデータをキャッシュメモリ71から読み出して出力する。
取得要求に係るデータがキャッシュメモリ71に記憶されていない場合には、キャッシュシステム92は、その取得要求に係るデータが先頭となるように1つのキャッシュバッファ72のサイズに等しいバイト数のデータの送信要求を生成する。なお、この送信要求では、そのキャッシュするデータのファイル名(あるいはファイルID)も指定される。
また、キャッシュシステム92は、要求したデータを受信すると、空いているキャッシュバッファ72を選択して、その選択したキャッシュバッファ72に受信したデータを格納する。なお、空いているキャッシュバッファ72が無い場合には、キャッシュシステム92は、最も早くキャッシュしたキャッシュバッファ72を選択し、その選択したキャッシュバッファ72に受信したデータを格納する。FIFO(First In First Out:先読先出)方式でキャッシュメモリ71が更新される。また、キャッシュシステム92は、その新たなデータを格納したキャッシュバッファ72からあるいはUSBホスト95から出力要求に係るデータを取得し、デコーダ93へ出力する。
図8に示すデコーダプログラム63は、中央処理装置41に実行されることで、デコーダ93を実現する。デコーダ93は、EXIF画像データを復号化し、ロウ(RAW)画像データを生成する。復号化後の画像データでは、各ピクセルのデータが、データとしてピクセル毎に互いに独立した状態に分かれている。データがピクセル毎に分かれている画像データとしては、たとえば、ビットマップ形式の画像データ、TIFF(Tagged Image File Format)形式の画像データなどがある。
印刷制御データ生成プログラム64は、中央処理装置41に実行されることで印刷制御データ生成部94を実現する。印刷制御データ生成部94は、データがピクセル毎に分かれている画像データと印刷のレイアウト情報とに基づいて、印刷デバイス47のキャリッジ55および搬送ローラ対53を制御するための印刷制御データを生成する。
次に、以上のような構成を有するダイレクト印刷システムの動作を説明する。
DSC1のUSB通信I/F19とプリンタ2のUSB通信I/F46とがUSBケーブル3で接続される。そして、DSC1では、印刷指示データ生成部81と、画像データ送信部82と、USBマスストレージクラス83とが実現される。また、プリンタ2では、印刷指示データ解釈部91と、キャッシュシステム92と、デコーダ93と、印刷制御データ生成部94と、USBマスストレージクラス95とが実現される。キャッシュシステム92は、キャッシュメモリ71を生成する。
プリンタ2のUSB通信I/F46は、DSC1のUSB通信I/F19へ、USBのディスクリプタの送信要求を送信する。
USB通信I/F19は、このディスクリプタの送信要求に応じて、DSC1のディスクリプタを出力する。DSC1のディスクリプタは、プリンタ2のUSB通信I/F46へ送信される。プリンタ2のUSB通信I/F46は、受信したDSC1のディスクリプタに基づいて、エンドポイントと呼ばれる通信バッファを生成する。このエンドポイントには、USBマスストレージクラス83,95同士がデータをバルク転送するために使用するものが含まれている。これにより、USBのコンフィグレーション処理は、完了する。
印刷指示データ生成部81は、まず、半導体メモリ20から、半導体メモリ20に記憶されているEXIF画像ファイル32のファイル名のリストを読み込み、このファイル名のリストを割り付けたEXIF画像ファイル32の選択画面の表示データを液晶モニタ17に出力する。これにより、液晶モニタ17には、EXIF画像ファイル32の選択画面が表示される。なお、印刷指示データ生成部81は、ファイル名の替わりにサムネイル画像を読み込み、サムネイル画像を割り付けたEXIF画像ファイル32の画像選択画面を液晶モニタ17に表示させてもよい。
ユーザは、入力キーあるいはタッチパネルを操作して、液晶モニタ17に表示されているファイル名のリストの中から、ファイル名を選択する。この選択操作に応じて、入力デバイス18は、入力データを生成する。印刷指示データ生成部81は、入力データに基づいて、ファイル名を選択する。なお、ユーザが複数のファイル名を選択する操作をした場合には、印刷指示データ生成部81は、その複数のファイル名を選択する。
画像を選択した後、印刷指示データ生成部81は、印刷条件選択画面を液晶モニタ17に表示させる。ユーザの操作に応じて入力デバイス18は、入力データを生成する。この入力データに基づいて、印刷指示データ生成部81は、印刷条件を選択する。なお、印刷条件としては、たとえば画像の印刷品質(高画質、標準など)、用紙58の種類(A4、B5、L判など)、1枚の用紙58に印刷する画像のレイアウト(1up、2up、4upなど)などがある。
画像および印刷条件を選択したら、印刷指示データ生成部81は、印刷指示データを生成する。
印刷指示データを生成した後、印刷指示データ生成部81は、この生成した印刷指示データをUSBマスストレージクラス83によりプリンタ2へ送信する。
プリンタ2のUSBマスストレージクラス95は、印刷指示データを受信すると、印刷指示データを印刷指示データ解釈部91へ出力する。なお、この印刷指示データの送信は、たとえば特開2003−256154号公報と同様の方法を利用すればよい。
図11は、図10中の印刷指示データ解釈部91の動作を示すフローチャートである。
印刷指示データ解釈部91は、印刷指示データが入力されると、その印刷指示データにて指定される印刷処理の制御を開始する(ステップS1)。具体的には、印刷指示データ解釈部91は、まず、印刷指示データの中からファイル名(あるいはファイルID)を抽出し、そのファイル名等のファイルの画像サイズ情報の取得要求データを生成する。
この画像サイズ情報の取得要求データは、SCSIホスト97からプリンタ2のUSBマスストレージクラス95へ渡され、プリンタ2のUSBマスストレージクラス95により、DSC1のUSBマスストレージクラス83へ転送される。DSC1のUSBマスストレージクラス83は、この画像サイズ情報の取得要求データを画像データ送信部82へ出力する。
画像データ送信部82は、画像サイズ情報の取得要求データを受け取ると、その取得要求データに含まれるファイル名を抽出する。また、画像データ送信部82は、そのファイル名のファイル32のEXIFヘッダから、画像の縦方向のピクセル数および横方向のピクセル数を読み込み、この画像の縦方向のピクセル数および横方向のピクセル数の情報を出力する。
この画像の縦方向のピクセル数および横方向のピクセル数の情報は、DSC1のUSBマスストレージクラス83によりプリンタ2へ送信され、プリンタ2のUSBマスストレージクラス95により印刷指示データ解釈部91に入力される。
画像の縦方向のピクセル数と横方向のピクセル数の情報が入力されると、印刷指示データ解釈部91は、印刷指示データに含まれるレイアウト情報とそれらの縦横の各ピクセル数とに基づいて、画像を回転して印刷するか否かを判断する(ステップS2)。
たとえば、キャリッジ走査方向が用紙58の短辺と平行であって、印刷レイアウトが1upまたは4upである場合、画像の縦方向のピクセル数が横方向のピクセル数より小さいときには、印刷指示データ解釈部91は、画像を回転すると判断し、画像の縦方向のピクセル数が横方向のピクセル数以上であるときには、印刷指示データ解釈部91は、画像を回転しないと判断する。
また、たとえば、キャリッジ走査方向が用紙58の短辺と平行であって、印刷レイアウトが2upまたは8upである場合、画像の縦方向のピクセル数が横方向のピクセル数以下であるときには、印刷指示データ解釈部91は、画像を回転しないと判断し、画像の縦方向のピクセル数が横方向のピクセル数より大きいときには、印刷指示データ解釈部91は、画像を回転すると判断する。
図12は、画像のピクセル数について説明する図である。図12(A)に示すように、画像の横ピクセル数は、エンコード方向に沿った一辺(つまりブロック行)のピクセル数であり、画像の縦ピクセル数は、エンコード方向に対して垂直な一辺(つまりブロック列)のピクセル数である。
また、画像を回転すると判断する場合には、図12(B)に示すように、キャリッジの走査方向(つまり1回に印刷するライン向き)と画像データのエンコード方向に対応する画像201上の方向とが垂直となる場合である。画像データのエンコード方向は、複数の画素で構成される画像データ中での、複数の画素の配列方向である。
画像を回転する必要がないと判断した場合、印刷指示データ解釈部91は、ファイル名を指定して、そのファイル名のファイル32に含まれるEXIF画像データをデコードする指示をデコーダ93へ出力する(ステップS3)。つまり、印刷指示データ解釈部91は、画像を回転することなくデコード処理を行う指示をデコーダ93へ出力する。
また、画像を回転する必要があると判断した場合、印刷指示データ解釈部91は、ファイル名(あるいはファイルID)を指定するとともに、そのファイル名等のファイル32に含まれるEXIF画像データの画像を回転しながらデコードする指示をデコーダ93へ出力する(ステップS4)。
図13は、図10中のデコーダ93の動作を示すフローチャートである。図14は、図10中のキャッシュシステム92の動作を示すフローチャートである。
図13に示すように、デコーダ93は、まず、印刷指示データ解釈部91からのデコード指示に画像を回転させる指示が含まれているか否かを判断する(ステップS11)。
画像を回転させる指示が含まれていない場合、デコーダ93は、EXIF画像データの読み込みを開始する(ステップS12)。具体的には、デコーダ93は、ファイル名を指定して、そのファイルの先頭から1ワード分のデータを出力する指示をキャッシュシステム92へ出力する。
図14に示すように、キャッシュシステム92は、ファイルの先頭から1ワード分のデータを出力する指示が入力されると、その指示に係る1ワード分のデータがキャッシュメモリ71内に格納されているか否かを判断する(ステップS31)。指定されたファイル名のEXIF画像ファイル32をはじめて読み込む場合には、そのファイルのデータはキャッシュメモリ71に読み込まれていない。したがって、キャッシュシステム92は、その指示に係る1ワード分のデータがキャッシュメモリ71内に格納されていないと判断する。
指示に係る1ワード分のデータがキャッシュメモリ71内に格納されていない場合、キャッシュシステム92は、データの送信要求を生成する(ステップS32)。このデータの送信要求には、要求に係るファイル名と、読み込むデータのデータ位置の範囲(たとえば読み込むデータ位置の範囲の先頭バイトのデータ位置と最終バイトのデータ位置とを組み合わせたもの)とが含まれる。最初のデータの送信要求では、読み込むデータの先頭バイトとしてファイルの先頭バイトが指定され、最終バイトとしてキャッシュバッファ72のサイズに相当するバイトが指定される。
このデータの送信要求は、キャッシュシステム92から出力された後、プリンタ2のUSBマスストレージクラス95、プリンタ2のUSB通信I/F46、DSC1のUSB通信I/F19およびDSC1のUSBマスストレージクラス83を介して、画像データ送信部82へ送信される。
画像データ送信部82は、データの送信要求が入力されると、その要求に係るデータを半導体メモリ20から読み込む。この最初のデータの要求に基づいて、画像データ送信部82は、指定されたファイル名のEXIF画像ファイル32の先頭バイトから、キャッシュバッファ72のサイズに相当するバイトまでのデータを読み込む。
画像データ送信部82に読み込まれたデータは、画像データ送信部82から出力された後、DSC1のUSBマスストレージクラス83、DSC1のUSB通信I/F19、プリンタ2のUSB通信I/F46およびプリンタ2のUSBマスストレージクラス95を介して、キャッシュシステム92へ送信される。
キャッシュシステム92は、要求していたデータが入力されると、そのデータを空いているキャッシュバッファ72に書き込む(ステップS33)。また、キャッシュシステム92は、そのキャッシュバッファ72に格納したデータのファイル名および格納しているデータ位置の範囲を示す情報と、キャッシュした時刻の情報とを記憶する。なお、空いているキャッシュバッファ72が無い場合には、キャッシュシステム92は、最も古いデータをキャッシュしたキャッシュバッファ72を選択し、その選択したキャッシュバッファ72に受信したデータを上書きする。
そして、キャッシュシステム92は、そのデータをデコーダ93へ出力する(ステップS34)。
キャッシュシステム92に要求した1ワード分のデータがキャッシュシステム92から入力されると、図13に示すように、デコーダ93は、そのデータの入力によって、ブロック1つ分のすべてのデータの読み込みが完了したか否かを判断する(ステップS13)。そして、デコーダ93は、JPEGの符号化ブロック1つ分のすべてのデータの読み込みが完了するまで、次の1ワード分のデータの出力要求をキャッシュシステム92へ繰り返し出力する。
キャッシュシステム92は、図14に示すように、デコーダ93から1ワード分のデータの出力要求が入力される度に、キャッシュバッファ72のデータの範囲を示す情報と要求されたデータの位置とを比較して、その要求に係るデータがキャッシュメモリ71内にあるか否かを判断する(ステップS31)。また、キャッシュシステム92は、キャッシュメモリ71内にデータがある場合には、キャッシュメモリ71から読み出して出力し(ステップS34)、キャッシュメモリ71内にデータがない場合には、DSC1から新たなデータを取得して(ステップS32,S33)、要求に係るデータを出力する(ステップS34)。
デコーダ93は、図13に示すように、ブロック1つ分のすべてのデータの読み込みが完了すると、そのブロックのデコード処理を行う(ステップS14)。デコーダ93は、復号化したピクセル毎のピクセルのデータを印刷制御データ生成部94へ出力する。なお、デコード処理は、1ブロック毎ではなく所定の数のブロックに対してまとめて行うようにしてもよい。
デコード処理が完了すると、デコーダ93は、印刷指示データ解釈部91が指定したファイルのEXIF画像データをすべて読み込んだか否かを判断する(ステップS15)。そして、デコーダ93は、指定されたファイルのすべてのEXIF画像データを読み込んだ場合には、デコード処理を終了する。
なお、ファイルのすべてのEXIF画像データを読み込んだ否かは、ファイルの最後に付加されているEOFデータを読み込んだか否かに基づいて判断すればよい。
指定されたファイルのすべてのEXIF画像データの読込みが完了していない場合には、デコーダ93は、次のブロックの先頭ビットから、ワード毎のデータ読み込み処理を再開する(ステップS16)。
なお、ブロック1つ分のすべてのデータの読み込みが完了したと判断する際に、デコーダ93は、その最後に読み込んだデータの最終バイトの次のバイトを次のブロックの先頭バイトと判断する。
以上の処理により、印刷指示データ解釈部91がデコーダ93に指定したファイルのEXIF画像データはすべて、ピクセル毎のピクセルデータへ変換され、印刷制御データ生成部94へ出力される。
印刷制御データ生成部94は、ブロック毎に入力されるピクセルデータを保持する。そして、印刷制御データ生成部94は、少なくとも1印刷行(つまり、少なくとも1回のキャリッジ走査)分のピクセルデータがそろったら、その1印刷行分のピクセルデータに基づいて印刷制御データを生成する。印刷デバイス47は、この印刷制御データを用いて用紙58に少なくとも1行分の印刷処理を行う。
また、印刷制御データ生成部94は、この1印刷行分のピクセルデータに基づく印刷制御データの生成処理を、すべてのピクセルデータについて繰り返す。これにより、排紙トレイ54に排出される用紙58には、印刷指示データ解釈部91がデコーダ93に指定したファイルのEXIF画像データに基づく画像が所定のレイアウトにて形成される。また、その画像は、画像の長手方向が用紙58の給紙方向となる姿勢にて形成される。
ところで、デコーダ93によるワード単位でのデータ読み込みが進んで、キャッシュバッファ72内にデコーダ93により要求されるデータがなくなると、キャッシュシステム92は、1つのキャッシュバッファ72分のデータをDSC1から新たに取得する。また、キャッシュシステム92は、DSC1から新たに取得したデータを、空いているキャッシュバッファ72、あるいは、空いているキャッシュバッファ72が無い場合には最も更新時刻が古いキャッシュバッファ72に格納する。また、キャッシュシステム92は、新たに取得したデータの中から、デコーダ93により要求されたデータを読み出して、デコーダ93へ出力する。
このように、キャッシュメモリ71にキャッシュされるデータは、デコーダ93によるワード単位でのデータ読み込みが進むにつれて更新される。また、先にキャッシュしたデータは、後からキャッシュしたデータによって消去される。
図15は、画像を回転しない場合におけるキャッシュメモリ71の状態変化の一例を示す図である。図15(A)は、キャッシュメモリ71に読み込まれるEXIF画像データのデータ構造を示すものである。図15(B)は、画像を回転させずにデコードする場合において、デコードを開始した直後のキャッシュメモリ71の記憶状態の一例を示す図である。図15(C)は、画像を回転させずにデコードする場合において、デコードを終えた時のキャッシュメモリ71の記憶状態の一例を示す図である。
画像を回転させずにデコードする場合、図15に例示するように、キャッシュメモリ71には、EXIF画像データの先頭から順番に読み込まれる。また、空いているキャッシュバッファ72が無くなったら、古いデータを記憶するキャッシュバッファ72から順番に、新たに読み込んだデータにて上書きされる。
したがって、EXIF画像データを回転させずに印刷する場合には、キャッシュシステム92は、EXIF画像データを、キャッシュバッファ72のサイズ分ずつ先頭から順番にキャッシュする。また、EXIF画像データの各バイトは、1回ずつキャッシュメモリ71に読み込まれる。
図13に戻り、印刷指示データ解釈部91からのデコード指示に画像を回転させる指示が含まれている場合には、デコーダ93は、そのデコードを指示されたEXIF画像データのプレスキャンを開始する(ステップS17)。
プレスキャンにおいて、デコーダ93は、ファイル名を指定して、キャッシュシステム92に対して1ワード単位でデータ読込み指示を出力し、EXIF画像データを先頭から最後まで順番に読み込む。図14に示すように、キャッシュシステム92は、デコーダ93から要求されたデータがキャッシュメモリ71にある場合には、そのキャッシュメモリ71からデータを読み出してデコーダ93へ出力し(ステップS34)、デコーダ93から要求されたデータがキャッシュメモリ71にない場合には、そのデータを含むデータをDSC1からキャッシュバッファ72へ読み込み(ステップS32、S33)、その1ワードのデータをデコーダ93へ出力する(ステップS34)。
キャッシュシステム92から1ワード分のデータが入力されると、デコーダ93は、そのデータが、ブロック行の先頭バイトであるか否かを判断する。ブロック行の先頭バイトとは、画像においてブロック行の左端に位置するブロックの先頭バイトである。
そして、キャッシュシステム92から入力されたデータがブロック行の先頭バイトである場合には、デコーダ93は、その先頭バイトの、EXIF画像データにおけるデータ位置、すなわちEXIF画像データの先頭ビットから何バイト目のデータであるのかを記憶する。
デコーダ93は、EXIF画像データの終わりまでワード単位でのデータ取得を繰り返す。そして、EXIF画像データの終わりまでワード単位でのデータ取得を繰り返した後には、デコーダ93は、EXIF画像データに含まれる画像のすべてのブロック行の先頭バイトのデータ位置を記憶している。なお、各ブロック行の先頭バイトのデータ位置は、それぞれのポインタバッファに記憶される。
以上のプレスキャン処理を完了したら、デコーダ93は、EXIF画像データのデコードのための読み込みを開始する(ステップS18)。デコーダ93は、まず、画像の一番上のブロック行(つまり、画像データの先頭に最も近い1行分のブロック)の先頭バイトからワード単位でのデータ読み込みを開始する。キャッシュシステム92は、デコーダ93に要求されたデータを、必要に応じてキャッシュしながらデコーダ93へ出力する。なお、本実施の形態では、画像の上とは、画像データのはじめの部分による画像部分をいい、画像の左とは、画像データの最初のブロックによる画像が配置される側をいう。
また、デコーダ93は、ブロック1つ分のすべてのデータの読み込みが完了したか否かを判断し(ステップS19)、それが完了するまでワード単位のデータの読み込みを繰り返す。
そして、ブロック1つ分のすべてのデータの読み込みが完了すると、デコーダ93は、そのデータの次のバイトのデータ位置を記憶する。デコーダ93は、このブロック行について、この新たなデータ位置を、このブロック行のポインタバッファに上書きする(ステップS20)。
ポインタバッファに格納するデータ位置を更新したら、デコーダ93は、読み込んだブロックのデコード処理を行う(ステップS21)。また、デコーダ93は、デコード処理により生成したピクセル毎のピクセルのデータを印刷制御データ生成部94へ出力する。なお、デコーダ93は、複数ブロックをまとめて復号化するようにしてもよい。
デコード処理が完了すると、デコーダ93は、印刷指示データ解釈部91が指定したファイル32のEXIF画像データをすべてデコードしたか否かを判断する(ステップS22)。そして、デコーダ93は、指定されたファイルのすべてのEXIF画像データをデコードした場合には、デコード処理を終了する。
指定されたファイルのすべてのEXIF画像データの読込みが完了していない場合には、デコーダ93は、さらに画像のブロック列1列(つまり、少なくとも1回のキャリッジ走査による印刷に必要なブロック1列)分のデータ読込みが完了しているか否かを判断する(ステップS23)。
画像の左上のブロックのデコード処理が完了した時点では、EXIF画像データをデコードのためにすべて読み込んでおらず、また、画像のブロック列1列分のデータ読込みも完了していない。そのため、デコーダ93は、次のブロック行のデコード処理を開始する(ステップS24)。
具体的には、デコーダ93は、画像の上から二行目のブロック行に対応するポインタバッファからデータ位置を読み込み、このデータ位置からワード単位でのデータ読み込みを開始する。そして、デコーダ93は、ブロック1つ分のデータを読み込んだら(ステップS19)、その画像の上から二行目のブロック行のポインタバッファの値を、そのブロックの最後のデータの次のデータのデータ位置に更新し(ステップS20)、そのブロックのデコード処理を行う(ステップS21)。
また、デコーダ93は、このブロック行毎のデコード処理(ステップS19〜S24)を繰り返す。そして、画像の左端のブロック列のすべてのブロックについてデコード処理が完了すると、デコーダ93は、画像の一番上のブロック行についてのデコード処理を行う(ステップS25)。このとき、画像の一番上のブロック行に対応するポインタバッファには、画像の左端のブロックの最終バイトの次のバイトのデータ位置が格納されている。したがって、デコーダ93は、画像の一番上のブロック行の左から二番目のブロックのデコード処理を行うことになる。
以上のように、デコーダ93は、画像のブロック行毎にブロックの先頭ビットを格納するポインタバッファを設け、各ブロックのデータを読み込んだらこのポインタバッファに格納されるデータ位置を順次更新し、複数のブロック行について順番にデコード処理を繰り返す。これにより、デコーダ93は、画像の左側(つまり最初に印刷される画像に対応するブロック列)のブロック列から右側のブロック列までについて順番にデコード処理を行うことになる。
また、印刷制御データ生成部94は、ブロック毎に入力されるピクセルデータを保持する。そして、印刷制御データ生成部94は、少なくとも1印刷行(つまり、少なくとも1回のキャリッジ走査)分のピクセルデータがそろったら、その1印刷行分のピクセルデータに基づいて印刷制御データを生成する。印刷デバイス47は、この印刷制御データを用いて用紙58に少なくとも1行分の印刷処理を行う。
また、印刷制御データ生成部94は、この少なくとも1印刷行分のピクセルデータに基づく印刷制御データの生成処理を、すべてのピクセルデータについて繰り返し行う。これにより、排紙トレイ54に排出される用紙58には、印刷指示データ解釈部91がデコーダ93に指定したファイルのEXIF画像データに基づく画像が所定のレイアウトにて形成される。また、その画像は、画像の長手方向が用紙58の給紙方向となる姿勢にて、つまり90度あるいは270度に回転して形成される。
ところで、このように画像を回転して印刷する場合であっても、デコーダ93によるワード単位でのデータ読み込みが進んで、キャッシュバッファ72内にデコーダ93により要求されるデータがなくなると、キャッシュシステム92は、キャッシュバッファ72のサイズ分のデータをDSC1から新たに取得する。また、キャッシュシステム92は、DSC1から新たに取得したデータを、空いているキャッシュバッファ72、あるいは、空いているキャッシュバッファ72が無い場合には最も更新時刻が古いキャッシュバッファ72に格納する。
図16は、画像を回転する場合におけるキャッシュメモリ71の状態変化の一例を示す図である。図16(A)は、キャッシュメモリ71に読み込まれるEXIF画像データのデータ構造を示すものである。図16(B)は、画像を回転させてデコードする場合において、ブロックを一列分のデコード処理が完了した時点でのキャッシュメモリ71の記憶状態の一例を示す図である。図16(C)は、画像を回転させてデコードする場合において、ブロックを2列分のデコード処理が完了した時点でのキャッシュメモリ71の記憶状態の一例を示す図である。
なお、キャッシュシステム92は、画像のブロック行の行数m以上の本数Pのキャッシュバッファ72を有する。また、通常、キャッシュバッファ72のサイズは、1つのブロックのデータ量より大きい。ちなみに、JPEG形式の画像データにおいて一列分のブロックのデータ量は、数十バイト、大きくても数キロバイトであるのが一般的である。
そのため、画像を回転してデコードする場合において、画像の左端の一列(つまり、最初に印刷される画像に対応するブロック列)分のブロックのデコードが完了した時点では、図16(B)に例示するように、キャッシュメモリ71の複数のキャッシュバッファ72には、画像の左端のブロック列のすべてのブロックのデータがキャッシュされることになる。また、画像の左端の一列分のブロックのデータとともにキャッシュされた画像の左から二列目のブロックのデータも、消されることなく、すべてキャッシュメモリ71内に残っている。したがって、この場合では、キャッシュシステム92がDSC1からデータをキャッシュしないでも、デコーダ93は、左から二列目以降のブロックをデコードすることができる。
また、キャッシュシステム92は、キャッシュメモリ71内にデコーダ93から要求されたデータがキャッシュメモリ71内に無い場合には、そのデータを先頭とするキャッシュバッファ72のサイズに相当するデータ量のデータを、DSC1からキャッシュバッファ72へ読み込む。つまり、図16(C)に例示するように、キャッシュシステム92は、画像の一番上の左から二番目のブロックがデコードされる際には、そのブロックのデータの中のキャッシュしていない分のデータだけを新たにキャッシュする。なお、このキャッシュの際に、左から三番目以降のブロックのデータも一緒にキャッシュされる。
ブロック列における各ブロックのデータ量が均一である理想的な場合には、ブロック行の本数と同数にキャッシュバッファ72に格納されているデータが、同時期に順番にキャッシュアウトし、各ブロック行の後続のデータがキャッシュインすることになる。この理想状態の場合では、各データは、一度だけキャッシュインし、そのデータのデコーダ93への読み込みが完了すると、キャッシュアウトしていく。
実際の場合、ブロック列における各ブロックのデータ量が均一となることは稀であると予想されるが、その場合でも、ブロック行数以上のキャッシュバッファ72が用意されていることにより、2つのブロック行を跨いだデータがキャッシュバッファ72に格納されず、また、印刷上の同一走査ラインに対応する、複数のブロック行に属する複数のブロックが、複数のキャッシュバッファ72に並行して格納された状態となる可能性が高くなる。これにより、データのキャッシュアウトおよび再度のキャッシュインの頻度が少なくて済み、キャッシュシステム92でのキャッシュヒット率が高まる。
さらに、キャッシュシステム92は、DSC1に対するデータリードの最小単位で、読み込みデータを指定する。このため、過去にキャッシュインしデコードに既に使用されたデータが再度キャッシュインする割合が低減する。なお、この実施の形態では説明の都合上、データリードの最小単位を1バイト単位としているが、SCSIコマンドを使用する場合には、通常、データリードの最小単位は、512バイトか1024バイトとなる。また、データリードの最小単位は、使用するファイルシステムやファイル管理プロトコルによって異なるため、実装される方式の最小単位のデータ量を採用すればよい。
以上のように、この実施の形態では、画像データの取得要求に基づいてキャッシュシステム92が画像データをDSC1から取得した後には、その画像データをキャッシュメモリ71から読み込んでデコーダ93へ供給する。
したがって、デコーダ93により同じ画像データの取得要求が複数回あった場合、キャッシュシステム92によるその画像データの取得回数は、キャッシュシステム92への取得要求の回数より減らすことが可能となる。そして、キャッシュシステム92による画像データのDSC1からの取得回数がキャッシュシステム92に対する取得要求の回数より少なくなることで、印刷処理においてデコーダ93により取得が要求された画像データを効率よくデコーダ93へ供給することができる。つまり、キャッシュメモリ71から画像データを読み込む場合、DSC1から画像データを読み込む場合より、データを読み込むための時間が短いので、画像データが効率よくデコーダ93に供給される。その結果、効率よく印刷をすることができる。
また、この実施の形態では、キャッシュメモリ71は、複数本の画像のキャッシュバッファ72を有し、キャッシュシステム92は、キャッシュバッファ72の1本分のサイズ毎に画像データを取得する。したがって、キャッシュメモリ71の記憶容量が画像データのデータ量より小さく、キャッシュメモリ71がその画像データのすべてを記憶することができない場合であっても、キャッシュシステム92が取得した画像データをキャッシュメモリ71に記憶し、このキャッシュメモリ71から読み出した画像データをデコーダ93へ供給することができる。
また、この実施の形態では、キャッシュシステム92は、取得する画像データの先頭部分に、デコーダ93により取得を要求された画像データが含まれるように、画像データを取得する。キャッシュシステム92が取得する残りの画像データは、そのデコーダ93により取得を要求された画像データに続く画像データである。印刷処理において、デコーダ93は画像データの先頭から順番に使用する場合が多いため、キャッシュシステム92は、キャッシュメモリ71から、効率よく、画像データを供給することができることが多くなる。
また、この実施の形態では、複数の画像のキャッシュバッファ72のすべてに画像データが記憶されている場合には、その中で最も古い画像データを記憶するキャッシュバッファ72に、キャッシュシステム92が新たに取得した画像データを記憶させる。複数のキャッシュバッファ72には、キャッシュシステム92が取得したデータの中の最新のものを記憶させることができる。印刷処理において、デコーダ93は画像データの先頭から順番に使用する場合が多いため、キャッシュシステム92は、複数のキャッシュバッファ72から、効率よく、画像データを供給することができることが多くなる。
以上の実施の形態は、本発明の好適な実施の形態であるが、本発明はこれに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形、変更が可能である。
上記実施の形態では、複数のキャッシュバッファ72は、画像のブロック行の行数m以上の本数Pにて、キャッシュメモリ71に固定的に設定されている。この他にもたとえば、キャッシュメモリ71に設定する複数のキャッシュバッファ72の本数や1本のサイズを、印刷の度に、印刷する画像データの行数や画像の回転の有無などに応じて変更するようにしてもよい。
上記実施の形態では、画像を回転させる場合には、デコーダ93はプレスキャンをしてから、デコードのためのデータの読み込みを開始している。この他にもたとえば、デコード処理の前段階において画像の画質を変更するためのAPF(Auto Picture Fine)処理などの画像最適化処理をする場合には、その処理に使用するパラメータを生成するために画像データをスキャンする際に各ブロック行の先頭バイトのデータ位置をポインタバッファに格納し、デコーダ93によるプレスキャン処理を省略するようにしてもよい。
また、ほかにもたとえば、デコーダ93は、画像を回転する場合であっても画像を回転しない場合と同様にプレスキャンをすることなく、EXIF画像データの先頭から順番にデータを読み込んでその画像の左端のブロック列のデコード処理を開始し、その画像の左端のブロック列のデコード処理の際に各ブロック行の左から二番目のブロックの先頭バイトのデータ位置をポインタバッファに格納し、各ブロック行の左から二番目以降のブロック列のデコード処理においてはそのポインタバッファを用いてブロック行毎の読み込み処理を行うようにしてもよい。
上記実施の形態では、EXIF画像データをキャッシュして印刷処理をしている。この他にもたとえば、ダイレクト印刷システムは、JPEG画像データ、ビットマップ形式の画像データなどを印刷してもよい。たとえば横長の画像のビットマップ形式の画像データの場合には、その画像における画像の行数はピクセル行となるので、その縦方向のピクセル数と同数あるいはそれ以上の数のキャッシュバッファを用いれば、実施の形態と同様の効果を得ることができる。つまり、ビットマップ形式の画像データなどでは、1回のデータのキャッシュによって、キャリッジの複数回の走査で使用するデータを読み込むことができ、それによる印刷時間の短縮効果を得ることができる。
上記実施の形態では、DSC1のカードリーダ16に挿入された半導体メモリ20のEXIF画像データの画像を回転して印刷している。この他にもたとえば、本発明は、プリンタにカードリーダを設け、このカードリーダに挿入された半導体メモリ20のEXIF画像データの画像を回転して印刷する場合にも適用することができる。
また、上記実施の形態では、DSC1とプリンタ2がUSBにより接続されているが、その代わりに、別のインタフェースを採用してもよい。その場合、有線のインタフェースや有線の通信方式の他、ブルートゥース(商標)、赤外線通信などの無線のインタフェースや無線LANなどの有線の通信方式を使用してもよい。また、DSC1とプリンタ2との間のダイレクト印刷の制御コマンドやその応答などをUSBマスストレージクラスを利用して行っているが、その代わりに、PictBridge(商標)などを利用するようにしてもよい。
また、上記実施の形態では、DSC1に画像ファイル32が格納されているが、その代わりに、携帯電話機、音楽プレーヤ、撮影機能のないストレージ装置などといった他の電子機器を使用してもよい。その場合、その電子機器には、プリンタ2と通信可能な通信手段が設けられる。
また、上記実施の形態では、キャッシュシステム92、デコーダ93、印刷制御データ生成部94は、ソフトウェアにより実現されているが、これらのうちの一部または全部を専用のハードウェアにより実現するようにしてもよい。
なお、上記各実施の形態では、EXIF画像データ32のデータ量としてファィルサイズを使用しているが、その代わりに、EXIF画像データ32のEXIFヘッダを除いたデータ量としてもよい。
本発明は、たとえばデジタルカメラとプリンタとを直接に接続し、そのデジタルカメラに記憶されている画像データファイルに基づく画像をプリンタで印刷するダイレクト印刷システムに利用することができる。
2 プリンタ(印刷装置)、47 印刷デバイス(印刷手段)、71 キャッシュメモリ(バッファメモリ)、72 キャッシュバッファ(画像バッファ)、92 キャッシュシステム(取得手段、供給手段)、93 デコーダ(画像処理手段)
Claims (7)
- 印刷のために、画像ファイル内の画像データを取得する取得手段と、
上記取得手段により取得された画像データを記憶するバッファメモリと、
印刷のための画像データの取得要求に係る画像データが上記バッファメモリに記憶されている場合、上記バッファメモリからその取得要求に係る画像データを読み込んで取得要求元へ供給し、上記取得要求に係る画像データが上記バッファメモリに記憶されていない場合、その取得要求に係る画像データを上記取得手段に取得させて取得要求元へ供給する供給手段と、
を有することを特徴とする画像データ取得装置。 - 前記画像データは、複数の画素で構成される画像のデータがその画像における複数の画素の配置に従った所定の順番で配列されたデータであり、
前記バッファメモリは、複数本の画像バッファを有し、
前記取得手段は、上記画像バッファの1本分の画像データを上記所定の順番に沿って取得すること、
を特徴とする請求項1記載の画像データ取得装置。 - 前記取得手段は、前記画像バッファの1本分の画像データの先頭部分に、取得を要求された画像データが含まれるように、画像データを取得することを特徴とする請求項2記載の画像データ取得装置。
- 前記バッファメモリは、複数本の画像バッファのすべてに画像データが記憶されている場合には、その中で最も古い画像データを記憶する画像バッファに、前記取得手段が新たに取得した画像データを上書きして記憶することを特徴とする請求項2または3記載の画像データ取得装置。
- 前記取得手段は、デジタルカメラ、半導体メモリ、携帯端末あるいはコンピュータから、印刷に使用する画像データを取得することを特徴とする請求項1から4のうちのいずれか1項記載の画像データ取得装置。
- 取得を要求された画像データをその要求元へ供給する請求項1から5の中のいずれか1項記載の画像データ取得装置と、
上記画像データ取得装置に対して印刷する画像の画像データの取得を要求し、それに応じて供給された画像データを用いて印刷制御データを生成する画像処理手段と、
上記印刷制御データに基づく印刷を実行する印刷手段と、
を有することを特徴とする印刷装置。 - 印刷のための画像データの取得要求を受け取るステップと、
上記取得要求に係る画像データがバッファメモリに記憶されている場合、上記バッファメモリからその取得要求に係る画像データを読み込んで取得要求元へ供給し、上記取得要求に係る画像データが上記バッファメモリに記憶されていない場合、その取得要求に係る画像データを、画像ファイル内の画像データを取得する取得手段に取得させて取得要求元へ供給するとともに上記バッファメモリに記憶するステップと、
を有することを特徴とする画像データ取得方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005167848A JP2006343922A (ja) | 2005-06-08 | 2005-06-08 | 画像データ取得装置、印刷装置および画像データ取得方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005167848A JP2006343922A (ja) | 2005-06-08 | 2005-06-08 | 画像データ取得装置、印刷装置および画像データ取得方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006343922A true JP2006343922A (ja) | 2006-12-21 |
Family
ID=37640862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005167848A Withdrawn JP2006343922A (ja) | 2005-06-08 | 2005-06-08 | 画像データ取得装置、印刷装置および画像データ取得方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006343922A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8134736B2 (en) | 2007-08-31 | 2012-03-13 | Seiko Epson Corporation | Image data processing apparatus and method |
US8284436B2 (en) | 2007-08-03 | 2012-10-09 | Seiko Epson Corporation | Image data processing apparatus and method |
-
2005
- 2005-06-08 JP JP2005167848A patent/JP2006343922A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8284436B2 (en) | 2007-08-03 | 2012-10-09 | Seiko Epson Corporation | Image data processing apparatus and method |
US8134736B2 (en) | 2007-08-31 | 2012-03-13 | Seiko Epson Corporation | Image data processing apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100667119B1 (ko) | 기록 장치 및 그 제어 방법, 및 기록 매체 | |
US7274478B2 (en) | Image printing apparatus and image printing control method | |
US20040196484A1 (en) | Printing apparatus, control method therefor, and storage medium | |
JP4262186B2 (ja) | 画像供給装置及び該装置の制御方法及び印刷システム | |
JP4574282B2 (ja) | 画像供給デバイス及び該デバイスの制御方法及び印刷システムと印刷制御方法 | |
US20090059312A1 (en) | Image data processing apparatus and method | |
JP2006343922A (ja) | 画像データ取得装置、印刷装置および画像データ取得方法 | |
JP4529501B2 (ja) | プリンタ、画像印刷システムおよび印刷方法 | |
US8134736B2 (en) | Image data processing apparatus and method | |
US20100238504A1 (en) | Printing system | |
JP2004282382A (ja) | ネットワーク端末装置 | |
JP2005340918A (ja) | 画像表示装置、画像供給装置、画像表示システムおよび画像表示方法 | |
JP4604795B2 (ja) | 画像データキャッシュ装置、印刷装置および画像データキャッシュ方法 | |
US8284436B2 (en) | Image data processing apparatus and method | |
JP2006272723A (ja) | 画像データキャッシュ装置、印刷装置および画像データキャッシュ方法 | |
JP2006277267A (ja) | 画像データキャッシュ装置、印刷装置および画像データキャッシュ方法 | |
JP2005262652A (ja) | 画像出力指示装置、画像出力装置、画像保存装置、画像出力システム、画像出力指示方法および画像出力方法 | |
JP2005338156A (ja) | 画像供給装置、画像表示装置、画像表示システム、画像供給方法および画像表示方法 | |
JP3213093B2 (ja) | ファクシミリ装置 | |
JP2004255609A (ja) | プリンタ装置 | |
KR100727929B1 (ko) | 양면 스캔시 스캔데이터 처리 방법 및 장치 | |
JP4709246B2 (ja) | 画像供給デバイス及び該デバイスの制御方法及び印刷システム | |
JP2009130590A (ja) | プリンタ及びその制御方法 | |
JP2006289855A (ja) | プリンタ | |
JP2006277272A (ja) | 印刷指示生成装置、印刷装置および印刷指示生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070404 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080902 |