JP2016063358A - 符号化回路、符号化方法 - Google Patents

符号化回路、符号化方法 Download PDF

Info

Publication number
JP2016063358A
JP2016063358A JP2014189146A JP2014189146A JP2016063358A JP 2016063358 A JP2016063358 A JP 2016063358A JP 2014189146 A JP2014189146 A JP 2014189146A JP 2014189146 A JP2014189146 A JP 2014189146A JP 2016063358 A JP2016063358 A JP 2016063358A
Authority
JP
Japan
Prior art keywords
search
motion vector
statistical
search range
macroblock
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.)
Granted
Application number
JP2014189146A
Other languages
English (en)
Other versions
JP6394876B2 (ja
Inventor
英典 仲石
Hidenori Nakaishi
英典 仲石
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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2014189146A priority Critical patent/JP6394876B2/ja
Priority to US14/841,178 priority patent/US10104396B2/en
Publication of JP2016063358A publication Critical patent/JP2016063358A/ja
Application granted granted Critical
Publication of JP6394876B2 publication Critical patent/JP6394876B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)

Abstract

【課題】符号化効率を向上すること。
【解決手段】統計処理部43は、動画像に含まれる各フレーム画像が処理単位にて分割されたマクロブロック毎に検出された複数の動きベクトルを統計処理する。動き探索部44は、現処理画像と時間的に異なる参照画像に探索範囲を設定し、統計処理部43の処理結果に基づいて、探索範囲内に探索開始位置を設定する。そして、動き探索部44は、統計処理部43の処理結果に基づいて設定した探索方向にしたがって探索範囲内を探索し、現処理画像の対象マクロブロックの動きベクトル(MV)を生成する。
【選択図】図2

Description

符号化回路、符号化方法に関する。
従来、MPEG(Moving Picture Experts Group)やH.264等は、動画像の圧縮符号化の規格として知られている。これらの圧縮符号化を行う画像処理装置では、画面内予測(イントラ予測)や画面間予測(インター予測)を行う。画面間予測では、動き探索処理を行い、符号化対象の画面(現処理画像とよぶ)を分割したマクロブロック(MB)の動きベクトルを検出する。動き探索処理は、処理対象のマクロブロックと類似したブロックを、現処理画像と時間的に前後関係にある参照画像に設定した探索範囲の中から探し出す処理である。動き探索処理において、原処理画像に対して時間的に異なる画像における動きベクトルを用いて探索範囲を設定することがある(たとえば、特許文献1,2参照)。
特開2000−308062号公報 特開2002−335529号公報
ところで、動画像を符号化する符号化回路において、符号化(画面間予測による符号化)の効率向上が求められる。
本発明の一観点によれば、動画像に含まれる各フレーム画像が処理単位にて分割されたマクロブロック毎に検出された複数の動きベクトルを統計処理する統計処理部と、第1フレーム画像と時間的に異なる参照フレーム画像に第1探索範囲を設定し、前記統計処理部の処理結果に基づいて前記第1探索範囲内に探索開始位置を設定し、前記統計処理部の処理結果に基づいて設定した探索方向にしたがって前記第1探索範囲内を探索し、前記第1フレーム画像に含まれる対象マクロブロックの動きベクトルを生成する動き探索部とを有する。
本発明の一観点によれば、符号化効率を向上することができる。
符号化回路の概略構成図である。 動きベクトル検出部のブロック図である。 符号化するピクチャの説明図である。 ピクチャ間における前方参照の説明図である。 ピクチャ間における前方参照及び後方参照の説明図である。 マクロブロックの処理順序と動きベクトル予測値等の算出の説明図である。 (a),(b)は現処理画像の動きベクトル探索を示す説明図である。 (a),(b)は縮小画像の動きベクトル探索を示す説明図である。 (a),(b)は縮小画像の動きベクトル探索を示す説明図である。 (a),(b)は現処理画像の動きベクトル探索を示す説明図である。 (a)〜(f)は動き探索における全探索の説明図である。 現処理画像と探索範囲、探索結果を示す説明図である。 本実施形態の処理を示すフローチャートである。 比較例の処理を示すフローチャートである。 統計処理に用いるマクロブロックを示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース1]を示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース2]を示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース3]を示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース4]を示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース10]を示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース11]を示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース12]を示す説明図である。 (a)〜(e)は、探索開始位置と探索方向の[ケース13]を示す説明図である。 (a)(b)は、探索開始位置と探索方向の[ケース14]を示す説明図である。 探索開始位置と探索方向のケースを選択する処理を示すフローチャートである。 探索開始位置と探索方向のケースを選択する処理を示すフローチャートである。 (a)〜(c)は[ケース1]による全探索の説明図である。 (a)〜(c)は[ケース1]による全探索の説明図である。 (a)〜(c)は[ケース1]による全探索の説明図である。 動き探索処理の打ち切りと探索期間の説明図である。 動き探索処理の打ち切りと探索期間の説明図である。 動き探索処理の打ち切りと探索期間の説明図である。 打ち切り処理のケースの選択を示すフローチャートである。 打ち切り処理のケースの選択を示すフローチャートである。 (a)は探索範囲の拡張を示す説明図、(b)は探索方向の説明図である。 (a)〜(d)は、探索範囲の拡張の各ケースを示す説明図である。 (a)〜(e)は、探索範囲の拡張の各ケースを示す説明図である。 (a)〜(d)は、探索範囲の拡張の各ケースを示す説明図である。 (a)〜(e)は、探索範囲の拡張の各ケースを示す説明図である。 探索範囲の拡張のケースを選択する処理を示すフローチャートである。 探索範囲の拡張のケースを選択する処理を示すフローチャートである。 探索範囲の拡張のケースを選択する処理を示すフローチャートである。 探索範囲の拡張のケースを選択する処理を示すフローチャートである。
以下、一実施形態を説明する。
先ず、符号化回路の概略を説明する。
図1に示す符号化回路10は、たとえばMPEG2の規格にしたがって、入力画像11を符号化した符号化信号12を生成する。
マクロブロック分割部(MB分割部)21は、入力画像11を処理単位で分割した画像(マクロブロック(MB))を、減算器22と動きベクトル検出部32に出力する。
減算器22は、マクロブックと、予測モード選択部34から出力される予測画像との差分値を算出し、その差分値を出力する。直交変換量子化部23は、上記差分値を直交変換した後に、量子化を行い、量子化したデータを出力する。直交変換は、たとえば離散コサイン変換(DCT:Discrete Cosine Transform)である。エントロピー符号化部24は、直交変換量子化部23により量子化されたデータを可変長符号化変換し、符号化信号12を出力する。
逆量子化逆直交変換部25は、直交変換量子化部23により量子化されたデータを逆量子化した後、逆直交変換を行い、処理後のデータを出力する。逆直交変換は、たとえば逆離散コサイン変換(IDCT:Inverse DCT)である。加算器26は、逆量子化逆直交変換部25の出力データに、予測モード選択部34から出力される予測画像を加算して参照画像を生成する。この参照画像は、現フレームバッファ27に保持される。
フレーム内予測部28は、現フレームバッファ27に保持された参照画像を入力し、隣接ブロックからの画素レベルに基づいて、参照画像のフレーム内予測を行う。デブロッキングフィルタ29は、現フレームバッファ27に保持された参照画像を入力し、隣接する2つのマクロブロックの境界を平滑化して出力する。これにより、デブロッキングフィルタ29は、画像を符号化した際に生じるブロック歪を減少させる。フレームバッファ管理部30は、デブロッキングフィルタ29の出力データをフレームバッファ31に出力し、フレームバッファ31はその出力データを記憶する。
動きベクトル検出部32は、MB分割部21から入力されたマクロブロック(MB)と、過去のフレームバッファ31に格納された参照画像とを用いて、対象マクロブロックの動きベクトル(MV:Motion Vector)を検出する。動きベクトル(MV)は、通常、周辺領域との相関が高い。フレーム間予測部33は、周辺領域の動きベクトル(MV)に基づいて動きベクトル予測値(MVP:Motion Vector Predictor)を算出する。さらに、フレーム間予測部33は、対象マクロブロックの動きベクトル(MV)と動きベクトル予測値(MVP)との間の予測差分値(MVD:Motion Vector Difference)を算出する。上記のエントロピー符号化部24は、この予測差分値(MVD)を含む符号化信号12を出力する。復号化装置(図示略)において、予測差分値(MVD)により動きベクトル(MV)を算出し、復号化した出力画像を生成する。
予測モード選択部34は、フレーム間予測部33とフレーム内予測部28の予測誤差を比較し、当該マクロブロックを最も効率よく符号化することができる符号化モードを選択し、符号化モード情報を生成する。この符号化モード情報は、符号化対象情報として、エントロピー符号化部24へ受け渡される。符号化モード情報には、マクロブロックを分割した分割マクロブロックのサイズと、分割マクロブロックをさらに分割したサブマクロブロックのサイズが含まれる。
図2に示すように、動きベクトル検出部32は、縮小部41、動き探索部42、統計処理部43、動き探索部44を有している。
縮小部41は、マクロブロック(MB)を所定の縮小率で縮小した縮小マクロブロック(SMB)を生成する。縮小率は、たとえば水平方向と垂直方向にそれぞれ2分の1(1/2)である。縮小部41は、たとえば、マクロブロック(MB)の画素を、画素の配列方向(縦方向及び横方向)に沿って1画素おきに間引いて縮小マクロブロックSMBを生成する。縮小部41は、生成した縮小マクロブロックSMBをメモリ50の縮小フレームバッファ51に格納する。
縮小部41は、フレーム画像を処理単位に分割したマクロブロック(MB)を順次縮小処理し、縮小マクロブロックSMBを縮小フレームバッファ51に格納する。したがって、縮小フレームバッファ51には、各フレーム画像の縮小画像が格納される。つまり、原処理画像において、対象マクロブロックCuの縮小マクロブロックと、対象マクロブロックCuよりも過去に処理されたマクロブロック(MB)の縮小マクロブロックとが格納される。また、縮小フレームバッファ51には、原処理画像と異なる時間に撮影され、原処理画像よりも前(過去)に処理された参照フレームの縮小画像が格納される。参照フレームは、原処理画像よりも前(過去)に撮影された前方参照フレームと、原処理画像よりも後(未来)に撮影された後方参照フレームを含む。
メモリ50には記憶領域として、上記の縮小フレームバッファ51と、対象マクロブロックバッファ52と、動きベクトルバッファ53が設定される。また、メモリ50には、図1に示す現フレームバッファ27、過去のフレームバッファ31等の記憶領域が設定される。メモリ50は、たとえばSDRAM(Synchronous Dynamic Random Access Memory)等のメモリモジュールとすることができる。このようなメモリモジュールは、たとえば、符号化回路10の各機能部を含む半導体装置(LSI)に接続される。
動き探索部42は、対象マクロブロックに対応する縮小マクロブロックをメモリ50の縮小フレームバッファ51から読み出す。また、動き探索部42は、参照画像を縮小した縮小参照画像を縮小フレームバッファ51から読み出す。そして、動き探索部42は、縮小マクロブロックを用いて縮小参照画像を探索し、縮小マクロブロックの動きベクトルSMVを検出する。そして、動き探索部42は、動きベクトルSMVを動き探索部44に出力する。
たとえば、動き探索部42は、設定した探索範囲において、縮小マクロブロックSMBと同じ範囲に含まれる画素を候補ブロックとする。動き探索部42は、縮小マクロブロックSMBに含まれる各画素の値と候補ブロックに含まれる各画素の値を比較し、評価値を算出する。評価値は、たとえば差分絶対値和(SAD:Sum of Absolute Difference)である。差分絶対値和は、対応する画素の値の差の絶対値の合計値である。なお、評価値として、SATD(Sum of Absolute Transformed Difference)、差分二乗和(SSD:Sum of Squared Difference)、等を用いてもよい。
そして、動き探索部42は、評価値に基づいて、対象の縮小マクロブロックSMBに対応する候補ブロックを検出する。たとえば、動き動き探索部42は、評価値が最小の候補ブロックを検出する。そして、動き探索部42は、参照画像において、対象マクロブロックと空間的に同一位置にあるマクロブロック(仮想マクロブロック)から、検出した候補ブロックまでの移動量を算出する。動き探索部42は、検出した候補ブロックの位置と、仮想マクロブロックの位置とに基づいて、移動量を算出する。この移動量は、縮小画像における対象マクロブロックの動きベクトルSMVである。動きベクトルSMVは、対象マクロブロックCuに対する候補ブロックの相対的な位置関係(ずれ量およびずれ方向)を示すデータ(情報)である。
統計処理部43は、過去の動き探索処理によって検出した動きベクトル(MV)に基づいて、動き探索部44における探索設定情報を生成する。探索設定情報は、たとえば、過去の動きベクトル(MV)を統計処理した統計動きベクトルである。
たとえば、統計処理部43は、現処理画像において、処理対象のマクロブロック(MB)に隣接するマクロブロックの動きベクトルを動きベクトルバッファ53から読み出す。そして、統計処理部43は、読み出した動きベクトルを統計処理し、探索設定情報を生成する。統計処理は、たとえば平均値を算出する処理である。たとえば、統計処理部43は、現処理画像で既に生成した動きベクトルの平均値を算出し、この平均値を第1の統計動きベクトルMVSとする。
また、統計処理部43は、現処理画像に対して後方の参照画像がある場合、その参照画像の動きベクトルを動きベクトルバッファ53から読み出す。たとえば、統計処理部43は、参照画像において、上記処理対象のマクロブロック(MB)と同じ位置にあるマクロブロック(以下、参照マクロブロック)の動きベクトルと、その参照マクロブロックの周辺領域のマクロブロックの動きベクトルを、動きベクトルバッファ53から読み出す。そして、統計処理部43は、参照画像の動きベクトルを統計処理し、探索設定情報を生成する。統計処理は、たとえば平均値を算出する処理である。たとえば、統計処理部43は、後方参照画像の動きベクトルの平均値を算出し、この平均値を第2の統計動きベクトルMVRとする。
動き探索部44は、参照画像に対する探索範囲の探索条件を設定する。そして、動き探索部44は、設定した探索条件にしたがって探索範囲を探索し、対象マクロブロックCuの動きベクトル(MV)を生成する。
探索条件は、探索開始位置と探索方向(探索順序,探索経路)を含む。
動き探索部44は、統計処理部43により生成した第1の統計動きベクトルMVSと第2の統計動きベクトルMVRに基づいて、探索範囲における探索開始位置と探索方向を設定する。探索開始位置は、探索範囲内において候補ブロックを最初に設定する位置である。探索方向は、候補ブロックの位置を設定する順序を示す情報である。
たとえば、動き探索部44は、原寸サイズの参照画像において、対象マクロブロックと空間的に同一位置のマクロブロック(仮想マクロブロック)を中心とし、その仮想マクロブロックの周辺の8個のマクロブロックを含む探索範囲を設定する。そして、動き探索部44は、第1の統計動きベクトルMVSの方向と第2の統計動きベクトルMVRの方向とに基づいて、探索開始位置と探索方向とを設定する。たとえば、動き探索部44は、第1の統計動きベクトルMVSの縦方向の成分と横方向の成分との比に基づいて、第1の統計動きベクトルMVSの方向を、上下左右の8つの方向のいずれに該当するかを判定する。同様に、動き探索部44は、第2の統計動きベクトルMVRの縦方向の成分と横方向の成分との比に基づいて、第2の統計動きベクトルMVRの方向を、上下左右の8つの方向のいずれに該当するかを判定する。そして、動き探索部44は、判定した第1の統計動きベクトルMVSの方向と第2の統計動きベクトルMVRの方向とに基づいて、探索開始位置と探索方向とを設定する。
動き探索部44は、参照画像に設定した探索範囲において、現処理画像の対象マクロブロックCuの大きさ(画素数)に応じた候補ブロックを順次設定する。そして、動き探索部44は、各候補ブロックの評価値を算出する。評価値は、たとえば差分絶対値和(SAD)である。なお、評価値として、差分二乗和(SSD)、SATD等を用いてもよい。
動き探索部44は、基準しきい値αと、その基準しきい値αに基づいて設定する判定しきい値Gjとをたとえばレジスタ44aに記憶している。動き探索部44は、各候補ブロックについて算出した評価値と、判定しきい値Gjとを比較する。そして、動き探索部44は、判定しきい値Gjより評価値が小さい場合、対象マクロブロックCuに対する動きベクトル探索処理を打ち切る。そして、動き探索部44は、処理を打ち切ったときのサイクル数をたとえばレジスタ44aに記憶する。
サイクル数は、1つのマクロブロックについて動きベクトル(MV)の探索に要する時間である。たとえば、対象マクロブロックCuと1つの候補ブロックとの評価値の算出に要するサイクルを「1」とする。探索範囲の大きさをたとえば48画素×48画素とする。対象マクロブロックCuと候補ブロックの大きさをたとえば16画素×16画素とすると、縦方向と横方向にそれぞれ33個(=48−16+1)の候補ブロックの設定が可能である。したがって、1つの探索範囲における動き探索処理のサイクル数は、1089(=33×33)となる。
現処理画像において、対象マクロブロックCuの動きベクトル(MV)と、対象マクロブロックCuの周辺のマクロブロック(MB)の動きベクトル(MV)は、高い相関を示すことが多い。同様に、後方参照画像がある場合、その後方参照画像において、対象マクロブロックCuと空間的に同じ位置のマクロブロック(参照マクロブロックC1)を含む領域(参照領域)における動きベクトル(MV)は、対象マクロブロックCuの動きベクトル(MV)と高い相関を示すことが多い。つまり、周辺のマクロブロックや後方参照画像のマクロブロックの動きベクトルが示す方向に、対象マクロブロックCuと等しいまたは類似したブロックが存在することが多い。したがって、過去の処理において算出した動きベクトル(MV)に基づいて探索開始位置と探索方向を設定することで、探索開始から類似した候補ブロックを検出するまでに要する時間が短くなる。
そして、動き探索部44は、上記の判定しきい値Gjに基づいて、類似した候補ブロックを検出したときに、その探索範囲に対する動き探索処理を打ち切る。そして、動き探索部44は、類似した候補ブロックの位置に基づいて、対象マクロブロックCuの動きベクトル(MV)を生成する。これにより、対象マクロブロックCuに対する動きベクトル(MV)の生成に要する時間が短くなり、探索処理の効率が向上する。
また、探索条件は、探索範囲の大きさ(サイズ,画素数)と探索範囲を拡張する方向を含む。
上記したように、動き探索部44は、判定しきい値Gjに基づいて、対象マクロブロックCuに対する動き探索処理を打ち切る。この場合、残りの処理期間を、次に処理するマクロブロック(MB)の処理期間として利用することができる。つまり、次に処理するマクロブロック(MB)における処理期間を長くすることができる。そして、1サイクルにおいて、1つの候補ブロックに対する評価値の算出を行う。したがって、処理期間は、評価値を算出する候補ブロックの数に対応する。つまり、上記の残りの処理期間に応じて、探索する領域を拡大することができる。
たとえば、上記した48画素×48画素の探索範囲を基準探索範囲とする。この基準探索範囲の外側において探索する領域を拡張探索範囲とする。動き探索部44は、拡張探索範囲の大きさ(画素数)を、打ち切りのタイミング、つまりレジスタ44aに記憶したサイクル数に基づいて設定する。
動き探索部44は、設定した探索範囲(基準探索範囲、拡張探索範囲)について、範囲に応じた期間を探索期間とする。そして、動き探索部44は、探索期間を、複数の期間に分割し、各期間に対して、判定しきい値Gjを調整する。たとえば、動き探索部44は、分割した各期間について、判定しきい値Gjを、期間の分割数に応じた値から基準しきい値αまで段階的に増加させる。
動き探索部44は、基準探索範囲の探索に要する期間(基準探索期間)を所定数にて等分割したサイクル数を単位とし、探索期間を複数の期間に分割する。複数の期間のうち、最終の期間を除く期間において、設定した判定しきい値Gjに基づいて探索処理の打ち切りを判定する。そして、設定した期間のうち、最終の期間では、最後の候補ブロックまで探索処理を行う。このように、対象マクロブロックCuに対する探索の開始時点では、より小さな判定しきい値Gjにより候補ブロックの評価値を判定することで、精度の高い検出が可能となる。
また、動き探索部44は、拡張探索範囲の設定位置を、上記の統計情報(第1の統計動きベクトルMVS,第2の統計動きベクトルMVR)に基づいて設定する。過去に処理したマクロブロックの動きベクトルに基づいて、拡張探索範囲を設定することで、対象マクロブロックCuの動きベクトルに応じた探索範囲を参照画像に対して設定することがでる。したがって、対象マクロブロックCuの動きベクトルMVを効率よく検出することができる。また、動きベクトルMVを精度よく検出することができる。
また、探索条件は、探索範囲の位置(オフセット)を含む。
動き探索部44は、動き探索の処理単位となるマクロブロック毎に、動き探索部42から入力された動きベクトルSMVに基づいて探索範囲の位置(オフセット)を設定する。ただし、動きベクトルSMVは、縮小画像により探索された動きベクトルであるため、縮小率に応じて拡大した値(大きさ)で用いる。たとえば、上記の縮小部41は、水平方向及び垂直方向の画素数をそれぞれ1/2にした縮小画像を生成し、動き探索部42はその縮小画像を用いて動き探索処理を行う。したがって、動き探索部44は、動きベクトルSMVが示す水平方向及び垂直方向の値を2倍して用いる。
動き探索部44は、参照画像として、過去のフレームバッファ31に格納された復号画像を部分的に用いる。
動き探索部44は、参照画像において、対象マクロブロックと等しい位置の参照マクロブロックの基準点(たとえば、マクロブロックの中心位置)から、動きベクトルSMVに応じてずれた位置を探索中心とする。たとえば、動きベクトルSMVの水平方向及び垂直方向の各値を、Vx,Vyとする。この場合、基準点の座標(Px,Py)に対して、探索中心の座標(Sx,Sy)を、Sx=Px+2Vx,Sy=Py+2Vy,とする。そして、この探索中心として探索範囲の位置を設定する。
このように、縮小画像により検出した動きベクトルSMVに基づいて探索範囲の位置を設定することで、対象マクロブロックCuの動きベクトルに応じた探索範囲を参照画像に対して設定することができる。したがって、対象マクロブロックCuの動きベクトルMVを効率よく検出することができる。また、動きベクトルMVを精度よく検出することができる。
ピクチャの種類と参照関係を説明する。
図3に示すように、4つの画像(ピクチャ)61,62,63,64は、この順番で撮影される。
ピクチャ61はたとえばIピクチャ(Iフレーム:Intra-coded Frame)であり、イントラ予測処理により符号化する。
ピクチャ64はPピクチャ(Pフレーム:Predicted Frame)である。このピクチャ64に含まれるマクロブロック64aは、ピクチャ61に含まれるマクロブロック61aと同一または類似している。ピクチャ64の符号化処理において、ピクチャ61を参照画像(前方参照画像)とした動きベクトル探索処理を行い、マクロブロック64aにおける参照情報を符号化する。
ピクチャ62はBピクチャ(Bフレーム:Bi-directional Predicted Frame)である。このピクチャ62に含まれるマクロブロック62aは、前方ピクチャ61に含まれるマクロブロック61bと同一または類似している。また、このマクロブロック62aは、後方のピクチャ64に含まれるマクロブロック64bと同一または類似している。ピクチャ62の符号化処理において、ピクチャ61とピクチャ64を参照画像(前方参照、後方参照、双方向参照)とした動きベクトル探索処理を行い、マクロブロック62aにおける参照情報を符号化する。
ピクチャ63はBピクチャである。このピクチャ63に含まれるマクロブロック63aは、前方ピクチャ61に含まれるマクロブロック61cと同一または類似している。また、このマクロブロック63aは、後方のピクチャ64に含まれるマクロブロック64cと同一または類似している。ピクチャ63の符号化処理において、ピクチャ61とピクチャ64を参照画像(前方参照、後方参照、双方向参照)とした動きベクトル探索処理を行い、マクロブロック63aにおける参照情報を符号化する。
次に、Pピクチャにおける参照画像とマクロブロック(MB)を説明する。
図4に示すように、3つの画像(ピクチャ)71,72,73は、この順番で撮影される。現処理画像73は、4つのマクロブロック73a,73b,73c,73dを含む。現処理画像73はPピクチャである。マクロブロック73aは、前方(現処理画像73より時間的に過去)の参照画像71のマクロブロック71aと同一または類似している。参照画像71はIピクチャまたはPピクチャであり、現処理画像73よりも前に符号化されている。したがって、現処理画像73において、参照画像71に含まれるマクロブロック71aを示す情報と差分を符号化する。
現処理画像73のマクロブロック73bは、前方の参照画像72のマクロブロック72aと同一または類似している。参照画像72はIピクチャまたはPピクチャであり、現処理画像73よりも前に符号化されている。したがって、現処理画像73において、参照画像72に含まれるマクロブロック72aを示す情報と差分を符号化する。
同様に、現処理画像73のマクロブロック73c,73dは、前方の参照画像72のマクロブロック72b,72cと同一または類似している。現処理画像73において、参照画像72に含まれるマクロブロック72b,72cを示す情報と差分を符号化する。
次に、Bピクチャにおける参照画像とマクロブロック(MB)を説明する。
図5に示すように、5つの画像(ピクチャ)81,82,83,84,85は、この順番で撮影される。現処理画像83は4つのマクロブロック83a,83b,83c,83dを含む。現処理画像83はBピクチャである。マクロブロック83aは、前方(現処理画像83より時間的に過去)の参照画像81のマクロブロック81aと同一または類似している。参照画像81はIピクチャまたはPピクチャであり、現処理画像83よりも前に符号化されている。したがって、現処理画像83において、参照画像81に含まれるマクロブロック81aを示す情報と差分を符号化する。
現処理画像83のマクロブロック83bは、前方の参照画像82のマクロブロック82aと同一または類似している。また、マクロブロック83bは、後方(現処理画像83より時間的に未来)の参照画像84のマクロブロック84aと統一または類似している。参照画像84はIピクチャまたはPピクチャであり、現処理画像83よりも前に符号化されている。したがって、現処理画像83において、参照画像82,84に含まれるマクロブロック82a,84aを示す情報と差分を符号化する。
現処理画像83のマクロブロック83cは、後方の参照画像85のマクロブロック85aと同一または類似している。参照画像85はIピクチャまたはPピクチャであり、現処理画像83よりも前に符号化されている。したがって、現処理画像83において、参照画像85に含まれるマクロブロック85aを示す情報と差分を符号化する。
現処理画像83のマクロブロック83dは、前方の参照画像82のマクロブロック82bと同一または類似している。また、マクロブロック83dは、後方の参照画像84のマクロブロック84bと統一または類似している。したがって、現処理画像83において、参照画像82,84に含まれるマクロブロック82b,84bを示す情報と差分を符号化する。
次に、ピクチャ内における処理順序と、動きベクトル予測値(MVP),予測差分値(MVD)の算出処理を説明する。
図6に示すように、1つのピクチャ(フレーム)91は、マトリックス状に配列された複数個(8×6個)のマクロブロック(MB)を含む。各マクロブロック(MB)は、たとえば水平方向16画素,垂直方向16画素の画素マトリクスである。
符号化処理は、破線の矢印で示したように、ラスタスキャン方向に配置された複数のマクロブロックMB毎に実施される。つまり、最上端のマクロブロックラインの左端のマクロブロックMBから右端のマクロブロックMBの順に実施される。次に、2段目のマクロブロックラインの左端のマクロブロックMBから右端のマクロブロックMBの順に符号化処理が実施される。以降、左端のマクロブロックMBから右端のマクロブロックMBの順に実施される符号化処理が、最下端のマクロブロックラインまで繰り返される。
処理対象のマクロブロックを「Cu」として示す。この対象マクロブロックCuの周辺のマクロブロック「A」「B」「C」の動きベクトル(MVA)(MVB)(MVC)に基づいて、動きベクトル予測値(MVP)を算出する。動きベクトル予測値(MVP)は、周辺のマクロブロック「A」「B」「C」の動きベクトル(MVA)(MVB)(MVC)の中間値である。つまり、動きベクトル予測値(MVP)は、MVP=Median(MVA,MVB,MVC),により算出される。なお、「Median」は、中間値を得る算術子である。そして、予測差分値(MVD)は、対象マクロブロックCuの動きベクトル(MV)と動きベクトル予測値(MVP)に基づいて、MVD=MV−MVP,により算出される。
次に、動きベクトルの探索の概略を説明する。
図7(a)に示すように、現処理画像120に含まれる対象マクロブロックCuの動きベクトルを検出する。この検出において、現処理画像120と時間的に異なる画像であって、現処理画像120よりも前に符号化された参照画像110を用いる。この参照画像110において、対象マクロブロックCuと空間的に同一位置の仮想マクロブロックを含む探索範囲111を設定する。なお、対象マクロブロックCuに対応する仮想マクロブロックを明示するために同じ符号「Cu」を用いて示す場合がある。動き探索処理は、この探索範囲111内にあって、対象マクロブロックCuに対して評価値が最小の候補ブロックを探索する。
図7(b)に示すように、探索範囲111の大きさは、仮想マクロブロックCuと、その仮想マクロブロックCuの周辺の8個のマクロブロックを含むように設定される。対象マクロブロックCuは、たとえば16×16画素の画素マトリックスである。これに基づき、たとえば、マクロブロック(MB)に対して水平方向と垂直方向にそれぞれ±16画素を含むように探索範囲の大きさを設定する。このような設定の場合、探索範囲の大きさは、48×48画素(3×3マクロブロックを含む大きさ)となる。
ここで、探索範囲に対する全探索法を説明する。
先ず、図11(a)に示すように、探索範囲111の左上に候補ブロック112を設定する。そして、この候補ブロック112に含まれる画素の画素値と、対象マクロブロックCuに含まれる画素の画素値とに基づいて、評価値を算出する。評価値は、上記したように、たとえば差分絶対値和(SAD)である。このように算出した評価値を、候補ブロック112の位置情報に関連付けて記憶する。たとえば、この探索処理を図2に示す動き探索部44にて実行する場合、記憶する領域は、たとえば動き探索部44に含まれるバッファである。なお、以下の説明において算出する評価値についても同様に記憶する。
次に、図11(b)に示すように、探索範囲111において、候補ブロック112を、右側に1画素分ずらして設定する。そして、この候補ブロック112の評価値を算出する。このように、右側に向かって1画素ずつずらして設定した候補ブロックの評価値を算出する。そして、図11(c)に示すように、探索範囲111において、右端に設定した候補ブロック112の評価値を算出すると、上記と同様の処理を、1画素分下側にずらして設定した候補ブロックについて行う。
即ち、図11(d)に示すように、探索範囲111の左端において、上端から1画素分下がった位置に候補ブロック112を設定する。そして、この候補ブロック112の評価値を算出する。そして、図11(e)に示すように、探索範囲111において、候補ブロック112を、右側に1画素分ずらして設定する。そして、この候補ブロック112の評価値を算出する。このように、1画素ずつ候補ブロック112の設定位置をずらし、各位置に設定した候補ブロック112の評価値を算出する。そして、図11(f)に示すように、探索範囲111の右下に候補ブロック112を設定し、この候補ブロック112における評価値を算出する。
このように、探索範囲111に設定した全ての候補ブロック112の評価値を算出する。記憶した全ての評価値のうち、もっとも小さな評価値に関連付けた候補ブロック112の位置情報を得る。
たとえば、図12に示すように、上記の動き探索により、評価値が最小の候補ブロック112を検出する。そして、参照画像110において、仮想マクロブロックCuから、検出した候補ブロック112までの移動量を算出する。この移動量は、対象マクロブロックCuの動きベクトルMVである。
次に、縮小画像による動き探索を説明する。
上記の図7(a)に示す現処理画像120と参照画像110とをそれぞれ縮小した縮小画像を生成する。
図8(a)に示すように、縮小処理画像140は、図7(a)に示す現処理画像120を、たとえば1/2に縮小したものである。同様に、縮小参照画像130は、図7(a)に示す参照画像110を、たとえば1/2に縮小したものである。縮小処理画像140に含まれる縮小マクロブロック141は、図7(a)に示す対象マクロブロックCuを1/2に縮小したものである。この縮小マクロブロック141に対して、空間的に同一位置の仮想マクロブロック131を中心とする探索範囲132を縮小参照画像130に設定する。
図8(b)に示すように、探索範囲132の大きさは、仮想マクロブロック131と、その仮想マクロブロック131の大きさに応じて設定される。1つの縮小マクロブロック(SMB)は、たとえば8×8画素の画素マトリックスである。これに基づき、たとえば、縮小マクロブロック(SMB)に対して水平方向と垂直方向にそれぞれ±8画素を含むように探索範囲の大きさを設定する。このような設定の場合、探索範囲の大きさは、24×24画素となる。この探索範囲132において、対象マクロブロックSMBを用いて探索する。
図9(a)に示すように、探索範囲132において、縮小マクロブロックSMBに対する評価値が最も小さな候補ブロック133を検出する。そして、図9(b)に示すように、仮想マクロブロック131に対する候補ブロック133の移動量(動きベクトルSMV)を算出する。このように検出した動きベクトルに基づいて、原画サイズの画像について、動きベクトルMVを検出する。
すなわち、図10(a)に示すように、参照画像110において、上記のように検出した動きベクトルSMVに基づいて、探索範囲を設定する。ただし、動きベクトルSMVは、現処理画像120と参照画像110をそれぞれ1/2に縮小した縮小処理画像140と縮小参照画像130(図8(a)参照)により探索された動きベクトルである。このため、動きベクトルSMVの水平方向の成分と垂直方向の成分をそれぞれ2倍した成分の仮想動きベクトルPMVを算出する。この仮想動きベクトルPMVは、対象マクロブロックCuに対して、評価値が最も小さい候補ブロックが存在しうる確立の高い場所を示す。
このため、図10(b)に示すように、仮想動きベクトルPMVに応じて参照画像110における探索範囲を設定する。たとえば、仮想マクロブロックCuを中心とする探索範囲111を、仮想動きベクトルPMVに応じてオフセットした探索範囲111aを設定する。このように設定した探索範囲111aは、中心部分において、対象マクロブロックCuに対応して、最も小さな評価値の候補ブロック112が存在する確立が高い。つまり、対象マクロブロックCuの画素との差が小さい画素が含まれる。一方、探索範囲111aの外側であって、探索範囲111との間の領域には、対象マクロブロックCuの画素との差が大きい画素が含まれる。したがって、このようにオフセットした探索範囲111aを設定することで、効率のよい探索を行うことができる。
図13は、動きベクトル検出部32において、1つのマクロブロック(MB)に対する処理を機能的に示すフローチャートである。動きベクトル検出処理を、このフローチャートにしたがって実施することもできる。
先ず、ステップ201において、現処理画像と参照画像を取得する。そして、ステップ202において、現処理画像と参照画像について、複数パターンの縮小画像を生成する。次に、ステップ203において、縮小画像(縮小処理画像、縮小参照画像)を用い、全探索法にしたがって探索を行い、対象マクロブロックの動きベクトルSMVを検出する。
次に、ステップ204において、全画素探索完了したか否かを判定する。探索範囲に含まれる全画素について探索を完了していない場合(判定:NO)、ステップ205へ移行する。次いで、ステップ205において、打ち切り処理か否かを判定する。打ち切り処理ではない場合(判定:NO)、ステップ206へ移行する。
そして、ステップ206において、縮小画像により検出した動きベクトルSMVに基づいて参照画像における探索範囲を設定する。さらに、原処理画像における動きベクトルと後方参照画像における動きベクトルの統計結果(統計動きベクトル)に基づいて探索開始位置Gsと探索方向Sdを設定する。そして、参照画像の探索範囲内を全探索法にしたがって探索を実施する。
次に、ステップ207において、前のマクロブロック(MB)に対する探索処理において、探索打ち切りがあったか否かを判定する。探索打ち切りがあった場合(判定:YES)、ステップ208へ移行する。一方、探索打ち切りがなかった場合(判定:NO)、ステップ204へ移行する。
ステップ208において、前のマクロブロック(MB)に対する探索処理においける打ち切りの状態に応じて探索範囲を拡大する。このとき、レジスタ44aに保持したサイクル数に基づいて拡大する領域の大きさを設定する。また、統計動きベクトルMVS,MVRに応じて、領域を拡大する方向を設定する。そして、ステップ204へ移行する。
ステップ204における判定において、全画素について探索を完了した場合(判定:YES)、ステップ209へ移行する。また、ステップ205における判定において、打ち切り処理の場合(判定YES)、ステップ209へ移行する。そして、ステップ209において、残りサイクル数をレジスタ44aに保持する。そして、対象マクロブロックCuに対する処理を終了する。
次に、比較例の処理を説明する。
図14に示すように、ステップ401において、現処理画像と参照画像を取得する。ステップ402において、現処理画像と参照画像について、それぞれ1つの縮小画像(縮小処理画像、縮小参照画像)を生成する。ステップ403において、縮小画像(縮小処理画像、縮小参照画像)を用い、全探索法にしたがって探索を行い、対象マクロブロックの動きベクトルSMVを検出する。ステップ404において、全画素探索完了したか否かを判定する。探索範囲に含まれる全画素について探索を完了した場合(判定:YES)、処理を終了する。全画素について探索を完了していない場合(判定:NO)、ステップ405に移行する。ステップ405において、検出した動きベクトルSMVに基づいて参照画像における探索範囲を設定し、その探索範囲内を全探索法にしたがって探索を実施する。
次に、統計処理に用いる動きベクトルについて説明する。
図15に示すように、4つの画像(ピクチャ)151,152,153,154は、この順番で撮影される。たとえば、ピクチャ151はIピクチャまたはPピクチャであり、ピクチャ154はPピクチャであり、ピクチャ152,153はBピクチャである。
たとえば、ピクチャ152を現処理画像とする。そして、この現処理画像152に含まれる対象マクロブロックCuの動きベクトルを検出する。このとき、現処理画像152において、左上のマクロブロック(MB)から、ラスタ方向(破線矢印にて示す)に沿って符号化処理され、これらのマクロブロック(MB)について動きベクトルが生成されている。これらのマクロブロックのうち、対象マクロブロックCuを中心とする参照領域152aに含まれ、既に符号化処理されたマクロブロック(対象マクロブロックCuより濃いハッチングにて示されたマクロブロック)において、現処理画像152から前方の参照画像151を参照した動きベクトルを用いる。参照領域152aは、たとえば、図7(b)に示す探索範囲111と同じ大きさに設定される。これらのマクロブロックの動きベクトルを統計処理(平均化)して統計動きベクトルMVCを生成する。
また、現処理画像152について後方のピクチャ(後方参照画像)154はPピクチャであり、この後方参照画像154は、前方のピクチャ(前方参照画像)151を参照する。そして、この後方参照画像154に含まれる全てのマクロブロックは、現処理画像152よりも前に符号化され、それぞれの動きベクトルが生成されている。この後方参照画像154において、現処理画像152の対象マクロブロックCuと空間的に同一位置の参照マクロブロック(「C1」と表記)を中心とする参照領域154aに含まれるマクロブロックにおいて、後方参照画像154から前方参照画像151を参照した動きベクトルを用いる。そして、後方参照画像154の動きベクトルを統計処理(平均化)して統計動きベクトルMVRを生成する。
[探索開始位置と探索方向]
次に、探索開始位置と探索方向の各ケースを説明する。
図16(a)に示すように、4つの画像(ピクチャ)151〜154において、現処理画像であるピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、参照するピクチャ151において、探索範囲151aに対して右上方向を示す。また、ピクチャ152の後方参照画像であるピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、参照するピクチャ151において、探索範囲151aに対して右上方向を示す。つまり、図16(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、右上方向を示す。また、図16(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、右上方向を示す。このような場合を[ケース1]とする。
図16(d)に示すように、[ケース1]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、右上方向に探索開始位置Gsを設定する。そして、図16(e)に示すように、探索開始位置Gsから左下方向に向かって斜めに探索するように、探索方向Sdを設定する。なお、図において、四角で囲んだ数字は、探索順序を示す。このように、探索方向Sdに対して、左右交互に探索する。
図17(a)に示すように、ピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、ピクチャ151において、探索範囲151aに対して上方向を示す。また、ピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、ピクチャ151において、探索範囲151aに対して上方向を示す。つまり、図17(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、上方向を示す。また、図17(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、上方向を示す。このような場合を[ケース2]とする。
図17(d)に示すように、[ケース2]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、上方向に探索開始位置Gsを設定する。そして、図17(e)に示すように、探索開始位置Gsから下方向に向かって探索するように、探索方向Sdを設定する。なお、図において、四角で囲んだ数字は、探索順序を示す。このように、探索方向Sdに対して、左右交互に探索する。
図18(a)に示すように、ピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、ピクチャ151において、探索範囲151aに対して左上方向を示す。また、ピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、ピクチャ151において、探索範囲151aに対して左上方向を示す。つまり、図18(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、左上方向を示す。また、図18(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、左上方向を示す。このような場合を[ケース3]とする。
図18(d)に示すように、[ケース3]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、左上方向に探索開始位置Gsを設定する。そして、図18(e)に示すように、探索開始位置Gsから右下方向に向かって斜めに探索するように、探索方向Sdを設定する。なお、図において、四角で囲んだ数字は、探索順序を示す。このように、探索方向Sdに対して、左右交互に探索する。
図19(a)に示すように、ピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、ピクチャ151において、探索範囲151aに対して左方向を示す。また、ピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、ピクチャ151において、探索範囲151aに対して左方向を示す。つまり、図19(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、左方向を示す。また、図19(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、左方向を示す。このような場合を[ケース4]とする。
図19(d)に示すように、[ケース4]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、左方向に探索開始位置Gsを設定する。そして、図19(e)に示すように、探索開始位置Gsから右方向に向かって探索するように、探索方向Sdを設定する。なお、図において、四角で囲んだ数字は、探索順序を示す。このように、探索方向Sdに対して、左右交互に探索する。
上記の[ケース1]〜[ケース4]に対して、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRの方向がそれぞれ逆方向の場合がある。それらを[ケース5]〜[ケース8]とする。なお、探索開始位置と探索方向は、第1の統計動きベクトルMVS,MVRの方向に応じて、上記の[ケース1]〜[ケース4]に対して逆方向に設定される。このため、図面を省略する。
たとえば、第1及び第2の統計動きベクトルMVS,MVRが共に左下方向の[ケース5]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、左下方向に探索開始位置Gsを設定する。そして、探索開始位置Gsから右上方向に向かって斜めに探索するように、探索方向Sdを設定する。そして、探索方向Sdに対して、左右交互に探索する。
また、第1及び第2の統計動きベクトルMVS,MVRが共に下方向の[ケース6]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、下方向に探索開始位置Gsを設定する。そして、探索開始位置Gsから上方向に向かって探索するように、探索方向Sdを設定する。そして、探索方向Sdに対して、左右交互に探索する。
また、第1及び第2の統計動きベクトルMVS,MVRが共に右下方向の[ケース7]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、右下方向に探索開始位置Gsを設定する。そして、探索開始位置Gsから左上方向に向かって斜めに探索するように、探索方向Sdを設定する。そして、探索方向Sdに対して、左右交互に探索する。
そして、第1及び第2の統計動きベクトルMVS,MVRが共に右方向の[ケース8]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、右方向に探索開始位置Gsを設定する。そして、探索開始位置Gsから左方向に向かって探索するように、探索方向Sdを設定する。そして、探索方向Sdに対して、左右交互に探索する。
つまり、第1及び第2の統計動きベクトルMVS,MVRが同じ方向の場合、探索範囲において、仮想マクロブロックC0に対して、統計動きベクトルMVS,MVRの方向に探索開始位置を設定する。そして、統計動きベクトルMVS,MVRと逆方向の探索方向を設定する。
図20(a)に示すように、ピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、ピクチャ151において、探索範囲151aに対して左下方向を示す。また、ピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、ピクチャ151において、探索範囲151aに対して右上方向を示す。つまり、図20(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、左下方向を示す。また、図20(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、右上方向を示す。このような場合を[ケース9]とする。なお、統計動きベクトルMVS,MVRの方向が逆、つまり第1の統計動きベクトルMVSが右上方向、第2の統計動きベクトルMVRが左下方向の場合もこの[ケース9]とする。
図20(d)に示すように、[ケース9]では、探索範囲151aにおいて、仮想マクロブロックC0の左上の画素に探索開始位置Gsを設定する。そして、図20(e)に示すように、探索開始位置Gsから右上方向に向かって探索を開始し、渦巻き状に順次外側に向かって広がるように、探索方向Sdを設定する。なお、探索方向Sdにおいて、破線にて示す部分は、拡張探索範囲における探索順序を示す。
図21(a)に示すように、ピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、ピクチャ151において、探索範囲151aに対して上方向を示す。また、ピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、ピクチャ151において、探索範囲151aに対して下方向を示す。つまり、図21(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、上方向を示す。また、図21(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、下方向を示す。このような場合を[ケース10]とする。なお、統計動きベクトルMVS,MVRの方向が逆、つまり第1の統計動きベクトルMVSが下方向、第2の統計動きベクトルMVRが上方向の場合もこの[ケース10]とする。
図21(d)に示すように、[ケース10]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、上方向に探索開始位置Gsを設定する。そして、図21(e)に示すように、探索開始位置Gsから下方向に向かって探索を開始し、縦方向に長い矩形を渦巻き状に順次外側に向かって広がるように、探索方向Sdを設定する。なお、探索方向Sdにおいて、破線にて示す部分は、拡張探索範囲における探索順序を示す。なお、仮想マクロブロックC0に対して、下方向に探索開始位置Gsを設定し、上方向に探索を開始するようにしてもよい。
図22(a)に示すように、ピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、ピクチャ151において、探索範囲151aに対して右下方向を示す。また、ピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、ピクチャ151において、探索範囲151aに対して左上方向を示す。つまり、図22(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、右下方向を示す。また、図22(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、左上方向を示す。このような場合を[ケース11]とする。なお、統計動きベクトルMVS,MVRの方向が逆、つまり第1の統計動きベクトルMVSが左上方向、第2の統計動きベクトルMVRが右下方向の場合もこの[ケース11]とする。
図22(d)に示すように、[ケース11]では、探索範囲151aにおいて、仮想マクロブロックC0の左上の画素に探索開始位置Gsを設定する。そして、図22(e)に示すように、探索開始位置Gsから左上方向に向かって探索を開始し、渦巻き状に順次外側に向かって広がるように、探索方向Sdを設定する。なお、探索方向Sdにおいて、破線にて示す部分は、拡張探索範囲における探索順序を示す。
図23(a)に示すように、ピクチャ152の参照領域152aにおける第1の統計動きベクトルMVSは、ピクチャ151において、探索範囲151aに対して左方向を示す。また、ピクチャ154の参照領域154aにおける第2の統計動きベクトルMVRは、ピクチャ151において、探索範囲151aに対して右方向を示す。つまり、図23(b)に示すように、参照領域152aにおける第1の統計動きベクトルMVSは、左方向を示す。また、図23(c)に示すように、参照領域154aにおける第2の統計動きベクトルMVRは、右方向を示す。このような場合を[ケース12]とする。なお、統計動きベクトルMVS,MVRの方向が逆、つまり第1の統計動きベクトルMVSが右方向、第2の統計動きベクトルMVRが左方向の場合もこの[ケース12]とする。
図23(d)に示すように、[ケース12]では、探索範囲151aにおいて、仮想マクロブロックC0に対して、左方向に探索開始位置Gsを設定する。そして、図23(e)に示すように、探索開始位置Gsから右方向に向かって探索を開始し、横方向に長い矩形を渦巻き状に順次外側に向かって広がるように、探索方向Sdを設定する。なお、探索方向Sdにおいて、破線にて示す部分は、拡張探索範囲における探索順序を示す。なお、仮想マクロブロックC0に対して、右方向に探索開始位置Gsを設定し、左方向に探索を開始するようにしてもよい。
第1の統計動きベクトルMVSの方向と第2の統計動きベクトルMVRの方向が上記の何れにも当てはまらない場合を[ケース13]とする。この[ケース13]では、図24(a)に示すように、探索範囲151aにおいて、仮想マクロブロックC0に対して、左方向に探索開始位置Gsを設定する。そして、図24(b)に示すように、探索開始位置Gsから右方向に向かって探索を開始し、探索するラインを順次下にずらすように、探索方向Sdを設定する。
次に、探索開始位置と探索方向の各ケースの選択処理の流れの一例を説明する。
図25,図26は、選択のフローチャートである。図25,図26において、現処理画像152(図15参照)における第1の統計動きベクトルMVSを「前方」、後方参照画像154(図15参照)における第2の統計動きベクトルMVRを「後方」と表記する。
前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRの方向に応じて、[ケースn]の探索開始位置及び探索方向を設定する。
各[ケースn]の探索開始位置と探索方向は、たとえば、対象マクロブロックCuの座標値(たとえば、左上の画素の座標値)を基準とする相対的な位置及び方向である。また、各[ケースn]の探索開始位置と探索方向は、たとえば、テーブルのデータとして、レジスタ等に格納されている。
先ず、図25に示すように、ステップ221において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右上方向の場合(判定:YES)、ステップ222において[ケース1]の探索開始位置及び探索方向を設定する。たとえば、レジスタから[ケース1]の情報として記憶された値を読み出し、それらの値を探索開始位置及び探索方向とする。ステップ223において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に上方向の場合(判定:YES)、ステップ224において[ケース2]の探索開始位置及び探索方向を設定する。ステップ225において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左上方向の場合(判定:YES)、ステップ226において[ケース3]の探索開始位置及び探索方向を設定する。
次に、ステップ227において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左方向の場合(判定:YES)、ステップ228において[ケース4]の探索開始位置及び探索方向を設定する。ステップ229において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左下方向の場合(判定:YES)、ステップ230において[ケース5]の探索開始位置及び探索方向を設定する。ステップ231において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に下方向の場合(判定:YES)、ステップ232において[ケース6]の探索開始位置及び探索方向を設定する。ステップ233において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右下方向の場合(判定:YES)、ステップ234において[ケース7]の探索開始位置及び探索方向を設定する。ステップ235において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右方向の場合(判定:YES)、ステップ236において[ケース8]の探索開始位置及び探索方向を設定する。
次に、図26に示すように、ステップ237において、前方つまり第1の統計動きベクトルMVSが右上方向であって後方つまり第2の統計動きベクトルMVRが左下方向の場合(判定:YES)、ステップ238において[ケース9]の探索開始位置及び探索方向を設定する。また、ステップ237において、上記と逆、つまり第1の統計動きベクトルMVSが右上方向であって第2の統計動きベクトルMVRが左下方向、またはその逆の場合、ステップ238において[ケース9]の探索開始位置及び探索方向を設定する。
ステップ239において、前方つまり第1の統計動きベクトルMVSが上方向であって後方つまり第2の統計動きベクトルMVRが下方向、またはその逆の場合(判定:YES)、ステップ240において[ケース10]の探索開始位置及び探索方向を設定する。ステップ241において、前方つまり第1の統計動きベクトルMVSが左上方向であって後方つまり第2の統計動きベクトルMVRが右下方向、またはその逆の場合(判定:YES)、ステップ242において[ケース11]の探索開始位置及び探索方向を設定する。ステップ243において、前方つまり第1の統計動きベクトルMVSが左方向であって後方つまり第2の統計動きベクトルMVRが右方向、またはその逆の場合(判定:YES)、ステップ244において[ケース12]の探索開始位置及び探索方向を設定する。そして、上記の方向以外の場合(ステップ243において判定:NO)、ステップ245において[ケース13]の探索開始位置及び探索方向を設定する。
次に、設定された探索開始位置と探索方向による全探索を説明する。なお、ここでは、探索開始位置を、図16(e)に示す[ケース1]の探索方向Sdについて説明する。
先ず、図27(a)に示すように、参照画像151の探索範囲151aの右上端に候補ブロック151bを設定する。そして、この候補ブロック151bに含まれる画素の画素値と、対象マクロブロックCuに含まれる画素の画素値とに基づいて、評価値を算出する。評価値は、上記したように、たとえば差分絶対値和(SAD)である。このように算出した評価値を、候補ブロック151bの位置情報に関連付けて記憶する。
次に、図27(b)に示すように、探索範囲151aにおいて、候補ブロック151bを、左下方向に1画素分ずらして設定する。そして、この候補ブロック151bの評価値を算出する。このように、左下に向かって1画素ずつずらして設定した候補ブロックの評価値を算出する。そして、図27(c)に示すように、探索範囲151aにおいて、左下端に設定した候補ブロック151bの評価値を算出する。
次に、図16(e)に示す2番目の探索方向Sdにしたがって探索処理を行う。
即ち、図28(a)に示すように、探索範囲151a右上端から1画素分左にずれた位置に候補ブロック151bを設定する。そして、この候補ブロック151bの評価値を算出する。そして、図28(b)に示すように、探索範囲151aにおいて、候補ブロック151bを、左下方向に1画素分ずらして設定する。そして、この候補ブロック151bの評価値を算出する。このように、左下方向に1画素ずつ候補ブロック151bの設定位置をずらし、各位置に設定した候補ブロック151bの評価値を算出する。そして、図28(c)に示すように、探索範囲151aの左端に候補ブロック151bを設定し、この候補ブロック151bにおける評価値を算出する。
次に、図16(e)に示す3番目の探索方向Sdにしたがって探索処理を行う。
即ち、図29(a)に示すように、探索範囲151a右上端から1画素分下にずれた位置に候補ブロック151bを設定する。そして、この候補ブロック151bの評価値を算出する。そして、図29(b)に示すように、探索範囲151aにおいて、候補ブロック151bを、左下方向に1画素分ずらして設定する。そして、この候補ブロック151bの評価値を算出する。このように、左下方向に1画素ずつ候補ブロック151bの設定位置をずらし、各位置に設定した候補ブロック151bの評価値を算出する。そして、図29(c)に示すように、探索範囲151aの下端に候補ブロック151bを設定し、この候補ブロック151bにおける評価値を算出する。
[探索処理における判定しきい値調整処理]
次に、動き探索処理の打ち切りに対する探索期間の拡張の各ケースについて説明する。
たとえば、図30に示すように、N番目のマクロブロックMB(N)に対する動き探索処理を行い、次いで(N+1)番目のマクロブロックMB(N+1)に対する動き探索処理を行う。図30において、1つのマクロブロックMBに対する動き探索処理にかかる期間を「T」とする。
基準探索範囲の探索に要する期間を所定数(たとえば、「3」)にて等分割する。そして、上記の期間Tを分割した各期間を、処理の開始から順に、第1の期間、第2の期間、第3の期間とする。そして、第1の期間,第2の期間,第3の期間を、分割数と処理の開始からの期間の順番にしたがってそれぞれ、「1/3期間」,「2/3期間」,「3/3期間」とする。マクロブロックMB(N)に対する動き探索処理における打ち切りの有無と、打ち切りのタイミングに応じて、マクロブロックMB(N+1)に対する動き探索処理について、判定しきい値Gjの調整と、探索期間の拡張を行う。
図30に示すように、前のマクロブロックMB(N)において、打ち切りがなかった場合、マクロブロックMB(N+1)に対する動き探索処理において、処理のタイミング(サイクル数)に応じたケースの判定しきい値Gjを設定する。マクロブロックMB(N+1)の処理にしたがって、「1/3期間」では[ケース1]の判定しきい値Gjを、「2/3期間」では[ケース2]の判定しきい値Gjを、「3/3期間」では[ケース3]の判定しきい値Gjを設定する。
たとえば、基準しきい値αに基づいて、その基準しきい値αから[ケース1]の演算式に基づいて判定しきい値Gjを算出する。算出のために用いる演算式は、たとえば、Gj=(4/6)×α,である。また、[ケース2]の演算式は、たとえば、Gj=(5/6)×α,である。また、[ケース3]の演算式は、たとえば、Gj=(6/6)×α,である。
図30に示すように、前のマクロブロックMB(N)において、「1/3期間」の期間内において打ち切りを行った場合、「2/3期間」と「3/3期間」に応じた大きさの拡張探索範囲を設定し、拡張探索範囲を探索する探索期間ETとする。さらに、基準探索範囲の探索に要する期間を分割した期間(サイクル数)を単位として、探索期間ETを分割して第1拡張期間と第2拡張期間を設定する。第1拡張期間を「E1」、第2拡張期間を「E2」とする。
そして、マクロブロックMB(N+1)に対する動き探索処理において、処理のタイミング(サイクル数)に応じたケースの判定しきい値Gjを設定する。マクロブロックMB(N+1)の処理にしたがって、「1/3期間」では[ケース4]の判定しきい値Gjを、「2/3期間」では[ケース5]の判定しきい値Gjを、「3/3期間」では[ケース6]の判定しきい値Gjを設定する。さらに、拡張探索期間ETにおいて、「E1」では[ケース7]の判定しきい値Gjを、「E2」では[ケース8]の判定しきい値Gjを設定する。
たとえば、基準しきい値αに基づいて、その基準しきい値αから[ケース4]の演算式に基づいて判定しきい値Gjを算出する。算出のために用いる演算式は、たとえば、Gj=(2/6)×α,である。また、[ケース5]の演算式はたとえば、Gj=(3/6)×α,である。また、[ケース6]の演算式はたとえば、Gj=(4/6)×α,である。また、[ケース7]の演算式はたとえば、Gj=(5/6)×α,である。また、[ケース8]の演算式はたとえば、Gj=(6/6)×α,である。
図31に示すように、前のマクロブロックMB(N)において、「2/3期間」の期間内において打ち切りを行った場合、「3/3期間」に応じた大きさの拡張探索範囲を設定し、拡張探索範囲を探索する探索期間ETとする。
そして、マクロブロックMB(N+1)に対する動き探索処理において、処理のタイミング(サイクル数)に応じたケースの判定しきい値Gjを設定する。マクロブロックMB(N+1)の処理にしたがって、「1/3期間」では[ケース9]の判定しきい値Gjを、「2/3期間」では[ケース10]の判定しきい値Gjを、「3/3期間」では[ケース11]の判定しきい値Gjを、「ET」では[ケース12]の判定しきい値Gjを設定する。
たとえば、基準しきい値αに基づいて、その基準しきい値αから[ケース9]の演算式に基づいて判定しきい値Gjを算出する。算出のために用いる演算式は、たとえば、Gj=(3/6)×α,である。また、[ケース10]の演算式はたとえば、Gj=(4/6)×α,である。また、[ケース11]の演算式はたとえば、Gj=(5/6)×α,である。また、[ケース12]の演算式はたとえば、Gj=(6/6)×α,である。
なお、図31では、マクロブロックMB(N)の「1/3期間」の後に、マクロブロックMB(N+1)に対する処理を行うように示している。これは、マクロブロックMB(N)において処理が実施されなかった期間(「2/3期間」,「3/3期間」)と、マクロブロックMB(N+1)における拡張探索期間ETとの対応関係を示すためである。マクロブロックMB(N)における打ち切りは、「1/3期間」内で行われ、その打ち切りの後にマクロブロックMB(N+1)に対する処理を行う。このため、図31に示すタイミングよりも前(図において左方向)においてマクロブロックMB(N+1)に対する処理が開始されることがある。なお、図32についても同様である。
各期間の判定は、たとえばサイクル数により行われる。たとえば、1つの候補ブロックの処理に必要な期間(サイクル)を「1」とする。基準探索範囲の大きさを48画素×48画素とすると、基準探索範囲の探索に要するサイクル数は「1089」となる。すると、「1/3期間」のサイクル数は「1」〜「363」となる。同様に、「2/3期間」のサイクル数は「364」〜「726」となり、「3/3期間」のサイクル数は「727」〜「1089」となる。さらに、拡張探索期間ETにおいて、「E1」は「1090」〜「1452」、「E2」は「1453」〜「1815」となる。処理中のサイクルをtとすると、サイクルtが上記の範囲の何れに該当するかを判定することにより、各期間を判定することができる。
次に、打ち切り処理の各ケースの選択を説明する。
図33に示すように、ステップ251において、処理開始からの経過時間が全探索サイクル数の1/3以内つまり「1/3期間」に、前のマクロブロック(MB)に対する探索処理の打ち切りが行われたか否かを判定する。打ち切りが1/3以内ではない場合(判定:NO)、ステップ252に移行する。
ステップ252において、前のマクロブロック(MB)に対する探索処理の打ち切りが、全探索サイクル数の2/3以内つまり「2/3期間」に行われたか否かを判定する。打ち切りが「2/3期間」内ではない場合(判定:NO)、ステップ253に移行する。つまり、前のマクロブロック(MB)に対する探索処理において打ち切りがなかった場合にステップ253に移行する。
そのステップ253において、「1/3期間」か否かを判定する。「1/3期間」の場合(判定:YES)、ステップ254において、[ケース1]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ253において「1/3期間」ではない場合(判定:NO)、ステップ255に移行する。ステップ255において、「2/3期間」か否かを判定する。「2/3期間」の場合(判定:YES)、ステップ256において、[ケース2]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ255において「2/3期間」ではない場合(判定NO)、ステップ257において、[ケース3]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ252において、前のマクロブロック(MB)に対する打ち切りが2/3以内つまり「2/3期間」に行われた場合(判定:YES)、ステップ258に移行する。
そのステップ258において、「1/3期間」か否かを判定する。「1/3期間」の場合(判定:YES)、ステップ259において、[ケース9]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ258において「1/3期間」ではない場合(判定:NO)、ステップ260に移行する。ステップ260において、「2/3期間」か否かを判定する。「2/3期間」の場合(判定:YES)、ステップ261において、[ケース10]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ260において「2/3期間」ではない場合(判定:NO)、ステップ262に移行する。ステップ262において、「3/3期間」か否かを判定する。「3/3期間」の場合(判定:YES)、ステップ263において、[ケース11]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ263において「3/3期間」ではない場合(判定NO)、ステップ264において、[ケース12]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ251において、前のマクロブロック(MB)に対する打ち切り処理が1/3以内つまり「1/3期間」に行われた場合(判定:YES)、図34に示すステップ265に移行する。
図34に示すステップ265において、「1/3期間」か否かを判定する。「1/3期間」の場合(判定:YES)、ステップ266において、[ケース4]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ265において「1/3期間」ではない場合(判定:NO)、ステップ267に移行する。ステップ267において、「2/3期間」か否かを判定する。「2/3期間」の場合(判定:YES)、ステップ268において、[ケース5]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ267において「2/3期間」ではない場合(判定:NO)、ステップ269に移行する。ステップ269において、「3/3期間」か否かを判定する。「3/3期間」の場合(判定:YES)、ステップ270において、[ケース6]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ269において「3/3期間」ではない場合(判定:NO)、ステップ271に移行する。ステップ271において、「E1」か否かを判定する。「E1」の場合(判定:YES)、ステップ272において、[ケース7]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
上記のステップ271において「E1」ではない場合(判定NO)、ステップ273において、[ケース8]の判定しきい値Gjを設定する。全探索法によって候補ブロックの評価値を算出し、その評価値と判定しきい値Gjを比較する。評価値が判定しきい値Gj以内の場合に、その評価値の候補ブロックを採用し、対象マクロブロックCuの動きベクトルを算出する。
[探索範囲の拡張]
次に、探索範囲の拡張と探索方向について説明する。
図35(a)は、図16(a)〜図16(e)に示す[ケース1]の第1の統計動きベクトルMVSと第2の統計動きベクトルMVRに対応する拡張探索範囲を示す。
図35(a)に示すように、参照画像160には、基準探索範囲161が設定される。この基準探索範囲161に対して、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRに基づいて、基準探索範囲161の右上に拡張探索範囲162が設定される。拡張探索範囲162は、たとえば、基準探索範囲161を、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRの方向に従って右上方向に延ばすように設定される。
図35(b)に示すように、拡張探索範囲162における探索方向ESdは、基準探索範囲161における探索方向Sdと同じ方向であり、同様の順序にしたがって探索するように設定される。たとえば、基準探索範囲161において、四角にて示す数字「1」〜「65」にしたがって基準探索範囲161を探索した後、拡張探索範囲162を探索する。
次に、探索範囲の拡張の各ケースを説明する。
図36(a)〜図36(d),図37(a)〜図37(e)は、「1/3期間」において動き探索処理を打ち切った場合の拡張探索範囲の大きさを示す。
図36(a)に示すように、[ケース1]の拡張探索範囲162は、上記したように、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右上方向の場合である。ハッチングを付した領域は、探索開始位置を示す。図36(b)に示すように、[ケース2]の拡張探索範囲162は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に上方向の場合である。拡張探索範囲162は、基準探索範囲161の上に設定される。図36(c)に示すように、[ケース3]の拡張探索範囲162は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左上方向の場合である。拡張探索範囲162は、基準探索範囲161の左上に設定される。図36(d)に示すように、[ケース4]の拡張探索範囲162は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左方向の場合である。拡張探索範囲162は、基準探索範囲161の左に設定される。
探索開始位置と探索方向の設定と同様に、上記の[ケース1]〜[ケース4]に対して、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRの方向がそれぞれ逆方向の場合を[ケース5]〜[ケース8]とする。なお、拡張探索範囲は、第1の統計動きベクトルMVS,MVRの方向に応じて、上記の[ケース1]〜[ケース4]に対して逆方向に設定される。このため、図面を省略する。
たとえば、第1及び第2の統計動きベクトルMVS,MVRが共に左下方向の[ケース5]では、基準探索範囲161の左下に拡張探索範囲162が設定される。また、第1及び第2の統計動きベクトルMVS,MVRが共に下方向の[ケース6]では、基準探索範囲161の下に拡張探索範囲162が設定される。また、第1及び第2の統計動きベクトルMVS,MVRが共に右下方向の[ケース7]では、基準探索範囲161の右下に拡張探索範囲162が設定される。そして、第1及び第2の統計動きベクトルMVS,MVRが共に右方向の[ケース8]では、基準探索範囲161の右に拡張探索範囲162が設定される。
図37(a)〜図37(d)は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが互いに逆方向の場合における拡張探索範囲の設定を示す。
図37(a)に示すように、[ケース9]の拡張探索範囲162a,162bは、第1の統計動きベクトルMVSが右上方向、第2の統計動きベクトルMVRが左下方向の場合である。基準探索範囲161の右上に拡張探索範囲162aが設定され、基準探索範囲161の左下に拡張探索範囲162bが設定される。なお、上記に対して逆方向、つまり第1の統計動きベクトルMVSが左下方向、第2の統計動きベクトルMVRが右上方向の場合、同様に拡張探索範囲162a,162bが設定される。図37(b)に示すように、[ケース10]の拡張探索範囲162a,162bは、第1の統計動きベクトルMVSが上方向、第2の統計動きベクトルMVRが下方向の場合、またはその逆の場合である。基準探索範囲161の上に拡張探索範囲162aが設定され、基準探索範囲161の下に拡張探索範囲162bが設定される。
図37(c)に示すように、[ケース11]の拡張探索範囲162a,162bは、第1の統計動きベクトルMVSが左上方向、第2の統計動きベクトルMVRが右下方向の場合、またはその逆の場合である。基準探索範囲161の左上に拡張探索範囲162aが設定され、基準探索範囲161の右下に拡張探索範囲162bが設定される。図37(d)に示すように、[ケース12]の拡張探索範囲162a,162bは、第1の統計動きベクトルMVSが左方向、第2の統計動きベクトルMVRが右方向の場合、またはその逆の場合である。基準探索範囲161の左に拡張探索範囲162aが設定され、基準探索範囲161の右に拡張探索範囲162bが設定される。
第1の統計動きベクトルMVSの方向と第2の統計動きベクトルMVRの方向が上記の何れにも当てはまらない場合を[ケース13]とする。この[ケース13]では、図37(e)に示すように、基準探索範囲161の各辺、つまり基準探索範囲161を囲むように拡張探索範囲162が設定される。
図38(a)〜図38(d),図39(a)〜図39(e)は、「2/3期間」において動き探索処理を打ち切った場合の拡張探索範囲の大きさを示す。
図38(a)に示すように、[ケース21]の拡張探索範囲163は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右上方向の場合である。拡張探索範囲163は、基準探索範囲161の右上に設定される。図38(b)に示すように、[ケース22]の拡張探索範囲163は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に上方向の場合である。拡張探索範囲163は、基準探索範囲161の上に設定される。図38(c)に示すように、[ケース23]の拡張探索範囲163は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左上方向の場合である。拡張探索範囲163は、基準探索範囲161の左上に設定される。図38(d)に示すように、[ケース24]の拡張探索範囲163は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左方向の場合である。拡張探索範囲163は、基準探索範囲161の左に設定される。
探索開始位置と探索方向の設定と同様に、上記の[ケース21]〜[ケース24]に対して、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRの方向がそれぞれ逆方向の場合を[ケース25]〜[ケース28]とする。なお、拡張探索範囲は、第1の統計動きベクトルMVS,MVRの方向に応じて、上記の[ケース21]〜[ケース24]に対して逆方向に設定される。このため、図面を省略する。
たとえば、第1及び第2の統計動きベクトルMVS,MVRが共に左下方向の[ケース25]では、基準探索範囲161の左下に拡張探索範囲163が設定される。また、第1及び第2の統計動きベクトルMVS,MVRが共に下方向の[ケース26]では、基準探索範囲161の下に拡張探索範囲163が設定される。また、第1及び第2の統計動きベクトルMVS,MVRが共に右下方向の[ケース27]では、基準探索範囲161の右下に拡張探索範囲163が設定される。そして、第1及び第2の統計動きベクトルMVS,MVRが共に右方向の[ケース28]では、基準探索範囲161の右に拡張探索範囲163が設定される。
図39(a)〜図39(d)は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが互いに逆方向の場合における拡張探索範囲の設定を示す。
図39(a)に示すように、[ケース29]の拡張探索範囲163a,163bは、第1の統計動きベクトルMVSが右上方向、第2の統計動きベクトルMVRが左下方向の場合である。基準探索範囲161の右上に拡張探索範囲163aが設定され、基準探索範囲161の左下に拡張探索範囲163bが設定される。なお、上記に対して逆方向、つまり第1の統計動きベクトルMVSが左下方向、第2の統計動きベクトルMVRが右上方向の場合、同様に拡張探索範囲163a,163bが設定される。図39(b)に示すように、[ケース30]の拡張探索範囲163a,163bは、第1の統計動きベクトルMVSが上方向、第2の統計動きベクトルMVRが下方向の場合、またはその逆の場合である。基準探索範囲161の上に拡張探索範囲163aが設定され、基準探索範囲161の下に拡張探索範囲163bが設定される。
図39(c)に示すように、[ケース31]の拡張探索範囲163a,163bは、第1の統計動きベクトルMVSが左上方向、第2の統計動きベクトルMVRが右下方向の場合、またはその逆の場合である。基準探索範囲161の左上に拡張探索範囲163aが設定され、基準探索範囲161の右下に拡張探索範囲163bが設定される。図39(d)に示すように、[ケース32]の拡張探索範囲163a,163bは、第1の統計動きベクトルMVSが左方向、第2の統計動きベクトルMVRが右方向の場合、またはその逆の場合である。基準探索範囲161の左に拡張探索範囲163aが設定され、基準探索範囲161の右に拡張探索範囲163bが設定される。
第1の統計動きベクトルMVSの方向と第2の統計動きベクトルMVRの方向が上記の何れにも当てはまらない場合を[ケース33]とする。この[ケース33]では、図39(e)に示すように、基準探索範囲161の各辺、つまり基準探索範囲161を囲むように拡張探索範囲163が設定される。
次に、探索範囲を拡張する各ケースの選択処理の流れの一例を説明する。
図40〜図43は、選択処理のフローチャートである。図40〜図43において、現処理画像152(図15参照)における第1の統計動きベクトルMVSを「前方」、後方参照画像154(図15参照)における第2の統計動きベクトルMVRを「後方」と表記する。
図40に示すように、ステップ301において、前処理MBを1/3の処理時間以内で終了したか否かを判定する。つまり、対象マクロブロックCuの1つ前に処理したマクロブロック(MB)において、そのマクロブロック(MB)に対する動き探索処理を、「1/3期間」で打ち切ったか否かを判定する。1/3処理時間以内に終了した場合(判定:YES)、ステップ302以降において、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRの方向について判定する。
ステップ302において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右上方向の場合(判定:YES)、ステップ303において[ケース1]の拡張探索範囲を設定する。ステップ304において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に上方向の場合(判定:YES)、ステップ305において[ケース2]の拡張探索範囲を設定する。ステップ306において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左上方向の場合(判定:YES)、ステップ307において[ケース3]の拡張探索範囲を設定する。
ステップ308において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左方向の場合(判定:YES)、ステップ309において[ケース4]の拡張探索範囲を設定する。ステップ310において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左下方向の場合(判定:YES)、ステップ311において[ケース5]の拡張探索範囲を設定する。ステップ312において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に下方向の場合(判定:YES)、ステップ313において[ケース6]の拡張探索範囲を設定する。
次に、図41に示すステップ314において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右下方向の場合(判定:YES)、ステップ315において[ケース7]の拡張探索範囲を設定する。
ステップ316において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右方向の場合(判定:YES)、ステップ317において[ケース8]の拡張探索範囲を設定する。
ステップ318において、前方つまり第1の統計動きベクトルMVSが右上方向であって後方つまり第2の統計動きベクトルMVRが左下方向、またはその逆の場合(判定:YES)、ステップ319において[ケース9]の拡張探索範囲を設定する。ステップ320において、前方つまり第1の統計動きベクトルMVSが上方向であって後方つまり第2の統計動きベクトルMVRが下方向、またはその逆の場合(判定:YES)、ステップ321において[ケース10]の拡張探索範囲を設定する。
ステップ322において、前方つまり第1の統計動きベクトルMVSが左上方向であって後方つまり第2の統計動きベクトルMVRが右下方向、またはその逆の場合(判定:YES)、ステップ323において[ケース11]の拡張探索範囲を設定する。ステップ324において、前方つまり第1の統計動きベクトルMVSが左方向であって後方つまり第2の統計動きベクトルMVRが右方向、またはその逆の場合(判定:YES)、ステップ325において[ケース12]の拡張探索範囲を設定する。
そして、上記の方向以外の場合(ステップ324において判定:NO)、ステップ326において[ケース13]の拡張探索範囲を設定し、選択処理を終了する。
図40に示すステップ301において、前処理のマクロブロック(MB)が1/3処理時間以内に終了していない場合(判定:NO)、図42に示すステップ327に移行する。そのステップ327において、前処理MBを2/3の処理時間以内で終了したか否かを判定する。つまり、対象マクロブロックCuの1つ前に処理したマクロブロック(MB)において、そのマクロブロック(MB)に対する動き探索処理を、「2/3期間」で打ち切ったか否かを判定する。2/3処理時間以内に終了していない場合(判定:NO)、選択処理を終了する。一方、2/3処理時間以内に終了した場合(判定:YES)、ステップ328以降において、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRの方向について判定する。
ステップ328において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右上方向の場合(判定:YES)、ステップ329において[ケース21]の拡張探索範囲を設定する。ステップ330において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に上方向の場合(判定:YES)、ステップ331において[ケース22]の拡張探索範囲を設定する。
ステップ332において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左上方向の場合(判定:YES)、ステップ333において[ケース23]の拡張探索範囲を設定する。ステップ334において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左方向の場合(判定:YES)、ステップ335において[ケース24]の拡張探索範囲を設定する。
ステップ336において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に左下方向の場合(判定:YES)、ステップ337において[ケース25]の拡張探索範囲を設定する。ステップ338において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に下方向の場合(判定:YES)、ステップ339において[ケース26]の拡張探索範囲を設定する。
次に、図43に示すステップ340において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右下方向の場合(判定:YES)、ステップ341において[ケース27]の拡張探索範囲を設定する。ステップ342において、前方、後方、つまり第1の統計動きベクトルMVSと第2の統計動きベクトルMVRが共に右方向の場合(判定:YES)、ステップ343において[ケース28]の拡張探索範囲を設定する。
ステップ344において、前方つまり第1の統計動きベクトルMVSが右上方向であって後方つまり第2の統計動きベクトルMVRが左下方向、またはその逆の場合(判定:YES)、ステップ345において[ケース29]の拡張探索範囲を設定する。ステップ346において、前方つまり第1の統計動きベクトルMVSが上方向であって後方つまり第2の統計動きベクトルMVRが下方向、またはその逆の場合(判定:YES)、ステップ347において[ケース30]の拡張探索範囲を設定する。
ステップ348において、前方つまり第1の統計動きベクトルMVSが左上方向であって後方つまり第2の統計動きベクトルMVRが右下方向、またはその逆の場合(判定:YES)、ステップ349において[ケース31]の拡張探索範囲を設定する。ステップ350において、前方つまり第1の統計動きベクトルMVSが左方向であって後方つまり第2の統計動きベクトルMVRが右方向、またはその逆の場合(判定:YES)、ステップ351において[ケース32]の拡張探索範囲を設定する。そして、上記の方向以外の場合(ステップ350において判定:NO)、ステップ352において[ケース33]の拡張探索範囲を設定し、選択処理を終了する。
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)統計処理部43は、動画像に含まれる各フレーム画像が処理単位にて分割されたマクロブロック毎に検出された複数の動きベクトルを統計処理する。動き探索部44は、現処理画像と時間的に異なる参照画像に探索範囲を設定し、統計処理部43の処理結果に基づいて、探索範囲内に探索開始位置を設定する。そして、動き探索部44は、統計処理部43の処理結果に基づいて設定した探索方向にしたがって探索範囲内を探索し、現処理画像の対象マクロブロックの動きベクトル(MV)を生成する。
対象マクロブロックCuの動きは、周辺のマクロブロックの動きと関連性が高いことが多い。したがって、周辺のマクロブロックにおける動きベクトルを統計処理した第1の統計動きベクトルMVSに基づいて探索開始位置と探索方向を設定することで、探索開始から短い経過時間にて対象マクロブロックCuに類似した候補ブロックを検出し、対象マクロブロックCuの動きベクトル(MV)を検出することができる。これにより、符号化の効率を向上することができる。
(2)統計処理部43は、現処理画像に含まれるマクロブロックについて、前方の参照画像を参照した動きベクトルを統計処理して第1の統計動きベクトルMVSを生成する。また、統計処理部43は、現処理画像が参照する後方の参照画像に含まれるマクロブロックについて、前方の参照画像を参照した動きベクトルを統計処理して第2の統計動きベクトルMVRを生成する。そして、動き探索部44は、第1の統計動きベクトルMVSと第2の統計動きベクトルMVRとに基づいて、探索開始位置と探索方向とを設定する。これにより、予測精度を向上することができる。
(3)動き探索部44は、候補ブロックの評価値と判定しきい値Gjを比較し、比較結果に応じて、対象マクロブロックCuに対する動き探索処理を打ち切るようにした。そして、動き探索部44は、設定した探索範囲を探索する期間において、判定しきい値Gjを段階的に、基準しきい値αまで増加させるようにした。したがって、基準しきい値αより小さな評価値の候補ブロックを検出することが可能となる。評価値が小さな候補ブロックは、対象マクロブロックCuとの画素の差が少ないため、符号化されたコード量が少なくなる。これにより、符号化の効率を向上することができる。
(4)動き探索部44は、前の対象マクロブロックCuに対する動き探索処理を打ち切った場合に、対象マクロブロックCuに対して参照画像に設定する探索範囲(基準探索範囲)の外側に拡張探索範囲を設定した。そして、対象マクロブロックCuにおいて、前の対象マクロブロックCuにおいて打ち切ったタイミングに応じた期間、探索期間を増加させる。これにより、対象マクロブロックCuを含む現処理画像に対する探索期間を増加させることなく、対象マクロブロックCuに対する探索範囲を大きくすることができる。そして、拡張探索範囲において、基準探索範囲内よりも評価値が小さな候補ブロックが検出されれば、符号化されたコード量が少なくなる。これにより、符号化の効率を向上することができる。
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態の動き探索部44において、拡張探索範囲の設定を省略してもよい。この場合、各対象マクロブロックの動き探索処理を打ち切ることで、動きベクトル(MV)を利用する回路における処理の時間に余裕ができ、効率のよい処理を行うことが可能となる。
・上記実施形態の動きベクトル検出部32において、縮小部41と動き探索部42を省略してもよい。
・上記実施形態において、基準探索範囲の探索に要する期間を3分割したが、2分割、または4分割以上としてもよい。また、分割した処理期間のサイクル数が異なっていてもよい。たとえば、第1期間を1/2とし、第2,第3期間をそれぞれ1/4とする。また、第1期間を1/2,第2期間を1/3,第3期間を1/6とする。
・上記実施形態において判定しきい値Gjを算出するための演算式は一例であり、演算式を適地変更してもよい。また、判定しきい値Gjをたとえばテーブルデータによって求めるようにしてもよい。
・上記実施形態の動き探索部44において、第1の統計動きベクトルMVSに基づいて探索開始位置、探索方向、等を設定してもよい。
43 統計処理部
44 動き探索部
151 参照画像(前方参照画像)
151a 探索範囲
151b 候補ブロック
152 現処理画像
154 参照画像(後方参照画像)
160 参照画像(前方参照画像)
161 基準探索範囲(第1探索範囲)
162,162a,162b 拡張探索範囲(第2探索範囲)
163,163a,163b 拡張探索範囲(第2探索範囲)
130 縮小参照画像
131 マクロブロック(仮想マクロブロック)
132 探索範囲(第3探索範囲)
Cu 対象マクロブロック
C0 仮想マクロブロック
C1 参照マクロブロック
Gs 探索開始位置
Sd 探索方向
MVS 第1の統計動きベクトルMVS
第2の統計動きベクトルMVR

Claims (12)

  1. 動画像に含まれる各フレーム画像が処理単位にて分割されたマクロブロック毎に検出された複数の動きベクトルを統計処理する統計処理部と、
    第1フレーム画像と時間的に異なる参照フレーム画像に第1探索範囲を設定し、前記統計処理部の処理結果に基づいて前記第1探索範囲内に探索開始位置を設定し、前記統計処理部の処理結果に基づいて前記第1探索範囲内における探索方向を設定し、前記探索方向にしたがって前記探索開始位置より前記第1探索範囲内を探索し、前記第1フレーム画像に含まれる対象マクロブロックの動きベクトルを生成する動き探索部と、
    を有すること、
    を特徴とする符号化回路。
  2. 前記統計処理部は、
    前記第1フレーム画像に含まれる複数のマクロブロックの動きベクトルに基づく第1の統計動きベクトルと、前記第1フレーム画像より時間的に後方の第2フレーム画像に含まれる複数のマクロブロックの動きベクトルに基づく第2の統計動きベクトルと、を生成し、
    前記動き探索部は、
    前記第1の統計動きベクトルと前記第2の統計動きベクトルとに基づいて前記探索開始位置と前記探索方向とを設定すること、
    を特徴とする請求項1に記載の符号化回路。
  3. 前記統計処理部は、
    前記第1フレーム画像に含まれ前記対象マクロブロックに隣接する複数のマクロブロックにおいて、前記第1フレーム画像より時間的に前方の前記参照フレーム画像を参照する動きベクトルに基づいて前記第1の統計動きベクトルを生成し、
    前記第2フレーム画像に含まれ前記対象マクロブロックと空間的に同一位置の参照マクロブロックと、前記参照マクロブロックに隣接する複数のマクロブロックとにおいて、前記参照フレーム画像を参照する動きベクトルとに基づいて前記第2の統計動きベクトルを生成すること、
    を特徴とする請求項2に記載の符号化回路。
  4. 前記動き探索部は、
    前記第1の統計動きベクトルの方向と前記第2の統計動きベクトルの方向とに基づいて、前記探索開始位置と前記探索方向を設定すること、
    を特徴とする請求項2または3に記載の符号化回路。
  5. 前記動き探索部は、
    前記探索開始位置に候補ブロックを設定し、前記候補ブロックを前記探索方向にしたがって順次設定し、各設定位置における前記候補ブロックの評価値を算出し、前記評価値と判定しきい値とを比較し、比較結果に基づいて前記対象マクロブロックに対する動き探索処理を打ち切ること、
    を特徴とする請求項1〜4のいずれか一項に記載の符号化回路。
  6. 前記動き探索部は、
    前の対象マクロブロックに対する動き探索処理の打ち切りがあったとき、前記対象マクロブロックに対する前記第1探索範囲の外側に第2探索範囲を設定すること、
    を特徴とする請求項5に記載の符号化回路。
  7. 前記動き探索部は、
    前記第1探索範囲に対して、前記統計処理部の処理結果に基づく方向に前記第2探索範囲を設定すること、
    を特徴とする請求項6に記載の符号化回路。
  8. 前記動き探索部は、
    前記動き探索の打ち切りのタイミングに基づいて前記第2探索範囲の大きさを設定すること、
    を特徴とする請求項6または7に記載の符号化回路。
  9. 前記動き探索部は、
    前の対象マクロブロックに対する動き探索処理の打ち切りがあったとき、前記対象マクロブロックに対する動き探索処理の処理時間を変更し、前記処理時間に基づいて前記判定しきい値を段階的に調整すること、
    を特徴とする請求項5〜8のいずれか一項に記載の符号化回路。
  10. 前記動き探索部は、
    前記探索開始位置に候補ブロックを設定し、前記候補ブロックを前記探索方向にしたがって順次設定し、各設定位置における前記候補ブロックの評価値を算出し、前記評価値と判定しきい値とを比較し、比較結果に基づいて前記対象マクロブロックに対する動き探索処理を打ち切り、
    前の対象マクロブロックに対する動き探索処理の打ち切りがあったとき、前記対象マクロブロックに対する前記第1探索範囲の外側に、前記第1の統計動きベクトルの方向と前記第2の統計動きベクトルの方向とに基づいて、第2探索範囲を設定すること、
    を特徴とする請求項2〜4のいずれか一項に記載の符号化回路。
  11. 前記マクロブロック毎に縮小画像を生成する縮小部と、
    前記縮小部により参照フレームを縮小した縮小画像に設定した第3探索範囲を探索して縮小動きベクトルを検出する縮小動き探索部と、
    を有し、
    前記動き探索部は、前記縮小動きベクトルに基づいて前記第1探索範囲の位置を設定すること、
    を特徴とする請求項1〜10のいずれか一項に記載の符号化回路。
  12. 動画像に含まれる各フレーム画像が処理単位にて分割されたマクロブロック毎に検出された複数の動きベクトルを統計処理し、
    第1フレーム画像と時間的に異なる参照フレーム画像に第1探索範囲を設定し、
    前記統計処理の処理結果に基づいて前記第1探索範囲内に探索開始位置を設定し、
    前記統計処理の処理結果に基づいて設定した探索方向にしたがって前記第1探索範囲内を探索し、
    前記第1フレーム画像に含まれる対象マクロブロックの動きベクトルを生成すること、
    を特徴とする符号化方法。
JP2014189146A 2014-09-17 2014-09-17 符号化回路、符号化方法 Active JP6394876B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014189146A JP6394876B2 (ja) 2014-09-17 2014-09-17 符号化回路、符号化方法
US14/841,178 US10104396B2 (en) 2014-09-17 2015-08-31 Encoder circuit and encoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014189146A JP6394876B2 (ja) 2014-09-17 2014-09-17 符号化回路、符号化方法

Publications (2)

Publication Number Publication Date
JP2016063358A true JP2016063358A (ja) 2016-04-25
JP6394876B2 JP6394876B2 (ja) 2018-09-26

Family

ID=55456123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014189146A Active JP6394876B2 (ja) 2014-09-17 2014-09-17 符号化回路、符号化方法

Country Status (2)

Country Link
US (1) US10104396B2 (ja)
JP (1) JP6394876B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200079870A (ko) * 2018-12-26 2020-07-06 엘지디스플레이 주식회사 영상 처리 모듈 및 이를 이용한 표시 장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017529710A (ja) * 2015-07-31 2017-10-05 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd 検索エリアを評価する方法
CN107852491B (zh) 2015-07-31 2021-09-14 深圳市大疆创新科技有限公司 传感器辅助的码率控制方法
US10477233B2 (en) * 2015-09-30 2019-11-12 Apple Inc. Predictor candidates for motion estimation search systems and methods
JP7211373B2 (ja) * 2018-01-04 2023-01-24 株式会社ソシオネクスト 動画像解析装置、動画像解析システム、動画像解析方法、及びプログラム
CN110545424B (zh) * 2019-08-21 2021-05-11 浙江大华技术股份有限公司 基于mmvd模式的帧间预测方法、视频编码方法及相关装置、设备
US11425412B1 (en) * 2020-11-10 2022-08-23 Amazon Technologies, Inc. Motion cues for video encoding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000236552A (ja) * 1999-02-15 2000-08-29 Nec Corp 動きベクトル検出装置
WO2001010135A1 (en) * 1999-07-29 2001-02-08 Mitsubishi Denki Kabushiki Kaisha Moving vector detecting method
JP2001145109A (ja) * 1999-11-11 2001-05-25 Nec Corp 動きベクトル検出装置
JP2004048512A (ja) * 2002-07-12 2004-02-12 Renesas Technology Corp 動画像符号化方法と動画像符号化回路
JP2004179906A (ja) * 2002-11-26 2004-06-24 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および動きベクトル検出方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308062A (ja) 1999-04-15 2000-11-02 Canon Inc 動画像処理方法
JP3674535B2 (ja) 2001-05-08 2005-07-20 日本電気株式会社 動画像符号化方法および装置
JP4304528B2 (ja) * 2005-12-01 2009-07-29 ソニー株式会社 画像処理装置および画像処理方法
JP2007215114A (ja) * 2006-02-13 2007-08-23 Sony Corp 撮像画像の歪み補正方法、撮像画像の歪み補正装置および撮像装置
JP4178480B2 (ja) * 2006-06-14 2008-11-12 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
CN102804774B (zh) * 2010-01-19 2016-08-24 汤姆逊许可证公司 用于视频编解码的降低了复杂度的模板匹配预测方法和装置
US8755438B2 (en) * 2010-11-29 2014-06-17 Ecole De Technologie Superieure Method and system for selectively performing multiple video transcoding operations
JP6090430B2 (ja) * 2013-03-26 2017-03-08 富士通株式会社 符号化装置、方法、プログラム、コンピュータシステム、記録媒体

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000236552A (ja) * 1999-02-15 2000-08-29 Nec Corp 動きベクトル検出装置
US6549576B1 (en) * 1999-02-15 2003-04-15 Nec Corporation Motion vector detecting method and apparatus
WO2001010135A1 (en) * 1999-07-29 2001-02-08 Mitsubishi Denki Kabushiki Kaisha Moving vector detecting method
JP2001145109A (ja) * 1999-11-11 2001-05-25 Nec Corp 動きベクトル検出装置
JP2004048512A (ja) * 2002-07-12 2004-02-12 Renesas Technology Corp 動画像符号化方法と動画像符号化回路
JP2004179906A (ja) * 2002-11-26 2004-06-24 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および動きベクトル検出方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HUMAIRA NISAR ET AL.: "EFFICIENT BLOCK MOTION ESTIMATION USING SECTOR BASED APPROACH", 2007 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP 2007), JPN6018018863, 16 September 2007 (2007-09-16), pages 489 - 492, ISSN: 0003801333 *
JUNGYOUP YANG ET AL.: "Motion Vector Coding with Optimal PMV Selection", ITU-T - TELECOMMUNICATIONS STANDARDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERT GROU, vol. VCEG-AI22, JPN6018018865, 18 July 2008 (2008-07-18), pages 1 - 6, ISSN: 0003801335 *
大久保 榮等, H.265/HEVC教科書, vol. 第1版, JPN6018018864, 21 October 2013 (2013-10-21), ISSN: 0003801334 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200079870A (ko) * 2018-12-26 2020-07-06 엘지디스플레이 주식회사 영상 처리 모듈 및 이를 이용한 표시 장치
KR102547084B1 (ko) 2018-12-26 2023-06-23 엘지디스플레이 주식회사 영상 처리 모듈 및 이를 이용한 표시 장치

Also Published As

Publication number Publication date
US10104396B2 (en) 2018-10-16
JP6394876B2 (ja) 2018-09-26
US20160080760A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
JP6394876B2 (ja) 符号化回路、符号化方法
JP7252282B2 (ja) 画像予測方法および関連装置
US11539976B2 (en) Motion estimation using collocated blocks
TWI674794B (zh) 用於視訊編解碼的運動細化的方法以及裝置
US11902563B2 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
CN115243050B (zh) 用于运动向量修正的受限存储器访问窗口
KR20200015734A (ko) 다중 참조 예측을 위한 움직임 벡터 개선
US20100315550A1 (en) Image frame interpolation device, image frame interpolation method, and image frame interpolation program
CN112292861B (zh) 用于解码端运动矢量修正的基于误差面的子像素精确修正方法
CN107360433B (zh) 一种帧间预测编码方法和装置
US10015508B2 (en) Video encoding device and video encoding method
JP6390275B2 (ja) 符号化回路、符号化方法
WO2016131270A1 (zh) 一种错误隐藏的方法和装置
US10448043B2 (en) Motion estimation method and motion estimator for estimating motion vector of block of current frame
CN112449180B (zh) 一种编解码方法、装置及其设备
CN112449181A (zh) 一种编解码方法、装置及其设备
TWI493977B (zh) 影像搜尋模組及其方法
JP2019530299A (ja) 画像コーディング/デコーディング方法、装置及び画像処理機器
KR102089433B1 (ko) 영상 부호화 장치의 다방향 계층적 움직임 추정방법
CN116074533B (zh) 运动矢量预测方法、系统、电子设备及存储介质
JP2008085674A (ja) 動き検出装置及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180706

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180814

R150 Certificate of patent or registration of utility model

Ref document number: 6394876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150