JP3982952B2 - Motion vector detection device - Google Patents

Motion vector detection device Download PDF

Info

Publication number
JP3982952B2
JP3982952B2 JP20984599A JP20984599A JP3982952B2 JP 3982952 B2 JP3982952 B2 JP 3982952B2 JP 20984599 A JP20984599 A JP 20984599A JP 20984599 A JP20984599 A JP 20984599A JP 3982952 B2 JP3982952 B2 JP 3982952B2
Authority
JP
Japan
Prior art keywords
motion
screen
frame
motion vector
unit
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
Application number
JP20984599A
Other languages
Japanese (ja)
Other versions
JP2001036909A (en
Inventor
敬 西
雅人 野中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP20984599A priority Critical patent/JP3982952B2/en
Publication of JP2001036909A publication Critical patent/JP2001036909A/en
Application granted granted Critical
Publication of JP3982952B2 publication Critical patent/JP3982952B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は動きベクトル検出装置に関し、例えば動画像圧縮における動画像符号化時に使用して好適なものである。
【0002】
【従来の技術】
従来のこの種の技術としては次の文献1に示されるものがある。
【0003】
文献1:“映像機器におけるディジタル信号処理技術”(トリケップス、P.35−P.37)
伊東 晋、竹村 裕夫 監修
動画像は多くの情報からなり、そのデータを通信もしくは保存するためには圧縮する必要がある。動画像の圧縮方法として時間的に前の画像との相関を利用したフレーム間差分符号化方法、ブロックマッチングを使った動き補償などがある。上記文献1の中で示されているブロックマッチングを使った動き補償の方法を図2を用いて簡単に説明する。
【0004】
図2は従来の符号化装置20を示す図である。
【0005】
図2において、符号化装置20はカメラなどから取り込んだ画像データを入力する画像入力部101と、入力された画像信号と時間的に前に符号化した画像との差分をとる減算器102と、符号化するためのデータが元データか差分データかを選択するスイッチ103と、入力されたデータを符号化する符号化器104と、スイッチ103双び符号化器104を制御する符号化制御部105と、符号化したデータを出力する符号出力部106と、符号化したデータを復号する復号器107と、復号した差分データと参照画像とを加算する加算器108と、復号した画像を保存する再構成画像用メモリ109と、原画像を保存する原画像用メモリ111と、原画像用メモリ111と再構成画像用メモリ109の出力から動き補償する動き補償部201と、動き補償部201の出力を加算器108に出力するかを選択するスイッチ114とから成る。
【0006】
つぎに符号化装置20の動作を説明する。
【0007】
まず画像入力部101にカメラなどの外部機器から取り込んだ画像データが入力されると、減算器102、原画像用メモリ111およびスイッチ103にデータが入力される。
【0008】
減算器102に入力されたデータと時間的に前の画像との差分を計算した後、符号化制御部105は、差分データを符号化するか、元データを符号化するか、あるいはコマ落としするかを決める。
【0009】
差分データの符号化はフレーム間符号化、元データの符号化はフレーム内符号化である。
【0010】
フレーム間符号化、フレーム内符号化、コマ落としは、符号化制御部105からの指示を受けた符号化器104が実行する。
【0011】
符号化器104に入力されたデータは、例えばDCTのような変換や量子化などの処理を受ける。またレートコントロールなどのためにコマ落としなどを行うときは、入力データは何もせずに捨てることもある。
【0012】
符号化器104で符号化されたデータは符号出力部106から外部に送出されると同時に復号器107に出力される。
【0013】
復号器107に入力されたデータは例えば逆量子化、逆DCTなどの変換を受け、加算器108に出力される。
【0014】
加算器108に入力されたデータがフレーム間符号化された差分データであれば、動き補償部201の出力がスイッチ114を介して加算器108に入力され、差分データと加算された後、再構成画像用メモリ109に出力される。フレーム内符号化の場合はそのまま再構成画像用メモリ109に出力される。
【0015】
再構成画像用メモリ109に入力されたデータは保存され、動き補償部201の求めるタイミングに合わせてデータを出力する。
【0016】
動き補償部201は再構成画像用メモリ109の出力と原画像用メモリ111の出力から動き補償を行い、その結果を減算器102およびスイッチ114に出力する。
【0017】
次に動き補償部201の動作を図3を用いて説明する。
【0018】
動き補償部201は原画像用メモリ111から入力された画像データと再構成画像用メモリ109から入力された復号データとからブロックマッチングを行い、例えば図3に示したように動きベクトル検出を行う。
【0019】
図3の太い実線で示した外の四角QE0は動きベクトル探索範囲(前フレーム)を示し、太い実線で示した内の四角は動きベクトルを求めたいブロック(現フレーム、ここでは16画素×16画素のブロック)Q1、点線の四角(前フレーム)は太い実線の四角ブロックと最も類似し、最も一致度が高かった前フレームのブロックQ0である。
【0020】
類似、すなわち一致度の評価方法には、例えば画素どうしの差分が最も小さいものをとるなどの方法がある。
【0021】
この2つのブロック位置の差(Q0を基準としたQ1の位置ベクトル)が動きベクトルなり、これを用いて参照画像を作成し、減算器102およびスイッチ114に入力する。
【0022】
【発明が解決しようとする課題】
しかしながら上記のように動き補償を行うと、コマ落とし時に探索範囲が拡大して演算総数が増加する問題がある。
【0023】
普通TVなどの動画像は30Hzで動作し、フレームの間隔は1/30秒であるが、低レートで動画像伝送する場合は、コマ落としが必要な場合があり、例えば10Hzで動作をするとフレームの間隔は1/10秒となる。これは前記1/30秒の3倍に相当するフレーム間隔である。
【0024】
フレーム間隔が広くなると、通常、フレーム画面中の像の移動距離も長くなるため、動きベクトル検出の範囲(探索範囲)を広げなければ像の動きを捕捉できず、動きベクトルの誤検出の可能性が高まり、十分な動き補償を行うことができない。
【0025】
また、探索範囲を広げるということは演算回数が多くなることを意味し、ハードウエアならば消費電力アップや規模増大の要因となり、ソフトウエアならば処理能力に対する負荷を大きくする要因となる。
【0026】
さらに、探索範囲を広げて演算数が増加すると動きベクトルを求めるための時間が長くなり、当該動きベクトルが求まるまで符号化器はフレーム間符号化を行うことができない。これは、不必要なコマ落としが起こり、フレームレートを落とす原因ともなる。
【0027】
【課題を解決するための手段】
かかる課題を解決するために、本発明では、入力順が先の始点画面中の第1の位置を始点とすると共に、入力順が後の終点画面中の第2の位置を終点とすることで、始点画面から終点画面にいたる期間内で画面中の像の動きを示す合成動きベクトルをブロック単位に検出する動きベクトル検出装置であって、(1)前記始点画面の画像データを記憶する始点画面記憶手段と、(2)前記終点画面の画像データを記憶する終点画面記憶手段と、(3)前記始点画面と終点画面の中間の入力順で入力された少なくとも1つの中間画面を記憶する少なくとも1つの中間画面記憶手段と、(4)前記始点画面から終点画面にいたる各画面につき、入力順が相前後して隣接する2つの画面間で、前記合成動きベクトルの構成要素となる要素動きベクトルをブロック単位に求めると共に、入力順が後の2つの画面間に係る要素動きベクトルほど先に求める逐次処理を行い、複数の要素動きベクトルについてベクトル合成を行うことで、前記合成動きベクトルを生成する予測演算手段とを備えることを特徴とする。
【0028】
【発明の実施の形態】
(A)実施形態
第1〜第4の実施形態は、入力されても符号化されることなくデータを破棄されるフレームがある場合、すなわちコマ落としがある場合でも、動きベクトルを正確かつ効率的に求めることを特徴とする。
【0029】
(A−1)第1の実施形態の構成
図1は第1の実施形態の符号化装置10を示すブロック図である。図2に示した従来の符号化装置20の構成要素と同じ構成要素には同じ符号を付けている。図2の符号化装置20と当該符号化装置10とを比べた構成上の主要な相違点は、符号化装置20では1つであった原画像用メモリの数が3つになった点と、動き補償部110の内部構成である。
【0030】
図1において、符号化装置10は画像入力部101と、減算器102と、スイッチ103と、符号化器104と、符号化制御部105と、符号出力部106と、復号器107と、加算器108と、復再構成画像用メモリ109と、原画像用メモリ111、112,113と、動き補償部110と、スイッチ114とを備えている。
【0031】
このうち、図2と同じ符号101〜109および114を付した各構成要素は、その機能も符号化装置20の対応する構成要素と同じなのでその詳しい説明は省略する。
【0032】
動き補償部110の内部およびその周辺の構成を示した図4において、動き補償部110は第1の動き予測部401と、第2の動き予測部402と、第3の動き予測部403とを備えている。
【0033】
第1の動き予測部401は2つの入力端子を備え、再構成画像用の入力端子には再構成画像用メモリ109の出力端子が接続され、原画像用の入力端子には原画像用メモリ113の出力端子が接続されている。
【0034】
同様に、第2の動き予測部402は2つの入力端子を備え、動き予測部用の入力端子には第1の動き予測部401の出力端子が接続され、原画像用の入力端子には原画像用メモリ112の出力端子が接続されている。
【0035】
さらに、第3の動き予測部403は2つの入力端子を備え、動き予測部用の入力端子には第2の動き予測部402の出力端子が接続され、原画像用の入力端子には原画像用メモリ111の出力端子が接続されている。
【0036】
ただし、第3および第2の動き予測部403,402の動き予測部用の入力端子は、入力専用の端子ではなく、必要に応じて出力も行う入出力端子となっている。
【0037】
結局、再構成画像用メモリ113と、第1の動き予測部401と、第2の動き予測部402と、第3の動き予測部403から構成される経路では、フレーム画面中の像の動きに関するデータが、逐次、処理されながら伝送されることになる。
【0038】
そして、動き予測部401〜403の各部で逐次行われるこの処理のために、原画像用メモリ113〜111から供給される原画像のデータ(元データ)が使用される。
【0039】
原画像用メモリ113〜111には、カメラなどから画像入力部101に連続して入力された3つのフレームのデータが格納される。3つのうちで入力順が最先の1フレームは原画像用メモリ113に格納され、入力順が2番目の1フレームは原画像用メモリ112に格納され、入力順が最後の1フレームは原画像用メモリ111に格納されることになる。
【0040】
そしてこの状態で、画像入力部101に新たな1フレームが入力されると、その新たな1フレームは原画像用メモリ111に格納され、すでに原画像用メモリに格納されていた3つのフレームは、原画像用メモリ111から原画像用メモリ113に向かう方向に1メモリずつシフトしていく。
【0041】
したがって1回のシフトで、前記最先のフレームは原画像用メモリ113から破棄され、前記2番目のフレームは原画像用メモリ112からシフトしてメモリ113に格納され、前記最後のフレームは原画像用メモリ111からシフトしてメモリ112に格納される。これにより、新たな最先、2番目、最後の連続3フレームが設定されることになる。
【0042】
画像入力部101に1フレームが入力される間隔と符号化器104で1フレームの処理が行われる間隔とは一致している。
【0043】
符号化器104における処理の種類は、フレーム内符号化、フレーム間符号化、いずれの符号化も行わない(コマ落とし)の3種類である。
【0044】
ここでは、画像入力部101に入力されるフレームは平均1/30秒間隔で供給され、符号出力部106から出力される1フレーム分の符号は、平均1/10秒間隔で送出されるものとする。すなわち、任意の連続3フレームのうち、2フレームはコマ落ちして、符号化器104における符号化に用いられないケースである。
【0045】
換言するなら、符号化装置10の入力が30Hzであるとすると、出力は10Hzである(圧縮により、出力データレートは入力データレートの1/3よりも小さい)。
【0046】
なお、符号化装置10において、スイッチ103と114は連動していて、スイッチ103が減算器102側を選択しているときにはスイッチ114は下側の接点を選択し、動き補償部110の出力を加算器108に供給する。
【0047】
反対に、スイッチ103が上側の接点を選択して元データ(画像入力部101に供給された状態の画像データ)を符号化器104に供給している場合には、スイッチ114は上側の接点を選択して動き補償部110の出力の加算器108への供給を停止する。
【0048】
スイッチ103が上側の接点を選択するのは、符号化器104が(元データを用いて)フレーム内符号化を行う場合で、スイッチ103が減算器102側の接点を選択するのは符号化器104が(差分データを用いて)フレーム間符号化を行う場合である。
【0049】
スイッチ103、114のこのような切替えは、符号化制御部105からの指示に基づいて行われる。符号化制御部105は通常、圧縮の効果が高まるように(符号化の効率が高まるように)フレーム内符号化とフレーム間符号化を選択し、レートコントロールを行う。
【0050】
1つの通信の行われているあいだでも、例えば、像の動きが大きい期間やシーン切替えの時点では、フレーム内符号化のほうが選択され、像の動きが比較的少ない場合やシーン切替えが行われないときなどには、フレーム間符号化が行われるのが普通である。
【0051】
フレーム内符号化は1フレーム内の連続した画素間にはほとんど変化のない場合が多いという特性を利用した符号化で、フレーム間符号化は連続する2フレームのあいだではフレーム画面中の同一位置の画素間にはほとんど変化のない場合が多いという特性を利用した符号化である。
【0052】
一般に、フレーム内(予測)符号化では、高い圧縮率は望めないが受信側で高品質な画像を再現でき、フレーム間(予測)符号化は、高い圧縮率も達成可能である。
【0053】
ただしフレーム間符号化では、フレーム画面内の像の動きが小さいときには高品質な画像を再現できるのであるが、像の動きが大きい場合、処理しなければならない情報量が増加して処理が遅れるためにレートコントロールが困難化し、再現画像の品質も劣化する可能性が高まるという性質がある。
【0054】
そこで、符号化制御部105が、フレーム内符号化とフレーム間符号化につき上述した選択の切り替えを行う必要が生じるのである。
【0055】
以下、上記のような構成を有する第1の実施形態の動作について説明する。
【0056】
(A−2)第1の実施形態の動作
まず画像入力部101にカメラなどから取り込んだ1フレーム(画像データ)が入力されると、この1フレームのデータは、減算器102、原画像用メモリ111およびスイッチ103に入力される。
【0057】
減算器102では、このデータと、動き補償部110から供給される時間的に前の画像データとの差分が計算される。
【0058】
減算器102からこの差分データを受け取った符号化器104は、符号化制御部105の制御に応じて前記フレーム間符号化を行うように動作する。
【0059】
ただし、符号化制御部105からの制御は符号化器104に、フレーム間符号化を行わずにコマ落としすることを要求する場合もある。
【0060】
フレーム間符号化、フレーム内符号化、コマ落としの3種類の制御は、上述したスイッチ103、114の切替えと連動して行われ、符号化装置10全体が、フレーム内符号化用、フレーム間符号化用、またはコマ落とし用のいずれか1つに対応した状態(フレーム内符号化モード、フレーム間符号化モード、コマ落としモード)になる。
【0061】
コマ落としは、フレーム間符号化モードでも、フレーム内符号化モードでも行われ得るが、いずれのモードでも、コマ落としがある場合とない場合の動作上の相違は、符号化器104が符号化を行わないか行うかという点だけである。
【0062】
符号化する場合、符号化器104は、当該フレームに対し例えばDCT(離散的コサイン変換)のような変換や量子化などを行う。符号化器104で符号化されたデータは符号出力部106から外部へ送出されると同時に、復号器107に供給される。
【0063】
復号器107に入力されたデータは例えば逆量子化、逆DCTなどの処理を受けて復号される。これらの処理は、符号化器104における符号化に対応した処理である。復号器107の出力は、加算器108の一方の入力端子に供給される。
【0064】
当該データが符号化器104でフレーム間符号化された差分データである場合、符号化装置10はフレーム間符号化モードとなっていてスイッチ114は下側の接点を選択している。このため、加算器108の他方の入力端子には動き補償部110の出力(参照画像情報)が供給される。
【0065】
そしてこのとき、加算器108は両入力端子に供給されたデータを加算してその加算結果を再構成画像用メモリ109に供給する。
【0066】
参照画像情報は、1フレーム画面分の画素値と、ブロックの位置と、動きベクトルの情報を備えた構成のデータである。
【0067】
加算器108の一方の入力端子に供給される復号データ(差分データ)は、もともと減算器102で当該参照画像情報を減算されることによって得られたデータであるから、この参照画像情報を加えることによって、画像入力部101に入力された時点の状態(元データ)に復元される。
【0068】
なお、フレーム内符号化モードの場合、スイッチ114が上側の接点を選択しているため、復号器107の出力は、加算器108での加算によって変化せず、そのまま再構成画像用メモリ109に出力される。
【0069】
いずれにしても加算器108の出力データは再構成画像用メモリ109に入力されて保存され、動き補償部110の求めるタイミングに合わせて再構成画像用メモリ109から動き補償部110へと供給される。
【0070】
一方、画像入力部101から順に入力された画像データは原画像用メモリ111に保存された後、上述したように順にシフトして原画像用メモリ112,113に保存される。
【0071】
本実施形態では、原画像用メモリ111〜113は3つなので、過去3フレーム分の画像データを保存できる。
【0072】
動き補償部110は再構成画像用メモリ109の出力と、原画像用メモリ111〜113の出力に基づいて動き補償を行い、その結果を減算器102およびスイッチ114に出力する。
【0073】
動き補償とは動きベクトルを求める操作のことである。動きベクトルはフレーム画面内の像の動きの大きさや方向を示す位置ベクトルに対応する情報であり、通常、フレーム画面内の像の動きをブロックの平行移動とみなして求められる。
【0074】
このような動きベクトルは、フレーム間符号化の符号化効率を高め、像の動きが大きい場合などでも、処理しなければならない情報量をできるだけ抑圧することによりレートコントロールを容易化するとともに、受信側での再現画像の品質を高めるために利用される。
【0075】
したがって動きベクトルはフレーム間符号化モード以外では求める必要がないため、フレーム間符号化モード以外には動き補償部110は動作を停止していてよい。
【0076】
ただし、フレーム内符号化モードからフレーム間符号化モードに切り替わったあとできるだけ早期に動きベクトルを求めるためには、再構成画像用メモリ109の格納内容や原画像用メモリ111〜113の格納内容は、フレーム内符号化モードでも、画像入力部101に新たなフレームが入力され、符号化器104で何らかの符号化が行われるたびに逐次、更新したほうがよい。
【0077】
図4に示す第1の動き予測部401は原画像用メモリ113から入力された画像データと、再構成画像用メモリ109から入力された復号データと、第2の動き予測部402から供給される補償部内参照画像情報をもとに、ブロックマッチングを用いて例えば図5に示したように動きベクトルV1の検出を行う。
【0078】
ブロックマッチング方式による動きベクトルの検出は、入力順があとの1フレーム内のブロックB1と入力順が先の1フレーム内の任意のブロックとを比較して、入力順が先の1フレームのなかに当該ブロックB1と最も一致するブロックB2を求める(探索する)ことによって行われる。
【0079】
ブロックB1、B2などのブロックの大きさは、ここでは16×16画素程度であるものとする。もちろん、これよりも大きなブロックや小さなブロックを使用することは可能である。
【0080】
1つの動きベクトルを求めるために必要な演算の総数は、ブロックの大きさが大きくなるほど増加する傾向がある。
【0081】
また、最も一致するブロックを探索する範囲を、入力順が先の1フレーム全部とすると演算数が増え過ぎるため、通常は、1フレームの一部に探索範囲を設定し、当該探索範囲内にかぎって探索する。
【0082】
1つの動きベクトルを求めるために必要な演算の総数はまた、この探索範囲の大きさが大きくなるほど増加する傾向がある。
【0083】
例えばこの演算総数Lは、前記文献1に記載されている次の式(1)によって求めることができる。
【0084】
L=(2J+1)×(2K+1)×(M×N)×3 …(1)
ここで、M、Nはブロックサイズ(Mライン×N画素)を示し、J、Kは探索範囲(±Jライン/フレーム、±K画素/フレーム)に対応し、最後の3は、画素ごとの差分演算、差分結果の絶対値または自乗を求めるための変換演算、およびこの変換結果を累積するための累積演算の3種の演算に対応している。
【0085】
一例として、J=K=M=N=8とすると、動きベクトルを求めるためのブロックあたりの演算総数は55488回、1画素あたり867回の演算数を要することになる。
【0086】
探索範囲は広げれば広げるほど像の大きな動きに対応でき、動き補償能力は向上するが、式(1)から明らかなように、演算数が膨大となる。
【0087】
もっとも、この式(1)は、1つの探索範囲の内部での演算数を示しているに過ぎず、実際に動きベクトルを求めるためには、このような探索範囲を相互にオーバーラップするように前フレーム上の全面に多数設定する必要があり、その数だけ前記55488回という値に乗じて得られる値が、通常、フレーム間のブロックマッチングで必要な演算数となる。
【0088】
次に、図5〜図7を用いて本実施形態の動き補償部110の動作の説明をする。前提として、入力順が連続する3フレームが、入力順に原画像用メモリ113,112,111に格納されているのは上述した通りであるが、再構成画像用メモリ109に格納されている画像データは、原画像用メモリ113に格納されているフレームの画像データよりも入力順が1つ先のデータである。
【0089】
これらの連続する4フレームを、入力順にF3、F2、F1、F0とする。現時点のフレームF0から入力順が遅い順に配列すると、F1、F2、F3と順次さかのぼっていく。
【0090】
現時点で、符号化装置10はフレーム間符号化モードになっていて、再構成画像用メモリ109にはフレームF3が格納され、原画像用メモリ113にはフレームF2が格納され、原画像用メモリ112にはフレームF1が格納され、原画像用メモリ111にはフレームF0が格納されている。
【0091】
フレームF3は符号化器104が直前に符号化したフレームで、フレームF2、F1は符号化器104が符号化せずにコマ落とししたフレームであり、フレームF0はいま画像入力部101に供給されているフレームである。
【0092】
符号化器104は当該フレームF0の差分データをフレーム間符号化しようとしているが、その符号化に先立って差分データを得るため、動き補償部110が出力する参照画像情報を用いて減算器102における減算を行わなければならない。
【0093】
タイミング上、フレームF0の画像データは、少なくとも後述する第1〜第3の動き予測部401〜403における処理が行われている期間、カメラなどの外部機器によって画像入力部101に保持される必要がある。
【0094】
また、前記第1の動き予測部401以外では、第2の動き予測部402には原画像用メモリ112からフレームF1の画像データが供給され、第3の動き予測部403には原画像用メモリ111からフレームF0の画像データが供給されている。
【0095】
符号化制御部105は、符号化器104にフレーム間符号化を行わせようとしている今、動き補償部110に動きベクトルを求めさせるため、以下の動作を行わせる。
【0096】
図5において、中央に位置した四角形P0はフレームF0の画面内のブロックであり、その左上の四角形P1はフレームF1の画面内のブロックである。
【0097】
外側の大きな四角形SE1は、フレームF0上のブロックP0の位置を中心としてフレームF1上に設定した動きベクトル探索範囲である。このSE1は図3のQE0と同じ大きさであってよい。
【0098】
図5の状態は、第2の動き予測部402からフレームF1の画像データを受け取り、原画像用メモリ111からフレームF0の画像データを受け取った第3の動き予測部403が、フレームF0内の任意のブロックを基準に、フレームF1内の探索範囲SE1を前記ブロックマッチング方式によって調べた結果、フレームF1内のブロックP1と、フレームF0内のブロックP0の一致度が最も高いことを検出した状態である。
【0099】
これにより、ブロックP1からP0に向かう(P1を始点、P0を終点とする)動きベクトルV1が求められる。
【0100】
この例では、検出された動きベクトルはV1だけであるが、フレーム画面内で複数の像が移動することなどもあり得るため、複数の動きベクトルが同時に検出されることもあり得る。
【0101】
なお、探索範囲SE1の大きさは、面積にして、例えばブロック(P0など)の数倍〜数十倍程度であってよい。
【0102】
第3の動き予測部403から第2の動き予測部402に供給される情報は、当該動きベクトルV1の情報と、当該ブロックP1の情報から構成される補償部内参照画像情報である。
【0103】
次に、原画像用メモリ112からフレームF1の画像データを受け取るとともに、この補償部内参照画像情報を受け取り、さらに第1の動き予測部401からフレームF2の画像データを受け取った第2の動き予測部402では、図6に示す動きベクトルV2を求める処理が行われる。
【0104】
第2の動き予測部402で行われるこの処理は、第3の動き予測部403における処理と同様に、フレームF1内の任意のブロック(前記P1を含む)を基準に、フレームF2内の探索範囲SE2をブロックマッチング方式によって調べた結果、フレームF2内のブロックP2と、フレームF1内のブロックP1の一致度が最も高いことを検出した状態である。
【0105】
これにより、ブロックP2からP1に向かう動きベクトルV2が求められる。
【0106】
なお、探索範囲SE2の大きさおよび位置は、前記探索範囲SE1と同じである。
【0107】
第2の動き予測部402から第1の動き予測部401に供給される補償部内参照画像情報は、動きベクトルV2の情報と、当該ブロックP2の情報から構成される。
【0108】
最後に、原画像用メモリ113からフレームF2の画像データを受け取るとともに、この補償部内参照画像情報を受け取り、さらに再構成画像用メモリ109からフレームF3の画像データを受け取った第3の動き予測部403では、図7に示す動きベクトルV3を求める処理が行われる。
【0109】
この処理は、第2の動き予測部402における処理と同様のブロックマッチングを利用した処理である。
【0110】
そしてこのブロックマッチングに対応する探索範囲SE3の大きさおよび位置は、前記SE1、SE2と同じである。
【0111】
第1の動き予測部401における処理が終わると、動きベクトルV3などの情報は第2の動き予測部402を介して第3の動き予測部403へ送られる。第3の動き予測部403はまた、適当なタイミングで、第2の動き予測部402からも動きベクトルV2などの情報を受け取っていて、図7に示すような、合成動きベクトルVを生成する。
【0112】
この合成動きベクトルVは、前記動きベクトルV1、V2、V3のベクトル和の結果として得られる動きベクトルである。この合成動きベクトルVは、フレームF0からF3までの期間における画面内での像の動きを示している。
【0113】
第3の動き予測部403はこの合成動きベクトルVの情報や、必要な画素値の情報を含む参照画像情報を構成して動き補償部110の外部へ出力する。出力されたこの参照画像情報は、減算器102およびスイッチ114に供給される。
【0114】
この参照画像情報を受け取った減算器102は、画像入力部101から供給されているフレームF0の元データからこの参照画像情報を減算し、その減算結果としての差分データを符号化器104に供給する。
【0115】
そして符号化器104が当該差分データに対してフレーム間符号化を施して、符号化結果を符号出力部106から外部に送出するとともに、復号器107に供給する。
【0116】
以上のように入力順が遅い順に、F0とF1のあいだ、F1とF2のあいだ、F2とF3のあいだで、それぞれブロックマッチングを行うことにより、動いた結果、新しいフレーム(F1に対してはF0、F2に対してはF1、F3に対してはF2)上に存在しなくなる像について動きベクトルを求めてしまう無駄を排除し、効率的な演算を行うことができる。
【0117】
図5〜図7の例では、コマ落としはF1、F2の連続する2フレームに対して行われたが、コマ落としが1フレームにだけ行われる場合、およびコマ落としが行われない場合について説明する。
【0118】
それまでコマ落としを行わずに、符号化器104が連続してフレームの符号化を行っている状況を想定すると、メモリ111〜113および109にはすべて、符号化されたフレームの画像データが格納されている。
【0119】
この状態で、画像入力部101に1フレームが入力され、この1フレームがコマ落としされるフレームであるとする。つづいて画像入力部101に入力されるフレームが、符号化器104においてフレーム間符号化されるフレームであるとすると、動き補償部110はこのフレーム間符号化のために動作する。
【0120】
このとき、メモリ111内のF0がこのフレーム、メモリ112内のF1がコマ落としされたフレーム、メモリ113内のF2およびメモリ109内のF3は符号化されたフレームである。
【0121】
このケースにおいては、動き補償部110の内部で、第1の動き予測部401の動作の一部と、第2の動き予測部402の動作と、第3の動き予測部403の動作だけが意味を持つ。F0とF1のあいだ、およびF1とF2のあいだで2つの動きベクトルが求められ、これらのベクトル和が、動き補償部110から出力される参照画像情報の構成要素となるからである。
【0122】
同様に、それまでコマ落としが全く行われてこなかったケースで、符号化器104が最新の入力フレームF3を処理(フレーム間符号化)する場合、第3の動き予測部403の動作と第2の動き補償部402の一部の動作だけが意味を持つ。この場合、本実施形態の符号化装置10の機能は、実質的に、上述した従来の符号化装置20の機能と同じとなる。
【0123】
本実施形態では、原画像用メモリ111〜113を3つ設けたため、最大で2つ連続するコマ落としにしか効率的に対応できないが、3つ以上連続するコマ落としに対しては、従来の符号化装置20における2つ以上連続するコマ落としに対する処理と同じ方法で対応し得る。
【0124】
また、本実施形態において、原画像用メモリおよび動き補償部110内部の動き予測部の数を増加すれば、3つ以上の連続コマ落としにも効率的に対応することが可能となる。
【0125】
なお、上記の例では、合成された動きベクトルVは、フレームF0上に終点を持ち、フレームF3上に始点を持っていたが、本実施形態で検出される動きベクトルはこのようなベクトルに限定されない。
【0126】
例えば、コマ落としされたフレームF2とF1のあいだでだけ動く像や、F1とF0のあいだでだけ動く像、F3とF2のあいだでだけ動く像、F2とF0のあいだでだけ動く像、F3とF1のあいだでだけ動く像などもあり得る。
【0127】
一例として、F2とF1のあいだでだけ動く像の動きベクトルは、第2の動き予測部402で求められた動きベクトルが唯一のベクトルで、それ以外に合成すべきベクトルを持たない。このような動きベクトルに関連する情報も、動き補償部110から出力される前記参照画像情報に含まれ得る。
【0128】
一方、前記連続2フレームコマ落としのケースで、もしも本実施形態のように、コマ落としされたフレームF1とF2を使用してV1、V2、V3を求めてからこれらを合成して最終的な動きベクトルVを求めるのではなく、従来のようにフレームF3とF0のあいだのブロックマッチングだけで直接、動きベクトルVを求めようとすると、探索範囲を相当に大きく設定しなければ動きベクトルVを検出すること自体が困難になり、動き補償能力が低下する。
【0129】
しかし探索範囲を大きくすると上述したように演算の総数が増加し、レートコントロールが難しくなる。
【0130】
また、フレームF3とF0のあいだのブロックマッチングを行う場合は、コマ落としされたフレームF1、F2に相当する期間に、動きベクトルの始点ブロックと終点となるべきブロックのあいだの一致度が低下し、誤った動きベクトルを検出してしまう可能性も高まって、動き補償能力が損なわれる。
【0131】
具体的には、連続する2つのフレーム間(例えばF0、F1間)の時間に比べて、F2、F1がコマ落としされた場合のF0とF3の間の時間は3倍になるため、フレーム画面内の像の動きの大きさは、F0、F3間ではF0、F1間の3倍になる。
【0132】
従来の符号化装置20でこの3倍の大きさの動きを捕捉するためには、探索範囲(前記QE0に相当)の面積を9(=32)倍にしなければならない。これに応じて演算数も、ほぼ9倍になる(式(1)参照)。
【0133】
これに対して本実施形態では、このQE0と同じ探索範囲で3回演算を実行するだけでよいため、探索範囲の面積の合計はQE0の3倍で足りる。
【0134】
この観点から、その他の条件が同じ場合、本実施形態の演算総数は、従来の1/3程度でよいことになる。
【0135】
(A−3)第1の実施形態の効果
以上詳細に説明したように、本実施形態によれば、コマ落としがあったり、コマ落としフレームが連続する場合でも、演算総数の増加を抑えてレートコントロールを容易にし、正確な動きベクトルを検出して動き補償能力の低下を防ぐことができるため、符号化装置の信頼性を向上することが可能となる。
【0136】
また、演算総数を抑制できるということは、ハードウエア的には符号化装置のの消費電力を低減し、規模を縮小できることを意味し、ソフトウエア的には、処理能力に対する負荷を軽減できることを意味する。
【0137】
(B)第2の実施形態
本実施形態では、第1の実施形態の動き補償部の処理で一定であった探索範囲の位置を変化させ、大きさを小さくすることを特徴とする。
【0138】
(B−1)第2の実施形態の構成および動作
第1の実施形態と本実施形態の構成上、動作上の主要な相違点は、動き補償部に関する点にかぎられる。
【0139】
図1において、本実施形態の動き補償部には、第1の実施形態の動き補償部110と区別するために符号110Aを付する。同様に、本実施形態の符号化装置には、第1の実施形態の符号化装置10と区別するために符号10Aを付する。
【0140】
以下では、第1の実施形態の構成、動作と異なる点についてのみ説明する。
【0141】
本実施形態の動き補償部110Aの内部およびその周辺の構成を図8に示す。
【0142】
図8において、動き補償部110Aは第1の動き予測部801と、第2の動き予測部802と、第3の動き予測部803と、探索範囲制御部804とから構成されている。
【0143】
第1の動き予測部801は前記第1の動き予測部401に対応し、第2の動き予測部802は前記第2の動き予測部402に対応し、第3の動き予測部803は前記第3の動き予測部403に対応するが、それぞれ探索範囲制御部804に関連する機能も備えている。
【0144】
すなわち、第1の動き予測部501は再構成画像用メモリ109からの信号を入力する部分と原画像用メモリ113からの信号を入力する部分と探索範囲制御部804からの制御信号を入力する部分を備え、第2の動き予測部802は原画像用メモリ112からの信号を入力する部分と探索範囲制御部804からの制御信号を入力する部分を備え、第3の動き予測部803は原画像用メモリ113からの信号を入力する部分と探索範囲制御部804からの制御信号を入力する部分を備えている。
【0145】
次に、第1の実施形態のF1、F2の2フレーム連続のコマ落としがある場合を例に、本実施形態の動作を説明する。
【0146】
まず第3の動き予測部801は、原画像用メモリ111から入力された画像データF0と、第2の動き予測部802から得たフレームF1の画像データのあいだで、ブロックマッチングを用いて動きベクトル検出を行う。
【0147】
このブロックマッチングに際して、探索範囲制御部804は動き予測部801に探索範囲を指示する。ここで指示された探索範囲が、図5に一点鎖線で示した探索範囲VE1である。探索範囲VE1は、フレームF0上のブロックP0の位置を中心としてフレームF1上に設定した探索範囲である。
【0148】
上述した2連続コマ落としのケースにおいて、従来は、フレームF3とF0のあいだで直接、探索(ブロックマッチング)し、動きベクトルVを求める。この探索を±15画素の探索範囲で行うものとすると、本実施形態では、±5画素の探索範囲で探索しても動き補償能力は従来よりも高い。
【0149】
なぜなら、フレームF1とF0のあいだの時間はフレームF3とF0のあいだの時間の1/3であるため、フレーム画面中で像が動く距離は1/3になるのに加えて、動きベクトルの始点ブロックと終点となるべきブロックのあいだの一致度は、経過時間の短いフレームF1、F0間のほうが、F3、F0間よりも高いのが普通だからである。
【0150】
例えばフレームF3とF0の時間間隔を1/30秒とすると、フレームF1とF0の時間間隔はほぼ1/100秒であるため、F1、F0間ではF3、F0間に比べて、フレーム画面中の像(被写体)の動く距離は短く、光学的な条件などの変化で当該像の同じ部位の画素値が変化してしまう程度や頻度も低い。
【0151】
さらに、始点ブロックと終点ブロックの一致度が高いということは、本来、動きベクトルでないものを動きベクトルとして誤って検出する可能性が低いことを意味する。
【0152】
次に、第2の動き予測部802において、第1の動き予測部801の処理で得られた動きベクトルをもとに動きベクトル検出を行う。その場合も同様に探索範囲制御部804が指示された探索範囲で検出を行う。この探索範囲は、図6に一点鎖線で示した探索範囲VE2である。
【0153】
探索範囲VE2は、フレームF1上のブロックP1の位置を中心としてフレームF2上に設定した探索範囲である。
【0154】
同様に、第1の動き予測部801は、画像用メモリ113から入力された画像データF2と再構成画像用メモリ109から入力された復号データF3とからブロックマッチングを用いて動きベクトル検出を行う。
【0155】
ここでのブロックマッチングも、第2の動き予測部802の処理で得られた動きベクトルをもとに行われ、動きベクトルが検出される。その場合も同様に探索範囲制御部804が指示した探索範囲VE3で検出を行う。
【0156】
探索範囲VE3は、フレームF2上のブロックP2の位置を中心としてフレームF3上に設定した探索範囲である。
【0157】
本実施形態では第1の実施形態の探索範囲と異なり、この±5画素という小さな探索範囲のフレーム画面中の位置は、図5〜図7に一点鎖線で示した探索範囲VE1、VE2、VE3のように変化していく。そしてこれらVE1〜VE3の存在し得る領域は、第1の実施形態の前記SE1の範囲に限定しても、第1の実施形態と同等な動き補償能力が保たれる。
【0158】
本実施形態の探索範囲VE1などの面積は第1の実施形態の探索範囲SE1などの面積の1/9なので、その他の条件が同一ならば、本実施形態の演算数は第1の実施形態の演算数の1/9程度になる。
【0159】
最後に、第3の動き予測部803が、得られた各動きベクトルのベクトル和を用いて参照画像情報を作成し、減算器102およびスイッチ114に入力する点などは、第1の実施形態と同じである。
【0160】
(B−2)第2の実施形態の効果
本実施形態によれば、第1の実施形態の効果と同等な効果を得ることができる。
【0161】
加えて、本実施形態では、第1の実施形態に比べて演算総数はさらに減少することが可能である。
【0162】
例えば上下左右15画素の探索範囲の全探索をして検出する場合、第1の実施形態の評価値演算の回数は、31×31=961回(前記式(1)参照)であるが、本実施形態では1回毎に上下左右5画素の範囲を検出することで第1の実施形態と同じ範囲をカバーしているので、(11×11)×3=363回である。よって演算数は、約62%の削減が可能となる。
【0163】
なお、合成動きベクトルを求めるため第3〜第1の動き予測部で行われる3回のブロックマッチングのための演算数で比較すると、本実施形態の演算数は上述したように、第1の実施形態の演算数のほぼ1/9になる。
【0164】
反対に第1の実施形態と同じ程度の演算総数を許容するなら、本実施形態では、探索範囲を大きくしてフレーム画面内でのいっそう大きな像の動きに対応することができるので、動き補償能力が向上する。
【0165】
(C)第3の実施形態
第1および第2の実施形態では、フレーム画面内で上下左右に連続する画素すべてについて評価値演算を行っていたが、本実施形態は評価値演算の対象となる画素を断続的に設定することを特徴とする。
【0166】
(C−1)第3の実施形態の構成および動作
第1の実施形態と本実施形態の構成上、動作上の主要な相違点は、動き補償部に関する点にかぎられる。
【0167】
図1において、本実施形態の動き補償部には、第1の実施形態の動き補償部110と区別するために符号110Bを付する。同様に、本実施形態の符号化装置には、第1の実施形態の符号化装置10と区別するために符号10Bを付する。
【0168】
以下では、第1の実施形態の構成、動作と異なる点についてのみ説明する。
【0169】
本実施形態の動き補償部110Bの内部およびその周辺の構成を図9に示す。
【0170】
図9において、動き補償部110Bは第1の動き予測部901と、第2の動き予測部902と、第3の動き予測部903と、評価値演算制御部904とから構成されている。
【0171】
第1の動き予測部901は前記第1の動き予測部401に対応し、第2の動き予測部902は前記第2の動き予測部402に対応し、第3の動き予測部903は前記第3の動き予測部403に対応するが、それぞれ評価値演算制御部904に関連する機能も備えている。
【0172】
すなわち、第1の動き予測部901は再構成画像用メモリ109からの信号を入力する部分と原画像用メモリ113からの信号を入力する部分と評価値演算制御部904からの制御信号を入力する部分を備え、第2の動き予測部902は原画像用メモリ112からの信号を入力する部分と評価値演算制御部904からの制御信号を入力する部分を備え、第3の動き予測部903は原画像用メモリ113からの信号を入力する部分と評価値演算制御部904からの制御信号を入力する部分を備えている。
【0173】
図10は16画素×16画素(=256画素)のブロックで、白い四角形も黒い四角形も当該ブロック内の各画素を示している。このブロックが動きベクトルを求める際の単位なので、第1および第2の実施形態では、白および黒の四角形すべて(256画素)について評価値演算を行っていたことになる。
【0174】
これに対し本実施形態では、例えば黒い四角形の128画素についてのみ評価値演算を行うことになる。
【0175】
そのため、本実施形態の動き補償部110Bは、以下のようになる。
【0176】
まず、第3の動き予測部903は画像用メモリ111から入力された画像データF0と第2の動き予測部902から供給される画像データF1とから、ブロックマッチングを用いて動きベクトル検出を行う。
【0177】
この際に、評価値演算制御部904が、評価値演算に用いる画素を例えば図10の黒い部分に相当する画素のみとするように、第1の動き予測部901に指示する。
【0178】
次に第2の動き予測部902において、第3の動き予測部903における処理の結果得られた動きベクトルをもとに動きベクトル検出を行う。その場合、第2の動き予測部902も、第3の動き予測部903と同様に評価値演算制御部904が指示した方法で検出を行う。
【0179】
第1の動き予測部901が、第2の動き予測部902における処理の結果得られた動きベクトルをもとに動きベクトル検出を行う場合も、同様に評価値演算制御部904が指示した方法で検出を行う。
【0180】
第3の動き予測部得903は得られた各動きベクトルのベクトル和を用いて参照画像情報を作成し、減算器102およびスイッチ114に入力する。
【0181】
なお、本実施形態のように評価値演算に用いる画素の密度を減らすと、演算数が減少する一方で、一致度自体の精密さが低下して動きベクトルの誤検出が発生する可能性は高まると考えられるが、一致度の精密さの低下の影響が動きベクトルの誤検出をもたらさない範囲で画素の密度を減らすようにするとよい。
【0182】
(C−2)第3の実施形態の効果
本実施形態によれば、第1の実施形態の効果と同等な効果を得ることができる。
【0183】
加えて、本実施形態では、第1の実施形態に比べて演算総数はさらに減少することが可能である。
【0184】
例えば、上述したように1画素おきに(黒い四角形についてだけ)評価値演算を行う場合、すべての画素を用いて評価値演算した場合の半分の演算回数で評価値が求められる。
【0185】
反対に、本実施形態で第1の実施形態と同じ回数の演算を行う場合には、探索範囲を広げることができ、像の急激な動きにも対応してより正確に動きベクトルを検出することが可能で、動き補償能力が向上する。
【0186】
(D)第4の実施形態
第1〜第3の実施形態の動き補償部の処理では、動きベクトルは最初から一致度が最も高いブロック間に1つだけ検出し、その1つについて処理を進めたため、もしも第1〜第3の動き予測部の1つで求められた動きベクトルに誤りがあると、最終的に動き補償部から出力される動きベクトルの情報も誤ったものとなる。
【0187】
これに対し、本実施形態では、複数の候補ベクトルを求め、動き補償部における処理の過程で、複数の候補ベクトルのなかから1つの動きベクトルを選択することを特徴とする。
【0188】
(D−1)第4の実施形態の構成および動作
第1の実施形態と本実施形態の構成上、動作上の主要な相違点は、動き補償部に関する点にかぎられる。
【0189】
図1において、本実施形態の動き補償部には、第1の実施形態の動き補償部110と区別するために符号110Cを付する。同様に、本実施形態の符号化装置には、第1の実施形態の符号化装置10と区別するために符号10Cを付する。
【0190】
以下では、第1の実施形態の構成、動作と異なる点についてのみ説明する。
【0191】
本実施形態の動き補償部110Cの内部およびその周辺の構成を図11に示す。
【0192】
図11において、動き補償部110Cは第1の動き予測部1101と、第2の動き予測部1102と、第3の動き予測部1103と、評価値演算制御部1104と、候補ベクトル決定部1105と、動きベクトル決定部1106とから構成されている。
【0193】
なお、評価値演算制御部1104は、第3の実施形態における評価値演算制御部904の機能に加え、第2の実施形態の探索範囲制御部804の持つ機能をも装備している。
【0194】
第1の動き予測部1101は前記第1の動き予測部401に対応し、第2の動き予測部1102は前記第2の動き予測部402に対応し、第3の動き予測部1103は前記第3の動き予測部403に対応するが、それぞれ評価値演算制御部1104、候補ベクトル決定部1105、動きベクトル決定部1106に関連する機能も備えている。
【0195】
すなわち、第1の動き予測部1101は再構成画像用メモリ109からの信号を入力する部分と原画像用メモリ113からの信号を入力する部分と評価値演算制御部1104からの制御信号を入力する部分を備え、第2の動き予測部1102は原画像用メモリ112からの信号を入力する部分と第1の動き予測部1101からの信号を入力する部分と評価値演算制御部1104からの制御信号を入力する部分を備え、第3の動き予測部1103は原画像用メモリ113からの信号を入力する部分と候補ベクトル決定部1105からの信号を入力する部分と評価値演算制御部1104からの制御信号を入力する部分を備えている。
【0196】
次に、図11〜14を用いて動き補償部110Cの動作の説明をする。
【0197】
まず第3の動き予測部1103は原画像用メモリ111から入力された画像データF0と、候補ベクトル決定部1105を介して第2の動き予測部1102から供給される画像データF1とから、ブロックマッチングを用いて動きベクトルの検出を行う。その場合、評価値演算制御部1104は第3の動き予測部1103に対し、候補ベクトルとして例えば2本挙げるように指示する。
【0198】
第3の動き予測部1103は、例えば上述した一致度が高い順に、ブロックを2組選択することで、一例として、図12に示した2本の候補ベクトルV1−1、V1−2を得るものとする。
【0199】
図12は、フレームF1中のブロックのうちで、フレームF0中のブロックP0との一致度が最も高いブロックがP1−1であり、2番目に高いブロックがP1−2であり、P0、P1−1間、P0、P1−2間に動きベクトルの第1次候補ベクトルV1−1、V1−2が得られたケースである。FV1は、前記VE1と同様な探索範囲である。
【0200】
次いで、第2の動き予測部1102は評価値演算制御部1104からの指示によって、1本の第1次候補ベクトルにつき2本ずつ、第2次の候補ベクトルを求める。
【0201】
第2次の候補ベクトルは、例えば図13に示すV2−1、V2−2、V2−3、V2−4のような、4本のベクトルである。第1次の候補ベクトルと同様、第2次の候補ベクトルも一致度に応じて求めることができる。
【0202】
図13中、FV2−1、FV2−2は、前記VE2と同様な探索範囲であるが、本実施形態では、2つの第1次の候補ベクトルについて処理するため、2つの探索範囲が設定されている。
【0203】
フレームF2上に設定された探索範囲FV2−1のなかのブロックのうちで、ブロックP1−1に対する一致度が最も高いブロックがP2−1で、2番目に高いブロックがP2−2であり、同様に、フレームF2上に設定された探索範囲FV2−2中のブロックのうちで、ブロックP1−2に対する一致度が最も高いブロックがP2−3で、2番目に高いブロックがP2−4であるものとする。
【0204】
本実施形態の補償部内参照画像情報は、上述した第1の実施形態の補償部内参照画像情報に加えて、これらの各次の候補ベクトルの情報やこれらの候補ベクトルに関する付帯情報を含んでいる。この付帯情報は、例えば第2次の各候補ベクトルの始点ブロックに対する終点ブロックの一致度の情報であってよい。
【0205】
第2の動き予測部1102は、補償部内参照画像情報を第1の動き予測部1101に供給する前に、候補ベクトル決定部1105の処理を受ける。
【0206】
この補償部内参照画像情報を受け取った候補ベクトル決定部1105は、V2−1とV2−2のなかから1つの候補ベクトルを選択するとともに、V2−3とV2−4のなかから1つの候補ベクトルを選択する。
【0207】
この選択には例えば、前記始点ブロックに対する終点ブロックの一致度を使用してもよい。
【0208】
ただし、第2の動き予測部1102で第2次の候補ベクトルを得る際にも一致度を使用したため、候補ベクトル決定部1105でも同じ一致度を使用して候補ベクトルを選択しては、最初から第2の候補ベクトルを第1次の候補ベクトル1つについて1つだけ求めても同じ結果となってしまう。
【0209】
したがって、候補ベクトル決定部1105が第2次の候補ベクトルを選択する際の基準と、第2の動き予測部1102が第2次の候補ベクトルを得る際の基準とは異なるほうが効果的である。
【0210】
例えば、候補ベクトル決定部1105の処理では、フレームF2内のブロックとフレームF1内のブロックとの一致度だけでなく、フレームF2内のブロックとフレームF0内のブロックとの一致度も加味して、第2次の候補ベクトルの選択を行うようにする方法などが考えられる。
【0211】
この場合、一例としては、ブロックP1−1に対する一致度はブロックP2−2のほうがブロックP2−1よりも高かったとしても、前記ブロックP0に対する一致度はブロックP2−1のほうがP2−2よりも高ければ、その程度にしたがい、ブロックP2−1、すなわち第2次の候補ベクトルV2−1のほうが選択されることもあり得る。
【0212】
ここでは、4つの第2次の候補ベクトルのうち、V2−1(終点ブロックP2−1)とV2−3(終点ブロックP2−3)とが候補ベクトル決定部1105で選択されたものと仮定する。
【0213】
選択された第2次候補ベクトルの情報を持つ補償部内参照画像情報は、第1の動き予測部1101に供給される。第1の動き予測部1101はこのほか、原画像用メモリ113から画像データF2を受け取り、再構成画像用メモリ109から復号データF3を受け取る。
【0214】
これらの情報を用いて第1の動き予測部1101は、一致度を基準に、第2の動き予測部1102と同様な動作を行い、図14に示すように、新たに4つの第3次の候補ベクトルV3−1、V3−2、V3−3、V3−4を求める。ここで、FV3−1、FV3−2は、前記FV2−1、FV2−2と同様な探索範囲である。
【0215】
なお、図12、図13、図14に示した大きな四角形Rは、大きさが第1の実施形態の探索範囲SE1などと同じ範囲であって、本実施形態の探索範囲FV2−1、FV2−2、FV3−1、FV3−2などが設定され得る最大限の領域を示している。
【0216】
第1の動き予測部1101における処理が終わると、選択された第2次候補ベクトルと、第3次候補ベクトルの情報を含む補償部内参照画像情報が、各部1102,1105,1103を介して動きベクトル決定部1106に供給される。
【0217】
当該補償部内参照画像情報を受け取った動きベクトル決定部1106は、これら4つの第3次の候補ベクトルから1つだけを選択することで最終的な動きベクトルを決定する。
【0218】
動きベクトル決定部1106におけるこの選択の基準と第1の動き予測部1101の第3次候補ベクトルを求める際の基準の関係については、前記候補ベクトル決定部1105の基準と、第2の動き予測部1102の基準の関係と同様で、相互に相違しているほうがよい。
【0219】
ただし動きベクトル決定部1106では、2つの候補ベクトルを選択した候補ベクトル決定部1105と異なり、最終的に1つの候補ベクトルを決定するため、いっそう包括的で信頼性の高い基準で選択することが求められる。
【0220】
一例としては、終点ブロックP3−1、P3−2、P3−3、P3−4のそれぞれと対応するブロックすべての一致度を、包括的に比較してもよい。
【0221】
すなわち、ブロックP3−1とP2−1の一致度だけでなく、P3−1とP1−1の一致度、P3−1とP0の一致度を加味した所定の計算式を設定して、その値を求める。同様に、ブロックP3−2、P3−3、P3−4についても同等な計算式に基づいてその値を求め、これら4つの値を比較することで第3次の候補ベクトルを1つだけ選択する
なお、動き補償部110Cで最終的に求められ外部へ出力される動きベクトルは、第3次よりも第2次、第2次よりも第1次と、早期の段階の候補ベクトルが誤っているほど、実際の像の動きに対応した真の動きベクトルから大きくかけ離れたものとなる可能性が高い。したがって、この計算式および動き補償部110Cは、第1の動き予測部1101などの誤りを、第3の動き予測部1103などの処理によって回復し、修正できるようにつくることが望ましい。
【0222】
図14の例では、第3次候補ベクトルV3−1が選択されている。
【0223】
第3次の候補ベクトルV3−1が選択されると、対応する第2次、第1次の候補ベクトルとのベクトル和により、最終的な動きベクトルVC(=V1−1+V2−1+V3−1)が求められ、このVCの情報を含む参照画像情報が出力される。
【0224】
動き補償部110Cからスイッチ114や減算器102に出力されるこの参照画像情報は、本実施形態の場合も第1の実施形態と同じ構成であってよい。
【0225】
なお、本実施形態においては、第2の動き予測部1102と第3の動き予測部1103のあいだに設けた候補ベクトル決定部1105により、候補ベクトルの数が増加し過ぎることがなく、第3の動き予測部1103における演算数も多くない。
【0226】
もしも候補ベクトル決定部1105がなければ、上記の例で、V2−1などの第2次候補ベクトルはすべて第1の動き予測部1101に供給され、V3−1などの第3次候補ベクトルは8つになる。したがって探索範囲FV3−1、FV3−2の数を増やし、演算数を増加する必要が生じる。
【0227】
(D−2)第4の実施形態の効果
本実施形態によれば、第1の実施形態の効果と同等な効果を得ることができる。
【0228】
加えて、本実施形態では、複数の候補ベクトルを求めて選択する過程で動きベクトルの誤検出を修正し防ぐことが可能で、短い時間で複雑に動く物体にも対応することができる。これにより、動きベクトル検出の信頼性を向上することが可能である。
【0229】
(E)他の実施形態
第1〜第4の実施形態ではフレームレート10Hz固定の場合、すなわち連続3フレームのうち、2フレームがこま落ちする場合を示しているが、本発明は、他のフレームレート、可変のフレームレートにも適応可能である。
【0230】
その場合、必要に応じて、原画像用メモリの数を4つ以上にすることになる。
【0231】
なお、第1〜第4の実施形態の場合も、10Hz固定とはいえ、フレームレートの瞬時値は時々刻々と変化していて、例えば5Hzになったり30Hzになったりし得る。
【0232】
このため、フレームレート10Hz固定の場合でも、実際には、原画像メモリの数は4つ以上にしたほうが、動き補償能力の向上や処理の効率性の観点から好ましい。原画像用メモリが3つでは、最大2フレーム連続のコマ落としにしか対応できない。瞬間的に3フレーム以上の連続コマ落としが発生すると、探索範囲を拡大することが必要となり、発明が解決しようとする課題に記載した問題と同じ問題が発生することとなる。
【0233】
ただし本発明は、原画像用メモリの数が最低限2つであっても、1フレームのコマ落としには対応することができ、一定の効果を保有する。
【0234】
さらに、第1〜第4の実施形態などにおける「フレーム」は、いわゆるNTSC信号などの場合、「フィールド」と置き換えてもよい。
【0235】
また、前記探索範囲制御、評価値演算制御も可変にすることはもちろん可能である。同様に候補ベクトルの数の増加や適時変更も可能である。
【0236】
なお、第4の実施形態の評価値演算制御部1104は、第3の実施形態における評価値演算制御部904の機能と、第2の実施形態の探索範囲制御部804の機能を兼ね備えていたが、第3の実施形態の評価値演算制御部904の機能だけを装備するようにしてもよい。
【0237】
同様に、第3の実施形態の評価値演算制御部904が第2の実施形態の探索範囲制御部804の機能も兼ね備えるようにしてもよい。
【0238】
要するに、本発明において、探索範囲制御機能と評価値演算制御機能とは、単独で装備することも併せて装備することも可能である。
【0239】
また、第1〜第4の実施形態も含め、通常、動きベクトルは符号化、すなわち動き補償符号化に利用されるものであるが、本発明の適用はこれに限定されない。
【0240】
たとえば符号化を伴わない場合であっても、3つ以上の連続フレームの画面における像の動きを効率的に求める目的で、本発明を利用することができる。
【0241】
すなわち、本発明は、入力順が先の始点画面中の第1の位置を始点とすると共に、入力順が後の終点画面中の第2の位置を終点とすることで、始点画面から終点画面にいたる期間内で画面中の像の動きを示す合成動きベクトルを検出する動きベクトル検出装置について、広く適用することができる。
【0242】
【発明の効果】
以上に説明したように、本発明によれば、演算数の増加を抑制しながら、動きベクトル検出の信頼性を向上することが可能である。
【図面の簡単な説明】
【図1】実施形態に係る符号化装置の構成を示すブロック図である。
【図2】従来の符号化装置の構成を示すブロック図である。
【図3】従来の符号化装置におけるブロックマッチング動作を説明する概略図である。
【図4】第1の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図5】第1および第2の実施形態の動き補償部のブロックマッチングを説明する概略図である。
【図6】第1および第2の実施形態の動き補償部のブロックマッチングを説明する概略図である。
【図7】第1および第2の実施形態の動き補償部のブロックマッチングを説明する概略図である。
【図8】第2の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図9】第3の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図10】第3の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【図11】第4の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図12】第4の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【図13】第4の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【図14】第4の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【符号の説明】
10、10A、10B、10C…符号化装置、104…符号化器、105…符号化制御部、110,110A、110B、110C…動き補償部、111〜113…原画像用メモリ、401,801,901,1101…第1の動き予測部、402,802,902,1102…第2の動き予測部、403,803,903,1103…第3の動き予測部、804…探索範囲制御部、904、1104…評価値演算制御部、1105…候補ベクトル決定部、1106…動きベクトル決定部。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a motion vector detection device, and is suitable for use in, for example, moving image encoding in moving image compression.
[0002]
[Prior art]
A conventional technique of this type is shown in the following document 1.
[0003]
Reference 1: “Digital signal processing technology in video equipment” (Trikes, P.35-P.37)
Supervised by Satoshi Ito and Hiroo Takemura
A moving image consists of a lot of information, and it is necessary to compress the data in order to communicate or store the data. As a moving image compression method, there are an inter-frame differential encoding method using a correlation with a previous image in time, a motion compensation using block matching, and the like. A motion compensation method using block matching shown in the above-mentioned document 1 will be briefly described with reference to FIG.
[0004]
FIG. 2 is a diagram showing a conventional encoding device 20.
[0005]
In FIG. 2, an encoding device 20 inputs an image input unit 101 that inputs image data captured from a camera or the like, a subtractor 102 that takes a difference between an input image signal and an image encoded in time, A switch 103 that selects whether the data to be encoded is original data or differential data, an encoder 104 that encodes the input data, and an encoding control unit 105 that controls the switch 103 and the encoder 104. A code output unit 106 that outputs the encoded data, a decoder 107 that decodes the encoded data, an adder 108 that adds the decoded difference data and the reference image, and a re-store that stores the decoded image A component image memory 109, an original image memory 111 that stores the original image, and a motion compensation unit that performs motion compensation from outputs of the original image memory 111 and the reconstructed image memory 109 01, a switch 114. for selecting whether to output the output of the motion compensation unit 201 to the adder 108.
[0006]
Next, the operation of the encoding device 20 will be described.
[0007]
First, when image data captured from an external device such as a camera is input to the image input unit 101, the data is input to the subtractor 102, the original image memory 111, and the switch 103.
[0008]
After calculating the difference between the data input to the subtracter 102 and the temporally previous image, the encoding control unit 105 encodes the difference data, encodes the original data, or drops frames. Decide what.
[0009]
The encoding of the difference data is interframe encoding, and the encoding of the original data is intraframe encoding.
[0010]
Inter-frame coding, intra-frame coding, and frame dropping are executed by the encoder 104 that has received an instruction from the coding control unit 105.
[0011]
Data input to the encoder 104 is subjected to processing such as transformation and quantization such as DCT. Also, when dropping frames for rate control, input data may be discarded without doing anything.
[0012]
The data encoded by the encoder 104 is output to the outside from the code output unit 106 and simultaneously output to the decoder 107.
[0013]
The data input to the decoder 107 undergoes conversion such as inverse quantization and inverse DCT, and is output to the adder 108.
[0014]
If the data input to the adder 108 is differential data obtained by inter-frame coding, the output of the motion compensation unit 201 is input to the adder 108 via the switch 114 and added to the differential data, and then reconstructed. The image is output to the image memory 109. In the case of intra-frame coding, it is output to the reconstructed image memory 109 as it is.
[0015]
The data input to the reconstructed image memory 109 is stored, and the data is output in accordance with the timing required by the motion compensation unit 201.
[0016]
The motion compensation unit 201 performs motion compensation from the output of the reconstructed image memory 109 and the output of the original image memory 111 and outputs the result to the subtractor 102 and the switch 114.
[0017]
Next, the operation of the motion compensation unit 201 will be described with reference to FIG.
[0018]
The motion compensation unit 201 performs block matching from the image data input from the original image memory 111 and the decoded data input from the reconstructed image memory 109, and performs motion vector detection, for example, as shown in FIG.
[0019]
The outer square QE0 indicated by the thick solid line in FIG. 3 indicates the motion vector search range (previous frame), and the square indicated by the thick solid line indicates the block for which the motion vector is to be obtained (current frame, here 16 pixels × 16 pixels). Block Q1 and the dotted square (previous frame) is the block Q0 of the previous frame that is most similar to the thick solid square block and has the highest degree of coincidence.
[0020]
As a method for evaluating similarity, that is, the degree of coincidence, for example, there is a method of taking the one having the smallest difference between pixels.
[0021]
The difference between the two block positions (Q1 position vector with reference to Q0) becomes a motion vector, which is used to create a reference image and input it to the subtractor 102 and the switch 114.
[0022]
[Problems to be solved by the invention]
However, when motion compensation is performed as described above, there is a problem in that the search range is expanded when a frame is dropped and the total number of operations increases.
[0023]
A moving picture such as a normal TV operates at 30 Hz, and the frame interval is 1/30 second. However, when moving pictures are transmitted at a low rate, frame dropping may be necessary. The interval is 1/10 seconds. This is a frame interval corresponding to three times the 1/30 second.
[0024]
If the frame interval increases, the movement distance of the image in the frame screen usually increases, so the motion of the image cannot be captured unless the motion vector detection range (search range) is widened, and there is a possibility of erroneous detection of the motion vector. As a result, sufficient motion compensation cannot be performed.
[0025]
Further, widening the search range means that the number of operations increases, and hardware causes an increase in power consumption and an increase in scale, and software causes a load on processing capacity.
[0026]
Furthermore, when the search range is expanded and the number of operations increases, the time for obtaining a motion vector becomes longer, and the encoder cannot perform interframe coding until the motion vector is obtained. This causes unnecessary frame dropping and also causes the frame rate to drop.
[0027]
[Means for Solving the Problems]
In order to solve such a problem, in the present invention, the input order is the first position in the previous start screen, and the second position in the later end screen is the end point in the input order. , A composite motion vector indicating the motion of the image in the screen within the period from the start point screen to the end point screen. In blocks Detecting motion vector detection device Because (1) start point screen storage means for storing image data of the start point screen; (2) end point screen storage means for storing image data of the end point screen; and (3) intermediate input between the start point screen and end point screen. Remember at least one intermediate screen entered in order Small At least one intermediate screen storage means, and (4) between each screen from the start screen to the end screen between two screens adjacent to each other in the order of input. ,in front The element motion vector that is a component of the combined motion vector In blocks Ask At the same time, the sequential processing for obtaining the element motion vector between the two screens whose input order is later is performed first. And a prediction calculation means for generating the synthesized motion vector by performing vector synthesis on a plurality of element motion vectors.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
(A) Embodiment
The first to fourth embodiments are characterized in that a motion vector is accurately and efficiently obtained even when there is a frame in which data is discarded without being encoded even if input, that is, even when there is a frame drop. And
[0029]
(A-1) Configuration of the first embodiment
FIG. 1 is a block diagram showing an encoding apparatus 10 according to the first embodiment. The same components as those of the conventional encoding device 20 shown in FIG. The main difference in configuration between the encoding device 20 of FIG. 2 and the encoding device 10 is that the number of original image memories which is one in the encoding device 20 is three. This is an internal configuration of the motion compensation unit 110.
[0030]
In FIG. 1, an encoding apparatus 10 includes an image input unit 101, a subtracter 102, a switch 103, an encoder 104, an encoding control unit 105, a code output unit 106, a decoder 107, and an adder. 108, a reconstructed image memory 109, original image memories 111, 112, and 113, a motion compensation unit 110, and a switch 114.
[0031]
Among these, the components denoted by the same reference numerals 101 to 109 and 114 as those in FIG. 2 have the same functions as the corresponding components of the encoding device 20, and thus detailed description thereof is omitted.
[0032]
In FIG. 4 showing the configuration inside and around the motion compensation unit 110, the motion compensation unit 110 includes a first motion prediction unit 401, a second motion prediction unit 402, and a third motion prediction unit 403. I have.
[0033]
The first motion prediction unit 401 includes two input terminals, the output terminal of the reconstructed image memory 109 is connected to the input terminal for the reconstructed image, and the original image memory 113 is connected to the input terminal for the original image. Output terminal is connected.
[0034]
Similarly, the second motion prediction unit 402 includes two input terminals, the output terminal of the first motion prediction unit 401 is connected to the input terminal for the motion prediction unit, and the original image input terminal is connected to the original image input terminal. The output terminal of the image memory 112 is connected.
[0035]
Further, the third motion prediction unit 403 includes two input terminals, the output terminal of the second motion prediction unit 402 is connected to the input terminal for the motion prediction unit, and the original image is input to the input terminal for the original image. The output terminal of the memory 111 is connected.
[0036]
However, the input terminals for the motion prediction units of the third and second motion prediction units 403 and 402 are not input-only terminals but input / output terminals that also perform output as required.
[0037]
Eventually, the path composed of the reconstructed image memory 113, the first motion prediction unit 401, the second motion prediction unit 402, and the third motion prediction unit 403 relates to the motion of the image in the frame screen. Data is transmitted while being sequentially processed.
[0038]
Then, the original image data (original data) supplied from the original image memories 113 to 111 is used for this processing that is sequentially performed in each of the motion prediction units 401 to 403.
[0039]
The original image memories 113 to 111 store data of three frames that are continuously input to the image input unit 101 from a camera or the like. The Of the three, the first frame in the input order is stored in the original image memory 113, the second frame in the input order is stored in the original image memory 112, and the last frame in the input order is the original image. It is stored in the memory 111 for use.
[0040]
In this state, when one new frame is input to the image input unit 101, the new one frame is stored in the original image memory 111, and the three frames already stored in the original image memory are: The data is shifted one memory at a time from the original image memory 111 toward the original image memory 113.
[0041]
Accordingly, in one shift, the earliest frame is discarded from the original image memory 113, the second frame is shifted from the original image memory 112 and stored in the memory 113, and the last frame is the original image. Shifted from the main memory 111 and stored in the memory 112. As a result, the new first, second, and last three consecutive frames are set.
[0042]
The interval at which one frame is input to the image input unit 101 coincides with the interval at which the encoder 104 processes one frame.
[0043]
There are three types of processing in the encoder 104: intra-frame encoding, inter-frame encoding, and no encoding (frame dropping).
[0044]
Here, the frames input to the image input unit 101 are supplied at an average interval of 1/30 seconds, and the code for one frame output from the code output unit 106 is transmitted at an average interval of 1/10 seconds. To do. That is, 2 frames out of arbitrary 3 consecutive frames are dropped and are not used for encoding in the encoder 104.
[0045]
In other words, if the input of the encoding device 10 is 30 Hz, the output is 10 Hz (due to compression, the output data rate is smaller than 1/3 of the input data rate).
[0046]
In the encoding device 10, the switches 103 and 114 are interlocked, and when the switch 103 selects the subtractor 102 side, the switch 114 selects the lower contact and adds the output of the motion compensation unit 110. To the vessel 108.
[0047]
Conversely, when the switch 103 selects the upper contact and supplies the original data (image data supplied to the image input unit 101) to the encoder 104, the switch 114 changes the upper contact. Select to stop supplying the output of the motion compensation unit 110 to the adder 108.
[0048]
The switch 103 selects the upper contact when the encoder 104 performs intra-frame encoding (using the original data), and the switch 103 selects the contact on the subtractor 102 side. Reference numeral 104 denotes a case where interframe coding is performed (using difference data).
[0049]
Such switching of the switches 103 and 114 is performed based on an instruction from the encoding control unit 105. In general, the encoding control unit 105 selects intra-frame encoding and inter-frame encoding so that the compression effect is enhanced (encoding efficiency is increased), and performs rate control.
[0050]
Even during one communication, for example, during a period when image movement is large or when scene switching is performed, intra-frame coding is selected, and when image movement is relatively small or scene switching is not performed. Sometimes, inter-frame coding is usually performed.
[0051]
Intraframe encoding is an encoding that takes advantage of the fact that there is often little change between consecutive pixels in one frame. Interframe encoding is the same position in the frame screen between two consecutive frames. This encoding is based on the characteristic that there is often little change between pixels.
[0052]
In general, in the intra-frame (prediction) coding, a high compression rate cannot be expected, but a high-quality image can be reproduced on the receiving side, and the inter-frame (prediction) coding can achieve a high compression rate.
[0053]
However, with inter-frame coding, high-quality images can be reproduced when the motion of the image in the frame screen is small. However, when the motion of the image is large, the amount of information that must be processed increases and processing is delayed. However, the rate control becomes difficult and the quality of the reproduced image is likely to deteriorate.
[0054]
Therefore, the encoding control unit 105 needs to perform the above-described selection switching for intra-frame encoding and inter-frame encoding.
[0055]
The operation of the first embodiment having the above configuration will be described below.
[0056]
(A-2) Operation of the first embodiment
First, when one frame (image data) captured from a camera or the like is input to the image input unit 101, the data of the one frame is input to the subtractor 102, the original image memory 111, and the switch 103.
[0057]
The subtractor 102 calculates a difference between this data and the temporally previous image data supplied from the motion compensation unit 110.
[0058]
The encoder 104 that has received the difference data from the subtracter 102 operates so as to perform the inter-frame encoding under the control of the encoding control unit 105.
[0059]
However, the control from the encoding control unit 105 may request the encoder 104 to drop frames without performing interframe encoding.
[0060]
Three types of control, interframe coding, intraframe coding, and frame dropping, are performed in conjunction with the switching of the switches 103 and 114 described above, and the entire coding apparatus 10 is used for intraframe coding and interframe coding. It becomes a state (intra-frame coding mode, inter-frame coding mode, frame dropping mode) corresponding to one of the one for frame conversion or frame dropping.
[0061]
Frame dropping can be performed in the inter-frame coding mode or the intra-frame coding mode, but in any mode, the difference in operation between the case where there is a frame dropping and the case where there is no frame is encoded by the encoder 104. It is only the point of not doing it.
[0062]
In the case of encoding, the encoder 104 performs transformation such as DCT (discrete cosine transformation) or quantization on the frame. The data encoded by the encoder 104 is sent to the outside from the code output unit 106 and simultaneously supplied to the decoder 107.
[0063]
The data input to the decoder 107 is decoded by undergoing processes such as inverse quantization and inverse DCT, for example. These processes are processes corresponding to the encoding in the encoder 104. The output of the decoder 107 is supplied to one input terminal of the adder 108.
[0064]
When the data is differential data that has been inter-frame encoded by the encoder 104, the encoding device 10 is in the inter-frame encoding mode, and the switch 114 selects the lower contact. Therefore, the output (reference image information) of the motion compensation unit 110 is supplied to the other input terminal of the adder 108.
[0065]
At this time, the adder 108 adds the data supplied to both input terminals and supplies the addition result to the reconstructed image memory 109.
[0066]
The reference image information is data having a configuration including pixel values for one frame screen, block positions, and motion vector information.
[0067]
Since the decoded data (difference data) supplied to one input terminal of the adder 108 is data originally obtained by subtracting the reference image information in the subtractor 102, the reference image information is added. Thus, the state (original data) at the time of input to the image input unit 101 is restored.
[0068]
In the case of the intra-frame coding mode, since the switch 114 selects the upper contact point, the output of the decoder 107 is not changed by the addition at the adder 108 and is output to the reconstructed image memory 109 as it is. Is done.
[0069]
In any case, the output data of the adder 108 is input to the reconstructed image memory 109 and stored, and is supplied from the reconstructed image memory 109 to the motion compensation unit 110 in accordance with the timing required by the motion compensation unit 110. .
[0070]
On the other hand, image data input in order from the image input unit 101 is stored in the original image memory 111 and then shifted in order as described above and stored in the original image memories 112 and 113.
[0071]
In the present embodiment, since there are three original image memories 111 to 113, image data for the past three frames can be stored.
[0072]
The motion compensation unit 110 performs motion compensation based on the output of the reconstructed image memory 109 and the outputs of the original image memories 111 to 113, and outputs the result to the subtractor 102 and the switch 114.
[0073]
Motion compensation is an operation for obtaining a motion vector. The motion vector is information corresponding to a position vector indicating the magnitude and direction of the motion of the image in the frame screen, and is usually obtained by regarding the motion of the image in the frame screen as a parallel movement of the block.
[0074]
Such a motion vector enhances the coding efficiency of inter-frame coding and facilitates rate control by suppressing the amount of information that must be processed as much as possible even when the motion of the image is large. It is used to improve the quality of reproduced images.
[0075]
Therefore, since it is not necessary to obtain the motion vector except for the inter-frame coding mode, the motion compensation unit 110 may stop operating except for the inter-frame coding mode.
[0076]
However, in order to obtain a motion vector as early as possible after switching from the intra-frame coding mode to the inter-frame coding mode, the stored contents of the reconstructed image memory 109 and the stored contents of the original image memories 111 to 113 are: Even in the intra-frame coding mode, it is preferable that a new frame is input to the image input unit 101 and updated every time the encoder 104 performs some coding.
[0077]
The first motion prediction unit 401 illustrated in FIG. 4 is supplied from the image data input from the original image memory 113, the decoded data input from the reconstructed image memory 109, and the second motion prediction unit 402. Based on the in-compensation reference image information, the motion vector V1 is detected using block matching, for example, as shown in FIG.
[0078]
The motion vector detection by the block matching method is performed by comparing the block B1 in one frame after the input order with an arbitrary block in the one frame before the input order, This is performed by obtaining (searching for) a block B2 that most closely matches the block B1.
[0079]
Here, it is assumed that the size of blocks such as blocks B1 and B2 is about 16 × 16 pixels. Of course, it is possible to use larger or smaller blocks.
[0080]
The total number of operations required to obtain one motion vector tends to increase as the block size increases.
[0081]
In addition, if the search range for the most matching block is all the previous frames in the input order, the number of operations increases too much. Therefore, the search range is usually set to a part of one frame and is limited to the search range. To explore.
[0082]
The total number of operations required to determine one motion vector also tends to increase as the size of this search range increases.
[0083]
For example, the total number L of calculations can be obtained by the following equation (1) described in the literature 1.
[0084]
L = (2J + 1) × (2K + 1) × (M × N) × 3 (1)
Here, M and N indicate the block size (M lines × N pixels), J and K correspond to the search range (± J lines / frame, ± K pixels / frame), and the last three are for each pixel. It corresponds to three types of operations: a difference operation, a conversion operation for obtaining the absolute value or square of the difference result, and an accumulation operation for accumulating the conversion result.
[0085]
As an example, if J = K = M = N = 8, the total number of operations per block for obtaining a motion vector requires 55488 operations and 867 operations per pixel.
[0086]
The wider the search range, the greater the motion of the image can be accommodated and the motion compensation capability is improved. However, as is clear from Equation (1), the number of operations becomes enormous.
[0087]
However, this equation (1) only shows the number of operations within one search range, and in order to actually determine a motion vector, such search ranges should be overlapped with each other. It is necessary to set a large number on the entire surface of the previous frame, and a value obtained by multiplying that number by the number of 55488 times is usually the number of operations required for block matching between frames.
[0088]
Next, the operation of the motion compensation unit 110 of this embodiment will be described with reference to FIGS. As a premise, the three frames in which the input order is continuous are stored in the original image memories 113, 112, and 111 in the input order as described above, but the image data stored in the reconstructed image memory 109 is as described above. Is the data one order ahead of the frame image data stored in the original image memory 113.
[0089]
These four consecutive frames are designated as F3, F2, F1, and F0 in the order of input. If the input order is arranged from the current frame F0 in ascending order, the sequence goes back to F1, F2, and F3.
[0090]
At this time, the encoding apparatus 10 is in the interframe encoding mode, the frame F3 is stored in the reconstructed image memory 109, the frame F2 is stored in the original image memory 113, and the original image memory 112 is stored. Frame F1 is stored, and the original image memory 111 stores frame F0.
[0091]
The frame F3 is a frame that was encoded immediately before by the encoder 104, the frames F2 and F1 are frames that were dropped without being encoded by the encoder 104, and the frame F0 is now supplied to the image input unit 101. It is a frame.
[0092]
The encoder 104 tries to inter-frame encode the difference data of the frame F0. In order to obtain the difference data prior to the encoding, the encoder 104 uses the reference image information output from the motion compensation unit 110 in the subtracter 102. Subtraction must be done.
[0093]
For timing, the image data of the frame F0 needs to be held in the image input unit 101 by an external device such as a camera at least during a period in which processing in first to third motion prediction units 401 to 403 described later is performed. is there.
[0094]
In addition to the first motion prediction unit 401, the second motion prediction unit 402 is supplied with the image data of the frame F1 from the original image memory 112, and the third motion prediction unit 403 is supplied with the original image memory. The image data of frame F0 is supplied from 111.
[0095]
The encoding control unit 105, which is about to cause the encoder 104 to perform interframe encoding, causes the motion compensation unit 110 to obtain a motion vector and performs the following operation.
[0096]
In FIG. 5, a square P0 located at the center is a block in the screen of the frame F0, and a square P1 in the upper left is a block in the screen of the frame F1.
[0097]
The outer large square SE1 is a motion vector search range set on the frame F1 with the position of the block P0 on the frame F0 as the center. This SE1 may be the same size as QE0 in FIG.
[0098]
The state of FIG. 5 is a frame from the second motion prediction unit 402. F1 Image data of the original image memory 111 The third motion prediction unit 403 that has received the image data of the frame F0 from the result of examining the search range SE1 in the frame F1 by using the block matching method with reference to an arbitrary block in the frame F0. This is a state where it is detected that the degree of coincidence between the block P1 and the block P0 in the frame F0 is the highest.
[0099]
Thereby, the motion vector V1 from the block P1 to P0 (P1 is the start point and P0 is the end point) is obtained.
[0100]
In this example, the detected motion vector is only V1, but since a plurality of images may move within the frame screen, a plurality of motion vectors may be detected simultaneously.
[0101]
The size of the search range SE1 may be about several to several tens of times that of a block (such as P0) in terms of area.
[0102]
Information supplied from the third motion prediction unit 403 to the second motion prediction unit 402 is intra-compensation reference image information including information on the motion vector V1 and information on the block P1.
[0103]
Next, the second motion prediction unit receives the image data of the frame F1 from the original image memory 112, receives the reference image information in the compensation unit, and further receives the image data of the frame F2 from the first motion prediction unit 401. In 402, a process for obtaining the motion vector V2 shown in FIG. 6 is performed.
[0104]
This process performed by the second motion prediction unit 402 is similar to the process by the third motion prediction unit 403, and is based on an arbitrary block (including the P1) in the frame F1 as a search range in the frame F2. As a result of checking SE2 by the block matching method, it is in a state where it is detected that the degree of coincidence between the block P2 in the frame F2 and the block P1 in the frame F1 is the highest.
[0105]
Thereby, a motion vector V2 from the block P2 toward P1 is obtained.
[0106]
The size and position of the search range SE2 are the same as the search range SE1.
[0107]
The intra-compensation reference image information supplied from the second motion prediction unit 402 to the first motion prediction unit 401 includes information on the motion vector V2 and information on the block P2.
[0108]
Finally, the third motion prediction unit 403 receives the image data of the frame F2 from the original image memory 113, receives the in-compensation reference image information, and receives the image data of the frame F3 from the reconstructed image memory 109. Then, the process for obtaining the motion vector V3 shown in FIG. 7 is performed.
[0109]
This process is a process using block matching similar to the process in the second motion prediction unit 402.
[0110]
The size and position of the search range SE3 corresponding to this block matching is the same as SE1 and SE2.
[0111]
When the processing in the first motion prediction unit 401 is completed, information such as the motion vector V3 is sent to the third motion prediction unit 403 via the second motion prediction unit 402. The third motion prediction unit 403 also receives information such as the motion vector V2 from the second motion prediction unit 402 at an appropriate timing, and generates a combined motion vector V as shown in FIG.
[0112]
This combined motion vector V is a motion vector obtained as a result of the vector sum of the motion vectors V1, V2, and V3. This synthesized motion vector V indicates the motion of the image in the screen during the period from frame F0 to F3.
[0113]
The third motion prediction unit 403 configures reference image information including information on the combined motion vector V and necessary pixel value information, and outputs the reference image information to the outside of the motion compensation unit 110. The output reference image information is supplied to the subtracter 102 and the switch 114.
[0114]
The subtractor 102 that has received this reference image information subtracts this reference image information from the original data of the frame F0 supplied from the image input unit 101, and supplies the difference data as the subtraction result to the encoder 104. .
[0115]
Then, the encoder 104 performs inter-frame encoding on the difference data, sends the encoding result to the outside from the code output unit 106, and supplies it to the decoder 107.
[0116]
As described above, a new frame (F0 for F1 is moved as a result of moving by performing block matching between F0 and F1, between F1 and F2, and between F2 and F3 in the order of slow input. , F2 for F2, and F2 for F3). Eliminating the waste of finding a motion vector for an image that no longer exists on the image, and efficient calculation can be performed.
[0117]
In the example of FIGS. 5 to 7, frame dropping is performed on two consecutive frames of F1 and F2, but a case where frame dropping is performed only on one frame and a case where frame dropping is not performed will be described. .
[0118]
Assuming a situation in which the encoder 104 continuously encodes frames without dropping frames until then, the memory 111 to 113 and 109 all store the image data of the encoded frames. Has been.
[0119]
In this state, it is assumed that one frame is input to the image input unit 101 and this one frame is a frame in which frames are dropped. Next, assuming that the frame input to the image input unit 101 is a frame that is inter-frame encoded by the encoder 104, the motion compensation unit 110 operates for this inter-frame encoding.
[0120]
At this time, F0 in the memory 111 is this frame, F1 in the memory 112 is a frame in which frames are dropped, F2 in the memory 113 and F3 in the memory 109 are encoded frames.
[0121]
In this case, only a part of the operation of the first motion prediction unit 401, the operation of the second motion prediction unit 402, and the operation of the third motion prediction unit 403 are meaningful inside the motion compensation unit 110. have. This is because two motion vectors are obtained between F0 and F1 and between F1 and F2, and these vector sums become constituent elements of the reference image information output from the motion compensation unit 110.
[0122]
Similarly, in the case where frame dropping has not been performed until then, when the encoder 104 processes the latest input frame F3 (interframe coding), the operation of the third motion prediction unit 403 and the second Only part of the motion compensation unit 402 is meaningful. In this case, the function of the encoding apparatus 10 of the present embodiment is substantially the same as the function of the conventional encoding apparatus 20 described above.
[0123]
In the present embodiment, since three original image memories 111 to 113 are provided, only a maximum of two consecutive frame drops can be efficiently handled, but the conventional code is used for three or more consecutive frame drops. It is possible to cope with the same method as the processing for two or more consecutive frame droppings in the converting apparatus 20.
[0124]
In the present embodiment, if the number of motion prediction units in the original image memory and the motion compensation unit 110 is increased, it is possible to efficiently cope with three or more consecutive frame drops.
[0125]
In the above example, the synthesized motion vector V has an end point on the frame F0 and a start point on the frame F3. However, the motion vector detected in the present embodiment is limited to such a vector. Not.
[0126]
For example, an image that moves only between frames F2 and F1, dropped, an image that moves only between F1 and F0, an image that moves only between F3 and F2, an image that moves only between F2 and F0, and F3 There may be images that move only during F1.
[0127]
As an example, the motion vector of an image that moves only between F2 and F1 is the only vector obtained by the second motion prediction unit 402, and has no other vector to be synthesized. Information related to such a motion vector may also be included in the reference image information output from the motion compensation unit 110.
[0128]
On the other hand, in the case of the continuous 2-frame frame dropping, as in the present embodiment, V1, V2, and V3 are obtained using the frame dropped frames F1 and F2, and these are combined to obtain the final movement. If the motion vector V is obtained directly only by block matching between the frames F3 and F0 as in the prior art instead of obtaining the vector V, the motion vector V is detected unless the search range is set to be considerably large. This itself becomes difficult, and the motion compensation capability decreases.
[0129]
However, if the search range is increased, the total number of operations increases as described above, and rate control becomes difficult.
[0130]
In addition, when performing block matching between the frames F3 and F0, the degree of coincidence between the start block and the block to be the end point of the motion vector decreases during the period corresponding to the frames F1 and F2 from which frames are dropped, The possibility of detecting an erroneous motion vector is also increased, and the motion compensation capability is impaired.
[0131]
Specifically, the time between F0 and F3 when F2 and F1 are dropped is 3 times longer than the time between two consecutive frames (for example, between F0 and F1). The magnitude of the movement of the inner image is three times between F0 and F1 between F0 and F3.
[0132]
In order for the conventional encoding device 20 to capture a motion that is three times as large, the area of the search range (corresponding to the QE0) must be increased by 9 (= 32) times. Correspondingly, the number of operations is almost nine times (see equation (1)).
[0133]
On the other hand, in this embodiment, since the calculation only needs to be performed three times in the same search range as this QE0, the total area of the search range is three times that of QE0.
[0134]
From this point of view, when other conditions are the same, the total number of operations in this embodiment may be about 1/3 of the conventional one.
[0135]
(A-3) Effects of the first embodiment
As described above in detail, according to the present embodiment, even when frame dropping or frame dropping frames continue, the increase in the total number of operations is suppressed to facilitate rate control, and an accurate motion vector is detected. Therefore, it is possible to prevent a decrease in motion compensation capability, and thus it is possible to improve the reliability of the encoding device.
[0136]
In addition, the fact that the total number of operations can be suppressed means that the power consumption of the encoding device can be reduced and the scale can be reduced in terms of hardware, and the load on processing power can be reduced in terms of software. To do.
[0137]
(B) Second embodiment
The present embodiment is characterized in that the position of the search range that has been constant in the processing of the motion compensation unit of the first embodiment is changed to reduce the size.
[0138]
(B-1) Configuration and operation of the second embodiment
In the configuration of the first embodiment and the present embodiment, the main difference in operation is limited to the point relating to the motion compensation unit.
[0139]
In FIG. 1, the motion compensation unit of this embodiment is denoted by reference numeral 110 </ b> A in order to distinguish it from the motion compensation unit 110 of the first embodiment. Similarly, reference numeral 10A is attached to the encoding apparatus of the present embodiment to distinguish it from the encoding apparatus 10 of the first embodiment.
[0140]
Only the differences from the configuration and operation of the first embodiment will be described below.
[0141]
FIG. 8 shows the internal configuration of the motion compensation unit 110A according to the present embodiment and the periphery thereof.
[0142]
In FIG. 8, the motion compensation unit 110 </ b> A includes a first motion prediction unit 801, a second motion prediction unit 802, a third motion prediction unit 803, and a search range control unit 804.
[0143]
The first motion prediction unit 801 corresponds to the first motion prediction unit 401, the second motion prediction unit 802 corresponds to the second motion prediction unit 402, and the third motion prediction unit 803 corresponds to the first motion prediction unit 401. 3 corresponding to the motion estimation unit 403, but also includes functions related to the search range control unit 804.
[0144]
That is, the first motion prediction unit 501 is a part for inputting a signal from the reconstructed image memory 109, a part for inputting a signal from the original image memory 113, and a part for inputting a control signal from the search range control unit 804. The second motion prediction unit 802 includes a part for inputting a signal from the original image memory 112 and a part for inputting a control signal from the search range control unit 804, and the third motion prediction unit 803 includes an original image. A portion for inputting a signal from the memory 113 and a portion for inputting a control signal from the search range control unit 804 are provided.
[0145]
Next, the operation of the present embodiment will be described by taking as an example a case where there is a frame drop of two consecutive frames F1 and F2 of the first embodiment.
[0146]
First, the third motion prediction unit 801 uses a motion vector between the image data F0 input from the original image memory 111 and the image data of the frame F1 obtained from the second motion prediction unit 802 by using block matching. Perform detection.
[0147]
In this block matching, the search range control unit 804 instructs the motion prediction unit 801 to search for a search range. The search range instructed here is the search range VE1 indicated by a one-dot chain line in FIG. The search range VE1 is a search range set on the frame F1 around the position of the block P0 on the frame F0.
[0148]
In the case of the two consecutive frame dropping described above, conventionally, a motion vector V is obtained by directly searching (block matching) between the frames F3 and F0. Assuming that this search is performed in a search range of ± 15 pixels, in this embodiment, even if a search is performed in the search range of ± 5 pixels, the motion compensation capability is higher than in the conventional case.
[0149]
Because the time between the frames F1 and F0 is 1/3 of the time between the frames F3 and F0, the moving distance of the image in the frame screen becomes 1/3, and the start point of the motion vector This is because the degree of coincidence between the block and the block to be the end point is usually higher between the frames F1 and F0 having a short elapsed time than between the frames F3 and F0.
[0150]
For example, if the time interval between the frames F3 and F0 is 1/30 seconds, the time interval between the frames F1 and F0 is almost 1/100 seconds, and therefore, between F1 and F0, compared to between F3 and F0, The moving distance of the image (subject) is short, and the degree and frequency with which the pixel value of the same part of the image changes due to changes in optical conditions or the like is low.
[0151]
Furthermore, the high degree of coincidence between the start point block and the end point block means that there is a low possibility that a non-motion vector is erroneously detected as a motion vector.
[0152]
Next, the second motion prediction unit 802 performs motion vector detection based on the motion vector obtained by the processing of the first motion prediction unit 801. Also in that case, the search range control unit 804 similarly performs detection in the designated search range. This search range is the search range VE2 indicated by a one-dot chain line in FIG.
[0153]
The search range VE2 is a search range set on the frame F2 around the position of the block P1 on the frame F1.
[0154]
Similarly, the first motion prediction unit 801 performs motion vector detection using block matching from the image data F2 input from the image memory 113 and the decoded data F3 input from the reconstructed image memory 109.
[0155]
The block matching here is also performed based on the motion vector obtained by the processing of the second motion prediction unit 802, and the motion vector is detected. In this case as well, detection is performed in the search range VE3 instructed by the search range control unit 804.
[0156]
The search range VE3 is a search range set on the frame F3 with the position of the block P2 on the frame F2 as the center.
[0157]
In the present embodiment, unlike the search range of the first embodiment, the position in the frame screen of this small search range of ± 5 pixels is the position of the search ranges VE1, VE2, and VE3 indicated by the alternate long and short dash lines in FIGS. Will change. And even if the region where these VE1 to VE3 can exist is limited to the range of SE1 of the first embodiment, the motion compensation capability equivalent to that of the first embodiment is maintained.
[0158]
Since the area of the search range VE1 and the like of this embodiment is 1/9 of the area of the search range SE1 and the like of the first embodiment, if the other conditions are the same, the number of operations of this embodiment is the same as that of the first embodiment. This is about 1/9 of the number of operations.
[0159]
Finally, the third motion prediction unit 803 creates reference image information using the vector sum of the obtained motion vectors and inputs the reference image information to the subtractor 102 and the switch 114, as in the first embodiment. The same.
[0160]
(B-2) Effects of the second embodiment
According to this embodiment, an effect equivalent to that of the first embodiment can be obtained.
[0161]
In addition, in the present embodiment, the total number of operations can be further reduced as compared with the first embodiment.
[0162]
For example, in the case where detection is performed by performing a full search of the search range of 15 pixels in the top, bottom, left, and right, the number of evaluation value calculations in the first embodiment is 31 × 31 = 961 times (see the above formula (1)). In the embodiment, the same range as the first embodiment is covered by detecting the range of 5 pixels in the upper, lower, left, and right directions every time, so (11 × 11) × 3 = 363 times. Therefore, the number of operations can be reduced by about 62%.
[0163]
Note that when compared with the number of operations for the three block matching performed in the third to first motion prediction units in order to obtain the combined motion vector, the number of operations in the present embodiment is the first implementation as described above. This is approximately 1/9 of the number of operations in the form.
[0164]
On the contrary, if the total number of computations of the same degree as in the first embodiment is allowed, in this embodiment, the search range can be increased to cope with a larger image motion in the frame screen, so that the motion compensation capability Will improve.
[0165]
(C) Third embodiment
In the first and second embodiments, the evaluation value calculation is performed for all the pixels that are continuous in the upper, lower, left, and right directions in the frame screen. However, in the present embodiment, the pixels for the evaluation value calculation are intermittently set. It is characterized by.
[0166]
(C-1) Configuration and operation of the third embodiment
In the configuration of the first embodiment and the present embodiment, the main difference in operation is limited to the point relating to the motion compensation unit.
[0167]
In FIG. 1, the motion compensation unit of the present embodiment is denoted by reference numeral 110 </ b> B in order to distinguish it from the motion compensation unit 110 of the first embodiment. Similarly, reference numeral 10B is assigned to the encoding apparatus of the present embodiment to distinguish it from the encoding apparatus 10 of the first embodiment.
[0168]
Only the differences from the configuration and operation of the first embodiment will be described below.
[0169]
FIG. 9 shows the configuration of the inside and the periphery of the motion compensation unit 110B of this embodiment.
[0170]
In FIG. 9, the motion compensation unit 110 </ b> B includes a first motion prediction unit 901, a second motion prediction unit 902, a third motion prediction unit 903, and an evaluation value calculation control unit 904.
[0171]
The first motion prediction unit 901 corresponds to the first motion prediction unit 401, the second motion prediction unit 902 corresponds to the second motion prediction unit 402, and the third motion prediction unit 903 corresponds to the first motion prediction unit 401. 3 corresponding to the motion estimation unit 403, but also includes functions related to the evaluation value calculation control unit 904.
[0172]
That is, the first motion prediction unit 901 receives a part for inputting a signal from the reconstructed image memory 109, a part for inputting a signal from the original image memory 113, and a control signal from the evaluation value calculation control unit 904. The second motion prediction unit 902 includes a part for inputting a signal from the original image memory 112 and a part for inputting a control signal from the evaluation value calculation control unit 904. The third motion prediction unit 903 A portion for inputting a signal from the original image memory 113 and a portion for inputting a control signal from the evaluation value calculation control unit 904 are provided.
[0173]
FIG. 10 is a block of 16 pixels × 16 pixels (= 256 pixels), and a white square and a black square indicate each pixel in the block. Since this block is a unit for obtaining a motion vector, in the first and second embodiments, the evaluation value calculation is performed for all white and black squares (256 pixels).
[0174]
On the other hand, in this embodiment, for example, evaluation value calculation is performed only for 128 pixels of a black square.
[0175]
Therefore, the motion compensation unit 110B of the present embodiment is as follows.
[0176]
First, the third motion prediction unit 903 performs motion vector detection using block matching from the image data F0 input from the image memory 111 and the image data F1 supplied from the second motion prediction unit 902.
[0177]
At this time, the evaluation value calculation control unit 904 instructs the first motion prediction unit 901 so that only the pixels corresponding to the black portion in FIG. 10 are used for the evaluation value calculation.
[0178]
Next, the second motion prediction unit 902 performs motion vector detection based on the motion vector obtained as a result of the processing in the third motion prediction unit 903. In that case, the second motion prediction unit 902 also performs detection by the method instructed by the evaluation value calculation control unit 904 in the same manner as the third motion prediction unit 903.
[0179]
When the first motion prediction unit 901 performs motion vector detection based on the motion vector obtained as a result of the processing in the second motion prediction unit 902, the evaluation value calculation control unit 904 similarly uses the method instructed. Perform detection.
[0180]
The third motion predictor obtaining unit 903 creates reference image information using the obtained vector sum of each motion vector, and inputs the reference image information to the subtracter 102 and the switch 114.
[0181]
Note that if the density of pixels used for evaluation value calculation is reduced as in the present embodiment, the number of calculations decreases, but the accuracy of the degree of coincidence itself decreases and the possibility of erroneous detection of motion vectors increases. However, it is preferable to reduce the pixel density within a range in which the influence of the decrease in the precision of the matching degree does not cause a false detection of a motion vector.
[0182]
(C-2) Effects of the third embodiment
According to this embodiment, an effect equivalent to that of the first embodiment can be obtained.
[0183]
In addition, in the present embodiment, the total number of operations can be further reduced as compared with the first embodiment.
[0184]
For example, when the evaluation value calculation is performed every other pixel (only for the black square) as described above, the evaluation value is obtained with the number of calculation times half that when the evaluation value calculation is performed using all the pixels.
[0185]
On the other hand, when the same number of operations as in the first embodiment are performed in this embodiment, the search range can be expanded, and the motion vector can be detected more accurately in response to a sudden movement of the image. And the motion compensation ability is improved.
[0186]
(D) Fourth embodiment
In the processing of the motion compensation unit of the first to third embodiments, only one motion vector is detected between the blocks having the highest degree of coincidence from the beginning, and the processing is advanced for that one. If there is an error in the motion vector obtained by one of the motion prediction units, the information on the motion vector finally output from the motion compensation unit is also incorrect.
[0187]
On the other hand, the present embodiment is characterized in that a plurality of candidate vectors are obtained and one motion vector is selected from the plurality of candidate vectors in the course of processing in the motion compensation unit.
[0188]
(D-1) Configuration and operation of the fourth embodiment
In the configuration of the first embodiment and the present embodiment, the main difference in operation is limited to the point relating to the motion compensation unit.
[0189]
In FIG. 1, the motion compensation unit of the present embodiment is denoted by reference numeral 110 </ b> C in order to distinguish it from the motion compensation unit 110 of the first embodiment. Similarly, reference numeral 10C is assigned to the encoding apparatus of the present embodiment in order to distinguish it from the encoding apparatus 10 of the first embodiment.
[0190]
Only the differences from the configuration and operation of the first embodiment will be described below.
[0191]
FIG. 11 shows a configuration inside and around the motion compensation unit 110C of the present embodiment.
[0192]
In FIG. 11, the motion compensation unit 110C includes a first motion prediction unit 1101, a second motion prediction unit 1102, a third motion prediction unit 1103, an evaluation value calculation control unit 1104, a candidate vector determination unit 1105, , And a motion vector determination unit 1106.
[0193]
Note that the evaluation value calculation control unit 1104 is equipped with the function of the search range control unit 804 of the second embodiment in addition to the function of the evaluation value calculation control unit 904 of the third embodiment.
[0194]
The first motion prediction unit 1101 corresponds to the first motion prediction unit 401, the second motion prediction unit 1102 corresponds to the second motion prediction unit 402, and the third motion prediction unit 1103 3, but also includes functions related to the evaluation value calculation control unit 1104, the candidate vector determination unit 1105, and the motion vector determination unit 1106, respectively.
[0195]
That is, the first motion prediction unit 1101 receives a part for inputting a signal from the reconstructed image memory 109, a part for inputting a signal from the original image memory 113, and a control signal from the evaluation value calculation control unit 1104. The second motion prediction unit 1102 includes a part for inputting a signal from the original image memory 112, a part for inputting a signal from the first motion prediction unit 1101, and a control signal from the evaluation value calculation control unit 1104. The third motion prediction unit 1103 includes a part for inputting a signal from the original image memory 113, a part for inputting a signal from the candidate vector determination unit 1105, and a control from the evaluation value calculation control unit 1104. A part for inputting a signal is provided.
[0196]
Next, the operation of the motion compensation unit 110C will be described with reference to FIGS.
[0197]
First, the third motion prediction unit 1103 performs block matching from the image data F0 input from the original image memory 111 and the image data F1 supplied from the second motion prediction unit 1102 via the candidate vector determination unit 1105. The motion vector is detected using. In that case, the evaluation value calculation control unit 1104 instructs the third motion prediction unit 1103 to list, for example, two candidate vectors.
[0198]
For example, the third motion prediction unit 1103 obtains the two candidate vectors V1-1 and V1-2 shown in FIG. 12 by selecting two sets of blocks in descending order of the degree of coincidence described above, for example. And
[0199]
In FIG. 12, among the blocks in the frame F1, the block having the highest degree of coincidence with the block P0 in the frame F0 is P1-1, the second highest block is P1-2, and P0, P1- This is a case where first candidate vectors V1-1 and V1-2 of motion vectors are obtained between 1 and P0 and P1-2. FV1 is a search range similar to VE1.
[0200]
Next, the second motion prediction unit 1102 obtains the second candidate vector by two for each first candidate vector according to the instruction from the evaluation value calculation control unit 1104.
[0201]
The second candidate vectors are four vectors such as V2-1, V2-2, V2-3, and V2-4 shown in FIG. Similar to the primary candidate vector, the secondary candidate vector can also be obtained according to the degree of coincidence.
[0202]
In FIG. 13, FV2-1 and FV2-2 are search ranges similar to those of VE2, but in this embodiment, two search ranges are set because two primary candidate vectors are processed. Yes.
[0203]
Among the blocks in the search range FV2-1 set on the frame F2, the block having the highest degree of coincidence with the block P1-1 is P2-1, and the second highest block is P2-2. Among the blocks in the search range FV2-2 set on the frame F2, the block having the highest degree of coincidence with the block P1-2 is P2-3, and the second highest block is P2-4. And
[0204]
The intra-compensation section reference image information of the present embodiment includes information on each next candidate vector and incidental information on these candidate vectors in addition to the intra-compensation section reference image information of the first embodiment described above. This incidental information may be, for example, information on the degree of coincidence of the end point block with respect to the start point block of each secondary candidate vector.
[0205]
The second motion prediction unit 1102 receives the processing of the candidate vector determination unit 1105 before supplying the in-compensation reference image information to the first motion prediction unit 1101.
[0206]
The candidate vector determination unit 1105 that has received this in-compensation reference image information selects one candidate vector from V2-1 and V2-2, and selects one candidate vector from V2-3 and V2-4. select.
[0207]
For this selection, for example, the degree of coincidence of the end point block with respect to the start point block may be used.
[0208]
However, since the degree of coincidence is also used when the second motion prediction unit 1102 obtains the second candidate vector, the candidate vector determination unit 1105 also uses the same degree of coincidence to select a candidate vector from the beginning. Even if only one second candidate vector is obtained for each primary candidate vector, the same result is obtained.
[0209]
Therefore, it is more effective that the reference when the candidate vector determination unit 1105 selects the second candidate vector and the reference when the second motion prediction unit 1102 obtains the second candidate vector are different.
[0210]
For example, in the processing of the candidate vector determination unit 1105, not only the matching degree between the block in the frame F2 and the block in the frame F1, but also the matching degree between the block in the frame F2 and the block in the frame F0 is considered, A method of selecting a second candidate vector is conceivable.
[0211]
In this case, as an example, even if the degree of coincidence with the block P1-1 is higher in the block P2-2 than in the block P2-1, the degree of coincidence with the block P0 is higher in the block P2-1 than in the P2-2. If it is higher, the block P2-1, that is, the second candidate vector V2-1 may be selected according to the degree.
[0212]
Here, it is assumed that V2-1 (end point block P2-1) and V2-3 (end point block P2-3) are selected by the candidate vector determination unit 1105 among the four second-order candidate vectors. .
[0213]
The in-compensation reference image information having information on the selected second candidate vector is supplied to the first motion prediction unit 1101. In addition, the first motion prediction unit 1101 receives image data F2 from the original image memory 113 and receives decoded data F3 from the reconstructed image memory 109.
[0214]
Using these pieces of information, the first motion prediction unit 1101 performs the same operation as the second motion prediction unit 1102 on the basis of the degree of coincidence, and, as shown in FIG. Candidate vectors V3-1, V3-2, V3-3, and V3-4 are obtained. Here, FV3-1 and FV3-2 are search ranges similar to FV2-1 and FV2-2.
[0215]
The large rectangle R shown in FIGS. 12, 13, and 14 has the same size as the search range SE1 of the first embodiment, and the search ranges FV2-1 and FV2- of the present embodiment. 2, FV3-1, FV3-2, etc., indicate the maximum areas that can be set.
[0216]
When the processing in the first motion prediction unit 1101 is finished, the selected second candidate vector and the in-compensation reference image information including information on the third candidate vector are converted into motion vectors via the units 1102, 1105, and 1103, respectively. The data is supplied to the determination unit 1106.
[0217]
The motion vector determination unit 1106 that has received the in-compensation reference image information determines only a final motion vector by selecting only one of these four third-order candidate vectors.
[0218]
Regarding the relationship between this selection criterion in the motion vector determination unit 1106 and the criterion for obtaining the third candidate vector of the first motion prediction unit 1101, the criterion of the candidate vector determination unit 1105 and the second motion prediction unit It is the same as the reference relationship of 1102 and should be different from each other.
[0219]
However, unlike the candidate vector determination unit 1105 that selected two candidate vectors, the motion vector determination unit 1106 ultimately determines one candidate vector, and therefore requires selection based on a more comprehensive and highly reliable standard. It is done.
[0220]
As an example, the degree of coincidence of all the blocks corresponding to each of the end point blocks P3-1, P3-2, P3-3, and P3-4 may be comprehensively compared.
[0221]
That is, not only the degree of coincidence between the blocks P3-1 and P2-1 but also a predetermined calculation formula that takes into account the degree of coincidence between P3-1 and P1-1 and the degree of coincidence between P3-1 and P0 is set. Ask for. Similarly, values of blocks P3-2, P3-3, and P3-4 are obtained based on the same calculation formula, and only one third-order candidate vector is selected by comparing these four values.
It should be noted that the motion vector finally obtained by the motion compensation unit 110C and output to the outside is the second order from the third order, the first order from the second order, and the early stage candidate vectors are incorrect. There is a high possibility that the actual motion vector corresponding to the actual motion of the image is far from the true motion vector. Therefore, it is desirable that the calculation formula and motion compensation unit 110C be configured so that errors such as the first motion prediction unit 1101 can be recovered and corrected by processing such as the third motion prediction unit 1103.
[0222]
In the example of FIG. 14, the third candidate vector V3-1 is selected.
[0223]
When the third candidate vector V3-1 is selected, the final motion vector VC (= V1-1 + V2-1 + V3-1) is obtained by the vector sum with the corresponding second and first candidate vectors. The reference image information including the VC information is output.
[0224]
The reference image information output from the motion compensation unit 110C to the switch 114 and the subtractor 102 may have the same configuration as that of the first embodiment in this embodiment.
[0225]
In the present embodiment, the number of candidate vectors does not increase excessively by the candidate vector determining unit 1105 provided between the second motion predicting unit 1102 and the third motion predicting unit 1103. The number of operations in the motion prediction unit 1103 is not large.
[0226]
If the candidate vector determination unit 1105 is not provided, in the above example, all the second candidate vectors such as V2-1 are supplied to the first motion prediction unit 1101, and the third candidate vector such as V3-1 is 8 Become one. Therefore, it is necessary to increase the number of computations by increasing the number of search ranges FV3-1 and FV3-2.
[0227]
(D-2) Effects of the fourth embodiment
According to this embodiment, an effect equivalent to that of the first embodiment can be obtained.
[0228]
In addition, in the present embodiment, it is possible to correct and prevent erroneous detection of motion vectors in the process of obtaining and selecting a plurality of candidate vectors, and it is possible to deal with an object that moves in a complex manner in a short time. Thereby, it is possible to improve the reliability of motion vector detection.
[0229]
(E) Other embodiments
In the first to fourth embodiments, the case where the frame rate is fixed at 10 Hz, that is, the case where 2 frames are dropped out of 3 consecutive frames is shown. However, the present invention is applicable to other frame rates and variable frame rates. Is also applicable.
[0230]
In this case, the number of original image memories is increased to four or more as necessary.
[0231]
In the first to fourth embodiments, the instantaneous value of the frame rate changes every moment, although it is fixed at 10 Hz, for example, it may be 5 Hz or 30 Hz.
[0232]
For this reason, even when the frame rate is fixed at 10 Hz, in practice, it is preferable to increase the number of original image memories to four or more from the viewpoint of improvement of motion compensation capability and processing efficiency. With three original image memories, it is possible to cope only with frame dropping of a maximum of 2 frames. If consecutive frame dropping of 3 frames or more occurs instantaneously, it is necessary to expand the search range, and the same problem as described in the problem to be solved by the invention will occur.
[0233]
However, according to the present invention, even if the number of original image memories is at least two, frame dropping of one frame can be handled and a certain effect is retained.
[0234]
Furthermore, “frame” in the first to fourth embodiments may be replaced with “field” in the case of a so-called NTSC signal or the like.
[0235]
Of course, the search range control and the evaluation value calculation control can be made variable. Similarly, the number of candidate vectors can be increased or changed in a timely manner.
[0236]
Note that the evaluation value calculation control unit 1104 according to the fourth embodiment has the function of the evaluation value calculation control unit 904 according to the third embodiment and the function of the search range control unit 804 according to the second embodiment. Only the function of the evaluation value calculation control unit 904 of the third embodiment may be provided.
[0237]
Similarly, the evaluation value calculation control unit 904 of the third embodiment may also have the function of the search range control unit 804 of the second embodiment.
[0238]
In short, in the present invention, the search range control function and the evaluation value calculation control function can be provided alone or in combination.
[0239]
Also, including the first to fourth embodiments, the motion vector is normally used for encoding, that is, motion compensation encoding, but the application of the present invention is not limited to this.
[0240]
For example, even when encoding is not performed, the present invention can be used for the purpose of efficiently obtaining image motion on a screen of three or more consecutive frames.
[0241]
That is, according to the present invention, the input order starts from the first position in the previous start screen, and the second position in the subsequent end screen in the input order serves as the end point. The present invention can be widely applied to a motion vector detection apparatus that detects a combined motion vector that indicates the motion of an image on a screen within a period up to.
[0242]
【The invention's effect】
As described above, according to the present invention, it is possible to improve the reliability of motion vector detection while suppressing an increase in the number of operations.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an encoding apparatus according to an embodiment.
FIG. 2 is a block diagram illustrating a configuration of a conventional encoding device.
FIG. 3 is a schematic diagram illustrating a block matching operation in a conventional encoding device.
FIG. 4 is a block diagram illustrating an internal configuration of a motion compensation unit of the encoding device according to the first embodiment.
FIG. 5 is a schematic diagram illustrating block matching of a motion compensation unit according to the first and second embodiments.
FIG. 6 is a schematic diagram illustrating block matching of a motion compensation unit according to the first and second embodiments.
FIG. 7 is a schematic diagram illustrating block matching of a motion compensation unit according to the first and second embodiments.
FIG. 8 is a block diagram showing an internal configuration of a motion compensation unit of the encoding apparatus according to the second embodiment.
FIG. 9 is a block diagram illustrating an internal configuration of a motion compensation unit of an encoding apparatus according to a third embodiment.
FIG. 10 is a schematic diagram illustrating an operation of a motion compensation unit of the encoding device according to the third embodiment.
FIG. 11 is a block diagram illustrating an internal configuration of a motion compensation unit of an encoding apparatus according to a fourth embodiment.
FIG. 12 is a schematic diagram illustrating an operation of a motion compensation unit of the encoding device according to the fourth embodiment.
FIG. 13 is a schematic diagram illustrating an operation of a motion compensation unit of the encoding device according to the fourth embodiment.
FIG. 14 is a schematic diagram illustrating an operation of a motion compensation unit of the encoding device according to the fourth embodiment.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10, 10A, 10B, 10C ... Encoder, 104 ... Encoder, 105 ... Encoding control part, 110, 110A, 110B, 110C ... Motion compensation part, 111-113 ... Original image memory, 401, 801 901, 1101... First motion prediction unit, 402, 802, 902, 1102 ... second motion prediction unit, 403, 803, 903, 1103 ... third motion prediction unit, 804 ... search range control unit, 904, DESCRIPTION OF SYMBOLS 1104 ... Evaluation value calculation control part, 1105 ... Candidate vector determination part, 1106 ... Motion vector determination part.

Claims (3)

入力順が先の始点画面中の第1の位置を始点とすると共に、入力順が後の終点画面中の第2の位置を終点とすることで、始点画面から終点画面にいたる期間内で画面中の像の動きを示す合成動きベクトルをブロック単位に検出する動きベクトル検出装置であって、
前記始点画面の画像データを記憶する始点画面記憶手段と、
前記終点画面の画像データを記憶する終点画面記憶手段と、
前記始点画面と終点画面の中間の入力順で入力された少なくとも1つの中間画面を記憶する少なくとも1つの中間画面記憶手段と、
前記始点画面から終点画面にいたる各画面につき、入力順が相前後して隣接する2つの画面間で、前記合成動きベクトルの構成要素となる要素動きベクトルをブロック単位に求めると共に、入力順が後の2つの画面間に係る要素動きベクトルほど先に求める逐次処理を行い、複数の要素動きベクトルについてベクトル合成を行うことで、前記合成動きベクトルを生成する予測演算手段と、
少なくとも画面間符号化又はコマ落としのいずれかの処理を選択して行う符号化手段と、
前記中間画面を当該コマ落としの対象となった画面とし、前記合成動きベクトルを用いて動き補償することで、当該符号化手段にコマ落とし直後の最初の画面間符号化を行わせる符号化制御手段とを備え
前記予測演算手段は、
前記要素動きベクトルの候補として複数の候補動きベクトルを求める候補検出演算を、入力順が連続する複数画面の各画面間ごとに実行する候補動きベクトル検出手段と、
画面間毎の要素動きベクトルを求める逐次処理順の2番目以降の画面間については、先に求められた画面間の全候補動きベクトルのそれぞれに対し、その候補動きベクトルに連結する候補動きベクトルを1つずつ選択するベクトル選択手段とを備える
ことを特徴とする動きベクトル検出装置。
When the input order is the first position in the previous start point screen and the second position in the later end point screen is the end point, the screen is within the period from the start point screen to the end point screen. A motion vector detection device that detects a combined motion vector indicating the motion of an image in a block unit,
Start point screen storage means for storing image data of the start point screen;
Endpoint screen storage means for storing image data of the endpoint screen;
At least one intermediate screen storage means for storing at least one intermediate screen input in an intermediate input order between the start point screen and the end point screen;
For each screen from the start point screen to the end point screen, an element motion vector that is a constituent element of the composite motion vector is obtained in units of blocks between two adjacent screens in the order of input, and the input order is later Predictive calculation means for generating the synthesized motion vector by performing sequential processing to obtain the element motion vector between the two screens earlier and performing vector synthesis for a plurality of element motion vectors;
Encoding means for performing at least one of inter-frame encoding or frame dropping processing;
Coding control means for causing the coding means to perform the first inter-frame coding immediately after dropping frames by using the intermediate screen as a screen subject to frame dropping and performing motion compensation using the synthesized motion vector. equipped with a door,
The prediction calculation means includes
Candidate motion vector detection means for executing candidate detection calculation for obtaining a plurality of candidate motion vectors as the candidate element motion vectors for each screen of a plurality of screens in which the input order is continuous;
For the second and subsequent screens in the sequential processing order for obtaining the element motion vectors for each screen, for each of all candidate motion vectors between the screens obtained previously, candidate motion vectors to be linked to the candidate motion vectors are displayed. A motion vector detecting device comprising vector selecting means for selecting one by one .
請求項1の動きベクトル検出装置において、
前記予測演算手段は、
求めようとしている新たな要素動きベクトルの直前の要素動きベクトルの始点と同じ位置を基準として、当該始点の存在する画面より入力順が1つ先の画面上に探索範囲を設定する探索範囲変更手段を備えることを特徴とする動きベクトル検出装置。
The motion vector detection device according to claim 1,
The prediction calculation means includes
Search range changing means for setting a search range on a screen that is one order ahead of the screen on which the start point exists, based on the same position as the start point of the element motion vector immediately before the new element motion vector to be obtained A motion vector detection device comprising:
請求項1の動きベクトル検出装置において、
前記予測演算手段は、
前記始点画面から終点画面にいたる各画面の上下左右方向に対応して連続的に配列された画素の中から、上下左右方向に断続的に一部の画素を選択する画素選択手段を備え、
当該画素選択手段によって選択された画素に対し、前記検出演算を実行することで、前記要素動きベクトルを求めることを特徴とする動きベクトル検出装置。
The motion vector detection device according to claim 1,
The prediction calculation means includes
Pixel selection means for intermittently selecting a part of pixels in the vertical and horizontal directions from among the pixels continuously arranged corresponding to the vertical and horizontal directions of each screen from the start point screen to the end point screen;
A motion vector detection apparatus for obtaining the element motion vector by executing the detection calculation on a pixel selected by the pixel selection means.
JP20984599A 1999-07-23 1999-07-23 Motion vector detection device Expired - Fee Related JP3982952B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20984599A JP3982952B2 (en) 1999-07-23 1999-07-23 Motion vector detection device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20984599A JP3982952B2 (en) 1999-07-23 1999-07-23 Motion vector detection device

Publications (2)

Publication Number Publication Date
JP2001036909A JP2001036909A (en) 2001-02-09
JP3982952B2 true JP3982952B2 (en) 2007-09-26

Family

ID=16579583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20984599A Expired - Fee Related JP3982952B2 (en) 1999-07-23 1999-07-23 Motion vector detection device

Country Status (1)

Country Link
JP (1) JP3982952B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060098886A1 (en) * 2003-01-10 2006-05-11 Koninklijke Philips Electronics N.V. Efficient predictive image parameter estimation
JP4017578B2 (en) * 2003-09-19 2007-12-05 三洋電機株式会社 Camera shake correction device, camera shake correction method, and recording medium recording camera shake correction program
JP4507742B2 (en) * 2004-07-27 2010-07-21 富士通株式会社 Video encoding device
EP1956839A4 (en) * 2005-11-29 2010-03-17 Pioneer Corp Recording device, reproduction device, recording method, recording program, and computer-readable recording medium

Also Published As

Publication number Publication date
JP2001036909A (en) 2001-02-09

Similar Documents

Publication Publication Date Title
JP4528662B2 (en) Motion detection using adaptive space latest vector
JP4373702B2 (en) Moving picture encoding apparatus, moving picture decoding apparatus, moving picture encoding method, moving picture decoding method, moving picture encoding program, and moving picture decoding program
CN107277543B (en) Encoding device and method, decoding device and method, and storage medium
CN116233463A (en) Motion vector correction for multi-reference prediction
JP2005287047A (en) Motion vector estimation employing line vector and column vector
JP2005318586A (en) Motion vector detection with improved motion vector selection
JP2010504010A (en) Data compression method in video sequence
US20100315550A1 (en) Image frame interpolation device, image frame interpolation method, and image frame interpolation program
JPH07193822A (en) Motion prediction processor and device therefor
JP3982952B2 (en) Motion vector detection device
JP3201079B2 (en) Motion compensated prediction method, coding method and apparatus for interlaced video signal
JP2003259377A (en) Moving picture encoding method, moving picture decoding method, and code string format
WO2000005899A1 (en) Image encoding system
JP2009290889A (en) Motion picture encoder, motion picture decoder, motion picture encoding method, motion picture decoding method, motion picture encoding program, and motion picture decoding program
JP5353719B2 (en) Moving picture coding apparatus, moving picture coding method, and moving picture coding program
JP3490142B2 (en) Moving image encoding method and apparatus
JPH1042300A (en) Motion vector detection device
JPH10304371A (en) Moving vector detecting device
JP2006311603A (en) Moving image encoding method and apparatus, and moving image decoding method and apparatus
JPH10257496A (en) Motion compensation prediction device for interlaced motion image
JPH0984017A (en) Motion compensation prediction coding method for moving image
JPH10164596A (en) Motion detector
JP3834014B2 (en) Video coding method and apparatus
JPH1013835A (en) Motion vector detecting methd
JP2002064748A (en) Telop area detector in moving image

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070423

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070703

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130713

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees