JP2004056447A - Picture processor, picture processing method, computer readable storage medium and program - Google Patents

Picture processor, picture processing method, computer readable storage medium and program Download PDF

Info

Publication number
JP2004056447A
JP2004056447A JP2002210800A JP2002210800A JP2004056447A JP 2004056447 A JP2004056447 A JP 2004056447A JP 2002210800 A JP2002210800 A JP 2002210800A JP 2002210800 A JP2002210800 A JP 2002210800A JP 2004056447 A JP2004056447 A JP 2004056447A
Authority
JP
Japan
Prior art keywords
image data
tile
unit
image
tile image
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.)
Pending
Application number
JP2002210800A
Other languages
Japanese (ja)
Inventor
Naotsugu Ito
伊藤 直紹
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 JP2002210800A priority Critical patent/JP2004056447A/en
Publication of JP2004056447A publication Critical patent/JP2004056447A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To precisely realize a desired picture processing without preparing a large memory for restoring an original picture even if the processing of a picture straddling over a plurality of tiles is performed. <P>SOLUTION: An amount of stored tile picture data is detected. A specified order of tile picture data which is read from HDD 126 by CPU 121, is decided based on the detected amount of tile picture data. Stored tile picture data is read on a tile buffer part in a picture shift processing part 134 by the prescribed number of tiles in accordance with the decided specified order. The prescribed picture processing based on a picture processing condition which is set for the prescribed number of tile picture data that is read is performed, and new tile picture data is generated. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、小さなタイル画像の単位で複数に分割される画像データに所定の画像処理を行う画像処理装置および画像処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムに関するものである。
【0002】
【従来の技術】
一般的に、ファクシミリや複写機等のオフィス画像機器において扱う画像データは、A4やA3サイズの原稿を数百dpi(dot per inch:1インチあたりの画素数)の解像度で読み取ったものである。そのため、画像データは横方向および縦方向において数千画素、また、総画素数では数千万画素から一億画素にもなり、そのデータ量は膨大である。
【0003】
また、近年、オフィス画像機器において、扱う画像も、白黒画像からカラー画像への切り換えの要求があるが、カラー画像における1画素当たりのデータ量は白黒のそれと比較して数倍から数十倍であるために、結果としてオフィス画像機器で扱う画像のデータサイズが爆発的に大きくなってきている。
【0004】
こういった背景の下、高価な大容量のメモリ装置を使用しないで大きな画像データを扱う仕組みが考えられている。
【0005】
大容量でありながらメモリ装置より安価なHDD(ハードディスクドライブ)装置に画像を格納する方法や、画像全体を圧縮して格納する方法である。また、画像全体を1つのデータの塊として扱わずに、画像全体をタイルと呼ばれる数十または数百画素からなる小さな長方形または正方形の単位に分割して、タイル単位で画像を管理するタイル分割方式が取られることがある。
【0006】
ここで、タイルの大きさとしては、横8画素かつ縦8画素や、横32画素かつ縦32画素などがあり、一度に扱う画素数が数百から数千の範囲に収まる程度である。この方式では、リーダで読み取った巨大な画像データやファクシミリ装置で受信した巨大な画像データは、一度小さなタイルに分割して多くの小さなタイル画像データに変換して、その小さなタイル画像を画像機器内部で扱う。そのため、メモリやHDDなどの記憶装置には小さなタイル単位の領域があればよく、つまりページ単位の大きな連続領域を用意する必要がなくなり、高価なメモリを小さなサイズのもので済ますことができる。
【0007】
また、いくつかの処理を同時並行的に実行する一般的なソフトウエア処理を考えた場合にも、複数のプログラムが大きな画像を同時に複数使用するにはかなり大きなメモリが必要になるが、画像を分割して小さなデータ単位で処理できるようにすることにより複数のプログラムが複数のタイル画像を開いても大きなメモリ量が必要ではなくなり、やはりメモリ量に関するメリットがある。
【0008】
【発明が解決しようとする課題】
しかしながら、大きな1つの画像を複数に分割して管理するタイル分割方式でも、例えば画像全体を縦横に数画素ずらすといった画像シフト処理などのように「元画像に対して複数のタイルをまたがった画像処理」を施したい場合に、元の大きな画像を復元してから所望の画像処理を画像全体に施す必要があり、一度元の画像データを復元するための作業領域として、画像全体が記憶できるだけの大きなメモリ領域がなければ画像処理ができない。そのために、メモリサイズを削減できるというタイル分割方式のメリットが失われる可能性がある。
【0009】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、格納されたタイル画像データの量を検知し、該検知されるタイル画像データの量に基づき、タイル画像データ格納手段から読み出すタイル画像データの特定の順番を決定し、該決定された特定の順番に従い、格納されたタイル画像データを所定タイル数メモリ上に読み出して、該読み出された所定数のタイル画像データに対して設定される画像処理条件に基づく所定の画像処理を行い新たなタイル画像データを生成することにより、画像を小さな複数のタイル単位に分割して扱うタイル分割方式において、画像シフト処理のように複数のタイルにまたがった画像処理を施す場合にも、元画像を復元するために大きなメモリを用意することなく、所望の画像処理を正確に実現する画像処理装置および画像処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラムを提供することにある。
【0010】
【課題を解決するための手段】
本発明に係る第1の発明は、小さなタイル画像の単位で複数に分割される画像データに所定の画像処理を行う画像処理装置であって、複数のタイル画像データを格納するタイル画像データ格納手段(図4に示すHDD126に相当)と、前記タイル画像データ格納手段に格納されたタイル画像データに対する画像処理条件を設定する設定手段(図4に示すCPU121に相当)と、前記タイル画像データ格納手段に格納されたタイル画像データの量を検知する検知手段(図4に示すCPU121に相当)と、前記検知手段により検知されるタイル画像データの量に基づき、前記タイル画像データ格納手段から読み出すタイル画像データの特定の順番を決定する決定手段(図4に示すCPU121に相当)と、前記決定手段により決定された特定の順番に従い、前記タイル画像データ格納手段に格納されたタイル画像データを所定タイル数メモリ上に読み出して、該読み出された所定数のタイル画像データに対して前記設定手段により設定される画像処理条件に基づく所定の画像処理を行い新たなタイル画像データを生成する生成手段(図4に示す画像シフト処理部134に相当)とを有することを特徴とする。
【0011】
本発明に係る第2の発明は、前記所定の画像処理とは、前記タイル画像データを前記画像処理条件に従って指定画素数だけ横方向と縦方向にずらす画像シフト処理であることを特徴とする。
【0012】
本発明に係る第3の発明は、前記特定の順番は、画像データを分割して得られるタイル画像データの内で直交座標系に従う最左上のものを基準として、所定方向に隣接する所定数のタイル画像データが揃う順番とすることを特徴とする。
【0013】
本発明に係る第4の発明は、小さなタイル画像の単位で複数に分割される画像データに所定の画像処理を行う画像処理装置における画像処理方法であって、タイル画像データ格納手段に格納された複数のタイル画像データに対する画像処理条件を設定する設定ステップ(図13に示すステップ(3))と、前記タイル画像データ格納手段に格納されたタイル画像データの量を検知する検知ステップ(図13に示すステップ(4))と、前記検知ステップにより検知されるタイル画像データの量に基づき、前記タイル画像データ格納手段から読み出すタイル画像データの特定の順番を決定する決定ステップ(図13に示すステップ(4))と、前記決定ステップにより決定された特定の順番に従い、前記タイル画像データ格納手段に格納されたタイル画像データを所定タイル数メモリ上に読み出して、該読み出された所定数のタイル画像データに対して前記設定ステップにより設定される画像処理条件に基づく所定の画像処理を行い新たなタイル画像データを生成する生成ステップ(図13に示すステップ(6))とを有することを特徴とする。
【0014】
本発明に係る第5の発明は、前記所定の画像処理とは、前記タイル画像データを前記画像処理条件に従って指定画素数だけ横方向と縦方向にずらす画像シフト処理であることを特徴とする。
【0015】
本発明に係る第6の発明は、前記特定の順番は、画像データを分割して得られるタイル画像データの内で直交座標系に従う最左上のものを基準として、所定方向に隣接する所定数のタイル画像データが揃う順番とすることを特徴とする。
【0016】
本発明に係る第7の発明は、第4〜第6のいずれかに記載の画像処理方法を実現するプログラムを記憶したコンピュータが読み取り可能な記憶媒体であることを特徴とする。
【0017】
本発明に係る第8の発明は、第4〜第6のいずれかに記載の画像処理方法を実現するプログラムであることを特徴とする。
【0018】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づき説明する。
【0019】
図1は、本発明の第1実施形態を示す画像処理装置のシステム構成を示すブロック図である。
【0020】
図1において、1はリーダ部で、原稿の画像を読み取り、原稿画像に応じた画像データを後述する画像入出力制御部3へ出力する。2はプリンタ部で、画像入出力制御部3からの画像データに応じた画像を記録紙上に記録する。3は画像入出力制御部で、リーダ部1及びプリンタ部2に接続されており、ファクシミリ部4、ネットワークインタフェース部5、コンピュータインタフェース部6及びア部10等からなる。
【0021】
ファクシミリ部4は電話回線11を介して受信した圧縮画像データを伸長して、該伸長された画像データをコア部10へ転送し、また、このコア部10から転送された画像データを圧縮して、該圧縮された画像データを電話回線11を介して送信するものである。
【0022】
ネットワークインタフェース部5はローカルエリアネットワークまたはワイドエリアネットワーク(LAN/WAN)12とコア部10との間のインタフェースである。
【0023】
コンピュータインタフェース部6は、パーソナルコンピュータまたはワークステーション(PC/WS)13とコア部10との間のインタフェースである。
【0024】
コア部10は、リーダ部1、プリンタ部2、ファクシミリ部4、ネットワークインタフェース部5、コンピュータインタフェース部6のそれぞれの間のデータの流れを制御するものである。
【0025】
図2は、図1に示したリーダ部1及びプリンタ部2の構成を示す縦断面図である。
【0026】
図2において、リーダ部1の原稿給送装置101は原稿を最終頁から順に1枚ずつプラテンガラス102上へ給送し、原稿の読み取り動作終了後、プラテンガラス102上の原稿を排出するものである。
【0027】
原稿がプラテンガラス102上に搬送されると、ランプ103を点灯し、スキャナユニット104の移動を開始させて、原稿を露光走査する。このときの原稿からの反射光は、ミラー105,106,107及びレンズ108によってCCDイメージセンサ(以下、CCDと記述する)109へ導かれる。このように走査された原稿の画像は、CCD109によって読み取られる。CCD109から出力される画像データは、所定の処理が施された後、画像入出力制御部3のコア部10へ転送される。
【0028】
プリンタ部2のレーザドライバ201はレーザ発光部を駆動するものであり、コア部10から出力された画像データに応じたレーザ光をレーザ発光部に発光させる。このレーザ光は感光ドラム202に照射され、該感光ドラム202にはレーザ光に応じた潜像が形成される。この感光ドラム202の潜像の部分には現像器203によって現像剤が付着される。
【0029】
そして、レーザ光の照射開始と同期したタイミングで、上段給紙カセット204及び下段給紙カセット205のいずれかから記録紙を給紙して転写部206へ搬送し、感光ドラム202に付着された現像剤を記録紙に転写する。現像剤が転写された記録紙は定着部207へ搬送され、該定着部207の熱と圧力により現像剤は記録紙に定着される。
【0030】
このようにして定着部207を通過した記録紙は排出ローラ208によって排出され、ソータ211は排出された記録紙をそれぞれのビン212に収納して記録紙の仕分けを行う。
【0031】
なお、ソータ211は仕分けが設定されていない場合は最上部のビン212に記録紙を収納する。また、両面記録が設定されている場合は、排出ローラ208のところまで記録紙を搬送した後、排出ローラ208の回転方向を逆転させ、フラッパ209によって再給紙搬走路210へ導く。
【0032】
また、多重記録が設定されている場合は、記録紙を排出ローラ208まで搬送しないようにフラッパ209によって再給紙搬走路210へ導く。再給紙搬走路210へ導かれた記録紙は、上述したタイミングで転写部206へ搬送される。
【0033】
図3は、図1に示したリーダ部1の内部構成を示すブロック図である。
【0034】
図3において、109は電荷結像素子(CCD)で、プラテン102上に載置された原稿に投射される光の反射画像を光電変換して電気信号に変換する。110はA/D変換・シェーディング補正部(以下、A/D・SH部と記述する)である。
【0035】
111は画像処理部で、種々の画像演算処理を行う。112はインタフェース(I/F)、113はCPU(中央処理装置)で、メモリ115に確保されるワーク領域を使用して、画像処理を制御する。114は操作部であり、種々の画像処理モードの指示や、現在のシステム状態等を表示する。
【0036】
図3において、CCD109から出力された画像データは、A/D・SH部110でアナログ/デジタル変換処理が行われると共に、シェーディング補正処理が行われる。A/D・SH部110によって処理された画像データは、画像処理部111、インタフェース(I/F)112を介して画像入出力制御部3のコア部10へ転送される。
【0037】
CPU(中央処理装置)113は、操作部114で設定された設定内容に応じて画像処理部111及びインタフェース112を制御する。例えば、操作部114でトリミング処理を行って複写を行う複写モードが設定されている場合は、画像処理部111でトリミング処理を行わせて、インタフェース112から画像データと設定されたモードに応じた制御コマンドをコア部10へ転送させる。また、操作部114でファクシミリ送信モードが設定されている場合は、インタフェース112から画像データと設定されたモードに応じた制御コマンドをコア部10へ転送させる。
【0038】
このようなCPU113の制御プログラムはメモリ115に格納されており、CPU113はメモリ115内の制御プログラムを参照しながら制御を行う。また、メモリ115はCPU113の作業領域としても使われる。
【0039】
図4は、図1に示したコア部10の内部構成を示すブロック図である。
【0040】
図4において、リーダ部1はリーダI/F部135と接続されており、画像データおよび制御コマンドのやりとりを行うことができる。
【0041】
また、プリンタ部2はプリンタI/F部129と接続されており、画像データおよび制御コマンドのやりとりを行うことができる。同様に、ファクシミリ部4はFAX I/F部127と、ネットワークインタフェース部5はネットワークI/F部128と、コンピュータインタフェース部6はコンピュータI/F部132と接続されており、画像データおよび制御コマンドのやりとりを行うことができる。コア部10内部では、数多くの処理部が内部バス122と接続されており、相互にデータのやりとりができるような構成となっている。
【0042】
ここで、数多くの処理部とは、CPU121、メモリコントローラ部123、HDD(ハードディスクドライブ)コントローラ部125、FAX I/F部127、ネットワークI/F部128、プリンタI/F部129、画像・タイル変換処理部130、圧縮・伸長処理部131、コンピュータI/F部132、回転・反転処理部133、画像シフト処理部134、およびリーダI/F部135である。
【0043】
これら内部バス122に接続された各処理部は他の任意の処理部と接続することができる構成で、実際の動作時にはCPU121の制御によってデータを目的の処理部に対して転送する。各処理部の機能を以下に説明する。
【0044】
CPU121は中央演算処理装置であり、コア部10全体の制御を行う。メモリコントローラ部123は直接接続されたメモリ124を制御するもので、メモリ124はCPU121の制御プログラムを記憶しておくほか、CPU121の作業領域に使用される。HDDコントローラ部125は直接接続されたHDD(ハードディスクドライブ)126を制御するもので、HDD126は画像データを格納するために使用される。画像・タイル変換処理部130はメモリ136を使用して大きな画像データを複数の小さなタイル単位に分割し、または、小さなタイル画像データを複数集めて大きな画像データに変換する。
【0045】
圧縮・伸長処理部131は、タイル画像データを圧縮してタイルコードデータを生成する、またはタイルコードデータを伸長してタイル画像データを生成する。回転・反転処理部133はタイル画像データを画像回転・反転処理する。画像シフト処理部134はタイル画像データをシフト処理する。このシフト処理についての詳しくは後述する。
【0046】
次に、コア部10を中心とした画像データの流れを説明する。
【0047】
リーダ部1からの画像データはリーダI/F部135、内部バス122を介して画像・タイル変換処理部130に転送される。画像・タイル変換処理部130はメモリ136を作業領域として使いながら入力された画像データをタイル単位に分割して、一連のページ画像データを多数のタイル画像データに変換して内部バス122に対して出力する。出力されたタイル画像データは、内部バス122を介して圧縮・伸長処理部131に対して転送され、圧縮処理が施されたタイル画像コードデータとなり、再度内部バス122を介してHDDコントローラ部125に転送され、HDD126に格納される。
【0048】
HDD126に格納されたタイル画像コードデータはCPU121の制御により、プリンタ部2、ファクシミリ部4、ネットワークインタフェース部5、または、コンピュータインタフェース部6といった出力装置に対して出力される。
【0049】
ここでは、プリンタ部2に対して出力される手順を説明する。HDD126に格納されたタイル画像コードデータは、CPU121の制御により、HDDコントローラ125、内部バス122を介して圧縮・伸長処理部131に転送されて伸長処理が施されてタイル画像データに変換される。タイル画像データは、CPU121の制御により、再び内部バス122を介して画像・タイル変換処理部130に転送されてメモリ136に一時的に格納される。CPU121の制御によってすべてのタイル画像データについてこの処理が行われる。メモリ136にタイル画像データが既定量蓄えられたとき、画像・タイル変換処理部130はメモリ136から画像データの読み出しを開始する。
【0050】
そして、タイル・画像変換が行われ、内部バス122を介して画像データがプリンタI/F部129に対して転送される。プリンタI/F部129に転送された画像データは、さらにプリンタ部2に対して転送されて、プリンタ部2においてプリント処理が行われる。ファクシミリ部4、または、ネットワークインタフェース部5に対して出力する場合にも同様な手順で、ただし、プリンタI/F部129に対して画像データを転送する代わりにFAX I/F部127、または、ネットワークI/F部128に対して画像データを転送して出力処理が行われる。
【0051】
なお、以上では、リーダ部1から画像データが入力される場合について述べたが、ファクシミリ部4、ネットワークインタフェース部5、またはコンピュータインタフェース部6から画像データが入力される場合も同様な手順で画像データ転送が行われて、それぞれFAX I/F部127、ネットワークI/F部128、コンピュータインタフェース部6を介して画像データが入力され、内部バス122を介して画像・タイル変換処理部130に転送される。
【0052】
つまり、電話回線11からファクシミリ部4に対して入力された画像を表すコードデータは、ファクシミリ部4において画像データに展開される。該展開された画像データは、FAX I/F部127及び内部バス122を介して画像・タイル変換処理部130に転送される。
【0053】
また、LAN/WAN12からネットワークインタフェース部5に対して入力された画像データは、ネットワークインタフェース部5、ネットワークI/F部128、内部バス122を介して画像・タイル変換処理部130に転送される。また、PC/WS13からコンピュータインタフェース部6に対して入力された画像を表すコードデータは、コンピュータインタフェース部6において画像データに展開される。該展開された画像データはコンピュータインタフェース部6及び内部バス122を介して画像・タイル変換処理部130に転送される。
【0054】
そして、画像・タイル変換処理部130はメモリ136を作業領域として使いながら入力された画像データをタイル単位に分割して、一連のページ画像データを多数のタイル画像データに変換して内部バス122に対して出力する。
【0055】
そして、出力されたタイル画像データは、内部バス122を介して圧縮・伸長処理部131に対して転送され、圧縮処理が施されたタイル画像コードデータとなり、再度内部バス122を介してHDDコントローラ部125に転送され、HDD126に格納される。というように、リーダ部1から画像データが入力される場合と同様に画像データがタイル単位に分割され、さらに、圧縮処理されてHDD126に格納される。そして前述したのと同様な手順で、HDD126から、プリンタ部2、ファクシミリ部4、ネットワークインタフェース部5に対して画像データを出力することができる。
【0056】
ここで、HDD126に格納されたタイル画像コードデータは、プリンタ部2、ファクシミリ部4、ネットワークインタフェース部5、またはコンピュータインタフェース部6に対して出力する前に、次の手順で画像回転・反転や画像シフト処理などの画像処理加工を施すことができる。
【0057】
HDD126に格納されたタイル画像コードデータは、CPU121の制御によりHDDコントローラ部125、内部バス122を介して、圧縮・伸長処理部に転送され、伸長処理が施されて、圧縮されていないタイル画像データに変換されてから、再度内部バス122を介して、回転・反転処理部133、または画像シフト処理部134に対して転送される。
【0058】
そして、それぞれの処理部で画像処理が施された後、内部バス122を介してもう一度圧縮・伸長処理部131に転送されて今度は圧縮処理が施されて、圧縮されたタイル画像コードデータに変換され、そして、内部バス122を介してHDDコントローラ部125に転送され、HDD126に格納される。
【0059】
CPU121は、メモリ124に記憶されている制御プログラム及びリーダ部1から転送された制御コマンドおよび画像データとともに転送された制御コマンドに従って上述したような制御を行う。このように、コア部10を中心に原稿画像の読み取り、画像のプリント、画像の送受信、PC/WS13からのデータの入出力等の機能を複合させた処理を行うことが可能である。
【0060】
図5は、図4に示した画像シフト処理部134の内部構成を示すブロック図であり、図6は、図4に示した画像シフト処理部134が取り扱うタイル画像データの構造を説明する図である。
【0061】
図6において、aとbはそれぞれレジスタaおよびレジスタbの値であり、画像のシフト量を表すものである。これらはあらかじめCPU121によってレジスタ部144に設定しておくものである。またここでは、1タイルは横8画素、縦8画素からなる正方形であり、レジスタ値はa=3、b=2の場合である。
【0062】
図5において、141はデータ出力部、142はデータ入力部、143はタイルバッファ部、144はレジスタ部である。レジスタ部144は内部にレジスタxおよびレジスタyを持っており、内部バス122とデータ入力部142とを介して、CPU121がこれらのレジスタに値を設定することができる。また、内部バス122を介して転送されてくる画像データは、データ入力部142に入力され、画像データはタイルバッファ部143に格納される。
【0063】
データ出力部141は、タイルバッファ部143に格納されたタイルが4つになったところで内部バス122に対してデータ出力動作を開始する。
【0064】
ここで、出力するタイル画像データは、元となる4つのタイル画像データの中で、図6に示した斜線の範囲の1タイル分のタイル画像データである。1タイル分のタイル画像データ出力が終了すると、データ出力部141はデータ出力処理を中断し、4つのタイル画像データのうち、左側2つのタイル画像データをタイルバッファ部143から破棄して、再度4つのタイル画像データが格納されるのを待つ。データ出力部141は以上の処理を繰り返す。
【0065】
なお、データ入力部142は、前述の通り、内部バス122からタイル画像データが転送されてくるとそれをタイルバッファ部143に格納するが、すでにタイルバッファ部143に4つのタイル画像データが格納されているときには、内部バス122からのデータ転送要求を一時保留して、格納すべきタイル画像データのデータサイズがタイルバッファ143のサイズを超えないようにするとともに、入力されるタイル画像データの属性のタイル座標(x,y)を監視して、期待値(ex,ey)と異なる場合にタイルバッファ部143に格納されているタイル画像データを破棄するという処理を行う。ここで、期待値(ex,ey)は、2つ前に入力されたタイル画像データのタイル座標を(xx,yy)と書き表すと、(ex,ey)=(xx−1,y)で計算できる値の組のことである。
【0066】
つまり、データ入力部142は、2つ前と1つ前に入力されたタイル画像データの座標データを記憶しておき、次に入力されるタイル画像データのタイル座標の期待値を計算しておいて、実際に入力されたタイル画像データのタイル座標の値と比較するのである。また、タイル画像データの属性のタイル座標については後述する。
【0067】
図7は、図5に示したタイルバッファ部143に展開されるタイル画像データ例を示す図である。
【0068】
図7において、小さな正方形は画素で、1つのタイル画像データは、横8画素、縦8画素、合計64の画素から構成される。各画素は画像を構成する最小の単位で、R、G、Bの3つの数値を持つものである。それぞれの数値は「0」から「255」の範囲の数で、Rの数値はその画素の赤い成分の輝度を表し、Gの数値はその画素の緑の成分の輝度を表し、Bの数値はその画素の青い成分の輝度を表している。
【0069】
なお、図中の数字は説明の便宜上付けたもので、これらのR、G、Bの値とは無関係な、タイル画像データ中での画素番号を表すものである。
【0070】
図8,図9は、図5に示したデータ出力部141によるタイル画像データを内部バス122で転送するときのタイミングチャートである。
【0071】
図8に示すように、タイル画像データは、属性データおよび画素データとに分けて転送される。クロック信号に同期して、転送開始信号に合わせて、タイル画像データの属性データ、タイル画像データの画素データ、という順番で転送される。
【0072】
ここで、属性データの1番目の値「画像」はこの転送がタイル画像データの転送であることを示すフラグである。このフラグは他に、レジスタ部の設定を行う転送であることを示す値「レジスタ」を取ることがあり、その場合には図9で示すようなレジスタ設定値の転送となる。
【0073】
また、属性データの2番目の値「RGB」は、転送するタイル画像データがRGBの3つの値を持つ画像であることを示している。これは他に白黒データを表す「ND」などの値を取ることがある。
【0074】
また、属性データの3番目および4番目の値「x」および「y」は、タイル画像データのタイル座標を表す値である。
【0075】
ここで、タイル画像データのタイル座標とは、図10で示すような、2つの数値を組にしたものである。
【0076】
図10は、本発明に係る画像処理装置で取り扱うタイル画像データのタイル座標例を説明する図である。
【0077】
なお、図10では、画像全体が横方向64画素、縦方向48画素で構成される場合、つまり画像全体が、横方向8タイル、縦方向6タイルに分割できる場合である。このとき、左上のタイル画像データのタイル座標が(0,0)、その右隣は(1,0)といったように、x座標とy座標を組にしたものがタイル座標である。
【0078】
また、属性データの次には、タイル画像データの画素データが転送される。転送の順番は、図7で示したタイルの画素番号順であり、1から順に64まで画素単位で連続で転送される。
【0079】
図11は、本発明に係る画像処理装置における画像データシフト処理例を説明する図であり、図10で示したタイル分割した画像を画像シフトする場合に、HDD126から画像シフト処理部134に対してタイル画像データを転送する順番を示す図である。
【0080】
ここで、タイル単位に分割された画像に対して画像シフト処理を行う場合には、CPU121の制御でHDD126に格納してあるタイル画像データを内部バス122を介して画像シフト処理部134に、特定の順番に転送する必要がある。そして、その順番を示したものがこの図11である。番号の付いた矢印の番号の小さい順にタイル画像データを転送することを表しており、その順番をタイル座標で書き表すと次のようになる。
【0081】

Figure 2004056447
となるが、直行座標系で定義すれば、以下のような順番となる。
【0082】
つまり、画像を分割して得られたタイル画像データの内で最も左上のものを(0,0)と表記し、最も左上のものの右隣のタイル画像データを(1,0)、最も左上のものの下隣のタイル画像データを(0,1)というように、直交座標系での座標によってタイル画像データを表記したときに、特定の順番とは、次の順番である。
【0083】
(0,0)、(0,1)、(1,0)、(1,1)、(2,0)、(2,1)、(3,0)、……、(m,0)、(m,1)、
(0,1)、(0,2)、(1,1)、(1,2)、(2,1)、(2,2)、(3,1)、……、(m,1)、(m,2)、
(0,2)、(0,3)、(1,2)、(1,3)、(2,2)、(2,3)、(3,2)、……、(m,2)、(m,3)、
……、
(0,n−2)、(0,n−1)、(1,n−2)、(1,n−1)、(2,n−2)、(2,n−1)、(3,n−2)、……、(m,n−2)、(m,n−1)、
(0,n−1)、(0,n)、(1,n−1)、(1,n)、(2,n−1)、(2,n)、(3,n−1)、……、(m,n−1)、(m,n).
なお、ここで、mおよびnは自然数である。
【0084】
つまり、一番左上のタイル画像データを先頭に、ジグザグの順番に右方向に転送して、一番右端まで転送したら、次は1つ下のタイル画像データをジグザグに転送するということを、一番右下のタイル画像データが転送されるまで繰り返すのである。
【0085】
CPU121は、画像に含まれるタイル数の情報から、上述のタイル座標の順番を計算して、あらかじめメモリ124やHDD126に格納しておくか、または、逐次計算して、この順番にタイル画像データをHDD126から画像シフト処理部134に転送するように制御する。
【0086】
なお、図11では、横方向8タイル、縦方向6タイルに分割された画像を例にしているが、異なるタイル数を持った別の画像に対しても同様な順番に転送する。
【0087】
以上のような構成で、リーダ部1で読み取った原稿の画像データをタイル単位に分割してHDD126に格納し、画像シフト処理を施した後、プリンタ部2でプリント処理する手順を例にして、コア部10における画像データの流れと画像シフトのためのデータ処理構成について以下に説明する。
【0088】
まず、リーダ部1において前述のように原稿の読み取りが行われ、コア部10に対して画像データが転送される。そして、画像データは、コア部10のリーダI/F部135、内部バス122を介して画像・タイル変換処理部130に転送されて、タイル単位に分割される。
【0089】
そうしてできたタイル画像データは、前述の通り、内部バス122を介して圧縮・伸長処理部131に転送されて、圧縮処理が施されタイル画像コードデータに変換され、内部バス122、HDDコントローラ部125を介して、HDD126に格納される。
【0090】
次に、CPU121は、画像シフト処理部134のレジスタ部144に対して、画像シフト処理でのシフト量を画素単位で設定する。ここでは、横方向に3画素、縦方向に2画素シフトする場合を考える。CPU121は、内部バス122を介して、図9で示すようなタイミングで、属性データとして「レジスタ」という値を持つレジスタ設定のデータ転送を画像シフト処理部134に対して行う。具体的には、レジスタ設定データの1番目の値として横方向のシフト量を表す「3」を、レジスタ設定データの2番目の値として縦方向のシフト量を表す「2」を、転送して、画像シフト処理部134のレジスタ部144のレジスタaの値を3に、レジスタbの値を2に設定する。
【0091】
次に、CPU121は、タイル画像データの転送順序を生成し、メモリ124に格納する。実際の系においては、取り扱う画像データは横方向、縦方向ともに数千画素となることが多いが、ここでは説明のために、リーダ部1から読み取った原稿の画像データが横方向64画素、縦方向48画素であるとして説明する。このとき、この画像データをタイル分割すると、図10のように横8タイル、縦6タイルの合計48タイルに分割され、画像シフトのためのタイル画像データの転送順序は前述の通り、図11で示すようなジグザグの順番となる。
【0092】
CPU121は、この順番をあらかじめメモリ124に格納しておく。そして、CPU121は、メモリ124に格納した順番を参照しながら、HDD126に格納されているタイル画像データを順番に読み出して、転送を行う。
【0093】
つまり、HDD126に格納されているタイル画像コードデータは、CPU121の制御により、HDDコントローラ部125および内部バス122を介して、圧縮・伸長処理部131に転送され、伸長処理が施され、タイル画像データに変換される。
【0094】
そして、タイル画像データは、内部バス122を介して画像シフト処理部134に転送され、画像シフト処理部134内のタイルバッファ部143に格納される。
【0095】
このように、CPU121の制御によって、図11で示した特定の順番にタイル画像データが転送されて、タイルバッファ部143に次々に格納されることになる。そして、前述の通り、タイルバッファ部143にタイル画像データが4つ格納された時点で、画像シフト処理部134内のデータ出力部141はレジスタ部144内のレジスタaおよびレジスタbの値、ここでは「3」と「2」、を使って、図6で示したように4つのタイル画像データに対する斜線部の位置を決め、斜線部に対応する画素をタイルバッファ部143から1画素ずつ読み出し、新たな1つのタイル画像データを生成し、内部バス122に対して図8で示したタイミングで転送する。
【0096】
こうして生成された新たなタイル画像データは、内部バス122を介して圧縮・伸長処理部131に転送されて圧縮され、タイル画像コードデータに変換され、再度内部バス122を介してHDDコントローラ部125に転送され、HDD126に格納される。
【0097】
ここで、画像シフト処理部134の処理にもう一度着目してみると、タイル画像データは次々に特定の順番で入力されること、4つのタイル画像データが格納されると1つの新たなタイル画像データを生成すること、およびその後タイルバッファ部143に格納されたもっとも古い2つのタイル画像データを破棄することによって、さらに2つのタイル画像データが入力されるごとに、新たな1つのタイル画像データが生成されて出力されるという動作が行われることがわかる。
【0098】
したがって、図11における1の矢印の最後のタイル画像データ、つまり、タイル座標(7,1)のタイル画像データ、まで入力されると、7つの新たなタイル画像データが生成・出力されることになる。
【0099】
そして、次のタイル座標(0,1)のタイル画像データが入力されると、前述した通り、データ入力部142は、入力されたタイル画像データの属性のタイル座標(0,1)が、2つ前に入力されたタイル画像の属性のタイル座標(7,0)から計算して得られる期待値(8,0)と異なることを検知して、タイルバッファ部143内部に格納されているタイル画像データをすべて破棄して、新しく入力されたタイル座標(0,1)をその属性に持つタイル画像データのみをタイルバッファ部143に格納する。
【0100】
このようなデータ処理構成によって、タイル座標がそれぞれ(7,0)、(7,1)、(0,1)、(0,2)となる図11において隣り合わない4つのタイルから新たなタイル画像データを生成・出力してしまうことを回避し、隣り合った4つのタイル画像データからのみ新たなタイル画像データを生成・出力できるようになっている。
【0101】
したがって、こうしたデータ処理構成により、図11で示す入力されるタイル画像データに対して、図12の斜線部で示す新たな35個のタイル画像データTD1〜TD35が図で示した番号順に生成・出力されることとなる。これらのタイル画像データTD1〜TD35によって構成される画像データは、元の図10で示した画像データIDを左方向に3画素、上方向に2画素シフトしたものとなっている。
【0102】
なお、生成された画像シフト後の画像データは横方向および縦方向にタイル数が1つずつ減って小さな画像データとなるため、シフト後に必要となる画像サイズよりも右と下に1タイルずつ大きなサイズの画像データを元画像データとして用意する必要がある。最終的に、すべての転送が終了した時点で見ると、HDD126内に図12で示した1から35までのタイル画像データTD1〜TD35を圧縮したタイル画像コードデータが格納された状態となる。
【0103】
次に、CPU121は、HDD126内のタイル画像コードデータを図12で示した番号順に読み出し、HDDコントローラ部125、内部バス122を介して圧縮・伸長処理部131に転送して伸長処理を施しタイル画像データに変換し、再度内部バス122を介して画像・タイル変換処理部130に転送し、プリントすることのできるページ画像データに変換して、内部バス122、プリンタI/F部129を介して、プリンタ部2に画像データを転送してプリント出力を得る。
【0104】
ここまで述べたように、CPU121の制御により、画像シフト処理部134に対して、処理対象のタイル画像データを特定の順番に転送することによって、ページメモリやバンドメモリ等の大きなサイズのメモリを用意することなく、画素単位での画像シフト処理が実現できる。
【0105】
図13は、本発明に係る画像処理装置におけるデータ処理手順の一例を示すフローチャートである。なお、(1)〜(8)は各ステップを示す。
【0106】
まず、リーダ部1において前述のように原稿の読み取りが行われ、コア部10に対して画像データが転送される。そして、画像データは、コア部10のリーダI/F部135、内部バス122を介して画像・タイル変換処理部130に転送されて、タイル単位に分割される(1)。
【0107】
そうしてできたタイル画像データは、前述の通り、内部バス122を介して圧縮・伸長処理部131に転送されて、圧縮処理が施されタイル画像コードデータに変換され、内部バス122、HDDコントローラ部125を介して、HDD126に格納される(2)。
【0108】
次に、CPU121は、画像シフト処理部134のレジスタ部144に対して、画像シフト処理でのシフト量を画素単位で設定する(3)。具体的には、レジスタ設定データの1番目の値として横方向のシフト量を表す「3」を、レジスタ設定データの2番目の値として縦方向のシフト量を表す「2」を、転送して、画像シフト処理部134のレジスタ部144のレジスタaの値を3に、レジスタbの値を2に設定する。
【0109】
次に、CPU121は、格納されたタイル画像データの量を検知してタイル画像データの転送順序を生成し(4)、メモリ124に格納する。そして、CPU121は、この順番をあらかじめメモリ124に格納しておく。そして、CPU121は、メモリ124に格納した順番を参照しながら、HDD126に格納されているタイル画像データを順番に読み出して、転送を行う。
【0110】
つまり、HDD126に格納されているタイル画像コードデータは、CPU121の制御により、HDDコントローラ部125および内部バス122を介して、圧縮・伸長処理部131に転送され、伸長処理が施され、タイル画像データに変換される。
【0111】
そして、タイル画像データは、内部バス122を介して画像シフト処理部134に転送され、画像シフト処理部134内のタイルバッファ部143に格納される。
【0112】
このように、CPU121の制御によって、図11で示した特定の順番にタイル画像データが転送されて、タイルバッファ部143に次々に格納されることになる。そして、前述の通り、タイルバッファ部143にタイル画像データが4つ格納された時点で(5)、画像シフト処理部134内のデータ出力部141はレジスタ部144内のレジスタaおよびレジスタbの値、ここでは「3」と「2」、を使って、図6で示したように4つのタイル画像データに対する斜線部の位置を決め、斜線部に対応する画素をタイルバッファ部143から1画素ずつ読み出し、新たな1つのタイル画像データを生成し(6)、内部バス122に対して図8で示したタイミングで転送する。
【0113】
こうして生成された新たなタイル画像データは、内部バス122を介して圧縮・伸長処理部131に転送されて圧縮され、タイル画像コードデータに変換され、再度内部バス122を介してHDDコントローラ部125に転送され、HDD126に格納される(7)。
【0114】
したがって、こうしたデータ処理構成により、図11で示す入力されるタイル画像データに対して、図12の斜線部で示す新たな35個のタイル画像データTD1〜TD35が図で示した番号順に生成・出力されたかどうかを判断して(8)、YESならば処理を終了し、NOならばステップ(5)へ戻る。
【0115】
これにより、タイル画像データTD1〜TD35によって構成される画像データは、元の図10で示した画像データIDを左方向に3画素、上方向に2画素シフトしたものとなってHD126に格納される。
【0116】
以下、図14に示すメモリマップを参照して本発明に係る画像処理装置で読み出し可能なデータ処理プログラムの構成について説明する。
【0117】
図14は、本発明に係る画像処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0118】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0119】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0120】
本実施形態における図13に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0121】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0122】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0123】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROM,EEPROM等を用いることができる。
【0124】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0125】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0126】
【発明の効果】
以上説明したように、本発明によれば、格納されたタイル画像データの量を検知し、該検知されるタイル画像データの量に基づき、タイル画像データ格納手段から読み出すタイル画像データの特定の順番を決定し、該決定された特定の順番に従い、格納されたタイル画像データを所定タイル数メモリ上に読み出して、該読み出された所定数のタイル画像データに対して設定される画像処理条件に基づく所定の画像処理を行い新たなタイル画像データを生成するので、画像を小さな複数のタイル単位に分割して扱うタイル分割方式において、画像シフト処理のように複数のタイルにまたがった画像処理を施す場合にも、元画像を復元するために大きなメモリを用意することなく、所望の画像処理を正確に実現することが可能となる優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施形態を示す画像処理装置のシステム構成を示すブロック図である。
【図2】本発明に係る画像処理装置におけるリーダ部及びプリンタ部の構成を示す縦断面図である。
【図3】本発明に係る画像処理装置におけるリーダ部の内部構成を示すブロック図である。
【図4】本発明に係る画像処理装置におけるコア部の内部構成を示すブロック図である。
【図5】本発明に係る画像処理装置における画像シフト処理部の内部構成を示すブロック図である。
【図6】本発明に係る画像処理装置における画像シフト処理部の画像シフト処理での画像処理内容を示す図である。
【図7】図5に示したタイルバッファ部に展開されるタイル画像データ例を示す図である。
【図8】本発明に係る画像処理装置における内部バスのタイル画像データ転送時のタイミングチャートである。
【図9】本発明に係る画像処理装置における内部バスのレジスタ設定データ転送時のタイミングチャートである。
【図10】本発明に係る画像処理装置におけるタイル画像データに分割した画像全体を示す図である。
【図11】本発明に係る画像処理装置におけるタイル画像データの転送順序を示す図である。
【図12】本発明に係る画像処理装置における画像シフト処理部の出力タイル画像データとその出力順序を示す図である。
【図13】本発明に係る画像処理装置におけるデータ処理手順の一例を示すフローチャートである。
【図14】本発明に係る画像処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
1 リーダ部
2 プリンタ部
3 画像入出力制御部
4 ファクシミリ部
5 ネットワークインタフェース部
6 コンピュータインタフェース部
10 コア部
130 画像・タイル変換処理部
131 圧縮・伸長処理部
132 コンピュータI/F部
133 回転・反転処理部
134 画像シフト処理部
135 リーダI/F部
136 メモリ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing apparatus and an image processing method for performing predetermined image processing on image data divided into a plurality of small tile image units, a computer-readable storage medium, and a program.
[0002]
[Prior art]
Generally, image data handled by office image equipment such as a facsimile and a copying machine is obtained by reading an A4 or A3 size document at a resolution of several hundreds of dpi (dot per inch: the number of pixels per inch). Therefore, the image data has several thousands of pixels in the horizontal direction and the vertical direction, and tens of millions to 100 million pixels in total number of pixels, and the data amount is enormous.
[0003]
In recent years, in office image equipment, there has been a demand for switching from a black-and-white image to a color image for an image to be handled. However, the amount of data per pixel in a color image is several times to several tens times that of a black-and-white image. As a result, the data size of images handled by office imaging equipment has explosively increased.
[0004]
Under such a background, a mechanism for handling large image data without using an expensive large-capacity memory device has been considered.
[0005]
This is a method of storing an image in an HDD (hard disk drive) device which has a large capacity but is less expensive than a memory device, or a method of compressing and storing the entire image. Also, a tile division method that manages an image in units of tiles by dividing the entire image into small rectangular or square units consisting of tens or hundreds of pixels called tiles without treating the entire image as a single data block. May be taken.
[0006]
Here, the size of the tile includes 8 pixels horizontally and 8 pixels vertically, 32 pixels horizontally and 32 pixels vertically, and the number of pixels handled at a time falls within the range of hundreds to thousands. In this method, huge image data read by a reader or huge image data received by a facsimile machine is once divided into small tiles and converted into many small tile image data, and the small tile images are converted into image equipment. Treat with. Therefore, a storage device such as a memory or an HDD need only have an area in small tile units, that is, it is not necessary to prepare a large continuous area in page units, and an expensive memory can be reduced in size.
[0007]
Considering general software processing that executes several processes simultaneously, a considerably large memory is required for multiple programs to use multiple large images at the same time. By dividing the data so that it can be processed in small data units, a large amount of memory is not required even if a plurality of programs open a plurality of tile images.
[0008]
[Problems to be solved by the invention]
However, even in the tile division method in which one large image is divided into a plurality of pieces and managed, for example, an image processing that extends over a plurality of tiles with respect to the original , It is necessary to restore the original large image and then perform the desired image processing on the entire image, and as a work area for restoring the original image data once, a large enough area to store the entire image Image processing cannot be performed without a memory area. Therefore, there is a possibility that the merit of the tile division method that the memory size can be reduced may be lost.
[0009]
SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems, and an object of the present invention is to detect the amount of stored tile image data, and based on the detected amount of tile image data, to determine a tile image. A specific order of the tile image data to be read from the data storage means is determined, and the stored tile image data is read out onto a predetermined tile number memory in accordance with the determined specific order, and the read predetermined number of tiles is read. By performing predetermined image processing based on image processing conditions set for image data and generating new tile image data, an image shift process is performed in a tile division method in which an image is divided into a plurality of small tile units. When performing image processing that spans multiple tiles as in (1), the desired image processing can be performed correctly without preparing a large memory for restoring the original image. In that the image processing apparatus and image processing method, and a computer to implement to provide a storage medium and a program reading.
[0010]
[Means for Solving the Problems]
A first invention according to the present invention is an image processing apparatus that performs predetermined image processing on image data divided into a plurality of small tile image units, and a tile image data storage unit that stores a plurality of tile image data (Corresponding to the HDD 126 shown in FIG. 4), setting means (corresponding to the CPU 121 shown in FIG. 4) for setting image processing conditions for the tile image data stored in the tile image data storage means, and the tile image data storage means Detecting means (corresponding to the CPU 121 shown in FIG. 4) for detecting the amount of tile image data stored in the tile image data, and a tile image read from the tile image data storing means based on the amount of tile image data detected by the detecting means. Determining means (corresponding to the CPU 121 shown in FIG. 4) for determining a specific order of data; Reading the tile image data stored in the tile image data storage means into a predetermined tile number memory in accordance with the order of the image processing, and performing image processing set by the setting means on the read predetermined number of tile image data. The image processing apparatus further includes a generation unit (corresponding to the image shift processing unit 134 illustrated in FIG. 4) that performs predetermined image processing based on a condition to generate new tile image data.
[0011]
A second invention according to the present invention is characterized in that the predetermined image processing is an image shift processing of shifting the tile image data in a horizontal direction and a vertical direction by a designated number of pixels according to the image processing condition.
[0012]
In the third invention according to the present invention, the specific order is such that a predetermined number of tile image data obtained by dividing the image data, the tile image data being adjacent to the predetermined direction in the predetermined direction with reference to the upper leftmost one in the rectangular coordinate system. It is characterized by the order in which tile image data is arranged.
[0013]
A fourth invention according to the present invention is an image processing method in an image processing apparatus for performing predetermined image processing on image data divided into a plurality of small tile image units, wherein the image data is stored in a tile image data storage unit. A setting step (step (3) shown in FIG. 13) for setting image processing conditions for a plurality of tile image data, and a detecting step (FIG. 13) for detecting the amount of tile image data stored in the tile image data storage means. (4)) and a determining step of determining a specific order of the tile image data to be read from the tile image data storage unit based on the amount of the tile image data detected by the detecting step (the step shown in FIG. 4)) and stored in the tile image data storage means according to the specific order determined in the determining step. Read out the tile image data into a predetermined number of tiles memory, perform predetermined image processing on the read out predetermined number of tile image data based on the image processing conditions set in the setting step, and obtain new tile image data. (Step (6) shown in FIG. 13) for generating
[0014]
A fifth invention according to the present invention is characterized in that the predetermined image processing is an image shift processing for shifting the tile image data in a horizontal direction and a vertical direction by a designated number of pixels according to the image processing condition.
[0015]
According to a sixth aspect of the present invention, the specific order is such that a predetermined number of tile image data obtained by dividing the image data and which are adjacent in a predetermined direction with respect to a tile image data obtained by dividing the image data at the upper left corner in the rectangular coordinate system. It is characterized by the order in which tile image data is arranged.
[0016]
A seventh invention according to the present invention is a computer-readable storage medium storing a program for realizing the image processing method according to any one of the fourth to sixth aspects.
[0017]
An eighth invention according to the present invention is a program for realizing the image processing method according to any one of the fourth to sixth aspects.
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0019]
FIG. 1 is a block diagram showing a system configuration of an image processing apparatus according to the first embodiment of the present invention.
[0020]
In FIG. 1, reference numeral 1 denotes a reader unit which reads a document image and outputs image data corresponding to the document image to an image input / output control unit 3 described later. Reference numeral 2 denotes a printer unit that records an image corresponding to image data from the image input / output control unit 3 on a recording sheet. Reference numeral 3 denotes an image input / output control unit, which is connected to the reader unit 1 and the printer unit 2, and comprises a facsimile unit 4, a network interface unit 5, a computer interface unit 6, a computer unit 10, and the like.
[0021]
The facsimile unit 4 expands the compressed image data received via the telephone line 11, transfers the expanded image data to the core unit 10, and compresses the image data transferred from the core unit 10 to compress the image data. The compressed image data is transmitted via the telephone line 11.
[0022]
The network interface unit 5 is an interface between the local area network or wide area network (LAN / WAN) 12 and the core unit 10.
[0023]
The computer interface unit 6 is an interface between the personal computer or workstation (PC / WS) 13 and the core unit 10.
[0024]
The core unit 10 controls the flow of data among the reader unit 1, the printer unit 2, the facsimile unit 4, the network interface unit 5, and the computer interface unit 6.
[0025]
FIG. 2 is a longitudinal sectional view showing the configuration of the reader unit 1 and the printer unit 2 shown in FIG.
[0026]
In FIG. 2, a document feeder 101 of the reader unit 1 feeds a document one by one from a last page onto a platen glass 102, and discharges the document on the platen glass 102 after the reading operation of the document is completed. is there.
[0027]
When the document is conveyed onto the platen glass 102, the lamp 103 is turned on, the movement of the scanner unit 104 is started, and the document is exposed and scanned. The light reflected from the original at this time is guided to a CCD image sensor (hereinafter, referred to as a CCD) 109 by mirrors 105, 106, 107 and a lens 108. The image of the document thus scanned is read by the CCD 109. The image data output from the CCD 109 is transferred to the core unit 10 of the image input / output control unit 3 after performing a predetermined process.
[0028]
The laser driver 201 of the printer unit 2 drives the laser light emitting unit, and causes the laser light emitting unit to emit laser light corresponding to the image data output from the core unit 10. The laser beam is applied to the photosensitive drum 202, and a latent image corresponding to the laser beam is formed on the photosensitive drum 202. A developer is attached to a portion of the latent image on the photosensitive drum 202 by a developing device 203.
[0029]
Then, at a timing synchronized with the start of the laser beam irradiation, the recording paper is fed from one of the upper paper feed cassette 204 and the lower paper feed cassette 205, conveyed to the transfer unit 206, and developed by the photosensitive drum 202. Transfer the agent to recording paper. The recording paper to which the developer has been transferred is transported to the fixing unit 207, and the developer is fixed to the recording paper by the heat and pressure of the fixing unit 207.
[0030]
The recording paper that has passed through the fixing unit 207 in this way is discharged by discharge rollers 208, and the sorter 211 sorts the recording paper by storing the discharged recording paper in each bin 212.
[0031]
Note that the sorter 211 stores the recording paper in the uppermost bin 212 when the sorting is not set. When double-sided recording is set, the recording paper is conveyed to the discharge roller 208, the rotation direction of the discharge roller 208 is reversed, and the recording paper is guided to the re-feeding conveyance path 210 by the flapper 209.
[0032]
When multiplex recording is set, the recording paper is guided to the re-feeding conveyance path 210 by the flapper 209 so as not to be conveyed to the discharge roller 208. The recording paper guided to the re-feeding conveyance path 210 is conveyed to the transfer unit 206 at the timing described above.
[0033]
FIG. 3 is a block diagram showing an internal configuration of the reader unit 1 shown in FIG.
[0034]
In FIG. 3, reference numeral 109 denotes a charge imaging device (CCD), which photoelectrically converts a reflection image of light projected on a document placed on the platen 102 into an electric signal. Reference numeral 110 denotes an A / D conversion / shading correction unit (hereinafter, referred to as an A / D / SH unit).
[0035]
An image processing unit 111 performs various image calculation processes. 112 is an interface (I / F), 113 is a CPU (Central Processing Unit), and controls image processing using a work area secured in the memory 115. An operation unit 114 displays instructions of various image processing modes and displays the current system state.
[0036]
In FIG. 3, the image data output from the CCD 109 is subjected to analog / digital conversion processing by the A / D / SH section 110 and shading correction processing. The image data processed by the A / D / SH unit 110 is transferred to the core unit 10 of the image input / output control unit 3 via the image processing unit 111 and the interface (I / F) 112.
[0037]
A CPU (Central Processing Unit) 113 controls the image processing unit 111 and the interface 112 according to the settings set by the operation unit 114. For example, when a copy mode in which a copy is performed by performing a trimming process using the operation unit 114 is set, a trimming process is performed in the image processing unit 111, and control according to the mode set with the image data from the interface 112 is performed. The command is transferred to the core unit 10. When the facsimile transmission mode is set on the operation unit 114, the interface unit 112 transfers image data and a control command corresponding to the set mode to the core unit 10.
[0038]
Such a control program of the CPU 113 is stored in the memory 115, and the CPU 113 performs control while referring to the control program in the memory 115. The memory 115 is also used as a work area of the CPU 113.
[0039]
FIG. 4 is a block diagram showing an internal configuration of the core unit 10 shown in FIG.
[0040]
In FIG. 4, the reader unit 1 is connected to a reader I / F unit 135, and can exchange image data and control commands.
[0041]
The printer unit 2 is connected to the printer I / F unit 129, and can exchange image data and control commands. Similarly, the facsimile unit 4 is connected to the FAX I / F unit 127, the network interface unit 5 is connected to the network I / F unit 128, and the computer interface unit 6 is connected to the computer I / F unit 132. Can be exchanged. Within the core unit 10, a number of processing units are connected to the internal bus 122 so that data can be exchanged with each other.
[0042]
Here, the many processing units include the CPU 121, the memory controller 123, the HDD (hard disk drive) controller 125, the FAX I / F 127, the network I / F 128, the printer I / F 129, the image / tile. A conversion processing unit 130, a compression / decompression processing unit 131, a computer I / F unit 132, a rotation / inversion processing unit 133, an image shift processing unit 134, and a reader I / F unit 135.
[0043]
Each of the processing units connected to the internal bus 122 can be connected to any other processing unit, and transfers data to a target processing unit under the control of the CPU 121 during an actual operation. The function of each processing unit will be described below.
[0044]
The CPU 121 is a central processing unit, and controls the entire core unit 10. The memory controller 123 controls the directly connected memory 124. The memory 124 stores a control program for the CPU 121 and is used as a work area of the CPU 121. The HDD controller 125 controls a directly connected HDD (hard disk drive) 126, and the HDD 126 is used to store image data. The image / tile conversion processing unit 130 uses the memory 136 to divide large image data into a plurality of small tile units, or collects a plurality of small tile image data and converts them into large image data.
[0045]
The compression / expansion processing unit 131 generates tile code data by compressing the tile image data, or generates tile image data by expanding the tile code data. The rotation / inversion processing unit 133 performs image rotation / inversion processing on the tile image data. The image shift processor 134 shifts the tile image data. Details of this shift processing will be described later.
[0046]
Next, the flow of image data centering on the core unit 10 will be described.
[0047]
The image data from the reader unit 1 is transferred to the image / tile conversion processing unit 130 via the reader I / F unit 135 and the internal bus 122. The image / tile conversion processing unit 130 divides the input image data into tiles while using the memory 136 as a work area, converts a series of page image data into a large number of tile image data, Output. The output tile image data is transferred to the compression / decompression processing unit 131 via the internal bus 122, becomes tile image code data subjected to compression processing, and is again transmitted to the HDD controller unit 125 via the internal bus 122. The data is transferred and stored in the HDD 126.
[0048]
The tile image code data stored in the HDD 126 is output to an output device such as the printer unit 2, facsimile unit 4, network interface unit 5, or computer interface unit 6 under the control of the CPU 121.
[0049]
Here, a procedure output to the printer unit 2 will be described. Under the control of the CPU 121, the tile image code data stored in the HDD 126 is transferred to the compression / decompression processing unit 131 via the HDD controller 125 and the internal bus 122, subjected to decompression processing, and converted into tile image data. The tile image data is again transferred to the image / tile conversion processing unit 130 via the internal bus 122 and temporarily stored in the memory 136 under the control of the CPU 121. This process is performed on all tile image data under the control of the CPU 121. When a predetermined amount of tile image data is stored in the memory 136, the image / tile conversion processing unit 130 starts reading image data from the memory 136.
[0050]
Then, tile / image conversion is performed, and the image data is transferred to the printer I / F unit 129 via the internal bus 122. The image data transferred to the printer I / F unit 129 is further transferred to the printer unit 2 and the printer unit 2 performs print processing. The same procedure is used when outputting to the facsimile unit 4 or the network interface unit 5, but instead of transferring the image data to the printer I / F unit 129, the FAX I / F unit 127 or The image data is transferred to the network I / F unit 128 and output processing is performed.
[0051]
In the above, the case where image data is input from the reader unit 1 has been described. However, when image data is input from the facsimile unit 4, the network interface unit 5, or the computer interface unit 6, image data is input in the same procedure. The image data is input via the FAX I / F unit 127, the network I / F unit 128, and the computer interface unit 6 and transferred to the image / tile conversion processing unit 130 via the internal bus 122. You.
[0052]
That is, the code data representing the image input from the telephone line 11 to the facsimile unit 4 is developed into image data in the facsimile unit 4. The developed image data is transferred to the image / tile conversion processing unit 130 via the FAX I / F unit 127 and the internal bus 122.
[0053]
The image data input from the LAN / WAN 12 to the network interface unit 5 is transferred to the image / tile conversion processing unit 130 via the network interface unit 5, the network I / F unit 128, and the internal bus 122. Further, code data representing an image input from the PC / WS 13 to the computer interface unit 6 is developed into image data in the computer interface unit 6. The developed image data is transferred to the image / tile conversion processing unit 130 via the computer interface unit 6 and the internal bus 122.
[0054]
The image / tile conversion processing unit 130 divides the input image data into tiles while using the memory 136 as a work area, converts a series of page image data into a large number of tile image data, Output to
[0055]
Then, the output tile image data is transferred to the compression / decompression processing unit 131 via the internal bus 122, becomes compressed tile image code data, and is again transmitted to the HDD controller unit via the internal bus 122. 125, and stored in the HDD 126. Thus, similarly to the case where image data is input from the reader unit 1, the image data is divided into tiles, compressed, and stored in the HDD 126. Image data can be output from the HDD 126 to the printer unit 2, facsimile unit 4, and network interface unit 5 in the same procedure as described above.
[0056]
Here, before outputting the tile image code data stored in the HDD 126 to the printer unit 2, the facsimile unit 4, the network interface unit 5, or the computer interface unit 6, the image rotation / inversion and image Image processing such as shift processing can be performed.
[0057]
The tile image code data stored in the HDD 126 is transferred to the compression / decompression processing unit via the HDD controller unit 125 and the internal bus 122 under the control of the CPU 121, subjected to the decompression processing, and is subjected to the uncompressed tile image data. After that, the image data is transferred to the rotation / reversal processing unit 133 or the image shift processing unit 134 via the internal bus 122 again.
[0058]
Then, after the image processing is performed in each processing unit, the image data is transferred to the compression / decompression processing unit 131 again via the internal bus 122, and then subjected to a compression process, and converted into compressed tile image code data. Then, the data is transferred to the HDD controller 125 via the internal bus 122 and stored in the HDD 126.
[0059]
The CPU 121 performs the above-described control in accordance with the control program stored in the memory 124, the control command transferred from the reader unit 1, and the control command transferred together with the image data. As described above, it is possible to perform processing combining functions such as reading of a document image, printing of an image, transmission and reception of an image, and input / output of data from / to the PC / WS 13, centering on the core unit 10.
[0060]
FIG. 5 is a block diagram showing the internal configuration of the image shift processing unit 134 shown in FIG. 4, and FIG. 6 is a diagram for explaining the structure of tile image data handled by the image shift processing unit 134 shown in FIG. is there.
[0061]
In FIG. 6, a and b are the values of the register a and the register b, respectively, and represent the shift amount of the image. These are set in the register section 144 by the CPU 121 in advance. Also, here, one tile is a square composed of eight pixels horizontally and eight pixels vertically, and the register values are a = 3 and b = 2.
[0062]
In FIG. 5, 141 is a data output unit, 142 is a data input unit, 143 is a tile buffer unit, and 144 is a register unit. The register section 144 has a register x and a register y inside, and the CPU 121 can set values to these registers via the internal bus 122 and the data input section 142. The image data transferred via the internal bus 122 is input to the data input unit 142, and the image data is stored in the tile buffer unit 143.
[0063]
The data output unit 141 starts a data output operation to the internal bus 122 when the number of tiles stored in the tile buffer unit 143 becomes four.
[0064]
Here, the tile image data to be output is tile image data for one tile in the range of the hatched area shown in FIG. 6 among the original four tile image data. When the output of the tile image data for one tile is completed, the data output unit 141 interrupts the data output process, discards the two tile image data on the left side of the four tile image data from the tile buffer unit 143, and re-enters the data. Wait for one tile image data to be stored. The data output unit 141 repeats the above processing.
[0065]
As described above, when the tile image data is transferred from the internal bus 122, the data input unit 142 stores it in the tile buffer unit 143. However, four tile image data are already stored in the tile buffer unit 143. In this case, the data transfer request from the internal bus 122 is temporarily suspended so that the data size of the tile image data to be stored does not exceed the size of the tile buffer 143, and the attribute of the input tile image data is The tile coordinates (x, y) are monitored, and if different from the expected value (ex, ey), the tile image data stored in the tile buffer unit 143 is discarded. Here, the expected value (ex, ey) is calculated as (ex, ey) = (xx−1, y), where the tile coordinates of the tile image data input two previous times are represented as (xx, yy). A set of possible values.
[0066]
That is, the data input unit 142 stores the coordinate data of the tile image data input two and one before, and calculates the expected value of the tile coordinates of the tile image data input next. Then, the value is compared with the value of the tile coordinates of the tile image data actually input. The tile coordinates of the attribute of the tile image data will be described later.
[0067]
FIG. 7 is a diagram showing an example of tile image data developed in the tile buffer unit 143 shown in FIG.
[0068]
In FIG. 7, a small square is a pixel, and one tile image data is composed of a total of 64 pixels, that is, 8 pixels horizontally and 8 pixels vertically. Each pixel is a minimum unit constituting an image and has three numerical values of R, G, and B. Each numerical value is a number in the range of “0” to “255”, the numerical value of R represents the luminance of the red component of the pixel, the numerical value of G represents the luminance of the green component of the pixel, and the numerical value of B represents It represents the luminance of the blue component of the pixel.
[0069]
The numbers in the figure are given for convenience of description, and represent pixel numbers in the tile image data that are not related to the values of R, G, and B.
[0070]
8 and 9 are timing charts when the tile image data by the data output unit 141 shown in FIG.
[0071]
As shown in FIG. 8, the tile image data is transferred separately into attribute data and pixel data. In synchronization with the clock signal, the attribute data of the tile image data and the pixel data of the tile image data are transferred in this order in accordance with the transfer start signal.
[0072]
Here, the first value “image” of the attribute data is a flag indicating that this transfer is transfer of tile image data. This flag may take a value "register" indicating that the transfer is for setting the register section. In this case, the register setting value is transferred as shown in FIG.
[0073]
Further, the second value “RGB” of the attribute data indicates that the tile image data to be transferred is an image having three values of RGB. This may take other values such as "ND" representing black and white data.
[0074]
The third and fourth values “x” and “y” of the attribute data are values representing the tile coordinates of the tile image data.
[0075]
Here, the tile coordinates of the tile image data are a set of two numerical values as shown in FIG.
[0076]
FIG. 10 is a diagram illustrating an example of tile coordinates of tile image data handled by the image processing apparatus according to the present invention.
[0077]
FIG. 10 shows a case where the entire image is composed of 64 pixels in the horizontal direction and 48 pixels in the vertical direction, that is, a case where the entire image can be divided into 8 tiles in the horizontal direction and 6 tiles in the vertical direction. At this time, the tile coordinate is a set of the x coordinate and the y coordinate such that the tile coordinate of the upper left tile image data is (0, 0), and the right neighbor is (1, 0).
[0078]
After the attribute data, the pixel data of the tile image data is transferred. The transfer order is the order of the pixel numbers of the tiles shown in FIG. 7, and the tiles are sequentially transferred from 1 to 64 in units of pixels.
[0079]
FIG. 11 is a diagram for explaining an example of image data shift processing in the image processing apparatus according to the present invention. In the case where the image obtained by dividing the tile-divided image shown in FIG. It is a figure showing the order which transfers tile image data.
[0080]
Here, when performing image shift processing on an image divided in units of tiles, the tile image data stored in the HDD 126 is specified to the image shift processing unit 134 via the internal bus 122 under the control of the CPU 121. Must be transferred in this order. FIG. 11 shows the order. This indicates that tile image data is transferred in ascending order of the numbered arrows, and the order is expressed as tile coordinates as follows.
[0081]
Figure 2004056447
However, if defined in the orthogonal coordinate system, the order is as follows.
[0082]
That is, among the tile image data obtained by dividing the image, the upper left one is denoted by (0, 0), the tile image data to the right of the upper left one is (1, 0), and the upper left When tile image data is represented by coordinates in a rectangular coordinate system such as (0, 1) for the tile image data next to the object, the specific order is the following order.
[0083]
(0,0), (0,1), (1,0), (1,1), (2,0), (2,1), (3,0),..., (M, 0) , (M, 1),
(0, 1), (0, 2), (1, 1), (1, 2), (2, 1), (2, 2), (3, 1),..., (M, 1) , (M, 2),
(0, 2), (0, 3), (1, 2), (1, 3), (2, 2), (2, 3), (3, 2), ..., (m, 2) , (M, 3),
……,
(0, n-2), (0, n-1), (1, n-2), (1, n-1), (2, n-2), (2, n-1), (3 , N-2), ..., (m, n-2), (m, n-1),
(0, n-1), (0, n), (1, n-1), (1, n), (2, n-1), (2, n), (3, n-1), ..., (m, n-1), (m, n).
Here, m and n are natural numbers.
[0084]
In other words, it is necessary to transfer the tile image data to the right in the zigzag order starting from the top left tile image data, and to transfer the next lower tile image data to the zigzag after the transfer to the rightmost end. This is repeated until the lower right tile image data is transferred.
[0085]
The CPU 121 calculates the order of the above-described tile coordinates from the information on the number of tiles included in the image and stores the order in advance in the memory 124 or the HDD 126 or calculates the order in order, and converts the tile image data in this order. Control is performed so that the image data is transferred from the HDD 126 to the image shift processing unit 134.
[0086]
Although FIG. 11 shows an example of an image divided into 8 tiles in the horizontal direction and 6 tiles in the vertical direction, the image is transferred in the same order to another image having a different number of tiles.
[0087]
With the above configuration, an example of a procedure in which image data of a document read by the reader unit 1 is divided into tiles, stored in the HDD 126, subjected to image shift processing, and then printed by the printer unit 2 will be described as an example. The flow of image data and the data processing configuration for image shift in the core unit 10 will be described below.
[0088]
First, a document is read in the reader unit 1 as described above, and image data is transferred to the core unit 10. Then, the image data is transferred to the image / tile conversion processing unit 130 via the reader I / F unit 135 of the core unit 10 and the internal bus 122, and is divided into tile units.
[0089]
As described above, the tile image data thus obtained is transferred to the compression / decompression processing unit 131 via the internal bus 122, subjected to compression processing, converted into tile image code data, and The data is stored in the HDD 126 via the unit 125.
[0090]
Next, the CPU 121 sets the shift amount in the image shift processing in the register unit 144 of the image shift processing unit 134 in pixel units. Here, it is assumed that the pixel is shifted by 3 pixels in the horizontal direction and by 2 pixels in the vertical direction. The CPU 121 performs data transfer of register setting having a value of “register” as attribute data to the image shift processing unit 134 via the internal bus 122 at a timing as shown in FIG. Specifically, “3” representing the horizontal shift amount is transferred as the first value of the register setting data, and “2” representing the vertical shift amount is transferred as the second value of the register setting data. , The value of the register a of the register unit 144 of the image shift processing unit 134 is set to 3, and the value of the register b is set to 2.
[0091]
Next, the CPU 121 generates the transfer order of the tile image data and stores the transfer order in the memory 124. In an actual system, image data to be handled is often thousands of pixels in both the horizontal and vertical directions. However, here, for the sake of explanation, the image data of a document read from the reader unit 1 is 64 pixels in the horizontal direction and vertical. The description will be made assuming that there are 48 pixels in the direction. At this time, when this image data is divided into tiles, it is divided into a total of 48 tiles of 8 horizontal tiles and 6 vertical tiles as shown in FIG. 10, and the transfer order of the tile image data for image shift is as shown in FIG. The zigzag order is as shown.
[0092]
The CPU 121 stores this order in the memory 124 in advance. Then, the CPU 121 sequentially reads out and transfers the tile image data stored in the HDD 126 while referring to the order stored in the memory 124.
[0093]
That is, the tile image code data stored in the HDD 126 is transferred to the compression / decompression processing unit 131 via the HDD controller unit 125 and the internal bus 122 under the control of the CPU 121, subjected to the decompression processing, and Is converted to
[0094]
Then, the tile image data is transferred to the image shift processing unit 134 via the internal bus 122 and stored in the tile buffer unit 143 in the image shift processing unit 134.
[0095]
In this way, under the control of the CPU 121, the tile image data is transferred in the specific order shown in FIG. 11 and stored in the tile buffer unit 143 one after another. Then, as described above, when four tile image data are stored in the tile buffer unit 143, the data output unit 141 in the image shift processing unit 134 sets the values of the registers a and b in the register unit 144, here, By using “3” and “2”, the position of the hatched portion with respect to the four tile image data is determined as shown in FIG. 6, and the pixels corresponding to the hatched portion are read out from the tile buffer unit 143 one pixel at a time. One tile image data is generated and transferred to the internal bus 122 at the timing shown in FIG.
[0096]
The new tile image data generated in this way is transferred to the compression / decompression processing unit 131 via the internal bus 122, compressed, converted into tile image code data, and again transmitted to the HDD controller unit 125 via the internal bus 122. The data is transferred and stored in the HDD 126.
[0097]
Here, focusing again on the processing of the image shift processing unit 134, tile image data is sequentially input in a specific order, and when four tile image data are stored, one new tile image data is stored. Is generated, and thereafter, the oldest two tile image data stored in the tile buffer unit 143 are discarded, so that each time two more tile image data are input, one new tile image data is generated. It can be seen that the operation of being performed and output is performed.
[0098]
Therefore, when the last tile image data of the arrow 1 in FIG. 11, that is, the tile image data of the tile coordinates (7, 1) is input, seven new tile image data are generated and output. Become.
[0099]
Then, when the tile image data of the next tile coordinate (0, 1) is input, the data input unit 142 sets the tile coordinate (0, 1) of the attribute of the input tile image data to 2 as described above. Detecting that it is different from the expected value (8, 0) obtained from the tile coordinates (7, 0) of the attribute of the tile image input immediately before, the tile stored in the tile buffer unit 143 is detected. All the image data is discarded, and only the tile image data having the newly input tile coordinates (0, 1) as its attribute is stored in the tile buffer unit 143.
[0100]
With such a data processing configuration, new tiles are obtained from four non-adjacent tiles in FIG. 11 in which the tile coordinates are (7, 0), (7, 1), (0, 1), and (0, 2), respectively. The generation and output of image data is avoided, and new tile image data can be generated and output only from four adjacent tile image data.
[0101]
Therefore, with such a data processing configuration, for the input tile image data shown in FIG. 11, 35 new tile image data TD1 to TD35 shown by hatching in FIG. 12 are generated and output in the numerical order shown in the figure. Will be done. The image data composed of the tile image data TD1 to TD35 is obtained by shifting the original image data ID shown in FIG. 10 by three pixels to the left and by two pixels upward.
[0102]
Note that the generated image data after the image shift becomes small image data by reducing the number of tiles by one in the horizontal direction and the vertical direction, and thus is larger by one tile to the right and below the image size required after the shift. It is necessary to prepare image data of the size as original image data. Finally, when all transfer is completed, the HDD 126 stores tile image code data obtained by compressing the tile image data TD1 to TD35 of 1 to 35 shown in FIG.
[0103]
Next, the CPU 121 reads the tile image code data in the HDD 126 in the order of the numbers shown in FIG. 12 and transfers the tile image code data to the compression / decompression processing unit 131 via the HDD controller 125 and the internal bus 122 to perform the decompression processing, and The data is converted into data, transferred to the image / tile conversion processing unit 130 again via the internal bus 122, converted into page image data that can be printed, and is converted via the internal bus 122 and the printer I / F unit 129. The image data is transferred to the printer unit 2 to obtain a print output.
[0104]
As described above, a large-sized memory such as a page memory or a band memory is prepared by transferring the tile image data to be processed to the image shift processing unit 134 in a specific order under the control of the CPU 121. The image shift processing in pixel units can be realized without performing the processing.
[0105]
FIG. 13 is a flowchart illustrating an example of a data processing procedure in the image processing apparatus according to the present invention. (1) to (8) indicate each step.
[0106]
First, a document is read in the reader unit 1 as described above, and image data is transferred to the core unit 10. Then, the image data is transferred to the image / tile conversion processing unit 130 via the reader I / F unit 135 of the core unit 10 and the internal bus 122, and is divided into tile units (1).
[0107]
As described above, the tile image data thus obtained is transferred to the compression / decompression processing unit 131 via the internal bus 122 and subjected to compression processing to be converted into tile image code data. It is stored in the HDD 126 via the unit 125 (2).
[0108]
Next, the CPU 121 sets the shift amount in the image shift processing in the register unit 144 of the image shift processing unit 134 in pixel units (3). Specifically, “3” representing the horizontal shift amount is transferred as the first value of the register setting data, and “2” representing the vertical shift amount is transferred as the second value of the register setting data. , The value of the register a of the register unit 144 of the image shift processing unit 134 is set to 3, and the value of the register b is set to 2.
[0109]
Next, the CPU 121 detects the amount of the stored tile image data, generates a transfer order of the tile image data (4), and stores the transfer order in the memory 124. Then, the CPU 121 stores this order in the memory 124 in advance. Then, the CPU 121 sequentially reads out and transfers the tile image data stored in the HDD 126 while referring to the order stored in the memory 124.
[0110]
That is, the tile image code data stored in the HDD 126 is transferred to the compression / decompression processing unit 131 via the HDD controller unit 125 and the internal bus 122 under the control of the CPU 121, subjected to the decompression processing, and Is converted to
[0111]
Then, the tile image data is transferred to the image shift processing unit 134 via the internal bus 122 and stored in the tile buffer unit 143 in the image shift processing unit 134.
[0112]
In this way, under the control of the CPU 121, the tile image data is transferred in the specific order shown in FIG. 11 and stored in the tile buffer unit 143 one after another. Then, as described above, when four tile image data are stored in the tile buffer unit 143 (5), the data output unit 141 in the image shift processing unit 134 outputs the values of the registers a and b in the register unit 144. Here, using “3” and “2”, the positions of the hatched portions with respect to the four tile image data are determined as shown in FIG. It reads out and generates one new tile image data (6) and transfers it to the internal bus 122 at the timing shown in FIG.
[0113]
The new tile image data generated in this way is transferred to the compression / decompression processing unit 131 via the internal bus 122, compressed, converted into tile image code data, and again transmitted to the HDD controller unit 125 via the internal bus 122. The data is transferred and stored in the HDD 126 (7).
[0114]
Therefore, with such a data processing configuration, 35 new tile image data TD1 to TD35 indicated by hatched portions in FIG. 12 are generated and output in the order of the numbers shown in the figure for the input tile image data shown in FIG. It is determined whether or not the process has been performed (8). If YES, the process is terminated. If NO, the process returns to step (5).
[0115]
As a result, the image data composed of the tile image data TD1 to TD35 is obtained by shifting the original image data ID shown in FIG. 10 by 3 pixels to the left and by 2 pixels upward and is stored in the HD 126. .
[0116]
Hereinafter, the configuration of a data processing program that can be read by the image processing apparatus according to the present invention will be described with reference to a memory map shown in FIG.
[0117]
FIG. 14 is a diagram illustrating a memory map of a storage medium that stores various data processing programs that can be read by the image processing device according to the present invention.
[0118]
Although not shown, information for managing a group of programs stored in the storage medium, for example, version information, a creator, and the like are also stored, and information dependent on the OS or the like on the program reading side, for example, a program is identified and displayed. Icons and the like may also be stored.
[0119]
Further, data dependent on various programs is also managed in the directory. In addition, a program for installing various programs on a computer or a program for decompressing a program to be installed when the program to be installed is compressed may be stored.
[0120]
The functions shown in FIG. 13 in this embodiment may be performed by a host computer by a program installed from the outside. In this case, the present invention is applied even when a group of information including a program is supplied to the output device from a storage medium such as a CD-ROM, a flash memory, or an FD, or from an external storage medium via a network. Things.
[0121]
As described above, the storage medium storing the program codes of the software for realizing the functions of the above-described embodiments is supplied to the system or the apparatus, and the computer (or CPU or MPU) of the system or the apparatus stores the storage medium in the storage medium. It goes without saying that the object of the present invention is also achieved by reading and executing the program code thus obtained.
[0122]
In this case, the program code itself read from the storage medium implements the novel function of the present invention, and the storage medium storing the program code constitutes the present invention.
[0123]
As a storage medium for supplying the program code, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, EEPROM, or the like may be used. it can.
[0124]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. It goes without saying that a part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0125]
Further, after the program code read from the storage medium is written into a memory provided on a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that a CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0126]
【The invention's effect】
As described above, according to the present invention, the amount of the stored tile image data is detected, and based on the detected amount of the tile image data, the specific order of the tile image data read from the tile image data storage unit is determined. Is determined, and the stored tile image data is read out onto a predetermined number of tiles memory in accordance with the determined specific order, and the image processing conditions set for the read out predetermined number of tile image data are determined. Image processing is performed based on predetermined tile-based image processing to generate new tiled image data. Therefore, in a tile division method in which an image is divided into a plurality of small tile units, image processing is performed over a plurality of tiles, such as image shift processing. Even in such a case, it is possible to achieve an excellent effect that desired image processing can be accurately realized without preparing a large memory for restoring the original image. To.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a system configuration of an image processing apparatus according to an embodiment of the present invention.
FIG. 2 is a longitudinal sectional view illustrating a configuration of a reader unit and a printer unit in the image processing apparatus according to the present invention.
FIG. 3 is a block diagram showing an internal configuration of a reader unit in the image processing device according to the present invention.
FIG. 4 is a block diagram illustrating an internal configuration of a core unit in the image processing apparatus according to the present invention.
FIG. 5 is a block diagram showing an internal configuration of an image shift processing unit in the image processing device according to the present invention.
FIG. 6 is a diagram illustrating image processing contents in an image shift process of an image shift processing unit in the image processing apparatus according to the present invention.
FIG. 7 is a diagram illustrating an example of tile image data developed in a tile buffer unit illustrated in FIG. 5;
FIG. 8 is a timing chart at the time of transferring tile image data of an internal bus in the image processing apparatus according to the present invention.
FIG. 9 is a timing chart at the time of transferring register setting data of an internal bus in the image processing apparatus according to the present invention.
FIG. 10 is a diagram showing an entire image divided into tile image data in the image processing apparatus according to the present invention.
FIG. 11 is a diagram showing a transfer order of tile image data in the image processing apparatus according to the present invention.
FIG. 12 is a diagram illustrating output tile image data of an image shift processing unit in the image processing device according to the present invention and an output order thereof.
FIG. 13 is a flowchart illustrating an example of a data processing procedure in the image processing apparatus according to the present invention.
FIG. 14 is a diagram illustrating a memory map of a storage medium that stores various data processing programs that can be read by the image processing apparatus according to the present invention.
[Explanation of symbols]
1 Reader section
2 Printer section
3 Image input / output control unit
4 Facsimile part
5 Network interface
6 Computer interface
10 Core part
130 Image / Tile Conversion Processing Unit
131 Compression / decompression processing unit
132 Computer I / F
133 rotation / reversal processing unit
134 Image shift processing unit
135 Reader I / F
136 memory

Claims (8)

小さなタイル画像の単位で複数に分割される画像データに所定の画像処理を行う画像処理装置であって、
複数のタイル画像データを格納するタイル画像データ格納手段と、
前記タイル画像データ格納手段に格納されたタイル画像データに対する画像処理条件を設定する設定手段と、
前記タイル画像データ格納手段に格納されたタイル画像データの量を検知する検知手段と、
前記検知手段により検知されるタイル画像データの量に基づき、前記タイル画像データ格納手段から読み出すタイル画像データの特定の順番を決定する決定手段と、
前記決定手段により決定された特定の順番に従い、前記タイル画像データ格納手段に格納されたタイル画像データを所定タイル数メモリ上に読み出して、該読み出された所定数のタイル画像データに対して前記設定手段により設定される画像処理条件に基づく所定の画像処理を行い新たなタイル画像データを生成する生成手段と、
を有することを特徴とする画像処理装置。
An image processing apparatus that performs predetermined image processing on image data divided into a plurality of small tile image units,
Tile image data storage means for storing a plurality of tile image data;
Setting means for setting image processing conditions for tile image data stored in the tile image data storage means;
Detecting means for detecting the amount of tile image data stored in the tile image data storage means;
Determining means for determining a specific order of tile image data to be read from the tile image data storage means, based on an amount of tile image data detected by the detection means;
In accordance with the specific order determined by the determining means, the tile image data stored in the tile image data storing means is read onto a predetermined tile number memory, and the read predetermined number of tile image data is Generating means for performing predetermined image processing based on image processing conditions set by the setting means to generate new tile image data;
An image processing apparatus comprising:
前記所定の画像処理とは、前記タイル画像データを前記画像処理条件に従って指定画素数だけ横方向と縦方向にずらす画像シフト処理であることを特徴とする請求項1記載の画像処理装置。The image processing apparatus according to claim 1, wherein the predetermined image processing is an image shift processing of shifting the tile image data in a horizontal direction and a vertical direction by a designated number of pixels according to the image processing condition. 前記特定の順番は、画像データを分割して得られるタイル画像データの内で直交座標系に従う最左上のものを基準として、所定方向に隣接する所定数のタイル画像データが揃う順番とすることを特徴とする請求項1記載の画像処理装置。The specific order is an order in which a predetermined number of tile image data adjacent in a predetermined direction are aligned with reference to the upper leftmost one in the rectangular coordinate system among the tile image data obtained by dividing the image data. The image processing apparatus according to claim 1, wherein: 小さなタイル画像の単位で複数に分割される画像データに所定の画像処理を行う画像処理装置における画像処理方法であって、
タイル画像データ格納手段に格納された複数のタイル画像データに対する画像処理条件を設定する設定ステップと、
前記タイル画像データ格納手段に格納されたタイル画像データの量を検知する検知ステップと、
前記検知ステップにより検知されるタイル画像データの量に基づき、前記タイル画像データ格納手段から読み出すタイル画像データの特定の順番を決定する決定ステップと、
前記決定ステップにより決定された特定の順番に従い、前記タイル画像データ格納手段に格納されたタイル画像データを所定タイル数メモリ上に読み出して、該読み出された所定数のタイル画像データに対して前記設定ステップにより設定される画像処理条件に基づく所定の画像処理を行い新たなタイル画像データを生成する生成ステップと、
を有することを特徴とする画像処理方法。
An image processing method in an image processing apparatus that performs predetermined image processing on image data divided into a plurality of small tile image units,
A setting step of setting image processing conditions for a plurality of tile image data stored in the tile image data storage means;
A detecting step of detecting an amount of tile image data stored in the tile image data storage unit;
A determining step of determining a specific order of tile image data to be read from the tile image data storage unit based on an amount of the tile image data detected by the detecting step;
In accordance with the specific order determined in the determining step, the tile image data stored in the tile image data storage unit is read onto a predetermined tile number memory, and the read predetermined number of tile image data is A generation step of performing predetermined image processing based on the image processing conditions set by the setting step to generate new tile image data;
An image processing method comprising:
前記所定の画像処理とは、前記タイル画像データを前記画像処理条件に従って指定画素数だけ横方向と縦方向にずらす画像シフト処理であることを特徴とする請求項4記載の画像処理方法。5. The image processing method according to claim 4, wherein the predetermined image processing is an image shift processing of shifting the tile image data in a horizontal direction and a vertical direction by a designated number of pixels according to the image processing condition. 前記特定の順番は、画像データを分割して得られるタイル画像データの内で直交座標系に従う最左上のものを基準として、所定方向に隣接する所定数のタイル画像データが揃う順番とすることを特徴とする請求項4記載の画像処理方法。The specific order is an order in which a predetermined number of tile image data adjacent in a predetermined direction are aligned with reference to the upper leftmost one in the rectangular coordinate system among the tile image data obtained by dividing the image data. The image processing method according to claim 4, wherein: 請求項4〜6のいずれかに記載の画像処理方法を実現するプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。A computer-readable storage medium storing a program for implementing the image processing method according to claim 4. 請求項4〜6のいずれかに記載の画像処理方法を実現することを特徴とするプログラム。A program for realizing the image processing method according to any one of claims 4 to 6.
JP2002210800A 2002-07-19 2002-07-19 Picture processor, picture processing method, computer readable storage medium and program Pending JP2004056447A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002210800A JP2004056447A (en) 2002-07-19 2002-07-19 Picture processor, picture processing method, computer readable storage medium and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002210800A JP2004056447A (en) 2002-07-19 2002-07-19 Picture processor, picture processing method, computer readable storage medium and program

Publications (1)

Publication Number Publication Date
JP2004056447A true JP2004056447A (en) 2004-02-19

Family

ID=31934210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002210800A Pending JP2004056447A (en) 2002-07-19 2002-07-19 Picture processor, picture processing method, computer readable storage medium and program

Country Status (1)

Country Link
JP (1) JP2004056447A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015076800A (en) * 2013-10-10 2015-04-20 コニカミノルタ株式会社 Image processing apparatus and image forming apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015076800A (en) * 2013-10-10 2015-04-20 コニカミノルタ株式会社 Image processing apparatus and image forming apparatus

Similar Documents

Publication Publication Date Title
JP2000156830A (en) Printer and method for processing picture data in the printer
JP3003319B2 (en) Image processing device
JP2000244720A (en) Image processor
US20050200915A1 (en) Image information apparatus
JP4027133B2 (en) Image processing device
EP0454454A2 (en) Color image processing apparatus and system
JPH07311839A (en) Information processing system
US7920288B2 (en) Image forming apparatus, image forming method and program
JP2004056447A (en) Picture processor, picture processing method, computer readable storage medium and program
JP2003244365A (en) Image copying device and its control method
JP2005111852A (en) Imaging device, printing control method and program
JP2004094731A (en) Image forming apparatus and its method
JP2002108584A (en) Image processing apparatus and image forming device
JP2004153568A (en) Image forming device
US8643896B2 (en) Image processing apparatus for outputting raster image using a plurality of processors
JP2003259140A (en) System and device for image processing, processing method thereof, program, and recording medium
JP2010088007A (en) Image forming apparatus
JP3774561B2 (en) Image processing apparatus and method
JP2006060760A (en) Image forming apparatus
JP2005079646A (en) Image forming apparatus
JP2006352256A (en) Programmable logic circuit and method and program for reconfiguring its logic circuitry
JP2004349858A (en) Image processor and document duplicating apparatus using the same
JP2002135544A (en) Image processing apparatus
JPH11234533A (en) Image processing unit and its method
JP2004222090A (en) Image forming apparatus