(57)【特許請求の範囲】
【請求項１】
２つの画像上に複数の変動点を各々対応させて配置し、一方の画像上に配置した変動点の座標位置を移動させることにより、該移動させた変動点を含む複数の変動点によってその境界が示される前記一方の画像上のブロック領域の形状を変形させ、該変形させたブロック領域をその元の形状に投影させた際の状態を求めることで補償し、該補償したブロック領域と他方の画像の対応するブロック領域とを比較してこれらの間の画像情報の誤差を求め、該求めた誤差が最小となる座標位置を各変動点毎に検出していくワープタイプ動き補償予測に適用される検出方法であって、
前記２つの画像上に、前記ブロック領域の変形前の形状に応じて比較領域をそれぞれ対応させて、前記変動点、及びその周辺を内部に有する位置に、該変動点の移動によって形状が変形する領域の広さより狭めて作成し、
前記一方の画像上の変動点を移動させたとき、該変動点の移動によって形状が変形した比較領域をその元の形状に投影させた際の状態を求めることで補償を行った後、該補償した比較領域と前記他方の画像上の対応する比較領域とを比較してこれらの間の画像情報の誤差を求め、
該求めた比較領域間の誤差が最小となる座標位置を、前記移動させた変動点の座標位置として検出する、
ことを特徴とするワープタイプ動き検出方法。
【請求項２】
２つの画像上に複数の変動点を各々対応させて配置し、一方の画像上に配置した変動点の座標位置を移動させることにより、該移動させた変動点を含む複数の変動点によってその境界が示される前記一方の画像上のブロック領域の形状を変形させ、該変形させたブロック領域をその元の形状に投影させた際の状態を求めることで補償し、該補償したブロック領域と他方の画像の対応するブロック領域とを比較してこれらの間の画像情報の誤差を求め、該求めた誤差が最小となる座標位置を各変動点毎に検出していくワープタイプ動き補償予測に適用される検出方法であって、
前記２つの画像上に、前記ブロック領域の変形前の形状に応じて比較領域をそれぞれ対応させて、該２つの画像の何れかの画像上において検出したエッジを内部に有する位置に、該エッジの近傍に位置する変動点の移動によって形状が変形する領域の広さより狭めて作成し、
前記一方の画像上の変動点を移動させたとき、該変動点の移動によって形状が変形した比較領域をその元の形状に投影させた際の状態を求めることで補償を行った後、該補償した比較領域と前記他方の画像上の対応する比較領域とを比較してこれらの間の画像情報の誤差を求め、
該求めた比較領域間の誤差が最小となる座標位置を、前記移動させた変動点の座標位置として検出する、
ことを特徴とするワープタイプ動き検出方法。
【請求項３】
２つの画像上に複数の変動点を各々対応させて配置し、一方の画像上に配置した変動点の座標位置を移動させることにより、該移動させた変動点を含む複数の変動点によってその境界が示される前記一方の画像上のブロック領域の形状を変形させ、該変形させたブロック領域をその元の形状に投影させた際の状態を求めることで補償し、該補償したブロック領域と他方の画像の対応するブロック領域とを比較してこれらの間の画像情報の誤差を求め、該求めた誤差が最小となる座標位置を各変動点毎に検出していくワープタイプ動き補償予測に適用される装置であって、
前記２つの画像上に、前記ブロック領域の変形前の形状に応じて比較領域をそれぞれ対応させて、作成する比較領域作成手段と、
前記一方の画像上の変動点を移動させたとき、該変動点の移動によって形状が変形した比較領域をその元の形状に投影させた際の状態を求めることで補償を行った後、該補償した比較領域と前記他方の画像上の対応する比較領域とを比較してこれらの間の画像情報の誤差を算出する誤差算出手段と、
前記変動点を移動させる度に前記誤差算出手段が算出した比較領域間の誤差が最小となる座標位置を、前記移動させた変動点の座標位置に設定する座標位置設定手段と、
を具備し、
前記比較領域作成手段は、前記変動点、及びその周辺を内部に有する位置に、該変動点の移動によって形状が変形する領域の広さより狭めて作成する
ことを特徴とするワープタイプ動き検出装置。
【請求項４】
２つの画像上に複数の変動点を各々対応させて配置し、一方の画像上に配置した変動点の座標位置を移動させることにより、該移動させた変動点を含む複数の変動点によってその境界が示される前記一方の画像上のブロック領域の形状を変形させ、該変形させたブロック領域をその元の形状に投影させた際の状態を求めることで補償し、該補償したブロック領域と他方の画像の対応するブロック領域とを比較してこれらの間の画像情報の誤差を求め、該求めた誤差が最小となる座標位置を各変動点毎に検出していくワープタイプ動き補償予測に適用される装置であって、
前記２つの画像上に、前記ブロック領域の変形前の形状に応じて比較領域をそれぞれ対応させて作成する比較領域作成手段と、
前記一方の画像上の変動点を移動させたとき、該変動点の移動によって形状が変形した比較領域をその元の形状に投影させた際の状態を求めることで補償を行った後、該補償した比較領域と前記他方の画像上の対応する比較領域とを比較してこれらの間の画像情報の誤差を算出する誤差算出手段と、
前記変動点を移動させる度に前記誤差算出手段が算出した比較領域間の誤差が最小となる座標位置を、前記移動させた変動点の座標位置に設定する座標位置設定手段と、
を具備し、
前記比較領域作成手段は、前記２つの画像の何れか一方のエッジを検出し、該検出したエッジを内部に有する位置に、該エッジの近傍に位置する変動点の移動によって形状が変形する領域の広さより狭めて前記比較領域を作成する
ことを特徴とするワープタイプ動き検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ワープタイプ動き補償予測において、２つの画像間の誤差を最小にする変動点の変位量（座標位置）を検出するための技術に関する。
【０００２】
【従来の技術】
近年、フレーム間の相関を利用した符号化（フレーム間符号化）が広く行われている。フレーム間予測などの場合、動画像になると符号化効率が極端に低下することが多いことから、動画像の符号化には動き補償予測という手法が広く用いられている。
【０００３】
図８は、一般的な動き補償予測による画像のシフト例を示す図である。図８において、（ａ）は前フレームの画像，（ｂ）は現フレームの画像である。
一般的に広く用いられている動き補償予測は、現フレームの画像との予測誤差が最小となるように前フレームの画像を縦及び横方向に全体的にシフトするものである。図８は、前フレームの画像を右上方に、即ち点Ｐ１の座標位置から点Ｐ２の座標位置にシフトした場合を示している。点Ｐ１から点Ｐ２へのシフト量が動きベクトル量である。図８（ａ）の画像と図８（ｂ）の画像はそのなかの物体（王様）の位置を除いて目の部分だけが異なっている。従って、この動き補償予測を行った場合、目の部分及びその周辺の画素値の誤差（差分）と上記動きベクトル量の情報を送るだけで前フレームの画像から現フレームの画像を得ることができる。画像をシフトするだけで両者が一致した場合には、動きベクトル量と前フレームの画像から現フレームの画像を得ることができる。
【０００４】
上記の動き補償予測は、剛体のような物体がフレーム間で動いている場合、非常に効率のよい符号化を実現することができる。しかし、物体がフレーム間で拡大、縮小、形状の変化といったように変形していた場合、その発生符号量は大きくなり、効率のよい符号化を行えないという不具合が発生する。この不具合を回避し、物体の様々な動きに対応することができるワープタイプ動き補償予測が最近注目されている。
【０００５】
ワープタイプ動き補償予測は、２つの画像を各々同数で同じ形状のブロックに対応させて分割し、一方の画像のブロックの形状を固定し、この固定したブロックに最も一致するように他方の画像のブロックを変形（移動を含む）させることを基本とする。図９は、このワープタイプ動き補償予測を説明する図である。図９において、（ａ）は現フレームの画像、（ｂ）は前フレームの画像である。また、図中の破線はブロックの形状を各々表しており、これらのブロックはその角の点（Ａやａ等の破線が交差する点（頂点））の位置によってその形状、及びその位置が制御される。
【０００６】
普通、ワープタイプ動き補償予測では、図９（ａ）に示すように現フレーム（及び前フレーム）の画像をブロックに分割し、現フレームの対応するブロックに投影させた際の状態（補償後のブロック）が最も一致するように、図８（ｂ）に示す前フレームのブロックを変形する。
【０００７】
画像の変形方法は非常に多く、対象とする画像毎にその変形に適する変形方法を見つけるには非常に複雑な処理を行わなければならず、現実的でない。このため、ワープタイプ動き補償予測では、様々な画像に対して柔軟、且つ容易に対応できるように、画像をブロック化し、このブロックを処理単位としてその変形を行う手法が一般的に採用されている。また、ブロックの変形を行う前に、動きベクトルの検出による画像の全体的なシフトも一般的に行われている。
【０００８】
上記変形は、現フレーム上において変形する対象（王様）をその内部に含むブロックの各頂点をＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆとした場合、これらの頂点Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆに対応する前フレーム上の頂点ａ、ｂ、ｃ、ｄ、ｅ、ｆ（このように、現フレームの頂点は大文字、前フレームの対応する頂点は小文字で表すことにする）の各座標位置を検出（設定）することに対応する。このようにして前フレームの各頂点に新たに座標位置を設定した後に行われるブロックの投影は、これによって変形した前フレームのブロックから、その形状を現フレームの対応するブロックの形状（これは元の形状に等しい）に一致させた際の状態を求めることであり、これはワープタイプにおいてブロックに対する動き補償（補正）に相当する。ブロックの投影は、普通、現フレームのブロック内の点（画素）の座標位置を移動させながら、その座標位置に対応する前フレームのブロック上の座標位置を求めた後、この求めた座標位置の画素値を算出することで行われる。
【０００９】
このブロックの投影により、例えば前フレームにおいて頂点ａｂｃｄで示すブロックは、現フレームにおいて頂点ＡＢＣＤで示すブロックに投影される。これにより、前フレームと現フレーム間の対応するブロック内の画素は１対１に対応し、ブロック毎の比較を行うことができる。なお、ブロックの投影を別の言葉で表現すれば、変形させたブロックを、そのままの状態で形状だけ元の形状に戻すことから、図形変換が該当する。
【００１０】
ワープタイプ動き補償予測では、ブロック間の誤差即ちブロック内の対応する画素毎の画素値の差分の合計値が最小となる各頂点の座標位置を、検出し設定する。ワープタイプ動き補償予測を用いた画像データの符号化では、現フレームと各ブロックを投影させた後の前フレームとがブロックを基準に対応させられ、対応する各画素の画素値の差分が符号化される。このときには、動きベクトル量、及び各変動点の基準位置（最初に設定された座標位置）からの変位等の、動きに関する情報も符号化される。
【００１１】
ワープタイプ動き補償予測では、このように画像のブロック化を行っているが、各頂点（ａやｂ等）の対応する座標位置を検出することは非常に困難である。このため、各頂点（ａやｂ等）の座標位置の検出は、ある位置を基準位置としてその近傍に頂点を移動させながら（この移動を行うことから、以降、頂点のことを変動点と記す）、その移動を行う度にブロックの投影（補正）を行ってフレーム間の対応するブロックを比較し、比較した結果の中で最も誤差が小さかった座標位置を検出（抽出）することにより行う、いわば試行錯誤的な手法が用いられている。
【００１２】
図１０〜図１２を参照して、上記変動点の座標位置検出、及び投影（図形変換）についてさらに説明する。
図１０は、実際の変動点の状態を説明する図である。図１０において、Ａ〜Ｌは現フレーム上における各変動点（座標位置）、ａ〜ｌはそれらに対応する前フレーム上における変動点（座標位置）を各々示す。
【００１３】
先ず、図１０（ａ）に示すように画像をブロックに分割し、このブロックを基に前フレームと現フレームとの間の動きベクトルを検出することで、前フレームにおける各変動点のおおよその位置を確定する。この位置が変動点を移動させるうえでの基準位置となる。
【００１４】
基準位置が確定した後は、前フレームの各変動点毎に、その基準位置を中心にして順次移動させながら、その移動により変形したブロックの投影を行い、現フレームの対応するブロックと対比する。
【００１５】
図１１は、変動点の移動に伴うブロックの形状変化例を示す図である。図１１に示すように、変動点ｂをｂ’からｂ”に移動させると、これに伴い、変動点ｂ、及びその周囲の変動点ａ、ｃ、ｄ、ｅ、ｆ、ｊ、ｋ、ｌによって形成される４つのブロックの形状が変化する。このため、変動点ｂを移動させると、４つのブロックからなる８角形ａｊｋｌｃｆｅｄと８角形ＡＪＫＬＣＦＥＤの間の誤差を算出する。
【００１６】
１つのブロックは複数の変動点によって表され、そのなかの１つの変動点を移動させるだけで、現フレームと前フレームとでブロック内の対応する座標位置が変化する。このため、フレーム間における誤差を最小にする座標位置（以降、誤差最小位置と記す）の検出は各変動点に対して繰り返し行う。図１０〜図１２において、「’」は最初に検出した誤差最小位置、「”」は２番目に検出したその座標位置である（これは、以降においても同様に表現する）。図１１の例は、１度目の誤差最小位置の検出を各変動点に対して全て行い、変動点ａに対して２度目の最小座標位置を検出した後、変動点ｂに対して２度目の最小座標位置の検出を行っている状態を表している。経験的には、各変動点に対して誤差最小位置の検出を２回程繰り返すと、誤差最小位置の変動は実用上十分なレベルに収束する。
【００１７】
図１２は、ワープタイプ動き補償予測における投影方法を説明する図である。この投影は、上記したように、変動点を移動させることで変形させたブロックの形状を、その内部の画素数、相対的な画素の配置関係はそのままで元の形状（現フレームの対応するブロックの形状に等しい）に戻すことに相当する。その投影方法としては幾つか考えられるが、アフィン変換が用いられることが多い。
【００１８】
このアフィン変換には、直線は直線に変換し、直線上の点の比は保存する、という性質が知られている。図１２（ａ）のブロックＡＢＥＤ内の点（画素）Ｐは、そのブロックの領域（境界）を示す線ＡＢ、ＢＥ、ＡＤ、ＤＥにその座標位置を投影させた際の比率は全て１：３であるが、アフィン変換を用いた場合、この比率はブロックを変形させた前フレームにおいても保存される。即ち同図（ｂ）に示すように、現フレーム上の点（画素）Ｐに対応する前フレーム上の点（画素）ｐの位置は、ブロックの領域（境界）を示す線ａ”ｂ”、ｂ”ｅ’、ｄ’ｅ’、ａ”ｄ’にその座標位置を投影させた際の比率は全て１：３となる。これは、他の点（画素）においても同様である。
【００１９】
このようにして、現フレームのブロック内の座標位置に対応する前フレームのブロック内の座標位置が求まる。現フレームでは、各座標位置には１つの画素が対応しているが、前フレームではブロックを変形させるために、現フレームの座標位置から求めた前フレームの対応する座標位置は整数値で表現される前フレームの座標位置と普通一致しない。このため、求めた座標位置周辺の画素の値を用いて補間演算を行い、この座標位置の画素値を算出する。これは、ブロック内の他の求めた座標位置（画素）においても同様である。
【００２０】
このように、現フレームのブロック内の各座標位置に対応する前フレームのブロック内の各座標位置を算出し、該算出した各座標位置の画素値を算出することで、変形させた前フレームのブロックの元の形状への投影、即ちブロックの動き補償（補正）が行われる。
【００２１】
【発明が解決しようとする課題】
上述したワープタイプ動き補償予測では、圧縮率の低下を回避するために各変動点の誤差最小位置を検出する必要があるが、その検出には試行錯誤的な手法に頼っており、変動点を移動させる度に、それによって影響をうけるブロックの投影（動き補償）を行い、対応するブロックの対比を行っていた。このため、各変動点の誤差最小位置を確定するまでに行う計算量は膨大になり、その処理の負荷が非常に重いという問題点があった。
【００２２】
本発明の課題は、ワープタイプ動き補償予測を行った際の圧縮率の低下を抑えつつ、その処理の負荷を軽減することにある。
【００２３】
【課題を解決するための手段】
本発明が前提とするワープタイプ動き補償予測は、２つの画像上に複数の変動点を各々対応させて配置し、一方の画像上に配置した変動点の座標位置を移動させることにより、該移動させた変動点を含む複数の変動点によってその境界が示される一方の画像上のブロック領域の形状を変形させ、該変形させたブロック領域をその元の形状に投影させた際の状態を求めることで補償し、該補償したブロック領域と他方の画像の対応するブロック領域とを比較してこれらの間の画像情報の誤差を求め、該求めた誤差が最小となる座標位置を各変動点毎に検出していくものである。
【００２４】
上記ワープタイプ動き補償予測において、本発明のワープタイプ動き検出計算方法は、２つの画像上に、ブロック領域の変形前の形状に応じて比較領域をそれぞれ対応させて作成し、一方の画像上の変動点を移動させたとき、該変動点の移動によって形状が変形した比較領域をその元の形状に投影させた際の状態を求めることで補償を行った後、該補償した比較領域と他方の画像上の対応する比較領域とを比較してこれらの間の画像情報の誤差を求め、該求めた比較領域間の誤差が最小となる座標位置を、移動させた変動点の座標位置として検出する。
【００２５】
そして、上記の構成において、請求項１記載の発明では、上記の比較領域は、変動点、及びその周辺を内部に有する位置に、該変動点の移動によって形状が変形する領域の広さより狭めて作成する。
また、請求項２記載の発明では、２つの画像の何れかの画像上において検出したエッジを内部に有する位置に、該エッジの近傍に位置する変動点の移動によって形状が変形する領域の広さより狭めて形成する。
【００２６】
一方の本発明のワープタイプ動き検出装置は、以下の手段を備える。
先ず、比較領域作成手段は、２つの画像上に、ブロック領域の変形前の形状に応じて比較領域をそれぞれ対応させて作成する。誤差算出手段は、一方の画像上の変動点を移動させたとき、該変動点の移動によって形状が変形した比較領域をその元の形状に投影させた際の状態を求めることで補償を行った後、該補償した比較領域と他方の画像上の対応する比較領域とを比較してこれらの間の画像情報の誤差を算出する。座標位置設定手段は、変動点を移動させる度に誤差算出手段が算出した比較領域間の画像情報の誤差が最小となった座標位置を、該移動させた変動点の座標位置に設定する。
【００２７】
そして、上記の構成において、請求項３記載の発明では、比較領域作成手段は、変動点、及びその周辺を内部に有する位置に、該変動点の移動によって形状が変形する領域の広さより狭めて比較領域を形成する。
また、請求項４記載の発明では、比較領域作成手段は、２つの画像の何れか一方のエッジを検出し、該検出したエッジを内部に有する位置に、該エッジの近傍に位置する変動点の移動によって形状が変形する領域の広さより狭めて比較領域を作成する。
【００２８】
上記したように、本発明は、２つの画像間の誤差を算出する比較領域を新たに作成（設定）し、一方の画像上の変動点を移動させることでブロック領域を変形させた場合、この変動点の移動によって変形した一方の画像上の比較領域の補償（元の形状への投影）を行った後、該補償した比較領域とこれに対応する他方の画像上の比較領域とを比較してその間の誤差を算出し、該比較領域間で算出した誤差が最小となる座標位置を、移動させた変動点の座標位置に設定する。
【００２９】
１つの変動点を移動させると、これに伴って複数のブロック領域が変形する。これらのブロック領域を合計した広さよりも比較領域を狭くすることにより、変動点の座標位置の設定に要する計算量が低減される。
【００３０】
上記比較領域は、変動点を含むようにその位置を決定する。ブロック領域は変動点の移動によって変形し、この移動させている変動点に近い部分程大きく変形する。比較領域内に変動点を含めさせた場合、比較領域間の誤差にはブロック領域の変形（変動点の移動）の影響が大きく反映されることから、比較領域間の誤差からブロック領域（画像）間の誤差が最小となる座標位置（誤差最小位置）を正確に検出することが可能となる。即ち圧縮率の低下が回避される。
【００３１】
また、比較領域は、画像上の検出したエッジを含むようにその位置を決定する。エッジは空間周波数の高域成分であり、画像間でこのエッジの位置を合わせない場合、その誤差は大きくなりやすい。エッジをその内部に有する比較領域間の誤差を最小にさせることで、画像間のエッジが重なるようにブロック領域が変形される。これにより、圧縮率の低下が回避される。
【００３２】
変動点の位置、エッジの位置を考慮して比較領域の位置を決定した場合、より正確に変動点の誤差最小位置の検出が可能となり、圧縮率の低下はより確実に回避される。
【００３３】
【発明の実施の形態】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。
図１は、本発明による実施例を採用したシステムのブロック図である。このシステムは、テレビ電話、テレビ会議等に用いられるものである。これらに用いられるシステムは音声を扱うが、ここでは音声に関わる部分については説明を省略し、画像処理に関わる部分のみ説明することにする。
【００３４】
図１において、画像入力装置１０１は、例えばＣＣＤ（Charge Coupled Device）、及びその駆動回路等からなり、画像データの取り込みを行う。この画像入力装置１０１が取り込んだ画像データは減算器１０２、及び動き検出器１０３に出力される。
【００３５】
減算器１０２は、画像入力装置１０１から出力された画像データと、後述するようにしてワープタイプ動き補償を施した後の前フレームの画像データとの減算を行い、画素データ毎にその差分を算出する。量子化器１０４は、この差分を、例えばＤＣＴ変換を行ってＤＣＴ係数に変換した後、予め用意した量子化テーブルを用いて量子化する。
【００３６】
可変長符号化器１０５は、例えば量子化器１０４が量子化した後のＤＣＴ係数を直流成分と交流成分とにグループ分けし、各グループ毎にハフマン符号化方式を用いて符号化する。この符号化が終了すると、これにより生成した符号化後の画像データ（圧縮データ）をバッファ１０６に随時出力する。このバッファ１０６は、画像（フレーム）毎の発生符号量（圧縮データ量）、符号化における速度（フレーム間の画像がよく似ていると符号化は高速に行える）の変動を吸収するためのものである。また、可変長符号化器１０５は、量子化器１０４が量子化したＤＣＴ係数の他に、画像データを量子化した際に用いた量子化テーブル、ハフマン符号テーブル、及び動き検出器１０３から入力した画像上の物体の動きに関する情報を所定の方式で符号化し、バッファ１０６に出力する。
【００３７】
網インターフェイス部１０７は、ＩＳＤＮ（Integrated Service Digital Network）、ＬＡＮ（Local Area Network）等の通信網との間のデータの授受を行い、バッファ１０６に格納された圧縮データを通信網に送出し、通信網から圧縮データを受け取り、これをバッファ１１２に格納する。
【００３８】
逆量子化器１０８は、量子化器１０４から出力された画像データ、即ち量子化されたＤＣＴ係数を元の画像データ（差分）に復号し、加算器１０９に出力する。加算器１０９は、この逆量子化器１０８が出力した画像データと、後述する動き補償器１１１から出力された画像データとの加算を行い、その結果をフレーム・メモリ１１０に出力する。
【００３９】
動き検出器１０３は、次のフレームの画像データが画像入力装置１０１から出力されると、フレーム・メモリ１１０に格納されている直前のフレームの画像データを参照し、画像中の物体の全体的な移動、その変形といった動きを検出し、その検出結果を動き補償器１１１、及び可変長符号化器１０５に出力する。上述したように、可変長符号化器１０５は、動き検出器１０３から送られた動きの情報を符号化する。他方の動き補償器１１１は、動き検出器１０３から送られた動きの情報に従ってフレーム・メモリ１１０に格納されている画像データの補償を行い、減算器１０２、及び加算器１０９に出力する。
【００４０】
このとき、動き補償器１１１から出力された画像データは、前フレームの画像データに対し、動き検出器１０３が検出した画像（物体）の動きを反映させて補償したものである。これは、受信側においても、送った動き情報に従って前フレームの画像データを補償することで同じものが生成される。これにより、減算器１０２は、画像入力装置１０１から入力した現フレームの画像データと、受信側が動き情報により補正した前フレームの画像データとの差分を出力する。
【００４１】
他方の加算器１０９は、動き補償器１１１から入力した画像データと、量子化器１０４、逆量子化器１０８を介して入力した減算器１０２の差分出力を加算する。このため、フレーム・メモリ１１０には、受信側で復元される最終の画像データと同じものが格納される。
【００４２】
このように、画像データの送信においては、受信側が復元した画像データの状態を把握するために、符号化した画像データを復元するフィードバックを行いながら、動き補償を行った前フレームの画像データとの差分、その動き補償を施した内容（動き情報）を符号化して受信側に送出する。一方、圧縮データ（符号化後の画像データ）を受信した場合には、画像データの圧縮とは逆の手順でその復元（復号）が行われる。
【００４３】
網インターフェイス部１０７が通信網から受け取った圧縮データは、一旦バッファ１１２に格納される。可変長復号化器１１３は、圧縮データとしてともに送られたハフマン符号テーブルの種類を表すデータにより、圧縮データをもとのＤＣＴ係数に復元し、逆量子化器１１４に出力する。この逆量子化器１０８は、上記逆量子化器１０８と基本的に同じものであり、送信側から送られた量子化テーブルの種類を示すデータを基に、画像データ（差分）を復元する。逆量子化器１１４が復元した画像データは、加算器１１５に送られ、ここで動き補償器１１７が出力した画像データに加算される。
【００４４】
加算器１１５の加算結果は、フレーム・メモリ１１８、及び画像表示装置１１６に出力される。画像表示装置１１６は、例えばＣＲＴ（Cathode Ray Tube）、及びその駆動回路等からなり、加算器１１５から入力した画像データを表示画面に表示し、画像を再現する。
【００４５】
動き補償器１１７は、可変長復号化器１１３から送られた動き情報に従い、フレーム・メモリ１１８に格納されている前フレームの画像データを補正する。即ち送信側において、動き補償器１１１が減算器１０２に出力した、動き検出器１０３が検出した画像上の物体の動きに応じて補正したフレーム・メモリ１１０の画像データを再現する。この画像データと、逆量子化器１１４が出力する差分の画像データとの加算を加算器１１５に行わせることにより、送信側のフレーム・メモリ（図１においてフレーム・メモリ１１０に対応する）に格納されている現フレームの画像データは受信側で再現される。この再現された画像データは、画像表示装置１１６に送られるとともに、フレーム・メモリ１１８に格納され、次のフレームの画像データを再現するために使用される。
【００４６】
以上が、本システムの構成、及びその概略動作である。次に、図２〜図７を参照し、本実施例によるフレーム間の物体の動き検出について詳細に説明する。この動き検出は、動き検出器１０３が、フレーム・メモリ１１０に格納されている画像データ、及び画像入力装置１０１から入力した画像データとを対比しながら行うものである。図２は、上記動き検出器１０３が実行する、本実施例による動き検出処理の動作フローチャートである。
【００４７】
先ず、ステップ２０１では、マスクパターン作成処理を実行する。マスクパターンは、フレーム間で比較する領域を指定するものである。これを各フレーム（画像）上に重ねた際にその内側となる領域が、フレーム間で比較を行う領域（以降、マスク領域と記す）となる。マスクパターン作成処理は、その形状、及びそれを配置させる位置が予め設定されている基本マスクパターンと、符号化する画像上に検出したエッジとに応じてこのマスクパターンを作成する処理である。
【００４８】
図３は、上記マスクパターン作成処理の動作フローチャートである。この動作フローチャートを参照して、その処理について説明する。
先ず、ステップ３０１では、画像入力装置１０１が出力した現在の画像（現フレームの画像データ）に対し、注目画素を移動させながらエッジ検出フィルタ（微分フィルタ）を掛けていくことにより、画像上のエッジ（空間周波数の高域成分）の強調を行う。図４は、上記エッジ検出（微分）フィルタ例である。
【００４９】
ステップ３０１に続くステップ３０２では、エッジを強調した後の各画素の値からエッジを検出する処理を行う。このエッジの検出は、各画素の絶対値を予め設定した値と比較し、その絶対値が十分大きい画素をエッジと判定することで検出する。
【００５０】
ステップ３０２に続くステップ３０３では、上記ステップ３０２で検出したエッジに対して若干の幅をもたせた領域と、予め定めている基本マスクパターンの領域との論理和をとり、その論理和をとった領域をマスクパターンとして設定し、また、設定したマスクパターンからマスク領域を設定する。このステップ３０３の処理が終了した後、一連の処理が終了し、図２のステップ２０２の処理に移行する。
【００５１】
上記マスクパターンは、基本マスクパターンに、検出したエッジに応じて修正を加えて作成したものである。このため、作成したマスクパターンの形状に関わらず、基本マスクパターンと各フレームの位置関係に応じて、マスクパターンを各フレーム上に重ねることでマスク領域は確定する。
【００５２】
図５は、上記基本マスクパターンを説明する図である。同図（ａ）において、基本マスクパターンは実線、変動点によりその形状が制御されるブロックは破線で示しており、破線と破線の交点が変動点の位置である。図５（ａ）に示すように、基本マスクパターンは、画像の縁に位置していない各変動点毎に、それを中心として形成されている各ブロックの領域よりも小さな領域として用意されている。ここで、画像の縁に位置する変動点に基本マスクパターンを用意していないのは、動く物体は画像の縁に位置することが少ないことから、検出したエッジに応じてマスクパターンを作成すればよいとしているためである。この基本マスクパターンの大きさは、予め定めた大きさに固定してもよく、或いは複数の大きさを用意し、そのなかから選択するようにしてもよい。また、基本マスクパターンを用意する変動点を指定できるようにしてもよい。
【００５３】
図５（ｂ）に示す画像が画像入力装置１０１から送られた場合、その画像上に基本マスクパターンを単に重ねると、図５（ｂ）に示すようになる。
マスクパターンは、前フレームの画像データと、ブロックを変形する前フレームの画像データとを対比する領域を指定するものである。空間周波数の高域成分であるエッジは、状態（色や輝度）が大きく異なる領域の境界であることから、誤差を小さくためにはフレーム間でエッジの形状、及びその位置を合わせることが重要である。このため、本実施例では、図６（ａ）に示すように、エッジの形状に応じてマスクパターンを作成するようにしている。これにより、前フレームのブロックは、現フレームのエッジの形状に最も似るように変形させることが可能となる。言い換えれば、発生符号量が小さくなるようにブロックを変形させることが可能となる。
【００５４】
なお、本実施例では、様々なエッジの形状に柔軟に対応する、即ち圧縮率の低下をより抑えるために、エッジの形状に応じてマスクパターンを作成しているが、予め定めた形状の基本マスクパターンを画像に重ねる位置を、検出したエッジの座標位置に応じて変更するようにしてもよい。
【００５５】
図２の説明に戻り、ステップ２０２以降の処理を説明する。
ステップ２０２では、前フレームと現フレーム間の物体の大枠的（全体的）な動きを検出する。この動きの検出は、例えば画面上の物体（本システムの用途から、主に人である）の移動（シフト）量（動きベクトル量）を検出するものであり、これよりも後に行われるブロックの変形（変動点の移動）の前処理に対応する。物体の移動量の検出は、例えば前フレームで注目するマクロブロック（図（ａ）に示す複数のブロックの集合体）を定め、該マクロブロックをｘｙ方向に移動させながら、現フレーム上のそれに対応する領域と対比し、最も一致する移動量を見つけることで行う。マクロブロックの移動量の検出は、画像の転送レートなどにもよるが、例えば元の位置を基準として±１５画素の範囲で行う。このステップ２０２の処理により、現フレーム上の各ブロックに対応する前フレーム上のブロックの位置、即ち変動点の位置（座標）の対応関係が確定するとともに、フレーム間で比較するマスク領域の対応関係も確定する。
【００５６】
ステップ２０２に続くステップ２０３では、誤差の合計を予め定めておいた許容誤差と比較することにより、この誤差の合計が十分小さいか否か判定する。ここで、このステップ２０３を初めて実行した際の合計の誤差は、ステップ２０２で検出した移動量に応じて大枠的（全体的）に移動させた前フレームと現フレーム間における画素値の差分の合計である。それ以外の場合は、ステップ２０１で作成したマスク領域毎に対比させた際のその誤差（比較領域内における各座標位置の画素値の合計）の合計である。誤差の合計が許容範囲内であった場合、その判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合、その判定はＮＯとなってステップ２０４の処理に移行する。
【００５７】
ステップ２０４では、着目する変動点を設定する。本実施例では、変動点を移動させる範囲をｘｙ方向ともに±３画素とし、その範囲内の移動を全て終了させてから着目する変動点を変更するようにしている。ステップ２０４で設定した変動点は、続くステップ２０５でその位置を移動させた後、ステップ２０６の処理に移行する。
【００５８】
ステップ２０６では、現フレームの位置でマスク領域内の各座標位置に対応する前フレームの変動点周辺の座標位置を計算し、その画素値を算出する。これにより、前フレームの変形させたマスク領域を元の形状（現フレーム上のマスク領域の形状と同じである）に投影させた際の状態、即ちマスク領域内の各座標位置での画素値が算出される。
【００５９】
ここで、上記ステップ２０６の処理内容について詳細に説明する。
ワープタイプ動き補償予測では、上記したように、現フレーム上の座標位置を移動させながら、その座標位置に対応するブロックを変形させた後の前フレーム上の座標位置を計算し、該計算した座標位置の画素値を算出する手法が広く用いられている。現フレーム上の座標位置に対応する前フレーム上の座標位置を計算する手法は幾つか知られているが、本実施例では三角型計算手法（アフィン変換）を用いている。
【００６０】
座標位置は、通常、ｘｙ座標で表現される。このｘｙ座標は画素の配置に対応、即ちｘｙ座標上の各座標位置にはそれぞれ１つの画素が１対１に対応する。画像（画面）の左上の角が座標位置（０，０）である。三角型計算手法においては、ブロックを３角形に分割し、例えばその内部の座標位置をベクトルとして扱う。図７を参照して、この手法による座標変換について説明する。
【００６１】
図７（ａ）は前フレームのブロック、同図（ｂ）はそのブロックに対応する現フレームのブロックである。また、図７において、数字を付与した文字は各変動点のベクトルを表し、上述した約束に従い、その文字は現フレームでは大文字、前フレームでは小文字としている。ここでは、三角形Ａ0 Ａ1 Ａ2 （ａ0 ａ1 ａ2 ）内部の位置ベクトルの変換を例にとって説明する。
【００６２】
上述したように、ワープタイプ動き補償予測では、座標変換はアフィン変換を仮定している。このため、三角形Ａ0 Ａ1 Ａ2 内の任意の位置ベクトルＸに対応する三角形ａ0 ａ1 ａ2 内の位置ベクトルｘとの関係は、ｘ＝ＴＸ＋ｋと書ける。ここで、Ｔはパタメータ、ｋは移動量（定数）である。フレーム間の各変動点の位置は対応するから、これらの間の関係も以下のように書ける。
【００６３】
【数１】
ａ0 ＝ＴＡ0 ＋ｋ  ・・・・１式
ａ1 ＝ＴＡ1 ＋ｋ  ・・・・２式
ａ2 ＝ＴＡ2 ＋ｋ  ・・・・３式
１式−２式、２式−３式より、
ａ0 −ａ1 ＝Ｔ（Ａ0 −Ａ1 ）  ・・・・４式
ａ1 −ａ2 ＝Ｔ（Ａ1 −Ａ2 ）  ・・・・５式
また、４式、及び５式より、
（ａ0 −ａ1 ，ａ1 −ａ2 ）＝Ｔ（Ａ0 −Ａ1 ，Ａ1 −Ａ2 ）
ゆえに、
Ｔ＝（ａ0 −ａ1 ，ａ1 −ａ2 ）（Ａ0 −Ａ1 ，Ａ1 −Ａ2 ）-1
一方のｋは、Ｔを１式に代入して、
ｋ＝ａ0 −（ａ0 −ａ1 ，ａ1 −ａ2 ）（Ａ0 −Ａ1 ，Ａ1 −Ａ2 ）-1Ａ0 
よって、図７の例における位置ベクトルｘとＸの関係は、
ｘ＝（ａ0 −ａ1 ，ａ1 −ａ2 ）（Ａ0 −Ａ1 ，Ａ1 −Ａ2 ）-1Ｘ＋ａ0 −（ａ0 −ａ1 ，ａ1 −ａ2 ）（Ａ0 −Ａ1 ，Ａ1 −Ａ2 ）-1Ａ0 
である。
このようにして現フレーム上の位置ベクトルＸに対応する前フレーム上の位置ベクトルｘが求まる。通常、整数で表現される位置ベクトルＸとは異なり、この求めた位置ベクトルｘのｘｙ成分はともに整数ではなく、実数となる。このため、位置ベクトル（座標位置）ｘの各成分の小数部の値に応じて、位置ベクトルｘの周辺画素の間でその画素値の補間計算を行い、その計算結果を位置ベクトル（座標位置）ｘの画素値とする。
【００６４】
位置ベクトルｘの座標位置を（ｘ，ｙ）、座標位置（ｘ，ｙ）周辺の各座標位置を各々（ｘ0 ，ｙ0 ）、（ｘ0 ＋１，ｙ0 ）、（ｘ0 ，ｙ0 ＋１）、及び（ｘ0 ＋１，ｙ0 ＋１）とし、各座標位置での画素値はその座標位置にｐを付けて表す。各座標位置の関係としては、ｘ0 ≦ｘ≦ｘ0 ＋１、ｙ0 ≦ｙ≦ｙ0 ＋１である。このように仮定した場合の補間計算は、例えば以下のように行う。
【００６５】
【数２】
0003728605.tif 000002
このようにして、現フレーム上の対象としているマスクパターン内の各座標位置の画素値が算出され、ステップ２０６の処理が終了する。
【００６６】
ステップ２０６に続くステップ２０７では、上述したようにして前フレームの各画素値から算出したマスク領域内の各座標位置における画素値と、現フレームにおいて対応するマスク領域内の各座標位置における画素値とを各々対比させ、その誤差（マスク領域内各画素値の差分の累算値）を算出する。この誤差を算出した後、ステップ２０８において、現在着目している変動点の移動が全て終了したか否か判定する。上記したように、本実施例では予め設定した範囲内に変動点の移動を限定しており、その範囲内全ての座標位置に変動点を移動させた場合、ステップ２０８の判定はＹＥＳとなってステップ２０９の処理に移行する。反対にそうでない場合、その判定はＮＯとなってステップ２０５の処理に戻る。
【００６７】
ステップ２０９では、変動点を移動させたなかで誤差が最小となる座標位置を検索し、この検索した座標位置をこの変動点の座標位置に設定する。その後、ステップ２１０において、全ての変動点で最小となる座標位置を再定義したか否か判定する。座標位置を再定義する変動点がまだ残っている場合、その判定はＮＯとなってステップ２０４の処理に戻り、ここで着目する変動点を新たに設定した後、これ以降の処理を行う。全ての変動点に対して座標位置を再定義した場合、その判定はＹＥＳとなってステップ２０３の処理に戻り、ここでフレーム全体の誤差の合計が許容範囲内か否かが判定される。
【００６８】
このように、着目した変動点を随時移動させ、この移動が終了次第、着目する変動点を変更し、この変動点の移動と変更を繰り返し行うことで、誤差が最小になる、或いは誤差が許容範囲内となる座標位置が各変動点に設定されていくことになる。なお、各変動点に設定された最後の座標位置は、例えばその元の座標位置（基準位置）からの変位ベクトルの形で受信側に送られる。一方の受信側では、送信側から送られた動きベクトル量に従って前フレームの画像をシフトした後、各変動点毎の変位ベクトルに応じて各ブロック毎に補償を行う。
【００６９】
ところで、本実施例では、従来のように変動点の移動によって形状が変形するブロック内の全ての画素値をフレーム間で対比せず、対比する部分は予め設定したマスク領域内だけとしている。このマスク領域は、変動点の移動によって変形する領域よりも狭くさせている。このように、対比する領域を狭くさせることにより、フレーム間の誤差を算出するための計算量が低減し、処理に要する時間を短縮することができる。しかし、この一方では、対比する領域を狭めたことで検出した誤差最小位置（画像間の誤差を最小にする座標位置）の精度が低下し、発生符号量が増大する不具合の発生が考えられる。本実施例では、この発生符号量が増大する不具合を以下の理由によって回避することができる。図６を参照して説明する。
【００７０】
図６において、移動させる（着目している）変動点はｂである。同図（ｂ）に示すように、変動点ｂを、ｂ’の位置からｂ”の位置に移動させた場合、変動点ｂの近くの点ｖはその移動に伴ってｖ’からｖ”に座標位置が大きく移動する。これに対し、変動点ｂから遠く離れている点ｕは、変動点ｂのこの移動によってｕ’からｕ”に移動するが、その移動量は極僅かである。即ち、着目する変動点周辺の画素は変動点の移動による影響が大きいが、それよりも離れるほどその影響は小さくなり、変動点の移動による誤差の変化の大部分はその変動点周辺の領域で発生する。このため、変動点周辺に誤差を対比する領域を限定しても、誤差最小位置を正確に検出することが可能となり、圧縮率の低下を回避することができる。
【００７１】
現在着目している変動点から離れている領域は、他の変動点の周辺の領域ということになる。即ち、移動させている変動点から離れている領域は、その近傍に位置する他の変動点が着目された、或いは着目される際に、その誤差が最小となるように変動点の座標位置が既に設定、或いは設定される。このことからも、誤差を算出するうえで変動点から離れたら領域の重要性は低いといえ、変動点周辺に誤差を算出する領域を限定しても誤差最小位置を正確に検出できる。
【００７２】
また、本実施例では、画像上のエッジを検出し、このエッジに応じてマスクパターンを作成している（図６（ａ）参照）。言い換えれば、画像間で大きな誤差が発生しやすい領域をマスク領域（マスクパターン）内に含めている。このため、画像間でエッジが重なるようにブロックは変形されることになり、誤差最小位置をより正確に検出することができる。
【００７３】
なお、本実施例では、変動点毎にマスクパターンを１つ作成しているが、これに限定するものではない。例えば、変動点及びその周囲を領域とするマスクパターンの他に、このマスクパターンよりも小さな領域のマスクパターンを変動点から離れた位置に作成するようにしてもよい。また、本実施例でのマスクパターンは、変動点周辺をその内部に有する基本マスクパターン（図５参照）と、検出したエッジに応じて作成したパターンを合成させた領域（図６参照）であるが、これらの何れか一方だけで画像間の誤差を評価してもよい。このように、マスクパターンの作成は柔軟に行えるものである。
【００７４】
最近では、ＣＰＵの性能の急激な向上により、例えばこれまで専用のＤＳＰに実行させていた処理をＣＰＵに実行させることでこのＤＳＰを不要とし、システムの簡易化を図ることが考えられてきている。本発明は、動き補償における処理の負担を軽減するものであることから、このようなシステムの簡易化にも貢献できる。
【００７５】
【発明の効果】
以上、説明したように本発明は、変動点の移動によって変形する領域より狭い領域のマスク領域を新たに作成し、画像間での比較をマスク領域内に限定させたため、誤差を算出するための計算量が低減し、その負荷を軽減させることができる。
【００７６】
また、本発明は、変動点、或いは／及び、エッジをその内部に有する位置にマスク領域を設定するため、画像間の誤差を最小にする変動点の座標位置を正確に検出することができ、圧縮率の低下を回避することができる。
【図面の簡単な説明】
【図１】本発明による実施例を採用したシステムの回路ブロック図である。
【図２】動き検出処理の動作フローチャートである。
【図３】マスクパターン作成処理の動作フローチャートである。
【図４】エッジ検出フィルタ例を示す図である。
【図５】基本マスクパターンを説明する図である。
【図６】エッジの形状に応じて作成されたマスクパターン、及び変動点の移動に伴うブロック内の画素の移動を説明する図である。
【図７】座標変換を説明するための図である。
【図８】一般的な動き補償予測による画像のシフト例を示す図である。
【図９】ワープタイプ動き補償予測を説明する図である。
【図１０】実際の変動点の状態を説明する図である。
【図１１】変動点の移動に伴うブロックの形状変化例を示す図である。
【図１２】ワープタイプ動き補償予測における投影方法を説明する図である。
【符号の説明】
１０１  画像入力装置
１０３  動き検出器
１１０  フレーム・メモリ
１１１  動き補償器
【図１】
0003728605.tif 000003
【図２】
0003728605.tif 000004
【図３】
0003728605.tif 000005
【図４】
0003728605.tif 000006
【図５】
0003728605.tif 000007
【図６】
0003728605.tif 000008
【図７】
0003728605.tif 000009
【図８】
0003728605.tif 000010
【図９】
0003728605.tif 000011
【図１０】
0003728605.tif 000012
【図１１】
0003728605.tif 000013
【図１２】
0003728605.tif 000014