KR0153173B1 - 양자화/역양자화 공유 처리기 - Google Patents

양자화/역양자화 공유 처리기

Info

Publication number
KR0153173B1
KR0153173B1 KR1019950040967A KR19950040967A KR0153173B1 KR 0153173 B1 KR0153173 B1 KR 0153173B1 KR 1019950040967 A KR1019950040967 A KR 1019950040967A KR 19950040967 A KR19950040967 A KR 19950040967A KR 0153173 B1 KR0153173 B1 KR 0153173B1
Authority
KR
South Korea
Prior art keywords
quantization
signal
value
input
output
Prior art date
Application number
KR1019950040967A
Other languages
English (en)
Other versions
KR970029125A (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 KR1019950040967A priority Critical patent/KR0153173B1/ko
Publication of KR970029125A publication Critical patent/KR970029125A/ko
Application granted granted Critical
Publication of KR0153173B1 publication Critical patent/KR0153173B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 비디오 서비스 시스템의 핵심부인 양자화/역양자화 초고집적 회로 처리기 구조에 관한 것이다.
기존의 양자화/역양자화기는 메모리에 근거한 구조를 사용함에 의해 1) 메모리 접근 시간으로 인한 처리 성능의 제한, 2) 요구되는 메모리 크기로 인한 칩 크기 증대, 3) 큰 소모전력 등의 단점을 가진다. 본 발명에서는 이와 같은 단점을 개선하기 위해 파이프 라인 구조에 근거한 새로운 양자화/역양자화기 구조를 제안한다. 제안된 구조는 양자화/역양자화 핵심부인 연산 회로를 공유하는 구조를 가지므로 외부 제어 신호에 의해 양자화 또는 역양자화 기능을 선택적으로 사용가능하다. 또한, 양자화/역양자화기의 핵심인 연산회로 소자를 설계하는데 있어서 고속 연산이 가능한 Conditional SUM adder를 사용함으로써 HDTV급의 영상 신호를 실시간으로 처리 가능하다는 장점을 가진다.

Description

양자화/역양자화 공유 처리기
제1도는 선형 양자화기의 양자화 개념을 설명하는 도면.
제2도는 종래의 LUT(Look-Up Table) 방식의 양자화/역양자화기의 구조를 개략적으로 도시한 도면.
제3도는 본 발명에 따른 양자화/역양자화기의 구조를 도시한 도면.
제4a도 내지 제4c도는 전처리부에 포함되는 스텝 크기 처리 수단, 양자화 입력 처리 수단 및 역양자화 입력 처리 수단을 각각 도시한 도면.
제5도는 연산 자리수를 맞추기 위한 접속 처리부를 도시한 도면.
제6a도는 연산부에 대한 기본 셀 회로를 도시한 도면.
제6b도는 연산부를 나타내는 파이프라인 연산 회로를 도시한 도면.
제7a도 및 제7b도는 후처리부에 포함되며 부호 조정 및 클리핑(clipping)동작을 수행하는 양자화 출력 처리 수단 및 역양자화 출력 처리 수단을 각각 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
Tcoeff : 양자화 입력 신호 Quant : 스텝 크기 신호
Level : 역양자화 입력 신호
P_Tcoeff' : 양자화 상태의 전처리 결과인 부호 변환된 양자화 입력 신호
P-Tcoeff : 부호 변환된 양자화 입력 신호를 한클럭 지연 시킨값
P_Quant : 스텝 크기 신호의 전처리 결과인 부호 변환된 스텝 크기 신호
P_Level : 역양자화 상태의 전처리 결과인 부호 변환된 역양자화 입력 신호
Sn : 접속 처리부를 거친 결과값인 지연된 제1 내지 제N+1 시프트 신호
Level_out : 파이프라인 연산 구조를 거친 양자화 결과인 제1 연산값
Fsn : 파이프라인 연산 구조를 거친 역양자화 결과인 제2 연산값
FLevel_out : 양자화의 최종 연산값
FTcoeff_out : 역양자화의 최종 연산값
본 발명은 양자화/역양자화기(quantizer/inverse-quantizer)에 관한 것으로, 더욱 구체적으로는 파이프라인 구조를 채택한 곱셉/나눗셈기(multiplier/divider)를 이용하여 입력 변수를 고속으로 양자화/역양자화하는 파이프라인 구조에 근거한 양자화/역양자화 공유 처리기의 구조에 관한 것이다.
제1도에는 입력 변수가 선형적으로 양자화/역양자화되는 과정이 도시되어 있다. 양자화기는 특정 범위의 입력값에 대하여 하나의 대표 출력값을 할당하는 기능을 하며, 예를 들어 제1도에서 입력 변수가 g에서 2g 사이의 값을 취하면 출력은 1의 값을 가지게 된다. 이러한 양자화기를 사용하게 되면 입력 변수를 표현하는데 필요한 2진 비트의 수 보다 출력 변수를 표현하는 데 필요한 2진 비트의 수가 감소되어 데이터의 감축(compression) 효과를 얻을 수 있으며, 최근 데이터의 감축을 목적으로 하는 비디오 코덱(video codec)에서 필수적으로 사용되고 있다.
종래에 일반적으로 사용되는 양자화/역양자화기는 메모리를 이용한 LUT (Look-Up Table) 방식을 주로 사용하는데, LUT 방식에 의하면 모든 입력값에 대하여 양자화/역양자화 처리기를 거쳐 나올 수 있는 출력값을 미리 계산하여 ROM(Read Only Memory)에 저장하여, 입력값에 대응하는 출력값을 내보내게 된다. (제2도 참조). 메모리를 이용한 LUT 방식의 기존 하드웨어 구조는 메모리 액세스 시간의 제약으로 인한 속도의 저하, 큰 용량의 메모리 요구에 따른 큰 칩(chip) 크기 및 메모리 셀의 전압을 고속으로 감지하기 위한 센스 앰프의 사용에 따른 큰 전력 소모 등의 문제점을 갖고 있다. 따라서, 본 기술 분야에서 이러한 문제점을 해결하기 위한 새로운 방식의 양자화/역양자화기의 구조가 절실히 요구 된다.
본 발명의 하나의 목적은 메모리를 이용한 LUT를 사용하지 않는 새로운 구조로 입력값만을 이용하여 직접적인 연산을 수행하는 양자화/역양자화 처리기의 하드웨어 구조를 제공하는 것이다.
본 발명의 다른 목적은 연산부를 파이프라인 처리가 가능하도록 설계하여 기존의 구조가 갖고 있는 처리 속도의 문제점을 극복함으로써 고속의 양자화/역양자화기를 구현하는 것이다.
본 발명의 또 다른 목적은 연산부의 핵심부인 CSA(Conditional Sum Adder)를 공유 구조로 설계하여 양자화/역양자화기를 하나의 칩속에 구현할 수 있도록 하는 것이다.
본 발명의 또 다른 목적은 저전송률 비디오 코덱 시스템을 위한 H.261 표준 사양[Video codec for audio visual services at p x 64kb/s, CCITT Recom-menda- tion H.261, 1990]에 정의되어 있는 양자화/역양자화기의 표준안을 만족시키는 양자화/역양자화 처리기를 제공하는 것이다.
이러한 목적을 달성하기 위한 본 발명에 따른 양자화/역양자화 공유 처리기는 L 비트의 스텝 크기 신호 Quant, M 비트의 양자화 입력 신호 Tcoeff, 및 N 비트의 역양자화 입력 신호 Level을 수신하여 양자화 처리 및 역양자화 처리를 선택적으로 수행하며; 양자화 처리 및 역양자화 처리 중의 하나를 나타내는 처리 제어 신호를 발생시키기 위한 제어부; 상기 제어부로부터의 처리 제어 신호에 응답하여, 상기 양자화 입력 신호를 양수로 변환하여 부호 변환된 양자화 입력 신호를 출력하기 위한 양자화 입력 처리 수단; 상기 제어부로부터의 처리 제어 신호에 응답하여, 상기 역양자화 입력 신호를 양수로 변환하여 부호 변환된 역양자화 입력 신호를 출력하기 위한 역양자화 입력 처리 수단; 상기 제어부에 접속되어, 상기 처리 제어 신호가 양자화 처리를 나타내는 경우에 상기 스텝 크기 신호를 음수로 변환하고, 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 스텝 크기 신호를 양수로 변환하여 부호 변환된 스텝 크기 신호를 출력하기 위한 스텝 크기 처리 수단; 상기 제어부로부터의 처리 제어 신호에 응답하며, N 비트의 역양자화 입력 신호 Level은 양수 연산을 위해 N+1 비트로 확장되며, 상기 부호 변환된 스텝 크기 신호를 각각 0 비트 내지 N 비트만큼 시프트시키고 상기 L, M 및 N에 따라 결정되는 비트 수만큼 부호 비트를 확장시킨 제1 내지 제N+1 시프트 신호를 발생시키기 위한 수단, 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 제1 내지 N+1 시프트 신호 각각을 상기 부호 변환된 역양자화 입력 신호의 대응되는 비트에 따라 변경하기 위한 제1 내지 제N+1 시프트 신호를 발생시키기 위한 수단, 상기 처리 제어 시호가 역양자화 처리를 나타내는 경우에, 상기 제1 내지 제N-1 시프트 신호를 각각 N-1 클럭 내지 1 클럭 지연시켜 출력하고 상기 제N 및 제N+1 시프트 신호를 0 클럭 지연시켜 출력하기 위한 시프트 신호 지연 수단을 구비하는 접속 처리부; 상기 제어부로부터의 처리 제어 신호에 응답하며, 상기 처리 제어 신호가 양자화 처리를 나타내는 경우에 상기 부호 변환된 양자화 입력 신호에 상기 지연된 제1 내지 제N 시프트 신호를 상기 지연된 제N 시프트 신호로부터 순차로 더한 각각의 결과 값의 MSB에 따라 결정되는 값들을 각각 N 클럭 내지 1 클럭 지연시킨 제1 연산값을 출력하며, 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 지연된 제1 내지 제N+1 시프트 신호를 순차적으로 누적한 제2 연산값을 출력하는 연산부; 상기 양자화 입력 신호의 부호에 따라 상기 제1 연산값의 부호를 결정하기 위한 양자화 출력 처리 수단; 및 상기 역양자화 입력 신호의 부호에 따라 상기 제2 연산값의 부호를 결정하기 위한 역양자화 출력 처리 수단을 제공한다.
본 발명에 의하면, 양자화/역양자화기의 핵심부인 연산 회로를 공유 구조로 설계함으로써 외부 제어 신호에 의해 양자화 또는 역양자화 기능을 선택적으로 사용할 수 있을 뿐만 아니라, HDTV 급의 영상 신호를 실시간으로 처리하는 것이 가능하다는 장점을 가진다. 본 발명의 이러한 장점 및 기타의 특징들은 동일한 구성 부분에 대하여 동일한 참조 번호가 붙여진 첨부된 도면을 참조하여 본 발명의 양호한 실시예를 설명함으로써 더욱 명확해 질 것이다.
제4b도를 참조하면, 본 발명에 따르며 또한 H.261 사양을 더 충족시키는 양자화 입력 처리 수단(33)이 도시되어 있다. 양자화 입력 처리 수단(33)은 양자화 입력 신호 Tcoeff에 대해 2의 보수 변환을 행하는 2의 보수 변환기(121), Tcoeff의 최상위 비트 (MSB)를 선택 입력으로 하여 Tcoeff 또는 Tcoeff의 2의 보수 변환값을 선택적으로 출력하는 멀티플렉서 MUX3(122), 및 멀티플렉서 MUX3(122)의 출력값을 저장하기 위한 레지스터(123)를 포함하는데, 이 양자화 입력 처리 수단(33)은 양자화 입력 신호 Tcoeff를 양수로 변환하여 부호 변환된 양자화 입력 신호 P_Tcoeff'를 출력한다. 스텝 크기가 항상 짝수인 H.261 사양의 경우, Tcoeff를 스텝 크기로 나누는 양자화를 수행하기 전에 미리 2로 나누는 연산을 수행하여 연산부(35)에서의 연산 부하를 줄일 수 있다. 이를 위해서는 제4b도에 도시한 바와 같이, 멀티플렉서(122)로부터의 출력은 그 출력값의 최하위 비트(LSB)가 버려지도록 최하위 비트 쪽으로 한 비트 시프트되어 레지스터(123)으로 연결될 수 있다.
또한, H.261 사양에 의하면, 양자화 입력 신호 Tcoeff(-2048 ~ +2047의 값을 가짐)는 12 비트를 가지며 스텝 크기 신호 Quant는 5 비트(부호 비트 없이)를 가지며 양자화 출력 신호는 8 비트를 가져야 한다. 본 발명에 따르면 스텝 크기 신호 Quant는 부호를 나타낼 수 있어야 하므로, Quant는 6비트로 확장된다. 따라서, H.261 사양을 충족시켜 출력되는 양자화의 출력값을 8 비트로 표현하기 위해서는 Tcoeff를 13 비트로 확장시켜야 하며, 이를 위해 MUX3(122)의 출력값의 부호 비트인 MSB를 확장시켜 (제4b도에서, SSS) 13 비트의 레지스터(123)에 저장되도록 구성할 수 있다. 양자화 입력 처리 수단(33)의 동작을 상세히 설명하면, 2의 보수 변환기(121)은 12 비트의 입력 변수 Tcoeff에 대해 2의 보수 변환을 행한다. 이때, 2의 보수를 취하는 과정은 바람직하게는 LSB 이상의 어느 한 비트라도 1인 경우는 그 비트를 기준으로 MSB 쪽에 있는 LSB를 제외한 모든 비트에 대해 보수를 취해주는 방식을 사용한다. 예를 들어, 8 비트인 입력이 0101 1001일 때, 이를 2의 보수를 취하면 1010 0111이 된다. MUX3(122)는 Tcoeff의 MSB인 T12가 1인 경우는 Tcoeff가 음수인 것으로 판단하여 2의 보수 변환기(121)를 통과한 값을 출력하고, T12가 0인 경우는 Tcoeff가 양수인 것으로 판단하여 Tcoeff를 그대로 출력한다. MUX3(122)로부터 출력된 변환 상수 값은 그 LSB를 버리고 부호 비트인 MSB를 확장시켜 (제4b도에서, SSS) 13 비트의 레지스터(123)에 저장되며, 클럭 신호의 제어에 따라 P_Tcoeff'로 출력되게 된다. 결국, 양자화 입력 처리 수단(33)에서는 입력값을 양수로 만들고 2로 나누는 연산을 실행한 후 부호 비트가 확장된 13 비트의 출력 P_Tcoeff'를 출력하는 역할을 한다.
제4a도에는 본 발명에 따르며 또한 H.261 사양을 더 충족시키는 스텝 크기 처리수단(32)이 도시되어 있다. 스텝 크기 처리 수단(32)는 제어부(39)로부터의 처리 제어신호 Q가 양자화 처리를 나타내는 경우에는 스텝 크기 신호 Quant를 음수로 변환하고, 처리 제어 신호 Q가 역양자화 처리를 나타내는 경우에는 스텝 크기 신호 Quant를양수로 변환하여 부호 변환된 스텝 크기 신호 P_Quant를 출력한다. 스텝 크기 처리 수단(32)는 스텝 크기신호 Quant에 2의 보수 변환을 실행하는 2의 보수 변환기(112), 처리 제어 신호 Q에 따라 Quant 또는 2의 보수 변환기를 통과한 출력을 선택적으로 출력하는 멀티플렉서 MUX2(113), 및 이 MUX2(113)으로부터의 출력을 저장하기 위한 레지스터(114)를 포함한다. 여기서, Q는 양자화와 역양자화 상태를 구별해 주는 제어 신호로, 예를 들어 0인 경우는 양자화를 선택하고 1인 경우는 역양자화를 선택하게 된다.
H.261 사양에 의하면, 스텝 크기 신호 Quant는 5 비트의 크기를 가지며(1~31 까지의 값을 가짐), 양자화 및 역양자화 처리를 위한 입력 신호인 스텝 크기(step size)를 2로 나눈 값을 나타낸다. 따라서, 본 발명에 따르면 제4a도에 도시 한 바와 같이, H.261 사양에 의한 Quant는 부호 비트를 가지도록 그 MSB 쪽에 '0'을 넣어 6 비트로 1비트 확장될 수 있다.
또한, H.261 사양에 의하면 양자화 입력 신호 또는 역양자화 입력 신호가 Intra DC 값인 경우, 대응하는 스텝 크기가 8 로 고정되므로, 스텝 크기 처리 수단(32)는 제어부(39)로부터의 Intra DC 제어 신호에 응답하여 스텝 크기 신호 Quant 또는 고정된 값 4(0 0100)를 선택적으로 출력하며, 상기 2의 보수 변환기(112) 및 상기 멀티플렉서 (113)의 입력에 접속된 멀티플렉서 MUX(111)을 더 포함할 수 있다.
제4a도의 스텝 크기 처리 수단(32)의 동작을 설명하기 전에, MUX1(111)의 선택입력으로 공급되는 변수 Intra DC에 관해 간략히 언급하기로 한다. 일반적으로, 영상부호화 처리를 행할 때 영상 프레임이 픽셀값 그 자체로 들어오는 경우와, 현재 프레임의 픽셀값을 현재 프레임 이전의 픽셀값으로 뺀 결과 값인 프레임 차(frame difference)가 들어오는 두가지 경우가 있다. 이 때, 현재의 영상 프레임의 픽셀값이 그대로 들어오는 경우 그 값을 Intra라고 부르고, 프레임차가 들어오는 경우 그 값을 Inter라고 부른다. 한편, 영상의 값은 64개 단위로 들어오는데, 상기 두가지 경우 모두 이산 여현 변환기(DCT: Discrete Cosine Transformer)을 통과하게 된다. 이 때, 상기 이산 여현 변환기를 통과한 64개의 값중에서 64개의 평균값을 DC 값이라 한다. Intra DC 값과 관련하여 H.261 사양을 아래와 같이 표 1에 도시하였다.
* []: 계산된 값의 소수점 이하를 없애는 기능을 하는 함수
H.261 사양에 의하면 Intra DC 값이 입력되는 경우, 즉= 0 인 경우는값의 중요도를 고려하여 스텝 크기가 8로 고정되어 있다. 이경우, 제4a도의 MUX1(111) 에서는 [스텝 크기 / 2]인 값 즉 10진수로 4인 값 (2진수로 0 0100인 값)을 출력하는데, 이 값은 후술하는 접속 처리부(34)를 경유하여 후술하는 연산부(35)에 인가되어 Tcoeff를 4로 나누게 된다. 전술한 바와 같이 양자화 입력 처리 수단(33)에서 Tcoeff를 이미 2로 나누었기 때문에, 결과적으로 Tcoeff가 8로 나누어지는 결과를 얻게된다. 한편, Intra DC가 아닌 값이 입력되는 경우, 즉= 1인 경우는 MUX1(111)으로부터 버퍼의 양을 조절하는 값인 Quant를 출력한다. 다음으로, MUX1(111)에서 출력된 5 비트 출력값을 그 MSB에 비트 0을 넣어 6 비트로 확장한다. 여기서, 6 비트로 확장하는 이유는 Quant를 확장한 값이 양자화와 역양자화의 경우 서로 다른 부호를 가져야 하므로 이를 표시하기 위해서이다. 2의 보수 변환기(112)에서는 상기 확장된 6 비트 출력에 대해 2의 보수 변환을 실행한다. MUX2(113)에서는 양자화와 역양자화 상태를 구별해 주는 선택 입력 Q에 따라 상기 확장된 6 비트 출력 또는 상기 2의 보수 변환기(112)를 통과한 출력을 선택적으로 출력한다. 양자화의 경우 (Q = 0)에는, 멀티플렉서 MUX2(113)에서는 2의 보수 변환기(112)를 통과한 출력을 선택하여 상기 부호가 확장된 Quant 값이 음수로 바뀌어 출력되며, 역양자화의 경우 (Q = 1)에는 상기 확장된 6 비트 출력을 선택하여 출력한다. 그 이유는, 양자화에 있어서는 수행되는 나눗셈 연산을 위해 뺄셈의 상태를 만들어 주며, 역양자화에 있어서는 수행되는 곱셈 연산을 위해 덧셈의 상태를 만들어 주기 위한 것이다.
제4a도에 도시한 바와 같이 스텝 크기 신호 Quant는 양자화의 경우 음수로 변환되어 출력되고 역양자화의 경우 양수로 변환되어 출력되며, 제4b도 및 제 4c도에 도시한 바와 같이 양자화 입력 신호 Tcoeff 및 역양자화 입력 신호 Level은 양수로 변환되어 출력되는데, 이는 후술하는 바와 같이 양자화를 위해 수행되는 나눗셈 [Tcoeff / Quant]을 Tcoeff에서 Quant를 빼서 그 가능성을 판단하여 수행하고 역양자화의 경우 수행되는 곱셈 [Level × Quant]는 변환 상수 Level 값에 따라 Quant를 더하여 수행되기 때문이다.
이렇게 선택된 멀티플렉서 MUX2(113)의 6 비트의 출력은 레지스터(114)에 저장되어 P_Quant 값을 출력하게 된다. 결과적으로, 스텝 크기 처리 수단(32)는 Quant의 값을 양자화의 경우와 역양자화의 경우로 나누어 전처리 출력값 P_Quant를 만들게 된다. 즉, 양자화일 경우는 Quant 값을 음수로 하여 비트가 확장되어 출력되도록 하고, 역양자화일 경우는 Quant 값을 양수로 하여 비트가 확장되어 출력되도록 한다. 처리된 값 P_Quant은 연산의 자리수를 맞추기 위하여 제5도의 접속 처리부(34)에 입력된다.
제4c도를 참조하면, 본 발명에 따르며 또한 H.261 사양을 더 충족시키는 역양자화 입력 처리 수단(31)이 도시되어 있다. 역양자화 입력 처리 수단(31)은 제어부로부터의 처리 제어 신호 Q에 응답하여, 역양자화 입력 신호 Level을 양수로 변환하여 부호 변환된 역양자화 입력 신호 P_Level을 출력한다.
H.261 사양에 의하면, 역양자화 입력 신호 Level은 8비트의 크기를 가지며, 이 경우 역양자화 입력 처리 수단(31)은 8 비트의 Level 값에 대해 2의 보수변환을 실행하는 2의 보수 변환기(131),및 Level의 MSB를, 예를 들어 AND 게이트(133)으로 조합한 값을 선택 입력으로 하여 Level 또는 Level의 2의 보수 변환값을 선택적으로 출력하는 멀티플렉서(132), 및 멀티플렉서(132)의 출력을 저장하기 위한 레지스터(137)을 포함한다.
H.261 사양의 경우, 표2에 도시한 바와 같이, 역양자화 연산에 있어서 2를 곱하는 연산이 항상 필요하므로, Quant에 Level을 곱하는 역양자화를 수행하기전에 미리 2로 곱하는 연산을 수행하여 연산부(35)에서의 연산 부하를 줄일 수 있다. 이를 위해 멀티플렉서(132)의 출력은 Level의 비트 수 8보다 하나 더 큰 9 비트의 크기를 가지는 레지스터(137)의 상위 8 비트에 1 비트만큼 시프트되어 접속될 수 있다. H.261 사양의 경우, 표2에 도시한 바와 같이, 입력이 Intra DC 값인 경우나 Level 이 0000 0000인 경우에는 [ 2 × Level ]의 연산이 필요하고, 그 이외의 경우에는 [ 2 × Level + 1 ] 또는 [ 2 × Level - 1 ]의 연산이 필요하다. 이를 위해 역양자화 입력 처리 수단(31)은 Intra DC 및 Level에 따라 0 또는 1의 값을 선택적으로 출력하며 레지스터(137)의 최하위 비트에 접속되는 멀티플렉서(136)을 더 포함할 수 있다. [ 2 × Level - 1 ] 연산의 경우 본 발명에서는 Level 값을 양수로 변환하여 처리하므로 [ 2 × Level + 1 ] 연산에 의해 처리된다. H.261 사양에 따르면, Level 값이 Intra DC 값이면서 1111 1111인 경우는 1000 0000을 대신 출력하여야 한다. 이를 위해, 역양자화 입력 처리 수단(31)은 Intra DC 제어 신호, 역양자화 입력 신호 Level, 및 1111 1111값을 가지는 신호가 논리적으로 결합된 신호가 선택 입력으로 수신되는 멀티플렉서(132')를 더 포함할 수 있다.
역양자화 입력 처리 수단(31)의 동작을 상세히 설명하면, 2의 보수 변환기(131)은 8비트의 입력 변수 Level에 대하여 2의 보수 변환을 행한다. 멀티플렉서(132)는 Level의 값의 MSB가 1인 경우는 음수로 판단하여 2의 보수를 취해 양수 값을 내보내고 Level의 값의 MSB가 0인 경우는 양수로 판단하여 Level 값을 그대로 내보낸다. 도한, Intra DC 값이 입력되는 경우는 항상 양수로 연산되기 때문에 Intra DC = 0인 경우는 Level 값을 그대로 출력한다. 이를 위해, 이를테면 AND 게이트(133)의 양 입력단은 Intra DC와 Level의 MSB에 접속되고 그 출력단은 멀티플렉서(132)의 선택 입력단에 연결될 수 있다. 멀티플렉서(132')는 Level 값이 Intra DC 값이면서 1111 1111인 경우는 1000 0000을 출력하고 그 이외의 경우에는 멀티플렉서(132)의 출력을 선택하여 내보낸다. 이에 따르면, Level 값이 I7tra DC 값으로써 1111 1111인 경우 출력되는 최종 값은 10진수로 1024가 된다. 8 비트의 멀티플렉서(132')의 출력은 9 비트의 레지스터(137)의 MSB 쪽으로 연결되어 MSB 쪽으로 한 비트 시프트되어 저장되는 결과가 되는데, 이에 따르면 Level 값에 2를 곱한 결과를 얻게 된다. 멀티플렉서(136)은 Level 값이 Intra DC 값인 경우나 0000 0000인 경우는 0을 출력하고 그 이외의 경우에는 1을 출력하는데, 이 멀티플렉서(136)의 출력은 레지스터(137)의 LSB에 연결된다. Level의 값은 항상 양수로 바뀌어 있으므로 LSB에 1을 넣으면 [2 × Level + 1]의 연산을, LSB에 0을 넣으면 [2 × Level]의 연산을 수행한 결과를 각각 얻게 된다. Level이 음수인 경우에는 [2 × Level - 1]이 수행되어야 하는데, 본 발명에서는 Level을 양수로 바꾸어 수행하므로 [2 × Level + 1]의 결과 값이 Level이 음수인 경우 [2 × Level -1]의 절대값과 동일해진다. 제7b도의 역양자화 출력처리 수단에서 Level이 음수라는 정보를 반영하여 [2 × Level + 1]의 결과 값에 대해 2의 보수를 취하므로 결과적으로 Level이 음수인 경우 [2 × Level -1]의 연산과 동일 결과 값을 구할 수 있게 된다. 이렇게 계산된 레지스터(9)의 출력 P_Level은 9 비트의 값으로 출력된다. 즉, 역양자화 입력 처리 수단(31)은 입력 변수 Level을 양수로 바꾸어 주고 Level 값이 Intra DC 값인 경우와 0인 경우는 [2 × Level]로 처리하여 출력하고, Level 값이 Intra DC 값이 아닌 경우는 [2 × Level + 1]로 처리를 하여 출력한다. 단, Intra DC의 경우 표2에 나타낸 바와 같이 H.261 사양에 따라 Level 값이 10진수로 255인 경우에는 128로 변환한 후에 출력한다. H.261에서는, Intra DC 값의 경우 전술한 바와 같이 그 값이 중요한 점을 고려하여 스텝 크기가 8로 고정되어 있으므로 Level 값에 8을 곱해야 하는데, 이미 스텝 크기 처리 수단(32)에서 Quant 값이 4로 만들어져 준비되어 있기 때문에 역양자화 입력 처리 수단(31)은 [2 × Level]의 값만 출력하고 후술하는 접속 처리부(34)와 연산부(35)에서 4와의 곱셈을 수행하게 하여 [8 × Level]의 연산을 수행한다.
제5도를 참조하면, 본 발명에 따르며 H.261의 사양을 더 충족하는 접속처리부(34)가 도시되어 있다. 접속 처리부(34)는 제어부로부터의 처리 제어 신호에 응답하며, 상기 부호 변환된 스텝 크기 신호를 각각 0 비트 내지 8 비트(8=N, N+1)은 부호 변환된 역양자화 입력 신호 P_Level의 비트수) 만큼 시프트시키고 상기 L+1(부호 변환된 스텝 크기 신호 P_Quant의 비트 수), M+1(부호 변환된 양자화 입력 신호 P_TCoeff의 비트수) 및 N+1에 따라 결정되는 비트 수만큼 부호 비트를 확장시킨 제1 내지 제9(9=N+1) 시프트 신호를 발생시키고, 처리 제어 신호 Q가 역양자화 처리를 나타내는 경우에 제1 내지 제9 시프트 신호 각각을 상기 부호 변환된 역양자화 입력 신호의 대응되는 비트에 따라 변경하고, 상기 제1 내지 제7(7=N-1) 시프트 신호를 각각 7 클럭 내지 1 클럭 지연시켜 출력하고 상기 제8 및 제9 시프트 신호를 0 클럭 지연시킨 신호(S1 내지 S9)을 출력한다.
본 발명에 따르면, 양자화의 경우에 수행되는 나눗셈 [Tcoeff / Quant]을 Tcoeff에서 Quant를 빼서 그 가능성을 판단하여 수행한다. 이때의 뺄셈은 몫의 비트 수(부호 비트 제외)만큼 행해지는데, 각각의 뺄셈에서는 Quant를 몫의 해당 비트의 자리수에 맞추고 이를 음수로 변환한 값 S1 내지 S8을 Tcoeff에 더해준다. 결과값이 2진수로 양수인 경우는 그 자리의 몫이 1이 되고 음수인 경우는 0이 되며, 이와같은 연산을 몫의 각각의 비트에 대하여 수행하면 결국 나눗셈 [Tcoeff / Quant]가 수행된다. 이를 리스토어(Restoring) 방식의 나눗셈이라 부른다.
본 발명에 따르면, 역양자화의 경우 수행되는 곱셈 [Level × Quant]는 변환 상수 Level 값에 따라 Quant를 더하여 수행된다. 이때의 덧셈은 Level의 비트 수 만큼 행해지는데, Quant의 LSB가 Level의 각 비트의 자리에 맞도록 시프트시키고, 그 Level 값이 1인 경우에만 자리맞춤된 Quant S1 내지 S9를 더한다. 이와같은 연산을 Level의 비트 수 만큼 수행하여 그 결과를 누적하면 결국 곱셈 [Level × Quant]가 수행된다.
이를 위해 접속 처리부(34)는 처리 제어 신호 Q가 양자와 처리를 나타내는 경우에 각각의 비트가 모두 1인 N+1 비트 신호를 출력하고 처리 제어 신호 Q가 역양자화 처리를 나타내는 경우에 상기 부호 변환된 역양자화 입력 신호 P_Level을 출력하는 멀티플렉서(141), 멀티플렉서(141) 출력의 각각의 비트를 각각 자신의 제1 입력으로 수신하는 제1 내지 제9(9=N) AND 논리 수단(175 내지 167), 각각의 멀티플렉서(141)의 상위 7(7=N-2)번째 비트 내지 1번째 비트와 각각의 제7 내지 제1 AND 논리 수단(169 내지 175)의 제1 입력 사이에 각각 삽입 설치되며 1 클럭 내지 7 클럭의 지연을 가지는 제1 내지 제7(7=N-1)비트 지연 수단(142 내지 148), 제1 내지 제7 AND 논리 수단(175 내지 169)의 제2 입력에 부호 변환된 스텝 크기 신호 P_Quant를 각각 7(7=N-1)클럭 내지 1클럭의 지연시켜 입력하기 위한 제1 내지 제7 스텝 크기 지연 수단(164 내지 158), 및 제1 내지 제7 스텝 크기 지연 수단(164 내지 158)의 출력을 각각 0 비트 내지 6(6=N-2) 비트만큼 시프트시키고 부호 변환된 스텝 크기 신호 P_Quant를 각각 7 및 8(7=N-1, 8=N) 비트만큼 시프트시켜 일반적인 부호 확장 방법에 근거하여 제5도의 S1에서 S9의 형태로 부호 비트를 확장시켜 저장하도록 제1 내지 제7 스텝 크기 지연 수단과 역양자화 처리 수단에 접속된 제1 내지 제 9(9=N) 레지스터 수단(157 내지 149)을 포함할 수 있다.
멀티플렉서(141)은 억양자화 입력 처리 수단으로부터 P_Level 및 제어부로부터 Q를 수신하여, Q가 양자화할 것을 지령하는 경우에는 모두 1로 채워진 9개의 비트를 출력하며, Q가 역양자화할 것을 지령하는 경우에는 P_Level을 출력한다. 이렇게 하면, 양자화의 경우에 나눗셈을 수행하기 위한 단위 연산인 몫의 비트 수(부호 비트 제외)만큼 행해지는 뺄셈에 필요한 몫의 해당 비트의 자리수에 맞추어지고 음수로 변환된 Quant가 만들어진다. 또한 역양자화의 경우에 곱셈을 수행하기 위한 단위 연산인 Level 값에 따라 Quant를 더하는데 필요한 Level의 각 비트의 자리에 맞도록 시프트되고 그 Level 값이 1인 경우에만 더해지는 자리 맞춤된 Quant가 만들어진다.
스텝 크기 지연 수단(158 내지 164) 및 비트 지연 수단(142 내지 148)은 전술한 곱셈 및 나눗셈 연산이 후술하는 연산부(35)에서 파이프라인 처리될 수 있도록 각각 서로 다른 지연 시간으로 지연시킨 지연된 제1 및 제9 시프트 신호(S1 내지 S9)를 발생시킨다.
제1 내지 제9 AND 논리 수단(175 내지 167) 각각은 모두 5(M) 개의 AND 게이트로 이루어진다. AND 논리 수단(175 내지 167)의 각각의 AND 게이트의 제1 입력은 제1 내지 제7 비트 지연 수단(142 내지 148)중의 하나를 거치거나 그대로 멀티플렉서(141)의 비트 중의 하나의 비트에 접속되며, AND 논리 수단(175 내지 167)의 각각의 AND 게이트의 제2 입력은 스텝 크기 지연 수단(158 내지 164)중의 하나를 거치거나 그대로 스텝 크기 처리 수단(32)에 연결된다. 제1 내지 제9 AND 논리 수단(175 내지 167)은 역양자화의 경우에 Level의 각 비트의 자리에 맞도록 시프트된 신호가 그 Level 값이 1인 경우에만 더해지도록 해준다.
제9 AND 논리 수단(167)의 출력은 레지스터(149)의 MSB로부터 시작하여 5 비트에 각각 연결된다. 제8 AND 논리 수단(168)의 출력은 레지스터(150)의 상위 2번째 비트부터 시작하여 5 비트에 각각 연결된다. 제7 내지 제1 AND 논리 수단(169 내지 175)의 출력은 레지스터 (151 내지 157)의 상위 3번째 내지 9번째 비트부터 시작하여 5 비트에 각각 연결된다. 레지스터(149 내지 157)의 13 비트 중 해당되는 AND 논리 수단(167 내지 175)의 출력이 연결되지 않은 비트로서 출력이 연결된 비트 보다 상위 비트들은 P_Quant 또는 P_Q1 내지 P_Q7의 부호 비트가 확장되어 공통 접속된다. 레지스터 (149 내지 157)의 13 비트 중 AND 논리 수단 (167 내지 175)의 출력이 연결되지 않은 비트로서 출력이 연결된 비트 보다 하위 비트들에는 모두 0이 채워진다.
제6a도는 본 발명에 따르며 H.261의 사양을 더 충족시키는, 연산부(35)에 포함된 단위 덧셈기(170)을 도시한 것이다. 단위 덧셈기(170)은 양자화의 경우에는 양자화 결과 값을 MSB에서 LSB까지 각각 한 비트씩 만들어 내며, 역양자화의 경우에는 덧셈을 실행시켜준다. 단위 덧셈기(170)은 제1 입력 Sn-1의 값과 제2 입력 Sn의 값을 가산하기 위한 가산기 회로(CSA : Conditional Sum Adder, 171), 처리 제어 신호 Q가 양자화 처리를 나타내는 경우에 가산기 회로(171)의 출력 값의 최상위 비트의 상태에 따라 상기 가산기 회로(171)의 출력 및 제2 입력 중의 하나의 값을 선택적으로 출력하며, 처리 제어 신호 Q가 역양자화 처리를 나타내는 경우에 가산기 회로(171)의 가산 결과를 출력하는 단위 연산부 멀티플렉서(172), 단위 연산부 멀티플렉서(172)의 출력을 일시 저장하고 제1 출력을 발생시키기 위한 단위 연산부 레지스터(174), 및 가산기 회로(171)의 출력에 따라 상기 제2 출력 Level_bit를 발생시키기 위한 수단(176)을 포함한다.
가산기 회로(CSA, 171)은 종래의 덧셈기 중 가장 빠른 속도를 갖는데, 본 기술 분야에서 공지되어 있다. CSA(171)은 캐리 발생에 대한 가정을 하여 계산을 하는데 그 CSA 내부 구성을 보면 멀티플렉서 회로와 2 비트에 대해서 캐리가 있는 경우의 합과 캐리 그리고 캐리가 없는 경우의 합과 캐리를 만드는 회로를 기본 단위 셀로 구성할 수 있다. H.261 사양에 의한 양자화 및 역양자화 입출력 비트의 크기를 고려하면 P_Quant가 6 비트, Level이 8 비트이므로 P_Tcoeff는 13 비트이어야 하며, CSA(171)는 13비트의 데이터를 처리할 수 있어야 한다. 본 기술 분야에 공지된 기술인 HSPICE 시뮬레이션에 의하면, 13비트의 두 값을 연산 하는데 약 4.3ns가 걸린다. 단위 연산부 멀티플렉서(172)는 Q가 양자화를 지령하고 CSA(171) 출력의 MSB가 0인 경우에는 CSA(171)의 제1 입력을 출력하며, 그 이외의 경우 즉 Q가 역양자화를 지령하거나 Q가 양자화를 지령하고 CSA(171)의 출력의 MSB가 1인 경우에는 CSA(171)의 연산 결과를 출력한다. 이를 위해, 이를테면 멀티플렉서(172)의 선택 입력단에 AND 게이트(173)의 출력단이 연결되고, AND 게이트(173)의 양입력단에 CSA(171)의 연산 결과의 MSB 및 Q가 연결될 수 있다. CSA(171)의 연산 결과의 MSB는 인버터(176)을 경유하여 역양자화 출력인 Level-bit로서 출력될 수 있다. 단위 연산부 레지스터(174)는 멀티플렉서(172)의 출력을 저장한다.
이하, 단위 연산부(170)의 동작을 양자화와 역양자화로 나누어 좀더 자세히 설명하기로 한다. 먼저 양자화의 경우를 설명하면, CSA(171)의 제2 입력은 양수 값을 가지도록 처리되어 입력되며, CSA(171)의 제1 입력은 음수 값을 가지도록 처리되어 입력된다. CSA(171)은 상기 제1 입력과 제2 입력을 더하게 되는데, 이것은 제2 입력에서 제1 입력을 빼는 결과가 된다. 피젯수에서 젯수 x 2n을 배서 양수가 나오면 나누어질 수 있다는 것, 즉 몫의 2n자리는 1이 된다는 것을 나타내므로, Level_Bit에 1을 출력한다. 뺄셈 결과가 음수인 경우에는 나누어질 수 없다는 것, 즉 몫의 2n자리는 0임을 나타내므로, Level_Bit에 0을 출력한다. 또한, 나누어질 수 없는 경우 단위 연산부 멀티플렉서(176)은 제2 입력의 값을 다음단으로 출력하여 뺄셈 동작이 반복적으로 수행되도록 한다. 음수를 2의 보수와 부호 비트를 사용하여 표현하는 경우 양수와 음수를 더하여 부호 비트가 1이 되면 음수인 것을 나타내므로 Level_bit로 0을 출력하고, 부호 비트가 0이면 양수인 것을 나타내므로 Level_bit로 1을 출력하도록, CSA(171)의 출력의 MSB는 인버터(176)을 경유하여 Level_bit로 출력된다.
역양자화의 경우를 설명하면, Q값에 1이 들어가므로 단위 연산부 멀티프렉서(172)는 항상 제1 입력과 제2 입력의 덧셈 결과값을 출력한다. 이 결과 값은 레지스터(174)로 들어가서 클럭 신호의 조절에 의하여 다음단의 기본 덧셈기로 넘어간다.
제6b도를 참조하면, 본 발명에 따르며 H.261의 사양을 더 충족하는 연산부(35)가 도시되어 있다. 연산부(35)는 제어부(39)로부터의 처리 제어 신호 Q에 응답하며, 처리 제어 신호 Q가 양자화 처리를 나타내는 경우에 부호 변환된 양자화 입력 신호 P_Tcoeff에 상기 지연된 제1 내지 제8(8=N) 시프트 신호 S1 내지 S8을 상기 지연된 제8 시프트 신호 S8로부터 순차로 더한 각각의 결과 값의 MSB에 따라 결정되는 값들을 각각 8 클럭 내지 1 클럭 지연시킨 제1 연산값 Level_out을 출력하며, 처리 제어 신호 Q가 역양자화 처리를 나타내는 경우에 지연된 제1 내지 제9(9=N) 시프트 신호 S1 내지 S9를 순차적으로 누적한 제2 연산값 FSn을 출력한다.
이를 위해, 연산부(35)는 처리 제어 신호 Q가 양자화 처리를 나타내는 경우에 부호 변환된 양자화 입력 신호 P_Tcoeff를 출력하며 처리 제어 신호 Q가 역양자화 처리를 나타내는 경우에 지연된 제9(9=N+1) 시프트 신호 S9를 출력하는 연산부 멀티플렉서(166), 각각 제1 및 제2 입력을 수신하여 단위 연산을 수행하여 제1 및 제2 출력을 출력하기 위한 제1 내지 제8(8=N) 단위 연산부(188 내지 181), 및 제1 내지 제8 단위 연산부(188 내지 181) 각각의 제2 출력에 접속되며 각각 1 클럭 내지 8(8=N) 클럭의 지연을 가지는 제1 내지 제8 연산부 지연 소자(198 내지 191)를 포함하며, 제8 단위 연산부(181)의 제2 입력은 연산부 멀티플렉서(166)의 출력에 접속되며, 제1 내지 제7 단위 연산부(188 내지 182) 각각의 제2 입력은 상기 제2 내지 제8 단위 연산부(187 내지 181) 각각의 제1 출력에 접속되고, 제1 내지 제8 단위 연산부(188 내지 181) 각각의 제1 입력은 각각 지연된 제1 내지 제8 시프트 신호를 수신하도록 구성된다.
연산부(35)는 접속 처리부(34)로부터 지연된 제1 내지 제9(9=N+1) 시프트 신호를 수신하여 제8 단위 연산부로부터 제1 단위 연산부까지 순차적으로 계산되고 전송되어 양자화의 결과 값인 제1 연산값 Level_out 값과 역양자화의 결과값인 제2 연산값 FSn(n=1,2,3,...,12) 값을 내보내게 된다. 이때 제6b도의 Primitive Adder는 제6a도의 회로이며 각각의 Primitive Adder 내의 각 레지스터 회로는 클럭에 의해 동기되어 동작함으로써 전단에서의 연산 결과를 클럭에 의해 다음 단으로 넘겨주는 파이프라인 처리를 한다.
양자화의 경우 연산부(35)의 동작을 먼저 설명하면, 제8 단위 연산부(181)은 연산부 멀티플렉서(166)의 출력으로부터 부호 변환된 양자화 입력 신호 P_Tcoeff를 제2 입력으로 수신하고 접속처리부(34)로부터 P_Quant x 27의 값을 가지는 지연된 제8 시프트 신호 S8을 제2 입력으로 수신하여 이들을 더하여 나누어질 수 있는지를 판단한 후 몫의 27자리의 값을 제8 연산부 지연 소자(191)의 입력단으로 내보낸다. 나누어질 수 없는 경우에는 P_Tcoeff를 다음단으로 출력한다. 제7 내지 제1 단위 연산부(182 내지 188)은 각각 몫의 26자리 내지 20자리의 값을 출력 한다. 제8 단위 연산부 내지 제1 단위 연산부(181 내지 188)의 출력은 각각 8클럭 내지 1클럭의 연산부 지연 소자(191 내지 198)을 거쳐서 역양자화 출력 처리 수단(36)에 연걸된다. 즉, 제1 연산값 Level_out의 MSB 값은 제8 단위 연산부(181)에서 계산하여 7클럭의 지연 후에 출력되고 Level_out의 그 다음 번째의 상위 비트는 제7 단위 연산부(182)에서 계산하여 6클럭의 지연 후에 출력된다. 마찬가지로, 제1 연산값 Level_out의 나머지 비트들은 각각 제 6 내지 제1 단위 연산부(183 내지 188)에서 계산하여 5 클럭 내지 1 클럭의 지연 후에 출력된다. 전체적인 8 비트의 제1 연산값 Level_out 값은 제8 기본 덧셈기의 출력값이 나오는 시점에서 출력되게 된다. 계산된 제1 연산값 Level-out 값은 Tcoeff값을 [2 x Quant]로 나눈 값이 된다.
역양자화의 경우 연산부(35)의 동작을 설명하면, 제8 내지 제1 단위 연산부는 부호 변환된 역양자화 입력 신호 P_Level의 각각의 비트에 따라 Quant x 28과 Quant x 27의 합, 이 합과 Quant x 26의 합, 내지 이 합과 Quant의 합을 각각 구한다. 역양자화의 결과는 부호 변환된 역양자화 입력 신호 P_Level의 각각의 비트에 따라 가산할지의 여부를 정하여 Quant x 28내지 Quant x 27을 더한 제8 기본 덧셈기의 출력이 된다. 이미 파이프라인 처리가 된 S9 내지 S1의 입력 값에 의존하여 각 기본 덧셈기에서 계산된 값이 클럭 신호에 동기되어 최종 출력 값인 13 비트의 제2 연산값 FSn 값을 출력하게 된다. 이때 제2 연산값 FSn 값은 Level의 전처리부 출력 값에 Quant를 곱한 결과 값이 출력된다.
제7a도를 참조하면, 본 발명에 따르며 H.261의 사양을 충족시키는 예시적인 양자화 출력 처리 수단(37)이 도시되어 있다. 양자화 출력 처리 수단(37)은 양자화 입력 신호 Tcoeff의 부호에 따라 상기 제1 연산값 Level_out의 부호를 결정한다. 이를 위해, 양자화 출력 처리 수단(37)은 제1 연산값 Level_out에 대하여 2 의 보수 변환을 행하는 2의 보수 변환기(203), 양자화 입력 신호 Tcoeff의 최상위 비트를 11 클럭 지연시키기 위한 지연 소자(205), 지연 소자(205)의 출력을 선택 입력으로 하여 제1 연산값 Level_out 또는 2의 보수 변환기(203)의 출력을 선택적으로 출력하는 멀티플렉서(204)를 포함한다. 멀티플렉서(204)는 이제까지 내부적으로 계산된 양수 값들을 입력 값의 상태에 따라 판단하여 출력하는데, 즉 입력 값이 양수인 때에는 계산된 양수 값들을 양수 그대로 두고, 입력 값이 음수인 때에는 계산된 양수 값들을 음수로 바꾸어주는 역할을 한다. 멀티플렉서(206)은 Intra DC 값에 대한 판단을 하여 출력을 내보낸다. 11 클럭 지연 소자가 필요한 이유를 설명하자면, Tcoeff, Quant, Level의 입력시 1클럭, 전처리부의 레지스터(114, 123 또는 137)에 래치되는데 1 클럭, 접속 처리부의 레지스터(149 및 150)에 래치되는데 1 클럭 또한 연산 처리부에서 각각의 Primitive Adder 내의 래지스터에 래치되는데 8 클럭하여 모두 11 클럭이 요구된다.
H.261 사양에 의하면, Level_out 값이 10진수로 127 이상인 값이 출력되면 127로 클리핑시켜 출력하여야 한다. 이를 위해, 양자화 출력 처리 수단(37)은 Level_out의 MSB를 선택 입력으로 하여 Level_out 또는 0111 1111을 선택적으로 출력하는 멀티플렉서(202)를 더 포함할 수 있다. 멀티플렉서(202)는 Level_out 값의 오버플로우를 검토함과 동시에 클리핑시켜 출력하고 Level-out 값의 MSB가 1인 경우는 127 이상의 값이므로, 이에 의한 판단으로 클리핑시켜 준다. -127과 127 사이의 값은 그대로 출력하게 된다.
H.261 사양에 의하면, 입력이 Intra DC 값이고 Level_out 값이 1111 1111일 때 Level_out 값을 1111 1110으로 치환하여야 하며, 입력이 Intra DC 값이고 Level_out 값이 1000 0000인 경우는 1111 1111로 치환하여야 한다. 이를 위해, 양자화 출력 처리 수단(37)은 Level_out 과 1111 1111을 선택 입력으로 하여 Level_out 또는 1111 1110을 선택적으로 출력하는 멀티플렉서(200), Level_out과 1000 0000을 선택 입력으로 하여 Level_out 또는 1111 1111을 선택적으로 출력하는 멀티플렉서(201)를 더 포함할 수 잇다.
이와 같이 수행된 양자화 출력 처리 수단의 출력 값은 양자화 과정에서 필요한 H.261 사양의 모든 경우의 수가 고려된 최종 출력 값이 나오게 된다. 즉, 양자화 출력 처리 수단(37)은 입력 값이 Intra DC인 경우에는 [ Tcoeff / 8 ] 값을, Intra DC 값이 아닌 경우에는 [ Tcoeff / ( 2 x Quant )]값을 각각 출력하고, Intra DC 값 중 특정 값에 대한 출력도 고려하여 출력한다.
제7b도를 참조하면, 본 발명에 따르며 H.261의 사양을 충족시키는 예시적인 역양자화 출력 처리 수단(36)이 도시되어 있다. 역양자화 출력 처리 수단(36)은 역양자화 입력 신호 Level의 부호에 따라 제2 연산값 FSn에 대한 2의 보수 값을 출력하는 2의 보수 변환기(221), Level의 MSB를 선택 입력으로 하여 제2 연산값 FSn 또는 2의 보수 변환기(221)의 출력을 선택적으로 출력하기 위한 멀티플렉서(223), 및 멀티플렉서(223)의 출력을 저장하기 위한 레지스터(224)를 포함한다. 멀티플렉서(223)은 입력되는 Level 값이 음수일 경우는 내부적으로 계산된 양수의 FSn 값을 음수로 출력하고, Level 값이 양수인 경우는 내부적으로 계산된 값을 그대로 출력한다.
H.261 사양에 의하면, 멀티플렉서(211)은 Quant 값이 홀수인 경우, 양자화기의 입력이 0인 경우 및 Intra DC가 아닌 경우 중 어느 한 경우에는, FSn 값을 그대로 출력한다. 이때 13 비트의 값 중 MSB는 버리고 12 비트만을 출력하는데, 그 이유는 FSn은 항상 양수 값으로 계산되어 있고 역양자화된 최종 출력 값이 12 비트이기 때문이다. 반면에, Quant 값이 짝수이고 Level 값이 0이 아니고 Intra DC가 아닌 경우는 H.261 사양에 따라 FSn에서 1을 빼준다. 멀티플렉서(218 및 220)은 클리핑시키기 위해 필요한 것으로서, 멀티플렉서(218)은 입력되는 Level 값이 양수인 경우는 10진수로 -2048을 출력하고 Level 값이 양수인 경우는 10진수로 2047을 출력한다. 멀티플렉서(220)은 FSn의 MSB와 바로 밑의 비트가 적어도 하나라도 1인 경우는 멀티플렉서(218)의 출력을 출력한다. 멀티플렉서(218 및 220)이 이와 같이 작동하는 이유는 오버플로우를 방지하기 위한 것이다. 보다 구체적으로 설명하면 역양자화기의 최종 출력 값은 12비트이며 -2048에서 +2047의 범위 값을 가질 수 있다. 연산 처리부의 최종 출력인 FSn에서 FS13, FS12중 어느 한 비트가 1의 값을 갖는다는 것은 연산된 FSn 값이 2048을 넘는다는 것을 의미하며 따라서 Level의 부호 즉 MSB에 따라 해당되는 최대 값을 선택할 수 있게 한다. 이를 위해 역양자화 출력 처리 수단(36)은 FSn을 수신하여 FSn - 1을 출력하기 위한 뺄셈기(210), Quant의 LSB, Level 및 Intra DC를 선택 입력으로 하여 FSn 또는 FSn - 1을 선택적으로 출력하는 멀티플렉서(211), Level의 MSB를 선택 입력으로하여 0111 1111 1111 또는 1000 0000 0000을 선택적으로 출력하기 위한 멀티플렉서(218), 및 FS13, FS12를 선택 입력으로 하여 멀티플렉서(211)의 출력 또는 멀티플렉서(218)의 출력을 선택적으로 출력하기 위한 멀티플렉서(220)를 더 포함할 수 있다. 최종 출력 값인 FTcoeff_OUT 값은 표2에서와 같은 값을 가지고 출력된다.
본 발명은 H.261 사양을 충족시키도록 양호한 실시예를 참조하여 도시되고 기술되었지만, 본 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질 및 범위를 벗어나지 않고서 여기에 다양한 형식이나 세부 사항에 있어서의 변경을 가할 수 있다는 점을 알 수 있을 것이다.

Claims (9)

  1. L 비트의 스텝 크기 신호(Quant), M 비트의 양자화 입력 신호(Tcoeff), 및 N+1 비트의 역양자화 입력 신호(Level)을 수신하여 양자화 처리 및 역양자화 처리를 선택적으로 수행하기 위한 양자화/역양자화 공유 처리기에 있어서, 양자화 처리 및 역양자화 처리 중의 하나를 나타내는 처리 제어 신호를 발생시키기 위한 제어부; 상기 제어부로부터의 처리 제어 신호에 응답하여, 상기 양자화 입력 신호를 양수로 변환하여 부호 변환된 양자화 입력 신호를 출력하기 위한 양자화 입력 처리수단; 상기 제어부로부터의 처리 제어 신호에 응답하여, 상기 역양자화 입력 신호를 양수로 변환하여 부호 변환된 역양자화 입력 신호를 출력하기 위한 역양자화 입력 처리 수단; 상기 제어부에 접속되어 상기 처리 제어 신호가 양자화 처리를 나타내는 경우에 상기 스텝 크기 신호를 음수로 변환하고, 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 스텝 크기 신호를 양수로 변환하여 부호 변환된 스텝 크기 신호를 출력하기 위한 스텝 크기 처리 수단; 상기 제어부로부터의 처리 제어 신호에 응답하여, 상기 부호 변환된 스텝 크기 신호를 각각 0 비트 내지 N 비트만큼 시프트시키고 상기 L, M 및 N에 따라 결정되는 비트 수만큼 부호 비트를 확장시킨 제1 내지 제N+1 시프트 신호를 발생시키기 위한 수단, 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 제1 내지 제N+1 시프트 신호 각각을 상기 부호 변환된 역양자화 입력 신호의 대응되는 비트에 따라 변경하기 위한 제1 내지 제N+1 변경 수단, 상기 제1 내지 제N-1 시프트 신호를 각각 N-1 클럭 내지 1 클럭 지연시켜 출력하고 상기 제 N 및 제N+1 시프트 신호를 0 클럭 지연시켜 출력하기 위한 스프트 신호 지연 수단을 구비하는 접속 처리부; 상기 제어부로부터의 처리 제어 신호에 응답하며, 상기 처리 제어 신호가 양자화 처리를 나타내는 경우에 상기 부호 변환된 양자화 입력 신호에 상기 지연된 상기 지연된 제1 내지 제N 시프트 신호를 상기 지연된 제N 시프트 신호로부터 순차로 더한 각각의 결과 값의 MSB에 따라 결정되는 값들을 각각 N 클럭 내지 1 클럭 지연시킨 제1 연산값을 출력하며, 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 지연된 제1 내지 제N+1 시프트 신호를 순차적으로 누적한 제2 연산값을 출력하는 연산부; 상기 양자화 입력 신호의 부호에 따라 상기 제1 연산값의 부호를 결정하기 위한 양자화 출력 처리 수단; 및 상기 역양자화 입력 신호의 부호에 따라 상기 제2 연산값의 부호를 결정하기 위한 역양자화 출력 처리 수단을 포함하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  2. 제1항에 있어서, 상기 접속 처리부의 상기 제1 내지 제N+1 변경 수단은 상기 제어부로부터의 처리 제어 신호에 응답하며, 상기 처리 제어 신호가 양자화 처리를 나타내는 경우에 각각의 비트가 모두 1인 N+1 비트 신호를 출력하고 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 부호 변환된 역양자화 입력 신호를 출력하는 접속 처리부 멀티플렉서, 및 상기 접속 처리부 멀티플렉서 출력의 각각의 비트를 각각 자신의 제1 입력으로 수신하는 제1 내지 제N+1 AND 논리 수단을 구비하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  3. 제2항에 있어서, 상기 접속 처리부의 상기 시프트 신호 지연 수단은 각각의 상기 접속 처리부 멀티플렉서의 상위 N-1번째 비트 내지 1번째 비트와 각각의 상기 제N-1 내지 제1 AND 논리 수단의 제1 입력 사이에 각각 삽입 설치되며 1클럭 내지 N-1 클럭의 지연을 가지는 제1 내지 제N-1 비트 지연 수단, 및 상기 제1 내지 제N-1 AND 논리 수단의 제2 입력에 상기 부호 변환된 스텝 크기 신호를 각각 N-1클럭 내지 1클럭의 지연시켜 입력하고 상기 제N 및 제N+1 AND 논리 수단의 제2 입력에 상기 부호 변환된 스텝 크기 신호를 그대로 입력하기 위한 제1 내지 제N+1 스텝 크기 지연 수단을 구비하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  4. 제3항에 있어서, 상기 접속 처리부의 상기 제1 내지 제N+1 시프트 신호 발생 수단은 상기 제1 내지 제N+1 스텝 크기 지연 수단의 출력을 각각 0 비트 내지 N 비트만큼 시프트시키고 상기 결정된 비트 수만큼 부호 비트를 확장시켜 저장하도록 상기 제1 내지 제N+1 스텝 크기 지연 수단에 접속된 제1 내지 제N+1 레지스터 수단을 구비하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  5. 제1항에 있어서, 상기 연산부는 상기 제어부로부터의 처리 제어 신호에 응답하며, 상기 처리 제어 신호가 양자화 처리를 나타내는 경우에 상기 부호 변환된 양자화 입력 신호를 출력하며 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 지연된 제N+1 시프트 신호를 출력하는 연산부 멀티플렉서, 각각 제1 및 제2 입력을 수신하여 단위 연산을 수행하여 제1 및 제2 출력을 출력하기 위한 제1 내지 제N 단위 연산부, 및 상기 제1 내지 제N 단위 연산부 각각의 제2 출력에 접속되며 각각 1클럭 내지 N 클럭의 지연을 가지는 제1 내지 제N 연산부 지연 소자를 포함하며, 상기 제N 단위 연산부의 제2 입력은 상기 연산부 멀티플렉서의 출력에 접속되며, 상기 제1 내지 제N-1 단위 연산부 각각의 제2 입력은 상기 제2 내지 제N 단위 연산부 각각의 제1 출력에 접속되고, 상기 제1 내지 제N 단위 연산부 각각의 제1 입력은 각각 상기 지연된 제1 내지 제N 시프트 신호를 수신하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  6. 제5항에 있어서, 상기 제1 내지 제N 단위 연산부 각각은 상기 제1 입력의 값과 상기 제2 입력의 값을 가산하기 위한 가산기 회로, 상기 제어부로부터의 처리 제어 신호에 응답하며, 상기 처리 제어 신호가 양자화 처리를 나타내는 경우에 상기 가산기 회로의 출력 값의 최상위 비트의 상태에 따라 상기 가산기 회로의 출력 및 제2 입력 중의 하나의 값을 선택적으로 출력하며, 상기 처리 제어 신호가 역양자화 처리를 나타내는 경우에 상기 가산기 회로의 가산 결과를 출력하는 단위 연산부 멀티플렉서, 상기 단위 연산부 멀티플렉서의 출력을 일시 저장하고 상기 제1 출력을 발생기키기 위한 단위 연산부 레지스터, 및 상기 가산기 회로의 출력에 따라 상기 제2 출력을 발생시키기 위한 수단을 구비하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  7. 제1항에 있어서, 상기 제어부는 상기 양자화 입력 신호 및 상기 역양자화 입력 신호가 Intra DC 값임을 나타내는 Intra DC 제어 신호를 더 발생시키며, 상기 스텝 크기 처리 수단은 Intra DC 제어 신호에 응답하여, 상기 부호 변환된 스텝 크기 신호를 선정된 크기의 값으로 설정하기 위한 수단을 더 포함하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  8. 제1항에 있어서, 상기 양자화 출력 처리 수단은 상기 제1 연산값이 선정된 크기 이상의 값을 가지는 경우에 그 신호의 값을 상기 선정된 값으로 클리핑 하기 위한 수단을 더 포함하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
  9. 제1항에 있어서, 상기 역양자화 출력 처리 수단은 상기 제2 연산값이 선정된 크기 이상의 값을 가지는 경우에 그 신호의 값을 상기 선정된 값으로 클리핑 하기 위한 수단을 더 포함하는 것을 특징으로 하는 양자화/역양자화 공유 처리기.
KR1019950040967A 1995-11-13 1995-11-13 양자화/역양자화 공유 처리기 KR0153173B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950040967A KR0153173B1 (ko) 1995-11-13 1995-11-13 양자화/역양자화 공유 처리기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950040967A KR0153173B1 (ko) 1995-11-13 1995-11-13 양자화/역양자화 공유 처리기

Publications (2)

Publication Number Publication Date
KR970029125A KR970029125A (ko) 1997-06-26
KR0153173B1 true KR0153173B1 (ko) 1998-11-16

Family

ID=19433862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950040967A KR0153173B1 (ko) 1995-11-13 1995-11-13 양자화/역양자화 공유 처리기

Country Status (1)

Country Link
KR (1) KR0153173B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100348210B1 (ko) * 2000-07-21 2002-08-09 (주)씨앤에스 테크놀로지 영상신호의 압축/복원용 양자화기

Also Published As

Publication number Publication date
KR970029125A (ko) 1997-06-26

Similar Documents

Publication Publication Date Title
KR100198788B1 (ko) 차동 펄스 부호 변조기를 포함한 양자화/역양자화 회로
US5841381A (en) Huffman coding/decoding using an intermediate code number
JP3220598B2 (ja) 可変長符号テーブルおよび可変長符号化装置
US5825680A (en) Method and apparatus for performing fast division
US5623423A (en) Apparatus and method for video decoding
US5635938A (en) Quantizing and dequantizing circuit with reduced size
US6408102B1 (en) Encoding/decoding device
JP2526505B2 (ja) 画像処理装置
KR0153173B1 (ko) 양자화/역양자화 공유 처리기
US8861600B2 (en) Method and system for dynamically configurable DCT/IDCT module in a wireless handset
US6647064B1 (en) ADPCM encoding apparatus, ADPCM decoding apparatus and delay circuit
JPS63253786A (ja) 差分pcm装置及びその圧縮器の伝達関数を確立する方法
KR100221337B1 (ko) Mpeg-2 복호화기의 역양자화기
KR0178746B1 (ko) 매크로블럭의 반픽셀처리장치
JPH07200252A (ja) バレルシフタ回路
US5991784A (en) Signal processing circuit
KR100431354B1 (ko) 곱셈기 회로
JP3107676B2 (ja) 量子化回路
JPH10116267A (ja) 演算装置及び情報処理装置
KR100465156B1 (ko) 분산산술처리방식의 dct/idct 연산기에 있어서연산오차 및 연산시간 감소방법
JP2000134479A (ja) 画像信号処理装置
KR0159571B1 (ko) 역양자화기
KR0138861B1 (ko) 영상 압축/복원용 양자화기의 양자화/역양자화 회로
KR100243096B1 (ko) 영상 표준의 역양자화 회로
JPH1166045A (ja) 乗算器

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee