[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR0150350B1 - 직교변환 프로세서 - Google Patents

직교변환 프로세서

Info

Publication number
KR0150350B1
KR0150350B1 KR1019950010314A KR19950010314A KR0150350B1 KR 0150350 B1 KR0150350 B1 KR 0150350B1 KR 1019950010314 A KR1019950010314 A KR 1019950010314A KR 19950010314 A KR19950010314 A KR 19950010314A KR 0150350 B1 KR0150350 B1 KR 0150350B1
Authority
KR
South Korea
Prior art keywords
input
output
result
register
outputting
Prior art date
Application number
KR1019950010314A
Other languages
English (en)
Other versions
KR950033919A (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 모리시다 요이치
Publication of KR950033919A publication Critical patent/KR950033919A/ko
Application granted granted Critical
Publication of KR0150350B1 publication Critical patent/KR0150350B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

8포인트 IDCT처리를 위한 8행 8열의 역이산 코사인 행렬중의 상4행의 각 요소의 절대치를 구성요소로한 4행 8열의 행렬의 각 8행의 8개요소를 4개의 계수메모리에 각각 격납한다. 입력요소 yij가 4개의 승산기에 병렬로 공급된다. 4개의 승산기는 4개의 계수메모리중의 대응하는 계수메모리의 출력과 입력요소 yij와의 승산을 각각 실행한다. 8개의 누산기는 직교변환행렬의 계수의 부호를 복원하면서 4개의 승산기의 결과를 사용하여 8개의 내곱을 구하기 위한 누산을 병렬로 실행한다. 8입력셀렉터는 8개의 누산기의 결과를 차례로 선택하여 입력요소 yij에 대응한 내곱 Wij를 출력한다.

Description

직교변환 프로세서
제1도는 본 발명에 관한 IDCT프로세서에 의해 실행되어야 할 행렬연산을 표시하는 도면.
제2도는 제1도 행렬연산의 1개의 실행수순을 표시하는 도면.
제3도는 제2도의 수순으로 사용되는 계수행렬을 표시하는 도면.
제4도는 제3도의 계수행렬을 채용한 본 발명 제1실시예에 관한 IDCT프로세서의 구성도.
제5도는 제4도 중 1개 누산기의 내부구성도.
제6도는 제5도 누산기의 변형예를 표시하는 도면.
제7도는 제1도 행렬연산의 다른 실행수순을 표시하는 도면.
제8도는 제7도의 수순으로 사용되는 계수행렬을 표시하는 도면.
제9도는 제8도의 계수행렬을 채용한 본 발명 제2실시예에 관한 IDCT프로세서의 구성도.
제10도는 제1도의 행렬연산의 일부를 표시하는 도면.
제11도는 본 발명의 제3실시예에 관한 IDCT프로세서의 구성도.
제12도는 제11도중 입력버퍼의 내부구성도.
제13도는 제11도중 정수승산회로의 내부구성도.
제14도는 제11도중 분포연산회로의 내부구성도.
제15도는 제10도의 행렬연산을 실행하기 위한 제14도중 1개의 6비트입력RAC 내부구성도.
제16도는 제11도중 합성연산회로의 내부구성도.
제17도는 제13도 정수승산회로의 변형예를 표시하는 도면.
제18도는 제17도의 정수승산회로를 채용한 IDCT프로세서에 있어서 합성연산회로의 내부구성도.
제19도는 제10도에서 도출된 행렬연산을 표시하는 도면.
제20도a 및 제20도b는 제19도에서 분할된 2개의 행렬연산을 표시하는 도면.
제21도는 제14도 분포연산회로의 변형예를 표시하는 도면.
제22도는 제20도b의 행렬연산을 실행하기 위한 제21도중 1개의 4비트입력RAC의 내부구성도.
제23도는 제20도a의 행렬연산을 실행하기 위한 제21도중 1개이 2비트입력RAC의 내부구성도.
[발명의 배경]
본 발명은 화상정보처리에 호적하게 이용되는 직교화 프로세서에 관한 것이다.
최근, 2차원 화상테이터의 고능률 압축부호화 방식의 중요한 일부분으로 직교변환을 실현하는 소규모의 회로가 요구되고 있다. 부호기에서는 순방향의 직교변환, 예를 들면 이산코사인변환(discrete cosine transform ; 약하여 DCT), 이산사인변환(discrete sine transform ; 약하여 DST),등이 이용된다. 복호기에서는 역방향의 직교변환, 예를 들면 역이산코사인변환(inverse discrete cosine transform ; 약하여 IDCT), 역이산사인변환(inverse discrete cosine transform ; 약하여 IDST) 등이 이용된다.
미국특허 4,791,598에는 2개의 1차원DCT프로세서와, 그 사이에 개재한 전치메모리로서 구성된 2차원DCT프로세서가 개시되어 있다. 2개의 1차원DCT프로세서 각각은 승산기를 사용하지 않고 ROM(read only memory)을 사용하여 백터내곱을 구하기 위한 분포연산(distributed arithmetic ; 약하여 DA)회로를 내장한 것이다. DA회로는 복수개의 ROM/누산기(ROM and accumulator ; 약하여 RAC)를 구비하고 있다. 각 RAC는 이산코사인 행렬에 의거하는 벡터내곱의 부분합을 루크업테이블 형식으로 격납한 ROM과 이 ROM에서 비트슬라이스워드를 어드레스로서 차례로 색인된 부분합을 자리수를 합쳐 가산하여 입력벡터에 대응하는 벡터내곱을 얻기 위한 누산기를 갖는 것이다. 이와 같은 2차원DCT프로세서의 구성은 2차원 IDCT프로세서에 전용가능하다.
8×8요소로 이루어지는 입력데이터에 2차원 IDCT처리를 시행하는 것으로 한다. 입력데이터는 요소yij(i=1∼7, j=0∼7)를 갖는 8행8열의 행렬Y로 표시된다. 또, 8행8열이 역이산코사인 행렬D를 행각한다. 행렬D의 각 요소Dij는,
이다. 행렬Y의 2차원 IDCT는 DYDT이다. 여기서 DT는 행렬D의 전치행렬이다. 행렬Y의 1차원 IDCT 즉 행렬곱DY를 계산하기 위한 1차원 IDCT프로세서와, 전치수단을 사용하면, 중간행렬 X=(DY)T를 쉽게 구할 수 있다. 최종결과 DYDT도 동일하게 하여 구할 수 있다. 왜냐하면 DYDT=(D(DY)T)T=(DX)T이기 때문이다. 즉, 행렬곱DY를 계산하기 위한 1차원 IDCT프로세서는 2차원 IDCT를 실현하는 데서 중요한 역할을 담당하고 있다.
행렬Y의 제j열에 관한 IDCT결과는 8행8열의 행렬W의 제j열에 표시된다. 여기서 행렬W의 각 요소Wij는,
이다. 요소Wij는 행렬D의 제i행과 행렬Y의 제j열과의 내곱이고, 8개 곱의 합이다. 이 요소Wij를 구하는 처리는 8포인트 IDCT처리라고 한다.
8개의 승산기와 8개의 누산기를 구비한 1차원 IDCT프로세서에 의하면, 행렬W의 제j열을 구성하는 8개의 내곱 W0j,W1j,W2j,W3j,W4j,W5j,W6j,W7j.를 병렬로 계산할 수 있다. 여기서,
이다.
상기 8개의 승산기를 구비한 1차원 IDCT프로세서는 VLSI(very large scale integration)로의 실장에 즈음하여 승산기가 칩상의 큰 면적을 점유하는 문제가 있었다.
또, 식(3)에서 표시된 8개 내곱의 병렬계산을 상기 종래의 DA회로로 실현하는 경우에는 큰 ROM사이즈를 요한다고 하는 문제가 있었다.
[발명의 개요]
본 발명의 목적은 1차원 IDCT프로세서등 직교변환프로세서의 회로규모를 저감하는데 있다.
이 목적을 달성하기 위해 본 발명에 관한 제1직교변환프로세서는 역이산코사인 행렬이나 역이산사인행렬 요소의 규칙성에 감안하여 승산기의 갯수를 저감하고, 각 승산기의 결과를 복수의 누산기에 분배하는 것으로 한 것이다. 이 직교변환프로세서에 의하면, 예를들면 8포인트 IDCT처리의 경우에 종래는 8개의 승산기를 요하였으나, 승산기수가 4또는 3으로 저감된다.
또, 본 발명에 관한 제2직교변환프로세서는 복수 내곱계산의 각각을 2개의 정수승산과 1개 부분내곱의 계산으로 분할하고, 2개의 정수승산을 정수승산회로로 실행하는 것으로 한 것이다. 게다가, 복수개의 부분내곱의 계산을 DA회로로 병렬실행하는 것으로 하였다. 이 직교변환프로세서에 의하면, 정수승산회로중 2개 또는 1개의 승산기를 요할 뿐이다. 또, 내곱계산의 일부가 정수승산회로로 실행되므로, DA회로의 ROM사이즈가 저감된다.
[실시예]
이하, 도면을 참조하여 본 발명의 실시예에 관한 1차원 IDCT프로세서에 대해 설명한다.
[실시예1]
우선, tn(n=0∼7)을,
와 같이 정의한다. 그러면, 상기 식(3)에 표시된 8개의 내곱계산은 코사인 함수의 대칭성을 이용하여, 제1도와 같이 표현된다.
제1도의 행렬연산에서는 부호(±)를 도외시하면, y0j에 곱하여야 할 계수는 t0이고, yij에 곱하여야 할 계수는 t1,t3,t5,t7이며, y2j에 곱해야 할 계수는 t2,t6이고, y3j에 곱해야 할 계수는 t3,t7,t1,t5이고, y4j에 곱해야 할 계수는 t4이고, y5j에 곱해야 할 계수는 t5,t1,t7,t3이고, y6j에 곱해야 할 계수는 t6,t2이고, y7j에 곱해야 할 계수는 t7,t5,t3,t1이다. 따라서, 제2도에 표시하는 것과 같이, 입력데이터 8개의 요소 yij(i=0∼7)가 차례로 공급될 때, 1사이클에 최대 4개의 승산을 실행하면 된다. 제2도의 수순에서 사용되는 계수행렬E을 제3도에 표시한다. 계수행렬E는 제1도중 8행8열의 역이산코사인 행렬중 제0행에서 제3행까지 각 요소의 절대치를 구성요소로 한 4행4열의 행렬이다.
본 발명의 제1실시예에 관한 1차원 IDCT프로세서의 구성을 제4도에 표시한다. 이 구성은 제3도의 계수행렬E을 채용한 것이다. 제4도에 있어서, 101∼104는 제1∼제4의 계수메모리, 105∼108은 제1∼제4의 승산기, 109∼116은 제1∼제8의 누산기, 117은 8입력셀렉터이다. 제1계수메모리(101)에는 행렬E의 제0행의 8개의요소가, 제2계수메모리(102)에는 행렬E의제1행의 8개의 요소가, 제3계수메모리(103)에는 행렬E의 제2행의 8개의요소가, 제4계수메모리(104)에는 행렬E의제3행의 8개의 요소가 각각 격납되어 있다. 입력단자에서 2의 보수표시의 2진수데이터yij(i=0∼7, j=0∼7)가, y0∼y70, y1∼y71,…,y7∼y77의 순서로 제1∼제4의 승산기(105∼108)에 공급된다. 제1승산기(105)는 yij와 제1계수메모리(101) 출력과의 승산을, 제2승산기(106)는 yij와 제2계수메모리(102)의 출력과의 승산을, 제3승산기(107)는 yij와 제3계수메모리(103) 출력과의 승산을, 제4승산기(108)는 yij와 제4계수메모리(104)의 출력과의 승산을 각각 실행하는 것이다. 제1∼제8의 누산기(109∼116)는 제1∼제4의 승산기(105∼108)의 결과를 사용하여 8개의 내곱 w0j, w1j,w2j,w3j,w4j,w5j,w6j,w7j,를 구하기 위한 누산을 병렬로 실행하는 것이다. 8입력셀렉터(117)는 제1∼제8의 누산기(109∼116)의 결과를 차례로 선택하여 데이터 wij(i=0∼7,j=0∼7)을 w0∼w70, w1∼w71,…,w7∼w77의 순서로 출력하는 것이다.
제4도중 wij를 구하기 위한 누산기(110)의 내부구성을 제5도에 표시한다. 제5도에 있어서, 201은 4입력셀렉터, 202는 2의 보수기, 203은 가산기, 204는 누산레지스터, 205는 버퍼레지스터이다. 4입력셀렉터(201)는 제1∼제4의 승산기(105∼108)결과 중 1개를 선택하는 것이다. 2의 보수기(202)는 I값에 따라 4입력셀렉터(201)의 출력을 그대로 통과시키거나, 4입력셀렉터(201)출력의 2의 보수기를 출력하거나 하는 것이다. 구체적으로는, 제1도 중 역이산코사인 행렬중의 제1행 (t0,t3,t6, -t7, -t4, -t1, -t2, -t5)과 입력데이터벡터( y0j,y1j,y2j,y3j,y4j,y5j,y6j,y7j.)와의 내곱wij의 계산에 대응하여, I=0, 1, 2의 사이클에서는 4입력셀렉터(201)의 출력을 그대로 통과시켜, I=3, 4, 5, 6, 7의 사이클에서는 4입력셀렉터(201)출력의 2의 보수를 출력하도록 제어된다. 데이터의 2의 보수는 x의 모든 비트를 반전시키고 나서, 1을 가산하는 것에 의해 구할 수 있다. 가산기(203)는 2의 보수기(202)의 결과에 누산레지스터(204)의 유지출력과의 합을 구하는 것이다. 누산레지스터(204)의 유지내용은 미리0으로 초기화된 후에 가산기(203)의 결과로 기록된다. 버퍼레지스터(205)는 당해 1차원 IDCT프로세서의 파이프라인 동작을 보증하도록 누산레지스터(204)의 출력을 유지하는 것이다. 제4도중 다른 누산기의 내부구성도 제5도와 동일하다.
이하, 제4도 및 제5도에 의거하여 본 발명의 제1실시예에 관한 1차원 IDCT프로세서의 동작을 설명한다.
제1사이클에서는 입력단자에서 데이터y0가 공급된다. 한편, 계수메모리(101∼104)에서 각각t0,t0,t0,t0,가 판독되고, 승산기(105∼108)에 의해 4개의 곱 t0y0, t0y0, t0y0, t0y0,이 병렬로 계산된다. 다음은 누산기(109∼116)의 4입력셀렉터(201)에 의해, 4개의 승산기(105∼108)의 결과 중 1개가 각각 선택된다. 이 경우, 4개 승산기(105∼108)의결과는 모두 같으므로 어느것을 선택하여도 된다. 누산기(109∼116)의 2의 보수기(202)는 각각 4입력셀렉터(201)의 출력을 그대로 통과시킨다. 누산기(109∼116)의 가산기(203)는 2의 보수기(202)의 결과와, 미리 0으로 초기화된 누산레지스터(204)의 출력과의 합을 계산하고, 그 가산결과를 누산레지스터(204)에 각각 기록한다. 이 결과,누산기(109∼116)의 모든 누산레지스터(204)에 같은 곱t0y0가 격납된다.
제2사이클에서는 입력단자에서 데이터y10이 공급된다. 한편, 계수메모리((101~104)에서 각각 t1, t3, t5, t7이 판독되고, 승산기(105~108)에 의해 4개의 곱t1y10, t3y10, t5y10, t7y10이 병렬로 계산된다. 다음은 누산기(109~116)의 4입력셀렉터(201)에 의해, 4개 승산기(105~108)의 결과 중 1개가 각각 선택된다. 이 경우, 제 1 누산기(109)에서는 제 1 승산기(105)의 결과t1y10이, 제 2 누산기(110)에서는 제 2 승산기(106)의 결과t3y10이, 제 3 누산기(111)에서는 제 3 승산기(107)의 결과 t5y10이, 제 4 누산기(112)에서는 제 4 승산기(108)의 결과 t7y10이, 제 5 누산기(113)에서는 제 4 승산기(108)의 결과t7y10이, 제 6 누산기(114)에서는 제 3 승산기(107)의 결과t5y10이, 제 7 누산기(115)에서는 제 2 승산기(106)의 결과t3y10이, 제 8 누산기(116)에서는 제 1 승산기(105)의 결과t1y10이 각각 선택된다.
제 1~제 4 누산기(109~112)의 2의 보수기(202)는 각각 4입력셀렉터(201)의 출력을 그대로 통과시킨다. 제 5 ~ 제 8 누산기(113~116)의 2의 보수기(202)는 각각 4입력셀렉터(201)의 출력의 2의 보수를 출력한다. 누산기(109~116)의 가산기(203)는 2의 보수기(202)의 결과와 누산레지스터(204)의 출력과의 합을 계산하고 그 가산결과를 누산레지스터(204)에 각각 기록한다. 이 결과, 제 1 누산기(109)에서는 t0y0+ t1y10이, 제 2 누산기(110)에서는 t0y0+ t3y10이, 제 3 누산기(111)에서는 t0y0+ t5y10이, 제 4 누산기(112)에서는 t0y0+ t7y10이, 제 5 누산기(113)에서는 t0y0- t7y10이, 제 6 누산기(114)에서는 t0y0- t5y10이, 제 7 누산기(115)에서는 t0y0- t3y10이, 제 8 누산기(116)에서는 t0y0- t1y10이 각각 누산레지스터(204)에 격납된다.
제 3에서 제 8 사이클에서는 입력단자에서 데이터y20, y30, y50, y60, y70이 차례로 공급된다. 따라서, 제 8 사이클의 마지막에는 누산기(109~116)의 누산레지스터(204)에, 8개의 내곱ω0, ω10, ω20, ω30, ω40, ω50, ω60, ω70이 격납된다.
제 9 사이클에서는 입력단자에서 데이터y1이 공급되어 상기 제 1 사이클과 같은 처리가 실행되는 동시에 누산기(109~116)의 누산레지스터(204)의 유지내용ω0, ω10, ω20, ω30, ω40, ω50, ω60, ω70버퍼레지스터(205)에 각각 전송된다. 그리고, 8입력셀렉터(117)는, 제 1 누산기(109)의 출력ω0을 선택출력한다.
제 10 사이클에서는 입력단자에서 데이터y11이 공급되어, 상기 제 2 사이클과 같은 처리가 실행된다. 8입력셀렉터(117)는 제 2 누산기(110)의 출력ω10을 선택출력한다.
이하 같은 처리를 반복하는 것에 의해, 연속적으로 공급되는 입력데이타y0~y70, y1~y71, …, y7~y77에 대응한 출력데이터ω070, ω171, …, ω777을 연속하여 얻을 수 있다.
제 5 누산기(110)의 변형예를 제6도에 표시한다. 제6도의 예에서는 상기 2의 보수기(202)에 대신하여 1의 보수기(212)가 사용된다. 1의 보수기(212)는 상기 i값에 따라서 4입력셀렉터(201)의 출력을 그대로 통과시키거나, 4입력셀렉터(201)출력의 1의 보수를 출력하거나 하는 것이다. 구체적으로는, 제1도중의 역이산코사인행렬 중 제1행(t0, t3, t6, -t7, -t4, -t1, -t2, -t5)과 입력데이터 벡터(y0j, y1j, y2j, y3j, y4j, y5j, y6j, y7j)와의 내곱ωij의 계산에 대응하여 i = 0, 1, 2의 사이클에서는 4입력셀렉터(201)의 출력을 그대로 통과시켜, i= 3, 4, 5, 6, 7의 사이클에서는 4입력셀렉터(201)출력의 1의 보수를 출력하도록 제어된다. 데이터x의 1의 보수는, x의 모든 비트를 반전시키는 것에 의해 구할 수 있다. 누산레지스터(204)의 초기치는 상기 역이산코사인 행렬의 제1 행을 구성하는 8개의 요소중 부요소의 수 즉 5로 설정된다.
이상과 같이, 제 1 실시예에 의하면 승산기수가 4로 저감된 1차원 IDCT프로세서를 실현할 수 있다. 또한, 누산기(109~116)의 4입력셀렉터(201)(제 5도 및 제6도)를 약하여 고정배선을 채용하여도 된다.
이 경우, 제 1 및 제8의 누산기(109, 106)로는 제1의 승산기(105)의 결과만이 제2 및 제7의 누산기(110, 115)로는 제 2 승산기(106)의 결과만이 제3 및 제6의 누산기(111, 114)로는 제3의 승산기(107)의 결과만이 제4 및 제5의 누산기(112, 113)로는 제 4 승산기(108)의 결과만이 각각 공급된다.
[실시예 2]
제1도는 행렬연산을 수행하기 위해서는 제2도에 표시하는 것과 같이 8사이클로 22개의 승산을 실행할 필요가 있다. 1사이클 평균승산갯수는 2.75이다.
그래서, 제2 실시예에서는 제7도에 표시하는 것과 같이 입력데이터 8개의 요소yij(i=0~7)가 차례로 공급될 때, 1 사이클에 최대 3개의 승산을 실행하는 것으로 하였다. 그 때문에, 입력요소를 유지하기 위한 레지스터를 설치하고 어느 사이클의 입력요소에 가하여 전사이클의 입력요소를 이용할 수 있도록 하였다.
즉, 어느 사이클에서는 제1군의 계수t1, t0과 요소y1, y0j와의 승수가 다음의 사이클에서는 제2군의 계수t3, t5, t7과 요소y1j와의 승산이 다음의 사이클에서는 제3군의 계수t3, t2, t6과 요소y3j, y2j와의 승산이, 다음의 사이클에서는 제4군의 계수t7, t1, t5와 요소y3j와의 승산이, 다음의 사이클에서는 제5군의 계수t5, t4와 요소y5j, y4j와의 승산이, 다음의 사이클에서는 제6군의 계수t1, t7, t3과 요소y5j와의 승산이 다음의 사이클에서는 제7군의 계수t7, t6, t2와 요소y7j, y6j와의 승산이, 다음의 사이클에서는 제 8군의 계수t5, t3, t1과 요소y7j와의 승산이 각각 실행된다. 제7도의 수순으로 사용되는 계수행렬G를 제8도에 표시한다. 계수행렬G는 상기 제1군의 계수를 포함하는 3개의 계수t1, t0, t0을 갖는 제0열과, 상기 제2군의 계수t3, t5, t7을 갖는 제1열과, 상기 제3군의 계수t3, t2, t6을 갖는 제2열과, 상기 제4군의 계수t7, t1, t5를 갖는 제3열과, 상기 제5군의 계수를 포함하는 3개의 계수t5, t4, t4를 갖는 제4열과, 상기 제6군의 계수t1, t7, t3을 갖는 제5열과, 상기 제7군의 계수t7, t6, t2를 갖는 제6열과, 상기 제8군의 계수t5, t3, t1을 갖는 제7열에서 구성된 3행 8열의 행렬이다.
본 발명의 제2 실시예에 관한 1차원 IDCT프로세서의 구성을 제9도에 표시한다. 이 구성은, 제8도의 계수행렬G를 채용한 것이다 .제9도에 있어서301은 입력레지스터, 302~304는 제1 ~ 제3의 계수메모리, 305는 2입력셀렉터, 306~308은 제1~제3승산기, 309는 일시 레지스터, 310~317은 제1~제8의 누산기, 318은 8입력셀렉터이다. 제1 계수메모리(302)에는 행렬G의 제0행 8개의 요소가, 제2 계수메모리(303)에는 행렬G의 제1행 8개의 요소가, 제3 계수메모리(30)에는 행렬G의 제2행의 8개의 요소가 각각 격납되어 있다. 입력단자에서, 2의 보수표시의 2진수 데이터yij(i=0~7, i=0~7)이 y0~y70, y1~y71,…, y7~y77의 순서로, 입력레지스터(301) 및 2입력셀렉터(305)에 공급된다. 2입력셀렉터(305)는 입력단자에서 직접공급된 데이터와 입력레지스터(301)의 출력데이터와의 어느건가를 선택하는 것이다. 제 1 승산기(306)는 2입력셀렉터(305)의 출력과 제 1 계수메모리(302)의 출력과의 승산을, 제 2 승산기(307)는 입력레지스터(301)의 출력과 제 2 계수메모리(303)의 출력과의 승산을, 제 3 승산기(308)는 입력레지스터(301)의 출력과 제 2 계수메모리(304)의 출력과의 승산을 각각 실행하는 것이다. 일시 레지스터(309)는 제 1 승산기(306)의 출력을 일시유지하는 것이다. 제1~제 8 누산기(310~317)는 일시 레지스터(309)의 출력데이터와 제1 ~ 제 3 승산기(306~308)의 결과를 사용하여 8개의 내곱ω0j, ω1j, ω2j, ω3j, ω4j, ω5j, ω6j, ω7j,를 구하기 위한 누산을 병렬로 실행하는 것으로, 각각의 내부구성은 제5도 또는 제6도와 같다. 8입력셀렉터(318)는, 제1 ~ 제 8 누산기(310~317)의 결과를 차례로 선택하여, 데이터ωij(i=0~7,j=0~7)을, ω070, ω171, ..., ω777을 순서로 출력하는 것이다.
이하, 제9도 및 제5도에 의거하여, 본 발명의 제2실시예에 관한 1차원 IDCT프로세서의 동작을 설명한다.
제1 사이클에서는 입력단자에서 데이터y0이 공급된다. 더욱이, 제1사이클의 마지막에서 상기 데이터y0이 입력레지스터(301)에 기록된다.
제2 사이클에서는 입력단자에서 데이터y10이 공급되고, 상기 데이터y10이 2입력셀렉터(305)에 의해 선택된다. 한편, 계수메모리(302~304)에서 각각 t1,t0, t0이 판독되고, 승산기(306~308)에 의해 3개의 곱t1y10, t0y0, t0y0이 병렬로 계산된다. 다음에, 누산기(310~317)의 4입력셀렉터(201)에 의해, 제2 및 제3의 승산기(307,308)의 결과 중 1개가 각각 선택된다. 이 경우, 제2 및 제3의 승산기(307,308)의 결과는 동일하므로, 어느것을 선택하여도 좋다. 누산기(310~317)의 2의 보수기(202)는 각각 4입력셀렉터(201)의 출력을 그대로 통과시킨다. 누산기(310~317)의 가산기(203)는, 2의 보수기(202)의 결과와, 미리 0으로 초기화된 누산레지스터(204)의 출력과의 합을 계산하고, 그 가산결과를 누산레지스터(204)에 각각 기록한다. 이 결과, 누산기(310~317) 모든 누산레지스터(204)에 같은 곱t0y0이 격납된다. 더욱이, 제2사이클의 마지막에서 데이터y10이 입력레지스터(301)에 기록되고, 또한 제 1 승산기(306)의 결과t1y10이 일시 레지스터(309)에 기록된다.
제3 사이클에서는 입력단자에서 데이터y20이 공급된다. 2입력셀렉터(305)는 입력레지스터(301)의 출력데이터y10을 선택한다. 한편, 계수메모리(302~304)에서 각각 t3,t5, t7이 판독되고, 승산기(306~308)에 의해 3개의 곱t3y10, t5y10,t7y10이 병렬로 계산된다. 다음은, 누산기(310~317)의 4입력셀렉터(201)에 의해,일시 레지스터(309)의 출력데이타와 3개의 승산기(306~308)의 결과 중 1개가 각각 선택된다. 이 경우, 제 1 누산기(310)에서는 일시 레지스터(309)의 출력데이터t1y10이, 제 2 누산기(311)에서는 제 1 승산기(306)의 결과 t3y10이, 제 3 누산기(312)에서는 제 2 승산기(307)의 결과t5y10이, 제 4 누산기(313)에서는 제 3 승산기(308)의 결과t7y10이, 제 5 누산기(314)에서는 제 3 승산기(308)의 결과t7y10이 제 6 누산기(315)에서는 제 2 승산기(307)의 결과t5y10이, 제 7 누산기(316)에서는 제 1 승산기(306)의 결과t3y10이, 제 8 누산기(317)에서는 일시 레지스터(309)의 출력데이터t1y10이 각각 선택된다. 제 1 ~ 제 4 누산기(310~313)의 2의 보수기(202)는 각각 4입력셀렉터(201)의 출력을 그대로 통과시킨다. 제 5 ~ 제 8 누산기(314~317)의 2의 보수기(202)는 각각 4입력셀렉터(201) 출력의 2의 보수를 출력한다. 누산기(310~317)의 가산기(203)는 2의 보수기(202)의 결과와 누산레지스터(204)의 출력과의 합을 계산하고, 그 가산결과를 누산레지스터(204)에 각각 기록한다. 이 결과, 제 1 누산기(310)에서는 t0y0+ t1y10이, 제 2 누산기(311)에서는 t0y0+ t3y10이, 제 3 누산기(312)에서는 t0y0+ t5y10이, 제 4 누산기(313)에서는 t0y0+ t7y10이, 제 5 누산기(314)에서는 t0y0- t7y10이, 제 6 누산기(315)에서는 t0y0- t5y10이, 제 7 누산기(316)에서는 t0y0- t3y10이, 제 8 누산기(317)에서는 t0y0- t1y10이 각각 누산레지스터(204)에 격납된다. 더욱이,제 3 사이클의 마지막에서 데이터y20이 입력레지스터(301)에 기록되고, 또한 제 1 승산기(306)의 결과t3y10이 일시 레지스터(309)에 기록된다.
제4 사이클에서는 입력단자에서 데이터y30이 공급되고, 상기 데이터y30이 2입력셀렉터(305)에 의해 선택된다. 한편, 계수메모리(302~304)에서 각각 t3, t2, t6,이 판독되고, 승산기(306~308)에 의해 3개의 곱t3y30, t2y20,t6y20이 병렬로 계산된다. 다음은, 누산기(310~317)의 4입력셀렉터(201)에 의해, 제 2 및 제 3 승산기(307,308)의 결과중 1개가 각각 선택된다. 이 경우, 제 1, 제 4, 제 5 및 제 8 누산기(310,313,314,317)에서는 제 2 승산기(307)의 결과t2y20이, 제 2 ,제 3, 제 6 및 제 7 누산기(311,312,315,316)에서는 제 3 승산기(308)의 결과t6y20이 각각 선택된다. 제 1, 제 2, 제7 및 제 8 누산기(310,311,316,317)의 2의 보수기(202)는, 각각 4입력셀렉터(201)의 출력을 그대로 통과시킨다. 제 3 ~ 제 6 누산기(312~315)의 2의 보수기(202)는 각각 4입력셀렉터(201) 출력의 2의 보수를 출력한다. 누산기(310~317)의 가산기(203)는 2의 보수기(202)의 결과와 누산레지스터(204)의 출력과의 합을 계산하고, 그 가산결과를 누산레지스터(204)에 각각 기록한다. 이 결과 제 1 누산기(310)에서는 t0y0+ t1y10+ t2y20이, 제 2 누산기(311)에서는 t0y0+ t3y10+ t6y20이 제 3 누산기(312)에서는 t0y0+ t5y10- t6y20이, 제 4 누산기(313)에서는 t0y0+ t7y10- t2y20이, 제 5 누산기(314)에서는 t0y0- t7y10- t2y20이, 제 6 누산기(315)에서는 t0y0- t5y10- t6y20이, 제 7 누산기(316)에서는 t0y0- t3y10+ t6y20이, 제 8 누산기(317)에서는 t0y0- t1y10+ t2y20이 각각 누산레지스터(204)에 격납된다. 더욱이, 제 4 사이클 마지막에서 데이터y30이 입력레지스터(301)에 기록되고, 제 1 승산기(306)의 결과t3y30이 일시 레지스터(309)에 기록된다. 제 5 사이클에서는 입력단자에서 데이터y40이 공급된다. 2입력셀렉터(305)는 입력레지스터(301)의 출력데이터y30을 선택한다. 한편, 계수메모리(302~304)에서 각각 t7, t1, t5가 판독되고, 승산기(306~308)에 의해 3개의 곱t7y30,t1y30, t5y30이 병렬로 계산된다. 다음은 누산기(310~317)의 4입력셀렉터(201)에 의해, 일시 레지스터(309)의 출력데이터와 3개의 승산기(306~308)의 결과 중 1개가 각각 선택된다. 이 경우, 제 1 누산기(310)에서는 일시 레지스터(309)의 출력데이터t3y30이, 제 2 누산기(311)에서는 제 1 승산기(306)의 결과t7y30이, 제 3 누산기(312)에서는 제 2 승산기(307)의 결과t1y30이, 제 4 누산기(313)에서는 제 3 승산기(308)의 결과t5y30이, 제 5 누산기(314)에서는 제 3 승산기(308)의 결과t5y30이, 제 6 누산기(315)에서는 제 2 승산기(307)의 결과t1y30이, 제 7 누산기(316)에서는 제 1 승산기(306)의 결과t7y30이, 제 8 누산기(317)에서는 일시 레지스터(309)의 출력데이터t3y30이 각각 선택된다. 제 1, 제 5, 제 6, 제 7 누산기(310,314,315,316)의 2의 보수기(202)는 각각 4입력셀렉터(201)의 출력을 그대로 통과시킨다. 제 2, 제 3, 제 4 및 제 8 누산기(311,312,313,317)의 2의 보수기(202)는 각각 4입력셀렉터(201)의 출력 2의 보수를 출력한다. 누산기(310~317)의 가산기(203)는 2의 보수기(202)의 결과와 누산레지스터(204)의 출력과의 합을 계산하고, 그 가산결과를 누산레지스터(204)에 각각 기록한다. 이 결과, 제 1 누산기(310)에서는 t0y0+ t1y10+ t2y20- t3y30이, 제 2 누산기(311)에서는 t0y0+ t3y10+ t6y20- t7y30이, 제 3 누산기(312)에서는 t0y0+ t5y10- t6y20- t1y30이, 제 4 누산기(313)에서는 t0y0+ t7y10- t2y20- t5y30이, 제 5 누산기(314)에서는 t0y0- t7y10- t2y20- t5y30이, 제 6 누산기(315)에서는 t0y0- t5y10- t6y20+ t1y30이, 제 7 누산기(316)에서는 t0y0- t3y10+ t6y20+ t7y30이, 제 8 누산기(317)에서는 t0y0- t1y10+ t2y20- t3y30이, 각각 누산레지스터(204)에 격납된다. 더욱이, 제 5 사이클 마지막에 데이터y40이 입력레지스터(301)에 기록되고, 또한 제 1 승산기(306)의 결과t7y30이 일시 레지스터(309)에 기록된다.
제6에서 제9 사이클에서는 입력단자에서 데이터y50, y60, y70, y1이 차례로 공급된다. 따라서, 제9 사이클 마지막 누산기(310~317)의 누산레지스터(204)에, 8개의 내곱ω010203040506070이 격납된다. 게다가 제9 사이클 마지막에서 데이터y1이 입력레지스터(301)에 기록되고, 또한 제 1 승산기(306)의 결과t5y70이 일시 레지스터(309)에 기록된다.
제10 사이클에서는 입력단자에서는 데이터y11이 공급되어 상기 제 2 사이클과 같은 처리가 실행되는 동시에, 누산기(310~317)의 누산레지스터(204)의 유지내용 ω010203040506070이 버퍼레지스터(205)에 각각 전송된다. 그리고 8입력셀렉터(318)는 제 1 누산기(310)의 출력ω0을 선택출력한다.
이하와 같은 처리를 반복하는 것에 의해 연속적으로 공급되는 입력데이터y0~y70, y1~y71,…,y7~y77에 대응한 출력데이터ω070, ω171,…, ω777을 연속하여 얻을 수 있다.
이상과 같이 제2 실시예에 의하면, 승산기의 수가 3으로 저감된 1차원 IDCT프로세서를 실현할 수 있다.
[실시예 3]
식(4)에서 t0= t4인 것을 즉시 알수 있다. 이 관계를 이용하면, 식(2)는,
와 같이 변형된다. 여기서 식(5)중의 ±는, i=0, 3, 4, 7의 경우에 +를 i=1, 2, 5, 6의 경우는 -를 각각 의미한다(제1도 참조). 또, 식(5)중의 ωij는 부분 내곱이고,
이다. 식(6)에 의하면, 제1도 행렬연산의 사이즈는 제10도와 같이 저감된다.
본 발명의 제3실시예에 관한 1차원 IDCT프로세서의 구성을 제11도에 표시한다. 이 구성은 식(5)의 연산을 실행하는 것이다. 제11도에 있어서 10은 입력버퍼, 11은 정수승산회로, 12는 분포연산(DA)회로, 13은 합성연산(RA)회로이다. 입력단자에서 16 비트길이의 2의 보수표시의 2진수 데이터yij(i=0~7.j=0~7)가 y0~y70, y1~y71, …, y7~y77의 순서로 입력버퍼(10)에 공급된다.
입력버퍼(10) y0j, y4j정수승산회로(11)에 데이터y1j, y2j, y3j, y5j, y6j, y7j를 DA회로(12)에 각각 공급한다. 정수승산회로(11)는 2개의 정수승산t0y0j, t0y4j를 실행하는 것이다. DA회로(12)는 제10도의 행렬연산을 실행하는 것에 의해 부분내곱ωij를 구하는 것이다. RA회로(13)는 t0y0j, t0y4j및 ωij에서 식(5)에 따라서 내곱ωij를 구하는 것이다.
입력버퍼(10)의 내부구성을 제12도에 표시한다. 입력버퍼(10)는 각각 데이터y0j, y1j, y2j, y3j, y4j, y5j, y6j, y7j를 유지하기 위한 8개의 레지스터(400~407)로 구성된다.
정수승산회로(11)의 내부구성을 제13도에 표시한다. 정수승산회로(11)는 데이터y0j를 유지하기위한 입력레지스터(410)와, 데이터y4j를 유지하기 위한 입력레지스터(411)와, 2개의 데이터y0j, y4j를 차례로 선택하기 위한 2입력셀렉터(412)와, 2개의 정수승산t0yoj, t0y4j를 차례로 실행하기 위한 승산기(413)과 곱t0 y0j를 유지하기 위한 일시 레지스터(414)와, 곱t0y4j를 유지하기 위한 일시 레지스터(415)와, 당해 1차원 IDCT프로세서의 파이프 라인 동작을 보증하도록 양일시 레지스터(414,415)의 출력을 유지하기 위한 2개의 버퍼레지스터(416,417)로 구성된다.
DA회로(12)의 내부구성을 제14도에 표시한다. DA회로(12)는 6개의 시프트레지스터(420~425)와, 8개의 6비트 입력RAC(426~433)과 ,8개의 버퍼레지스터(434~441)와, 8입력셀렉터(442)로 구성된다. 시프트레지스터(420~425)는 각각 데이터y1j, y2j, y3j, y5j, y6j, y7j를 유지하고, 각각의 최하위 2비트를 잇달아 시프트 아우트하는 것이다. 시프트레지스터(420∼425) 각각의 최하위 비트는 제1 비트슬라이스워드q0으로서, 각각의 최하위 비트보다 한자리 상위비트는 제2비트 슬라이스비트워드q1로서 각각 6비트입력RAC(426∼433)에 공급된다. 6비트입력RAC(426)는 제15도에 표시하는 것과 같이, 제1 ROM(71)과, 제2 ROM(72)과, 3입력가감산기(73)와, 시프터(74)와, 누산레지스터(75)로 구성된다. 제 1 ROM(71)은 제 1 비트슬라이스워드q0을 어드레서로서 받고, 대응하는 벡터내곱의 부분합을 3입력가감산기(73)에 제 1 입력으로서 공급하는 것이다. 제2 ROM(72)은 제2 비트슬라이스워드q1를 어드레스로서 받고, 대응하는 벡터내곱의 부분합을 3입력가감산기(73)에 제2입력으로서 공급하는 것이다. 누산레지스터(75)의 유지출력은 3입력가감산기(73)에 제3 입력으로서 공급된다. 단 제2입력은 제 1 및 제 3 입력에서 1 비트 상위의 가중치를 갖는다. 누산레지스터(75)의 유지내용은 미리 0으로 초기화한다. 3입력가감산기(73)는 제1 ~ 제3입력의 가산을 실행하는 것이다. 단, 최후의 비트슬라이스워드q1에 관한 부분합에 대해서는 감산을 실행한다. 시프터(74)는 3입력가감산기(73) 결과의 자리이동을 위한 좌시프터이다. 누산레지스터(75)의 유지내용은 시프터(74)의 출력으로 바꿔 쓸수 있다. 최종적으로 누산레지스터(75)에서 부분내곱ωij가 출력된다. 제14도중의 다른 6비트입력RAC의 내부구성도 제15도와 동일하다. 따라서, 8개의 6비트입력RAC(426~433)로 8개의 부분내곱ω0j, ω1j, ω2j, ω3j, ω4j, ω5j, ω6j, ω7j를 병렬로 구할 수 있다. 버퍼레지스터(434~441)는 당해 1차원 IDCT프로세서의 파이프라인 동작을 보증하도록, 6비트입력RAC(426~433)의 출력을 유지하는 것이다. 8입력셀렉터(442)는 버퍼레지스터(434~441)의 유지데이터를 차례로 선택하여 부분내곱ωij(i=0~7,j=0~7)를 ω0j, ω1j, ω2j, ω3j, ω4j, ω5j, ω6j, ω7j의 순서로 출력하는 것이다.
RA회로(13)의 내부구성을 제 16도에 표시한다. RA회로(13)는 정수승산회로(11)에서 공급된 2개의 곱t0y0j, t0y4j와, DA회로(12)에서 공급된 부분내곱ωij의 가감산을 실행하여 내곱ωij를 구하기 위한 3입력가감산기(450)로 구성된다. 단, 곱t0y4j에 대해서는 식(5)에 따라서, i값에 따라 가산 또는 감산이 선택된다. 구체적으로 i=0,3,4,7의 사이클에서는 가산을 선택하고, i=1,2,5,6의 사이클에서는 감산을 선택하도록 제어된다.
이하, 제11도∼제16도에 의거하여, 본 발명 제3 실시예에 관한 1차원 IDCT프로세서의 동작을 설명한다.
제1에서 제8 사이클에서는 입력단자에서 입력버퍼(10)에 8개의 데이터y0, y10, y20, y30, y40, y50, y60, y70이 차례로 입력된다. 이들의 데이터는 각각 레지스터(400∼407)에 격납된다.
제9 사이클에서는 입력버퍼(10)의 데이터가 정수승산회로(11) 및 DA회로(12)에 전송된다. 즉, 데이터y0, y40은 정수승산회로(11)의 입력레지스터(410, 411)에, 데이터y10, y20, y30, y50, y60, y70은 DA회로(12)의 시프트레지스터(420∼425)에 각각 격납되어 있다.
제10에서 제13 사이클에서는 정수승산회로(11)의 2입력셀렉터(412)에 의해 데이터y0이 선택되어, 승산기(413)에 의해 정수승산t0y0이 실행되고, 그 결과가 일시 레지스터(414)에 기록된다. 제14에서 제17의 사이클에서는 2입력셀렉터(412)에 의해 데이터y40이 선택되어, 승산기(413)에 의해 정수승산 y0y40이 실행되고, 그 결과가 일시 레지스터(415)에 기록된다. 한편, DA회로(12)에서는 제10에서 제17 사이클에 있어서, 6비트 입력RAC(426∼433)에 의해 8개의 부분내곱ω0, ω10, ω20, ω30, ω40, ω50, ω60, ω70을 구할 수 있다.
제18 사이클에서는 정수승산회로(11)의 일시 레지스터(414, 415)의 유지데이터가 버퍼레지스터(416, 417)로, DA회로(12)의 6비트입력RAC(426∼433)의 출력데이터가 버퍼레지스터(434∼441)에 각각 전송된다.
제19에서 제26 사이클에서는 DA회로(12)의 8입력셀렉터(442)가 부분내곱ω0, ω10, ω20, ω30, ω40, ω50, ω60, ω70을 RA회로(13)에 차례로 공급된다. 한편, 곱t0y0, t0y40이 정수연산회로(11)에서 RA회로(13)로 공급된다. RA회로(11)의 3입력가감산기(450)는 식(5)에 따라 내곱 ω0, ω10, ω20, ω30, ω40, ω50, ω60, ω70이 차례로 출력한다.
다음 8개의 데이터 y1, y11, y21, y31, y41, y51, y61, y71에 관한 처리는 제9에서 제34의 사이클에 있어서, 상기 제1에서 제26 사이클의 처리와 동일하게 행해진다. 이 결과, 제27에서 제34 사이클에서 내곱ω1, ω11, ω21, ω31, ω41, ω51, ω61, ω71이 순차 출력된다.
이하 동일한 처리를 반복하는 것에 의해 연속적으로 공급되는 입력데이터 y0∼y70, y1∼y71, …, y7∼y77에 대응한 출력데이터ω0∼ω70, ω1∼ω71, …, ω7∼ω77을 연속하여 얻을 수 있다.
이상과 같이, 제3 실시예에 의하면 승산기의 수가 1로 저감된 1차원 IDCT프로세서를 실현할 수 있다. 게다가, 정수승산회로(11)중의 승산기(413)는 2변수 입력의 승산기에 비하여 회로규모가 작다. 또, 내곱계산의 일부로 정수승산회로(11)로 실행하므로, DA회로(12)의 ROM사이즈가 저감된다.
이하, 상기 제3 실시예의 변형예에 대해 설명한다. 식(5)는,
와 같이 변형된다. 여기서, 식(7)중의 ±를, i=0, 3, 4, 7인 경우에 +를, i=1, 2,5,6인 경우에 -를 각각 의미한다(제1도 참조). 제17도의 정수승산회로(11) 및 제18도의 RA회로(13)는 식(7)의 연산수순을 채용한 것이다.
제17도에 표시한 정수승산회로(11)는 데이터y0j를 유지하기 위한 입력레지스터(500)와 데이터y4j를 유지하기 위한 입력레지스터(501)와, 가산y0j+ y4j및 감산 y0j-y4j를 차례로 실행하기 위한 2입력가감산기(502)와, 2개의 정수승산t0(y0j+ y4j), t0(y0j- y4j)를 차례로 실행하기 위한 승산기(503)과 곱t0(y0j+ y4j)를 유지하기 위한 일시 레지스터(504)와, 곱t0(y0j- y4j)를 유지하기 위한 일시레지스터(505)와, 양 일시 레지스터(504, 505)의 출력을 유지하기 위한 2개의 버퍼레지스터(506, 507)로 구성된다.
제17도의 정수승산회로(11)를 채용하는 경우에는 제16도의 RA회로(13)는 제18도와 같이 변형된돠. 제18도의 RA회로(13)는 정수승산회로(11)에서 공급된 2개의 곱t0(y0j+ y4j), t0(y0j- y4j) 중 어느 한쪽을 선택하기 위한 2입력셀렉터(510)와, 상기 2입력셀렉터(510)로 선택된 곱과 DA회로(12)에서 공급된 부분내곱ωij과의 가산을 실행하여 내곱ωij를 구하기 위한 2입력가산기(511)로서 구성된다. 2입력셀렉터(510)는 식(7)에 따라, i = 0, 3, 4, 7의 사이클에서는 t0(y0j+ j4j)를 선택하고, i = 1, 2, 5, 6의 사이클에서는 t0(y0j- y4j)를 선택하도록 제어된다.
그런데, 제10도의 행렬연산은 제 19도와 같이 변형된다. 제19도 중 8행 6열의 행렬 요소의 절반은 0이다. 따라서, 제 19도의 행렬연산은 제20도 a 및 제20도 b도와 같이 2개로 분할된다. 제20도 a중 4개의 부분내곱σ0j, σ1j, σ2j, σ3j는 4개의 2비트입력RAC로, 제20도 b중 4개의 부분내곱σ0j, σ1j, σ2j, σ3j는 4개의 4비트RAC 로 각각 구할 수 가 있다. 또, 제20도 a 및 제 20도 b에서,
인 것을 알 수 있다. 제21도의 DA회로(12)는 제20도 a 및 제20도 b의 행렬연산을 각각 RAC로 실행한 후에, 식(8)을 사용하여 부분내곱ωij를 구하는 것이다.
제21도의 DA회로(12)는 6개의 시프트레지스터(700~705)와 4개의 4비트입력RAC(70~709)와, 4개의 2비트입력RAC(710~713)와, 8개의 버퍼레지스터(714~721)와, 제1의 4입력셀렉터(722)와, 제2의 4입력셀렉터(723)과 2입력가감산기(724)로 구성된다. 시프트레지스터(700~705)는 각각 데이터y1j, y2j, y3j, y4j, y5j, y6j, y7j를 유지하고, 각각의 최하위 2비트를 계속해서 시프트아우트하는 것이다. 4개의 시프트레지스터(700, 702, 703, 705)각각의 최하위 비트는 제1 비트슬라이스워드s0로서, 각각의 최하위 비트에서 1자리 상위의 비트는 제 2 비트슬라이스워드s0로서 각각 4비트입력RAC(706~709)에 공급된다. 2개의 시프트레지스터(701, 704)각각의 최하위 비트는 제3비트슬라이스워드r0로서,각각의 최하위 비트에서 1자리 상위의 비트는 제4비트슬라이스워드r1로서 각각 2비트입력RAC(710~713)에 공급된다. 4비트입력RAC(706)는 제22도에 표시하는 것과 같이, 제 1 ROM(81)과, 제 2 ROM(82)과 3입력가감산기(83)와, 시프터(84)의 누산레지스터(85)로 구성된다. 제21도중 다른 4비트입력RAC 내부구성도 제 22도와 동일하다. 따라서, 4개의 4비트입력RAC(706~709)로 4개의 부분내곱 σ0j, σ1j, σ2j, σ3j를 병렬로 구할 수 있다. 2비트입력RAC(710)는 제23도에 표시하는 것과 같은 제 1 ROM(91)과, 제 2 ROM(92)과, 3입력가감산기(93)과, 시프터(94)와, 누산레지스터(95)로 구성된다. 제 21도중 다른 2비트 입력RAC의 내부구성도 제23도와 같다. 따라서 4개의 2 비트입력RAC(710~713)로 4개의 부분내곱σ0j, σ1j, σ2j, σ3j를 병렬로 구할 수 있다. 버퍼레지스터(714~721)는 당해 1차원 IDCT프로세서의 파이프라인 동작을 보증하도록 8개의 RAC(706~713)의 출력을 유지하는 것이다. 제 1의 4입력셀렉터(722)는 버퍼레지스터(71~717)의 유지데이터를 선택하고 부분내곱σ0j, σ1j, σ2j, σ3j, σ3j, σ2j, σ1j, σ0j를 2입력가감산시(724)에 차례로 공급하는 것이다. 제 2의 4입력셀렉터(723)는 버퍼레지스터(718~721)의 유지데이터를 선택하고, 부분내곱σ0j, σ1j, σ2j, σ3j, σ3j, σ2j, σ1j, σ0j를 2입력가감산기(724)에 차례로 공급하는 것이다. 2입력가감산기(724)는 식(8)에 따라서 가감산을 실행하는 것이다. 즉, 부분내곱ωij(i=0~7, j=0~7)가, ω0j, ω1j, ω2j, ω3j, ω4j, ω5j, ω6j, ω7j의 순서로 2입력가감산기(724)에서 출력된다.
제11도 중 정수연산회로(11) 및 RA회로(13)의 내부구성은, 제13도와 제16도의 조합,제17도와 제18도의 조합등 중에서 적당히 선택된다. 또, 제11도 중 DA회로(12)의 내부구성도, 제14도 및 제21도 등 중에서 적당히 선택된다.
더욱이, 상기 제 1 ~ 제3 실시예에서는 8포인트IDCT처리에 대하여 설명하였으나, 각 실시예는 16 포인트 IDCT처리, 8포인트 IDST처리, 16포인트IDST처리 등으로 쉽게 변형할 수 있다.

Claims (20)

  1. 2n-1(n은 2 이상의 정수)개의 요소로 되는 입력데이터에 직교 변환처리를 시행하기 위한 직교변환 프로세서에 있어서, 직교변환행렬을 구성하는 2n+1× 2n+1개의 계수중의 2n+1× 2n개의 계수 각각의 절대치를 각각 2n+1개씩 격납하기 위한 제1에서 제 2n개의 계수메모리와, 상기 입력데이터중의 1 개의 요소와 상기 제 1 에서 제 2n개의 계수메모리중 대응하는 계수메모리 2n+1개의 격납계수중 1 개와의 승산을 각각 실행하기 위한 제 1 에서 제 2n의 승산기와, 상기 직교변환행렬에 대응한 2n+1개의 내곱을 병렬로 구하도록 상기 직교 변환행렬의 계수의 부호를 복원하면서 상기 제 1 에서 제 2n의 승산기의 결과를 사용한 누산을 각각 실행하기 위한 제 1 에서 제2n+1의 누산기와, 상기 제 1 에서 제 2n+1의 누산기의 결과를 상기 직교변환 프로세서의 출력데이터의 요소로서 차례로 선택 출력하기 위한 2n+1입력셀렉터를 구비한 것을 특징으로 하는 직교변환 프로세서,
  2. 제1항에 있어서, n이 2인 것을 특징으로 하는 직교변환 프로세서.
  3. 제2항에 있어서, 상기 제 1 에서 제8의 누산기의 각각은 상기 제 1에서 제 4의 승산기중 1 개의 승산기의 결과 그것과, 이 결과의 2의 보수와의 어느건가를 선택 출력하기 위한 2의 보수기와, 상기 2의 보수기의 출력과 누산 결과와의 가산을 실행하기 위한 가산기와, 상기 누산결과의 초기치로 0을 사용하고, 또한 상기 누산결과의 중간치로서 상기 가산기의 결과를 유지 출력하기 위한 누산레지스터와, 상기 누산레지스터의 출력을 유지 출력하기 위한 버퍼레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  4. 제3항에 있어서, 상기 제 1 에서 제 8 의 누산기의 각각은 상기 제 1 에서 제 4의 승산기 중 1개 승산기의 결과를 상기 2의 보수기 입력으로서 선택 출력하기 위한 4입력셀렉터를 더 구비한 것을 특징으로 하는 직교변환 프로세서.
  5. 제2항에 있어서, 상기 제 1 에서 제 8의 누산기 각각은, 상기 제 1 에서 제 4의 승산기중의 1 개 승산기의 결과 그것과, 이 결과 1의 보수와의 어느건가를 선택 출력하기 위한 1의 보수기와, 상기 1의 보수기 출력과 누산결과의 가산을 실행하기 위한 가산기와, 상기 누산결과의 정수 초기치로서 정수를 이용하고, 또한 상기 누산결과를 중간치로서 상기 가산기의 결과를 유지 출력하기 위한 누산레지스터와, 상기 누산레지스터의 출력을 유지 출력하기 위한 버퍼레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  6. 제5항에 있어서, 상기 제 1에서 제 8의 누산기 각각은, 상기 제 1 에서 제 4의 승산기중 1 개 승산기의 결과를 상기 1의 보수기의 입력으로서 선택 출력하기 위한 4입력셀렉터를 더 구비한 것을 특징으로 하는 직교변환 프로세서.
  7. 2n+1(n은 2 이상의 정수)개의 요소로 되는 입력데이터에 직교변환처리를 시행하기 위한 직교변환 프로세서에 있어서,직교변환행렬을 구성하는 2n+1× 2n+1개의 계수중 (2n-1) × 2n+1개 계수 각각의 절대치를 각각 2n+1개씩 격납하기 위한 제 1 에서 제 (2n-1)의 계수메모리와, 입력으로서 공급된 상기 입력데이터의 요소들 1 개씩 유지 출력하기 위한 입력레지스터와, 상기 입력레지스터의 입력과 출력과의 어느건가를 선택 출력하기 위한 2입력셀렉터와, 상기 2입력셀렉터의 출력과 상기 제 1의 계수메모리의 2n+1개의 격납계수중 1 개와의 승산을 실행하기 위한 제 1 승산기와, 상기 입력레지스터 출력과 상기 2 에서 제 (2n-1)의 계수메모리중의 대응하는 계수메모리의 2n+1개의 격납계수중의 1 개와의 승산을 각각 실행하기 위한 제 2에서 제 (2n-1)의 승산기와, 상기 제 1의 승산기의 결과를 유지 출력하기 위한 일시레지스터와, 상기 직교변환행렬에 대응한 2n+1개의 내곱을 병렬로 구하도록 상기 직교 변환행렬의 계수 부호를 복원하면서 상기 제 1 에서 제 (2n-1) 승산기의 결과와 상기 일시레지스터의 출력을 사용한 누산을 각각 실행하기 위한 제 1에서 제 2n+1의 누산기와, 제 2n+1누산기의 결과를 상기 직교변환프로세서의 출력데이터의 요소로서 차례로 선택출력하기 위한 2n+1입력셀렉터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  8. 제7항에 있어서, n이 2 인 것을 특징으로 하는 직교변환 프로세서.
  9. 제8항에 있어서, 상기 제 1 에서 제 8의 누산기의 각각은, 상기 제 1 에서 제 3의 승산기의 결과와 상기 일시레지스터의 출력중 어느건가를 선택 출력하기 위한 4입력셀렉터와, 상기 4입력셀렉터의 출력 그것과, 이 출력의 2의 보수와의 어느건가를 선택 출력하기 위한 2의 보수기와, 상기 2의 보수기의 출력과 누산결과와의 가산을 실행하기 위한 가산기와, 상기 누산결과의 초기치로서 0을 미리 유지하고, 또한 상기 누산결과의 중간치로서 상기 가산기의 결과를 유지 출력하기 위한 누산레지스터와, 상기 누산레지스터의 출력을 유지 출력하기 위한 버퍼레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  10. 제8항에 있어서, 상기 제 1 에서 제 8 누산기의 각각은, 상기 제 1 에서 제 3 승산기의 결과와 상기 일시레지스터의 출력중 어느 건가를 선택 출력하기 위한 4입력셀렉터와, 상기 4입력셀렉터의 출력 그것과, 이 출력의 1 의 보수와의 어느건가를 선택 출력하기 위한 1의 보수기와, 상기 1의 보수기의 출력과 누산결과와의 가산을 실행하기 위한 가산기와, 상기 누산결과의 정수 초기치를 미리 유지하고, 또한 상기 누산결과의 중간치로서 상기 가산기의 결과를 유지 출력하기 위한 누산레지스터와, 상기 누산레지스터의 출력을 유지 출력하기 위한 버퍼레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  11. 2n+1(n은 2 이상의 정수)개의 요소로 되는 입력데이터에 직교 변환처리를 시행하기 위한 직교변환 프로세서에 있어서, 상기 입력데이터의 연속하는 2n+1의 요소를 일괄하여 유지 출력하기 위한 입력버퍼와, 상기 입력버퍼에서 상기 2n+1개의 요소중 제 1 번째 요소와 제 (2n+1)번째 요소를 입력하여 2 개의 정수승산결과를 병렬 출력하기 위한 정수승산회로와, 상기 입력버퍼에서 다른 (2n+1-2)개의 요소를 입력하고, 직교변환행렬에 대응한 2n+1개의 부분내곱을 차례로 출력하기 위한 분포연산회로와, 상기 직교변환프로세서의 출력데이터의 요소를 구하도록 상기 정수승산회로의 2개 출력과 상기 분포연사회로의 출력과의 합성연산을 실행하기 위한 합성연산회로를 구비한 것을 특징으로 하는 직교변환프로세서
  12. 제11항에 있어서, n이 2인 것을 특징으로 하는 직교변환 프로세서.
  13. 제12항에 있어서, 상기 입력버퍼는 상기 입력데이터의 연속하는 8 개 요소의 각각을 유지 출력하기 위한 8개 레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  14. 제12항에 있어서, 상기 정수승산회로는, 상기 입력데이터가 연속하는 8개 요소중 제 1 번째 요소를 유지 출력하기 위한 제 1 의 입력레지스터와, 상기 입력데이터가 연속하는 8 개 요소중 제 5 번째 요소를 유지 출력하기 위한 제 2의 입력레지스터와, 상기 제 1의 입력레지스터 출력과 상기 제 2 의 입력레지스터 출력을 차례로 선택 출력하기 위한 2입력셀렉터와, 상기 2입력셀렉터의 출력을 사용하여 상기 제 1 입력레지스터의 출력의 제 1 의 정수승산과, 상기 제 2 입력레지스터의 제 2의 정수승산을 차례로 실행하기 위한 승산기와, 상기 제 1의 정수승산결과를 유지 출력하기 위한 제 1 의 일시레지스터와, 상기 제 2의 정수승산결과를 유지 출력하기 위한 제2의 일시레지스터와, 상기 제1의 일시레지스터 출력을 유지 출력하기 위한 제 1 의 버퍼레지스터와, 상기 제2의 일시레지스터의 출력을 유지 출력하기 위한 제2의 버퍼레지스터를 구비하고, 또한 상기 합성연산회로는 상기 제 1의 버퍼레지스터 출력과 상기 분포연산회로의 출력을 각각 가산입력으로 하고, 또한 상기 제 2 버퍼레지스터의 출력을 가감산 입력으로 한 가감산을 실행하기 위한 3 입력 가감산기를 구비한 것을 특징으로 하는 직교변환 프로세서.
  15. 제12항에 있어서, 상수 정수승산회로는, 상기 입력데이타가 연속하는 8개 요소중 제 1 번째 요소를 유지 출력하기 위한 제1의 입력레지스터와, 상기 입력데이터가 연속하는 8개 요소중 제5번째 요소를 유지 출력하기 위한 제 2의 입력레지스터와, 상기 제 1 의 입력레지스터의 출력과 상기 제 2 의 입력레지스터 출력과의 가산 및 감산을 차례로 실행하기 위한 2 입력 가감산기와, 상기 2 입력 가감산기의 가산결과의 제1의 정수승산과, 상기 2 입력 가감산기의 감산결과의 제 2 의 정수승산을 차례로 실행하기 위한 승산기와, 상기 제 1 의 정수승산결과를 유지 출력하기 위한 제1의 일시레지스터와, 상기 제 2의 정수승산결과를 유지 출력하기 위한 제2의 일시레지스터와, 상기 제1의 일시레지스터의 출력을 유지 출력하기 위한 제1의 버퍼레지스터와, 상기 제2의 일시레지스터의 출력을 유지 출력하기 위한 제 2의 버퍼레지스터를 구비하고, 또한 상기 합성연산회로는, 상기 제 1 및 제 2의 버퍼레지스터 출력의 어느건가를 선택 출력하기 위한 2입력셀렉터와, 상기 2입력셀렉터의 출력과 상기 분포연산회로의 출력과의 가산을 실행하기 위한 2 입력가산기를 구비한 것을 특징으로 하는 직교변환 프로세서.
  16. 제12항에 있어서, 상기 분포연산회로는, 상기 입력데이터의 연속하는 8개 요소중의 제2, 제3, 제4, 제6, 제7 및 제8 번째의 요소를 유지하고, 또한 상기 6 요소 각각의 최하위비트를 모아서 제 1의 비트슬라이스워드로 하고, 상기 6 요소 각각의 최하위비트에서 한자리 상위의 비트를 모아서 제 2의 비트슬라이스워드로 하도록, 상기 6 요소 각각의 최하위 2 비트를 잇달아 시프트아우트하기 위한 6개의 시프트레지스터와, 상기 직교변환행렬에 대응한 8 개 부분 내곱을 병렬로 구하도록 상기 제 1 및 제 2의 비트슬라이스워드에 의거하는 곱합연산을 각각 실행하기 위한 8 개의 6 비트 입력 RAC와, 상기 8 개의 6 비트 입력 RAC 결과를 유지 출력하기 위한 8개의 버퍼레지스터와, 상기 8개의 버퍼레지스터의 출력을 차례로 선택 출력하기 위한 8입력셀렉터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  17. 제16항에 있어서,상기 8개의 입력 RAC인 각각은, 상기 제 1의 비트슬라이스워드를 어드레스로서 색인되도록 상기 직교변환 행렬에 의거하는 벡터 내곱의 부분합을 격납하기 위한 제 1 의 ROM과, 상기 제 2의 비트슬라이스워드를 어드레스로서 색인되도록 상기 직교변환 행렬에 의거하는 벡터내곱의 부분합을 격납하기 위한 제 2의 ROM과, 상기 제 1 의 ROM에서 색인된 부분합을 제 1의 가산입력으로 하고, 상기 제 2의 ROM에서 색인된 부분합을 가감산 입력으로 하고, 또한 누산결과를 제2의 가산입력으로 한 가감산을 실행하기 위한 3 입력가감산기와, 상기 3 입력가감산기의 결과를 좌시프트 출력하기 위한 시프터와, 상기 누산결과의 초기치로서 0을 미리 유지하고, 또한 상기 누산결과의 중간치로서 상기 시프터의 출력을 유지출력하기 위한 누산레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  18. 제12항에 있어서, 상기 분포연산회로는, 상기 입력데이터의 연속하는 8개 요소중 제2, 제 4, 제 6 및 제 8번째 요소를 유지하고, 또한 상기 4 요소 각각의 최하위 비트를 모아서 제 1의 비트슬라이스워드로 하고 상기 4 요소 각각의 최하위 비트에서 한자리 상위의 비트를 모아서 제2의 비트슬라이스워드로 하도록 상기 4 요소 각각의 최하위 2 비트를 잇달아서 시프트아우트하기 위한 4개 시프트레지스터와, 상기 입력데이터가 연속하는 8개 요소중 제 3 및 제 7번째의 요소를 유지하고, 또한 상기 2요소 각각의 최하위 비트를 모아서 제 3의 비트슬라이스워드로 하고, 상기 2요소 각각의 최하위 비트에서 한자리 상위의 비트를 모아서 제 4의 비트슬라이스워드로 하도록 상기 2 요소 각각의 최하위 2 비트를 잇달아서 시프트아우트하기 위한 2개의 시프트레지스터와, 상기 직교변환행렬에 대응한 4 개의 부분내곱을 병렬로 구하도록 상기 제 1 및 제2의 비트슬라이스워드에 의거하여 곱합연산을 각각 실행하기 위한 4개의 4비트 입력 RAC와, 상기 직교변환행렬에 대응한 4 개의 부분내곱을 병렬로 구하도록 상기 제 3 및 제 4 비트슬라이스워드에 의거하는 곱합연산을 각각 실행하기 위한 4개의 2 비트 입력 RAC와, 상기 4 개의 4 비트 입력 RAC의 결과를 유지 출력하기 위한 제 1 에서 제 4의 버퍼레지스터와, 상기 4 개의 2 비트입력 RAC의 결과를 유지 출력하기 위한 제 5에서 제 8 버퍼레지스터와, 상기 제 1 에서 제 4의 버퍼레지스터의 출력을 차례로 선택 출력하기 위한 제 1의 4입력셀렉터와, 상기 제 5에서 제 8의 버퍼레지스터의 출력을 차례로 선택 출력하기 위한 제 2의 4입력셀렉터와, 상기 제 1의 4입력셀렉터의 출력을 가감산 입력으로 하고, 또한 상기 제2의 4입력셀렉터의 출력을 가산입력으로 한 가감산을 실행하기 위한 2 입력가감산기를 구비한 것을 특징으로 하는 직교변환 프로세서.
  19. 제18항에 있어서, 상기 4 개의 4비트 입력 RAC의 각각은, 상기 제 1의 비트슬라이스워드를 어드레스로서 색인되도록 상기 직교변환 행렬에 의거하는 벡터내곱의 부분합을 격납하기 위한 제 1 의 ROM과, 상기 제 2 의 비트슬라이스워드를 어드레스로서 색인되도록 상기 직교변환행렬에 의거하는 벡터내곱의 부분합을 격납하기 위한 제2의 ROM과, 상기 제1의 ROM에서 색인된 부분합을 제 1 의 가산입력으로 하고, 상기 제 2의 ROM에서 색인된 부분합을 가감산 입력으로 하고, 또한 누산결과를 제 2의 가산입력으로 한 가감산을 실행하기 위한 3 입력가감산기와, 상기 3 입력가감산기의 결과를 좌시프트 출력하기 위한 시프터와, 상기 누산결과의 초기치로서 0을 미리 유지하고, 또한 상기 누산결과의 중간치로 하고 상기 시프터의 출력을 유지 출력하기 위한 누산레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
  20. 제18항에 있어서, 상기 4 개의 2 비트 입력 RAC의 각각은, 상기 제 3의 비트슬라이스워드를 어드레스로서 색인되도록 상기 직교변환행렬에 의거하는 벡터내곱의 부분합을 격납하기 위한 제 1 의 ROM과, 상기 제 4의 비트슬라이스워드를 어드레스로서 색인되도록 상기 직교변환행렬에 의거하는 벡터내곱의 부분합을 격납하기 위한 제 2의 ROM과, 상기 제 1의 ROM에서 색인된 부분합을 제 1의 가산입력으로 하고, 상기 제 2 의 ROM에서 색인된 부분합을 가감산 입력으로 하고, 또한 누산결과를 제 2 의 가산입력으로 한 가감산을 실행하기 위한 3 입력가감산기와, 상기 3 입력가감산기의 결과를 좌시프트 출력하기 위한 시프터와, 상기 누산결과의 초기치로서 0을 미리 유지하고, 또한 상기 누산결과의 중간치로서 상기 시프터의 출력을 유지 출력하기 위한 누산레지스터를 구비한 것을 특징으로 하는 직교변환 프로세서.
KR1019950010314A 1994-05-10 1995-04-28 직교변환 프로세서 KR0150350B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP9619694 1994-05-10
JP94-096196 1994-05-10
JP94-96196 1994-05-10
JP26870194 1994-11-01
JP94-268701 1994-11-01

Publications (2)

Publication Number Publication Date
KR950033919A KR950033919A (ko) 1995-12-26
KR0150350B1 true KR0150350B1 (ko) 1998-10-15

Family

ID=26437404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950010314A KR0150350B1 (ko) 1994-05-10 1995-04-28 직교변환 프로세서

Country Status (3)

Country Link
US (1) US5596518A (ko)
KR (1) KR0150350B1 (ko)
TW (1) TW335590B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0714212A3 (en) * 1994-11-21 1999-03-31 SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH Video decoder using concurrent processing and resource sharing
US6185595B1 (en) * 1995-06-01 2001-02-06 Hitachi, Ltd. Discrete cosine transformation operation circuit
US5805482A (en) * 1995-10-20 1998-09-08 Matsushita Electric Corporation Of America Inverse discrete cosine transform processor having optimum input structure
US5801979A (en) * 1995-10-20 1998-09-01 Matsushita Electric Corporation Of America Carry logic that produces a carry value from NLSBs for a ROM accumulator in an inverse discrete cosine transform processor
US5867601A (en) * 1995-10-20 1999-02-02 Matsushita Electric Corporation Of America Inverse discrete cosine transform processor using parallel processing
US6377970B1 (en) * 1998-03-31 2002-04-23 Intel Corporation Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry
KR100275933B1 (ko) * 1998-07-14 2000-12-15 구자홍 엠펙디코더의 역이산여현변환장치
US6751252B1 (en) 1998-07-20 2004-06-15 Samsung Electronics Co., Ltd. Quasi-orthogonal code mask generating device in mobile communication system
US6230180B1 (en) * 1998-10-14 2001-05-08 Conexant Systems, Inc. Digital signal processor configuration including multiplying units coupled to plural accumlators for enhanced parallel mac processing
JP3935678B2 (ja) * 2001-01-31 2007-06-27 富士通株式会社 Simd積和演算方法、積和演算回路、および、半導体集積回路装置
US20030182518A1 (en) * 2002-03-22 2003-09-25 Fujitsu Limited Parallel processing method for inverse matrix for shared memory type scalar parallel computer
US6940828B2 (en) * 2002-09-30 2005-09-06 Nokia Corporation Apparatus, and associated method, for transforming data in an OFDM communication system
WO2016167778A1 (en) 2015-04-16 2016-10-20 Hewlett Packard Enterprise Development Lp Resistive memory arrays for performing multiply-accumulate operations
JP7129857B2 (ja) * 2018-09-07 2022-09-02 ルネサスエレクトロニクス株式会社 積和演算装置、積和演算方法、及びシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791598A (en) * 1987-03-24 1988-12-13 Bell Communications Research, Inc. Two-dimensional discrete cosine transform processor
US5268853A (en) * 1989-12-01 1993-12-07 Ricoh Company, Ltd. Orthogonal transformation processor for compressing information
JP2646778B2 (ja) * 1990-01-17 1997-08-27 日本電気株式会社 ディジタル信号処理装置
JP2964172B2 (ja) * 1991-03-08 1999-10-18 富士通株式会社 Dctマトリクス演算回路
US5528528A (en) * 1993-03-29 1996-06-18 Intel Corporation Method, apparatus, and system for transforming signals
JP2677969B2 (ja) * 1993-12-27 1997-11-17 松下電器産業株式会社 直交変換装置

Also Published As

Publication number Publication date
US5596518A (en) 1997-01-21
KR950033919A (ko) 1995-12-26
TW335590B (en) 1998-07-01

Similar Documents

Publication Publication Date Title
US4791598A (en) Two-dimensional discrete cosine transform processor
KR0150350B1 (ko) 직교변환 프로세서
JP2866754B2 (ja) 演算処理装置
JP2646778B2 (ja) ディジタル信号処理装置
US5951629A (en) Method and apparatus for log conversion with scaling
US5233551A (en) Radix-12 DFT/FFT building block
JPH08235159A (ja) 逆コサイン変換装置
US5226002A (en) Matrix multiplier circuit
KR20010023031A (ko) 가변 블록 사이즈의 2-차원 역 이산 코사인 변환 엔진
US6003058A (en) Apparatus and methods for performing arithimetic operations on vectors and/or matrices
US6658441B1 (en) Apparatus and method for recursive parallel and pipelined fast fourier transform
JP2677969B2 (ja) 直交変換装置
JP3802783B2 (ja) 衝突防止メモリ装置及びそれを用いたアドレス計算とデータルーティング方法
JP2901896B2 (ja) 直交変換プロセッサ
US5654910A (en) Processing method and apparatus for performing 4 ×4 discrete cosine transformation or inverse discrete cosing transformation
JPH07200539A (ja) 二次元dct演算装置
JP3575991B2 (ja) 直交変換回路
US5999958A (en) Device for computing discrete cosine transform and inverse discrete cosine transform
JP3970442B2 (ja) 離散コサイン変換装置及び逆離散コサイン変換装置
JP3697716B2 (ja) 行列データ乗算装置
JP3652717B2 (ja) 離散コサイン高速演算器
JPH05153402A (ja) 離散コサイン変換器
Kalyani et al. Fpga implementation of fully parallel distributed arithmetic based dct architecture
JP3895031B2 (ja) 行列ベクトル乗算器
JP2646844B2 (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: 20050610

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee