(57)【要約】【課題】入力画像のデータから、現在処理対象の入力座標の画素の値だけを読み出す構成に比べて、傾き補正の処理を速く行うことが可能な技術を開示する。【解決手段】画像読取装置１は、補正後画像Ｇｏの各画素を配置すべき各補正後座標を、予め定められた指定順序に従って、対象補正後座標として指定し、傾き角度θを用いて、その対象出力座標に対応する補正前画像Ｇｉのデータの座標を、対象補正前座標として抽出する。更に、画像読取装置１は、対象補正後座標だけでなく、当該対象補正後座標よりも指定順序が下位の補正後座標に対応する補正前画像のデータの座標を、先行補正前座標として抽出し、先行補正前座標の画素の値を、補正前画像Ｇｉのデータからキャッシュ部２７に読み出す。【選択図】図２
2014071625.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ部、および、
基準角度の方向に対して傾いた入力画像のデータを前記キャッシュ部に読み出し、当該入力画像を、前記基準角度の方向に沿った出力画像に補正する傾き補正を行って、前記出力画像のデータを出力する傾き補正部を備える画像処理装置であって、
前記傾き補正部は、
前記出力画像の各画素を配置すべき各出力座標を、予め定められた指定順序に従って、対象出力座標として指定する指定処理部と、
前記基準角度に対する前記入力画像の傾き角度を用いて、前記対象出力座標に対応する前記入力画像のデータの座標を、対象入力座標として抽出する第１抽出処理部と、
前記傾き角度を用いて、前記対象出力座標よりも前記指定順序が下位の出力座標に対応する前記入力画像のデータの座標を、先行入力座標として抽出する第２抽出処理部と、
前記先行入力座標の画素の値を、前記入力画像のデータから読み出して前記キャッシュ部に記憶する先行読出部と、
前記対象入力座標の画素の値が前記キャッシュ部に記憶されていないかを判断し、記憶されていないと判断した場合、当該対象入力座標の画素の値を、前記入力画像のデータから読み出して前記キャッシュ部に記憶する対象読出部と、
前記キャッシュ部から、前記対象入力座標の画素の値を読み出して、前記対象出力座標の画素の値として出力する出力部と、
を備える画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記指定処理部は、前記各出力座標を、前記基準角度の方向に沿って指定し、
前記第２抽出処理部は、前記傾き角度が小さいほど前記対象出力座標との順位差が小さい前記下位の出力座標に対応する前記入力画像のデータの座標を、前記先行入力座標として抽出する、画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記第２抽出処理部は、
前記対象出力座標を先頭として前記指定順序に従う出力座標群に対応する前記入力画像のデータの座標群のうち、前記対象入力座標に対して前記基準角度の方向に直交する方向に最初にずれる座標を、前記先行入力座標として抽出する、画像処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の画像処理装置であって、
前記先行読出部は、前記入力画像のデータから当該先行入力座標の画素を含んで前記基準角度の方向に連続する複数個分の画素群の値を読み出し、前記キャッシュ部に記憶する構成である、画像処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の画像処理装置であって、
前記対象読出部は、前記入力画像のデータから当該対象入力座標の画素を含んで前記基準角度の方向に連続する複数個分の画素群の値を読み出し、前記キャッシュ部に記憶する構成である、画像処理装置。
【請求項６】
請求項１から５のいずれか一項に記載の画像処理装置であって、
前記キャッシュ部は、前記複数個分の画素群を記憶可能なキャッシュを複数有し、
前記先行読出処理部は、前記入力画像のデータから今回の前記先行入力座標の画素の値を、既に前記先行入力座標の画素の値が記憶されているキャッシュとは異なる他のキャッシュに記憶する、画像処理装置。
【請求項７】
請求項１から６のいずれか一項に記載の画像処理装置であって、
前記先行読出処理部は、
前記先行入力座標の画素の値が前記キャッシュ部に記憶されていないかを判断し、記憶されていないと判断した場合、当該先行入力座標の画素の値を、前記入力画像のデータから前記キャッシュ部に記憶する、画像処理装置。
【請求項８】
請求項１から７のいずれか一項に記載の画像処理装置であって、
更に、
前記入力画像のデータと前記出力画像のデータとが記憶される記憶部と、
前記傾き角度に関する角度情報を取得し、前記傾き補正部に入力する取得入力部と、
を備え、
前記傾き補正部は、前記記憶部に、前記対象入力座標の画素の値を、前記対象出力座標の画素の値として出力する、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
基準角度の方向に対して傾斜した入力画像を、当該基準角度の方向に沿った出力画像に補正する傾き補正を行うための技術に関する。
【背景技術】
【０００２】
従来から、スキャナで読み取った原稿画像の傾き角度を検知し、原稿画像を複数画素からなるブロック単位に分割し、各ブロックの配置アドレス（座標）を、傾き角度に応じて順次変更する画像処理装置がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２０３７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記従来の画像処理装置のように、読取画像の各画素の配置関係を傾き角度に応じて変更する場合、次の構成が考えられる。その画像処理装置は、出力座標に対応する傾き補正元の入力座標を求めた後、入力画像のデータから当該入力座標の画素の値を読み出し、上記出力座標の画素の値として出力する構成が考えられる。しかし、この画像処理装置では、入力画像のデータから、現在処理対象の入力座標の画素の値だけを読み出すため、結果として、傾き補正された出力画像のデータを出力するまでに時間がかかるという問題があった。
【０００５】
本明細書では、入力画像のデータから、現在処理対象の入力座標の画素の値だけを読み出す構成に比べて、傾き補正の処理を速く行うことが可能な技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される画像処理装置は、キャッシュ部、および、基準角度に対して傾いた入力画像のデータを前記キャッシュ部に読み出し、当該入力画像を、前記基準角度に沿った出力画像に補正する傾き補正を行って、前記出力画像のデータを出力する傾き補正部を備える画像処理装置であって、前記傾き補正部は、前記出力画像の各画素を配置すべき各出力座標を、予め定められた指定順序に従って、対象出力座標として指定する指定処理部と、前記基準角度の方向に対する前記入力画像の傾き角度を用いて、前記対象出力座標に対応する前記入力画像のデータの座標を、対象入力座標として抽出する第１抽出処理部と、前記傾き角度を用いて、前記対象出力座標よりも前記指定順序が下位の出力座標に対応する前記入力画像のデータの座標を、先行入力座標として抽出する第２抽出処理部と、前記先行入力座標の画素の値を、前記入力画像のデータから読み出して前記キャッシュ部に記憶する先行読出部と、前記対象入力座標の画素の値が前記キャッシュ部に記憶されていないかを判断し、記憶されていないと判断した場合、当該対象入力座標の画素の値を、前記入力画像のデータから読み出して前記キャッシュ部に記憶する対象読出部と、前記キャッシュ部から、前記対象入力座標の画素の値を読み出して、前記対象出力座標の画素の値として出力する出力部と、を備える。
【０００７】
この画像処理装置は、出力画像の各画素を配置すべき各出力座標を、予め定められた指定順序に従って、対象出力座標として指定し、傾き角度を用いて、その対象出力座標に対応する入力画像のデータの座標を、対象入力座標として抽出する。更に、画像処理装置は、対象出力座標だけでなく、当該対象出力座標よりも指定順序が下位の出力座標に対応する入力画像のデータの座標を、先行入力座標として抽出し、先行入力座標の画素の値を、入力画像のデータからキャッシュ部に読み出す。従って、対象入力座標の画素の値が、その先行入力座標の画素の値として、既に先行してキャッシュ部に記憶されていた場合は、その対象入力画像の画素の値をキャッシュ部に記憶させることなく、対象入力座標の画素の値を、対象出力座標の画素の値として出力することができる。これにより、入力画像のデータから、現在処理対象の入力座標の画素の値だけを読み出す構成に比べて、傾き補正の処理を速く行うことができる。
【０００８】
上記画像処理装置では、前記指定処理部は、前記各出力座標を、前記基準角度の方向に沿って指定し、前記第２抽出処理部は、前記傾き角度が小さいほど前記対象出力座標との順位差が小さい前記下位の出力座標に対応する前記入力画像のデータの座標を、前記先行入力座標として抽出してもよい。
【０００９】
この画像処理装置は、各出力座標を、基準角度の方向に沿って指定し、傾き角度が小さいほど対象出力座標との順位差が小さい下位の出力座標に対応する入力画像のデータの座標を、先行入力座標として抽出する。これにより角度の相違に関係なく、対象出力座標との順位差が常に同一の出力座標に対応する入力画像のデータの座標を、先行入力座標として抽出する構成に比べて、より確実に、処理の対象となり得る入力座標の画素の値を、先行してキャッシュ部に読み出すことができる。
【００１０】
上記画像処理装置では、前記第２抽出処理部は、前記対象出力座標を先頭として前記指定順序に従う出力座標群に対応する前記入力画像のデータの座標群のうち、前記対象入力座標に対して前記基準角度の方向に直交する方向に最初にずれる座標を、前記先行入力座標として抽出してもよい。
【００１１】
この画像読取装置は、対象出力座標を先頭として指定順序に従う出力座標群に対応する入力画像のデータの座標群のうち、対象入力座標に対して基準角度の方向に直交する方向に最初にずれる座標を、先行入力座標として抽出する。これにより、的確に対象入力座標の画素の値として必要とされる画素の値が、先行入力座標の画素の値としてキャッシュ部に記憶され、対象入力画像の画素の値をキャッシュ部に記憶させる必要がない場合が多くなるために、より速く傾き補正された出力画像のデータを出力することができる。
【００１２】
上記画像処理装置では、前記先行読出部は、前記入力画像のデータから当該先行入力座標の画素を含んで前記基準角度の方向に連続する複数個分の画素群の値を読み出し、前記キャッシュ部に記憶する構成でもよい。
【００１３】
この画像処理装置は、対象出力座標よりも指定順序が下位の出力座標に対応する先行入力座標の画素を含む基準角度の方向に連続する複数個分の画素群の値を入力画像のデータから読み出し、キャッシュ部に記憶させている。そのため、先行入力座標の画素の値を１つだけキャッシュ部に記憶する構成に比べて、対象入力画像の画素の値を、その抽出時にキャッシュ部に記憶させることなく、既にキャッシュ部に記憶されている画素群の値を、対象出力座標の画素の値として出力することができる確率が高くなる。
【００１４】
上記画像処理装置では、前記対象読出部は、前記入力画像のデータから当該対象入力座標の画素を含んで前記基準角度の方向に連続する複数個分の画素群の値を読み出し、前記キャッシュ部に記憶する構成でもよい。
【００１５】
この画像処理装置は、対象入力座標の画素を含んで連続する複数個分の画素群の値を、入力画像のデータからキャッシュ部に記憶する。これにより、対象入力座標の画素の値だけをキャッシュ部に読み出す構成に比べて、読出処理の時間を短縮することができる。
【００１６】
上記画像処理装置では、前記キャッシュ部は、前記複数個分の画素群を記憶可能なキャッシュを複数有し、前記先行読出処理部は、前記入力画像のデータから今回の前記先行入力座標の画素の値を、既に前記先行入力座標の画素の値が記憶されているキャッシュとは異なる他のキャッシュに記憶してもよい。
【００１７】
この画像処理装置は、複数のキャッシュを有し、先行読出部は、既に先行入力座標が記憶されているキャッシュとは異なる他のキャッシュに、今回の先行入力座標の画素の値を記憶する。これにより、１つのキャッシュだけ有する構成とは異なり、各対象入力座標に対応する複数の先行入力座標の画素の値を、同時期にキャッシュ部に記憶しておくことができる。
【００１８】
上記画像処理装置では、前記先行読出処理部は、前記先行入力座標の画素の値が前記キャッシュ部に記憶されていないかを判断し、記憶されていないと判断した場合、当該先行入力座標の画素の値を、前記入力画像のデータから前記キャッシュ部に記憶してもよい。
【００１９】
この画像処理装置は、先行入力座標の画素の値がキャッシュ部に記憶されていないかを判断し、記憶されていないと判断した場合、当該先行入力座標の画素の値をキャッシュ部に読み出す。これにより、この判断をせずに先行入力座標の値をキャッシュ部に読み出す構成に比べて、同一の先行入力座標の画素の値が重複してキャッシュ部に読み出されることを抑制することができる。
【００２０】
上記画像処理装置では、更に、前記入力画像のデータと前記出力画像のデータとが記憶される記憶部と、前記傾き角度に関する角度情報を取得し、前記傾き補正部に入力する取得入力部と、を備え、前記傾き補正部は、前記記憶部に、前記対象入力座標の画素の値を、前記対象出力座標の画素の値として出力してもよい。
【発明の効果】
【００２１】
本明細書によって開示される発明によれば、入力画像のデータから、現在処理対象の入力座標の画素の値だけを読み出す構成に比べて、傾き補正の処理を速く行うことが可能である。
【図面の簡単な説明】
【００２２】
【図１】一実施形態の画像読取装置の構成図
【図２】傾き補正部の構成を示すブロック図
【図３】読取制御処理を示すフローチャート
【図４】補正後座標系、補正前画像および補正後画像の関係を示す説明図
【図５】順位差と傾き角度との対応関係図
【図６】指定処理を示すフローチャート
【図７】第１抽出処理を示すフローチャート
【図８】リードＤＭＡ処理を示すフローチャート
【図９】対象補正後座標、先行補正後座標、および、バーストリードされる補正前座標群の関係を示す説明図（傾き角度θ＝θ１）
【図１０】対象補正後座標、先行補正後座標、および、バーストリードされる補正前座標群の関係を示す説明図（傾き角度θ＝θ２）
【図１１】対象補正後座標、先行補正後座標、および、バーストリードされる補正前座標群の関係を示す説明図（傾き角度θ＝θ３）
【図１２】ライトＤＭＡ処理を示すフローチャート
【発明を実施するための形態】
【００２３】
一実施形態の画像読取装置１について図１〜図１２を参照しつつ説明する。画像読取装置１は、画像処理装置の一例である。この画像読取装置１は、図示しない原稿シートから読み取った読取画像Ｂに含まれる原稿画像を、基準角度の方向に沿った画像に補正する傾き補正を行うことが可能である。上記原稿画像は、入力画像の一例であり、以下、補正前画像Ｇｉといい、基準角度の方向に沿った画像は、出力画像の一例であり、以下、補正後画像Ｇｏという。また、基準角度の方向は、例えば上記読取画像Ｂの副走査方向に対して任意の角度をなす方向である。この任意の角度は、基準角度の一例であり、以下では、説明を簡単にするため、ゼロ度であるものとする。
【００２４】
（画像読取装置の構成）
図１に示すように、画像読取装置１、制御部２、画像読取部３、原稿自動搬送装置（以下、「ＡＤＦ」という）４、操作部５、表示部６等を備える。
【００２５】
制御部２は、中央処理装置（以下、ＣＰＵ）１１、ＲＯＭ１２、傾き補正部１３、および、ＤＲＡＭ１４を有する。ＲＯＭ１２には、後述する読取制御処理を実行するためのプログラムや、この複合機１の各種の動作を実行するためのプログラムが記憶されている。ＣＰＵ１１は、ＲＯＭ１２から読み出したプログラムに従って、画像読取装置１の各部を制御する。なお、上記各種のプログラムが記憶される媒体は、ＲＯＭ１２やＲＡＭ１３以外に、ＣＤ−ＲＯＭ、ハードディスク装置、フラッシュメモリ（登録商標）などの不揮発性メモリでもよい。
【００２６】
画像読取部３は、ＡＤＦ４により搬送される原稿シート上の画像を読み取って、その読み取られた読取画像Ｂに応じた画素列の読取データを、図示しないＡＤ変換部によりＡＤ変換し、ＤＲＡＭ１４に記憶する。傾き補正部１３については次述する。ＤＲＡＭ１４には、上記補正前画像Ｇｉを含んだ読取画像Ｂのデータが記憶される補正前画像データ記憶領域１４Ａと、上記補正後画像Ｇｏのデータが記憶される補正後画像データ記憶領域14Ｂとが確保されている。なお、ＤＲＡＭ１４は、記憶部の一例であり、これ以外に、ＲＡＭ，ＥＰＰＲＯＭ等、他の記憶媒体でもよい。
【００２７】
操作部５は、複数のボタンを有し、ユーザにより各種の入力操作が可能である。表示部６は、液晶ディスプレイやランプ等を有し、各種の設定画面や装置の動作状態等を表示することが可能である。
【００２８】
（傾き補正部の構成）
傾き補正部１３は、ステートマシン２１、第１演算処理部２２、加算回路２３、第２演算処理部２４、リードＤＭＡ処理部２５、および、ライトＤＭＡ処理部２６を有する。
【００２９】
ステートマシン２１は、指定処理部の一例であり、補正後画像Ｇｏの各画素を配置すべき各補正後座標を、予め定められた指定順序に従って、対象補正後座標（Ｘｏｔ，Ｙｏｔ）として指定する指定処理を実行する。第１演算処理部２２は、第１抽出処理の一例であり、上記基準角度の方向に対する補正前画像Ｇｉの傾き角度θを用いて、上記対象補正後座標に対応する補正前画像Ｇｉのデータの座標を、対象補正前座標（Ｘｉｔ，Ｙｉｔ）として抽出する第１抽出処理を実行する。加算回路２３および第２演算処理部２４は、第２抽出処理部の一例であり、傾き角度θを用いて、対象補正後座標よりも指定順序が下位の補正後座標（以下、先行補正後座標（Ｘｏｔ＋α，Ｙｏｔ）という）に対応する補正前画像Ｇｉのデータの座標を、先行補正前座標（Ｘｉｔ＋α，Ｙｉｔ）として抽出する第２抽出処理を実行する。
【００３０】
リードＤＭＡ処理部２５は、先行読出部および対象読出部の一例であり、キャッシュ部２７を有する。なお、キャッシュ部２７は、傾き補正部１３の外部に設けられていてもよい。キャッシュ部２７は、１または複数のキャッシュを有する。以下、キャッシュ部２７は、第１から第４のキャッシュ２７Ａ〜２７Ｄを有するものとする。各キャッシュ２７Ａ〜２７Ｄは、複数個（本実施形態では８個）の補正前座標のアドレス、各補正前座標の画素の値、読み出し確定フラグの有無、破棄可能フラグの有無に関する情報をそれぞれ個別に記憶することが可能である。リードＤＭＡ処理部２５は、上記先行補正前座標の画素の値を、補正前画像Ｇｉのデータから読み出してキャッシュ部２７に記憶する先行読出処理を実行する。
【００３１】
また、リードＤＭＡ処理部２５は、対象補正前座標の画素の値がキャッシュ部２７に記憶されていないかを判断し、記憶されていないと判断した場合、当該対象補正前座標の画素の値を、補正前画像Ｇｉのデータから読み出してキャッシュ部２７に記憶する対象読出処理を実行する。ライトＤＭＡ処理部２６は、出力部の一例であり、キャッシュ部２７から、対象補正前座標の画素の値を読み出して、対象補正後座標の画素の値として出力する出力処理を実行する。なお、各処理の詳細は後述する。
【００３２】
（読取制御処理）
例えばユーザにより操作部５でスキャン機能の実行指令の入力操作がされると、ＣＰＵ１１は、図３に示す読取制御処理を実行する。まず、ＣＰＵ１１は、画像読取部３およびＡＤＦ４に読取動作を実行させる（Ｓ１）。具体的には、ＣＰＵ１１は、ＡＤＦ４に原稿シートの搬送を開始させ、画像読取部３に、その搬送される原稿シート上の画像を読み取らせる。これにより、その読み取られた読取画像Ｂのデータが、ＡＤ変換部によりＡＤ変換され、ＤＲＡＭ１４の補正前画像データ記憶領域１４Ａに記憶される。
【００３３】
次に、ＣＰＵ１１は、読取画像Ｂのデータから、原稿サイズ情報および角度情報を取得する（Ｓ２）。原稿サイズ情報は、補正前画像Ｇｉのサイズ、即ち、原稿シートのサイズ（以下、単に原稿サイズ（Ｘｍａｘ，Ｙｍａｘ）という）に関する情報であり、角度情報は、補正前画像Ｇｉの上記基準角度の方向に対する傾き角度θに関する情報である。図４の中央には、補正前画像Ｇｉを含んだ読取画像Ｂが示されており、この補正前画像Ｇｉは、副走査方向に対して傾き角度θ１だけ傾いている。また、補正前画像Ｇｉは、左下の角Ｐ１が、補正前座標系（Ｘｉ，Ｙｉ）の原点（０，０）からＸ方向にｘｐｍだけ、Ｙ方向にｙｐｍだけずれた位置にある。以下、ｘｐｍ、ｙｐｍを、平行移動情報という。
【００３４】
ＣＰＵ１１は、種々の公知技術により、読取画像Ｂから、補正前画像Ｇｉ（原稿シート）の４辺の線画像Ｌ１〜Ｌ４を抽出し、その抽出結果から、補正前画像Ｇｉの原稿サイズを取得する。例えばＣＰＵ１１は、読取画像Ｂの各端辺から、対向する端辺に向かって、最初に画素の値が所定値以上変化する変化点を検索し、その変化点を、補正前画像Ｇｉの線画像上の点として抽出する。そして、ＣＰＵ１１は、変化点の集合体を、補正前画像Ｇｉの４辺の線画像Ｌ１〜Ｌ４とする。また、ＣＰＵ１１は、例えば補正前画像Ｇｉの上辺Ｌ１または下辺Ｌ３と、副走査方向との角度差を、傾き角度θとする。このとき、ＣＰＵ１１は、取得入力部として機能する。
【００３５】
続いて、ＣＰＵ１１は、傾き角度θから、順位差αを決定する（Ｓ３）。順位差αは、補正後座標系（Ｘｏ，Ｙｏ）において、上述した対象補正後座標と、先行補正後座標との指定順序の差である。また、図５には、順位差αと傾き角度θとの対応テーブルが例示されている。順位差αは、傾き角度θが小さいほど、大きい値になる。詳細は後述する。
【００３６】
ＣＰＵ１１は、順位差αを決定した後、原稿サイズ情報、角度情報、平行移動情報および順位差αの情報を、傾き補正部１３に送信する（Ｓ４）。その後、ＣＰＵ１１は、傾き補正部１３により、最終補正後座標（Ｘｏｍａｘ，Ｙｏｍａｘ）に、最終補正前座標（Ｘｉｍａｘ，Ｙｉｍａｘ）の画素の値が書き込まれたと判断した場合（Ｓ５：ＹＥＳ）、本読取制御処理を終了する。
【００３７】
（対象補正後座標の指定処理）
傾き補正部１３のステートマシン２１は、図６に示す指定処理を実行する。まず、ステートマシン２１は、上記原稿サイズ情報をＣＰＵ１１から受信したと判断した場合（Ｓ１１：ＹＥＳ）、図５の左側に示す補正後座標系（Ｘｏ，Ｙｏ）において、原点座標（０，０）を、指定順序１位の対象補正後座標（Ｘｏｔ，Ｙｏｔ）として設定し（Ｓ１２）、その対象補正後座標のアドレス情報を、第１演算処理部２２および加算回路２３に送信する（Ｓ１３  図２参照）。
【００３８】
次に、ステートマシン２１は、次の順位Ｎ＋１の対象補正後座標の送信指示がリードＤＭＡ処理部２５から受信したと判断した場合（Ｓ１４：ＹＥＳ）、現在の指定順序Ｎの対象補正後座標のＸ値（＝Ｘｏｔ＋１）が、原稿サイズの短辺Ｌ１，Ｌ３の長さＸｍａｘを超えたかどうかを判断する（Ｓ１５）。ステートマシン２１は、Ｘ値が長さＸｍａｘを超えないと判断した場合（Ｓ１５：ＮＯ）、補正後座標（Ｘｏｔ＋１，Ｙｏｔ）を、次の順位Ｎ＋１の対象補正後座標とし（Ｓ１６）、Ｓ１３に戻る。即ち、ステートマシン２１は、補正後座標系（Ｘｏ，Ｙｏ）の上記原稿サイズに囲まれる範囲内において、左端から副走査方向に沿って順次、各補正後座標を、対象補正後座標として指定していく。なお、この範囲は、上記補正後画像Ｇｏを配置すべき範囲であり、以下、補正後範囲Ｈという。
【００３９】
一方、ステートマシン２１は、Ｘ値が長さＸｍａｘを超えると判断した場合（Ｓ１５：ＹＥＳ）、現在の指定順序Ｎの対象補正後座標のＹ値（＝Ｙｏｔ＋１）が、原稿サイズの長辺Ｌ２，Ｌ４の長さＹｍａｘを超えるかどうかを判断する（Ｓ１７）。ステートマシン２１は、Ｙ値が長さＹｍａｘを超えないと判断した場合（Ｓ１７：ＮＯ）、補正後座標（０，Ｙｏｔ＋１）を、次の順位Ｎ＋１の対象補正後座標とし（Ｓ１８）、Ｓ１３に戻る。即ち、ステートマシン２１は、補正後範囲Ｈの左端の座標まで指定した場合、１つ上の段について、再び、左端から副走査方向に沿って順次、各補正後座標を、対象補正後座標として指定していく。
【００４０】
ステートマシン２１は、Ｙ値が長さＹｍａｘを超えたと判断した場合（Ｓ１７：ＹＥＳ）、補正後範囲Ｈの全ての座標を指定したとして、本指定処理を終了する。
【００４１】
（第１抽出処理、第２抽出処理）
傾き補正部１３の第１演算処理部２２は、図７に示す第１抽出処理を実行する。まず、第１演算処理部２２は、傾き角度θの角度情報および平行移動情報をＣＰＵ１１から受信したと判断した場合（Ｓ２１：ＹＥＳ）、対象補正後座標のアドレス情報をステートマシン２１から受信したかどうかを判断する（Ｓ２２）。第１演算処理部２２は、対象補正後座標のアドレス情報を受信したと判断した場合（Ｓ２２：ＹＥＳ）、上記傾き角度θの角度情報および平行移動情報を用いて、その対象補正後座標に対応する対象補正前座標を抽出する演算処理を行う（Ｓ２３）。
【００４２】
図４の中央および左側には、上記補正後範囲Ｈ内の各補正後座標と、当該補正後座標に対応する補正前座標との対応関係が示されている。例えば、補正後座標系の原点座標（０，０）は、補正前座標系の座標（ｘｐｒｍ，ｙｐｒｍ）に対応する。なお、この対応関係は、回転行列等の各種の公知の演算等により求めることができる。次に、第１演算処理部２２は、対象補正後座標および対象補正前座標を対応付けて、リードＤＭＡ処理部２５に送信し（Ｓ２４）、Ｓ２２に戻る。
【００４３】
加算回路２３は、対象補正後座標をステートマシン２１から受信し、順位差αをＣＰＵ１１から受信する。そして、加算回路２３は、対象補正後座標のＸ値に、順位差αを加算した補正後座標を、先行補正後座標（Ｘｏｔ＋α，Ｙｏｔ）として、第２演算処理部２４に送信する。第２演算処理部２４は、上記第１抽出処理と同様の処理により、先行補正後座標（Ｘｏｔ＋α，Ｙｏｔ）に対応する先行補正前座標（Ｘｉｔ＋α，Ｙｉｔ）を抽出する第２抽出処理を実行し、対象補正後座標および先行補正前座標を対応付けて、リードＤＭＡ処理部２５に送信する。
【００４４】
（リードＤＭＡ処理）
傾き補正部１３のリードＤＭＡ処理部２５は、図８に示すリードＤＭＡ処理（上記対象読出処理および先行読出処理を含む）を実行する。まず、リードＤＭＡ処理部２５は、第１から第４のキャッシュ２７Ａ〜２７Ｄ４全てを、読み出し不確定であり、且つ、破棄可能とする（Ｓ３１）。読み出し不確定とは、各キャッシュ２７Ａ〜２７Ｄ４に記憶されている補正前座標の画素群の値が、補正後座標の画素の値として読み出す対象であることが確定していないことを意味し、この場合、上記読み出し確定フラグは無し（＝０）に設定されている。破棄可能とは、各キャッシュ２７Ａ〜２７Ｄに記憶されている補正前座標の画素群の値全てが、補正後座標の画素の値として読み出し済みであることを意味し、この場合、上記破棄可能フラグは有り（＝１）に設定されている。
【００４５】
次に、リードＤＭＡ処理部２５は、対象補正後座標および対象補正前座標のアドレス情報を第１演算処理部２２から受信したと判断した場合（Ｓ３２：ＹＥＳ）、その対象補正前座標と一致する補正前座標が、キャッシュ２７Ａ〜２７Ｄのいずれかに記憶されているかどうかを判断する（Ｓ３３）。リードＤＭＡ処理の開始当初、各キャッシュ２７Ａ〜２７Ｄへの補正前座標およびその画素の値の読み出しを実行していないため、リードＤＭＡ処理部２５は、対象補正前座標と一致する補正前座標が記憶されていないと判断し（Ｓ３３：ＮＯ）、後述する補正後座標に、それに対応する補正前座標の画素の値を書き込む処理（以下、単に、書き込み処理という）を停止する指示を、ライトＤＭＡ処理部２６に送信する（Ｓ３７）。これにより、キャッシュ部２７に、対象補正前の画素の値が記憶されていない状態で、リードＤＭＡ処理部２５が、補正後画像データ記憶領域に対して無駄な書き込み処理を実行することを抑制することができる。
【００４６】
リードＤＭＡ処理部２５は、上記停止指示を送信した後、各キャッシュ２７Ａ〜２７Ｄのいずれかに、上記破棄可能になっているキャッシュ、換言すれば、補正前座標のアドレス情報等を新たに記憶可能なキャッシュが有るかどうかを判断する。本実施形態では、予めキャッシュ２７Ａ〜２７Ｄには、第１キャッシュ２７Ａから第２キャッシュ２７Ｄの順に優先度が設定されており、リードＤＭＡ処理部２５は、Ｓ３８からＳ４１までの処理により、破棄可能なキャッシュで且つ、優先度が最も高いキャッシュを選択する。以下、その選択されたキャッシュを、選択キャッシュという。
【００４７】
次に、リードＤＭＡ処理部２５は、対象補正前座標を先頭に副走査方向に連続する８個の補正前座標（（Ｘｉｔ，Ｙｉｔ）〜（Ｘｉｔ＋７，Ｙｉｔ）  図４の中央図および図９の右図の網掛けした座標群Ｚ１１参照）のアドレス情報を、選択キャッシュに記憶する。また、リードＤＭＡ処理部２５は、それら８個の補正前座標それぞれの画素の値を、補正前画像データ記憶領域に記憶されている補正前画像Ｇｉのデータから読み出して選択キャッシュに記憶する対象読出処理を実行する（Ｓ４２）。このように、リードＤＭＡ処理部２５は、対象補正前座標だけでなく、それに連続する複数個分の画素群の値をまとめて補正前画像Ｇｉのデータから読み出す、いわゆるバーストリードを開始する。これにより、対象補正前座標の画素の値だけを選択キャッシュに読み出す構成に比べて、読出処理の時間を短縮することができる。
【００４８】
リードＤＭＡ処理部２５は、バーストリードの開始後、選択キャッシュを、読み出し確定であり、且つ、破棄不可とする（Ｓ４３）。読み出し確定とは、キャッシュに記憶されている補正前座標の画素群の値が、補正後座標の画素の値として読み出す対象であることが確定したことを意味し、この場合、上記読み出し確定フラグは有り（＝１）に設定されている。破棄不可とは、キャッシュに記憶されている補正前座標の画素群の値の少なくとも１つが、補正後座標の画素の値として読み出されていないことを意味し、この場合、上記破棄可能フラグは無し（＝０）に設定されている。なお、リードＤＭＡ処理部２５は、当該Ｓ４３の処理を、Ｓ４２の処理の前に実行してもよい。
【００４９】
リードＤＭＡ処理部２５は、上記バーストリードが完了したと判断した場合（Ｓ４４：ＹＥＳ）、書き込み処理の停止を解除する指示をライトＤＭＡ処理部２６に送信する（Ｓ４５）。これにより、ライトＤＭＡ処理部２６は、対象補正後座標に対する書き込み処理を開始することが可能になる。リードＤＭＡ処理部２５は、解除指示を送信した後、次の順位の対象補正後座標の送信指示を、ステートマシン２１に送信し（Ｓ３６）、Ｓ３２に戻る。
【００５０】
一方、Ｓ３３で、リードＤＭＡ処理部２５は、対象補正前座標と一致する補正前座標が、キャッシュ２７Ａ〜２７Ｄのいずれかに記憶されていると判断した場合（Ｓ３３：ＹＥＳ）、当該キャッシュを対象キャッシュとし、読み出し確定に設定する（Ｓ３４）。また、対象キャッシュ以外の他のキャッシュが読み出し確定に設定されている場合、当該他のキャッシュを破棄可能に設定する（Ｓ３４）。一度、対象キャッシュでなくなったキャッシュに記憶されている対象補正前の画素の値が後で必要になることは無いからである。
【００５１】
次に、リードＤＭＡ処理部２５は、先行補正前座標と一致する補正前座標が、キャッシュ２７Ａ〜２７Ｄのいずれかに記憶されているかどうかを判断する（Ｓ３５）。リードＤＭＡ処理部２５は、先行補正前座標と一致する補正前座標が記憶されていると判断した場合（Ｓ３５：ＹＥＳ）、Ｓ３６に進む。
【００５２】
一方、リードＤＭＡ処理部２５は、先行補正前座標と一致する補正前座標が記憶されていないと判断した場合（Ｓ３５：ＮＯ）、上記Ｓ３８からＳ４１までの処理と同様、選択キャッシュを決定する（Ｓ４６からＳ４９）。次に、リードＤＭＡ処理部２５は、先行補正前座標を先頭に副走査方向に連続する８個の補正前座標（（Ｘｉｔ＋α，Ｙｉｔ）〜（Ｘｉｔ＋α＋７，Ｙｉｔ）  図９の右図の網掛けした座標群Ｚ１２参照）のアドレス情報を、選択キャッシュに記憶する（Ｓ５０）。
【００５３】
また、リードＤＭＡ処理部２５は、それら８個の補正前座標それぞれの画素の値を、補正前画像データ記憶領域に記憶されている補正前画像Ｇｉのデータから読み出して選択キャッシュに記憶する先行読出処理を実行する（Ｓ５０）。このように、リードＤＭＡ処理部２５は、先行補正前座標だけでなく、それに連続する複数個分の画素群の値をまとめて補正前画像Ｇｉのデータから読み出すバーストリードを開始する。そのため、先行補正前座標の画素の値を１つだけキャッシュ部２７に記憶する構成に比べて、対象補正前画像の画素の値を、その抽出時にＤＲＡＭ１４から読み出してキャッシュ部２７に記憶させることなく、既にキャッシュ部２７に記憶されている画素群の値を、対象補正後座標の画素の値として出力することができる確率が高くなる。
【００５４】
また、リードＤＭＡ処理部２５は、複数のキャッシュを有し、既に他の先行補正前座標の画素の値が記憶されているキャッシュとは異なる他のキャッシュに、今回の先行補正前座標の画素の値を記憶する。これにより、１つのキャッシュだけ有する構成とは異なり、各対象補正前座標に対応する複数の先行補正前座標の画素の値を、同時期にキャッシュ部２７に記憶しておくことができる。更に、リードＤＭＡ処理部２５は、先行補正前座標の画素の値がキャッシュ部２７に記憶されていないかを判断し、記憶されていないと判断したことを条件に、当該先行補正前座標の画素の値をキャッシュ部２７に読み出す。これにより、この判断をせずに先行補正前座標の値をキャッシュ部２７に読み出す構成に比べて、同一の先行補正前座標の画素の値が重複してキャッシュ部２７に読み出されることを抑制することができる。
【００５５】
上述したように、傾き角度θが大きいほど、対象補正後座標と先行補正後座標との順位差αは小さい値が設定される（図５参照）。なお、順位差αは、バーストリードする座標数以下の値に設定される。より具体的には、対象補正後座標を先頭として指定順序に従う出力座標群に対応する補正前画像のデータの座標群のうち、対象補正前座標に対して主走査方向に最初にずれる座標を、先行入力座標として抽出する。
【００５６】
図５によれば、傾き角度θがθ１（例えば７．１３度以下）である場合、順位差αは８に設定される。このため、図９に示すように、対象読取処理では、対象補正前座標を含む補正前座標群Ｚ１１（同図中、太線で囲まれた座標群）全てが、対象補正前座標として連続して抽出され、それらの画素の値が、補正後座標の画素の値として有効利用される。
【００５７】
一方、先行読取処理では、上記補正前座標群Ｚ１１の次に対象補正前座標として抽出される補正前座標が、先行補正前座標とされる。即ち、補正前座標群Ｚ１１に対するバーストリードや書き込み処理中に、将来的に対象補正前座標として抽出される補正前座標群Ｚ１２の画素の値を、先行してバーストリードしておくことができる。なお、補正前座標群Ｚ１２（同図中、太線で囲まれた座標群）の後、補正前座標群Ｚ１３（同図中、太線で囲まれた座標群）がバーストリードの対象とされる。
【００５８】
図５によれば、傾き角度θがθ２（例えば７．１３度超、８．１３度未満）である場合、順位差αは７に設定される。このため、図１０に示すように、対象読取処理では、対象補正前座標を含む補正前座標群Ｚ２１（同図中、太線で囲まれた座標群）のうち７つが、対象補正前座標として連続して抽出され、それらの画素の値が、補正後座標の画素の値として有効利用される。
【００５９】
一方、先行読取処理では、上記補正前座標群Ｚ２１のうちの上記７つの補正前座標の次に対象補正前座標として抽出される補正前座標が、先行補正前座標とされる。即ち、補正前座標群Ｚ２１に対するバーストリードや書き込み処理中に、将来的に対象補正前座標として抽出される補正前座標群Ｚ２２（同図中、太線で囲まれた座標群）の画素の値を、先行してバーストリードしておくことができる。なお、補正前座標群Ｚ２２の後、補正前座標群Ｚ２３からＺ２６（同図中、太線で囲まれた座標群）の順にバーストリードの対象とされる。
【００６０】
図５によれば、傾き角度θがθ３（例えば１４．０４度超、１８．４３度以下）である場合、順位差αは３に設定される。このため、図１１に示すように、対象読取処理では、対象補正前座標を含む補正前座標群Ｚ３１（同図中、太線で囲まれた座標群）のうち３つが、対象補正前座標として連続して抽出され、それらの画素の値が、補正後座標の画素の値として有効利用される。
【００６１】
一方、先行読取処理では、上記補正前座標群Ｚ３１のうちの上記３つの補正前座標の次に対象補正前座標として抽出される補正前座標が、先行補正前座標とされる。即ち、補正前座標群Ｚ３１に対するバーストリードや書き込み処理中に、将来的に対象補正前座標として抽出される補正前座標群Ｚ３２（同図中、太線で囲まれた座標群）の画素の値を、先行してバーストリードしておくことができる。なお、補正前座標群Ｚ３２の後、補正前座標群Ｚ３３からＺ４０（同図中、太線で囲まれた座標群）の順にバーストリードの対象とされる。
【００６２】
以上のように、的確に対象補正前座標の画素の値として必要とされる画素の値が、先行補正前座標の画素の値としてキャッシュ部２７に記憶され、対象補正前画像の画素の値をキャッシュ部２７に記憶させる必要がない場合が多くなるために、より速く傾き補正された補正後画像ＧｏのデータをＤＲＡＭ１４に書き込むことができる。
【００６３】
リードＤＭＡ処理部２５は、上記先行読出処理を実行した後、選択キャッシュを、読み出し不確定とし、破棄不可とし（Ｓ５１）、Ｓ３６に進む。この時点では、選択キャッシュは、読み出し確定とはいえないからである。なお、リードＤＭＡ処理部２５は、その後、Ｓ３３で、対象補正前座標と一致する補正前座標が、当該選択キャッシュに記憶されていると判断した場合（Ｓ３３：ＹＥＳ）、この選択キャッシュを、読み出し確定に設定する（Ｓ３４）。
【００６４】
（ライトＤＭＡ処理）
傾き補正部１３のライトＤＭＡ処理部２６は、図１２に示すライトＤＭＡ処理を実行する。ライトＤＭＡ処理部２６は、対象補正後座標のアドレス情報と、対象補正前座標の画素の値とを受信したと判断した場合（Ｓ６１：ＹＥＳ）、ＤＲＡＭ１４に対し、補正後画像データ記憶領域における補正後座標に、補正前座標の画素の値を書き込むことを要求し（Ｓ６２）、Ｓ６１に戻る。
【００６５】
（本実施形態の効果）
画像読取装置１は、補正後画像Ｇｏの各画素を配置すべき各補正後座標を、予め定められた指定順序に従って、対象補正後座標として指定し、傾き角度θを用いて、その対象出力座標に対応する補正前画像Ｇｉのデータの座標を、対象補正前座標として抽出する。更に、画像読取装置１は、対象補正後座標だけでなく、当該対象補正後座標よりも指定順序が下位の補正後座標に対応する補正前画像のデータの座標を、先行補正前座標として抽出し、先行補正前座標の画素の値を、補正前画像Ｇｉのデータからキャッシュ部２７に読み出す。
【００６６】
従って、対象補正前座標の画素の値が、その先行補正前座標の画素の値として、既に先行してキャッシュ部２７に記憶されていた場合は、その対象補正前画像の画素の値をキャッシュ部２７に記憶させることなく、対象補正前座標の画素の値を、対象補正後座標の画素の値として出力することができる。これにより、補正前画像Ｇｉのデータから、現在処理対象の補正前座標の画素の値だけを読み出す構成に比べて、傾き補正の処理を速く行うことができる。
【００６７】
＜他の実施形態＞
本明細書で開示される技術は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような種々の態様も含まれる。
【００６８】
上記実施形態では、画像処理装置の一例として、スキャン機能のみ有する画像読取装置１を挙げた。しかし、これに限らず、画像処理装置は、スキャン機能および印刷機能を有するコピー機や、ファクシミリ機能を有するファクシミリ装置、スキャナ機能、印刷機能およびファクシミリ機能など複数の機能を有する複合機などでもよい。
更に、画像処理装置は、スキャン機能を有しない情報処理装置（ＰＣ、携帯端末等）でもよい。
【００６９】
上記実施形態では、指定処理、第１抽出処理、第２抽出処理、先行詠出処理、対象詠出処理、出力処理をいずれも、ステートマシン２１等のハード回路が実行する構成であった。しかし、これに限らず、上記処理の一部または全部を、ＣＰＵ１１が実行する構成でもよい。
【符号の説明】
【００７０】
１：画像読取装置  ２：制御部  １３：傾き補正部  １４：ＤＲＡＭ  ２１：ステートマシン  ２２：第１演算処理部  ２３：加算回路  ２４：第２演算処理部  ２５：リードＤＭＡ処理部  ２６：ライトＤＭＡ  Ｇｉ：補正前画像  Ｇｏ：補正後画像
【図１】
2014071625.tif 000003
【図２】
2014071625.tif 000004
【図３】
2014071625.tif 000005
【図４】
2014071625.tif 000006
【図５】
2014071625.tif 000007
【図６】
2014071625.tif 000008
【図７】
2014071625.tif 000009
【図８】
2014071625.tif 000010
【図９】
2014071625.tif 000011
【図１０】
2014071625.tif 000012
【図１１】
2014071625.tif 000013
【図１２】
2014071625.tif 000014