JP2006174170A - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP2006174170A
JP2006174170A JP2004364789A JP2004364789A JP2006174170A JP 2006174170 A JP2006174170 A JP 2006174170A JP 2004364789 A JP2004364789 A JP 2004364789A JP 2004364789 A JP2004364789 A JP 2004364789A JP 2006174170 A JP2006174170 A JP 2006174170A
Authority
JP
Japan
Prior art keywords
packet
data
block
image
size
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
Application number
JP2004364789A
Other languages
English (en)
Inventor
克幸 ▲高▼橋
Katsuyuki Takahashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004364789A priority Critical patent/JP2006174170A/ja
Publication of JP2006174170A publication Critical patent/JP2006174170A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Abstract

【課題】 メモリ等の記憶装置上でタイル状に分割され、可変長方式等で圧縮された画像をバッファ上で適切に取り扱うことができ、メモリ等の記憶装置を有効に使用することができる画像処理装置及び画像処理方法を提供する。
【解決手段】 画像を入力してバッファに一時記憶する。一時記憶された画像を複数のブロックに分割して圧縮するが、この際、圧縮された第1のブロックの先頭のパケットから順にパケットのデータサイズを積算して所定のサイズを超える直前のパケットを決定し、先頭のパケットから直前のパケットまで積算されたデータが所定サイズになるように調整する。そして、先頭のパケットから調整後の直前のパケットまでのデータを第1のブロックの圧縮データとしてHDDに出力することで、複数のブロックを蓄積する。
【選択図】 図2

Description

本発明は、タイル状に分割して圧縮された画像をメモリ上で扱う画像処理装置及び画像処理方法に関する。
複写機等の各種画像処理装置でメモリ上に記憶されている画像を扱う場合、例えば、特開2001−103473公報(特許文献1)で公開されているような画像パケット構造のように、画像をタイル状に分割してタイルごとに圧縮して扱う方式がある。このような方式は、画像を部分ごとに圧縮することができるため、メモリの使用効率がよく、また部分的に伸張・圧縮することができるために画像処理も高速に行えるという利点がある。また、連続して同じデータが続くような画像の場合には、パケットヘッダに同じデータであることを示すフラグを立てておき、データ自体は前のパケットのデータを参照する、という方法をとることで、画像全体の圧縮率を高めることも行われている。
一方、PDLデータのラスタライズにおいて、画像をバンドごとに分割してラスタライズを行う、という方法も用いられている。この場合、画像メモリを少なくしてハードウェア資源を有効に利用するために、1ページ分のラスタ画像メモリを持つのではなく、例えば、リングバッファを用いて、ハードディスク(HDD)等の大容量記憶装置へラスタライズを行った画像をバンドごとに転送して蓄積する、という方法をとることが多い。
特開2001−103473公報
しかしながら、画像をタイル状に分割して圧縮を行う場合、特に圧縮方式がJPEG方式のように可変長である場合には、リングバッファの1ブロックにタイルデータが丁度収まるという保証がない。そのため、リングバッファの先頭や末尾に、データが揃わないタイルが存在してしまうといった問題や、リピートされたタイルがリングバッファのブロック間にまたがってしまうという問題が生じ、タイルごとに圧縮された画像をリングバッファを用いて適切に取り扱うことができなかった。
本発明は、このような事情を考慮してなされたものであり、メモリ等の記憶装置上でタイル状に分割され、可変長方式等で圧縮された画像をバッファ上で適切に取り扱うことができ、メモリ等の記憶装置を有効に使用することができる画像処理装置及び画像処理方法を提供することを目的とする。
上記課題を解決するため、本発明は、
画像を入力する入力手段と、
入力された前記画像を一時記憶する一時記憶手段と、
一時記憶された前記画像を複数のブロックに分割して圧縮する圧縮手段と、
圧縮された前記複数のブロックを蓄積する蓄積手段とを備える画像処理装置であって、
圧縮された第1のブロックの先頭のパケットから順にパケットのデータサイズを積算して所定サイズを超える直前のパケットを決定する決定手段と
前記先頭のパケットから前記直前のパケットまで積算されたデータが所定サイズになるように調整する調整手段と、
前記先頭のパケットから調整後の前記直前のパケットまでのデータを第1のブロックの圧縮データとして前記蓄積手段に出力する出力手段と
をさらに備えることを特徴とする。
また、本発明に係る上記画像処理装置において、前記調整手段は、前記第1のブロックにおいて積算されたデータが前記所定サイズを超えるときのパケットのデータが途中で終わっており、第2のブロックの先頭から該パケットの続きが始まっている場合、前記パケットを第2のブロックのパケットバッファへコピーして残りのデータサイズを記憶しておき、前記第2のブロックの圧縮データを生成する際に、前記パケットを該第2のブロックの先頭パケットとしてデータの積算を行うことを特徴とする。
さらに、本発明に係る上記画像処理装置において、前記調整手段は、前記第1のブロックにおいて積算されたデータが前記所定サイズに等しい場合、該第1のブロックの最終パケットを第2のブロックのパケットバッファにコピーし、該第1のブロックの残りのデータサイズが0であると記憶し、前記第2のブロックの圧縮データを生成する際に、該第2のブロックの先頭パケットからデータの積算を行うことを特徴とする。
さらにまた、本発明に係る上記画像処理装置において、前記調整手段は、前記第2のブロックの前記先頭パケットがリピートパケットであるか否かを判定し、リピートパケットでないと判定した場合に前記第2のブロックの先頭パケットからデータの積算を行うことを特徴とする。
さらにまた、本発明に係る上記画像処理装置において、前記調整手段は、前記第2のブロックの前記先頭パケットがリピートパケットであるか否かを判定し、リピートパケットであると判定した場合、前記最終パケットを前記第2のブロックのパケットバッファにコピーし、残りのデータサイズが0であることを記憶し、前記第2のブロックの圧縮データを生成する際に、該第2のブロックの先頭パケットを前記パケットバッファにコピーされたパケットを用いてデータの積算を行うことを特徴とする。
さらにまた、本発明に係る上記画像処理装置は、前記パケットバッファが、1パケットのデータを圧縮せずに記憶できるサイズであることを特徴とする。
さらにまた、上記課題を解決するため、本発明は、
画像を入力する入力工程と、
入力された前記画像を一時記憶手段に一時記憶する一時記憶工程と、
一時記憶された前記画像を複数のブロックに分割して圧縮する圧縮工程と、
圧縮された前記複数のブロックを蓄積手段に蓄積する蓄積工程とを有する画像処理方法であって、
圧縮された第1のブロックの先頭のパケットから順にパケットのデータサイズを積算して所定サイズを超える直前のパケットを決定する決定工程と
前記先頭のパケットから前記直前のパケットまで積算されたデータが所定サイズになるように調整する調整工程と、
前記先頭のパケットから調整後の前記直前のパケットまでのデータを第1のブロックの圧縮データとして前記蓄積手段に出力する出力工程と
をさらに有することを特徴とする。
具体的には、データの圧縮がなかった場合の生データのサイズ×2のバッファを用意し、1バンドずつレンダリングしながら、生データのサイズ×1/2のデータが蓄積したところで、
(1)パケットテーブル(PacketTable)の先頭から順にパケットのサイズを加算していき、HDD転送単位になるように最終パケット(Packet)を決定し、
(2)最終パケットのパケットサイズ(PacketSize)をHDD転送単位になるように増し、
(3)HDD転送単位になったデータをHDDへ蓄積する、
という手順でHDDへの蓄積処理を行う。
また、入力側の圧縮率が平均で1/2よりも高くなる場合、バッファサイズを生データ×3/2、転送単位を生データ×1/2とする。これにより、ダブルバッファ動作を行うことが可能となる。
さらに、バッファの空き容量が生データのサイズ未満の場合、レンダリングへはメモリを渡さずに、HDDへの蓄積が終わってメモリが解放され、バッファの空きが生データのサイズ以上になったときに、次のレンダリングを開始する。
本発明によれば、メモリ等の記憶装置上でタイル状に分割され、可変長方式等で圧縮された画像をバッファ上で適切に取り扱うことができ、メモリ等の記憶装置を有効に使用することができる。
以下、図面を参照して、本発明に係る画像処理の一実施形態について詳細に説明する。
図1は、本発明の一実施形態に係る画像形成装置システムの全体の構成を示すブロック図である。図1において、画像形成装置200は、画像入力デバイスであるスキャナ部2070、画像出力デバイスであるプリンタ部2095、コントローラユニット(Controller Unit)2000、及びユーザインタフェースである操作部2012を備えている。画像形成装置200において、スキャナ部2070、プリンタ部2095、及び操作部2012は、それぞれコントローラユニット2000に接続され、当該コントローラユニット2000は、LAN2011等のネットワーク伝送手段や公衆回線に接続されている。
公衆回線からは、カラー画像送信を含むG3、G4ファックスによる送信が可能である。また、LAN2011には、画像形成装置200と同様の機器構成を有する他の画像形成装置220、230が接続されている。画像形成装置220、230は、それぞれスキャナ部2270、2370、プリンタ部2295、2395、操作部2212、2312を備えており、それらがコントローラユニット(Controller Unit)2200、2300に接続されている。
また、LAN2011には、パーソナルコンピュータ(PC)240が接続されており、FTP、SMBプロトコルを使用したファイルの送受信、電子メールの送受信が可能である。
図2は、図1に示す画像形成装置200の細部構成を示すブロック図である。図2に示すように、画像形成装置200のコントローラユニット(Controller Unit)2000は、画像入力デバイスであるカラースキャナで構成されるスキャな部2070や画像出力デバイスであるカラープリンタで構成されるプリンタ部2095と接続し、一方で、LAN2011や公衆回線(WAN)2051と接続することで、画像情報やデバイス情報の入出力を行うためのコントローラである。
CPU2001は、システム全体を制御するコントローラである。RAM2002は、CPU2001が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM2003はブートROMであり、システムのブートプログラムが格納されている。ハードディスク(HDD)2004はハードディスクドライブであり、システムソフトウェア、画像データ等を格納する。
操作部インタフェース(I/F)2005は、操作部(UI)2012とのインタフェース部であり、操作部2012に表示する画像データを操作部2012に対して出力する。また、操作部I/F2005は、操作部2012から本システム使用者が入力した情報をCPU2001に伝える役割をする。ネットワーク(Network)I/F2007はLAN2011に接続し、情報の入出力を行う。モデム(Modem)2050は公衆回線2051に接続し、画像情報の入出力を行う。
2値画像回転部2052及び2値画像圧縮・伸張部2053は、モデム2053で2値画像を送信する前に、画像の方向を変換したり、所定の解像度或いは相手能力に合わせた解像度に変換するための処理を行う。圧縮器2006及び伸張器2013は、JBIG、MMR、MR、MH等の圧縮・伸張方式をサポートしている。
DMAC2009はDMAコントローラであり、RAM2002に格納されている画像をCPU2001を介することなく読み取り、イメージバスインタフェース(ImageBusI/F)2008に対して画像転送する、若しくは画像バス2010からの画像をCPU2001を介することなくRAM2002に書き込む。以上のデバイスがシステムバス2054に接続される。
イメージバス2008は、画像バス2010を介して高速な画像の入出力を制御するためのインタフェースである。圧縮器2006は、画像バス2010に画像を送出する前に、例えば32画素×32画素の単位でJPEG圧縮する。伸張器2013は、画像バス2010を介して送られた画像を伸張する。
ラスターイメージプロセッサ(RIP)2018は、ホストコンピュータからのPDLコードをネットワークI/F2007を介して受け取り、システムバス2054を通して、CPU2001がRAM2002に格納する。CPU2001は、PDLコードを中間コードに変換し、再度システムバス2054を介してRIP2018に入力し、ビットマップイメージ(多値)に展開する。
スキャナ画像処理部2014は、スキャナ部2070から入力されたカラー画像や白黒画像に対して、適切な各種画像処理(例えば、補正、加工、編集処理等)を行って出力する(多値)。同様に、プリンタ画像処理部2016は、プリンタ部2095に対して適切な各種画像処理(例えば、補正、加工、編集処理等)を行うプリント時には伸張器2013で2値多値変換を行うので、2値及び多値出力が可能である。
画像変換部2030は、RAM2002上にある画像を画像変換し、再度、RAM2002に書き戻すときに使われる各種画像変換機能を有する。画像変換部2030において、回転器2019は、32画素x32画素単位の画像を指定された角度で回転することができ、2値及び多値の入出力に対応している。変倍器2020は、画像の解像度を変換(例えば、600dpiから200dpi)したり、変倍したりする機能(例えば、25%から400%まで)を有する。尚、変倍する前には、32×32画素の画像を32ライン単位の画像に並び替える。
色空間変換器2021は、多値入力された画像をマトリクス演算、及びルックアップテーブル(LUT)により、例えばメモリ上にあるYUV画像をLab画像に変換し、メモリ上に格納する。また、この色空間変換器2021は、3×8のマトリクス演算機能、及び1次元LUTを有しており、公知の下地とばし処理や裏写り防止処理等を行うことができる。尚、変換された画像は、色空間変換器2021から多値で出力される。
2値多値変換器2022は、1ビット(bit)の2値画像を多値8ビット、256階調に変換する。逆に、多値2値変換器2026は、例えばメモリ上にある8ビット、256階調の画像を誤差拡散処理等の方法により、1ビット、2階調に変換し、メモリ上に格納する。合成器2023は、メモリ上の2枚の多値画像画像を合成し、1枚の多値画像にする機能を有する。例えば、合成器2023は、メモリ上にある会社ロゴの画像と原稿画像とを合成することで、原稿画像に簡単に会社ロゴをつけることができる。
間引き器2024は、多値画像の画素を間引くことで、解像度変換を行うユニットであり、例えば、1/2、1/4、1/8の多値画像を出力可能である。間引き器2024は、変倍器2020と合わせて使うことで、より広範囲な拡大、縮小処理を行うことができる。移動器2025は、入力された2値画像、多値画像に余白部分をつけたり、余白部分を削除したりして出力することができる。
このように、回転器2019、変倍器2020、色空間変換器2021、2値多値変換器2022、合成器2023、間引き器2024、移動器2025、及び多値2値変換器2026は、それぞれ連結して動作することが可能であり、例えばメモリ上の多値画像を画像回転、解像度変換する場合は、両処理をメモリを介さずに連結して行うことができる。
図3は、本実施形態で使用される画像の形式の一例を説明するための図である。本実施形態で使用される画像の形式は、前述した特開2001−103473公報(特許文献1)で開示されている画像パケット構造を利用する。
図2に示す圧縮器2006では、ラスター形式の画像を図3に示すように32×32画素単位のパケットとして並び替え、パケット単位でJPEG圧縮を行う。同時に、パケットにパケットの位置を示すID、色空間、QテーブルID、データ長等の情報を付加してヘッダとする。また、文字、写真を示す2値のデータ(像域フラグ)も同様に圧縮して、JPEGデータの後に付随させる。
図4は、本実施形態で使用されるパケットデータの一例を示す図である。図2における伸張器2013では、このヘッダ情報をもとにJPEGデータを展開し、ラスター画像に並び替える。このようなパケット画像にすることで、例えば、画像回転処理を行う場合には、パケット内部の画像のみを回転し、パケットIDの位置を変更することで、部分的に伸張圧縮で回転することができるため、非常に効率がよい。尚、イメージバス2010を流れる画像はすべてパケット画像になる。
また、画像をメモリ上で扱う場合には、パケットテーブルを用いる。パケットテーブルは、1要素が1つのパケットの先頭アドレスとサイズを示しており、これを主走査及び副走査に並べることにより一つの画像を構成している。このようなパケットテーブルを用いることにより、画像を構成するパケットがメモリ上で離散的に配置されている場合でも一つの画像として扱うことが可能になる。複数のパケットが同じデータである場合、例えば白画像の繰り返しのような場合には、図5に示すように複数のパケットテーブルが同じパケットを指すこととなる。これにより、画像データの総サイズを小さくすることができる。すなわち、図5は、複数のパケットが同じデータである場合のパケットテーブルと画像との関係を説明するための図である。
図6は、パケット画像の模式図である。図3に示すようなパケット画像をHDDに格納する場合には、パケットテーブルを用いずに、図6の模式図2131に示すように連続したパケットを順番に並べる。また、図5に示す画像データのように複数のパケットテーブルが連続して同じパケットデータを指している場合には、模式図2132に示すように同一パケットの先頭のみデータ部が入ったパケット(h+data)になり、続くデータはリピートフラグの立ったヘッダのみの画像データ部が無いパケット(r)となる。
FAX送信や2値画像回転部2052、2値画像圧縮・伸張部2053等でラスター画像が必要な場合は、パケット画像からラスター画像への変換をソフトウェア処理によって行う。
図7は、コントローラユニット2000のスキャナ画像処理部2014での処理内容の詳細を説明するための図である。スキャナ部2070から入力されたRGB各8ビットの輝度信号は、マスキング部2501によりCCDのフィルタ色に依存しない標準的なRGB色信号に変換される。次に、フィルタ処理部2502では、例えば9×9のマトリクスを使用し、画像をぼかしたり、メリハリをつけるような処理が行われる。
また、ヒストグラム処理部2503は、入力画像中の画像信号データのサンプリングをする処理部であり、入力画像の下地レベル判定に使用される。このモジュールでは主走査方向、副走査方向にそれぞれ指定した開始点から終了点で囲まれた矩形領域内のRGBデータを、主走査方向、副走査方向に一定のピッチでサンプリングし、ヒストグラムを作成する。このヒストグラムは、下地とばしや、裏写り防止が指定されたときに読み出される。そして、ヒストグラムから原稿の下地を推測し、下地とばしレベルとして、画像とともにメモリやHDDに保存、管理され、印刷や送信時の画像処理に使用される。
ガンマ補正処理部2504では、画像全体の濃度を濃く、或いは薄くするように処理が行われる。例えば、入力画像の色空間を任意の色空間に変換したり、入力系の色味に関する補正処理を行う部分である。また、色空間変換部2505は、原稿がカラーか白黒かを判断するために変倍前の画像信号を公知のLabに変換する。このうちa、bは色信号成分を表しており、比較器2505内の所定のレベル以上であれば有彩色と判定し、そうでなければ無彩色と判定して、1ビットの判定信号を比較器2505から出力する。
カウンタ2507は、比較器2506からの出力を計測する。文字/写真判定器2508は、画像から文字エッジを抽出し、画像を文字と写真に分離する機能を有する。そして、その出力として、文字写真判定信号が得られる。この信号も画像とともにメモリやHDDに格納され、印刷時に使用される。特定原稿判定器2509は、入力画像信号と当該判定器内部で持つパターンとがどの程度一致するかを比較し、一致又は不一致という判定結果を特定原稿判定信号として読み出すことが可能である。そして、その判定結果に応じて、画像形成装置では、画像を加工し、紙幣や有価証券等の偽造を防止することが可能となる。
図8は、コントローラユニット2000のプリンタ画像処理部2016での処理内容の詳細を説明するための図である。図8に示すように、下地とばし部2601は、画像データの地色を飛ばし、不要な下地のカブリ除去を行う。例えば、3×8のマトリクス演算や、1次元LUTにより下地飛ばしを行う。モノクロ生成部2602は、カラー画像データをモノクロデータに変換し、単色としてプリントする際に、カラー画像データ、例えばRGBデータをGray単色に変換するモノクロ生成部である。例えば、RGBに任意の定数を掛け合わせ、Gray信号とする1×3のマトリクス演算から構成される。
出力色補正部2603は、画像データを出力するプリンタ部2095の特性に合わせて色補正を行う。例えば、4×8のマトリクス演算や、ダイレクトマッピングによる処理から構成される。フィルタ処理部2604は、画像データの空間周波数を任意に補正する処理部であり、例えば9×9のマトリクス演算を行う処理を行う。ガンマ補正部2605は、出力するプリンタ部2095の特性に合わせてガンマ補正を行う処理を行い、通常1次元のLUTから構成される。
中間調補正部2606は、出力するプリンタ部2095の階調数にあわせて任意の中間調処理を行う処理部である。中間調補正部2606は、2値化や32値化等の任意のスクリーン処理や、誤差拡散処理を行う。尚、各処理は、図示しない文字/写真判定信号によって切り替えることも可能である。
ドラム間遅延メモリ2607は、CMYKの各色のドラムを持つカラープリンタ(プリンタ部2095)において、CMYKの印字タイミングをドラム間分ずらすことで、CMYK画像を重ね合わせるためのメモリである。これにより、CMYK各色4ドラムを持つカラープリンタにおいて、画像の位置を合わせるために遅延させることができる。
図9は、本実施形態に係る画像形成装置200を実現するための画像入出力デバイスの一例を示す図である。図9において、画像入力デバイスであるスキャナ部2070は、原稿となる紙上の画像を照明し、不図示のCCDラインセンサを走査することで、ラスターイメージデータとして電気信号に変換する。原稿用紙は、原稿フィーダ2701のトレイ2702にセットされ、本装置使用者が操作部2012から読み取り起動指示することにより、コントローラユニットのCPU2001がスキャナ部2070に指示を与え、原稿フィーダ2071のトレイ2702から原稿用紙を1枚ずつフィードし、原稿画像の読み取り動作を行う。
また、画像出力デバイスであるプリンタ部2095は、ラスターイメージデータを用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。尚、プリント動作の起動は、コントローラユニットのCPU2001からの指示によって開始する。プリンタ部2095には、異なる用紙サイズ又は異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット2703、2704、2705がある。また、排紙トレイ2706は印字し終わった用紙を受ける排紙トレイである。
図10は、本実施形態に係る画像処理装置の操作部2012の細部構成を示す図である。図10において、LCD表示部2801は、LCD上にタッチパネルシート2802が貼られており、システムの操作画面及びソフトキーを表示するとともに、表示されたキーが押下されるとその位置情報をコントローラユニットのCPU2001に伝える。
スタートキー2803は,原稿画像の読み取り動作を開始する時などに用いる。スタートキー2803の中央部には、緑と赤の2色LED2804があり、その色によってスタートキー2803が使える状態にあるかどうかを示す。また、ストップキー2805は、稼働中の動作を止める働きをする。IDキー2806は、使用者のユーザIDを入力する時に用いる。リセットキー2807は、操作部2012からの設定を初期化する時に用いる。
図11は、本実施形態に係る画像形成装置の操作画面上に表示される初期画面の一例を示した図である。尚、図11に示す画面は、各画像形成機能設定後に戻ってくる標準画面でもある。図11において、コピーボタン3101は、コピー設定を行うための画面切り替えを行うためのボタンである。また、送信ボタン3102は、スキャンした画像をファックスや電子メールで送信する設定を行うための画面切り替えを行うためのボタンである。さらに、ボックスボタン3103は、内蔵HDDにスキャン画像、PDL画像を格納する、或いは格納されたスキャン画像、PDL画像を印字する、送信する、或いは編集する設定を行うための画面切り替えを行うためのボタンである。
また、ウィンドウ3104は、読み込み設定ボタン3105によって設定された画像読み込み時の設定を表示するためのウィンドウである。読み込み設定ボタン3105は画像読み込み時の解像度、濃度等を設定する。送信設定ボタン3106は、タイマー送信時のタイマー設定、HDD或いはプリンタに印字する場合の設定等を行う。ウィンドウ3107は、宛先表ボタン3108によって指定された送信宛先の表示を行う。詳細情報ボタン3109は、ウィンドウ3107に表示された一宛先の詳細な情報の表示を行う。消去ボタン3110は、ウィンドウ3107に表示された一宛先の消去を行う。
図12は、図11に示す画面において読み込み設定ボタン3105が押下されたときに表示されるポップアップウィンドウを示す図である。図12において、3201は読みとり原稿サイズをポップアップウィンドウの中から選択入力するボックスであり、設定された読み取りサイズは3202に表示される。
3203は、原稿の読み取りモードを選択するためのボックスであり、押下することによって、カラー/ブラック/自動(ACS)の3種類のうちのいずれかが選択できる。また、カラーモードに関しては、コピー、ボックスの各ボタンが押下されて表示される画面上でも同様に選択ができる。例えば、カウンタ2507の計測結果が所定値よりも小さければ白黒原稿、大きければカラー原稿と判断して、カラー原稿の場合はカラー画像を、白黒原稿の場合には白黒画像を、ACSの場合にはカラー画像と原稿がカラーか白黒かを判別した結果を蓄積する。
また、図12において、3204は読み取り時の解像度を指定するためポップアップウィンドウを用いた選択入力ボックスである。さらに、3205は原稿の読み取り濃度を調整するためのスライダーであり、例えば9段階の調整を行うことができる。3206は、例えば新聞のように下地がかぶった画像を読み込む場合に、濃度を自動的に決定するためのボタンである。尚、ボタン3206については、コピー画面でも同様の設定が可能である。
図13は、図11に示す画面においてコピーボタン3101が押下されたときに表示される画面例を示す図である。図13に示す画面において、3301はコピーできる状態が否かを示すウィンドウであり、同時に設定したコピー部数も表示される。3302は、上述した濃度を自動的に決定するためのボタン3206と同等の機能であり、下地除去を自動的にするかしないかを選択するためのボタンである。3303は、前述したスライダー3205と同等の機能を有しており、例えば9段階の濃度調整が可能なスライダーである。
さらに、図13において、3304は原稿のタイプを選択するボタンであり、文字・写真・地図、文字、印画紙写真、印刷写真等のうちのいずれかが選択できる。3305は応用モードボタンであり、縮小レイアウト(例えば、複数枚の原稿を1枚の用紙に縮小印字する機能)や、カラーバランス(例えば、CMYKの各色微調整)等が設定できる。3306は各種フィニッシングに関する設定を行うためのボタンであり、シフトソート、ステープルソート、グループソートのいずれかを設定することができる。さらに、3307は両面読み込み、及び、両面印刷に関する設定を行うためのボタンである。
図14は、図11に示す画面においてボックスボタン3103が押下されたときに表示される画面例を示す図である。図14において、3401はHDDを論理的に区分した各フォルダを示している。ここで、各フォルダにはフォルダ番号があらかじめ割り振られており、3401は0番のフォルダになる。また、フォルダ番号の横には、そのフォルダで使用しているディスク容量の割合が表示されている。さらに、各フォルダには任意の名前をつけることができ、つけられた名前もここに表示される。さらにまた、3402はHDD全体の使用量が表示される表示領域である。
図15は、図14に示す画面において0番のフォルダ部分が押下されたときに表示される画面例を示す図である。図15において、3501及び3502は、フォルダに格納されている文書を示す。尚、文書は複数のページで構成されているものとする。ここで、文書3501はスキャンした文書であり、スキャン文書であることを示すアイコン表示、HDD使用量、さらにユーザが任意に設定できる文書名表示を表示している。また、3502はPDLデータから格納したPDL文書であるアイコンが表示されている。そして、当該アイコンを押下することで、その文書が選択されたことが反転表示によって示される。
送信ボタン3503は、選択された文書を送信するためのボタンである。読み込みボタン3504は、スキャナから原稿を読み込み、文書を生成するためのボタンである。全選択ボタン3505は、フォルダ内のすべての文書を選択するためのボタンである。削除ボタン3506は、選択された文書を削除するためのボタンである。
さらに、プリントボタン3507は、選択された文書を印刷するためのボタンである。編集ボタン3508は選択された文書を編集するためのボタンである。編集ボタン3508は、例えば2つの文書を選択して結合し、1つの文書にして保存したり、特定のページを削除する機能を持っている。詳細情報ボタン3509は、最後に選択された文書の詳細情報を表示するためのボタンである。このボタンにより、文書名以外にも解像度、原稿サイズ、カラー等の情報を見ることができる。また、閉じるボタン3510は、本画面を閉じるためのボタンである。
図16は、本発明の一実施形態に係る画像処理を実行するためのソフトウェア構成を説明するための図である。図16において、UI制御部4010は、操作部2012を制御し、コピーアプリケーション4020、送信アプリケーション4021及びボックスアプリケーション4022は、UI制御部4010からの指示を受け、コピー動作、送信動作及びボックス画面からのスキャン、プリントを実行する。
また、PDLアプリケーション4023は、ネットワークアプリケーション4120からのPDLプリントデータを受けてPDLプリントジョブを投入する。共通インタフェース4030は、機器制御部分の機器依存部分を吸収する。さらに、ジョブマネージャ4040は、共通インタフェース4030から受け取ったジョブ情報を整理し、下位層のドキュメント処理部に伝達する。
ドキュメント処理部は、ローカルコピーであればスキャンマネージャ4050とプリントマネージャ4090、リモートコピーの送信ジョブ或いは送信ジョブであればスキャンマネージャ4050とファイルストアマネージャ4100、リモートコピーの受信ジョブであればファイルリードマネージャ4060とプリントマネージャ4090、LIPSやPostScript等のPDLプリントではPDLマネージャ4070とプリントマネージャ4090である。尚、各ドキュメントマネージャ間の同期とり、及び各種画像処理を行うイメージマネージャ4110への画像処理の依頼は、シンクマネージャ4080を介して行う。また、スキャン及びプリント時の画像処理や画像ファイルの格納は、イメージマネージャ4110が行う。
まず最初に、ローカルコピーのソフトウェア処理について説明する。使用者の指示により、UI制御部4010からコピー指示とともにコピーの設定がコピーアプリケーション4020に伝えられる。コピーアプリケーション4020は、UI制御部4010からの情報を共通インタフェース4030を介して、機器制御を行うジョブマネージャ4040に伝える。ジョブマネージャ4040は、スキャンマネージャ4050とプリントマネージャ4090にジョブの情報を伝達する。
スキャンマネージャ4050は、図示しないデバイスI/F(デバイスI/Fは、コントローラユニット2000とスキャナ部2070、及びコントローラユニット2000とプリンタ部2095を結ぶシリアルI/F)を介して、スキャナ2070にスキャン要求を行う。また、スキャンマネージャ4050は、同時に、シンクマネージャ4080を介してイメージマネージャ4110にスキャン用の画像処理要求を出す。
イメージマネージャ4110は、スキャンマネージャ4050の指示に従って、スキャナ画像処理部2014の設定を行う。そして、設定が完了した後、シンクマネージャ4080を介してスキャン準備完了を伝える。その後、スキャンマネージャ4050は、スキャナ部2070に対してスキャンを指示する。尚、スキャン画像転送完了は、図示しないハードウェアからの割り込み信号によってイメージマネージャ4110に伝わる。
イメージマネージャ4110からのスキャン完了を受けて、シンクマネージャ4080は、スキャン完了をスキャンマネージャ4050とプリントマネージャ4090に伝える。同時に、シンクマネージャ4080は、RAM2002に蓄積された圧縮画像をHDD2004にファイル化するため、イメージマネージャ4110に指示する。イメージマネージャ4110は、その指示に従ってメモリ上の画像(文字/写真判定信号を含めて)をHDD2004に格納する。尚、画像の付随情報として、図示しないSRAMにカラー判定/白黒判定結果、下地とばしを行うための下地とばしレベル、画像入力元としてスキャン画像、色空間RGBも格納しておく。また、HDD2004への格納が終了し、スキャナ2070からのスキャン完了を受けた場合、シンクマネージャ4080を介してスキャンマネージャ4050にファイル化終了を通知する。
スキャンマネージャ4050は、ジョブマネージャ4040に対して終了通知を返し、ジョブマネージャ4040は共通インタフェース4030を介してコピーアプリケーション4020へ返す。プリントマネージャ4090は、メモリに画像が入った時点でデバイスI/Fを介して、プリンタ部2095に印刷要求を出す。同時に、シンクマネージャ4080にプリント画像処理要求を行う。
シンクマネージャ4080は、プリントマネージャ4090から要求を受けた場合、画像処理設定をイメージマネージャ4110に依頼する。イメージマネージャ4110は画像の付随情報に従ってプリンタ画像処理部2015の設定を行い、シンクマネージャ4080を介してプリントマネージャ4090にプリント準備完了を伝える。プリントマネージャ4090は、プリンタ部2095に対して印刷指示を出す。尚、プリント画像転送完了は、図示しないハードウェアからの割り込み信号によってイメージマネージャ4110に伝わる。
イメージマネージャ4110からのプリント完了を受けて、シンクマネージャ4080は、プリント完了をプリントマネージャ4090に伝える。プリントマネージャ4090は、プリンタ部2095からの排紙完了を受け、ジョブマネージャ4040に対して終了通知を返し、ジョブマネージャ4040は共通インタフェース4030を介してコピーアプリケーション4020へ返す。コピーアプリケーション4020は、スキャン及びプリントが終了した後、ジョブ終了をUI制御部4010に通知する。
ここで、リモートコピーのスキャンジョブ、送信ジョブの場合は、プリントマネージャ4090に代わってストアマネージャ4100がジョブマネージャ4040からの要求を受ける。スキャン画像をHDDに格納し終わった時点で、シンクマネージャ4080から格納完了通知を受け、それを共通インタフェース4030を介して、リモートコピーの場合であればコピーアプリケーション4020に、送信ジョブの場合であれば送信アプリケーション4021に通知する。
コピーアプリケーション4020、送信アプリケーション4021は、この通知を受けた後、ネットワークアプリケーション4120に対して、HDDに格納されたファイルの送信を依頼する。そして、依頼を受けたネットワークアプリケーション4120がファイルを送信する。ネットワークアプリケーション4120は、ジョブ開始時にコピーアプリケーション4020からコピーに関する設定情報を受け、それをリモート側の機器に通知する。ネットワークアプリケーション4120は、リモートコピーの場合、機器固有の通信プロトコルを使用して送信を行う。また、送信ジョブの場合は、FTP、SMBのような標準的なファイル転送プロトコルを使用する。
一方、ファックス送信する場合は、ファイル格納後、送信アプリケーション4021から共通インタフェース4030とジョブマネージャ4040を介してFAXマネージャ4041に送信が指示される。FAXマネージャ4041は、モデム2050を介して相手機器とネゴシエーションし、必要な画像処理(カラー→白黒変換、多値2値変換、回転、変倍)をイメージマネージャ4110に依頼し、変換後の画像をモデム2050を使って送信する。
また、送信先にプリンタがある場合、送信アプリケーション4021は、共通インタフェース部4030を介してプリントジョブとしてプリントの指示を行う。そのときの動作は、以下で説明するリモートコピーのプリントジョブの場合と同様である。また、送信宛先が機器内のボックス宛先になっているときは、ファイルストアマネージャ4100によって機器内のファイルシステムに格納する。
また、FAX受信時は、FAXマネージャ4041がモデム(Modem)2050を使って画像を受信し、画像ファイルとしてHDD2004に格納する。HDD2004格納後にボックスアプリケーション4022に通知すると、ボックスアプリケーション4022から受信プリントの指示が共通インタフェース4030を介してジョブマネージャ4040になされる。その後は、通常のボックスプリントジョブと同じ動作になるため説明を省略する。
リモートコピーのプリントジョブの場合は、送信側からの画像をネットワークアプリケーション4120がHDD2004に保存するとともにコピーアプリケーション4020に対してジョブを発行する。コピーアプリケーション4020は、共通インタフェース部4030を介してジョブマネージャ4040にプリントジョブを投入する。ローカルコピーとは異なり、スキャンマネージャ4050に代わってファイルリードマネージャ4060がジョブマネージャ4040からの要求を受ける。そして、受信画像をHDD2004からメモリに展開するための要求をシンクマネージャ4080を介して、イメージマネージャ4110に行う。
イメージマネージャ4110はメモリに画像を展開する。このとき、イメージマネージャ4110は、まずHDD2004上の画像のファイルサイズを調べる。ここで、HDD2004上の画像データサイズが確保できるページメモリのサイズよりも小さければ、HDD2004から画像ファイルを直接読み出してメモリ上に展開する。一方、HDD2004上の画像データサイズが確保できるページメモリのサイズよりも大きい場合、以下に説明する画像データの再圧縮処理を行いながら画像の展開を行う。
図17は、本実施形態に係るコントローラユニット2000内で再圧縮処理を行うときの画像の展開処理を模式的に説明する図である。図17において、5001及び5002は、メモリ上に確保されたリングバッファであり、例えば1MBのように固定のサイズが割り当てられている。イメージマネージャ4110はリングバッファ5001、5002に画像をHDD2004から読み出しつつ、伸張器2013と圧縮器2006を用いて画像の再圧縮を行い、ページメモリ5003へ再圧縮後の画像を1ページ分格納する。
図18は、イメージマネージャ4110による画像展開処理の詳細を説明するためのフローチャートである。ここで、HDD2004には、前述したパケット形式の画像が格納されている。まず、画像展開処理が開始されると(ステップS5101)、伸張器2013へ読み出し画像の伸張パラメータを設定し(ステップS5102)、続けて、圧縮器2006へ圧縮パラメータを設定する(ステップS5103)。このとき、ページメモリ5003に圧縮後の画像が収まるような圧縮パラメータを用いる。
次いで、リングバッファ5001へHDD2004からリングバッファ5001のサイズ分だけ画像を読み出す(ステップS5104)。そして、リングバッファ5001へ読み出したパケット画像のヘッダからパケットテーブルを生成する(ステップS5105)。その後、リングバッファ5001上の画像を伸張器2013及び圧縮器2006へ送信する(ステップS5106)。
次いで、HDD2004上の画像の1ページ分すべてを読み出し終わったかどうかを判断する(ステップS5107)。その結果、読み出しが終了している場合(Yes)は、伸張器2013及び圧縮器2006による再圧縮が終了するまで待ち(ステップS5118)、当該再圧縮が終了することによって本画像展開処理が終了する(ステップS5119)。
一方、ステップS5107で、1ページ分の読み出しが終了していないと判定された場合(No)は、リングバッファ5002へ画像を読み出し(ステップS5108)、ステップS5105の処理と同様に読み出した分のパケットテーブルを生成する(ステップS5109)。そして、ステップS5105で送信した画像の伸張器2103及び圧縮器2006を使った再圧縮が終了するまで待つ(ステップS5110)。その結果、終了した場合(Yes)はリングバッファ5002上の画像を伸張器2013及び圧縮器2006へ送信する(ステップS5111)。
次いで、ステップS5107と同様に1ページ分の読み出しが終了したかを判断し(ステップS5112)、終了していれば(Yes)、ステップS5118に進んでリングバッファ5002上での再圧縮処理が完了するまで待ち、本画像展開処理を終了する。一方、ステップS5112で1ページ分の読み出しが終了していない場合(No)はステップS5113へ進む。
ステップS5113では、リングバッファ5001上にステップS5104で読み出した画像が残っているが、ここに画像を読み出して上書きする。次いで、ステップS5105と同様にリングバッファ5001上の画像のパケットテーブルを生成する(ステップS5114)。その後、ステップS5110と同様に、リングバッファ5002上の画像の再圧縮が終了するまで待ち(ステップS5115)、再圧縮が終了した後(Yes)、ステップS5106と同様にリングバッファ5001上の画像を伸張器2013及び圧縮器2006へ送信して再圧縮を開始する(ステップS5116)。
ステップS5117では、ステップS5107の処理と同様に1ページ分の読み出しが終了したかどうかを判断し、終了している場合(Yes)はステップS5118へ進んで再圧縮の終了を待ってから終了する。一方、ステップS5117で1ページ分の読み出しが終了していない場合(No)は、ステップS5108へ戻って上記処理を繰り返す。
このように、ステップS5108〜S5112及びステップS5113〜S5117を繰り返し、ステップS5112或いはステップS5117で1ページ分の読み出しが終了したと判断されれば、ステップS5118で再圧縮終了を待って画像展開が終了する。
尚、上記実施形態では、画像データサイズがページメモリサイズよりも大きい場合に再圧縮処理を行う方法を説明したが、画像データに生成した機種情報を付属させ、自機種でない場合に再圧縮処理を行う、という方法をとっても同様な手順でページメモリに画像を展開することができる。
次に、図18のステップS5105、S5109、S5114におけるパケットテーブルの生成処理の詳細を、図19及び図20を用いて説明する。図19は、メモリブロックに読み出された末尾のパケットの処理の例を説明するための図である。ここで、各メモリブロックには、1つの1パケット分のバッファ(packet buffer)を用意する。また、メモリブロックのサイズはプログラム中で与えた所定のサイズ(例えば、1MB)であり、packet bufferのサイズは1パケットが必ず入るサイズである。例えば、パケットバッファのサイズは、1パケットの最大サイズはデータの圧縮が無かったとき、すなわち生データを格納できるサイズである。基本的には、メモリブロックの最後の実データを持つパケットを、次のメモリブロック用のパケットバッファにコピーし、次のメモリブロックにパケット画像が読み出されてパケットテーブルを生成するときに、先頭のパケットテーブルがパケットバッファを指すようにする。
最終パケットデータのコピーの仕方と次のブロックの先頭パケットテーブルの生成の仕方には、図19の5201〜5203に示すように3通りある。
まず、5201に示すように、前のブロックの最終パケットのデータが途中で終わっており、次のブロックの先頭からそのパケットの続きが始まる場合がある。この場合、前のブロックの最終パケットを次のブロックのパケットバッファへ先頭からコピーを行うとともにパケットヘッダから足りないデータサイズを記憶しておく。そして、次のブロックの読み出しが終わったときに、メモリブロックの先頭から記憶しておいた残りデータサイズ分パケットバッファの後ろにコピーを行うことによって、前のブロックのパケットデータとつなげて1つの完全なパケットを生成する。この際、先頭のパケットテーブルがパケットバッファを指すようにする。
次に、5202に示すように、前のブロックに最終パケットが完全に入っており、次のブロックの先頭も完全なパケットから始まる場合がある。この場合には、前のブロックの最終パケットを次のブロックのパケットバッファにコピーするとともに、残りのデータサイズが0であることを記憶しておく。そして、次のブロックのパケットテーブルを生成するときに先頭のパケットヘッダを調べる。その結果、リピートフラグが立っていなければ完全なデータを持つパケットであるため、先頭のパケットテーブルがブロックの先頭を指すようにする。
そして、5203に示すように、前のブロックに最終パケットが完全に含まれており、次のブロックの先頭がリピートフラグの立ったパケットから始まる場合がある。この場合も、前述した5202の場合と同じように、前のブロックの最終パケットを次のブロックのパケットバッファにコピーするとともに、残りのデータサイズが0であることを記憶しておく。そして、次のブロックのパケットテーブルを生成するときに先頭のパケットヘッダを調べる。その結果、リピートフラグが立っていれば前のブロックの最終パケットと同じデータを指していると判断できるため、パケットテーブルはパケットバッファにコピーされたパケットを指すように生成する。
図20は、図19に示すメモリブロックに読み出された末尾のパケットの処理の例を説明するためのフローチャートである。まず、図20に示すフローチャートの処理を実行するためのプログラムが開始されると(ステップS5301)、変数の初期化を行う(ステップS5302)。ステップS5302では、パケットバッファにコピーしたパケットの残りデータサイズを表す変数であるrest_data_sizeに0を設定し、生成するパケットテーブルの個数を表す変数であるpacket_countに生成する個数を設定する。
そして、パケットテーブルの生成指示を待つ(ステップS5303)。そして、生成指示が来た場合はステップS5304に進み、生成指示に含まれるメモリブロックのアドレスをmemory_start_addr、memory_end_addrの変数に設定する。次いで、パケットの残りデータサイズを表す変数であるrest_data_sizeが0であるかどうかを判断し(ステップS5305)、0であると判断された場合(Yes)は、最初のパケットはメモリブロックの先頭にあるため、処理をするパケットヘッダのアドレスを表す変数であるpacket_header_addrにmemory_start_addrを代入する(ステップS5306)。尚、最初のパケットテーブル生成指示ではrest_data_sizeは初期化しているので必ず0であるためステップS5306へ進むが、2度目以降のパケットテーブル生成指示ではrest_data_sizeが0でないことがある。そこで、ステップS5305で0ではないと判断された場合(No)は、最終パケットの実体を指しているlast_packet_addrのパケットの末尾にmemory_start_addrからrest_data_size分だけコピーを行う(ステップS5307)。
ステップS5307の処理によりlast_packet_addrに実データがメモリ上にすべて存在するパケットが生成されるため、次いでlast_packet_addrのパケットヘッダから得たパケットIDを使用してパケットテーブルのアドレスを算出する(ステップS5308)。そして、パケットテーブルにlast_packet_addrを設定してパケットテーブルを生成する(ステップS5331)。さらに、packet_header_addr変数に、残りデータサイズから算出した次のパケットのアドレスを設定する(ステップS5332)。
ステップS5306又はステップS5332の処理後はステップS5309へ進み、packet_header_addrにあるパケットヘッダのパケットIDから、生成するパケットテーブルのアドレスを算出する。次いで、packet_header_addrのパケットヘッダにリピートフラグが立っているかどうかを判断する(ステップS5310)。
その結果、リピートフラグが立っている場合(Yes)には、last_packet_addr変数で表されるアドレスのパケットと同じデータが続いていると判断できるため、パケットテーブルにlast_packet_addrを設定する(ステップS5311)。ここで、last_packet_addr変数は、後述するステップS5313及びステップS5325で随時更新されているため、メモリブロック中の最後に処理を行ったパケットか、或いは、メモリブロックの最初のパケットを処理している場合にはパケットバッファを指している。
一方、ステップS5310でpacket_header_addrにあるパケットヘッダにリピートフラグが立っていない場合(No)には、packet_header_addrにパケットの実データがあると判断できるため、ステップS5309で算出したパケットテーブルのアドレスにpacket_header_addrをセットする(ステップS5312)。そして、last_packet_addrにpacket_header_addrをセットする(ステップS5313)。
ステップS5311又はステップS5313が終了した後、packet_header_addrをパケットヘッダから得たパケット長分だけインクリメントする(ステップS5314)。そして、ステップS5314インクリメントしたpacket_header_addrがmemory_end_addr以下であるかどうか、すなわち前のパケットが完全にメモリブロック内に入っているかどうかを判断する(ステップS5315)。その結果、入っている場合(Yes)はpacket_count変数を1デクリメントし(ステップS5316)、packet_countが0より大きいかどうか、すなわちすべてのパケットテーブルの生成が終了したかどうかを判断する(ステップS5317)。そして、終了していると判断された場合(No)は、プログラムは終了となる。
ステップS5317でまだ生成すべきパケットテーブルがあると判断した場合(Yes)には、packet_header_addrがmemory_end_addrよりも小さいかどうか、すなわちメモリブロック上に次のパケットデータが存在するかどうかを判断する(ステップS5319)。
その結果、ステップS5319において次のパケットデータが存在すると判断した場合(Yes)にはステップS5309へ戻って、上述した手順で次のパケットのパケットテーブル生成処理を実行する。一方、ステップS5319で次のパケットデータが存在しないと判断した場合(No)は、ステップS5320へ進んでメモリブロック上の最終パケット処理を実行する。また、ステップS5315の処理において、packet_header_addrがmemory_end_addrよりも大きいとき(No)、すなわちメモリブロックの最後のパケットに残りのデータがあり、まだ完全なパケットがメモリ上に無いと判断したときにも同様にステップS5320へ進む。
ステップS5320では、最後に処理した実データを持つパケットのアドレスを表しているlast_packet_addr変数の示すパケットのパケットヘッダからサイズを取得し、そのパケットがmemory_end_addr以内に終わっているかどうかを判断する。その結果、終わっていないと判断された場合は、パケットの残りデータサイズを表すrest_data_size変数に残りのデータ長をセットし(ステップS5321)、last_packet_addrからmemory_end_addrまでをpacket_bufferへコピーする(ステップS5322)。一方、ステップS5320でlast_packet_addrにあるパケットがmemory_end_addr以内に終わっている場合(No)は、rest_data_sizeに0をセットし(ステップS5323)、last_packet_addrからパケット長分packet_bufferへコピーする(ステップS5324)。
ステップS5322又はステップS5324での処理が終了した後、次のメモリブロックのためにlast_packet_addrをpacket_bufferに設定し(ステップS5325)、ステップS5303へ戻って次のメモリブロックのパケットテーブルの生成指示を待つ。
イメージマネージャ4110は、画像の展開が終了した時点で、展開終了をシンクマネージャ4080を経由して、ファイルリードマネージャ4060とプリントマネージャ4090に伝える。プリントマネージャ4090は、メモリに画像が入った時点でデバイスI/Fを介して、プリンタ部2095にジョブマネージャから指示された給紙段、若しくはその用紙サイズを有するトレイ(段)を選択し、印刷要求を出す。また、プリントマネージャ4090は、自動用紙の場合には、画像サイズから給紙段を決定し印刷要求を出す。同時に、プリントマネージャ4090は、シンクマネージャ4080にプリント画像処理要求を行う。
シンクマネージャ4080は、プリントマネージャ4090から要求を受けた場合、プリント画像処理設定をイメージマネージャ4110に依頼する。この場合、例えば最適サイズ用紙がなくなり、回転が必要になれば別途回転指示も依頼する。また、回転指示があった場合には、イメージマネージャ4110が回転器2019を使って画像を回転する。イメージマネージャ4110は、プリンタ画像処理部2016の設定を行い、シンクマネージャ4080を介してプリントマネージャ4090にプリント準備完了を伝える。プリントマネージャ4090は、プリンタ部2095に対して印刷指示を出す。
ここで、プリント画像転送完了は、図示しないハードウェアからの割り込み信号によってイメージマネージャ4110に伝わる。イメージマネージャ4110からのプリント完了を受けてシンクマネージャ4080は、プリント完了をファイルリードマネージャ4060とプリントマネージャ4090に伝える。
ファイルリードマネージャ4060は、終了通知をジョブマネージャ4040に返す。また、プリントマネージャ4090は、プリンタ部2095からの排紙完了を受けて、ジョブマネージャ4040に対して終了通知を返す。ジョブマネージャ4040は、共通インタフェース4030を介してコピーアプリケーション4020へ終了通知を返す。コピーアプリケーション4020は、スキャン、プリントが終了した後、ジョブ終了をUI制御部4010に通知する。
PDLデータ展開格納ジョブの場合は、PDLプリントを投入したホストPCからの要求がネットワークアプリケーション4120を経由してPDLアプリケーション4023に伝達される。そして、PDLアプリケーション4023は、PDLデータ展開格納ジョブを共通インタフェース4030を介してジョブマネージャ4040に指示する。このときPDLマネージャ4070とストアマネージャ4100がジョブマネージャ4040からの要求を受ける。
以下、この後のPDLマネージャ4070とストアマネージャ4100の動作を図21に示すシーケンス図を用いて説明する。図21は、PDLデータ展開処理及びHDDへの格納処理の流れを示すシーケンス図である。図21において、ストアマネージャ4100は、メモリ管理部、HDD書込み部、HDDドライバの3つの部分に分けられている。図21は、メモリ管理部のところに描かれているPacketTable、ChainBlockはメモリ上のPacketTable、ChainBlockのシーケンス図上で対応する時点の状態を模式的に図示したものである。
まず、図21の2行目に示すように、PDLマネージャはメモリ管理部へバンドメモリ取得要求を行い、また、HDD書込み部はメモリ管理部へデータバッファ取得要求を行う。メモリ管理部は、HDD書込み部からのデータバッファ取得要求に対しては、HDDへ書き込むべきデータがないために返答を行わず、メモリ管理部内部の要求キューへキューイングしておく。
一方、PDLマネージャのバンドメモリ取得要求に対しては、1バンド分のPacketTableの領域5401と、1バンド分の生データサイズ領域5402を5行目に示すバンドメモリ取得結果でPDLマネージャへ返す。本実施形態のタイルJPEG圧縮方式では、1タイルの圧縮データサイズが生データサイズを越えるときには生データサイズでメモリ上に格納するため、圧縮後のデータは領域5402を越えることはない。
PDLマネージャは、バンドメモリ取得結果で1バンド分のメモリを取得した後、1バンド分のラスタライズ、タイル化、圧縮を行ったデータをメモリ上に格納する。そして、7行目で示すバンド格納通知をメモリ管理部に対して行う。このとき、PDLマネージャからメモリ管理部へ圧縮後のデータサイズが通知される。
PDLマネージャは、バンド格納通知後、19行目と20行目で示されるバンドメモリ解放通知と次のバンドメモリ取得要求とを続けて行う。メモリ管理部は、17行目と19行目とに示すバンド格納通知とバンドメモリ解放通知を受けて、ChainBlock上に格納されているデータサイズを計算し、それが所定のサイズを越えていてHDDへデータを書込みにいくかどうかを判断する。ここで、9行目に示す段階では、まだデータサイズが所定のサイズを越えていないため、HDDへデータを書込みにはいかない。
メモリ管理部は、続けて11行目に示すPDLマネージャからのバンドメモリ取得要求に応じて、PacketTable領域5403とChainBlock領域55404をバンドメモリ取得結果としてPDLマネージャへ返す。ChainBlock領域5404は、7行目に示されるPDLマネージャからのバンド格納通知によって通知されたデータ領域の直後から始まり、1バンド分の最大データサイズ、ここでは1バンド分の生データサイズ分の領域である。
PDLマネージャは、1回目のバンド処理と同様にバンドメモリへラスタライズ、タイル化、圧縮を行ったデータを格納し、17行目から21行目に示されるバンド格納通知、バンドメモリ解放通知、バンドメモリ取得要求をメモリ管理部に対して行う。メモリ管理部は、17行目のバンド格納通知で通知されたデータサイズを加算した後、前述した場合と同様にHDDへ書きこむかどうかを判断する。但し、この場合は所定のサイズを超えていないので、ここでもHDDへの書込みは行われない。
続いてメモリ管理部は、次のバンド用メモリ領域5405、5406を前述したのと同様に確保してバンドメモリ取得結果としてPDLマネージャへ返す。PDLマネージャは前述と同様にラスタライズした後、27行目から31行目で示されるバンド格納通知、バンドメモリ解放通知、バンドメモリ取得要求をメモリ管理部に対して行う。メモリ管理部は、27行目に示されるバンド格納通知で通知されたデータサイズを加算し、ここでも前述と同様にHDDへ書き込むかどうかの判断を行う。
ここでは、ChainBlock上のデータサイズが所定のサイズ(例えば、全ChainBlockサイズの1/4)を超えているため、この所定のサイズ分のデータをHDDへ書き込む。
そのため、PacketTable領域5407とChainBlock領域5408のデータを、1行目のHDD書込み部からのデータバッファ取得要求の返答として、35行目のデータバッファ取得結果を用いてHDD書込み部へ通知する。このとき、メモリ管理部によるPacketTable領域5407とChainBlock領域5408の決定方法は以下の通りである。
(1)PacketTableの先頭から、PacketTable中のそのパケットのデータサイズを加算していき、加算したデータサイズが所定のサイズを越えるPacketを算出する。
(2)上記(1)の処理で決定したPacketの1つ前までのPacketをPacketTable領域5407として決定する。
(3)上記(2)の処理で決定した最終Packetデータの終了アドレスがHDDへの転送サイズ単位で割り切れないときには、最終PacketのPacketTable及びPacketHeader中のパケットサイズを増やして、HDDへの転送サイズ単位で割り切れるようにする。
ここで、上記手順(3)でPacketのデータサイズを増やす理由は、Packetのデータサイズ境界と、HDDへの転送単位が異なるためである。例えば、本実施形態では、Packdetデータは32バイトバウンダリとなっているが、HDDへの転送単位は512バイトである。このため、上記手順(2)で決定した最終パケットのデータの終了アドレスは、HDDへの転送単位に対して余りが出る場合があり、そのまま書き込んだ場合は次にパケットデータをHDDから読み出すときに正常に読み出すことができない。そこで、パケットサイズを増加させてHDD転送単位と丁度同一にすることにより、正常に読み出せるパケットデータをHDDへ書き込むことができる。
HDD書込み部は、図21の36行目で示されるメモリ管理部からのデータバッファ取得結果で通知されたPacketTableとChainBlockを用いて、HDDドライバへデータ転送指示を出す。39行目で示されるようにHDDドライバからデータ転送終了通知がされると、HDD書込み部はメモリ管理部へデータバッファ解放通知を行い、続いて、次のデータバッファ取得要求をメモリ管理部へ出す。
メモリ管理部は、39行目で示されるHDD書込み部から通知されたデータバッファ解放通知に対応して、HDD書込みが終了したChainBlock領域5408を空き領域とし、リングバッファ動作が行えるようにする。一方、PDLマネージャとメモリ管理部は、35行目〜41行目で示されるHDD書込みと並行して、PacketTable領域5409とChainBlock領域5410を用いてバンド処理を行う。
45行目に示すメモリ管理部からのバンドメモリ取得結果では、PacketTable領域5413とChainBlock領域5414を渡す。ChainBlock領域5414は、すでにHDDへ書き込まれて空き領域となった領域5408と重なっており、リングバッファ動作となっている。PDLマネージャは領域5413、5414を用いてバンド処理を行い、47行目〜51行目で示されるバンド格納通知、バンドメモリ解放通知、バンドメモリ取得要求をメモリ管理部に対して行う。
一方、メモリ管理部は、41行目に示されるHDD書込み部からのデータバッファ取得要求に応じて、前述した領域5407、5408と同様な手順でPacketTable領域5411とChainBlock領域5412を決定し、データバッファ取得結果としてHDD書込み部へ通知する。HDD書込み部は、ChainBlock5412の内容をHDDへ転送し、終了後、51行目で示される次のデータバッファ取得要求をメモリ管理部に対して行う。
メモリ管理部は、51行目で示されるPDLマネージャからのバンドメモリ取得要求に対して、ここではChainBlockの空きサイズが1バンドの最大データサイズに達していないため、返答しない。その代わり、このバンドメモリ取得要求をメモリ管理部内部に保持している要求キューにキューイングしておく。
一方、51行目に示されるHDD書込み部からのデータバッファ取得要求に対して、前述したようにPacketTable領域5415とChainBlock領域5416を決定し、HDD書込み部へデータバッファ取得結果として55行目に示すように通知する。HDD書込み部はこれまでの手順と同様にHDDへデータの転送を行った後、59行目で示されるようにデータバッファ解放通知を行い、次のデータバッファ取得要求を行う。
メモリ管理部は、59行目のデータバッファ解放通知を受けて領域5416を空き領域とし、ChainBlock中の全空き領域サイズを再計算する。ここで、空き領域サイズが1バンドの最大データサイズを超えることになるため、キューイングされていたバンドメモリ取得要求に対し、PacketTable領域5419とChainBlock領域5420をバンドメモリ取得結果としてPDLマネージャへ通知する。PDLマネージャは、これまでと同様な手順でバンド処理を行う。また、同時にメモリ管理部は、データバッファ取得結果をHDD書込み部へ返し、HDD書込み部はHDDへのデータの転送を行う。
以上の動作を画像のバンド数分繰り返し、1ページ分のRIPが終了する。
本実施形態では、上述したように図21に示すシーケンス図を用いて処理の流れを説明したが、ポイントとなるメモリ管理部の処理について、バンドメモリ取得要求、バンドメモリ解放通知、データバッファ取得要求、データバッファ解放通知、のそれぞれがあったときの処理を図22〜図25に示すフローチャートを用いて詳細に説明する。
図22は、バンドメモリ取得要求をされたときのメモリ管理部の処理の詳細を説明するためのフローチャートである。まず、バンドメモリ取得要求があると(ステップS5501)、ChainBlockに1バンドの最大データサイズ分の空き領域があるかどうかを判断する(ステップS5502)。その結果、空き領域がないと判断された場合(No)は、バンドメモリ取得要求キューへ要求をキューイングし(ステップS5503)、ステップS5506へ進んで処理を終了する。
一方、ステップS5502で空き領域があると判断された場合(Yes)は、1バンド分のPacketTableとChainBlockの領域を決定し(ステップS5504)、バンドメモリ取得結果を要求元へ通知し(ステップS5505)、ステップS5506へ進んで処理を終了する。
図23は、バンドメモリ解放通知をされたときのメモリ管理部の処理を示すフローチャートである。ステップS5601でバンドメモリ解放通知があると、未蓄積データサイズに展開されたデータサイズを加算する(ステップS5602)。次に、未蓄積データサイズが所定サイズを越えているかどうかを判断する(ステップS5603)。その結果、所定サイズを超えていないと判断された場合(No)はステップS5608へ進んで本処理を終了する。
一方、ステップS5603で所定サイズを超えていると判断された場合(Yes)は、データバッファ取得要求キューに要求があるかどうかを判断する(ステップS5605)。その結果、要求がないと判断された場合(No)はステップS5608へ進んで本処理を終了する。また、要求があると判断された場合(Yes)は、データバッファ取得要求キューから要求を取り出し(ステップS5606)、続けてステップS5607へ進んで、後述するデータバッファ取得要求処理へ進む。
図24は、データバッファ取得要求があったときのメモリ管理部の細部処理を説明するためのフローチャートである。まず、データバッファ取得要求があると(ステップS5701)、未蓄積データサイズが所定サイズを超えているかどうかを判断する(ステップS5702)。その結果、所定サイズを超えていなければ(No)、データバッファ取得要求キューへ要求をキューイングし(ステップS5703)、その後ステップS5709へ進んで本処理を終了する。
一方、ステップS5702で所定サイズを超えていると判断された場合(Yes)は、所定サイズを超えるところのパケットを決定する(ステップS5704)。そして、ステップS5704で決定したパケットの直前のパケットを最終パケットとして決定し(ステップS5705)、未蓄積の最初のパケットから最終パケットまでのPacketTableとChainBlockの領域を決定し(ステップS5706)、データバッファ取得結果を要求元へ通知する(ステップS5707)。そして、ステップS5708では未蓄積データサイズから今回取得結果で通知した分のデータサイズを減算し、ステップS5709へ進んで本処理を終了する。
図25は、データバッファ解放通知があったときのメモリ管理部の処理の詳細を説明するためのフローチャートである。まず、データバッファ解放通知があると(ステップS5801)、解放されたデータバッファを空き領域として、ChainBlock中の全空き領域サイズを計算する(ステップS5802)。続けて、バンドメモリ要求キューに要求があるかどうかを判断する(ステップS5803)。その結果、要求がないと判断された場合(No)はステップS5804へ進んで本処理を終了する。
一方、ステップS5803で要求があると判断された場合(Yes)は、バンドメモリ要求キューから要求を取り出し(ステップS5805)、ステップS5806へ進んで前述したバンドメモリ取得要求処理を実行する。
画像のRIPが終了した後の画像入力する部分に関しては、前述のスキャンジョブと同様である。メモリ上の画像(文字/写真判定信号を含めて)をHDD2004に格納する。また、画像の付随情報として図示しないSRAMにカラー/白黒情報、画像入力元としてPDL画像、色空間CMYK若しくはRGBも格納しておく。
PDL画像をHDD2004に格納し終わった時点で、シンクマネージャ4080から格納完了通知を受け、それを共通インタフェース4030を介してPDLアプリケーション4023に通知する。PDLアプリケーション4023はこの通知の後、ネットワークアプリケーション4120にHDDに格納完了を通知し、PDLプリントを投入したホストPCへこの情報が伝達される。また、PDLプリントジョブの場合には、PDLマネージャ4070とプリントマネージャによって、メモリ上に展開された画像を印字する。
PDL展開され格納された画像のプリントはUI(操作部2012)で印刷指示された格納文書をボックスアプリケーション4022に対してプリントジョブとして発行する。ボックスアプリケーション4022は、共通インタフェース4030を介してジョブマネージャ4040にプリントジョブを投入する。ローカルコピーとは異なり、スキャンマネージャ4050に代わってファイルリードマネージャ4060がジョブマネージャ4040からの要求を受ける。そして、印刷指示された画像をHDDからメモリに展開するための要求をシンクマネージャ4080を介して、イメージマネージャ4110に行う。この後の動作はリモートコピーのプリントジョブで説明した動作と同様のため、省略する。
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
本発明の一実施形態に係る画像形成装置システムの全体の構成を示すブロック図である。 図1に示す画像形成装置200の細部構成を示すブロック図である。 本実施形態で使用される画像の形式の一例を説明するための図である。 本実施形態で使用されるパケットデータの一例を示す図である。 複数のパケットが同じデータである場合のパケットテーブルと画像との関係を説明するための図である。 パケット画像の模式図である。 コントローラユニット2000のスキャナ画像処理部2014での処理内容の詳細を説明するための図である。 コントローラユニット2000のプリンタ画像処理部2016での処理内容の詳細を説明するための図である。 本実施形態に係る画像形成装置200を実現するための画像入出力デバイスの一例を示す図である。 本実施形態に係る画像処理装置の操作部2012の細部構成を示す図である。 本実施形態に係る画像形成装置の操作画面上に表示される初期画面の一例を示した図である。 図11に示す画面において読み込み設定ボタン3105が押下されたときに表示されるポップアップウィンドウを示す図である。 図11に示す画面においてコピーボタン3101が押下されたときに表示される画面例を示す図である。 図11に示す画面においてボックスボタン3103が押下されたときに表示される画面例を示す図である。 図14に示す画面において0番のフォルダ部分が押下されたときに表示される画面例を示す図である。 本発明の一実施形態に係る画像処理を実行するためのソフトウェア構成を説明するための図である。 本実施形態に係るコントローラユニット2000内で再圧縮処理を行うときの画像の展開処理を模式的に説明する図である。 イメージマネージャ4110による画像展開処理の詳細を説明するためのフローチャートである。 メモリブロックに読み出された末尾のパケットの処理の例を説明するための図である。 図19に示すメモリブロックに読み出された末尾のパケットの処理の例を説明するためのフローチャートである。 PDLデータ展開処理及びHDDへの格納処理の流れを示すシーケンス図である。 バンドメモリ取得要求をされたときのメモリ管理部の処理の詳細を説明するためのフローチャートである。 バンドメモリ解放通知をされたときのメモリ管理部の処理を示すフローチャートである。 データバッファ取得要求があったときのメモリ管理部の細部処理を説明するためのフローチャートである。 データバッファ解放通知があったときのメモリ管理部の処理の詳細を説明するためのフローチャートである。
符号の説明
200 画像形成装置
240 PC
2000 コントローラユニット
2001 CPU
2002 RAM
2003 ROM
2004 HDD
2005 操作部I/F
2006 圧縮器
2007 ネットワークI/F
2008 イメージバスI/F
2009 DMAC
2010 画像バス
2011 LAN
2012 操作部
2013 伸張器
2014 スキャナ画像処理部
2016 プリンタ画像処理部
2018 RIP
2019 回転器
2020 変倍器
2021 色空間変換器
2022 2進多値変換器
2023 合成器
2024 間引き器
2025 移動器
2026 多値2値変換器
2030 画像変換部
2050 モデム
2051 XAN
2052 2値画像回転部
2053 2値画像圧縮・伸張部
2070 スキャナ部
2095 プリンタ部

Claims (14)

  1. 画像を入力する入力手段と、
    入力された前記画像を一時記憶する一時記憶手段と、
    一時記憶された前記画像を複数のブロックに分割して圧縮する圧縮手段と、
    圧縮された前記複数のブロックを蓄積する蓄積手段とを備える画像処理装置であって、
    圧縮された第1のブロックの先頭のパケットから順にパケットのデータサイズを積算して所定サイズを超える直前のパケットを決定する決定手段と
    前記先頭のパケットから前記直前のパケットまで積算されたデータが所定サイズになるように調整する調整手段と、
    前記先頭のパケットから調整後の前記直前のパケットまでのデータを第1のブロックの圧縮データとして前記蓄積手段に出力する出力手段と
    をさらに備えることを特徴とする画像処理装置。
  2. 前記調整手段は、前記第1のブロックにおいて積算されたデータが前記所定サイズを超えるときのパケットのデータが途中で終わっており、第2のブロックの先頭から該パケットの続きが始まっている場合、前記パケットを第2のブロックのパケットバッファへコピーして残りのデータサイズを記憶しておき、前記第2のブロックの圧縮データを生成する際に、前記パケットを該第2のブロックの先頭パケットとしてデータの積算を行うことを特徴とする請求項1に記載の画像処理装置。
  3. 前記調整手段は、前記第1のブロックにおいて積算されたデータが前記所定サイズに等しい場合、該第1のブロックの最終パケットを第2のブロックのパケットバッファにコピーし、該第1のブロックの残りのデータサイズが0であると記憶し、前記第2のブロックの圧縮データを生成する際に、該第2のブロックの先頭パケットからデータの積算を行うことを特徴とする請求項1に記載の画像処理装置。
  4. 前記調整手段は、前記第2のブロックの前記先頭パケットがリピートパケットであるか否かを判定し、リピートパケットでないと判定した場合に前記第2のブロックの先頭パケットからデータの積算を行うことを特徴とする請求項3に記載の画像処理装置。
  5. 前記調整手段は、前記第2のブロックの前記先頭パケットがリピートパケットであるか否かを判定し、リピートパケットであると判定した場合、前記最終パケットを前記第2のブロックのパケットバッファにコピーし、残りのデータサイズが0であることを記憶し、前記第2のブロックの圧縮データを生成する際に、該第2のブロックの先頭パケットを前記パケットバッファにコピーされたパケットを用いてデータの積算を行うことを特徴とする請求項3に記載の画像処理装置。
  6. 前記パケットバッファが、1パケットのデータを圧縮せずに記憶できるサイズであることを特徴とする請求項2から5までのいずれか1項に記載の画像処理装置。
  7. 画像を入力する入力工程と、
    入力された前記画像を一時記憶手段に一時記憶する一時記憶工程と、
    一時記憶された前記画像を複数のブロックに分割して圧縮する圧縮工程と、
    圧縮された前記複数のブロックを蓄積手段に蓄積する蓄積工程とを有する画像処理方法であって、
    圧縮された第1のブロックの先頭のパケットから順にパケットのデータサイズを積算して所定サイズを超える直前のパケットを決定する決定工程と
    前記先頭のパケットから前記直前のパケットまで積算されたデータが所定サイズになるように調整する調整工程と、
    前記先頭のパケットから調整後の前記直前のパケットまでのデータを第1のブロックの圧縮データとして前記蓄積手段に出力する出力工程と
    をさらに有することを特徴とする画像処理方法。
  8. 前記調整工程は、前記第1のブロックにおいて積算されたデータが前記所定サイズを超えるときのパケットのデータが途中で終わっており、第2のブロックの先頭から該パケットの続きが始まっている場合、前記パケットを第2のブロックのパケットバッファへコピーして残りのデータサイズを記憶しておき、前記第2のブロックの圧縮データを生成する際に、前記パケットを該第2のブロックの先頭パケットとしてデータの積算を行うことを特徴とする請求項7に記載の画像処理方法。
  9. 前記調整工程は、前記第1のブロックにおいて積算されたデータが前記所定サイズに等しい場合、該第1のブロックの最終パケットを第2のブロックのパケットバッファにコピーし、該第1のブロックの残りのデータサイズが0であると記憶し、前記第2のブロックの圧縮データを生成する際に、該第2のブロックの先頭パケットからデータの積算を行うことを特徴とする請求項7に記載の画像処理方法。
  10. 前記調整工程は、前記第2のブロックの前記先頭パケットがリピートパケットであるか否かを判定し、リピートパケットでないと判定した場合に前記第2のブロックの先頭パケットからデータの積算を行うことを特徴とする請求項9に記載の画像処理方法。
  11. 前記調整工程は、前記第2のブロックの前記先頭パケットがリピートパケットであるか否かを判定し、リピートパケットであると判定した場合、前記最終パケットを前記第2のブロックのパケットバッファにコピーし、残りのデータサイズが0であることを記憶し、前記第2のブロックの圧縮データを生成する際に、該第2のブロックの先頭パケットを前記パケットバッファにコピーされたパケットを用いてデータの積算を行うことを特徴とする請求項9に記載の画像処理方法。
  12. 前記パケットバッファが、1パケットのデータを圧縮せずに記憶できるサイズであることを特徴とする請求項8から11までのいずれか1項に記載の画像処理方法。
  13. 画像を入力する入力手順と、
    入力された前記画像を一時記憶手段に一時記憶する一時記憶手順と、
    一時記憶された前記画像を複数のブロックに分割して圧縮する圧縮手順と、
    圧縮された前記複数のブロックを蓄積手段に蓄積する蓄積手順とをコンピュータに実行させるためのプログラムであって、
    圧縮された第1のブロックの先頭のパケットから順にパケットのデータサイズを積算して所定サイズを超える直前のパケットを決定する決定手順と
    前記先頭のパケットから前記直前のパケットまで積算されたデータが所定サイズになるように調整する調整手順と、
    前記先頭のパケットから調整後の前記直前のパケットまでのデータを第1のブロックの圧縮データとして前記蓄積手段に出力する出力手順と
    をさらに実行させることを特徴とするプログラム。
  14. 請求項13に記載のプログラムを格納したことを特徴とするコンピュータ読み取り可能な記憶媒体。
JP2004364789A 2004-12-16 2004-12-16 画像処理装置及び画像処理方法 Withdrawn JP2006174170A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004364789A JP2006174170A (ja) 2004-12-16 2004-12-16 画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004364789A JP2006174170A (ja) 2004-12-16 2004-12-16 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
JP2006174170A true JP2006174170A (ja) 2006-06-29

Family

ID=36674432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004364789A Withdrawn JP2006174170A (ja) 2004-12-16 2004-12-16 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP2006174170A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011010233A (ja) * 2009-06-29 2011-01-13 Kyocera Mita Corp 画像処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011010233A (ja) * 2009-06-29 2011-01-13 Kyocera Mita Corp 画像処理装置

Similar Documents

Publication Publication Date Title
US8004698B2 (en) Image forming apparatus for combining a scanned image with other image data and printing the combined image in black and white or color based on a set mode
US7532348B2 (en) Image input/output control method and image input/output apparatus
JP3797669B2 (ja) 画像形成装置および画像形成方法
JP2008146258A (ja) 画像処理装置、画像処理方法
JP2007116458A (ja) 画像入出力装置、画像データ入出力方法、及びプログラム
JP2006180343A (ja) 画像入出力装置
JP2006333200A (ja) カラー画像入出力装置
JP6373448B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2006287707A (ja) 画像処理装置
JP2006174170A (ja) 画像処理装置及び画像処理方法
JP2005110020A (ja) 画像入出力装置およびメモリ管理方法およびプログラムおよび画像形成装置
JP2007129428A (ja) 画像処理装置及び画像処理方法
JP2006157806A (ja) 画像処理装置
JP2006166134A (ja) 画像通信装置、その制御方法、プログラム、及び記憶媒体
JP2006240151A (ja) 画像出力装置
JP2006036423A (ja) 画像処理装置
JP2008307705A (ja) 画像形成装置
JP2005153230A (ja) 画像形成装置、画像形成方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体
JP2006211219A (ja) 画像出力装置
JP2005275857A (ja) カラー画像入出力装置
JP2005354226A (ja) 画像処理装置およびその方法
JP2006229476A (ja) 画像処理装置、画像処理方法、コンピュータプログラム及び記憶媒体
JP2007036793A (ja) カラー画像処理システム
JP2007030352A (ja) 多色画像印刷装置
JP2007028064A (ja) 画像形成装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080304