JP2010278519A - Motion vector detector - Google Patents
Motion vector detector Download PDFInfo
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本発明は、画像を複数のブロックに分割し、分割したブロック毎に動きベクトルを検出する動きベクトル検出装置に関する。 The present invention relates to a motion vector detection apparatus that divides an image into a plurality of blocks and detects a motion vector for each of the divided blocks.
近年、AV情報のデジタル化が進み、映像信号をデジタル化して取り扱うことのできる機器が広く普及しつつある。映像信号は膨大な情報量を有する。そこで、記録容量や伝送効率を考慮して、情報量を削減しつつ符号化することが一般的である。映像信号の符号化技術として、H.264という国際規格が定められている。H.264規格は、他の既存の符号化技術に比べ約2倍の圧縮効率をもたらす。従って、H.264規格は、レコーダ記録、インターネットストリーミング等に非常に適した符号化方式である。 In recent years, digitalization of AV information has progressed and devices capable of digitizing and handling video signals are becoming widespread. The video signal has a huge amount of information. Therefore, it is common to encode while reducing the amount of information in consideration of recording capacity and transmission efficiency. As a video signal encoding technique, H.264 is used. An international standard called H.264 is established. H. The H.264 standard provides about twice the compression efficiency as compared to other existing coding technologies. Therefore, H.I. The H.264 standard is an encoding method that is very suitable for recorder recording, Internet streaming, and the like.
H.264では、フレーム間の要素の動きを認識して圧縮率を向上させる動き補償が導入されている。動き補償は、動き予測処理の結果に基づいて決定された動きベクトルに基いて行われる。H.264における動き補償(動きベクトルの決定等)は、16×16画素のマクロブロックに対してだけでなく、このマクロブロックをさらに分割した8×16、8×8、8×4、4×8、4×4画素の合計7種類のブロックに対して行うことができる。これは、マクロブロックよりも小さな物体の動きを良好に検出し、符号化効率を上げるためである。 H. H.264 introduces motion compensation that recognizes the motion of elements between frames and improves the compression ratio. Motion compensation is performed based on the motion vector determined based on the result of the motion prediction process. H. H.264 motion compensation (determination of motion vectors, etc.) is not limited to a 16 × 16 pixel macroblock, but is further divided into 8 × 16, 8 × 8, 8 × 4, 4 × 8, This can be done for a total of 7 types of 4 × 4 pixels. This is because the movement of an object smaller than the macroblock is detected well and the encoding efficiency is increased.
図12は、H.264における動き補償のブロックサイズについて示したものであり、縦16画素×横16画素の大きさを有するマクロブロックをどのように分割するかを示す。分割方法として、まず16×16画素のブロックに対して4通りあり、各々のブロック分割タイプを図12(a)〜(d)に示す。 FIG. 264 shows the block size of motion compensation in H.264, and shows how to divide a macroblock having a size of 16 vertical pixels × 16 horizontal pixels. There are four division methods for a 16 × 16 pixel block, and each block division type is shown in FIGS.
図12(a)は、マクロブロックを分割せずに動き補償を行う場合を示し、図12(b)はマクロブロックを縦16画素×横8画素の2つのブロックに分割して動き補償を行う場合を示し、図12(c)はマクロブロックを縦8画素×横16画素の2つのブロックに分割して動き補償を行う場合を示し、図12(d)はマクロブロックを縦8画素×横8画素の4つのブロックに分割して動き補償を行う場合を示す。 FIG. 12A shows a case where motion compensation is performed without dividing the macroblock, and FIG. 12B shows motion compensation by dividing the macroblock into two blocks of 16 vertical pixels × 8 horizontal pixels. FIG. 12 (c) shows a case where motion compensation is performed by dividing a macroblock into two blocks of vertical 8 pixels × horizontal 16 pixels, and FIG. 12 (d) shows that the macroblock is divided into vertical 8 pixels × horizontal. A case where motion compensation is performed by dividing into four blocks of 8 pixels is shown.
さらに、図12(d)に示す分割タイプ4の分割方法を選択する場合には、縦8画素×横8画素の4つのサブブロックのそれぞれに対して、図12(e)〜(h)にそれぞれ示す、縦8画素×横8画素の4ブロックを分割する方法から選択できる。
Furthermore, when the
上述のように、H.264では、動き補償のブロックサイズとして異なる複数のブロックサイズを選択することで符号化効率を上げることができる。しかしながら、マクロブロックの分割タイプとしてどの分割タイプが動き補償として最適であるか決定するには、すべての分割タイプにおける動きベクトルを求め、その動きベクトルにおける予測誤差などから最適な分割タイプを判定する必要がある。それゆえ、動きベクトル探索に膨大な演算量が必要で、符号化処理の速度向上が困難であった。 As mentioned above, H.M. In H.264, encoding efficiency can be improved by selecting a plurality of different block sizes as the block size for motion compensation. However, in order to determine which division type is optimal for motion compensation as a macroblock division type, it is necessary to obtain motion vectors for all division types and determine the optimum division type from the prediction error in the motion vectors. There is. Therefore, a huge amount of computation is required for motion vector search, and it is difficult to improve the speed of the encoding process.
このため、非特許文献1に開示されているように、H.264においては、上述の複数分割タイプの動きベクトル検索に要する演算量の低減が図られている。例えば、先ず、より小さなブロックサイズの動きベクトルを求め、この動きベクトルの方向と大きさから、より大きなブロックサイズの動きベクトルを推定することで、動き検索するブロックサイズの数を減らし演算量を低減する。例えば、図13(a)に示すように、ブロックを4分割したサブブロックのそれぞれの動きベクトルが非常に近い場合、それはブロック全体の動きベクトルに近似していると推定される。それゆえ、サブブロックで構成されるブロック全体を動き補償すべきブロックサイズとして動き検索する。逆に、図13(b)に示すように、4つのサブブロックの動きベクトルにばらつきがある場合、それはブロック全体として一つの動きベクトルを指していない。それゆえ、4つのサブブロックを動き補償すべきブロックサイズとして、そのまま4つのサブブロックの動きベクトルを使用する。
For this reason, as disclosed in
また、特許文献1には、動きベクトル検出済みの周辺ブロックのブロック分割から、対象マクロブロックのブロック分割を推定し、この分割したブロックについて動きベクトルを検出する方法が開示されている。この方法によれば、動きベクトルを検出すべきブロックが予め絞り込まれるので、動きベクトル検出に要する演算量を低減することができる。
Further,
しかしながら、前記非特許文献1に記載の手法では、より小さなブロックの動きベクトルをも求めなければならない。しかも、より小さなブロックサイズは分割されたブロック数が多いので、動きベクトル検出の演算量も多くなり、大幅な低減には至らない。
However, in the method described in
また、特許文献1に記載の手法では、動きベクトル検出に要する演算量を低減することが可能であるものの、対象マクロブロックの特徴に関係なく周辺ブロックの分割情報を基に分割するため、ブロック分割の精度が低い。
In addition, although the method described in
本発明は、以上のような問題点に鑑みてなされたもので、ブロック分割の精度を向上させつつ、動きベクトル検出の演算量を低減することができる動きベクトル検出装置を提供することを課題とする。 The present invention has been made in view of the above problems, and it is an object of the present invention to provide a motion vector detection device capable of reducing the amount of motion vector detection while improving the accuracy of block division. To do.
前記従来の課題を解決するために、本発明の動きベクトル検出装置は、動きベクトル検出装置であって、M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定部と、ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出部とを含み、前記ブロック分割決定部は、前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様を決定する、ことを特徴とする。 In order to solve the above-described conventional problems, a motion vector detection device according to the present invention is a motion vector detection device, a block division determination unit that divides a target block composed of M × N pixels into sub-blocks, and a block division determination. A motion vector detection unit that detects a motion vector of each sub-block divided by the unit, wherein the block division determination unit sets a plurality of activity detection blocks in the target block, and sets each activity detection block An activity is detected, and a mode of dividing the target block into sub-blocks is determined based on each detected activity.
また、本発明の動きベクトル検出プログラムは、コンピュータを、M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定手段と、ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出手段として機能させ、前記ブロック分割決定手段は、前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様の決定をする、ことを特徴とする。 Also, the motion vector detection program of the present invention detects a motion vector of each sub-block divided by the block division determination unit and the block division determination unit that divides the target block of M × N pixels into sub-blocks. The block division determination unit sets a plurality of activity detection blocks in the target block, detects an activity of each set activity detection block, and based on each detected activity A mode of dividing the target block into sub-blocks is determined.
本発明によれば、動きベクトル検出を行う前に、M×N画素からなる対象ブロックをサブブロックへ分割する態様を決定し、この決定された分割態様にしたがって、対象となるサブブロックの動きベクトルを検出する。したがって、動きベクトル検出を行うべきサブブロック数が減少し、動きベクトル検出に関する演算量を大幅に削減することができる。 According to the present invention, before performing motion vector detection, a mode for dividing a target block composed of M × N pixels into sub-blocks is determined, and the motion vector of the target sub-block is determined according to the determined split mode. Is detected. Therefore, the number of sub-blocks to be subjected to motion vector detection is reduced, and the amount of calculation related to motion vector detection can be greatly reduced.
加えて、ブロック分割の態様を決定する際、対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいてブロック分割態様を決定する。したがって、対象ブロックの特徴に応じたブロック分割が可能となり、ブロック分割の精度を向上させることができる。 In addition, when determining the mode of block division, a plurality of activity detection blocks are set in the target block, the activity of each set activity detection block is detected, and the block division mode is determined based on each detected activity. . Therefore, block division according to the feature of the target block is possible, and the accuracy of block division can be improved.
なお、対象ブロックの分割態様の決定に要する演算量は、従来方式における動きベクトル検出に要する演算量と、本発明における動きベクトル検出に要する演算量との差分よりも遥かに少なく、無視し得る量である。 Note that the amount of computation required for determining the division mode of the target block is much smaller than the difference between the amount of computation required for motion vector detection in the conventional method and the amount of computation required for motion vector detection in the present invention, and can be ignored. It is.
以下、添付の図面を参照して実施の形態を説明する。
1.構成
図1は、動きベクトル検出装置を含む動画像圧縮符号化装置全体の構成を概念的に示す。
Embodiments will be described below with reference to the accompanying drawings.
1. Configuration FIG. 1 conceptually shows the overall configuration of a moving image compression encoding apparatus including a motion vector detection apparatus.
この動画像圧縮符号化装置は、入力部100、差分演算部101、変換部102、量子化部103、エントロピー符号化部104、出力部105、ローカルデコーダ110、及び動きベクトル検出部106を備える。
This moving image compression encoding apparatus includes an
入力部100より入力された画像データ120は、複数の小さなブロック群に分割される。これらのブロックは、マクロブロックと呼ばれ、各マクロブロックは16×16の画素サイズにより構成される。また、ピクチャは、複数のスライスに分割される。各スライスは、複数のマクロブロックより構成される。そして、差分演算部101以降、マクロブロック単位で処理が行われる。
The
ここで、ピクチャには、Iピクチャ、Pピクチャ、Bピクチャの3種類が存在する。Iピクチャは、映像の画像データを符号化する際、画像中の空間的な冗長性を減少させたピクチャである。Pピクチャ及びBピクチャは、連続するピクチャ間に存在する時間的な冗長性を利用して動き予測及び動き補償に基づく予測符号化を行うピクチャであり、Iピクチャよりも効率的な圧縮が可能である。なお、Pピクチャは前方予測(時間的に過去の画像)のみ参照可能であり、Bピクチャは前方予測に加え、後方予測(時間的に未来の画像)も参照可能である。 Here, there are three types of pictures: I picture, P picture, and B picture. An I picture is a picture in which spatial redundancy in an image is reduced when video image data is encoded. P picture and B picture are pictures that perform predictive coding based on motion prediction and motion compensation using temporal redundancy existing between consecutive pictures, and can be compressed more efficiently than I pictures. is there. The P picture can refer only to the forward prediction (temporarily past image), and the B picture can refer to the backward prediction (temporally future image) in addition to the forward prediction.
差分演算部101は、入力画像120と動き補償画像121との差分データを演算する。
The difference calculation unit 101 calculates difference data between the
変換部102は、画像データを周波数領域に直交変換し、直交変換係数を求める。変換方式としては、2次元DCT(離散コサイン変換)が用いられる。
The
量子化部103は、変換部102で得られた直交変換係数を量子化する。
The
エントロピー符号化部104は、量子化された直交変換係数をエントロピー符号化する。
The
出力部105は、可変ビットレートの圧縮画像データを伝送レートにあわせて伝送路に供給する。
The
ローカルデコーダ110は、逆量子化部111と、逆変換部112と、加算演算部113と、バッファ114と、動き補償部115とを含み、符号化手順を逆に行う。
The
具体的には、逆量子化部111は、量子化部103で量子化された直交変換係数を逆量子化する。
Specifically, the
逆変換部112は、逆量子化部111で逆量子化された直交変換係数を逆直交変換して差分データに復号化する。
The
加算演算部113は、逆変換部112で復号化された差分データに、バッファ114と動き補償部115とで生成された動き補償画像を加算することにより、復号側で得られるものと同様の画像データを生成する。
The
バッファ114は、加算演算部113で生成された画像データを一時蓄積する。
The
動き補償部115は、バッファ114に蓄積されている画像データを読み出し、この画像データと、動きベクトル検出部106で検出された動きベクトルとに基づいて、動き補償画像を生成する。なお、対象となる画像(画像データ120に相当)の動き補償画像は、対象となる画像と、復号化した画像(バッファ114に蓄積された画像)とに基づいて生成される。
The
動きベクトル検出部106は、入力された画像データ120と、ローカルデコーダのバッファ114から入力された画像データとの間の画素の変位を示す2次元動きベクトルを検出する。なお、H.264における動き補償(動きベクトルの決定等)は、前述したように、16×16画素のマクロブロックに対してだけでなく、このマクロブロックを分割した8×16、8×8、8×4、4×8、4×4画素の合計7種類のブロックに対して行うことができる。
The motion
動きベクトルの検出(算出)についてさらに詳しく説明する。まず、動きベクトル検出の対象ブロックに対して、参照画像の一定の範囲内における任意ブロックとの間でブロックマッチングを行い、ブロック間の差分絶対値和を求める。次に、この差分絶対値和が最小となった参照ブロック、すなわち最も相関が高いブロックが、対象ブロックから2次元(水平、垂直)的に何画素シフトしたかを求め、これを動きベクトルとして利用する。なお、動きベクトル算出の評価値としては、上記差分絶対値和以外に、差分二乗平方和を用いてもよいし、ブロック間差分データをアダマール変換して符号化したときの符号長の最小値を評価値として用いてもよい。 The motion vector detection (calculation) will be described in more detail. First, block matching is performed on a target block for motion vector detection with an arbitrary block within a certain range of a reference image, and a sum of absolute differences between blocks is obtained. Next, it is determined how many pixels the reference block having the smallest sum of absolute differences, that is, the block having the highest correlation, is two-dimensionally (horizontal and vertical) shifted from the target block, and this is used as a motion vector. To do. As an evaluation value for motion vector calculation, a square sum of squares of differences may be used in addition to the above sum of absolute differences, or a minimum value of code length when the difference data between blocks is encoded by Hadamard transform. It may be used as an evaluation value.
2.動作
以上のように構成された動画像圧縮符号化装置は、以下のように動作する。入力部100から入力された画像データ120は、差分演算部101で動き補償画像との差分演算が行われる。差分演算された差分データは変換部102で直交変換される。差分データの直交変換係数は量子化部103で量子化される。量子化された差分データの直交変換係数はエントロピー符号化部104でエントロピー符号化され、出力部105よりビットストリームとして出力される。また、量子化部103で量子化された差分データの直交変換係数は、逆量子化部111で逆量子化された後、逆変換部112で逆直交変換され、差分データとして復号化される。なお、このときの差分データは、データ量削減のための量子化によって非可逆処理が行われているので元の差分データではない。
2. Operation The moving image compression encoding apparatus configured as described above operates as follows. The difference calculation unit 101 performs difference calculation on the
復号化された差分データは、加算演算部113において、動き補償部115で生成された動き補償画像に加算される。加算されて生成された画像は、後の動き補償や動き予測の参照画像として、バッファ114に一時的に蓄積される。動きベクトル検出部106で、動きベクトル検出対象のマクロブロックの画像データとバッファ114に蓄積された参照画像との間での動きベクトルが算出される。動きベクトル検出部106で算出された動きベクトルは、動き補償部105での動き補償に用いられると共に、エントロピー符号化部104を経て、圧縮画像データに組み込まれ、出力部105より出力される。
The decoded difference data is added to the motion compensated image generated by the
ここで、動きベクトル検出部106で動きベクトルが算出されるとき、対象ブロックのブロックサイズは固定ではなく、前述したように複数種類選択可能である。特に、本実施の形態の動画像圧縮符号化装置においては、このブロックサイズの選択が、ブロック分割決定部107によって以下のように行われるようになっている。以下、このブロック分割決定部107の動作について図2以下の図面により詳しく説明する。
Here, when the motion vector is calculated by the motion
図2は、入力画像全体、及び縦16×横16画素から構成される動きベクトル検出対象マクロブロックの説明図である。なお、図2の入力画像は一例である。図2において、画像230は動きベクトル検出を行う入力画像全体を示しており、マクロブロック231、232は分割対象のマクロブロックを示している。マクロブロック231は、オブジェクト(樹木等)と背景との境界(エッジ)を含んでいる。マクロブロック232は、背景のみを含んでいる。
FIG. 2 is an explanatory diagram of a motion vector detection target macroblock composed of the entire input image and 16 × 16 pixels. The input image in FIG. 2 is an example. In FIG. 2, an
図3は、図2に示した前記マクロブロック231,232を構成する画素の輝度レベルを示した図である。図3(a)は、マクロブロック231の場合を示し、図3(b)は、マクロブロック232の場合を示している。マクロブロック231は、前述のようにオブジェクト(樹木等)と背景との境界を含んでいるので、輝度レベルの最大値が100、最小値が30となっている。ここで、最大値と最小値との差をダイナミックレンジと定義すると、マクロブロック231におけるダイナミックレンジは70となる。一方、マクロブロック232は、前述のように背景のみを含む平坦なブロックでああるので、輝度レベルの最大値が30、最小値が30となっている。したがって、マクロブロック232におけるダイナミックレンジは0となる。このように、オブジェクトと背景との境界を含むブロックでは、オブジェクトと背景との境界を含まない平坦なブロックと比べ、ダイナミックレンジが大きくなる。したがって、ブロックのダイナミックレンジを求めれば、そのブロックが、オブジェクトと背景との境界を含んだブロックであるか、あるいは平坦なブロックであるかの判断を行うことが可能となる。
FIG. 3 is a diagram showing the luminance levels of the pixels constituting the
次に、図4〜図8により本実施の形態のブロック分割態様の決定方法を説明する。説明に際しては、便宜上、マクロブロック(縦16画素×横16画素)を第一ブロックB1と呼ぶ。図4(a)は、分割前の第一ブロックB1を示している。 Next, a block division mode determination method according to the present embodiment will be described with reference to FIGS. In the description, for the sake of convenience, the macroblock (vertical 16 pixels × horizontal 16 pixels) is referred to as a first block B1. FIG. 4A shows the first block B1 before division.
まず、この第一ブロック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画素から構成されるブロックである。 First, as shown in FIGS. 4B and 4C, activity detection blocks A0, A1, A2, and A3, which are blocks for detecting activity (definition), are set for the first block B1. To do. FIG. 4B shows a state in which the activity detection block A0 and the activity detection block A1 are set for the first block. FIG. 4C shows a state in which the activity detection block A2 and the activity detection block A3 are set for the first block B1. The activity detection block A0 and the activity detection block A1 are blocks composed of 16 vertical pixels × 8 horizontal pixels, and the activity detection block A2 and the activity detection block A3 are blocks composed of 8 vertical pixels × 16 horizontal pixels. is there.
次に、各アクティビティ検出ブロックA0〜A3についてブロック内のアクティビティを算出し、アクティビティの値に応じてアクティビティフラグ0〜3を設定する。アクティビティが所定の閾値より大きければ、アクティビティ検出ブロックのアクティビティフラグを1に設定し、アクティビティが所定の閾値以下であれば、アクティビティフラグを0に設定する。本実施の形態では、前記所定の閾値は、32に設定されている。この値は、例えば、アクティビティ検出ブロック内に、オブジェクト(木等)と背景との境界が含まれているような場合に、これを検出することができるような大きさの値である。なお、32という値は、一例であり、オブジェクトと背景との境界の認識が可能な範囲で変更可能である。 Next, the activity in the block is calculated for each of the activity detection blocks A0 to A3, and the activity flags 0 to 3 are set according to the activity value. If the activity is greater than the predetermined threshold, the activity flag of the activity detection block is set to 1, and if the activity is equal to or less than the predetermined threshold, the activity flag is set to 0. In the present embodiment, the predetermined threshold is set to 32. This value is, for example, a value that can be detected when the boundary between an object (such as a tree) and the background is included in the activity detection block. Note that the value 32 is an example, and can be changed within a range in which the boundary between the object and the background can be recognized.
図4(b)に示す場合においては、アクティビティ検出ブロックA0は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は1に設定される。アクティビティ検出ブロックA1も、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は1に設定される。
In the case shown in FIG. 4B, the activity detection block A0 includes the boundary between the object (tree) and the background, and the dynamic range is larger than the threshold value. Therefore, the
次に、図4(c)に示す場合においては、アクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3も、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ1は1に設定される。
Next, in the case shown in FIG. 4C, the activity detection block A2 includes the boundary between the object (tree) and the background, and the dynamic range is larger than the threshold value. Therefore, the
上記手順により得られた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つのブロックに分割する
Based on the four activity flags obtained by the above procedure, the division method of the first block B1 (macroblock) is determined. Hereinafter, the relationship between the value of each activity flag and the block division of the division target block (vertical M pixels × horizontal M pixels) is classified into four types of patterns.
(Pattern 0)
If
→ Do not split the target block.
(Pattern 1)
If
Or
If
Or
If
→ Divide the target block into two blocks consisting of vertical M pixels x horizontal M / 2 pixels
(Pattern 2)
If
Or
If
Or
If
→ Divide the target block into two blocks consisting of vertical M / 2 pixels x horizontal M pixels
(Pattern 3) For patterns other than 0, 1, and 2,
→ Divide the target block into 4 blocks consisting of vertical M / 2 pixels x horizontal M / 2 pixels
この分類にあてはめると、図4(a)に示した第一ブロックB1は、アクティビティフラグ0が1、アクティビティフラグ1が1、アクティビティフラグ2が1、アクティビティフラグ3が1であるため、パターン3に該当する。したがって、第一ブロックB1は、図4(d)に示すように、縦8画素×横8画素から構成される4つの第二ブロックB20,B21,B22,B23に分割される。
When this classification is applied, the first block B1 shown in FIG. 4A has an
次に、これらの第二ブロックに対して、それぞれ、第一ブロックB1と同様にアクティビティの算出を行う。なお、第一ブロックB1分割後の左上の第二ブロックを第二ブロックB20、右上の第二ブロックを第二ブロックB21、左下の第二ブロックを第二ブロックB22、右下の第二ブロックを第二ブロックB23としている。 Next, the activity is calculated for each of these second blocks in the same manner as the first block B1. The second block B20 is the second block on the upper left after the division of the first block B1, the second block B21 is the second block on the upper right, the second block B22 is the second block on the lower left, and the second block on the lower right is the second block B21. Two blocks B23 are provided.
まず、図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画素から構成されるブロックである。 First, as shown in FIGS. 5A and 5B, four activity detection blocks A0, A1, A2, and A3 are set for the second block B20. FIG. 5A shows a state in which the activity detection block A0 and the activity detection block A1 are set for the second block B20. FIG. 5B shows a state where the activity detection block A2 and the activity detection block A3 are set for the second block B20. The activity detection block A0 and the activity detection block A1 are blocks composed of 8 vertical pixels × 4 horizontal pixels, and the activity detection block A2 and the activity detection block A3 are blocks composed of 4 vertical pixels × 8 horizontal pixels. is there.
次に、各アクティビティ検出ブロックA0,A1,A2,A3についてブロック内のアクティビティを算出し、アクティビティの値に応じてアクティビティフラグを設定する。なお、アクティビティフラグの設定基準は、マクロブロック分割の際の基準と同じである。他の第2ブロックB21,B22,B23に対するアクティビティフラグ設定も同様に行う。まず、図5(a)に示す場合においては、第二ブロックB20に対するアクティビティ検出ブロックA0は、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は0に設定される。アクティビティ検出ブロックA1も、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は0に設定される。
Next, the activity in the block is calculated for each activity detection block A0, A1, A2, A3, and an activity flag is set according to the value of the activity. Note that the activity flag setting criteria are the same as the criteria for macroblock division. The activity flag is similarly set for the other second blocks B21, B22, and B23. First, in the case shown in FIG. 5A, since the activity detection block A0 for the second block B20 includes only the background, the dynamic range is smaller than the threshold value. Therefore, the
図5(b)に示す場合においては、第二ブロックB20に対するアクティビティ検出ブロックA2は、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は0に設定される。アクティビティ検出ブロックA3も、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は0に設定される。
In the case shown in FIG. 5B, since the activity detection block A2 for the second block B20 includes only the background, the dynamic range is smaller than the threshold value. Therefore, the
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB20の分割態様を決定する。なお、ブロック分割態様の決定基準は、前述のマクロブロックにおける場合と同様である。他の第2ブロックB21,B2,B23の分割態様の決定においても同様とする。ここで、第二ブロックB20は、アクティビティフラグ0が0、アクティビティフラグ1が0、アクティビティフラグ2が0、アクティビティフラグ3が0であるため、パターン0に該当する。したがって、第二ブロックB20は、図5(c)に示すように、分割されることなく、縦8画素×横8画素から構成されるブロックで維持される。
Based on the four activity flags obtained by the above procedure, the division mode of the second block B20 is determined. Note that the criteria for determining the block division mode are the same as those in the above-described macroblock. The same applies to the determination of the division mode of the other second blocks B21, B2, B23. Here, the second block B20 corresponds to the
次に、図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画素から構成されるブロックである。 Next, as shown in FIGS. 6A and 6B, four activity detection blocks A0, A1, A2, and A3 are set for the second block B21 as in the second block B20. . FIG. 6A shows a state in which the activity detection block A0 and the activity detection block A1 are set for the second block B21. FIG. 6B shows a state in which the activity detection block A2 and the activity detection block A3 are set for the second block B21. The activity detection block A0 and the activity detection block A1 are blocks composed of 8 vertical pixels × 4 horizontal pixels, and the activity detection block A2 and the activity detection block A3 are blocks composed of 4 vertical pixels × 8 horizontal pixels. is there.
次に、各アクティビティ検出ブロックA0,A1,A2,A3についてブロック内のアクティビティを算出し、アクティビティの値に応じてアクティビティフラグを設定する。図6(a)に示す場合においては、第二ブロックB21に対するアクティビティ検出ブロックA0は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は1に設定される。アクティビティ検出ブロックA1は、オブジェクト(木)のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は0に設定される。
Next, the activity in the block is calculated for each activity detection block A0, A1, A2, A3, and an activity flag is set according to the value of the activity. In the case shown in FIG. 6A, the activity detection block A0 for the second block B21 includes the boundary between the object (tree) and the background, and the dynamic range is larger than the threshold value. Therefore, the
図6(b)に示す場合においては、第二ブロックB21についてのアクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3においても、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は1に設定される。
In the case shown in FIG. 6B, the activity detection block A2 for the second block B21 includes the boundary between the object (tree) and the background, and the dynamic range is larger than the threshold value. Therefore, the
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB21の分割を決定する。第二ブロックB21は、アクティビティフラグ0が1、アクティビティフラグ1が0、アクティビティフラグ2が1、アクティビティフラグ3が1であるため、パターン1に該当する。したがって、第二ブロックB21は図6(c)に示すように、縦8画素×横4画素から構成される2つのブロックに分割される。
Based on the four activity flags obtained by the above procedure, the division of the second block B21 is determined. The second block B21 corresponds to the
次に、図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画素から構成されるブロックである。 Next, as shown in FIGS. 7A and 7B, four activity detection blocks A0, A1, A2, and A3 are set for the second block B22 in the same manner as the second block B21. . FIG. 7A shows a state in which the activity detection block A0 and the activity detection block A1 are set for the second block B22. FIG. 7B shows a state in which the activity detection block A2 and the activity detection block A3 are set for the second block B22. The activity detection block A0 and the activity detection block A1 are blocks composed of 8 vertical pixels × 4 horizontal pixels, and the activity detection block A2 and the activity detection block A3 are blocks composed of 4 vertical pixels × 8 horizontal pixels. is there.
図7(a)に示す場合においては、第二ブロックB22についてのアクティビティ検出ブロックA0は、背景のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は0に設定される。アクティビティ検出ブロックA1は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は1に設定される。
In the case shown in FIG. 7A, since the activity detection block A0 for the second block B22 includes only the background, the dynamic range is smaller than the threshold value. Therefore, the
図7(b)に示す場合においては、第二ブロックB22についてのアクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3も、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は1に設定される。
In the case shown in FIG. 7B, the activity detection block A2 for the second block B22 includes the boundary between the object (tree) and the background, and the dynamic range is larger than the threshold value. Therefore, the
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB22の分割を決定する。第二ブロックB22は、アクティビティフラグ0が0、アクティビティフラグ1が1、アクティビティフラグ2が1、アクティビティフラグ3が1であるため、パターン1に該当する。したがって、第二ブロックB22は、図7(c)に示すように、縦8画素×横4画素から構成される2つのブロックに分割される。
Based on the four activity flags obtained by the above procedure, the division of the second block B22 is determined. The second block B22 corresponds to the
次に、図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画素から構成されるブロックである。 Next, as shown in FIGS. 8A and 8B, four activity detection blocks A0, A1, A2, and A3 are set for the second block B23 in the same manner as the second block B21. . FIG. 8A shows a state in which the activity detection block A0 and the activity detection block A1 are set for the second block B23. FIG. 8B shows a state where the activity detection block A2 and the activity detection block A3 are set for the second block B23. The activity detection block A0 and the activity detection block A1 are blocks composed of 8 vertical pixels × 4 horizontal pixels, and the activity detection block A2 and the activity detection block A3 are blocks composed of 4 vertical pixels × 8 horizontal pixels. is there.
図8(a)に示す場合においては、第二ブロックB23についてのアクティビティ検出ブロックA0は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA0のアクティビティフラグ0は1に設定される。アクティビティ検出ブロックA1は、オブジェクト(木)のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA1のアクティビティフラグ1は0に設定される。
In the case shown in FIG. 8A, the activity detection block A0 for the second block B23 includes the boundary between the object (tree) and the background, and the dynamic range is larger than the threshold value. Therefore, the
図8(b)に示す場合においては、第二ブロックB23についてのアクティビティ検出ブロックA2は、オブジェクト(木)と背景との境界を含んでおり、ダイナミックレンジが閾値より大きい。そのため、アクティビティ検出ブロックA2のアクティビティフラグ2は1に設定される。アクティビティ検出ブロックA3は、オブジェクト(木)のみしか含んでいないので、ダイナミックレンジが閾値より小さい。そのため、アクティビティ検出ブロックA3のアクティビティフラグ3は0に設定される。
In the case shown in FIG. 8B, the activity detection block A2 for the second block B23 includes the boundary between the object (tree) and the background, and the dynamic range is larger than the threshold value. Therefore, the
上記手順により得られた4つのアクティビティフラグに基づいて、第二ブロックB23の分割を決定する。第二ブロックB23は、アクティビティフラグ0が1、アクティビティフラグ1が0、アクティビティフラグ2が1、アクティビティフラグ3が0であるため、パターン3に該当する。したがって、第二ブロックB23は、図8(c)に示すように、縦4画素×横4画素から構成される4つのブロックに分割される。
Based on the four activity flags obtained by the above procedure, the division of the second block B23 is determined. The second block B23 corresponds to the pattern 3 because the
この図8(c)は、対象マクロブロックに対するブロック分割の最終態様を示しており、動きベクトル検出部106は、分割ブロック毎に動きベクトル検出を行う。
FIG. 8C shows the final mode of block division for the target macroblock, and the motion
本実施形態では、動きベクトルの検出を行うマクロブロックを以上のようにして決定する。以下、本実施形態の方法でマクロブロックの分割を決定することにより得られる効果について検討する。図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ブロック))について動きベクトル検出の演算を行い、対象マクロブロックについて最適な動きベクトルを決定する。 In the present embodiment, a macroblock for detecting a motion vector is determined as described above. Hereinafter, the effect obtained by determining the division of the macroblock by the method of the present embodiment will be examined. FIG. 9 is a flowchart of motion vector detection in the present embodiment, and FIG. 10 is a flowchart of motion vector detection in the conventional method. In the present embodiment shown in FIG. 9, as described above, block division is first determined, then motion vectors are detected only for each divided block, and finally based on these motion vectors and division modes. An optimal motion vector is determined for the target macroblock. On the other hand, in the conventional method shown in FIG. 10, each divided block (16 × 16 (1 block), 16 × 8 (2 blocks), 8 × 16 (2 blocks), 8 × 8 (4 blocks) is divided into the target macroblock. Block), 8 × 4 (8 blocks), 4 × 8 (8 blocks), 4 × 4 (16 blocks)), and an optimal motion vector is determined for the target macroblock.
図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回である。 FIG. 11 shows the number of motion vector operations performed for one macroblock (16 × 16) in the conventional method and the present embodiment (examples described in FIGS. 4 to 8). Note that obtaining one optimal motion vector for one block is one calculation. In the conventional method, all types of sub-blocks constituting the target macroblock are calculated as brute force, so once for 16 × 16 blocks, twice for 16 × 8 blocks, and 2 for 8 × 16 blocks. 4 times for 8 × 8 blocks, 4 times for 8 × 8 blocks, 8 times for 8 × 4 blocks, 8 times for 4 × 8 blocks, 16 times for 4 × 4 blocks Are required. On the other hand, the number of motion vector calculations required in the present embodiment (examples of FIGS. 4 to 8) is 1 for 8 × 8 blocks, 4 for 8 × 4 blocks, and 4 × 4 blocks. 4 times.
演算量の差を明確にするため、16×16ブロック以外のブロックについて16×16ブロックでの演算回数に換算すると、従来方式では7回、本実施の形態では1回となる。つまり、本実施の形態では、従来方式と比較して、演算量を1/7に削減することができる。 In order to clarify the difference in the amount of calculation, when the number of operations in the 16 × 16 block is converted into the number of operations in the 16 × 16 block for the blocks other than the 16 × 16 block, it is 7 times in the conventional method and once in the present embodiment. That is, in this embodiment, the amount of calculation can be reduced to 1/7 as compared with the conventional method.
3.まとめ
本実施形態によれば、動きベクトル検出を行う前に、M×N画素からなる対象ブロックをサブブロックへ分割する態様を決定し、この決定された分割態様にしたがって、対象となるサブブロックの動きベクトルを検出する。したがって、動きベクトル検出を行うべきサブブロック数が減少し、動きベクトル検出に関する演算量を大幅に削減することができる。なお、本実施形態においては、M=Nの場合で説明したが、MとNが異なる場合にも適用可能である。その場合、MとNのどちらが大きくてもよい。
3. Summary According to the present embodiment, before performing motion vector detection, a mode for dividing a target block composed of M × N pixels into sub-blocks is determined, and according to the determined division mode, a target sub-block is determined. Detect motion vectors. Therefore, the number of sub-blocks to be subjected to motion vector detection is reduced, and the amount of calculation related to motion vector detection can be greatly reduced. In the present embodiment, the case where M = N has been described, but the present invention can also be applied when M and N are different. In that case, either M or N may be larger.
加えて、ブロック分割の態様を決定する際、対象ブロックに複数個のアクティビティ検出ブロックを設定し、設定した各アクティビティ検出ブロックのアクティビティを検出し、検出した各アクティビティに基づいてブロック分割態様を決定する。したがって、対象ブロックの特徴に応じたブロック分割が可能となり、ブロック分割の精度を向上させることができる。 In addition, when determining the mode of block division, a plurality of activity detection blocks are set in the target block, the activity of each set activity detection block is detected, and the block division mode is determined based on each detected activity. . Therefore, block division according to the feature of the target block is possible, and the accuracy of block division can be improved.
なお、対象ブロックの分割態様の決定に要する演算量は、従来方式における動きベクトル検出に要する演算量と、本実施の形態における動きベクトル検出に要する演算量との差分よりも遥かに少なく、無視し得る量である。 Note that the amount of computation required to determine the division mode of the target block is much smaller than the difference between the amount of computation required for motion vector detection in the conventional method and the amount of computation required for motion vector detection in this embodiment, and is ignored. The amount to get.
また、本実施の形態のさらなる効果として、動きベクトルの算出精度を高めることができる。すなわち、動きベクトルの算出においては、前述しように、対象ブロックに対し、参照画像の一定の範囲内における任意ブロックとの間でブロックマッチングし、ブロック間の評価値を求め、その評価値が最小となったときにおける参照ブロックの対象ブロックに対する空間シフト量(水平、垂直)を最適な動きベクトルとする。しかし、従来方式では、前述のように、分割したブロックの全てについてマッチングを行うので、例えば、類似するブロックにミスマッチングする場合もあり、この場合、正しい動きベクトルが検出されなくなる。これに対し、本実施の形態では、アクティビティという概念を導入して、画像の特徴に応じたブロック分割を行うので、ミスマッチングが防止される。そのため、従来方式よりも、物体の動きに追従した正しい動きベクトルを算出することができる。 In addition, as a further effect of the present embodiment, motion vector calculation accuracy can be increased. That is, in the calculation of the motion vector, as described above, the target block is subjected to block matching with an arbitrary block within a certain range of the reference image to obtain an evaluation value between the blocks, and the evaluation value is the minimum. The amount of spatial shift (horizontal and vertical) of the reference block with respect to the target block at this time is set as the optimum motion vector. However, in the conventional method, as described above, matching is performed for all of the divided blocks. For example, there is a case where similar blocks are mismatched. In this case, a correct motion vector is not detected. On the other hand, in this embodiment, the concept of activity is introduced, and block division is performed according to the feature of the image, so that mismatching is prevented. Therefore, a correct motion vector that follows the motion of the object can be calculated as compared with the conventional method.
また、本実施の形態では、前記アクティビティは、ダイナミックレンジである。ここで、ダイナミックレンジは、輝度レベルの差として容易に求めることができるので、演算量を大きく増加させることがない。 In the present embodiment, the activity is a dynamic range. Here, since the dynamic range can be easily obtained as a difference in luminance level, the calculation amount is not greatly increased.
(その他の実施の形態)
本実施形態では、アクティビティとして輝度レベルのダイナミックレンジを用いているが、ダイナミックレンジ以外にも、輝度レベルの分散などを用いることができる。
(Other embodiments)
In this embodiment, the dynamic level of the luminance level is used as the activity. However, in addition to the dynamic range, distribution of the luminance level can be used.
また、本実施形態では、動きベクトル検出装置を、専用のハードウェアとして構成したが、コンピュータに前記各機能を実行させる動きベクトル検出プログラムとして提供することも可能である。 In the present embodiment, the motion vector detection device is configured as dedicated hardware. However, the motion vector detection device may be provided as a motion vector detection program that causes a computer to execute the functions.
本発明は、動画像符号化技術、特にH.264の動きベクトル検出において、動きベクトル検出に関する演算量を大幅に削減できる。そのため、ノンリニア編集機で動作するソフトエンコーダなどに有用である。また、モバイルAV機器など演算量を削減し消費電力を抑えなければならない機器の動画像符号化の動きベクトル検出装置としても利用できる。 The present invention relates to a moving image coding technique, particularly H.264. In H.264 motion vector detection, the amount of computation related to motion vector detection can be greatly reduced. Therefore, it is useful for a soft encoder that operates on a non-linear editing machine. Further, the present invention can also be used as a motion vector detection apparatus for moving picture coding of a device such as a mobile AV device that needs to reduce the amount of calculation and reduce power consumption.
100 入力部
101 減算部
102 変換部
103 量子化部
104 エントロピー符号化部
105 出力部
106 動きベクトル検出部
107 ブロック分割決定部
110 ローカルデコーダ
111 逆量子化部
112 逆変換部
113 加算部
114 バッファ
115 動き補償部
120 入力画像
121 動き補償画像
230 入力画像の全体図
231 ブロック内にエッジを含むマクロブロック
232 ブロック内にエッジを含まない平坦なマクロブロック
DESCRIPTION OF
Claims (4)
M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定部と、
ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出部とを含み、
前記ブロック分割決定部は、
前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、
設定した各アクティビティ検出ブロックのアクティビティを検出し、
検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様を決定する、
ことを特徴とする動きベクトル検出装置。 A motion vector detection device,
A block division determination unit that divides a target block of M × N pixels into sub-blocks;
A motion vector detection unit that detects a motion vector of each sub-block divided by the block division determination unit,
The block division determination unit
A plurality of activity detection blocks are set in the target block,
Detect the activity of each configured activity detection block,
Determining a mode of dividing the target block into sub-blocks based on each detected activity;
A motion vector detection apparatus characterized by the above.
コンピュータを、
M×N画素からなる対象ブロックをサブブロックへ分割するブロック分割決定手段と、
ブロック分割決定部で分割された各サブブロックの動きベクトルを検出する動きベクトル検出手段として機能させ、
前記ブロック分割決定手段は、
前記対象ブロックに複数個のアクティビティ検出ブロックを設定し、
設定した各アクティビティ検出ブロックのアクティビティを検出し、
検出した各アクティビティに基づいて前記対象ブロックをサブブロックに分割する態様を決定する、
ことを特徴とする動きベクトル検出プログラム。 A motion vector detection program,
Computer
Block division determining means for dividing the target block of M × N pixels into sub-blocks;
Function as a motion vector detection means for detecting a motion vector of each sub-block divided by the block division determination unit,
The block division determining means is
A plurality of activity detection blocks are set in the target block,
Detect the activity of each configured activity detection block,
Determining a mode of dividing the target block into sub-blocks based on each detected activity;
A motion vector detection program characterized by that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009126412A JP2010278519A (en) | 2009-05-26 | 2009-05-26 | Motion vector detector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009126412A JP2010278519A (en) | 2009-05-26 | 2009-05-26 | Motion vector detector |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010278519A true JP2010278519A (en) | 2010-12-09 |
Family
ID=43425112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009126412A Pending JP2010278519A (en) | 2009-05-26 | 2009-05-26 | Motion vector detector |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010278519A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012178669A (en) * | 2011-02-25 | 2012-09-13 | Mitsubishi Electric Corp | Moving image encoding apparatus, moving image encoding method, and moving image encoding program |
CN107094254A (en) * | 2011-06-24 | 2017-08-25 | 杜比国际公司 | Method, coding and decoding equipment and the computer program of image coding and decoding |
JP2019087985A (en) * | 2017-11-01 | 2019-06-06 | 日本放送協会 | Image coding apparatus and image coding program |
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 |
-
2009
- 2009-05-26 JP JP2009126412A patent/JP2010278519A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012178669A (en) * | 2011-02-25 | 2012-09-13 | Mitsubishi Electric Corp | Moving image encoding apparatus, moving image encoding method, and moving image encoding program |
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 (en) * | 2011-06-24 | 2017-08-25 | 杜比国际公司 | Method, coding and decoding equipment and the computer program of image coding and decoding |
CN107094254B (en) * | 2011-06-24 | 2019-12-13 | 杜比国际公司 | Image encoding and decoding method, encoding and decoding device, and computer program |
JP2019087985A (en) * | 2017-11-01 | 2019-06-06 | 日本放送協会 | Image coding apparatus and image coding program |
JP7033946B2 (en) | 2017-11-01 | 2022-03-11 | 日本放送協会 | Image coding device and image coding program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4047879B2 (en) | Motion vector detection apparatus and motion vector detection method | |
KR101247042B1 (en) | Prediction of transform coefficients for image compression | |
JP4102841B2 (en) | Computer-implemented method for processing video images | |
WO2014054267A1 (en) | Image coding device and image coding method | |
US20170223378A1 (en) | Intra-frame pixel prediction method, encoding method and decoding method, and device thereof | |
JP2006246431A (en) | Image coding apparatus and method | |
JP2015008510A (en) | Dynamic selection of motion prediction search range and range of extension motion vector | |
JP2008219870A (en) | Moving picture coding method and moving picture encoder | |
JP2005191706A (en) | Moving picture coding method and apparatus adopting the same | |
KR20130020697A (en) | Dynamic image encoding device and dynamic image decoding device | |
JP2004007649A (en) | Parameterization for fading compensation | |
JP2007251453A (en) | Moving image encoding device and program | |
JP2009290498A (en) | Image encoder and image encoding method | |
JP5613319B2 (en) | Video encoding apparatus, video encoding method, and video encoding program | |
JP2007110568A (en) | Image coding device | |
JP2010278519A (en) | Motion vector detector | |
WO2009125475A1 (en) | Video encoding method, video encoding equipment, video encoding program and its recording medium | |
JP5178616B2 (en) | Scene change detection device and video recording device | |
JP2008306413A (en) | Image encoder, and image encoding method | |
JP4373423B2 (en) | Video encoding method, video encoding device, video encoding program, and recording medium therefor | |
JP2007151062A (en) | Image encoding device, image decoding device and image processing system | |
JP2013121044A (en) | Image encoder and image encoding method | |
JP5222878B2 (en) | Intra prediction apparatus, encoder, decoder, and program | |
JP2006074520A (en) | Motion vector detecting device | |
KR20040027047A (en) | Encoding/decoding apparatus and method for image using predictive scanning |