JP4385869B2 - 動きベクトル検出装置、動画符号化装置、および、プログラム - Google Patents

動きベクトル検出装置、動画符号化装置、および、プログラム Download PDF

Info

Publication number
JP4385869B2
JP4385869B2 JP2004189808A JP2004189808A JP4385869B2 JP 4385869 B2 JP4385869 B2 JP 4385869B2 JP 2004189808 A JP2004189808 A JP 2004189808A JP 2004189808 A JP2004189808 A JP 2004189808A JP 4385869 B2 JP4385869 B2 JP 4385869B2
Authority
JP
Japan
Prior art keywords
search
vector
integer
block
fractional
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
JP2004189808A
Other languages
English (en)
Other versions
JP2006014033A (ja
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2004189808A priority Critical patent/JP4385869B2/ja
Publication of JP2006014033A publication Critical patent/JP2006014033A/ja
Application granted granted Critical
Publication of JP4385869B2 publication Critical patent/JP4385869B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、動きベクトル検出装置、動画符号化装置、および、プログラムに関し、特に、ブロックマッチング方式の動き検出に好適な動きベクトル検出装置、動画符号化装置、および、プログラムに関する。
動画像データを圧縮するための符号化処理においては、現画像上に設定したマクロブロックとの誤差が最小となる参照画像上のブロック(参照ブロック)を探索し、探索されたブロックと現マクロブロックに元々対応する参照画像上の位置とのずれ量を「動きベクトル」とし、この動きベクトルを示す付加情報を用いて動き補償することによって符号量を抑えることが一般的である。
このような参照画像上での参照ブロックの探索方法として、例えば、「フルサーチ手順」が知られている。この方法は、参照画像上の探索領域内すべてのブロックパターンについて演算をおこなうものである。ここで、ブロック間の動きベクトル検出には、例えば、差分絶対値和演算(Sum of Absolute Difference: SAD)が一般的に用いられるため、すべてのブロックパターンを対象とするフルサーチ手順では、検出が確実である反面、動きベクトル検出のための総演算量が莫大となってしまう。また、画像の変化が少ない場合でもすべてのブロックについて演算してしまうため、処理が効率的でない場合がある。
一方で、すべてのブロックパターンについて演算をおこなわず、数段階(例えば、3ステップ)の手順を経ることで簡易的に動きベクトル検出をおこなう「ステップサーチ手順」も知られている。ステップサーチ手順によれば、フルサーチ手順よりも総演算量が減少するものの、例えば、最初のステップでブロック選択を誤ってしまうと、それ以降復帰できないため、誤った動きベクトルを検出してしまうおそれがある。
このような問題を解消するため、既に検出された動きベクトルに基づいて探索範囲を決定する方法が提案されている(例えば、特許文献1、特許文献2)。特許文献1に記載の発明は、空間的・時間的に相関が高い参照フレームの動きベクトルからベクトルを予測し、予測したベクトルの大きさに応じた探索範囲を決定するものである。また、特許文献2に記載の発明は、フレーム内で位置の相関評価を求め、探索範囲を適応的に選択するものである。
しかしながら、これらの手法では、参照ブロックの探索精度が整数画素単位までであり、分数画素単位(例えば、1/2画素(pel)や1/4画素(pel)、など)での探索については考慮されていなかった。分数画素単位の動き補償は、画像のSN比向上や低ビットレート化などを図ることができ、フレームレートの向上に有効であることが知られているが、上記従来の手法では、分数画素単位での探索が考慮されていないため、より良好なフレームレートでの動画像圧縮を実現することができない。
一方で、分数画素単位での演算には補間処理が必要となるため、このような付加的な演算により計算量が増大し、処理の高速化が困難となってしまうおそれも生じる。したがって、フレームレートの向上と処理の高速化を両立する手法の確立が望まれている。
特開平5−328333号公報 特開平8−032969号公報
本発明は上記実状に鑑みてなされたもので、画像のフレームレート向上を妨げることなく、最適な分数位置まで含めた動きベクトル検出を高速に実行可能な動きベクトル検出装置等を提供することを目的とする。
上記目的を達成するため、本発明の第1の観点に係る動きベクトル検出装置は、
指定されたブロックに基づいて探索範囲を指定する探索範囲指定手段と、
前記探索範囲指定手段が指定した探索範囲内を整数探索および分数探索して、差分が最小となる位置を検出する探索手段と、
前記探索手段が検出した位置を示すベクトルを動きベクトルとして検出するベクトル検出手段と、
を備えた、ブロックマッチングにより動画像の動きベクトルを検出する動き検出装置であって、
指定されたブロックの周辺ブロックで既に検出された動きベクトルを用いて予測ベクトルを算出する予測ベクトル算出手段と、
整数探索により検出された動きベクトルと、前記予測ベクトル算出手段が算出した予測ベクトルの整数部分とが一致するか否かを判別する判別手段と、をさらに備え、
前記探索範囲指定手段は、前記判別手段の判別結果が一致する場合には所定の探索範囲を分数探索の探索範囲として指定し、一致しない場合には前記所定の探索範囲よりも広い探索範囲を分数探索の探索範囲として指定する、
ことを特徴とする。
上記動きベクトル検出装置において、
前記探索範囲指定手段は、前記判別手段が一致すると判別した場合、前記整数予測ベクトルに基づく位置を前記分数予測ベクトル分オフセットした位置に基づいて分数探索範囲を指定し、前記判別手段が一致しないと判別した場合、前記探索手段が整数探索で検出した位置に基づいて分数探索範囲を指定することが望ましい。
上記動きベクトル検出装置において、
前記判別手段が一致すると判別した場合、
前記探索手段は、分数探索を省略し、
前記ベクトル検出手段は、前記予測ベクトル算出手段が算出した分数予測ベクトルを、当該ブロックにおける分数動きベクトルとすることが望ましい。
上記動きベクトル検出装置
整数探索により得られた整数動きベクトルと、分数探索により得られた分数動きベクトルと、整数動きベクトルと分数動きベクトルとを合成して得られる動きベクトルと、をブロック毎に記憶する記憶手段をさらに備えていることが望ましい。
上記目的を達成するため、本発明の第2の観点に係る動画符号化装置は、
指定されたブロックに基づいて探索範囲を指定する探索範囲指定手段と、
前記探索範囲指定手段が指定した探索範囲内を整数探索および分数探索して、差分が最小となる位置を検出する探索手段と、
前記探索手段が検出した位置を示すベクトルを動きベクトルとして検出するベクトル検出手段と、
前記動きベクトルに基づいて参照フレームを動き補償して得られる予測フレームと入力フレームとの差分データを符号化する符号化手段と、
を備えた、動画符号化装置であって、
指定されたブロックの周辺ブロックで既に検出された動きベクトルを用いて予測ベクトルを算出する予測ベクトル算出手段と、
整数探索により検出された動きベクトルと、前記予測ベクトル算出手段が算出した予測ベクトルの整数部分とが一致するか否かを判別する判別手段と、をさらに備え、
前記探索範囲指定手段は、前記判別手段の判別結果が一致する場合には所定の探索範囲を分数探索の探索範囲として指定し、一致しない場合には前記所定の探索範囲よりも広い探索範囲を分数探索の探索範囲として指定する、
ことを特徴とする。
上記動画符号化装置において、
前記探索範囲指定手段は、前記判別手段が一致すると判別した場合、前記整数予測ベクトルに基づく位置を前記分数予測ベクトル分オフセットした位置に基づいて分数探索範囲を指定し、前記判別手段が一致しないと判別した場合、前記探索手段が整数探索で検出した位置に基づいて分数探索範囲を指定することが望ましい。
上記動画符号化装置において、
前記判別手段が一致すると判別した場合、
前記探索手段は、分数探索を省略してもよく、この場合、
前記ベクトル検出手段は、前記予測ベクトル算出手段が算出した分数予測ベクトルを、当該ブロックにおける分数動きベクトルとしてもよい。
上記動画符号化装置は、
整数探索により得られた整数動きベクトルと、分数探索により得られた分数動きベクトルと、整数動きベクトルと分数動きベクトルとを合成して得られる動きベクトルと、をブロック毎に記憶する記憶手段をさらに備えていることが望ましい。
上記目的を達成するため、本発明の第の観点にかかるプログラムは、
コンピュータに、
指定されたブロックの周辺ブロックで既に検出されている動きベクトルを用いて整数予測ベクトルと分数予測ベクトルとを算出する機能と、
探索ブロックを整数予測ベクトル分オフセットさせる機能と、
オフセットした探索ブロックを探索中心として整数探索し、差分が最小となる整数位置を検出する機能と、
検出した整数位置に基づいて、前記整数予測ベクトルが実際の整数動きベクトルと一致するか否かを判別する機能と、
整数動きベクトルと整数予測ベクトルとが一致すると判別された場合、前記整数予測ベクトルに基づく位置を前記分数予測ベクトル分オフセットした位置に基づいて分数探索範囲を指定するとともに、該分数探索範囲のサイズを、所定のサイズに設定する機能と、
整数動きベクトルと整数予測ベクトルとが一致しないと判別された場合、整数探索で検出された整数位置に基づいて分数探索範囲を指定するとともに、該分数探索範囲のサイズを、前記所定のサイズより大きいサイズに設定する機能と、
設定した分数探索範囲内で分数探索をおこなって、差分が最小となる分数位置を検出する機能と、
検出した整数位置と分数位置とに基づいて、当該ブロックの動きベクトルを算出して出力する機能と、
少なくとも算出した整数動きベクトルと、分数動きベクトルと、動きベクトルと、をブロック毎に記憶する機能と、
を実現させることを特徴とする。
本発明によれば、既に算出されている周辺ブロックの動きベクトルに基づいて予測ベクトルを算出し、整数探索で検出されるベクトルと予測ベクトルとが一致するか否かを判別し、判別結果に応じて分数探索の探索範囲を選択するので、フレーム間での相関が高いブロックの演算量を減少させることができ、フレームレートの向上を妨げることなく、最適な分数位置まで含めた動きベクトルを高速に検出することができる。
本発明にかかる実施形態を、以下図面を参照して説明する。本実施形態では、動画像データの符号化を行う符号化装置に本発明を適用した場合を例に以下説明する。本実施形態にかかる符号化装置100は、入力される動画像データを構成する所定単位(例えば、フレームやフィールド)の画像間での動き補償により次の画像を予測する予測差分符号化方式で動画像データを符号化するものとする。本実施形態では、入力される単位画像を「フレーム」とする。すなわち、本実施形態にかかる符号化装置100は、インターフレーム予測による符号化をおこなう。なお、画像単位はフレームに限られず任意であり、例えば「フィールド」などであってもよい。
本実施形態にかかる符号化装置100の構成を図1を参照して説明する。図1は、本実施形態にかかる符号化装置100の機能構成を示す機能ブロック図である。
図示するように、本実施形態にかかる符号化装置100は、変換部110と、量子化部120と、符号化部130と、逆量子化部140と、逆変換部150と、復元画像メモリ160と、動き検出部170と、動き補償部180と、から構成される。
変換部110は、入力されたフレームおよび差分データについて変換符号化をおこなうことでデータ圧縮をおこなう。本実施形態では、例えば、4×4ブロックの整数変換(Integer Transform)をおこなうことで、動画像データを空間周波数領域に変換する。すなわち、隣接画素との相関を利用して低域周波数領域に変換係数を偏らせることでデータ圧縮を行う。
量子化部120は、変換部110による変換係数の値を、例えば、量子化ステップ幅の倍数で表して量子化し、データ圧縮を行う。すなわち、変換部110での変換に用いられた変換係数が離散的なレベルにマッピングされる。このような量子化によって高い周波数の情報が取り除かれる。
符号化部130は、量子化部120で量子化されたデータを、例えば、エントロピー符号化して出力するものであり、VLC(Variable Length Coding:可変長符号化)方式などの符号を用いて符号化する。より詳細には、例えば、指数ゴロム符号(Exponential Golomb Coding)や、CAVLC(Context-based Adaptive Variable Length Coding)などを用いる。さらに、生成する符号量を削減するために、CABAC(Context-based Adaptive Binary Arithmetic Coding)などの算術符号を用いて符号化してもよい。符号化部130で符号化されたデータ(以下、「符号化ビットストリーム」とする)は、所定の伝送媒体や記録媒体などに出力される。出力された符号化ビットストリームは、所定の復号化装置によって復号されて動画像データが再生される。
逆量子化部140は、量子化部120で量子化されたデータを逆量子化し、逆変換部150は、逆量子化部140で逆量子化されたデータを逆変換することで、量子化された入力データ(量子化フレーム)を復元する。
復元画像メモリ160は、例えば、半導体記憶素子などから構成される記憶装置であり、逆変換部150で復元されたフレーム(以下、「復元フレーム」とする)を格納する、いわゆるフレームメモリである。すなわち、出力された符号化フレームについての符号化前のデータを格納する。復元画像メモリ160に格納された復元フレームは、インター予測で参照される「参照フレーム」として用いられる。
動き検出部170は、現在の入力フレーム(現フレーム)と、現フレームの前のフレーム(参照フレーム)との差分を検出することで画像中の動体の動きを検出し、その動きのベクトル(動きベクトル)を求める。本実施形態では、現フレーム上に所定数の画素から構成されるマクロブロック(Macro Block: MB)を設定し、参照フレーム上でマクロブロックとの差分が最小となるブロック(参照ブロック)を探索し、これらの位置間のずれ量を示すベクトルを「動きベクトル」として検出する、いわゆる「ブロック・マッチング法」による動き検出をおこなう。
ここで、本実施形態の動き検出部170は、整数画素単位で動きベクトルを探索した後に分数画素単位で探索をおこなう、いわゆる「多段探索」により、分数単位までの動きベクトルを検出する。ここで、整数画素単位での探索を「整数探索」、分数画素単位での探索を「分数探索」とし、分数探索においては1/4画素単位の探索精度で探索をおこなうものとする。
また、本実施形態にかかる動き検出部170は、各マクロブロック毎に既に検出した動きベクトルに基づく「予測ベクトル」を算出し、動きベクトル検出対象となっているマクロブロック(以下、「現ブロック」とする)における動きベクトル検出に利用する。
動き補償部180は、動き検出部170が検出した動きベクトルに基づいて、前のフレームに対して動き補償する。すなわち、検出した動きベクトルに基づいて予測フレームを作成する。そして、入力フレームと予測フレームの差分が符号化対象となる。
本実施形態にかかる動き検出部170は、上述のように予測ベクトルを算出し、算出した予測ベクトルを用いることで、処理速度の高速化とフレームレートの向上を図るものである。このような動作を行う動き検出部170の構成を図2を参照して説明する。
図2は、動き検出部170の構成を示すブロック図である。図示するように、動き検出部170は、MB(マクロブロック)設定部171、予測ベクトル算出部172、ベクトルメモリ173、ベクトル選択部174、判別部175、探索範囲指定部176、ベクトル算出部177、差分検出部178、を備える。
MB設定部171は、入力された現フレーム上に、マッチング対象となるマクロブロックを設定する。ここで、マクロブロックとは、所定数の画素群から構成されたブロックであり、図3に示すように、一の現フレームCF上に複数設定する。MB設定部171は、このように設定されたマクロブロックMBを、動きベクトルの検出対象として順次指定するものとする。本実施形態では、図3において矢印で示すように、左から右への指定を上から下に向かって順次おこなう。動きベクトル検出の対象として指定されたマクロブロックを以下「現ブロック」とする。
予測ベクトル算出部172は、ベクトルメモリ173に格納されている、既に検出された動きベクトルに基づいて、動きベクトル検出時に参照する予測ベクトルを算出する。ここで「予測ベクトル」とは、既に検出した動きベクトルを用いて、次のマクロブロックでの動きベクトルを予想したものである。本実施形態では、現ブロックの周辺の複数のマクロブロック(以下、「予測対象ブロック」とする)の動きベクトルのメジアン(中央値)を算出して予測ベクトルとする。したがって、本実施形態では、現ブロック周辺の3つのブロックの動きベクトルを用いることとする。例えば、図4(a)に示すような位置に現ブロックが指定されている場合、図4(b)に示すように、ブロックB、C、Dを3つを予測対象ブロックとする。
ここでは、現ブロックとの相関が強いブロックを予測対象ブロックとして選択する。この場合、現ブロックの直上、直下、直左、直右に隣接しているブロックとの相関が高いと考えられる。したがって、図4(b)の場合、ブロックB、D、E、Gが現ブロックと相関が強いと考えられるが、ブロックE、Gについてはまだ動きベクトルが検出されていないため、予測対象ブロックとすることはできない。この場合、ブロックA、Cのいずれかを選択することになる。ここで、ブロックCはブロックEとの相関が強いと考えられ、ブロックAは既に予測対象ブロックとされているブロックB、Dと相関が強いと考えられる。このような場合は、ブロックEとの相関が強いブロックCを選択する。
予測対象ブロックとしてブロックB,C,Dが選択された場合、各ブロックで検出された動きベクトルをそれぞれ、B(x、y)、C(x、y)、D(x、y)とすると、予測ベクトル算出部172は、「median (B(x), C(x), D(x))」をx方向の予測ベクトル(予測ベクトル(x))とし、「median (B(y), C(y), D(y))」をy方向の予測ベクトル(予測ベクトル(y))とする。
このように、本実施形態における予測ベクトルの算出には、予測対象ブロックが3つ必要となるため、少なくとも4番目以降のマクロブロックでの動きベクトル検出において予測ベクトルが算出されることとなる。しかし、現ブロックの位置によっては、3つの予測対象ブロックが得られない場合もある(例えば、現ブロックがブロック行列の1行目にある場合や1列目にある場合など)。このような場合は、現ブロックが4番目以降のものであっても、予測ベクトルの算出をスキップしてもよい。上記のような3つの予測対象ブロックが得られる条件を、以下「予測ベクトル算出条件」とする。
本実施形態では、動きベクトルを整数画素単位と分数画素単位で求める。したがって、予測ベクトル算出部172は、整数動きベクトルと分数動きベクトルのそれぞれを用いて予測ベクトルを算出するものとする。すなわち、予測対象ブロックの整数動きベクトルのメジアンと、予測対象ブロックの分数動きベクトルのメジアンとをそれぞれ求める。以下、整数動きベクトルを用いて算出した予測ベクトルを「整数予測ベクトル」とし、分数動きベクトルを用いて算出した予測ベクトルを「分数予測ベクトル」とする。なお、予測ベクトルの算出は「メジアン」に限られず、例えば、複数の動きベクトルの平均などであってもよい。また、予測ベクトル算出部172は算出した整数予測ベクトルと分数予測ベクトルとを一時的に記憶する記憶領域を備えているものとする。
ベクトルメモリ173は、各マクロブロック毎に検出された動きベクトルの値(ベクトルデータ)を記憶する。ここで、ベクトルメモリ173に格納される動きベクトルは、図5に示すように、整数探索で検出されたベクトル(「整数動きベクトル」)、分数探索で検出されたベクトル(「分数動きベクトル」)、および、整数動きベクトルと分数動きベクトルとを合成した動きベクトル(「最終値」)である。ここで、「整数動きベクトル」は、現ブロックについての整数探索が終了した時点でベクトルメモリ173に格納され、「分数動きベクトル」は、現ブロックについての分数探索が終了した時点でベクトルメモリ173に格納される。また、整数動きベクトルと分数動きベクトルとを合成した最終値が、当該マクロブロックにおける動きベクトルとなる。ベクトルメモリ173は、少なくとも、1フレーム分のマクロブロックそれぞれで検出されたベクトルの値が記憶されるものとする。なお、ベクトルメモリ173の機能は、他の記憶装置や記憶領域(例えば、復元画像メモリ160など)によってなされてもよい。
ベクトル選択部174は、判別部175が出力する判別信号に基づき、予測ベクトル算出部172が算出した予測ベクトルか、ベクトルメモリ173に格納されている動きベクトルのいずれかを選択して取得して出力する。
判別部175は、現在の探索処理の種別が整数探索であるか分数探索であるかの判別、整数探索段階において検出される整数動きベクトルと整数予測ベクトルとが一致するか否かの判別、探索範囲の基準となる位置の判別、などの判別動作をおこない、判別結果を示す信号(以下、「判別信号」とする)を出力する。
探索範囲指定部176は、判別部175が出力した判別信号に基づいて、探索範囲のサイズを指定し、指定した探索範囲のサイズを示す信号(以下、「範囲情報」とする)を出力する。
ベクトル算出部177は、判別部175が出力した判別信号、および、探索範囲指定部176が出力した範囲情報に基づいて、指定された探索範囲における探索位置(ブロック)を示す探索ベクトルを算出して出力する。すなわち、指定された探索範囲内の探索ブロックを示すベクトルを出力することで、差分演算対象となる探索ブロックを順次指定する。ここで、ベクトル算出部177は、整数探索時には整数単位のベクトルを算出して出力し、分数探索時には、分数単位のベクトルを算出して出力する。なお、整数探索においては整数予測ベクトルを加算し、分数探索においては必要に応じて分数予測ベクトルを加算して出力することで、探索範囲と探索ブロックを予測ベクトル分オフセットさせる。
また、ベクトル算出部177は、整数探索で得られた整数動きベクトルと、分数探索で得られた分数動きベクトルとを加算し、現ブロックにおける動きベクトルの最終値として出力する。
なお、ベクトル算出部177は、算出したベクトルを示すベクトルデータを一時的に記憶する記憶領域を有しているものとする。この記憶領域は、少なくとも、各マクロブロックについての処理で算出したベクトルデータを、当該マクロブロックについての処理が終了するまで保持するものとする。
差分検出部178は、ベクトル算出部177が出力したベクトルが示す位置(ブロック)について、参照フレームと現フレームとの間で差分絶対値和演算をおこない、演算結果を出力する。
このような動き検出部170の各構成は、所定の制御信号によって制御されるものとする。このような制御信号は、例えば、CPU(Central Processing Unit:中央演算処理装置)などから構成される符号化装置100の制御部(不図示)より各部に供給されるものとすることができる他、外部装置などから供給されてもよい。
上記のように構成された符号化装置100は、次のような手順で動画像データを符号化する。
符号化装置100に入力された動画像データは、フレーム単位で変換部110および動き検出部170へ送られる。動き検出部170では入力フレームと参照フレームとの差分を検出することで動きベクトルを検出する。動き補償部180は、その動きベクトルに基づいて参照フレームを動き補償して予測フレームを生成する。そして、入力フレームと予測フレームとの差分が取られ、その差分データは、変換部110による変換と、量子化部120による量子化が行われた後に、符号化部130で符号化される。動き検出部170が検出した動きベクトルデータも符号化部130で符号化され、両データは多重化されて出力される。
一方、量子化部120で量子化された差分データは、逆量子化部140で逆量子化され、逆変換部150で逆変換されることにより復元される。復元された差分データと、動き補償部180が生成した予測フレームとが加算され、復元画像メモリ160に「復元フレーム」(復元画像)として格納される。復元画像メモリ160に格納された復元フレームは、「参照フレーム」(参照画像)として動き検出部170に入力される。動き検出部170では、入力された参照フレームと現フレームとの間の動き補償に用いる「動きベクトル」を検出する。
本実施形態にかかる動き検出部170は、いわゆるブロックマッチング法により現フレームと参照フレームとの差分ベクトルを求めるものである。すなわち、現フレーム上のマクロブロックと画素値が近似するブロックを参照フレーム上で探索し、探索されたブロック(参照ブロック)の位置とマクロブロックの位置とのずれを示すベクトルを「動きベクトル」として検出する。
ここで、本実施形態では、対象となるマクロブロックにおいて、上述した予測ベクトル算出条件が充足する場合、予測ベクトルを利用して動きベクトルを検出する。この場合の動き検出部170の動作(「動きベクトル検出処理」)を図6に示すフローチャートを参照して説明する。この「動きベクトル検出処理」は、動き検出部170に現フレームが入力されたことを契機に開始される。
処理が開始されると、まず、MB設定部171が現フレームにマクロブロックを設定し、設定したマクロブロックのいずれかを符号化対象ブロック(現ブロック)として指定する(ステップS101)。ここでは、上述したように、左上からの走査方向順に指定する(図3参照)。
本実施形態にかかる動き検出部170は、整数探索後に分数探索をおこなう多段探索により動きベクトルを検出するので、MB設定部171により符号化対象ブロックが指定されると、まず、整数画素単位で探索する「整数探索処理」を実行する(ステップS200)。この「整数探索処理」を図7、8に示すフローチャートを参照して説明する。
処理が開始されると、予測ベクトル算出部172が、現ブロックについて予測ベクトルを算出可能か否かを判別する(ステップS201)。ここでは、上述した予測ベクトル算出条件が充足しているか否かを判別する。予測ベクトル算出条件が充足している場合は「予測ベクトル算出可能」であり、予測ベクトル算出条件が充足していない場合は「予測ベクトル算出不可」ということになる。予測ベクトル算出部172は、ベクトルメモリ173に格納されているブロック毎の動きベクトルデータを参照することで、現ブロックについて予測ベクトル算出条件が充足しているか否かを判別する。すなわち、動きベクトルの「最終値」が記録されていれば、そのブロックについての動きベクトルは既に検出されていることになるので、そのようなブロックが現ブロックの周囲に3つあるか否かをみることで、予測ベクトル算出条件を充足しているか否かを判別することができる。
予測ベクトルが算出可能である場合(ステップS201:Yes)、予測ベクトル算出部172は、該当する予測対象ブロックについての動きベクトルをベクトルメモリ173から取得する。この場合、3つの予測対象ブロックの動きベクトルを取得し、これらのメジアンをとることで予測ベクトルを算出する(ステップS202)。より詳細には、予測対象ブロックの整数動きベクトルを取得してメジアンをとることで「整数予測ベクトル」を算出し、予測対象ブロックの分数動きベクトルを取得してメジアンをとることで「分数予測ベクトル」を算出する。予測ベクトル算出部172は、算出した整数予測ベクトルと分数予測ベクトルを、現ブロックについての処理が終了するまで保持する。
判別部175は、現在の処理が整数探索であることを示す判別信号と、現ブロックCBを示す判別信号を、ベクトル選択部174と、探索範囲指定部176と、ベクトル算出部177に出力する。
判別部175から出力された判別信号が「整数探索」を示す場合、ベクトル選択部174は、予測ベクトル算出部172から整数予測ベクトルを選択して、ベクトル算出部177に出力する。すなわち、予測ベクトルは、現ブロックの周辺ベクトルで求められた動きベクトルに基づいて、参照ブロックの位置を予測したものなので、本実施形態では、整数探索時に、現ブロックに対応する探索ブロックを整数予測ベクトル分ずらしておき(オフセット)、その周辺で探索をおこなうことで、探索範囲を絞り込み、演算量の減少を図る。したがって、ベクトル算出部177において探索範囲と探索ブロックを整数予測ベクトル分オフセットさせるため、整数探索時には、ベクトル選択部174は整数予測ベクトルを選択する。
探索範囲指定部176は、判別部175が出力した判別信号に基づいて、整数探索時の探索範囲サイズと探索中心を指定する(ステップS203)。
本実施形態では、探索ブロック(=マクロブロック)のサイズを、例えば、図9(a)に示すような、16×16整数画素とする。以下、整数探索における探索ブロックを「探索ブロックSB1」とする。本実施形態では、探索ブロックSB1を構成する各整数位置のいずれかを基準点(以下、「基準点OP1」とする)とし、その基準点の位置を指定することにより、探索ブロックSB1の位置や探索中心を決定するものとする。ここでは、図9(a)に示すように、探索ブロックSB1の左上頂部の整数位置を基準点OP1とする。
また、本実施形態では、整数探索の探索範囲(以下、「整数探索範囲SA1」とする)を、例えば、5×5整数画素とする。この場合、図9(b)に示すように、探索ブロックSB1の基準点OP1を中心とした5×5整数画素の範囲が整数探索範囲SA1となる。整数探索においては、探索ブロックSB1の基準点OP1が、整数探索範囲SA1内の各整数位置となるよう、1整数画素分ずつずらしながら、現ブロックとの差分を演算していく。
上述したように、本実施形態の「整数探索」では、探索ブロックと探索範囲を整数予測ベクトル分オフセットする。したがって、「整数探索」が指定されると、まず、図10(a)に示すように、現フレームCF上で指定された現ブロックCBと同一の位置およびサイズのブロックが、探索ブロックSB1_INTとして参照フレームRF上に規定される。そして、予測ベクトルが算出可能である場合、探索ブロックSB1_INTを整数予測ベクトル分オフセットしたところを起点として、同サイズのブロック(探索ブロックSB1)を整数画素ずつずらしながら、現ブロックCBとのマッチングをとることになる。ここでは、探索ブロックSB1_INTの基準点OP1を整数探索の原点(基準点OP1_INT)とする。
すなわち、図10(b)に示すように、探索ブロックSB1_INTの基準点OP1_INTを整数予測ベクトル分オフセットした位置を中心とした整数探索範囲SA1が規定される。このような場合、探索範囲指定部176は、例えば、探索の原点が基準点OP1_INTであること、探索範囲が5×5整数画素であること、ブロックサイズが16×16整数画素であること、および、予測ベクトルが算出可能であること、などを示す情報を範囲情報としてベクトル算出部177に出力する。
ベクトル算出部177は、探索範囲指定部176が出力した範囲情報に基づき、探索ブロックSB1を示すベクトルを算出して順次出力する。ここでは、まず、基準点OP1_INTの位置を特定すると、基準点OP1_INTを示すベクトルに、ベクトル選択部174が選択した整数予測ベクトルを加算する。すなわち、加算後のベクトルは、図10(b)に示すような、基準点OP1_INTを整数予測ベクトル分オフセットした位置を示すベクトルである。
ベクトル算出部177は、図11(a)に示すように、基準点OP1が基準位置(すなわち、ブロックの左上頂部の整数位置)となる16×16整数画素の探索ブロックSB1を設定する。このブロックは、探索の起点となるブロック(以下、「探索ブロックSB1」とする)である。ベクトル算出部177は、基準点OP1_INTを原点とした、探索ブロックSB1を示すベクトルを算出し、探索ブロックSB1を示す探索ベクトルとして差分検出部178に出力する。
ここで、ベクトル算出部177は、探索範囲指定部176の範囲情報に基づいて、図11(a)に示すように、基準点OP1を中心とした5×5整数画素の整数探索範囲SA1を設定する。そして、ベクトル算出部177は、図11(b)に示すような、探索ブロックSB1を1整数画素分ずらした探索ブロックSB1を示す探索ベクトルを算出して出力する。この場合、図11(b)に示すように、探索ブロックSB1の基準点OP1を1整数画素分ずらした位置を次の基準点である基準点OP1とし、この基準点OP1を基準とした16×16の探索ブロックSB1を示すベクトルを探索ベクトルとして出力する。ここでは、探索ブロックSB1を示す探索ベクトルに、整数単位のずらし量とずらし方向を示すベクトル(図11(b)の矢印)を加算することで、探索ブロックSB1の探索ベクトルとすることができる。
このようにして、ベクトル算出部177は、探索ブロックSB1を起点として、基準点OP1が整数探索範囲SA1の各整数位置となる探索ブロックSB1〜SB124のそれぞれを示す探索ベクトルを順次出力する。この場合、例えば、図11(c)の矢印で示す順序で探索ブロックSB1を1整数画素分ずつずらしていく。ベクトル算出部177は、このように整数予測ベクトル分オフセットした各探索ブロックSB1を示す探索ベクトルを算出し(ステップS204)、順次ベクトル算出部177に出力する。ここで、整数予測ベクトル分オフセットした位置を中心に整数探索範囲SA1が設定されるので、探索範囲も整数予測ベクトル分オフセットされたこととなる。
差分検出部178は、このように整数予測ベクトルが加算された探索ベクトルに基づいてブロックマッチングをおこなう(ステップS205)。すなわち、整数予測ベクトル分オフセットされた探索ブロックSB1〜SB124のそれぞれと、現ブロックCBとの差分を、例えば、絶対値和演算により求める。差分検出部178は、各探索ブロックSB1毎の演算結果を評価値として判別部175に出力する。
判別部175は、差分検出部178から取得した評価値に基づき、各探索ブロックSB1のうち、現ブロックとの差分が最小となる評価値が得られた探索ブロックSB1を、探索ブロックSB1_minとして特定する(ステップS206)。
判別部175は、特定した探索ブロックSB1_minが、探索ブロックSB1であるか否かを判別する。すなわち、現ブロックとの差分が最小となったブロックが、探索中心のブロックであるか否かを判別する(ステップS207)。探索ブロックSB1_minが探索中心(SB1)である場合(ステップS207:Yes)、判別部175は、予測ベクトル算出部172が算出した「整数予測ベクトル」が、現ブロックでの「整数動きベクトル」である、すなわち、「整数予測ベクトルと整数動きベクトルが一致する」と判別し(ステップS208)、その旨を示す判別信号をベクトル選択部174に出力する。
ベクトル選択部174は、判別部175からの判別信号に応じて、予測ベクトル算出部172から整数予測ベクトルを取得し、ベクトルメモリ173に出力する。ベクトルメモリ173は、ベクトル選択部174が出力した整数予測ベクトルを現ブロックの「整数動きベクトル」として格納する(ステップS209)。
すなわち、探索ブロックSB1_INTを整数予測ベクトル分オフセットさせた探索ブロックSB1と現ブロックCBとの差分が最小であるため、現ブロックに対する参照ブロックの整数画素単位での位置は、探索ブロックSB1_INTを整数予測ベクトル分加えたものとほぼ同一とすることができる。したがって、整数探索をおこなう前に算出した整数予測ベクトルを、整数探索によって得られる整数動きベクトルと同一視することができる。
整数動きベクトルをベクトルメモリ173に格納すると、「整数探索処理」を終了し、図6に示す「動きベクトル検出処理」のフローに戻る。
一方、探索ブロックSB1_minが探索ブロックSB1ではない場合、探索ブロックSB1_INTに対する、探索ブロックSB1_minの位置が実際の「整数動きベクトル」ということになる。この場合の探索ブロックSB1_minは、整数予測ベクトルで示される探索ブロックSB1をさらに整数画素分ずらしたブロックであるので、探索ブロックSB1_minを示すベクトル、すなわち、実際の整数動きベクトルと整数予測ベクトルとは一致しない。したがって、探索ブロックSB1_minが探索中心ではない場合(ステップS207:No)、判別部175は、現ブロックにおける整数探索で得られる整数動きベクトルと、予測ベクトル算出部172が算出した整数予測ベクトルとは一致しないと判別し(ステップS220:図8)、探索ブロックSB1_minとなった探索ブロックSB1を指定する判別信号をベクトル算出部177に出力する。
ベクトル算出部177は、判別部175の判別信号に基づき、探索ブロックSB1_minとなった探索ブロックSB1を示す探索ベクトルをベクトルメモリ173に出力する(ステップS221)。ベクトルメモリ173は、ベクトル算出部177が出力したベクトルを、現ブロックにおける「整数動きベクトル」として格納する(ステップS222)。
整数動きベクトルをベクトルメモリ173に格納すると、「整数探索処理」を終了し、図6に示す「動きベクトル検出処理」のフローに戻る。
なお、現ブロックについて予測ベクトルの算出が不可である場合(ステップS201:No)は、探索範囲指定部176が予測ベクトルを用いずに探索範囲を指定し(すなわち、整数予測ベクトル分オフセットさせない)、通常のブロックマッチング法によって整数動きベクトルを検出して(ステップS210)、処理を終了する。
本実施形態では、整数探索の後に分数探索をおこなう多段探索により動きベクトルを検出するので、「整数探索処理」が終了すると、「分数探索処理」が実行される(ステップS300)。「分数探索処理」の詳細を図12に示すフローチャートを参照して説明する。
ここで、対象となる参照フレームには、予め所定の補間処理により、分数画素単位に補間されているものとする。本実施形態では、1/4画素単位での分数探索をおこなうため、1/4画素単位に補間する。この場合、まず、例えば、「6tap FIR」などの補間手法により、図13(a)に示すような1/2画素補間(半画素補間)をおこなう。これにより、各整数位置の中間位置(1/2位置)の画素値を得ることができる。半画素補間の後、さらに、例えば、「線形補間」などの補間手法により、図13(b)に示すような1/4画素補間をおこなう。これにより、各1/2位置の中間位置(1/4位置)の画素値を得ることができる。
以下、分数探索における探索ブロックを「探索ブロックSB2」とし、探索ブロックSB2の基準点を「基準点OP2」とする。なお、1/4画素補間されたフレームでの分数探索においては、探索ブロックSB2のブロックサイズを16×16整数画素相当とする。その他、整数画素単位で指定されるサイズについても、相当するサイズが規定されるものとする。また、基準点OP2は、探索ブロックSB2の左上頂部となる整数位置もしくは分数位置が該当する。
分数探索が開始されると、判別部175が、「整数探索処理」のステップS209での判別に基づいて、整数動きベクトルと整数予測ベクトルとが一致していたか否かを判別する(ステップS301)。
本実施形態では、整数予測ベクトルが実際の整数動きベクトルと一致していたか否かに応じて、分数探索における探索範囲の広さ(サイズ)と、分数予測ベクトルに基づく探索範囲の絞り込み要否などを決定する。
ここで、分数探索範囲のサイズとして、より小さいサイズの「狭範囲」と、より大きいサイズの「広範囲」の2種類を用意するものとし、整数予測ベクトルが実際の整数動きベクトルと一致していたか否かに応じて選択する。より詳細には、整数予測ベクトルが実際の整数動きベクトルと一致していた場合には「狭範囲」が選択され、一致していなかった場合には「広範囲」が選択される。
また、整数予測ベクトルが実際の整数動きベクトルと一致していた場合には、探索範囲を分数予測ベクトル分オフセットして探索範囲を絞り込む。
したがって、判別部175は、ステップS301での判別結果を示す判別信号、および、現在の探索処理が分数探索であることを示す判別信号などを、探索範囲指定部176、ベクトル算出部177、および、ベクトル選択部174に出力する。
探索範囲指定部176は、判別部175が出力した判別信号に基づき、まず分数探索の探索中心を指定する。ここで、整数予測ベクトルが実際の整数動きベクトルと一致していた場合、整数単位で現ブロックとの差分が最小であるブロックが探索ブロックSB1であるので、分数単位の探索中心を探索ブロックSB1とする。ここで、整数予測ベクトルが実際の動きベクトルと一致していたことから、ステップS202で算出した予測ベクトルは十分高い精度を持っていることとなる。したがって、分数単位での分数予測ベクトルについても十分高い精度があるといえるので、探索中心を分数予測ベクトル分オフセットさせることで、予め探索範囲を絞り込むことができる。
したがって、整数予測ベクトルが実際の整数動きベクトルと一致していた場合(ステップS301:Yes)、探索範囲指定部176は、まず探索ブロックSB1を指定し(ステップS302)、この探索ブロックSB1を分数予測ベクトル分オフセットさせる(ステップS303)。探索範囲指定部176は、分数予測ベクトル分オフセットしたブロック(以下、「探索ブロックSB2」とする)を分数探索の探索中心に指定するとともに、探索範囲のサイズを「狭範囲」に指定する(ステップS304)。この場合、探索範囲指定部176は、探索ブロックSB1の基準点OP1を指定する情報、および、探索範囲のサイズが「狭範囲」であることを示す情報などを範囲情報としてベクトル算出部177に出力する。
このように、整数予測ベクトルと実際の整数動きベクトルとが一致していた場合には、分数探索の探索範囲および探索ブロックを分数予測ベクトル分オフセットするので、判別部175の判別信号に基づいて、ベクトル選択部174は予測ベクトル算出部172から「分数予測ベクトル」を取得して、ベクトル算出部177に出力する。
ベクトル算出部177は、探索範囲指定部176が出力した範囲信号に基づいて、まず、探索ブロックSB1の基準点OP1を特定し、ここを分数探索の原点(OP2_INT)とする。そして、OP2_INTの位置ベクトルに、ベクトル選択部174が選択した分数予測ベクトルを加算したベクトルが示す位置を、分数探索の探索中心となる探索ブロックSB2の基準点(基準点OP2)とする。
ここで、ベクトル算出部177は、図14(a)に示すような、分数探索範囲を決定するための基準となる範囲(以下、「基準範囲RA」とする)を設定する。図示するように、この基準範囲RAは、基準点OP2を中心とした3×3整数画素相当の範囲である。すなわち、整数単位で差分が最小とされた探索ブロックSB1の基準点OP1を分数予測ベクトル分オフセットさせた基準点OP2(分数位置)を中心とした3×3整数画素相当の範囲を基準範囲RAとして設定する。
ここで、分数探索の探索範囲を基準範囲RAに基づいて設定する。図14(b)は、1/4画素補間された基準範囲RAを示す拡大図である。分数探索範囲のサイズが「狭範囲」の場合、探索範囲指定部176は、図14(c)に示すように、基準範囲RAの中心である基準点OP2の周囲8方向に隣接する3×3分数画素(1/4画素単位)の範囲を分数探索の範囲(以下、「分数探索範囲SA2」とする)のサイズとする。このサイズは、探索中心の周囲8方向を1/4画素単位で探索するための最小限のサイズである。
整数予測ベクトルが実際の整数動きベクトルと一致した場合の分数探索では、このように規定した分数探索範囲SA2内の各分数位置が基準位置(すなわち、ブロック左上頂部位置)となる16×16整数画素相当のブロックを分数探索の探索ブロックSB2としてブロックマッチングをおこなう。この場合、ベクトル算出部177は、各探索ブロックSB2を示すベクトルを算出して順次出力する。
すなわち、ベクトル算出部177は、図15(a)に示すように、分数探索範囲SA2の各位置が基準位置(すなわち、ブロックの左上頂部位置)となる16×16整数画素相当の探索ブロックSB2を設定する。このブロックは、探索の起点となるブロック(以下、「探索ブロックSB2」とする)である。ベクトル算出部177は、基準点OP2_INTを原点とした、探索ブロックSB2を示すベクトルを算出し、探索ブロックSB2を示す探索ベクトルとして差分検出部178に出力する。
続いて、ベクトル算出部177は、図15(b)に示すような、探索ブロックSB2を1分数画素分ずらした探索ブロックSB2を示す探索ベクトルを算出して出力する。この場合、図15(b)に示すように、探索ブロックSB2の基準点OP2を1分数画素分ずらした位置を次の基準点(基準点OP2)とし、この基準点OP2が基準位置となる16×16整数画素相当の探索ブロックSB2を示すベクトルを探索ベクトルとして出力する。ここでは、探索ブロックSB2を示す探索ベクトルに、分数単位のずらし量とずらし方向を示すベクトル(図15(b)の矢印)を加算することで、探索ブロックSB2の探索ベクトルとすることができる。
このようにして、ベクトル算出部177は、探索ブロックSB2を起点として、基準点OP2が探索範囲SA2の各分数位置となる探索ブロックSB2〜SB2のそれぞれを示す探索ベクトルを順次出力する。この場合、例えば、図15(c)の矢印で示す順序で探索ブロックSB2を1分数画素分ずつずらしていく。ベクトル算出部177は、このように分数予測ベクトル分オフセットした各探索ブロックSB2を示す探索ベクトルを算出し、差分検出部178に順次出力する。ここで、分数予測ベクトル分オフセットした位置を基準に探索範囲SA2が設定されるので、探索範囲も分数予測ベクトル分オフセットされたこととなる。
差分検出部178は、ベクトル算出部177が出力する探索ベクトルに基づいて、現ブロックCBとのマッチングをおこなう。すなわち、分数探索範囲SA2の各分数位置毎にブロックマッチングをおこなう(ステップS305)。ここでは、探索ブロックSB1から分数予測ベクトル分オフセットした探索ブロックSB2、および、この探索ブロックSB2を起点に1/4画素ずつずらした各探索ブロックSB2〜SB2の画素値と、現ブロックCBの画素値との差分を、例えば、差分絶対値和演算により求める。差分検出部178は、分数位置毎の演算結果を評価値として判別部175に出力する。
判別部175は、差分検出部178から取得した評価値に基づき、差分が最小となる探索ブロックSB2(以下、「探索ブロックSB2_min」とする)を判別する。すなわち、差分が最小となる分数位置を特定する(ステップS306)。そして、探索ブロックSB2_minとされた探索ブロックSB2を指定する判別信号をベクトル算出部177に出力する。
ベクトル算出部177は、判別部175が出力した判別信号に基づき、探索ブロックSB2_minとなった探索ブロックSB2の探索ベクトルをベクトルメモリ173に出力する。
ベクトルメモリ173は、ベクトル算出部177が出力したベクトルを、現ブロックについての「分数動きベクトル」として格納する(ステップS307)。
つまり、整数予測ベクトルが整数動きベクトルと一致していた場合、整数単位で現ブロックと最も近似するブロックが探索ブロックSB1となるので、この探索ブロックSB1を中心に分数探索をおこなう。このとき、整数予測ベクトルが実際の整数動きベクトルと一致していたため、分数予測ベクトルの精度も高いといえる。したがって、探索ブロックと探索範囲を分数予測ベクトル分オフセットさせて探索範囲を絞り込み、分数探索にかかる演算量の減少を図る。さらに、分数予測ベクトルの精度が十分に高い場合、分数予測ベクトル分オフセットした探索ブロックと、実際の分数動きベクトルで示されるブロックとの誤差は極めて小さいことが予想される。このため、探索範囲を最小限の範囲(狭範囲)に設定し、その範囲内で探索ブロックSB2を1/4画素ずつずらして現ブロックCBとの差分を求めることで、ブロックマッチングの演算量を最小限にする。
そして、差分が最小となったブロック(探索ブロックSB2_min)の位置を、分数予測ベクトル分オフセットする前の探索ブロックSB1を原点としたベクトルで求め、このベクトルを現ブロックについての「分数動きベクトル」とする。すなわち、現ブロックについての「分数動きベクトル」は、全体の動きベクトルから整数部分を除いたものであるので、探索中心である探索ブロックSB1からみた、探索ブロックSB2_minを示す分数ベクトルを、現ブロックについての「分数動きベクトル」とする。
分数ベクトルがベクトルメモリ173に格納されると、「分数探索処理」を終了し、図6に示す「動きベクトル検出処理」のフローに戻る。
一方、整数予測ベクトルが整数動きベクトルと一致しなかった場合(ステップS301:No)、判別部175は、その判別結果を示す判別信号、および、現在の探索処理が分数探索であることを示す判別信号などを、探索範囲指定部176、ベクトル算出部177、および、ベクトル選択部174に出力する。
探索範囲指定部176は、判別部175が出力した判別信号に基づき、分数探索の探索中心を指定する。ここで、整数予測ベクトルが実際の整数動きベクトルと一致していなかった場合、整数単位で現ブロックとの差分が最小であるブロックは探索ブロックSB1_minであるので、この探索ブロックSB1_minを分数探索の探索中心とする。ここで、整数予測ベクトルが実際の動きベクトルと一致していないことから、ステップS202で算出した予測ベクトルの精度は高くないと考えられる。このため、探索中心を分数予測ベクトル分オフセットさせても効果的な絞り込みとならない可能性が高い。したがって、整数予測ベクトルと実際の整数動きベクトルとが一致していなかった場合には、分数予測ベクトルを用いたオフセットはおこなわない。
すなわち、整数予測ベクトルが実際の整数動きベクトルと一致していなかった場合、探索範囲指定部176は、探索ブロックSB_minを分数探索の探索中心(以下、「探索ブロックSB2」とする)に指定するとともに(ステップS308)、探索範囲のサイズを「広範囲」に指定する(ステップS309)。この場合、探索範囲指定部176は、探索ブロックSB_minの基準点(「基準点OP1_min」とする)を指定する情報、および、探索範囲のサイズが「広範囲」であることを示す情報などを範囲情報としてベクトル算出部177に出力する。
ここで、探索ブロックSB_minは、整数探索で得られた「整数動きベクトル」によって表されるものである。したがって、ベクトル選択部174は、判別部175の判別信号に基づき、ベクトルメモリ173に記録された「整数動きベクトル」を取得してベクトル算出部177に出力する。
ベクトル算出部177は、ベクトル選択部174が出力した「整数動きベクトル」に基づいて、まず、探索ブロックSB1_minの基準点OP1_minを特定する。ここでは、探索ブロックSB1_INTの基準点である基準点OP1_INTを示すベクトルに、整数動きベクトルを加算することで、探索ブロックSB1_minの基準点OP1_minを特定することができる。ベクトル算出部177は、このような基準点OP1_minを、分数探索の探索中心となる探索ブロックSB2の基準点(基準点OP2)とする(図16(a))。この基準点OP2は、分数探索の原点(OP2_INT)でもある。
ここで、ベクトル算出部177は、図16(b)に示すような、分数探索範囲を決定するための基準となる基準範囲RAを設定する。図示するように、この基準範囲RAは、基準点OP2(整数位置)の周囲8方向に隣接する3×3整数画素の範囲である。すなわち、整数単位で差分が最小とされた探索ブロックSB_minの基準点OP1_min(基準点OP2)の周囲8方向に隣接する3×3整数画素の範囲を基準範囲RAとして設定する。
ここで、分数探索の探索範囲を基準範囲RAに基づいて設定する。図17(a)は、1/4画素補間された基準範囲RAを示す拡大図である。分数探索範囲のサイズが「広範囲」の場合、探索範囲指定部176は、図17(b)に示すように、基準範囲RAの中心となる基準点OP2(整数位置)の周囲8方向に隣接する整数位置を含まない範囲を、分数探索の範囲(以下、「分数探索範囲SA2」とする)のサイズとする。ここで、隣接する整数位置を含まないのは、これらの整数位置については、前段の整数探索においてすでに演算対象とされているため、分数探索においては対象とする必要がないためである。したがって、このサイズは、1/4画素単位で探索する最大限のサイズである。すなわち、1/4画素精度の場合、「広範囲」として指定された分数探索範囲SA2のサイズは、図17(b)に示すように、7×7分数画素(1/4画素単位)となる。
整数予測ベクトルが実際の整数動きベクトルと一致しなかった場合の分数探索では、このように規定した分数探索範囲SA2の各分数位置が基準点となる16×16整数画素相当のブロックを分数探索の探索ブロックSB2としてブロックマッチングをおこなう。この場合、ベクトル算出部177は、各探索ブロックSB2を示すベクトルを算出して順次出力する。
すなわち、ベクトル算出部177は、分数探索範囲SA2の各分数位置が基準位置(すなわち、ブロックの左上頂部位置)となる16×16整数画素相当の探索ブロックSB2を設定する。この場合、ベクトル算出部177はまず、図18(a)に示すような、基準点OP2が基準位置となる探索ブロックSB2を設定する。このブロックは、探索の起点となるブロック(以下、「探索ブロックSB2」とする)である。ここで、探索ブロックSB2は、探索ブロックSB1_minと同一であるので、ベクトル算出部177は、整数探索において算出した、探索ブロックSB1_minを示す探索ベクトルを利用する。
ベクトル算出部177は、図18(b)に示すような、探索ブロックSB2を1分数画素分ずらした探索ブロックSB2を示す探索ベクトルを算出して出力する。この場合、図18(b)に示すように、探索ブロックSB2の基準点OP2を1分数画素分ずらした位置を次の基準点である基準点OP2とし、この基準点OP2を基準位置とする16×16整数画素相当の探索ブロックSB2を示すベクトルを探索ベクトルとして出力する。ここでは、探索ブロックSB2を示す探索ベクトルに、分数単位のずらし量とずらし方向を示すベクトル(図18(b)の矢印)を加算することで、探索ブロックSB2の探索ベクトルとすることができる。
このようにして、ベクトル算出部177は、探索ブロックSB2を起点として、基準点OP2が分数探索範囲SA2内の各分数位置となる探索ブロックSB2〜SB248のそれぞれを示す探索ベクトルを順次出力する。この場合、例えば、図18(c)の矢印で示す順序で探索ブロックSB2を1分数画素分ずつずらしていく。ベクトル算出部177は、このような各探索ブロックSB2を示す探索ベクトルを算出し、順次差分検出部178に出力する。
差分検出部178は、ベクトル算出部177が出力する探索ベクトルに基づいて、現ブロックCBとのマッチングをおこなう。すなわち、分数探索範囲SA2の各分数位置毎にブロックマッチングをおこなう(ステップS305)。ここでは、探索ブロックSB2は探索ブロックSB1_minと同一であるので、差分演算の対象から除外する。したがって、探索ブロックSB2を起点に1/4画素ずつずらした各探索ブロックSB2〜SB248の画素値と、現ブロックCBの画素値との差分を、例えば、差分絶対値和演算により求める。差分検出部178は、分数位置毎の演算結果を評価値として判別部175に出力する。
判別部175は、差分検出部178から取得した評価値に基づき、差分が最小となる探索ブロックSB2(以下、「探索ブロックSB2_min」とする)を判別する(ステップS306)。そして、探索ブロックSB2_minとされた探索ブロックSB2を指定する判別信号をベクトル算出部177に出力する。
ベクトル算出部177は、判別部175が出力した判別信号に基づき、探索ブロックSB2_minとなった探索ブロックSB2の探索ベクトルをベクトルメモリ173に出力する。
ベクトルメモリ173は、ベクトル算出部177が出力したベクトルを、現ブロックについての「分数動きベクトル」として格納する(ステップS307)。
つまり、整数予測ベクトルが整数動きベクトルと一致していなかった場合、予測ベクトルの信頼度は高くないと考えられるので、分数予測ベクトルを用いて探索範囲を絞り込まずに分数探索をおこなう。この場合、整数探索で現ブロックとの差分が最小となった位置、すなわち、探索ブロックSB_minを分数画素分ずつずらしながら現ブロックとの間のブロックマッチングをとることで、現ブロックについての正確な分数動きベクトルを求めることができる。ここで、現ブロックについての「分数動きベクトル」は、全体の動きベクトルから整数部分を除いたものであるので、探索中心である探索ブロックSB2(=探索ブロックSB1_min)からみた、探索ブロックSB2_minを示す分数ベクトルを、現ブロックについての「分数動きベクトル」とすることができる。
現ブロックにおける分数動きベクトルが検出されてベクトルメモリ173に格納されると、「分数探索処理」を終了し、図6に示す「動きベクトル検出処理」のフローに戻る。
ここでは、判別部175が分数探索が終了したと判別し、その旨を示す判別信号をベクトル選択部174に出力する。ベクトル選択部174は、判別部175が出力した判別信号に基づき、、現ブロックで探索された「整数動きベクトル」と「分数動きベクトル」とをベクトルメモリ173から取得して、ベクトル算出部177に出力する。ベクトル算出部177は、ベクトル選択部174から出力された「整数動きベクトル」と「分数動きベクトル」とを加算し、現ブロックにおける動きベクトル(最終値)として、ベクトルメモリ173と動き補償部180に出力する(ステップS103)。
すなわち、整数予測ベクトルと整数動きベクトルが一致していた場合は、「整数予測ベクトル」に分数探索で求めた「分数動きベクトル」を加えたものが最終値となる。一方、一致していなかった場合は、整数探索で求めた「整数動きベクトル」に分数探索で求めた「分数動きベクトル」を加えたものが最終値となる。
ベクトルメモリ173は、ベクトル算出部177が出力したベクトルを、現ブロックにおける動きベクトル(最終値)として格納する。
そして、現フレームのすべてのマクロブロックについて動きベクトルが検出されるまで、各マクロブロックについて上記処理をおこなう(ステップS104:No、S105)。すべてのマクロブロックについて動きベクトルが検出されると(ステップS104:Yes)、処理を終了する。
このように各マクロブロック毎に動きベクトルが検出されると、動き補償部180によって動き補償されて予測フレームが作成される。そして、予測フレームと現フレームとの差分のみが符号化部130で符号化されて、符号化ビットストリームとして出力される。
以上説明したように、本実施形態にかかる動き検出部170は、整数探索の後に分数探索をおこなう多段探索において、整数探索時に整数予測ベクトル分オフセットさせて探索をおこない、その結果得られた、差分が最小となる整数位置のベクトルを「整数動きベクトル」として検出する。そして、整数動きベクトルと整数予測ベクトルとが一致するか否かを判別し、一致する場合には、分数探索の探索範囲を狭くとるとともに、分数予測ベクトル分オフセットさせて分数探索する。一方、一致しない場合には、整数探索で最小差分となった整数位置を中心に、分数探索の探索範囲を広くとって分数探索をおこなう。
上記の分数探索において、「狭範囲」である分数探索範囲SA2は、図14(c)に示すように、3×3分数画素分の範囲である。したがって、この場合のブロックマッチングは、探索ブロックSB1を分数予測ベクトル分オフセットした探索ブロックSB2〜SB2のそれぞれと、現ブロックCBとの間でマッチングをとる。すなわち、「狭範囲」が指定された場合の演算回数は9回である。
一方、「広範囲」である分数探索範囲SA2は、図17(b)に示すように、7×7分数画素分の範囲である。ここで、探索ブロックSB2(=探索ブロックSB1_min)については整数探索で演算されているので、「広範囲」が指定された場合のブロックマッチングは、探索ブロックSB2〜SB248のそれぞれと、現ブロックCBとの間でマッチングをとる。すなわち、「広範囲」が指定された場合の演算回数は48回となる。
「動き補償」による差分符号化は、平行移動している動体を示す動画像などを符号化(圧縮)する場合に効果的であることが知られている。このような動画像では、動体部分におけるブロック間の相関は高く、その関係は複数のフレーム間に渡って維持されると考えられる。したがって、本発明にかかる上記動作を適用することで、相関の高いブロックから算出された整数予測ベクトルを用いて探索範囲を絞り込んで整数探索をおこなって、整数予測ベクトルと実際の整数動きベクトルとが一致するかをみる。そして、整数予測ベクトルと実際の整数動きベクトルとが一致した場合には、予測ベクトルの信頼度が保証されるので、分数予測ベクトル分オフセットして探索範囲を絞り込み、さらにの分数探索範囲を「狭範囲」にする。この結果、動画像を分数画素レベルで符号化する際の演算量を大幅に削減することができ、特に、上記のような平行移動する動体を示す動画像などの場合に効果的となる。
ここで、整数予測ベクトルが実際の整数動きベクトルと一致している場合は、分数予測ベクトルの信頼度も高いと考えられる。この場合、分数予測ベクトル分オフセットさせたブロックと、実際の分数動きベクトルで示されるブロックとの誤差は極めて小さいと考えられるので、分数探索のずらし量が最小限となる「狭範囲」の探索であっても、現ブロックとの差分が最小となる分数位置を探索することができる。
一方、整数予測ベクトルが整数動きベクトルと一致しない場合は、分数予測ベクトルの信頼度も高くないと考えられる。この場合、整数探索で得られた「整数動きベクトル」で示されるブロックを用いて、隣接する整数位置を含まない範囲(「広範囲」)内で分数探索することで、現ブロックとの差分が最小となる分数位置を確実に検出する。
すなわち、本実施形態にかかる動き検出部170によれば、フレームレートの向上につながる分数探索を含めた動き検出をおこないつつ、全体としての演算量の減少を図ることができる。この結果、分数探索によるフレームレートの向上と処理の高速化を両立させることができる。
上記実施形態では、整数予測ベクトルと実際の整数動きベクトルとが一致した場合、より演算量の少ない「狭範囲」を指定して分数画素単位探索をおこなったが、一致した場合には分数探索を省略し、分数予測ベクトルを現ブロックの分数動きベクトルとしてもよい。すなわち、例えば、整数動きベクトルと整数予測ベクトルが一致することをもって、予測ベクトルの信頼性を保証できる場合には、その予測ベクトルの分数部分を現ブロックの分数差分ベクトルとして用いることができる。この場合、分数探索が省略されるので、現ブロックについての処理時間を短縮させることができる。
上記実施形態では、ブロックサイズを16×16整数画素としたが、ブロックサイズは任意である。また、整数探索における整数探索範囲SA1を5×5整数画素としたが、整数探索における探索範囲のサイズも任意である。また、探索順序も任意である。
なお、上記実施形態では、分数単位で探索可能な最小限の範囲を「狭範囲」とし、最大限の範囲を「広範囲」としたが、2つの異なるサイズであって、演算量の差がでるのであれば、分数探索範囲のサイズは任意である。また、上記実施形態では、探索範囲内のすべての位置で差分演算をおこなったが、探索範囲の画素数を間引きして差分演算をおこなってもよい。また、上記実施形態では、参照フレームのみを分数画素補間したが、現フレームも分数画素補間するようにしてもよい。
なお、このような符号化装置100から出力された符号化ビットストリームを復号する復号装置で動き検出をおこなう部分も、上記符号化装置100の動き検出部170と同様の構成・動作とすることができる。すなわち、動画像データの符号化あるいは復号において、ブロックマッチングによる動き検出をおこなう部分を上記動き検出部170と同様の構成とすることにより、動画像の符号化および復号において、フレームレートの向上と処理高速化の両立を図ることができる。
なお、上記実施形態にかかる動き検出部170の機能をソフトウェア処理によって実現してもよい。この場合、例えば、パーソナルコンピュータや動画像記録再生装置などの汎用装置で、これらの機能を実現するためのプログラムを実行することで、動き検出部170の機能を実現することができる。
すなわち、汎用装置の記憶部に当該プログラムをインストールし、CPUなどの制御部がプログラムを実行する。この場合、以下のようなプログラムが実行されることで、汎用装置で本発明の実施形態にかかる動き検出部170の機能を実現することができる。
(1−1)「予測ベクトル算出プログラム」:既に動きベクトルが検出されているマクロブロックの動きベクトルに基づいて、現ブロックの動きベクトル検出時に用いる予測ベクトル(整数予測ベクトルと分数予測ベクトル)を算出するためのプログラム。
(1−2)「整数探索プログラム」:現ブロックに対応する参照フレーム上の探索ブロックを整数予測ベクトル分オフセットして整数探索し、現ブロックの画素値との差分が最小となる探索ブロックを示す整数位置を検出するためのプログラム。
(1−3)「判別プログラム」:整数探索で得られた実際の整数動きベクトルと整数予測ベクトルとが一致するか否かを判別するためのプログラム。
(1−4)「分数探索範囲指定プログラム」:整数予測ベクトルと実際の整数動きベクトルが「一致する」と判別された場合には、整数予測ベクトルが示す位置を分数予測ベクトル分オフセットした位置に基づいて分数探索の探索中心を指定するとともに、異なるサイズの探索範囲のうちのより小さいサイズの範囲(狭範囲)を分数探索範囲に指定し、「一致しない」と判別された場合には、整数動きベクトルが示す位置に基づいて分数探索の探索中心を指定するとともに、異なるサイズの探索範囲のうちのより大きいサイズの範囲(広範囲)を分数探索範囲に指定するためのプログラム。
(1−5)「分数探索プログラム」:参照フレーム上で指定された探索範囲内を分数画素単位で探索し、現ブロックの画素値との差分が最小となる探索ブロックを示す分数位置を検出するためのプログラム。
(1−6)「ベクトル算出プログラム」:検出された整数位置および分数位置に基づいて、現ブロックにおける整数動きベクトル、分数動きベクトル、および、動きベクトル(最終値)、などを算出するためのプログラム。
(1−7)「ベクトル記憶プログラム」:算出したベクトルの値を記憶装置に記憶するためのプログラム。
上記プログラムを汎用装置で実行した場合、CPUなどの制御装置が、MB設定部171、予測ベクトル算出部172、ベクトル選択部174、判別部175、探索範囲指定部176、ベクトル算出部177、差分検出部178、などとして機能し、例えば、主記憶装置や外部記憶装置などの記憶装置がベクトルメモリ173などとして機能することとなる。
これらのプログラムは、汎用装置等に予め組み込んで提供することができる他、プログラム自体を独立して提供してもよい。この場合のプログラムの配布方法は任意であり、例えば、CD-ROMやメモリカードなどの記録媒体に格納して配布可能であることはもとより、例えば、インターネットなどの通信媒体を介して配布してもよい。そして、配布されたプログラムを汎用コンピュータ装置等にインストールし、OS(Operation System:基本ソフトウェア)との協働などによって実行することで、上記動き検出部170の機能を実現することができる。
また、本発明にかかる機能を実現するためのプログラムは、動画像の符号化・復号をおこなうための既存のプログラムとの協働により動作するようにしてもよい。すなわち、既存の動画像符号化・復号化プログラムに対する、いわゆるアップデートプログラムとして提供することで、既存の動画像符号化・復号化処理に上記のような動き検出動作を追加し、フレームレートの向上と処理の高速化を図ることができる。
上記各実施形態の記載は、本発明を適用するための一例であり、本発明の範囲は上記各実施形態によって限定されるものではない。すなわち、上記実施形態以外の種々の形態で本発明が適用されてもよく、それらは本発明の範囲に含まれるものである。
本発明の実施形態にかかる「符号化装置」の構成を示すブロック図である。 図1に示す「動き検出部」の構成を示すブロック図である。 現フレームに設定されるマクロブロックの例を示す図である。 予測ベクトルの算出動作を説明するための図であり、(a)は現ブロックの周辺ブロックの例を示し、(b)は「予測対象ブロック」の例を示す。 図2に示す「ベクトルメモリ」に記録される内容の例を示す図である。 本発明の実施形態にかかる「動きベクトル検出処理」を説明するためのフローチャートである。 図6に示す「動きベクトル検出処理」で実行される「整数探索処理」を説明するためのフローチャートである。 図6に示す「動きベクトル検出処理」で実行される「整数探索処理」を説明するためのフローチャートである。 「整数探索」を説明するための図であり、(a)は探索ブロックの例を示し、(b)は探索ブロックに設定される整数探索範囲の例を示す。 「整数探索」を説明するための図であり、(a)は参照フレーム上に設定される探索ブロックの例を示し、(b)は整数予測ベクトル分オフセットさせたときの整数探索範囲の例を示す。 整数探索の探索動作を説明するための図であり、(a)は探索範囲が設定されたときの探索ブロックの例を示し、(b)は探索ブロックを1整数画素分ずらした場合の例を示し、(c)は探索ブロックを1整数画素分ずつずらす順序の例を示す。 図6に示す「動きベクトル検出処理」で実行される「分数探索処理」を説明するためのフローチャートである。 分数画素補間を説明するための図であり、(a)は1/2画素補間による分数位置の例を示し、(b)は1/4画素補間による分数位置の例を示す。 整数予測ベクトルと実際の整数動きベクトルが一致した場合の分数探索を説明するための図であり、(a)は基準点を分数予測ベクトル分オフセットさせたときの基準範囲の例を示し、(b)は分数画素補間した基準範囲の例を示し、(c)は「狭範囲」の分数探索範囲の例を示す。 整数予測ベクトルと実際の整数動きベクトルが一致した場合の分数探索を説明するための図であり、(a)は探索範囲が設定されたときの探索ブロックの例を示し、(b)は探索ブロックを1分数画素分ずらした場合の例を示し、(c)は探索ブロックを1分数画素分ずつずらす順序の例を示す。 整数予測ベクトルと実際の整数動きベクトルが一致しなかった場合の分数探索を説明するための図であり、(a)は分数探索の探索中心の例を示す図であり、(b)は基準範囲の例を示す。 整数予測ベクトルと実際の整数動きベクトルが一致しなかった場合の分数探索を説明するための図であり、(a)は分数画素補間した基準範囲の例を示し、(b)は「広範囲」の分数探索範囲の例を示す。 整数予測ベクトルと実際の整数動きベクトルが一致しなかった場合の分数探索を説明するための図であり、(a)は探索範囲が設定されたときの探索ブロックの例を示し、(b)は探索ブロックを1分数画素分ずらした場合の例を示し、(c)は探索ブロックを1分数画素分ずつずらす順序の例を示す。
符号の説明
100…符号化装置、110…変換部、120…量子化部、130…符号化部、140…逆量子化部、150…逆変換部、160…復元画像メモリ、170…動き検出部、171…MB設定部、172…予測ベクトル算出部、173…ベクトルメモリ、174…ベクトル選択部、175…判別部、176…探索範囲指定部、177…ベクトル算出部、178…差分検出部、180…動き補償部

Claims (9)

  1. 指定されたブロックに基づいて探索範囲を指定する探索範囲指定手段と、
    前記探索範囲指定手段が指定した探索範囲内を整数探索および分数探索して、差分が最小となる位置を検出する探索手段と、
    前記探索手段が検出した位置を示すベクトルを動きベクトルとして検出するベクトル検出手段と、
    を備えた、ブロックマッチングにより動画像の動きベクトルを検出する動き検出装置であって、
    指定されたブロックの周辺ブロックで既に検出された動きベクトルを用いて予測ベクトルを算出する予測ベクトル算出手段と、
    整数探索により検出された動きベクトルと、前記予測ベクトル算出手段が算出した予測ベクトルの整数部分とが一致するか否かを判別する判別手段と、をさらに備え、
    前記探索範囲指定手段は、前記判別手段の判別結果が一致する場合には所定の探索範囲を分数探索の探索範囲として指定し、一致しない場合には前記所定の探索範囲よりも広い探索範囲を分数探索の探索範囲として指定する、
    ことを特徴とする動きベクトル検出装置。
  2. 前記探索範囲指定手段は、前記判別手段が一致すると判別した場合、前記整数予測ベクトルに基づく位置を前記分数予測ベクトル分オフセットした位置に基づいて分数探索範囲を指定し、前記判別手段が一致しないと判別した場合、前記探索手段が整数探索で検出した位置に基づいて分数探索範囲を指定する、
    ことを特徴とする請求項に記載の動きベクトル検出装置。
  3. 前記判別手段が一致すると判別した場合、
    前記探索手段は、分数探索を省略し、
    前記ベクトル検出手段は、前記予測ベクトル算出手段が算出した分数予測ベクトルを、当該ブロックにおける分数動きベクトルとする、
    ことを特徴とする請求項1または2に記載の動きベクトル検出装置。
  4. 整数探索により得られた整数動きベクトルと、分数探索により得られた分数動きベクトルと、整数動きベクトルと分数動きベクトルとを合成して得られる動きベクトルと、をブロック毎に記憶する記憶手段をさらに備える、
    ことを特徴とする請求項1乃至のいずれか1項に記載の動きベクトル検出装置。
  5. 指定されたブロックに基づいて探索範囲を指定する探索範囲指定手段と、
    前記探索範囲指定手段が指定した探索範囲内を整数探索および分数探索して、差分が最小となる位置を検出する探索手段と、
    前記探索手段が検出した位置を示すベクトルを動きベクトルとして検出するベクトル検出手段と、
    前記動きベクトルに基づいて参照フレームを動き補償して得られる予測フレームと入力フレームとの差分データを符号化する符号化手段と、
    を備えた、動画符号化装置であって、
    指定されたブロックの周辺ブロックで既に検出された動きベクトルを用いて予測ベクトルを算出する予測ベクトル算出手段と、
    整数探索により検出された動きベクトルと、前記予測ベクトル算出手段が算出した予測ベクトルの整数部分とが一致するか否かを判別する判別手段と、をさらに備え、
    前記探索範囲指定手段は、前記判別手段の判別結果が一致する場合には所定の探索範囲を分数探索の探索範囲として指定し、一致しない場合には前記所定の探索範囲よりも広い探索範囲を分数探索の探索範囲として指定する、
    ことを特徴とする動画符号化装置。
  6. 前記探索範囲指定手段は、前記判別手段が一致すると判別した場合、前記整数予測ベクトルに基づく位置を前記分数予測ベクトル分オフセットした位置に基づいて分数探索範囲を指定し、前記判別手段が一致しないと判別した場合、前記探索手段が整数探索で検出した位置に基づいて分数探索範囲を指定する、
    ことを特徴とする請求項5に記載の動画符号化装置。
  7. 前記判別手段が一致すると判別した場合、
    前記探索手段は、分数探索を省略し、
    前記ベクトル検出手段は、前記予測ベクトル算出手段が算出した分数予測ベクトルを、当該ブロックにおける分数動きベクトルとする、
    ことを特徴とする請求項5または6に記載の動画符号化装置。
  8. 整数探索により得られた整数動きベクトルと、分数探索により得られた分数動きベクトルと、整数動きベクトルと分数動きベクトルとを合成して得られる動きベクトルと、をブロック毎に記憶する記憶手段をさらに備える、
    ことを特徴とする請求項5乃至7のいずれか1項に記載の動画符号化装置。
  9. コンピュータでブロックマッチングによる動き検出をおこなうためのプログラムであって、
    コンピュータに、
    指定されたブロックの周辺ブロックで既に検出されている動きベクトルを用いて整数予測ベクトルと分数予測ベクトルとを算出する機能と、
    探索ブロックを整数予測ベクトル分オフセットさせる機能と、
    オフセットした探索ブロックを探索中心として整数探索し、差分が最小となる整数位置を検出する機能と、
    検出した整数位置に基づいて、前記整数予測ベクトルが実際の整数動きベクトルと一致するか否かを判別する機能と、
    整数動きベクトルと整数予測ベクトルとが一致すると判別された場合、前記整数予測ベクトルに基づく位置を前記分数予測ベクトル分オフセットした位置に基づいて分数探索範囲を指定するとともに、該分数探索範囲のサイズを、所定のサイズに設定する機能と、
    整数動きベクトルと整数予測ベクトルとが一致しないと判別された場合、整数探索で検出された整数位置に基づいて分数探索範囲を指定するとともに、該分数探索範囲のサイズを、前記所定のサイズより大きいサイズに設定する機能と、
    設定した分数探索範囲内で分数探索をおこなって、差分が最小となる分数位置を検出する機能と、
    検出した整数位置と分数位置とに基づいて、当該ブロックの動きベクトルを算出して出力する機能と、
    少なくとも算出した整数動きベクトルと、分数動きベクトルと、動きベクトルと、をブロック毎に記憶する機能と、
    を実現させることを特徴とするプログラム。
JP2004189808A 2004-06-28 2004-06-28 動きベクトル検出装置、動画符号化装置、および、プログラム Expired - Fee Related JP4385869B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004189808A JP4385869B2 (ja) 2004-06-28 2004-06-28 動きベクトル検出装置、動画符号化装置、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004189808A JP4385869B2 (ja) 2004-06-28 2004-06-28 動きベクトル検出装置、動画符号化装置、および、プログラム

Publications (2)

Publication Number Publication Date
JP2006014033A JP2006014033A (ja) 2006-01-12
JP4385869B2 true JP4385869B2 (ja) 2009-12-16

Family

ID=35780706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004189808A Expired - Fee Related JP4385869B2 (ja) 2004-06-28 2004-06-28 動きベクトル検出装置、動画符号化装置、および、プログラム

Country Status (1)

Country Link
JP (1) JP4385869B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030838A (ja) * 2011-07-26 2013-02-07 Jvc Kenwood Corp 動きベクトル導出装置および方法

Also Published As

Publication number Publication date
JP2006014033A (ja) 2006-01-12

Similar Documents

Publication Publication Date Title
US11070802B2 (en) Moving image coding device, moving image decoding device, moving image coding/decoding system, moving image coding method and moving image decoding method
JP6663520B2 (ja) ビデオ符号化のための簡素化されたイントラ予測
RU2683591C1 (ru) Способ и устройство для компенсации движения с предсказанием
JP5422168B2 (ja) 動画像符号化方法および動画像復号化方法
US20060045186A1 (en) Apparatus and method for coding moving picture
WO2014054267A1 (ja) 画像符号化装置及び画像符号化方法
US9135717B2 (en) Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
JP2019041165A (ja) 画像符号化装置、画像復号装置、画像処理方法、及び画像処理プログラム
JP2011029863A (ja) 復号化処理方法
JP7361838B2 (ja) 映像符号化装置、映像復号装置、及びこれらのプログラム
JP2008219612A (ja) データ埋め込み装置、データ抽出装置、データ埋め込み方法およびデータ抽出方法
JP4576930B2 (ja) 動きベクトル検出装置、および、プログラム
JP4385869B2 (ja) 動きベクトル検出装置、動画符号化装置、および、プログラム
US11528485B2 (en) Encoding apparatus and program
JP4429996B2 (ja) 動画像符号化プログラム、動画像符号化方法および動画像符号化装置
KR101841352B1 (ko) 참조 프레임 선택 방법 및 그 장치
JP4385875B2 (ja) 動きベクトル検出装置、および、プログラム
JP2012120108A (ja) 補間画像生成装置及びプログラム、並びに、動画像復号装置及びプログラム
JPH05308662A (ja) 高能率符号化装置
JP5887020B1 (ja) 動画像復号化方法
JP5864022B2 (ja) 動画像復号化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090421

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090921

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131009

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees