(57)【要約】【課題】  データの処理順序に依存した画像処理を行う場合に、データを記憶するメモリへのアクセスを最小にする。【解決手段】  変倍処理と、データの処理順序に依存する誤差拡散処理とを行う場合に、誤差拡散処理におけるデータの処理順序に合わせた順序でメインメモリから読み出したデータをローカルメモリに書き込み、メインメモリ及びローカルメモリに記憶されたデータに基づいて変倍処理を行い、続けて変倍処理で変倍されたデータに対して誤差拡散処理を行う。ここで、変倍処理では、メインメモリへのアクセスが最小となるように、データの処理順序を制御する。【選択図】      図６
2007026307.tif 000002
【特許請求の範囲】
【請求項１】
画像処理に用いられるデータを格納する第１及び第２の格納手段を有する画像処理装置であって、
データの処理順序に依存しない第１の画像処理と、データの処理順序に依存する第２の画像処理とを行う場合に、前記第２の画像処理におけるデータの処理順序に合わせた順序で前記第１の格納手段から読み出したデータを前記第２の格納手段に書き込み、前記第１及び第２の格納手段に格納されたデータに基づいて前記第１の画像処理を行う第１の画像処理手段と、
前記第１の画像処理手段で処理されたデータに対して前記第２の画像処理を行う第２の画像処理手段とを有し、
前記第１の画像処理手段は、前記第１の格納手段へのアクセスが最小となるように前記第１の格納手段からの読み出し順序と前記第２の格納手段への書き込み順序とを制御することを特徴とする画像処理装置。
【請求項２】
前記第１の格納手段は、大容量で、且つアクセスに時間がかかる低速なメモリであり、前記第２の格納手段は、小容量で、且つアクセスに時間がかからない高速なメモリであることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記第１の画像処理は変倍処理であり、前記第２の画像処理は誤差拡散処理であることを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記第１の格納手段から読み出したデータを変倍処理し、変倍されたデータを前記第１の格納手段に書き込む第１の処理モードと、
前記誤差拡散処理におけるデータの処理順序に合わせた順序で前記第１の格納手段から読み出したデータを変倍処理し、変倍されたデータを前記第２の画像処理手段へ出力する第２の処理モードとを有し、
前記変倍処理の倍率に応じて、前記第１の処理モードと前記第２の処理モードとを切り替えることを特徴とする請求項３記載の画像処理装置。
【請求項５】
画像処理に用いられるデータを格納する第１及び第２の格納手段を有する画像処理装置の制御方法であって、
データの処理順序に依存しない第１の画像処理と、データの処理順序に依存する第２の画像処理とを行う場合に、前記第２の画像処理におけるデータの処理順序に合わせた順序で前記第１の格納手段から読み出したデータを前記第２の格納手段に書き込み、前記第１及び第２の格納手段に格納されたデータに基づいて前記第１の画像処理を行う第１の画像処理工程と、
前記第１の画像処理工程で処理されたデータに対して前記第２の画像処理を行う第２の画像処理工程とを有し、
前記第１の画像処理工程は、前記第１の格納手段へのアクセスが最小となるように前記第１の格納手段からの読み出し順序と前記第２の格納手段への書き込み順序とを制御することを特徴とする画像処理装置の制御方法。
【請求項６】
請求項５記載の画像処理装置の制御方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項６記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
第１の画像処理と第２の画像処理とを行う場合に、第２の画像処理におけるデータの処理順序に合わせた順序でメインメモリから読み出したデータをローカルメモリに書き込み、第１の画像処理を行ってから、第２の画像処理を行う画像処理方法であって、第１の画像処理は変倍処理であり、第２の画像処理は、データの処理順序が処理結果に依存する処理であることを特徴とする画像処理方法。
【請求項９】
更に、第１の画像処理結果をメインメモリに書き込み、第２の画像処理におけるデータの処理順序に合わせた順序でメインメモリから読み出して、第２の画像処理を行うモードを有することを特徴とする請求項８記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に用いられるデータを記憶する第１及び第２の格納手段を有する画像処理装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、画像処理においては、大きなデータサイズのデータを扱う必要があり、データを大容量のメモリに格納して使用することが多い。ところが、通常、大容量のメモリでは、小容量のメモリと比較してアクセスに時間がかかり、大容量のメモリに画像データを格納して頻繁にアクセスすると処理時間がかかってしまう。
【０００３】
そこで、図１に示すように、大容量のメインメモリ１０３と、小容量でアクセス時間の短いローカルメモリ１０２とを備え、画像処理部１０１では、できるだけローカルメモリ１０２を活用するようにしている。これにより、メインメモリ１０３へのアクセスを減少させ、処理性能を向上させることができる。
【０００４】
例えば、大容量のメインメモリ１０３として外付けのＤＲＡＭを想定し、また小容量のローカルメモリ１０２としてオンチップのＳＲＡＭを想定すると、両者へのアクセス時間には大きな差があるため、図１に示すような構成をとる意味は大きい。
【０００５】
画像処理の中でも、特に変倍処理は、１つの出力画素（出力データ）の計算に、複数の入力画素（入力データ）を使用して補間演算を行うことが多いため、入力データに対するメモリアクセスが多数発生し、図１に示すような構成を取る必要性が高い。
【０００６】
ここで、一例として双一次線形（バイリニア）補間を用いた変倍処理について、図２を用いて説明する。尚、ここでは、不図示のＣＰＵがＲＯＭに格納されているプログラムに従って変倍処理を実行しても良いし、専用のＬＳＩなどのハードウェアによって変倍処理を実行しても良い。
【０００７】
図２は、バイリニア補間を用いた変倍処理を説明するための図である。図２において、丸印「○」は入力画素を示し、四角印「□」は出力画素を示す。そして、出力画素Ｚの値を計算するには、座標上、出力画素Ｚの近傍にある４点の入力画素Ａ，Ｂ，Ｃ，Ｄの値を使用する。ここで、隣り合う画素間の間隔を横方向、縦方向共に「１」とした場合、出力画素Ｚの左上の入力画素Ａからの横方向、縦方向の変位をそれぞれΔｘ、Δｙとすると、出力画素Ｚの値は以下の式（１）から求められる。
【０００８】
Ｚ＝（１−Δｙ）（１−Δｘ）・Ａ＋（１−Δｙ）・Δｘ・Ｂ
＋Δｙ・（１−Δｘ）・Ｃ＋Δｙ・Δｘ・Ｄ          …  式（１）
ここで、変倍処理の倍率を横方向Ｍｘ，縦方向Ｍｙとすると、隣り合う出力画素の間は横方向の間隔が１／Ｍｘ、縦方向の間隔が１／Ｍｙであるため、これらの値をΔｘ、Δｙに加算することにより次々と隣接する出力画素位置を求めることができる。また、各出力画素位置において式（１）を適用することで変倍処理が実現できる。この補間方法では、出力画素の近傍４点にあたる上下２ライン分の入力画素が計算に使用されるため、単純に処理を実行すると、出力ライン数の２倍分入力ラインにアクセスする必要がある。
【０００９】
このバイリニア補間を用いた変倍処理に対して、図１に示す構成でメインメモリ１０３上の入力データへのアクセスを減らす方法の１つとして、図３に示す方法がある。
【００１０】
図３は、１ライン分のローカルメモリによる変倍処理を説明するための図である。図３において、入力ライン１〜４はそれぞれ図１に示すローカルメモリ１０２に相当し、メインメモリ１０３から読み出された１ライン分の入力データが矢印の方向に書き込まれる。また、入力ライン１〜４における矢印は入力アクセスの方向を示し、矢印についた番号はアクセスの順序を示している。尚、図２と同様に、四角印「□」は出力画素を示すものである。
【００１１】
次に、図３における処理の流れを説明すると、メインメモリ１０３上の入力データから入力ライン１を読み込み、１ライン分のローカルメモリ１０２に書き込む。そして、入力ライン１のデータを全てローカルメモリ１０２に書き込んだ後、メインメモリ１０３から入力ライン２のデータを順次読み出す。次に、読み出した入力ライン２のデータと、先にローカルメモリ１０２に格納した入力ライン１のデータとから入力ライン１と入力ライン２の間に存在する出力ラインの画素値を計算する。
【００１２】
このとき、出力画素値の計算に使用した入力ライン２のデータを、順次ローカルメモリ１０２上で不要になった入力ライン１のデータに上書きする。これにより、入力ライン１及び２に対する出力ラインの画素値の計算が全て終了すると、ローカルメモリ１０２上のデータは全て入力ライン２のデータに置き換えられる。
【００１３】
次は、メインメモリ１０３から入力ライン３のデータを順次読み出し、入力ライン１と入力ライン２の場合と同様に、入力ライン２と入力ライン３の間に存在する出力ラインの画素値を計算する。以下、最終の入力ラインまで上述の処理を同様に繰り返すことにより、メインメモリ１０３から入力ラインの１ラインにつき１回の読み出しを行うだけで変倍処理が可能となる。
【００１４】
図３に示す方法では、ローカルメモリ１０２のサイズが１ライン分、確保できるものとしたが、コストや実装上の制約により、ローカルメモリ１０２のサイズとして１ライン分を確保できない場合も多い。この場合、ローカルメモリ１０２として確保できたサイズに応じて、変倍処理の入力アクセスパターンを変更することによりメインメモリ１０３へのアクセスを最小化できる。
【００１５】
次に、ローカルメモリ１０２として、１ラインの４分の１のサイズが確保できた場合の変倍処理の処理順序について、図４を用いて説明する。
【００１６】
図４は、１／４ライン分のローカルメモリによる変倍処理を説明するための図である。最初に、入力ライン１の矢印１で示される入力データをメインメモリ１０３からローカルメモリ１０２に読み込み、その後、入力ライン２の矢印２で示される入力データをメインメモリ１０３から読み込みつつ矢印１と矢印２の間の出力画素値の計算を行う。このとき、ローカルメモリ１０２上で不要になった矢印１のデータを、読み込んだ矢印２のデータで順次置き換えていくことで変倍処理を行っていく。
【００１７】
その後、入力ライン３の矢印３、入力ライン４の矢印４の順に、縦方向に処理を行った後に、入力ライン１に戻り、処理済の入力データの右側のデータに対して、縦方向の処理を同様に行っていく。
【００１８】
図４に示すような順序で処理を行うことでローカルメモリ１０２のサイズが１ライン分ある図３に示す場合と同様に、メインメモリ１０３から入力ラインの１ラインにつき１回の読み出しを行うだけで変倍処理が可能となる。
【００１９】
尚、厳密に言えば、図４において、左右に隣接する矢印（矢印１と矢印５など）の間にはオーバーラップしている画素があるが、ローカルメモリのサイズが非常に小さい場合で無い限り影響は少ない。
【特許文献１】特開平9-65114号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
図１に示すように、画像処理部１０１にローカルメモリ１０２を備え、変倍処理単体を考えた場合、図４に示す処理順序で入力データを処理することによりメインメモリ１０３からの入力データ読み出しを最小限に抑えることができる。
【００２１】
しかしながら、図１に示す画像処理部１０１において、変倍処理に続いて他の画像処理を行う場合には、変倍処理が図４に示す処理順序で入力データを処理することが最善とは限らない。
【００２２】
例えば、変倍処理に続けて誤差拡散処理のような処理順序に依存する処理を行う場合、変倍後の出力データの順序が、誤差拡散処理の処理順序に合わないと、結局メインメモリ１０３へのアクセスが増えてしまう。これは、変倍処理で変倍された出力データを、一旦メインメモリ１０３に書き戻し、誤差拡散処理が処理順序を変えてメインメモリ１０３から読み直すことになるからである。
【００２３】
ここで、誤差拡散処理の処理順序として、図５に示す（ａ）のように、単純に単方向のラスタースキャンを考えても、図４に示す処理順序とは合わない。また、誤差拡散処理の画質改善のため、図５に示す（ｂ）のようなラインによって方向を切り替えながら左からのスキャンと右からのスキャンを混在させて双方向にスキャン処理する場合を考えても、図４に示す処理順序とは全く合わない。
【００２４】
本発明は上記課題を解決するためになされたもので、データの処理順序に依存した画像処理を行う場合に、データを記憶するメモリへのアクセスを最小にすることを目的とする。
【課題を解決するための手段】
【００２５】
本発明は、画像処理に用いられるデータを記憶する第１及び第２の格納手段を有する画像処理装置であって、データの処理順序に依存しない第１の画像処理と、データの処理順序に依存する第２の画像処理とを行う場合に、前記第２の画像処理におけるデータの処理順序に合わせた順序で前記第１の格納手段から読み出したデータを前記第２の格納手段に書き込み、前記第１及び第２の格納手段に記憶されたデータに基づいて前記第１の画像処理を行う第１の画像処理手段と、前記第１の画像処理手段で処理されたデータに対して前記第２の画像処理を行う第２の画像処理手段とを有し、前記第１の画像処理手段は、前記第１の格納手段へのアクセスが最小となるように前記第１の格納手段からの読み出し順序と前記第２の格納手段への書き込み順序とを制御することを特徴とする。
【００２６】
また、本発明は、画像処理に用いられるデータを記憶する第１及び第２の格納手段を有する画像処理装置の制御方法であって、データの処理順序に依存しない第１の画像処理と、データの処理順序に依存する第２の画像処理とを行う場合に、前記第２の画像処理におけるデータの処理順序に合わせた順序で前記第１の格納手段から読み出したデータを前記第２の格納手段に書き込み、前記第１及び第２の格納手段に記憶されたデータに基づいて前記第１の画像処理を行う第１の画像処理工程と、前記第１の画像処理工程で処理されたデータに対して前記第２の画像処理を行う第２の画像処理工程とを有し、前記第１の画像処理工程は、前記第１の格納手段へのアクセスが最小となるように前記第１の格納手段からの読み出し順序と前記第２の格納手段への書き込み順序とを制御することを特徴とする。
【発明の効果】
【００２７】
本発明によれば、データの処理順序に依存した画像処理を行う場合に、データを記憶するメモリへのアクセスを少なくすることができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２９】
［第１の実施形態］
図６は、第１の実施形態における画像処理装置の構成の一例を示す図である。図６では、変倍処理と誤差拡散処理とを続けて行う画像処理部を示しており、変倍処理部６０２は、メインメモリ６０１から入力データを読み込み、横Ｍｘ倍、縦Ｍｙ倍に変倍した出力をメインメモリ６０１に戻すことなく、誤差拡散処理部６０４に渡す。
【００３０】
図６に示す構成では、変倍処理部６０２と誤差拡散処理部６０４との間でデータを並べ替えられるだけのメモリを備えていないため、変倍処理のデータ処理順と誤差拡散処理のデータ処理順とは必ず一致している必要がある。特に、誤差拡散処理については、データの処理順序が出力結果に影響するため、変倍処理側の処理順を、誤差拡散処理側の処理順に合わせなければならない。
【００３１】
尚、誤差拡散処理部６０４の出力は、他の不図示の処理部に送られたり、或いはメインメモリ６０１に戻されたりする場合があるが、ここでは考慮していない。また、変倍処理部６０２は接続されたローカルメモリ６０３を活用することで、メインメモリ６０１へのデータアクセスをできるだけ減らすように制御するが、具体的な制御の仕方については、図７を用いて更に詳述する。
【００３２】
図６において、メインメモリ６０１から読み出されるデータ量が２＊Ｍｙとなっているのは、入力データのサイズを「１」とした場合に、図７に示すような制御で入力データを読み込んだときのデータ量を示しているからである。
【００３３】
図７は、第１の実施形態における入力データの読み出し順序を示す図である。ここで、変倍処理部６０２のＣＰＵが、図７に示すように、メインメモリ６０１から各矢印に付された番号順に入力データの読み出しを行う。
【００３４】
また、誤差拡散処理部６０４の処理としては、図５に示す（ｂ）の双方向スキャンで、１ライン毎に左からのスキャンと右からのスキャンとが交互に切り替わる場合を想定している。まず、出力ラインの１ライン目は、左からのスキャンであるため、変倍処理部６０２も左から右に処理を進める必要があり、補間に必要な２ライン分をペアとして、矢印１，２→矢印３，４→矢印５，６→矢印７，８とデータの読み込みと変倍処理を行う。その結果、変倍後の１ライン目の出力データが誤差拡散処理部６０４に与えられ、出力データに対して誤差拡散処理が左から右に実行される。
【００３５】
次の出力ラインの２ライン目は、誤差拡散処理が右からのスキャンとなり、変倍処理部６０２も右から左へ、矢印９，１０→矢印１１，１２→矢印１３，１４→矢印１５，１６の順にデータの読み込みと変倍処理を行う。その結果、変倍後の２ライン目の出力データが誤差拡散処理部６０４に与えられ、出力データに対して誤差拡散処理が右から左に実行される。
【００３６】
更に、次の出力ラインの３ライン目では、誤差拡散処理が左からのスキャンとなるため、変倍処理部６０２も左から右へ、矢印１７，１８→矢印１９，２０→矢印２１，２２→矢印２３，２４の順にデータの読み込みと変倍処理を行う。その結果、変倍後の３ライン目の出力データが誤差拡散処理部６０４に与えられ、出力データに対して誤差拡散処理が左から右に実行される。以下、同様に、誤差拡散処理のスキャン方向に従って、変倍処理のデータ読み込み順も制御される。
【００３７】
尚、ローカルメモリ６０３は、ペアとなる入力データの少なくとも一方を格納しておくために使用される。例えば、矢印１のデータをメインメモリ６０１から読み出してローカルメモリ６０３に格納した後、矢印２のデータをメインメモリ６０１から読み出しつつ、ローカルメモリ６０３上の矢印１のデータを使用して変倍処理を実行できる。
【００３８】
ここで、変倍処理後のデータを一度メインメモリ６０１に格納し、誤差拡散処理で再度メインメモリ６０１から読み出す場合と比較し、メインメモリ６０１へのアクセスが低減されたことを説明する。
【００３９】
図８は、変倍処理後のデータを一度メインメモリへ格納し、誤差拡散処理で再度メインメモリから読み出す画像処理部の構成を示す図である。図８に示す構成では、変倍処理部８０２が変倍後の出力データを一度メインメモリ８０１に書き込んだ後、誤差拡散処理部８０４がメインメモリ８０１から変倍後の出力データを読み出すことになる。この点が、上述した図６に示す変倍処理部６０２及び誤差拡散処理部６０４と異なる。
【００４０】
図８に示す例では、変倍処理と誤差拡散処理との処理順序を合わせる必要がないため、変倍処理部８０２では、図４に示したように、変倍処理単体で考えたときに、最もメインメモリ８０１へのアクセスが少ない順序で処理を実行する。また、誤差拡散処理部８０４の処理順序については、変倍後のデータをメインメモリ８０１から読み出す際にスキャン方向を対応させれば良い。
【００４１】
そして、図８に示す例では、メインメモリ８０１へのアクセスデータ量は入力データのサイズを「１」とすると、変倍処理部８０２の入力が「１」で、変倍処理部８０２の出力が「Ｍｘ＊Ｍｙ」、誤差拡散処理部８０４の入力が「Ｍｘ＊Ｍｙ」となる。即ち、合計でアクセスデータ量は「１＋２＊Ｍｘ＊Ｍｙ」となる。
【００４２】
従って、図６ではアクセスデータ量は「２＊Ｍｙ」、図８では「１＋２＊Ｍｘ＊Ｍｙ」であるから、縦横方向の倍率が等しくＭ（＝Ｍｘ＝Ｍｙ）の場合を想定すると、式（２）の計算から、式（３）が常に成り立つ。
【００４３】
（１+2*Mx*My）-（2*My）=2*M2-2*M+1=2*(M-1/2)2+1/2＞0  …  式（２）
１+2*Mx*My＞2*My  （Mx=My=Mのとき）              …  式（３）
式（３）により、Ｍｘ＝Ｍｙ＝Ｍであれば、図１におけるメインメモリアクセスデータ量が図７におけるメインメモリアクセスデータ量よりも少ないことが示される。
【００４４】
尚、図６に示す例では、変倍処理部６０２と誤差拡散処理部６０４を直接接続しているが、両処理部の間に処理順序に影響しない他の処理が入っていても、本発明は適用可能である。
【００４５】
また、誤差拡散処理を例として挙げているが、処理順序に依存した処理であれば、誤差拡散処理以外の処理に対しても、本発明を適用することができる。
【００４６】
また、変倍処理として、ここではバイリニア補間を例に挙げているが、出力画素近傍の複数の入力画素データから補間により変倍を行う処理であれば、本発明は適用可能であり、例えばバイキュービック補間を使用した変倍処理にも、適用することができる。
【００４７】
第１の実施形態によれば、変倍処理に続いて誤差拡散処理のように処理順序に依存する処理が行われる場合に、メインメモリ６０１へのアクセスを低減させることができる。
【００４８】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。第２の実施形態では、変倍処理部が図４に示す処理順序と図７に示す処理順序とを切り替えてサポートできるように、２つのモードを有するものである。
【００４９】
尚、第２の実施形態でも、変倍処理と誤差拡散処理とを続けて行う画像処理部について説明する。
【００５０】
図９は、第２の実施形態における画像処理装置の構成の一例を示す図である。変倍処理部９０２は第１のモードと第２のモードとを有し、処理モード判定部９０５での判定結果に従って処理順序を切り替えて変倍処理を実行する。尚、第１のモードは図４に示す処理順序でデータを変倍処理するモードとし、第２のモードは図７に示す処理順序でデータを変倍処理するモードとする。
【００５１】
例えば、処理モード判定部９０５での判定結果が、第１のモードと判定した場合、変倍処理部９０２は入力データを図４に示す処理順序に従って読み込んで変倍処理し、出力を一度メインメモリ９０１に書き出す。また、第１のモードの場合、誤差拡散処理部９０４は、メインメモリ９０１から変倍されたデータを誤差拡散処理のデータ処理順序に合った順序で読み出して誤差拡散処理を実行する。
【００５２】
一方、処理モード判定部９０５での判定結果が、第２のモードと判定した場合、変倍処理部９０２は入力データを図７に示す処理順序に従って読み込んで変倍処理し、変倍後の出力データをメインメモリ９０１に書き出さずに誤差拡散処理部９０４に渡す。そして、誤差拡散処理部９０４では、変倍処理部９０２から渡された出力データに対して誤差拡散処理を実行する。
【００５３】
ここで、第２の実施形態における処理モード判定部９０５での判定条件について詳細に説明する。第１の実施形態で説明した式（３）は、Ｍｘ＝Ｍｙ＝Ｍのとき以外に必ずしも成り立つわけではないため、Ｍｘ＝Ｍｙ＝Ｍという仮定を外して式（３）を以下のように変形する。
【００５４】
（１−Ｍｘ）＊Ｍｙ＜１／２            …  式（４）
即ち、処理モード判定部９０５では、倍率Ｍｘ，Ｍｙを使用して式（４）の判定を行い、式（４）が成り立つ場合、第２のモードと判定し、また式（４）が成り立たない場合、第１のモードと判定する。そして、この判定結果に従って変倍処理部９０２が処理順序を切り替えて処理を実行することにより、状況によって最も有利なモードで動作させることができる。
【００５５】
尚、図９に示す例では、変倍処理部１０２と誤差拡散処理部１０４を直接接続しているが、両処理部の間に処理順序に影響しない他の処理が入っていても、本発明は適用可能である。また、誤差拡散処理を例として挙げているが、処理順序に依存した処理であれば、誤差拡散処理以外の処理に対しても、本発明を適用することができる。
【００５６】
また、変倍処理として、ここではバイリニア補間を例に挙げているが、出力画素近傍の複数の入力画素データから補間により変倍を行う処理であれば、本発明は適用可能であり、例えばバイキュービック補間を使用した変倍処理にも、適用することができる。
【００５７】
第２の実施形態によれば、変倍率に応じて、変倍処理の順序を切り替えて実行することにより、状況によって最も有利なモードで動作させることができる。
【００５８】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００５９】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００６０】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００６１】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
【００６３】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６４】
【図１】メインメモリへのアクセスを減少させた画像処理部とメモリとの構成を示す図である。
【図２】バイリニア補間を用いた変倍処理を説明するための図である。
【図３】１ライン分のローカルメモリによる変倍処理を説明するための図である。
【図４】１／４ライン分のローカルメモリによる変倍処理を説明するための図である。
【図５】誤差拡散処理における２つのスキャン処理を説明するための図である。
【図６】第１の実施形態における画像処理装置の構成の一例を示す図である。
【図７】第１の実施形態における入力データの読み出し順序を示す図である。
【図８】変倍処理後のデータを一度メインメモリへ格納し、誤差拡散処理で再度メインメモリから読み出す画像処理部の構成を示す図である。
【図９】第２の実施形態における画像処理装置の構成の一例を示す図である。
【符号の説明】
【００６５】
１０１  画像処理部
１０２  ローカルメモリ
１０３  メインメモリ
６０１  メインメモリ
６０２  変倍処理部
６０３  ローカルメモリ
６０４  誤差拡散処理部
８０１  メインメモリ
８０２  変倍処理部
８０３  ローカルメモリ
８０４  誤差拡散処理部
９０１  メインメモリ
９０２  変倍処理部
９０３  ローカルメモリ
９０４  誤差拡散処理部
９０５  処理モード判定部
【図１】
2007026307.tif 000003
【図２】
2007026307.tif 000004
【図３】
2007026307.tif 000005
【図４】
2007026307.tif 000006
【図５】
2007026307.tif 000007
【図６】
2007026307.tif 000008
【図７】
2007026307.tif 000009
【図８】
2007026307.tif 000010
【図９】
2007026307.tif 000011