(57)【要約】【課題】  画像データの対称性を保持して、線形補間法による拡大（解像度変換）後の画像データを得ることを可能にする画像拡大方法、画像拡大装置および画像形成装置を提供する。【解決手段】  画像データに対して補間によって解像度変換を施して画像を拡大する場合に、拡大の対象である画像の左右及び上下のいずれかの入力画素列の両端にある画素データの前後に入力される画像データに無い仮想画素データを設定し、拡大倍率に応じて、先頭入力画素位置と先頭出力画素位置との差と、最終入力画素位置と最終出力画素位置との差とが等しくなるように、前記先頭出力画素位置を決定し、前記先頭入力画素位置より前の出力画素データを、前記前に設定された仮想画素データと前記先頭入力画素位置の画素データとに基づく補間によって演算し、前記最終入力画素位置より後の出力画素データを、前記後に設定された仮想画素データと前記最終入力画素位置の画素データとに基づく補間によって演算する。【選択図】    図４
2010171622.tif 000002
【特許請求の範囲】
【請求項１】
入力される画像データに対して補間によって画像を拡大する画像拡大装置であって、
拡大の対象である画像の少なくとも左右及び上下のいずれかの入力画素列の両端にある画素データの前と後に、入力される画像データに無い仮想画素データを設定する設定手段と、
拡大倍率に応じて、前記入力される画像データの画素列の先頭入力画素位置と出力される画像データの画素列の先頭出力画素位置との差と、前記入力される画像データの画素列の最終入力画素位置と前記出力される画像データの画素列の最終出力画素位置との差とが等しくなるように、前記出力される画像データの画素列の先頭出力画素位置を決定する決定手段と、
前記先頭入力画素位置より前に位置する出力画素データを、前記入力画素列の前に設定された仮想画素データと前記先頭入力画素位置の画素データとに基づく補間によって演算し、前記最終入力画素位置より後に位置する出力画素データを、前記入力画素列の後に設定された仮想画素データと前記最終入力画素位置の画素データとに基づく補間によって演算する演算手段とを備えることを特徴とする画像拡大装置。
【請求項２】
前記決定手段は、
拡大倍率に基づいて、拡大前の入力画素数および画素間の距離を定める値から、拡大後の出力画素数および画素間の距離を定める値を算出する手段と、
前記拡大前の入力画素数および画素間の距離を定める値と、前記算出された拡大後の出力画素数および画素間の距離を定める値とから、前記出力される画像データの画素列の先頭出力画素位置を決定する手段とを有することを特徴とする請求項１に記載の画像拡大装置。
【請求項３】
前記画素位置を、画像データに応じた画像を形成する画像形成手段における各画素を形成するタイミングのずれを示す位相で表わし、前記先頭入力画素位置と前記先頭出力画素位置との差を初期位相とし、
前記決定手段は、前記出力される画像データの画素列の先頭出力画素位置を前記先頭入力画素位置との初期位相として決定することを特徴とする請求項１または２に記載の画像拡大装置。
【請求項４】
前記演算手段は、
前記初期位相を前記先頭入力画素位置からの方向を含む差として、負の値で保持する初期位相保持手段と、
拡大倍率に応じた係数を前記負の初期位相に対して累積加算する累積加算手段と、
該累積加算手段の演算結果が負の値から正の値となることを検出する判定手段と、
該判定手段による検出が行われる前は、前記入力画素列の前に設定された仮想画素データと前記先頭入力画素位置の画素データとを用いて補間を行う補間手段とを有することを特徴とする請求項３に記載の画像拡大装置。
【請求項５】
前記演算手段は、
前記初期位相を前記入力画素列の前に設定された仮想画素位置からの方向を含む差として、正の値で保持する初期位相保持手段と、
拡大倍率に応じた係数を前記正の初期位相に対して累積加算する累積加算手段と、
該累積加算手段の最初のオーバーフローを検出する判定手段と、
該判定手段による検出が行われる前は、前記入力画素列の前に設定された仮想画素データと前記先頭入力画素位置の画素データとを用いて補間を行う補間手段とを有することを特徴とする請求項３に記載の画像拡大装置。
【請求項６】
前記画像拡大装置は、２次元の画像の拡大を左右と上下に独立の請求項１乃至５のいずれか１項に記載の前記各手段によって実現することを特徴とする請求項１乃至５のいずれか１項に記載の画像拡大装置。
【請求項７】
請求項１乃至６のいずれか１項に記載の画像拡大装置を有することを特徴とする画像形成装置。
【請求項８】
入力される画像データに対して補間によって画像を拡大する画像拡大方法であって、
拡大の対象である画像の少なくとも左右及び上下のいずれかの入力画素列の両端にある画素データの前と後に、入力される画像データに無い仮想画素データを設定する設定工程と、
拡大倍率に応じて、前記入力される画像データの画素列の先頭入力画素位置と出力される画像データの画素列の先頭出力画素位置との差と、前記入力される画像データの画素列の最終入力画素位置と前記出力される画像データの画素列の最終出力画素位置との差とが等しくなるように、前記出力される画像データの画素列の先頭出力画素位置を決定する決定工程と、
前記先頭入力画素位置より前に位置する出力画素データを、前記入力画素列の前に設定された仮想画素データと前記先頭入力画素位置の画素データとに基づく補間によって演算し、前記最終入力画素位置より後に位置する出力画素データを、前記入力画素列の後に設定された仮想画素データと前記最終入力画素位置の画素データとに基づく補間によって演算する演算工程とを備えることを特徴とする画像拡大方法。
【請求項９】
請求項８に記載の画像拡大方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記憶したコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナデバイス、あるいは画像入力機器により入力されたデジタル画像データを、任意の倍率で解像度変換による拡大処理を行うための画像拡大方法、画像拡大装置および画像形成装置に関する。
【背景技術】
【０００２】
画像データを読み取るスキャナデバイス等の画像入力機器あるいはデジタルカメラ等の撮像機器の普及により、画像を出力する機会が増加している。例えば、オフィスだけでなく、家庭内におけるマルチ・ファンクション・ペリフェラル（以下、ＭＦＰと称する）による画像の出力も増えている。特に、デジタルカメラや携帯電話に代表される個人向けの撮像機能を有する機器においては、ＳＤカード等の記憶メディアを媒体とし、画像データの編集や出力が活発に行われている。
【０００３】
これら撮像機器のデジタル画像データの撮像画素数は、年々増加傾向にあるが、画像出力機器の印刷解像度あるいは印刷メディアサイズと照合すると、総画素数の観点において十分でない場合が多い。また、撮像した画像データを大きなサイズで出力するケースもあり、入力画像データをより高画質で出力するための拡大処理機能が望まれている。
【０００４】
画像データの拡大処理手法として、ＳＰＣ法、線形補間法（バイリニア法）、バイキュービック法がある。ＳＰＣ法および線形補間法は、比較的簡略な構成要件で拡大処理機能を実現するものである。また、バイキュービック法に関しては、構成要件は複雑になるが、高画質での拡大処理機能を実現するものである。
【０００５】
したがって、ＭＦＰ等の画像出力機器による拡大処理において、バイキュービック法を用いれば高画質での拡大処理は可能となる。しかし、制御上の複雑度が増し、また回路規模が大きくなることから、高機能製品での実装が主となっている。デジタルカメラ等の出力は、高機能を有するＭＦＰだけでなく、家庭用のＭＦＰでの出力も多い。そして、これらの安価なＭＦＰに搭載されている拡大処理手法は、多くの場合、その構成要件からもバイキュービック法ではない。
【０００６】
以下、図面を用いてＳＰＣ法および線形補間法に関して説明する。
【０００７】
（ＳＰＣ法の概念）
ＳＰＣ法は、最も簡易的に拡大機能を実現する手法である。図１８に、ＳＰＣ法における１次元の拡大処理の概念を示す。
【０００８】
図１８において、四角で示したＳ０、Ｓ１、Ｓ２、Ｓ３は入力画像を構成する画素を示している。また、その濃さは画素の値を表しており、黒で示した画素（Ｓ０、Ｓ３）は該当画素が黒（高濃度）であることを示し、白で示した画素（Ｓ１、Ｓ２）は該当画素が白（低濃度）であることを示している。したがって、図１８の例においては、入力画像は４画素により構成され、両端の画素が黒で構成されていることを示している。また、入力画像の構成画素間の距離をＳＬで示している。
【０００９】
前記４画素の入力画像データを１次元的に２．５倍に拡大する場合、出力画素数は、１０画素（＝４×２．５）となる。出力画像データは入力画像データを参照して構成するため、出力画像の構成画素間距離（ＤＬ）は入力画像の構成画素間距離ＳＬに対して小さくなる（２．５倍拡大のためＤＬ＜ＳＬ／２）。ＳＰＣ法においては、出力画素として、出力画素位置に最も近い入力画素の値を出力する。したがって、出力画像の第１画素（Ｄ０）および第２画素（Ｄ１）は、入力画像の第１画素（Ｓ０：黒画素）となり、出力画像の第３画素（Ｄ２）および第４画素（Ｄ３）は、入力画像の第２画素（Ｓ１：白画素）となる。以下同様に、出力画素の第５画素（Ｄ４）、第６画素（Ｄ５）、第７画素（Ｄ６）は入力画像の第３画素（Ｓ２）となり、第８画素（Ｄ７）、第９画素（Ｄ８）、第１０画素（Ｄ９）は入力画素の第４画素（Ｓ３）となる。
【００１０】
ＳＰＣ法による拡大処理は、構成が簡易である反面、その処理も単純であるため、拡大処理後の画像品質は好ましいものではない。具体的には、単純重複処理であるため、出力画像データに段差（ガタツキ）が発生し、滑らかな拡大処理の実現が出来ない。
【００１１】
（線形補間法の概念）
線形補間法は、ＳＰＣ法の問題点を解決するための手法であり、拡大処理時に、出力画素位置に最も近い２つの入力画素値を参照し、且つ、参照画素と出力画素位置の距離を重み付け係数として演算する手法である。
【００１２】
図１９に、線形補間法における１次元の拡大処理の概念を示す。図１９においても、図１８と同様、四角で示したＳ０、Ｓ１、Ｓ２、Ｓ３は入力画像を構成する画素を示している。また、各入力画素が示す値（濃度）に関しても、図１８と同様、黒で示した画素（Ｓ０、Ｓ３）は該当画素が黒（高濃度）であることを示し、白で示した画素（Ｓ１、Ｓ２）は該当画素が白（低濃度）であることを示している。
【００１３】
したがって、図１９においても、入力画像は４画素により構成され、両端の画素が黒で構成されていることを示している。また、入力画像の構成画素間の距離はＳＬである。
【００１４】
前記４画素の入力画像データを１次元的に２．５倍に拡大する場合、出力画素数は１０画素となる。この場合も、出力画像データは、入力画像データを参照して構成するため、出力画像の構成画素間距離（ＤＬ）は、図１８の場合と同様に、入力画像の構成画素間距離ＳＬに対して小さくなる（２．５倍拡大のためＤＬ＜ＳＬ／２）。
【００１５】
出力画像の第１画素（Ｄ０）は、入力画像の第１画素（Ｓ０）をそのまま出力する。そして、出力画像の構成画素間距離ＤＬだけ離れた次の画素、すなわち第２画素（Ｄ１）は、第２画素位置に最も近い２つの入力画素（Ｓ０、Ｓ１）を参照し、演算により求める。
【００１６】
出力画像の第２画素（Ｄ１）の位置は、入力画像の第１画素（Ｓ０）を基準するとＤＬの距離分離れた位置となる。また、入力画像の第２画素（Ｓ１）を基準とすると、入力画像の構成画素間距離ＳＬから出力画像の構成画素間距離ＤＬを減算した分だけ離れた位置となる。したがって、出力画像の第２画素（Ｄ１）の値は、出力画素位置に近い２つの入力画素値（Ｓ０、Ｓ１）、および出力画像の第２画素位置までの距離であるＤＬ、（ＳＬ−ＤＬ）を使用して、式１にて演算を行った値となる。
【００１７】
Ｄ１＝｛Ｓ０×（ＳＬ−ＤＬ）＋Ｓ１×ＤＬ｝／ＳＬ      …（式１）
式１において、入力画像の構成画素間距離ＳＬで除算を行っている理由は、Ｄ１の値を演算するにあたり、出力画素位置までの距離を重み付けとして演算しているためである。多くの場合、ＳＬの値は、除算回路を容易に構成させるため、２のべき乗の値とする。
【００１８】
続いて、出力画像の第３画素値（Ｄ２）の値を演算する。出力画像の第３画素位置は、出力画像の第２画素位置と同じように入力画像の第１画素（Ｓ０）と第２画素（Ｓ１）の間である。これは、拡大処理の倍率が２．５倍であることから、出力画像における構成画素間距離ＤＬが、ＳＬ／２よりも小さくなることが理由である。
【００１９】
出力画像の第３画素値（Ｄ２）の位置は、入力画像の第１画素（Ｓ０）を基準とすると、出力画像の第２画素値（Ｄ１）の位置から更にＤＬ離れた位置となる。つまり、（ＤＬ×２）の距離となる。また、入力画像の第２画素（Ｓ１）を基準とすると、入力画像の構成画素間距離ＳＬから（ＤＬ×２）を減算した値だけ分離れた位置となる。よって、出力画像の第３画素（Ｄ２）の値は、出力画素位置に近い２つの入力画素値（Ｓ０、Ｓ１）および第３画素位置までの距離である（ＤＬ×２）、（ＳＬ−ＤＬ×２）を使用し、式２にて演算を行った値となる。
【００２０】
Ｄ２＝｛Ｓ０×（ＳＬ−ＤＬ×２）＋Ｓ１×ＤＬ×２｝／ＳＬ  …（式２）
次に、出力画像の第４画素値（Ｄ３）の値を演算する。出力画像の第４画素位置は、これまでの出力画素位置と異なり、入力画像の第２画素（Ｓ１）と第３画素（Ｓ２）の間となる。
【００２１】
多くの場合、線形補間法における参照画素の移行は、出力画像を構成する構成画素間距離（ＤＬ）を累積加算することにより求める場合が多い。つまり、図１９の例においては、出力画像を構成する画素間距離ＤＬを累積加算し、加算結果が、ＳＬを超えるタイミングを入力画像の参照画素位置を更新するタイミングとする。
【００２２】
具体的な数値を用いて説明する。例えば、入力画像の構成画素間距離（ＳＬ）を“２５６（２8）”とする。この場合、２．５倍拡大の場合における出力画像の構成画素間距離（ＤＬ）は、ＳＬを倍率で除算した値となる。
【００２３】
ＤＬ＝ＳＬ／２．５      …（式３）
式３による演算結果を小数点以下切り捨てると、ＤＬの値は“１０２”となる。求める出力画像の画素位置は、第１画素出力から３画素後であることから、ＤＬを３回累積加算した値である“３０６”となる。したがって、累積加算したＤＬがＳＬ（“２５６”）を超えることになり、出力画像の値を演算する上での入力画像の参照画素位置が更新されることがわかる。
【００２４】
入力画像の構成画素間距離（ＳＬ）を２のべき乗とした場合、出力画素演算における入力画像の参照画素位置の更新は、例えば累積加算器のキャリーをトリガとして実現できる。また、入力画像の参照画素位置の更新による、出力画素位置までの距離の演算には、キャリー出力後の累積加算器の出力値が使用できる。例えば、前記例においては、入力画像の参照画素（Ｓ１）から出力画像の第４画素位置（Ｄ３）までの距離は、ＤＬの累積加算値である“３０６”から入力画像の構成画素間距離（ＳＬ：“２５６”）を減算した値となる。累積加算器をＳＬ距離として定義した８ビットで構成した場合、キャリー出力後の累積加算器の出力値は“５０”となる。したがって、入力画像の参照画素（Ｓ２）から出力画像の第４画素位置（Ｄ３）までの距離は、入力画像の構成画素間距離（ＳＬ：“２５６”）から“５０”を減算した値である“２０６”となる。
【００２５】
以降、同様に、出力画像の画素位置に応じ、入力画像の参照画素位置を更新し、更に、参照画素位置から出力画像の画素位置までの距離を重み付け係数として、出力画像データの演算を行う。
【００２６】
このような線形補間法における、出力画像の画素位置と入力画像の参照画素位置との制御は、例えば特許文献１により開示されている。特許文献１においては、前記出力画素位置の距離（重み付け）の算出、および演算に使用する参照入力画素データを容易に読み取るための、メモリアドレス制御が記載されている。
【００２７】
なお、線形補間法における後端の画素に関しては、いくつかの手法が存在する。図１９においては、入力画像を構成する４画素目（Ｓ３）の次に、仮想画素（ＤＳ０）を構成している例を示す。この場合、仮想画素（ＤＳ０）を参照画素とする出力画像の画素（Ｄ８、Ｄ９）の値は、仮想画素の値によって異なるものとなる。具体的には、仮想画素（ＤＳ０）を、１つ前の画素値（Ｓ３）と同じにする場合や固定値（白／黒）とする場合があり、この仮想画素値と入力画像の最終画素（Ｓ３）を参照した補間演算によって値が求められる。また、別の方法としては、出力画像の後端、即ち、Ｄ８およびＤ９の演算を行わず、入力画像を構成する最終画素（Ｓ３）をそのまま出力する場合もある。
【００２８】
また、図１９を用いて説明した線形補間法であるが、拡大倍率が２倍や４倍である場合は、ＳＰＣ法と同様の問題点が存在する。それは、拡大処理後の第１画素（Ｄ０）を出力画像の基準点として、入力画像の第１画素（Ｓ０）をそのまま出力している点に起因する。
【００２９】
例えば、拡大倍率が２倍である場合、入力画像の構成画素間距離ＳＬと出力画像の構成画素間距離ＤＬには、式３の演算結果からもＤＬ＝ＳＬ／２の関係が成り立つ。これは出力画像の位相が、出力画像の２画素出力毎に入力画像を構成する画素データの位相と同相（距離が０）になることを意味する。つまり、出力画素値の演算に、出力画素位置に近い２つの入力画素を参照画素として補間演算を行っても、結果として、２画素毎に入力画素がそのまま出力画素として生成されることなる。
【００３０】
この問題を回避させる方法として、線形補間法における初期位相の設定がある。図２０に、初期位相を設定した線形補間法の概念図を示す。なお、図２０において、図１８あるいは図１９と同一の意味をもつものには同一記号を示している。
【００３１】
図２０に示す線形補間の特徴は、出力画像の第１画素（Ｄ０）の出力位置を、画像が構成される方向（図２０における右方向）に初期位相を設定することにある。この初期位相は、図２０において“INIT”にて示している。
【００３２】
図２０に示す線形補間法は、初期位相の“INIT”の値によって、出力画像の第１画素位置が入力画像の第１画素位置と位相が異なることが特徴となる。つまり、出力画像の第１画素（Ｄ０）は、初期位相の値が設定されていることから、入力画像の第１画素（Ｓ０）がそのまま出力されることはない。
【００３３】
ここで、初期位相“INIT”を“３０”とすると、出力画像の第１画素の値は、設定された初期位相の値（“３０”）と、入力画像の構成画素間距離（“２５６”）から初期位相の値（“３０”）を減算した値（“２２６”）により算出される。入力画像の第１画素の値が黒（“０”）、第２画素の値が白（“２５５”）であるから、前記初期位相値における出力画像の第１画素（Ｄ０）は、式１により
Ｄ０＝｛０×（２５６−３０）＋２５５×３０｝／２５６≒２９
となる。
【００３４】
出力画像の第２画素（Ｄ１）は、前記第１画素（Ｄ０）から出力画像の構成画素間距離（ＤＬ：“１２８”）加算された画像位置となるため、
Ｄ１＝｛０×（２５６−１５８）＋２５５×１５８｝／２５６≒１５７
となる。
【００３５】
出力画像の第３画素（Ｄ２）は、前記第２画素（Ｄ１）から、更に出力画像の構成画素間距離（ＤＬ：“１２８”）加算された画素位置となるため、初期位相（“３０”）にＤＬ×２（＝“２５６”）を加算した画素位置（“２８６”）となる。この累積加算による画素位置は、入力画像の構成画素間距離（ＳＬ：“２５６”）を超えているため、累積加算器においてキャリーが発生し、累積加算の結果として“２５６”を減算された値（“３０”）が出力される。
【００３６】
図２０の例においては、入力画像の第２画素（Ｓ１）および第３画素（Ｓ２）は同一の値（白）であるため、前記重み付け演算による出力画素値は、結果として入力画素と同じ値となる。しかし、拡大処理する画像において、入力画像の連続する画素値が異なっていれば、重み付け演算により滑らかな出力画素値が得られる。
【００３７】
なお、図２０の例においても、入力画像の最終画素（Ｓ３）の次に仮想画素（ＤＳ０）を想定した場合を図示しているため、出力画像の第７画素（Ｄ６）および第８画素（Ｄ７）は仮想画素（ＤＳ０）の値の影響を受けるものとなる。
【００３８】
このように、初期位相を設定することによって、２倍や４倍といった倍率設定においても、入力画像の画素値が出力画像の画素値としてそのまま出力されることを回避することが出来る。なお、初期位相を設定する線形補間法に関しては、特許文献２に開示されている。特に、特許文献２においては、等倍時の初期位相設定は“０”、それ以外の倍率設定においては、入力画像の第１画素と第２画素の中点に出力画像の第１画素を重ね合わせることで、ＳＰＣ法の改善を行うことが記載されている。
【特許文献１】特開平９−３２６９５８号公報
【特許文献２】特開平４−３６２７９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００３９】
しかしながら、背景技術に記載した線形補間法においては、出力画像の第１画素位置を、入力画像の第１画素位置を基準として画像データが構成される方向に対して拡大処理を実施している。このため、出力画像の第１画素位置は、入力画像の第１画素位置と同一あるいは画像データが構成される方向（入力画像の第１画素位置と第２画素位置の間）に位相がずれたものとなる。このため、拡大処理後の画像データは全体として、画像データが構成される方向（右側）に片寄って展開される。
【００４０】
つまり、図１８、図１９および図２０に示したいずれの場合においても、入力画像データが左右対称で両端の１画素分のみ黒画素データであるのに対し、拡大処理後の出力画像データは左右が非対象の画素データとなっている。
【００４１】
具体的には、図１８では、出力画像データの左端に２画素分の黒画素データ、右端に３画素分の黒画素データとなる。図１９では、出力画像データの左端の３画素分は少なからず入力画像の第１画素データ（黒）の影響を受け、右端の４画素分は入力画像の第４画素データ（黒）の影響を受ける。
【００４２】
初期位相を設定する場合この傾向はより顕著となり、図２０では、入力画像データの黒画素の影響を受ける出力画像の画素データは、左端は２画素分、右端は４画素分となる。つまり、図１８、図１９、および図２０に示した背景技術による線形補間法では、入力画像データの対称性が保持された形での拡大処理が不可能である。
【００４３】
前記線形補間法における問題点は、左右の非対称性にとどまるものではない。図２１Ａ乃至図２１Ｃに、２次元の画像データにおいて発生する問題点を示す。図２１Ａは、拡大処理を行う前の入力画像データである。入力画像データは、上下左右の端が各Ｎ画素幅で黒画素により構成されているものとする。この入力画像データに対して倍率Ｐで拡大処理した場合、左右および上下の対称性が保持されていれば、出力画像データにおいても黒画素の幅は全てＮ画素×倍率Ｐの画素幅となるはずである。
【００４４】
しかし、線形補間法において初期位相を設定しない場合、拡大後の出力画像データは、図２１Ｂのように左右および上下に非対称な黒画素幅となる。図２１Ｂにおいて、Ｘaは出力画像データの左側の黒画素幅、Ｘbは出力画像データの右側の黒画素幅である。また、Ｙaは出力画像データの上側の黒画素幅、Ｙbは出力画像データの下側の黒画素幅である。
【００４５】
図２１Ｂに示す通り、２次元の画像データの場合、左右端の黒画素幅すなわちＸaとＸbは同一幅とはならない。また、上下端の黒画素幅すなわちＹaとＹbに関しても同一幅とはならない。特に、入力画像データの横方向（以下、主走査方向と称する）の構成画素数と縦方向（以下、副走査方向と称する）の構成画素数が異なる場合、左右と上下の黒画素の再現幅も異なる。つまり、ＸaとＹa、ＸbとＹbに関しても同一とはならない。これは、線形補間法において、倍率により定まる出力画像の構成画素間距離（ＤＬ）の累積加算される回数が、主走査方向と副走査方向で異なることによる位相のずれが要因である。また、前記出力画像の黒画素幅の再現は、設定される倍率によっても変わってしまう。
【００４６】
線形補間法において初期位相を設定した場合、図２１Ｃに示すように、拡大後の出力画像データの非対称性は更に悪化する。これは、初期位相が設定されることで、入力画像の第１画素位置を基準とすると、出力画像の第１画素位置が初期位相を設定しない場合に対して更に右側（２次元であれば右下）にずれることによるものである。したがって、この場合のＸaとＸbの差分、ＹaとＹbの差分は、初期位相を設定しない場合に比べて大きなものとなる。
【００４７】
画像データを読み取る装置がスキャナデバイス等の主走査方向、副走査方向に拡張可能なものであれば、線形補間法による拡大処理前の入力画像データとして、左側あるいは上側に余分なデータを付与することも可能である。この場合には、基準点をずらすことが可能である。しかし、デジタルカメラ等の撮像機器において撮像した入力画像データにおいては、余分なデータを付与することは不可能である。また、機器内部で実現する場合であっても、拡大処理前に、入力画像データが保持された媒体あるいはそれ以外のメモリを使用して、拡大処理の倍率に応じた余分なデータの付与等の加工が必要となる。
【００４８】
ハードウェアによる対応であってもソフトウェアによる対応であっても、処理工数の増加は機器のパフォーマンス低下に直結する。したがって、デジタルカメラ等の撮像機器により撮影された画像データが左右あるいは上下の対称性を持ったものである場合、線形補間にて拡大処理された出力画像データは、倍率が大きいほど、より非対称性が強調されることとなる。
【００４９】
尚、上記説明は画像形成装置にもとづいて説明したが、他の画像処理における拡大（解像度変換）においても、同様に発生する問題点である。
【００５０】
本発明は、上記従来の問題点に鑑み、画像データの対称性を保持して、線形補間法による拡大（解像度変換）後の画像データを得ることを可能にする画像拡大方法、画像拡大装置および画像形成装置を提供する。
【課題を解決するための手段】
【００５１】
本発明は、前記問題点の解決を目的としたものであり、本発明の画像拡大装置は、入力される画像データに対して補間によって画像を拡大する画像拡大装置であって、拡大の対象である画像の少なくとも左右及び上下のいずれかの入力画素列の両端にある画素データの前と後に、入力される画像データに無い仮想画素データを設定する設定手段と、拡大倍率に応じて、前記入力される画像データの画素列の先頭入力画素位置と出力される画像データの画素列の先頭出力画素位置との差と、前記入力される画像データの画素列の最終入力画素位置と前記出力される画像データの画素列の最終出力画素位置との差とが等しくなるように、前記出力される画像データの画素列の先頭出力画素位置を決定する決定手段と、前記先頭入力画素位置より前に位置する出力画素データを、前記入力画素列の前に設定された仮想画素データと前記先頭入力画素位置の画素データとに基づく補間によって演算し、前記最終入力画素位置より後に位置する出力画素データを、前記入力画素列の後に設定された仮想画素データと前記最終入力画素位置の画素データとに基づく補間によって演算する演算手段とを備えることを特徴とする。
【００５２】
また、本発明の画像形成装置は、上記画像拡大装置を有することを特徴とする。
【００５３】
また、本発明の画像拡大方法は、入力される画像データに対して補間によって画像を拡大する画像拡大方法であって、拡大の対象である画像の少なくとも左右及び上下のいずれかの入力画素列の両端にある画素データの前と後に、入力される画像データに無い仮想画素データを設定する設定工程と、拡大倍率に応じて、前記入力される画像データの画素列の先頭入力画素位置と出力される画像データの画素列の先頭出力画素位置との差と、前記入力される画像データの画素列の最終入力画素位置と前記出力される画像データの画素列の最終出力画素位置との差とが等しくなるように、前記出力される画像データの画素列の先頭出力画素位置を決定する決定工程と、前記先頭入力画素位置より前に位置する出力画素データを、前記入力画素列の前に設定された仮想画素データと前記先頭入力画素位置の画素データとに基づく補間によって演算し、前記最終入力画素位置より後に位置する出力画素データを、前記入力画素列の後に設定された仮想画素データと前記最終入力画素位置の画素データとに基づく補間によって演算する演算工程とを備えることを特徴とする。
【００５４】
更に、上記画像拡大方法の各工程をコンピュータに実行させるためのプログラム、及び該プログラムを記憶したコンピュータで読み取り可能な記憶媒体を提供する。
【発明の効果】
【００５５】
本発明により、画像データの対称性を保持して、線形補間法による拡大（解像度変換）後の画像データを得ることを可能にする画像形成方法および画像形成装置を提供できる。
【００５６】
すなわち、拡大（解像度変換）前の画像データの対称性を保持した、線形補間法における参照入力画素制御を可能とした。これにより、特に、画像データを構成する画素数の加工が出来ない画像データにおいても、性能を低下させることなく、拡大（解像度変換）を行う画像データの対称性を保持した拡大（解像度変換後）の画像データを得ることを可能にした。
【００５７】
また、拡大（解像度変換）の倍率に依存しない画像データの対象性を保持した拡大（解像度変換）処理を可能とした。
【発明を実施するための最良の形態】
【００５８】
以下、本発明を実施するための実施形態について、添付図面を用いて詳細に説明する。尚、、本実施形態の説明は、画像形成装置を例に説明するが、それに限定されることなく画像拡大（解像度変換）処理であれば適用可能であり、それらも本発明に含まれる。
【００５９】
［実施形態１］
＜本実施形態の画像処理における拡大処理部（解像度変換部）の構成例＞
図１Ａは、本発明を１次元の拡大処理に適用した場合の、拡大処理部（解像度変換部）１００の構成例を示す図である。
【００６０】
図１Ａにおいて、１０１は入力画像データ、１０２は入力画像データ１０１を保持する画像データ記憶部である。１０３は、画像データ記憶部１０２に記憶した入力画像データに対し、拡大処理を行う画像データ演算部であり、線形補間法による演算を行う。
【００６１】
１０４は、入力画像データの構成画素間距離（ＳＬ）を保持する基準画素間係数保持部であり、例えば２のべき乗の値が保持される。１０５は倍率指定係数保持部であり、出力画像データの構成画素間距離（ＤＬ）が保持される。１０６は線形補間法における初期位相（ＰＨ０）を保持する初期位相保持部、１０７は拡大処理を行う１方向当たりの入力画素数を保持する入力画素数保持部である。画像処理において、入力画素数保持部１０７が保持する値は、主走査方向の画素数である場合が多い。
【００６２】
１０８は出力画素数保持部であり、画像データ演算部１０３による拡大処理によって出力される１方向当たりの出力画素数を保持する。なお、基準画素間係数保持部１０４、倍率指定係数保持部１０５、初期位相保持部１０６、入力画素数保持部１０７、出力画素数保持部１０８は、図示しないＣＰＵあるいはそれに準ずるプロセッサによる設定が可能なレジスタである。
【００６３】
１０９は、画像データ演算部１０３での演算に必要となる制御信号および演算係数を出力する参照画素位置制御部である。１１０は、先端画素判定結果を示す制御信号、１１１は後端画素判定結果を示す制御信号、１１２は画像データ演算部１０３に対して、参照入力画素を更新するタイミングを示す制御信号である。１１３および１１４は、画像データ演算部１０３における演算に使用する係数であり、出力画素位置と２つの参照入力画素までの距離を示すものである。
【００６４】
１１５は、画像データ演算部１０３が参照画素位置制御部１０９に対して制御信号および演算係数を要求する制御信号であり、例えばパルス信号等により構成される。１１６は、参照画素位置制御部１０９が画像データ演算部１０３に対して出力する応答信号である。具体的には、制御信号１１６は、参照画素位置制御部１０９が出力する制御信号１１０、１１１、１１２、および演算係数１１３、１１４の有効タイミングを示すものである。
【００６５】
１１７は、画像データ演算部１０３が、画像データ記憶部１０２に対して出力する制御信号であり、演算に必要となる入力画像データを要求するものである。この制御信号１１７は、画像データ記憶部１０２が、メモリによって構成される場合、例えばアドレス信号等により構成される。１１８および１１９は、画像データ記憶部１０２が、画像データ演算部１０３から出力される制御信号１１７に基づいて出力する画像データである。１２０は、画像データ演算部１０３により演算された出力画像データである。
【００６６】
＜本実施形態の拡大処理部（解像度変換部）を有する画像形成装置の構成例＞
図１Ｂは、図１Ａの拡大処理部（解像度変換部）を有する画像形成装置の構成例を示す図である。
【００６７】
図１Ｂにおいて、入力される画像データは、画像読取装置などからのＲＧＢ色成分からなる画像データや、画像形成用に既に変換されたＹＭＣＫ色成分からなる画像データである。なお、これに限定されない。色変換処理部１０では、例えばＲＧＢ色成分からなる画像データが画像形成用のＹＭＣＫ色成分からなる画像データに変換される。
【００６８】
ＹＭＣＫ色成分からなる画像データは、画像の拡大（解像度変換）が必要であれば、本実施形態の拡大処理部（解像度変換部）１００に入力されて拡大（解像度変換）され、濃度制御部２０に入力される。一方、画像の拡大（解像度変換）が必要でなければ、本実施形態の拡大処理部（解像度変換部）１００をパスして直接に濃度制御部２０に入力される。
【００６９】
濃度制御部２０では、適切な画像形成となるように種々の濃度制御がされて、画像データはプリンタエンジン３０に渡される。
【００７０】
なお、図１Ｂは画像形成装置の概略構成を示したもので、詳細な制御は省かれている。図１Ｂは、画像形成装置における本実施形態の拡大処理部（解像度変換部）１００の位置付けを示したものである。
【００７１】
＜拡大処理部（解像度変換部）１００の構成要素の詳細な構成例＞
以下、図１Ａで拡大処理部（解像度変換部）１００を構成する参照画素位置制御部１０９および画像データ制御部１０３の各々に関し、更に詳細に構成を説明する。
【００７２】
（実施形態１の参照画素位置制御部１０９の構成例）
図２は、実施形態１の参照画素位置制御部１０９の構成例を示す図である。なお、図２において、図１Ａと同一の信号を示すものに関しては、図１Ａに付与した参照符号と同じ参照符号で示すものとする。
【００７３】
参照画素位置制御部１０９は、画像データ演算部１０３が出力する制御信号１１５を同期信号として動作する。したがって、画像データ演算部１０３の制御信号１１５の入力をもとに、画像データ演算部１０３の演算処理に必要となる制御信号および演算係数を出力する。
【００７４】
図２において、２０１および２０２はセレクタ（以下、ＭＵＸ２０１、ＭＵＸ２０２と称する）、２０３はＭＵＸ２０１の出力値とＭＵＸ２０２の出力値を加算する累積加算器である。ＭＵＸ２０１の入力は、初期位相保持部１０６が保持した値（ＰＨ０、以下、初期位相と称する）と累積加算器２０３の出力とである。拡大処理時の第１出力画素の演算時には初期位相が出力され、以降は累積加算器２０３の出力が選択されるように構成される。ＭＵＸ２０２の入力は、倍率指定係数保持部１０５が保持した値と、固定値０であり、拡大処理時、第１出力画素の演算時には固定値“０”が出力され、以降は倍率指定係数保持部１０５が保持した値（ＤＬ）が出力される。
【００７５】
２０４は、累積加算器２０３が出力するオーバーフローを示すキャリー信号であり、ＭＵＸ２０１の出力とＭＵＸ２０２の出力との加算結果が、累積加算器２０３のビット数を超えた場合に出力されるものである。また、２０５は、後段に構成される処理部の制御信号として機能するものであり、累積加算器２０３における演算結果の最上位ビットが該当する。
【００７６】
２０６は、減算器であり、基準画素間係数保持部１０４が保持する値（ＳＬ）と累積加算器２０３の出力値の差分演算を行う。また、２０７および２０８は、累積加算器２０３あるいは減算器２０４の演算出力値に対して絶対値出力制御を行う制御部である。累積加算器２０３の演算出力は、絶対値出力制御部２０５を介して演算係数１１３として出力される。演算係数１１３は、出力画素の演算時に参照する２つの参照入力画素のうち、先の第１入力画素位置と出力画素位置との距離を示す。減算器２０６の演算出力は、絶対値出力制御部２０８を介して演算係数１１４として出力される。演算係数１１４は、出力画素演算時に参照する２つの参照入力画素のうち、後の第２入力画素位置と出力画素位置との距離を示す。なお、演算器を構成する場合において、減算器は加算器によって構成されることは公知であるため、減算器２０４が加算器として構成される場合であっても、減算器に該当するものとする。
【００７７】
２０９は、先端判定部であり、累積加算器２０３から出力される制御信号（キャリー）２０４に応じて動作し、先端画素判定結果信号１１０を出力する。なお、先端判定部２０９の具体的動作に関しては後述する。２１０は、画像データ演算部１０３が出力画素を演算する際、画像データ記憶部１０２から読み出す参照入力画素を更新するか否かを制御する参照入力画素更新信号生成部である。参照入力画素更新信号生成部２１０は、累積加算器２０３が出力する制御信号（最上位ビット）２０５と、先端判定部２０９が出力する判定信号１１０の出力に応じて、参照入力画素を更新する制御信号１１２を生成する。
【００７８】
２１１は、参照入力画素更新信号生成部２１０が出力する制御信号１１２を、先端判定部２０９が出力する先端画素判定結果信号１１０が示す値に応じて計数する計数部である。具体的には、計数部２１１は、先端画素判定結果信号１１０が計数する上で有効なレベルを示していなければ、制御信号１１２を計数することはしない。つまり、先端画素判定結果信号１１０は、計数部２１１の動作制御信号（イネーブル信号）として機能する。２１２は、計数部２１１の出力信号と入力画素数保持部１０７が保持する値に応じて後端判定を行う後端判定部である。計数部２１１の出力値が示すものは、出力画素の演算を行う際に、先端判定部２０９が先端画素を判定してから、入力参照画素の更新が行われた回数を示す。したがって、入力画素数保持部１０７が保持した値と計数部２１１の出力値とが同一の値となった場合、入力画素の更新をこれ以上行えないものと判断し、後端画素判定信号１１１を出力する。なお、後端判定部２１２の具体的動作に関しても、先端判定部２０９の動作と同じく後述する。
【００７９】
（画像データ演算部１０３の構成例）
次に、画像データ演算部１０３の構成に関して説明する。図３は画像データ演算部１０３の構成例を示す図である。なお、図３においても、図１Ａあるいは図２と同一の信号を示すものに関しては、付与した参照符号と同じ参照符号で示すものとする。
【００８０】
図３において、３０１は、画像データ記憶部１０２が出力する先の第１参照画素データ１１８を保持するデータ保持部、３０２は、後端の仮想画素値を保持する仮想画素値保持部である。３０３は、セレクタ（以下、ＭＵＸ３０３と称する）であり、後端判定部２１２が出力する制御信号１１１が示す値に応じて、仮想画素値保持部３０２が保持する値と第１入力画素データ１１８の値との切り換えを行い出力する。
【００８１】
３０４は、画像データ記憶部１０２が出力する後の第２入力画素データ１１９を保持するデータ保持部、３０５は、先端の仮想画素値を保持する仮想画素値保持部である。３０６は、セレクタ（以下、ＭＵＸ３０６と称する）であり、先端判定部２０９が出力する制御信号１１０が示す値に応じて、仮想画素値保持部３０５が保持する値と第２入力画素データ１１９の値との切り換えを行い出力する。
【００８２】
なお、前記説明においては、先端の仮想画素値を保持する保持部（仮想画素値保持部３０５）と後端の仮想画素値を保持する保持部（仮想画素値保持部３０２）を別構成とした。しかし、仮想画素値として保持する値が同一である場合は、共通の保持部として構成しても良い。つまり、ＭＵＸ３０３およびＭＵＸ３０６に入力される仮想画素値を、同一の仮想画素値保持部の出力としても良い。
【００８３】
３０７および３０８は乗算器であり、出力画素演算における参照入力画素値と演算係数との重み付け演算を行う。具体的には、乗算器３０７の演算により、第１参照入力画素位置と出力画素位置との距離を重み付け係数として、第１参照入力画素データとの乗算結果が得られる。また、乗算器３０８の演算により、第１参照入力画素位置と出力画素位置との距離を重み付けとして、第２参照入力画素データとの乗算結果が得られる。
【００８４】
３０９は加算器であり、乗算器３０７の演算結果と乗算器３０８の演算結果とを加算する。３１０は、除算器であり、加算器３０９の加算結果を入力画像データの構成画素間距離として定義した値（ＳＬ）で除算する。なお、入力画像データの構成画素間距離（ＳＬ）を２のべき乗とした場合においては、除算器３１０はシフト演算によって行うことが可能であり、回路規模あるいは構成要件の簡略化が可能となる。
【００８５】
＜本実施形態による画像を２．５倍に拡大する場合の処理例＞
具体的な画素構成図をもとに、更に詳細に本実施形態を説明する。なお、以下の説明で“ＸＸ”で示す数値は１０進の値、“xxxx”で示す数値はヘキサデシマルで示した値である。
【００８６】
（２．５倍に拡大する場合の概念）
図４は、４画素で構成される入力画像データを２．５倍に拡大する場合の処理例を示す図である。
【００８７】
図４において、実線の四角で示したものは拡大前の入力画素列の画素データを示し、四角の濃さは入力画素データが示す値を示す。黒で示したものは黒（高濃度）である画素を示し、白で示したものは白（低濃度）である画素を示す。したがって、入力画素データの４画素は、両端の２画素（Ｓ０、Ｓ３）が黒画素、中央の２画素（Ｓ１、Ｓ２）が白画素で構成されている。Ｓ０の位置を先頭入力画素位置、Ｓ３の位置を最終入力画素位置という。
【００８８】
四角で示した入力画素間の距離はＳＬとし、本説明においては２のべき乗（“２５６”）であるものとする。また、両端の画素（Ｓ０、Ｓ３）から入力画素間距離分（ＳＬ）離れた距離に仮想画素値（ＤＳ０、ＤＳ１）をおき、点線の四角で示す。つまり、ＤＳ０の値は、先端の仮想画素値として図３における仮想画素値保持部３０５に保持され、ＤＳ１の値は、後端の仮想画素値として仮想画素値保持部３０２に保持される。
【００８９】
図４において、丸で示したものは、拡大処理後、すなわち２．５倍に拡大処理後の画素値を示し、丸の濃度は出力画素値の濃度を示すものとする。また、出力画像データの構成画素間距離をＤＬとする。ここで、Ｄ０の位置を先頭出力画素位置、Ｄ９の位置を最終出力画素位置という。ＤＬの設定値は、拡大処理における倍率設定に直結するものである。また、本発実施形態の構成において、ＤＬを設定する構成部は倍率指定計数保持部１０５が該当する。ＤＬの設定値は、入力画像データの構成画素間距離（ＳＬ）と拡大倍率とにより決定される。具体的には、入力画像データの構成画素間距離（ＳＬ）を拡大倍率で除算した値となる。例えば、入力画像データの構成画素間距離ＳＬが“２５６”で拡大倍率が２．５倍に場合、小数点以下切り捨てであれば“１０２”（＝２５６／２．５）となる。
【００９０】
図４において、ＰＨ０は初期位相である。本実施形態の特徴は、初期位相ＰＨ０を画素データが構成されている方向（右方向）と逆方向（左方向）に設定することにある。また、その設定値は拡大処理する倍率に応じて可変とし、入力画像データの構成画素間距離（ＳＬ）と出力画像データの構成画素間距離（ＤＬ）との差分をもとに算出する。
【００９１】
本実施形態１において、初期位相の設定は、入力画像データの第１画素（Ｓ０）を基準として定義する。すなわち、入力画像データの第１画素（Ｓ０）を基準として、画素データが構成されている方向（右方向）をプラスとし、先端の仮想画素（ＤＳ０）が構成されている方向（左方向）をマイナスとする。初期位相値に符号が含まれるため、初期位相保持部１０６に保持する初期位相のフォーマットは、例えば図６のようになる。図６によれば、設定する初期位相の全体のビット数をＮビットとし、最上位ビットを符号データとする。なお、本説明においては、初期位相保持部１０６のフォーマットは２の補数表記として以降の説明を行う。また、初期位相のビット数は、線形補間演算における演算精度に合わせて決定されるものとする。
【００９２】
（２．５倍に拡大する場合の具体的な処理例）
図５は、先端の仮想画素位置（ＤＳ０）および入力画像データの先頭から３画素位置（Ｓ０、Ｓ１、Ｓ２）と、出力画像データの先頭から７画素位置（Ｄ０〜Ｄ６）の位相状態を示す図である。なお、図５において、図４と同一の意味を示すものに関しては、同じ参照符号を付与する。
【００９３】
上記のように、本実施形態において、入力画像データの４画素を２．５倍に拡大して出力する場合に設定する初期位相ＰＨ０は、入力画像データの構成画素間距離（ＳＬ）と出力画像データの構成画素間距離（ＤＬ）により算出する。これは、拡大処理後の出力画像データの左右対称性を保持するためである。出力画像データの左右の対象性を保持するためには、出力画像データを構成する全画素数分の距離と入力画像データを構成する全画素数分の距離との差分の半分が、入力画像データの左右端部分を基準に位相がずれていれば良い。
【００９４】
例えば、前記例の場合、入力画像データの構成画素間距離（ＳＬ）は“２５６”であり、４画素により構成されるため、入力画像データを構成する全画素数分の距離は、式４にて求められる。
【００９５】
ＳＬ×（入力画像データ構成画素数−１）＝２５６×３＝７６８…（式４）
また、出力画像データの構成画素間距離（ＤＬ）は“１０２”であり、１０画素により構成されるため、出力画像データを構成する全画素数分の距離は、式５にて求められる。
【００９６】
ＤＬ×（出力画像データ構成画素数−１）＝１０２×９＝９１８…（式５）
したがって、入力画像データを構成する全画素数分の距離と、出力画像データを構成する全画素数分の距離の差分は、式６により求められる。
【００９７】
９１８−７６８＝１５０                  …（式６）
左右の対称性を保持するためには、式６により求められた値の半分だけ、入力画像データを構成する先頭画素を基準にマイナス方向に位相をずらせば良い。したがって、初期位相保持部１０６に設定する初期位相は１０進表記で“−７５”となる。図６における初期位相のフォーマットにしたがい、初期位相の設定ビットを９ビットとすれば、２の補数表記での初期位相設定値ＰＨ０は“0x1B5”となる。
【００９８】
（第１出力画素（Ｄ０）の演算処理）
画像データ演算部１０３は、出力画素演算に必要となる制御信号および演算係数の要求を、制御信号１１５として、参照画素位置制御部１０９に対して出力する。参照画素位置制御部１０９は、前記画像データ演算部１０３が出力する制御信号１１５を受けて、先端画素判定信号、後端画素判定信号等の各制御信号および演算係数を出力する。出力画像の第１画素演算時、累積加算器２０３の入力、すなわちＭＵＸ２０１、ＭＵＸ２０２の出力はそれぞれ、初期位相ＰＨ０、固定値０となる。したがって、参照画素位置制御部１０９の出力である演算係数１１３は、初期位相ＰＨ０の値（−７５）が絶対値に変換されてそのまま出力される。つまり、“７５（0x4B）”が出力される。
【００９９】
また、演算係数１１４は、減算器２０６により、絶対値出力制御部２０７の出力と基準画素間係数保持部１０４が保持した値とで減算され、絶対値出力制御部２０８を介して出力される。つまり、入力画像データの構成画素間距離（ＳＬ）：“２５６”から“７５”を減算した“１８１（0xB5）”が出力される。
【０１００】
出力画像の第１画素演算時、前記説明のとおり、累積加算器２０３の出力は、キャリーを生成するものではない。したがって、制御信号２０４は出力されず、結果として、制御信号１１０、１１１、１１２は有意レベルとして出力されない。
【０１０１】
参照画素位置制御部１０９は、制御信号１１５を受けて、前記制御信号および演算係数を出力し、その出力が有意レベルであるタイミングで制御信号１１６を、画像データ演算部１０３に出力する。つまり、前記例においては、演算係数１１３として“７５（0x4B）”、演算係数１１４として“１８１（0xB5）”を出力するタイミングで制御信号１１６の出力を行う。
【０１０２】
画像データ演算部１０３は、前記制御信号１１６受けると、出力画素演算のために画像データ記憶部１０２に対して、入力画像データ１１８および入力画像データ１１９の要求信号である制御信号１１７を出力する。画像データ記憶部１０２は、前記制御信号１１７の入力を受けて、記憶している画像データを出力する。具体的には、入力の第１参照画素データ（Ｓ０）を画像信号１１８として出力し、入力の第２参照画素データ（Ｓ１）を画像信号１１９として出力する。
【０１０３】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号および演算係数と、画像データ記憶部１０２が出力する画像データ１１８および画像データ１１９とを使用して、出力画素の演算を行う。
【０１０４】
ただし、第１出力画素（Ｄ０）演算において、参照画素位置制御部１０９から制御信号１１６が出力されたタイミングにおいては、制御信号１１０、１１１、１１２はいずれも有意レベルでない。後端判定部２０９の出力である制御信号１１１が出力されない場合、図３におけるＭＵＸ３０３の出力は、入力画像データ１１８となる。また、先端判定部２０９の出力である制御信号１１０が出力されない場合、ＭＵＸ３０６の出力は仮想画素値保持部３０５が保持した値となる。
【０１０５】
したがって、乗算器３０７による演算は、入力画像の第１参照画素データである画像データ１１８と演算係数１１４（“0xB5”）との積となる。また、乗算器３０８による演算は、仮想画素値保持部３０５が保持した値と演算係数１１３（“0x4B”）との積となる。乗算器３０７および乗算器３０８の演算出力は、加算器３０９により加算処理され、除算器３１０で除算演算される。本説明においては、入力画像データの構成画素間距離（ＳＬ）は２のべき乗（“２５６”）としているため、除算器３１０の演算は８ビットシフトにより実施することが可能である。したがって、除算器３１０の出力、つまり出力画像の第１画素（Ｄ０）は、式７により演算される。
【０１０６】
Ｄ０＝（Ｓ０×“0xB5”＋ＤＳ０×“0x4B”）／“0x100”    …（式７）
図５に示した入力画素構成において、Ｓ０の値は黒（“0x00”）、ＤＳ０の値は白（“0xFF”）であるから、式７の演算結果は、Ｓ０、ＤＳ０の値を代入して“７４（0x4A）”となる。
【０１０７】
（第２出力画素（Ｄ１）の演算処理）
次に、第２出力画素（Ｄ１）の演算に関して説明する。画像データ演算部１０３から、第２出力画素（Ｄ１）演算のための制御信号１１５が出力されると、参照画素位置制御部１０９は、各制御信号および出力画像の第２画素の演算に必要となる演算係数出力の処理を行う。参照画素位置制御部１０９は、画像データ演算部１０３から、第２出力画素演算のための制御信号１１５が出力されると、該当画素に対する制御信号、および演算係数１１３、演算係数１１４を出力する。
【０１０８】
第２出力画素演算であるため、ＭＵＸ２０１の出力は、初期位相保持部１０６が保持した値ではなく、累積加算器２０３の出力である“−７５（0x1B5）”を出力する。一方、ＭＵＸ２０２の出力は、固定値０から倍率指定係数保持部１０６が保持した値に切り換わる。したがって、設定倍率に該当する出力画像データの構成画素間距離（ＤＬ）の値である“１０２（0x66）”が出力される。累積加算器２０３は、前記ＭＵＸ２０１とＭＵＸ２０２の値の加算処理を行う。ＭＵＸ２０１の出力が“0x1B5”であり、ＭＵＸ２０２の出力が“0x66”であるから、累積加算器２０３の出力は“0x21B”となる。したがって、この場合の累積加算器２０３の出力は、制御信号２０４が有意レベルで出力され、且つ、演算結果の値が“0x01B”となる。よって、絶対値出力制御部２０７および絶対値出力制御部２０８の出力はそれぞれ“２７（0x1B）”、“２２９（0xE5）”となる。
【０１０９】
前記値は、図５における第２出力画素（Ｄ１）の位相を示すものであり、図５のＰＨ１が、絶対値出力制御部２０７の出力値“0x1B”に相当する。また、ＰＨ１が定まることにより参照入力画素である画像データ１１９（Ｓ１）から、第２出力画素Ｄ１までの距離は、入力画像データの構成画素間距離ＳＬからＰＨ１を減算することにより求まる。これは、絶対値出力制御部２０８の出力値“0xE5”が相当する。
【０１１０】
累積加算器２０３から制御信号２０４が出力されるため、先端判定部２０９は先端画素の判定を行う。先端判定部２０９の判定処理は、制御信号２０４が入力されると、先端画素判定信号１１０を出力することである。先端画素判定信号１１０の出力とは有意レベルを意味する値を出力することを示し、正論理であれば‘１’を負論理であれば‘０’を出力することを意味する。また、以降の説明においても、制御信号の出力とは有意レベルを出力することを意味するものとする。
【０１１１】
参照入力画素更新信号生成部２１０は、制御信号２０５をもとに制御信号１１２の出力を行うが、先端判定部２０９が制御信号１１０を出力するまでは、制御信号１１２の出力は行わない。したがって、第２出力画素（Ｄ１）演算時において先端判定部２０９の制御信号１１０が有意レベルで出力されるが、このタイミングにおいては、同期制御の関係により制御信号２０５によらず制御信号１１２の出力は行わない。
【０１１２】
参照画素位置制御部１０９は、第１出力画素演算時と同様に、制御信号および演算係数を出力し、その出力タイミングにおいて制御信号１１６を画像データ演算部１０３に出力する。画像データ演算部１０３は、前記制御信号１１６を受け、出力画像データの演算を開始する。参照画素位置制御部１０９が制御信号１１６を出力した時点においては、制御信号１１０および制御信号１１２は出力されていないため、入力画素データの更新は行わない。つまり、データ保持部３０１およびデータ保持部３０２のデータ更新は行わない。
【０１１３】
なお、データ保持部３０１、データ保持部３０２の更新が行われない場合であっても、画像データ演算部１０３が制御信号１１７を出力するようにしても良い。例えば、画像データ記憶部１０２に対するメモリアドレスを同じ値として、第１出力画素演算時と同じデータを取り込むようにしても良い。また、参照画素位置制御部１０９から、参照入力画素の更新を示す制御信号１１２が出力されない場合は、制御信号１１７を出力しない構成にしても良い。
【０１１４】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号および演算係数１１３、演算係数１１４をもとに第２出力画素（Ｄ１）を算出する。具体的には、先端判定部２０９から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わる。後端判定部２１２からは、制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。
【０１１５】
したがって、乗算器３０７は、演算係数１１４（“２２９”）とＭＵＸ３０３の出力である画像データ１１８（Ｓ０）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３（“２７”）とＭＵＸ３０６の出力である画像データ１１９（Ｓ１）とで乗算を行う。乗算器３０７および乗算器３０８の出力値は、出力第１画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０１１６】
（第３出力画素（Ｄ２）の演算処理）
次に、出力画像データの第３出力画素（Ｄ２）の演算に関して説明する。画像データ演算部１０３は、第２出力画素（Ｄ１）の演算時と同様、制御信号１１５を参照画素位置制御部１０９に対して出力する。参照画素位置制御部１０９は、画像データ演算部１０３からの制御信号１１５の入力を受けると、第３出力画素（Ｄ２）の演算に関する制御信号、および演算係数１１３、１１４を出力する。演算係数１１３は、第２出力画素演算時の累積加算器２０３の出力をもとに求められる。ＭＵＸ２０１の出力は、第２出力画素演算時から累積加算器２０３の出力であり、ＭＵＸ２０２は倍率指定係数保持部１０５である。したがって、累積加算器２０３は、ＭＵＸ２０１の出力値とＭＵＸ２０２の出力値とを加算する。具体的には、ＭＵＸ２０１の出力である“２７（0x1B）”とＭＵＸ２０２の出力である“１０２（0x66）”を加算し、“１２９（0x81）”を出力する。また、この時点における、累積加算器２０３の出力値が定まることにより、減算器２０６の減算値が“１２７（0x7F）”と定まる。
【０１１７】
前記値は、図５における第３出力画素（Ｄ２）の位相を示すものであり、図５に図示のＰＨ２が、絶対値出力制御部２０７の出力値（“0x81”）に相当する。また、ＰＨ２が定まることにより、参照入力画素である画像データ１１９（Ｓ１）から第３出力画素Ｄ２までの距離は、入力画像データの構成画素間距離ＳＬからＰＨ２を減算することにより求まる。これは、絶対値出力制御部２０８の出力値（“0x7F”）が相当する。
【０１１８】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号、および演算係数１１３、１１４をもとに、第３出力画素データ（Ｄ２）を算出する。具体的には、先端判定部２０９から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わる。後端判定部２１２からは、制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。
【０１１９】
したがって、乗算器３０７は、演算係数１１４（“１２７”）とＭＵＸ３０３の出力である画像データ１１８（Ｓ０）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３（“１２９”）とＭＵＸ３０６の出力である画像データ１１９（Ｓ１）とで乗算を行う。乗算器３０７および乗算器３０８の出力値は、出力第１画素演算時、および出力第２画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０１２０】
（第４出力画素（Ｄ３）の演算処理）
次に、出力画像データの第４出力画素（Ｄ３）の演算に関して説明する。画像データ演算部１０３は、第３出力画素（Ｄ２）の演算時と同様、制御信号１１５を参照画素位置制御部１０９に出力する。参照画素位置制御部１０９は、画像データ演算部１０３からの制御信号１１５の入力を受けると、第４出力画素（Ｄ３）の演算に関する制御信号、および演算係数１１３、１１４を出力する。演算係数１１３は、第３出力画素演算時の累積加算器２０３の出力をもとに求められる。ＭＵＸ２０１の出力は、第３出力画素演算時から累積加算器２０３の出力であり、ＭＵＸ２０２は倍率指定係数保持部１０５である。したがって、累積加算器２０３は、ＭＵＸ２０１の出力値とＭＵＸ２０２の出力値とを加算する。具体的には、ＭＵＸ２０１の出力である“１２９（0x81）”とＭＵＸ２０２の出力である“１０２（0x66）”を加算し、“２３１（0xE7）”を出力する。また、この時点における累積加算器２０３の出力値が定まることにより、減算器２０６の減算値が“２５（0x19）”と定まる。
【０１２１】
前記値は、図５における第４出力画素（Ｄ３）の位相を示すものであり、図５に図示のＰＨ３が、絶対値出力制御部２０８の出力値（“0xE7”）に相当する。また、ＰＨ３が定まることにより、参照入力画素である画像データ１１９（Ｓ１）から出力第４画素Ｄ３までの距離は、入力画像データの構成画素間距離ＳＬからＰＨ３を減算することにより求まる。これは、絶対値出力制御部２０７の出力値（“0x19”）が相当する。
【０１２２】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号、および演算係数１１３、１１４をもとに出力第４画素データ（Ｄ３）を算出する。具体的には、先端判定部２０９から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わっている。後端判定部２１２からは制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。
【０１２３】
したがって、乗算器３０７は、演算係数１１４（“２５”）とＭＵＸ３０３の出力である画像データ１１８（Ｓ０）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３（“２３１”）とＭＵＸ３０６の出力である画像データ１１９（Ｓ１）とで乗算を行う。乗算器３０７、および乗算器３０８の出力値は、これまでの出力画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０１２４】
（第５出力画素（Ｄ４）の演算処理）
次に、出力画像データの第５出力画素（Ｄ４）の演算に関して説明する。画像データ演算部１０３は、第４出力画素（Ｄ３）の演算時と同様、制御信号１１７を参照画素位置制御部１０９に出力する。参照画素位置制御部１０９は、画像データ演算部１０３からの制御信号１１５の入力を受けると、出力第５画素（Ｄ４）の演算に関する制御信号、および演算係数１１３、１１４を出力する。演算係数１１３は、第４出力画素演算時の累積加算器２０３の出力をもとに求められる。ＭＵＸ２０１の出力は、出力第４画素演算時からの累積加算器２０３の出力であり、ＭＵＸ２０２は倍率指定係数保持部１０５である。したがって、累積加算器２０３は、ＭＵＸ２０１の出力値とＭＵＸ２０２の出力値とを加算する。具体的には、ＭＵＸ２０１の出力である“２３１（0xE7）”とＭＵＸ２０２の出力である“１０２（0x66）”を加算する。なお、加算結果は“３３３（0x14D）”となる。
【０１２５】
第５出力画素演算時における累積加算器２０３の加算結果は、９ビット構成の最上位ビットの値が‘１’となっているため、参照入力画素更新信号生成部２１０に対する制御信号２０５の出力を意味する。先端判定部２０９の出力である制御信号１１０は、第２出力画素演算時に出力されていることから、参照入力画素更新信号生成部２１０は制御信号２０５を制御信号１１２として出力する。したがって、第５出力画素の演算時において、制御信号１１６が出力されるタイミングにおいては、制御信号１１０、１１２、および２つの演算係数が有意レベルとなって出力される。
【０１２６】
画像データ演算部１０３は、参照画素位置制御部１０９から前記制御信号、および２つの演算係数を受け取ると、第５出力画素の演算処理を開始する。ただし、第５出力画素の演算時においては、これまでの出力画素演算時とは異なり、制御信号１１２が出力されている。制御信号１１２は、参照入力画素の更新を示すため、画像データ演算部１０３はデータ保持部３０１およびデータ保持部３０２に保持する入力画像データの更新を行う。
【０１２７】
入力画像データの更新は、画像データ演算部１０３が、画像データ記憶部１０２に対して出力する制御信号１１７によって行われる。画像データ記憶部１０２は、画像データ演算部１０３からの参照入力画素更新を示す制御信号１１７を受けて、画像データ１１８および１１９を出力する。参照入力画素データの更新により、画像データ１１８は第２入力画素（Ｓ１）となり、画像データ１１９は第３入力画素（Ｓ２）となる。したがって、画像データ演算部１０３のデータ保持部３０１には画像データ１１８（Ｓ１）が保持され、データ保持部３０２には画像データ１１９（Ｓ２）が保持される。
【０１２８】
一方、第５出力画素演算時において、演算係数１１３は、絶対値出力制御部２０７を介して、累積加算器２０３の下位８ビットが出力されている。つまり、加算結果“３３３（0x14D）”の下位８ビットである“７７（0x4D）”が出力される。この値は、図５におけるＰＨ４、すなわち、第２画素（Ｓ１）から第５出力画素（Ｄ４）までの位相を示している。また、ＰＨ４が定まることにより、第３画素（Ｓ２）から第５出力画素（Ｄ４）までの距離も、ＳＬからＰＨ４を減算することによって定まる。これは、絶対値出力制御部２０８を介して、減算器２０６の出力が相当し、“１７９（0xB3）”となる。
【０１２９】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号、および演算係数１１３、１１４をもとに、第５出力画素データ（Ｄ４）を算出する。具体的には、先端判定部２０９から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わる。後端判定部２１２からは制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。したがって、乗算器３０７は、演算係数１１３（“１７９”）とＭＵＸ３０３の出力である画像データ１１８（Ｓ１）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３（“７７”）とＭＵＸ３０６の出力である画像データ１１９（Ｓ２）とで乗算を行う。乗算器３０７および乗算器３０８の出力値は、これまでの出力画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０１３０】
このように、累積加算器２０３の演算結果を用いて参照入力画素の更新を制御し、また、参照入力画素位置と出力画素位置との位相を演算係数として出力することにより、画像データ演算部１０３は出力画素値の演算を行うことが出来る。
【０１３１】
（第１０出力画素（Ｄ９）の演算処理）
次に、後端判定部２１２の制御信号１１１の出力に関して説明する。参照入力画素更新信号生成部２１０は、制御信号２０５、すなわち累積加算器２０３の出力値に応じて制御信号１１２を出力する。計数部２１１は、先端判定部２０９の出力である制御信号１１０が出力された後の制御信号１１２を計数する。本説明においては、入力画素は４画素であるため、計数部２１１による計数は４回行われる。後端判定部２１２は、計数部２１１の出力値と入力画素数保持部１０７の保持値とを比較し、一致した場合に制御信号１１１を出力する。
【０１３２】
画像データ演算部１０３内部のデータ保持部３０１、データ保持部３０２は、４回の参照入力画素データ更新により、その都度保持するデータが更新されている。本説明の例においては、４回の更新により、第４入力データ（Ｓ３）がデータ保持部３０２に記憶されている。なお、この時点でのデータ保持部３０１に保持されるデータは、入力画素の中には存在しないため、更新前のデータ、あるいは無効データが保持されることとなる。
【０１３３】
制御信号１１１が出力されると、画像データ演算部１０３内部のＭＵＸ３０３の切り換えが行われる。つまり、データ保持部３０１に保持したデータではなく、仮想画素値保持部３０２に保持したデータがＭＵＸ３０３の出力として出力される。
【０１３４】
一方、ＭＵＸ３０６の出力は、先端判定部２０９が出力する制御信号１１０により、データ保持部３０４が保持した値となる。したがって、乗算器３０７は、ＭＵＸ３０３の出力、すなわち仮想画素値保持部３０２が保持した値と、その時点において、参照画素位置制御部１０９が出力する演算係数１１４とで乗算演算を行う。また、同様に、乗算器３０８は、ＭＵＸ３０６の出力、すなわちデータ保持部３０４が保持した値と、その時点において、参照画素位置制御部１０９が出力する演算係数１１３とで乗算演算を行う。
【０１３５】
出力画像データの後端における演算係数１１３および１１４は、初期位相を画素が構成されている方向と逆方向（マイナス方向）に設定していることから、入力画像データ位置に対して、左右非対称に位相がずれることはない。つまり、出力画像データ後端における演算係数１１３、１１４も左右の対称性を保持する上で適正な位相を示すものとなる。
【０１３６】
したがって、４画素から構成され、左右の端部画素が黒である入力画像（Ｓ０〜Ｓ３）は、図４に示すように左右対称に２．５倍に拡大される（Ｄ０〜Ｄ９）。図４からも明らかであるように、初期位相を、入力第１画素を基準として、画素が構成されている方向と逆方向に設定することで、入力画像の対称性を保持したまま、拡大処理を行うことが出来る。
【０１３７】
拡大処理の終了は、画像データ演算部１０３によって出力された出力画素数とＣＰＵによって設定された出力画素数保持部１０８の保持データとの比較にて判定される。つまり、図示しない、出力画素数を計数する計数部の値と出力画素数保持部１０８の保持データとを比較し、出力画素数が前記保持した値に達した時点で拡大処理の完了とする。
【０１３８】
＜本実施形態による画像を２倍に拡大する場合の処理例＞
これまでは、図４〜図６を参照して、画像を２．５倍に拡大する場合の処理例における処理例を詳細に説明してきた。
【０１３９】
図７では、画像を２倍に拡大する場合の処理例について説明する。
【０１４０】
図７の例においては、出力画素間距離（ＤＬ）が入力画素間距離（ＳＬ）の半分であること、初期位相のＰＨ０がＤＬ／２であること以外は、上記２．５倍の場合と基本的な動作は同じである。
【０１４１】
本実施形態の図１、図２、図３の構成に従えば、入力画素データ（Ｓ０〜Ｓ３）に基づいて、左右両端の外側に仮想画素（ＤＳ０，ＤＳ１）を設けて第１入力画素Ｓ０からのマイナスの初期位相ＰＨ０を設定する。そして、出力画素データ（Ｄ０〜Ｄ７）を挟む入力画素データ（Ｓ０〜Ｓ３）及び仮想画素（ＤＳ０，ＤＳ１）からの距離に応じて線形補間する。これにより、対称性を保持した高品質の出力画素データ（Ｄ０〜Ｄ７）からなる２倍の拡大（解像度変換）画像が提供できる。
【０１４２】
なお、これまでは、左右の対称性として説明したが、上下の対称性についても本発明の補間による拡大の概念は同様に適用される。ただし、主走査方向と副走査方向とを有する画像形成などでは、左右（主走査方向）と上下（副走査方向）とで異なる制御になる。
【０１４３】
＜本実施形態の拡大（解像度変換）の２次元画像への適用例＞
なお、これまでの説明においては説明を容易にするため１次元の画像データに関して説明を行ったが、本実施形態は２次元の画像データに対しても適用することが可能である。ここでは、左右方向の拡大処理と上下方向の拡大処理とが、上記実施形態の方法を適用して独立に実行される。
【０１４４】
図８は、本実施形態を２次元の画像データに適用した場合の概念図を示す。
【０１４５】
図８において、実線の四角で示したものは入力画像の画素データ（Ｓ０〜Ｓ１１）である。なお、四角の濃さは画素のレベルを示しており、黒で示したものは高濃度（黒）、白で示したものは低濃度（白）であることを示している。
【０１４６】
したがって、入力画像は、周囲１画素（Ｓ０〜Ｓ４、Ｓ７〜Ｓ１１）が黒画素で構成され、中央の２画素（Ｓ５、Ｓ６）が白画素の合計１２画素で構成されている。また、入力画像の構成画素間距離をＳＬで示し、出力画像の主走査方向の構成画素間距離をＤＬＭ、副走査方向の構成画素間距離をＤＬＳで示している。拡大倍率の設定が、主走査方向と副走査方向で同一の場合、ＤＬＭとＤＬＳは同じ値となる。
【０１４７】
また、点線の四角で示したものは仮想画素データであり、ＤＳ０、ＤＳ１、ＤＳ２、ＤＳ３で示している。なお、本実施形態を画像データに対して適用する場合、仮想画像データは全て同一の値とすることが多い。
【０１４８】
本発明を２次元の画像データに適用した場合においても、主走査方向および副走査方向の初期位相の設定概念は１次元の場合と同一である。つまり、入力画像データの主走査方向／副走査方向の画素数、拡大倍率によって生成される出力画像データの主走査方向／副走査方向の画素数、および、各々の構成画素間距離による値を設定する。
【０１４９】
図８の例において、拡大倍率を主走査方向／副走査方向ともに２．５倍とすると、主走査方向の出力画素数は１０画素、副走査方向の画素数は７画素となる。入力画像の構成画素間距離ＳＬを２のべき乗である“２５６”とすると、出力画像の構成画素間距離ＤＬＭ、ＤＬＳは、式７によって求まる。
【０１５０】
ＤＬＭ（ＤＬＳ）＝ＳＬ／拡大倍率＝２５６／２．５＝１０２…（式７）
主走査方向に４画素、副走査方向に３画素の入力画像データを２．５倍に拡大し、主走査方向に１０画素、副走査方向に７画素の出力画像を求める場合、入力画像を構成する主走査方向の全画素数分の距離は、式４により“７６８”となる。また、同様に入力画像を構成する副走査方向の全画素数分の距離は“５１２”となる。
【０１５１】
一方、出力画像を構成する副走査方向の全画素数分の距離は、式５により“９１８”となる。また、出力画像を構成する副走査方向の全画素数分の距離は“６１２”となる。
【０１５２】
よって、入力画像データを構成する全画素数分の主走査方向距離と、出力画像を構成する全画素数分の主走査方向距離との差分は、式８により求まる。また、入力画像データを構成する全画素数分の副走査方向距離と、出力画像を構成する全画素数分の副走査方向距離との差分は、式９により求まる。
【０１５３】
９１８−７６８＝１５０            …（式８）
６１２−５１２＝１００            …（式９）
したがって、設定する初期位相の値は、主走査方向ＰＨＭが“−７５”、副走査方向ＰＨＳが“−５０”となる。このように、主走査方向の画素数と副走査方向の画素数が異なる入力画像である場合、本実施形態においては、主走査方向と副走査方向の拡大倍率が同一であっても、設定する初期位相の値は各方向で異なるものを設定する。
【０１５４】
本発明を２次元の画像データに適用する場合、図２に示した各構成要件は、主走査方向および副走査方向個別に構成される。つまり、累積加算器、先端判定部、参照入力画素更新信号生成部、計数部、後端判定部は、画素が構成される方向別に構成され、各々独立で制御される。したがって、主走査方向の先端判定部や後端判定部は、１ライン分の画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当する制御信号がクリアされる。つまり、制御信号１１０や１１１はライン単位で機能する。また、副走査方向の先端判定部や、後端判定部は、全入力画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当制御信号がクリアされる。
【０１５５】
＜本実施形態の画像拡大（解像度変換）処理の処理手順例＞
図９は、本実施形態の画像拡大（解像度変換）処理の処理手順例を示すフローチャートである。かかる処理は、図１あるいは図２、図３の機能ブロックを制御するあるいは実現するＣＰＵ（不図示）により実行される。
【０１５６】
入力画像データの構成画素数および拡大倍率が定まると、本実施形態の装置の各種設定を行うＣＰＵは、以下の諸設定を行う。すなわち、ＣＰＵは、基準画素間係数保持部１０４、倍率指定係数保持部１０５、初期位相保持部１０６、入力画素数保持部１０７、出力画素数保持部１０８への設定を行い、拡大処理開始の起動をかける。
【０１５７】
ＣＰＵから拡大処理の起動がかかると、本実施形態の装置の各処理部は拡大処理を開始する。画像データ演算部１０３は、参照画素位置制御部１０９に対し、各種制御信号の生成と線形補間演算に必要となる演算係数の出力を要求する。参照画素位置制御部１０９は、前記要求に基づき位相演算を行う（ステップＳ１０１）。設定される初期位相は負のデータであるため、出力画像データの構成画素間距離を累積加算していった演算値が正の値となるまで拡大処理演算を行い、第１出力画素データを出力する（ステップＳ１０２）。第１出力画素データの演算には、はじめに画像データ記憶部１０２から入力された第１入力画素データおよび仮想画素データ値が用いられる。
【０１５８】
累積加算出力が正の値となるキャリーを検出すると、先端判定部２０９が制御信号１１０を出力する（ステップＳ１０３）。先端判定部２０９による制御信号１１０が出力されると、以降は仮想画素データ値は用いず、画像データ記憶部１０２から入力される画素データを用いて出力画素の演算を行う。なお、以降に関しては、累積加算器のキャリーは用いずに累積加算出力の最上位ビットを参照入力画素の更新信号のキャリーとして扱う。
【０１５９】
画像データ演算部１０３は、参照画素位置制御部１０９からの参照入力画素の更新信号が出力されるまでは、参照入力画素の更新は行わない。つまり、位相演算を繰り返し行い、出力画素の演算と出力とを行う（ステップＳ１０４、Ｓ１０５）。累積加算出力の最上位ビットに基づき参照入力画素更新信号が出力されると、画像データ演算部１０３は演算に用いる入力画素データを更新する。そして、更新した入力画素データにより、継続して、位相演算と出力画素演算とを行う。すなわち、画像データ記憶部１０２から次に参照する入力画素データを取り込み、出力画素演算を続ける。
【０１６０】
先端判定部２０９の制御信号１１０の出力以降に生成される参照入力画素更新信号の数は、計数部２１１により計数される（ステップＳ１０６）。本実施形態の装置は、計数部２１１による計数値がＣＰＵによって設定された入力画素数に達するまで、参照入力画素の更新、位相演算、出力画素演算を繰り返す（ステップＳ１０４〜Ｓ１０８）。
【０１６１】
計数部２１１の計数値がＣＰＵによって設定された入力画素数に達すると（Ｓ１０７のＮ）、後端判定部２１２は後端判定の制御信号１１１を出力する（ステップＳ１０９）。以降、画像データ演算部１０３による画素出力数がＣＰＵにより設定された値となるまで、位相演算と出力画素演算とを行う（ステップＳ１１０、Ｓ１１１）。なお、後端判定部２１２が出力された後は、最終入力画素データと仮想画素データとを用いて、出力画素演算を行う。
【０１６２】
＜本実施形態の画像拡大部（解像度変換部）をコンピュータで構成した例＞
図１０は、本実施形態の画像拡大部（解像度変換部）をコンピュータで構成した例を示す図である。
【０１６３】
かかる構成のコンピュータの動作手順は、基本的に図９のフローチャートと同様である。しかし、かかる構成のコンピュータによれば、拡大倍率から初期位相値が算出されれば、以降の補間のための重み付け値などは予め準備された図１０の「重み付けテーブル９４ｂ」から読み出して演算可能である。そのため、図１乃至図３の構成のように位相の変化に従って順次に出力画素データを算出する必要は無く、計算時間が短縮される。
【０１６４】
例えば、ＣＰＵ９１が高速処理が可能であれば、１ライン分あるいは複数ライン分の入力画素データを入力して拡大出力画素データを算出して、後続処理に同期したタイミングで出力することも可能である。また、２次元であれば、１ページ分の入力画素データから拡大出力画素データをまとめて算出することも可能となる。
【０１６５】
図１０において、９１は、画像拡大部（解像度変換部）１００の全体を制御する演算・制御用のＣＰＵである。９２は、初期化などの固定のプログラムやパラメータを格納するＲＯＭである。９３は、ＣＰＵ９１がプログラムを実行中にデータなどを一次記憶するＲＡＭである。画像データもＲＡＭ９３に一次記憶される。
【０１６６】
ＲＡＭ９３には、以下の記憶領域が確保される。なお、かかる記憶領域は、本実施形態の動作に必須なデータの記憶領域であり、汎用のデータについては示していない。９３ａは、本実施形態の走査方向の先端の外側に設定される仮想画素データ（例えば、図４のＤＳ０）を記憶する領域である。９３ｂは、走査方向分の入力画像データの記憶領域である。９３ｃは、本実施形態の走査方向の後端の外側に設定される仮想画素データ（例えば、図４のＤＳ１）を記憶する領域である。９３ｄは、走査方向に１ラインの入力画素数を記憶する領域である。９３ｅは、拡大倍率を記憶する領域である。９３ｆは、走査方向に１ラインの拡大後の出力画素数を記憶する領域である。
【０１６７】
９３ｇは、入力画素数と出力画素数とから算出された初期位相値（例えば、図４のＰＨ０）を記憶する領域である。９３ｈは、出力画素データを線形補間法で演算するための重み付け係数を記憶する領域である。かかる重み付け係数は、出力画素位置に基づいて、後述の外部記憶部９４に準備された重み付け係数テーブル９４ａから取得したものである。９３ｉは、出力画素データを線形補間法で演算するための、出力画素位置の先の第１画素データの記憶領域である。９３ｊは、出力画素データを線形補間法で演算するための、出力画素位置の後の第２画素データの記憶領域である。なお、先端仮想画素データ９３ａ、入力画像データ９３ｂ、後端仮想画素データ９３ｃから直接読み出す場合は、９３ｉ及び９３ｊは必要ない。９３ｋは、重み付け係数９３ｈに基づき第１画素データ９３ｉと第２画素データ９３ｊから算出された、出力画素データが記憶される領域である。
【０１６８】
９３ｍは、ＣＰＵ９１のプログラムの実行で使用される他のパラメータが記憶される領域である。９３ｎは、ＣＰＵ９１が実行するプログラムを後述の外部記憶部９４からロードする領域である。
【０１６９】
９４はディスクなどの不揮発性の外部記憶部である。なお、外部記憶部９４の記憶領域には、本実施形態の動作に必須なプログラムやデータの記憶領域のみを示しており、汎用のプログラムやデータについては示していない。９４ａは、出力画素位置に基づいて予め準備された重み付け係数テーブルの格納領域である。９４ｂは、図９に従って前述のフローチャートに相当する拡大処理プログラムの格納領域である。９４ｃは、拡大処理プログラム９４ｂで使用する出力画素データを仮想画素データおよび入力画素データから補間演算する補間演算ルーチンの格納領域である。
【０１７０】
９５は、拡大処理部１００に入力される画像データやパラメータをインタフェースする入力インタフェースである。９６は、拡大処理部１００から出力される拡大された画像データをインタフェースする出力インタフェースである。
【０１７１】
なお、図１０のＣＰＵ９１は拡大処理部１００に専用のプロセッサとして示したが、他の処理や画像形成装置全体の制御を兼ねるプロセッサであってもよい。
【０１７２】
＜実施形態１の効果＞
つまり、本実施形態の装置においては、入力画像を構成する画素データの先端部および後端部の線形補間演算時に、仮想画素データを用いて演算する。また、初期位相として設定する値は、入力画像を構成する第１画素と第２画素の間ではなく仮想画素データと第１画素の間とする。そして、その設定値を入力画像データの構成画素間距離と出力画像データの構成画素間距離との差分をもとに算出した値としている。また、拡大処理する画像データが２次元である場合、主走査方向と副走査方向との拡大倍率が同じであっても、前記演算により方向別に初期位相を設定する。この設定により、入力画像データのもつ対称性が保持された状態で、適正な拡大処理が行われる。
【０１７３】
［実施形態２］
前記実施形態１においては、初期位相の設定を、第１入力画素位置を基準として、入力画像データが構成される方向とは逆方向（マイナス方向）に設定していた。しかし、本発明の特徴は、初期位相の設定を従来の線形補間法ように、入力画像の第１画素データと第２画素データの間に設定するのではなく、入力画像の第１画素データよりも前の（マイナスの）位相に設定することにある。したがって、第１入力画素データの前に仮想画素データが設定されるとすると、仮想画素データを基準として初期位相を設定することも可能である。
【０１７４】
以下、第１入力画素データの前に設定した仮想画素データを基準として、初期位相を設定する場合の例に関して説明する。
【０１７５】
＜本実施形態の画像処理における拡大処理部（解像度変換部）の構成例＞
本実施形態２における特徴は初期位相の設定にあるため、実施形態１において説明した図１の参照画素位置制御部１０９の構成が異なるが、画像データ演算部１０３などの他の構成は同様であるので重複する説明は避ける。
【０１７６】
（実施形態２の参照画素位置制御部１０９の構成例）
図１１は、実施形態２における参照画素位置制御部１０９の構成例を示す図である。なお、図１１で、図２と同じ参照番号の入出力信号は、図２の入出力信号と同様である。
【０１７７】
図１１において、４０１および４０２はセレクタ（以下、ＭＵＸ４０１、ＭＵＸ４０２と称する）、４０３はＭＵＸ４０１の出力値とＭＵＸ４０２の出力値とを加算する累積加算器である。ＭＵＸ４０１の入力は、初期位相保持部１０６が保持した値（ＰＨ０、以下、初期位相と称する）と累積加算器４０３の出力とである。拡大処理時の第１出力画素の演算時には初期位相が出力され、以降は累積加算器４０３の出力が選択されるように構成される。ＭＵＸ４０２の入力は、倍率指定係数保持部１０５が保持した値と固定値“０”とである。拡大処理時の第１出力画素の演算時には固定値“０”が出力され、以降は倍率指定係数保持部１０５が保持した値が出力される。
【０１７８】
４０４は、累積加算器４０３が出力するキャリー信号であり、ＭＵＸ４０１の出力とＭＵＸ４０２の出力との加算結果が、累積加算器４０３のビット数を超えた場合に出力されるものである。４０５は、減算器であり、基準画素間係数保持部１０４が保持する値と累積加算器４０３の出力値との差分演算を行う。
【０１７９】
参照画素位置制御部１０９は、図２の実施形態１と同様、画像データ演算部１０３が出力する制御信号１１５を同期信号として動作する。したがって、画像データ演算部１０３の制御信号１１５の入力をもとに、画像データ演算部１０３の演算処理に必要となる制御信号および演算係数を出力する。
【０１８０】
累積加算器４０３の演算出力は、演算係数１１４として出力される。演算係数１１４は、出力画素の演算時に参照する２つの参照入力画素のうち、第１入力画素位置と出力画素位置との距離を示す。減算器４０５の演算出力は、演算係数１１３として出力される。演算係数１１３は、出力画素演算時に参照する２つの参照入力画素のうち、第２入力画素位置と出力画素位置との距離を示す。なお、演算器を構成する場合において、減算器は加算器によって構成されることは公知であるため、減算器４０５が加算器として構成される場合であっても、減算器に該当するものとする。
【０１８１】
４０６は、先端判定部であり、累積加算器４０３から出力される制御信号４０４に応じて動作し、先端画素判定結果信号１１０を出力する。なお、先端判定部４０６の具体的動作に関しては後述する。４０７は、画像データ演算部１０３が出力画素を演算する際、画像データ記憶部１０２から読み出す参照入力画素を更新するか否かを制御する参照入力画素更新信号生成部である。参照入力画素更新信号生成部４０７は、累積加算器４０３が出力する制御信号４０４と先端判定部４０６が出力する判定信号１１０の出力とに応じて、参照入力画素を更新する制御信号１１２を生成する。４０８は、参照入力画素更新信号生成部４０７が出力する制御信号１１２を、先端判定部４０６が出力する先端画素判定結果信号１１０が示す値に応じて計数する計数部である。具体的には、計数部４０８は、先端画素判定結果信号１１０が計数する上で有効なレベルを示していなければ、制御信号１１２を計数することはしない。つまり、先端画素判定結果信号１１０は、計数部４０８の動作制御信号（イネーブル信号）として機能する。
【０１８２】
４０９は、計数部４０８の出力信号と入力画素数保持部１０７が保持する値に応じて後端判定を行う後端判定部である。計数部４０８の出力値が示すものは、出力画素の演算を行う際、先端判定部４０６が、先端画素を判定してから、入力参照画素の更新が行われた回数を示す。したがって、入力画素数保持部１０７が保持した値と計数部４０８の出力値とが同一の値となった場合、入力画素の更新をこれ以上行えないものと判断し、後端画素判定信号１１１を出力する。なお、後端判定部４０９の具体的動作に関しても、先端判定部４０６の動作と同じく後述する。
【０１８３】
以上の構成が示す通り、実施形態１との違いは３点ある。１つは、累積加算器４０３が出力するキャリー信号４０４が参照入力画素更新信号生成部４０７に接続されている点である。２つ目は、累積加算器４０３の出力演算結果が演算係数１１４として出力されている点である。また、３つ目は、減算器４０５の出力が、直接、演算係数１１３として出力されている点である。つまり、実施形態１における絶対値出力制御部２０７および２０８が、構成要件として存在しない。このため、実施形態１よりも構成要件の簡略化が可能となる。
【０１８４】
＜本実施形態による画像を２．５倍に拡大する場合の処理例＞
具体的な画素構成図をもとに、更に詳細に本実施形態を説明する。
【０１８５】
（２．５倍に拡大する場合の概念）
図１２に、実施形態２の概念を説明する１次元の拡大処理の構成図を示す。
【０１８６】
図１２において、実線の四角で示したもの（Ｓ０〜Ｓ３）は入力画素位置であり、点線の四角で示したもの（ＤＳ０、ＤＳ１）は仮想画素位置である。また、丸で示したもの（Ｄ０〜Ｄ９）は出力画素位置を示している。入力画素および出力画素とも、その内部の濃さ画素データのレベルを示しており、黒で示したものは黒画素（高濃度）、白で示したものは白画素（低濃度）であることを示している。また、ＳＬは入力画像の構成画素間距離を示し、ＤＬは出力画像の構成画素間距離を示している。
【０１８７】
実施形態２においては、実施形態１と異なり、入力画像の第１画素データ（Ｓ０）の前に仮想画素データをおき、この仮想画素データの位置を基準に初期位相（ＰＨ０）を定義する点にある。つまり、初期位相として設定する値に負の概念は存在しない。したがって、初期位相保持部１０６に設定する値としては正の設定値のみとなり、図１４に示すフォーマットとなる。図１４において、初期位相として設定するビット数Ｎの値は、線形補間演算を行う上での演算精度に直結する。つまり、Ｎの値を大きくすればその分精度が向上する。また、初期位相の設定値が正のみとなることから、累積加算器４０３の出力には絶対値制御部は存在しない。したがって、累積加算器４０３の演算出力および減算器４０５の出力が、演算係数となる。
【０１８８】
（２．５倍に拡大する場合の具体的な処理例）
図１３は、先端の仮想画素位置（ＤＳ０）および入力画像データの先頭の３画素位置（Ｓ０、Ｓ１、Ｓ２）と出力画像データの先頭の７画素位置（Ｄ０〜Ｄ６）の位相状態を示す図である。なお、図１３において、図１２と同一の意味を示すものに関しては同じ参照符号を付与する。
【０１８９】
本発明において、入力画像データの４画素を２．５倍に拡大して出力する場合に設定する初期位相ＰＨ０は、入力画像データの構成画素間距離（ＳＬ）と出力画像データの構成画素間距離（ＤＬ）とにより算出する。これは、実施形態１と同様、拡大処理後の出力画像データの左右対称性を保持するためである。出力画像データの左右の対象性を保持するためには、出力画像データを構成する全画素数分の距離と入力画像データを構成する全画素数分の距離との差分の半分が、入力画像データの左右端部分を基準に位相がずれていれば良い。
【０１９０】
例えば、前記例の場合において、入力画像データの構成画素間距離（ＳＬ）を２のべき乗である“２５６”とすると、出力画像データの構成画素間距離（ＤＬ）は、実施形態１と同様１０２となる。また、入力画素は４画素により構成されるため、入力画像データを構成する全画素数分の距離は、式１０にて求められる。
【０１９１】
ＳＬ×（入力画像データ画素数―１）＝２５６×３＝７６８  …（式１０）
出力画像データの構成画素間距離（ＤＬ）は１０画素により構成されるため、出力画像データを構成する全画素数分の距離は、式１１にて求められる。
【０１９２】
ＤＬ×（出力画像データ画素数―１）＝１０２×９＝９１８  …（式１１）
したがって、入力画像データを構成する全画素数分の距離と出力画像データを構成する全画素数分の距離との差分は、式１２により求められる。
【０１９３】
９１８−７６８＝１５０                …（式１２）
左右の対称性を保持するためには、式１２により求められた値の半分、入力画像データを構成する先頭画素を基準にマイナス方向に位相をずらせば良い。実施形態１においては、第１入力画素を基準としていたために設定する初期位相の符号はマイナスとなったが、実施形態２においては、第１入力画素の前の仮想画素が基準となる。したがって、入力画像の構成画素間距離であるＳＬをもとに演算を行う。つまり、ＳＬから、式１２によって求まった値の半分を減算すれば良い。したがって、初期位相保持部１０６に設定する初期位相は１０進表記で“１８１”となる。図１４における初期位相のフォーマットにしたがえば、ＳＬを“２５６”としたことから、図１４のＮは“８”となる。よって、初期位相（ＰＨ）の設定は“１８１（0xB5）”となる。
【０１９４】
（第１出力画素（Ｄ０）の演算処理）
画像データ演算部１０３は、出力画素演算に必要となる制御信号および演算係数の要求を、制御信号１１５として参照画素位置制御部１０９に対して出力する。参照画素位置制御部１０９は、前記画像データ演算部１０３が出力する制御信号１１５を受けて、先端画素判定信号や後端画素判定信号等の各制御信号、および演算係数を出力する。出力画像の第１画素演算時、累積加算器４０３の入力、すなわちＭＵＸ４０１とＭＵＸ４０２との出力はそれぞれ、初期位相ＰＨ０と固定値“０”となる。したがって、参照画素位置制御部１０９の出力である演算係数１１４は、初期位相ＰＨ０の値である“１８１”が出力される。
【０１９５】
演算係数１１３は、減算器４０５により、累積加算器４０３の出力と基準画素間係数保持部１０４が保持した値とで減算され出力される。つまり、入力画像データの構成画素間距離（ＳＬ）：“２５６”から“１８１”を減算した“７５（0x4B）”が出力される。
【０１９６】
出力画像の第１画素演算時、前記説明のとおり、累積加算器４０３の出力はキャリーを生成するものではない。したがって、制御信号２０４は出力されず、結果として、制御信号１１０、１１１、１１２は有意レベルとして出力されない。  参照画素位置制御部１０９は、制御信号１１５を受けて、前記制御信号および演算係数を出力し、その出力が有意レベルであるタイミングで制御信号１１６を、画像データ演算部１０３に出力する。つまり、前記例においては、演算係数１１３として“７５（0x4B）”、演算係数１１４として“１８１（0xB5）”を出力するタイミングで制御信号１１６の出力を行う。
【０１９７】
画像データ演算部１０３は、前記制御信号１１６受けると、出力画素演算のために画像データ記憶部１０２に対して、入力画像データ１１８および１１９の要求信号である制御信号１１７を出力する。画像データ記憶部１０２は、前記制御信号１１７の入力を受けて、記憶している画像データを出力する。具体的には、入力の第１画素データ（Ｓ０）を画像信号１１８として出力し、入力の第２画素データ（Ｓ１）を画像信号１１９として出力する。
【０１９８】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号および演算係数と、画像データ記憶部１０２が出力する画像データ１１８および１１９を使用して出力画素の演算を行う。ただし、第１出力画素（Ｄ０）演算において、参照画素位置制御部１０９から制御信号１１６が出力されたタイミングにおいては、制御信号１１０、１１１、１１２はいずれも有意レベルでない。
【０１９９】
後端判定部２０９の出力である制御信号１１１が出力されない場合、図３の画像データ演算部１０３におけるＭＵＸ３０３の出力は、入力画像データ１１８となる。また、先端判定部２０９の出力である制御信号１１０が出力されない場合、ＭＵＸ３０６の出力は仮想画素値保持部３０５が保持した値となる。したがって、乗算器３０７による演算は、入力画像の第１画素データである画像データ１１８と演算係数１１４（“0xB5”）との積となる。また、乗算器３０８による演算は、仮想画素値保持部３０５が保持した値と演算係数１１３（“0x4B”）との積となる。乗算器３０７および乗算器３０８の演算出力は、加算器３０９により加算処理され、除算器３１０で除算演算される。本説明においては、入力画像データの構成画素間距離（ＳＬ）は２のべき乗（“２５６”）としているため、除算器３１０の演算は８ビットシフトにより実施することが可能である。したがって、除算器３１０の出力、つまり出力画像の第１画素（Ｄ０）は、式１３により演算される。
【０２００】
Ｄ０＝（Ｓ０×“0xB5”＋ＤＳ０×“0X4B”）／“0x100”  …（式１３）
図１２に示した入力画素構成において、Ｓ０の値は黒（“0x00”）、ＤＳ０の値は白（“0xFF”）であるから、式１３の演算結果は、Ｓ０、ＤＳ０の値を代入して“７４（0x4A）”となる。
【０２０１】
（第２出力画素（Ｄ１）の演算処理）
次に、第２出力画素（Ｄ１）の演算に関して説明する。画像データ演算部１０３から、第２出力画素（Ｄ１）演算のための制御信号１１５が出力されると、参照画素位置制御部１０９は、各制御信号および出力画像の第２画素の演算に必要となる演算係数出力の処理を行う。参照画素位置制御部１０９は、画像データ演算部１０３から第２出力画素演算のための制御信号１１５が出力されると、該当画素に対する制御信号および演算係数１１３、１１４を出力する。
【０２０２】
第２出力画素の演算であるため、ＭＵＸ２０１の出力は、初期位相保持部１０６が保持した値ではなく累積加算器２０３の出力である“１８１（0xB5）”を出力する。一方、ＭＵＸ２０２の出力は、固定値０から倍率指定係数保持部１０６が保持した値に切り換わる。したがって、設定倍率に該当する出力画像データの構成画素間距離（ＤＬ）の値である“１０２（0x66）”が出力される。
累積加算器４０３は、前記ＭＵＸ４０１とＭＵＸ４０２との値の加算処理を行う。ＭＵＸ４０１の出力が“0xB5”であり、ＭＵＸ４０２の出力が“0x66”であるから、累積加算器２０３の出力は“0x11B”となる。したがって、この場合の累積加算器４０３の出力は、制御信号４０４が有意レベルで出力され、且つ、下位８ビットの値が“0x1B”となる。よって、演算係数１１４、１１３の出力はそれぞれ、“２７（0x1B）”、“２２９（0xE5）”となる。前記値は、図１２における第２出力画素（Ｄ１）の位相を示すものであり、図１２に図示のＰＨ１が、演算係数１１４の出力値（“0x1B”）に相当する。また、ＰＨ１が定まることにより、参照入力画素である画像データ１１９（Ｓ１）から出力第２画素Ｄ１までの距離は、入力画像データの構成画素間距離ＳＬからＰＨ１を減算することにより求まる。これは、演算係数１１３の出力値（“0xE5”）が相当する。
【０２０３】
累積加算器４０３から制御信号４０４が出力されるため、先端判定部４０６は先端画素の判定を行う。先端判定部４０６の判定処理は、制御信号４０４が入力されると先端画素判定信号１１０を出力することである。
【０２０４】
参照入力画素更新信号生成部４０７は、制御信号４０４をもとに制御信号１１２の出力を行うが、先端判定部４０６が制御信号１１０を出力するまでは、制御信号１１２の出力は行わない。したがって、出力第２画素（Ｄ１）演算時において、先端判定部４０６の制御信号１１０が有意レベルで出力されるが、このタイミングにおいては、同期制御の関係により、制御信号４０４によらず制御信号１１２の出力は行わない。
【０２０５】
参照画素位置制御部１０９は、第１出力画素演算時と同様に制御信号および演算係数を出力し、その出力タイミングにおいて制御信号１１６を画像データ演算部１０３に出力する。画像データ演算部１０３は、前記制御信号１１６を受け、出力画像データの演算を開始する。参照画素位置制御部１０９が制御信号１１６を出力した時点においては、制御信号１１０および１１２は出力されていないため、入力画素データの更新は行わない。つまり、データ保持部３０１および３０２のデータ更新は行わない。
【０２０６】
なお、データ保持部３０１、３０２の更新が行われない場合であっても、画像データ演算部１０３が、制御信号１１７を出力するようにしても良い。例えば、画像データ記憶部１０２に対するメモリアドレスを同じ値として、第１出力画素演算時と同じデータを取り込むようにしても良い。また、参照画素位置制御部１０９から参照入力画素の更新を示す制御信号１１２が出力されない場合は、制御信号１１７を出力しない構成にしても良い。
【０２０７】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号、および演算係数１１３、１１４をもとに、第２出力画素データ（Ｄ１）を算出する。具体的には、先端判定部４０６から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わる。後端判定部２０９からは制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。したがって、乗算器３０７は、演算係数１１４とＭＵＸ３０３の出力である画像データ１１８（Ｓ０）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３とＭＵＸ３０６の出力である画像データ１１９（Ｓ１）とで乗算を行う。乗算器３０７および３０８の出力値は、出力第１画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０２０８】
（第３出力画素（Ｄ２）の演算処理）
次に、出力画像の第３出力画素（Ｄ２）の演算に関して説明する。画像データ演算部１０３は、第２出力画素（Ｄ１）の演算時と同様、制御信号１１５を参照画素位置制御部１０９に対して出力する。参照画素位置制御部１０９は、画像データ演算部１０３からの制御信号１１５の入力を受けると、第３出力画素（Ｄ２）の演算に関する制御信号、および演算係数１１３、１１４を出力する。
【０２０９】
演算係数１１３は、第２出力画素演算時の累積加算器４０３の出力をもとに求められる。ＭＵＸ４０１の出力は、第２出力画素演算時から累積加算器４０３の出力であり、ＭＵＸ４０２は倍率指定係数保持部１０５である。したがって、累積加算器４０３は、ＭＵＸ４０１の出力値とＭＵＸ４０２の出力値とを加算する。具体的には、ＭＵＸ４０１の出力である“２７（0x1B）”とＭＵＸ４０２の出力である“１０２（0x66）”を加算し、“１２９（0x81）”を出力する。また、この時点における累積加算器４０３の出力値が定まることにより、減算器４０５の減算値が“１２７（0x7F）”と定まる。前記値は、図１３における第３出力画素（Ｄ２）の位相を示すものであり、図１３に図示のＰＨ２が相当する。また、ＰＨ２が定まることにより、参照入力画素である画像データ１１９（Ｓ１）から出力第３画素Ｄ２までの距離は、入力画像データの構成画素間距離ＳＬからＰＨ２を減算することにより求まる。
【０２１０】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号および演算係数１１３、１１４をもとに、第３出力画素（Ｄ２）を算出する。具体的には、先端判定部４０６から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わる。後端判定部４０９からは、制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。したがって、乗算器３０７は、演算係数１１４（“１２７”）とＭＵＸ３０３の出力である画像データ１１８（Ｓ０）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３（“１２９”）とＭＵＸ３０６の出力である画像データ１１９（Ｓ１）とで乗算を行う。乗算器３０７および３０８の出力値は、第１出力画素演算時および第２出力画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０２１１】
（第４出力画素（Ｄ３）の演算処理）
次に、第４出力画素（Ｄ３）の演算に関して説明する。画像データ演算部１０３は、第３出力画素（Ｄ２）の演算時と同様、制御信号１１５を参照画素位置制御部１０９に出力する。参照画素位置制御部１０９は、画像データ演算部１０３からの制御信号１１５の入力を受けると、第４出力画素（Ｄ３）の演算に関する制御信号および演算係数１１３、１１４を出力する。
【０２１２】
演算係数１１３は、第３出力画素演算時の累積加算器４０３の出力をもとに求められる。ＭＵＸ４０１の出力は、第３出力画素演算時から累積加算器４０３の出力であり、ＭＵＸ４０２は倍率指定係数保持部１０５である。したがって、累積加算器４０３は、ＭＵＸ４０１の出力値とＭＵＸ４０２の出力値とを加算する。具体的には、ＭＵＸ４０１の出力である“１２９（0x81）”とＭＵＸ４０２の出力である“１０２（0x66）”を加算し、“２３１（0xE7）”を出力する。また、この時点における累積加算器４０３の出力値が定まることにより、減算器４０５の減算値が“２５（0x19）”と定まる。前記値は、図１３における第４出力画素（Ｄ３）の位相を示すものであり、図１３に図示のＰＨ３が相当する。また、ＰＨ３が定まることにより、参照入力画素である画像データ１１９（Ｓ１）から第４出力画素Ｄ３までの距離は、入力画像データの構成画素間距離ＳＬからＰＨ３を減算することにより求まる。
【０２１３】
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号および演算係数１１３、１１４をもとに、第４出力画素（Ｄ３）を算出する。具体的には、先端判定部４０６から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わる。後端判定部４０９からは制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。したがって、乗算器３０７は、演算係数１１４（“２５”）とＭＵＸ３０３の出力である画像データ１１８（Ｓ０）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３（“２３１”）とＭＵＸ３０６の出力である画像データ１１９（Ｓ１）とで乗算を行う。乗算器３０７および３０８の出力値は、これまでの出力画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０２１４】
（第５出力画素（Ｄ４）の演算処理）
次に、第５出力画素（Ｄ４）の演算に関して説明する。画像データ演算部１０３は、第４出力画素（Ｄ３）の演算時と同様、制御信号１１７を参照画素位置制御部１０９に出力する。参照画素位置制御部１０９は、画像データ演算部１０３からの制御信号１１５の入力を受けると、第５出力画素（Ｄ４）の演算に関する制御信号および演算係数１１３、１１４を出力する。
【０２１５】
演算係数１１３は、第４出力画素演算時の累積加算器４０３の出力をもとに求められる。ＭＵＸ４０１の出力は、第４出力画素演算時からの累積加算器４０３の出力であり、ＭＵＸ４０２は倍率指定係数保持部１０５である。したがって、累積加算器４０３は、ＭＵＸ４０１の出力値とＭＵＸ４０２の出力値とを加算する。具体的には、ＭＵＸ４０１の出力である“２３１（0xE7）”とＭＵＸ４０２の出力である“１０２（0x66）”を加算する。加算結果は３３３（0x14D）を出力する。
【０２１６】
第５出力画素演算時における累積加算器４０３の加算結果により、累積加算器４０３からはキャリーが発生する。これは、参照入力画素更新信号生成部４０７に対する制御信号４０４の出力を意味する。先端判定部４０９の出力である制御信号１１０は、第２出力画素演算時に出力されていることから、参照入力画素更新信号生成部４０７は制御信号４０４を制御信号１１２として出力する。したがって、第５出力画素の演算時において、制御信号１１６が出力されるタイミングにおいては、制御信号１１０、１１２、および２つの演算係数が有意レベルとなって出力される。
【０２１７】
画像データ演算部１０３は、参照画素位置制御部１０９から前記制御信号および２つの演算係数を受け取ると、第５出力画素の演算処理を開始する。ただし、第５出力画素の演算時においては、これまでの出力画素演算時とは異なり、制御信号１１２が出力されている。制御信号１１２は、参照入力画素の更新を示すため、画像データ演算部１０３は、データ保持部３０１およびデータ保持部３０２に保持する入力画像データの更新を行う。
【０２１８】
入力画像データの更新は、画像データ演算部１０３が画像データ記憶部１０２に対して出力する制御信号１１７によって行われる。画像データ記憶部１０２は、画像データ演算部１０３からの参照入力画素更新を示す制御信号１１７を受けて、画像データ１１８および１１９を出力する。参照入力画素データの更新により、画像データ１１８は入力第２画素（Ｓ１）となり、画像データ１１９は入力第３画素（Ｓ２）となる。したがって、画像データ演算部１０３のデータ保持部３０１には画像データ１１８（Ｓ１）が保持され、データ保持部３０２には画像データ１１９（Ｓ２）が保持される。
【０２１９】
一方、第５出力画素演算時において、演算係数１１３は累積加算器４０３の演算結果が出力されている。つまり、キャリー発生による２５６を減算した値、つまり、加算結果“７７（0x4D）”が出力される。この値は、図１３におけるＰＨ４、すなわち、第２入力画素（Ｓ１）から第５出力画素（Ｄ４）までの位相を示している。また、ＰＨ４が定まることにより、第３入力画素（Ｓ２）から第５出力画素（Ｄ４）までの距離も、ＳＬからＰＨ４を減算することによって定まる。これは、減算器４０５の出力が相当し、“１７９（0xB3）”となる。
画像データ演算部１０３は、参照画素位置制御部１０９から出力される制御信号および演算係数１１３、１１４をもとに、第５出力画素データ（Ｄ４）を算出する。具体的には、先端判定部４０６から制御信号１１０が有意レベルで出力されるため、ＭＵＸ３０６の出力は画像データ１１９に切り換わる。後端判定部４０９からは制御信号１１１は出力されていないため、ＭＵＸ３０３の出力は画像データ１１８となる。したがって、乗算器３０７は、演算係数１１３（“１７９”）とＭＵＸ３０３の出力である画像データ１１８（Ｓ１）とで乗算演算を行う。また、乗算器３０８は、演算係数１１３（“７７”）とＭＵＸ３０６の出力である画像データ１１９（Ｓ２）とで乗算を行う。乗算器３０７および３０８の出力値は、これまでの出力画素演算時と同様に、加算器３０９により加算処理され、除算器３１０により除算演算される。
【０２２０】
このように、累積加算器４０３の演算結果を用いて参照入力画素の更新を制御し、また、参照入力画素位置と出力画素位置との位相を演算係数として出力することにより、画像データ演算部１０３は出力画素値の演算を行うことが出来る。
【０２２１】
（第１０出力画素（Ｄ９）の演算処理）
次に、後端判定部４０９の制御信号１１１の出力に関して説明する。参照入力画素更新信号生成部４０７は、累積加算器４０３のキャリーに応じて制御信号１１２を出力する。計数部４０８は、先端判定部４０６の出力である制御信号１１０が出力された後の制御信号１１２を計数する。本説明においては、入力画素は４画素であるため、計数部４０８による計数は“４”まで行われる。後端判定部４０９は、計数部４０８の出力値と入力画素数保持部１０７の保持値とを比較し、一致した場合に制御信号１１１を出力する。
【０２２２】
画像データ演算部１０３のデータ保持部３０１、３０２は、４回の参照入力画素データ更新により、その都度保持するデータが更新されている。本説明の例においては、４回の更新により第４入力画素データ（Ｓ３）がデータ保持部３０２に記憶されている。なお、この時点でのデータ保持部３０１に保持されるデータは、入力画素の中には存在しないため、更新前のデータあるいは無効データが保持されることとなる。
【０２２３】
制御信号１１１が出力されると、画像データ演算部１０３内部のＭＵＸ３０３の切り換えが行われる。つまり、データ保持部３０１に保持したデータではなく、仮想画素値保持部３０２に保持したデータがＭＵＸ３０３の出力として出力される。
【０２２４】
一方、ＭＵＸ３０６の出力は、先端判定部２０９が出力する制御信号１１０により、データ保持部３０４が保持した値となる。したがって、乗算器３０７は、ＭＵＸ３０３の出力、すなわち仮想画素値保持部３０２が保持した値と、その時点において参照画素位置制御部１０９が出力する演算係数１１４とで乗算演算を行う。また、同様に、乗算器３０８は、ＭＵＸ３０６の出力、すなわちデータ保持部３０４が保持した値と、その時点において参照画素位置制御部１０９が出力する演算係数１１３とで乗算演算を行う。
【０２２５】
出力画像データの後端における演算係数１１３および１１４は、初期位相を第１入力画素より前の仮想画素を基準に設定していることから、入力画像データ位置に対して、左右非対称に位相がずれることはない。つまり、出力画像データ後端における演算係数１１３、１１４も左右の対称性を保持する上で適正な位相を示すものとなる。
【０２２６】
したがって、４画素から構成され左右の端部画素が黒である入力画像（Ｓ０〜Ｓ３）は、図１２に示すように左右対称に２．５倍に拡大される（Ｄ０〜Ｄ９）。図１２からも明らかであるように、初期位相を入力第１画素より前の仮想画素を基準に設定することで、入力画像の対称性を保持したまま拡大処理を行うことが出来る。
【０２２７】
なお、拡大処理の終了は、画像データ演算部１０３によって出力された出力画素数と、ＣＰＵによって設定された出力画素数保持部１０８の保持データにて判定される。つまり、出力画素数を計数する計数部の値と出力画素数保持部１０８の保持データとを比較し、出力画素数が前記保持した値に達した時点で、拡大処理の完了とする。
【０２２８】
＜本実施形態による画像を２倍に拡大する場合の処理例＞
これまでは、図１２〜図１４を参照して、画像を２．５倍に拡大する場合の処理例における処理例を詳細に説明してきた。
【０２２９】
図１５では、画像を２倍に拡大する場合の処理例について説明する。
【０２３０】
図１５の例においては、出力画素間距離（ＤＬ）が入力画素間距離（ＳＬ）の半分であること、初期位相のＰＨ０がＳＬ−ＤＬ／２であること以外は、上記２．５倍の場合と基本的な動作は同じである。
【０２３１】
本実施形態の図１、図１１、図３の構成に従えば、入力画素データ（Ｓ０〜Ｓ３）に基づいて、左右両端の外側に仮想画素（ＤＳ０，ＤＳ１）を設けて仮想画素ＤＳ０からのプラスの初期位相ＰＨ０を設定する。そして、出力画素データ（Ｄ０〜Ｄ７）を挟む入力画素データ（Ｓ０〜Ｓ３）及び仮想画素（ＤＳ０，ＤＳ１）からの距離に応じて線形補間する。これにより、対称性を保持した高品質の出力画素データ（Ｄ０〜Ｄ７）からなる２倍の拡大（解像度変換）画像が提供できる。
【０２３２】
＜本実施形態の拡大（解像度変換）の２次元画像への適用例＞
なお、これまでの説明においては、説明を容易にするために１次元の画像データに関して説明を行ったが、本実施形態は２次元の画像データに対しても適用することが可能である。
【０２３３】
図１６に、本発明を２次元の画像データに適用した場合の概念図を示す。
【０２３４】
図１６において、実線の四角で示したものは入力画像の画素データ（Ｓ０〜Ｓ１１）である。なお、四角の中の濃さは画素のレベルを示しており、黒で示したものは高濃度（黒）、白で示したものは低濃度（白）であることを示している。したがって、入力画像は、周囲１画素（Ｓ０〜Ｓ４、Ｓ７〜Ｓ１１）が黒画素で構成され、中央の２画素（Ｓ５、Ｓ６）が白画素の合計１２画素で構成されている。また、入力画像の構成画素間距離をＳＬで示し、出力画像の主走査方向の構成画素間距離をＤＬＭ、副走査方向の構成画素間距離をＤＬＳで示している。拡大倍率の設定が、主走査方向と副走査方向とで同一の場合、ＤＬＭとＤＬＳは同じ値となる。また、点線の四角で示したものは仮想画素データであり、ＤＳ０、ＤＳ１、ＤＳ２、ＤＳ３で示している。なお、本発明を画像データに対して適用する場合、仮想画像データは全て同一の値とすることが多い。
【０２３５】
本発明を、２次元の画像データに適用した場合においても、主走査方向および副走査方向の初期位相の設定概念は、１次元の場合と同一である。つまり、入力画像データの主走査方向／副走査方向の画素数、拡大倍率によって生成される出力画像データの主走査方向／副走査方向の画素数、および、各々の構成画素間距離による値を設定する。
【０２３６】
図１６の例において、拡大倍率を主走査方向／副走査方向ともに２．５倍とすると、主走査方向の出力画素数は１０画素、副走査方向の画素数は７画素となる。入力画像の構成画素間距離ＳＬを２のべき乗である“２５６”とすると、出力画像の構成画素間距離ＤＬＭ、ＤＬＳは、式１４によって求まる。
【０２３７】
ＤＬＭ（ＤＬＳ）＝ＳＬ／拡大倍率＝２５６／２．５＝１０２…（式１４）
主走査方向の４画素、副走査方向の３画素の入力画像データを２．５倍に拡大し、主走査方向の１０画素、副走査方向の７画素の出力画像を求める場合、入力画像を構成する主走査方向の全画素数分の距離は、式４により“７６８”となる。また、同様に入力画像を構成する副走査方向の全画素数分の距離は“５１２”となる。一方、出力画像を構成する副走査方向の全画素数分の距離は、式５により“９１８”となる。また、出力画像を構成する副走査方向の全画素数分の距離は、“６１２”となる。
【０２３８】
したがって、入力画像データを構成する全画素数分の主走査方向距離と、出力画像を構成する全画素数分の主走査方向距離との差分は、式１５により求まる。また、入力画像データを構成する全画素数分の副走査方向距離と、出力画像を構成する全画素数分の副走査方向距離との差分は、式１６により求まる。
【０２３９】
９１８−７６８＝１５０            …（式１５）
６１２−５１２＝１００            …（式１６）
前記、式１５および式１６による演算結果は、入力画像データを構成する全画素数分の副走査方向距離と出力画像を構成する全画素数分の副走査方向距離との差分であるため、次に仮想画素データを基準とした値を求める。具体的には入力画像の構成画素間距離ＳＬから、前記式１５および式１６の演算結果の半分を減算すれば良い。
【０２４０】
したがって、設定する初期位相の値は、主走査方向ＰＨＭが“１８１”、副走査方向ＰＨＳが“２０６”となる。このように、主走査方向の画素数と副走査方向の画素数とが異なる入力画像である場合、本実施形態においては、主走査方向と副走査方向の拡大倍率が同一であっても、設定する初期位相の値は各方向で異なるものを設定する。
【０２４１】
本発明を、２次元の画像データに適用する場合、図１１に示した各構成要件は、主走査方向および副走査方向個別に構成される。つまり、累積加算器、先端判定部、参照入力画素更新信号生成部、計数部、および後端判定部は、画素が構成される方向別に構成され、各々独立で制御される。したがって、主走査方向の先端判定部や後端判定部は、１ライン分の画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当する制御信号がクリアされる。つまり、制御信号１１０や１１１はライン単位で機能する。また、副走査方向の先端判定部や後端判定部は、全入力画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当制御信号がクリアされる。
【０２４２】
＜本実施形態の画像拡大（解像度変換）処理の処理手順例＞
図１７は、本実施形態の画像拡大（解像度変換）処理の処理手順例を示すフローチャートである。かかる処理は、図１あるいは図１１、図３の機能ブロックを制御するあるいは実現するＣＰＵ（不図示）により実行される。
【０２４３】
入力画像データの構成画素数および拡大倍率が定まると、本実施形態の装置の各種設定を行うＣＰＵは、諸設定を行う。すなわち、ＣＰＵは、基準画素間係数保持部１０４、倍率指定係数保持部１０５、初期位相保持部１０６、入力画素数保持部１０７、出力画素数保持部１０８への設定を行い、拡大処理開始の起動をかける。
【０２４４】
ＣＰＵから拡大処理の起動がかかると、本実施形態の装置の処理部は拡大処理を開始する。画像データ演算部１０３は、参照画素位置制御部１０９に対し、各種制御信号の生成と線形補間演算に必要となる演算係数の出力とを要求する。参照画素位置制御部１０９は、前記要求に基づき位相演算を行う（ステップＳ２０１）。
【０２４５】
設定される初期位相は入力画素の前の仮想画素を基準とする。したがって、出力画像データの構成画素間距離を累積加算していった演算値がキャリーを含むまで、画像データ記憶部１０２から入力された第１入力画素データおよび仮想画素データ値を用いて最初の出力画素の拡大処理演算を行う（ステップＳ２０２）。
【０２４６】
累積加算出力として第１のキャリーが発生すると、先端判定部４０６は制御信号１１０を出力する（ステップＳ２０３）。先端判定部４０６による制御信号１１０が出力されると、仮想画素データ値は用いずに画像データ記憶部１０２から入力される画素データを用いて出力画素の演算を行う。なお、以降に関しては、累積加算出力のキャリーを参照入力画素の更新信号として扱う。
【０２４７】
画像データ演算部１０３は、参照画素位置制御部１０９からの参照入力画素の更新信号が出力されるまでは、参照入力画素の更新は行わない。つまり、位相演算を繰り返し行い、出力画素の演算を行う（ステップＳ２０４、Ｓ２０５）。参照入力画素更新信号が出力されると、画像データ演算部１０３は演算に用いる入力画素データを更新する。更新後も継続して、位相演算及び出力画素演算を行う。すなわち、画像データ記憶部１０２から次に参照する入力画素データを取り込み、出力画素演算を行う。
【０２４８】
先端判定部４０６の制御信号１１０の出力以降に生成される参照入力画素更新信号の数は、計数部４０８により計数される。本実施形態の装置は、計数部４０８による計数値がＣＰＵによって設定された入力画素数に達するまで、参照入力画素の更新、位相演算、出力画素演算を繰り返す（ステップＳ２０４〜Ｓ２０８）。
【０２４９】
計数部４０８の計数値がＣＰＵによって設定された入力画素数に達すると、後端判定部４０９は後端判定の制御信号１１１を出力する（ステップＳ２０９）。以降、画像データ演算部１０３による画素出力数がＣＰＵにより設定された値となるまで、位相演算及び出力画素演算を行い、最後の出力画素を出力する（ステップＳ２１０、Ｓ２１１）。なお、後端判定部４０９が出力された後は、最終入力画素データと仮想画素データを用いて、出力画素演算を行う。
【０２５０】
なお、実施形態２においても、画像拡大部（解像度変換部）をコンピュータで構成する場合は、図１０と同様の構成により実現可能である。
【０２５１】
＜実施形態２の効果＞
本実施形態２の装置においても、入力画像を構成する画素データの先端および後端部の線形補間演算時に、仮想画素データを用いて演算する。また、初期位相として設定する値は、入力画像を構成する第１画素と第２画素の間ではなく、仮想画素と入力第１画素の間としている。そして、設定する値は、入力画像データの構成画素間距離と出力画像データの構成画素間距離との差分をもとに算出した値としている。更に、その設定値は、実施形態１とは異なり、符号をもたない係数フォーマットとし累積加算器のキャリーを使用することとしている。これにより、演算処理部の構成を実施形態１の構成よりも更に容易にし、更に、入力画像データのもつ対称性を保持した拡大処理を実現している。
【０２５２】
なお、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、スキャナ、プリンタ、ＰＣ、複写機、複合機及びファクシミリ装置の如くである。
【０２５３】
また、本発明は、前述した実施形態の各機能を実現するソフトウエアプログラムを、システム若しくは装置に対して直接または遠隔から供給することによっても達成される。そして、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行する。
【０２５４】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の１つである。
【０２５５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【０２５６】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネット／イントラネットのウェブサイトからダウンロードしてもよい。すなわち、該ウェブサイトから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるウェブサイトからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【０２５７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配付してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネット／イントラネットを介してウェブサイトから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【０２５８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【０２５９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【０２６０】
【図１Ａ】本実施形態の拡大処理部（解像度変換部）の構成例を示す図である。
【図１Ｂ】本実施形態の拡大処理部を有する画像形成装置の概略構成例を示す図である。
【図２】実施形態１の参照画素位置制御部の構成例を示す図である。
【図３】本実施形態の画像データ演算部の構成例を示す図である。
【図４】実施形態１における２．５倍の拡大処理と初期位相設定とを説明する図である。
【図５】実施形態１における出力画素位置に対応した位相を示す図である。
【図６】実施形態１における初期位相設定データのフォーマット例を示す図である。
【図７】実施形態１における２倍の拡大処理と初期位相設定とを説明する図である。
【図８】実施形態１の拡大処理を２次元の画像データに適用した場合の例を示す図である。
【図９】実施形態１における動作手順例を示すフローチャートである。
【図１０】本実施形態の拡大処理部をコンピュータで実現した構成例を示す図である。
【図１１】実施形態２における参照画素位置制御部の構成例を示す図である。
【図１２】実施形態２における２．５倍の拡大処理と初期位相設定とを説明する図である。
【図１３】実施形態２における出力画素位置に対応した位相を示す図である。
【図１４】実施形態２における初期位相設定のフォーマット例を示す図である。
【図１５】実施形態２における２倍の拡大処理と初期位相設定とを説明する図である。
【図１６】実施形態２の拡大処理を２次元の画像データに適用した場合の例を示す図である。
【図１７】実施形態２における動作手順例を示すフローチャートである。
【図１８】従来のＳＰＣ法による拡大処理の例を示す図である。
【図１９】従来の線形補間法による拡大処理の例を示す図である。
【図２０】従来の線形補間法における初期位相を設定した場合の拡大処理の例を示す図である。
【図２１Ａ】従来の線形補間法を２次元の画像データに適用する場合の元の画像の例を示す図である。
【図２１Ｂ】従来の線形補間法を２次元の画像データに適用する場合の初期位相の無い拡大画像の例を示す図である。
【図２１Ｃ】従来の線形補間法を２次元の画像データに適用する場合の初期位相の有る拡大画像の例を示す図である。
【図１Ａ】
2010171622.tif 000003
【図１Ｂ】
2010171622.tif 000004
【図２】
2010171622.tif 000005
【図３】
2010171622.tif 000006
【図４】
2010171622.tif 000007
【図５】
2010171622.tif 000008
【図６】
2010171622.tif 000009
【図７】
2010171622.tif 000010
【図８】
2010171622.tif 000011
【図９】
2010171622.tif 000012
【図１０】
2010171622.tif 000013
【図１１】
2010171622.tif 000014
【図１２】
2010171622.tif 000015
【図１３】
2010171622.tif 000016
【図１４】
2010171622.tif 000017
【図１５】
2010171622.tif 000018
【図１６】
2010171622.tif 000019
【図１７】
2010171622.tif 000020
【図１８】
2010171622.tif 000021
【図１９】
2010171622.tif 000022
【図２０】
2010171622.tif 000023
【図２１Ａ】
2010171622.tif 000024
【図２１Ｂ】
2010171622.tif 000025
【図２１Ｃ】
2010171622.tif 000026