KR100202957B1 - 양자화기 - Google Patents

양자화기 Download PDF

Info

Publication number
KR100202957B1
KR100202957B1 KR1019960075567A KR19960075567A KR100202957B1 KR 100202957 B1 KR100202957 B1 KR 100202957B1 KR 1019960075567 A KR1019960075567 A KR 1019960075567A KR 19960075567 A KR19960075567 A KR 19960075567A KR 100202957 B1 KR100202957 B1 KR 100202957B1
Authority
KR
South Korea
Prior art keywords
data
read address
quantizer
memory
matrix
Prior art date
Application number
KR1019960075567A
Other languages
English (en)
Other versions
KR19980056301A (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 KR1019960075567A priority Critical patent/KR100202957B1/ko
Publication of KR19980056301A publication Critical patent/KR19980056301A/ko
Application granted granted Critical
Publication of KR100202957B1 publication Critical patent/KR100202957B1/ko

Links

Classifications

    • 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/124Quantisation
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

본 발명은 영상 부호화기의 양자화기에 관한 것으로서, 본 발명은 외부로부터 매트릭스와 카운팅 신호를 입력받아 그 매트릭스를 지그재그 방식으로 저장하기 위한 쓰기 어드레스 신호를 발생시키고, 또한 이산여현 변환 계수의 스캔 방식에 따라 지그재그 방식 또는 대체 방식으로 매트릭스를 출력하기 위해 읽기 어드레스 신호를 발생시키는 메모리 제어부(420)와; 상기 쓰기 어드레스신호에 따라 상기 메모리 제어부(420)로부터의 매트릭스를 저장시키고, 상기 읽기 어드레스 신호에 따라 저장되어 있던 매트릭스를 상기 메모리 제어부(420)로 출력시키는 메모리(440); 나눗셈 연산을 곱셈 연산으로 변환해주기 위해 입력된 각 데이터에 대해 역수를 취한 후, 그 역수값들을 출력시키는 연산 제어부(460); 스캔된 두 화소 단위의 이산여현 변환계수를 입력받아 상기 출력된 역수값과 곱셈을 수행한 후, 양자화된 데이터를 출력시키는 양자화 코어부(480)로 구성되며, 본 발명에 따르면 한 번에 두 화소씩 동시에 양자화를 수행하기 위해서 지그재그 방식으로 저장된 매트릭스를 영상 데이터의 스캔방식에 따라 지그재그 스캔된 경우에는 그대로 출력하고 대체 스캔된 경우에는 대체 방식으로 출력하므로써 메모리의 용량을 간소화시킬 수 있을 뿐만 아니라 전용칩화를 용이하게 구현할 수 있다.

Description

양자화기 (A quantizer)
본 발명은 양자화기(Quantizer)에 관한 것으로, 특히 영상 부호화기(Video Encoder)에서 지그재그 방식으로만 다운로딩되어 메모리에 저장되는 양자화 매트릭스를 지그재그 스캔(zigzag scan)방식 또는 대체 스캔(alternate scan)방식으로 입력되는 영상 데이터의 스캔방식에 따라 적절하게 어드레싱하여 두 개의 화소씩 동시에 양자화를 수행하도록 되어진 양자화기에 관한 것이다.
일반적으로 많은 양의 영상정보를 기존의 전송대역을 이용하여 효과적으로 처리하기 위해 영상데이타의 압축은 필수 불가결하며, 특히 디지탈 영상신호는 정보의 표현에 많은 메모리를 필요로 하기 때문에 영상정보를 압축하므로써 정보의 저장과 검색, 전송등을 보다 효율적으로 수행할 수 있다.
이처럼 영상데이터를 압축하기 위해 고화질 텔레비젼(HDTV: High Definition TeleVision)시스템에서는 크게 3 가지 방법을 사용하고 있는데, 첫째는 한 화상과 다음 화상 간의 관계 즉, 움직임 벡터(motion vector)의 값을 이용하여 전송 정보량을 줄이는 기법, 둘째로 한 화상내의 정보 압축을 위한 이산여현변환(DCT: Discrete Cosine Transform)과 양자화(Quantizing) 기법, 그리고 셋째로 이들 변환된 정보를 정보의 확률적 분포에 의해 적절한 크기의 비트로 변환하는 가변 길이 부호화(VLC: Variable Length Coding)기법이 있다.
도 1 은 일반적인 영상부호화기를 도시한 구성 블록도로서, 특히 MPEG (Moving Picture Expert Group)-2 방식에 따른 영상 부호화기를 도시한 것이다. 도 1 에 도시된 영상부호화기는 프레임 메모리(10), 감산부(11), 이산여현 변환부(12), 양자화부(13), 가변길이 부호화부(14), 버퍼(15), 버퍼 제어부(16), 역양자화부(17), 역 이산여현 변환부(18), 가산부(19), 프레임 메모리(20), 움직임 추정부(21) 및 움직임 보상부(22)로 구성되어 있다.
프레임 메모리(10)에서는 입력된 영상을 프레임 단위로 저장하며, 감산부(11)에서는 현재 프레임의 원영상과 이전 프레임의 복원 영상에 대한 움직임 보상 영상을 감산하여 프레임간 차영상을 생성한다.
이산 여현 변환부(12)에서는 화소간의 상관성을 제거하기 위하여 프레임간 차영상을 예를 들면, 8×8 픽셀의 블럭으로 이산 여현 변환하여 이산 여현 변환 계수를 출력한다.
양자화부(13)에서는 이산 여현 변환부(12)에서 출력되는 프레임간 차영상의 이산 여현 변환 계수를 소정의 양자화 간격으로 양자화하여 출력한다.
가변길이 부호화부(14)에서는 양자화부(13)에서 양자화된 프레임간 차영상을 가변길이 부호화하는데, 예를 들어 8 비트로 표현되는 신호들 중에서 빈도가 많은 데이타는 적은 비트로 표현하고, 빈도가 적은 데이타는 많은 비트로 표현함으로써 차영상을 표현하는 전체 비트수를 줄인다.
버퍼(15)에서는 가변길이 부호화부(14)에서 출력되는 데이타의 길이가 일정하지 않으므로 데이타를 일시적으로 저장한 후 일정한 속도로 부호화된 영상 데이터를 출력하게 된다.
버퍼 제어부(16)에서는 버퍼(15)의 데이타의 점유량에 따라 양자화 스텝사이즈를 결정하여 양자화부(13)를 제어하는데, 즉 데이타의 점유량이 많으면 양자화 스텝 사이즈를 높여 버퍼(15)로 입력되는 데이타량을 감소시키고, 데이타의 점유량이 적으면 양자화 스텝 사이즈를 낮추어 버퍼(15)에 입력되는 데이타량을 증가시킨다.
역 양자화부(17)는 양자화부(13)의 출력단에 연결되며, 양자화된 프레임간 차영상을 양자화부(13)에 입력되기 이전의 상태로 복원한다.
역 이산여현 변환부(18)는 역 양자화부(17)의 출력단에 연결되며, 역 양자화부(17)에서 역 양자화된 프레임간 차영상을 이산 여현 변환부(12)에 입력되기 이전의 상태로 복원한다.
가산부(19)에서는 역 이산여현 변환부(12)에서 복원된 프레임간 차영상과 움직임 보상 영상을 가산하여 이전 프레임의 복원 영상으로 프레임 메모리(20)에 저장한다.
움직임 추정부(21)에서는 통상 블럭정합 알고리즘을 사용하며, 입력되는 현재 프레임의 영상과 프레임 메모리(20)에 저장된 이전 프레임의 영상간의 유사한 부분을 추정하여 그 위치 이동의 결과를 움직임 벡터로 출력한다.
움직임 보상부(22)에서는 프레임 메모리(10)에 저장되어 있는 이전 프레임에 대한 복원 영상의 움직임 위치를 움직임 벡터에 의하여 보상된 움직임 보상 영상을 감산부(11)와 가산부(19)로 각각 출력한다.
상기와 같은 영상 부호화기에서 영상 데이터를 부호화하는 과정에 있어서 종래에는 영상 데이터를 양자화시킨 후 스캔과정을 수행하였으나 영상 부호화기를 설계하는 실제적인 측면에서 시간지연(latency)의 문제 때문에 이산여현 변환후 즉, 양자화 이전에 스캔 과정이 수행될 것이 요구되었다.
한편, 도 2a 는 지그재그 스캔(zigzag scan)방식을 나타낸 도면이고, 도 2b 는 대체 스캔(alternate scan)방식을 나타낸 도면으로서, 도 2a 내지 도 2b 에 도시된 바와 같이 MPEG-2 에서 사용되는 스캔방식으로는 지그재그 스캔방식과 대체 스캔방식이 존재하는데, 상술한 바와 같이 양자화 이전에 스캔과정이 이루어질 경우에 양자화기는 적어도 이 두 가지 방식을 지원할 수 있어야 한다.
즉, MPEG 에 있어서 양자화는 공간주파수에 따라 가중치를 달리하는 적응 양자화 방식이고, 이를 위해 인트라(intra)블럭의 양자화를 위한 가중치 매트릭스(intra quantizer matrix)와 인터(inter)블럭의 양자화를 위한 가중치 매트릭스(inter quantizer matrix)를 필요로 하는데, 이들 매트릭스의 입력(또는 전송)순서는 지그재그 스캔방식 하나로 권고되어 있는 반면에, 영상 데이타의 입력 순서는 스캔방식(지그재그 스캔 또는 대체 스캔)에 따라 달라진다. 따라서, 양자화 이전에 스캔이 수행되기 위해서는 스캔방식에 따라 매트릭스의 순서와 데이타의 순서를 일치시켜 주어야 한다.
특히, 영상부호화를 신속하게 처리하기 위하여 양자화기에서 두 개의 화소씩 동시에 처리할 경우에 입력 데이터쌍과 매트릭스쌍을 정확하게 매칭시킬 필요가 있다.
이에 본 발명은 상기한 바와 같은 필요성을 충족시키기 위해 안출된 것으로, 지그재그 스캔방식이나 대체 스캔방식으로 입력되는 영상 데이터를 해당되는 양자화 매트릭스와 양자화 스케일에 따라 양자화를 수행함에 있어서 한 번에 두 개의 화소씩 동시에 처리해내므로써 메모리의 용량을 간소화하여 전용칩(ASIC)화를 용이하게 한 양자화기를 제공하는데 그 목적이 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명에 따른 양자화기는, 외부로부터 매트릭스 데이터와 카운팅 신호를 입력받아 그 매트릭스 데이터를 지그재그 방식으로 저장하기 위한 쓰기 어드레스 신호를 발생시키고, 또한 이산여현 변환 계수의 스캔 방식에 따라 지그재그 방식 또는 대체 방식으로 매트릭스 데이터를 출력하기 위해 읽기 어드레스 신호를 발생시키는 메모리 제어부와; 상기 메모리 제어부의 쓰기 어드레스 신호에 따라 상기 메모리 제어부로부터의 매트릭스 데이터를 저장시키고, 상기 메모리 제어부의 읽기 어드레스 신호에 따라 저장되어 있던 매트릭스 데이터를 상기 메모리 제어부로 출력시키는 메모리; 나눗셈 연산을 곱셈 연산으로 변환해주기 위해 입력된 각 데이터에 대해 역수를 취한 후, 그 역수값들을 출력시키는 연산 제어부; 및 스캔된 두 화소 단위의 이산여현 변환계수를 입력받아 상기 연산 제어부로부터의 역수값과 곱셈을 수행한 후, 양자화된 데이터를 출력시키는 양자화 코어부로 구성된 것을 특징으로 한다.
상기한 본 발명에 따르면 한 번에 두 화소씩 동시에 양자화를 수행함에 있어서 지그재그 방식으로 저장된 매트릭스 데이터를 영상 데이터의 스캔 방식에 따라 지그재그 스캔된 경우에는 그대로 출력하고 대체 스캔된 경우에는 대체 방식으로 출력하므로써 메모리의 용량을 간소화시킬 수 있을 뿐만 아니라 전용칩화를 용이하게 구현할 수 있다.
도 1 은 일반적인 영상 부호화기를 도시한 구성 블록도,
도 2a 는 지그재그 스캔(zigzag scan)방식을 나타낸 도면,
도 2b 는 대체 스캔(alternate scan)방식을 나타낸 도면
도 3 의 (a)는 자연영상을 나타낸 도면,
(b)는 도 3 의 (a)에 나타낸 자연영상을 8×8 화소블록으로 분할 한 영상을 나타낸 도면,
(c)는 도 3 의 (b)에 나타낸 8×8 화소블록을 이산여현 변환시킨 영상을 나타낸 도면,
(d)는 도 3 의 (c)에 나타낸 이산여현 변환된 영상을 양자화시킨 영상을 나타낸 도면,
도 4 은 본 발명에 따른 양자화기의 주변 블록도,
도 5 는 본 발명에 따른 양자화기의 구성 블록도,
도 6 은 도 5 에 도시된 메모리 제어부와 메모리의 세부 구성 블록도이다.
* 도면의 주요부분에 대한 부호의 설명
100: 호스트 인터페이스 200: 이산여현 변환부
300: 스캔부 400: 양자화부
420: 메모리 제어부 421: 쓰기 어드레스 발생부
422: 데이터 분배부 423: 카운터
424: 읽기 어드레스 발생부 424a: 제 1 읽기 어드레스 발생부
424b: 제 2 읽기 어드레스 발생부 425: 제 1 다중화부
426: 제 2 다중화부 427: 데이터 결합부
428: 제 3 다중화부 440: 메모리
440A: 제 1 메모리부 440B: 제 2 메모리부
500: 가변길이 부호화부 600: 버퍼 제어부
이하, 첨부된 예시도면을 참조하여 본 발명에 대해 상세히 설명하기로 한다.
우선, 본 발명의 이해를 돕기 위해 이산여현 변환후, 양자화되는 과정을 살펴본다.
도 2 의 (a) 내지 (d)는 비디오 카메라를 통해 촬상된 자연영상을 디지탈로 변환하여 이산여현 변환 및 양자화하는 개념을 설명하기 위하여 도시한 도면이다.
도 3 의 (a)는 자연영상을 나타낸 도면이고, 도 3 의 (b)는 도 3 의 (a)에 나타낸 자연영상을 8×8 화소 블록으로 분할한 영상을 나타낸 도면이며, 도 2 의 (c)는 도 3 의 (b)에 나타낸 8×8 화소블록을 이산여현 변환(DCT)시킨 영상을 나타낸 도면이고, 도 3 의 (d)는 도 3 의 (c)에 나타낸 이산여현 변환된 영상을 양자화시킨 영상을 나타낸 도면이다.
여기서, 도 3 의 (a)에 나타낸 도면은 한 장의 자연영상, 예컨대 352 × 288 화소를 8 × 8 화소의 정방형 화소블록으로 분할한 후 각각의 화소블록이 순차적으로 이산여현 변환부로 입력되는 영상을 나타낸다.
그리고, 도 3 의 (b)에 나타낸 도면은 도 3 의 (a)에 도시된 자연영상의 8 ×8 화소블록으로서 2 차원 공간상에 a1내지 a64로 할당된 것을 나타내고, 도 2 의 (c)는 도 3 의 (b)에 나타낸 8×8 화소블록이 이산여현 변환되어 저주파항(L)부터 고주파항(H)으로 분리되어 순차적으로 분포된 것(b1∼b64)을 나타낸다.
또한, 도 3 의 (d)는 도 3 의 (c)와 같이 이산여현 변환된 후의 각 계수를 소정 제수, 즉 양자화 스텝 및 양자화 매트릭스로 나누어 양자화시킨 블럭을 나타낸 것이다. 도 3 의 (a) 내지 (d)에서 순차적으로 나타낸 바와 같이 이산여현 변환 및 양자화를 통해 영상 데이타가 압축되는 것을 알 수 있다.
이어서, 양자화(quantization)에 대해 더 자세히 살펴보면, MPEG-2 에서 양자화는 이산여현 변환(DCT)과 같이 8x8 블록단위로 처리되는데, 이산여현 변환된 계수를 코딩방식에 따라(인트라 코딩인지 또는 인터코딩인지) 해당 양자화 매트릭스(Quantization matrix)로 나눈 후, 다시 레이트 컨트롤(rate control)방법에 의해 정해진 양자화 스케일(Quantization scale)로 나누어 발생되는 데이타량을 줄이는 것이다.
여기서, 양자화 매트릭스는 앞서 설명한 바와 같이 적응 양자화 방식에서 인간의 시각특성 등을 고려하여 공간 주파수에 따라 가중치를 달리 부여하기 위한 것으로서, 영상 데이터와 대응되게 8x8 매트릭스의 크기를 가지며, 인트라 블럭(intra coded block)의 양자화를 위한 매트릭스(intra quantizer matrix)와 인터블럭(inter coded block)의 양자화를 위한 매트릭스(non_intra quantizer matrix)로 구분된다. 이때, MPEG-2 에서는 인트라 및 인터 양자화 매트릭스로서 사용자가 임의로 정의한 매트릭스(user defined matrix)를 사용하거나 미리 정의된 디폴트 매트릭스(default matrix)를 사용하도록 권고하고 있다. 따라서, 사용자가 매트릭스를 임의로 정의하여 사용할 경우에는 부호화단에서 복호화단으로 그 양자화 매트릭스를 MPEG 비트 스트림상의 헤더로 전송해 주어야 하고, 디폴트 테이블을 사용할 경우 양자화 매트릭스는 다음 표 1 및 표 2 와 같이 정해져 있다. 이때, 양자화 매트릭스는 지그재그 방식으로 다운로드되도록 권고되어 있다.
인터 양자화 매트릭스
상기 표 1 에서와 같이, 인트라 양자화 매트릭스는 저주파대에서는 양자화를세밀하게(fine) 수행하고, 고주파대에서는 양자화를 엉성하게(coarse) 수행한다. 그 이유는 저주파 부분은 화질에 커다란 영향을 미치나 고주파부분은 화질에 커다란 영향을 미치지 않기 때문이다. 또한, 인터블럭은 움직임 보상에 의해 차분영상을 부호화한 것이기 때문에, 대분분의 데이터가 저주파 부분에만 있고 고주파 부분에는 적어서 상기 표 2 와 같이 균등하게 가중치를 부여한다.
한편, 양자화 스케일은 레이트 컨트롤(또는, 버퍼 제어라고도 한다)방법에 따라 부호화시에 발생되는 데이터량을 적절히 제어하기 위하여 부호화되는 원영상의 복잡도(activity)와 버퍼의 충만도(fullness) 등에 의해 결정되는데, MPEG-2 에서 부호화시에 정해진 양자화 스케일값은 비트스트림의 헤더(예컨대, q_scale_type, quantizer_scale_code)를 통해 복호화단으로 전달되게 된다.
이어서, 상기와 같은 양자화에 대한 이해를 바탕으로 본 발명에 따른 양자화기의 구성을 설명하기로 한다.
도 4 는 본 발명에 따른 양자화기의 주변 블록도로서, 도 4 에는 호스트 인터페이스(100), 이산여현 변환부(200), 스캔부(300), 양자화부(400), 가변길이 부호화부(500) 및 버퍼 제어부(600)가 도시되어 있으며, 본 발명에 해당하는 양자화부(400)의 주변에는 여러 구성블럭이 존재할 수 있으나, 설명의 편의상 생략하였다. 상기 이산여현 변환부(200), 스캔부(300)와 가변길이 부호화부(500)는 앞서 살펴본 바와 같다. 호스트 인터페이스(100)의 데이터 버스와 제어 버스는 공통 버스(common bus)로서, 이 공통 버스를 통해 각 블록은 필요한 데이터와 여러 가지 제어 신호를 공급받는데, 이때 양자화부(400)는 상기 데이터 버스를 통해 매트릭스 데이터(matrix)를 공급받고 상기 제어 버스를 통해 쓰기 어드레스 신호를 발생하기 위한 카운팅 신호(address)를 공급받는다. 여기서, 호스트 인터페이스(100)는 호스트(도시하지 않음)로부터의 신호를 각 블록에 전달하기 위한 인터페이스에 해당한다. 그리고, 버퍼 제어부(600)는 특히 양자화부(400)를 제어하기 위해 여러 가지 제어신호를 출력하는데, 이때의 제어 신호로는 예를 들어, 지그재그 스캔인지 아니면 대체 스캔인지를 알리는 제어 신호(zz_ alter)와 인터 양자화 매트릭스인지 아니면 인트라 양자화 매트릭스인지를 알리는 제어 신호(inter_intra)등이 있다.
도 5 는 본 발명에 따른 양자화기를 도시한 구성 블록도로서, 본 발명의 양자화기는 메모리 제어부(410)와; 메모리(440); 연산 제어부(460); 및 양자화 코어부(480)로 구성되어 있고, 이때 양자화 코어부(480)는 한 번에 두 화소씩 동시에 양자화를 수행하기 위해 제 1 코어부(480A)와 제 2 코어부(480B)로 나뉘어져 있다.
도 6 은 도 5 에 도시된 메모리 제어부(410)와 메모리(440)의 세부 구성 블록도로서, 메모리 제어부(410)는 쓰기 어드레스 발생부(421)와; 데이터 분배부(422); 카운터(423); 읽기 어드레스 발생부(424); 제 1 다중화부(425); 제 2 다중화부(426); 데이터 결합부(427); 및 제 3 다중화부(428)로 구성되어 있으며, 이때 읽기 어드레스 발생부(424)는 제 1 읽기 어드레스 발생부(424a)와 제 2 읽기 어드레스 발생부(424b)로 나뉘어져 있다. 또한, 메모리(440)는 제 1 메모리부(440A)와 제 2 메모리부(440B)로 구성되어 있는데, 상기 제 1 메모리부(440A)와 상기 제 2 메모리부(440B)에는 각각 하나의 포트를 갖는 3 개의 램(OP_RAM0-1, OP_RAM0-2, OP_RAM1)이 구비되어 있다.
먼저, 도 5 및 도 6 에 도시된 각 블럭으로 입출력되는 신호들에 대해 개괄적으로 정의하기로 한다.
clk는 시스템 클럭이고, rst는 리셋신호이며, mbs는 매크로 블럭의 시작(macroblock start)을 나타내는 신호이다. 그리고, address 는 메모리 제어부(420)의 쓰기 어드레스 발생부(421)에서 쓰기 어드레스 신호를 발생시키기 위한 카운팅 신호일 뿐만 아니라 메모리 제어부(420)의 데이터 분배부(422)에서 데이터를 분배시키는데 필요한 신호이며, matrix 는 양자화 매트릭스를 나타내는 것으로, address 와 matrix 는 외부 즉, 호스트 인터페이스(100:도 4 참조)로부터 입력된다. 또한, ram1_wren 와 ram2_wren 는 매트릭스 데이터를 저장 또는 출력하기 위해 메모리(440)의 제 1 메모리부(440A)와 제 2 메모리부(440B)를 인에이블시키거나 디스에이블시키는 인에이블 신호로서, 이 신호들도 호스트 인터페이스(100:도 4 참조)로부터 입력되는 신호들이다. 여기서, ram1_wren 와 ram2_wren 는 교대로 하이가 되는데, 즉 ram1_wren 가 하이 로 되면 ram2_wren 는 로우 가 되고, ram1_wren 가 로우로 되면 ram2_wren 는 하이가 된다. 만약, ram1_wren 가 로우 이면 제 1 메모리부(440A)에 매트릭스 데이터가 저장되며, 제 2 메모리부(440B)에서는 저장되어 있던 매트릭스 테이터가 출력된다. 반대로, ram1_wren 가 하이 이면 제 2 메모리부(440B)에 매트릭스 데이터가 저장되며, 제 1 메모리부(440A)에서는 저장되어 있던 매트릭스 테이터가 출력된다.
한편, wadrs 는 쓰기 어드레스 신호로서, 지그재그 방식에 따라 발생되며, radrs 는 읽기 어드레스 신호로서 지그재그 방식 또는 대체 방식에 따라 발생된다.
그리고, zz_alter 는 지그재그 스캔인지 아니면 대체 스캔인지를 알리는 신호이고, inter_intra 는 인터 양자화 매트릭스인지 아니면 인트라 양자화 매트릭스인지를 알리는 신호로서, 이 신호들(zz_alter,inter_intra)은 외부 즉, 버퍼 제어부(600:도 4 참조)로부터 입력되는 신호이다.
quant_scale_code와 quant_scale_type 은 양자화 스케일의 값을 표시하기 위해 MPEG2에서 정의된 신호로서 MPEG 권고안에서와 같이 quant_scale_type이 0 이냐 1 이냐와 5비트의 quant_scale_code값에 따라 양자화 스케일의 값이 정해지는데, 이러한 값들은 버퍼 제어부(600: 도 4 참조)로부터 결정된다.
그리고, dc_pre는 MPEG-2 에서 픽쳐_코딩_익스텐션에 있는 2 비트의 신호로서, 인트라 블록에서 DC 계수의 크기(정밀도)를 나타낸 것으로 예컨대, 0 이면 DC계수가 8 비트로 표현된 것을 나타내고 3 이면 11비트로 표현된 것을 나타낸다.
또한, data_even 및 data_odd는 두 화소 단위의 이산여현 변환 계수 데이터이고, quant_even 및 quant_odd는 두 화소의 데이터가 양자화된 후 출력되는 데이터를 나타낸다.
한편, 도 5 를 참조하여 본 발명에 따른 양자화기의 각 블록에 대해 살펴보면, 메모리 제어부(420)에서는 외부 즉, 호스트 인터페이스(100:도 4 참조)로부터 매트릭스 데이터(matrix)와 카운팅 신호(address)를 입력받아 그 매트릭스 데이터를 지그재그 방식으로 저장하기 위한 쓰기 어드레스 신호(wadrs)를 발생시키고, 또한 이산여현 변환 계수(data_even, data_odd)의 스캔 방식에 따라 지그재그 방식 또는 대체 방식으로 매트릭스 데이터를 출력하기 위해 읽기 어드레스 신호(radrs)를 발생한다.
메모리(440)에서는 상기 메모리 제어부(420)의 쓰기 어드레스 신호(wards)에 따라 상기 메모리 제어부(420)로부터의 매트릭스 데이터(matrix)를 저장하고, 상기 메모리 제어부(420)의 읽기 어드레스 신호(radrs)에 따라 저장되어 있던 매트릭스 데이터(matrix)를 상기 메모리 제어부(420)로 출력한다.
연산 제어부(460)에서는 나눗셈 연산을 곱셈 연산으로 변환해주기 위해 입력된 각 데이터에 대해 역수를 취한 후, 그 역수값들을 출력한다.
양자화 코어부(480)에서는 스캔된 두 픽셀 단위의 이산여현 변환계수(data_ even, data_odd)를 입력받아 상기 연산 제어부(460)으로부터의 역수값과 곱셈을 수행한 후, 양자화된 데이터(quant_even, quant_odd)를 출력하는데, 이때 제 1 코어부(480A)는 짝수 데이터(data_even)를 양자화하기 위한 부분이고, 제 2 코어부(480B)는 홀수 데이터(data_odd)를 양자화하기 위한 부분이다.
이어서, 도 6 을 참조하여 메모리 제어부(420)와 메모리(440)의 세부 구성 블록에 대해서 설명하면 다음과 같다.
우선 메모리 제어부(420)에 대해 살펴보면, 쓰기 어드레스 발생부(421)에서는 호스트 인터페이스(100: 도 4 참조)로부터 메모리 인에이블 신호(ram1_wren, ram2_wren)와 카운팅 신호(address)를 입력받아 지그재그 방식에 따른 쓰기 어드레스 신호(wadrs1, wadrs2, wadrs3)를 발생시키는데, 이때 쓰기 어드레스 발생부(421)는 프로그래머블 로직 어래이(PLA: Programmable Logic Array)로 구현할 수 있다. 데이터 분배부(422)에서는 지그재그 방식으로 스캔된 매트릭스 데이터를 호스트 인터페이스(100: 도 4 참조)로부터 입력받아 데이터를 분배(data1a/ data2a, data1b/data2b, data1c/data2c)시키는데, 이때 데이터 분배부(422)는 프로그램머블 로직 어래이(PLA)로 구현할 수 있다. 카운터(423)에서는 시스템 클럭(clk), 리셋신호(rst)와 매크로블럭 시작신호(mbs)를 입력받으며, 카운팅 신호를 출력한다. 읽기 어드레스 발생부(424)에서는 상기 카운터(423)로부터의 카운팅 신호를 입력받아 제 1 읽기 어드레스 신호(1radrs)와 제 2 읽기 어드레스 신호(2radrs)를 출력시키는데, 여기서 상기 읽기 어드레스 발생부(424)의 제 1 읽기 어드레스 발생부(424a)는 상기 카운팅 신호를 입력받아 지그재그 방식의 제 1 읽기 어드레스 신호(1radrs)를 출력시키고, 상기 읽기 어드레스 발생부(424)의 제 2 읽기 어드레스 발생부(424b)는 상기 카운팅 신호를 입력받아 대체 방식의 제 2 읽기 어드레스 신호(2radrs)를 출력시키며, 이때 상기 제 1 읽기 어드레스 발생부(424a)와 제 2 읽기 어드레스 발생부(424b)는 프로그래머블 로직 어래이(PLA)로 구현할 수 있다. 제 1 다중화부(425)에서는 지그재그 방식인지 아니면 대체 방식인지를 알리는 버퍼 제어부(600: 도 4 참조)로부터의 제어신호(zz_alter)에 따라 상기 읽기 어드레스 발생부(424)로부터의 제 1 읽기 어드레스 신호(1radrs1,1radrs2,1radrs3)와 제 2 읽기 어드레스 신호(2radrs1,2radrs2, 2radrs3)중 하나의 읽기 어드레스 신호(radrs1,radrs2,radrs3)를 선택하여 출력시킨다. 제 2 다중화부(426)에서는 인터 양자화 매트릭스인지 아니면 인트라 양자화 매트릭스인지를 알리는 버퍼 제어부(600: 도 4 참조)로부터의 제어신호(inter_intra)에 따라 인터 양자화 매트릭스 데이터(data1a, data1b, data1c 중 두 데이터)와 인트라 양자화 매트릭스 데이터(data2a, data2b, data2c 중 두 데이터)중 하나의 매트릭스 데이터를 선택하여 출력시킨다. 데이터 결합부(427)에서는 상기 제 2 다중화부(426)로부터 입력된 데이터를 결합하여 출력시키는데, 이때 데이터 결합부(427)는 프로그래머블 로직 어래이(PLA)로 구현할 수 있다. 제 3 다중화부(428)에서는 지그재그 방식인지 아니면 대체 방식인지를 알리는 버퍼 제어부(600: 도 4 참조)로부터의 제어신호(zz_alter)에 따라 상기 데이터 결합부(427)로부터 입력된 데이터중 한 데이터를 선택하여 출력시킨다.
또한, 메모리(440)에 대해 구체적으로 살펴보면, 메모리(440)는 인터 양자화 매트릭스와 인트라 양자화 매트릭를 각각 저장하기 위하여 적어도 두 개의 8비트 *64워드 메모리 즉, 제 1 메모리부(440A)와 제 2 메모리부(440B)로 구성되어 있는데, 상기 제 1 메모리부(440A)와 상기 제 2 메모리부(440B)에는 각각 하나의 포트를 갖는 3 개의 램(OP_RAM0-1, OP_RAM0-2, OP_RAM1)이 구비되어 있으며, 각각 3 개의 램중 두 개의 램(OP_RAM0-1, OP_RAM0-2)은 8비트*24워드로 되어 있고, 각각 나머지 한 개의 램(OP_RAM1)은 8 비트*16워드로 되어 있다. 상기 제 1 메모리부(440A)와 상기 제 2 메모리부(440B)가 각각 3 개의 램(OP_RAM0-1, OP_RAM0-2, OP_RAM1)이 구비되어 있는 이유는 양자화를 두 화소 단위로 동시에 처리하기 위해서는 한쌍의 매트릭스를 읽어낼 필요가 있는데, 8비트*64워드를 하나의 램으로 구현할 경우, 동일 메모리의 다른 어드레스에 저장된 한쌍의 매트릭스 데이터를 동시에 억세스할 수 없기 때문이다.
이어서, 도 6 과 도 5 를 함께 참조하여 본 발명에 따른 양자화기에 대한 동작을 설명하면 다음과 같다.
호스트 인터페이스(100: 도 4 참조)로부터 램 인에이블 신호(ram1_wren, ram2_wren)와 카운팅 신호(address)가 메모리 제어부(420)의 쓰기 어드레스 발생부(421)로 입력되면, 다음 표 3 과 같이 쓰기 어드레스 신호가 발생하는데, 이때 매트릭스 데이터가 지그재그 방식으로만 다운로딩되므로 그 매트릭스 데이터를 저장하기 위해서는 쓰기 어드레스 신호(wadrs)도 지그재그 방식에 따라 발생된다.
쓰기 어드레스 또는 제 1 읽기 어드레스 테이블(지그재그 방식)
카운팅 신호 OP_RAM0-1wadrs1/1radrs1 OP_RAM0-2wadrs2/1radrs2 OP_RAM1wadrs3/1radrs3
00 00 00 --
01 -- 01 00
02 01 02 --
03 02 -- 01
04 03 -- 02
05 -- 03 03
06 04 04 --
07 -- 05 04
08 05 06 --
09 -- 07 05
0A 06 08 --
0B 07 -- 06
0C 08 09 --
0D 09 0A --
0E 0A -- 07
0F 0B -- 08
10 -- 0B 09
11 0C -- 0A
12 -- 0C 0B
13 0D 0D --
14 -- 0E 0C
15 -- 0F 0D
16 0E -- 0E
17 0F 10 --
18 10 -- 0F
19 11 11 --
1A 12 -- 10
1B -- 12 11
1C 13 13 --
1D -- 14 12
1E 14 15 --
1F 15 -- 13
상기 표 3 를 참조하면, 카운팅 신호(address)가 0 일 때 제 1 쓰기 어드레스 신호(wadrs1)가 0 이 되어, 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 1 램(OP_RAM0-1)으로 출력되고, 제 2 쓰기 어드레스 신호(wadrs2)도 0 이 되어 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 2 램(OP_RAM0-2)으로 출력된다. 이어서, 카운팅 신호(address)가 1 일 때 제 2 쓰기 어드레스 신호(wadrs2)가 1 이 되어, 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 2 램(OP_RAM0-2)으로 출력되고, 제 3 쓰기 어드레스 신호(wadrs3)는 0 이 되어 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 3 램(OP_RAM1)으로 출력된다. 그 다음은 상기 표 3 에 나타낸 바와 같다.
그리고, 도 6 에 도시된 바와 같이 호스트 인터페이스(100: 도 4 참조)로부터 지그재그 방식의 매트릭스 데이터(matrix)와 카운팅 신호(address)가 데이터 분배부(422)로 입력되면 다음 표 4 와 같이 데이터가 분배되어 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 존재하는 제 1 램(OP_RAM0-1), 제 2 램(OP_RAM0-2) 또는 제 3 램(OP_RAM1)에 저장된다.
데이터 분배 테이블
카운팅 신호(address) 데이터 분배
00 OP_RAM0-1 & OP_RAM0-2
01 OP_RAM1 & OP_RAM0-2
02 OP_RAM0-1 & OP_RAM0-2
03 OP_RAM0-1 & OP_RAM1
04 OP_RAM0-1 & OP_RAM1
05 OP_RAM1 & OP_RAM0-2
06 OP_RAM0-1 & OP_RAM1
07 OP_RAM1 & OP_RAM0-2
08 OP_RAM0-1 & OP_RAM0-2
09 OP_RAM1 & OP_RAM0-2
0A OP_RAM0-1 & OP_RAM0-2
0B OP_RAM0-1 & OP_RAM1
0C OP_RAM0-1 & OP_RAM0-2
0D OP_RAM0-1 & OP_RAM0-2
0E OP_RAM0-1 & OP_RAM1
0F OP_RAM0-1 & OP_RAM1
10 OP_RAM1 & OP_RAM0-2
11 OP_RAM0-1 & OP_RAM1
12 OP_RAM1 & OP_RAM0-2
13 OP_RAM0-1 & OP_RAM0-2
14 OP_RAM1 & OP_RAM0-2
15 OP_RAM1 & OP_RAM0-2
16 OP_RAM0-1 & OP_RAM1
17 OP_RAM0-1 & OP_RAM0-2
18 OP_RAM0-1 & OP_RAM1
19 OP_RAM0-1 & OP_RAM0-2
1A OP_RAM0-1 & OP_RAM1
1B OP_RAM1 & OP_RAM0-2
1C OP_RAM0-1 & OP_RAM0-2
1D OP_RAM1 & OP_RAM0-2
1E OP_RAM0-1 & OP_RAM0-2
1F OP_RAM0-1 & OP_RAM1
상기 표 4 를 참조하면, 카운팅 신호(address)가 0 일 때 데이터 분배부(422)로부터 분배된 데이터(data1a data1b 또는 data2a data2b)가 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 1 램(OP_RAM0-1)과 제 2 램(OP_RAM0-2)으로 출력된다. 이어서, 카운팅 신호(address)가 1 일 때 데이터 분배부(422)로부터 분배된 데이터(data1c data1b 또는 data2c data2b)가 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 2 램(OP_RAM0-2)과 제 3 램(OP_RAM1)으로 출력된다. 그 다음은 상기 표 4 에 나타낸 바와 같다.
즉, 32 클럭 동안 매트릭스 데이터에 해당하는 64개의 8 비트 데이터가 16 비트씩 데이터 분배부(422)로 입력되면, 이 16 비트 단위의 데이터를 8 비트씩 두 개(예를 들어, data1a, data1b, data1c 중 두 데이터 또는 data2a, data2b, data2c 중 두 데이터)로 나누어 각 램에 저장시킨다.
그리고, 시스템 클럭(clk)과 리셋 신호(rst)에 의해 동작되는 읽기 어드레스용 카운터(423)는 매크로블럭의 시작 신호(mbs)의 상승 에지(rising edge)를 확인한 후, 다음단의 읽기 어드레스 발생부(424)와 데이터 결합부(427)로 실제 카운팅 신호를 출력한다.
읽기 어드레스 발생부(424)중 제 1 읽기 어드레스 발생부(424a)로 입력된 카운팅 신호는 상기 표 3 에 나타낸 바와 같이 지그재그 방식(zigzag)의 제 1 읽기 어드레스 신호(1radrs)를 발생시킨다. 상기 표 3 를 참조하면, 카운팅 신호가 0 일 때 제 1-1 읽기 어드레스 신호(1radrs1)가 0 이 되어, 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 1 램(OP_RAM0-1)으로 출력되고, 제 1-2 읽기 어드레스 신호(1radrs2)도 0 이 되어 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 2 램(OP_RAM0-2)으로 출력된다. 이어서, 카운팅 신호가 1 일 때 제 1-2 읽기 어드레스 신호(1radrs2)가 1 이 되어, 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 2 램(OP_RAM0-2)으로 출력되고, 제 1-3 읽기 어드레스 신호(1radrs3)는 0 이 되어 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 3 램(OP_RAM1)으로 출력된다. 그 다음은 상기 표 3 에 나타낸 바와 같다.
한편, 읽기 어드레스 발생부(424)중 제 2 읽기 어드레스 발생부(424b)로 입력된 카운팅 신호는 다음 표 5 에 나타낸 바와 같이 대체 방식(alternate)의 제 2 읽기 어드레스 신호(2radrs)를 발생시킨다.
제 2 읽기 어드레스 테이블(대체 방식)
카운터의 출력 OP_RAM0-1(2radrs1) OP_RAM0-2(2radrs2) OP_RAM1(2radrs3)
00 00 -- 00
01 -- 01 02
02 01 00 --
03 -- 02 01
04 03 03 --
05 06 -- 03
06 -- 08 0A
07 0C -- 0B
08 07 07 --
09 04 -- 05
0A 02 04 --
0B 05 -- 04
0C 08 06 --
0D -- 0B 06
0E 10 0C --
0F 00 -- 09
10 10 -- 0F
11 -- 09 08
12 09 05 --
13 -- 0A 07
14 0B -- 0C
15 0F 0D --
16 11 13 --
17 -- 11 0E
18 13 -- 12
19 0E 0E --
1A 0A -- 0D
1B -- 0F 10
1C 12 02 --
1D 15 04 --
1E 14 -- 11
1F -- 15 13
상기 표 5 에 있어서, -- 는 돈캐어(don't care)를 나타낸다. 상기 표 5 를 참조하면, 카운터(423)의 출력이 0 일 때 제 2-1 읽기 어드레스 신호(2radrs1)가 0 이 되어, 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 1 램(OP_RAM0-1)으로 출력되고, 제 2-3 읽기 어드레스 신호(2radrs3)도 0 이 되어 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 3 램(OP_RAM1)으로 출력된다. 이어서, 카운터(423)의 출력이 1 일 때 제 2-2 읽기 어드레스 신호(2radrs2)가 1 이 되어, 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 2 램(OP_RAM0-2)으로 출력되고, 제 2-3 읽기 어드레스 신호(2radrs3)는 2 이 되어 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 있는 제 3 램(OP_RAM1)으로 출력된다. 그 다음은 상기 표 5 에 나타낸 바와 같다.
이어서, 상기 읽기 어드레스 발생부(424)의 제 1 읽기 어드레스 발생부(424a)와 제 2 읽기 어드레스 발생부(424b)로부터 각각 출력된 지그재그 방식의 제 1 읽기 어드레스 신호(1radrs1, 1radrs2, 1radrs3 중 두 어드레스 신호)와 대체 방식의 제 2 읽기 어드레스 신호(2radrs1, 2radrs2, 2radrs3 중 두 어드레스 신호)가 제 1 다중화부(425)로 입력되며, 입력 영상데이터가 지그재그 방식의 스캔이 수행되었는 지 아니면 대체 방식의 스캔이 수행되었는 지를 알리는 버퍼 제어부(600: 도 4 참조)로부터의 신호에 따라 제 1 다중화부(425)에서 제 1 읽기 어드레스 신호(1radrs1, 1radrs2, 1radrs3 중 두 어드레스 신호)가 선택될 수도 있고, 제 2 읽기 어드레스 신호(2radrs1, 2radrs2, 2radrs3 중 두 어드레스 신호)가 선택될 수도 있다. 즉, 버퍼 제어부(600: 도 4 참조)로부터 입력 영상데이터가 지그재그 스캔이 수행되었다는 신호가 제 1 다중화부(425)로 입력되면 제 1 읽기 어드레스 신호(1radrs1, 1radrs2, 1radrs3 중 두 어드레스 신호)가 선택되어 출력되고, 입력 영상데이터가 대체 스캔이 수행되었다는 신호가 제 1 다중화부(425)로 입력되면 제 2 읽기 어드레스 신호(2radrs1, 2radrs2, 2radrs3 중 두 어드레스 신호)가 선택되어 출력된다. 그러면, 상기 제 1 다중화부(425)에서 선택된 제 1 읽기 어드레스 신호(1radrs1, 1radrs2, 1radrs3 중 두 어드레스 신호) 또는 제 2 읽기 어드레스 신호(2radrs1, 2radrs2, 2radrs3 중 두 어드레스 신호)에 따라 메모리(440)의 제 1 메모리부(440A) 또는 제 2 메모리부(440B)에 저장되어 있던 매트릭스 데이터를 읽어내게 된다.
상기 제 1 메모리부(440A)에 지그재그 방식으로 저장되어 있던 매트릭스 데이터(data1a, data1b, data1c 중 두 데이터)와 상기 제 2 메모리부(440B)에 지그재그 방식으로 저장되어 있던 매트릭스 데이터(data1a, data1b, data1c 중 두 데이터)가 제 2 다중화부(426)로 입력되면, 인터 양자화 매트릭스인지 아니면 인트라 양자화 매트릭스인 지를 알리는 버퍼 제어부(600: 도 4 참조)로부터의 신호(inter_intra)에 따라 제 2 다중화부(426)에서 상기 제 1 메모리부(440A)로부터의 매트릭스 데이터 또는 상기 제 2 메모리부(440B)로부터의 매트릭스 데이터가 선택된다. 즉, 버퍼 제어부(600: 도 4 참조)로부터 인터 양자화 매트릭스임을 알리는 신호가 제 2 다중화부(426)로 입력되면 제 2 다중화부(426)에서는 상기 제 1 메모리부(440A)로부터의 매트릭스 데이터를 선택하여 출력하고, 인트라 양자화 매트릭스임을 알리는 신호가 제 2 다중화부(426)로 입력되면 제 2 다중화부(426)에서는 상기 제 2 메모리부(440B)로부터의 매트릭스 데이터를 선택하여 출력한다. 왜냐하면, 메모리(440)의 제 1 메모리부(440A)를 구성하는 3 개의 램은 인터 양자화 매트릭스를 저장하기 위한 것이고, 메모리(440)의 제 2 메모리부(440B)를 구성하는 3 개의 램은 인트라 양자화 매트릭스를 저장하기 위한 것이기 때문이다.
이어서, 상기 제 2 다중화부(426)에서 선택된 매트릭스 데이터가 데이터 결합부(427)로 입력되면, 다음 표 6 에 따라 데이터가 결합된다. 즉, 데이터 결합부(427)에서는 8 비트 단위로 입력된 매트릭스 데이터를 16 비트 단위의 매트릭스 데이터로 만들어준다.
데이터 결합 테이블
카운터의 출력 데이터 결합
00 OP_RAM0-1 & OP_RAM1
01 OP_RAM0-2 & OP_RAM0-1
02 OP_RAM0-2 & OP_RAM0-1
03 OP_RAM0-2 & OP_RAM1
04 OP_RAM0-1 & OP_RAM0-2
05 OP_RAM1 & OP_RAM0-1
06 OP_RAM0-2 & OP_RAM1
07 OP_RAM1 & OP_RAM0-1
08 OP_RAM0-1 & OP_RAM0-2
09 OP_RAM1 & OP_RAM0-1
0A OP_RAM0-1 & OP_RAM0-2
0B OP_RAM1 & OP_RAM0-1
0C OP_RAM0-2 & OP_RAM0-1
0D OP_RAM1 & OP_RAM0-2
0E OP_RAM0-2 & OP_RAM0-1
0F OP_RAM1 & OP_RAM0-1
10 OP_RAM0-2 & OP_RAM1
11 OP_RAM0-1 & OP_RAM0-2
12 OP_RAM0-2 & OP_RAM0-1
13 OP_RAM1 & OP_RAM0-2
14 OP_RAM0-1 & OP_RAM1
15 OP_RAM0-2 & OP_RAM0-1
16 OP_RAM0-1 & OP_RAM0-2
17 OP_RAM1 & OP_RAM0-2
18 OP_RAM0-1 & OP_RAM1
19 OP_RAM0-2 & OP_RAM0-1
1A OP_RAM0-1 & OP_RAM1
1B OP_RAM0-2 & OP_RAM1
1C OP_RAM0-1 & OP_RAM0-2
1D OP_RAM0-2 & OP_RAM0-1
1E OP_RAM1 & OP_RAM0-1
1F OP_RAM0-2 & OP_RAM1
상기 표 6 을 참조하면, 카운터(423)의 출력이 0 일 때 제 1 메모리부(440A) 또는 제 2 메모리부(440B)를 구성하는 제 1 램(OP_RAM0-1)과 제 3 램(OP_RAM1)에 저장되어 있던 매트릭스 데이터가 제 2 다중화부(426)에서 선택되어 데이터 결합부(427)로 입력된 후 결합된다. 이어서, 카운터(423)의 출력이 1 일 때 제 1 메모리부(440A) 또는 제 2 메모리부(440B)를 구성하는 제 2 램(OP_RAM0-2)과 제 1 램(OP_RAM0-1)에 저장되어 있던 매트릭스 데이터가 제 2 다중화부(426)에서 선택되어 데이터 결합부(427)로 입력된 후 결합된다. 그 다음은 상기 표 6 에 나타낸 바와 같다.
이어서, 상기 데이터 결합부(427)에서 결합된 매트릭스 데이터들이 제 3 다중화부(428)로 입력되면, 입력 영상데이터가 지그재그 방식의 스캔이 수행되었는 지 아니면 대체 방식의 스캔이 수행되었는 지를 알리는 버퍼 제어부(600: 도 4 참조)로부터의 신호에 따라 제 3 다중화부(428)에서 하나의 매트릭스 데이터(matrix)가 선택되어 출력된다.
상기 메모리 제어부(420)의 마지막 단에 있는 제 3 다중화부(428)에서 선택된 매트릭스 데이터는 도 5 에 도시된 연산 제어부(460)로 입력된다. 도 5 에 도시된 양자화 코어부(480)는 양자화기에서 수행되는 연산을 실제적으로 처리하는 부분으로서, 입력 영상 데이터를 양자화 매트릭스와 양자화 스케일값으로 나누어 양자화를 수행한다. 그런데, 일반적으로 나눗셈 연산을 수행하기 위해서는 하드웨어가 복잡해지고 처리속도가 늦어지므로, 나눗셈을 수행할 데이터들의 역수를 연산 제어부(460)에서 미리 구한 후, 그 역수를 양자화 코어부(480)로 출력하므로써, 양자화 코어부(480)에서는 입력된 역수값들을 이용하여 곱셈 처리하도록 되어 있다.
즉, 연산 제어부(32)에서는 상기 메모리 제어부(420)의 제 3 다중화부(428)로부터 입력되는 짝수/홀수 매트릭스의 역수를 계산하여 각각 출력하고, 버퍼 제어부(600: 도 4 참조)로부터 입력되는 양자화 타입과 양자화 코드로부터 양자화 스케일값을 계산한 후 그 역수를 구하여 짝수/홀수로 나누어 출력하고, 또한 dc_prec을 입력받아 소정의 DC값을 계산한 후 그 역수를 구하여 출력한다.
그리고, 짝수 데이터를 위한 제 1 코어부(480A)와 홀수 데이터를 위한 제 2 코어부(480B)로 구성된 양자화 코어부(480)에서는 스캔부(300: 도 4 참조)로부터 소정 방식으로 스캔되어 입력되는 한쌍의 이산여현 변환계수 데이터(data_even, data_odd)에 상기 연산 제어부(460)로부터 입력되는 양자화 스케일의 역수을 곱하고, 이어서 이 결과에 양자화 매트릭스의 역수을 곱한 후, 라운딩 처리하여 양자화된 짝수/홀수 데이터(quant_even, quant_odd)를 출력하는 것이다.
한편, 본원 청구범위의 각 구성요건에 병기된 도면 참조부호는 본원 발명의 이해를 용이하게 하기 위한 것으로, 본원 발명의 기술적 범위를 도면에 도시한 실시예로 한정할 의도에서 병기한 것은 아니다.
그리고, 상기에서 서술된 실시예는 모든 점에서 예시에 불과한 것이고, 이를 한정적으로 해석해서는 안되며, 단지 본 발명의 진정한 정신 및 범위내에 존재하는 변형예는 모두 본 발명의 청구 범위에 속하는 것이다.
이상에서 서술한 바와 같이 본 발명에 따르면 한 번에 두 화소씩 동시에 양자화를 수행함에 있어서 지그재그 방식으로 저장된 매트릭스 데이터를 영상 데이터의 스캔 방식에 따라 지그재그 스캔된 경우에는 그대로 출력하고 대체 스캔된 경우에는 대체 방식으로 출력하므로써 메모리의 용량을 간소화시킬 수 있을 뿐만 아니라 전용칩화를 용이하게 구현할 수 있다는 데 그 효과가 있다.

Claims (21)

  1. 외부로부터 매트릭스 데이터와 카운팅 신호를 입력받아 그 매트릭스 데이터를 지그재그 방식으로 저장하기 위한 쓰기 어드레스 신호를 발생시키고, 또한 이산여현 변환 계수의 스캔 방식에 따라 지그재그 방식 또는 대체 방식으로 매트릭스 데이터를 출력하기 위해 읽기 어드레스 신호를 발생시키는 메모리 제어부(420)와;
    상기 메모리 제어부(420)의 쓰기 어드레스 신호에 따라 상기 메모리 제어부(420)로부터의 매트릭스 데이터를 저장시키고, 상기 메모리 제어부(420)의 읽기 어드레스 신호에 따라 저장되어 있던 매트릭스 데이터를 상기 메모리 제어부(420)로 출력시키는 메모리(440);
    나눗셈 연산을 곱셈 연산으로 변환해주기 위해 입력된 각 데이터에 대해 역수를 취한 후, 그 역수값들을 출력시키는 연산 제어부(460);
    스캔된 두 화소 단위의 이산여현 변환계수를 입력받아 상기 연산 제어부(460)으로부터의 역수값과 곱셈을 수행한 후, 양자화된 데이터를 출력시키는 양자화 코어부(480)로 구성된 양자화기.
  2. 제 1 항에 있어서, 상기 메모리 제어부(420)가, 메모리 인에이블 신호와 카운팅 신호를 입력받아 지그재그 방식에 따른 쓰기 어드레스 신호를 발생시키는 쓰기 어드레스 발생부(421)와;
    지그재그 방식으로 스캔된 매트릭스 데이터를 입력받아 데이터를 분배시키는 데이터 분배부(422);
    시스템 클럭, 리셋신호와 매크로블럭 시작신호를 입력받으며, 카운팅 신호를 출력시키는 카운터(423);
    상기 카운터(423)로부터의 카운팅 신호를 입력받아 제 1 읽기 어드레스 신호와 제 2 읽기 어드레스 신호를 출력시키는 읽기 어드레스 발생부(424);
    지그재그 방식인지 아니면 대체 방식인지를 알리는 제어신호에 따라 상기 읽기 어드레스 발생부(424)로부터의 제 1 읽기 어드레스 신호와 제 2 읽기 어드레스 신호중 하나의 읽기 어드레스 신호를 선택하여 출력시키는 제 1 다중화부(425);
    인터 양자화 매트릭스인지 아니면 인트라 양자화 매트릭스인지를 알리는 제어신호에 따라 인터 양자화 매트릭스 데이터와 인트라 양자화 매트릭스 데이터중 하나의 매트릭스 데이터를 선택하여 출력시키는 제 2 다중화부(426);
    상기 제 2 다중화부(426)로부터 입력된 데이터를 결합하여 출력시키는 데이터 결합부(428);
    지그재그 방식인지 아니면 대체 방식인지를 알리는 제어신호에 따라 상기 데이터 결합부(428)로부터 입력된 데이터중 한 데이터를 선택하여 출력시키는 제 3 다중화부(429)로 구성된 것을 특징으로 하는 양자화기.
  3. 제 2 항에 있어서, 상기 쓰기 어드레스 발생부(421)가, 매트릭스 데이터를 저장하기 위해 지그재그 방식의 쓰기 어드레스 신호를 발생시키도록 구현된 것을 특징으로 하는 양자화기.
  4. 제 3 항에 있어서, 상기 쓰기 어드레스 발생부(421)가, 프로그래머블 로직 어래이로 구현된 것을 특징으로 하는 양자화기.
  5. 제 2 항에 있어서, 상기 데이터 분배부(422)가, 64 개의 8 비트 데이터가 32 클럭동안에 16 비트 단위로 입력되면 이 16 비트 데이터를 8 비트 단위로 분배하여 출력하는 것을 특징으로 하는 양자화기
  6. 제 5 항에 있어서, 상기 데이터 분배부(422)가, 프로그래머블 로직 어래이로 구현된 것을 특징으로 하는 양자화기.
  7. 제 2 항에 있어서, 상기 읽기 어드레스 발생부(424)가, 상기 카운팅 신호를 입력받아 제 1 읽기 어드레스 신호를 출력시키는 제 1 읽기 어드레스 발생부(424a); 및
    상기 카운팅 신호를 입력받아 제 2 읽기 어드레스 신호를 출력시키는 제 2 읽기 어드레스 발생부(424b)로 구성된 것을 특징으로 하는 양자화기.
  8. 제 7 항에 있어서, 상기 제 1 읽기 어드레스 발생부(424a)가, 매트릭스 데이터를 읽어내기 위해 지그재그 방식의 제 1 읽기 어드레스 신호를 발생시키는 것을 특징으로 하는 양자화기.
  9. 제 8 항에 있어서, 상기 제 1 읽기 어드레스 발생부(424a)가, 프로그래머블 로직 어래이로 구현된 것을 특징으로 하는 양자화기.
  10. 제 7 항에 있어서, 상기 제 2 읽기 어드레스 발생부(424b)가, 매트릭스 데이터를 읽어내기 위해 대체 방식의 제 2 읽기 어드레스 신호를 발생시키는 것을 특징으로 하는 양자화기.
  11. 제 10 항에 있어서, 상기 제 2 읽기 어드레스 발생부(424b)가, 프로그래머블 로직 어래이로 구현된 것을 특징으로 하는 양자화기.
  12. 제 2 항에 있어서, 상기 데이터 결합부(428)가, 상기 제 2 다중화부(426)로부터 선택된 8 비트 단위의 두 데이터를 입력받아 16 비트 단위의 데이터로 결합하는 것을 특징으로 하는 양자화기.
  13. 제 12 항에 있어서, 상기 데이터 결합부(428)가, 프로그래머블 로직 어래이로 구현된 것을 특징으로 하는 양자화기.
  14. 제 1 항에 있어서, 상기 메모리(440)가, 두 개의 매트릭스 데이터를 저장하기 위해 제 1 메모리부(440A)와 제 2 메모리부(440B)로 구성된 것을 특징으로 하는 양자화기.
  15. 제 14 항에 있어서, 상기 제 1 메모리부(440A)가, 인터 양자화 매트릭스 데이터를 저장하기 위해 3 개의 램으로 구현된 것을 특징으로 하는 양자화기.
  16. 제 15 항에 있어서, 상기 3 개의 램이, 하나의 포트를 가지는 것을 특징으로 하는 양자화기.
  17. 제 16 항에 있어서, 상기 3 개의 램중 2 개의 램은 8비트*24워드로 되어 있고, 나머지 한 개의 램은 8 비트*16워드로 되어 있는 것을 특징으로 하는 양자화기.
  18. 제 14 항에 있어서, 상기 제 2 메모리부(440B)가, 인트라 양자화 매트릭스 데이터를 저장하기 위해 3 개의 램으로 구현된 것을 특징으로 하는 양자화기.
  19. 제 18 항에 있어서, 상기 3 개의 램이, 하나의 포트를 가지는 것을 특징으로 하는 양자화기.
  20. 제 19 항에 있어서, 상기 3 개의 램중 2 개의 램은 8비트*24워드로 되어 있고, 나머지 한 개의 램은 8 비트*16워드로 되어 있는 것을 특징으로 하는 양자화기.
  21. 제 1 항에 있어서, 상기 양자화 코어부(480)가, 한 번에 두 화소씩 동시에 양자화를 수행하기 위해 제 1 코어부(480A)와 제 2 코어부(480B)로 구성된 것을 특징으로 하는 양자화기.
KR1019960075567A 1996-12-28 1996-12-28 양자화기 KR100202957B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960075567A KR100202957B1 (ko) 1996-12-28 1996-12-28 양자화기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960075567A KR100202957B1 (ko) 1996-12-28 1996-12-28 양자화기

Publications (2)

Publication Number Publication Date
KR19980056301A KR19980056301A (ko) 1998-09-25
KR100202957B1 true KR100202957B1 (ko) 1999-06-15

Family

ID=19491936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960075567A KR100202957B1 (ko) 1996-12-28 1996-12-28 양자화기

Country Status (1)

Country Link
KR (1) KR100202957B1 (ko)

Also Published As

Publication number Publication date
KR19980056301A (ko) 1998-09-25

Similar Documents

Publication Publication Date Title
KR100253931B1 (ko) 디지탈 영상 시퀀스의 디코딩 방법 및 장치
JP3888597B2 (ja) 動き補償符号化装置、及び動き補償符号化復号化方法
EP0778709B1 (en) MPEG-2 decoding with a reduced RAM requisite by ADPCM recompression before storing MPEG decompressed data
TWI516095B (zh) 利用轉換操作之影音編碼及解碼方法
EP0519962B1 (en) Digital image coding using a random scanning of image frames
US5883823A (en) System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
US20030138045A1 (en) Video decoder with scalable architecture
EP0585051B1 (en) Image processing method and apparatus
JPH06189281A (ja) 適応的フレーム/フィールドフォーマット圧縮を用いた映像信号符号化装置
JPH06189285A (ja) 画像データ圧縮伸張装置における量子化・逆量子化回路
EP0736843B1 (en) A motion video compression system with adaptive quantisation
JPH06189290A (ja) 1d/2d dctを用いた映像信号符号化装置
KR100267125B1 (ko) 압축 디지탈 비디오 시퀀스 복호화 및 디스플레이 방법과 압축 디지탈 비디오 정보 복호화 장치
EP0920204A1 (en) MPEG2 decoder with reduced RAM requisite by recompression using adaptive tree search vector quantization
KR100313217B1 (ko) 파이프라인dct장치
US11677932B2 (en) Image processing device
JP4117044B2 (ja) 映像信号符号化システムにおける量子化器
US20090060368A1 (en) Method and System for an Adaptive HVS Filter
EP0858206B1 (en) Method for memory requirement reduction in a video decoder
EP1014725A1 (en) Decoder and decoding method
KR100202957B1 (ko) 양자화기
US6504871B1 (en) IDCT processor for use in decoding MPEG compliant video bitstreams meeting 2-frame and letterboxing requirements
KR20100013142A (ko) 프레임 메모리 압축방법
US20060227874A1 (en) System, method, and apparatus for DC coefficient transformation
KR100210384B1 (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: 20090302

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee