(57)【要約】【課題】画像の倍率を変換するための演算に必要なメモリの量を減らす。【解決手段】副走査変換部３３は、倍率変換後の一の画素の階調値を規定するｍ個（ｍは２以上の整数）の画素を参照する。第１乗算器３３１は、１番目の画素の階調値と係数Ｋａとの乗算結果をＲＡＭ３３４に出力する。加算器３３５は、ｍが３以上の場合に第２乗算器３３２から供給される（ｍ−１）番目までの画素の階調値を、ＲＡＭ３３４から読み出された演算結果に順次加算して、ＲＡＭ３３４に出力する。加算器３３５は、ｍ番目の画素の階調値と係数Ｋｂとの乗算結果をＲＡＭ３３４から読み出された演算結果に加算して第３乗算器３３６に出力し、第３乗算器３３６は倍率変換後の階調値を出力する。これと並行して、第１乗算器３３１は、ｍ番目の画素の階調値を他の画素に対応する１番目の画素の階調値として係数Ｋａと乗算し、その乗算結果をＲＡＭ３３４に出力する。【選択図】図２
2013201645.tif 000002
【特許請求の範囲】
【請求項１】
演算結果が読み書きされるメモリと、
複数画素の階調値を含む画像データが示す画像を指定された倍率で変換するための演算を行う演算手段であって、
倍率変換後の一の画素の階調値を規定するｍ個の画素（ｍは２以上の整数）の階調値が順次供給され、供給された階調値及び前記倍率に応じて前記メモリに格納された演算結果を書き換える書換処理を（ｍ−１）個目の画素まで実行した後、供給されたｍ個目の画素の階調値及び前記倍率に応じて、前記メモリから読み出された演算結果を更新して前記一の画素の階調値を出力する処理と、前記倍率変換後の他の画素の階調値を規定する１個目の画素の前記書換処理とを並行して行う演算手段と
を備えることを特徴とする処理回路。
【請求項２】
前記演算手段は、
前記一の画素及び前記他の画素について、前記ｍ個の画素のうち１個目の画素の階調値に前記倍率及び当該画素の位置に応じた第１の係数を乗じた値の前記演算結果に書き換える書換処理を行う第１処理回路と、
前記ｍが３以上である場合に前記（ｍ−１）個目の画素までの階調値を前記第１処理回路により書換処理が行われた後の前記演算結果に加算する書換処理を行う一方、前記ｍ個目の画素の階調値に前記倍率及び当該画素の位置に応じた第２の係数を乗じた値を出力する第２処理回路と、
前記第２処理回路により書換処理が行われた後に前記メモリから読み出された演算結果に、前記第２処理回路により出力された値を加算し、その加算結果に前記倍率を乗じた値を、前記倍率変換後の階調値として出力する処理を行う第３処理回路と
を有することを特徴とする請求項１に記載の処理回路。
【請求項３】
請求項１又は２に記載の処理回路を備え、
前記演算手段は、
前記ｍ個の画素が一方向に沿って連続して配置された画像を示す前記画像データに基づいて、当該画像を前記方向に縮小するための演算を行う
ことを特徴とする画像処理装置。
【請求項４】
前記複数画素が複数行複数列で配置された画素で構成され、且つ、前記ｍ個の画素が列方向に連続して配置された前記画像データに基づいて、前記列方向に沿って各画素の階調値を順次前記演算手段に供給する供給手段と、
前記列方向に連続するＬ個（Ｌは、前記倍率の逆数の整数部に１を加えた値以上）の画素を含むように前記画像データが示す画像に対して予め指定された範囲に、前記供給手段により階調値が供給された画素が含まれる場合、前記演算手段により前記倍率変換後の階調値を出力する処理が行われたときには、当該階調値を規定する前記ｍ個目の画素が含まれる行を示す行情報を保持する保持手段と
を備え、
前記供給手段は、
一の列について供給した階調値に基づいて前記行情報が前記保持手段により保持された後、前記複数列の他の列について当該行情報が示す行まで前記各画素の階調値を供給する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記演算手段は、
前記ｍ個の画素のうち１個目の画素の階調値に前記倍率及び当該画素の位置に応じた第１の係数を乗じた値の前記演算結果に書き換える書換処理と、前記ｍ個目の画素の階調値に前記倍率及び当該画素の位置に応じた第２の係数を乗じて前記倍率変換後の階調値を出力する処理とを少なくとも行い、
前記保持手段は、
前記ｍ個目の画素が含まれる行を示す行情報を保持する場合に、当該画素の階調値に乗じられた前記第２の係数を保持し、
前記保持手段により保持された前記第２の係数を用いて前記第１の係数を算出する算出手段を備え、
前記演算手段は、
前記保持手段により保持された行情報が示す行の画素を前記１個目の画素として、前記供給手段により前記他の列について階調値が供給された場合に、前記算出手段により算出された前記第１の係数を当該１個目の画素の書換処理に用いる
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記メモリは、前記画像データの１行分の容量よりも小さい記憶領域を有し、
前記供給手段は、
前記画像データを記憶する記憶部から前記行方向に沿って各画素の階調値を読み出して前記演算手段に供給し、前記記憶領域の容量の範囲内で階調値を供給するたびに前記行を変更する
ことを特徴とする請求項４又は５に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理回路及び画像処理装置に関する。
【背景技術】
【０００２】
例えば投影法による画像の倍率変換では、倍率変換後の一の画素の階調値を規定するために、倍率変換前の複数の画素の階調値を用いて画素単位の演算が行われる。特許文献１が開示する画像処理装置は、参照すべきラインのうち最初のラインの画像データを格納する第１ＲＡＭ（Random Access Memory）と、参照すべきラインのうち中間のラインの画像データを格納する第２ＲＡＭと、参照すべきラインのうち最後のラインの画像データを格納する第３ＲＡＭとを有し、第１ＲＡＭ、第２ＲＡＭ及び第３ＲＡＭ（つまり、３つのメモリ）から画像データを読み出して、列方向に画像を拡大又は縮小するための演算を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−５４６１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、画像の倍率を変換するための演算に必要なメモリの量を減らすことである。
【課題を解決するための手段】
【０００５】
本発明の請求項１に係る処理回路は、演算結果が読み書きされるメモリと、複数画素の階調値を含む画像データが示す画像を指定された倍率で変換するための演算を行う演算手段であって、倍率変換後の一の画素の階調値を規定するｍ個の画素（ｍは２以上の整数）の階調値が順次供給され、供給された階調値及び前記倍率に応じて前記メモリに格納された演算結果を書き換える書換処理を（ｍ−１）個目の画素まで実行した後、供給されたｍ個目の画素の階調値及び前記倍率に応じて、前記メモリから読み出された演算結果を更新して前記一の画素の階調値を出力する処理と、前記倍率変換後の他の画素の階調値を規定する１個目の画素の前記書換処理とを並行して行う演算手段とを備えることを特徴とする。
【０００６】
本発明の請求項２に係る処理回路は、請求項１に係る構成において、前記演算手段は、
前記一の画素及び前記他の画素について、前記ｍ個の画素のうち１個目の画素の階調値に前記倍率及び当該画素の位置に応じた第１の係数を乗じた値の前記演算結果に書き換える書換処理を行う第１処理回路と、前記ｍが３以上である場合に前記（ｍ−１）個目の画素までの階調値を前記第１処理回路により書換処理が行われた後の前記演算結果に加算する書換処理を行う一方、前記ｍ個目の画素の階調値に前記倍率及び当該画素の位置に応じた第２の係数を乗じた値を出力する第２処理回路と、前記第２処理回路により書換処理が行われた後に前記メモリから読み出された演算結果に、前記第２処理回路により出力された値を加算し、その加算結果に前記倍率を乗じた値を、前記倍率変換後の階調値として出力する処理を行う第３処理回路とを有することを特徴とする。
【０００７】
本発明の請求項３に係る画像処理装置は、請求項１又は２に係る処理回路を備え、前記演算手段は、前記ｍ個の画素が一方向に沿って連続して配置された画像を示す前記画像データに基づいて、当該画像を前記方向に縮小するための演算を行うことを特徴とする。
【０００８】
本発明の請求項４に係る画像処理装置は、請求項３に係る構成において、前記複数画素が複数行複数列で配置された画素で構成され、且つ、前記ｍ個の画素が列方向に連続して配置された前記画像データに基づいて、前記列方向に沿って各画素の階調値を順次前記演算手段に供給する供給手段と、前記列方向に連続するＬ個（Ｌは、前記倍率の逆数の整数部に１を加えた値以上）の画素を含むように前記画像データが示す画像に対して予め指定された範囲に、前記供給手段により階調値が供給された画素が含まれる場合、前記演算手段により前記倍率変換後の階調値を出力する処理が行われたときには、当該階調値を規定する前記ｍ個目の画素が含まれる行を示す行情報を保持する保持手段とを備え、前記供給手段は、一の列について供給した階調値に基づいて前記行情報が前記保持手段により保持された後、前記複数列の他の列について当該行情報が示す行まで前記各画素の階調値を供給することを特徴とする。
【０００９】
本発明の請求項５に係る画像処理装置は、請求項４に係る構成において、前記演算手段は、前記ｍ個の画素のうち１個目の画素の階調値に前記倍率及び当該画素の位置に応じた第１の係数を乗じた前記演算結果に書き換える書換処理と、前記ｍ個目の画素の階調値に前記倍率及び当該画素の位置に応じた第２の係数を乗じて前記倍率変換後の階調値を出力する処理とを少なくとも行い、前記保持手段は、前記ｍ個目の画素が含まれる行を示す行情報を保持する場合に、当該画素の階調値に乗じられた前記第２の係数を保持し、前記保持手段により保持された前記第２の係数を用いて前記第１の係数を算出する算出手段を備え、前記演算手段は、前記保持手段により保持された行情報が示す行の画素を前記１個目の画素として、前記供給手段により前記他の列について階調値が供給された場合に、前記算出手段により算出された前記第１の係数を当該１個目の画素の書換処理に用いることを特徴とする。
【００１０】
本発明の請求項６に係る画像処理装置は、請求項４又は５に係る構成において、前記メモリは、前記画像データの１行分の容量よりも小さい記憶領域を有し、前記供給手段は、前記画像データを記憶する記憶部から前記行方向に沿って各画素の階調値を読み出して前記演算手段に供給し、前記記憶領域の容量の範囲内で階調値を供給するたびに前記行を変更することを特徴とする。
【発明の効果】
【００１１】
請求項１に係る発明によれば、順次供給される画素の階調値を演算内容に応じてメモリ上で分類してから各演算を行う場合に比べて、画像の倍率を変換するための演算に必要なメモリの量を減らすことができる。
請求項２に係る発明によれば、順次供給される画素の階調値を演算内容に応じてメモリ上で分類してから各演算を行う場合に比べて、演算手段の回路規模を小さくすることができる。
請求項３に係る発明によれば、画素が連続して配置される方向に画像を縮小する倍率変換を行う場合であっても、順次供給される画素の階調値を演算内容に応じてメモリ上で分類してから各演算を行う場合に比べて、画像の倍率を変換するための演算に必要なメモリの量を減らすことができる。
請求項４に係る発明によれば、複数行複数列で画素が配置された画像を列方向に縮小する場合に、保持した行情報が示す行まで他の列についての演算を行わない構成に比べて、画像の倍率を変換するための処理量を減らすことができる。
請求項５に係る発明によれば、保持した第２の係数を用いて算出した第１の係数を他の列についての演算に用いない場合に比べて、画像の倍率を変換するための処理量を減らすことができる。
請求項６に係る発明によれば、演算結果が読み書きされるメモリの記憶領域の容量が１行分の画像データの容量未満であっても、画像の倍率を変換するための演算を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】画像処理装置の全体構成を示すブロック図。
【図２】副走査変換部のハードウェア構成を示すブロック図。
【図３】画像データが示す画像及び指定範囲を説明する図。
【図４】投影法による倍率変換における倍率と指定範囲との関係を説明する図。
【図５】倍率変換の処理単位となる画像領域を説明する図。
【図６】倍率変換に関する処理（縮小処理）の流れを示すフローチャート。
【図７】倍率変換に関する処理（縮小処理）の流れを示すフローチャート。
【図８】副走査変換部の動作を説明する図（状態１）。
【図９】副走査変換部の動作を説明する図（状態２）。
【図１０】副走査変換部の動作を説明する図（状態３）。
【図１１】投影法による倍率変換を説明する図。
【発明を実施するための形態】
【００１３】
本発明の実施の形態を図面を参照しつつ説明する。
まず、画像の倍率を変換するための一手法である投影法について説明する。
図１１は、倍率を３５．７％とした場合の投影法による倍率変換（つまり、縮小率３５．７％での縮小処理）を説明する図である。図１１において、倍率変換前の画素の一次配列（上段の倍率「１００％」の画素配列に対応。）と、倍率変換後の画素の一次配列（下段の倍率「３５．７％」の画素配列に対応。）とが示されている。倍率変換前の画素を左側から順に画素ｐ１，ｐ２，ｐ３，・・・とし、各画素の階調値をｄ１，ｄ２，ｄ３，・・・とする。倍率変換後の画素を、左側から順に画素ｐｔ１，ｐｔ２，・・・とし、各画素の階調値をｄｔ１，ｄｔ２・・・とする。
なお、以下の説明において、倍率変換前の画素を「ｐ（ｉ）」（ｉは変数）と一般化して表記し、倍率変換前の画素ｐ（ｉ）の階調値を「ｄ（ｉ）」と一般化して表記し、また、倍率変換後の画素を「ｐｔ（ｊ）」（ｊは変数）と一般化して表記し、倍率変換後の画素ｐ（ｉ）の階調値を「ｄ（ｉ）」と一般化して表記することがある。変数部分を分かりやすくするためここでは括弧書きを用いているが、ｉ，ｊに具体的数値を当てはめるときには括弧書きを省略する。他の変数の場合についてもこれと同じ表記方法をとる。
【００１４】
倍率変換前の画素の幅（より具体的には、画素の配列方向における１画素の長さ）を「１」とした場合、倍率変換後の１画素の幅は倍率の逆数に相当する大きさとなる。ここでは、倍率変換後の１画素の幅は、０．３５７（３５．７％）の逆数であるおよそ「２．８」となる。投影法による倍率変換では、倍率変換後の画素ｐｔ（ｊ）の階調値ｄｔ（ｊ）は、画素の配列方向において同一位置にある複数の倍率変換前の画素ｐ（ｉ）の階調値ｄ（ｉ）によって規定される。より具体的には、倍率変換後の画素の階調値は、倍率変換前の画素の階調値の画素幅に応じた加重平均値によって規定される。例えば、画素ｐｔ１は、画素ｐ１及びｐ２に幅「１」で跨り、且つ、画素ｐ３に幅「０．８」で跨る。よって、画素ｐｔ１の階調値ｄｔ１は、下記式（１）の関係を満たす。
ｄｔ１＝｛（１×ｄ１）＋（１×ｄ２）＋（０．８×ｄ３）｝／２．８  ・・・（１）
【００１５】
同様に考えると、画素ｐｔ２は、画素ｐ３に幅「１」から幅「０．８」を減じた「０．２」で跨り、画素ｐ４及びｐ５に幅「１」で跨り、且つ、画素ｐ６に幅「０．６」で跨る。よって、画素ｐｔ２の階調値ｄｔ２は下記式（２）の関係を満たす。
ｄｔ２＝｛（０．２×ｄ３）＋（１×ｄ４）＋（１×ｄ５）＋（０．６×ｄ６）｝／２．８  ・・・（２）
【００１６】
一般化すると、倍率変換後の画素ｐｔ（ｊ）の階調値ｄｔ（ｊ）は、画素ｐ（ｉ）の階調値ｄ（ｉ）を用いて，下記式（３）の関係を満たす。
【数１】
2013201645.tif 000003
・・・（３）
【００１７】
式（３）において、ｎは既に倍率変換が完了した倍率変換前の画素ｐ（ｉ）の数であり、０又は自然数である。Ｋａは、倍率変換に用いられる１個目の画素ｐ（ｎ＋１）が跨る幅に相当する係数（本発明の第１の係数の一例。）である。Ｋｂは、倍率変換に用いられるｍ個目の画素ｐ（ｎ＋ｍ）が跨る幅に相当する係数（本発明の第２の係数の一例。）である。図１１からも分かるように、係数Ｋｂは、１画素の倍率変換が行われる毎に倍数の逆数を加算した場合の累積加算値の小数部に一致する（例えば、累積加算値が「５．６」であれば、Ｋｂ＝０．６である）。そして、係数Ｋｂが適用される画素に適用される係数Ｋａは、１から係数Ｋｂを減じた値に一致する（例えば、Ｋｂ＝０．６であれば、Ｋａ＝１−０．６＝０．４である）。このような倍率の逆数の累積加算値によって、倍率変換に用いられるｍ個の画素と係数Ｋａ，Ｋｂとが一意に定まる。ｋは、倍率変換後の画素に幅「１」で跨る２個目の画素ｐ（ｎ＋２）から（ｍ−１）目の画素ｐ（ｎ＋ｍ−１）を規定するための変数である。ただし、倍率が大きい場合には倍率変換後の画素に幅「１」で跨る画素がない場合があるので、この場合は式（３）の中括弧内の第２項はゼロとなる。ＭＡＧは、倍率変換において指定された倍率である。この倍率は例えばユーザにより指定されるが、その指定方法は特に問わない。以上の説明で用いた各記号は、以下の実施形態の説明でも同じ意味で用いる。
投影法による倍率変換の説明は以上である。次に、本発明の一実施形態である画像処理装置１を説明する。
【００１８】
図１は、画像処理装置１の全体構成を示すブロック図である。
図１に示すように、画像処理装置１は、用紙等の媒体に形成された画像を読み取るスキャナ等の画像読取装置１００と接続されている。画像処理装置１は、例えばパーソナルコンピュータであり、画像読取装置１００からラスタ形式の画像データを取得し、取得した画像データを用いて画像処理を実行する。画像処理装置１が画像読取装置１００から取得する画像データは、複数行複数列で画素が配置された画像を示すデータであり、複数画素の階調値を含むデータである。本実施形態の階調値は、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の各色成分が８ビット（２５６階調）のデータで表され、濃度が低い画像が読み取られた場合ほど小さな値をとり、反対に、濃度が高い画像が読み取られた場合ほど大きな値をとる。
【００１９】
図１に示すように、画像処理装置１は、前処理部１０と、画像メモリ２０と、倍率変換部３０とを備える。前処理部１０は、画像読取装置１００から取得した画像データにシェーディング補正等の前処理を施して、前処理後の画像データをラスタ順に画像メモリ２０に記憶させる。画像メモリ２０は、例えばＤＲＡＭ（Dynamic Random Access Memory）等の不揮発性メモリであり、前処理部１０から供給された画像データを記憶する記憶装置である。倍率変換部３０は、画像メモリ２０から読み出した画像データが示す画像を倍率変換するための演算を行う。倍率変換部３０は、一定量の画像データが画像メモリ２０に記憶されてから倍率変換のための演算を行うが、ここでは、主走査方向に１２画素で副走査方向に１８画素の画像データが記憶されてからこの演算が行われる場合を説明する。ここでいう主走査方向は、画像読取装置１００における読み取りの主走査方向のことであり、画像の行方向に相当する。また、ここでいう副走査方向は、画像読取装置１００における読み取りの副走査方向のことであり、画像の列方向に相当する。
【００２０】
図２は、倍率変換部３０のハードウェア構成を示すブロック図である。
図２に示すように、倍率変換部３０は、コントローラ３１と、アドレス制御部３２と、副走査変換部３３と、主走査変換部３４とを備える。コントローラ３１は、ＣＰＵ（Central Processing Unit）を含む演算装置や内部メモリ、倍率変換に用いられるパラメータを保持するレジスタ３１１（本発明の保持手段の一例。）を備え、倍率変換部３０の各部を制御する。コントローラ３１は、例えば、画像メモリ２０から読み出す画像データのアドレス制御をアドレス制御部３２に行わせる。また、コントローラ３１は、副走査変換部３３を制御するためのイネーブル信号Ｅｎｂを含む制御信号、係数Ｋａ，Ｋｂ及び倍率ＭＡＧを出力する。
【００２１】
アドレス制御部３２は、コントローラ３１の制御の下、画像メモリ２０から読み出すべき画像データのアドレスを制御する。アドレス制御部３２は、画像メモリ２０に記憶された画像データに基づき、主走査方向に予め決められた画素数の階調値を読み出すためのアドレスを制御する。また、アドレス制御部３２は、主走査方向に予め決められた画素数の階調値を読み出すたびに、列を変更して主走査方向に同画素数の階調値を読み出すアドレスを制御する。アドレス制御部３２は、ここでは、主走査方向に４画素（つまり、階調値１バイト×色成分数「３」×画素数「４」＝１２バイト）で、副走査方向に８画素の計３２画素で構成される画像領域を、倍率変換の１つの処理単位として、画像メモリ２０から画像データを読み出す。このアドレス制御により、アドレス制御部３２は、画像メモリ２０から読み出した画像データに基づいて、各画素の階調値ｄ（ｉ）を副走査変換部３３に供給する。アドレス制御部３２は本発明の供給手段の一例である。
【００２２】
副走査変換部３３は、供給された階調値ｄ（ｉ）に基づいて副走査方向における画像の倍率変換を行う。副走査変換部３３は、倍率変換後の画素の階調値ｄｔ（ｊ）を主走査変換部３４に出力する。副走査変換部３３は、本発明の処理回路の一例である。
主走査変換部３４は、副走査変換部３３から階調値ｄｔ（ｊ）が供給されると、供給された階調値ｄｔ（ｊ）に基づいて主走査方向における画像の倍率変換を行う。主走査変換部３４は、例えば特許文献１に開示されている主走査補間部と同等の構成を有し、副走査変換部３３により出力された階調値ｄｔ（ｊ）を保持するフリップフロップ、加算器及び乗算器を備える。主走査変換部３４は、倍率変換後の画素の階調値を画像メモリ２０に出力しこれを記憶させる。
次に、副走査変換部３３のハードウェア構成をより詳細に説明する。
【００２３】
副走査変換部３３は、第１乗算器３３１と、第２乗算器３３２と、セレクタ３３３と、ＲＡＭ３３４と、加算器３３５と、第３乗算器３３６とを備える。
第１乗算器３３１は、画像メモリ２０から供給された階調値ｄ（ｉ）とコントローラ３１から供給されたＫａとを乗算し、その乗算結果をセレクタ３３３に出力する乗算回路である。第１乗算器３３１は、前述した式（３）の中括弧内の第１項に相当する演算を行う。
第２乗算器３３２は、画像メモリ２０から供給された階調値ｄ（ｉ）とコントローラ３１から供給されたＫｂとを乗算し、その乗算結果をセレクタ３３３に出力する乗算回路である。第２乗算器３３２は、前述した式（３）の中括弧内の第２項及び第３項に相当する演算を行う。
第１乗算器３３１及び第２乗算器３３２は、画像メモリ２０から共通に供給された階調値ｄ（ｉ）を受け取って乗算処理を行う。
【００２４】
セレクタ３３３は、第１乗算器３３１により出力された乗算結果と、第２乗算器３３２により出力された乗算結果との一方を選択し、選択した乗算結果をＲＡＭ３３４に出力する選択回路である。セレクタ３３３は、コントローラ３１の制御の下、どちらか一方の乗算結果を選択する。
ＲＡＭ３３４は、ＳＲＡＭ（Static Random Access Memory）等のバッファ機能を有する揮発性メモリであり、副走査変換部３３において行われる演算の演算結果が読み書きされるメモリである。ＲＡＭ３３４は、倍率変換の実行中において、第１乗算器３３１又は第２乗算器３３２から出力された乗算結果に応じて書き換えられる演算結果を記憶する。ＲＡＭ３３４は、本発明のメモリの一例である。
【００２５】
加算器３３５は、第２乗算器３３２により出力された乗算結果と、ＲＡＭ３３４から読み出された演算結果とを加算して、その加算結果をセレクタ３３３又は第３乗算器３３６に出力する加算回路である。加算器３３５は、前述した式（３）における加算処理に相当する演算を行う。
第３乗算器３３６は、加算器３３５により出力された加算結果と、コントローラ３１から供給された倍数ＭＡＧとを乗算して、その乗算結果を階調値ｄｔ（ｊ）として、主走査変換部３４に出力する乗算回路である。第３乗算器３３６は、前述した式（３）における倍率ＭＡＧの乗算に相当する演算を行う。
なお、第１乗算器３３１、第２乗算器３３２、加算器３３５及び第３乗算器３３６は、イネーブル信号Ｅｎｂによってイネーブル（有効）又はディセーブル（無効）に制御される。また、本発明の演算手段は、第１乗算器３３１、第２乗算器３３２、セレクタ３３３、加算器３３５及び第３乗算器３３６の協働により実現される。
【００２６】
ところで、前述したように、副走査変換部３３は、主走査方向に４画素で副走査方向に８画素の画像領域を１つの処理単位として、処理単位毎に倍率変換を行う。よって、アドレス制御部３２は、図３に矢印で示す方向に各画素の階調値を画像メモリ２０から順次読み出して、副走査変換部３３に供給する。主走査方向の画素数「４」は、ＲＡＭ３３４の記憶領域に基づいて決められている。具体的には、ＲＡＭ３３４は、画像データ１行分の容量よりは少ないが、少なくとも副走査変換部３３における４画素分の演算結果を記憶するための記憶領域を有している。一方、副走査方向の画素数「８」は、画像データが示す画像に対して予め指定された範囲（以下、「指定範囲」という。）に基づいて決められている。指定範囲は、副走査方向に連続するＬ個（Ｌは、倍率ＭＡＧの逆数の整数部に１を加えた値以上）の画素を含む範囲である。倍率ＭＡＧ＝３５．４％の場合、倍率ＭＡＧの逆数である「２．８」の整数部は「２」であるから、指定範囲は副走査方向にＬ＝３画素を含む。指定範囲は、画像データが示す画像に対して自由に設定されてよいが、ここでは第６行から第８行まで３行の画素を含む指定範囲ｒｓ１と、第１１行から第１３行まで３行の画素を含む指定範囲ｒｓ２とが指定されている。
【００２７】
指定範囲は、各画素の階調値を副走査方向に順次供給して副走査変換部３３が倍率変換を行った場合に、倍率変換に用いた最後尾の画素（式（３）でいえば、ｎ＋ｍ個目の画素）が必ず指定範囲に含まれるように決められている。図４において破線で囲んだ範囲を見ても分かるように、倍率ＭＡＧ＝３５．４％の場合、指定範囲としてＬ＝３画素としておけば、指定範囲をどのように設定しても、この指定範囲に倍率変換に用いられる最後尾の画素が含まれる。倍率ＭＡＧが４３．４％や７１．４％の場合であっても、Ｌを倍率ＭＡＧの逆数の整数部に１を加えた値以上としておけば、倍率変換に用いられる最後尾の画素が指定範囲に含まれる。
以上の理由から、主走査方向に４画素で副走査方向に８画素の画像領域を１つの処理単位として倍率変換が行われる。ただし、アドレス制御部３２は、指定範囲に含まれる画素の階調値を２回にわたって（つまり重複して）、画像メモリ２０から読み出して副走査変換部３３に供給することがある。
【００２８】
図５は、各処理単位に対応する画像領域を説明する図である。
図５に示すように、画像データが示す画像の上部の画像端（以下、単に「上端」という。）に接する画像領域に対応した処理単位Ｐｕ１からＰｕ３については、この上端から副走査方向（図５に示す処理方向）に沿って、指定範囲ｒｓ１に含まれる画素まで階調値が副走査変換部３３に順次供給される。すなわち、処理単位Ｐｕ１からＰｕ３については、第１行から第８行まで階調値が供給されることがある。一方、上端に接しない画像領域に対応した処理単位Ｐｕ４からＰｕ６については、指定範囲ｒｓ１の先頭である第６行の画素から、副走査方向に沿って指定範囲ｒｓ２に含まれる画素まで階調値が供給されることがある。このように第６行から第８行までの画素の階調値が重複して供給されることがあるのは、処理単位Ｐｕ１からＰｕ３に対応する倍率変換が指定範囲ｒｓ１内のどの行の画素で終了するかが未定だからである。仮に第６行の画素を参照して倍率変換が終了すると、処理単位Ｐｕ４からＰｕ６の倍率変換では第６行の画素から階調値を参照する必要があるので、第６行から第８行までの画素の階調値が重複して供給される必要がある。指定範囲ｒｓ２に含まれる第１１行から第１３行までの画素の階調値が重複して供給されることがある理由も、指定範囲ｒｓ１の場合と同様に考えればよい。
画像処理装置１の構成の説明は以上である。次に、画像処理装置１の動作を説明する。
【００２９】
図６及び図７は、画像処理装置１において行われる倍率変換に関する処理の流れを示すフローチャートである。ここでは画像処理装置１が投影法による縮小処理を行う場合を説明する。図８から図１０は、副走査変換部３３の動作を説明する図である。図８から図１０の（ａ）は、副走査変換部３３の回路の状態を示す図であり、破線で示す要素は副走査変換部３３の動作に無関係な要素であることを意味する。図８から図１０の（ｂ）は、各状態の副走査変換部３３に供給される階調値を説明する図である。
コントローラ３１は、図３に示す手順で画像メモリ２０から各画素の階調値ｄ（ｉ）を読み出して副走査変換部３３に供給し、図５に示す処理単位Ｐｕ１からＰｕ９の順で倍率変換のための演算を行わせる。
【００３０】
まず、コントローラ３１は、縮小処理の対象となる処理単位の画像領域が、画像データが示す画像の左部の画像端（以下、単に「左端」という。）及び上端に接するか否かを判断する（ステップＳ１）。ここでは、図５に示す処理単位Ｐｕ１を対象として縮小処理を行うので、コントローラ３１は、ステップＳ１の処理で「ＹＥＳ」と判断し、ステップＳ２の処理に進む。
【００３１】
次に、コントローラ３１は、処理単位Ｐｕ１に対応した各画素の階調値ｄ（ｉ）を副走査方向に沿って副走査変換部３３に順次供給し、副走査変換部３３により縮小処理を実行する（ステップＳ２）。ここで、縮小処理時における副走査変換部３３の動作を図８から図１０を参照して説明する。
【００３２】
（状態１）第１行（１個目の画素）の階調値の供給時（図８）
まず、コントローラ３１は、アドレス制御部３２を制御して、第１行の画像データの階調値ｄ１を副走査変換部３３に供給する（図８（ｂ）参照）。このときコントローラ３１は、図８（ａ）に示すように、イネーブル信号Ｅｎｂにより、第１乗算器３３１及び加算器３３５をイネーブルとし、第２乗算器３３２及び第３乗算器３３６をディセーブルとするとともに、セレクタ３３３に第１乗算器３３１からの乗算結果を選択させる。このような副走査変換部３３の状態を「状態１」と称する。第１乗算器３３１及びセレクタ３３３が本発明の第１処理回路に相当する。また、コントローラ３１は、第１行の画素の階調値を供給するときには、図１１を用いて説明したように係数Ｋａ＝１とする。
【００３３】
（状態１）のとき、第１乗算器３３１は、係数Ｋａ（＝１）と階調値ｄ１とを乗算して（つまり、Ｋａ×ｄ１）、その乗算結果をセレクタ３３３に出力する。セレクタ３３３は、第１乗算器３３１からの乗算結果を選択してＲＡＭ３３４に出力する。コントローラ３１は、ＲＡＭ３３４が記憶する演算結果をセレクタ３３３により出力された乗算結果に書き換える書換処理を行う。これにより、ＲＡＭ３３４には、演算結果としてＫａ×ｄ１が記憶されることとなる。
【００３４】
（状態２）第２行（２個目の画素）から第（ｍ−１）行（（ｍ−１）個目の画素）の階調値の供給時（図９）
次に、コントローラ３１は、アドレス制御部３２を制御して、第２行の階調値ｄ２を副走査変換部３３に供給する（図９（ｂ）参照）。このとき、コントローラ３１は、図９（ａ）に示すように、イネーブル信号Ｅｎｂにより、第２乗算器３３２及び加算器３３５をイネーブルとし、第１乗算器３３１及び第３乗算器３３６をディセーブルとするとともに、セレクタ３３３に第２加算器３３５からの加算結果を選択させる。このような副走査変換部３３の状態を「状態２」と称する。第２乗算器３３２、セレクタ３３３及び加算器３３５が本発明の第２処理回路に相当する。また、コントローラ３１は、第２行の画素の階調値を供給するときには、図１１を用いて説明したように係数Ｋｂ＝１とする。
【００３５】
（状態２）のとき、第２乗算器３３２は、係数Ｋｂ＝１と階調値ｄ２とを乗算して（つまり、１×ｄ２）、その乗算結果を加算器３３５に出力する。このとき第２乗算器３３２は係数Ｋｂ＝１を乗じずに、階調値ｄ２をそのまま出力してもよい。加算器３３５は、第２乗算器３３２により出力された乗算結果ｄ２と、ＲＡＭ３３４から読み出された演算結果（ここでは、Ｋａ×ｄ１）とを加算し、その加算結果をセレクタ３３３に出力する。セレクタ３３３は、加算器３３５からの加算結果を選択してＲＡＭ３３４に出力する。このときコントローラ３１は、縮小処理の途中の演算結果であるＫａ×ｄ１に乗算結果ｄ２を加算した結果により、ＲＡＭ３３４に記憶された演算結果を書き換える。よって、コントローラ３１は、Ｋａ×ｄ１に上書きして、Ｋａ×ｄ１＋ｄ２をＲＡＭ３３４に書き込む。
【００３６】
（状態３）第ｍ行（ｍ個目の画素）の階調値の供給時（図１０）
次に、コントローラ３１は、アドレス制御部３２を制御して、第３行の階調値ｄ３を副走査変換部３３に供給する（図１０（ｂ）参照）。このときコントローラ３１は、図１０（ａ）に示すように、イネーブル信号Ｅｎｂにより、第１乗算器３３１、第２乗算器３３２、加算器３３５及び第３乗算器３３６をイネーブルとするとともに、セレクタ３３３に第１乗算器３３１からの加算結果を選択させる。このような副走査変換部３３の状態を「状態３」と称する。加算器３３５及び第３乗算器３３６が本発明の第３処理回路に相当する。また、コントローラ３１は、第３行の画素の階調値を供給するときには、図１１を用いて説明したように係数Ｋｂ＝０．８とする。
【００３７】
（状態３）のとき、第２乗算器３３２は、係数Ｋｂ＝０．８と階調値ｄ３とを乗算して（つまり、０．８×ｄ３）、その乗算結果を加算器３３５に出力する。加算器３３５は、第２乗算器３３２により出力された乗算結果０．８×ｄ３と、ＲＡＭ３３４から読み出された演算結果（ここでは、Ｋａ×ｄ１＋ｄ２）とを加算し、その加算結果を第３乗算器３３６に出力する。このように加算器３３５は、第２乗算器３３２により出力された乗算結果に応じて、ＲＡＭ３３４から読み出された演算結果を更新する。第３乗算器３３６は、加算器３３５により出力された加算結果（ここでは、Ｋａ×ｄ１＋ｄ２＋０．８×ｄ３）と、倍率ＭＡＧ＝０．３５７とを乗算して階調値ｄｔ１を出力する。言い換えれば、第３乗算器３３６は、加算結果（Ｋａ×ｄ１＋ｄ２）を倍率ＭＡＧの逆数で除した結果（つまり、２．８で除した結果）を、画素ｐｔ１の階調値ｄｔ１として出力する。これにより、階調値ｄｔ１は、式（３）において、ｎ＝０，ｍ＝３とした場合の倍率変換の結果となる。
【００３８】
また副走査変換部３３では、階調値ｄｔ１を出力する処理と並行して、他の画素の縮小処理に関する演算も行われる。具体的には、第１乗算器３３１は、第２乗算器３３２と共通に供給される第３行の画素の階調値ｄ３を受け取ると、受け取った階調値ｄ３に係数Ｋａを乗じて、その乗算結果Ｋａ×ｄ３をセレクタ３３３に出力する。この場合の第３行の画素は、縮小処理において用いられるｍ個の画素のうち１個目の画素に相当する。このとき、コントローラ３１は、図１１を用いて説明したように、係数Ｋａ＝１−Ｋｂ＝０．２とする。セレクタ３３３は、第１乗算器３３１からの乗算結果を選択してＲＡＭ３３４に出力する。コントローラ３１は、セレクタ３３３により出力された乗算結果をＲＡＭ３３４に新たに書き込む書換処理を行う。これにより、ＲＡＭ３３４にはＫａ×ｄ３が記憶されることとなる。Ｋａ×ｄ３は、先に記憶されていた演算結果に上書きされてもよいし、別の記憶領域に書き込まれてもよい。
なお、ＲＡＭ３３４の情報を書き換える書換処理のアドレスの管理やＲＡＭ３３４の情報を読み出すときのアドレスの管理はコントローラ３１により行われてもよいが、副走査変換部３３がその管理を行うためのコントローラを有し、このコントローラにより行われてもよい。
【００３９】
以上のようにしてコントローラ３１は、一の倍率変化後の画素ｐｔ１について縮小処理が完了すると、ステップＳ３の処理に進み、縮小処理の出力に用いた最後尾の画素が指定範囲に含まれるか否かを判断する（ステップＳ３）。ここでは、コントローラ３１は、１画素について縮小処理を行うたびに、倍率ＭＡＧの逆数を加算していきその累積加算値により、縮小処理の出力に用いた画素が指定範囲に含まれる画素か否かを判断する。ここでは、コントローラ３１は、倍率ＭＡＧの逆数の累積加算値が「２．８」であるから、第３行の画素まで参照していることになるので、ステップＳ３の処理で「ＮＯ」と判断し、ステップＳ２の処理に戻る。そして、コントローラ３１は、ステップＳ２の縮小処理を実行することとなる。
【００４０】
ここでの縮小処理では、コントローラ３１は、第４行、第５行、第６行・・・という順で各画素の階調値を供給するが、そのときも上記（状態１）から(状態３)のいずれかで動作するよう、副走査変換部３３を制御する。
具体的には、コントローラ３１は、処理単位Ｐｕ１に含まれる第４行及び第５行の階調値ｄ４，ｄ５を順次副走査変換部３３に供給するときには、（状態２）で副走査変換部３３を動作させる。このとき、副走査変換部３３において、第２乗算器３３２は、係数Ｋｂ＝１と階調値ｄ４，ｄ５とを順次乗算して、その乗算結果を加算器３３５に出力する。加算器３３５は、第２乗算器３３２により出力された乗算結果と、ＲＡＭ３３４から読み出された演算結果とを加算し、その加算結果をＲＡＭ３３４に出力する。このときコントローラ３１は、縮小処理の途中の演算結果であるＫａ×ｄ３に乗算結果１×ｄ４，１×ｄ５を順次加算した結果により、ＲＡＭ３３４に記憶された演算結果を書き換える。よって、コントローラ３１は、Ｋａ×ｄ３＋ｄ４＋ｄ５をＲＡＭ３３４に書き込ませる。
【００４１】
次に、コントローラ３１は、処理単位Ｐｕ１に含まれる第６行の階調値ｄ６を副走査変換部３３に供給するときには、（状態３）で副走査変換部３３を動作させる。このとき、第２乗算器３３２は、係数Ｋｂ＝０．６と階調値ｄ６とを乗算して（つまり、０．６×ｄ６）、その乗算結果を加算器３３５に出力する。加算器３３５は、第２乗算器３３２により出力された」乗算結果０．６×ｄ６と、ＲＡＭ３３４から読み出された演算結果（ここでは、Ｋａ×ｄ３＋ｄ４＋ｄ５）とを加算し、その加算結果を第３乗算器３３６に出力する。第３乗算器３３６は、加算器３３５により出力された加算結果（ここでは、Ｋａ×ｄ３＋ｄ４＋ｄ５＋Ｋｂ×ｄ６）と、倍率ＭＡＧ＝０．３５７とを乗算して、画素ｐｔ２の階調値ｄｔ２として出力する。これにより、階調値ｄｔ２は、式（３）において、ｎ＝２，ｍ＝４とした場合の縮小処理後の階調値を示すことになる。
【００４２】
また、ここでも、副走査変換部３３においては、階調値ｄｔ２を出力する処理と並行して次の画素の縮小処理も行われることとなる。具体的には、第１乗算器３３１は、第２乗算器３３２と共通に供給される第６行の階調値ｄ６を受け取ると、受け取った階調値ｄ６に係数Ｋａを乗じて、その乗算結果Ｋａ×ｄ６をセレクタ３３３に出力する。このとき、コントローラ３１は、図１１を用いて既に説明したように、係数Ｋａ＝１−Ｋｂ＝０．４として、第１乗算器３３１に出力する。セレクタ３３３は、第１乗算器３３１からの乗算結果０．４×ｄ６を選択してＲＡＭ３３４に出力することにより、乗算結果がＲＡＭ３３４に書き込まれる。
【００４３】
ステップＳ３の処理において、コントローラ３１は、倍率ＭＡＧの逆数の累積加算値が「５．６」であり第６行の画素まで参照しているので、ステップＳ３の処理で「ＹＥＳ」と判断する。図１０を参照して分かるように、コントローラ３１は、第６行の画素の階調値を供給して副走査変換部３３に縮小処理を行わせると、この画素が指定範囲ｒｓ１に含まれると判断する。ステップＳ３の処理で「ＹＥＳ」と判断すると、コントローラ３１は、最後に用いた係数Ｋｂ及び縮小処理が終了した行を示す終了行情報をレジスタ３１１によって保持する（ステップＳ４）。ここでは、コントローラ３１は、第６行を終了行情報「６」と、第６行の画素に用いた係数Ｋｂ＝「０．６」とをレジスタ３１１において保持する。
【００４４】
次に、コントローラ３１は、すべての処理単位について縮小処理が終了したか否かを判断する（ステップＳ５）。ここでは、コントローラ３１は、処理単位Ｐｕ１について縮小処理を行っただけであるから、ステップＳ５の処理で「ＮＯ」と判断し、ステップＳ１の処理に戻る。
【００４５】
次にコントローラ３１は、副走査変換部３３に供給する画像データが示す処理単位の画像領域が左端及び上端に接するか否かを判断する（ステップＳ１）。ここでは、図５に示す処理単位Ｐｕ２を対象として縮小処理を行うので、コントローラ３１はステップＳ１の処理で「ＮＯ」と判断し、ステップＳ６の処理に進む。次にコントローラ３１は、処理単位の画像領域が上端に接するか否かを判断する（ステップＳ６）。ここでコントローラ３１は、処理単位Ｐｕ２が上端に接すると判断し（ステップＳ６；ＹＥＳ）、ステップＳ７の処理に進む。そして、コントローラ３１は、副走査変換部３３により、ステップＳ４の処理で保持した終了行情報が示す行まで縮小処理を行う（ステップＳ７）。すなわち、コントローラ３１は、処理単位Ｐｕ１について縮小処理が終了した行まで処理単位Ｐｕ２についても縮小処理を行う。このステップＳ７の処理における縮小処理は、基本的にはステップＳ２の処理と同じであり、副走査変換部３３は前述した（状態１）から（状態３）のいずれかにより動作する。
ただし、コントローラ３１が縮小処理を行うたびに指定範囲に画素が含まれるか否かを判断するステップＳ３に相当する処理を実行しないとともに、終了行情報が示す行まで縮小処理を行っても、係数Ｋｂ及び終了行情報を保持するステップＳ４に相当する処理を行わない点で、処理単位Ｐｕ１の場合の処理とは相違する。
【００４６】
コントローラ３１は、処理単位Ｐｕ２について終了行情報が示す行（第６行）まで縮小処理を行うと、ステップＳ５の処理に進む。次に、コントローラ３１は、ステップＳ５；ＮＯ→ステップＳ１；ＮＯ→ステップＳ６；ＹＥＳと進んで、処理単位Ｐｕ３についても、処理単位Ｐｕ２と同じ手法によりステップＳ７の処理で終了行情報が示す行（第６行）まで縮小処理を行う。
【００４７】
処理単位Ｐｕ３まで縮小処理が終了すると、コントローラ３１は、次に処理単位Ｐｕ４を処理対象とする。よって、コントローラ３１は、ステップＳ１；ＮＯ→ステップＳ６；ＮＯ→図７のステップＳ８の処理へと進む。そして、コントローラ３１は、処理単位の画像領域が左端に接するか否かを判断する（ステップＳ８）。ここでは、コントローラ３１は「ＹＥＳ」と判断し、ステップＳ９の処理に進む。
【００４８】
そして、コントローラ３１は、レジスタ３１１で保持した係数Ｋｂを読み出してＫａ＝１−Ｋｂの演算を行って、係数Ｋａを算出するとともに、縮小処理の開始行を示す開始行情報を算出して、係数Ｋａ及び開始行情報をレジスタ３１１において保持する（ステップＳ９）。ここでは、コントローラ３１は、ステップＳ４の処理で係数Ｋｂ＝０．６をレジスタ３１１に保持していたから、１−０．６＝０．４という計算により係数Ｋａ＝０．４と算出する。すなわち、コントローラ３１は、本発明の算出手段の一例である。また、コントローラ３１は、レジスタ３１１に保持していた終了行情報と係数Ｋｂとに基づいて、開始行情報を算出する。具体的には、コントローラ３１は、係数Ｋｂ≠１である場合には、終了行情報が示す行と同じ行を示す開始行情報を算出する一方、係数Ｋｂ＝１である場合には、終了行情報が示す行の次行を示す開始行情報を算出する。係数Ｋｂ≠１である場合、これから処理対象となる画素にも終了行情報が示す行の画素が跨るため、終了行情報が示す行を開始行とする必要がある。一方、係数Ｋｂ＝１である場合、これから処理対象となる画素に終了行情報が示す行の画素が跨らないため、次行を開始行とすればよい。
【００４９】
そして、コントローラ３１は、副走査変換部３３により、ステップＳ９の処理で算出した係数Ｋａ及び開始行情報に基づいて、縮小処理を実行する（ステップＳ１０）。ここでコントローラ３１は、基本的には処理単位Ｐｕ１の場合と同じステップＳ２で説明した手法で、処理単位Ｐｕ４について縮小処理を行う。ただし、コントローラ３１がステップＳ９の処理で算出した係数Ｋａ及び開始行情報を用いる点で、ステップＳ２の処理とは相違する。
【００５０】
コントローラ３１は、一の倍率変化後の画素の階調値を規定する縮小処理が完了すると、ステップＳ１１の処理に進み、縮小処理の出力に用いた最後尾の画素が指定範囲に含まれる画素か否かを判断する（ステップＳ１１）。次の指定範囲ｒｓ２は、第１１行から第１３行を含む。これに対し、コントローラ３１は、第９行の画素が指定範囲ｒｓ２に含まれないと判断し（ステップＳ１１；ＮＯ）、ステップＳ１０の処理に戻って縮小処理を行う。この場合の縮小処理では、図１１を見て分かるように、コントローラ３１は、第９行から第１２行の画素を用いることになる。コントローラ３１はこの縮小処理が完了すると、ステップＳ１１で縮小処理の出力に用いた最後尾の画素が指定範囲に含まれる画素か否かを判断する。ここでは１２行目の画素が指定範囲ｒｓ２に含まれるので、コントローラ３１は、ステップＳ１１の処理で「ＹＥＳ」と判断する。そして、コントローラ３１は、最後に用いた係数Ｋｂ及び終了行情報をレジスタ３１１によって保持する（ステップＳ１２）。ここでは、コントローラ３１は、第１２行であることを示す行情報「１２」と、第１２行の画素に用いた係数Ｋｂ＝「０．２」とをレジスタ３１１に格納しこれを保持する。
【００５１】
次に、コントローラ３１は、すべての処理単位について縮小処理が終了したか否かを判断する（ステップＳ５）。ここでは、コントローラ３１は、ステップＳ５の処理で「ＮＯ」と判断し、ステップＳ１の処理に戻る。
【００５２】
処理単位Ｐｕ４の縮小処理が終了すると、コントローラ３１は、処理単位Ｐｕ５を処理対象とする。よって、コントローラ３１は、ステップＳ１；ＮＯ→ステップＳ６；ＮＯ→ステップＳ８と進む。そして、コントローラ３１は、処理単位の画像領域が左端に接するか否かを判断する（ステップＳ８）。ここでは、コントローラ３１は、ステップＳ８の処理で「ＮＯ」と判断し、ステップＳ１３の処理に進む。
【００５３】
そして、コントローラ３１は、副走査変換部３３により、ステップＳ９の処理で算出した開始行情報が示す行から、ステップＳ１２の処理で保持した終了行情報が示す行まで縮小処理を行う（ステップＳ１３）。ここにおいて、コントローラ３１は、開始行情報が示す行については、ステップＳ９の処理で算出した係数Ｋａを用いるので、ステップＳ１３の処理では係数Ｋａを算出する処理を行わない。またここでも、コントローラ３１は、縮小処理を行うたびに指定範囲に画素が含まれるか否かを判断するステップＳ１１に相当する処理を実行しないとともに、終了行情報が示す行まで縮小処理を行っても、係数Ｋｂ及び終了行情報を保持するステップＳ１２に相当する処理を行わない。
【００５４】
以上のように、コントローラ３１は処理単位Ｐｕ５について縮小処理を行うと、これと同様にして処理単位Ｐｕ６についても縮小処理を行う。また、コントローラ３１は、処理単位Ｐｕ７については、ステップＳ１；ＮＯ→ステップＳ６；ＹＥＳ→ステップＳ８；ＹＥＳ→ステップＳ９と進んで、処理単位Ｐｕ４と同じ手法で縮小処理を行う（Ｓ９からＳ１２）。また、コントローラ３１は、処理単位Ｐｕ８，Ｐｕ９については、ステップＳ１；ＮＯ→ステップＳ６；ＮＯ→ステップＳ８；ＮＯ→ステップＳ１３と進んで、処理単位Ｐｕ５，Ｐｕ６と同じ手法で縮小処理を行う。
【００５５】
以上のようにして、画像データが示す画像全体で縮小処理を行うと、コントローラ３１はステップＳ５の処理で「ＹＥＳ」と判断し、縮小処理を終了する。ここでは、主走査方向に１２画素で副走査方向に１８画素の画像データに対し、倍率変換部３０が縮小処理を行う場合を説明したが、この画像データの画素数が更に多い場合であっても、例えば指定範囲の数を増やすなどして、倍率変換部３０は上記手順により縮小処理を行えばよい。また、倍率ＭＡＧ＝３５．４％の場合を説明したが、倍率ＭＡＧ＝４３．４％や７１．４％のような他の倍率であっても、係数Ｋａ，Ｋｂ，ｍの値が異なるものの、倍率変換部３０では上記手順により縮小処理を行う。
【００５６】
以上説明した実施形態の画像処理装置１は、倍率変換後の一の画素の階調値を規定するために、倍率変換前の複数の画素の階調値を用いて画素単位の演算処理を行うが、一の画素の階調値を供給したときに、ＲＡＭ３３４から演算結果を読み出してこれを更新し、ＲＡＭ３３４に格納する。これにより、副走査変換部３３は、階調値に乗じられる係数Ｋａ，Ｋｂ（＝１），Ｋｂ（≠１）に応じて各階調値を分類するためのメモリを別々に有している必要がなく、副走査変換部３３にはＲＡＭ３３４という１つのメモリで投影法による倍率変換が実行される。
【００５７】
また、画像処理装置１では、倍率変換後の一の画素の階調値を出力する処理と、他の画素に対応する１個目の画素の書換処理とを並行して行う。階調値を出力する処理に用いられた最後尾の画素の階調値は、係数Ｋａが乗じられる場合と係数Ｋｂとが乗じられる場合とがあるが、上記構成により、画像処理装置１ではこれらの階調値をメモリ上で分類してから各演算を行う必要がない。
また、画像処理装置１は、上端に接するが左端に接しない画像領域の処理単位については、先に保持しておいた終了行情報を用いて縮小処理を行うので、指定範囲に含まれる画素であるか否かの判定を逐一行わなくてよい。また、左端にも上端にも接しない画像領域の処理単位については、画像処理装置１は、先に保持しておいた係数Ｋａ及び終了行情報を用いて縮小処理を行うから、指定範囲に含まれる画素であるか否かの判定や係数Ｋａを逐一算出する処理を行わなくてよい。
【００５８】
［変形例］
本発明は、上述した実施形態と異なる形態で実施してもよい。また、以下に示す変形例は、各々を組み合わせてもよい。
（変形例１）
上述した実施形態において、画像処理装置１は、係数Ｋａ及びＫｂを縮小処理の最中に順次算出していた。これに対し、投影法における係数Ｋａ及びＫｂはそれぞれ倍率と画素の位置とで一意に定まるので、画像処理装置１が予め倍率と画素の位置とに対応して係数Ｋａ及びＫｂを記憶しておき、コントローラ３１は記憶しておいた係数Ｋａ及びＫｂを副走査変換部３３に供給してもよい。
【００５９】
（変形例２）
上述した実施形態では、画像処理装置１は、ＲＡＭ３３４の記憶領域の容量及び指定範囲に基づいて、主走査方向及び副走査方向に画像領域を分割した処理単位毎に縮小処理を行っていたが、主走査方向又は副走査方向の一方に対して分割してもよいし、このような分割をしないようにしてもよい。
また、上述した実施形態では、画像処理装置１は、倍率ＭＡＧの累積加算値により縮小処理に用いた画素が指定範囲に含まれるか否かを判断していたが、この判断を行える限りは、例えば倍率ＭＡＧの累積加算値の値が膨大にならないように途中でクリアしてもよい。
【００６０】
（変形例３）
上述した実施形態の副走査変換部３３のハードウェア構成は一例である。副走査変換部３３は、供給された階調値ｄ（ｉ）及び倍率ＭＡＧに応じてＲＡＭ３３４に格納された演算結果を書き換える書換処理を（ｍ−１）個目の画素まで実行した後、供給されたｍ個目の画素の階調値ｄ（ｉ）及び倍率ＭＡＧに応じてＲＡＭ３３４から読み出された演算結果を更新し倍率変換後の一の画素ｐｔ（ｊ）の階調値ｄｔ（ｊ）を出力する処理と、倍率変換後の他の画素に対応する１個目の画素の書換処理とを並行して行う構成であれば、別のハードウェア構成で実現されてもよい。
【００６１】
（変形例４）
また、主走査変換部３４の構成は副走査変換部３３の構成と同じであってもよいし、画像処理装置１が主走査変換部３４を有さない構成であってもよい。また、画像処理装置１は、前処理部１０を有さない構成であってもよいし、画像メモリ２０を外部構成としこの外部の画像メモリ２０にアクセスして画像データを読み出すものであってもよい。また、ＲＡＭ３３４は、副走査変換部３３において必須の構成ではなく、例えば、アドレス制御部３２が画像メモリ２０から主走査方向に１画素の階調値を読み出して行を変更する構成であれば、バッファ機能を有するＲＡＭ３３４に代えてレジスタを用いてもよい。
【００６２】
（変形例５）
上述した実施形態では、画像処理装置１は、投影法による縮小処理を行う場合について説明したが、投影法による拡大処理を行う場合にも、倍率変換後の一の画素の階調値を規定するために倍率変換前の複数の画素の階調値に基づく演算を画素単位で行うことがある。よって、本発明の処理回路は、投影法による拡大処理を行ってもよい。また、本発明の処理回路は、倍率変換後の一の画素の階調値を規定するために倍率変換前のｍ個の画素の階調値に基づく演算を行う処理回路に適用してよく、必ずしも投影法に従う必要はない。よって、本発明の処理回路は、倍率変換において参照されるｍ個の画素は必ずしも一方向連続して配置されている必要はなく、例えば格子配列された複数画素を用いて倍率変換を行ってもよい。
また本発明の画像処理装置は、例えば、スキャナ等の画像読取装置やプリンタ等の画像形成装置に内蔵されていてもよい。また本発明の処理回路は、画像処理装置とは別体の専用のプロセッサとして提供されてもよい。
【符号の説明】
【００６３】
１…画像処理装置、１０…前処理部、１００…画像読取装置、２０…画像メモリ、３０…倍率変換部、３１…コントローラ、３１１…レジスタ、３２…アドレス制御部、３３…副走査変換部、３３１…第１乗算器、３３２…第２乗算器、３３３…セレクタ、３３４…ＲＡＭ、３３５…加算器、３３６…第３乗算器、３４…主走査変換部。
【図１】
2013201645.tif 000004
【図２】
2013201645.tif 000005
【図３】
2013201645.tif 000006
【図４】
2013201645.tif 000007
【図５】
2013201645.tif 000008
【図６】
2013201645.tif 000009
【図７】
2013201645.tif 000010
【図８】
2013201645.tif 000011
【図９】
2013201645.tif 000012
【図１０】
2013201645.tif 000013
【図１１】
2013201645.tif 000014