JP4270035B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP4270035B2
JP4270035B2 JP2004177538A JP2004177538A JP4270035B2 JP 4270035 B2 JP4270035 B2 JP 4270035B2 JP 2004177538 A JP2004177538 A JP 2004177538A JP 2004177538 A JP2004177538 A JP 2004177538A JP 4270035 B2 JP4270035 B2 JP 4270035B2
Authority
JP
Japan
Prior art keywords
address
image
read
image data
storage means
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
JP2004177538A
Other languages
English (en)
Other versions
JP2006005499A (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 JP2004177538A priority Critical patent/JP4270035B2/ja
Publication of JP2006005499A publication Critical patent/JP2006005499A/ja
Application granted granted Critical
Publication of JP4270035B2 publication Critical patent/JP4270035B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は画像処理装置、特にスキュー補正(傾き補正)等の画像回転機能を備える複写機等の装置に関する。
従来より、複写機等の画像処理装置において、入力画像に対して回転処理を行うことが知られている。
例えば、下記に示す特許文献には、画像の傾き角度を検出し、検出された傾き角度に対応するシフト量で所定のライン数毎に画像データを主走査方向にシフトさせ、シフトさせた画像データを画像メモリに記憶させることが記載されている。そして、検出された傾き角度に応じて傾き補正を行うことにより生じる倍率誤差を、画像データ読み取り時に補正する倍率補正手段を備えることが記載されている。この倍率補正手段は、傾き角度をθとした場合に、傾き補正時に元画像に対してcosθを乗じる演算を行うため補正後の画像は元画像に対してcosθだけ縮小していることに鑑み、元画像読み取り時に1/cosθだけ拡大することで倍率誤差をキャンセルするものである。
特開2000−188678号公報
このように、回転処理において、回転角が大きい場合には倍率誤差が無視できなくなるため元画像の拡大処理が必要となるが、回転角が小さい場合には元画像の拡大処理はそれほど必要としないと考えられる。その一方で、元画像の回転処理を行う際、単に元画像の所定位置を基準として回転処理したのでは、補正後の用紙領域と元画像の用紙領域との相対的位置関係が異なるため、元画像における画像データが補正後の画像領域に含まれない場合が生じて元画像の一部が欠落する問題が生じ、この問題を解決するために元画像を一律に縮小する処理が必要となる。
もちろん、元画像の用紙に十分な余白領域が存在する場合には、たとえ両用紙領域の相対的位置関係が異なっていても元画像を縮小することなく元画像の画像領域自体が補正後の用紙領域に含まれるため画像データの欠落は生じないが、全ての用紙において十分な余白があることは保証されず、特に余白が小さいか、ほとんどない場合には画像データの一部が欠落する問題が生じ得る。
本発明の目的は、拡大あるいは縮小回路等のハードウェアを付加することなく、画像データの欠落等の画質劣化を防いで元画像の回転処理を行うことができる装置を提供することにある。
本発明は、入力画像を回転して出力する画像処理装置であって、入力画像を記憶する第1記憶手段と、前記第1記憶手段に記憶された画像データをブロック単位で読み出すための第1読み出しアドレスを生成する第1アドレス生成手段と、前記第1読み出しアドレスに従い前記第1記憶手段から読み出された画像データを記憶する第2記憶手段と、前記第2記憶手段に記憶された画像データを回転して読み出すための第2読み出しアドレスを生成する第2アドレス生成手段と、前記第2読み出しアドレスに従い前記第2記憶手段から読み出された画像データに対して補間演算を行う演算手段と、補間演算された画像データを記憶する第3記憶手段とを有し、前記第1アドレス生成手段は、前記入力画像の回転角及び用紙サイズに基づき算出される、直交する2方向をX方向、Y方向としたときのX方向及びY方向のはみだし量と、上下左右の余白幅とから算出される、回転処理後の画像頂点と処理前画像とのX方向距離及びY方向距離をオフセットとして用いて前記第1読み出しアドレスを生成し、前記第2アドレス生成手段は、回転角により決定されるアフィン逆行列を用いて前記第2読み出しアドレスを生成する
本発明において、前記第1アドレス生成手段は、前記入力画像の左右の余白幅をそれぞれR,Lとした場合、前記第1読み出しアドレスの主走査方向の開始点をR/(R+L)に応じて生成できる。
また、本発明において、前記第1アドレス生成手段は、前記入力画像の上下の余白幅をそれぞれU、Dとした場合、前記第1読み出しアドレスの副走査方向の開始点をU/(U+D)に応じて生成できる。
また、本発明において、前記第1アドレス生成手段は、前記入力画像の回転角度、前記入力画像のサイズ、及び前記入力画像の余白幅に応じて生成された前記第1読み出しアドレスで指定される前記第1記憶手段内の位置が前記画像データの存在領域以外である場合には、前記第1読み出しアドレスを前記第1記憶手段内において白データが予め格納された位置に対応するアドレスに変更してもよい。
また、本発明において、前記第1アドレス生成手段は、前記入力画像の回転角度、前記入力画像のサイズ、及び前記入力画像の余白幅に応じて生成された前記第1読み出しアドレスで指定される前記第1記憶手段内の位置が前記画像データの存在領域以外である場合には、前記第1読み出しアドレスを前記第1記憶手段内において前記画像データが存在する最も近い位置に対応するアドレスに変更してもよい。
以下、図面に基づき本発明の実施形態について、回転処理として原稿のスキュー補正を例にとり説明する。
図1には、本実施形態に係る画像処理装置の構成ブロック図が示されている。スキャナ等の画像データ入力部でスキャンされて得られた画像データ、すなわち原稿のデジタルデータは、スキュー検知部1を介して回転処理部2に供給される。画像データとしては、図形や写真などの他、文字も含まれる。原稿はA4やB5、A3等の任意のサイズでよい。
スキュー検知部1は、スキャンした原稿の傾き角(スキュー角)θを検出し、検出したスキュー角を回転処理部2に供給する。また、スキュー検知部1は、スキャンした原稿の余白幅及び用紙サイズ(原稿サイズ)を検出して回転処理部2に供給する。スキュー角の検知方法は任意であるが、例えば原稿の4つの頂点座標を検出し、これらの頂点座標の位置関係から検出する。また、原稿の余白幅検出方法も任意であるが、例えばスキャンした原稿においてその画像データが背景データから白データに変わり、さらに白データから黒データに変わるまでの距離を算出することで検出する。原稿の余白は、一般に原稿の上下及び左右に存在するため、これら4ヵ所の余白を検出して回転処理部2に供給する。用紙サイズは、A4あるいはB5等と検出する。余白幅や用紙サイズは、ユーザが手操作で入力してもよい。複写機等において、操作パネルを用いたユーザによる用紙サイズ入力や原稿のプリスキャンによるスキュー角検出及び用紙サイズ検出は公知である。処理すべき原稿が文書データである場合、一般にその余白は予め定められている場合もあるため、原稿の種類を入力するようにしてもよい。原稿が文書である場合には所定の余白幅とし、原稿がイメージの場合には余白幅を検出するように原稿の書類に応じて余白幅の検出/非検出を切り替えてもよい。
本実施形態における余白幅の検出は、原稿における画像データ領域(原稿のうち背景部分を除いた文書あるいは画像の存在領域)の片寄り度合いを検出することにあるため、必ずしも正確な余白幅を検出する必要はない。したがって、例えば検出した余白幅を所定の下限値と比較し、(検出余白幅)<(下限値)である場合には余白幅を0としてもよく、複数値のいずれかに近似してもよい。余白幅を0、1cm、2cm、3cmのいずれか近い値に近似する等である。さらに、上下左右の余白幅の精度は必ずしも同一である必要はなく異なっていてもよい。上下方向に重要なデータが存在する画像データの場合には、上下の余白幅を左右の余白幅よりも高精度で検出する等が好適である。
回転処理部2は、大容量低速メモリ10、アドレス生成部12、小容量高速メモリ14、アドレス生成部16、演算部18、大容量低速メモリ20及びアドレス生成部22を有する。スキュー検知部1から供給された画像データは、ページメモリ等の大容量低速メモリ10に記憶される。大容量低速メモリ10に記憶された画像データは、アドレス生成部12で生成されたブロック読み出しアドレスに従って順次読み出され、小容量高速メモリ14に格納される。小容量高速メモリ14に格納された画像データは、アドレス生成部16により生成された局所回転用読み出しアドレスに従って順次読み出され、補間処理を行う演算部18に供給される。演算部18は、元画像(ソース画像)における対応画素近傍の複数の画素データを用いて補間処理を行い、処理結果を大容量低速メモリ20に格納する。ここで、対応画素とは、回転処理(スキュー補正処理)を行って得られるデスティネーション画像における着目画素に対応するソース画像の画素であり、両者はアフィン変換で対応付けられる。大容量低速メモリ20への書き込みは、アドレス生成部22により生成されるブロック書き込みアドレスに従って行われる。
スキュー検知部1からのスキュー角度や余白幅データ、用紙サイズは、ブロック読み出しアドレスを生成するアドレス生成部12に供給される。アドレス生成部12は、スキュー角度や余白幅、用紙サイズ(原稿サイズ)に応じてブロック読み出しアドレスを決定する。
以下、本実施形態において処理の前提となる、ブロック読み出しの基本動作について説明する。
図2及び図3には、大容量低速メモリ10からブロック100単位で画像データを読み出す際の処理が示されている。アドレス生成部12は、ブロック読み出しアドレスを順次生成して主走査方向(X方向)及び副走査方向(Y方向)にブロック100単位で画像データを読み出していく(図2における矢印参照)。図中、主走査方向に左から右に走査し、次に副走査方向に移動し、さらに主走査方向に左から右に走査していく。図では、ブロック100は略正方領域であるが、これに限定されるものではない。ブロック100の主走査方向の幅をWx、副走査方向の幅をWyとする。スキュー補正などの回転処理を行う際には、上記のようにソース画像における対応画素近傍の複数の画素データを用いた補間演算が必要となるため、ブロック100単位で画像データを読み出す際にはブロック間で互いにその一部をオーバラップさせて読み出す。オーバラップさせるべき領域は回転角θに応じて変化し、オーバラップデータを読み出すためのブロック読み出し開始点が異なってくる。図3において、例えば48画素×40画素のブロック100の読み出し開始点SをS1、S2・・・とすると、読み出し開始点S1を有するブロック100に対し、次に読み出すべきブロック100の読み出し開始点S2は、X方向(主走査方向)移動量=By×sinθであり、Y方向(副走査方向)移動量=Bx×sinθで規定される。ここで、Bx、Byは、補正後画像(デスティネーション画像)における出力ブロック200のサイズである。ブロック200は、ブロック100に含有される画像領域であり、アドレス生成部16が生成する読み出しアドレスによりその領域が決定される。回転処理の対象となるブロックはブロック200である。
図4には、ブロック100の読み出し開始位置S1、S2、・・・Sn、Sn+1が示されている。回転角θに応じたY方向の移動量で読み出し開始点が決定されるため、図中矢印で示されるように大容量低速メモリ10から斜め方向にブロック100が順次読み出されていく。
図5には、アドレス生成部16におけるアドレス生成の原理が示されている。図5(A)は、大容量低速メモリ10から読み出されたブロック100及びこのブロック100から出力ブロック200を傾けて抽出することが示されており、図5(B)には、この出力ブロック200を更にθだけ回転させることが示されている。
具体的には、ブロック100内におけるブロック200の画像データを(x,y)、回転角度θで補正した後のブロック200の画像データを(X,Y)とすると、アフィン逆行列を用いて
x=cosθ(X−m)+sinθ(Y−n)
y=−sinθ(X−m)+cos(Y−n)
で与えられる。ここで、m,nはオフセット量である。これにより、図6に示されるように元画像の画素No.23は出力画像の画素No.1に写像され、元画像の画素No.17は画素No.10に写像される。読み出された画像データは演算部18に供給される。演算部18は、供給された画素データを用いて補間演算を行う。すなわち、図7に示されるように、補正後の画素データを、元画像において対応する画素Nに隣接する4点P1〜P4の画素データから
N1=xP2+(1−x)P1
N2=xP4+(1−x)P3
N=(1−y)N1+yN2
で算出する。
以上の基本原理により、元画像(ソース画像)に対して回転処理した補正後画像(デスティネーション画像)が得られるが、図2に示されるように、単に元画像の所定位置、例えば右上の頂点を基準として回転処理するのでは、補正後画像の原稿サイズのうち、元画像の原稿サイズと重複しない部分が生じる。図2において、補正後原稿サイズの元原稿サイズからのX方向(主走査方向)のはみ出し量をXovrとし、Y方向(副走査方向)のはみ出し量をYovrとしている。補正後原稿サイズでカバーされない元原稿サイズの領域は、その多くがブロック100内に存在しないため大容量低速メモリ10から読み出されることがなく、仮にこの領域に画像データが存在するとデスティネーション画像においても当該画像データが存在せず欠落することになる。もちろん、回転角θが小さい場合、画像データが元原稿サイズの中央近傍にのみ存在する場合、あるいは元原稿において余白が十分存在する場合には図2の場合でも画像データが欠落することはないが、そうではない場合には画像データの欠落を防止するために元画像を縮小処理する必要が生じ、回路構成の複雑化を招く。
そこで、本実施形態においては、図2に示されるように単に元画像に対し回転角θで回転処理するのではなく、補正後の原稿位置をX方向、及びY方向に調整することで、元画像の画像データの欠落を防いで画質劣化を防止する。補正後の原稿位置のX方向、Y方向の調整は、ブロック100の読み出しアドレスをX方向及びY方向に変化させることで実現でき、具体的にはアドレス生成部12がスキュー角、余白幅、用紙サイズに基づいて設定する。基本的な考えは、原稿には余白部分が存在することが多いことから、これを利用し、図2において補正後原稿サイズでカバーされない領域を元の原稿の余白領域に割り当てるように調整することにある。
図8には、本実施形態における読み出し処理が示されている。図2と対比すると、補正後原稿は−X方向及び−Y方向に移動され、図2においては上部及び左部のみに集中して存在していた非カバー領域が、図8では上下及び左右に分配されている点が異なる。すなわち、X方向に関しては、はみ出し量Xovrが元原稿に対する左側のはみ出し量Xovr1と元原稿に対する右側のはみ出し量Xovr2に分配され、かつ、Y方向のはみ出し量Yovrが元原稿に対する上側のはみ出し量Yovr1と元原稿に対する下側のはみ出し量Yovr2に分配されている。Xovrに対するXovr1、Xovr2の関係は、
Xovr=Xovr1+Xovr2
であり、元原稿における左右の余白幅の比率をR:L(左余白幅をR、右余白幅をL)とすると
R:L=Xovr1:Xovr2
の関係、すなわち左右の余白幅の量に応じて分配される。同様に、
Yovr=Yovr1+Yovr2
であり、元原稿における上下の余白幅の比率をU:D(上余白幅をU、下余白幅をD)とすると、
U:D=Yovr1:Yovr2
の関係、すなわち上下の余白幅の量に応じて分配される。これらの相違は、ブロック100の読み出しアドレス(X,Y)のX方向及びY方向の変化で表現される。図2のようなブロック読み出しアドレスに対し、X方向及びY方向に余白幅に応じた分だけシフトさせる、あるいはオフセットを設けるということもできよう。
このようにブロック100の読み出しアドレスを変化させることで、ブロック100の読み出し時に元原稿の画像データを全て読み出す確率が増大し、元原稿における画像データの欠落を防止でき、したがって縮小処理が不要となる。なお、このように読み出しアドレスを変化させても、例えば元原稿の余白幅が小さい場合には画像データの欠落が生じる場合もあるが、例えば余白幅が一定値以下の場合には縮小処理を実行する等して、縮小処理をケースバイケースで(常に行うのではなく)行うことも可能である。
なお、図8において、補正後原稿が元原稿からはみ出した「はみ出し」領域は、元原稿において画像データが本来存在しない領域であるから、ブロック100の読み出し時には、これらの領域に相当する画像データは特定の値とする必要がある。具体的には、図9に示されるように、補正後原稿のうち元原稿が存在しない領域である「はみ出し領域」を領域300、310、320、330とする(左上を領域300、右上を領域310、左下を領域320、右下を領域330とする)と、領域300では元原稿の画像データが存在しないため背景の白とすべく、大容量低速メモリ10において白に相当するデータを格納するアドレスを指定するように設定する。例えば、大容量低速メモリのアドレスAに白データを予め格納しておき、アドレス生成部12で生成されたアドレスが領域300内を指定するアドレスである場合には、当該アドレスを一律にAに変更する等である。より詳細には、元原稿のX方向の範囲を0≦X≦fsとすると、アドレス生成部12で生成されたアドレスのX方向アドレスと0とを比較し、X方向アドレス<0の関係を満たす場合には、当該アドレスが領域300を指定するアドレスであると判定し、アドレス生成部12は当該アドレスをAに変更する。ここに、fsは原稿のX方向画素数である。大容量低速メモリ10に元原稿の画像データを格納するにあたり、まず大容量低速メモリ10に白データを格納して「初期化」してもよい。
あるいは、アドレス生成部12は、X方向のアドレスを元原稿が存在する最も近いX方向アドレスに一律にシフトさせてもよい。元原稿の4つの頂点位置が(0,0)、(fs,0)、(0,ss)、(fs,ss)であるとすると、領域300におけるX方向アドレスは上記のようにX<0となるため、一律にX=0として元原稿の左端の画像データを読み出すようにする。元原稿の左端が背景の白である場合には、領域300、310、320、330はいずれも白データを読み出すようにアドレス変換されることになる。
領域310についても領域300と同様であり、上側のはみ出し領域310は画像データが存在しないため背景の白とすべく、大容量低速メモリ10において白に相当するデータを格納するアドレスを指定するように設定する。あるいは、Y方向のアドレスを元原稿が存在する最も近いY方向アドレスに一律にシフトさせる。領域310におけるY方向アドレスはY<0となるため、領域310では一律にY=0として元原稿の上端の画像データを読み出すようにする。
領域320についても同様であり、下側のはみ出し領域320は画像データが存在しないため背景の白とすべく、大容量低速メモリ10において白に相当するデータを格納するアドレスを指定するように設定する。あるいは、Y方向のアドレスを元原稿が存在する最も近いY方向アドレスに一律にシフトさせる。領域320におけるY方向アドレスはY>ssとなるため、領域320では一律にY=ssとして元原稿の下端の画像データを読み出すようにする。
領域330についても同様であり、右側のはみ出し領域330は画像データが存在しないため背景の白とすべく、大容量低速メモリ10において白に相当するデータを格納するアドレスを指定するように設定する。あるいは、X方向のアドレスを元原稿が存在する最も近いX方向アドレスに一律にシフトさせる。領域330におけるX方向アドレスはX>fsとなるため、領域330では一律にX=fsとして元原稿の右端の画像データを読み出すようにする。
一般に、原稿の端部は用紙の色(通常白と考えられる)であるため、この処理により領域300、310、320、330はいずれも用紙の色(白)データが読み出されるようにアドレス変換されることとなるが、例えば元原稿の左端が白で右端が黒である場合、領域300では白データが読み出され、領域330では黒データが読み出されるようにアドレス変換されることとなり、元原稿の画像データが反映される。
図10には、本実施形態の処理フローチャートが示されている。まず、アドレス生成部12は、スキュー検知部1から回転角θ、余白幅及び用紙サイズを入力する。そして、用紙サイズと回転角θから図2におけるX方向のはみ出し量Xovr及びY方向のはみ出し量Yovrを算出する。具体的には、用紙サイズがA4の場合には、A4縦サイズ(297mm)×sinθでXovrが算出され、A4横サイズ(210mm)×sinθでYovrが算出される。
次に、算出されたXovrとYovr及び余白幅R、L、U、Dから図8におけるXovr1、Xovr2、Yovr1、Yovr2を算出する(S102)。具体的には、
Xovr1=R/(R+L)・Xovr
Xovr2=L/(R+L)・Xovr
Yovr1=U/(U+D)・Yovr
Yovr2=D/(U+D)・Yovr
で算出される。なお、図ではこれらの代表としてXovr1、Xovr2を示している。
アドレス生成部12は、上記の式を用いて算出してもよいが、予めこれらの算出結果をテーブルとしてメモリ等に記憶しておき、検出された用紙サイズや余白幅に対応するXovr1等を当該テーブルから読み出して処理の高速化を図ることもできる。
余白幅ではみ出し量を分配した後、アドレス生成部12はこれらに基づいてブロック100の読み出しアドレスを生成し(S103)、大容量低速メモリ10からブロック100単位で画像データを読み出して小容量高速メモリ14に格納する。すなわち、図8に即して説明すると、図2に示されたブロック読み出しにおける読み出し開始アドレス(X,Y)に対し、−X方向にXovr1だけオフセットさせ、−Y方向にYovr1だけオフセットさせた読み出しアドレスを生成して読み出す。したがって、アドレス生成部12の構成としては、従来のアドレス生成部の構成に、さらにオフセット回路及びアドレス変換回路を付加するだけで本実施形態のアドレス生成部12を構成し得る。オフセット回路にはスキュー検知部1からの回転角、余白幅、用紙サイズが供給され、オフセット回路はこれらに基づいてアドレスをオフセットさせる。オフセット回路は、アドレス生成部12がカウンタで構成される場合、当該カウンタの初期値やリミット値をシフトさせることでこれに代えることができる。例えば、従来のアドレス生成部12におけるカウンタが、X方向に0からfsまでカウントするカウンタを備えているとした場合、本実施形態のカウンタは−|Xovr1|からfs+|Xovr|までカウントするカウンタとすればよい。Y方向についても同様である。すなわち、オフセット回路は具体的なハードウェア構成として用いる必要はない。アドレス変換回路は、オフセットされたアドレスが「はみ出し」領域に相当するアドレスであるか否かを判定し、「はみ出し」領域アドレスである場合には、上記のように白データあるいは元原稿の直近端部のデータを読み出すようにアドレスを変換する。その後、アドレス生成部16で生成されたアドレスに従ってブロック200を読み出し、演算部18で補間演算を行い回転処理を実行する(S104)。アドレス生成部16における読み出しアドレスは従来と同一である。
アドレス生成部12は、X方向アドレス生成部及びY方向アドレス生成部から構成され、それぞれは複数のカウンタから構成される。以下、アドレス生成部12の具体的な構成について説明する。
図11には、アドレス生成部12におけるX方向アドレス生成の構成ブロック図が示されている。X方向アドレス生成部は、ブロック内X方向アドレス計算カウンタ30、ブロック内行数カウンタ32、ブロック移動時X方向アドレス増分カウンタ34、バンド移動時X方向アドレス増分カウンタ36、加算器38、及びアドレス変換器40、42を有して構成される。各カウンタ30〜36は加算器38に対して並列に接続されるとともに、それぞれは前段のカウンタのキャリー信号が後段のカウンタのクロック端子に供給されるようにカスケード接続される。
カウンタ30は、ブロック100内のX方向アドレスを計算するカウンタであり、1ずつカウントしてブロック100内のX方向の画素数分までカウントする。カウンタの初期値は上記のように算出されたXovr1に設定される。Wx/Nword−1はブロック100内の画素数であり、Wxはブロック100のX方向の幅、Nwordは1ワードのX方向幅である。1ワードが2画素分で構成される場合、Wx/2−1でブロック100内で読み出すべき画素数が算出される。カウント値は加算器38に供給され、カウントアップしたキャリー信号はカウンタ32に供給される。キャリー信号は、ブロック100内において次の行に移行するトリガ信号として機能する。
カウンタ32は、ブロック100内の行数計算カウンタであり、1ずつカウントしてブロック100の全行数までカウントする。初期値は0であり、リミット値はブロック100のY方向の幅Wy−1である。カウント値は加算器38に供給され、カウントアップした場合のキャリー信号はカウンタ34に供給される。カウンタ32からのキャリー信号は、1つのブロック100における処理が完了し次のブロックに移行するトリガ信号として機能する。
カウンタ34は、ブロック移動時のX方向アドレスの増分を計算するカウンタであり、次のブロック100の処理に移行する際の読み出し開始アドレスを与えるカウンタである。初期値は0であり、ステップ幅はSblkに設定される。Sblkは回転角θに応じた値であり、上記におけるX方向移動量By×sinθに等しい。Sblkとして、By×sinθの整数部を用いて理論値を近似してもよい。リミットはSblk×(fs/Wx−1)であり、これは原稿のX方向サイズfsに応じたX方向の総移動量である。カウンタ34のカウント値は加算器38に供給され、キャリー信号はカウンタ36に供給される。カウンタ34のキャリー信号は、1つのX方向走査が完了し、次のX方向走査に移行するトリガ信号として機能する。
カウンタ36は、バンド移動時X方向アドレスの増分を計算するカウンタであり、あるバンド(ブロック100をX方向に走査する場合の、1走査当たりのブロック群)から次のバンドに移行するときのX方向の移動量を与えるものである。初期値は0であり、ステップ幅はSbndx、すなわちBy×sinθである。Sblkのうち、各バンドの先頭のSblkがSbndに対応する。Sbndとして、Sblkxと同様に、理論値の整数部を用いることで近似してもよい。カウント値は加算器38に供給される。
加算器38は、カウンタ30、34、36からのカウント値を加算して出力する。カウンタ36により、あるバンドの先頭ブロックのX方向アドレスが与えられ、カウンタ34で当該バンドにおけるブロック100のX方向アドレスが与えられ、カウンタ30で当該ブロック内のX方向アドレスが与えられる。最初の読み出しX方向アドレスを例示すると、カウンタ36、34、32のカウント値はいずれも0であり、カウンタ30のカウント値はXovr1であることから、X方向アドレス=Xovr1(その符号は負)となる。
加算器38の出力はアドレス変換器40、42に順次供給される。アドレス変換器40は、加算器38からの出力アドレスと0とを比較し、いずれか大きい方を出力する。加算器38からXovrが出力された場合、Xovr<0であるから0が出力されることとなる。加算器38から出力されたX方向アドレスが0より小さい場合には、すべて0に置換される。これは、図9に示された領域300において、X方向アドレスを一律にX=0に置換することに対応する。
一方、アドレス変換器42は、加算器38からの出力アドレスとfsとを比較し、いずれか小さい方を出力する。したがって、加算器38からの出力アドレスがfsより大きい場合には、全てfsに置換されることになる。これは、図9に示された領域330において、X方向アドレスを一律にX=fsに置換することに対応する。
図12には、アドレス生成部12のY方向アドレス生成の構成ブロック図が示されている。Y方向アドレス生成部は、ブロック内X方向アドレス計算カウンタ50、ブロック内行番号計算カウンタ52、ブロック移動時Y方向アドレス増分カウンタ54、バンド移動時Y方向アドレス増分カウンタ56、加算器58、及びアドレス変換器60、62を有して構成される。カウンタ50〜56は加算器58に並列に接続され、各カウンタは前段のキャリー信号が後段のクロック端子に供給されるようにカスケードに接続される。
カウンタ50は、ブロック内におけるX方向アドレスがX方向に全画素分カウントされたか否かを確認するためのカウンタであり、そのカウント値自体はY方向アドレスとは無関係であり、そのキャリー信号のみをカウンタ52に供給する。
カウンタ52は、ブロック100における複数行のうちの何番目の行であるかを計算するカウンタであり、初期値はfs×sinθ−Yovr1である。行番号はこの初期値からカウントし、Wyでカウントアップする。カウント値は加算器58に供給され、キャリー信号はカウンタ54に供給される。
カウンタ54は、ブロック移動時Y方向アドレスの増分を計算するカウンタであり、ステップはSblky、すなわちBx×sinθである。理論値であるBx×sinθの整数部を用いて近似してもよい。リミットはSblk×(fs/Wx−1)、すなわちX方向のブロック数分である。カウント値は加算器58に供給され、キャリー信号はカウンタ56に供給される。
カウンタ56は、バンド移動時のY方向アドレスの増分を計算するカウンタであり、ステップはSbndy、すなわちバンドの先頭ブロックのBx×sinθである。カウント値は加算器58である。
加算器58は、カウンタ52、54、56からのカウント値を加算して出力する。カウンタ56のカウント値によりバンドの先頭ブロックのY方向アドレスが与えられ、カウンタ54のカウント値により当該バンド内におけるブロック100のY方向アドレスが与えられ、カウンタ52のカウント値により当該ブロック内のY方向アドレスが与えられる。
最初の読み出しY方向アドレスを例示すると、カウンタ56、54のカウント値は0であり、カウンタ52からfs×sinθ−Yovr1が入力されるから、Y方向アドレス=fs×sinθ−Yovr1となる。
加算器58の出力は、アドレス変換器60、62に順次供給される。アドレス変換器60は、加算器58の出力アドレスと0とを比較し、いずれか大きい方を出力する。加算器58から出力されたY方向アドレスが0より小さい場合には、すべて0に置換される。これは、図9に示された領域310において、Y方向アドレスを一律にY=0に置換することに対応する。
一方、アドレス変換器62は、加算器58からの出力アドレスとssとを比較し、いずれか小さい方を出力する。加算器58から出力されたY方向アドレスがssより大きい場合には、全てssに置換される。これは、図9に示された領域320において、Y方向アドレスを一律にY=ssに置換することに対応する。
このように、本実施形態では、元原稿を回転処理する際に、回転角、元原稿の用紙サイズ、及び余白幅に応じ、元原稿に対して補正後の原稿がはみ出す部分を上下及び左右に分配することで、元原稿の縮小処理を実行することなく元原稿の画像データ欠落を防ぎ画質劣化を抑制できる。
なお、本実施形態では、基本的に元原稿の縮小処理を不要なものとしたが、上記のようにケースバイケースで縮小処理を実行してもよく、また、回転角が所定値以上の場合には縮小処理を常に実行してもよい。この場合においても、本実施形態では縮小の倍率を抑制することができるため、縮小処理及びその後の拡大処理に伴う画質劣化を抑制し得る。
さらに、本実施形態ではスキュー補正を例示したが、これに限らず一般の回転処理にも適用できることは云うまでもない。
実施形態の全体構成図である。 回転処理の基本原理説明図である。 ブロック単位の読み出し処理説明図である。 ブロック読み出し開始点の説明図である。 ブロックの回転処理説明図である。 回転処理の対応関係(写像)説明図である。 補間演算説明図である。 実施形態の回転処理説明図(はみ出し量の分配)である。 実施形態のはみ出し領域のアドレス設定説明図である。 実施形態の処理フローチャートである。 アドレス生成部12内のX方向アドレス生成ブロック図である。 アドレス生成部12内のY方向アドレス生成ブロック図である。
符号の説明
1 スキュー検知部、2 回転処理部、10 大容量低速メモリ、12 アドレス生成部、14 小容量高速メモリ、16 アドレス生成部、18 演算部、20 大容量低速メモリ、22 アドレス生成部。

Claims (5)

  1. 入力画像を回転して出力する画像処理装置であって、
    入力画像を記憶する第1記憶手段と、
    前記第1記憶手段に記憶された画像データをブロック単位で読み出すための第1読み出しアドレスを生成する第1アドレス生成手段と、
    前記第1読み出しアドレスに従い前記第1記憶手段から読み出された画像データを記憶する第2記憶手段と、
    前記第2記憶手段に記憶された画像データを回転して読み出すための第2読み出しアドレスを生成する第2アドレス生成手段と、
    前記第2読み出しアドレスに従い前記第2記憶手段から読み出された画像データに対して補間演算を行う演算手段と、
    補間演算された画像データを記憶する第3記憶手段と、
    を有し、
    前記第1アドレス生成手段は、前記入力画像の回転角及び用紙サイズに基づき算出される、直交する2方向をX方向、Y方向としたときのX方向及びY方向のはみだし量と、上下左右の余白幅とから算出される、回転処理後の画像頂点と処理前画像とのX方向距離及びY方向距離をオフセットとして用いて前記第1読み出しアドレスを生成し、
    前記第2アドレス生成手段は、回転角により決定されるアフィン逆行列を用いて前記第2読み出しアドレスを生成する
    ことを特徴とする画像処理装置。
  2. 請求項1記載の装置において、
    前記第1アドレス生成手段は、前記入力画像の左右の余白幅をそれぞれR,Lとした場合、前記第1読み出しアドレスの主走査方向の開始点をR/(R+L)に応じて生成する
    ことを特徴とする画像処理装置。
  3. 請求項1記載の装置において、
    前記第1アドレス生成手段は、前記入力画像の上下の余白幅をそれぞれU、Dとした場合、前記第1読み出しアドレスの副走査方向の開始点をU/(U+D)に応じて生成する
    ことを特徴とする画像処理装置。
  4. 請求項1記載の装置において、
    前記第1アドレス生成手段は、前記入力画像の回転角度、前記入力画像のサイズ、及び前記入力画像の余白幅に応じて生成された前記第1読み出しアドレスで指定される前記第1記憶手段内の位置が前記画像データの存在領域以外である場合には、前記第1読み出しアドレスを前記第1記憶手段内において白データが予め格納された位置に対応するアドレスに変更する
    ことを特徴とする画像処理装置。
  5. 請求項1記載の装置において、
    前記第1アドレス生成手段は、前記入力画像の回転角度、前記入力画像のサイズ、及び前記入力画像の余白幅に応じて生成された前記第1読み出しアドレスで指定される前記第1記憶手段内の位置が前記画像データの存在領域以外である場合には、前記第1読み出しアドレスを前記第1記憶手段内において前記画像データが存在する最も近い位置に対応するアドレスに変更する
    ことを特徴とする画像処理装置。
JP2004177538A 2004-06-15 2004-06-15 画像処理装置 Expired - Fee Related JP4270035B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004177538A JP4270035B2 (ja) 2004-06-15 2004-06-15 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004177538A JP4270035B2 (ja) 2004-06-15 2004-06-15 画像処理装置

Publications (2)

Publication Number Publication Date
JP2006005499A JP2006005499A (ja) 2006-01-05
JP4270035B2 true JP4270035B2 (ja) 2009-05-27

Family

ID=35773533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004177538A Expired - Fee Related JP4270035B2 (ja) 2004-06-15 2004-06-15 画像処理装置

Country Status (1)

Country Link
JP (1) JP4270035B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4867757B2 (ja) * 2007-03-30 2012-02-01 パナソニック株式会社 スキャナ装置
JP5182587B2 (ja) * 2009-03-05 2013-04-17 富士ゼロックス株式会社 画像処理装置および画像処理方法
CN102129663B (zh) * 2010-12-20 2012-11-21 福州瑞芯微电子有限公司 一种读取地址和宽度不对齐图像处理方法及电路结构
JP5994538B2 (ja) * 2012-09-28 2016-09-21 ブラザー工業株式会社 画像処理装置
JP6230468B2 (ja) * 2014-04-03 2017-11-15 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP6252577B2 (ja) * 2015-10-13 2017-12-27 コニカミノルタ株式会社 画像処理装置及び画像処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3104868B2 (ja) * 1997-11-25 2000-10-30 富士ゼロックス株式会社 画像処理装置
US6785428B1 (en) * 1999-10-05 2004-08-31 Adobe Systems Incorporated Rotated transform of an image using block transfers
JP2005086598A (ja) * 2003-09-10 2005-03-31 Fuji Xerox Co Ltd 画像処理装置、画像処理方法、画像処理プログラムおよび画像処理回路
JP2005352703A (ja) * 2004-06-09 2005-12-22 Fuji Xerox Co Ltd 画像処理装置

Also Published As

Publication number Publication date
JP2006005499A (ja) 2006-01-05

Similar Documents

Publication Publication Date Title
US9160885B2 (en) Skew detection
US8937753B2 (en) Image scanning apparatus, image compensation method and computer-readable recording medium
JP4784500B2 (ja) 画像傾き補正装置及び画像傾き補正方法
JPH1065877A (ja) 画像処理装置
US7545993B2 (en) Image processing device and image processing method
US20110135362A1 (en) Image forming apparatus and method for de-skewing thereof
JP2017200042A (ja) 画像形成装置
JP4270035B2 (ja) 画像処理装置
JP3611742B2 (ja) 画像処理装置
US9036219B2 (en) Image processing device and image processing method for preventing image quality deterioration
JP2001143062A (ja) ブロック転送を使用したイメージの回転型変換
JP3443016B2 (ja) 印刷制御装置、印刷制御方法および記録媒体
US8368965B2 (en) Image cropping process
JP2006013803A (ja) 画像処理装置
JP2006344002A (ja) 画像処理装置、エッジ検出装置、画像処理方法、エッジ検出方法及びそのプログラム
US9584699B2 (en) Image processing apparatus, image processing method and computer-readable storage medium with improved character display
JPH10285379A (ja) 原稿角度補正方法及び原稿角度補正装置
JP5683387B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム及び記録媒体
JP2000270208A (ja) 画像処理装置及び画像処理方法
JP2010239362A (ja) 画像処理装置及びその画像処理方法
JP2005086598A (ja) 画像処理装置、画像処理方法、画像処理プログラムおよび画像処理回路
JP4068769B2 (ja) 画像処理装置及びその傾き補正方法
JP2006252108A (ja) 画像処理装置、画像処理方法及びそのプログラム
JP6886622B2 (ja) 画像処理装置
JP2006252107A (ja) 画像処理装置、画像処理方法及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090114

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: 20090203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090216

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees