KR101072458B1 - High-speed image encorder based on motion vector reference map and method used in the same - Google Patents

High-speed image encorder based on motion vector reference map and method used in the same Download PDF

Info

Publication number
KR101072458B1
KR101072458B1 KR1020100009943A KR20100009943A KR101072458B1 KR 101072458 B1 KR101072458 B1 KR 101072458B1 KR 1020100009943 A KR1020100009943 A KR 1020100009943A KR 20100009943 A KR20100009943 A KR 20100009943A KR 101072458 B1 KR101072458 B1 KR 101072458B1
Authority
KR
South Korea
Prior art keywords
motion vector
size
image
block
macroblock
Prior art date
Application number
KR1020100009943A
Other languages
Korean (ko)
Other versions
KR20110090259A (en
Inventor
고만근
서재원
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020100009943A priority Critical patent/KR101072458B1/en
Publication of KR20110090259A publication Critical patent/KR20110090259A/en
Application granted granted Critical
Publication of KR101072458B1 publication Critical patent/KR101072458B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

본 발명은 움직임 벡터 참조 지도 기반의 고속 영상 부호화기 및 이에 사용되는 방법에 관한 것으로, 입력받은 영상의 제1 크기의 매크로블록에 대한 움직임 벡터를 참조 영상별로 구하고, 제1 크기의 매크로블록을 제1 크기보다 작은 제2 크기의 블록으로 구분하고, 제2 크기의 블록의 영역에서의 화소 값과 제1 크기의 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소 값 간의 SAD(Sum of Absolute Differences)을 참조 영상별로 계산하고, 계산된 차이값들에 기초하여 제2 크기의 블록마다 참조 영상을 할당한 움직임 벡터 참조 지도를 생성하고, 생성한 움직임 벡터 참조 지도를 이용하여 부호화 모드를 결정한다. 이에 의해, 부호화 복잡도를 부호화 손실 없이 감소시킬 수 있다.The present invention relates to a fast image encoder based on a motion vector reference map and a method used therein, wherein a motion vector of a macroblock of a first size of an input image is obtained for each reference image, and a macroblock of a first size is obtained from a first image. The SAD (Sum of Absolute Differences) between the pixel value in the area of the block of the second size and the pixel value in the area moved by the motion vector of the macroblock of the first size is divided into blocks of the second size smaller than the size. A motion vector reference map in which the reference image is calculated for each reference image, the reference image is allocated to each block of the second size, and the encoding mode is determined using the generated motion vector reference map. As a result, the coding complexity can be reduced without coding loss.

Description

움직임 벡터 참조 지도 기반의 고속 영상 부호화기 및 이에 사용되는 방법{HIGH-SPEED IMAGE ENCORDER BASED ON MOTION VECTOR REFERENCE MAP AND METHOD USED IN THE SAME}High-speed image encoder based on motion vector reference map and its method {{HIGH-SPEED IMAGE ENCORDER BASED ON MOTION VECTOR REFERENCE MAP AND METHOD USED IN THE SAME}

본 발명은 움직임 벡터 참조 지도 기반의 고속 영상 부호화기 및 이에 사용되는 방법에 관한 것으로서, 보다 상세하게는 부호화 손실없이 부호화 복잡도를 감소시킨 움직임 벡터 참조 지도 기반의 고속 영상 부호화기 및 이에 사용되는 고속 참조 영상 선택 방법이다.The present invention relates to a fast image encoder based on a motion vector reference map and a method thereof, and more particularly, to a fast image encoder based on a motion vector reference map which reduces coding complexity without loss of coding, and to selecting a fast reference image used therein. It is a way.

근래에 하드웨어가 고도화되고 소비자가 고화질 서비스를 원하면서 ITU-T와 MPEG에서는 공동으로 H.264/AVC라는 고성능 압축 효율을 갖는 동영상 부호화 표준을 정의하였다. H.264/AVC 동영상 표준의 새로운 기술은 이전에 정의되어진 H.263, MPEG-4등과 유사한 압축 구조를 가지지만 압축효율을 최대한 향상시켰다.Recently, as hardware is advanced and consumers want high-definition service, ITU-T and MPEG have jointly defined a video coding standard with high-performance compression efficiency called H.264 / AVC. The new technology of the H.264 / AVC video standard has a compression structure similar to the previously defined H.263, MPEG-4, etc., but maximizes the compression efficiency.

도 1은 H.264/AVC 동영상 표준의 부호화기부의 간략적인 기능 블록도를 나타낸다. H.264/AVC는 입력된 현재 영상이 인트라 프레임인 경우, 인트라 예측 과정을 통해 최적의 모드로 결정된 예측 화소와 현재 영상과의 차분치를 DCT 변환 및 양자화 과정을 통해 얻어진 양자화 계수를 엔트로피 부호화 과정을 거쳐 복호기에 전송한다. 1 shows a simplified functional block diagram of an encoder part of the H.264 / AVC video standard. When the input current image is an intra frame, H.264 / AVC performs an entropy encoding process on the quantization coefficients obtained through DCT transformation and quantization, based on the difference between the prediction pixel determined as an optimal mode through the intra prediction process and the current image. The data is sent to the decoder.

부호화된 영상은 IDCT 및 역 양자화에서 얻어진 영상과 인트라 예측 화소를 더해서 참조 프레임 영상 메모리에 저장된다. 인터 프레임의 경우, 입력된 영상과 참조 영상의 움직임 예측/보상으로 얻어진 예측 영상과의 차분치를 구한 것과 인트라 모드로 예측된 영상과의 차분치 중에서 최적 모드로 결정된 예측 화소를 현재의 입력 영상과 차분하여 DCT 변환, 양자화과정을 통해 엔트로피 부호화한다. 부호화된 영상은 인트라 프레임임과 마찬가지로 IDCT 및 역 양자화를 통해 얻어진 영상과 움직임 보상 되어진 영상이 결합되어 참조 영상 메모리에 저장되어진다. The coded image is stored in the reference frame image memory by adding the intra prediction pixel and the image obtained by IDCT and inverse quantization. In the case of the inter frame, the difference between the prediction image obtained by the motion prediction / compensation of the input image and the reference image and the difference between the prediction image determined in the intra mode and the prediction pixel determined as the optimal mode are different from the current input image. Entropy coding is performed through DCT transformation and quantization. The encoded image is stored in the reference image memory by combining the image obtained through IDCT and inverse quantization and the motion compensated image as well as the intra frame.

일반적인 영상 부호화기에서는 전체 영상 단위로 부호화하는 대신에 한 장의 영상을 일정한 크기의 블록(예컨대, 가로방향으로 M 화소, 세로 방향으로 N 화소(통상적으로 M×N으로 표시))의 화소(picture element 또는 pixel)의 집합 단위로 부호화를 수행하는데, 대체로 블록의 크기는 16×16 또는 8×8이다. 16×16 크기의 블록을 '매크로블록(macroblock)’이라고 부르며, 8×8 또는 4×4 크기의 블록을 ‘블록(block)’이라고 부른다. In a typical image encoder, instead of encoding a whole image unit, a picture element or a pixel of a predetermined size block (e.g., M pixels in the horizontal direction and N pixels in the vertical direction (usually represented by M × N)) Encoding is performed in units of sets of pixels, and a block size is generally 16 × 16 or 8 × 8. A 16x16 block is called a macroblock and an 8x8 or 4x4 block is called a block.

종래의 기술이 16×16 블록을 최소화 단위로 하나의 이전에 복호화된 영상을 참조 영상으로 삼아 움직임 보상을 한 후 8×8 블록 단위로 부호화한 반면, H.264/AVC의 매크로블록은 가변적인 블록을 이용하여 움직임 보상을 한다. 이와 같은 가변적인 블록을 이용한 움직임 보상 기술은 매크로블록 크기를 16×16에서 4×4 까지 나누어 영상의 특성을 반영하므로 부호화 효율을 증가시키지만 동시에 높은 복잡도를 요구한다. 이러한 복잡도는 가변 블록 움직임 보상을 위한 메크로블록의 모드를 결정하기 위해서 많은 계산량을 요구하는 비트율-왜곡 최적화 기법(RDO, Rate-Distortion Optimization)을 사용하기 때문이다. While the conventional technique uses one previously decoded image as a reference image with a minimum of 16 × 16 blocks as a reference image, motion compensation is performed and then encoded in 8 × 8 block units, whereas macroblocks of H.264 / AVC are variable. Compensate for motion using blocks. Such a motion compensation technique using a variable block divides the macroblock size from 16 × 16 to 4 × 4 to reflect the characteristics of the image, thereby increasing coding efficiency but requiring high complexity. This complexity is due to the use of rate-distortion optimization (RDO), which requires a large amount of computation to determine the mode of the macroblock for variable block motion compensation.

H.264/AV는 매크로블록 모드를 위해서 다섯개의 인터 모드와 세 개의 인트라 모드를 지원하는데 이중에서, SKIP, 16×16, 8×16, 16×8, SUB8×8(또는 'P8×8'로 표기하기로 한다)는 인터 모드에 해당하며 움직임 예측을 통한 매크로블록 부호화에 이용된다. SUB8×8 모드는 각 8×8 블록안에서 8×8, 8×4, 4×8, 4×4 중 하나의 모드로 결정된다(도 3 참조). 인터 모드 예측 방법은 도 3에 도시된 것과 같은 다양한 크기의 블록으로 영상을 분할하고, 이전에 부호화된 영상으로부터 움직임을 예측하여 현재의 블록을 생성하는 움직임 보상을 사용한다. 움직임 보상의 블록 크기를 작게 하면 보다 정확한 예측을 할 수 있다. 하지만, 블록마다 부호화할 움직임 벡터 정보량이 커지기 때문에 부호화 효율이 떨어지므로, 다양한 크기의 블록 중에서 최적의 블록 크기를 결정하는 것은 매우 중요하다.H.264 / AV supports five inter modes and three intra modes for the macroblock mode, of which SKIP, 16 × 16, 8 × 16, 16 × 8, SUB8 × 8 (or 'P8 × 8'). Denotes an inter mode and is used for macroblock encoding through motion prediction. The SUB8x8 mode is determined to be one of 8x8, 8x4, 4x8 and 4x4 in each 8x8 block (see FIG. 3). The inter mode prediction method divides an image into blocks of various sizes as illustrated in FIG. 3, and uses motion compensation to predict a motion from a previously encoded image and generate a current block. If the block size of motion compensation is reduced, more accurate prediction can be achieved. However, since the coding efficiency decreases because the amount of motion vector information to be encoded for each block increases, it is very important to determine an optimal block size among blocks of various sizes.

H.264/AVC는 또한 인트라 모드 예측을 위해 Intra4×4, Intra8×8, 및 Intra16×16을 제공하며, 휘도 블록을 위한 Intra8×8 모드는 FRExt(Fidelity Range Extensions) 프로파일에서만 제공된다. 인트라 모드는 이전에 부호화된 유효한 이웃 매크로블록의 경계 화소를 이용하여 현재 매크로블록을 예측한다.H.264 / AVC also provides Intra4 × 4, Intra8 × 8, and Intra16 × 16 for intra mode prediction, and Intra8 × 8 mode for luminance blocks is provided only in the Fidelity Range Extensions (FRExt) profile. Intra mode predicts the current macroblock using the boundary pixels of the previously encoded valid neighboring macroblocks.

상술한 바 있지만, 인터 모드와 인트라 모드들 중에서 가장 부호화 효율이 좋은 모드를 선택하는 것은 매우 중요한 문제이다. H.264/AVC는 여러 가지 부호화 모드 중에서 최적의 모드를 결정하기 위해서 왜곡도와 함께 발생하는 비트수를 고려한다. 이를 위해서 라그랑지안(Lagrangian) 함수에 기반을 둔 비용함수를 사용한다. 비트율-왜곡 최적화 기법은 각 매크로블록 모드에 대한 비트율-왜곡 비용을 계산한다. 인터 모드에서는 이 값을 계산하기 전에 움직임 벡터와 참조 영상을 먼저 결정해야 한다. 도 2에는 종래의 최소의 율-왜곡을 갖는 모드를 찾기 위한 과정이 도시되어 있다. 도 2에 따르면, 도 3처럼 인터 모드의 기본 블록인 매크로블록을 16×16, 16×8, 8×16, SUB8×8 파티션으로 분리한다. SUB8×8은 각 8×8 블록마다 독립적으로 8×8, 8×4, 4×8, 4×4 모드들로 더욱 세분화 될 수 있다. 분리된 파티션 블록 각각에 대하여 수학식 1을 이용하여 최소값을 갖는 움직임 벡터와 참조 영상을 결정한다.As described above, it is very important to select a mode having the best coding efficiency among inter modes and intra modes. H.264 / AVC considers the number of bits that occur with distortion to determine the optimal mode among various encoding modes. To do this, we use a cost function based on the Lagrangian function. The rate-distortion optimization technique calculates the rate-distortion cost for each macroblock mode. In inter mode, the motion vector and the reference picture must be determined before calculating this value. 2 shows a process for finding a mode with a conventional minimum rate-distortion. Referring to FIG. 2, macroblocks, which are basic blocks of an inter mode, are divided into 16 × 16, 16 × 8, 8 × 16, and SUB8 × 8 partitions. SUB8x8 can be further subdivided into 8x8, 8x4, 4x8 and 4x4 modes independently for each 8x8 block. For each of the divided partition blocks, Equation 1 is used to determine a motion vector having a minimum value and a reference picture.

Figure 112010007423663-pat00001
Figure 112010007423663-pat00001

Figure 112010007423663-pat00002
Figure 112010007423663-pat00002

여기서 Jmotion 은 최적의 움직임 벡터와 참조 영상을 결정하기 위한 함수이며, SADmode는 각 파티션 블록에 대해 현재 입력 영상 블록 s와 움직임 예측/보상 과정으로 복호화되어 프레임 메모리에 저장된 참조 영상에서 가져온 블록 r과 차를 이용하여 구한다. HV는 각각의 파티션 블록의 높이와 넓이이며, mxmv는 움직임 벡터이다. R(MV, REF)는 움직임 벡터 MV와 참조영상 REF를 부호화 하는데 필요한 비트수이며 λ motion은 라그랑지안 계수로 양자화 계수에 의존하면서 왜곡값과의 차수를 맞춰준다. 인터 모드와 인트라 모드에 의해서 결정된 예측 모드들은 수학식 3을 이용하여 Jmode 값이 최소가 되는 모드를 매크로블록 부호화를 위한 최적의 모드로 결정하고 부호화한다. Jmotion is a function to determine the optimal motion vector and reference image, and SADmode is the current input image block s and motion prediction / compensation for each partition block. It is obtained by using a block r and a difference obtained from a reference image decoded in the process and stored in the frame memory. H and V are the height and width of each partition block, and mx and mv are the motion vectors. R ( MV , REF ) is the number of bits needed to encode the motion vector MV and the reference image REF , and λ motion is a Lagrangian coefficient, which is dependent on the quantization coefficient to match the order of the distortion value. The prediction modes determined by the inter mode and the intra mode determine and encode a mode in which the Jmode value is minimum as an optimal mode for macroblock encoding using Equation 3.

Figure 112010007423663-pat00003
Figure 112010007423663-pat00003

Figure 112010007423663-pat00004
Figure 112010007423663-pat00004

여기서 λ modeλ motion의 제곱 값이다. H와 V는 모든 블록에 대한 블록 사이즈이며, M은 부호화 가능한 모든 예측 모드이다. R(s, rM , M)은 M에 해당하는 모드로 부호화했을 때 실제로 발생하는 비트수이며, SSDmode는 현재 입력과 복호된 영상 rM와의 차에 제곱으로 구한다. 이러한 인터 모드에서의 움직임 예측을 위해 최소의 율-왜곡을 찾고자 바로 이전에 만들어진 영상뿐만 아니라, 최대 16개의 양 방향에서 만들어진 영상들을 참조 영상으로 이용한다. 도 4는 이전에 만들어진 N개의 참조 영상을 이용하여 움직임 예측과 보상을 하는 과정을 보여주고 있다.Where λ mode is the square of λ motion . H and V are block sizes for all blocks, and M is all predictable prediction modes. R ( s, rM , M ) is the number of bits that actually occur when encoded in the mode corresponding to M, and SSDmode is calculated as the square of the difference between the current input and the decoded image rM . In order to predict the minimum rate-distortion for the motion prediction in the inter mode, not only the image just created but also the images created in up to 16 bidirectional directions are used as reference images. 4 shows a process of motion estimation and compensation using N reference images previously made.

상술한 바와 같이, H.264/AVC는 인터 블록의 부호화 효율을 높이기 위해 다중 참조 영상을 이용한 움직임 예측을 사용하였다. 이런 다중 참조 영상 움직임 예측을 수행하게 되면 정밀한 예측이 가능하여 시간적 중복성을 더욱 줄일 수가 있게 되며, 참조 영상의 수가 많을수록 높은 PSNR과 낮은 Bit-rate를 얻을 수 있게 된다. 그러나 참조 영상의 수가 늘어날수록 율-왜곡 기반의 모드 결정 방법이 모든 참조 영상에 대해 적용되기 때문에 계산 복잡도 또한 선형적으로 비례 증가하게 된다. As described above, H.264 / AVC uses motion prediction using multiple reference pictures to increase the coding efficiency of the interblock. If the multi-reference video motion prediction is performed, accurate prediction is possible, and thus the temporal redundancy can be further reduced. The higher the number of reference pictures, the higher the PSNR and the lower bit-rate can be obtained. However, as the number of reference pictures increases, the computational complexity also increases linearly in proportion because the rate-distortion based mode decision method is applied to all reference pictures.

본 발명의 일 목적은, 부호화 손실없이 부호화 복잡도를 감소시킨 움직임 벡터 참조 지도 기반의 고속 영상 부호화기를 제공하는 것이다.An object of the present invention is to provide a fast video encoder based on a motion vector reference map with reduced coding complexity without loss of coding.

본 발명의 다른 목적은, 부호화 손실없이 부호화 복잡도를 감소시킨 고속 참조 영상 선택 방법을 제공하는 것이다.Another object of the present invention is to provide a fast reference picture selection method in which coding complexity is reduced without coding loss.

상기 목적들은, 입력받은 영상의 움직임을 보상하여 부호화하는 DCT/양자화부, 상기 DCT/양자화부에 의해 부호화된 영상을 엔트로피 부호화하는 엔트로피 부호화부, 움직임 벡터 참조 지도를 생성하고 이를 이용하여 상기 DCT/양자화부의 부호화 모드를 결정하는 부호화 제어부, 및 상기 움직임 벡터 참조 지도를 저장하는 저장부;를 포함하며, 상기 부호화 제어부는, 입력받은 영상의 제1 크기의 매크로블록에 대한 움직임 벡터를 참조 영상별로 구하고, 상기 제1 크기의 매크로블록을 상기 제1 크기보다 작은 제2 크기의 블록으로 구분하고, 상기 제2 크기의 블록 영역에 포함되는 화소 값과 상기 제1 크기의 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소 값 간의 SAD를 참조 영상별로 계산하고, 계산된 차이값들에 기초하여 상기 제2 크기의 블록마다 참조 영상을 할당한 움직임 벡터 참조 지도를 생성하는 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 영상 부호화기에 의해 달성될 수 있다.The objectives of the present invention include a DCT / quantizer for compensating and encoding a motion of an input image, an entropy encoder for entropy encoding an image encoded by the DCT / quantizer, and a motion vector reference map. An encoding controller configured to determine an encoding mode of a quantization unit, and a storage unit configured to store the motion vector reference map, wherein the encoding controller obtains a motion vector for a macroblock of a first size of an input image for each reference image. And dividing the macroblock of the first size into blocks of a second size smaller than the first size, and moving the pixel block included in the block area of the second size and the motion vector of the macroblock of the first size. A SAD between pixel values in a region is calculated for each reference image, and the block size of the second size is based on the calculated difference values. Reference image a motion vector assigned reference movement, characterized in that for generating a reference vector map can be accomplished by a high speed image coder based on the map.

또한, 상기 목적들은, 입력받은 영상의 움직임을 보상하여 부호화할 때 이용되는 참조 영상을 선택하는 방법에 있어서, 입력받은 영상의 제1 크기의 매크로블록에 대한 움직임 벡터를 참조 영상별로 구하는 단계, 상기 제1 크기의 매크로블록을 상기 제1 크기보다 작은 제2 크기의 블록으로 구분하는 단계, 상기 제2 크기의 블록의 영역에서의 화소 값과 상기 제1 크기의 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소 값 간의 SAD를 참조 영상별로 계산하는 단계, 상기 계산된 차이값들에 기초하여 상기 제2 크기의 블록마다 참조 영상을 할당한 움직임 벡터 참조 지도를 생성하는 단계, 및 상기 움직임 벡터 참조 지도를 이용하여, 참조 영상을 선택하는 단계를 포함하는 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법에 의해 달성될 수 있다.In addition, the above objectives, in the method for selecting a reference image to be used to compensate for the motion of the input image, the method comprising: obtaining a motion vector for each macroblock of the first size of the input image for each reference image, Dividing a macroblock of a first size into a block of a second size smaller than the first size, and moving the pixel value in the area of the block of the second size and the motion vector of the macroblock of the first size Calculating a SAD between pixel values in, for each reference image, generating a motion vector reference map to which a reference image is allocated for each block of the second size, based on the calculated difference values, and the motion vector reference map Can be achieved by a fast reference image selection method based on a motion vector reference map including selecting a reference image. .

본 발명의 일 실시예에 따른 움직임 벡터 참조 지도 기반의 고속 영상 부호화기와 고속 참조 영상 선택 방법은, 부호화 모드 선택시에 사용되는 참조 영상의 개수를 감소시킴으로써 부호화 복잡도를 부호화 손실 없이 감소시키는 효과를 발휘한다.The fast vector image encoder and the fast reference image selection method based on the motion vector reference map according to an embodiment of the present invention have the effect of reducing the coding complexity without coding loss by reducing the number of reference images used when the encoding mode is selected. do.

또한, 본 발명의 일 실시예에 따른 움직임 벡터 참조 지도 기반의 고속 영상 부호화기와 고속 참조 영상 선택 방법은, 부호화 모드 선택시에 사용되는 참조 영상의 개수를 감소시킴으로써 부호화 복잡도를 부호화 손실 없이 약 38% 정도 감소시키는 효과를 발휘한다. In addition, the fast vector image encoder and the fast reference image selection method based on the motion vector reference map according to an embodiment of the present invention reduce coding complexity by reducing the number of reference images used when selecting a coding mode, thereby reducing encoding complexity by about 38%. The effect is to reduce the degree.

또한, 본 발명의 일 실시예에 따른 움직임 벡터 참조 지도 기반의 고속 영상 부호화기와 고속 참조 영상 선택 방법은, 현재의 표준 부호화 규격에 그대로 따르면서도 부호화 모드 선택시에 사용되는 참조 영상의 개수를 감소시켜 부호화 복잡도를 부호화 손실 없이 약 38% 정도 감소시키는 효과를 발휘한다. In addition, the fast vector image encoder and the fast reference image selection method based on the motion vector reference map according to an embodiment of the present invention reduce the number of reference images used when selecting an encoding mode while maintaining the current standard encoding standard. Coding complexity is reduced by about 38% without coding loss.

도 1은 종래의 표준 동영상 부호화기의 개략적인 기능 블럭도,
도 2는 종래의 표준 동영상 부호화기에서의 부호화 모드를 결정하는 방법을 설명하기 위한 순서도,
도 3은 종래의 인터 모드의 블록 크기 분할 파티션을 설명하기 위한 도면,
도 4는 종래의 다중 참조 영상을 이용한 시간적 움직임 예측을 설명하기 위한 도면,
도 5는 본 발명의 일 실시예에 따른 부호화기의 기능 블럭도,
도 6은 본 발명의 일 실시예에 따른 움직임 벡터 참조 지도를 생성하는 방법를 설명하기 위한 순서도,
도 7은 본 발명의 일 실시예에 따른 부호화 모드를 결정하는 방법을 설명하기 위한 순서도,
도 8은 본 발명의 일 실시예에 따른 가변 블록의 움직임 예측과 보상을 위한 참조 영상 결정 방법을 설명하기 위한 도면, 그리고
도 9는 본 발명의 일 실시예에 따른 움직임 예측을 위한 고속 참조 영상 결정 방법을 설명하기 위한 도면이다.
1 is a schematic functional block diagram of a conventional standard video encoder;
2 is a flowchart illustrating a method of determining an encoding mode in a conventional standard video encoder.
3 is a diagram for explaining a block size division partition of a conventional inter mode;
4 is a diagram for explaining temporal motion prediction using a conventional multi-reference image;
5 is a functional block diagram of an encoder according to an embodiment of the present invention;
6 is a flowchart illustrating a method of generating a motion vector reference map according to an embodiment of the present invention;
7 is a flowchart illustrating a method of determining an encoding mode according to an embodiment of the present invention;
8 is a diagram for describing a method of determining a reference image for motion prediction and compensation of a variable block according to an embodiment of the present invention; and
9 is a diagram for describing a fast reference image determination method for motion prediction according to an embodiment of the present invention.

이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시 예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. In describing the following specific embodiments, various specific details are set forth in order to explain and understand the invention in more detail. However, one of ordinary skill in the art can understand that the present invention can be used without these various specific details. In some cases, it is mentioned in advance that parts of the invention which are commonly known in the description of the invention and which are not highly related to the invention are not described in order to prevent confusion in explaining the invention without cause.

도 5는 본 발명의 일 실시예에 따른 부호화기의 기능 블럭도이다. 도 5를 참조하면, 본 발명의 일 실시예에 따른 부호화기는, DCT/양자화부(101), 역양자화/역DCT부(103), 엔트로피 부호화부(105), 디블로킹 필터(107), 화면내 예측부(109), 움직임 벡터 검출부(111), 움직임 보상부(113), 가중치 예측부(115), 부호화 제어부(117), 및 움직임 벡터 참조 지도를 저장하는 저장부(119)를 포함한다.5 is a functional block diagram of an encoder according to an embodiment of the present invention. Referring to FIG. 5, an encoder according to an embodiment of the present invention includes a DCT / quantization unit 101, an inverse quantization / inverse DCT unit 103, an entropy encoding unit 105, a deblocking filter 107, and a screen. It includes an internal predictor 109, a motion vector detector 111, a motion compensator 113, a weight predictor 115, an encoding controller 117, and a storage unit 119 for storing a motion vector reference map. .

DCT/양자화부(101)는 입력받은 영상의 움직임을 보상하여 부호화한다. 구체적으로, DCT/양자화부(101)는 입력받은 영상을 이산여현변환(Discrete Cosine Transform: DCT)이라고 하는 수학적인 처리를 행하여 주파수 성분을 나타내는 DCT 계수값을 산출하고 산출한 DCT 계수값을 이산적인 대표값으로 대응시켜 양자화 시킨다. 본 발명의 대안적인 실시예에 따르면, DCT/양자화부(101)에 입력되는 영상은 소정의 전처리 과정을 통해서 입력될 수 있다. 전처리 과정은, 포맷변환, 프레임 순서바꿈, 및 잡음 제거 등을 예로 들 수 있다.The DCT / quantization unit 101 compensates and encodes the motion of the input image. Specifically, the DCT / quantization unit 101 performs a mathematical process called a discrete cosine transform (DCT) on an input image to calculate a DCT coefficient value representing a frequency component and discretely calculate the calculated DCT coefficient value. Quantize by mapping to a representative value. According to an alternative embodiment of the present invention, the image input to the DCT / quantization unit 101 may be input through a predetermined preprocessing process. The preprocessing may include format conversion, frame reordering, and noise removal.

역양자화/역DCT부(103)는 움직임 보상을 위한 예측 화면을 만들기 위해서, DCT/양자화부(101)에 부호화된 영상을 역양자화 및 역DCT 동작을 수행한다.The inverse quantization / inverse DCT unit 103 performs inverse quantization and inverse DCT operations on an image encoded by the DCT / quantization unit 101 to make a prediction screen for motion compensation.

엔트로피 부호화부(105)는, DCT/양자화부(101)에 의해 부호화된 영상을 엔트로피 부호화한다. 구체적으로 엔트로피 부호화부(105)는 빈도가 높은 정보는 짧은 부호로, 그렇지 않은 정보는 긴 부호로 표현함으로써 전체적으로 전송 비트수를 줄이는 처리를 수행한다.The entropy coding unit 105 entropy codes the video coded by the DCT / quantization unit 101. Specifically, the entropy encoder 105 performs a process of reducing the number of transmission bits as a whole by expressing high frequency information with short codes and other information with long codes.

디블로킹 필터(107)는 영상을 부호화할 때 발생하는 블록 왜곡을 감소시키는 필터이다. The deblocking filter 107 is a filter that reduces block distortion generated when encoding an image.

화면내 예측부(109)는 프레임내(인트라 프레임 또는 화면내) 예측 동작을 수행하며, 구체적으로 인접한 복수 화소들로부터 현재의 화소값을 예측할 수 있다. The intra prediction unit 109 performs an intra frame (intra frame or intra prediction) prediction operation, and may specifically predict a current pixel value from a plurality of adjacent pixels.

움직임 벡터 검출부(111)는 소정의 블록 크기에 대한 움직임 벡터를 검출한다. 블록 크기는 가능한 한 최적의 것으로 정해지는 데, 본 발명의 대안적인 실시예에 따르면 부호화 제어부(117)가 최적의 블록 크기를 결정하며, 이렇게 결정된 블록 크기에 대하여 움직임 벡터 검출부(111)가 움직임 벡터를 검출한다.The motion vector detector 111 detects a motion vector for a predetermined block size. The block size is determined to be as optimal as possible. According to an alternative embodiment of the present invention, the encoding control unit 117 determines the optimal block size, and the motion vector detection unit 111 determines the motion vector with respect to the determined block size. Detect.

움직임 보상부(113)는 화면내에 존재하는 피사체의 움직임량(움직임 벡터)에 기초하여 부호화하고자 하는 화면에 대하여 움직임 보상 처리를 한다.The motion compensator 113 performs motion compensation on the screen to be encoded based on the motion amount (motion vector) of the subject existing in the screen.

가중치 예측부(115)는 움직임 보상 처리가 된 신호에 일정한 계수가 아닌 적응적으로 변하는 가중치 계수를 곱해서 예측 신호를 생성한다.The weight predictor 115 multiplies the signal subjected to the motion compensation by an adaptive variable weight coefficient instead of a constant coefficient to generate a prediction signal.

부호화 제어부(117)는 영상의 프레임(화면) 단위 또는 더 작은 단위로 부호화하는 방법(즉, 부호화 모드)을 선택하거나 그 파라미터를 선택함으로써 발생 정보량을 최적화시키는 동작을 수행한다. 이를 위해서, 부호화 제어부(117)는 다른 구성요소들의 동작을 제어한다. 본 발명의 일 실시예에 따른 부호화 제어부(117)는 가변 블록 크기 움직임 보상을 지원하며, 움직임 벡터 참조 지도를 생성하고 이를 이용하여 부호화 모드를 결정한다.The encoding control unit 117 performs an operation of optimizing the amount of information generated by selecting a method (that is, an encoding mode) of encoding a frame (picture) unit or a smaller unit of an image or selecting a parameter thereof. To this end, the encoding control unit 117 controls the operation of the other components. The encoding control unit 117 according to an embodiment of the present invention supports variable block size motion compensation, generates a motion vector reference map, and uses the same to determine an encoding mode.

움직임 보상부(113)가 움직임 보상의 블록크기를 작게 할수록 보다 정확한 예측을 할 수 있는 반면에, 블록마다 움직임 벡터 정보를 부호화 하여야 하기 때문에 움직임 벡터 정보에 대한 부호량이 증가할 수 있다. 이를 해결하기 위해서, H.264/AVC와 같은 동영상 부호화 방식에서는 움직임 보상 블록크기 중에서 최적의 것을 사용하는 방법('가변 블록 크기 움직임 보상')을 사용하며, 본원 발명에서도 가변 블록 크기 움직임 보상을 사용한다. While the motion compensation unit 113 may make more accurate prediction as the block size of the motion compensation is smaller, the code amount for the motion vector information may increase because the motion vector information should be encoded for each block. In order to solve this problem, a video coding scheme such as H.264 / AVC uses a method ('variable block size motion compensation') that uses an optimal one among motion compensation block sizes, and the present invention also uses variable block size motion compensation. do.

예를 들면, 본 발명에서는 H.264/AVC에서 지원하는 5개의 인터 모드와 3개의 인트라 모드를 사용하며, 부호화 제어부(117)는 움직임 벡터 참조 지도를 활용하여 이들 모드 들 중에서 가장 부호화율이 좋은 모드를 선택할 수 있다. 5개의 인터 모드로는 SKIP, 16×16, 16×8, 8×16, P8×8 있고, 여기서 P8×8 모드는 각 8×8 블록안에서 8×8, 8×4, 4×8, 4×4 중 하나로 결정된다. 인터 모드에서는 영상을 위의 5가지 종류들 중 어느 하나의 크기의 블록으로 분할한 후, 이전에 부호화한 영상으로부터 움직임을 예측하여 현재의 블록을 생성하는 움직임 보상을 사용한다. 3개의 인트라 모드로는 Intra4×4, Intra8×8, Intra16×16이 있으며, 인트라 모드에서는 이전에 부호화된 유효한 이웃 매크로블록의 경계 화소를 이용하여 현재 매크로블록을 예측한다.For example, in the present invention, five inter modes and three intra modes supported by H.264 / AVC are used, and the encoding control unit 117 utilizes a motion vector reference map to obtain the best coding rate among these modes. You can select the mode. Five inter modes are SKIP, 16x16, 16x8, 8x16, P8x8, where P8x8 mode is 8x8, 8x4, 4x8, 4 within each 8x8 block. It is determined by one of × 4. In the inter mode, motion compensation is performed by dividing an image into blocks of any one of the above five types, and then generating a current block by predicting motion from a previously encoded image. Three intra modes are Intra4x4, Intra8x8, and Intra16x16. In the intra mode, the current macroblock is predicted using the boundary pixels of previously encoded valid neighboring macroblocks.

구체적으로, 부호화 제어부(117)는 비트율-왜곡 최적화 기법이라는 방법을 사용하는데, 이 기법에서는 각 매크로블록 모드들에 대한 비트율-왜곡 값을 계산하여 최소가 되는 값을 가지는 모드가 현재 매크로블록을 부호화하기 위한 최적 모드로서 결정한다. Specifically, the encoding control unit 117 uses a method called a bitrate-distortion optimization technique, in which a mode having a minimum value by calculating bitrate-distortion values for each macroblock mode is encoded by the current macroblock. Determine as the best mode to make.

본원 발명의 일 실시예에 따른 부호화 제어부(117)는, 비트율-왜곡 비용을 계산할 때 사용하는 참조 영상을 선택할 때, 움직임 벡터 참조 지도를 활용하여 선택함으써 고속으로 부호화를 할 수 있도록 한다.The encoding control unit 117 according to an embodiment of the present invention enables high-speed encoding by selecting using a motion vector reference map when selecting a reference image used when calculating a bit rate-distortion cost.

예를 들면, 부호화 제어부(117)는, 입력받은 영상의 제1 크기의 매크로블록에 대한 움직임 벡터를 참조 영상별로 구하고, 제1 크기의 매크로블록을 상기 제1 크기보다 작은 제2 크기의 블록으로 구분하고, 제2 크기의 블록의 영역에서의 화소 값과 제1 크기의 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소 값 간의 SAD를 참조 영상별로 계산하고, 계산된 차이값들에 기초하여 제2 크기의 블록마다 참조 영상을 할당한 움직임 벡터 참조 지도를 생성한다. For example, the encoding controller 117 obtains a motion vector of a macroblock of a first size of the input image for each reference image, and converts a macroblock of a first size into a block of a second size smaller than the first size. The SAD between the pixel value in the region of the block of the second size and the pixel value in the region moved by the motion vector of the macroblock of the first size is calculated for each reference image and based on the calculated difference values. A motion vector reference map is generated by allocating a reference image for each block of two sizes.

본 발명의 바람직한 실시예에서, 제1 크기의 매크로블록은 16×16 매크로블록(MB)이며, 제2 크기의 블록은 4×4 블록이다. 본 실시예에 따르면, 부호화하고자 하는 영상을 16×16 크기의 매크로블록 단위로 각 참조 영상별로 움직임 벡터를 찾아서 저장한다. 이를 위해서 부호화 제어부(117)의 제어하에 움직임벡터 검출부(111)는 영상을 16×16 크기의 매크로블록 단위로 각 참조 영상별로 움직임 벡터를 검출하여 저장부(119) 또는 별도로 마련된 저장부(미도시)에 저장한다. 각 참조 영상별로 움직임 벡터를 검출한 후, 부호화 제어부(117)는 상술한 16×16 크기의 매크로블록을 16개의 4×4 블록으로 분할하고, 분할된 각각의 4×4 블록이 위에서 구한 각 참조 영상별 16×16 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소값 간의 SAD를 산출한다. 계속하여, 부호화 제어부(117)는 가장 작은 SAD 값을 가지는 각 참조 영상의 번호를 4×4 블록마다 할당하여 움직임 벡터 참조 지도를 생성한다. 이렇게 생성된 움직임 벡터 참조 지도는 저장부(119)에 저장되며, 이후, 여러 크기의 가변 블록에 대한 움직임 예측이 수행될 경우 각 가변 블록에 속해진 4×4 블록 크기에 대해 만들어진 움직임 벡터 참조 지도가 이용된다. 이로써, 참조 영상을 가변 블록당 적용하는 수를 줄일 수 있고, 고속으로 부호화를 할 수 있게 된다.In a preferred embodiment of the present invention, the macroblock of the first size is 16 × 16 macroblocks (MB) and the block of the second size is 4 × 4 blocks. According to the present embodiment, a motion vector is searched and stored for each reference picture in units of 16 × 16 macroblocks. To this end, under the control of the encoding control unit 117, the motion vector detecting unit 111 detects the motion vector for each reference image in units of 16 × 16 macroblocks, and stores the storage unit 119 or a separate storage unit (not shown). ). After detecting the motion vector for each reference image, the encoding control unit 117 divides the above-described 16 × 16 macroblock into 16 4 × 4 blocks, and each divided 4 × 4 block obtains each reference obtained above. The SAD between the pixel values in the region moved by the motion vector of the 16x16 macroblock per image is calculated. Subsequently, the encoding control unit 117 generates a motion vector reference map by allocating the number of each reference picture having the smallest SAD value for every 4x4 block. The motion vector reference map generated as described above is stored in the storage unit 119. Then, when motion prediction for variable blocks of various sizes is performed, a motion vector reference map made for 4 × 4 block sizes belonging to each variable block is performed. Is used. As a result, the number of applications of the reference image per variable block can be reduced, and encoding can be performed at high speed.

한편, 도 5의 실시예에서 예시된 각 구성요소들은 각각 분리되어 있는 것으로 도시되어 있지만, 이는 예시적인 것으로서 이들 구성요소들의 일부가 서로 소프트웨어적 및/또는 하드웨어적으로 서로 통합되어 구현되거나, 또는 하나의 구성요소가 소프트웨어적 및/또는 하드웨어적으로 서로 분리되어 구현되어도 무방할 것이다.Meanwhile, although each of the components illustrated in the embodiment of FIG. 5 is shown as being separated from each other, this is merely exemplary, and some of these components are implemented by being integrated with each other in software and / or hardware. May be implemented separately from each other in software and / or hardware.

도 6은 본 발명의 일 실시예에 따른 움직임 벡터 참조 지도를 생성하는 방법를 설명하기 위한 순서도, 도 7은 본 발명의 일 실시예에 따른 부호화 모드를 결정하는 방법을 설명하기 위한 순서도, 도 8은 본 발명의 일 실시예에 따른 가변 블록의 움직임 예측과 보상을 위한 참조 영상 결정 방법을 설명하기 위한 도면이다.6 is a flowchart illustrating a method of generating a motion vector reference map according to an embodiment of the present invention, FIG. 7 is a flowchart illustrating a method of determining an encoding mode according to an embodiment of the present invention, and FIG. A diagram for describing a method of determining a reference image for motion prediction and compensation of a variable block according to an embodiment of the present invention.

이제 이들 도면을 각각 또는 동시에 참조하여, 본원 발명의 일 실시예에 따른 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법을 설명하기로 한다. 본 발명의 일 실시예에 따른 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법은 움직임 벡터 참조 지도를 생성하고, 그것을 활용하여 고속으로 참조 영상을 선택할 수 있다. Now, with reference to each of these drawings or simultaneously, a method of selecting a fast reference image based on a motion vector reference map according to an embodiment of the present invention will be described. A fast reference image selection method based on a motion vector reference map according to an embodiment of the present invention may generate a motion vector reference map and select a reference image at high speed by using the same.

도 6을 참조하면, 움직임 벡터 참조 지도를 생성하는 방법이 예시적으로 도시되어 있으며, 본 방법에 따르면 먼저 16×16 매크로블록(MB)에 대한 각 참조 영상별 움직임 벡터(MV)를 구하여 저장하며(S601), 16×16 매크로블록을 구성하는 4×4 블록들 각각의 화소값과 S601 단계에서 구한 각 참조 영상별 16×16 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소값 간의 SAD를 산출한다(S603). 이후, S601 단계와 S603 단계는 모든 참조 영상들에 대하여 수행된다(S605). 모든 참조 영상들에 대하여 S601 단계와 S603 단계가 완료되면(S605: YES), 4×4 블록마다 가장 작은 SAD 값을 가지는 참조 영상을 할당하여 움직임 벡터 참조 지도를 작성한다(S607). Referring to FIG. 6, a method of generating a motion vector reference map is exemplarily illustrated. According to the present method, first, a motion vector (MV) for each reference image of a 16 × 16 macroblock (MB) is obtained and stored. (S601), SAD is calculated between the pixel value of each of the 4x4 blocks constituting the 16x16 macroblock and the pixel value in the region moved by the motion vector of the 16x16 macroblock for each reference image obtained in step S601. (S603). Thereafter, steps S601 and S603 are performed on all reference images (S605). When steps S601 and S603 are completed for all reference images (S605: YES), a motion vector reference map is created by allocating a reference image having the smallest SAD value for every 4x4 block (S607).

도 7을 참조하면, 본 발명의 일 실시예에 따른 부호화 모드를 결정하는 방법이 예시적으로 도시되어 있으며, 본 방법에 따르면 먼저 현재 부호화 하고자 하는 화면(본원 명세서에서, '화면, '영상', 또는 '프레임' 등의 용어들은 서로 구별할 실익이 없는 한 서로 혼용하여 사용하기로 한다)이 인트라 프레임인지 아니면 인터 프레임인지를 구분한다(S701). 만약 인트라 프레임이면 S711 단계를 수행하며, 인터 프레임이면 S703 단계를 수행한다. S711 단계는, 인트라 모드를 결정하는 단계로서 예를 들면 종래의 인트라 모드를 결정하는 방법을 활용할 수 있다.Referring to FIG. 7, a method of determining an encoding mode according to an embodiment of the present invention is exemplarily illustrated. According to the present method, a screen to be currently encoded (in this specification, 'screen,' image ', Or, terms such as 'frame' will be used interchangeably with each other unless there is no benefit to distinguish them from each other. If it is an intra frame, step S711 is performed. If it is an inter frame, step S703 is performed. In operation S711, as an operation of determining an intra mode, a method of determining a conventional intra mode may be used.

인터 프레임인 경우를 설명한다. 인터 프레임의 경우, 도 6에 예시적으로 도시된 움직임 벡터 참조 지도 생성 방법에 의해서 생성된 움직임 벡터 참조 지도를 참조하여, 16×8, 8×16 매크로블록들 각각에 대하여 지도에 해당되는 할당된 참조 영상들만을 이용한 움직임 벡터를 구한다(S703). 계속하여, 움직임 벡터 참조 지도를 참조하여, P8×8 블록에 대한 각각의 비트율-왜곡 값(RD)을 구한다(S705). 도 8 (a), (b), (c), (d)에는 S703 단계와 S705 단계의 동작이 예시적으로 도시되어 있다. 이후, 비트율-왜곡 값(RD)을 다른 부호화 모드들에 대하여도 계산하고(S707), 계산한 값들 중에서 가장 작은 RD 값을 가지는 부호화 모드를 최적의 매크로블록 모드로 결정한다(S709).The case of an inter frame will be described. In the case of the inter frame, with reference to the motion vector reference map generated by the motion vector reference map generation method illustrated in FIG. 6, the 16x8 and 8x16 macroblocks are allocated to the map. A motion vector using only reference images is obtained (S703). Subsequently, with reference to the motion vector reference map, each bit rate-distortion value RD for the P8x8 block is obtained (S705). 8 (a), (b), (c) and (d) exemplarily illustrate operations of steps S703 and S705. Thereafter, the bit rate-distortion value RD is also calculated for other encoding modes (S707), and an encoding mode having the smallest RD value among the calculated values is determined as an optimal macroblock mode (S709).

도 9는 본 발명의 일 실시예에 따른 움직임 예측을 위한 고속 참조 영상 결정 방법을 설명하기 위한 도면으로서, 도 9를 참조하면 움직임 벡터 참조 지도 생성과 부호화 모드를 순차적으로 수행하는 방법이 예시적으로 도시되어 있다.9 is a diagram for describing a method of determining a fast reference image for motion prediction according to an embodiment of the present invention. Referring to FIG. 9, a method of sequentially performing a motion vector reference map generation and an encoding mode is illustrated. Is shown.

도 9를 참조하면, 현재 영상이 인트라 프레임인 경우 인트라 모드를 결정하는 동작을 수행하고(S921: YES), 인터 프레임인 경우(S903: N0)는 S905 내지 S911 단계를 수행하여 움직임 벡터 참조 지도를 생성하고, S913 내지 S917 단계를 수행하여 각 모드들에 대한 RD 값을 계산하며, 가장 작은 RD 값을 가진 모드를 최적 매크로블록으로 결정한다. Referring to FIG. 9, when the current image is an intra frame, an operation of determining an intra mode is performed (S921: YES). In the case of an inter frame (S903: N0), an operation vector reference map is performed by performing steps S905 to S911. In operation S913 to S917, the RD value for each mode is calculated, and the mode having the smallest RD value is determined as an optimal macroblock.

구체적으로, 참조영상(Ref)별로 16×16 매크로블록에 대한 움직임 벡터를 구하며(S905, S909), 16×16 매크로블록을 구성하는 4×4 블록들 각각에 대하여 상기 S905 및 S909에서 구한 움직임 벡터를 이용하여 벡터만큼 이동시킨 영역들에서의 화소값에 대한 SAD 값을 구한다(S907). S907에서 구한 SAD 값들 중에서 가장 작은 SAD 값을 가지는 참조 영상의 번호를 4×4 블록마다 할당하여 움직임 벡터 참조 지도를 생성한다(S911). 이후, 움직임 벡터 참조 지도를 이용하여, 각각의 16×8, 8×16 블록들에 대한 움직임 벡터를 할당된 참조 영상에서만 구하고(S913), P8×8 블록 각각에 대하여 같은 과정을 통한 RD 값을 구한다(S915). 이후, 각 모드들에 대한 RD 값을 계산하여 최소가 되는 RD 값을 가진 모드를 최적 매크로블록 모드로 결정한다(S919).Specifically, a motion vector for a 16 × 16 macroblock is obtained for each reference image Ref (S905 and S909), and the motion vector obtained in S905 and S909 for each of the 4 × 4 blocks constituting the 16 × 16 macroblock. The SAD value for the pixel values in the regions shifted by the vector is obtained using S907. A motion vector reference map is generated by allocating the number of the reference image having the smallest SAD value among every 4 × 4 blocks among the SAD values obtained in S907 (S911). Then, using the motion vector reference map, the motion vectors for each of the 16x8 and 8x16 blocks are obtained only in the allocated reference image (S913), and the RD values through the same process for each of the P8x8 blocks are obtained. Obtained (S915). Thereafter, the RD value for each mode is calculated to determine the mode having the minimum RD value as the optimum macroblock mode (S919).

이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limiting the scope of the invention as defined by the appended claims. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.

101: DCT/양자화부 103: 역양자화/역DCT
105: 엔트로피 부호화부 107: 디블로킹 필터
109: 화면내 예측부 111: 움직임 벡터 검출부
113: 움직임 보상부 115: 가중치 예측부
117: 부호화 제어부 119: 움직임 벡터 참조 지도 저장부
101: DCT / quantization unit 103: inverse quantization / inverse DCT
105: entropy encoding unit 107: deblocking filter
109: intra prediction unit 111: motion vector detection unit
113: motion compensation unit 115: weight prediction unit
117: encoding control unit 119: motion vector reference map storage unit

Claims (12)

입력받은 영상의 움직임을 보상하여 부호화하는 DCT/양자화부;
상기 DCT/양자화부에 의해 부호화된 영상을 엔트로피 부호화하는 엔트로피 부호화부;
움직임 벡터 참조 지도를 생성하고 이를 이용하여 상기 DCT/양자화부의 부호화 모드를 결정하는 부호화 제어부; 및
상기 움직임 벡터 참조 지도를 저장하는 저장부;를 포함하며,
상기 부호화 제어부는,
입력받은 영상의 제1 크기의 매크로블록에 대한 움직임 벡터를 참조 영상별로 구하고, 상기 제1 크기의 매크로블록을 상기 제1 크기보다 작은 제2 크기의 블록으로 구분하고, 상기 제2 크기의 블록의 영역에서의 화소 값과 상기 제1 크기의 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소 값 간의 SAD(Sum of Absolute Differences)을 참조 영상별로 계산하고, 계산된 차이값들에 기초하여 상기 제2 크기의 블록마다 참조 영상을 할당한 움직임 벡터 참조 지도를 생성하는 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 영상 부호화기.
A DCT / quantizer for compensating and encoding the motion of the input image;
An entropy encoding unit for entropy encoding an image encoded by the DCT / quantization unit;
An encoding control unit for generating a motion vector reference map and determining an encoding mode of the DCT / quantization unit using the motion vector reference map; And
And a storage unit which stores the motion vector reference map.
The encoding control unit,
A motion vector of a macroblock of a first size of an input image is obtained for each reference image, and the macroblock of the first size is divided into blocks of a second size smaller than the first size, and the Sum of Absolute Differences (SADs) between pixel values in an area and pixel values in an area moved by a motion vector of the macroblock of the first size are calculated for each reference image and based on the calculated difference values. A motion vector reference map based fast image encoder, characterized in that for generating a motion vector reference map to which a reference image is allocated for each block of size.
제 1 항에 있어서,
상기 제1 크기의 매크로블록은 16×16 매크로블록(MB)인 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 영상 부호화기.
The method of claim 1,
And the macroblock of the first size is a 16 × 16 macroblock (MB).
제 1 항에 있어서,
상기 제2 크기의 블록은 4×4 블록인 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 영상 부호화기.
The method of claim 1,
And the second sized block is a 4x4 block.
제 1 항에 있어서,
상기 부호화 제어부는,
상기 SAD 값이 가장 작은 참조 영상을 상기 제2 크기의 블록에 할당함으로써, 움직임 벡터 참조 지도를 생성하는 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 영상 부호화기.
The method of claim 1,
The encoding control unit,
And a motion vector reference map is generated by assigning the reference image having the smallest SAD value to the block of the second size.
제 1 항에 있어서,
상기 부호화 제어부는,
상기 움직임 보상이 프레임 간 보상(인터 프레임)인지 아니면 프레임 내 보상(인트라 보상)인지를 결정하고, 프레임 간 보상인 경우 매크로블록 단위로 상기 움직임 벡터 참조 지도를 생성하는 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 영상 부호화기.
The method of claim 1,
The encoding control unit,
Determine whether the motion compensation is inter frame compensation (inter frame) or intra frame compensation (intra compensation), and in the case of inter frame compensation, the motion vector reference map is generated in units of macroblocks. Based fast image encoder.
제 1 항에 있어서,
상기 부호화 제어부는,
상기 제1 크기의 매크로블록과 상기 제2 크기의 블록 사이의 가변적인 블록의 움직임을 예측할 때, 상기 움직임 벡터 참조 지도를 참조하여 예측하는 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 영상 부호화기.
The method of claim 1,
The encoding control unit,
And a motion vector reference map based on the motion vector reference map when predicting a motion of a variable block between the macroblock of the first size and the block of the second size.
제 6 항에 있어서,
상기 부호화 제어부는,
상기 가변적인 블록을 구성하는 제2 크기의 블록에 할당된 참조 영상을 이용하여 움직임을 예측하는 것을 특징으로 하는 움직임 벡터 참조 기반의 고속 영상 부호화기.
The method according to claim 6,
The encoding control unit,
The fast vector encoder based on the motion vector reference, wherein the motion is predicted by using a reference picture allocated to a block of a second size constituting the variable block.
입력받은 영상의 움직임을 보상하여 부호화할 때 이용되는 참조 영상을 선택하는 방법에 있어서,
입력받은 영상의 제1 크기의 매크로블록에 대한 움직임 벡터를 참조 영상별로 구하는 단계;
상기 제1 크기의 매크로블록을 상기 제1 크기보다 작은 제2 크기의 블록으로 구분하는 단계;
상기 제2 크기의 블록의 영역에서의 화소 값과 상기 제1 크기의 매크로블록의 움직임 벡터만큼 움직인 영역에서의 화소 값 간의 SAD(Sum of Absolute Differences)을 참조 영상별로 계산하는 단계;
상기 계산된 차이값들에 기초하여 상기 제2 크기의 블록마다 참조 영상을 할당한 움직임 벡터 참조 지도를 생성하는 단계; 및
상기 움직임 벡터 참조 지도를 이용하여, 참조 영상을 선택하는 단계;를 포함하는 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법.
A method of selecting a reference picture used to compensate for and encode a motion of an input picture,
Obtaining a motion vector for each macroblock of the first size of the input image for each reference image;
Dividing the macroblock of the first size into blocks of a second size smaller than the first size;
Calculating sum of absolute differences (SAD) for each reference image between a pixel value in an area of the block of the second size and a pixel value in an area moved by the motion vector of the macroblock of the first size;
Generating a motion vector reference map in which a reference image is allocated to each block of the second size based on the calculated difference values; And
And selecting a reference image using the motion vector reference map.
제 8 항에 있어서,
상기 제1 크기의 매크로블록은 16×16 매크로블록(MB)인 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법.
The method of claim 8,
And a macroblock of the first size is a 16 × 16 macroblock (MB).
제 8 항에 있어서,
상기 제2 크기의 블록은 4×4 블록인 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법.
The method of claim 8,
And a second sized block is a 4x4 block.
제 8 항에 있어서,
상기 움직임 벡터 참조 지도를 생성하는 단계는,
상기 SAD 값이 가장 작은 참조 영상을 상기 제2 크기의 블록에 할당함으로써, 움직임 벡터 참조 지도를 생성하는 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법.
The method of claim 8,
The generating of the motion vector reference map may include:
And a motion vector reference map is generated by allocating the reference image having the smallest SAD value to the block of the second size.
제 8 항에 있어서,
상기 움직임 벡터 참조 지도를 생성하는 단계는,
상기 움직임 보상이 프레임 간 보상(인터 프레임)인지 아니면 프레임 내 보상(인트라 보상)인지를 결정하고, 프레임 간 보상인 경우 매크로블록 단위로 상기 움직임 벡터 참조 지도를 생성하는 것을 특징으로 하는 움직임 벡터 참조 지도 기반의 고속 참조 영상 선택 방법.
The method of claim 8,
The generating of the motion vector reference map may include:
Determine whether the motion compensation is inter frame compensation (inter frame) or intra frame compensation (intra compensation), and in the case of inter frame compensation, the motion vector reference map is generated in units of macroblocks. Based Fast Reference Image Selection Method.
KR1020100009943A 2010-02-03 2010-02-03 High-speed image encorder based on motion vector reference map and method used in the same KR101072458B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100009943A KR101072458B1 (en) 2010-02-03 2010-02-03 High-speed image encorder based on motion vector reference map and method used in the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100009943A KR101072458B1 (en) 2010-02-03 2010-02-03 High-speed image encorder based on motion vector reference map and method used in the same

Publications (2)

Publication Number Publication Date
KR20110090259A KR20110090259A (en) 2011-08-10
KR101072458B1 true KR101072458B1 (en) 2011-10-11

Family

ID=44928073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100009943A KR101072458B1 (en) 2010-02-03 2010-02-03 High-speed image encorder based on motion vector reference map and method used in the same

Country Status (1)

Country Link
KR (1) KR101072458B1 (en)

Also Published As

Publication number Publication date
KR20110090259A (en) 2011-08-10

Similar Documents

Publication Publication Date Title
US11889107B2 (en) Image encoding method and image decoding method
JP4977094B2 (en) Image coding method
KR101103699B1 (en) Video coding method and decoding method, their device, their program and program-recorded medium
KR101829594B1 (en) Dynamic image decoding device, dynamic image decoding method, dynamic image encoding device, dynamic image encoding method, and recoding medium
KR101228020B1 (en) Video coding method and apparatus using side matching, and video decoding method and appartus thereof
US8948243B2 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
KR20160106022A (en) Apparatus for encoding a moving picture
US20060159354A1 (en) Method and apparatus for predicting frequency transform coefficients in video codec, video encoder and decoder having the apparatus, and encoding and decoding method using the method
KR20140057675A (en) Inter prediction encoding method
KR102027474B1 (en) Method and apparatus for encoding/decoding image by using motion vector of previous block as motion vector of current block
CN107810632B (en) Intra prediction processor with reduced cost block segmentation and refined intra mode selection
JP2007329693A (en) Image encoding device and method
KR20130135925A (en) Image encoding apparatus, image decoding apparatus, image encoding method and image decoding method
KR20130101116A (en) Video encoding device, video decoding device, video encoding method, video decoding method, and program
JP2010028220A (en) Motion vector detecting device, motion vector detecting method, image encoding device, and program
CA2727107A1 (en) Method and device for video transcoding using quad-tree based mode selection
JP5197864B2 (en) Image decoding method and apparatus
CA2726973C (en) Method and device for motion vector estimation in video transcoding using union of search areas
KR101072458B1 (en) High-speed image encorder based on motion vector reference map and method used in the same
JP2023528609A (en) Encoding/decoding method, apparatus and device
KR20120059334A (en) Method and device for encoding prediction motion vector
CA2727119C (en) Method and device for motion vector prediction in video transcoding using full resolution residuals
KR20120035769A (en) Method and apparatus for encoding and decoding motion vector
KR20110069482A (en) Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same
KR20130090857A (en) Image encoder and decoder using unidirectional prediction

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151006

Year of fee payment: 5