(57)【要約】【課題】画像データをメモリに書き込む際に、バースト長のデータがバースト転送される機会を増加する。【解決手段】画像データ処理装置１は、第１方向及び第１方向と異なる第２方向に画素が並ぶ画像データの中の第１画素ブロック及び第２画素ブロックを格納する記憶部３５と、前記記憶部に格納された第１画素ブロック及び第２画素ブロックをメモリ１２に書き込む書込部３６を備える。第１画素ブロック及び第２画素ブロックは隣接して第１方向に沿って並び、各々の第１方向の画素数はメモリ１２のアクセス単位データ長の自然数ｍ１倍に各々等しい。書込部３５は、第１画素ブロック及び第２画素ブロックに亘り第１方向に沿って連続して並ぶ画素のアクセス単位データ長の画素データを、一度のアクセスで前記メモリ１２に書き込む。【選択図】図３
2014174898.tif 000002
【特許請求の範囲】
【請求項１】
第１方向及び第１方向と異なる第２方向に画素が並ぶ画像データの中の第１画素ブロック及び第２画素ブロックを格納する記憶部と、
前記記憶部に格納された第１画素ブロック及び第２画素ブロックをメモリに書き込む書込部と、を備え、
第１画素ブロック及び第２画素ブロックは隣接して第１方向に沿って並び、各々の第１方向の画素数は前記メモリのアクセス単位データ長の自然数ｍ１倍に各々等しく、
前記書込部は、第１画素ブロック及び第２画素ブロックに亘り第１方向に沿って連続して並ぶ画素の前記アクセス単位データ長の画素データを、一度のアクセスで前記メモリに書き込む、
ことを特徴とする画像データ処理装置。
【請求項２】
前記画像データは、前記画像データの第１方向の画素数をアクセス単位データ長のｍ１倍の自然数ｎ倍にする余白画素を含み、
前記書込部は、第１方向に沿う前記画像データの第１列のうち前記余白画素以外の画素データと、第１列に隣接する第２列のうち前記余白画素以外の画素データとを前記メモリの連続アドレスに書き込む、
ことを特徴とする請求項１に記載の画像データ処理装置。
【請求項３】
隣接して第１方向に沿って並ぶ第１画素ブロックと第２画素ブロックを前記メモリから連続して読み出して前記記憶部に格納する読出部を備え、
前記書込部は、前記第１方向に沿って並ぶ画素列を前記メモリの連続アドレスに書き込む、
ことを特徴とする請求項１又は２に記載の画像データ処理装置。
【請求項４】
前記読出部は、前記画像データの前記第１方向に沿って並ぶ画素列を前記メモリの連続アドレスから読み出すことを特徴とする請求項３に記載の画像データ処理装置。
【請求項５】
隣接して第１方向に沿って並ぶ第１画素ブロックと第２画素ブロックを前記メモリから読み出して前記記憶部に格納する読出部を備え、
前記画像データは、前記画像データの第２方向の画素数をアクセス単位データ長の自然数ｍ２倍の自然数ｋ倍にする余白画素を含み、
第１画素ブロック及び第２画素ブロックの第２方向の画素数は前記メモリのアクセス単位データ長のｍ２倍に各々等しく、
前記読出部は、前記画像データの前記第２方向に沿って並ぶ画素列を前記メモリの連続アドレスから読み出し、
前記書込部は、前記画像データの前記第１方向に沿って並ぶ画素列を前記メモリの連続アドレスに書き込むことにより前記画像データに回転処理を施す、
ことを特徴とする請求項１又は２に記載の画像データ装置。
【請求項６】
前記読出部は、隣接して第１方向に沿って並ぶ第１画素ブロックと第２画素ブロックを前記メモリから連続して読み出すことを特徴とする請求項５に記載の画像データ装置。
【請求項７】
第１方向及び第１方向と異なる第２方向に画素が並ぶ画像データの中の第１画素ブロック及び第２画素ブロックを記憶部に格納するステップと、
前記記憶部に格納された第１画素ブロック及び第２画素ブロックをメモリに書き込むステップと、を備え、
第１画素ブロック及び第２画素ブロックは隣接して第１方向に沿って並び、各々の第１方向の画素数は前記メモリのアクセス単位データ長の自然数ｍ１倍に各々等しく、
第１画素ブロック及び第２画素ブロックに亘り第１方向に沿って連続して並ぶ画素の前記アクセス単位データ長の画素データが、１度のアクセスで前記メモリに書き込まれる、
ことを特徴とする画像データ処理方法。
【請求項８】
第１方向及び第１方向と異なる第２方向に画素が並ぶ画像データの中の第１画素ブロック及び第２画素ブロックを記憶部に格納するステップと、
前記記憶部に格納された第１画素ブロック及び第２画素ブロックをメモリに書き込むステップと、を情報処理装置に実行させ、
第１画素ブロック及び第２画素ブロックは隣接して第１方向に沿って並び、各々の第１方向の画素数は前記メモリのアクセス単位データ長の自然数ｍ１倍に各々等しく、
第１画素ブロック及び第２画素ブロックに亘り第１方向に沿って連続して並ぶ画素の前記アクセス単位データ長の画素データが、１度のアクセスで前記メモリに書き込まれる、
ことを特徴とする画像データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ処理装置、画像データ処理方法及び画像データ処理プログラムに関し、特に画像データをメモリへの書き込む処理に関する。
【背景技術】
【０００２】
１つの画像データから、その部分である画素ブロックを取り出し、各画素ブロック毎に所定の画像処理を行うことが知られている。図１は、ラスタ形式の画像データ１００に対する画像処理の説明図である。画像データ１００の画素は、主方向と副方向に沿って配列されており、画像データ１００は、画素の羅列として画像を表現し個々の画素をそれぞれ表現する複数の画素データを含む。
【０００３】
ラスタ形式の画像データ中の連続する画素データに対応する画素が並ぶ方向を「主方向」と表記し、主方向に直交する方向を「副方向」と表記する。画素ブロック１０１は、画像データ１００の一部を取り出した画素ブロックのうちの１つであり、この画素ブロック１０１に対して画像処理が施される。
【０００４】
関連する技術として、イメージを回転する方法が知られている。この方法は、イメージをバイト当たりｎビットの複数のバイトを有するラスタ形式で記憶し、一時記憶領域に複数のバイトを書き込み、複数のバイトを回転可能な大きさのグループに分割する。この方法は、各グループ毎に全ビットが同値であるかどうかを決定し、全ビットが同値でないグループの各々を回転し、回転されたグループの各々をラスタ形式で出力イメージ記憶領域に書き込む（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６０−１４６３６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メモリからの画像データの読み出し又はメモリへの書き込みの際には、メモリのアクセス単位データ長単位、すなわちバースト長単位でメモリにアクセスした方がデータ転送にかかる時間を短縮できる。したがって、上述のように画素ブロック毎にメモリに画像データを読み書きする場合は、画素ブロックの大きさをバースト長単位に合わせた方がデータ転送にかかる時間を短縮できる。
【０００７】
例えば、図１の例では、画素ブロック１０１の主方向の画素数をバースト長のバイト数の整数倍にすることによって１画素の表現ビット数に関わらず画素ブロックの全ての画素についてバースト長単位でメモリにアクセスできる。なお、本明細書において「バースト長のバイト数」を単に「バースト長」と表記する。
【０００８】
しかし、画素ブロック１０１内の一部分をメモリから読み出さない場合又はメモリへの書き込まない場合には、メモリから読み込む画素数又はメモリへ書き込む画素数がバースト長の整数倍にならない。
【０００９】
例えば、図１の画像データ１００の砂地パターンでハッチングされた領域についてメモリへの書き込まない場合を想定する。画素ブロック１０１の領域１１０がメモリへ書き込まれない領域であり、残りの領域１１１がメモリに書き込まれる領域である。
【００１０】
この場合、メモリ上の連続領域に書き込まれる主方向の画素列の数がバースト長の整数倍にならないため、１画素の表現ビット数によってはバースト長より短いバイト数のデータがバースト転送される回数が増加する。このため、メモリアクセス回数が増加して書き込みにかかる時間が増加する。
【００１１】
本明細書に開示される装置又は方法は、画像データをメモリに書き込む際に、バースト長のデータがバースト転送される機会を増加することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る画像データ処理装置は、第１方向及び第１方向と異なる第２方向に画素が並ぶ画像データの中の第１画素ブロック及び第２画素ブロックを格納する記憶部と、記憶部に格納された第１画素ブロック及び第２画素ブロックをメモリに書き込む書込部を備える。第１画素ブロック及び第２画素ブロックは隣接して第１方向に沿って並び、各々の第１方向の画素数はメモリのアクセス単位データ長の自然数ｍ１倍に各々等しい。書込部は、第１画素ブロック及び第２画素ブロックに亘り第１方向に沿って連続して並ぶ画素のアクセス単位データ長の画素データを、一度のアクセスでメモリに書き込む。
【００１３】
本発明に係る画像データ処理方法は、第１方向及び第１方向と異なる第２方向に画素が並ぶ画像データの中の第１画素ブロック及び第２画素ブロックを記憶部に格納するステップと、記憶部に格納された第１画素ブロック及び第２画素ブロックをメモリに書き込むステップを備える。第１画素ブロック及び第２画素ブロックは隣接して第１方向に沿って並び、各々の第１方向の画素数はメモリのアクセス単位データ長の自然数ｍ１倍に各々等しい。第１画素ブロック及び第２画素ブロックに亘り第１方向に沿って連続して並ぶ画素のアクセス単位データ長の画素データが、１度のアクセスでメモリに書き込まれる。
【００１４】
本発明に係る画像データ処理プログラムは、第１方向及び第１方向と異なる第２方向に画素が並ぶ画像データの中の第１画素ブロック及び第２画素ブロックを記憶部に格納するステップと、記憶部に格納された第１画素ブロック及び第２画素ブロックをメモリに書き込むステップと、を情報処理装置に実行させる。第１画素ブロック及び第２画素ブロックは隣接して第１方向に沿って並び、各々の第１方向の画素数はメモリのアクセス単位データ長の自然数ｍ１倍に各々等しい。第１画素ブロック及び第２画素ブロックに亘り第１方向に沿って連続して並ぶ画素のアクセス単位データ長の画素データが、１度のアクセスでメモリに書き込まれる。
【発明の効果】
【００１５】
本明細書に開示される装置又は方法によれば、画像データをメモリに書き込む際に、バースト長のデータがバースト転送される機会が増加する。
【図面の簡単な説明】
【００１６】
【図１】ラスタ形式の画像データに対する画像処理の説明図である。
【図２】画像処理システムのハードウェア構成の一例の説明図である。
【図３】画像処理装置の一例の機能ブロック図である。
【図４】（Ａ）〜（Ｃ）は、画像読取装置により処理される画像データの模式図である。
【図５】画像処理後の画像データの一例を示す図である。
【図６】画像読取装置の動作の説明図である。
【図７】画素ブロックと変数ｉ及びｊとの間の関係の説明図である。
【図８】（Ａ）及び（Ｂ）はバッファメモリに格納された画素ブロックの説明図である。
【図９】（Ａ）及び（Ｂ）は、アドレス計算に用いる変数の説明図である。
【図１０】アドレス計算方法の第１例の説明図である。
【図１１】アドレス計算方法の第２例の説明図である。
【図１２】（Ａ）及び（Ｂ）は画像ブロックを連結しない場合のメモリアクセスの説明図である。
【図１３】（Ａ）及び（Ｂ）は画像ブロックを連結する場合のメモリアクセスの説明図である。
【図１４】（Ａ）及び（Ｂ）は右９０回転処理が行われる場合のブロックの読み出し順序の説明図である。
【図１５】図１４の（Ａ）で読み出されるブロックＢ１１〜Ｂ１ｎにおいてバースト転送される画素範囲の説明図である。
【図１６】図１４の（Ｂ）で読み出されるブロックＢｋ１〜Ｂｋｎにおいてバースト転送される画素範囲の説明図である。
【図１７】（Ａ）及び（Ｂ）は左９０回転処理が行われる場合のブロックの読み出し順序の説明図である。
【図１８】図１７の（Ａ）で読み出されるブロックＢ１１〜Ｂ１ｎにおいてバースト転送される画素範囲の説明図である。
【図１９】図１７の（Ｂ）で読み出されるブロックＢｋ１〜Ｂｋｎにおいてバースト転送される画素範囲の説明図である。
【図２０】１８０回転処理が行われる場合のブロックの読み出し順序の説明図である。
【発明を実施するための形態】
【００１７】
以下、本発明に係る画像データ処理装置、画像データ処理方法及び画像データ処理プログラムについて添付図面を参照して説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００１８】
＜１．ハードウエア構成＞
図２は、画像処理システムのハードウェア構成の一例の説明図である。図１に示すように、画像処理システム１は、画像読取装置１０と、情報処理装置２０とを有する。画像読取装置１０は、例えばイメージスキャナ、デジタルカメラ等であり、情報処理装置２０は、例えば画像読取装置１０に接続して用いられるパーソナルコンピュータ等である。
【００１９】
画像読取装置１０は、画像入力装置１１と、第１画像メモリ１２と、第１インターフェース装置１３と、第１記憶装置１４と、第１ＣＰＵ１５と、画像処理装置１６とを有する。なお、添付する図面においてインタフェースを「ＩＦ」と表記する。以下、画像読取装置１０の各部について詳細に説明する。
【００２０】
画像入力装置１１は、撮像対象物である原稿、風景、人物等を撮像する撮像センサを有する。なお、以下では、撮像対象物が原稿であるものとして説明する。この撮像センサは、１次元又は２次元に配列されたＣＣＤ、ＣＭＯＳ等の撮像素子と、撮像素子に撮像対象物の像を結像する光学系を備え、各撮像素子は、ＲＧＢ各色に対応するアナログ値を出力する。そして、画像入力装置１１は、撮像センサが出力した各アナログ値をデジタル値に変換して画素データを生成し、生成した各画素データから構成される画像データ（以下、ＲＧＢ画像と称する）を生成する。このＲＧＢ画像は、各画素データが、例えばＲＧＢ各色毎に８ｂｉｔで表される計２４ｂｉｔのＲＧＢ値からなるカラー画像データとなる。
【００２１】
そして、画像入力装置１１は、ＲＧＢ画像の各画素のＲＧＢ値を画像処理装置１６に出力する。
【００２２】
画像処理装置１６は、入力した画像データにシェーディング補正等の所定の補正処理を施して第１画像メモリ１２に保存する。第１画像メモリ１２は、不揮発性半導体メモリ、揮発性半導体メモリ、磁気ディスク等の記憶装置を有する。第１画像メモリ１２は、画像処理装置１６に接続され、画像処理装置１６により画像データに対して画像処理がなされた各種の処理画像データを保存する。
【００２３】
また、画像処理装置１６は、第１画像メモリ１２から入力画像データを読み出して、原稿の端部を検出する検出処理、入力画像データを補正する補正処理、各画素のＲＧＢ値を輝度値及び色差値（ＹＵＶ値）への変換処理や、画像の回転処理など所定の画像処理を行う。この画像処理装置１６は、第１ＣＰＵ１５に接続され、第１ＣＰＵ１５からの制御により予め第１記憶装置１４に記憶されているプログラムに基づいて動作する。あるいは、画像処理装置１６は、独立した集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【００２４】
なお、ＹＵＶ値は、例えば以下の式により算出することができる。
Ｙ値＝  ０．３０×Ｒ値＋０．５９×Ｇ値＋０．１１×Ｂ値    （１）
Ｕ値＝−０．１７×Ｒ値−０．３３×Ｇ値＋０．５０×Ｂ値    （２）
Ｖ値＝  ０．５０×Ｒ値−０．４２×Ｇ値−０．０８×Ｂ値    （３）
【００２５】
第１インターフェース装置１３は、例えばＵＳＢ等のシリアルバスに準じるインターフェース回路を有し、情報処理装置２０と電気的に接続して画像データ及び各種の情報を送受信する。また、第１インターフェース装置１３にフラッシュメモリ等を接続して第１画像メモリ１２に保存されている画像データを保存するようにしてもよい。
【００２６】
第１記憶装置１４は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第１記憶装置１４には、画像読取装置１０の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばＣＤ−ＲＯＭ（compact disk read only memory）、ＤＶＤ−ＲＯＭ（digital versatile disk read only memory）等のコンピュータ読み取り可能な可搬型記録媒体に格納されてもよい。コンピュータプログラムは、このような可搬型記録媒体から、公知のセットアッププログラム等を用いて第１記憶装置１４にインストールされてもよい。
【００２７】
第１ＣＰＵ１５は、第１画像メモリ１２、第１インターフェース装置１３、第１記憶装置１４、及び画像処理装置１６と接続され、これらの各部を制御する。第１ＣＰＵ１５は、画像入力装置１１の入力画像生成制御、第１画像メモリ１２の制御、第１インターフェース装置１３を介した情報処理装置２０とのデータ送受信制御、第１記憶装置１４の制御等を行う。また、第１ＣＰＵ１５は、画像処理装置１６による画像処理の制御等を行う。
【００２８】
情報処理装置２０は、第２インターフェース装置２１と、第２画像メモリ２２と、表示装置２３と、第２記憶装置２４と、第２ＣＰＵ２５とを有する。以下、情報処理装置２０の各部について詳細に説明する。
【００２９】
第２インターフェース装置２１は、画像読取装置１０の第１インターフェース装置１３と同様のインターフェース回路を有し、情報処理装置２０と画像読取装置１０とを接続する。
【００３０】
第２画像メモリ２２は、画像読取装置１０の第１画像メモリ１２と同様の記憶装置を有する。第２画像メモリ２２には、第２インターフェース装置２１を介して画像読取装置１０から受信した画像データ及び各種の情報が保存される。
【００３１】
表示装置２３は、液晶、有機ＥＬ等から構成されるディスプレイ及びディスプレイに画像データを出力するインターフェース回路を有し、第２画像メモリ２２に保存されている画像データをディスプレイに表示する。
【００３２】
第２記憶装置２４は、画像読取装置１０の第１記憶装置１４と同様のメモリ装置、固定ディスク装置、可搬用の記憶装置等を有する。第２記憶装置２４には、情報処理装置２０の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて第２記憶装置２４にインストールされてもよい。
【００３３】
第２ＣＰＵ２５は、第２インターフェース装置２１、第２画像メモリ２２、表示装置２３及び第２記憶装置２４と接続され、これらの各部を制御する。第２ＣＰＵ２５は、第２インターフェース装置２１を介した画像読取装置１０とのデータ送受信制御、第２画像メモリ２２の制御、表示装置２３の表示制御、第２記憶装置２４の制御等を行う。
【００３４】
なお、図２に示すハードウエア構成は実施例の説明のための例示にすぎない。上述の動作を実行するものであれば、本明細書に記載される画像読取装置１０及び情報処理装置２０は他のどのようなハードウエア構成を採用してもよい。
【００３５】
＜２．機能構成＞
図３は、画像処理装置１６の一例の機能ブロック図である。画像処理装置１６は、入力部３１と、余白付加部３２と、読出部３３と、画像処理部３４と、バッファメモリ３５と、書込部３６と、出力部３７を備える。
【００３６】
入力部３１は、画像入力装置１１により生成された撮像対象物（原稿）を撮影した画像データを受信する。入力部３１は、画像データの前処理を行う。例えば、入力部３１は、前処理においてシェーディング補正により画像データの濃度ムラを除去し、画像明度を補正する。また例えば入力部３１は、前処理において原稿データの画素の明度変化に基づいて、画像データに含まれる原稿の境界線を検出し、境界線の向きに基づいて画像データの傾きを補正する。入力部３１は、前処理が施された画像データを第１画像メモリ１２に格納する。
【００３７】
図４の（Ａ）は、前処理が施されて第１画像メモリ１２に格納された画像データ５０の一例を示す図である。画像データ５０はラスタ形式の画像データであり、第１方向と第２方向に沿って配列される画素の画素データを含む。本明細書において用語「第１方向」は、後述の画像処理部３４による画像処理が施された後の状態の主方向に沿って並ぶ画素の配列方向を示す。また、用語「第２方向」は、第１方向に直交する方向を示す。
【００３８】
画像処理部３４による画像処理が画像の回転を伴わない場合又は１８０度回転を伴う場合には、第１方向及び第２方向は、入力部３１が第１画像メモリ１２に格納した時点の画像データ５０の主方向及び副方向にそれぞれ等しい。画像処理部３４による画像処理が９０度回転を伴う場合には、第１方向及び第２方向は、入力部３１が第１画像メモリ１２に格納した時点の画像データ５０の副方向及び主方向にそれぞれ等しい。
【００３９】
図４の（Ａ）の入力部３１が第１画像メモリ１２に格納した画像データ５０は、原稿に対して左９０度回転している。画像処理部３４による画像処理が右９０度回転を伴うため、画像データ５０の副方向及び主方向がそれぞれ第１方向及び第２方向になる。
【００４０】
余白付加部３２は、第１画像メモリ１２から画像データ５０を読み出し、第１画像メモリ１２のバースト長に応じた余白データ６１を画像データ５０に付加し、余白付き画像データ６０を生成する。余白付加部３２は、余白付き画像データ６０を第１画像メモリ１２に格納する。なお、説明のために余白付加部３２は独立した機能ブロックとしているが、余白付加部３２と同等の働きをする機能を、入力部またはここでは図示していない画像処理ブロックに持たしてもよい。
【００４１】
例えば、余白付加部３２は、余白付き画像データ６０の第１方向の画素数が第１画像メモリ１２のバースト長のｍ１×ｎ倍になるように、余白データ６１の第１方向の画素数を調整する。また、例えば、余白付き画像データ６０の第２方向の画素数がバースト長のｍ２×ｋ倍になるように、余白データ６１の第２方向の画素数を調整する。定数ｍ１、ｍ２及び変数ｎ、ｋは自然数である。
【００４２】
図４の（Ｂ）は、余白付き画像データ６０の一例を示す図である。例えば、余白付加部３２は、画像データ５０の第１方向に伸びる辺のうち、画像データ５０の先頭画素Ｐからより遠い辺Ｌ１に接する余白データ６１を付加してよい。また、余白付加部３２は、第２方向に伸びる辺のうち先頭画素Ｐからより遠い辺Ｌ２に接する余白データ６１を付加してよい。
【００４３】
読出部３３は、余白付き画像データ６０をその部分である画素ブロック６２毎に分けて第１画像メモリ１２から読み出す。図４の（Ｃ）は、画素ブロック６２の一例を示す図である。以下の説明及び添付図面において画素ブロックを「ブロック」と表記する。
【００４４】
ブロック６２の第１方向の画素数は、第１画像メモリ１２のバースト長のｍ１倍である。ブロック６２の第２方向の画素数は、バースト長のｍ２倍である。ブロック６２の第１方向の画素数と第２方向の画素数は異なっていてもよく等しくてもよい。すなわちｍ１とｍ２が異なっていてもよく等しくてもよい。
【００４５】
本明細書では、バースト長が８バイトであり、ｍ１及びｍ２の値が「１」である場合について説明する。したがって、ブロック６２の第１方向の画素数及び第２方向の画素数は「８」である。但し、この値は例示にすぎず、バースト長、ｍ１及びｍ２の値は他の値であってもよい。例えば、バースト長は３２バイトであってもよい。また、本明細書では、１画素の表現ビット数が８ビットすなわち１バイトである場合について説明する。但し、この値は例示に過ぎず、１画素の表現ビット数が８ビット以外であってもよい。
【００４６】
ここで、余白付き画像データ６０の主方向である第２方向の画素数はバースト長のｍ２×ｋ倍である。すなわち、ブロック６２の第２方向の画素数がバースト長の自然数倍であり、余白付き画像データ６０の第２方向の画素数がブロック６２の第２方向の画素数で割り切れる。このため、ブロック６２の読み出しの際に、ブロック６２がバースト長より短いバイト数のデータに分割されてバースト転送されることを防ぐことができる。
【００４７】
画像処理部３４は、読出部３３が読み出したブロック６２毎に所定の画像処理を施す。所定の画像処理には、例えば、右９０度回転処理、左９０度回転処理、１８０度回転処理、反転処理、ノイズ除去処理などが含まれていてよい。例えば、図４の（Ａ）の画像データ５０に対する画像処理は、右９０度回転処理であってよい。
【００４８】
画像処理部３４は、画像処理後のブロック６２をバッファメモリ３５に格納する。バッファメモリ３５は、それぞれ異なるブロック６２を格納するための第１格納領域４０と第２格納領域４１を備える。書込部３６は、バッファメモリ３５に格納されたブロック６２を読み出して第１画像メモリ１２に書き込む。図５は、書込部３６により第１画像メモリ１２に書き込まれた画像処理後の画像データ７０の一例を示す図である。
【００４９】
ブロック６２の第１方向の画素数と第２方向の画素数が異なると、画像処理部３４が９０度回転処理をする場合としない場合で、ブロック６２が書き込まれる画像データ７０内の位置が変化する。このため、バッファメモリ３５から画素データを読み出すアドレスの計算方法か、第１画像メモリ１２に画像データ７０の画素データを書き込むアドレスの計算方法が変わる。ブロック６２の第１方向の画素数と第２方向の画素数を等しくする、すなわちｍ１とｍ２を等しく設定することで、９０度回転処理の有無でアドレス計算方法を変更しなくてすむ。
【００５０】
出力部３７は、画像処理後の画像データ７０を第１画像メモリ１２から読み出して、例えば第１ＣＰＵ１５に出力する。
【００５１】
なお、図３の機能ブロック図は、本明細書において説明される機能に関係する構成を中心に示している。画像処理装置１６は、図示の構成要素以外の他の構成要素を含んでいてよい。
【００５２】
＜３．動作説明＞
図６は、画像読取装置１０の動作の説明図である。ステップＳ１０において、第１ＣＰＵ１５は、画像処理装置１６の初期設定を行う。例えば、第１ＣＰＵ１５は、画像処理部３４の回転処理の有無、回転方向、回転角度、画像データ５０の主方向及び副方向の画素数等の情報を、画像処理部３４の処理を制御するために画像処理部３４に設けられたレジスタに設定する。
【００５３】
ステップＳ１１において入力部３１は、画像入力装置１１から画像データ５０を入力する。ステップＳ１２において入力部３１は、画像データの前処理を行う。入力部３１は、前処理が施された画像データを第１画像メモリ１２に格納する。
【００５４】
ステップＳ１３において余白付加部３２は、第１画像メモリ１２から画像データ５０を読み出して余白データ６１を画像データ５０に付加し、余白付き画像データ６０を作成する。余白付加部３２は、余白付き画像データ６０を第１画像メモリ１２に格納する。
【００５５】
ステップＳ１４及びＳ１５において読出部３３は、最初に読み出すブロックを指定する。本明細書の説明では、便宜上、個々のブロック６２を指定するために変数ｉ及びｊを使用する。図７は、ブロック６２と変数ｉ及びｊとの間の関係の説明図である。
【００５６】
変数ｉは、第２方向に沿って並ぶブロック６２の列を指定し、変数ｊは、第１方向に沿って並ぶブロック６２の行を指定する。画像処理部３４による画像処理の後の画像データ７０の先頭画素に対応する画素データ６３を含むブロックを、第１列目及び第１行目のブロックと定める。以下の説明において、第ｉ列目及び第ｊ行目のブロック６２をブロックＢｉｊと指定する。なお、ブロックＢｉｊを総称する場合には「ブロック６２」と表記することがある。
【００５７】
なお、上記のブロック指定方法は例示にすぎない。したがって、読出部３３は、他の方法によって個々のブロック６２を指定してもよい。上記の例では、ステップＳ１４及びＳ１５において読出部３３は、最初にブロックＢ１１を読み出すために、それぞれ変数ｊ及びｉを「１」に設定する。
【００５８】
ステップＳ１６において読出部３３はブロックＢｉｊを読み出す。ステップＳ１７において画像処理部３４は、ステップＳ１６で読み出されたブロックＢｉｊに所定の画像処理を施す。画像処理部３４は、画像処理後のブロックＢｉｊをバッファメモリ３５の第１格納領域４０に格納する。図８の（Ａ）は、第１格納領域４０に格納されたブロックＢ１１の説明図である。本例では、ブロックＢ１１は余白データ６１の画素を含んでいる。以下で参照される添付図面において、ハッチングされた矩形により余白データ６１の画素を示す。
【００５９】
ステップＳ１８において読出部３３は次に読み出すブロックを指定する。本例では、読出部３３は変数ｉの値を１つ増加させる。ステップＳ１９において読出部３３は、ブロックＢｉｊを読み出す。すなわち、読出部３３は第１方向に沿って連続して並ぶブロックを連続して読み出す。
【００６０】
ステップＳ２０において画像処理部３４は、ステップＳ１９で読み出されたブロックＢｉｊに所定の画像処理を施す。直前に画像処理部３４が第１格納領域４０にブロックＢｉｊを格納した場合、画像処理部３４は、第２格納領域４１にブロックＢｉｊを格納する。直前に画像処理部３４が第２格納領域４１にブロックＢｉｊを格納した場合、画像処理部３４は、第１格納領域４０にブロックＢｉｊを格納する。したがって、第１格納領域４０及び第２格納領域４１には、第１方向に沿って連続する２つのブロック６２が保持される。図８の（Ｂ）は、第１格納領域４０及び第２格納領域４１に格納されたブロックＢ１１及びＢ１２の説明図である。
【００６１】
ステップＳ２１において、書込部３６は、バッファメモリ３５に格納された画素データを第１画像メモリ１２に書き込む。書き込みの際、書込部３６は、バースト長のデータを保持する出力バッファ４２にバッファメモリ３５に格納された画素データを書き込み、出力バッファ４２から第１画像メモリ１２に画素データをバースト転送する。
【００６２】
ここで、書込部３６は、ブロック６２の画素データのうち余白データ６１以外の画素データを第１画像メモリ１２に書き込む。このため、第１格納領域４０又は第２格納領域４１に格納されたブロック６２から画像データ７０へ書き込む第１方向の画素数、すなわち主方向の画素数は、バースト長の自然数倍でないことがある。この結果、個々のブロック６２毎に画素データを画像データ７０へバースト転送すると、バースト長より短いバイト数の画素データのバースト転送が増加する。
【００６３】
そこで、書込部３６は、第１格納領域４０又は第２格納領域４１に格納された２つのブロック６２を連結し、２つのブロック６２に亘って連続して並ぶバースト長の画素データを１回のバースト転送で転送する。
【００６４】
図８の（Ｂ）の例において、括弧付き数字「（１）」〜「（１２）」が付された矢印で示す画素データの範囲は、１回のバースト転送によって転送される画素範囲を示す。例えば、括弧付き数字「（１）」が付された画素データは、ブロックＢ１１の第１行目とブロックＢ１２の第１行目に亘って連続して並ぶバースト長の画素データである。
【００６５】
以下に説明するように、第１画像メモリ１２へのブロックＢ１１の書き込みが完了すると、第１格納領域４０にブロックＢ１３を読み込んで、ブロックＢ１２及びブロックＢ１３に亘って連続する画素データをバースト転送する。ブロックＢ１２の書き込みが完了すると、第２格納領域４１にブロックＢ１４を読み込んで、ブロックＢ１３及びブロックＢ１４に亘って連続する画素データをバースト転送する。以下、同様の動作をこの行の末尾のブロックＢ１ｎまで繰り返す。
【００６６】
末尾のブロックＢ１ｎの第１行目の先頭２画素の画素データは、先行するブロックＢ１（ｎ−１）の６個の画素データとともにバースト転送されている。このため、書込部３６は、末尾のブロックＢ１ｎの第１行目の末尾６画素の画素データを１回のバースト転送で転送する。第１画像メモリ１２のアドレスは、１回のバースト転送でアクセスされるセグメントに分割されており、転送された６画素の画素データはセグメントの先頭に書き込まれる。
【００６７】
このため、先頭ブロックＢ１１の第２行目の余白データ６１の後の括弧付き数字「（２）」が付された２画素の画素データは第１画像メモリ１２のセグメントの末尾のアドレスに書き込まれる。したがって、書込部３６は、末尾のブロックＢ１１の第２行目の画素データとこれに続く画素データを第１画像メモリ１２へ同時に転送しない。
【００６８】
以下の説明において、第１画像メモリ１２のセグメントの末尾に書き込まれるバースト長未満の画像データを含んだ画像データを「第１端数データ」と表記することがある。括弧付き数字「（２）」、「（４）」、「（６）」、「（８）」、「（１０）」及び「（１２）」が付された画像データは第１端数データの一例である。また、第１画像メモリ１２のセグメントの先頭に書き込まれる末尾のブロックＢｊｎのバースト長未満の画像データを含んだ画像データを「第２端数データ」と表記することがある。
【００６９】
書込部３６は、ステップＳ２１においてブロックＢ（ｉ−１）ｊの端数データと、ブロックＢ（ｉ−１）ｊ及びＢｉｊに亘って連続して並ぶバースト長の画素データを第１画像メモリ１２へ書き込む。
【００７０】
ステップＳ２２において読出部３３は、次に読み出すブロックを指定する。読出部３３は変数ｉの値を１つ増加させる。ステップＳ２３において読出部３３は変数ｉの値が、第１方向に並ぶブロックの列数ｎより大きいか否かを判断する。
【００７１】
変数ｉが列数ｎより大きい場合（ステップＳ２３：Ｙ）に動作はステップＳ２４へ進む。変数ｉが列数ｎ以下の場合（ステップＳ２３：Ｎ）に動作はステップＳ１９に戻る。ステップＳ２４において画像処理装置１６は書込部３６は、各ｊ行の末尾のブロックＢｊｎの第２端数データを第１画像メモリ１２へ書き込む。
【００７２】
ステップＳ２５において読出部３３は、次に読み出すブロックを指定する。読出部３３は変数ｊの値を１つ増加させる。ステップＳ２６において読出部３３は変数ｊの値が、第２方向に並ぶブロックの行数ｋより大きいか否かを判断する。変数ｊが行数ｋより大きい場合（ステップＳ２６：Ｙ）に動作はステップＳ２７へ進む。変数ｊが行数ｋ以下の場合（ステップＳ２６：Ｎ）に動作はステップＳ１５に戻る。ステップＳ２７において出力部３７は、画像処理後の画像データ７０を第１画像メモリ１２から読み出して出力する。
【００７３】
＜４．アドレス計算方法の例＞
次に、書込部３６が画素データを第１画像メモリ１２へ書き込む際の、ブロック６２から画素データを読み出す読出アドレスと、画像データ７０を第１画像メモリ１２へ書き込む書込アドレスの計算方法を説明する。なお、同じ画素数の画像データを格納するアドレス数は１画素の表現ビット数によって変化する。以下の説明では、１画素の格納に使用される実際のアドレス数を「１」に換算したアドレスを計算する。
【００７４】
図９の（Ａ）は、アドレス計算に用いるライン番号ＮＬの説明図である。ラスタ形式である画像データ５０、ブロック６２及び画像データ７０について、その主方向に沿って画像データの一端８０から他端８１まで並ぶ画素列８２を以下の説明において「ライン」と表記する。ラインの両端のうち、先頭データにより近い一方を「始端」と表記し他方を「終端」と表記する。
【００７５】
ライン番号ＮＬは、画像データ７０のラインに与えられる序数である。画像データ７０の先頭画素を含む先頭ラインのライン番号を「０」と定め、先頭ラインから近い順に連続する序数が、順次各ラインに与えられる。
【００７６】
図９の（Ｂ）は、アドレス計算に用いるブロック６２の画素数ＰＢ１及びＰＢ２、画像幅ＰＯ及び余白幅ＰＭの説明図である。画素数ＰＢ１及びＰＢ２は、それぞれブロック６２の第１方向及び第２方向の画素数である。画像幅ＰＯは、画像データ５０の第１方向の画素数である。余白幅は、余白データ６１の第１方向の画素数である。
【００７７】
図１０は、余白データ６１が画像データ５０のラインの始端側に設けられる場合のアドレス計算方法の第１例の説明図である。以下の説明では、ブロック６２の列数ｎが「３」である場合の例示を使用してアドレス計算方法を説明するが、列数ｎが「４」以上であっても同様に計算できる。
【００７８】
各数字「１」〜「２８」が付された矩形は、第１方向に並ぶブロック１〜３内の画素が１回のバースト転送によって転送される範囲を示す。各矩形に含まれる画素の集合を「画素グループ」と表記する。画素グループは矩形内の番号「１」〜「２８」によって識別され、それぞれを「画素グループ１」〜「画素グループ２８」と表記する。
【００７９】
各ブロック１〜３の上方にそれぞれ記載された数字「１」〜「８」は、各ブロック１〜３において第１方向に並ぶ８つの画素の位置を示す。
【００８０】
各ラインに含まれる画素グループのそれぞれについてグループ番号ＮＢを定める。グループ番号ＮＢは、ライン毎に画素グループに与えられる序数である。ラインの始端を含む画素グループのグループ番号を「０」とし、ラインの始端から近い順に連続する序数が順次各グループに与えられる。例えば、ライン番号ＮＬ＝「０」のラインの「画素グループ１」、「画素グループ１５」及び「画素グループ２３」のグループ番号は、それれぞれ「０」、「１」及び「２」である。ライン番号ＮＬ＝「１」のラインの「画素グループ２」、「画素グループ３」、「画素グループ１６」及び「画素グループ２４」のグループ番号は、それれぞれ「０」、「１」、「２」及び「３」である。
【００８１】
第１画像メモリ１２へ画像データ７０が書き込まれる先頭アドレスをＡＳとすると、第１画像メモリ１２へそれぞれ画素グループの先頭を書き込むの書込アドレスＡＷは次式（１）で与えられる。
【００８２】
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ＝  ０のとき
ＡＷ＝ＡＳ＋ＰＯ×ＮＬ＋ＰＢ１×ＮＢ
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ≠  ０  かつ  ＮＢ＝０のとき
ＡＷ＝ＡＳ＋ＰＯ×ＮＬ
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ≠  ０  かつ  ＮＢ>０のとき
ＡＷ＝ＡＳ＋ＰＯ×ＮＬ＋ＰＢ１×（ＮＢ−1）＋（（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１）
…  （１）
【００８３】
演算子（Ｘ  ｍｏｄ  Ｙ）は、整数Ｘを整数Ｙで除算した場合の剰余を与える。各ラインの始端の画素グループの書き込みバイト数ＢＷＳは、次式（２）で与えられる。各ラインの終端の画素グループの書き込みバイト数ＢＷＥは、次式（３）で与えられる。
【００８４】
ＢＷＳ＝（ＰＭ×ＮＬ）  ｍｏｄ  ＰＢ１    …  （２）
ＢＷＥ＝（ＰＢ１−ＰＭ）−（（ＰＭ×ＮＬ）  ｍｏｄ  ＰＢ１）    …  （３）
【００８５】
ブロック６２の各々が格納されるバッファメモリ３５内のアドレスが連続アドレスであると仮定すると、ブロック６２から画素グループの先頭をそれぞれ読み出す読出アドレスＡＲは次式（４）にて与えられる。
【００８６】
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ＝  ０のとき
ＡＲ＝（（ＮＬ ｍｏｄ ＰＢ２）×ＰＢ１）＋（ＰＢ１×ＰＢ２）×（ＮＢ ｍｏｄ ２）＋ＰＭ
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ≠  ０  かつ  ＮＢ＝０のとき
ＡＲ＝（（ＮＬ ｍｏｄ ＰＢ２）×ＰＢ１）＋ＰＭ
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ≠  ０  かつ  ＮＢ>０のとき
ＡＲ＝（（ＮＬ ｍｏｄ ＰＢ２）×ＰＢ１）＋（（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１）＋（ＰＢ１×ＰＢ２）×（（ＮＢ−１）ｍｏｄ ２）＋ＰＭ
…    （４）
【００８７】
図１１は、余白データ６１がラインの終端側に設けられる場合のアドレス計算方法の第２例の説明図である。第１画像メモリ１２へそれぞれ画素グループの先頭を書き込む書込アドレスＡＷ、始端の画素グループの書き込みバイト数ＢＷＳ及び終端の画素グループの書き込みバイト数ＢＷＥは、上式（１）〜（３）で与えられる。
【００８８】
ブロック６２から画素グループの先頭をそれぞれ読み出す読出アドレスＡＲは次式（５）にて与えられる。
【００８９】
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ＝  ０のとき
ＡＲ＝（（ＮＬ ｍｏｄ ＰＢ２）×ＰＢ１）＋（ＰＢ１×ＰＢ２）×（ＮＢ ｍｏｄ ２）
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ≠  ０  かつ  ＮＢ＝０のとき
ＡＲ＝（（ＮＬ ｍｏｄ ＰＢ２）×ＰＢ１）
・（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１  ≠  ０  かつ  ＮＢ>０のとき
ＡＲ＝（（ＮＬ ｍｏｄ ＰＢ２）×ＰＢ１）＋（（ＰＭ×ＮＬ）ｍｏｄ ＰＢ１）＋（ＰＢ１×ＰＢ２）×（（ＮＢ−１）ｍｏｄ ２）
…    （５）
【００９０】
なお、画像処理装置１６による上記処理を第１ＣＰＵ１５が実行してもよい。第１ＣＰＵ１５に上記処理を実行させるコンピュータプログラムが第１記憶装置１４に格納されてもよい。このコンピュータプログラムは、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な可搬型記録媒体に格納されてもよい。コンピュータプログラムは、このような可搬型記録媒体から、公知のセットアッププログラム等を用いて第１記憶装置１４にインストールされてもよい。
【００９１】
＜５．実施例の効果＞
余白データ６１の付加により、第１画像メモリ１２から読み出されるブロック６２の主方向の画素数がバースト長の自然数倍になることで、ブロック６２がバースト長より短いデータに分割されてバースト転送されることを回避できる。この結果、第１画像メモリからブロック６２を読み出すのにかかる時間を短縮できる。
【００９２】
また、ブロック６２を余白データ６１を除いた状態で第１画像メモリ１２に書き込みすることで、ブロック６２を書き込んだ後に再度読み出して余白データ６１を除く処理を別途行う場合に比べて、メモリアクセス回数を低減できる。また、第１画像メモリ１２に余白の除去前と除去後のデータを重複して格納しなくて済むため、メモリ使用量を低減できる。
【００９３】
また、複数のブロック６２を連結して、これらのブロック６２に亘って連続して並ぶバースト長の画素データを１回のバースト転送で第１画像メモリ１２に転送することにより、バースト長のデータがバースト転送される機会が増加する。以下、この効果について説明する。
【００９４】
図１２の（Ａ）は、ブロックＢ１１及びＢ１２を連結しない場合に、ブロック内のどの範囲の画素が１回のバースト転送によって転送されるかを示す説明図である。図１２の（Ｂ）は、ブロックＢ１１及びＢ１２を連結しない場合に、第１画像メモリ内のどの範囲の画素が１回のバースト転送によって書き込まれるかを示す説明図である。図１２の（Ａ）及び図１２の（Ｂ）においてブロック６２の列数ｎが「２」である場合を想定している。後述の図１３の（Ａ）及び図１３の（Ｂ）においても同様である。
【００９５】
図１２の（Ａ）及び図１２の（Ｂ）において、括弧付き数字「（１）」〜「（２６）」が付された矢印で示す画素データの範囲は、１回のバースト転送によって転送される画素範囲を示す。また、図１２の（Ｂ）の太線は、第１画像メモリ１２のアドレス空間を１回のバースト転送でアクセスされる範囲毎に区切ったセグメントを示している。後述の図１３の（Ｂ）においても同様である。
【００９６】
例えば、ブロックＢ１１の括弧付き数字「（１）」が付された画素データは、第１画像メモリ１２の先頭６バイトに書き込まれる。すなわち、この画素データは、第１画像メモリ１２内のセグメントの先頭６バイトに書き込まれる。このため、これに続くバースト転送では、ブロックＢ１２内の括弧付き数字「（１３）」が付された２バイトのデータしか転送できない。
【００９７】
同様に、ブロックＢ１２の括弧付き数字「（１４）」が付された画素データが転送されたあとは、ブロックＢ１１の括弧付き数字「（２）」が付された２バイトのデータしか転送できない。
【００９８】
このように、ブロックＢ１１及びＢ１２を連結しない場合には、バースト長未満のデータがバースト転送される機会が増加する。この結果、バースト長のデータがバースト転送される機会が少なくなり、メモリアクセス回数が増加する。本例では、ブロックＢ１１及びＢ１２の全画素データの転送に２６回のメモリアクセスが行われている。
【００９９】
図１３の（Ａ）は、ブロックＢ１１及びＢ１２を連結する場合に、ブロック内のどの範囲の画素が１回のバースト転送によって転送されるかを示す説明図である。図１３の（Ｂ）は、ブロックＢ１１及びＢ１２を連結する場合に、第１画像メモリ内のどの範囲の画素が１回のバースト転送によって書き込まれるかを示す説明図である。
【０１００】
括弧付き数字「（１）」、「（３）」、「（５）」、「（７）」、「（９）」、「（１１）」が付された範囲において、ブロックに亘って連続して並ぶバースト長の画素データが１回のバースト転送で転送される。この結果、バースト長のデータがバースト転送される機会が増加し、メモリアクセス回数が低減する。本例では、２０回のメモリアクセスでブロックＢ１１及びＢ１２の全画素データが転送されている。
【０１０１】
＜６．画像処理が回転処理を伴う場合について＞
続いて、画像処理部３４による画像処理が回転処理を伴う際の、第１画像メモリ１２へのブロック６２のバースト転送の一例について説明する。図１４の（Ａ）及び図１４の（Ｂ）は、右９０回転処理が行われる場合のブロックの読み出し順序の一例の説明図である。
【０１０２】
以下の説明において、画像データ５０の４つのコーナーのうち、画像データ５０の先頭画素Ｐがあるコーナーを第１コーナーＣ１と表記する。また、第１コーナーＣ１と反対の第１方向端にあるコーナーを第２コーナーＣ２と表記する。第１コーナーＣ１と反対の第２方向端にあるコーナーを第３コーナーＣ３と表記する。第１コーナーＣ１と対角にあるコーナーを第４コーナーＣ４と表記する。
【０１０３】
画像データ５０は、原稿に対して左９０度回転しているため、画像処理部３４による画像処理は右９０度回転を伴う。この場合、画像処理の後の画像データ７０の先頭画素に対応する画素データ６３は、第２コーナーＣ２付近に位置する。
【０１０４】
したがって、読出部３３は、第２コーナーＣ２に位置する第１列及び第１行のブロックＢ１１を最初に読み出す。そして、第２コーナーＣ２から第１コーナーＣ１に向かって第１方向に沿って連続するブロックＢ１２…Ｂ１ｎを順次読み出す。
【０１０５】
第１行のブロックＢ１１〜Ｂ１ｎの読み出しが終わると、ブロックＢ１１の第２方向側に隣接するブロックＢ２１から順に、第２行のブロックＢ２１〜Ｂ２ｎを順次読み出す。以後、同様に、読出部３３は、第ｋ行のブロックＢｋ１〜ｋｎまで各行のブロックを読み出す。
【０１０６】
第１方向の余白データ６１は、第１列のブロックＢ１１〜Ｂｋ１に含まれる。第２方向の余白データ６１は、第ｋ行のブロックＢｋ１〜Ｂｋｎに含まれる。なお、以下の説明では、余白データ６１の第１方向の画素数は「２」である場合について述べる。余白データ６１の第２方向の画素数は「５」である場合について述べる。
【０１０７】
図１５は、図１４の（Ａ）で読み出されるブロックＢ１１〜Ｂ１ｎの一例の説明図である。ブロックＢ１１の上方にそれぞれ記載された数字「１」〜「８」は、各ブロックＢ１１〜Ｂ１ｎにおいて第１方向に並ぶ８つの画素の位置を示す。ブロックＢ１１の左方に記載された数字「１」〜「８」は、各ブロックＢ１１〜Ｂ１ｎにおいて第２方向に並ぶ８つの画素の位置を示す。以下の図１６、図１８及び図１９においても同様である。
【０１０８】
以下の説明において、ブロック６２と、第１方向上の画素位置と、図１５の第２方向上の画素位置の組み合わせによって特定の画素の位置を指定する。例えば、画素６５の位置は位置（ブロックＢ１１，４，７）と指定する。
【０１０９】
図１５のブロックＢ１１〜Ｂ１ｎ内に記載された矢印は、１回のバースト転送によって転送される画素範囲を示す。以下の図１６、図１８及び図１９においても同様である。
【０１１０】
書込部３６は、ブロックＢ１１の画像データのうち、ラインの始端側に含まれる余白データ６１以外のデータを転送する。このため、ブロックＢ１１及びブロックＢ１ｎではそれぞれ第１端数データ及び第２端数データが発生する。例えば（ブロックＢ１１，３，２）と（ブロックＢ１１，４，２）との間の画素データは、２バイトでバースト転送される第１端数データである。例えば（ブロックＢ１ｎ，３，１）と（ブロックＢ１ｎ，８，１）との間の画素データは、６バイトでバースト転送される第２端数データである。
【０１１１】
一方で、中間のブロックＢ１２〜Ｂ１（ｎ−１）の画素データを転送するバースト転送の全てにおいてバースト長のデータが転送される。例えば、ブロックＢ１２及びブロックＢ１３に亘って連続する（ブロックＢ１２，５，２）から（ブロックＢ１３，４，２）に亘るバースト長の画素データが一回のバースト転送で転送される。
【０１１２】
図１６は、図１４の（Ｂ）で読み出されるブロックＢｋ１〜Ｂｋｎの一例の説明図である。図１５と同様に、書込部３６は、ブロックＢｋ１の画像データのうち、ラインの始端側に含まれる余白データ６１以外のデータを転送する。このため、ブロックＢｋ１及びブロックＢｋｎでは第１端数データ及び第２端数データが発生する。一方で、中間のブロックＢｋ２〜Ｂｋ（ｎ−１）の画素データを転送するバースト転送の全てにおいてバースト長のデータが転送される。
【０１１３】
各ブロックＢｋ１〜Ｂｋｎの末尾５ラインの画素データは全て余白データ６１であるため、書込部３６は、末尾５ライン以外のラインのみ画素データを転送する。
【０１１４】
図１７の（Ａ）及び図１７の（Ｂ）は左９０回転処理が行われる場合のブロックの読み出し順序の一例の説明図である。画像データ５０は、原稿に対して右９０度回転しているため、画像処理部３４による画像処理は左９０度回転を伴う。この場合、画像処理の後の画像データ７０の先頭画素に対応する画素データ６３は、第３コーナーＣ３付近に位置する。
【０１１５】
したがって、読出部３３は、第３コーナーＣ３に位置する第１列及び第１行のブロックＢ１１を最初に読み出す。そして、第３コーナーＣ３から第４コーナーＣ４に向かって第１方向に沿って連続するブロックＢ１２…Ｂ１ｎを順次読み出す。
【０１１６】
第１行のブロックＢ１１〜Ｂ１ｎの読み出しが終わると、ブロックＢ１１の第２方向側に隣接するブロックＢ２１から順に、第２行のブロックＢ２１〜Ｂ２ｎを順次読み出す。以後、同様に、読出部３３は、第ｋ行のブロックＢｋ１〜ｋｎまで各行のブロックを読み出す。第１方向の余白データ６１は、第ｎ列のブロックＢ１ｎ〜Ｂｋｎに含まれる。第２方向の余白データ６１は、第１行のブロックＢ１１〜Ｂ１ｎに含まれる。
【０１１７】
図１８は、図１７の（Ａ）で読み出されるブロックＢ１１〜Ｂ１ｎの一例の説明図である。各ブロックＢ１１〜Ｂ１ｎの先頭５ラインの画素データは全て余白データ６１であるため、書込部３６は、先頭５ライン以外の画素データのみを転送する。
【０１１８】
書込部３６は、ブロックＢ１ｎの画像データのうち、ラインの終端側に含まれる余白データ６１以外のデータを転送する。このため、ブロックＢ１１及びブロックＢ１ｎでは第１端数データ及び第２端数データが発生する。一方で、中間のブロックＢ１２〜Ｂ１（ｎ−１）の画素データを転送するバースト転送の全てにおいてバースト長のデータが転送される。
【０１１９】
図１９は、図１７の（Ｂ）で読み出されるブロックＢｋ１〜Ｂｋｎの一例の説明図である。図１８と同様に、書込部３６は、ブロックＢｋｎの画像データのうち、ラインの終端側に含まれる余白データ６１以外のデータを転送する。このため、ブロックＢｋ１及びブロックＢｋｎでは第１端数データ及び第２端数データが発生する。一方で、中間のブロックＢｋ２〜Ｂｋ（ｎ−１）の画素データを転送するバースト転送の全てにおいてバースト長のデータが転送される。
【０１２０】
図２０は、１８０回転処理が行われる場合のブロックの読み出し順序の一例の説明図である。画像データ５０は、原稿に対して１８０度回転しているため、画像処理部３４による画像処理は１８０度回転を伴う。この場合、画像処理の後の画像データ７０の先頭画素に対応する画素データ６３は、第４コーナーＣ４付近に位置する。
【０１２１】
読出部３３は、第４コーナーＣ４に位置する第１列及び第１行のブロックＢ１１を最初に読み出す。そして、第４コーナーＣ４から第３コーナーＣ３に向かって第１方向に沿って連続するブロックＢ１２…Ｂ１ｎを順次読み出す。
【０１２２】
第１行のブロックＢ１１〜Ｂ１ｎの読み出しが終わると、ブロックＢ１１の第２方向側に隣接するブロックＢ２１から順に、第２行のブロックＢ２１〜Ｂ２ｎを順次読み出す。以後、同様に、読出部３３は、第ｋ行のブロックＢｋ１〜ｋｎまで各行のブロックを読み出す。
【０１２３】
第１方向の余白データ６１は、第１列のブロックＢ１１〜Ｂｋ１に含まれる。この余白データ６１は、右９０回転処理が行われる図１４の（Ａ）及び図１４の（Ｂ）の場合と同様にラインの始端側に含まれる。書込部３６は、図１５及び図１６と同様に、ブロックＢ１１〜Ｂｋ１に含まれる画像データのうち、ラインの始端側にある余白データ６１以外の画像データのみを転送する。
【０１２４】
第２方向の余白データ６１は、第１行のブロックＢ１１〜Ｂ１ｎに含まれる。この余白データ６１は、右９０回転処理が行われる図１７の（Ａ）及び図１７の（Ｂ）の場合と同様にブロックＢ１１〜Ｂ１ｎの先頭５ラインに含まれる。書込部３６は、図１８と同様に、ブロックＢ１１〜Ｂ１ｎに含まれる画像データのうち、先頭５ライン以外の画素データのみを転送する。
【０１２５】
＜７．変形例＞
バッファメモリ３５は、各ｊ行の末尾ブロックＢｊｎを第１画像メモリ１２へ転送し終わるまで、先頭ブロックＢｊ１の画素データを保持する第３の格納領域を備えていてもよい。書込部３６は、末尾ブロックＢｊｎ内の第２端数データと第３の格納領域に保持されている先頭ブロックＢｊ１の第１端数データとを１回のバースト転送で第１画像メモリ１２へ転送してよい。
【０１２６】
図１５のブロックＢ１１〜Ｂ１ｎの例を用いて説明する。書込部３６は、ブロックＢ１ｎ内の（ブロックＢ１ｎ，３，１）と（ブロックＢ１ｎ，８，１）との間の６バイトの第２端数データと、ブロックＢ１１内の（ブロックＢ１１，３，２）と（ブロックＢ１１，４，２）との間の２バイトの第１端数データを、１回のバースト転送で第１画像メモリ１２へ転送してよい。第１端数データと第２端数データを一回のバースト転送で転送することにより、バースト長のデータがバースト転送される機会が増加する。
【０１２７】
各ｊ行の先頭ブロックＢｊ１と直前の行の末尾ブロックＢ（ｊ−１）ｎがバッファメモリ３５内に同時に保持されている間に、ブロックＢ（ｊ−１）ｎの最終ラインの第２端数データとブロックＢｊ１の先頭ラインの第１端数データを一回のバースト転送で転送してもよい。ブロックＢ（ｊ−１）ｎの最終ラインの第２端数データとブロックＢｊ１の先頭ラインの第１端数データを一回のバースト転送で転送することにより、バースト長のデータがバースト転送される機会が増加する。
【符号の説明】
【０１２８】
１    画像処理システム
１０    画像読取装置
１６    画像処理装置
２０    情報処理装置
３２    余白付加部
３３    読出部
３４    画像処理部
３５    バッファメモリ
３６    書込部
４０    第１格納領域
４１    第２格納領域
【図１】
2014174898.tif 000003
【図２】
2014174898.tif 000004
【図３】
2014174898.tif 000005
【図４】
2014174898.tif 000006
【図５】
2014174898.tif 000007
【図６】
2014174898.tif 000008
【図７】
2014174898.tif 000009
【図８】
2014174898.tif 000010
【図９】
2014174898.tif 000011
【図１０】
2014174898.tif 000012
【図１１】
2014174898.tif 000013
【図１２】
2014174898.tif 000014
【図１３】
2014174898.tif 000015
【図１４】
2014174898.tif 000016
【図１５】
2014174898.tif 000017
【図１６】
2014174898.tif 000018
【図１７】
2014174898.tif 000019
【図１８】
2014174898.tif 000020
【図１９】
2014174898.tif 000021
【図２０】
2014174898.tif 000022