KR0154919B1 - 2차원 역이산 코사인 변환 회로 - Google Patents

2차원 역이산 코사인 변환 회로

Info

Publication number
KR0154919B1
KR0154919B1 KR1019940039965A KR19940039965A KR0154919B1 KR 0154919 B1 KR0154919 B1 KR 0154919B1 KR 1019940039965 A KR1019940039965 A KR 1019940039965A KR 19940039965 A KR19940039965 A KR 19940039965A KR 0154919 B1 KR0154919 B1 KR 0154919B1
Authority
KR
South Korea
Prior art keywords
idct
matrix
data
input
input data
Prior art date
Application number
KR1019940039965A
Other languages
English (en)
Other versions
KR960028494A (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 KR1019940039965A priority Critical patent/KR0154919B1/ko
Publication of KR960028494A publication Critical patent/KR960028494A/ko
Application granted granted Critical
Publication of KR0154919B1 publication Critical patent/KR0154919B1/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 실시간 영상처리 시스템에 적용할 수 있는 하드웨어의 복잡도를 줄이고 고속화를 실현한 IDCT 회로에 관한 것으로, 이를 위하여, 본 발명은, N/2 기수번째 입력 데이타와 N/2 서수번째 입력 데이타를 포함하는 N개의 입력 데이타에 대하여 역이산 코사인 변환동작을 수행하여 N개의 출력 데이타를 제공하는 1차원 IDCT 회로에 있어서, 상기 서수번째 입력 데이타에 서수 IDCT 행렬을 곱하여 제1군의 N/2 중간 데이타를 제공하며, 상기 N/2 서수번째 입력 데이타에 서수 IDCT행렬곱을 수행하기 위한 복수의 승산기와 복수의 가산기를 포함하는 제1승산수단, 상기 기수번째 입력 데이타에 기수 IDCT 행렬을 곱하여 제2군의 N/2 중간 데이타를 제공하며, 상기 N/2 기수번째 입력 데이타에 기수 IDCT 행렬곱을 수행하기 위한 복수의 승산기와 복수의 가산기를 포함하는 제2승산수단, 상기 제1군의 N/2 중간 데이타 각각과 이에 상응하는 상기 제2군의 N/2 중간 데이타 각각을 가산하여 제1의 N/2 출력 데이타를 제공하는 가산수단, 및 상기 제2군의 N/2 중간 데이타 각각을 이에 상응하는 상기 제1군의 N/2 중간 데이타 각각으로 부터 감산하여 제2의 N/2 출력 데이타를 제공하는 감산수단을 구비하는 것이다.

Description

2차원 역이산 코사인 변환 회로
본 발명은 2차원 역이산 코사인 변환을 수행하는 회로에 관한 것으로서, 특히 각각이 행렬곱을 이용하여 IDCT 동작을 수행하는 한 쌍의 개선된 1차원 IDCT 회로를 이용한 2차원 IDCT 회로 관한 것이다.
이 기술분야에 잘 알려진 바와같이, 이산화된 화상신호의 전송은 아나로그 신호보다 좋은 화질을 유지할 수 있다. 일련의 이미지 프레임으로 구성된 이미지 신호가 디지탈 형태로 표현될 때, 특히 고품질 텔레지변의 경우 상당한 양의 데이타가 전송되어야 한다. 그러나, 종래의 전송 채널의 사용가능한 주파수 영역은 제한되어 있으므로, 많은 양의 디지탈 데이타를 전송하기 위해서는 전송되는 데이타를 압축하여 그 양을 줄일 필요가 있다.
통상적으로, 영상신호는 보통 화질에 심각한 열화를 초래하지 않고 압축하는 것이 가능한데, 이것은 한 프레임내의 화소들간에 또는 이웃한 프레임들간에 상관관계 또는 용장성이 존재하기 때문이다. 따라서 종래의 영상신호 부호와 방법은 이러한 용장성을 이용 또는 소거하는 다양한 압축 기법(또는 부호와 방법)을 사용한다.
그러한 종래의 전형적인 부호와 방법중의 한 유형으로는 단일 프레임 내부의 용장성을 이용하는 변환 기법이 있으며, 2차원 이사 코사인 변화(DCT)은 이러한 변환 방법의 하나로서 Chen과 Pratt의 Scene Adaptive Coder, IEEE Transaction on Communications, COM-32, No.3 (1984년 3월)에 기재되어 있다. 통상적으로, DCT는 영상 압축이나 비디오 대역 제한을 위한 다양한 변환 부호화 방법 중 가장 효율적인 적으로 알려져 있다. 이러한 DCT를 이용하여 대역 제한 얻기 위해서, 이산 부호화된 화소로 이루어진 정방 블럭은 행렬 분해 방법(row-column decomposition method)을 이용하여 2차원 DCT를 수행하는 2차원 또는 N×N DCT 프로세서에 의해 주파수 영역으로 변환된다. 그와 같은 DCT 프로세서에서는 N×N 블럭의 화소 데이타가 입력되어 그 입력 행렬은 N×N DCT 행렬에 곱하여져 중간 행렬이 되고, 그 중간 행렬의 전치는 날은 DCT행렬에 곱해져서 원하는 역변환된 행렬이 된다. 그리고 난후 변화된 행렬의 원소는 양자화되어 가장 활동적인 항만 선택되어 전송 채널을 통해 전송된다.
따라서, 수신기측에서는, 상기한 바와같이 이산 코사인 변환된 비디오 신호에 대해 역이산 코사인 변환(IDCT)을 수행하여 공간 영역의 원래의 비디오신호로 복구하게 된다. 이때, IDCT 역시 IDCT 행렬과의 곱, 전치, 또다른 행렬곱을 이용하여 수행할 수 있다.
실제적으로, 영상 복호화 시스템에 쓰이는 IDCT 회로는 빠른 콘볼루션 속도를 요구하므로, IDCT를 신속하게 수행하기 위한 많은 방법이 제안되었으며 그 중에는 VLSI(Very Large Scale Integration)구현도 포함된다.
통상적으로, 행렬의 곱은 2개의 N 차원 벡터의 내적을 구하여 결과 행렬의 하나의 원소를 구하는 과정을 포함한다. 따라서, 입력 행렬의 한 행의 각각의 원소는 DCT/IDCT 행렬의 한 열의 해당 원소 각각에 곱해진 다음 그 곱들이 합해지므로서 곱행렬의 하나의 원소가 된다.
따라서, 8×8 블럭의 화소를 변환하기 위해서는, 64 원소를 가진 출력 행렬의 하나의 원소를 만들기 위해서 8개의 곱이 더해져야 한다. 이때에 필요한 계산량을 줄이기 위해 이에 대응할 수 있는 많은 신속한 알고리듬들이 제안되었다. 예를들어, DCT/IDCT 행렬이 몇개의 성긴(sparse) 행렬들로 분해되어, 그 결과 버터플라이(butterfly) 구조를 이룬다. 이런 구조를 이용한 VLSI 구현의 예가 이산 푸리에-코사인 변환칩(A Discrete Fourier-COsine Transform Chip) IEEE Journal on Selected Areas on Communication, Jan., '86, pp. 49-61.에 설명되어 있다. 여기에서, 버터플라이 구조는 계산량을 현저히 줄이지만 많은 고속 승산기를 필요로 하므로 직접회로(IC)를 구현하는데 있어서는 실제적으로 칩면적이 커지게 된다. 게다가, 버터플라이 구조는 복잡한 상호연결, 라우팅의 어려움 등의 단점을 가지고 있어서 VLSI 구현이 비효율적인 경향이 있다.
한편, M. L. Niou등에 의해 개시된 U.S Patent No. 4,791,598에는 또다른 DCT/IDCT 방식이 제안되어 있는데 이는 분산 수학(distributed arithmetic), 주파수 간축(decimation-in-frequency), 비트-직렬(bit-serial) 구조 부분합 등을 이용하여 최소한 메모리 크기로 동시에 벡터 내적을 구한다. 그 결과, 곱셈기를 사용하지 않는 매우 정규적인 구조를 가진 설계가 가능하게 되었다. 이것은 변환 동작의 본질적인 특성에 의해 가능하다. 즉, 변환 행렬의 원소는 상수이기 때문에 분산 수학을 이용하여, 곱셈기 대신에 룩업테이블 또는 ROM(Read Only Memory)을 사용하는 것이 가능하다. 또 몇개의 벡터곱을 동시에 계산함으로서 행렬 벡터곱을 구한다. 이러한 방법은 승산기가 없고 구조가 매우 정규화되어 있기 때문에 매우 효율적이다.
그러나, 이와같은 방법을 구현하는데 있어서는 회로가 복잡해지기 쉽다는 단점이 있으며, 더욱이 비트 직렬 데이타 구조를 취함으로서 행렬곱이 비티 단위로, 즉한 클럭 주기당 한 비트씩 계산되므로 실시간 처리의 응용에는 부적합하다는 문제가 있다.
따라서, 본 발명은 실시간 영상 시스템에 사용할 수 있는 하드웨어 복잡도를 줄일 고속 IDCT 회로를 제공하는 것으로서, IDCT 동작에서 수행되는 행렬곱을 위한 PLA(Programmable Logic Array)를 이용한 2차원 IDCT 회로를 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일관점에 따르면, N/2 기수번째 입력 데이타와 N/2 서수번째 입력 데이타를 포함하는 N 개의 입력 데이타에 대하여 역이산 코사인 변환동작을 수행하여 N 개의 출력 데이타를 제공하는 1차원 IDCT 회로에 있어서, 상기 서수번째 입력 데이타에 서수 IDCT 행렬을 곱하여 제1군의 N/2 중간 데이타를 제공하며, 상기 N/2 서수번째 입력 데이타에 서수 IDCT 행렬곱을 수행하기 위한 복수의 승산기와 복수의 가산기를 포함하는 제1승산수단, 상기 기수번째 입력 데이타에 기수 IDCT 행렬을 곱하여 제2군의 N/2 중간 데이타를 제공하며, 상기 N/2 기수번째 입력 데이타에 기수 IDCT 행렬곱을 수행하기 위한 복수의 승산기와 복수의 가산기를 포함하는 제2승산수단, 상기 제1군의 N/2 중간 데이타 각각과 이에 상응하는 상기 제2군의 N/2 중간 데이타 각각을 가산하여 제1의 N/2 출력 데이타를 제공하는 가산수단, 및 상기 제2군의 N/2 중간 데이타 각각을 이에 상응하는 상기 제1군의 N/2 중간 데이타 각각으로 부터 감산하여 제2의 N/2 출력 데이타를 제공하는 감산수단으로 이루어진 것을 특징으로 하는 1차원 IDCT 회로가 제공된다.
한편, 상술한 바와같이 구성을 갖는 본 발명에 따른 1차원 IDCT 회로에 포함되는 각 승산기는, 각각이 기수 또는 서수 IDCT 행렬에 포함된 기설정된 승산계수를 입력 데이타에 곱하며, 상기 입력 데이타가 음수인 경우 입력 데이타를 2의 보수로 변환시키는 수단, 상기 입력 데이타를 기설정된 수의 입력비트 군으로 나누는 수단, 그 각각이 입력 비트의 모든 가능한 조합에 대한 곱을 포함하고 상기 입력 비트군에 응답하여 상기 곱중 하나를 선태하는 기설정된 수의 PLA, 선택된 상기 곱을 더하여 승산 결과를 제공하는 수단, 기설정된 승산계수와 상기 입력 데이타의 부호에 근거하여 승산 결과의 부호를 결정하는 수단, 및 상기 승산 결과의 부호가 음수로 결정된 경우 그 승산 결과를 2의 보수로 변환하는 수단으로 구성할 수가 있다.
또한, 상술한 바와같이 본 발명의 1차원 IDCT 회로는, N은 8이고, 서수 IDCT 행렬곱이 하기의 식으로 표시되며,
기수 IDCT 행렬곱이 하기의 식으로 표시될 때,
제1의 중간 데이타군이 (x0+x7), (x1+x6), (x2+x4), (x3+x4)를 포함하고 상기 제2의 중간 데이타군이 (x0+x7), (x1-x6), (x2-x5), (x3-x4)를 포함한다.
그리고, 상기 식에서 (y0, y1, y2 ... y7)은 N 입력 데이타를 의미하고, (x0, x1, x2 ... x7)은 N 출력 데이타를 의미한다.
더욱이, 본 발명에 따라 표시되는 상술한 서수 IDCT 행렬곱은 하기의 식으로 변형할 수가 있다.
상기 목적을 달성하기 위한 본 발명의 다른 관점에 따르면, N×N 개의 입력 행렬에 행렬분해법을 이용하여 IDCT 동작을 수행하여 N×N 개의 출력 행렬을 제공하는 2차원 IDCT 회로에 있어서, (a) 상기 N×N 입력 행렬에 기설정된 IDCT 행렬을 곱함으로서 1차원 IDCT를 수행하여 N×N 중간 행렬을 제공하며, 그 각각이 IDCT 행렬에 포함된 기설정된 승산계수와 상기 N×N 입력 행렬에 포함된 승산기 입력을 곱하는 복수의 승산기를 포함하는 제1의 IDCT 회로, (b) N×N 전치 메모리, (c) 상기 N×N 전치 메모리에 저장된 상기 N×N 전치 메모리에 저장시키는 수단, (d) 상기 N×N 전치 메모리에 저장된 상기 N×N 중간 행렬의 전치에 기설정된 IDCT 행렬을 곱함으로서 1차원 IDCT를 수행하여 상기 N×N 출력 행렬을 제공하며, 그 각각이 IDCT 행렬에 포함된 기설정된 승산계수와 상기 N×N 중간 행렬에 포함된 승산기 입력 데이타를 곱하는 복수의 승산기를 포함하는 제2의 IDCT 회로, (e) 상기 N×N 전치 메모리에서 상기 N×N 중간 행렬의 전치를 인출하여 상기 제2의 IDCT 회로에 입력시키는 수단을 포함하며; 상기 제1, 제2의 IDCT 회로에 포함된 각각의 승산기는, (i) 상기 입력 데이타가 음수인 경우 입력 데이타를 2의 보수로 변환시키는 수단, (ii) 상기 입력 데이타를 기설정된 수의 입력비트 군으로 나누는 수단, (iii) 그 각각이 입력 비트의 모든 가능한 조합에 대한 곱을 포함하고 상기 입력비트군에 응답하여 상기 곱중 하나를 선택하는 기설정된 수의 PLA, (iv) 상기 선택된 곱을 더하여 승산 결과를 제공하는 수단, (v) 상기 기설정된 승산계수와 상기 입력 데이타의 부호에 근거하여 승산 결과의 부호를 결정하는 수단, 및 (vi) 상기 승산결과의 부호가 음수로 결정된 경우 상기 승산 결과를 2의 보수로 변환하는 수단을 포함하는 것을 특징으로 하는 2차원 IDCT 회로가 제공된다.
또한, 상술한 바와같은 구성을 갖는 본 발명의 2차원 IDCT 회로는 N이 8이고, 제1, 제2의 IDCT 회로를 위한 IDCT 행렬곱이 하기의 식으로 표시될 때,
제1의 IDCT 회로에 대해서는 (y0, y1, y2 ... y7)이 입력 행렬의 한 열을 나타내고 (x0, x1, x2 ... x7)이 중간 행렬의 한 열을 나타내고, 제2의 IDCT 회로에 대해서는 (y0, y1, y2 ... y7)이 중간 행렬의 한 열을 나타내고 (x0, x1, x2 ... x7)이 출력 행렬의 한 열을 나타낸다.
제1도는 본 발명의 바람직한 실시예에 따른 1차원 IDCT회로의 블럭구성도.
제2도는 제1도에 도시된 승산기의 세부적인 블럭구성도.
제3도는 본 발명의 바람직한 실시예에 따른 2차원 IDCT회로의 블럭구성도.
제4도는 제3도에 도시된 전치 메모리의 세부적인 블럭구성도.
제5a도 및 5b도는 전치 메모리의 동작을 설명하기 위한 도면.
제6도는 전치 메모리를 위한 어드레스와 제어신호를 생성하는 회로.
* 도면의 주요부분에 대한 부호의 설명
100 : 서수 IDCT 블럭 200 : 기수 IDCT 블럭
310 : 제1의 1차원 IDCT 회로 320 : 전치 메모리
330 : 제2의 1차원 IDCT 회로 340 : 제어기
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세하게 설명한다.
일반적으로, 이산 코사인 변화(DCT)은 표본화된 코사인 함수인 1군의 기저벡터로 구성된 직교 변환이다. 즉, N(N=2n, n은 양의 정수)-점(point) 1차원 DCT 입력 테이타가 xj이고 출력 데이타가 yj라면 그 출력 데이타 yj는 다음의 식(1)과 같이 나타낼 수 있다.
여기에서, i=0, 1, ..., N-1, j=0, 1, ..., N-1, 그리고
또한, 상기한 식(1)은 다음과 같이 행렬로 나타낼 수도 있다.
여기에서, X는 N차원 입력 벡터로서 하기의 식(3), 즉
로 나타낼 수 있고, Y는 N차원 출력백터로서, 하기의 식(4), 즉
로 나타낼 수 있으며, D는 N×N DCT 행렬로서 하기의 식(5), 즉
로 나타낼 수 있다.
또한, DCT 행렬 D의 원소는,
와 같이 표현되고
와 같은 관계를 갖는다.
한편, N이 8인 경우 상기한 식(2)는 위의 관계를 이용하여 다음과 같이 변형된다.
따라서, 상기한 식(7)의 관계를 이용하여 DCT 계수, 즉 DCT 행렬의 원소와 입력 데이타의 곱셈의 수를 반으로 하는 것이 가능하다. 마찬가지로 IDCT에 대해서도 입력 벡터와 출력 벡터를 각각 식(3)과 식(4)에 정의된 y와 x라 하면 y와 x의 관계는 다음과 같이 변형이 가능하다.
여기에서, IDCT 동작은 기수 IDCT 행렬과 서수 IDCT 행렬을 이용하여 표현된다. 기수, 서수 IDCT 행렬의 원소는, 예를들어, c2와 c1은 상기한 식(8)의 변형된 DCT 행렬의 역행렬을 구함으로서 얻을 수 있다.
그리고, 상기한 식(9a)와 (9b)에서는 N차원 입력 벡터가 먼저 N/2 차원 서수번째 입력벡터, 예를들어 (y0, y2, y4, y6)와 기수번째 입력 벡터, 예를들어, y1, y3, y5, y7로 나뉘어진다. 따라서, 상기한 식(9a)의 서수 IDCT 행렬은 서수번째 입력 벡터에 곱해져 N/2 중간 데이타가 되는데 그 각각은 출력 벡터의 두개의 원소의 합이 된다. 마찬가지로, 기수 IDCT 행렬은 기수번째 입력 벡터에 곱해져 N/2 중간 데이타가 되는데 그 각각은 출력 벡터의 두개의 원소의 차가 된다.
한편, 전술한 바와같은 종래의 IDCT 프로세서는 분산 수학과 비트 직렬 데이타 구조를 이용하여 상기한 식(9a)와 (9b)에 근거하여 IDCT 동작을 수행하였다.(M. L. Niou 등에 의해 개시된 U.S. Patent No. 4,791,598 참조)
그러나, 본발명에서는 식(9a)와 (9b)는 다음과 같이 변형된다.
여기에서, IDCT 동작은 상술한 식(9a)를 변형하여 얻은 식(10a)와 (10b)의 변형된 서수 IDCT 행렬과 식(9a) 또는 (10c)의 기수 IDCT 행렬로 나타낼 수 있다.
한편, 제1도를 참조하면, 상기한 식(10a)에서 (10c)의 1차원 IDCT 동작을 수행하는 IDCT 회로의 블럭구성도가 도시되어 있다. 동도면에서 서수 IDCT 블럭(100)은 상술한 식(9a)에 도시된 서수 IDCT 행렬의 곱셈을 수행하기 위한 것이고, 기수 IDCT 블럭(200)은 상술한 식(9b)에 도시된 기수 IDCT 행렬의 곱셈을 수행하기 위한 것이다. 그러므로, 식(9a)와 (9b)로부터 두개의 IDCT 블럭(100, 200)은 같은 방법으로 구현될 수 있다는 것을 알 수 있다.
그러나, 전술한 바와 같이 식(9a)의 행렬곱은 식(10a)와 (10b)로 변형된다. 따라서, 서수 IDCT 블럭(100)에서는 식(9a)의 결과를 더 효율적으로 제공하기 위해서 식(10a)와 (10b)의 계산을 수행한다.
즉, 입력 행렬의 한열인 입력 벡터는 먼저 서수번째와 기수번째 입력 벡터로 나누어져 서수 IDCT 블럭(100)과 기수 IDCT 블럭(200)에 각각 입력된다. 예를들어, N이 8이라면 입력 벡터(y0, y1, y2, ... y7)는 (y0, y2, y4, y6)와 (y1, y3, y5, y7)로 분리되어 한쌍의 데이타, 예를들어 (y0, y1)이 IN_EVEN 라인과 IN_ODD 라인을 통하여 같은 클럭 사이클에 입력된다.
보다 상세하게, 식(10a)와 (10b)의 서수번째 입력 벡터는 우선 순차적으로 레지스터/래치 블럭(111)에 입력되어 저장되고 병렬로 출력된다. 그런다음, 입력 벡터는 레지스터/래치 블럭(111)의 출력포트에 4 클럭 사이클 동안 래치된다. 그 동안 y2와 y6는 식(10b)를 계산하기 위해 멀티플렉서(122)를 통해 두개의 승산기(141, 142)에 제공된다. 또한, y0과 y4는 상술한 식(10a)의 계산을 위하여 라인(113)과 2의 보수 변환기(121)에 각각 제공된다.
또한, 서수 IDCT 블럭(100)에는 상술한 식(10b)의 행렬곱을 계산하기 위한 두개의 승산기(141, 142)가 구비되어 있으며, 이들 두 승산기(141, 142)의 계산 결과는 가산기(152)에 입력된다.
한편, 코사인 함수의 특성으로 부터 식(10a)의 C4는 1 이므로 식(10a)의 입력 데이타 y0와 y4에 곱해질 필요가 없다. 따라서, y0는 가산기(151)에 직접 연결되고, y4는 2의 보수 변환기(121)을 통하여 가산기(151)에 연결된다. 여기에서, 처리되는 데이타들은 2의 보수 형태로 표현되어 있고 2의 보수 변환기(121)는 식(10a)의 연산을 위해, 변환된 IDCT 행렬의 원소의 부호를 나타내는 신호인 COEF_SIGN에 응답하여 y4의 부호를 변환시킨다.
상술한 바와같은 두개의 승산기(141, 142)의 동작과 두개의 라인(113, 114)상에 제공된 데이타가 하기의 표1에 제시되어 있다.
상기한 표1의 각 열은 각 클럭 사이클에 두 가산기(151, 152)로의 입력 데이타를 보여준다. 그리고, 가산기(151)는 각 클럭 사이클에 표1의 같은 행(row)의 4,5 열(column)의 두개의 원소를 더하고, 가산기(152)는 표1의 2열과 3열의 원소를 더한다. 또한, 제1, 제2 클럭 사이클에는 두개의 가산기(151, 152)의 가산 결과가 가산/감산기(161)에 입력되어 표1의 한 행의 4개의 원소가 모두 더해진다. 그리고, 제3, 제4 클럭 사이클에는 가산/감산기 (161)에서 가산기(152)의 가산 결과가 가산기(151)의 결과로부터 감산된다.
여기에서, 상술한 바와같은 두개의 가산기(151, 152)와 가산/감산기(161)의 동작은 식(10a)에서 (10c)의 관계를 이용하여 하기의 표2와 같이 정리된다.
따라서, 상기한 표 2로부터, 두개의 가산기(151, 152)의 출력이 전술한 식(10a)와 (10b)의 결과와 같고, 가산/감산기(161)의 출력이 전술한 식(9a)의 결과와 같다는 것을 쉽게 알 수 있다. 또한, 표1과 표2에서 알 수 있는 것처럼 두개의 승산기(141, 142)와 두개의 가산기(151, 152)에서는 같은 동작이 두번째 수행되어 가산/감산기(161)에서 원하는 결과를 출력하도록 한다. 이상 설명한 바와같이, 서수 IDCT 블럭(100)은 식(9a)의 서수번째 입력 벡터와 서수 IDCT 행렬의 곱셈을 수행하게 된다.
다른한편, 기수 IDCT 블럭(200)의 전체 동작은 실질적으로 상술한 바와같은 서수 IDCT 블럭(100)의 그것과 유사하다. 단, 식(10c)의 c1, c3, c5, c7 각각을 위한 승산기 4개가 더 필요하다는 점이 다르다. 따라서, 기수번째 입력 벡터는 레지스터/래치 블럭(112)의 출력 포토에 4 클럭 사이클 동안 래치되어 전술한 식(10c)의 계산을 위해 멀티플렉서(123)을 통해 4개의 승산기(143 내지 146)로 입력된다.
하기의 표 3에는 상술한 4개의 승산기(143 내지 146)의 다른 클럭 사이클에서의 동작이 제시되어 있다.
상기한 표 3에 있어서, 각 행(row)의 4개의 요소는 각 가산기(153, 154, 162)에서 해당 클럭 사이클에 가산되어 식(10c)의 좌변의 결과를 제공한다. 전술한 것처럼, 기수 IDCT 블럭(200)은 식(10c)에 나타난 것처럼 기수번째 입력 벡터에 기수 IDCT 행렬을 곱한다.
따라서, 전술한 식(9a)와 (9b)에 나타난 가산/감산기(161)와 가산기(162)의 결과는 가산기(171)와 감산기(172)에서 각각 가산되고 감산되어 출력 데이타, 즉, x0에서 x7을 제공한다. 상술하면, 4 쌍의 결과, 즉, (x0, x7), (x1, x6), (x2, x5), (x3, x4)는 순차적으로 첫번째 항은 가산기(171)에서 두번째 항은 감산기(172)에서 제공된다. 그런다음, 결과는 순차적으로 하나씩 제공되고 각 라운드/클립(round/clip) 블럭(181, 182)에서 시스템의 동적 영역(Dynamic Range)를 고려하여 기설정된 비트로 반올림되거나 내림된다.
그런다음, 전술한 바와같은 과정은 다음번의 입력 벡터, 즉 N×N 입력 행렬의 다른 열에 대해서 반복된다. 입력 벡터가 두개의 레지스터/래치 블럭(111, 112)의 출력포트에 래치되는 동안 다음 입력 벡터가 입력되어 연속된 입력 벡터가 중단없이 처리될 수 있도록 한다.
제2도를 참조하면 제1도에 도시된 승산기(141)의 상세한 블럭구성도가 도시되어 있다. 동도면에 도시된 바와같이, 승산기(141)는 2의 보수 변환기(210a, 210b)와 PLA(220a 내지 220d)와 가산기(230a 내지 230c)를 포함한다.
본 발명과 관련하여 제1도에 도시된 바와같이, 전술한 식(10a)의 y2나 y6가 라인(115)을 통해 승산기(141)로 입력된다. 4개의 PLA(220a 내지 220d)와 3개의 가산기(230a 내지 230c)는 두개의 양수를 곱한다. 여기에서, 두개의 양수는 입력의 절대값과 전술한 식(10a) 내지 (10c)의 IDCT 행렬의 C2와 같은 기설정된 승산계수이다. 따라서, 입력이 2의 보수로 표현된 음수인 경우 먼저 제1의 2의 보수 변환기(210a)에서 해당 양수로 변환된다. 입력의 MSB(Most Significant Bit; 최상위 비트) 또는 사인 비트가 SIGN BIT로서 2의 보수 변환기(210a)에 입력되어 변환을 해줄지의 여부를 결정한다.
그런다음, 2의 보수 변환기(210a)의 출력은 다수, 예를들어, 4개의 비트군으로 분리된다. 각 PLA(220a 내지 220d)는 각 비트군을 입력받아서 그 비트군에 해당하는 곱셈의 부분결과를 출력하는데, 이때 부분결과는 입력 비트와 승산계수와의 곱이다. 여기에서, PLA의 구조는 입력의 비트 수와 승산계수에 따라 기설정될 수 있다. 상술하면, 하나의 PLA가 모든 가능한 입력비트들에 대한 모든 가능한 부분결과를 포함하고, 입력비트들에 응답하여 기설정된 부분결과중 하나를 선택함으로서 승산동작을 수행한다. 4개의 PLA(220a 내지 220d)로부터의 부분결과가 쉬프트(shift)되고 가산기(230a 내지 230c)에서 가산되므로서 완전한 승산결과를 제공한다.
한편, 제2의 2의 보수 변환기(210b)에서는 승산결과의 부호가 결정된다. 상술하면 표2의 2열(column)의 제1, 제4 클럭 사이클에서 처럼 만일 입력이 양수이고 승산계수가 양수이면 가산기(230c)의 결과가 승산기(141)의 출력으로 제1도의 라인(116)상에 제공된다. 그리고, 양쪽 다 음수인 경우에도 결과는 같다. 만일, 단지 하나만이 음수라면 승산기(141)의 출력은 제2의 2의 보수 변환기(210b)에서 해당 음수로 변환된다.
여기에서, 신호 SIGN BIT와 COEF_SIGN는 각각 입력 데이타의 부호와 승산계수의 부호를 나타내는데, 이 신호들이 XOR 게이트를 거쳐 2의 보수 변환기(210b)에 연결되어 위와 같은 동작이 가능하게 된다. 또한, 2의 보수 변환기(210a, 210b)는 변환을 효율적으로 수행하기 위해 PLA를 사용할 수도 있다.
상술한 바와같이 방법을 통해 제1도에 도시된 승산기(141 내지 146)는 표 2와 표 3에 지정된 승산을 분산 수학과 비트 직렬 데이타 구조에 기초하는 종래기술에 비해 효율적인 방법으로 수행한다. 이러한, 승산기의 자세한 구조는 입력의 비트수와 승산 계수에 따라 달라질 수 있으나 주 구조는 실질적으로 제2도와 비슷하다.
한편, 영상처리와 같은 실제 응용에 있어서, IDCT는 입력 행렬, 즉 2차원 DCT 변환된 데이타에 대해 행해진다. 여기에서, 2차원 IDCT 회로는 위에 설명된 것과 같은 1차원 IDCT 2개로 구성될 수 있다. 즉, 2차원 DCT는,
로 표시될 수 있다. 이때, Z는 N×N 출력 행렬 또는 변환된 행렬이고 Y는 N×N 입력 행렬이며, Dt는 DCT 행렬 D의 전치이다.
마찬가지로 2차원 IDCT는,
로 표시되며, 이때의 Z는 N×N 입력 행렬 또는 변환된 행렬이고, Y는 N×N 출력 행렬 또는 역변환된 행렬이며, IDCT 행렬 C는 DCT 행렬 D의 역이다.
또한, 상기한 식(12)는
로 변형된다.
위의 식에서 2차원 IDCT는 1차원 IDCT의 결과를 전체하여 또다시 1차원 IDCT를 함으로서 수행할 수 있다는 것을 알 수 있다.
제3도를 참조하면, 상기한 식(13)의 계산을 위한 본 발명의 IDCT 회로가 도시되어 있다. 동도면에 도시된 바와같이, 본 발명의 IDCT 회로는 N×N 입력 행렬에 IDCT 행렬 곱셈을 수행하여 중간 행렬을 제공하는 제1의 1차원 IDCT 회로(31)와 중간 행렬을 전치하는 전치 메모리(320)와 전치된 중간 행렬에 다시 IDCT 행렬을 곱하는 제2의 1차원 IDCT 회로(330)와 본 발명의 IDCT 회로에 쓰이는 다양한 제어신호를 생성하는 제어기(340)를 포함한다.
여기에서, 2개의 1차원 IDCT 회로(310, 330)의 동작은 실질적으로 제1도 및 제2도를 참조하여 설명한 것과 같다. 따라서, 전술한 것과 같은 방법으로, 하나는 기수번째이고 나머지 하나는 서수번째인 한 쌍의 입력 데이타가 제1의 1차원 IDCT 회로(310)에 같은 클럭 사이클에 입력되어 중간 행렬의 원소 한쌍이 제공된다.
다른한편, 제4도를 참조하면, 제3도에 도시된 전치 메모리(320)의 상세한 구조가 예시되어 있다. 전치 메모리(320)는 4개의 이중포트 램(410a 내지 410d)과 전치동작을 위한 부가의 회로를 포함하며, 이중포트 램 각각은 중간 행렬의 16개의 원소를 저장할 수 있다. 1차원 IDCT 회로(310)로부터 제공되는 중간 행렬은 4개의 군, 즉 서수-서수, 기수-서수, 서수-기수, 기수-기수로 나누어져서 제5a 내지 5b도에 도시된 것처럼 해당하는 각 이중포트 램(410a 내지 410d)에 저장된다.
제5a 내지 5b도에 있어서 Xij는 중간 행렬의 i번째 행(row), j번째 열(column)의 원소를 의미한다. 예를들어, 제5a도의 경웨 서수-서수 이중포트 램(410a)은 열번호와 행번호가 서수인 데이타를 저장하고, 서수-기수 이중포트 램(410c)은 열(column)번호가 기수이고 행(row)번호가 서수인 데이타를 저장한다. 또한, 제5a와 5b도의 원안의 숫자들은 해당 이중포트 램의 주소를 각각 나타낸다. 전치된 중간 행렬을 제2의 1차원 IDCT 회로에 제공하기 위하여 데이타는 중간 행렬이 전치 메모리(320)에 입력된 것과는 다른 순서로 출력된다.
전술한 바와같이, 제1도에 도시된 라인 OUT_EVEN과 OUT_ODD에 제공된 중간 행렬은 하기의 표 4에 나타난 것과 같이 라인 DIN_EVEN과 DIN_ODD로 입력된다.
여기에서 Xij(i-0, ... 7, j=0, ..7)는 중간행렬 X의 원소로서 다음의 식(14)와 같이 표현된다.
상기 식(14)에서, Zt가 Z대신에 쓰였는데, 이것은 입력 행렬이 제1의 1차원 IDCT 회로(310)에 행 단위로 입력된다는 의미이다.
상기한 표 4를 제5a, 5b도와 비교해 보면 제5a 내지 5b도와 같은 방법으로 중간 행렬을 저장하기 위한 4개의 이중포트 램(410a 내지 410d)의 어드레스열을 쉽게 구할 수 있으며, 이것은 하기의 표 5와 같다.
상기한 표 5의 상반부와 하반부는 각각 제5a와 5b도에 대하여, 이중포트램(410a 내지 410d) 각각의 라이트 어드레스를 나타낸다. 표 5에서 x는 해당 이중포트 램에서 그 클럭 사이클에는 데이타가 저장되지 않는다는 의미이다.
따라서, 제5a 또는 5b도와 같은 방법으로 이중포트 램(410a 내지 410d)에 저장된 데이타는 제4도의 라인 DOUT_EVEN과 DOUT_ODD를 통해 제2의 1차원 IDCT 회로(330)에 전치된 순서로 제공된다. 현재, 이중포트 램(410a 내지 410d)에 저장된 중간 행렬의 원소들이 인출되는 동안, 다음 입력 행렬로부터 계산된 중간 행렬이 이중포트 램으로 입력된다. 그러므로, 데이타의 손실을 막기 위하여 이전에 저장된 중간 행렬의 데이타가 인출된 후에 새로운 데이타가 저장되도록 이중포트 램(410a 내지 410d)의 리드와 라이트 동작을 설계하여야 한다.
제5a도와 같이 현재 저장된 중간 행렬을 전치하기 위해서는 이중포트 램(410a, 410b)의 제1열에 저장된 중간 행렬의 제1열이 먼저 인출되어야 한다. 이중포트 램(410a, 410b)의 제1열의 데이타가 인출된 후에는 다음 중간 행렬의 데이타를 인출된 데이타 대신 그 자리에 라이트할 수 있다. 다음 블럭의 첫 8개의 데이타는, 이중포트 램(410a, 410b)의 제2열 내지 제4열에 남아 있는 현재 저장된 중간 행렬의 손실을 막기 위하여, 제5b도의 서수-서수 이중포트 램(410a)과 기수-서수(410b)의 제1열과 같은 방식으로 저장된다. 그리고, 다음 블럭의 나머지 데이타들은 해당 위치에 저장된 데이타들이 인출된 후에 제5b도와 같은 방식으로 저장된다.
결론적으로, 연속한 중간 행렬들은 이중포트 램(410a 내지 410b)에 번갈아가며, 한번에 제5a도와 같은 방식으로 한번은 제5b도와 같은 방식으로 저장된다. 이와같이 함으로서, 연속한 블럭들의 데이타가 4개의 이중포트 램(410a 내지 410b)에 저장되고 전치되므로서 그 전치 과정에서의 데이타의 손실을 수반하지 않게 된다.
한편, 제4도을 재참조하면, 제1의 1차원 IDCT 회로(310)로부터 라인 DIN_EVEN와 DIN_ODD를 통해 쌍으로 입력되는 한 블럭의 데이타는 4개의 멀티플렉서(MUX)(420a 내지 420d)를 이용하여, 제5a와 5b도에 도시된 바와같이 번갈아가며 4개의 이중포트 램(410a 내지 410b)에 저장된다. 중간 행렬의 한쌍의 원소는 이중포트 램(410a 내지 410b)으로부터 멀티플렉서(430)를 통하여 제공되어 제3도에 도시된 제2의 1차원 IDCT 회로(330)에 연결된다. 그리고, 이번에는 데이타가 전치된 순서로 인출된다.
보다 상세하게, 제1열의 데이타, 즉, x00, x10, ... x70이 첫번째 4개의 리드클럭 사이클동안 인출된다. 한 열의 데이타는 한 행의 라이트 순서와 비슷한 방식으로 인출된다. 전술한 바와같이, 제4도에 도시된 라인 DOUT_EVEN과 DOUT_ODD상에 제공된 전치된 중간 행렬 데이타가 하기의 표 6에 정리되어 있다.
상기한 바와같이 순서를 제5a 및 5b도와 비교해 보면, 제5a도의 방식으로 저장된 데이타를 인출하기 위한 리드 어드레스열이 제5b도에 관련된 라이드 어드레스와 같고 또한 그 역도 성립한다는 것을 알 수 있다. 전술한 리드와 라이트 어드레스는 하기의 표7a와 7b에 절리되어 있다
전술한 바와같이, 데이타의 손실을 막기 위해 리드 사이클은 상기한 표 7b의 30번째 라이트 클럭 사이클에 시작한다. 중간 블럭의 29×2개의 데이타가 각 입력 라인 DIN_EVEN과 DIN_ODD를 통해 이중포트 램에 입력되어 저장된 후에, 전치된 중간 행렬의 첫번째 2개의 원소, 예를들어 x00과 x70이 라인 DOUT_EVEN과 DOUT_ODD를 통해 이중포트 램으로부터 인출된다. 하나의 어드레스의 데이타는 현재 중간 블럭의 원소가 라이트된 후에야 인출되고, 그 어드레스에 저장된 데이타는 해당 데이타가 인출된 후에야 다음 중간 행렬의 원소에 의해 대치되도록 리드와 라이트 클럭 사이클을 결정한다. 여기에서, x70은 29번째 라이트 클럭 사이클에 라이트되고 1번째 리드 클럭 사이클 또는 30번째 라이트 클럭 사이클에 인출된다는 것에 유의해야 한다. 그리고, 어드레스열은 전술한 리드와 라이트 동작을 수행할 수 있도록 생성된다.
다른한편, 제4도를 재참조하면, 2개의 어드레스 신호 즉, 리드 어드레스 RAD_EE와 라이트 어드레스 WAD_EE가 이중포트 램(410a 내지 410d) 각각으로 입력된다. 그리고, 라이트 인에이블 신호 WEN_EE는 해당 이중포트 램에 데이타를 라이트하는 것이 가능한지를 결정한다. 데이타가 이중포트 램에 라이트되지 않을때, 예를들어 상술한 표 5에 x로 표시된 경우에는 이중포트 램의 라이트 동작은 디스에이블되어 상관없이 데이타가 저장되지 않도록 한다. 그리고, 다양한 신호, 예를들어 RAD_EE, WEN_OE, WAD_OO 등은 제6도의 회로에서 생성된다. 여기에서, 제6도의 회로는 제3도에 도시된 제어기(340)에 포함될 수 있다.
한편, 제6도에 있어서의 리드/라이트 포인트 신호 생성기(705)는 클럭신호에 응답하여 리드 포인트 신호와 라이트 포인트 신호를 생성한다. 여기에서, 리드포인트 신호는 각 중간 행렬의 전치 메모리(320)로의 리드 동작의 시작을 나타내고, 라이트 포인트 신호는 각 중간 행렬의 라이트 동작의 시작을 나타낸다. 예를들어, 상술한 표 7a와 7b에서 라이트 포인트 신호는 1번째와 33번째 라이트 클럭 사이클에 인에이블되고, 리드 포인트 신호는 30번째 라이트 클럭 신호에 인에이블된다.
또한, 제6도에 도시된 회로는 8개의 어드레스 생성기(710a 내지 710d, 720a 내지 720d)를 구비하며, 그 각각은 괄호안에 명시된 어드레스열을 생성한다. 즉, 어드레스 생성기(HOR_AD_GEN1)(720a)와 어드레스 생성기(HOR_AD_GEN2)(720b)는 제5a도와 같이 데이타를 저장하기 위한 라이트 어드레스를 생성하고, 어드레스 생성기(HOR_AD_GEN1)(710a)와 어드레스 생성기(HOR_AD_GEN2)(710b)는 제5b도와 같이 저장된 데이타를 인출하기 위한 리드 어드레스를 생성한다. 마찬가지로, 어드레스 생성기(VER_AD_GEN1)(720c)와 어드레스 생성기(VER_AD_GEN2)(720d)는 제5b도와 같이 데이타를 저장하기 위한 라이트 어드레스를 생성하고, 어드레스 생성기(VER_AD_GEN1)(710c)와 어드레스 생성기(VER_AD_GEN2)(710d)는 제5a도와 같이 저장된 데이타를 인출하기 위한 리드 어드레스를 생성한다.
그리고, 리드 어드레스와 라이트 어드레스는, 전술한 바와같이, T 플립-플롭(T F/F)(712, 722)과 멀티플렉서(MUX)(715a 내지 715dM, 725a 내지 725d)를 이용하여 블럭단위로 번갈아가면서 생성된다. 리드 어드레스 신호 RAD_EE, RAD_EO, RAD_OE, RAD_OO와 라이트 어드레스 신호 WAD_EE, WAD_ED, WAD_OE, WAD_OO는 해당 이중포트 램에 제4도에 도시된 것과 같이 제공된다.
또한, 라이트 동작을 위해서, 라이트 인에이블 신호도 생성된다. 즉, 표 5에 제시된 것처럼, 4개의 이중포트 램 중 2개가 동시에 제6도에 도시된 인에이블 생성호로(740)를 이용하여 라이트 인에이블된다.
상술한 바와같이, 어드레스 신호와 인에이블 신호를 이용하여 전치된 중간 행렬은 제3도에 도시된 제2의 1차원 IDCT 회로(330)에 입력된다. 표 7a와 7b를 참조하면, 리드 데이타 또는 제2의 1차원 IDCT 회로(330)의 입력 데이타열은 제1의 1차원 IDCT회로(310)의 입력 데이타열과 다르다.
보다 상세하게, 제1의 중간 블럭의 데이타, 예를들어, x00, x60, x20, x40이 제2의 1차원 IDCT 회로(330)에 입력된다. 제2의 1차원 IDCT 회로(330)는 입력 데이타가 다른다는 것을 제외하고는 제1의 1차원 IDCT 회로(310)와 같은 동작을 수행한다.
따라서, 제2의 1차원 IDCT 회로(330) 또한 제1도에 도시된 것과 같은 구조로 만들어질 수 있다. 입력 벡터는 제1도의 레지스터/래치 블럭(111, 112)에 순차적으로 입력되어 저장되고 래치되므로, 제1도의 회로는 레지스터/래치 블럭(111, 112)을 제외하고는 제1의 1차원 IDCT 회로와 제2의 1차원 IDCT 회로에 대해 실질적으로 동일한 동작을 수행하기 된다.
이상 설명한 바와같이 본 발명에 따르면, 전술한 2차원 IDCT 회로를 이용하여, 2차원 IDCT는 1차원 IDCT의 결과를 전치하여 다시 1차원 IDCT 함으로서 얻을 수 있으므로, 실시간 처리 영상 처리 시스템에 적용되는 하드웨어의 복잡도를 줄일 수 있을 뿐만 아니라 IDCT 회로에 있어서의 IDCT 동작을 고속으로 수행할 수 있는 효과가 있다.

Claims (6)

  1. N/2 기수번째 입력 데이타와 N/W 서수번째 입력 데이타를 포함하는 N개의 입력 데이타에 대하여 역이산 코사인 변환 동작을 수행하여 N개의 출력 데이타를 제공하는 1차원 IDCT 회로에 있어서, 상기 서수번째 입력 데이타에 서수 IDCT 행렬을 곱하여 제1군의 N/2 중간 데이타를 제공하며, 상기 N/2 서수번째 입력 데이타에 서수 IDCT 행렬곱을 수행하기 위한 복수의 승산기와 복수의 가산기를 포함하는 제1승산 수단; 상기 기수번째 입력 데이타에 기수 IDCT 행렬을 곱하여 제2군의 N/2 중간 데이타를 제공하며, 상기 N/2 기수번째 입력 데이타에 기수 IDCT 행렬곱을 수행하기 위한 복수의 승산기와 복수의 가산기를 포함하는 제2승산 수단; 상기 제1군의 N/2 중간 데이타 각각과 이에 상응하는 상기 제2군의 N/2 중간 데이타 각각을 가산하여 제1의 N/2 출력 데이타를 제공하는 가산 수단; 및 상기 제2군의 N/2 중간 데이타 각각을 이에 상응하는 상기 제1군의 N/2 중간 데이타 각각으로부터 감산하여 제2의 N/2 출력 데이타를 제공하는 감산 수단으로 이루어진 것을 특징으로 하는 1차원 IDCT 회로.
  2. 제1항에 있어서, 상기 승산기는; 각각이 기수 또는 서수 IDCT 행렬에 포함된 기설정된 승산계수를 입력 데이타에 곱하며, 상기 입력 데이타가 음수인 경우 입력 데이타를 2의 보수로 변환시키는 수단; 상기 입력 데이타를 기설정된 수의 입력 비트군으로 나누는 수단; 그 각각이 입력 비트의 모든 가능한 조합에 대한 곱을 포함하고 상기 입력 비트군에 응답하여 상기 곱중 하나를 선택하는 기설정된 수의 PLA; 선택된 상기 곱을 더하여 승산 결과를 제공하는 수단; 기설정된 승산계수와 상기 입력 데이타의 부호에 근거하여 승산 결과의 부호를 결정하는 수단; 및 상기 승산 결과의 부호가 음수로 결정된 경우 그 승산 결과를 2의 보수로 변환하는 수단으로 구성된 것을 특징으로 하는 1차원 IDCT 회로.
  3. 제1항에 있어서, 상기 N은 8이고, 상기 서수 IDCT 행렬곱이 하기의 식으로 표시되며,
    상기 기수 IDCT 행렬곱이 하기의 식으로 표시되고,
    상기 제1의 중간 데이타군이 (x0+x7), (x1+x6), (x2+x5), (x3+x4)를 포함하고 상기 제2의 중간 데이타군이 (x0-x7), (x1-x6), (x2-x5), (x3-x4)를 포함(여기에서 (y0, y1, y2 ... y7)은 N 입력 데이타를 의미하고, (x0, x1, x2 ... x7)은 N 출력 데이타를 의미함)하는 것을 특징으로 하는 1차원 IDCT 회로.
  4. 제3항에 있어서, 상기 IDCT 행렬곱은
    로 변형되는 것을 특징으로 하는 1차원 IDCT 회로.
  5. N×N개의 입력 행렬에 행렬 분해법을 이용하여 IDCT 동작을 수행하여 N×N개의 출력 행렬을 제공하는 2차원 IDCT 회로에 있어서, (a) 상기 N×N 입력 행렬에 기설정된 IDCT 행렬을 곱함으로서 1차원 IDCT를 수행하여 N×N 중간 행렬을 제공하며, 그 각각이 IDCT 행렬에 포함된 기설정된 승산계수와 상기 N×N 입력 행렬에 포함된 승산기 입력을 곱하는 복수의 승산기를 포함하는 제1의 IDCT 회로; (b) N×N 전치 메모리; (c) 상기 N×N 중간 행렬을 상기 N×N 전치 메모리에 저장시키는 수단; (d) 상기 N×N 전치 메모리에 저장된 상기 N×N 중간 행렬의 전치에 기설정된 IDCT 행렬을 곱함으로서 1차원 IDCT를 수행하여 상기 N×N 출력 행렬을 제공하며, 그 각각이 IDCT 행렬에 포함된 기설정된 승산계수와 상기 N×N 중간 행렬에 포함된 승산기 입력 데이타를 곱하는 복수의 승산기를 포함하는 제2의 IDCT 회로; (e) 상기 N×N 전치 메모리에서 상기 N×N 중간 행렬의 전치를 인출하여 상기 제2의 IDCT 회로에 입력시키는 수단을 포함하며, 상기 제1, 제2의 IDCT 회로에 포함된 각각의 승산기는, (i) 상기 입력 데이타가 음수인 경우 입력 데이타를 2의 보수로 변환시키는 수단. (ii) 상기 입력 데이타를 기설정된 수의 입력 비트군으로 나누는 수단; (iii) 그 각각이 입력 비트의 모든 가능한 조합에 대한 곱을 포함하고 상기 입력 비트군에 응답하여 상기 곱중 하나를 선택하는 기설정된 수의 PLA ; (iv) 상기 선택된 곱을 더하여 승산 결과를 제공하는 수단; (v) 상기 기설정된 승산계수와 상기 입력 데이타의 부호에 근거하여 승산 결과의 부호를 결정하는 수단; (vi) 상기 승산결과의 부호가 음수로 결정된 경우 상기 승산 결과를 2의 보수로 변환하는 수단을 포함하는 것을 특징으로 하는 2차원 IDCT회로.
  6. 제5항에 있어서, 상기 N은 8이고, 상기 제1, 제2의 IDCT 회로를 위한 IDCT 행렬곱은,
    로 표시되며, 상기 제1의 IDCT 회로에 대해서는 (y0, y1, y2 .... y7)이 입력 행렬의 한 열을 나타내고 (x0, x1, x2 ... x7)이 중간 행렬의 한 열을 나타내고, 상기 제2의 IDCT 회로에 대해서는 (y0, y1, y2 .... y7)이 중간 행렬의 한 열을 나타내고 (x0, x1, x2 ... x7)이 출력 행렬의 한 열을 나타내는 것을 특징으로 하는 2차원 IDCT 회로.
KR1019940039965A 1994-12-30 1994-12-30 2차원 역이산 코사인 변환 회로 KR0154919B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940039965A KR0154919B1 (ko) 1994-12-30 1994-12-30 2차원 역이산 코사인 변환 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940039965A KR0154919B1 (ko) 1994-12-30 1994-12-30 2차원 역이산 코사인 변환 회로

Publications (2)

Publication Number Publication Date
KR960028494A KR960028494A (ko) 1996-07-22
KR0154919B1 true KR0154919B1 (ko) 1998-11-16

Family

ID=19405898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940039965A KR0154919B1 (ko) 1994-12-30 1994-12-30 2차원 역이산 코사인 변환 회로

Country Status (1)

Country Link
KR (1) KR0154919B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100930436B1 (ko) * 2002-10-17 2009-12-08 (주)휴맥스 홀딩스 이산 여현 역변환을 이용한 이미지 크기 재설정 방법

Also Published As

Publication number Publication date
KR960028494A (ko) 1996-07-22

Similar Documents

Publication Publication Date Title
EP0506111B1 (en) DCT/IDCT processor and data processing method
EP0353223B1 (en) Two-dimensional discrete cosine transform processor
KR0130772B1 (ko) 고속디지탈신호처리프로세서
NL1001663C2 (nl) Inrichting voor tweedimensionale discrete cosinustransformatie.
EP0650128B1 (en) Discrete cosine transform processor
KR0154919B1 (ko) 2차원 역이산 코사인 변환 회로
Divakara et al. High speed area optimized hybrid da architecture for 2d-dtcwt
Jang et al. A 0.8/spl mu/100-MHz 2-D DCT core processor
EP0720103A1 (en) Two-dimensional inverse discrete cosine transform circuit
Taylor et al. Design for the discrete cosine transform in VLSI
JP3046115B2 (ja) 離散コサイン変換器
WO2003009167A1 (fr) Procede de decomposition de matrice dct et dispositif dct
JPH08194686A (ja) 1次元および2次元逆離散的コサイン変換(idct)回路
JP3046116B2 (ja) 離散コサイン変換器
Demassieux et al. Orthogonal transforms
KR100575285B1 (ko) 고속의 저전력 이산 코사인 변환 장치 및 방법
KR20000013653A (ko) 정/역 최적화 정수형 여현변환장치 및 그 방법
JP3652717B2 (ja) 離散コサイン高速演算器
KR100350943B1 (ko) 분포연산방식을 이용한 고속 dct 연산회로
JP3575991B2 (ja) 直交変換回路
Hsiao et al. New hardware-efficient algorithm and architecture for the computation of 2-D DCT on a linear systolic array
KR0130441B1 (ko) 2차원 이산 코사인 변환기
Kamran et al. MSDCT architecture implementation with DA based optimized LUT
JPH06274524A (ja) 直交変換回路および逆変換回路
JP3397838B2 (ja) 画像処理装置及び離散コサイン変換方法

Legal Events

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

Payment date: 20010629

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee