KR950008961B1 - 실시간 이산 코사인 변환기 - Google Patents

실시간 이산 코사인 변환기 Download PDF

Info

Publication number
KR950008961B1
KR950008961B1 KR1019920003385A KR920003385A KR950008961B1 KR 950008961 B1 KR950008961 B1 KR 950008961B1 KR 1019920003385 A KR1019920003385 A KR 1019920003385A KR 920003385 A KR920003385 A KR 920003385A KR 950008961 B1 KR950008961 B1 KR 950008961B1
Authority
KR
South Korea
Prior art keywords
rom
multiplication result
input
accumulator
unit
Prior art date
Application number
KR1019920003385A
Other languages
English (en)
Other versions
KR930019027A (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 KR1019920003385A priority Critical patent/KR950008961B1/ko
Publication of KR930019027A publication Critical patent/KR930019027A/ko
Application granted granted Critical
Publication of KR950008961B1 publication Critical patent/KR950008961B1/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)

Abstract

내용 없음.

Description

실시간 이산 코산인 변환기
제1도는 본 발명에 따른 실시간 이산 코사인 변환기의 구성도.
제2도는 제l도 롬 뱅크부의 상세 블럭도.
제3도는 (a)∼(g)는 제1도 DCT 계수 발생부의 상세 블럭도.
제4도는 제3도 연산부의 상세 블럭도.
제 5 도는 본 발명에 따른 출력 파형도.
* 도면의 주요부분에 대한 부호의 설명
100 : 롬 뱅크부 200 : DCT 계수 발생부
210∼230 : 부호 변환부 240 : 연산부
241 : 덧셈기 242 : 누산기
243 : 반올림 및 포화처리기 MUX-MUX6 : 멀티플렉서
R(0)∼R(7) : 롬 M1∼M6 : 롬 선택 정보
S0∼S20 : 부호변환 제어장치
본 발명은 HDTV, 전자 카메라, 영상전화등의 영상 데이타 압측응용 시스템에 관한 것으로서, 특히 사전 계산된 데이블을 이용하여 고속의 연산이 가능하고 IC화가 용이한 실시간 이산 코사인 변환기(Discrete Cosine Transform; 이하, DCT)에 관한 것이다.
디지탈 신호처리 기술 및 반도체 기술의 급속한 발전으로 과거 컴퓨터 시뮬레이션 수준 또는 대규모 장치수준의 하드웨어로밖에는 구현이 곤란하고 따라서 응용 분야가 극히 제한되었던 영상 신호 처리 기술이 최근 실용화 단계에 이르고 있다.
그 중에서도 영상 데이타 압축 기술은 가장 주목을 받고 있으며 영상 데이타 압축을 위한 변환 방식에서 DCT는 거의 필수적으로 사용되고 있다.
그러나, DCT를 제한된 시간 이내에 실시간 처리하기 위해서는 곱셈, 덧셈 등 많은 연산을 수행해야 한다. 따라서, 연산기의 처리 속도가 빨라야 되며, 한편으로는 가전분야와 같이 가격 및 성능(Performance)이 엄격한 제품에 적용하기 위해서는 하드웨어 사이즈의 축소가 필수적으로 요구된다.
상기 언급한 실시간 조건을 만족하기 위해서는 고도의 연산기 구조가 필요하며 또한 연산의 정확도(Accuracy)가 유지되면서 가능한 하드웨어의 크기가 작도록 해야 한다.
그러나, 기존의 곱셈기를 이용한 직접 구현은 연산 속도나 연산의 정확도면에 있어서는 우수하나 하드웨어의 크기가 방대해져서 결국 경쟁력 있는 IC화가 곤란하며, 고속 알고리즘을 이용한 실시간 구현 방식은 연산 속도나 하드웨어 사이즈 면에서 핵심적인 곱셈기의 수를 크게 감소시킬 수 있으나 VLSI화에 필요한 회로의 규칙성 확보가 불가능하며 복잡한 구현 구조를 갖게 되고 연산의 정확도 면에 있어서도 최종 출력을 얻기까지 수회의 연산 단계를 거치므로 연산의 정확도가 크게 떨어져 결국 IC의 성능이 저하되는 단점이 있었다.
본 발명의 목적은 상술한 문제점을 해결하기 위하여 곱셈기를 사용하지 않고 사전 계산된 테이블을 이용함으로써 고속 연산이 가능하며, 하드웨어의 규칙적인 구조를 통해 IC화시 칩 면적이 크게 줄일 수 있는 실시간 이산 코사인 변환기를 제공하는데 있다.
상술한 본 발명의 목적을 달성하기 위한 본 발명에 따른 실시간 이산 코사인 변환기는 사전 계산된 입력픽셀값(x(n))과 코사인 계수의 곱셈 결과를 저장하며, 상기 입력 픽셀값의 입력에 따라 해당 곱셈 결과를 병렬 출력하는 롬 뱅크부 및 상기 입력 퍽셀값에 따라 상기 롬 뱅크부로부터 곱셈 결과를 순차적으로 입력받아 상기 코사인 계수의 부호에 따라 부호변환을 수행하고, 순차적으로 입력되는 상기 롬 뱅크부로부터의 곱셈 결과를 선택하기 위하여 멀티플렉싱하여, 멀티플렉싱된 곱셈 결과를 누산처리하여 DCT 계수를 발생하는 DCT 계수 발생부를 구비한 것을 특정으로한다.
이하. 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하고자 한다.
먼저, 본 발명의 실시예의 설명에 앞서서 DCT 알고리즘에 대하여 알아보면 다음과 같다.
다음 식은 여러 가지 DCT 정의중 가장 많이 사용되는 식이다.
여기서, x(n) : 입력 픽셀의 값(-256~255), X(K) : DCT 계수의 값(-1024~1023)
구체적 설명을 위해 가장 일반적으로 사용되는 N=8을 기준으로 설명한다.
상기 (1)식을 매트릭스 형태로 나타내면 다음과 같다.
상기 (2)식에서를 의미하여 나머지 코사인 계수 등에 대해서도 동일하다. 이때, 상기 (2),삭의 매트릭스의 순서를 일부 변경하면 다음과 같다.
상기 (2)식에서 살펴보면 코사인 계수의 배열에 상당한 규칙성이 있음을 알 수 있으며, 코사인 계수의 값은 이미 알고 잇는 상수이므로 사진 계산이 가능하다. 따라서, 이러한 코사인 계수를 미리 계산하여 테이블화하고 이를 이용하여 DCT 연산을 수행하도록 하는 것이 본 발명의 핵심이라 할 수 있다.
이하, 상출한 (2)식을 토대로 본 발명의 실시예를 상세히 설명하고자 한다.
제1도는 본 발명에 따른 실시간 이산 코사인 변환기의 구성불럭도로서, 본 발명에 따른 실시간 이산 코사인 변환기는 입력 퍽셀값(x(n))을 어드레스로 하여 사전 계산되어 저장된 코사인 계수와 입력 퍽셀값(x(n))의 곱한 값을 출력하는 롬 뱅크부(100)와 롬 뱅크부(100)의 출력값을 입력받아 최종 DCT계수(X(0)∼X(7))를 발생하는 DCT 계수 발생부(200)로 구성되어 있다.
제2도는 롬 뱅크부(100)의 상세 불럭도로서, 입력단에 병렬로 연결된 8개의 롬(R(0)∼R(7))으로 구성되며, R은 롬을 0.1·‥7은 롬의 번호를 나타낸다.
제3도 (a)∼(g)는 DCT계수 발생부(200)의 상세 불럭도로서, 각 DCT 계수(X)0)∼(7))에 따라 그 구성 요소가 달라진다.
먼저, (a)는 DCT 계수(X(0))를 발생시키기 위한 것으로 상기 롬(R(0))의 출력을 연산 처리하는 연산부(240)만으로 구성되며, (b)는 DCT 계수(X(4))를 발생시키기 위한 것으로, 부호 변환 제어신호(S(0)에 따라 부호 변환을 수행하는 부호 변환부(210)와 연산부(240)로 구성된다.
또한, 제3도(a) 및 (d)는 DCT계수(X(2)),(X(6))를 발생시키기 위한 것으로, 부호변환 계어신호(S1)∼(S2)에 따라 부호 변환을 수형하는 각각 복수 개의 부호 변환부(211)∼(214)와. 롬 선택 정보(M1),(M2)에 따라 각각 멀티플레싱을 수행하는 멀티플랙서(MUX1,MUX2)와, 연산처리를 위한 연산부(240)들로 구성되며, 상기 부호변환 계어신호(S0)∼(S4) 및 롬 선택 정보(M1),(M2)의 각 비트중 X는 don't care이다.
제3도 (e)∼(j)는 부호 변환을 제어하는 부호 변환 제어신호(S5)∼(S20)의 제어에 따라 부호 변환을 수행하는 각각 복수 개의 부호 변환부(215)∼(230)에 롬 선택 정보(M3)∼(M3)에 따라 멀티플레싱을 수행하는 멀티플렉서(MUX3)∼(MUX6)를 연결시킨다. 그리고 상기 멀티플렉서(MUX3∼(MUX6)에는 연산부(240)는 연결시켜 상기 멀티플렉서(MUX3)∼(MUX6)의 출력을 연산처리하여 DCT 계수(X(l),X(3),X(5).X(7))를 발생시킨다. 상기 부호 변환부(210∼230)는 그 구성이 동일하다. 한편, 상기 연산부(240)는 상기 롬(R(0)∼(R7))의 곱셈 결과를 가산하는 덧셈기(241)에 누산기(242)를 연결시켜 상기 덧셈기(241)의 덧셈 결과를 누산하며 상기 누산기(242)에 반올림 및 포화처리가(243)를 연결시켜 상기 누산기의 출력을 반올림 및 포화처리한다.
이하, 상기 구성에 따른 동작을 살펴보면 다음과 같다.
먼저, 입력 픽셀값 x(n)은 일반적으로 9비트로서 -256-255사이의 값을 가지므로 상기 (3)식에서 각각의 코사인 계수를 14비트로 나타내는 경우 롬 뱅크부(100)내의 각 롬(R(0)∼R(7))들은 입력 9비트, 출력23비트가 된다. 롬 뱅크부(100)내의 각 8개의 롬(R(0)∼R(7)에는 업력 픽셀의 값 x(n)과 코사인 계수를 곱한 결과가 저장되어 있고 입력 픽셀의 값 x(n)은 모든 롬(R(0)∼R(7))에 어드레스로서 동시에 입력되어 결국 병렬 처리된 곱셈 결과가 롬(R(0)∼R(7))으로부터 출력된다.
롬(R(0)∼R(7))으로부터 출력된 곱셈 결과는 DCT계수 발생부(200)로 입력되어 DCT 계수(X((0)∼X(7))를 발생시킨다.
먼저, 제3도(a)는 DCT 계수(X(0))를 구하기 위한 연산부(240)로써, (3)식에서 보듯이 코사인 계수가 모두 동일하므로, 부호변환 및 멀티플렉싱이 불필요하고 단지 롬(R(0))으로부터 입력되는 23비트의 연산결과를 모두 더한 후 제4도와 같은 처리 블럭을 거쳐 16비트를 출력하게 된다.
그리고 제3도(b)는 DCT 계수(X(4))를 구하기 위한 것으로,(3)식을 참작할 때, 코사인 계수는 모두동일하나 부호가 다르므로 부호 변환부 및 연산부만 있으며 구할 수 있음을 알 수 있으며, 연산부(240)의 처리방식은 상기 DCT계수(X(0))를 구할 경우와 동일하다.
부호 변환부(210)에 입력되는 부호 변환 제어신호(S0)는 부호변환을 선택하기 위한 제어비트로서, 0이면부호 변환을 수행하지 않고, 1이면 입력 값의 (-)값을 출력한다. 부호변환의 시작 위치는 최상위 비트(MSB)이며, 8번째 부호 변환은 최하위 비트(LSB)가 된다.
또한, 제3도(c)는 DCT 계수(X(2))를 구하기 위한 것으로, (3)식에서와 같이 두 가지 코사인 계수가 필요하므로 부호 변환부, 멀티플렉싱부, 연산부가 모두 필요하게 된다.
DCT 계수(X(2))를 구하기 위해서는 롬(R(2), R(6))이 필요한데 이를 선택하는 것은 롬선택 정보(M1)이다.
상기 롬 선택 정보(M1)의 각 비트가 0이면 롬(R(0))을, 1이면 롬(R(6))을 선택한다. 그리고, 부호변환부(211),(212)는 상기 부호변환부(2l0)와 같이 동작되며 이는 부호변환 제어신호(S1),(S2)의 제어에 따른다.
한편, 제3도(d)는 DCT 계수(X(6))를 구하기 위한 것으로, 그 동작은 상기 DCT 계수(X(2))를 구하기 위한 경우와 유사하나 부호 변환 제어신호(S3),(S4)와 롬 선택 정보(M2)만이 다르다.
또한, 제3도(f)∼(h)는 DCT 계수(X(1), X(3), X(5), X(7))를 구하기 위한 것으로, 이들을 구하기위해서는 4개의 롬 즉, R(1), R(3), R(5), R(7)이 필요하게 되며, 부호변환부(215)∼(230)는 상기 설명한부호 변환부(2l0) ∼(2l4)와 동일하게 DCT 계수((X(1))는 부호변환, 제어신호(S5)∼(S8)의 제어로, DCT계수(X(3))는 부호변환, 제어신호(S9) ∼(S12)의 제어로, DCT 계수(X(5))는 부호변환, 제어 신호(Sl3)∼(S1)의 제어로, DCT 계수(X(7))는 부호변환 제어신호(Sl7)∼(S20)의 제어에 의해 수행된다.
그리고, 멀티플렉서 (MUX3)~(MUX6)에서의 롬(R(1),R(3),R(5),R(7))의 선택은 각각 롬 선택 정보(M3)~(M6)에 의해서 이루어지며 입력이 4가지이므로 상기 롬 선택 정보(M3)~(M6)의 각 2비트가 00이면 롬(R(1),01이면 롬(R(3)), 10이면 롬(R(5)), 11이면 롬(R(7))의 관계로 1:1 대응된다.
그리고 연산부(240)의 동작도 상기의 DCT 계수(X(0), X(2), X(4), X(6))발생의 경우와 동일하며 그 상세 동작은 다음과 같다.
즉, 멀티플렉서나 롬으로부터 입력되는 23비트의 각각의 곱셈 결과는 덧셈기(241)에 입력되어 계속해서 입력되는 곱셈 결과와 더해지며 이 결과는 누산기(242)에 저장되며 추가적인 덧셈을 위해 덧셈기(241)로 피이드백 된다. 7번의 최종 덧셈이 완료되면 덧셈에 따른 3비트가 증가하므로 누산기(242)의 출력 비트는 26비트가 된다.
상기 누산기(242)의 출력은 반올림 및 포화처리기(243)에 입력된다. 이때, 상위 2비트가 포화상태이면 부호가 반정될 수 있으므로 이를 방지하기 위해 하위 14비트는 잘라버리고 15비트에서 반올림시키고 나머지비트는 모두 상위 2비트와 같은 상태로 포화 처리한다. 따라서, 최종적으로 12비트가 출력된다.
또한, 제5도는 이 발명의 출력 타이밍도로서, 기본 클럭 주기를 "T"로 하여 매 주기 T마다 입력 픽셀값 x(n)이 입력되고 이것은 동시에 롬 뱅크부(100)에 입력된다.
그리고 매 클럭의 폴링(Falling)에지에서 덧셈이 시작되어 다음의 폴링에지 이전에 덧셈이 완료되고 7개의 덧셈이 완료된 후 입력 픽셀(X(8)이 입력되는 시점에서 최초의 DCT 계수인 X(0)가 출력됨을 알 수 있으며 이후 매 클럭 주기마다 DCT 계수가 출력된다.
즉, 최초의 픽셀인 X(0) 입력 후 7개의 클럭이후 DCT 출력이 가능하게 되므로 DCT 내부의 딜레이가 최소화하여 고속의 연산이 가능함을 알 수 있다.
상술한 바와 같이 본 발명은 8개의 롬(R(0)∼R(7))으로 구성된 롬 뱅크부(100)에서 입력 픽셀값(x(n))과 코사인 계수인 곱셈 결과를 병렬로 얻게 되며, 이 곱셈 출력이 DCT 계수 발생부(200)에서 부호 변환 및 멀티플렉싱 및 누산하여 DCT 계수(X(0)∼X(7))를 발생시키므로 연산 단계가 적어 실시간 처리 및 연산결과에 대한 정확도가 확보된다.
본 발명은 DCT 연산식의 변경과 이에 따른 연산 파라메타들의 선택을 통해 발명의 기술적 범주내에서 변경 가능함은 당업자에게 자명하다.
이상에서 살펴본 바와 같이 본 발명에 따른 실시간 이산 코사인 변환기는 칩 면적을 많이 차지하는 곱셈기 대신에 회로의 규칙성으로 인해 칩 면적을 작게 차지하는 롬을 이용하여 사전 계산된 곱셈 결과를 저장하여 이산 코사인 변환을 수행한다. 따라서, 고속의 연산이 가능하며, IC화시 칩 면적을 줄일 수 있으며, 연산단계가 적어 연산결과에 대한 정확도를 확보할 수 있다는 잇점이 있다.

Claims (4)

  1. 사전 계산된 입력 입력값(x(n))과 코사인 계수의 곱셈 결과를 저장하며, 상기 입력 픽셀값의 입력에 따라 해당 곱셈 결과를 병렬 출력하는 롬 뱅크부; 및 상기 입력 픽셀값에 따라 상기 롬 뱅크부로부터 곱셈 결과를 순차적으로 입력받아 상기 코사인 계수의 부호에 따라 부호변환을 수행하고, 순차적으로 입력되는 상기 롬 뱅크부로부터의 곱셈 결과를 선택하기 위하여 멀티플렉싱하며, 멀티플렉싱된 곱셈 결과를 누산처리하여 DCT 계수를 발생하는 DCT 계수 발생부를 구비한 것을 특징으로 하는 실시간 이산 코사인 변환기.
  2. 제l 항에 있어서, 상기 롬 뱅크부는 복수의 롬으로 구성된 것을 특징으로 하는 실시간 이산 코사인 변환기.
  3. 제 1항에 있어서, 상기 DCT 계수 발생부는, 부호 변환 제어신호에 응답하여 상기 롬 뱅크부로부터의 곱셈 결과를 부호 변환하는 다수의 부호 변환부: 선택 정보에 따라 상기 부호 변환부의 출력값들 혹은 상기 롬 뱅크부로부터의 곱셈 결과를 중 어느 하나를 선택하는 멀티플렉서: 상기 멀티플렉서에서 선택된 값을 누산처리하는 연산부를 구비한 것을 특징으로 하는 실시간 이산 코사인 변환기.
  4. 제3항에 있어서, 상기 연산부는 누산하는 누산기: 상기 누산기의 누산된 값과 상기 롬 뱅크부의 곱셈 결과를 가산하여 상기 누산기에 출력하는 가산기: 상기 누산기의 누산된 값을 반올림 및 포화처리하는 반올림 및 포화처리기를 구비한 것을 특징으로 하는 실시간 이산 코사인 변환기.
KR1019920003385A 1992-02-29 1992-02-29 실시간 이산 코사인 변환기 KR950008961B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920003385A KR950008961B1 (ko) 1992-02-29 1992-02-29 실시간 이산 코사인 변환기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920003385A KR950008961B1 (ko) 1992-02-29 1992-02-29 실시간 이산 코사인 변환기

Publications (2)

Publication Number Publication Date
KR930019027A KR930019027A (ko) 1993-09-22
KR950008961B1 true KR950008961B1 (ko) 1995-08-09

Family

ID=19329838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920003385A KR950008961B1 (ko) 1992-02-29 1992-02-29 실시간 이산 코사인 변환기

Country Status (1)

Country Link
KR (1) KR950008961B1 (ko)

Also Published As

Publication number Publication date
KR930019027A (ko) 1993-09-22

Similar Documents

Publication Publication Date Title
JP2945487B2 (ja) 行列乗算器
KR950009472A (ko) 2차원 이산코사인 변환장치, 2차원 역이산코사인 변환장치 및 디지탈 신호처리 장치
JPH02501601A (ja) 2次元離散余弦変換プロセッサ
US6052703A (en) Method and apparatus for determining discrete cosine transforms using matrix multiplication and modified booth encoding
JPH05260313A (ja) 離散余弦変換(dct)によるデータ処理方法、dct方法、およびdctデータ処理回路
KR950008961B1 (ko) 실시간 이산 코사인 변환기
EP0037130B1 (en) Arrangement for calculating the discrete fourier transform by means of two circular convolutions
JP2737933B2 (ja) 除算装置
US5493521A (en) Vector calculation apparatus capable of rapidly carrying out vector calculation of two input vectors
US5999958A (en) Device for computing discrete cosine transform and inverse discrete cosine transform
JPH05216984A (ja) 並列処理装置
JP2529229B2 (ja) コサイン変換装置
KR100193385B1 (ko) 단일화된 시스톨릭어레이 구조에 의한 dct/dst/dht의 수행 방법 및 그 장치
JP2526287B2 (ja) 演算回路
JP3875183B2 (ja) 演算装置
JP3396818B2 (ja) Dct演算回路及びidct演算回路
JPH1117931A (ja) 画素密度変換装置
JP2953918B2 (ja) 演算装置
JP2973220B2 (ja) ディジタルデータの直交変換方法及びその装置
KR100223752B1 (ko) 병렬 곱셈기
KR910008454B1 (ko) 변환 회로
KR960016574A (ko) 신호처리장치
JP3277220B2 (ja) 剰余乗算装置の演算方法
KR940007569B1 (ko) 행렬 곱셈 회로
KR100254393B1 (ko) 가중 계수처리 가능한 이산 코사인 변환 코어 구조

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

G160 Decision to publish patent application
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030730

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee