説明

画像処理装置および画像形成装置

【課題】CPU処理より高速で、また、小容量メモリを用いて画像回転処理を行うことができる、低価格の画像処理装置を提供する。
【解決手段】画像データを交互に入力して出力する対となるメモリと、これらのメモリから出力される画像データを交互に入力し出力する対となるメモリと、回転角度値に基づき元画像データを回転させるためのアドレスを生成し各メモリにそれぞれに出力するアドレス生成回路とを有し、元画像データを分割して順番に対となるメモリに交互に入力し該メモリから交互に出力されるデータを、前記生成されたアドレスを使用して後続する対となるメモリに入力した後出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関し、特に、画像に対して回転処理を行う画像処理装置およびこれを用いる画像形成装置に関する。
【背景技術】
【0002】
特許文献1に記載の発明では、入力部と出力部に大容量メモリを使用して、以下の処理順序で入力画像の回転処理を行う画像処理装置。まず、第1のメモリ(大容量)に画像データを入力する。次に、第1のメモリから一部の画像データを出力して第2のメモリ(小容量)に入力し、第2のメモリ上で画像の回転処理を行う。更に、処理後の画像データを第2のメモリから出力して第3のメモリ(大容量)に入力する。この処理を第1のメモリ内の全画像データに対して繰返し処理して、第1のメモリに入力した画像の回転処理後の画像データを第3のメモリに入力する。最後に、第3のメモリ内の画像データを出力する技術が開示されている。
【0003】
また、特許文献2には、入力画像の方向や傾きを判別し、画像の傾きを補正する画像処理方法が開示されている。この方法は、コンピュータプログラムとして実現されており、画像の回転処理はCPU(Central Processing Unit)で行う技術である。
【特許文献1】特開2006−005499号公報
【特許文献2】特開2003−259111号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1記載の発明では、入力部と出力部に大容量メモリを使用しているので、装置が高価となる難点がある。また、特許文献2記載の発明では、CPUで画像の回転処理を行っているので、処理が低速であるとの難点がある。
【0005】
本発明は、上記実情を考慮してなされたものであり、CPU処理より高速で、また、小容量メモリを用いて画像回転処理を行うことができる、低価格の画像処理装置を提供する事を目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、画像データを交互に入力して出力する対となる第1と第2のメモリと、前記第1と第2のメモリから出力される画像データを交互に入力し出力する対となる第3と第4のメモリと、入力された所定の角度値に基づき、元画像データを回転させるためのアドレスを生成して前記第1乃至第4のメモリにそれぞれに出力するアドレス生成回路とを有し、入力画像保持手段によって保持された元画像データを分割して順番に前記第1と第2のメモリに交互に入力し、前記第1と第2のメモリから交互にデータを出力し、これら出力データを前記アドレス生成回路から出力されたアドレスを使用して、前記第3と第4のメモリに交互に入力し、前記第3と第4のメモリから交互にデータを出力する、ことにより前記画像データを回転させた画像データを得る画像処理装置であることを特徴とする。
【0007】
また、請求項2に記載の発明は、請求項1に記載の画像処理装置において、注目画素の周辺の8画素を含む9画素それぞれのデータを保持する手段と、前記9画素から注目画素の回転後のアドレスに近い3画素を選択出力する手段と、前記3画素と注目画素との4画素から補間データを演算出力する手段と、からなる補間回路を更に有し、前記第1と第2のメモリからの出力データを前記補間回路に入力し、該補間回路からの出力データを前記第3と第4のメモリに入力することを特徴とする。
【0008】
請求項3に記載の発明は、画像データを交互に入力して出力する対となる第1と第2のメモリと、前記第1と第2のメモリから出力される画像データを交互に入力し出力する対となる第5と第6のメモリと、前記第5と第6のメモリから出力される画像データを交互に入力し出力する対となる第3と第4のメモリと、入力された所定の角度値に基づき、元画像データを回転させるためのアドレスを生成して前記第1乃至第4のメモリに出力するアドレス生成回路とを有し、入力画像保持手段によって保持された元画像データを分割して順番に前記第1と第2のメモリに交互に入力し、前記第1と第2のメモリから交互にデータを出力し、これら出力データを前記アドレス生成回路から出力されたアドレスを使用して、前記第3と第4のメモリに交互に入力し、前記第3と第4のメモリから交互にデータを出力し、これら出力データを、前記第5と第6のメモリに交互に入力し、前記第5と第6のメモリから交互にデータを出力する、ことを特徴とする。
【0009】
請求項4に記載の発明は、請求項3に記載の画像処理装置において、注目画素の周辺の8画素を含む9画素を保持する手段と、前記9画素から注目画素の回転後のアドレスに近い3画素を選択出力する手段と、前記3画素と注目画素との4画素から補間データを演算出力する手段とからなる補間回路を更に有し、前記第1と第2のメモリからの出力データを前記補間回路に入力し、該補間回路からの出力データを前記第3と第4のメモリに入力することを特徴とする。
【0010】
請求項5に記載の発明は、画像データが入力される第1の先入れ先出し型メモリと、前記第1の先入れ先出し型メモリから出力される画像データを交互に入力し出力する対となる第1と第2のメモリと、入力された所定の角度値に基づき、元画像データを回転させるためのアドレスを生成して前記第1と第2のメモリに出力するアドレス生成回路と、前記第1と第2のメモリから交互に出力されるデータを入力する第2の先入れ先出し型メモリとを有し、入力画像保持手段によって保持された元画像データを、分割して順番に、前記第1の先入れ先出し型メモリに入力し、前記第1の先入れ先出し型メモリからの出力データを前記アドレス生成回路から出力されたアドレスを使用して、前記第1と第2のメモリに交互に入力し、前記第1と第2のメモリから交互にデータを出力し前記第2の先入れ先出し型メモリに入力し、該第2の先入れ先出し型メモリから出力する、ことを特徴とする。
【0011】
請求項6に記載の発明は、請求項5に記載の画像処理装置において、注目画素の周辺の8画素を含む9画素それぞれのデータを保持する手段と、前記9画素から注目画素の回転後のアドレスに近い3画素を選択出力する手段と、前記3画素と注目画素との4画素から補間データを演算出力する手段とからなる補間回路を更に有し、前記第1の先入れ先出し型メモリからの出力データを前記補間回路に入力し、該補間回路からの出力データを前記第1と第2のメモリに入力することを特徴とする。
【0012】
請求項7に記載の発明は、画像形成装置原稿をスキャンして画像データに変換する画像入力手段と、画像データを用紙に印刷する画像形成手段と、スキャン画像における原稿や画像の傾きを検出する手段と、請求項1乃至6の何れか1つに記載の画像処理装置と、を有する画像形成装置であることを特徴とする。
【発明の効果】
【0013】
本発明によれば、小容量メモリによって画像回転処理を行う、低価格で高速な画像処理装置を提供することができる。補間回路を備えたものでは、特に、画像回転による画質の劣化を防止することが可能になっている。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照して、本発明の実施形態を詳細に説明する。図1に本発明に係る実施形態としての画像処理装置を含む画像形成装置の構成の概要図を示す。本実施の形態は、複写機、プリンタ、複合機(複写機、プリンタ、スキャナ、ファクシミリ装置の機能を有する機器)等における画像形成装置として適用可能である。図示した画像形成装置100は、書類を光学的に読取り、画像データに変換する画像入力手段としてのスキャナ1、画像データを用紙に印刷して出力する画像出力手段としてのプリンタ2、スキャナ2から出力された画像データや、本装置全体の動作を制御するコンピュータプログラムを記憶するハードディスク装置3、本装置をユーザーが操作するための操作部4(ボタンやタッチパネル、文字や画像を表示するための液晶表示装置からなる)、本装置の動作を制御するためのCPU5(Central Processing Unit)、CPU5がアクセスするデータやコンピュータプログラムを一時的に蓄積するとともに画像蓄積手段として機能する主メモリ6、そして、画像データの回転処理を行う画像回転手段としての画像回転処理部10を含み構成され、これらが各種データをやり取りするためのデータバス7を介して接続されている。
【0015】
画像回転処理部10にて、スキャン画像における原稿や画像の傾きを補正するためには、まず原稿や画像の傾き角αを検出する。検出方法は、例えば、前掲の特許文献1にても開示されている既知の以下の方法のいずれかを使用すれば良い。第1の方法では、CPU5で、原稿の4つの頂点座標を検出し、これらの頂点座標の位置関係から検出する。或いは、第2の方法として、操作部4の液晶表示装置に原稿のプリスキャン画像を表示し、これをもとにユーザーが傾き角を読取り、傾きを補正するための画像の回転角αとして入力し、CPU5が所定の入力処理を行って、回転角αを画像回転処理部10にデータバス7を経由して入力する。
【0016】
[第1実施例]
画像回転処理部の第1の実施例の構成を図2のブロック図に示す。この画像回転処理部10Aは、データバス7の双方向データを入力データと出力データに分離するバッファ回路11、入力データを交互に入力する1対の第1メモリ12Aと第2メモリ12B、第1メモリ12Aと第2メモリ12Bの出力データを選択して出力する第1データセレクタ13、第1データセレクタから出力されたデータを交互に入力する1対の第3メモリ14Aと第4メモリ14B、第3メモリ14Aと第4メモリ14Bの出力データを選択して出力する第2データセレクタ15、第1メモリ12Aと第2メモリ12Bの書込みアドレスを生成する第1書込みアドレス生成回路16、第1メモリ12Aと第2メモリ12Bの読出しアドレスを生成する第1読出しアドレス生成回路17、回転角を入力し画像を回転させた後のアドレスを生成し、第3メモリ14Aと第4メモリ14Bの書込みアドレスとして出力する第2書込みアドレス生成回路18(図22参照)、第3メモリ14Aと第4メモリ14Bの読出しアドレスを生成する第2読出しアドレス生成回路19、第1メモリ12Aと第2メモリ12Bおよび第3メモリ14Aと第4メモリ14Bの入出力動作に対応してアドレスを切替えるアドレスセレクタ21〜24(第1アドレスセレクタ〜第4アドレスセレクタ)と、各アドレスセレクタと各データセレクタの入力データの切替え、各メモリのリードライト制御、バッファ回路のデータ入出力の切替えを行う制御回路25とから成る。なお、回転角のデータαは、画像データとは別にデータバス経由で画像回転処理部10に入力されて、第2書込みアドレス生成回路に入力されるが、そのための回路は図示を省略した。
【0017】
本実施例によって画像の回転処理を行う時の入力画像と出力画像、および第1メモリ12A〜第4メモリ14Bへ入出力する画像データとの関係を図3に示す。説明を簡単にするために、ここでは入力画像を副走査方向に5分割(A、B、C、D、E)して処理する場合を説明する。入力画像は図1のメモリに記憶されている。ここでは、1画素のデータは8ビット(1バイト)とし、バイト単位のアドレスを割り当ててメモリに記憶する。モノクロ画像の場合は、入力画像は1面分の処理であるが、カラー画像の場合はR(赤)、G(緑)、B(青)の3面分を順に処理する。5分割した画像データはそれぞれ主走査方向の順番に画素データを読み出し、データバス7を経由して、第1メモリ12Aと第2メモリ12Bに交互に入力する。
【0018】
図1においてメモリと画像回転処理部10との間で、データバス7を経由して画像データを転送する場合、一般に画素データを1個ずつ転送するよりも、例えば、64バイトや128バイト等のように、大量のデータを連続転送する方が、高速に転送できる。そのため、画像回転処理部10のデータ入力部とデータ出力部にはデータを一時的に保存するためのメモリが必要になる。第1メモリ12Aと第2メモリ12Bおよび第3メモリ14Aと第4メモリ14Bはこの役割も果たしている。
【0019】
特に、データ入力用の1対の第1メモリ12Aと第2メモリ12B、及びデータ出力用の1対の第3メモリ14Aと第4メモリ14Bとを使用する事で、データバスからのデータ入力と、データバスへのデータ出力とを連続的に行えるので、処理を効率的かつ高速化できる。図4に第1メモリ12A、第2メモリ12Bの内部構成を、図5に第3メモリ14A、第4メモリ14Bの内部構成を示す。
【0020】
図4において、メモリ部へのデータ入力(書込み)は16ビットデータ単位で行う。データ出力は、メモリ部から出力された16ビットデータの上位8ビットと下位8ビットを個別のアドレスのデータとして出力するために、データセレクタを経由して出力する。データセレクタの入力データの切替えは、8ビットデータ単位の読出しアドレスの下位1ビットデータを使用する。これにより、メモリ部へのデータ入力(書込み)は16ビットデータ単位で行え、データ出力(読出し)は8ビットデータ単位で行える。
【0021】
図5においては、メモリ部へのデータ入力(書込み)は8ビットデータ単位で行い、データ出力(読出し)は16ビットデータ単位で行う。入出力データのビット数が16ビットであり、8ビットデータ単位でデータの書込みが行えるメモリ部を使用する。8ビットの入力データの各ビットの信号線を2つに分岐し、入力の8ビットデータを上位8ビットデータと下位8ビットデータに配置した16ビットデータにする。メモリ部に入力する16ビットデータの上位8ビットデータと下位8ビットデータのどちらのデータをメモリ部に書込むかは、8ビットデータ単位の書込みアドレスで判別する。例えば、8ビットデータ単位の書込みアドレスが偶数であれば下位8ビットデータを、奇数であれば上位8ビットデータをメモリ部に書込む。これにより、メモリ部へのデータ入力(書込み)は8ビットデータ単位で行え、データ出力(読出し)は16ビットデータ単位で行える。
【0022】
図2における第1メモリ12A、第2メモリ12B及び第3メモリ14A、4を図4、図5に示した構成にする事により、画像回転処理は8ビットデータ単位で処理するが、データバス上では16ビットデータ単位でデータ転送を行える。これにより、データバス7からのデータの入出力(メモリへの書込みと読出し)時間は、画像回転処理を行う時の8ビットデータ単位のメモリへの書込みと読出し時間の半分になる。これにより、画像データの入出力と回転処理とを同時進行でき、効率的な高速処理が可能になる。
【0023】
以下に、図3を用いて、画像の回転処理を行う時の第1メモリ12A〜第4メモリ14Bへの画像データの入出力方法を説明する。
【0024】
まず、画像データAを第1メモリ12Aに入力する。その後、画像データBを第2メモリ12Bに入力する。これらの入力には第1書込みアドレス生成回路が出力するアドレスを使用する。第2メモリ12Bへの入力と並行して、第1読出しアドレス生成回路が出力するアドレスを使用して、第1メモリ12Aに入力された画像データAを第1メモリ12Aから主走査方向の順番で出力し、第2書込みアドレス生成回路から出力される回転後のアドレスを使用して第3メモリ14Aに入力する。この時、画像データAの一部であるA1は、回転後の出力画像からはみ出る部分であるため、第3メモリ14Aには入力しない。そして、A2の部分を第3メモリ14Aに、A3の部分を第4メモリ14Bに入力する。A1以外にも、画像の回転によって出力画像からはみ出る部分があるが、これも第3メモリ14Aと第4メモリ14Bには入力しない。この時点で、第1メモリ12Aに入力した画像データAは全て出力済みになるので、画像データCを第1メモリ12Aに入力する。
【0025】
次に、第1メモリ12Aへの入力と並行して第2メモリ12Bに入力された画像データBを第2メモリ12Bから主走査方向の順番で出力し、第2書込みアドレス生成回路から出力される回転後のアドレスを使用して、B1の部分を第3メモリ14Aに、B2の部分を第4メモリ14Bに入力する。B1の部分を第3メモリ14Aに入力し終えた時点で、第2読出しアドレス生成回路が出力するアドレスを使用して第3メモリ14Aのデータ出力を開始する。第3メモリ14Aのデータ出力終了後に、B3の部分を第3メモリ14Aに入力する。この時点で、第2メモリ12Bに入力した画像データBは全て出力済みになるので、画像データDを第2メモリ12Bに入力する。以下、この処理を順次繰返す。
【0026】
このときの、各メモリのデータの入出力(書込みと読出し)のタイミングチャートを図6に示した。画像データA2とB1を第3メモリ14Aに入力し終えたら、第3メモリ14Aのデータを出力する。画像データA3とB2とC1を第4メモリ14Bに入力し終えたら、第4メモリ14Bのデータを出力する。タイミングチャートでは、処理動作を分かり易くするために、A2、A3、B1、B2等の画像データの書込みを一まとめにして行っているように記載してある。しかし、実際には、第1メモリ12Aと2の画像データは主走査方向の順番で読み出しているので、主走査方向の1列分(以後、これを1ライン分と呼ぶ事がある。)のデータがA2とA3になったり、B1とB2になったりするため、A2とA3のデータの書込みやB1とB2のデータの書込みは、1ライン分のデータの書込み時間内に行っている。
【0027】
このようにして、画像回転処理部10の入力段部の1対のメモリに交互に分割した画像データを順番に入力し、出力部の1対のメモリに交互に回転後のアドレスを使用して画像データを入力して出力することで、回転後の出力画像を分割して出力できる。出力画像データは、図1の主メモリ6に記憶される。
【0028】
図7に図2中の制御回路25に関わる各制御信号の制御タイミングを示す。
図7について詳述する。以下に、図2中および図7中に示した各制御信号の符号と機能をまとめて記す。
a1:アドレスセレクタ1の切替え信号
a2:アドレスセレクタ2の切替え信号
a3:アドレスセレクタ3の切替え信号
a4:アドレスセレクタ4の切替え信号
d1:第1データセレクタの切替え信号
d2:第2データセレクタの切替え信号
m1:第1メモリ12Aのリードライト切替え信号
m2:第2メモリ12Bのリードライト切替え信号
m3:第3メモリ14Aのリードライト切替え信号
m4:第4メモリ14Bのリードライト切替え信号
bsel:バッファ回路のデータ入出力の切替え信号
【0029】
図6のタイミングチャートに示した第1メモリ12A、第2メモリ12B、第3メモリ14A、第4メモリ14Bの動作に合わせて、アドレスの切替えと出力データの切替えとリードライト切替えを行っている。特に、バッファ回路11のデータ入出力の切替え信号(bsel)の入力と出力の切替え動作と、画像回転処理のための第1メモリ12Aと第2メモリ12Bからデータを読出し第3メモリ14Aと第4メモリ14Bに書込む動作とが同時進行している点が固有の特徴となっている。これにより、効率的な高速処理が実現されている。
【0030】
図8に画像回転後のアドレス生成方法を示す。回転前の入力画像(元画像データ)は、主走査方向はW画素、副走査方向はLラインから成る画像とする。主走査方向をx軸、副走査方向をy軸とし、回転前のある画素の座標を(x,y)とする。図の回転前画像の左上を原点(0、0)とする。座標は画素データを記憶しているメモリのアドレスであるため、図において原点の右側がx>0、左側がx<0の領域とし、原点の上側がy<0、下側がy>0の領域とする。
【0031】
原点を中心として、角度θだけ画像を図のように回転させ、更に画像の中心座標が回転前後で概略一致するように平行移動させた後のある画素の座標を(X,Y)とすると、回転前後の座標(x,y)と(X,Y)には次式の関係がある。
X = xcosθ - ysinθ + W' (式1)
Y = xsinθ + ycosθ - L' (式2)
ただし、
W' = ( L/2 )sinθ (式3)
L' = ( W/2 )sinθ (式4)
(X,Y)は、出力画像全体の座標であるので、これを出力部のメモリに対応するように、分割したアドレスを生成する。
【0032】
x及びXは1ライン上の画素番号を示し、y及びYはライン番号を示す。図2における第2書込みアドレス生成回路の内部構成を、図9にブロック図で示す。図示回路は、回転前アドレス(x、y)を生成する回転前アドレス生成回路(カウンタ回路で実現できる)、回転角θをcosθとsinθに変換するテーブル(メモリで実現できる。)、乗算器、加算器、減算器からなり、入力された回転角θと、クロック信号に従って順に生成される回転前アドレス(x、y)に基づいて、式1と式2に示されたXとYを出力する。図中に各部に生成する値を記してある。
【0033】
本実施例では、画像を副走査方向に分割してメモリに入力しているので、主操作方向のアドレス(X:画素番号)は、そのまま分割メモリ(第3メモリ14Aと第4メモリ14B)の主操作方向のアドレスに使用する。分割メモリ(第3メモリ14Aと第4メモリ14B)の副走査方向のアドレス(Y:ライン番号)は以下のように生成する。
【0034】
例えば、図10に示すように、回転後のアドレスのライン番号(Y)が16ビットのデータであり、分割メモリのライン数が1024ラインであるとする。下位10ビットを第3メモリ14Aと第4メモリ14Bの副走査方向のアドレスに使用する。そして、第11ビットを(第2書込みアドレス生成回路からの)第3メモリ14Aと第4メモリ14Bの切替え信号として使用する。例えば、第11ビットが「0」であれば第3メモリ14Aを、「1」であれば第4メモリ14Bを選択する。これにより、Y(回転後のライン番号)の増加に伴い、自動的に第3メモリ14Aと第4メモリ14Bとを交互に切替えられる。
【0035】
このように、本実施例では、分割メモリが少なくとも主操作方向の画素データの容量を備え、画像を副走査方向に分割しているので、分割メモリのアドレス生成やメモリの切替えを容易に行うことができている。
【0036】
画素番号:Xが負になったりWを超えたり、画素番号:Yが負になったりLを超えたら、その画素は出力画像からはみ出すことになるので、出力部のメモリには入力しない(反映されない)。他方、回転により出力画像に画素データが無い部分が生じる。従って、この部分にも違和感を生じさせない画素データを入力する(補填)ために、図11に示すように出力部のメモリ(第3メモリ14Aと第4メモリ14B)の所定の領域に特定の画素データを書込んでおくと良い。例えば、白、黒、グレー、カラー画像ならば特定の色、縞模様や格子模様、水玉模様等の特定の画像データパターン等を書込んでおく。又、入力画像の第1ラインや最終ライン、各ラインの第1画素や最終画素を事前に読取って、入力画像の第1ラインのデータは図の書込み領域の上部に、最終ラインのデータは図の書込み領域の下部に、各ラインの第1画素データは図の書込み領域の左部に、最終画素のデータは図の書込み領域の右部に書込んでも良い。これらにより、出力画像の周辺の画像データの無い部分の違和感を排除できる。
【0037】
以上説明したように第1実施例の画像回転処理部10を備えた画像処理装置では、入力部と出力部にデータを交互に入出力する1対の小容量メモリを使用し、画像データを分割して順番に入力部のメモリに入力し、画像を別途得られた所定の角度値に対応して回転させたアドレスを生成して、出力部のメモリに入力しているので、小容量メモリを用いて、既知のCPU処理の場合に比べてより高速に画像回転処理を行う画像処理装置を低価格で実現できる。
【0038】
[第2実施例]
次に、図12に画像回転処理部の第2の実施例を示す。この画像回転処理部10Bは、第1の実施例に相当する構成を略全て備えた上で、更に、第1データセレクタ13と、第3メモリ14A並びに第4メモリ14Bの間に補間回路30を挿入した構成となっている。前出の式1と式2に示した座標変換計算結果は、画素データを記憶しているメモリのアドレスであるため整数値に丸められている。10進数であれば小数点未満4捨5入を行い、2進数であれば小数点未満0捨1入を行う。このため、回転後の画素データの位置が、出力画像におけるアドレスとずれる場合も少なくない。これにより、例えば、入力画像の直線が、回転後の出力画像では階段状の線になる等の画質の劣化が発生する。これを防止するために、第2の実施例では、最寄りの4画素を使用して、出力画像におけるアドレス上の画素データを補間演算によって生成する補間回路30を挿入している。
【0039】
図13に、注目画素の回転後の位置(丸める前の計算結果の座標)と、丸めた後の回転後のアドレスとの位置関係によって、補間演算に使用する最寄りの4画素の変化の例を示す。丸め方に応じて位置関係は以下の4通りがある。なお、ここでは原稿の傾き補正のための画像回転を目的としているため、画像の回転角度は小さいと仮定し、回転角度は±45度未満とする。
【0040】
図13の(a)〜(d)は、それぞれ、
(a)………Xの小数点未満切り捨てとYの小数点未満切り捨て
(b)………Xの小数点未満切り上げとYの小数点未満切り捨て
(c)………Xの小数点未満切り捨てとYの小数点未満切り上げ
(d)………Xの小数点未満切り上げとYの小数点未満切り上げ
の場合を示している。
【0041】
図に示すように、注目画素を中心にして周囲の8画素を含む9画素に1から9の番号を付けると、上記のそれぞれの場合の最寄りの4画素は以下のようになる。
(a)………1、2、4、5
(b)………2、3、5、6
(c)………4、5、7、8
(d)………5、6、8、9
【0042】
また、入力画像から上記の9画素を抽出する場合は、画像の周辺部においては、注目画素の隣接画素が無い場合がある。入力画像の周辺部における9画素の抽出方法を図14に示す。図に示すように、注目画素がライン上の第1画素か、最終画素か、それ以外の中間画素か、或いは注目画素が第1ライン上の画素か、最終ライン上の画素か、それ以外の中間ライン上の画素かによって、9通りの処理に分かれる。この方法では、中間ライン中間画素の場合(図14中(5))を除き、画像の外端部の画素の補正にあたっては、画像の周辺部の画素データを1画素分外側に複製して9画素を抽出する。
【0043】
図13と図14に示した処理方法を実現した補間回路の構成の一例を図15にブロック図で示す。図15の補間回路30では、画素データを1個(1バイト)ずつ入力し、遅延回路31(31a〜31f)と1ライン分のメモリ32(32a,32b)によって3画素×3画素のマトリクス配置の9画素を保持する。図中のデータセレクタ33に、座標変換計算の丸め方によって図13に示した4通りの何れに該当するかを示す3画素選択条件データと、注目画素が図14に示した9通りの何れに該当するかを示す周辺処理選択条件データを入力して、注目画素以外の3画素を選択して出力し、補間演算回路34に入力する。注目画素データ5は、常に補間演算に使用するため、データセレクタを通さずに補間演算回路に入力する。このようにして補間演算に必要な最寄りの4画素を補間演算回路に入力する。
【0044】
以下に、補間演算回路での処理を説明する。図16に、補間演算時に使用する4画素(P1、P2、P3、P4)と、補間演算によって生成する出力画素(N)との位置関係を示す。図では、注目画素をP1とする。注目画素の回転後の位置(丸める前の計算結果の座標)と注目画素の回転後のアドレス(丸めた後の計算結果の座標)との差が丸め誤差である。主走査方向の丸め誤差をα、副走査方向の丸め誤差をβとする。
【0045】
回転後の4画素から、補間演算によって注目画素Nを生成するためには、回転座標でのNと4画素P1、P2、P3、P4との距離を算出する必要がある。その距離として図中のpとqを定義する。P1、P2、P3、P4、N、N1、N2が画素データの値(8ビット)を示すとして、出力画素Nを次式で算出する。
N1 = p・P2 + (1−p)・P1 (式5)
N2 = p・P4 + (1−p)・P3 (式6)
N = q・N2 + (1−q)・N1 (式7)
上式の演算を行うために、αとβからpとqを算出する。図13の(1)から(4)に示したように、注目画素の回転後の位置と回転後のアドレスの位置関係は4通りある。それに対応して、pとqをαとβおよび回転角θで表した結果を図17〜図20の各図に示す。
【0046】
まとめると、pとqは次式で表される。
・(1)と(4)の場合
p = α/cosθ +(βcosθ - αsinθ)tanθ ……(式8)
q = βcosθ - αsinθ ……(式9)
・(2)と(3)の場合
p = αcosθ - βsinθ ……(式10)
q = β/cosθ +(αcosθ - βsinθ)tanθ ……(式11)
【0047】
仮に、回転角θは小さい(θ≒0)とすると、以下の近似式を用いて更に簡素化したpとqが得られる。ただし、θの単位はラジアンである。
cosθ≒1 ……(式12)
sinθ≒θ ……(式13)
tanθ≒θ ……(式14)
θ2≒0 ……(式15)
・(1)と(4)の場合の近似式
p ≒ α + βθ ……(式16)
q ≒ β - αθ ……(式17)
・(2)と(3)の場合の近似式
p ≒ α - βθ ……(式18)
q ≒ β + αθ ……(式19)
【0048】
以上詳細に説明したように、第2実施例の画像回転処理部10を備えた画像処理装置では、前第1実施例の構成に加えて、詳述した補間回路30を有していて、画像回転後のアドレス生成回路での丸め方と丸め誤差の値から、補間回路30によって注目画素の回転後のアドレスにおける画素データを、最寄りの4画素から算出して出力画素データを生成できる。これにより、既に説明した第1実施例と同様の高速化の効果が得られることに加えて、画像回転処理による画質の劣化を防止する効果が更に得られる。
【0049】
[第3実施例]
次に、図21に画像回転処理部の第3の実施例を示す。この画像回転処理部10Cは、入出力部のメモリ容量が少なく、より大きな回転角度の回転処理が可能な特徴を持っている。画像回転処理部10Cは、第1の実施例に相当する構成(図2参照)を略全て備えた上で、更に、第5メモリ41Aと第6メモリ41B、第5アドレスセレクタ42、第6アドレスセレクタ43、そして、第3書込みアドレス生成回路44、第3読出しアドレス生成回路45、第3データセレクタ46を備えた構成となっている。
【0050】
すなわち、画像回転処理部10Cは、データバス7の双方向データを入力データと出力データに分離するバッファ回路11、入力データを交互に入力する1対の第1メモリ12Aと第2メモリ12B、第1メモリ12Aと第2メモリ12Bの出力データを選択して出力する第1データセレクタ13、第1データセレクタから出力されたデータを交互に入力する1対の第5メモリ41Aと第6メモリ41B、第5メモリ41Aと第6メモリ41Bの出力データを選択して出力する第3データセレクタ46、第3データセレクタ46から出力されたデータを交互に入力する1対の第3メモリ14Aと第4メモリ14B、第3メモリ14Aと第4メモリ14Bの出力データを選択して出力する第2データセレクタ15、第1メモリ12Aと第2メモリ12Bの書込みアドレスを生成する第1書込みアドレス生成回路16、第1メモリ12Aと第2メモリ12Bの読出しアドレスを生成する第1読出しアドレス生成回路17、回転角を入力し画像を回転させた後のアドレスを生成し、第5メモリ41Aと第6メモリ41Bの書込みアドレスとして出力する第3書込みアドレス生成回路44、第5メモリ41Aと第6メモリ41Bの読出しアドレスを生成する第3読出しアドレス生成回路45、第3メモリ14Aと第4メモリ14Bの書込みアドレスを生成する第2書込みアドレス生成回路18、第3メモリ14Aと第4メモリ14Bの読出しアドレスを生成する第2読出しアドレス生成回路19、第1メモリ12Aと第2メモリ12Bおよび第3メモリ14Aと第4メモリ14Bおよび第5メモリ41Aと第6メモリ41Bの入出力動作に対応してアドレスを切替えるアドレスセレクタ21〜24,42,43(第1アドレスセレクタ〜第6アドレスセレクタ)と、各アドレスセレクタと各データセレクタの入力データの切替え、各メモリのリードライト制御、バッファ回路のデータ入出力の切替えを行う制御回路25Cとから成る。なお、回転角のデータαは、画像データとは別にデータバス経由で画像回転処理部10Cに入力されて、第3書込みアドレス生成回路44へと入力されるが、そのための回路は図示を省略した。
【0051】
これは、図2に示した第1の実施例に対して、更に内部メモリとして、1対の第5メモリ41Aと第6メモリ41Aおよび関連回路を追加し、画像回転後のアドレスを使用して画像データを交互に入力するようにした実施例である。第1の実施例では、画像の回転角が大きくなると、第1メモリ〜第4メモリ(12A〜12D)の容量を全て大きくする必要がある。しかし、この実施例では、画像の回転角は第5メモリと第6メモリの容量だけに関係し、第1メモリ〜第4メモリの容量とは無関係になる。つまり、第1メモリ〜第4メモリの容量は、入力画像を分割した各画像のデータ量よりも小さくできる。例えば、256バイトや512バイトのように、データバスを経由してデータを連続転送する時のデータ量の整数倍等の小容量のもので足りる。必ずしも入力画像の1ライン分の整数倍の容量にする必要は無く、容量をもっと小さくできる。従って、回転処理に使用するメモリ総体としては少ない容量増加で、画像の回転角を大きくできる。
【0052】
この実施例では、第1メモリ12Aと第2メモリ12Bは、単純にデータバス7から入力されるデータを交互に入力して、入力した順番どおりに第1データセレクタを経由して第5メモリ41Aと第6メモリ41Bへと出力する。又、第3メモリ14Aと第4メモリ14Bは、単純に第3データセレクタから出力されるデータを交互に入力して、入力した順番どおりに第2データセレクタを経由してデータバス7へ出力する。上述したように第1メモリ〜第4メモリ(12A,12B,14A,14B)の容量は画像の回転角とは無関係で良い。第1メモリ〜第4メモリは、データバス7と第5メモリ41Aと第6メモリ41Bとの間でデータを転送するための一時的な保存手段としてのみ使用している。そして、画像の回転処理には、第5メモリ41Aと第6メモリ41Bを使用する。
【0053】
図22に、画像の回転処理を行う時の入力画像と出力画像、および第5メモリ41Aと第6メモリ41Bへ入出力する画像データとの関係を示す。まず、画像データAを第1メモリ12A、2を経由して、第3書込みアドレス生成回路から出力される回転後のアドレスを使用して第5メモリ41Aに入力する。この時、画像データAの一部であるA1は、回転後の出力画像からはみ出る部分であるため、第5メモリ41Aには入力しない。そして、A2の部分を第5メモリ41Aに、A3の部分を第6メモリ41Bに入力する。
【0054】
次に、画像データBを第1メモリ12A、2を経由して、第3書込みアドレス生成回路から出力される回転後のアドレスを使用して、第5メモリ41Aに入力する。B1の部分を第5メモリ41Aに入力し終えた時点で、第5メモリ41Aのデータ出力を開始する。第5メモリ41Aのデータ出力と並行して、B2の部分を第6メモリ41Bに入力する。第5メモリ41Aのデータ出力終了後に、B3の部分を第5メモリ41Aに入力する。
【0055】
次に、画像データCを第1メモリ12A、2を経由して、第3書込みアドレス生成回路から出力される回転後のアドレスを使用して、第6メモリ41Bに入力する。C1の部分を第6メモリ41Bに入力し終えた時点で、第3読出しアドレス生成回路が出力するアドレスを使用して、第6メモリ41Bのデータ出力を開始する。第6メモリ41Bのデータ出力と並行して、C2の部分を第5メモリ41Aに入力する。第6メモリ41Bのデータ出力終了後に、C3の部分を第6メモリ41Bに入力する。以下、この処理を繰返す。
【0056】
図23に、第5メモリ41Aと第6メモリ41Bのデータ入出力(書込みと読出し)のタイミングチャートを示す。画像データA2とB1を第5メモリ41Aに入力し終えたら、第5メモリ41Aのデータを出力する。画像データA3とB2とC1を第6メモリ41Bに入力し終えたら、第6メモリ41Bのデータを出力する。タイミングチャートでは、処理動作を分かり易くするために、A2、A3、B1、B2等の画像データの書込みを一まとめにして行っているように記載している。しかし、実際には、入力画像の画素データは主走査方向の順番で読み出しているので、1ライン分のデータがA2とA3になったり、B1とB2になったりするため、A2とA3のデータの書込みやB1とB2のデータの書込みは、1ライン分のデータの書込み時間内に行う。
【0057】
このようにして、内部メモリとしての1対のメモリ(第5メモリ41Bと第6メモリ41B)に交互に回転後のアドレスを使用して画像データを入力して出力する事で、回転後の出力画像を分割して出力できる。出力画像は、図1の主メモリ6に記憶される。
【0058】
以上詳細に説明したように、この実施例では、入力部と出力部のメモリにデータを交互に入出力する1対の小容量メモリを使用し、更にデータを交互に入出力する1対の内部メモリを使用して、画像データを分割して入力部のメモリに順番に入力し、これを基に画像を回転させたアドレスを生成して、内部メモリに入力し、内部メモリのデータを出力部のメモリを経由して主メモリ6に出力する事で、入出力部のメモリ容量は少ないまま、より大きな回転角度の回転処理が、使用する全てのメモリの少ない容量増加で行える、CPU処理より高速で、小容量メモリによる画像回転処理を行う低価格の画像処理装置を提供できる。
【0059】
[第4実施例]
図24に画像回転処理部の第4の実施例を示す。これは、第3の実施例に対して、第1データセレクタ13と、第5メモリ並びに第6メモリの間に補間回路30を挿入した構成となっている。補間回路30は第2の実施例で説明した回路と同じものである。すなわち、各部の構成は、補間回路30以外は、既に説明した第3実施例に対応した同一の構成(従って第2実施例と同一部分も含まれている)となっており、図24では第2実施例および第3実施例と同一部分については、同一符号を付してあり、個々の説明は重複を避け省略する。図24の構成の画像回転処理部10Dは、要は、第3実施例と同様に入出力部の小容量メモリおよび内部メモリを含み主部が構成されていて、第2実施例で説明したと同等の補間回路30も備えているため、画質の劣化も抑えて大きな回転角度の画像回転処理が高速に可能になっている。
【0060】
[第5実施例]
次に、図25に画像回転処理部の第5の実施例を示す。これは、第3の実施例における、入力部の第1メモリ12Aと第2メモリ12Bおよびそれに関連するアドレスセレクタやデータセレクタ、アドレス生成回路を、先入れ先出し型(FIFO:First In First Out)のメモリ(第1FIFOメモリ52)とその駆動回路に置き換え、同様に、出力部の第3メモリ14Aと第4メモリ14Bおよびそれに関連するアドレスセレクタやデータセレクタ、アドレス生成回路についても、先入れ先出し型の第2FIFOメモリ54とその駆動回路に置き換えた構成となっている。
【0061】
先の第3の実施例においては、入出力部の第1メモリ12A、第2メモリ12B、第3メモリ14A、第4メモリ14Bは、単に画像データをデータバス7と第5メモリ41Aと第6メモリ41Bとの間でデータ転送するための一時的な保存手段として機能しているに過ぎないため、FIFOメモリを使用して同等機能が実現できる。第3の実施例と異なり、2個のメモリを交互に使用せずに、1個のメモリを使用し等価の動作を得ているので、メモリ容量をより小さくできる。
【0062】
図25に示す第5実施例の画像回転処理部10Eでは、入力部と出力部それぞれに先入れ先出し型のFIFOメモリ52、54を使用し、更にデータを交互に入出力する1対の内部メモリである第5メモリ41A、第6メモリ41Bを使用して、入力部の第1FIFOメモリ52から画像データを分割して順番に入力し、画像を回転させたアドレスを生成して、内部メモリ41A、41Bに交互に入力し、内部メモリ41A、41Bのデータを交互に出力して、出力部の先入れ先出し型の第1FIFOメモリ52を経由して出力する。なお、図中で第3の実施例と同一部分については、同一符号を付してあり、個々の説明は重複を避け省略する。このような構成とすることで、より少ない容量の入出力部のメモリで、大きな回転角度の回転処理が、CPU処理より高速で、小容量メモリにより行える低価格の画像処理装置を実現している。
【0063】
[第6実施例]
図26に画像回転処理部の第6の実施例を示す。この画像回転処理部10Fは、第5の実施例に対して、第1FIFOメモリ52の出力端と、第5メモリ41A並びに第6メモリ41Bの並列接続した入力との間に補間回路30を挿入した実施例である。なお、補間回路30は第2の実施例と同じものである。これにより、重複する説明は省略するが、第5実施例と同等の作用・効果に加えて、補間回路30の既述した作用によって画像回転による画質の劣化を防止するとの効果が付加される。
【0064】
本願他の発明では、以上に説明した第1から第6の実施例の画像処理装置の何れかを、例えば、図1に示した画像形成装置の画像回転処理部として実装する事により、スキャン画像における原稿や画像の傾きを補正できる高速で低価格の画像形成装置を提供することができる。
【産業上の利用可能性】
【0065】
本発明は、複写機、プリンタ、スキャナ、ファクシミリ装置等の画像処理装置に限らず、画像に対して回転処理を行うその他の装置にも適用することができる。
【図面の簡単な説明】
【0066】
【図1】本発明に係る画像形成装置の構成を示すブロック図である。
【図2】画像回転処理部の第2実施例の構成ブロック図である。
【図3】入力画像と出力画像、および第1メモリ〜第4メモリへ入出力する画像データとの関係を示す図である。
【図4】第1メモリ、第2メモリの内部構成を説明する図である。
【図5】第3メモリ、第4メモリの内部構成を説明する図である。
【図6】第1メモリ〜第4メモリにおけるデータ入出力(書込みと読出し)のタイミングチャートである。
【図7】制御回路に関わる各制御信号の制御タイミングを示す図である。
【図8】実施例における画像回転後アドレス生成方法の説明図である。
【図9】第2書込みアドレス生成回路の構成を示すブロック図である。
【図10】出力部メモリへの副走査方向アドレス生成の説明図である。
【図11】出力部メモリの状態を説明する図である。
【図12】画像回転処理部の第2実施例の構成のブロック図である。
【図13】補間演算回路での処理の説明図である。
【図14】入力画像の周辺部の9画素の抽出方法を示す図である。
【図15】実施例における補間回路の構成の一例を示すブロック図である。
【図16】補間演算回路での処理の説明図である。
【図17】補間演算回路での処理の説明図である。
【図18】補間演算回路での処理の説明図である。
【図19】補間演算回路での処理の説明図である。
【図20】補間演算回路での処理の説明図である。
【図21】画像回転処理部の第3実施例の構成のブロック図である。
【図22】画像回転処理時の入力画像、出力画像、第5メモリと第6メモリへ入出力する画像データの説明図である。
【図23】第5メモリと第6メモリのデータ入出力を説明するタイミングチャートである。
【図24】画像回転処理部の第4実施例の構成のブロック図である。
【図25】画像回転処理部の第5実施例の構成のブロック図である。
【図26】画像回転処理部の第6実施例の構成のブロック図である。
【符号の説明】
【0067】
1 スキャナ
2 プリンタ
3 ハードディスク装置
4 操作部
5 CPU(Central Processing Unit)
6 主メモリ
7 データバス
10、10B、10C 画像回転処理部
10D、10E、10F 画像回転処理部
11 バッファ回路
12A 第1メモリ
12B 第2メモリ
13 第1データセレクタ
14A 第3メモリ
14B 第4メモリ
15 第2データセレクタ
16 第1書込みアドレス生成回路
17 第1読出しアドレス生成回路
18 第2書込みアドレス生成回路
19 第2読出しアドレス生成回路
21〜24 アドレスセレクタ(第1アドレスセレクタ〜第4アドレスセレクタ)
25 制御回路
30 補間回路
31(31a〜31f) 遅延回路
32(32a,32b) メモリ(1ライン分)
33 データセレクタ
34 補間演算回路
41A 第5メモリ
41B 第6メモリ
42、43 アドレスセレクタ(第5アドレスセレクタ、第6アドレスセレクタ)
44 第3読出しアドレス生成回路
45 第3書込みアドレス生成回路
46 第3データセレクタ
52 第1FIFOメモリ
54 第2FIFOメモリ
100 画像形成装置(画像処理装置)
bsel バッファ回路のデータ入出力の切替え信号

【特許請求の範囲】
【請求項1】
画像データを交互に入力して出力する対となる第1と第2のメモリと、
前記第1と第2のメモリから出力される画像データを交互に入力し出力する対となる第3と第4のメモリと、
入力された所定の角度値に基づき、元画像データを回転させるためのアドレスを生成して前記第1乃至第4のメモリにそれぞれに出力するアドレス生成回路とを有し、
入力画像保持手段によって保持された元画像データを分割して順番に前記第1と第2のメモリに交互に入力し、
前記第1と第2のメモリから交互にデータを出力し、これら出力データを前記アドレス生成回路から出力されたアドレスを使用して、前記第3と第4のメモリに交互に入力し、
前記第3と第4のメモリから交互にデータを出力する、
ことを特徴とする画像処理装置。
【請求項2】
注目画素の周辺の8画素を含む9画素それぞれのデータを保持する手段と、
前記9画素から注目画素の回転後のアドレスに近い3画素を選択出力する手段と、
前記3画素と注目画素との4画素から補間データを演算出力する手段と、からなる補間回路を更に有し、
前記第1と第2のメモリからの出力データを前記補間回路に入力し、該補間回路からの出力データを前記第3と第4のメモリに入力することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
画像データを交互に入力して出力する対となる第1と第2のメモリと、
前記第1と第2のメモリから出力される画像データを交互に入力し出力する対となる第5と第6のメモリと、
前記第5と第6のメモリから出力される画像データを交互に入力し出力する対となる第3と第4のメモリと、
入力された所定の角度値に基づき、元画像データを回転させるためのアドレスを生成して前記第1乃至第4のメモリに出力するアドレス生成回路とを有し、
入力画像保持手段によって保持された元画像データを分割して順番に前記第1と第2のメモリに交互に入力し、
前記第1と第2のメモリから交互にデータを出力し、これら出力データを前記アドレス生成回路から出力されたアドレスを使用して、前記第3と第4のメモリに交互に入力し、
前記第3と第4のメモリから交互にデータを出力し、これら出力データを、前記第5と第6のメモリに交互に入力し、
前記第5と第6のメモリから交互にデータを出力する、
ことを特徴とする画像処理装置。
【請求項4】
注目画素の周辺の8画素を含む9画素を保持する手段と、
前記9画素から注目画素の回転後のアドレスに近い3画素を選択出力する手段と、
前記3画素と注目画素との4画素から補間データを演算出力する手段とからなる補間回路を更に有し、
前記第1と第2のメモリからの出力データを前記補間回路に入力し、該補間回路からの出力データを前記第3と第4のメモリに入力することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
画像データが入力される第1の先入れ先出し型メモリと、
前記第1の先入れ先出し型メモリから出力される画像データを交互に入力し出力する対となる第1と第2のメモリと、
入力された所定の角度値に基づき、元画像データを回転させるためのアドレスを生成して前記第1と第2のメモリに出力するアドレス生成回路と、
前記第1と第2のメモリから交互に出力されるデータを入力する第2の先入れ先出し型メモリとを有し、
入力画像保持手段によって保持された元画像データを分割して順番に前記第1の先入れ先出し型メモリに入力し、
前記第1の先入れ先出し型メモリからの出力データを前記アドレス生成回路から出力されたアドレスを使用して、前記第1と第2のメモリに交互に入力し、
前記第1と第2のメモリから交互にデータを出力し前記第2の先入れ先出し型メモリに入力し、該第2の先入れ先出し型メモリから出力する、
ことを特徴とする画像処理装置。
【請求項6】
注目画素の周辺の8画素を含む9画素それぞれのデータを保持する手段と、
前記9画素から注目画素の回転後のアドレスに近い3画素を選択出力する手段と、
前記3画素と注目画素との4画素から補間データを演算出力する手段とからなる補間回路を更に有し、
前記第1の先入れ先出し型メモリからの出力データを前記補間回路に入力し、該補間回路からの出力データを前記第1と第2のメモリに入力することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
原稿をスキャンして画像データに変換する画像入力手段と、
画像データを用紙に印刷する画像形成手段と、
スキャン画像における原稿や画像の傾きを検出する手段と、
請求項1乃至6の何れか1つに記載の画像処理装置と、を有する事を特徴とする画像形成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2009−100313(P2009−100313A)
【公開日】平成21年5月7日(2009.5.7)
【国際特許分類】
【出願番号】特願2007−270638(P2007−270638)
【出願日】平成19年10月17日(2007.10.17)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】