KR100909390B1 - 고속 움직임 보상 장치 및 방법 - Google Patents

고속 움직임 보상 장치 및 방법 Download PDF

Info

Publication number
KR100909390B1
KR100909390B1 KR1020070094803A KR20070094803A KR100909390B1 KR 100909390 B1 KR100909390 B1 KR 100909390B1 KR 1020070094803 A KR1020070094803 A KR 1020070094803A KR 20070094803 A KR20070094803 A KR 20070094803A KR 100909390 B1 KR100909390 B1 KR 100909390B1
Authority
KR
South Korea
Prior art keywords
operation result
addition
pixels
adder
shifting
Prior art date
Application number
KR1020070094803A
Other languages
English (en)
Other versions
KR20090029500A (ko
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 KR1020070094803A priority Critical patent/KR100909390B1/ko
Priority to US11/954,485 priority patent/US8014618B2/en
Publication of KR20090029500A publication Critical patent/KR20090029500A/ko
Application granted granted Critical
Publication of KR100909390B1 publication Critical patent/KR100909390B1/ko

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/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
    • 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
    • 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
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Abstract

H.264/AVC를 위한 고속 움직임 보상 장치는 외부 저장 장치의 복수의 워드 주소들을 읽고, 복수의 워드 주소들에 걸쳐 있는 참조 픽셀들을 정렬하여 임시로 저장하며, 정렬되어 임시 저장된 참조 픽셀들을 순차적으로 출력하기 위한 버스 인터페이스부, 버스 인터페이스부에서 출력된 참조 픽셀들 중에서 서브 픽셀들을 생성하는 데 있어서 중첩되어 사용되는 참조 픽셀들을 임시로 저장하기 위한 버퍼부, 버스 인터페이스부에서 출력된 참조 픽셀들을 이용하여 제1 하프 픽셀들, 제2 하프 픽셀들, 제1 쿼터 픽셀들, 및 제2 쿼터 픽셀들을 생성하기 위한 인터폴레이션부, 및 버스 인터페이스부에서 출력된 참조 픽셀들을 사용하여 크로마 픽셀들을 생성하기 위한 크로마 필터부를 포함한다. 따라서 고속 움직임 보상 장치는 메모리에의 접근 횟수를 줄이고, 참조 픽셀들을 중복으로 읽는 것을 방지하여 움직임 보상을 고속으로 수행한다.

Description

고속 움직임 보상 장치 및 방법 {High-speed Motion Compensation Apparatus and Method}
본 발명은 영상 압축 방식에 관한 것으로, 더욱 상세하게는 영상 압축 방식의 고속 움직임 보상 장치 및 방법에 관한 것이다.
H.264/AVC 영상 압축 방식은 가장 최근에 표준화된 영상 압축 방식으로서 영상의 압축률을 높이기 위해 다양한 기법을 사용한다. 그 중에서 움직임 보상 기법은 H.264/AVC 영상 압축 방식의 주요 기법 중 하나로서 현재 프레임에서 가장 비슷한 영역을 이전 프레임에서 찾아서 양자 간의 차이와 그 영역의 상대적 위치만을 전송하여 현재 프레임을 복원하는 기법이다. 그러므로 움직임 보상 기법을 이용하면 현재 프레임의 모든 픽셀 정보를 전송하는 것보다 훨씬 적은 정보를 전송함으로써 현재 프레임을 복원할 수 있다.
일반적으로 서브 픽셀들을 만들기 위해서는 서브 픽셀들의 수보다 더 많은 참조 픽셀들이 필요하다. 그러나 일반적으로 참조 픽셀들은 서로 상당부분 중첩되어 있으므로, 종래 움직임 보상과 같이 중첩된 참조 픽셀들을 매번 참조 프레임으로부터 가져오는 방식은 많은 시간이 소요되고 전력 소모도 크기 때문에 비효율적 이다. 또한, 일반적으로 서브 픽셀들을 생성하기 위해 필요한 참조 픽셀들이 워드 주소에 효율적으로 분포되어 있지 않으므로, 종래 움직임 보상과 같이 참조 픽셀들을 정렬하지 않고 워드를 가져오는 것은 비효율적이다.
도 1a 및 도 1b는 서브 매크로블록의 파티션에 따른 참조 픽셀들을 나타내는 도면이다.
도 1a는 4×4 서브 픽셀들로 이루어진 4 개의 서브 매크로블록들(10a)과 이를 생성하기 위해 필요한 참조 프레임(20a)을 보여주고, 도 1b는 4×4 서브 픽셀들로 이루어진 2 개의 서브 매크로블록들(10b)과 이를 생성하기 위해 필요한 참조 프레임(20b)을 보여준다. 여기서, 사선으로 표시된 영역들(30a, 30b)은 4×4 서브 픽셀들로 이루어진 서브 매크로블록들(10a, 10b)을 생성하기 위하여 필요한 참조 프레임(20a, 20b) 내에서 서로 간에 중첩되는 참조 픽셀들을 나타내고, 흰색으로 표시된 영역들(40a, 40b)은 서로 간에 중첩되지 않는 참조 픽셀들을 나타낸다. 그러므로 사선으로 표시된 영역들(30a, 30b) 즉, 움직임 보상에 있어서 서로 간에 중첩되는 참조 픽셀들을 매번 참조 프레임(20a, 20b)으로부터 가져오는 것은 시간, 전력 면에서 비효율적이다.
도 2a 및 도 2b는 워드 주소에 분포된 참조 픽셀들을 나타내는 도면이다.
도 2a 및 도 2b를 참조하면, 작은 사각형들(60a, 60b)은 하나의 픽셀을 나타내고, 4 개의 작은 사각형들(50a, 50b)은 하나의 워드 주소를 나타낸다. 회색으로 표시된 영역들(70a, 70b)은 움직임 보상에 필요한 참조 픽셀들을 나타내고, 흰색으로 표시된 영역들(80a, 80b)은 움직임 보상에 필요하지 않은 참조 픽셀들을 나타낸 다.
일반적으로 하나의 픽셀은 8비트로 표현되고, 각각의 픽셀들은 메모리에 저장된다. 그러므로 32 비트 워드 주소를 사용하는 경우 4개의 픽셀들이 하나의 워드 주소에 저장되는데, 움직임 보상에 있어 필요한 참조 픽셀들이 하나의 워드 주소에 1개만이 포함되어 있는 경우 1 개의 참조 픽셀을 읽기 위해서 나머지 3개의 불필요한 참조 픽셀들도 함께 읽어야 한다. 예를 들어, 도 2a에서는 움직임 보상에 필요한 참조 픽셀들(70a)이 워드 주소에 효율적으로 분포되어 있어서 4개의 워드(65a)만 가져오면 움직임 보상에 필요한 참조 픽셀들(70a)을 모두 읽을 수 있는 반면, 도 2b에서는 필요한 참조 픽셀들(70b)이 8개의 워드 주소에 걸쳐 분포하고 있어서 8개의 워드(65b)를 가져와야만 비로소 움직임 보상에 필요한 참조 픽셀들(70b)을 모두 읽을 수 있다. 하지만, 일반적으로 움직임 보상에 필요한 참조 픽셀들이 도 2a처럼 워드 주소에 효율적으로 분포되어 있는 것이 아니므로 움직임 보상을 위해서는 많은 시간이 소요되고, 전력 소모도 크다.
그러므로 중첩되는 참조 픽셀들을 효율적으로 관리하고, 워드 주소에 분포되어 있는 참조 픽셀들을 효율적으로 정렬함으로써 움직임 보상의 성능을 향상시키는 것이 요구된다.
상기와 같은 문제점을 해결하기 위하여, 본 발명은 중첩되는 참조 픽셀들을 효율적으로 관리하고, 워드 주소에 분포되어 있는 참조 픽셀들을 효율적으로 정렬함으로써 메모리 접근 횟수를 줄여 움직임 보상 성능을 향상시킬 수 있는 고속 움직임 보상 장치를 제공하는 것을 일 목적으로 한다.
또한 본 발명은 중첩되는 참조 픽셀들을 효율적으로 관리하고, 워드 주소에 분포되어 있는 참조 픽셀들을 효율적으로 정렬함으로써 메모리 접근 횟수를 줄여 움직임 보상 성능을 향상시킬 수 있는 고속 움직임 보상 방법을 제공하는 것을 일 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 고속 움직임 보상 장치는 움직임 보상을 위한 참조 픽셀들을 이용하여 서브 픽셀들을 생성하는 움직임 보상 장치에서, 외부 저장 장치의 복수의 워드 주소들을 읽고, 상기 복수의 워드 주소들에 걸쳐 있는 상기 참조 픽셀들을 정렬하여 임시로 저장하고, 정렬되어 임시 저장된 상기 참조 픽셀들을 순차적으로 출력하기 위한 버스 인터페이스부, 상기 버스 인터페이스부에서 출력된 상기 참조 픽셀들 중에서 상기 서브 픽셀들을 생성하는 데 있어서 중첩되어 사용되는 참조 픽셀들을 임시로 저장하기 위한 버퍼부, 상기 버스 인터페이스부에서 출력된 상기 참조 픽셀들을 이용하여 제1 하프 픽셀들, 제2 하프 픽셀들, 제1 쿼터 픽셀들, 및 제2 쿼터 픽셀들을 생성하기 위한 인터 폴레이션부, 및 상기 버스 인터페이스부에서 출력된 상기 참조 픽셀들을 이용하여 크로마 픽셀들을 생성하기 위한 크로마 필터부를 포함한다.
실시예에 따라, 상기 버스 인터페이스부는 현재 움직임 보상을 위해 사용되는 제1 참조 픽셀들을 저장하기 위한 제1 버퍼를 포함할 수 있다.
실시예에 따라, 상기 버스 인터페이스부는 차후 움직임 보상을 위해 사용될 제2 참조 픽셀들을 저장하기 위한 제2 버퍼를 포함할 수 있다.
실시예에 따라, 상기 버퍼부는 수직 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하기 위한 상기 참조 픽셀들 중에서 중첩되는 참조 픽셀들을 저장하기 위한 제3 버퍼를 포함할 수 있다.
실시예에 따라, 상기 버퍼부는 수평 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하기 위한 상기 참조 픽셀들 중에서 중첩되는 참조 픽셀들을 저장하기 위한 제4 버퍼를 포함할 수 있다.
실시예에 따라, 상기 인터폴레이션부는 상기 참조 픽셀들인 정수 픽셀들 사이에 인터폴레이션을 하여 제1 하프 픽셀들을 생성하는 제1 인터폴레이터, 상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 하프 픽셀들을 생성하는 제2 인터폴레이터, 상기 제1 하프 픽셀들 및 상기 정수 픽셀들 사이에 인터폴레이션을 하여 제1 쿼터 픽셀들을 생성하는 제3 인터폴레이터, 및 상기 제1 하프 픽셀들 및 상기 제2 하프 픽셀들 사이에 인터폴레이션을 하거나 또는, 상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 쿼터 픽셀들을 생성하는 제4 인터폴레이터를 포함할 수 있다.
실시예에 따라, 상기 제1 인터폴레이터는 4개의 제1 FIR 필터들을 포함하고, [수식 1a]의 변형식인 [수식 1b]를 이용하여 8 비트의 상기 제1 하프 픽셀들을 생성할 수 있다. [수식 1a] 및 [수식 1b]는 다음과 같다.
[수식 1a]
1hp = min(255, max(0, (p0-5p1+20p2+20p3-5p4+p5+16)>>5))
[수식 1b]
1hp = min(255, max(0, ((p0+p5)+(4(p2+p3)-(p1+p4))
+4(4(p2+p3)-(p1+p4))+16)>>5))
(단, 상기 p0, p1, p2, p3, p4, p5는 8비트의 정수 픽셀을 나타내고, 상기 1hp는 8비트의 제1 하프 픽셀을 나타낸다.)
실시예에 따라, 상기 제1 FIR 필터들 각각은 상기 p0과 상기 p5 사이에 덧셈 연산을 수행하는 제1 덧셈기, 상기 p2와 상기 p3 사이에 덧셈 연산을 수행하는 제2 덧셈기, 상기 p1과 상기 p4 사이에 덧셈 연산을 수행하는 제3 덧셈기, 상기 제2 덧셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제1 쉬프터, 상기 제1 쉬프터의 연산 결과와 상기 제3 덧셈기의 연산 결과 사이에 뺄셈 연산을 수행하는 제1 뺄셈기, 상기 제1 덧셈기의 연산 결과와 상기 제1 뺄셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제4 덧셈기, 상기 제1 뺄셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제2 쉬프터, 상기 제1 뺄셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제3 쉬프터, 상기 제3 쉬프터의 연산 결과와 라운드 계수인 16 사이에 덧셈 연산을 수행하는 제5 덧셈기, 상기 제2 쉬프터 의 연산 결과와 상기 제4 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하고 상기 결과를 하프 버퍼로 출력하는 제6 덧셈기, 상기 제4 덧셈기의 연산 결과와 상기 제5 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제7 덧셈기, 및 상기 제7 덧셈기의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제1 클립부를 포함할 수 있다.
실시예에 따라, 상기 제2 인터폴레이터는 4개의 제2 FIR 필터들을 포함하고, [수식 2a]의 변형식인 [수식 2b]를 이용하여 8 비트의 상기 제2 하프 픽셀들을 생성할 수 있다. [수식 2a] 및 [수식 2b]는 다음과 같다.
[수식 2a]
2hp = min(255, max(0, (1HP0-5HP1+20HP2+20HP3-5HP4+HP5+512)>>10))
[수식 2b]
2hp = min(255, max(0, ((HP0+HP5)+(4(HP2+HP3)-(HP1+HP4))
+4(4(HP2+HP3)-(HP1+HP4))+512)>>10))
(단, 상기 HP0, HP1, HP2, HP3, HP4, HP5는 하프 버퍼에 저장된 15 비트의 제1 하프 픽셀을 나타내고, 상기 2hp는 8 비트의 제2 하프 픽셀을 나타낸다.)
실시예에 따라, 상기 제2 FIR 필터들 각각은 상기 HP0과 상기 HP5 사이에 덧셈 연산을 수행하는 제8 덧셈기, 상기 HP2와 상기 HP3 사이에 덧셈 연산을 수행하는 제9 덧셈기, 상기 HP1과 상기 HP4 사이에 덧셈 연산을 수행하는 제10 덧셈기, 상기 제9 덧셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제4 쉬프터, 상기 제4 쉬프터의 연산 결과와 상기 제10 덧셈기의 연산 결과 사이에 뺄 셈 연산을 수행하는 제2 뺄셈기, 상기 제8 덧셈기의 연산 결과와 상기 제2 뺄셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제11 덧셈기, 상기 제2 뺄셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제5 쉬프터, 상기 제5 쉬프터의 연산 결과와 라운드 계수인 512 사이에 덧셈 연산을 수행하는 제12 덧셈기, 상기 제11 덧셈기의 연산 결과와 상기 제12 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제13 덧셈기, 상기 제13 덧셈기의 연산 결과를 오른쪽으로 10비트 쉬프트하는 연산을 수행하는 제6 쉬프터, 및 상기 제6 쉬프터의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제2 클립부를 포함할 수 있다.
실시예에 따라, 상기 제3 인터폴레이터는 4개의 제1 평균 필터들을 포함하고, 상기 제1 클립부에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 정수 픽셀들 사이의 평균값으로 8 비트의 상기 제1 쿼터 픽셀들을 생성할 수 있다.
실시예에 따라, 상기 제1 평균 필터들 각각은 상기 제1 하프 픽셀과 상기 정수 픽셀 사이에 덧셈 연산을 수행하는 제14 덧셈기, 상기 제14 덧셈기의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제15 덧셈기, 및 상기 제15 덧셈기의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프터를 포함할 수 있다.
실시예에 따라, 상기 제4 인터폴레이터는 4개의 제2 평균 필터들을 포함하고, 상기 제1 클립부에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 제2 클립부에서 출력된 8 비트의 상기 제2 하프 픽셀들 사이의 평균값 또는, 상기 제1 클립 부에서 출력된 8 비트의 상기 제1 하프 픽셀들 사이의 평균값으로 8 비트의 상기 제2 쿼터 픽셀들을 생성할 수 있다.
실시예에 따라, 상기 제2 평균 필터들 각각은 상기 제1 하프 픽셀과 상기 제2 하프 픽셀 사이에 또는, 상기 제1 하프 픽셀들 사이에 덧셈 연산을 수행하는 제16 덧셈기, 상기 제16 덧셈기의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제17 덧셈기, 및 상기 제17 덧셈기의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프터를 포함할 수 있다.
실시예에 따라, 상기 크로마 필터부는 4개의 쌍일차 필터들을 포함하고, [수식 3a]의 변형식인 [수식 3b]를 이용하여 8 비트의 상기 크로마 픽셀들을 생성할 수 있다. [수식 3a] 및 [수식 3b]는 다음과 같다.
[수식 3a]
cp = ((8-dy)×(8-dx)×A + dx×(8-dy)×B
+ (8-dx)×dy×C + dx×dy×D + 32) >> 5
[수식 3b]
cp = ((8-dx)×(8×A + dy×(C-A))
+ dx×(8×B + dy×(D-B)) + 32) >> 5
(단, 상기 A, B는 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내고, 상기 C, D는 상기 A, B가 상기 크로마 필터부에 입력된 때로부터 1 클럭 사이클이 지난 후 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내며, 상기 dx, dy는 움직임 벡터의 하위 3 비트를 나타내고, 상기 cp는 8 비트의 크로마 픽셀을 나타낸다.)
실시예에 따라, 상기 쌍일차 필터들 각각은 상기 [수식 3b]의 (8×A + dy×(C-A)) 식을 논리 소자들로 구현한 제1 서브 유닛, 상기 [수식 3b]의 (8×A + dy×(C-A)) 식에 상기 [수식 3b]의 (8-dx) 식을 곱한 (8×A + dy×(C-A))×(8-dx) 식을 논리 소자들로 구현한 제2 서브 유닛, 상기 [수식 3b]의 (8×B + dy×(D - B)) 식을 논리 소자들로 구현한 제3 서브 유닛, 상기 [수식 3b]의 (8×B + dy×(D - B)) 식에 상기 [수식 3b]의 dx을 곱하고, 라운드 계수인 32를 더한 (8×B + dy×(D - B))×dx + 32 식을 논리 소자들로 구현한 제4 서브 유닛, 상기 제2 서브 유닛의 연산 결과와 상기 제4 서브 유닛의 연산 결과 사이에 덧셈 연산을 수행하는 제18 덧셈기, 및 상기 제18 덧셈기의 연산 결과를 오른쪽으로 6비트 쉬프트하는 연산을 수행하는 제8 쉬프터를 포함할 수 있다.
실시예에 따라, 상기 제1 서브 유닛은 상기 C와 상기 A 사이에 뺄셈 연산을 수행하는 제3 뺄셈기, 상기 제3 뺄셈기의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제1 AND 게이트, 상기 제3 뺄셈기의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제2 AND 게이트, 상기 제3 뺄셈기의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제3 AND 게이트, 상기 제1 AND 게이트의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제9 쉬프터, 상기 제2 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제10 쉬프터, 상기 A를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제11 쉬프터, 상기 제11 쉬프터의 연산 결과와 상기 제9 쉬프터의 연산 결과 사이에 덧셈 연산을 수행하는 제19 덧셈기, 상기 제10 쉬프터 의 연산 결과와 상기 제3 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제20 덧셈기, 및 상기 제19 덧셈기의 연산 결과와 상기 제20 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제21 덧셈기를 포함할 수 있다.
실시예에 따라, 상기 제2 서브 유닛은 라운드 계수인 8과 상기 dx 사이에 뺄셈 연산을 수행하는 제4 뺄셈기, 상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제4 AND 게이트, 상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제5 AND 게이트, 상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제6 AND 게이트, 상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제7 AND 게이트, 상기 제4 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제12 쉬프터, 상기 제6 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제13 쉬프터, 상기 제12 쉬프터의 연산 결과와 상기 제5 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제22 덧셈기, 상기 제13 쉬프터의 연산 결과와 상기 제7 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제23 덧셈기, 및 상기 제22 덧셈기의 연산 결과와 상기 제23 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제24 덧셈기를 포함할 수 있다.
실시예에 따라, 상기 제3 서브 유닛은 상기 D와 상기 B 사이에 뺄셈 연산을 수행하는 제5 뺄셈기, 상기 제5 뺄셈기의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제8 AND 게이트, 상기 제5 뺄셈기의 연산 결과와 상기 dy 사이에 AND 연 산을 수행하는 제9 AND 게이트, 상기 제5 뺄셈기의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제10 AND 게이트, 상기 제8 AND 게이트의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제14 쉬프터, 상기 제9 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제15 쉬프터, 상기 B를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제16 쉬프터, 상기 제16 쉬프터의 연산 결과와 상기 제14 쉬프터의 연산 결과 사이에 덧셈 연산을 수행하는 제25 덧셈기, 상기 제15 쉬프터의 연산 결과와 상기 제10 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제26 덧셈기, 및 상기 제25 덧셈기의 연산 결과와 상기 제26 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제27 덧셈기를 포함할 수 있다.
실시예에 따라, 상기 제4 서브 유닛은 상기 제27 덧셈기의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제11 AND 게이트, 상기 제27 덧셈기의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제12 AND 게이트, 상기 제27 덧셈기의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제13 AND 게이트, 상기 제11 AND 게이트의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제17 쉬프터, 상기 제12 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제18 쉬프터, 라운드 계수인 32와 상기 제17 쉬프터의 연산 결과 사이에 덧셈 연산을 수행하는 제28 덧셈기, 상기 제18 쉬프터의 연산 결과와 상기 제13 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제29 덧셈기, 및 상기 제28 덧셈기의 연산 결과와 상기 제29 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제30 덧셈기를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 고속 움직임 보상 방법은 움직임 보상을 위한 참조 픽셀들을 이용하여 서브 픽셀들을 생성하는 움직임 보상 방법에서, 외부 저장 장치의 복수의 워드 주소들을 읽어 오는 단계, 상기 복수의 워드 주소들에 걸쳐 있는 상기 참조 픽셀들을 정렬하여 임시로 저장하는 단계, 정렬되어 임시 저장된 상기 참조 픽셀들을 순차적으로 출력하는 단계, 순차적으로 출력된 상기 참조 픽셀들 중에서 상기 서브 픽셀들을 생성하는데 있어서 중첩되어 사용되는 참조 픽셀들을 임시로 저장하는 단계, 순차적으로 출력된 상기 참조 픽셀들인 정수 픽셀들 사이에 인터폴레이션을 하여 제1 하프 픽셀들을 생성하는 단계, 상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 하프 픽셀들을 생성하는 단계, 상기 제1 하프 픽셀들 및 상기 정수 픽셀들 사이에 인터폴레이션을 하여 제1 쿼터 픽셀들을 생성하는 단계, 상기 제1 하프 픽셀들 및 상기 제2 하프 픽셀들 사이에 인터폴레이션을 하거나 또는, 상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 쿼터 픽셀들을 생성하는 단계, 및 순차적으로 출력된 상기 참조 픽셀들을 이용하여 크로마 픽셀들을 생성하는 단계를 포함한다.
실시예에 따라, 상기 참조 픽셀들을 정렬하여 임시로 저장하는 단계는 현재 움직임 보상을 위해 사용되는 제1 참조 픽셀들을 저장하는 제1 버퍼링 단계, 및 차후 움직임 보상을 위해 사용될 제2 참조 픽셀들을 저장하는 제2 버퍼링 단계를 포함할 수 있다.
실시예에 따라, 상기 중첩되어 사용되는 참조 픽셀들을 임시로 저장하는 단계는 수직 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하기 위한 상기 참조 픽셀들 중에서 중첩되는 참조 픽셀들을 저장하는 제3 버퍼링 단계, 및 수평 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하기 위한 상기 참조 픽셀들 중에서 중첩되는 참조 픽셀들을 저장하는 제4 버퍼링 단계를 포함할 수 있다.
실시예에 따라, 상기 제1 하프 픽셀들을 생성하는 단계는 4개의 제1 FIR 필터링 단계들을 포함하고, [수식 1a]의 변형식인 [수식 1b]를 이용하여 8 비트의 상기 제1 하프 픽셀들을 생성할 수 있다. [수식 1a] 및 [수식 1b]는 다음과 같다.
[수식 1a]
1hp = min(255, max(0, (p0-5p1+20p2+20p3-5p4+p5+16)>>5))
[수식 1b]
1hp = min(255, max(0, ((p0+p5)+(4(p2+p3)-(p1+p4))
+4(4(p2+p3)-(p1+p4))+16)>>5))
(단, 상기 p0, p1, p2, p3, p4, p5는 8비트의 정수 픽셀을 나타내고, 상기 1hp는 8비트의 제1 하프 픽셀을 나타낸다.)
실시예에 따라, 상기 제1 FIR 필터링 단계들 각각은 상기 p0과 상기 p5 사이에 덧셈 연산을 수행하는 제1 덧셈 단계, 상기 p2와 상기 p3 사이에 덧셈 연산을 수행하는 제2 덧셈 단계, 상기 p1과 상기 p4 사이에 덧셈 연산을 수행하는 제3 덧셈 단계, 상기 제2 덧셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제1 쉬프팅 단계, 상기 제1 쉬프팅 단계의 연산 결과와 상기 제3 덧셈 단계의 연산 결과 사이에 뺄셈 연산을 수행하는 제1 뺄셈 단계, 상기 제1 덧셈 단계의 연산 결과와 상기 제1 뺄셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제4 덧셈 단계, 상기 제1 뺄셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제2 쉬프팅 단계, 상기 제1 뺄셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제3 쉬프팅 단계, 상기 제3 쉬프팅 단계의 연산 결과와 라운드 계수인 16 사이에 덧셈 연산을 수행하는 제5 덧셈 단계, 상기 제2 쉬프팅 단계의 연산 결과와 상기 제4 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제6 덧셈 단계, 상기 제4 덧셈 단계의 연산 결과와 상기 제5 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제7 덧셈 단계, 및 상기 제7 덧셈 단계의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제1 클리핑 단계를 포함할 수 있다.
실시예에 따라, 상기 제2 하프 픽셀들을 생성하는 단계는 4개의 제2 FIR 필터링 단계들을 포함하고, [수식 2a]의 변형식인 [수식 2b]를 이용하여 8 비트의 상기 제2 하프 픽셀들을 생성할 수 있다. [수식 2a] 및 [수식 2b]는 다음과 같다.
[수식 2a]
2hp = min(255, max(0, (1HP0-5HP1+20HP2+20HP3-5HP4+HP5+512)>>10))
[수식 2b]
2hp = min(255, max(0, ((HP0+HP5)+(4(HP2+HP3)-(HP1+HP4))
+4(4(HP2+HP3)-(HP1+HP4))+512)>>10))
(단, 상기 HP0, HP1, HP2, HP3, HP4, HP5는 하프 버퍼에 저장된 15 비트의 제1 하프 픽셀을 나타내고, 상기 2hp는 8 비트의 제2 하프 픽셀을 나타낸다.)
실시예에 따라, 상기 제2 FIR 필터링 단계들 각각은 상기 HP0과 상기 HP5 사이에 덧셈 연산을 수행하는 제8 덧셈 단계, 상기 HP2와 상기 HP3 사이에 덧셈 연산을 수행하는 제9 덧셈 단계, 상기 HP1과 상기 HP4 사이에 덧셈 연산을 수행하는 제10 덧셈 단계, 상기 제9 덧셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제4 쉬프팅 단계, 상기 제4 쉬프팅 단계의 연산 결과와 상기 제10 덧셈 단계의 연산 결과 사이에 뺄셈 연산을 수행하는 제2 뺄셈 단계, 상기 제8 덧셈 단계의 연산 결과와 상기 제2 뺄셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제11 덧셈 단계, 상기 제2 뺄셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제5 쉬프팅 단계, 상기 제5 쉬프팅 단계의 연산 결과와 라운드 계수인 512 사이에 덧셈 연산을 수행하는 제12 덧셈 단계, 상기 제11 덧셈 단계의 연산 결과와 상기 제12 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제13 덧셈 단계, 상기 제13 덧셈 단계의 연산 결과를 오른쪽으로 10비트 쉬프트하는 연산을 수행하는 제6 쉬프팅 단계, 및 상기 제6 쉬프팅 단계의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제2 클리핑 단계를 포함할 수 있다.
실시예에 따라, 상기 제1 쿼터 픽셀들을 생성하는 단계는 4개의 제1 평균 필터링 단계들을 포함하고, 상기 제1 클리핑 단계에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 정수 픽셀들 사이의 평균값으로 8 비트의 상기 제1 쿼터 픽셀들을 생성할 수 있다.
실시예에 따라, 상기 제1 평균 필터링 단계들 각각은 상기 제1 하프 픽셀과 상기 정수 픽셀 사이에 덧셈 연산을 수행하는 제14 덧셈 단계, 상기 제14 덧셈기의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제15 덧셈 단계, 및 상기 제15 덧셈기의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프팅 단계를 포함할 수 있다.
실시예에 따라, 상기 제2 쿼터 픽셀들을 생성하는 단계는 4개의 제2 평균 필터링 단계들을 포함하고, 상기 제1 클리핑 단계에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 제2 클리핑 단계에서 출력된 8 비트의 상기 제2 하프 픽셀들 사이의 평균값 또는, 상기 제1 클리핑 단계에서 출력된 8 비트의 상기 제1 하프 픽셀들 사이의 평균값으로 8 비트의 상기 제2 쿼터 픽셀들을 생성할 수 있다.
실시예에 따라, 상기 제2 평균 필터링 단계들 각각은 상기 제1 하프 픽셀과 상기 제2 하프 픽셀 사이에 또는, 상기제 1 하프 픽셀들 사이에 덧셈 연산을 수행하는 제16 덧셈 단계, 상기 제16 덧셈 단계의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제17 덧셈 단계, 및 상기 제 17 덧셈 단계의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프팅 단계를 포함할 수 있다.
실시예에 따라, 상기 크로마 픽셀들을 생성하는 단계는 4개의 쌍일차 필터링 단계들을 포함하고, [수식 3a]의 변형식인 [수식 3b]를 이용하여 8비트의 상기 크로마 픽셀들을 생성할 수 있다. [수식 3a] 및 [수식 3b]는 다음과 같다.
[수식 3a]
cp = ((8-dy)×(8-dx)×A + dx×(8-dy)×B
+ (8-dx)×dy×C + dx×dy×D + 32) >> 5
[수식 3b]
cp = ((8-dx)×(8×A + dy×(C-A))
+ dx×(8×B + dy×(D-B)) + 32) >> 5
(단, 상기 A, B는 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내고, 상기 C, D는 상기 A, B가 상기 크로마 필터부에 입력된 때로부터 1 클럭 사이클이 지난 후 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내며, 상기 dx, dy는 움직임 벡터의 하위 3 비트를 나타내고, 상기 cp는 8 비트의 크로마 픽셀을 나타낸다.)
실시예에 따라, 상기 쌍일차 필터링 단계들 각각은 상기 [수식 3b]의 (8×A + dy×(C-A)) 식을 구현하기 위한 제1 서브 단계, 상기 [수식 3b]의 (8×A + dy×(C-A)) 식에 상기 [수식 3b]의 (8-dx) 식을 곱한 (8×A + dy×(C-A))×(8-dx) 식을 구현하기 위한 제2 서브 단계, 상기 [수식 3b]의 (8×B + dy×(D - B)) 식을 구현하기 위한 제3 서브 단계, 상기 [수식 3b]의 (8×B + dy×(D - B)) 식에 상기 [수식 3b]의 dx을 곱하고, 라운드 계수인 32를 더한 (8×B + dy×(D - B))×dx + 32 식을 구현하기 위한 제4 서브 단계, 상기 제3 서브 단계의 연산 결과와 상기 제4 서브 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제18 덧셈 단계, 및 상기 제18 덧셈 단계의 연산 결과를 오른쪽으로 6비트 쉬프트하는 연산을 수행하는 제8 쉬프팅 단계를 포함할 수 있다.
실시예에 따라, 상기 제1 서브 단계는 상기 C와 상기 A 사이에 뺄셈 연산을 수행하는 제3 뺄셈 단계, 상기 제3 뺄셈 단계의 연산 결과와 상기 dy 간의 AND 연 산을 수행하는 제1 AND 연산 단계, 상기 제3 뺄셈 단계의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제2 AND 연산 단계, 상기 제3 뺄셈 단계의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제3 AND 연산 단계, 상기 제1 AND 연산 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제 9 쉬프팅 단계, 상기 제2 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제10 쉬프팅 단계, 상기 A를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제11 쉬프팅 단계, 상기 제11 쉬프팅 단계의 연산 결과와 상기 제9 쉬프팅 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제19 덧셈 단계, 상기 제10 쉬프팅 단계의 연산 결과와 상기 제3 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제20 덧셈 단계, 및 상기 제19 덧셈 단계의 연산 결과와 상기 제20 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제21 덧셈 단계를 포함할 수 있다.
실시예에 따라, 상기 제2 서브 단계는 라운드 계수인 8과 상기 dx 사이에 뺄셈 연산을 수행하는 제4 뺄셈 단계, 상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제4 AND 연산 단계, 상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제5 AND 연산 단계, 상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제6 AND 연산 단계, 상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제7 AND 연산 단계, 상기 제4 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제12 쉬프팅 단계, 상기 제6 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제13 쉬프팅 단계, 상기 제12 쉬프팅 단계의 연산 결과와 상기 제5 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제22 덧셈 단계, 상기 제13 쉬프팅 단계의 연산 결과와 상기 제7 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제23 덧셈 단계, 및 상기 제22 덧셈 단계의 연산 결과와 상기 제23 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제24 덧셈 단계를 포함할 수 있다.
실시예에 따라, 상기 제3 서브 단계는 상기 D와 상기 B 사이에 뺄셈 연산을 수행하는 제5 뺄셈 단계, 상기 제5 뺄셈 단계의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제8 AND 연산 단계, 상기 제5 뺄셈 단계의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제9 AND 연산 단계, 상기 제5 뺄셈 단계의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제10 AND 연산 단계, 상기 제8 AND 연산 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제14 쉬프팅 단계, 상기 제9 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제15 쉬프팅 단계, 상기 B를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제16 쉬프팅 단계, 상기 제16 쉬프팅 단계의 연산 결과와 상기 제14 쉬프팅 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제25 덧셈 단계, 상기 제15 쉬프팅 단계의 연산 결과와 상기 제10 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제26 덧셈 단계, 및 상기 제25 덧셈 단계의 연산 결과와 상기 제26 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제27 덧셈 단계를 포함할 수 있다.
실시예에 따라, 상기 제4 서브 단계는 상기 제27 덧셈 단계의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제11 AND 연산 단계, 상기 제27 덧셈 단계의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제12 AND 연산 단계, 상기 제27 덧셈 단계의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제13 AND 연산 단계, 상기 제11 AND 연산 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제17 쉬프팅 단계, 상기 제12 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제18 쉬프팅 단계, 라운드 계수인 32와 상기 제17 쉬프팅 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제28 덧셈 단계, 상기 제18 쉬프팅 단계의 연산 결과와 상기 제13 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제29 덧셈 단계, 및 상기 제28 덧셈 단계의 연산 결과와 상기 제29 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제30 덧셈 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 고속 움직임 보상 장치는 중첩된 참조 픽셀들을 효율적으로 관리하고, 워드 주소에 분포되어 있는 참조 픽셀들을 효율적으로 정렬함으로써 메모리 접근 횟수를 줄여 움직임 보상 성능을 향상시킬 수 있다.
또한 본 발명의 일 실시예에 따른 고속 움직임 보상 방법은 중첩된 참조 픽셀들을 효율적으로 관리하고, 워드 주소에 분포되어 있는 참조 픽셀들을 효율적으로 정렬함으로써 메모리 접근 횟수를 줄여 움직임 보상 성능을 향상시킬 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기 능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되지 않아야 한다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 3a, 도 3b, 및 도 3c는 생성되는 서브 픽셀들에 따라 이용되는 참조 픽셀들을 나타내는 도면이다.
도 3a, 도 3b, 및 도 3c을 참조하면, 픽셀 G, H, M, N 들은 참조 프레임으로 부터 가져온 참조 픽셀들을 나타내고, 픽셀 a, b, c, d, e, f, g, h, I, j, k, m, n, p, q, r, s 들은 움직임 보상을 통하여 생성되는 서브 픽셀들을 나타낸다.
참조 픽셀 G, H, M, N 들은 정수 픽셀들이고, 서브 픽셀 b, h, s, m 들은 제1 하프 픽셀들이며, 서브 픽셀 j는 제2 하프 픽셀이다. 서브 픽셀 a, c, d, n 들은 제1 쿼터 픽셀들이고, 서브 픽셀 e, f, g, i, k, p, q, r 들은 제2 쿼터 픽셀이다.
도 4a, 도 4b, 도 4c, 및 도 4d는 생성되는 서브 픽셀들에 따른 움직임 보상에 필요한 참조 픽셀들의 개수를 나타내는 도면이다.
도 4a, 도 4b, 도 4c, 및 도 4d를 참조하면, 사선으로 표시된 픽셀들(90a, 90b, 90c, 90d)은 움직임 보상으로 생성되는 서브 픽셀들을 나타낸다.
일반적으로 서브 픽셀들을 만들기 위해서는 서브 픽셀들의 수보다 더 많은 참조 픽셀들이 필요하다. 예를 들어 도 3a, 도 3b, 및 도 3c의 수평으로 배열된 서브 픽셀 a, b, c 와 같은 서브 픽셀들을 4×4 개만큼 생성하기 위해서는 도 4a와 같이 4×9 개의 참조 픽셀들이 필요하고, 도 3a, 도 3b, 및 도 3c의 수직으로 배열된 서브 픽셀 d, h, n 과 같은 서브 픽셀들을 4×4 개만큼 생성하기 위해서는 도 4b와 같이 9×4 개의 참조 픽셀들이 필요하다. 또한, 도 3a, 도 3b, 및 도 3c의 중앙에 배열된 서브 픽셀 j와 같은 서브 픽셀을 4×4 개만큼 생성하기 위해서는 도 4c에 나타난 바와 같은 수의 참조 픽셀들이 필요하고, 도 3a, 도 3b, 및 도 3c의 대각선으로 배열된 서브 픽셀 e, g, p, r, f, i, k, q 와 같은 서브 픽셀들을 4×4 개만큼 생성하기 위해서는 그림 4d와 같이 9×9 개의 참조 픽셀들이 필요하다.
도 5는 본 발명의 일 실시예에 따른 고속 움직임 보상 장치를 나타내는 블록 도이다.
도 5를 참조하면, 고속 움직임 보상 장치(1000)는 버스 인터페이스부(100), 버퍼부(200), 인터폴레이션부(900), 크로마 필터부(600), 입력 레지스터(300), 주소 생성부(350), MC 컨트롤러부(400)를 포함한다. 버스 인터페이스부는 제1 버퍼(120) 및 제2 버퍼(140)를 포함한고, 버퍼부(200)는 제3 버퍼(220), 및 제4 버퍼(240)를 포함한다. 인터폴레이션부(900)는 제1 인터폴레이터(700), 제2 인터폴레이터(750), 제3 인터폴레이터(800), 제4 인터폴레이터(850), 정수 버퍼(450), 및 하프 버퍼(500)를 포함한다.
MC 컨트롤러부(400)는 고속 움직임 보상 장치(1000)의 구성요소들인 버스 인터페이스부(100), 버퍼부(200), 입력 레지스터(300), 주소 생성부(350), 인터폴레이션부(900), 크로마 필터부(600)를 제어한다. 주소 생성부(350)는 움직임 벡터를 이용하여 얻어진 참조 픽셀들의 위치를 메모리 주소로 전환해 주고, 버스 인터페이스부(100)는 버스(1200)를 통해서 외부 메모리(1100)에 있는 참조 프레임에 접근하여 참조 픽셀들을 읽어 들인다. 버스(1200)를 통하여 가져온 참조 픽셀들은 버스 인터페이스부(100)에 포함된 제1 버퍼(120)및 제2 버퍼(140)에 의하여 정렬되어 임시 저장된다.
이후, 버스 인터페이스부(100)에서 움직임 보상을 위해 출력된 참조 픽셀들은 버퍼부(200)를 거쳐 입력 레지스터(300)로 출력된다. 버퍼부(200)는 제3 버퍼(220) 및 제4 버퍼(240)를 포함한다. 고속 움직임 보상 장치(1000)는 각각의 서브 픽셀들을 생성하기 위하여 이용되는 참조 픽셀들 중에서 서로 중첩되는 참조 픽 셀들을 제3 버퍼(220) 및 제4 버퍼(240)에 저장하고 관리한다.
고속 움직임 보상 장치(1000)는 루마(LUMA)에서 정수 픽셀들을 생성하기 위한 정수 모드의 경우에 입력 레지스터(300)에서 출력된 참조 픽셀들을 인터폴레이션부(900)를 거치지 않고 출력하고, 루마(LUMA)에서 제1 하프 픽셀들, 제2 하프 픽셀들, 제1 쿼터 픽셀들, 및 제2 쿼터 픽셀들을 생성하기 위한 수평 모드, 수직 모드, 대각선 모드의 경우에는 입력 레지스터(300)에서 출력된 참조 픽셀들을 이용하여 인터폴레이션부(900)의 제1 인터폴레이터(700), 제2 인터폴레이터(750), 제3 인터폴레이터(800), 및 제4 인터폴레이터(850)에서 각각 제1 하프 픽셀들, 제2 하프 픽셀들, 제1 쿼터 픽셀들, 및 제 2 쿼터 픽셀들을 생성하여 출력한다. 또한, 고속 움직임 보상 장치(1000)는 크로마(CHROMA)에서 크로마 픽셀들을 생성하기 위하여 버스 인터페이스부(100)로부터 출력된 참조 픽셀들 및 움직임 벡터를 이용하여 크로마 필터부(600)를 통하여 크로마 픽셀들을 생성하여 출력한다. 이후, 고속 움직임 보상 장치(1000)는 상기 정수 픽셀들, 제1 하프 픽셀들, 제2 하프 픽셀들, 제1 쿼터 픽셀들, 제2 쿼터 픽셀들, 및 크로마 픽셀들을 멀티플렉서(950)에서 디스플레이(1300)로 출력하고 이를 이용하여 현재 프레임을 복원한다.
도 6a는 도 5의 고속 움직임 보상 장치 내부의 버스 인터페이스부를 나타내는 도면이다.
도 6a를 참조하면, 버스 인터페이스부(100)는 제1 버퍼(120) 및 제2 버퍼(140)를 포함한다. 버스(1200)를 통하여 외부 메모리(1100)로부터 가져온 참조 픽셀들은 제1 버퍼(120) 및 제2 버퍼(140)에 의하여 정렬되어 임시 저장된다. 이 후, 버스 인터페이스부(100)는 정렬되어 임시 저장된 참조 픽셀들을 순차적으로 출력한다. 4×4 서브 픽셀들로 이루어진 서브 매크로블록을 단위로 하여 움직임 보상을 하는 경우에 제1 버퍼(120)는 4×9 픽셀들을 저장할 수 있는 저장 공간을 가지고, 제2 버퍼(240)는 3×21 픽셀들을 저장할 수 있는 저장 공간을 가질 수 있다. 제1 또는 제2 버퍼(120, 140)의 저장 공간은 서브 매크로블록의 크기에 따라 다양하게 구성될 수 있다.
도 6b는 도 6a의 버스 인터페이스부로 입력되는 참조 픽셀들이 워드 주소에 분포된 하나의 예를 나타내는 도면이다.
도 6b를 참조하면, 하나의 픽셀은 8 비트를 나타내고, 32 비트의 워드(150)는 4 개의 픽셀을 포함한다. 움직임 보상에 필요한 참조 픽셀들은 워드 주소들로 이루어진 제1 영역(160)과 제2 영역(180)에 걸쳐 분포되어 있다. 제1 서브 영역(162) 및 제2 서브 영역(182)은 현재 움직임 보상에 필요한 참조 픽셀들을 나타내고, 제3 서브 영역(184)은 차후 움직임 보상에 필요한 참조 픽셀들을 나타낸다.
움직임 보상에 필요한 참조 픽셀들은 서로 다른 워드 영역들에 걸쳐 분포하는 것이 일반적이다. 예를 들어, 도 6b에 나타난 바와 같이 참조 픽셀들이 워드들로 이루어진 제1 영역(160)과 제2 영역(180)에 걸쳐 분포되어 있는 경우, 제1 버퍼(120)는 버스(1200)를 통하여 외부 메모리(1100)로부터 순차적으로 9개의 워드를 읽고 임시적으로 저장한다. 즉, 제1 영역(160)에 포함된 9개의 워드를 순차적으로 읽어 들임으로써 2×9 만큼의 참조 픽셀들로 이루어진 제1 서브 영역(162)을 제1 버퍼(120)에 저장하고, 다음 제2 영역(180)에 포함된 9개의 워드를 순차적으로 읽 어 들임으로써 2×9 만큼의 참조 픽셀들로 이루어진 제2 서브 영역(182)을 제1 버퍼(120)에 저장한다.
제2 영역(180)은 현재 사용될 참조 픽셀들로 이루어진 제2 서브 영역(182) 및 차후 사용될 참조 픽셀들로 이루어진 제3 서브 영역(184)을 포함한다. 이 때에, 제2 영역(180)에 포함된 9개의 워드를 순차적으로 읽는 경우에, 현재 사용될 참조 픽셀들로 이루어진 제2 서브 영역(182)을 제1 버퍼(120)에 저장하는 동시에 차후 사용될 참조 픽셀들로 이루어진 제3 서브 영역(184)을 제2 버퍼(140)에 임시적으로 저장한다. 따라서, 차후 제3 서브 영역(184)의 참조 픽셀들이 움직임 보상을 위해 필요한 경우, 제3 서브 영역(184)의 참조 픽셀들을 다시 버스(1200)를 통하여 외부 메모리(1100)로부터 읽어 올 필요가 없이 제2 버퍼(140)로부터 출력해서 사용한다. 그러므로 제1 버퍼(120) 및 제2 버퍼(140)를 사용함으로써 참조 데이터의 정렬 문제를 해결하고 고속으로 움직임 보상을 할 수 있다.
도 7a, 도 7b, 도 7c, 및 도 7d는 도 5의 고속 움직임 보상 장치 내부의 버퍼부에 저장되는 중첩영역을 나타내는 도면이다.
도 7a, 도 7b, 도 7c, 및 도 7d를 참조하면, 제1 서브 매크로블록(251), 제2 서브 매크로블록(252), 제3 서브 매크로블록(253), 제4 서브 매크로블록(254), 제5 서브 매크로블록(255), 제6 서브 매크로블록(256), 제7 서브 매크로블록(257), 및 제8 서브 매크로블록(258)은 움직임 보상을 통하여 생성되는 4×4 서브 픽셀들로 이루어진 서브 매크로블록을 나타내고, 제1 참조 프레임(261), 제2 참조 프레임(271), 제3 참조 프레임(281), 및 제4 참조 프레임(291)은 각각 상기 제1 서브 매크로블록(251), 제2 서브 매크로블록(252), 제3 서브 매크로블록(253), 및 제4 서브 매크로블록(254)을 생성하는데 필요한 참조 픽셀들로 이루어진 참조 프레임을 나타낸다.
버퍼부(200)는 제3 버퍼(220) 및 제4 버퍼(240)를 포함한다. 제3 버퍼(220)는 수직 방향과 대각선 방향으로 배열된 서브 픽셀들, 즉 도 3a, 도 3b, 및 도 3c 의 수직방향으로 배열된 서브 픽셀 d, h, n 과 대각선 방향으로 배열된 서브 픽셀 e, f, g, i, j, k, p, q, r 을 만들 때 사용되고, 제4 버퍼(240)는 수평방향과 대각선 방향으로 배열된 서브 픽셀들, 즉 도 3a, 도 3b, 및 도 3c의 수평 방향으로 배열된 서브 픽셀 a, b, c 과 대각선 방향으로 배열된 서브 픽셀들 e, f, g, i, j, k, p, q, r 을 생성할 때 사용된다. 따라서, 도 3a, 도 3b, 및 도 3c의 대각선 방향으로 배열된 서브 픽셀 e, f, g, i, j, k, p, q, r 을 만들 때에는 제3 버퍼(220) 또는 제4 버퍼(240)가 사용된다.
먼저 4×4 서브 픽셀들로 이루어진 제1 서브 매크로블록(251)을 생성하기 위하여 제1 참조 프레임(261)을 버스(1200)를 통하여 외부 메모리(1100)로부터 읽어 들인다. 이 때에, 수직 방향으로 배열된 제3 서브 매크로블록(253)과 대각선 방향으로 배열된 제4 서브 매크로블록(254)을 생성하기 위하여 다시 사용될 참조 픽셀들은 제3 버퍼(220)에 저장되고, 수평 방향에 있는 제2 서브 매크로블록(252)을 생성하기 위하여 다시 사용될 참조 픽셀들은 제4 버퍼(240)에 저장된다. 이렇게 하면 제2 서브 매크로블록(252)을 생성할 때 제2 참조 프레임(271)의 8×4 참조 픽셀들로 이루어진 일부 참조 프레임(272)만 버스(1200)를 통하여 외부 메모리(1100)로부 터 전송받으면 된다. 마찬가지로, 제3 서브 매크로블록(253)을 생성할 때에도 제3 참조 프레임(281)의 4×8 참조 픽셀들로 이루어진 일부 참조 프레임(282)만 새로 전송받으면 되며, 제4 서브 매크로블록(254)을 생성할 때에는 제4 참조 프레임(291)의 4×4 참조 픽셀들로 이루어진 일부 참조 프레임(292)만 전송받으면 된다. 따라서 제3 버퍼(220)와 제4 버퍼(240)를 효과적으로 사용하여 중첩되는 참조 픽셀들을 다시 사용함으로써 외부 메모리(1100)에의 접근을 줄일 수 있으므로 고속으로 움직임 보상을 할 수 있다. 예를 들어, 16×16 서브 픽셀들로 이루어진 서브 매크로블록들에 대해서 움직임 보상을 하는 경우에는 5×21 픽셀들을 저장할 수 있는 제3 버퍼(220) 및 9×5 픽셀들을 저장할 수 있는 제4 버퍼(240)를 포함하는 버퍼부(200)가 사용될 수 있다.
도 8a는 도 5의 고속 움직임 보상 장치 내부의 제1 인터폴레이터를 나타내는 도면이다.
도 8a를 참조하면, 제1 인터폴레이터(700)는 6-tap FIR 필터링을 수행하는 네 개의 제1 FIR 필터들(720a, 720b, 720c, 720d)을 포함한다.
제 FIR 필터들(720a, 720b, 720c, 720d)은 정수 픽셀들(722a, 722b, 722c, 722d, 722e, 722f, 722g, 722h, 722i)을 입력받는다.
루마(LUMA)에서 제1 하프 픽셀들을 얻기 위해서는 6-tap FIR 필터링을 해야 한다. 상기 6-tap FIR 필터링은 [수식 1a]를 기반으로 한다.
[수식 1a]
1hp = min(255, max(0, (p0-5p1+20p2+20p3-5p4+p5+16)>>5))
(단, 상기 p0, p1, p2, p3, p4, p5는 8비트의 정수 픽셀을 나타내고, 상기 1hp는 8비트의 제1 하프 픽셀을 나타낸다.)
하나의 제1 하프 픽셀을 얻기 위해서는 위와 같이 6개의 정수 픽셀들이 필요하다. 4개의 제1 하프 픽셀들을 만들 때에는 인접한 정수 픽셀들을 중복해서 사용하면 되기 때문에 실제로는 9개의 정수 픽셀들(722a, 722b, 722c, 722d, 722e, 722f, 722g, 722h, 722i)이 필요하다. 도 8a에 나타난 바와 같이, 제1 인터폴레이터는 제1 하프 픽셀들을 만들기 위하여 4개의 제1 FIR 필터들(720a, 720b, 720c, 720d)을 포함하며, 9개의 정수 픽셀(722a, 722b, 722c, 722d, 722e, 722f, 722g, 722h, 722i)들이 제1 인터폴레이터로 입력된다. 제1 인터폴레이터로 입력된 9개의 정수 픽셀들(722a, 722b, 722c, 722d, 722e, 722f, 722g, 722h, 722i) 중에서 6개의 정수 픽셀들이 각각 제1 FIR 필터들(720a, 720b, 720c, 720d)에 입력되며, 각각의 제1 FIR 필터들(720a, 720b, 720c, 720d)에 의해서 생성된 4개의 제1 하프 픽셀들은 한 클럭 사이클 내에서 처리되어 출력된다.
도 8b는 도 8a의 제1 인터폴레이터 내부의 제1 FIR 필터 구조를 나타내는 도면이다.
도 8b를 참조하면, 제1 FIR 필터(720a, 720b, 720c, 720d)들 각각은 제1 덧셈기(731), 제2 덧셈기(732), 제3 덧셈기(733), 제4 덧셈기(736), 제5 덧셈기(739), 제6 덧셈기(740), 제7 덧셈기(741), 제1 뺄셈기(735), 제1 쉬프터(734), 제2 쉬프터(737), 제3 쉬프터(738), 제1 클립부(742)를 포함한다.
상기 [수식 1a]는 수식 전개를 통하여 [수식 1b]로 변환되고, 제1 FIR 필터 들(720a, 720b, 720c, 720d) 각각의 구조는 [수식 1b]를 이용하여 구현된다.
[수식 1b]
1hp = min(255, max(0, ((p0+p5)+(4(p2+p3)-(p1+p4))
+4(4(p2+p3)-(p1+p4))+16)>>5))
(단, 상기 p0, p1, p2, p3, p4, p5는 8비트의 정수 픽셀을 나타내고, 상기 1hp는 8비트의 제1 하프 픽셀을 나타낸다.)
[수식 1b]를 참조하면, (p0+p5)+(4(p2+p3)-(p1+p4))+4(4(p2+p3)-(p1+p4)) 식의 연산 결과는 제2 하프 픽셀들을 만들기 위하여 하프 버퍼(500)에 전달된다. 여기서 4(p2+p3)-(p1+p4) 식의 연산 결과는 (+) 혹은 (-) 값을 가질 수 있기 때문에 최소 15 비트 이상이 되어야 한다. 따라서 (p0+p5)+(4(p2+p3)-(p1+p4))+4(4(p2+p3) -(p1+p4)) 식의 연산 결과에 상응하는 출력 값은 15 비트 또는 그 이상의 비트 값을 갖는다. 즉, 하프 버퍼(500)에 전달되는 출력 값은 15 비트 또는 그 이상의 비트 값을 갖는다.
그리고, (p0+p5)+(4(p2+p3)-(p1+p4))+4(4(p2+p3)-(p1+p4))+16 식의 연산 결과에 해당하는 부분은 제1 하프 픽셀들을 만들기 위한 출력 값이다. 또한, 상기 연산 결과에 해당하는 부분은 제1 쿼터 픽셀들을 만들기 위하여 제3 인터폴레이터(800)에 전달된다. 제1 클립부(742)는 만약 이 결과 값이 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력한다. 즉, 제1 클립부(742)는 상기 결과 값을 클리핑하여 8 비트의 값으로 조정한다. 따라서 제1 클립부(742)의 출력 값은 8 비트이며, 제1 하프 픽셀들이 된다.
제1 덧셈기(731)는 p0과 p5 사이에 덧셈 연산을 수행하고, 제2 덧셈기(732)는 p2와 p3 사이에 덧셈 연산을 수행하며, 제3 덧셈기(733)는 p1과 p4 사이에 덧셈 연산을 수행한다. 제1 쉬프터(734)는 제2 덧셈기(732)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하고, 제1 뺄셈기(735)는 제1 쉬프터(734)의 연산 결과와 제3 덧셈기(733)의 연산 결과 사이에 뺄셈 연산을 수행하며, 제4 덧셈기(736)는 제 1 덧셈기(741)의 연산 결과와 제 1 뺄셈기(735)의 연산 결과 사이에 덧셈 연산을 수행한다. 제2 쉬프터(737)는 제1 뺄셈기(735)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하고, 제3 쉬프터(738)는 제 1 뺄셈기(735)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하며, 제5 덧셈기(739)는 제3 쉬프터(738)의 연산 결과와 라운드 계수인 16 사이에 덧셈 연산을 수행한다. 제6 덧셈기(740)는 제2 쉬프터(737)의 연산 결과와 제4 덧셈기(736)의 연산 결과 사이에 덧셈 연산을 수행하고 그 결과를 하프 버퍼(500)로 출력한다. 제7 덧셈기(741)는 제4 덧셈기(736)의 연산 결과와 제5 덧셈기(739)의 연산 결과 사이에 덧셈 연산을 수행하고, 제1 클립부(742)는 제7 덧셈기(741)의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력한다.
도 9a는 도 5의 고속 움직임 보상 장치 내부의 제2 인터폴레이터를 나타내는 도면이다.
도 9a를 참조하면, 제2 인터폴레이터(750)는 6-tap FIR 필터링을 수행하는 4개의 제2 FIR 필터들(770a, 770b, 770c, 770d)을 포함한다.
제2 FIR 필터들(770a, 770b, 770c, 770d)은 하프 버퍼에서 출력된 15 비트의 제1 하프 픽셀들(772a, 772b, 772c, 772d, 772e, 772f, 772g, 772h, 772i)을 입력받는다. 루마(LUMA)에서 제2 하프 픽셀들을 얻기 위해서는 6-tap FIR 필터링을 해야 한다. 상기 6-tap FIR 필터링은 [수식 2a]를 기반으로 한다.
[수식 2a]
2hp = min(255, max(0, (1HP0-5HP1+20HP2+20HP3-5HP4+HP5+512)>>10))
(단, 상기 HP0, HP1, HP2, HP3, HP4, HP5는 하프 버퍼에 저장된 15 비트의 제1 하프 픽셀을 나타내고, 상기 2hp는 8 비트의 제2 하프 픽셀을 나타낸다.)
제1 인터폴레이터(700)에 포함된 4개의 제1 FIR 필터들(720a, 720b, 720c, 720d)은 제1 클립부(742)에서 8 비트의 값으로 클리핑된 연산 결과와 제1 클립부(742)에서 클리핑이 되지 않은 연산 결과를 출력한다. 이 때에, [수식 1b]에서 (p0+p5)+(4(p2+p3)-(p1+p4))+4(4(p2+p3)-(p1+p4)) 식의 연산 결과에 해당하는 출력 값 즉, 15비트의 출력 값들은 하프 버퍼(500)에 저장된다. 이후, 하프 버퍼(500)에 한 번에 4개 픽셀씩 9번에 걸쳐서 저장된 상기 15비트의 출력 값들은 9개 픽셀씩 4번에 걸쳐서 제2 FIR 필터들(770a, 770b, 770c, 770d)에 입력되어 6-tap FIR 필터링 된다. 제2 하프 픽셀들은 제2 FIR 필터들(770a, 770b, 770c, 770d)에서 6-tap 필터링 된 출력 값에 상응하여 생성된다. 이 때, 1개의 제2 하프 픽셀을 생성하기 위해서는 제1 클립부(742)에서 0과 255 사이로 클리핑이 되지 않은 6개의 제1 하프 픽셀들이 필요하다.
도 9b는 도 9a의 제2 인터폴레이터 내부의 제2 FIR 필터 구조를 나타내는 도면이다.
도 9b를 참조하면, 상기 제2 FIR 필터들(770a, 770b, 770c, 770d) 각각은 제8 덧셈기(781), 제9 덧셈기(782), 제10 덧셈기(783), 제11 덧셈기(786), 제12 덧셈기(788), 제13 덧셈기(789), 제2 뺄셈기(785), 제4 쉬프터(784), 제5 쉬프터(787), 제6 쉬프터(790), 및 제2 클립부(791)를 포함한다.
4개의 제2 하프 픽셀들을 생성하기 위해서 제1 인터폴레이터(700)에 포함된 제1 클립부(742)에서 클리핑이 되지 않은 15비트의 출력 값을 가지는 9개(772a, 772b, 772c, 772d, 772e, 772f, 772g, 772h, 772i)의 제1 하프 픽셀들이 입력된다. 그후, 제2 FIR 필터들(770a, 770b, 770c, 770d)에 의해 생성된 4개의 제2 하프 픽셀들은 [수식 2a]를 변형한 [수식 2b]를 기반으로 필터링 되고, 한 클럭 사이클 내에서 처리되어 출력된다.
[수식 2b]
2hp = min(255, max(0, ((HP0+HP5)+(4(HP2+HP3)-(HP1+HP4))
+4(4(HP2+HP3)-(HP1+HP4))+512)>>10))
(단, 상기 HP0, HP1, HP2, HP3, HP4, HP5는 하프 버퍼에 저장된 15 비트의 제1 하프 픽셀을 나타내고, 상기 2hp는 8 비트의 제2 하프 픽셀을 나타낸다.)
먼저 제2 FIR 필터(770a, 770b, 770c, 770d)는 제1 클립부(742)에서 클리핑이 되지 않은 15 비트의 제1 하프 픽셀들을 입력받아 제2 하프 픽셀들을 출력한다. 제2 FIR 필터들(770a, 770b, 770c, 770d)은 [수식 2a] 및 [수식 2b]에 나타난 바와 같이, 라운드 계수로서 512를 사용하고, 연산 결과를 10 비트만큼 오른쪽으로 쉬프트함으로써 출력 값을 8 비트로 조정하여 출력한다. 즉, 연산 결과 값이 0보다 작 을 경우에는 0으로, 255보다 클 경우에는 255로, 0과 255 사이에 있을 경우에는 연산 결과 값을 그대로 출력한다.
제8 덧셈기(781)는 HP0과 HP5 사이에 덧셈 연산을 수행하고, 제9 덧셈기(782)는 HP2와 HP3 사이에 덧셈 연산을 수행하며, 제10 덧셈기(783)는 HP1과 HP4 사이에 덧셈 연산을 수행한다. 제4 쉬프터(784)는 제9 덧셈기(782)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하고, 제2 뺄셈기(785)는 제 4 쉬프터(784)의 연산 결과와 제 10 덧셈기(783)의 연산 결과 사이에 뺄셈 연산을 수행하며, 제11 덧셈기(786)는 제8 덧셈기(781)의 연산 결과와 제2 뺄셈기(785)의 연산 결과 사이에 덧셈 연산을 수행한다. 제5 쉬프터(787)는 제2 뺄셈기(785)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하고, 제12 덧셈기(788)는 제 5 쉬프터(787)의 연산 결과와 라운드 계수인 512 사이에 덧셈 연산을 수행하며, 제13 덧셈기(789)는 제 11 덧셈기(786)의 연산 결과와 제 12 덧셈기(788)의 연산 결과 사이에 덧셈 연산을 수행한다. 제6 쉬프터(790)는 제 13 덧셈기(789)의 연산 결과를 오른쪽으로 10비트 쉬프트하는 연산을 수행하고, 제2 클립부(791)는 제6 쉬프터(790)의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력한다.
도 10a는 도 5의 고속 움직임 보상 장치 내부의 제3 인터폴레이터를 나타내는 도면이다.
도 10a를 참고하면, 제3 인터폴레이터(800)는 평균 값을 구하는 연산을 수행하는 4개의 제1 평균 필터들(820a, 820b, 820c, 820d)을 포함한다.
제1 평균 필터들(820a, 820b, 820c, 820d)은 정수 픽셀들(821a, 821b, 821c, 821d)과 제1 하프 픽셀(822a, 822b, 822c, 822d)들을 입력받는다. 루마(LUMA)에서 제1 쿼터 픽셀들은 제3 인터폴레이터(800)를 이용하여 제1 인터폴레이터(700) 내부의 제1 클립부(742)에서 클리핑된 제1 하프 픽셀들(822a, 822b, 822c, 822d)과 정수 픽셀들(821a, 821b, 821c, 821d)의 평균값을 구함으로써 생성된다. 제3 인터폴레이터(800)는 4개의 제1 평균 필터들(820a, 820b, 820c, 820d)을 포함하며, 한 클럭 사이클 당 4개의 제1 쿼터 픽셀들을 생성할 수 있다.
도 10b는 도 10a의 제3 인터폴레이터 내부의 제1 평균 필터 구조를 나타내는 도면이다.
도 10b를 참조하면, 제1 평균 필터들 각각은 제14 덧셈기(831), 제15 덧셈기(832), 및 제7 쉬프터(833)를 포함한다.
제14 덧셈기(831)는 제1 클립부(742)로부터 클리핑이 된 제1 하프 픽셀과 정수 픽셀 사이에 덧셈 연산을 수행하고, 제15 덧셈기(832)는 제 14 덧셈기(831)의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행한다. 제7 쉬프터(833)는 제15 덧셈기(832)의 연산 결과를 오른쪽으로 1 비트 쉬프트하는 연산을 수행함으로써 제1 쿼터 픽셀들을 생성한다.
도 11a는 도 5의 고속 움직임 보상 장치 내부의 제4 인터폴레이터를 나타내는 도면이다.
도 11a를 참조하면, 제4 인터폴레이터(850)는 평균값을 구하는 연산을 수행하는 4개의 제2 평균 필터들(870a, 870b, 870c, 870d)을 포함한다.
제2 평균 필터들(870a, 870b, 870c, 870d)은 제1 하프 픽셀들(871a, 871b, 871c, 871d)과 제2 하프 픽셀들(872a, 872b, 872c, 872d)들을 입력받는다. 루마(LUMA)에서 제4 인터폴레이터(850)는 입력으로 제1 하프 픽셀들과 제2 하프 픽셀들을 받아들여 제1 하프 픽셀들과 제2 하프 픽셀들 사이의 평균값을 구하여 제2 쿼터 픽셀들을 생성하거나 또는, 제1 하프 픽셀들을 받아들여 제1 하프 픽셀들 사이의 평균값을 구하여 제2 쿼터 픽셀들을 생성한다. 제4 인터폴레이터(850)는 4개의 제2 평균 필터들(870a, 870b, 870c, 870d)을 포함하고, 한 클럭 사이클 당 4개의 제2 쿼터 픽셀들을 만들 수 있다. 예를 들어 도 3a, 도 3b, 및 도 3c의 제2 쿼터 픽셀인 서브 픽셀 e 를 생성하기 위해서 입력으로 도 3a, 도 3b, 및 도 3c의 제1 하프 픽셀인 서브 픽셀 b 와 제1 하프 픽셀인 서브 픽셀 h 를 받아들이고, 그 값을 라운드 계수인 1을 이용해서 평균값을 구함으로써 제2 쿼터 픽셀인 서브 픽셀 e 을 생성한다. 또는, 도 3a, 도 3b, 및 도 3c의 제2 쿼터 픽셀인 서브 픽셀 i 를 생성하기 위해서 입력으로 도 3a, 도 3b, 및 도 3c의 제1 하프 픽셀인 서브 픽셀 b 와 제2 하프 픽셀인 서브 픽셀 j 를 받아들이고, 그 값을 라운드 계수인 1을 이용하여 평균값을 구함으로써 제2 쿼터 픽셀인 서브 픽셀 i 를 생성한다. 즉, 제4 인터폴레이터(850)에서 입력을 결정하는 것은 생성될 제2 쿼터 픽셀들의 위치이다.
도 11b는 도 11a의 제4 인터폴레이터 내부의 제2 평균 필터 구조를 나타내는 도면이다.
도 11b를 참조하면, 제2 평균 필터들 각각은 제16 덧셈기(881), 제17 덧셈기(882), 및 제7 쉬프터(883)를 포함한다.
제16 덧셈기(881)는 제1 하프 픽셀과 제2 하프 픽셀 사이에, 또는 제1 하프 픽셀들 사이에 덧셈 연산을 수행한다. 제17 덧셈기(882)는 제16 덧셈기(881)의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하고, 제7 쉬프터(883)는 제 17 덧셈기(882)의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행함으로써 제2 쿼터 픽셀들을 생성한다.
도 12a는 도 5의 고속 움직임 보상 장치 내부의 크로마 필터부의 쌍일차 필터링을 나타내는 도면이다.
도 12a를 참조하면, 크로마 필터부(600)는 크로마 픽셀들을 생성할 때, 주변의 참조 픽셀들에 가중치를 가한 쌍일차 필터링을 이용한다. 픽셀 A, B, C, D는 정수 픽셀들을 나타내며, 픽셀 cp는 쌍일차 필터링을 이용하여 생성된 크로마 픽셀을 나타낸다. 벡터 dx, dy는 각각 크로마 픽셀의 해상도를 표현하는 움직임 벡터를 나타낸다.
이 경우, 크로마 픽셀들은 다음의 [수식 3a]를 이용하여 생성된다.
[수식 3a]
cp = ((8-dy)×(8-dx)×A + dx×(8-dy)×B
+ (8-dx)×dy×C + dx×dy×D + 32) >> 5
(단, 상기 A, B는 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내고, 상기 C, D는 상기 A, B가 상기 크로마 필터부에 입력된 때로부터 1 클럭 사이클이 지난 후 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내며, 상기 dx, dy는 움직임 벡터의 하위 3 비트를 나타내고, 상기 cp는 8 비트의 크로마 픽셀을 나타낸다.)
[수식 3a]에 나타난 바와 같이, 크로마 픽셀이 특정의 정수 픽셀에 가까이 있을 경우에는 그 정수 픽셀 값에 큰 영향을 받는다. 예를 들어 움직임 벡터 dx, dy 값이 작아서 크로마 픽셀 cp가 정수 픽셀 A에 가까이 있다고 하면, 움직임 벡터 (8-dy)와 (8-dx)가 움직임 벡터 dx나 dy에 비해 큰 값이 되기 때문에 크로마 픽셀 cp는 정수 픽셀 A와 비슷한 값을 갖게 된다.
도 12b는 도 5의 고속 움직임 보상 장치 내부의 크로마 필터부를 나타내는 도면이다.
도 12b를 참조하면, 크로마 필터부(600)는 4개의 쌍일차 필터들(620a, 620b, 620c, 620d)을 포함한다.
쌍일차 필터들(620a, 620b, 620c, 620d)은 정수 픽셀들(635a, 635b, 635c, 635d)과 한 사이클 이전의 정수 픽셀들(630a, 630b, 630c, 630d)을 입력받는다. 크로마(CHROMA)에서 크로마 픽셀들은 4개의 정수 픽셀들에 움직임 벡터에 따른 계수를 각각 곱하고, 그 값들을 더함으로써 생성된다. 움직임 벡터에서 하위 3 비트 즉, 소수점을 나타내는 부분을 움직임 벡터 dx, dy라고 할 경우에 크로마 픽셀들은 [수식 3a]를 변환한 [수식 3b]를 이용하여 구한다.
[수식 3b]
cp = ((8-dx)×(8×A + dy×(C-A))
+ dx×(8×B + dy×(D-B)) + 32) >> 5
(단, 상기 A, B는 상기 크로마 필터부에 입력된 8비트의 정수 픽셀을 나타내 고, 상기 C, D는 상기 A, B가 상기 크로마 필터부에 입력된 때로부터 1 클럭 사이클이 지난 후에 상기 크로마 필터부에 입력된 8비트의 정수 픽셀을 나타내며, 상기 dx, dy는 움직임 벡터의 하위 3 비트를 나타내고, 상기 cp는 8비트의 크로마 픽셀을 나타낸다.)
크로마 필터부(600)는 1개의 크로마 픽셀을 얻기 위해서 2개의 정수 픽셀들과 그 아래에 있는 2개의 정수 픽셀들 즉, 총 4 개의 정수 픽셀들을 이용하여 쌍일차 필터링을 수행한다. 그러므로 정수 픽셀들이 한 라인씩 들어올 경우, 이전 정수 픽셀 라인들은 임시적인 레지스터에 저장되어 있어야 한다. 즉, 이전에 저장된 정수 픽셀들(630a, 630b, 630c, 630d, 630e)은 도 12a의 정수 픽셀 A, B에 해당하며 임시적인 레지스터에 저장된다. 한 클럭 사이클이 지난 후, 도 12a의 정수 픽셀 C, D에 해당하는 정수 픽셀들(635a, 635b, 635c, 635d, 635e)이 입력되면 쌍일차 필터들(620a, 620b, 620c, 620d)은 4개의 정수 픽셀들 즉, 도 12a의 정수 픽셀 A, B, C, D를 이용하여 크로마 픽셀들을 생성한다.
크로마 필터부(600)는 4개의 쌍일차 필터들(620a, 620b, 620c, 620d)을 포함하고 있기 때문에 4개의 크로마 픽셀들을 한 클럭 사이클에 생성할 수 있다. 따라서 5개의 정수 픽셀 라인들을 연속해서 채울 경우 한 클럭 사이클의 지연과 함께 연속적으로 크로마 픽셀들을 얻을 수 있다. 즉, 4×4 크로마 픽셀들로 이루어진 크로마 픽셀 블록을 5 클럭 사이클에 생성할 수 있다. 이때, 크로마 필터부(600)에서 한 클럭 사이클의 지연이 생기는 이유는 이전 정수 픽셀들(630a, 630b, 630c, 630d, 630e)이 필요하기 때문이다.
도 12c는 도 12b의 크로마 필터부 내부의 쌍일차 필터 구조를 나타내는 도면이다.
도 12c를 참조하면, 쌍일차 필터들(620a, 620b, 620c, 620d)은 제1 서브 유닛(650), 제2 서브 유닛(660), 제3 서브 유닛(670), 제4 서브 유닛(685), 제18 덧셈기(698), 및 제8 쉬프터(699)를 포함한다.
[수식 3a]를 참조하면, 곱셈 연산이 많이 사용되어 있음을 알 수 있다. [수식 3a]의 곱셈 연산을 수행하기 위하여 쌍일차 필터들(620a, 620b, 620c, 620d)에서는 [수식 3a]를 변형한 [수식 3b]를 이용하여 덧셈 연산을 수행한다.
움직임 벡터 dy는 3 비트로 이루어진 변수이며, dx×(C-A) 항은 [수식 4]와 같이 전개할 수 있다.
[수식 4]
dy[2:0]×(C-A) = dy[2]×(C-A) + dy[1]×(C-A) + dy[0]×(C-A)
[수식 4]에서 곱셈 연산은 AND 연산자(&)로 대체 할 수 있으므로, (C-A)의 결과에 dy[2], dy[1], dy[0]를 AND 연산하고 각 bit의 AND 연산 결과를 더하면 dy×(C-A) 항의 연산 결과를 얻을 수 있다. 마찬가지로 dy×(D-B) 항도 같은 방법으로 연산 결과를 얻을 수 있다.
8×A 연산과 8×B 연산의 경우에는 상기 A 또는 B를 3 비트만큼 왼쪽으로 쉬프트함으로써 구할 수 있다. 따라서 [수식 3b]에서 사용된 곱셈 연산은 모두 AND 연산으로 표현할 수 있고, 쌍일차 필터들(620a, 620b, 620c, 620d)은 각각 AND 게이트들과 덧셈기들로 구현할 수 있다. 여기서 AND 게이트들로 표현된 연산은 두 개 의 bit를 AND 연산하는 것이 아니라 dy[2]와 같은 하나의 bit와 (C-A)와 같은 변수 사이의 AND 연산을 의미한다.
제1 서브 유닛(640)은 제3 뺄셈기(641), 제1 AND 게이트(643), 제2 AND 게이트(644), 제3 AND 게이트(642), 제9 쉬프터(646), 제10 쉬프터(647), 제11 쉬프터(645), 제19 덧셈기(648), 제20 덧셈기(649), 및 제21 덧셈기(650)를 포함한다. 제3 뺄셈기(641)는 C와 A 사이에 뺄셈 연산을 수행하고, 제1 AND 게이트(643)는 제3 뺄셈기(641)의 연산 결과와 dy 간의 AND 연산을 수행하며, 제2 AND 게이트(644)는 제3 뺄셈기(641)의 연산 결과와 dy 간의 AND 연산을 수행한다. 제3 AND 게이트(642)는 제3 뺄셈기(641)의 연산 결과와 dy 간의 AND 연산을 수행하고, 제9 쉬프터(646)는 제1 AND 게이트(643)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하며, 제10 쉬프터(647)는 제2 AND 게이트(644)의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행한다. 제11 쉬프터(645)는 A를 왼쪽으로 3비트 쉬프트하는 연산을 수행하고, 제19 덧셈기(648)는 제11 쉬프터(645)의 연산 결과와 제9 쉬프터(646)의 연산 결과 사이에 덧셈 연산을 수행하며, 제20 덧셈기(649)는 제10 쉬프터(647)의 연산 결과와 제3 AND 게이트(642)의 연산 결과 사이에 덧셈 연산을 수행한다. 제21 덧셈기(650)는 제19 덧셈기(648)의 연산 결과와 제20 덧셈기(649)의 연산 결과 사이에 덧셈 연산을 수행한다.
제2 서브 유닛(655)은 제4 뺄셈기(656), 제4 AND 게이트(657), 제5 AND 게이트(658), 제6 AND 게이트(659), 제7 AND 게이트(660), 제12 쉬프터(661), 제13 쉬프터(662), 제22 덧셈기(663), 제23 덧셈기(664), 및 제24 덧셈기(665)를 포함한 다. 제4 뺄셈기(656)는 라운드 계수인 8과 dx 사이에 뺄셈 연산을 수행하고, 제4 AND 게이트(657)는 제4 뺄셈기(656)의 연산 결과와 제21 덧셈기(650)의 연산 결과 사이에 AND 연산을 수행하며, 제5 AND 게이트(658)는 제4 뺄셈기(656)의 연산 결과와 제21 덧셈기(650)의 연산 결과 사이에 AND 연산을 수행한다. 제6 AND 게이트(659)는 제4 뺄셈기(656)의 연산 결과와 제21 덧셈기(650)의 연산 결과 사이에 AND 연산을 수행하고, 제7 AND 게이트(660)는 제4 뺄셈기(656)의 연산 결과와 제21 덧셈기(650)의 연산 결과 사이에 AND 연산을 수행하며, 제12 쉬프터(661)는 제4 AND 게이트(657)의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행한다. 제13 쉬프터(662)는 제6 AND 게이트(659)의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하고, 제22 덧셈기(663)는 제12 쉬프터(661)의 연산 결과와 제5 AND 게이트(658)의 연산 결과 사이에 덧셈 연산을 수행하며, 제23 덧셈기(664)는 제13 쉬프터(662)의 연산 결과와 제7 AND 게이트(660)의 연산 결과 사이에 덧셈 연산을 수행한다. 제24 덧셈기(665)는 제22 덧셈기(663)의 연산 결과와 제23 덧셈기(664)의 연산 결과 사이에 덧셈 연산을 수행한다.
제3 서브 유닛(670)은 제5 뺄셈기(671), 제8 AND 게이트(672), 제9 AND 게이트(673), 제10 AND 게이트(674), 제14 쉬프터(675), 제15 쉬프터(676), 제16 쉬프터(677), 제25 덧셈기(678), 제26 덧셈기(679), 및 제27 덧셈기(680)를 포함한다. 제5 뺄셈기(671)는 D와 B 사이에 뺄셈 연산을 수행하고, 제8 AND 게이트(672)는 제5 뺄셈기(671)의 연산 결과와 dy 사이에 AND 연산을 수행하며, 제9 AND 게이트(673)는 제5 뺄셈기(671)의 연산 결과와 dy 사이에 AND 연산을 수행한다. 제10 AND 게이트(674)는 제 5 뺄셈기(671)의 연산 결과와 dy 사이에 AND 연산을 수행하고, 제14 쉬프터(675)는 제 8 AND 게이트(672)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하며, 제15 쉬프터(676)는 제 9 AND 게이트(673)의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행한다. 제16 쉬프터(677)는 B를 왼쪽으로 3비트 쉬프트하는 연산을 수행하고, 제25 덧셈기(678)는 제16 쉬프터(677)의 연산 결과와 제14 쉬프터(675)의 연산 결과 사이에 덧셈 연산을 수행하며, 제26 덧셈기(679)는 제15 쉬프터(676)의 연산 결과와 제10 AND 게이트(674)의 연산 결과 사이에 덧셈 연산을 수행한다. 제27 덧셈기(680)는 제25 덧셈기(678)의 연산 결과와 제26 덧셈기(679)의 연산 결과 사이에 덧셈 연산을 수행한다.
제4 서브 유닛(685)은 제11 AND 게이트(686), 제12 AND 게이트(687), 제13 AND 게이트(688), 제17 쉬프터(689), 제18 쉬프터(690), 제28 덧셈기(691), 제29 덧셈기(692), 및 제30 덧셈기(693)를 포함한다. 제11 AND 게이트(686)는 제 27 덧셈기(680)의 연산 결과와 dx 사이에 AND 연산을 수행하고, 제12 AND 게이트(687)는 제 27 덧셈기(680)의 연산 결과와 dx 사이에 AND 연산을 수행하며, 제13 AND 게이트(688)는 제 27 덧셈기(680)의 연산 결과와 dx 사이에 AND 연산을 수행한다. 제17 쉬프터(689)는 제11 AND 게이트(686)의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하고, 제18 쉬프터(690)는 제12 AND 게이트(687)의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하며, 제28 덧셈기(691)는 라운드 계수인 32와 상기 제 17 쉬프터(689)의 연산 결과 사이에 덧셈 연산을 수행한다. 제29 덧셈기(692)는 제18 쉬프터(690)의 연산 결과와 제13 AND 게이트(688)의 연산 결과 사이에 덧셈 연산을 수행하고, 제30 덧셈기(693)는 제28 덧셈기(691)의 연산 결과와 제29 덧셈기(692)의 연산 결과 사이에 덧셈 연산을 수행한다.
제18 덧셈기(698)는 제2 서브 유닛(655)의 연산 결과와 제4 서브 유닛(685)의 연산 결과 사이에 덧셈 연산을 수행하고, 제8 쉬프터(699)는 제18 덧셈기(698)의 연산 결과를 오른쪽으로 6 비트 쉬프트하는 연산을 수행하여 크로마 픽셀들을 생성한다.
도 13은 도 5의 고속 움직임 보상 장치의 처리 능력을 나타내는 도면이다.
도 13을 참조하면, 도 13은 도 5의 고속 움직임 보상 장치(1000)가 MB당 메모리 접근을 110회에서 190회 사이에 하고 있음을 보여준다. 이는 이전 기술에 비해 메모리 접근을 65%에서 80% 가량 줄인 결과로서, 도 5의 고속 움직임 보상 장치(1000)는 MB 당 움직임 보상을 평균적으로 150 싸이클 이내에 수행할 수 있다.
본 발명에 따른 고속 움직임 보상 장치 및 고속 움직임 보상 방법은 중첩된 참조 픽셀들을 효율적으로 관리하고, 워드 주소에 분포되어 있는 참조 픽셀들을 효율적으로 정렬함으로써 메모리 접근 횟수를 줄여 고속으로 움직임 보상을 할 수 있다. 본 발명에 따른 고속 움직임 보상 장치 및 고속 움직임 보상 방법은 H.264/AVC 영상 압축 방식 및 움직임 보상을 요구하는 영상 압축 방식 등에 적용이 가능하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경 시킬 수 있음을 이해할 수 있을 것이다.
도 1a 및 도 1b는 서브 매크로블록의 파티션에 따른 참조 픽셀들을 나타내는 도면이다.
도 2a 및 도 2b는 워드 주소에 분포된 참조 픽셀들을 나타내는 도면이다.
도 3a, 도 3b, 및 도 3c는 생성되는 서브 픽셀들에 따라 이용되는 참조 픽셀들을 나타내는 도면이다.
도 4a, 도 4b, 도 4c, 및 도 4d는 생성되는 서브 픽셀들에 따른 움직임 보상에 필요한 참조 픽셀들의 개수를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 고속 움직임 보상 장치를 나타내는 블록도이다.
도 6a는 도 5의 고속 움직임 보상 장치 내부의 버스 인터페이스부를 나타내는 도면이다.
도 6b는 도 6a의 버스 인터페이스부로 입력되는 참조 픽셀들이 워드 주소에 분포된 하나의 예를 나타내는 도면이다.
도 7a, 도 7b, 도 7c, 및 도 7d는 도 5의 고속 움직임 보상 장치 내부의 버퍼부에 저장되는 중첩영역을 나타내는 도면이다.
도 8a는 도 5의 고속 움직임 보상 장치 내부의 제1 인터폴레이터를 나타내는 도면이다.
도 8b는 도 8a의 제1 인터폴레이터 내부의 제1 FIR 필터 구조를 나타내는 도면이다.
도 9a는 도 5의 고속 움직임 보상 장치 내부의 제2 인터폴레이터를 나타내는 도면이다.
도 9b는 도 9a의 제2 인터폴레이터 내부의 제2 FIR 필터 구조를 나타내는 도면이다.
도 10a는 도 5의 고속 움직임 보상 장치 내부의 제3 인터폴레이터를 나타내는 도면이다.
도 10b는 도 10a의 제3 인터폴레이터 내부의 제1 평균 필터 구조를 나타내는 도면이다.
도 11a는 도 5의 고속 움직임 보상 장치 내부의 제4 인터폴레이터를 나타내는 도면이다.
도 11b는 도 11a의 제4 인터폴레이터 내부의 제2 평균 필터 구조를 나타내는 도면이다.
도 12a는 도 5의 고속 움직임 보상 장치 내부의 크로마 필터부의 쌍일차 필터링을 나타내는 도면이다.
도 12b는 도 5의 고속 움직임 보상 장치 내부의 크로마 필터부를 나타내는 도면이다.
도 12c는 도 12b의 크로마 필터부 내부의 쌍일차 필터 구조를 나타내는 도면이다.
도 13은 도 5의 고속 움직임 보상 장치의 처리 능력을 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 버스 인터페이스부 120 : 제1 버퍼
140 : 제2 버퍼 200 : 버퍼부
220 : 제3 버퍼 240 : 제4 버퍼
300 : 입력 레지스터 350 : 주소 생성부
400 : MC 컨트롤러부 450 : 정수 버퍼
500 : 하프 버퍼 600 : 크로마 필터부
700 : 제1 인터폴레이터 750 : 제2 인터폴레이터
800 : 제3 인터폴레이터 850 : 제4 인터폴레이터
900 : 인터폴레이션부 1000 : 고속 움직임 보상 장치

Claims (37)

  1. 움직임 보상을 위한 참조 픽셀들을 이용하여 서브 픽셀들을 생성하는 움직임 보상 장치에 있어서,
    외부 저장 장치로부터 복수의 워드 주소들을 읽고, 상기 워드 주소들에 걸쳐 있는 상기 참조 픽셀들을 정렬하여 임시로 저장하며, 임시 저장된 상기 참조 픽셀들을 순차적으로 출력하기 위한 버스 인터페이스부;
    상기 버스 인터페이스부에서 출력되는 상기 참조 픽셀들을 이용하여 제1 하프 픽셀들, 제2 하프 픽셀들, 제1 쿼터 픽셀들 및 제2 쿼터 픽셀들을 생성하기 위한 인터폴레이션부; 및
    상기 버스 인터페이스부에서 출력되는 상기 참조 픽셀들을 이용하여 크로마 픽셀들을 생성하기 위한 크로마 필터부를 포함하는 고속 움직임 보상 장치.
  2. 제 1 항에 있어서, 상기 버스 인터페이스부는 현재 움직임 보상을 위해 사용되는 제1 참조 픽셀들을 저장하기 위한 제1 버퍼를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  3. 제 2 항에 있어서, 상기 버스 인터페이스부는 차후 움직임 보상을 위해 사용될 제2 참조 픽셀들을 저장하기 위한 제2 버퍼를 더 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  4. 제 1 항에 있어서,
    상기 버스 인터페이스부에서 출력되는 상기 참조 픽셀들 중에서 상기 서브 픽셀들을 생성하는데 있어 중첩되어 사용될 중첩 참조 픽셀들을 임시로 저장하기 위한 버퍼부를 더 포함하고,
    상기 인터폴레이션부는 상기 버스 인터페이스부에서 출력되는 상기 참조 픽셀들을 입력받되, 상기 버퍼부에 상기 중첩 참조 픽셀들이 저장되어 있는 경우에는 상기 중첩 참조 픽셀들을 상기 버퍼부로부터 입력받는 것을 특징으로 하는 고속 움직임 보상 장치.
  5. 제 4 항에 있어서, 상기 버퍼부는
    상기 참조 픽셀들 중에서 수직 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하는데 있어 중첩되어 사용될 상기 중첩 참조 픽셀들을 저장하기 위한 제3 버퍼; 및
    상기 참조 픽셀들 중에서 수평 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하는데 있어 중첩되어 사용될 상기 중첩 참조 픽셀들을 저장하기 위한 제4 버퍼를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  6. 제 1 항에 있어서, 상기 인터폴레이션부는
    상기 참조 픽셀들인 정수 픽셀들 사이에 인터폴레이션을 하여 제1 하프 픽셀들을 생성하는 제1 인터폴레이터;
    상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 하프 픽셀들을 생성하는 제2 인터폴레이터;
    상기 제1 하프 픽셀들 및 상기 정수 픽셀들 사이에 인터폴레이션을 하여 제1 쿼터 픽셀들을 생성하는 제3 인터폴레이터; 및
    상기 제1 하프 픽셀들 및 상기 제2 하프 픽셀들 사이에 인터폴레이션을 하거나 또는, 상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 쿼터 픽셀들을 생성하는 제4 인터폴레이터를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  7. 제 6 항에 있어서, 상기 제1 인터폴레이터는 4개의 제1 FIR 필터들을 포함하고, [수식 1a]의 변형식인 [수식 1b]를 이용하여 8 비트의 상기 제1 하프 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 장치.
    [수식 1a]
    1hp = min(255, max(0, (p0-5p1+20p2+20p3-5p4+p5+16)>>5))
    [수식 1b]
    1hp = min(255, max(0, ((p0+p5)+(4(p2+p3)-(p1+p4))
    +4(4(p2+p3)-(p1+p4))+16)>>5))
    (단, 상기 p0, p1, p2, p3, p4, p5는 8비트의 정수 픽셀을 나타내고, 상기 1hp는 8비트의 제1 하프 픽셀을 나타낸다.)
  8. 제 7 항에 있어서, 상기 제1 FIR 필터들 각각은
    상기 p0과 상기 p5 사이에 덧셈 연산을 수행하는 제1 덧셈기;
    상기 p2와 상기 p3 사이에 덧셈 연산을 수행하는 제2 덧셈기;
    상기 p1과 상기 p4 사이에 덧셈 연산을 수행하는 제3 덧셈기;
    상기 제2 덧셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제1 쉬프터;
    상기 제1 쉬프터의 연산 결과와 상기 제3 덧셈기의 연산 결과 사이에 뺄셈 연산을 수행하는 제1 뺄셈기;
    상기 제1 덧셈기의 연산 결과와 상기 제1 뺄셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제4 덧셈기;
    상기 제1 뺄셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제2 쉬프터;
    상기 제1 뺄셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제3 쉬프터;
    상기 제3 쉬프터의 연산 결과와 라운드 계수인 16 사이에 덧셈 연산을 수행하는 제5 덧셈기;
    상기 제2 쉬프터의 연산 결과와 상기 제4 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하고 상기 결과를 하프 버퍼로 출력하는 제6 덧셈기;
    상기 제4 덧셈기의 연산 결과와 상기 제5 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제7 덧셈기; 및
    상기 제7 덧셈기의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제1 클립부를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  9. 제 6 항에 있어서, 상기 제2 인터폴레이터는 4개의 제2 FIR 필터들을 포함하고, [수식 2a]의 변형식인 [수식 2b]를 이용하여 8 비트의 상기 제2 하프 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 장치.
    [수식 2a]
    2hp = min(255, max(0, (1HP0-5HP1+20HP2+20HP3-5HP4+HP5+512)>>10))
    [수식 2b]
    2hp = min(255, max(0, ((HP0+HP5)+(4(HP2+HP3)-(HP1+HP4))
    +4(4(HP2+HP3)-(HP1+HP4))+512)>>10))
    (단, 상기 HP0, HP1, HP2, HP3, HP4, HP5는 하프 버퍼에 저장된 15 비트의 제1 하프 픽셀을 나타내고, 상기 2hp는 8 비트의 제2 하프 픽셀을 나타낸다.)
  10. 제 9 항에 있어서, 상기 제2 FIR 필터들 각각은
    상기 HP0과 상기 HP5 사이에 덧셈 연산을 수행하는 제8 덧셈기;
    상기 HP2와 상기 HP3 사이에 덧셈 연산을 수행하는 제9 덧셈기;
    상기 HP1과 상기 HP4 사이에 덧셈 연산을 수행하는 제10 덧셈기;
    상기 제9 덧셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제4 쉬프터;
    상기 제4 쉬프터의 연산 결과와 상기 제10 덧셈기의 연산 결과 사이에 뺄셈 연산을 수행하는 제2 뺄셈기;
    상기 제8 덧셈기의 연산 결과와 상기 제2 뺄셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제11 덧셈기;
    상기 제2 뺄셈기의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제5 쉬프터;
    상기 제5 쉬프터의 연산 결과와 라운드 계수인 512 사이에 덧셈 연산을 수행하는 제12 덧셈기;
    상기 제11 덧셈기의 연산 결과와 상기 제12 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제13 덧셈기;
    상기 제13 덧셈기의 연산 결과를 오른쪽으로 10비트 쉬프트하는 연산을 수행하는 제6 쉬프터; 및
    상기 제6 쉬프터의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제2 클립부를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  11. 제 8 항에 있어서, 상기 제3 인터폴레이터는 4개의 제1 평균 필터들을 포함하고, 상기 제1 클립부에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 정수 픽셀들 사이의 평균값으로 8 비트의 상기 제1 쿼터 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 장치.
  12. 제 11 항에 있어서, 상기 제1 평균 필터들 각각은
    상기 제1 하프 픽셀과 상기 정수 픽셀 사이에 덧셈 연산을 수행하는 제14 덧 셈기;
    상기 제14 덧셈기의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제15 덧셈기; 및
    상기 제15 덧셈기의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프터를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  13. 제 8 항 또는 제 10 항에 있어서, 상기 제4 인터폴레이터는 4개의 제2 평균 필터들을 포함하고, 상기 제1 클립부에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 제2 클립부에서 출력된 8 비트의 상기 제2 하프 픽셀들 사이의 평균값 또는, 상기 제1 클립부에서 출력된 8 비트의 상기 제1 하프 픽셀들 사이의 평균값으로 8 비트의 상기 제2 쿼터 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 장치.
  14. 제 13 항에 있어서, 상기 제2 평균 필터들 각각은
    상기 제1 하프 픽셀과 상기 제2 하프 픽셀 사이에 또는, 상기 제1 하프 픽셀들 사이에 덧셈 연산을 수행하는 제16 덧셈기;
    상기 제16 덧셈기의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제17 덧셈기; 및
    상기 제17 덧셈기의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프터를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  15. 제 1 항에 있어서, 상기 크로마 필터부는 4개의 쌍일차 필터들을 포함하고, [수식 3a]의 변형식인 [수식 3b]를 이용하여 8 비트의 상기 크로마 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 장치.
    [수식 3a]
    cp = ((8-dy)×(8-dx)×A + dx×(8-dy)×B
    + (8-dx)×dy×C + dx×dy×D + 32) >> 5
    [수식 3b]
    cp = ((8-dx)×(8×A + dy×(C-A))
    + dx×(8×B + dy×(D-B)) + 32) >> 5
    (단, 상기 A, B는 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내고, 상기 C, D는 상기 A, B가 상기 크로마 필터부에 입력된 때로부터 1 클럭 사이클이 지난 후 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내며, 상기 dx, dy는 움직임 벡터의 하위 3 비트를 나타내고, 상기 cp는 8 비트의 크로마 픽셀을 나타낸다.)
  16. 제 15 항에 있어서, 상기 쌍일차 필터들 각각은
    상기 [수식 3b]의 (8×A + dy×(C-A)) 식을 논리 소자들로 구현한 제1 서브 유닛;
    상기 [수식 3b]의 (8×A + dy×(C-A)) 식에 상기 [수식 3b]의 (8-dx) 식을 곱한 (8×A + dy×(C-A))×(8-dx) 식을 논리 소자들로 구현한 제2 서브 유닛;
    상기 [수식 3b]의 (8×B + dy×(D - B)) 식을 논리 소자들로 구현한 제3 서브 유닛;
    상기 [수식 3b]의 (8×B + dy×(D - B)) 식에 상기 [수식 3b]의 dx을 곱하고, 라운드 계수인 32를 더한 (8×B + dy×(D - B))×dx + 32 식을 논리 소자들로 구현한 제4 서브 유닛;
    상기 제2 서브 유닛의 연산 결과와 상기 제4 서브 유닛의 연산 결과 사이에 덧셈 연산을 수행하는 제18 덧셈기; 및
    상기 제18 덧셈기의 연산 결과를 오른쪽으로 6비트 쉬프트하는 연산을 수행하는 제8 쉬프터를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  17. 제 16 항에 있어서, 상기 제1 서브 유닛은
    상기 C와 상기 A 사이에 뺄셈 연산을 수행하는 제3 뺄셈기;
    상기 제3 뺄셈기의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제1 AND 게이트;
    상기 제3 뺄셈기의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제2 AND 게이트;
    상기 제3 뺄셈기의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제3 AND 게이트;
    상기 제1 AND 게이트의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행 하는 제9 쉬프터;
    상기 제2 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제10 쉬프터;
    상기 A를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제11 쉬프터;
    상기 제11 쉬프터의 연산 결과와 상기 제9 쉬프터의 연산 결과 사이에 덧셈 연산을 수행하는 제19 덧셈기;
    상기 제10 쉬프터의 연산 결과와 상기 제3 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제20 덧셈기; 및
    상기 제19 덧셈기의 연산 결과와 상기 제20 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제21 덧셈기를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  18. 제 17 항에 있어서, 상기 제2 서브 유닛은
    라운드 계수인 8과 상기 dx 사이에 뺄셈 연산을 수행하는 제4 뺄셈기;
    상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제4 AND 게이트;
    상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제5 AND 게이트;
    상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제6 AND 게이트;
    상기 제4 뺄셈기의 연산 결과와 상기 제21 덧셈기의 연산 결과 사이에 AND 연산을 수행하는 제7 AND 게이트;
    상기 제4 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제12 쉬프터;
    상기 제6 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제13 쉬프터;
    상기 제12 쉬프터의 연산 결과와 상기 제5 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제22 덧셈기;
    상기 제13 쉬프터의 연산 결과와 상기 제7 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제23 덧셈기; 및
    상기 제22 덧셈기의 연산 결과와 상기 제23 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제24 덧셈기를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  19. 제 16 항에 있어서, 상기 제3 서브 유닛은
    상기 D와 상기 B 사이에 뺄셈 연산을 수행하는 제5 뺄셈기;
    상기 제5 뺄셈기의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제8 AND 게이트;
    상기 제5 뺄셈기의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제9 AND 게이트;
    상기 제5 뺄셈기의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제10 AND 게이트;
    상기 제8 AND 게이트의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제14 쉬프터;
    상기 제9 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제15 쉬프터;
    상기 B를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제16 쉬프터;
    상기 제16 쉬프터의 연산 결과와 상기 제14 쉬프터의 연산 결과 사이에 덧셈 연산을 수행하는 제25 덧셈기;
    상기 제15 쉬프터의 연산 결과와 상기 제10 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제26 덧셈기; 및
    상기 제25 덧셈기의 연산 결과와 상기 제26 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제27 덧셈기를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  20. 제 19 항에 있어서, 상기 제4 서브 유닛은
    상기 제27 덧셈기의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제11 AND 게이트;
    상기 제27 덧셈기의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제12 AND 게이트;
    상기 제27 덧셈기의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제13 AND 게이트;
    상기 제11 AND 게이트의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제17 쉬프터;
    상기 제12 AND 게이트의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제18 쉬프터;
    라운드 계수인 32와 상기 제17 쉬프터의 연산 결과 사이에 덧셈 연산을 수행하는 제28 덧셈기;
    상기 제18 쉬프터의 연산 결과와 상기 제13 AND 게이트의 연산 결과 사이에 덧셈 연산을 수행하는 제29 덧셈기; 및
    상기 제28 덧셈기의 연산 결과와 상기 제29 덧셈기의 연산 결과 사이에 덧셈 연산을 수행하는 제30 덧셈기를 포함하는 것을 특징으로 하는 고속 움직임 보상 장치.
  21. 움직임 보상을 위한 참조 픽셀들을 이용하여 서브 픽셀들을 생성하는 움직임 보상 방법에 있어서,
    외부 저장 장치의 복수의 워드 주소들을 읽어 오는 단계;
    상기 복수의 워드 주소들에 걸쳐 있는 상기 참조 픽셀들을 정렬하여 임시로 저장하는 단계;
    임시 저장된 상기 참조 픽셀들을 순차적으로 출력하는 단계;
    상기 참조 픽셀들 중에서 상기 서브 픽셀들을 생성하는데 있어 중첩되어 사용될 중첩 참조 픽셀들을 임시로 저장하는 단계;
    상기 참조 픽셀들 또는 상기 중첩 참조 픽셀들을 입력받아 상기 참조 픽셀들 또는 상기 중첩 참조 픽셀들인 정수 픽셀들 사이에 인터폴레이션을 하여 제1 하프 픽셀들을 생성하는 단계;
    상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 하프 픽셀들을 생성하는 단계;
    상기 제1 하프 픽셀들 및 상기 정수 픽셀들 사이에 인터폴레이션을 하여 제1 쿼터 픽셀들을 생성하는 단계;
    상기 제1 하프 픽셀들 및 상기 제2 하프 픽셀들 사이에 인터폴레이션을 하거나 또는, 상기 제1 하프 픽셀들 사이에 인터폴레이션을 하여 제2 쿼터 픽셀들을 생성하는 단계; 및
    상기 참조 픽셀들을 입력받아 상기 참조 픽셀들을 이용하여 크로마 픽셀들을 생성하는 단계를 포함하는 고속 움직임 보상 방법.
  22. 제 21 항에 있어서, 상기 참조 픽셀들을 정렬하여 임시로 저장하는 단계는
    현재 움직임 보상을 위해 사용되는 제1 참조 픽셀들을 저장하는 제1 버퍼링 단계; 및
    차후 움직임 보상을 위해 사용될 제2 참조 픽셀들을 저장하는 제2 버퍼링 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  23. 제 21 항에 있어서, 상기 중첩 참조 픽셀들을 임시로 저장하는 단계는
    상기 참조 픽셀들 중에서 수직 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하는데 있어 중첩되어 사용될 상기 중첩 참조 픽셀들을 저장하는 제3 버퍼링 단계; 및
    상기 참조 픽셀들 중에서 수평 방향 또는 대각선 방향으로 배열되어 있는 상기 서브 픽셀들을 생성하는데 있어 중첩되어 사용될 상기 중첩 참조 픽셀들을 저장하는 제4 버퍼링 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  24. 제 21 항에 있어서, 상기 제1 하프 픽셀들을 생성하는 단계는 4개의 제1 FIR 필터링 단계들을 포함하고, [수식 1a]의 변형식인 [수식 1b]를 이용하여 8 비트의 상기 제1 하프 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 방법.
    [수식 1a]
    1hp = min(255, max(0, (p0-5p1+20p2+20p3-5p4+p5+16)>>5))
    [수식 1b]
    1hp = min(255, max(0, ((p0+p5)+(4(p2+p3)-(p1+p4))
    +4(4(p2+p3)-(p1+p4))+16)>>5))
    (단, 상기 p0, p1, p2, p3, p4, p5는 8비트의 정수 픽셀을 나타내고, 상기 1hp는 8비트의 제1 하프 픽셀을 나타낸다.)
  25. 제 24 항에 있어서, 상기 제1 FIR 필터링 단계들 각각은
    상기 p0과 상기 p5 사이에 덧셈 연산을 수행하는 제1 덧셈 단계;
    상기 p2와 상기 p3 사이에 덧셈 연산을 수행하는 제2 덧셈 단계;
    상기 p1과 상기 p4 사이에 덧셈 연산을 수행하는 제3 덧셈 단계;
    상기 제2 덧셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제1 쉬프팅 단계;
    상기 제1 쉬프팅 단계의 연산 결과와 상기 제3 덧셈 단계의 연산 결과 사이에 뺄셈 연산을 수행하는 제1 뺄셈 단계;
    상기 제1 덧셈 단계의 연산 결과와 상기 제1 뺄셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제4 덧셈 단계;
    상기 제1 뺄셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제2 쉬프팅 단계;
    상기 제1 뺄셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제3 쉬프팅 단계;
    상기 제3 쉬프팅 단계의 연산 결과와 라운드 계수인 16 사이에 덧셈 연산을 수행하는 제5 덧셈 단계;
    상기 제2 쉬프팅 단계의 연산 결과와 상기 제4 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제6 덧셈 단계;
    상기 제4 덧셈 단계의 연산 결과와 상기 제5 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제7 덧셈 단계; 및
    상기 제7 덧셈 단계의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제1 클리핑 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  26. 제 21 항에 있어서, 상기 제2 하프 픽셀들을 생성하는 단계는 4개의 제2 FIR 필터링 단계들을 포함하고, [수식 2a]의 변형식인 [수식 2b]를 이용하여 8 비트의 상기 제2 하프 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 방법.
    [수식 2a]
    2hp = min(255, max(0, (1HP0-5HP1+20HP2+20HP3-5HP4+HP5+512)>>10))
    [수식 2b]
    2hp = min(255, max(0, ((HP0+HP5)+(4(HP2+HP3)-(HP1+HP4))
    +4(4(HP2+HP3)-(HP1+HP4))+512)>>10))
    (단, 상기 HP0, HP1, HP2, HP3, HP4, HP5는 하프 버퍼에 저장된 15 비트의 제1 하프 픽셀을 나타내고, 상기 2hp는 8 비트의 제2 하프 픽셀을 나타낸다.)
  27. 제 26 항에 있어서, 상기 제2 FIR 필터링 단계들 각각은
    상기 HP0과 상기 HP5 사이에 덧셈 연산을 수행하는 제8 덧셈 단계;
    상기 HP2와 상기 HP3 사이에 덧셈 연산을 수행하는 제9 덧셈 단계;
    상기 HP1과 상기 HP4 사이에 덧셈 연산을 수행하는 제10 덧셈 단계;
    상기 제9 덧셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행 하는 제4 쉬프팅 단계;
    상기 제4 쉬프팅 단계의 연산 결과와 상기 제10 덧셈 단계의 연산 결과 사이에 뺄셈 연산을 수행하는 제2 뺄셈 단계;
    상기 제8 덧셈 단계의 연산 결과와 상기 제2 뺄셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제11 덧셈 단계;
    상기 제2 뺄셈 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제5 쉬프팅 단계;
    상기 제5 쉬프팅 단계의 연산 결과와 라운드 계수인 512 사이에 덧셈 연산을 수행하는 제12 덧셈 단계;
    상기 제11 덧셈 단계의 연산 결과와 상기 제12 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제13 덧셈 단계;
    상기 제13 덧셈 단계의 연산 결과를 오른쪽으로 10비트 쉬프트하는 연산을 수행하는 제6 쉬프팅 단계; 및
    상기 제6 쉬프팅 단계의 연산 결과가 0과 255 사이에 있으면 그대로, 0보다 작을 경우엔 0을, 255보다 클 경우에는 255를 출력하는 제2 클리핑 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  28. 제 25 항에 있어서, 상기 제1 쿼터 픽셀들을 생성하는 단계는 4개의 제1 평균 필터링 단계들을 포함하고, 상기 제1 클리핑 단계에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 정수 픽셀들 사이의 평균값으로 8 비트의 상기 제1 쿼터 픽 셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 방법.
  29. 제 28 항에 있어서, 상기 제1 평균 필터링 단계들 각각은
    상기 제1 하프 픽셀과 상기 정수 픽셀 사이에 덧셈 연산을 수행하는 제14 덧셈 단계;
    상기 제14 덧셈기의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제15 덧셈 단계; 및
    상기 제15 덧셈기의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프팅 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  30. 제 25 항 또는 제 27 항에 있어서, 상기 제2 쿼터 픽셀들을 생성하는 단계는 4개의 제2 평균 필터링 단계들을 포함하고, 상기 제1 클리핑 단계에서 출력된 8 비트의 상기 제1 하프 픽셀들과 상기 제2 클리핑 단계에서 출력된 8 비트의 상기 제2 하프 픽셀들 사이의 평균값 또는, 상기 제1 클리핑 단계에서 출력된 8 비트의 상기 제1 하프 픽셀들 사이의 평균값으로 8 비트의 상기 제2 쿼터 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 방법.
  31. 제 30 항에 있어서, 상기 제2 평균 필터링 단계들 각각은
    상기 제1 하프 픽셀과 상기 제2 하프 픽셀 사이에 또는, 상기 제1 하프 픽셀들 사이에 덧셈 연산을 수행하는 제16 덧셈 단계;
    상기 제16 덧셈 단계의 연산 결과와 라운드 계수인 1 사이에 덧셈 연산을 수행하는 제17 덧셈 단계; 및
    상기 제17 덧셈 단계의 연산 결과를 오른쪽으로 1비트 쉬프트하는 연산을 수행하는 제7 쉬프팅 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  32. 제 21 항에 있어서, 상기 크로마 픽셀들을 생성하는 단계는 4개의 쌍일차 필터링 단계들을 포함하고, [수식 3a]의 변형식인 [수식 3b]를 이용하여 8비트의 상기 크로마 픽셀들을 생성하는 것을 특징으로 하는 고속 움직임 보상 방법.
    [수식 3a]
    cp = ((8-dy)×(8-dx)×A + dx×(8-dy)×B
    + (8-dx)×dy×C + dx×dy×D + 32) >> 5
    [수식 3b]
    cp = ((8-dx)×(8×A + dy×(C-A))
    + dx×(8×B + dy×(D-B)) + 32) >> 5
    (단, 상기 A, B는 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내고, 상기 C, D는 상기 A, B가 상기 크로마 필터부에 입력된 때로부터 1 클럭 사이클이 지난 후 상기 크로마 필터부에 입력된 8 비트의 정수 픽셀을 나타내며, 상기 dx, dy는 움직임 벡터의 하위 3 비트를 나타내고, 상기 cp는 8 비트의 크로마 픽셀을 나타낸다.)
  33. 제 32 항에 있어서, 상기 쌍일차 필터링 단계들 각각은
    상기 [수식 3b]의 (8×A + dy×(C-A)) 식을 구현하기 위한 제1 서브 단계;
    상기 [수식 3b]의 (8×A + dy×(C-A)) 식에 상기 [수식 3b]의 (8-dx) 식을 곱한 (8×A + dy×(C-A))×(8-dx) 식을 구현하기 위한 제2 서브 단계;
    상기 [수식 3b]의 (8×B + dy×(D - B)) 식을 구현하기 위한 제3 서브 단계;
    상기 [수식 3b]의 (8×B + dy×(D - B)) 식에 상기 [수식 3b]의 dx을 곱하고, 라운드 계수인 32를 더한 (8×B + dy×(D - B))×dx + 32 식을 구현하기 위한 제4 서브 단계;
    상기 제3 서브 단계의 연산 결과와 상기 제4 서브 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제18 덧셈 단계; 및
    상기 제18 덧셈 단계의 연산 결과를 오른쪽으로 6비트 쉬프트하는 연산을 수행하는 제8 쉬프팅 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  34. 제 33 항에 있어서, 상기 제1 서브 단계는
    상기 C와 상기 A 사이에 뺄셈 연산을 수행하는 제3 뺄셈 단계;
    상기 제3 뺄셈 단계의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제1 AND 연산 단계;
    상기 제3 뺄셈 단계의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제2 AND 연산 단계;
    상기 제3 뺄셈 단계의 연산 결과와 상기 dy 간의 AND 연산을 수행하는 제3 AND 연산 단계;
    상기 제1 AND 연산 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제 9 쉬프팅 단계;
    상기 제2 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제10 쉬프팅 단계;
    상기 A를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제11 쉬프팅 단계;
    상기 제11 쉬프팅 단계의 연산 결과와 상기 제9 쉬프팅 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제19 덧셈 단계;
    상기 제10 쉬프팅 단계의 연산 결과와 상기 제3 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제20 덧셈 단계; 및
    상기 제19 덧셈 단계의 연산 결과와 상기 제20 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제21 덧셈 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  35. 제 34 항에 있어서, 상기 제2 서브 단계는
    라운드 계수인 8과 상기 dx 사이에 뺄셈 연산을 수행하는 제4 뺄셈 단계;
    상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제4 AND 연산 단계;
    상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제5 AND 연산 단계;
    상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제6 AND 연산 단계;
    상기 제4 뺄셈 단계의 연산 결과와 상기 제21 덧셈 단계의 연산 결과 사이에 AND 연산을 수행하는 제7 AND 연산 단계;
    상기 제4 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제12 쉬프팅 단계;
    상기 제6 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제13 쉬프팅 단계;
    상기 제12 쉬프팅 단계의 연산 결과와 상기 제5 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제22 덧셈 단계;
    상기 제13 쉬프팅 단계의 연산 결과와 상기 제7 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제23 덧셈 단계; 및
    상기 제22 덧셈 단계의 연산 결과와 상기 제23 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제24 덧셈 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  36. 제 33 항에 있어서, 상기 제3 서브 단계는
    상기 D와 상기 B 사이에 뺄셈 연산을 수행하는 제5 뺄셈 단계;
    상기 제5 뺄셈 단계의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제8 AND 연산 단계;
    상기 제5 뺄셈 단계의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제9 AND 연산 단계;
    상기 제5 뺄셈 단계의 연산 결과와 상기 dy 사이에 AND 연산을 수행하는 제10 AND 연산 단계;
    상기 제8 AND 연산 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제14 쉬프팅 단계;
    상기 제9 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제15 쉬프팅 단계;
    상기 B를 왼쪽으로 3비트 쉬프트하는 연산을 수행하는 제16 쉬프팅 단계;
    상기 제16 쉬프팅 단계의 연산 결과와 상기 제14 쉬프팅 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제25 덧셈 단계;
    상기 제15 쉬프팅 단계의 연산 결과와 상기 제10 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제26 덧셈 단계; 및
    상기 제25 덧셈 단계의 연산 결과와 상기 제26 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제27 덧셈 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
  37. 제 36 항에 있어서, 상기 제4 서브 단계는
    상기 제27 덧셈 단계의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제11 AND 연산 단계;
    상기 제27 덧셈 단계의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제12 AND 연산 단계;
    상기 제27 덧셈 단계의 연산 결과와 상기 dx 사이에 AND 연산을 수행하는 제13 AND 연산 단계;
    상기 제11 AND 연산 단계의 연산 결과를 왼쪽으로 2비트 쉬프트하는 연산을 수행하는 제17 쉬프팅 단계;
    상기 제12 AND 연산 단계의 연산 결과를 왼쪽으로 1비트 쉬프트하는 연산을 수행하는 제18 쉬프팅 단계;
    라운드 계수인 32와 상기 제17 쉬프팅 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제28 덧셈 단계;
    상기 제18 쉬프팅 단계의 연산 결과와 상기 제13 AND 연산 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제29 덧셈 단계; 및
    상기 제28 덧셈 단계의 연산 결과와 상기 제29 덧셈 단계의 연산 결과 사이에 덧셈 연산을 수행하는 제30 덧셈 단계를 포함하는 것을 특징으로 하는 고속 움직임 보상 방법.
KR1020070094803A 2007-09-18 2007-09-18 고속 움직임 보상 장치 및 방법 KR100909390B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070094803A KR100909390B1 (ko) 2007-09-18 2007-09-18 고속 움직임 보상 장치 및 방법
US11/954,485 US8014618B2 (en) 2007-09-18 2007-12-12 High-speed motion compensation apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070094803A KR100909390B1 (ko) 2007-09-18 2007-09-18 고속 움직임 보상 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090029500A KR20090029500A (ko) 2009-03-23
KR100909390B1 true KR100909390B1 (ko) 2009-07-24

Family

ID=40454523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070094803A KR100909390B1 (ko) 2007-09-18 2007-09-18 고속 움직임 보상 장치 및 방법

Country Status (2)

Country Link
US (1) US8014618B2 (ko)
KR (1) KR100909390B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100449579B1 (ko) * 2002-02-06 2004-09-18 한국이엔에쓰 주식회사 모포린 보레인의 제조방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102625093B (zh) * 2011-01-27 2015-02-04 联合信源数字音视频技术(北京)有限公司 一种基于avs的帧间预测方法
CN102625094B (zh) * 2011-01-27 2014-08-13 联合信源数字音视频技术(北京)有限公司 一种基于avs的帧间预测方法
GB2496015B (en) * 2012-09-05 2013-09-11 Imagination Tech Ltd Pixel buffering
US20150271512A1 (en) * 2014-03-18 2015-09-24 Texas Instruments Incorporated Dynamic frame padding in a video hardware engine
US11032541B2 (en) * 2018-10-22 2021-06-08 Tencent America LLC Method and apparatus for video coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020008976A (ko) * 2000-07-21 2002-02-01 대표이사 서승모 저전송율 영상통신을 위한 움직임 예측기 구조
KR20030007087A (ko) * 2001-07-09 2003-01-23 삼성전자 주식회사 움직임 추정 장치 및 탐색영역에서 레퍼런스매크로블록창의 스캐닝 방법
JP2003076486A (ja) 2001-07-30 2003-03-14 Microsoft Corp ポインティングデバイス

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0294958B1 (en) * 1987-06-09 1995-08-23 Sony Corporation Motion compensated interpolation of digital television images
GB2301971B (en) * 1995-06-06 1999-10-06 Sony Uk Ltd Video compression
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7116831B2 (en) * 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020008976A (ko) * 2000-07-21 2002-02-01 대표이사 서승모 저전송율 영상통신을 위한 움직임 예측기 구조
KR20030007087A (ko) * 2001-07-09 2003-01-23 삼성전자 주식회사 움직임 추정 장치 및 탐색영역에서 레퍼런스매크로블록창의 스캐닝 방법
JP2003076486A (ja) 2001-07-30 2003-03-14 Microsoft Corp ポインティングデバイス

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100449579B1 (ko) * 2002-02-06 2004-09-18 한국이엔에쓰 주식회사 모포린 보레인의 제조방법

Also Published As

Publication number Publication date
US20090074312A1 (en) 2009-03-19
KR20090029500A (ko) 2009-03-23
US8014618B2 (en) 2011-09-06

Similar Documents

Publication Publication Date Title
KR100909390B1 (ko) 고속 움직임 보상 장치 및 방법
JP4231620B2 (ja) 画像処理方法および装置
KR100543278B1 (ko) 색 변환 장치 및 색 변환 방법
JP4824703B2 (ja) 2次元フィルタ演算装置及び方法
CN110381321B (zh) 一种用于运动补偿的插值计算并行实现方法
JP2008125078A (ja) マルチコーデックを支援する動き補償方法及び装置
KR20090004574A (ko) 연산 유닛 및 화상 필터링 장치
JP2012142913A (ja) 画像処理装置及びプログラム
JP5998982B2 (ja) 映像信号処理装置及び方法
JP2004354593A5 (ko)
KR100836534B1 (ko) 저전력 서브 픽셀 보간 블록 구조
JP4266512B2 (ja) データ処理装置
JP2007306538A (ja) 画像復号装置及び方法
US6668087B1 (en) Filter arithmetic device
JP2008532335A (ja) 画像内挿方法及び画素内挿装置
US8019172B2 (en) Method and apparatus for increasing the resolution of a data sequence
JP3748446B2 (ja) 画像入力装置の画像処理回路
KR101742765B1 (ko) 인터폴레이터 및 인터폴레이터 픽셀 생성 방법
KR100656644B1 (ko) 영상압축에서의 움직임 보상을 위한 화면간 보간장치
KR970003805B1 (ko) 개선된 1차원 이산 및 역이산 코사인 변환장치
JP3455263B2 (ja) 画像処理装置
JP4963690B2 (ja) 画像処理装置
KR20100108189A (ko) 직교 변환 장치 및 집적 회로
JP4155102B2 (ja) 画素値演算装置、動画像符号化装置及び動画像復号化装置
JP2002238061A (ja) 画像処理装置および画像処理方法

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130708

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee