JP3629873B2 - Image processing device - Google Patents
Image processing device Download PDFInfo
- Publication number
- JP3629873B2 JP3629873B2 JP02815897A JP2815897A JP3629873B2 JP 3629873 B2 JP3629873 B2 JP 3629873B2 JP 02815897 A JP02815897 A JP 02815897A JP 2815897 A JP2815897 A JP 2815897A JP 3629873 B2 JP3629873 B2 JP 3629873B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- image data
- page memory
- address
- input 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 164
- 230000015654 memory Effects 0.000 claims description 303
- 238000000034 method Methods 0.000 claims description 56
- 238000003780 insertion Methods 0.000 claims description 54
- 230000037431 insertion Effects 0.000 claims description 54
- 238000003672 processing method Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 35
- 230000008707 rearrangement Effects 0.000 description 22
- 230000003247 decreasing effect Effects 0.000 description 6
- 230000000873 masking effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Image Input (AREA)
- Image Processing (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、入力された画像データに対して、0度、90度、180度、270度のいずれか指定された角度での回転処理を施し、回転処理後の画像データを出力する画像処理装置に関する。
【0002】
【従来の技術】
従来、入力された画像データに対して90度の整数倍の角度での回転処理を実行する装置として、特開平7−121693号公報にて開示されているものがある。図19はその概略構成を示す図である。
【0003】
ここでは、順次入力される画像データ1を、1画素当たりのビット幅N(以下、画像構造という)と、ページメモリ300の1ワードのビット幅Mによって規定される(M/N)ライン分のデータを1つのブロックとし、そのブロック単位でバッファメモリ220に対して書き込み及び読み出しを行う。
そして、バッファメモリ220に書き込まれた1ブロック分の画像データを、回転角度に応じてバッファメモリ制御手段210で生成される読み出しアドレスから順次読み出し、読み出した画像データを画像回転処理手段230にて並びかえて、指定された角度で回転処理されたページメモリ300の1ワード分の画像データを生成する。そして、その生成された回転処理後の画像データ5を回転角度に応じて算出されるページメモリ300のアドレスに書き込む。これにより、順次入力された画像データ1に対して、指示された回転処理を施した画像がページメモリ300に展開される。
【0004】
さらに、図19に示す装置においては、画像構造の異なる複数種類の画像データに対して、一つの画像処理装置で回転処理を行うことを可能とするために、次のような特徴を有している。すなわち、図19に示す装置においては、1画素当たりNビット(Nは1以上の整数)のデータを有する画像データを回転して、Mビット(MはN以上の整数)単位にアクセス可能なページメモリ300に出力するために、Wビット単位(WはN≦W≦Mを満たす整数)にアクセス可能なバッファメモリ220と、(M/N)ライン分の画像データを単位として順次入力すると共に、画像サイズ情報に基づいて所定順のアドレスを順次生成し、入力した画像データを(W/N)画素毎に順次前記バッファメモリ220に書き込む制御手段と、前記バッファメモリ220に記憶された(M/N)ライン分の画像データを順次読み出す制御を行うバッファメモリ制御手段210と、バッファメモリ220より順次読み出されたM個のデータから、回転角度及び1画素当たりのビット数Nに基づいて、Mビットのデータを(W/N)個生成する画像回転処理手段230と、回転角度に応じたアドレスを順次生成し、前記画像回転処理手段230にて生成された(W/N)個のデータをページメモリ300の各々対応するアドレスへ出力するメモリ制御手段240を備えている。
【0005】
また、特開平6−253129号公報には、入力画像データを90度単位に回転処理して出力装置に出力する画像回転処理装置が示されている。図20はその概略構成を示す図である。
【0006】
図20に示す装置においては、順次入力される画像データを、所定のブロック単位にブロック行(R)とブロック列(C)に分割し、R×C個のブロックデータとしてをページメモリ541に記憶する。そして、90度単位の回転後に出力装置600の最初の主走査方向となるブロックデータ、すなわち回転後のブロック行にあたるブロックデータを順次読み出し、読み出されたブロックデータを分割回転部530によって回転処理し、出力装置600の1ブロック行分のデータとしてバッファメモリ542に記憶する。バッファメモリ542は少なくとも1ブロック行分記憶することができる容量を有している。そして、記憶された1ブロック行分のブロックデータを出力制御部550によって出力する。ここで、入力画像データをブロック単位で分割したときに残余の部分データが生じる場合は、残余の部分データが分割回転部530による回転処理後の最後のブロック行およびブロック列となるように回転前補完部510によってデータの挿入を行い、このような処理をした後にページメモリ541に記憶する。
【0007】
【発明が解決しようとする課題】
しかしながら、上記従来例においては、以下に示すような問題点がある。
特開平7−121693号公報に示されるものにおいては、回転処理可能な入力画像データのサイズが、1画素あたりのビット幅及びページメモリのアクセス単位によって規定されてしまう。例えば、1画素当たりのビット幅がNビット、ページメモリのアクセス単位がMビットとすると、入力画像データの主走査方向の画素数及び副走査方向のライン数はそれぞれ(M/N)の倍数でなければならない。
また、回転処理後の画像データをページメモリに書き込むにあたり、ページメモリのアクセス単位である1ワード中に複数画素が含まれる場合には、画素単位でページメモリの任意のアドレスに書き込むことができない。
【0008】
特開平6−253129号公報に示されるものにおいては、入力画像データをページメモリに記憶する際、データの挿入を行うために以下のような欠点がある。
▲1▼画像データの入力を開始する時点で回転角度が決定していなければならない。
▲2▼既にページメモリに記憶されている画像データを回転する場合は、特開平7−121693号公報に示されるものと同様に回転処理可能な入力画像データのサイズが制限されてしまう。
【0009】
また、挿入されたデータを除去する手段を持たないため、例えば、回転処理後の画像データを既にページメモリ上に展開されている画像データと合成する、あるいは、1枚の用紙上に複数の入力原稿を再配置する(以下Nアップという)といった編集処理を行う場合に、挿入したデータによって既に展開されている画像データを書きつぶしてしまうという問題がある。
【0010】
本発明は係る問題点に鑑みてなされたものであり、入力画像データを所定のブロックサイズを単位として回転処理する装置において、任意サイズの画像データの回転処理を可能とし、また、既にページメモリに記憶された画像データを回転処理する場合にも、指定された回転角度に応じたデータの挿入が可能な画像処理装置を提供することを目的とする。
また、合成あるいはNアップといった編集処理を行う場合に挿入データによるページメモリ上の画像データの書きつぶしを防ぐことが可能な画像処理装置を提供することを目的とする。さらに、回転処理後の画像データを画素単位でページメモリの任意のアドレスに書き込むことが可能な画像処理装置を提供することを目的とするものである。
【0011】
【課題を解決するための手段】
上述した問題点を解決するために、この発明は入力される画像データに対して90度の整数倍の角度での回転処理を行ってページメモリに書き込む画像処理装置において、入力画像のサイズおよび回転角度を設定する動作制御手段と、入力された画像データを、前記ページメモリのワード単位に応じた所定の走査ライン分ずつ一時的に保持して出力するバッファメモリと、前記動作制御手段によって設定された前記入力画像データの境界が、主走査方向およびライン方向において前記ページメモリのワードの区切りに一致するように、前記入力画像データに対し必要数に応じた所定のデータを挿入し、かつ、その挿入位置が前記動作制御手段の設定した回転角度に対応する位置になるように制御するデータ挿入手段と、前記所定のデータおよび前記入力画像を、前記動作制御手段によって設定されたサイズおよび回転角度に応じて前記バッファメモリに書き込んで読み出すバッファメモリ制御手段と、前記バッファメモリから読み出された前記入力画像および前記所定のデータを並び替えることによって回転処理を行う画像回転処理手段と、前記回転処理手段によって回転処理された前記入力画像を順次読み出して前記ページメモリ上に展開するメモリ制御手段を具備することを特徴としている。
【0012】
【発明の実施の形態】
(1)実施形態の構成
次に図面を参照して本発明の実施形態について説明する。以下に説明する実施形態においては、入力画像データの画像構造を1画素当たりの情報ビット数N(ビット/ピクセル)、バッファメモリのアクセス単位であるワード幅をW(ビット)、ページメモリのアクセス単位であるワード幅をM(ビット)とする。また、Nxは入力画像データの主走査方向の画素数とする。
【0013】
(1−1)実施形態の全体構成
図1は本実施形態にかかる画像処理装置の構成を示すブロック図である。100は動作制御手段であり、画像回転処理を行うために必要な各種の設定を行う。すなわち、入力サイズ情報S2、回転角度情報S3、回転処理後の画像データを出力するページメモリの始点アドレス情報S4などを設定する。ここで、入力サイズ情報S2は回転処理の対象となる画像データのサイズである。画像データのサイズは主走査方向・副走査方向共に任意のサイズが指定可能であり、いずれも(M/N)の倍数である必要はない。
【0014】
200は画像回転処理装置であり、入力される画像データS1に対して回転処理を行うものである。回転処理を行う動作モードは、動作制御手段100によって定められる。300はページメモリであり、回転処理の対象となる画像データが記憶されるとともに、回転処理後の画像データの出力先となる。
【0015】
(1−2)画像回転処理装置200の構成
次に、画像回転処理装置200の構成を説明する。図1に示すように画像回転処理装置200は、バッファメモリ制御手段210、バッファメモリ220、画像回転処理手段230、およびメモリ制御手段240とから構成される。
【0016】
(1−2−1)バッファメモリ制御手段210の構成
バッファメモリ制御手段210には、バッファメモリ書き込みアドレス生成部と、バッファメモリ読み出しアドレス生成部が設けられている。なお、バッファメモリ書き込みアドレス生成部とバッファメモリ読み出しアドレス生成部は一つの回路によって構成されており、書き込みアドレス生成時にはバッファメモリ書き込みアドレス生成部として使用され、読み出しアドレス生成時にはバッファメモリ読み出しアドレス生成部としてし使用される。さらに、バッファメモリ制御手段210には、データ挿入手段211が設けられいる。データ挿入手段211は、入力サイズ情報S2が(M/N)の倍数でない場合に、(M/N)の倍数に満たない分だけ所定のデータを挿入しバッファメモリ220に書き込み処理を行うものである。
【0017】
▲1▼バッファメモリ書き込みアドレス生成部の構成
図2はバッファメモリ書き込みアドレス生成部の構成例を示す図である。なお、図示する回路は書き込みアドレス生成の際使用される部分を抽出したものである。
バッファメモリ書き込みアドレス生成部は、画素数カウンタ212と、ライン数カウンタ213、マルチプレクサ214から構成される。画素数カウンタ212はバッファメモリ220に書き込む画像データの1ライン中のワード数を計数し、ライン数カウンタ213は入力されたライン数を計数する。マルチプレクサ214は、画素数カウンタ212とライン数カウンタ213の出力値を基にバッファメモリ書き込みアドレスを生成するものである。なお、本実施形態では画素数カウンタ及びライン数カウンタをダウンカウンタで構成しているが、アップカウンタを用いてもよい。
【0018】
▲2▼バッファメモリ読み出しアドレス生成部の構成
図3はバッファメモリ読み出しアドレス生成部の構成例を示す図である。なお、図示する回路は読み出しアドレス生成の際使用される部分を抽出したものである。バッファメモリ読み出しアドレス生成部は画素数カウンタ212と、ライン数カウンタ213、マルチプレクサ214、セレクタ216、セレクタ217とから構成される。画素数カウンタ212はバッファメモリ220から読み出す画像データの1ライン中のワード数を計数し、ライン数カウンタ213は読み出されたライン数を計数するものである。マルチプレクサ214は、画素数カウンタ212とライン数カウンタ213の出力値を基にバッファメモリ読み出しアドレスを生成するものである。また、セレクタ216は画素数カウンタ212のカウントを制御し、セレクタ217はライン数カウンタ213のカウントを制御する。
【0019】
(1−2−2)バッファメモリ220の構成
バッファメモリ220は、入力画像データの1画素当たりの情報ビット数(Nビット)とページメモリ300のワード幅(Mビット)に対応して、(M/N)ライン分の入力画像データを格納可能な容量を備えている。バッファメモリ220への画像データの書き込み処理と読み出し処理は、バッファメモリ制御手段210によって交互に切り替えられる。
【0020】
(1−2−3)画像回転処理手段230の構成
画像回転処理手段230は、回転角度情報S3に基づいて、バッファメモリ220から読み出した画像データの並べ替えを行い、指定された回転角度で回転処理された1ワード分の画像データを順次生成するものである。ここで、図4は画像回転処理手段220の構成例を示す図である。この図に示すように、画像回転処理手段230は、セレクタ217と並べ替え用バッファ218とから構成される。
【0021】
(1−2−4)メモリ制御手段240の構成
メモリ制御手段240はページメモリ書き込みアドレスを算出する。ページメモリ書き込みアドレスとは、画像回転処理手段230によって生成された画像データをページメモリ300へ書き込む際のアドレスである。また、メモリ制御手段240には、データ制御手段241が設けられている。データ制御手段241は、入力サイズ情報S2が(M/N)の倍数でない場合の出力を制御するものである。
【0022】
(2)実施形態の動作
次に上述した構成による画像処理装置の動作を説明する。本実施形態の動作の概略は次の通りである。まず、ページメモリ300に記憶された回転処理の対象となる画像データS1は、図示しない画像入力要求信号と画像入力許可信号のハンドシェイク制御によって、画像回転処理装置200に入力される。画像回転処理装置200は、画像データへの回転処理を施した後ページメモリ300へ回転処理後の画像データを出力する。この画像データの出力は、ページメモリ書き込み要求信号とページメモリ書き込み許可信号のハンドシェイク制御によって行われる。
【0023】
以下、画像回転処理装置200の各部の動作を説明する。画像回転処理装置200での回転処理はブロック単位で行われ、1ブロックは(Nx/(W/N))ビット×(M/N)ライン分の画像データにより構成される。
まず、バッファメモリ制御手段210には、動作制御手段100によって設定された入力サイズ情報S2、回転角度情報S3、始点アドレス情報S4が入力される。
次に、画像データS1が画像回転処理装置200に入力されると、バッファメモリ制御手段210は1ブロック分のデータをバッファメモリ220に書き込む処理を行う。そして、書き込みが終了すると、バッファメモリ制御手段210は書き込んだ1ブロック分のデータの読み出し処理を行なう。バッファメモリ220からの読み出しが終了すると、読み出した1ブロック分の画像データが画像回転処理手段230に出力される。画像回転処理手段230は画像データの並べ替えを行い、指定された回転角度で処理された1ブロック分の画像データを生成し、メモリ制御手段240に出力する。メモリ制御手段240は、出力先であるページメモリ300における書き込みアドレスを生成し、回転処理された1ブロック分の画像データの書き込みアドレスを指定する。画像データS1の全てのブロックの画像データ処理が終了するまで、これらの動作が繰り返される。
【0024】
(2−1)バッファメモリ制御手段210の動作
バッファメモリ制御手段210は、上述のように入力サイズ情報S2に基づいてバッファメモリ書き込みアドレス制御を行い、画像データS1をバッファメモリ220に書き込む処理を行う。そして、1ブロック分のデータの書き込みが終了するとバッファメモリ制御手段210は、書き込んだ1ブロック分のデータの読み出し処理を行なう。読み出し処理は、入力サイズ情報S2と、回転角度情報S3に基づいて、バッファメモリ読み出しアドレスを制御することにより行われる。
【0025】
バッファメモリ制御手段210は、1ブロックの読み出し処理が終了すると次のブロックの書き込み処理を開始する。このように、バッファメモリ制御手段210は書き込みと読み出しを交互に行なう。
なお実施例の動作を説明するにあたり、簡単化のためにページメモリのアクセス単位であるワード幅M=32とし、1画素当たりの情報ビット数N=1、バッファメモリのアクセス単位であるワード幅W=8とする。
【0026】
(2−1−1)バッファメモリ220への書き込み処理
以下、図2と図5を参照してバッファメモリ220への画像データの書き込み処理の説明を行う。図5はバッファメモリ書き込みアドレスの発生順序を模式的に示す図である。なお、図5においてアドレスは(Y:X)で表され、X方向は主走査方向アドレスを示し、Y方向はライン方向アドレスを示す。
ここで、画像データS1の画像サイズが(M/N)=32の倍数ある場合は、1ブロックを(Nx/(W/N))ビット×(M/N)=(Nx/8)ビット×32ラインとして書き込みむ。32の倍数でない場合は、バッファメモリ220への画像データを書き込む際に32の倍数に満たない分だけ所定のデータの挿入を行なうことにより、画像データS1の画像サイズが32の倍数であった場合と同様のブロック単位での処理を可能とする。以下これらの処理について詳述する。
【0027】
▲1▼入力画像サイズが32の倍数である場合の動作
まず入力サイズ情報S2が、主走査方向及び副走査方向共に32の倍数である場合の動作を説明する。
バッファメモリ書き込みアドレス生成部(図2参照)は、バッファメモリ書き込みアドレスの際に次のように動作する。まず、画素数カウンタ212には主走査方向のワード数(Nx/8)から1を引いた値がロードされ、ライン数カウンタ213には1ブロックのライン数である32から1を引いた値(31)がロードされる。そして書き込み許可信号がイネーブル状態になると、画素数カウンタ212がカウント許可状態になり、入力される書き込みクロック信号のパルス入力により画素数カウンタ212がカウントダウンされる。その後(主走査方向のワード数−1)個の書き込みクロック信号を計数して画素数カウンタ212の値が0になると、画素数カウンタ書き込み終了信号RC1が出力される。書き込み終了信号RC1が出力されると、ライン数カウンタ213のカウント値がダウンカウントされると共に、画素数カウンタ212に主走査方向のワード数(Nx/8)から1を引いた値が再びロードされる。
【0028】
以上の動作が繰り返し行われ、画素数カウンタ212およびライン数カウンタ213のカウント値が共に0になると、画素数カウンタ212の書き込み終了信号RC1及びライン数カウンタ213の書き込み終了信号RC2が出力され、これによってバッファメモリ書き込み終了信号が出力される。
【0029】
具体的には、バッファメモリ読み出しアドレスは、図5におけるスタート(Start)で示す位置からエンド(End)で示す位置まで図の実線で示すように生成される。すなわち、読み出しが開始されるスタート位置のアドレスは(31:Nx/8−1)であり、そこから画素数カウンタ212のカウント値を1づつ減少させ(31:0)まで生成する。次に、ライン数カウンタ213のカウント値を1ダウンカウントした(30:Nx/8−1)を始点として、そこから画素数カウンタ212のカウント値を1づつ減少させ(30:0)まで生成する。以下同様にアドレスを生成し(0:0)までを生成する。
この書き込みアドレスは、回転角度によらず全ての場合において図5に示される順序で生成される。この場合、バッファメモリ220に書き込まれる画像データの単位は、(Nx/8)バイト×32ライン分の画像データを1ブロックとして扱う。
【0030】
▲2▼入力画像サイズが32の倍数でない場合の動作
次に、入力サイズ情報S2が32の倍数ではない場合の動作について説明する。
バッファメモリ制御手段210内のデータ挿入手段211は、バッファメモリ220への画像データS1の書き込み処理を行う際に、32の倍数に満たない分だけ所定のデータを挿入する。
【0031】
以下、図6、図7、図8、図9を用いてデータ挿入手段211による画像回転角度に応じたデータの挿入処理の動作の説明を行なう。図6は回転角度が0度の場合であり、図7は回転角度が180度の場合、図8は回転角度が90度の場合、図9は回転角度が270度の場合に、それぞれ画像データS1に対する所定のデータ挿入位置と、回転後の画像データ中の挿入データの位置を示す図である。なお、図中斜線部分はデータ挿入手段211によって挿入されたデータを示す。また、図中a及びbは正の整数である。
【0032】
データ挿入手段211によって挿入されるデータのサイズは各回転角度で同一であり、入力画像サイズ情報S2の主走査方向のデータサイズが(32×a)ビットより大きく、(32×(a+1))ビットより小さい場合は、(32×(a+1))に満たない分のデータ(以下Aビットという)の挿入を行なう。また、副走査方向のデータサイズが(32×b)ラインより大きく、(32×(b+1))ラインより小さい場合は、(32×(b+1))に満たない分のデータ(以下Bラインという)の挿入を行なう。
このようにして、バッファメモリ制御手段210は、画像データS1のサイズを(32×(a+1)ビット×(32×(b+1))ラインとして処理を行なうこととなる。
具体的には、各回転角度により、以下のように所定のデータを挿入する。
【0033】
回転角度が0度の場合は、図6に示すように主走査方向の後端に所定のデータをAビット、副走査方向の後端にBラインの所定のデータを挿入する。
【0034】
回転角度が180度の場合は、図7に示すように主走査方向の先端に所定のデータをAビットを挿入し、画像データ1はその分だけシフトされる。また、副走査方向の先端に所定のデータをBライン分挿入した後、入力画像データをバッファメモリ220に書き込む。
【0035】
回転角度が90度の場合は、図8に示すように主走査方向の後端に所定のデータをAビット挿入する。また、副走査方向の先端に所定のデータをBライン分挿入した後、入力画像データをバッファメモリ220に書き込む。
回転角度が270度の場合は、図9に示すように主走査方向の先端に所定のデータをAビットを挿入し、画像データ1はその分だけシフトされる。また、副走査方向の後端にBラインの所定のデータを挿入する。
【0036】
バッファメモリ書き込みアドレス生成については画像データS1の画像サイズが32の倍数である場合と同様である。但し、バッファメモリ書き込みアドレス生成部の画素数カウンタ212は、((32×(a+1))/8−1)をロードしてカウント動作を行ない、副走査方向は((32×(b+1))ライン分の処理を行なうこととなる。
【0037】
(2−1−2)バッファメモリ220からの読み出し処理
次に、バッファメモリ220からの読み出し処理について説明する。
バッファメモリ書き込みアドレス生成部からバッファメモリ書き込み終了信号が出力されると、バッファメモリ220から画像データの読み出しが開始される。バッファメモリ制御手段210は、入力サイズ情報S2と、回転角度情報S3に基づいて、バッファメモリ読み出しアドレス制御を行う。
以下、図3、図10、図11を参照して、バッファメモリ220からの画像データの読み出し処理について説明する。図10は回転角度0度または180度の場合のバッファメモリ読み出しアドレスの発生順序を示す図であり、図11は回転角度90度または270度の場合のバッファメモリ読み出しアドレスの発生順序を示す図である。なお、図10、図11においてX方向は主走査方向アドレスを示し、Y方向はライン方向アドレスを示す。以下、回転角度別の動作について説明する。
【0038】
▲1▼回転角度0度または180度の場合
始めに、回転角度0度または180度の場合の動作を説明する。バッファメモリ読み出しアドレスの発生順序は図10に示す通りであり、バッファメモリ読み出しアドレス生成部(図3参照)はバッファメモリ読み出しアドレス生成の際に次のように動作する。
図3においてセレクタ215は、画素数カウンタ212に対して読み出し許可信号を直接出力する。セレクタ216は、読み出し許可信号と画素数カウンタ212より出力される読み出し終了信号RC1の論理積をとった信号をライン数カウンタ213に対して出力する。従って画素数カウンタ212は、読み出し許可信号がイネーブル状態になれば読み出しクロック信号のパルス入力によりカウント動作を行う。一方ライン数カウンタ213は、読み出し許可信号と読み出し終了信号RC1が共にイネーブル状態にある期間中のみ読み出しクロック信号のパルス入力によりカウント動作を行う。
【0039】
バッファメモリ220からの画像データの読み出し処理が開始されると、画素数カウンタ212には主走査方向のワード数(Nx/8)から1を引いた値がロードされ、ライン数カウンタ213には1ブロックのライン数である32から1を引いた値(31)がロードされる。そして読み出し許可信号がイネーブル状態になると、画素数カウンタ212がカウント許可状態になり、入力される読み出しクロック信号のパルス入力により画素数カウンタ212がカウントダウンされる。その後(主走査方向のワード数−1)個の読み出しクロック信号を計数して画素数カウンタ212の値が0になると、画素数カウンタ読み出し終了信号RC1が出力される。読み出し終了信号RC1が出力されると、ライン数カウンタ213のカウント値がダウンカウントされると共に、画素数カウンタ212に主走査方向のワード数(Nx/8)から1を引いた値が再びロードされる。
【0040】
以上の動作が繰り返し行われ、画素数カウンタ212およびライン数カウンタ213のカウント値が共に0になると、画素数カウンタ212の読み出し終了信号RC1及びライン数カウンタ213の読み出し終了信号RC2が出力され、これによってバッファメモリ読み出し終了信号が出力される。
具体的には、バッファメモリ読み出しアドレスは図10におけるスタート(Start)で示す位置からエンド(End)で示す位置まで図の実線で示すように生成される。すなわち、読み出し読み出しが開始されるスタート位置のアドレスは(31:Nx/8−1)であり、そこから画素数カウンタ212のカウント値を1づつ減少させ(31:0)まで生成する。次に、ライン数カウンタ213のカウント値を1ダウンカウントした(30:Nx/8−1)を始点として、そこから画素数カウンタ212のカウント値を1づつ減少させ(30:0)まで生成する。以下同様にアドレスを生成し(0:0)までを生成する。
なお、回転角度0度または180度の場合のバッファメモリ読み出しアドレスの生成順序は図5に示すバッファメモリ書き込みアドレス生成順序と同様である。
【0041】
▲2▼回転角度90度または270度の場合
次に、回転角度90度または270度の場合の場合の動作を説明する。バッファメモリ読み出しアドレスの発生順序は図11に示す通りであり、バッファメモリ読み出しアドレス生成部はバッファメモリ読み出しアドレス生成の際に次のように動作する。
図3においてセレクタ215は、読み出し許可信号とライン数カウンタより出力される読み出し終了信号RC2の論理積をとった信号を、画素数カウンタ212に対して出力する。セレクタ216は、読み出し許可信号をライン数カウンタ213に対して直接出力する。従って画素数カウンタ212は、読み出し許可信号と読み出し終了信号RC2が共にイネーブル状態にある期間中のみ読み出しクロック信号のパルス入力によりカウント動作が行われる。一方ライン数カウンタ213は、読み出し許可信号がイネーブル状態になれば読み出しクロック信号のパルス入力によりカウント動作が行われる。
【0042】
バッファメモリ220からの画像データの読み出し処理が開始されると、画素数カウンタ212には主走査方向のワード数(Nx/8)から1を引いた値がロードされ、ライン数カウンタ213には1ブロックのライン数である32から1を引いた値(31)がロードされる。そして読み出し許可信号がイネーブル状態になると、ライン数カウンタ212がカウント許可状態になり、入力される読み出しクロック信号のパルス入力によりカウンタがカウントダウンされる。その後(主走査方向のワード数−1)個の読み出しクロック信号を計数してライン数カウンタ213の値が0になると、ライン数カウンタ213の読み出し終了信号RC2が出力される。読み出し終了信号RC2が出力されると、画素数カウンタ212のカウント値がダウンカウントされると共に、ライン数カウンタ213に1ブロックのライン数である32から1を引いた値(31)が再びロードされる。
【0043】
以上の動作が繰り返し行われ、画素数カウンタ212およびライン数カウンタ213のカウント値が共に0になると、画素数カウンタ212の読み出し終了信号RC1及びライン数カウンタ213の読み出し終了信号RC2が出力され、これによってバッファメモリ読み出し終了信号が出力される。
具体的には、バッファメモリ読み出しアドレスは図11におけるスタート(Start)で示す位置からエンド(End)で示す位置まで図の実線で示すように生成される。すなわち、読み出し読み出しが開始されるスタート位置のアドレスは(31:Nx/8−1)であり、そこからライン数カウンタ213の値を1づつ減少させ(0:Nx/8−1)まで生成する。次に、画素数カウンタ212のカウント値を1ダウンカウントした(31:Nx/8−2)を始点として、そこからライン数カウンタ213の値を1づつ減少させせ(0:Nx/8−2)まで生成する。以下同様にアドレスを生成し、(0:0)までを生成する。
バッファメモリ220からの画像データの読み出しが終了すると、バッファメモリ制御手段210は、読み出した画像データを画像回転処理手段230に出力する。
【0044】
(2−2)画像回転処理手段230の動作
次に、画像回転処理手段230における画像回転処理について説明する。画像回転処理手段230は、動作制御手段100によって設定された回転角度情報S3に基づいて、バッファメモリ220から読み出した画像データの並べ替えを行ない、指定された回転角度で処理された画像データを順次生成する。ここで、読み出した画像データは、バッファメモリ220のアクセス単位であるワード幅W(=8)ビットであり、回転処理された画像データは、ページメモリ300のアクセス単位であるワード幅M(=32)ビットである。
具体的には、バッファメモリ220から読み出した8ビットワードデータを、図4に示す並べ替え用バッファ218に指定された回転角度に応じて並べ替え、メモリ制御手段240に出力する。すなわち、並べ替え用バッファ218の1ラインに展開された32ビットデータがページメモリ300での1ワードとなる。
【0045】
画像回転処理手段230は、回転角度が0度または180度の場合は、バッファメモリ220から読み出した8ビットのワードデータ4個を用いて32ビットのワードデータ1個を生成する。回転角度が90度または270度の場合は、バッファメモリ220から読み出した8ビットのワードデータ32個を用いて32ビットのワードデータ8個を生成する。
【0046】
以下、図4、図12、図13、図14、図15を参照して、各回転角度の場合について、画像回転処理手段230における画像データの並べ替え処理について説明する。
ここで、並べ替え用バッファ218の1ライン目が1stWord、2ライン目が2ndWord、1ライン目が3rdWord....となる。また、8ビットワードデータ中の画素データの最上位ビットをMSBと、最下位ビットをLSBとする。また、8ビットワードデータをバッファメモリ220より読み出した順に1stData、2ndDta、3rdData、4thData....というものとする。
【0047】
図12は回転角度が0度の場合の画像データの並べ替え処理を説明する図である。図示するように、4個の8ビットワードデータを32ビットワードの上位側から1stData、2ndDta、3rdData、4thDataの順に並び替え用バッファ218に展開する。この場合は、8ビットワードデータ中の画素データの順序は並べ替えない。画像回転処理手段230は、MSBが32ビットワードの上位側に、LSBが32ビットワードの下位側になるように並び替え用バッファ218に展開する。
【0048】
図13は回転角度が180度の場合の画像データの並べ替え処理を説明する図である。図示するように、4個の8ビットワードデータを32ビットワードの下位側から4thData、3rdData、2ndDta、1stDataの順に並び替え用バッファ218に展開する。この場合は、8ビットワードデータ中で、LSBが32ビットワードの上位側に、MSBが32ビットワードの下位側となるように画素データの順序の並べ替えを行なうことになる。画像回転処理手段230は、画素データの順序の並べ替えを行なった8ビットワードデータを、MSBが32ビットワードの下位側に、LSB32ビットワードの上位側になるように並び替え用バッファ218に展開する。
【0049】
図14は回転角度が90度の場合の画像データの並べ替え処理を説明する図である。図示するように、32個の8ビットワードデータを並び替え用バッファ218に展開することとなる。すなわち、1stWordは、8ビットワードデータのLSBを上位から1stData、2ndDta、3rdData、4thData...32thDataの順に並べて構成され、8thWordは、8ビットワードデータのMSBを上位から1stData、2ndDta、3rdData、4thData...32thDataの順に並べて構成される。このように並べ替え用バッファ218には、32ビットワードが8個展開されることとなる。画像回転処理手段230は、1stDataの8ビットの各データを、LSBを1stWordの位置に、MSBを8thWordの位置になるように順次並び替え用バッファ218の最上位に展開する。同様に2ndDtaは1stDataの次順位に展開され32thDtaは最下位に展開される。
【0050】
図15は回転角度が270度の場合の画像データの並べ替え処理を説明する図である。図示するように、32個の8ビットワードデータを並び替え用バッファ218に展開することとなる。すなわち、1stWordは、8ビットワードデータのMSBを上位から32thData、31thData...3rdData、2ndDta、1stDataの順に並べて構成され、8thWordは、8ビットワードデータのlSBを上位から32thData、31thData...3rdData、2ndDta、1stDataの順に並べて構成される。画像回転処理手段230は、1stDataの8ビットの各データを、MSBを1stWordの位置に、LSBを8thWordの位置になるように順次並び替え用バッファ218の最下位に展開する。同様に2ndDtaは1stDataの次順位に展開され32thDtaは最上位に展開される。
以上のようにして、画像回転処理手段230によって32ビットの画像データが生成され、メモリ制御手段240に出力される。
【0051】
(2−3)メモリ制御手段240の動作
次に、メモリ制御手段240の動作について説明する。
メモリ制御手段240は、ページメモリ書き込みアドレスを算出する。そして、画像回転処理手段230にて生成された画像データがページメモリ300へすべて出力されることにより、画像回転処理は完了する。ページメモリ300への回転処理後の画像データの出力は、ページメモリ書き込み要求信号とページメモリ書き込み許可信号のハンドシェイク制御によって行われる。そして、出力された画像データは、ページメモリ書き込みアドレスによって指定されるアドレスに書き込まれる。
【0052】
図16はそれぞれの画像回転角度でのページメモリ書き込みアドレスの発生順序を示す図である。ページメモリ書き込みアドレスは動作制御手段100によって設定される入力サイズ情報S2と、回転角度情報S3、及び回転処理後の画像データを出力するページメモリの始点アドレス情報S4(以下ベースアドレスという)に基づいて算出される。なお図16において、Sを丸で囲んだ記号はベースアドレスを、Eを丸で囲んだ記号はページメモリの終点アドレスを示している。また、Nxは入力画像主走査方向の画素数を、Ny入力画像副走査方向の画素数を示している。
なお、入力画像サイズ情報S2が32の倍数でない場合は、回転処理後の画像データには、入力画像データS1にはない所定のデータが含まれている。そのため、メモリ制御手段240は、所定のデータがページメモリへ書き込まれないようなページメモリ書き込みアドレスを算出することとなる。よって、入力画像サイズが32の倍数である場合と32の倍数でない場合に分けて説明する。
【0053】
▲1▼入力画像サイズが32の倍数である場合の動作
以下、入力画像サイズ情報S2が32の倍数である場合のメモリ制御手段240の動作を説明する。メモリ制御手段240は、各回転角度におけるページメモリ書き込みアドレスを以下の通り算出する。
回転角度が0度の場合は、主走査方向アドレスを0から((Nx/32)−1)までアップカウントしていき、カウント値が((Nx/32)−1)となったら、主走査方向アドレスを0にリセットすると共に、ライン方向アドレスに(出力用紙主走査方向サイズ/32)を加算する。以上の動作を主走査方向アドレスが((Nx/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Ny−1))となるまで繰り返す。ページメモリ書き込みアドレスとしては、上述の値(主走査方向アドレス+ライン方向アドレス)にベースアドレスを加えた値を出力する。
【0054】
回転角度が180度の場合は、回転角度が0度の場合と同様の動作を行なうが、ページメモリ書き込みアドレスとしては(主走査方向アドレス+ライン方向アドレス)の値をベースアドレスから減算した値を出力する。
【0055】
回転角度が90度の場合は、ライン方向アドレス0から((出力用紙主走査方向サイズ/32)×1)、((出力用紙主走査方向サイズ/32)×2)、.....、((出力用紙主走査方向サイズ/32)×(Nx−1))と変化させ、((出力用紙主走査方向サイズ/32)×(Nx−1))となったら、ライン方向アドレスを0にリセットすると共に、主走査方向アドレスをアップカウントする。以上の動作を主走査方向アドレスが((Ny/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Nx−1))となるまで繰り返す。ページメモリ書き込みアドレスとしては、上述の値(ライン方向アドレス−主走査方向アドレス)にベースアドレスを加えた値を出力する。
【0056】
回転角度が270度の場合は、回転角度が90度の場合と同様の動作を行なうが、ページメモリ書き込みアドレスとしては(ライン方向アドレス−主走査方向アドレス)の値をベースアドレスから減算した値を出力する。
【0057】
▲2▼入力画像サイズが32の倍数でない場合の動作
次に、入力画像サイズ情報S2が32の倍数ではない場合のメモリ制御手段240の動作について説明する。
先に図6、図7、図8、図9で示したように、データ挿入手段211は、バッファメモリ220への入力画像データS1の書き込み処理を行なう際に32の倍数に満たない分だけ所定のデータを挿入している。この場合メモリ制御手段240内のデータ制御手段241は、ページメモリ300に出力するデータの制御を行い、挿入された所定のデータが出力されないように制御を行なう。
以下、各回転角度におけるメモリ制御手段240内及びデータ制御手段241の動作について説明する。
【0058】
(イ)回転処理後の画像データの副走査方向に挿入データが含まれている場合
まず、回転処理後の画像データの副走査方向に挿入データが含まれている場合について説明する。副走査方向に挿入データが含まれている場合とは、回転角度が0度または180度の場合には、入力画像データS1の副走査方向の画素数が32の倍数ではないときであり、回転角度が90度または270度の場合には、入力画像データS1の主走査方向の画素数が32の倍数ではないときである。ここで、回転処理後の画像データにはC(1以上32未満の整数)ライン分の挿入データが含まれているものとする。
【0059】
回転角度が0度の場合は、メモリ制御手段240は、主走査方向アドレスを0から((Nx/32)−1)までアップカウントしていき、カウント値が((Nx/32)−1)となったら、主走査方向アドレスを0にリセットすると共に、ライン方向アドレスに(出力用紙主走査方向サイズ/32)を加算する。以上の動作を主走査方向アドレスが((Nx/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Ny−1))となるまで繰り返す。データ制御手段241は、主走査方向アドレスが((Nx/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Ny−1))になると、画像回転処理終了信号を出力し、ページメモリ300への回転後画像データの出力を停止する。
【0060】
回転角度が180度の場合は、メモリ制御手段240は、主走査方向アドレスを0から((Nx/32)−1)までアップカウントしていき、カウント値が((Nx/32)−1)となったら、主走査方向アドレスを0にリセットして、ライン方向アドレスに(出力用紙主走査方向サイズ/32)を加算すると共に、データ制御手段241のライン数カウンタをカウントアップする。そして、データ制御手段241は、ライン数カウンタの値が0から(C−1)の期間中は、ページメモリ300への回転後画像データの出力を行なわずに画像回転処理手段230から出力される回転後画像データを廃棄する。データ制御手段241は、ライン数カウンタの値がCに達した時点でページメモリ300への出力を開始する。以降、主走査方向アドレスが((Nx/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×((Ny+C)−1))となるまでアドレスのカウント動作とページメモリ300への回転後画像データの出力を繰り返す。
【0061】
回転角度が90度の場合は、ライン方向アドレス0から((出力用紙主走査方向サイズ/32)×1)、((出力用紙主走査方向サイズ/32)×2)、.....、((出力用紙主走査方向サイズ/32)×(Nx+C−1))と変化させ、((出力用紙主走査方向サイズ/32)×(Nx+C−1))となったら、ライン方向アドレスを0にリセットすると共に、主走査方向アドレスをアップカウントする。データ制御手段241は、ライン方向アドレスが0から(C−1)の期間中は、ページメモリ300への回転後画像データの出力を行なわずに、画像回転処理手段230から出力される回転後画像データを廃棄する。以上の動作を主走査方向アドレスが((Ny/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Nx+C−1))となるまで繰り返す。回転角度が270度の場合は、ライン方向アドレス0から((出力用紙主走査方向サイズ/32)×1)、((出力用紙主走査方向サイズ/32)×2)、.....、((出力用紙主走査方向サイズ/32)×(Nx+C−1))と変化させ、((出力用紙主走査方向サイズ/32)×(Nx+C−1))となったら、ライン方向アドレスを0にリセットすると共に、主走査方向アドレスをアップカウントする。データ制御手段241は、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×Nx)以上の期間中は、ページメモリ300への回転後画像データの出力を行なわずに画像回転処理手段230から出力される回転後画像データを廃棄する。以上の動作を主走査方向アドレスが((Ny/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Nx+C−1))となるまで繰り返す。
【0062】
(ロ)回転処理後の画像データの主走査方向に挿入データが含まれている場合
次に、回転処理後の画像データの主走査方向に挿入データが含まれている場合について説明する。主走査方向に挿入データが含まれている場合とは、回転角度が0度または180度の場合には、入力画像データS1の主走査方向の画素数が32の倍数ではないときであり、回転角度が90度または270度の場合には、入力画像データS1の副走査方向の画素数が32の倍数ではないときである。ここで、回転処理後の画像データにはD(1以上32未満の整数)画素分の挿入データが含まれているものとする。
【0063】
回転角度が0度の場合は、メモリ制御手段240は、主走査方向アドレスを0から(Nx/32)(=(((Nx+D)/32)−1)までアップカウントしていき、カウント値が(Nx/32)となったら、主走査方向アドレスを0にリセットすると共に、ライン方向アドレスに(出力用紙主走査方向サイズ/32)を加算する。データ制御手段241は、主走査方向アドレスが(Nx/32)になると、ページメモリ300の該当するアドレスに既に存在する画像データを読み出し、回転後画像データ中のD画素分の挿入データを読み出した画像データ中の同一画素位置にあるデータと入れ替える処理を行い、入れ替え処理の結果得られた画像データをページメモリ300の該当するアドレスに書き込む処理を行なう。以上の動作を主走査方向アドレスが(Nx/32)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Ny−1))となるまで繰り返す。
【0064】
回転角度が180度の場合は、メモリ制御手段240は、主走査方向アドレスを0から(Nx/32)までアップカウントしていき、カウント値が(Nx/32)となったら、主走査方向アドレスを0にリセットすると共に、ライン方向アドレスに(出力用紙主走査方向サイズ/32)を加算する。データ制御手段241は、主走査方向アドレスが0のときは、ページメモリ300の該当するアドレスに既に存在する画像データを読み出し、回転後画像データ中のD画素分の挿入データを読み出した画像データ中の同一画素位置にあるデータと入れ替える処理を行い、入れ替え処理の結果得られた画像データをページメモリ300の該当するアドレスに書き込む処理を行なう。以上の動作を主走査方向アドレスが(Nx/32)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Ny−1))となるまで繰り返す。
【0065】
回転角度が90度の場合は、ライン方向アドレス0から((出力用紙主走査方向サイズ/32)×1)、((出力用紙主走査方向サイズ/32)×2)、.....、((出力用紙主走査方向サイズ/32)×(Nx−1))と変化させ、((出力用紙主走査方向サイズ/32)×(Nx−1))となったら、ライン方向アドレスを0にリセットすると共に、主走査方向アドレスをアップカウントする。データ制御手段241は、主走査方向アドレスが0のときは、ページメモリ300の該当するアドレスに既に存在する画像データを読み出し、回転後画像データ中のD画素分の挿入データを読み出した画像データ中の同一画素位置にあるデータと入れ替える処理を行い、入れ替え処理の結果得られた画像データをページメモリ300の該当するアドレスに書き込む処理を行なう。以上の動作を主走査方向アドレスが(Ny/32)(=(((Ny+D)/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Nx−1))となるまで繰り返す。
【0066】
回転角度が270度の場合は、ライン方向アドレス0から((出力用紙主走査方向サイズ/32)×1)、((出力用紙主走査方向サイズ/32)×2)、.....、((出力用紙主走査方向サイズ/32)×(Nx−1))と変化させ、((出力用紙主走査方向サイズ/32)×(Nx−1))となったら、ライン方向アドレスを0にリセットすると共に、主走査方向アドレスをアップカウントする。データ制御手段241は、主走査方向アドレスが(Ny/32)のときは、ページメモリ300の該当するアドレスに既に存在する画像データを読み出し、回転後画像データ中のD画素分の挿入データを読み出した画像データ中の同一画素位置にあるデータと入れ替える処理を行い、入れ替え処理の結果得られた画像データをページメモリ300の該当するアドレスに書き込む処理を行なう。以上の動作を主走査方向アドレスが(Ny/32)(=(((Ny+D)/32)−1)に、ライン方向アドレスが((出力用紙主走査方向サイズ/32)×(Nx−1))となるまで繰り返す。
以上説明した処理が行われることによって、ページメモリ300には所望の回転角度だけ回転処理された画像データが展開される。
【0067】
(2−4)ページメモリ300の任意のアドレスに回転処理後の画像データを書き込む場合の動作
次に、ページメモリ300の任意のアドレスに回転処理後の画像データを書き込む場合について説明する。この場合ページメモリ300は、画素単位でデータの書き込み読み出しが可能なものを用いるものとする。
上述した処理では、ベースアドレス(図16中ではSを丸で囲んだ記号)を始点として回転処理された画像データが展開されるため、画素単位では、必ずしもページメモリ300の任意のアドレスに書き込むことができない。
【0068】
そこで、ページメモリ300の任意のアドレスに回転処理後の画像データが展開されるように、入力画像データS1を包含する32(M/N:1画素当たりのビット幅N(1ビット)・ページメモリ300のアクセス単位M(32ビット))の倍数の画像データを想定し、データ挿入手段211は、必要に応じて所定のデータを挿入して回転処理をする。そして、メモリ制御手段240は、挿入されたデータの部分を除いた有効なデータのみをページメモリ300に書き込む制御を行う。
【0069】
図17は、入力画像データS1を回転処理した後、回転処理後の画像データを画素単位でページメモリ300の任意のアドレスに書き込む処理を模式的に表したものである。また、図17には、各回転角度における回転処理後画像データを出力するページメモリの始点アドレス情報S4の指定方法を併せて示している。
【0070】
まず、図17を用いて回転処理後の画像データを出力するページメモリの始点のアドレス情報S4について説明を行なう。回転処理後の画像データを出力するページメモリの始点アドレス情報S4は、ベースアドレスとオフセットによって指定する。ベースアドレスは、ページメモリ300のアクセス単位である32ビットワードのアドレスを表すものである。また、オフセットとは1ワード中の有効データの画素数を示すための数値である。
上述のように、所定のデータを挿入することにより、ページメモリ300に書き込まれない挿入されたデータと、書き込まれる有効データが含まれているワードが発生する。例えば、図17において、回転処理後画像データのうち斜線で囲まれた領域は、32ビットに満たない有効データを示しているが、この斜線で囲まれた領域にまたがるワードは、挿入データと有効データとを含むワードである。
そして、図17に示すように、回転角度が0度または270度の場合は、オフセット分を除いたデータが有効データとなり、180度または90度の場合はオフセット分が有効データとなる。
【0071】
次に、回転角度毎に挿入データを含む回転処理後の画像データの主走査方向の画像サイズ(以下、Sxと称する)の算出方法を説明する。Sxは、入力画像データS1のサイズとオフセットの値によって定まる。
【0072】
回転角度が0度の場合
オフセット+(Nx%32)≦32ならば、
Sx=((Nx/32)+1)×32
オフセット+(Nx%32)>32ならば、
Sx=((Nx/32)+2)×32
回転角度が180度の場合
(32−オフセット)+(Nx%32)≦32ならば、
Sx=((Nx/32)+1)×32
(32−オフセット)+(Nx%32)>32ならば、
Sx=((Nx/32)+2)×32
回転角度が90度の場合
(32−オフセット)+(Ny%32)≦32ならば、
Sx=((Ny/32)+1)×32
(32−オフセット)+(Ny%32)>32ならば、
Sx=((Ny/32)+2)×32
回転角度が270度の場合
オフセット+(Ny%32)≦32ならば、
Sx=((Ny/32)+1)×32
オフセット+(Ny%32)>32ならば、
Sx=((Ny/32)+2)×32
ここで、Nxは入力画像データS1の主走査方向の画素数を、Nyは入力画像データS1の副走査方向のライン数を示す。ここで、X%Yは剰余演算を示している。また、X/Yの演算結果で小数点以下の値は切り捨てるものとする。
【0073】
回転処理の動作は、実施例で既に述べた方法と同様であるため、以下回転処理後の画像データを画素単位でページメモリ300の任意のアドレスに書き込む場合の固有の動作について説明する。具体的には、入力画像データS1をバッファメモリ220に書き込む際のデータ挿入手段211の動作と、回転処理後の画像データをページメモリ300に書き込む際のデータ制御手段241の動作について説明する。
【0074】
まず、バッファメモリ制御手段210には動作制御手段100によって設定された入力画像サイズ情報S2と、回転角度情報S3、及び、回転処理後の画像データを出力するページメモリの始点アドレス情報S4が入力される。ここで、回転処理後の画像データを出力するページメモリの始点アドレス情報S4は、図17に示したように、ページメモリ300のアクセス単位である32ビットワードのアドレスを示すベースアドレスと、32ビットワード中の有効データを示すオフセット(画素数)からなる。
【0075】
バッファメモリ制御手段210は、入力画像サイズ情報S2と、回転角度情報S3、及び、回転処理後の画像データを出力するページメモリの始点アドレス情報S4をもとに、既に述べた方法で、挿入データを含む回転処理後の画像データの主走査方向の画像サイズSxを算出する。得られたSxの値と、入力画像サイズ情報S2、回転角度情報S3、及び、オフセットの値に基づいて、データ挿入手段211によるデータの挿入処理を行う。以下、各回転角度におけるデータの挿入処理の動作を説明する。
【0076】
回転角度が0度の場合は、図17に示すように主走査方向の先端にオフセット分の所定のデータを挿入し、入力画像データS1はその分だけシフトされる。また、1ライン分(Nx画素)の入力画像データS1の処理が完了すると、主走査方向の後端に(Sx−(Nx+オフセット))画素分の所定のデータを挿入する。以上の処理により、バッファメモリ220にはSx画素分のデータが書き込まれる。
【0077】
回転角度が180度の場合は、図17に示すように主走査方向の先端に(32−オフセット)分の所定のデータを挿入し、入力画像データS1はその分だけシフトされる。また、1ライン分(Nx画素)の入力画像データS1の処理が完了すると、主走査方向の後端に(Sx−(Nx+(32−オフセット)))画素分の所定のデータを挿入する。以上の処理により、バッファメモリ220にはSx画素分のデータが書き込まれる。
【0078】
回転角度が90度の場合は、図17に示すように副走査方向の先端に(32−オフセット)ライン分の所定のデータを挿入し、(32−オフセット)ライン分のバッファメモリ220への書き込みが完了した時点で、入力画像データS1のバッファメモリ220への書き込み処理が開始される。また、入力画像データS1全ての処理が完了すると、副走査方向の後端に(Sx−(Ny+(32−オフセット)))ライン分の所定のデータを挿入する。以上の処理により、バッファメモリ220にはSxライン分のデータが書き込まれる。
【0079】
回転角度が270度の場合は、図17に示すように副走査方向の先端にオフセットライン分の所定のデータを挿入し、オフセットライン分のバッファメモリ220への書き込みが完了した時点で、入力画像データS1のバッファメモリ220への書き込み処理が開始される。また、入力画像データS1全ての処理が完了すると、副走査方向の後端に(Sx−(Ny+オフセット))ライン分の所定のデータを挿入する。以上の処理により、バッファメモリ220にはSxライン分のデータが書き込まれる。
【0080】
次に、回転処理後の画像データをページメモリ300に書き込む際のデータ制御手段241の動作について説明する。
メモリ制御手段240には動作制御手段100によって設定された入力画像サイズ情報S2と、回転角度情報S3、及び、回転処理後の画像データを出力するページメモリの始点アドレス情報S4が入力される。
動作制御手段100によって設定された入力画像サイズ情報S2、及び、32ビットワード中の有効データを示すオフセットの値に応じて、上述のようにデータ挿入手段211による所定のデータの挿入処理が行われる。図17中の『挿入データ』は、データ挿入手段211によって挿入された所定のデータを示している。データ制御手段211において、この『挿入データ』を除いた回転後画像データをページメモリ300に書き込む制御を行う。
【0081】
図18は画素単位で書き込み制御が可能なページメモリの構成例を示す概念図である。本実施例では、前述のように1画素当たりのビット幅が1ビットの画像データを扱っている。ここに示されるページメモリは、1回の書き込みアクセスによって32ビットのワードデータを書き込み可能であり、該当するワードは入力されるアドレス情報によって指定される。ページメモリ書き込み制御信号によって32ビットのワードデータ中の各ビットに対する書き込み処理の制御が可能であり、いずれのビットに書き込みを行うかはマスク制御信号によって制御される。マスク回路にページメモリ書き込み制御信号とマスク制御信号が入力され、マスク回路において書き込み処理を行うビットを示す書き込みビット指定信号が生成される。書き込みビット指定信号によって、図18に示すようなマスク領域の指定がおこなわれる。すなわち、
▲1▼32ビットワードのMSB側からXビットだけマスクする。
▲2▼マスクしない(32ビット全て書き込む)。
▲3▼32ビットワードのLSB側からYビットだけマスクする。
の3通りの指定が行われる。
【0082】
データ制御手段241における、『挿入データ』を除いた回転後画像データのページメモリ300への書き込み制御について説明する。
ページメモリ300への書き込みアドレスは、既に述べた通りの方法で算出される32ビットワードのアドレス情報と、オフセットにより算出されるマスク情報とMSB側とLSB側のどちらをマスクするかを示すマスク方向指定信号(MSB側をマスクする場合は“1”、LSB側をマスクする場合は“0”とする)からなるマスク制御信号によって指定される。以下、回転角度に応じたマスク制御信号の生成方法について説明する。
【0083】
回転角度が0度の場合、主走査方向アドレスが0のときにマスク情報の値として(オフセット)を、マスク指定方向指定信号として“1”(MSB側)を出力し、主走査方向アドレスがSx/32のときにマスク情報の値として(32−(Sx−(Nx+オフセット)))を、マスク方向指定信号として“0”(LSB側)を出力する。
【0084】
回転角度が180度の場合、主走査方向アドレスが0のときにマスク情報の値として(オフセット)を、マスク指定方向指定信号として“0”(LSB側)を出力し、主走査方向アドレスがSx/32のときにマスク情報の値として(Sx−(Nx+(32−オフセット)))を、マスク方向指定信号として“1”(MSB側)を出力する。
【0085】
回転角度が90度の場合、主走査方向アドレスが0のときにマスク情報の値として(オフセット)を、マスク指定方向指定信号として“0”(LSB側)を出力し、主走査方向アドレスがSx/32のときにマスク情報の値として(Sx−(Ny+(32−オフセット)))を、マスク方向指定信号として“1”(MSB側)を出力する。
【0086】
回転角度が270度の場合、主走査方向アドレスが0のときにマスク情報の値として(オフセット)を、マスク指定方向指定信号として“1”(MSB側)を出力し、主走査方向アドレスがSx/32のときにマスク情報の値として(32−(Sx−(Ny+オフセット)))を、マスク方向指定信号として“0”(LSB側)を出力する。
このようにして生成したマスク制御信号のマスク処理を行い、回転処理後の画像データより『挿入データ』を除去した有効画像データがページメモリ上に展開される。
【0087】
(3)変形例
以上、本発明の一実施例について説明したが、本発明は上記実施例に限定されるものではなく、発明の主旨を変えることなく種々の変形が可能である。
例えば、上記実施例の画像処理装置においては、回転処理可能な入力画像データの画像構造は一種類であるが、同一の画像処理装置で画像構造が異なる複数種類の画像データに対して回転処理を行なうことが可能な構造としてもよい。
【0088】
また、上記実施例では既にページメモリに記憶された画像データに対して回転処理を行なう場合について説明したが、イメージスキャナ等の画像入力手段より入力される画像データを回転処理するようにしてもよい。
【0089】
また、上記実施例では一つのバッファメモリを用いて書き込みおよび読み出しを交互に行なうようにしたが、二つのバッファメモリを用いてもよい。この場合、一方のバッファメモリに入力画像データの書き込み処理を行なっている期間は、他方のバッファメモリからの読み出し処理を行なうようにしてもよい。
【0090】
また、上記実施例では、バッファメモリへの書き込み処理は回転角度によらず所定順に行い、読み出し時に回転角度に応じたアドレスを生成して読み出し処理を行なうようにしていたが、逆に書き込み時に回転処理に応じたアドレス順で書き込み処理をおこない、読み出し処理は所定順としてもよい。
【0091】
また、上記実施例ではバッファメモリからの画像データの読み出しアドレスの生成順序は、回転角度が0度と180度の場合を同様とし、回転角度が90度と270度の場合を同様としたが、それぞれの回転角度に応じたアドレス生成順序によって画像データの読み出し処理を行なうようにしてもよい。
【0092】
また、上記実施例では入力データをバッファメモリに書き込む際にデータ挿入手段による所定のデータの挿入処理を行なうものとしていたが、逆にバッファメモリから読み出し処理を行なう際にデータの挿入処理を行なうようにしてもよい。
【0093】
【発明の効果】
以上、説明したように、この発明によれば、入力画像データを所定のブロックサイズを単位として回転処理する装置において、任意サイズの画像データの回転処理を可能とし、また、既にページメモリに記憶された画像データを回転処理する場合にも、指定された回転角度に応じたデータの挿入が可能な画像処理装置を提供することができる。また、合成あるいはNアップといった編集処理を行なう場合に、データ挿入手段によって挿入される所定のデータをページメモリに出力しないとう制御を行なうため、無駄なデータ転送を無くすと共に、挿入データによるページメモリ上の画像データの書きつぶしを防ぐことが可能となる。(請求項1)
【0095】
また、データ挿入手段によって挿入される所定のデータが含まれるデータをページメモリに書き込む場合、書き込み先のページメモリアドレスに既に存在するデータを一旦読み出し、挿入されたデータの部分を読み出したデータをこのデータと同一画素位置のもとのデータと入れ換えた後に前記ページメモリのアドレスに書き込むことによって、合成あるいはNアップといった編集処理を行なう場合に挿入データによるページメモリ上の画像データの書きつぶしを防ぐことが可能となる。(請求項2)
【0096】
さらに、回転処理後の画像データを出力するページメモリとして画素単位でデータの書き込み読み出しが可能なものを用いた場合、データ挿入手段によって挿入される所定のデータが含まれるデータをページメモリに書き込む時、挿入されたデータの部分を除いた有効なデータのみをページメモリに対して出力するような制御を行なうことにより、回転処理後の画像データを画素単位でページメモリの任意のアドレスに書き込むことができる。従って、合成あるいはNアップといった編集処理を行なう場合に挿入データによるページメモリ上の画像データの書きつぶしを防ぐことが可能となる。(請求項3)
【図面の簡単な説明】
【図1】本発明の実施例の装置構成を示すブロック図である。
【図2】バッファメモリ制御手段におけるバッファメモリ書き込みアドレス生成部の構成例を示す図である。
【図3】バッファメモリ制御手段におけるバッファメモリ読み出しアドレス生成部の構成例を示す図である。
【図4】画像回転処理手段の構成例を示す図である。
【図5】バッファメモリ書き込みアドレスの発生順序を模式的に示す図である。
【図6】回転角度が0度の場合の画像データ1に対する所定のデータ挿入位置と回転後の画像データ中の挿入データの位置を示す図である。
【図7】回転角度が180度の場合の画像データ1に対する所定のデータ挿入位置と回転後の画像データ中の挿入データの位置を示す図である。
【図8】回転角度が90度の場合の画像データ1に対する所定のデータ挿入位置と回転後の画像データ中の挿入データの位置を示す図である。
【図9】回転角度が270度の場合の画像データ1に対する所定のデータ挿入位置と回転後の画像データ中の挿入データの位置を示す図である。
【図10】回転角が度0度または180度の場合のバッファメモリ読み出しアドレスの発生順序を示す図である。
【図11】回転角が度90度または270度の場合のバッファメモリ読み出しアドレスの発生順序を示す図である。
【図12】画像回転処理手段における、回転角度が0度の場合の画像データの並べ替え処理を示す図である。
【図13】画像回転処理手段における、回転角度が180度の場合の画像データの並べ替え処理を示す図である。
【図14】画像回転処理手段における、回転角度が90度の場合の画像データの並べ替え処理を示す図である。
【図15】画像回転処理手段における、回転角度が270度の場合の画像データの並べ替え処理を示す図である。
【図16】ページメモリ書き込みアドレスの発生順序を示す図である。
【図17】本発明の実施例における、回転処理後の画像データを画素単位でページメモリの任意アドレスに書き込む処理を説明する図である。
【図18】本発明の実施例における画素単位で書き込み制御が可能なページメモリの構成例を示す図である。
【図19】従来技術の装置構成例を示すブロック図である。
【図20】従来技術の装置構成例を示すブロック図である。
【符号の説明】
S1 入力画像データ
S2 入力サイズ情報
S3 回転角度情報
S4 始点アドレス情報
100 動作制御手段
200 画像回転処理装置
210 バッファメモリ制御手段
211 データ挿入手段
212 画素数カウンタ
213 ライン数カウンタ
214 マルチプレクサ
215 セレクタ
216 セレクタ
300 ページメモリ
220 バッファメモリ
230 画像回転処理手段
240 メモリ制御手段
241 データ制御手段
400 入力装置
500 画像回転処理装置
510 回転処理補完部
521 回転順序指示/読取部
530 分割回転部
540 記憶部
541 ページメモリ
542 バッファメモリ
550 出力制御部
600 出力部[0001]
BACKGROUND OF THE INVENTION
The present invention provides an image processing apparatus that performs rotation processing on input image data at a specified angle of 0 degrees, 90 degrees, 180 degrees, and 270 degrees, and outputs the image data after the rotation processing About.
[0002]
[Prior art]
Conventionally, there is an apparatus disclosed in Japanese Patent Laid-Open No. 7-121893 as an apparatus for executing rotation processing at an angle that is an integral multiple of 90 degrees with respect to input image data. FIG. 19 is a diagram showing a schematic configuration thereof.
[0003]
Here, sequentially
Then, the image data for one block written in the
[0004]
Furthermore, the apparatus shown in FIG. 19 has the following characteristics in order to enable a single image processing apparatus to perform rotation processing on a plurality of types of image data having different image structures. Yes. That is, in the apparatus shown in FIG. 19, a page that can be accessed in units of M bits (M is an integer of N or more) by rotating image data having N bits (N is an integer of 1 or more) per pixel. In order to output to the
[0005]
Japanese Patent Application Laid-Open No. 6-253129 discloses an image rotation processing device that rotates input image data in units of 90 degrees and outputs the result to an output device. FIG. 20 is a diagram showing a schematic configuration thereof.
[0006]
In the apparatus shown in FIG. 20, sequentially input image data is divided into block rows (R) and block columns (C) in predetermined block units, and R × C block data is stored in the
[0007]
[Problems to be solved by the invention]
However, the conventional example has the following problems.
In the technique disclosed in Japanese Patent Application Laid-Open No. 7-121893, the size of input image data that can be rotated is defined by the bit width per pixel and the page memory access unit. For example, if the bit width per pixel is N bits and the access unit of the page memory is M bits, the number of pixels in the main scanning direction and the number of lines in the sub scanning direction of the input image data are each a multiple of (M / N). There must be.
In addition, when writing image data after rotation processing to the page memory, if a plurality of pixels are included in one word which is an access unit of the page memory, it cannot be written to an arbitrary address of the page memory in units of pixels.
[0008]
Japanese Patent Application Laid-Open No. 6-253129 has the following drawbacks in order to insert data when storing input image data in a page memory.
(1) The rotation angle must be determined at the start of image data input.
{Circle around (2)} When image data already stored in the page memory is rotated, the size of input image data that can be rotated is limited in the same manner as disclosed in JP-A-7-121893.
[0009]
Also, since there is no means for removing the inserted data, for example, the image data after the rotation process is combined with the image data already developed on the page memory, or a plurality of inputs are made on one sheet. When editing processing such as rearranging a document (hereinafter referred to as N-up) is performed, there is a problem that image data that has already been developed is overwritten by the inserted data.
[0010]
The present invention has been made in view of such problems, and in an apparatus for rotating input image data in units of a predetermined block size, enables rotation processing of image data of an arbitrary size, and has already been performed in a page memory. An object of the present invention is to provide an image processing apparatus capable of inserting data in accordance with a designated rotation angle even when rotating stored image data.
It is another object of the present invention to provide an image processing apparatus capable of preventing image data on the page memory from being overwritten by insertion data when performing editing processing such as composition or N-up. It is another object of the present invention to provide an image processing apparatus capable of writing image data after rotation processing in a pixel unit at an arbitrary address of a page memory.
[0011]
[Means for Solving the Problems]
In order to solve the above-described problems, the present invention relates to the size and rotation of an input image in an image processing apparatus that performs rotation processing on input image data at an angle that is an integer multiple of 90 degrees and writes the page data to a page memory. An operation control means for setting an angle, a buffer memory for temporarily holding and outputting the input image data for each predetermined scanning line corresponding to the word unit of the page memory, and the operation control means. In addition, predetermined data corresponding to the required number is inserted into the input image data so that the boundary of the input image data matches the word separator of the page memory in the main scanning direction and the line direction, and Data insertion means for controlling the insertion position to be a position corresponding to the rotation angle set by the operation control means; and the predetermined data and Buffer memory control means for writing and reading the input image in the buffer memory according to the size and rotation angle set by the operation control means, and the input image and the predetermined data read from the buffer memory. Image rotation processing means for performing rotation processing by rearranging and memory control means for sequentially reading out the input images rotated by the rotation processing means and developing them on the page memory.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
(1) Configuration of the embodiment
Next, embodiments of the present invention will be described with reference to the drawings. In the embodiment described below, the image structure of input image data is the number of information bits N (bits / pixel) per pixel, the word width which is an access unit of the buffer memory is W (bits), and the access unit of the page memory Let M (bit) be the word width. Nx is the number of pixels in the main scanning direction of the input image data.
[0013]
(1-1) Overall configuration of the embodiment
FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to the present embodiment.
[0014]
[0015]
(1-2) Configuration of the image
Next, the configuration of the image
[0016]
(1-2-1) Configuration of Buffer
The buffer
[0017]
(1) Configuration of buffer memory write address generator
FIG. 2 is a diagram illustrating a configuration example of the buffer memory write address generation unit. Note that the circuit shown in the drawing is an extracted portion used for writing address generation.
The buffer memory write address generation unit includes a
[0018]
(2) Configuration of buffer memory read address generator
FIG. 3 is a diagram illustrating a configuration example of the buffer memory read address generation unit. Note that the circuit shown in the drawing is an extracted portion used for read address generation. The buffer memory read address generation unit includes a
[0019]
(1-2-2) Configuration of the
The
[0020]
(1-2-3) Configuration of Image
The image rotation processing means 230 rearranges the image data read from the
[0021]
(1-2-4) Configuration of memory control means 240
The
[0022]
(2) Operation of the embodiment
Next, the operation of the image processing apparatus configured as described above will be described. The outline of the operation of the present embodiment is as follows. First, the image data S1 to be subjected to the rotation process stored in the
[0023]
Hereinafter, the operation of each part of the image
First, the input size information S2, the rotation angle information S3, and the start point address information S4 set by the
Next, when the image data S <b> 1 is input to the image
[0024]
(2-1) Operation of buffer memory control means 210
The buffer
[0025]
The buffer
In describing the operation of the embodiment, for simplification, the word width M = 32 which is a page memory access unit is set, the number of information bits N = 1 per pixel, and the word width W which is a buffer memory access unit. = 8.
[0026]
(2-1-1) Write processing to the
The image data writing process to the
Here, when the image size of the image data S1 is a multiple of (M / N) = 32, one block is (Nx / (W / N)) × (M / N) = (Nx / 8) bit ×. Write as 32 lines. When the image data is not a multiple of 32, when the image data is written to the
[0027]
(1) Operation when the input image size is a multiple of 32
First, an operation when the input size information S2 is a multiple of 32 in both the main scanning direction and the sub-scanning direction will be described.
The buffer memory write address generation unit (see FIG. 2) operates as follows at the buffer memory write address. First, a value obtained by subtracting 1 from the number of words (Nx / 8) in the main scanning direction is loaded into the
[0028]
When the above operations are repeated and the count values of the
[0029]
Specifically, the buffer memory read address is generated as indicated by the solid line in the drawing from the position indicated by start (Start) to the position indicated by end (End) in FIG. That is, the address of the start position where reading is started is (31: Nx / 8-1), from which the count value of the
This write address is generated in the order shown in FIG. 5 in all cases regardless of the rotation angle. In this case, the unit of image data written to the
[0030]
(2) Operation when the input image size is not a multiple of 32
Next, an operation when the input size information S2 is not a multiple of 32 will be described.
The
[0031]
Hereinafter, the operation of data insertion processing according to the image rotation angle by the
[0032]
The size of data inserted by the
In this way, the buffer
Specifically, predetermined data is inserted as follows according to each rotation angle.
[0033]
When the rotation angle is 0 degree, as shown in FIG. 6, predetermined data is inserted into the rear end of the main scanning direction with A bit and predetermined data of the B line is inserted into the rear end in the sub scanning direction.
[0034]
When the rotation angle is 180 degrees, as shown in FIG. 7, A data is inserted into the leading end in the main scanning direction, and the
[0035]
When the rotation angle is 90 degrees, as shown in FIG. 8, A bit of predetermined data is inserted at the rear end in the main scanning direction. Further, after inserting predetermined data for B lines at the leading end in the sub-scanning direction, the input image data is written into the
When the rotation angle is 270 degrees, as shown in FIG. 9, A data is inserted into the leading end in the main scanning direction, and the
[0036]
The buffer memory write address generation is the same as when the image size of the image data S1 is a multiple of 32. However, the
[0037]
(2-1-2) Reading process from the
Next, reading processing from the
When a buffer memory write end signal is output from the buffer memory write address generation unit, reading of image data from the
Hereinafter, a process of reading image data from the
[0038]
(1) When the rotation angle is 0 or 180 degrees
First, the operation when the rotation angle is 0 degree or 180 degrees will be described. The generation order of the buffer memory read address is as shown in FIG. 10, and the buffer memory read address generation unit (see FIG. 3) operates as follows when the buffer memory read address is generated.
In FIG. 3, the
[0039]
When the image data reading process from the
[0040]
When the above operations are repeated and the count values of the
Specifically, the buffer memory read address is generated as indicated by the solid line in the figure from the position indicated by start (Start) to the position indicated by end (End) in FIG. That is, the address of the start position where reading and reading is started is (31: Nx / 8-1), from which the count value of the
The generation order of the buffer memory read addresses when the rotation angle is 0 degree or 180 degrees is the same as the generation order of the buffer memory write addresses shown in FIG.
[0041]
(2) When the rotation angle is 90 degrees or 270 degrees
Next, the operation when the rotation angle is 90 degrees or 270 degrees will be described. The generation order of the buffer memory read address is as shown in FIG. 11, and the buffer memory read address generation unit operates as follows when generating the buffer memory read address.
In FIG. 3, the
[0042]
When the image data reading process from the
[0043]
When the above operations are repeated and the count values of the
Specifically, the buffer memory read address is generated from the position indicated by start (Start) to the position indicated by end (End) in FIG. That is, the address of the start position at which reading and reading is started is (31: Nx / 8-1), and the value of the
When the reading of the image data from the
[0044]
(2-2) Operation of image rotation processing means 230
Next, image rotation processing in the image rotation processing means 230 will be described. The image
Specifically, the 8-bit word data read from the
[0045]
When the rotation angle is 0 degree or 180 degrees, the image
[0046]
Hereinafter, with reference to FIGS. 4, 12, 13, 14, and 15, image data rearrangement processing in the image
Here, the first line of the
[0047]
FIG. 12 is a diagram for explaining image data rearrangement processing when the rotation angle is 0 degrees. As shown in the figure, four 8-bit word data are expanded in the
[0048]
FIG. 13 is a diagram for explaining image data rearrangement processing when the rotation angle is 180 degrees. As shown in the figure, four 8-bit word data are expanded in the
[0049]
FIG. 14 is a diagram for explaining image data rearrangement processing when the rotation angle is 90 degrees. As shown in the figure, 32 8-bit word data are expanded in the
[0050]
FIG. 15 is a diagram for explaining image data rearrangement processing when the rotation angle is 270 degrees. As shown in the figure, 32 8-bit word data are expanded in the
As described above, 32-bit image data is generated by the image
[0051]
(2-3) Operation of memory control means 240
Next, the operation of the
The
[0052]
FIG. 16 is a diagram showing the generation order of page memory write addresses at each image rotation angle. The page memory write address is based on input size information S2 set by the operation control means 100, rotation angle information S3, and page memory start point address information S4 (hereinafter referred to as base address) for outputting image data after rotation processing. Calculated. In FIG. 16, the symbol surrounded by a circle indicates the base address, and the symbol surrounded by a circle indicates the end address of the page memory. Nx represents the number of pixels in the input image main scanning direction and the number of pixels in the Ny input image sub-scanning direction.
If the input image size information S2 is not a multiple of 32, the image data after the rotation process includes predetermined data that is not in the input image data S1. Therefore, the
[0053]
(1) Operation when the input image size is a multiple of 32
Hereinafter, the operation of the
When the rotation angle is 0 degree, the main scanning direction address is counted up from 0 to ((Nx / 32) -1). When the count value becomes ((Nx / 32) -1), the main scanning is performed. The direction address is reset to 0, and (output paper main scanning direction size / 32) is added to the line direction address. The above operation is repeated until the main scanning direction address becomes ((Nx / 32) -1) and the line direction address becomes ((output paper main scanning direction size / 32) × (Ny-1)). As the page memory write address, a value obtained by adding the base address to the above value (main scanning direction address + line direction address) is output.
[0054]
When the rotation angle is 180 degrees, the same operation as when the rotation angle is 0 degrees is performed, but the page memory write address is obtained by subtracting the value of (main scanning direction address + line direction address) from the base address. Output.
[0055]
When the rotation angle is 90 degrees, from the line direction address 0 ((output paper main scanning direction size / 32) × 1), ((output paper main scanning direction size / 32) × 2),. . . . . , ((Output paper main scanning direction size / 32) × (Nx−1)), and ((output paper main scanning direction size / 32) × (Nx−1)), the line direction address is set to 0. And the main scanning direction address is up-counted. The above operation is repeated until the main scanning direction address becomes ((Ny / 32) -1) and the line direction address becomes ((output paper main scanning direction size / 32) × (Nx-1)). As the page memory write address, a value obtained by adding the base address to the above value (line direction address−main scanning direction address) is output.
[0056]
When the rotation angle is 270 degrees, the same operation is performed as when the rotation angle is 90 degrees, but the page memory write address is a value obtained by subtracting the value of (line direction address−main scanning direction address) from the base address. Output.
[0057]
(2) Operation when the input image size is not a multiple of 32
Next, the operation of the
As shown in FIG. 6, FIG. 7, FIG. 8, and FIG. The data of is inserted. In this case, the data control means 241 in the memory control means 240 controls the data output to the
Hereinafter, the operation of the
[0058]
(A) When insertion data is included in the sub-scanning direction of the image data after rotation processing
First, a case where insertion data is included in the sub-scanning direction of image data after rotation processing will be described. The case where the insertion data is included in the sub-scanning direction is when the number of pixels in the sub-scanning direction of the input image data S1 is not a multiple of 32 when the rotation angle is 0 degree or 180 degrees. When the angle is 90 degrees or 270 degrees, the number of pixels in the main scanning direction of the input image data S1 is not a multiple of 32. Here, it is assumed that the image data after the rotation processing includes insertion data for C (an integer of 1 to less than 32) lines.
[0059]
When the rotation angle is 0 degree, the
[0060]
When the rotation angle is 180 degrees, the
[0061]
When the rotation angle is 90 degrees, from the line direction address 0 ((output paper main scanning direction size / 32) × 1), ((output paper main scanning direction size / 32) × 2),. . . . . , ((Output sheet main scanning direction size / 32) × (Nx + C−1)) and ((output sheet main scanning direction size / 32) × (Nx + C−1)), the line direction address is set to 0. And the main scanning direction address is up-counted. The data control
[0062]
(B) When insertion data is included in the main scanning direction of the image data after rotation processing
Next, a case where insertion data is included in the main scanning direction of the image data after the rotation processing will be described. The case where the insertion data is included in the main scanning direction is when the number of pixels in the main scanning direction of the input image data S1 is not a multiple of 32 when the rotation angle is 0 degree or 180 degrees. When the angle is 90 degrees or 270 degrees, the number of pixels in the sub-scanning direction of the input image data S1 is not a multiple of 32. Here, it is assumed that the image data after the rotation processing includes insertion data for D (an integer greater than or equal to 1 and less than 32) pixels.
[0063]
When the rotation angle is 0 degree, the
[0064]
When the rotation angle is 180 degrees, the
[0065]
When the rotation angle is 90 degrees, from the line direction address 0 ((output paper main scanning direction size / 32) × 1), ((output paper main scanning direction size / 32) × 2),. . . . . , ((Output paper main scanning direction size / 32) × (Nx−1)), and ((output paper main scanning direction size / 32) × (Nx−1)), the line direction address is set to 0. And the main scanning direction address is up-counted. When the main scanning direction address is 0, the
[0066]
When the rotation angle is 270 degrees, from the
By performing the processing described above, image data that has been rotated by a desired rotation angle is developed in the
[0067]
(2-4) Operation when writing rotated image data to an arbitrary address in the
Next, a case where image data after rotation processing is written to an arbitrary address in the
In the above-described processing, the image data that has been rotated from the base address (the symbol in which S is circled in FIG. 16) is developed, so that it is not necessarily written in an arbitrary address of the
[0068]
Therefore, 32 (M / N: bit width N (1 bit) per pixel) page memory including the input image data S1 so that the image data after the rotation processing is developed at an arbitrary address of the
[0069]
FIG. 17 schematically shows a process of rotating the input image data S1 and then writing the image data after the rotation process to an arbitrary address in the
[0070]
First, the address information S4 of the start point of the page memory that outputs the image data after the rotation process will be described with reference to FIG. The starting point address information S4 of the page memory that outputs the image data after the rotation processing is specified by the base address and the offset. The base address represents an address of a 32-bit word that is an access unit of the
As described above, by inserting predetermined data, a word including inserted data that is not written to the
As shown in FIG. 17, when the rotation angle is 0 degree or 270 degrees, the data excluding the offset is valid data, and when it is 180 degrees or 90 degrees, the offset is valid data.
[0071]
Next, a method of calculating the image size in the main scanning direction (hereinafter referred to as Sx) of the image data after rotation processing including insertion data for each rotation angle will be described. Sx is determined by the size of the input image data S1 and the offset value.
[0072]
When the rotation angle is 0 degree
If offset + (Nx% 32) ≤ 32,
Sx = ((Nx / 32) +1) × 32
If offset + (Nx% 32)> 32,
Sx = ((Nx / 32) +2) × 32
When the rotation angle is 180 degrees
If (32−offset) + (Nx% 32) ≦ 32,
Sx = ((Nx / 32) +1) × 32
If (32−offset) + (Nx% 32)> 32,
Sx = ((Nx / 32) +2) × 32
When the rotation angle is 90 degrees
If (32−offset) + (Ny% 32) ≦ 32,
Sx = ((Ny / 32) +1) × 32
If (32−offset) + (Ny% 32)> 32,
Sx = ((Ny / 32) +2) × 32
When the rotation angle is 270 degrees
If offset + (Ny% 32) ≦ 32,
Sx = ((Ny / 32) +1) × 32
If offset + (Ny% 32)> 32,
Sx = ((Ny / 32) +2) × 32
Here, Nx represents the number of pixels in the main scanning direction of the input image data S1, and Ny represents the number of lines in the sub scanning direction of the input image data S1. Here, X% Y indicates a remainder calculation. Also, the value after the decimal point is rounded down in the X / Y calculation result.
[0073]
Since the operation of the rotation process is the same as the method already described in the embodiment, a specific operation when writing the image data after the rotation process to an arbitrary address of the
[0074]
First, the input image size information S2, the rotation angle information S3 set by the
[0075]
The buffer
[0076]
When the rotation angle is 0 degree, as shown in FIG. 17, predetermined data for an offset is inserted at the front end in the main scanning direction, and the input image data S1 is shifted by that amount. When the processing of the input image data S1 for one line (Nx pixel) is completed, predetermined data for (Sx− (Nx + offset)) pixels is inserted at the rear end in the main scanning direction. Through the above processing, data for Sx pixels is written in the
[0077]
When the rotation angle is 180 degrees, as shown in FIG. 17, predetermined data for (32-offset) is inserted at the front end in the main scanning direction, and the input image data S1 is shifted by that amount. When the processing of the input image data S1 for one line (Nx pixels) is completed, predetermined data for (Sx− (Nx + (32−offset))) pixels is inserted at the rear end in the main scanning direction. Through the above processing, data for Sx pixels is written in the
[0078]
When the rotation angle is 90 degrees, as shown in FIG. 17, predetermined data for (32-offset) lines is inserted at the leading end in the sub-scanning direction, and writing to the
[0079]
When the rotation angle is 270 degrees, as shown in FIG. 17, when the predetermined data for the offset line is inserted at the leading end in the sub-scanning direction and the writing to the
[0080]
Next, the operation of the
The
In accordance with the input image size information S2 set by the
[0081]
FIG. 18 is a conceptual diagram illustrating a configuration example of a page memory capable of writing control in units of pixels. In this embodiment, as described above, image data having a bit width per pixel of 1 bit is handled. The page memory shown here can write 32-bit word data by one write access, and the corresponding word is specified by input address information. The page memory write control signal can control the writing process for each bit in the 32-bit word data, and which bit is written is controlled by the mask control signal. A page memory write control signal and a mask control signal are input to the mask circuit, and a write bit designation signal indicating a bit to be written in the mask circuit is generated. A mask area as shown in FIG. 18 is designated by the write bit designation signal. That is,
(1) Mask only the X bit from the MSB side of the 32-bit word.
(2) Do not mask (write all 32 bits).
(3) Mask only Y bits from the LSB side of 32-bit words.
The following three types are specified.
[0082]
A description will be given of how the
The write address to the
[0083]
When the rotation angle is 0 degree, when the main scanning direction address is 0, (offset) is output as the mask information value, and “1” (MSB side) is output as the mask designation direction designation signal, and the main scanning direction address is Sx. When / 32, (32− (Sx− (Nx + offset))) is output as the mask information value, and “0” (LSB side) is output as the mask direction designation signal.
[0084]
When the rotation angle is 180 degrees, when the main scanning direction address is 0, (offset) is output as the mask information value, and “0” (LSB side) is output as the mask designation direction designation signal, and the main scanning direction address is Sx. When / 32, (Sx− (Nx + (32−offset))) is output as the mask information value, and “1” (MSB side) is output as the mask direction designation signal.
[0085]
When the rotation angle is 90 degrees, when the main scanning direction address is 0, (offset) is output as the mask information value, and “0” (LSB side) is output as the mask designation direction designation signal, and the main scanning direction address is Sx. When / 32, (Sx− (Ny + (32−offset))) is output as the mask information value, and “1” (MSB side) is output as the mask direction designation signal.
[0086]
When the rotation angle is 270 degrees, when the main scanning direction address is 0, (offset) is output as the mask information value, and “1” (MSB side) is output as the mask designation direction designation signal, and the main scanning direction address is Sx. When / 32, (32− (Sx− (Ny + offset))) is output as the mask information value, and “0” (LSB side) is output as the mask direction designation signal.
Mask processing of the mask control signal generated in this way is performed, and effective image data obtained by removing “insertion data” from the image data after the rotation processing is developed on the page memory.
[0087]
(3) Modification
As mentioned above, although one Example of this invention was described, this invention is not limited to the said Example, A various deformation | transformation is possible, without changing the main point of invention.
For example, in the image processing apparatus of the above embodiment, there is one type of image structure of input image data that can be rotated, but rotation processing is performed on a plurality of types of image data having different image structures in the same image processing apparatus. It is good also as a structure which can be performed.
[0088]
In the above embodiment, the case where the rotation process is performed on the image data already stored in the page memory has been described. However, the image data input from the image input unit such as an image scanner may be rotated. .
[0089]
In the above embodiment, writing and reading are alternately performed using one buffer memory, but two buffer memories may be used. In this case, while the input image data is being written to one buffer memory, the reading process from the other buffer memory may be performed.
[0090]
In the above embodiment, the writing process to the buffer memory is performed in a predetermined order regardless of the rotation angle, and the address is generated by performing the reading process according to the rotation angle at the time of reading. The writing process may be performed in the order of addresses according to the process, and the reading process may be performed in a predetermined order.
[0091]
In the above embodiment, the generation order of the read address of the image data from the buffer memory is the same when the rotation angles are 0 degrees and 180 degrees, and the same when the rotation angles are 90 degrees and 270 degrees. Image data read processing may be performed in the address generation order corresponding to each rotation angle.
[0092]
In the above embodiment, the predetermined data insertion process is performed by the data insertion means when the input data is written to the buffer memory. Conversely, the data insertion process is performed when the reading process is performed from the buffer memory. It may be.
[0093]
【The invention's effect】
As described above, according to the present invention, in an apparatus for rotating input image data in units of a predetermined block size, it is possible to rotate image data of an arbitrary size, and it is already stored in the page memory. An image processing apparatus capable of inserting data in accordance with a specified rotation angle even when rotating processed image data.Togait can.Further, when editing processing such as synthesis or N-up is performed, control is performed so that predetermined data inserted by the data insertion means is not output to the page memory. It is possible to prevent the image data from being overwritten. (Claim 1)
[0095]
In addition, when data including predetermined data to be inserted by the data insertion means is written to the page memory, the data already existing at the page memory address of the write destination is once read, and the inserted data portion is read.And the original data at the same pixel position as this dataBy writing to the address of the page memory after the replacement, it is possible to prevent the image data on the page memory from being overwritten by the insertion data when editing processing such as composition or N-up is performed. (Claims2)
[0096]
Further, when a page memory that can write and read data in pixel units is used as a page memory that outputs image data after rotation processing, when data including predetermined data inserted by the data insertion unit is written to the page memory By performing control such that only valid data excluding the inserted data portion is output to the page memory, the image data after the rotation processing can be written in an arbitrary address of the page memory in units of pixels. it can. Therefore, it is possible to prevent the image data on the page memory from being overwritten by the insertion data when editing processing such as composition or N-up is performed. (Claims3)
[Brief description of the drawings]
FIG. 1 is a block diagram showing a device configuration of an embodiment of the present invention.
FIG. 2 is a diagram showing a configuration example of a buffer memory write address generation unit in the buffer memory control means.
FIG. 3 is a diagram showing a configuration example of a buffer memory read address generation unit in the buffer memory control means.
FIG. 4 is a diagram illustrating a configuration example of an image rotation processing unit.
FIG. 5 is a diagram schematically illustrating the generation order of buffer memory write addresses.
FIG. 6 is a diagram illustrating a predetermined data insertion position with respect to image
7 is a diagram illustrating a predetermined data insertion position for
FIG. 8 is a diagram illustrating a predetermined data insertion position for
FIG. 9 is a diagram illustrating a predetermined data insertion position with respect to image
FIG. 10 is a diagram illustrating a generation order of buffer memory read addresses when the rotation angle is 0 degree or 180 degrees.
FIG. 11 is a diagram showing the generation order of buffer memory read addresses when the rotation angle is 90 degrees or 270 degrees.
FIG. 12 is a diagram showing image data rearrangement processing when the rotation angle is 0 degrees in the image rotation processing means;
FIG. 13 is a diagram showing image data rearrangement processing when the rotation angle is 180 degrees in the image rotation processing means;
FIG. 14 is a diagram showing image data rearrangement processing when the rotation angle is 90 degrees in the image rotation processing means;
FIG. 15 is a diagram showing image data rearrangement processing when the rotation angle is 270 degrees in the image rotation processing means;
FIG. 16 is a diagram showing a generation order of page memory write addresses;
FIG. 17 is a diagram illustrating processing for writing image data after rotation processing to an arbitrary address in the page memory in an embodiment of the present invention.
FIG. 18 is a diagram illustrating a configuration example of a page memory capable of writing control in units of pixels according to an embodiment of the present invention.
FIG. 19 is a block diagram illustrating an example of a device configuration of a conventional technique.
FIG. 20 is a block diagram illustrating an example of a configuration of a conventional technology.
[Explanation of symbols]
S1 Input image data
S2 Input size information
S3 Rotation angle information
S4 Start address information
100 Operation control means
200 Image rotation processing device
210 Buffer memory control means
211 Data insertion means
212 pixel counter
213 Line number counter
214 Multiplexer
215 selector
216 selector
300 page memory
220 Buffer memory
230 Image rotation processing means
240 Memory control means
241 Data control means
400 input device
500 Image rotation processing device
510 Rotation processing complement
521 Rotation order instruction / reading unit
530 Divided rotating part
540 storage unit
541 page memory
542 Buffer memory
550 Output controller
600 output section
Claims (6)
入力画像のサイズおよび回転角度を設定する動作制御手段と、
入力された画像データを、前記ページメモリのワード単位に応じた所定の走査ライン分ずつ一時的に保持して出力するバッファメモリと、
前記動作制御手段によって設定された前記入力画像データの境界が、主走査方向およびライン方向において前記ページメモリのワードの区切りに一致するように、前記入力画像データに対し必要数に応じた所定のデータを挿入し、かつ、その挿入位置が前記動作制御手段の設定した回転角度に対応する位置になるように制御するデータ挿入手段と、
前記バッファメモリから読み出された前記入力画像および前記所定のデータを並び替えることによって回転処理を行う画像回転処理手段と、
前記所定のデータおよび前記入力画像を、前記動作制御手段によって設定されたサイズおよび回転角度に応じて前記バッファメモリへ書き込むとともに、読み出すバッファメモリ制御手段と、
前記回転処理手段によって回転処理された前記入力画像を順次読み出して前記ページメモリ上に展開するメモリ制御手段とを備え、
前記メモリ制御手段は、合成またはNアップといった編集処理を行う場合に、前記画像回転処理手段の処理結果中、前記所定のデータをページメモリに出力しない制御を行う出力データ制御手段を備えることを特徴とする画像処理装置。In an image processing apparatus that performs rotation processing at an angle that is an integer multiple of 90 degrees on input image data and writes the page data in a page memory,
Operation control means for setting the size and rotation angle of the input image;
A buffer memory that temporarily holds and outputs the input image data for each predetermined scan line corresponding to the word unit of the page memory;
Predetermined data corresponding to the required number for the input image data so that the boundary of the input image data set by the operation control means matches the word delimiter of the page memory in the main scanning direction and the line direction And data insertion means for controlling the insertion position to be a position corresponding to the rotation angle set by the operation control means,
Image rotation processing means for performing rotation processing by rearranging the input image and the predetermined data read from the buffer memory;
Buffer memory control means for writing the predetermined data and the input image to the buffer memory in accordance with the size and rotation angle set by the operation control means;
Memory control means for sequentially reading out the input images rotated by the rotation processing means and developing them on the page memory;
The memory control means includes output data control means for performing control not to output the predetermined data to a page memory during the processing result of the image rotation processing means when performing editing processing such as composition or N-up. An image processing apparatus.
前記メモリ制御手段は、前記所定のデータが含まれるワードを前記ページメモリに展開するときに、前記所定のデータを除去してから展開することを特徴とする請求項1記載の画像処理装置。As the page memory, one that can write and read data in pixel units,
2. The image processing apparatus according to claim 1, wherein the memory control means expands after removing the predetermined data when expanding a word including the predetermined data in the page memory.
入力画像のサイズおよび回転角度を設定するステップと、Setting the size and rotation angle of the input image;
入力された画像データを、その入力画像データの境界が主走査方向およびライン方向において前記ページメモリのワードの区切りに一致するように、その入力画像データに対し必要数に応じた所定のデータを、設定された回転角度に対応する挿入位置に挿入するステップと、The input image data includes predetermined data corresponding to the required number for the input image data so that the boundary of the input image data matches the word separator of the page memory in the main scanning direction and the line direction. Inserting at an insertion position corresponding to the set rotation angle;
前記入力画像データ及び前記所定のデータを、ワード単位に応じた所定の走査ライン分ずつ、設定されたサイズおよび回転角度に応じて前記バッファメモリへ書き込み、読み出すステップと、Writing and reading the input image data and the predetermined data to and from the buffer memory according to a set size and rotation angle for each predetermined scanning line corresponding to a word unit;
前記バッファメモリから読み出された前記入力画像データおよび前記所定のデータを並び替えることによって回転処理を行うステップと、Performing rotation processing by rearranging the input image data and the predetermined data read from the buffer memory;
回転処理された前記入力画像データを順次読み出して前記ページメモリ上に展開すると共に、合成またはNアップといった編集処理を行う場合には、前記回転処理の結果中、前記所定のデータを前記ページメモリに出力しない展開ステップとWhen the input image data that has been subjected to the rotation processing is sequentially read out and expanded on the page memory, and editing processing such as composition or N-up is performed, the predetermined data is stored in the page memory during the result of the rotation processing. Unexpanded unfolded steps and
を備えることを特徴とする画像処理方法。An image processing method comprising:
前記展開ステップにおいて、前記所定のデータが含まれるワードを前記ページメモリに展開するときに、前記所定のデータを除去してから展開することを特徴とする請求項4記載の画像処理方法。5. The image processing method according to claim 4, wherein in the expansion step, when the word including the predetermined data is expanded in the page memory, the expansion is performed after removing the predetermined data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02815897A JP3629873B2 (en) | 1997-02-12 | 1997-02-12 | Image processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02815897A JP3629873B2 (en) | 1997-02-12 | 1997-02-12 | Image processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10222656A JPH10222656A (en) | 1998-08-21 |
JP3629873B2 true JP3629873B2 (en) | 2005-03-16 |
Family
ID=12240957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02815897A Expired - Fee Related JP3629873B2 (en) | 1997-02-12 | 1997-02-12 | Image processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3629873B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000182041A (en) * | 1998-12-18 | 2000-06-30 | Nec Eng Ltd | Longitudinal/lateral conversion processor |
-
1997
- 1997-02-12 JP JP02815897A patent/JP3629873B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10222656A (en) | 1998-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0149120A2 (en) | A method for expansion of a digital image | |
US4627020A (en) | Method for rotating a binary image | |
JPS6085680A (en) | Picture processing device | |
JP3022903B2 (en) | Image rotation device | |
JP3880680B2 (en) | A system that converts source images to destination images | |
EP0794510B1 (en) | High speed system for image scaling | |
JP3166447B2 (en) | Image processing apparatus and image processing method | |
JP3971535B2 (en) | SIMD type processor | |
EP0239119B1 (en) | Information transferring method and apparatus of transferring information from one memory area to another memory area | |
JP3629873B2 (en) | Image processing device | |
JP4031996B2 (en) | Digital still camera with memory device | |
US5052046A (en) | Image processing method and apparatus therefor | |
JP4408113B2 (en) | Signal processing method | |
JP2812292B2 (en) | Image processing device | |
JPH05135162A (en) | Image processor | |
JP2007072867A (en) | Image memory and image processing system | |
JP2008136125A (en) | Image processing apparatus | |
JP3016372B2 (en) | Image processing device | |
JPH05108812A (en) | Picture rotation processor | |
JPH0751370B2 (en) | Image forming device | |
JP2005109856A (en) | Picture rotation circuit and picture processor having the same | |
JPH09247396A (en) | Image processor and image processing mathod using the processor | |
JP2770516B2 (en) | Drawing method | |
JPH0563959A (en) | Method and device for processing picture | |
JPH06324935A (en) | Address generator and address generation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040831 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041026 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041207 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121224 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121224 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131224 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |