JP4906458B2 - Image coding apparatus and image coding method - Google Patents
Image coding apparatus and image coding method Download PDFInfo
- Publication number
- JP4906458B2 JP4906458B2 JP2006269016A JP2006269016A JP4906458B2 JP 4906458 B2 JP4906458 B2 JP 4906458B2 JP 2006269016 A JP2006269016 A JP 2006269016A JP 2006269016 A JP2006269016 A JP 2006269016A JP 4906458 B2 JP4906458 B2 JP 4906458B2
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- macroblock
- encoding target
- sub
- motion compensation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本発明は、フレーム間動き補償を用いた符号化技術に関するものである。 The present invention relates to an encoding technique using interframe motion compensation.
従来、動画像に対する圧縮符号化の方式は、MPEG−1,2,4やH.264といった規格がある。この動画像に対する圧縮符号化の処理は、動画像に含まれる原画像(画像)をブロックと呼ばれる所定の領域に分割し、この分割したブロックを単位にして動き補償予測やDCT変換処理を施すものである。 Conventionally, compression encoding methods for moving images are MPEG-1, 2, 4 and H.264. There are standards such as H.264. The compression encoding process for the moving image is performed by dividing an original image (image) included in the moving image into predetermined regions called blocks, and performing motion compensation prediction and DCT conversion processing in units of the divided blocks. It is.
動き補償予測の場合、圧縮符号化の処理の単位となるブロックの大きさは、MPEG1、MPEG2方式では、マクロブロックと呼ばれる水平16画素×垂直16ラインである。この1つのマクロブロックに対してフレーム予測を行う場合は、水平方向と垂直方向の2つの成分からなる1つの動きベクトルが割り当てられている。またフィールド予測を行う場合は、水平方向と垂直方向の2つの成分からなる2つの動きベクトルが割り当てられている。 In the case of motion compensation prediction, the block size as a unit of compression encoding processing is 16 horizontal pixels × 16 vertical lines called macroblocks in the MPEG1 and MPEG2 systems. When frame prediction is performed for this one macroblock, one motion vector composed of two components in the horizontal direction and the vertical direction is assigned. When performing field prediction, two motion vectors composed of two components in the horizontal direction and the vertical direction are assigned.
MPEG1やMPEG2のようにマクロブロックを単位とする動き補償予測を行う際の動きベクトルの割り当て処理は図2(a)に示す如く、マクロブロック201を処理の単位とする。そして、このマクロブロック201内の画素が全て同一の動きベクトル202で代表されるとする。そして、この動きベクトル202の水平方向と垂直方向のそれぞれに対応した移動量によって動画像を処理するものである。
As shown in FIG. 2 (a), the motion vector assignment processing when performing motion compensation prediction using macroblocks as in units of MPEG1 and MPEG2 uses
また、MPEG4方式では、マクロブロック単位で動き補償予測を行う他に、図2(b)に示す如く、水平8画素×垂直8ラインの大きさのブロック(小ブロック)203単位で動き補償を行うモード(8×8モードとする)が備えられている。この8×8モードを用いた場合、水平16画素×垂直16ラインのマクロブロック204内に複数の動きが存在する際に、マクロブロック204の1つに対して1つの動きベクトルを割り当てるよりも、実際の動きに近似した動きベクトルを得ることが可能である。
In the MPEG4 system, in addition to performing motion compensation prediction in units of macroblocks, motion compensation is performed in units of blocks (small blocks) 203 having a size of horizontal 8 pixels × vertical 8 lines, as shown in FIG. 2B. Mode (8 × 8 mode) is provided. When this 8 × 8 mode is used, when a plurality of motions exist in the
例えば図3(a)に示すように、背景(塔と太陽)は静止しており、車が左方向に走っている画像を考えた場合、車と背景部分の動きは異なることになる。このような画像において、図3(b)に示すように、同一マクロブロック301内に車の一部と背景が混在した場合、車に対する動きベクトル302と背景に対する動きベクトル303を与えることで動き予測効率は向上する。ただし、小ブロックに分割する場合には、1つのマクロブロックに対して4つの小ブロックが存在するので、動きベクトルの数は、小ブロック毎に1つずつ存在し、1つのマクロブロックでは、4つ存在することになる。
For example, as shown in FIG. 3A, the background (the tower and the sun) is stationary, and the movement of the car and the background portion is different when considering an image in which the car is running in the left direction. In such an image, as shown in FIG. 3B, when a part of the vehicle and the background are mixed in the
またH.264方式では図4(a)に示す如く、マクロブロックとして水平16画素×垂直16ライン、水平8画素×垂直8ラインの正方形ブロック以外にも、長方形のブロックにすることができる。例えば、水平16画素×垂直8ライン、水平8画素×垂直16ラインのような長方形ブロックとしたり、マクロブロックを水平8画素×垂直8ラインの大きさの小ブロックとして4つに分割することが可能である。 H. In the H.264 system, as shown in FIG. 4A, the macro block can be a rectangular block other than a square block of horizontal 16 pixels × vertical 16 lines and horizontal 8 pixels × vertical 8 lines. For example, a rectangular block such as horizontal 16 pixels × vertical 8 lines and horizontal 8 pixels × vertical 16 lines can be formed, or a macro block can be divided into four blocks as small blocks of horizontal 8 pixels × vertical 8 lines. It is.
さらにこの水平8画素×垂直8ラインの大きさのブロックに限って、このブロックを水平8画素×垂直4ライン、水平4画素×垂直8ライン、水平4画素×垂直4ラインの大きさに分割したブロックで動き補償予測を行うことも可能な構成となっている。また同方式では、INTRA予測モードというものが存在し、画面内の画像情報からマクロブロックの画素値を予測することが可能である。係るモードは図4(b)に示す如く、マクロブロックの水平16画素×垂直16ライン、水平4画素×垂直4ラインの大きさに分割したブロックで予測を行うことが可能な構成となっている。 Furthermore, this block is divided into the size of horizontal 8 pixels × vertical 4 lines, horizontal 4 pixels × vertical 8 lines, horizontal 4 pixels × vertical 4 lines only for this block of horizontal 8 pixels × vertical 8 lines. It is also possible to perform motion compensation prediction in blocks. In this method, there is an INTRA prediction mode, and it is possible to predict the pixel value of the macroblock from the image information in the screen. In this mode, as shown in FIG. 4B, the macroblock can be predicted with a block divided into a size of horizontal 16 pixels × vertical 16 lines and horizontal 4 pixels × vertical 4 lines. .
マクロブロックをさらに小さいサブマクロブロックに分割して動き補償予測を行う事によって、実際の動きに合った細かな動きベクトルを表現可能である。しかしその一方で、分割したサブマクロブロック毎にベクトル情報など付属情報が必要なため、常にサブマクロブロックに分割する事が符号化にとって効率的とは限らない。よって様々なサイズのブロックの中から最適なサイズのサブマクロブロックの組み合わせを選んで符号化を行う事が必要となってくる(特許文献1を参照)。
従来技術においては、様々なサイズのサブマクロブロックから最適なブロックサイズの組あわせを選択するためには、様々なブロックサイズの全ての組み合わせで予測誤差を算出し、比較するため、膨大な演算量を必要としていた。そのため符号化装置においては、ハードウェアの増大や高速クロックでの処理が要求され、装置の小型化や低消費電力化の妨げとなる問題があった。 In the prior art, in order to select the optimal combination of block sizes from sub-macroblocks of various sizes, the calculation error is calculated and compared for all combinations of various block sizes, so a huge amount of computation is required. Needed. Therefore, the encoding apparatus is required to increase hardware and process with a high-speed clock, and there is a problem that hinders downsizing of the apparatus and low power consumption.
本発明は以上の問題に鑑みてなされたものであり、動き補償予測符号化における演算量を低減させる為の技術を提供することを目的とする。 The present invention has been made in view of the above problems, and an object thereof is to provide a technique for reducing the amount of calculation in motion compensation predictive coding.
本発明の目的を達成するために、例えば、本発明の画像符号化装置は以下の構成を備える。 In order to achieve the object of the present invention, for example, an image encoding apparatus of the present invention comprises the following arrangement.
即ち、動画像を構成する各フレームの画像データを符号化する画像符号化装置であって、
符号化対象フレームの画像データをマクロブロック毎に入力する入力手段と、
前記符号化対象フレームよりも過去に入力した複数フレームの画像データを、複数の参照フレームの画像データとして記憶する格納手段と、
前記符号化対象フレームにおける符号化対象マクロブロックと、前記符号化対象フレーム内の前記符号化対象マクロブロックの位置に対応する前記参照フレーム内の位置におけるマクロブロックと、の間の画素値の差分量を求める計算手段と、
予め設定された第1の閾値及び該第1の閾値よりも大きい第2の閾値と、前記差分量とを比較することで、前記符号化対象マクロブロックに対する符号化内容を決定する決定手段であって、
前記差分量が前記第1の閾値未満である場合、前記符号化対象マクロブロックを、動き補償を行わないブロックに決定し、
前記差分量が前記第1の閾値以上かつ前記第2の閾値未満である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定し、
前記差分量が前記第2の閾値以上である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定する前記決定手段と、
前記決定手段が前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックと類似するマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、該検索したマクロブロックと前記符号化対象マクロブロックとの間で検出された動きベクトルを用いてマクロブロック単位での動き補償を行って前記符号化対象マクロブロックを符号化する第1の符号化手段と、
前記決定手段が前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックを複数のサブマクロブロックに分割し、分割したそれぞれのサブマクロブロックと類似するサブマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、前記分割したそれぞれのサブマクロブロックについて検索したサブマクロブロックと前記分割したそれぞれのサブマクロブロックとの間で検出された動きベクトルを用いてサブマクロブロック単位での動き補償を行って前記分割したそれぞれのサブマクロブロックを符号化する第2の符号化手段と、
前記決定手段が前記符号化対象マクロブロックを、動き補償を行わないブロックに決定した場合には、前記符号化対象マクロブロックの動き探索を行わずに、動きベクトルなしを示す情報を符号化する第3の符号化手段と
を備えることを特徴とする。
That is, an image encoding device that encodes image data of each frame constituting a moving image,
Input means for inputting the image data of the encoding target frame for each macroblock;
Storage means for storing, as image data of a plurality of reference frames, image data of a plurality of frames input in the past from the encoding target frame;
Difference amount of pixel value between encoding target macroblock in encoding target frame and macroblock at position in reference frame corresponding to position of encoding target macroblock in encoding target frame A calculation means for obtaining
A determination unit that determines an encoding content for the encoding target macroblock by comparing the difference amount with a first threshold value set in advance and a second threshold value that is larger than the first threshold value. And
When the difference amount is less than the first threshold, the encoding target macroblock is determined as a block for which motion compensation is not performed,
If the difference amount is greater than or equal to the first threshold and less than the second threshold, the encoding target macroblock is determined as a block that performs motion compensation without being divided into sub-macroblocks;
If the difference amount is greater than or equal to the second threshold value, and said determining means for determining the block for motion compensation the encoded macroblock, after divided into sub-macroblock,
When the determining unit determines that the encoding target macroblock is a block that performs motion compensation without being divided into sub-macroblocks, a macroblock similar to the encoding target macroblock is determined as the plurality of reference frames. Each of the image data is subjected to motion compensation in units of macroblocks using motion vectors detected between the searched macroblock and the encoding target macroblock, and the encoding target macroblock is determined. First encoding means for encoding;
When the determination unit determines the block to be subjected to motion compensation after dividing the encoding target macroblock into sub-macroblocks, the encoding target macroblock is divided into a plurality of sub-macroblocks and divided. Submacroblocks similar to the respective submacroblocks are searched from the respective image data of the plurality of reference frames, and the submacroblocks searched for the respective divided submacroblocks and the respective divided submacroblocks Second encoding means for encoding each of the divided sub-macroblocks by performing motion compensation in units of sub-macroblocks using motion vectors detected between
When the determination unit determines the encoding target macroblock to be a block that does not perform motion compensation, the information indicating no motion vector is encoded without performing a motion search of the encoding target macroblock. And 3 encoding means.
本発明の目的を達成するために、例えば、本発明の画像符号化方法は以下の構成を備える。 In order to achieve the object of the present invention, for example, an image encoding method of the present invention comprises the following arrangement.
即ち、動画像を構成する各フレームの画像データを符号化する画像符号化装置が行う画像符号化方法であって、
符号化対象フレームの画像データをマクロブロック毎に入力する入力工程と、
前記符号化対象フレームよりも過去に入力した複数フレームの画像データを、複数の参照フレームの画像データとして記憶する工程と、
前記符号化対象フレームにおける符号化対象マクロブロックと、前記符号化対象フレーム内の前記符号化対象マクロブロックの位置に対応する前記参照フレーム内の位置におけるマクロブロックと、の間の画素値の差分量を求める計算工程と、
予め設定された第1の閾値及び該第1の閾値よりも大きい第2の閾値と、前記差分量とを比較することで、前記符号化対象マクロブロックに対する符号化内容を決定する決定工程であって、
前記差分量が前記第1の閾値未満である場合、前記符号化対象マクロブロックを、動き補償を行わないブロックに決定し、
前記差分量が前記第1の閾値以上かつ前記第2の閾値未満である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定し、
前記差分量が前記第2の閾値以上である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定する前記決定工程と、
前記決定工程で前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックと類似するマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、該検索したマクロブロックと前記符号化対象マクロブロックとの間で検出された動きベクトルを用いてマクロブロック単位での動き補償を行って前記符号化対象マクロブロックを符号化する第1の符号化工程と、
前記決定工程で前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックを複数のサブマクロブロックに分割し、分割したそれぞれのサブマクロブロックと類似するサブマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、前記分割したそれぞれのサブマクロブロックについて検索したサブマクロブロックと前記分割したそれぞれのサブマクロブロックとの間で検出された動きベクトルを用いてサブマクロブロック単位での動き補償を行って前記分割したそれぞれのサブマクロブロックを符号化する第2の符号化工程と、
前記決定工程で前記符号化対象マクロブロックを、動き補償を行わないブロックに決定した場合には、前記符号化対象マクロブロックの動き探索を行わずに、動きベクトルなしを示す情報を符号化する第3の符号化工程と
を備えることを特徴とする。
That is, an image encoding method performed by an image encoding device that encodes image data of each frame constituting a moving image,
An input step of inputting image data of the encoding target frame for each macroblock;
Storing image data of a plurality of frames input in the past from the encoding target frame as image data of a plurality of reference frames;
Difference amount of pixel value between encoding target macroblock in encoding target frame and macroblock at position in reference frame corresponding to position of encoding target macroblock in encoding target frame A calculation process for obtaining
This is a determination step of determining the encoding content for the encoding target macroblock by comparing the difference amount with a first threshold value set in advance and a second threshold value larger than the first threshold value. And
When the difference amount is less than the first threshold, the encoding target macroblock is determined as a block for which motion compensation is not performed,
If the difference amount is greater than or equal to the first threshold and less than the second threshold, the encoding target macroblock is determined as a block that performs motion compensation without being divided into sub-macroblocks;
If the difference amount is greater than or equal to the second threshold value, the encoding target macro-blocks, and the determination step of determining a block to be motion-compensated from divided into sub-macroblock,
If the encoding target macroblock is determined to be a block that performs motion compensation without being divided into sub-macroblocks in the determining step, a macroblock similar to the encoding target macroblock is determined as the plurality of reference frames. Each of the image data is subjected to motion compensation in units of macroblocks using motion vectors detected between the searched macroblock and the encoding target macroblock, and the encoding target macroblock is determined. A first encoding step for encoding;
In the determination step, when the encoding target macroblock is determined to be a block to be subjected to motion compensation after being divided into sub macroblocks, the encoding target macroblock is divided into a plurality of submacroblocks and divided. Submacroblocks similar to the respective submacroblocks are searched from the respective image data of the plurality of reference frames, and the submacroblocks searched for the respective divided submacroblocks and the respective divided submacroblocks A second encoding step of encoding each of the divided sub-macroblocks by performing motion compensation in units of sub-macroblocks using motion vectors detected between
When the encoding target macroblock is determined as a block for which motion compensation is not performed in the determining step, information indicating no motion vector is encoded without performing a motion search for the encoding target macroblock. And 3 encoding steps.
本発明の構成によれば、動き補償予測符号化における演算量を低減させることができる。 According to the configuration of the present invention, it is possible to reduce the amount of calculation in motion compensation predictive coding.
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。 Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.
[第1の実施形態]
図1は、本実施形態に係る画像符号化装置の機能構成を示すブロック図である。係る画像符号化装置は、各フレームの画像を符号化するためのものである。より詳しくは、H.264のように、1つのフレーム画像を複数のマクロブロックに分割し、分割したマクロブロック毎に動き予測を行い、符号化する。なお、1つのマクロブロックを複数のサブマクロブロック(小ブロック)に分割した場合には、サブマクロブロック単位で動き予測を行う。
[First Embodiment]
FIG. 1 is a block diagram illustrating a functional configuration of the image encoding device according to the present embodiment. Such an image encoding device is for encoding an image of each frame. More specifically, see H.C. As in H.264, one frame image is divided into a plurality of macroblocks, and motion prediction is performed for each divided macroblock and encoded. When one macro block is divided into a plurality of sub macro blocks (small blocks), motion prediction is performed in units of sub macro blocks.
同図に示す如く、画像符号化装置は、フレームバッファ101、小ブロック化判定部102、動き予測部105、動き補償部106、イントラ予測部107、直交変換部108、量子化部109、エントロピー符号化部110、逆量子化部111を有する。更には、逆直交変換部112、スイッチ部113、参照フレームバッファ114、加算器103、104を有する。本実施形態では、図1に示した各部はハードウェアで構成されているものとして説明する。
As shown in the figure, the image coding apparatus includes a
以下、各部の動作について説明する。 Hereinafter, the operation of each unit will be described.
符号化対象としての動画像を構成する各フレームの画像は、順次フレームバッファ101に入力され、格納される。
The image of each frame constituting the moving image to be encoded is sequentially input and stored in the
そして各フレームの画像は、マクロブロック単位(水平16画素×垂直16ライン)で小ブロック化判定部102、動き予測部105、イントラ予測部107に入力される。
The image of each frame, macro block (16 horizontal pixels × 16 vertical lines) in the small
イントラ予測部107は、フレームバッファ101から符号化対象フレームを構成する各マクロブロックを受けると、各マクロブロックについて、同一空間上の符号化済みである近傍のブロックの画素値を用いた予測画像(予測データ)を生成する。イントラ予測部107は、例えば、動画像を構成する各フレームのうち、先頭フレームについて行う。そして生成した予測画像は、後段のスイッチ部113を介して加算器103、104に送出する。
The
加算器103は、フレームバッファ101から入力されるマクロブロックと、このマクロブロックについての予測データとの差分量を予測誤差データとして生成し、後段の直交変換部108に送出する。加算器104の動作については後述する。
The
またイントラ予測部107は、イントラ予測符号化に使用した画素パターンなどの符号化情報をエントロピー符号化部110に出力する。
Also, the
一方、小ブロック化判定部102は、フレームバッファ101から入力された符号化対象フレームにおけるマクロブロック(マクロブロックP)に対する符号化単位を決定する。小ブロック化判定部102は先ず、参照フレームバッファ114から符号化対象フレームよりも前のフレーム(1フレーム以上の任意フレーム前のフレーム)の画像において、マクロブロックPと位置的に対応するマクロブロック(マクロブロックQ)を読み出す。そして、マクロブロックPとマクロブロックQとの差分量Dを計算する。
On the other hand, the small
ここで、マクロブロックPを構成する画素iをPi(1≦i≦M×N)、マクロブロックQを構成する画素jをQj(1≦j≦M×N)とすると、差分量Dは以下の式に従って求めることができる。 Here, if the pixel i constituting the macroblock P is Pi (1 ≦ i ≦ M × N) and the pixel j constituting the macroblock Q is Qj (1 ≦ j ≦ M × N), the difference amount D is as follows: It can obtain | require according to the formula of.
係る式からも分かるように、差分量Dが小さいほど、マクロブロックPとマクロブロックQとの間には変化が少ないと言え、この差分量Dが大きいほど、変化が大きいと言える。 As can be seen from the equation, it can be said that the smaller the difference amount D, the smaller the change between the macroblock P and the macroblock Q, and the larger the difference amount D, the greater the change.
次に、小ブロック化判定部102は、差分量Dと予め設定された閾値th1との大小比較を行い、D<th1である場合には、「動き補償を行わない」と判断する。
Next, the small
また、小ブロック化判定部102は、差分量Dと閾値th1,そして閾値th1よりも大きい閾値th2との大小比較を行う。その結果、th1≦D<th2である場合には、マクロブロックPに対する符号化単位を「マクロブロックP」と決定する。即ち、マクロブロックPについてはサブマクロブロックに分割せず、マクロブロック単位で動き補償による符号化を行うものと判断する。
Further, the small
また、小ブロック化判定部102は、差分量Dと閾値th2との大小比較を行う。その結果、D≧th2である場合には、マクロブロックPに対する符号化単位を「マクロブロックPよりも小さい単位」と決定する。即ち、マクロブロックPについてはサブマクロブロックに分割し、サブマクロブロック単位で動き補償による符号化を行うものと判断する。
The small
係る小ブロック化判定部102による処理によって、符号化しようとするマクロブロックに対する符号化単位を、対応するマクロブロック同士の差分量に応じて決定することができる。
By the processing by the small
小ブロック化判定部102による判定結果は、判定情報として動き予測部105に送出される。動き予測部105は、小ブロック化判定部102から上記判定情報を受けると共に、フレームバッファ101からマクロブロックPと、参照フレームバッファ114に格納されている過去の複数フレームの画像データ、を取得する。
The determination result by the small
そして動き予測部105は、小ブロック化判定部102から受けた判定情報に応じて以下に説明するように、処理を切り替える。
Then, the
「動き補償を行わない」という判定情報を受けた場合、動き予測部105は動き探索は行わず、動きベクトルなしを示す符号化情報を動き補償部106とエントロピー符号化部110とに出力する。
When the determination information “no motion compensation is performed” is received, the
マクロブロックPに対する符号化単位として「マクロブロックP」と決定した旨を示す判定情報を受けた場合、動き予測部105は次のように動作する。先ず動き予測部105は、参照フレームバッファ114に格納されている過去の複数フレームの画像の中から、マクロブロックPに類似するマクロブロックRを検索する。そして、マクロブロックPとマクロブロックRとの間で、空間的な変位量である動きベクトルを検出する。そして動き予測部105は、検出された動きベクトルと、符号化単位(この場合、マクロブロックP)と、マクロブロックRを抽出したフレーム(参照フレーム)の番号とを含む符号化情報を、動き補償部106とエントロピー符号化部110とに出力する。
When receiving the determination information indicating that “macroblock P” is determined as the encoding unit for the macroblock P, the
マクロブロックPに対する符号化単位として「サブマクロブロック」と決定した旨を示す判定情報を受けた場合、動き予測部105は次のように動作する。先ず動き予測部105は、マクロブロックPを複数のサブマクロブロックに分割する。そしてそれぞれのサブマクロブロック(サブマクロブロックS)について以下の処理を行う。
When receiving the determination information indicating that “sub-macroblock” is determined as the encoding unit for the macroblock P, the
動き予測部105は先ず、参照フレームバッファ114に格納されている過去の複数フレームの画像の中から、サブマクロブロックSに類似するサブマクロブロックTを検索する。そして、サブマクロブロックSとサブマクロブロックTとの間で、空間的な変位量である動きベクトルを検出する。
First, the
そしてこのような、サブマクロブロック毎の動きベクトルを求める処理を、マクロブロックPを構成する各サブマクロブロックについて行う。そして動き予測部105は、各サブマクロブロックについて検出された動きベクトルと、符号化単位(この場合、サブマクロブロック)と、サブマクロブロックTを抽出したフレーム(参照フレーム)の番号とを含む符号化情報を、動き補償部106とエントロピー符号化部110とに出力する。なお、サブマクロブロック毎に行う上記処理は一例であり、これに限定するものではない。
Then, the process for obtaining the motion vector for each sub macroblock is performed for each sub macroblock constituting the macroblock P. Then, the
また、上記説明した、マクロブロック毎に行う動き補償、サブマクロブロック毎に行う動き補償は周知の技術であるので、これ以上の説明は省略する。 Moreover, since the motion compensation performed for each macroblock and the motion compensation performed for each sub-macroblock described above are well-known techniques, further explanation is omitted.
次に、動き補償部106は、動き予測部105から上記符号化情報を受けると、この符号化情報に含められている参照フレーム番号に対応するフレームの画像を参照フレームバッファ114から取得する。そして、この取得したフレームの画像を参照して、各マクロブロック(サブマクロブロック)についての予測画像を生成する。そして係る予測画像はスイッチ部113に送出する。スイッチ部113は係る予測画像を加算器103に送出する。
Next, when receiving the encoding information from the
加算器103は、フレームバッファ101から入力される各マクロブロック(サブマクロブロック)と、対応する予測画像との差分量を予測誤差データとして求め、後段の直交変換部108に送出する。
The
直交変換部108は、予測誤差データが入力されると、これに対して周知の直交変換を施すことで直交変換係数を生成する。そして生成した直交変換係数を後段の量子化部109に送出する。
When the prediction error data is input, the
量子化部109は、入力された直交変換係数に対して周知の量子化処理を行うことで量子化直交変換係数を生成し、後段のエントロピー符号化部110、逆量子化部111に送出する。
The
エントロピー符号化部110は、量子化部109から入力された量子化直交変換係数と、動き予測部105から入力された符号化情報とに基づいて周知のエントロピー符号化を行って圧縮ストリームに多重化し、外部に送出する。エントロピー符号化部110による係る一連の符号化処理についてはH.264に従ったものであるので、これに関する説明は省略する。
The
一方で逆量子化部111は、量子化部109から入力された量子化直交変換係数に対して逆量子化を施すことで直交変換係数を生成し、逆直交変換部112に送出する。
On the other hand, the
逆直交変換部112は、逆量子化部111から入力された直交変換係数に対して逆直交変換を施すことで予測誤差データを生成し、加算器104に送出する。
The inverse
加算器104は、逆直交変換部112から入力された予測誤差データと、スイッチ部113から入力された予測画像とを加算することでフレーム画像を生成する。そしてこのフレーム画像に対して不図示のループフィルタでフィルタリングした後、参照フレームバッファ114に送る。このフレーム画像が参照フレームバッファ114に格納され、以降の符号化処理で、参照フレームとして用いられる。また、動きベクトルや参照フレーム番号に関する情報も、参照フレーム画像に対する付加データとして、参照フレーム画像と共に参照フレームバッファ114に格納する。
The
以上説明した一連の符号化処理について、図5に示したフローチャートを用いて説明する。図5は、符号化対象フレームにおけるマクロブロックPに対する符号化処理のフローチャートである。従って、図5のフローチャートに従った処理を、符号化対象フレームを構成する各マクロブロックについて行えば、この符号化対象フレームについて符号化を行うことができる。もちろん、符号化対象フレームについての係る符号化処理を、動画像を構成する各フレームについて行えば、この動画像全体を符号化することができる。 The series of encoding processes described above will be described using the flowchart shown in FIG. FIG. 5 is a flowchart of the encoding process for the macroblock P in the encoding target frame. Therefore, if the process according to the flowchart of FIG. 5 is performed for each macroblock constituting the encoding target frame, the encoding target frame can be encoded. Of course, if the encoding process for the encoding target frame is performed for each frame constituting the moving image, the entire moving image can be encoded.
先ずステップS501では、小ブロック化判定部102がフレームバッファ101から、符号化対象フレームにおける符号化対象マクロブロックとしてのマクロブロックPを取得する。
First, in step S <b> 501, the small
次にステップS502では小ブロック化判定部102は先ず、参照フレームバッファ114から、上記マクロブロックQを読み出す。そして次に小ブロック化判定部102は、マクロブロックPとマクロブロックQとの差分量Dを、上記式1に従って計算する。
Next, in step S502, the small
次にステップS503では、小ブロック化判定部102は、差分量Dと予め設定された閾値th1との大小比較を行う。係る大小比較の結果、D<th1である場合には処理をステップS504に進め、D≧th1の場合には処理をステップS506に進める。
In step S503, the small
ステップS504では、小ブロック化判定部102は「動き補償を行わない」と判断し、その判断結果を示す判断情報を動き予測部105に送出する。
In step S <b> 504, the small
ステップS505では、動き予測部105は、「動き補償を行わない」という判定情報を受けたので、動き探索は行わず、動きベクトルなしを示す符号化情報を動き補償部106とエントロピー符号化部110とに出力する。
In step S505, since the
一方、ステップS506では小ブロック化判定部102は、差分量Dと閾値th1,そして閾値th1よりも大きい閾値th2との大小比較を行う。係る大小比較の結果、th1≦D<th2である場合には処理をステップS507に進め、D>th2の場合には処理をステップS510に進める。
On the other hand, in step S506, the small
ステップS507では、小ブロック化判定部102は、マクロブロックPに対する符号化単位を「マクロブロックP」と決定し、その決定結果を示す判断情報を動き予測部105に送出する。
In step S <b> 507, the small
ステップS508では動き予測部105は先ず、参照フレームバッファ114に格納されている過去の複数フレームの画像の中から、マクロブロックPに類似するマクロブロックRを検索する。そして、マクロブロックPとマクロブロックRとの間で、空間的な変位量である動きベクトルを検出する。
In step S <b> 508, the
ステップS509では動き予測部105は、検出された動きベクトルと、符号化単位(マクロブロックP)と、マクロブロックRを抽出したフレーム(参照フレーム)の番号とを含む符号化情報を、動き補償部106とエントロピー符号化部110とに出力する。
In step S509, the
一方、ステップS510ではD≧th2であるので、小ブロック化判定部102は、マクロブロックPに対する符号化単位を「マクロブロックPよりも小さい単位」と決定する。そして、係る決定結果を示す判断情報を動き予測部105に送出する。
On the other hand, since D ≧ th2 in step S510, the small
ステップS511では先ず動き予測部105は、マクロブロックPを複数のサブマクロブロックに分割する。そしてそれぞれのサブマクロブロック(サブマクロブロックS)について以下の処理を行う。
In step S511, the
動き予測部105は先ず、参照フレームバッファ114に格納されている過去の複数フレームの画像の中から、サブマクロブロックSに類似するサブマクロブロックTを検索する。そして、サブマクロブロックSとサブマクロブロックTとの間で、空間的な変位量である動きベクトルを検出する。そしてこのような、サブマクロブロック毎の動きベクトルを求める処理を、マクロブロックPを構成する各サブマクロブロックについて行う。
First, the
ステップS512では動き予測部105は、各サブマクロブロックについて検出された動きベクトルと、符号化単位(サブマクロブロック)と、サブマクロブロックTを抽出したフレーム(参照フレーム)の番号とを含む符号化情報を生成する。そしてこの生成した符号化情報を動き補償部106とエントロピー符号化部110とに出力する。
In step S512, the
そして、上記ステップS505,S509,S512の何れのステップの後でも、処理をステップS513に進める。 Then, after any of steps S505, S509, and S512, the process proceeds to step S513.
ステップS513では動き補償部106は先ず、動き予測部105から受けた符号化情報に含められている参照フレーム番号に対応するフレームの画像を参照フレームバッファ114から取得する。そして動き補償部106は、この取得したフレームの画像を参照して、各マクロブロック(サブマクロブロック)についての予測画像を生成する。そして係る予測画像はスイッチ部113に送出する。スイッチ部113は係る予測画像を加算器103に送出する。
In step S513, the
次にステップS514では加算器103は、フレームバッファ101から入力されるマクロブロックP(サブマクロブロックS)と、対応する予測画像との差分量を予測誤差データとして求め、後段の直交変換部108に送出する。
Next, in step S514 the
ステップS515では直交変換部108は、予測誤差データに対して周知の直交変換を施すことで直交変換係数を生成する。そして生成した直交変換係数を後段の量子化部109に送出する。
In step S515, the
ステップS516では量子化部109は、入力された直交変換係数に対して周知の量子化処理を行うことで量子化直交変換係数を生成し、後段のエントロピー符号化部110、逆量子化部111に送出する。
In step S516, the
ステップS517ではエントロピー符号化部110は、量子化部109から入力された量子化直交変換係数と、動き予測部105から入力された符号化情報とに基づいて周知のエントロピー符号化を行って圧縮ストリームに多重化する。そしてステップS518でこれを外部に送出する。
In step S517, the
ステップS519では逆量子化部111は、量子化部109から入力された量子化直交変換係数に対して逆量子化を施すことで直交変換係数を生成し、逆直交変換部112に送出する。
In step S519, the
ステップS520では逆直交変換部112は、逆量子化部111から入力された直交変換係数に対して逆直交変換を施すことで予測誤差データを生成し、加算器104に送出する。
In step S <b> 520, the inverse
ステップS521では加算器104は、逆直交変換部112から入力された予測誤差データと、スイッチ部113から入力された予測画像とを加算することでフレーム画像を生成する。
In step S521, the
ステップS522ではこのフレーム画像に対して不図示のループフィルタでフィルタリングした後、参照フレームバッファ114に格納する。また、動きベクトルや参照フレーム番号に関する情報も、参照フレーム画像に対する付加データとして、参照フレーム画像と共に参照フレームバッファ114に格納する。
In step S522, the frame image is filtered by a loop filter (not shown) and stored in the
以上の説明により、本実施形態によれば、最適なブロックサイズの組み合わせ選択する前に、動き補償予測を行うか否か、行う場合にはその符号化の単位を決定することができるため、入力される画像によって大幅に処理量を低減する事が可能となる。 As described above, according to the present embodiment, it is possible to determine whether or not to perform motion compensation prediction before selecting an optimal combination of block sizes, and in that case, to determine the encoding unit. Depending on the image to be processed, the processing amount can be greatly reduced.
例えば、固定したカメラで撮影した背景画像のように、ほとんど動きのない画像ブロックの場合には、符号化対象フレームと従前のフレームとの差分量が極めて小いので、小ブロックでの動き補償は行わない。これにより、処理量を削減できる。 For example, in the case of an image block with little motion, such as a background image taken with a fixed camera, the amount of difference between the encoding target frame and the previous frame is extremely small, so motion compensation with a small block is not possible. Not performed. Thereby, the processing amount can be reduced.
[第2の実施形態]
図1に示した各部の一部若しくは全部をソフトウェアでもって実現し、残りをハードウェアでもって実現しても良い。この場合、例えば、このハードウェアをパーソナルコンピュータに挿入可能な機能拡張カードとして実現し、この機能拡張カードをパーソナルコンピュータに挿入する。また、このソフトウェアは、このパーソナルコンピュータが有するメモリ上に格納する。係る構成によれば、パーソナルコンピュータが有するCPUがこのソフトウェアを実行すると共に、この機能拡張カードの動作制御をも行うことにより、第1の実施形態で説明した処理(図5のフローチャートに従った処理)と同様の処理を行うことができる。
[Second Embodiment]
1 may be realized by software, and the rest may be realized by hardware. In this case, for example, the hardware is realized as a function expansion card that can be inserted into a personal computer, and the function expansion card is inserted into the personal computer. The software is stored on a memory included in the personal computer. According to such a configuration, the CPU included in the personal computer executes this software and also controls the operation of the function expansion card, whereby the processing described in the first embodiment (processing according to the flowchart of FIG. 5). ) Can be performed.
図6は、このコンピュータのハードウェア構成を示すブロック図である。 FIG. 6 is a block diagram showing the hardware configuration of this computer.
601はCPUで、RAM602やROM603に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行う。
602はRAMで、外部記憶装置606からロードされたプログラムやデータ、I/F(インターフェース)607を介して外部から受信したプログラムやデータを一時的に記憶するためのエリアを有する。更には、CPU601が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM602は各種のエリアを適宜提供することができる。
A
603はROMで、本コンピュータの設定データやブートプログラムなどを格納する。
604は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をCPU601に対して入力することができる。
An
605は表示部で、CRTや液晶画面などにより構成されており、CPU601による処理結果を画像や文字などでもって表示することができる。
A
606は外部記憶装置で、ハードディスクなどに代表される大容量情報記憶装置であって、ここにはOS(オペレーティングシステム)や、本コンピュータが行う各種の処理をCPU601に実行させるためのプログラムやデータ等が保存される。このプログラムやデータには、上記ソフトウェアや、機能拡張カード608の動作制御プログラムなども含まれる。また、外部記憶装置606には、符号化対象の1以上の動画像ファイルや、I/F607を介して外部から受信したプログラムやデータも保存される。
外部記憶装置606に保存されている各種の情報はCPU601による制御に従って適宜RAM602にロードされる。そしてCPU601がこのロードされたプログラムやデータを用いて処理を実行することにより、本コンピュータは第1の実施形態で説明したフレーム間動き補償による符号化処理を実行することができる。
Various types of information stored in the
607はI/Fで、本コンピュータをLANやインターネット等のネットワークに接続するためのものである。例えば、このネットワークに、動画像ファイルを保持する装置が接続されている場合には、本コンピュータはこのI/F607を介してこの装置から動画像ファイルを取得することができる。
608は機能拡張カードで、例えば、取得した動画像ファイルに対してフレーム間動き補償による符号化処理の一部若しくは全部を行う処理ボードである。
609は上述の各部を繋ぐバスである。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
[Other Embodiments]
Needless to say, the object of the present invention can be achieved as follows. That is, a recording medium (or storage medium) in which a program code of software that realizes the functions of the above-described embodiments is recorded is supplied to the system or apparatus. Then, the computer (or CPU or MPU) of the system or apparatus reads and executes the program code stored in the recording medium. In this case, the program code itself read from the recording medium realizes the functions of the above-described embodiment, and the recording medium on which the program code is recorded constitutes the present invention.
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 Further, by executing the program code read by the computer, an operating system (OS) or the like running on the computer performs part or all of the actual processing based on the instruction of the program code. Needless to say, the process includes the case where the functions of the above-described embodiments are realized.
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 Furthermore, it is assumed that the program code read from the recording medium is written in a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer. After that, based on the instruction of the program code, the CPU included in the function expansion card or function expansion unit performs part or all of the actual processing, and the function of the above-described embodiment is realized by the processing. Needless to say.
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。 When the present invention is applied to the recording medium, program code corresponding to the flowchart described above is stored in the recording medium.
Claims (6)
符号化対象フレームの画像データをマクロブロック毎に入力する入力手段と、
前記符号化対象フレームよりも過去に入力した複数フレームの画像データを、複数の参照フレームの画像データとして記憶する格納手段と、
前記符号化対象フレームにおける符号化対象マクロブロックと、前記符号化対象フレーム内の前記符号化対象マクロブロックの位置に対応する前記参照フレーム内の位置におけるマクロブロックと、の間の画素値の差分量を求める計算手段と、
予め設定された第1の閾値及び該第1の閾値よりも大きい第2の閾値と、前記差分量とを比較することで、前記符号化対象マクロブロックに対する符号化内容を決定する決定手段であって、
前記差分量が前記第1の閾値未満である場合、前記符号化対象マクロブロックを、動き補償を行わないブロックに決定し、
前記差分量が前記第1の閾値以上かつ前記第2の閾値未満である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定し、
前記差分量が前記第2の閾値以上である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定する前記決定手段と、
前記決定手段が前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックと類似するマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、該検索したマクロブロックと前記符号化対象マクロブロックとの間で検出された動きベクトルを用いてマクロブロック単位での動き補償を行って前記符号化対象マクロブロックを符号化する第1の符号化手段と、
前記決定手段が前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックを複数のサブマクロブロックに分割し、分割したそれぞれのサブマクロブロックと類似するサブマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、前記分割したそれぞれのサブマクロブロックについて検索したサブマクロブロックと前記分割したそれぞれのサブマクロブロックとの間で検出された動きベクトルを用いてサブマクロブロック単位での動き補償を行って前記分割したそれぞれのサブマクロブロックを符号化する第2の符号化手段と、
前記決定手段が前記符号化対象マクロブロックを、動き補償を行わないブロックに決定した場合には、前記符号化対象マクロブロックの動き探索を行わずに、動きベクトルなしを示す情報を符号化する第3の符号化手段と
を備えることを特徴とする画像符号化装置。 An image encoding device that encodes image data of each frame constituting a moving image,
Input means for inputting the image data of the encoding target frame for each macroblock;
Storage means for storing, as image data of a plurality of reference frames, image data of a plurality of frames input in the past from the encoding target frame;
Difference amount of pixel value between encoding target macroblock in encoding target frame and macroblock at position in reference frame corresponding to position of encoding target macroblock in encoding target frame A calculation means for obtaining
A determination unit that determines an encoding content for the encoding target macroblock by comparing the difference amount with a first threshold value set in advance and a second threshold value that is larger than the first threshold value. And
When the difference amount is less than the first threshold, the encoding target macroblock is determined as a block for which motion compensation is not performed,
If the difference amount is greater than or equal to the first threshold and less than the second threshold, the encoding target macroblock is determined as a block that performs motion compensation without being divided into sub-macroblocks;
If the difference amount is greater than or equal to the second threshold value, and said determining means for determining the block for motion compensation the encoded macroblock, after divided into sub-macroblock,
When the determining unit determines that the encoding target macroblock is a block that performs motion compensation without being divided into sub-macroblocks, a macroblock similar to the encoding target macroblock is determined as the plurality of reference frames. Each of the image data is subjected to motion compensation in units of macroblocks using motion vectors detected between the searched macroblock and the encoding target macroblock, and the encoding target macroblock is determined. First encoding means for encoding;
When the determination unit determines the block to be subjected to motion compensation after dividing the encoding target macroblock into sub-macroblocks, the encoding target macroblock is divided into a plurality of sub-macroblocks and divided. Submacroblocks similar to the respective submacroblocks are searched from the respective image data of the plurality of reference frames, and the submacroblocks searched for the respective divided submacroblocks and the respective divided submacroblocks Second encoding means for encoding each of the divided sub-macroblocks by performing motion compensation in units of sub-macroblocks using motion vectors detected between
When the determination unit determines the encoding target macroblock to be a block that does not perform motion compensation, the information indicating no motion vector is encoded without performing a motion search of the encoding target macroblock. 3. An image encoding device comprising: 3 encoding means.
符号化対象フレームの画像データをマクロブロック毎に入力する入力工程と、
前記符号化対象フレームよりも過去に入力した複数フレームの画像データを、複数の参照フレームの画像データとして記憶する工程と、
前記符号化対象フレームにおける符号化対象マクロブロックと、前記符号化対象フレーム内の前記符号化対象マクロブロックの位置に対応する前記参照フレーム内の位置におけるマクロブロックと、の間の画素値の差分量を求める計算工程と、
予め設定された第1の閾値及び該第1の閾値よりも大きい第2の閾値と、前記差分量とを比較することで、前記符号化対象マクロブロックに対する符号化内容を決定する決定工程であって、
前記差分量が前記第1の閾値未満である場合、前記符号化対象マクロブロックを、動き補償を行わないブロックに決定し、
前記差分量が前記第1の閾値以上かつ前記第2の閾値未満である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定し、
前記差分量が前記第2の閾値以上である場合、前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定する前記決定工程と、
前記決定工程で前記符号化対象マクロブロックを、サブマクロブロックに分割せずに動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックと類似するマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、該検索したマクロブロックと前記符号化対象マクロブロックとの間で検出された動きベクトルを用いてマクロブロック単位での動き補償を行って前記符号化対象マクロブロックを符号化する第1の符号化工程と、
前記決定工程で前記符号化対象マクロブロックを、サブマクロブロックに分割してから動き補償を行うブロックに決定した場合には、前記符号化対象マクロブロックを複数のサブマクロブロックに分割し、分割したそれぞれのサブマクロブロックと類似するサブマクロブロックを、前記複数の参照フレームのそれぞれの画像データから検索し、前記分割したそれぞれのサブマクロブロックについて検索したサブマクロブロックと前記分割したそれぞれのサブマクロブロックとの間で検出された動きベクトルを用いてサブマクロブロック単位での動き補償を行って前記分割したそれぞれのサブマクロブロックを符号化する第2の符号化工程と、
前記決定工程で前記符号化対象マクロブロックを、動き補償を行わないブロックに決定した場合には、前記符号化対象マクロブロックの動き探索を行わずに、動きベクトルなしを示す情報を符号化する第3の符号化工程と
を備えることを特徴とする画像符号化方法。 An image encoding method performed by an image encoding device that encodes image data of each frame constituting a moving image,
An input step of inputting image data of the encoding target frame for each macroblock;
Storing image data of a plurality of frames input in the past from the encoding target frame as image data of a plurality of reference frames;
Difference amount of pixel value between encoding target macroblock in encoding target frame and macroblock at position in reference frame corresponding to position of encoding target macroblock in encoding target frame A calculation process for obtaining
This is a determination step of determining the encoding content for the encoding target macroblock by comparing the difference amount with a first threshold value set in advance and a second threshold value larger than the first threshold value. And
When the difference amount is less than the first threshold, the encoding target macroblock is determined as a block for which motion compensation is not performed,
If the difference amount is greater than or equal to the first threshold and less than the second threshold, the encoding target macroblock is determined as a block that performs motion compensation without being divided into sub-macroblocks;
If the difference amount is greater than or equal to the second threshold value, the encoding target macro-blocks, and the determination step of determining a block to be motion-compensated from divided into sub-macroblock,
If the encoding target macroblock is determined to be a block that performs motion compensation without being divided into sub-macroblocks in the determining step, a macroblock similar to the encoding target macroblock is determined as the plurality of reference frames. Each of the image data is subjected to motion compensation in units of macroblocks using motion vectors detected between the searched macroblock and the encoding target macroblock, and the encoding target macroblock is determined. A first encoding step for encoding;
In the determination step, when the encoding target macroblock is determined to be a block to be subjected to motion compensation after being divided into sub macroblocks, the encoding target macroblock is divided into a plurality of submacroblocks and divided. Submacroblocks similar to the respective submacroblocks are searched from the respective image data of the plurality of reference frames, and the submacroblocks searched for the respective divided submacroblocks and the respective divided submacroblocks A second encoding step of encoding each of the divided sub-macroblocks by performing motion compensation in units of sub-macroblocks using motion vectors detected between
When the encoding target macroblock is determined as a block for which motion compensation is not performed in the determining step, information indicating no motion vector is encoded without performing a motion search for the encoding target macroblock. And an encoding step. 3. An image encoding method comprising:
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006269016A JP4906458B2 (en) | 2006-09-29 | 2006-09-29 | Image coding apparatus and image coding method |
US11/772,630 US8270490B2 (en) | 2006-07-06 | 2007-07-02 | Motion vector detection apparatus, motion vector detection method, image encoding apparatus, image encoding method, and computer program |
US13/600,466 US9264735B2 (en) | 2006-07-06 | 2012-08-31 | Image encoding apparatus and method for allowing motion vector detection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006269016A JP4906458B2 (en) | 2006-09-29 | 2006-09-29 | Image coding apparatus and image coding method |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008092150A JP2008092150A (en) | 2008-04-17 |
JP2008092150A5 JP2008092150A5 (en) | 2009-11-12 |
JP4906458B2 true JP4906458B2 (en) | 2012-03-28 |
Family
ID=39375838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006269016A Expired - Fee Related JP4906458B2 (en) | 2006-07-06 | 2006-09-29 | Image coding apparatus and image coding method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4906458B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2373034A4 (en) * | 2008-12-08 | 2012-11-21 | Sharp Kk | Image encoder and image decoder |
KR101487686B1 (en) * | 2009-08-14 | 2015-01-30 | 삼성전자주식회사 | Method and apparatus for video encoding, and method and apparatus for video decoding |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2716703B2 (en) * | 1987-09-22 | 1998-02-18 | 富士通株式会社 | Variable block size motion compensation method |
JPH0832969A (en) * | 1994-07-12 | 1996-02-02 | Canon Inc | Motion vector detector |
JPH1051788A (en) * | 1996-08-05 | 1998-02-20 | Nippon Hoso Kyokai <Nhk> | Device and method for estimating dynamic image motion, and recording medium recording dynamic image motion estimate control program |
US6529634B1 (en) * | 1999-11-08 | 2003-03-04 | Qualcomm, Inc. | Contrast sensitive variance based adaptive block size DCT image compression |
JP3560946B2 (en) * | 2000-11-01 | 2004-09-02 | 株式会社オフィスノア | Moving image information compression method and system |
JP3968774B2 (en) * | 2002-01-08 | 2007-08-29 | ソニー株式会社 | Information processing apparatus, information processing method, recording medium, and program |
JP2003284091A (en) * | 2002-03-25 | 2003-10-03 | Toshiba Corp | Motion picture coding method and motion picture coding apparatus |
JP2005268879A (en) * | 2004-03-16 | 2005-09-29 | Matsushita Electric Ind Co Ltd | Image coding method and apparatus thereof |
-
2006
- 2006-09-29 JP JP2006269016A patent/JP4906458B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008092150A (en) | 2008-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4898467B2 (en) | Coding mode determination method and apparatus for variable block size motion prediction | |
KR101471831B1 (en) | Image prediction encoding device, image prediction decoding device, image prediction encoding method, image prediction decoding method, image prediction encoding program, and image prediction decoding program | |
JP5111127B2 (en) | Moving picture coding apparatus, control method therefor, and computer program | |
EP2805499B1 (en) | Video decoder, video encoder, video decoding method, and video encoding method | |
JP4519933B2 (en) | Moving picture coding apparatus and moving picture coding method | |
US20090060045A1 (en) | Moving picture encoding apparatus and moving picture encoding method | |
US9332275B2 (en) | Methods, apparatuses, and programs for encoding and decoding picture | |
JP2009509403A (en) | Integrated space-time prediction method | |
KR20170045013A (en) | Apparatus and method for encoding data | |
JP2008017305A (en) | Image processor and processing method | |
JP4074868B2 (en) | Image coding control method and apparatus | |
JP4732184B2 (en) | Moving picture encoding apparatus and control method therefor, computer program, and storage medium | |
JP2009118233A (en) | Moving image encoding apparatus and decoding apparatus | |
JP2004215275A (en) | Motion compensation based improved noise prediction method and apparatus, and moving image encoding method and apparatus using the same | |
JP4922101B2 (en) | Information processing apparatus and inter prediction mode determination method | |
JP4906458B2 (en) | Image coding apparatus and image coding method | |
JP5111128B2 (en) | Encoding apparatus, encoding apparatus control method, and computer program | |
KR100771640B1 (en) | H.264 encoder having a fast mode determinning function | |
JP2005244749A (en) | Dynamic image encoding device | |
JP2008053848A (en) | Image processor and image processing method | |
JP2013121044A (en) | Image encoder and image encoding method | |
JP5171658B2 (en) | Image encoding device | |
JP4857243B2 (en) | Image encoding apparatus, control method therefor, and computer program | |
JP4253572B2 (en) | Image coding apparatus, image coding method, and image coding program | |
JP2008263549A (en) | Moving image encoder and moving image encoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090929 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090929 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110708 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110826 |
|
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: 20120106 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120110 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4906458 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |