(57)【特許請求の範囲】
【請求項１】
動画像の符号化又は復号化のために、参照画像から現フレームのフレーム間予測画像を合成する方法において、
上記フレーム間予測画像の座標（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）（ｉ、ｊ、ｐ、ｑは整数）に位置する４つの代表点における、上記フレーム間予測画像と上記参照画像の間の動きベクトル（該動きベクトルの水平・垂直成分が１／ｋの整数倍の値をとり、ｋは２のｈｋ乗、かつｈｋは負ではない整数）を求める第１ステップと、
画素のサンプリング間隔を水平、垂直方向共に１として、サンプリング点の座標の水平、垂直成分が、共に整数にｗを加えた数である点の上に存在している画素を対象として（ただし、ｗ＝ｗｎ／ｗｄ、かつｗｎは負ではない整数、かつｗｄは２のｈｗ乗、かつｈｗは負ではない整数、かつｗｎ＜ｗｄ）、上記４個の代表点における動きベクトルに対し、共１次内・外挿を行うことによって、上記フレーム間予測画像の座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルを計算する第２ステップと、上記フレーム間予測画像の座標（ｘ＋ｗ、ｙ＋ｗ）の画素値を上記フレーム間予測画像の座標（ｘ＋ｗ、ｙ＋ｗ）における動きベクトルと上記参照画像とを用いて計算する第３ステップとを有し、
上記第２ステップが、上記フレーム間予測画像の座標（ｉ，ｊ）と（ｉ，ｊ＋ｑ）に位置する代表点の上記動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として（ただし、ｚは２のｈｚ乗、かつｈｚは負ではない整数）求め、さらに座標（ｉ＋ｐ，ｊ）と（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ＋ｐ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として求めるステップと、
その後に、座標（ｉ，ｙ＋ｗ）と（ｉ＋ｐ，ｙ＋ｗ）に位置する上記２個の動きベクトルに対して線形内・外挿を行うことにより、座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をそれぞれ１／ｍの整数倍をとる数値として（ただし、ｍは２のｈｍ乗、かつｈｍは負ではない整数）求めるステップを有することを特徴とするフレーム間予測画像の合成方法。
【請求項２】
上記座標（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルの水平・垂直成分をｋ倍したものである（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を用いて座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルを求めるときに、
上記座標（ｉ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれｚ倍したものである（ｕＬ（ｙ＋ｗ），ｖＬ（ｙ＋ｗ））を、
ｕＬ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｕ０＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｕ２）ｚ）////（ｑ・ｋ・ｗｄ），
ｖＬ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｖ０＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｖ２）ｚ）////（ｑ・ｋ・ｗｄ）を計算することにより（ただし、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）求め、
更に上記座標（ｉ＋ｐ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれｚ倍したものである（ｕＲ（ｙ＋ｗ），ｖＲ（ｙ＋ｗ））を、
ｕＲ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｕ１＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｕ３）ｚ）////（ｑ・ｋ・ｗｄ）、
ｖＲ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｖ１＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｖ３）ｚ）////（ｑ・ｋ・ｗｄ）、
を計算することにより求め、
上記座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をそれぞれｍ倍したものである（ｕ（ｘ＋ｗ，ｙ＋ｗ），ｖ（ｘ＋ｗ，ｙ＋ｗ））を
ｕ（ｘ＋ｗ，ｙ＋ｗ）＝（（（ｐ・ｗｄ−（ｘ−ｉ）・ｗｄ−ｗｎ）ｕＬ（ｙ＋ｗ）＋（（ｘ−ｉ）・ｗｄ＋ｗｎ）ｕＲ（ｙ＋ｗ））ｍ）//（ｐ・ｚ・ｗｄ）
ｖ（ｘ＋ｗ，ｙ＋ｗ）＝（（（ｐ・ｗｄ−（ｘ−ｉ）・ｗｄ−ｗｎ）ｖＬ（ｙ＋ｗ）＋（（ｘ−ｉ）・ｗｄ＋ｗｎ）ｖＲ（ｙ＋ｗ））ｍ）//（ｐ・ｚ・ｗｄ）
を計算することによって（ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）求めることを特徴とする請求項１に記載のフレーム間予測画像の合成方法。
【請求項３】
上記ｐの絶対値が２のα乗（αは負ではない整数）であることを特徴とする請求項１又は２に記載のフレーム間予測画像の合成方法。
【請求項４】
上記ｐと上記ｑの絶対値がそれぞれ２のα乗とβ乗（α、βは負ではない整数）であることを特徴とする請求項１又は２に記載のフレーム間予測画像の合成方法。
【請求項５】
上記ｚとｍは、ｚ≧ｍの関係であることを特徴とする請求項１ないし４の何れかに記載のフレーム間予測画像の合成方法。
【請求項６】
上記ｋ≧ｚであることを特徴とする請求項１ないし４の何れかに記載のフレーム間予測画像の合成方法。
【請求項７】
上記ｐと上記ｑの絶対値がそれぞれ上記フレーム間予測画像の水平と垂直の画素数と異なることを特徴とする請求項１ないし６の何れかに記載のフレーム間予測画像の合成方法。
【請求項８】
ｒを上記フレーム間予測画像の水平方向の画素数、ｓを上記フレーム間予測画像の垂直方向の画素数として（ただし、ｒとｓは正の整数）、
上記ｐの絶対値を１／２倍した値は上記ｒより小さく、かつ、上記ｐの絶対値は上記ｒ以上で、かつ上記ｑの絶対値を１／２倍した値は上記ｓより小さく、かつ上記ｑの絶対値は上記ｓ以上であることを特徴とする請求項１ないし７の何れかに記載のフレーム間予測画像の合成方法。
【請求項９】
ｒを上記フレーム間予測画像の水平方向の画素数、ｓを上記フレーム間予測画像の垂直方向の画素数として（ただし、ｒとｓは正の整数）、
上記ｐの絶対値は上記ｒ以下であり、かつ上記ｐの絶対値を２倍した値は上記ｒより大きく、かつ上記ｑの絶対値は上記ｓ以下であり、かつ上記ｑの絶対値を２倍した値は上記ｓより大きいことを特徴とする請求項１ないし７の何れかに記載のフレーム間予測画像の合成方法。
【請求項１０】
上記フレーム間予測画像の水平方向と垂直方向の画素数がそれぞれｒとｓであり（ただし、ｒとｓは正の整数）、かつ上記フレーム間予測画像の画素が水平座標が０以上、上記ｒ未満、垂直座標が０以上、上記ｓ未満の範囲に存在しているときに、座標（−ｃ，−ｃ）、（ｒ−ｃ，−ｃ）、（−ｃ，ｓ−ｃ）、（ｒ−ｃ，ｓ−ｃ）に位置する上記フレーム間予測画像の隅の点上に存在し（ただし、ｃ＝ｃｎ／ｃｄ、かつｃｎは負ではない整数、かつｃｄは正の整数、かつｃｎ＜ｃｄ）、水平・垂直成分が１／ｎの整数倍の値をとる動きベクトル（ただし、ｎは正の整数）をｎ倍したものである（ｕ00，ｖ00）、（ｕ01，ｖ01）、（ｕ02，ｖ02）、（ｕ03，ｖ03）（ただし、ｕ00、ｖ00、ｕ01、ｖ01、ｕ02、ｖ02、ｕ03、ｖ03は整数）を用いて、
ｕ'（ｘ，ｙ）＝（（（ｓ・ｃｄ−ｃｎ−ｙ・ｃｄ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｕ00＋（ｘ・ｃｄ＋ｃｎ）ｕ01＋（ｙ・ｃｄ＋ｃｎ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｕ02＋（ｘ・ｃｄ−ｃｎ）ｕ03））ｋ）///（ｒ・ｓ・ｎ・ｃｄ２），
ｖ'（ｘ，ｙ）＝（（（ｓ・ｃｄ−ｃｎ−ｙ・ｃｄ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｖ00＋（ｘ・ｃｄ＋ｃｎ）ｖ01）＋（ｙ・ｃｄ＋ｃｎ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｖ02＋（ｘ・ｃｄ＋ｃｎ）ｖ03））ｋ）///（ｒ・ｓ・ｎ・ｃｄ２），
ｕ０＝ｕ'（ｉ，ｊ），
ｖ０＝ｖ'（ｉ，ｊ），
ｕ１＝ｕ'（ｉ＋ｐ，ｊ），
ｖ１＝ｖ'（ｉ＋ｐ，ｊ），
ｕ２＝ｕ'（ｉ，ｊ＋ｑ），
ｖ２＝ｖ'（ｉ，ｊ＋ｑ），
ｕ３＝ｕ'（ｉ＋ｐ，ｊ＋ｑ），
ｖ３＝ｖ'（ｉ＋ｐ，ｊ＋ｑ），
で表される（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を（ただし、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）、上記代表点（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）の動きベクトルの水平・垂直成分をｋ倍したものとして使用することを特徴とする請求項１ないし９の何れかに記載のフレーム間予測画像の合成方法。
【請求項１１】
上記参照画像と符号化しようとする上記現フレームの原画像を用いた動き補償により、上記フレーム間予測画像を合成し、
上記フレーム間予測画像と上記現フレームの上記原画像との差を誤差画像として出力し、上記誤差画像を信号変換し、変換信号を得てそれを符号化し、上記変換信号を逆変換して上記誤差画像の復号誤差画像を作り、
上記復号誤差画像と上記フレーム間予測画像を用いて上記現フレームの復号画像を生成し、
上記フレーム間予測画像の合成は請求項１ないし１０のいずれかに記載のフレーム間予測画像の合成方法を用いることを特徴とする画像符号化方法。
【請求項１２】
上記フレーム間予測画像の合成は、上記代表点の動きベクトルに関する情報を抽出し符号化するステップを有することを特徴とする請求項１１記載の画像の符号化方法。
【請求項１３】
上記参照画像と符号化しようとする上記現フレームの原画像を用いた動き補償により、上記フレーム間予測画像を合成し、
上記フレーム間予想画像と上記現フレームの原画像との差を誤差画像として出力し、
上記誤差画像を信号変換し、変換信号を得てそれを符号化し、
上記変換信号を逆変換して上記誤差画像の復号誤差画像を作り、
上記復号誤差画像と上記フレーム間予測画像を用いて上記現フレームの復号画像を生成し、
上記フレーム間予測画像の合成は請求項１０に記載のフレーム間予測画像の合成方法を用い、上記フレーム間予測画像の隅の点の動きベクトルに関する情報を抽出し符号化するステップを有することを特徴とする画像符号化方法。
【請求項１４】
復号しようとする上記現フレームの誤差画像の変換信号の情報と該現フレームの動きベクトルの情報と入力し、
上記誤差画像の変換信号の情報を復号誤差画像に変換し、
上記参照画像と上記動きベクトルの情報から上記フレーム間予測画像を合成し、
上記復号誤差画像と上記フレーム間予測画像とを加算して、上記現フレームの復号画像を得、
上記フレーム間予測画像の合成は請求項１ないし１０のいずれかに記載のフレーム間予測画像の合成方法を用いることを特徴とする画像復号化方法。
【請求項１５】
上記動きベクトルの情報が上記代表点の動きベクトルを含むことを特徴とする請求項１４に記載の画像の復号化方法。
【請求項１６】
復号しようする上記現フレームの誤差画像の変換信号の情報と上記現フレームの動きベクトルの情報と入力し、
上記誤差画像の変換信号の情報を復号誤差画像に変換し、
上記参照画像と上記動きベクトルの情報からフレーム間予測画像を合成し、
上記復号誤差画像と上記フレーム間予測画像の信号とを加算して、上記現フレームの復号画像を得、
上記動きベクトルの情報は、上記フレーム間予測画像の隅の点の動きベクトルの情報を含み、上記フレーム間予測画像の合成は請求項１０に記載のフレーム間予測画像の合成方法で行うことを特徴とする画像復号化方法。
【請求項１７】
参照画像と符号化しようとする現フレームの原画像を用いた動き補償によってフレーム間予測画像の合成を行う動き補償処理部と、
上記現フレームの原画像と上記フレーム間予測画像との差を誤差画像として出力する減算器と、
上記誤差画像を信号変換して、変換信号を出力する第１変換部と、
該第１変換部の出力の一部を符号化する符号化器と、
上記第１変換部の出力の一部を逆変換して上記現フレームの復号誤差画像を得る第２変換部と、
上記復号誤差画像と上記フレーム間予測画像とから上記現フレームの復号画像を得る加算器とを有し、
上記動き補償処理部において行われる上記フレーム間予測画像の合成処理は上記フレーム間予測画像の座標（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）（ｉ、ｊ、ｐ、ｑは整数）に位置する４つの代表点における、上記フレーム間予測画像と上記参照画像の間の動きベクトル（該動きベクトルの水平・垂直成分が１／ｋの整数倍の値をとり、ｋは２のｈｋ乗、かつｈｋは負ではない整数）を求める第１の処理と、画素のサンプリング間隔を水平、垂直方向共に１として、サンプリング点の座標の水平、垂直成分が、共に整数にｗを加えた数である点の上に存在している画素を対象として（ただし、ｗ＝ｗｎ／ｗｄ、かつｗｎは負ではない整数、かつｗｄは２のｈｗ乗、かつｈｗは負ではない整数、かつｗｎ＜ｗｄ）、上記４個の代表点における動きベクトルに対し、共１次内・外挿を行うことによって、上記フレーム間予測画像の座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルを計算する第２の処理と、上記フレーム間予測画像の座標（ｘ＋ｗ、ｙ＋ｗ）の画素値を上記フレーム間予測画像の座標（ｘ＋ｗ、ｙ＋ｗ）における動きベクトルと上記参照画像とを用いて計算する第３の処理を含み、
上記第２の処理が、上記フレーム間予測画像の座標（ｉ，ｊ）と（ｉ，ｊ＋ｑ）に位置する代表点の上記動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として（ただし、ｚは２のｈｚ乗、かつｈｚは負ではない整数）求め、さらに座標（ｉ＋ｐ，ｊ）と（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ＋ｐ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として求める処理と、
その後に、座標（ｉ，ｙ＋ｗ）と（ｉ＋ｐ，ｙ＋ｗ）に位置する上記２個の動きベクトルに対して線形内・外挿を行うことにより、座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をそれぞれ１／ｍの整数倍をとる数値として（ただし、ｍは２のｈｍ乗、かつｈｍは負ではない整数）求める処理を含むことを特徴とする画像符号化装置。
【請求項１８】
上記座標（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルの水平・垂直成分をｋ倍したものである（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を用いて座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルを求めるときに、
上記座標（ｉ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれｚ倍したものである（ｕＬ（ｙ＋ｗ），ｖＬ（ｙ＋ｗ））を、
ｕＬ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｕ０＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｕ２）ｚ）////（ｑ・ｋ・ｗｄ），
ｖＬ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｖ０＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｖ２）ｚ）////（ｑ・ｋ・ｗｄ）を計算することにより（ただし、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）求め、
更に上記座標（ｉ＋ｐ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれｚ倍したものである（ｕＲ（ｙ＋ｗ），ｖＲ（ｙ＋ｗ））を、
ｕＲ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｕ１＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｕ３）ｚ）////（ｑ・ｋ・ｗｄ）、
ｖＲ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｖ１＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｖ３）ｚ）////（ｑ・ｋ・ｗｄ）、
を計算することにより求め、
上記座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をそれぞれｍ倍したものである（ｕ（ｘ＋ｗ，ｙ＋ｗ），ｖ（ｘ＋ｗ，ｙ＋ｗ））を
ｕ（ｘ＋ｗ，ｙ＋ｗ）＝（（（ｐ・ｗｄ−（ｘ−ｉ）・ｗｄ−ｗｎ）ｕＬ（ｙ＋ｗ）＋（（ｘ−ｉ）・ｗｄ＋ｗｎ）ｕＲ（ｙ＋ｗ））ｍ）//（ｐ・ｚ・ｗｄ）
ｖ（ｘ＋ｗ，ｙ＋ｗ）＝（（（ｐ・ｗｄ−（ｘ−ｉ）・ｗｄ−ｗｎ）ｖＬ（ｙ＋ｗ）＋（（ｘ−ｉ）・ｗｄ＋ｗｎ）ｖＲ（ｙ＋ｗ））ｍ）//（ｐ・ｚ・ｗｄ）
を計算することによって（ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）求めることを特徴とする請求項１７に記載の画像符号化装置。
【請求項１９】
ｒを上記フレーム間予測画像の水平方向の画素数、ｓを上記フレーム間予測画像の垂直方向の画素数として（ただし、ｒとｓは正の整数）、上記ｐの絶対値を１／２倍した値は上記ｒより小さく、かつ上記ｐの絶対値は上記ｒ以上で、かつ上記ｑの絶対値を１／２倍した値は上記ｓより小さく、かつ上記ｑの絶対値は上記ｓ以上であることを特徴とする請求項１７又は１８の何れかに記載の画像符号化装置。
【請求項２０】
上記フレーム間予測画像の水平方向と垂直方向の画素数がそれぞれｒとｓであり（ただし、ｒとｓは正の整数）、かつ上記フレーム間予測画像の画素が水平座標が０以上、上記ｒ未満、垂直座標が０以上、上記ｓ未満の範囲に存在しているときに、座標（−ｃ，−ｃ）、（ｒ−ｃ，−ｃ）、（−ｃ，ｓ−ｃ）、（ｒ−ｃ，ｓ−ｃ）に位置する上記フレーム間予測画像の隅の点上に存在し（ただし、ｃ＝ｃｎ／ｃｄ、かつｃｎは負ではない整数、かつｃｄは正の整数、かつｃｎ＜ｃｄ）、水平・垂直成分が１／ｎの整数倍の値をとる動きベクトル（ただし、ｎは正の整数）をｎ倍したものである（ｕ00，ｖ00）、（ｕ01，ｖ01）、（ｕ02，ｖ02）、（ｕ03，ｖ03）（ただし、ｕ00、ｖ00、ｕ01、ｖ01、ｕ02、ｖ02、ｕ03、ｖ03は整数）を用いて、
ｕ'（ｘ，ｙ）＝（（（ｓ・ｃｄ−ｃｎ−ｙ・ｃｄ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｕ00＋（ｘ・ｃｄ＋ｃｎ）ｕ01＋（ｙ・ｃｄ＋ｃｎ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｕ02＋（ｘ・ｃｄ−ｃｎ）ｕ03））ｋ）///（ｒ・ｓ・ｎ・ｃｄ２），
ｖ'（ｘ，ｙ）＝（（（ｓ・ｃｄ−ｃｎ−ｙ・ｃｄ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｖ00＋（ｘ・ｃｄ＋ｃｎ）ｖ01）＋（ｙ・ｃｄ＋ｃｎ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｖ02＋（ｘ・ｃｄ＋ｃｎ）ｖ03））ｋ）///（ｒ・ｓ・ｎ・ｃｄ２），
ｕ０＝ｕ'（ｉ，ｊ），
ｖ０＝ｖ'（ｉ，ｊ），
ｕ１＝ｕ'（ｉ＋ｐ，ｊ），
ｖ１＝ｖ'（ｉ＋ｐ，ｊ），
ｕ２＝ｕ'（ｉ，ｊ＋ｑ），
ｖ２＝ｖ'（ｉ，ｊ＋ｑ），
ｕ３＝ｕ'（ｉ＋ｐ，ｊ＋ｑ），
ｖ３＝ｖ'（ｉ＋ｐ，ｊ＋ｑ），
で表される（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を（ただし、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）、上記代表点（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）の動きベクトルの水平・垂直成分をｋ倍したものとして使用することを特徴とする請求項１７ないし１９の何れかに記載の画像符号化装置。
【請求項２１】
上記動き補償処理部は、上記フレーム間予測画像の隅の動きベクトルに関する情報を抽出して符号化することを特徴とする請求項２０に記載の画像符号化装置。
【請求項２２】
復号化しようとする現フレームの誤差画像の変換信号の情報と動きベクトルの情報を入力する入力部と、
上記誤差画像の変換信号の情報を復号化して誤差画像の信号に変換する変換部と、
上記参照画像と上記動きベクトルの情報とから上記フレーム間予測画像を合成する予測画像合成部と、
上記フレーム間予測画像と上記誤差画像を加算して上記現フレームの復号画像を作る加算部とを有し、
上記予測画像合成部において行われる上記フレーム間予測画像の合成処理部は、上記フレーム間予測画像の座標（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）（ｉ、ｊ、ｐ、ｑは整数）に位置する４つの代表点における、上記フレーム間予測画像と上記参照画像の間の動きベクトル（該動きベクトルの水平・垂直成分が１／ｋの整数倍の値をとり、ｋは２のｈｋ乗、かつｈｋは負ではない整数）を求める第１の処理と、画素のサンプリング間隔を水平、垂直方向共に１として、サンプリング点の座標の水平、垂直成分が、共に整数にｗを加えた数である点の上に存在している画素を対象として（ただし、ｗ＝ｗｎ／ｗｄ、かつｗｎは負ではない整数、かつｗｄは２のｈｗ乗、かつｈｗは負ではない整数、かつｗｎ＜ｗｄ）、上記４個の代表点における動きベクトルに対し、共１次内・外挿を行うことによって、上記フレーム間予測画像の座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルを計算する第２の処理と、上記フレーム間予測画像の座標（ｘ＋ｗ、ｙ＋ｗ）の画素値を上記フレーム間予測画像の座標（ｘ＋ｗ、ｙ＋ｗ）における動きベクトルと上記参照画像とを用いて計算する第３の処理を含み、
上記第２の処理が、上記フレーム間予測画像の座標（ｉ，ｊ）と（ｉ，ｊ＋ｑ）に位置する代表点の上記動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として（ただし、ｚは２のｈｚ乗、かつｈｚは負ではない整数）求め、さらに座標（ｉ＋ｐ，ｊ）と（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ＋ｐ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として求める処理と、
その後に、座標（ｉ，ｙ＋ｗ）と（ｉ＋ｐ，ｙ＋ｗ）に位置する上記２個の動きベクトルに対して線形内・外挿を行うことにより、座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をそれぞれ１／ｍの整数倍をとる数値として（ただし、ｍは２のｈｍ乗、かつｈｍは負ではない整数）求める処理を含むことを特徴とする画像復号化装置。
【請求項２３】
上記座標（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルの水平・垂直成分をｋ倍したものである（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を用いて座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルを求めるときに、
上記座標（ｉ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれｚ倍したものである（ｕＬ（ｙ＋ｗ），ｖＬ（ｙ＋ｗ））を、
ｕＬ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｕ０＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｕ２）ｚ）////（ｑ・ｋ・ｗｄ），
ｖＬ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｖ０＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｖ２）ｚ）////（ｑ・ｋ・ｗｄ）を計算することにより（ただし、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）求め、
更に上記座標（ｉ＋ｐ，ｙ＋ｗ）に位置する点の動きベクトルの水平・垂直成分をそれぞれｚ倍したものである（ｕＲ（ｙ＋ｗ），ｖＲ（ｙ＋ｗ））を、
ｕＲ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｕ１＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｕ３）ｚ）////（ｑ・ｋ・ｗｄ）、
ｖＲ（ｙ＋ｗ）＝（（（ｑ・ｗｄ−（ｙ−ｊ）・ｗｄ−ｗｎ）ｖ１＋（（ｙ−ｊ）・ｗｄ＋ｗｎ）ｖ３）ｚ）////（ｑ・ｋ・ｗｄ）、
を計算することにより求め、
上記座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をそれぞれｍ倍したものである（ｕ（ｘ＋ｗ，ｙ＋ｗ），ｖ（ｘ＋ｗ，ｙ＋ｗ））を
ｕ（ｘ＋ｗ，ｙ＋ｗ）＝（（（ｐ・ｗｄ−（ｘ−ｉ）・ｗｄ−ｗｎ）ｕＬ（ｙ＋ｗ）＋（（ｘ−ｉ）・ｗｄ＋ｗｎ）ｕＲ（ｙ＋ｗ））ｍ）//（ｐ・ｚ・ｗｄ）
ｖ（ｘ＋ｗ，ｙ＋ｗ）＝（（（ｐ・ｗｄ−（ｘ−ｉ）・ｗｄ−ｗｎ）ｖＬ（ｙ＋ｗ）＋（（ｘ−ｉ）・ｗｄ＋ｗｎ）ｖＲ（ｙ＋ｗ））ｍ）//（ｐ・ｚ・ｗｄ）
を計算することによって（ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）求める処理を行うことを特徴とする請求項２２に記載の画像復号化装置。
【請求項２４】
ｒを上記フレーム間予測画像の水平方向の画素数、ｓを上記フレーム間予測画像の垂直方向の画素数として（ただし、ｒとｓは正の整数）、上記ｐの絶対値を１／２倍した値は上記ｒより小さく、かつ上記ｐの絶対値は上記ｒ以上で、かつ上記ｑの絶対値を１／２倍した値は上記ｓより小さく、かつ上記ｑの絶対値は上記ｓ以上であることを特徴とする請求項22又は23の何れかに記載の画像復号化装置。
【請求項２５】
上記フレーム間予測画像の水平方向と垂直方向の画素数がそれぞれｒとｓであり（ただし、ｒとｓは正の整数）、かつ上記フレーム間予測画像の画素が水平座標が０以上、上記ｒ未満、垂直座標が０以上、上記ｓ未満の範囲に存在しているときに、座標（−ｃ，−ｃ）、（ｒ−ｃ，−ｃ）、（−ｃ，ｓ−ｃ）、（ｒ−ｃ，ｓ−ｃ）に位置する上記フレーム間予測画像の隅の点上に存在し（ただし、ｃ＝ｃｎ／ｃｄ、かつｃｎは負ではない整数、かつｃｄは正の整数、かつｃｎ＜ｃｄ）、水平・垂直成分が１／ｎの整数倍の値をとる動きベクトル（ただし、ｎは正の整数）をｎ倍したものである（ｕ00，ｖ00）、（ｕ01，ｖ01）、（ｕ02，ｖ02）、（ｕ03，ｖ03）（ただし、ｕ00、ｖ00、ｕ01、ｖ01、ｕ02、ｖ02、ｕ03、ｖ03は整数）を用いて、
ｕ'（ｘ，ｙ）＝（（（ｓ・ｃｄ−ｃｎ−ｙ・ｃｄ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｕ00＋（ｘ・ｃｄ＋ｃｎ）ｕ01＋（ｙ・ｃｄ＋ｃｎ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｕ02＋（ｘ・ｃｄ−ｃｎ）ｕ03））ｋ）///（ｒ・ｓ・ｎ・ｃｄ２），
ｖ'（ｘ，ｙ）＝（（（ｓ・ｃｄ−ｃｎ−ｙ・ｃｄ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｖ00＋（ｘ・ｃｄ＋ｃｎ）ｖ01）＋（ｙ・ｃｄ＋ｃｎ）（（ｒ・ｃｄ−ｃｎ−ｘ・ｃｄ）ｖ02＋（ｘ・ｃｄ＋ｃｎ）ｖ03））ｋ）///（ｒ・ｓ・ｎ・ｃｄ２），
ｕ０＝ｕ'（ｉ，ｊ），
ｖ０＝ｖ'（ｉ，ｊ），
ｕ１＝ｕ'（ｉ＋ｐ，ｊ），
ｖ１＝ｖ'（ｉ＋ｐ，ｊ），
ｕ２＝ｕ'（ｉ，ｊ＋ｑ），
ｖ２＝ｖ'（ｉ，ｊ＋ｑ），
ｕ３＝ｕ'（ｉ＋ｐ，ｊ＋ｑ），
ｖ３＝ｖ'（ｉ＋ｐ，ｊ＋ｑ），
で表される（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を（ただし、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等）、上記代表点（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）の動きベクトルの水平・垂直成分をｋ倍したものとして使用することを特徴とする請求項２２ないし２４の何れかに記載の画像復号化装置。
【請求項２６】
上記動きベクトルの情報は、上記フレーム間予測画像の隅の点の動きベクトルの情報を含むことを特徴とする請求項２２に記載の画像復号化装置。
【発明の詳細な説明】
技術分野
本発明は、画像符号化及び復号化方法及び装置、さらに詳しく言えば、動画像を含む画像信号の符号化、復号化の処理において、代表点の動きベクトルに対して内・外挿処理を行うことにより画像内の画素の動きベクトルを計算するフレーム間予測画像の合成処理を含む画像符号化及び復号化方法及び装置に関するものである。
発明の背景
動画像の高能率符号化において、異なる時間に発生したフレーム間の類似性を活用するフレーム間予測（動き補償）は情報圧縮に大きな効果を示すことが知られている。現在の画像符号化技術の主流となっている動き補償方式は、動画像符号化方式の国際標準であるＨ．２６１、ＭＰＥＧ１、ＭＰＥＧ２に採用されているブロックマッチング方式である。この方式では、符号化しようとする画像を多数のブロックに分割し、ブロックごとにその動きベクトルを求める。
ブロックマッチングは現在最も広く利用されている動き補償方式であるが、画像全体が拡大・縮小・回転している場合には、全てのブロックに対して動きベクトルを伝送しなければならず、符号化効率が悪くなる問題がある。この問題に対し、画像全体の動きベクトル場を少ないパラメータを用いて表現するグローバル動き補償（例えば、M.Hotter,"Differential estimation of the global motion parameters zoom and pan", Signal Processing, vol. 16, no. 3, pp. 249-265, Mar. 1989）が提案されている。これは、画像内の画素（ｘ，ｙ）の動きベクトル（ｕｇ（ｘ，ｙ），ｖｇ（ｘ，ｙ））を、
0003764488.tif 000002
の形式で表し、この動きベクトルを利用して動き補償を行う方式である。ここでａ０〜ａ５、ｂ０〜ｂ７は動きパラメータである。動き補償を行う際には、送信側と受信側で同じ予測画像が得られなければならない。このために、送信側は受信側へａ０〜ａ５又はｂ０〜ｂ７の値を直接伝送しても良いが、代わりにいくつかの代表点の動きベクトルを伝送する方法もある。いま、画像の左上端、右上端、左下端、右下端の画素の座標がそれぞれ（０，０）、（ｒ，０）、（０，ｓ）、（ｒ，ｓ）で表されるとする（ただし、ｒとｓは正の整数）。このとき、代表点（０，０）、（ｒ，０）、（０，ｓ）の動きベクトルの水平・垂直成分をそれぞれ（ｕａ，ｖａ）、（ｕｂ，ｖｂ）、（ｕｃ，ｖｃ）とすると、式（１）は
0003764488.tif 000003
となる。このことはａ０〜ａ５を伝送する代わりにｕａ、ｖａ、ｕｂ、ｖｂ、ｕｃ、ｖｃを伝送しても同様の機能が実現できることを意味する。これと同じように、４個の代表点（０，０）、（ｒ，０）、（０，ｓ）、（ｒ，ｓ）の動きベクトルの水平・垂直成分（ｕａ，ｖａ）、（ｕｂ，ｖｂ）、（ｕｃ，ｖｃ）、（ｕｄ，ｖｄ）を用いて式（２）は、
0003764488.tif 000004
と書き換えることができる。従って、ｂ０〜ｂ７を伝送する代わりにｕａ、ｖａ、ｕｂ、ｖｂ、ｕｃ、ｖｃ、ｕｄ、ｖｄを伝送しても同様の機能が実現できる。この様子を第１図に示す。現フレームの原画像１０２と参照画像１０１の間でグローバル動き補償が行われたとして、動きパラメータの代わりに代表点１０３、１０４、１０５、１０６の動きベクトル１０７、１０８、１０９、１１０（このとき、動きベクトルは現フレームの原画像の点を出発点として、参照画像内の対応する点を終点とするものとして定義する）を伝送しても良い。本明細書では式（１）を用いる方式を線形内・外挿に基づくグローバル動き補償、式（２）を用いる方式を共１次内・外挿に基づくグローバル動き補償とよぶ。
このグローバル動き補償の処理を、画像内のより小さい領域に適用するのがワーピング予測である。第２図に共一次内・外挿を用いるワーピング予測の例を示す。この図は、参照画像２０１を用いて現フレームの原画像２０２の予測画像を合成する処理を示したものである。まず現フレームは複数の多角形のパッチに分割され、パッチ分割された画像２０９となる。パッチの頂点は格子点とよばれ、各格子点は複数のパッチに共有される。例えば、パッチ２１０は、格子点２１１、２１２、２１３、２１４から構成され、これらの格子点は他のパッチの頂点を兼ねている。このように画像を複数のパッチに分割した後に、動き推定が行なわれる。ここに示す例では、動き推定は各格子点を対象として参照画像との間で行なわれる。この結果、動き推定後の参照画像２０３で各パッチは変形されたものとなる。例えば、パッチ２１０は、変形されたパッチ２０４に対応している。これは、動き推定の結果、格子点２０５、２０６、２０７、２０８がそれぞれ２１１、２１２、２１３、２１４に対応していると推定されたためである。このようにして格子点の動きベクトルを求め、共１次内挿によってパッチ内の各画素の動きベクトルを計算することにより、フレーム間予測画像が合成される。このワーピング予測の処理は基本的に第１図に示したグローバル動き補償と同じ処理であり、「画像の隅の点の動きベクトル」が「格子点の動きベクトル」に変えられているだけである。また、長方形の代わりに３角形のパッチを使用すれば、線形内・外挿によるワーピング予測も実現することができる。
なお、画像全体の動きベクトル場を少ないパラメータを用いて表現するグローバル動き補償の処理を簡易にした符号化及び復号方法に関して本願出願人による発明「画像符号化方法および復号化方法」（特願平８-６０５７２号）及び「フレーム間予測画像の合成方法」（特願平８-２４９６０１号）がある。
上述のグローバル動き補償やワーピング予測を導入することにより、画像の動きを少ないパラメータを用いて正確に表現することが可能となり、より高い情報圧縮率が実現できる。しかし、その一方で符号化及び復号化における処理量は従来の方式と比較して増加する。特に式（３）及び式（４）の除算は、処理を複雑にする大きな要因となってしまう。すなわち、グローバル動き補償やワーピング予測では、予測画像の合成のための処理量が多くなる問題が発生する。
発明の開示
発明の目的は、これらの動き補償方式における除算の処理をビット数の少ないレジスタを用いた２進数のシフト演算に置き換えることにより、演算量を減少させることにある。
上記目的を達成するため、本発明は、グローバル動き補償やワーピング予測によってフレーム間予測画像の合成処理を行う画像符号化及び復号化において、空間的な間隔が特徴を持つ複数の代表点の動きベクトルに対し、２段階の内・外挿入処理を行うことにより動きベクトルを求める。さらに詳しく言えば、フレーム間予測画像の合成処理において、
画素のサンプリング間隔を水平、垂直方向共に１として、サンプリング点が座標の水平、垂直成分が、共に整数にｗを加えた数である点の上に存在している画像を対象として（ただし、ｗ＝ｗｎ／ｗｄ、かつｗｎは負ではない整数、かつｗｄは２のｈｗ乗、かつｈｗは負ではない整数、かつｗｎ＜ｗｄ）、４個の代表点における動きベクトルに対し、共１次内・外挿を行うことによって画素の動きベクトルを計算する場合に、座標（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）に（ｉ、ｊ、ｐ、ｑは整数）に代表点が存在し、かつ代表点の動きベクトルの水平・垂直成分が１／ｋの整数倍の値をとり（ただし、ｋは２のｈｋ乗、かつｈｋは負ではない整数）、かつ座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルを求めるときに、座標（ｉ，ｊ）と（ｉ，ｊ＋ｑ）［又は（ｉ＋ｐ，ｊ）］に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ，ｙ＋ｗ）［又は（ｘ＋ｗ，ｊ）］に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として（ただし、ｚは２のｈｚ乗、かつｈｚは負ではない整数）求め、さらに座標（ｉ＋ｐ，ｊ）［又は（ｉ，ｊ＋ｑ）］と（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標（ｉ＋ｐ，ｙ＋ｗ）［又は（ｘ＋ｗ，ｊ＋ｑ）］に位置する点の動きベクトルの水平・垂直成分をそれぞれ１／ｚの整数倍をとる数値として求めた後に、（ｉ，ｙ＋ｗ）［又は（ｘ＋ｗ，ｊ）］と（ｉ＋ｐ，ｙ＋ｗ）［又は（ｘ＋ｗ，ｊ＋ｐ）］に位置する上記２個の動きベクトルに対して線形内・外挿を行うことにより、座標（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をそれぞれ１／ｍの整数倍をとる数値として（ただし、ｍは２のｈｍ乗、かつｈｍは負ではない整数）求める。
本発明は、代表点の座標を巧みに選択することによって除算処理をシフト演算で実現できるようにし、さらにシフト演算においてシフトされるビット数を少なくすることにより、ビット数の少ないレジスタによって上記動き補償方式の演算が実現できる。
【図面の簡単な説明】
第１図は、代表点の動きベクトルを伝送するグローバル動き補償の例を示した図である。
第２図は、ワーピング予測の処理例を示した図である。
第３図は、高速な処理を行うための代表点の配置の例を示した図である。
第４図は、本発明のソフトウェア画像符号化装置の構成例を示した図である。
第５図は、本発明のソフトウェア画像復号化装置の構成例を示した図である。
第６図は、本発明による画像符号化装置の構成例を示した図である。
第７図は、本発明による画像復号化装置の構成例を示した図である。
第８図は、第６図の動き補償処理部616の構成例を示した図である。
第９図は、第６図の動き補償処理部616の他の構成例を示した図である。
第１０図は、第７図の予測画像合成部７１１の構成例を示した図である。
第１１図は、第９図の予測画像合成部１１０３の構成例を示した図である。
第１２図は、グローバル動き補償予測画像合成部の構成例を示した図である。
第１３図は、ソフトウェア画像符号化装置における処理のフローチャートの例を示した図である。
第１４図は、ソフトウェア画像符号化装置における動き補償処理のフローチャートの例を示した図である。
第１５図は、ソフトウェア画像復号化装置における処理のフローチャートの例を示した図である。
第１６図は、ソフトウェア画像復号化装置における予測画像合成処理のフローチャートの例を示した図である
第１７図は、２段階の処理によりグローバル動き補償予測画像を合成する画像符号化・復号化を使用する装置の具体例を示した図である。
発明を実施するための最良の形態
本発明の理解を容易にするため、グローバル動き補償及びワーピング予測における演算の高速化方法に関する本出願人が先に出願した発明（特願平08-060572及び特願平08-249601）を説明する。また、以下では本発明をグローバル動き補償に適用した場合に関して説明するが、本発明はグローバル動き補償と同様の処理を行うワーピング予測にも応用することが可能である。
以下の説明では、画素のサンプリング間隔が水平・垂直方向共に１であるとして、座標の水平・垂直成分が共に整数にｗを加えた値である点（ただし、ｗ＝ｗｎ／ｗｄ、かつｗｎは負ではない整数、かつｗｄは正の整数、かつｗｎ＜ｗｄ）に画素が存在しているとする。ｗはグローバル動き補償における代表点の座標と画素の座標の位相のずれを表しており、典型的な値としては０、1/2、1/4などが挙げられる。また、画像の水平方向と垂直方向の画素数はそれぞれｒとｓであり（ただし、ｒとｓは正の整数）、かつ画像の画素は水平座標が０以上ｒ未満、垂直座標が０以上ｓ未満の範囲に存在しているとする。
線形内・外挿（アフィン変換）又は共１次内・外挿（共１次変換）を用いた動き補償を行う際には、画素ごとの動きベクトルに対して量子化を行うと、ミスマッチの防止や演算の簡略化などの効果を得ることができる（特願平06-193970）。以下では、画素の動きベクトルの水平成分と垂直成分が１／ｍ（ｍは正の整数）の整数倍であるとする。また、「従来の技術」で説明した代表点の動きベクトルを用いるグローバル動き補償を行うと仮定し、各代表点の動きベクトルは１／ｋ（ｋは正の整数）の整数倍であるとする。なお、本明細書では、「画素の動きベクトル」はグローバル動き補償を行う際に、実際に予測画像を合成するために用いる動きベクトルのことを指す。一方、「代表点の動きベクトル」は画素の動きベクトルを計算するために用いるパラメータを意味している。従って、量子化ステップサイズの違いなどが原因で、同じ座標上に存在していても画素の動きベクトルと代表点の動きベクトルが一致しない場合も起こり得る。
まず、共１次内・外挿を用いるグローバル動き補償について第３図を用いて説明する。この例では、第１図に示したように、代表点を画像３０１の隅に位置する点とはせず、（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）に位置する点３０２、３０３、３０４、３０５として一般化している（ｉ、ｊ、ｐ、ｑは整数）。このとき、点３０２、３０３、３０４、３０５は画像の内部に存在していても外部に存在していても良い。代表点の動きベクトルの水平・垂直成分をｋ倍したものをそれぞれ（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）とすると（ｕ０、ｖ０、ｕ１、ｖ１、ｕ２、ｖ２、ｕ３、ｖ３は整数）、（ｘ＋ｗ、ｙ＋ｗ）に位置する画素の動きベクトルの水平・垂直成分をｍ倍したもの（ｕ（ｘ＋ｗ，ｙ＋ｗ），ｖ（ｘ＋ｗ，ｙ＋ｗ））は、ｗ＝０のときは以下の式で表すことができる（ただし、ｘ、ｙ、ｕ（ｘ，ｙ）、ｖ（ｘ，ｙ）は整数）。
0003764488.tif 000005
ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である。演算誤差を小さくするためには、非整数値は最も近い整数に丸め込まれることが望ましい。このとき整数に１／２を加えた値の丸め込み方法は、
（１）０に近づける方向に丸め込む、
（２）０から遠ざける方向に丸め込む、
（３）被除数が負の場合は０に近づける方向、正の場合は０から遠ざける方向に丸め込む（除数は常に正であるとする）、
（４）被除数が負の場合は０から遠ざける方向、正の場合は０に近づける方向に丸め込む（除数は常に正であるとする）、
などが考えられる。これらの中で（３）と（４）は、被除数の正負に関わらず丸め込みの方向が変化しないため、正負判定が必要ない分だけ処理量の点で有利である。（３）を用いた高速処理は、例えば以下の式によって実現することができる。
0003764488.tif 000006
ただし、「＃」は小数点以下を０の方向に切り捨てる整数の除算であり、演算の優先順位は乗除算と同じであるとする。これは、一般に計算機では最も実現しやすい形式の除算である。ここで、ＬとＭは除算の被除数を常に正に保つための数で、十分に大きな正の整数である。また、（ｐｑｋ＃２）の項は、除算結果を最も近い整数に丸め込むために用いられる。
処理を整数化することはそれ自体処理量の低減に貢献するが、ここでｐ、ｑ、ｋをそれぞれ２のα、β、ｈｋ乗（α、β、ｈｋは負ではない整数）とすると、数５の除算はα＋β＋ｈｋビットのシフト演算で実現できるため、計算機や専用ハードウェアにおける処理量を大きく減らすことができる。さらにｍを２のｈｍ乗とすれば（ｈｍは負ではない整数、ｈｍ＜α＋β＋ｈｋ）、式（６）は、
0003764488.tif 000007
と書き換えることができ（「ｘ<<α」はｘをαビット左にシフトして下位αビットに０を入れる、「ｘ>>α」はｘをαビット右にシフトして上位αビットに０を入れることを意味し、これらの演算子の優先順位は加減算と乗除算の中間であるとする）、シフトされるビット数をα＋β＋ｈｋ−ｈｍとすることができる。
ｗが０ではないときには、ｗ＝ｗｎ／ｗｄの定義にしたがい、式（５）は以下のように書き換えることができる。
0003764488.tif 000008
このとき、Ｗｄが２のｈｗ乗であり、かつｈｗは負ではない整数であるとすれば、（ｐ・ｑ・ｋ・ｗｄ・ｗｄ）による除算はα＋β＋ｈｋ＋２ｈｗビットのシフト演算となり、ｗ＝０の場合と同様に除算をシフト演算に置換することが可能となる。また、式（７）の場合と同様に、ｈｍ＜α＋β＋ｈｋ＋２ｈｗであれば、分母、分子の両方をｍで割ることによってシフトされるビット数をα＋β＋ｈｋ＋２ｈｗ−ｈｍビットに減らすことが可能となる。このように、ｗｄが２のｈｗ乗であれば、ｗ＝０の場合の処理とｗ≠０の場合の処理は本質的に同じである。以下本明細書では、数式が多少複雑となるが、ｗ≠０の場合について検討を行う。ｗ＝０の場合の計算結果を求めるためには、ｗｎ＝０、ｗｄ＝１、ｈｗ＝０を代入すれば良い。
送信側と受信側で同じグローバル動き補償予測画像を得るためには、代表点の動きベクトルに関する情報を何らかの形で受信側に伝える必要がある。代表点の動きベクトルそのまま伝送する方法もあるが、画像の隅の点の動きベクトルを伝送し、この値から代表点の動きベクトルを計算する方法もある。この方法に関し、以下に説明する。
画像の隅の４個の点（−ｃ，−ｃ）、（ｒ−ｃ，−ｃ）、（−ｃ，ｓ−ｃ）、（ｒ−ｃ，ｓ−ｃ）の動きベクトルが１／ｎ整数倍の値のみとれるとして（ｎは正の整数、ｃ＝ｃｎ／ｃｄ、かつｃｎは負ではない整数、かつｃｄは正の整数、かつｃｎ＜ｃｄ）、これらの水平・垂直成分をｎ倍した（ｕ00、ｖ00）、（ｕ01，ｖ01）、（ｕ02，ｖ02）、（ｕ03，ｖ03）がグローバル動きパラメータとして伝送されるとする。ｃは画像の隅の点と代表点の間の位相のずれを表している。このｃの典型的な値としては０、1/2、1/4などが挙げられる。このとき、点（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）それぞれの動きベクトルの水平・垂直成分をｋ倍したものである（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を、
0003764488.tif 000009
と定義する。ただし、ｕ’（ｘ，ｙ）、ｖ’（ｘ，ｙ）は、式（５）を変形して、
0003764488.tif 000010
と定義する。このとき、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である。こうして（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）を計算し、（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）を代表点とするグローバル動き補償を行えば、（−ｃ，−ｃ）、（ｒ−ｃ，−ｃ）、（−ｃ，ｓ−ｃ）、（ｒ−ｃ，ｓ−ｃ）を代表点とするグローバル動き補償を近似することができる。このときに、上で述べたようにｐとｑを２の負ではない整数乗とすれば、処理を簡略化することが可能となる。一般的に、式（５）に示したような計算によって画像内の画素の動きベクトルを求めるときには、外挿の処理を行わないようにすることが望ましい。これは、外挿処理によって代表点の動きベクトルの量子化誤差を増幅しないようにするためである。以上の理由から、代表点は画像内の画素をすべて囲むような形に配置することが望ましい。従って、ｉ＝ｊ＝ｃ＝０の場合などはｐとｑはｒとｓとほぼ同じか、やや大きめの値をとするのが適当である。しかし、ｐとｑの値をあまり大きくし過ぎると演算に必要なビット数が増加してしまうので注意が必要である。
式（９）、式（１０）の処理において演算誤差を小さくするためには、「///」は非整数値を最も近い整数に丸め込むことが望ましい。このとき整数に１／２を加えた値の丸め込み方法としては、上で述べた（１）〜（４）の方法が考えられる。ただし、式（５）（画素ごとに計算）の場合と比較して、式（１４）（１枚の画像で４回のみ計算）は演算が実行される回数が少ないため、式（１）又は（２）の方法を選んだとしても全体の演算量に大きな影響は与えない。
上述の例のように、ｐとｑの値が２の負ではない整数乗となるようにすれば、グローバル動き補償におけるフレーム間予測画像の合成処理は大幅に簡略化することができる。しかし、ここでもう１つの問題が発生する。例えば、画像符号化における典型的なパラメータとしてｐ＝５１２、ｑ＝５１２、ｋ＝３２、ｍ＝１６、ｗｄ＝２、ｗｎ＝１（ｗ＝0.5）である場合を考えると、α＋β＋ｈｋ＋２ｈｗ−ｈｍ＝２１となる。このことは、ｕ（ｘ＋ｗ，ｙ＋ｗ）が２進数で１２ビット以上を必要とする値である場合には、式（８の演算を高速に実行するために３３ビット以上のレジスタが必要になることを意味している。ｍ＝１６である場合などには、ｕ（ｘ＋ｗ，ｙ＋ｗ）は実際の動きベクトルの水平成分に１６を掛けた値となるため、これが２進数で１２ビット以上必要な値となるケースは十分にあり得る。しかし、その一方で３３ビット以上の整数を格納できるレジスタを持つプロセッサは現時点では少なく、かつ将来的にも高価となることが予想される。また、一般的にプロセッサの回路規模が大きくなれば、その分だけ消費電力も多くなるため、大きなレジスタを要求するアルゴリズムは消費電力の観点からも不利となる。従って、除算をシフト演算に置換できた場合でも、シフトされるビット数はできるだけ少ないことが望ましい。
この問題を解決するため本発明では、以下に説明する２段階の処理によるアルゴリズムをとる。（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）に位置する代表点の動きベクトルを用いて（ｘ＋ｗ、ｙ＋ｗ）に位置する画素の動きベクトルを計算する前に、まず（ｉ，ｙ＋ｗ）と（ｉ＋ｐ，ｙ＋ｗ）に存在する仮代表点の動きベクトルを、水平・垂直成分が１／ｚの整数倍（ｚは正の整数）となるように求める。上の例と同様に代表点（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）、（ｉ＋ｐ，ｊ＋ｑ）の動きベクトルの水平・垂直成分をｋ倍したものをそれぞれ（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）、（ｕ３，ｖ３）とする（ｕ０、ｖ０、ｕ１、ｖ１、ｕ２、ｖ２、ｕ３、ｖ３は整数）。このとき、（ｉ，ｙ＋ｗ）と（ｉ＋ｐ，ｙ＋ｗ）に仮代表点を配置し、これらの仮代表点の動きベクトルの水平・垂直成分をｚ倍したものである（ｕＬ（ｙ＋ｗ），ｖＬ（ｙ＋ｗ））と（ｕＲ（ｙ＋ｗ），ｖＲ（ｙ＋ｗ））を、以下のように定義する。
0003764488.tif 000011
このとき、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である（この「////」には、上で説明した「///」と同様の機能が要求される）。（ｉ，ｙ＋ｗ）は（ｉ，ｊ）と（ｉ，ｊ＋ｑ）を結んだ線上に存在しているため（ｕＬ（ｙ＋ｗ），ｖＬ（ｙ＋ｗ））は、（ｕ０，ｖ０）と（ｕ２，ｖ２）を用いた１次元の線形内・外挿で容易に求めることができる。また、同様に（ｉ＋ｐ，ｙ＋ｗ）は（ｉ＋ｐ，ｊ）と（ｉ＋ｐ，ｊ＋ｑ）を結んだ線上に存在しているため、同じように１次元の線形内・外挿で求めることができる。
このようにして求めた仮代表点の動きベクトル（ｕＬ（ｙ＋ｗ），ｖＬ（ｙ＋ｗ））と（ｕＲ（ｙ＋ｗ），ｖＲ（ｙ＋ｗ））に対して１次元の線形内・外挿を行うことにより、（ｘ＋ｗ、ｙ＋ｗ）に存在する画素の動きベクトルの水平・垂直成分をｍ倍したものである（ｕ（ｘ＋ｗ、ｙ＋ｗ），ｖ（ｘ＋ｗ、ｙ＋ｗ））を求める。この処理は、以下の式（１２）に従って行われる。
0003764488.tif 000012
ここでも上と同様にｐを２のα乗、ｍを２のｈｍ乗、ｚを２のｈｚ乗、ｗｄを２のｈｗ乗（α、ｈｍ、ｈｚ、ｗｄは負ではない整数）とすれば、式（１２におけるｐ・ｚ・ｗｄによる除算は、α＋ｈｚ＋ｈｗ−ｈｍビットの右シフト（ただし、ｈｍ＜α＋ｈｚ＋ｈｗの場合）に置換することができる。しかも、ｚ＝１６（ｈｚ＝４）とした上で、上で述べた典型的なパラメータｐ＝５１２、ｑ＝５１２、ｋ＝３２、ｍ＝１６、ｗｄ＝２、ｗｎ＝１（ｗ＝0.5）を使用した場合、シフトされるビット数は１０ビットとなり、演算に用いるレジスタに必要なビット数を大幅に抑えることが可能となる。なお、上の例では、まず代表点の動きベクトルに対して垂直方向の１次元線形内・外挿を行って仮代表点の動きベクトルを求め、この仮代表点の動きベクトルに対して水平方向の１次元線形内・外挿を行って画素の動きベクトルを求めている。これとは逆に、仮代表点の動きベクトルを求める際には水平方向、画素の動きベクトルを求める際には垂直方向の１次元線形内・外挿を行っても同様の機能を実現することができる。
この方式では、画素の動きベクトルを求める際に式（１１）と式（１２）の２段階の処理が必要となるため、一見演算量が多くなるように思われる。しかし、一旦仮代表点の動きベクトルを求めてしまえば、これが垂直座標ｙ＋ｗに存在しているライン上のｒ個の画素すべてに対して使用できるため、全体の処理量の中に占める式（１１）の処理量はきわめて少なくなる。従って、シフトされるビット数の削減によって得られる利益（＝より小さいレジスタの活用）の影響の方が、式（１１）の計算を実行する分の演算量の増加による悪影響より大きくなる。
上記処理により（ｕ（ｘ＋ｗ、ｙ＋ｗ），ｖ（ｘ＋ｗ、ｙ＋ｗ））の値が得られた後には、以下の処理によって（ｕ（ｘ＋ｗ、ｙ＋ｗ），ｖ（ｘ＋ｗ、ｙ＋ｗ））を整数部（ｕＩ（ｘ＋ｗ、ｙ＋ｗ）、ｖＩ（ｘ＋ｗ、ｙ＋ｗ））と小数部（ｕＦ（ｘ＋ｗ、ｙ＋ｗ），ｖＦ（ｘ＋ｗ、ｙ＋ｗ））に分けることができる。
0003764488.tif 000013
ただし、ｕＩ（ｘ＋ｗ、ｙ＋ｗ）とｖＩ（ｘ＋ｗ、ｙ＋ｗ）は整数であり、画素の動きベクトルの整数部を表している。一方、ｕＦ（ｘ＋ｗ、ｙ＋ｗ）とｖＦ（ｘ＋ｗ、ｙ＋ｗ）はそれぞれ０以上ｍ未満の値を持つ整数であり、画素の動きベクトルの小数部をｍ倍したものである。なお、上の例と同様にｍは２のｈｍ乗であり（ｈｍは負ではない整数）、ＬとＭはシフトされる値を負の値ではなくするための十分に大きな整数である。
輝度値の内挿方式として共１次内挿が用いられる場合には、さらに以下の処理によってフレーム間予測画像内の画素の輝度値が求められる。ｘ’＝ｘ＋ｗ＋ｕＩ（ｘ＋ｗ、ｙ＋ｗ）、ｙ’＝ｙ＋ｗ＋ｖＩ（ｘ＋ｗ、ｙ＋ｗ）として、参照画像の（ｘ’，ｙ’）、（ｘ’＋１，ｙ’）、（ｘ’，ｙ’＋１）、（ｘ’＋１，ｙ’＋１）に位置する画素の輝度値をそれぞれＹａ、Ｙｂ、Ｙｃ、Ｙｄとすれば、フレーム間予測画像において（ｘ＋ｗ，ｙ＋ｗ）に位置する画素の輝度値Ｙ（ｘ＋ｗ、ｙ＋ｗ）は、
0003764488.tif 000014
によって求められる。ただし、ｕＦ、ｖＦはそれぞれｕＦ（ｘ＋ｗ，ｙ＋ｗ）、ｖＦ（ｘ＋ｗ，ｙ＋ｗ）の略号である。
式（１２）と式（１３）では、それぞれα＋ｈｚ＋ｈｗ−ｈｍビットとｈｍビットの右シフトが行われる。このことは、式（１０）の計算の際に（α＋ｈｚ＋ｈｗ−ｈｍ）＋ｈｍ＝α＋ｈｚ＋ｈｗビットのシフトを行えば一気にｕＩ（ｘ＋ｗ、ｙ＋ｗ）とｖＩ（ｘ＋ｗ、ｙ＋ｗ）を求めることができることを意味する。このとき、α＋ｈｚ＋ｈｗを８の整数倍とすると、実装上便利である。一般的にプロセッサのレジスタは８ビット単位の大きさを持っており、８ビットのレジスタを２個（上位ビットのレジスタと下位ビットのレジスタ）つなげて１６ビットのレジスタとして使用したり、８ビットのレジスタを４個、又は１６ビットのレジスタを２個つなげて３２ビットのレジスタとして使用することができるようになっている場合が多い。ここで例えば１６ビットのシフト演算によってｕＩ（ｘ＋ｗ、ｙ＋ｗ）とｖＩ（ｘ＋ｗ、ｙ＋ｗ）の値が計算されるのであれば、わざわざシフト演算を行う必要はなくなる。つまり、シフトされる前の値を３２ビットのレジスタに格納しておき、その上位１６ビットを独立したレジスタとして使用すれば、その１６ビットレジスタにｕＩ（ｘ＋ｗ、ｙ＋ｗ）又はｖＩ（ｘ＋ｗ、ｙ＋ｗ）の値が格納されていることになる。
もちろん、シフトされるビット数を８の整数倍とすることは、式（１０）の処理だけでなく本明細書でこれまで述べてきたあらゆるシフト演算に対し、実装を容易にする効果を持つ。しかし、特に実行される回数の多いシフト演算（例えば画素ごとに実行されるシフト演算）に対して実装を容易にすることは重要である。また、シフトされるビット数が８の整数倍ではない場合でも、分母と分子に事前に同じビット数だけの左シフトを加えておくことにより、除算による右シフトを増やすことは可能である。例えば、６ビットの右シフトによって実現される演算があった場合に、シフトされる数値にあらかじめ４を掛けておく（これは２ビットの左シフトを行ったことに相当する）ことにより、同じ演算を８ビットの右シフトとして実現することが可能となる式（５のｕ（ｘ＋ｗ，ｙ＋ｗ）に関する式を例にとれば、あらかじめｕ０、ｕ１、ｕ２、ｕ３を４倍しておくことにより、この処理を実現することが可能となる）。ただし、このような処理を行う際には、シフトされる数に関してオーバーフローが発生しないように注意する必要がある。
画像符号化装置及び画像復号化装置には、複数の画像サイズに対応できるようになっているものが多い。この場合、例えば式（１２、１３、１４を用いたグローバル動き補償を実行したときには、画像サイズの変化に応じてシフトされるビット数が変化する現象が起こり、シフトされるビット数を８の整数倍に固定しておくことができなくなる。このような場合、次に述べるような対処法がある。例えば、上の例のようにｕＩ（ｘ＋ｗ、ｙ＋ｗ）とｖＩ（ｘ＋ｗ、ｙ＋ｗ）を求めるためにα＋ｈｚ＋ｈｗビットの右シフトが必要であり、αが７〜１１の値をとり得る場合を考える。このとき、αが１０より小さいときはｈｚ＝５、ｈｗ＝１、α＝１１のときはｈｚ＝４、ｈｗ＝１とすれば、シフトされるビット数を常に１６以下とすることができる。上で述べたように、シフトされるビット数が１６より小さい場合には、あらかじめシフトされる数に定数を掛けておくことにより、シフトされるビット数を擬似的に１６ビットとすることが可能である。このように、画像サイズが変化したときに他のパラメータ（例えば動きベクトルの量子化ステップサイズ）もこれに合わせて変化させることにより、シフトされるビット数が都合の良い値となるように制御することができる。しかし、上記の方法を使う場合には、復号画像の画質に著しい劣化を生じさせるほど、動きベクトルの量子化ステップサイズを大きくしてしまわないように注意する必要がある。
一般的なグローバル動き補償に本明細書で示したアルゴリズムを適用した場合には、まず１／ｎ画素精度の画像の隅の点の動きベクトルを用いて代表点の動きベクトルを１／ｋ画素精度で求め、続いて代表点の動きベクトルを用いて仮代表点の動きベクトルを１／ｚ画素精度で求めた後に、この仮代表点の動きベクトルを用いて画素の動きベクトルが１／ｍ画素精度で求められる。画像の隅の点の動きベクトルが動きパラメータとして伝送される場合には、このパラメータによる共１次内・外挿を正確に近似するという意味で、ｋをできるだけ大きな値にすることが望ましい。しかし、いずれにせよ代表点の動きベクトルの水平・垂直成分には、量子化の影響で１／（２ｋ）以下の絶対値をもつ誤差が含まれることになる。近似を正確にするという意味からは、仮代表点の動きベクトルも、なるべく精度を高くすることが望ましい。しかし、仮代表点の動きベクトルは代表点の動きベクトルを用いて求められるため、代表点の動きベクトル以上の精度を持たせて計算してもあまり意味がない。従って、演算に必要なビット数を抑える意味でｚ≦ｋとすることが望ましい。また、同様の理由により、ｍ≦ｚとすることが望ましい。
これまで共一次内・外挿を用いたグローバル動き補償に関して説明してきたが、線形内・外挿を用いた場合も同様の処理を導入することによって、シフトされるビット数を制御することができる。例えば、（ｉ，ｊ）、（ｉ＋ｐ，ｊ）、（ｉ，ｊ＋ｑ）に存在する（ｉ、ｊ、ｐ、ｑは整数）代表点の動きベクトルの水平・垂直成分をｋ倍したものをそれぞれ（ｕ０，ｖ０）、（ｕ１，ｖ１）、（ｕ２，ｖ２）とする（ｕ０、ｖ０、ｕ１、ｖ１、ｕ２、ｖ２は整数）。このとき、画素（ｘ＋ｗ，ｙ＋ｗ）の動きベクトルの水平・垂直成分をｍ倍したもの（ｕ（ｘ＋ｗ，ｙ＋ｗ），ｖ（ｘ＋ｗ，ｙ＋ｗ））は以下の式（１６）で表すことができる（ただし、ｘ、ｙ、ｕ（ｘ＋ｗ，ｙ＋ｗ）、ｖ（ｘ＋ｗ，ｙ＋ｗ）は整数、ｗの定義は上と同じ）。
0003764488.tif 000015
この場合もｐ、ｑ、ｋ、ｍ、ｗｄがそれぞれ２のα乗、β乗、ｈｋ乗、ｈｍ乗、ｈｗ乗であり（α、β、ｈｋ、ｈｍ、ｈｗは負ではない整数）、さらにα≧βであるとすれば、この式は
0003764488.tif 000016
と書き換えることができ、共１次内・外挿を用いた場合と同様に、α＋ｈｋ＋ｈｗビットの右シフトにより（ｘ＋ｗ，ｙ＋ｗ）に存在する画素の動きベクトルの整数部を求めることができる。従って、α＋ｈｋ＋ｈｗが８の整数倍となるようにすれば、上と同様の理由により実装を行いやすくすることができる。なお、α＜βの場合には、シフトされるビット数はβ＋ｈｋ＋ｈｗビットとなる。
以下、上記フレーム間予測画像の合成処理を採用する本発明の符号化方法及び復号化方法を実施する画像符号化装置、復号化装置の構成について述べる。
第６図は、本発明によるに画像符号化装置の一実施形態の構成を示す。同図において、動き補償処理部６１６を除いては、従来知られている画像符号化装置と実質的に同じである。
減算器６０２は入力画像（符号化しようとする現フレームの原画像）６０１とフレーム間／フレーム内符号化切り換えスイッチ６１９の出力画像６１３（フレーム間予測画像）との差を計算し、誤差画像６０３を出力する。この誤差画像は、ＤＣＴ変換器６０４でＤＣＴ係数に変換された後に量子化器６０５で量子化され、量子化ＤＣＴ係数６０６となる。この量子化ＤＣＴ係数は伝送情報として通信路に出力されると同時に、符号化器内でもフレーム間予測画像を合成するために使用される。
以下にフレーム予測画像合成の手順を説明する。量子化ＤＣＴ係数６０６は、逆量子化器６０８と逆ＤＣＴ変換器６０９を経て復号誤差画像６１０（受信側で再生される誤差画像と同じ画像）となる。これに、加算器６１１においてフレーム間／フレーム内符号化切り換えスイッチ６１９の出力画像６１３（後述）が加えられ、現フレームの復号画像６１２（受信側で再生される現フレームの復号画像と同じ画像）を得る。この画像は一旦フレームメモリ６１４に蓄えられ、１フレームの時間だけ遅延される。従って、現時点では、フレームメモリ６１４は前フレームの復号画像６１５を出力している。この前フレームの復号画像と現フレームの入力画像６０１が動き補償処理部６１６に入力される。動き補償処理部６１６は前述のフレーム間予測画像の合成を行う。その構成については後で述べる。
予測画像６１７は、「０」信号６１８と共にフレーム間／フレーム内符号化切り換えスイッチ６１９に入力される。このスイッチは、両入力のいずれかを選択することにより、フレーム間符号化とフレーム内符号化を切り換える。予測画像６１７が選択された場合（第６図はこの場合を表している）には、フレーム間符号化が行われる。一方、「０」信号が選択された場合には、入力画像がそのままＤＣＴ符号化されて通信路に出力されるため、フレーム内符号化が行われる。受信側が正しく復号化画像を得るためには、送信側でフレーム間符合化が行われたかフレーム内符号化が行われたかを知る必要がある。このため、識別フラグ６２１が通信路へ出力される。最終的なＨ．２６１符号化ビットストリーム６２３は多重化器６２２で量子化ＤＣＴ係数、動きベクトル、フレーム内／フレーム間識別フラグの情報を多重化することによって得られる。
第７図は、第６図の符号化器が出力した符号化ビットストリームを受信する復号化器７００の構成例を示す。受信したビットストリーム７１７は、分離器７１６で量子化ＤＣＴ係数７０１、動きベクトル７０２、フレーム内／フレーム間識別フラグ７０３に分離される。量子化ＤＣＴ係数７０１は逆量子化器７０４と逆ＤＣＴ変換器７０５を経て復号化された誤差画像７０６となる。この誤差画像は加算器７０７でフレーム間／フレーム内符号化切り換えスイッチ７１４の出力画像７１５を加算され、復号化画像７０８として出力される。フレーム間／フレーム内符号化切り換えスイッチはフレーム間／フレーム内符号化識別フラグ７０３に従って、出力を切り換える。フレーム間符号化を行う場合に用いる予測画像７１２は、予測画像合成部７１１において合成される。ここでは、フレームメモリ７０９に蓄えられている前フレームの復号画像７１０に対して、受信した動きベクトル７０２に従って位置を移動させる処理が行われる。一方フレーム内符号化の場合、フレーム間／フレーム内符号化切り換えスイッチは、「０」信号７１３をそのまま出力する。
第８図は、代表点の動きベクトルを伝送する線形内・外挿に基づくグローバル動き補償方式を採用した画像符号化器の動き補償処理部６１６の構成例を示す。第６図と同じ番号は同じものを指す。グローバル動き推定部８０２で前フレームの復号画像６１５と現フレームの原画像６０１との間でグローバル動き補償に関する動き推定が行われ、グローバル動き補償のパラメータ（例えば、上記ｕａ、ｖａ、ｕｂ、ｖｂ、ｕｃ、ｖｃ、ｕｄ、ｕｄの値）が推定される。これらの値に関する情報８０３は動き情報６２０の一部として伝送される。グローバル動き補償の予測画像８０４は式（３）を用いてグローバル動き補償予測画像合成部８０８で合成され、ブロックマッチング部８０５に供給される。ここでは、グローバル動き補償の予測画像と現フレームの原画像との間でブロックマッチングによる動き補償（動き推定と予測画像合成）が行われ、ブロックの動きベクトル情報８０６と最終的な予測画像６１７が得られる。この動きベクトル情報は動きパラメータ情報と多重化部８０７において多重化され、動き情報６２０として出力される。
第１０図は、第７図の予測画像合成部７１１の構成例を示す。他の図と同じ番号は同じものを指す。前フレームの復号画像７１０に対し、動き情報７０２から分割部１００２において抽出されたグローバル動き補償パラメータ８０３を用いて、グローバル動き補償予測画像合成部８０８においてグローバル動き補償の予測画像８０４が合成される。画像８０４はブロックマッチング予測画像合成部１００１に供給され、動き情報７０２から抽出されたブロックマッチングの動きベクトル情報８０６を用いて最終的な予測画像７１２が合成される。
第９図は、動き補償処理部６１６の他の構成例をに示す。第６図と同じ番号は同じものを指す。この例では、各ブロックに関してグローバル動き補償かブロックマッチングのいずれかが適用される。前フレームの復号画像６１５と現フレームの原画像６０１との間で、グローバル動き推定部９０２、グローバル動き補償予測画像合成部９１１ではグローバル動き補償、ブロックマッチング部９０５ではブロックマッチングにより、それぞれ独立に動き補償の処理が行われる。選択スイッチ９０８は、グローバル動き補償による予測画像９０３とブロックマッチングによる予測画像９０６の間でブロックごとに最適な方式を選択する。グローバル動き補償パラメータ９０４、ブロックごとの動きベクトル９０７、グローバル動き補償／ブロックマッチングの選択情報９０９は多重化部９１０で多重化され、動き情報６２０として出力される。
第11図は、動き補償処理部９０１を用いる画像符号化器が生成するビットストリームを復号化する復号化器の、予測画像合成部１１０３の構成例を示す。他の図と同じ番号は同じものを指す。前フレームの復号画像７１０に対し、動き情報７０２から分割部１１０２において抽出されたグローバル動き補償パラメータ９０４を用いて、グローバル動き補償予測画像合成部９１１においてグローバル動き補償の予測画像９０３が合成される。また、これとは独立に前フレームの復号画像７１０に対し、動き情報７０２から抽出されたブロックマッチングの動きベクトル情報９０７を用いてブロックマッチング予測画像合成部１１０１においてブロックマッチングの予測画像９０６が合成される。選択スイッチ１１０４は、グローバル動き補償による予測画像９０３とブロックマッチングによる予測画像９０６の間で、動き情報７０２から抽出された選択情報９０９に基づいて、ブロックごとに一方の方式を選択する。このブロックごとの選択処理を経て、最終的な予測画像７１２が合成される。
第12図は、上述の本発明によるグローバル動き補償予測画像合成部の機能的構成を示す。グローバル動き補償パラメータとして、画像の隅の点の動きベクトルが伝送されるとする。この画像の隅の点の動きベクトルに関する情報１２０４を用いて演算処理部１２０５において式（９）、（１０）を用いて代表点の動きベクトルが計算される。この代表点の動きベクトルに関する情報１２０６を用いて演算処理部１２０７では、式（１１）を用いてライン（垂直座標が共通の値である画素）ごとに仮代表点の動きベクトルが計算される。さらにこの仮代表点の動きベクトルに関する情報１２０８を活用して演算処理部１２０９では画素ごとの動きベクトルが式（１２）により計算される。一方、処理部１２１１では、この画素ごとの動きベクトルに関する情報１２１０と、前フレームの復号画像１２０２を用いてグローバル動き補償の予測画像１２０３が合成、出力される。
本発明は、専用回路・専用チップを用いる画像符号化装置、画像復号化装置の他に、汎用プロセッサを用いるソフトウェア画像符号化装置、ソフトウェア画像復号化装置にも適用することができる。
図４及び図５は、それぞれソフトウェア画像符号化装置４００とソフトウェア画像復号化装置５００の例を示す。ソフトウェア符号化装置４００では、入力画像４０１は、入力フレームメモリ４０２に蓄えられ、汎用プロセッサ４０３は入力フレームメモリ４０２から情報を読み込んで符号化の処理を行う。汎用プロセッサ４０３を駆動するためのプログラムはハードディスクやフロッピーディスクなどによる蓄積デバイス４０８から読み出されてプログラム用メモリ４０４に蓄えられる。また、汎用プロセッサ４０３は、処理用メモリ４０５を活用して符号化の処理を行う。汎用プロセッサ４０３が出力する符号化情報は、一旦出力バッファ４０６に蓄えられた後に符号化ビットストリーム４０７として出力される。
図１３は、図４に示したソフトウェア符号化器上で動作する符号化ソフトウェアのフローチャートを示す。まずステップ１３０１で画像符号化処理が開始され、ステップ１３０２で変数Ｎに０が代入される。続いてステップ１３０３、ステップ１３０４でＮの値が１００である場合には、０が代入される。Ｎはフレーム数のカウンタであり、１枚のフレームの処理が終了する度に１が加算され、符号化を行う際には０〜９９の値をとることが許される。Ｎの値が０であるときには符号化中のフレームはＩフレーム（動き補償は行わず、全てのブロックでフレーム内符号化が行われるフレーム）であり、それ以外のときはＰフレーム（動き補償を行うブロックの存在するフレーム）となる。Ｎの値が１００であることは、Ｐフレームが９９枚符号化された後にＩフレームが１枚符号化されることを意味している。Ｎの最適な値は符号化器の性能や符号化器が使用される環境により変化する。この例では１００という値を使用したが、これはＮの値が必ず１００でなければならいことを意味しているわけではない。フレームタイプ（Ｉ又はＰ）の決定と出力はステップ１３０５で行われる。Ｎの値が０である場合にはフレームタイプの識別情報として’Ｉ’が出力バッファに出力され、これから符号化処理を行うフレームはＩフレームとなる。なお、ここで「出力バッファに出力される」とは、出力バッファ（第４図の４０６）に蓄えられた後に符号化ビットストリームの一部として符号化装置から外部に出力される。Ｎが０ではない場合には、フレームタイプの識別情報として’Ｐ’が出力バッファに出力され、これから符号化処理を行うフレームはＰフレームとなる。ステップ１３０６では入力画像はフレームメモリＡに蓄えられる。なお、ここで述べたフレームメモリＡとは、ソフトウェア符号化器のメモリ領域（例えば、第４図のメモリ４０５内にこのメモリ領域が確保される）の一部を意味している。ステップ１３０７では、現在符号化中のフレームがＩフレームであるか否かが判定される。そして、Ｉフレームではない場合にはステップ１３０８で動き推定・動き補償処理が行われる。このステップ１３０８における処理の詳細を表すフローチャートの例を第１４図に示す。まず、ステップ１４０１でフレームメモリＡとＢ（フレームメモリＢには前フレームの復号画像が格納されている）に蓄えられた画像の間でグローバル動き推定が行われ、グローバル動きパラメータとして、画像の隅の点の動きベクトルが出力バッファに出力される。ステップ１４０２では、この画像の隅の点の動きベクトルを用いて式（９）、（１０）により代表点の動きベクトルが計算される。続いてステップ１４０３では、変数Ｍに０が代入される。Ｍは画像内のラインの番号を表し、Ｍが０であることは、画像の最も上のラインを処理中であることを意味し、Ｍが画像のライン数から１を引いた値であるときには、画像の最も下のラインを処理中であることを意味する。ステップ１４０２で計算された代表点の動きベクトルを用いて、ステップ１４０４では式（１１）により第Ｍラインの仮代表点の動きベクトルが計算される。そしてこの仮代表点の動きベクトルを活用してステップ１４０５では第Ｍラインに含まれる画素全ての動きベクトルが式（１２）により計算され、求められた動きベクトルに従って、フレームメモリＢに格納されている前フレームの復号画像を用いてグローバル動き補償予測画像の第Ｍラインが合成され、フレームメモリＦに蓄えられる。ステップ１４０６ではＭの値に１が加えられ、ステップ１４０７ではＭの値が画像のライン数に等しければステップ１４０８へ、等しく無ければステップ１４０４に移動する。ステップ１４０８の処理が開始される時点では、フレームメモリＤには、グローバル動き補償による予測画像が蓄えられている。ステップ１４０８以降では、ブロックマッチングの処理が行われる。まずステップ１４０８では、フレームメモリＦとフレームメモリＡ（入力画像）との間でブロックごとに動き推定の処理が行われ、各ブロックの動きベクトルが求められ、その動きベクトルは出力バッファに出力される。続いてこの動きベクトルと、フレームメモリＦに蓄えられた画像を用いてステップ１４０９ではブロックマッチングによる予測画像が合成され、これが最終的な予測画像となってフレームメモリＣに蓄えられる。そしてステップ１４１０ではフレームメモリＡとＣの差分画像が求められ、これがフレームメモリＡに蓄えられる。
ここで第13図に戻る。ステップ１３０８における処理が開始される直前、フレームメモリＡには、現フレームがＩフレームである場合には入力画像が、現フレームがＰフレームである場合には入力画像と予測画像の差分画像が蓄えられている。ステップ１３０８では、このフレームメモリＡに蓄えられた画像に対してＤＣＴが適用され、ここで計算されたＤＣＴ係数は量子化された後に出力バッファに出力される。さらにステップ１３１０で、この量子化ＤＣＴ係数には逆量子化され、逆ＤＣＴが適用され、この結果得られた画像はフレームメモリＢに格納される。続いてステップ１３１１では、再び現フレームがＩフレームであるか否かが判定され、Ｉフレームではない場合にはステップ１３１２でフレームメモリＢとＣの画像が加算され、この結果がフレームメモリＢに格納される。ここで、１フレーム分の符号化処理が終了することになる。そして、ステップ１３１３の処理が行われる直前にフレームメモリＢに格納されている画像は、符号化処理が終了したばかりのフレームの再生画像（復号側で得られるものと同じ）である。ステップ１３１３では、符号化が終了したフレームが最後のフレームであるか否かが判定され、最後のフレームであれば、符号化処理が終了する。最後のフレームではない場合には、ステップ１３１４でＮに１が加算され、再びステップ１３０３に戻って次のフレームの符号化処理が開始される。なお、ここで説明したフローチャートはグローバル動き補償を行なった結果合成されたグローバル動き補償予測画像に対してブロックマッチングを適用する方法（第８図の動き補償処理部８０１を使用する装置に対応する方法）に関するものであるが、グローバル動き補償とブロックマッチングを並列に行う方法（第９図の動き補償処理部９０１を使用する装置に対応する方法）に関するフローチャートもわずかの変更を加えるのみで作成できることは明らかである。
一方、ソフトウェア復号化装置５００では、入力された符号化ビットストリーム５０１は、一旦入力バッファ５０２に蓄えられた後に、汎用プロセッサ５０３に読み込まれる。汎用プロセッサ５０３はハードディスクやフロッピーディスクなどによる蓄積デバイス５０８から読み出されたプログラムを蓄えるプログラム用メモリ５０４および処理用メモリ５０５を活用して復号化処理を行う。この結果得られた復号化画像は、一旦出力フレームメモリ５０６に蓄えられた後に、出力画像５０７として出力される。
第15図は、第５図に示したソフトウェア復号化装置上で動作する復号化ソフトウェアのフローチャートを示す。１５０１で処理が開始され、まずステップ１５０２で入力情報があるか否かが判定される。ここで入力情報が無ければステップ１５０３で復号化の処理を終了する。入力情報がある場合には、まず、ステップ１５０４でフレームタイプ情報が入力される。なお、この「入力される」とは、入力バッファ５０２に蓄えられた情報を読み込むことを意味している。ステップ１５０５では、読み込んだフレームタイプ情報が’Ｉ’であるか否かが判定される。そして、’Ｉ’ではない場合には、ステップ１５０６で予測画像合成処理が行われる。このステップ１５０６で行われる処理の詳細をフローチャートを第16図に示す。
まず、ステップ１６０１で画像の隅の点の動きベクトルが入力される。ステップ１６０２では、この画像の隅の点の動きベクトルを用いて式（９）、（１０）により代表点の動きベクトルが計算される。続いてステップ１６０３では、変数Ｍに０が代入される。Ｍは画像内のラインの番号を表し、Ｍが０であることは、画像の最も上のラインを処理中であることを意味し、Ｍが画像のライン数から１を引いた値であるときには、画像の最も下のラインを処理中であることを意味する。ステップ１６０２で計算された代表点の動きベクトルを用いて、ステップ１６０４では式（１１）により第Ｍラインの仮代表点の動きベクトルが計算される。そしてこの仮代表点の動きベクトルを活用してステップ１６０５では第Ｍラインに含まれる画素すべての動きベクトルが式（１２）により計算され、求められた動きベクトルに従って、フレームメモリＥに格納されている前フレームの復号画像を用いてグローバル動き補償予測画像の第Ｍラインが合成され、フレームメモリＧに蓄えられる。なお、ここで述べたフレームメモリＧとは、ソフトウェア復号化器のメモリ５０５の領域の一部を意味している。ステップ１６０６ではＭの値に１が加えられ、ステップ１６０７ではＭの値が画像のライン数に等しければステップ１６０８へ、等しく無ければステップ１６０４に移動する。ステップ１６０８の処理が開始される時点では、フレームメモリＧには、グローバル動き補償による予測画像が蓄えられている。ステップ１６０８では、ブロックマッチングの処理が行われる。ブロックごとの動きベクトル情報が入力され、この動きベクトルとフレームメモリＧに格納された画像を用いてブロックマッチングによる予測画像が合成され、この予測画像はフレームメモリＤに格納される。
ここで第15図に戻る。ステップ１５０７では量子化ＤＣＴ係数が入力され、これに逆量子化、逆ＤＣＴを適用して得られた画像がフレームメモリＥに格納される。ステップ１５０８では、再び現在復号化中のフレームがＩフレームであるか否かが判定される。そして、Ｉフレームではない場合には、ステップ１５０９でフレームメモリＤとＥに格納された画像が加算され、この結果の画像がフレームメモリＥに格納される。ステップ１５１０の処理を行う直前にフレームメモリＥに格納されている画像が、再生画像となる。ステップ１５１０では、このフレームメモリＥに格納された画像が出力フレームメモリ５０６に出力され、そのまま出力画像として復号化器から出力される。こうして１フレーム分の復号化処理が終了し、処理は再びステップ１５０２に戻る。
第４図と第５図に示したソフトウェア画像符号化装置、ソフトウェア画像復号化装置に本明細書で示したフレーム間予測画像の合成方法を実行するプログラムを実行させると、グローバル動き補償やワーピング予測の処理をより少ない演算量で実現することが可能となる。このため、本発明を用いない場合と比較して、消費電力の低減、装置の低価格化、より大きな画像を実時間で処理できるようになる、画像符号化・復号化以外の処理を含む同時並列処理を行うことが可能となる、等の効果を期待することができる。また、本明細書で示したアルゴリズムを用いることにより、従来の画像復号化装置では演算能力の限界から実時間で再生できなかったような圧縮画像データを、実時間で再生することが可能となる。
以上本発明の実施形態について述べたが、以下のような実施形態も本発明に含まれる。
（１）従来型の画像符号化方法では、フレーム間予測を行った後に離散コサイン変換などによる誤差符号化が行われるが、フレーム間予測画像をそのまま再生画像として使用する画像符号化方法・復号化方法に対しても、本発明は有効である。
（２）本明細書では、画像の形状は長方形であることを仮定したが、長方形以外の任意の形状を持つ画像にも、本発明は適用可能である。この場合、まず任意形状の画像を囲む長方形に対して本発明の処理を適用し、任意形状画像に含まれる画素に対してのみ動きベクトルを求める演算を行えば良い。
（３）本明細書では、ｐ又はｑの値が２の負ではない整数乗であることを前提として２段階の処理による動きベクトルの内・外挿アルゴリズムを示した。しかし、ｐ及びｑが２の負ではない整数乗ではない場合でも、この２段階処理アルゴリズムは除算における分母の値を小さくするという効果を持っており、レジスタのオーバーフローを防ぐ意味で有効である。
産業上の利用可能性
図１７に、本明細書で示した予測画像合成方法を用いる符号化・復号化装置の具体例を示す。（ａ）は、パソコン１７０１に画像符号化・復号化用のソフトウェアを組み込むことにより、画像符号化・復号化装置として活用する場合を示す。このソフトウェアは何らかの蓄積メディア（ＣＤ−ＲＯＭ、フロッピーディスク、ハードディスクなど）に記録されており、これをパソコンが読み込んで使用する。また、さらに何らかの通信回線にこのパソコンを接続することにより、映像通信端末として活用することも可能となる。
（ｂ）は本発明による符号化方法による動画像情報を蓄積メディア１７０２に記録した符号化ビットストリームを読み取り、本発明による装置を持つ再生装置１７０３で再生し、再生された映像信号をテレビモニタ１７０４に表示する場合を示す。再生装置１７０３は符号化ビットストリームを読み取るだけであり、テレビモニタ１７０４内に復号化装置が組み込まれている場合もある。
（ｃ）は、ディジタル放送用のテレビ受信機１７０５に本発明の復号化装置を組み込んだ場合を示す。また、（ｄ）は、ケーブルテレビ用のケーブル１７０８又は衛星／地上波放送のアンテナに接続されたセットトップボックス１７０９内に復号化装置を実装し、これをテレビモニタ１７１０で再生する場合を示す。このとき、（ｂ）の１７０４と同様に、セットトップボックスではなく、テレビモニタ内に符号化装置を組み込んでも良い。
（ｅ）は、ディジタル携帯端末１７０６に本発明の符号化器、復号化器を組み込んだ場合を示す。ディジタル携帯端末の場合、符号器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の３通りの実装形式のいずれでもよい。
（ｆ）は、動画像撮影用のカメラ１７０７の中に符号化装置を組み込む場合を示す。また、カメラ１７０７は映像信号を取り込むのみであり、これを専用の符号化装置１７１１に組み込む構成でもよい。この図に示したいずれの装置・システムに関しても、本明細書に示した方法を実装することにより、従来の技術を活用した場合と比較して、装置を簡略化することが可能となる。
【図１】
0003764488.tif 000017
【図２】
0003764488.tif 000018
【図３】
0003764488.tif 000019
【図４】
0003764488.tif 000020
【図５】
0003764488.tif 000021
【図６】
0003764488.tif 000022
【図７】
0003764488.tif 000023
【図８】
0003764488.tif 000024
【図９】
0003764488.tif 000025
【図１０】
0003764488.tif 000026
【図１１】
0003764488.tif 000027
【図１２】
0003764488.tif 000028
【図１３】
0003764488.tif 000029
【図１４】
0003764488.tif 000030
【図１５】
0003764488.tif 000031
【図１６】
0003764488.tif 000032
【図１７】
0003764488.tif 000033