(57)【要約】【課題】  処理後の画像の劣化を防止できる画像処理装置、画像処理方法、表示コントローラ及び電子機器を提供する。【解決手段】  画像処理装置１００は、入力画像を拡大又は縮小する倍率の逆数が設定される倍率レジスタ１０と、倍率の逆数を累積加算するアキュームレータ３０と、アキュームレータ３０の初期値が設定される初期値設定レジスタ３２と、倍率の逆数に基づいて画像の拡大又は縮小処理を行うシームレス画素処理部２０とを含む。倍率の逆数の整数部が０のとき、シームレス画素処理部２０が、拡大処理後の画像の画素データを出力する。倍率の逆数の整数部が０ではないとき、シームレス画素処理部２０が、アキュームレータ３０の累積加算結果に基づいて、入力画像を構成する画素単位に間引きすべきか否かを指定するバリッド信号と縮小処理後の画像の画素データとを出力する。【選択図】      図１
2006251862.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の拡大及び縮小処理を行うための画像処理装置であって、
前記入力画像を拡大又は縮小する倍率の逆数が設定される倍率レジスタと、
前記倍率の逆数を累積加算するアキュームレータと、
前記アキュームレータの初期値が設定される初期値設定レジスタと、
前記倍率の逆数に基づいて画像の拡大又は縮小処理を行うシームレス画素処理部とを含み、
前記アキュームレータが、
前記初期値に前記倍率の逆数を加算した後に前記倍率の逆数を累積加算し、
前記倍率の逆数の整数部が０のとき、前記シームレス画素処理部が、入力画像に対して行われた拡大処理後の画像の画素データを出力し、
前記倍率の逆数の整数部が０ではないとき、前記シームレス画素処理部が、前記アキュームレータの累積加算結果に基づいて、前記入力画像を構成する画素単位に間引きすべきか否かを指定するバリッド信号を出力すると共に、前記入力画像に対して行われた縮小処理後の画像の画素データを出力することを特徴とする画像処理装置。
【請求項２】
請求項１において、
前記シームレス画素処理部が、
前記入力画像の画素データと前記アキュームレータの出力とに基づいて積和演算を行って前記拡大処理又は縮小処理後の画素データを生成するフィルタ演算部を含み、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０ではないとき、
前記フィルタ演算部の処理対象の画素データを更新し、該更新後の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０のとき、
前記フィルタ演算部の処理対象の画素データを更新することなく、前回の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０ではないとき、
前記累積加算結果の整数部をデクリメントすると共に、前記フィルタ演算部の出力を更新せず、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０のとき、
前記倍率の逆数と前記アキュームレータの出力との加算結果の整数部をデクリメントすると共に、前記フィルタ演算部の処理対象の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記縮小処理後の画像の画素データを生成することを特徴とする画像処理装置。
【請求項３】
入力画像の拡大及び縮小処理を行うための画像処理装置であって、
前記入力画像を拡大又は縮小する倍率の逆数が設定される倍率レジスタと、
前記倍率の逆数を累積加算するアキュームレータと、
前記アキュームレータの初期値が設定される初期値設定レジスタと、
前記倍率の逆数に基づいて画像の拡大又は縮小処理を行うシームレス画素処理部とを含み、
前記アキュームレータが、
前記初期値に前記倍率の逆数を加算した後に前記倍率の逆数を累積加算し、
前記倍率の逆数の整数部が０のとき、前記シームレス画素処理部が、入力画像に対して行われた拡大処理後の画像の画素データを出力し、
前記倍率の逆数の整数部が０ではないとき、前記シームレス画素処理部が、前記入力画像に対して行われた縮小処理後の画像の画素データを出力することを特徴とする画像処理装置。
【請求項４】
入力画像の拡大及び縮小処理を行うための画像処理方法であって、
前記入力画像を拡大又は縮小する倍率の逆数を倍率レジスタに設定すると共に、初期値設定レジスタに初期値を設定し、
前記初期値に前記倍率の逆数を加算した後に前記倍率の逆数を累積加算し、
前記倍率レジスタに設定された前記倍率の逆数の整数部が０のとき、前記入力画像に対して行われた拡大処理後の画像の画素データを出力し、
前記倍率の逆数の整数部が０ではないとき、前記累積加算結果に基づいて、前記入力画像を構成する画素単位に間引きすべきか否かを指定すると共に、前記入力画像に対して行われた縮小処理後の画像の画素データを出力することを特徴とする画像処理方法。
【請求項５】
請求項４において、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０ではないとき、
処理対象の画素データを更新し、該更新後の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０のとき、
処理対象の画素データを更新することなく、前回の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０ではないとき、
前記累積加算結果をデクリメントし、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０のとき、
前記倍率の逆数をデクリメントした値を前記累積加算結果に加算すると共に、処理対象の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記縮小処理後の画素データを生成することを特徴とする画像処理方法。
【請求項６】
入力画像の画素データが入力される画素データ入力インタフェースと、
前記画素データ入力インタフェースを介して入力された前記入力画像の拡大又は縮小処理を行う第１のスケーラ回路と、
前記第１のスケーラ回路の処理後のデータを保存するフレームバッファと、
前記フレームバッファから読み出された画素データにより表される画像の拡大又は縮小処理を行う第２のスケーラ回路と、
前記第２のスケーラ回路の処理後のデータを、表示パネルを駆動する表示ドライバに出力するためのインタフェース処理を行うドライバインタフェースとを含み、
前記第１及び第２のスケーラ回路の少なくとも１つは、
画像の水平方向の画素データに対して拡大又は縮小処理を行う水平方向画像処理部と、
前記画像の垂直方向の画素データに対して拡大又は縮小処理を行う垂直方向画像処理部とを含み、
前記水平方向画像処理部及び前記垂直方向画像処理部の少なくとも１つは、
請求項１乃至３のいずれか記載の画像処理装置を含むことを特徴とする表示コントローラ。
【請求項７】
表示パネルと、
請求項６記載の表示コントローラと、
前記表示コントローラによって供給される画像データに基づいて前記表示パネルを駆動する表示ドライバとを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、表示コントローラ及び電子機器に関する。
【背景技術】
【０００２】
携帯電話機等のカメラモジュールを内蔵する携帯型の電子機器においては、カメラモジュールが取り込んだ画像を液晶表示（Liquid Crystal Display：ＬＣＤ）パネル等の電気光学装置の画面に表示させることができるようになっている。この際、電気光学装置の画面サイズや、取り込んだ画像のデータを保存するメモリ容量を考慮して、取り込んだ画像のサイズが拡大されたり、縮小されたりする。
【０００３】
このような画像の拡大及び縮小を行う画像処理装置が、例えば特許文献１に開示されている。この画像処理装置では、処理前の画像の画素数を除数、処理後の画像の画素数を被除数として、画像の拡大又は縮小の倍率が求められる。そして、得られた倍率の逆数を累積加算することにより、処理後の画像の画素毎の線形補間のための補間係数が求められる。
【特許文献１】特開平９−３２６９５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら従来の画像処理装置では、拡大処理又は縮小処理後の画像の画素データに着目すると、元画像の１つの画素データがそのまま用いられるものと、元画像の複数の画素データから補間されたものとが混在する場合がある。
【０００５】
図１９に、従来の画像処理装置における拡大処理又は縮小処理後の画像の一例を模式的に示す。
【０００６】
図１９では、例えば画像の水平方向に拡大処理又は縮小処理された場合の処理後の画像の一例を示している。即ち、図１９では、処理後の画像の画素データに着目すると、元画像の１つの画素データがそのまま用いられるものと、元画像の複数の画素データから補間されたものとが混在している。そして、周期的に元画像の１つの画素データがそのまま用いられる場合、補間処理が施されていない画素が強調されてしまい、処理後の画像に縞模様が現れてしまう。その結果、処理後の画像の劣化を招いてしまう。
【０００７】
従って、処理後の画像の画素データに着目すると、すべての画素データが元画像の複数の画素データから補間されたものとするための機能を、画像処理装置が有することが望ましい。
【０００８】
また従来の画像処理装置では、処理前と処理後の画像の画素数を設定するようにしていたため、倍率の逆数を求めるために割り算器が必要となり、回路規模が大きくなる。
【０００９】
更に従来の画像処理装置では、倍率の逆数の累積加算結果を、画素カウンタのカウント値と比較する必要がある。そのため、電気光学装置の画面サイズの拡大に伴い、画素カウンタで用いる必要なビット数が増加してしまう。更に画素カウンタのビット数が定まってしまうため、画像サイズの上限が固定化されてしまい、電気光学装置の画面サイズの拡大に対応できなくなる場合がある。
【００１０】
更にまた従来の画像処理装置では、その制御を行うためのファームウェア（ソフトウェア）において、上述の処理前と処理後の画像の画素数の他に、画像の拡大又は縮小を指定する動作モードを設定する必要がある。このような画像処理装置を制御する場合、ファームウェアはエラー処理についても指定する必要があり、ファームウェアのコード量を増加させてしまう。
【００１１】
図２０（Ａ）に、従来の画像処理装置の制御を行うためのファームウェアのコードの一例を示す。
【００１２】
入力画像を指定するパラメータ、出力画像を指定するパラメータ、及び倍率の他に、拡大又は縮小を指定する動作のモードを指定する必要がある場合、画像処理装置に拡大処理を指示するフローと縮小処理を指示するフローのそれぞれに、エラー処理を盛り込む必要がある。このため、ファームウェアのコード量を増加させてしまう。
【００１３】
これに対して、画像処理装置に、画像の拡大又は縮小を指定する動作モードを設定する必要がない場合には、該画像処理装置を制御するファームウェアのコード量を大幅に削減できる。
【００１４】
図２０（Ｂ）に、画像の拡大又は縮小を指定する動作モードを設定する必要がない画像処理装置の制御を行うためのファームウェアのコードの一例を示す。
【００１５】
この場合、入力画像を指定するパラメータ、出力画像を指定するパラメータ、及び倍率のみを指定できればよいので、図２０（Ａ）に示すような各フローにエラー処理を盛り込むことなく、図２０（Ｂ）に示すようにファームウェアのコード量を小さくできる。
【００１６】
このように画像処理装置は、倍率を変更する度に動作モードを指定する必要がなく、設定された倍率に応じて画像の拡大及び縮小処理をシームレス（seamless）に実行できることが望ましい。
【００１７】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、元画像の画素データをそのまま用いる画素と元画像の画素データから補間された画素とが混在することで劣化する画像の生成を回避できる画像処理装置、画像処理方法、表示コントローラ及び電子機器を提供することにある。
【００１８】
また本発明の第２の目的は、回路規模を削減すると共に、拡大又は縮小を指定することなく、設定された倍率に応じて画像の拡大及び縮小処理を実行できる画像処理装置、画像処理方法、表示コントローラ及び電子機器を提供することにある。
【課題を解決するための手段】
【００１９】
上記課題を解決するために本発明は、
入力画像の拡大及び縮小処理を行うための画像処理装置であって、
前記入力画像を拡大又は縮小する倍率の逆数が設定される倍率レジスタと、
前記倍率の逆数を累積加算するアキュームレータと、
前記アキュームレータの初期値が設定される初期値設定レジスタと、
前記倍率の逆数に基づいて画像の拡大又は縮小処理を行うシームレス画素処理部とを含み、
前記アキュームレータが、
前記初期値に前記倍率の逆数を加算した後に前記倍率の逆数を累積加算し、
前記倍率の逆数の整数部が０のとき、前記シームレス画素処理部が、入力画像に対して行われた拡大処理後の画像の画素データを出力し、
前記倍率の逆数の整数部が０ではないとき、前記シームレス画素処理部が、前記アキュームレータの累積加算結果に基づいて、前記入力画像を構成する画素単位に間引きすべきか否かを指定するバリッド信号を出力すると共に、前記入力画像に対して行われた縮小処理後の画像の画素データを出力する画像処理装置に関係する。
【００２０】
本発明によれば、初期値を設定可能にすることで、該初期値を基準に倍率の逆数が累積加算される結果を該初期値に応じて変更できるので、例えば周期的に現れる、補間処理が施されていない画素の強調に起因した処理後の画素の劣化を防止できるようになる。
【００２１】
また本発明によれば、画像の拡大処理間及び縮小処理を行うために、倍率を求める目的で、処理前と処理後の画像の画素数を設定する必要がなくなるため、割り算器を省略する構成を採用できるようになる。更に、画像の拡大又は縮小処理を行うために累積加算される倍率の逆数の整数部に基づいて、画像の拡大処理又は縮小処理を行うことができる。従って、画像処理装置に対して拡大又は縮小を指定することなく、設定された倍率に応じて画像の拡大及び縮小処理をシームレスに実行できるようになる。このため、例えば図２０（Ｂ）に示すように、画像処理装置を制御するためのファームウェアのコード量を削減できるようになる。
【００２２】
更にまた縮小処理時において、画素単位に間引きすべきか否かを示すバリッド信号を出力できるようになるため、画像処理装置の後段の装置は、該バリッド信号に基づいて画素を容易に間引きすることが可能となる。そして、画像処理装置が縮小処理後の画素データを求めると共にバリッド信号を生成するため、縮小処理後の画素データを求めた後、別の手段でバリッド信号を生成する必要がなくなる。
【００２３】
また本発明に係る画像処理装置では、
前記シームレス画素処理部が、
前記入力画像の画素データと前記アキュームレータの出力とに基づいて積和演算を行って前記拡大処理又は縮小処理後の画素データを生成するフィルタ演算部を含み、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０ではないとき、
前記フィルタ演算部の処理対象の画素データを更新し、該更新後の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０のとき、
前記フィルタ演算部の処理対象の画素データを更新することなく、前回の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０ではないとき、
前記累積加算結果の整数部をデクリメントすると共に、前記フィルタ演算部の出力を更新せず、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０のとき、
前記倍率の逆数と前記アキュームレータの出力との加算結果の整数部をデクリメントすると共に、前記フィルタ演算部の処理対象の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記縮小処理後の画像の画素データを生成することができる。
【００２４】
本発明によれば、上記の効果に加えて、倍率の逆数の累積加算結果に基づく画像の拡大処理及び縮小処理を、ほぼ同じリソースで実現できるため、画像処理装置に対して拡大又は縮小を指定する必要がなく、設定された倍率に応じて画像の拡大及び縮小処理をシームレスに実行できる。
【００２５】
また本発明によれば、倍率の逆数の累積加算結果を、画素カウンタのカウント値と比較する必要がなくなる。そのため電気光学装置の画面サイズの拡大に伴い、画素カウンタで用いる必要なビット数が増加してしまう。更に画素カウンタのビット数が定まってしまうため、画像サイズの上限が固定化されてしまい、電気光学装置の画面サイズの拡大に対応できなくなる事態を回避できる。
【００２６】
また本発明は、
入力画像の拡大及び縮小処理を行うための画像処理装置であって、
前記入力画像を拡大又は縮小する倍率の逆数が設定される倍率レジスタと、
前記倍率の逆数を累積加算するアキュームレータと、
前記アキュームレータの初期値が設定される初期値設定レジスタと、
前記倍率の逆数に基づいて画像の拡大又は縮小処理を行うシームレス画素処理部とを含み、
前記アキュームレータが、
前記初期値に前記倍率の逆数を加算した後に前記倍率の逆数を累積加算し、
前記倍率の逆数の整数部が０のとき、前記シームレス画素処理部が、入力画像に対して行われた拡大処理後の画像の画素データを出力し、
前記倍率の逆数の整数部が０ではないとき、前記シームレス画素処理部が、前記入力画像に対して行われた縮小処理後の画像の画素データを出力する画像処理装置に関係する。
【００２７】
本発明によれば、初期値を設定可能にすることで、該初期値を基準に倍率の逆数が累積加算される結果を該初期値に応じて変更できるので、例えば周期的に現れる、補間処理が施されていない画素の強調に起因した処理後の画素の劣化を防止できるようになる。
【００２８】
また本発明によれば、画像の拡大処理間及び縮小処理を行うために、倍率を求める目的で、処理前と処理後の画像の画素数を設定する必要がなくなるため、割り算器を省略する構成を採用できるようになる。更に、画像の拡大又は縮小処理を行うために累積加算される倍率の逆数の整数部に基づいて、画像の拡大処理又は縮小処理を行うことができる。従って、画像処理装置に対して拡大又は縮小を指定することなく、設定された倍率に応じて画像の拡大及び縮小処理をシームレスに実行できるようになる。このため、例えば図２０（Ｂ）に示すように、画像処理装置を制御するためのファームウェアのコード量を削減できるようになる。
【００２９】
また本発明は、
入力画像の拡大及び縮小処理を行うための画像処理方法であって、
前記入力画像を拡大又は縮小する倍率の逆数を倍率レジスタに設定すると共に、初期値設定レジスタに初期値を設定し、
前記初期値に前記倍率の逆数を加算した後に前記倍率の逆数を累積加算し、
前記倍率レジスタに設定された前記倍率の逆数の整数部が０のとき、前記入力画像に対して行われた拡大処理後の画像の画素データを出力し、
前記倍率の逆数の整数部が０ではないとき、前記累積加算結果に基づいて、前記入力画像を構成する画素単位に間引きすべきか否かを指定すると共に、前記入力画像に対して行われた縮小処理後の画像の画素データを出力する画像処理方法に関係する。
【００３０】
また本発明に係る画像処理方法では、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０ではないとき、
処理対象の画素データを更新し、該更新後の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０の場合であって前記累積加算結果の整数部が０のとき、
処理対象の画素データを更新することなく、前回の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記拡大処理後の画像の画素データを生成し、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０ではないとき、
前記累積加算結果をデクリメントし、
前記倍率の逆数の整数部が０でない場合であって前記累積加算結果の整数部が０のとき、
前記倍率の逆数をデクリメントした値を前記累積加算結果に加算すると共に、処理対象の画素データと前記累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って前記縮小処理後の画素データを生成することができる。
【００３１】
また本発明は、
入力画像の画素データが入力される画素データ入力インタフェースと、
前記画素データ入力インタフェースを介して入力された前記入力画像の拡大又は縮小処理を行う第１のスケーラ回路と、
前記第１のスケーラ回路の処理後のデータを保存するフレームバッファと、
前記フレームバッファから読み出された画素データにより表される画像の拡大又は縮小処理を行う第２のスケーラ回路と、
前記第２のスケーラ回路の処理後のデータを、表示パネルを駆動する表示ドライバに出力するためのインタフェース処理を行うドライバインタフェースとを含み、
前記第１及び第２のスケーラ回路の少なくとも１つは、
画像の水平方向の画素データに対して拡大又は縮小処理を行う水平方向画像処理部と、
前記画像の垂直方向の画素データに対して拡大又は縮小処理を行う垂直方向画像処理部とを含み、
前記水平方向画像処理部及び前記垂直方向画像処理部の少なくとも１つは、
上記のいずれか記載の画像処理装置を含む表示コントローラに関係する。
【００３２】
本発明によれば、元画像の画素データをそのまま用いる画素と元画像の画素データから補間された画素とが混在することで劣化する画像の生成を回避できる表示コントローラを提供できる。
【００３３】
また本発明によれば、回路規模を削減すると共に、拡大又は縮小を指定することなく、設定された倍率に応じて画像の拡大及び縮小処理を実行できる表示コントローラを提供できる。
【００３４】
また本発明は、
表示パネルと、
上記記載の表示コントローラと、
前記表示コントローラによって供給される画像データに基づいて前記表示パネルを駆動する表示ドライバとを含む電子機器に関係する。
【００３５】
本発明によれば、元画像の画素データをそのまま用いる画素と元画像の画素データから補間された画素とが混在することで劣化する画像の生成を回避できる電子機器を提供できる。
【００３６】
また本発明によれば、回路規模を削減すると共に、拡大又は縮小を指定することなく、設定された倍率に応じて画像の拡大及び縮小処理を実行できる電子機器を提供できる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００３８】
１．  画像処理装置
図１に、本実施形態における画像処理装置の構成の概要のブロック図を示す。
【００３９】
この画像処理装置１００は、入力画像の画素データに対し、画像の拡大処理及び縮小処理を行う。より具体的には、画像処理装置１００は、倍率設定レジスタ１０とシームレス画素処理部２０とを含む。倍率設定レジスタ１０には、入力画像を拡大又は縮小する倍率の逆数が設定される。シームレス画素処理部２０は、拡大又は縮小を指定されることなく、倍率設定レジスタ１０に設定された倍率の逆数に応じて、入力画像の画素データに対して拡大処理又は縮小処理を行い、処理後の画素データを出力する。
【００４０】
倍率設定レジスタ１０に設定された倍率の逆数の整数部が０のとき、シームレス画素処理部２０が、入力画像に対して行われた拡大処理後の画像の画素データを出力する。また倍率の逆数の整数部が０ではないとき、シームレス画素処理部２０が、入力画像に対して行われた縮小処理後の画像の画素データを出力する。
【００４１】
こうすることで、画像処理装置１００を制御するためのファームウェアは、倍率を指定する一方で、画像の拡大又は縮小を指定する動作モードを設定する必要がなくなる。そのため、図２０（Ｂ）に示すようにファームウェアのコード量を大幅に削減できる。
【００４２】
また画像処理装置１００のシームレス画素処理部２０は、倍率の逆数を累積加算するアキュームレータ３０、アキュームレータ３０の初期値が設定される初期値設定レジスタ３２とを含むことができる。アキュームレータ３０は、初期値設定レジスタ３２に設定された初期値に、倍率設定レジスタ１０に設定された倍率の逆数を加算し、その加算結果に倍率の逆数を累積加算していく。そして、シームレス画素処理部２０（アキュームレータ３０）は、縮小処理時において、アキュームレータ３０の累積加算結果に基づいて、入力画像を構成する画素単位に間引きすべきか否かを指定するバリッド信号validを出力することができる。
【００４３】
図２に、処理後の画素データとバリッド信号validとの関係の一例を示す。
【００４４】
バリッド信号validは、各画素の画素データ毎にＨレベル又はＬレベルに変化する。例えばバリッド信号validがＨレベルの期間の画素データが有効であることを示し、バリッド信号validがＬレベルの期間の画素データが無効であることを示す。従って、画像処理装置１００から、処理後の画素データ及びバリッド信号validを受けた回路では、バリッド信号validに基づいて、各画素の画素データについて、縮小処理によって間引きすべきか否かを判断できる。そのため、該回路では、バリッド信号validに基づいて、間引きすべきであると判断された画素データを、処理後の画素データから間引くことができる。
【００４５】
図１において、シームレス画素処理部２０は、更にフィルタ演算部４０を含むことができる。フィルタ演算部４０は、アキュームレータ３０の累積加算結果に対応したフィルタ係数を用いて、入力画像の画素データに対してフィルタ処理を行う。フィルタ処理後の画素データが、拡大又は縮小処理後の画素データとなる。即ち、フィルタ演算部４０は、拡大又は縮小処理後の画素の画素データに対して、１又は複数の画素間を補間するためにフィルタ処理を行う。そのため、シームレス画素処理部２０は、更に係数ルックアップテーブル（look-up table：ＬＵＴ）５０を含むことが望ましい。この係数ＬＵＴ５０には、フィルタ処理を行うためのフィルタ係数を予め設定しておく。そして、アキュームレータ３０の累積加算結果に対応したフィルタ係数が係数ＬＵＴ５０から読み出されるようにすることで、フィルタ演算部４０のフィルタ処理後の画像の画質劣化を防止できるようになる。
【００４６】
１．１  画像の拡大処理と縮小処理
ここで本実施形態における画像の拡大処理と縮小処理の内容について、具体的に説明する。
【００４７】
図３に、本実施形態における画像の拡大処理及び縮小処理の説明図を示す。
【００４８】
図３では、初期値設定レジスタ３２に設定される初期値が「０」の場合を示す。また図３では、画像の水平方向（水平走査方向）に元画像の画素が並ぶ場合に、これらの画素に対して処理を行う場合について説明するが、画像の垂直方向（垂直走査方向）に元画像の画素が並ぶ場合に、これらの画素に対して処理を行う場合も同様である。
【００４９】
図３では、各画素間のドットピッチが正規化された状態で、元画像の水平方向の画素Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、・・・が並ぶ。即ち、元画像の水平方向の画素の各画素間の距離が１であるものとする。
【００５０】
拡大処理においては、元画像の画素Ｐ１、Ｐ２、・・・に対し、拡大処理後の画像の画素ＰＺ１、ＰＺ２、・・・が生成される。拡大処理後の画像の画素ＰＺ１、ＰＺ２、・・・は、間引きされることはない。
【００５１】
一方、縮小処理においては、元画像の画素Ｐ１、Ｐ２、・・・に対し、拡大処理後の画像の画素ＰＳ１、ＰＳ２、・・・が生成される。縮小処理後の画像の画素ＰＳ１、ＰＳ２、・・・のいずれかは間引きされるため、処理後の画像の画素ＰＳ１、ＰＳ２、・・・のそれぞれに対して間引きすべきか否かが指定される。この結果、図２に示すバリッド信号validが生成される。
【００５２】
ここで、元画像を１．５倍に拡大処理する場合について説明する。この場合、倍率の逆数が２／３（＝１／１．５）となる。
【００５３】
例えば、拡大処理後の画像の画素ＰＺ１を元画像の画素Ｐ１と一致させる。即ち、画素Ｐｚ１の位置が０となり、画素Ｐｚ１の画素データは、元画像の画素Ｐ１の画素データとなる。この画素データは、ＲＧＢの各色成分の階調データを含むデータであったり、輝度成分及び２つの色差成分を含むデータであったりする。
【００５４】
その後、画素ＰＺ１の付与値に２／３を累積加算していく。
【００５５】
この結果、まず画素ＰＺ２の付与値から１を減算した値が、画素Ｐｚ２の位置となる。即ち、画素Ｐｚ２の位置は、元画像の画素Ｐ１、Ｐ２の間となる。このため、画素ＰＺ２は補間画素として、その画素データは、例えば画素Ｐ１、Ｐ２の画素データを補間した値となる。
【００５６】
図４に、補間画素の画素データの説明図を示す。
【００５７】
図４では、元画像に対する処理後の補間画素Ｐｃの位置が元画像の画素Ｐａ、Ｐｂの間となった場合に補間画素Ｐｃの画素データを求めるものとする。補間画素Ｐｃの位置が、画素Ｐａから距離ｄ（０≦ｄ≦１）だけ離れているものとすると、画素Ｐａ、Ｐｂ間のドットピッチが正規化されているため、補間画素Ｐｃの位置は画素Ｐｂから距離（１−ｄ）だけ離れることになる。
【００５８】
ここで、画素Ｐの画素データをＤ（Ｐ）と表すと、補間画素Ｐｃの画素データＤ（Ｐｃ）は、次の式で求められる。
【００５９】
Ｄ（Ｐｃ）＝（１−ｄ）×Ｄ（Ｐａ）＋ｄ×Ｄ（Ｐｂ）    ・・・（１）
従って、補間画素の画素データは、補間係数としてのｄと元画像の画素データとの積和演算により求められる。
【００６０】
なお、ドットピットが正規化されているため、距離ｄは、補間画素Ｐｃの位置を求めるために逆数の倍率を累積加算した結果の小数部に相当する。この小数部は、画素データの補間処理を行う際に、補間係数に関連付けられる。
【００６１】
ここでは、処理後の画像の画素の画素データが、元画像の２点の画素の画素データで補間されるものとして説明するが、元画像の３点以上の画素の画素データで補間されてもよい。
【００６２】
このように補間画素の画素データが求められるので、図３における画素Ｐｚ２の画素データＤ（Ｐｚ２）は、元画像の画素Ｐ１、Ｐ２の画素データから、次の式で求められる。
【００６３】
Ｄ（ＰＺ２）＝（１−２／３）×Ｄ（Ｐ１）＋２／３×Ｄ（Ｐ２）    ・・・（２）
続いて、画素Ｐｚ３の付与値は、２／３＋２／３＝１＋１／３となるので、画素Ｐｚ３の画素データＤ（Ｐｚ３）は、元画像の画素Ｐ２、Ｐ３の画素データから次の式で求められる。
【００６４】
Ｄ（ＰＺ３）＝（１−１／３）×Ｄ（Ｐ２）＋１／３×Ｄ（Ｐ３）    ・・・（３）
以降、同様にして、画素Ｐｚ４の画素データは、元画像の画素Ｐ３の画素データとなり、画素Ｐｚ５の画素データは元画像の画素Ｐ３、Ｐ４の画素データで補間された値となる。
【００６５】
以上のように、画素間のドットピッチを正規化した状態で、元画像の画素の画素データと、倍率の逆数を累積加算した結果の小数部に対応した係数とに基づいて、拡大処理後の画像の画素データを生成することができる。
【００６６】
次に、元画像を２／３倍に縮小処理する場合について説明する。この場合、倍率の逆数が１．５（＝１／（２／３））となる。
【００６７】
例えば、縮小処理後の画像の画素ＰＳ１を元画像の画素Ｐ１と一致させる。即ち、画素ＰＳ１の位置が０となり、画素ＰＳ１の画素データは、元画像の画素Ｐ１の画素データとなる。
【００６８】
その後、画素ＰＳ１の付与値を１だけ減算、若しくは（１．５−１）を加算していく。縮小処理の場合、逆数の倍率が１より大きい値となるため、処理後の画素の付与値をデクリメントする毎に、次の画素間で補間される。その結果、処理後の画素の付与値の整数部が０のとき、当該処理後の画素を有効とし、上述のように元画像の画素の画素データで補間される。そして、次の補間画素を求めるために、当該画素の付与値に（１．５−１）を加算する。
【００６９】
一方、処理後の画素の付与値の整数部が１のとき、当該処理後の画素を無効とし、次の補間画素を求めるために、当該画素の付与値を１だけ減算する。
【００７０】
従って、図３では、まず画素ＰＳ１の付与値が０で、当該画素が有効となるため、画素ＰＳ１の付与値に（１．５−１）が加算される。この結果、画素ＰＳ２の付与値が０．５となり、この値が画素ＰＳ２の位置となる。即ち、画素ＰＳ２の位置は、元画像の画素Ｐ２、Ｐ３の間となる。このため、画素ＰＳ２は補間画素として、その画素データは、例えば画素Ｐ２、Ｐ３の画素データを補間した値となる。ここでは、図４において、ｄが０．５である場合に相当する。
【００７１】
続いて、画素ＰＳ３の付与値が、１．０（＝０．５＋１．５−１）となる。この付与値の整数部が１となるため、画素ＰＳ３は間引きされる。
【００７２】
そして、画素ＰＳ４の付与値が、０．０（＝１．０−１）となる。このため、画素ＰＳ４が有効となる。
【００７３】
以上のように、画素間のドットピッチを正規化した状態で、処理後の画素の付与値をデクリメントしながら、倍率の逆数を累積加算していくことで、縮小処理後の画像の画素データを生成すると共に処理後の画素データを間引きすべきか否かを判断することができる。
【００７４】
図５に、初期値設定レジスタ３２に初期値が設定された場合の本実施形態における画像の拡大処理及び縮小処理の説明図を示す。
【００７５】
但し、図５において、図３と同一部分には同一符号を付し、適宜説明を省略する。図５では、初期値設定レジスタ３２に設定された初期値ＩＶが、「１／６」であるものとする。また図５では、画像の水平方向（水平走査方向）に元画像の画素が並ぶ場合に、これらの画素に対して処理を行う場合について説明するが、画像の垂直方向（垂直走査方向）に元画像の画素が並ぶ場合に、これらの画素に対して処理を行う場合も同様である。
【００７６】
ここで、元画像を１．５倍に拡大処理する場合について説明する。この場合、倍率の逆数が２／３（＝１／１．５）となる。
【００７７】
例えば、拡大処理後の画像の画素ＰＺ１の位置が１／６となり、画素Ｐｚ１の位置は、元画像の画素Ｐ１、Ｐ２の間となる。このため、画素ＰＺ１は補間画素として、その画素データは、例えば画素Ｐ１、Ｐ２の画素データを補間した値となる。
【００７８】
その後、画素ＰＺ１の付与値に２／３を累積加算していく。
【００７９】
この結果、画素ＰＺ２の位置が５／６となり、画素Ｐｚ２の位置は、元画像の画素Ｐ１、Ｐ２の間となる。このため、画素ＰＺ２は補間画素として、その画素データは、例えば画素Ｐ１、Ｐ２の画素データを補間した値となる。
【００８０】
続いて、画素ＰＺ２の付与値に２／３を累積加算する。この結果、画素ＰＺ３の位置が３／２となり、画素Ｐｚ３の位置は、元画像の画素Ｐ２、Ｐ３の間となる。従って、画素ＰＺ３の付与値から１を減算した値が、画素Ｐｚ３の位置となる。このため、画素ＰＺ３は補間画素として、その画素データは、例えば画素Ｐ２、Ｐ３の画素データを補間した値となる。
【００８１】
画素Ｐｚ４、Ｐｚ５も同様に、元画像の画素データにより補間される。
【００８２】
次に、元画像を２／３倍に縮小処理する場合について説明する。この場合、倍率の逆数が１．５（＝１／（２／３））となる。
【００８３】
例えば、縮小処理後の画像の画素ＰＳ１の位置が１／６となり、画素ＰＳ１の画素データは、元画像の画素Ｐ１、Ｐ２により補間される画素データとなる。
【００８４】
その後、画素ＰＳ１の付与値を１だけ減算、若しくは（１．５−１）を加算していく。
【００８５】
従って、図５では、画素ＰＳ１の付与値が１／６で、当該画素が有効となるため、画素ＰＳ１の付与値に（１．５−１）が加算される。この結果、画素ＰＳ２の付与値が２／３となり、この値が画素ＰＳ２の位置となる。即ち、画素ＰＳ２の位置は、元画像の画素Ｐ２、Ｐ３の間となる。このため、画素ＰＳ２は補間画素として、その画素データは、例えば画素Ｐ２、Ｐ３の画素データを補間した値となる。
【００８６】
続いて、画素ＰＳ３の付与値が、７／６となる。この付与値の整数部が１となるため、画素ＰＳ３は間引きされる。
【００８７】
そして、画素ＰＳ４の付与値が、１／６（＝７／６−１）となる。このため、画素ＰＳ４が有効となる。
【００８８】
以上のように、累積加算を行う際に初期値を与えることで、拡大処理後又は縮小処理後の画像の各画素データの補間比率を変化させることができるようになる。この結果、図１９に示すように、処理後の画像において、元画像の１つの画素データがそのまま用いられるものと、元画像の複数の画素データから補間されたものとが混在する事態を回避できる。その結果、処理後の画像に縞模様が現れてしまうのを防ぎ、処理後の画像の劣化を防止できるようになる。
【００８９】
以下では、このような画像の拡大処理及び縮小処理を実現する画像処理装置１００のハードウェア構成例について説明する。
【００９０】
１．２  アキュームレータ
図６に、図１のアキュームレータ３０の構成例のブロック図を示す。
【００９１】
ここでは、図７に示すように倍率設定レジスタ１０が１２ビット構成であり、上位３ビットに整数部のデータが設定され、下位９ビットに小数部のデータが設定されるものとする。
【００９２】
アキュームレータ３０は、モード判定部６０を含む。モード判定部６０は、倍率設定レジスタ１０に設定された１２ビットのデータのうち上位３ビットの設定値に応じたモード信号MODEを出力する。より具体的には、モード判定部６０は、該上位３ビットの設定値が０のとき、モード信号MODEをＬレベルにして、拡大処理を行う拡大処理モードを指定する。一方、モード判定部６０は、該上位３ビットの設定値が０ではないとき、モード信号MODEをＨレベルにして、縮小処理を行う縮小処理モードを指定する。
【００９３】
またアキュームレータ３０は、１２ビット構成の倍率アキュームレータレジスタ６２を含む。この倍率アキュームレータレジスタ６２には、初期値設定レジスタ３２からの初期値IV[11:0]が、初期化時にロードされるようになっている。そして倍率アキュームレータレジスタ６２には、図示しない画素クロック又はラインクロックの変化点に同期して、倍率の逆数の累積加算結果が取り込まれる。画素クロックは、水平方向に並ぶ画素単位のクロックであり、ラインクロックは、１水平走査期間を１ラインとするライン単位のクロックである。
【００９４】
加算器６４は、倍率設定レジスタ１０に設定された倍率の逆数と倍率アキュームレータレジスタ６２に保存された値HACCum[8:0]とを加算して、AccAddData[11:0]として出力する。AccAddData[9]とモード信号MODEとの論理和演算結果が、シフトイネーブル信号ShiftEnableとして出力される。従って、縮小処理モードでは、シフトイネーブル信号ShiftEnableがＨレベルに固定される。このシフトイネーブル信号ShiftEnableは、フィルタ演算部４０の処理対象となる画素データを更新するためのシフト動作のイネーブル制御のための信号である。従って、拡大処理モードでは、累積加算結果であるHACCum[11:0]の整数部が０ではないとき、シフトイネーブル信号ShiftEnableがＨレベルとなって、フィルタ演算部の処理対象の画素データを更新し、HACCum[11:0]の整数部が０のとき、シフトイネーブル信号ShiftEnableがＬレベルとなって、フィルタ演算部の処理対象の画素データを更新しない。
【００９５】
AccAddData[8:0]の９ビットデータは、上位ビット付加部６６において「０００」が上位３ビットに付加されて１２ビットデータとして出力される。
【００９６】
一方、倍率アキュームレータレジスタ６２に保存された値HACCum[11:9]は、下位ビット付加部６８において、「０００００００００」が下位ビットに付加されて１２ビットデータとして出力される。この１２ビットデータは、加算器７０において、AccAddData[11:0]と加算された後、デクリメンタ７２において、加算器７０の加算結果の整数部の値がデクリメントされて、セレクタ７４に供給される。
【００９７】
倍率アキュームレータレジスタ６２に保存された値HACCum[11:0]は、デクリメンタ７６において、HACCum[11:0]の整数部の値がデクリメントされてセレクタ７４に供給される。
【００９８】
整数部解析部７８は、倍率アキュームレータレジスタ６２に保存された値HACCum[11:9]が０か否かを検出する。より具体的には整数部解析部７８が、HACCum[11:9]が０であることを検出したときＨレベルの検出信号を出力し、HACCum[11:9]が０ではないことを検出したときＬレベルの検出信号を出力する。この検出信号とモード信号MODEの反転信号との論理和演算結果が、バリッド信号validとして出力される。従って、拡大処理モードでは、バリッド信号validがＨレベルに固定される。なおHACCum[8:6]が、係数ＬＵＴ５０のアドレスLUTadrとなる。図６では、３ビットのみが係数ＬＵＴ５０のアドレスとして生成されるが、このビット数に限定されるものではない。従って、累積加算結果の小数部の少なくとも一部に基づいて係数ＬＵＴ５０のアドレスを生成できればよい。
【００９９】
また整数部解析部７８からの検出信号は、セレクタ７４の選択制御信号となる。即ち、セレクタ７４は、整数部解析部７８の検出信号がＬレベルのとき、デクリメンタ７６の出力を選択出力する。一方、セレクタ７４は、整数部解析部７８の検出信号がＨレベルのとき、デクリメンタ７２の出力を選択出力する。従って、縮小処理モードでは、HACCum[11:9]が０でなくなるまで、倍率アキュームレータレジスタ６２に保存された値の整数部をデクリメントしていくことになる。このようなセレクタ７４の出力は、セレクタ８０に供給される。
【０１００】
セレクタ８０は、モード信号MODEがＬレベルのとき、上位ビット付加部６６の出力を選択出力する。セレクタ８０は、モード信号MODEがＨレベルのとき、セレクタ７４の出力を選択出力する。そしてセレクタ８０の出力が、倍率アキュームレータレジスタ６２に保存される。
【０１０１】
次に、図６に示すアキュームレータ３０の動作について説明する。
【０１０２】
図８に、図６のアキュームレータ３０の拡大処理モードの動作を模式的に示す。
【０１０３】
図８において、図６と同一部分には同一符号を付し適宜説明を省略する。
【０１０４】
倍率設定レジスタ１０に設定された倍率の逆数の整数部が０のとき、上述のようにモード信号MODEがＬレベルとなる。加算器６４は、倍率の逆数と倍率アキュームレータレジスタ６２に保存された値HACCum[8:0]とを加算する。その加算結果の第９ビット（HACCum[9]）により、シフトイネーブル信号ShiftEnableが生成される。HACCum[9]に基づいてシフトイネーブル信号ShiftEnableを生成するのは、拡大処理モードでは累積加算される倍率の逆数が１より小さいため、累積加算結果の整数部の最下位ビットを参照すれば、累積加算結果の整数部が０であるか否かを判断できるからである。
【０１０５】
なお、加算結果は、再び倍率アキュームレータレジスタ６２に保存される。そして、倍率アキュームレータレジスタ６２に保存された値のうちHACCum[8:6]が、係数ＬＵＴ５０に設定された係数を指定するためのアドレスLUTadrとして出力される。
【０１０６】
図９に、図６のアキュームレータ３０の縮小処理モードの動作を模式的に示す。
【０１０７】
図９において、図６と同一部分には同一符号を付し適宜説明を省略する。
【０１０８】
倍率設定レジスタ１０に設定された倍率の逆数の整数部が０ではないとき、上述のようにモード信号MODEがＨレベルとなる。加算器６４、７０により、倍率の逆数と倍率アキュームレータレジスタ６２に保存された値HACCum[11:0]とが加算される。この加算結果の整数部の値は、デクリメンタ７２によりデクリメントされる。一方、倍率アキュームレータレジスタ６２に保存された値HACCum[11:0]の整数部の値は、デクリメンタ７６によりデクリメントされる。そして、倍率アキュームレータレジスタ６２に保存された値HACCum[11:9]が０か否かに応じてデクリメンタ７２、７６のいずれかの出力が選択されて、再び倍率アキュームレータレジスタ６２に取り込まれる。
【０１０９】
倍率アキュームレータレジスタ６２のHACCum[8:6]は、係数ＬＵＴ５０のアドレスLUTadrとして出力される。また、倍率アキュームレータレジスタ６２のHACCum[11:9]に基づいて、バリッド信号validが出力される。
【０１１０】
従って、縮小処理モードでは、倍率アキュームレータレジスタ６２における累積加算結果に基づいて、画素単位に間引きすべきか否かを指定するバリッド信号validを出力することができる。
【０１１１】
１．３  係数ＬＵＴ
図１０に、図１の係数ＬＵＴ５０の構成例のブロック図を示す。
【０１１２】
係数ＬＵＴ５０は、アドレスデコーダ５２と、係数メモリ５４とを含むことができる。アドレスデコーダ５２は、アキュームレータ３０からのアドレスLUTadrをデコードし、係数メモリ５４のいずれかの記憶領域を指定する。係数メモリ５４は、例えば８（＝２３）組の係数群を保持し、アドレスデコーダ５２により指定された係数群をフィルタ演算部４０に対して出力する。
【０１１３】
図１０では、係数メモリ５４が８組の係数群を保持するものとして説明したが、本実施形態が組数に限定されるものではないことは言うまでもない。
【０１１４】
１．４  フィルタ演算部
図１１に、図１のアキュームレータ３０、係数ＬＵＴ５０及びフィルタ演算部４０の構成例のブロック図を示す。
【０１１５】
図１１において、図１、図６及び図１０と同一部分には同一符号を付し、適宜説明を省略する。図１１では、フィルタ演算部４０が４タップのフィルタ処理を行うものとするが、本実施形態がタップ数に限定されるものではない。
【０１１６】
フィルタ演算部４０は、データバッファと４つのフリップフロップ（Flip-Flop：ＦＦ）とを含む。４つのフリップフロップは直列接続されたシフトレジスタを構成し、各フリップフロップにはクロックＣＬＫ（画素クロック又はラインクロック）が共通に供給される。そして、アキュームレータ３０からのシフトイネーブル信号ShiftEnableがＨレベルになると、データバッファから画素データを読み出し、クロックＣＬＫに同期してシフト動作を行う。
【０１１７】
各フリップフロップの出力は、それぞれ乗算器に入力される。係数ＬＵＴ５０は、アキュームレータ３０からのアドレスLUTadrに対応した係数群ｈ０、ｈ１、ｈ２、ｈ３を出力する。アドレスLUTadrに対応して出力された係数群の各係数は、各乗算器に供給される。
【０１１８】
各乗算器の出力は加算器に供給され、該加算器の出力が補間後の画素データとなる。この補間後の画素データは、拡大処理又は縮小処理後の画素データである。
【０１１９】
ここで、各フリップフロップの出力をｇ０、ｇ１、ｇ２、ｇ３、加算器の出力をＤ（Ｐ）とすると、Ｄ（Ｐ）は次式で表される。
【０１２０】
Ｄ（Ｐ）＝ｇ０×ｈ０＋ｇ１×ｈ１＋ｇ２×ｈ２＋ｇ３×ｈ３    ・・（４）
そして、画像処理装置１００は、倍率設定レジスタ１０に設定された倍率の逆数の整数部が０の場合には入力画像の画素データに対して拡大処理を行い、該倍率の逆数の整数部が０ではない場合には入力画像の画素データに対して縮小処理を行うことができる。
【０１２１】
図１２に、本実施形態における画像処理装置１００の拡大処理の一例の説明図である。
【０１２２】
図１２では、拡大の倍率が２．５（倍率の逆数が０．４）で初期値が０の例を示している。拡大処理では、処理後のすべての画素が有効である。
【０１２３】
即ち、画像処理装置１００は、倍率の逆数の整数部が０の場合であってアキュームレータ３０の累積加算結果の整数部が０ではないとき、図６及び図８で説明したようにシフトイネーブル信号ShiftEnableをＨレベルに変化させて、図１１のフィルタ演算部４０のシフトレジスタのシフト動作を行わせる。こうすることで、フィルタ演算部４０の処理対象の画素データを更新できる。そして、該更新後の画素データとアキュームレータ３０の累積加算結果の小数部の少なくとも一部（図８のHACCum[8:6]）に対応した係数との積和演算を行って拡大処理後の画像の画素データを生成することができる。
【０１２４】
また画像処理装置１００は、倍率の逆数の整数部が０の場合であってアキュームレータ３０の累積加算結果の整数部が０のとき、図６及び図８で説明したようにシフトイネーブル信号ShiftEnableをＬレベルに変化させて、図１１のフィルタ演算部４０のシフトレジスタのシフト動作をディセーブル状態に設定する。こうすることで、フィルタ演算部４０の処理対象の画素データを更新させずに済む。そして、フィルタ演算部４０で前回用いられた画素データとアキュームレータ３０の累積加算結果の小数部の少なくとも一部（図８のHACCum[8:6]）に対応した係数との積和演算を行って拡大処理後の画像の画素データを生成することができる。
【０１２５】
従って、図１２では、累積加算結果が１．２、１．０の場合（Ｅ１、Ｅ２、Ｅ３、Ｅ４）に、シフトイネーブル信号ShiftEnableをＨレベルに変化させ、シフト動作後の画素データに対して補間後の画素データを生成している。そして、その他の場合に、シフトイネーブル信号ShiftEnableをＬレベルに変化させ、前回の処理対象の画素データに対して、新たな補間画素の位置に対応した係数を用いて補間後の画素データを生成している。
【０１２６】
なお、初期値を０以外の値に設定することで、補間画素の位置を変更できることは言うまでもない。
【０１２７】
図１３に、本実施形態における画像処理装置１００の縮小処理の一例の説明図である。
【０１２８】
図１３では、縮小の倍率が０．４（倍率の逆数が２．５）で初期値が０の例を示している。縮小処理では、シフトイネーブル信号ShiftEnableは常にＨレベルとなる。
【０１２９】
即ち、画像処理装置１００は、倍率の逆数の整数部が０でない場合であってアキュームレータ３０の累積加算結果の整数部が０ではないとき、バリッド信号validをＬレベル変化させて当該処理後の画素を間引き対象とし、図９に示すようにデクリメンタ７６により累積加算結果（その整数部）をデクリメントするのみで、フィルタ演算部４０の出力を更新しない。
【０１３０】
また画像処理装置１００は、倍率の逆数の整数部が０でない場合であってアキュームレータ３０の累積加算結果の整数部が０のとき、倍率の逆数と累積加算結果（アキュームレータ３０の出力）との加算結果の整数部をデクリメンタ７２によりデクリメントする。そして、フィルタ演算部４０の処理対象の画素データと累積加算結果の小数部の少なくとも一部に対応した係数との積和演算を行って縮小処理後の画像の画素データを生成することができる。
【０１３１】
従って、図１３では、累積加算結果が１．５、２．０、１．０の場合（Ｆ１、Ｆ２、Ｆ３）に、バリッド信号validをＬレベルに変化させる。そして、その他の場合、バリッド信号validをＨレベルに変化させ、シフト動作後の画素データに対して補間後の画素データを生成している。
【０１３２】
なお、初期値を０以外の値に設定することで、補間画素の位置を変更できることは言うまでもない。
【０１３３】
以上のように、本実施形態における画像処理装置１００は、倍率設定レジスタ１０に設定された倍率の逆数に応じて、入力画像を拡大処理又は縮小処理した画像の画素データを生成することができる。そしてこの画像処理装置１００は、倍率の逆数を求めるための割り算器を不要にできる。また、倍率の逆数の累積加算結果を、画素カウンタのカウント値と比較する必要がなくなる。そのため、画素カウンタで用いるビット数が増加してしまうことがなくなり、画素カウンタのビット数に制限されることなく、電気光学装置の画面サイズの拡大に対応できるようになる。
【０１３４】
２．  表示コントローラ
次に、本実施形態における画像処理装置１００が適用される表示コントローラについて説明する。
【０１３５】
図１４に、本実施形態における画像処理装置１００が適用される表示コントローラの構成例のブロック図を示す。
【０１３６】
表示コントローラ２００は、カメラインタフェース（Interface：Ｉ／Ｆ）（広義には画素データ入力Ｉ／Ｆ）２１０と、第１及び第２のスケーラ回路２２０、２３０と、フレームバッファ２４０と、ＲＧＢＩ／Ｆ（広義には出力Ｉ／Ｆ）２５０とを含む
カメラＩ／Ｆ２１０には、入力画像の画素データが入力される。より具体的には、カメラＩ／Ｆ２１０には、ＣＣＤカメラやＣＭＯＳカメラを内蔵するカメラモジュールからの画像の画素データが入力される。そしてカメラＩ／Ｆ２１０は、該画素データのインタフェース処理（カメラモジュールとの間の受信処理や、信号のバッファリング）を行い、インタフェース処理後の画素データを第１のスケーラ回路２２０に出力する。
【０１３７】
第１のスケーラ回路２２０は、カメラＩ／Ｆ２１０からの入力画像の画素データに対して拡大又は縮小処理を行う。
【０１３８】
フレームバッファ２４０は、例えばＲＧＢＩ／Ｆ２５０に接続される表示ドライバが駆動する電気光学装置の少なくとも１フレーム（１画面）分の画素データを記憶する。第１のスケーラ回路２２０の処理後のデータは、このフレームバッファ２４０に保存される。
【０１３９】
第２のスケーラ回路２３０は、フレームバッファ２４０から読み出された画素データにより表される画像の拡大又は縮小処理を行う。
【０１４０】
ＲＧＢＩ／Ｆ２５０は、第２のスケーラ回路２３０の処理後のデータを出力するためのインタフェース処理を行う。ＲＧＢＩ／Ｆ２５０は、第２のスケーラ回路２３０からの画素データのインタフェース処理（表示ドライバとの間の送信処理や、信号のバッファリング）を行い、インタフェース処理後のＲＧＢ形式の画素データを図示しない表示ドライバに出力する。ＲＧＢＩ／Ｆ２５０は、例えば同期信号発生回路を含み、電気光学装置を駆動するための表示用の同期信号（１フレームの走査期間である１垂直走査期間を規定する垂直同期信号VSYNC、１水平走査期間を規定する水平同期信号HSYNC、ドットクロックDCLK等）を生成し、該同期信号を表示ドライバに供給することができる。このときＲＧＢＩ／Ｆ２５０は、各フレームの画素データを垂直同期信号に同期させ、且つ各画素データをドットクロックに同期させて出力する。
【０１４１】
そして、第１及び第２のスケーラ回路２２０、２３０の少なくとも１つは、画像の水平方向の画素データに対して拡大又は縮小処理を行う水平方向画像処理部と、画像の垂直方向の画素データに対して拡大又は縮小処理を行う垂直方向画像処理部とを含む。更に水平方向画像処理部及び垂直方向画像処理部の少なくとも１つは、本実施形態における画像処理装置１００を含む。
【０１４２】
なお表示コントローラ２００は、第２のスケーラ回路２３０の出力をＹＵＶ形式に変換した画素データを、ＲＧＢ形式の画素データと同様に出力できるようになっている。そのため、表示コントローラ２００は、ＹＵＶＩ／Ｆ２７０を含むことができる。ＹＵＶＩ／Ｆ２７０は、第２のスケーラ回路２３０からの画素データのインタフェース処理（ＣＲＴ装置との間の送信処理や、信号のバッファリング）を行い、インタフェース処理後のＹＵＶ形式の画素データを図示しないＣＲＴ装置に出力する。
【０１４３】
また表示コントローラ２００は、フレームバッファ２４０の保存データに対して圧縮処理又は伸張処理を行うＪＰＥＧ回路２８０を含むことができる。ＪＰＥＧ回路２８０は、フレームバッファ２４０の保存データを読み出して、ＪＰＥＧ規格に従った圧縮処理又は伸張処理を行い、処理後のデータをフレームバッファ２４０に書き戻すことができる。
【０１４４】
更に表示コントローラ２００は、ホストＩ／Ｆ２９０を含むことができる。ホストＩ／Ｆ２９０には、図示しないホストからのデータが入力される。このとき、ホストＩ／Ｆ２９０は、インタフェース処理（ホストとの間の受信処理や、信号のバッファリング）を行い、インタフェース処理後のデータをフレームバッファ２４０に供給する。また、フレームバッファ２４０から読み出されたデータを、ホストＩ／Ｆ２９０を介してホストに供給できるようになっている。この場合、ホストＩ／Ｆ２９０は、インタフェース処理（ホストとの間の送信処理や、信号のバッファリング）を行い、インタフェース処理後のデータをホストに出力する。
【０１４５】
図１５に、図１４の第１のスケーラ回路２２０の構成例のブロック図を示す。
【０１４６】
図１５において、図１４と同一部分には同一符号を付し、適宜説明を省略する。図１５の第１のスケーラ回路２２０の各部は、システムクロックに同期して動作する。カメラＩ／Ｆ２１０を介して外部入力データとして入力された画素データは、カメラＩ／Ｆ２１０からの外部クロックに同期して入力バッファ３００にバッファリングされる。
【０１４７】
クロック生成回路３０２は、システムクロックをピクセルシフトに基づいてマスク制御されるシフトクロックと、該システムクロックをピクセルバリッドに基づいてマスク制御されるピクセルクロックとを生成する。
【０１４８】
第１のスケーラ回路２２０は、入力画像の垂直方向の画素データに対して拡大又は縮小処理を行う垂直方向画像処理部３１０と、該入力画像の水平方向の画素データに対して拡大又は縮小処理を行う水平方向画像処理部３２０とを含む。
【０１４９】
垂直方向画像処理部３１０は、垂直倍率設定レジスタ（図示せず）と、垂直スケーリング回路３１２と、垂直アキュームレータ回路３１４とを含む。垂直倍率設定レジスタ（図示せず）は、図１の倍率設定レジスタ１０の機能を有する。垂直スケーリング回路３１２は、図１の係数ＬＵＴ５０及びフィルタ演算部４０の機能を有する。垂直アキュームレータ回路３１４は、図１のアキュームレータ３０の機能を有する。図示しないホストが、垂直倍率設定レジスタに、画像の垂直方向の倍率の逆数を設定する。また図示しないホストが、垂直アキュームレータ回路３１４の累積加算の初期値を、図示しない垂直アキュームレータ回路用初期値設定レジスタに設定する。この初期値が垂直アキュームレータ回路３１４に供給される。
【０１５０】
水平方向画像処理部３２０は、水平倍率設定レジスタ（図示せず）と、水平スケーリング回路３２２と、水平アキュームレータ回路３２４とを含む。水平倍率設定レジスタ（図示せず）は、図１の倍率設定レジスタ１０の機能を有する。水平スケーリング回路３２２は、図１の係数ＬＵＴ５０及びフィルタ演算部４０の機能を有する。水平アキュームレータ回路３２４は、図１のアキュームレータ３０の機能を有する。図示しないホストが、水平倍率設定レジスタに、画像の水平方向の倍率の逆数を設定する。また図示しないホストが、水平アキュームレータ回路３２４の累積加算の初期値を、図示しない水平アキュームレータ回路用初期値設定レジスタに設定する。この初期値が水平アキュームレータ回路３２４に供給される。
【０１５１】
垂直アキュームレータ回路３１４は、垂直倍率設定レジスタに設定された倍率の逆数を累積加算し、係数ＬＵＴのアドレスである垂直補間座標と、バリッド信号validに相当するラインバリッドと、シフトイネーブル信号ShiftEnableに相当するラインシフトを出力する。垂直スケーリング回路３１２は、垂直補間座標に対応する係数と、入力バッファ３００からの画素データとの積和演算を行い、水平スケーリング回路３２２に対して出力する。また垂直スケーリング回路３１２は、ラインバリッドをラインイネーブルとして水平スケーリング回路３２２に出力する。
【０１５２】
水平アキュームレータ回路３２４は、水平倍率設定レジスタに設定された倍率の逆数を累積加算し、係数ＬＵＴのアドレスである水平補間座標と、バリッド信号validに相当するピクセルバリッドと、シフトイネーブル信号ShiftEnableに相当するピクセルシフトを出力する。
【０１５３】
図１６に、ピクセルクロック、ピクセルバリッド及び画素データとの関係を示す。図１６では、拡大処理時のピクセルクロック及び画素データの関係と、縮小処理時のピクセルクロック、ピクセルバリッド及び画素データの関係とを示している。
【０１５４】
図１５において、水平スケーリング回路３２２は、水平補間座標に対応する係数と、垂直スケーリング回路３１２からの出力データとの積和演算を行い、演算結果を出力バッファ３０４に出力する。また水平スケーリング回路３２２は、ピクセルバリッドをラインイネーブルとして出力バッファ３０４に出力する。
【０１５５】
出力バッファ３０４には、ピクセルクロックに同期して、水平スケーリング回路３２２からの出力データが格納される。このとき、ラインイネーブルがアクティブのデータのみが、出力バッファ３０４に格納される。
【０１５６】
こうすることで、垂直方向画像処理部３１０で縮小処理時に有効（拡大処理時は常に有効）にされた画素データに対して、水平方向画像処理部３２０が拡大処理又は縮小処理を行うことができる。そして、水平方向画像処理部３２０で縮小処理時に有効（拡大処理時は常に有効）にされた画素データのみが、出力バッファ３０４に格納される。
【０１５７】
なおアドレス生成回路３０６は、フレームバッファ２４０の書き込みアドレスを生成すると共に、垂直アキュームレータ回路３１４からのラインバリッドと、水平アキュームレータ回路３２４からのピクセルバリッドとに基づいて、フレームバッファ２４０へのライトイネーブルを生成することができる。
【０１５８】
この結果、出力バッファ３４０に格納された画素データが、フレームバッファ２４０に保存される。
【０１５９】
図１７に、図１４の第２のスケーラ回路２３０の構成例のブロック図を示す。
【０１６０】
図１７において、図１４と同一部分には同一符号を付し、適宜説明を省略する。図１７の第２のスケーラ回路２３０の各部は、システムクロックに同期して動作する。
【０１６１】
アドレス生成回路４００によって生成されたアドレスに基づいてフレームバッファ２４０から読み出されたデータは、入力バッファ４０２にバッファリングされる。
【０１６２】
クロック生成回路４０４は、システムクロックをピクセルシフトに基づいてマスク制御されるシフトクロックと、該システムクロックをピクセルバリッドに基づいてマスク制御されるピクセルクロックとを生成する。
【０１６３】
第２のスケーラ回路２３０は、入力画像（フレームバッファ２４０に格納された画素データにより表される画像）の垂直方向の画素データに対して拡大又は縮小処理を行う垂直方向画像処理部４１０と、該入力画像の水平方向の画素データに対して拡大又は縮小処理を行う水平方向画像処理部４２０とを含む。
【０１６４】
垂直方向画像処理部４１０は、垂直倍率設定レジスタ（図示せず）と、垂直スケーリング回路４１２と、垂直アキュームレータ回路４１４とを含む。垂直倍率設定レジスタ（図示せず）は、図１の倍率設定レジスタ１０の機能を有する。垂直スケーリング回路４１２は、図１の係数ＬＵＴ５０及びフィルタ演算部４０の機能を有する。垂直アキュームレータ回路４１４は、図１のアキュームレータ３０の機能を有する。図示しないホストが、垂直倍率設定レジスタに、画像の垂直方向の倍率の逆数を設定する。また図示しないホストが、垂直アキュームレータ回路４１４の累積加算の初期値を、図示しない垂直アキュームレータ回路用初期値設定レジスタに設定する。この初期値が垂直アキュームレータ回路４１４に供給される。
【０１６５】
水平方向画像処理部４２０は、水平倍率設定レジスタ（図示せず）と、水平スケーリング回路４２２と、水平アキュームレータ回路４２４とを含む。水平倍率設定レジスタ（図示せず）は、図１の倍率設定レジスタ１０の機能を有する。水平スケーリング回路４２２は、図１の係数ＬＵＴ５０及びフィルタ演算部４０の機能を有する。水平アキュームレータ回路４２４は、図１のアキュームレータ３０の機能を有する。図示しないホストが、水平倍率設定レジスタに、画像の水平方向の倍率の逆数を設定する。また図示しないホストが、水平アキュームレータ回路４２４の累積加算の初期値を、図示しない水平アキュームレータ回路用初期値設定レジスタに設定する。この初期値が水平アキュームレータ回路４２４に供給される。
【０１６６】
垂直方向画像処理部４１０の機能は、図１５の垂直方向画像処理部３１０と同様であるため説明を省略する。水平方向画像処理部４２０の機能は、図１５の水平方向画像処理部３２０と同様であるため説明を省略する。
【０１６７】
垂直アキュームレータ回路４１４からのラインシフトは、アドレス生成回路４００に供給される。水平アキュームレータ回路４２４からのピクセルシフトは、アドレス生成回路４００に供給される。アドレス生成回路４００は、ラインシフト及びピクセルシフトに基づいてフレームバッファ２４０の読み出しアドレスを生成する。
【０１６８】
水平スケーリング回路４２２は、水平補間座標に対応する係数と、垂直スケーリング回路４１２からの出力データとの積和演算を行い、演算結果を出力バッファ４０６に出力する。
【０１６９】
出力バッファ４０６には、ピクセルクロックに同期して、水平スケーリング回路４２２からの出力データが格納される。このとき、ラインイネーブルがアクティブのデータのみが、出力バッファ４０６に格納される。
【０１７０】
こうすることで、垂直方向画像処理部４１０で縮小処理時に有効（拡大処理時は常に有効）にされた画素データに対して、水平方向画像処理部４２０が拡大処理又は縮小処理を行うことができる。そして、水平方向画像処理部４２０で縮小処理時に有効（拡大処理時は常に有効）にされた画素データのみが、出力バッファ４０６に格納される。
【０１７１】
この結果、出力バッファ４０６に格納された画素データが、ＲＧＢＩ／Ｆ２５０又はＹＵＶＩ／Ｆ２７０に出力される。
【０１７２】
３．  電子機器
図１８に、本実施形態における電子機器の構成例のブロック図を示す。ここでは、電子機器として、携帯電話機の構成例のブロック図を示す。
【０１７３】
携帯電話機７００は、図１７の表示コントローラ２００を含む。携帯電話機７００は、カメラモジュール７１０を含む。カメラモジュール７１０は、ＣＣＤカメラを含み、ＣＣＤカメラで撮像した画像のデータを表示コントローラ２００に供給する。
【０１７４】
携帯電話機７００は、表示パネル６３０を含む。表示パネル６３０として、液晶表示パネルを採用できる。この場合、表示パネル６３０は、表示ドライバ６２０によって駆動される。表示パネル６３０は、複数の走査線、複数のデータ線、複数の画素を含む。表示ドライバ６２０は、複数の走査線の１又は複数本単位で走査線を選択する走査ドライバの機能を有すると共に、画素データに対応した電圧を複数のデータ線に供給するデータドライバの機能を有する。
【０１７５】
表示コントローラ２００は、表示ドライバ６２０に接続され、表示ドライバ６２０に対してＲＧＢフォーマットの画素データを供給する。画素データのＲＧＢフォーマットとＹＵＶフォーマットの間の変換は、表示コントローラ２００内で行うことができる。
【０１７６】
ホスト７２０は、表示コントローラ２００に接続される。ホスト７２０は、表示コントローラ２００を制御する。またホスト７２０は、アンテナ７２２を介して受信された画素データを、変復調部７３０で復調した後、表示コントローラ２００に供給できる。表示コントローラ２００は、この画素データに基づき、表示ドライバ６２０により表示パネル６３０に表示させる。
【０１７７】
ホスト７２０は、カメラモジュール７１０で生成された画素データを変復調部７３０で変調した後、アンテナ７２２を介して他の通信装置への送信を指示できる。
【０１７８】
ホスト７２０は、操作入力部７４０からの操作情報に基づいて画素データの送受信処理、カメラモジュール７１０の撮像、表示パネルの表示処理を行う。
【０１７９】
なお、図１８では、表示パネル６３０として液晶表示パネルを例に説明したが、これに限定されるものではない。表示パネル６３０は、エレクトロクミネッセンス、プラズマディスプレイ装置であってもよく、これらを駆動する表示ドライバに画素データを供給する表示コントローラに適用できる。また表示コントローラ２００が、ＹＵＶ形式の画素データを、図示しない出力端子を介して接続されるＣＲＴ装置に対して出力してもよい。
【０１８０】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１８１】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【０１８２】
【図１】本実施形態における画像処理装置の構成の概要のブロック図。
【図２】処理後の画素データとバリッド信号との関係の一例を示す図。
【図３】本実施形態における画像の拡大処理及び縮小処理の説明図。
【図４】補間画素の画素データの説明図。
【図５】本実施形態における画像の拡大処理及び縮小処理の他の例の説明図。
【図６】図１のアキュームレータの構成例のブロック図。
【図７】倍率設定レジスタの設定データの整数部及び小数部の説明図。
【図８】図６のアキュームレータの拡大処理モードの動作を模式的に示す図。
【図９】図６のアキュームレータの縮小処理モードの動作を模式的に示す図。
【図１０】図１の係数ＬＵＴの構成例のブロック図。
【図１１】図１のアキュームレータ、係数ＬＵＴ及びフィルタ演算部の構成例のブロック図。
【図１２】本実施形態における画像処理装置の拡大処理の一例の説明図。
【図１３】本実施形態における画像処理装置の縮小処理の一例の説明図。
【図１４】本実施形態における画像処理装置が適用される表示コントローラの構成例のブロック図。
【図１５】図１４の第１のスケーラ回路の構成例のブロック図。
【図１６】ピクセルクロック、ピクセルバリッド及び画素データとの関係を示す図。
【図１７】図１４の第２のスケーラ回路の構成例のブロック図。
【図１８】本実施形態における電子機器の構成例のブロック図。
【図１９】従来の画像処理装置における拡大処理又は縮小処理後の画像の一例の模式図。本実施形態における電子機器の構成例のブロック図。
【図２０】図２０（Ａ）、図２０（Ｂ）はファームウェアのコードの一例の説明図。
【符号の説明】
【０１８３】
１０  倍率設定レジスタ、  ２０  シームレス画素処理部、  ３０  アキュームレータ、
３２  初期値設定レジスタ、  ４０  フィルタ演算部、  ５０  係数ＬＵＴ、
６０  モード判定部、  ６２  倍率アキュームレータレジスタ、  ６４、７０  加算器、
６６  上位ビット付加部、  ６８  下位ビット付加部、  ７２、７６  デクリメンタ、
７４、８０  セレクタ、  ７８  整数解析部、  １００  画像処理装置、
２００  表示コントローラ、  ２１０  カメラＩ／Ｆ、  ２２０  第１のスケーラ回路、
２３０  第２のスケーラ回路、  ２４０  フレームバッファ、  ２５０  ＲＧＢＩ／Ｆ、
２７０  ＹＵＶＩ／Ｆ、  ２８０  ＪＰＥＧ回路、  ２９０  ホストＩ／Ｆ
【図１】
2006251862.tif 000003
【図２】
2006251862.tif 000004
【図３】
2006251862.tif 000005
【図４】
2006251862.tif 000006
【図５】
2006251862.tif 000007
【図６】
2006251862.tif 000008
【図７】
2006251862.tif 000009
【図８】
2006251862.tif 000010
【図９】
2006251862.tif 000011
【図１０】
2006251862.tif 000012
【図１１】
2006251862.tif 000013
【図１２】
2006251862.tif 000014
【図１３】
2006251862.tif 000015
【図１４】
2006251862.tif 000016
【図１５】
2006251862.tif 000017
【図１６】
2006251862.tif 000018
【図１７】
2006251862.tif 000019
【図１８】
2006251862.tif 000020
【図１９】
2006251862.tif 000021
【図２０】
2006251862.tif 000022