JP3629873B2 - Image processing device - Google Patents

Image processing device Download PDF

Info

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
Application number
JP02815897A
Other languages
Japanese (ja)
Other versions
JPH10222656A (en
Inventor
林  和夫
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP02815897A priority Critical patent/JP3629873B2/en
Publication of JPH10222656A publication Critical patent/JPH10222656A/en
Application granted granted Critical
Publication of JP3629873B2 publication Critical patent/JP3629873B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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アップといった編集処理を行なう場合に挿入データによるページメモリ上の画像データの書きつぶしを防ぐことが可能となる。(請求項
【0096】
さらに、回転処理後の画像データを出力するページメモリとして画素単位でデータの書き込み読み出しが可能なものを用いた場合、データ挿入手段によって挿入される所定のデータが含まれるデータをページメモリに書き込む時、挿入されたデータの部分を除いた有効なデータのみをページメモリに対して出力するような制御を行なうことにより、回転処理後の画像データを画素単位でページメモリの任意のアドレスに書き込むことができる。従って、合成あるいはNアップといった編集処理を行なう場合に挿入データによるページメモリ上の画像データの書きつぶしを防ぐことが可能となる。(請求項
【図面の簡単な説明】
【図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 input image data 1 is equivalent to (M / N) lines defined by a bit width N per pixel (hereinafter referred to as an image structure) and a bit width M of one word of the page memory 300. Data is made into one block, and writing to and reading from the buffer memory 220 is performed in units of the block.
Then, the image data for one block written in the buffer memory 220 is sequentially read from the read address generated by the buffer memory control unit 210 according to the rotation angle, and the read image data is arranged by the image rotation processing unit 230. Instead, image data for one word of the page memory 300 that has been rotated at a specified angle is generated. Then, the generated image data 5 after the rotation processing is written in the address of the page memory 300 calculated according to the rotation angle. As a result, an image obtained by performing the instructed rotation processing on the sequentially input image data 1 is developed in the page memory 300.
[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 memory 300, a buffer memory 220 accessible in W bit units (W is an integer satisfying N ≦ W ≦ M) and image data for (M / N) lines are sequentially input as units, Addresses in a predetermined order are sequentially generated based on the image size information, and the input image data is sequentially written in the buffer memory 220 for each (W / N) pixel, and stored in the buffer memory 220 (M / N) From the buffer memory control means 210 for controlling the sequential reading of the image data for lines, and the M data sequentially read from the buffer memory 220, Based on the rotation angle and the number N of bits per pixel, the image rotation processing means 230 for generating (W / N) M-bit data, the address corresponding to the rotation angle are sequentially generated, and the image rotation processing means The memory control unit 240 outputs (W / N) pieces of data generated in 230 to the corresponding addresses of the page memory 300.
[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 page memory 541. To do. Then, the block data in the first main scanning direction of the output device 600 after the rotation in units of 90 degrees, that is, the block data corresponding to the block row after the rotation is sequentially read, and the read block data is rotated by the divided rotation unit 530. The data is stored in the buffer memory 542 as data for one block row of the output device 600. The buffer memory 542 has a capacity capable of storing at least one block row. The output control unit 550 outputs the stored block data for one block row. If residual partial data is generated when the input image data is divided in units of blocks, the residual partial data is not rotated so that the residual partial data becomes the last block row and block column after the rotation processing by the division rotation unit 530. Data is inserted by the complementing unit 510 and is stored in the page memory 541 after such processing.
[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. Reference numeral 100 denotes an operation control unit that performs various settings necessary for performing image rotation processing. That is, input size information S2, rotation angle information S3, start address information S4 of a page memory that outputs image data after rotation processing, and the like are set. Here, the input size information S2 is the size of image data to be rotated. As the size of the image data, any size can be designated in both the main scanning direction and the sub-scanning direction, and it is not necessary that both be a multiple of (M / N).
[0014]
Reference numeral 200 denotes an image rotation processing device that performs rotation processing on input image data S1. The operation mode for performing the rotation process is determined by the operation control means 100. Reference numeral 300 denotes a page memory that stores image data to be subjected to rotation processing and is an output destination of the image data after rotation processing.
[0015]
(1-2) Configuration of the image rotation processing device 200
Next, the configuration of the image rotation processing device 200 will be described. As shown in FIG. 1, the image rotation processing device 200 includes a buffer memory control unit 210, a buffer memory 220, an image rotation processing unit 230, and a memory control unit 240.
[0016]
(1-2-1) Configuration of Buffer Memory Control Unit 210
The buffer memory control unit 210 includes a buffer memory write address generation unit and a buffer memory read address generation unit. The buffer memory write address generation unit and the buffer memory read address generation unit are configured by a single circuit, and are used as a buffer memory write address generation unit when a write address is generated, and as a buffer memory read address generation unit when a read address is generated. Used. Further, the buffer memory control unit 210 is provided with a data insertion unit 211. The data insertion means 211 inserts predetermined data to the buffer memory 220 and writes it to the buffer memory 220 when the input size information S2 is not a multiple of (M / N). is there.
[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 pixel number counter 212, a line number counter 213, and a multiplexer 214. The pixel number counter 212 counts the number of words in one line of image data to be written in the buffer memory 220, and the line number counter 213 counts the number of input lines. The multiplexer 214 generates a buffer memory write address based on the output values of the pixel number counter 212 and the line number counter 213. In the present embodiment, the pixel number counter and the line number counter are composed of down counters, but an up counter may be used.
[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 pixel number counter 212, a line number counter 213, a multiplexer 214, a selector 216, and a selector 217. The pixel number counter 212 counts the number of words in one line of image data read from the buffer memory 220, and the line number counter 213 counts the number of lines read. The multiplexer 214 generates a buffer memory read address based on the output values of the pixel number counter 212 and the line number counter 213. The selector 216 controls the count of the pixel number counter 212, and the selector 217 controls the count of the line number counter 213.
[0019]
(1-2-2) Configuration of the buffer memory 220
The buffer memory 220 can store (M / N) lines of input image data corresponding to the number of information bits per pixel (N bits) of the input image data and the word width (M bits) of the page memory 300. It has a large capacity. The writing process and the reading process of the image data to the buffer memory 220 are alternately switched by the buffer memory control unit 210.
[0020]
(1-2-3) Configuration of Image Rotation Processing Unit 230
The image rotation processing means 230 rearranges the image data read from the buffer memory 220 based on the rotation angle information S3, and sequentially generates image data for one word that has been rotated at the specified rotation angle. It is. Here, FIG. 4 is a diagram showing a configuration example of the image rotation processing means 220. As shown in this figure, the image rotation processing means 230 includes a selector 217 and a rearrangement buffer 218.
[0021]
(1-2-4) Configuration of memory control means 240
The memory control unit 240 calculates a page memory write address. The page memory write address is an address when the image data generated by the image rotation processing unit 230 is written to the page memory 300. The memory control means 240 is provided with data control means 241. The data control unit 241 controls output when the input size information S2 is not a multiple of (M / N).
[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 page memory 300 is input to the image rotation processing apparatus 200 by handshake control of an image input request signal and an image input permission signal (not shown). The image rotation processing device 200 outputs the image data after the rotation process to the page memory 300 after performing the rotation process on the image data. The image data is output by handshake control of a page memory write request signal and a page memory write permission signal.
[0023]
Hereinafter, the operation of each part of the image rotation processing apparatus 200 will be described. The rotation processing in the image rotation processing apparatus 200 is performed in units of blocks, and one block is composed of image data for (Nx / (W / N)) × (M / N) lines.
First, the input size information S2, the rotation angle information S3, and the start point address information S4 set by the operation control unit 100 are input to the buffer memory control unit 210.
Next, when the image data S <b> 1 is input to the image rotation processing device 200, the buffer memory control unit 210 performs a process of writing data for one block in the buffer memory 220. When the writing is completed, the buffer memory control unit 210 performs a reading process of the written data for one block. When reading from the buffer memory 220 is completed, the read image data for one block is output to the image rotation processing means 230. The image rotation processing unit 230 rearranges the image data, generates one block of image data processed at the specified rotation angle, and outputs it to the memory control unit 240. The memory control unit 240 generates a write address in the page memory 300 that is an output destination, and designates a write address of image data for one block subjected to the rotation processing. These operations are repeated until the image data processing for all the blocks of the image data S1 is completed.
[0024]
(2-1) Operation of buffer memory control means 210
The buffer memory control unit 210 performs buffer memory write address control based on the input size information S2 as described above, and performs processing of writing the image data S1 into the buffer memory 220. When the writing of the data for one block is completed, the buffer memory control unit 210 performs a reading process of the written data for one block. The read process is performed by controlling the buffer memory read address based on the input size information S2 and the rotation angle information S3.
[0025]
The buffer memory control unit 210 starts the writing process of the next block when the reading process of one block is completed. As described above, the buffer memory control unit 210 performs writing and reading alternately.
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 buffer memory 220
The image data writing process to the buffer memory 220 will be described below with reference to FIGS. FIG. 5 is a diagram schematically showing the generation order of buffer memory write addresses. In FIG. 5, the address is represented by (Y: X), the X direction indicates the main scanning direction address, and the Y direction indicates the line direction address.
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 buffer memory 220, the predetermined data is inserted by an amount less than the multiple of 32, so that the image size of the image data S1 is a multiple of 32. Allows processing in units of blocks similar to. Hereinafter, these processes will be described in detail.
[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 pixel number counter 212, and a value obtained by subtracting 1 from 32, which is the number of lines in one block, (line number counter 213). 31) is loaded. When the write enable signal is enabled, the pixel number counter 212 enters the count enable state, and the pixel number counter 212 is counted down by a pulse input of the input write clock signal. Thereafter, when (the number of words in the main scanning direction-1) write clock signals are counted and the value of the pixel number counter 212 becomes 0, the pixel number counter write end signal RC1 is output. When the write end signal RC1 is output, the count value of the line number counter 213 is down-counted, and a value obtained by subtracting 1 from the number of words in the main scanning direction (Nx / 8) is loaded again into the pixel number counter 212. The
[0028]
When the above operations are repeated and the count values of the pixel number counter 212 and the line number counter 213 are both 0, the write end signal RC1 of the pixel number counter 212 and the write end signal RC2 of the line number counter 213 are output. To output a buffer memory write end signal.
[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 pixel number counter 212 is decreased by 1 and generated until (31: 0). Next, the count value of the line number counter 213 is counted down by 1 (30: Nx / 8-1), and the count value of the pixel number counter 212 is decreased by 1 from that (30: 0). . In the same manner, addresses are generated up to (0: 0).
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 buffer memory 220 is (Nx / 8) bytes × 32 lines of image data treated as one block.
[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 data insertion unit 211 in the buffer memory control unit 210 inserts predetermined data by an amount less than a multiple of 32 when the image data S1 is written into the buffer memory 220.
[0031]
Hereinafter, the operation of data insertion processing according to the image rotation angle by the data insertion unit 211 will be described with reference to FIGS. 6, 7, 8, and 9. 6 shows a case where the rotation angle is 0 degree, FIG. 7 shows a case where the rotation angle is 180 degrees, FIG. 8 shows a case where the rotation angle is 90 degrees, and FIG. 9 shows a case where the rotation angle is 270 degrees. It is a figure which shows the position of the predetermined data insertion position with respect to S1, and the insertion data in the image data after rotation. In the figure, the hatched portion indicates the data inserted by the data insertion means 211. In the figure, a and b are positive integers.
[0032]
The size of data inserted by the data insertion unit 211 is the same at each rotation angle, and the data size in the main scanning direction of the input image size information S2 is larger than (32 × a) bits, and (32 × (a + 1)) bits. If it is smaller, data less than (32 × (a + 1)) (hereinafter referred to as A bit) is inserted. Further, when the data size in the sub-scanning direction is larger than (32 × b) lines and smaller than (32 × (b + 1)) lines, data less than (32 × (b + 1)) (hereinafter referred to as B line). Insert.
In this way, the buffer memory control unit 210 performs processing with the size of the image data S1 as (32 × (a + 1) bits × (32 × (b + 1)) lines.
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 image data 1 is shifted by that amount. 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 buffer memory 220.
[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 buffer memory 220.
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 image data 1 is shifted by that amount. Also, predetermined data of the B line is inserted at the rear end in the sub-scanning direction.
[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 pixel number counter 212 of the buffer memory write address generation unit loads ((32 × (a + 1)) / 8-1) and performs a counting operation, and the sub-scanning direction is ((32 × (b + 1)) lines. Minutes will be processed.
[0037]
(2-1-2) Reading process from the buffer memory 220
Next, reading processing from the buffer memory 220 will be described.
When a buffer memory write end signal is output from the buffer memory write address generation unit, reading of image data from the buffer memory 220 is started. The buffer memory control unit 210 performs buffer memory read address control based on the input size information S2 and the rotation angle information S3.
Hereinafter, a process of reading image data from the buffer memory 220 will be described with reference to FIGS. FIG. 10 is a diagram showing the generation order of buffer memory read addresses when the rotation angle is 0 degree or 180 degrees, and FIG. 11 is a diagram showing the generation order of buffer memory read addresses when the rotation angle is 90 degrees or 270 degrees. is there. 10 and 11, the X direction indicates the main scanning direction address, and the Y direction indicates the line direction address. Hereinafter, the operation for each rotation angle will be described.
[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 selector 215 directly outputs a read permission signal to the pixel number counter 212. The selector 216 outputs, to the line number counter 213, a signal obtained by ANDing the read permission signal and the read end signal RC1 output from the pixel number counter 212. Therefore, the pixel counter 212 performs a count operation by inputting a read clock signal when the read permission signal is enabled. On the other hand, the line number counter 213 performs a count operation by pulse input of a read clock signal only during a period in which both the read permission signal and the read end signal RC1 are enabled.
[0039]
When the image data reading process from the buffer memory 220 is started, the pixel number counter 212 is loaded with a value obtained by subtracting 1 from the number of words (Nx / 8) in the main scanning direction, and the line number counter 213 is set to 1. A value (31) obtained by subtracting 1 from 32 which is the number of lines of the block is loaded. When the read permission signal is enabled, the pixel number counter 212 enters the count permission state, and the pixel number counter 212 is counted down by the pulse input of the input read clock signal. Thereafter, when (the number of words in the main scanning direction−1) read clock signals are counted and the value of the pixel number counter 212 becomes 0, the pixel number counter read end signal RC1 is output. When the read end signal RC1 is output, the count value of the line number counter 213 is down-counted, and a value obtained by subtracting 1 from the number of words (Nx / 8) in the main scanning direction is loaded again into the pixel number counter 212. The
[0040]
When the above operations are repeated and the count values of the pixel number counter 212 and the line number counter 213 are both 0, a read end signal RC1 of the pixel number counter 212 and a read end signal RC2 of the line number counter 213 are output. As a result, a buffer memory read end signal is output.
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 pixel number counter 212 is decreased by 1 and generated until (31: 0). Next, the count value of the line number counter 213 is counted down by 1 (30: Nx / 8-1), and the count value of the pixel number counter 212 is decreased by 1 from that (30: 0). . In the same manner, addresses are generated up to (0: 0).
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 selector 215 outputs a signal obtained by ANDing the read permission signal and the read end signal RC <b> 2 output from the line number counter to the pixel number counter 212. The selector 216 directly outputs a read permission signal to the line number counter 213. Therefore, the pixel number counter 212 performs a counting operation by pulse input of the read clock signal only during a period in which both the read permission signal and the read end signal RC2 are enabled. On the other hand, the line number counter 213 performs a counting operation by pulse input of a read clock signal when the read permission signal is enabled.
[0042]
When the image data reading process from the buffer memory 220 is started, the pixel number counter 212 is loaded with a value obtained by subtracting 1 from the number of words (Nx / 8) in the main scanning direction, and the line number counter 213 is set to 1. A value (31) obtained by subtracting 1 from 32 which is the number of lines of the block is loaded. When the read permission signal is enabled, the line number counter 212 enters the count permission state, and the counter is counted down by the pulse input of the input read clock signal. Thereafter, when the number of read clock signals (number of words in the main scanning direction-1) is counted and the value of the line number counter 213 becomes 0, the read end signal RC2 of the line number counter 213 is output. When the readout end signal RC2 is output, the count value of the pixel number counter 212 is down-counted, and a value (31) obtained by subtracting 1 from 32, which is the number of lines in one block, is loaded again into the line number counter 213. The
[0043]
When the above operations are repeated and the count values of the pixel number counter 212 and the line number counter 213 are both 0, a read end signal RC1 of the pixel number counter 212 and a read end signal RC2 of the line number counter 213 are output. As a result, a buffer memory read end signal is output.
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 line number counter 213 is decreased by 1 from that to generate (0: Nx / 8-1). . Next, the count value of the pixel number counter 212 is counted down by 1 (31: Nx / 8-2), and the value of the line number counter 213 is decreased by 1 (0: Nx / 8-2). ). In the same manner, addresses are generated and up to (0: 0).
When the reading of the image data from the buffer memory 220 is completed, the buffer memory control unit 210 outputs the read image data to the image rotation processing unit 230.
[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 rotation processing unit 230 rearranges the image data read from the buffer memory 220 based on the rotation angle information S3 set by the operation control unit 100, and sequentially processes the image data processed at the specified rotation angle. Generate. Here, the read image data has a word width W (= 8) bits as an access unit of the buffer memory 220, and the rotated image data has a word width M (= 32) as an access unit of the page memory 300. ) Bit.
Specifically, the 8-bit word data read from the buffer memory 220 is rearranged according to the rotation angle designated in the rearrangement buffer 218 shown in FIG. 4 and output to the memory control unit 240. That is, 32-bit data expanded on one line of the rearrangement buffer 218 becomes one word in the page memory 300.
[0045]
When the rotation angle is 0 degree or 180 degrees, the image rotation processing unit 230 generates one piece of 32-bit word data using four pieces of 8-bit word data read from the buffer memory 220. When the rotation angle is 90 degrees or 270 degrees, eight 32-bit word data are generated using 32 8-bit word data read from the buffer memory 220.
[0046]
Hereinafter, with reference to FIGS. 4, 12, 13, 14, and 15, image data rearrangement processing in the image rotation processing unit 230 will be described for each rotation angle.
Here, the first line of the rearrangement buffer 218 is 1stWord, the second line is 2ndWord, the first line is 3rdWord. . . . It becomes. Also, the most significant bit of the pixel data in the 8-bit word data is MSB and the least significant bit is LSB. Also, 1stData, 2ndDta, 3rdData, 4thData... Are read in the order in which 8-bit word data is read from the buffer memory 220. . . . Let's say.
[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 rearrangement buffer 218 in the order of 1stData, 2ndDta, 3rdData, 4thData from the upper side of the 32-bit word. In this case, the order of the pixel data in the 8-bit word data is not rearranged. The image rotation processing unit 230 expands the rearrangement buffer 218 so that the MSB is on the upper side of the 32-bit word and the LSB is on the lower side of the 32-bit word.
[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 rearrangement buffer 218 in the order of 4thData, 3rdData, 2ndDta, and 1stData from the lower side of the 32-bit word. In this case, in the 8-bit word data, the order of the pixel data is rearranged so that the LSB is on the upper side of the 32-bit word and the MSB is on the lower side of the 32-bit word. The image rotation processing unit 230 expands the 8-bit word data, in which the order of the pixel data is rearranged, in the rearrangement buffer 218 so that the MSB is on the lower side of the 32-bit word and the upper side of the LSB 32-bit word. To do.
[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 rearrangement buffer 218. That is, 1stWord converts the LSB of 8-bit word data from the upper 1stData, 2ndDta, 3rdData, 4thData. . . The 8th Word includes the MSB of 8-bit word data from the top, 1stData, 2ndDta, 3rdData, 4thData. . . Arranged in order of 32th Data. In this way, eight 32-bit words are expanded in the rearrangement buffer 218. The image rotation processing unit 230 sequentially develops each 8-bit data of 1stData at the top of the rearrangement buffer 218 so that the LSB is at the 1st Word position and the MSB is at the 8th Word position. Similarly, 2ndDta is expanded to the next rank of 1stData, and 32thDta is expanded to the lowest order.
[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 rearrangement buffer 218. That is, 1stWord converts the MSB of 8-bit word data from the upper 32thData, 31thData. . . 3rdData, 2ndDta, and 1stData are arranged in this order, and 8thWord is an 8-bit word data of 1SB from the upper 32thData, 31thData. . . 3rdData, 2ndDta, and 1stData are arranged in this order. The image rotation processing unit 230 sequentially develops each 8-bit data of 1stData at the lowest position of the rearrangement buffer 218 so that the MSB is at the 1st Word position and the LSB is at the 8th Word position. Similarly, 2ndDta is expanded to the next rank of 1stData, and 32thDta is expanded to the top.
As described above, 32-bit image data is generated by the image rotation processing unit 230 and output to the memory control unit 240.
[0051]
(2-3) Operation of memory control means 240
Next, the operation of the memory control unit 240 will be described.
The memory control unit 240 calculates a page memory write address. The image rotation processing is completed by outputting all the image data generated by the image rotation processing means 230 to the page memory 300. Output of the image data after the rotation processing to the page memory 300 is performed by handshake control of a page memory write request signal and a page memory write permission signal. The output image data is written at an address specified by a page memory write address.
[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 memory control unit 240 calculates a page memory write address so that predetermined data is not written to the page memory. Therefore, the case where the input image size is a multiple of 32 and the case where the input image size is not a multiple of 32 will be described separately.
[0053]
(1) Operation when the input image size is a multiple of 32
Hereinafter, the operation of the memory control unit 240 when the input image size information S2 is a multiple of 32 will be described. The memory control unit 240 calculates the page memory write address at each rotation angle as follows.
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 memory control unit 240 when the input image size information S2 is not a multiple of 32 will be described.
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 page memory 300 and controls so that the inserted predetermined data is not output.
Hereinafter, the operation of the memory control unit 240 and the data control unit 241 at each rotation angle will be described.
[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 memory control unit 240 counts up the main scanning direction address from 0 to ((Nx / 32) -1), and the count value is ((Nx / 32) -1). Then, the main scanning 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)). When the main scanning direction address is ((Nx / 32) -1) and the line direction address is ((output paper main scanning direction size / 32) × (Ny-1)), the data control unit 241 performs image rotation processing. An end signal is output, and the output of the rotated image data to the page memory 300 is stopped.
[0060]
When the rotation angle is 180 degrees, the memory control unit 240 counts up the main scanning direction address from 0 to ((Nx / 32) -1), and the count value is ((Nx / 32) -1). Then, the main scanning direction address is reset to 0, (output paper main scanning direction size / 32) is added to the line direction address, and the line number counter of the data control means 241 is counted up. The data control unit 241 outputs the rotated image data from the image rotation processing unit 230 without outputting the rotated image data to the page memory 300 during the period from 0 to (C-1). Discard image data after rotation. The data control unit 241 starts output to the page memory 300 when the value of the line number counter reaches C. Thereafter, the address counting operation is performed until the main scanning direction address becomes ((Nx / 32) -1) and the line direction address becomes ((output sheet main scanning direction size / 32) × ((Ny + C) -1)). The output of the rotated image data to the page memory 300 is repeated.
[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 unit 241 does not output the rotated image data to the page memory 300 during the period of the line direction address from 0 to (C-1), and outputs the rotated image output from the image rotation processing unit 230. Discard the data. 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 + C-1)). When the rotation angle is 270 degrees, from the line direction address 0 to ((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 means 241 does not output the post-rotation image data to the page memory 300 during the period where the line direction address is ((output paper main scanning direction size / 32) × Nx) or more. The post-rotation image data output from is discarded. 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 + C-1)).
[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 memory control unit 240 counts up the main scanning direction address from 0 to (Nx / 32) (= (((Nx + D) / 32) -1). When (Nx / 32) is reached, the main scanning direction address is reset to 0, and (output paper main scanning direction size / 32) is added to the line direction address. Nx / 32), the image data already existing at the corresponding address in the page memory 300 is read, and the insertion data for D pixels in the rotated image data is replaced with the data at the same pixel position in the read image data. Processing is performed, and processing for writing the image data obtained as a result of the replacement processing to the corresponding address of the page memory 300 is performed. Direction address (Nx / 32), is repeated until the line direction address becomes ((output paper main scanning direction size / 32) × (Ny-1)).
[0064]
When the rotation angle is 180 degrees, the memory control unit 240 counts up the main scanning direction address from 0 to (Nx / 32), and when the count value becomes (Nx / 32), the main scanning direction address. Is reset to 0, and (output paper main scanning direction size / 32) is added to the line direction address. When the main scanning direction address is 0, the data control unit 241 reads the image data that already exists at the corresponding address in the page memory 300 and reads the insertion data for D pixels in the rotated image data. Is replaced with data at the same pixel position, and image data obtained as a result of the replacement process is written to a corresponding address in the page memory 300. The above operation is repeated until the main scanning direction address is (Nx / 32) and the line direction address is ((output paper main scanning direction size / 32) × (Ny−1)).
[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 data control unit 241 reads the image data that already exists at the corresponding address in the page memory 300 and reads the insertion data for D pixels in the rotated image data. Is replaced with data at the same pixel position, and image data obtained as a result of the replacement process is written to a corresponding address in the page memory 300. In the above operation, the main scanning direction address is (Ny / 32) (= (((Ny + D) / 32) -1), and the line direction address is ((output paper main scanning direction size / 32) × (Nx-1). ) Repeat until
[0066]
When the rotation angle is 270 degrees, from the line direction address 0 to ((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 (Ny / 32), the data control unit 241 reads image data that already exists at the corresponding address in the page memory 300 and reads insertion data for D pixels in the rotated image data. A process of replacing the data at the same pixel position in the image data is performed, and a process of writing the image data obtained as a result of the replacement process to a corresponding address in the page memory 300 is performed. In the above operation, the main scanning direction address is (Ny / 32) (= (((Ny + D) / 32) -1), and the line direction address is ((output paper main scanning direction size / 32) × (Nx-1). ) Repeat until
By performing the processing described above, image data that has been rotated by a desired rotation angle is developed in the page memory 300.
[0067]
(2-4) Operation when writing rotated image data to an arbitrary address in the page memory 300
Next, a case where image data after rotation processing is written to an arbitrary address in the page memory 300 will be described. In this case, it is assumed that the page memory 300 is capable of writing and reading data in units of pixels.
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 page memory 300 in pixel units. I can't.
[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 page memory 300 Assuming image data that is a multiple of 300 access units M (32 bits)), the data insertion means 211 inserts predetermined data as necessary and performs rotation processing. Then, the memory control unit 240 performs control to write only valid data excluding the inserted data portion into the page memory 300.
[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 page memory 300 in units of pixels. FIG. 17 also shows a method of specifying the start address information S4 of the page memory that outputs the post-rotation image data at each rotation angle.
[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 page memory 300. The offset is a numerical value for indicating the number of pixels of valid data in one word.
As described above, by inserting predetermined data, a word including inserted data that is not written to the page memory 300 and valid data to be written is generated. For example, in FIG. 17, the area surrounded by diagonal lines in the image data after the rotation processing indicates valid data that is less than 32 bits, but a word extending over the area surrounded by the diagonal lines is the insertion data and valid data. A word containing data.
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 page memory 300 in units of pixels will be described below. Specifically, the operation of the data insertion unit 211 when writing the input image data S1 into the buffer memory 220 and the operation of the data control unit 241 when writing the image data after the rotation processing into the page memory 300 will be described.
[0074]
First, the input image size information S2, the rotation angle information S3 set by the operation control unit 100, and the page memory start point address information S4 for outputting the image data after the rotation process are input to the buffer memory control unit 210. The Here, the start address information S4 of the page memory that outputs the image data after the rotation processing includes the base address indicating the address of the 32-bit word that is the access unit of the page memory 300, and the 32-bit address as shown in FIG. It consists of an offset (number of pixels) indicating valid data in a word.
[0075]
The buffer memory control unit 210 uses the method described above based on the input image size information S2, the rotation angle information S3, and the start point address information S4 of the page memory that outputs the image data after the rotation process, in the manner described above. The image size Sx in the main scanning direction of the image data after the rotation processing including is calculated. Based on the obtained Sx value, the input image size information S2, the rotation angle information S3, and the offset value, data insertion processing by the data insertion unit 211 is performed. The operation of data insertion processing at each rotation angle will be described below.
[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 buffer memory 220.
[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 buffer memory 220.
[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 buffer memory 220 for (32-offset) lines is performed. Is completed, the process of writing the input image data S1 to the buffer memory 220 is started. When the processing of all the input image data S1 is completed, predetermined data for (Sx− (Ny + (32−offset))) lines is inserted at the rear end in the sub-scanning direction. Through the above processing, data for Sx lines is written in the buffer memory 220.
[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 buffer memory 220 for the offset line is completed, the input image The process of writing the data S1 to the buffer memory 220 is started. When the processing of all the input image data S1 is completed, predetermined data for (Sx− (Ny + offset)) lines is inserted at the rear end in the sub-scanning direction. Through the above processing, data for Sx lines is written in the buffer memory 220.
[0080]
Next, the operation of the data control unit 241 when writing the image data after the rotation process in the page memory 300 will be described.
The memory control unit 240 receives input image size information S2 set by the operation control unit 100, rotation angle information S3, and page memory start point address information S4 that outputs image data after rotation processing.
In accordance with the input image size information S2 set by the operation control unit 100 and the offset value indicating valid data in the 32-bit word, predetermined data insertion processing is performed by the data insertion unit 211 as described above. . “Inserted data” in FIG. 17 indicates predetermined data inserted by the data inserting means 211. The data control unit 211 performs control to write the rotated image data excluding the “inserted data” into the page memory 300.
[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 data control unit 241 controls writing of rotated image data into the page memory 300 excluding “insert data”.
The write address to the page memory 300 includes 32-bit word address information calculated by the method as described above, mask information calculated by offset, and mask direction indicating which of the MSB side and the LSB side is masked. It is designated by a mask control signal composed of a designation signal (“1” when masking the MSB side and “0” when masking the LSB side). Hereinafter, a method for generating a mask control signal according to the rotation angle will be described.
[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 data 1 and a position of insertion data in the rotated image data when the rotation angle is 0 degrees.
7 is a diagram illustrating a predetermined data insertion position for image data 1 and a position of insertion data in the rotated image data when the rotation angle is 180 degrees. FIG.
FIG. 8 is a diagram illustrating a predetermined data insertion position for image data 1 and a position of insertion data in the rotated image data when the rotation angle is 90 degrees.
FIG. 9 is a diagram illustrating a predetermined data insertion position with respect to image data 1 and a position of insertion data in the rotated image data when the rotation angle is 270 degrees.
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)

入力される画像データに対して90度の整数倍の角度での回転処理を行ってページメモリに書き込む画像処理装置において、
入力画像のサイズおよび回転角度を設定する動作制御手段と、
入力された画像データを、前記ページメモリのワード単位に応じた所定の走査ライン分ずつ一時的に保持して出力するバッファメモリと、
前記動作制御手段によって設定された前記入力画像データの境界が、主走査方向およびライン方向において前記ページメモリのワードの区切りに一致するように、前記入力画像データに対し必要数に応じた所定のデータを挿入し、かつ、その挿入位置が前記動作制御手段の設定した回転角度に対応する位置になるように制御するデータ挿入手段と、
前記バッファメモリから読み出された前記入力画像および前記所定のデータを並び替えることによって回転処理を行う画像回転処理手段と、
前記所定のデータおよび前記入力画像を、前記動作制御手段によって設定されたサイズおよび回転角度に応じて前記バッファメモリへ書き込むとともに、読み出すバッファメモリ制御手段と、
前記回転処理手段によって回転処理された前記入力画像を順次読み出して前記ページメモリ上に展開するメモリ制御手段とを備え、
前記メモリ制御手段は、合成または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記載の画像処理装置。The memory control unit temporarily reads the original data in the corresponding position of the page memory for words in which the predetermined data and the input image are mixed in the processing result of the image rotation processing unit. the predetermined data, the predetermined data and the original data with replacement by an image processing apparatus according to claim 1 Symbol placement and writes the same pixel position. 前記ページメモリとして、画素単位でデータの書き込み、および読み出しができるものを用い、
前記メモリ制御手段は、前記所定のデータが含まれるワードを前記ページメモリに展開するときに、前記所定のデータを除去してから展開することを特徴とする請求項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.
入力される画像データに対して90度の整数倍の角度での回転処理を行ってページメモリに書き込む画像処理装置によって実行される画像処理方法であって、An image processing method executed by 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 image data in a 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記載の画像処理In the expansion step, for the word in which the predetermined data and the input image are mixed in the result of the rotation process, the original data at the corresponding position in the page memory is read once, and the predetermined data 5. The image processing according to claim 4, wherein the data is written by replacing the original data at the same pixel position as the predetermined data. 方法。Method. 前記ページメモリとして、画素単位でデータの書き込み、および読み出しができるものを用い、As the page memory, one that can write and read data in pixel units,
前記展開ステップにおいて、前記所定のデータが含まれるワードを前記ページメモリに展開するときに、前記所定のデータを除去してから展開することを特徴とする請求項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.
JP02815897A 1997-02-12 1997-02-12 Image processing device Expired - Fee Related JP3629873B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000182041A (en) * 1998-12-18 2000-06-30 Nec Eng Ltd Longitudinal/lateral conversion processor

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