JP2010278519A - 動きベクトル検出装置 - Google Patents

動きベクトル検出装置 Download PDF

Info

Publication number
JP2010278519A
JP2010278519A JP2009126412A JP2009126412A JP2010278519A JP 2010278519 A JP2010278519 A JP 2010278519A JP 2009126412 A JP2009126412 A JP 2009126412A JP 2009126412 A JP2009126412 A JP 2009126412A JP 2010278519 A JP2010278519 A JP 2010278519A
Authority
JP
Japan
Prior art keywords
block
activity
motion vector
blocks
activity detection
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.)
Pending
Application number
JP2009126412A
Other languages
English (en)
Inventor
Kazuhiro Wake
一博 和気
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009126412A priority Critical patent/JP2010278519A/ja
Publication of JP2010278519A publication Critical patent/JP2010278519A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】動きベクトル検出の演算量を低減することができる動きベクトル検出装置を提供することを目的とする。
【解決手段】M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定部107と、ブロック分割決定部107で分割された各サブブロックの動きベクトルを検出する動きベクトル検出部106とを含み、前記ブロック分割決定部107は、前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様を決定する。
【選択図】図1

Description

本発明は、画像を複数のブロックに分割し、分割したブロック毎に動きベクトルを検出する動きベクトル検出装置に関する。
近年、AV情報のデジタル化が進み、映像信号をデジタル化して取り扱うことのできる機器が広く普及しつつある。映像信号は膨大な情報量を有する。そこで、記録容量や伝送効率を考慮して、情報量を削減しつつ符号化することが一般的である。映像信号の符号化技術として、H.264という国際規格が定められている。H.264規格は、他の既存の符号化技術に比べ約2倍の圧縮効率をもたらす。従って、H.264規格は、レコーダ記録、インターネットストリーミング等に非常に適した符号化方式である。
H.264では、フレーム間の要素の動きを認識して圧縮率を向上させる動き補償が導入されている。動き補償は、動き予測処理の結果に基づいて決定された動きベクトルに基いて行われる。H.264における動き補償(動きベクトルの決定等)は、16×16画素のマクロブロックに対してだけでなく、このマクロブロックをさらに分割した8×16、8×8、8×4、4×8、4×4画素の合計7種類のブロックに対して行うことができる。これは、マクロブロックよりも小さな物体の動きを良好に検出し、符号化効率を上げるためである。
図12は、H.264における動き補償のブロックサイズについて示したものであり、縦16画素×横16画素の大きさを有するマクロブロックをどのように分割するかを示す。分割方法として、まず16×16画素のブロックに対して4通りあり、各々のブロック分割タイプを図12(a)〜(d)に示す。
図12(a)は、マクロブロックを分割せずに動き補償を行う場合を示し、図12(b)はマクロブロックを縦16画素×横8画素の2つのブロックに分割して動き補償を行う場合を示し、図12(c)はマクロブロックを縦8画素×横16画素の2つのブロックに分割して動き補償を行う場合を示し、図12(d)はマクロブロックを縦8画素×横8画素の4つのブロックに分割して動き補償を行う場合を示す。
さらに、図12(d)に示す分割タイプ4の分割方法を選択する場合には、縦8画素×横8画素の4つのサブブロックのそれぞれに対して、図12(e)〜(h)にそれぞれ示す、縦8画素×横8画素の4ブロックを分割する方法から選択できる。
上述のように、H.264では、動き補償のブロックサイズとして異なる複数のブロックサイズを選択することで符号化効率を上げることができる。しかしながら、マクロブロックの分割タイプとしてどの分割タイプが動き補償として最適であるか決定するには、すべての分割タイプにおける動きベクトルを求め、その動きベクトルにおける予測誤差などから最適な分割タイプを判定する必要がある。それゆえ、動きベクトル探索に膨大な演算量が必要で、符号化処理の速度向上が困難であった。
このため、非特許文献1に開示されているように、H.264においては、上述の複数分割タイプの動きベクトル検索に要する演算量の低減が図られている。例えば、先ず、より小さなブロックサイズの動きベクトルを求め、この動きベクトルの方向と大きさから、より大きなブロックサイズの動きベクトルを推定することで、動き検索するブロックサイズの数を減らし演算量を低減する。例えば、図13(a)に示すように、ブロックを4分割したサブブロックのそれぞれの動きベクトルが非常に近い場合、それはブロック全体の動きベクトルに近似していると推定される。それゆえ、サブブロックで構成されるブロック全体を動き補償すべきブロックサイズとして動き検索する。逆に、図13(b)に示すように、4つのサブブロックの動きベクトルにばらつきがある場合、それはブロック全体として一つの動きベクトルを指していない。それゆえ、4つのサブブロックを動き補償すべきブロックサイズとして、そのまま4つのサブブロックの動きベクトルを使用する。
また、特許文献1には、動きベクトル検出済みの周辺ブロックのブロック分割から、対象マクロブロックのブロック分割を推定し、この分割したブロックについて動きベクトルを検出する方法が開示されている。この方法によれば、動きベクトルを検出すべきブロックが予め絞り込まれるので、動きベクトル検出に要する演算量を低減することができる。
清水智行、米山暁夫、柳原広昌、中島康弘:「H.264符号化処理における動き予測の高速化に関する一検討」情報処理学会研究報告(IPSJ SIG Technical Report)1003/10/3 pp.23−28」
特開2006−74520
しかしながら、前記非特許文献1に記載の手法では、より小さなブロックの動きベクトルをも求めなければならない。しかも、より小さなブロックサイズは分割されたブロック数が多いので、動きベクトル検出の演算量も多くなり、大幅な低減には至らない。
また、特許文献1に記載の手法では、動きベクトル検出に要する演算量を低減することが可能であるものの、対象マクロブロックの特徴に関係なく周辺ブロックの分割情報を基に分割するため、ブロック分割の精度が低い。
本発明は、以上のような問題点に鑑みてなされたもので、ブロック分割の精度を向上させつつ、動きベクトル検出の演算量を低減することができる動きベクトル検出装置を提供することを課題とする。
前記従来の課題を解決するために、本発明の動きベクトル検出装置は、動きベクトル検出装置であって、M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定部と、ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出部とを含み、前記ブロック分割決定部は、前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様を決定する、ことを特徴とする。
また、本発明の動きベクトル検出プログラムは、コンピュータを、M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定手段と、ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出手段として機能させ、前記ブロック分割決定手段は、前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様の決定をする、ことを特徴とする。
本発明によれば、動きベクトル検出を行う前に、M×N画素からなる対象ブロックをサブブロックへ分割する態様を決定し、この決定された分割態様にしたがって、対象となるサブブロックの動きベクトルを検出する。したがって、動きベクトル検出を行うべきサブブロック数が減少し、動きベクトル検出に関する演算量を大幅に削減することができる。
加えて、ブロック分割の態様を決定する際、対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいてブロック分割態様を決定する。したがって、対象ブロックの特徴に応じたブロック分割が可能となり、ブロック分割の精度を向上させることができる。
なお、対象ブロックの分割態様の決定に要する演算量は、従来方式における動きベクトル検出に要する演算量と、本発明における動きベクトル検出に要する演算量との差分よりも遥かに少なく、無視し得る量である。
本実施の形態に係る動きベクトル検出装置が組み込まれた動画像圧縮符号化装置の構成を示すブロック図 入力画像全体、及び縦16×横16画素から構成される動きベクトル検出対象マクロブロックについての説明図 動きベクトル検出対象マクロブロックのアクティビティ検出の説明図 第一ブロックB1(分割対象マクロブロック)をブロック分割する手順についての説明図。(a)分割前の第一ブロックB1についての説明図、(b)第一ブロックB1に対するアクティビティ検出ブロックA0とアクティビティ検出ブロックA1についての説明図、(c)第一ブロックB1に対するアクティビティ検出ブロックA2とアクティビティ検出ブロックA3についての説明図、(d)第一ブロックB1に対する分割結果についての説明図 第二ブロックB20をブロック分割する手順についての説明図。(a)第二ブロックB20に対するアクティビティ検出ブロックA0とアクティビティ検出ブロックA1についての説明図、(b)第二ブロックB20に対するアクティビティ検出ブロックA2とアクティビティ検出ブロックA3についての説明図、(c)第二ブロックB20に対する分割についての説明図 第二ブロックB21をブロック分割する手順についての説明図。(a)第二ブロックB21に対するアクティビティ検出ブロックA0とアクティビティ検出ブロックA1についての説明図、(b)第二ブロックB21に対するアクティビティ検出ブロックA2とアクティビティ検出ブロックA3についての説明図、(c)第二ブロックB21に対する分割についての説明図 第二ブロックB22をブロック分割する手順についての説明図。(a)第二ブロックB22に対するアクティビティ検出ブロックA0とアクティビティ検出ブロックA1についての説明図、(b)第二ブロックB22に対するアクティビティ検出ブロックA2とアクティビティ検出ブロックA3についての説明図、(c)第二ブロックB22に対する分割についての説明図 第二ブロックB23をブロック分割する手順についての説明図。(a)第二ブロックB23に対するアクティビティ検出ブロックA0とアクティビティ検出ブロックA1についての説明図、(b)第二ブロックB23に対するアクティビティ検出ブロックA2とアクティビティ検出ブロックA3についての説明図、(c)第二ブロックB23に対する分割についての説明図 本実施の形態における動きベクトル検出のフローチャート 従来方式における動きベクトル検出のフローチャート 従来方式と、本発明の実施の形態1における動きベクトル演算回数の比較表 H.264における動き補償のブロックサイズについての説明図 対象ブロックが複数のブロックサイズで動き予測できる場合に、より小さなブロックサイズの動きベクトルからより大きなブロックサイズの動きベクトルを推定する方式についての説明図
以下、添付の図面を参照して実施の形態を説明する。
1.構成
図1は、動きベクトル検出装置を含む動画像圧縮符号化装置全体の構成を概念的に示す。
この動画像圧縮符号化装置は、入力部100、差分演算部101、変換部102、量子化部103、エントロピー符号化部104、出力部105、ローカルデコーダ110、及び動きベクトル検出部106を備える。
入力部100より入力された画像データ120は、複数の小さなブロック群に分割される。これらのブロックは、マクロブロックと呼ばれ、各マクロブロックは16×16の画素サイズにより構成される。また、ピクチャは、複数のスライスに分割される。各スライスは、複数のマクロブロックより構成される。そして、差分演算部101以降、マクロブロック単位で処理が行われる。
ここで、ピクチャには、Iピクチャ、Pピクチャ、Bピクチャの3種類が存在する。Iピクチャは、映像の画像データを符号化する際、画像中の空間的な冗長性を減少させたピクチャである。Pピクチャ及びBピクチャは、連続するピクチャ間に存在する時間的な冗長性を利用して動き予測及び動き補償に基づく予測符号化を行うピクチャであり、Iピクチャよりも効率的な圧縮が可能である。なお、Pピクチャは前方予測(時間的に過去の画像)のみ参照可能であり、Bピクチャは前方予測に加え、後方予測(時間的に未来の画像)も参照可能である。
差分演算部101は、入力画像120と動き補償画像121との差分データを演算する。
変換部102は、画像データを周波数領域に直交変換し、直交変換係数を求める。変換方式としては、2次元DCT(離散コサイン変換)が用いられる。
量子化部103は、変換部102で得られた直交変換係数を量子化する。
エントロピー符号化部104は、量子化された直交変換係数をエントロピー符号化する。
出力部105は、可変ビットレートの圧縮画像データを伝送レートにあわせて伝送路に供給する。
ローカルデコーダ110は、逆量子化部111と、逆変換部112と、加算演算部113と、バッファ114と、動き補償部115とを含み、符号化手順を逆に行う。
具体的には、逆量子化部111は、量子化部103で量子化された直交変換係数を逆量子化する。
逆変換部112は、逆量子化部111で逆量子化された直交変換係数を逆直交変換して差分データに復号化する。
加算演算部113は、逆変換部112で復号化された差分データに、バッファ114と動き補償部115とで生成された動き補償画像を加算することにより、復号側で得られるものと同様の画像データを生成する。
バッファ114は、加算演算部113で生成された画像データを一時蓄積する。
動き補償部115は、バッファ114に蓄積されている画像データを読み出し、この画像データと、動きベクトル検出部106で検出された動きベクトルとに基づいて、動き補償画像を生成する。なお、対象となる画像(画像データ120に相当)の動き補償画像は、対象となる画像と、復号化した画像(バッファ114に蓄積された画像)とに基づいて生成される。
動きベクトル検出部106は、入力された画像データ120と、ローカルデコーダのバッファ114から入力された画像データとの間の画素の変位を示す2次元動きベクトルを検出する。なお、H.264における動き補償(動きベクトルの決定等)は、前述したように、16×16画素のマクロブロックに対してだけでなく、このマクロブロックを分割した8×16、8×8、8×4、4×8、4×4画素の合計7種類のブロックに対して行うことができる。
動きベクトルの検出(算出)についてさらに詳しく説明する。まず、動きベクトル検出の対象ブロックに対して、参照画像の一定の範囲内における任意ブロックとの間でブロックマッチングを行い、ブロック間の差分絶対値和を求める。次に、この差分絶対値和が最小となった参照ブロック、すなわち最も相関が高いブロックが、対象ブロックから2次元(水平、垂直)的に何画素シフトしたかを求め、これを動きベクトルとして利用する。なお、動きベクトル算出の評価値としては、上記差分絶対値和以外に、差分二乗平方和を用いてもよいし、ブロック間差分データをアダマール変換して符号化したときの符号長の最小値を評価値として用いてもよい。
2.動作
以上のように構成された動画像圧縮符号化装置は、以下のように動作する。入力部100から入力された画像データ120は、差分演算部101で動き補償画像との差分演算が行われる。差分演算された差分データは変換部102で直交変換される。差分データの直交変換係数は量子化部103で量子化される。量子化された差分データの直交変換係数はエントロピー符号化部104でエントロピー符号化され、出力部105よりビットストリームとして出力される。また、量子化部103で量子化された差分データの直交変換係数は、逆量子化部111で逆量子化された後、逆変換部112で逆直交変換され、差分データとして復号化される。なお、このときの差分データは、データ量削減のための量子化によって非可逆処理が行われているので元の差分データではない。
復号化された差分データは、加算演算部113において、動き補償部115で生成された動き補償画像に加算される。加算されて生成された画像は、後の動き補償や動き予測の参照画像として、バッファ114に一時的に蓄積される。動きベクトル検出部106で、動きベクトル検出対象のマクロブロックの画像データとバッファ114に蓄積された参照画像との間での動きベクトルが算出される。動きベクトル検出部106で算出された動きベクトルは、動き補償部105での動き補償に用いられると共に、エントロピー符号化部104を経て、圧縮画像データに組み込まれ、出力部105より出力される。
ここで、動きベクトル検出部106で動きベクトルが算出されるとき、対象ブロックのブロックサイズは固定ではなく、前述したように複数種類選択可能である。特に、本実施の形態の動画像圧縮符号化装置においては、このブロックサイズの選択が、ブロック分割決定部107によって以下のように行われるようになっている。以下、このブロック分割決定部107の動作について図2以下の図面により詳しく説明する。
図2は、入力画像全体、及び縦16×横16画素から構成される動きベクトル検出対象マクロブロックの説明図である。なお、図2の入力画像は一例である。図2において、画像230は動きベクトル検出を行う入力画像全体を示しており、マクロブロック231、232は分割対象のマクロブロックを示している。マクロブロック231は、オブジェクト(樹木等)と背景との境界(エッジ)を含んでいる。マクロブロック232は、背景のみを含んでいる。
図3は、図2に示した前記マクロブロック231,232を構成する画素の輝度レベルを示した図である。図3(a)は、マクロブロック231の場合を示し、図3(b)は、マクロブロック232の場合を示している。マクロブロック231は、前述のようにオブジェクト(樹木等)と背景との境界を含んでいるので、輝度レベルの最大値が100、最小値が30となっている。ここで、最大値と最小値との差をダイナミックレンジと定義すると、マクロブロック231におけるダイナミックレンジは70となる。一方、マクロブロック232は、前述のように背景のみを含む平坦なブロックでああるので、輝度レベルの最大値が30、最小値が30となっている。したがって、マクロブロック232におけるダイナミックレンジは0となる。このように、オブジェクトと背景との境界を含むブロックでは、オブジェクトと背景との境界を含まない平坦なブロックと比べ、ダイナミックレンジが大きくなる。したがって、ブロックのダイナミックレンジを求めれば、そのブロックが、オブジェクトと背景との境界を含んだブロックであるか、あるいは平坦なブロックであるかの判断を行うことが可能となる。
次に、図4〜図8により本実施の形態のブロック分割態様の決定方法を説明する。説明に際しては、便宜上、マクロブロック(縦16画素×横16画素)を第一ブロックB1と呼ぶ。図4(a)は、分割前の第一ブロックB1を示している。
まず、この第一ブロックB1に対して、図4(b)、図4(c)に示すように、アクティビティ(精細度)を検出するブロックであるアクティビティ検出ブロックA0,A1,A2,A3を設定する。図4(b)は、第一ブロックに対してアクティビティ検出ブロックA0およびアクティビティ検出ブロックA1を設定した状態を示す。図4(c)は、第一ブロックB1に対してアクティビティ検出ブロックA2およびアクティビティ検出ブロックA3を設定した状態を示す。アクティビティ検出ブロックA0およびアクティビティ検出ブロックA1は、縦16画素×横8画素から構成されるブロックであり、アクティビティ検出ブロックA2およびアクティビティ検出ブロックA3は、縦8画素×横16画素から構成されるブロックである。
次に、各アクティビティ検出ブロックA0〜A3についてブロック内のアクティビティを算出し、アクティビティの値に応じてアクティビティフラグ0〜3を設定する。アクティビティが所定の閾値より大きければ、アクティビティ検出ブロックのアクティビティフラグを1に設定し、アクティビティが所定の閾値以下であれば、アクティビティフラグを0に設定する。本実施の形態では、前記所定の閾値は、32に設定されている。この値は、例えば、アクティビティ検出ブロック内に、オブジェクト(木等)と背景との境界が含まれているような場合に、これを検出することができるような大きさの値である。なお、32という値は、一例であり、オブジェクトと背景との境界の認識が可能な範囲で変更可能である。
図4(b)に示す場合においては、アクティビティ検出ブロックA0は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は1に設定される。アクティビティ検出ブロックA1も、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は1に設定される。
次に、図4(c)に示す場合においては、アクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3も、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ1は1に設定される。
上記手順により得られた4つのアクティビティフラグに基づいて、第一ブロックB1(マクロブロック)の分割方法を決定する。以下に、各アクティビティフラグの値と分割対象ブロック(縦M画素×横M画素)のブロック分割との関係を4種類のパターンに分類して示す。

(パターン0) アクティビティフラグ0が0、アクティビティフラグ1が0、
アクティビティフラグ2が0、アクティビティフラグ3が0の場合、
→ 対象ブロックに対し分割処理を行わない。

(パターン1) アクティビティフラグ0が0、アクティビティフラグ1が0、
アクティビティフラグ2が1、アクティビティフラグ3が1の場合、
又は、
アクティビティフラグ0が1、アクティビティフラグ1が0、
アクティビティフラグ2が1、アクティビティフラグ3が1の場合、
あるいは、
アクティビティフラグ0が0、アクティビティフラグ1が1、
アクティビティフラグ2が1、アクティビティフラグ3が1の場合、
→ 対象ブロックを縦M画素×横M/2画素から構成される2つのブロックに分割する

(パターン2) アクティビティフラグ0が1、アクティビティフラグ1が1、
アクティビティフラグ2が0、アクティビティフラグ3が0の場合、
又は、
アクティビティフラグ0が1、アクティビティフラグ1が1、
アクティビティフラグ2が0、アクティビティフラグ3が1の場合、
又は、
アクティビティフラグ0が1、アクティビティフラグ1が1、
アクティビティフラグ2が1、アクティビティフラグ3が0の場合、
→ 対象ブロックを縦M/2画素×横M画素から構成される2つのブロックに分割する

(パターン3) パターン0、1、2以外の場合、
→ 対象ブロックを縦M/2画素×横M/2画素から構成される4つのブロックに分割する
この分類にあてはめると、図4(a)に示した第一ブロックB1は、アクティビティフラグ0が1、アクティビティフラグ1が1、アクティビティフラグ2が1、アクティビティフラグ3が1であるため、パターン3に該当する。したがって、第一ブロックB1は、図4(d)に示すように、縦8画素×横8画素から構成される4つの第二ブロックB20,B21,B22,B23に分割される。
次に、これらの第二ブロックに対して、それぞれ、第一ブロックB1と同様にアクティビティの算出を行う。なお、第一ブロックB1分割後の左上の第二ブロックを第二ブロックB20、右上の第二ブロックを第二ブロックB21、左下の第二ブロックを第二ブロックB22、右下の第二ブロックを第二ブロックB23としている。
まず、図5(a)、図5(b)に示すように、第二ブロックB20に対して、4つのアクティビティ検出ブロックA0,A1,A2,A3を設定する。図5(a)は、第二ブロックB20に対してアクティビティ検出ブロックA0およびアクティビティ検出ブロックA1を設定した状態を示す。図5(b)は、第二ブロックB20に対してアクティビティ検出ブロックA2およびアクティビティ検出ブロックA3を設定した状態を示す。アクティビティ検出ブロックA0およびアクティビティ検出ブロックA1は、縦8画素×横4画素から構成されるブロックであり、アクティビティ検出ブロックA2およびアクティビティ検出ブロックA3は、縦4画素×横8画素から構成されるブロックである。
次に、各アクティビティ検出ブロックA0,A1,A2,A3についてブロック内のアクティビティを算出し、アクティビティの値に応じてアクティビティフラグを設定する。なお、アクティビティフラグの設定基準は、マクロブロック分割の際の基準と同じである。他の第2ブロックB21,B22,B23に対するアクティビティフラグ設定も同様に行う。まず、図5(a)に示す場合においては、第二ブロックB20に対するアクティビティ検出ブロックA0は、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は0に設定される。アクティビティ検出ブロックA1も、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は0に設定される。
図5(b)に示す場合においては、第二ブロックB20に対するアクティビティ検出ブロックA2は、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は0に設定される。アクティビティ検出ブロックA3も、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は0に設定される。
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB20の分割態様を決定する。なお、ブロック分割態様の決定基準は、前述のマクロブロックにおける場合と同様である。他の第2ブロックB21,B2,B23の分割態様の決定においても同様とする。ここで、第二ブロックB20は、アクティビティフラグ0が0、アクティビティフラグ1が0、アクティビティフラグ2が0、アクティビティフラグ3が0であるため、パターン0に該当する。したがって、第二ブロックB20は、図5(c)に示すように、分割されることなく、縦8画素×横8画素から構成されるブロックで維持される。
次に、図6(a)、図6(b)に示すように、第二ブロックB21に対して、第二ブロックB20と同様に、4つのアクティビティ検出ブロックA0,A1,A2,A3を設定する。図6(a)は、第二ブロックB21に対してアクティビティ検出ブロックA0およびアクティビティ検出ブロックA1を設定した状態を示す。図6(b)は、第二ブロックB21に対してアクティビティ検出ブロックA2およびアクティビティ検出ブロックA3を設定した状態を示す。アクティビティ検出ブロックA0およびアクティビティ検出ブロックA1は、縦8画素×横4画素から構成されるブロックであり、アクティビティ検出ブロックA2およびアクティビティ検出ブロックA3は、縦4画素×横8画素から構成されるブロックである。
次に、各アクティビティ検出ブロックA0,A1,A2,A3についてブロック内のアクティビティを算出し、アクティビティの値に応じてアクティビティフラグを設定する。図6(a)に示す場合においては、第二ブロックB21に対するアクティビティ検出ブロックA0は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は1に設定される。アクティビティ検出ブロックA1は、オブジェクト(木)のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は0に設定される。
図6(b)に示す場合においては、第二ブロックB21についてのアクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3においても、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は1に設定される。
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB21の分割を決定する。第二ブロックB21は、アクティビティフラグ0が1、アクティビティフラグ1が0、アクティビティフラグ2が1、アクティビティフラグ3が1であるため、パターン1に該当する。したがって、第二ブロックB21は図6(c)に示すように、縦8画素×横4画素から構成される2つのブロックに分割される。
次に、図7(a)、図7(b)に示すように、第二ブロックB22に対して、第二ブロックB21と同様に、4つのアクティビティ検出ブロックA0,A1,A2,A3を設定する。図7(a)は、第二ブロックB22に対してアクティビティ検出ブロックA0およびアクティビティ検出ブロックA1を設定した状態を示す。図7(b)は、第二ブロックB22に対してアクティビティ検出ブロックA2、およびアクティビティ検出ブロックA3を設定した状態を示す。アクティビティ検出ブロックA0およびアクティビティ検出ブロックA1は、縦8画素×横4画素から構成されるブロックであり、アクティビティ検出ブロックA2およびアクティビティ検出ブロックA3は、縦4画素×横8画素から構成されるブロックである。
図7(a)に示す場合においては、第二ブロックB22についてのアクティビティ検出ブロックA0は、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は0に設定される。アクティビティ検出ブロックA1は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は1に設定される。
図7(b)に示す場合においては、第二ブロックB22についてのアクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3も、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は1に設定される。
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB22の分割を決定する。第二ブロックB22は、アクティビティフラグ0が0、アクティビティフラグ1が1、アクティビティフラグ2が1、アクティビティフラグ3が1であるため、パターン1に該当する。したがって、第二ブロックB22は、図7(c)に示すように、縦8画素×横4画素から構成される2つのブロックに分割される。
次に、図8(a)、図8(b)に示すように、第二ブロックB23に対して、第二ブロックB21と同様に、4つのアクティビティ検出ブロックA0,A1,A2,A3を設定する。図8(a)は、第二ブロックB23に対してアクティビティ検出ブロックA0およびアクティビティ検出ブロックA1を設定した状態を示す。図8(b)は、第二ブロックB23に対してアクティビティ検出ブロックA2およびアクティビティ検出ブロックA3を設定した状態を示す。アクティビティ検出ブロックA0およびアクティビティ検出ブロックA1は、縦8画素×横4画素から構成されるブロックであり、アクティビティ検出ブロックA2およびアクティビティ検出ブロックA3は、縦4画素×横8画素から構成されるブロックである。
図8(a)に示す場合においては、第二ブロックB23についてのアクティビティ検出ブロックA0は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は1に設定される。アクティビティ検出ブロックA1は、オブジェクト(木)のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は0に設定される。
図8(b)に示す場合においては、第二ブロックB23についてのアクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3は、オブジェクト(木)のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は0に設定される。
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB23の分割を決定する。第二ブロックB23は、アクティビティフラグ0が1、アクティビティフラグ1が0、アクティビティフラグ2が1、アクティビティフラグ3が0であるため、パターン3に該当する。したがって、第二ブロックB23は、図8(c)に示すように、縦4画素×横4画素から構成される4つのブロックに分割される。
この図8(c)は、対象マクロブロックに対するブロック分割の最終態様を示しており、動きベクトル検出部106は、分割ブロック毎に動きベクトル検出を行う。
本実施形態では、動きベクトルの検出を行うマクロブロックを以上のようにして決定する。以下、本実施形態の方法でマクロブロックの分割を決定することにより得られる効果について検討する。図9は、本実施の形態における動きベクトル検出のフローチャートであり、図10は、従来方式における動きベクトル検出のフローチャートである。図9に示す本実施の形態においては、前述のように、まずブロック分割を決定し、次に分割した各ブロックについてのみ動きベクトルの検出を行い、最後にこれらの動きベクトル及び分割態様に基づいて対象マクロブロックについて最適な動きベクトルを決定する。一方、図10に示す従来方式では、対象マクロブロックに対し、分割した各ブロック(16×16(1ブロック)、16×8(2ブロック)、8×16(2ブロック)、8×8(4ブロック)、8×4(8ブロック)、4×8(8ブロック)、4×4(16ブロック))について動きベクトル検出の演算を行い、対象マクロブロックについて最適な動きベクトルを決定する。
図11は、このような従来方式および本実施の形態(図4〜図8で説明した例)における1つのマクロブロック(16×16)に対して行われる動きベクトル演算回数を示す。なお、1つのブロックに対して最適な1つの動きベクトルを求めることを演算1回としている。従来方式では、対象マクロブロックを構成するあらゆるタイプのサブブロックに対して総当りで演算するので、16×16ブロックに対し1回、16×8ブロックに対し2回、8×16ブロックに対し2回、8×8ブロックに対し4回、8×8ブロックに対し4回、8×4ブロックに対し8回、4×8ブロックに対し8回、4×4ブロックに対し16回の動きベクトル演算がそれぞれ必要となる。これに対し、本実施の形態(図4〜図8の例)で必要な動きベクトル演算回数は、8×8ブロックに対し1回、8×4ブロックに対し4回、4×4ブロックに対し4回である。
演算量の差を明確にするため、16×16ブロック以外のブロックについて16×16ブロックでの演算回数に換算すると、従来方式では7回、本実施の形態では1回となる。つまり、本実施の形態では、従来方式と比較して、演算量を1/7に削減することができる。
3.まとめ
本実施形態によれば、動きベクトル検出を行う前に、M×N画素からなる対象ブロックをサブブロックへ分割する態様を決定し、この決定された分割態様にしたがって、対象となるサブブロックの動きベクトルを検出する。したがって、動きベクトル検出を行うべきサブブロック数が減少し、動きベクトル検出に関する演算量を大幅に削減することができる。なお、本実施形態においては、M=Nの場合で説明したが、MとNが異なる場合にも適用可能である。その場合、MとNのどちらが大きくてもよい。
加えて、ブロック分割の態様を決定する際、対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいてブロック分割態様を決定する。したがって、対象ブロックの特徴に応じたブロック分割が可能となり、ブロック分割の精度を向上させることができる。
なお、対象ブロックの分割態様の決定に要する演算量は、従来方式における動きベクトル検出に要する演算量と、本実施の形態における動きベクトル検出に要する演算量との差分よりも遥かに少なく、無視し得る量である。
また、本実施の形態のさらなる効果として、動きベクトルの算出精度を高めることができる。すなわち、動きベクトルの算出においては、前述しように、対象ブロックに対し、参照画像の一定の範囲内における任意ブロックとの間でブロックマッチングし、ブロック間の評価値を求め、その評価値が最小となったときにおける参照ブロックの対象ブロックに対する空間シフト量(水平、垂直)を最適な動きベクトルとする。しかし、従来方式では、前述のように、分割したブロックの全てについてマッチングを行うので、例えば、類似するブロックにミスマッチングする場合もあり、この場合、正しい動きベクトルが検出されなくなる。これに対し、本実施の形態では、アクティビティという概念を導入して、画像の特徴に応じたブロック分割を行うので、ミスマッチングが防止される。そのため、従来方式よりも、物体の動きに追従した正しい動きベクトルを算出することができる。
また、本実施の形態では、前記アクティビティは、ダイナミックレンジである。ここで、ダイナミックレンジは、輝度レベルの差として容易に求めることができるので、演算量を大きく増加させることがない。
(その他の実施の形態)
本実施形態では、アクティビティとして輝度レベルのダイナミックレンジを用いているが、ダイナミックレンジ以外にも、輝度レベルの分散などを用いることができる。
また、本実施形態では、動きベクトル検出装置を、専用のハードウェアとして構成したが、コンピュータに前記各機能を実行させる動きベクトル検出プログラムとして提供することも可能である。
本発明は、動画像符号化技術、特にH.264の動きベクトル検出において、動きベクトル検出に関する演算量を大幅に削減できる。そのため、ノンリニア編集機で動作するソフトエンコーダなどに有用である。また、モバイルAV機器など演算量を削減し消費電力を抑えなければならない機器の動画像符号化の動きベクトル検出装置としても利用できる。
100 入力部
101 減算部
102 変換部
103 量子化部
104 エントロピー符号化部
105 出力部
106 動きベクトル検出部
107 ブロック分割決定部
110 ローカルデコーダ
111 逆量子化部
112 逆変換部
113 加算部
114 バッファ
115 動き補償部
120 入力画像
121 動き補償画像
230 入力画像の全体図
231 ブロック内にエッジを含むマクロブロック
232 ブロック内にエッジを含まない平坦なマクロブロック

Claims (4)

  1. 動きベクトル検出装置であって、
    M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定部と、
    ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出部とを含み、
    前記ブロック分割決定部は、
    前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、
    設定した各アクティビティ検出ブロックのアクティビティを検出し、
    検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様を決定する、
    ことを特徴とする動きベクトル検出装置。
  2. 前記ブロック分割決定部は、前記対象ブロックを上下に2分割することによりM×(N/2)画素からなる2個のアクティビティ検出ブロックと、前記対象ブロックを左右に2分割することにより(M/2)×N画素からなる2個のアクティビティ検出ブロックとを設定することを特徴とする請求項1に記載の動きベクトル検出装置。
  3. 前記アクティビティは、ダイナミックレンジであることを特徴とする請求項1、2のいずれかに記載の画像符号化装置。
  4. 動きベクトル検出プログラムであって、
    コンピュータを、
    M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定手段と、
    ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出手段として機能させ、
    前記ブロック分割決定手段は、
    前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、
    設定した各アクティビティ検出ブロックのアクティビティを検出し、
    検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様を決定する、
    ことを特徴とする動きベクトル検出プログラム。
JP2009126412A 2009-05-26 2009-05-26 動きベクトル検出装置 Pending JP2010278519A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009126412A JP2010278519A (ja) 2009-05-26 2009-05-26 動きベクトル検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009126412A JP2010278519A (ja) 2009-05-26 2009-05-26 動きベクトル検出装置

Publications (1)

Publication Number Publication Date
JP2010278519A true JP2010278519A (ja) 2010-12-09

Family

ID=43425112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009126412A Pending JP2010278519A (ja) 2009-05-26 2009-05-26 動きベクトル検出装置

Country Status (1)

Country Link
JP (1) JP2010278519A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012178669A (ja) * 2011-02-25 2012-09-13 Mitsubishi Electric Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
CN107094254A (zh) * 2011-06-24 2017-08-25 杜比国际公司 图像编码和解码的方法、编码和解码设备以及计算机程序
JP2019087985A (ja) * 2017-11-01 2019-06-06 日本放送協会 画像符号化装置及び画像符号化プログラム
US11343535B2 (en) 2011-03-07 2022-05-24 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012178669A (ja) * 2011-02-25 2012-09-13 Mitsubishi Electric Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
US11343535B2 (en) 2011-03-07 2022-05-24 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US11736723B2 (en) 2011-03-07 2023-08-22 Dolby International Ab Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
CN107094254A (zh) * 2011-06-24 2017-08-25 杜比国际公司 图像编码和解码的方法、编码和解码设备以及计算机程序
CN107094254B (zh) * 2011-06-24 2019-12-13 杜比国际公司 图像编码和解码的方法、编码和解码设备以及计算机程序
JP2019087985A (ja) * 2017-11-01 2019-06-06 日本放送協会 画像符号化装置及び画像符号化プログラム
JP7033946B2 (ja) 2017-11-01 2022-03-11 日本放送協会 画像符号化装置及び画像符号化プログラム

Similar Documents

Publication Publication Date Title
JP4047879B2 (ja) 動きベクトル検出装置および動きベクトル検出方法
KR101247042B1 (ko) 변환 계수의 예측 코딩을 이용하여 디지털 미디어 데이터를인코딩하는 방법, 디지털 미디어 인코더, 디코더, 및컴퓨터 판독가능 기록 매체
WO2014054267A1 (ja) 画像符号化装置及び画像符号化方法
JP2006246431A (ja) 画像符号化装置および画像符号化方法
JP2015008510A (ja) 動き予測検索範囲及び拡張動きベクトルの範囲の動的選択
JP2008219870A (ja) 動画像符号化方法及び動画像符号化装置
JP2005191706A (ja) 動画像符号化方法及びその装置
JP2007074750A (ja) ビデオ画像を処理するコンピュータ実行方法
KR20130020697A (ko) 동화상 부호화 장치 및 동화상 복호 장치
JP2004007649A (ja) フェーディング補償のためのパラメータ化
JP2007251453A (ja) 動画像符号化装置及びプログラム
JP2009290498A (ja) 画像符号化装置及び画像符号化方法
JP5613319B2 (ja) 映像符号化装置、映像符号化方法および映像符号化プログラム
JP2011029863A (ja) 復号化処理方法
JP2007110568A (ja) 画像符号化装置
JP2010278519A (ja) 動きベクトル検出装置
KR102231969B1 (ko) 증가된 수의 가능한 코딩 모드를 이용한 공간 예측
WO2009125475A1 (ja) 映像符号化方法、映像符号化装置、映像符号化プログラムおよびその記録媒体
JP5178616B2 (ja) シーンチェンジ検出装置および映像記録装置
JP2008306413A (ja) 画像符号化装置および画像符号化方法
JP4373423B2 (ja) 映像符号化方法,映像符号化装置,映像符号化プログラムおよびその記録媒体
JP2007151062A (ja) 画像符号化装置、画像復号装置及び画像処理システム
JP2013121044A (ja) 画像符号化装置及び画像符号化方法
JP5222878B2 (ja) イントラ予測装置、符号化器、復号器及びプログラム
JP2006074520A (ja) 動きベクトル検出装置