JP2008125078A - Motion compensation method and apparatus supporting multi-codec - Google Patents

Motion compensation method and apparatus supporting multi-codec Download PDF

Info

Publication number
JP2008125078A
JP2008125078A JP2007290086A JP2007290086A JP2008125078A JP 2008125078 A JP2008125078 A JP 2008125078A JP 2007290086 A JP2007290086 A JP 2007290086A JP 2007290086 A JP2007290086 A JP 2007290086A JP 2008125078 A JP2008125078 A JP 2008125078A
Authority
JP
Japan
Prior art keywords
pixel
value
motion compensation
filter
pixels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007290086A
Other languages
Japanese (ja)
Other versions
JP5698428B2 (en
Inventor
Doohyun Kim
斗 ▲ひょん▼ 金
Hyun-Sang Park
賢 相 朴
Shi-Hwa Lee
時 和 李
Dokyo Kin
度 亨 金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020070108448A external-priority patent/KR101354659B1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2008125078A publication Critical patent/JP2008125078A/en
Application granted granted Critical
Publication of JP5698428B2 publication Critical patent/JP5698428B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a motion compensation method and apparatus supporting multi-codec. <P>SOLUTION: The motion compensation method comprises the steps of: using at least one of a plurality of methods for interpolating pixels of a reference image corresponding to a current image, namely, vertical linear filtering, horizontal linear filtering and cubic filtering in accordance with codec information representing any one of a plurality of codecs such as MPEG4, H.264/AVC and VC1, to calculate a value of a pixel positioned between pixels of the reference image from values of the pixels of the reference image; and restoring the current image by adding motion compensation data including the calculated pixel value to a difference between the reference image and the current image. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、動画を復号化する方法及び装置に係り、特に、動きを補償する方法及び装置に関する。   The present invention relates to a method and apparatus for decoding a moving image, and more particularly, to a method and apparatus for compensating for motion.

動画の復号化は、色々な処理過程を経る。このような過程は、エントロピー復号化、逆変換、逆量子化、及び動き補償で構成される。これらのうち動き補償が、最長のプロセシング時間がかかる。動き補償とは、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、参照画像から参照画像と現在画像との間に共有される部分を抽出し、このように抽出されたデータ(以下“動き補償データ”という)と、参照画像と現在画像との差データ(以下“レジデューデータ”という)とを合算することによって、現在画像を復元する過程を意味する。このように、動き補償処理過程は、多くの画像データを処理せねばならないため、メモリアクセス量及び演算量が非常に多い。このような動き補償の処理量は、画像のサイズに比例するため、画像のサイズが大きくなれば、最悪の場合には、所望の時間内に画像全体が処理されず、その結果、自然な動画再生が不可能になることもある。   Decoding a moving image goes through various processes. Such a process includes entropy decoding, inverse transform, inverse quantization, and motion compensation. Of these, motion compensation takes the longest processing time. Motion compensation refers to a motion vector that represents a displacement between a block of a current image and a corresponding block of a reference image, extracts a portion shared between the reference image and the current image from the reference image, Means the process of restoring the current image by adding the extracted data (hereinafter referred to as “motion compensation data”) and the difference data between the reference image and the current image (hereinafter referred to as “residue data”). To do. In this way, the motion compensation process requires a large amount of memory access and computation because a lot of image data must be processed. Since the amount of processing for such motion compensation is proportional to the size of the image, if the size of the image increases, in the worst case, the entire image is not processed within the desired time, resulting in natural video. Reproduction may be impossible.

ほとんどの動画コーデックエンジニアは、動画コーデックをソフトウェアの形態で具現することを好む。これは、動画コーデックをハードウェアで具現する場合に比べて、その開発期間が短縮され、かつコストが低下し、動画コーデックの再使用が容易であり、特に、動画コーデック自体の柔軟性に優れて動画コーデックにエラーが発生する場合に、これを容易に修正しうるという長所があるためである。しかし、動画コーデックの核心は、リアルタイム処理にある。たとえソフトウェアの具現が多くの長所を有しているとしても、動画コーデックが画像の符号化及び復号化をリアルタイムで処理できなければ、無駄になる。一方、動画コーデックをハードウェアで具現する場合には、開発期間が長くなり、コストが上昇し、柔軟性が低くて、動画コーデックの修正をせねばならない場合に、動画コーデックの全体構造を変更する危険が伴うこともある。しかし、何よりも動画コーデックをハードウェアで具現する場合には、ターゲットに最適化された具現が可能であるため、ソフトウェアで処理する場合より動画符号化及び復号化の速度が飛躍的に速くなるという長所がある。   Most video codec engineers prefer to implement video codecs in software form. Compared to the case where the video codec is implemented in hardware, the development period is shortened, the cost is reduced, and the video codec can be easily reused. In particular, the video codec itself has excellent flexibility. This is because when an error occurs in the video codec, this can be easily corrected. However, the heart of video codecs is real-time processing. Even if the implementation of the software has many advantages, it will be useless if the video codec cannot process the encoding and decoding of images in real time. On the other hand, if the video codec is implemented in hardware, the development period will be long, the cost will increase, the flexibility will be low, and the video codec's overall structure will change if the video codec needs to be modified It can be dangerous. However, above all, when the video codec is implemented in hardware, it can be optimized for the target, so the video encoding and decoding speed is dramatically faster than when processing with software. There are advantages.

前記のようなハードウェア具現方式及びソフトウェア具現方式のそれぞれの相反した長短所によって、ほとんどの動画コーデックエンジニアは、この2つの方式を混合して多用する。すなわち、動画コーデックを構成するモジュールは、各特徴によってS/Wで処理する部分とH/Wで処理する部分とに分けて具現される。この場合、必須的にハードウェアで具現せねばならない部分が動き補償である。動き補償に要求されるデータ演算量も多いが、何よりもメモリアクセスが他の部分に比べてはるかに多いため、ソフトウェア的な処理が不適合であった。   Due to the conflicting advantages and disadvantages of the hardware implementation method and the software implementation method as described above, most video codec engineers mix and use these two methods. That is, the modules constituting the moving image codec are implemented by dividing each part into a part to be processed by S / W and a part to be processed by H / W. In this case, motion compensation is an essential part that must be implemented in hardware. The amount of data computation required for motion compensation is large, but above all, memory access is much larger than other parts, so software processing is incompatible.

最近、動画コーデック具現の重要なイッシュは、一つの動画プレイヤで多様な動画フォーマットを再生可能にすることである。主に多く使われる動画フォーマットは、MPEG4、VC1、H.264/AVCである。しかし、このような3つのコーデックを一つの機器に具現しようとするとき、それぞれのコーデックに対する動き補償をそれぞれ具現すれば、ソフトウェアで処理する場合には、データ演算量及びメモリアクセス量が大きく増加するという問題が発生し、ハードウェアで具現する場合にも、ハードウェアの大きさ及び製作コストが上昇するという問題点が発生する。   Recently, an important issue for implementing a video codec is to enable a variety of video formats to be played back by a single video player. Video formats that are mainly used are MPEG4, VC1, and H.264 / AVC. However, when implementing these three codecs on a single device, if the motion compensation for each codec is implemented, the amount of data computation and memory access will greatly increase when processed by software. Even when implemented in hardware, there is a problem in that the size and manufacturing cost of hardware increase.

本発明が解決しようとする技術的課題は、データ演算量及びメモリアクセスを減らし、ハードウェアの大きさ及び製作コストを減少させるためのマルチコーデックを支援しつつも、動画の再生をリアルタイムで処理可能にし、動き補償のためのチップのサイズ縮小及びチップ製作コストを低下させる装置及び方法を提供することである。また、前記の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することである。   The technical problem to be solved by the present invention is that the playback of moving images can be processed in real time while supporting multi-codecs to reduce the amount of data calculation and memory access, and reduce the size and production cost of hardware It is another object of the present invention to provide an apparatus and method for reducing the chip size and reducing the chip manufacturing cost for motion compensation. Another object of the present invention is to provide a computer-readable recording medium on which a program for causing the computer to execute the method is recorded.

本発明が解決しようとする技術的課題は、前記のような技術的課題に限定されず、さらに他の技術的課題が存在しうる。これは、当業者ならば、下記の記載から明確に分かる。   The technical problem to be solved by the present invention is not limited to the technical problem as described above, and other technical problems may exist. This can be clearly understood by those skilled in the art from the following description.

前記課題を解決するための本発明による動き補償方法は、(a)複数のコーデックのうち何れか一つを表すコーデック情報によって、現在画像に対応する参照画像の画素を補間する複数の方式のうち少なくとも一つの方式を利用して、前記参照画像の画素の値から前記画素の間に位置した画素の値を算出するステップと、(b)前記算出された画素値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元するステップとを含む。   The motion compensation method according to the present invention for solving the above-described problem is: (a) Among a plurality of methods for interpolating pixels of a reference image corresponding to a current image by codec information representing any one of a plurality of codecs. Calculating a value of a pixel located between the pixels from a value of a pixel of the reference image using at least one method; and (b) motion compensation data including the calculated pixel value; Restoring the current image by adding a difference between a reference image and the current image.

前記(a)ステップは、(a1)前記コーデック情報によって、選択的に前記参照画像の何れか一ブロックの何れか一つの垂直ラインに位置した画素の値から、前記垂直ラインに位置した画素の間に位置した画素の値を算出するステップと、(a2)前記コーデック情報によって、選択的に前記ブロックの何れか一つの水平ラインに位置した画素の値から、前記水平ラインに位置した画素の間に位置した画素の値を算出するステップと、(a3)前記コーデック情報によって、選択的に前記ブロックの何れか一つのキュービックに位置した画素の値から、前記キュービックに位置した画素の間に位置した画素の値を算出するステップと、を含む。   In the step (a), (a1) a value between pixels positioned on any one vertical line of any one block of the reference image is selectively determined based on the codec information. Calculating a value of a pixel located at a position between (a2) a pixel value located on any one horizontal line of the block and a pixel located on the horizontal line according to the codec information. A step of calculating a value of a pixel located; and (a3) a pixel located between pixels located in the cubic from a value of a pixel located in any one of the blocks selectively according to the codec information Calculating a value of.

前記課題を解決するために、本発明は、前記の動き補償方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。   In order to solve the above-mentioned problems, the present invention provides a computer-readable recording medium on which a program for causing a computer to execute the motion compensation method is recorded.

前記課題を解決するための本発明による動き補償装置は、複数のコーデックのうち何れか一つを表すコーデック情報によって、現在画像に対応する参照画像の画素を補間する複数の方式のうち少なくとも一つの方式を利用して、前記参照画像の画素の値から前記画素の間に位置した画素の値を算出する動き補償エンジンと;前記算出された画素値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元する加算器とを備える。   A motion compensation apparatus according to the present invention for solving the above-described problem is provided by at least one of a plurality of methods for interpolating pixels of a reference image corresponding to a current image by codec information representing any one of a plurality of codecs. A motion compensation engine that calculates a value of a pixel located between the pixels from a value of a pixel of the reference image using a method; motion compensation data including the calculated pixel value; the reference image; An adder for restoring the current image by adding the difference with the current image.

前記動き補償エンジンは、前記コーデック情報によって選択的に前記参照画像の何れか一ブロックの何れか一つの垂直ラインに位置した画素の値から前記垂直ラインに位置した画素の間に位置した画素の値を算出する垂直フィルタと、前記コーデック情報によって選択的に前記ブロックの何れか一つの水平ラインに位置した画素の値から前記水平ラインに位置した画素の間に位置した画素の値を算出する水平フィルタと、前記コーデック情報によって選択的に前記ブロックの何れか一つのキュービックに位置した画素の値から前記キュービックに位置した画素の間に位置した画素の値を算出するキュービックフィルタとを備える。   The motion compensation engine may be configured to select a value of a pixel located between a value of a pixel located on any one vertical line of any one block of the reference image and a pixel located on the vertical line according to the codec information. And a horizontal filter that calculates a value of a pixel located between pixels located on the horizontal line from a value of a pixel located on any one horizontal line of the block selectively according to the codec information And a cubic filter that calculates a value of a pixel located between pixels located in the cubic from a value of a pixel located in any one of the blocks selectively according to the codec information.

本発明によれば、MPEG4、H.264/AVC、VC1のような複数のコーデックのうち何れか一つを表すコーデック情報によって、垂直フィルタリング、水平フィルタリング、キュービックフィルタリングなどの複数のコーデック間の共通的な部分を選択的に行うことによって、マルチコーデックを支援する動き補償をハードウェアで具現することによってチップサイズを最小化しうる。特に、前記のように、共通的な部分が選択的に行えるようにモジュール化することにより、ハードウェアへの具現を容易にし、これと共にチップに所要される部品の数の減少によってチップの製作コストが低下する。   According to the present invention, a common codec among a plurality of codecs such as vertical filtering, horizontal filtering, cubic filtering, etc., according to codec information representing any one of a plurality of codecs such as MPEG4, H.264 / AVC, and VC1. By selectively performing this part, the chip size can be minimized by implementing the motion compensation supporting the multi-codec in hardware. In particular, as described above, by modularizing so that common parts can be selectively performed, implementation in hardware is facilitated, and at the same time, the number of parts required for the chip is reduced, and the manufacturing cost of the chip is reduced. Decreases.

また、本発明によれば、外部メモリからデータを受信するために待機する区間及び外部メモリからデータを受信する区間の間、垂直フィルタリング、水平フィルタリング、キュービックフィルタリングがパイプライン形態で行われることによって動き補償処理時間を最小化し、これにより、マルチコーデックを支援しつつも、画像の符号化及び復号化がリアルタイムで処理されて、マルチコーデックを支援するDMB再生装置を容易に製作しうる。   In addition, according to the present invention, vertical filtering, horizontal filtering, and cubic filtering are performed in a pipeline form during a period of waiting to receive data from the external memory and a period of receiving data from the external memory. The compensation processing time is minimized, so that a DMB playback device supporting multi-codec can be easily manufactured by encoding and decoding images in real time while supporting multi-codec.

以下、図面を参照して本発明の実施形態を詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

図1は、多様な動画圧縮コーデックのそれぞれで使われる動き補償のためのフィルタの特性を表で示す図である。さらなる高解像度の画像を復元するために、現在動画圧縮コーデックでは、動きベクトルが参照画像内の画素、すなわち整数画素のみを指示せず、整数画素の間の1/2に位置した1/2画素または整数画素の間の1/4に位置した1/4画素も指示するようにしている。しかし、1/2画素及び1/4画素は、参照画像に本来存在しない画素であるため、この画素の値は、画素補間法を利用して生成される。図1は、このような画素補間に使われるフィルタの特性を動画圧縮コーデック別に示す。   FIG. 1 is a table showing characteristics of a filter for motion compensation used in each of various video compression codecs. In order to restore a higher resolution image, the current video compression codec has a motion vector that does not indicate only pixels in the reference image, i.e., integer pixels, but 1/2 pixels located in 1/2 between integer pixels. Alternatively, a ¼ pixel located at ¼ between integer pixels is also indicated. However, since the ½ pixel and the ¼ pixel are pixels that do not originally exist in the reference image, the value of this pixel is generated using a pixel interpolation method. FIG. 1 shows the characteristics of a filter used for such pixel interpolation for each moving image compression codec.

図1を参照するに、MPEG4、H.264/AVC、VC1の色差成分(chrominance component)は、何れもキュービックフィルタ(cubic filter)を使用しており、VC1は、リニアフィルタ(linear filter)を共に使用する。また、輝度成分(luminance component)については、MPEG4は、キュービックフィルタを使用し、H.264/AVCは、リニアフィルタを使用し、VC1は、キュービックフィルタとリニアフィルタとを共に使用しているということが分かる。以下では、MPEG4、H.264/AVC、VC1による画素補間の形を図2Aないし図2Eを参照しつつ詳細に説明する。   Referring to FIG. 1, the chrominance components of MPEG4, H.264 / AVC, and VC1 all use a cubic filter, and VC1 has both a linear filter and a linear filter. use. Regarding luminance components, MPEG4 uses a cubic filter, H.264 / AVC uses a linear filter, and VC1 uses both a cubic filter and a linear filter. I understand. Hereinafter, the form of pixel interpolation by MPEG4, H.264 / AVC, and VC1 will be described in detail with reference to FIGS. 2A to 2E.

図2Aは、H.264/AVCによる輝度成分の画素補間の形を示す図である。図2Aに示された大文字アルファベットは、整数画素を表し、小文字アルファベットは、サブ画素を表す。整数画素は、画素補間に使われる本来の画素を意味し、サブ画素は、整数画素を利用して画素補間によって生成された値を有する画素、すなわち1/2画素、1/4画素を意味する。図2Aを参照するに、H.264/AVCの輝度成分に対する画素補間は、1/4画素単位までなされる。まず、図2Aに示された1/2画素、すなわち、b、h、m、s位置の画素は、次のような式(1)によって6個の係数を有する6タップフィルタを利用して計算される。   2A is a diagram illustrating a form of pixel interpolation of luminance components according to H.264 / AVC. The uppercase alphabet shown in FIG. 2A represents an integer pixel, and the lowercase alphabet represents a subpixel. The integer pixel means an original pixel used for pixel interpolation, and the sub-pixel means a pixel having a value generated by pixel interpolation using the integer pixel, that is, 1/2 pixel or 1/4 pixel. . Referring to FIG. 2A, pixel interpolation for luminance components of H.264 / AVC is performed up to 1/4 pixel unit. First, the 1/2 pixel shown in FIG. 2A, that is, the pixel at the b, h, m, and s positions is calculated using a 6-tap filter having 6 coefficients according to the following equation (1). Is done.

b1=(E−5*F+20*G+20*H−5*I+J)
h1=(A−5*C+20*G+20*M−5*R+T)
b=Clip1Y((b1+16)>>5)
h=Clip1Y((h1+16)>>5) (1)
j1=cc−5*dd+20*h1+20*m1−5*ee+ff、または
j1=aa−5*bb+20*b1+20*s1−5*gg+hh
j=Clip1Y((j1+512)>>10)
s=Clip1Y((s1+16)>>5)
m=Clip1Y((m1+16)>>5)
前記数式で“*”は、乗算演算を表す。以下でも同様である。
b1 = (E-5 * F + 20 * G + 20 * H-5 * I + J)
h1 = (A-5 * C + 20 * G + 20 * M-5 * R + T)
b = Clip1Y ((b1 + 16) >> 5)
h = Clip1Y ((h1 + 16) >> 5) (1)
j1 = cc-5 * dd + 20 * h1 + 20 * m1-5 * ee + ff, or j1 = aa-5 * bb + 20 * b1 + 20 * s1-5 * gg + hh
j = Clip1Y ((j1 + 512) >> 10)
s = Clip1Y ((s1 + 16) >> 5)
m = Clip1Y ((m1 + 16) >> 5)
In the above formula, “*” represents a multiplication operation. The same applies to the following.

次いで、図2Aに示された1/4画素、すなわち、残りの画素は、次のような式(2)によって平均フィルタを利用して計算される。この平均フィルタは、2個の係数を有する2タップフィルタの一種であって、以下でも同様である。   Next, the ¼ pixel shown in FIG. 2A, that is, the remaining pixels are calculated using an average filter according to the following equation (2). This average filter is a kind of 2-tap filter having two coefficients, and the same applies to the following.

a=(G+b+1)>>1
c=(H+b+1)>>1
d=(G+h+1)>>1
n=(M+h+1)>>1
f=(b+j+1)>>1
i=(h+j+1)>>1
k=(j+m+1)>>1 (2)
q=(j+s+1)>>1
e=(b+h+1)>>1
g=(b+m+1)>>1
p=(h+s+1)>>1
r=(m+s+1)>>1
前記の式(1)及び(2)のうち、表記“>>”は、右側シフト演算を意味し、“>>”の次の数字は、何ビットをシフトするかを表す。例えば、“>>1”は、1ビットシフトを意味し、二等分と同等である。以下でも同様である。
a = (G + b + 1) >> 1
c = (H + b + 1) >> 1
d = (G + h + 1) >> 1
n = (M + h + 1) >> 1
f = (b + j + 1) >> 1
i = (h + j + 1) >> 1
k = (j + m + 1) >> 1 (2)
q = (j + s + 1) >> 1
e = (b + h + 1) >> 1
g = (b + m + 1) >> 1
p = (h + s + 1) >> 1
r = (m + s + 1) >> 1
In the above formulas (1) and (2), the notation “>>” means a right shift operation, and the number after “>>” represents how many bits are shifted. For example, “>> 1” means 1-bit shift, which is equivalent to bisection. The same applies to the following.

図2Bは、H.264/AVCによる色差成分の画素補間の様子を示す図である。図2Bに示されたP1、P2、P3、P4は、整数画素を表し、4個の矢印の収斂点は、サブ画素を表す。図2Bを参照するに、H.264/AVCの色差成分に対する画素補間は、固定された位置ではない、任意の位置でなされる。すなわち、図2Bに示された任意の位置の画素は、次のような式(3)によってキュービックフィルタを使用して計算される。このキュービックフィルタは、4個の係数を有する4タップフィルタの一種であって、以下でも同様である。   2B is a diagram illustrating a state of pixel interpolation of color difference components by H.264 / AVC. P1, P2, P3, and P4 shown in FIG. 2B represent integer pixels, and the convergence points of the four arrows represent sub-pixels. Referring to FIG. 2B, pixel interpolation for the color difference component of H.264 / AVC is performed at an arbitrary position, not a fixed position. That is, a pixel at an arbitrary position shown in FIG. 2B is calculated using a cubic filter according to the following equation (3). This cubic filter is a kind of 4-tap filter having four coefficients, and the same applies to the following.

P=((8−xFrc)*(8−yFrc)*P1+xFrc*(8−yFrc)*P2+(8−xFrc)*yFrc*P3+xFrc*yFrc*P4+32)>>6 (3)
図2Cは、VC1によってリニアフィルタを使用した画素補間の形を示す図である。図2Cに示されたP1、P2、P3、P4は、整数画素を表し、整数画素P2とP3との間に位置した点は、サブ画素を表す。図2Cを参照するに、VC1によってリニアフィルタを使用した画素補間は、1/4画素単位までなされる。すなわち、図2Cに示された黒点に該当する1/2画素及び1/4画素は、次のような式(4)によってキュービックフィルタを使用して計算される。
P = ((8−xFrc) * (8−yFrc) * P1 + xFrc * (8−yFrc) * P2 + (8−xFrc) * yFrc * P3 + xFrc * yFrc * P4 + 32) >> 6 (3)
FIG. 2C is a diagram illustrating a form of pixel interpolation using a linear filter by VC1. P1, P2, P3, and P4 shown in FIG. 2C represent integer pixels, and points located between the integer pixels P2 and P3 represent sub-pixels. Referring to FIG. 2C, pixel interpolation using a linear filter by VC1 is performed up to 1/4 pixel unit. That is, the ½ pixel and ¼ pixel corresponding to the black dots shown in FIG. 2C are calculated using a cubic filter according to the following equation (4).

P=(a*P1+b*P2+c*P3+d*P4+rc)>>s (4)
前記の式(4)のうち、表記“a”、“b”、“c”、“d”は、キュービックフィルタの4個のタップのそれぞれの係数であって、サブ画素の位置によってその値が決定される。また、表記“s”も、サブ画素の位置によってその値が決定される。
P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s (4)
In the above equation (4), the notations “a”, “b”, “c”, and “d” are the coefficients of the four taps of the cubic filter, and their values depend on the position of the sub-pixel. It is determined. Also, the value of the notation “s” is determined by the position of the sub-pixel.

図2Dは、MPEG4による画素補間の様子を示す図である。図2Dに示されたP1、P2、P3、P4は、整数画素を表し、整数画素の間に位置した黒点は、サブ画素を表す。図2Dを参照するに、MPEG4の輝度成分及び色差成分に対する画素補間は、1/2画素単位までなされる。例えば、P1の位置をdx=0、dy=0とすれば、図2Cに示された黒色点に該当する1/2画素は、次のような式(5)によってキュービックフィルタを使用して計算される。   FIG. 2D is a diagram showing a state of pixel interpolation by MPEG4. P1, P2, P3, and P4 shown in FIG. 2D represent integer pixels, and black dots positioned between the integer pixels represent sub-pixels. Referring to FIG. 2D, pixel interpolation for MPEG4 luminance and chrominance components is performed up to ½ pixel unit. For example, if the position of P1 is dx = 0 and dy = 0, the ½ pixel corresponding to the black point shown in FIG. 2C is calculated using a cubic filter according to the following equation (5). Is done.

dx=1、dy=0:P=(P1+P2+1−rc)>>1
dx=0、dy=1:P=(P1+P3+1−rc)>>1 (5)
dx=1、dy=1:P=(P1+P2+P3+P4−rc)>>1
前記の式(5)のうち、表記“rc”は、ラウンド制御(rounding control)を意味し、0または1を有する。以下でも同様である。
dx = 1, dy = 0: P = (P1 + P2 + 1−rc) >> 1
dx = 0, dy = 1: P = (P1 + P3 + 1−rc) >> 1 (5)
dx = 1, dy = 1: P = (P1 + P2 + P3 + P4-rc) >> 1
In the above formula (5), the notation “rc” means rounding control and has 0 or 1. The same applies to the following.

図2Eは、VC1によってキュービックフィルタを使用した画素補間の様子を示す図である。図2Eに示されたP1、P2、P3、P4は、整数画素を表し、4個の矢印の収斂点は、サブ画素を表す。図2Eを参照するに、H.264/AVCの色差成分に対する画素補間は、固定され位置ではない、任意の位置でなされる。すなわち、図2Bに示された任意の位置の画素は、次のような式(6)によってキュービックフィルタを使用して計算される。   FIG. 2E is a diagram illustrating a state of pixel interpolation using a cubic filter by VC1. P1, P2, P3, and P4 shown in FIG. 2E represent integer pixels, and the convergence points of the four arrows represent sub-pixels. Referring to FIG. 2E, pixel interpolation for the color difference component of H.264 / AVC is performed at an arbitrary position that is not a fixed position. That is, a pixel at an arbitrary position shown in FIG. 2B is calculated using a cubic filter according to the following equation (6).

P=(a*P1+b*P2+c*P3+d*P4+rc)>>s (6)
前記の式(6)のうち、表記“a”、“b”、“c”、“d”は、キュービックフィルタの4個のタップのそれぞれの係数であって、サブ画素の位置によってその値が決定される。また、表記“s”も、サブ画素の位置によってその値が決定される。
P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s (6)
In the above equation (6), the notations “a”, “b”, “c”, and “d” are the coefficients of the four taps of the cubic filter, and the values depend on the position of the sub-pixel. It is determined. Also, the value of the notation “s” is determined by the position of the sub-pixel.

前記のように、MPEG4、H.264/AVC、VC1で使われるフィルタのそれぞれのタップ数と係数値とは異なるが、このような係数値は、調整が可能であり、あるタップの係数値を0にすることによってタップ数も調整が可能である。例えば、6タップフィルタを構成する6個のタップのうち、2個のタップの係数値を0にすることによって、この6タップフィルタは、4タップフィルタとして使われる。また、4タップフィルタを構成する4個のタップのうち、2個のタップの係数値を0にすることによって、この4タップフィルタは、2タップフィルタ、すなわち平均フィルタとして使われる。したがって、MPEG4、H.264/AVC、VC1のそれぞれで使われるフィルタの間には、相互共有できる部分が存在するということが分かり、これを利用すれば、前記の3つのコーデック(CODEC)を何れもさらに小さい数のフィルタを利用して動き補償を効率的に処理しうる。   As described above, the number of taps and the coefficient values of the filters used in MPEG4, H.264 / AVC, and VC1 are different from each other, but such coefficient values can be adjusted. By setting it to 0, the number of taps can be adjusted. For example, the 6-tap filter is used as a 4-tap filter by setting the coefficient value of 2 taps out of 6 taps constituting the 6-tap filter to 0. Further, by setting the coefficient value of two taps out of four taps constituting the 4-tap filter to 0, this 4-tap filter is used as a 2-tap filter, that is, an average filter. Therefore, it can be seen that there is a part that can be mutually shared between the filters used in MPEG4, H.264 / AVC, and VC1, and if this is used, any of the above three codecs (CODEC) can be used. However, motion compensation can be efficiently processed using a smaller number of filters.

前記の3つのコーデックのうち、H.264/AVCが最も複雑な方式で画素を補間する。しかし、H.264/AVCは、輝度成分に対してリニアフィルタリング方式の6タップフィルタを使用し、色差成分に対しては、キュービックフィルタリング方式の4タップフィルタを使用するため、これらは、MPEG4、VC1のキュービックフィルタリング方式の4タップフィルタ及びVC1のリニアフィルタリング方式の4タップフィルタに使われる。したがって、MPEG4、VC1の画素補間法は、H.264/AVCの画素補間法のサブセットと言える。   Among the above three codecs, H.264 / AVC interpolates pixels in the most complicated manner. However, since H.264 / AVC uses a linear filtering 6-tap filter for the luminance component and a cubic filtering 4-tap filter for the chrominance component, these are MPEG4 and VC1. This is used for the cubic filtering type 4-tap filter and the VC1 linear filtering type 4-tap filter. Therefore, the pixel interpolation method of MPEG4 and VC1 can be said to be a subset of the pixel interpolation method of H.264 / AVC.

すなわち、6個のタップを有する一つのリニアフィルタは、その6個のタップのそれぞれの係数値を調整することにより、MPEG4のリニアフィルタ、H.264/AVCのリニアフィルタ、VC1のリニアフィルタの何れにも使われる。また、4個のタップを有するキュービックフィルタは、その4個のタップのそれぞれの係数値を調整することにより、MPEG4のキュービックフィルタ、H.264/AVCのキュービックフィルタ、VC1のキュービックフィルタの何れもに使われる。しかし、H.264/AVCによる輝度成分の画素補間過程は、式(2)による平均フィルタリング過程を要求している。   In other words, one linear filter having six taps can be selected from the MPEG4 linear filter, the H.264 / AVC linear filter, and the VC1 linear filter by adjusting the coefficient value of each of the six taps. Also used for. In addition, a cubic filter having four taps is adjusted to each of the MPEG4 cubic filter, the H.264 / AVC cubic filter, and the VC1 cubic filter by adjusting the coefficient values of the four taps. used. However, the luminance component pixel interpolation process according to H.264 / AVC requires an average filtering process according to Equation (2).

しかし、式(2)によって算出される1/4画素のそれぞれは、その位置によって画素補間時に利用される周辺の画素が異なる。すなわち、e、g、p、r位置の画素の値は、そのそれぞれの画素を中心にしたダイアモンド位置の画素値を利用して算出され、f、i、k、g位置の画素の値は、そのそれぞれの画素を中心にした十字位置の画素値を利用して算出される。このように、H.264/AVCの1/4画素補間過程は、画素の位置による複雑なフィルタリング過程であるため、ハードウェアとして具現されるのが容易でなかった。   However, each of the ¼ pixels calculated by the equation (2) differs in surrounding pixels used at the time of pixel interpolation depending on the position. That is, the values of the pixels at the e, g, p, and r positions are calculated using the pixel values at the diamond positions centered on the respective pixels, and the values of the pixels at the f, i, k, and g positions are It is calculated using the pixel value at the cross position centered on each pixel. As described above, the 1/4 pixel interpolation process of H.264 / AVC is a complicated filtering process according to the position of the pixel, so that it was not easy to be implemented as hardware.

図3は、本発明の一実施形態によるキュービックフィルタを示す図である。図3を参照するに、本実施形態では、前記のようなH.264/AVCの1/4画素補間過程を、図3に示したように、キュービックフィルタに適用した。図3に示された形態のキュービックフィルタを利用すれば、H.264/AVCの1/4画素補間過程は、キュービックフィルタという共通モジュールを通じてなされる。   FIG. 3 is a diagram illustrating a cubic filter according to an embodiment of the present invention. Referring to FIG. 3, in the present embodiment, the H.264 / AVC 1/4 pixel interpolation process as described above is applied to a cubic filter as shown in FIG. If the cubic filter shown in FIG. 3 is used, the H.264 / AVC 1/4 pixel interpolation process is performed through a common module called a cubic filter.

一般的に、キュービックフィルタは、キュービックの頂点のそれぞれに位置した整数画素(Integer pel)の値を利用して、キュービックの辺のそれぞれの中心に位置した1/2画素の値及びキュービックの中心に位置した1/2画素(Half pel)の値を算出する。本実施形態では、このようなキュービックフィルタの特性を利用して前記の式(2)に該当する計算を処理する。例えば、a位置の1/4画素(Quater pel)の値は、G位置の整数画素の値、b位置の1/2画素の値を、図3に示されたキュービックフィルタに適用することによって算出される。当業者ならば、他の位置の1/4画素の値も、図3に示したように算出されるということが分かる。   In general, a cubic filter uses the value of an integer pixel located at each of the cubic vertices, and uses the value of a half pixel located at the center of each of the cubic sides and the center of the cubic. The value of the located half pixel (Half pel) is calculated. In the present embodiment, the calculation corresponding to the equation (2) is processed using such a characteristic of the cubic filter. For example, the value of the quarter pixel at position a (Quater pel) is calculated by applying the value of the integer pixel at position G and the value of the half pixel at position b to the cubic filter shown in FIG. Is done. Those skilled in the art will understand that the values of ¼ pixels at other positions are also calculated as shown in FIG.

図4は、本発明の一実施形態によるマルチコーデック支援動き補償装置の構成図である。図4を参照するに、本実施形態によるマルチコーデック支援動き補償装置は、スレーブインターフェース(スレーブI/F)10、マスターインターフェース(マスターI/F)20、DMA(Direct Memory Access)I/F 30、動き補償エンジン40、第1メモリ50、第2メモリ60、及び加算器70で構成される。   FIG. 4 is a block diagram of a multi-codec assisted motion compensation apparatus according to an embodiment of the present invention. Referring to FIG. 4, the multi-codec support motion compensation apparatus according to the present embodiment includes a slave interface (slave I / F) 10, a master interface (master I / F) 20, a DMA (Direct Memory Access) I / F 30, The motion compensation engine 40, a first memory 50, a second memory 60, and an adder 70 are included.

スレーブI/F 10は、本実施形態によるマルチコーデック支援動き補償装置を備える動画復号化装置(図示せず)のシステムバスを経由して、外部動画符号化装置(図示せず)から伝送されたレジデューデータをフェッチし、フェッチされたレジデューデータを第2メモリ60に出力する。また、スレーブI/F 10は、システムバスを経由して、外部動画符号化装置から動き補償のために必要なパラメータであるMC(Motion Compensation)パラメータをフェッチし、フェッチされたMCパラメータをマスターI/F 20に出力する。   The slave I / F 10 is transmitted from an external video encoding device (not shown) via a system bus of a video decoding device (not shown) including the multi-codec support motion compensation device according to the present embodiment. The residue data is fetched, and the fetched residue data is output to the second memory 60. Also, the slave I / F 10 fetches an MC (Motion Compensation) parameter, which is a parameter necessary for motion compensation, from the external video encoding device via the system bus, and uses the fetched MC parameter as a master I / F Output to 20.

マスターI/F 20は、スレーブI/F 10から入力されたMCパラメータを解釈し、その解釈結果に基づいて、MCパラメータを選別してDMA I/F 30及び動き補償エンジン40に出力することにより、DMA I/F 30を構成するDMAモジュール31及びFIFO(First−In First−Out)モジュール32のそれぞれの動作を制御し、動き補償エンジン40を構成する垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44、及びキュービックフィルタ45のそれぞれの動作を制御する。   The master I / F 20 interprets the MC parameters input from the slave I / F 10, selects the MC parameters based on the interpretation results, and outputs them to the DMA I / F 30 and the motion compensation engine 40. , The DMA module 31 constituting the DMA I / F 30 and the first-in first-out (FIFO) module 32 are controlled, and the vertical filter 41, the first horizontal filter 42, the first horizontal filter 42 constituting the motion compensation engine 40 are controlled. The respective operations of the two horizontal filter 43, the cubic alignment unit 44, and the cubic filter 45 are controlled.

第1メモリ50は、動き補償エンジン40によって生成された動き補償データを保存し、第2メモリ60は、スレーブI/F 10から入力されたレジデューデータを保存する。一般的に、第1メモリ50及び第2メモリ60は、SRAM(スタティックランダムアクセスメモリ)で具現される。加算器70は、第1メモリ50に保存された動き補償データと第2メモリ60に保存されたレジデューデータとを合算することによって現在画像を復元し、復元された現在画像のデータをDMA I/F 30に出力する。   The first memory 50 stores motion compensation data generated by the motion compensation engine 40, and the second memory 60 stores residue data input from the slave I / F 10. In general, the first memory 50 and the second memory 60 are implemented by SRAM (Static Random Access Memory). The adder 70 restores the current image by adding the motion compensation data stored in the first memory 50 and the residue data stored in the second memory 60, and the restored current image data is DMA I / F Output to 30.

DMA I/F 30は、DMAモジュール31及びFIFOモジュール32で構成される。DMAモジュール31は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリ(図示せず)から、参照画像と現在画像との間に共有される参照画像の32ビット単位のデータをフェッチし、加算器70によって復元された現在画像を外部メモリに保存する。   The DMA I / F 30 includes a DMA module 31 and a FIFO module 32. The DMA module 31 refers to the motion vector representing the displacement between the block of the current image and the corresponding block of the reference image among the MC parameters input from the master I / F 20, and externally passes through the system bus. A 32-bit unit data of the reference image shared between the reference image and the current image is fetched from a memory (not shown), and the current image restored by the adder 70 is stored in the external memory.

FIFOモジュール32は、DMAモジュール31によってフェッチされた32ビット単位のデータを8ビット単位で抽出して順次に動き補償エンジン40に出力する。特に、FIFOモジュール32は、実際に動き補償のために必要なデータのみを動き補償エンジン40に出力する8ビットアンパッキング以外に、参照画像に動きベクトルが指示するデータが存在しない場合、この動きベクトルによるパッディングも共に行う。   The FIFO module 32 extracts 32-bit unit data fetched by the DMA module 31 in 8-bit units and sequentially outputs them to the motion compensation engine 40. In particular, the FIFO module 32, when there is no data indicated by a motion vector in the reference image, other than 8-bit unpacking that outputs only data actually required for motion compensation to the motion compensation engine 40, this motion vector. Also perform padding with.

動き補償エンジン40は、DMA I/F 30から入力された8ビット単位のデータに対する動き補償を行う。さらに詳細に説明すると、動き補償エンジン40は、マスターI/F 20から入力されたMCパラメータ中の複数のコーデックのうち何れか一つを表すコーデック情報、複数の色成分のうち何れか一つを表す色情報、及び複数のフィルタのうち何れか一つを表すフィルタ情報によって現在画像に対応する参照画像の画素を補間する複数の方式、すなわち、垂直リニアフィルタリング、水平リニアフィルタリング、キュービックフィルタリングのうち少なくとも一つの方式を利用して、参照画像の画素の値からその画素の間に位置した画素の値を算出する。   The motion compensation engine 40 performs motion compensation on 8-bit data input from the DMA I / F 30. More specifically, the motion compensation engine 40 outputs codec information representing one of a plurality of codecs in the MC parameter input from the master I / F 20 and one of the plurality of color components. A plurality of methods for interpolating pixels of a reference image corresponding to the current image by filter information representing any one of a plurality of filters and color information representing at least one of vertical linear filtering, horizontal linear filtering, and cubic filtering Using one method, the value of the pixel located between the pixels is calculated from the value of the pixel of the reference image.

図4を参照するに、動き補償エンジン40は、さらに垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44、及びキュービックフィルタ45で構成される。   Referring to FIG. 4, the motion compensation engine 40 further includes a vertical filter 41, a first horizontal filter 42, a second horizontal filter 43, a cubic alignment unit 44, and a cubic filter 45.

垂直フィルタ41は、マスターI/F 20から入力されたMCパラメータ中の複数のコーデックのうち何れか一つを表すコーデック情報、複数の色成分のうち何れか一つを表す色情報、及び複数のフィルタのうち何れか一つを表すフィルタ情報によって、選択的にDMA I/F 30から入力された参照画像の何れか一ブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、垂直フィルタ41は、6個のタップを有するリニアフィルタで具現され、前記の垂直ラインに位置した整数画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/2画素の値を算出する。   The vertical filter 41 includes codec information representing one of a plurality of codecs in the MC parameter input from the master I / F 20, color information representing one of a plurality of color components, and a plurality of Based on the filter information representing one of the filters, the vertical pixel value is calculated from the value of the integer pixel located on any one vertical line of any block of the reference image selectively input from the DMA I / F 30. The value of 1/2 pixel located between the integer pixels located on the line is calculated. In particular, the vertical filter 41 is implemented as a linear filter having six taps, and the value of the integer pixel located on the vertical line is applied to the six taps, thereby being input from the master I / F 20. Of the MC parameters, the value of ½ pixel indicated by the motion vector of the block is calculated.

第1水平フィルタ42は、マスターI/F 20から入力されたMCパラメータのうちコーデック情報、色情報、及びフィルタ情報によって、選択的にDMA I/F 30から入力された参照画像の何れか一ブロックの何れか一つの水平ラインに位置した整数画素の値から、その水平ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、第1水平フィルタ42は、6個のタップを有するリニアフィルタで具現され、前記の水平ラインに位置した画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/2画素の値を算出する。   The first horizontal filter 42 is a block of any one of reference images selectively input from the DMA I / F 30 according to codec information, color information, and filter information among the MC parameters input from the master I / F 20. From the value of the integer pixel located on any one of the horizontal lines, the value of 1/2 pixel located between the integer pixels located on the horizontal line is calculated. In particular, the first horizontal filter 42 is implemented as a linear filter having six taps, and is applied from the master I / F 20 by applying the value of the pixel located on the horizontal line to the six taps. Among the MC parameters, the value of 1/2 pixel indicated by the motion vector of the block is calculated.

第2水平フィルタ43は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に第1水平フィルタ42によって処理される水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値から、その水平ラインに位置した整数画素の間に位置した1/2画素の値を算出する。ここで、1/2画素は、周辺の整数画素から算出される。特に、第2水平フィルタ43は、6個のタップを有するリニアフィルタで具現され、前記の水平ラインに位置した整数画素または1/2画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/2画素の値を算出する。   The second horizontal filter 43 is another horizontal line that is not a horizontal line that is selectively processed by the first horizontal filter 42 according to codec information, color information, and filter information among the MC parameters input from the master I / F 20. From the value of the integer pixel or 1/2 pixel located on the line, the value of 1/2 pixel located between the integer pixels located on the horizontal line is calculated. Here, 1/2 pixel is calculated from surrounding integer pixels. In particular, the second horizontal filter 43 is implemented as a linear filter having six taps, and the value of an integer pixel or ½ pixel located on the horizontal line is applied to the six taps, thereby obtaining a master I / F Calculates the value of 1/2 pixel indicated by the motion vector of the block among the MC parameters input from 20.

キュービック整列部44は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に前記のブロックの動きベクトルが指示する1/2画素、1/4画素、または任意の位置の画素の値を生成するために要求されるキュービック位置に、DMA I/F 30から入力された整数画素または1/2画素の値を整列する。   The cubic alignment unit 44 selectively selects 1/2 pixel, 1 / C, which is indicated by the motion vector of the block according to codec information, color information, and filter information, among MC parameters input from the master I / F 20. The value of the integer pixel or the half pixel input from the DMA I / F 30 is aligned with the cubic position required to generate the value of the pixel of 4 pixels or an arbitrary position.

キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に図3に示されたところによって、キュービック整列部44によって整列された4個の整数画素の値から、この整列された画素の間に位置した1/2画素、1/4画素、または任意の位置の画素の値を算出する。また、キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に第1水平フィルタ42及び第2水平フィルタ43から入力された輝度成分のブロックの何れか一つのキュービックに位置した2個の整数画素または1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/2画素または1/4画素の値を算出する。特に、キュービックフィルタ45は、4個のタップを有するキュービックフィルタで具現され、前記のキュービック位置の2個または4個の画素の値をこのキュービック位置に対応する2個のタップまたは4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素、1/4画素、任意の位置の画素の値を算出する。   The cubic filter 45 is selectively aligned by the cubic alignment unit 44 according to the codec information, color information, and filter information among the MC parameters input from the master I / F 20 as shown in FIG. From the values of the four integer pixels, the values of the ½ pixel, the ¼ pixel, or the pixel at an arbitrary position located between the aligned pixels are calculated. The cubic filter 45 is selectively input from the first horizontal filter 42 and the second horizontal filter 43 according to codec information, color information, and filter information among the MC parameters input from the master I / F 20. From the value of two integer pixels or 1/2 pixel located in any one of the luminance component blocks, 1/2 pixel or 1/4 pixel located between the two pixels located in this cubic Is calculated. In particular, the cubic filter 45 is implemented by a cubic filter having four taps, and the value of two or four pixels at the cubic position is converted into two taps or four taps corresponding to the cubic position. By applying, the values of 1/2 pixel, 1/4 pixel, and a pixel at an arbitrary position indicated by the motion vector of the block among the MC parameters input from the master I / F 20 are calculated.

垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44及びキュービックフィルタ45のそれぞれは、全ての画素に対して動作するのではなく、動きベクトルの値によって動作する。それは、マスターI/F 20から入力されたMCパラメータのうち動きベクトルが整数画素の位置を指示する場合には、参照画面と予測画面との間の動きが正確に整数画素間隔の倍数に該当する場合であるため、参照画面を構成する整数画素の値が予測画面を構成する画素の値となるので、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44、及びキュービックフィルタ45による画素値補間が不要である。しかし、マスターI/F 20から入力されたMCパラメータのうち動きベクトルが1/2画素または1/4画素の位置を指示する場合には、参照画面と予測画面との間の動きが正確に整数画素間隔の倍数に該当しない場合であるため、参照画面を構成する整数画素の値を利用して補間された値が予測画面を構成する画素の値となるので、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44及びキュービックフィルタ45による画素値補間が必要である。   Each of the vertical filter 41, the first horizontal filter 42, the second horizontal filter 43, the cubic alignment unit 44, and the cubic filter 45 does not operate on all the pixels, but operates on the value of the motion vector. That is, when the motion vector indicates the position of an integer pixel among the MC parameters input from the master I / F 20, the motion between the reference screen and the prediction screen accurately corresponds to a multiple of the integer pixel interval. Therefore, since the value of the integer pixel constituting the reference screen becomes the value of the pixel constituting the prediction screen, the vertical filter 41, the first horizontal filter 42, the second horizontal filter 43, the cubic alignment unit 44, and the cubic Pixel value interpolation by the filter 45 is unnecessary. However, when the motion vector indicates the position of 1/2 pixel or 1/4 pixel among the MC parameters input from the master I / F 20, the motion between the reference screen and the prediction screen is exactly an integer. Since this is a case that does not correspond to a multiple of the pixel interval, the value interpolated using the values of the integer pixels that constitute the reference screen becomes the value of the pixels that constitute the prediction screen. 42, pixel value interpolation by the second horizontal filter 43, the cubic alignment unit 44, and the cubic filter 45 is necessary.

垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44及びキュービックフィルタ45による画素値補間が参照画像全体に対して行われば、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43及びキュービックフィルタ45によって処理されず、そのまま通過された整数画素の値、これらフィルタによって算出された1/2画素の値、1/4画素の値及び任意の位置の画素の値全体は、前記の参照画像に対応する現在画像の動き補償データとして完成される。   If pixel value interpolation by the vertical filter 41, the first horizontal filter 42, the second horizontal filter 43, the cubic alignment unit 44, and the cubic filter 45 is performed on the entire reference image, the vertical filter 41, the first horizontal filter 42, the first 2 The value of the integer pixel that has been passed through without being processed by the horizontal filter 43 and the cubic filter 45, the value of 1/2 pixel, the value of 1/4 pixel, and the value of the pixel at an arbitrary position calculated by these filters Is completed as motion compensation data of the current image corresponding to the reference image.

図5ないし図7は、図4に示された動き補償装置での各コーデック別動作シナリオを示す図である。図5ないし図7を参照するに、H.264/AVCの輝度成分とVC1とは、リニアフィルタリングを行うために、水平フィルタリングと垂直フィルタリングとを行い、その他の場合には、キュービック整列を通じてキュービックフィルタリングを行う。   5 to 7 are diagrams illustrating operation scenarios for each codec in the motion compensation apparatus illustrated in FIG. 5 to 7, the luminance component of H.264 / AVC and VC1 are subjected to horizontal filtering and vertical filtering to perform linear filtering, and in other cases, cubic filtering through cubic alignment. I do.

図5は、図4に示された動き補償装置でのH.264/AVCのリニアフィルタ及びキュービックフィルタの動作シナリオを示す図である。図5を参照するに、図4に示された動き補償装置は、次のような動作シナリオによってH.264/AVCの輝度成分フィルタリングを行う。   5 is a diagram illustrating an operation scenario of the H.264 / AVC linear filter and the cubic filter in the motion compensation apparatus illustrated in FIG. Referring to FIG. 5, the motion compensator shown in FIG. 4 performs H.264 / AVC luminance component filtering according to the following operation scenario.

DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の輝度成分を所定サイズのブロック単位でフェッチし、フェッチされた輝度成分のブロックを垂直フィルタ41に出力する。   The DMA I / F 30 refers to the motion vector representing the displacement between the block of the current image and the corresponding block of the reference image among the MC parameters input from the master I / F 20, and passes through the system bus. Then, the luminance component of the reference image is fetched from the external memory in units of blocks of a predetermined size, and the fetched luminance component block is output to the vertical filter 41.

垂直フィルタ41は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、垂直フィルタ41は、前記の垂直ラインに位置した整数画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素の値を算出し、算出された1/2画素の値を第1水平フィルタ42または第2水平フィルタ43に出力する。垂直フィルタ41は、前記のブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのまま第1水平フィルタ42または第2水平フィルタ43に出力する。   Of the MC parameters input from the master I / F 20, the vertical filter 41 indicates that the codec information represents H.264 / AVC, the color information represents a luminance component, and the filter information represents a linear filter. From the value of the integer pixel located on any one vertical line among the integer pixels constituting the luminance component block input from F30, the half pixel located between the integer pixels located on this vertical line Calculate the value. In particular, the vertical filter 41 applies the value of the integer pixel located on the vertical line to six taps, so that the motion vector of the block among the MC parameters input from the master I / F 20 is The value of the designated 1/2 pixel is calculated, and the calculated value of 1/2 pixel is output to the first horizontal filter 42 or the second horizontal filter 43. If the motion vector of the block indicates an integer pixel, the vertical filter 41 directly uses the value of the integer pixel constituting the luminance component block input from the DMA I / F 30 as it is. Output to the filter 43.

例えば、動きベクトルが指示する画素の位置が図2Aに示されたhである場合ならば、垂直フィルタ41は、A、C、G、M、R、T位置の整数画素値を6個のタップに適用して、h1=(A−5*C+20*G+20*M−5*R+T)、h=Clip1Y((h1+16)>>5)を計算することによってh位置の1/2画素の値を算出する。   For example, if the position of the pixel indicated by the motion vector is h shown in FIG. 2A, the vertical filter 41 uses six taps of integer pixel values at positions A, C, G, M, R, and T. To calculate the half pixel value at the h position by calculating h1 = (A-5 * C + 20 * G + 20 * M-5 * R + T), h = Clip1Y ((h1 + 16) >> 5) To do.

第1水平フィルタ42は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの水平ラインに位置した整数画素の値から、この水平ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、第1水平フィルタ42は、前記の水平ラインに位置した整数画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素の値を算出し、算出された1/2画素の値をキュービックフィルタ45に出力する。また、第1水平フィルタ42は、前記のブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのままキュービックフィルタ45に出力する。また、第1水平フィルタ42は、垂直フィルタ41から入力された1/2画素の値をそのままキュービックフィルタ45に出力する。   Of the MC parameters input from the master I / F 20, the first horizontal filter 42 is vertical if codec information represents H.264 / AVC, color information represents a luminance component, and filter information represents a linear filter. From the value of the integer pixel positioned on any one horizontal line among the integer pixels constituting the luminance component block input from the DMA I / F 30 via the filter 41, the integer pixel positioned on this horizontal line is calculated. The value of 1/2 pixel located between them is calculated. In particular, the first horizontal filter 42 applies the value of the integer pixel located on the horizontal line to six taps, so that the motion of the block among the MC parameters input from the master I / F 20 is changed. The half pixel value indicated by the vector is calculated, and the calculated half pixel value is output to the cubic filter 45. Further, if the motion vector of the block indicates an integer pixel, the first horizontal filter 42 outputs the value of the integer pixel constituting the luminance component block input from the DMA I / F 30 to the cubic filter 45 as it is. To do. Further, the first horizontal filter 42 outputs the half-pixel value input from the vertical filter 41 to the cubic filter 45 as it is.

例えば、動きベクトルが指示する画素の位置が図2に示されたbである場合ならば、第1水平フィルタ42は、E、F、G、H、I、J位置の整数画素値を6個のタップに適用してb1=(E−5*F+20*G+20*H−5*I+J)、b=Clip1Y((b1+16)>>5)を計算することによってb位置の1/2画素の値を算出する。   For example, if the position of the pixel indicated by the motion vector is b shown in FIG. 2, the first horizontal filter 42 has six integer pixel values at positions E, F, G, H, I, and J. By applying b1 = (E−5 * F + 20 * G + 20 * H−5 * I + J) and b = Clip1Y ((b1 + 16) >> 5) calculate.

第2水平フィルタ43は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち、前記の水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値からこの水平ラインに位置した整数画素または1/2画素の間に位置した1/2画素の値を算出する。特に、第2水平フィルタ43は、この水平ラインに位置した整数画素または1/2画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素の値を算出し、算出された1/2画素の値をキュービックフィルタ45に出力する。また、第2水平フィルタ43は、前記のブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのままキュービックフィルタ45に出力する。また、第2水平フィルタ43は、垂直フィルタ41から入力された1/2画素の値をそのままキュービックフィルタ45に出力する。   Of the MC parameters input from the master I / F 20, the second horizontal filter 43 is vertical if codec information represents H.264 / AVC, color information represents a luminance component, and filter information represents a linear filter. Among the integer pixels constituting the luminance component block input from the DMA I / F 30 via the filter 41, this value is obtained from the values of the integer pixels or 1/2 pixels located on the other horizontal lines that are not the horizontal lines. A value of 1/2 pixel located between an integer pixel or 1/2 pixel located on the horizontal line is calculated. In particular, the second horizontal filter 43 applies the value of the integer pixel or ½ pixel located on the horizontal line to six taps, so that among the MC parameters input from the master I / F 20, The value of ½ pixel indicated by the motion vector of this block is calculated, and the calculated value of ½ pixel is output to the cubic filter 45. In addition, if the motion vector of the block indicates an integer pixel, the second horizontal filter 43 outputs the value of the integer pixel constituting the luminance component block input from the DMA I / F 30 to the cubic filter 45 as it is. To do. In addition, the second horizontal filter 43 outputs the value of ½ pixel input from the vertical filter 41 to the cubic filter 45 as it is.

例えば、動きベクトルが指示する画素の位置が図2に示されたjである場合ならば、第2水平フィルタ43は、cc、dd、h1、m1、ee、ff位置の1/2画素値を6個のタップに適用して、j1=cc−5*dd+20*h1+20*m1−5*ee+ff、j=Clip1Y((j1+512)>>10)を計算することによってj位置の1/2画素の値を算出する。前記の式(2)のうち、f=(b+j+1)>>1のように、ある1/4画素の値を求めるためには、同時に二つの1/2画素の値が要求される場合がある。このような場合、b位置の1/2画素の値を算出する過程とj位置の1/2画素の値を算出する過程とを同時に処理するために、第1水平フィルタ42と第2水平フィルタ43とが別途に存在する。   For example, if the position of the pixel indicated by the motion vector is j shown in FIG. 2, the second horizontal filter 43 sets the half pixel value at the cc, dd, h1, m1, ee, and ff positions. Apply to 6 taps and calculate j1 = cc-5 * dd + 20 * h1 + 20 * m1-5 * ee + ff, j = Clip1Y ((j1 + 512) >> 10), the value of 1/2 pixel at j position Is calculated. In the above equation (2), in order to obtain the value of a certain ¼ pixel as in f = (b + j + 1) >> 1, the value of two ½ pixels may be required at the same time. . In such a case, the first horizontal filter 42 and the second horizontal filter are used to simultaneously process the process of calculating the value of 1/2 pixel at the b position and the process of calculating the value of 1/2 pixel at the j position. 43 exists separately.

キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、第1水平フィルタ42及び第2水平フィルタ43から入力された輝度成分のブロックの何れか一つのキュービックに位置した整数画素または1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/4画素の値を算出する。特に、キュービックフィルタ45は、前記のキュービック位置の2個の画素の値を、4個のタップのうち前記のキュービック位置に対応する2個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/4画素の値を算出し、算出された1/4画素の値を第1メモリ50に出力する。また、キュービックフィルタ45は、第1水平フィルタ42または第2水平フィルタから入力された整数画素または1/2画素の値をそのまま第1メモリ50に出力する。   In the cubic filter 45, if the codec information represents H.264 / AVC, the color information represents the luminance component, and the filter information represents the linear filter among the MC parameters input from the master I / F 20, the first horizontal It is located between two pixels located in this cubic from the value of an integer pixel or a half pixel located in any one of the luminance component blocks input from the filter 42 and the second horizontal filter 43. A 1/4 pixel value is calculated. In particular, the cubic filter 45 is input from the master I / F 20 by applying the values of the two pixels at the cubic position to two taps corresponding to the cubic position among the four taps. A value of ¼ pixel indicated by the motion vector of the block is calculated from the MC parameters thus calculated, and the calculated value of ¼ pixel is output to the first memory 50. Further, the cubic filter 45 outputs the value of the integer pixel or ½ pixel input from the first horizontal filter 42 or the second horizontal filter to the first memory 50 as it is.

例えば、動きベクトルが指示する画素の位置が図2に示されたaである場合ならば、キュービックフィルタ45は、G位置の整数画素値及びb位置の1/2画素値を、4個のタップのうち前記キュービック位置に対応する2個のタップに適用して、a=(G+b+1)>>1を計算することによってa位置の1/4画素の値を算出する。   For example, if the position of the pixel indicated by the motion vector is a shown in FIG. 2, the cubic filter 45 uses four taps for the integer pixel value at the G position and the ½ pixel value at the b position. Is applied to the two taps corresponding to the cubic position, and a = (G + b + 1) >> 1 is calculated to calculate the value of the ¼ pixel at the a position.

図5を参照するに、図4に示された動き補償装置は、次のような動作シナリオによって、H.264/AVCの色差成分Cbフィルタリングを行う。   Referring to FIG. 5, the motion compensator shown in FIG. 4 performs H.264 / AVC color difference component Cb filtering according to the following operation scenario.

DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の色差成分Cbを所定サイズのブロック単位でフェッチし、フェッチされた色差成分Cbのブロックをキュービック整列部44に出力する。   The DMA I / F 30 refers to the motion vector representing the displacement between the block of the current image and the corresponding block of the reference image among the MC parameters input from the master I / F 20, and passes through the system bus. Then, the color difference component Cb of the reference image is fetched from the external memory in units of blocks of a predetermined size, and the fetched block of the color difference component Cb is output to the cubic alignment unit 44.

キュービック整列部44は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が色差成分Cbを表し、フィルタ情報がキュービックフィルタを表せば、マスターI/F 20から入力された動きベクトルが指示する任意の位置の画素の値を生成するために要求されるキュービック位置に、DMA I/F 30から入力された色差成分Cbのブロックを構成する整数画素の値のうち4個を整列し、整列された4個の整数画素の値をキュービックフィルタ45に出力する。   Of the MC parameters input from the master I / F 20, the cubic alignment unit 44, if the codec information represents H.264 / AVC, the color information represents the color difference component Cb, and the filter information represents a cubic filter, An integer constituting a block of the color difference component Cb input from the DMA I / F 30 at a cubic position required to generate a pixel value at an arbitrary position indicated by the motion vector input from the I / F 20 Four of the pixel values are aligned, and the four aligned integer pixel values are output to the cubic filter 45.

キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が色差成分Cbを表し、フィルタ情報がキュービックフィルタを表せば、図3に示されたところによって、キュービック整列部44によって整列された4個の整数画素の値から、この整列された画素の間に位置した任意の位置の画素の値を算出する。特に、キュービックフィルタ45は、前記のキュービック位置の4個の画素の値を前記キュービック位置に対応する4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記ブロックの動きベクトルが指示する1/4画素の値を算出し、算出された1/4画素の値を第1メモリ50に出力する。   In the cubic filter 45, among the MC parameters input from the master I / F 20, if the codec information represents H.264 / AVC, the color information represents the color difference component Cb, and the filter information represents a cubic filter, FIG. As described above, from the values of the four integer pixels aligned by the cubic alignment unit 44, the values of the pixels at arbitrary positions located between the aligned pixels are calculated. In particular, the cubic filter 45 applies the values of the four pixels at the cubic position to four taps corresponding to the cubic position, so that the block of the MC parameters input from the master I / F 20 is the block. The value of ¼ pixel indicated by the motion vector is calculated, and the calculated value of ¼ pixel is output to the first memory 50.

例えば、動きベクトルが指示する画素の位置が図2Bに示された4つの矢印の収斂点である場合ならば、キュービックフィルタ45は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用して、P=((8−xFrc)*(8−yFrc)*P1+xFrc*(8−yFrc)*P2+(8−xFrc)*yFrc*P3+xFrc*yFrc*P4+32)>>6を計算することによって、任意の位置の画素の値を算出する。   For example, if the position of the pixel indicated by the motion vector is the convergence point of the four arrows shown in FIG. 2B, the cubic filter 45 converts the integer pixel values at the positions P1, P2, P3, and P4 to four values. Apply to tap and calculate P = ((8−xFrc) * (8−yFrc) * P1 + xFrc * (8−yFrc) * P2 + (8−xFrc) * yFrc * P3 + xFrc * yFrc * P4 + 32) >> 6 Thus, the value of the pixel at an arbitrary position is calculated.

図5を参照するに、DMA I/F 30、キュービック整列部44、キュービックフィルタ45のそれぞれは、色差成分Crに対しても、前記色差成分Cbの動作シナリオと同一に動作する。したがって、H.264/AVCの色差成分Cbフィルタリングの動作シナリオについての詳細な説明は省略する。   Referring to FIG. 5, each of the DMA I / F 30, the cubic alignment unit 44, and the cubic filter 45 operates in the same manner as the operation scenario of the color difference component Cb with respect to the color difference component Cr. Therefore, detailed description of the operation scenario of the color difference component Cb filtering of H.264 / AVC is omitted.

図6は、図4に示された動き補償装置でのVC1のリニアフィルタの動作シナリオを示す図である。図6を参照するに、図4に示された動き補償装置は、次のような動作シナリオによってVC1の輝度成分フィルタリングを行う。   FIG. 6 is a diagram illustrating an operation scenario of the linear filter of VC1 in the motion compensation apparatus illustrated in FIG. Referring to FIG. 6, the motion compensation apparatus shown in FIG. 4 performs luminance component filtering of VC1 according to the following operation scenario.

DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の輝度成分を所定サイズのブロック単位でフェッチし、フェッチされた輝度成分のブロックを垂直フィルタ41に出力する。   The DMA I / F 30 refers to the motion vector representing the displacement between the block of the current image and the corresponding block of the reference image among the MC parameters input from the master I / F 20, and passes through the system bus. Then, the luminance component of the reference image is fetched from the external memory in units of blocks of a predetermined size, and the fetched luminance component block is output to the vertical filter 41.

垂直フィルタ41は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がV1を表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。特に、垂直フィルタ41は、前記の垂直ラインに位置した整数画素の値を4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記ブロックの動きベクトルが指示する1/2画素または1/4画素の値を算出し、算出された1/2画素または1/4画素の値を第1水平フィルタ42に出力する。垂直フィルタ41は、4タップフィルタの係数値を調整することによって1/2画素または1/4画素の値を算出しうる。また、垂直フィルタ41は、前記ブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのまま第1水平フィルタ42に出力する。   Of the MC parameters input from the master I / F 20, the vertical filter 41 is input from the DMA I / F 30 if the codec information indicates V1, the color information indicates a luminance component, and the filter information indicates a linear filter. From the value of the integer pixel located on any one vertical line among the integer pixels constituting the luminance component block, 1/2 pixel or 1/4 pixel located between the integer pixels located on this vertical line Is calculated. In particular, the vertical filter 41 applies the value of the integer pixel positioned on the vertical line to four taps, so that the motion vector of the block is designated among the MC parameters input from the master I / F 20. The value of 1/2 pixel or 1/4 pixel to be calculated is calculated, and the calculated value of 1/2 pixel or 1/4 pixel is output to the first horizontal filter 42. The vertical filter 41 can calculate the value of 1/2 pixel or 1/4 pixel by adjusting the coefficient value of the 4-tap filter. If the motion vector of the block indicates an integer pixel, the vertical filter 41 outputs the value of the integer pixel constituting the luminance component block input from the DMA I / F 30 to the first horizontal filter 42 as it is. .

図5に示された実施形態では、垂直フィルタ41及び第1水平フィルタ42として6タップフィルタが使われた。6タップフィルタは、6個のタップのうち2個のタップが使われずに、ハードウェア構造の変更なしに4タップフィルタとして使われるため、図6に示された実施形態では、垂直フィルタ41及び第1水平フィルタ42は、4タップフィルタとなりうる。   In the embodiment shown in FIG. 5, a 6-tap filter is used as the vertical filter 41 and the first horizontal filter 42. The 6-tap filter is used as a 4-tap filter without changing the hardware structure without using two of the 6 taps. Therefore, in the embodiment shown in FIG. The one horizontal filter 42 can be a 4-tap filter.

第1水平フィルタ42は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がV1を表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの水平ラインに位置した整数画素値から、この水平ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。特に、第1水平フィルタ42は、前記水平ラインに位置した整数画素値を4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記ブロックの動きベクトルが指示する1/2画素または1/4画素の値を算出し、算出された1/2画素または1/4画素の値をキュービックフィルタ45に出力する。また、第1水平フィルタ42は、前記ブロックの動きベクトルが整数画素を指示すれば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのまま第1メモリ50に出力する。また、第1水平フィルタ42は、垂直フィルタ41から入力された1/2画素または1/4画素の値をそのまま第1メモリ50に出力する。   Of the MC parameters input from the master I / F 20, the first horizontal filter 42 passes through the vertical filter 41 if the codec information represents V 1, the color information represents a luminance component, and the filter information represents a linear filter. Then, from the integer pixel value positioned on any one horizontal line among the integer pixels constituting the luminance component block input from the DMA I / F 30, 1 positioned between the integer pixels positioned on this horizontal line The value of / 2 pixel or 1/4 pixel is calculated. In particular, the first horizontal filter 42 applies the integer pixel value positioned on the horizontal line to four taps, so that the motion vector of the block is designated among the MC parameters input from the master I / F 20. The value of 1/2 pixel or 1/4 pixel is calculated, and the calculated value of 1/2 pixel or 1/4 pixel is output to the cubic filter 45. Further, the first horizontal filter 42, if the motion vector of the block indicates an integer pixel, the value of the integer pixel constituting the luminance component block input from the DMA I / F 30 via the vertical filter 41. The data is output to the first memory 50 as it is. Further, the first horizontal filter 42 outputs the value of 1/2 pixel or 1/4 pixel input from the vertical filter 41 to the first memory 50 as it is.

例えば、動きベクトルが指示する画素の位置が図2Cに示された黒点である場合ならば、第1水平フィルタ42は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用してP=(a*P1+b*P2+c*P3+d*P4+rc)>>sを計算することにより、図2Cに示された黒色点に該当する1/2画素または1/4画素の値を算出する。垂直フィルタ41の具体的な例は、示されていないが、水平フィルタリングが垂直フィルタリングに変わることを除いては、前記の通りである。また、図6を参照するに、DMA I/F 30、垂直フィルタ41、第2水平フィルタ43のそれぞれは、色差成分Cb、Crに対しても、前記輝度成分の動作シナリオと同一に動作する。   For example, if the position of the pixel indicated by the motion vector is the black dot shown in FIG. 2C, the first horizontal filter 42 applies the integer pixel values at positions P1, P2, P3, and P4 to four taps. Then, by calculating P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s, the value of 1/2 pixel or 1/4 pixel corresponding to the black point shown in FIG. 2C is calculated. A specific example of the vertical filter 41 is not shown, but is the same as described above except that the horizontal filtering is changed to the vertical filtering. In addition, referring to FIG. 6, each of the DMA I / F 30, the vertical filter 41, and the second horizontal filter 43 operates in the same manner as the operation scenario of the luminance component with respect to the color difference components Cb and Cr.

VC1のリニアフィルタとして参照画像の輝度成分に対する動きを補償する過程は、二つの水平フィルタが同時に使われねばならない場合がないため、何れか一つの水平フィルタのみが使われればよい。特に、本実施形態では、第1水平フィルタ42及び第2水平フィルタ43のうち、第1水平フィルタ42を使用するとしたが、当業者ならば、第2水平フィルタ43を使用することもあるということが分かる。   In the process of compensating for the luminance component of the reference image as a VC1 linear filter, there is no case where two horizontal filters have to be used at the same time. Therefore, only one of the horizontal filters may be used. In particular, in the present embodiment, the first horizontal filter 42 is used out of the first horizontal filter 42 and the second horizontal filter 43. However, those skilled in the art may use the second horizontal filter 43. I understand.

図7は、図4に示された動き補償装置でのMPEG4及びVC1のキュービックフィルタの動作シナリオを示す図である。図7を参照するに、図4に示された動き補償装置は、次のような動作シナリオによってMPEG4及びVC1の輝度成分フィルタリングを行う。   FIG. 7 is a diagram showing an operation scenario of the cubic filter of MPEG4 and VC1 in the motion compensation apparatus shown in FIG. Referring to FIG. 7, the motion compensation apparatus shown in FIG. 4 performs luminance component filtering of MPEG4 and VC1 according to the following operation scenario.

DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の色差成分Cbを所定サイズのブロック単位でフェッチし、フェッチされた輝度成分のブロックをキュービック整列部44に出力する。   The DMA I / F 30 refers to the motion vector representing the displacement between the block of the current image and the corresponding block of the reference image among the MC parameters input from the master I / F 20, and passes through the system bus. Then, the color difference component Cb of the reference image is fetched from the external memory in units of blocks of a predetermined size, and the fetched luminance component block is output to the cubic alignment unit 44.

キュービック整列部44は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がMPEG4またはVC1を表し、色情報が輝度成分を表し、フィルタ情報がキュービックフィルタを表せば、マスターI/F 20から入力された動きベクトルが指示する1/2画素または任意の位置の画素の値を生成するために要求されるキュービック位置に、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値のうち4個を整列し、整列された4個の整数画素の値をキュービックフィルタ45に出力する。   If the codec information represents MPEG4 or VC1, the color information represents the luminance component, and the filter information represents the cubic filter among the MC parameters input from the master I / F 20, the cubic alignment unit 44 The block of the luminance component input from the DMA I / F 30 is configured at a cubic position required for generating a value of a half pixel indicated by the motion vector input from 20 or a pixel at an arbitrary position. Four of the integer pixel values are aligned, and the aligned four integer pixel values are output to the cubic filter 45.

キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がMPEG4またはVC1を表し、色情報が輝度成分を表し、フィルタ情報がキュービックフィルタを表せば、図3に示されたところによって、キュービック整列部44によって整列された4個の整数画素の値から、この整列された画素の間に位置した1/2画素または任意の位置の画素の値を算出する。特に、キュービックフィルタ45は、前記キュービック位置の4個の画素の値を前記キュービック位置に対応する4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記ブロックの動きベクトルが指示する1/2画素または任意の位置の画素の値を算出し、算出された1/2画素または任意の位置の画素の値を第1メモリ50に出力する。   The cubic filter 45 is shown in FIG. 3 when codec information represents MPEG4 or VC1, color information represents a luminance component, and filter information represents a cubic filter among MC parameters input from the master I / F 20. As a result, from the values of the four integer pixels aligned by the cubic alignment unit 44, the values of the ½ pixel positioned between the aligned pixels or the pixel at an arbitrary position are calculated. In particular, the cubic filter 45 applies the values of the four pixels at the cubic position to the four taps corresponding to the cubic position, so that among the MC parameters input from the master I / F 20, the block filter 45 The value of the ½ pixel indicated by the motion vector or a pixel at an arbitrary position is calculated, and the calculated value of the ½ pixel or the pixel at an arbitrary position is output to the first memory 50.

例えば、動きベクトルが指示する画素の位置が図2Dに示された黒点である場合ならば、キュービックフィルタ45は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用して、P=(P1+P2+1−rc)>>1、P=(P1+P3+1−rc)>>1、P=(P1+P2+P3+P4−rc)>>1を計算することにより、図2Dに示された黒色点に該当する画素の値を算出する。また、動きベクトルが指示する画素の位置が図2Eに示された4つの矢印の収斂点である場合ならば、キュービックフィルタ45は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用して、P=(a*P1+b*P2+c*P3+d*P4+rc)>>sを計算することにより、任意の位置の画素の値を算出する。   For example, if the pixel position indicated by the motion vector is the black dot shown in FIG. 2D, the cubic filter 45 applies the integer pixel values at the positions P1, P2, P3, and P4 to four taps. , P = (P1 + P2 + 1−rc) >> 1, P = (P1 + P3 + 1−rc) >> 1, P = (P1 + P2 + P3 + P4-rc) >> 1 and corresponding to the black point shown in FIG. 2D The pixel value is calculated. If the position of the pixel indicated by the motion vector is the convergence point of the four arrows shown in FIG. 2E, the cubic filter 45 converts the integer pixel values at the positions P1, P2, P3, and P4 to four values. The value of the pixel at an arbitrary position is calculated by calculating P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s by applying to the tap.

図7を参照するに、DMA I/F 30、キュービック整列部44、キュービックフィルタ45のそれぞれは、色差成分Cb、Crに対しても、前記輝度成分の動作シナリオと同一に動作する。   Referring to FIG. 7, each of the DMA I / F 30, the cubic alignment unit 44, and the cubic filter 45 operates in the same manner as the operation scenario of the luminance component with respect to the color difference components Cb and Cr.

特に、本実施形態は、レジスターアレイ方式を採択している。第1水平フィルタ42または第2水平フィルタ43による水平フィルタリング及び垂直フィルタ41による垂直フィルタリングを何れも行う場合には、水平フィルタリングの結果値を垂直フィルタリングで使用するか、または垂直フィルタリングの結果値を水平フィルタリングで使用する。   In particular, this embodiment adopts a register array system. When performing both horizontal filtering by the first horizontal filter 42 or the second horizontal filter 43 and vertical filtering by the vertical filter 41, the result value of horizontal filtering is used in vertical filtering, or the result value of vertical filtering is set horizontally. Used for filtering.

図8は、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンを示す図である。図8を参照するに、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、H.264/AVCの場合に、何れか一つのブロックの何れか一つのラインを構成する画素の数が21個であることを考慮して、21個の8ビットレジスターで構成される。H.264/AVC以外の他のコーデックの場合には、何れか一つのブロックの何れか一つのラインを構成する画素の数が21個未満である。特に、H.264/AVCは、6タップフィルタを使用するため、このようなレジスターアレイチェーンが5個必要であり、相互直列に連結される。何れか一つのレジスターアレイチェーンの出力値は、これに連結された他のレジスターアレイチェーンの入力値となる。   FIG. 8 is a diagram showing a register array chain inside the vertical filter 41 shown in FIG. Referring to FIG. 8, the register array chain in the vertical filter 41 shown in FIG. 4 is the number of pixels constituting any one line of any one block in the case of H.264 / AVC. Is composed of 21 8-bit registers. In the case of a codec other than H.264 / AVC, the number of pixels constituting any one line of any one block is less than 21. In particular, since H.264 / AVC uses a 6-tap filter, five such register array chains are required and are connected in series. The output value of any one of the register array chains becomes the input value of another register array chain connected thereto.

図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、DMA I/F 30からクロックごとに8ビットに該当する一画素の値を入力され、入力された画素値をR0レジスターに保存すると同時に、21個のレジスターのそれぞれに現在保存された画素値を右側に一つずつシフトし、これにより、R20レジスターに保存された画素値を送出する。   The register array chain inside the vertical filter 41 shown in FIG. 4 receives the value of one pixel corresponding to 8 bits per clock from the DMA I / F 30, and stores the input pixel value in the R0 register. At the same time, the pixel values currently stored in each of the 21 registers are shifted one by one to the right, thereby sending out the pixel values stored in the R20 register.

特に、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、H.264/AVC、VC1のそれぞれの動きベクトルが指示する画素の位置が整数画素である場合、クロックごとに8×1
MUXを通じてブロックサイズによって、R3レジスターに保存された画素値、R7レジスターに保存された画素値、R15レジスターに保存された画素値のうち何れか一つを出力する。例えば、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、動き補償エンジン40によって4x4ブロック単位で動き補償がなされる場合には、R3レジスターに保存された画素値を出力し、8×8ブロック単位で動き補償がなされる場合には、R7レジスターに保存された画素値を出力し、16×16ブロック単位で動き補償がなされる場合には、R15レジスターに保存された画素値を出力する。
In particular, the register array chain inside the vertical filter 41 shown in FIG. 4 is 8 × 1 for each clock when the position of the pixel indicated by each motion vector of H.264 / AVC and VC1 is an integer pixel.
Depending on the block size, one of the pixel value stored in the R3 register, the pixel value stored in the R7 register, and the pixel value stored in the R15 register is output through the MUX. For example, when the motion compensation engine 40 performs motion compensation in units of 4 × 4 blocks, the register array chain inside the vertical filter 41 shown in FIG. 4 outputs the pixel value stored in the R3 register, and 8 When motion compensation is performed in units of × 8 blocks, the pixel value stored in the R7 register is output. When motion compensation is performed in units of 16 × 16 blocks, the pixel value stored in the R15 register is output. Output.

もし、H.264/AVCの動きベクトルが指示する画素の位置が整数画素ではない場合、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、ブロックサイズによってR8レジスターに保存された画素値、R12レジスターに保存された画素値、R20レジスターに保存された画素値のうち何れか一つを出力する。例えば、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、動き補償エンジン40によって4×4ブロック単位で動き補償がなされる場合には、R8レジスターに保存された画素値を出力し、8×8ブロック単位で動き補償がなされる場合には、R12レジスターに保存された画素値を出力し、16×16ブロック単位で動き補償がなされる場合には、R20レジスターに保存された画素値を出力する。   If the position of the pixel indicated by the H.264 / AVC motion vector is not an integer pixel, the register array chain in the vertical filter 41 shown in FIG. 4 is stored in the R8 register according to the block size. One of the value, the pixel value stored in the R12 register, and the pixel value stored in the R20 register is output. For example, the register array chain inside the vertical filter 41 shown in FIG. 4 outputs the pixel value stored in the R8 register when the motion compensation engine 40 performs motion compensation in units of 4 × 4 blocks. When the motion compensation is performed in units of 8 × 8 blocks, the pixel value stored in the R12 register is output. When the motion compensation is performed in units of 16 × 16 blocks, the pixel stored in the R20 register is output. Output the value.

もし、VC1コーデックで動きベクトルが指示する画素の位置が整数画素ではない場合、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、ブロックサイズによって、R10レジスターの出力値、R18レジスターの出力値のうち何れか一つを出力する。例えば、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、動き補償エンジン40によって8×8ブロック単位で動き補償がなされる場合には、R10レジスターに保存された画素値を出力し、16×16ブロック単位で動き補償がなされる場合には、R20レジスターに保存された画素値を出力する。VC1の場合には、4×4ブロックモードを支援しない。   If the position of the pixel indicated by the motion vector in the VC1 codec is not an integer pixel, the register array chain in the vertical filter 41 shown in FIG. 4 has an output value of the R10 register and an R18 register depending on the block size. Output one of the output values. For example, the register array chain in the vertical filter 41 shown in FIG. 4 outputs the pixel value stored in the R10 register when motion compensation is performed in units of 8 × 8 blocks by the motion compensation engine 40. When the motion compensation is performed in units of 16 × 16 blocks, the pixel value stored in the R20 register is output. In the case of VC1, 4 × 4 block mode is not supported.

図9は、図4に示された垂直フィルタ41の内部の6タップフィルタの構成図である。図9を参照するに、図4に示された垂直フィルタ41の内部の6タップフィルタは、図8に示されたレジスターアレイチェーンの出力値を入力される。すなわち、図4に示された垂直フィルタ41の内部の6タップフィルタは、図8に示されたレジスターアレイチェーンから6個のクロックの間に出力されて累積された6個の画素値、すなわち、レジスター1〜5に保存された5個の整数画素値及び現在入力された一つの画素値から、この画素の間に位置した1/2画素の値を算出する。一つのレジスターアレイチェーンからの出力値は、6タップフィルタの一つのレジスターに保存されるため、6タップフィルタの5個のレジスターに対応してレジスターアレイチェーンが5個が必要である。すなわち、図9に示された6タップフィルタは、式(1)に示された演算、例えば、b1=(E−5*F+20*G+20*H−5*I+J)を計算するために、9個のレジスター、4個の乗算器、5個の加算器を備えている。図9に示された最も左側の加算器の二つの入力端子と4個の乗算器のそれぞれの入力端子とが6個のタップに該当する。   FIG. 9 is a configuration diagram of a 6-tap filter inside the vertical filter 41 shown in FIG. Referring to FIG. 9, the 6-tap filter inside the vertical filter 41 shown in FIG. 4 receives the output value of the register array chain shown in FIG. That is, the 6-tap filter inside the vertical filter 41 shown in FIG. 4 outputs six pixel values output and accumulated during the six clocks from the register array chain shown in FIG. From the five integer pixel values stored in the registers 1 to 5 and one pixel value that is currently input, the value of the ½ pixel located between the pixels is calculated. Since an output value from one register array chain is stored in one register of a 6-tap filter, five register array chains are required corresponding to five registers of the 6-tap filter. That is, the 6-tap filter shown in FIG. 9 has nine operations to calculate the operation shown in the equation (1), for example, b1 = (E-5 * F + 20 * G + 20 * H-5 * I + J). Register, four multipliers, and five adders. The two input terminals of the leftmost adder shown in FIG. 9 and the input terminals of the four multipliers correspond to six taps.

図10は、図4に示された動き補償装置の内部でのデータ処理についてのタイミング図である。図10を参照するに、外部メモリに対して参照画像に該当する32ビット単位のデータを伝送することを要請した後に、このデータを受信するために待機するデータレーテンシ区間と外部メモリから32ビット単位のデータを受信するデータ伝達区間との間、DMA I/F 30、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、及びキュービックフィルタ45は、パイプライン形態でそのそれぞれの動作を行う。一般的に、データレーテンシ区間及びデータ伝達区間が非常に長いため、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、及びキュービックフィルタ45のフィルタリング動作がこの区間に隠されて行われる。これにより、動き補償をさらに高速で処理しうる。   FIG. 10 is a timing diagram for data processing inside the motion compensation apparatus shown in FIG. Referring to FIG. 10, after requesting the external memory to transmit 32-bit unit data corresponding to the reference image, a data latency period for waiting to receive this data and the 32-bit unit from the external memory. The DMA I / F 30, the vertical filter 41, the first horizontal filter 42, the second horizontal filter 43, and the cubic filter 45 perform their respective operations in a pipeline form during the data transmission period in which the data is received. . In general, since the data latency period and the data transmission period are very long, the filtering operations of the vertical filter 41, the first horizontal filter 42, the second horizontal filter 43, and the cubic filter 45 are performed hidden in this period. Thereby, motion compensation can be processed at higher speed.

図11は、本発明の望ましい一実施形態によるマルチコーデック支援動き補償方法のフローチャートである。図11を参照するに、本実施形態によるマルチコーデック支援動き補償方法は、図4に示されたマルチコーデック支援動き補償装置で時系列的に処理されるステップで構成される。したがって、以下省略された内容であっても、図11に示されたマルチコーデック支援動き補償装置について前述した内容は、本実施形態によるマルチコーデック支援動き補償方法にも適用される。   FIG. 11 is a flowchart illustrating a multi-codec assisted motion compensation method according to an exemplary embodiment of the present invention. Referring to FIG. 11, the multi-codec support motion compensation method according to the present embodiment includes steps processed in a time series by the multi-codec support motion compensation device shown in FIG. Therefore, even if the contents are omitted below, the contents described above for the multi-codec support motion compensation apparatus shown in FIG. 11 are also applied to the multi-codec support motion compensation method according to the present embodiment.

ステップ100で、マルチコーデック支援動き補償装置は、システムバスを経由して外部符号化装置から、参照画像と現在画像との差に該当するレジデューデータ及び動き補償のために必要なパラメータのMCパラメータをフェッチする。   In step 100, the multi-codec assisted motion compensation device receives from the external encoding device via the system bus the residue data corresponding to the difference between the reference image and the current image and the MC parameters necessary for motion compensation. Fetch.

ステップ200で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたレジデューデータを保存する。   In step 200, the multi-codec assisted motion compensation apparatus stores the residue data fetched in step 100.

ステップ300で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像と現在画像との間に共有される参照画像の32ビット単位のデータをフェッチする。   In step 300, the multi-codec assisted motion compensator refers to a motion vector representing a displacement between the block of the current image and the corresponding block of the reference image among the MC parameters fetched in step 100, and determines the system bus. Via the external memory, the 32-bit unit data of the reference image shared between the reference image and the current image is fetched.

ステップ400で、マルチコーデック支援動き補償装置は、ステップ300でフェッチされた32ビット単位のデータに対して、8ビットアンパッキング及び動きベクトルによるパッディングを行う。   In step 400, the multi-codec support motion compensation apparatus performs 8-bit unpacking and padding using a motion vector on the 32-bit unit data fetched in step 300.

ステップ500で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、複数のコーデックのうち何れか一つを表すコーデック情報、複数の色成分のうち何れか一つを表す色情報、及び複数のフィルタのうち何れか一つを表すフィルタ情報によって、選択的にステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。   In step 500, the multi-codec assisted motion compensation device selects codec information representing one of a plurality of codecs and a color representing one of a plurality of color components from among the MC parameters fetched in step 100. Integer pixels located in any one vertical line of any one block of the reference image selectively corresponding to the processing result in step 400 according to the information and filter information representing any one of the plurality of filters From the value of ½, the value of ½ pixel located between the integer pixels located on this vertical line is calculated.

さらに詳細に説明すれば、ステップ500で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合、またはコーデック情報がVC1を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がリニアフィルタを表す場合に、ステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。残りの場合については、前記のようなステップ500での垂直フィルタリングは、行われない。   More specifically, in step 500, the multi-codec assisted motion compensation apparatus determines that the codec information represents H.264 / AVC, the color information represents a luminance component, and the filter information represents a linear filter, or the codec information. Represents VC1, color information represents a luminance component or color difference component, and filter information represents a linear filter, any one vertical line of any one block of the reference image corresponding to the processing result in step 400 From the value of the integer pixel located at, the value of ½ pixel located between the integer pixels located on this vertical line is calculated. For the remaining cases, the vertical filtering in step 500 as described above is not performed.

ステップ600で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的にステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの水平ラインに位置した整数画素の値から、この水平ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。   In step 600, the multi-codec support motion compensation apparatus selectively selects one of the reference images corresponding to the processing result in step 400 according to the codec information, color information, and filter information among the MC parameters fetched in step 100. From the value of the integer pixel located on any one horizontal line of the one block, the value of 1/2 pixel or 1/4 pixel located between the integer pixels located on this horizontal line is calculated.

さらに詳細に説明すれば、ステップ600で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合、またはコーデック情報がVC1を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がリニアフィルタを表す場合に、ステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。残りの場合については、前記のようなステップ600での垂直フィルタリングは、行われない。   More specifically, in step 600, the multi-codec assisted motion compensation apparatus determines that the codec information represents H.264 / AVC, the color information represents a luminance component, and the filter information represents a linear filter, or the codec information. Represents VC1, color information represents a luminance component or color difference component, and filter information represents a linear filter, any one vertical line of any one block of the reference image corresponding to the processing result in step 400 From the value of the integer pixel located at, the value of 1/2 pixel or 1/4 pixel located between the integer pixels located on this vertical line is calculated. For the remaining cases, the vertical filtering in step 600 as described above is not performed.

ステップ700で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的にステップ600で処理される水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値から、この水平ラインに位置した整数画素または1/2画素の間に位置した1/2画素の値を算出する。   In step 700, the multi-codec assisted motion compensation apparatus selects other horizontal lines that are not processed in step 600 according to codec information, color information, and filter information from among the MC parameters fetched in step 100. From the value of the integer pixel or 1/2 pixel located at, the value of the 1/2 pixel located between the integer pixel or 1/2 pixel located on this horizontal line is calculated.

さらに詳細に説明すると、ステップ700で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合に、ステップ600で処理される水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値から、この水平ラインに位置した整数画素または1/2画素の間に位置した1/2画素の値を算出する。残りの場合については、前記のようなステップ700での垂直フィルタリングは、行われない。   More specifically, in step 700, the multi-codec assisted motion compensation apparatus determines in step 600 that the codec information represents H.264 / AVC, the color information represents a luminance component, and the filter information represents a linear filter. From the value of the integer pixel or 1/2 pixel located on another horizontal line that is not the horizontal line to be processed, the value of 1/2 pixel located between the integer pixel or 1/2 pixel located on this horizontal line is calculated To do. For the remaining cases, the vertical filtering in step 700 as described above is not performed.

ステップ800で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に輝度成分のブロックの何れか一つのキュービックに位置した整数画素またはステップ600及びステップ700で算出された1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/4画素の値を算出する。   In step 800, the multi-codec assisted motion compensation apparatus is selectively located in any one of the luminance component blocks according to the codec information, color information, and filter information among the MC parameters fetched in step 100. From the integer pixel or the value of ½ pixel calculated in step 600 and step 700, the value of ¼ pixel located between the two pixels located in the cubic is calculated.

さらに詳細に説明すると、ステップ800で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合に、輝度成分のブロックの何れか一つのキュービックに位置した整数画素またはステップ600及びステップ700で算出された1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/4画素の値を算出する。残りの場合については、前記のようなステップ800でのキュービックフィルタリングは行われない。   More specifically, in step 800, the multi-codec assisted motion compensation apparatus determines that the luminance component of the luminance component when the codec information represents H.264 / AVC, the color information represents a luminance component, and the filter information represents a linear filter. From the integer pixel located in any one cubic block of the block or the value of ½ pixel calculated in step 600 and step 700, the value of ¼ pixel located between the two pixels located in this cubic Is calculated. For the remaining cases, the cubic filtering in step 800 as described above is not performed.

ステップ900で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に前記ブロックの動きベクトルが指示する1/2画素、1/4画素、または任意の位置の画素の値を生成するために要求されるキュービック位置に、ステップ400での処理結果に該当する整数画素の値を整列する。   In step 900, the multi-codec assisted motion compensation apparatus selectively selects a ½ pixel indicated by the motion vector of the block according to codec information, color information, and filter information from among the MC parameters fetched in step 100. The value of the integer pixel corresponding to the processing result in step 400 is aligned with the cubic position required to generate the value of 1/4 pixel or a pixel at an arbitrary position.

さらに詳細に説明すると、ステップ900で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が色差成分を表し、フィルタ情報がキュービックフィルタを表す場合、コーデック情報がMPEG4を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がキュービックフィルタを表す場合、またはコーデック情報がVC1を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がキュービックフィルタを表す場合に、前記ブロックの動きベクトルが指示する1/2画素、1/4画素、または任意の位置の画素の値を生成するために要求されるキュービック位置に、ステップ400での処理結果に該当する整数画素の値を整列する。残りの場合については、前記のようなステップ900でのキュービック整列は行われない。   More specifically, in step 900, the multi-codec assisted motion compensation apparatus determines that the codec information is MPEG4 if the codec information represents H.264 / AVC, the color information represents a color difference component, and the filter information represents a cubic filter. When color information represents a luminance component or color difference component and filter information represents a cubic filter, or codec information represents VC1, color information represents a luminance component or color difference component, and filter information represents a cubic filter Further, an integer corresponding to the processing result in step 400 at a cubic position required to generate a value of 1/2 pixel, 1/4 pixel, or a pixel at an arbitrary position indicated by the motion vector of the block Align pixel values. For the remaining cases, the cubic alignment in step 900 as described above is not performed.

ステップ1000で、マルチコーデック支援動き補償装置は、図3に示されたところによって、ステップ900で整列された4個の整数画素の値から、この整列された画素の間に位置した1/2画素、1/4画素、または任意の位置の画素の値を算出する。   In step 1000, the multi-codec assisted motion compensator, from the values of the four integer pixels aligned in step 900, ½ pixel located between the aligned pixels, as shown in FIG. , 1/4 pixel, or the value of a pixel at an arbitrary position is calculated.

ステップ1100で、マルチコーデック支援動き補償装置は、ステップ300からステップ1000までの過程が参照画像全体に対して完了されたか否かを確認し、その結果、完了されたならば、ステップ1200に進み、完了されていなければ、ステップ300に戻る。   In step 1100, the multi-codec support motion compensation apparatus checks whether the process from step 300 to step 1000 is completed for the entire reference image. If the process is completed, the process proceeds to step 1200. If not completed, the process returns to step 300.

ステップ1200で、マルチコーデック支援動き補償装置は、ステップ300からステップ1000までの過程によって生成された動き補償データを保存する。   In step 1200, the multi-codec assisted motion compensation apparatus stores motion compensation data generated through steps 300 to 1000.

ステップ1300で、マルチコーデック支援動き補償装置は、ステップ1200で保存された動き補償されたデータとステップ200で保存されたレジデューデータとを合算することによって現在画像を復元する。   In step 1300, the multi-codec assisted motion compensation apparatus restores the current image by adding the motion compensated data stored in step 1200 and the residue data stored in step 200.

一方、前述した本発明の実施形態は、コンピュータで実行できるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用して、前記プログラムを動作させる汎用デジタルコンピュータで具現される。また、前述した本発明の実施形態で使われたデータの構造は、コンピュータで読み取り可能な記録媒体に色々な手段を通じて記録される。前記コンピュータで読み取り可能な記録媒体は、マグネチック保存媒体(例えば、ROM(リードオンリメモリ)、フロッピー(登録商標)ディスク、ハードディスクなど)、光学的判読媒体(例えば、CD−ROM、DVDなど)のような保存媒体を含む。   On the other hand, the embodiment of the present invention described above can be created by a program that can be executed by a computer, and is embodied by a general-purpose digital computer that operates the program using a computer-readable recording medium. Further, the data structure used in the above-described embodiment of the present invention is recorded through various means on a computer-readable recording medium. The computer-readable recording medium is a magnetic storage medium (for example, a ROM (Read Only Memory), a floppy (registered trademark) disk, a hard disk, etc.), or an optically readable medium (for example, a CD-ROM, DVD, etc.). Including such storage media.

以上、本発明についてその望ましい実施形態を中心に説明した。当業者は、本発明が本発明の本質的な特性から逸脱しない範囲で変形された形態で具現されるということが分かるであろう。したがって、開示された実施形態は、限定的な観点でなく、説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明でなく、特許請求の範囲に現れており、それと同等な範囲内にある全ての差異点は、本発明に含まれていると解釈されねばならない。   In the above, this invention was demonstrated centering on the desirable embodiment. Those skilled in the art will appreciate that the present invention may be embodied in variations that do not depart from the essential characteristics of the invention. Accordingly, the disclosed embodiments should be considered in an illustrative, not a limiting sense. The scope of the present invention is shown not in the above description but in the claims, and all differences within the equivalent scope should be construed as being included in the present invention.

本発明は、動画を復号化するデバイス、例えば、デジタルTV、コンピュータ、携帯電話などに適用可能である。   The present invention can be applied to a device for decoding a moving image, such as a digital TV, a computer, a mobile phone, and the like.

多様な動画圧縮コーデックのそれぞれで使われる動き補償のためのフィルタの特性を表で示す図である。It is a figure which shows the characteristic of the filter for the motion compensation used with each of various moving image compression codecs in a table | surface. H.264/AVCによる輝度成分の画素補間の様子を示す図である。It is a figure which shows the mode of the pixel interpolation of the luminance component by H.264 / AVC. H.264/AVCによる色差成分の画素補間の様子を示す図である。It is a figure which shows the mode of the pixel interpolation of the color difference component by H.264 / AVC. VC1によってリニアフィルタを使用した画素補間の様子を示す図である。It is a figure which shows the mode of the pixel interpolation which uses a linear filter by VC1. MPEG4による画素補間の様子を示す図である。It is a figure which shows the mode of the pixel interpolation by MPEG4. VC1によってキュービックフィルタを使用した画素補間の様子を示す図である。It is a figure which shows the mode of the pixel interpolation which uses a cubic filter by VC1. 本発明の一実施形態によるキュービックフィルタを示す図である。It is a figure which shows the cubic filter by one Embodiment of this invention. 本発明の一実施形態によるマルチコーデック支援動き補償装置の構成図である。1 is a configuration diagram of a multi-codec support motion compensation apparatus according to an embodiment of the present invention. FIG. 図4に示された動き補償装置でのH.264/AVCのリニアフィルタ及びキュービックフィルタの動作シナリオを示す図である。5 is a diagram illustrating an operation scenario of an H.264 / AVC linear filter and a cubic filter in the motion compensation apparatus shown in FIG. 図4に示された動き補償装置でのVC1のリニアフィルタの動作シナリオを示す図である。It is a figure which shows the operation | movement scenario of the linear filter of VC1 in the motion compensation apparatus shown by FIG. 図4に示された動き補償装置でのMPEG4及びVC1のキュービックフィルタの動作シナリオを示す図である。FIG. 5 is a diagram showing an operation scenario of an MPEG4 and VC1 cubic filter in the motion compensation apparatus shown in FIG. 4. 図4に示された垂直フィルタ内部のレジスターアレイチェーンを示す図である。FIG. 5 is a diagram showing a register array chain inside the vertical filter shown in FIG. 4. 図4に示された垂直フィルタ内部の6タップフィルタの構成図である。FIG. 5 is a configuration diagram of a 6-tap filter inside the vertical filter shown in FIG. 4. 図4に示された動き補償装置内部でのデータ処理に関するタイミング図である。FIG. 5 is a timing chart regarding data processing inside the motion compensation device shown in FIG. 4. 本発明の望ましい一実施形態によるマルチコーデック支援動き補償方法のフローチャートである。3 is a flowchart of a multi-codec assisted motion compensation method according to an exemplary embodiment of the present invention.

符号の説明Explanation of symbols

10 スレーブI/F
20 マスターI/F
30 DMA I/F
31 DMAモジュール
32 FIFOモジュール
40 動き補償エンジン
41 垂直フィルタ
42 第1水平フィルタ
43 第2水平フィルタ
44 キュービック整列部
45 キュービックフィルタ
50 第1メモリ
60 第2メモリ
70 加算器
10 Slave I / F
20 Master I / F
30 DMA I / F
31 DMA module 32 FIFO module 40 motion compensation engine 41 vertical filter 42 first horizontal filter 43 second horizontal filter 44 cubic alignment unit 45 cubic filter 50 first memory 60 second memory 70 adder

Claims (19)

(a)複数のコーデックのうち何れか一つを表すコーデック情報によって、現在画像に対応する参照画像の画素を補間する複数の方式のうち少なくとも一つの方式を利用して、前記参照画像の画素の値から前記画素の間に位置した画素の値を算出するステップと、
(b)前記算出された画素値を含む動き補償データ、及び前記参照画像と前記現在画像との差を合算することによって前記現在画像を復元するステップと、を含むことを特徴とする動き補償方法。
(A) By using at least one method among a plurality of methods for interpolating pixels of a reference image corresponding to the current image by codec information representing any one of a plurality of codecs, Calculating a value of a pixel located between the pixels from the value;
(B) motion compensation data including the calculated pixel value, and restoring the current image by adding a difference between the reference image and the current image. .
前記(a)ステップは、
(a1)前記コーデック情報によって、選択的に前記参照画像の何れか一ブロックの何れか一垂直ラインに位置した画素の値から、前記垂直ラインに位置した画素の間に位置した画素の値を算出するステップと、
(a2)前記コーデック情報によって、選択的に前記ブロックの何れか一水平ラインに位置した画素の値から、前記水平ラインに位置した画素の間に位置した画素の値を算出するステップと、
(a3)前記コーデック情報によって、選択的に前記ブロックの何れか一キュービックに位置した画素の値から、前記キュービックに位置した画素の間に位置した画素の値を算出するステップと、を含むことを特徴とする請求項1に記載の動き補償方法。
The step (a) includes:
(A1) Based on the codec information, a value of a pixel positioned between pixels positioned on the vertical line is calculated from a value of a pixel positioned on any one vertical line of any one block of the reference image. And steps to
(A2) calculating a value of a pixel positioned between pixels positioned on the horizontal line from a value of a pixel positioned selectively on any one horizontal line of the block according to the codec information;
(A3) calculating a value of a pixel located between the pixels located in the cubic from a value of a pixel located in any one of the blocks selectively according to the codec information. The motion compensation method according to claim 1, wherein:
前記(a1)ステップ、前記(a2)ステップ、前記(a3)ステップのそれぞれは、前記コーデック情報及び複数の色成分のうち何れか一つを表す色情報によって選択的に画素の値を算出することを特徴とする請求項2に記載の動き補償方法。   In each of the (a1) step, the (a2) step, and the (a3) step, a pixel value is selectively calculated based on the codec information and color information representing one of a plurality of color components. The motion compensation method according to claim 2, wherein: 前記コーデック情報がH.264/AVCを表し、前記色情報が輝度成分を表せば、前記(a1)ステップ、前記(a2)ステップ、及び前記(a3)ステップのそれぞれは、画素の値を算出することを特徴とする請求項3に記載の動き補償方法。   If the codec information represents H.264 / AVC and the color information represents a luminance component, each of the (a1) step, the (a2) step, and the (a3) step calculates a pixel value. The motion compensation method according to claim 3, wherein: 前記(a1)ステップは、前記垂直ラインに位置した画素の値を6個のタップに適用することにより、前記垂直ラインに位置した画素の間に位置した画素の値を算出し、
前記(a2)ステップは、前記水平ラインに位置した画素の値を6個のタップに適用することにより、前記水平ラインに位置した画素の間に位置した画素の値を算出し、
前記(a3)ステップは、前記キュービックに位置した2個の画素の値を4個のタップのうち、2個のタップに適用することにより、前記キュービックに位置した画素の間に位置した画素の値を算出することを特徴とする請求項4に記載の動き補償方法。
The step (a1) calculates values of pixels positioned between pixels positioned on the vertical line by applying the values of pixels positioned on the vertical line to six taps.
The step (a2) calculates the values of pixels positioned between the pixels positioned on the horizontal line by applying the values of the pixels positioned on the horizontal line to six taps.
In the step (a3), the value of the pixel located between the pixels located in the cubic is obtained by applying the value of the two pixels located in the cubic to the two taps among the four taps. The motion compensation method according to claim 4, wherein the motion compensation method is calculated.
前記コーデック情報がH.264/AVCを表し、前記色情報が色差成分を表せば、前記(a1)ステップ及び前記(a2)ステップは、画素の値を算出せず、前記(c)ステップは、画素の値を算出することを特徴とする請求項3に記載の動き補償方法。   If the codec information represents H.264 / AVC and the color information represents a color difference component, the steps (a1) and (a2) do not calculate pixel values, and the step (c) The motion compensation method according to claim 3, wherein a pixel value is calculated. 前記(a1)ステップ、前記(a2)ステップ、及び前記(a3)ステップのそれぞれは、前記コーデック情報、前記色情報及び複数のフィルタのうち何れか一つを表すフィルタ情報によって選択的に前記画素の値を算出することを特徴とする請求項3に記載の動き補償方法。   Each of the (a1) step, the (a2) step, and the (a3) step is selectively performed on the pixel according to filter information that represents one of the codec information, the color information, and a plurality of filters. 4. The motion compensation method according to claim 3, wherein a value is calculated. 前記コーデック情報がVC1を表し、前記色情報が輝度成分または色差成分を表し、前記フィルタ情報がリニアフィルタを表せば、前記(a1)ステップ及び前記(a2)ステップは、画素の値を算出し、前記(a3)ステップは、画素の値を算出しないことを特徴とする請求項7に記載の動き補償方法。   If the codec information represents VC1, the color information represents a luminance component or a color difference component, and the filter information represents a linear filter, the steps (a1) and (a2) calculate pixel values, The motion compensation method according to claim 7, wherein the step (a3) does not calculate a pixel value. 前記コーデック情報がVC1を表し、前記色情報が輝度成分または色差成分を表し、前記フィルタ情報がキュービックフィルタを表せば、前記(a1)ステップ及び前記(a2)ステップは、画素の値を算出せず、前記(a3)ステップは、画素の値を算出することを特徴とする請求項7に記載の動き補償方法。   If the codec information represents VC1, the color information represents a luminance component or a color difference component, and the filter information represents a cubic filter, the step (a1) and the step (a2) do not calculate a pixel value. The motion compensation method according to claim 7, wherein the step (a3) calculates a pixel value. 前記(a)ステップは、前記参照画像の何れか一ブロックの動きベクトルが指示する画素の値を算出することを特徴とする請求項1に記載の動き補償方法。   The motion compensation method according to claim 1, wherein the step (a) calculates a value of a pixel indicated by a motion vector of any one block of the reference image. 前記コーデック情報によって選択的に前記水平ラインでない他の水平ラインに位置した画素の値から、前記他の水平ラインに位置した画素の間に位置した画素の値を算出するステップをさらに含むことを特徴とする請求項2に記載の動き補償方法。   The method further includes a step of calculating a value of a pixel positioned between pixels positioned on the other horizontal line from a value of a pixel positioned on another horizontal line that is not the horizontal line selectively according to the codec information. The motion compensation method according to claim 2. 前記コーデック情報によって選択的に前記ブロックの動きベクトルが指示する画素の値を生成するために要求されるキュービック位置に前記画素の値を整列するステップと、
前記コーデック情報によって選択的に前記整列された画素の値から前記整列された画素の間に位置した画素の値を算出するステップと、をさらに含むことを特徴とする請求項2に記載の動き補償方法。
Aligning the pixel values to the cubic positions required to selectively generate pixel values indicated by the block motion vector according to the codec information;
The motion compensation of claim 2, further comprising: calculating values of pixels positioned between the aligned pixels from the values of the aligned pixels selectively according to the codec information. Method.
前記(a1)ステップは、前記垂直ラインに位置した整数画素の値から前記垂直ラインに位置した画素の間に位置した1/2画素の値を算出し、
前記(a2)ステップは、前記水平ラインに位置した整数画素の値から前記水平ラインに位置した画素の間に位置した1/2画素の値を算出し、
前記(a3)ステップは、前記ブロックを構成する何れか一つの整数画素、前記(a)ステップで算出された1/2画素の値及び前記(b)ステップで算出された1/2画素の値から前記キュービックに位置した画素の間に位置した1/4画素の値を算出することを特徴とする請求項2に記載の動き補償方法。
The step (a1) calculates a value of a half pixel located between pixels located on the vertical line from a value of an integer pixel located on the vertical line,
The step (a2) calculates a value of a half pixel located between pixels located on the horizontal line from a value of an integer pixel located on the horizontal line,
The step (a3) includes any one integer pixel constituting the block, a value of 1/2 pixel calculated in the step (a), and a value of 1/2 pixel calculated in the step (b). The motion compensation method according to claim 2, further comprising: calculating a value of a ¼ pixel located between the pixels located in the cubic.
前記コーデックのそれぞれの動きベクトルが指示する画素の位置によって、選択的に複数のレジスターのうち所定位置のレジスターに保存された画素値を出力するステップをさらに含み、
前記(a)ステップは、所定数のクロックの間に出力されて累積された画素の値から前記画素の間に位置した画素の値を算出することを特徴とする請求項1に記載の動き補償方法。
A step of selectively outputting a pixel value stored in a register at a predetermined position among a plurality of registers according to a position of a pixel indicated by each motion vector of the codec;
The motion compensation according to claim 1, wherein the step (a) calculates a value of a pixel located between the pixels from a value of the pixels output and accumulated during a predetermined number of clocks. Method.
前記ブロックのサイズによって、前記所定位置のレジスターのうち何れか一つを出力することを特徴とする請求項14に記載の動き補償方法。   The motion compensation method according to claim 14, wherein any one of the registers at the predetermined position is output according to a size of the block. 外部メモリから前記画像に該当するデータを受信するために待機する区間及び前記外部メモリから前記データを受信する区間の間、前記(a1)ステップ、前記(a2)ステップ及び前記(a3)ステップのそれぞれは、パイプライン形態で行われることを特徴とする請求項2に記載の動き補償方法。   Each of the (a1) step, the (a2) step, and the (a3) step during a period of waiting to receive data corresponding to the image from the external memory and a period of receiving the data from the external memory. The motion compensation method according to claim 2, wherein the motion compensation is performed in a pipeline form. 複数のコーデックのうち何れか一つを表すコーデック情報によって、現在画像に対応する参照画像の画素を補間する複数の方式のうち少なくとも一つの方式を利用して、前記参照画像の画素の値から前記画素の間に位置した画素の値を算出するステップと、
前記算出された画素値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元するステップと、を含むことを特徴とする動き補償方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
Based on codec information representing any one of a plurality of codecs, using at least one of a plurality of methods for interpolating a pixel of a reference image corresponding to a current image, the pixel value of the reference image Calculating a value of a pixel located between the pixels;
A motion compensation method comprising: calculating motion compensation data including the calculated pixel value; and restoring the current image by adding a difference between the reference image and the current image. A computer-readable recording medium on which a program to be executed on the computer is recorded.
複数のコーデックのうち何れか一つを表すコーデック情報によって、現在画像に対応する参照画像の画素を補間する複数の方式のうち少なくとも一つの方式を利用して、前記参照画像の画素の値から前記画素の間に位置した画素の値を算出する動き補償エンジンと、
前記算出された画素値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元する加算器と、を備えることを特徴とする動き補償装置。
Based on codec information representing any one of a plurality of codecs, using at least one of a plurality of methods for interpolating a pixel of a reference image corresponding to a current image, the pixel value of the reference image A motion compensation engine that calculates the values of pixels located between the pixels;
A motion compensation apparatus comprising: motion compensation data including the calculated pixel value; and an adder that restores the current image by adding a difference between the reference image and the current image.
前記動き補償エンジンは、
前記コーデック情報によって、選択的に前記参照画像の何れか一ブロックの何れか一つの垂直ラインに位置した画素の値から、前記垂直ラインに位置した画素の間に位置した画素の値を算出する垂直フィルタと、
前記コーデック情報によって、選択的に前記ブロックの何れか一つの水平ラインに位置した画素の値から、前記水平ラインに位置した画素の間に位置した画素の値を算出する水平フィルタと、
前記コーデック情報によって、選択的に前記ブロックの何れか一つのキュービックに位置した画素の値から、前記キュービックに位置した画素の間に位置した画素の値を算出するキュービックフィルタと、を備えることを特徴とする請求項18に記載の動き補償装置。
The motion compensation engine is:
Vertically calculating the value of pixels located between pixels located on the vertical line from the value of pixels located on any one vertical line of any one block of the reference image according to the codec information Filters,
A horizontal filter for calculating a value of a pixel located between pixels located on the horizontal line from a value of a pixel located on any one horizontal line of the block selectively according to the codec information;
A cubic filter that calculates a value of a pixel located between the pixels located in the cubic from a value of a pixel located in any one of the blocks selectively according to the codec information. The motion compensation apparatus according to claim 18.
JP2007290086A 2006-11-08 2007-11-07 Motion compensation method, recording medium, and motion compensation device Expired - Fee Related JP5698428B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2006-0110224 2006-11-08
KR20060110224 2006-11-08
KR10-2007-0108448 2007-10-26
KR1020070108448A KR101354659B1 (en) 2006-11-08 2007-10-26 Method and apparatus for motion compensation supporting multicodec

Publications (2)

Publication Number Publication Date
JP2008125078A true JP2008125078A (en) 2008-05-29
JP5698428B2 JP5698428B2 (en) 2015-04-08

Family

ID=39509310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007290086A Expired - Fee Related JP5698428B2 (en) 2006-11-08 2007-11-07 Motion compensation method, recording medium, and motion compensation device

Country Status (1)

Country Link
JP (1) JP5698428B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143583A1 (en) * 2009-06-09 2010-12-16 ソニー株式会社 Image processing device and method
JP2011049619A (en) * 2009-08-25 2011-03-10 Fujitsu Ltd Image processing circuit and image encoder
JP2011061704A (en) * 2009-09-14 2011-03-24 Fujitsu Ltd Image processing circuit and image encoding apparatus
CN102014287A (en) * 2010-12-23 2011-04-13 芯原微电子(北京)有限公司 Operating method used for interpolating calculation of H.264 luminance
JP2016116039A (en) * 2014-12-12 2016-06-23 Nttエレクトロニクス株式会社 Decimal pixel generation method
US10993194B2 (en) 2014-05-08 2021-04-27 Ntt Docomo, Inc. User terminal, radio base station and radio communication method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11266460A (en) * 1994-03-24 1999-09-28 Discovision Assoc Video information processing circuit
JP2007316844A (en) * 2006-05-24 2007-12-06 Nec Electronics Corp Filter processor, multiplier and motion compensation processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11266460A (en) * 1994-03-24 1999-09-28 Discovision Assoc Video information processing circuit
JP2007316844A (en) * 2006-05-24 2007-12-06 Nec Electronics Corp Filter processor, multiplier and motion compensation processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013026039; SMTPTE STANDARD VC-1 Compressed Video Bitstream Format and Decoding Process , 20060224, p.159-164, SMPTE *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143583A1 (en) * 2009-06-09 2010-12-16 ソニー株式会社 Image processing device and method
JP2011049619A (en) * 2009-08-25 2011-03-10 Fujitsu Ltd Image processing circuit and image encoder
JP2011061704A (en) * 2009-09-14 2011-03-24 Fujitsu Ltd Image processing circuit and image encoding apparatus
CN102014287A (en) * 2010-12-23 2011-04-13 芯原微电子(北京)有限公司 Operating method used for interpolating calculation of H.264 luminance
US10993194B2 (en) 2014-05-08 2021-04-27 Ntt Docomo, Inc. User terminal, radio base station and radio communication method
JP2016116039A (en) * 2014-12-12 2016-06-23 Nttエレクトロニクス株式会社 Decimal pixel generation method

Also Published As

Publication number Publication date
JP5698428B2 (en) 2015-04-08

Similar Documents

Publication Publication Date Title
KR101354659B1 (en) Method and apparatus for motion compensation supporting multicodec
JP4987884B2 (en) Video data processing
US7623575B2 (en) Method and apparatus for sub-pixel motion compensation
JP5698428B2 (en) Motion compensation method, recording medium, and motion compensation device
US8212823B2 (en) Systems and methods for accelerating sub-pixel interpolation in video processing applications
JP4824703B2 (en) Two-dimensional filter arithmetic apparatus and method
JP2008123479A (en) Simd (single instruction multiple data) and memory array structure for the same
WO2019041264A1 (en) Image processing apparatus and method, and related circuit
US7929612B2 (en) Image interpolation apparatus and methods that apply quarter pel interpolation to selected half pel interpolation results
US8412003B2 (en) Image processing methods, apparatus and computer program products using interdependent pixel interpolation operations
US8014618B2 (en) High-speed motion compensation apparatus and method
US20050047502A1 (en) Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding
JP4963220B2 (en) Filter calculator and motion compensation device
JP2009015637A (en) Computational unit and image filtering apparatus
US6728313B1 (en) Method and apparatus for performing MPEG II dequantization and IDCT
CN102215404B (en) Decoding method and system of videos inside embedded system
KR102664387B1 (en) Apparatus and Method of processing image
JP2007249791A (en) Image processor, image processing method and program
JP2001103482A (en) Motion compensation device for digital video down- converter using orthogonal transformation
JP2007535869A (en) Method and apparatus for vertically scaling pixel data
KR100656644B1 (en) Apparatus for motion compensation in video codec
US9848188B1 (en) Video coding transform systems and methods
JP2001086366A (en) Digital filter and processing method thereof
JP2011249986A (en) Motion compensation apparatus
JP2005348176A (en) Image processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140708

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150213

R150 Certificate of patent or registration of utility model

Ref document number: 5698428

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees