以下、本発明の実施の形態を図面を参照しつつ説明する。
<第1の実施の形態>
本発明の第1の実施の形態を図1〜図24を参照しつつ説明する。
まず、本実施の形態により実現される画像鮮明化の概要について説明する。
画像信号をサンプリングする際に、画像の1フレームを構成する画素数に応じて一意に定まるナイキスト周波数よりも高い周波数成分は、折り返し歪となる。後述する画像処理システム(後の図1等参照)では、画像送信装置(101)が有する画像縮小部(104)において画像を縮小する際に、ローパスフィルタ(後の図5等参照)のカットオフ周波数をナイキスト周波数よりも低く設定すると、折り返し歪を低減する作用を期待できるが、その反面、縮小後の画像は高周波成分が減衰されるため、ぼけた画像となる傾向がある。一方、ローパスフィルタのカットオフ周波数をナイキスト周波数よりも高く設定すると、縮小後の画像には縮小前の画像に元々含まれているベースバンド成分に折り返し歪の成分が混じる。折り返し歪はモアレ(干渉縞)状のノイズに見えるため、画質が大きく劣化する可能性がある。
そこで、本実施の形態においては、画像受信装置(109)が有する画像拡大・鮮明化部(111)においては、縮小後の伝送画像を拡大する際に、複数の画像フレームを用いて折り返し歪を低減することにより、広帯域のベースバンド成分を抽出して、画像の鮮明化を図る。折り返し歪の低減には、同一の入力信号に対して標本化の位相を変えてサンプリングしなおすと、発生する折り返し歪の位相が変化する性質を利用する。この性質は、インタレース走査などで利用されている。例えば、一般的な2:1インタレースでは、撮像時に、画像を上から1走査線ごとに飛び越して走査し、奇数番目の走査線だけの画像から成る第1フィールドと、偶数番目のだけの画像から成る第2フィールドに分けて伝送する。表示時には、信号処理によってインタレース走査からプログレッシブ走査に変換したり、或いは、人間の目の残像効果によって第1フィールドと第2フィールドが脳内で合成されて知覚されることを利用したりして、鮮明なフレーム画像を得ている。
また、インタレース走査の考え方だけでは、撮像した画素数の「約数」の画素数、すなわち「1/N」(ただし、Nは正整数)の画素数にしか変換することができないため、例えば、フルHDサイズ(水平1920画素×垂直1080画素)からD1サイズ(水平704画素×垂直480画素)へ変換する場合のように、「非約数」の画素数への縮小を行うことができない。
そこで、本実施の形態においては、まず、画像位置シフト部(103)によってフレームごとに画像の位置をシフトしたのちに、画像縮小部(104)によって画像を縮小することにより、縮小画像(伝送画像)に含まれる折り返し歪の位相を意図的に変化させる。このとき、被写体が静止していれば、画像シフトの仕方(シフト方向とシフト量)から折り返し歪の位相を一意に決定できる。たとえば、フルHDサイズ(水平1920画素×垂直1080画素)の画像の位置を水平方向に1画素ずらすと、画像縮小後のD1サイズ(水平704画素×垂直480画素)の画像では、水平方向に0.37(=704/1920)画素ずれるため、折り返し歪の位相は11π/15(=2π×704/1920)ラジアンだけ回転する。この位相回転量は、フレーム全体で一定かつ事前に決定できるため、前述したサブピクセル単位の動き探索が不要になる。その後、後述する動作原理に基づいて折り返し歪を低減することにより、非約数の画素数に縮小した場合にも画像の鮮明化を行うことができるようになる。
以上のような知見に基づいた本実施の形態の詳細を以下に説明する。
図1は、本実施の形態に係る画像処理システムの全体構成を模式的に示す機能ブロック図である。
図1において、画像処理システムは、画像送信装置(101)、通信ネットワーク(107)、画像蓄積装置(108)、画像受信装置(109)、操作部(114)、画像受信装置(109)、および表示部(113)によって概略構成されている。
画像送信装置(101)は、画像(静止画、動画)を撮像するカメラ(102)と、カメラ(102)で撮像した画像に画像位置シフト処理を行う画像位置シフト部(103)と、画像位置シフト処理を行った画像に画像縮小処理を行う画像縮小部(104)と、画像縮小処理を行った画像に符号化処理を行う符号化部(105)と、通信ネットワーク(107)を介して画像受信装置(109)から送信されるコマンドやデータに基づいて、カメラ(102)、画像位置シフト部(103)、画像縮小部(104)、及び符号化部(105)を含む画像送信装置(101)全体の動作を制御する制御部(106)とを有している。また、画像受信装置(109)は、通信ネットワーク(107)を介して画像送信装置(101)から送られてきた画像に復号化処理を行う復号化部(110)と、復号化処理を行った画像に画像拡大・鮮明化処理を行う画像拡大・鮮明化部(111)と、画像受信装置(109)全体の動作を制御する制御部(112)とを有している。
そして、本実施の形態における画像処理システムでは、画像送信装置(101)が有する画像縮小部(104)において画像の1フレームを構成する画素数を減らすことにより伝送データサイズを減らすとともに、画像受信装置(109)が有する画像拡大・鮮明化部(111)において画像を拡大することにより、ぼやけの少ない鮮明な画像を表示することができる。なお、図示しない画像拡大部あるいは画像縮小部を用いて、画像受信装置(109)から出力された第3の画素数の画像をさらに拡大あるいは縮小し、図示しない第4の画素数を有する画像に変換したのちに、表示部(113)で表示するように構成してもよい。
カメラ(102)は、例えば、図示しないCCD(Charge Coupled Device)やCMOS(Complementary Metal-Oxide Semiconductor)などの光電変換素子とレンズからなる撮像部と、信号レベル調整やコントラスト調整、ブライトネス調整、ホワイトバランス調整などを行う信号処理部とによって構成されており、カメラ(102)で撮像された画像(静止画、動画)は後段の画像位置シフト部(103)に送られる。なお、以降の説明では画像の画素数を水平方向の画素数(水平画素数)と垂直方向の画素数(垂直画素数)の組で表すものとし、カメラ(102)で撮像される画像の1フレームは第1の画素数で構成されるものとして以下では説明する。
画像位置シフト部(103)は、カメラ(102)で得られた画像の位置を整数画素の単位で上下左右にシフトさせる(ずらす)画像位置シフト処理を行うものである。ここで、画像位置シフト部(103)における画像位置シフト処理について図2及び図3を参照しつつ説明する。
図2は、画像位置シフト処理の一例を概略的に示す図である。
図2では、3人の人物が被写体となっている画像を模擬的に示しており、破線はカメラ(102)で撮影された元の画像フレーム(200)を、実線は画像位置シフト処理でシフトされた画像フレーム(201)〜(204)を示している。また、矢印は、1フレーム時間(例えば1/30秒)ごとの状態遷移を示している。図2では、4フレーム周期で画像のシフトを行う画像位置シフト処理を行っており、「4フレーム型画像位置シフト」と称する。
画像位置シフト処理後の画像フレーム(201)の状態では、元の画像フレーム(200)の位置を左上にシフトして画像の右端と下端に所定の画素値(例えば、黒色を表す画素値=0)を挿入している。同様に、画像フレーム(202)の状態では、元の画像フレーム(200)の位置を右上にシフトして画像の左端と下端に黒色(画素値=0)を挿入し、画像フレーム(203)の状態では、元の画像フレーム(200)の位置を右下にシフトして画像の左端と上端に黒色(画素値=0)を挿入し、画像フレーム(204)の状態では、元の画像フレーム(200)の位置を左下にシフトして画像の右端と上端に黒色(画素値=0)を挿入している。つまり、4フレーム型画像位置シフトでは、1フレーム時間ごとに画像フレーム(201)〜(204)の順に状態遷移させることにより画像位置シフト処理を行う。なお、画像位置シフト部(103)におけるシフト方向およびシフト量は、制御部(106)により制御されている。
図3は、画像位置シフト処理の他の一例を概略的に示す図である。
図3においても図2と同様に、破線はカメラ(102)で撮影された元の画像フレーム(200)を、実線は画像位置シフト処理でシフトされた画像フレーム(205),(205)を示している。また、矢印は、1フレーム時間(例えば1/30秒)ごとの状態遷移を示している。図3では、2フレーム周期で画像のシフトを行う画像位置シフト処理を行っており、「2フレーム型画像位置シフト」と称する。
画像位置シフト処理後の画像フレーム(205)の状態では、元の画像フレーム(200)の位置を左側にシフトして画像の右端に黒色(画素値=0)を挿入している。同様に、画像フレーム(206)の状態では、元の画像フレーム(200)の位置を右側にシフトして画像の左端に黒色(画素値=0)を挿入している。つまり、2フレーム型画像位置シフトでは、1フレーム時間ごとに画像フレーム(205),(206)の順に状態遷移させることにより画像位置シフト処理を行う。
なお、画像位置シフト処理は図2及び図3に示した例に限定されるものではない。例えば、図2に示した4フレーム型位置シフトにおいて、「画像フレーム(201)→画像フレーム(204)→画像フレーム(203)→画像フレーム(202)→左上(201)→・・・」の順に位置シフトしたり、「画像フレーム(201)→画像フレーム(202)→画像フレーム(204)→画像フレーム(203)→画像フレーム(201)→・・・」の順に位置シフトしたり、「画像フレーム(201)→画像フレーム(204)→画像フレーム(202)→画像フレーム(203)→画像フレーム(201)→・・・」の順に位置シフトしたり、あるいはランダム(無作為)な順番で位置シフトしたりしてもよい。また、例えば、画像フレーム(200)の位置を位置シフトの一状態とし、「画像フレーム(200)→右側へ位置シフト→右下へ位置シフト→下側へ位置シフト→画像フレーム(200)→・・・」のように位置シフトしてもよい。
同様に、例えば、図3に示した2フレーム型位置シフトにおいて、画像フレーム(205)の状態では位置シフトを行わずに(すなわち、画像フレーム(200)のまま位置を固定し)、「画像フレーム(200)→画像フレーム(206)→画像フレーム(200)→・・・」のように位置シフトしてもよい。
また、図示しない上下方向や斜め方向への位置シフトを含む画像位置シフト処理としてもよい。
さらには、4フレーム型位置シフトのように4フレーム周期で位置シフトを行うものや2フレーム型位置シフトのように2フレーム周期で位置シフトを行うものに限られず、例えば、水平方向に3フレーム周期で位置シフトを行うものや、水平方向への3フレームの位置シフトと垂直方向の2フレームの位置シフトとを組み合わせた「6フレーム周期」の位置シフト、或いは、水平方向への3フレームの位置シフトと垂直方向への3フレームの位置シフトとを組み合わせた「9フレーム周期」の位置シフトなどを行ってもよい。
なお、後に詳述する画像拡大・鮮明化部(111)における画像拡大鮮明化処理においては、画像位置シフト処理によって位置シフトした方向に応じて画像の鮮明化の状態が変化する。例えば、図2に示した「4フレーム型位置シフト」を行った場合は、画像拡大・鮮明化処理後の画像の水平方向と垂直方向の解像度(鮮明さ)が向上し、図3に示した「2フレーム型位置シフト」を行った場合は、水平方向の解像度(鮮明さ)だけが向上する。言い換えれば、解像度を向上させたい方向に画像フレームをシフトするような画像位置シフト処理を行うことにより、所望の方向の解像度を向上することができる。
図5は、画像縮小部の構成を概略的に示す機能ブロック図である。また、図6は、画像縮小部の水平処理部及び垂直処理部の構成を概略的に示す機能ブロック図である。
図5において、画像縮小部(104)は、画像の1フレームを構成する画素数を第1の画素数よりも少ない第2の画素数となるよう変換する画像縮小処理を行うものであって、補間フィルタとも呼ばれる構成であり、画像位置シフト部(103)から入力された画像に対して、水平方向の画像縮小処理を行う水平処理部(401−H)と、垂直方向の画像縮小処理を行う垂直処理部(401−V)とを有している。なお、入力画像に対する処理の順番は水平処理部(401−H)と垂直処理部(401−V)とで入れ替えてもよい。
図6において、水平処理部(401−H)と垂直処理部(401−V)は同様の構成で実現可能であり、m倍アップサンプリングを行う画素挿入部(402)と、高周波成分を除去あるいは低減するローパスフィルタ(403)と、1/nダウンサンプリングを行う画素間引き部(404)とを有している。
水平処理部(401−H)および垂直処理部(401−V)においては、入力画像に対して画素挿入部(402)によってm倍アップサンプリング(零挿入)を行ったのちに、ローパスフィルタ(403)によって不要な高周波成分を除去あるいは低減し、画素間引き部(404)によって1/nダウンサンプリングを行うことにより、画像の水平方向(又は垂直方向)の画素数をm/n倍(ただし、m、nは正の整数)に増加あるいは減少することできる。なお、後述する画像拡大部(301)による画像拡大処理は、画像縮小部104の定数m,nの設定によって同様の構成で実現可能である。
すなわち、例えば、画像フレームを構成する画素数として、フルHDサイズ(水平1920画素×垂直1080画素)とD1サイズ(水平704画素×垂直480画素)を考えた場合、m=11およびn=30の設定を用いれば、画像縮小部(104)における水平方向の縮小(1920画素→704画素)を実現することができ、m=2、n=1と設定すれば、画像拡大部(301)における水平方向の拡大(704画素→1408画素)を実現することができる。垂直方向の縮小・拡大も同様である。なお、画像縮小部(104)における出力画素数(第2の画素数)は、制御部106によりm,nを設定することにより制御される。
ローパスフィルタ(403)には、ナイキスト周波数をカットオフ周波数とする理想的な周波数特性を逆フーリエ変換して得たsinc関数(=sin(x)/x)に窓関数(ハニング窓など)を乗じたフィルタ係数を用いる。また、小数画素精度の画像位置シフトを行う場合には、sinc関数の中心位置をtだけ動かしてsin(x−t)/(x−t)とすることにより実現する。なお、後段の処理で折り返し歪を低減する処理を行うことを前提とすれば、水平方向および垂直方向の各ローパスフィルタ(403)のカットオフ周波数をナイキスト周波数よりも高い周波数に設定することも考えられる。また、図6に示した構成と等価な動作はポリフェーズフィルタ(多相フィルタ)によって実現することができる。
符号化部(105)は、画像縮小部(104)から入力された画像を符号化して圧縮し、通信ネットワーク107を介して画像受信装置(109)や画像蓄積装置(108)に伝送するものである。なお、画像送信装置(101)や画像受信装置(109)と通信ネットワーク(107)とを接続するための処理構成は一般的な技術を用いるものとして図示を省略する。また、画像受信装置(109)の復号化部110は、符号化部(105)で用いられた符号化方法に応じて復号化処理を行う。
符号化部105で用いる符号化方法としては、例えば、MPEG(Moving Picture Expert Group)−1、MPEG−2、MPEG−4、H.264、H.265、VC−1、JPEG(Joint Photographic Experts Group)、Motion JPEG、JPEG−2000などの標準規格化された符号化を行ってもよいし、非標準の符号化を行ってもよい。なお、符号化部(105)における符号化方式は制御部(106)により制御される。
通信ネットワーク(107)は、有線あるいは無線のどちらでもよく、一般的なIP(Internet Protocol)などの通信プロトコルを用いてデジタルデータを通信するためのネットワークである。
図4は、画像受信装置の画像拡大・鮮明化部の構成の一例を概略的に示す機能ブロック図である。
図4において、画像拡大・鮮明化部(111)は、復号化部(110)で復号された第2の画素数を持つ画像に画像拡大処理を行う画像拡大部(301)と、画像拡大部処理を行った画像に画像位置シフト処理を行う画像位置シフト部(302)と、画像位置シフト処理を行った画像に折り返し歪低減処理を行う折り返し歪低減部(303)とを有している。
なお、以下の各信号処理においては、カラー画像信号(RGB(赤、緑、青)や、YUV(輝度Y、色差UV)など)のすべてに対して同様の処理を行ってもよい。また、以下の各信号処理を輝度信号Yだけに対して行い、色差信号(UV)に対しては行わず、画像拡大処理だけを行うようにしてもよい。
画像拡大部(301)は、復号化部(110)から入力された第2の画素数(例えば、D1サイズ(水平704画素×垂直480画素))を持つ画像を第3の画素数を持つ画像に変換する画像拡大処理を行うものであり、前述のように画像縮小部(104)と同様の構成により実現することができる。画像拡大処理は、後段の処理ブロックで低減した折り返し歪が再び周波数領域で折り返すことを防止するために画像の画素数を増加させる(すなわち、サンプリング周波数を高くする)ことが目的であり、第3の画素数は第2の画素数よりも大きい画素数であればよい。したがって、ここでは説明の簡単のために第3の画素数を第2の画素数の2倍(すなわち、水平1408画素×垂直960画素)であるとして説明する。
画像位置シフト部(302)は、画像拡大部(301)で画像拡大処理を行った画像を画像送信装置(101)の画像位置シフト部(103)による画像位置シフト処理とは逆方向に画像の位置をシフトする(すなわち、画像位置シフト部(103)で行われた位置シフトを打ち消すように画像の位置をシフトする)ことにより、フレーム間の画像ブレを抑えるものである。例えば、画像位置シフト部(103)で左方向に1画素、上方向に1画素シフトするような画像位置シフト処理を行った場合には、画像位置シフト部(302)において、右方向に0.73(=1408/1920)画素、下方向に0.89(=960/1080)画素シフトするような画像位置シフト処理を行えば、画像が元の位置に戻ることになり、フレーム間の画像ブレが抑えられる。なお、画像位置シフト部(302)における画像位置シフト処理においては、画像位置シフト部(103)における画像位置シフト処理を打ち消すように画像シフトを行えば良いため、例えば、図2に示した「4フレーム型画像位置シフト」や図3に示した「2フレーム型画像位置シフト」の各中心の位置(すなわち画像フレーム(200)の位置)にすべての画像がシフトするように、画像位置シフト部(302)におけるシフト方向とシフト量を決定すればよい。また、画像位置シフト部(103)の画像位置シフト処理における各中心ではない固定の位置にすべての画像がシフトするように、画像位置シフト部(302)におけるシフト方向とシフト量を決定してもよい。画像位置シフト部(302)のシフト方向とシフト量は制御部(112)により制御される。
折り返し歪低減部(303)は、画像位置シフト部(302)で画像位置シフト処理を行った画像の折り返し歪を低減する折り返し歪低減処理を行い、画像拡大・鮮明化部(111)の出力画像とするものである。なお、折り返し歪低減処理の詳細については後に詳述する。
図7は、図4に示した画像拡大・鮮明化部における画像拡大・鮮明化処理の機能を実現する構成の一例を模式的に示す図である。
図7において、画像拡大・鮮明化部(501)は、2系列のディジタル信号を用いて、1次元方向の折り返し歪をキャンセルすることにより、入力信号のナイキスト周波数を超えた広帯域な出力信号を得ることができるものであり、1次元拡大部(502−#0),(502−#1)、1次元補間フィルタ(503−#0),(503−#1)、ヒルベルト変換器(506)などにより構成されている。
画像拡大・鮮明化部(501)においては、2系列のディジタル信号(すなわち、入力#0および入力#1)は、各1次元拡大部(502−#0),(502−#1)によって1次元方向(水平方向あるいは垂直方向)に拡大されたのち、それぞれの位置シフト量(α0,α1)を用いて、各1次元補間フィルタ(503−#0),(503−#1)によって互いの画像フレームの位置を合わせ、加算器(504)の出力信号と、減算器(505)およびヒルベルト変換器(506)を通したのちに乗算器(507)よって係数Kを乗じた後の画像信号との両者に含まれる折り返し歪の位相が互いに180度(逆位相)の関係になるように変換したのちに、加算器(508)によって両者を加算することにより画像における折り返し歪をキャンセルすることができる。
ここで、図4に示した画像拡大部(301)は、図7における1次元拡大部(502−#1),(502−#2)に相当し、画像位置シフト部(302)は、1次元補間フィルタ(503−#0),(503−#1)に相当する。なお、図4に示した画像拡大部(301)は、前述したように補間フィルタ(401)と等価であり、その中のローパスフィルタ(403)の係数決定に用いるsinc関数をsin(x−t)/(x−t)とおいて、画像位置シフト部(302)とまとめて1次元補間フィルタ(503−#0),(503−#1)とすることにより、1次元拡大部(502−#1),(502−#2)を省略することもできる。また、図4における折り返し歪低減部(303)は、図7における加算器(504)、減算器(505)、ヒルベルト変換器(506)、乗算器(507)、加算器(508)により実現される構成と考えることができ、したがって、図4における画像拡大・鮮明化部(111)と図7における画像拡大・鮮明化部(501)は等価と見なすことができる。
なお、図7に示した画像拡大・鮮明化部(501)の構成では、1次元方向の画像拡大処理と折り返し歪低減処理を行う場合を例示したものであり、水平方向および垂直方向の2次元方向の画像拡大処理と折り返し歪低減処理を行う場合については図8を用いて以下に説明する。
図8は、図4に示した画像拡大・鮮明化部における画像拡大・鮮明化処理の機能を実現する構成の他の一例を模式的に示す図である。
図8においては、図7に示した画像拡大・鮮明化部(501)と同様の構成を有する処理ブロック(501−HA),(501−HB),(501−V)を用い、処理ブロック(501−HA),(501−HB)の出力を処理ブロック(501−V)の入力として直列に接続した構成となっている。そして、処理ブロック(501−HA),(501−HB)からなる水平処理部(601)で水平方向の画像拡大処理と折り返し歪低減処理を行うとともに、処理ブロック(501−V)からなる垂直処理部(602)で垂直方向の画像拡大処理と折り返し歪低減処理を行う。すなわち、画像拡大・鮮明化部(111)をこのように構成することにより、4系統の信号(すなわち、入力#0〜#3)を用いて、2次元の画像拡大処理と折り返し歪低減処理を実現することができる。なお、水平処理部(601)と垂直処理部(602)の処理の順番を互いに入れ替えた構成としても同様の処理を実現することができる。
ここで、図2および図3に示した画像位置シフトと、図7に示した位置シフト量(α0,α1)、図8に示した水平位置シフト量(α0,α1,α2,α3)、および垂直位置シフト量(β0,β1)との関係について説明する。なお、図1に示した第1の画素数(例えば、水平1920画素×垂直1080画素)を持つ画像が、図2に示した「4フレーム型位置シフト」では、回転運動の中心位置(画像フレーム(200)の位置)の2次元座標を基準(0,0)として、2次元座標(−h,−v)→(h,−v)→(h,v)→(−h,v)→(−h,−v)→・・・と位置シフトするものとする(ただし、h=2m,v=2n,かつ、m、nは正の整数とする)。同様に、図3に示した「2フレーム型位置シフト」では、水平往復運動の中心位置(画像フレーム(200)の位置)の2次元座標を基準(0,0)として、2次元座標(−h,0)→(h,0)→(−h,0)→・・・と位置シフトするものとして、以下説明する。
まず、図2に示した「4フレーム型位置シフト」の場合について説明する。この「4フレーム型位置シフト」に対応する場合は、図8に示した2次元の処理ブロックを用いる。前述のように、第1の画素数(例えば、水平1920画素×垂直1080画素)を持つ画像を、第2の画素数(例えば、水平704画素×垂直480画素)に縮小して伝送したのちに、第3の画素数(例えば、水平1408画素×垂直960画素)に拡大して折り返し歪低減処理を行う際には、第1の画素数の画像における(−h,−v)→(h,−v)→(h,v)→(−h,v)→(−h,−v)→・・・の位置シフトは、第3の画素数の画像では、p=1408/1920、q=960/1080として、(−ph,−qv)→(ph,−qv)→(ph,qv)→(−ph,qv)→(−ph,−qv)→・・・の位置シフトに相当する。したがって、水平位置シフト量(α0,α1,α2,α3)=(ph,−ph,−ph,ph)、および垂直位置シフト量(β0,β1)=(qv,−qv)と設定することにより、画像送信装置(101)側の画像位置シフト部(103)における画像位置シフト処理と画像受信装置(109)側の画像位置シフト部(302)による画像位置シフト処理の効果を相殺して打ち消すことができ、画像ブレを止めることができる。
したがって、図8の水平処理部(601)において、係数Kα=−1/tan(π(α0−α1))=−1/tan(2πph)=−1/tan(2πh×1408/1920)=−1/tan(πh×22/15)と設定すれば、水平方向の折り返し歪を低減できる。また、図8の垂直処理部(602)において、係数Kβ=−1/tan(π(β0−β1))=−1/tan(2πqv)=−1/tan(2πv×960/1080)=−1/tan(πv×16/9)と設定すれば、垂直方向の折り返し歪を低減できる。
次に、図3に示した「2フレーム型位置シフト」の場合について説明する。この「2フレーム型位置シフト」に対応する場合は、図7に示した1次元の処理ブロックを水平処理として用い、水平方向の画像拡大処理と折り返し歪低減処理を行う。一方、垂直処理については、図6に示した補間フィルタを用いて垂直方向の画像拡大だけを行い、これらの水平処理と垂直処理を直列接続して、2次元の処理を行う。前述のように、第1の画素数(例えば、水平1920画素×垂直1080画素)を持つ画像を、第2の画素数(例えば、水平704画素×垂直480画素)に縮小して通信ネットワーク(107)を介して伝送したのちに、第3の画素数(例えば、水平1408画素×垂直960画素)に拡大して折り返し歪低減処理を行う際には、第1の画素数の画像における(−h,0)→(h,0)→(−h,0)→・・・の位置シフトは、第3の画素数の画像では、p=1408/1920として、(−ph,0)→(ph,0)→(−ph,0)→・・・の位置シフトに相当する。したがって、水平位置シフト量(α0,α1)=(ph,−ph)と設定すれば、画像送信装置(101)側の画像位置シフト部(103)による画像位置シフト処理と画像受信装置(109)側の画像位置シフト部(302)による画像位置シフト処理の効果を相殺して打ち消すことができ、画像ブレを止めることができる。
したがって、図7の画像拡大・鮮明化部(501)において、係数K=−1/tan(π(α0−α1))=−1/tan(2πph)=−1/tan(2πh×1408/1920)=−1/tan(πh×22/15)と設定すれば、水平方向の折り返し歪を低減できる。
なお、前述の画像縮小処理によって非約数の画素数に縮小した場合にも、画像に含まれる折り返し歪を低減でき、イテレーションを行うことなく、画像を鮮明化することができる。
ここで、前述した図8の構成は、図7の構成に比べて演算量が約3倍になるため、CPU等の計算リソースを圧迫することが考えられる。そこで、図8に示した構成の演算量を削減しつつ等価な動作を実現することができる構成を図9および図10を用いて説明する。
図9および図10は、図4に示した画像拡大・鮮明化部における画像拡大・鮮明化処理の機能を実現する構成の他の一例を模式的に示す図である。
前述した図7の構成においては、ヒルベルト変換が固定係数の奇対称フィルタであることと、係数Kαと係数Kβがそれぞれ一定であることに着目すると、「加算器(504)、減算器(505)、ヒルベルト変換器(506)、乗算器(507)、および加算器(508)」はすべて固定係数からなる線形演算であり、ひとつの「1次元非対称フィルタ」(後述)として表すことができることがわかる。すなわち、図7の構成は、入力#0に対して1次元補間フィルタ(503−#0)を通したのちに「1次元非対称フィルタ」を通した信号と、入力#1に対して1次元補間フィルタ(503−#1)を通したのちに減算器(505)の極性(正負)を反転した「1次元非対称フィルタ」を通した信号とを、最後にまとめて加算するように構成しても、同一の出力が得られることになる。
そこで、図9においては、図8の水平処理部(601)における「1次元非対称フィルタ」と、垂直処理部(602)における「1次元拡大部および1次元補間フィルタ」の順番を入れ替え、水平・垂直の各1次元拡大部をまとめて2次元拡大部(702)とし、水平・垂直の各1次元補間フィルタをまとめて2次元補間フィルタ(703)とし、水平・垂直の各1次元非対称フィルタをまとめて2次元非対称フィルタ(704)として、2次元処理部(701)を構成する。
この2次元処理部(701)においては、入力#0〜#3に対応する水平位置シフト量(α0,α1,α2,α3)および垂直位置シフト量(β0,β1)に合わせて、2次元補間フィルタ(703)と2次元非対称フィルタ(704)の各係数を設定し、各2次元処理部(701−#0〜#3)とする。
続いて、各2次元処理部(701−#0〜#3)を通った各信号を、各フレームメモリ(705−#0〜#3)を介したのちに加算器(706)で全信号を加算すれば、図8の構成と等価な出力を得ることができる。
このように、図8に示した構成では、入力#0〜#3を用いて、水平処理部(601)と垂直処理部(602)のすべての演算を行わなければ出力は得られなかったが、図9の構成では、入力#0〜#3に対する処理は、各2次元処理部(701−#0〜#3)によって他の入力と独立して演算される。それぞれの入力#0〜#3は、画像フレームごとに、入力#0、入力#1、入力#2、入力#3、入力#0、・・・の順番に入力されるため、入力されない画像フレームについては、演算結果をフレームメモリ(705−#0〜#3)に蓄えておけばよい。さらに、入力されない画像フレームについては各2次元処理部(701−#0〜#3)が必要ないことから、図10に示すように2次元処理部(701)をひとつだけ設置し、水平位置シフト量(α0,α1,α2,α3)および垂直位置シフト量(β0,β1)に合わせて、フレーム番号に応じて内部の係数を変えながら設定するように構成し、切り替え器(707)を用いてフレームメモリ(705−#0〜#3)をフレームごとに選択しながら書き込む構成にしてもよい。
したがって、図10に示したように画像拡大・鮮明化部(111)を構成することにより、図8の構成における演算量に比べ、約1/6(=2(水平・垂直)/3(水平・水平・垂直)×1/4(処理する入力フレーム数の比))の演算量に削減することができる。
同様に、「2フレーム型位置シフト」の場合の画像拡大・鮮明化部(111)の構成も、図7の構成を、図11の構成に等価変換できる。すなわち、図7における1次元拡大部(502−#0),(502−#1)を図11における1次元拡大部(801)にまとめ、図7における1次元補間フィルタ(503−#0),(503−#1)を図11における1次元補間フィルタ(802)にまとめ、図7における「加算器(504)、減算器(505)、ヒルベルト変換器(506)、乗算器(507)、および加算器(508)」を図11における1次元非対称フィルタ(803)にまとめて、水平位置シフト量(α0,α1)に合わせて、フレーム番号に応じて内部の係数を変えながら設定するように構成し、切り替え器(804)を用いてフレームメモリ(805−#0),(805−#1)をフレームごとに選択しながら書き込む構成にして、加算器(806)で両信号を加算すれば、図7の構成と等価な出力を得ることができる。
すなわち、図11のように画像拡大・鮮明化部(111)を構成することにより、図7の構成における演算量に比べ、約1次元補間フィルタひとつ分の演算量を削減することができる。
図12〜図14は、図5および図11の画像拡大・鮮明化部が有する非対称フィルタにおける構成の一例を示すブロック図および動作説明図である。
図12は、図11の画像拡大・鮮明化部が有する1次元非対称フィルタの構成の一例を示すブロック図である。
前述した図7においては、入力#0は、1次元拡大部(502−#0)と1次元補間フィルタ(503−#0)を通ったのちに、「加算器(504)を通った信号」と、「減算器(505)、ヒルベルト変換器(506)、乗算器(507)を通った信号」が、加算器(508)で加算されて出力となる。このとき、入力#1=0(無信号)と置くと、入力#0に対しては、加算器(504)も減算器(505)も係数=1(すなわち、信号は変化なし)となることがわかる。したがって、入力#0に対する1次元非対称フィルタ(704)のフィルタ係数は、図12に示すように、ヒルベルト変換器(506)を通して係数Kを乗じた信号と入力信号とを、加算器(508)で加算した信号を出力とする。
一方、入力#0=0(無信号)と置くと、入力#1に対しては、加算器(504)の係数は1であり、減算器(505)の係数は−1となることがわかる。したがって、入力#1に対する1次元非対称フィルタ(704)のフィルタ係数は、入力#0に対する1次元非対称フィルタ(704)のフィルタ係数の係数と比べて、係数Kの極性(正負)を反転させた値となる。
ヒルベルト変換器(506)は奇対称フィルタであり、t=2m(ただし、mは整数)のときは係数C(t)=0であり、t=2m+1(ただし、mは整数)のときは係数C(t)=2/(πt)である。したがって、図12の構成では、1次元非対称フィルタ(704)のフィルタ係数は、図13に示すように偶対称でも奇対称でもない「非対称」の動作になる。なお、図13に示したフィルタ係数(C(t))は一例であり、例えばヒルベルト変換の係数に一般的な窓関数(ハニング窓など)を乗じて係数C(t)(ただし、t≠0)として、フィルタ端の影響を軽減してもよい。
図14は、図9の画像拡大・鮮明化部が有する2次元非対称フィルタにおける構成の一例を示すブロック図である。
この2次元非対称フィルタ(704)は、前述した1次元非対称フィルタ(803)を直列に接続したものであり、水平処理部(803−H)で水平方向の画素数を変換し、垂直処理部(803−V)で垂直方向の画素数を変換することにより、2次元の画素数変換を実現できる。
このように、非対称フィルタを用いて入力画像フレームごとに独立した信号処理を行うことにより、折り返し歪低減における演算量削減を実現することができる。
次に、被写体に動きを含む画像に対応する処理について説明する。
前述した画像拡大・鮮明化部(111)の構成により、画素ごとの動き探索とイテレーションを不要とすることによって演算量を減らし、高速な処理が可能な画像鮮明化を実現した。この中で、画素ごとの動き探索を不要にするために、図7〜図11の構成に用いた位置シフト量(αn、βn)をフレームごとに固定の値とした。このとき、画像フレーム中の被写体に動きがない場合には問題ないが、被写体に動きがある場合には、フレーム間の演算によって多重像が生じてしまう問題がある。そこで、このような問題を解決するための構成例を以下に説明する。
図15は、図1の画像受信装置における画像拡大・鮮明化部の構成の他の例を示すブロック図である。
図15において、画像拡大部(301)、画像位置シフト部(302)、および折り返し歪低減部(303)からなる処理部(1001)は、図4に示した構成と同一である。この中の画像位置シフト部(302)によってフレーム間の画像ブレが抑えられた信号を不要な折り返し歪を抑えるためのローパスフィルタ(1002)に通し、後述する動き検出部(1003)によって画像の画素ごとの動きの大きさに応じた制御信号(m、ただし0(動きなし)≦m≦1(動きあり))を生成して、加重混合部(1004)を用いて、ローパスフィルタ(1002)を通した信号(p1)と、折り返し歪低減部(303)を通した信号(p0)とを制御信号mに応じて加重混合して、出力信号とする。ここで、加重混合部(1004)は、制御信号mから制御信号(1−m)を生成する減算器(1005)、乗算器(1006)(1007)、および加算器(1008)からなり、画素ごとに「出力=p1×m+p0×(1−m)」の処理を行う。すなわち、制御信号mの値が0に近い領域(静止に近い領域)では折り返し歪低減部(303)を通した信号(p0)が出力され、制御信号mの値が1に近い領域(動きが大きい領域)ではローパスフィルタ(1002)を通した信号(p1)が出力されるように制御される。
図16は、図15の画像拡大・鮮明化部が有する動き検出部における構成の一例を示すブロック図である。
動き検出部(1003)において、前述した「4フレーム位置シフト型」のときには、ローパスフィルタ(1002)から入力された連続する4フレームの画像を、切り替え器(1101)によりフレーム番号(#0、#1、#2、#3、#0、・・・)に従って切り替えながら、フレームメモリ(1102)に格納する。続いて、各フレームメモリ(1102)から読みだした画像を、平均部(1103)を用いて画素ごとに平均し、減算器(1104)と絶対値器(1105)を用いて平均画像と各フレームとの画素ごとの差の絶対値を計算したのちに、最大値器(1106)によってこれらの最大値を画素ごとに求め、正規化器(1107)によって「0≦m≦1」の範囲に収まるようにmの値を正規化したのちに、制御信号mとする。なお、この正規化には、予め定めた固定値を最大値器(1106)の出力信号に減算したり乗算したりする一般的な技術によって実現できるため、詳細な図示および説明は省略する。
このように構成した動き検出部(1003)により、動き検出部(1003)に入力された4フレームの画像(#0、#1、#2、#3)の値がすべて一致する領域(すなわち、画像が静止している領域)では制御信号mの値は0になり、4フレームの画像(#0、#1、#2、#3)の値が一致しない領域(すなわち、4フレームのうち1フレーム以上で画像が動いている領域)では前述した差信号の絶対値の大きさに応じて制御信号mが0<m≦1の値となる。
なお、前述した「2フレーム位置シフト型」のときには、図16に示した動き検出部(1003)の構成のうち、切り替え器(1101)、フレームメモリ(1102)、平均部(1103)、減算器(1104)、および絶対値器(1105)を、4フレーム分から2フレーム分に変更するだけで容易に実現できるため、図示による説明を省略する。
以上述べた構成により、画像中の被写体に動きがある場合でも、画像の動領域では前述した多重像の発生を抑えながら、画像の静止領域で高画質な画像を得ることができる。例えば、この構成を監視カメラに応用すれば、駐車している車両は画像の静止領域になるため、ナンバープレート等を精細な画像で視認できるようになる。
次に、画像送信装置と画像受信装置とのフレーム同期について説明する。
図17〜図19は、図1の画像送信装置および画像受信装置が有する制御部の構成の一例をそれぞれ示すブロック図である。
画像送信装置(101)が有する画像位置シフト部(103)と、画像受信装置(109)が有する画像位置シフト部(302)とは、フレーム単位で互いに正確に同期して動作し、互いに逆方向に位置シフトするように制御する必要がある。この同期に用いるフレーム位相情報の取得には、図17〜図19に示す構成のうちいずれかひとつを用いる。なお、フレーム位相情報とは、例えば、「4フレーム型位置ずらし」の場合にはフレーム番号「#0、#1、#2、#3」のいずれかであり、「2フレーム型位置ずらし」の場合にはフレーム番号「#0、#1」のいずれかとなる。
図17は、画像送信装置のフレーム位相情報生成部および画像受信部のフレーム位相情報取得部を用いて同期を行う場合の構成例を示す図である。
図17においては、画像送信装置(101)の制御部(106)が有するフレーム位相情報生成部(1201)でフレーム位相情報を生成し、多重部(1202)を用いて、符号化部(105)から出力される画像データと多重する。この多重データを、通信ネットワーク(107)を介して画像受信装置(109)に伝送し、分離部(1203)でこれらを分離したのちに、画像データは復号化部(110)へ、フレーム位相情報は制御部(112)へそれぞれ入力する。これにより、制御部(112)のフレーム位相情報取得部(1204)では、画像送信装置(101)のフレーム位相情報生成部(1201)で生成したフレーム位相情報と同一の情報を得ることができる。なお、フレーム位相情報生成部(1201)、多重部(1202)、分離部(1203)、およびフレーム位相情報取得部(1204)は、一般的な技術で実現できるため、詳細な図示は省略する。
図18は、画像受信部のフレーム位相情報生成部および画像送信装置のフレーム位相情報取得部を用いて同期を行う場合の構成例を示す図である。
図18においては、画像受信装置(109)の制御部(112)が有するフレーム位相情報生成部(1206)でフレーム位相情報を生成し、通信ネットワーク(107)を介して画像送信装置(101)に伝送する。これにより、画像送信装置(101)の制御部(106)が有するフレーム位相情報取得部(1205)では、画像受信装置(109)のフレーム位相情報生成部(1206)で生成したフレーム位相情報と同一の情報を得ることができる。なお、フレーム位相情報生成部(1206)およびフレーム位相情報取得部(1205)は、一般的な技術で実現できるため、詳細な図示は省略する。
図19は、画像受信部のフレーム位相情報推定部を用いて同期を行う場合の構成例を示す図である。
図19においては、画像送信装置(101)の制御部(106)が有するフレーム位相情報生成部(1201)でフレーム位相情報を生成するが、この情報を画像受信装置(109)には伝送しない。画像受信装置(109)では、画像送信装置(101)から伝送された符号化画像データを復号化部(110)で復号化し、この復号画像をもとにして、制御部(112)が有するフレーム位相情報推定部(1207)でフレーム位相情報推定処理を行うことによりフレーム位相情報を得る。
図20は、図19に示したフレーム位相情報推定部のフレーム位相情報推定処理の動作の一例を示す説明図である。
図20において、画像(1301)は、図2において左上方向に位置シフトした画像フレーム(201)を図1に示した画像送信装置(101)が有する画像縮小部(104)によって縮小したD1サイズの画像(水平704画素×垂直480画素)であり、説明のための一例として挙げている。図20では、画像(1301)上の2次元座標を(x,y)(ただし、xは水平座標、yは垂直座標)として、y=0の位置にある画素値の系列の一例、y=1の位置にある画素値の系列の一例、y=2の位置にある画素値の系列の一例をそれぞれ示している。
画像フレーム(201)は左上方向に位置シフトしており、前述したように画像の右端と下端には黒(画素値=0)が挿入されている。したがって、縮小後の画像(1301)においては、もともと画像が存在する左端では、x=0の位置の画素値P(0,y)と、x=1の位置の画素値P(1,y)の大小関係は絵柄に応じてランダムに変化する。一方,もともと画像が存在しない右端では、黒挿入されたために、x=704の位置の画素値P(704,y)よりもx=703の位置の画素値P(703,y)のほうが大きくなる。この性質を利用し、画像が左右のどちらに位置シフトしているか推定するフレーム位相情報推定処理を行う。
図21は、フレーム位相情報推定部におけるフレーム位相推定処理を示すフローチャートである。
図21において、フレーム位相情報推定部(1207)は、フレーム位相情報推定処理が開始されると、まず、左端用カウンタと右端用カウンタの各データ(L,R)をメモリ上に用意し、各値を0に初期化するとともに、垂直座標を示すデータ(y)をメモリ上に用意し、y=0に初期化する(ステップS1401)。続いて、画像の左端の2画素の値(P(0,y)およびP(1,y))と右端の2画素の値(P(703,y)およびP(704,y))の各大小関係に応じて、各カウンタ値(L,R)を更新する(ステップS1402)。すなわち、ステップS1402では、もし「P(0,y)≧P(1,y)」ならば左端用カウンタの値(L)を1増やすとともに、もし「P(704,y)≧P(703,y)」ならば右端用カウンタの値(R)を1増やす。続いて、処理対象の垂直座標の値が画像の下端に達したか否か、すなわち、y=479になったかどうかを判定し(ステップS1403)、判定結果がNOの場合には、データ(y)の値をひとつ増やしてy←y+1とし(ステップS1404)、ステップS1403の判定結果がYESになるまでステップS1404,S1402の処理を繰り返す。また、ステップS1403での判定結果がYESの場合には、各カウンタ値(L,R)の値に応じて画像シフト方向を推定する(ステップS1405)。すなわち、ステップS1405では、もし「左端用カウンタの値(L)≧右端用カウンタの値(R)」ならば、画像は左方向にシフトされていると推定し、そうでなければ、画像は右方向にシフトされていると推定する。ステップS1405が終了したら処理を終了する。
以上の処理により、画像が左右のどちらに位置シフトしているかを推定することができる。なお、図21においては、説明の簡単のために左右方向のフレーム位相情報推定処理のみを例示しているが、上下方向についても同様の処理を行うことによりフレーム位相情報推定を行うことが可能である。すなわち、図21に示した各データ値および数値更新の方向を画像に対して90度回転させた手順を用いれば、画像が上下のどちらに位置シフトしているかも同様に推定できる。また、画像の端の画素値の大小関係の比較ではなく、画素値の分散を比較しても同様の推定を行うことができることは明らかであり、さらに大小関係と分散の両方を用いて同様の推定を行ってもよい。
ここで、画像位置シフト部(103)における画像位置シフト処理についてさらに考察する。すなわち、画像送信装置(101)のカメラ(102)で撮像される画像の種類によっては、画像位置シフト処理の内容を考慮する必要がある。例えば、カメラ(102)が画像ベイヤ配列カラーフィルタを配置した単板撮像素子の画像データを備える場合には、画像位置シフト部(103)の画像位置シフト処理の動作に制約を加える必要がある。
図22は、ベイヤ配列カラーフィルタにおける画素の配置の様子を示す図である。
図22に示すように、ベイヤ配列カラーフィルタ(1501)は、R:赤、G:緑、B:青の各カラーフィルタが、水平方向、垂直方向ともに2画素間隔を1周期として、規則正しく配置されている。つまり、ベイヤ配列カラーフィルタ(1501)を透過した光が単板撮像素子によって光電変換された画像信号(以下、ベイヤ画像信号と称する)を画像位置シフト部(103)に入力する場合には、水平方向、垂直方向のいずれか一方あるいは両方を奇数画素単位で位置シフトしてしまうと、R:赤、G:緑、B:青の位置関係が変化してしまい、位置シフト後の画像の色が変化してしまうこととなる。
したがって、ベイヤ画像信号を画像位置シフト部(103)に入力する場合には、水平方向、垂直方向ともに2画素単位(偶数画素単位)で位置シフトすることにより、R:赤、G:緑、B:青の位置関係が位置シフト前と変わらないような画像位置シフト処理を行う。また、このように2画素単位(偶数画素単位)で位置シフトしたのちに、ベイヤ画像信号から変換したカラー信号(RGBやYUVなど)や、ベイヤ画像信号から変換した輝度信号Yだけに対して、本実施の形態に示した各信号処理をそのまま適用することができる。
図23は、画像蓄積装置の一構成例を模式的に示す機能ブロック図である。
図23において、画像蓄積装置(108)は、符号化された画像データを蓄積(録画)したり再生したりするための装置であり、通信インタフェース(1601)、制御部(1602)、メモリ(1603)、ストレージ(1604)、出力インタフェース(1605)、入力インタフェース(1606)などの処理ブロック及び各処理ブロック接続するバス(1607)から概略構成されている。
画像蓄積装置(108)は、アプリケーションプログラムをストレージ(1604)に格納しており、制御部(1602)がストレージ(1604)から上記プログラムをメモリ(1603)に展開し、制御部(1602)が上記プログラムを実行することで、録画、再生、検索等の各種機能を実現することができる。なお、以後の説明では簡単のために、制御部(1602)が各アプリケーションプログラムを実行して実現する各種機能を、メモリ(1603)に展開された「各種プログラム機能部」が主体となって実現するものとして説明するが、同様の機能を持つ処理部としてハードウェアを用い、各処理部が主体となって各機能を実現することも可能である。
アプリケーションプログラムは、画像蓄積装置(108)が出荷時点で予めストレージ(1604)に格納されていても良いし、CD(Compact Disc)・DVD(Digital Versatile Disc)などの光学メディアや半導体メモリ等の媒体に格納されて、図示しない媒体接続部を介して画像蓄積装置(108)にインストールされても良い。また、通信インタフェース(1601)を介して通信ネットワーク(107)からダウンロードしてインストールすることも可能である。
通信インタフェース(1601)は、通信ネットワーク(107)に接続され、通信ネットワーク(107)を経由して、図1に示した画像送信装置(101)からの画像データを受信したり、画像受信装置(109)に画像データを送信したりする機能も有している。制御部(1602)は、通信インタフェース(1601)、メモリ(1603)(各種プログラム機能部)、ストレージ(1604)、入出力インタフェース(1605,1606)を制御する。また、制御部(1602)は、後述する処理手順にしたがって、各種信号処理を実行する機能も有している。メモリ(1603)は、制御部(1602)の制御により、ストレージ(1604)に格納しているアプリケーションプログラムの機能部が展開される。ストレージ(1604)は、画像送信装置(101)からの画像データを蓄積するとともに、アプリケーションプログラムや、アプリケーションプログラムで作成した各種情報を保存するものである。出力インタフェース(1605)は、制御部で信号処理した結果の画像を、バス(1607)を介して外部機器に出力する機能を有する。出力された画像は、外部の表示部(1608)で表示される。入力インタフェース(1606)は、操作部(1609)からの信号を受け、バス(1607)を介して制御部(1602)に伝える機能を有している。
このように構成した画像蓄積装置(108)は、録画時には以下のような動作シーケンスに従う。すなわち、画像蓄積装置(108)は、録画時には、ストレージ(1604)に格納されている図示しない録画用アプリケーションプログラムをメモリ(1603)に読み込み、この録画用アプリケーションプログラムに記載された手順に従って制御部(1602)が各部を制御する。まず、通信インタフェース(1601)と通信ネットワーク(107)を経由して、図1に示した画像送信装置(101)との接続を確立する。その後、通信インタフェース(1601)と通信ネットワーク(107)を経由して、画像送信装置(101)から伝送される符号化画像データを受信し、バス(1607)を介して、ストレージ(1604)に符号化画像データを蓄積する。このとき、受信した符号化画像データを制御部(1602)で復号化し、出力インタフェース(1605)を介して画像を出力して、表示部(1608)で表示してもよい。続いて、画像蓄積装置(108)における再生時の動作シーケンスについて説明する。
また、画像蓄積装置(108)は、再生時には以下のような動作シーケンスに従う。すなわち、画像蓄積装置(108)は、再生時には、ストレージ(1604)に格納されている図示しない再生用アプリケーションプログラムをメモリ(1603)に読み込み、この再生用アプリケーションプログラムに記載された手順に従って制御部(1602)が各部を制御する。その後、ストレージ(1604)に蓄積された符号化画像データを、バス(1607)を介して読み出し、通信インタフェース(1601)と通信ネットワーク(107)を経由して、画像受信装置(109)に送信する。
なお、送信時に、送信する符号化画像データを制御部(1602)で復号化し、出力インタフェース(1605)を介して表示部(1608)に画像を出力し、表示してもよい。また、画像蓄積装置(108)だけの単体で、ストレージ(1604)に蓄積された符号化画像データを読み出して、制御部(1602)で復号化し、出力インタフェース(1605)を介して表示部(1608)に画像を出力し、表示してもよい。ただし、前述したように、画像送信装置(101)が有する画像位置シフト部(103)によって画像位置をシフト処理した画像をそのまま表示部(1608)に表示すると、画像が周期的にブレることになる。そこで、メモリ(1603)に展開された各種プログラム機能部に、フレーム位相情報推定部(1207)と同様の機能を有するフレーム位相情報推定機能(1610)、および画像位置シフト部(302)と同様の機能を有する画像位置シフト機能(1611)を備え、画像位置シフト処理の効果を相殺して打ち消す処理を行うことにより、画像ブレをキャンセルする。すなわち、画像位置シフト機能(1611)は、図4の画像位置シフト部(302)の動作における第3の画素数を、ストレージ(1604)に蓄積された符号化画像データの画素数(第2の画素数)に読み替えることにより、画像位置シフト部(302)の動作をそのまま用いて実現することができる。
また、画像位置シフト機能(1611)は、非対称の係数を持つ線形フィルタによる畳み込み処理を用いることによって実現することができる。
図24は、図23の画像位置シフト機能において用いるフィルタ係数の一例を説明する図である。
図24において、係数(a)〜(d)は、復号化した画像に畳み込むフィルタ係数を示したものである。各係数(a)〜(d)において、カッコ内の記号あるいは数値(すなわち、0,α,1−α,β,1−βなど)は、各係数の値を表しており、カッコの右肩の記号「T」は転置を表している。また、記号「*」は畳み込み演算を表している。すなわち、図24の係数(a)〜(d)は、水平3タップ×垂直3タップの2次元フィルタの係数を表している。
ここで、α>0、β>0とすると、係数(a)で表される2次元フィルタの重心は、右下方向にずれることになり、このフィルタ係数を畳み込んだ画像は右下方向に位置がシフトする。同様に、係数(b)を畳み込んだ画像は左下方向に位置がシフトし、係数(c)を畳み込んだ画像は右上方向に位置がシフトし、係数(d)を畳み込んだ画像は左上方向に位置がシフトする。
例えば、図1における第1の画素数(例えば、水平1920画素×垂直1080画素)を持つ画像が、図2における「4フレーム型位置シフト」において、回転運動の中心位置の2次元座標を基準(0,0)として、2次元座標(−h,−v)→(h,−v)→(h,v)→(−h,v)→(−h,−v)→・・・と位置シフトした場合には、ストレージ(1604)に蓄積された符号化画像データの画素数(第2の画素数)の画像では、p=704/1920、q=480/1080として、(−ph,−qv)→(ph,−qv)→(ph,qv)→(−ph,qv)→(−ph,−qv)→・・・と位置シフトすることに相当する。
したがって、フィルタ係数において、α=ph、β=qvとして決定しておき、係数(a)→(b)→(d)→(c)→(a)→・・・の順番でフレームごとに切り替えながら蓄積された画像に畳み込めば、画像のブレを抑えることができる。以上のように構成することにより、画像蓄積装置(108)に蓄積された画像を表示部(1608)で再生する際に、画像ブレを抑えることができる。
なお、前述した「水平3タップ×垂直3タップの2次元フィルタ」は動作の説明のための一例であり、本発明はこれに限定されるわけではなく、これとは異なるタップ数を持つ2次元フィルタを用いてよいことは明らかである。また、このようにしてブレを抑えた画像を、通信インタフェース(1601)および通信ネットワーク(107)を介して、外部に送信してもよいことは明らかである。
以上のように構成した本実施の形態の効果を説明する。
従来技術に例示した超解像処理は、画像に含まれる高周波成分を増幅するだけのエッジ強調処理などに比べて、処理に必要な演算量が極めて多い。例えば、非特許文献1に記載されているような、複数フレームの入力画像を用いて、逐次近似処理によって出力画像を得る超解像技術では、画素ごとのサブピクセル単位の高精度な動き探索を伴うフレーム間位置合わせ(レジストレーション)、画像の拡大、拡大画像の縮小、縮小画像と入力画像との差分検出、および出力画像の補正処理を、何度も反復処理(イテレーション)する必要がある。つまり、従来技術においては、画素ごとの動き探索やイテレーションは演算量が極めて多いため、CPU等やメモリ等の計算リソースの処理限界を超えてしまって、画像の動きがぎくしゃくするコマ落ちが発生したり、処理全体が止まってしまったり、マウスやキーボード等によるユーザ入力を受け付けず無応答の状態になったりすることが考えられる。
これに対して本実施の形態においては、時間的に連続する複数の画像のそれぞれに対して、予め定めた複数のシフト位置の何れかに画像の位置をシフトする画像位置シフト部(103)(第1画像位置シフト部)と、画像位置シフト部(103)で位置シフトされた画像の画素数を削減して縮小する画像縮小部(104)と、画像縮小部(104)で縮小された画像を符号化して符号化画像を生成する符号化部(105)と、通信ネットワーク(107)を介して送られた符号化画像を復号化して復号画像を生成する復号化部(110)と、復号化部(110)で復号化された復号化画像の画素数を増加させて拡大する画像拡大部(301)と、画像拡大部(301)で拡大された画像に対して、画像位置シフト部(103)で行われた位置シフトを相殺して打ち消すように位置シフトする画像位置シフト部(302)(第2画像位置シフト部)と、画像位置シフト部(302)で位置シフトされた画像の折り返し歪を、画像位置シフト部(302)で位置シフトされた他の画像の情報を用いて低減する折り返し歪低減処理を行う折り返し歪低減部(303)とを備えるように構成したので、画像処理に係る演算量の増加および画質の低下を抑制しつつ符号化データサイズを削減することができる。すなわち、画像を構成する画素ごとの動き探索とイテレーションを不要とすることによって演算量を減らすことができ、比較的非力な計算リソースを用いても高速な処理が可能な画像鮮明化、および伝送データサイズの少ない画像伝送を実現できる。
<第2の実施の形態>
本発明の第2の実施の形態を図25および図26を参照しつつ説明する。
本実施の形態は、第1の実施の形態の画像送信装置において、画像位置シフト処理の有無を切り替える機能を有するように構成し、画像位置シフト処理を相殺して打ち消すような画像位置シフト処理を行う手段(すなわち、逆方向に位置シフトする手段)を有しない画像受信装置や画像蓄積装置を介して表示した場合においても周期的にブレない画像を提供できるようにしたものである。
図25は、本実施の形態に係る画像送信装置の一構成例を概略的に示す機能ブロック図である。図中、第1の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
図25において、画像送信装置(1802)は、画像(静止画、動画)を撮像するカメラ(102)と、カメラ(102)で撮像した画像に画像位置シフト処理を行う画像位置シフト部(103)と、カメラ(102)からの画像信号を画像縮小部(104)に入力するか、カメラ(102)からの画像信号を画像位置シフト部(103)を通したのちに画像縮小部(104)に入力するか、を切り替える切り替え器(1803)と、切り換え器(1803)を介して入力された画像に画像縮小処理を行う画像縮小部(104)と、画像縮小処理を行った画像に符号化処理を行う符号化部(105)と、通信ネットワーク(107)を介して画像受信装置(109)や画像蓄積装置(108)から送信されるコマンドやデータに基づいて、カメラ(102)、画像位置シフト部(103)、切り換え器(1803)、画像縮小部(104)、及び符号化部(105)を含む画像送信装置(1802)全体の動作を制御する制御部(106)とを有している。
図26は、画像受信装置や画像蓄積装置が有する制御部が生成して表示部に表示するメニュー表示画面の一例を示す図である。
図26において、画像受信装置(109)や画像蓄積装置(108)が有する制御部(112,1602)が生成して表示部(113,1608)に表示するメニュー表示画面(1901)は、画像送信装置(1802)の画像位置シフト処理に関する動作を選択するためのメニュー表示であることを示すメッセージ部(1902)と、画像位置シフト処理を行わない旨を示すメッセージ部(1903)と、画像位置シフト処理を行わないことを選択するための選択部(1905)と、画像位置シフト処理を行う旨を示すメッセージ部(1904)と、画像位置シフト処理を行うことを選択するための選択部(1906)とを有している。なお、図26においては、画像受信装置(109)又は画像蓄積装置(108)のユーザが、画像位置シフトを行うことを選択した場合を例示している。なお、画像位置シフト処理を行わない旨を示すメッセージ部(1903)には、解像度向上が期待できない旨を示すメッセージを含んでもよい。また、画像位置シフト処理を行う旨を示すメッセージ部(1904)には、解像度向上が期待できる旨を示すメッセージを含んでもよい。
画像送信装置(1802)は、通信ネットワーク(107)を介して、画像位置シフト部(302)を有する画像受信装置(109)又は画像蓄積装置(108)と接続した場合には、ユーザがメニュー表示画面(1901)の選択部(1906)を選択することにより、切り替え器(1803)を図中の下側に切り替えて、画像位置シフト部(103)を通した画像を画像縮小部(104)で縮小し、符号化部(105)で符号化して、通信ネットワーク(107)を介して画像受信装置(109)や画像蓄積装置(108)に送信する。これにより、画像受信装置(109)では、折り返し歪を低減した高画質の画像を出力できる。
一方、この画像送信装置(1802)は、通信ネットワーク(107)を介して、画像位置シフト部(302)を有しない画像受信装置又は画像蓄積装置と接続した場合には、ユーザがメニュー表示画面(1901)の選択部(1905)を選択することにより、切り替え器(1803)を図中の上側に切り替えて、画像位置シフト部(103)を通さずに画像縮小部(104)で縮小し、符号化部(105)で符号化して、通信ネットワーク(107)を介して画像受信装置(109)や画像蓄積装置(108)に送信する。これにより、画像受信装置でも、ブレを含まない画像を出力できるようになる。
なお、切り替え器(1803)は、メニュー表示画面(1901)の設定に応じて制御部(1804)から送られる制御信号にしたがって制御されるが、このとき、通信ネットワーク(107)を介して、画像受信装置(109)又は画像蓄積装置(108)から自動的に送信されたコマンドに応じて制御できるようにしてもよい。すなわち、画像位置シフト部(302)を有する画像受信装置(109)又は画像蓄積装置(108)は画像位置シフト処理を行う旨を示すコマンドを送出するように予め設定し、このコマンドが制御部(1804)で受信されないときには、画像位置シフト部(302)を有しない画像受信装置が接続されていると判定して、切り替え器(1803)を図中の上側に切り替えるようにしてもよい。
その他の構成は第1の実施の形態と同様である。
以上のように構成した本実施の形態においても、第1の実施の形態と同様の効果を得ることができる。
また、画像位置シフト部(103)によって画像位置シフト処理を行った画像においては、画像位置シフト処理を相殺して打ち消すような画像位置シフト処理を行う手段(すなわち、逆方向に位置シフトする手段)を有しない画像受信装置では表示した画像が周期的にブレることになるが、画像位置シフト処理の有無を切り換える構成を備えたことにより、画像位置シフト部を備える本実施の形態の画像受信装置等と、画像位置シフト部を備えない他の画像受信装置等の何れに接続した場合においても、それぞれに好適な画像を表示することができる。
<第3の実施の形態>
本発明の第3の実施の形態を図27〜図29を参照しつつ説明する。
本実施の形態は、画像位置シフト処理を相殺して打ち消すような画像位置シフト処理を行う手段(すなわち、逆方向に位置シフトする手段)を有しない画像受信装置を介して表示した場合においても周期的にブレない画像を提供できるようにした他の実施の形態を示すものである。
図27は、本実施の形態に係る画像送信装置の一構成例を概略的に示す機能ブロック図である。また、図28は、本実施の形態に係る画像受信装置の一構成例を概略的に示す機能ブロック図である。図中、第1の実施の形態と同様の部材には同じ符号を付し、説明を省略する。
図27において、画像送信装置(2001)は、画像(静止画、動画)を撮像するカメラ(102)と、カメラ(102)で撮像した画像に画像位置シフト処理を行う画像位置シフト部(103)と、画像位置シフト処理を行った画像に画像縮小処理を行う画像縮小部(104)と、画像縮小処理を行った画像に画像位置シフト部(103)で行われた位置シフトを相殺して打ち消すように位置シフトする画像位置シフト部(2002)と、画像位置シフト部(2002)で画像位置シフト処理を行った画像に符号化処理を行う符号化部(105)と、通信ネットワーク(107)を介して受信されるコマンドやデータに基づいて、カメラ(102)、画像位置シフト部(103)、画像縮小部(104)、画像位置シフト部(2002)及び符号化部(105)を含む画像送信装置(2001)全体の動作を制御する制御部(2003)とを有している。
画像位置シフト部(2002)は、制御部(2003)からの制御によって、画像位置シフト部(103)によって生じた画像ブレと逆方向に画像をシフトするためのものであり、画像蓄積装置(108)が有する画像位置シフト機能(1611)と同様に動作する。すなわち、図4の画像位置シフト部(302)の動作における第3の画素数を、伝送する画像データの画素数(第2の画素数)に読み替えることにより、画像位置シフト部(302)の動作をそのまま用いることができる。なお、前述した非対称フィルタを画像位置シフト部(2002)として用いることもできる。
図28において、画像受信装置(2004)は、通信ネットワーク(107)を介して画像送信装置(2001)から送られてきた画像に復号化処理を行う復号化部(110)と、復号化処理を行った画像に画像位置シフト部103と同様の画像位置シフト処理を行う画像位置シフト部(2005)と、画像位置シフト部(2005)で画像位置シフト処理を行った画像に画像拡大・鮮明化処理を行う画像拡大・鮮明化部(111)と、画像受信装置(2004)全体の動作を制御する制御部(2006)とを有している。
画像位置シフト部(2005)は、制御部(2006)からの制御によって動作し、画像送信装置(2001)の画像位置シフト部(2002)で行われた位置シフトを相殺して打ち消すように位置シフトするものである。
図29は、図28の画像位置シフト部において用いるフィルタ係数の一例を説明する図である。
図29において、係数(a)〜(d)は、復号化した画像に畳み込むフィルタ係数を示したものである。各係数(a)〜(d)において、カッコ内の記号あるいは数値(すなわち、0,α,1−α,β,1−βなど)は、各係数の値を表しており、カッコの右肩の「−1」は逆特性を表し、カッコの右肩の記号「T」は転置を表している。また、記号「*」は畳み込み演算を表している。すなわち、図29の係数(a)〜(d)は、図24に示した2次元フィルタの逆フィルタの係数を表している。なお、逆フィルタの各係数は、一般的な技術によって求めることができるため、具体的な説明を省略する。
その他の構成は第1の実施の形態と同様である。
以上のように構成した本実施の形態においても、第1の実施の形態と同様の効果をえることができる。
また、画像送信装置(2001)と画像受信装置(2004)とを組み合わせて用いた場合には、第1の実施の形態と同様の動作によって、画像受信装置(2004)では鮮明な画像を出力できるとともに、画像送信装置(2001)を画像位置シフト部を備えない画像受信装置や画像蓄積装置と接続した場合においても表示時に生じる画像のブレを抑制することができる。
<第4の実施の形態>
本発明の第4の実施の形態を図30を参照しつつ説明する。
本実施の形態は、第1の実施の形態における画像蓄積装置(108)を画像受信装置(1612)として用いるものである。
本実施の形態における画像処理システムでは、画像送信装置として画像送信装置(101)を用い、画像蓄積装置(108)のストレージ(1604)に格納されている図示しない画像受信用アプリケーションプログラムに記載された処理(後の図30により詳述)に従って制御部(1602)が各部を制御することにより、画像蓄積装置(108)を画像受信装置(1612)としても用いる(図23参照)。
図30は、本実施の形態に係る画像受信装置における処理の一例を示すフローチャートである。
図30において、画像受信装置(1612)は、まず、通信ネットワーク(107)を経由して符号化された画像データを取得し(ステップS2201)、制御部(1602)で画像データを復号して、メモリ(1603)に格納する(ステップS2202)。続いて、フレーム位相情報を取得する(ステップS2205)。また、ステップS2205と並行して、画像を拡大し(ステップS2203)、画像の位置シフトを行う(ステップS2204)。これらの処理は、図4に示した画像拡大部(301)および画像位置シフト部(302)の処理内容にそれぞれ対応する。
続いて、折り返し歪低減処理を行う(ステップS2206)。ステップS2206においては、2次元処理を行い(ステップS2207)、所定のフレームメモリ(図23におけるメモリ(1603))に画像を格納し(ステップS2208)、全フレームメモリの値を同一画素位置ごとに加算する(ステップS2209)。なお、これらの処理は、図9及び図10に示した構成における処理内容に対応する。ステップS2206と並行して、不要な折り返し歪を抑えるためのローパスフィルタ処理を行う(ステップS2210)。続いて、動き検出処理を行い、制御信号mを得る(ステップS2211)。なお、この処理は、図16に示した構成における処理内容に対応する。
続いて、ステップS2206で得た折り返し歪低減後の画像と、ステップS2210で得たローパスフィルタ後の画像と、ステップS2211で得た制御信号mとを用いて加重混合を行い、出力画像を得る(ステップS2212)。この処理は、図15に示した加重混合部(1004)の動作に対応する。ステップS2212)で得た出力画像信号を出力インタフェース(1605)を介して出力し(ステップS2213)、処理を終了する。
なお、上記のステップS2201〜S2213で示した処理は、画像送信装置(101)から画像受信装置(1612)に画像データが伝送されるたびに実行されるように制御部(1602)で制御すればよい。あるいは、ステップS2201〜S2213で示した処理が完了するたびに、画像受信装置(109)から画像送信装置(101)に対して、画像データの送信を指示するコマンドを送信してもよい。また、図23のメモリ(1603)に展開された各種プログラム機能部に、さらに別の図示しない画像位置シフト機能を備えることにより、図28で説明した画像位置シフト部(2005)の動作(すなわち、図29に示した動作)を実現できることは明らかであり、画像受信装置(1612)の構成を用いて、図28に示した構成と同様の動作を実現できることは明らかである。
その他の構成は第1の実施の形態と同様である。
以上のように構成した本実施の形態においても第1の実施の形態と同様の効果を得ることができる。
なお、本発明は上記した各実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の各構成、機能等は、それらの一部又は全部を、例えば集積回路で設計する等により実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
すなわち、本発明の各実施の形態の機能はソフトウェアのプログラムコードによって実現することができる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したハードウェアは、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等で実装してもよく、記述したソフトウェアは、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装してもよい。
さらに、前述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び/又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。