縮小画像生成装置
【課題】回路サイズを大きく増やすことなく、高次の補間フィルタに対応し、折り返しノイズの発生を抑えた良好な縮小画像を生成することができる縮小画像生成装置を提供する。
【解決手段】この発明にかかる縮小画像生成装置は、縮小率Rで画像を縮小する縮小画像生成装置であって、縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された画像を一旦M/Nを拡大係数として拡大する拡大処理部3と、拡大処理部3で拡大された画像を1/Lを縮小係数として縮小する縮小処理部4とを備える。
【解決手段】この発明にかかる縮小画像生成装置は、縮小率Rで画像を縮小する縮小画像生成装置であって、縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された画像を一旦M/Nを拡大係数として拡大する拡大処理部3と、拡大処理部3で拡大された画像を1/Lを縮小係数として縮小する縮小処理部4とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は縮小画像生成装置に関し、特に入力された元画像に対して補間処理を行うことにより、縮小画像を生成する縮小画像生成装置に関する。
【背景技術】
【0002】
縮小画像生成装置において縮小画像を生成するための補間方法として、最近傍補間法や共一次補間(バイリニア補間)法、3次補間(バイキュービック)法などが一般に用いられている。
【0003】
元の画像を小さく縮小すると、縮小後のサンプリング周波数では表現できない高周波成分が折り返しノイズとなって現れる。そのため、縮小に伴う補間処理の前にローパスフィルタを挿入し、あらかじめ高周波成分を除去することにより折り返しノイズを抑える手法が用いられることが多い。このとき、折り返しノイズを抑えるためのローパスフィルタのカットオフ周波数が縮小サイズよりも小さく適当でないと、解像感が失われることになる。また、元の画像を小さく縮小すればするほど、折り返しノイズを抑制するために、高次の補間フィルタが必要となる。
【0004】
特許文献1には、Sinc関数を使った高次の補間フィルタを参照テーブルとして記憶しておき、これを参照してフィルタの係数とし、補間処理時、座標変換演算によって求まる座標の少数部だけ、参照するSinc関数位置を移動することにより畳み込むデータの係数を求める方法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特公平6−95626号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示された補間方法では、Sinc関数を使った高次の補間フィルタを用いることにより折り返しノイズを抑制した縮小処理が可能であるが、縮小率によって座標変換演算から求まる座標の小数部の精度が異なり、その精度にあわせて縮小処理を最適に行うためには補間係数を格納する大きな参照テーブルが必要であるという問題があった。
【0007】
本発明は上記のような問題点を解消するためになされたものであり、補間フィルタの補間係数を縮小係数にあわせて用意した補間係数の参照テーブルを大きくすることなく、良好な縮小画像を生成できる縮小画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
第1の態様にかかるこの発明は、縮小率Rで画像を縮小する縮小画像生成装置であって、前記縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された前記画像を一旦前記M/Nを拡大係数として拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を前記1/Lを縮小係数として縮小する縮小処理部とを備える。
【0009】
第2の態様にかかるこの発明は、画像を縮小する縮小画像生成装置であって、入力された前記画像を一旦拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を縮小する縮小処理部とを備え、前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じである。
【発明の効果】
【0010】
第1の態様にかかるこの発明によれば、縮小率Rで画像を縮小する縮小画像生成装置であって、前記縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された前記画像を一旦前記M/Nを拡大係数として拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を前記1/Lを縮小係数として縮小する縮小処理部とを備えることにより、縮小に用いる参照テーブルを大きくすることなく良好な縮小画像を生成することが可能となる。
【0011】
第2の態様にかかるこの発明によれば、画像を縮小する縮小画像生成装置であって、入力された前記画像を一旦拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を縮小する縮小処理部とを備え、前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じであることにより、縮小に用いる参照テーブルを大きくすることなく良好な縮小画像を生成することが可能となる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施の形態1に係る縮小画像生成装置1の要部構成を示すブロック図である。
【図2】フレーム画像における画素走査方向を説明するための図である。
【図3】拡大処理部3の要部構成を示すブロック図である。
【図4】縮小処理部4の要部構成を示すブロック図である。
【図5】垂直方向縮小補間処理部44の要部構成を示すブロック図である。
【図6】垂直方向縮小補間メモリ46の要部構成を示すブロック図である。
【図7】水平方向2画素×垂直方向2画素の元画素を必要とする拡大補間を説明するための図である。
【図8】水平方向4画素×垂直方向4画素の元画素を必要とする拡大補間を説明するための図である。
【図9】横軸を元画素間/16を基本単位とする距離、縦軸を振幅256に正規化したバイキュービックの重み付け係数として、グラフ化した図である。
【図10】横軸を元画素間/16を基本単位とする距離、縦軸を振幅256に正規化したLanczos−2補間の重み付け係数として、グラフ化した図である。
【図11】縮小率2/3の縮小処理を直接行った場合の元画素と縮小補間画素の関係を説明する図である。
【図12】縮小率2/3の縮小処理を拡大係数4/3の拡大処理と縮小係数1/2の縮小処理の2段階で行った場合の元画素、拡大補間画素、縮小補間画素の関係を説明するための図である。
【図13】縮小係数1/2の場合の垂直方向縮小補間処理を説明する図である。
【図14】縮小係数1/3の場合の垂直方向縮小補間処理を説明する図である。
【発明を実施するための形態】
【0013】
<A.実施の形態1>
<A−1.構成>
<A−1−1.縮小画像生成装置の構成>
図1は、本発明の実施の形態1に係る縮小画像生成装置1の要部構成を示すブロック図である。
【0014】
縮小画像生成装置1は、入力される元画像に対して、縮小画像を生成して出力するものである。図2に示すような水平方向の画素走査と垂直方向のライン走査とを行う1フレームの画像が縮小画像生成装置1に入力されると、補間処理によって水平方向および垂直方向に縮小処理された1フレームの画像が出力される。なお、図2において、走査方向はこれに限るものではなく、水平方向と垂直方向とが逆でもよい。
【0015】
図1において、縮小画像生成装置1は、入力端子5、7aと、出力端子6、7bと、入力端子7aと出力端子7bとに接続された全体制御部2と、入力端子5と全体制御部2とに接続された拡大処理部3と、出力端子6と全体制御部2と拡大処理部3とに接続された縮小処理部4とを備えている。
【0016】
入力端子5には、デジタルカメラなどで撮影された静止画像や、ビデオカメラなどで撮影された動画像の1フレーム(枚)の画像(元画像)が入力される。もちろん、デジタルカメラやビデオカメラの撮像素子で取得された画像が直接入力されても構わないし、一旦、メモリに保存されたものが読み出されて入力されても構わない。入力端子5に入力された画素データは、拡大処理部3に入力される。なお、元画像の1つ1つの画素を元画素、その値を元画素値(元画素データ)と記す。
【0017】
全体制御部2は、制御部(不図示)から入力端子7aを介して入力される縮小処理要求を受けるとともに、出力端子7bを介して制御部に元画素データの供給を要求する。入力端子7aを介して制御部から入力される縮小率から、拡大係数、縮小係数を算出し、拡大係数を拡大処理部3に、縮小係数を縮小処理部4に出力する。同様に、入力端子7aを介して制御部から入力される画像サイズを、拡大処理部3、縮小処理部4に出力する。
【0018】
拡大処理部3は、入力端子5を介して入力される元画素データを、全体制御部2から入力される画像サイズ、拡大係数に基づいて拡大処理を行い、拡大補間画素データを縮小処理部4に出力する。
【0019】
縮小処理部4では、拡大処理部3から出力される拡大補間画素データを、全体制御部2から入力される画像サイズ、縮小係数に基づいて縮小処理を行い、出力端子6を介して出力する。
【0020】
<A−1−2.拡大処理部の構成>
図3は、前述の拡大処理部3の要部構成を示すブロック図である。
【0021】
拡大処理部3は、入力端子34、36、37と、出力端子35と、入力端子34と出力端子35とに接続される拡大補間処理部31と、拡大補間処理部31に接続される拡大補間メモリ32と、入力端子36、37および拡大補間処理部31と接続される拡大補間係数算出部33とを備えている。
【0022】
拡大補間係数算出部33では、入力端子36から入力される拡大係数と、入力端子37から入力される画像サイズ、拡大補間処理部31から入力される水平方向/垂直方向拡大補間処理後画素位置(水平方向/垂直方向拡大補間処理後の画像上の画素位置)をもとに拡大補間処理前画素位置(水平方向/垂直方向拡大補間処理前の画像上での画素位置)を算出し、拡大補間処理に必要な各画素と、それら各画素に対する水平方向/垂直方向拡大補間係数を決定し、水平方向/垂直方向拡大補間情報として拡大補間処理部31に出力する。
【0023】
拡大補間メモリ32では、拡大補間処理部31を介して元画素データが入力され、一時的に格納し、拡大補間処理部31からの読み出し要求に対して、格納した元画素データを拡大補間処理部31に出力する。
【0024】
拡大補間処理部31では、拡大補間メモリ32に対して書き込みアドレス等制御信号を発生させ、入力端子34から入力された元画素データを拡大補間メモリ32に出力する。また、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間情報から、拡大補間メモリ32に対して読み出しアドレス等制御信号を発生させ、拡大補間メモリ32に一旦格納された元画素データを読み出し、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間係数を使って拡大補間画素データを算出して、出力端子35から出力する。
【0025】
<A−1−3.縮小処理部の構成>
図4は、前述の縮小処理部4の要部構成を示すブロック図である。
【0026】
縮小処理部4は、入力端子47、49、50と、出力端子48と、入力端子47と接続された水平方向縮小補間処理部41と、入力端子49、50および水平方向縮小補間処理部41と接続される水平方向縮小補間係数算出部42と、水平方向縮小補間処理部41と接続される水平方向縮小補間メモリ43と、水平方向縮小補間メモリ43と出力端子48と接続される垂直方向縮小補間処理部44と、入力端子49、50および垂直方向縮小補間処理部44と接続される垂直方向縮小補間係数算出部45と、垂直方向縮小補間処理部44と接続される垂直方向縮小補間メモリ46とを備えている。
【0027】
水平方向縮小補間係数算出部42では、入力端子49から入力される縮小係数と、入力端子50から入力される画素サイズと、水平方向縮小補間処理部41から入力される水平方向縮小補間処理後画素位置(水平方向縮小補間処理後の画像上の画素位置)とをもとに水平方向縮小補間処理前画素位置(水平方向縮小補間処理前の画像上の画素位置)を算出し、水平方向縮小補間処理に必要な各画素と、それら各画素に対する水平方向縮小補間係数を決定し、水平方向縮小補間処理部41に水平方向縮小補間情報を出力する。
【0028】
水平方向縮小補間処理部41では、入力端子47を介して入力される拡大補間画素データに対して、水平方向縮小補間係数算出部42から出力される水平方向縮小補間係数を使って、水平方向縮小補間画素データを算出して、水平方向縮小補間メモリ43に出力する。
【0029】
水平方向縮小補間メモリ43では、水平方向縮小補間処理部41から出力される水平方向縮小補間画素データを一時的に格納し、垂直方向縮小補間処理部44に出力する。
【0030】
垂直方向縮小補間係数算出部45では、入力端子49から入力される縮小係数と、入力端子50から入力される画像サイズと、垂直方向縮小補間処理部44から入力される垂直方向縮小補間処理後画素位置(垂直方向縮小補間処理後の画像上の画素位置)とをもとに垂直方向縮小補間処理前画素位置(垂直方向縮小補間処理前の画像上の画素位置)を算出し、垂直方向縮小補間処理に必要な各画素と、それら各画素に対する垂直方向縮小補間係数を決定し、垂直方向縮小補間処理部44に垂直方向縮小補間情報を出力する。
【0031】
垂直方向縮小補間処理部44では、これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間後画像上の画素位置を、垂直方向縮小補間処理後画素位置として、垂直方向縮小補間係数算出部45に出力し、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間情報から、垂直方向縮小補間メモリ46に対して読み出しアドレス等制御信号を発生させ、垂直方向縮小補間メモリ46から前ラインまでの垂直方向縮小補間画素データを読み出す。その後、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間係数をかけ、垂直方向縮小補間メモリ46から読み出した前ラインまでの垂直方向縮小補間画素データに加算して、垂直方向縮小補間メモリ46に、書き込みアドレス等制御信号とともに、現ラインまでの垂直方向縮小補間画素データとして出力する。また、垂直方向縮小補間処理が終わるラインでは、最終的な縮小補間画素データとして、出力端子48から出力する。
【0032】
<A−1−4.垂直方向縮小補間処理部の構成>
図5は、前述の垂直方向縮小補間処理部44の要部構成を示すブロック図である。
【0033】
垂直方向縮小補間処理部44は、入力端子53、56、59と、出力端子54、55、57、58と、入力端子53、56、59、出力端子54、55、57、58と接続される垂直方向縮小補間制御部51と、垂直方向縮小補間制御部51と接続される第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bとを備えている。
【0034】
垂直方向縮小補間制御部51では、入力端子53から入力される水平方向縮小補間画素データから、これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間後画像上の画素位置を、垂直方向縮小補間処理後画素位置として出力端子58から前述の垂直方向縮小補間係数算出部45に出力する。そのうえで、入力端子59を介して垂直方向縮小補間係数算出部45から入力される垂直方向縮小補間情報から読み出しアドレス等制御信号を算出し、出力端子54から前述の垂直方向縮小補間メモリ46に対して出力する。入力端子56から前ラインまでの第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bの垂直方向縮小補間処理結果を読み出し、入力端子53から入力される水平方向縮小補間画素データとともに、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b(Nは正の整数)に出力する。さらに、書き込みアドレス等の制御信号を出力端子54から出力し、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bから入力される現ラインまでの垂直方向縮小補間処理結果を出力端子55から出力するとともに、垂直方向縮小補間処理の最終ライン処理時には、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bからの第1の垂直方向縮小補間処理結果(第1の垂直方向縮小補間画素データとも記す)〜第Nの垂直方向縮小補間処理結果(第Nの垂直方向縮小補間画素データとも記す)を、適宜切り替えて最終的な縮小補間画素データとして、出力端子57から出力する。
【0035】
第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bでは、垂直方向縮小補間制御部51から入力される現ラインの水平方向縮小補間画素データと、前ラインまでの垂直方向縮小補間処理結果から、現ラインまでの垂直方向縮小補間処理を行い、その処理結果を、垂直方向縮小補間制御部51に出力する。
【0036】
<A−1−5.垂直方向縮小補間メモリの構成>
図6は、前述の垂直方向縮小補間メモリ46の要部構成を示すブロック図である。
【0037】
垂直方向縮小補間メモリ46は、入力端子63、64と、出力端子65と、入力端子63、64、出力端子65に接続された垂直方向縮小補間メモリ制御部61と、垂直方向縮小補間メモリ制御部61に接続された第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bとを備えている。
【0038】
垂直方向縮小補間メモリ制御部61では、入力端子63から入力される読み出しアドレス等制御信号をもとに、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに対して読み出しアドレス等制御信号を出力し、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bから読み出した前ラインまで垂直方向縮小補間画素データを出力端子65から出力する。また、入力端子63から入力される書き込みアドレス等制御信号をもとに、入力端子64から入力される現ラインまでの第1の垂直方向縮小補間画素データ〜第Nの垂直方向縮小補間画素データを、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに出力し、書き込む。
【0039】
第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bでは、垂直方向縮小補間メモリ制御部61に前ラインまでの垂直方向縮小補間画素データを出力し、逆に、垂直方向縮小補間メモリ制御部61から入力される現ラインまでの垂直方向縮小補間画素データを一時的に格納し、次ライン処理時に、前ラインまでの垂直方向縮小補間画素データとして垂直方向縮小補間メモリ制御部61に出力する。
【0040】
<A−2.動作>
以上のような構成を有する縮小画像生成装置1の動作について、図1から図6を用いて、以下で説明する。
【0041】
図2のように、水平方向の画素走査を垂直方向に順に繰り返すことによって読み出される元画像があるとする。なお、読み出し方向はこれに限るものではなく、水平方向と垂直方向とが逆になっていてもよい。
【0042】
<A−2−1.全体制御部の動作>
図1を参照して、入力端子7aを介して制御部(不図示)から縮小処理要求を受けると、全体制御部2は補間処理を開始し、出力端子7bを介して、制御部に元画素データの供給を要求する。これをきっかけに、入力端子5から縮小画像生成装置1に元画素データが入力される。入力端子5から入力された元画素データは、拡大処理部3に入力される。
【0043】
全体制御部2では、入力端子7aから入力される縮小処理要求のなかで、画像サイズ、縮小率を受け取る。画像サイズは、拡大処理部3、縮小処理部4に出力される。また、縮小率は、拡大係数、縮小係数に分けられ、拡大係数は拡大処理部3に、縮小係数は縮小処理部4に出力される。縮小率を拡大係数と縮小係数に分ける方法については、後述する。
【0044】
<A−2−2.拡大処理部の動作>
図3に示すように、入力端子5から入力された元画素データは、入力端子34を介して、拡大処理部3の拡大補間処理部31に入力される。拡大補間処理部31では、書き込みアドレス等制御信号を生成し、元画素データとともに拡大補間メモリ32に出力する。
【0045】
拡大補間メモリ32に入力された元画素データは、書き込みアドレスで指定された所定のアドレスに格納される。
【0046】
また拡大補間処理部31は、これから拡大補間処理を行う補間画素の、水平方向/垂直方向拡大補間後画像上の画素位置を、水平方向/垂直方向拡大補間処理後画素位置として、拡大補間係数算出部33に出力する。
【0047】
入力端子36を介して全体制御部2から入力される拡大係数と、入力端子37を介して全体制御部2から入力される画像サイズと、拡大補間処理部31から入力される水平方向/垂直方向拡大補間処理後画素位置(これから拡大補間処理を行う補間画素の、水平方向/垂直方向拡大補間処理後画像上の画素位置)とから、拡大補間処理前画素位置(これから拡大補間処理を行う補間画素の、水平方向/垂直方向拡大補間処理前画像上での画素位置)を算出し、拡大補間処理に必要な各画素と、それら各画素に対する水平方向/垂直方向拡大補間係数を決定し、拡大補間処理部31に水平方向/垂直方向拡大補間情報として出力する。
【0048】
拡大補間処理部31では、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間情報から、拡大補間メモリ32に対して読み出しアドレス等制御信号を発生させ、拡大補間メモリ32に一旦格納された元画素データを読み出し、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間係数を使って拡大補間画素データを算出して、出力端子35から出力する。拡大補間方法については、後述する。
【0049】
<A−2−3.縮小処理部の動作>
図4を参照すると、前述の拡大処理部3から出力された拡大補間画素データは、入力端子47を介して、縮小処理部4の水平方向縮小補間処理部41に入力される。水平方向縮小補間処理部41は、拡大補間画素データを受け取ると、これから水平方向縮小補間処理を行う補間画素の水平方向縮小補間後画像上の画素位置を、水平方向縮小補間処理後画素位置として、水平方向縮小補間係数算出部42に出力する。
【0050】
水平方向縮小補間係数算出部42では、入力端子49を介して全体制御部2から入力される縮小係数と、入力端子50を介して全体制御部2から入力される画像サイズと、水平方向縮小補間処理部41から入力される水平方向縮小補間処理後画素位置(これから水平方向縮小補間処理を行う補間画素の、水平方向縮小補間処理後画像上の画素位置)から、水平方向縮小補間処理前画素位置(これから水平方向縮小補間処理を行う補間画素の、水平方向縮小補間処理前画像上での画素位置)を算出し、水平方向縮小補間処理に必要な各画素と、それら各画素に対する水平方向縮小補間係数を決定し、水平方向縮小補間処理部41に水平方向縮小補間情報として出力する。
【0051】
水平方向縮小補間処理部41では、入力端子47を介して拡大処理部4から入力される拡大補間画素データに対して、水平方向縮小補間係数算出部42から出力される水平方向縮小補間情報のうち、水平方向縮小補間係数を使って水平方向縮小補間画素データを算出して、水平方向縮小補間メモリ43に出力する。水平方向縮小補間方法については、後述する。
【0052】
水平方向縮小補間メモリ43では、水平方向縮小補間処理部41から出力される水平方向縮小補間画素データを一時的に格納し、その後の垂直方向の縮小補間処理を行うために、垂直方向縮小補間処理部44に出力する。
【0053】
図5に示すように、水平方向縮小補間メモリ43から出力された水平方向縮小補間画素データは、入力端子53を介して垂直方向縮小補間処理部44の垂直方向縮小補間制御部51に入力される。垂直方向縮小補間制御部51では、これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間後画像上の画素位置を、垂直方向縮小補間処理後画素位置として、出力端子58から垂直方向縮小補間係数算出部45(図4参照)に出力する。
【0054】
図4において垂直方向縮小補間係数算出部45は、入力端子49を介して全体制御部2から入力される縮小係数と、入力端子50を介して全体制御部2から入力される画像サイズと、垂直方向縮小補間処理部44の垂直方向縮小補間制御部51から出力端子58(図5参照)を介して入力される垂直方向縮小補間処理後画素位置(これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間処理後画像上の画素位置)とから、垂直方向縮小補間処理前画素位置(これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間処理前画像上での画素位置)を算出し、縮小補間処理に必要な各画素と、それら各画素に対する垂直方向縮小補間係数を決定し、垂直方向縮小補間処理部44に垂直方向縮小補間情報として出力する。
【0055】
図5に示すように、垂直方向縮小補間係数算出部45から垂直方向縮小補間処理部44に入力された垂直方向縮小補間情報は、入力端子59を介して垂直方向縮小補間制御部51に入力される。垂直方向縮小補間制御部51では、垂直方向縮小補間係数算出部45から入力端子59を介して出力される垂直方向縮小補間情報をもとに、垂直方向縮小補間メモリ46に対する読み出しアドレス等制御信号を発生させ、出力端子54を介して垂直方向縮小補間メモリ46に出力する。
【0056】
図6において、垂直方向縮小補間処理部44から出力された読み出しアドレス等制御信号は、入力端子63を介して垂直方向縮小補間メモリ46の垂直方向縮小補間メモリ制御部61に入力される。
【0057】
垂直方向縮小補間メモリ制御部61では、垂直方向縮小補間処理部44から入力端子63を介して入力された読み出しアドレス等制御信号を、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに出力する。
【0058】
第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bでは、垂直方向縮小補間メモリ制御部61からの読み出し要求に対して、それぞれ前ラインまでの垂直方向縮小補間画素データを読み出し、垂直方向縮小補間メモリ制御部61に出力する。
【0059】
垂直方向縮小補間メモリ制御部61は、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bから読み出した前ラインまでの垂直方向縮小補間画素データを、出力端子65を介して垂直方向縮小補間処理部44に出力する。
【0060】
図5に示すように、垂直方向縮小補間メモリ46から読み出した前ラインまでの垂直方向縮小補間画素データは、入力端子56を介して垂直方向縮小補間制御部51に入力される。
【0061】
垂直方向縮小補間制御部51は、入力端子53を介して水平方向縮小補間メモリ43から入力された水平方向縮小補間画素データと、入力端子56を介して垂直方向縮小補間メモリ46から入力された前ラインまでの垂直方向縮小補間画素データと、入力端子59を介して垂直方向縮小補間係数算出部45から入力された垂直方向縮小補間係数とを、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bに出力する。
【0062】
第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bでは、入力端子53を介して水平方向縮小補間メモリ43から入力された水平方向縮小補間画素データと、入力端子56を介して垂直方向縮小補間メモリ46から入力された前ラインまでの垂直方向縮小補間画素データと、入力端子59を介して垂直方向縮小補間係数算出部45から入力された垂直方向縮小補間係数とを使って、現ラインまでの垂直方向縮小補間画素データを算出し、垂直方向縮小補間制御部51に出力する。
【0063】
垂直方向縮小補間制御部51では、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間52bから入力された現ラインまでの垂直方向縮小補間画素データを、出力端子55を介して垂直方向縮小補間メモリ46に出力する。
【0064】
図6に示すように、垂直方向縮小補間メモリ46では、入力端子64を介して垂直方向縮小補間処理部44から垂直方向縮小補間メモリ制御部61に入力された現ラインまでの垂直方向縮小補間画素データを、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに出力する。
【0065】
第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bでは、垂直方向縮小補間メモリ制御部61から入力された現ラインまでの垂直方向縮小補間画素データを一時的に格納し、次ライン処理時、垂直方向縮小補間メモリ制御部61からの読み出しに対して、前ラインまでの垂直方向縮小補間画素データとして出力する。
【0066】
また、垂直方向縮小補間制御部51では、第1の垂直方向縮小補間部52aからの第1の垂直方向縮小補間処理結果(第1の垂直方向縮小補間画素データとも記す)〜第Nの垂直方向縮小補間部52bからの第Nの垂直方向縮小補間処理結果(第Nの垂直方向縮小補間画素データとも記す)を、補間ライン単位で切り替えて、最終的な縮小補間画素データとして出力端子57から出力する。垂直方向縮小補間方法については、後述する。
【0067】
<A−2−4.拡大係数と縮小係数を分ける方法>
では、全体制御部2において、入力端子7aから入力される縮小率を、拡大係数と縮小係数に分ける方法について説明する。縮小率をRとし、拡大係数をM/N、縮小係数を1/Lとする。
【0068】
ただし、M、Nは、2×N>M≧N>0の整数であり、Lは2以上の整数である。Mは補間点の補間位置精度に関係する固定パラメータであり、大きくするほど補間位置精度が向上する反面、補間係数参照テーブルは大きいものになり、小さくするほど補間係数参照テーブルは小さくできる反面、補間位置精度が犠牲になる。
【0069】
縮小率Rで画像を縮小する場合において、縮小率RをR=(M/N)×(1/L)として、拡大係数M/N、縮小係数1/Lを得る。このとき、M/Nは2未満となるように、1/Lを決定する。つまり、広範囲の縮小率が要求される縮小処理に対して、1倍以上2倍未満で細かい拡大係数設定が可能な拡大処理と、1/L倍ながら高次のフィルタ処理が可能な縮小処理に分ける。なお、Mによって、縮小率Rと拡大係数M/N、縮小係数1/Lの等式を満たすN、Lが存在しない場合には、画素毎に四捨五入して簡易的にNを決定するなどして、拡大補間用の補間係数参照テーブルのテーブルサイズの増加を抑えることが可能である。なお、拡大係数M/Nは、後述する画像の水平方向、垂直方向についてそれぞれ個別に設定可能である。
【0070】
<A−2−5.拡大補間方法>
次に、図7、図8を参照して、拡大補間方法について説明する。
【0071】
図7は、拡大補間に水平方向2画素×垂直方向2画素の元画素を必要とする場合の一例であり、具体的には線形補間による拡大補間方法を説明する図である。点Qを補間画素とすると、線形補間に必要とされる元画素は、補間画素Qを取り囲む水平/垂直方向の両方に隣接する点P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)である(i,jは整数)。
【0072】
ここで、補間画素Qは、元画素間をN分割(Nは0より大きい整数)した座標(x,y)(x、yは、0≦x<N、0≦y<N)に位置するものとする(以下、座標(x,y)を補間位置(x,y)と記す)。つまり、補間画素Qは、第1の元画素群P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)で構成される四角形を、水平方向にx:(N−x)、垂直方向にy:(N−y)に内分した点であり、補間係数は、水平方向にx:(N−x)、垂直方向にy:(N−y)となる。なお、説明の都合上、点P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)をそれぞれ点A0,B0,C0,D0とも記す。
【0073】
補間位置(x,y)に位置する補間画素Qの第1の補間画素値成分q0は、補間画素Qを取り囲む水平/垂直方向の両方に隣接するA0,B0,C0,D0それぞれの画素値a0,b0,c0,d0を用いて、式(1)から求められる。
【0074】
【数1】
【0075】
図8は、拡大補間に水平方向4画素×垂直方向4画素の元画素を必要とする場合の一例であり、バイキュービックやLanczos−2補間による拡大補間方法を説明する図である。点Qを補間画素とすると、例えば、Lanczos−2補間に必要とされる元画素は、補間画素Qを取り囲む水平/垂直方向の両方に隣接する点P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)と、さらにそれを取り囲む点P(i−1,j−1),P(i,j−1),P(i+1,j−1),P(i+2,j−1),P(i−1,j),P(i+2,j),P(i−1,j+1),P(i+2,j+1),P(i−1,j+2),P(i,j+2),P(i+1,j+2),P(i+2,j+2)である(i,jは整数)。
【0076】
ここで、補間画素Qは、元画素間をN分割(Nは0より大きい整数)した座標(x,y)(x、yは、0≦x<N、0≦y<N)に位置するものとする(以下、座標(x,y)を補間位置(x,y)と記す)。つまり、補間画素Qは、第1の元画素群P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)で構成される四角形を、水平方向にx:(N−x)、垂直方向にy:(N−y)に内分した点である。
【0077】
補間係数は、補間画素と周辺の元画素との距離をtとして、式(2)のような重み付け係数kとするバイキュービックや、式(3)のような重み付け係数kとするLanczos−2補間などを用いてもよい。
【0078】
【数2】
【0079】
【数3】
【0080】
例えば、元画素P(i,j−1)の場合、補間画素Qまでの距離は、水平方向にx/N、垂直方向に(N+y)/Nであり、これら距離を式(2)、あるいは、(3)に代入したものが、元画素P(i,j−1)に対する重み付け係数k、すなわち、水平方向/垂直方向拡大補間係数となる。
【0081】
なお、上記補間方法の場合、補間位置(i,j)が元画素間をN等分した点とすると、tが2以上でkは0となるため、(2×N−1)個の距離tに対する補間係数をもつ補間係数参照テーブルがあればよい。
【0082】
図9、図10は、式(2)、式(3)について、元画素間を16等分(N=16)し、横軸を元画素間/16を基本単位とする距離とし、縦軸に重み付け係数kを振幅256に正規化したグラフである。
【0083】
<A−2−6.縮小補間方法>
次に、水平方向縮小補間方法、垂直方向縮小補間方法について説明する。ここでは、式(2)、式(3)で示されるバイキュービック、Lanczos−2補間を適応することを考える。拡大補間時には、拡大補間後の補間画素(拡大補間画素)と拡大補間に用いる周辺の元画素(拡大補間前画素)の距離が元画素(拡大補間前画素)間隔で2画素以上については、重み付け係数kは零となるため、2画素以内のものについて重み付け係数k(すなわち水平方向/垂直方向拡大補間係数)を算出すれば良く、水平方向4画素×垂直方向4画素の合計16個の元画素(拡大補間前画素)があれば、拡大補間画素データを算出することができる。
【0084】
一方、縮小補間時には、縮小補間後の補間画素(縮小補間画素)と縮小補間に用いる周辺の元画素(縮小補間前画素)の距離が縮小補間後の補間画素(縮小補間画素)間隔で2画素以内にある縮小補間前画素について重み付け係数kを算出する必要があり、縮小補間画素と縮小補間処理に使用される元画素(縮小補間前画素)との位置関係が常に同じでなければ、縮小補間に必要な元画素(縮小補間前画素)の個数、補間係数が変動する。
【0085】
図11、図12に、処理の一例として、縮小率2/3のときの場合を示す。図11は元画素から直接、縮小補間画素を作成する場合の図である。縮小補間にバイキュービックや、Lanczos−2補間を採用した場合、縮小補間画素C0の画素値を算出するのに、元画素A2、A3、A4、A5、A6が、縮小補間画素C1の画素値を算出するのに、元画素A3、A4、A5、A6、A7、A8が必要となる。このとき縮小補間画素C0と縮小補間画素C1では、縮小補間画素と各元画素との位置関係が同じではないため、式(2)、式(3)からも明らかなように、重み付け係数kの組は縮小補間画素の位置によって異なる。そのため、縮小率に自由度を持たせれば持たせるほど、縮小補間画素と元画素までの細かい距離の差に対応できるような、重み付け係数k(水平方向縮小補間係数、垂直方向補間係数)を格納する大きなサイズの補間係数参照テーブルが必要となる。
【0086】
一方、図12は、元画素を一旦、1倍以上2倍未満に拡大補間を行い、拡大補間画素を作成した後に1/Lの縮小補間により縮小補間画素を作成する場合の図である。拡大補間にバイキュービックや、Lanczos−2補間を採用した場合、拡大補間画素B0を算出するのに、元画素A0、A1、A2、A3が、拡大補間画素B6を算出するのに、元画素A5、A6、A7、A8が、拡大補間画素B2を算出するのに、元画素A2、A3、A4、A5が、拡大補間画素B8を算出するのに、元画素A6、A7、A8、A9が必要となる。同様に、縮小補間にバイキュービックや、Lanczos−2補間を採用した場合、2画素以上離れた場合の重み付け係数kは零になるため、縮小補間画素C0を算出するのに、拡大補間画素B0、B1、B2、B3、B4、B5、B6(元画素A0、A1、A2、A3、A4、A5、A6、A7、A8)が、縮小補間画素C1を算出するのに、拡大補間画素B2、B3、B4、B5、B6、B7、B8(元画素A2、A3、A4、A5、A6、A7、A8、A9)が必要となる。
【0087】
このとき縮小補間画素C0と縮小補間画素C1では、縮小補間画素と縮小補間前の画素である拡大補間画素との位置関係が同じであるため、縮小係数1/Lに対して重み付け係数kの組は縮小補間画素の位置に関わらず1種類となる。すなわち拡大処理部3から出力される一組の拡大補間画素に基づいて一の縮小補間画素を生成し、各縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じとなる。そのため、重み付け係数k(水平方向縮小補間係数、垂直方向縮小補間係数)を格納する補間係数参照テーブルは小さいものでよい。
【0088】
<A−2−7.水平方向、垂直方向の縮小補間処理>
次に、水平方向縮小補間処理部41による水平方向縮小補間処理と、垂直方向縮小補間処理部44の垂直方向縮小補間処理の違いについて説明する。ここでも、縮小補間として、バイキュービックや、Lanczos−2補間を採用した場合について説明する。なお、必ずしもこれに限るものではなく、ある一定以上距離の離れた画素について、重み付け係数kが0となるような縮小補間であれば、同様である。
【0089】
水平方向縮小補間処理部41による水平方向縮小補間処理では、入力端子47から入力される拡大補間画素データに対して、水平方向縮小補間係数処理算出部42から出力される水平方向縮小補間係数をかけ、水平方向縮小補間画素からの距離がある一定の範囲内の画素について累積加算し、上記一定範囲内の水平方向縮小補間係数の総和に応じて適当にビットシフトを行い、水平方向縮小補間画素データを算出する。
【0090】
一方、垂直方向縮小補間処理部44による垂直方向縮小補間処理では、水平方向縮小補間メモリ43から出力される水平方向縮小補間画素データに対して、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間係数をかけ、一時的に垂直方向縮小補間メモリ46に格納し、次のラインで、あらたに水平方向縮小補間メモリ43から出力される水平方向縮小補間画素データに対して、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間係数をかけ、垂直方向縮小補間メモリ46に一時的に格納してあった前ラインまでの加算結果を読み出して加算し、垂直方向縮小補間メモリ46に書き戻す。これを垂直方向縮小補間画素からの距離がある一定の範囲内の画素(ライン)の間、繰り返しながら累積加算していく。垂直方向縮小補間画素から一定の範囲内の加算が完了した後、上記一定範囲内の垂直方向縮小補間係数の総和に応じた適当なビットシフトを行い、最終的な縮小補間画素データを算出する。
【0091】
図13を用いて、垂直方向縮小補間処理部44、垂直方向縮小補間メモリ46の内部動作について説明する。図5、図6にも示すように、垂直方向縮小補間処理44には、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bが、垂直方向縮小補間メモリ46には、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bがあり、N個の垂直方向縮小補間が同時に処理されていくことになる。
【0092】
図13は、縮小係数が1/2の場合の動作を概念的に示したものである。式(2)、式(3)で示されるバイキュービック、Lanczos−2補間では、縮小補間画素間で距離2以内の画素が縮小補間処理に必要となるため、図13の場合のように縮小係数が1/2の場合では、縮小補間処理に必要な画素数は7個である。それぞれの補間係数をk0、k1、k2、k3、k4、k5、k6とする。また、ある画素(ライン)の縮小補間処理を行っている間に、1/4位相がずれた状態で2つ目の縮小補間処理が、2/4位相がずれた状態で3つ目の縮小補間処理が、3/4位相がずれた状態で4つ目の縮小補間処理が同時処理する必要がある。例えば、縮小補間処理L′04には、L05、L06、L07、L08、L09、L10、L11が、縮小補間処理L′05には、L07、L08、L09、L10、L11、L12、L13が、縮小補間処理L′06には、L09、L10、L11、L12、L13、L14、L15が、縮小補間処理L′07には、L11、L12、L13、L14、L15、L16、L17が必要である。
【0093】
例えば、水平方向縮小補間メモリ43からL11の水平方向縮小補間画素データが入力されるとき、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに対して、縮小補間処理L′04として補間係数k6が、縮小補間処理L′05として補間係数k4が、縮小補間処理L′06として補間係数k2が、縮小補間処理L′07として補間係数k0がかけられ、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)から出力されるそれぞれの前ラインまでの垂直方向縮小補間処理結果に加算される。
【0094】
縮小補間処理L′04では、水平方向縮小補間メモリ43から入力されるL11の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。同様に、縮小補間処理L′05では、水平方向縮小補間メモリ43から入力されるL13の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′06では、水平方向縮小補間メモリ43から入力されるL15の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′07では、水平方向縮小補間メモリ43から入力されるL17の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。
【0095】
縮小補間処理L′08では、縮小補間処理L′04と同じ、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bを使用することができる。
【0096】
同様に、図14を用いて、垂直方向縮小補間処理部44、垂直方向縮小補間メモリ46の内部動作について説明する。図5、図6にも示すように、垂直方向縮小補間処理44には、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bが、垂直方向縮小補間メモリ46には、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bがあり、N個の垂直方向縮小補間が同時に処理されていくことになる。
【0097】
図14は、縮小係数が1/3の場合の動作を概念的に示したものである。式(2)、式(3)で示されるバイキュービック、Lanczos−2補間では、縮小補間画素間で距離2以内の画素が縮小補間処理に必要となるため、図14の場合のように縮小係数が1/3の場合では、縮小補間処理に必要な画素数は11個である。それぞれの補間係数をk0、k1、k2、k3、k4、k5、k6、k7、k8、k9、k10とする。また、ある画素(ライン)の縮小補間処理を行っている間に、1/4位相がずれた状態で2つ目の縮小補間処理が、2/4位相がずれた状態で3つ目の縮小補間処理が、3/4位相がずれた状態で4つ目の縮小補間処理が同時処理する必要がある。例えば、縮小補間処理L′04には、L07、L08、L09、L10、L11、L12、L13、L14、L15、L16、L17が、縮小補間処理L′05には、L10、L11、L12、L13、L14、L15、L16、L17、L18、L19、L20が、縮小補間処理L′06には、L13、L14、L15、L16、L17、L18、L19、L20、L21、L22、L23が、縮小補間処理L′07には、L16、L17、L18、L19、L20、L21、L22、L23、L24、L25、L26が必要である。
【0098】
例えば、水平方向縮小補間メモリ43からL16の水平方向縮小補間画素データが入力されるとき、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに対して、縮小補間処理L′04として補間係数k9が、縮小補間処理L′05として補間係数k6が、縮小補間処理L′06として補間係数k3が、縮小補間処理L′07として補間係数k0がかけられ、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)から出力されるそれぞれの前ラインまでの垂直方向縮小補間処理結果に加算される。
【0099】
縮小補間処理L′04では、水平方向縮小補間メモリ43から入力されるL17の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。同様に、縮小補間処理L′05では、水平方向縮小補間メモリ43から入力されるL20の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′06では、水平方向縮小補間メモリ43から入力されるL23の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′07では、水平方向縮小補間メモリ43から入力されるL26の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。
【0100】
縮小補間処理L′08では、縮小補間処理L′04と同じ、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bを使用することができる。
【0101】
以上のように、図2に示すような水平方向の画素走査と垂直方向のライン走査とを行いながら、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに対して、垂直方向縮小補間処理部44内の第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bと、垂直方向縮小補間メモリ46内の第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bとで位相をずらしながら、同時動作させることにより、リアルタイムに垂直方向縮小補間が可能である。結果、拡大補間処理、水平方向縮小補間処理、垂直方向縮小補間処理により、リアルタイムな縮小画像の生成が可能である。
【0102】
また、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、4個(2×2個)の垂直方向縮小補間部が、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)では、4個(2×2個)の垂直方向縮小補間メモリがあればよい。また、縮小係数が1/L(Lは、2以上の整数)のとき、(2×2×L−1)個の画素(ライン)を用いて縮小補間処理を行えばよい。
【0103】
同様に、補間係数が、補間画素と周辺の元画素との距離をtとして、式(4)のような重み付け係数kとするLanczos−3補間などを用いてもよい。
【0104】
【数4】
【0105】
このとき、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、6個(2×3個)の垂直方向縮小補間部が、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)では、6個(2×3個)の垂直方向縮小補間メモリがあればよい。また、縮小係数が1/L(Lは、2以上の整数)のとき、(2×3×L−1)個の画素(ライン)を用いて縮小補間処理を行えばよい。
【0106】
補間係数が、補間処理後の画素と周辺の元画素との距離(補間処理後の画素間隔を1とする)をtとして、|t|≧A(Aは2以上の正の整数)で0となるものを選択することにより、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)は(2×A)個の垂直方向縮小補間部を、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)は(2×A)個の垂直方向縮小補間メモリを持てば良く、また、縮小係数が1/L(Lは、2以上の整数)のとき、(2×A×L−1)個の画素(ライン)を用いて縮小補間処理を行えばよい。また、縮小係数1/L毎に、(2×A×L−1)個の係数をもつ補間係数参照テーブルがあればよい。なお、A、Lは水平、垂直方向についてそれぞれ個別に設定可能である。なお、前述した縮小補間の例ではバイキュービックやLanczos−2補間をしていたため、元画素との距離tが2以上の場合には重み付け係数kは零となっていた(数2、数3は、|t|≧2で0)。また、Lanczos−3補間では、元画素との距離tが3以上の場合には重み付け係数kは零となる(数4は、|t|≧3で0)。
【0107】
<A−3.効果>
この発明にかかる実施の形態1によれば、縮小率Rで画像を縮小する縮小画像生成装置であって、縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された画像を一旦M/Nを拡大係数として拡大する拡大処理部3と、拡大処理部3で拡大された画像を1/Lを縮小係数として縮小する縮小処理部4とを備えることで、画像の拡大処理機能を併用することで縮小率の微調整を拡大処理で吸収し、縮小係数設定を整数分の1に限定することで縮小係数の選択肢を制限し、補間フィルタの補間係数を縮小係数にあわせて用意した複数個の小さな参照テーブルとして構成することができ、高次な補間を実現しつつ折り返しノイズの発生を抑制した良好な縮小画像をリアルタイムに生成することが可能となる。
【0108】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、拡大係数M/Nおよび縮小係数1/Lは、入力された画像の水平方向および垂直方向についてそれぞれ個別に設定可能であることで、縮小率に合わせた自由度の高い拡大係数、縮小係数の設定が可能となる。
【0109】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、拡大処理部3は、縮小処理部4における縮小の際、画像の縮小後の画素間で、縮小に必要な縮小前の画素数と、縮小の縮小補間処理に用いる補間係数とが等しくなる拡大係数で拡大することで、縮小補間画素と縮小補間前の画素である拡大補間画素との位置関係が同じであるため、縮小係数1/Lに対して重み付け係数kの組は縮小補間画素の位置に関わらず1種類となり、重み付け係数kを格納する補間係数参照テーブルを小さいものにすることができる。
【0110】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、係数MおよびNは、2×N>M≧N>0を満たす整数であることで、所望の縮小率を実現するための微調整を拡大係数で吸収することができる。
【0111】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、縮小処理部4は、縮小係数1/L毎に縮小の縮小補間処理に用いる2×A×L−1(Aは2以上の整数)個の補間係数参照テーブルを有することで、縮小補間処理に対応した補間係数参照テーブルを用いることができ、またその補間係数参照テーブルを小さいものに抑えることができる。
【0112】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、補間係数参照テーブルは、画像の水平方向、垂直方向についてそれぞれ個別にAを設定可能であることで、縮小率に合わせた自由度の高い補間係数の設定が可能となる。
【0113】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、縮小処理部4は、縮小後の画素と、その周辺に位置する縮小前の画素の、縮小後の画素間隔を1とする距離tがAに対し|t|≧Aを満たす場合、縮小補間処理に用いる補間係数を0とすることで、縮小に用いる縮小前の画素数を所望の数に限定できる。
【0114】
また、この発明にかかる実施の形態1によれば、画像を縮小する縮小画像生成装置であって、入力された画像を一旦拡大する拡大処理部3と、拡大処理部3で拡大された画像を縮小する縮小処理部4とを備え、拡大処理部3から出力される拡大補間画素と縮小処理部4から出力される縮小補間画素について、縮小処理部4は、一組の拡大補間画素に基づいて一の縮小補間画素を生成し、各縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じであることで、画像の拡大処理機能を併用することで縮小率の微調整を拡大処理で吸収し、縮小係数の選択肢を制限し、補間フィルタの補間係数を縮小係数にあわせて用意した複数個の小さな参照テーブルとして構成することができ、高次な補間を実現しつつ折り返しノイズの発生を抑制した良好な縮小画像をリアルタイムに生成することが可能となる。
【符号の説明】
【0115】
1 縮小画像生成装置、2 全体制御部、3 拡大処理部、4 縮小処理部、5,7a,34,36,37,47,49,50,53,56,59,63,64 入力端子、6,7b,35,48,54,55,57,58,65 出力端子、31 拡大補間処理部、32 拡大補間メモリ、33 拡大補間係数算出部、41 水平方向縮小補間処理部、42 水平方向縮小補間係数算出部、43 水平方向縮小補間メモリ、44 垂直方向縮小補間処理部、45 垂直方向縮小補間係数算出部、46 垂直方向縮小補間メモリ、51 垂直方向縮小補間制御部、52a 第1の垂直方向縮小補間部、52b 第Nの垂直方向縮小補間処理部、61 垂直方向縮小補間メモリ制御部、62a 第1の垂直方向縮小補間メモリ、62b 第Nの垂直方向縮小補間メモリ。
【技術分野】
【0001】
本発明は縮小画像生成装置に関し、特に入力された元画像に対して補間処理を行うことにより、縮小画像を生成する縮小画像生成装置に関する。
【背景技術】
【0002】
縮小画像生成装置において縮小画像を生成するための補間方法として、最近傍補間法や共一次補間(バイリニア補間)法、3次補間(バイキュービック)法などが一般に用いられている。
【0003】
元の画像を小さく縮小すると、縮小後のサンプリング周波数では表現できない高周波成分が折り返しノイズとなって現れる。そのため、縮小に伴う補間処理の前にローパスフィルタを挿入し、あらかじめ高周波成分を除去することにより折り返しノイズを抑える手法が用いられることが多い。このとき、折り返しノイズを抑えるためのローパスフィルタのカットオフ周波数が縮小サイズよりも小さく適当でないと、解像感が失われることになる。また、元の画像を小さく縮小すればするほど、折り返しノイズを抑制するために、高次の補間フィルタが必要となる。
【0004】
特許文献1には、Sinc関数を使った高次の補間フィルタを参照テーブルとして記憶しておき、これを参照してフィルタの係数とし、補間処理時、座標変換演算によって求まる座標の少数部だけ、参照するSinc関数位置を移動することにより畳み込むデータの係数を求める方法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特公平6−95626号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示された補間方法では、Sinc関数を使った高次の補間フィルタを用いることにより折り返しノイズを抑制した縮小処理が可能であるが、縮小率によって座標変換演算から求まる座標の小数部の精度が異なり、その精度にあわせて縮小処理を最適に行うためには補間係数を格納する大きな参照テーブルが必要であるという問題があった。
【0007】
本発明は上記のような問題点を解消するためになされたものであり、補間フィルタの補間係数を縮小係数にあわせて用意した補間係数の参照テーブルを大きくすることなく、良好な縮小画像を生成できる縮小画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
第1の態様にかかるこの発明は、縮小率Rで画像を縮小する縮小画像生成装置であって、前記縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された前記画像を一旦前記M/Nを拡大係数として拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を前記1/Lを縮小係数として縮小する縮小処理部とを備える。
【0009】
第2の態様にかかるこの発明は、画像を縮小する縮小画像生成装置であって、入力された前記画像を一旦拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を縮小する縮小処理部とを備え、前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じである。
【発明の効果】
【0010】
第1の態様にかかるこの発明によれば、縮小率Rで画像を縮小する縮小画像生成装置であって、前記縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された前記画像を一旦前記M/Nを拡大係数として拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を前記1/Lを縮小係数として縮小する縮小処理部とを備えることにより、縮小に用いる参照テーブルを大きくすることなく良好な縮小画像を生成することが可能となる。
【0011】
第2の態様にかかるこの発明によれば、画像を縮小する縮小画像生成装置であって、入力された前記画像を一旦拡大する拡大処理部と、前記拡大処理部で拡大された前記画像を縮小する縮小処理部とを備え、前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じであることにより、縮小に用いる参照テーブルを大きくすることなく良好な縮小画像を生成することが可能となる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施の形態1に係る縮小画像生成装置1の要部構成を示すブロック図である。
【図2】フレーム画像における画素走査方向を説明するための図である。
【図3】拡大処理部3の要部構成を示すブロック図である。
【図4】縮小処理部4の要部構成を示すブロック図である。
【図5】垂直方向縮小補間処理部44の要部構成を示すブロック図である。
【図6】垂直方向縮小補間メモリ46の要部構成を示すブロック図である。
【図7】水平方向2画素×垂直方向2画素の元画素を必要とする拡大補間を説明するための図である。
【図8】水平方向4画素×垂直方向4画素の元画素を必要とする拡大補間を説明するための図である。
【図9】横軸を元画素間/16を基本単位とする距離、縦軸を振幅256に正規化したバイキュービックの重み付け係数として、グラフ化した図である。
【図10】横軸を元画素間/16を基本単位とする距離、縦軸を振幅256に正規化したLanczos−2補間の重み付け係数として、グラフ化した図である。
【図11】縮小率2/3の縮小処理を直接行った場合の元画素と縮小補間画素の関係を説明する図である。
【図12】縮小率2/3の縮小処理を拡大係数4/3の拡大処理と縮小係数1/2の縮小処理の2段階で行った場合の元画素、拡大補間画素、縮小補間画素の関係を説明するための図である。
【図13】縮小係数1/2の場合の垂直方向縮小補間処理を説明する図である。
【図14】縮小係数1/3の場合の垂直方向縮小補間処理を説明する図である。
【発明を実施するための形態】
【0013】
<A.実施の形態1>
<A−1.構成>
<A−1−1.縮小画像生成装置の構成>
図1は、本発明の実施の形態1に係る縮小画像生成装置1の要部構成を示すブロック図である。
【0014】
縮小画像生成装置1は、入力される元画像に対して、縮小画像を生成して出力するものである。図2に示すような水平方向の画素走査と垂直方向のライン走査とを行う1フレームの画像が縮小画像生成装置1に入力されると、補間処理によって水平方向および垂直方向に縮小処理された1フレームの画像が出力される。なお、図2において、走査方向はこれに限るものではなく、水平方向と垂直方向とが逆でもよい。
【0015】
図1において、縮小画像生成装置1は、入力端子5、7aと、出力端子6、7bと、入力端子7aと出力端子7bとに接続された全体制御部2と、入力端子5と全体制御部2とに接続された拡大処理部3と、出力端子6と全体制御部2と拡大処理部3とに接続された縮小処理部4とを備えている。
【0016】
入力端子5には、デジタルカメラなどで撮影された静止画像や、ビデオカメラなどで撮影された動画像の1フレーム(枚)の画像(元画像)が入力される。もちろん、デジタルカメラやビデオカメラの撮像素子で取得された画像が直接入力されても構わないし、一旦、メモリに保存されたものが読み出されて入力されても構わない。入力端子5に入力された画素データは、拡大処理部3に入力される。なお、元画像の1つ1つの画素を元画素、その値を元画素値(元画素データ)と記す。
【0017】
全体制御部2は、制御部(不図示)から入力端子7aを介して入力される縮小処理要求を受けるとともに、出力端子7bを介して制御部に元画素データの供給を要求する。入力端子7aを介して制御部から入力される縮小率から、拡大係数、縮小係数を算出し、拡大係数を拡大処理部3に、縮小係数を縮小処理部4に出力する。同様に、入力端子7aを介して制御部から入力される画像サイズを、拡大処理部3、縮小処理部4に出力する。
【0018】
拡大処理部3は、入力端子5を介して入力される元画素データを、全体制御部2から入力される画像サイズ、拡大係数に基づいて拡大処理を行い、拡大補間画素データを縮小処理部4に出力する。
【0019】
縮小処理部4では、拡大処理部3から出力される拡大補間画素データを、全体制御部2から入力される画像サイズ、縮小係数に基づいて縮小処理を行い、出力端子6を介して出力する。
【0020】
<A−1−2.拡大処理部の構成>
図3は、前述の拡大処理部3の要部構成を示すブロック図である。
【0021】
拡大処理部3は、入力端子34、36、37と、出力端子35と、入力端子34と出力端子35とに接続される拡大補間処理部31と、拡大補間処理部31に接続される拡大補間メモリ32と、入力端子36、37および拡大補間処理部31と接続される拡大補間係数算出部33とを備えている。
【0022】
拡大補間係数算出部33では、入力端子36から入力される拡大係数と、入力端子37から入力される画像サイズ、拡大補間処理部31から入力される水平方向/垂直方向拡大補間処理後画素位置(水平方向/垂直方向拡大補間処理後の画像上の画素位置)をもとに拡大補間処理前画素位置(水平方向/垂直方向拡大補間処理前の画像上での画素位置)を算出し、拡大補間処理に必要な各画素と、それら各画素に対する水平方向/垂直方向拡大補間係数を決定し、水平方向/垂直方向拡大補間情報として拡大補間処理部31に出力する。
【0023】
拡大補間メモリ32では、拡大補間処理部31を介して元画素データが入力され、一時的に格納し、拡大補間処理部31からの読み出し要求に対して、格納した元画素データを拡大補間処理部31に出力する。
【0024】
拡大補間処理部31では、拡大補間メモリ32に対して書き込みアドレス等制御信号を発生させ、入力端子34から入力された元画素データを拡大補間メモリ32に出力する。また、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間情報から、拡大補間メモリ32に対して読み出しアドレス等制御信号を発生させ、拡大補間メモリ32に一旦格納された元画素データを読み出し、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間係数を使って拡大補間画素データを算出して、出力端子35から出力する。
【0025】
<A−1−3.縮小処理部の構成>
図4は、前述の縮小処理部4の要部構成を示すブロック図である。
【0026】
縮小処理部4は、入力端子47、49、50と、出力端子48と、入力端子47と接続された水平方向縮小補間処理部41と、入力端子49、50および水平方向縮小補間処理部41と接続される水平方向縮小補間係数算出部42と、水平方向縮小補間処理部41と接続される水平方向縮小補間メモリ43と、水平方向縮小補間メモリ43と出力端子48と接続される垂直方向縮小補間処理部44と、入力端子49、50および垂直方向縮小補間処理部44と接続される垂直方向縮小補間係数算出部45と、垂直方向縮小補間処理部44と接続される垂直方向縮小補間メモリ46とを備えている。
【0027】
水平方向縮小補間係数算出部42では、入力端子49から入力される縮小係数と、入力端子50から入力される画素サイズと、水平方向縮小補間処理部41から入力される水平方向縮小補間処理後画素位置(水平方向縮小補間処理後の画像上の画素位置)とをもとに水平方向縮小補間処理前画素位置(水平方向縮小補間処理前の画像上の画素位置)を算出し、水平方向縮小補間処理に必要な各画素と、それら各画素に対する水平方向縮小補間係数を決定し、水平方向縮小補間処理部41に水平方向縮小補間情報を出力する。
【0028】
水平方向縮小補間処理部41では、入力端子47を介して入力される拡大補間画素データに対して、水平方向縮小補間係数算出部42から出力される水平方向縮小補間係数を使って、水平方向縮小補間画素データを算出して、水平方向縮小補間メモリ43に出力する。
【0029】
水平方向縮小補間メモリ43では、水平方向縮小補間処理部41から出力される水平方向縮小補間画素データを一時的に格納し、垂直方向縮小補間処理部44に出力する。
【0030】
垂直方向縮小補間係数算出部45では、入力端子49から入力される縮小係数と、入力端子50から入力される画像サイズと、垂直方向縮小補間処理部44から入力される垂直方向縮小補間処理後画素位置(垂直方向縮小補間処理後の画像上の画素位置)とをもとに垂直方向縮小補間処理前画素位置(垂直方向縮小補間処理前の画像上の画素位置)を算出し、垂直方向縮小補間処理に必要な各画素と、それら各画素に対する垂直方向縮小補間係数を決定し、垂直方向縮小補間処理部44に垂直方向縮小補間情報を出力する。
【0031】
垂直方向縮小補間処理部44では、これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間後画像上の画素位置を、垂直方向縮小補間処理後画素位置として、垂直方向縮小補間係数算出部45に出力し、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間情報から、垂直方向縮小補間メモリ46に対して読み出しアドレス等制御信号を発生させ、垂直方向縮小補間メモリ46から前ラインまでの垂直方向縮小補間画素データを読み出す。その後、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間係数をかけ、垂直方向縮小補間メモリ46から読み出した前ラインまでの垂直方向縮小補間画素データに加算して、垂直方向縮小補間メモリ46に、書き込みアドレス等制御信号とともに、現ラインまでの垂直方向縮小補間画素データとして出力する。また、垂直方向縮小補間処理が終わるラインでは、最終的な縮小補間画素データとして、出力端子48から出力する。
【0032】
<A−1−4.垂直方向縮小補間処理部の構成>
図5は、前述の垂直方向縮小補間処理部44の要部構成を示すブロック図である。
【0033】
垂直方向縮小補間処理部44は、入力端子53、56、59と、出力端子54、55、57、58と、入力端子53、56、59、出力端子54、55、57、58と接続される垂直方向縮小補間制御部51と、垂直方向縮小補間制御部51と接続される第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bとを備えている。
【0034】
垂直方向縮小補間制御部51では、入力端子53から入力される水平方向縮小補間画素データから、これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間後画像上の画素位置を、垂直方向縮小補間処理後画素位置として出力端子58から前述の垂直方向縮小補間係数算出部45に出力する。そのうえで、入力端子59を介して垂直方向縮小補間係数算出部45から入力される垂直方向縮小補間情報から読み出しアドレス等制御信号を算出し、出力端子54から前述の垂直方向縮小補間メモリ46に対して出力する。入力端子56から前ラインまでの第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bの垂直方向縮小補間処理結果を読み出し、入力端子53から入力される水平方向縮小補間画素データとともに、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b(Nは正の整数)に出力する。さらに、書き込みアドレス等の制御信号を出力端子54から出力し、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bから入力される現ラインまでの垂直方向縮小補間処理結果を出力端子55から出力するとともに、垂直方向縮小補間処理の最終ライン処理時には、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bからの第1の垂直方向縮小補間処理結果(第1の垂直方向縮小補間画素データとも記す)〜第Nの垂直方向縮小補間処理結果(第Nの垂直方向縮小補間画素データとも記す)を、適宜切り替えて最終的な縮小補間画素データとして、出力端子57から出力する。
【0035】
第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bでは、垂直方向縮小補間制御部51から入力される現ラインの水平方向縮小補間画素データと、前ラインまでの垂直方向縮小補間処理結果から、現ラインまでの垂直方向縮小補間処理を行い、その処理結果を、垂直方向縮小補間制御部51に出力する。
【0036】
<A−1−5.垂直方向縮小補間メモリの構成>
図6は、前述の垂直方向縮小補間メモリ46の要部構成を示すブロック図である。
【0037】
垂直方向縮小補間メモリ46は、入力端子63、64と、出力端子65と、入力端子63、64、出力端子65に接続された垂直方向縮小補間メモリ制御部61と、垂直方向縮小補間メモリ制御部61に接続された第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bとを備えている。
【0038】
垂直方向縮小補間メモリ制御部61では、入力端子63から入力される読み出しアドレス等制御信号をもとに、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに対して読み出しアドレス等制御信号を出力し、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bから読み出した前ラインまで垂直方向縮小補間画素データを出力端子65から出力する。また、入力端子63から入力される書き込みアドレス等制御信号をもとに、入力端子64から入力される現ラインまでの第1の垂直方向縮小補間画素データ〜第Nの垂直方向縮小補間画素データを、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに出力し、書き込む。
【0039】
第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bでは、垂直方向縮小補間メモリ制御部61に前ラインまでの垂直方向縮小補間画素データを出力し、逆に、垂直方向縮小補間メモリ制御部61から入力される現ラインまでの垂直方向縮小補間画素データを一時的に格納し、次ライン処理時に、前ラインまでの垂直方向縮小補間画素データとして垂直方向縮小補間メモリ制御部61に出力する。
【0040】
<A−2.動作>
以上のような構成を有する縮小画像生成装置1の動作について、図1から図6を用いて、以下で説明する。
【0041】
図2のように、水平方向の画素走査を垂直方向に順に繰り返すことによって読み出される元画像があるとする。なお、読み出し方向はこれに限るものではなく、水平方向と垂直方向とが逆になっていてもよい。
【0042】
<A−2−1.全体制御部の動作>
図1を参照して、入力端子7aを介して制御部(不図示)から縮小処理要求を受けると、全体制御部2は補間処理を開始し、出力端子7bを介して、制御部に元画素データの供給を要求する。これをきっかけに、入力端子5から縮小画像生成装置1に元画素データが入力される。入力端子5から入力された元画素データは、拡大処理部3に入力される。
【0043】
全体制御部2では、入力端子7aから入力される縮小処理要求のなかで、画像サイズ、縮小率を受け取る。画像サイズは、拡大処理部3、縮小処理部4に出力される。また、縮小率は、拡大係数、縮小係数に分けられ、拡大係数は拡大処理部3に、縮小係数は縮小処理部4に出力される。縮小率を拡大係数と縮小係数に分ける方法については、後述する。
【0044】
<A−2−2.拡大処理部の動作>
図3に示すように、入力端子5から入力された元画素データは、入力端子34を介して、拡大処理部3の拡大補間処理部31に入力される。拡大補間処理部31では、書き込みアドレス等制御信号を生成し、元画素データとともに拡大補間メモリ32に出力する。
【0045】
拡大補間メモリ32に入力された元画素データは、書き込みアドレスで指定された所定のアドレスに格納される。
【0046】
また拡大補間処理部31は、これから拡大補間処理を行う補間画素の、水平方向/垂直方向拡大補間後画像上の画素位置を、水平方向/垂直方向拡大補間処理後画素位置として、拡大補間係数算出部33に出力する。
【0047】
入力端子36を介して全体制御部2から入力される拡大係数と、入力端子37を介して全体制御部2から入力される画像サイズと、拡大補間処理部31から入力される水平方向/垂直方向拡大補間処理後画素位置(これから拡大補間処理を行う補間画素の、水平方向/垂直方向拡大補間処理後画像上の画素位置)とから、拡大補間処理前画素位置(これから拡大補間処理を行う補間画素の、水平方向/垂直方向拡大補間処理前画像上での画素位置)を算出し、拡大補間処理に必要な各画素と、それら各画素に対する水平方向/垂直方向拡大補間係数を決定し、拡大補間処理部31に水平方向/垂直方向拡大補間情報として出力する。
【0048】
拡大補間処理部31では、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間情報から、拡大補間メモリ32に対して読み出しアドレス等制御信号を発生させ、拡大補間メモリ32に一旦格納された元画素データを読み出し、拡大補間係数算出部33から出力される水平方向/垂直方向拡大補間係数を使って拡大補間画素データを算出して、出力端子35から出力する。拡大補間方法については、後述する。
【0049】
<A−2−3.縮小処理部の動作>
図4を参照すると、前述の拡大処理部3から出力された拡大補間画素データは、入力端子47を介して、縮小処理部4の水平方向縮小補間処理部41に入力される。水平方向縮小補間処理部41は、拡大補間画素データを受け取ると、これから水平方向縮小補間処理を行う補間画素の水平方向縮小補間後画像上の画素位置を、水平方向縮小補間処理後画素位置として、水平方向縮小補間係数算出部42に出力する。
【0050】
水平方向縮小補間係数算出部42では、入力端子49を介して全体制御部2から入力される縮小係数と、入力端子50を介して全体制御部2から入力される画像サイズと、水平方向縮小補間処理部41から入力される水平方向縮小補間処理後画素位置(これから水平方向縮小補間処理を行う補間画素の、水平方向縮小補間処理後画像上の画素位置)から、水平方向縮小補間処理前画素位置(これから水平方向縮小補間処理を行う補間画素の、水平方向縮小補間処理前画像上での画素位置)を算出し、水平方向縮小補間処理に必要な各画素と、それら各画素に対する水平方向縮小補間係数を決定し、水平方向縮小補間処理部41に水平方向縮小補間情報として出力する。
【0051】
水平方向縮小補間処理部41では、入力端子47を介して拡大処理部4から入力される拡大補間画素データに対して、水平方向縮小補間係数算出部42から出力される水平方向縮小補間情報のうち、水平方向縮小補間係数を使って水平方向縮小補間画素データを算出して、水平方向縮小補間メモリ43に出力する。水平方向縮小補間方法については、後述する。
【0052】
水平方向縮小補間メモリ43では、水平方向縮小補間処理部41から出力される水平方向縮小補間画素データを一時的に格納し、その後の垂直方向の縮小補間処理を行うために、垂直方向縮小補間処理部44に出力する。
【0053】
図5に示すように、水平方向縮小補間メモリ43から出力された水平方向縮小補間画素データは、入力端子53を介して垂直方向縮小補間処理部44の垂直方向縮小補間制御部51に入力される。垂直方向縮小補間制御部51では、これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間後画像上の画素位置を、垂直方向縮小補間処理後画素位置として、出力端子58から垂直方向縮小補間係数算出部45(図4参照)に出力する。
【0054】
図4において垂直方向縮小補間係数算出部45は、入力端子49を介して全体制御部2から入力される縮小係数と、入力端子50を介して全体制御部2から入力される画像サイズと、垂直方向縮小補間処理部44の垂直方向縮小補間制御部51から出力端子58(図5参照)を介して入力される垂直方向縮小補間処理後画素位置(これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間処理後画像上の画素位置)とから、垂直方向縮小補間処理前画素位置(これから垂直方向縮小補間処理を行う補間画素の、垂直方向縮小補間処理前画像上での画素位置)を算出し、縮小補間処理に必要な各画素と、それら各画素に対する垂直方向縮小補間係数を決定し、垂直方向縮小補間処理部44に垂直方向縮小補間情報として出力する。
【0055】
図5に示すように、垂直方向縮小補間係数算出部45から垂直方向縮小補間処理部44に入力された垂直方向縮小補間情報は、入力端子59を介して垂直方向縮小補間制御部51に入力される。垂直方向縮小補間制御部51では、垂直方向縮小補間係数算出部45から入力端子59を介して出力される垂直方向縮小補間情報をもとに、垂直方向縮小補間メモリ46に対する読み出しアドレス等制御信号を発生させ、出力端子54を介して垂直方向縮小補間メモリ46に出力する。
【0056】
図6において、垂直方向縮小補間処理部44から出力された読み出しアドレス等制御信号は、入力端子63を介して垂直方向縮小補間メモリ46の垂直方向縮小補間メモリ制御部61に入力される。
【0057】
垂直方向縮小補間メモリ制御部61では、垂直方向縮小補間処理部44から入力端子63を介して入力された読み出しアドレス等制御信号を、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに出力する。
【0058】
第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bでは、垂直方向縮小補間メモリ制御部61からの読み出し要求に対して、それぞれ前ラインまでの垂直方向縮小補間画素データを読み出し、垂直方向縮小補間メモリ制御部61に出力する。
【0059】
垂直方向縮小補間メモリ制御部61は、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bから読み出した前ラインまでの垂直方向縮小補間画素データを、出力端子65を介して垂直方向縮小補間処理部44に出力する。
【0060】
図5に示すように、垂直方向縮小補間メモリ46から読み出した前ラインまでの垂直方向縮小補間画素データは、入力端子56を介して垂直方向縮小補間制御部51に入力される。
【0061】
垂直方向縮小補間制御部51は、入力端子53を介して水平方向縮小補間メモリ43から入力された水平方向縮小補間画素データと、入力端子56を介して垂直方向縮小補間メモリ46から入力された前ラインまでの垂直方向縮小補間画素データと、入力端子59を介して垂直方向縮小補間係数算出部45から入力された垂直方向縮小補間係数とを、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bに出力する。
【0062】
第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bでは、入力端子53を介して水平方向縮小補間メモリ43から入力された水平方向縮小補間画素データと、入力端子56を介して垂直方向縮小補間メモリ46から入力された前ラインまでの垂直方向縮小補間画素データと、入力端子59を介して垂直方向縮小補間係数算出部45から入力された垂直方向縮小補間係数とを使って、現ラインまでの垂直方向縮小補間画素データを算出し、垂直方向縮小補間制御部51に出力する。
【0063】
垂直方向縮小補間制御部51では、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間52bから入力された現ラインまでの垂直方向縮小補間画素データを、出力端子55を介して垂直方向縮小補間メモリ46に出力する。
【0064】
図6に示すように、垂直方向縮小補間メモリ46では、入力端子64を介して垂直方向縮小補間処理部44から垂直方向縮小補間メモリ制御部61に入力された現ラインまでの垂直方向縮小補間画素データを、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bに出力する。
【0065】
第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bでは、垂直方向縮小補間メモリ制御部61から入力された現ラインまでの垂直方向縮小補間画素データを一時的に格納し、次ライン処理時、垂直方向縮小補間メモリ制御部61からの読み出しに対して、前ラインまでの垂直方向縮小補間画素データとして出力する。
【0066】
また、垂直方向縮小補間制御部51では、第1の垂直方向縮小補間部52aからの第1の垂直方向縮小補間処理結果(第1の垂直方向縮小補間画素データとも記す)〜第Nの垂直方向縮小補間部52bからの第Nの垂直方向縮小補間処理結果(第Nの垂直方向縮小補間画素データとも記す)を、補間ライン単位で切り替えて、最終的な縮小補間画素データとして出力端子57から出力する。垂直方向縮小補間方法については、後述する。
【0067】
<A−2−4.拡大係数と縮小係数を分ける方法>
では、全体制御部2において、入力端子7aから入力される縮小率を、拡大係数と縮小係数に分ける方法について説明する。縮小率をRとし、拡大係数をM/N、縮小係数を1/Lとする。
【0068】
ただし、M、Nは、2×N>M≧N>0の整数であり、Lは2以上の整数である。Mは補間点の補間位置精度に関係する固定パラメータであり、大きくするほど補間位置精度が向上する反面、補間係数参照テーブルは大きいものになり、小さくするほど補間係数参照テーブルは小さくできる反面、補間位置精度が犠牲になる。
【0069】
縮小率Rで画像を縮小する場合において、縮小率RをR=(M/N)×(1/L)として、拡大係数M/N、縮小係数1/Lを得る。このとき、M/Nは2未満となるように、1/Lを決定する。つまり、広範囲の縮小率が要求される縮小処理に対して、1倍以上2倍未満で細かい拡大係数設定が可能な拡大処理と、1/L倍ながら高次のフィルタ処理が可能な縮小処理に分ける。なお、Mによって、縮小率Rと拡大係数M/N、縮小係数1/Lの等式を満たすN、Lが存在しない場合には、画素毎に四捨五入して簡易的にNを決定するなどして、拡大補間用の補間係数参照テーブルのテーブルサイズの増加を抑えることが可能である。なお、拡大係数M/Nは、後述する画像の水平方向、垂直方向についてそれぞれ個別に設定可能である。
【0070】
<A−2−5.拡大補間方法>
次に、図7、図8を参照して、拡大補間方法について説明する。
【0071】
図7は、拡大補間に水平方向2画素×垂直方向2画素の元画素を必要とする場合の一例であり、具体的には線形補間による拡大補間方法を説明する図である。点Qを補間画素とすると、線形補間に必要とされる元画素は、補間画素Qを取り囲む水平/垂直方向の両方に隣接する点P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)である(i,jは整数)。
【0072】
ここで、補間画素Qは、元画素間をN分割(Nは0より大きい整数)した座標(x,y)(x、yは、0≦x<N、0≦y<N)に位置するものとする(以下、座標(x,y)を補間位置(x,y)と記す)。つまり、補間画素Qは、第1の元画素群P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)で構成される四角形を、水平方向にx:(N−x)、垂直方向にy:(N−y)に内分した点であり、補間係数は、水平方向にx:(N−x)、垂直方向にy:(N−y)となる。なお、説明の都合上、点P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)をそれぞれ点A0,B0,C0,D0とも記す。
【0073】
補間位置(x,y)に位置する補間画素Qの第1の補間画素値成分q0は、補間画素Qを取り囲む水平/垂直方向の両方に隣接するA0,B0,C0,D0それぞれの画素値a0,b0,c0,d0を用いて、式(1)から求められる。
【0074】
【数1】
【0075】
図8は、拡大補間に水平方向4画素×垂直方向4画素の元画素を必要とする場合の一例であり、バイキュービックやLanczos−2補間による拡大補間方法を説明する図である。点Qを補間画素とすると、例えば、Lanczos−2補間に必要とされる元画素は、補間画素Qを取り囲む水平/垂直方向の両方に隣接する点P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)と、さらにそれを取り囲む点P(i−1,j−1),P(i,j−1),P(i+1,j−1),P(i+2,j−1),P(i−1,j),P(i+2,j),P(i−1,j+1),P(i+2,j+1),P(i−1,j+2),P(i,j+2),P(i+1,j+2),P(i+2,j+2)である(i,jは整数)。
【0076】
ここで、補間画素Qは、元画素間をN分割(Nは0より大きい整数)した座標(x,y)(x、yは、0≦x<N、0≦y<N)に位置するものとする(以下、座標(x,y)を補間位置(x,y)と記す)。つまり、補間画素Qは、第1の元画素群P(i,j),P(i+1,j),P(i,j+1),P(i+1,j+1)で構成される四角形を、水平方向にx:(N−x)、垂直方向にy:(N−y)に内分した点である。
【0077】
補間係数は、補間画素と周辺の元画素との距離をtとして、式(2)のような重み付け係数kとするバイキュービックや、式(3)のような重み付け係数kとするLanczos−2補間などを用いてもよい。
【0078】
【数2】
【0079】
【数3】
【0080】
例えば、元画素P(i,j−1)の場合、補間画素Qまでの距離は、水平方向にx/N、垂直方向に(N+y)/Nであり、これら距離を式(2)、あるいは、(3)に代入したものが、元画素P(i,j−1)に対する重み付け係数k、すなわち、水平方向/垂直方向拡大補間係数となる。
【0081】
なお、上記補間方法の場合、補間位置(i,j)が元画素間をN等分した点とすると、tが2以上でkは0となるため、(2×N−1)個の距離tに対する補間係数をもつ補間係数参照テーブルがあればよい。
【0082】
図9、図10は、式(2)、式(3)について、元画素間を16等分(N=16)し、横軸を元画素間/16を基本単位とする距離とし、縦軸に重み付け係数kを振幅256に正規化したグラフである。
【0083】
<A−2−6.縮小補間方法>
次に、水平方向縮小補間方法、垂直方向縮小補間方法について説明する。ここでは、式(2)、式(3)で示されるバイキュービック、Lanczos−2補間を適応することを考える。拡大補間時には、拡大補間後の補間画素(拡大補間画素)と拡大補間に用いる周辺の元画素(拡大補間前画素)の距離が元画素(拡大補間前画素)間隔で2画素以上については、重み付け係数kは零となるため、2画素以内のものについて重み付け係数k(すなわち水平方向/垂直方向拡大補間係数)を算出すれば良く、水平方向4画素×垂直方向4画素の合計16個の元画素(拡大補間前画素)があれば、拡大補間画素データを算出することができる。
【0084】
一方、縮小補間時には、縮小補間後の補間画素(縮小補間画素)と縮小補間に用いる周辺の元画素(縮小補間前画素)の距離が縮小補間後の補間画素(縮小補間画素)間隔で2画素以内にある縮小補間前画素について重み付け係数kを算出する必要があり、縮小補間画素と縮小補間処理に使用される元画素(縮小補間前画素)との位置関係が常に同じでなければ、縮小補間に必要な元画素(縮小補間前画素)の個数、補間係数が変動する。
【0085】
図11、図12に、処理の一例として、縮小率2/3のときの場合を示す。図11は元画素から直接、縮小補間画素を作成する場合の図である。縮小補間にバイキュービックや、Lanczos−2補間を採用した場合、縮小補間画素C0の画素値を算出するのに、元画素A2、A3、A4、A5、A6が、縮小補間画素C1の画素値を算出するのに、元画素A3、A4、A5、A6、A7、A8が必要となる。このとき縮小補間画素C0と縮小補間画素C1では、縮小補間画素と各元画素との位置関係が同じではないため、式(2)、式(3)からも明らかなように、重み付け係数kの組は縮小補間画素の位置によって異なる。そのため、縮小率に自由度を持たせれば持たせるほど、縮小補間画素と元画素までの細かい距離の差に対応できるような、重み付け係数k(水平方向縮小補間係数、垂直方向補間係数)を格納する大きなサイズの補間係数参照テーブルが必要となる。
【0086】
一方、図12は、元画素を一旦、1倍以上2倍未満に拡大補間を行い、拡大補間画素を作成した後に1/Lの縮小補間により縮小補間画素を作成する場合の図である。拡大補間にバイキュービックや、Lanczos−2補間を採用した場合、拡大補間画素B0を算出するのに、元画素A0、A1、A2、A3が、拡大補間画素B6を算出するのに、元画素A5、A6、A7、A8が、拡大補間画素B2を算出するのに、元画素A2、A3、A4、A5が、拡大補間画素B8を算出するのに、元画素A6、A7、A8、A9が必要となる。同様に、縮小補間にバイキュービックや、Lanczos−2補間を採用した場合、2画素以上離れた場合の重み付け係数kは零になるため、縮小補間画素C0を算出するのに、拡大補間画素B0、B1、B2、B3、B4、B5、B6(元画素A0、A1、A2、A3、A4、A5、A6、A7、A8)が、縮小補間画素C1を算出するのに、拡大補間画素B2、B3、B4、B5、B6、B7、B8(元画素A2、A3、A4、A5、A6、A7、A8、A9)が必要となる。
【0087】
このとき縮小補間画素C0と縮小補間画素C1では、縮小補間画素と縮小補間前の画素である拡大補間画素との位置関係が同じであるため、縮小係数1/Lに対して重み付け係数kの組は縮小補間画素の位置に関わらず1種類となる。すなわち拡大処理部3から出力される一組の拡大補間画素に基づいて一の縮小補間画素を生成し、各縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じとなる。そのため、重み付け係数k(水平方向縮小補間係数、垂直方向縮小補間係数)を格納する補間係数参照テーブルは小さいものでよい。
【0088】
<A−2−7.水平方向、垂直方向の縮小補間処理>
次に、水平方向縮小補間処理部41による水平方向縮小補間処理と、垂直方向縮小補間処理部44の垂直方向縮小補間処理の違いについて説明する。ここでも、縮小補間として、バイキュービックや、Lanczos−2補間を採用した場合について説明する。なお、必ずしもこれに限るものではなく、ある一定以上距離の離れた画素について、重み付け係数kが0となるような縮小補間であれば、同様である。
【0089】
水平方向縮小補間処理部41による水平方向縮小補間処理では、入力端子47から入力される拡大補間画素データに対して、水平方向縮小補間係数処理算出部42から出力される水平方向縮小補間係数をかけ、水平方向縮小補間画素からの距離がある一定の範囲内の画素について累積加算し、上記一定範囲内の水平方向縮小補間係数の総和に応じて適当にビットシフトを行い、水平方向縮小補間画素データを算出する。
【0090】
一方、垂直方向縮小補間処理部44による垂直方向縮小補間処理では、水平方向縮小補間メモリ43から出力される水平方向縮小補間画素データに対して、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間係数をかけ、一時的に垂直方向縮小補間メモリ46に格納し、次のラインで、あらたに水平方向縮小補間メモリ43から出力される水平方向縮小補間画素データに対して、垂直方向縮小補間係数算出部45から出力される垂直方向縮小補間係数をかけ、垂直方向縮小補間メモリ46に一時的に格納してあった前ラインまでの加算結果を読み出して加算し、垂直方向縮小補間メモリ46に書き戻す。これを垂直方向縮小補間画素からの距離がある一定の範囲内の画素(ライン)の間、繰り返しながら累積加算していく。垂直方向縮小補間画素から一定の範囲内の加算が完了した後、上記一定範囲内の垂直方向縮小補間係数の総和に応じた適当なビットシフトを行い、最終的な縮小補間画素データを算出する。
【0091】
図13を用いて、垂直方向縮小補間処理部44、垂直方向縮小補間メモリ46の内部動作について説明する。図5、図6にも示すように、垂直方向縮小補間処理44には、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bが、垂直方向縮小補間メモリ46には、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bがあり、N個の垂直方向縮小補間が同時に処理されていくことになる。
【0092】
図13は、縮小係数が1/2の場合の動作を概念的に示したものである。式(2)、式(3)で示されるバイキュービック、Lanczos−2補間では、縮小補間画素間で距離2以内の画素が縮小補間処理に必要となるため、図13の場合のように縮小係数が1/2の場合では、縮小補間処理に必要な画素数は7個である。それぞれの補間係数をk0、k1、k2、k3、k4、k5、k6とする。また、ある画素(ライン)の縮小補間処理を行っている間に、1/4位相がずれた状態で2つ目の縮小補間処理が、2/4位相がずれた状態で3つ目の縮小補間処理が、3/4位相がずれた状態で4つ目の縮小補間処理が同時処理する必要がある。例えば、縮小補間処理L′04には、L05、L06、L07、L08、L09、L10、L11が、縮小補間処理L′05には、L07、L08、L09、L10、L11、L12、L13が、縮小補間処理L′06には、L09、L10、L11、L12、L13、L14、L15が、縮小補間処理L′07には、L11、L12、L13、L14、L15、L16、L17が必要である。
【0093】
例えば、水平方向縮小補間メモリ43からL11の水平方向縮小補間画素データが入力されるとき、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに対して、縮小補間処理L′04として補間係数k6が、縮小補間処理L′05として補間係数k4が、縮小補間処理L′06として補間係数k2が、縮小補間処理L′07として補間係数k0がかけられ、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)から出力されるそれぞれの前ラインまでの垂直方向縮小補間処理結果に加算される。
【0094】
縮小補間処理L′04では、水平方向縮小補間メモリ43から入力されるL11の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。同様に、縮小補間処理L′05では、水平方向縮小補間メモリ43から入力されるL13の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′06では、水平方向縮小補間メモリ43から入力されるL15の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′07では、水平方向縮小補間メモリ43から入力されるL17の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。
【0095】
縮小補間処理L′08では、縮小補間処理L′04と同じ、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bを使用することができる。
【0096】
同様に、図14を用いて、垂直方向縮小補間処理部44、垂直方向縮小補間メモリ46の内部動作について説明する。図5、図6にも示すように、垂直方向縮小補間処理44には、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bが、垂直方向縮小補間メモリ46には、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bがあり、N個の垂直方向縮小補間が同時に処理されていくことになる。
【0097】
図14は、縮小係数が1/3の場合の動作を概念的に示したものである。式(2)、式(3)で示されるバイキュービック、Lanczos−2補間では、縮小補間画素間で距離2以内の画素が縮小補間処理に必要となるため、図14の場合のように縮小係数が1/3の場合では、縮小補間処理に必要な画素数は11個である。それぞれの補間係数をk0、k1、k2、k3、k4、k5、k6、k7、k8、k9、k10とする。また、ある画素(ライン)の縮小補間処理を行っている間に、1/4位相がずれた状態で2つ目の縮小補間処理が、2/4位相がずれた状態で3つ目の縮小補間処理が、3/4位相がずれた状態で4つ目の縮小補間処理が同時処理する必要がある。例えば、縮小補間処理L′04には、L07、L08、L09、L10、L11、L12、L13、L14、L15、L16、L17が、縮小補間処理L′05には、L10、L11、L12、L13、L14、L15、L16、L17、L18、L19、L20が、縮小補間処理L′06には、L13、L14、L15、L16、L17、L18、L19、L20、L21、L22、L23が、縮小補間処理L′07には、L16、L17、L18、L19、L20、L21、L22、L23、L24、L25、L26が必要である。
【0098】
例えば、水平方向縮小補間メモリ43からL16の水平方向縮小補間画素データが入力されるとき、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに対して、縮小補間処理L′04として補間係数k9が、縮小補間処理L′05として補間係数k6が、縮小補間処理L′06として補間係数k3が、縮小補間処理L′07として補間係数k0がかけられ、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)から出力されるそれぞれの前ラインまでの垂直方向縮小補間処理結果に加算される。
【0099】
縮小補間処理L′04では、水平方向縮小補間メモリ43から入力されるL17の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。同様に、縮小補間処理L′05では、水平方向縮小補間メモリ43から入力されるL20の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′06では、水平方向縮小補間メモリ43から入力されるL23の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力し、縮小補間処理L′07では、水平方向縮小補間メモリ43から入力されるL26の水平方向縮小補間画素データに対して、垂直方向縮小補間処理を行った後、出力端子48から最終的な縮小補間画素データを出力する。
【0100】
縮小補間処理L′08では、縮小補間処理L′04と同じ、第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b、第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bを使用することができる。
【0101】
以上のように、図2に示すような水平方向の画素走査と垂直方向のライン走査とを行いながら、水平方向縮小補間メモリ43から入力される水平方向縮小補間画素データに対して、垂直方向縮小補間処理部44内の第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52bと、垂直方向縮小補間メモリ46内の第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62bとで位相をずらしながら、同時動作させることにより、リアルタイムに垂直方向縮小補間が可能である。結果、拡大補間処理、水平方向縮小補間処理、垂直方向縮小補間処理により、リアルタイムな縮小画像の生成が可能である。
【0102】
また、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、4個(2×2個)の垂直方向縮小補間部が、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)では、4個(2×2個)の垂直方向縮小補間メモリがあればよい。また、縮小係数が1/L(Lは、2以上の整数)のとき、(2×2×L−1)個の画素(ライン)を用いて縮小補間処理を行えばよい。
【0103】
同様に、補間係数が、補間画素と周辺の元画素との距離をtとして、式(4)のような重み付け係数kとするLanczos−3補間などを用いてもよい。
【0104】
【数4】
【0105】
このとき、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)では、6個(2×3個)の垂直方向縮小補間部が、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)では、6個(2×3個)の垂直方向縮小補間メモリがあればよい。また、縮小係数が1/L(Lは、2以上の整数)のとき、(2×3×L−1)個の画素(ライン)を用いて縮小補間処理を行えばよい。
【0106】
補間係数が、補間処理後の画素と周辺の元画素との距離(補間処理後の画素間隔を1とする)をtとして、|t|≧A(Aは2以上の正の整数)で0となるものを選択することにより、垂直方向縮小補間処理部44(第1の垂直方向縮小補間部52a〜第Nの垂直方向縮小補間部52b)は(2×A)個の垂直方向縮小補間部を、垂直方向縮小補間メモリ46(第1の垂直方向縮小補間メモリ62a〜第Nの垂直方向縮小補間メモリ62b)は(2×A)個の垂直方向縮小補間メモリを持てば良く、また、縮小係数が1/L(Lは、2以上の整数)のとき、(2×A×L−1)個の画素(ライン)を用いて縮小補間処理を行えばよい。また、縮小係数1/L毎に、(2×A×L−1)個の係数をもつ補間係数参照テーブルがあればよい。なお、A、Lは水平、垂直方向についてそれぞれ個別に設定可能である。なお、前述した縮小補間の例ではバイキュービックやLanczos−2補間をしていたため、元画素との距離tが2以上の場合には重み付け係数kは零となっていた(数2、数3は、|t|≧2で0)。また、Lanczos−3補間では、元画素との距離tが3以上の場合には重み付け係数kは零となる(数4は、|t|≧3で0)。
【0107】
<A−3.効果>
この発明にかかる実施の形態1によれば、縮小率Rで画像を縮小する縮小画像生成装置であって、縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、入力された画像を一旦M/Nを拡大係数として拡大する拡大処理部3と、拡大処理部3で拡大された画像を1/Lを縮小係数として縮小する縮小処理部4とを備えることで、画像の拡大処理機能を併用することで縮小率の微調整を拡大処理で吸収し、縮小係数設定を整数分の1に限定することで縮小係数の選択肢を制限し、補間フィルタの補間係数を縮小係数にあわせて用意した複数個の小さな参照テーブルとして構成することができ、高次な補間を実現しつつ折り返しノイズの発生を抑制した良好な縮小画像をリアルタイムに生成することが可能となる。
【0108】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、拡大係数M/Nおよび縮小係数1/Lは、入力された画像の水平方向および垂直方向についてそれぞれ個別に設定可能であることで、縮小率に合わせた自由度の高い拡大係数、縮小係数の設定が可能となる。
【0109】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、拡大処理部3は、縮小処理部4における縮小の際、画像の縮小後の画素間で、縮小に必要な縮小前の画素数と、縮小の縮小補間処理に用いる補間係数とが等しくなる拡大係数で拡大することで、縮小補間画素と縮小補間前の画素である拡大補間画素との位置関係が同じであるため、縮小係数1/Lに対して重み付け係数kの組は縮小補間画素の位置に関わらず1種類となり、重み付け係数kを格納する補間係数参照テーブルを小さいものにすることができる。
【0110】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、係数MおよびNは、2×N>M≧N>0を満たす整数であることで、所望の縮小率を実現するための微調整を拡大係数で吸収することができる。
【0111】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、縮小処理部4は、縮小係数1/L毎に縮小の縮小補間処理に用いる2×A×L−1(Aは2以上の整数)個の補間係数参照テーブルを有することで、縮小補間処理に対応した補間係数参照テーブルを用いることができ、またその補間係数参照テーブルを小さいものに抑えることができる。
【0112】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、補間係数参照テーブルは、画像の水平方向、垂直方向についてそれぞれ個別にAを設定可能であることで、縮小率に合わせた自由度の高い補間係数の設定が可能となる。
【0113】
また、この発明にかかる実施の形態1によれば、縮小画像生成装置において、縮小処理部4は、縮小後の画素と、その周辺に位置する縮小前の画素の、縮小後の画素間隔を1とする距離tがAに対し|t|≧Aを満たす場合、縮小補間処理に用いる補間係数を0とすることで、縮小に用いる縮小前の画素数を所望の数に限定できる。
【0114】
また、この発明にかかる実施の形態1によれば、画像を縮小する縮小画像生成装置であって、入力された画像を一旦拡大する拡大処理部3と、拡大処理部3で拡大された画像を縮小する縮小処理部4とを備え、拡大処理部3から出力される拡大補間画素と縮小処理部4から出力される縮小補間画素について、縮小処理部4は、一組の拡大補間画素に基づいて一の縮小補間画素を生成し、各縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じであることで、画像の拡大処理機能を併用することで縮小率の微調整を拡大処理で吸収し、縮小係数の選択肢を制限し、補間フィルタの補間係数を縮小係数にあわせて用意した複数個の小さな参照テーブルとして構成することができ、高次な補間を実現しつつ折り返しノイズの発生を抑制した良好な縮小画像をリアルタイムに生成することが可能となる。
【符号の説明】
【0115】
1 縮小画像生成装置、2 全体制御部、3 拡大処理部、4 縮小処理部、5,7a,34,36,37,47,49,50,53,56,59,63,64 入力端子、6,7b,35,48,54,55,57,58,65 出力端子、31 拡大補間処理部、32 拡大補間メモリ、33 拡大補間係数算出部、41 水平方向縮小補間処理部、42 水平方向縮小補間係数算出部、43 水平方向縮小補間メモリ、44 垂直方向縮小補間処理部、45 垂直方向縮小補間係数算出部、46 垂直方向縮小補間メモリ、51 垂直方向縮小補間制御部、52a 第1の垂直方向縮小補間部、52b 第Nの垂直方向縮小補間処理部、61 垂直方向縮小補間メモリ制御部、62a 第1の垂直方向縮小補間メモリ、62b 第Nの垂直方向縮小補間メモリ。
【特許請求の範囲】
【請求項1】
縮小率Rで画像を縮小する縮小画像生成装置であって、
前記縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、
入力された前記画像を一旦前記M/Nを拡大係数として拡大する拡大処理部と、
前記拡大処理部で拡大された前記画像を前記1/Lを縮小係数として縮小する縮小処理部とを備える、
縮小画像生成装置。
【請求項2】
前記拡大係数および前記縮小係数は、前記画像の水平方向および垂直方向についてそれぞれ個別に設定可能である、
請求項1に記載の縮小画像生成装置。
【請求項3】
前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、
各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じである、
請求項1または2に記載の縮小画像生成装置。
【請求項4】
前記係数MおよびNは、2×N>M≧N>0を満たす整数である、
請求項1〜3のいずれかに記載の縮小画像生成装置。
【請求項5】
前記縮小処理部は、前記縮小係数1/L毎に前記縮小の縮小補間処理に用いる2×A×L−1(Aは2以上の整数)個の補間係数参照テーブルを有する、
請求項1〜4のいずれかに記載の縮小画像生成装置。
【請求項6】
前記補間係数参照テーブルは、前記画像の水平方向、垂直方向についてそれぞれ個別に前記Aを設定可能である、
請求項5に記載の縮小画像生成装置。
【請求項7】
前記縮小処理部は、前記縮小後の画素と、その周辺に位置する前記縮小前の画素の、縮小後の画素間隔を1とする距離tが前記Aに対し|t|≧Aを満たす場合、前記縮小補間処理に用いる前記補間係数を0とする、
請求項5または6に記載の縮小画像生成装置。
【請求項8】
画像を縮小する縮小画像生成装置であって、
入力された前記画像を一旦拡大する拡大処理部と、
前記拡大処理部で拡大された前記画像を縮小する縮小処理部とを備え、
前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、
各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じである、
縮小画像生成装置。
【請求項1】
縮小率Rで画像を縮小する縮小画像生成装置であって、
前記縮小率Rは、M/N(MおよびNは、M≧Nを満たす整数)と1/L(Lは2以上の整数)との積で表され、
入力された前記画像を一旦前記M/Nを拡大係数として拡大する拡大処理部と、
前記拡大処理部で拡大された前記画像を前記1/Lを縮小係数として縮小する縮小処理部とを備える、
縮小画像生成装置。
【請求項2】
前記拡大係数および前記縮小係数は、前記画像の水平方向および垂直方向についてそれぞれ個別に設定可能である、
請求項1に記載の縮小画像生成装置。
【請求項3】
前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、
各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じである、
請求項1または2に記載の縮小画像生成装置。
【請求項4】
前記係数MおよびNは、2×N>M≧N>0を満たす整数である、
請求項1〜3のいずれかに記載の縮小画像生成装置。
【請求項5】
前記縮小処理部は、前記縮小係数1/L毎に前記縮小の縮小補間処理に用いる2×A×L−1(Aは2以上の整数)個の補間係数参照テーブルを有する、
請求項1〜4のいずれかに記載の縮小画像生成装置。
【請求項6】
前記補間係数参照テーブルは、前記画像の水平方向、垂直方向についてそれぞれ個別に前記Aを設定可能である、
請求項5に記載の縮小画像生成装置。
【請求項7】
前記縮小処理部は、前記縮小後の画素と、その周辺に位置する前記縮小前の画素の、縮小後の画素間隔を1とする距離tが前記Aに対し|t|≧Aを満たす場合、前記縮小補間処理に用いる前記補間係数を0とする、
請求項5または6に記載の縮小画像生成装置。
【請求項8】
画像を縮小する縮小画像生成装置であって、
入力された前記画像を一旦拡大する拡大処理部と、
前記拡大処理部で拡大された前記画像を縮小する縮小処理部とを備え、
前記拡大処理部から出力される拡大補間画素と前記縮小処理部から出力される縮小補間画素について、前記縮小処理部は、一組の前記拡大補間画素に基づいて一の前記縮小補間画素を生成し、
各前記縮小補間画素と、対応する各組の拡大補間画素との各位置関係は同じである、
縮小画像生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−9814(P2011−9814A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−148295(P2009−148295)
【出願日】平成21年6月23日(2009.6.23)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願日】平成21年6月23日(2009.6.23)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]