KR100904382B1 - Motion compensation method, motion compensation circuit and video decoder having the method of data reuse between heterogeneous partitions - Google Patents

Motion compensation method, motion compensation circuit and video decoder having the method of data reuse between heterogeneous partitions Download PDF

Info

Publication number
KR100904382B1
KR100904382B1 KR1020070084719A KR20070084719A KR100904382B1 KR 100904382 B1 KR100904382 B1 KR 100904382B1 KR 1020070084719 A KR1020070084719 A KR 1020070084719A KR 20070084719 A KR20070084719 A KR 20070084719A KR 100904382 B1 KR100904382 B1 KR 100904382B1
Authority
KR
South Korea
Prior art keywords
data
reuse
operation block
motion compensation
unit operation
Prior art date
Application number
KR1020070084719A
Other languages
Korean (ko)
Other versions
KR20090020184A (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 KR1020070084719A priority Critical patent/KR100904382B1/en
Publication of KR20090020184A publication Critical patent/KR20090020184A/en
Application granted granted Critical
Publication of KR100904382B1 publication Critical patent/KR100904382B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

움직임 보상 회로는 내부버퍼, 데이터 재사용 판단부, 데이터 추출부 및 움직임 보상부를 포함한다. 내부버퍼는 이전 단위연산블록의 데이터를 저장 및 출력한다. 데이터 재사용 판단부는 서로 인접한 이종 파티션에 위치하는 이전 단위연산 블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정한다. 데이터 추출부는 데이터 재사용 판단부가 데이터를 재사용하도록 결정할 때, 계산된 움직임 벡터 차이값에 따라 이전 단위연산블록의 데이터 중 일부를 출력한다. 움직임 보상부는 데이터 추출부로부터 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보상을 수행한다. 따라서 외부 메모리의 접근 횟수를 줄여 움직임 보상 시간 및 전력 소모를 감소시킬 수 있다.The motion compensation circuit includes an internal buffer, a data reuse determiner, a data extractor, and a motion compensator. The internal buffer stores and outputs the data of the previous unit operation block. The data reuse determination unit determines whether to reuse data by calculating a motion vector difference value between a previous unit operation block and a current unit operation block located in heterogeneous partitions adjacent to each other. When the data reuse determiner determines to reuse the data, the data extractor outputs a part of the data of the previous unit calculation block according to the calculated motion vector difference value. The motion compensation unit receives some of the data of the previous unit calculation block from the data extractor to perform motion compensation. Therefore, the number of accesses to the external memory can be reduced to reduce the motion compensation time and power consumption.

움직임 보상, 데이터 재사용, 비디오 디코더 Motion compensation, data reuse, video decoder

Description

이종 파티션 간의 데이터 재사용을 위한 움직임 보상 방법, 움직임 보상 회로 및 이를 포함하는 비디오 디코더 {MOTION COMPENSATION METHOD, MOTION COMPENSATION CIRCUIT AND VIDEO DECODER HAVING THE METHOD OF DATA REUSE BETWEEN HETEROGENEOUS PARTITIONS}MOTION COMPENSATION METHOD, MOTION COMPENSATION CIRCUIT AND VIDEO DECODER HAVING THE METHOD OF DATA REUSE BETWEEN HETEROGENEOUS PARTITIONS}

본 발명은 비디오 코덱에 관한 것이다. 보다 상세하게는, 움직임 보상 시간 및 전력 소모를 감소시키기 위한 움직임 보상 방법, 움직임 보상 회로 및 이를 포함하는 비디오 디코더에 관한 것이다.The present invention relates to a video codec. More particularly, the present invention relates to a motion compensation method for reducing motion compensation time and power consumption, a motion compensation circuit, and a video decoder including the same.

정보통신 기술이 발달함에 따라 문자, 음성뿐만 아니라 화상을 주고 받는 화상통신이 증가하고 있다. 이런 화상통신에 필수적인 것이 압축기법인데, 그 중에서 H.264는 매우 높은 데이터 압축률을 가지는 비디오 코덱의 표준이다. H.264는 국제 통신 위원회(ITU-T) 소속의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 국제 표준화 기구(ISO) 소속의 동화상 전문가 그룹(Moving Picture Experts Groups, MPEG)이 공동으로 조인트 비디오 팀(Joint Video Team, JVT)을 구성하고 표준화하여 나온 것이다.As information and communication technology develops, video communication for transmitting and receiving images as well as text and voice is increasing. Compressor method is essential for such video communication. Among them, H.264 is a standard of video codec with very high data compression rate. H.264 is a joint joint between the Video Coding Experts Group (VCEG) of the International Telecommunications Commission (ITU-T) and the Moving Picture Experts Groups (MPEG) of the International Organization for Standardization (ISO). It came from the creation and standardization of the Joint Video Team (JVT).

일반적으로 H.264 표준을 사용하는 비디오 코덱의 영상들은 16x16 매크로블 록 단위로 구성되어 있다. 매크로블록은 한 개 이상의 파티션들을 가지는데, 16x16블록은 1개의 파티션, 16x8블록 및 8x16블록은 2개의 파티션, 8x8블록은 4개의 파티션을 가질 수 있다. 대부분의 비디오 코덱 영상들이 4x4블록 단위로 움직임 보상이 이루어지고, 4x4 블록사이즈보다 더 큰 파티션들은 4x4 블록단위로 쪼개서 여러 번에 걸쳐 움직임 보상이 이루어진다. 이 때, 하나의 파티션 안에 위치하는 4x4 블록들을 '동종 파티션에 존재한다'라고 하고, 서로 다른 파티션 안에 위치하는 4x4 블록들을 '이종 파티션에 존재한다'라고 한다.In general, video codec video using the H.264 standard is composed of 16x16 macroblock units. A macroblock can have one or more partitions, a 16x16 block can have one partition, a 16x8 block and an 8x16 block can have two partitions, and an 8x8 block can have four partitions. Most video codec images are motion compensated in units of 4x4 blocks, and partitions larger than 4x4 block sizes are divided into 4x4 blocks and motion compensation is performed several times. In this case, 4x4 blocks located in one partition are referred to as 'existing in the same partition', and 4x4 blocks located in different partitions are referred to as 'existing in the heterogeneous partition'.

H.264 역시 기존의 다른 표준안들(MPEG2, H.261, H.263 등)과 마찬가지로 블록기반의 움직임 추정 및 보상, 이산 여현 변환(Discrete Cosine Transform, DCT), 양자화 및 엔트로피 등을 사용하는데, 이 중에서 블록기반의 움직임 보상은 블록내에 있는 하나의 픽셀 데이터를 움직임 보상하기 위해 수많은 픽셀 데이터를 읽어와야 하는 경우도 있다. 이 때문에 많은 횟수의 외부 메모리 접근이 발생하게 되고 이는 전력 소모를 증가시키는 요인이 된다.H.264 also uses block-based motion estimation and compensation, Discrete Cosine Transform (DCT), quantization and entropy, like other existing standards (MPEG2, H.261, H.263, etc.). Among these, block-based motion compensation may require reading a large number of pixel data in order to compensate for motion of one pixel data in a block. This results in a large number of external memory accesses, which increases power consumption.

