(57)【特許請求の範囲】
【請求項１】
画像読取により画像データを生成し出力するスキャナー部と、
複数のデータ処理部と、
前記スキャナー部により出力された画像データ、または前記スキャナー部により出力された画像データに対して所定の処理が施された画像データをバンドごとに前記複数のデータ処理部のうちの２つのデータ処理部間で受け渡す際に順番に繰り返し使用される複数のバッファー領域を有するワークメモリー領域、および前記ワークメモリー領域より後段の、前記複数のデータ処理部のうちの所定のデータ処理部が処理後の画像データを書き込むページメモリー領域を確保されるメモリーと、
１ページ分の画像データが前記ページメモリー領域に書き込まれる前に前記所定のデータ処理部による画像データの書込位置が前記ページメモリー領域の終端に到達した場合、前記１ページ分の画像データについて前記複数のバッファー領域のうちの少なくとも１つが使用終了しているときには、前記ページメモリー領域および前記使用終了しているバッファー領域を使用して前記所定のデータ処理部による処理を継続させる制御部とを備え、
前記複数のバッファー領域は、先頭のバッファー領域から最後のバッファー領域まで連続して確保され、
前記１ページ内の前記バンドの数が前記複数のバッファー領域の数の倍数ではない場合において、前記１ページ内の最後の前記バンドの受け渡しに前記最後のバッファー領域が使用されるように、前記先頭のバッファー領域以外のバッファー領域から順番に、前記複数のバッファー領域が使用されること、
を特徴とする画像読取装置。
【請求項２】
前記複数のバッファー領域のうち、最初に使用されるバッファー領域は、１ページ内の前記バンドの数を前記複数のバッファー領域の数で除算した場合の剰余から特定されることを特徴とする請求項１記載の画像読取装置。
【請求項３】
前記ワークメモリー領域は、前記メモリーにおいて前記先頭のバッファー領域が前記ページメモリー領域に連続するように確保されていることを特徴とする請求項１記載の画像読取装置。
【請求項４】
前記制御部は、１ページ分の画像データが前記ページメモリー領域に書き込まれる前に前記所定のデータ処理部による画像データの書込位置が前記ページメモリー領域の終端に到達した場合、前記１ページ分の画像データについて前記複数のバッファー領域のいずれも使用終了していないときには、前記メモリーにおいて別の用途に確保されている領域の一部または全部から確保した追加領域および前記ページメモリー領域を使用して前記所定のデータ処理部による処理を実行させることを特徴とする請求項１から請求項３のうちのいずれか１項記載の画像読取装置。
【請求項５】
前記制御部は、前記１ページ分の画像データについて前記複数のバッファー領域のいずれも使用終了していないときには、複数ページの画像データのソートに使用されるソートメモリー領域のサイズを減少させ、前記ソートメモリー領域の減少分を前記追加領域とすることを特徴とする請求項４記載の画像読取装置。
【請求項６】
前記制御部は、前記１ページ分の画像データについて前記複数のバッファー領域のいずれも使用終了していないときには、マルチジョブ用の予備メモリー領域のサイズを減少させ、前記マルチジョブ用の予備メモリー領域の減少分を、前記追加領域とすることを特徴とする請求項４記載の画像読取装置。
【請求項７】
前記制御部は、前記追加領域を確保した場合、前記画像読取のジョブの終了時に前記追加領域を解放し、解放した領域を前記別の用途に確保されている領域に戻すことを特徴とする請求項４から請求項６のうちのいずれか１項記載の画像読取装置。
【請求項８】
前記ワークメモリー領域は、前記所定のデータ処理部の入力バッファーとして使用されることを特徴とする請求項１から請求項７のうちのいずれか１項記載の画像読取装置。
【請求項９】
前記所定のデータ処理部は、圧縮処理を行い、圧縮処理後の画像データを前記ページメモリー領域に書き込んでいくことを特徴とする請求項１から請求項８のうちのいずれか１項記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置に関するものである。
【背景技術】
【０００２】
画像読取装置は、ページ画像を光学的に読み取り、そのページ画像の画像データを生成し、その画像データに対して所定の処理を施す。処理の途中、前段、または後段において画像データは所定のメモリー領域に一時的に記憶される。
【０００３】
その際、所定のメモリー領域のサイズより画像データのサイズが大きい場合、通常、処理が中断するが、処理を続行するための方法が提案されている（例えば特許文献１，２参照）。
【０００４】
特許文献１に記載の技術は、メモリー領域のサイズより画像データのサイズが大きい場合、画像データの圧縮率を増加して、画像データのサイズを減らしている。
【０００５】
また、特許文献２に記載の技術は、メモリー領域のサイズより画像データのサイズが大きい場合、画像データの解像度を低下させて画像データのサイズを減らしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−１４５６２号公報
【特許文献２】特開２００７−１７４１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述のように画像データのサイズを減らすと、画質が低下するため、好ましくない。
【０００８】
本発明は、上記の問題に鑑みてなされたものであり、画像データのサイズがページメモリー領域のサイズより大きい場合に、画質を低下させずに、処理を実行することができる画像読取装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明では以下のようにした。
【００１０】
本発明に係る画像読取装置は、画像読取により画像データを生成し出力するスキャナー部と、複数のデータ処理部と、メモリーと、制御部とを備える。メモリーには、ワークメモリー領域とページメモリー領域とが確保される。ワークメモリー領域は、複数のバッファー領域を有する。複数のバッファー領域は、スキャナー部により出力された画像データ、またはスキャナー部により出力された画像データに対して所定の処理が施された画像データをバンドごとに複数のデータ処理部のうちの２つのデータ処理部間で受け渡す際に順番に繰り返し使用される。ページメモリー領域は、ワークメモリー領域より後段に存在し、複数のデータ処理部のうちの所定のデータ処理部により処理後の画像データが書き込まれる。制御部は、１ページ分の画像データがページメモリー領域に書き込まれる前に所定のデータ処理部による画像データの書込位置がページメモリー領域の終端に到達した場合、１ページ分の画像データについて複数のバッファー領域のうちの少なくとも１つが使用終了しているときには、ページメモリー領域および使用終了しているバッファー領域を使用して所定のデータ処理部による処理を継続させる。そして、複数のバッファー領域は、先頭のバッファー領域から最後のバッファー領域まで連続して確保され、１ページ内のバンドの数が複数のバッファー領域の数の倍数ではない場合において、１ページ内の最後のバンドの受け渡しに最後のバッファー領域が使用されるように、先頭のバッファー領域以外のバッファー領域から順番に、複数のバッファー領域が使用される。
【００１１】
これにより、画像データのサイズがページメモリー領域のサイズより大きい場合、ページメモリー領域に加えてワークメモリー領域が使用されるため、画像データのサイズがページメモリー領域のサイズより大きい場合に、画質を低下させずに、処理を実行することができる。また、先頭のバッファー領域から順番に使用終了していくため、ワークメモリー領域内の既存の画像データを移動させずに、ページメモリー領域に対する追加領域として、先頭のバッファー領域から順番に画像データを書き込んでいくことができる。
【００１２】
また、本発明に係る画像読取装置は、上記の画像読取装置に加え、次のようにしてもよい。この場合、複数のバッファー領域のうち、最初に使用されるバッファー領域は、１ページ内のバンドの数を複数のバッファー領域の数で除算した場合の剰余から特定される。
【００１３】
また、本発明に係る画像読取装置は、上記の画像読取装置のいずれかに加え、次のようにしてもよい。この場合、ワークメモリー領域は、メモリーにおいて先頭のバッファー領域がページメモリー領域に連続するように確保されている。
【００１４】
これにより、所定のデータ処理部による画像データの書込位置がページメモリー領域からワークメモリー領域に切り換わるときに処理を中断せずに連続的に行うことができる。
【００１６】
また、本発明に係る画像読取装置は、上記の画像読取装置のいずれかに加え、次のようにしてもよい。この場合、制御部は、１ページ分の画像データがページメモリー領域に書き込まれる前に所定のデータ処理部による画像データの書込位置がページメモリー領域の終端に到達した場合、１ページ分の画像データについて複数のバッファー領域のいずれも使用終了していないときには、メモリーにおいて別の用途に確保されている領域の一部または全部から確保した追加領域およびページメモリー領域を使用して所定のデータ処理部による処理を実行させる。
【００１７】
また、本発明に係る画像読取装置は、上記の画像読取装置のいずれかに加え、次のようにしてもよい。この場合、制御部は、１ページ分の画像データについて複数のバッファー領域のいずれも使用終了していないときには、複数ページの画像データのソートに使用されるソートメモリー領域のサイズを減少させ、ソートメモリー領域の減少分を上述の追加領域とする。
【００１８】
また、本発明に係る画像読取装置は、上記の画像読取装置のいずれかに加え、次のようにしてもよい。この場合、制御部は、１ページ分の画像データについて複数のバッファー領域のいずれも使用終了していないときには、マルチジョブ用の予備メモリー領域のサイズを減少させ、マルチジョブ用の予備メモリー領域の減少分を、上述の追加領域とする。
【００１９】
また、本発明に係る画像読取装置は、上記の画像読取装置のいずれかに加え、次のようにしてもよい。この場合、制御部は、上述の追加領域を確保した場合、上述の画像読取のジョブの終了時にその追加領域を解放し、解放した領域を上述の別の用途に確保されている領域に戻す。
【００２０】
これにより、上述の別の用途において領域が不足しなくて済む。
【００２１】
また、本発明に係る画像読取装置は、上記の画像読取装置のいずれかに加え、次のようにしてもよい。この場合、ワークメモリー領域は、上述の所定のデータ処理部の入力バッファーとして使用される。
【００２２】
また、本発明に係る画像読取装置は、上記の画像読取装置のいずれかに加え、次のようにしてもよい。この場合、上述の所定のデータ処理部は、圧縮処理を行い、圧縮処理後の画像データをページメモリー領域に書き込んでいく。
【００２３】
圧縮処理の場合、画像データの内容によって圧縮処理後の画像データのサイズが変化するため、圧縮処理後の画像データを記憶するページメモリー領域のサイズを最低圧縮率に合わせて設定すると、ページメモリー領域の使用効率が悪くなるが、これにより、ページメモリー領域のサイズを最低圧縮率に対応するサイズより小さくしてページメモリー領域の使用効率を向上することができる。
【発明の効果】
【００２４】
本発明によれば、画像読取装置において、画像データのサイズがページメモリー領域のサイズより大きい場合に、画質を低下させずに、処理を実行することができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、本発明の実施の形態に係る画像読取装置の構成を示すブロック図である。
【図２】図２は、図１に示す画像読取装置における各種メモリー領域およびデータフローについて説明するブロック図である。
【図３】図３は、図２におけるワークメモリー領域の一例を示す図である。
【図４】図４は、図１に示す画像読取装置における圧縮処理について説明するフローチャートである。
【図５】図５は、図１に示す画像読取装置におけるページメモリー領域が不足した場合にワークメモリー領域を使用して圧縮処理を続行する際の処理について説明する図である。
【発明を実施するための形態】
【００２６】
以下、図に基づいて本発明の実施の形態を説明する。
【００２７】
図１は、本発明の実施の形態に係る画像読取装置の構成を示すブロック図である。図１に示す画像読取装置は、互いに接続された、スキャナー部１、画像処理部２、メモリー３、主制御部４、および出力部５を有する。
【００２８】
スキャナー部１は、原稿のページ画像を光学的に読み取り、そのページ画像の画像データを生成し出力する。
【００２９】
また、画像処理部２は、画像データに対して所定の処理を施す。画像処理部２は、スキャナー部１により出力された画像データ、またはスキャナー部１により出力された画像データに対して前段の処理が施された画像データに対して所定の処理を施す。画像処理部２は、その所定の処理後の画像データをメモリー３内の所定のメモリー領域に書き込んでいく。例えば、画像処理部２は、１または複数のＡＳＩＣ（Application Specific Integrated Circuit）で構成される。
【００３０】
また、メモリー３は、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性メモリーである。メモリー３において、画像処理部２による処理に要求されるメモリー領域が適宜確保される。
【００３１】
図２は、図１に示す画像読取装置における各種メモリー領域およびデータフローについて説明するブロック図である。
【００３２】
図２において、ＣＣＤ（Charge Coupled Device）１１は、光学的に得られたページ画像を電気信号として出力する撮像素子である。読込用ＡＳＩＣ１２は、ＣＣＤ１１からの電気信号を画像データに変換し出力する回路である。ＣＣＤ１１および読込用ＡＳＩＣ１２は、スキャナー部１に含まれる。
【００３３】
ワークメモリー領域１３は、メモリー３において確保され、読込用ＡＳＩＣ１２の出力バッファーおよびコーデック用ＡＳＩＣ１４の入力バッファーとして使用される。
【００３４】
コーデック用ＡＳＩＣ１４，２０は、画像データの圧縮を行う回路である。コーデック用ＡＳＩＣ１４，２０は、例えばＪＰＥＧ（Joint Photographic Experts Group）などの圧縮方式で画像データの圧縮を行う。
【００３５】
一次ページメモリー領域１５は、メモリー３において確保され、読込用ＡＳＩＣ１２により変換された画像データ（圧縮済み画像データ）、すなわち、画像処理用ＡＳＩＣ１８による画像処理前の画像データ（圧縮済み画像データ）を、記憶するためのメモリー領域である。つまり、一次ページメモリー領域１５は、ワークメモリー領域１３より後段（下流側）の領域であって、コーデック用ＡＳＩＣ１４が処理後の画像データを書き込む領域である。
【００３６】
コーデック用ＡＳＩＣ１６は、コーデック用ＡＳＩＣ１４の圧縮方式に対応した伸張方式で、圧縮された画像データの伸張を行う回路である。  
【００３７】
ワークメモリー領域１７は、メモリー３において確保され、コーデック用ＡＳＩＣ１６の出力バッファーおよび画像処理用ＡＳＩＣ１８の入力バッファーとして使用される。
【００３８】
画像処理用ＡＳＩＣ１８は、画像データに所定の画像処理（解像度変換、回転、データ形式の変換など）を施す回路である。
【００３９】
ワークメモリー領域１９は、メモリー３において確保され、画像処理用ＡＳＩＣ１８の出力バッファーおよびコーデック用ＡＳＩＣ２０の入力バッファーとして使用される。
【００４０】
二次ページメモリー領域２１は、メモリー３において確保され、画像処理用ＡＳＩＣ１８による画像処理後の画像データ（圧縮済み画像データ）を記憶するためのメモリー領域である。つまり、二次ページメモリー領域２１は、ワークメモリー領域１９より後段（下流側）の領域であって、コーデック用ＡＳＩＣ２０が処理後の画像データを書き込む領域である。
【００４１】
なお、コーデック用ＡＳＩＣ１４，１６，２０および画像処理用ＡＳＩＣ１８は、画像処理部２に含まれる。
【００４２】
図２に示すように、読込用ＡＳＩＣ１２から出力された画像データは、ワークメモリー領域１３を介してコーデック用ＡＳＩＣ１４に渡され、コーデック用ＡＳＩＣ１４により圧縮された画像データが１バンド（所定数のライン）ずつ順番に一次ページメモリー領域１５に記憶されていく。そして、コーデック用ＡＳＩＣ１６は、一次ページメモリー領域１５に蓄積された圧縮済み画像データを順番に読み出して伸張し、伸張した画像データをワークメモリー領域１７を介して画像処理用ＡＳＩＣ１８に渡す。画像処理用ＡＳＩＣ１８により画像処理を施された画像データは、ワークメモリー領域１９を介してコーデック用ＡＳＩＣ２０に渡され、コーデック用ＡＳＩＣ２０により圧縮された画像データが順番に二次ページメモリー領域２１に記憶されていく。
【００４３】
図１に戻り、主制御部４は、スキャナー部１、画像処理部２、メモリー３、および出力部５を制御する。また、主制御部４は、メモリー３において画像処理部２に要求されるメモリー領域（ワークメモリー領域１３，１７，１９、一次ページメモリー領域１５、二次ページメモリー領域２１など）を確保する。
【００４４】
図３は、図２におけるワークメモリー領域１３，１９の一例を示す図である。
【００４５】
図３に示すように、ワークメモリー領域１３，１９は、複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄを有する。ワークメモリー領域１３のバッファー領域１３ａ〜１３ｄは、スキャナー部１により出力された画像データをＡＳＩＣ１２，１４間で受け渡す際に順番に繰り返し使用される。ワークメモリー領域１９のバッファー領域１９ａ〜１９ｄは、スキャナー部１により出力された画像データに対して所定の処理が施された画像データをＡＳＩＣ１８，２０間で受け渡す際に順番に繰り返し使用される。
【００４６】
ワークメモリー領域１３，１９の複数のバッファー領域は、ダブルバッファーまたはリングバッファーとして使用される。図３に示す場合では、ワークメモリー領域１３，１９の複数のバッファー領域は、リングバッファーとして使用される。
【００４７】
したがって、複数のバッファー領域１３ａ〜１３ｄにおける、先頭のバッファー領域１３ａ，１９ａから最後のバッファー領域１３ｄ，１９ｄまで順番にデータが書き込まれ、最後のバッファー領域１３ｄ，１９ｄの次に先頭のバッファー領域１３ａ，１９ａにデータが書き込まれる。１つのバッファー領域は、１バンド分の画像データ（圧縮されておらずサイズが固定の画像データ）を記憶可能なサイズを有する。
【００４８】
ワークメモリー領域１３，１９内の複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄは、それぞれ、先頭のバッファー領域１３ａ，１９ａから最後のバッファー領域１３ｄ，１９ｄまで連続して確保され、１ページ内のバンドの数が複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄの数（図３の場合は４）の倍数ではない場合において、１ページ内の最後のバンドの受け渡しに最後のバッファー領域１３ｄ，１９ｄが使用されるように、先頭のバッファー領域１３ａ，１９ａ以外のバッファー領域１３ｂ〜１３ｄ，１９ｂ〜１９ｄから順番に、複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄが使用される。
【００４９】
複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄのうち、最初に使用されるバッファー領域は、１ページ内のバンドの数を複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄの数で除算した場合の剰余から特定される。（バッファー領域の数−剰余＋１）番目のバッファー領域が、最初に使用されるバッファー領域（つまり、先頭のバンドが記憶されるバッファー領域）とされる。
【００５０】
例えば図３（Ｂ）に示すように、１ページのバンド数が７５であり、バッファー領域の数が４である場合、剰余が３となり、２番目（＝４−３＋１）のバッファー領域であるバッファー領域１３ｂ，１９ｂが、最初に使用されるバッファー領域とされる。
【００５１】
この実施の形態では、ワークメモリー領域１３，１９は、それぞれ、メモリー３において先頭のバッファー領域１３ａ，１９ａがページメモリー領域１５，２１に連続するように確保されている。
【００５２】
また、主制御部４は、１ページ分の画像データが一次ページメモリー領域１５に書き込まれる前にコーデック用ＡＳＩＣ１４による画像データの書込位置が一次ページメモリー領域１５の終端に到達した場合、１ページ分の画像データについて、ワークメモリー領域１３の複数のバッファー領域１３ａ〜１３ｄのうちの少なくとも１つが使用終了しているときには、一次ページメモリー領域１５および使用終了しているバッファー領域を使用してコーデック用ＡＳＩＣ１４による処理を継続させ、１ページ分の画像データについて複数のバッファー領域１３ａ〜１３ｄのいずれも使用終了していないときには、メモリー３において別の用途に確保されている領域の一部または全部から確保した追加領域および一次ページメモリー領域１５を使用してコーデック用ＡＳＩＣ１４による処理を実行させる。
【００５３】
同様に、主制御部４は、１ページ分の画像データが二次ページメモリー領域２１に書き込まれる前にコーデック用ＡＳＩＣ２０による画像データの書込位置が二次ページメモリー領域２１の終端に到達した場合、１ページ分の画像データについて、ワークメモリー領域１９の複数のバッファー領域１９ａ〜１９ｄのうちの少なくとも１つが使用終了しているときには、二次ページメモリー領域２１および使用終了しているバッファー領域を使用してコーデック用ＡＳＩＣ２０による処理を継続させ、１ページ分の画像データについて複数のバッファー領域１９ａ〜１９ｄのいずれも使用終了していないときには、メモリー３において別の用途に確保されている領域の一部または全部から確保した追加領域および二次ページメモリー領域２１を使用してコーデック用ＡＳＩＣ２０による処理を実行させる。
【００５４】
例えば、主制御部４は、１ページ分の画像データについて複数のバッファー領域１３ａ〜１３ｄのいずれも使用終了していないときには、複数ページの画像データのソートに使用されるソートメモリー領域のサイズを減少させ、ソートメモリー領域の減少分を上述の追加領域とする。
【００５５】
また、例えば、主制御部４は、１ページ分の画像データについて複数のバッファー領域１９ａ〜１９ｄのいずれも使用終了していないときには、マルチジョブ用の予備メモリー領域（複数のジョブを並行して実行する際に使用されるメモリー領域）のサイズを減少させ、マルチジョブ用の予備メモリー領域の減少分を、上述の追加領域とする。
【００５６】
なお、主制御部４は、上述の追加領域を確保した場合、画像読取のジョブの終了時に追加領域を解放し、解放した領域を、上述の別の用途に確保されている領域に戻す。
【００５７】
また、出力部５は、画像処理部２による画像処理後の画像データを出力する。
【００５８】
次に、上記画像読取装置の動作（主に画像処理部２および主制御部４）について説明する。
【００５９】
ここでは、コーデック用ＡＳＩＣ１４，２０による圧縮処理、およびページメモリー領域１５，２１への圧縮済み画像データの書き込みについて説明する。図４は、図１に示す画像読取装置における圧縮処理について説明するフローチャートである。図５は、図１に示す画像読取装置におけるページメモリー領域１５，２１が不足した場合にワークメモリー領域１３，１９を使用して圧縮処理を続行する際の処理について説明する図である。
【００６０】
主制御部４は、一次ページメモリー領域１５を確保し、そのアドレス情報（先頭アドレスおよびサイズ、あるいは先頭アドレスおよび終端アドレス）をコーデック用ＡＳＩＣ１４，１６にセットし、さらに、図３（Ａ）に示すように、一次ページメモリー領域１５に連続させてワークメモリー領域１３を確保し、そのアドレス情報（先頭アドレスおよびサイズ、あるいは先頭アドレスおよび終端アドレス）を読込用ＡＳＩＣ１２およびコーデック用ＡＳＩＣ１４にセットする。同様に、主制御部４は、二次ページメモリー領域２１を確保し、そのアドレス情報（先頭アドレスおよびサイズ、あるいは先頭アドレスおよび終端アドレス）を画像処理用ＡＳＩＣ１８にセットし、さらに、図３（Ａ）に示すように、二次ページメモリー領域２１に連続させてワークメモリー領域１９を確保し、そのアドレス情報（先頭アドレスおよびサイズ、あるいは先頭アドレスおよび終端アドレス）を画像処理用ＡＳＩＣ１８およびコーデック用ＡＳＩＣ２０にセットする。また、主制御部４は、ワークメモリー領域１７を確保し、そのアドレス情報（先頭アドレスおよびサイズ、あるいは先頭アドレスおよび終端アドレス）をコーデック用ＡＳＩＣ１６および画像処理用ＡＳＩＣ１８にセットする。
【００６１】
図３（Ａ）の場合、読込用ＡＳＩＣ１２は、ワークメモリー領域１３における４つのバッファー領域１３ａ〜１３ｄを順番に出力バッファーとして使用し、コーデック用ＡＳＩＣ１４は、そのバッファー領域１３ａ〜１３ｄを順番に入力バッファーとして使用する。つまり、読込用ＡＳＩＣ１２は、バッファー領域１３ａに１バンド分の画像データを書き込んだ後、次のバンドの画像データをバッファー領域１３ｂに書き込み、その次のバンドの画像データをバッファー領域１３ｃに書き込み、さらにその次のバンドの画像データをバッファー領域１３ｄに書き込む。そして、読込用ＡＳＩＣ１２は、その次のバンドの画像データをバッファー領域１３ａに書き込む。一方、コーデック用ＡＳＩＣ１４は、バッファー領域１３ａから１バンド分の画像データを読み込んだ後、次のバンドの画像データをバッファー領域１３ｂから読み込み、その次のバンドの画像データをバッファー領域１３ｃから読み込み、さらにその次のバンドの画像データをバッファー領域１３ｄから読み込む。そして、コーデック用ＡＳＩＣ１４は、その次のバンドの画像データをバッファー領域１３ａから読み込む。このように、ワークメモリー領域１３は、読込用ＡＳＩＣ１２およびコーデック用ＡＳＩＣ１４によりリングバッファーとして使用される。ただし、１ページのバンド数が４（バッファー領域１３ａ〜１３ｄの数）の倍数ではない場合、１ページ内の先頭バンドの画像データの記憶に使用されるバッファー領域（各ページについて、最初に使用されるバッファー領域）は、先頭のバッファー領域１３ａ以外のバッファー領域１３ｂ〜１３ｄのいずれかとされる。このとき、ページの最終バンドの画像データが最後のバッファー領域１３ｄに記憶されるように、最初に使用されるバッファー領域が選択される。なお、ワークメモリー領域１９も、同様に、画像処理用ＡＳＩＣ１８およびコーデック用ＡＳＩＣ２０によりリングバッファーとして使用される。
【００６２】
次に、コーデック用ＡＳＩＣ１４による圧縮処理について説明する。
【００６３】
コーデック用ＡＳＩＣ１４は、１バンド分の画像データをワークメモリー領域１３から読み出して圧縮し、１バンド分の圧縮済みの画像データを一次ページメモリー領域１５に書き込んでいく（ステップＳ１）。その際、主制御部４は、各ページについて、コーデック用ＡＳＩＣ１４による処理済みのバンドの数をカウントする。なお、このとき、１バンド分の圧縮前の画像データのサイズは一定であるが、１バンド分の圧縮済みの画像データのサイズは一定ではない。各バンドの圧縮済み画像データは、１つ前のバンドの圧縮済み画像データに隙間なく連続して書き込まれる。各バンドの圧縮済み画像データの先頭記憶位置および終端記憶位置（またはサイズ）は、主制御部４により管理されて、一次ページメモリー領域１５から各バンドの圧縮済み画像データを読み出すときには、主制御部４により管理されている先頭記憶位置および終端記憶位置（またはサイズ）から、各バンドの圧縮済み画像データの読出位置が特定される。
【００６４】
コーデック用ＡＳＩＣ１４は、その画像データの書込位置が一次ページメモリー領域１５の終端アドレスに到達したか否かを監視している（ステップＳ２）。
【００６５】
１バンド分の圧縮済みの画像データの書き込みが完了すると、コーデック用ＡＳＩＣ１４は、１ページ分のバンドの処理が完了したか否かを判定し（ステップＳ３）、１ページ分のバンドの処理が完了していなければ、ステップＳ１に戻り、次のバンドの処理を同様に行う。
【００６６】
コーデック用ＡＳＩＣ１４が、画像データの書込位置が一次ページメモリー領域１５の終端アドレスに到達したことを検出すると、主制御部４は、コーデック用ＡＳＩＣ１４による処理済みバンド数のカウント値から、１ページにおける未処理の残りバンド数を特定する（ステップＳ４）。例えば、１ページのバンド数が７５であり、カウント値が７２である場合、残りバンド数は３である。なお、１ページのバンド数は既知でありかつ一定である。
【００６７】
次に、主制御部４は、その残りバンド数がバッファー領域１３ａ〜１３ｄの数以下であるか否かを判定する（ステップＳ５）。
【００６８】
残りバンド数がバッファー領域１３ａ〜１３ｄの数より大きい場合、主制御部４は、エラー通知を行い（ステップＳ６）、この圧縮処理を中止する。主制御部４は、エラー通知として、例えば図示せぬ操作パネルにエラーメッセージを表示させる。
【００６９】
一方、残りバンド数がバッファー領域１３ａ〜１３ｄの数以下である場合、主制御部４は、その残りバンド数およびワークメモリー領域１３におけるバッファー領域１３ａ〜１３ｄの数から、使用終了したバッファー領域がワークメモリー領域１３にあるか否かを判定する（ステップＳ７）。つまり、残りバンド数が、バッファー領域１３ａ〜１３ｄの数より小さいか否かが判定される。
【００７０】
残りバンド数がワークメモリー領域１３におけるバッファー領域の数より小さい場合には、使用終了したバッファー領域がワークメモリー領域１３にあると判定される。また、ワークメモリー領域１３におけるバッファー領域の数から残りバンド数を減算して得られる値が、使用終了したバッファー領域の数となる。
【００７１】
例えば、図３（Ａ）および図５（Ａ）に示すように、ワークメモリー領域１３におけるバッファー領域１３ａ〜１３ｄの数が４であり、残りバンド数が３である場合、先頭のバッファー領域１３ａが、使用終了している、つまり、「空き」となっている。
【００７２】
使用終了したバッファー領域がワークメモリー領域１３にあると判定した場合、主制御部４は、コーデック用ＡＳＩＣ１４に、ワークメモリー領域１３を使用して圧縮処理を続行させる（ステップＳ８）。つまり、コーデック用ＡＳＩＣ１４は、画像データの書込位置が一次ページメモリー領域１５の終端アドレスに到達したことを検出したときのバンドについての圧縮処理後の画像データの一部または全部、並びにそれ以降のバンドを、連続して、ページメモリー領域１５とそれに隣接するバッファー領域１３ａに、未処理のバンドの画像データを上書きしないように書き込む。
【００７３】
ステップＳ８の処理の後、ステップＳ２では、コーデック用ＡＳＩＣ１４は、画像データの書込位置が、上述の「空き」となったバッファー領域の終端に到達したか否かを監視し、画像データの書込位置が、未処理のバンドの画像データが存在しないバッファー領域の終端に到達した場合、ステップＳ４以降の処理が再度実行される。ただし、ステップＳ５，Ｓ７の処理は、ワークメモリー領域１３内のバッファー領域の数は、前回、「空き」となったバッファー領域の数を減らして行われる。
【００７４】
例えば、図３（Ａ）に示すように、ワークメモリー領域１３におけるバッファー領域１３ａ〜１３ｄの数が４であり、残りバンド数が３である場合、図５（Ａ）に示すように、先頭のバッファー領域１３ａが「空き」となり、その後、図５（Ｂ）に示すように処理が続行される。その後、図５（Ｃ）に示すように画像データの書込位置がバッファー領域１３ａの終端に到達すると、そのときのバッファー領域の数が３（＝４−１）であり、残りバンド数が２であれば、図５（Ｄ）に示すように処理が続行される。
【００７５】
一方、使用終了したバッファー領域がワークメモリー領域１３にない場合（つまり、残りバンド数がバッファー領域１３ａ〜１３ｄの数と同一である場合）、主制御部４は、残りバンド数分の圧縮処理後の画像データのためのメモリー領域を、上述のような別の用途に確保している領域から調達可能か否かを判定する（ステップＳ９）。なお、１バンド分の圧縮処理後の画像データのために確保するメモリー領域のサイズは予め決められている。
【００７６】
残りバンド数分の圧縮処理後の画像データのためのメモリー領域を、上述のような別の用途に確保している領域から調達可能ではない場合、主制御部４は、エラー通知を行い（ステップＳ１０）、この圧縮処理を中止する。主制御部４は、エラー通知として、例えば図示せぬ操作パネルにエラーメッセージを表示させる。
【００７７】
残りバンド数分の圧縮処理後の画像データのためのメモリー領域を、上述のような別の用途に確保している領域から調達可能である場合、主制御部４は、上述のようにして、特定した不足量の領域を確保し、確保した領域を一次ページメモリー領域１５に追加する（ステップＳ１１）。
【００７８】
そして、コーデック用ＡＳＩＣ１４の場合、主制御部４は、コーデック用ＡＳＩＣ１４の前段（上流側）にページメモリー領域がないため、圧縮処理前の１ページ分の画像データが残っていないと判断し（ステップＳ１２）、主制御部４は、リトライ通知を行い（ステップＳ１３）、この圧縮処理を中止する。主制御部４は、リトライ通知として、例えば図示せぬ操作パネルに、再度の画像スキャン操作をユーザーに促すメッセージを表示させる。これにより、ユーザーは、画像スキャン操作を再度行い、スキャナー部１は、再度、画像読取を実行する。
【００７９】
次に、コーデック用ＡＳＩＣ２０による圧縮処理について説明する。
【００８０】
コーデック用ＡＳＩＣ２０は、１バンド分の画像データをワークメモリー領域１９から読み出して圧縮し、１バンド分の圧縮済みの画像データを二次ページメモリー領域２１に書き込んでいく（ステップＳ１）。その際、主制御部４は、各ページについて、コーデック用ＡＳＩＣ２０による処理済みのバンドの数をカウントする。なお、このとき、１バンド分の圧縮前の画像データのサイズは一定であるが、１バンド分の圧縮済みの画像データのサイズは一定ではない。各バンドの圧縮済み画像データは、１つ前のバンドの圧縮済み画像データに隙間なく連続して書き込まれる。各バンドの圧縮済み画像データの先頭記憶位置および終端記憶位置（またはサイズ）は、主制御部４により管理されて、二次ページメモリー領域２１から各バンドの圧縮済み画像データを読み出すときには、主制御部４により管理されている先頭記憶位置および終端記憶位置（またはサイズ）から、各バンドの圧縮済み画像データの読出位置が特定される。
【００８１】
コーデック用ＡＳＩＣ２０は、その画像データの書込位置が二次ページメモリー領域２１の終端アドレスに到達したか否かを監視している（ステップＳ２）。
【００８２】
１バンド分の圧縮済みの画像データの書き込みが完了すると、コーデック用ＡＳＩＣ２０は、１ページ分のバンドの処理が完了したか否かを判定し（ステップＳ３）、１ページ分のバンドの処理が完了していなければ、ステップＳ１に戻り、次のバンドの処理を同様に行う。
【００８３】
コーデック用ＡＳＩＣ２０が、画像データの書込位置が二次ページメモリー領域２１の終端アドレスに到達したことを検出すると、主制御部４は、コーデック用ＡＳＩＣ２０による処理済みバンド数のカウント値から、１ページにおける未処理の残りバンド数を特定する（ステップＳ４）。
【００８４】
次に、主制御部４は、その残りバンド数がバッファー領域１９ａ〜１９ｄの数以下であるか否かを判定する（ステップＳ５）。
【００８５】
残りバンド数がバッファー領域１９ａ〜１９ｄの数より大きい場合、主制御部４は、エラー通知を行い（ステップＳ６）、この圧縮処理を中止する。主制御部４は、エラー通知として、例えば図示せぬ操作パネルにエラーメッセージを表示させる。
【００８６】
一方、残りバンド数がバッファー領域１９ａ〜１９ｄの数以下である場合、主制御部４は、その残りバンド数およびバッファー領域１９ａ〜１９ｄの数から、使用終了したバッファー領域がワークメモリー領域１９にあるか否かを判定する（ステップＳ７）。つまり、残りバンド数が、バッファー領域１９ａ〜１９ｄの数より小さいか否かが判定される。
【００８７】
この残りバンド数がバッファー領域１９ａ〜１９ｄの数より小さい場合には、使用終了したバッファー領域がワークメモリー領域１９にあると判定される。また、ワークメモリー領域１９におけるバッファー領域１９ａ〜１９ｄの数から残りバンド数を減算して得られる値が、使用終了したバッファー領域の数となる。
【００８８】
使用終了したバッファー領域がワークメモリー領域１９にあると判定した場合、主制御部４は、コーデック用ＡＳＩＣ２０に、ワークメモリー領域１９を使用して圧縮処理を続行させる（ステップＳ８）。つまり、コーデック用ＡＳＩＣ２０は、画像データの書込位置が二次ページメモリー領域２１の終端アドレスに到達したことを検出したときのバンドについての圧縮処理後の画像データの一部または全部、並びにそれ以降のバンドを、連続して、ページメモリー領域２１とそれに隣接するバッファー領域１９ａに、未処理のバンドの画像データを上書きしないように書き込む。
【００８９】
ステップＳ８の処理の後、ステップＳ２では、コーデック用ＡＳＩＣ２０は、画像データの書込位置が、上述の「空き」となったバッファー領域の終端に到達したか否かを監視し、画像データの書込位置が、未処理のバンドの画像データが存在しないバッファー領域の終端に到達した場合、ステップＳ４以降の処理が再度実行される。ただし、ステップＳ５，Ｓ７の処理は、ワークメモリー領域１９内のバッファー領域の数は、前回、「空き」となったバッファー領域の数を減らして行われる。
【００９０】
一方、使用終了したバッファー領域がワークメモリー領域１９にない場合（つまり、残りバンド数がバッファー領域１９ａ〜１９ｄの数と同一である場合）、主制御部４は、残りバンド数分の圧縮処理後の画像データのためのメモリー領域を、上述のような別の用途に確保している領域から調達可能か否かを判定する（ステップＳ９）。なお、１バンド分の圧縮処理後の画像データのために確保するメモリー領域のサイズは予め決められている。
【００９１】
残りバンド数分の圧縮処理後の画像データのためのメモリー領域を、上述のような別の用途に確保している領域から調達可能ではない場合、主制御部４は、エラー通知を行い（ステップＳ１０）、この圧縮処理を中止する。主制御部４は、エラー通知として、例えば図示せぬ操作パネルにエラーメッセージを表示させる。
【００９２】
残りバンド数分の圧縮処理後の画像データのためのメモリー領域を、上述のような別の用途に確保している領域から調達可能である場合、主制御部４は、上述のようにして、特定した不足量の領域を確保し、確保した領域を二次ページメモリー領域２１に追加する（ステップＳ１１）。
【００９３】
そして、コーデック用ＡＳＩＣ２０の場合、主制御部４は、コーデック用ＡＳＩＣ２０の前段（上流側）に一次ページメモリー領域１５が存在するため、圧縮処理前の１ページ分の画像データが残っていると判断し（ステップＳ１２）、主制御部４は、内部リトライを行い（ステップＳ１４）、１ページ分の圧縮処理を再実行する。主制御部４は、内部リトライの際、コーデック用ＡＳＩＣ１６および画像処理用ＡＳＩＣ１８を再度動作させて、コーデック用ＡＳＩＣ２０に画像データを再度供給し、ステップＳ１から同様の処理をコーデック用ＡＳＩＣ２０に実行させる。
【００９４】
以上のように、上記実施の形態によれば、主制御部４は、１ページ分の画像データがページメモリー領域１５，２１に書き込まれる前にコーデック用ＡＳＩＣ１４，２０による画像データの書込位置がページメモリー領域１５，２１の終端に到達した場合、１ページ分の画像データについて複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄのうちの少なくとも１つが使用終了しているときには、ページメモリー領域１５，２１および使用終了しているバッファー領域を使用してコーデック用ＡＳＩＣ１４，２０の処理を継続させる。
【００９５】
そのバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄは、それぞれ、先頭のバッファー領域１３ａ，１９ａから最後のバッファー領域１３ｄ，１９ｄまで連続して確保される。そして、１ページ内のバンドの数が各ワークメモリー領域１３，１９における複数のバッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄの数の倍数ではない場合において、１ページ内の最後のバンドの受け渡しに最後のバッファー領域１３ｄ，１９ｄが使用されるように、先頭のバッファー領域１３ａ，１９ｄ以外のバッファー領域（バッファー領域１３ｂ〜１３ｄのいずれか、およびバッファー領域１９ｂ〜１９ｄのいずれか）から順番に繰り返し、バッファー領域１３ａ〜１３ｄ，１９ａ〜１９ｄが使用される。
【００９６】
これにより、画像データのサイズがページメモリー領域１５，２１のサイズより大きい場合、ページメモリー領域１５，２１に加えてワークメモリー領域１３，１９が使用されるため、画像データのサイズがページメモリー領域１５，２１のサイズより大きい場合に、画質を低下させずに処理を実行することができる。また、先頭のバッファー領域１３ａ，１９ａから順番に使用終了していくため、ワークメモリー領域１３，１９内の既存の画像データを移動させずに、ページメモリー領域１５，２１に対する追加領域として、先頭のバッファー領域１３ａ，１９ａから順番に画像データを書き込んでいくことができる。
【００９７】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００９８】
例えば、上記実施の形態では、ページメモリー領域１５，２１の前段の処理が圧縮処理であるが、別の種別の処理であってもよい。
【００９９】
また、上記実施の形態では、ステップＳ７においてワークメモリー領域１３，１９に「空き」のバッファー領域がない場合には、別の用途のメモリー領域を確保しているが、その代わりに、ページメモリー領域１５，２１に少なくとも１バンド分の「空き」領域が発生するまで圧縮処理を中断して待機し、その「空き」領域を使用して圧縮処理を再開するようにしてもよい。例えば、後段の処理回路によりページメモリー領域１５，２１から画像データが読み出されると、その画像データが記憶されている領域が「空き」となる。
【産業上の利用可能性】
【０１００】
本発明は、例えば、画像読取機能を有するスキャナー、複写機、複合機などに適用可能である。
【符号の説明】
【０１０１】
１  スキャナー部
３  メモリー
４  主制御部（制御部の一例）
１２  読込用ＡＳＩＣ（複数のデータ処理部の一例の一部）
１３，１９  ワークメモリー領域
１３ａ〜１３ｄ，１９ａ〜１９ｄ  バッファー領域
１４，２０  コーデック用ＡＳＩＣ（複数のデータ処理部の一例の一部，所定のデータ処理部の例）
１５  一次ページメモリー領域（ページメモリー領域の一例）
１６  コーデック用ＡＳＩＣ（複数のデータ処理部の一例の一部）
１８  画像処理用ＡＳＩＣ（複数のデータ処理部の一例の一部）
２１  二次ページメモリー領域（ページメモリー領域の一例）
【図１】
0005697588.tif 000002
【図２】
0005697588.tif 000003
【図３】
0005697588.tif 000004
【図４】
0005697588.tif 000005
【図５】
0005697588.tif 000006