説明

展開データ作成方法と装置とプログラム

【課題】 シングルコネクションで圧縮データをダウンロードし、ダウンロードされた圧縮データを展開することによって展開データを作成する一連の工程を効率よく実行すること。
【解決手段】 本発明の展開データ作成方法は、以下の各工程を備える。(1)画像オブジェクト210の第1圧縮データ240を所定サイズ単位でダウンロードする工程。(2)第1圧縮データ240を展開することによって第1展開データを作成する工程。(3)第1バンド220に対応する全ての第1展開データ210aが作成されたのか否かを判断する工程。(4)判断工程で否定的に判断された場合に、上記の各工程を繰り返させる工程。(5)判断工程で肯定的に判断された場合に、画像オブジェクト220の第2圧縮データをダウンロードする工程。(6)第2圧縮データを展開することによって第2展開データを作成する工程。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷データを作成するために画像オブジェクトの圧縮データを外部装置からダウンロードし、ダウンロードされた圧縮データを展開することによって展開データを作成する技術に関する。
【背景技術】
【0002】
本発明の背景となる事項を以下に列挙する。
(1)画像オブジェクトの圧縮データを外部装置からダウンロードし、ダウンロードされた圧縮データを展開することによって展開データを作成し、作成された展開データを印刷データに変換するプリンタが存在する。展開データは、例えば、RGBの多階層(例えば256階層)によって表現されるビットマップデータである。印刷データは、展開データより小さい階層によって表現されるビットマップデータである。印刷データの階層数は、プリンタの具体的な構成に依存する。即ち、ドットの有無のみを利用して印刷するプリンタの場合、印刷データは、2階層(例えば0と1)によって表現される。一方において、大ドット、中ドット、小ドット、及び、ドット無を利用して印刷するプリンタの場合、印刷データは、4階層(例えば0と1と2と3)によって表現される。
(2)バンド単位で印刷データを作成するプリンタが存在する。例えば、下記の特許文献1には、このタイプのプリンタが開示されている。
(3)いわゆるインデックス印刷を実行することができるプリンタが存在する。即ち、複数の画像オブジェクトを整列させて1ページに印刷するプリンタが存在する。例えば、下記の特許文献2には、このタイプのプリンタが開示されている。
【0003】
【特許文献1】特開2002−96506号公報
【特許文献2】特開平11−312069号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
外部装置から複数の画像オブジェクトをダウンロードする手法として、複数のコネクション(以下ではマルチコネクションと呼ぶ)で並列的に複数の画像オブジェクトをダウンロードする場合と、1本のコネクション(以下ではシングルコネクションと呼ぶ)で複数の画像オブジェクトをダウンロードする場合とが挙げられる。マルチコネクションで外部装置から複数の画像オブジェクトをダウンロードする場合、プリンタは、複数のリクエストを同時的に外部装置に送る。マルチコネクションに対応している外部装置は、各リクエストに対して画像オブジェクトの圧縮データを返信することができる。
【0005】
シングルコネクションで画像オブジェクトをダウンロードする場合、外部装置に対して同時的に複数のリクエストが送られることがなく、1つの画像オブジェクトをダウンロードした後に次の画像オブジェクトをダウンロードすることになる。シングルコネクションで画像オブジェクトをダウンロードすることによって、マルチコネクションに対応していない外部装置(シングルコネクションによって通信する外部装置)からであっても、画像オブジェクトを確実に取得することができる。
【0006】
一方において、例えば上述したインデックス印刷のための印刷データをバンド単位で作成する場合、1つのバンドに複数の画像オブジェクトが含まれることがある。例えば、図1は、印刷媒体100に印刷するために利用される印刷データが複数のバンド130,132,134に分けられている様子を示す。この例の場合、各バンド130,132,134の印刷データが順に作成される。即ち、最初にバンド130の印刷データが作成されて印刷され、次いでバンド132の印刷データが作成されて印刷され、次いでバンド134の印刷データが作成されて印刷される。この図1に示されるように、1つのバンド130に複数の画像オブジェクト110,120が含まれることがある。さらに、2つ以上のバンドに1つの画像オブジェクトが跨って配置されることもある。図1の例の場合、画像オブジェクト110は、バンド130に含まれる部分110aとバンド132に含まれる部分110bを有する。
【0007】
バンド130の印刷データを作成するためにシングルコネクションで2つの画像オブジェクト110,120をダウンロードする場合、それらを同時にダウンロードすることができない。即ち、一方の画像オブジェクト110をダウンロードし、その後に他方の画像オブジェクト120をダウンロードする必要がある。この例の場合、画像オブジェクト110を構成する全ての圧縮データをダウンロードし、それを展開することによって画像オブジェクト110の全部の展開データを作成する手法が考えられる。しかしながら、この場合、画像オブジェクト110の展開データの部分110bは、バンド130の印刷データを作成するために必要のないデータである。展開データを作成するデバイスは、バンド132の印刷データを作成する段階まで画像オブジェクト110の展開データの部分110bをキャッシュしておく必要がある。即ち、デバイスは、画像オブジェクト120の展開データを作成してバンド130の印刷データを作成している間に、部分110bをメモリに一時的に記憶させておく必要がある。この場合、メモリを圧迫することになる。
【0008】
本発明は、シングルコネクションで複数の画像オブジェクトの圧縮データをダウンロードして展開データを作成する場合に、展開データを効率的に作成するための技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
図1の例の場合、単純に考えると、画像オブジェクト110の圧縮データをダウンロードする際に、部分110aに対応する圧縮データのみを送信するように外部装置にリクエストすればよいように思える。しかしながら、圧縮データを展開して展開データを作成してみなければ、その展開データがいずれのバンドに対応するものであるのかはわからない。このために、本発明では、以下の手法を採用することによって、展開データを効率的に作成することを実現する。
【0010】
図2を参照しながら、本発明の展開データ作成方法について説明する。図2は、印刷媒体200に印刷するために利用される印刷データが複数のバンド230,232,234に分けられている様子を示す。図2のデータは、あくまで例示である。図2の内容及びそれに関する以下の説明によって、本発明の技術的範囲が限定的に解釈されることはない。本発明の技術的範囲は、特許請求の範囲に記載された事項によって客観的に定められる。
【0011】
本発明の展開データ作成方法は、印刷データを作成するために複数の画像オブジェクト210,220の圧縮データをシングルコネクションで外部装置からダウンロードし、ダウンロードされた圧縮データを展開することによって展開データを作成する。上記の外部装置は、特に限定されるものではなく、どのようなデバイスであってもよい。例えば、外部装置は、パーソナルコンピュータ、サーバ、デジタルカメラ、ポータブルメモリ等であってもよい。この展開データ作成方法は、以下の各工程を備える。
(1)印刷データの第1バンド230とその次の第2バンド232の両方に含まれるべき第1画像オブジェクト210について、その第1画像オブジェクト210の所定サイズの第1圧縮データ240をダウンロードする第1ダウンロード工程。
(2)第1ダウンロード工程でダウンロードされた上記の所定サイズの第1圧縮データ240を展開することによって第1展開データを作成する第1展開工程。
(3)第1バンド230に対応する全ての第1展開データ210aが作成されたのか否かを判断する判断工程。上記の「第1バンド230に対応する全ての第1展開データ210a」は、第1バンド230の印刷データを作成するのに必要な全ての第1展開データ210a(第1画像オブジェクトの展開データ)を意味する。例えば、第1圧縮データ240の第1展開データのみが作成されている段階では、この判断工程で否定的な判断がなされる。この場合、次の工程が実行される。
【0012】
(4)第1バンド230に対応する全ての第1展開データ210aが作成されていないと判断工程で判断された場合に、第1ダウンロード工程と第1展開工程と判断工程を繰り返させる工程。即ち、第1圧縮データ240に続く第1圧縮データ242をダウンロードし、それを展開し、上記の判断工程を実行する。この場合、第1展開データ210aの全部が依然として作成されないために、上記の工程が実行されることになる。即ち、第1圧縮データ244をダウンロードし、それを展開し、上記の判断工程を実行する。第1圧縮データ246についてもこの工程を実行し、第1圧縮データ248についてもこの工程を実行する。第1圧縮データ248が展開されて展開データが作成された場合、第1展開データ210aの全部が作成されることになる。これにより、判断工程で肯定的な判断がなされる。この場合、次の工程が実行される。
【0013】
(5)第1バンド230に対応する全ての第1展開データ210aが作成されたと判断工程で判断された場合に、第1バンド230に含まれるべき第2画像オブジェクト220について、その第2画像オブジェクト220の第2圧縮データをダウンロードする第2ダウンロード工程。この第2ダウンロード工程では、上記の所定サイズの第2圧縮データをダウンロードしてもよいし、別の単位で第2圧縮データをダウンロードしてもよい。
(6)第2ダウンロード工程でダウンロードされた第2圧縮データを展開することによって第2展開データを作成する第2展開工程。
【0014】
上記の展開データ作成方法は、第1画像オブジェクト210の圧縮データを少しずつダウンロードし(上記の所定サイズ単位でダウンロードし)、それを展開し、上記の判断工程を実行する。判断工程で肯定的な判断がなされると、第1画像オブジェクト210のダウンロードをストップし、第2画像オブジェクト220のダウンロードに移行する。この結果、第1バンド230の印刷データを作成するのに必要な第1展開データ210aのみが作成される。もしくは、第2バンド232に対応する展開データが作成されたとしても(例えば図2の符号248参照)、それはごく僅かであり、第2バンド232に対応する全ての展開データ210bが作成されるわけではない。この展開データ作成方法を利用すると、第2バンド232の印刷データを作成する段階まで、第2バンド232に対応する全ての展開データ210bをキャッシュしておく必要がない。この方法によると、複数の画像オブジェクトの圧縮データをシングルコネクションによってダウンロードして展開データを作成する場合に、メモリ容量を圧迫することなく展開データを効率的に作成することができる。
【0015】
なお、上記の展開データ作成方法は、第1ダウンロード工程でダウンロードされた総データサイズを記憶するデータサイズ記憶工程をさらに備えていてもよい。この場合、第1ダウンロード工程では、データサイズ記憶工程で記憶された総データサイズの値に続く上記の所定サイズ分の範囲の第1圧縮データを送信するように外部装置に要求してもよい。
この構成によると、第1ダウンロード工程において所定サイズ単位で第1圧縮データをダウンロードすることができる。従って、展開データが1バンド分を超えた場合であっても、次に圧縮データをダウンロードする場合には、前回にダウンロードした圧縮データの次からダウンロードを開始するため、無駄に圧縮データのダウンロードを行なわなくてもよい。
【0016】
なお、上記の展開データ作成方法を利用する印刷データ作成方法も新規である。この印刷データ作成方法は、上記の展開データ作成方法によって作成された第1展開データと第2展開データを印刷データに変換することによって第1バンドの印刷データを作成する印刷データ作成工程を備える。
【0017】
なお、次の展開データ作成プログラムも有用である。この展開データ作成プログラムは、以下の各処理をコンピュータに実行させる。
(1)印刷データの第1バンドとその次の第2バンドの両方に含まれるべき第1画像オブジェクトについて、その第1画像オブジェクトの所定サイズの第1圧縮データをダウンロードする第1ダウンロード処理。
(2)第1ダウンロード処理でダウンロードされた上記の所定サイズの第1圧縮データを展開することによって第1展開データを作成する第1展開処理。
(3)第1バンドに対応する全ての第1展開データが作成されたのか否かを判断する判断処理。
(4)第1バンドに対応する全ての第1展開データが作成されていないと判断処理で判断された場合に、第1ダウンロード処理と第1展開処理と判断処理を繰り返させる処理。
(5)第1バンドに対応する全ての第1展開データが作成されたと判断処理で判断された場合に、第1バンドに含まれるべき第2画像オブジェクトについて、その第2画像オブジェクトの第2圧縮データをダウンロードする第2ダウンロード処理。
(6)第2ダウンロード処理でダウンロードされた第2圧縮データを展開することによって第2展開データを作成する第2展開処理。
この展開データ作成プログラムを利用すると、展開データを効率的に作成することができるデバイスを実現することができる。
【0018】
次の展開データ作成装置も有用である。この展開データ作成装置は、以下の各手段を備える。
(1)印刷データの第1バンドとその次の第2バンドの両方に含まれるべき第1画像オブジェクトについて、その第1画像オブジェクトの所定サイズの第1圧縮データをダウンロードする第1ダウンロード手段。
(2)第1ダウンロード手段によってダウンロードされた上記の所定サイズの第1圧縮データを展開することによって第1展開データを作成する第1展開手段。
(3)第1バンドに対応する全ての第1展開データが作成されたのか否かを判断する判断手段。
(4)第1バンドに対応する全ての第1展開データが作成されたと判断手段によって判断された場合に、第1バンドに含まれるべき第2画像オブジェクトについて、その第2画像オブジェクトの第2圧縮データをダウンロードする第2ダウンロード手段。
(5)第2ダウンロード手段によってダウンロードされた第2圧縮データを展開することによって第2展開データを作成する第2展開手段。
この展開データ作成装置を利用すると、複数の画像オブジェクトの圧縮データをシングルコネクションによってダウンロードして展開データを作成する場合に、メモリ容量を圧迫することなく展開データを効率的に作成することができる。
【0019】
本発明は、より一般化すると、以下のダウンロード方法として表現することができる。即ち、このダウンロード方法は、印刷データを作成するために複数の画像オブジェクトのデータをシングルコネクションで外部装置からダウンロードする。この方法は、以下の各工程を備える。
(1)印刷データの第1バンドとその次の第2バンドの両方に含まれるべき第1画像オブジェクトについて、その第1画像オブジェクトの所定サイズの第1データをダウンロードする第1ダウンロード工程。
(2)第1バンドに対応する全ての第1データがダウンロードされたのか否かを判断する判断工程。
(3)第1バンドに対応する全ての第1データがダウンロードされていないと判断工程で判断された場合に、第1ダウンロード工程と判断工程を繰り返させる工程。
(4)第1バンドに対応する全ての第1データがダウンロードされたと判断工程で判断された場合に、第1バンドに含まれるべき第2画像オブジェクトについて、その第2画像オブジェクトの第2データをダウンロードする第2ダウンロード工程。
この方法によると、複数の画像オブジェクトのデータをシングルコネクションによって効率的にダウンロードすることができる。
【発明を実施するための最良の形態】
【0020】
ここでは、以下の実施例に記載の技術の主要な特徴をまとめておく。
(形態1)複数の画像オブジェクトと各バンドとの相対的な位置関係を決定するレイアウト処理が実行される。レイアウト処理は、XHTML−Printデータに含まれる各画像オブジェクトの位置データに基づいて実行される。
(形態2)印刷媒体に印刷される順に各バンドの印刷データが作成される。1つのバンドのバンド幅は、例えば、インクジェットヘッドが1回の走査によって印刷することが可能である範囲に基づいて設定される。
(形態3)印刷データは、いわゆる二値データである。しかしながら、印刷データは、他の種類のデータ(例えば多値データ)であってもよい。
【実施例】
【0021】
図面を参照して本発明の実施例を説明する。図3は、本実施例の多機能機システム2を示す。多機能機システム2は、PC10と多機能機40を備える。
【0022】
(PCの構成)
PC10は、操作装置12と表示装置14と制御装置16とネットワークインターフェイス24を備える。操作装置12は、キーボードやマウスによって構成されている。ユーザは、操作装置12を操作することによって、様々な情報や指示をPC10に入力することができる。例えば、ユーザは、印刷指示をPC10に入力することができる。この結果、PC10から多機能機40に後述するXHTML−Printデータが送られることになる。表示装置14は、様々な情報を表示することができる。
【0023】
制御装置16は、CPU18とROM20とRAM22等を有する。CPU18は、ROM20に記憶されているプログラムに従って各種の処理を実行する。ROM20は、各種のプログラムを記憶している。例えば、ROM20は、後述するXHTML−Printデータを作成して多機能機40に送信する処理を実行するためのプログラムを記憶している。RAM22は、CPU18が処理を実行する過程で生成される様々な情報を一時的に記憶することができる。ネットワークインターフェイス24は、ネットワーク回線60に接続されている。ネットワーク回線60は、多機能機40に接続されている。PC10は、ネットワークインターフェイス24を介して多機能機40と通信可能である。
【0024】
(多機能機の構成)
多機能機40は、操作装置42と表示装置44と印刷装置46とスキャナ装置48と制御装置50とネットワークインターフェイス58を有する。操作装置42は、複数のキーによって構成されている。ユーザは、操作装置42を操作することによって、様々な情報や指示を多機能機40に入力することができる。表示装置44は、様々な情報を表示することができる。本実施例の印刷装置46は、インクジェットタイプの印刷装置である。印刷装置46は、後述する二値データ(印刷データ)に基づいて印刷用紙に印刷することができる。スキャナ装置48は、原稿をスキャンして画像データを生成することができる。
【0025】
制御装置50は、CPU52とROM54とRAM56等を有する。CPU52は、ROM54に記憶されているプログラムに従って各種の処理を実行する。ROM54は、各種のプログラムを記憶している。例えば、ROM54は、XHTML−Printデータに基づいて二値データのレイアウトを決定する処理、画像オブジェクトの圧縮データをダウンロードする処理、圧縮データを展開して展開データを作成する処理、展開データを二値データに変換する処理等を実行するためのプログラムを記憶している。RAM56は、CPU56が処理を実行する過程で生成される様々な情報を一時的に記憶することができる。RAM56に記憶される情報の内容は後で説明する。ネットワークインターフェイス58は、ネットワーク回線60に接続されている。ネットワーク回線60は、PC10に接続されている。多機能機40は、ネットワークインターフェイス58を介してPC10と通信可能である。
【0026】
(多機能機が記憶するデータの内容)
図4は、多機能機40のRAM56の記憶内容の一例を示す。RAM56は、XHTML−Printデータメモリ(XPM)70と、コンテキストデータメモリ(CDM)72と、展開データメモリ(DDM)86と、バンドメモリ(BM)88と、その他の記憶領域90等を有する。XPM70は、PC10から送信されてくるXHTML−Printデータを記憶することができる。XHTML−Printデータの内容は、後で詳しく説明する。CDM72は、画像オブジェクトのアドレス(ファイル名)74と、メタ情報76と、インデックス78と、圧縮データ80と、受信済フラグ82とを対応づけて記憶することができる。これらの各データ74〜82の具体的な内容は、後で詳しく説明する。DDM86は、展開データを記憶することができる。BM88と、1バンド分の二値データを記憶することができる。記憶領域90は、様々なデータを記憶することができる。記憶領域90に記憶されるデータの内容は、必要に応じて後で説明する。
【0027】
(PCが実行する処理)
上述したように、ユーザは、PC10の操作装置12を操作することによって、印刷指示を入力することができる。この場合、PC10は、印刷対象のデータからXHTML−Printデータ(詳しくは後述する)を作成する。PC10は、XHTML−Printデータを多機能機40に送信する。この結果、多機能機40は、以下の図5から図7の各処理を実行することになる。
【0028】
(多機能機が実行する処理)
多機能機40が実行する処理について説明する。この処理は、多機能機40のCPU52によって実行される。図5から図7は、PC10からXHTML−Printデータが送られてきた場合に多機能機40が実行する処理のフローチャートを示す。
【0029】
CPU52は、XHTML−Printデータを受信すると(S10)、そのXHTML−PrintデータをXPM70(図4参照)に記憶させる。次いで、CPU52は、PC10に対するTCPコネクションを確立する(S12)。続いて、CPU52は、XPM70に記憶されているXHTML−Printデータに基づいてレイアウト処理を実行する(S14)。以下に、レイアウト処理の内容について詳しく説明する。
【0030】
図8から図10は、XHTML−Printデータの一部を例示する。図8に示されるように、XHTML−Printデータ300は、基準URI302を含んでいる。基準URI302は、PC10のIPアドレス「192.168.0.100」と「photo」を含んでいる。多機能機40は、この基準URI302に含まれる画像オブジェクト(画像ファイル;後で詳しく説明する)の圧縮データをダウンロードし、それを展開して展開データを作成し、展開データを二値データ(印刷データ)に変換することになる。XHTML−Printデータ300は、印刷メディアのルールを指定する文字列304と、印刷可能な範囲を指定する文字列306と、印刷媒体のサイズ307と、ブランク308とを含んでいる。このブランク308がどのようにして利用されるのかについては、後で詳しく説明する。
【0031】
図9に示されるように、XHTML−Printデータ300は、ブランク310を含んでいる(後で詳しく説明する)。また、XHTML−Printデータ300は、画像オブジェクトの位置を指定するデータ315を含んでいる。本実施例では、8つの画像オブジェクトが整列された状態で1ページに印刷される。即ち、8つの画像オブジェクトがインデックス印刷される。このために、データ315は、8つの画像オブジェクトのそれぞれの位置データを含んでいる。各画像オブジェクトの位置データは、ブランク320,322,324と幅326と高さ328(後で詳しく説明する)を含んでいる。また、XHTML−Printデータ300は、画像オブジェクトのより詳しい位置を指定するクラス属性340を含んでいる。クラス属性340は、画像オブジェクトの回転角やより詳細なブランク等を指定するものである。
【0032】
図10に示されるように、XHTML−Printデータ300は、各画像オブジェクトのファイル名352とクラス354を指定するデータ350を含んでいる。例えば、データ350aは、「photo 001.jpg」というファイル名352と、「img_34_0deg」というクラス354を含んでいる。このクラス354は、図9の符号340aのクラス属性に対応する。即ち、データ350aに対応する画像オブジェクトは、「photo 001.jpg」というファイル名352を有するものであり、クラス属性340aに従って回転角や詳細なブランクが決定される。この例の場合、符号340aのクラス属性は、「image_orientation:0deg」を含んでいる。これは、データ350aに対応する画像オブジェクトの回転角が「0」であることを意味する。なお、クラス属性340aに含まれる詳細なブランクについての説明は省略する。
【0033】
図11は、XHTML−Printデータ300に含まれる各ブランク等がどのような意味を持つのかを説明するための図を示す。符号400は、1ページの印刷媒体(例えば印刷用紙)を示す。印刷媒体400のサイズは、図8のサイズ307によって決定される。この例の場合、レターサイズの印刷媒体400が採用される。ブランク408は、図8のブランク308に対応する。この例の場合、ブランク408は「0.2」(inch)である。ブランク409は、多機能機40によって予め決められている値である。ブランク410は、図9のブランク310に対応する。この例の場合、ブランク410は「0」である。これにより、ページ領域406が画定する。このページ領域406内に複数の画像オブジェクトが配置されることになる。
【0034】
ページ領域406のブランク422は、図9のブランク322に対応する。例えば、図9の位置データ315aでは、ブランク322が「0」である。このために、ブランク422も「0」になる。ページ領域406のブランク424は、図9のブランク324に対応する。例えば、図9の位置データ315aでは、ブランク324が「0.466」(inch)である。このために、ブランク424も「0.466」(inch)になる。ページ領域406のブランク420は、図9のブランク320に対応する。例えば、図9の位置データ315aでは、ブランク320が「0」である。このために、ブランク420も「0」になる。幅426は、図9の幅326に対応する。例えば、図9の位置データ315aでは、幅326が「3.25」(inch)である。このために、幅426も「3.25」(inch)になる。高さ428は、図9の高さ328に対応する。例えば、図9の位置データ315aでは、高さ328が「2.5」(inch)である。このために、高さ428も「2.5」(inch)になる。
【0035】
XHTML−Printデータ300に含まれる各ブランク等を参照にすることによって、画像オブジェクトの位置を決定することができる。即ち、図11の例では、符号450で示される領域に1つの画像オブジェクトが配置される。上述したように、XHTML−Printデータ300は、8つの画像オブジェクトのそれぞれの位置データ315(図9参照)を含んでいる。このために、図11の印刷媒体400内における8つの画像オブジェクトの位置を決定することができる。図5のS14のレイアウト処理において、CPU52は、XHTML−Printデータ300から8つの画像オブジェクトの位置を決定する。図12は、印刷媒体400内における画像オブジェクト510,520,530,540の位置を示す。なお、実際には8つの画像オブジェクトが存在するが、図12では、印刷媒体400の上半分のみを示しており、4つの画像オブジェクト510,520,530,540のみを示している。
【0036】
CPU52は、二値データをバンド単位で作成して印刷する。即ち、1ページの印刷媒体400の印刷に利用される二値データは、複数のバンド480,482,484,486に分けられる。詳しくは後述するが、CPU52は、まず、第1バンド480の二値データを作成して印刷する。次いで、第2バンド482の二値データを作成して印刷する。この処理を第3バンド484以降も繰り返すことによって、1ページの印刷媒体400に対応する全ての二値データが印刷されることになる。なお、1つのバンドのバンド幅(図12の上下方向の長さ)は、インクジェットヘッドの1回の走査で印刷することができる幅である。なお、バンド幅は、他の基準によって定められてもよい。
【0037】
図5に戻って、CPU52が実行する処理の説明を続ける。S14のレイアウト処理で作成されたレイアウトデータ(画像オブジェクトの位置とバンドとの相対的な位置関係を示すデータ)は、例えば、記憶領域90(図4参照)に一時的に記憶される。レイアウト処理を実行すると、CPU52は、第1バンド480を処理バンドとして特定する(S16)。また、S16では、CPU52は、BM88(図4参照)をクリアする。次いで、CPU52は、処理バンドに画像オブジェクトが含まれているのか否かを判断する(S18)。例えば、図12の例の場合、第1バンド480に画像オブジェクト510,520が含まれている。この場合、CPU52は、S18でYESと判断する。S18でYESの場合、CPU52は、処理対象の画像オブジェクトを特定する(S20)。例えば、図12の例のように2つの画像オブジェクト510,520が存在する場合、一方のオブジェクト(本実施例では画像オブジェクト510とする)を特定する。S20を終えると、図6のS50に進む。
【0038】
S50では、CPU52は、処理対象の画像オブジェクトのコンテキストデータが存在するのか否かを判断する。図4のCDM72は、画像オブジェクト毎のコンテキストデータを記憶することができる。CPU52は、CDM72の記憶内容をチェックすることによって、処理対象の画像オブジェクトのコンテキストデータが既に作成済であるのか否かを判断する。例えば、図12の第1バンド480が処理バンドである場合、画像オブジェクトのコンテキストデータがまだ存在しない。この場合、S50でNOと判断される。
【0039】
S50でNOの場合、CPU52は、処理対象の画像オブジェクト510のコンテキストデータを作成してCDM72に記憶させる(S52)。まず、CPU52は、画像オブジェクト510のファイル名「photo 001.jpg」をCDM72に記憶させる。この際、メタ情報76とインデックス78と圧縮データ80には何も記憶されない。また、受信済フラグ82は「0」である。
【0040】
次いで、CPU52は、処理対象の画像オブジェクト510のデータ(本実施例ではJPEGファイル)を所定バイト分(本実施例では「4000バイト」とする)だけ返信するようにPC10にリクエストを送信する(S54)。具体的には、画像オブジェクト510のファイル名「photo 001.jpg」を含むHTTPリクエストを送信する。このHTTPリクエストには、4000バイト分(0〜3999バイトの範囲)のみを返信するように指示する文字列が含まれる。この結果、PC10は、「photo 001.jpg」のJPEGファイルに含まれる4000バイト分のデータを多機能機40に送信する(HTTPレスポンス)。なお、本実施例の多機能機40は、シングルコネクションでPC10とデータ通信を行なう。即ち、CPU52は、複数のHTTPリクエストを同時的に送信しない。CPU52は、1つのHTTPリクエストを送信し、それに対するHTTPレスポンスを受信すると、次のHTTPリクエストを送信する。
【0041】
ここで、JPEGファイルのデータ構造について説明しておく。図13は、JPEGファイルのデータ構造を簡単に示す。JPEGファイル610は、メタ情報612と圧縮データ614を含む。メタ情報612は、画像に関するパラメータ(解像度等)や圧縮データ614を展開するために必要なパラメータ(ハフマンテーブル等)を含んでいる。圧縮データ614は、画像オブジェクトのJPEG画像データ(後述する展開データ)が圧縮されたものである。JPEGファイル610では、メタ情報612が先頭に存在しており、それに続いて圧縮データ614が存在している。従って、多機能機40が先頭からデータを送信するようにPC10に要求すると、PC10は、メタ情報612を先に返信することになる。
【0042】
例えば、画像オブジェクト510について図6のS54の処理がはじめて行なわれる場合、CPU52は、先頭から3999バイトまでの範囲を返信することを指示するHTTPリクエストを送信する。図14は、HTTPリクエスト700の一例を示す。HTTPリクエスト700は、画像オブジェクト510のファイル名701を含んでいる。また、HTTPリクエスト700は、データの範囲を示す文字列702を含んでいる。例えば、先頭から3999バイトまでの範囲を送信するように指示する場合、文字列702に「0−3999」という数値が挿入される。この結果、PC10は、先頭から3999バイトまでのデータを含むHTTPレスポンスを多機能機40に返信する。
【0043】
図15は、HTTPレスポンスの一例を示す。HTTPレスポンス710は、いずれの範囲のデータを返信しているのかを示す文字列712と、JPEGファイル600の総データサイズを示す文字列714を含んでいる。HTTPレスポンス710は、メタ情報(図13の符号612参照)や圧縮データ(図13の符号614参照)を含む。HTTPレスポンス710に含まれるデータは、HTTPリクエスト700の内容に応じて変わる。例えば、JPEGファイル600の先頭から6000バイトまでがメタ情報であり、先頭から3999バイトまでを返信することを指示するHTTPリクエスト700が受信された場合、HTTPレスポンス710は、メタ情報のみを含むことになる。また、上記の例で4000バイトから7999バイトまでを返信することを指示するHTTPリクエスト700が受信された場合、HTTPレスポンス710は、メタ情報と圧縮データの両方を含むことになる。また、上記の例で8000バイトから11999バイトまでを返信することを指示するHTTPリクエスト700が受信された場合、HTTPレスポンス710は、圧縮データのみを含むことになる。なお、図15では、HTTPレスポンス710に含まれる圧縮データ716が例示されている。
【0044】
図6に示されるS54の処理を行なうと、4000バイト分のデータが多機能機40によって受信される(S56)。CPU52は、CDM72(図4参照)のインデックス78を増加させる。例えば、画像オブジェクト510(photo 001.jpg)について先頭から3999バイトまでの範囲のデータが受信された場合、その画像オブジェクト510に対応するコンテキストデータのインデックス78を「3999」まで増加させる。なお、S56でメタ情報612(図13参照)が受信された場合、CPU52は、そのメタ情報612をCDM72に記憶させる。これにより、CPU52は、CDM72に記憶されているメタ情報612を利用して、後工程(図7のS70)で圧縮データを展開することができる。
【0045】
次いで、CPU52は、メタ情報を全て受信したのか否かを判断する(S58)。例えば、メタ情報612(図13参照)には、メタ情報自身の全データサイズを計算することができるデータが含まれる。CPU52は、メタ情報612の全データサイズを計算し、その全データサイズを受信したのか否かをインデックス78から判断することができる。S58でNOの場合、CPU52は、S54に戻ってHTTPリクエストを実行する。このHTTPリクエストには、インデックス78に記憶されている値(例えば3999)に続く4000バイト分の範囲(4000〜7999)を送信するように指示する文字列702(図14参照)が含まれる。
【0046】
S58でYESの場合、メタ情報610が全て受信されたことになる。例えば、JPEGファイル610のメタ情報612が6000バイトのデータである場合、最初のS56の処理で先頭から3999バイトまでの範囲のメタ情報612が受信され、次のS56の処理で4000から6000バイトまでの範囲のメタ情報612(即ち全てのメタ情報)が受信されることになる。この場合、6001から7999バイトまでの圧縮データ614も受信されることになる。この場合、S60の処理が実行される。S60では、CPU52は、圧縮データをCDM72(図4参照)に記憶させる。例えば、画像オブジェクト510(photo 001.jpg)の圧縮データが受信された場合、その画像オブジェクト510のファイル名に対応づけて圧縮データ80を記憶させる。CPU52は、S60を終えると、図7のS70に進む。
【0047】
S70では、CPU52は、S60でCDM72に記憶された圧縮データを展開することによって、展開データを作成する。この展開データは、DDM86(図4参照)に一時的に記憶される。さらに、CPU52は、DDM86に記憶された展開データを二値データに変換し、その二値データをBM88(図4参照)に書き込む。展開データは、RGBの256階調のビットマップデータである。二値データは、展開データが二値化されたビットマップデータである。印刷装置46(図3参照)は、後工程(図5のS32)において、この二値データに従って印刷媒体400にドットを形成することができる。なお、以下では、二値データのことを「印刷データ」と呼ぶことがある。CPU52は、展開データと二値データを作成すると、CDM72に記憶されている圧縮データをクリアするとともに、DDM86に記憶されている展開データをクリアする。
【0048】
図16は、2つの画像オブジェクト510,520の展開データが作成される様子を説明するための図を示す。上記のS70の処理が実行されることによって、画像オブジェクト510の部分510aに対応する展開データ(及び二値データ)が作成されることになる。CPU52は、処理対象の画像オブジェクト510について、処理バンド(第1バンド480)に対応する全ての展開データ(即ち二値データ)が作成されたのか否かを判断する(S72)。例えば、図16の部分510aに対応する展開データが作成された段階では、第1バンド480に含まれる部分510b,510cの展開データがまだ作成されていない。この場合、CPU52は、S72でNOと判断する。
【0049】
S72でNOの場合、CPU52は、PC10にHTTPリクエストを送信する(S74)。このHTTPリクエストには、インデックス78に記憶されている値(例えば7999)に続く4000バイト分の範囲(8000〜11999)を送信するように指示する文字列702(図14参照)が含まれる。即ち、図6のS56で受信された圧縮データの続きの圧縮データをリクエストする。この結果、4000バイト分の圧縮データが多機能機40によって受信される(S76)。さらに、CPU52は、CDM72のインデックス78(図4参照)を増加させ、圧縮データをCDM72に記憶させる。次いで、CPU52は、画像オブジェクト510を構成する全ての圧縮データを受信したのか否かを判断する(S78)。S78では、4000バイト分のリクエストを送信した結果として、4000バイトのレスポンスがあった場合に、NOと判断される。一方において、4000バイト分のリクエストを送信した結果として、4000バイト未満のレスポンスがあった場合に、YESと判断される。
【0050】
S78でNOの場合、CPU52は、S70に戻って圧縮データを展開して展開データを作成し、展開データを二値データ(印刷データ)に変換する。これにより、図16の部分510bの展開データが作成され、部分510bの二値データがBM88に書き込まれることになる。この状態では、S72で再びNOと判断される。この結果、CPU52は、S74,S76,S70の処理を再び繰り返すことになる。これにより、図16の部分510cの展開データが作成され、部分510cの二値データがBM88に書き込まれることになる。なお、部分510cは、第2バンド482にも跨っている。この場合、CPU52は、第1バンド480に含まれる二値データのみをBM88に書き込む。また、この場合、CPU52は、S70の処理において、第1バンド480に対応する展開データを作成するために必要であった圧縮データのみをCDM72からクリアする。即ち、第2バンド482に対応する展開データを作成するために必要である圧縮データは、CDM72に残ることになる。この圧縮データは、第2バンド482に対応する展開データを作成する際に利用される。
【0051】
図16の部分510a,510b,510cに対応する二値データが作成された場合、S72でYESと判断される。この場合、図7のS84に進む。S84では、CPU52は、処理対象の画像オブジェクト510の圧縮データがCDM72に存在せず、かつ、受信済フラグ82(図4参照)が「1」であるのか否かを判断する。この受信済フラグ82は、S78でYESの場合に「1」になるものである。即ち、画像オブジェクト510の全ての圧縮データが受信された場合に、画像オブジェクト510に対応する受信済フラグ82が「1」になる。図16の部分510a,510b,510cに対応する二値データが作成された段階では、画像オブジェクト510の全ての圧縮データが受信されていない。このために、S84でNOと判断される。この場合、CPU52は、S86をスキップして図5のS30に進む。一方において、S84でYESの場合、CPU52は、処理対象の画像オブジェクト(例えば510)に対応するコンテキストデータをCDM72からクリアする(S86)。
【0052】
図5のS30では、CPU52は、処理バンド(第1バンド480)に未処理の画像オブジェクトが存在するのか否かを判断する。即ち、CPU52は、第1バンド480に含まれていて、第1バンド480に対応する二値データが作成されてない画像オブジェクトが存在するのか否かを判断する。例えば、画像オブジェクト510の二値データ(図16の符号510a,510b,510cの二値データ)が作成された段階でS30の処理が実行される場合、画像オブジェクト520については二値データがまだ作成されていない。この場合、S30でYESと判断され、S20に戻る。S20では、画像オブジェクト520が処理対象の画像オブジェクトとして特定される。CPU52は、画像オブジェクト520について図6と図7の各処理を実行する。この結果、図16に示される部分520aと部分520bに対応する展開データ(及び二値データ)が作成されることになる。この場合、図5のS30でNOと判断され、S32に進む。
【0053】
S32では、CPU52は、第1バンド480の印刷処理を実行する。CPU52は、BM88(図4参照)に記憶されている二値データ(印刷データ)に従って印刷するように印刷装置46に指示する。これにより、印刷装置46が第1バンド480を印刷することになる。次いで、CPU52は、全てのバンドについて印刷されたのか否かを判断する(S34)。例えば、第1バンド480が印刷された段階では、第2バンド482以降の印刷が行なわれていない。この場合、S34でNOと判断される。CPU52は、次の第2バンド482を処理バンドとして特定する(S36)。また、CPU52は、BM88(図4参照)をクリアする。即ち、第1バンド480の二値データをクリアする。
【0054】
CPU52は、S36を終えると、第2バンド482についてS18以降の処理を実行する。この結果、図16に示される部分510cの一部(第2バンド482に対応する部分)、部分510d、部分510e、部分510f、部分510g、及び部分510hの展開データ(及び二値データ)が作成される。次いで、図16に示される部分520c、部分520d、部分520e、部分520f、及び部分520gの展開データ(及び二値データ)が作成される。これにより、第2バンド482の二値データが完成し、第2バンド482の印刷処理が実行される(図5のS32)。CPU52は、第3バンド484以降についても同様に印刷処理を実行する。これにより、8つの画像オブジェクト510,520等が1ページに印刷された印刷媒体400が得られることになる。CPU52は、全てのバンドの印刷を終えると、図5のS34でYESと判断する。この場合、CPU52は、コネクションを切断し(S38)、処理を終える。
【0055】
上記の実施例によると、画像オブジェクト510の圧縮データが少しずつダウンロードされ(4000バイト単位でダウンロードされ)、展開データ(及び二値データ)が作成される。展開データが作成される毎に、画像オブジェクト510について第1バンド480に対応する全ての展開データが作成されたのか否かが判断される。ここで肯定的な判断がなされると、画像オブジェクト510のダウンロードをストップし、画像オブジェクト520のダウンロードに移行する。この結果、第1バンド480の二値データを作成するのに必要な展開データ(部分510a〜510cに対応する展開データ)のみが作成される。即ち、画像オブジェクト510について第2バンド482や第3バンド484に対応する全ての展開データが作成されるわけではない。このために、展開データを記憶するための記憶容量(本実施例の場合はDDM86の記憶容量)は非常に少なくて済む。本実施例によると、シングルコネクションで複数の画像オブジェクト510,520等の圧縮データをダウンロードして展開データを作成する場合に、メモリ容量を圧迫することなく展開データを効率的に作成することができる。
【0056】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
例えば、上記の実施例の多機能機40は、PC10から画像オブジェクトの圧縮データをダウンロードして印刷データを作成する。しかしながら、多機能機40は、デジタルカメラ、メモリカード、インターネット上のサーバ、その他の外部装置から画像オブジェクトをダウンロードして印刷データを作成してもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【0057】
【図1】バンド単位で印刷データを作成する様子を説明するための図を示す。
【図2】本発明の方法を説明するための図を示す。
【図3】実施例の多機能機システムの構成を示す。
【図4】多機能機のRAMの記憶内容の一例を示す。
【図5】多機能機が実行する処理のフローチャートを示す。
【図6】図5の続きのフローチャートを示す。
【図7】図6の続きのフローチャートを示す。
【図8】XHTML−Printデータの一例を示す。
【図9】XHTML−Printデータの一例を示す。
【図10】XHTML−Printデータの一例を示す。
【図11】XHTML−Printデータに含まれるブランク等を説明するための図を示す。
【図12】複数の画像オブジェクトが1ページの印刷媒体にレイアウトされている様子を示す。
【図13】JPEGファイルのデータ構成を簡単に示す。
【図14】HTTPリクエストの一例を示す。
【図15】HTTPレスポンスの一例を示す。
【図16】画像オブジェクトを少しずつダウンロードする様子を説明するための図を示す。
【符号の説明】
【0058】
2:多機能機システム
10:PC
40:多機能機
200:印刷媒体
210,220:画像オブジェクト
230,232,234:バンド
240,242,244,246,248:圧縮データ

【特許請求の範囲】
【請求項1】
印刷データを作成するために複数の画像オブジェクトの圧縮データを1本のコネクションで外部装置からダウンロードし、ダウンロードされた圧縮データを展開することによって展開データを作成する展開データ作成方法であり、
印刷データの第1バンドとその次の第2バンドの両方に含まれるべき第1画像オブジェクトについて、その第1画像オブジェクトの所定サイズの第1圧縮データをダウンロードする第1ダウンロード工程と、
第1ダウンロード工程でダウンロードされた前記所定サイズの第1圧縮データを展開することによって第1展開データを作成する第1展開工程と、
前記第1バンドに対応する全ての第1展開データが作成されたのか否かを判断する判断工程と、
前記第1バンドに対応する全ての第1展開データが作成されていないと判断工程で判断された場合に、第1ダウンロード工程と第1展開工程と判断工程を繰り返させる工程と、
前記第1バンドに対応する全ての第1展開データが作成されたと判断工程で判断された場合に、前記第1バンドに含まれるべき第2画像オブジェクトについて、その第2画像オブジェクトの第2圧縮データをダウンロードする第2ダウンロード工程と、
第2ダウンロード工程でダウンロードされた第2圧縮データを展開することによって第2展開データを作成する第2展開工程と
を備える展開データ作成方法。
【請求項2】
第1ダウンロード工程でダウンロードされた総データサイズを記憶するデータサイズ記憶工程をさらに備え、
第1ダウンロード工程では、データサイズ記憶工程で記憶された総データサイズの値に続く前記所定サイズ分の範囲の第1圧縮データを送信するように外部装置に要求する
ことを特徴とする請求項1の展開データ作成方法。
【請求項3】
請求項1又は2の展開データ作成方法によって作成された第1展開データと第2展開データを印刷データに変換することによって前記第1バンドの印刷データを作成する印刷データ作成工程を備える印刷データ作成方法。
【請求項4】
印刷データを作成するために複数の画像オブジェクトの圧縮データを1本のコネクションで外部装置からダウンロードし、ダウンロードされた圧縮データを展開することによって展開データを作成する展開データ作成プログラムであり、
印刷データの第1バンドとその次の第2バンドの両方に含まれるべき第1画像オブジェクトについて、その第1画像オブジェクトの所定サイズの第1圧縮データをダウンロードする第1ダウンロード処理と、
第1ダウンロード処理でダウンロードされた前記所定サイズの第1圧縮データを展開することによって第1展開データを作成する第1展開処理と、
前記第1バンドに対応する全ての第1展開データが作成されたのか否かを判断する判断処理と、
前記第1バンドに対応する全ての第1展開データが作成されていないと判断処理で判断された場合に、第1ダウンロード処理と第1展開処理と判断処理を繰り返させる処理と、
前記第1バンドに対応する全ての第1展開データが作成されたと判断処理で判断された場合に、前記第1バンドに含まれるべき第2画像オブジェクトについて、その第2画像オブジェクトの第2圧縮データをダウンロードする第2ダウンロード処理と、
第2ダウンロード処理でダウンロードされた第2圧縮データを展開することによって第2展開データを作成する第2展開処理と
をコンピュータに実行させることを特徴とする展開データ作成プログラム。
【請求項5】
印刷データを作成するために複数の画像オブジェクトの圧縮データを1本のコネクションで外部装置からダウンロードし、ダウンロードされた圧縮データを展開することによって展開データを作成する展開データ作成装置であり、
印刷データの第1バンドとその次の第2バンドの両方に含まれるべき第1画像オブジェクトについて、その第1画像オブジェクトの所定サイズの第1圧縮データをダウンロードする第1ダウンロード手段と、
第1ダウンロード手段によってダウンロードされた前記所定サイズの第1圧縮データを展開することによって第1展開データを作成する第1展開手段と、
前記第1バンドに対応する全ての第1展開データが作成されたのか否かを判断する判断手段と、
前記第1バンドに対応する全ての第1展開データが作成されたと判断手段によって判断された場合に、前記第1バンドに含まれるべき第2画像オブジェクトについて、その第2画像オブジェクトの第2圧縮データをダウンロードする第2ダウンロード手段と、
第2ダウンロード手段によってダウンロードされた第2圧縮データを展開することによって第2展開データを作成する第2展開手段と
を備える展開データ作成装置。
【請求項6】
印刷データを作成するために複数の画像オブジェクトのデータを1本のコネクションで外部装置からダウンロードするダウンロード方法であり、
印刷データの第1バンドとその次の第2バンドの両方に含まれるべき第1画像オブジェクトについて、その第1画像オブジェクトの所定サイズの第1データをダウンロードする第1ダウンロード工程と、
前記第1バンドに対応する全ての第1データがダウンロードされたのか否かを判断する判断工程と、
前記第1バンドに対応する全ての第1データがダウンロードされていないと判断工程で判断された場合に、第1ダウンロード工程と判断工程を繰り返させる工程と、
前記第1バンドに対応する全ての第1データがダウンロードされたと判断工程で判断された場合に、前記第1バンドに含まれるべき第2画像オブジェクトについて、その第2画像オブジェクトの第2データをダウンロードする第2ダウンロード工程と
を備えるダウンロード方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2008−246775(P2008−246775A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2007−89463(P2007−89463)
【出願日】平成19年3月29日(2007.3.29)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】