KR19990065349A - 움직임 보상 장치 - Google Patents

움직임 보상 장치 Download PDF

Info

Publication number
KR19990065349A
KR19990065349A KR1019980000597A KR19980000597A KR19990065349A KR 19990065349 A KR19990065349 A KR 19990065349A KR 1019980000597 A KR1019980000597 A KR 1019980000597A KR 19980000597 A KR19980000597 A KR 19980000597A KR 19990065349 A KR19990065349 A KR 19990065349A
Authority
KR
South Korea
Prior art keywords
data
pixels
pixel
subform
double buffer
Prior art date
Application number
KR1019980000597A
Other languages
English (en)
Inventor
백국현
Original Assignee
구자홍
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구자홍, 엘지전자 주식회사 filed Critical 구자홍
Priority to KR1019980000597A priority Critical patent/KR19990065349A/ko
Publication of KR19990065349A publication Critical patent/KR19990065349A/ko

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

엠펙(MPEG) 2 비디오 디코더에서의 움직임 보상 장치에 관한 것으로서, 특히 외부 메모리에서 읽어온 기준 매크로블록을 저장하는 더블 버퍼, 데이터 보간을 픽셀 단위로 처리하는 시리얼 폼 예측부, 시리얼 폼 예측부에서 보간된 데이터와 IDCT된 데이터를 더하여 완전한 화상으로 복원하는 가산기의 순으로 움직임 보상 장치를 구성함으로써, 폼 예측을 수행하는데 필요한 주파수를 빠른 클럭에서 느린 클럭으로 낮출 수 있어 전체적인 파워 소모를 줄일 수 있으며, 또한, 더블 버퍼를 폼 예측부의 전단에 설계함에 의해 동시에 처리해야 될 픽셀의 개수가 8개 픽셀에서 1개 픽셀로 줄어듦으로써, 시리얼 폼 예측이 가능하고 이로 인해 이 부분의 회로가 1/8로 줄어들어 게이트 카운트가 줄어들어 회로 면적이 작아지고, 캐패시턴스도 작아져서 파워 소모도 더욱 줄어들게 된다.

Description

움직임 보상 장치
본 발명은 엠펙(MPEG) 2 비디오 디코더에 관한 것으로서, 특히 SDTV 뿐만 아니라 HDTV 포맷에도 적용할 수 있는 움직임 보상(Motion Compensation) 장치에 관한 것이다.
고화질 TV(HDTV)의 중간 단계로 나타난 표준 TV(SDTV)에서 MPEG-2 비디오 디코더는 SD 포맷(720×480)뿐만 아니라 HD 포맷(1920×1080)도 디코딩할 수 있어야 한다. 그리고, 실제로 디코더가 내부에서 HD 포맷(1920×1080)의 수평축 화면 크기를 1/2로 줄이기 때문에 움직임 보상(Motion Compensation)의 입력으로는 포맷(960×1080)이 들어간다.
이때, 움직임 보상은 매크로블록 단위로 실시되는데 SD 포맷일 경우 그 크기가 Y(휘도) : 16×16, Cb/Cr(칼라) : 16×8이고, 포맷일 경우 Y : 8×16, Cb/Cr : 8×8이 된다. 또한, 기준 프레임(Reference Frame)을 저장하고 있는 외부 메모리에서 필요한 기준 매크로블록을 읽어와 폼 예측(Form Prediction)을 실시한다.
여기서, 폼 예측이란 도 1에 도시된 바와 같이, 움직임 타입 또는 움직임 벡터에 따라 기준 매크로블록의 각 픽셀들에 대해 수평 보간(a1,a2,a3) 또는 수직 보간(h1,h2,h3,h4)을 실시하는 것을 말한다. 도 1에서 보듯이 폼 예측은 움직임 벡터에 따라 실제 픽셀(A,B,C,D)에서 가상의 하프-펠(a2,h1,h3)이나 쿼드-펠(a1,a3,h2,h4)을 계산해 내는 것을 말한다.
상기 움직임 벡터는 예측 픽쳐의 픽셀을 복원하기 위해 필요한 기준 픽쳐의 픽셀의 위치 좌표값의 차이를 나타내는데, 하프 펠 단위 또는 쿼드 펠 단위로 나타낸다. 즉, 움직임 벡터의 좌표값을 보고 정수 보간을 할지 하프-펠 보간을 할지 쿼드-펠 보간을 할 지 결정한다. 여기서, SD 포맷의 움직임 벡터는 통상 수평축, 수직축 모두 하프-펠 단위로 나타내고, HD/2 포맷의 움직임 벡터는 수평축으로 한 번 더 솎아냄에 의해 수평축은 쿼드 펠 단위로 나타내고 수직축은 하프-펠 단위로 나타낸다. 예를 들어, 움직임 벡터의 최하위 비트값이 0이면 정수 보간이고, 1이면 하프-펠 보간이다. 그리고, HD/2 포맷일 경우에는 수평축으로는 움직임 벡터의 좌표값을 하위 2비트까지 보아야 한다.
이때, 한 개의 하프-펠 또는 쿼드-펠을 계산해 내기 위해서는 2개의 실제 픽셀이 필요한 경우(a1,a2,a3,h1)가 있고 또는 근처 4개의 실제 픽셀이 필요한 경우(h2,h3,h4)가 있다. 예를 들어, a1은 3/4A+1/4B를 하여 보간하므로, 실제 픽셀은 A,B 2개가 필요하고, h2는 1/8(3A+B+3C+D)를 하여 보간하므로 실제 픽셀은 A,B,C,D 4개가 필요하게 된다. 또한, SD 포맷일 경우는 매크로블록의 한 라인(16픽셀)을 폼 예측하기 위해서는 34개의 실제 픽셀이 필요할 때도 있다. 이는 수직 보간을 위해 2개 라인이 필요하고, 수평 보간을 위해 17 픽셀이 필요하므로, 2×17을 하면 최대 34개의 실제 픽셀이 필요하게 된다.
한편, MPEG-2 비디오 디코더에서 움직임 보상 블록 외의 다른 블록 예컨대, 가변 길이 디코더(VLD), 역 이산 코사인 변환기(IDCT)들도 필요에 의해 외부 메모리를 억세스하게 되므로, 충분한 메모리 밴드 폭을 확보하기 위해서는 외부 메모리 버스트 모드로 픽셀 데이터를 송수신해야 한다. 즉, 다른 블록에서도 억세스가 가능하도록 메모리 밴드폭을 맞추기 위해서는 매우 높은 주파수의 클럭으로 메모리 억세스를 수행하여야 한다.
도 2는 이러한 종래의 움직임 보상 장치의 구성 블록도로서, 외부 메모리(21)에서 clock_fast(빠른 클럭)에 동기되어 들어오는 연속된 기준 매크로블록의 픽셀 데이터들을 병렬 폼 예측기(22)에서 폼 예측한 다음 그 결과를 더블 버퍼(23)에 라이트한다. 상기 병렬 폼 예측기(22)는 외부 메모리(21)로부터 8바이트의 데이터가 동시에 입력되므로 8개의 픽셀에 대해서 동시에 폼 픽쳐를 수행한다. 이때, 수평 방향, 수직 방향으로의 보간은 하프-펠 플래그와 쿼드-펠 플래그를 보고 결정한다.
그리고, 상기 더블 버퍼(23)는 빠른 속도로 동작하는 외부 메모리와 비교적 느린 속도로 동작하는 MPEG-2 비디오 디코더 사이에 버퍼링을 할 수 있도록 하기 위해 구비된다. 즉, 외부 메모리(21), 병렬 폼 예측기(22), 더블 버퍼(23)의 라이트는 빠른 클럭(Clock_fast)으로 동작하지만 더블 버퍼(23)의 리드는 느린 클럭(Clock_slow)으로 동작한다. 그리고, 상기 더블 버퍼(23)는 하나의 버퍼에 데이터를 라이트할 때는 다른 버퍼는 읽기를 하고 다음 매크로블록을 쓸때는 서로 쓰는 위치를 바꾸어 주기 위해서이다.
상기 더블 버퍼(23)에서 리드되는 데이터는 가산기(24)에서 IDCT된 데이터와 더해져 완전한 영상으로 복원된다.
그러나, 상기된 종래의 움직임 보상 장치는 다음과 같은 문제점이 있다.
첫째는 폼 예측기의 면적 증가이다. 즉, 상기된 도 2의 움직임 보상 장치는 효과적인 메모리 관리를 위해 외부 메모리에서 들어오는 데이터 버스의 사이즈는 64비트로 8개의 픽셀(1픽셀은 8비트)들이 동시에 들어오는데, 이 픽셀들을 한꺼번에 보간해야 하기 때문에 병렬 폼 예측기를 사용하고 있다. 따라서, 보간에 필요한 연산 과정이 하나씩 증가할 때마다 최소한 64(=8 픽셀 ×8 비트/픽셀)의 플립플롭이나 풀 가산기가 들어간다. 이는 필요한 게이트 카운트 수가 증가하면서 회로 면적이 커지게 된다.
둘째는 파워 소모의 증가이다. CMOS 회로 설계시 소모되는 파워(P)는 하기의 수학식 1과 같이 나타낼 수 있다.
이는 캐패시턴스(C)가 커질수록 그리고, 동작 주파수(frequency ; f)가 높을수록 소모되는 파워가 증가함을 알 수 있다.
즉, 종래의 폼 예측기는 외부 메모리와의 밴드 폭을 맞추기 위해서 높은 주파수의 클럭을 써야 하므로 빠른 클럭(Clock_fast)에 연결되어 있다. 이는 동작 주파수가 높음을 의미하므로 파워 소모가 커지게 된다. 또한, 병렬로 폼 예측을 실시하기 때문에 동시에 액티브되는 게이트 수가 많아지고 캐패시턴스가 증가하여 파워 소모는 더욱 커지게 된다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 전체 회로 면적을 줄이고 파워 소모를 줄이는 움직임 보상 장치를 제공함에 있다.
본 발명의 다른 목적은 라인 단위(병렬)로 실시하던 폼 예측을 픽셀 단위(직렬)로 처리할 수 있도록 하는 움직임 보상 장치를 제공함에 있다.
본 발명의 또다른 목적은 하프-펠 예측뿐만 아니라 쿼드-펠 예측도 가능하도록 함으로써, SD 포맷과 포맷을 모두 처리할 수 있도록 하는 움직임 보상 장치를 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 움직임 보상 장치는, 외부 메모리에서 읽어온 기준 매크로블록을 높은 주파수의 클럭으로 라이트하고 라이트된 매크로블록을 낮은 주파수의 클럭으로 리드하는 더블 버퍼와, 낮은 주파수의 클럭에 동기되어 상기 더블 버퍼로부터 리드된 데이터의 수평, 수직 보간을 픽셀 단위로 처리하는 시리얼 폼 예측부와, 상기 시리얼 폼 예측부에서 보간된 데이터와 IDCT된 데이터를 더하여 완전한 화상으로 복원하는 가산기의 순으로 구성됨을 특징으로 한다.
상기 시리얼 폼 예측부는 움직임 타입, 매크로블록 움직임 상태에 따라 2개의 픽셀을 동시에 폼 예측하여 평균을 내야 하는 경우를 위하여 필요한 동일한 구성의 제 1, 제 2 서브 폼 예측부와, 평균 플래그 값에 따라 상기 제 1, 제 2 서브 폼 데이터 예측부에서 동시에 폼 예측된 픽셀 데이터의 평균값을 구하여 출력하거나 상기 제 1 또는 제 2 서브 폼 데이터 예측부에서 폼 예측된 픽셀 데이터를 그대로 바이패스시키는 데이터 출력부로 구성되며, 상기 더블 버퍼는 다시 2개의 더블 버퍼로 나누어져 상기 제 1, 제 2 서브 폼 예측부와 각각 연계됨을 특징으로 한다.
상기 서브 폼 예측부는 상기 더블 버퍼부터 출력되는 픽셀들을 정렬하기 위한 배럴 쉬프터와, 상기 배럴 쉬프터에서 정렬된 데이터를 수평, 수직 보간을 위해 일시 저장하는 복수개의 픽셀 라인 레지스터와, 상기 복수개의 픽셀 라인 레지스터에 저장된 다수개의 픽셀에서 수평 보간에 필요한 픽셀들만을 각각 선택 출력하는 복수개의 멀티플렉서와, 상기 복수개의 멀티플렉서를 통해 입력되는 픽셀들을 이용하여 픽셀 단위로 하프-펠 또는 쿼드-펠 보간을 수행하는 데이터 보간부로 구성됨을 특징으로 한다.
도 1은 하프-펠 또는 쿼드-펠 예측과 계산하는 식을 보인 도면
도 2는 종래의 움직임 보상 장치의 구성 블록도
도 3은 본 발명에 따른 움직임 보상 장치의 구성 블록도
도 4는 도 3의 시리얼 폼 예측부의 상세 블록도
도 5는 도 4의 배럴 쉬프터의 역할과 기능을 나타낸 도면
도 6a는 SD 포맷에서 도 4의 20-픽셀 라인 레지스터에 휘도 값(Y)의 저장 및 저장된 휘도 값(Y)을 읽어내는 순서를 보인 도면
도 6b는 SD 포맷에서 도 4의 20-픽셀 라인 레지스터에 칼라 값(Cr/Cb)의 저장 및 저장된 칼라 값(Cr/Cb)을 읽어내는 순서를 보인 도면
도 7a는 HD/2 포맷에서 도 4의 20-픽셀 라인 레지스터에 휘도 값(Y)의 저장 및 저장된 휘도 값(Y)을 읽어내는 순서를 보인 도면
도 7b는 HD/2 포맷에서 도 4의 20-픽셀 라인 레지스터에 칼라 값(Cr/Cb)의 저장 및 저장된 칼라 값(Cr/Cb)을 읽어내는 순서를 보인 도면
도 8a는 도 4의 2개의 20-픽셀 라인 레지스터에서 출력되는 픽셀의 예를 보인 도면
도 8b는 도 4의 데이터 보간부의 상세 블록도
도 9는 HD/2 포맷일때의 본 발명에 따른 더블 버퍼의 메모리 맵을 나타낸 도면
도 10은 SD 포맷일 때의 본 발명에 따른 더블 버퍼의 메모리 맵을 나타낸 도면
도 11은 SD 포맷일 경우 도 4의 데이터 출력부에서 출력되는 예측된 휘도 신호와 색신호의 매크로블록 재구성을 위한 타이밍도
도 12는 HD/2 포맷일 경우 도 4의 데이터 출력부에서 출력되는 예측된 휘도 신호와 색신호의 매크로블록 재구성을 위한 타이밍도
도면의 주요부분에 대한 부호의 설명
31 : 외부 메모리 32 : 더블 버퍼(Double Buffer)
33 : 시리얼 폼 예측부 34 : 가산기
41,42 : 서브 폼 예측부 41-1,43-1 : 더블 버퍼
41-2,43-2 : 배럴 쉬프터(Barrel Shifter)
41-3,41-4,43-3,43-4 : 20-픽셀 라인 레지스터(20 Pixel line register)
41-5,41-6,43-5,43-6 : 멀티플렉서
41-7,43-7 : 데이터 보간부 45 : 데이터 출력부
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명한다.
도 3은 본 발명에 따른 움직임 보상 장치의 구성 블록도로서, 기준 프레임을 저장하는 외부 메모리(31), 상기 외부 메모리(31)에서 읽어온 기준 매크로블록을 저장하는 더블 버퍼(32), 데이터 보간을 픽셀 단위로 처리하는 시리얼 폼 예측부(33), 및 시리얼 폼 예측부(33)에서 보간된 데이터와 IDCT된 데이터를 더하여 완전한 화상으로 복원하는 가산기(34)로 구성된다.
이러한 구성에 의해 더블 버퍼(32)는 빠른 클럭(Clock_fast)으로 라이트되고 늦은 클럭(Clock_slow)으로 리드되지만 폼 예측부(33)는 늦은 클럭(Clock_slow)으로 데이터를 보간할 수 있어 파워의 소모를 줄일 수 있게된다.
즉, 폼 예측부(33)를 더블 버퍼(32)의 출력단에 연결함으로써, 폼 예측을 수행하는데 필요한 주파수가 빠른 클럭(외부 메모리와 억세스하는데는 메모리 밴드폭을 카우기 위해 빠른 클럭이 필요함.)에서 느린 클럭(내부는 빠른 클럭만큼 빠른 속도로 디코딩할 필요는 없음.)로 낮출 수 있어 전체적인 파워 소모를 획기적으로 줄일 수 있다. 부가적으로 더블 버퍼(32)를 폼 예측부(33) 전단으로 옮김으로서 동시에 처리해야 될 픽셀의 개수가 8개 픽셀에서 1개 픽셀로 줄어들기 때문에 시리얼 폼 예측이 가능하고 이로 인해 이 부분의 회로가 1/8로 줄어들고 캐패시턴스도 작아져서 파워 소모는 더욱 줄어들게 된다.
도 4는 시리얼 폼 예측부(33)의 상세 블록도로서, 제 1 서브 폼 예측부(41), 제 2 서브 폼 예측부(43), 및 데이터 출력부(45)로 구성된다. 이때, 상기 더블 버퍼(32)는 다시 2개의 더블 버퍼(41-1,43-1)로 나누어져 제 1, 제 2 서브 폼 예측부와 연계된다.
상기 제 1 서브 폼 예측부(41)는 더블 버퍼(64×64)(41-1)를 포함하며, 상기 더블 버퍼(41-1)로부터 출력되는 픽셀들을 정렬하기 위한 배럴 쉬프터(41-2), 시리얼로 폼 예측을 하기전에 임시적으로 데이터를 저장하는 2개의 20-픽셀 라인 레지스터(41-3,41-4), 상기 20-픽셀 라인 레지스터(41-3,41-4)에 저장된 20개의 픽셀에서 3개의 픽셀을 뽑아 내는 2개의 멀티플렉서(41-5,41-6), 2개의 멀티플렉서(41-5,41-6)를 통해 입력되는 6개의 픽셀에서 하프-펠 또는 쿼드-펠을 계산한 후 동시에 폼 예측이 완료된 2개의 픽셀을 출력하는 데이터 보간부(41-7)로 구성된다.
제 2 서브 폼 예측부(43)도 상기 제 1 서브 폼 예측부(41)와 동일한 형태로 구성된다.
상기 제 1, 제 2 서브 폼 예측부(41,43)는 하기의 표 1에서 평균 플래그가 1이 될 경우 즉, 양방향(bi-directional) 모드나 듀얼 프라임 움직임 타입인 경우에 두 개 픽셀 즉, 전방향과 후방향, 또는 2개의 전방향에 대한 폼 예측을 동시에 수행한 후 평균하기 위한 것이다. 즉, 평균 플래그가 0이면 제 1 서브 폼 예측부(41)만을 이용하여 전방향 또는 후방향에 대해 폼 예측을 수행하고, 평균 플래그가 1이면 매크로블록 움직임이 양방향이거나 움직임 타입이 듀얼 프라임인 경우로서, 제 1, 제 2 서브 폼 예측부(41,43)를 모두 이용하여 매크로블록 움직임이 양방향이면 전방향과 후방향에 대해 동시에 폼 예측을 수행하고 듀얼 프라임인 경우 2개의 전방향에 대해 동시에 폼 예측을 수행한 후 평균값을 취한다.
픽쳐 구조 움직임 타입 매크로블록_움직임 평균 플래그
프레임 픽쳐 프레임 기본 전 방향 0
후 방향 0
양 방향 1
필드 기본 전 방향 0
후 방향 0
양 방향 1
듀얼 프라임 전 방향 1
톱 필드 또는바텀 필드 픽쳐 필드 기본 전 방향 0
후 방향 0
양 방향 1
MC_16×8 전 방향 0
후 방향 0
양 방향 1
듀얼 프라임 전 방향 1
이와같이 구성된 본 발명에서 더블 버퍼(41-1)는 외부 메모리(31)로부터 기준 매크로블록을 읽어 와 저장하는데, 메모리 구조상 8 바이트 그리드(grid) 형태로 픽셀 데이터를 읽어온다.
이때, 상기 더블 버퍼(41-1)는 도 4에 도시된 바와 같이, 64 워드 ×64 비트(=8 픽셀) 크기의 2 포트 메모리 2개가 필요하다. 2개가 필요한 이유는 동시에 2개의 픽셀에 대해 폼 예측을 하여 평균값을 구할 때 즉, 평균 플래그가 1일 때 각 기준 매크로블록을 더블 버퍼링하기 위해서이다.
도 9는 HD/2 포맷일때의 더블 버퍼의 메모리 맵으로서, 움직임 보상에 필요한 기준 매크로블록인 픽셀을 저장할 수 있어 연속적인 폼 예측을 매 매크로블록 단위로 진행할 수 있다.
도 10은 SD 포맷일 때의 더블 버퍼의 메모리 맵으로서, SD 포맷일 때도 연속적인 폼 예측을 하기 위해서는 기준 매크로블록들을 모두 저장할 수 있도록 해야 한다. 이를 위해서는 64×64보다 더 큰 더블 버퍼를 써야한다. 하지만 이 경우 한 프레임당 전체 매크로블록 개수가 SD 포맷(1350 매크로블록/프레임)일때가 HD/2 포맷(8040 매크로블록/프레임)일때보다 작기 때문에 SD 포맷일 경우 메모리 밴드폭이 남기 때문에 일부러 더블 버퍼의 사이즈를 키울 필요가 없이 2번에 나누어(Y/CbCr 상측, Y/CbCr 하측), 기준 매크로블록을 외부 메모리(31)로부터 리드하여 더블 버퍼에 저장해도 무방하다. 결국은 더블 버퍼 크기를 늘리지 않고도 메모리 밴드폭을 만족시키면서 연속된 폼 예측을 할 수 있게된다.
한편, 외부 메모리(31)에서 읽어온 기준 매크로블록들을 저장하고 있는 더블 버퍼(41-1)에는 우리가 필요로하는 기준 매크로블럭이 들어있지만 8 바이트 단위로 저장되기 때문에 폼 예측을 위해서는 배럴 쉬프터(41-2)를 통해 필요한 픽셀들을 정렬시켜 20 픽셀 라인 레지스터(41-3,41-4)에 차례대로 저장해야 한다. 즉, 메모리 구조상 상기 더블 버퍼(41-1)에는 더미(Dummy) 비트가 발생하므로, 배럴 쉬프터(41-2)에서 이 더미 비트를 날려 보낸다. 그리고, 도 5의 더블 버퍼를 보면, 더미 비트등에 의해 기준 매크로블럭의 1라인을 저장하기 위해서는 더블 버퍼에서 3개의 라인이 필요함을 알 수 있다. 이때, 상기 배럴 쉬프터(41-2)는 기준 매크로블록의 좌표값을 가지고 날려보낼 더미 비트를 계산한다. 도 5를 보면, Y 또는 Cb/Cr일 때에 따라 정렬시키는 방법이 서로 다르다는 것을 알 수 있다.
상기 20 픽셀 라인 레지스터(41-3,41-4)는 상기 배럴 쉬프터(41-2)에서 정렬된 픽셀들을 저장한다. 대개 매크로블록의 한 라인 또는 두 라인이 한 개의 20 픽셀 라인 레지스터에 저장된다. 즉, SD 포맷일때는 라인 당 16∼18 픽셀이므로 1 라인의 데이터가 한 개의 20-픽셀 라인 레지스터에 저장되고, HD/2 포맷일때는 라인당 8∼9 픽셀이므로 2 라인의 데이터가 한 개의 20-픽셀 라인 레지스터에 저장된다.
멀티플렉서(41-5,41-6)는 20-픽셀 라인 레지스터(41-3,41-4)에 저장된 픽셀들을 순서대로 3픽셀씩 선택하여 데이터 보간부(41-7)로 출력한다.
상기 20 픽셀 라인 레지스터(41-3,41-4)에도 더블 버퍼링 기법이 도입된다. 도 6a, 도 6b, 도 7a, 도 7b에서 보듯이 20-픽셀 라인 레지스터의 토글 포인트(Toggle Point)를 기준으로 해서 앞쪽 부분에 더블 버퍼(41-1)에서 새로 온 픽셀들을 쓰고 있을 때 이미 저장된 뒤쪽 부분의 픽셀들을 읽어내어 데이터 보간부(41-7)로 출력하면 데이터 보간부(41-7)는 폼 예측 계산을 실시한다.
즉, 도 6a는 SD 포맷에서 20-픽셀 라인 레지스터에 휘도 값(Y)의 저장 및 저장된 휘도 값(Y)을 읽어내는 순서를 보이고 있고, 도 6b는 SD 포맷에서 20-픽셀 라인 레지스터에 칼라 값(Cr/Cb)의 저장 및 저장된 칼라 값(Cr/Cb)을 읽어내는 순서를 보이고 있다. 도 7a는 HD/2 포맷에서 20-픽셀 라인 레지스터에 휘도 값(Y)의 저장 및 저장된 휘도 값(Y)을 읽어내는 순서를 보이고 있고, 도 7b는 HD/2 포맷에서 20-픽셀 라인 레지스터에 칼라 값(Cr/Cb)의 저장 및 저장된 칼라 값(Cr/Cb)을 읽어내는 순서를 보이고 있다.
도 6 및 도 7에서 화살표가 나타내는 것이 멀티플렉서(41-5,41-6)를 이용하여 동시에 읽어내는 3개의 픽셀을 표시한 것이고, 검정 머리 화살표와 하얀 머리 화살표로 구분해 더블 버퍼링시 라이트되는 부분과 리드되는 부분을 나누어 표시한 것이다. 이때, 멀티플렉서(41-5,41-6)를 이용하여 한꺼번에 3픽셀씩 읽어내는 이유는 3개 픽셀로 동시에 2 픽셀의 폼 예측 계산을 실시하기 위한 것이다. 화살표 위에 쓰여진 숫자는 한 라인을 모두 처리하는 과정에서 멀티플렉서(41-5,41-6)에 의해 선택되는 순서를 표시한다.
그리고, 제 1, 제 2 서브 폼 예측부(41,43)에 각각 2개의 20-픽셀 라인 레지스터가 들어가는 이유는 기준 매크로블록의 현재 라인 바로 다음에 오는 라인을 저장하여 수직 보간에 필요한 픽셀들을 공급해 주기 위한 것이다.
여기서, 제 1 서브 폼 예측부(41)를 자세히 살펴보면, 한 개의 더블 버퍼(41-1)에서 리드되어 배럴 쉬프터(41-2)를 통해 정렬된 픽셀들은 2개의 20-픽셀 라인 레지스터(41-3,41-4)에 저장된다.
이때, 상기 더블 버퍼(41-1)에 저장되는 픽셀의 개수는 더블 버퍼(41-1)의 정렬 상태에 따라 한 사이클에 최소한 1∼8 픽셀들이 라이트된다. 따라서, 20-픽셀 라인 레지스터 한 개를 채우는데 필요한 최대 사이클 수는 2∼3 사이클 즉, SD 포맷은 2 사이클, 포맷 : 3 사이클이 되고 수직 보간을 위해 2개의 20-픽셀 라인 레지스터(41-3,41-4)를 모두 채우기 위해서는 2배로 늘어나 최대 6 사이클이 필요하다. 그리고, 상기 20-픽셀 라인 레지스터로 더블 버퍼링을 하기 위해 토글 포인트를 기준으로 2개의 20-픽셀 라인 레지스터(41-3,41-4)의 앞쪽 부분만을 채우는데 필요한 사이클 수는 최대한 4개이고, 뒤쪽 부분에서 멀티플렉서(41-5,41-6)를 통해 2개의 20-픽셀 라인 레지스터에 저장된 데이타를 동시에 읽어가는 사이클 수도 4 클럭이므로(= 하얀 머리 또는 검은 머리 화살표의 개수가 4개) 라이트/리드시 필요한 최소한의 시간이 일치한다. 결국 SD 포맷과 HD/2 포맷을 모두 지원하면서 픽셀들의 충돌(오버라이트(Overwrite), 충돌(Conflict))이 발생하지 않는 더블 버퍼링을 하기 위해서는 라이트/리드에 4개의 클럭이 필요하고 픽셀 라인 레지스터의 크기가 20 픽셀이 되도록 설계해야 한다는 것을 알 수 있다. SD 포맷의 경우, 기준 매크로블록의 한 라인이 하나의 20-픽셀 라인 레지스터에 저장되므로, 도 6a, 도 6b와 같이 휘도 신호나 색 신호에 대해 20-픽셀 라인 레지스터가 약간의 여유가 있다. 또한, HD 포맷의 경우, 기준 매크로블록의 두 라인이 하나의 20-픽셀 라인 레지스터에 저장되는데, 휘도 신호는 수평 방향의 보간을 위해 각각 9개의 픽셀이 필요하므로 도 7a와 같이 20-픽셀 라인 레지스터가 약간의 여유가 있다. 그러나, 수평 방향의 보간을 위해 한 라인의 Cr,Cb가 각각 5개의 픽셀이 필요한데 HD 포맷에서는 2라인이 저장되므로 도 7b와 같이 20-픽셀 라인 레지스터는 풀 상태가 된다. 물론 20 픽셀보다 더 큰 픽셀 라인 레지스터를 만들 수도 있지만 이는 불필요한 면적을 차지하게 된다.
한편, 데이터 보간부(41-7)는 도 8a와 같이 연속된 2개의 픽셀에 대해 폼 예측 계산을 수행한다. 그리고, 상기된 도 1에는 각 하프-펠/쿼드-펠을 계산하는 식이 나와있다. 여기서, '/' 동작은 MPEG 2 비디오 스탠다드에 의거 다음과 같은 수학식 2로 대체될 수 있다.
'1' : Integer division with truncation of the result toward zero
= MPEG 2 스탠다드
예) m/2 = (m+1) 1; : 오른쪽 쉬프트
m/4 = (m+2) 1;
m/8 = (m+3) 1;
그리고, 상기된 도 1에서 7개의 예측 픽셀중 어떤 픽셀을 선택하느냐는 움직임 벡터에서 계산된 xh(x축 펠 플래그)와 yh(y축 펠 플래그)에 의해 결정된다. 도 8b는 상기 데이터 보간부(41-7)의 상세 블록도로서, 동시에 최대 6개의 픽셀 값(A,B,C,D,E,F)을 받아들여 동시에 2 픽셀의 폼 예측 계산을 수행하게 된다. 하기 표 2는 도 8b의 동작을 표현하기 위해 각 경우에 따른 신호의 값과 동작들을 나타낸 것이다.
포맷 xh yh A B C D const 동 작
0(SD포맷) 0 0 pass zero zero zero 0 X=A
0 1 pass zero pass zero 1 X=(A+C+1)1
1 0 pass pass zero zero 1 X=(A+B+1)1
1 1 pass pass pass pass 2 X=(A+B+C+D+2)2
1(HD/2포맷) 0 0 pass zero zero zero 0 X=A
1 0 triple pass zero zero 2 X=(3A+B+22
2 0 pass pass zero zero 1 X=(A+B+1)1
3 0 pass triple zero zero 2 X=(A+3B+2)2
0 1 pass zero pass zero 1 X=(A+C+1)1
1 1 triple pass triple pass 3 X=(3A+B+3C+D+3)3
2 1 pass pass pass pass 2 X=(A+B+C+D+2)2
3 1 pass triple pass triple 3 X=(A+3B+C+3D+3)3
여기서, zero/pass/triple단을 통해 각 픽셀 값들이 0/A/3A가 되어 CSA(Carry save adder)단으로 넘어가 덧셈이 수행되고 중간에 상수값(const)을 더하게 된다. 이때, CSA를 쓴 이유는 빠르게 동작시키기 위해 임계 패스(Critical path)를 줄이려는 목적이다.
마지막 단에 CPA(Carry propagation adder)를 두어 최종 덧셈값을 내고 쉬프터를 통해 나눗셈을 실시하는데 이때 제수(Divisor)(1,4,8)의 결정은 상기 표 2의 상수(Const)(0,1,2,3)값을 통해 결정한다.
한편, 데이터 출력부(45)는 평균 플래그 값이 1이면 제 1 서브 폼 예측부(41)에서 출력되는 2개 예측 픽셀 값과 제 2 서브 폼 예측부에서 출력되는 2개 픽셀 값에 대해 각각 평균을 내어 출력한다. 이때, 데이터의 평균은 2개의 값을 더하여 오른쪽 쉬프트를 시킴에 의해 수행한다. 즉, 평균 플래그 값이 1이면 제 1, 제 2 서브 폼 예측부(41,43)에서 전방향, 후방향 또는 2개의 전방향으로 동시에 폼 예측된 2 픽셀이 출력되므로 평균을 내야한다.
한편, 평균 플래그 값이 0이면 하나의 서브 폼 예측부를 통해 전방향 또는 후방향 쪽에서 나오는 픽셀 값을 그대로 통과시킨다.
도 11은 SD 포맷일 경우 상기 데이터 출력부(45)에서 출력되는 예측된 휘도 신호와 색신호의 매크로블록 재구성을 위한 타이밍도이고, 도 12는 HD/2 포맷일 경우 상기 데이터 출력부(45)에서 출력되는 예측된 휘도 신호와 색신호의 매크로블록 재구성을 위한 타이밍도로서, 움직임 벡터 재계산이 필요없게 된다.
이상에서와 같이 본 발명에 따른 움직임 보상 장치에 의하면, 외부 메모리에서 읽어온 기준 매크로블록을 저장하는 더블 버퍼, 데이터 보간을 픽셀 단위로 처리하는 시리얼 폼 예측부, 시리얼 폼 예측부에서 보간된 데이터와 IDCT된 데이터를 더하여 완전한 화상으로 복원하는 가산기의 순으로 움직임 보상 장치를 구성함으로써, 폼 예측을 수행하는데 필요한 주파수를 빠른 클럭에서 느린 클럭으로 낮출 수 있어 전체적인 파워 소모를 줄일 수 있으며, 또한, 더블 버퍼를 폼 예측부의 전단에 설계함에 의해 동시에 처리해야 될 픽셀의 개수가 8개 픽셀에서 1개 픽셀로 줄어듦으로써, 시리얼 폼 예측이 가능하고 이로 인해 이 부분의 회로가 1/8로 줄어들어 게이트 카운트가 줄어들므로 회로 면적이 작아지고, 캐패시턴스도 작아져서 파워 소모도 더욱 줄어들게 된다.
또한, 본 발명은 하프/쿼드 펠 예측이 가능하기 때문에 SDTV에 들어가는 MPEG-2 비디오 디코더뿐만 아니라 HDTV에 들어가는 MP@HL MPEG 2 비디오 디코더에도 모두 적용할 수 있다.

Claims (6)

  1. 움직임 벡터값에 따라 폼 예측을 수행한 후 역 이산 코사인 변환된 데이터와 더하여 완전한 영상으로 복원하는 움직임 보상 장치에 있어서,
    기준 프레임을 저장하는 외부 메모리와,
    상기 외부 메모리에서 읽어온 기준 매크로블록을 높은 주파수의 클럭으로 라이트하고 라이트된 매크로블록을 낮은 주파수의 클럭으로 리드하는 더블 버퍼와,
    낮은 주파수의 클럭에 동기되어 상기 더블 버퍼로부터 리드된 데이터의 수평, 수직 보간을 픽셀 단위로 처리하는 시리얼 폼 예측부와,
    상기 시리얼 폼 예측부에서 보간된 데이터와 IDCT된 데이터를 더하여 완전한 화상으로 복원하는 가산기로 구성됨을 특징으로 하는 움직임 보상 장치.
  2. 제 1 항에 있어서, 상기 시리얼 폼 예측부는
    움직임 타입, 매크로블록 움직임 상태에 따라 2개의 픽셀을 동시에 폼 예측하여 평균을 내야 하는 경우를 위하여 필요한 동일한 구성의 제 1, 제 2 서브 폼 예측부와,
    움직임 타입, 매크로블록 움직임 상태에 따라 셋트되는 평균 플래그 값에 따라 상기 제 1, 제 2 서브 폼 데이터 예측부에서 동시에 폼 예측된 픽셀 데이터의 평균값을 구하여 출력하거나 상기 제 1 또는 제 2 서브 폼 데이터 예측부에서 폼 예측된 픽셀 데이터를 그대로 바이패스시키는 데이터 출력부로 구성되며,
    상기 더블 버퍼는 다시 2개의 더블 버퍼로 나누어져 상기 제 1, 제 2 서브 폼 예측부와 각각 연계됨을 특징으로 하는 움직임 보상 장치.
  3. 제 2 항에 있어서, 상기 제 1 서브 폼 예측부는
    상기 더블 버퍼부터 출력되는 픽셀들을 정렬하기 위한 배럴 쉬프터와,
    상기 배럴 쉬프터에서 정렬된 데이터를 수평, 수직 보간을 위해 일시 저장하는 복수개의 픽셀 라인 레지스터와,
    상기 복수개의 픽셀 라인 레지스터에 저장된 다수개의 픽셀에서 수평 보간에 필요한 픽셀들만을 각각 선택 출력하는 복수개의 멀티플렉서와,
    상기 복수개의 멀티플렉서를 통해 입력되는 픽셀들을 이용하여 픽셀 단위로 하프-펠 또는 쿼드-펠 보간을 수행하는 데이터 보간부로 구성됨을 특징으로 하는 움직임 보상 장치.
  4. 제 3 항에 있어서, 하나의 픽셀 라인 레지스터에는
    포맷 상태에 따라 기준 매크로블록의 한 라인 또는 두 라인이 저장됨을 특징으로 하는 움직임 보상 장치.
  5. 제 3 항에 있어서, 상기 픽셀 라인 레지스터는
    토글 포인트를 기준으로 해서 앞쪽 부분에는 상기 더블 버퍼에서 출력되는 픽셀들을 쓰면서 동시에 이미 저장된 뒤쪽 부분의 픽셀들은 읽어내어 데이터 보간부로 출력함을 특징으로 움직임 보상 장치.
  6. 제 2항에 있어서, 상기 데이터 출력부는
    양방향 모드이거나 듀얼 프라임 움직임 타입이면 상기 제 1, 제 2 서브 폼 예측부에서 각각 폼 예측되어 출력되는 2 픽셀 값에 대해 평균을 내어 출력함을 특징으로 하는 움직임 보상 장치.
KR1019980000597A 1998-01-12 1998-01-12 움직임 보상 장치 KR19990065349A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980000597A KR19990065349A (ko) 1998-01-12 1998-01-12 움직임 보상 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980000597A KR19990065349A (ko) 1998-01-12 1998-01-12 움직임 보상 장치

Publications (1)

Publication Number Publication Date
KR19990065349A true KR19990065349A (ko) 1999-08-05

Family

ID=65728382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980000597A KR19990065349A (ko) 1998-01-12 1998-01-12 움직임 보상 장치

Country Status (1)

Country Link
KR (1) KR19990065349A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030073141A (ko) * 2002-03-08 2003-09-19 주식회사 엘지이아이 Mpeg-4 비디오 코덱에서 움직임 벡터 코딩을 위한움직임 벡터 메모리 최소화 방법
KR101228111B1 (ko) * 2006-11-01 2013-02-01 삼성전자주식회사 움직임 보상을 위한 더블 레지스터 어레이 버퍼

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030073141A (ko) * 2002-03-08 2003-09-19 주식회사 엘지이아이 Mpeg-4 비디오 코덱에서 움직임 벡터 코딩을 위한움직임 벡터 메모리 최소화 방법
KR101228111B1 (ko) * 2006-11-01 2013-02-01 삼성전자주식회사 움직임 보상을 위한 더블 레지스터 어레이 버퍼

Similar Documents

Publication Publication Date Title
Wang et al. High throughput and low memory access sub-pixel interpolation architecture for H. 264/AVC HDTV decoder
JPH09102954A (ja) 1つまたは2つの予測ブロックからブロックの画素値を計算する方法
KR100451584B1 (ko) 웨이블릿 변환과 움직임 추정을 이용한 동영상 부호화 및복호화 장치
JPH08294115A (ja) Mpeg復号化器及びその復号化方法
KR19990065349A (ko) 움직임 보상 장치
KR20030057690A (ko) 비디오 디코딩 시스템
KR100269426B1 (ko) 개선된프레임메모리를갖는움직임보상장치
KR100243471B1 (ko) 프레임 메모리에 있어서 어드레스 발생장치
JPH07336689A (ja) 動き補償回路
KR100226705B1 (ko) 어드레스 발생시 프레임 메모리 상태 천이방법 및 장치
KR100197597B1 (ko) 움직임보상에 따른 매크로블럭의 레퍼런스 처리장치 및 방법
KR100248653B1 (ko) 프레임 메모리에 있어서 어드레스 발생시 블럭상태 천이방법
KR100243469B1 (ko) 프레임 메모리에 있어서 어드레스 발생장치
KR100235484B1 (ko) 움직임 보상 장치의 반화소 보상기
KR100243470B1 (ko) 프레임 메모리에 있어서 어드레스 발생장치
KR0152780B1 (ko) 영상 디코더의 반화소 처리 장치
KR100235486B1 (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 슬라이스 위치 보상방법 및 회로
KR100235487B1 (ko) 움직임 보상 장치의 반화소 보상기
KR960013233B1 (ko) 고화질 텔레비전의 움직임 보상과 디스플레이를 위한 메모리 어드레스와 디스플레이의 콘트롤 장치
KR100243476B1 (ko) 움직임 보상 장치의 반화소 보상기
KR100255221B1 (ko) 프레임 메모리에 있어서 반화소 보상시 화소 어드레스 보상방법및 박스 보상을 위한 어드레스 카운터
KR100235485B1 (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 기준 포인트 보상방법 및 회로
KR100226702B1 (ko) 프레임 메모리에 있어서 어드레스 발생시 블럭상태 천이방법
KR19990071064A (ko) 영상 관련 데이터를 저장하기 위한 메모리 맵 구조를 가지는 에스디램
KR100243473B1 (ko) 프레임 메모리에 있어서 예측 매크로블록에 대한 어드레스 발생시 움직임 벡터 보상회로

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060911

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee