JP3629873B2 - 画像処理装置 - Google Patents

画像処理装置 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
English (en)
Other versions
JPH10222656A (ja
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/ja
Publication of JPH10222656A publication Critical patent/JPH10222656A/ja
Application granted granted Critical
Publication of JP3629873B2 publication Critical patent/JP3629873B2/ja
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 出力部

Claims (6)

  1. 入力される画像データに対して90度の整数倍の角度での回転処理を行ってページメモリに書き込む画像処理装置において、
    入力画像のサイズおよび回転角度を設定する動作制御手段と、
    入力された画像データを、前記ページメモリのワード単位に応じた所定の走査ライン分ずつ一時的に保持して出力するバッファメモリと、
    前記動作制御手段によって設定された前記入力画像データの境界が、主走査方向およびライン方向において前記ページメモリのワードの区切りに一致するように、前記入力画像データに対し必要数に応じた所定のデータを挿入し、かつ、その挿入位置が前記動作制御手段の設定した回転角度に対応する位置になるように制御するデータ挿入手段と、
    前記バッファメモリから読み出された前記入力画像および前記所定のデータを並び替えることによって回転処理を行う画像回転処理手段と、
    前記所定のデータおよび前記入力画像を、前記動作制御手段によって設定されたサイズおよび回転角度に応じて前記バッファメモリへ書き込むとともに、読み出すバッファメモリ制御手段と、
    前記回転処理手段によって回転処理された前記入力画像を順次読み出して前記ページメモリ上に展開するメモリ制御手段とを備え、
    前記メモリ制御手段は、合成またはNアップといった編集処理を行う場合に、前記画像回転処理手段の処理結果中、前記所定のデータをページメモリに出力しない制御を行う出力データ制御手段を備えることを特徴とする画像処理装置。
  2. 前記メモリ制御手段は、前記画像回転処理手段の処理結果中、前記所定のデータと前記入力画像とが混在しているワードについては、前記ページメモリの対応する位置にあるもとのデータを一旦読み出し、前記所定のデータを、この所定のデータと同一画素位置の前記もとのデータと入れ替えて書き込むことを特徴とする請求項1記載の画像処理装置。
  3. 前記ページメモリとして、画素単位でデータの書き込み、および読み出しができるものを用い、
    前記メモリ制御手段は、前記所定のデータが含まれるワードを前記ページメモリに展開するときに、前記所定のデータを除去してから展開することを特徴とする請求項1記載の画像処理装置。
  4. 入力される画像データに対して90度の整数倍の角度での回転処理を行ってページメモリに書き込む画像処理装置によって実行される画像処理方法であって、
    入力画像のサイズおよび回転角度を設定するステップと、
    入力された画像データを、その入力画像データの境界が主走査方向およびライン方向において前記ページメモリのワードの区切りに一致するように、その入力画像データに対し必要数に応じた所定のデータを、設定された回転角度に対応する挿入位置に挿入するステップと、
    前記入力画像データ及び前記所定のデータを、ワード単位に応じた所定の走査ライン分ずつ、設定されたサイズおよび回転角度に応じて前記バッファメモリへ書き込み、読み出すステップと、
    前記バッファメモリから読み出された前記入力画像データおよび前記所定のデータを並び替えることによって回転処理を行うステップと、
    回転処理された前記入力画像データを順次読み出して前記ページメモリ上に展開すると共に、合成またはNアップといった編集処理を行う場合には、前記回転処理の結果中、前記所定のデータを前記ページメモリに出力しない展開ステップと
    を備えることを特徴とする画像処理方法。
  5. 前記展開ステップにおいて、前記回転処理の結果中、前記所定のデータと前記入力画像とが混在しているワードについては、前記ページメモリの対応する位置にあるもとのデータを一旦読み出し、前記所定のデータを、この所定のデータと同一画素位置の前記もとのデータと入れ替えて書き込むことを特徴とする請求項4記載の画像処理 方法。
  6. 前記ページメモリとして、画素単位でデータの書き込み、および読み出しができるものを用い、
    前記展開ステップにおいて、前記所定のデータが含まれるワードを前記ページメモリに展開するときに、前記所定のデータを除去してから展開することを特徴とする請求項4記載の画像処理方法。
JP02815897A 1997-02-12 1997-02-12 画像処理装置 Expired - Fee Related JP3629873B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02815897A JP3629873B2 (ja) 1997-02-12 1997-02-12 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02815897A JP3629873B2 (ja) 1997-02-12 1997-02-12 画像処理装置

Publications (2)

Publication Number Publication Date
JPH10222656A JPH10222656A (ja) 1998-08-21
JP3629873B2 true JP3629873B2 (ja) 2005-03-16

Family

ID=12240957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02815897A Expired - Fee Related JP3629873B2 (ja) 1997-02-12 1997-02-12 画像処理装置

Country Status (1)

Country Link
JP (1) JP3629873B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000182041A (ja) * 1998-12-18 2000-06-30 Nec Eng Ltd 縦横変換処理装置

Also Published As

Publication number Publication date
JPH10222656A (ja) 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
US5426733A (en) Image rotation apparatus capable of rotating image data of different numbers of pixel bits
JPS6085680A (ja) 画像処理方法
JP3166447B2 (ja) 画像処理装置及び画像処理方法
JP3971535B2 (ja) Simd型プロセッサ
EP0239119B1 (en) Information transferring method and apparatus of transferring information from one memory area to another memory area
US5771105A (en) High speed system for grey level image scaling, threshold matrix alignment and tiling, and creation of a binary half-tone image
JP3629873B2 (ja) 画像処理装置
JP4031996B2 (ja) メモリ装置を備えたディジタル・スチル・カメラ
US5052046A (en) Image processing method and apparatus therefor
JPH11306343A (ja) 2次元データ回転処理装置
JP3016372B2 (ja) 画像処理装置
JP4372371B2 (ja) Simd型マイクロプロセッサにおける間引き装置、及び拡大装置
JPH09231347A (ja) 画像処理装置
JP2005109856A (ja) 画像回転回路及びそれを有する画像処理装置
JPH05113928A (ja) 画像メモリ装置
JP2007072867A (ja) 画像メモリおよび画像処理システム
JPH09247396A (ja) 画像処理装置及び該装置における画像処理方法
JP2770516B2 (ja) 図形描画方式
JPH061449B2 (ja) 画像編集用イメ−ジメモリ
JPH0816768A (ja) 画像回転処理装置
JPH0420224B2 (ja)
JP4413905B2 (ja) Simd型プロセッサ
JPS6081660A (ja) デ−タ転送方式

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