(57)【特許請求の範囲】
【請求項１】
原画像を格納する原画像メモリと、
原画像解像度および表示画像解像度により前記原画像の拡大縮小倍率を横方向と縦方向でそれぞれ計算し、前記拡大縮小倍率をそれぞれ出力する倍率設定部と、
表示装置の解像度と前記倍率設定部から得られた前記原画像の拡大縮小倍率と、仮想アドレスの基準となる基底アドレスと、によって仮想アドレスを生成する仮想アドレス生成部と、
前記仮想アドレスを実アドレスに変換するとともに、画素データの補間を行うための補間係数を出力する実アドレス変換部と、
実アドレスに基づいて前記原画像メモリから原画像の画素データを読み出し、前記実アドレス変換部からの前記補間係数を用いて表示画像データを生成して出力する画像補間部と、を備え、
前記倍率設定部は、表示画像解像度に対する原画像の倍率を横方向と縦方向に対してそれぞれ計算し、前記拡大縮小倍率を分数で表した場合の、前記分数の分母の値と分子の値を出力する構成であり、
前記倍率設定部において、前記分子の値を固定し、分母の値のみ可変とした倍率を出力することを特徴とする画像処理装置。
【請求項２】
前記倍率設定部において、前記分子の値を２のべき乗とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記仮想アドレス生成部は、前記拡大縮小倍率の分母の値が正の整数であるとき、前記基底アドレスから前記分母の値を増分値とした値の行あるいは値の列となる直交座標を含む仮想的アドレスを生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記仮想アドレス生成部は、前記拡大縮小倍率の分母の値が分数（以下、第２の分数）で表されるとき、前記第２の分数の分母の値を分解数として、前記第２の分数の分子の値を前記分解数の個数からなる正の整数値の和として分解し、前記基底アドレスから前記正の整数値を増分値とした値の行あるいは列となる直交座標を含む仮想的アドレスを生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
前記実アドレス変換部は、前記仮想アドレスの直交座標を横方向と縦方向それぞれの前記拡大縮小倍率の分子の値で割って得られる除算値の商を出力する処理を含むことを特徴とする請求項３又は４に記載の画像処理装置。
【請求項６】
前記実アドレス変換部は、前記仮想アドレスの直交座標を横方向と縦方向それぞれの前記拡大縮小倍率の分子の値で割って得られる剰余値を出力する処理を含むことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記画像補間部は、前記実アドレス空間の直交座標の画素データと、その近傍の複数の画素データを読み出し、前記補間係数を仮想アドレスにおける実アドレス空間の直交座標の画素データからの距離として画素データの補間を行なう処理を含むことを特徴とする請求項５又は６に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディジタル画像の拡大あるいは縮小を行うための画像処理装置に関する。
【背景技術】
【０００２】
近年、液晶ディスプレイのようなドットマトリックス型の画像表示装置が小型の携帯機器をはじめとして広く用いられている。このようなドットマトリックス型の表示装置では一般的に解像度が固定されているが、映像機器等への応用時にはサイズの異なる各種の映像入力を表示できることが望まれる。このためには、原画像である映像入力を出力装置の解像度に合わせて拡大または縮小を行うことが必要になる。
【０００３】
これを実現するための従来の画像処理装置を、図８を用いて説明する。画像処理装置は、ＣＰＵなどに接続されたデータバスから書き込まれた原画像を格納している原画像メモリ１と、原画像メモリ１から読み出されたビットマップの画像データを、拡大縮小倍率に基づき専用回路あるいはソフトウエアによる拡大縮小処理を行う画像処理部６と、拡大あるいは縮小を行った画像データを格納する出力用メモリ７と、出力用メモリ７から画像データを取り出すための読出し部８で構成されている。
【０００４】
この画像処理装置は、外部ＣＰＵや表示装置などの外部装置（図示せず）から画像出力要求があると、まず原画像メモリ１から原画像データが読み出され、読み出された原画像データを画像処理部６により出力解像度に合わせて、原画像の拡大あるいは縮小処理を行う。画像の拡大時は、原画像の拡大処理と補間処理が行われ、縮小時には画素の間引き処理により必要な画素だけが読み出される。その拡大画像あるいは縮小画像の画像データは、出力用メモリ７にいったん取り込まれた後、拡大画像あるいは縮小画像の画像データが間引き読出し部８から出力された表示データ読出しイネーブル信号と間引きされたアドレスによって、出力用メモリ７から読み出され、表示装置などの外部装置に送られる。
【０００５】
このとき用いられる画像縮小時の処理に対しては、ドット単位の細かな縮小を行うために、画像データを予め補間により拡大してからドット単位毎に間引いて縮小する技術が提案され、特開平２−１７４４６３号公報に開示されている。この技術は、拡大すべき画像データが補間回路に入力されると、3点ずつの画素データがラッチ回路にセットされ、アドレス信号により所望の拡大縮小倍率となるように補間データが読み出されることで画像の拡大が行われる。そして、その拡大された画像データを間引き回路にて間引く際には、シフトレジスタに間引かれたクロックパルスを与えることで、ドット単位で間引いた縮小画像データを次段のシフトレジスタにセットし、イメージメモリに蓄積して画像を縮小する技術である。
【特許文献１】特開平２−１７４４６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の画像処理装置は、表示装置の解像度に対応した大きさをもつ出力用メモリが必要であるため、ハードウェア規模が増大し、機器コストの上昇や消費電力の増大という問題が生じる。また、画像の縮小時に原画像の画素から単純に間引く処理だけでは、原画像の画素のうち参照されない画素が存在する。そのため、例えば原画像の中に細い線がある場合、縮小後にその線が消失したり、滑らかな線にならないという問題点がある。
【０００７】
また、特開平２−１７４４６３号の発明では、原画像をいったん拡大する段階で、間引きされる予定の画素まで補間がされてしまうので、不必要な余分な処理がされてしまうため、処理時間と消費電力の増大に直結する問題点があった。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、原画像を格納する原画像メモリと、原画像解像度および表示画像解像度により前記原画像の拡大縮小倍率を横方向と縦方向でそれぞれ計算し、前記拡大縮小倍率をそれぞれ出力する倍率設定部と、表示装置の解像度と前記倍率設定部から得られた前記原画像の拡大縮小倍率と、仮想アドレスの基準となる基底アドレスと、によって仮想アドレスを生成する仮想アドレス生成部と、前記仮想アドレスを実アドレスに変換するとともに、画素データの補間を行うための補間係数を出力する実アドレス変換部と、実アドレスに基づいて前記原画像メモリから原画像の画素データを読み出し、前記実アドレス変換部からの前記補間係数を用いて表示画像データを生成して出力する画像補間部と、を備えて構成することを特徴としている。
【０００９】
このような構成とすることにより、画像出力用のメモリを必要としないで、原画像を表示画像の任意の解像度に拡大縮小できる。
【００１０】
このとき、倍率設定部は、表示画像解像度に対する原画像の倍率を横方向と縦方向に対してそれぞれ計算し、その倍率を分数値で表し、前記分数の分母の値と分子の値を出力するものとすることが望ましい。このような構成とすることにより、原画像の倍率が非整数倍であっても、その分子と分母が整数であるため、分母は仮想アドレスの形成、分子は仮想アドレスから実アドレス変換、に使用するための計算用の値が整数値として得られる。
【００１１】
また、倍率設定部において、分子の値を固定し、分母の値のみ可変とした倍率を出力してもよい。また、必要に応じてその固定された分子の値を２のべき乗とするとよい。このような構成とすることにより、実アドレス変換部での仮想アドレスから実アドレスへ変換する時に必要な乗除算はシフト演算で実現できるため、一般的な複数段のシフトレジスタで実現でき、回路構成が簡単になる。
【００１２】
また、仮想アドレス生成部は、拡大縮小倍率の分母の値が正の整数である時、基底アドレスから前記分母の値を増分値とした直交座標を含む仮想的アドレスを生成するように構成するとよい。このような構成とすることにより、画素補間を行なうための仮想アドレスの直交座標が簡単に得られる。
【００１３】
また、前記倍率の分母の値が分数で表されるとき、その分数の分子の値を分数の分母の値が正の整数値の個数となるように分解し、基底アドレスからそれらの正の整数値の間隔を増分値とした直交座標含む仮想的アドレスを生成するとよい。このような構成とすることにより、拡大縮小倍率の分母が整数でなくても、整数の座標を含んだ仮想アドレスを生成することができる。
【００１４】
また、実アドレス変換部は、仮想アドレスの直交座標を横方向と縦方向それぞれの倍率の分子の値で割って得られる除算値の商を、原画像メモリの実アドレス上の画素の直交座標とするとよい。このような構成とすることにより、仮想アドレスの直交座標上の画素が補間される原点となる原画像の実アドレス上の画素の直交座標を整数の座標で得ることができるため、座標計算の処理は簡単になる。
【００１５】
また、仮想アドレスの直交座標を横方向と縦方向それぞれの倍率の分子の値で割って得られる剰余値を、画像補間に使用される横方向と縦方向でのそれぞれの補間係数とするとよい。このような構成とすることにより、補間係数は整数の値で得ることができる。
【００１６】
また、画像補間部は、実アドレス空間の直交座標の画素データと、その近傍の複数の画素データを読み出し、補間係数を仮想アドレスにおける複数の画素の直交座標からの距離として複数の画素から画像補間を行ない、画像補間された画像データを表示画像データとして出力するとよい。このような構成とすることにより、実アドレス空間の直交座標と、その直交座標の画素データと、を用いて精度の高い計算での画像補間が実現できる。
【発明の効果】
【００１７】
本発明により、小規模な回路でより良い画質の拡大あるいは縮小表示画像が得られる。
【発明を実施するための最良の形態】
【００１８】
図１は本実施形態の画像処理装置の基本構成を示す。本実施形態の画像処理装置は、データバスから書き込まれた原画像を格納している原画像メモリ１と、原画像の解像度と表示画像の解像度により原画像の拡大縮小倍率を横方向と縦方向でそれぞれ計算し、その拡大縮小倍率を分数で表した後に分子の値と分母の値をそれぞれ出力する倍率設定部２と、表示装置（図示せず）から出力した画像の読み出し開始信号がアクティブになると、表示装置の解像度と倍率設定部２から得られた原画像の拡大縮小倍率を用いて仮想アドレスを生成し、表示画像の画素データを読み出すためのイネーブル信号を生成する仮想アドレス生成部３と、仮想アドレスを原画像メモリへ出力する実アドレスに変換し、画素データの補間を行うための補間係数を出力する実アドレス変換部４と、実アドレスに基づいて原画像メモリから原画像の画素データを読み出し、実アドレス変換部からの補間係数を用いて補間画素の生成を行い、その補間画素を表示画像データとして出力する画像補間部５で構成されている。
【００１９】
倍率設定部２に入力される原画像および表示画像の解像度は、外部のＣＰＵによって与えられる。図１に記載されている信号ＭＸとＭＹは、倍率設定部２から出力される横方向と縦方向それぞれで計算されて得られた分子の値である。信号ＪＸとＪＹは、横方向と縦方向それぞれで計算されて得られた分母の値である。信号ＳＸとＳＹは、画像データを補間するために使用される横方向と縦方向それぞれの補間係数である。これらの信号の生成方法については後述する。仮想アドレス生成部３で生成されるアドレスは、メモリやレジスタなどの記憶装置のアドレスとは直接対応していないことから、仮想アドレスとして扱う。画像の縮小は、１より小さい倍率での画像の拡大を意味することとする。
【００２０】
次に、図２に示すフローチャートに基づいて本発明の画像読出装置の動作フローについて説明する。最初に、倍率設定部2に原画像解像度と表示画像解像度が入力される。これは装置外部のＣＰＵが倍率設定部2に備えられたレジスタに解像度を書き込む（Ｓ１）などの方法によって行われる。
【００２１】
次に表示装置の走査に伴って表示装置から画素の読み出し開始信号がイネーブルになる（Ｓ２）。そして、仮想アドレス生成部3において仮想アドレス内で最初に読み出される画素を指す基底アドレスが参照された後、その基底アドレスを原点として、表示画像に対応する仮想アドレスを生成する。（Ｓ３）
次に、その画素の仮想アドレスを実アドレス変換部４にて原画像メモリ１を読み出すための実アドレスに変換する（Ｓ４）。そして、原画像メモリ１から対応する実アドレス上の画素データとそのアドレスの近傍にある複数の原画像の画素データを読み出し（Ｓ５）、画像補間部５にてこれらの複数の原画像の画素から補間画素を生成し（Ｓ６）、それぞれの場合の画素を出力する（Ｓ７）。次に仮想アドレスが出力すべき画素のうちの最終の画素を指しているかどうかの判定を行い（Ｓ８）、仮想アドレスが最終の画素を指していない場合は仮想アドレスをインクリメント（Ｓ９）してＳ５に戻って、仮想アドレスが最終画素を指すまで、つまり表示画像の全画素が出力されるまで繰り返される。
【００２２】
次に本発明の画像処理装置の動作について詳細に説明する。
【００２３】
まず、倍率設定部２における倍率の設定動作について説明する。原画像の拡大縮小倍率は、倍率設定部２で計算される。その計算は、原画像の解像度、表示画像解像度を用いて行われ、拡大縮小倍率は、横方向および縦方向のそれぞれについて（表示画像の解像度）／（原画像の解像度）で得られる。ここで、前記の横方向および縦方向のそれぞれの拡大縮小倍率は、ＭＸ／ＪＸ、ＭＹ／ＪＹとなる分数で表すことができる。なお、ＭＸ／ＪＸ及びＭＹ／ＪＹは、分子の値と分母の値を約分したものでも構わないが、後述で記載されている通り、可能な限り分子の値ＪＸ、ＪＹが２のべき乗になるような分数であることが望ましい。また、ＭＸ、ＪＸ、MY、ＪYは、共に１以上の整数である。
【００２４】
次に前述の方法に従って、表示画像の解像度に対する原画像の拡大縮小倍率の計算例について説明する。原画像と表示装置のそれぞれの解像度として８００ドット×６００ドット、１２８０ドット×９６０ドットが倍率設定部２に入力されたとする。すると、拡大縮小倍率は横方向と縦方向共に８／５倍になり、ＭＸ＝ＭＹ＝８、ＪＸ＝ＪＹ＝５と計算される。
【００２５】
もう１つの例として、原画像と表示装置のそれぞれの解像度が８００ドット×６００ドット、１６００ドット×１２００ドットが倍率設定部２に入力された場合は、拡大縮小倍率は横方向と縦方向共に２倍になり、ＭＸ＝ＭＹ＝２、ＪＸ＝ＪＹ＝１と計算される。
【００２６】
さらにもう１つの例として、原画像と表示装置のそれぞれの解像度が１６００ドット×１２００ドット、８００ドット×６００ドットが倍率設定部２に入力された場合、拡大縮小倍率は横方向と縦方向共に１／２倍になり、分子の値と分母の値それぞれ２倍して、ＭＸ＝ＭＹ＝２、ＪＸ＝ＪＹ＝４と計算される。
【００２７】
次に、仮想アドレス生成部３で行なわれる仮想アドレスの生成について説明を行う。ここでは、仮想アドレスに対応した直交座標を用いて説明する。仮想アドレスの直交座標を（ＶＸ，ＶＹ）、読み出し開始アドレス（基底アドレス）に対応する直交座標を（ＢＸ，ＢＹ）とすると、仮想アドレスの直交座標（ＶＸ，ＶＹ）は、この基底アドレス（ＢＸ，ＢＹ）を基準として、横方向と縦方向それぞれの拡大縮小倍率の分母ＪＸ、ＪＹを増分値として表すことができ、
ＶＸ＝ＢＸ＋ＪＸ×ｘ
ＶＹ＝ＢＹ＋ＪＹ×ｙ
となる。ここで、基底アドレスには（０，０）を与えるが、基底アドレスは任意のアドレスを与えてよい。但し、アドレス値は固定しておくことが望ましい。
【００２８】
また、上記式においてｘは横方向の座標変数で、その範囲は０≦ｘ≦（表示画像の横方向の解像度−１）となる整数である。また、ｙは縦方向の座標変数で、その範囲は０≦ｙ≦（表示画像の縦方向の解像度−１）となる整数の変数である。よって、仮想アドレスの直交座標は、この変数（ｘ，ｙ）を範囲内の全ての整数に対して得ることができる。
【００２９】
座標変数ｘ、ｙのインクリメント方法は様々考えられるが、一般的な方法として次のような方法がある。基底アドレスを（ｘ，ｙ）＝（０，０）とすれば、上記式より仮想アドレス（ＶＸ，ＶＹ）＝（ＢＸ，ＢＹ）から開始し、ｘが最大値になるまでｘを１ずつインクリメントしていく。そして、ｘが最大値つまりｘ＝（表示画像の横方向の解像度−１）になるたびに、ｘを０に戻し、それと同時にｙを１インクリメントさせ、ｘを再び１ずつインクリメントしていく。以後、同様のｘとｙのインクリメントを行い、ｘとｙが共に最大値、つまりｘ＝（表示画像の横方向の解像度−１）かつｙ＝（表示画像の縦方向の解像度−１）になるまで繰り返し行うような座標を生成する。以上のようにして、表示画像の解像度のドット数の画素を形成するような仮想アドレスの座標を得ることができる。
【００３０】
仮想アドレスを生成する例として、図３のように原画像と表示画像のそれぞれの解像度が６ドット×４ドット、１２ドット×８ドットである場合、拡大縮小倍率は横方向と縦方向共に２倍になり、ＪＸ＝ＪＹ＝１を得る。基底アドレスを（０，０）とすると、仮想アドレス（ＶＸ，ＶＹ）は、
ＶＸ＝０＋１×ｘ＝ｘ  （ただし、０≦ｘ≦１１）
ＶＹ＝０＋１×ｙ＝ｙ  （ただし、０≦ｙ≦７）
となる。
【００３１】
また、別の例として図４のように原画像と表示画像のそれぞれの解像度が６ドット×４ドット、８ドット×６ドットである場合は、拡大縮小倍率が横方向と縦方向それぞれ４／３倍、３／２倍になり、ＪＸ＝３、ＪＹ＝２を得る。基底アドレスを（１，０）とすれば、仮想アドレス（ＶＸ，ＶＹ）は、ＶＸ＝１＋３×ｘ（ただし、０≦ｘ≦７）
ＶＹ＝０＋２×ｙ＝２×ｙ  （ただし、０≦ｙ≦５）
となる。
【００３２】
ここで、一般的なアドレスと直交座標との相互変換方法について述べる。まず、この相互変換方法は、読出される座標空間内の基底アドレスと画像の横方向の解像度が既知であれば容易に実現できる。例えば、Ｘ、Ｙを画像中の任意のドットの直交座標、Ｐをそのドットのアドレス、Ｂを基底アドレス、Ｗを画像の横方向の解像度（幅）とすると、直交座標からアドレスへは、
Ｐ =Ｂ＋Ｙ×Ｗ＋Ｘ
これとは逆にアドレスから直交座標へは
Ｙ＝（Ｐ−Ｂ）／Ｗ
Ｘ＝（Ｐ−Ｂ）％Ｗ
で変換できる。ここで／は整数の除算の商、％は整数除算での剰余を表す。アドレスおよび座標が２進数で表され、かつＷが２のべき乗の場合、乗除算はシフト演算で実現できるため、一般的な複数段のシフトレジスタで実現でき、回路構成が簡単になり、実装面積の縮小化に有効である。なお、Ｗが２のべき乗でない場合はＷより大きな２のべき乗数を新たなＷとして横方法の解像度と規定するとよい。だだし、元のＷから新たなＷの間に生成される不要な空間は、画像処理には使用されない。以上の変換方法を用いれば、原画像および仮想アドレス空間にもアドレスと直交座標との相互変換方法が適応できる。
【００３３】
次に生成された仮想アドレスを、画像メモリ１から原画像を読み出す実アドレスに変換するアドレス変換部４の処理について説明する。実アドレス空間の直交座標は、仮想アドレスの直交座標（ＶＸ，ＶＹ）を、横方向および縦方向にそれぞれＭＸ、ＭＹで割った除算の商で求められる。つまり実アドレス空間での直交座標は（ＶＸ／ＭＸ，ＶＹ／ＭＹ）となる商で表現できる。アドレス変換部４は、この除算の商をアドレスに変換し、それを実アドレスとして出力すると同時にその除算の剰余を補間係数として生成する。この補間係数を横方向および縦方向に対してそれぞれＳＸ、ＳＹとすると、
ＳＸ＝ＶＸ％ＭＸ
ＳＹ＝ＶＹ％ＭＹ
となる。また、実アドレス空間上の直交座標（ＶＸ／ＭＸ，ＶＹ／ＭＹ）を、前述に記載された一般的なアドレスと直交座標との相互変換方法によって実アドレスに変換を行なう。この実アドレスによって、原画像メモリ１から原画像の画素データが読み出される。この画素データと補間係数（ＳＸ，ＳＹ）は画像処理部５に入力される。
【００３４】
画像処理部５は、原画像メモリ１から読み出した画素データを基に補間係数（ＳＸ，ＳＹ）に従って補間された画素データを生成し、これを仮想アドレスの直交座標（ＶＸ，ＶＹ）における画素データとして出力する。その画素データは、表示画像データとなる。
【００３５】
画像の補間手段は様々あるが、４点（横２点×縦２点）を用いた線形補間の場合を例にすると、画像処理部５は、原画像読み出しイネーブルがアクティブになると、原画像メモリ１から実アドレス空間の直交座標（ＶＸ／ＭＸ，ＶＹ／ＭＹ）の画素と、その近傍画素として３つの直交座標（（ＶＸ／ＭＸ）＋１，ＶＹ／ＭＹ）、（ＶＸ／ＭＸ，（ＶＹ／ＭＹ）＋１）、（（ＶＸ／ＭＸ）＋１，（ＶＹ／ＭＹ）＋１）の画素、計４点の画素データを読み出す。これらの画素データをそれぞれＰ００、Ｐ１０、Ｐ０１、Ｐ１１とすると、画像処理部５で仮想アドレスの（ＶＸ，ＶＹ）における画素データＰを
Ｐ＝（（Ｐ００×（ＭＸ−ＳＸ）＋Ｐ１０×ＳＸ）×（ＭＹ−ＳＹ）
＋（Ｐ０１×（ＭＸ−ＳＸ）＋Ｐ１１×ＳＸ）×ＳＹ）／（ＭＸ×ＭＹ）
として出力する。なお、拡大された画像の縁付近は補間対象の画素が存在しない場合があるが、その場合は近傍の画素データをそのまま複製するものとする。
【００３６】
この例では、原画像の全ての画素を使い切った処理を行うために、１／２倍以上の拡大縮小倍率が理想的である。倍率が１／２より小さい場合、出力にまったく使用されない原画像の画素が存在するため原画像の持つ情報が欠落してしまう。そのため、一般的に縦（横)方向にN点（Ｎは、１以上の整数値）の画素を用いた補間手段を用いる場合、情報の欠落を防ぐためには縦（横)方向の倍率を１／Ｎ以上に制限する必要がある。この場合、最小倍率１／Ｎ時の基底アドレスの直交座標は、縦（横）方向のＮ点の中心座標とする。ただし、その中心座標が分数になる場合は、その分数の分子と分母に同一の２のべき乗数をかけた座標空間にする必要ある。例えば、横方向と縦方向が共に１／２倍の時、２点×２点の４点補間（（０，０）、（１，０）、（０，１）、（１，１）を用いた補間）の中心座標は、通常だと(１／２，１／２)となるため、分子と分母にそれぞれ２をかけて、（１，１）とすればよい。この場合、横（縦）方向の倍率は、２／４倍となる。
【００３７】
例えば、横方向と縦方向の倍率がそれぞれ１／３倍、１／５倍となる場合、基底アドレスの直交座標は、横方向では３点の中心かつ縦方向では５点の中心となる座標、つまり１５点の中心となる座標とする。
【００３８】
また、前述の補間手段を用いる場合、ＳＸ＝ＳＹ＝０のとき出力Pは常にＰ００に等しくなる。従ってこの場合、原画像メモリ１から（ＶＸ／ＭＸ，ＶＹ／ＭＹ）に対応する画素Ｐ００のみを読み出してこれをそのまま出力し、ＳＸ≠０またはＳＹ≠０の場合のみ前述の補間手段を用いるようにしてもよい。
【００３９】
このような補間手段を用いた場合の具体例として、原画像の拡大縮小倍率が整数倍である場合について図５を用いて説明し、非整数倍である場合について図６を用いて説明する。
【００４０】
図５は、原画像と表示装置のそれぞれの解像度が６ドット×４ドット、１８ドット×１２ドットの場合を示している。このとき、ＪＸ＝ＪＹ＝１になる。仮想アドレスは図５（ｂ）になる。仮想アドレス上の全てのドットの直交座標のＸ成分およびＹ成分をそれぞれ３で除算し、それぞれの除算の剰余がＳＸ＝ＳＹ＝０となった場合、除算結果と画像メモリ１の原画像データの座標と一致する画素データを、画像補間を行わずそのまま出力する。除算の剰余ＳＸ≠０またはＳＹ≠０の場合は、除算結果に一致する原画像の座標の画素とその近傍の画素データを読み出し、上記補間手段を用いて画像補間を行った後に、その補間された画素データを出力する。
【００４１】
例えば、図５（ｂ）に示されている仮想アドレスの直交座標（６，３）の画素ａのデータの生成を例にすると、横方向および縦方向それぞれで直交座標を仮想拡大縮小倍率である３で除算すると、除算結果の商が（２，１）で、その剰余結果が（０，０）つまり補間係数が（０，０）であるため、実アドレス上の直交座標（２，１）の画素Ｉのデータがそのまま読み出され、補間なしの状態で表示画像の画素データとなる。さらに、図５（ｂ）で示されている仮想アドレスの直交座標（５，７）の画素ｂの生成を例にすると、横方向および縦方向それぞれで直交座標を仮想拡大縮小倍率である３で除算すると、除算結果の商が（１，２）で剰余結果が（２，１）となる。この除算結果の商（１，２）は、原画像の直交座標では画素Ｎに相当し、この画素Ｎの画素データを基準に画素Ｎの近傍の画素データを用いて補間を行う。補間部として前述の線形補間を用いる場合は、画素Ｎと、その近傍画素として画素Ｏ、画素Ｔ、画素Ｕの計4点の画素データを読み出す。画素Ｎ、Ｏ、Ｔ、Ｕの画素データをそれぞれＰＮ、ＰＯ、ＰＴ、ＰＵとすると画素ｂの画素データＰは、
Ｐ＝（（ＰＮ×１＋ＰＯ×２）×２＋（ＰＴ×１＋ＰＵ×２）×１）／（３×３）
として出力する。
【００４２】
次に図６を用いて、表示画像が原画像の非整数倍の拡大制御について説明する。原画像と表示画像のそれぞれの解像度が６ドット×４ドット、８ドット×６ドットである場合、拡大縮小倍率が横方向および縦方向それぞれ４／３倍、３／２倍となり、ＪＸ＝３、ＪＹ＝２となる。基底アドレスの直交座標を（１，０）とした場合、仮想アドレス空間で表示に使用するドットを仮想アドレスの直交座標中に表示すると、図６（ｂ）の太線の四角で囲まれた部分になる。表示画像は、その太線の四角で囲まれた部分を出力したものであり、図６（ｃ）の大文字のアルファベットで示されている補間なしの画素、および小文字のアルファベットで示されている画素は補間された画素となる。
【００４３】
次に図７を用いて、表示画像が原画像の１／２倍の縮小制御について説明する。原画像と表示装置のそれぞれの解像度が８ドット×６ドット、４ドット×３ドットである場合、拡大縮小倍率が横方向および縦方向共に１／２倍であり、この倍率が横２点×縦２点となる４点補間の最小倍率である。この倍率において、ＭＸ＝ＭＹ＝１、ＪＸ＝ＪＹ＝２とすると、最も良好な解像度を実現する基底アドレスの直交座標は（１／２、１／２）となり、非整数の座標になる。そこで、ＭＸ＝ＭＹ＝２、ＪＸ＝ＪＹ＝４となる仮想アドレスを形成すると、図７（ｂ）のように、太線の四角で囲まれた画素が表示される画素となる。ここでは、原画像の画素を全てが補間に使われるようにするために、補間に使われる４点の画素の中心（１，１）を基底座標としている。表示画像は図７（ｃ）のように、全ての画素が小文字のアルファベットで示されているため、全て補間された画素となる。
【００４４】
ところで、前述の縦横2点ずつ、計4点を使用する線形補間では補間の際に除算が必要であるが、一般的に除数を任意に指定できる除算回路は非常に複雑である。回路規模を抑えるためにはこの除数すなわちＭＸ、ＭＹを定数、特に2のべき乗数とする方法が有効である。この場合、1つの画素が重複して複数回出力されることによる画質の劣化を生じさせないためにはＪＸおよびＪＹが1を下回ってはならず、したがって最大の倍率は縦と横それぞれＭＸ倍、ＭＹ倍に制限される。例えば、設計上ＭＸ＝ＭＹ＝４と固定した場合、縦方向と横方向の拡大縮小倍率がそれぞれ２倍、４倍で画像処理を行う時、ＪＸ＝２、ＪＹ＝１となる仮想アドレスを想定する。
【００４５】
また、ＭＸとＭＹを定数とした場合、拡大縮小倍率によっては、計算上ＪＸあるいはＪＹは１以上の整数だけでなく、非整数になることもあり、この非整数を分数で表すこととする。ここで、この非整数の時の仮想アドレスの生成方法を横方向の座標を例にして、説明を行う。
【００４６】
ＪＸが非整数になるとすると、ＪＸ＝ＡＸ／ＢＸで表すことができる。ここでＡＸとＢＸはともに正の整数値で、それぞれがＪＸの分子の値およびＪＸの分母の値であり、ＡＸ≧ＢＸを満たすものとする。この場合の仮想アドレスの生成方法は、次の通りである。ＡＸを、ＢＸ個の正の整数値に分解し、この分解された正の整数値を仮想アドレスの直交座標の増分値とし、それぞれの方向に合計が表示画像の解像度に相当する個数になるまでこれらの間隔になるまで仮想アドレスを繰り返して生成する。この正の整数値の分解は、できるだけ均等になるのが理想である。前述は横方向について述べているが、縦方向についても同様であり、前述において「Ｘ」を「Ｙ」に置き換えて考えるとよい。
【００４７】
例えば、設計上ＭＸ＝ＭＹ＝４と固定した場合、縦方向と横方向の拡大縮小倍率がそれぞれ３／２倍、５／３倍で画像処理を行う時、ＪＸ＝８／３、ＪＹ＝１２／５となる。この場合、８を３個の数にできるだけ均等な正の整数値に分解すると、３、３、２（もちろん、３、２、３でも良いし、２、３、３でも良い。）になり、また１２を５個の数にできるだけ均等な正の整数値に分解すると、３、３、２、２、２（もちろん、３が二つ、２が三つの組み合わせであれば他の組み合わせでも良い。）になる。よって、仮想アドレスの直交座標を得るための座標の間隔は、横方向に３、３、２、縦方向に３、３、２、２、２を増分値として、それぞれの方向に合計が表示画像の解像度に達するまで仮想アドレスの間隔を繰り返して生成すればよい。
【００４８】
以上のように、本発明により、小規模な回路でより良い画質の拡大あるいは縮小画像が得られる。
【図面の簡単な説明】
【００４９】
【図１】本発明の画像処理装置の構成図である。
【図２】本発明の画像処理装置の動作フローチャートである。
【図３】原画像の整数倍拡大となる仮想アドレスを説明する図である。
【図４】原画像の非整数倍拡大となる仮想アドレスを説明する図である。
【図５】補間手段を用いて原画像を整数倍拡大する場合を説明する図である。
【図６】補間手段を用いて原画像を非整数倍拡大する場合を説明する図である。
【図７】原画像の１／２倍となる表示画像作成する場合の例を説明する図である。
【図８】従来の画像処理装置の構成図である。
【符号の説明】
【００５０】
１  原画像メモリ
２  倍率設定部
３  仮想アドレス生成部
４  実アドレス生成部
５  画像処理部
６  出力用メモリ
７  読出し回路
２１  原画像解像度レジスタ
２２  表示画像解像度レジスタ
２３  倍率設定部
５１  原画像読出し部
５２  画像補間部
【図１】
0004728744.tif 000002
【図２】
0004728744.tif 000003
【図３】
0004728744.tif 000004
【図４】
0004728744.tif 000005
【図５】
0004728744.tif 000006
【図６】
0004728744.tif 000007
【図７】
0004728744.tif 000008
【図８】
0004728744.tif 000009