종래에는 동종 파티션에 위치하는 단위연산블록내의 데이터 중 일부를 캐쉬 메모리 혹은 버퍼에 저장해두어 데이터 재사용을 가능하게 함으로서 외부 메모리 접근 횟수를 어느 정도 줄일 수 있었다.In the related art, some of the data in a unit operation block located in a homogeneous partition are stored in a cache memory or a buffer to enable data reuse, thereby reducing the number of external memory accesses to some extent.

하지만 최근의 화상 통신이 핸드폰 및 PDA 등의 모바일 환경에서 사용되고 있는 추세이기 때문에 이를 위해서 가장 필요한 기술이 저전력 설계라고 할 수 있다. 따라서 비디오 코덱 내의 움직임 보상 회로를 저전력으로 설계하기 위해서 동종 파티션뿐만 아니라 이종 파티션에 위치하는 단위연산블록간에도 데이터 재사용 을 가능하게 하여 픽셀 데이터를 메인 메모리로부터 읽어오는 횟수를 더욱 줄이는 기술이 요구된다.However, since the latest video communication is being used in mobile environments such as cell phones and PDAs, the most necessary technology for this purpose is low power design. Therefore, in order to design a motion compensation circuit in a video codec with low power, a technique for reducing the number of times of reading pixel data from the main memory by enabling data reuse between unit blocks located in a heterogeneous partition as well as a homogeneous partition is required.

상기와 같은 문제점을 해결하기 위하여, 본 발명은 외부 메모리의 접근 횟수를 줄여 움직임 보상 시간 및 전력 소모를 감소시킬 수 움직임 보상 회로를 제공한다.In order to solve the above problems, the present invention provides a motion compensation circuit that can reduce the number of accesses of the external memory to reduce the motion compensation time and power consumption.

또한본 발명은 움직임 보상 시간 및 전력 소모를 감소시키기 위하여 상기 움직임 보상회로를 포함하는 비디오 디코더를 제공한다.The present invention also provides a video decoder including the motion compensation circuit to reduce motion compensation time and power consumption.

또한 본 발명은 외부 메모리의 접근 횟수를 줄여 움직임 보상 시간 및 전력 소모를 감소시키기 위한 움직임 보상 방법을 제공한다.In addition, the present invention provides a motion compensation method for reducing the motion compensation time and power consumption by reducing the number of accesses of the external memory.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 움직임 보상 회로는 내부버퍼, 데이터 재사용 판단부, 데이터 추출부 및 움직임 보상부를 포함한다.In order to achieve the above object, the motion compensation circuit according to an embodiment of the present invention includes an internal buffer, a data reuse determination unit, a data extractor and a motion compensation unit.

상기 내부버퍼는 이전 단위연산블록의 일부 데이터를 저장 및 출력한다. 상기 데이터 재사용 판단부는 서로 인접한 이종 파티션에 위치하는 상기 이전 단위연산 블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정한다. 상기 데이터 추출부는 상기 데이터 재사용 판단부가 상기 데이터를 재사용하도록 결정할 때, 상기 계산된 움직임 벡터 차이값에 따라 상기 이전 단위연산블록의 저장된 데이터 중 일부를 출력한다. 상기 움직임 보상부는 상기 데이터 추출부로부터 상기 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보 상을 수행한다.The internal buffer stores and outputs some data of the previous unit operation block. The data reuse determination unit determines whether to reuse data by calculating a motion vector difference value between the previous unit operation block and the current unit operation block located in heterogeneous partitions adjacent to each other. When the data reuse determining unit determines to reuse the data, the data extracting unit outputs a part of the stored data of the previous unit calculation block according to the calculated motion vector difference value. The motion compensation unit receives a part of data of the previous unit operation block from the data extractor and performs motion compensation.

상기데이터 재사용 판단부는 상기 움직임 벡터 차이값이 기준값 이내일 때 상기 데이터를 재사용하도록 결정할 수 있다.The data reuse determination unit may determine to reuse the data when the motion vector difference value is within a reference value.

상기 움직임 보상 회로는 외부 메모리로 접속하기 위한 주소를 생성하는 주소 생성부를 더 포함할 수 있다.The motion compensation circuit may further include an address generator configured to generate an address for connecting to an external memory.

상기 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데이터로 구성될 수 있다.The heterogeneous partitions adjacent to each other may be composed of luminance data or color difference data.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 비디오 디코더는 외부 메모리, 움직임 보상 회로 및 메모리 인터페이스부를 구비한다.In order to achieve the above object, a video decoder according to an embodiment of the present invention includes an external memory, a motion compensation circuit, and a memory interface.

상기 외부 메모리는 단위연산블록의 데이터를 저장한다. 상기 움직임 보상 회로는 데이터를 재사용하도록 한다. 상기 메모리 인터페이스부는 상기 외부 메모리 및 상기 움직임 보상 회로간에 인터페이스를 한다.The external memory stores data of a unit operation block. The motion compensation circuitry allows reuse of data. The memory interface unit interfaces between the external memory and the motion compensation circuit.

상기 움직임 보상 회로는 내부버퍼, 데이터 재사용 판단부, 데이터 추출부 및 움직임 보상부를 포함한다.The motion compensation circuit includes an internal buffer, a data reuse determiner, a data extractor, and a motion compensator.

상기 내부버퍼는 이전 단위연산블록의 일부 데이터를 저장한다. 상기 데이터 재사용 판단부는 서로 인접한 이종 파티션에 위치하는 상기 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정한다. 상기 데이터 추출부는 상기 데이터 재사용 판단부가 상기 데이터를 재사용하도록 결정할 때, 상기 계산된 움직임 벡터 차이값에 따라 상기 저장된 이전 단위연산블록의 데이터 중 일부를 출력한다. 상기 움직임 보상부는 상기 데이터 추출부로 부터 상기 저장된 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보상을 수행한다.The internal buffer stores some data of the previous unit operation block. The data reuse determination unit determines whether to reuse data by calculating a motion vector difference value between the previous unit operation block and the current unit operation block located in heterogeneous partitions adjacent to each other. When the data reuse determining unit determines to reuse the data, the data extracting unit outputs a part of data of the stored previous unit calculation block according to the calculated motion vector difference value. The motion compensation unit receives a part of data of the stored previous unit operation block from the data extracting unit to perform motion compensation.

상기 데이터 재사용 판단부는 상기 움직임 벡터 차이값이 기준값 이내일 때 데이터를 재사용 하도록 결정할 수 있다.The data reuse determination unit may determine to reuse data when the motion vector difference value is within a reference value.

상기 움직임 보상 회로는 상기 외부 메모리로 접속하기 위한 주소를 생성하는 주소 생성부를 더 포함할 수 있다.The motion compensation circuit may further include an address generator configured to generate an address for accessing the external memory.

상기 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데이터로 구성될 수 있다.The heterogeneous partitions adjacent to each other may be composed of luminance data or color difference data.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 움직임 보상 방법은 이전 단위연산블록의 데이터를 저장하는 단계, 서로 인접한 이종 파티션에 위치하는 상기 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정하는 단계, 상기 데이터를 재사용하도록 결정할 때 상기 계산된 움직임 벡터 차이값에 따라 상기 이전 단위연산블록의 데이터 중 일부를 출력하는 단계 및 상기 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보상을 수행하는 단계를 포함한다.In order to achieve the above object, the motion compensation method according to an embodiment of the present invention comprises the steps of storing the data of the previous unit operation block, between the previous unit operation block located in the heterogeneous partition adjacent to each other and the current unit operation block Determining whether to reuse the data by calculating a motion vector difference value, outputting a part of data of the previous unit calculation block according to the calculated motion vector difference value when determining to reuse the data, and the previous unit calculation block And performing motion compensation by receiving some of the data of the.

상기 움직임 벡터 차이값이 기준값 이내일 때 상기 데이터를 재사용하도록 결정할 수 있다.When the motion vector difference value is within a reference value, it may be determined to reuse the data.

상기 움직임 보상 방법은 외부 메모리로 접속하기 위한 주소를 생성하는 단계를 더 포함할 수 있다.The motion compensation method may further include generating an address for accessing an external memory.

상기 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데이터로 구성될 수 있다.The heterogeneous partitions adjacent to each other may be composed of luminance data or color difference data.

본 발명의 일 실시예에 따른 움직임 보상 방법, 움직임 보상 회로 및 이를 포함한 비디오 디코더는 데이터를 재사용하도록 하여 외부 메모리로의 접근 횟수를 줄일 수 있다. 따라서 움직임 보상 시간 및 전력 소모를 감소시킬 수 있다.A motion compensation method, a motion compensation circuit, and a video decoder including the same according to an embodiment of the present invention can reduce the number of accesses to an external memory by reusing data. Therefore, motion compensation time and power consumption can be reduced.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. With respect to the embodiments of the present invention disclosed in the text, specific structural to functional descriptions are merely illustrated for the purpose of describing embodiments of the present invention, embodiments of the present invention may be implemented in various forms and It should not be construed as limited to the embodiments described in. As the inventive concept allows for various changes and numerous modifications, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to the specific disclosed form, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between. Other expressions describing the relationship between components, such as "between" and "immediately between," or "neighboring to," and "directly neighboring to" should be interpreted as well. The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof that is described, and that one or more other features or numbers are present. It should be understood that it does not exclude in advance the possibility of the presence or addition of steps, actions, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. .

이하, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시예들을 상세히 설 명한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도1은 본 발명의 일 실시예에 따른 움직임 보상 회로를 나타내는 블록도이다.1 is a block diagram illustrating a motion compensation circuit according to an exemplary embodiment of the present invention.

도1을 참조하면, 움직임 보상 회로(100)는 내부버퍼(110), 데이터 재사용 판단부(130), 데이터 추출부(150) 및 움직임 보상부(170)를 포함한다.Referring to FIG. 1, the motion compensation circuit 100 includes an internal buffer 110, a data reuse determiner 130, a data extractor 150, and a motion compensator 170.

내부버퍼(110)는 이전 단위연산블록의 데이터 중 재사용 가능성이 있는 데이터(PB)를 저장 및 출력한다. 데이터 재사용 판단부(130)는 서로 인접한 이종 파티션에 위치하는 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터(MV)를 인가받아, 움직임 벡터 차이값(MVG)을 계산하여 데이터 재사용 여부를 결정한다. 데이터 재사용 판단부(130)는 계산된 움직임 벡터 차이값(MVG)이 기준값 이내일 때 데이터를 재사용하도록 결정한다. 예를 들어, 이전 단위연산블록과 현대 단위연산블록간에 움직임 벡터 차이값(MVG)이 Manhattan distance로 4 pixel이내일 때 데이터를 재사용하도록 결정할 수 있다. 여기서 Manhattan distance란 직각거리의 일종이다. xy좌표계를 예로 들어 설명하면, (x,y)와 (a,b)의 Manhattan distance는 |x-a|+|y-b|이다. 데이터 재사용 판단부(130)는 움직임 벡터 차이값(MVG)이 기준값 이내일 때 재사용신호(RY)를 출력한다. 데이터 재사용 판단부(130)가 데이터를 재사용하도록 결정할 때, 데이터 추출부(150)는 재사용하는 데이터(PBA)를 움직임 보상부(170)에 전달하기 위해 내부버퍼(110)로부터 이전 단위연산블록의 데이터 중 재사용 가능성이 있는 데이터(PB)를 인가받아 계산된 움직임 벡터 차이값(MVG)에 따라 이전 단위연산블록의 데이터 중 재사용 가능성이 있는 데이터(PB) 중에서 일부 를 추출한 재사용하는 데이터(PBA)를 움직임 보상부(170)로 출력한다. 움직임 보상부(170)는 데이터 재사용 판단부(130)로부터 재사용신호(RY)가 인가되면, 내부버퍼(110)의 재사용 가능성이 있는 데이터(PB) 중 재사용하는 데이터(PBA)를 인가받고, 재사용이 가능하지 않은 데이터에 대해서는 외부 메모리에 접근하여 단위연산블록의 데이터(UB)를 인가받아 움직임 보상을 수행하여 보상된 영상신호(CVS)를 출력한다.The internal buffer 110 stores and outputs data PB that can be reused among data of the previous unit operation block. The data reuse determination unit 130 receives a motion vector (MV) between a previous unit calculation block and a current unit calculation block located in heterogeneous partitions adjacent to each other, and calculates a motion vector difference value (MVG) to determine whether to reuse the data. . The data reuse determination unit 130 determines to reuse the data when the calculated motion vector difference value MVG is within a reference value. For example, it may be determined to reuse data when the motion vector difference value (MVG) between the previous operation block and the modern operation block is within 4 pixels of the Manhattan distance. Manhattan distance here is a kind of right-angle distance. Taking the xy coordinate system as an example, Manhattan distances of (x, y) and (a, b) are | x-a | + | y-b |. The data reuse determination unit 130 outputs a reuse signal RY when the motion vector difference value MVG is within a reference value. When the data reuse determination unit 130 determines to reuse the data, the data extraction unit 150 transfers the reused data PBA to the motion compensator 170 from the inner buffer 110. Based on the motion vector difference value (MVG) calculated by receiving the reusable data PB among the data, the reusable data PBA obtained by extracting a part of the reusable data PB from the data of the previous unit operation block is extracted. Output to the motion compensation unit 170. When the reuse signal RY is applied from the data reuse determination unit 130, the motion compensator 170 receives data PBA to be reused among data PBs that may be reused by the internal buffer 110, and reuses the reuse signal RY. For the data that is not possible, the external memory is accessed to receive the data UB of the unit operation block to perform motion compensation to output the compensated video signal CVS.

도2a, 도2b 및 도2c는 본 발명의 일 실시예에 따른 데이터 추출부의 동작을 설명하기 위한 도면이다.2A, 2B and 2C are diagrams for describing an operation of a data extracting unit according to an embodiment of the present invention.

도2a를 참조하면, 이전 4x4 블록(1)에 대한 이전단위연산블록(I1)은 이전 4x4블록(1)으로부터 우측으로 3블록, 좌측으로 2블록, 상측으로 2블록 및 하측으로 3블록만큼을 포함하는 영역이고, 현재 4x4 블록(2)에 대한 현재단위연산블록(I2) 또한 현재 4x4블록(2)으로부터 우측으로 3블록, 좌측으로 2블록, 상측으로 2블록 및 하측으로 3블록만큼을 포함하는 영역이다. 이전 4x4블록(1)에 대한 이전 단위연산블록(I1) 데이터 중 A,B,C,D 및 E라인에 해당하는 데이터가 각각 내부버퍼(110)의 a,b,c,d 및e라인에 저장되어 있다. 이 때 이전 4x4블록(1) 및 현재 4x4블록(2)간에 움직임 벡터 차이가 (0,0)이면, 이전 4x4블록(1)에 대한 이전 단위연산블록(I1) 및 현재 4x4블록(2)에 대한 현재 단위연산블록(I2)간에 움직임 벡터 차이도 (0,0)이므로, 이전 단위연산블록(I1) 및 현재 단위연산블록(I2)간에 서로 겹치는 영역(I12)이 A,B,C,D 및E라인이 되어 데이터 추출부(150)는 내부버퍼(110)에 저장되어 있는 a,b,c,d 및 e라인에 해당하는 데이터 값을 추출하여 재사용 하는 데이 터(a', b', c', d', e')를 순차적으로 (즉, a',b',c',d',e' 순서로) 움직임 보상부(170)로 출력한다.Referring to FIG. 2A, the previous unit operation block I1 for the previous 4x4 block 1 has three blocks to the right, two blocks to the left, two blocks to the upper side, and three blocks to the lower side from the previous 4x4 block 1. The current unit calculation block I2 for the current 4x4 block 2 also includes 3 blocks to the right, 2 blocks to the left, 2 blocks to the upper side, and 3 blocks to the lower side from the current 4x4 block 2. It is an area. The data corresponding to the A, B, C, D, and E lines of the previous unit operation block (I1) data for the previous 4x4 block (1) are stored in the a, b, c, d, and e lines of the internal buffer 110, respectively. It is stored. At this time, if the motion vector difference between the previous 4x4 block (1) and the current 4x4 block (2) is (0,0), the previous unit calculation block (I1) for the previous 4x4 block (1) and the current 4x4 block (2) Since the motion vector difference between the current unit calculation block I2 is about (0,0), the area I12 overlapping each other between the previous unit calculation block I1 and the current unit calculation block I2 is A, B, C, and D. And the data extracting unit 150 becomes an E line and extracts data values corresponding to a, b, c, d and e lines stored in the internal buffer 110 and reuses the data (a ', b', c ', d', and e ') are sequentially output (ie, in order of a', b ', c', d ', e') to the motion compensation unit 170.

도2b를 참조하면, 도2a와 마찬가지로 이전 4x4 블록(1)에 대한 이전단위연산블록(I1)은 이전 4x4블록(1)으로부터 우측으로 3블록, 좌측으로 2블록, 상측으로2블록 및 하측으로 3블록만큼을 포함하는 영역이고, 현재 4x4 블록(2)에 대한 현재단위연산블록(I2) 또한 현재 4x4블록(2)으로부터 우측으로 3블록, 좌측으로 2블록, 상측으로 2블록 및 하측으로 3블록만큼을 포함하는 영역이다. 이전4x4블록(1)에 대한 이전 단위연산블록(I1) 데이터 중 A,B,C,D 및 E라인에 해당하는 데이터가 각각 내부버퍼(110)의 a,b,c,d 및 e라인에 저장되어 있다. 이 때 이전 4x4블록(1) 및 현재 4x4블록(2)간에 움직임 벡터 차이가 (1,0)이면, 이전 4x4블록(1)에 대한 이전 단위연산블록(I1) 및 현재 4x4블록(2)에 대한 현재 단위연산블록(I2)간에 움직임 벡터 차이도 (1,0)이므로, 이전 단위연산블록(I1) 및 현재 단위연산블록(I2)간에 서로 겹치는 영역(I12)이 B,C,D 및E라인이 되어 데이터 추출부(150)는 내부버퍼(110)에 저장되어 있는 b,c,d및 e라인에 해당하는 데이터 값을 추출하여 재사용하는 데이터(b', c', d', e')를 순차적으로 (즉, b',c',d',e' 순서로) 움직임 보상부(170)로 출력한다. 이 때, 움직임 보상부(170)는 A라인에 해당하는 데이터 값을 외부 메모리로부터 읽어온다.Referring to FIG. 2B, as in FIG. 2A, the previous unit operation block I1 for the previous 4x4 block 1 is 3 blocks to the right, 2 blocks to the left, 2 blocks to the top and 2 blocks from the previous 4x4 block (1). It is an area including as many as three blocks, and the current unit operation block I2 for the current 4x4 block 2 is also 3 blocks to the right, 2 blocks to the left, 2 blocks to the top, and 3 to the bottom from the current 4x4 block 2. This area contains only blocks. The data corresponding to the A, B, C, D, and E lines of the previous unit operation block (I1) data for the previous 4x4 block (1) are stored in the a, b, c, d, and e lines of the internal buffer 110, respectively. It is stored. At this time, if the motion vector difference between the previous 4x4 block (1) and the current 4x4 block (2) is (1,0), the previous unit calculation block (I1) and the current 4x4 block (2) for the previous 4x4 block (1) Since the motion vector difference between the current unit calculation block I2 is about (1,0), the regions I12 overlapping each other between the previous unit calculation block I1 and the current unit calculation block I2 are B, C, D, and E. The data extracting unit 150 becomes a line and extracts and reuses data values corresponding to the b, c, d and e lines stored in the internal buffer 110 (b ', c', d ', e'). ) Are sequentially output (ie, in the order of b ', c', d ', e') to the motion compensation unit 170. At this time, the motion compensation unit 170 reads the data value corresponding to the A line from the external memory.

도2c를 참조하면, 도2a 및 도2b와 마찬가지로 이전 4x4 블록(1)에 대한 이전단위연산블록(I1)은 이전 4x4블록(1)으로부터 우측으로 3블록, 좌측으로 2블록, 상측으로2블록 및 하측으로 3블록만큼을 포함하는 영역이고, 현재 4x4 블록(2)에 대 한 현재단위연산블록(I2) 또한 현재 4x4블록(2)으로부터 우측으로 3블록, 좌측으로 2블록, 상측으로2블록 및 하측으로 3블록만큼을 포함하는 영역이다. 이전 4x4블록(1)에 대한 이전 단위연산블록(I1) 데이터 중 A,B,C,D 및 E라인에 해당하는 데이터가 각각 내부버퍼(110)의 a,b,c,d 및 e라인에 저장되어 있다. 이 때 이전 4x4블록(1) 및 현재 4x4블록(2)간에 움직임 벡터 차이가 (0,1)이면, 이전 4x4블록(1)에 대한 이전 단위연산블록(I1) 및 현재 4x4블록(2)에 대한 현재 단위연산블록(I2)간에 움직임 벡터 차이도 (0,1)이므로, 이전 단위연산블록(I1) 및 현재 단위연산블록(I2)간에 서로 겹치는 영역(I12)이 A,B,C,D 및E라인에서 각 라인의 최상위 블록만 제외한 영역이 되어 데이터 추출부(150)는 내부버퍼(110)에 저장되어 있는 a,b,c,d및 e라인에 해당하는 데이터 중에서 각 라인의 최상위 블록에 저장된 데이터를 제외하고 추출하여 재사용하는 데이터(a' b', c', d', e')를 순차적으로 (즉, a',b',c',d',e' 순서로) 움직임 보상부(170)로 출력한다. 이 때, 움직임 보상부(170)는 A,B,C,D 및E라인에서 각 라인의 최상위 블록에 해당하는 데이터 값을 외부 메모리로부터 읽어온다.Referring to FIG. 2C, as in FIGS. 2A and 2B, the previous unit operation block I1 for the previous 4x4 block 1 is 3 blocks to the right, 2 blocks to the left, and 2 blocks to the top from the previous 4x4 block 1. And 3 blocks downward, and the current unit calculation block I2 for the current 4x4 block (2) is also 3 blocks to the right, 2 blocks to the left, and 2 blocks to the top from the current 4x4 block (2). And an area including as many as three blocks downward. The data corresponding to the A, B, C, D, and E lines of the previous unit operation block (I1) data for the previous 4x4 block (1) are stored in the a, b, c, d, and e lines of the internal buffer 110, respectively. It is stored. At this time, if the motion vector difference between the previous 4x4 block (1) and the current 4x4 block (2) is (0, 1), the previous unit calculation block (I1) and the current 4x4 block (2) for the previous 4x4 block (1) Since the motion vector difference between the current unit blocks I2 is about (0,1), the regions I12 overlapping each other between the previous unit blocks I1 and the current unit blocks I2 are A, B, C, D. And the E-line is an area excluding only the top block of each line, so that the data extracting unit 150 is the top block of each line among the data corresponding to the a, b, c, d, and e lines stored in the internal buffer 110. Move data (a 'b', c ', d', e ') that are extracted and reused except for data stored in sequence (ie, in order of a', b ', c', d ', e') Output to the compensator 170. At this time, the motion compensator 170 reads data values corresponding to the uppermost block of each line from the external memory in the A, B, C, D and E lines.

따라서, 데이터 추출부(150)는 움직임 벡터 차이값(MVG)에 따라 내부버퍼(110)에 저장된 이전단위연산블록의 데이터(PB) 중 일부를 출력할 수 있다.Therefore, the data extractor 150 may output a part of the data PB of the previous unit calculation block stored in the internal buffer 110 according to the motion vector difference value MVG.

움직임 보상 회로(100)는 재사용이 불가능한 부분의 데이터를 가져올 때 및 움직임 벡터 차이값(MVG)이 기준값 이상일 때 데이터 재사용 판단부(130)로부터 주소 생성 명령(AGC)을 인가받아 외부 메모리로부터 단위연산블록의 데이터(UB)를 가져오기 위한 주소(ADD)를 생성하는 주소 생성부(190)를 더 포함할 수 있다. 이 경우, 움직임 보상부(170)는 재사용이 가능하지 않은 데이터에 대해 외부 메모리에 접근하여 단위연산블록의 데이터(UB)를 인가받고, 움직임 보상을 수행하여 보상된 영상신호(CVS)를 출력한다. 그 후 재사용 가능성이 있는 단위연산블록의 데이터(UBA)를 다음 움직임 보상 수행시 사용할 수 있기 때문에 내부버퍼(110)에 저장한다.The motion compensation circuit 100 receives an address generation command AGC from the data reuse determination unit 130 when the data of the non-reusable part is obtained and the motion vector difference value MVG is equal to or greater than a reference value, and then performs a unit operation from an external memory. The apparatus may further include an address generator 190 generating an address ADD for importing the data UB of the block. In this case, the motion compensator 170 accesses an external memory for data that is not reusable, receives the data UB of a unit operation block, and performs motion compensation to output the compensated video signal CVS. . Thereafter, the data UBA of the unit operation block, which may be reused, may be used when performing the next motion compensation, and then stored in the internal buffer 110.

또한 움직임 보상 회로(100)에 사용되는 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데이터로 구성될 수 있다.In addition, heterogeneous partitions adjacent to each other used in the motion compensation circuit 100 may be configured of luminance data or color difference data.

도3은 본 발명의 일 실시예에 따른 비디오 디코더를 나타내는 블록도이다.3 is a block diagram illustrating a video decoder according to an embodiment of the present invention.

도3을 참조하면, 비디오 디코더(300)는 외부 메모리(310), 메모리 인터페이스부(320) 및 움직임 보상 회로(330)를 구비한다.Referring to FIG. 3, the video decoder 300 includes an external memory 310, a memory interface 320, and a motion compensation circuit 330.

외부 메모리(310)는 단위연산블록의 데이터를 저장한다. 메모리 인터페이스부(320)는 외부 메모리(310) 및 움직임 보상 회로(330)간에 인터페이스를 하기 위한 인터페이스 신호(IS)를 발생하여 외부 메모리(310)와 인터페이스 신호(IS)를 주고 받는다. 움직임 보상 회로(330)는 내부버퍼(331), 데이터 재사용 판단부(333), 데이터 추출부(335) 및 움직임 보상부(337)를 포함하여 데이터를 재사용하도록 한다.The external memory 310 stores data of a unit operation block. The memory interface unit 320 generates an interface signal IS for interfacing between the external memory 310 and the motion compensation circuit 330 to exchange the interface signal IS with the external memory 310. The motion compensation circuit 330 includes an internal buffer 331, a data reuse determiner 333, a data extractor 335, and a motion compensator 337 to reuse data.

내부버퍼(331)는 이전 단위연산블록의 데이터 중 재사용 가능성이 있는 데이터(PB)를 저장 및 출력한다. 데이터 재사용 판단부(333)는 서로 인접한 이종 파티션에 위치하는 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터(MV)를 인가받아, 움직임 벡터 차이값(MVG)을 계산하여 데이터 재사용 여부를 결정한다. 데 이터 재사용 판단부(333)는 움직임 벡터 차이값(MVG)이 기준값 이내일 때 데이터를 재사용하도록 결정한다. 예를 들어, 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터 차이값(MVG)이 Manhattan distance로 4 pixel이내일 때 데이터를 재사용하도록 결정할 수 있다. 데이터 재사용 판단부(333)는 움직임 벡터 차이값이 기준값 이내일 때 재사용신호(RY)를 출력한다. 데이터 재사용 판단부(333)가 데이터를 재사용하도록 결정할 때, 데이터 추출부(335)는 재사용하는 데이터(PBA)를 움직임 보상부(337)에 전달하기 위해 내부버퍼(331)로부터 저장된 이전 단위연산블록의 데이터 중 재사용 가능성이 있는 데이터(PB)를 인가받아 움직임 벡터 차이값(MVG)에 따라 저장된 재사용 가능성이 있는 데이터(PB)중에서 일부를 추출한 재사용하는 데이터(PBA)를 움직임 보상부(337)로 출력한다. 움직임 보상부(337)는 데이터 재사용 판단부(333)로부터 재사용신호(RY)가 인가되면, 재사용하는 데이터(PBA)를 인가받고, 재사용이 가능하지 않은 데이터에 대해서는 외부 메모리에 접근하여 단위연산블록의 데이터(UB)를 인가받아 움직임 보상을 수행하여 보상된 영상신호(CVS)를 출력한다.The internal buffer 331 stores and outputs data PB that can be reused among data of the previous unit operation block. The data reuse determination unit 333 receives a motion vector MV between a previous unit operation block and a current unit operation block located in heterogeneous partitions adjacent to each other, and calculates a motion vector difference value MVG to determine whether to reuse the data. . The data reuse determination unit 333 determines to reuse the data when the motion vector difference value MVG is within the reference value. For example, when the motion vector difference value MVG between the previous unit operation block and the current unit operation block is within 4 pixels as the Manhattan distance, it may be determined to reuse the data. The data reuse determination unit 333 outputs a reuse signal RY when the motion vector difference value is within a reference value. When the data reuse determination unit 333 determines to reuse the data, the data extraction unit 335 transfers the previous unit operation block stored from the internal buffer 331 to transfer the reused data PBA to the motion compensation unit 337. The motion compensator 337 receives reusable data PBA from among the reusable data PB stored in accordance with the motion vector difference value MVG by receiving the reusable data PB from among the data. Output When the reuse signal RY is applied from the data reuse determination unit 333, the motion compensator 337 receives the data PBA to be reused, and accesses an external memory for data that is not reusable, and then executes a unit operation block. The data UB is applied to perform motion compensation to output the compensated video signal CVS.

움직임 보상 회로(330)는 재사용이 불가능한 부분의 데이터를 가져올 때 및 움직임 벡터 차이값(MVG)이 기준값 이상일 때 데이터 재사용 판단부(333)로부터 주소 생성 명령(AGC)을 인가받아 외부 메모리(310)로부터 단위연산블록의 데이터(UB)를 가져오기 위한 주소(ADD)를 생성하는 주소 생성부(339)를 더 포함할 수 있다. 이 때 움직임 보상부(337)는 재사용이 가능하지 않은 데이터에 대해 메모리 인터페이스부(320)로부터 외부 메모리(310)에 저장되어 있는 단위연산블록의 데이 터(UB)를 읽어와 움직임 보상을 수행하고, 단위연산블록의 데이터 중 일부(UBA)를 다음 움직임 보상 수행시 사용할 수 있기 때문에 내부버퍼(331)에 저장한다.The motion compensation circuit 330 receives an address generation command AGC from the data reuse determination unit 333 when the data of the non-reusable portion and when the motion vector difference value MVG is greater than or equal to the reference value receives the address generation command AGC from the external memory 310. It may further include an address generator 339 for generating an address (ADD) for obtaining the data (UB) of the unit operation block from. At this time, the motion compensator 337 reads the data UB of the unit operation block stored in the external memory 310 from the memory interface 320 and performs motion compensation on data that is not reusable. Since some of the data of the unit operation block (UBA) can be used for the next motion compensation, it is stored in the internal buffer 331.

도4는 본 발명의 일 실시예에 따른 움직임 보상 방법을 나타내는 순서도이다.4 is a flowchart illustrating a motion compensation method according to an embodiment of the present invention.

도4를 참조하면, 이전 단위연산블록의 데이터를 저장한다(S405). 서로 인접한 이종 파티션에 위치하는 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정한다(S410). 여기서 계산된 움직임 벡터 차이값이 기준값 이내일 때 데이터를 재사용하도록 결정한다. 데이터를 재사용 가능하다고 결정하면(S410: 예), 데이터 재사용이 가능한 부분은 계산된 움직임 벡터 차이값에 따라 이전 단위연산블록의 데이터 중 일부를 출력한다(S415). 출력된 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보상을 수행한다(S430). 데이터 재사용이 불가능한 부분은 외부 메모리로 접속하기 위한 주소를 생성한다(S420). 그 다음, 재사용이 불가능한 데이터 부분을 외부 메모리로부터 읽어온다(S425). 읽어온 데이터를 이용하여 움직임 보상을 수행한다(S430). 움직임 보상을 수행한 후, 다음 움직임 보상 수행시 사용할 수도 있기 때문에 현재 단위연산블록을 저장한다(S455).Referring to FIG. 4, data of a previous unit operation block is stored (S405). The operation vector difference value between the previous unit operation block and the current unit operation block located in the heterogeneous partitions adjacent to each other is calculated to determine whether to reuse the data (S410). Here, it is decided to reuse data when the calculated motion vector difference value is within a reference value. If it is determined that the data is reusable (S410: Yes), the data reusable portion outputs a part of the data of the previous unit operation block according to the calculated motion vector difference value (S415). Motion compensation is performed by receiving some of the data of the previous unit operation block output (S430). The part where data cannot be reused generates an address for accessing the external memory (S420). Next, the non-reusable data portion is read from the external memory (S425). Motion compensation is performed using the read data (S430). After performing motion compensation, the current unit operation block is stored because it may be used to perform the next motion compensation (S455).

데이터를 재사용 가능하지 않도록 결정하면(S410: 아니오), 단위연산블록 전체의 외부 메모리 주소를 생성한다(S440). 그 다음, 외부 메모리로부터 단위연산블록을 읽어온다(S445). 읽어온 단위연산블록을 이용하여 움직임 보상을 수행한다(S450). 움직임 보상을 수행한 후, 다음 움직임 보상 수행시 사용할 수도 있기 때문에 현재 단위연산블록을 저장한다(S455).If it is determined that the data is not reusable (S410: No), an external memory address of the entire unit operation block is generated (S440). Next, the unit operation block is read from the external memory (S445). Motion compensation is performed using the read unit calculation block (S450). After performing motion compensation, the current unit operation block is stored because it may be used to perform the next motion compensation (S455).

따라서, 움직임 보상을 수행하는데 있어서 단위연산블록의 데이터를 재사용하도록 하여 외부 메모리로의 접근 횟수를 줄일 수 있고 이에 따라 움직임 보상 시간 및 전력 소모를 감소시킬 수 있다.Accordingly, the number of accesses to the external memory can be reduced by reusing the data of the unit operation block in performing the motion compensation, thereby reducing the motion compensation time and power consumption.

본 발명에 따르면, 움직임 보상 방법, 움직임 보상 회로 및 이를 포함한 비디오 디코더는 움직임 보상하는데 있어서 동종파티션뿐만 아니라 이종파티션에 위치하는 단위연산블록간에 데이터를 재사용하도록 하여 외부 메모리로의 접근 횟수를 줄일 수 있다. 이에 따라 움직임 보상 시간 및 전력 소모를 감소시킬 수 있다.According to the present invention, a motion compensation method, a motion compensation circuit, and a video decoder including the same can reduce the number of accesses to an external memory by reusing data between unit blocks located in heterogeneous partitions as well as homogeneous partitions in motion compensation. . Accordingly, motion compensation time and power consumption can be reduced.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.While the foregoing has been described with reference to preferred embodiments of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the invention as set forth in the claims below. It will be appreciated.

도1은 본 발명의 일 실시예에 따른 움직임 보상 회로를 나타내는 블록도이다.1 is a block diagram illustrating a motion compensation circuit according to an exemplary embodiment of the present invention.

도2a, 도2b 및 도2c는 본 발명의 일 실시예에 따른 데이터 추출부의 동작을 설명하기 위한 도면이다.2A, 2B and 2C are diagrams for describing an operation of a data extracting unit according to an embodiment of the present invention.

도3은 본 발명의 일 실시예에 따른 비디오 디코더를 나타내는 블록도이다.3 is a block diagram illustrating a video decoder according to an embodiment of the present invention.

도4는 본 발명의 일 실시예에 따른 움직임 보상 방법을 나타내는 순서도이다.4 is a flowchart illustrating a motion compensation method according to an embodiment of the present invention.

Claims (12)

이전 단위연산블록의 데이터를 저장 및 출력하는 내부버퍼;An internal buffer for storing and outputting data of a previous unit operation block; 서로 인접한 이종 파티션에 위치하는 상기 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정하는 데이터 재사용 판단부;A data reuse determination unit configured to determine whether to reuse data by calculating a motion vector difference value between the previous unit operation block and the current unit operation block located in heterogeneous partitions adjacent to each other; 상기 데이터 재사용 판단부가 상기 데이터를 재사용하도록 결정할 때, 상기 계산된 움직임 벡터 차이값을 기초로 상기 이전단위연산블록과 상기 현재단위연산블록간에 서로 겹치는 영역을 추출하여 상기 이전 단위연산블록의 데이터 중 일부를 출력하는 데이터 추출부; 및When the data reuse determination unit determines to reuse the data, a portion of data of the previous unit operation block is extracted by extracting an area overlapping each other between the previous unit operation block and the current unit operation block based on the calculated motion vector difference value. A data extraction unit for outputting the; And 상기 데이터 추출부로부터 상기 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보상을 수행하는 움직임 보상부를 포함하고, And a motion compensator configured to perform motion compensation by receiving some of the data of the previous unit calculation block from the data extractor. 상기 데이터 재사용 판단부는 상기 움직임 벡터 차이값이 기준값 이내일 때 상기 데이터를 재사용하도록 결정하는 것을 특징으로 하는 움직임 보상 회로.And the data reuse determination unit determines to reuse the data when the motion vector difference value is within a reference value. 삭제delete 제1항에 있어서, 외부 메모리로 접속하기 위한 주소를 생성하는 주소 생성부를 더 포함하는 것을 특징으로 하는 움직임 보상 회로.The motion compensation circuit of claim 1, further comprising an address generator for generating an address for connecting to an external memory. 제1항에 있어서, 상기 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데 이터로 구성된 것을 특징으로 하는 움직임 보상 회로.The motion compensation circuit of claim 1, wherein the heterogeneous partitions adjacent to each other are composed of luminance data or chrominance data. 단위연산블록의 데이터를 저장하는 외부 메모리;An external memory for storing data of a unit operation block; 데이터를 재사용하도록 하는 움직임 보상 회로; 및Motion compensation circuitry for reusing data; And 상기 외부 메모리 및 상기 움직임 보상 회로간에 인터페이스를 하는 메모리 인터페이스부를 구비하고,A memory interface unit for interfacing between the external memory and the motion compensation circuit; 상기 움직임 보상 회로는,The motion compensation circuit, 이전 단위연산블록의 데이터를 저장하는 내부버퍼;An internal buffer for storing data of a previous unit operation block; 서로 인접한 이종 파티션에 위치하는 상기 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정하는 데이터 재사용 판단부;A data reuse determination unit configured to determine whether to reuse data by calculating a motion vector difference value between the previous unit operation block and the current unit operation block located in heterogeneous partitions adjacent to each other; 상기 데이터 재사용 판단부가 상기 데이터를 재사용하도록 결정할 때, 상기 계산된 움직임 벡터 차이값을 기초로 상기 이전단위연산블록과 상기 현재단위연산블록간에 서로 겹치는 영역을 추출하여 상기 이전 단위연산블록의 데이터 중 일부를 출력하는 데이터 추출부; 및When the data reuse determination unit determines to reuse the data, a portion of data of the previous unit operation block is extracted by extracting an area overlapping each other between the previous unit operation block and the current unit operation block based on the calculated motion vector difference value. A data extraction unit for outputting the; And 상기 데이터 추출부로부터 상기 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보상을 수행하는 움직임 보상부를 포함하는 비디오 디코더.And a motion compensator configured to perform motion compensation by receiving some of the data of the previous unit operation block from the data extractor. 제5항에 있어서, 상기 데이터 재사용 판단부는 상기 움직임 벡터 차이값이 기준값 이내일 때 데이터를 재사용 하도록 결정하는 것을 특징으로 하는 비디오 디코더.The video decoder of claim 5, wherein the data reuse determiner determines to reuse data when the motion vector difference value is within a reference value. 제6항에 있어서, 상기 움직임 보상 회로는 상기 외부 메모리로 접속하기 위한 주소를 생성하는 주소 생성부를 더 포함하는 것을 특징으로 하는 비디오 디코더.The video decoder of claim 6, wherein the motion compensation circuit further comprises an address generator configured to generate an address for accessing the external memory. 제5항에 있어서, 상기 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데이터로 구성된 것을 특징으로 하는 비디오 디코더.6. The video decoder of claim 5, wherein the heterogeneous partitions adjacent to each other are composed of luminance data or chrominance data. 이전 단위연산블록의 데이터를 저장하는 단계;Storing data of a previous unit operation block; 서로 인접한 이종 파티션에 위치하는 상기 이전 단위연산블록과 현재 단위연산블록간에 움직임 벡터 차이값을 계산하여 데이터 재사용 여부를 결정하는 단계;Determining whether to reuse data by calculating a motion vector difference value between the previous unit operation block and the current unit operation block located in heterogeneous partitions adjacent to each other; 상기 데이터를 재사용하도록 결정할 때, 상기 계산된 움직임 벡터 차이값을 기초로 상기 이전단위연산블록과 상기 현재단위연산블록간에 서로 겹치는 영역을 추출하여 상기 이전 단위연산블록의 데이터 중 일부를 출력하는 단계; 및When determining to reuse the data, extracting a region overlapping each other between the previous unit operation block and the current unit operation block based on the calculated motion vector difference value and outputting a part of data of the previous unit operation block; And 상기 이전 단위연산블록의 데이터 중 일부를 인가받아 움직임 보상을 수행하는 단계를 포함하고, Performing motion compensation by receiving some of the data of the previous unit calculation block; 상기 데이터 재사용 여부를 결정하는 단계는 상기 움직임 벡터 차이값이 기준값 이내일 때 상기 데이터를 재사용하도록 결정하는 단계를 포함하는 것을 특징으로 하는 움직임 보상 방법.And determining whether to reuse the data includes determining to reuse the data when the motion vector difference value is within a reference value. 삭제delete 제9항에 있어서, 외부 메모리로 접속하기 위한 주소를 생성하는 단계를 더 포함하는 것을 특징으로 하는 움직임 보상 방법.10. The method of claim 9, further comprising generating an address for connecting to an external memory. 제9항에 있어서, 상기 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데이터로 구성된 것을 특징으로 하는 움직임 보상 방법.10. The motion compensation method of claim 9, wherein the heterogeneous partitions adjacent to each other are composed of luminance data or color difference data.
KR1020070084719A 2007-08-23 2007-08-23 Motion compensation method, motion compensation circuit and video decoder having the method of data reuse between heterogeneous partitions KR100904382B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070084719A KR100904382B1 (en) 2007-08-23 2007-08-23 Motion compensation method, motion compensation circuit and video decoder having the method of data reuse between heterogeneous partitions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070084719A KR100904382B1 (en) 2007-08-23 2007-08-23 Motion compensation method, motion compensation circuit and video decoder having the method of data reuse between heterogeneous partitions

Publications (2)

Publication Number Publication Date
KR20090020184A KR20090020184A (en) 2009-02-26
KR100904382B1 true KR100904382B1 (en) 2009-06-25

Family

ID=40687684

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070084719A KR100904382B1 (en) 2007-08-23 2007-08-23 Motion compensation method, motion compensation circuit and video decoder having the method of data reuse between heterogeneous partitions

Country Status (1)

Country Link
KR (1) KR100904382B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180047763A (en) 2016-11-01 2018-05-10 삼성전자주식회사 Processing apparatuses and control methods

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070029044A (en) * 2005-09-08 2007-03-13 콴타 컴퓨터 인코포레이티드 Motion vector estimation system and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070029044A (en) * 2005-09-08 2007-03-13 콴타 컴퓨터 인코포레이티드 Motion vector estimation system and method thereof

Also Published As

Publication number Publication date
KR20090020184A (en) 2009-02-26

Similar Documents

Publication Publication Date Title
US20200145689A1 (en) Picture prediction method and picture prediction apparatus
US10819995B2 (en) Method of storing decoded video data, method of computing motion vector data and computer device
EP3780618A1 (en) Method and device for obtaining motion vector of video image
KR100957316B1 (en) Mode selection techniques for multimedia coding
CN101573984B (en) Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
KR102587638B1 (en) Motion estimation method and system using neighboring block patterns for video coding
CN103202016A (en) Adaptive motion vector resolution signaling for video coding
CN103188496A (en) Fast motion estimation video encoding method based on motion vector distribution forecast
CN113491132B (en) Video image decoding method, video image encoding method, video image decoding device, video image encoding device, and readable storage medium
JP2021532626A (en) Inter-prediction method and device based on merge mode
CN113170210A (en) Affine mode signaling in video encoding and decoding
EP3706421A1 (en) Method and apparatus for video encoding and decoding based on affine motion compensation
KR20130070554A (en) Exhaustive sub-macroblock shape candidate save and restore protocol for motion estimation
KR100904382B1 (en) Motion compensation method, motion compensation circuit and video decoder having the method of data reuse between heterogeneous partitions
JP2009089267A (en) Method and device for intra predictive coding, and program
US9077996B2 (en) Predicted motion vectors
JP2019022120A (en) Moving picture coding apparatus, moving picture coding method, moving picture coding computer program, moving picture decoding apparatus, moving picture decoding method, and moving picture decoding computer program
CN112204962A (en) Image prediction method, apparatus and computer-readable storage medium
CN111264060B (en) Video encoding device, video encoding method, and storage medium
Li et al. An efficient motion vector prediction method for avoiding AMVP data dependency for HEVC
KR102007377B1 (en) System and method for motion estimation for high-performance hevc encoder
KR20220088939A (en) Deep intra prediction of image blocks
US10491927B1 (en) Quadtree-based bandwidth compression prediction method and system thereof
RU2810126C2 (en) Method and device for image prediction and computer readable data medium
KR100413981B1 (en) Apparatus and method for prediction and release DC coefficient in image system

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130530

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee