JP2010192984A - 動き検出回路及びその動き検出回路を含む動画像符号化装置 - Google Patents

動き検出回路及びその動き検出回路を含む動画像符号化装置 Download PDF

Info

Publication number
JP2010192984A
JP2010192984A JP2009032735A JP2009032735A JP2010192984A JP 2010192984 A JP2010192984 A JP 2010192984A JP 2009032735 A JP2009032735 A JP 2009032735A JP 2009032735 A JP2009032735 A JP 2009032735A JP 2010192984 A JP2010192984 A JP 2010192984A
Authority
JP
Japan
Prior art keywords
image
partition
difference information
circuit
precision
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
JP2009032735A
Other languages
English (en)
Other versions
JP5200981B2 (ja
Inventor
Kiyonori Morioka
清訓 森岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009032735A priority Critical patent/JP5200981B2/ja
Publication of JP2010192984A publication Critical patent/JP2010192984A/ja
Application granted granted Critical
Publication of JP5200981B2 publication Critical patent/JP5200981B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】
回路規模の削減が可能な回路構成を有する動き検出回路を提供することにある。
【解決手段】
サブブロックに、符号化対象画像及び参照画像を分割し、それらの画像の差分情報に基づいて、符号化対象画像の動きを検出する動き検出回路であって、参照画像データを用いて、それらの画像の差分を求める第1動き検出回路と、差分が最小となる画像間の、第1動きベクトルを抽出する第1ベクトル抽出回路と、差分が最小となる画像をさらにサブブロックに分割し、参照画像データに対して、仮想データを求めるフィルタ回路と、仮想データよりなる画像を構成し、前記符号化対象画像との差分情報を検出する第2動き検出回路と、差分情報に基づいて符号化対象画像と、参照画素データによる差分より小さい仮想データによる差分を有する画像との間の第2動きベクトルを抽出する第2ベクトル抽出回路と、を備えることを特徴とする動き検出回路が提供される。
【選択図】 図2

Description

参照画像における符号化対象画像の動きを検出する動き検出回路を有する動画像符号化装置に関する。
次世代の動画像符号化方式、例えば、動画像の符号化方式標準化機関、ITU(InternationalTelecommunication Union)で制定されている規格、h.264は、細かい複雑な動きをする画像に対応するものである。そのため、規格h.264において、符号化対象画像を16×16画素からなるブロックに分割するだけでなく、さらに、16×8画素、8×16画素、8×8画素等からなるパーティションに分割し、参照画像における符号化対象画像の動き検出が行われている。また、規格h.264において、1次元あたり整数精度の画素6個、最大36個の画素を用いて、いわゆるフィルタ処理、すなわち内挿処理によって、仮想的に求めた1/2精度の画素や、さらに、1/2精度の画素及び整数精度の画素の平均をとることにより求めた1/4精度の画素を使用して、参照画像における符号化対象画像の動き検出が行われている。
そのため、すべての整数精度の画素及びその画素に対するすべての1/2精度及び1/4精度の画素を用いて、参照画像における符号化対象画像の動き検出を行うのでは、演算量が膨大となる。また、その演算に用いる演算回路や、画像データを記憶するメモリが増加するため、規格h.264を実現する動画画像符号化装置における動き検出回路の回路規模が大きくなる。
そこで、演算量の削減のため、参照画像における符号化対象画像の動き検出において、整数位置の画素を用いて動きベクトルの検索を行い、次いで、その検索結果に応じて、1/2精度及び1/4精度の画素を用いて行う検索に使用するパーティションを決定し、1/2精度及び1/4精度の画素を用いて動きベクトルの検索を行う方法が提案されている(特許文献1参照。)。
しかし、整数精度の画素を用いた検索結果に応じて、1/2精度及び1/4精度の画素を用いて行う検索に使用するパーティションを決定してはいるが、使用する可能性のあるパーティションが減少するわけではない。
従って、一番大きなパーティションを含む、すべての種類のパーティションを考慮する必要がある点にはかわりがなく、動き検出回路の演算回路の個数の削減や、記憶回路の規模の削減には寄与しないと考えられる。
特開2006−165840号公報
本発明の目的は、回路規模の削減が可能な回路構成を有する動き検出回路と、それを含む動画符号化装置を提供することにある。
上記の課題を解決するため、本発明の一側面によれば、
矩形形状において複数種類のパーティションの形状、又は、すべてのパーティションに内包されうる矩形の内の最大矩形の形状に、符号化対象画像及び参照画像を分割し、分割した前記符号化対象画像と、分割した前記参照画像との差分を表す差分情報に基づいて、参照画像内における符号化対象画像の動きを検出する動き検出回路であって、
参照画像中の参照画像データを用いて、パーティションの形状に前記符号化対象画像を分割して得た第1画像とパーティションの形状に参照画像を分割して得た第2画像との差分を表す第1差分情報を求める第1動き検出回路と、
第1画像との第1差分情報の情報量が最小となる第2画像について、第1画像の原画像中の位置、及び、第2画像の前記参照画像中の位置とに応じた第1動きベクトルを抽出する第1パーティション/ベクトル抽出回路と、
第1差分情報の情報量が最小となる第2画像を、最大矩形と同じ形状に分割して得られた画像内の各参照画像データに対して、参照画像データから内挿法により求めた複数種類の仮想画素データを求めるフィルタ回路と、
仮想画素データを用いて、各種類の仮想画素データよりなる第3画像を構成し、第3画像と、最大矩形と同じ形状に分割された符号化対象画像との第2差分情報を検出する第2動き検出回路と、
第2差分情報に基づいて求められる、符号化対象画像と、第3画像の合体による得られる画像との第3差分情報であって、第1差分情報より小さい第3差分情報を検出し、
符号化対象画像と、第3差分情報を有する第3画像の合体により得られる画像との間の第2動きベクトルを、第1動きベクトル及び仮想画像データの種類に応じて決定する第2パーティション/ベクトル抽出回路と、
を備えることを特徴とする動き検出回路が提供される。
回路規模の削減が可能な回路構成を有する動き検出回路と、それを含む動画符号化装置を提供することができる。
図1は実施例1の動画像符号化装置10を示した図である。 図2は実施例1の動き検出回路20を示す。 図3は実施例1の動き検出回路20が行う動き検出方法について示すフローチャート30を示す図である。 図4は上記の検索動作の詳細を示すフローチャート40について説明する図である。 図5は上記の仮パーティション/ベクトル決定動作の詳細を示すフローチャート50について説明する図である。 図6は上記の矩形を設定する動作の詳細を示すフローチャート60について説明する図である。 図7Aは上記の小数精度画像データを作成する動作の詳細を示すフローチャート70について説明する図である。 図7Bは、整数精度の画像AからPまで、R、S、T、Yと、小数精度の画像aからkまで、m、n、p、q、r、s、aa、bb、cc、dd、ee、ff、gg、hhとを示す図である。 図8は、小数精度の動き検索動作を示すフローチャート80について説明する図である。 図9は、パーティションコストが最小となるパーティション相当の小数精度参照画像の特定、及び、ベクトルの計算を行うことを示すフローチャート90を説明する図である。 図10は実施例2の動き検出回路の動作に含まれるオペレーション7を説明するフローチャート100を示す図である。
本発明は、以下に説明する実施例に対し、当業者が想到可能な、設計上の変更が加えられたもの、及び、実施例に現れた構成要素の組み換えが行われたものも含む。また、本発明は、その構成要素が同一の作用効果を及ぼす他の構成要素へ置き換えられたもの等も含み、以下の実施例に限定されない。
図1は実施例1の動画像符号化装置10を、それを制御するCPU(central processingunit)30及び原画像を蓄積している原画像メモリ40とともに示した図である。
動画像符号化装置10は、直交変換回路11、量子化回路12、可変長符号化回路13、逆量子化回路14、逆直交変換回路15、参照画像メモリ16、動き補償回路17、減算回路18、加算回路19、動き検出回路20を含む。動画像符号化装置10は、後に説明する予測画像における符号化対象画像と原画像における符号化対象画像の差分と、小数精度の動きベクトルの双方を圧縮して出力する装置である。
直交変換回路11は、画像の差分に関わる信号を変換係数とコサイン関数との積からなる項、複数の和として表す、周知のDCT(Discrete Cosine Transform:離散コサイン変換)を行って、その変換係数を出力する回路である。
量子化回路12は、変換係数を量子化する回路、すなわち、変換係数を離散的なものとする回路である。
可変長符号化回路13は、量子化された変換係数を、可変長の圧縮符号に変換する回路である。
逆量子化回路14は、量子化された変換係数を受け、逆量子化、すなわち、量子化された変換係数をもとの変換係数に戻す回路である。
逆直交変換回路15は、逆量子化回路14からの変換係数を受け、DCTを再現し、画像の差分に関わる信号を再現する回路である。
参照画像メモリ16は、画像の差分に関わる信号と動き補償回路17からの画像に関わる信号が足しあわされて形成された参照画像の画素データを記憶する回路である。
動き補償回路17は、参照画像メモリ16内の参照画像に、符号化対象画像について求められた動きベクトルに対応する補償を加えてできる予測画像を形成する回路である。
減算回路18は.原画像と予測画像の差分を抽出する回路である。加算回路19は、差分に予測画像を加えて、参照画像とする回路である。
動き検出回路20は、参照画像メモリ16に格納された画像データからなる参照画像を用いて、原画像メモリ40に格納されている画像データからなる符号化対象画像を分割したブロック単位で動きベクトルを検出する回路である。
原画像メモリ40は、符号化対象画像の画像データが格納されている記憶回路である。原画像メモリ40から、CPU30の制御により、動き検出回路20に対して、符号化対象画像を分割したブロック単位で、バスを介して画像データが出力される。
CPU30は、動画像符号化装置10及び原画像メモリ40の動作の制御を行う。そのような制御は、CPU30からバスを介して送られる、原画像メモリ40制御命令及び動画像符号化装置10への制御信号によって実行される。
図2は実施例1の動き検出回路20を示す。動き検出回路20は整数探索配意メモリ210、1/2画素生成フィルタ220、小数探索範囲メモリ230、1/4画素生成フィルタ240、第1動き検出回路250、仮パーティション/ベクトル決定部260、第2動き検出回路270、小数探索結果保持回路280、最終パーティション/ベクトル決定部290、及び、カレントMBメモリ295を備える。
カレントMBメモリ295は、原画像メモリ40から出力された符号化対象画像の画像データであって、整数精度の画像データを格納するメモリである。
整数探索範囲メモリ210は、参照画像を記憶する参照画像メモリ16からの整数精度の画像データを格納するメモリである。
第1動き検出回路250は、整数探索範囲メモリ210からの参照画像の整数精度の画像データと、カレントMBメモリ295からの符号化対象画像の整数精度の画像データを用いて、参照画像の各分割部分と、符号化対象画像との差分情報を抽出する回路であり、仮パーティション/ベクトル決定部260へその結果を出力する回路である。なお、上記の参照画像の分割部分とは、符号化対象画像と同じ画素領域をもつ画像である。また、画像間の差分情報が大きければ画像同士の近似度は小さく、差分情報が小さければ画像同士の近似度は小さい。
仮パーティション/ベクトル決定部260は、参照画像の分割部分の内、もっとも符号化対象画像との差分情報が少ない分割部分を特定し、その動きベクトル(整数精度の動きベクトル)及び差分情報の抽出に用いた仮パーティションを決定し、その結果を第2動き検出回路270へ出力する回路である。なお、パーティションとは規格h.264により決められた画像領域であり、符号化対象画像及び参照画像の分割部分をより小さく分割することを目的とした画像領域である。符号化対象画像及び参照画像の分割部分をより小さく分割すれば、より細かい画像領域について差分情報が得られ、より細かい部分の画像の動きを検出することが可能になる。
1/2画素フィルタ220は、整数探索範囲メモリ210からの整数精度の画像データを使用して、内挿法により3種類の1/2精度の画像データ(X方向(横軸方向)だけ1/2精度である画像データ、Y方向(縦軸方向)だけ1/2精度である画像データ、X方向及びY方向について1/2精度である画像データ)を形成し、小数探索範囲メモリ230へ出力する回路である。
ここで、内挿法とは、一般的には、与えられた変数と関数値から、あてはまる関数を導き出し、求めたい変数に対する関数値を計算する手法をいう。ただし、画素データを扱うフィルタ回路では、あてはまる関数は、フィルタ関数として、予め与えられている。
また、整数精度の画像データとは、原画像又は参照画像を構成する画素データをいい、1/2精度の画像データ及び1/4精度の画像データ等の小数精度の画素データは、内挿法や補完により求めた仮想の画像データである。
小数探索範囲メモリ230は、3種類の1/2精度の画素データ(X方向だけ1/2精度である画像データ、Y方向だけ1/2精度である画像データ、X方向及びY方向について1/2精度である画像データ)と、整数探索範囲メモリ210からの整数精度の画像データを記憶するメモリである。
1/4画素フィルタ240は、小数探索範囲メモリ230から1/2精度の画像データを受け、1/4精度の画像データを形成する回路である。
第2動き検出回路270は、パーティションを構成できる矩形の内最大の矩形によって、符号化対象画像と参照画像の分割部分とを細分化し、1/4画素フィルタ240からの1/4精度の画像データ、小数探索範囲メモリ230からの1/2精度の画像データ、整数精度の画像データを用いて、細分化した部分同士の差分情報を抽出回路である。
小数探索結果保持回路280は、第2動き検出回路270からの差分情報を取得し、第1動き検出回路250が検出した、参照画像の各分割部分と、符号化対象画像との差分情報に応じて選択した、第2動き検出回路270からの差分情報の一部を保持する回路である。
最終パーティション/ベクトル決定部290は、小数探索結果保持回路280が保持する結果に基づいて、1/4精度、又は、1/2精度の画像データから構成されている参照画像のパーティションすべてについての差分情報を求め、さらに、1/4精度、又は、1/2精度の画像データから構成されている参照画像の分割部分の差分情報を求め、もっとも符号化対象画像との差分情報が少ない分割部分を決定し、その動きベクトル(小数精度の動きベクトル)及び差分情報の抽出に用いたパーティションを決定する回路である。
図3は実施例1の動き検出回路20が行う動き検出方法について示すフローチャート30である。オペレーション1から8から成り立っている。
オペレーション1:図3を参照し、整数探索範囲メモリ230は参照画像メモリ16から参照画像の画像データを読み込む。
オペレーション2:図3を参照し、カレントMBメモリ295は原画像メモリ40から符号化対象画像の画像データを読み込む。
オペレーション3:図3を参照し、第1動き検出回路250は整数精度の画像データを用いて、第1動き検索動作を行う。
図4は上記の検索動作の詳細を示すフローチャート40、参照画像の画像領域41、符号化対象画像の画像領域42、第1パーティション43、第2パーティション44、第3パーティション45について説明する図であり、図4を参照しながら、上記の検索動作を説明する。
図4のフローチャートに示すオペレーション3−1においては、第1動き検出回路250は符号化対象画像の画像領域42における高さ方向の画素数、及び、横方向の画素数を特定し、画像領域を認識する。本実施例では、例えば、符号化対象画像の画像領域42は16×16の画素を含む。次いで、第1動き検出回路250は参照画像の画像領域41を同様に特定する。次いで、第1動き検出回路250は符号化対象画像の画像領域42と同じの大きさに参照画像の画像領域41を分割部分Sに分割し、それぞれの分割部分Sを認識する。
オペレーション3−2においては、第1動き検出回路250はさらに細かい動きの補足のため、h.264規格に定められる第1パーティション43、第2パーティション44、第3パーティション45によって符号化対象画像をパーティション部分に細分化する。例えば、符号化対象画像は第1パーティション43によれば画素領域8×16に分割され、第2パーティション44によれば画素領域16×8に分割され、第3パーティション45によれば画素領域8×8に分割される。すなわち、符号化対象画像の画像領域は、第1パーティション43によれば、左右に2つの部分画像に分割され、第2パーティション44によれば、上下に2つの部分画像に分割され、第3パーティション45によれば均等な大きさの4つの部分画像に分割される。一方、参照画像についても、上記と同様に参照画像の分割部分Sを、第1パーティション43、第2パーティション44、第3パーティション45によって、分割部分Pn(n=1、2、3)に細分化する。分割部分P1は第1パーティション43に対応し、分割部分P2は第2パーティション44に対応し、分割部分P3は第3パーティション45に対応する。
なお、上記では、パーティションに関わる画素領域は8×16、16×8、8×8としているが、4×8、8×4、4×4とさらに細分化された画像領域であってもよい。より細分化すれば、より細かい動作にも対応可能となる。
オペレーション3−3においては、当初、n=1と設定し、カレントMBメモリ295に記憶されている符号化対象画像の画像データと、整数探索範囲メモリ230に記憶されている参照画像の画像データを用いて、第1動き検出回路250は第nパーティションに対応する、分割部分Pnについて検索時のコストPCn(n=1、2、3)を計算する。
ここで、一般的には、「検索時のコスト」とは、一方の画像と、その画素領域に相当する他方の画像との差分情報を符号化したときの符号化量をいう。したがって、一方の画像と、他方の画像とにおいて、画素データ間の差分をあらわす情報及びその他の付属情報からなる差分情報が小さいほど、符号化量は小さくなる。しかし、符号化量を見積もる際に、画像データの差分をあらわす情報だけではなく、その他の付属情報についても実際に符号化する必要があり、多量の演算をしなければ符号化量を見積もることができない。そこで、第1動き検出回路250は、簡単に「検索時のコスト」を見積もるため、符号化対象画像の部分画像と参照画像の分割部分Pnとの画像データの差分をあらわす情報である、SAD値(Sum of the Absolute Differences)、または、SATD値(Sumof the Absolute Transformed Differences)を計算でもとめ、その結果を「検索時のコスト」としている。従って、符号化量と関係があるその他の指標を検索時のコストとしてもよい。
なお、SAD値とは、画像を構成している各画像データの差分をとり、さらに、その差分の絶対値をとり、画像を構成する画像データすべてについて和をとった値をいう。また、SATD値とは画像を構成する画像データの差分をとり、さらに、アダマール変換を施し、その絶対値をとり、画像を構成する画像データすべてについて和をとった値をいう。
オペレーション3−4においては、第1動き検出回路250は分割部分Sの検索時の整数精度コストSCn(n=1、2、3)を、分割部分Sを構成する分割部分Pnの検索時のコストPCn(n=1、2、3)の合算により計算する。ここで、整数精度とは、カレントMBメモリ295に記憶されている画素データをそのまま使用しおり、内挿法によって得た画素データを使用していないという意味である。次いで、第nパーティションに対する分割部分Sの検索時の整数精度コストSCn(n=1、2、3)を記憶する。
オペレーション3−5においては、第1動き検出回路250はすべての第nパーティションについて、分割部分Sの検索時の整数精度コストSCn(n=1、2、3)に対する計算を判断する。すべてについて整数精度コストSCn(n=1、2、3)に対する計算が終了していない場合は、n=n+1と設定して、オペレーション3−3に戻る。一方、すべての整数精度コストSCn(n=1、2、3)に対する計算が終了している場合は、オペレーション3を終了する。
オペレーション4:図3を参照し、仮パーティション/ベクトル決定部260は、第1動き検出回路250による整数精度の動き検索結果を用いて、第2動き検出回路270による小数精度動き検索に用いる仮パーシションを決定し、仮パーティションを含む分割部分Sのベクトルを決定する動作を行う。
図5は上記の仮パーティション/ベクトル決定動作の詳細を示すフローチャート50、符号化対象画像51、参照画像52、予測画像53、整数精度ベクトル54について説明する図であり、図5を参照しながら、上記の仮パーティション/ベクトル決定動作を説明する。
オペレーション4−1においては、仮パーティション/ベクトル決定部260は各分割部分Sに対する検索時の整数精度コストSCn(n=1、2、3)を受け取る。また、仮パーティション/ベクトル決定部260は分割部分Sを構成する分割部分Pnの検索時のコストPCn(n=1、2、3)を受け取る。
オペレーション4−2においては、仮パーティション/ベクトル決定部260は各符号化対象画像に対して、最小値となる整数精度コストSCn(n=1、2、3)を決定し、最小値となる整数精度コストSCn(n=1、2、3)を有する分割部分Sを特定する。すなわち、最小値となる整数精度コストSCn(n=1、2、3)を有する分割部分Sを構成する分割部分Pnも特定でき、その分割部分Pnの検索時のコストPCn(n=1、2、3)も最小となる。上記の特定により、整数精度で、原画像中の符号化対象画像に一番近似する参照画像中の分割部分を検出するとともに、第1から第3のパーティションの内、どれを用いた場合に一番近似するかを仮に決定することができる。
オペレーション4−3においては、仮パーティション/ベクトル決定部260は原画像中の符号化対象画像の位置と、その符号化対象画像に対して、最小値となる整数精度コストSCm(1、2、3の内のいずれか一つ)を有する分割部分Sの参照画像中の位置を特定する。すなわち、分割部分Pnの参照画像中の位置も特定される。
オペレーション4−4においては、仮パーティション/ベクトル決定部260は符号化対象画像の位置と分割部分Sの参照画像中の位置とから、符号化対象画像に対応する予測画像中の画像の整数精度の動きベクトルを計算する。すなわち、パーティションの形状に分割した符号化対象画像の位置と、分割部分Pnの参照画像中の位置とから、パーティションの形状に分割した符号化対象画像に対応する予測画像中の画像の整数精度の動きベクトルも計算される。
ここで、参照画像は時間的に過去の画像である。原画像は時間的に現在の画像である。予測画像は、参照画像中の符号化対象画像が現在においてどのように動いたかを予測した結果を表した画像である。従って、予測画像における符号化対象画像に対応する画像と、原画像における符号化対象画像は、かならずしも一致していない。
なお、実施例1の動画像符号化装置10では、後に説明する小数精度の予測画像における符号化対象画像と原画像における符号化対象画像の差分と小数精度の動きベクトルの双方を直交変換及び量子化をして圧縮し、符号化して出力するものである。そして、上記の整数精度の予測画像及び整数精度の動きベクトルと、小数精度の予測画像及び小数精度の動きベクトルとは異なるものである。
オペレーション5:図3を参照し、1/2画素フィルタ220、小数探索範囲メモリ230、及び、1/4画素フィルタ240は全種類のパーティションを構成できる矩形の中で、最も大きな矩形を設定し、仮パーティションからなる分割部分Sを含む所定範囲内の 領域の参照画像データを用いて、上記矩形について、小数精度の第2動き検索を行うために必要な小数精度画像データを、作成する動作を行う。
オペレーション5−1においては、1/2画素フィルタ220は全種類のパーティションを構成できる矩形の中で、最も大きな矩形を設定する動作を行う。
図6は上記の矩形を設定する動作の詳細を示すフローチャート60、第1パーティション43、第2パーティション44、第3パーティション45及び矩形61について説明する図であり、図6を参照しながら、上記の矩形を設定する動作を説明する。
オペレーション5−1−1においては、1/2画素フィルタ220は各パーティションの縦方向、横方向の画素数を認識する。第1パーティション43はa×cの画素、例えば16×8の画素からなる。第2パーティション44はb×dの画素、例えば8×16の画素からなる。第3パーティション45はb×cの画素、例えば8×8の画素からなる。
オペレーション5−1−2においては、1/2画素フィルタ220は第1、第2、第3パーティションの縦方向の画素数の最小公倍数bを求める。例えば、上記の最小公倍数は8である。
オペレーション5−1−3においては、1/2画素フィルタ220は第1、第2、第3パーティションの横方向の画素数の最小公倍数cを求める。例えば、上記の最小公倍数は8である。
オペレーション5−1−4においては、1/2画素フィルタ220は縦方向の画素数が最小公倍数b、横方向の画素数が最小公倍数cとなる矩形61を設定する。すなわち、上記の矩形は、すべてのパーティションに内包されうる矩形の内、最大の矩形61の形状を有する。
オペレーション5−2においては、図3を参照して、1/2画素フィルタ220及び1/4画素フィルタ240は仮パーティションからなる分割部分Sを含む拡張領域の参照画像の画像データ、すなわち、整数精度の画像データを用いて、上記矩形について、小数精度の第2動き検索を行うために必要な小数精度の画像データを作成する動作を行う。
図7A、図7Bは上記の小数精度画像データを作成する動作の詳細を示すフローチャート70、拡張領域71、参照画像矩形72、拡張矩形領域73、内挿用隣接画素データ74、整数精度の画素F、G、H、C、Mの画素データ、1/2精度の画素b、h、jの画素データ、1/4精度の画素d、a、eの画素データについて説明する図である。なお、整数精度の画素データとは、原画像又は参照画像を構成する画素データであり、1/2精度の画素データ、1/4精度の画素データ等の小数精度の画素データとは、整数精度の画素データから内挿法又は補完により形成された仮想の画素データである。
オペレーション5−2−1においては、1/2画素フィルタ220は最小値となる整数精度コストSCm(1、2、3の内のいずれか一つ)を有する分割部分Sに対して、左に2画素、上に2画素、右に3画素、下に3画素分、大きな拡張領域71を特定する。なお、拡張領域71の分割部分Sに対する拡張部分は、整数精度の画素データに対して、どの範囲の小数精度の画素データを作成するか依存する。従って、上記の拡張部分(左に2画素、上に2画素、右に3画素、下に3画素)は、下記に示すように、(+0.5、0)、(0、+0.5)、(+0.5、+0.5)の範囲の小数精度の画素データを作成するためのものである。そこで、(−0.5、0)というようにマイナス方向の小数精度の画素データを作成するときには、拡張部分は、左に3画素、上に3画素、右に2画素、下に2画素となる。すなわち、拡張領域71の拡張部分は、上記の拡張部分(左に2画素、上に2画素、右に3画素、下に3画素)とは限られない。
オペレーション5−2−2においては、1/2画素フィルタ220は分割部分Sを、矩形61と同様な大きさの領域に分割して参照画像矩形72とし、それに対して、拡張領域71と同様な条件で拡張矩形領域73を特定し、拡張矩形領域73に関する画素データに限って、1/2画素生成フィルタに読み込む。
オペレーション5−2−3においては、1/2画素フィルタ220は参照画像矩形72内の注目する画素Gと、それに隣接する画素H、Mとの中間の画素b、h、jの1/2精度の画素データを、6個の画素G及び隣接する画素74から作成する。画素bは画素Gに対して横方向に1/2、縦方向に0ずれた位置の画素であり、小数探索範囲メモリ230は、その画素データを、8×8k小数探索範囲1/2精度メモリ(+0.5、0)に格納する。
ここで、整数精度の画素データからなる画素Gと、1/2精度の画素データからなる画素b、h、jと、同時に2次元的に表すことはできない。しかし、整数精度の画素データをもつ画素Gは整数座標に配置され、1/2精度の画素データをもつ画素b、h、jは整数座標から0.5ずれた座標に配置されていると仮定すると、整数精度の画素データからなる画素G、1/2精度の画素データからなる画素b、h、jは、概念的に、2次元上で、0.5ずれているとして表すことができる。
そうすると、画素hは画素Gに対して横方向に0、縦方向に1/2ずれた位置の画素であり、小数探索範囲メモリ230はその画素データをの8×8k小数探索範囲1/2精度メモリ(0、+0.5)に格納する。画素Uは画素Aに対して横方向に1/2、縦方向に1/2ずれた位置の画素であり、小数探索範囲メモリ230はその画素データを8×8k小数探索範囲1/2精度メモリ(+0.5、+0.5)に格納する。
なお、注目する画素を、画素Gから画素F、画素M等の他の画素へ移すことにより、参照画像矩形72内のすべての画素について、上記3種類の1/2精度の画素データが作成される。その結果、すべての画素と、その隣接画素間の1/2精度の画素データが作成される。
また、小数探索範囲メモリ230は参照画像矩形72を構成する整数精度の画素データを8×8k小数探索範囲1/2精度メモリ(+0、+0)に格納する。
1/2画素フィルタ220は、注目する画素と、それに隣接する、上3画素、下2画素分の参照画像の整数精度の画像を使用して、縦方向に1/2ずれた1/2精度の画素について、内挿法により1/2精度の画像データを形成する。また、1/2画素フィルタ220は、注目する画素と、それに隣接する、左2画素、右3画素分の参照画像の整数位置の画像を使用して、横方向に1/2ずれた1/2精度の画素について、内挿法により1/2精度の画像データを形成する。また、1/2画素フィルタ220は、注目する画素G、上2画素、下3画素、左2画素、右3画素を使用して、内挿法により横方向にも縦方向にも1/2ずれた1/2精度の画素を形成する。ここで、内挿法とは、与えられた変数と関数値があてはまる関数を導き出し、求めたい変数に対する関数値を計算する手法をいう。そして、1/2画素フィルタ220では、あてはまる関数は、フィルタ関数として、予め与えられている。
図7Bは、整数精度の画像AからPまで、R、S、T、Yと、小数精度の画像aからkまで、m、n、p、q、r、s、aa、bb、cc、dd、ee、ff、gg、hhとを示す図である。図7Bにおいては、概念的に、整数位置に整数精度の画像が配置され、その間の小数位置に小数精度の画像が配置されているところを示す。
ここで、例えば、画素G等の画像データはGzというように、画素G等の画像データを小文字のzをつけて表す。
そうすると、H.264の規格によれば、整数精度の画像G、H等の画像データGz、Hz等は、1/2精度の画像データbz、hz等と以下のような関係にある。
まず、縦方向、又は、横方向の内の一つが整数位置から1/2ずれている小数精度の画像の画像データbz、hzについては、以下である。
bz1=(Ez−5×F+20×G+20×H−5×I+J)
hz1=(Az−5×C+20×G+20×M−5×R+T)
bz=Clip((bz1+16)>>5)
hz=Clip((hz1+16)>>5)
ここで、Clipは引数を0から255の範囲に切り取る関数である。すなわち、括弧内の引数が0から255であるときは、そのままの値を関数値とし、括弧内の引数が0以下なら0を関数値とし、引数が255以上なら255を関数値とする。また、(引数)>>n(nは整数)は2のn乗で引数を割り算をし、余りは切り捨てることを意味する。従って、上記の式では、2の5乗、すなわち、32で割り算をし、余りを切り捨てることとなる。
さらに、(1、−5、20、20、−5、1)は1/2画素フィルタ220において使用される6tapフィルタの係数であり、係数の総和は32である。
従って、上記の式によれば、その小数精度の画素を挟む、左右3個ずつの整数精度の画素の画素データについて1次元のフィルタ処理を行い、フィルタ係数の総和で割った結果を0から255の範囲に切り取ることにより、横方向(横軸方向)に整数位置から1/2ずれている小数精度の画素の画素データを求めことができる。また、その小数精度の画素を挟む、上下3個ずつの整数精度の画素の画素データについて1次元のフィルタ処理を行い、フィルタ係数の総和で割った結果を0から255の範囲に切り取ることにより、縦方向(縦軸方向)に整数位置から1/2ずれている小数精度の画素の画素データを求めことができる。
次いで、縦方向、横方向ともに整数位置から1/2ずれている小数精度の画素の画素データjzについては、以下である。
mz1=(Bz−5×D+20×H+20×N−5×S+Y)
sz1=(Kz−5×L+20×M+20×N−5×P+O)
jz1=ccz−5×ddz+20×hz1+20×mz1−5×eez+ffz
又は
jz1=aaz−5×bbz+20×bz1+20×sz1−5×ggz+hhz
Jz=Clip((jz1+512)>>10)
従って、上記の式によれば、縦方向、横方向ともに整数位置から1/2ずれている小数精度の画素は、横方向の1次元フィルタ処理によって求めた、横方向(横軸方向)に整数位置から1/2ずれている小数精度の画素の画素データ6個を使用して、縦方向(縦軸方向)の1次元フィルタ処理を行い、横方向の1次元フィルタ処理と縦方向の1次元フィルタ処理のフィルタ係数の総和でフィルタ処理結果を割り、さらにその結果を0から255の範囲に切り取ることにより、求めることができる。すなわち、整数精度の画素を1次元あたり6個、最大36個の整数精度の画素を用いて、フィルタ処理及び演算処理を行うことにより、縦方向、横方向ともに整数位置から1/2ずれている小数精度の画素の画素データは求められる。
上記より、1/2精度の画素データを作成するにあたり、参照画像の整数精度のすべての画像データを、同時に使用して1/2精度の画素データを形成するのではなく、参照矩形領域72に対する拡張矩形領域73内の整数精度の画像データのみを使用して、1/2精度の画素データを形成する。そうすると、限られた時間内で演算を行う必要があるため、内挿法の計算を並列して行う場合に、1/2画素フィルタ220における必要な演算回路の数を少なくすることができる。また、使用する画像データが拡張矩形領域73内の整数精度の画像データのみとなるため、小数探索範囲メモリ230のメモリ領域を小さくすることができる。
図7Aを参照し、オペレーション5−2−4においては、1/4画素フィルタ240は、注目する画素Gと隣接する1/2精度の画素b、h、j等との中間の画素a、d、e等の1/4画素精度の画素データaz、dz、ez等を、整数精度の画素データGz等と1/2精度の画素データaz、dz、ez等とから補完により作成する。
図7Bを参照し、図7Bに示す位置にある、1/4画素精度の画素データaz、dz、ez等は以下のようにして、求められる。
まず、
mz=Clip((mz1+16)>>5)
sz=Clip((sz1+16)>>5)
次いで、
az=(Gz+bz+1)>>1
cz=(Hz+bz+1)>>1
dz=(Gz+hz+1)>>1
nz=(Mz+hz+1)>>1
fz=(bz+jz+1)>>1
iz=(hz+jz+1)>>1
ez=(bz+hz+1)>>1
gz=(bz+mz+1)>>1
pz=(hz+sz+1)>>1
rz=(mz+sz+1)>>1
上記の場合においても、限られた時間内で上記の補完演算を行う必要があるため、演算回路を複数用いて上記の演算を行う。しかし、1/4画素精度の画素データを形成するにあたり、扱う画素データが拡張矩形領域73内の整数位置の画像データと、その画像データから形成された1/2精度の画像データのみでよいため、並列演算に必要な演算回路を少なくすることができる。
オペレーション6:図3を参照し、第2動き検出回路270は、小数精度の画像データを用いた、第2動き検索動作を行う。
図8は、小数精度の動き検索動作を示すフローチャート80、1/2画素データから形成される小数精度参照画像矩形82、1/4画素データから形成される小数精度参照画像矩形83、参照画像矩形72(整数精度)を示す。以下、図8を用いて、第2動き検索動作を説明する。
オペレーション6−1において、第2動き検出回路270は、符号化対象画像の画像領域を矩形61に相当する大きさをもつ、複数個の符号化対象矩形に分割する。なお、複数の符号化対象矩形について、番号1からn(nは正の整数)まで番号を振る。そして、第2動き検出回路270は、複数個の符号化対象矩形の内、第m番目(mは1からnまでの正の整数の内の一つ)の符号化対象矩形を選択する。
オペレーション6−2において、第2動き検出回路270は、符号化対象矩形の動きを検索するために使用する、参照画像矩形72について、1/2画像データから形成された小数精度参照矩形82、及び、1/4画像データから形成された小数精度参照画像矩形83を形成する。
ここで、整数精度の画素データからなる画像と、1/2精度の画素データからなる画像と、1/4精度の画素データからなる画像とは、同時に2次元的に表すことはできない。しかし、画素領域81に示すように、整数精度の画素データは整数座標に配置され、1/2精度の画素データは整数座標から0.5ずれた座標に配置され、1/4精度の画素データは整数座標から0.25ずれた座標に配置されていると仮定すると、整数精度の画素データからなる整数精度参照画像矩形72、1/2精度の画素データからなる小数精度参照画像矩形82、1/4精度の画素データからなる小数精度参照画像矩形83は、相互に、仮想的に、2次元上で、0.5、又は、0.25ずれた画像矩形として表すことができる。
そうすると、一つの整数精度参照画像矩形72からは、配置位置が(0.5、0)、(0、0.5)、(0.5、0.5)ずれた1/2精度の画素データからなる、3個の小数精度参照画像矩形82が形成されることになる。さらに、配置位置が(−0.25、−0.25)、(0、−0.25)、(0.25、−0.25)、(0.5、−0.25)、(−0.25、0)、(0.25、0)、(−0.25、0.25)、(0、0.25)、(0.25、0.25)、(0.5、0.25)、(−0.25、0.5)、(0.25、0.5)ずれた1/4精度の画素データからなる、12個の小数精度参照画像矩形83が形成されることになる。
オペレーション6−3において、第2動き検出回路270は、整数精度の参照画像矩形72、小数精度参照画像矩形82、83、合計16画像について、選択した第m番目の符号化対象矩形に対する、「検索時のコスト」を計算する。次いで、第2動き検出回路270は、小数精度参照画像矩形82、83の動きベクトルを、元になった整数精度参照画像矩形72の動きベクトルと、その整数精度参照画像矩形72からの仮想上の位置ずれを考慮して、計算する。次いで、第2動き検出回路270は、整数精度の参照画像矩形72、小数精度参照画像82、83それぞれについての動きベクトル、及び検索時のコストを記憶する。
オペレーション6−4において、すべての符号化対象矩形に対して、整数精度の参照画像矩形72、小数精度参照画像矩形82、83の「検索時のコスト」の計算、及び、動きベクトルの計算が終了したかを判断する。すべての符号化対象矩形について計算が終了していれば、オペレーション6は終了し、オペレーション7へ進む。一方、すべての符号化対象矩形について計算が終了していなければ、m=m+1として、(すなわち、次の符号化対象矩形を選択して)オペレーション6−2に進む。
オペレーション7:図3を参照し、小数探索結果保持回路280及び最終パーティション/ベクトル決定部290は、各パーティション相当の各符号化対象画像に対して、パーティションコストが最小となるパーティションと同じ形状(パーティション相当)の小数精度参照画像の特定、及び、ベクトルの計算を行う。
図9は、パーティションコストが最小となるパーティション相当の小数精度参照画像の特定、及び、ベクトルの計算を行うことを示すフローチャート90、符号化対象矩形(1、0)用レジスタ91、符号化対象矩形(0、0)用レジスタ92、符号化対象矩形(0、1)用レジスタ93、符号化対象矩形(1、1)用レジスタ94を説明する図である。実施例1の小数探索結果保持回路280は、符号化対象矩形(1、0)用レジスタ91、符号化対象矩形(0、0)用レジスタ92、符号化対象矩形(0、1)用レジスタ93、符号化対象矩形(1、1)用レジスタ94を備える。以下、図9を用いて、パーティションコストが最小となるパーティション相当の小数精度参照画像の特定、及び、ベクトルの計算について説明する。
ここで、パーティションコストとは、検索時のコストに加えてそれぞれのパーティションに設定されているオフセット値を加えたものをいう。パーティションコストが最小になるようにするのは、パーティションに付随するベクトルの個数が増加することによって符号化後のデータ量が増加する。そこで、検索時のコスト(差分画像の類似度)及びパーティションに付随するベクトルの情報量の双方を考えて全体として符号化後のデータ量が小さくなるように制御するためである。
なお、第1パーティション43の場合、上記のオフセット値は、分割領域Sの左側に対しては小さく、右側に対しては大きい。第2パーティション44の場合、オフセット値は、分割領域Sの上側に対しては小さく、下側に対しては大きい。第3パーティション45の場合、オフセット値は、分割領域Sの左上、右下、左下、右下の順に大きくなる。
オペレーション7−1において、符号化対象画像が、例えば、縦方向に2個分、横方向に2個分、すなわち、4個の符号化対象矩形によって分割される場合に、平面的な位置において、左下の符号化対象矩形を符号化矩形(1、0)、右下の符号化対象矩形を符号化対象矩形(1、1)、左上の符号化対象矩形を符号化矩形(0、0)、右上の符号化対象矩形を符号化対象矩形(0、1)とする(縦方向にk個分、横方向にl個分からなるk×l個の符号化対象矩形によって、すなわち、符号化対象矩形(t、s)(t、sはそれぞれ、k、lまでの正の整数)に分割される。)。
そこで、オペレーション7−1において、小数探索結果保持回路280は、符号化対象矩形(0、0)、(0、1)、(1、0)、(1、1)それぞれについて、1/2又は1/4精度の画素データから形成される小数精度参照画像矩形82、83の内、検索時コストが小さい方から所定数、例えば、5個選択し、動きベクトルとともに記憶する。
符号化対象矩形(1、0)用レジスタ91は符号化対象矩形(1、0)に関して検索時コストが小さい小数精度参照画像矩形82、83の検索時コスト及び動きベクトルを記憶する。符号化対象矩形(0、0)用レジスタ92は符号化対象矩形(0、0)に関して検索時コストが小さい小数精度参照画像矩形82、83の検索時コスト及び動きベクトルを記憶する。符号化対象矩形(0、1)用レジスタ93は符号化対象矩形(0、1)に関して検索時コストが小さい小数精度参照画像矩形82、83の検索時コスト及び動きベクトルを記憶する。符号化対象矩形(1、1)用レジスタ94は符号化対象矩形(1、1)に関して検索時コストが小さい小数精度参照画像矩形82、83の検索時コスト及び動きベクトルを記憶する。
ここで、小数精度参照画像矩形82、83の小数精度の動きベクトルは、小数精度参照画像矩形82、83に関わる整数精度参照画像矩形72の動きベクトルと、整数精度参照画像矩形72からの小数精度参照画像矩形82、83の変位ベクトルの和をとることにより求める。
オペレーション7−2において、最終パーティション/ベクトル決定部290は符号化対象矩形(0、0)、(0、1)、(1、0)、(1、1)それぞれについて、小数精度参照画像矩形82又は83を2つ組み合わせて、小数精度の第1パーティション43、小数精度の第2パーティション44を形成し、また、小数精度参照画像矩形82又は83そのものを小数精度の第3パーティション45とする。そして、小数精度の第1パーティショ43、第2パーティション44、第3パーティション45の検索時コストは、それに含まれる小数精度参照画像矩形82又は83の検索時コストの合算により求める。
次いで、最終パーティション/ベクトル決定部290は小数精度の第1パーティション43同士を組み合わせて、小数精度の第2パーティション44同士を組み合わせて、又は、小数精度の第3パーティション45を組み合わせて、小数精度の分割部分Sを形成する。そして、小数精度の分割部分Sのパーティションコストを、それを構成する第1パーティション43、第2パーティション44、第3パーティション45の合算により求めた検索時コストに各パーティションに対する重みを加算して求める。
次いで、最終パーティション/ベクトル決定部290は小数精度の分割部分Sの内、整数精度の画素データを用いた、仮パーティション(オペレーション3において、第1動き検出回路による動き検索を用いて、仮に決定したパーティション)の組合せからなる分割部分Sの検索時のコストより、検索時のコストが小さくなる小数精度の分割部分Sを検索する。
オペレーション7−3において、最終パーティション/ベクトル決定部290は上記のパーティションコストが小さい小数精度の分割部分Sの内、それを構成する小数精度参照画像矩形82、83の動きベクトルが一致するものを特定し、その分割部分Sを構成するパーティションを最終パーティションとする。次いで、最終パーティションの動きベクトルを、それを構成する小数精度参照画像矩形82、83の動きベクトルと、元になった整数精度参照画像矩形72の動きベクトルとから、その整数精度参照画像矩形72からの仮想上の位置すれを考慮して、計算する。
上記より、実施例1の動き検出回路は、矩形形状において複数種類のパーティションの形状(第1パーティション43、第2パーティション44、第3パーティション45)、又は、すべてのパーティションに内包されうる矩形の内の最大矩形(矩形61)の形状に、符号化対象画像及び参照画像を分割し、分割した符号化対象画像と、分割した参照画像との差分を表す差分情報に基づいて、参照画像内における符号化対象画像の動きを検出する動き検出回路であって、
参照画像中の参照画像データを用いて、パーティションの形状に分割した符号化対象画像とパーティションの形状に分割した参照画像(分割部分Pn)との差分を表す第1差分情報(検索時のコストPCn)を求める第1動き検出回路(第1動き検出回路250)と、
第1差分情報の情報量が最小となる、パーティションの形状に分割した符号化対象画像とパーティションの形状に分割した参照画像について、パーティションの形状に分割した符号化対象画像の原画像中の位置、及び、パーティションの形状に分割した参照画像の参照画像中の位置とに応じた第1動きベクトル(整数精度ベクトル54)を抽出する第1パーティション/ベクトル抽出回路(仮パーティション/ベクトル決定部260)と、
第1差分情報の情報量が最小となるパーティションの形状に分割した参照画像を、最大矩形と同じ形状に分割して得られた画像(参照矩形領域72)内の各参照画像データ(整数精度の画素データ75)に対して、参照画像データから内挿法により求めた複数種類の仮想画素データ(1/2精度の画素データ76、1/4精度の画素データ77)を求めるフィルタ回路(1/2画素フィルタ220、1/4画素フィルタ240)と、
仮想画素データを用いて、各種類の仮想画素データよりなる画像(小数精度参照矩形82,83)を構成し、仮想画素データよりなる画像と、最大矩形と同じ形状に分割された符号化対象画像との第2差分情報(小数精度参照画像矩形82、83の「検索時のコスト」)を検出する第2動き検出回路(第2動き検出回路270)と、
第2差分情報に基づいて求められる、符号化対象画像と、仮想画素データよりなる画像の合体による得られる画像(小数精度の第1パーティション43、小数精度の第2パーティション44、小数精度の第3パーティション45)との第3差分情報(小数精度の第1パーティショ43、第2パーティション44、第3パーティション45の検索時コスト)であって、第1差分情報より小さい第3差分情報を検出し、
符号化対象画像と、第3差分情報を有する仮想画素データよりなる画像の合体により得られる画像との間の第2動きベクトル(最終パーティションの動きベクトル)を、第1動きベクトル及び仮想画像データの種類に応じて決定する第2ベクトル/パーティション抽出回路(最終パーティション/ベクトル決定部290)と、
を備えることを特徴とする動き検出回路。
上記の動き検出回路においては、1/2精度の画素データを作成するにあたり、参照画像の整数精度のすべての画像データを、同時に使用して1/2精度の画素データを形成するのではなく、参照矩形領域72に対する拡張矩形領域73内の整数精度の画像データのみを使用して、1/2精度の画素データを形成する。そうすると、限られた時間内で演算を行う必要があるため、内挿法の計算を並列して行う場合に、1/2画素フィルタ220における必要な演算回路の数を少なくすることができる。また、使用する画像データが拡張矩形領域73内の整数精度の画像データのみとなるため、小数探索範囲メモリ230のメモリ領域を小さくすることができる。
同様に、1/4画素精度の画素データを形成するにあたり、扱う画素データが拡張矩形領域73内の整数位置の画像データと、その画像データから形成された1/2精度の画像データのみでよいため、並列演算に必要な演算回路を少なくすることができる。
実施例1の動き検出回路は、さらに、最大矩形と同じ形状に分割された符号化対象画像それぞれについて、第2差分情報の内、情報量が小さいほうから所定数の第2差分情報を記憶し、最大矩形と同じ形状に分割された符号化対象画像と、記憶された第2差分情報を備える仮想画素データよりなる画像との第3動きベクトルを記憶する小数探索結果保持回路(小数探索結果保持回路280)を備え、
第2ベクトル/パーティション抽出回路において、仮想画素データよりなる画像の合体に用いられる、仮想画素データよりなる画像は小数探索結果保持回路に記憶された第2差分情報を備えることを特徴とする動き検出回路である。
上記の動き検出回路においては、第2差分情報の一部を記憶する小数探索結果保持回路を有する。従って、第2差分情報に基づいて求められる、符号化対象画像と、仮想画素データよりなる画像の合体による得られる画像(小数精度の第1パーティション43、小数精度の第2パーティション44、小数精度の第3パーティション45)との第3差分情報(小数精度の第1パーティショ43、第2パーティション44、第3パーティション45の検索時コスト)であって、第1差分情報より小さい第3差分情報を検出するときに、小数探索結果保持回路中に保持された第2差分情報のみを扱うことになるため、第2差分情報の数が限定される。そうすると、第3差分情報の検出を行う第2ベクトル/パーティション抽出回路の演算回路の規模を少なくすることができる。また、第2差分情報を記憶する記憶回路を少なくすることができる。
図10は実施例2の動き検出回路の動作に含まれるオペレーション7を説明するフローチャート100を示す図である。
実施例2の動き検出回路30は整数探索配意メモリ210、1/2画素生成フィルタ220、小数探索範囲メモリ230、1/4画素生成フィルタ240、第1動き検出回路250、仮パーティション/ベクトル決定部260、第2動き検出回路270、小数探索結果保持回路380、最終パーティション/ベクトル決定部390、及び、カレントMBメモリ295を備える。
整数探索配意メモリ210、1/2画素生成フィルタ220、小数探索範囲メモリ230、1/4画素生成フィルタ240、第1動き検出回路250、仮パーティション/ベクトル決定部260、第2動き検出回路270、及び、カレントMBメモリ295は実施例1の動き検出回路20におけるものと同じ回路であるため、説明を省略する。
また、実施例2の動き検出回路30が行う動き検出方法は図3のフローチャート30に示された動き検出方法と同じ方法である。
ただし、フローチャート30中のオペレーション7の詳細については小数探索結果保持回路380、最終パーティション/ベクトル決定部390により行われるため、実施例1の動き検出回路20が行う動き検出方法におけるオペレーション7とは異なる。
小数探索結果保持回路380は第2動き検出回路270からの差分情報の形式に変更を加えて、その結果を保持する回路である。
最終パーティション/ベクトル決定部390は、小数探索結果保持回路380が保持する結果に基づいて、1/4精度、又は、1/2精度の画像データから構成されている参照画像のパーティションすべてについての差分情報を求め、さらに、1/4精度、又は、1/2精度の画像データから構成されている参照画像の分割部分の差分情報を求め、もっとも符号化対象画像との差分情報が少ない分割部分を決定し、その動きベクトル(小数精度の動きベクトル)及び差分情報の抽出に用いたパーティションを決定する回路である。
実施例2のオペレーション7においては、図3を参照し、小数探索結果保持回路380及び最終パーティション/ベクトル決定部390は、各パーティション相当の各符号化対象画像に対して、パーティションコストが最小となるパーティション相当の小数精度参照画像の特定、及び、ベクトルの計算を行う。
図10は、パーティションコストが最小となるパーティション相当の小数精度参照画像の特定、及び、ベクトルの計算を行うことを示すフローチャート100、参照画像矩形(0、0)用レジスタ101、参照画像矩形(1、0)用レジスタ102、参照画像矩形(0、1)用レジスタ103、参照画像矩形(1、1)用レジスタ104、第1パーティション用レジスタ105、第2パーティション用レジスタ106、第3パーティション用レジスタ107、第4パーティション用レジスタ108、第1パーティションのベクトル用レジスタ109、第2パーティションのベクトル用レジスタ110、第3パーティションのベクトル用レジスタ111、第4パーティションのベクトル用レジスタ112、及び、最小コストパーティション用レジスタ113を示す。
小数探索結果保持回路380は、小数精度の参照画像矩形(0、0)用レジスタ101、小数精度の参照画像矩形(1、0)用レジスタ102、小数精度の参照画像矩形(0、1)用レジスタ103、及び、小数精度の参照画像矩形(1、1)用レジスタ104等、複数個の参照画像矩形用レジスタを備える。
また、最終パーティション/ベクトル決定部390は複数個の第1パーティション用レジスタ105、複数個の第2パーティション用レジスタ106、複数個の第3パーティション用レジスタ107、複数個の第4パーティション用レジスタ108、複数個の第1パーティションのベクトル用レジスタ109、複数個の第2パーティションのベクトル用レジスタ110、複数個の第3パーティションのベクトル用レジスタ111、複数個の第4パーティションのベクトル用レジスタ112、及び、最小コストパーティション用レジスタ113を備える。
以下、図10を用いて、パーティションコストが最小となるパーティション相当の小数精度参照画像の特定、及び、ベクトルの計算について説明する。
実施例2のオペレーション7−11において、小数探索結果保持回路380は矩形と同じ形状に符号化対象画像を分割して得た符号化対象矩形それぞれと、矩形と同じ形状に参照画像を分割して得た参照画像矩形72それぞれとの検索時のコストを第2動き検出回路270から受け取る。次いで、小数探索結果保持回路380は小数精度参照矩形82、83それぞれとの検索時のコストを受け取る。
次いで、小数探索結果保持回路380は小数精度参照矩形82、83それぞれの検索時のコストと参照画像矩形72の検索時のコストとを比較し、参照画像矩形72の検索時のコストより、小数精度参照矩形82、83の検索時のコストが小さい場合に、その小数精度参照矩形82、83に、“1”の論理を有する1bitのflagをたて、参照画像矩形(0、0)用レジスタ101、参照画像矩形(1、0)用レジスタ102、参照画像矩形(0、1)用レジスタ103、及び、参照画像矩形(1、1)用レジスタ104等、参照画像矩形用レジスタに記憶する。一方、参照画像矩形72の検索時のコストより、小数精度参照矩形82、83の検索時のコストが大きい場合には、その小数精度参照矩形82、83に、“0”の論理を有する1bitのflagをたてる。
なお、参照画像矩形(0、0)用レジスタ101、参照画像矩形(1、0)用レジスタ102、参照画像矩形(0、1)用レジスタ103、及び、参照画像矩形(1、1)用レジスタ104等は、元になった整数精度の参照矩形72に対する、小数精度参照矩形82、83それぞれに対応して複数個存在する。(0、0)、(1、0)等のサフィックスは元になった整数精度の参照矩形72の原点の参照画像における位置を表す。
オペレーション7−12において、最終パーティション/ベクトル決定部390は、小数精度参照画像矩形82又は83を2つ組み合わせて(合体させて)、小数精度の第1パーティション43、小数精度の第2パーティション44を形成し、また、小数精度参照画像矩形82又は83そのものを小数精度の第3パーティション45とする。そして、小数精度の第1パーティショ43、第2パーティション44の1bitのflagを、それに含まれる小数精度参照画像矩形82又は83の1bitのflagのアンド(AND)により求める。その結果を複数個の第1パーティション用レジスタ105、複数個の第2パーティション用レジスタ106、複数個の第3パーティション用レジスタ107、複数個の第4パーティション用レジスタ108に記憶する。
次いで、最終パーティション/ベクトル決定部390は、各パーティションについて動きベクトルを、その参照画像中の位置に応じて求め、第1パーティションのベクトル用レジスタ109、第2パーティションのベクトル用レジスタ110、第3パーティションのベクトル用レジスタ111、第4パーティションのベクトル用レジスタ112に記憶する。
オペレーション7−13において、最終パーティション/ベクトル決定部390は、1bitのflagが“1”となっている、小数精度の第1パーティション43同士を組み合わせて、小数精度の第2パーティション44同士を組み合わせて、又は、小数精度の第3パーティション45を組み合わせて、小数精度の分割部分Sを形成する。そして、小数精度の分割部分Sの1bitのflagは、それを構成するパーティションの1bitのflagのANDをとって形成する。
次いで、最終パーティション/ベクトル決定部390は、パーティションそれぞれについて、論理“1”の1bitのflagが立っている小数精度の分割部分S内から一つを選択する。ここで、論理“1”の1bitのflagが立っている小数精度の分割部分Sが複数個ある場合は、それらの小数精度の分割部分Sの内、小数精度の分割部分Sの動きベクトルが予測ベクトルに近いものが選ばれるように、小数精度の分割部分Sを形成するパーティションの動きベクトルを考慮して、パーティションそれぞれについて、一つの小数精度の分割部分Sを選択する。
なお、「予測ベクトル」とは、h.264規格に定められる予測ベクトルをいい、その中の一つの例では、予測対象の画像領域に対する予測ベクトルは、周辺の画像領域の動きベクトルの中央値をとって求められる。(参考文献1:情報源符号化部 「H.264/MPEG−4 AVC 規格の概要」:社団法人 電波産業会 P9、参考文献2:社団法人 電子情報通信学会、信学技報「H26Lに向けたコンテクストに基づく動きベクトル適応的符号化方式」 P2)
動きベクトルを符号化するときに、予測ベクトルに近い動きベクトルを符号化すると、一般的に、符号長が短くなる。そこで、「予測ベクトルに近いもの」とは、符号化した時に符号長が最小の動きベクトルをいうが、例えば、予測対象画像に対する予測ベクトルと、予測対象画像の動きベクトルの差分が小さいものをいう。
オペレーション7−14において、最終パーティション/ベクトル決定部390は上記の選択された小数精度の分割部分Sの内、パーティションコストの合算が最小の分割部分を選択し、その分割部分Sを構成するパーティションを最終パーティションとする。次いで、最終パーティションの動きベクトルを、それを構成する小数精度参照画像矩形82、83の動きベクトルと、元になった整数精度参照画像矩形72の動きベクトルとから、その整数精度参照画像矩形72からの仮想上の位置ずれを考慮して、計算する。次いで、最小コストパーティション用レジスタ113に結果を記憶させる。
上記より、実施例2の動き検出回路は、矩形形状において複数種類のパーティションの形状、又は、すべてのパーティションに内包されうる矩形の内の最大矩形の形状に、符号化対象画像及び参照画像を分割し、分割した符号化対象画像と、分割した参照画像との差分を表す差分情報に基づいて、参照画像内における符号化対象画像の動きを検出する動き検出回路であって、
参照画像中の参照画像データを用いて、パーティションの形状に分割した符号化対象画像とパーティションの形状に分割した参照画像との差分を表す第1差分情報を求める第1動き検出回路と、
第1差分情報の情報量が最小となる、パーティションの形状に分割した符号化対象画像とパーティションの形状に分割した参照画像について、パーティションの形状に分割した符号化対象画像の原画像中の位置、及び、パーティションの形状に分割した参照画像の参照画像中の位置とに応じた第1動きベクトルを抽出する第1パーティション/ベクトル抽出回路と、
第1差分情報の情報量が最小となるパーティションの形状に分割した参照画像を、最大矩形と同じ形状に分割して得られた画像内の各参照画像データに対して、参照画像データから内挿法により求めた複数種類の仮想画素データを求めるフィルタ回路と、
仮想画素データを用いて、各種類の仮想画素データよりなる画像を構成し、仮想画素データよりなる画像と、最大矩形と同じ形状に分割された符号化対象画像との第2差分情報を検出する第2動き検出回路と、
第2差分情報に基づいて求められる、符号化対象画像と、仮想画素データよりなる画像の合体による得られる画像との第3差分情報であって、第1差分情報より小さい第3差分情報を検出し、
符号化対象画像と、第3差分情報を有する仮想画素データよりなる画像の合体による得られる画像との間の第2動きベクトルを、第1動きベクトル及び仮想画像データの種類に応じて決定する第2パーティション/ベクトル抽出回路(最終パーティション/ベクトル決定部390)と、
を備えることを特徴とする動き検出回路。
上記は、実施例1の動き検出回路と同様な構成をしているため、実施例1の動き検出回路と同様な効果を生じる。
実施例2の動き検出回路は、さらに、参照画像データを用いて求めた、最大矩形と同じ形状に分割された符号化対象画像と、最大矩形と同じ形状に分割された参照画像との差分情報よりも、第2差分情報が小さい場合に、仮想画素データよりなる画像に対して1bitのflagをたて、各仮想画素データよりなる画像に対する1bitのflagを記憶する小数探索結果保持回路を備え、
第2パーティション/ベクトル抽出回路において、仮想画素データよりなる画像の合体が行われる時に、仮想画素データよりなる画像に対する1bitのflag同士の論理和を行って第3差分情報とし、1bitのflag同士の論理和が“1”であった時に、第3差分情報は第1差分情報より小さいと判断することを特徴とする動き検出回路。
上記の動き検出回路は、予め、第2差分情報と最大矩形と同じ形状に分割された参照画像との差分情報との比較を行い、その結果を1bitのflagにより表し、1bitのflagを記憶する小数探索結果保持回路をさらに有するため、第2差分情報の情報量のすべてを記憶しない。従って、第2差分情報に基づいて求められる、符号化対象画像と、仮想画素データよりなる画像の合体による得られる画像(小数精度の第1パーティション43、小数精度の第2パーティション44、小数精度の第3パーティション45)との第3差分情報(小数精度の第1パーティショ43、第2パーティション44、第3パーティション45の検索時コスト)であって、第1差分情報より小さい第3差分情報を検出するときに、小数探索結果保持回路中に保持された第2差分情報のみを扱うことになるため、第2差分情報の情報量が限定される。そうすると、第3差分情報の検出を行う第2ベクトル/パーティション抽出回路の演算回路の規模を少なくすることができる。また、第2差分情報を記憶する記憶回路を少なくすることができる。
本発明によれば、回路規模の削減が可能な回路構成を有する動き検出回路と、それを含む動画符号化装置を提供することができる。
10 動画符号化装置
11 直交変換回路
12 量子化回路
13 可変長符号化回路
14 逆量子化回路
15 逆直交変換回路
16 参照画像メモリ
17 動き補償回路
18 減算回路
19 加算回路
20、30 動き検出回路
40 原画像メモリ
43 第1パーティション
44 第2パーティション
45 第3パーティション
52 参照画像
53 予測画像
72 参照画像矩形
73 拡張矩形領域
82、83 小数精度参照画像矩形
210 整数探索範囲メモリ
220 1/2画素フィルタ回路
230 小数探索範囲メモリ
240 1/4画素フィルタ回路
250 第1動き検出回路
260 仮パーティション/ベクトル決定部
270 第2動き検出回路
280、380 小数探索結果保持回路
290、390 最終パーティション/ベクトル決定部
295 カレントMBメモリ

Claims (4)

  1. 矩形形状において複数種類のパーティションの形状、又は、すべてのパーティションに内包されうる矩形の内の最大矩形の形状に、符号化対象画像及び参照画像を分割し、分割した前記符号化対象画像と、分割した前記参照画像との差分を表す差分情報に基づいて、参照画像内における符号化対象画像の動きを検出する動き検出回路であって、
    前記参照画像中の参照画像データを用いて、前記パーティションの形状に前記符号化対象画像を分割して得た第1画像と前記パーティションの形状に前記参照画像を分割して得た第2画像との差分を表す第1差分情報を求める第1動き検出回路と、
    前記第1画像との前記第1差分情報の情報量が最小となる前記第2画像について、前記第1画像の原画像中の位置、及び、前記第2画像の前記参照画像中の位置とに応じた第1動きベクトルを抽出する第1パーティション/ベクトル抽出回路と、
    第1差分情報の情報量が最小となる前記第2画像を、前記最大矩形と同じ形状に分割して得られた画像内の各前記参照画像データに対して、前記参照画像データから内挿法により求めた複数種類の仮想画素データを求めるフィルタ回路と、
    前記仮想画素データを用いて、各種類の前記仮想画素データよりなる第3画像を構成し、前記第3画像と、前記最大矩形と同じ形状に分割された前記符号化対象画像との第2差分情報を検出する第2動き検出回路と、
    前記第2差分情報に基づいて求められる、前記符号化対象画像と、前記第3画像の合体による得られる画像との第3差分情報であって、前記第1差分情報より小さい前記第3差分情報を検出し、
    前記符号化対象画像と、前記第3差分情報を有する前記第3画像の合体により得られる画像との間の第2動きベクトルを、前記第1動きベクトル及び前記仮想画像データの種類に応じて決定する第2パーティション/ベクトル抽出回路と、
    を備えることを特徴とする動き検出回路。
  2. 前記最大矩形と同じ形状に分割された前記符号化対象画像それぞれについて、前記第2差分情報の内、情報量が小さいほうから所定数の前記第2差分情報を記憶する小数探索結果保持回路を備え、
    前記第2パーティション/ベクトル抽出回路において、前記第3画像の合体に用いられる、前記第3画像は小数探索結果保持回路に記憶された前記第2差分情報を備えることを特徴とする請求項1記載の動き検出回路。
  3. 前記参照画像データを用いて求めた、前記最大矩形と同じ形状に分割された前記符号化対象画像と、前記最大矩形と同じ形状に分割された前記参照画像との差分情報よりも、前記第2差分情報が小さい場合に、前記第3画像に対して1bitのflagをたて、各前記第3画像に対する1bitのflagを記憶する小数探索結果保持回路を備え、
    前記第2パーティション/ベクトル抽出回路において、前記第3画像の合体が行われる時に、前記第3画像に対する1bitのflag同士の論理和を行って前記3差分情報とし、1bitのflag同士の論理和が“1”であった時に、前記第3差分情報は第1差分情報より小さいと判断することを特徴とする請求項1記載の動き検出回路。
  4. 予測画像と原画像中の符号化対象画像の差分情報を抽出する減算回路と、
    前記差分情報を有する第1差分情報信号を変換係数とコサイン関数との積からなる項、複数の和として表し、前記コサイン関数の変換係数の情報を有する第1変換係数信号を出力する直交変換回路と、
    前記第1変換係数信号を受け、前記コサイン関数の変換係数を離散的なものとする量子化処理をおこない、量子化された変換係数の情報を有する第1信号を出力する量子化回路と、
    前記第1信号を受け、前記量子化された変換係数を可変長符号に変換し、前記可変長符号の情報を有する信号を出力する可変長符号化回路と、
    前記可変長符号の情報を有する信号を受け、前記量子化された変換係数を再現し、逆変換により前記コサイン関数の変換係数を再現し、前記変換係数の情報を有する第1変換係数信号を出力する逆量子化回路と、
    前記第1変換係数信号を受け、逆変換により前記第1差分情報を再現し、出力する逆直交変換回路と、
    第1差分情報信号を受け、参照画像に前記第1差分情報に応じて前記参照画像を更新する加算回路と、
    更新後の前記参照画像を記憶する参照画像メモリと、
    前記参照画像内において、原画像中の符号化対象画像の動きを検出する請求項1乃至請求項3の内の一つに記載された動き検出回路と、
    前記参照画像を、前記第1差分情報に応じて、前記符号化対象画像の動きを加えて前記予測画像を形成する動き補償回路と、
    を備える動画像符号化装置。
JP2009032735A 2009-02-16 2009-02-16 動き検出回路及びその動き検出回路を含む動画像符号化装置 Expired - Fee Related JP5200981B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009032735A JP5200981B2 (ja) 2009-02-16 2009-02-16 動き検出回路及びその動き検出回路を含む動画像符号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009032735A JP5200981B2 (ja) 2009-02-16 2009-02-16 動き検出回路及びその動き検出回路を含む動画像符号化装置

Publications (2)

Publication Number Publication Date
JP2010192984A true JP2010192984A (ja) 2010-09-02
JP5200981B2 JP5200981B2 (ja) 2013-06-05

Family

ID=42818592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009032735A Expired - Fee Related JP5200981B2 (ja) 2009-02-16 2009-02-16 動き検出回路及びその動き検出回路を含む動画像符号化装置

Country Status (1)

Country Link
JP (1) JP5200981B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012029350A1 (ja) 2010-08-30 2012-03-08 富士フイルム株式会社 ドレナージチューブ及びドレナージチューブ付内視鏡

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007096804A (ja) * 2005-09-29 2007-04-12 Megachips Lsi Solutions Inc 動き探索方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007096804A (ja) * 2005-09-29 2007-04-12 Megachips Lsi Solutions Inc 動き探索方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012029350A1 (ja) 2010-08-30 2012-03-08 富士フイルム株式会社 ドレナージチューブ及びドレナージチューブ付内視鏡

Also Published As

Publication number Publication date
JP5200981B2 (ja) 2013-06-05

Similar Documents

Publication Publication Date Title
US7720153B2 (en) Video encoding apparatus, video encoding method, video encoding program, video decoding apparatus, video decoding method and video decoding program
RU2612611C2 (ru) Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
RU2721004C1 (ru) Способ и устройство для компенсации движения с предсказанием
KR101429407B1 (ko) 동화상 부호화 장치, 동화상 부호화 방법 및 컴퓨터 판독가능한 기록 매체
JP2022044612A (ja) 画像予測方法および関連装置
CN101682775B (zh) 运动矢量搜索方法和装置
WO2010064396A1 (ja) 動画像復号化方法および動画像符号化方法
KR101665921B1 (ko) 이미지 부호화 방법, 이미지 복호화 방법, 이미지 부호화 장치 및 이미지 복호화 장치
KR20190117708A (ko) 부호화유닛 심도 확정 방법 및 장치
JP2002532026A (ja) 動き推定とブロックマッチング・パターンの改良
JP6962193B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
CN108924551B (zh) 视频图像编码模式的预测方法及相关设备
KR100431013B1 (ko) 화상 부호화 시스템
JP5200981B2 (ja) 動き検出回路及びその動き検出回路を含む動画像符号化装置
JP7027044B2 (ja) 画像符号化装置、画像符号化方法及びプログラム
JP6004852B2 (ja) ピクセルブロックを符号化及び再構成する方法と装置
JP2005253015A (ja) 動きベクトル検出装置、動きベクトル検出方法、及びプログラム
JP4385875B2 (ja) 動きベクトル検出装置、および、プログラム
JP4385869B2 (ja) 動きベクトル検出装置、動画符号化装置、および、プログラム
KR100262962B1 (ko) 움직임 추정방법 및 장치
JP2009033266A (ja) 動きベクトル探索方法、動きベクトル探索装置、符号化装置及びコンピュータプログラム
JP2006191175A (ja) 画像符号化装置及び方法
JP2000004441A (ja) 動き検出方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120820

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130128

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees