[go: up one dir, main page]

KR101610029B1 - Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same - Google Patents

Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same Download PDF

Info

Publication number
KR101610029B1
KR101610029B1 KR1020090126232A KR20090126232A KR101610029B1 KR 101610029 B1 KR101610029 B1 KR 101610029B1 KR 1020090126232 A KR1020090126232 A KR 1020090126232A KR 20090126232 A KR20090126232 A KR 20090126232A KR 101610029 B1 KR101610029 B1 KR 101610029B1
Authority
KR
South Korea
Prior art keywords
mode
partition
submodes
skip
motion estimation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1020090126232A
Other languages
Korean (ko)
Other versions
KR20110069482A (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 KR1020090126232A priority Critical patent/KR101610029B1/en
Publication of KR20110069482A publication Critical patent/KR20110069482A/en
Application granted granted Critical
Publication of KR101610029B1 publication Critical patent/KR101610029B1/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

본 발명은 비디오 영상의 시간적 중복성을 제거하기 위한 가변 크기 블록 매칭(variable-size block matching) 기반의 모션 추정에 있어서, 연산량을 감소시키는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for reducing the amount of computation in motion estimation based on variable-size block matching for eliminating temporal redundancy of a video image.

가변 크기 블록 매칭 기반의 모션 추정 방법은, 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 단계와, 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 단계와, 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵하는 단계와, 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 단계로 이루어진다.A variable-size block matching-based motion estimation method includes: dividing an input frame into partitions according to a plurality of main modes; selecting an optimal one of the plurality of main modes; The main mode or the sub mode of the neighboring partitions existing in the vicinity of the current partition divided according to the selected mode and having a plurality of sub modes, And performing a motion estimation on the current partition in a mode other than the skipped mode among the plurality of submodes.

가변 크기 블록 매칭, 인터 프레임 코딩, 모션 추정, H.264, 스킵 모드 Variable size block matching, interframe coding, motion estimation, H.264, skip mode

Description

가변 크기 블록 매칭 기반의 모션 추정 방법 및 이를 이용한 비디오 인코딩 장치{Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a motion estimation method based on variable size block matching and a video encoding apparatus using the same,

본 발명은 비디오 압축 방법에 관한 것으로, 보다 상세하게는 비디오 영상의 시간적 중복성을 제거하기 위한 가변 크기 블록 매칭(variable-size block matching) 기반의 모션 추정에 있어서, 연산량을 감소시키는 방법 및 장치에 관한 것이다.The present invention relates to a video compression method, and more particularly, to a method and apparatus for reducing computation amount in motion estimation based on variable-size block matching for eliminating temporal redundancy of a video image. will be.

인터넷을 포함한 정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상통신이 증가하고 있다. 기존의 문자 위주의 통신 방식으로는 소비자의 다양한 욕구를 충족시키기에는 부족하며, 이에 따라 문자, 영상, 음악 등 다양한 형태의 정보를 수용할 수 있는 멀티미디어 서비스가 증가하고 있다. 멀티미디어 데이터는 그 양이 방대하여 대용량의 저장매체를 필요로 하며 전송 시에 넓은 대역폭을 필요로 한다. 따라서 문자, 영상, 오디오를 포함한 멀티미디어 데이터를 전송하기 위해서는 압축코딩기법을 사용하는 것이 필수적이다.As information and communication technologies including the Internet are developed, not only text and voice but also video communication are increasing. Conventional character - oriented communication methods are not sufficient to satisfy various needs of consumers. Accordingly, multimedia services capable of accommodating various types of information such as text, images, and music are increasing. The amount of multimedia data is so large that it needs a large capacity storage medium and requires a wide bandwidth in transmission. Therefore, it is necessary to use a compression coding technique to transmit multimedia data including characters, images, and audio.

데이터를 압축하는 기본적인 원리는 데이터의 중복(redundancy) 요소를 제거 하는 과정이다. 이미지에서 동일한 색이나 객체가 반복되는 것과 같은 공간적 중복이나, 동영상 프레임에서 인접 프레임이 거의 변화가 없는 경우나 오디오에서 같은 음이 계속 반복되는 것과 같은 시간적 중복, 또는 인간의 시각 및 지각 능력이 높은 주파수에 둔감한 것을 고려한 심리시각 중복을 제거함으로써 데이터를 압축할 수 있다.The basic principle of compressing data is the process of eliminating the redundancy of data. A temporal redundancy such as a spatial redundancy such that the same color or object is repeated in an image, a temporal redundancy such as a case where the adjacent frame is almost unchanged in the moving picture frame or the same sound continuously repeats in the audio, The data can be compressed by eliminating the psychological visual overlap considering the insensitivity to the data.

이러한 동영상 압축 기법의 표준화를 위하여, MPEG(Moving Picture Experts Group)-2, MPEG-4, H.264 등 다양한 비디오 코딩 표준들이 등장하고 있다. 도 1에 도시된 바와 같이, 모든 비디오 코딩 기술들은 인접한 비디오 프레임들 간의 시간적 중복성을 제거하기 위하여 블록 모션 추정(block motion estimation)이라는 기법을 채택하고 있다. 예를 들어, 현재 프레임(10) 내의 어떤 블록(30)을 부호화하기 위해서는, 현재 프레임(10)과 다른 시간적 위치에 있는 참조 프레임(20)에서 상기 블록(30)과 매칭되는 블록(40)을 찾는다. 이 후, 현재 프레임(10)의 블록(30)과 참조 프레임(20)의 블록(40) 간의 차분(residual)를 구한 후, 이 차분을 부호화함으로써 부호화 효율을 높이는 것이다. 여기서, 블록들 간의 변위는 모션 벡터로서 표시되며, 모션 벡터에 의하여 참조 프레임(20)에 관한 모션 보상이 이루어진다.Various video coding standards such as Moving Picture Experts Group (MPEG) -2, MPEG-4, and H.264 have appeared in order to standardize the moving image compression technique. As shown in FIG. 1, all video coding techniques employ a technique called block motion estimation to eliminate temporal redundancy between adjacent video frames. For example, in order to encode a block 30 in the current frame 10, a block 40 matching the block 30 in a reference frame 20 at a different temporal location from the current frame 10 Find. Thereafter, the residual between the block 30 of the current frame 10 and the block 40 of the reference frame 20 is obtained, and the difference is encoded to improve the coding efficiency. Here, the displacement between the blocks is represented as a motion vector, and motion compensation is performed on the reference frame 20 by the motion vector.

최근의 비디오 코딩 표준인 H.264는 코딩 효율의 측면에서 이전의 표준들을 훨씬 능가하는 것으로 알려져 있다. H.264는 인터 프레임 코딩에 있어서, 4x4에서 16x16에 이르는 가변 블록 크기를 채용하는데, 이는 고정된 크기의 매크로블록(MB)을 코딩하는 종래의 기법에 비하여 코딩 효율에 있어서 상당한 향상을 나타낸다.H.264, the latest video coding standard, is known to outperform previous standards in terms of coding efficiency. H.264 employs a variable block size ranging from 4x4 to 16x16 for interframe coding, which represents a significant improvement in coding efficiency over conventional techniques for coding fixed sized macroblocks (MB).

또한, 이외에도 다중 참조 기법, 1/4 픽셀 정밀도의 모션 벡터 추정, 다양한 방향들에 대한 인트라 프레임 코딩 기법, 및 적응적 디블록 필터링 기법 등 다양한 새로운 기술들이 H.264에 채용되고 있다.In addition, various new technologies such as multiple reference technique, motion vector estimation with 1/4 pixel precision, intra frame coding technique for various directions, and adaptive diblock filtering technique are adopted in H.264.

그러나, 이러한 새로운 기법들이 코딩 효율의 향상에 상당히 기여한 것은 사실이지만, 이에 따라 H.264 인코더에는 훨씬 높은 연산 복잡성이 요구되는 문제도 아울러 존재한다. 특히, 상기 "가변 크기 블록 매칭(variable size block matching)" 기법은 H.264에서 새로운 도입되어 코딩 효율의 향상에 상당히 기여한 기술이지만 상대적으로 매우 많은 연산량의 증가가 초래된다. 이러한 "가변 크기 블록 매칭" 기술의 구체적인 내용을 살펴보면 다음과 같다.However, while these new techniques have contributed significantly to improved coding efficiency, there is also a need for much higher computational complexity in H.264 encoders. In particular, the "variable size block matching" technique has been newly introduced in H.264 and contributes significantly to the improvement of coding efficiency, but it causes a relatively large increase in the amount of calculation. The concrete contents of the "variable size block matching" technique will be described below.

인터 프레임 코딩에 있어서, 최적의 코딩 성능을 나타내는 블록의 크기를 찾기 위하여는, 하나의 매크로블록을 다양한 크기의 서브블록들로 나누고, 나누어진 서브블록들 각각에 대하여 실제 코딩을 수행하는 반복적인 과정이 필요하다.In interframe coding, in order to find the size of a block showing optimal coding performance, it is necessary to divide one macroblock into subblocks of various sizes and perform an actual coding for each divided subblock Is required.

인터 블록 모드의 결정에서 사용되는 블록의 크기들은 다섯 가지의 서로 다른 모드(MD)를 갖는다. 그것은 "움직임 없음"을 나타내는 모드(MD0), 16x16 크기의 블록 모드(MD1), 16x8 크기의 블록 모드(MD2), 8x16 크기의 블록 모드(MD3) 및 8x8 크기의 블록 모드(MD8)를 포함한다. 물론, 상기 8x8 크기의 블록 모드(MD8)는 다시 8x8(MD4), 8x4(MD5), 4x8(MD6) 및 4x4(MD7) 크기의 블록 모드로 세분화될 수 있다. 이러한 블록 모드는 다음의 도 2와 같은 계층적 구조를 갖는다.The block sizes used in the determination of the interblock mode have five different modes (MD). It includes a mode MD0 indicating "no motion ", a 16x16 block mode MD1, a 16x8 block mode MD2, an 8x16 block mode MD3 and an 8x8 block mode MD8 . Of course, the 8x8 block mode (MD8) can be subdivided into 8x8 (MD4), 8x4 (MD5), 4x8 (MD6) and 4x4 (MD7) block modes. This block mode has a hierarchical structure as shown in FIG. 2 below.

H.264는 다양한 크기의 블록 모드들 중 최적의 블록 모드를 결정하기 위하여 율-왜곡(rate-distortion) 최적화라는 기법을 사용한다. 가능한 모든 모드들에 대하여 율-왜곡 최적화를 수행하기 위하여, H.264는 각각의 모드와 연관된 율-왜곡에 기초한 코딩 비용(이하, 율-왜곡 비용이라고 함)을 모두 계산한 후에 상기 코딩 비용이 최소가 되는 모드를 찾는다. 그러나, 이러한 방법은 시각적 화질 및 코딩 비트레이트의 관점에서 최적의 결과를 얻을 수 있지만, 필연적으로 매우 많은 연산량을 소요할 수 밖에 없다.H.264 uses a technique called rate-distortion optimization to determine the optimal block mode among the various sizes of block modes. To perform the rate-distortion optimization for all possible modes, H.264 calculates the coding cost based on the rate-distortion (hereinafter referred to as the rate-distortion cost) associated with each mode, Find the mode that will be the minimum. However, this method can obtain optimum results in terms of visual image quality and coding bit rate, but inevitably requires a large amount of computation.

따라서, 이러한 가변 크기 블록 매칭 기술에 있어서, 몇몇 블록 모드에 대한 율-왜곡 비용을 계산하지 않고 스킵할 수 있다면 상기 연산량은 상당히 감소될 수 있을 것이다. 물론, 이러한 연산량 감소는 일정 수준 이하로 화질이 감소되지 않을 것을 전제로 하여야 할 것이다. 만약, 화질을 감소를 초래한다면 이와 같은 가변 크기 블록 매칭 기술의 적용 자체가 의미 없는 것이 될 수 있기 때문이다. 결국, 가변 크기 블록 매칭에 기초한 모션 추정에 있어서 화질의 감소를 최소화하면서 연산량을 감소시킬 수 있는 방법을 강구할 필요가 있다.Thus, in this variable-size block matching technique, the amount of computation can be significantly reduced if it can be skipped without calculating the rate-distortion cost for some block modes. Of course, such a reduction in the calculation amount should be based on the premise that the image quality will not be reduced to a certain level or less. This is because the application of such a variable-size block matching technique itself may be meaningless if the image quality is reduced. As a result, it is necessary to find a method capable of reducing the amount of computation while minimizing the decrease in image quality in motion estimation based on variable size block matching.

본 발명은 상기한 필요성을 감안하여 창안된 것으로, 연산량을 최소화하면서도 정확한 모션 추정이 가능한 모션 추정 기법을 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a motion estimation technique capable of accurate motion estimation while minimizing the amount of computation.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical objects of the present invention are not limited to the technical matters mentioned above, and other technical subjects not mentioned can be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 가변 크기 블록 매칭 기반의 모션 추정 방법은, (a) 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 단계; (b) 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 단계; (c) 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵하는 단계; 및 (d) 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 단계를 포함한다.According to an aspect of the present invention, there is provided a variable-size block matching-based motion estimation method including the steps of: (a) dividing an input frame into partitions according to a plurality of main modes; (b) selecting an optimal one of the plurality of main modes; (c) if the selected mode has a plurality of submodes, referring to a type of a main mode or a submode of a neighboring partition existing in the vicinity of a current partition divided according to the selected mode, Skipping at least some of the sub-modes of the sub-mode; And (d) performing motion estimation on the current partition in a mode other than the skipped mode among the plurality of submodes.

상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 비디오 인코딩 장치는, 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 파티션 분할부; 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 최적 선택부; 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵하는 스킵 결정부; 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 모션 추정부; 상기 입력 프레임으로부터, 상기 모션 추정에 의하여 구해진 모션 벡터에 의해 참조 프레임을 보상한 모션 보상 프레임을 차분하여 잔차 프레임을 얻는 차분기; 및 상기 잔차 프레임을 부호화하는 수단을 포함한다.According to an aspect of the present invention, there is provided a video encoding apparatus including a partitioning unit dividing an input frame into partitions corresponding to a plurality of main modes; An optimum selection unit for selecting one of the plurality of main modes as an optimum mode; Wherein when the selected mode has a plurality of submodes, the main mode or the submode of the peripheral part existing in the vicinity of the current partition divided according to the selected mode, A skip determining unit skipping at least some of the modes; A motion estimator for performing motion estimation on the current partition in a mode other than the skipped mode among the plurality of submodes; A difference branch for obtaining a residual frame from the input frame by subtracting a motion compensation frame compensated for a reference frame by a motion vector obtained by the motion estimation; And means for coding the residual frame.

본 발명에 따르면 통상의 모션 추정 기법이나, 종래의 가변 크기 블록 매칭 기반의 모션 추정 기법에 비하여, 연산량을 상당히 감소시킬 수 있는 장점이 있다. 그럼에도 불구하고, 모션 추정의 에러를 크게 발생시키지 않기 때문에 가변 크기 블록 매칭 기반의 모션 추정에 따른 화질의 저하를 방지할 수 있는 효과가 있다.According to the present invention, there is an advantage that the amount of computation can be significantly reduced as compared with a conventional motion estimation technique or a conventional variable-size block matching-based motion estimation technique. Nevertheless, since the error of the motion estimation does not occur to a large extent, it is possible to prevent deterioration of image quality due to motion estimation based on the variable-size block matching.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알 려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

다시 도 2를 참조하면, H.264의 모션 추정에 있어서, 16x16 픽셀 크기를 갖는 하나의 매크로블록은 우선, 율-왜곡 비용을 기초로, MD0, MD1, MD2, MD3, MD8 중의 하나의 모드를 갖도록 선택된다(제1 계층의 선택). 상기 MD0는 모션 벡터가 0인, 즉 모션이 없는 경우를 의미한다. 만약, MD8 이외의 모드가 선택되는 경우에는 추가적인 블록 모드의 선택(다음 계층으로의 진행)은 이루어지지 않는다. 그러나, 이 중에서 MD8이 선택되는 경우에는, 하나의 매크로블록은 4개의 8x8 블록으로 나뉘어지고 각각의 8x8 블록에 대해서는 다시, MD4, MD5, MD6 및 MD7 중에서 하나의 모드가 선택된다(제2 계층의 선택). 이와 같이, H.264는 2계층 구조의 가변 크기 블록 매칭을 사용하고 있다.Referring again to FIG. 2, in the motion estimation of H.264, one macroblock having a size of 16x16 pixels first selects one of MD0, MD1, MD2, MD3, and MD8 based on the rate- (Selection of the first layer). The MD0 means that the motion vector is 0, that is, there is no motion. If a mode other than MD8 is selected, selection of an additional block mode (proceeding to the next layer) is not performed. However, when MD8 is selected, one macroblock is divided into four 8x8 blocks, and one of MD4, MD5, MD6 and MD7 is selected again for each 8x8 block (the second layer Selection). As such, H.264 uses a variable-size block matching of a two-layer structure.

그런데, 다양한 샘플 영상에 대하여 제1 계층에서의 각각의 모드가 선택되는 비율(%)을 살펴보면, 다음의 표 1에서 정리한 바와 같다. 표 1에서 CIF 영상 100 프레임에 대하여 QP(quantization parameter)는 28로 선택되었다.The ratio (%) in which each mode in the first layer is selected for various sample images is as summarized in Table 1 below. In Table 1, the quantization parameter (QP) was selected as 28 for 100 frames of the CIF image.

Figure 112009078185620-pat00001
Figure 112009078185620-pat00001

표 1에서 보면, MD0의 빈도가 가장 낮고 MD1과 MD8의 빈도가 가장 높다는 것을 알 수 있다. H.264 이전의 비디오 코딩에서 더 작은 단위를 선택하지 않고, 16x16 또는 8x8 블록 단위의 모션 벡터 검색을 수행하였던 것은 블록 단위를 작게 할 수록 에러는 감소하겠지만, 연산량이 증가하고 그 만큼 모션 벡터의 수가 증가하게 되므로 적절한 트레이드 오프가 필요하였기 때문이다. 사실, MD8 이하로 분할되는 모드가 전체적으로 보면, 그렇게 많지 않을 것이지만, 어쨌든 H.264와 같이 연산량 관점보다는 코딩 효율의 관점에 치중하는 비디오 표준에서는 이러한 분할이 목표에 부합한다고도 볼 수 있는 것이다.Table 1 shows that the frequency of MD0 is the lowest and the frequencies of MD1 and MD8 are the highest. In the video coding prior to H.264, motion vectors of 16x16 or 8x8 blocks are searched without selecting a smaller unit. The smaller the block unit, the smaller the error. However, the amount of calculation increases and the number of motion vectors As it would require an appropriate trade-off. In fact, as a whole, the mode that divides into less than MD8 will not be that many, but anyway, in video standards such as H.264, which focuses on the coding efficiency rather than the computational point of view,

실제로, MD8 이하의 계층(제2 계층)에 속하는 모드들의 비율을 살펴보면 다음의 표 2 및 3에서와 같다(여기서도, CIF 영상 100 프레임에 대하여 QP는 28로 선택됨). 이 중에서도 표 2는 MD8이 결국 최적으로 선택된 경우를, 표 3은 MD8이 결국 최적으로 선택되지 않은 경우를 각각 나타낸다.Actually, the ratios of the modes belonging to the layer below the MD8 (second layer) are as shown in Tables 2 and 3 (here, QP is selected as 28 for 100 frames of the CIF image). Table 2 shows the cases where MD8 is finally selected optimally, and Table 3 shows cases where MD8 is not optimally selected.

Figure 112009078185620-pat00002
Figure 112009078185620-pat00002

Figure 112009078185620-pat00003
Figure 112009078185620-pat00003

표 2 및 3을 검토하면, 어느 경우에도 MD4가 가장 압도적인 비율을 차지하고, MD5 및 MD6은 그 분포가 비슷하며, MD7이 가장 적게 발생된다는 것을 알 수 있다. 따라서, 스킵에 의한 영향이 가장 작은 모드가 MD7일 것이고, 그 다음이 MD5 및 MD6일 것이다. 따라서, 스킵 대상으로는 우선적으로 MD7이 고려되어야 하고, 그 다음 MD5 및 MD6도 고려될 수 있다. 만약, 모션 추정의 정확성을 기하기 위하여 스킵 대상을 두 가지 모드로만 한정한다면, MD7 및 MD6이 포함되도록 하는 것이 바람직하다. 표 2 및 3에서는 MD5가 MD6에 비하여 약간 높은 정도에 그쳤으나 일반적인 많은 영상들에 있어서는 화소의 가로 방향 관련성이 세로 방향 관련성 보다 높기 때문에 MD5 보다는 MD6을 스킵 대상으로 포함시키는 것이 바람직하기 때문이다. 특히, 가로 방향으로 카메라가 움직이는 경우, 가로 방향으로 물체가 움직이는 경우 등의 영상에서는 그 차이가 확연하다. 이하, 본 발명의 일 실시예에 있어서는, 특정한 조건이 만족되면 MD6 및 MD7을 스킵하는 것으로 하여 설명할 것이다. Looking at Tables 2 and 3, it can be seen that in all cases MD4 occupies the most overwhelming proportion, MD5 and MD6 have similar distribution, and MD7 is least. Therefore, the mode with the smallest influence by skipping will be MD7, followed by MD5 and MD6. Therefore, MD7 must first be considered as a skip object, and then MD5 and MD6 can also be considered. If the skip object is limited to only two modes in order to ensure the accuracy of motion estimation, it is desirable to include MD7 and MD6. In Table 2 and 3, MD5 is slightly higher than MD6, but for many common images, it is preferable to include MD6 as a skipping object rather than MD5 because the horizontal relevance of the pixels is higher than the longitudinal relevance. Particularly, the difference is apparent in the case where the camera moves in the horizontal direction, the object moves in the horizontal direction, and the like. Hereinafter, in one embodiment of the present invention, description will be made assuming that MD6 and MD7 are skipped when a specific condition is satisfied.

도 3은 본 발명의 일 실시예에 따른 모션 추정 방법을 구현하는 비디오 인코딩 장치(100)의 구성을 도시한 블록도이다.3 is a block diagram showing the configuration of a video encoding apparatus 100 that implements a motion estimation method according to an embodiment of the present invention.

비디오 인코딩 장치(100)는 파티션 분할부(110), 최적 선택부(130), 스킵 결정부(140), 모션 추정부(150), 모션 보상부(160), 차분기(165), 공간적 변환부(170), 양자화부(180) 및 엔트로피 부호화부(190)를 포함하여 구성될 수 있다.The video encoding apparatus 100 includes a partition division unit 110, an optimal selection unit 130, a skip determination unit 140, a motion estimation unit 150, a motion compensation unit 160, a carousel 165, Unit 170, a quantization unit 180, and an entropy encoding unit 190.

파티션 분할부(110)는 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할한다. 상기 메인 모드라 함은 계층적 방식의 가변 크기 블록 매칭에 있어서, 첫 번째 계층에 속하는 파티션 모드를 의미한다. 예를 들면, 도 2에서, 메인 모드란 MD1, MD2, MD3 및 MD8을 의미하는 것이다(모션 벡터가 없는 MD0는 제외). 한편, 상기 메인 모드 중 일부의 모드(현재 H.264의 경우 MD8이 해당됨)의 경우에는 추가적인 서브 모드에 따른 분할을 하는데, 이와 같은 두 번째 계층에 속하는 파티션 모드를 서브 모드라고 정의할 수 있다. 도 2에서, 서브 모드는 MD4, MD5, MD6 및 MD7이다. 여기서 구분되어야 할 것은, MD8과 MD4이다. MD8은 일단 메인 모드에서 8x8 네 개의 파티션으로 분할하는 것이 최적이라는 것을 의미하고, 각각의 파티션에 대하여 다시 서브 모드로 분할을 하게 된다. 그 결과, MD4라는 것은 서브 모드에 따른 최종 결과가 8x8이라는, 즉, 서브 분할을 하지 않는 모드를 의미할 뿐이다.The partition division unit 110 divides an input frame into partitions according to a plurality of main modes. The main mode refers to a partition mode belonging to the first layer in a variable size block matching in a hierarchical manner. For example, in FIG. 2, the main modes are MD1, MD2, MD3, and MD8 (except for MD0 without a motion vector). On the other hand, in the case of some of the main modes (in the case of the current H.264, MD8 is applicable), the sub-mode is divided according to the additional sub-mode, and the sub-mode belongs to the second layer. 2, the submodes are MD4, MD5, MD6 and MD7. The distinction here is between MD8 and MD4. MD8 means that it is best to divide into 8x8 four partitions in the main mode once, and each partition is divided into submodes again. As a result, MD4 means only a mode in which the final result according to the submode is 8x8, i.e., does not subdivide.

최적 선택부(130)는 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하고 그 결과를 스킵 결정부(140)에 제공한다. 최적 선택부(130)는 상기 모드의 선택에 있어서, 예를 들면, 영상의 에러 및 비트량의 선형 조합으로 계산되는 율-왜곡 비용을 기초로 할 수 있다. 이러한 율-왜곡 비용(C)는 다음의 수학식 1과 같이 정의될 수 있다.The optimal selection unit 130 selects one optimal mode among the plurality of main modes and provides the result to the skip determiner 140. In the selection of the mode, the optimum selection unit 130 may be based on a rate-distortion cost calculated by, for example, a linear combination of the error and the bit amount of the image. This rate-distortion cost C can be defined as: < EMI ID = 1.0 >

Figure 112009078185620-pat00004
Figure 112009078185620-pat00004

여기서, E는 영상의 에러를, B는 비트량을 각각 나타낸다. 구체적으로, 상기 E는 특정 모드의 블록을 기초로 인터 프레임을 수행한 경우의 SAD(sum of absolute difference)(원래 영상과 코딩 후 복원된 영상 간의 에러의 합)이고, B는 상기 특정 모드의 블록을 코딩하기 위하여 필요한 비트량이다. 상기 λ는 라그랑지안 계수로서 에러의 크기의 감소에 중시할지, 또는 비트량의 크기의 감소를 중시할지를 조절하는 파라미터이다.Here, E represents the error of the image and B represents the bit amount. Specifically, E is a sum of absolute difference (sum of errors between an original image and an image restored after coding) when an interframe is performed based on a block of a specific mode, and B is a sum of absolute difference Lt; / RTI > The parameter λ is a parameter for adjusting whether to emphasize the reduction of the magnitude of the error or the decrease of the magnitude of the bit amount as the Lagrangian coefficient.

수학식 1과 같은 계산을 위해서, 최적 선택부(130)는 양자화부(180)로부터 출력되는 신호, 즉 인코딩 된 데이터의 비트량(B)을 계산하고, 상기 인코딩된 데이 터를 복원하여 원래 영상과의 차이를 계산하여 에러(E)를 계산할 수 있다.For the calculation as shown in Equation (1), the optimum selection unit 130 calculates the bit amount B of the signal output from the quantization unit 180, that is, the encoded data, restores the encoded data, And the error E can be calculated.

결국, 최적 선택부(130)는 상기 복수의 메인 모드들 중에서 이러한 율-왜곡 비용이 최소가 되는 하나의 모드를 선택하는 것이다.As a result, the optimum selection unit 130 selects one mode in which the rate-distortion cost is minimized among the plurality of main modes.

스킵 결정부(140)는, 상기 최적 선택부(130)에 의하여 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여 상기 복수의 서브 모드 중에서 적어도 일부의 모드를 스킵한다(이하, 본 발명에서는 "서브 모드 스킵"이라고 함). 예를 들어, H.264의 경우 MD8은 복수의 서브 모드들을 가지지만, MD1, MD2 및 MD3는 자체로 완결되며 추가적인 서브 모드들을 가지지 않는다.The skip determining unit 140 determines whether or not the neighboring partitions existing in the vicinity of the current partition divided according to the selected mode and already processed in the case where the mode selected by the optimum selecting unit 130 has a plurality of submodes (Hereinafter referred to as "submode skipping" in the present invention) with reference to the main mode or submode type having the plurality of submodes. For example, in the case of H.264, MD8 has multiple submodes, but MD1, MD2 and MD3 are themselves complete and have no additional submodes.

이와 같이, 스킵 결정부(140)가 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하는 방식은, 기본적으로 주변 파티션이 상기 메인 모드들에 따른 분할 이후에 추가적으로 분할되지 않은 경우에 한하여 상기 스킵을 수행하도록 할 수 있다. 도 2의 예에서 보면, 8x8 파티션을 기준으로 할 때, 주변 파티션이 MD1, MD2, MD3 및 MD4만 중에 어느 하나의 모드를 가지는 경우, 즉, 제2 계층에서의 추가적인 분할이 이루어지지 않는 경우를 의미한다. 도 2에서 보면, MD4는 제2 계층에 속하는 것을 표시되어 있기는 하지만, 실제로는 추가적인 분할이 이루어지지 않은 경우이다. 만약, 8x8 크기의 현재 파티션에서의 서브 모드의 스킵 여부를 결정하기 위해서는 참조되는 주변 파티션도 당연히 8x8 크기이어야 한다. 그러나, 실제로는 주변 파티션은 그 모드에 따라 8x8 크기보다 더 클 수도 있지만, 더 큰 파티션이 8x8의 크기로 분할된 것으로 생각하면 간단하다. 예를 들어, MD1의 경우에는 매크로블록 내의 4개의 8x8 블록이 모두 MD1을 갖는 것으로 생각하면 될 것이다.The manner in which the skip determining unit 140 refers to the type of the main mode or the submode of the neighboring partition that has already been processed is basically the case where the neighboring partition is not further divided after division according to the main modes The skip may be performed. In the example of FIG. 2, when the 8x8 partition is used as a reference, when the peripheral partition has any one of MD1, MD2, MD3, and MD4, that is, it means. In FIG. 2, although MD4 is indicated to belong to the second layer, in reality, no further division is made. In order to determine whether the submode is skipped in the current partition of 8x8 size, the referenced peripheral partitions should of course be 8x8 size. However, in practice, a peripheral partition may be larger than an 8x8 size depending on its mode, but it is simpler to think that a larger partition is divided into 8x8 size. For example, in the case of MD1, four 8x8 blocks in a macroblock may be considered to have MD1.

따라서, 이러한 주변 파티션이 가질 수 있는 모드는 MD1, MD2, MD3, MD4, MD5, MD6, MD7 중 하나일 것이다(MD0은 제외함). MD8은 8x8 크기의 파티션이 최종적으로 갖는 모드가 아니고 추가적으로 서브 모드가 결정되어야 하기 때문에 제외된다고 볼 수 있다. 주변 파티션으로부터 현재 파티션의 서브 모드 스킵 여부를 판단하는 구체적인 일 실시예는 도 4 및 도 5의 설명을 통하여 후술하기로 한다.Therefore, the mode that these peripheral partitions can have is one of MD1, MD2, MD3, MD4, MD5, MD6, MD7 (except for MD0). MD8 can be considered to be excluded because it is not the final mode that an 8x8 partition has, and additional submode must be determined. A specific embodiment for determining whether to skip the submode of the current partition from the neighbor partition will be described later with reference to FIGS. 4 and 5. FIG.

모션 추정부(150)는 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드(스킵되지 않은 서브 모드)로, 상기 현재 파티션에 대한 모션 추정을 수행한다. 이러한 모션 추정 과정은 블록 매칭(block matching) 알고리즘, 즉, 주어진 모션 블록을 참조 프레임의 특정 탐색 영역 내에서 픽셀단위로 움직이면서 그 에러가 최저가 되는 경우의 변위를 모션 벡터로 결정할 수 있다. 그런데, 상기 에러를 측정하는 기준으로는 일반적으로는 SAD(절대 차이의 합)이 사용된다. 결국, 메인 모드 및 스킵되지 않은 서브 모드를 포함한 모드들 중에서 최적의 모드가 최종적으로 선택되며, 그 선택된 최종 모드와 그 때의 모션 벡터가 모션 추정부(150)의 최종적인 출력이다.The motion estimator 150 performs motion estimation on the current partition in a mode other than the skipped mode (non-skipped submode) among the plurality of submodes. This motion estimation process can determine a motion vector as a block matching algorithm, that is, a displacement in a case where a given motion block is moved on a pixel-by-pixel basis within a specific search area of a reference frame and the error is lowest. As a criterion for measuring the error, SAD (sum of absolute differences) is generally used. As a result, the optimum mode among the modes including the main mode and the non-skipped submode is finally selected, and the selected final mode and the motion vector at that time are the final outputs of the motion estimation unit 150. [

모션 보상부(160)는 모션 추정부(150)로부터 제공되는 선택된 최종 모드와 모션 벡터를 이용하여 참조 프레임에 대하여 모션 보상을 수행함으로써 모션 보상 프레임(motion compensated frame)을 얻는다.The motion compensating unit 160 obtains a motion compensated frame by performing motion compensation on the reference frame using the selected final mode and the motion vector provided from the motion estimating unit 150. [

한편, 차분기(165)는 상기 입력 프레임에서, 상기 모션 벡터에 의해 참조 프레임을 보상한 모션 보상 프레임을 차분하여 잔차 프레임(residual frame)을 얻는다. 본 발명의 일 실시예에 있어서, 상기 잔차 프레임을 부호화하는 수단으로는 공간적 변환부(170), 양자화부(180) 및 엔트로피 부호화부(190)가 사용된다.On the other hand, in the input frame, the difference branch 165 obtains a residual frame by subtracting the motion compensation frame compensated for the reference frame by the motion vector. In an embodiment of the present invention, the spatial transform unit 170, the quantization unit 180, and the entropy coding unit 190 are used as means for coding the residual frame.

공간적 변환부(170)는 소정의 공간적 변환법을 이용하여, 상기 잔차 프레임을 주파수 도메인으로 변환한다. 이러한 공간적 변환법으로는 주로 DCT(Discrete Cosine Transform)가 사용되며, 때로는 웨이브렛 변환(wavelet transform)이 사용되기도 한다. 공간적 변환 결과 구해지는 계수들을 변환 계수라고 하는데, 공간적 변환으로 DCT를 사용하는 경우 DCT 계수라고 하고, 웨이브렛 변환을 사용하는 경우 웨이브렛 계수라고 한다.The spatial transform unit 170 transforms the residual frame into a frequency domain using a predetermined spatial transform method. These spatial transformations are mainly DCT (Discrete Cosine Transform), and sometimes wavelet transforms are used. The coefficients obtained as a result of spatial conversion are called conversion coefficients. When DCT is used as a spatial transform, DCT coefficients are used. When wavelet transform is used, wavelet coefficients are used.

양자화부(180)는 공간적 변환부(170)에서 구한 변환 계수를 양자화한다. 양자화(quantization)란 임의의 실수 값으로 표현되는 상기 변환 계수를 일정 구간으로 나누어 불연속적인 값(discrete value)으로 나타내고, 이를 소정의 인덱스로 매칭(matching)시키는 과정을 의미한다. 특히, 공간적 변환 방법으로 웨이브렛 변환을 이용하는 경우에는 양자화 방법으로서 임베디드 양자화(embedded quantization)가 이용되기도 한다.The quantization unit 180 quantizes the transform coefficients obtained by the spatial transform unit 170. The term 'quantization' refers to a process of dividing the transformation coefficient expressed by an arbitrary real number value into a predetermined section, representing the transformation coefficient as a discrete value, and matching it with a predetermined index. In particular, when wavelet transform is used as a spatial transform method, embedded quantization is also used as a quantization method.

엔트로피 부호화부(190)는 양자화부(180)에 의하여 양자화된 변환 계수와, 모션 추정부(150)에 의하여 제공되는 최종 모드 및 모션 벡터를 무손실 부호화하여 출력 비트스트림을 생성한다. 이러한 무손실 부호화 방법으로는, 산술 부호화(arithmetic coding), 가변 길이 부호화(variable length coding), 허프만 부호 화 등이 있다.The entropy encoding unit 190 losslessly encodes the transform coefficients quantized by the quantization unit 180 and the final mode and the motion vector provided by the motion estimation unit 150 to generate an output bitstream. Such lossless coding methods include arithmetic coding, variable length coding, Huffman coding, and the like.

지금까지 도 3의 각 구성요소는 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현할 수도 있다.Each of the components of FIG. 3 may denote software or hardware such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). However, the components are not limited to software or hardware, and may be configured to be in an addressable storage medium and configured to execute one or more processors. The functions provided in the components may be implemented by a more detailed component or may be implemented by a single component that performs a specific function by combining a plurality of components.

다음의 도 4 및 도 5는 본 발명의 일 실시예에 따른 "서브 모드 스킵"을 구현하는 구체적인 알고리즘을 설명하기 위한 도면들이다.4 and 5 are diagrams for explaining a specific algorithm for implementing "submode skipping" according to an embodiment of the present invention.

현재의 MB가 만약 MD8이 아니라 MD1, MD2나 MD3로 결정된다면 서브 모드 자체를 고려할 필요가 없으므로 본원 발명에서 제안하는 서브 모드 스킵은 고려할 필요가 없다. 그러나, 현재의 MB가 MD8이라면 현재의 MB는 일단 4개의 8x8의 블록으로 분할되고 각각의 8x8 블록에 대하여 서브 모드 스킵 여부가 결정되어야 한다. If the current MB is determined to be MD1, MD2 or MD3 instead of MD8, then it is not necessary to consider the submode itself, so it is not necessary to consider the submode skipping proposed in the present invention. However, if the current MB is MD8, the current MB is divided into four 8x8 blocks, and the sub mode skip is determined for each 8x8 block.

도 4를 참조하면, 현재 매크로블록(MB)의 서브 모드 스킵 여부를 결정하기 위하여 참조되는 주변 파티션들은 A, B, C 및 D의 4가지 종류가 존재할 수 있다. 케이스 A는 현재 매크로블록이 프레임 또는 슬라이스의 좌측 경계에 접한 경우이고, 케이스 B는 현재 매크로블록이 프레임 또는 슬라이스의 상측 경계에 접한 경우이며, 케이스 C는 현재 매크로블록이 프레임 또는 슬라이스의 우측 경계에 접한 경 우이다. 일반적으로 현재 매크로블록이 경계에 접해있지 않은 경우에는 종류 D와 같이 4개의 주변 매크로블록을 모두 참조할 수 있다. 주의할 것은, 도 4의 주변 매크로블록이 모두 4개의 파티션으로 분할 된 것으로 표시되었다고 해서도 이것들이 모두 MD8로 분할되었다는 것은 아니며, 참조하기 위한 파티션을 식별하기 위한 번호를 부가하기 위하여 가상적으로 분할 표시를 한 것 뿐이다. 전술한 바와 같이, 좌상측의 매크로블록이 MD1라고 하면, 그 내부에 포함된 것으로 생각할 수 있는 4개의 파티션은 모두 MD1이라고 생각하면 될 것이다. Referring to FIG. 4, there are four types of neighboring partitions A, B, C, and D that are referred to in order to determine whether a current macroblock MB skips a submode. Case A is the case where the current macro block is tangent to the left boundary of the frame or slice, Case B is the case where the current macroblock is tangent to the upper boundary of the frame or slice, Case C is the case where the current macroblock is located at the right boundary of the frame or slice And the like. In general, when the current macroblock is not in contact with the boundary, all four neighboring macroblocks can be referred to as the type D. Note that even if all of the neighboring macroblocks shown in Fig. 4 are divided into four partitions, not all of them are divided into MD8, and a number for identifying a partition to be referenced is added, I do not know. As described above, assuming that the upper left macroblock is MD1, all four partitions that may be considered to be included therein are all considered to be MD1.

아무튼, 이러한 주변 매크로블록과 현재 매크로블록의 파티션은 각각 4개의 8x8 파티션으로 나뉜 것으로 생각하면 순서대로 0 내지 3으로 넘버링할 수 있다.However, if it is assumed that the neighboring macroblock and the current macroblock are divided into four 8x8 partitions, they can be sequentially numbered from 0 to 3.

도 5는 현재 매크로블록에 속하는 4개의 파티션들이 주변의 파티션들을 참조하는 방향을 예시하는 도면이다. 이와 같은 참조의 기본 개념은 (a) 및 (b)에서 보여진다. (a)는 주변 파티션으로부터 참조하는 방향을, (b)는 현재 매크로블록 내의 다른 파티션으로부터 참조하는 방향을 각각 보여준다.5 is a diagram illustrating directions in which four partitions belonging to a current macroblock refer to neighboring partitions. The basic concepts of such references are shown in (a) and (b). (a) shows a direction referencing from a neighboring partition, and (b) shows a direction referring to another partition in the current macroblock.

(a), (b)에서 수직 방향으로 참조하는 경우를 예로 든 것이 (c)이다. (a), (b)에서 수평 방향으로 참조하는 경우를 예로 든 것이 (d)이다. (a), (b)에서 우하향 대각선 방향으로 참조하는 경우를 예로 든 것이 (e)이다. 또한, (a), (b)에서 좌하향 대각선 방향으로 참조하는 경우를 예로 든 것이 (f)이다.(c) is an example of a case of referring in the vertical direction in (a) and (b). (d) is an example of a case of referring in the horizontal direction in (a) and (b). (e) is an example of a case where reference is made in the rightward and downward diagonal directions in (a) and (b). (F) is an example of a case where reference is made in the left-down diagonal direction in (a) and (b).

예를 들어, 도 4의 넘버링을 기준으로 할 때, 현재 매크로블록의 3번 파티션이 참조할 수 있는 주변 파티션은 다음과 같다. 우선 (c)에 따르면, 상측 매크로블록의 3번 파티션과 현재 매크로블록의 1번 파티션을 참조할 수 있고, (d)에 따르 면, 좌측 매크로블록의 3번 파티션과 현재 매크로블록의 2번 파티션을 참조할 수 있다. 또한, (e)에 따르면, 좌상측 매크로블록의 3번 파티션과 현재 매크로블록의 0번 파티션을 참조할 수 있고, (f)에 따르면, 우상측 매크로블록의 3번 파티션을 참조할 수 있다. 따라서, 현재 매크로블록에 대한 서브 모드 스킵을 적용하기 위한 참조 가능한 파티션은 총 7개이다. 그러나, 실제로는 이러한 참조 가능한 파티션을 모두 참조하여야 하는 것은 아니고 필요에 따라 전부 또는 일부를 참조할 수 있음은 물론이다. 현재 매크로블록의 나머지 0, 1, 2번 파티션도 마찬가지로 서브 모드 스킵을 적용하기 위하여 주변 파티션을 참조할 수 있다.For example, when referring to the numbering in FIG. 4, the neighboring partitions that can be referred to by the third partition of the current macroblock are as follows. According to (c), it is possible to refer to the partition 3 of the upper macroblock and the partition 1 of the current macroblock. According to (d), the partition 3 of the left macro block and the partition 2 Can be referred to. According to (e), it is possible to refer to the partition # 3 of the upper left side macroblock and the partition # 0 of the current macroblock, and according to (f), the partition # 3 of the upper right side macroblock can be referred to. Therefore, there are seven referenceable partitions for applying the submode skip to the current macroblock. However, it is needless to say that all such referenceable partitions are not actually referred to, and all or some of them may be referred to as necessary. The remaining 0, 1, and 2 partitions of the current macroblock can also refer to neighboring partitions to apply the submode skip.

다음의 도 6 및 7은 상기 서브 모드 스킵을 적용하기 위한 의사 코드(pseudo code)이다. 여기서, 사용되는 용어의 의미는 각각 다음의 표 4와 같다.6 and 7 below are pseudo codes for applying the submode skip. Here, the meanings of terms used are shown in Table 4 below.

용어Terms 의미meaning CMBCMB 현재 매크로블록Current macroblock LMBLMB 현재 매크로블록을 기준으로 좌측 매크로블록Based on the current macroblock, C8BC8B 현재 매크로블록의 8x8 파티션의 번호Number of the 8x8 partition of the current macroblock LRMLRM 좌측 참조 모드Left reference mode UMBUMB 현재 매크로블록을 기준으로 상측 매크로블록Based on the current macroblock, the upper macroblock URMURM 상측 참조 모드Upper reference mode LUMBLUMB 현재 매크로블록을 기준으로 좌상측 매크로블록Based on the current macroblock, the upper left side macroblock LURMLURM 좌상측 참조 모드Upper left reference mode RUMBRUMB 현재 매크로블록을 기준으로 우상측 매크로블록Based on the current macroblock, the upper right macroblock RURMRURM 우상측 참조 모드Right-side reference mode C8B0C8B0 현재 매크로블록 중 0의 위치에 있는 8x8 파티션의 최적 모드Optimal mode of an 8x8 partition at the 0 position of the current macroblock C8B1C8B1 현재 매크로블록 중 1의 위치에 있는 8x8 파티션의 최적 모드Optimum mode of 8x8 partition at 1 of current macroblock C8B2C8B2 현재 매크로블록 중 2의 위치에 있는 8x8 파티션의 최적 모드Optimal mode of 8x8 partition at position 2 of the current macroblock

먼저, 도 6은 이상의 도 4 및 5에 따른 참조 방식을 코드로서 구현한 의사 코드의 예이다. 도 6을 참조하면 도 4의 경계 조건을 고려하여, 도 5와 같은 방식으로 참조를 하기 위하여 주변 파티션들이 가지는 모드(최적으로 이미 결정되어 있는 모드)들을 저장하고 있음을 알 수 있다.First, FIG. 6 shows an example of a pseudo code in which the reference method according to FIGS. 4 and 5 is implemented as a code. Referring to FIG. 6, in consideration of the boundary conditions of FIG. 4, it can be seen that the neighboring partitions store modes (optimally determined modes) for reference in the same manner as FIG.

다음의 도 7은 도 6과 같이 저장되어 있는 주변 파티션들이 가지는 모드를 이용하여, 실제로 대상이 되는 8x8 파티션(현재 파티션)에서 MD6 및 MD7의 스킵 여부를 결정하는 의사 코드의 예를 보여준다. 정리하면, 현재 파티션에 의하여 참조되는 모든 파티션들이 MD1 또는 MD4를 가지는 경우에 한하여 현재의 파티션에 서브 모드 스킵(본 예에서는 서브 모드 중에서 MD6 및 MD7만 스킵)을 적용한다는 것을 알 수 있다. 물론, 이는 어디까지나 일 실시예이기 때문에, 스킵되는 서브 모드의 종류도 더 추가하거나 줄일 수도 있으며, 판단 기준을 MD1 또는 MD4만 아니니라, MD1, MD2, MD3 및 MD4 중에 어느 하나를 가지는 경우에 한하는 것으로 수정할 수도 있다.FIG. 7 illustrates an example of a pseudo code for determining whether to skip MD6 and MD7 in a target 8x8 partition (current partition) using the mode of the stored neighboring partitions as shown in FIG. In summary, it can be seen that submode skipping (skipping only MD6 and MD7 in the submode in this example) applies to the current partition only if all partitions referenced by the current partition have MD1 or MD4. Of course, since this is an embodiment only, the types of submodes to be skipped may be further added or reduced. In the case of having MD1, MD2, MD3 and MD4 as well as MD1 or MD4, .

도 7의 마지막 두 행에서, 표시된 부분은 서브 모드 스킵이 적용되지 않는 것으로 결정되었다고 하더라도 특정한 조건이 만족되면, 적어도 MD7은 스킵하겠다는 의미이다. 그 판단 조건은 MD5의 율-왜곡 비용(RDC)이 MD4의 율-왜곡 비용(RDC)보다 크면 만족된다. 이와 같은 조건이 만족된다는 것은, MD4가 MD5보다 최적에 가깝다는 것을 의미한다. 따라서, 이 경우에는 8x8 파티션이 분할되는 쪽 보다는 분할되지 않는 쪽에서 최적이 결정될 가능성이 높다는 의미이므로, MD7에서 최적이 결정된 가능성은 매우 희박하다. 따라서, 이러한 MD7의 스킵이 가능한 것이다.In the last two lines of FIG. 7, the marked portion means that at least MD7 will skip if a certain condition is satisfied, even if the submode skip is determined not to be applied. The judgment condition is met if the rate-distortion cost (RDC) of MD5 is greater than the rate-distortion cost (RDC) of MD4. When these conditions are satisfied, it means that MD4 is more optimal than MD5. Therefore, in this case, since it means that there is a high possibility that the 8x8 partition is determined more optimally than the partition where the partition is divided, the possibility of optimal determination in MD7 is very rare. Therefore, such a skip of MD7 is possible.

다음의 표 5는 다양한 시퀀스들에 대하여, 본 발명에 따른 서브 모드 스킵을 적용한 결과, 화질(PSNR), 비트율(BR) 및 코딩 시간(T)의 변화를 보여주는 도면이다. 이러한 시퀀스들로는 CIF 영상 100 프레임을 이용하였으며, 양자화 파라미터는 28로 선택하였다. 또한, 참조되는 프레임의 수는 5개로 하고, 고속 완전 검색(fast full search)를 적용하였다.Table 5 below shows changes in picture quality (PSNR), bit rate (BR) and coding time (T) as a result of applying the submode skip according to the present invention to various sequences. For these sequences, 100 frames of CIF image were used, and the quantization parameter was selected as 28. In addition, the number of frames to be referred to is 5, and a fast full search is applied.

Figure 112009078185620-pat00005
Figure 112009078185620-pat00005

표 5를 참조하면, 본 발명을 적용한 경우 평균적으로 PSNR은 0.001% 감소, 비트율은 0.22% 증가로 매우 미미한 데에 비하여, 코딩 시간은 4.5% 정도나 감소시킬 수 있었다. 이는 단순히 모션 추정 과정만이 아니라 전체 비디오 코딩에서 절감된 시간을 의미하므로, 모션 추정 과정만을 비교한다면 코딩 시간의 절감 비율을 훨씬 더 크다고 볼 수 있다.Referring to Table 5, when the present invention is applied, on average, the PSNR is reduced by 0.001% and the bit rate is increased by 0.22%, while the coding time can be reduced by 4.5%. This means that not only the motion estimation process but also the time saved in the entire video coding, the coding time reduction ratio is much larger if only the motion estimation process is compared.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the embodiments described above are in all respects illustrative and not restrictive.

도 1은 블록 모션 추정 기법을 사용하는 인터 프레임 코딩의 기본 개념을 보여주는 도면이다.1 is a diagram showing a basic concept of interframe coding using a block motion estimation technique.

도 2는 H.264에서 정의하는 계층적 분할 방식에 따른 복수의 블록 모드들을 보여주는 도면이다.FIG. 2 is a diagram showing a plurality of block modes according to a hierarchical division method defined in H.264.

도 3은 본 발명의 일 실시예에 따른 모션 추정 방법을 구현하는 비디오 인코딩 장치의 구성을 도시한 블록도이다.3 is a block diagram illustrating a configuration of a video encoding apparatus for implementing a motion estimation method according to an embodiment of the present invention.

도 4는 현재 매크로블록의 위치에 따라 참조하는 주변 매크로블록의 수가 달라질 수 있음을 보여주는 도면이다.FIG. 4 is a diagram showing that the number of neighboring macroblocks to be referred to can be varied according to the position of the current macroblock.

도 5는 현재 매크로블록에 속하는 4개의 파티션들이 주변의 파티션들을 참조하는 방향을 예시하는 도면이다.5 is a diagram illustrating directions in which four partitions belonging to a current macroblock refer to neighboring partitions.

도 6은 이상의 도 4 및 5에 따른 참조 방식을 코드로서 구현한 의사 코드의 예를 보여주는 도면이다.FIG. 6 is a diagram showing an example of a pseudo code that implements the reference method according to FIGS. 4 and 5 as a code.

도 7은 도 6에서와 같이 저장되어 있는 주변 파티션들이 가지는 모드를 이용하여, 실제로 대상이 되는 현재 파티션에서 서브 모드 스킵 여부를 결정하는 의사 코드의 예를 보여주면 도면이다.FIG. 7 is a diagram illustrating an example of a pseudo code for determining whether to skip a submode in a current partition, which is actually a target, using a mode of neighboring partitions stored as shown in FIG.

(도면의 주요부분에 대한 부호 설명)(Reference Numerals for Main Parts of the Drawings)

100: 비디오 인코딩 장치 110: 파티션 분할부100: Video encoding device 110: Partitioning division

130: 최적 선택부 140: 스킵 결정부130: optimal selection unit 140: skip determination unit

150: 모션 추정부 160: 모션 보상부150: Motion estimation unit 160: Motion compensation unit

165: 차분기 170: 공간적 변환부165: Sub-branch 170: Spatial transformation unit

180: 양자화부 190: 엔트로피 부호화부180: quantization unit 190: entropy coding unit

Claims (19)

(a) 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 단계;(a) partitioning an input frame into partitions according to a plurality of main modes; (b) 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 단계;(b) selecting an optimal one of the plurality of main modes; (c) 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견되지 않는다면 상기 선택된 모드도 스킵을 하고, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견된다면 상기 선택된 모드는 스킵하지 않고 연산을 하는 단계; 및(c) if the selected mode has a plurality of submodes, referring to a type of a main mode or a submode of a neighboring partition existing in the vicinity of the current partition divided according to the selected mode, Skipping the selected mode if a skipable mode is not found among a plurality of submodes, and skipping the selected mode if a skipable mode is found among the plurality of submodes; And (d) 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 단계를 포함하되,(d) performing motion estimation on the current partition in a mode other than the skipped mode among the plurality of submodes, 상기 스킵 가능한 모드인지 여부는,Whether the mode is the skip mode, 미리 상기 복수의 서브 모드의 발현되는 빈도수를 참조하여 설정되는, 가변 크기 블록 매칭 기반의 모션 추정 방법.Wherein the motion vector is set with reference to the frequency of occurrence of the plurality of submodes in advance. 제1항에 있어서, 상기 (b) 단계는2. The method of claim 1, wherein step (b) 영상의 에러 및 비트량의 선형 조합으로 계산되는 율-왜곡 비용을 기초로 상기 최적인 하나의 모드를 선택하는 단계를 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.And selecting the optimal one of the modes based on a rate-distortion cost calculated as a linear combination of error and bit amount of the image. 제1항에 있어서, 상기 복수의 메인 모드들은The method of claim 1, wherein the plurality of main modes 16x16 파티션 모드(MD1), 16x8 파티션 모드(MD2), 8x16 파티션 모드(MD3) 및 8x8 파티션 모드(MD8)를 포함하고,16x16 partition mode (MD1), 16x8 partition mode (MD2), 8x16 partition mode (MD3), and 8x8 partition mode (MD8) 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우는 상기 선택된 모드가 MD8인 경우를 의미하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.And when the selected mode has a plurality of submodes, the selected mode is MD8. 제1항에 있어서, 상기 복수의 서브 모드들은2. The method of claim 1, wherein the plurality of submodes 8x8 파티션 모드(MD4), 8x4 파티션 모드(MD5), 4x8 파티션 모드(MD6), 4x4 파티션 모드(MD7)를 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.A method of motion estimation based on variable size block matching, including an 8x8 partition mode (MD4), an 8x4 partition mode (MD5), a 4x8 partition mode (MD6), and a 4x4 partition mode (MD7). 제4항에 있어서, 상기 스킵가능한 모드는 적어도5. The method of claim 4, wherein the skip mode is at least 상기 MD7을 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.And the MD7. 제5항에 있어서, 상기 스킵가능한 모드는 6. The method of claim 5, wherein the skip mode is 상기 MD6을 더 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.And further comprising the MD6. 제1항에 있어서, 상기 주변 파티션은The method of claim 1, 상기 현재 파티션에 대하여 위치적으로 좌측 파티션, 상측 파티션, 좌상측 파티션 및 우상측 파티션 중에서 적어도 하나 이상을 포함하는, 가변 크기 블록 매칭 기반의 모션 추정 방법.Wherein the at least one of the left partition, the upper partition, the upper left partition, and the upper right partition is located locally with respect to the current partition. 제1항에 있어서, 상기 (c) 단계는2. The method of claim 1, wherein step (c) 상기 주변 파티션이 상기 메인 모드들에 따른 분할된 이후에 추가적으로 분 할되지 않은 경우에 한하여 수행되는, 가변 크기 블록 매칭 기반의 모션 추정 방법.Wherein the motion compensation is performed only when the neighboring partitions are not further divided after being divided according to the main modes. 제8항에 있어서, 상기 (c) 단계는9. The method of claim 8, wherein step (c) 상기 주변 파티션이 16x16 파티션 모드(MD1) 및 8x8 파티션 모드(MD4)를 갖는 경우에 한하여 수행되는, 가변 크기 블록 매칭 기반의 모션 추정 방법.Wherein the peripheral partition has a 16x16 partition mode (MD1) and an 8x8 partition mode (MD4). 입력 프레임을 복수의 메인 모드들에 따른 파티션들로 분할하는 파티션 분할부;A partitioning unit for dividing an input frame into partitions according to a plurality of main modes; 상기 복수의 메인 모드들 중 최적인 하나의 모드를 선택하는 최적 선택부;An optimum selection unit for selecting one of the plurality of main modes as an optimum mode; 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우에, 상기 선택된 모드에 따라 분할된 현재 파티션의 주변에 존재하며 이미 처리되어 있는 주변 파티션이 갖는 메인 모드 또는 서브 모드의 종류를 참조하여, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견되지 않는다면 상기 선택된 모드도 스킵을 하고, 상기 복수의 서브 모드 중에서 스킵 가능한 모드가 발견된다면 상기 선택된 모드는 스킵하지 않고 연산을 하는 스킵 결정부;The main mode or the sub mode of the peripheral part existing in the vicinity of the current partition divided according to the selected mode in the case that the selected mode has a plurality of sub modes, A skip determining unit skipping the selected mode if a skipable mode is not found in the mode, and skipping the selected mode if a skipable mode is found among the plurality of submodes; 상기 복수의 서브 모드 중에서 상기 스킵된 모드 이외의 모드로, 상기 현재 파티션에 대한 모션 추정을 수행하는 모션 추정부;A motion estimator for performing motion estimation on the current partition in a mode other than the skipped mode among the plurality of submodes; 상기 입력 프레임으로부터, 상기 모션 추정에 의하여 구해진 모션 벡터에 의해 참조 프레임을 보상한 모션 보상 프레임을 차분하여 잔차 프레임을 얻는 차분기; 및A difference branch for obtaining a residual frame from the input frame by subtracting a motion compensation frame compensated for a reference frame by a motion vector obtained by the motion estimation; And 상기 잔차 프레임을 부호화하는 수단을 포함하되,And means for coding the residual frame, 상기 스킵 가능한 모드인지 여부는,Whether the mode is the skip mode, 미리 상기 복수의 서브 모드의 발현되는 빈도수를 참조하여 설정되는, 비디오 인코딩 장치.Is set with reference to the frequency of occurrence of the plurality of submodes in advance. 제10항에 있어서, 상기 잔차 프레임을 부호화하는 수단은,11. The apparatus of claim 10, wherein the means for coding the residual frame comprises: 상기 잔차 프레임을 주파수 도메인으로 변환하여 변환 계수를 생성하는 공간적 변환부;A spatial transformer for transforming the residual frame into a frequency domain and generating a transform coefficient; 상기 변환 계수를 양자화하는 양자화부; 및A quantization unit for quantizing the transform coefficient; And 상기 양자화의 결과와 상기 모션 벡터를 무손실 부호화하는 엔트로피 부호화부를 포함하는 비디오 인코딩 장치.And an entropy encoding unit for lossless encoding the result of the quantization and the motion vector. 제10항에 있어서, 상기 최적 선택부는11. The apparatus of claim 10, wherein the optimal selection unit 영상의 에러 및 비트량의 선형 조합으로 계산되는 율-왜곡 비용을 기초로 상기 최적인 하나의 모드를 선택하는, 비디오 인코딩 장치.And selects the optimal one mode based on a rate-distortion cost computed as a linear combination of error and bit amount of the image. 제10항에 있어서, 상기 복수의 메인 모드들은11. The method of claim 10, wherein the plurality of main modes 16x16 파티션 모드(MD1), 16x8 파티션 모드(MD2), 8x16 파티션 모드(MD3) 및 8x8 파티션 모드(MD8)를 포함하고,16x16 partition mode (MD1), 16x8 partition mode (MD2), 8x16 partition mode (MD3), and 8x8 partition mode (MD8) 상기 선택된 모드가 복수의 서브 모드들을 갖는 경우는 상기 선택된 모드가 MD8인 경우를 의미하는, 비디오 인코딩 장치.And when the selected mode has a plurality of submodes, it means that the selected mode is MD8. 제10항에 있어서, 상기 복수의 서브 모드들은11. The method of claim 10, wherein the plurality of submodes 8x8 파티션 모드(MD4), 8x4 파티션 모드(MD5), 4x8 파티션 모드(MD6), 4x4 파티션 모드(MD7)를 포함하는, 비디오 인코딩 장치.A video encoding device including an 8x8 partition mode (MD4), an 8x4 partition mode (MD5), a 4x8 partition mode (MD6), and a 4x4 partition mode (MD7). 제14항에 있어서, 상기 스킵가능한 모드는 적어도15. The method of claim 14, wherein the skip mode is at least 상기 MD7을 포함하는, 비디오 인코딩 장치.And the MD7. 제15항에 있어서, 상기 스킵가능한 모드는 16. The method of claim 15, wherein the skip mode is 상기 MD6을 더 포함하는, 비디오 인코딩 장치.Further comprising the MD6. 제10항에 있어서, 상기 주변 파티션은11. The system of claim 10, 상기 현재 파티션에 대하여 위치적으로 좌측 파티션, 상측 파티션, 좌상측 파티션 및 우상측 파티션 중에서 적어도 하나 이상을 포함하는, 비디오 인코딩 장치.Wherein the at least one of the left partition, the upper partition, the upper left partition, and the upper right partition is located locally with respect to the current partition. 제10항에 있어서, 상기 스킵 결정부는11. The apparatus of claim 10, wherein the skip determiner 상기 주변 파티션이 상기 메인 모드들에 따른 분할 이후에 추가적으로 분할되지 않은 경우에 한하여 상기 스킵을 수행하는, 비디오 인코딩 장치.And performs the skip only when the peripheral partition is not further divided after division according to the main modes. 제18항에 있어서, 상기 스킵 결정부는19. The apparatus of claim 18, wherein the skip determining unit 상기 주변 파티션이 16x16 파티션 모드(MD1) 및 8x8 파티션 모드(MD8)를 갖는 경우에 한하여 상기 스킵을 수행하는, 비디오 인코딩 장치.Wherein the skipping is performed only when the peripheral partition has a 16x16 partition mode (MD1) and an 8x8 partition mode (MD8).
KR1020090126232A 2009-12-17 2009-12-17 Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same Expired - Fee Related KR101610029B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090126232A KR101610029B1 (en) 2009-12-17 2009-12-17 Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090126232A KR101610029B1 (en) 2009-12-17 2009-12-17 Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same

Publications (2)

Publication Number Publication Date
KR20110069482A KR20110069482A (en) 2011-06-23
KR101610029B1 true KR101610029B1 (en) 2016-04-08

Family

ID=44401300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090126232A Expired - Fee Related KR101610029B1 (en) 2009-12-17 2009-12-17 Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same

Country Status (1)

Country Link
KR (1) KR101610029B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240071049A (en) 2022-11-15 2024-05-22 한양대학교 산학협력단 Apparatus and Method for Improving Quality of Non-Rigid Point Cloud Contents

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105898297B (en) * 2016-04-29 2019-03-15 上海高智科技发展有限公司 A fast mode selection method and system based on HEVC

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240071049A (en) 2022-11-15 2024-05-22 한양대학교 산학협력단 Apparatus and Method for Improving Quality of Non-Rigid Point Cloud Contents

Also Published As

Publication number Publication date
KR20110069482A (en) 2011-06-23

Similar Documents

Publication Publication Date Title
KR102026856B1 (en) Method for predicting motion vectors in a video codec that allows multiple referencing, motion vector encoding/decoding apparatus using the same
CN107396116B (en) Video encoding and decoding apparatus and non-transitory computer-readable storage medium
WO2011101451A1 (en) Data compression for video
WO2011101442A2 (en) Data compression for video
EP2520093A1 (en) Data compression for video
KR101610029B1 (en) Method for a motion estimation based on a variable size block matching and video encoding apparatus using the same
KR101505815B1 (en) Method and apparatus for motion estimation with sub-pixel accuracy, video encoder using same
KR101610028B1 (en) Method and apparatus for fast motion estimation and video encoding apparatus using the same
KR101619739B1 (en) Method for fast motion estimation and video encoding apparatus using the same
KR101543200B1 (en) Method for predicting motion vectors in a video codec that allows multiple referencing, motion vector encoding/decoding apparatus using the same

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

FPAY Annual fee payment

Payment date: 20190402

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20200402

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20200402