JP3634878B2 - Image encoding device - Google Patents
Image encoding device Download PDFInfo
- Publication number
- JP3634878B2 JP3634878B2 JP19397194A JP19397194A JP3634878B2 JP 3634878 B2 JP3634878 B2 JP 3634878B2 JP 19397194 A JP19397194 A JP 19397194A JP 19397194 A JP19397194 A JP 19397194A JP 3634878 B2 JP3634878 B2 JP 3634878B2
- Authority
- JP
- Japan
- Prior art keywords
- reference image
- pixel
- image
- point
- motion vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【産業上の利用分野】
本発明は、同一パッチに所属するすべての画素が共通の動きベクトルを持つ制約がなく、画素の動きベクトルの水平・垂直成分が隣接画素間距離の整数倍以外の値を取り得る動き補償方式を実行する画像符号化装置に関するものである。
【0002】
【従来の技術】
動画像の高能率符号化において、時間的に近接するフレーム間の類似性を活用する動き補償は情報圧縮に大きな効果を示すことが知られている。現在の画像符号化技術の主流となっている動き補償方式は、動画像符号化方式の国際標準であるMPEG1およびMPEG2にも採用されている半画素精度のブロックマッチングである。この方式では、符号化しようとする画像を多数のブロックに分割し、ブロックごとにその動きベクトルを水平・垂直方向に隣接画素間距離の半分の長さを最小単位として求める。この処理を数式を用いて表現すると以下のようになる。符号化しようとするフレーム(現フレーム)の予測画像をP(x, y)、参照画像(Pと時間的に近接しており、既に符号化が完了しているフレームの復号画像)をR(x, y)とする。また、xとyは整数であるとして、PとRでは座標値が整数である点に画素が存在すると仮定する。このとき、PとRの関係は、
【0003】
【数1】
【0004】
で表される。ただし、画像はn個のブロックに分割されるとして、Biは画像のi番目のブロックに含まれる画素、(ui, vi)はi番目のブロックの動きベクトルを表している。動きベクトル(ui, vi)の推定方式として最も一般的に用いられているのは、(ui, vi)に一定の探索範囲を設け(例えば−15≦ui, vi≦15)、その中でブロック内の予測誤差Ei(ui, vi)を最小化するものを探索するという方式である。予測誤差の評価基準として平均絶対誤差を用いた場合、Ei(ui, vi)は、符号化しようとしているフレームの原画像をI(x, y)として、
【0005】
【数2】
【0006】
で表される。ただし、Niはi番目のブロックに含まれる画素の数である。このように、異なる動きベクトルについてそれぞれ予測誤差を評価し、この誤差が最も小さい動きベクトルを探索する処理をマッチング処理とよぶ。一定の探索範囲の中ですべての(ui, vi)についてEi(ui, vi)を計算し、その最小値を探索することを全探索とよぶ。
【0007】
半画素精度のブロックマッチングでは、uiとviはそれぞれ画素間距離の半分、つまりこの場合は1/2を最小単位として求められることになる。したがって、座標値が整数ではなく、参照画像において実際には画素が存在しない点(以後、このような点を内挿点とよぶ)の輝度値を求めることが必要となる。この際の処理としては、周辺4画素を用いた共1次内挿が使われることが多い。この内挿方式を数式で記述すると、座標値の小数成分をpとq(0≦p, q<1)として、参照画像の内挿点(x+p, y+q)における輝度値R(x+p, y+q)は、
【0008】
【数3】
【0009】
で表される。
【0010】
半画素精度のブロックマッチングを行うシステムでは、まず広い探索範囲に対して1画素精度の全探索を行なって大まかに動きベクトルを推定した後に、この動きベクトルの周辺のごく狭い範囲(例えば、縦横±半画素の範囲)に対して半画素精度の全探索を行なう2段階探索が広く用いられている。そして、第2段階の探索を行う際には、まず内挿点における輝度値を事前に求めてから探索を行う方法が良く用いられる。この方法の処理の例を図1に示す。この例では縦横4画素のブロックを使用している。参照画像において、座標値が整数でもともと画素が存在する点を「○」で表し、新たに輝度値を求めた内挿点を「×」で表す。また、現フレームの原画像のブロックの画素を「□」で表す。第1段階の探索で得られた動きベクトルを(uc, vc)とする。マッチングの例101は、第1段階の探索で、動きベクトルが(uc, vc)であるときのマッチングの様子を示している。予測誤差の評価は重なった「○」と「□」の間で行われる。例102、103、104はそれぞれ第2段階の探索で動きベクトルが(uc + 1/2, vc)、(uc + 1/2, vc + 1/2)、(uc − 1/2, vc − 1/2)であるときを表している。これらの例では、予測誤差の評価は重なった「×」と「□」の間で行われる。この図からわかる通り、第2段階の探索における探索範囲を縦横±1/2画素とした場合、65個(図1の「×」の数)の内挿点の輝度値を求めることにより、動きベクトル8個分のマッチング処理をカバーすることができる。このとき、輝度値を求めた内挿点はすべてマッチングに使用される。マッチングのたびに参照画像において内挿の計算をすると、4×4×8=128回の内挿を行う必要がある。このように内挿演算の回数を減らすことができるのは、参照画像の同じ内挿点が複数回使用されるためである。
【0011】
半画素精度のブロックマッチングは上で述べた通り、現在広く用いられているが、MPEG1やMPEG2より高い情報圧縮率が必要となるアプリケーションではさらに高度な動き補償方式が要求される。ブロックマッチングの欠点はブロック内のすべての画素が同一の動きベクトルを持たなければならない点にある。そこでこの問題を解決するために、隣接する画素が異なる動きベクトルを持つことを許容する動き補償方式が最近提案されている。以下にこの方式の一例である空間変換に基づく動き補償に関して簡単に説明する。
【0012】
空間変換に基づく動き補償では、予測画像Pと参照画像Rの関係は、
【0013】
【数4】
【0014】
で表される。ただし、画像はn個の小領域(パッチ)に分割されるとして、Piは画像のi番目のパッチに含まれる画素を表している。また、変換関数fi(x, y)とgi(x, y)は現フレームの画像と参照画像との間の空間的な対応を表現している。このとき、Pi内の画素(x, y)の動きベクトルは、(x−fi(x, y),y−gi(x, y))で表すことができる。ところで、ブロックマッチングは変換関数が定数である方式として、空間変換に基づく動き補償の特殊な例として解釈することもできる。しかし、本明細書で空間変換に基づく動き補償という言葉を用いるときには、ブロックマッチングはその中に含まないこととする。
【0015】
変換関数の形としては、アフィン変換
【0016】
【数5】
【0017】
を用いた例(中屋他、「3角形パッチに基づく動き補償の基礎検討」、電子情報通信学会技術報告、IE90−106、平2−03参照)、共1次変換
【0018】
【数6】
【0019】
を用いた例( G. J. Sullivan and R. L. Baker, ”Motion compensation for video compression using control grid interpolation”, Proc. ICASSP ’91 , M9.1, pp.2713−2716, 1991−05)、透視変換
【0020】
【数7】
【0021】
を用いた例(V.Seferdis and M.Ghanbari, ”General approach to block−matching motion estimation’’, Optical Engineering, vol. 32, no. 7, pp. 1464−1474, 1993−07)などが報告されている。ここでaij、bij、cijはパッチごとに推定される動きパラメータである。符号化装置で得られる予測画像と同じものを受信側で得るためには、画像符号化装置は何らかの形でパッチごとに変換関数の動きパラメータが特定できる情報を、動き情報として受信側に伝送すればよい。例えば、変換関数にアフィン変換を用い、パッチの形状が3角形であるとする。この場合は、6個の動きパラメータを直接伝送しても、パッチの3個の頂点の動きベクトルを伝送しても、受信側で6個の動きパラメータを再生することができる(共1次変換を用いた場合には4角形のパッチを採用すれば同様の処理が可能である)。以下では、変換関数にアフィン変換を用いた場合に関して説明するが、この説明は他の変換を用いた場合についても、ほぼそのまま適用することができる。
【0022】
変換関数が確定しても空間変換に基づく動き補償には様々なバリエーションを考えることができるが、その一例を図2に示す。この例では、パッチの境界において動きベクトルが連続的に変化するように制約されている。以下では、参照画像201を用いて現フレームの原画像202の予測画像を合成することを考える。このために、まず現フレームは複数の多角形のパッチに分割され、パッチ分割された画像208となる。パッチの頂点は格子点とよばれ、各格子点は複数のパッチに共有される。例えば、パッチ209は、格子点210、211、212から構成され、これらの格子点は他のパッチの頂点を兼ねている。こうして画像を複数のパッチに分割した後に、動き推定が行なわれる。ここに示す例では、動き推定は各格子点を対象として参照画像との間でを行なわれる。この結果、動き推定後の参照画像203で各パッチは変形されたものとなる。例えば、パッチ209は、変形されたパッチ204に対応している。これは、動き推定の結果、格子点205、206、207がそれぞれ210、211、212に移動したと推定されたためである。予測画像はパッチ内の各画素に関して変換関数を計算し、数4にしたがって参照画像の中から対応する点の輝度値を求めることにより合成される。これは、この例では3個の頂点の動きベクトルから数5の6個の動きパラメータを計算し、画素ごとに数5を計算することにより実現される。上で述べた通り、動き情報として格子点の動きベクトルを伝送しても、動きパラメータを伝送しても良いが、この例では1個の格子点が複数のパッチの頂点を兼ねている分だけ前者の方が効率的である。
【0023】
空間変換に基づく動き補償においてもブロックマッチングと同様に、マッチングに基づく動き推定が有効であることが指摘されている。マッチングに基づく動き補償のアルゴリズムの一例を以下に示す。この方式は6角マッチングとよばれ、上の例のようにパッチの境界で動きベクトルが連続的に変化する場合に有効である。この方式は、以下の2つの処理により構成されている。
【0024】
(1)ブロックマッチングによる格子点の大まかな動き推定
(2) 修正アルゴリズムによる動きベクトルの修正
(1)の処理では、格子点を含むブロック(大きさは任意)に対してブロックマッチングを適用し、このブロックの動きベクトルを格子点の大まかな動きベクトルとする。この処理の目的はあくまで格子点の大まかな動きベクトルを求めることであって、必ずブロックマッチングを用いなければならないわけではない。(2)の処理の様子は図3に示す。この図は参照画像におけるパッチと格子点の一部を示したもの(図2の画像203に相当する)である。したがって、この図の中で格子点の位置を変化させることは、その格子点の動きベクトルを変化させることを意味する。格子点301の動きベクトルを修正する場合、まずこの格子点が関与するすべてのパッチによって構成される多角形302の頂点にあたる、格子点303〜308の動きベクトルを固定する。こうして格子点301の動きベクトルを一定の範囲内で変化させる(例えば格子点301を格子点309の位置に移動させる)と、その結果多角形302が含むパッチ内の予測誤差も変化する。そして、探索範囲内で多角形302内の予測誤差を最小にした動きベクトルが、格子点301の修正された動きベクトルとして登録される。こうして格子点301の修正が終了し、他の格子点に移動してから同様の修正を続ける。一旦すべての格子点に対して修正を行なった後に、もう一度最初の格子点から繰り返し修正を行なえば、さらに予測誤差を小さくすることができる。この繰り返しの回数としては、2〜3回が適当であることが報告されている。
【0025】
修正アルゴリズムにおける典型的な探索範囲は縦横±3画素である。この場合、1個の格子点について1回の修正で49回のマッチングが多角形302内で行なわれる。一方で、1個のパッチは3個の格子点の修正アルゴリズムに関与するため、パッチ内の各画素に対して合計で147回予測誤差の評価が行なわれることになる。さらにこの修正が繰り返し行なわれれば、そのたびに誤差評価の回数はさらに増えることになる。この結果、誤差評価が行なわれるたびに対象となる画素に対して内挿の計算が行なわれ、演算量が膨大となる。
【0026】
空間変換に基づく動き補償における内挿演算の問題は、半画素精度のブロックマッチングにおける同様の問題と比較して以下の点で本質的な違いがあるためにやっかいである。空間変換に基づく動き補償では、たとえ格子点の動きベクトルの水平・垂直成分を1/2の整数倍に制限したとしても、各画素の動きベクトルの水平・垂直成分は同様に1/2の整数倍とはならない。また、一般的に各画素の動きベクトルの小数点以下の成分は任意の値がとれるため、マッチング処理において参照画像の同じ内挿点の輝度値が複数回用いられることはむしろまれである。
【0027】
【発明が解決しようとする課題】
空間変換に基づく動き補償においてマッチングに基づく動き推定を行なう場合、輝度値の内挿に要する演算量が膨大となる問題が発生する。本発明の目的は、輝度値の内挿の計算回数を減らし、少ない演算量で動き推定の処理を実現することにある。
【0028】
【課題を解決するための手段】
動き推定処理の前に、参照画像においてx座標とy座標がそれぞれ1/m1と1/m2の整数倍である点(m1とm2は正の整数)の輝度値を内挿により求めた高精細参照画像を用意する。したがって、高精細参照画像においては、x座標とy座標がそれぞれ1/m1と1/m2の整数倍である点に画素が存在することになる。動き推定処理において、座標値が整数でない位置における参照画像の輝度値が必要となった場合には、高精細参照画像の中でこの座標に最も近い位置に存在する画素の輝度値で近似することにより、内挿演算の回数を減らす目的は達成される。
【0029】
【作用】
上記の高精細参照画像を作成する処理では、原画像の1画像あたりm1×m2−1回の内挿計算が必要となる。しかし、一旦この高精細化処理を終えてしまうと、動き推定処理においてこれ以上に内挿の演算を行なう必要はなくなる。「従来の技術」でとりあげた空間変換に基づく動き補償の例では、動き推定処理で1画素あたり147回以上の内挿演算が必要である。したがって、m1=m2=2とすれば、内挿演算の回数は50分の1程度にすることができ、演算量の大幅な低減につながる。
【0030】
【実施例】
第1の実施例として、参照画像全体を高精細化してから動き推定処理を行う方式を示す。まず、高精細参照画像R’を作成する。輝度値の内挿方式に共1次内挿(数3)を用いるとして、R’は以下の式で表される。
【0031】
【数8】
【0032】
ただし、sとtは整数であり、かつ0≦s<m1, 0≦t<m2であるとする。また、R’ではx、y、s、tがすべて整数である点に画素が存在するとする。s=t=0である点は、もともと参照画像に存在する画素に対応しており、それ以外の点の輝度値は内挿によって求められる。なお、以下では簡単のため、特にm1=m2=m(mは正の整数)である場合について実施例を挙げる。
【0033】
図4に高精細参照画像を活用する画像符号化装置の例を示す。なお、図の矢印はデータの流れを表しており、アドレス信号などは省略してある。この装置では、動き推定部401が動き推定の処理を担当している。参照画像404は高精細化の処理を行う参照画像高精細化回路405で処理された後、高精細参照画像406としてフレームメモリ407に蓄えられ、マッチング処理回路409へ近似輝度値情報408を提供する。一方で現フレームの原画像402もフレームメモリ403に蓄えられ、マッチング処理回路409で動き推定のために活用される。マッチング処理回路が出力した動き情報415は受信側に伝送されるが、符号化装置内でも予測画像合成回路410における予測画像の合成のために活用される。合成された予測画像と現フレームの原画像411との差は減算器412で求められ、予測誤差413として、予測誤差符号化器414で符号化され、予測誤差情報416として伝送される。従来の方式では、変換関数の演算、内挿処理、予測誤差の評価がすべてマッチング回路で行なわれていたのに対し、本実施例では内挿処理を事前に参照画像高精細化回路で行なうことにより演算量を低減させている。また、高精細参照画像を用いることにより、変換関数に求められる演算精度を下げることができ、さらに処理を簡略化することができる。これは、変換関数の演算に誤差が発生した場合に、高精細参照画像で近似に用いる画素が異なるものにならない範囲であれば、動き推定の結果に影響がないためである。なお、ここで内挿により輝度値を求められた高精細参照画像の画素は、すべてがマッチング処理で使用されるとは限らない。この点は「従来の技術」でとりあげたブロックマッチングの例とは異なっている。
【0034】
図5にm=2として、輝度値の内挿に共1次内挿を用いた場合の参照画像高精細化回路405の例を示す。この図でも矢印はデータの流れを表しており、図4と同じ参照番号は同じものをさしている。入力の参照画像信号404は、上から下へラインごとに左から右へ画素の輝度値を与えるとする。この信号を2個の画素遅延回路502、503と1個のライン遅延回路501より構成された回路に加えることにより、上下左右に隣接する4個の画素の輝度値504〜507を得ることができる。これらの輝度値それぞれにに対して積算器508〜511を用いて内挿位置に応じて重み付け係数を掛け、この結果を加算器512〜514に加える。この結果をさらに加算器515とシフトレジスタ516に加えることにより、4で割った後に小数点以下を四捨五入する演算を実現する。以上の処理の結果、高精細参照画像R’の4画素分の輝度値517〜520を出力406として得ることができる。
【0035】
図6に、マッチング処理回路409内において、高精細参照画像R’を用いて参照画像の内挿点における輝度値の近似値を得る回路の一例を示す。図4と同じ参照番号は同じものをさしている。ここでは、変換関数を計算することにより、2進固定小数点表現の座標値601、602が与えられていると仮定する。また、mは図5と同様に2であるとして、高精細参照画像R’はフレームメモリ407に蓄えられているとする。座標値601、602は1/4を加える加算器603、小数点以下2桁目以下を切り捨てる回路604を通過することにより、小数点以下2桁目を四捨五入され、1/2の整数倍に変換される。この結果得られる座標値605、606は、高精細参照画像R’において画素の存在する点の座標値に対応している。この座標値は座標−アドレス変換回路607によりフレームメモリ407のアドレスに変換され、目的の近似輝度値情報408を得る。なお、この例では変換関数の小数点以下3桁目以下の成分は全く使用されていない。したがって、変換関数の小数点以下2桁目以上に影響しない範囲の演算誤差は動き推定結果に影響を与えないことになる。これは上で述べたように、高精細参照画像を用いることにより、変換関数に要求される演算精度が下がったためである。
【0036】
上で挙げた実施例では内挿演算の回数が減少する一方で、高精細参照画像を格納するために参照画像の4倍の大きさの画像を蓄えるメモリが必要となる。そこで内挿演算の回数は上の実施例よりは多くなるものの、必要となるメモリ容量の小さい方式の実施例を示す。この方式では、現フレームの原画像と参照画像の必要な部分を少しずつ取り込みながら参照画像を高精細化して動き推定に用いる。隣接画素間距離は、現フレームの原画像、参照画像共に水平・垂直方向に1であるとする。なお、ここでは動き推定方式に6角マッチングが使用されていると仮定して、6角マッチングにおける修正処理を実行する回路を中心に説明する。6角マッチングのもう一方の処理である格子点の大まかな動き推定は、「従来の技術」で説明した通り、格子点を含むブロックに対してブロックマッチングを実行することにより行われる。
【0037】
図7に現フレームの原画像の一部における格子点703〜711の位置を示す。格子点の間隔を縦横にNg、格子点ごとの動きベクトルの探索範囲を水平・垂直方向に±Nsであるとすれば、参照画像の縦横2Ng + 2Nsの範囲701と、現フレームの原画像の縦横2Ngの範囲702(斜線の範囲)に含まれる画素を使えば、格子点703に関する6角マッチングの修正処理を行うことができる(実際にはこれらより狭い範囲でも良いが、処理を簡略化するために正方形の領域を用いる)。したがって、修正処理を行う装置はこれらの範囲に含まれる画素の輝度値をあらかじめ読み込むことにより、以後の処理を外部のフレームメモリとは独立した状態で実行することができる。またこの場合、格子点703の修正処理を行う前に格子点708の修正処理を行うようにすれば、既に範囲701および702の画素の一部が修正処理を行う装置に読み込まれていることになる。したがって、このときには図8に示すように参照画像の範囲801および現フレームの原画像の範囲802のみを追加して読み込むようにすれば良い(図8において図7と同じ参照番号は同じものをさしている)。この追加読み込みのときには、格子点708の動き推定処理に使用した画素情報の一部は必要なくなるので、この情報が入っていたメモリの上に範囲801および802の情報を書き込んでも良い。このようにして、動き推定を行う格子点が左から右に移動するごとに、新たに必要な情報のみを読み込むようにすれば処理を簡略化することができる。
【0038】
図9に、図7および8に示した方式に従って6角マッチングの修正処理を行う装置の動き推定部909の例を示す。この図において矢印はデータの流れを表しており、図4と同じ参照番号は同じものをさしている。動き推定部909は、図4の動き推定部401と異なる構成で同じ働きをする。入力の現フレームの原画像402と参照画像404はそれぞれフレームメモリ901と903に蓄えられる。これに対してまず格子点の大まかな動き推定が回路902で実行され、求められた動きベクトルに従って参照画像における格子点の座標の情報が格子点座標メモリ904に蓄えられる。続いて修正処理部905が6角マッチングにおける修正処理を行う。以下では、図8の例にならって、直前に格子点708に対する処理が行われた場合の格子点703に対する修正処理に関して説明する。修正処理部905は、高精細化回路907とマッチング処理回路906からなっている。まず高精細化回路907は、参照画像が蓄えられたフレームメモリ903から新たに必要な範囲(図8の例では、範囲801)の画素の輝度値情報を読み出す。この情報に対して内挿処理を行い、動き推定において必要となる範囲の高精細参照画像を作成して、マッチング処理回路906に与える。マッチング処理回路では、同様に現フレームの原画像のフレームメモリ901からも新たに必要な範囲(図8の例では、範囲802)の輝度値情報を読み込む。マッチング処理回路は自分自身で修正処理に必要な範囲の高精細参照画像と現フレームの原画像を蓄えるフレームメモリを持っており、このメモリを利用して処理を行う。マッチング処理回路はさらに格子点座標メモリ904から参照画像における格子点の座標情報の中で新たに必要となったもの(図8の例では、格子点704、706、711の座標情報。これは格子点707、708、710の座標情報が前の処理で使用されているため。)を読み込み、6角マッチングの修正処理を行う。この処理結果に従い、修正された参照画像における格子点の座標(図8の例では、格子点703の座標)を格子点座標メモリ904に書き込む。以上で格子点703の修正は終了し、修正処理部は図8の格子点704の修正処理に移る。修正処理がすべて終了すると、格子点座標メモリ904に蓄えられた情報は動きベクトル演算回路908において格子点ごとの動きベクトルに変換されて動き情報415として出力される。また、予測画像の予測誤差を計算するために、現フレームの原画像の情報411も出力される。
【0039】
図10に図9の処理において並列処理を導入した例を示す。図9と同じ参照番号は同じものをさしている。この例では、6角マッチングにおける修正処理を行う修正処理部が複数存在し、処理を分担している。参照画像と現フレームの原画像を蓄えているフレームメモリ901と903から輝度値情報を読み出すためには、共通のデータバス1001とアドレスバス1002を利用する。また、参照画像における格子点の座標を蓄えた格子点座標メモリ904から情報を読み出したり、情報を書き込む場合には共通のデータバス1005とアドレスバス1004を用いる。これらのバスを介して、格子点の大まかな動き推定を行う回路902、6角マッチングの修正処理を行う回路905、1003は情報の転送を行う。修正処理部905と1003は同じ構成である。同様の構成の修正処理部をさらに加えることのより、修正処理をさらに高速に実行することができる。修正処理部は輝度値情報の読み込みと格子点座標情報の読み込みと書き込みのとき以外はほぼ独立に処理を行うことができるため、メモリへのアクセスの衝突を避けて並列に処理を行うことができる。
【0040】
図8、9、10に示した実施例では、修正処理において参照画像の1画素について約(2+ 2Ns /Ng)×(m×m − 1)回の内挿演算が必要であり、図4で示した実施例の約(2+ 2Ns /Ng)倍の回数を必要とする。しかし、高精細参照画像全体を蓄えるメモリが必要ないため、全体で必要なメモリ容量を小さくすることができる。
【0041】
回路における乗除算のしやすさを考慮すると、mは2のべき乗であることが望ましい。mを小さくすると回路規模を小さくすることができる。しかし、一方で動き推定における座標(動きベクトル)の近似精度が悪くなり、数2の演算で予測誤差の大小関係が逆転しやすくなるために動き推定結果に狂いが生じ、予測特性は劣化する。これに対し、mを大きくすると逆の現象が起こる。回路規模を考慮すれば、mの値としては4以下が望ましい。また、予測特性を考慮すれば、mの値としては2以上が望ましい。したがって、両者のバランスを考えてmの値としては2、4が適当である。許容される予測誤差と回路規模に応じて適当なmの値は選択すれば良い。
【0042】
画素密度が縦横にm倍の高精細参照画像を用いて動き推定を行なうことは、数3における変換関数fi(x, y)とgi(x, y)の値が1/mの整数倍となるように制限される(変換関数の最小単位が隣接画素間距離の1/mとなる)ことを意味する。しかし、これはあくまで動き推定の際の制限で、予測画像の合成の際にもこの制限を守る必要はない。一方で、空間変換に基づく動き補償では送信側と受信側における予測画像のミスマッチ(送信側と受信側における変換関数の演算精度が異なることが原因で、両者で合成される予測画像に不一致が生じること)を防ぐため、予測画像を合成するときの変換関数の演算精度に関して何らかの基準を設定する必要がある。この基準を設定する方法の一つとして、動き推定の際と同様に予測画像を合成する際の変換関数に最小単位を設ける方法がある。しかし、上で述べた理由から、このときの最小単位は必ずしも動き推定における最小単位と同じ1/mである必要はない。一般的に動き推定が終了し、動きパラメータが確定していても、予測画像の合成における変換関数の演算精度を上げると予測誤差は減少する。したがって、予測画像の合成のときには動き推定のときよりも動きベクトルの最小単位を小さくすることにより、予測誤差を減少させることができる。予測画像の合成の際には、輝度値の内挿演算は1画素につき1回のみ行なわれるため、この演算が多少複雑になっても動き推定の場合ほど全体の処理量に大きな影響を及ぼさない。
【0043】
なお、以下の変形も本発明に含まれることは明らかである。
【0044】
(1)輝度値の内挿に用いる関数として、本明細書では共1次内挿をとりあげたが、これ以外の関数を用いても良い。関数が複雑になると、内挿演算の回数を減らすことの効果は大きくなる。
【0045】
(2)変換関数の種類として、本明細書ではアフィン変換を中心にとりあげたが、これ以外の変換関数を用いても良い。同一パッチ内の画素が共通の動きベクトルに従う必要がなく、画素の動きベクトルの垂直・水平成分が隣接画素間距離の整数倍以外の値を取り得る限り、本発明は有効である。
【0046】
(3)パッチの形状は、画素の集合を特定するものであれば良く、特に本明細書でとりあげた3角形でなくても良い。
【0047】
(4)空間変換に基づく動き補償に関し、本明細書ではパッチの境界で動きベクトルが連続的に変化する方式をとりあげた。しかし、例えばパッチごとに動きパラメータをそのまま伝送する方式など、パッチ境界で不連続を許容する方式であっても良い。
【0048】
(5)動き推定アルゴリズムとして、本明細書ではブロックマッチングと6角マッチングをとりあげたが、これは他のマッチングに基づく方式であっても良い。予測誤差の評価が多数回行なわれる方式である限り、本発明は有効である。
【0049】
(6)空間変換に基づく動き補償において、本明細書でとりあげた例のように伝送される動き情報が格子点の動きベクトルでなくても良い。動き情報は、上記項目(4)でとりあげた例のように、パッチごとの変換関数を特定するものであれば良い。
【0050】
(7)実施例では、m1=m2の場合について述べたが、両者が異なっていても良い。
【0051】
(8)本明細書では、現フレームのパッチ構造を固定して参照画像のパッチを変形させる方式に関して説明したが、逆に参照画像のパッチ構造を固定して現フレームのパッチを変形させる方式であっても良い。
【0052】
(9)本明細書では、1個の予測画像を合成するために用いる参照画像の数は1個として説明したが、複数の参照画像を用いる方式であっても良い。
【0053】
【発明の効果】
本発明により、同一パッチに所属するすべての画素が共通の動きベクトルを持つ制約がなく、かつ画素の動きベクトルの水平・垂直成分が隣接画素間距離の整数倍以外の値を取り得る動き補償方式の動き推定処理において、輝度値の内挿の演算を行なう回数を減らすことが可能となる。
【図面の簡単な説明】
【図1】半画素精度のブロックマッチングにおける2段階探索の処理の例を示した図である。
【図2】空間変換に基づく動き補償の処理の例を示した図である。
【図3】空間変換に基づく動き補償における動き推定処理の例として、6角マッチングとよばれる方式の処理を示した図である。
【図4】高精細参照画像を活用する画像符号化装置の例を示した図である。
【図5】輝度値の内挿により、参照画像を高精細化する回路の例を示した図である。
【図6】変換関数の演算結果から、高精細参照画像における輝度値を得る回路の例を示した図である。
【図7】6角マッチングの修正処理で使用する画素の範囲を示した図である。
【図8】6角マッチングの修正処理において隣の格子点に続いて修正処理を行う場合に、新たに必要となる画素の範囲を示した図である。
【図9】現フレームの原画像と参照画像の必要な部分を少しずつ取り込みながら参照画像を高精細化して動き推定に用いる方式を示した図である。
【図10】現フレームの原画像と参照画像の必要な部分を少しずつ取り込みながら動き推定に用いる方式に並列処理を導入した場合を示した図である。
【符号の説明】
101、102、103、104…半画素精度のブロックマッチングにおけるマッチング処理の例、201…参照画像、202…現フレームの原画像、203…動き推定後の参照画像のパッチと格子点、204、209…パッチ、205〜207、210〜212、301、303〜309、703〜711…格子点、208…現フレームの原画像のパッチと格子点、302…修正処理におけるマッチングの対象となる多角形、401、909…動き推定部、402、411…現フレームの原画像、403、407、901、903…フレームメモリ、404…参照画像、405…参照画像高精細化回路、406…高精細参照画像、408…近似輝度値、409…マッチング処理回路、410…予測画像合成回路、412…減算器、413…予測誤差、414…予測誤差符号化器、415…動き情報、416…予測誤差情報、501…ライン遅延回路、502、503…画素遅延回路、504〜507…参照画像の画素の輝度値、508〜511…乗算器、512〜515、603…加算器、516…シフトレジスタ、517〜520…高精細参照画像の画素の輝度値、601、602…参照画像における座標値の固定小数点表現(変換関数の演算結果)、604…小数点以下2桁目以下(2進表現)切り捨て回路、605、606…高精細参照画像における座標値、607…座標−アドレス変換回路、701…参照画像において修正に使用される範囲、702…現フレームの原画像において修正に使用される範囲、801…参照画像において追加される範囲、802…現フレームの原画像において追加される範囲、902…6角マッチングにおける格子点の大まかな動き推定を行う回路、904…参照画像における格子点の座標メモリ、905、1003…6角マッチングの修正処理部、906…マッチング処理回路、907…参照画像の一部の高精細化回路、908…動きベクトル演算回路、1001…輝度値情報のデータバス、1002…輝度値情報のアドレスバス、1004…格子点の座標情報のアドレスバス、1005…格子点の座標情報のデータバス。[0001]
[Industrial application fields]
The present invention provides a motion compensation method in which all pixels belonging to the same patch are not restricted to have a common motion vector, and the horizontal and vertical components of the pixel motion vector can take values other than integer multiples of the distance between adjacent pixels. The present invention relates to an image encoding device to be executed.
[0002]
[Prior art]
In high-efficiency coding of moving images, it is known that motion compensation that uses the similarity between temporally adjacent frames has a great effect on information compression. The motion compensation method that is the mainstream of the current image coding technology is block matching with half-pixel accuracy, which is also adopted in MPEG1 and MPEG2 which are international standards for moving image coding. In this method, an image to be encoded is divided into a large number of blocks, and the motion vector for each block is obtained in the horizontal / vertical direction with a length half the distance between adjacent pixels as a minimum unit. This process is expressed as follows using mathematical formulas. P (x, y) is a predicted image of a frame to be encoded (current frame), and a reference image (decoded image of a frame that is temporally close to P and already encoded) is R ( x, y). Further, assuming that x and y are integers, it is assumed that pixels exist at points where the coordinate values are integers in P and R. At this time, the relationship between P and R is
[0003]
[Expression 1]
[0004]
It is represented by However, assuming that the image is divided into n blocks, Bi represents a pixel included in the i-th block of the image, and (ui, vi) represents a motion vector of the i-th block. The most commonly used method for estimating the motion vector (ui, vi) is that a fixed search range is provided in (ui, vi) (for example, −15 ≦ ui, vi ≦ 15), and blocks are included therein. In which a prediction error Ei (ui, vi) is minimized. When the average absolute error is used as the evaluation criterion for the prediction error, Ei (ui, vi) is expressed as I (x, y) as the original image of the frame to be encoded.
[0005]
[Expression 2]
[0006]
It is represented by Here, Ni is the number of pixels included in the i-th block. In this way, the process of evaluating prediction errors for different motion vectors and searching for a motion vector having the smallest error is called matching processing. The calculation of Ei (ui, vi) for all (ui, vi) within a certain search range and searching for the minimum value is called full search.
[0007]
In block matching with half-pixel accuracy, ui and vi are each obtained by using half of the distance between pixels, that is, 1/2 in this case as a minimum unit. Therefore, it is necessary to obtain the luminance value of a point where the coordinate value is not an integer and no pixel actually exists in the reference image (hereinafter, such a point is referred to as an interpolation point). In this case, bilinear interpolation using four peripheral pixels is often used. When this interpolation method is described by a mathematical expression, the decimal values of the coordinate values are p and q (0 ≦ p, q <1), and the luminance value R (x + p, y + q) at the interpolation point (x + p, y + q) of the reference image. Is
[0008]
[Equation 3]
[0009]
It is represented by
[0010]
In a system that performs block matching with half-pixel accuracy, first, a full search with one pixel accuracy is performed on a wide search range to roughly estimate a motion vector, and then a very narrow range around the motion vector (for example, vertical and horizontal ± A two-stage search that performs a full search with half-pixel precision over a range of half-pixels is widely used. When performing the second stage search, a method is often used in which the brightness value at the interpolation point is first obtained before the search is performed. An example of the processing of this method is shown in FIG. In this example, a 4-pixel block is used. In the reference image, even if the coordinate value is an integer, the point where the pixel originally exists is represented by “◯”, and the interpolation point at which the brightness value is newly obtained is represented by “x”. Also, the pixel of the block of the original image of the current frame is represented by “□”. The motion vector obtained in the first stage search is defined as (uc, vc). The matching example 101 shows a state of matching when the motion vector is (uc, vc) in the first stage search. The prediction error is evaluated between the overlapped “◯” and “□”. In Examples 102, 103, and 104, the motion vectors are (uc + 1/2, vc), (uc + 1/2, vc + 1/2), (uc−1 / 2, vc−) in the second stage search. 1/2). In these examples, the prediction error is evaluated between the overlapped “x” and “□”. As can be seen from this figure, when the search range in the second stage search is ± 1/2 pixel vertically and horizontally, by obtaining the luminance values of 65 interpolation points (number of “x” in FIG. 1), Matching processing for 8 vectors can be covered. At this time, all the interpolation points for which the luminance values are obtained are used for matching. If interpolation is calculated in the reference image for each matching, it is necessary to perform 4 × 4 × 8 = 128 interpolations. The reason why the number of interpolation operations can be reduced in this way is that the same interpolation point of the reference image is used a plurality of times.
[0011]
As described above, half-pixel precision block matching is widely used at present. However, an application that requires a higher information compression rate than MPEG1 or MPEG2 requires a more advanced motion compensation method. The disadvantage of block matching is that all pixels in the block must have the same motion vector. In order to solve this problem, a motion compensation method that allows adjacent pixels to have different motion vectors has been recently proposed. The following is a brief description of motion compensation based on spatial transformation, which is an example of this method.
[0012]
In motion compensation based on spatial transformation, the relationship between the predicted image P and the reference image R is
[0013]
[Expression 4]
[0014]
It is represented by However, assuming that the image is divided into n small regions (patches), Pi represents a pixel included in the i-th patch of the image. Also, the conversion functions fi (x, y) and gi (x, y) express the spatial correspondence between the current frame image and the reference image. At this time, the motion vector of the pixel (x, y) in Pi can be represented by (x-fi (x, y), y-gi (x, y)). By the way, block matching can be interpreted as a special example of motion compensation based on spatial transformation as a method in which the transformation function is a constant. However, when the term motion compensation based on spatial transformation is used in this specification, block matching is not included therein.
[0015]
As the form of the transformation function, affine transformation
[0016]
[Equation 5]
[0017]
(See Nakaya et al., “Basic study of motion compensation based on triangular patch”, IEICE Technical Report, IE90-106, Hei 2-03), bilinear transformation
[0018]
[Formula 6]
[0019]
(G. J. Sullivan and R. L. Baker, “Motion compensation for video compression using grid interpolation”, Proc. ICASSP '91, M.1, 1997. p. Perspective transformation
[0020]
[Expression 7]
[0021]
(V. Sefferdis and M. Ghanbari, “General approach to block-matching motion estimation”, Optical Engineering, vol. 32, No. 7, pp. 144-1, pp. 144-1, pp. 144-1. Here, aij, bij, and cij are motion parameters estimated for each patch, and in order to obtain the same predicted image obtained by the encoding device on the receiving side, the image encoding device is in some form. Information that can identify the motion parameter of the conversion function for each patch may be transmitted to the receiving side as motion information, for example, affine transformation is used for the conversion function and the shape of the patch is a triangle. Direct transmission of 6 motion parameters Sending or transmitting the motion vectors of the three vertices of the patch can reproduce the six motion parameters on the receiving side (when using the bilinear transformation, the rectangular patch is In the following, a case where an affine transformation is used as a transformation function will be described, but this explanation can be applied almost as it is when another transformation is used.
[0022]
Even if the transformation function is determined, various variations can be considered for motion compensation based on spatial transformation. An example is shown in FIG. In this example, the motion vector is constrained to change continuously at the patch boundary. In the following, it is considered to synthesize a predicted image of the
[0023]
It has been pointed out that motion estimation based on matching is effective in motion compensation based on spatial transformation as well as block matching. An example of a motion compensation algorithm based on matching is shown below. This method is called hexagonal matching, and is effective when the motion vector continuously changes at the patch boundary as in the above example. This method includes the following two processes.
[0024]
(1) Rough motion estimation of lattice points by block matching
(2) Correction of motion vector by correction algorithm
In the process (1), block matching is applied to a block including a lattice point (the size is arbitrary), and the motion vector of this block is used as a rough motion vector of the lattice point. The purpose of this processing is to obtain a rough motion vector of the lattice points, and it is not always necessary to use block matching. The state of the process (2) is shown in FIG. This figure shows a part of patches and lattice points in the reference image (corresponding to the
[0025]
A typical search range in the correction algorithm is ± 3 pixels vertically and horizontally. In this case, 49 matching is performed in the
[0026]
The problem of interpolation computation in motion compensation based on spatial transformation is troublesome because of the following essential differences compared to similar problems in half-pixel precision block matching. In motion compensation based on spatial transformation, even if the horizontal / vertical component of the motion vector at the grid point is limited to an integral multiple of 1/2, the horizontal / vertical component of the motion vector of each pixel is similarly an integer of 1/2. It will not be doubled. In general, since the components after the decimal point of the motion vector of each pixel can take arbitrary values, it is rare that the luminance value at the same interpolation point of the reference image is used a plurality of times in the matching process.
[0027]
[Problems to be solved by the invention]
When motion estimation based on matching is performed in motion compensation based on spatial transformation, there is a problem that the amount of calculation required for interpolation of luminance values becomes enormous. An object of the present invention is to reduce the number of calculations of luminance value interpolation and to realize motion estimation processing with a small amount of calculation.
[0028]
[Means for Solving the Problems]
Prior to the motion estimation process, the high-definition obtained by interpolating luminance values of points (m1 and m2 are positive integers) whose x and y coordinates are integer multiples of 1 / m1 and 1 / m2, respectively, in the reference image Prepare a reference image. Therefore, in the high-definition reference image, pixels exist at points where the x coordinate and the y coordinate are integer multiples of 1 / m1 and 1 / m2, respectively. In the motion estimation process, if the brightness value of the reference image at a position where the coordinate value is not an integer is required, approximate the brightness value of the pixel located at the position closest to this coordinate in the high-definition reference image. Thus, the purpose of reducing the number of interpolation operations is achieved.
[0029]
[Action]
In the process of creating the above-described high-definition reference image, m1 × m2-1 times of interpolation calculation is required for each original image. However, once this high-definition processing is finished, there is no need to perform further interpolation calculations in the motion estimation processing. In the example of motion compensation based on the spatial transformation taken up in “Prior Art”, the motion estimation process requires 147 or more interpolation operations per pixel. Therefore, if m1 = m2 = 2, the number of interpolation operations can be reduced to about 1/50, leading to a significant reduction in the amount of calculation.
[0030]
【Example】
As a first embodiment, a method for performing motion estimation processing after increasing the definition of the entire reference image will be described. First, a high-definition reference image R ′ is created. Assuming that bilinear interpolation (Equation 3) is used for the luminance value interpolation method, R ′ is expressed by the following equation.
[0031]
[Equation 8]
[0032]
However, s and t are integers, and 0 ≦ s <m1, 0 ≦ t <m2. In R ′, it is assumed that a pixel exists at a point where x, y, s, and t are all integers. The point where s = t = 0 originally corresponds to the pixel existing in the reference image, and the luminance values of the other points are obtained by interpolation. In the following, for the sake of simplicity, an example will be given particularly in the case of m1 = m2 = m (m is a positive integer).
[0033]
FIG. 4 shows an example of an image encoding apparatus that utilizes a high-definition reference image. Note that the arrows in the figure represent the flow of data, and address signals and the like are omitted. In this apparatus, the
[0034]
FIG. 5 shows an example of the reference
[0035]
FIG. 6 shows an example of a circuit that obtains an approximate value of the luminance value at the interpolation point of the reference image using the high-definition reference image R ′ in the
[0036]
In the embodiment described above, the number of interpolation operations is reduced, but a memory for storing an image four times larger than the reference image is required to store the high-definition reference image. Therefore, although the number of interpolation operations is larger than that in the above embodiment, an embodiment of a method that requires a small memory capacity is shown. In this method, a reference image is refined and used for motion estimation while gradually capturing necessary portions of an original image and a reference image of the current frame. It is assumed that the distance between adjacent pixels is 1 in the horizontal and vertical directions for both the original image and the reference image of the current frame. Here, assuming that hexagonal matching is used for the motion estimation method, a description will be given focusing on a circuit that executes correction processing in hexagonal matching. The rough motion estimation of the grid point, which is the other process of the hexagonal matching, is performed by executing block matching on the block including the grid point, as described in “Prior Art”.
[0037]
FIG. 7 shows positions of grid points 703 to 711 in a part of the original image of the current frame. If the interval between grid points is Ng vertically and horizontally, and the search range of motion vectors for each grid point is ± Ns horizontally and vertically, the
[0038]
FIG. 9 shows an example of a
[0039]
FIG. 10 shows an example in which parallel processing is introduced in the processing of FIG. The same reference numerals as those in FIG. 9 denote the same components. In this example, there are a plurality of correction processing units that perform correction processing in hexagonal matching, and the processing is shared. In order to read the luminance value information from the
[0040]
In the embodiments shown in FIGS. 8, 9, and 10, correction processing requires about (2 + 2Ns / Ng) × (m × m−1) times of interpolation for one pixel of the reference image. Approximately (2 + 2Ns / Ng) times as many times as the example shown is required. However, since a memory for storing the entire high-definition reference image is not necessary, the memory capacity required as a whole can be reduced.
[0041]
Considering the ease of multiplication and division in the circuit, m is preferably a power of 2. If m is reduced, the circuit scale can be reduced. However, on the other hand, the accuracy of approximation of the coordinates (motion vector) in motion estimation deteriorates, and the magnitude relationship between prediction errors is easily reversed by the calculation of
[0042]
Performing motion estimation using a high-definition reference image whose pixel density is m times vertically and horizontally means that the values of the conversion functions fi (x, y) and gi (x, y) in
[0043]
Obviously, the following modifications are also included in the present invention.
[0044]
(1) As a function used for luminance value interpolation, bilinear interpolation is taken up in this specification, but other functions may be used. As the function becomes more complex, the effect of reducing the number of interpolation operations increases.
[0045]
(2) As the type of the conversion function, the present specification focuses on the affine transformation, but other conversion functions may be used. The present invention is effective as long as the pixels in the same patch do not need to follow a common motion vector and the vertical and horizontal components of the pixel motion vector can take values other than an integral multiple of the distance between adjacent pixels.
[0046]
(3) The shape of the patch is not particularly limited as long as it identifies a set of pixels, and may not be a triangle particularly described in this specification.
[0047]
(4) Regarding motion compensation based on spatial transformation, this specification has taken up a method in which motion vectors continuously change at patch boundaries. However, a method that allows discontinuity at patch boundaries, such as a method of transmitting motion parameters as they are for each patch, may be used.
[0048]
(5) As the motion estimation algorithm, block matching and hexagonal matching are taken up in this specification, but this may be based on other matching methods. As long as the prediction error is evaluated many times, the present invention is effective.
[0049]
(6) In motion compensation based on spatial transformation, the motion information transmitted as in the example given in this specification may not be a motion vector at a lattice point. The motion information may be any information that specifies a conversion function for each patch, as in the example taken up in item (4) above.
[0050]
(7) In the embodiment, the case of m1 = m2 has been described, but both may be different.
[0051]
(8) In this specification, the method of fixing the patch structure of the reference image while fixing the patch structure of the current frame has been described, but conversely the method of fixing the patch structure of the reference image and deforming the patch of the current frame. There may be.
[0052]
(9) In the present specification, the number of reference images used for synthesizing one predicted image has been described as one, but a method using a plurality of reference images may be used.
[0053]
【The invention's effect】
According to the present invention, there is no restriction that all pixels belonging to the same patch have a common motion vector, and the horizontal and vertical components of the pixel motion vector can take values other than an integral multiple of the distance between adjacent pixels. In this motion estimation process, it is possible to reduce the number of times of performing luminance value interpolation.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a two-stage search process in block matching with half-pixel accuracy.
FIG. 2 is a diagram illustrating an example of motion compensation processing based on spatial transformation.
FIG. 3 is a diagram showing processing of a method called hexagonal matching as an example of motion estimation processing in motion compensation based on spatial transformation.
FIG. 4 is a diagram illustrating an example of an image encoding device that utilizes a high-definition reference image.
FIG. 5 is a diagram illustrating an example of a circuit that increases the definition of a reference image by interpolating luminance values.
FIG. 6 is a diagram illustrating an example of a circuit that obtains a luminance value in a high-definition reference image from a calculation result of a conversion function.
FIG. 7 is a diagram showing a pixel range used in hexagonal matching correction processing;
FIG. 8 is a diagram illustrating a pixel range that is newly required when correction processing is performed following an adjacent grid point in correction processing for hexagonal matching.
FIG. 9 is a diagram showing a method used for motion estimation by increasing the definition of a reference image while gradually capturing necessary portions of an original image and a reference image of a current frame.
FIG. 10 is a diagram illustrating a case where parallel processing is introduced into a method used for motion estimation while capturing necessary portions of an original image and a reference image of a current frame little by little.
[Explanation of symbols]
101, 102, 103, 104: Example of matching processing in half-pixel precision block matching, 201: Reference image, 202: Original image of current frame, 203: Patch and grid points of reference image after motion estimation, 204, 209 ... patches, 205 to 207, 210 to 212, 301, 303 to 309, 703 to 711 ... grid points, 208 ... patches and grid points of the original image of the current frame, 302 ... polygons to be matched in the correction process, 401, 909 ... motion estimation unit, 402, 411 ... original image of current frame, 403, 407, 901, 903 ... frame memory, 404 ... reference image, 405 ... reference image refinement circuit, 406 ... high definition reference image, 408 ... approximate luminance value, 409 ... matching processing circuit, 410 ... predicted image synthesis circuit, 412 ... subtractor, 413 ... Measurement error, 414 ... Prediction error encoder, 415 ... Motion information, 416 ... Prediction error information, 501 ... Line delay circuit, 502, 503 ... Pixel delay circuit, 504 to 507 ... Reference pixel brightness value, 508 ... 511 ... Multiplier, 512 to 515, 603 ... Adder, 516 ... Shift register, 517 to 520 ... Luminance value of pixel of high-definition reference image, 601 and 602 ... Fixed-point representation of coordinate value in reference image (conversion function (Calculation result), 604... Second decimal place (binary expression) truncation circuit, 605, 606... Coordinate value in high-definition reference image, 607... Coordinate-address conversion circuit, 701. Range, 702 ... Range used for correction in the original image of the current frame, 801 ... Range added in the reference image, 802 ... Current frame Range added in original image, 902... Circuit for roughly estimating grid point motion in hexagonal matching, 904... Coordinate memory of grid points in reference image, 905, 1003... Hexagonal matching correction processing unit, 906. Matching processing circuit, 907... High definition circuit for a part of the reference image, 908... Motion vector arithmetic circuit, 1001... Data bus for luminance value information, 1002 ... address bus for luminance value information, 1004. Address bus, 1005... Data bus for coordinate information of lattice points.
Claims (7)
参照画像において画素の存在しない点の輝度値を内挿により求めることによって画素の密度を水平、垂直方向にそれぞれm1、m2倍(m1、m2は正の整数)とした高精細参照画像を合成する手段と、
上記高精細参照画像を格納するメモリとを具備し、
上記動き補償方式を実行する手段は、動き推定を行う場合に上記参照画像と予測画像の関係を表す変換関数を用いて上記予測画像の画素の位置に対応する上記参照画像内の点の位置を求め、該求められた点の位置に該参照画像の画素の存在しない場合に、該求められた点の輝度値を上記高精細参照画像内でこの点の最も近くに位置する画素の輝度値で近似することで動きベクトルを近似し、該動きベクトルの近似により上記予測画像の画素位置に対応する参照画像内の点で該参照画像の画素の存在しない点の位置と、上記高精細参照画像内でのこの点の最も近くに位置する画素の位置が一致しない場合があることを特徴とする画像符号化装置。Means for executing a motion compensation method in which all pixels belonging to the same patch are not restricted to have a common motion vector, and the horizontal and vertical components of the pixel motion vector can take values other than an integral multiple of the distance between adjacent pixels. When,
A high-definition reference image in which the pixel density is set to m1 and m2 times in the horizontal and vertical directions (m1 and m2 are positive integers) is obtained by interpolating luminance values at points where no pixels exist in the reference image. Means,
A memory for storing the high-definition reference image,
The means for executing the motion compensation method is configured to determine a position of a point in the reference image corresponding to a position of a pixel of the predicted image using a conversion function representing a relationship between the reference image and the predicted image when performing motion estimation. If the pixel of the reference image does not exist at the position of the obtained point, the luminance value of the obtained point is the luminance value of the pixel located closest to this point in the high-definition reference image. By approximating the motion vector by approximation , the position of the point in the reference image corresponding to the pixel position of the predicted image by the approximation of the motion vector and the point in which the pixel of the reference image does not exist, and in the high-definition reference image An image encoding device characterized in that the position of a pixel located closest to this point may not match.
参照画像の一部を対象として、画素の存在しない点の輝度値を内挿により求めることによって画素の密度を水平、垂直方向にそれぞれm1、m2倍(m1、m2は正の整数)とした高精細参照画像の一部を合成する手段と、
上記高精細参照画像の一部を格納するメモリとを具備し、
上記動き補償方式を実行する手段は、動き推定を行う際に上記参照画像と予測画像の関係を表す変換関数を用いて上記予測画像の画素の位置に対応する上記参照画像の一部の中の点の位置を求め、該求められた点の位置に該参照画像の画素の存在しない場合に、該求められた点の輝度値を、上記高精細参照画像の一部の中でこの点の最も近くに位置する画素の輝度値で近似することで動きベクトルを近似し、該動きベクトルの近似により上記予測画像の画素位置に対応する参照画像の一部の中の点で該参照画像の画素の存在しない点の位置と、該位置に最も近い上記高精細参照画像の一部の中の画素の位置が一致しない場合があることを特徴とする画像符号化装置。Means for executing a motion compensation method in which all pixels belonging to the same patch are not restricted to have a common motion vector, and the horizontal and vertical components of the pixel motion vector can take values other than an integral multiple of the distance between adjacent pixels. When,
The pixel density is set to m1 and m2 times (m1 and m2 are positive integers) in the horizontal and vertical directions by interpolating the luminance value of the point where no pixel exists for a part of the reference image. Means for synthesizing a portion of a fine reference image;
A memory for storing a part of the high-definition reference image,
The means for executing the motion compensation method uses a conversion function that represents a relationship between the reference image and the predicted image when performing motion estimation, and includes a part of the reference image corresponding to a pixel position of the predicted image. When the position of the point is determined and no pixel of the reference image exists at the determined position of the point, the luminance value of the determined point is determined as the highest of the points in the high-definition reference image. A motion vector is approximated by approximating with a luminance value of a pixel located nearby, and the pixel of the reference image at a point in a part of the reference image corresponding to the pixel position of the predicted image is approximated by the motion vector approximation . An image encoding apparatus, wherein a position of a non-existing point may not match a position of a pixel in a part of the high-definition reference image closest to the position.
Priority Applications (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19397194A JP3634878B2 (en) | 1994-08-18 | 1994-08-18 | Image encoding device |
US08/516,218 US5684538A (en) | 1994-08-18 | 1995-08-17 | System and method for performing video coding/decoding using motion compensation |
US08/903,199 US5963259A (en) | 1994-08-18 | 1997-07-15 | Video coding/decoding system and video coder and video decoder used for the same system |
US09/364,255 US6134271A (en) | 1994-08-18 | 1999-07-30 | Video coding/decoding system and video coder and video decoder used for the same system |
US09/626,788 US6285713B1 (en) | 1994-08-18 | 2000-07-26 | Video coding/decoding system and video coder and video decoder used for the same system |
US09/863,428 US6516033B2 (en) | 1994-08-18 | 2001-05-24 | Video coding method and apparatus for calculating motion vectors of the vertices of a portion of an image and outputting information of horizontal and vertical components of the motion vectors |
US09/994,728 US6542548B2 (en) | 1994-08-18 | 2001-11-28 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
US10/342,273 US6928117B2 (en) | 1994-08-18 | 2003-01-15 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
US11/155,570 US7133454B2 (en) | 1994-08-18 | 2005-06-20 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
US11/518,177 US7684487B2 (en) | 1994-08-18 | 2006-09-11 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
US11/976,227 US7680188B2 (en) | 1994-08-18 | 2007-10-23 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
US11/976,228 US8155199B2 (en) | 1994-08-18 | 2007-10-23 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
US11/976,230 US8160146B2 (en) | 1994-08-18 | 2007-10-23 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
US11/976,229 US8135070B2 (en) | 1994-08-18 | 2007-10-23 | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19397194A JP3634878B2 (en) | 1994-08-18 | 1994-08-18 | Image encoding device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0865676A JPH0865676A (en) | 1996-03-08 |
JP3634878B2 true JP3634878B2 (en) | 2005-03-30 |
Family
ID=16316824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19397194A Expired - Fee Related JP3634878B2 (en) | 1994-08-18 | 1994-08-18 | Image encoding device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3634878B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4633992B2 (en) * | 2000-04-11 | 2011-02-16 | エヌエックスピー ビー ヴィ | Method for determining the similarity between a data sample and the interpolation of another data sample |
JP4915317B2 (en) * | 2007-09-05 | 2012-04-11 | ソニー株式会社 | Image processing apparatus, image processing method, and computer program |
-
1994
- 1994-08-18 JP JP19397194A patent/JP3634878B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0865676A (en) | 1996-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6928117B2 (en) | Video coding method and apparatus for calculating motion vectors of the vertices of a patch of an image and transmitting information of horizontal and vertical components of the motion vectors | |
US6178202B1 (en) | Video coder with global motion compensation | |
JP3634878B2 (en) | Image encoding device | |
JP4410172B2 (en) | Motion vector estimation method, motion vector estimation device, motion vector estimation program, and motion vector estimation program recording medium | |
JP3700230B2 (en) | Motion compensation method in video coding | |
JP3218874B2 (en) | Image encoding apparatus and image encoding method | |
JP3509610B2 (en) | Image encoding method and image encoding device | |
JP2825571B2 (en) | Image motion parameter estimation method and apparatus | |
JP3414304B2 (en) | Image decoding method and decoding device | |
JPH09121353A (en) | Picture encoding device | |
JPH10285598A (en) | Image coder/decoder | |
JP2001236498A (en) | Method and device for image processing | |
JP2001320714A (en) | Image encoder and image decoder | |
JP2003204557A (en) | Image encoding/decoding method and image encoding/ decoding apparatus | |
JPH06311503A (en) | Motion picture coding method | |
JPH0723390A (en) | Movement compensating circuit for moving image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041227 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080107 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090107 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100107 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110107 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120107 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130107 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |