KR100928272B1 - Motion estimation method and apparatus for video coding - Google Patents
Motion estimation method and apparatus for video coding Download PDFInfo
- Publication number
- KR100928272B1 KR100928272B1 KR1020070132717A KR20070132717A KR100928272B1 KR 100928272 B1 KR100928272 B1 KR 100928272B1 KR 1020070132717 A KR1020070132717 A KR 1020070132717A KR 20070132717 A KR20070132717 A KR 20070132717A KR 100928272 B1 KR100928272 B1 KR 100928272B1
- Authority
- KR
- South Korea
- Prior art keywords
- cme
- buffer
- odd
- macro block
- current frame
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 현재 프레임의 매크로 블록에서 홀수 행만을 저장하는 CME 매크로 블록 버퍼, 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호의 홀수 행만을 저장하는 CME 참조 영역 버퍼 및 상기 CME 매크로 블록 버퍼 및 상기 CME 참조 영역 버퍼에 저장된 값에 상응하여 2 화소 추정을 수행하는 2화소 추정부를 포함하는 동영상 부호화에서 움직임 추정 장치를 제공할 수 있다.The present invention provides a CME macroblock buffer for storing only odd rows in a macroblock of a current frame, a CME reference region buffer for storing only odd rows of luminance signals of a reference frame corresponding to a macroblock of a current frame, and the CME macroblock buffer and the A motion estimation apparatus may be provided in a video encoding including a two-pixel estimator that performs two-pixel estimation corresponding to a value stored in a CME reference region buffer.
H.264, 움직임 추정 H.264, motion estimation
Description
본 발명은 동영상 부호화를 위한 움직임 추정 방법 및 장치에 관한 것이다. 특히 존 발명은 H.264 동영상 부호화를 위하여 실행되는 움직임 추정 방법에서 프로세서가 효율적으로 동작하기 위한 움직임 추정 방법 및 장치에 관한 것이다.The present invention relates to a motion estimation method and apparatus for video encoding. In particular, the present invention relates to a motion estimation method and apparatus for efficiently operating a processor in a motion estimation method performed for H.264 video encoding.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-026-01,과제명: MPCore 플랫폼 기반 모바일 멀티미디어 SoC]The present invention is derived from the research conducted as part of the IT growth engine technology development project of the Ministry of Information and Communication and the Ministry of Information and Communication Research and Development. [Task Management Number: 2006-S-026-01, Title: MPCore Platform-Based Mobile Multimedia SoC]
국제 비디오 부호화 표준기관인 ITU-T와 ISO가 함께 JVT를 구성하고 H.264를 발표하였다. H.264표준은 기존의 비디오 부호화 방식들과 마찬가지로, 이미 부호화된 이전 프레임으로부터의 움직임을 추정(Motion Estimation)하여 추정신호를 구성하고, 추정오류 신호를 움직임 보상(Motion Compensation)과 DCT 변환 방법을 혼합하여 구성한다. 이기서 H.264 표준에서는 압축 성능을 높이기 위해 기존의 방식에 비해 더 작은 블록 사이즈인 4x4 블록 단위까지 움직임 추정을 수행하고, 1/4 화소 단위까지 움직임 보정을 수행한다. 이러한 기술들을 기반으로 H.264 비디오 부호화 표준은 기존의 비디오 부호화 표준인 MPEG-4 ASP에 비하여 2배의 압축성능을 가지게 되었다. 그리하여 다양한 멀티미디어 통신 서비스에 사용될 핵심 기술로 그 응용이 기대되고 있고 H.264 비디오 코덱을 이용한 비디오 데이터를 압축하는 기술과 성능 향상을 위한 연구가 활발히 되고 있다. ITU-T, an international video coding standards organization, and ISO together formed JVT and released H.264. Like the existing video coding schemes, the H.264 standard constructs an estimation signal by estimating motion from a previous frame that has been previously encoded, and uses motion compensation and DCT conversion methods for estimation error signals. Mix it up. In order to improve the compression performance, the H.264 standard performs motion estimation up to 4x4 block units, which are smaller block sizes than conventional methods, and performs motion compensation up to 1/4 pixel units. Based on these technologies, the H.264 video coding standard has twice the compression performance compared to the MPEG-4 ASP, which is the existing video coding standard. Therefore, its application is expected as a core technology to be used for various multimedia communication services, and researches for improving the performance and technology for compressing video data using the H.264 video codec have been actively conducted.
그러나 H.264 코덱 표준 부호화기술은 구현시 요구되는 메모리 대역폭과 연산의 복잡도가 높기 때문에 실시간 응용에 적용하는데 어려움이 있다. 특히 기존의 1/2 화소 단위보다 복잡도가 높은 1/4 화소 단위의 움직임 추정을 수행함으로 인해 효율적인 화소 보간 방식과 움직임 추정 방식이 요구되었다. 또한, 복잡한 방법을 사용함에 따라 각 추정 단계에서 메모리의 효율적인 사용이 요청되었다.However, the H.264 codec standard coding technique has difficulty in applying to real-time applications because of the high memory bandwidth and computational complexity required for implementation. In particular, efficient motion interpolation and motion estimation are required because motion estimation is performed in units of 1/4 pixels having higher complexity than conventional 1/2 pixel units. In addition, the use of complex methods has required the efficient use of memory at each estimation step.
본 발명은 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공하는 것을 목적으로 한다. An object of the present invention is to provide a motion estimation method and apparatus for video encoding.
또한 본 발명은 H.264 동영상 부호화시 움직임 추정을 할 때 메모리의 사용을 효율적으로 할 수 있는 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공하는 것을 목적으로 한다.Another object of the present invention is to provide a motion estimation method and apparatus for video encoding, which can efficiently use a memory when performing motion estimation during H.264 video encoding.
상술한 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면, 현재 프레임의 매크로 블록에서 홀수 행만을 저장하는 CME(Coarse Mode Estimation) 매크로 블록 버퍼, 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호의 홀수 행만을 저장하는 CME 참조 영역 버퍼 및 상기 CME 매크로 블록 버퍼 및 상기 CME 참조 영역 버퍼에 저장된 값에 상응하여 2 화소 추정을 수행하는 2화소 추정부를 포함하는 동영상 부호화에서 움직임 추정 장치를 제공할 수 있다.In order to achieve the above objects, according to an aspect of the present invention, a Coarse Mode Estimation (CME) macroblock buffer for storing only odd rows in a macroblock of a current frame, the luminance signal of the reference frame corresponding to the macroblock of the current frame A motion estimation apparatus may be provided in a video encoding including a CME reference region buffer for storing only odd rows of data and a two-pixel estimator for performing 2-pixel estimation corresponding to values stored in the CME macro block buffer and the CME reference region buffer. have.
바람직한 실시예에 있어서, 상기 CME 매크로 블록 버퍼는 홀수 열만을 저장하는 제1 CME 매크로 블록 버퍼 및 짝수 열만을 저장하는 제2 CME 매크로 블록 버퍼를 더 포함할 수 있다. 또한, 상기 CME 참조 영역 버퍼는 홀수 열만을 저장하는 제1 CME 참조 영역 버퍼 및 짝수 열만을 저장하는 제2 CME 참조 영역 버퍼를 더 포함할 수 있다. In a preferred embodiment, the CME macroblock buffer may further include a first CME macroblock buffer that stores only odd rows and a second CME macroblock buffer that stores only even columns. The CME reference region buffer may further include a first CME reference region buffer storing only odd columns and a second CME reference region buffer storing only even columns.
또한, 상기 CME 참조 영역 버퍼에 저장된 값 및 상기 2화소 추정부에서 추정된 모션 벡터 값을 입력받아 FME 참조 영역 버퍼에 상응하는 값으로 전송하는 CME 참조 영역 버퍼 제어부를 더 포함할 수 있다. 또한, 상기 현재 프레임의 매크로 블록에서 짝수 행은 상기 움직임 추정 장치의 다음 단에 연결되는 1/4 움직임 조정 장치의 FME 매크로 블록 버퍼에 포함되는 것을 특징으로 할 수 있다. 또한, 상기 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호의 짝수 행은 상기 움직임 추정 장치의 다음 단에 연결되는 1/4 움직임 조정 장치의 FME 참조 영역 버퍼에 포함되는 것을 특징으로 할 수 있다. The apparatus may further include a CME reference region buffer controller which receives a value stored in the CME reference region buffer and a motion vector value estimated by the two pixel estimator and transmits the value corresponding to the FME reference region buffer. The even row in the macroblock of the current frame may be included in the FME macroblock buffer of the quarter motion controller connected to the next stage of the motion estimation device. The even row of the luminance signal of the reference frame corresponding to the macro block of the current frame may be included in the FME reference region buffer of the quarter motion adjustment device connected to the next stage of the motion estimation device. .
본 발명의 다른 일 측면을 참조하면, 현재 프레임의 매크로 블록에서 홀수 행만을 저장하는 단계, 상기 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호의 홀수 행만을 저장하는 단계 및 상기 저장된 상기 현재 프레임 매크로 블록 홀수 행 및 상기 참조 프레임의 휘도 신호의 홀수 행에 상응하여 2화소 단위 움직임을 추정하는 단계를 포함하는 동영상 부호화에서 움직임 추정 방법을 제공할 수 있다.According to another aspect of the present invention, storing only odd rows in the macro block of the current frame, storing only odd rows of the luminance signal of the reference frame corresponding to the macro block of the current frame and the stored current frame A motion estimation method may be provided in a video encoding comprising estimating a motion of a two pixel unit corresponding to an odd row of a macroblock odd row and an odd row of the luminance signal of the reference frame.
바람직한 실시예에 있어서, 현재 프레임의 매크로 블록에서 짝수 단위의 행만을 저장하는 단계, 상기 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호의 짝수 행만을 저장하는 단계 및 상기 저장된 현재 프레임 매크로 블록의 짝수 행, 홀수 행, 참조 프레임의 휘도 신호의 홀수 행 및 짝수 행에 상응하여 1/4 화소 단위 움직임을 추정하는 단계를 더 포함할 수 있다. 또한, 상기 현재 프레임의 매크로 블록에서 홀수 행만을 저장하는 단계는 상기 홀수 행 중 홀수 열 및 상기 홀수 행 중 짝수 열을 물리적으로 서로 다른 메모리에 저장하는 단계를 더 포함할 수 있다. 또한, 상기 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호의 홀수 행만을 저장하는 단계는 상기 홀수 행 중 홀수 열 및 상기 홀수 행 중 짝수 열을 물리적으로 서로 다른 메모리에 저장하는 단계를 더 포함할 수 있다. 또한, 상기 참조 프레임의 휘도 신호의 홀수 행에 포함된 값 및 상기 2화소 움직임 추정된 모션 벡터 값을 입력받아 FME 참조 영역 버퍼에 상응하는 값으로 변환하는 단계를 더 포함할 수 있다.In a preferred embodiment, storing only the even numbered rows in the macroblock of the current frame, storing only the even rows of the luminance signal of the reference frame corresponding to the macroblock of the current frame and the stored current frame macroblock The method may further include estimating a quarter-pixel unit motion corresponding to the even row, the odd row, the odd row of the luminance signal of the reference frame, and the even row. In addition, storing only odd rows in the macroblock of the current frame may further include storing odd columns among the odd rows and even columns among the odd rows in physically different memories. The storing of only odd rows of the luminance signal of the reference frame corresponding to the macro block of the current frame may further include storing odd columns of the odd rows and even columns of the odd rows in physically different memories. can do. The method may further include receiving a value included in an odd row of the luminance signal of the reference frame and the two pixel motion estimated motion vector value and converting the value into a value corresponding to an FME reference region buffer.
본 발명에 따르면 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공할 수 있다. According to the present invention, a motion estimation method and apparatus for video encoding can be provided.
또한 본 발명은 H.264 동영상 부호화시 움직임 추정을 할 때 메모리의 사용을 효율적으로 할 수 있는 동영상 부호화를 위한 움직임 추정 방법 및 장치를 제공할 수 있다.In addition, the present invention can provide a motion estimation method and apparatus for video encoding that can efficiently use the memory when motion estimation when H.264 video encoding.
이하 첨부된 도면을 참조하여 본 발명에 따른 동영상 부호화를 위한 움직임 추정 방법 및 장치에 대하여 상세히 설명한다.Hereinafter, a motion estimation method and apparatus for video encoding according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명이 적용되는 H.264 부호화 장치를 전체적으로 설명하는 구성도이다.1 is a block diagram illustrating an overall H.264 encoding apparatus to which the present invention is applied.
도 1을 참조하면 본 발명이 적용되는 H.264 부호화 장치는 양자화부(101), 역양자화부(103), 엔트로피 부호화부(105), 블록 해제부(107), 참조 프레임 재현부(109), 움직임 보상부(111), 움직임 추정부(113) 및 인트라 예측부(115)를 포함한다.Referring to FIG. 1, an H.264 encoding apparatus to which the present invention is applied includes a
양자화부(101)는 외부에서 입력되는 매크로 블록을 소정 방식에 따라 변환한 후 양자화하는 역할을 담당한다. 이러한 양자화부(101)에서 양자화하는 대표적인 영상 변환 기법으로는 DCT(Discrete Cosine Transform)이 있다.The
역양자화부(103)는 양자화부(101)로부터 변환 후 양자화된 영상 데이터를 입력받아 역양자화 및 역변환하는 역할을 담당한다.The
엔트로피 부호화부(105)는 최종 h.264 부호화 작업이 종료된 최종 매크로 블록을 엔트로피 부호화하여 출력 비트 스트림을 생성하는 역할을 담당한다.The
블록 해제부(107) 역양자화된 매크로 블록의 블록을 해제하여 자연스러운 화상을 제공하는 역할을 담당한다.The
참조 프레임 재현부(109)는 상기 블록 해제부(107)로부터 입력받은 화상을 이용하여 다수의 참조 프레임 화상을 생성하고 저장하는 역할을 담당한다. 이러한 참조 프레임은 움직임 추정이나 움직임 보상을 할 때 참조 화면으로 사용되는 복수의 프레임 화상이다.The reference
움직임 보상부(111, MC : Motion Compensation)는 상기 참조 프레임 재현 부(109)에서 저장된 참조 프레임 및 움직임 추정부(113)에서 추정된 모션 벡터 및 비용값을 기준으로 매크로 블록을 보상하는 역할을 담당한다.The motion compensator 111 (MC) is responsible for compensating the macro block based on the reference frame stored in the reference
움직임 추정부(113)는 상기 참조 프레임 재현부(109)에서 저장된 참조 프레임을 이용하여 현재 매크로 블록의 움직임을 추정하여 그 모션 벡터 및 비용을 계산하는 역할을 담당한다. 이러한 움직임 추정부는 기존의 MPEG 방식과 달리 1/4 화소 단위의 움직임까지 추정하므로 계산이 매우 많고 복잡하다. 특히 상기 움직임 추정부(113)는 거친 움직임 추정부(CME : Coarse Mode Estimation) 및 미세 움직임 추정부(FME : Fine Motion Estimation)로 구분 될 수 있으며 이러한 움직임을 추정하는 방법은 본 발명의 핵심적인 부분으로 이하의 도면에서 더욱 상세히 설명하도록 한다.The
인트라 예측부(115)는 상기 참조 프레임 재현부(109)에서 저장된 참조 프레임을 이용하여 매크로 블록 내의 예측 부호화 즉 인트라 예측을 수행하는 역할을 담당한다.The
도 2는 본 발명에 따른 움직임 추정부의 구조를 설명하는 도면이다.2 is a view for explaining the structure of the motion estimation unit according to the present invention.
도 2를 참조하면 본 발명에 따른 움직임 추정부는 크게 CME 부(220) 및 FME부(230)를 포함한다. CME부는 CME 참조 영역 버퍼(221), CME 매크로 블록 버퍼(223) 및 2 화소 추정부(225)를 포함한다. 한 편 FME부(230)는 FME 참조 영역 버퍼(233), FME 매크로 블록 버퍼(231) 및 1/4 화소 추정부(237)를 포함한다.Referring to FIG. 2, the motion estimation unit largely includes a CME unit 220 and an FME unit 230. The CME unit includes a CME reference area buffer 221, a CME macro block buffer 223, and a two pixel estimation unit 225. The FME unit 230 includes an FME reference area buffer 233, an FME macro block buffer 231, and a quarter pixel estimator 237.
CME 참조 영역 버퍼(221)는 참조 프레임 재현부에 포함된 참조 프레임 및 현재 프레임을 모두 저장하고 있는 메모리(210)로부터 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 휘도 신호의 홀수 행만을 저장하는 역할을 담당한다. 기존의 CME 참조 영역 버퍼는 현재 참조 프레임의 휘도 신호를 모두 저장하였지만, 본 발명에서는 홀수 행만을 저장하여, 메모리의 크기를 현저히 줄일 수 있을 뿐 아니라 210번으로부터의 반복된 전송시간을 줄일 수 있다.The CME reference area buffer 221 stores only odd rows of luminance signals of the reference frame corresponding to the macro block of the current frame from the memory 210 that stores both the reference frame and the current frame included in the reference frame reproducing unit. In charge. The conventional CME reference region buffer stores all the luminance signals of the current reference frame. However, in the present invention, only odd rows can be stored, thereby significantly reducing the size of the memory and reducing the repeated transmission time from 210.
CME 매크로 블록 버퍼(223)는 참조 프레임 재현부에 포함된 참조 프레임 및 현재 프레임을 모두 저장하고 있는 메모리(210)로부터 현재 프레임의 매크로 블록의 홀수 행만을 저장하는 역할을 담당한다. 기존의 CME 매크로 블록 버퍼는 현재 참조 프레임의 매크로 블록 신호를 모두 저장하였지만, 본 발명에서는 홀수 행만을 저장하여, 메모리의 크기를 현저히 줄일 수 있다. 즉 기존의 CME 매크로 블록 버퍼에 저장되는 현재 프레임의 매크로 블록 신호는 16x16개가 된다면 본 발명에서는 8x16개가 된다.The CME macro block buffer 223 stores only odd rows of macro blocks of the current frame from the memory 210 that stores both the reference frame and the current frame included in the reference frame reproducing unit. Although the conventional CME macroblock buffer stores all the macroblock signals of the current reference frame, in the present invention, only odd rows can be stored, thereby significantly reducing the size of the memory. That is, if 16x16 macroblock signals of the current frame stored in the existing CME macroblock buffer are 8x16 in the present invention.
2화소 추정부(225)는 상기 CME 매크로 블록 버퍼(223) 및 CME 참조 영역 버퍼(221)에 저장된 값을 이용하여 2화소 단위 움직임 벡터를 추정하는 역할을 담당한다. 이러한 추정 방법은 도 3에서 설명하도록 한다.The two pixel estimator 225 estimates a two pixel unit motion vector using the values stored in the CME macro block buffer 223 and the CME reference region buffer 221. This estimation method will be described with reference to FIG. 3.
FME 참조 영역 버퍼(233)는 움직임 보상할 현재 프레임의 매크로 블록에 상응하는 참조 프레임의 매크로 블록에서 1화소 단위로 저장하는 버퍼이다.The FME reference area buffer 233 is a buffer that stores, in units of one pixel, the macro block of the reference frame corresponding to the macro block of the current frame to be motion compensated.
FME 매크로 블록 버퍼(231)는 메모리(210)에 존재하는 현재 프레임의 화소 값 중에서 실제로 현재 연산되는 매크로 블록의 값만을 저장하는 버퍼이다.The FME macro block buffer 231 is a buffer that stores only the value of the macro block that is currently calculated among the pixel values of the current frame existing in the memory 210.
특히, 상기 FME 참조 영역 버퍼(233) 및 FME 매크로 블록 버퍼(231)는 본 발명에서는 현재 프레임 매크로 블록의 짝수 행만을 저장한다. 이는 상기에서 설명된 CME 참조 영역 버퍼(221) 및 CME 매크로 블록 버퍼(223)에서 이미 홀수 행이 저장되어 있으므로, 상기 CME 부에 저장된 홀수 행을 그대로 이용할 수 있기 때문이다.In particular, the FME reference area buffer 233 and the FME macro block buffer 231 store only even rows of the current frame macro block in the present invention. This is because the odd rows stored in the CME reference region buffer 221 and the CME macro block buffer 223 described above can be used as they are.
1/4 화소 추정부(237)는 FME 참조 영역 버퍼(233), 및 FME 매크로 블록 버퍼(231)에 저장된 값 및 CME 부에 저장된 값을 이용하여 1화소 단위 , 1/2 화소 단위 및 1/4 화소 단위로 모션 벡터를 추정하는 역할을 담당한다.The quarter pixel estimator 237 uses the value stored in the FME reference area buffer 233 and the FME macro block buffer 231 and the value stored in the CME unit to determine one pixel unit, 1/2 pixel unit and 1 /. It is responsible for estimating the motion vector in units of 4 pixels.
도 3은 본 발명이 적용되는 휘도 움직임 추정을 설명하기 위한 도면이다.3 is a view for explaining luminance motion estimation to which the present invention is applied.
도 3을 참조하면, 본 발명에서 적용되는 휘도 움직임 추정은 현재 입력되는 프레임의 매크로 블록(300) 및 과거의 복수의 프레임으로부터 설정되는 참조 프레임의 매크로 블록(310)과의 차이 값(Δx,Δy)을 이용하여 움직임 벡터 및 그 비용을 계산하는 방식이다. 이러한 움직임 추정이 가능한 경우 움직임을 추정한 값을 보상한 프레임 과 그 움직임의 차이 값을 나타내는 움직임 벡터만을 전송하면 연속적인 화면의 구성이 가능하여 동영상 신호의 크기를 크게 줄일 수 있다.Referring to FIG. 3, the luminance motion estimation applied in the present invention is a difference value Δx, Δy from a macroblock 300 of a frame currently input and a
여기서 움직임 추정은 상기 현재 프레임 매크로 블록(300)과 참조 프레임 매크로 블록(310)의 화소의 절대 값의 차를 구하여 그 비용을 계산하고, 참조 프레임의 검색 창 과 현재 프레임 매크로 블록(300)과의 가장 적은 비용을 가지는 화소 지점(Δx,Δy)을 움직임 벡터로 정의할 수 있다.In this case, the motion estimation calculates a cost by obtaining a difference between the absolute values of the pixels of the current frame macro block 300 and the reference frame
이러한 움직임 벡터 및 비용값은 These motion vectors and cost values
Motion Vector = (Δx,Δy)MinCostMotion Vector = (Δx, Δy) MinCost
MINCOST = MIN{Cost(Δx,Δy)}MINCOST = MIN {Cost (Δx, Δy)}
단, Cost(Δx,Δy) = Cost (Δx, Δy) =
로 계산될 수 있다. 여기서 Luma는 휘도를 나타낸다.It can be calculated as Where Luma represents luminance.
도 4는 본 발명에 따른 CME 매크로 블록 버퍼에서 현재 프레임 매크로 블록을 저장하는 방법을 나타내는 도면이다.4 is a diagram illustrating a method of storing a current frame macro block in a CME macro block buffer according to the present invention.
도 4를 참조하면, 현재 프레임 매크로 블록(400)이 16x16개의 블록을 가진다고 가정하면, 본 발명에서 CME 부에 포함된 CME 매크로 블록 버퍼(411)에는 상기 도면의 실선 화살표에 해당하는 프레임 매크로 블록(400)의 홀수 행만이 저장된다.Referring to FIG. 4, assuming that the current frame
또한 상기 CME 부의 다음 단인 FME 부에 포함된 FME 매크로 블록 버퍼(413)에는 상기 CME 매크로 블록 버퍼(411)에서 저장되지 않은 프레임 매크로 블록(400)의 짝수 행이 저장된다.In addition, an even row of the
이렇게 각 버퍼에 현재 프레임 매크로 블록(400)이 번갈아 저장되는 경우, 상기 CME 부에서 수행하는 2화소 추정(421)은 현재 프레임 매크로 블록(400)에 포함된 값 중에서 매크로 블록에서 가로 및 세로로 홀수 칸에 포함된 값만을 대상으로 추정을 실행하므로 실제적으로 현재 프레임 매크로 블록(400)에 포함된 모든 값을 이용하여 추정을 수행하는 것이 아니라 상기 매크로 블록에 포함된 값 중 홀수 칸에 포함된 값만을 대상으로 한다. 즉 16x16 매크로 블록 중에서 실제로 사용되는 값은 홀수 칸에 포함된 값인 8x8의 값만이 대상이 된다.When the current frame
따라서 CME 매크로 블록 버퍼(411)는 CME에 포함된 2 화소 추정만을 수행하기 위한 현재 프레임의 매크로 블록 값만을 저장하면 되므로, 홀수 행에 해당하는 값만을 저장하면 된다.Therefore, since the
한편, CME 다음에 수행되는 FME에서는 1/4 화소 단위까지 움직임 추정을 수행하게 되는데, 이때 1/4 화소 추정(423)에서부터 현재 프레임의 매크로 블록(400)의 모든 값이 이용된다.Meanwhile, in the FME performed after the CME, motion estimation is performed up to a quarter pixel unit. In this case, all values of the
따라서 FME 매크로 블록 버퍼(413)에는 상기 CME 매크로 블록 버퍼(411)에 저장되지 않은 매크로 블록의 나머지 짝수 행의 값을 저장한다.Therefore, the FME
그런 다음 FME 부에서 1/4 화소 추정(423)을 수행하는 경우 상기 FME 매크로 블록 버퍼(413)에 포함된 짝수 행의 값뿐만 아니라 상기 CME 매크로 블록 버퍼(411)에 포함된 홀수 행의 값을 모두 이용하게 된다.Then, when performing the 1/4
도 5는 본 발명에 따른 CME 매크로 블록 버퍼의 메모리 저장 방법을 나타내는 도면이다.5 is a diagram illustrating a memory storing method of a CME macroblock buffer according to the present invention.
도 5를 참조하면, 본 발명에 따른 CME 매크로 블록 버퍼(500)는 현재 프레임 매크로 블록 버퍼의 홀수 행(501)을 저장한다. 이러한 경우, 일반적인 32 비트 환경에서 동작하고, 상기 각 블록값 값은 8비트의 값을 가지므로 한번의 프로세스에서 읽어 들이는 블록은 4 칸의 블록이 될 것이다.Referring to FIG. 5, the
한편 본 발명의 2화소 추정에서 필요한 값은 홀수 행 및 홀수 열에 해당하는 블록 칸의 값이 필요하므로, 실제적으로 한번의 프로세스에서 읽어 들이는 4칸의 블록 중 본 도면에서 A로 표시된 홀수 열의 블록칸에 해당하는 값만이 필요하게 된다.On the other hand, since the value required for the two-pixel estimation of the present invention requires the value of the block cell corresponding to the odd row and the odd column, the block column of the odd column indicated by A in this figure among the four blocks actually read in one process Only values corresponding to are needed.
따라서 본 발명의 CME 매크로 블록 버퍼는 홀수 행만을 포함하는 현재 프레임 매크로 블록(501)에서 홀수 열의 블록(511)만을 저장하는 제1 CME 매크로 블록 버퍼(510) 및 짝수 열의 블록(513)만을 저장하는 제2 CME 매크로 블록 버퍼(520)를 물리적으로 분리하여 구성한다. 이러한 경우 2화소 추정을 수행할 경우에 실제적으로 필요한 버퍼는 제1 CME 매크로 블록 버퍼(510)일 뿐으로, 한 번의 프로세스에서 읽어 들이는 4 개의 블록값이 모두 실질적으로 움직임 추정에 사용되어 읽기 횟수를 줄일 수 있다.Accordingly, the CME macroblock buffer of the present invention stores only the first
도 6은 본 발명에 따른 CME 참조 영역 버퍼에서 현재 프레임 참조 블록을 저장하는 방법을 나타내는 도면이다.6 is a diagram illustrating a method of storing a current frame reference block in a CME reference region buffer according to the present invention.
도 6을 참조하면, 현재 프레임 참조 블록(600)중 본 발명에서 CME 부에 포함된 CME 참조 영역 버퍼(611)에는 상기 도면의 실선 화살표에 해당하는 프레임 참조 블록(600)의 홀수 행만이 저장된다.Referring to FIG. 6, only odd rows of the
또한 상기 CME 부의 다음 단인 FME 부에 포함된 FME 참조 영역 버퍼(613)에는 상기 CME 참조 영역 버퍼(611)에서 저장되지 않은 프레임 참조 블록(600)의 짝수 행이 저장된다.In addition, an even row of the
이렇게 각 버퍼에 현재 프레임 참조 블록(600)이 번갈아 저장되는 경우, 상기 CME 부에서 수행하는 2화소 추정(621)은 현재 프레임 참조 블록(600)에 포함된 값 중에서 참조 블록에서 가로 및 세로로 홀수 칸에 포함된 값만을 대상으로 추정을 실행하므로 실제적으로 현재 프레임 참조 블록(600)에 포함된 모든 값을 이용하여 추정을 수행하는 것이 아니라 상기 참조 블록에 포함된 값 중 홀수에 포함된 값만을 대상으로 한다. When the current
따라서 CME 참조 영역 버퍼(611)는 CME에 포함된 2 화소 추정만을 수행하기 위한 현재 프레임의 참조 블록 값만을 저장하면 되므로, 홀수 행에 해당하는 값만을 저장하면 된다.Therefore, since the CME
한편, CME 부 다음에 수행되는 FME 부에서는 1/4 화소 단위 추정을 수행하게 되는데, 이때 1/4화소 추정(623)에서부터 현재 프레임의 참조 블록(600)의 모든 값이 이용된다.On the other hand, the FME unit performed after the CME unit performs the unit of 1/4 pixel estimation, wherein all values of the
따라서 FME 참조 영역 버퍼(613)에는 상기 CME 참조 영역 버퍼(611)에 저장되지 않은 참조 블록의 나머지 짝수 행의 값을 저장한다.Therefore, the FME
그런 다음 FME 부에서 1화소 추정(623)을 수행하는 경우 상기 FME 참조 영역 버퍼(613)에 포함된 짝수 행의 값뿐만 아니라 상기 CME 참조 영역 버퍼(611)에 포함된 홀수 행의 값을 모두 이용하게 된다. Then, when performing the one-
이러한 경우 FME 참조 영역 버퍼(613)에 포함되는 참조 프레임의 블록값은 CME 모션 벡터(617)를 기준으로 x 축으로 -4/4 및 y 축으로 -4/4만큼 확장된 값을 가지게 된다. 따라서 상기 CME 참조 영역 버퍼(611)에 포함된 값을 그대로 사용할 수는 없어, FME 제어부(615)를 추가하여, 상기 CME부에서 구해진 CME 모션 벡터(617)값을 상기 CME 참조 영역 버퍼(611)에 적용하여 현재 매크로 블록을 기준으 로 x 축으로 -4 및 y 축으로 -4인 지점에서 12x24 만큼을 읽어오는 FME 제어부(615)를 더 포함한다. In this case, the block value of the reference frame included in the FME
이러한 FME 제어부(615)에 의하여 상기 FME 단계에서 1/4화소 추정(623)을 하는 경우에 현재 프레임 참조 블록의 홀수 행 값 및 짝수 행 값을 모두 구할 수 있다.When the
도 7은 본 발명에 따른 CME 참조 영역 버퍼의 메모리 저장 방법을 나타내는 도면이다.7 is a diagram illustrating a memory storing method of a CME reference region buffer according to the present invention.
도 7을 참조하면, 본 발명에 따른 CME 참조 영역 버퍼(700)는 현재 프레임 참조 영역 버퍼의 홀수 행(701)을 저장한다. 이러한 경우, 일반적인 32 비트 환경에서 동작하고, 상기 각 블록 값은 8비트 크기를 가지므로 한번의 프로세스에서 읽어 들이는 블록은 4 개의 블록이 될 것이다.Referring to FIG. 7, the CME
한편 본 발명의 2화소 추정에서 필요한 값은 홀수 행 및 홀수 열에 해당하는 블록 값이 필요하므로, 실제적으로 한번의 프로세스에서 읽어 들이는 4개의 블록 중 본 도면에서 A로 표시된 홀수 열의 블록 값만이 필요하게 된다.On the other hand, since the value required for the 2-pixel estimation of the present invention requires a block value corresponding to an odd row and an odd column, only a block value of an odd column indicated by A in this drawing is actually required among four blocks read in one process. do.
따라서 본 발명의 CME 참조 영역 버퍼는 홀수 행만을 포함하는 현재 프레임 매크로 블록(701)에서 홀수 열의 블록(711)만을 저장하는 제1 CME 참조 영역 버퍼(710) 및 짝수 열의 블록(713)만을 저장하는 제2 CME 참조 영역 버퍼(720)를 물리적으로 분리하여 구성한다. 이러한 경우 2화소 추정을 수행할 경우에 실제적으로 필요한 버퍼는 제1 CME 참조 영역 버퍼(710)일 뿐으로, 한 번의 프로세스에서 읽어 들이는 4 개의 블록 값이 모두 실질적으로 움직임 추정에 사용되어 읽기 횟수를 줄 일 수 있다.Accordingly, the CME reference region buffer of the present invention stores only the first CME
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다. The present invention is not limited to the above embodiments, and many variations are possible by those skilled in the art within the spirit of the present invention.
도 1은 본 발명이 적용되는 H.264 부호화 장치를 전체적으로 설명하는 구성도.BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram illustrating an overall H.264 encoding apparatus to which the present invention is applied.
도 2는 본 발명에 따른 움직임 추정부의 구조를 설명하는 도면.2 is a diagram for explaining the structure of a motion estimation unit according to the present invention;
도 3은 본 발명이 적용되는 휘도 움직임 추정을 설명하기 위한 도면.3 is a view for explaining luminance motion estimation to which the present invention is applied;
도 4는 본 발명에 따른 CME 매크로 블록 버퍼에서 현재 프레임 매크로 블록을 저장하는 방법을 나타내는 도면.4 is a diagram illustrating a method for storing a current frame macro block in a CME macro block buffer according to the present invention.
도 5는 본 발명에 따른 CME 매크로 블록 버퍼의 메모리 저장 방법을 나타내는 도면.5 is a diagram illustrating a memory storage method of a CME macroblock buffer according to the present invention.
도 6은 본 발명에 따른 CME 참조 영역 버퍼에서 현재 프레임 참조 블록을 저장하는 방법을 나타내는 도면.6 illustrates a method of storing a current frame reference block in a CME reference region buffer according to the present invention.
도 7은 본 발명에 따른 CME 참조 영역 버퍼의 메모리 저장 방법을 나타내는 도면.7 is a diagram illustrating a memory storage method of a CME reference region buffer according to the present invention.
<도면의 주요 부분에 대한 부호의 설명> <Explanation of symbols for the main parts of the drawings>
220 : CME 부 230 : FME 부220: CME part 230: FME part
221 : CME 참조 영역 버퍼 223 : CME 매크로 블록 버퍼221: CME reference area buffer 223: CME macro block buffer
225 : 2 화소 추정부 233 : FME 참조 영역 버퍼225: 2 pixel estimator 233: FME reference region buffer
231 : FME 매크로 블록 버퍼 237 : 1/4 화소 추정부231: FME macroblock buffer 237: 1/4 pixel estimation unit
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070132717A KR100928272B1 (en) | 2007-12-17 | 2007-12-17 | Motion estimation method and apparatus for video coding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070132717A KR100928272B1 (en) | 2007-12-17 | 2007-12-17 | Motion estimation method and apparatus for video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090065239A KR20090065239A (en) | 2009-06-22 |
KR100928272B1 true KR100928272B1 (en) | 2009-11-24 |
Family
ID=40993638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070132717A KR100928272B1 (en) | 2007-12-17 | 2007-12-17 | Motion estimation method and apparatus for video coding |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100928272B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020046059A (en) * | 2000-12-12 | 2002-06-20 | 엘지전자 주식회사 | An optimization of motion estimation method and apparatus |
KR20030051957A (en) * | 2001-12-20 | 2003-06-26 | 엘지전자 주식회사 | Device for encoding and decoding a moving picture using of a wavelet transformation and a motion estimation |
JP2005136893A (en) | 2003-10-31 | 2005-05-26 | Hitachi Ltd | Decoding processing program and decoding processing apparatus |
-
2007
- 2007-12-17 KR KR1020070132717A patent/KR100928272B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020046059A (en) * | 2000-12-12 | 2002-06-20 | 엘지전자 주식회사 | An optimization of motion estimation method and apparatus |
KR20030051957A (en) * | 2001-12-20 | 2003-06-26 | 엘지전자 주식회사 | Device for encoding and decoding a moving picture using of a wavelet transformation and a motion estimation |
JP2005136893A (en) | 2003-10-31 | 2005-05-26 | Hitachi Ltd | Decoding processing program and decoding processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
KR20090065239A (en) | 2009-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4542447B2 (en) | Image encoding / decoding device, encoding / decoding program, and encoding / decoding method | |
US8218638B2 (en) | Method and system for optical flow based motion vector estimation for picture rate up-conversion | |
RU2409005C2 (en) | Method of scalable coding and decoding of video signal | |
EP3026906A1 (en) | Moving image encoding apparatus and operation method thereof | |
US20070098078A1 (en) | Method and apparatus for video encoding/decoding | |
JP2004096757A (en) | Interpolation method and its apparatus for move compensation | |
JP2009089332A (en) | Motion prediction method and motion predictor | |
JP2011151430A (en) | Image processing apparatus, and imaging device with the same | |
JP4774315B2 (en) | Image decoding apparatus and image decoding method | |
US20070133689A1 (en) | Low-cost motion estimation apparatus and method thereof | |
JP4360093B2 (en) | Image processing apparatus and encoding apparatus and methods thereof | |
US8098946B2 (en) | Apparatus and method for image encoding and decoding using prediction | |
KR100926752B1 (en) | Fine Motion Estimation Method and Apparatus for Video Coding | |
JP4318019B2 (en) | Image processing apparatus and method, recording medium, and program | |
US20130156114A1 (en) | Data Movement Reduction In Video Compression Systems | |
KR101691380B1 (en) | Dct based subpixel accuracy motion estimation utilizing shifting matrix | |
KR100928272B1 (en) | Motion estimation method and apparatus for video coding | |
US20130170565A1 (en) | Motion Estimation Complexity Reduction | |
JP6735370B2 (en) | Decryption method | |
JP6647432B2 (en) | Decryption method | |
JP2009278473A (en) | Image processing device, imaging apparatus mounting the same, and image reproducing device | |
KR100248651B1 (en) | A motion compensator | |
JP5310620B2 (en) | Moving picture coding apparatus, moving picture coding method, moving picture coding computer program, and video transmission apparatus | |
JP5380594B2 (en) | Image decoding method | |
JP5868909B2 (en) | Decryption method |
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: 20121031 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20131024 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20141027 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |