KR101354659B1 - 멀티 코덱을 지원하는 움직임 보상 방법 및 장치 - Google Patents

멀티 코덱을 지원하는 움직임 보상 방법 및 장치 Download PDF

Info

Publication number
KR101354659B1
KR101354659B1 KR1020070108448A KR20070108448A KR101354659B1 KR 101354659 B1 KR101354659 B1 KR 101354659B1 KR 1020070108448 A KR1020070108448 A KR 1020070108448A KR 20070108448 A KR20070108448 A KR 20070108448A KR 101354659 B1 KR101354659 B1 KR 101354659B1
Authority
KR
South Korea
Prior art keywords
pixel
value
pixels
filter
values
Prior art date
Application number
KR1020070108448A
Other languages
English (en)
Other versions
KR20080041993A (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 US11/936,295 priority Critical patent/US8594443B2/en
Priority to JP2007290086A priority patent/JP5698428B2/ja
Publication of KR20080041993A publication Critical patent/KR20080041993A/ko
Application granted granted Critical
Publication of KR101354659B1 publication Critical patent/KR101354659B1/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

본 발명은 동영상의 움직임을 보상하는 방법 및 장치에 관한 것으로, MPEG4, H.264/AVC, VC1 등과 같은 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보에 따라 현재 영상에 대응하는 참조 영상의 화소들을 보간하는 다수의 방식들, 즉 수직 리니어 필터링, 수평 리니어 필터링, 큐빅 필터링 중 적어도 하나의 방식을 이용하여 참조 영상의 화소들의 값으로부터 이 화소들 사이에 위치한 화소의 값을 산출하고, 산출된 화소 값을 포함하는 움직임 보상 데이터와 참조 영상과 현재 영상의 차이를 합산함으로써 현재 영상을 복원한다.

Description

멀티 코덱을 지원하는 움직임 보상 방법 및 장치{Method and apparatus for motion compensation supporting multicodec}
본 발명은 동영상을 복호화하는 방법 및 장치에 관한 것으로, 특히 움직임을 보상하는 방법 및 장치에 관한 것이다.
동영상 복호화는 여러 가지 처리 과정을 거친다. 이러한 과정들은 크게 엔트로피 복호화(entropy decoding), 역변환(inverse transform), 역양자화(inverse quantization), 및 움직임 보상(motion compensation)으로 구성된다. 이것들 중에서 움직임 보상이 가장 많은 프로세싱 시간을 소요한다. 움직임 보상이란 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터(motion vector)들을 참조하여 참조 영상으로부터 참조 영상과 현재 영상간에 공유되는 부분을 추출하고, 이와 같이 추출된 데이터(이하 "움직임 보상 데이터"라 함)와 참조 영상과 현재 영상의 차이 데이터(이하 "레지듀 데이터(residue data)"라 함)를 합산함으로써 현재 영상을 복원하는 과정을 의미한다. 이와 같이, 움직임 보상 처리 과정은 많은 영상 데이터를 처리해야 하기 때문에 메모리 억세스 량 및 연산량이 매우 많다. 이러한 움직임 보상의 처리량은 영상의 크기에 비례하기 때문에 영상의 크기가 커지면 최악의 경우에 원하는 시간 내에 영상 전체가 처리되지 못하게 되며, 그 결과 자연스러운 동영상 재생이 불가능 할 수도 있다.
대부분의 동영상 코덱 엔지니어들은 동영상 코덱을 소프트웨어의 형태로 구현하는 것을 선호한다. 이것은 동영상 코덱을 하드웨어로 구현하는 경우에 비해 그 개발 기간 및 비용이 단축되고, 동영상 코덱의 재사용이 용이하며, 특히 동영상 코덱 자체의 유연성(flexibility)이 높아 동영상 코덱에 오류가 발생할 경우에 이것을 쉽게 수정할 수 있다는 장점 때문이다. 그러나, 동영상 코덱의 핵심은 실시간 처리에 있다. 아무리, 소프트웨어 구현이 많은 장점을 가지고 있다고 하더라도 동영상 코덱이 영상의 부호화 및 복호화를 실시간으로 처리하지 못하면 쓸모가 없게 된다. 반면, 동영상 코덱을 하드웨어로 구현할 경우에는 개발 기간과 비용이 많이 들고 유연성이 낮아 동영상 코덱의 수정을 해야 하는 경우에 동영상 코덱의 전체 구조를 변경하는 위험이 따를 수도 있다. 그러나, 무엇보다도 동영상 코덱을 하드웨어로 구현할 경우에는 타겟에 최적화된 구현이 가능하기 때문에 소프트웨어로 처리하는 경우보다 동영상 부호화 및 복호화 속도가 비약적으로 빠르게 된다는 장점이 있다.
상기된 바와 같은 하드웨어 구현 방식 및 소프트웨어 구현 방식의 각기 상반된 장단점으로 인해 대부분의 동영상 코덱 엔지니어들은 이 두 가지 방식을 혼합하여 많이 사용한다. 즉, 동영상 코덱을 구성하는 모듈은 각 특징에 따라 S/W로 처리할 부분과 H/W로 처리할 부분으로 나누어 구현된다. 이 경우, 필수적으로 하드웨어 구현하여야 하는 부분이 움직임 보상이다. 움직임 보상에 요구되는 데이터 연산량 도 많지만 무엇보다도 메모리 억세스가 다른 부분에 비해 월등히 많기 때문에 소프트웨어적인 처리가 부적합하였다.
최근, 동영상 코덱 구현의 중요한 이슈는 하나의 동영상 플레이어에서 다양한 동영상 포맷을 재생할 수 있게 하는 것이다. 주로 많이 사용되는 동영상 포맷은 MPEG4, VC1, H.264/AVC 등이다. 그런데, 이와 같은 세 가지 코덱을 하나의 기기에 구현하고자 할 때, 각각의 코덱에 대한 움직임 보상을 각각 구현하게 되면 소프트웨어로 처리하는 경우에는 데이터 연산량 및 메모리 억세스 량이 크게 증가한다는 문제가 생기며, 하드웨어로 구현하는 경우에도 하드웨어의 크기 및 제작 비용이 증가하는 문제점이 발생한다.
본 발명이 이루고자 하는 기술적 과제는 데이터 연산량 및 메모리 억세스를 줄이며, 하드웨어의 크기 및 제작 비용을 감소시키기 위한 멀티코덱을 지원하면서도 동영상의 재생을 실시간으로 처리할 수 있게 하고, 움직임 보상을 위한 칩의 크기 및 칩 제작 비용을 감소시킬 수 있는 장치 및 방법을 제공하는데 있다. 또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. 이것은 본 발명이 속하는 기술 분야에서 통상적인 지식을 가진 자들이라면 아래의 기재로부터 명확하게 이해될 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 움직임 보상 방법은 (a) 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보에 따라 현재 영상에 대응하는 참조 영상의 화소들을 보간하는 다수의 방식들 중 적어도 하나의 방식을 이용하여 상기 참조 영상의 화소들의 값으로부터 상기 화소들 사이에 위치한 화소의 값을 산출하는 단계; 및 (b) 상기 산출된 화소 값을 포함하는 움직임 보상 데이터와 상기 참조 영상과 상기 현재 영상의 차이를 합산함으로써 상기 현재 영상을 복원하는 단계를 포함한다.
상기 (a) 단계는 (a1) 상기 코덱 정보에 따라 선택적으로 상기 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 화소들의 값으로부터 상기 수직 라인 에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 단계; (a2) 상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 수평 라인에 위치한 화소들의 값으로부터 상기 수평 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 단계; 및 (a3) 상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 큐빅에 위치한 화소들의 값으로부터 상기 큐빅에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 단계를 포함한다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 움직임 보상 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 움직임 보상 장치는 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보에 따라 현재 영상에 대응하는 참조 영상의 화소들을 보간하는 다수의 방식들 중 적어도 하나의 방식을 이용하여 상기 참조 영상의 화소들의 값으로부터 상기 화소들 사이에 위치한 화소의 값을 산출하는 움직임 보상 엔진; 및 상기 산출된 화소 값을 포함하는 움직임 보상 데이터와 상기 참조 영상과 상기 현재 영상의 차이를 합산함으로써 상기 현재 영상을 복원하는 가산기를 포함한다.
상기 움직임 보상 엔진은 상기 코덱 정보에 따라 선택적으로 상기 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 화소들의 값으로부터 상기 수직 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 수직 필터; 상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 수평 라인에 위치한 화소들의 값으로부 터 상기 수평 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 수평 필터; 및 상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 큐빅에 위치한 화소들의 값으로부터 상기 큐빅에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 큐빅 필터를 포함한다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다.
도 1은 다양한 동영상 압축 코덱들 각각에서 사용되는 움직임 보상을 위한 필터들의 특성을 표로 도시한 도면이다. 보다 고 해상도의 영상을 복원하기 위해서, 현재 동영상 압축 코덱들에서는 움직임 벡터가 참조 영상 내의 화소들, 즉 정수 화소(integer pel)만을 지시하지 않고, 정수 화소들 사이의 1/2에 위치한 1/2 화소(half pel) 또는 정수 화소들 사이의 1/4에 위치한 1/4 화소(quarter pel)도 지시하도록 하고 있다. 그런데, 1/2 화소 및 1/4 화소는 참조 영상에 원래 존재하지 않는 화소들이기 때문에 이 화소들의 값은 화소 보간법을 이용하여 생성된다. 도 1은 이와 같은 화소 보간에 사용되는 필터들의 특성을 동영상 압축 코덱별로 도시한 것이다.
도 1을 참조하면, MPEG4, H.264/AVC, VC1의 색차 성분(chrominance component)은 모두 큐빅 필터(cubic filter)를 사용하고 있고, VC1은 리니어 필터(linear filter)를 같이 사용한다. 또한, 휘도 성분(luminance component)에 대해서는 MPEG4는 큐빅 필터를 사용하며, H.264/AVC는 리니어 필터를 사용하고, VC1은 큐빅 필터와 리니어 필터를 같이 사용하고 있음을 알 수 있다. 이하에서는 MPEG4, H.264/AVC, VC1에 따른 화소 보간 모습을 도 2a-2e를 참조하면서 자세히 살펴보기로 한다.
도 2a는 H.264/AVC에 따른 휘도 성분의 화소 보간 모습을 도시한 도면이다.
도 2a에 도시된 대문자 알파벳은 정수 화소를 나타내고, 소문자 알파벳은 서브 화소를 나타낸다. 정수 화소는 화소 보간에 사용되는 원래의 화소를 의미하고, 서브 화소는 정수 화소를 이용하여 화소 보간에 의해 생성된 값을 갖는 화소, 즉 1/2 화소, 1/4 화소 등을 의미한다. 도 2a를 참조하면, H.264/AVC의 휘도 성분에 대한 화소 보간은 1/4 화소 단위까지 이루어진다. 먼저, 도 2a에 도시된 1/2 화소들, 즉 b, h, m, s 위치의 화소들은 다음과 같은 수학식 1에 따라 6 개의 계수들을 갖는 6 탭(tap) 필터를 이용하여 계산될 수 있다.
b1 = (E - 5 * F + 20 * G + 20 * H -5 * I + J)
h1 = (A- 5 * C + 20 * G + 20 * M - 5 * R + T)
b = Clip1Y((b1 + 16) >> 5)
h = Clip1Y((h1 + 16) >> 5)
j1 = cc - 5 * dd + 20 * h1 + 20 * m1 - 5 * ee + ff, or
j1 = aa - 5 * bb + 20 * b1 + 20 * s1 - 5 * gg + hh
j = Clip1Y((j1 + 512) >> 10)
s = Clip1Y((s1 + 16) >> 5)
m = Clip1Y((m1 + 16) >> 5)
이어서, 도 2a에 도시된 1/4 화소들, 즉 나머지 화소들은 다음과 같은 수학식 2에 따라 평균 필터를 이용하여 계산될 수 있다. 이 평균 필터는 2 개의 계수들을 갖는 2 탭 필터의 일종으로서, 이하에서도 마찬가지이다.
a = (G + b + 1) >> 1
c = (H + b + 1) >> 1
d = (G + h + 1) >> 1
n = (M + h + 1) >> 1
f = (b + j + 1) >> 1
i = (h + j + 1) >> 1
k = (j + m + 1) >> 1
q = (j + s + 1) >> 1
e = (b + h + 1) >> 1
g = (b + m + 1) >> 1
p = (h + s + 1) >> 1
r = (m + s + 1) >> 1
상기된 수학식 1 및 2 중 표기 ">>"는 우측 시프트 연산(right shift operation)을 의미하며, ">>" 다음의 숫자는 몇 비트를 시프트하는 가를 나타낸다. 예를 들어, ">> 1"은 1 비트 시프트를 의미하고, 나누기 2와 동등하다. 이하에서도 마찬가지이다.
도 2b는 H.264/AVC에 따른 색차 성분의 화소 보간 모습을 도시한 도면이다.
도 2b에 도시된 P1, P2, P3, P4는 정수 화소를 나타내고, 네 개의 화살표들의 수렴 점은 서브 화소를 나타낸다. 도 2b를 참조하면, H.264/AVC의 색차 성분에 대한 화소 보간은 고정된 위치가 아닌, 임의의 위치에서 이루어진다. 즉, 도 2b에 도시된 임의의 위치의 화소는 다음과 같은 수학식 3에 따라 큐빅 필터를 사용하여 계산될 수 있다. 이 큐빅 필터는 4 개의 계수들을 갖는 4 탭 필터의 일종으로서, 이하에서도 마찬가지이다.
P = ((8 - xFrc) * (8 - yFrc) * P1 + xFrc * (8 - yFrc) * P2 + (8 - xFrc) * yFrc * P3 + xFrc * yFrc * P4 + 32) >> 6
상기된 수학식 3 중 표기 "*"는 곱셈 연산을 의미한다. 이하에서도 마찬가지이다.
도 2c는 VC1에 따라 리니어 필터를 사용한 화소 보간 모습을 도시한 도면이다.
도 2c에 도시된 P1, P2, P3, P4는 정수 화소를 나타내고, 정수 화소 P2 및 P3 사이에 위치한 점들은 서브 화소를 나타낸다. 도 2c를 참조하면, VC1에 따라 리니어 필터를 사용한 화소 보간은 1/4 화소 단위까지 이루어진다. 즉, 도 2c에 도시된 흑색 점들에 해당하는 1/2 화소 및 1/4 화소들은 다음과 같은 수학식 5에 따라 큐빅 필터를 사용하여 계산될 수 있다.
P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s
상기된 수학식 5 중 표기 "a", "b", "c", "d"는 큐빅 필터의 4 개의 탭들 각각의 계수로서 서브 화소의 위치에 따라 그 값이 결정된다. 또한, 표기 "s"도 서브 화소의 위치에 따라 그 값이 결정된다.
도 2d는 MPEG4에 따른 화소 보간 모습을 도시한 도면이다.
도 2d에 도시된 P1, P2, P3, P4는 정수 화소를 나타내고, 정수 화소들 사이에 위치한 흑색 점들은 서브 화소를 나타낸다. 도 2d를 참조하면, MPEG4의 휘도 성분 및 색차 성분에 대한 화소 보간은 1/2 화소 단위까지 이루어진다. 예를 들어, P1의 위치를 dx = 0, dy = 0라고 하면, 도 2c에 도시된 흑색 점들에 해당하는 1/2 화소들은 다음과 같은 수학식 4에 따라 큐빅 필터를 사용하여 계산될 수 있다.
dx = 1, dy = 0 : P = (P1 + P2 + 1 - rc) >> 1
dx = 0, dy = 1 : P = (P1 + P3 + 1 - rc) >> 1
dx = 1, dy = 1 : P = (P1 + P2 + P3 + P4 - rc) >> 1
상기된 수학식 4 중 표기 "rc"는 라운딩 제어(rounding control)를 의미하며, 0 또는 1을 갖는다. 이하에서도 마찬가지이다.
도 2e는 VC1에 따라 큐빅 필터를 사용한 화소 보간 모습을 도시한 도면이다.
도 2e에 도시된 P1, P2, P3, P4는 정수 화소를 나타내고, 네 개의 화살표들의 수렴 점은 서브 화소를 나타낸다. 도 2e를 참조하면, H.264/AVC의 색차 성분에 대한 화소 보간은 고정된 위치가 아닌, 임의의 위치에서 이루어진다. 즉, 도 2b에 도시된 임의의 위치의 화소는 다음과 같은 수학식 6에 따라 큐빅 필터를 사용하여 계산될 수 있다.
P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s
상기된 수학식 5 중 표기 "a", "b", "c", "d"는 큐빅 필터의 4 개의 탭들 각각의 계수로서 서브 화소의 위치에 따라 그 값이 결정된다. 또한, 표기 "s"도 서브 화소의 위치에 따라 그 값이 결정된다.
상기된 바와 같이, MPEG4, H.264/AVC, VC1에서 사용되는 필터 각각의 탭 수와 계수 값은 서로 다르나, 이와 같은 계수 값은 조정이 가능하고, 어떤 탭의 계수 값을 0으로 함으로써 탭 수 또한 조정이 가능하다. 예를 들어, 6 탭 필터를 구성하는 6 개의 탭들 중 2 개의 탭들의 계수 값을 0으로 함으로써 이 6 탭 필터는 4 탭 필터로 사용될 수 있다. 또한, 4 탭 필터를 구성하는 4 개의 탭들 중 2 개의 탭들의 계수 값을 0으로 함으로써 이 4 탭 필터는 2 탭 필터, 즉 평균 필터로 사용될 수 있다. 따라서, MPEG4, H.264/AVC, VC1 각각에서 사용되는 필터들간에는 서로 공유할 수 있는 부분이 존재한다는 것을 알 수 있으며, 이것을 이용하면 상기된 세 개의 코덱(CODEC)들 모두를 보다 적은 개수의 필터들을 이용하여 움직임 보상을 효율적으로 처리할 수 있다.
상기된 세 개의 코덱들 중 H.264/AVC가 가장 복잡한 방식으로 화소들을 보간한다. 그런데, H.264/AVC는 휘도 성분에 대해서 리니어 필터링 방식의 6 탭 필터를 사용하고, 색차 성분에 대해서는 큐빅 필터링 방식의 4 탭 필터를 사용하기 때문 에, 이것들은 MPEG4, VC1의 큐빅 필터링 방식의 4 탭 필터 및 VC1의 리니어 필터링 방식의 4 탭 필터에 사용될 수 있다. 따라서, MPEG4, VC1의 화소 보간법은 H.264/AVC의 화소 보간법의 서브셋이라고 할 수 있다.
즉, 6 개의 탭들을 갖는 하나의 리니어 필터는 그 6 개의 탭들 각각의 계수 값들을 조정함으로서 MPEG4의 리니어 필터, H.264/AVC의 리니어 필터, VC1의 리니어 필터 모두에 사용될 수 있다. 또한, 4 개의 탭들을 갖는 큐빅 필터는 그 4 개의 탭들 각각의 계수 값들을 조정함으로서 MPEG4의 큐빅 필터, H.264/AVC의 큐빅 필터, VC1의 큐빅 필터 모두에 사용될 수 있다. 그런데, H.264/AVC에 따른 휘도 성분의 화소 보간 과정은 수학식 2에 따른 평균 필터링 과정을 요구하고 있다.
그런데, 수학식 2에 따라 산출되는 1/4 화소들 각각은 그 위치에 따라 화소 보간 시 이용되는 주변의 화소들이 다르다. 즉, e, g, p, r 위치의 화소들의 값은 그 각각의 화소를 중심으로 한 다이아몬드 위치의 화소 값들을 이용하여 산출되고, f, i, k, g 위치의 화소들의 값은 이 각각의 화소를 중심으로 한 십자 위치의 화소 값들을 이용하여 산출된다. 이와 같이, H.264/AVC의 1/4 화소 보간 과정은 화소들의 위치에 따른 복잡한 필터링 과정이기 때문에 하드웨어로 구현되기가 용이하지 않았었다.
도 3은 본 발명의 일 실시예에 따른 큐빅 필터를 도시한 도면이다.
도 3을 참조하면, 본 실시예에서는 상기된 바와 같은 H.264/AVC의 1/4 화소 보간 과정을 도 3에 도시된 바와 같이 큐빅 필터에 적용하였다. 도 3에 도시된 형태의 큐빅 필터를 이용하면, H.264/AVC의 1/4 화소 보간 과정은 큐빅 필터라는 공 통 모듈을 통해 이루어 질 수 있다.
일반적으로, 큐빅 필터는 큐빅의 꼭지점들 각각에 위치한 정수 화소들의 값을 이용하여 큐빅의 변들 각각의 중심에 위치한 1/2 화소의 값 및 큐빅의 중심에 위치한 1/2 화소의 값을 산출한다. 본 실시예에서는 이와 같은 큐빅 필터의 특성을 이용하여 상기된 수학식 2에 해당하는 계산을 처리한다. 예를 들어, a 위치의 1/4 화소의 값은 G 위치의 정수 화소의 값, b 위치의 1/2 화소의 값을 도 3에 도시된 큐빅 필터에 적용함으로써 산출될 수 있다. 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면, 다른 위치의 1/4 화소의 값도 도 3에 도시된 바와 같이 산출될 수 있음을 이해할 수 있다.
도 4는 본 발명의 일 실시예에 따른 멀티 코덱 지원 움직임 보상 장치의 구성도이다.
도 4를 참조하면, 본 실시예에 따른 멀티 코덱 지원 움직임 보상 장치는 슬레이브 인터페이스(10), 마스터 인터페이스(20), DMA(Direct Memory Access) 인터페이스(30), 움직임 보상 엔진(40), 제 1 메모리(50), 제 2 메모리(60), 및 가산기(70)로 구성된다.
슬레이브 인터페이스(10)는 본 실시예에 따른 멀티 코덱 지원 움직임 보상 장치를 포함하는 동영상 복호화 장치(미 도시)의 시스템 버스를 경유하여 외부 동영상 부호화 장치(미 도시)로부터 전송된 레지듀 데이터를 페치(fetch)하고, 페치된 레지듀 데이터를 제 2 메모리(60)로 출력한다. 또한, 슬레이브 인터페이스(10)는 시스템 버스를 경유하여 외부 동영상 부호화 장치로부터 움직임 보상을 위해 필 요한 파라미터들인 MC(Motion Compensation) 파라미터들을 페치하고, 페치된 MC 파라미터들을 마스터 인터페이스(20)로 출력한다.
마스터 인터페이스(20)는 슬레이브 인터페이스(10)로부터 입력받은 MC 파라미터들을 해석하고, 그 해석 결과에 기초하여 MC 파라미터들을 선별하여 DMA 인터페이스(30) 및 움직임 보상 엔진(40)으로 출력함으로써 DMA 인터페이스(30)를 구성하는 DMA 모듈(31) 및 FIFO(First-In First-Out) 모듈(32) 각각의 동작을 제어하고, 움직임 보상 엔진(40)을 구성하는 수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 큐빅 정렬부(44), 및 큐빅 필터(45) 각각의 동작을 제어한다.
제 1 메모리(50)는 움직임 보상 엔진(40)에 의해 생성된 움직임 보상 데이터를 저장하고, 제 2 메모리(60)는 슬레이브 인터페이스(10)로부터 입력받은 레지듀 데이터를 저장한다. 일반적으로, 제 1 메모리(50) 및 제 2 메모리(60)는 SRAM(Static Random Access Memory)으로 구현될 수 있다. 가산기(70)는 제 1 메모리(50)에 저장된 움직임 보상 데이터와 제 2 메모리(60)에 저장된 레지듀 데이터를 합산함으로써 현재 영상을 복원하고, 복원된 현재 영상의 데이터를 DMA 인터페이스(30)로 출력한다.
DMA 인터페이스(30)는 DMA 모듈(31) 및 FIFO(First-In First-Out) 모듈(32)로 구성된다. DMA 모듈(31)은 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터를 참조하여 시스템 버스를 경유하여 외부 메모리(미 도시)로부터 참조 영상과 현재 영상간에 공유되는 참조 영상의 32 비트 단위의 데이터를 페치하고, 가산 기(70)에 의해 복원된 현재 영상을 외부 메모리에 저장한다.
FIFO(First-In First-Out) 모듈(32)은 DMA 모듈(31)에 의해 페치된 32 비트 단위의 데이터를 8 비트 단위로 추출하여 차례대로 움직임 보상 엔진(40)으로 출력한다. 특히, FIFO(First-In First-Out) 모듈(32)은 실제로 움직임 보상을 위해 필요한 데이터만을 움직임 보상 엔진(40)으로 출력하는 8 비트 언패킹(unpacking) 이외에 참조 영상에 움직임 벡터가 지시하는 데이터가 존재하지 않는 경우, 이 움직임 벡터에 따른 패딩(padding)도 함께 수행한다.
움직임 보상 엔진(40)은 DMA 인터페이스(30)로부터 입력받은 8 비트 단위의 데이터에 대한 움직임 보상을 수행한다. 보다 상세하게 설명하면, 움직임 보상 엔진(40)은 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보, 다수의 색 성분들 중 어느 하나를 나타내는 색 정보, 및 다수의 필터들 중 어느 하나를 나타내는 필터 정보에 따라 현재 영상에 대응하는 참조 영상의 화소들을 보간하는 다수의 방식들, 즉 수직 리니어 필터링, 수평 리니어 필터링, 큐빅 필터링 중 적어도 하나의 방식을 이용하여 참조 영상의 화소들의 값으로부터 이 화소들 사이에 위치한 화소의 값을 산출한다.
도 4를 참조하면, 움직임 보상 엔진(40)은 다시 수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 큐빅 정렬부(44), 및 큐빅 필터(45)로 구성된다.
수직 필터(41)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보, 다수의 색 성분들 중 어느 하나를 나타내는 색 정보, 및 다수의 필터들 중 어느 하나를 나타내는 필터 정보에 따라 선택적으로 DMA 인터페이스(30)로부터 입력받은 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 정수 화소들의 값으로부터 이 수직 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 특히, 수직 필터(41)는 6 개의 탭들을 갖는 리니어 필터로 구현되며, 상기된 수직 라인에 위치한 정수 화소들의 값을 6 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소의 값을 산출한다.
제 1 수평 필터(42)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 DMA 인터페이스(30)로부터 입력받은 참조 영상의 어느 한 블록의 어느 한 수평 라인에 위치한 정수 화소들의 값으로부터 이 수평 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 특히, 제 1 수평 필터(42)는 6 개의 탭들을 갖는 리니어 필터로 구현되며, 상기된 수평 라인에 위치한 화소들의 값을 6 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소의 값을 산출한다.
제 2 수평 필터(43)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 제 1 수평 필터(42)에 의해 처리되는 수평 라인이 아닌 다른 수평 라인에 위치한 정수 화소들 또는 1/2 화소들의 값으로부터 이 수평 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 여기에서, 1/2 화소는 주변의 정수 화소들로부터 산출될 수 있다. 특히, 제 2 수평 필터(43)는 6 개의 탭들을 갖는 리니어 필터로 구현되며, 상기된 수평 라인에 위치한 정수 화소들 또는 1/2 화소들의 값을 6 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소의 값을 산출한다.
큐빅 정렬부(44)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 상기된 블록의 움직임 벡터가 지시하는 1/2 화소, 1/4 화소, 또는 임의의 위치의 화소의 값을 생성하기 위해 요구되는 큐빅 위치에 DMA 인터페이스(30)로부터 입력받은 정수 화소들 또는 1/2 화소들의 값을 정렬한다.
큐빅 필터(45)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 도 3에 도시된 바에 따라 큐빅 정렬부(44)에 의해 정렬된 4 개의 정수 화소들의 값으로부터 이 정렬된 화소들 사이에 위치한 1/2 화소, 1/4 화소, 또는 임의의 위치의 화소의 값을 산출한다. 또한, 큐빅 필터(45)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 제 1 수평 필터(42) 및 제 2 수평 필터(43)로부터 입력받은 휘도 성분의 블록의 어느 한 큐빅에 위치한 2 개의 정수 화소 또는 1/2 화소의 값으로부터 이 큐빅에 위치한 2 개의 화소들 사이에 위치한 1/2 화소 또는 1/4 화소의 값을 산출한다. 특히, 큐빅 필터(45)는 4 개의 탭들을 갖는 큐빅 필터로 구현되며, 상기된 큐빅 위치의 2 개 또는 4 개의 화소들의 값을 이 큐빅 위치에 대응하는 2 개의 탭들 또는 4 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소, 1/4 화소, 임의의 위치의 화소의 값을 산출한다.
수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 큐빅 정렬부(44), 및 큐빅 필터(45) 각각은 모든 화소에 대해 동작하는 것이 아니라 움직임 벡터의 값에 따라 동작한다. 왜냐하면, 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 움직임 벡터가 정수 화소의 위치를 지시하는 경우에는 참조 화면과 예측 화면간의 움직임이 정확히 정수 화소 간격의 배수에 해당하는 경우이기 때문에 참조 화면을 구성하는 정수 화소들의 값이 예측 화면을 구성하는 화소들의 값이 되므로 수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 큐빅 정렬부(44), 및 큐빅 필터(45)에 의한 화소 값 보간이 필요 없다. 그러나, 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 움직임 벡터가 1/2 화소 또는 1/4 화소의 위치를 지시하는 경우에는 참조 화면과 예측 화면간의 움직임이 정확히 정수 화소 간격의 배수에 해당하지 않는 경우이기 때문에 참조 화면을 구성하는 정수 화소들의 값을 이용하여 보간된 값들이 예측 화면을 구성하는 화소들의 값이 되므로 수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 큐빅 정렬부(44), 및 큐빅 필터(45)에 의한 화소 값 보간이 필요하다.
수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 큐빅 정렬부(44), 및 큐빅 필터(45)에 의한 화소 값 보간이 참조 영상 전체에 대해 수행되면, 수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43) 및 큐빅 필터(45)에 의해 처리되지 않고, 그대로 통과된 정수 화소의 값, 이 필터들에 의해 산출된 1/2 화소의 값, 1/4 화소의 값 및 임의의 위치의 화소의 값들 전체는 상기된 참조 영상에 대응 하는 현재 영상의 움직임 보상 데이터로 완성된다.
도 5-7은 도 4에 도시된 움직임 보상 장치에서의 각 코덱별 동작 시나리오를 도시한 도면들이다. 도 5-7을 참조하면, H.264/AVC의 휘도 성분과 VC1은 리니어(linear) 필터링을 수행하기 때문에 수평(horizontal) 필터링과 수직(vertical) 필터링을 수행하게 되며, 그 외의 경우에는 큐빅 정렬을 통하여 큐빅 필터링을 수행한다.
도 5는 도 4에 도시된 움직임 보상 장치에서의 H.264/AVC의 리니어 필터 및 큐빅 필터의 동작 시나리오를 도시한 도면이다.
도 5를 참조하면, 도 4에 도시된 움직임 보상 장치는 다음과 같은 동작 시나리오에 따라 H.264/AVC의 휘도 성분 필터링을 수행한다.
DMA 인터페이스(30)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터를 참조하여 시스템 버스를 경유하여 외부 메모리로부터 참조 영상의 휘도 성분을 소정 크기의 블록 단위로 페치하고, 페치된 휘도 성분의 블록을 수직 필터(41)로 출력한다.
수직 필터(41)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내면, DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들 중 어느 한 수직 라인에 위치한 정수 화소들의 값으로부터 이 수직 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 특 히, 수직 필터(41)는 상기된 수직 라인에 위치한 정수 화소들의 값을 6 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소의 값을 산출하고, 산출된 1/2 화소의 값을 제 1 수평 필터(42) 또는 제 2 수평 필터(43)로 출력한다. 수직 필터(41)는 상기된 블록의 움직임 벡터가 정수 화소를 지시하면, DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들의 값을 그대로 제 1 수평 필터(42) 또는 제 2 수평 필터(43)로 출력한다.
예를 들어, 움직임 벡터가 지시하는 화소의 위치가 도 2a에 도시된 h인 경우라면, 수직 필터(41)는 A, C, G, M, R, T 위치의 정수 화소 값들을 6 개의 탭들에 적용하여 h1 = (A- 5 * C + 20 * G + 20 * M - 5 * R + T), h = Clip1Y((h1 + 16) >> 5)를 계산함으로써 h 위치의 1/2 화소의 값을 산출한다.
제 1 수평 필터(42)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내면, 수직 필터(41)를 경유하여 DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들 중 어느 한 수평 라인에 위치한 정수 화소들의 값으로부터 이 수평 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 특히, 제 1 수평 필터(42)는 상기된 수평 라인에 위치한 정수 화소들의 값을 6 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소의 값을 산출하고, 산출된 1/2 화소의 값을 큐빅 필터(45)로 출력한다. 또한, 제 1 수평 필터(42)는 상기된 블록의 움직임 벡터가 정수 화소를 지시하면, DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들의 값을 그대로 큐빅 필터(45)로 출력한다. 또한, 제 1 수평 필터(42)는 수직 필터(41)로부터 입력받은 1/2 화소의 값을 그대로 큐빅 필터(45)로 출력한다.
예를 들어, 움직임 벡터가 지시하는 화소의 위치가 도 2에 도시된 b인 경우라면, 제 1 수평 필터(42)는 E, F, G, H, I, J 위치의 정수 화소 값들을 6 개의 탭들에 적용하여 b1 = (E - 5 * F + 20 * G + 20 * H -5 * I + J), b = Clip1Y((b1 + 16) >> 5)를 계산함으로써 b 위치의 1/2 화소의 값을 산출한다.
제 2 수평 필터(43)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내면, 수직 필터(41)를 경유하여 DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들 중 상기된 수평 라인이 아닌 다른 수평 라인에 위치한 정수 화소들 또는 1/2 화소들의 값으로부터 이 수평 라인에 위치한 정수 화소들 또는 1/2 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 특히, 제 2 수평 필터(43)는 이 수평 라인에 위치한 정수 화소들 또는 1/2 화소들의 값을 6 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소의 값을 산출하고, 산출된 1/2 화소의 값을 큐빅 필터(45)로 출력한다. 또한, 제 2 수평 필터(43)는 상기된 블록의 움직임 벡터가 정수 화소를 지시하면, DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들의 값을 그대로 큐빅 필터(45) 로 출력한다. 또한, 제 2 수평 필터(43)는 수직 필터(41)로부터 입력받은 1/2 화소의 값을 그대로 큐빅 필터(45)로 출력한다.
예를 들어, 움직임 벡터가 지시하는 화소의 위치가 도 2에 도시된 j인 경우라면, 제 2 수평 필터(43)는 cc, dd, h1, m1, ee, ff 위치의 1/2 화소 값들을 6 개의 탭들에 적용하여 j1 = cc - 5 * dd + 20 * h1 + 20 * m1 - 5 * ee + ff, j = Clip1Y((j1 + 512) >> 10)를 계산함으로써 j 위치의 1/2 화소의 값을 산출한다. 상기된 수학식 2 중 f = (b + j + 1) >> 1과 같이 어떤 1/4 화소의 값을 구하기 위해서는 동시에 두 개의 1/2 화소의 값이 요구되는 경우가 있다. 이와 같은 경우, b 위치의 1/2 화소의 값을 산출하는 과정과 j 위치의 1/2 화소의 값을 산출하는 과정을 동시에 처리하기 위하여 제 1 수평 필터(42)와 제 2 수평 필터(43)가 별도로 존재한다.
큐빅 필터(45)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내면, 제 1 수평 필터(42) 및 제 2 수평 필터(43)로부터 입력받은 휘도 성분의 블록의 어느 한 큐빅에 위치한 정수 화소 또는 1/2 화소의 값으로부터 이 큐빅에 위치한 2 개의 화소들 사이에 위치한 1/4 화소의 값을 산출한다. 특히, 큐빅 필터(45)는 상기된 큐빅 위치의 2 개의 화소들의 값을 4 개의 탭들 중 상기된 큐빅 위치에 대응하는 2 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/4 화소의 값을 산출하고, 산출된 1/4 화소의 값을 제 1 메모리(50)로 출력한다. 또한, 큐빅 필터(45)는 제 1 수평 필터(42) 또는 제 2 수평 필터로부터 입력받은 정수 화소 또는 1/2 화소의 값을 그대로 제 1 메모리(50)로 출력한다.
예를 들어, 움직임 벡터가 지시하는 화소의 위치가 도 2에 도시된 a인 경우라면, 큐빅 필터(45)는 G 위치의 정수 화소 값 및 b 위치의 1/2 화소 값을 4 개의 탭들 중 상기 큐빅 위치에 대응하는 2 개의 탭들에 적용하여 a = (G + b + 1) >> 1을 계산함으로써 a 위치의 1/4 화소의 값을 산출한다.
도 5를 참조하면, 도 4에 도시된 움직임 보상 장치는 다음과 같은 동작 시나리오에 따라 H.264/AVC의 색차 성분 Cb 필터링을 수행한다.
DMA 인터페이스(30)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터를 참조하여 시스템 버스를 경유하여 외부 메모리로부터 참조 영상의 색차 성분 Cb를 소정 크기의 블록 단위로 페치하고, 페치된 색차 성분 Cb의 블록을 큐빅 정렬부(44)로 출력한다.
큐빅 정렬부(44)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 색차 성분 Cb를 나타내고, 필터 정보가 큐빅 필터를 나타내면, 마스터 인터페이스(20)로부터 입력받은 움직임 벡터가 지시하는 임의의 위치의 화소의 값을 생성하기 위해 요구되는 큐빅 위치에 DMA 인터페이스(30)로부터 입력받은 색차 성분 Cb의 블록을 구성하는 정수 화소들의 값 중 4 개를 정렬하고, 정렬된 4 개의 정수 화소들의 값을 큐빅 필터(45)로 출력한다.
큐빅 필터(45)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 색차 성분 Cb를 나타내고, 필터 정보가 큐빅 필터를 나타내면, 도 3에 도시된 바에 따라 큐빅 정렬부(44)에 의해 정렬된 4 개의 정수 화소들의 값으로부터 이 정렬된 화소들 사이에 위치한 임의의 위치의 화소의 값을 산출한다. 특히, 큐빅 필터(45)는 상기된 큐빅 위치의 4 개의 화소들의 값을 상기된 큐빅 위치에 대응하는 4 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/4 화소의 값을 산출하고, 산출된 1/4 화소의 값을 제 1 메모리(50)로 출력한다.
예를 들어, 움직임 벡터가 지시하는 화소의 위치가 도 2b에 도시된 네 개의 화살표들의 수렴 점인 경우라면, 큐빅 필터(45)는 P1, P2, P3 및 P4 위치의 정수 화소 값들을 4 개의 탭들에 적용하여 P = ((8 - xFrc) * (8 - yFrc) * P1 + xFrc * (8 - yFrc) * P2 + (8 - xFrc) * yFrc * P3 + xFrc * yFrc * P4 + 32) >> 6을 계산함으로써 임의의 위치의 화소의 값을 산출한다.
도 5를 참조하면, DMA 인터페이스(30), 큐빅 정렬부(44), 큐빅 필터(45) 각각은 색차 성분 Cr에 대해서도 상기된 색차 성분 Cb의 동작 시나리오와 동일하게 동작한다. 따라서, H.264/AVC의 색차 성분 Cb 필터링의 동작 시나리오에 대한 자세한 설명은 생략하기로 한다.
도 6은 도 4에 도시된 움직임 보상 장치에서의 VC1의 리니어 필터의 동작 시나리오를 도시한 도면이다.
도 6을 참조하면, 도 4에 도시된 움직임 보상 장치는 다음과 같은 동작 시나리오에 따라 VC1의 휘도 성분 필터링을 수행한다.
DMA 인터페이스(30)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터를 참조하여 시스템 버스를 경유하여 외부 메모리로부터 참조 영상의 휘도 성분을 소정 크기의 블록 단위로 페치하고, 페치된 휘도 성분의 블록을 수직 필터(41)로 출력한다.
수직 필터(41)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 V1을 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내면, DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들 중 어느 한 수직 라인에 위치한 정수 화소들의 값으로부터 이 수직 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소 또는 1/4 화소의 값을 산출한다. 특히, 수직 필터(41)는 상기된 수직 라인에 위치한 정수 화소들의 값을 4 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소 또는 1/4 화소의 값을 산출하고, 산출된 1/2 화소 또는 1/4 화소의 값을 제 1 수평 필터(42)로 출력한다. 수직 필터(41)는 4 탭 필터의 계수 값들을 조정함으로써 1/2 화소 또는 1/4 화소의 값을 산출할 수 있다. 또한, 수직 필터(41)는 상기된 블록의 움직임 벡터가 정수 화소를 지시하면, DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들의 값을 그대로 제 1 수평 필터(42)로 출력한다.
도 5에 도시된 실시예에서는 수직 필터(41) 및 제 1 수평 필터(42)로서 6 탭 필터가 사용되었다. 6 탭 필터는 6 개의 탭들 중 2 개의 탭들이 사용되지 않음으로써 하드웨어 구조의 변경 없이 4 탭 필터로 사용될 수 있기 때문에, 도 6에 도시된 실시예에서는 수직 필터(41) 및 제 1 수평 필터(42)는 4 탭 필터가 될 수 있다.
제 1 수평 필터(42)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 V1을 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내면, 수직 필터(41)를 경유하여 DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들 중 어느 한 수평 라인에 위치한 정수 화소들 값으로부터 이 수평 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소 또는 1/4 화소의 값을 산출한다. 특히, 제 1 수평 필터(42)는 상기된 수평 라인에 위치한 정수 화소들 값을 4 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소 또는 1/4 화소의 값을 산출하고, 산출된 1/2 화소 또는 1/4 화소의 값을 큐빅 필터(45)로 출력한다. 또한, 제 1 수평 필터(42)는 상기된 블록의 움직임 벡터가 정수 화소를 지시하면, 수직 필터(41)를 경유하여 DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들의 값을 그대로 제 1 메모리(50)로 출력한다. 또한, 제 1 수평 필터(42)는 수직 필터(41)로부터 입력받은 1/2 화소 또는 1/4 화소의 값을 그대로 제 1 메모리(50)로 출력한다.
예를 들어, 움직임 벡터가 지시하는 화소의 위치가 도 2c에 도시된 흑색 점들인 경우라면, 제 1 수평 필터(42)는 P1, P2, P3 및 P4 위치의 정수 화소 값들을 4 개의 탭들에 적용하여 P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s를 계산함으로써 도 2c에 도시된 흑색 점들에 해당하는 1/2 화소 또는 1/4 화소의 값을 산출한다. 수직 필터(41)의 구체적인 예에 대해서는 도시하지 않았으나, 수평 필터링이 수직 필터링으로 바뀔 뿐, 상기된 바와 마찬가지이다. 또한, 도 6을 참조하면, DMA 인터페이스(30), 수직 필터(41), 제 2 수평 필터(43) 각각은 색차 성분 Cb, Cr에 대해서도 상기된 휘도 성분의 동작 시나리오와 동일하게 동작한다.
VC1의 리니어 필터로서 참조 영상의 휘도 성분에 대한 움직임을 보상하는 과정은 두 개의 수평 필터들이 동시에 사용되어야 할 경우가 없기 때문에 어느 하나의 수평 필터만이 사용되면 된다. 특히, 본 실시예에서는 제 1 수평 필터(42) 및 제 2 수평 필터(43) 중 제 1 수평 필터(42)를 사용하는 것으로 하였으나, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 제 2 수평 필터(43)를 사용할 수도 있음을 이해할 수 있다.
도 7은 도 4에 도시된 움직임 보상 장치에서의 MPEG4 및 VC1의 큐빅 필터의 동작 시나리오를 도시한 도면이다.
도 7을 참조하면, 도 4에 도시된 움직임 보상 장치는 다음과 같은 동작 시나리오에 따라 MPEG4 및 VC1의 휘도 성분 필터링을 수행한다.
DMA 인터페이스(30)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터를 참조하여 시스템 버스를 경유하여 외부 메모리로부터 참조 영상의 색차 성분 Cb를 소정 크기의 블록 단위로 페치하고, 페치된 휘도 성분의 블록을 큐빅 정렬 부(44)로 출력한다.
큐빅 정렬부(44)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 MPEG4 또는 VC1을 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 큐빅 필터를 나타내면, 마스터 인터페이스(20)로부터 입력받은 움직임 벡터가 지시하는 1/2 화소 또는 임의의 위치의 화소의 값을 생성하기 위해 요구되는 큐빅 위치에 DMA 인터페이스(30)로부터 입력받은 휘도 성분의 블록을 구성하는 정수 화소들의 값 중 4 개를 정렬하고, 정렬된 4 개의 정수 화소들의 값을 큐빅 필터(45)로 출력한다.
큐빅 필터(45)는 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 코덱 정보가 MPEG4 또는 VC1을 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 큐빅 필터를 나타내면, 도 3에 도시된 바에 따라 큐빅 정렬부(44)에 의해 정렬된 4 개의 정수 화소들의 값으로부터 이 정렬된 화소들 사이에 위치한 1/2 화소 또는 임의의 위치의 화소의 값을 산출한다. 특히, 큐빅 필터(45)는 상기된 큐빅 위치의 4 개의 화소들의 값을 상기된 큐빅 위치에 대응하는 4 개의 탭들에 적용함으로써 마스터 인터페이스(20)로부터 입력받은 MC 파라미터들 중 상기된 블록의 움직임 벡터가 지시하는 1/2 화소 또는 임의의 위치의 화소의 값을 산출하고, 산출된 1/2 화소 또는 임의의 위치의 화소의 값을 제 1 메모리(50)로 출력한다.
예를 들어, 움직임 벡터가 지시하는 화소의 위치가 도 2d에 도시된 흑색 점들인 경우라면, 큐빅 필터(45)는 P1, P2, P3 및 P4 위치의 정수 화소 값들을 4 개의 탭들에 적용하여 P = (P1 + P2 + 1 - rc) >> 1, P = (P1 + P3 + 1 - rc) >> 1, P = (P1 + P2 + P3 + P4 - rc) >> 1 등을 계산함으로써 도 2d에 도시된 흑색 점들에 해당하는 화소들의 값을 산출한다. 또한, 움직임 벡터가 지시하는 화소의 위치가 도 2e에 도시된 네 개의 화살표들의 수렴 점인 경우라면, 큐빅 필터(45)는 P1, P2, P3 및 P4 위치의 정수 화소 값들을 4 개의 탭들에 적용하여 P = (a * P1 + b * P2 + c * P3 + d * P4 + rc) >> s를 계산함으로써 임의의 위치의 화소의 값을 산출한다.
도 7을 참조하면, DMA 인터페이스(30), 큐빅 정렬부(44), 큐빅 필터(45) 각각은 색차 성분 Cb, Cr에 대해서도 상기된 휘도 성분의 동작 시나리오와 동일하게 동작한다.
특히, 본 실시예는 레지스터 어레이 방식을 채택하고 있다. 제 1 수평 필터(42) 또는 제 2 수평 필터(43)에 의한 수평 필터링 및 수직 필터(41)에 의한 수직 필터링을 모두 수행해야 하는 경우에는 수평 필터링의 결과 값을 수직 필터링에서 사용하거나, 수직 필터링의 결과 값을 수평 필터링에서 사용한다.
도 8은 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인을 도시한 도면이다.
도 8을 참조하면, 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 H.264/AVC의 경우에 어느 하나의 블록의 어느 한 라인을 구성하는 화소들의 개수가 21 개임을 고려하여 21 개의 8 비트 레지스터들로 구성된다. H.264/AVC 이외의 다른 코덱의 경우에는 어느 하나의 블록의 어느 한 라인을 구성하는 화소들의 개수가 21 개 미만이다. 특히, H.264/AVC는 6 탭 필터를 사용하기 때문에 이와 같 은 레지스터 어레이 체인이 5 개가 필요하며, 서로 직렬로 연결된다. 어느 하나의 레지스터 어레이 체인의 출력 값은 이것에 연결된 다른 레지스터 어레이 체인의 입력 값이 된다.
도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 DMA 인터페이스(30)로부터 매 클록마다 8 비트에 해당하는 한 화소의 값을 입력받고, 입력된 화소 값을 R0 레지스터에 저장함과 동시에 21 개의 레지스터들 각각에 현재 저장된 화소 값을 오른쪽으로 하나씩 시프트하며, 이에 따라 R20 레지스터에 저장된 화소 값을 내 보낸다.
특히, 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 H.264/AVC, VC1 각각의 움직임 벡터가 지시하는 화소의 위치가 정수 화소인 경우, 매 클록마다 8 x 1 먹스를 통하여 블록 크기에 따라 R3 레지스터에 저장된 화소 값, R7 레지스터에 저장된 화소 값, R15 레지스터에 저장된 화소 값 중 어느 하나를 출력한다. 예를 들어, 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 움직임 보상 엔진(40)에 의해 4 x 4 블록 단위로 움직임 보상이 이루어질 경우에는 R3 레지스터에 저장된 화소 값을 출력하고, 8 x 8 블록 단위로 움직임 보상이 이루어질 경우에는 R7 레지스터에 저장된 화소 값을 출력하고, 16 x 16 블록 단위로 움직임 보상이 이루어질 경우에는 R15 레지스터에 저장된 화소 값을 출력한다.
만약, H.264/AVC의 움직임 벡터가 지시하는 화소의 위치가 정수 화소가 아닌 경우, 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 블록 크기에 따라 R8 레지스터에 저장된 화소 값, R12 레지스터에 저장된 화소 값, R20 레지스터에 저장된 화소 값 중 어느 하나를 출력한다. 예를 들어, 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 움직임 보상 엔진(40)에 의해 4 x 4 블록 단위로 움직임 보상이 이루어질 경우에는 R8 레지스터에 저장된 화소 값을 출력하고, 8 x 8 블록 단위로 움직임 보상이 이루어질 경우에는 R12 레지스터에 저장된 화소 값을 출력하고, 16 x 16 블록 단위로 움직임 보상이 이루어질 경우에는 R20 레지스터에 저장된 화소 값을 출력한다.
만약, VC1 코덱에서 움직임 벡터가 지시하는 화소의 위치가 정수 화소가 아닌 경우, 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 블록 크기에 따라 R10 레지스터의 출력 값, R18 레지스터의 출력 값 중 어느 하나를 출력한다. 예를 들어, 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인은 움직임 보상 엔진(40)에 의해 8 x 8 블록 단위로 움직임 보상이 이루어질 경우에는 R10 레지스터에 저장된 화소 값을 출력하고, 16 x 16 블록 단위로 움직임 보상이 이루어질 경우에는 R20 레지스터에 저장된 화소 값을 출력한다. VC 1의 경우에는 4 x 4 블록 모드를 지원하지 않는다.
도 9는 도 4에 도시된 수직 필터(41) 내부의 6 탭 필터의 구성도이다.
도 9를 참조하면, 도 4에 도시된 수직 필터(41) 내부의 6 탭 필터는 도 8에 도시된 레지스터 어레이 체인의 출력 값을 입력받는다. 즉, 도 4에 도시된 수직 필터(41) 내부의 6 탭 필터는 도 8에 도시된 레지스터 어레이 체인으로부터 6 개의 클록들 동안 출력되어 누적된 6 개의 화소 값들, 즉 레지스터 1~5에 저장된 5 개의 정수 화소 값 및 현재 입력된 하나의 화소 값으로부터 이 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 하나의 레지스터 어레이 체인으로부터의 출력 값은 6 탭 필터의 하나의 레지스터에 저장되기 때문에 6 탭 필터의 5 개의 레지스터들에 대응하여 레지스터 어레이 체인이 5 개가 필요한 것이다. 즉, 도 9에 도시된 6 탭 필터는 수학식 1에 도시된 연산, 예를 들어 b1 = (E - 5 * F + 20 * G + 20 * H -5 * I + J)을 계산하기 위하여, 9 개의 레지스터, 4 개의 곱셈기, 5 개의 가산기를 구비하고 있다. 도 9에 도시된 가장 좌측의 가산기의 두 개의 입력 단자들과 4 개의 곱셈기들 각각의 입력단자들이 6 개의 탭들에 해당한다.
도 10은 도 4에 도시된 움직임 보상 장치 내부에서의 데이터 처리에 관한 타이밍도이다.
도 10을 참조하면, 외부 메모리에 대하여 참조 영상에 해당하는 32 비트 단위의 데이터를 전송하여 줄 것을 요청한 후에 이 데이터를 수신하기 위해 대기하는 데이터 레이턴시(data latency) 구간 및 외부 메모리로부터 32 비트 단위의 데이터를 수신하는 데이터 전달(data delivery) 구간 동안 DMA 인터페이스(30), 수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 및 큐빅 필터(45)는 파이프라인 형태로 그 각각의 동작을 수행한다. 일반적으로, 데이터 레이턴시 구간 및 데이터 전달 구간이 매우 길기 때문에, 수직 필터(41), 제 1 수평 필터(42), 제 2 수평 필터(43), 및 큐빅 필터(45)의 필터링 동작이 이 구간들에 숨겨져서 수행되게 된다. 이에 따라, 움직임 보상을 보다 고속으로 처리할 수 있게 된다.
도 11은 본 발명의 바람직한 일 실시예에 따른 멀티 코덱 지원 움직임 보상 방법의 흐름도이다.
도 11을 참조하면, 본 실시예에 따른 멀티 코덱 지원 움직임 보상 방법은 도 4에 도시된 멀티 코덱 지원 움직임 보상 장치에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 11에 도시된 멀티 코덱 지원 움직임 보상 장치에 관하여 이상에서 기술된 내용은 본 실시예에 따른 멀티 코덱 지원 움직임 보상 방법에도 적용된다.
100 단계에서 멀티 코덱 지원 움직임 보상 장치는 시스템 버스를 경유하여 외부 부호화 장치로부터 참조 영상과 현재 영상의 차이에 해당하는 레지듀 데이터 및 움직임 보상을 위해 필요한 파라미터들인 MC 파라미터들을 페치한다.
200 단계에서 멀티 코덱 지원 움직임 보상 장치는 100 단계에서 페치된 레지듀 데이터를 저장한다.
300 단계에서 멀티 코덱 지원 움직임 보상 장치는 100 단계에서 페치된 MC 파라미터들 중 현재 영상의 블록들과 참조 영상의 대응 블록들간의 변위를 나타내는 움직임 벡터를 참조하여 시스템 버스를 경유하여 외부 메모리로부터 참조 영상과 현재 영상간에 공유되는 참조 영상의 32 비트 단위의 데이터를 페치한다.
400 단계에서 멀티 코덱 지원 움직임 보상 장치는 300 단계에서 페치된 32 비트 단위의 데이터에 대해 8 비트 언패킹 및 움직임 벡터에 따른 패딩을 수행한다.
500 단계에서 멀티 코덱 지원 움직임 보상 장치는 100 단계에서 페치된 MC 파라미터들 중 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보, 다수의 색 성분 들 중 어느 하나를 나타내는 색 정보, 및 다수의 필터들 중 어느 하나를 나타내는 필터 정보에 따라 선택적으로 400 단계에서의 처리 결과에 해당하는 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 정수 화소들의 값으로부터 이 수직 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소의 값을 산출한다.
보다 상세하게 설명하면, 500 단계에서 멀티 코덱 지원 움직임 보상 장치는 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내는 경우, 또는 코덱 정보가 VC1을 나타내고, 색 정보가 휘도 성분 또는 색차 성분을 나타내고, 필터 정보가 리니어 필터를 나타내는 경우에 400 단계에서의 처리 결과에 해당하는 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 정수 화소들의 값으로부터 이 수직 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소의 값을 산출한다. 나머지 경우에 대해서는 상기된 바와 같은 500 단계에서의 수직 필터링은 수행되지 않는다.
600 단계에서 멀티 코덱 지원 움직임 보상 장치는 100 단계에서 페치된 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 400 단계에서의 처리 결과에 해당하는 참조 영상의 어느 한 블록의 어느 한 수평 라인에 위치한 정수 화소들의 값으로부터 이 수평 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소 또는 1/4 화소의 값을 산출한다.
보다 상세하게 설명하면, 600 단계에서 멀티 코덱 지원 움직임 보상 장치는 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내는 경우, 또는 코덱 정보가 VC1을 나타내고, 색 정보가 휘도 성분 또는 색차 성분을 나타내고, 필터 정보가 리니어 필터를 나타내는 경우에 400 단계에서의 처리 결과에 해당하는 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 정수 화소들의 값으로부터 이 수직 라인에 위치한 정수 화소들 사이에 위치한 1/2 화소 또는 1/4 화소의 값을 산출한다. 나머지 경우에 대해서는 상기된 바와 같은 600 단계에서의 수직 필터링은 수행되지 않는다.
700 단계에서 멀티 코덱 지원 움직임 보상 장치는 100 단계에서 페치된 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 600 단계에서 처리되는 수평 라인이 아닌 다른 수평 라인에 위치한 정수 화소들 또는 1/2 화소의 값으로부터 이 수평 라인에 위치한 정수 화소들 또는 1/2 화소 사이에 위치한 1/2 화소의 값을 산출한다.
보다 상세하게 설명하면, 700 단계에서 멀티 코덱 지원 움직임 보상 장치는 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내는 경우에 600 단계에서 처리되는 수평 라인이 아닌 다른 수평 라인에 위치한 정수 화소들 또는 1/2 화소의 값으로부터 이 수평 라인에 위치한 정수 화소들 또는 1/2 화소 사이에 위치한 1/2 화소의 값을 산출한다. 나머지 경우에 대해서는 상기된 바와 같은 700 단계에서의 수직 필터링은 수행되지 않는다.
800 단계에서 멀티 코덱 지원 움직임 보상 장치는 100 단계에서 페치된 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 휘도 성분의 블록의 어느 한 큐빅에 위치한 정수 화소 또는 600 단계 및 700 단계에서 산출된 1/2 화소의 값으로부터 이 큐빅에 위치한 2 개의 화소들 사이에 위치한 1/4 화소의 값을 산출한다.
보다 상세하게 설명하면, 800 단계에서 멀티 코덱 지원 움직임 보상 장치는 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 휘도 성분을 나타내고, 필터 정보가 리니어 필터를 나타내는 경우에 휘도 성분의 블록의 어느 한 큐빅에 위치한 정수 화소 또는 600 단계 및 700 단계에서 산출된 1/2 화소의 값으로부터 이 큐빅에 위치한 2 개의 화소들 사이에 위치한 1/4 화소의 값을 산출한다. 나머지 경우에 대해서는 상기된 바와 같은 800 단계에서의 큐빅 필터링은 수행되지 않는다.
900 단계에서 멀티 코덱 지원 움직임 보상 장치는 100 단계에서 페치된 MC 파라미터들 중 코덱 정보, 색 정보, 및 필터 정보에 따라 선택적으로 상기된 블록의 움직임 벡터가 지시하는 1/2 화소, 1/4 화소, 또는 임의의 위치의 화소의 값을 생성하기 위해 요구되는 큐빅 위치에 400 단계에서의 처리 결과에 해당하는 정수 화소들의 값을 정렬한다.
보다 상세하게 설명하면, 900 단계에서 멀티 코덱 지원 움직임 보상 장치는 코덱 정보가 H.264/AVC를 나타내고, 색 정보가 색차 성분을 나타내고, 필터 정보가 큐빅 필터를 나타내는 경우, 코덱 정보가 MPEG4를 나타내고, 색 정보가 휘도 성분 또는 색차 성분을 나타내고, 필터 정보가 큐빅 필터를 나타내는 경우, 또는 코덱 정보가 VC1을 나타내고, 색 정보가 휘도 성분 또는 색차 성분을 나타내고, 필터 정보가 큐빅 필터를 나타내는 경우에 상기된 블록의 움직임 벡터가 지시하는 1/2 화소, 1/4 화소, 또는 임의의 위치의 화소의 값을 생성하기 위해 요구되는 큐빅 위치에 400 단계에서의 처리 결과에 해당하는 정수 화소들의 값을 정렬한다. 나머지 경 우에 대해서는 상기된 바와 같은 900 단계에서의 큐빅 정렬은 수행되지 않는다.
1000 단계에서 멀티 코덱 지원 움직임 보상 장치는 도 3에 도시된 바에 따라 900 단계에서 정렬된 4 개의 정수 화소들의 값으로부터 이 정렬된 화소들 사이에 위치한 1/2 화소, 1/4 화소, 또는 임의의 위치의 화소의 값을 산출한다.
1100 단계에서 멀티 코덱 지원 움직임 보상 장치는 300 단계로부터 1000 단계까지의 과정이 참조 영상 전체에 대하여 완료되었는지 여부를 확인하고, 그 결과 완료되었으면 1200 단계로 진행하고, 완료되지 않았으면 300 단계로 돌아간다.
1200 단계에서 멀티 코덱 지원 움직임 보상 장치는 300 단계로부터 1000 단계까지의 과정에 의해 생성된 움직임 보상 데이터를 저장한다.
1300 단계에서 멀티 코덱 지원 움직임 보상 장치는 1200 단계에서 저장된 움직임 보상된 데이터와 200 단계에서 저장된 레지듀 데이터를 합산함으로써 현재 영상을 복원한다.
상기된 바와 같이, 본 실시예에 따르면, MPEG4, H.264/AVC, VC1 등과 같은 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보에 따라 수직 필터링, 수평 필터링, 큐빅 필터링 등의 다수의 코덱들간의 공통적인 부분을 선택적으로 수행함으로써 멀티코덱을 지원하는 움직임 보상을 하드웨어로 구현함에 따른 칩 크기를 최소화할 수 있다. 특히, 상기된 바와 같이 공통적인 부분이 선택적으로 수행 가능하도록 모듈화함으로써 하드웨어로의 구현이 용이하도록 하였고, 이와 함께 칩에 소요되는 부품들의 개수 감소에 따라 칩 제작 비용이 감소된다.
또한, 본 실시예에 따르면, 외부 메모리로부터 데이터를 수신하기 위해 대 기하는 구간 및 외부 메모리부터 데이터를 수신하는 구간 동안, 수직 필터링, 수평 필터링, 큐빅 필터링 등이 파이프라인 형태로 수행됨으로써 움직임 보상 처리 시간을 최소화할 수 있고, 이에 따라 멀티코덱을 지원하면서도 영상의 부호화 및 복호화가 실시간으로 처리될 수 있게 되어 멀티코덱을 지원하는 DMB 재생 장치 등을 용이하게 제작할 수 있게 된다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 다양한 동영상 압축 코덱들 각각에서 사용되는 움직임 보상을 위한 필터들의 특성을 표로 도시한 도면이다.
도 2a는 H.264/AVC에 따른 휘도 성분의 화소 보간 모습을 도시한 도면이다.
도 2b는 H.264/AVC에 따른 색차 성분의 화소 보간 모습을 도시한 도면이다.
도 2c는 VC1에 따라 리니어 필터를 사용한 화소 보간 모습을 도시한 도면이다.
도 2d는 MPEG4에 따른 화소 보간 모습을 도시한 도면이다.
도 2e는 VC1에 따라 큐빅 필터를 사용한 화소 보간 모습을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 큐빅 필터를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 멀티 코덱 지원 움직임 보상 장치의 구성도이다.
도 5는 도 4에 도시된 움직임 보상 장치에서의 H.264/AVC의 리니어 필터 및 큐빅 필터의 동작 시나리오를 도시한 도면이다.
도 6은 도 4에 도시된 움직임 보상 장치에서의 VC1의 리니어 필터의 동작 시나리오를 도시한 도면이다.
도 7은 도 4에 도시된 움직임 보상 장치에서의 MPEG4 및 VC1의 큐빅 필터의 동작 시나리오를 도시한 도면이다.
도 8은 도 4에 도시된 수직 필터(41) 내부의 레지스터 어레이 체인을 도시한 도면이다.
도 9는 도 4에 도시된 수직 필터(41) 내부의 6 탭 필터의 구성도이다.
도 10은 도 4에 도시된 움직임 보상 장치 내부에서의 데이터 처리에 관한 타이밍도이다.
도 11은 본 발명의 바람직한 일 실시예에 따른 멀티 코덱 지원 움직임 보상 방법의 흐름도이다.

Claims (19)

  1. (a) 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보 및 다수의 색 성분들 중 어느 하나를 나타내는 색 정보에 따라 현재 영상에 대응하는 참조 영상의 화소들을 보간하는 수직 리니어 필터링, 수평 리니어 필터링 및 큐빅 필터링 중 적어도 하나의 필터링 방식을 이용하여 상기 참조 영상의 화소들의 값으로부터 상기 화소들 사이에 위치한 화소의 값을 산출하는 단계; 및
    (b) 상기 산출된 화소 값을 포함하는 움직임 보상 데이터와 상기 참조 영상과 상기 현재 영상의 차이를 합산함으로써 상기 현재 영상을 복원하는 단계를 포함하는 것을 특징으로 하는 움직임 보상 방법.
  2. 제 1 항에 있어서,
    상기 (a) 단계는
    (a1) 상기 코덱 정보에 따라 선택적으로 상기 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 화소들의 값으로부터 상기 수직 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 단계;
    (a2) 상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 수평 라인에 위치한 화소들의 값으로부터 상기 수평 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 단계; 및
    (a3) 상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 큐빅에 위치한 화소들의 값으로부터 상기 큐빅에 위치한 화소들 사이에 위치한 화소의 값을 산출 하는 단계를 포함하는 것을 특징으로 하는 움직임 보상 방법.
  3. 제 2 항에 있어서,
    상기 (a1) 단계, 상기 (a2) 단계, 상기 (a3) 단계 각각은 상기 코덱 정보 및 상기 색 정보에 따라 선택적으로 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  4. 제 3 항에 있어서,
    상기 코덱 정보가 H.264/AVC를 나타내고, 상기 색 정보가 휘도 성분을 나타내면, 상기 (a1) 단계, 상기 (a2) 단계, 및 상기 (a3) 단계 각각은 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  5. 제 4 항에 있어서,
    상기 (a1) 단계는 상기 수직 라인에 위치한 화소들의 값을 6 개의 탭들에 적용함으로써 상기 수직 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하고,
    상기 (a2) 단계는 상기 수평 라인에 위치한 화소들의 값을 6 개의 탭들에 적용함으로써 상기 수평 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하고,
    상기 (a3) 단계는 상기 큐빅에 위치한 2 개의 화소들의 값을 4 개의 탭들 중 2 개의 탭들에 적용함으로써 상기 큐빅에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  6. 제 3 항에 있어서,
    상기 코덱 정보가 H.264/AVC를 나타내고, 상기 색 정보가 색차 성분을 나타내면, 상기 (a1) 단계 및 상기 (a2) 단계는 화소의 값을 산출하지 않고, 상기 (a3) 단계는 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  7. 제 3 항에 있어서,
    상기 (a1) 단계, 상기 (a2) 단계, 및 상기 (a3) 단계 각각은 상기 코덱 정보, 상기 색 정보 및 다수의 필터들 중 어느 하나를 나타내는 필터 정보에 따라 선택적으로 상기 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  8. 제 7 항에 있어서,
    상기 코덱 정보가 VC1을 나타내고, 상기 색 정보가 휘도 성분 또는 색차 성분을 나타내고, 상기 필터 정보가 리니어 필터를 나타내면, 상기 (a1) 단계 및 상기 (a2) 단계는 화소의 값을 산출하고, 및 상기 (a3) 단계는 화소의 값을 산출하지 않는 것을 특징으로 하는 움직임 보상 방법.
  9. 제 7 항에 있어서,
    상기 코덱 정보가 VC1을 나타내고, 상기 색 정보가 휘도 성분 또는 색차 성분을 나타내고, 상기 필터 정보가 큐빅 필터를 나타내면, 상기 (a1) 단계 및 상기 (a2) 단계는 화소의 값을 산출하지 않고, 및 상기 (a3) 단계는 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  10. 제 1 항에 있어서,
    상기 (a) 단계는 상기 참조 영상의 어느 한 블록의 움직임 벡터가 지시하는 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  11. 제 2 항에 있어서,
    상기 코덱 정보에 따라 선택적으로 상기 수평 라인이 아닌 다른 수평 라인에 위치한 화소들의 값으로부터 상기 다른 수평 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 단계를 더 포함하는 것을 특징으로 하는 움직임 보상 방법.
  12. 제 2 항에 있어서,
    상기 코덱 정보에 따라 선택적으로 상기 블록의 움직임 벡터가 지시하는 화소의 값을 생성하기 위해 요구되는 큐빅 위치에 상기 화소들의 값을 정렬하는 단계; 및
    상기 코덱 정보에 따라 선택적으로 상기 정렬된 화소들의 값으로부터 상기 정렬된 화소들 사이에 위치한 화소의 값을 산출하는 단계를 더 포함하는 것을 특징으로 하는 움직임 보상 방법.
  13. 제 2 항에 있어서,
    상기 (a1) 단계는 상기 수직 라인에 위치한 정수 화소(integer pel)들의 값으로부터 상기 수직 라인에 위치한 화소들 사이에 위치한 1/2 화소(half pel)의 값을 산출하고,
    상기 (a2) 단계는 상기 수평 라인에 위치한 정수 화소(integer pel)들의 값으로부터 상기 수평 라인에 위치한 화소들 사이에 위치한 1/2 화소(half pel)의 값을 산출하고,
    상기 (a3) 단계는 상기 블록을 구성하는 어느 한 정수 화소, 상기 (a) 단계에서 산출된 1/2 화소의 값 및 상기 (b) 단계에서 산출된 1/2 화소의 값으로부터 상기 큐빅에 위치한 화소들 사이에 위치한 1/4 화소(quarter pel)의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  14. 제 2 항에 있어서,
    상기 코덱들 각각의 움직임 벡터가 지시하는 화소의 위치에 따라 선택적으로 다수의 레지스터들 중 소정 위치의 레지스터들에 저장된 화소 값을 출력하는 단계를 더 포함하고,
    상기 (a) 단계는 소정 개수의 클록들 동안 출력되어 누적된 화소들의 값으로부터 상기 화소들 사이에 위치한 화소의 값을 산출하는 것을 특징으로 하는 움직임 보상 방법.
  15. 제 14 항에 있어서,
    상기 블록의 크기에 따라 상기 소정 위치의 레지스터들 중 어느 하나를 출력하는 것을 특징으로 하는 움직임 보상 방법.
  16. 제 2 항에 있어서,
    외부 메모리로부터 상기 영상에 해당하는 데이터를 수신하기 위해 대기하는 구간 및 상기 외부 메모리부터 상기 데이터를 수신하는 구간 동안, 상기 (a1) 단계, 상기 (a2) 단계, 및 상기 (a3) 단계 각각은 파이프라인 형태로 수행됨을 특징으로 하는 움직임 보상 방법.
  17. 제 1 항 내지 제 16 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  18. 다수의 코덱들 중 어느 하나를 나타내는 코덱 정보 및 다수의 색 성분들 중 어느 하나를 나타내는 색 정보에 따라 현재 영상에 대응하는 참조 영상의 화소들을 보간하는 수직 리니어 필터링, 수평 리니어 필터링 및 큐빅 필터링 중 적어도 하나의 필터링 방식을 이용하여 상기 참조 영상의 화소들의 값으로부터 상기 화소들 사이에 위치한 화소의 값을 산출하는 움직임 보상 엔진; 및
    상기 산출된 화소 값을 포함하는 움직임 보상 데이터와 상기 참조 영상과 상기 현재 영상의 차이를 합산함으로써 상기 현재 영상을 복원하는 가산기를 포함하는 것을 특징으로 하는 움직임 보상 장치.
  19. 제 18 항에 있어서,
    상기 움직임 보상 엔진은
    상기 코덱 정보에 따라 선택적으로 상기 참조 영상의 어느 한 블록의 어느 한 수직 라인에 위치한 화소들의 값으로부터 상기 수직 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 수직 필터;
    상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 수평 라인에 위치한 화소들의 값으로부터 상기 수평 라인에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 수평 필터; 및
    상기 코덱 정보에 따라 선택적으로 상기 블록의 어느 한 큐빅에 위치한 화소들의 값으로부터 상기 큐빅에 위치한 화소들 사이에 위치한 화소의 값을 산출하는 큐빅 필터를 포함하는 것을 특징으로 하는 움직임 보상 장치.
KR1020070108448A 2006-11-08 2007-10-26 멀티 코덱을 지원하는 움직임 보상 방법 및 장치 KR101354659B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/936,295 US8594443B2 (en) 2006-11-08 2007-11-07 Method and apparatus for motion compensation supporting multicodec
JP2007290086A JP5698428B2 (ja) 2006-11-08 2007-11-07 動き補償方法、記録媒体及び動き補償装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060110224 2006-11-08
KR1020060110224 2006-11-08

Publications (2)

Publication Number Publication Date
KR20080041993A KR20080041993A (ko) 2008-05-14
KR101354659B1 true KR101354659B1 (ko) 2014-01-28

Family

ID=39405781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070108448A KR101354659B1 (ko) 2006-11-08 2007-10-26 멀티 코덱을 지원하는 움직임 보상 방법 및 장치

Country Status (3)

Country Link
US (1) US8594443B2 (ko)
KR (1) KR101354659B1 (ko)
CN (1) CN101179721A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200925023A (en) * 2007-12-07 2009-06-16 Altek Corp Method of displaying shot image on car reverse video system
KR100963424B1 (ko) * 2008-07-23 2010-06-15 한국전자통신연구원 스케일러블 영상 복호화기 및 그 제어 방법
CN101527847B (zh) * 2009-01-04 2012-01-04 炬力集成电路设计有限公司 运动补偿插值装置和方法
CN102804779A (zh) * 2009-06-09 2012-11-28 索尼公司 图像处理装置和方法
US20110200108A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Chrominance high precision motion filtering for motion interpolation
US8503534B2 (en) * 2010-04-22 2013-08-06 Maxim Integrated Products, Inc. Multi-bus architecture for a video codec
CN102523373A (zh) * 2011-12-07 2012-06-27 天津天地伟业物联网技术有限公司 视频数据的滤波降噪系统及滤波降噪方法
CN105516726B (zh) * 2015-11-27 2019-04-09 传线网络科技(上海)有限公司 视频编码的运动补偿匹配方法和系统
WO2019227447A1 (zh) * 2018-05-31 2019-12-05 深圳市大疆创新科技有限公司 数据处理方法和处理电路
US11025946B2 (en) * 2018-06-14 2021-06-01 Tencent America LLC Method and apparatus for video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11266460A (ja) * 1994-03-24 1999-09-28 Discovision Assoc ビデオ情報処理回路
US20030169931A1 (en) * 2002-01-14 2003-09-11 Nokia Corporation Coding dynamic filters

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3335482B2 (ja) 1993-09-02 2002-10-15 松下電器産業株式会社 信号処理装置
JPH08228353A (ja) 1995-02-21 1996-09-03 Nec Corp 動画像符号化用動き補償回路
KR100290851B1 (ko) 1999-03-27 2001-05-15 구자홍 디지털 티브이의 영상 처리 장치
US6768817B1 (en) * 1999-09-03 2004-07-27 Truong, T.K./ Chen, T.C. Fast and efficient computation of cubic-spline interpolation for data compression
US6873655B2 (en) * 2001-01-09 2005-03-29 Thomson Licensing A.A. Codec system and method for spatially scalable video data
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
CN100452668C (zh) 2002-07-09 2009-01-14 诺基亚有限公司 用于在视频编码中选择插值滤波器类型的方法和系统
US7110606B2 (en) * 2003-06-12 2006-09-19 Trieu-Kien Truong System and method for a direct computation of cubic spline interpolation for real-time image codec
US7535961B2 (en) * 2003-07-16 2009-05-19 Samsung Electronics Co., Ltd. Video encoding/decoding apparatus and method for color image
US20050262276A1 (en) 2004-05-13 2005-11-24 Ittiam Systamc (P) Ltd. Design method for implementing high memory algorithm on low internal memory processor using a direct memory access (DMA) engine
US7590059B2 (en) 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
EP1631068A3 (en) * 2004-08-26 2008-09-03 Samsung Electronics Co., Ltd. Apparatus and method for converting interlaced image into progressive image
US7653132B2 (en) 2004-12-21 2010-01-26 Stmicroelectronics, Inc. Method and system for fast implementation of subpixel interpolation
JP2008536414A (ja) * 2005-04-13 2008-09-04 ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー ビデオの拡張された符号化方法及び装置
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
US7971042B2 (en) * 2005-09-28 2011-06-28 Synopsys, Inc. Microprocessor system and method for instruction-initiated recording and execution of instruction sequences in a dynamically decoupleable extended instruction pipeline
US20080075165A1 (en) * 2006-09-26 2008-03-27 Nokia Corporation Adaptive interpolation filters for video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11266460A (ja) * 1994-03-24 1999-09-28 Discovision Assoc ビデオ情報処理回路
US20030169931A1 (en) * 2002-01-14 2003-09-11 Nokia Corporation Coding dynamic filters

Also Published As

Publication number Publication date
CN101179721A (zh) 2008-05-14
US20080219572A1 (en) 2008-09-11
US8594443B2 (en) 2013-11-26
KR20080041993A (ko) 2008-05-14

Similar Documents

Publication Publication Date Title
KR101354659B1 (ko) 멀티 코덱을 지원하는 움직임 보상 방법 및 장치
JP4987884B2 (ja) 映像データ処理
US7623575B2 (en) Method and apparatus for sub-pixel motion compensation
US8346833B2 (en) Filter and method for filtering
KR101098736B1 (ko) 병렬 처리를 이용하여 1차 연립 방정식의 해를 구하기 위한 디바이스, 시스템 및 방법
US20070070080A1 (en) Systems and methods for accelerating sub-pixel interpolation in video processing applications
JP5698428B2 (ja) 動き補償方法、記録媒体及び動き補償装置
US20090016634A1 (en) Half pixel interpolator for video motion estimation accelerator
WO2019041264A1 (zh) 图像处理装置、方法及相关电路
US7929612B2 (en) Image interpolation apparatus and methods that apply quarter pel interpolation to selected half pel interpolation results
US6563511B1 (en) Anti-flickering for video display based on pixel luminance
Kalali et al. Approximate HEVC fractional interpolation filters and their hardware implementations
US8014618B2 (en) High-speed motion compensation apparatus and method
CN101778280B (zh) 一种基于avs运动补偿亮度插值运算的电路及方法
JP4963220B2 (ja) フィルタ演算器及び動き補償装置
JP2009015637A (ja) 演算ユニット及び画像フィルタリング装置
US8588305B2 (en) Two-dimensional interpolation architecture for motion compensation in multiple video standards
CN103237211B (zh) 一种基于fpga的视频亚像素亮度插值的方法及其装置
US6411334B1 (en) Aspect ratio correction using digital filtering
US6829302B2 (en) Pixel calculating device
US6941025B2 (en) Simultaneous vertical spatial filtering and chroma conversion in video images
CN102215404B (zh) 嵌入式系统中视频的解码方法和系统
US6809777B2 (en) Pixel calculating device
KR100656644B1 (ko) 영상압축에서의 움직임 보상을 위한 화면간 보간장치
JP4155102B2 (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: 20161219

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee