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 PDFInfo
- 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
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
-
- 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
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
본 발명은 비디오 코덱에 관한 것이다. 보다 상세하게는, 움직임 보상 시간 및 전력 소모를 감소시키기 위한 움직임 보상 방법, 움직임 보상 회로 및 이를 포함하는 비디오 디코더에 관한 것이다.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
내부버퍼(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
도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
도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
도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
따라서, 데이터 추출부(150)는 움직임 벡터 차이값(MVG)에 따라 내부버퍼(110)에 저장된 이전단위연산블록의 데이터(PB) 중 일부를 출력할 수 있다.Therefore, the
움직임 보상 회로(100)는 재사용이 불가능한 부분의 데이터를 가져올 때 및 움직임 벡터 차이값(MVG)이 기준값 이상일 때 데이터 재사용 판단부(130)로부터 주소 생성 명령(AGC)을 인가받아 외부 메모리로부터 단위연산블록의 데이터(UB)를 가져오기 위한 주소(ADD)를 생성하는 주소 생성부(190)를 더 포함할 수 있다. 이 경우, 움직임 보상부(170)는 재사용이 가능하지 않은 데이터에 대해 외부 메모리에 접근하여 단위연산블록의 데이터(UB)를 인가받고, 움직임 보상을 수행하여 보상된 영상신호(CVS)를 출력한다. 그 후 재사용 가능성이 있는 단위연산블록의 데이터(UBA)를 다음 움직임 보상 수행시 사용할 수 있기 때문에 내부버퍼(110)에 저장한다.The
또한 움직임 보상 회로(100)에 사용되는 서로 인접한 이종 파티션은 휘도 데이터 또는 색차 데이터로 구성될 수 있다.In addition, heterogeneous partitions adjacent to each other used in the
도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
외부 메모리(310)는 단위연산블록의 데이터를 저장한다. 메모리 인터페이스부(320)는 외부 메모리(310) 및 움직임 보상 회로(330)간에 인터페이스를 하기 위한 인터페이스 신호(IS)를 발생하여 외부 메모리(310)와 인터페이스 신호(IS)를 주고 받는다. 움직임 보상 회로(330)는 내부버퍼(331), 데이터 재사용 판단부(333), 데이터 추출부(335) 및 움직임 보상부(337)를 포함하여 데이터를 재사용하도록 한다.The
내부버퍼(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
움직임 보상 회로(330)는 재사용이 불가능한 부분의 데이터를 가져올 때 및 움직임 벡터 차이값(MVG)이 기준값 이상일 때 데이터 재사용 판단부(333)로부터 주소 생성 명령(AGC)을 인가받아 외부 메모리(310)로부터 단위연산블록의 데이터(UB)를 가져오기 위한 주소(ADD)를 생성하는 주소 생성부(339)를 더 포함할 수 있다. 이 때 움직임 보상부(337)는 재사용이 가능하지 않은 데이터에 대해 메모리 인터페이스부(320)로부터 외부 메모리(310)에 저장되어 있는 단위연산블록의 데이 터(UB)를 읽어와 움직임 보상을 수행하고, 단위연산블록의 데이터 중 일부(UBA)를 다음 움직임 보상 수행시 사용할 수 있기 때문에 내부버퍼(331)에 저장한다.The
도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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180047763A (en) | 2016-11-01 | 2018-05-10 | 삼성전자주식회사 | Processing apparatuses and control methods |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070029044A (en) * | 2005-09-08 | 2007-03-13 | 콴타 컴퓨터 인코포레이티드 | Motion vector estimation system and method thereof |
-
2007
- 2007-08-23 KR KR1020070084719A patent/KR100904382B1/en not_active IP Right Cessation
Patent Citations (1)
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 |