(57)【特許請求の範囲】
【請求項１】
第１方向とこれに直交する第２方向とに画素が並ぶ画像の第２方向のズレを補正する画像処理装置において、
各画素に対する第２方向のズレの補正量を、所定のブロックの第２方向のサイズを単位にした第１シフト量と、前記ブロックの第２方向のサイズ未満であって画素単位の第２シフト量と、１画素未満の第３シフト量とに分解するシフト量演算部と、
各画素の画像データを、第２方向へ第３シフト量だけシフトさせる微小シフト部と、
各画素の画像データを、第２方向へ第２シフト量だけシフトさせる画素単位シフト部と、
前記ブロックを単位に画像データを圧縮して記憶する処理と、該圧縮して記憶した画像データを読み出して伸張しブロック単位にメモリ上に配置する処理とを行う過程で各ブロックの画像データを第２方向へ第１シフト量だけシフトさせるブロック単位シフト部と
を有する
ことを特徴とする画像処理装置。
【請求項２】
入力される画像データに対して、前記補正を、微小シフト部、画素単位シフト部、ブロック単位シフト部の順で行う
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
出力する画像データに対して、前記補正を、ブロック単位シフト部、画素単位シフト部、微小シフト部の順で行う
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記圧縮は、ＢＴＣ圧縮である
ことを特徴とする請求項１乃至３のいずれか１つに記載の画像処理装置。
【請求項５】
前記圧縮は、ＪＰＥＧ圧縮である
ことを特徴とする請求項１乃至３のいずれか１つに記載の画像処理装置。
【請求項６】
前記シフト量演算部は、第２方向のズレの補正量を第１シフト量と第２シフト量と第３シフト量に分解することに代えて、前記補正量を第１シフト量と第２シフト量とに分解し、
前記微小シフトを設けずに、第２方向のズレを、前記画素単位シフト部とブロック単位シフト部とで補正する
ことを特徴とする請求項１乃至５のいずれか１つに記載の画像処理装置。
【請求項７】
前記微小シフト部は、１画素未満のシフトを補間処理によって行う
ことを特徴とする請求項１乃至５のいずれか１つに記載の画像処理装置。
【請求項８】
第２方向のズレの補正によって生じる第１方向の倍率変化を補正する第１方向変倍処理部をさらに有する
ことを特徴とする請求項１乃至７のいずれか１つに記載の画像処理装置。
【請求項９】
第２方向のズレの補正前もしくは補正後に、第１方向のズレを補正する第１方向シフト部を設け、
前記第１方向のズレの補正と前記第２方向のズレの補正とを組み合わせて画像の傾きを補正する
ことを特徴とする請求項１乃至８のいずれか１つに記載の画像処理装置。
【請求項１０】
第１方向のズレの補正によって生じる第２方向の倍率変化を補正する第２方向変倍処理部をさらに有する
ことを特徴とする請求項９に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラインイメージセンサのスキューによる画像の歪みや原稿の傾きなどを補正する画像処理装置に関する。
【背景技術】
【０００２】
デジタル複写機などでは、ラインイメージセンサの読み取り方向(主走査方向Ｘ)と直交する方向（副走査方向Ｙ）に原稿を相対移動させながらラインイメージセンサによるライン単位の読み取りを繰り返すことで原稿を２次元に読み取る構成が採られている。かかる装置では、ラインイメージセンサの取り付け誤差などにより読み取り方向（主走査方向）と副走査方向とが直交から外れている（スキューしている）場合には、たとえば、図６（ａ）に示すように、矩形原稿が平行四辺形状に歪んで読み取られてしまう(図中のＦ１)。また、自動原稿送り装置に原稿が斜めにセットされた場合には原稿画像が傾斜して読み取られてしまう。
【０００３】
このような画像の歪みや傾きを画像処理にて電気的に補正する場合、たとえば、図６（ａ）の画像Ｆ１を同図（ｂ）の画像Ｆ２のように補正する場合、少なくとも画像の副走査方向のスキュー（ズレ）補正が必要になる。このスキュー補正を原稿の読み取り動作に追従してリアルタイムに行うためには、通常、補正量Ａ(図６（ａ）の斜線部)に相当するラインメモリを要する。たとえば、約１０ミリ程度（２１６ライン分とする）のズレに対応するためには、１０８ライン分（斜線部Ａは三角形なので２１６ラインの半分）のメモリを要してしまう。
【０００４】
一方、デジタル複写機などの装置では、原稿を読み取って得た画像データを一度メモリに格納した後、再度メモリから読み出し適切な画像処理を施した上で画像を出力する方式を採用している。画像データのデータ量は、たとえばＡ３サイズの原稿一面につき約２００メガバイトと非常に大きいので、通常、画像データは圧縮してメモリに格納される。そして、その圧縮方式としては画像を４×４などのブロックに分割してブロック単位に圧縮する、ＢＴＣ圧縮やＪＰＥＧ圧縮などが使用される。この圧縮・伸張に伴うブロック単位での画像データの読み出しおよび書き込み動作においてブロック毎の画像の配列を工夫することにより、画像の回転処理を行う技術がある。
【０００５】
また、メモリに格納された画像データを画像の傾き角度に応じたサイズおよび形状のブロック単位に分割し、各ブロックの相対位置を画素単位にずらしてメモリ上に再配置することで、画像の傾きを補正する技術がある。またこの技術ではブロック単位での圧縮と伸張を行う際に上記の再配置が行われる（たとえば、特許文献１参照。）。
【０００６】
【特許文献１】特開２００６−２０３７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ブロックの配列変更によって画像を回転させる技術をスキュー補正に適用した場合には、最小補正量がブロックサイズになるので、たとえば、図１３（ａ）の画像が同図（ｂ）に示すように補正され、画像の連続性が失われて画質が著しく低下してしまう。
【０００８】
特許文献１に記載の技術では、各ブロックの相対位置を画素単位にずらしてメモリ上に再配置するので最小補正量は１画素になるが、１画素未満の微小な補正はできないので、画質が劣化してしまう。また、傾き角度に応じてブロックサイズが変化するので、処理が複雑になる。さらにブロックサイズが小さい場合は圧縮率が下がり、ブロックサイズが大きくなると不可逆圧縮に基づく画質の劣化が大きくなる。また、各ブロックの相対位置をずらしてメモリ上に再配置するので、再配置用に少なくとも図６の斜線部Ａと同等のメモリ領域が必要になり、コストが嵩むなどの問題があった。
【０００９】
本発明は、上記の問題を解決しようとするものであり、少ない必要メモリ量で画像のスキューを補正することのできる画像処理装置、およびスキュー補正時の画質劣化が少ない画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１１】
［１］第１方向とこれに直交する第２方向とに画素が並ぶ画像の第２方向のズレを補正する画像処理装置において、
各画素に対する第２方向のズレの補正量を、所定のブロックの第２方向のサイズを単位にした第１シフト量と、前記ブロックの第２方向のサイズ未満であって画素単位の第２シフト量と、１画素未満の第３シフト量とに分解するシフト量演算部と、
各画素の画像データを、第２方向へ第３シフト量だけシフトさせる微小シフト部と、
各画素の画像データを、第２方向へ第２シフト量だけシフトさせる画素単位シフト部と、
前記ブロックを単位に画像データを圧縮して記憶する処理と、該圧縮して記憶した画像データを読み出して伸張しブロック単位にメモリ上に配置する処理とを行う過程で各ブロックの画像データを第２方向へ第１シフト量だけシフトさせるブロック単位シフト部と
を有する
ことを特徴とする画像処理装置。
【００１２】
上記発明では、各画素に対する第２方向のズレの補正量を、ブロック単位の第１シフト量と、画素単位の第２シフト量と、１画素未満の第３シフト量とに分解し、１画素未満の微小シフトは微小シフト部で、画素単位のシフトは画素単位シフト部で、ブロック単位のシフトはブロック単位シフト部で行う。また、ブロック単位のシフトは、ブロック単位に画像データを圧縮して記憶する処理と、この圧縮データを読み出して伸張しブロック単位にメモリ上に配置する処理とを行う過程で行う。たとえば、圧縮データを画像メモリに格納する際の配列や画像メモリから圧縮データを読み出す際の読み出し順序を制御することによってブロック単位のシフトを行う。これにより、非圧縮の画像データに対しては画素単位のシフトと１画素未満のシフトを実行すればよくなり、必要なメモリ容量を削減することができる。
【００１３】
［２］入力される画像データに対して、前記補正を、微小シフト部、画素単位シフト部、ブロック単位シフト部の順で行う
ことを特徴とする［１］に記載の画像処理装置。
【００１４】
上記発明では、入力時は、画像データを入力し、圧縮して格納するという順序で画像データが流れるので、その順序に従ってシフト処理を行う。すなわち、圧縮する前に、微小シフトと画素単位シフトとを行い、圧縮時にブロック単位のシフトを行う。
【００１５】
［３］出力する画像データに対して、前記補正を、ブロック単位シフト部、画素単位シフト部、微小シフト部の順で行う
ことを特徴とする［１］に記載の画像処理装置。
【００１６】
上記発明では、出力時は、圧縮データを読み出し、伸張して出力するという順序で画像データが流れるので、その順序に従ってシフト処理を行う。すなわち、圧縮データを読み出して伸張する際にブロック単位のシフトを行い、その後、画素単位のシフトと微小シフトとを行う。
【００１７】
［４］前記圧縮は、ＢＴＣ圧縮である
ことを特徴とする［１］乃至［３］のいずれか１つに記載の画像処理装置。
【００１８】
［５］前記圧縮は、ＪＰＥＧ圧縮である
ことを特徴とする［１］乃至［３］のいずれか１つに記載の画像処理装置。
【００１９】
［６］前記シフト量演算部は、第２方向のズレの補正量を第１シフト量と第２シフト量と第３シフト量に分解することに代えて、前記補正量を第１シフト量と第２シフト量とに分解し、
前記微小シフトを設けずに、第２方向のズレを、前記画素単位シフト部とブロック単位シフト部とで補正する
ことを特徴とする［１］乃至［５］のいずれか１つに記載の画像処理装置。
【００２０】
上記発明では、各画素に対する第２方向のズレの補正量を、ブロック単位の第１シフト量と、画素単位の第２シフト量とに分解し、画素単位のシフトは画素単位シフト部で、ブロック単位のシフトはブロック単位シフト部で行う。１画素未満のシフト量は切り捨てる、あるいは四捨五入して画素単位のシフト量に反映させるなどにすればよい。
【００２１】
［７］前記微小シフト部は、１画素未満のシフトを補間処理によって行う
ことを特徴とする［１］乃至［５］のいずれか１つに記載の画像処理装置。
【００２２】
上記発明では、線形補間やキュービック・コンボリューション法などの補間処理によって画素位置を仮想的にシフトさせる。
【００２３】
［８］第２方向のズレの補正によって生じる第１方向の倍率変化を補正する第１方向変倍処理部をさらに有する
ことを特徴とする［１］乃至［７］のいずれか１つに記載の画像処理装置。
【００２４】
上記発明では、第２方向のシフト処理によって生じる画像の倍率変化が変倍処理によってキャンセルされる。
【００２５】
［９］第２方向のズレの補正前もしくは補正後に、第１方向のズレを補正する第１方向シフト部を設け、
前記第１方向のズレの補正と前記第２方向のズレの補正とを組み合わせて画像の傾きを補正する
ことを特徴とする［１］乃至［８］のいずれか１つに記載の画像処理装置。
【００２６】
上記発明では、第１方向のズレの補正と第２方向のズレの補正とを組み合わせることで画像の傾きを補正する。
【００２７】
［１０］第１方向のズレの補正によって生じる第２方向の倍率変化を補正する第２方向変倍処理部をさらに有する
ことを特徴とする［９］に記載の画像処理装置。
【００２８】
上記発明では、第１方向のシフト処理によって生じる画像の倍率変化が変倍処理によってキャンセルされる。
【発明の効果】
【００２９】
本発明に係わる画像処理装置によれば、画像のスキューを補正するためのシフトをブロック単位でのシフトとブロックサイズ未満のシフトとに分けて行うと共に、ブロック単位に画像データを圧縮・伸張する過程でブロック単位でのシフトを行うようにしたので、少ない必要メモリ量で画像のスキューを補正することができる。また、１画素未満の微小シフトを行うものでは、補正による画質劣化を少なく抑えることができる。
【発明を実施するための最良の形態】
【００３０】
以下、図面に基づき本発明の各種実施の形態を説明する。
【００３１】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に係わる画像処理装置１０の主要部の構成を表わしている。画像処理装置１０は、スキャナで原稿画像を読み取り、その複製画像を記録紙上に作成して出力するコピー機能やプリンタ機能、ファクシミリ機能などを備えた、いわゆるデジタル複合機として構成されている。図１は、画像処理装置１０のうち、画像データの処理経路およびその周辺回路を示している。
【００３２】
原稿は、図示省略の自動原稿送り装置によって搬送され、その搬送経路の途中に配置されたラインイメージセンサ１１を用いて、いわゆる流し読み方式で原稿画像が読み取られる。すなわち、ラインイメージセンサ１１は、原稿の搬送方向である副走査方向Ｙ（第２方向）と直交する主走査方向Ｘ（第１方向）に１ライン分の長さを有しており、原稿がラインイメージセンサ１１の受光部上を通過する間にライン単位の読み取り動作を繰り返し行なうことで原稿画像を２次元に読み取るようになっている。たとえば、ラインイメージセンサ１１はＣＣＤ（Charge Coupled Device）イメージセンサとして構成される。
【００３３】
ＤＦ制御部１２は、自動原稿送り装置の動作を制御する機能を果たす。ＤＦ制御部１２は、自動原稿送り装置で搬送中の原稿がラインイメージセンサ１１上を通過する期間（原稿が読み取られる有効期間）を示す垂直同期信号１３を出力する。
【００３４】
ＣＣＤ駆動回路１５は、ラインイメージセンサ１１に、画素単位の出力タイミングを示すクロック信号１６とライン単位の出力タイミングを示す水平同期信号１７とを供給する回路である。Ａ／Ｄ変換部１８は、ラインイメージセンサ１１が出力するアナログの画像信号を多値のデジタル画像信号に変換する。入力画像処理部１９は、Ａ／Ｄ変換部１８から入力されるデジタル画像信号にシェーディング補正や階調補正などの処理を施す。
【００３５】
主走査／副走査変倍部２１は、入力画像処理部１９から入力される画像データに、主走査方向の拡大／縮小処理および副走査方向の拡大／縮小処理を施して、画像の主走査方向と副走査方向の倍率を変える機能を果たす。
【００３６】
主走査／副走査変倍部２１の出力する画像データは、主走査シフト部２３および副走査シフト部３０を順に経て画像メモリ２４に格納される。主走査シフト部２３は、入力される各ラインの画像データを主走査方向にシフトさせる機能を果たす。副走査シフト部３０は主走査シフト部２３から入力される画像データを副走査方向にシフトさせる機能を果たす。主走査方向のシフトと副走査方向のシフトとを組み合わせることで画像の傾斜を補正するようになっている。また、シフトに伴って生じる画像の倍率変化（拡大する方向に向かう）を主走査／副走査変倍部２１での変倍処理（縮小処理）によってキャンセルして補償するようになっている。
【００３７】
副走査シフト部３０は、主走査シフト部２３から画像データが入力される微小シフト部３１と、微小シフト部３１を経た画像データが入力される画素単位シフト部３２と、画素単位シフト部３２を経た画像データが入力されるブロック単位シフト部３３とを備えている。ブロック単位シフト部３３は、画像データをブロック単位（たとえば、４×４画素のブロック）に分割して圧縮するＢＴＣ圧縮部３４と、圧縮した画像データ（圧縮データ）の画像メモリ２４への格納を制御するメモリＩ／Ｆ（Interface）３５を備えている。
【００３８】
ブロック単位シフト部３３はブロックの副走査方向のサイズを単位シフト量としたシフト(ブロック単位のシフト)を受け持ち、画素単位シフト部３２は１画素を単位シフト量とした画素単位のシフトをブロックの副走査方向サイズ未満のシフト量で受け持ち、微小シフト部３１は１画素未満のシフトを受け持つ。
【００３９】
ＢＴＣ圧縮部３４は、ＢＴＣ（Block Truncation Coding）方式と称される圧縮方式で画像データを圧縮する。ＢＴＣ方式は、画像を所定画素数のブロックに分割し、各ブロックを、そのブロック内の画素の階調分布範囲を示す指標（たとえば、階調分布範囲の中間値と広さ）と、ブロック内の各画素の階調値を前記階調分布範囲内において元の画像データの階調数より少ない階調数で量子化して表した符号データとで表す圧縮方式である。圧縮方式は、ＢＴＣ圧縮に限らず、たとえばＪＰＥＧ(Joint Photographic Experts Group)方式などでもかまわない。
【００４０】
傾斜検知部４０は、前述した図示省略の自動原稿送り装置によって搬送される原稿の傾斜角度を検知する回路である。傾斜検知部４０は、搬送経路の幅方向（主走査方向）に間隔をあけて配置された第１センサ４１および第２センサ４２と、カウンタ回路４５と、ラッチ回路４６とを主要部として構成される。
【００４１】
第１センサ４１と第２センサ４２とは、原稿の幅方向両端に近い部分に配置するとよい。第１センサ４１の出力信号４１ａおよび第２センサ４２の出力信号４２ａは、通常はローレベルで、搬送される原稿を検知している間だけハイレベルに変化し、第１センサ４１と第２センサ４２のいずれかが先に原稿を検知するとＯＲ回路４３からスタート信号４３ａが出力され、その後、第１センサ４１と第２センサ４２の双方が原稿を検知するとＡＮＤ回路４４からストップ信号４４ａが出力されるようになっている。
【００４２】
カウンタ回路４５には、水平同期信号１７とスタート信号４３ａとストップ信号４４ａとが入力されており、スタート信号４３ａが入力されてからストップ信号４４ａが入力されるまでの間に入力された水平同期信号１７の数を計数し、その計数結果を示す角度判別信号４５ａを出力する。
【００４３】
ＡＮＤ回路４７の出力は、スタート信号４３ａの出力時点で第１センサ４１が先に原稿を検知しているときハイレベルとなり、第２センサ４２が先に原稿を検知しているときローレベルになる。ラッチ回路４６は、スタート信号４３ａが出力された時点のＡＮＤ回路４７の出力値を保持する回路であり、原稿が右傾斜か左傾斜かを示す左右判別信号４６ａを出力する。
【００４４】
傾斜角度算出部２５には角度判別信号４５ａおよび左右判別信号４６ａが入力される。傾斜角度算出部２５は、角度判別信号４５ａが示すライン数と、第１センサ４１と第２センサ４２との間の距離（これは既知）と、左右判別信号４６ａとから傾斜角度Ｄを算出する。
【００４５】
傾斜角度算出部２５の算出した傾斜角度Ｄは主走査／副走査変倍率算出部２２と、主走査シフト量算出部２６と、副走査シフト量算出部２７とにそれぞれ入力される。
【００４６】
主走査シフト量算出部２６は、主走査／副走査変倍部２１で処理されるライン（処理ライン）の副走査方向位置を垂直同期信号１３に基づいて求める。たとえば、垂直同期信号１３の変化時から水平同期信号１７をカウントして副走査方向位置を求める。そして、この副走査方向位置および傾斜角度Ｄから、画像の傾きを補正するためにその処理ラインに対して必要とされる主走査方向のシフト量（主走査シフト量Ｘｓ）を算出して主走査シフト部２３に与える機能を果たす。
【００４７】
副走査シフト量算出部２７は、傾斜角度Ｄが示す画像の傾きを補正するために必要な副走査方向のシフト量（副走査シフト量Ｙｓ）を算出して副走査シフト量分解部２８に与える。
【００４８】
副走査シフト量分解部２８は、副走査シフト量算出部２７の求めた副走査シフト量Ｙｓを、ブロックの副走査方向のサイズを単位シフト量としたブロック単位でのシフト量（ブロック単位シフト量ＹＢ、第１シフト量）と、ブロックの副走査方向のサイズ未満における画素単位のシフト量（画素単位シフト量ＹＤ、第２シフト量）と、１画素未満のシフト量（微小シフト量ＹＦ、第３シフト量）とに分解し、ブロック単位シフト量ＹＢをブロック単位シフト部３３に、画素単位シフト量ＹＤを画素単位シフト部３２に、微小シフト量ＹＦを微小シフト部３１にそれぞれ与える。
【００４９】
主走査／副走査変倍率算出部２２は、傾斜角度Ｄの示す画像の傾きを主走査シフト部２３および副走査シフト部３０でシフト処理によって補正した場合に生じる画像の倍率変化を補償するための主走査方向の変倍率および副走査方向の変倍率を求め、これらを主走査／副走査変倍部２１に与える。
【００５０】
ＢＴＣ伸張部５１は、画像メモリ２４に格納されている圧縮データを読み出して伸張する機能を果たす。伸張後の画像データは出力部５２へ入力される。出力部５２は出力画像処理部およびプリンタＩ／Ｆ、プリンタ部で構成され、プリンタ部は入力された画像データに対応する画像を用紙上に形成して出力する機能を果たす。
【００５１】
次に、主走査シフト、副走査シフトに関連する各部の動作をさらに詳しく説明する。
【００５２】
図２は、主走査シフト部２３への入力画像６１と、主走査シフト部２３で処理後の出力画像６２とを対比して模擬的に示している。ここでは説明を分かり易くするために各ラインを太幅に示す。図中、読み取り領域Ｒ内の無地部分は原稿領域を、斜線部分は原稿外領域を示している。
【００５３】
図２（ａ）の入力画像６１における原稿領域の傾きを補正するために各ラインに必要な主走査方向のシフト量は、原稿領域の傾斜角度Ｄと各ラインの副走査方向位置とに基づいて算出される。たとえば、同図（ｂ）の副走査方向の位置ｙにある主走査方向の処理ラインＬｃに対する主走査シフト量Ｘｓ（ｙ）は、
Ｘｓ（ｙ）＝ｙ ×  ｔａｎＤ  
で求められる。主走査シフト量算出部２６は、このようにしてライン毎に主走査シフト量Ｘｓを求め、主走査シフト部２３は主走査シフト量算出部２６の求めた主走査シフト量Ｘｓに応じて各ラインの画像データを主走査方向にシフトさせることにより、図２（ｂ）に示す出力画像６２を生成する。
【００５４】
図３は、副走査シフト部３０への入力画像６４と、副走査シフト部３０で処理後の出力画像６５とを対比して模擬的に示している。図３では、画像を副走査方向の各ラインＬｖに区分して示してある。また、入力画像６４内の無地部分は原稿領域を、斜線部分は原稿外領域を示している。
【００５５】
図３（ａ）の入力画像６４における原稿領域の副走査方向のズレを補正するために必要な副走査シフト量Ｙｓ（ｘ）は、図３（ｂ）に示すように主走査方向位置ｘに依存して異なる。そこで、副走査シフト部３０は水平同期信号１７とクロック信号１６とから現在の主走査方向位置ｘを求め、その主走査方向位置ｘおよび傾斜角度Ｄから各主走査方向位置ｘの対象画像における副走査シフト量Ｙｓ（ｘ）を算出する。
【００５６】
図４は、副走査シフト量分解部２８によるシフト量の分解例を示している。図４（ａ）に示すように主走査方向の位置ｘにおける副走査シフト量ＹｓをＹｓ（ｘ）とする。また、ブロックの副走査方向サイズは４画素とする。この場合、主走査方向の位置ｘにおけるブロック単位シフト量ＹＢ（ｘ）は、
ＹＢ（ｘ）＝Ｉｎｔ（Ｙｓ（ｘ）／４）
となる（ＹＢ（ｘ）の単位はブロック）。また主走査方向の位置ｘにおける画素単位シフト量ＹＤ（ｘ）は、
ＹＤ（ｘ）＝Ｉｎｔ（Ｙｓ（ｘ）−４×ＹＢ（ｘ））
となる（ＹＤ（ｘ）の単位は画素）。また主走査方向の位置ｘにおける微小シフト量ＹＦ（ｘ）は、
ＹＦ（ｘ）＝Ｙｓ（ｘ）−４×ＹＢ（ｘ）−ＹＤ（ｘ）
となる（ＹＦ（ｘ）の単位は画素）。なお、Ｉｎｔ（α）はαの整数部分である。
【００５７】
すなわち、主走査方向の位置ｘにおける副走査シフト量Ｙｓ（ｘ）を、まず、ブロック単位に分割し、分割されたブロック数をブロック単位シフト量ＹＢ（ｘ）として算出する。次に、副走査シフト量Ｙｓ（ｘ）から分割されたブロック分の画素数を減算した余りを画素（整数）で分割し、分割できた画素数を画素単位シフト量ＹＤ（ｘ）とする。最後に，副走査シフト量Ｙｓ（ｘ）からブロック単位シフト量のブロック分の画素数および画素単位シフト量の画素数を減算したものを微小シフト量ＹＦ（ｘ）に割りあてる。
【００５８】
図４（ｂ）は、副走査シフト量Ｙｓをブロック単位シフト量ＹＢと画素単位シフト量ＹＤと微小シフト量ＹＦに分解した状態を例示している。たとえば、ブロックの副走査方向サイズが４画素で副走査シフト量Ｙｓが１３.４画素の場合には、
ＹＢ＝３（３ブロック分副走査方向にシフトさせる）
ＹＤ＝１（１画素分副走査方向にシフトさせる)
ＹＦ＝０.４（０.４画素分副走査方向にシフトさせる)
というように分解される。
【００５９】
図５は、微小シフト部３１による１画素未満のシフト処理を例示したものである。１画素未満のシフトは、シフト量に相当する位置の画素を副走査方向の周辺画素から推定し補間処理を行うことで実現する。補間処理は，周辺４画素を参照したキュービック・コンボリューション法や、周辺２画素を参照とした線形補間法などの任意の補間処理でよい。図５は２画素を参照する線形補間による微小シフトを示している。図中の黒丸は補間前の画素位置であり、白抜き黒丸は補間後の画素位置であり、矢印はシフト量を示している。
【００６０】
次に、画素単位シフトおよびブロック単位シフトについて説明する。
【００６１】
図６（ａ）の画像Ｆ１を図６（ｂ）の画像Ｆ２のように補正するものとする。図７（ａ）、（ｂ）は、画素単位シフト部３２による画素単位のシフト処理の概念を示している。画素単位シフト部３２は、微小シフト部３１による微小シフト済みの画像データをラインメモリ７０を用いて７ライン分保持し、主走査方向Ｘの各位置において、副走査方向Ｙに並ぶ７画素の中から、画素単位シフト量ＹＤ（ｘ）に応じた４画素を選択し、各選択した副走査方向の４画素を主走査方向に４組連ねて選択することでＢＴＣ圧縮での圧縮対象となる４×４画素のブロック（Ａ３、Ａ４など）を選択する(図７（ａ）)。該選択処理により、図７（ｂ）に示すように実質的に画素単位のシフトが行われる。
【００６２】
たとえば、図７（ａ）のＡ３ブロックの右寄り第１列ｖ１および第２列ｖ２では、画素単位のシフト量が１画素であるため、下端から２画素目〜５画素目までの４画素が選択され、Ａ３ブロックの第３列ｖ３および第４列ｖ４では、画素単位シフト量が２画素であるため、下端から３画素目〜６画素目までの４画素が選択されている。
【００６３】
ブロック単位シフト部３３は、画素単位シフト部３２で選択した各ブロックに対してブロック単位でＢＴＣ圧縮（ＪＰＥＧ圧縮などでもよい）を施す(図７（ｃ）)。そして、圧縮データａ３、ａ４…を画像メモリ２４へ格納する際に、副走査シフト量分解部２８から与えられたブロック単位シフト量ＹＢに応じて、各圧縮データａ３、ａ４…の格納先のアドレスを設定する（図７（ｄ））。各圧縮データａ３、ａ４…は、各ブロックの圧縮データを伸張して構成される１ページ分の画像内での各ブロックの配置に対応するように配列されて画像メモリ２４に格納される。
【００６４】
図７（ｄ）ではＡ３からＡ６のブロックの圧縮データａ３〜ａ６に対してＡ７からＡ１０のブロックの圧縮データａ７〜ａ１０を１ブロック分副走査方向にシフトさせて配列している。図８（ａ）は、画像メモリ２４への圧縮データの格納状態をより広範囲に示している。図７（ｄ）に示すＡ３〜Ａ１０を含む着目４ラインの各ブロックの圧縮データａ０〜ａ１５は図８（ａ）の太枠で囲ったブロック群である。
【００６５】
画像メモリ２４に格納された圧縮データの読み出しは、図８（ｂ）の矢印７５が示す順序で行われる。これにより、圧縮データを伸張した各ブロックの画像データは、画像メモリ２４内での圧縮データの配置に対応した位置（ページ内の位置）に配置される。したがって、圧縮データを画像メモリ２４に格納する際にその圧縮データの配置をブロック単位シフト量ＹＢに応じてシフトさせることで、伸張後の画像上でブロック単位のシフトが実現される。
【００６６】
図９は、副走査シフト部３０の回路構成をより詳細に示したものである。微小シフト部３１の手前には、３ライン分のラインメモリを構成するＦＩＦＯ（First-In First-Out）メモリ８１ａ、８１ｂ、８１ｃが設けてある。微小シフト部３１には、主走査シフト部２３から入力される現ラインと、その１ライン前と、２ライン前と、３ライン前の合計４ライン分の画像データが並列にされて順次入力される。微小シフト部３１はこれら並列に入力される４ラインの画像データに基づいて補間処理を行って１画素未満の微小シフトを行う。
【００６７】
画素単位シフト部３２の手前には、６ライン分のラインメモリを構成するＦＩＦＯメモリ８２ａ〜８２ｆが設けてある。画素単位シフト部３２には、微小シフト部３１から入力される現ラインと、その１ライン前と、２ライン前と、３ライン前と、４ライン前と、５ライン前と、６ライン前の合計７ライン分の画像データが並列に順次入力される。画素単位シフト部３２は、並列に入力される副走査方向に並ぶ７画素の中から画素単位シフト量ＹＤ（ｘ）に応じた位置の４画素を選択して、ＢＴＣ圧縮用１ライン目データ８４ａ、ＢＴＣ圧縮用２ライン目データ８４ｂ、ＢＴＣ圧縮用３ライン目データ８４ｃ、ＢＴＣ圧縮用４ライン目データ８４ｄを順次出力する。
【００６８】
画素単位シフト部３２の後段には、ＢＴＣ圧縮用１ライン目データ８４ａ、ＢＴＣ圧縮用２ライン目データ８４ｂ、ＢＴＣ圧縮用３ライン目データ８４ｃ、ＢＴＣ圧縮用４ライン目データ８４ｄの各系列に対応させて、３段にカスケード接続されたフリップフロップ回路８５が設けてあり、４クロック毎に４×４の１６画素分の画像データがＢＴＣ圧縮の対象となる１ブロック分の画像データとしてＢＴＣ圧縮部３４に入力される。ライトアドレス選択部８６は、ＢＴＣ圧縮部３４が出力する圧縮データ（メモリライトデータ）を画像メモリ２４に格納する際のアドレス（メモリライトアドレス）を生成する。
【００６９】
以上のように第１の実施の形態の画像処理装置１０は、原稿の傾斜角度を検知し、該傾斜を補正するために必要な主走査シフト量Ｘｓと、副走査シフト量Ｙｓを求め、このシフト量Ｘｓ、Ｙｓにしたがって主走査方向シフトおよび副走査方向シフトを行うので、比較的処理が容易なシフト処理により、傾斜の補正された画像を得ることができる。
【００７０】
また、シフト処理に伴って生じる画像の倍率変化がキャンセルされるように主走査／副走査変倍部２１で画像を変倍処理するので、傾斜が補正されかつ倍率変化のない画像を得ることができる。
【００７１】
また、副走査シフト量Ｙｓをブロック単位シフト量ＹＢと、画素単位シフト量ＹＤと、微小シフト量ＹＦとに分解し、ブロック単位のシフトをＢＴＣ圧縮した圧縮データの配列制御によって行う。これにより、非圧縮の画像データに対してはブロックサイズ未満のシフト処理を行うだけで済み、非圧縮の状態でのシフト量が少なくなって、シフト用に保有すべきメモリ容量を少なくすることができる。たとえば、圧縮を４画素×４画素のブロックで処理する場合は、傾き補正機能を搭載することにより増加する実質のメモリ容量は２.５ライン分で済む（微小シフト処理として線形補間アルゴリズムを用いた場合）。
【００７２】
また，微小シフト部３１での微小シフトおよび画素単位シフト部３２での画素単位シフトを原稿の読み取り動作と同時並行にリアルタイムに実行した後で、画像メモリ２４への格納を行うので、補正処理が容易かつ高速に実現される。また、圧縮処理を施した後の圧縮データを格納する際にブロック単位のシフトを行うので、ブロック単位のシフト処理で処理するデータ量が減少し、画像データ格納用メモリの容量削減、メモリインターフェースのスループットの向上が可能である。
【００７３】
さらに、主走査方向の任意の画素位置で副走査方向のシフト量を変化させることができる（すなわち、ブロックの境界以外でも画素単位のシフト量を変更できる）ので、ブロックサイズを固定にしたままで任意の傾斜角度に対応したシフトを行うことができる。また、１画素未満のシフトも行うので、より高精度な補正が可能となり、補正による画質劣化が抑制される。
【００７４】
＜第２の実施の形態＞
図１０は、第２の実施の形態に係る画像処理装置１００の構成を示している。第１の実施の形態では主走査方向のシフトと副走査方向のシフトとを行うことで画像の傾きを補正したが、第２の実施の形態の画像処理装置１００は、主走査方向のシフトは行わずに副走査方向のシフトを行う。画像処理装置１００は、副走査方向のシフトを行うことで、ラインイメージセンサ１１の取り付け角度のスキューを補正するようになっている。なお、第１の実施の形態の画像処理装置１０と同一部分には同一の符号を付してあり、それらの説明は適宜省略する。
【００７５】
画像処理装置１００は、主走査方向シフトを行わないので、図１に示す画像処理装置１０の有する主走査／副走査変倍部２１に代えて主走査の変倍のみを行う主走査変倍部１０１を、主走査／副走査変倍率算出部２２に代えて主走査の変倍率のみを算出する主走査変倍率算出部１０２を備えている。また、主走査シフト部２３および主走査シフト量算出部２６は具備していない。
【００７６】
また、原稿の傾斜角度を計測するために設けた傾斜検知部４０および傾斜角度算出部２５は備えず、これらに代えて、ラインイメージセンサ１１のスキュー角度(傾斜角度Ｄ)を示す情報をレジスタ部１０３から取得するようになっている。ここでは、装置の工場出荷行程などにおいて、ラインイメージセンサ１１の傾斜角度を測定し、この傾斜角度を示す傾斜角度情報を当該デジタル複合機に実装されている不揮発性メモリ１０５に記憶するようになっている。
【００７７】
画像読み取り時には、ＣＰＵ（Central Processing Unit）１０６が傾斜角度情報を不揮発性メモリ１０５から読み出し、ＣＰＵＩ／Ｆ１０７経由でレジスタ部１０３へ格納し、その傾斜角度情報の示す傾斜角度Ｄがレジスタ部１０３から副走査シフト量算出部２７および主走査変倍率算出部１０２へ出力されるようになっている。
【００７８】
主走査変倍率算出部１０２はレジスタ部１０３から入力された傾斜角度Ｄに基づいて、その傾斜角度を副走査方向のシフトで補正した場合に生じる主走査方向の倍率変化量を補償するための主走査方向の変倍率を算出して主走査変倍部１０１に与える。主走査変倍部１０１は入力画像処理部１９から入力される画像データを、主走査変倍率算出部１０２から与えられた主走査方向変倍率に従って変倍する。
【００７９】
傾斜角度Ｄに基づく副走査方向のシフト動作については第１の実施の形態と同様であり、その説明は省略する。
【００８０】
このように、第２の実施の形態の画像処理装置１００では、ラインイメージセンサ１１のスキューを、副走査方向への画像のシフトによって補正するので、ラインイメージセンサ１１の取り付け角度の調整精度が良くない場合でも、スキューによる歪みのない画像を得ることができる。
【００８１】
＜第３の実施の形態＞
第１、第２の実施の形態では、読み取り系（ラインイメージセンサ１１のスキュー、原稿の傾き）の補正について説明したが、第３の実施の形態に係る画像処理装置２００では、書き込み系で生じるスキューを補正する。たとえば、レーザープリンタのプリントヘッドのスキューなどによって生じる画像の歪みを補正する。
【００８２】
図１１は、画像処理装置２００の主要部（書き込み系補正に関連する部分）の構成を示している。図１の画像処理装置１０もしくは図１０の画像処理装置１００と同一部分には同一の符号を付してあり、それらの説明は適宜省略する。
【００８３】
画像処理装置２００では、入力画像処理部１９の出力する画像データは、そのままＢＴＣ圧縮部２０１で圧縮されて画像メモリ２４に格納される。また、不揮発性メモリ１０５には、装置の工場出荷行程などにおいて測定された書き込み系（プリントヘッドなど）の傾斜角度を示す傾斜角度情報が記憶されている。
【００８４】
書き込み系のスキューを補正するための副走査方向のシフト処理は、画像メモリ２４に格納されている圧縮データを伸張して出力部５２へ出力する過程で行われる。また、シフト処理は、ブロック単位シフト、画素単位シフト、微小シフトの順に行われる。
【００８５】
副走査シフト部２１０は、ブロック単位シフト部２１１と、画素単位シフト部３２と、微小シフト部３１とを備えている。ブロック単位シフト部２１１は、ＢＴＣ圧縮アルゴリズムで圧縮されている圧縮データを伸張するＢＴＣ伸張部２１４と、メモリＩ／Ｆ２１５とを有する。
【００８６】
メモリＩ／Ｆ２１５は、画像メモリ２４から各ブロックの圧縮データを読み出してＢＴＣ伸張部２１４に与える。このとき、メモリＩ／Ｆ２１５は副走査シフト量分解部２８から与えられるブロック単位シフト量ＹＢに応じて、画像メモリ２４から各ブロックの圧縮データを読み出す際の読み出し順序を変更することで、ブロック単位のシフトを行うようになっている。
【００８７】
図１２（ａ）は、メモリＩ／Ｆ２１５による圧縮データの読み出し例を示している。矢印２２１が示す順序で各ブロックの圧縮データを読み出すことにより、伸張後のページ内では各ブロックのデータは図１２（ｂ）に示すように配列された状態になる。
【００８８】
ＢＴＣ伸張部２１４でメモリＩ／Ｆ２１５から与えられる順序で各ブロックの圧縮データを伸張して得た画像データはブロック単位に画素単位シフト部３２に与えられる。画素単位シフト部３２は副走査シフト量分解部２８から与えられる画素単位シフト量ＹＤに応じて画素単位のシフト処理を行う。微小シフト部３１は画素単位シフト部３２から入力される画像データに対して副走査シフト量分解部２８から与えられる微小シフト量ＹＦに従って１画素未満のシフトを補間処理などによって行う。
【００８９】
微小シフト部３１の後段には主走査変倍部１０１が設けてあり、主走査変倍部１０１は微小シフト部３１から入力される画像データを主走査変倍率算出部１０２から与えられる変倍率に従って変倍した後、出力部５２に送り出す。
【００９０】
このように、書き込み系のスキュー補正は、画像データを出力する際に、ブロック単位シフト、画素単位シフト、１画素未満の微小シフトの順に行われる。該副走査方向への画像のシフトを行うことで、プリントヘッドの取り付け角度の調整精度が良くない場合でも、書き込み系のスキューによる歪みのない画像を得ることができる。
【００９１】
以上、本発明の各種実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【００９２】
実施の形態では、副走査シフト量Ｙｓをブロック単位シフト量ＹＢと画素単位シフト量ＹＤと微小シフト量ＹＦとに分解するようにしたが、微小シフトを行わないように構成されてもよい。たとえば、副走査シフト量Ｙｓをブロック単位シフト量ＹＢと画素単位シフト量ＹＤとに分解する。この際、１画素未満のシフト量は切り捨てても良いし、四捨五入などして画素単位シフト量に含ませるようにしてもよい。
【００９３】
また、第１の実施の形態では、スキャナで原稿画像を読み取った際の傾斜を補正するようにしたが、プリンタで搬送される記録紙の傾斜を検知し、記録紙に印刷する画像を記録紙の傾きを補正するように傾斜させる構成にしてもよい。すなわち、第３の実施の形態の構成に対して、微小シフト部３１の後段に主走査シフト部２３を設け、さらにその後段に、主走査変倍部１０１に代えて主走査／副走査変倍部２１を設け、主走査変倍率算出部１０２に代えて主走査／副走査変倍率算出部２２を設けるようにすればよい。また記録紙の傾き具合の計測は、原稿の傾斜を測定した傾斜検知部４０と同じ原理で行なえばよい。すなわち、記録紙の通紙経路に記録紙の幅方向に間隔を空けて２つのセンサを配置し、それらの通過タイミングの差から傾斜角度を検知すればよい。
【００９４】
なお、原稿や記録紙などの傾きの検知方法は実施の形態で例示したものに限定されない。たとえば、原稿画像の解析結果から傾斜角度を検出してもよい。また、原稿の読み取りに代えて画像データを外部装置から入力するような場合には、傾斜角度を外部装置からデータで受け取るように構成してもよい。
【００９５】
圧縮方式はＢＴＣ圧縮、ＪＰＥＧに限定されず、画像をブロックに分割して圧縮する圧縮方式であれば、任意でよい。
【図面の簡単な説明】
【００９６】
【図１】本発明の第１の実施の形態に係わる画像処理装置の主要部の構成を示すブロック図である。
【図２】主走査シフト部への入力画像と出力画像とを対比して例示した説明図である。
【図３】副走査シフト部への入力画像と出力画像とを対比して例示した説明図である。
【図４】副走査シフト量分解部によるシフト量の分解例を示す説明図である。
【図５】微小シフト部による１画素未満のシフト処理を例示した説明図である。
【図６】副走査方向のシフト前とシフト後の画像を例示した説明図である。
【図７】画素単位シフトおよびブロック単位シフトの処理概念を示す説明図である。
【図８】ブロック単位シフトされて画像メモリに格納された圧縮データの配列およびそれらの読み出し順序を示す説明図である。
【図９】副走査シフト部の回路構成を示すブロック図である。
【図１０】本発明の第２の実施の形態に係わる画像処理装置の主要部の構成を示すブロック図である。
【図１１】本発明の第３の実施の形態に係わる画像処理装置の主要部の構成を示すブロック図である。
【図１２】ブロック単位の副走査方向シフトを書き込み系で行う場合における画像メモリ内の圧縮データの配列およびそれらの読み出し順序を示す説明図である。
【図１３】ブロックの配列変更によって傾きを補正した画像例を示す説明図である。
【符号の説明】
【００９７】
１０…画像処理装置
１１…ラインイメージセンサ
１２…ＤＦ制御部
１３…垂直同期信号
１５…ＣＣＤ駆動回路
１６…クロック信号
１７…水平同期信号
１８…Ａ／Ｄ変換部
１９…入力画像処理部
２１…主走査／副走査変倍部
２２…主走査／副走査変倍率算出部
２３…主走査シフト部
２４…画像メモリ
２５…傾斜角度算出部
２６…主走査シフト量算出部
２７…副走査シフト量算出部
２８…副走査シフト量分解部
３０…副走査シフト部
３１…微小シフト部
３２…画素単位シフト部
３３…ブロック単位シフト部
３４…ＢＴＣ圧縮部
３５…メモリＩ／Ｆ
４０…傾斜検知部
４１…第１センサ
４１ａ…第１センサの出力信号
４２…第２センサ
４２ａ…第２センサの出力信号
４３…ＯＲ回路
４３ａ…スタート信号
４４…ＡＮＤ回路
４４ａ…ストップ信号
４５…カウンタ回路
４５ａ…角度判別信号
４６…ラッチ回路
４６ａ…左右判別信号
４７…ＡＮＤ回路
５１…ＢＴＣ伸張部
５２…出力部
６１…主走査シフト部への入力画像
６２…主走査シフト部の出力画像
６４…副走査シフト部への入力画像
６５…副走査シフト部の出力画像
７０…ラインメモリ
８１ａ〜８１ｃ…微小シフト用のＦＩＦＯメモリ
８２ａ〜８２ｆ…画素単位シフト用のＦＩＦＯメモリ
８４ａ…ＢＴＣ圧縮用１ライン目データ
８４ｂ…ＢＴＣ圧縮用２ライン目データ
８４ｃ…ＢＴＣ圧縮用３ライン目データ
８４ｄ…ＢＴＣ圧縮用４ライン目データ
８５…フリップフロップ回路
８６…ライトアドレス選択部
１００…画像処理装置
１０１…主走査変倍部
１０２…主走査変倍率算出部
１０３…レジスタ部
１０５…不揮発性メモリ
１０６…ＣＰＵ
１０７…ＣＰＵＩ／Ｆ
２００…画像処理装置
２０１…ＢＴＣ圧縮部
２１０…副走査シフト部
２１１…ブロック単位シフト部
２１４…ＢＴＣ伸張部
２１５…メモリＩ／Ｆ
２２１…読み出し順序を示す矢印
Ａ…補正量
Ｄ…傾斜角度
Ｌｃ…主走査方向の処理ライン
Ｌｖ…副走査方向に区分したライン
Ｒ…読み取り領域
Ｘｓ…主走査シフト量
ＹＢ…ブロック単位シフト量
ＹＤ…画素単位シフト量
ＹＦ…微小シフト量
Ｙｓ…副走査シフト量
【図１】
0004424414.tif 000002
【図２】
0004424414.tif 000003
【図３】
0004424414.tif 000004
【図４】
0004424414.tif 000005
【図５】
0004424414.tif 000006
【図６】
0004424414.tif 000007
【図７】
0004424414.tif 000008
【図８】
0004424414.tif 000009
【図９】
0004424414.tif 000010
【図１０】
0004424414.tif 000011
【図１１】
0004424414.tif 000012
【図１２】
0004424414.tif 000013
【図１３】
0004424414.tif 000014