(57)【要約】【課題】正確な画素位相の縮小画像を生成することができる画像処理装置を提供する。【解決手段】画像処理装置１は、データシフト量に基づいて、入力データをシフトして画素データを得るデータシフタ部１２と、設定されたアップサンプル数に応じたフィルタ係数を記憶するフィルタ係数メモリ１３と、データシフト量と、位相に応じたフィルタ係数を選択するための格納アドレスとを生成する位相制御部１１と、位相に応じたフィルタ係数と、シフトして得られた画素データとを乗算し、出力データを得るフィルタ演算部１６とを具備する。また、位相制御部１１は、ダウンサンプル数をアップサンプル数で割った余りを累積加算する加算器６２と、キャリが発生する毎に累積加算結果からアップサンプル数を減算する減算部６３と、減算結果にアップサンプル数を加算し、格納アドレスを得る加算部６４とを有する。【選択図】図２
2011160282.tif 000002
【特許請求の範囲】
【請求項１】
入力データを順次取り込み、データシフト量に基づいて、取り込んだ前記入力データをシフトして画素データを得るデータシフタ部と、
設定されたアップサンプル数に応じて読み出されたフィルタ係数を記憶するフィルタ係数メモリと、
前記データシフタ部に供給するための前記データシフト量と、前記フィルタ係数メモリから位相に応じたフィルタ係数を選択するための格納アドレスとを生成する位相制御部と、
前記格納アドレスによって選択された前記位相に応じたフィルタ係数と、前記データシフタ部によってシフトして得られた前記画素データとを乗算し、出力データを得るフィルタ演算部と、を具備し、
前記位相制御部は、ダウンサンプル数を前記アップサンプル数で割った余りを累積加算する累積加算部と、前記累積加算部でキャリが発生する毎に前記累積加算部の累積加算結果から前記アップサンプル数を減算する減算部と、前記減算部の減算結果に前記アップサンプル数を加算し、前記格納アドレスを得る加算部とを有することを特徴とする画像処理装置。
【請求項２】
前記アップサンプル数が所定の値を超えた場合、前記フィルタ係数メモリに記憶される最大のアップサンプル数のフィルタ係数で出力画素位相を近似する位相近似部を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記フィルタ係数メモリは、前記アップサンプル数に応じたフィルタ係数にうち、反転して生成されるフィルタ係数を記憶しないことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
反転制御信号及び位相制御信号に基づいて、前記反転して生成されるフィルタ係数を生成するフィルタ係数生成部を有することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
入力データを順次取り込み、データシフト量に基づいて、取り込んだ前記入力データをシフトして画素データを得、
設定されたアップサンプル数に応じて読み出されたフィルタ係数を記憶し、
前記データシフト量と、記憶された前記フィルタ係数から位相に応じたフィルタ係数を選択するための格納アドレスとを生成し、
前記格納アドレスによって選択された前記位相に応じたフィルタ係数と、前記シフトして得られた前記画素データとを乗算し、出力データを得、
ダウンサンプル数を前記アップサンプル数で割った余りを累積加算し、累積加算した結果、キャリが発生する毎に累積加算結果から前記アップサンプル数を減算し、減算結果に前記アップサンプル数を加算し、前記格納アドレスを得ることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関し、特に、正確な画素位相の縮小画像を生成する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
近年、テレビジョン装置は、複数の番組を同時に視聴するために、マルチウィンドウ処理を行うことができるようになっている。このようなマルチウィンドウ処理を行うテレビジョン装置では、表示領域に複数の番組を表示できるように、入力された画像サイズを縮小する処理が行われる。
【０００３】
例えば、入力信号に対し可変LPF（Low Pass Filter）で変換比に応じて高い周波数成分を抑圧し、続けて複数の固定位相シフトフィルタから適当なものを画素毎に選択することで、画質を保ちながら拡大から縮小までを連続的に処理できる画像サンプル数変換装置が提案されている（例えば、特許文献１参照）。
【０００４】
この提案の画像サンプル数変換装置は、４倍の固定のアップサンプル数によって、入力された画像サンプルをアップサンプルした後、縮小比率に応じて出力位相に近い補間画素を選択して出力している。
【０００５】
しかしながら、この提案の画像サンプル数変換装置では、アップサンプル数が固定のため、入力された画像サンプルを、例えば、４：３＝０．７５倍に縮小する場合、正確な画素位相の縮小画像を生成することができないという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３４３１９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、アップサンプル数を可変にすることにより、正確な画素位相の縮小画像を生成することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、入力データを順次取り込み、データシフト量に基づいて、取り込んだ前記入力データをシフトして画素データを得るデータシフタ部と、設定されたアップサンプル数に応じて読み出されたフィルタ係数を記憶するフィルタ係数メモリと、前記データシフタ部に供給するための前記データシフト量と、前記フィルタ係数メモリから位相に応じたフィルタ係数を選択するための格納アドレスとを生成する位相制御部と、前記格納アドレスによって選択された前記位相に応じたフィルタ係数と、前記データシフタ部によってシフトして得られた前記画素データとを乗算し、出力データを得るフィルタ演算部と、を具備し、前記位相制御部は、ダウンサンプル数を前記アップサンプル数で割った余りを累積加算する累積加算部と、前記累積加算部でキャリが発生する毎に前記累積加算部の累積加算結果から前記アップサンプル数を減算する減算部と、前記減算部の減算結果に前記アップサンプル数を加算し、前記格納アドレスを得る加算部とを有することを特徴とする画像処理装置を提供することができる。
【発明の効果】
【０００９】
本発明の画像処理装置によれば、アップサンプル数を可変にすることにより、正確な画素位相の縮小画像を生成することができる。
【００１０】
また、前記フィルタ係数メモリに記憶し生成可能な最大位相数を超えるアップサンプル数の縮小比率に対しては、前記位相制御部は、前記最大位相数をアップサンプル数として前記格納アドレスを生成することにより、位相誤差の小さな近似画素位相の縮小画像を生成することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態に係るテレビジョン装置の構成の例を説明するためのブロック図である。
【図２】本実施の形態に係る画像処理装置の構成の例を説明するためのブロック図である。
【図３】１６倍アップサンプル時に設定されるフィルタ係数の例を説明するための説明図である。
【図４】１５倍アップサンプル時に設定されるフィルタ係数の例を説明するための説明図である。
【図５】位相制御部の構成の例を説明するためのブロック図である。
【図６】データシフタ部の構成の例を説明するためのブロック図である。
【図７】フィルタ係数選択部の構成の例を説明するためのブロック図である。
【図８】フィルタ演算部の構成の例を説明するためのブロック図である。
【図９】位相演算部の構成の例を説明するためのブロック図である。
【図１０】出力画素データの例を説明するための説明図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態について詳細に説明する。  
まず、図１に基づき、本実施の形態に係るテレビジョン装置の構成について説明する。図１は、本実施の形態に係るテレビジョン装置の構成の例を説明するためのブロック図である。図１に示すように、テレビジョン装置１００は、チューナ１０１と、ビデオデコーダ１０２と、制御部１０３と、画像処理部１０４と、液晶ディスプレイ（以下、LCDという）ドライバ１０５とを有して構成されている。LCDドライバ１０５には、LCD１０６が接続されている。
【００１３】
画像処理部１０４は、バッファ１０７と、フィルタ１０８と、マルチウィンドウ処理部１０９とを有して構成されている。画像処理部１０４は、制御部１０３からの制御に基づいて、後述する画像サイズの縮小処理を含む種々の処理を行う。ここでは、例えば、ビデオデコーダ１０２、制御部１０３及び画像処理部１０４が１チップの半導体装置として構成されている。なお、LCDドライバ１０５の一部又は全ても、この半導体装置に含まれていてもよい。
【００１４】
チューナ１０１には、図示しないアンテナにより受信されたデジタル放送信号が供給される。チューナ１０１は、供給されたデジタル放送信号からユーザに指定されたチャンネルを選局し、ビデオデコーダ１０２に出力する。
【００１５】
ビデオデコーダ１０２は、選局されたチャンネルのビデオデータをデコードし、映像信号を得る。ビデオデコーダ１０２により得られた映像信号は、バッファ１０７に供給され保持される。
【００１６】
フィルタ１０８は、リードアドレス（以下、radrという）及びリードリクエスト（以下、rreqという）をバッファ１０７に出力し、バッファ１０７が保持している映像信号を読み出す。フィルタ１０８は、読み出した映像信号に対し、後述する画像サイズの縮小処理を施し、マルチウィンドウ処理部１０９に出力する。このフィルタ１０８が本実施の形態に係る画像処理装置を構成する。
【００１７】
マルチウィンドウ処理部１０９は、縮小処理が施された映像信号にマルチウィンドウ処理を施し、LCDドライバ１０５に出力する。LCDドライバ１０５は、マルチウィンドウ処理が施された映像信号をLCD１０６に出力し、LCD１０６に映像を表示させる。
【００１８】
なお、LCD１０６に映像を表示させる装置としてテレビジョン装置１００を例に説明したが、テレビジョン装置１００に代わり、例えば、インターネットテレビであってもよい。この場合、ビデオデコーダ１０２には、インターネットからデジタル放送信号が供給される。
【００１９】
図２は、本実施の形態に係る画像処理装置の構成の例を説明するためのブロック図である。図２に示すように、画像処理装置１は、位相制御部１１と、データシフタ部１２と、フィルタ係数メモリ１３と、フィルタ処理部１４とを有して構成されている。フィルタ処理部１４は、フィルタ係数選択部１５と、複数、ここでは、３つのフィルタ演算部１６〜１８とを有して構成されている。
【００２０】
位相制御部１１には、stop_address、down_div_up、down_mod_up、up_sample、pix_offset、phase_offset及びchroma_formatの各信号が供給される。これらの各信号は、制御部１０３によって制御され、位相制御部１１に供給される。
【００２１】
stop_addressは、例えば、画面の右端等に存在するデータがない画素を参照しないようにするための信号である。
【００２２】
down_div_upは、ダウンサンプル数をアップサンプル数で割って得られる商を示す信号であり、down_mod_upは、ダウンサンプル数をアップサンプル数で割って得られる余りを示す信号である。ここで、ダウンサンプル数とアップサンプル数は、入力画素数と出力画素数を比で表わした数である。例えば、１６個の入力画素に対して、１２個の出力画素を得る、即ち、４：３＝０．７５倍に画像サイズを縮小する場合、ダウンサンプル数は４となり、アップサンプル数は３となる。ダウンサンプル数の４をアップサンプル数の３で割って得られる商及び余りは、それぞれ１となるため、down_div_upは１となり、down_mod_upも１となる。
【００２３】
up_sampleは、上述したアップサンプル数を示す信号であり、４：３に画像サイズを縮小する場合、３となる。
【００２４】
pix_offset、phase_offset、どの画素位置と位相位置から縮小処理を始めるかを示す信号である。
【００２５】
chroma_formatは、色信号についての水平方向のサンプル数の違いにより、４：４：４、４：２：２または４：２：０等のフォーマットを示す信号である。このchroma_formatは、位相制御部１１内の図示しない色制御部に入力されるとともに、フィルタ処理部１４に入力される。フィルタ処理部１４では、このchroma_formatに基づいて、フィルタ演算部１６〜１８の全て、あるいは、一部を使用するかが制御される。
【００２６】
位相制御部１１は、上述したように、radr及びrreqをバッファ１０７に出力し、映像信号を読み出す。この映像信号は、入力データとしてデータシフタ部１２に供給される。
【００２７】
また、位相制御部１１は、タップ（tap）画素位置情報及びシフト制御情報をデータシフタ部１２に出力し、位相情報及びchroma_formatをフィルタ処理部１４に出力する。さらに、位相制御部１１は、格納アドレスをフィルタ係数メモリ１３に出力する。
【００２８】
データシフタ部１２は、バッファ１０７から読み出された入力データを順次取り込み、シフト制御情報に基づいて、取り込んだ入力データをシフトして画素データを得る。データシフタ部１２は、この画素データをフィルタ処理部１４に出力する。
【００２９】
フィルタ係数メモリ１３には、図示しない記憶部から設定されたアップサンプル数に応じたフィルタ係数が読み出され、設定される。フィルタ係数メモリ１３は、位相制御部１１からの格納アドレスで指定されるフィルタ係数をフィルタ処理部１４のフィルタ係数選択部１５に出力する。
【００３０】
ここで、フィルタ係数メモリ１３に設定されるフィルタ係数について説明する。図３は、１６倍アップサンプル時に設定されるフィルタ係数の例を説明するための説明図であり、図４は、１５倍アップサンプル時に設定されるフィルタ係数の例を説明するための説明図である。
【００３１】
図示しない記憶部には、１６倍アップサンプル時のフィルタ係数として、図３に示すフィルタ係数のグレーの網掛けがされていない部分（以下、無網掛け部分という）のフィルタ係数が記憶されている。同様に、この記憶部には、１５倍アップサンプル時のフィルタ係数として、図４に示すフィルタ係数の無網掛け部分のフィルタ係数が記憶されている。また、この記憶部には、１〜１４倍アップサンプル時のそれぞれに対応するフィルタ係数も記憶されている。なお、この記憶部は、１７倍以上のアップサンプル数のそれぞれに対応するフィルタ係数を記憶するようにしてもよい。
【００３２】
例えば、１６倍アップサンプル時には、図３に示すフィルタ係数の無網掛け部分のフィルタ係数が読み出され、フィルタ係数メモリ１３に設定される。１６倍アップサンプルから１５倍アップサンプルに変更された場合、新たに図４に示すフィルタ係数の無網掛け部分のフィルタ係数が読み出され、フィルタ係数メモリ１３に設定される。
【００３３】
ここで、図３及び図４のグレーの網掛けがされている部分（以下、網掛け部分という）のフィルタ係数が図示しない記憶部に記憶されていない理由について説明する。例えば、図３に示すphase０のtap８〜tap１５のフィルタ係数は、それぞれphase０のtap７〜tap０のフィルタ係数と同一のフィルタ係数になっている。また、phase８のtap０〜tap７のフィルタ係数は、それぞれphase８のtap１５〜tap８のフィルタ係数と同一のフィルタ係数になっている。さらに、phase９のtap０〜tap１５のフィルタ係数は、それぞれphase７のtap１５〜tap０のフィルタ係数と同一のフィルタ係数になっている。
【００３４】
このため、phase９のtap０〜tap１５のフィルタ係数を使用する場合、phase７のtap０〜tap１５のフィルタ係数を反転させて使用すればよく、図３の網掛け部分のフィルタ係数をフィルタ係数メモリ１３及び図示しない記憶部に保持する必要がなくなる。この結果、フィルタ係数メモリ１３及び図示しない記憶部の記憶容量を小さくすることができる。なお、c0の係数値として、本来の係数値の1/2の値が設定される。そして、図２のデータシフタ部１２により、同じ画素値が中央２tap（tap７, tap８）に供給され、tap７とtap８の２箇所で演算される為、c0の本来の係数値として演算される。これは、c0の本来の係数は、対称なフィルタ係数を用いると必ず最下位ビットがゼロとなる為であり、この様に設定することで係数メモリを有効に利用して、演算精度及びダイナミックレンジを確保できる。
【００３５】
図３及び図４の網掛け部分のフィルタ係数は、後述するように、coef_invert_f及びphase_index_fの値に基づいて、フィルタ係数選択部１５によって生成される。
【００３６】
図２に戻り、フィルタ処理部１４のフィルタ係数選択部１５は、後述するように、フィルタ係数メモリ１３から読み出されたフィルタ係数を選択し、フィルタ演算部１６〜１８に出力する。
【００３７】
フィルタ処理部１４のフィルタ演算部１６〜１８は、データシフタ部１２からの画素データとフィルタ係数メモリ１３からのフィルタ係数とを乗算し、出力データを得る。この出力データは、マルチウィンドウ処理部１０９に供給される。
【００３８】
図５は、位相制御部の構成の例を説明するためのブロック図である。図５に示すように、位相制御部１１は、位相演算部２１と、タップ画素位置演算部２２と、位相近似部２３とを有して構成されている。
【００３９】
位相演算部２１には、down_mod_up、up_sample及びphase_offsetの各信号が供給される。なお、フィルタ係数メモリに記憶し生成可能な最大位相数(この例では１６)を超えるアップサンプル数の縮小比率に対しては、up_sampleとして前記最大位相数が供給される。
【００４０】
位相演算部２１は、これらの信号に基づいて、後述するキャリ信号及び位相情報をそれぞれタップ画素位置演算部２２及び位相近似部２３に出力する。
【００４１】
タップ画素位置演算部２２には、stop_address、down_div_up及びpix_offsetの各信号が供給される。
【００４２】
また、タップ画素位置演算部２２に供給されるキャリ信号は、参照する画素のウィンドウ位置を設定するための信号である。具体的には、このキャリ信号は、入力画素の画素位置の誤差、言い換えると、位相の誤差を修正するための信号である、例えば、４：３＝０．７５倍に画像サイズを縮小する場合、４個の入力画素に対して３個の画素を出力し、次の４個の入力画素に対して３個の画素を出力する際に、この次の４個の入力画素のウィンドウ位置を設定するためにキャリ信号が用いられる。
【００４３】
タップ画素位置演算部２２は、これらの信号に基づいて、参照する画素のウィンドウ位置を設定するとともに、参照領域をシフトさせる各信号を生成する。タップ画素位置演算部２２は、シフト制御情報及びタップ画素位置情報をデータシフタ部１２に出力し、radr及びrreqをバッファ１０７に出力する。なお、calc_ennは、フィルタ処理部１４から出力された出力データを一時的に保持する図示しないバッファに供給される信号であり、出力データを図示しないバッファに書き込むタイミングを制御する。
【００４４】
位相近似部２３は、位相演算部２１からの位相情報に基づいて、フィルタ係数メモリ１３から対応する位相に応じたフィルタ係数を選択するための格納アドレスを生成し、フィルタ係数メモリ１３に出力する。また、位相近似部２３は、位相演算部２１からの位相情報に基づいて、coef_invert_f及びphase_index_fの情報を含む位相情報を生成し、フィルタ処理部１４に出力する。さらに、位相近似部２３は、アップサンプル数が１６を超える場合、係数メモリで許容される最大のアップサンプル数、即ち、本実施の形態では、図３に示すフィルタ係数を用いて出力画素位相を近似するための位相情報をフィルタ処理部１４に出力する。
【００４５】
図６は、データシフタ部の構成の例を説明するためのブロック図である。
【００４６】
データシフタ部１２は、８画素単位シフタ部２５と、１６画素選択部２６と有して構成されている。
【００４７】
８画素単位シフタ部２５には、バッファ１０７からの入力データと、位相制御部１１からのシフト制御情報が供給される。８画素単位シフタ部２５は、シフト制御情報に基づいて、入力データを８画素単位でシフトし、シフトしたデータを１６画素選択部２６に出力する。
【００４８】
１６画素選択部２６には、位相制御部１１からのタップ画素位置情報が供給される。１６画素選択部２６は、タップ画素位置情報に基づいて、画素単位の切り出しを行い、切り出した画素データをフィルタ処理部１４のフィルタ演算部１６〜１８に出力する。なお、phase０の場合は、tap中央に相当する同じ画素値が中央２画素に出力される。
【００４９】
図７は、フィルタ係数選択部の構成の例を説明するためのブロック図である。
【００５０】
図７に示すように、フィルタ係数選択部１５は、セレクタ３１〜３４と、ラッチ回路であるD型フリップフロップ（以下、DFFという）３５及び３６と、セレクタ３７とを有している。
【００５１】
セレクタ３１には、tap０〜tap７のフィルタ係数及びtap１５〜tap８のフィルタ係数が供給され、セレクタ３２には、tap８〜tap１５のフィルタ係数及びtap７〜tap０のフィルタ係数が供給される。
【００５２】
セレクタ３１は、coef_invert_fの値に基づいて、tap０〜tap７のフィルタ係数またはtap１５〜tap８のフィルタ係数を選択し、DFF３５に出力する。セレクタ３１は、coef_invert_fの値が０の場合、tap０〜tap７のフィルタ係数を選択し、coef_invert_fの値が１の場合、tap１５〜tap８を選択する。
【００５３】
また、セレクタ３２は、coef_invert_f及びphase_index_fの値に基づいて、tap８〜tap１５のフィルタ係数またはtap７〜tap０のフィルタ係数を選択し、DFF３５に出力する。セレクタ３２は、coef_invert_fの値が０及びphase_index_fの値が００の場合、tap８〜tap１５のフィルタ係数を選択し、coef_invert_f及びphase_index_fの値が００の値が１の場合、tap７〜tap０を選択する。そして、セレクタ３２は、phase_index_fの値が１０の場合、coef_invert_fの値に関係なく、tap７〜tap０のフィルタ係数を選択し、phase_index_fの値が０１の場合、coef_invert_fの値に関係なく、tap８〜tap１５のフィルタ係数を選択する。
【００５４】
この結果、coef_invert_fの値が０及びphase_index_fの値が００の場合、セレクタ３１によりtap０〜tap７のフィルタ係数が選択され、セレクタ３２によりtap８〜tap１５のフィルタ係数が選択される。即ち、図３に示すpahse１〜７のいずれかのフィルタ係数が選択されることになる。
【００５５】
また、coef_invert_fの値が１及びphase_index_fの値が００の場合、セレクタ３１によりtap１５〜tap８のフィルタ係数が選択され、セレクタ３２によりtap７〜tap０のフィルタ係数が選択される。即ち、図３に示すpahse９〜１５のいずれかのフィルタ係数が選択されることになる。
【００５６】
さらに、coef_invert_fの値が０及びphase_index_fの値が１０の場合、セレクタ３１によりtap０〜tap７のフィルタ係数が選択され、セレクタ３２によりtap７〜tap０のフィルタ係数が選択される。即ち、図３に示すpahse０のフィルタ係数が選択されることになる。
【００５７】
さらにまた、coef_invert_fの値が１及びphase_index_fの値が０１の場合、セレクタ３１によりtap１５〜tap８のフィルタ係数が選択され、セレクタ３２によりtap８〜tap１５のフィルタ係数が選択される。即ち、図３に示すpahse８のフィルタ係数が選択されることになる。
【００５８】
DFF３５は、セレクタ３１及び３２からのフィルタ係数を取り込み、フィルタ演算部に出力するとともに、セレクタ３７に出力する。
【００５９】
また、セレクタ３３、３４及びDFF３６は、色信号用のフィルタ係数を選択する選択部である。このセレクタ３３、３４及びDFF３６は、輝度信号用の選択部に比べ、tap数が半数になっているが、それぞれセレクタ３１、３２及びDFF３５と同様の処理を行う。
【００６０】
セレクタ３７は、chroma_formatに基づいて、DFF３５またはDFF３６からの出力を選択し、フィルタ演算部に出力する。セレクタ３７は、chroma_formatが４：４：４のフォーマットを示す信号の場合、DFF３５からの出力を選択し、chroma_formatが４：２：２または４：２：０のフォーマットを示す信号の場合、DFF３６からの出力を選択する。
【００６１】
図８は、フィルタ演算部の構成の例を説明するためのブロック図である。なお、図８ではフィルタ演算部１６の構成の例について説明するが、フィルタ演算部１７及び１８も同様の構成である。
【００６２】
フィルタ演算部１６は、乗算器４１ａ〜４１ｐと、DFF４２ａ〜４２ｐと、加算器４３ａ〜４３ｈと、加算器４４ａ〜４４ｄと、DFF４５ａ〜４５ｄと、加算器４６ａ及び４６ｂと、加算器４７と、DFF４８と、整数化部４９と、ビット制限部５０と、DFF５１とを有して構成されている。
【００６３】
乗算器４１ａ〜４１ｐには、データシフタ部１２から出力された画素データpel00[11:0]〜pel15[11:0]と、フィルタ係数選択部１５から出力されたフィルタ係数coef00[8:0]〜coef15[8:0]とがそれぞれ入力される。また、乗算器４１ａ〜４１ｐには、制御信号として０または１がそれぞれ入力される。
【００６４】
乗算器４１ａ〜４１ｐのそれぞれは、制御信号に応じて、出力データpel00[11:0]〜pel15[11:0]とフィルタ係数coef00[8:0]〜coef15[8:0]とを乗算し、乗算結果をDFF４２ａ〜４２ｐに出力する。乗算器４１ａ〜４１ｐのそれぞれは、制御信号が０の場合、符号なし乗算を行い、制御信号が１の場合、符号あり乗算を行う。本実施の形態では、乗算器４１ａ〜４１ｇ及び４１ｊ〜４１ｐが符号あり乗算を行い、乗算器４１ｈ及び４１ｉが符号なし乗算を行なっている。これは、縮小フィルタの場合は、tap中央２画素に対するフィルタ係数は、必ず正の値になる為である。また、phase０の中央画素に対しては、これら２箇所で演算されることにより、更にダイナミックレンジの拡大を図れる。例えば、係数メモリに格納するビット数が小数点以下９bitとすると、phase０の中央１係数c0は、0〜1022/512、その他のphaseの中央２係数は、0〜512/512、残りの係数は、-0.5〜255/512を取る事ができる。これにより係数メモリの必要bit数を増加させることなく演算精度とダイナミックレンジを確保できる。
【００６５】
DFF４２ａ〜４２ｐは、それぞれ乗算器４１ａ〜４１ｐからの乗算結果を取り込み、取り込んだ乗算結果を対応する加算器に出力する。例えば、加算器４３ａには、DFF４２ａ及び４２ｃからの乗算結果が供給される。加算器４３ａは、DFF４２ａ及び４２ｃからの乗算結果を加算し、加算した加算結果を加算器４４ａに出力する。加算器４４ｂ〜４４ｈも同様の加算処理を行う。
【００６６】
加算器４４ａには、加算器４３ａ及び４４ｃからの加算結果が供給される。加算器４４ａは、加算器４３ａ及び４４ｃからの加算結果を加算し、加算した加算結果をDFF４５ａに出力する。加算器４４ｂ〜４４ｄも同様の加算処理を行う。
【００６７】
DFF４５ａ〜４５ｄには、加算器４４ａ〜４４ｄからの加算結果がそれぞれ入力される。DFF４５ａ〜４５ｄは、それぞれ加算器４４ａ〜４４ｄからの乗算結果を取り込み、取り込んだ乗算結果を対応する加算器に出力する。例えば、加算器４６ａには、DFF４５ａ及び４５ｃからの乗算結果が供給される。加算器４６ａは、DFF４５ａ及び４５ｃからの加算結果を加算し、加算した加算結果を加算器４７に出力する。加算器４６ｂも同様の加算処理を行う。
【００６８】
加算器４７は、加算器４６ａ及び４６ｂからの加算結果を加算し、加算した加算結果をDFF４８に出力する。
【００６９】
DFF４８は、加算器４７からの加算結果を取り込み、取り込んだ加算結果を整数化部４９に出力する。
【００７０】
整数化部４９は、DFF４８からの加算結果を整数化し、整数化した加算結果をビット制限部５０に出力する。
【００７１】
ビット制限部５０は、整数化部４９からの整数化した加算結果を所定のビット数に制限する処理を行い、処理結果をDFF５１に出力する。
【００７２】
DFF５１は、ビット制限部５０からの処理結果を取り込み、取り込んだ処理結果を出力データとして出力する。
【００７３】
図９は、位相演算部の構成の例を説明するためのブロック図である。
【００７４】
図９に示すように、位相演算部２１は、セレクタ６１と、加算器６２と、減算器６３と、加算器６４とを有して構成されている。
【００７５】
セレクタ６１には、up_sampleの値と、固定値として０が入力されている。また、セレクタ６１には、加算器６２からのキャリ出力値が選択信号として入力される。セレクタ６１は、加算器６２からのキャリ出力値が１の場合、up_sampleの値を選択し、加算器６２からのキャリ出力値が１以外の場合、固定値０を選択する。
【００７６】
上述したように、４つの入力画素数に対して、３つの出力画素数を得る場合、up_sampleは３となり、down_mod_upは１となる。加算器６２は、初期値として１をセレクタ６１に出力する。そのため、セレクタ６１は、up_sampleの値である３を減算器６３に出力する。また、加算器６２は、初期値の−up_sampleにdown_mod_upの値である１を加算し、減算器６３に出力する。
【００７７】
減算器６３は、セレクタ６１の出力値と加算器６２の出力値を減算し、減算結果である−２を加算器６２及び６４に出力する。加算器６２は、この減算結果にdown_mod_upの値である１を加算し、加算結果の−１をセレクタ６１及び減算器６３に出力する。セレクタ６１は、固定値である０を減算器６３に出力している。そのため、減算器６３は、−１に０を減算した減算結果である−１を加算器６２及び６４に出力する。
【００７８】
加算器６２は、減算器６３からの減算結果である−１にdown_mod_upの値である１を加算する。加算器６２は、この加算結果が０になるとキャリ信号を発生し、タップ画素位置演算部２２に出力する。また、キャリが発生すると、セレクタ６１にはキャリ出力値として１が入力されるため、up_sampleの値である３が選択され減算器６３に出力される。このように、加算器６２は、ダウンサンプル数を前記アップサンプル数で割った余りを累積加算する累積加算部を構成する。
【００７９】
また、加算器６４は、減算器６３からの出力値にup_sampleの値である３を加算し、この加算結果を位相情報として位相近似部２３に出力する。
【００８０】
図１０は、出力画素データの例を説明するための説明図である。
【００８１】
図１０に示すように、従来、画像サンプル数を縮小する装置は、固定のアップサンプル数、ここでは、４倍のアップサンプル数で、入力された画像サンプルをアップサンプルした後、縮小比率に応じて出力位相に近い補間画素を選択して出力している。
【００８２】
本実施の形態では、位相演算部２１により、ｍ＝１〜１６まで、画素位相精度を可変、即ち、補間画素の位置が可変のため、ｍが１６以下の場合、正確な位相の画素データが出力可能となる。例えば、４：３＝０．７５倍に縮小するときは、常に正確な画素位相となる。また、縮小率ｍ／ｎにおいて、ｍを１〜１６の範囲で表せない場合、位相近似部２３において、出力画素位相精度を１／１６として近似画素位相出力としている。
【００８３】
以上のように、本実施の形態の画像処理装置によれば、アップサンプル数を可変にすることにより、正確な画素位相の縮小画像を生成することができる。また、位相近似を行う場合、係数メモリで許容される最大のアップサンプル数で出力画素位相を近似するため、位相誤差を小さくすることができる。
【００８４】
なお、画像処理装置１が実行する画像サイズの縮小処理をハードウエアで実行する場合について説明したが、これらの画像サイズの縮小処理をソフトウエアで実行してもよい。
【００８５】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【００８６】
１…画像処理装置、１１…位相制御部、１２…データシフタ部、１３…フィルタ係数メモリ、１４…フィルタ処理部、１５…フィルタ係数選択部、１６〜１８…フィルタ演算部、２１…位相演算部、２２…タップ画素位置演算部、２３…位相近似部、２５…８画素単位シフタ部、２６…１６画素選択部、３１〜３４…セレクタ、３５，３６…DFF、３７…セレクタ、４１ａ〜４１ｐ…乗算器、４２ａ〜４２ｐ…DFF、４３ａ〜４３ｈ，４４ａ〜４４ｄ…加算器、４５ａ〜４５ｄ…DFF、４６ａ，４６ｂ，４７…加算器、４８…DFF、４９…整数化部、５０…ビット制限部、５１…DFF、６１…セレクタ、６２…加算器、６３…減算器、６４…加算器、１００…テレビジョン装置、１０１…チューナ、１０２…ビデオデコーダ、１０３…制御部、１０４…画像処理部、１０５…LCDドライバ、１０６…LCD、１０７…バッファ、１０８…フィルタ、１０９…マルチウィンドウ処理部。
【図１】
2011160282.tif 000003
【図２】
2011160282.tif 000004
【図５】
2011160282.tif 000005
【図６】
2011160282.tif 000006
【図７】
2011160282.tif 000007
【図８】
2011160282.tif 000008
【図９】
2011160282.tif 000009
【図１０】
2011160282.tif 000010
【図３】
2011160282.tif 000011
【図４】
2011160282.tif 000012