[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4003149B2 - Image encoding apparatus and method - Google Patents

Image encoding apparatus and method Download PDF

Info

Publication number
JP4003149B2
JP4003149B2 JP10543098A JP10543098A JP4003149B2 JP 4003149 B2 JP4003149 B2 JP 4003149B2 JP 10543098 A JP10543098 A JP 10543098A JP 10543098 A JP10543098 A JP 10543098A JP 4003149 B2 JP4003149 B2 JP 4003149B2
Authority
JP
Japan
Prior art keywords
prediction
image
search range
motion vector
motion
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
JP10543098A
Other languages
Japanese (ja)
Other versions
JPH11289540A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP10543098A priority Critical patent/JP4003149B2/en
Publication of JPH11289540A publication Critical patent/JPH11289540A/en
Application granted granted Critical
Publication of JP4003149B2 publication Critical patent/JP4003149B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【目次】
以下の順序で本発明を説明する。
【0002】
発明の属する技術分野
従来の技術(図12〜図14)
発明が解決しようとする課題
課題を解決するための手段
発明の実施の形態(図1〜図11)
発明の効果
【0003】
【発明の属する技術分野】
本発明は画像符号化装置及びその方法に関し、入力画像の動きベクトルを検出し当該動きベクトルに基づいて入力画像を符号化する画像符号化装置及びその方法に適用して好適なものである。
【0004】
【従来の技術】
従来、例えばMPEG(Moving Picture Experts Group)規格に基づいて動画像を符号化する画像符号化装置においては、例えば15フレームの動画像データをGOP(Group Of Pictures) と呼ばれる1つの処理単位として符号化するようになされている。
【0005】
1つのGOPには、Iピクチヤ(Intra-Picture:フレーム内符号化画像)、Pピクチヤ(Predictive-Picture:フレーム間順方向予測符号化画像)、Bピクチヤ(Bidirectionally Predictive-Picture:双方向予測符号化画像)と呼ばれるフレーム単位の符号化タイプがある。
【0006】
Iピクチヤは、GOPの独立性を保つためのものであり、その画面全体が符号化されるものである。
【0007】
Pピクチヤは、符号化しようとする現在のフレーム(基準フレーム)内を例えば16×16画素のマクロブロツク単位で分割し、当該分割されてなる各マクロブロツクを基準ブロツクする。そして、過去のIピクチヤ又はPピクチヤを検索フレームとして当該検索フレーム内の所定のサーチ範囲内を検索し、マクロブロツク単位で基準ブロツクとのブロツクマツチングを行う。この結果、最もマツチングするブロツクの距離を動きベクトルとして検出し、検索フレームとの差分データを符号化する際に当該動きベクトルを用いて動き補償を行うと共に、これを復号装置側に伝送し復号時の動き補償に用いる。因みに、ブロツクマツチングの方法としては、基準ブロツク及び検索ブロツク内のすべての画素同士の引き算を行い、その絶対値和又は二乗和を求め、その演算結果が最小の位置をマツチングしたブロツクとする方法(フルサーチブロツクマツチング法)が用いられている。
【0008】
また、Bピクチヤは、符号化しようとする現在のフレーム(基準フレーム)の各マクロブロツクを基準ブロツクとして、過去及び未来の双方向のIピクチヤ及びPピクチヤを検索する。そして当該検索フレーム内の所定のサーチ範囲内においてマクロブロツク単位で基準ブロツクとのブロツクマツチングを行う。この結果、最もマツチングするブロツクの距離を動きベクトルとして検出し、検索フレームとの差分データを符号化する際に当該動きベクトルを用いて動き補償を行うと共に、これを復号装置側に伝送し復号時の動き補償に用いる。
【0009】
ここで図12に示すように、双方向予測を行う際には、始めにPピクチヤ(P6)を基準フレームとし、当該基準フレーム(P6)から3フレーム離れたIピクチヤ(I3)を検索フレームとして前方向のみの動きベクトル検出を行う。次に、Bピクチヤ(B4)を基準フレームとしてIピクチヤ(I3)を検索フレームとした前方向の動きベクトル検出とPピクチヤ(P6)を検索フレームとした後方向の動きベクトル検出とからなる双方向予測を行う。そして次に、Bピクチヤ(B5)を基準フレームとしてIピクチヤ(I3)を検索フレームとした前方向の動きベクトル検出とPピクチヤ(P6)を検索フレームとした後方向の動きベクトル検出とからなる双方向予測を行う。
【0010】
かかる双方向予測符号化における動きベクトルの検出順序を図13に示す。図13において、入力画像B1、B2、I3、B4、……はそれぞれピクチヤタイプ(Iピクチヤ、Bピクチヤ、Pピクチヤ)をアルフアベツト(I、B、P)で表すと共にエンコードされる順序をフレーム番号で表している。
【0011】
図13においては、双方向予測を行うBピクチヤを2枚使用した場合を示し、図中「○」印が付されたフレームは、現在符号化されるフレームを示している。また図中の矢印の始点は基準フレームを示し、当該矢印の指すフレームは検索フレームを示している。因みに図13において縦軸は時刻をフレーム単位で表している。
【0012】
この図13において、例えば時刻「3」において、現フレーム(B4)を基準のマクロブロツクとして前方向予測の検索フレーム(I3)及び後方向予測の検索フレーム(P6)への双方向予測を行い、2つの動きベクトルを求めている。
【0013】
【発明が解決しようとする課題】
ところで、動きベクトルの検出を過去及び未来の双方向で行う場合、シーンチエンジ点が途中に存在すると双方向の動き検出のうち一方の検出が困難になる場合があつた。また例えば図12に示したように、2枚のBピクチヤを用いて符号化を行う場合には、一方の動きベクトル検出が1フレーム間で行われ、他方の動きベクトル検出が2フレーム間で行われることになる。この場合、画像の動きが大きいと、2フレーム間での動きベクトル検出において検索範囲が不足したり、さらに画像の動きが大きくなると双方向での動きベクトル検出が困難になる問題があつた。
【0014】
すなわち、図14に示すように、±A画素の検索範囲AR1、AR2を有する動き検出回路が前方向予測及び後方向予測用にそれぞれ2つある場合において、例えばビデオカメラが高速でパン(移動)しており実際の動きが1フレーム間でB画素分(B>A)あるとすると、例えばBピクチヤを基準フレームとした1フレーム間の前方向予測においては、図14(A)に示すようにブロツクマツチングすべきブロツクが検索範囲AR1の外に外れることになり、正確な動きベクトルの検出が困難になる。この場合、図14(B)に示すように、2フレーム間の後方向予測においては当然のごとくブロツクマツチングすべきブロツクは基準位置から2B画素分移動することにより検索範囲AR2の外に外れ、正確な動きベクトル検出は困難になる。
【0015】
かかる問題点を解決するための一つの方法として、図14(C)に示すように、探索範囲AR3を広げる方法か考えられるが、この場合においても画像の動きが大きいと動きベクトルの検出が困難になることを避け得ず、符号化画像の画質劣化を招く問題があつた。
【0016】
本発明は以上の点を考慮してなされたもので、画像の動きが大きい場合においても画質の大幅な劣化を回避し得る画像符号化装置及びその方法を提案しようとするものである。
【0017】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、画像のうち、双方向による動きベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して双方向予測画像を比較して動きベクトルを検出する前方向予測、及び未来の参照画像に対して双方向予測画像を比較して動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する、基準検索範囲で検索範囲が足りていると判別した場合には一方向の予測を実行し、基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を基準検索範囲から変更して逆方向の予測を再度実行し、一方向の予測を省略することにより、画像の動きが大きい場合においても少なくとも片方向の動き検出を確実に行うことができ、この分符号化画像の画質を向上し得る。
【0018】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【0019】
図1において20は全体として画像符号化装置を示し、入力画像データD10を動きベクトル検出部21及び演算部24に受ける。動きベクトル検出部21は、内部に設けられたフレームメモリに格納された2つのフレーム(ピクチヤ)間の動きベクトル情報D21を検出し、これを動き補償部31に供給する。
【0020】
動き補償部31はこのときフレームメモリ30に格納されている参照画像に対して動きベクトル情報D21を用いた動き補償処理を施すことにより予測画像データD31を生成し、これを演算部24に供給する。
【0021】
演算部24は入力画像データD10と予測画像データD31との差分を算出し、この差分データD24をDCT(Discrete Cosine Transform) 部25に供給する。DCT部25は差分データD24に対してDCT(離散コサイン変換)処理を施すことにより、DCT係数列D25を生成し、これを量子化部26に供給する。量子化部26は、DCT係数列D25を量子化することにより量子化データD26を生成し、これを可変長符号化部33及び逆量子化部27にそれぞれ供給する。
【0022】
逆量子化部27は、量子化データD26を逆量子化処理することによりDCT係数列D27を復元する。DCT係数列D27は、さらに逆DCT部28に供給され逆DCT処理が施される。かくして逆DCT部28はピクチヤタイプに応じた差分データD28を復元し、これを演算部29に出力する。
【0023】
演算部29は差分データD28に対して動き補償部31から出力される予測画像データD31を加算演算することにより、参照画像データD29を生成しこれをフレームメモリ30に格納する。
【0024】
かくしてDCT部25及び量子化部26を介して量子化された差分データは、逆量子化部27及び逆DCT部28によつて差分データD28として復元され、演算部29において予測画像データD31と加算されることにより参照画像データD29となる。これにより続くフレーム(ピクチヤ)に対する参照画像がフレームメモリ30に用意されることになる。
【0025】
ここで動きベクトル検出部21は、図2に示すように、入力画像データD10をフレームメモリ51に一旦格納し、制御判定部62から出力される読出し制御信号D52に基づいて、符号化しようとする基準フレームの画像データを各マクロブロツク単位で読み出し、これを基準ブロツクデータD53として2つの動き検出部ME1及びME2に供給する。
【0026】
またフレームメモリ51は制御判定部62から出力される読出し制御信号D52に基づいて検索フレームにおける所定の検索範囲の画像データを順次各マクロブロツク単位で読み出し、これを検索ブロツクデータD54として動き検出部ME1及びME2に供給する。
【0027】
この場合、制御判定部62は、双方向予測において前方向予測に用いる検索フレームの検索ブロツクデータD54を一方の動き検出部ME1(又は動き検出部ME2)に供給すると共に、後方向予測に用いる検索フレームの検索ブロツクデータD54を他方の動き検出部ME2(又は動き検出部ME1)に供給する。
【0028】
各動き検出部ME1及びME2は、基準ブロツクデータD53及び検索ブロツクデータD54に基づき、当該基準ブロツクと検索ブロツクとの距離を動きベクトルデータD56、D60としてそれぞれ制御判定部62に供給すると共に、基準ブロツク及び検索ブロツクの画像データの差分を残差データD57及びD61として制御判定部62に供給する。
【0029】
制御判定部62は、動き検出部ME1から供給される動きベクトルデータD56及び残差データD57に基づき、所定の検索範囲内でのブロツクマツチングを行う。このブロツクマツチングにおいて、制御判定部62は、基準ブロツクと検索ブロツクのすべての画素同士の引き算を行つた結果の絶対値和又は二乗和が最小となるブロツクを検索し、当該ブロツクマツチングの結果得られた検索ブロツクと基準ブロツクとの動きベクトルを前方向予測(又は後方向予測)における動きベクトルとして動き補償モード等の制御情報と共に動き情報D63として動き補償部31(図1)及び可変長符号化部33(図1)に供給する。
【0030】
また、これと同様にして、制御判定部62は、動き検出部ME2から供給される動きベクトルデータD60及び残差データD61に基づき、所定の検索範囲内でのブロツクマツチングを行う。このブロツクマツチングにおいて、制御判定部62は、基準ブロツクと検索ブロツクのすべての画素同士の引き算を行つた結果の絶対値和又は二乗和が最小となるブロツクを検索し、当該ブロツクマツチングの結果得られた検索ブロツクと基準ブロツクとの動きベクトルを後方向予測(又は前方向予測)における動きベクトルとして動き補償モード等の制御情報と共に動き情報D63として動き補償部31(図1)及び可変長符号化部33(図1)に供給する。
【0031】
ここで、制御判定部62は、双方向予測を行う際の検索フレームと、当該検索フレームにおける検索範囲を動きベクトル及び残差等の動き情報に基づいて決定し、これにより決定された検索フレーム及び検索範囲を読出し制御信号D52によつて指定し、決定された検索フレーム及び検索範囲のマクロブロツクを読み出すようになされている。
【0032】
すなわち、この実施の形態の動きベクトル検出部21における基本的動き予測方法を図3に示す。この図3において、入力画像B1、B2、I3、B4、……はそれぞれピクチヤタイプ(Iピクチヤ、Bピクチヤ、Pピクチヤ)をアルフアベツト(I、B、P)で表すと共にエンコードされる順序をフレーム番号で表している。この実施の形態の場合、双方向予測を行うBピクチヤを2枚使用するようにされており、図中「○」印が付されたフレームは、現在符号化されるフレームを示している。また図中の矢印の始点は基準フレームを示し、当該矢印の指すフレームは検索フレームを示している。因みに図3において縦軸は時刻をフレーム単位で表している。
【0033】
この図3において、例えば時刻「3」において、現フレームであるBピクチヤ(B4)を基準フレームとして双方向予測を行う場合、時刻「0」において予めIピクチヤ(I3)を検索フレームとする前方向予測を行つておき、時刻「3」においてはPピクチヤ(P6)を検索フレームとする後予測を行うようになされている。
【0034】
また例えば時刻「4」において現フレームであるBピクチヤ(B5)を基準フレームとして双方向予測を行う場合、時刻「1」において予めIピクチヤ(I3)を検索フレームとする前方向予測を行つておき、時刻「4」においてはPピクチヤ(P6)を検索フレームとする後予測を行うようになされている。
【0035】
このように、動きベクトル検出部21の制御判定部62(図2)は、Bピクチヤを基準フレームとした場合の双方向予測を行う際に、一方の予測を予め行うようになされている。
【0036】
因みに、図3において例えば時刻「2」のPピクチヤ(P6)を基準フレームとした場合のIピクチヤ(I3)への検索において同じ時刻に矢印が1本だけ示されている場合、動きベクトル検出部21の2つの動き検出部ME1及びME2に対して検索フレーム(I3)の別々の検索範囲を割り当てて検索を行う。
【0037】
かかる基本的動き予測方法において、制御判定部62は予め行われる一方の予測(例えば図3の時刻「0」における基準フレーム(B4)から検索フレーム(I3)への検索)において、検索範囲が足りるか否かを判定する。
【0038】
すなわち、動き検出部ME1及びME2は、それぞれフレームメモリ51から供給される基準フレームの基準ブロツクデータD53及び検索フレームの検索ブロツクデータD54をそれぞれフイールドごとに読み出し、当該フイールドごとに動きベクトル及び残差を求め、これを動きベクトルデータD56、D60及び残差データD57、D61として制御判定部62に供給する。
【0039】
制御判定部62は、複数のフイールド間隔の動きベクトル検出の残差を比較して、Mフイールド間の動きベクトル検出時の残差がNフイールド間の残差よりも小さい時(M<N)、検索範囲が不足していると判定する。
【0040】
すなわち、図3において時刻「0」における基準フレーム(B4)から検索フレーム(I3)への動きベクトル検出を行う場合には、図4に示すように、4種類のフイールド動きベクトルV1〜V4が存在し、フイールド間隔は、1フイールド間隔、2フイールド間隔及び3フイールド間隔の3種類が存在する。
【0041】
ここで1フイールド間の残差をMAE1とし、2フイールド間の残差をMAE2とし、3フイールド間の残差をMAE3とし、動き補償を行うことが可能であるか否の閾値をThとする。閾値Thは一定ではなく画像ごとやマクロブロツクごとにより変化する場合がある。この閾値Thの例としては、動き補償せずにそのままマクロブロツクデータを伝送した場合に予測される情報量が考えられる。
【0042】
そして、制御判定部62は、フイールド間隔ごとに得られる3つの残差MAE1、MAE2及びMAE3の値に応じて検索範囲が足りているか否かを判定する。
【0043】
すなわち、残差MAE1、MAE2及びMAE3の各値が、次式、
【0044】
【数1】

Figure 0004003149
【0045】
を満足するとき、制御判定部62は検索範囲が十分に足りていると判定する。
【0046】
従つて、この場合図5(A)及び(B)に示すように、予め設定されている検索範囲にブロツクマツチングした検索ブロツクが存在していることになり、制御判定部62は、図3の時刻「0」及び「3」において前方向予測及び後方向予測を行うことにより、各動きベクトルを検出する。
【0047】
これに対して、次式、
【0048】
【数2】
Figure 0004003149
【0049】
で表される場合、又は次式、
【0050】
【数3】
Figure 0004003149
【0051】
で表されるように、1フイールド間の残差MAE1及び2フイールド間の残差MAE2が3フイールド間の残差MAE3よりも小さい場合が圧倒的に多いとき、これは1フイールド間及び2フイールド間の動き検出においては、検索範囲が足りているのに対して3フイールド間の動き検出において検索範囲が不足していると判定される。因みに(3)式においてTh2は1フイールド間の残差MAE1の比率を表す閾値である。
【0052】
またこれに対して、次式、
【0053】
【数4】
Figure 0004003149
【0054】
又は次式、
【0055】
【数5】
Figure 0004003149
【0056】
で表されるように、1フイールド間の残差MAE1が閾値よりも小さく、2フイールド間の残差MAE2及び3フイールド間の残差MAE3が閾値Thよりも大きい場合か多いとき、制御判定部62は1フイールド間の動き検出のみが検索範囲が足りていると判定する。
【0057】
このようにして、少なくとも1フイールド間の動き検出において探索範囲が足りていると判定された場合、制御判定部62は、探索範囲が足りている動きベクトル分布から1フイールド間の最大動き量を推定し、必要なフイールド間隔分の検索範囲の予測を行う。
【0058】
すなわち、1フイールド間の動きベクトルをMV1、2フイールド間の動きベクトルをMV2、3フイールド間の動きベクトルをMV3とすると、次式、
【0059】
【数6】
Figure 0004003149
【0060】
【数7】
Figure 0004003149
【0061】
によつて表される関係があると推定する。
【0062】
そして少なくとも1フイールド間の動き検出のみにおいて検索範囲が足りている状態では、図6(A)に示すように、1フイールド間の動きベクトルMV1のみが検索範囲AR1内に収まつており、2フイールド間の動きベクトルMV2及び3フイールド間の動きベクトルMV3は、検索範囲AR1の外にあると予想される。
【0063】
従つて、このとき制御判定部62は、(6)式及び(7)式に基づいて、2フイールド間の動きベクトルMV2及び3フイールド間の動きベクトルMV3を予測し、これに応じて検索範囲AR1の場所を変更する。この結果、図6(B)に示すように動きベクトルMV2及びMV3を検索するために足りる検索範囲AR1´が検索範囲AR1と同じ面積のまま異なる場所に求まる。因みに、図6においては1つの動きベクトルのみに注目して検索範囲AR1´を求めたが、本発明はこれに限らず、1画面すべてのマクロブロツクについて1フイールド間における動きベクトルMV1の分布を求め、これに基づいて2フイールド間及び3フイールド間における多くの動きベクトルMV2及びMV3を求め、当該求められた動きベクトルMV2及びMV3のうち、できるだけ多くのベクトルが検出されるような検索範囲を決定することもできる。
【0064】
このようにして図3の時刻「0」における基準フレーム(B4)から検索フレーム(I3)への動き検出において検索範囲が少なくとも2フイールド間で不足していると判定され新たな検索範囲AR1´が求められると、制御判定部62は、図3の時刻「1」における基準フレーム(B5)から2フレーム離れた検索フレーム(I3)への動き検出を行わず、これに代えて図7に示すように、時刻「1」において再び基準フレームをBピクチヤ(B4)として検索フレーム(I3)への1フレーム間での動き検出を新たに設定した検索範囲AR1´を用いて実行する。
【0065】
この結果、図8(A)に示すように、新たに設定された検索範囲AR1´を用いて動きベクトルが求められる。因みに図8(A)は、水平右方向に大きな動きかあると判定された場合に設定された新たな検索範囲AR1´を示す。かくして図7の時刻「1」における基準フレーム(B4)の2回目の検索において、基準フレーム(B4)から検索フレーム(I3)への動きベクトルが検出される。
【0066】
このようにして図7の時刻「1」において基準フレーム(B4)の動きベクトルが検出されると、時刻「3」において実行される予定の基準フレーム(B4)から検索フレーム(P6)への検索は行われず、これに代えて、新たな基準フレーム(B5)の1フレーム後方の検索フレーム(P6)への検索が行われる。このとき、図9(A)に示すように、検索範囲AR2内に検出すべき動きベクトルが存在しないと、これに続く時刻「4」において図3に示すように基準フレーム(B8)から2フレーム前方の検索フレーム(P6)を検索しても図9(B)に示すように、検索範囲AR2が不足することが明らかである。従つて、このとき制御判定部62は、図7の時刻「4」に示すように、基準フレーム(B5)から1フレーム離れた検索フレーム(P6)への検索と、基準フレーム(B7)から1フレーム離れた検索フレーム(P6)への検索を行う。
【0067】
この結果、図9(C)に示すように、新たに検索範囲AR2´を設定して動きベクトルを求めることができる。
【0068】
因みに、全く検索を行わなかつた方向の動きベクトルは、例えば強制的にゼロベクトルとして設定し、静止画部分については、画質が当該操作によつて低下しないようにする。
【0069】
かくして図7の時刻「1」、「3」、「4」及び「6」においてそれぞれBピクチヤ(B4、B5、B7及びB8)を基準フレームとする検索を、新たに設定した検索範囲を用いて1フレーム間で行うことにより、このとき2フレーム間の検索で検索範囲が不足していても、1フレーム間の検索で確実に動きベクトルを検出することができる。
【0070】
ここで、図10は制御判定部62における検索処理手順を示し、制御判定部62はステツプSP0から当該処理手順に入ると、ステツプSP1において動き検出部ME1から基準フレームを構成する2フイールド分の動きベクトルと残差を受け取り、また動き検出部ME2から検索フレームを構成する2フイールド分の動きベクトルと残差を受け取る。
【0071】
そして制御判定部62はステツプSP2に移り、動き検出部ME1及びME2から受け取つた4フイールド分の動きベクトル及び残差から、1フイールド間の残差MAE1と、2フイールド間の残差MAE2と3フイールド間の残差MAE3とを求め、閾値Thとの判定を上述の(1)式〜(5)式に基づいて行う。
【0072】
そしてステツプSP2における判定結果が、上述の(1)式を満足する場合(条件a)、制御判定部62はステツプSP3に移つて、図3に示す通常の双方向予測の検索範囲を設定し、当該設定された検索範囲及び検索フレームに基づき、ステツプSP7において読出し制御信号D52(図2)をフレームメモリ51(図2)に供給することにより、動き検出部ME1及びME2で動き検出を行う。
【0073】
これに対してステツプSP2における判定が、上述の(2)式又は(3)式を満足する場合(条件b)、制御判定部62はステツプSP4に移り、図6について上述した1フイールド間の動きベクトルMV1及び2フイールド間の動きベクトルMV2を用いて検索範囲を決定し、図7について上述したように1フレーム間の片方向予測のみを行うように設定する。かくしてステツプSP7に移り、設定された検索範囲を用いて動き検出を行う。
【0074】
これに対してステツプSP2における判定が、上述の(4)式又は(5)式を満足する場合(条件c)、制御判定部62はステツプSP5に移り、図6について上述した1フイールド間の動きベクトルMV1を用いて検索範囲を決定し、図7について上述したように1フレーム間の片方向予測のみを行うように設定する。かくしてステツプSP7に移り、設定された検索範囲を用いて動き検出を行う。
【0075】
これに対してステツプSP2における判定が、次式、
【0076】
【数8】
Figure 0004003149
【0077】
を満足する場合(条件d)、このことはすべてのフイールド間の検索範囲が不足していることを表しており、このとき制御判定部62はステツプSP6に移り、通常の双方向予測における検索範囲を用い、ステツプSP7において動き検出を行う。
【0078】
因みに、図7の時刻「7」においては、制御判定部62は各残差が十分に小さくなつたと判断し、図3に示す通常の処理に戻る。
【0079】
以上の構成において、制御判定部62は、双方向予測を行うBピクチヤについて、異なる時刻で片方(前方向又は後方向)ごとに検索フレームに対する動き予測を行う(図3)。このとき、例えば図3の時刻「0」において始めに行つた片方の動きベクトルの検索において、このとき設定されている検索範囲の残差が大きく、検出すべき動きベクトルが見つからないと、制御判定部62はこのときの検索フレームに対して最も短い間隔で動きを検出し得る1フイールド間の動きベクトルを基に2フイールド間での動きベクトルを検索し得る検索場所を予測し、これを新たな検索範囲として設定する。
【0080】
そして図3に示す双方向予測のうち、2フレーム離れた予測を1フレーム間の予測に変更して動きベクトルの検索を行う。このように、動画像の動きが大きい場合でも、少なくとも1フイールド間における動きベクトルは正確に求められると予測される点と、動きが大きい場合には2フレーム間での動きベクトルの検索は困難である点とに着目し、双方向予測のうち2フレーム間の予測を1フレーム間に変更すると共に、検索範囲(場所)を変更して1フレーム間で動きベクトルを検索することにより、確実に動きベクトルを検出することができる。
【0081】
かくして以上の構成によれば、双方向予測を行う符号化において画像の動きが大きい場合でも、少なくとも片方向予測の動きベクトルを検出することができ、この結果符号化効率を向上し得ると共に符号化画像の画質を向上できる。
【0082】
なお上述の実施の形態においては、図7について上述したように別々のタイミングで動き検出部ME1及びME2を用いて1フレーム間の動き予測を行う場合について述べたが、本発明はこれに限らず、例えば図11に示すように、2つの動き検出部ME1及びME2を用いて同時に異なる検索範囲を検索するようにしても良い。この場合、図8(D)及び図9(D)に示すように、2つの動き検出部ME1及びME2の検索範囲が設定される。
【0083】
また上述の実施の形態においては、Bピクチヤが2枚である場合(M=3)について述べたが、本発明はこれに限らず、Bピクチヤの数は1枚又は3枚以上であつても良い。
【0084】
また上述の実施の形態においては、マクロブロツク単位でブロツクマツチングを行う場合について述べたが、本発明はこれに限らず、他の種々のデータ単位で検索を行うようにしても良い。
【0085】
【発明の効果】
上述のように本発明によれば、画像のうち、双方向による動きベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して双方向予測画像を比較して動きベクトルを検出する前方向予測、及び未来の参照画像に対して双方向予測画像を比較して動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する、基準検索範囲で検索範囲が足りていると判別した場合には一方向の予測を実行し、基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を基準検索範囲から変更して逆方向の予測を再度実行し、一方向の予測を省略することにより、画像の動きが大きい場合においても少なくとも片方向の動き検出を確実に行うことができ、この分符号化画像の画質を向上し得る。
【図面の簡単な説明】
【図1】本発明による画像符号化装置の一実施の形態を示すブロツク図である。
【図2】本発明による画像符号化装置の動きベクトル検出部の構成を示すブロツク図である。
【図3】通常状態における動き検出手順を示す略線図である。
【図4】フイールド間の動き検出の説明に供する略線図である。
【図5】検索範囲が足りている状態を示す略線図である。
【図6】検索範囲の決定方法の説明に供する略線図である。
【図7】検索範囲が不足しているときの動き検出手順を示す略線図である。
【図8】検索範囲の再設定の説明に供する略線図である。
【図9】検索範囲の再設定の説明に供する略線図である。
【図10】本発明による動き検出処理手順を示すフローチヤートである。
【図11】他の実施の形態による動き検出手順を示す略線図である。
【図12】双方向予測における動き検出の説明に供する略線図である。
【図13】従来の動き検出手順を示す略線図である。
【図14】従来の問題点の説明に供する略線図である。
【符号の説明】
20……画像符号化装置、21……動きベクトル検出部、24、29……演算部、25……DCT部、26……量子化部、27……逆量子化部、28……逆DCT部、30、51……フレームメモリ、31……動き補償部、33……可変長符号化部、62……制御判定部、ME1、ME2……動き検出部。[0001]
【table of contents】
The present invention will be described in the following order.
[0002]
TECHNICAL FIELD OF THE INVENTION
Conventional technology (FIGS. 12 to 14)
Problems to be solved by the invention
Means for solving the problem
BEST MODE FOR CARRYING OUT THE INVENTION (FIGS. 1 to 11)
The invention's effect
[0003]
BACKGROUND OF THE INVENTION
The present invention relates to an image encoding apparatus and method, and is suitable for application to an image encoding apparatus and method for detecting a motion vector of an input image and encoding the input image based on the motion vector.
[0004]
[Prior art]
2. Description of the Related Art Conventionally, in an image encoding apparatus that encodes moving images based on, for example, the MPEG (Moving Picture Experts Group) standard, for example, 15 frames of moving image data are encoded as one processing unit called GOP (Group Of Pictures). It is made to do.
[0005]
One GOP includes an I-picture (Intra-Picture: intra-frame encoded picture), a P-picture (Predictive-Picture: inter-frame forward prediction encoded picture), and a B-picture (Bidirectionally Predictive-Picture: bidirectional predictive encoding). There is a frame-by-frame encoding type called (image).
[0006]
The I picture is for maintaining the independence of the GOP, and the entire screen is encoded.
[0007]
The P-picture divides the current frame (reference frame) to be encoded in units of macroblocks of 16 × 16 pixels, for example, and performs reference block for each of the divided macroblocks. Then, the past I-picture or P-picture is used as a search frame to search the predetermined search range in the search frame, and block matching with the reference block is performed in units of macro blocks. As a result, the distance of the most matching block is detected as a motion vector, and when the difference data from the search frame is encoded, motion compensation is performed using the motion vector, and this is transmitted to the decoding device side for decoding. Used for motion compensation. Incidentally, as a method of block clipping, a method of subtracting all the pixels in the reference block and the search block, obtaining the sum of absolute values or the sum of squares, and making the block matching the position where the operation result is the minimum is used. (Full search blotting method) is used.
[0008]
Further, the B picture searches past and future bidirectional I and P pictures using each macro block of the current frame (reference frame) to be encoded as a reference block. Then, block matching with the reference block is performed in units of macro blocks within a predetermined search range in the search frame. As a result, the distance of the most matching block is detected as a motion vector, and when the difference data from the search frame is encoded, motion compensation is performed using the motion vector, and this is transmitted to the decoding device side for decoding. Used for motion compensation.
[0009]
Here, as shown in FIG. 12, when bi-directional prediction is performed, first, the P-picture (P6) is used as a reference frame, and the I-picture (I3) that is 3 frames away from the reference frame (P6) is used as a search frame. Perform motion vector detection only in the forward direction. Next, a bi-directional operation consisting of forward motion vector detection using B picture (B4) as a reference frame and forward motion vector detection using I picture (I3) as a search frame and backward motion vector detection using P picture (P6) as a search frame. Make a prediction. Next, both the forward motion vector detection using the B picture (B5) as the reference frame and the forward motion vector detection using the I picture (I3) as the search frame and the backward motion vector detection using the P picture (P6) as the search frame. Make a direction prediction.
[0010]
FIG. 13 shows the motion vector detection order in such bidirectional predictive coding. In FIG. 13, input images B1, B2, I3, B4,... Each represent a picture type (I picture, B picture, P picture) with alphabet (I, B, P) and the order in which they are encoded by a frame number. ing.
[0011]
FIG. 13 shows a case where two B-pictures that perform bi-directional prediction are used, and a frame marked with “◯” in the figure indicates a frame that is currently encoded. In addition, the start point of the arrow in the figure indicates a reference frame, and the frame indicated by the arrow indicates a search frame. Incidentally, the vertical axis in FIG. 13 represents time in units of frames.
[0012]
In FIG. 13, for example, at time “3”, bidirectional prediction is performed on the forward prediction search frame (I3) and the backward prediction search frame (P6) using the current frame (B4) as a reference macroblock. Two motion vectors are obtained.
[0013]
[Problems to be solved by the invention]
By the way, when the motion vector is detected in both the past and the future, if a scene change point exists in the middle, it may be difficult to detect one of the bidirectional motion detection. For example, as shown in FIG. 12, when encoding is performed using two B-pictures, one motion vector is detected in one frame and the other motion vector is detected in two frames. It will be. In this case, if the motion of the image is large, there is a problem that the search range is insufficient in motion vector detection between two frames, and if the motion of the image further increases, bidirectional motion vector detection becomes difficult.
[0014]
That is, as shown in FIG. 14, when there are two motion detection circuits each having a search range AR1 and AR2 of ± A pixels for forward prediction and backward prediction, for example, the video camera pans (moves) at high speed. Assuming that the actual motion is B pixels (B> A) in one frame, for example, in the forward prediction between one frame using the B picture as a reference frame, as shown in FIG. The block to be blocked is out of the search range AR1, and it is difficult to detect an accurate motion vector. In this case, as shown in FIG. 14B, in the backward prediction between the two frames, the block to be blocked naturally moves out of the search range AR2 by moving by 2B pixels from the reference position. Accurate motion vector detection becomes difficult.
[0015]
As a method for solving such a problem, as shown in FIG. 14C, a method of expanding the search range AR3 is conceivable. However, even in this case, it is difficult to detect a motion vector if the motion of the image is large. Inevitably, the image quality of the encoded image is degraded.
[0016]
The present invention has been made in consideration of the above points, and an object of the present invention is to propose an image encoding apparatus and method capable of avoiding a significant deterioration in image quality even when the image motion is large.
[0017]
[Means for Solving the Problems]
In order to solve such a problem, in the present invention, a bidirectional prediction image is compared with a past reference image in a standard reference search range for a bidirectional prediction image in which a bidirectional motion vector is to be detected. Among forward prediction to detect motion vectors by comparison, and backward prediction to detect motion vectors by comparing bidirectional prediction images to future reference images, Run before one-way prediction Reverse prediction Than the one-way prediction Run with fewer image intervals When If it is determined that the search range is sufficient in the reference search range, one-way prediction is performed, and if it is determined that the search range is insufficient in the reference search range, the search range is changed from the reference search range. And run the reverse prediction again , Omit one-way prediction As a result, even when the motion of the image is large, at least one-way motion detection can be reliably performed, and the image quality of the encoded image can be improved accordingly.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
[0019]
In FIG. 1, reference numeral 20 denotes an image encoding device as a whole, and the input image data D <b> 10 is received by the motion vector detection unit 21 and the calculation unit 24. The motion vector detection unit 21 detects motion vector information D21 between two frames (pictures) stored in a frame memory provided therein, and supplies this to the motion compensation unit 31.
[0020]
At this time, the motion compensation unit 31 generates predicted image data D31 by performing motion compensation processing using the motion vector information D21 on the reference image stored in the frame memory 30, and supplies this to the calculation unit 24. .
[0021]
The calculation unit 24 calculates a difference between the input image data D10 and the predicted image data D31, and supplies the difference data D24 to a DCT (Discrete Cosine Transform) unit 25. The DCT unit 25 performs a DCT (Discrete Cosine Transform) process on the difference data D24 to generate a DCT coefficient sequence D25 and supplies it to the quantization unit 26. The quantization unit 26 generates quantized data D26 by quantizing the DCT coefficient sequence D25, and supplies the quantized data D26 to the variable length encoding unit 33 and the inverse quantization unit 27, respectively.
[0022]
The inverse quantization unit 27 restores the DCT coefficient sequence D27 by performing inverse quantization processing on the quantized data D26. The DCT coefficient sequence D27 is further supplied to the inverse DCT unit 28 and subjected to inverse DCT processing. Thus, the inverse DCT unit 28 restores the difference data D28 corresponding to the picture type and outputs it to the arithmetic unit 29.
[0023]
The calculation unit 29 adds the predicted image data D31 output from the motion compensation unit 31 to the difference data D28 to generate reference image data D29 and stores it in the frame memory 30.
[0024]
Thus, the difference data quantized through the DCT unit 25 and the quantization unit 26 is restored as the difference data D28 by the inverse quantization unit 27 and the inverse DCT unit 28, and is added to the predicted image data D31 by the calculation unit 29. As a result, reference image data D29 is obtained. As a result, a reference image for the following frame (picture) is prepared in the frame memory 30.
[0025]
Here, as shown in FIG. 2, the motion vector detection unit 21 temporarily stores the input image data D10 in the frame memory 51 and attempts to encode based on the read control signal D52 output from the control determination unit 62. The image data of the reference frame is read in units of each macro block, and this is supplied as reference block data D53 to the two motion detectors ME1 and ME2.
[0026]
The frame memory 51 sequentially reads out image data in a predetermined search range in the search frame in units of macroblocks based on the read control signal D52 output from the control determination unit 62, and uses this as search block data D54 for the motion detection unit ME1. And to ME2.
[0027]
In this case, the control determination unit 62 supplies search block data D54 of a search frame used for forward prediction in bidirectional prediction to one motion detection unit ME1 (or motion detection unit ME2) and also uses search for backward prediction. The frame search block data D54 is supplied to the other motion detector ME2 (or motion detector ME1).
[0028]
Based on the reference block data D53 and the search block data D54, each of the motion detection units ME1 and ME2 supplies the distance between the reference block and the search block to the control determination unit 62 as motion vector data D56 and D60, respectively. And the difference of the image data of the search block is supplied to the control determination unit 62 as residual data D57 and D61.
[0029]
The control determination unit 62 performs blocking within a predetermined search range based on the motion vector data D56 and the residual data D57 supplied from the motion detection unit ME1. In this block cutting, the control determination unit 62 searches for a block having the minimum sum of absolute values or sum of squares obtained by subtracting all pixels of the reference block and the search block, and the result of the block cutting. The motion compensation unit 31 (FIG. 1) and the variable length code are used as motion information D63 together with control information such as motion compensation mode as motion vectors in the forward prediction (or backward prediction) using the obtained motion vectors of the search block and the reference block. It supplies to the conversion part 33 (FIG. 1).
[0030]
Similarly, the control determination unit 62 performs block clipping within a predetermined search range based on the motion vector data D60 and the residual data D61 supplied from the motion detection unit ME2. In this block cutting, the control determination unit 62 searches for a block having the minimum sum of absolute values or sum of squares obtained by subtracting all pixels of the reference block and the search block, and the result of the block cutting. The motion vector of the obtained search block and the reference block is used as a motion vector in backward prediction (or forward prediction) as control information such as motion compensation mode as motion information D63, and the motion compensation unit 31 (FIG. 1) and variable length code. It supplies to the conversion part 33 (FIG. 1).
[0031]
Here, the control determination unit 62 determines a search frame when performing bidirectional prediction and a search range in the search frame based on motion information such as a motion vector and a residual, and the search frame and The search range is designated by the read control signal D52, and the determined search frame and macro block of the search range are read.
[0032]
That is, FIG. 3 shows a basic motion prediction method in the motion vector detection unit 21 of this embodiment. In FIG. 3, input images B1, B2, I3, B4,... Each represent a picture type (I picture, B picture, P picture) with alphabets (I, B, P) and are encoded in frame numbers. Represents. In the case of this embodiment, two B pictures for bi-directional prediction are used, and a frame marked with “◯” in the figure indicates a frame that is currently encoded. In addition, the start point of the arrow in the figure indicates a reference frame, and the frame indicated by the arrow indicates a search frame. Incidentally, the vertical axis in FIG. 3 represents time in units of frames.
[0033]
In FIG. 3, for example, when bi-directional prediction is performed using the B picture (B4), which is the current frame, as a reference frame at time “3”, the forward direction using the I picture (I3) as a search frame in advance at time “0”. Prediction is performed, and at time “3”, post-prediction is performed using the P picture (P6) as a search frame.
[0034]
Also, for example, when bi-directional prediction is performed using the B-picture (B5), which is the current frame, as the reference frame at time “4”, forward-direction prediction using the I-picture (I3) as a search frame is performed in advance at time “1”. At time “4”, post-prediction is performed using the P picture (P6) as a search frame.
[0035]
In this way, the control determination unit 62 (FIG. 2) of the motion vector detection unit 21 performs one prediction in advance when performing bi-directional prediction when the B picture is used as a reference frame.
[0036]
Incidentally, in FIG. 3, for example, when only one arrow is shown at the same time in the search to the I-picture (I3) when the P-picture (P6) at the time “2” is used as the reference frame, the motion vector detection unit The search is performed by assigning different search ranges of the search frame (I3) to the two motion detection units ME1 and ME2.
[0037]
In such a basic motion prediction method, the control determination unit 62 has a sufficient search range in one of the predictions performed in advance (for example, a search from the reference frame (B4) to the search frame (I3) at time “0” in FIG. 3). It is determined whether or not.
[0038]
That is, the motion detection units ME1 and ME2 respectively read the reference block data D53 of the reference frame and the search block data D54 of the search frame supplied from the frame memory 51 for each field, and obtain the motion vector and the residual for each field. This is obtained and supplied to the control determination unit 62 as motion vector data D56 and D60 and residual data D57 and D61.
[0039]
The control determination unit 62 compares motion vector detection residuals at a plurality of field intervals, and when the residual at the time of motion vector detection between M fields is smaller than the residual between N fields (M <N), It is determined that the search range is insufficient.
[0040]
That is, in the case where motion vector detection from the reference frame (B4) to the search frame (I3) at time “0” in FIG. 3 is performed, there are four types of field motion vectors V1 to V4 as shown in FIG. There are three types of field intervals: 1 field interval, 2 field interval, and 3 field interval.
[0041]
Here, a residual between one field is MAE1, a residual between two fields is MAE2, a residual between three fields is MAE3, and a threshold value indicating whether motion compensation can be performed is Th. The threshold value Th is not constant and may vary from image to image or macroblock. As an example of the threshold Th, an amount of information predicted when macroblock data is transmitted as it is without motion compensation can be considered.
[0042]
And the control determination part 62 determines whether the search range is enough according to the value of three residual MAE1, MAE2, and MAE3 obtained for every field interval.
[0043]
That is, each value of the residuals MAE1, MAE2, and MAE3 is expressed by the following equation:
[0044]
[Expression 1]
Figure 0004003149
[0045]
Is satisfied, the control determination unit 62 determines that the search range is sufficient.
[0046]
Accordingly, in this case, as shown in FIGS. 5A and 5B, there is a search block that is blocked in a preset search range, and the control determination unit 62 performs processing as shown in FIG. Each motion vector is detected by performing forward prediction and backward prediction at times “0” and “3”.
[0047]
In contrast, the following equation:
[0048]
[Expression 2]
Figure 0004003149
[0049]
Or the following formula:
[0050]
[Equation 3]
Figure 0004003149
[0051]
When the residual MAE1 between 1 field and the residual MAE2 between 2 fields are overwhelmingly larger than the residual MAE3 between 3 fields, this is between 1 field and 2 fields. In the motion detection, it is determined that the search range is insufficient in the motion detection between the three fields while the search range is sufficient. Incidentally, in equation (3), Th2 is a threshold value representing the ratio of the residual MAE1 between one field.
[0052]
On the other hand,
[0053]
[Expression 4]
Figure 0004003149
[0054]
Or
[0055]
[Equation 5]
Figure 0004003149
[0056]
When the residual MAE1 between 1 field is smaller than the threshold value and the residual MAE2 between 2 fields and the residual MAE3 between 3 fields are larger than the threshold Th as shown in FIG. Determines that the search range is sufficient only for motion detection between one field.
[0057]
In this way, when it is determined that the search range is sufficient in the motion detection between at least one field, the control determination unit 62 estimates the maximum amount of motion between one field from the motion vector distribution with the sufficient search range. Then, the search range for the required field interval is predicted.
[0058]
That is, when the motion vector between 1 field is MV1, the motion vector between fields is MV2, and the motion vector between 3 fields is MV3,
[0059]
[Formula 6]
Figure 0004003149
[0060]
[Expression 7]
Figure 0004003149
[0061]
It is assumed that there is a relationship expressed by
[0062]
In a state where the search range is sufficient only for motion detection between at least one field, only the motion vector MV1 between one field is within the search range AR1, as shown in FIG. The motion vector MV2 between and the motion vector MV3 between the three fields are expected to be outside the search range AR1.
[0063]
Accordingly, at this time, the control determination unit 62 predicts the motion vector MV2 between the two fields and the motion vector MV3 between the three fields based on the equations (6) and (7), and the search range AR1 accordingly. Change the location. As a result, as shown in FIG. 6B, a search range AR1 ′ sufficient for searching for the motion vectors MV2 and MV3 is obtained at a different location while maintaining the same area as the search range AR1. Incidentally, in FIG. 6, the search range AR1 ′ is obtained by paying attention to only one motion vector, but the present invention is not limited to this, and the distribution of the motion vector MV1 between one field is obtained for all macroblocks in one screen. Based on this, many motion vectors MV2 and MV3 between two fields and between three fields are obtained, and a search range in which as many vectors as possible are detected among the obtained motion vectors MV2 and MV3 is determined. You can also
[0064]
In this way, it is determined that the search range is insufficient between at least two fields in motion detection from the reference frame (B4) to the search frame (I3) at time “0” in FIG. 3, and a new search range AR1 ′ is set. When obtained, the control determination unit 62 does not detect the motion to the search frame (I3) that is two frames away from the reference frame (B5) at the time “1” in FIG. 3, but instead performs detection as shown in FIG. At time “1”, the reference frame is again set as the B picture (B4), and the motion detection between the frames to the search frame (I3) is newly executed using the search range AR1 ′.
[0065]
As a result, as shown in FIG. 8A, a motion vector is obtained using the newly set search range AR1 ′. Incidentally, FIG. 8A shows a new search range AR1 ′ set when it is determined that there is a large movement in the horizontal right direction. Thus, in the second search of the reference frame (B4) at time “1” in FIG. 7, a motion vector from the reference frame (B4) to the search frame (I3) is detected.
[0066]
When the motion vector of the reference frame (B4) is detected at time “1” in FIG. 7, the search from the reference frame (B4) scheduled to be executed at time “3” to the search frame (P6) is performed. Instead of this, instead of this, a search is performed for a search frame (P6) one frame behind the new reference frame (B5). At this time, as shown in FIG. 9A, if there is no motion vector to be detected in the search range AR2, at time “4” following this, two frames from the reference frame (B8) as shown in FIG. As shown in FIG. 9B, it is clear that the search range AR2 is insufficient even if the search frame (P6) in the front is searched. Therefore, at this time, as shown at time “4” in FIG. 7, the control determination unit 62 searches for the search frame (P6) one frame away from the reference frame (B5), and 1 from the reference frame (B7). A search is performed for a search frame (P6) separated from the frame.
[0067]
As a result, as shown in FIG. 9C, the motion vector can be obtained by newly setting the search range AR2 ′.
[0068]
Incidentally, the motion vector in the direction in which no search is performed is forcibly set as a zero vector, for example, so that the image quality of the still image portion is not deteriorated by the operation.
[0069]
Thus, the search using the B picture (B4, B5, B7 and B8) as the reference frame at the times “1”, “3”, “4” and “6” in FIG. 7 is performed using the newly set search range. By performing the process between one frame, a motion vector can be reliably detected by the search between one frame even if the search range is insufficient in the search between two frames.
[0070]
Here, FIG. 10 shows a search processing procedure in the control determination unit 62. When the control determination unit 62 enters the processing procedure from step SP0, the motion for two fields constituting the reference frame from the motion detection unit ME1 in step SP1. The vector and the residual are received, and the motion vector and residual for two fields constituting the search frame are received from the motion detection unit ME2.
[0071]
Then, the control determination unit 62 moves to step SP2, and from the motion vectors and residuals for 4 fields received from the motion detection units ME1 and ME2, residual MAE1 between 1 field and residuals MAE2 and 3 fields between 2 fields. The residual MAE3 is obtained, and the threshold Th is determined based on the above formulas (1) to (5).
[0072]
If the determination result in step SP2 satisfies the above-described expression (1) (condition a), the control determination unit 62 moves to step SP3 and sets the normal bidirectional prediction search range shown in FIG. Based on the set search range and search frame, the motion detection units ME1 and ME2 perform motion detection by supplying the read control signal D52 (FIG. 2) to the frame memory 51 (FIG. 2) at step SP7.
[0073]
On the other hand, when the determination at step SP2 satisfies the above-described expression (2) or (3) (condition b), the control determination unit 62 moves to step SP4, and the movement between one field described above with reference to FIG. The search range is determined using the motion vector MV2 between the vector MV1 and the two fields, and is set so as to perform only one-way prediction between one frame as described above with reference to FIG. Thus, the process proceeds to step SP7, and motion detection is performed using the set search range.
[0074]
On the other hand, when the determination in step SP2 satisfies the above-described expression (4) or (5) (condition c), the control determination unit 62 moves to step SP5, and the movement between one field described above with reference to FIG. The search range is determined using the vector MV1, and is set so as to perform only one-way prediction between one frame as described above with reference to FIG. Thus, the process proceeds to step SP7, and motion detection is performed using the set search range.
[0075]
On the other hand, the determination in step SP2 is as follows:
[0076]
[Equation 8]
Figure 0004003149
[0077]
If this condition is satisfied (condition d), this means that the search range between all the fields is insufficient. At this time, the control determination unit 62 moves to step SP6, and the search range in the normal bi-directional prediction. And motion detection is performed at step SP7.
[0078]
Incidentally, at time “7” in FIG. 7, the control determination unit 62 determines that each residual has become sufficiently small, and returns to the normal processing shown in FIG. 3.
[0079]
In the above configuration, the control determination unit 62 performs motion prediction on the search frame for each one (forward or backward) at different times with respect to the B-picture for which bidirectional prediction is performed (FIG. 3). At this time, for example, in the search for one of the motion vectors first performed at time “0” in FIG. 3, if the residual of the search range set at this time is large and no motion vector to be detected is found, the control determination The unit 62 predicts a search place where a motion vector between two fields can be searched based on a motion vector between one field where motion can be detected at the shortest interval with respect to the search frame at this time, and this is determined as a new location. Set as search range.
[0080]
Then, the motion vector search is performed by changing the prediction two frames away from the bidirectional prediction shown in FIG. 3 to the prediction for one frame. As described above, even when the motion of the moving image is large, it is predicted that the motion vector between at least one field is accurately obtained, and when the motion is large, it is difficult to search for the motion vector between two frames. Focusing on a certain point, the prediction between two frames in the bidirectional prediction is changed between one frame, and the search range (location) is changed and the motion vector is searched between the frames, thereby reliably moving. Vectors can be detected.
[0081]
Thus, according to the above configuration, even when the motion of the image is large in the encoding that performs bidirectional prediction, it is possible to detect the motion vector of at least one-way prediction, and as a result, the encoding efficiency can be improved and the encoding can be performed. The image quality can be improved.
[0082]
In the above-described embodiment, as described above with reference to FIG. 7, the case of performing motion prediction between one frame using the motion detection units ME <b> 1 and ME <b> 2 at different timings is described, but the present invention is not limited to this. For example, as shown in FIG. 11, different search ranges may be searched simultaneously using two motion detection units ME1 and ME2. In this case, as shown in FIGS. 8D and 9D, the search ranges of the two motion detection units ME1 and ME2 are set.
[0083]
In the above-described embodiment, the case where there are two B pictures (M = 3) has been described. However, the present invention is not limited to this, and the number of B pictures may be one or three or more. good.
[0084]
In the above-described embodiment, the case of performing block clipping in units of macroblocks has been described. However, the present invention is not limited to this, and search may be performed in other various data units.
[0085]
【The invention's effect】
As described above, according to the present invention, a bidirectional prediction image is compared with a past reference image in a standard reference search range for a bidirectional prediction image in which a bidirectional motion vector is to be detected. Forward prediction to detect a motion vector and backward prediction to detect a motion vector by comparing a bidirectional prediction image against a future reference image, Run before one-way prediction Reverse prediction Than the one-way prediction Run with fewer image intervals When If it is determined that the search range is sufficient in the reference search range, one-way prediction is performed, and if it is determined that the search range is insufficient in the reference search range, the search range is changed from the reference search range. And run the reverse prediction again , Omit one-way prediction As a result, even when the motion of the image is large, at least one-way motion detection can be reliably performed, and the image quality of the encoded image can be improved accordingly.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of an image encoding device according to the present invention.
FIG. 2 is a block diagram showing a configuration of a motion vector detection unit of the image encoding device according to the present invention.
FIG. 3 is a schematic diagram illustrating a motion detection procedure in a normal state.
FIG. 4 is a schematic diagram for explaining motion detection between fields.
FIG. 5 is a schematic diagram showing a state where a search range is sufficient.
FIG. 6 is a schematic diagram for explaining a method of determining a search range.
FIG. 7 is a schematic diagram illustrating a motion detection procedure when a search range is insufficient.
FIG. 8 is a schematic diagram for explaining the resetting of a search range.
FIG. 9 is a schematic diagram for explaining the resetting of a search range.
FIG. 10 is a flowchart showing a motion detection processing procedure according to the present invention.
FIG. 11 is a schematic diagram illustrating a motion detection procedure according to another embodiment.
FIG. 12 is a schematic diagram for explaining motion detection in bidirectional prediction.
FIG. 13 is a schematic diagram illustrating a conventional motion detection procedure.
FIG. 14 is a schematic diagram for explaining a conventional problem.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 20 ... Image coding apparatus, 21 ... Motion vector detection part, 24, 29 ... Operation part, 25 ... DCT part, 26 ... Quantization part, 27 ... Inverse quantization part, 28 ... Inverse DCT , 30, 51: Frame memory, 31: Motion compensation unit, 33: Variable length coding unit, 62: Control determination unit, ME1, ME2: Motion detection unit.

Claims (6)

入力される画像を符号化する画像符号化装置において、
上記画像のうち、双方向によるきベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する前方向予測、及び未来の上記参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する、上記基準検索範囲で検索範囲が足りていると判別した場合には上記一方向の予測を実行し、上記基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を上記基準検索範囲から変更して上記逆方向の予測を再度実行し、上記一方向の予測を省略する動きベクトル検出部と、
上記動きベクトルを用いて双方向予測画像を符号化する符号化部と
を具えることを特徴とする画像符号化装置。
In an image encoding device that encodes an input image,
Of the image, with respect to the bidirectional prediction image to detect a motion-out vector by the bi-directional, by comparing the bidirectional predictive picture for past reference picture in a reference search range as a reference detecting the motion vector to forward prediction, and among the backward prediction after detecting the motion vector by comparing the bidirectional predictive picture for the future of the reference image, the backward prediction to be executed prior to the unidirectional prediction When executing with a smaller image interval than the one-way prediction, if it is determined that the search range is sufficient in the reference search range, the one-way prediction is executed, and the search range is insufficient in the reference search range. A motion vector detection unit that changes the search range from the reference search range and performs the backward prediction again , and omits the one-way prediction ;
An image encoding apparatus comprising: an encoding unit that encodes a bidirectional prediction image using the motion vector.
上記動き検出部は、
上記参照画像を共有する2つの双方向予測画像それぞれについて、同時に前方向予測又は後方向予測を実行する
ことを特徴とする請求項1に記載の画像符号化装置。
The motion detector is
The image coding apparatus according to claim 1, wherein forward prediction or backward prediction is simultaneously executed for each of the two bidirectional prediction images sharing the reference image.
上記動き検出部は、
一の上記双方向予測画像に対する上記逆方向の予測を上記一方向の予測よりも少ない画像間隔で実行する、上記基準検索範囲では検索範囲が不足していると判別した場合には、記一方向の予測よりも多い画像間隔で上記逆方向の予測を実行する次の上記双方向予測画像に対して、上記逆方向の予測を省略する
ことを特徴とする請求項1に記載の画像符号化装置。
The motion detector is
When performing the backward prediction for one of the bidirectional prediction image with less image intervals than the prediction of the one direction, when it is determined that the search range is the reference search range is insufficient, the upper Symbol The image code according to claim 1, wherein the backward prediction is omitted for the next bidirectional prediction image in which the backward prediction is performed at a larger image interval than the one- way prediction. Device.
上記動き検出部は、
上記双方向予測画像に対する上記逆方向の予測を上記一方向の予測よりも少ない画像間隔で実行する際、上記双方向予測画像と上記参照画像との間の残差と所定の閾値とを比較することにより、上記基準検索範囲では検索範囲が不足しているか否かを判別する
ことを特徴とする請求項1に記載の画像符号化装置。
The motion detector is
When the backward prediction for the bidirectional prediction image is performed with a smaller image interval than the one- way prediction, the residual between the bidirectional prediction image and the reference image is compared with a predetermined threshold value. Thus, it is determined whether or not the search range is insufficient in the reference search range. The image encoding apparatus according to claim 1, wherein:
上記動き検出部は、
上記双方向予測画像に対する上記逆方向の予測を上記一方向の予測よりも少ない画像間隔で実行する、上記双方向予測画像と上記参照画像とが有するフィールド画像間のフィールド間動きベクトルを検出し、上記基準検索範囲では検索範囲が不足していると判別したものの、上記フィールド間動きベクトルを検出できた場合には、当該フィールド間動きベクトルから上記動きベクトルを推測することにより上記検索範囲を変更する
ことを特徴とする請求項1に記載の画像符号化装置。
The motion detector is
When performing the backward prediction for the bidirectional prediction image with less image intervals than the prediction of the one direction, and detects the inter-field motion vectors between fields image included in the above bidirectional prediction image and the reference image If it is determined that the search range is insufficient in the reference search range, but the inter-field motion vector is detected, the search range is changed by estimating the motion vector from the inter-field motion vector. The image coding apparatus according to claim 1, wherein:
入力される画像を符号化する画像符号化方法において、
上記画像のうち、双方向による動きベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する前方向予測、及び未来の上記参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する、上記基準検索範囲で検索範囲が足りていると判別した場合には上記一方向の予測を実行し、上記基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を上記基準検索範囲から変更して上記逆方向の予測を再度実行し、上記一方向の予測を省略する動きベクトル検出ステツプと、
上記動きベクトルを用いて双方向予測画像を符号化する符号化ステツプと
を具えることを特徴とする画像符号化方法。
In an image encoding method for encoding an input image,
Among the images, a bidirectional prediction image whose bidirectional motion vector is to be detected is detected by comparing the bidirectional prediction image with a past reference image in a standard reference search range. forward prediction, and among the backward prediction after detecting the motion vector by comparing the bidirectional predictive picture for the future of the reference image, the backward prediction to be executed prior to the unidirectional prediction When executing with a smaller image interval than the one-way prediction, if it is determined that the search range is sufficient in the reference search range, the one-way prediction is executed, and the search range is insufficient in the reference search range. A motion vector detection step that changes the search range from the reference search range and executes the reverse direction prediction again and omits the one-way prediction ;
An image encoding method comprising: an encoding step for encoding a bidirectional prediction image using the motion vector.
JP10543098A 1998-03-31 1998-03-31 Image encoding apparatus and method Expired - Fee Related JP4003149B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10543098A JP4003149B2 (en) 1998-03-31 1998-03-31 Image encoding apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10543098A JP4003149B2 (en) 1998-03-31 1998-03-31 Image encoding apparatus and method

Publications (2)

Publication Number Publication Date
JPH11289540A JPH11289540A (en) 1999-10-19
JP4003149B2 true JP4003149B2 (en) 2007-11-07

Family

ID=14407390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10543098A Expired - Fee Related JP4003149B2 (en) 1998-03-31 1998-03-31 Image encoding apparatus and method

Country Status (1)

Country Link
JP (1) JP4003149B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5171675B2 (en) * 2009-02-03 2013-03-27 三洋電機株式会社 Image processing apparatus and imaging apparatus equipped with the same
JP6527460B2 (en) * 2015-12-25 2019-06-05 日本電信電話株式会社 Video coding apparatus, video coding method and video coding program

Also Published As

Publication number Publication date
JPH11289540A (en) 1999-10-19

Similar Documents

Publication Publication Date Title
US6542642B2 (en) Image coding process and motion detecting process using bidirectional prediction
JP2004056823A (en) Motion vector encoding/decoding method and apparatus
JP5426655B2 (en) Compressed video encoding device, compressed video decoding device, compressed video encoding method, and compressed video decoding method
JPH09294266A (en) Motion vector retrieval method
JP2000270332A (en) Method and device for encoding dynamic picture
US7382417B2 (en) Method and algorithm for detection of scene cuts or similar images in video images
JP2002051341A (en) Moving picture coding apparatus and apparatus of detecting special effect scene in the moving picture
JP2004032355A (en) Motion picture encoding method, motion picture decoding method, and apparatus for the both method
US20070092007A1 (en) Methods and systems for video data processing employing frame/field region predictions in motion estimation
EP3131295A1 (en) Video encoding method and system
JP5178616B2 (en) Scene change detection device and video recording device
US8150171B2 (en) Apparatus for and method of decoding moving picture, and computer product
KR20040099379A (en) Method of estimating backward motion vectors within a video sequence
JPH0846969A (en) System for encoding video signal
JP4003149B2 (en) Image encoding apparatus and method
JPH06350995A (en) Moving picture processing method
JP2000261809A (en) Image coder coping with feature of picture
US9253493B2 (en) Fast motion estimation for multiple reference pictures
JP2003032691A (en) Picture coding device corresponding to picture feature
JPH05308628A (en) Moving image encoder
JPH10191347A (en) Motion detector, motion detecting method and storage medium
WO1999044369A1 (en) Device and method for coding image
JP2005175891A (en) Recorder
JPH10145792A (en) Image encoding device and method
KR101261577B1 (en) Apparatus and method for encoding and decoding multi view video

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070705

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: 20070727

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070809

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

Free format text: PAYMENT UNTIL: 20100831

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees