본 발명을 수행하는 최적의 모드는 첨부된 도면을 참고로 여러 실시예를 사용하여 더욱 상세히 기술된다.
<제 1 실시예>
도1은 본 발명의 제 1 실시예에 다른 8-8 DCT/2-4-8 DCT 장치의 전기적 구성을 도시하는 개략 다이어그램이다. 도2는 제 1 실시예에 따른 8-8 DCT/2-4-8 DCT 장치의 전기적 구성을 부분적으로 도시하는 개략 블록 다이어그램이다. 도3은 제 1 실시예에 따라 8-8 DCT/2-4-8 DCT 장치에서 8-8 DCT 를 설명하는 연산 타이밍 챠트의 일부를 도시한다. 도4는 제 1 실시예에 따른 8-8 DCT/2-4-8 DCT 장치에서 8-8 DCT 를 설명하는 연산 타이밍 챠트의 나머지 부분의 도시도이다. 도5는 제 1 실시예에 따른 8-8 DCT/2-4-8 DCT 장치에서 2-4-8 DCT 를 설명하는 연산 타이밍 챠트일부의 도시도이다. 도6은 제 1 실시예에 따른 8-8 DCT/2-4-8 DCT 장치에서 2-4-8 DCT 를 설명하는 연산 타이밍 챠트의 나머지 부분을 도시한다. 도2의 라인 I-i 상의 도1의 라인 I-i 를 겹치므로서, 상기 8-8 DCT/2-4-8 DCT 장치의 전체 구성이 도시된다.
따라서, 제 1 실시예에 따라, 상기 8-8 DCT/2-4-8 DCT 장치가 상기 8-8DCT회로의 일부가 2-4-8 DCT 에 대해 사용되는 구성이 되므로서, 상기 8-8 DCT 에서 파이프 라인 처리형 산술 연산을 통해 얻어진 고속 계산 특징은 2-4-8 DCT 에서 유지되고 고속 계산 특징은 8-8 DCT 및 2-4-8 DCT 장치를 소형화할때 조차도 계속 유지된다.
8-8 DCT/2-4-8 DCT 장치의 구성 설명전에, 8x8 화소 데이터를 구성하는 매 한개의 라인 또는 스트링상에서 8-8 DCT 를 수행하기 위해 사용되는 연산식은 가징 먼저 아래에 설명된다.
1차원식(39) 형태로 "관련기술의 설명"에 기술된 2차원식(17)을 표시하고 h 및 x 에 따라 식(39)을 압축해제함으로써, 식(39)은 식(40)에 의해 표시되고, P0내지 P6은 다음과 같다.
P0= cos ( 7 π / 16 ) = -cos ( 9 π / 16 ) = 0.195090322...
P1= cos ( 6π / 16 ) = -cos ( 10 π / 16 ) = 0.382683432...
P2= cos ( 5 π / 16 ) = -cos ( 11π / 16 ) = 0.55557023...
P3= cos ( 4 π / 16 ) = -cos ( 12π / 16 ) = 0.707106781...
P4= cos ( 3 π / 16 ) = -cos ( 13 π / 16 ) = 0.831469612...
P5= cos ( 2 π / 16 ) = -cos ( 14 π / 16 ) = 0.923879532...
P6= cos ( π / 16 ) = -cos ( 15 π / 16 ) = 0.980785280...
따라서, 식(40)이 F(0) = F0, F(1) = F1, F(2) = F2, F(3) = F3, F(4) = F4, F(5) = F5, F(6) = F6및 F(7) = F7및 f(0,y) = fo, f(1,y) = f1, f(2,y) = f2, f(3,y) = f3, f(4,y) = f4, f(5,y) = f5,f(6,y) = f6및 f(7,y) = f7에 의해 셋팅함으로써 변화될때, 식(40)은 식(41)에 의해 표시되고, 식(41)의 우측을 변화시켜, 식(42)가 얻어진다.
식(42)에 포함된 f0+ f7, f1+ f6, f2+ f5,f3+ f4, f0- f7, f1- f6, f2- f5및 f3- f4에 대해 식(43)에 의해 표시된 도면을 대체함으로써, 그때, 식(42)의 우측을 변화시키므로서, 식(44)이 얻어진다. 식(44)을 재배열함으로써, 식(45)이 얻어진다. 상기 제 1 실시예의 8-8 DCT/2-4-8 DCT 장치는 식(45)에 따라 8-8 DCT 를 수행하도록 적용된다.
다음에, 8x8 화소 데이터의 매 한개의 라인 또는 스트링상의 2-4-8 DCT 를 수행하는데 사용된 연산식이 아래에 기술되어 있다. 1차원식(46)의 형태로 "관련 기술의 설명"에 기술된 2차원식(21)을 표현하고, h 및 x 에 따라 식(46)을 압축해제함으로써 얻어진 F(0), F(1), F(2), F(3), F(4), F(5), F(6), F(7), f(0.z), f(1,z), f(2,z), f(3,z), f(4,z), f(5,z), f(6,z) 및 f(7,z)를 셋팅함으로서 결국, 식(40)에서와 같은 방법으로 F(0) = F0, F(1) = F1, F(2) = F2, F(3) = F3, F(4) = F4, F(5) = F5, F(6) = F6및 F(7) = F7과 f(0,z) = f0, F(1,z) = f1, f(2,z) = f2, f(3,z) = f3, f(4,z) = f4, f(5,z) = f5, f(6,z) = f6및 f(7,z) = f7를 셋팅함으로써, 식(47)이 얻어진다. 식(47)에서 P0내지 P6의 값은 식(40)에서의 값과 같다.
식(47)의 우측을 변화시키므로서, 식((48)이 얻어진다. 식(48)을 재배열하여,식(49)가 얻어진다.
식(49)에 포함된 f0+ f1, f2+ f3, f4+ f5, f6+ f7, f0- f1, f2- f3, f4- f5및 f6- f7에대해 식(50)에의해 표시된 그림을 대체 함으로써 식(51)이 얻어진다. 상기 제1실시에의 8-8DCT/2-4-8 DCT 장치는 식(51) 에따라 2-4-8 DCT를 수행하도록 적용된다.
위에서 기술된 8-8 DCT/2-4-8 DCT는 멀티플랙서(12), 제 1 데이터 레지스터 그룹(13)을 이루는 8개의 데이터 레지스터들(141내지 148), 제 1 가산 회로 그룹(17)을 이루는 4개의 가산 회로(181내지 184), 감산 회로 그룹(19)을 이루는 4개의 감산 회로(201내지 204) 제 2 데이터 레지스터 그룹(21)을 이루는 8개의 데이터 레지스터들(221내지 228), 제 1 MUX 그룹(23)을 이루는 8개의 멀티플랙서(241내지 248), 제 1 가감산 회로(25)를 이루는 2개의 가산/감산 회로(261, 262), 제 2 멀티플랙서 그룹(27)을 이루는 2개의 멀티플랙서(281내지 282), 제 3 데이터 레지스터 그룹(29)을 이루는 7개의 데이터 레지스터들(301내지 307), P3계수 승산 회로(321), P5계수 승산 회로(322), P1계수 승산 회로(323), P6/P3계수 승산 회로(324), P4/P5계수 승산 회로(325), P2계수 승산 회로(326), P0/ P1계수 승산 회로(327), 제 4 데이터 레지스터 그룹(33)을 이루는 7 데이터 레지스터들(341내지 348), 5개의 AND 회로(361내지 365), 제 2 가산 회로 그룹(37)을 이루는 4개의 가산 회로(381내지 384), 제 5 데이터 레지스터 그룹(39)을 이루는 5개의 데이터 레지스터들(401내지 405)로 구성된다. 이후에, 데이터 레지스터는 레지스터들(도면에서는 "REG"로서 도시된)로 간단히 설명되고 멀티플랙서는 MUX 로 설명된다.
상기 MUX(12)는 제 1 DCT 가 수행되는 8x8 화소 블록을 이루는 각 라인에서 포함된 8개의 화소 데이터 또는 상기 제 1 DCT 에 의해 포함된 8x8 데이터 블록을 이루는 각 스트링에 포함된 8개의 화소 데이터를 선택적으로 출력한다. 상기 MUX(12)로부터 출력되는 8개의 데이터 각각은 (f0내지 f7)에 의해 참조된다. 8-8 DCT 가 수행될때, 상기 MUX(12)는 제 1 레지스터 그룹(13)내에서 데이터(f0)를 레지스터(141)에, 데이터(f7)를 레지스터(142)에, 데이터(f1)는 레지스터 (143), 데이터(f6)는 레지스터(144)에, 데이터(f2)는 레지스터(145)에, 데이터(f5)는 레지스터(146)에, 데이터(f3)는 레지스터(147)에, 데이터(f4)는 레지스터(148)에 저장하고, 2-4-8 DCT 가 수행될때, 상기 MUX(12)는 데이터들(f1내지 f8)에 대응하는 레지스터들(141내지 148)에 데이터들(f1내지 f8)을 저장한다.
상기 8-8 DCT 및 2-4-8 DCT 둘다의 경우에, 제 1 가산 회로 그룹(17)을 이루는 4개의 가산 회로(181내지 184) 각각은, 2개의 레지스터로부터 데이터 출력상에서 가산 연산들을 수행한다. 즉, 상기 가산 회로(181)는 레지스터(141)에 저장된 데이터를 레지스터(142)에 저장된 데이터에 가산한다. 상기 가산 회로(182)는 레지스터(143)에 저장된 데이터를 레지스터(144)에 저장된 데이터에 가산한다. 상기 가산 회로(183)는 레지스터들(145)에 저장된 데이터를 레지스터(146)에 저장된 데이터에 가산한다. 상기 가산 회로(184)는 레지스터(147)에 저장된 데이터를 레지스터(148)에 저장된 데이터에 가산한다.
상기 8-8 DCT 및 2-4-8 DCT 둘다의 경우에, 감산 회로 그룹(19)을 이루는 4개의 감산 회로(201내지 204) 각각은, 2개의 레지스터로부터 데이터 출력상에서 감산 연산들을 수행한다. 즉, 감산 회로는 레지스터(142)에 저장된 데이터를 레지스터(141)에 저장된 데이터로부터 감산한다. 상기 감산 회로(202)는 레지스터들(143)에 저장된 데이터를 레지스터(144)에 저장된 데이터로부터 감산한다. 상기 감산 회로(203)는 레지스터(146)에 저장된 데이터를 레지스터(145)에 저장된 데이터로부터 감산한다. 상기 감산 회로(204)는 레지스터(148)에 저장된 데이터를 레지스터들(147)에 저장된 데이터로부터 감산한다.
상기 제 2 레지스터 그룹(21)을 구성하는 레지스터들(221내지 228) 각각은 상기 가산 회로(181내지 184) 또는 감산 회로(201내지 204)로부터 출력된 데이터 각각을 임시로 저장한다. 상기 레지스터(221)는 가산 회로(181)로부터 출력된 데이터를 임시로 저장한다. 상기 레지스터(222)는 상기 가산 회로(182)로부터 출력된 데이터를 임시로 저장한다. 상기 레지스터(223)는 가산 회로(183)로부터 출력된 데이터를 임시로 저장한다. 상기 레지스터(224)는 가산 회로(184)로부터 출력된 데이터를 임시로 저장한다. 상기 레지스터(225)는 감산 회로(201)로부터 출력된 데이터를 임시로 저장한다. 상기 레지스터(226)는 감산 회로(202)로부터 출력된 데이터를 임시로 저장한다. 상기 레지스터(227)는 감산 회로(203)로부터 출력된 데이터를 임시로 저장한다. 상기 레지스터(228)는 감산 회로(204)로부터 출력된 데이터를 임시로 저장한다. 상기 MUX(12)및 상기 가산 회로(181내지 184)의 레지스터들(141내지 148) 각각, 상기 감산 회로(201내지 204) 및 레지스터들(221내지 228) 각각은 매 4개의 연산 싸이클 동안 같은 연산을 반복한다. 상기 연산 싸이클 각각은 MUXs(241내지 248)에 의해 수행된 4개의 연산 싸이클에 대응한다.
제 1 MUX 그룹(23)을 이루는 MUXs(241내지 244) 각각에 의해 수행된 데이터 선택 연산은 상기 8-8 DCT 및 2-4-8 DCT 둘다에서 같다. 즉, 상기 MUX(241)는 상기 레지스터들(221내지 224)의 각각의 출력에 접속되고 레지스터들(221내지 224)의 순서에 따라 레지스터를 선택하고 순서적으로 4개 데이터를 출력하기 위해 적용된다. 상기 MUX(242)는 상기 레지스터들(221내지 224)의 출력에 접속되고 레지스터들(222, 223, 222, 223)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하기 위해 적용된다. 상기 MUX(243)는 레지스터들(221내지 224)의 출력에 접속되고 상기 레지스터들(221내지 223)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하기 위해 적용된다. 상기 MUX(244)는 레지스터들(221내지 224)의 출력에 접속되고 상기 레지스터들(222, 223, 221, 222)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하기 위해 적용된다.
제 1 MUX 그룹(23)을 구성하는 MUX(245), MUX(246), MUX(247), MUX(248) 각 데이터 선택 연산은 8-8 DCT 및 2-4-8 DCT 와는 상이하다.
8-8 DCT 의 경우에 MUX(245), MUX(246), MUX(247), MUX(248) 각 데이터 선택 연산은 다음의 연산에 따른다. 상기 MUX(245)는 레지스터들(225내지 228)의 출력에 접속되고 레지스터들(225, 227, 226, 228)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하기 위해 적용된다. 상기 MUX(246)는 레지스터들(225내지 228)의 출력에 접속되고 레지스터들(226, 225, 228, 227)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하기 위해 적용된다. 상기 MUX(247)는 레지스터들(225내지 228)의 출력에 접속되고 레지스터들(227, 228, 225, 226)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하도록 적용된다. 상기 MUX은 레지스터들(225내지 228)의 출력에 접속되고 레지스터들(228, 226, 227, 225)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하도록 적용된다.
상기 2-4-8 DCT 의 경우에 MUX(245), MUX(246), MUX(247), MUX(248) 각 데이터를 선택하는 연산은 다음에 따른다. 상기 MUX(245)는 레지스터들(225내지 228)의 출력에 접속되고 상기 레지스터들(225, 228, 225, 228)의 순서에 따라 레지스터를 선택하게 적용하고 순서적으로 4개의 데이터들을 출력한다. 상기 MUX(246)는 레지스터들(225내지 228)의 출력에 접속되고 레지스터들(225, 228, 226, 227)의 순서에 따라 레지스터를 선택하도록 적용되고 순서적으로 4 개의 데이터를 출력한다. 상기 MUX(247)는 레지스터들(225내지 228)의 출력에 접속되고 레지스터들(226, 227, 226, 227)의 순서에 따라 레지스터를 선택하도록 적용되고 순서적으로 4개의 데이터들을 출력한다. 상기 MUX(248)는 레지스터들(225내지 228)의 출력에 접속되고 레지스터들(226, 227, 225, 228)의 순서에 따라 레지스터를 선택하도록 적용되고 4개의 개 데이터를 순서적으로 출력한다.
8-8 DCT 및 2-4-8 DCT 둘다의 경우에, 제 1 가감산 그룹(25)으로 구성되는 가산/감산 회로(261)는 상기 MUX(241)로부터 출력되는 4개의 데이터중 제 1 및 제 2 차의 데이터 출력상에서, 상기 MUX(242)로부터 출력되는 4개의 데이터중 제 1, 제 2차의 데이터 출력상에서 가산 연산들을 수행하며, 상기 MUX(241)로부터 출력되는 4개의 데이터중 제 3 차, 제 4 차의 데이터 출력상에서, 상기 MUX(242)로부터 출력되는 4 개의 데이터중 제 3 차, 제 4 차의 데이터 출력상에서 감산 연산들을 수행한다. 즉, 상기 MUX(241)로부터 제 1 차의 데이터 출력은 MUX(242)로부터 제 1 차의 데이터 출력에 가산되고, 같은 가산 연산들이 제 2 차의 데이터 출력상에서 수행된다. 상기 가산/감산 회로(261)에 의해 수행되는 감산 연산들에 있어서, 상기 MUX(242)로부터의 데이터 출력은 MUX(241)로부터 출력되는 데이터에서 감산된다. 2-4-8 DCT의 경우에, 상기 가산/감산 회로(262)는 MUX(245)로부터 출력되는 4개의 데이터중에서 제 1 차, 제 2 차의 데이터 출력과, MUX(247)로부터 4 개의 데이터중에서 제 1 및 제 2 차의 데이터 출력상에서 가산 연산들을 수행하고 MUX(245)로부터 4개의 데이터중에서 제 3 차, 제 4 차의 데이터 출력상에서 MUX(247)로부터 4개의 데이터 출력중에서 제 3 차, 제 4 차의 데이터 출력상에서 감산 연산들을 수행한다.
상기 가산/감산 회로(262)에 의해 수행되는 감산 연산들에서, 상기 MUX(247)로부터의 데이터 출력은 MUX(245)로부터 데이나 출력에서 감산한다.
상기 8-8 DCT 의 경우에, 제 2 MUX 그룹(27)을 이루는 MUX(281)는 MUX(245)로부터 순서적으로 4개의 데이터 출력을 선택하며, 2-4-8 DCT 의 경우에, 상기 가산/감산 회로(262)로부터 순서적으로 데이터 출력을 선택한다. 상기 MUX(282)는 8-8 DCT의 경우에, 상기 MUX(247)로부터 순서적으로 4 개의 데이터 출력을 선택하고, 2-4-8 DCT 의 경우에, MUX(247)로부터 4 개의 데이터 출력을 선택하지 않으며 그러나 상기 MUX(282)의 4 연산 싸이클(2-4-8 DCT 에서 연산 싸이클은 "제 2 연산 싸이클"로 불림)에 대응하는 "0"을 4회 선택한다.
상기 제 3 레지스터 그룹(29)을 이루는 레지스터(301)는 산술 연산 결과로 4개의 데이터들을 순서적으로 저장한다. 상기 레지스터((302)는 MUX(243)로부터 순서적으로 4개의 데이터 출력을 저장한다. 상기 레지스터(303)는 상기 MUX(244)로부터 순서적으로 4개의 데이터 출력을 저장한다. 상기 레지스터들(304)는 상기 MUX(281)로부터 순서적으로 4개의 데이터 출력을 저장한다. 상기 레지스터(305)는 MUX(246)로부터 순서적으로 4개의 데이터 출력을 저장한다. 상기 레지스터(306)는 순서적으로 MUX(282)로부터 순서적으로 4개의 데이터 출력을 저장한다. 상기 레지스터(307)는 MUX(248)로부터 순서적으로 4개의 데이나 출력을 저장한다.
상기 P3계수 승산 회로(321)는 고정 계수 P3에 의해 레지스터(301)로부터 순서적으로 4개의 데이터 출력 각각을 승산한다. 상기 P5계수 승산 회로(322)는 고정 계수 P5에 의해 레지스터(302)로부터 순서적으로 4개의 데이터 출력 각각을 승산한다. 상기 P1계수 승산 회로(323)는 고정 계수 P5에 의해 레지스터(303)로부터 순서적으로 4개의 데이터 출력 각각을 승산한다. 상기 P6/P3계수 승산 회로(324)는 상기 8-8 DCT 및 2-4-8 DCT 사이의 고정 계수를 전환하며, 상기 8-8 DCT 의 경우에, 고정 계수 P6에 의해 레지스터(304)로부터 4개의 데이터 출력 각각을 승산하며, 2-4-8 DCT 의 경우에, 고정 계수 P3 에 의해 레지스터(304)로부터 4개의 데이터 출력 각각을 승산한다. 상기 P4/P5계수 승산 회로(325)는 상기 8-8 DCT, 2-4-8 DCT 사이에서 고정 계수들을 전환시키며, 8-8 DCT 의 경우에, 고정 계수 P4에 의해 레지스터(305)로부터 4 개의 데이터 출력 각각을 승산하며, 2-4-8 DCT 의 경우에, 고정 계수 P5에 의해 레지스터(305)로부터 4개의 데이터 출력 각각을 승산한다. 상기 P2계수 승산 회로(326)는 고정 계수 P2에 의해 레지스터(306)로부터 순서적으로 4개의 데이터 출력을 승산한다. 상기 P0P1계수 승산 회로(327)는 8-8 DCT 와 2-4-8 DCT 사이에서 고정 계수를 전환하며, 8-8 DCT 의 경우에, 고정 계수 P0에 의해 레지스터(307)로부터 4개의 데이터 출력 각각을 승산하고, 2-4-8 DCT 의 경우에, 고정 계수 P1에 의해 레지스터(307)로부터 4개의 데이터 출력 각각을 승산한다.
상기 제 3 의 레지스터 그룹(33)을 이루는 레지스터(341)는 8-6 DCT 와 2-4-8 DCT 둘다의 경우에, 순서적으로 P3계수 승산 회로(321)로부터 순서적으로 4개의데이터 출력 각각을 저장한다. 상기 레지스터(342)는 8-8 DCT, 2-4-8 DCT의 둘다의 경우에, P5계수 회로(74)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며 양의 값으로서 제 1 차, 제 4 차로 출력되는 데이터와 음의 값으로 제 2 차, 제 3 차로 출력되는 데이터는 출력한다. 상기 레지스터(343)는 8-8 DCT 와 2-4-8 DCT 둘다의 경우에, P1계수 회로(323)로부터, 순서적으로, 4개의 데이터 출력 각각을 순서적으로 저장하며 양의 값으로 제 1 차, 제 3 차로 출력되는 데이터와, 음의 값으로 제 2차, 제 4 차로 출력되는 데이터를 출력한다.
상기 레지스터(344)는 순서적으로, P6/P3계수 승산 회로(324)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 8-8 DCT 의 경우에, 양의 값으로서 제 1 차로 출력되는 데이터와, 음의 값으로서 제 2 차 내지 제 4 차로 출력되는 데이터를 출력하며, 2--4-8 DCT 의 경우에, 양의 값으로서 제 1 차 내지 제 4 차로 출력되는 4개의 데이터 각각을 출력한다. 상기 레지스터(345)는 순서적으로, P4/P5계수 승산 회로(325)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 8-8 DCT 의 경우에, 양의 값으로서 제 1 차 내지 제 4 차로 출력되는 데이터와, 2-4-8 DCT 의 경우에, 양의 값으로서 제 1 차와 제 4 차로 출력되는 4개의 데이터 각각과 음의 값으로서 제 2 차와 제 3 차로 출력되는 데이터를 출력한다. 상기 레지스터(346)는 순서적으로 상기 P2계수 승산 회로(326)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 양의 값으로서 제 1 차, 제 3 차로 출력되는 데이터와, 음의 값으로서 제 2 차 및 제 4 차로 출력되는 데이터를 출력한다. 상기 레지스터(347)는 순서적으로, 상기 P0/ P1승산 회로(327)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 8-8 DCT 의 경우에, 양의 값으로서 제 1 차, 제 4 차로 출력되는 데이터와, 음의 값으로서 제 2 차, 제 3 차로 출력되는 데이터를 출력하며, 2-4-8 DCT 의 경우에, 양의 값으로서 제 1 차, 제 3 차로 출력되는 데이터와 음의 값으로서 제 2 차, 제 4 차로 출력되는 데이터를 출력한다.
상기 제 2 가산 회로 그룹(37)에 포함된 가산 회로(381)는 제 5 레지스터 그룹(39)에 포함된 레지스터(401)와 AND 회로(361)와 함께 데이터에 대해 누적 회로를 구성한다. 8-8 DCT 와 2-4-8 DCT 둘다에서, AND 회로(361)의 하나의 입력에 대해, 레지스터(401)로부터 데이터를 전달하며, AND 회로(361)의 다른 입력에 대해, 2진 신호 스트링 발생 회로(도시하지 않음)로부터 출력되는 4개의 연산 싸이클중에서 제 1 연산 싸이클 내지 제 4 연산 싸이클의 순서에 따라 매 연산 싸이클에서 순서적으로 신호들 "0", "1", "0", "1" 을 전달한다. 즉, 누적갓은 가산 회로(381)에서 레지스터(341)로부터 출력되는 데이터를 가산함으로써 얻어진 레지스터(401)로부터의 출력이며, 하나의 이전 클럭상에서 레지스터(401)에 저장된 데이터에 가산 회로(381)의 하나의 입력을 전달하고 다음 클릭상에서 AND 회로(361)를 통해 가산 회로(381)의 다른 입력에 전달한다.
상기 가산 회로(382)는 레지스터(402)와 AND 회로(362)와 함께 데이터에 대해 누적 회로를 구성한다. 또한, 8-8 DCT 와 2-4-8 DCT 의 경우 둘다에서, AND 회로(362)의 하나의 입력에 레지스터(402)로부터 데이터를 전달하며, AND 회로(362)의 다른 입력에 2진 신호 스트링 발생 회로(도시하지 않음)로부터 출력되는 4개의 연산 싸이클중에서 제 1 연산 싸이클 내지 제 4 연산 싸이클의 순서에 따라 매 연산 싸이클에서 순서적으로 신호들 "0", "1", "0", "1" 을 전달한다. 즉, 누적값은 가산 회로(382), (344,343)으로부터의 데이터 출력을 가산함으로써 얻어진 레지스터(402)로부터의 출력이고, 하나의 이전 클릭상에서 레지스터(402)에 저장된 데이터에 대해 가산 회로(382)의 제 1, 제 2 입력에 전달되고 다음 클릭상에서, AND 회로(362)를 통해 가산 회로(382)의 제 3 입력에 전달된다.
상기 가산 회로(383)는 레지스터(403)와 AND 회로(363)과 함께 데이터용 누적 회로를 구성한다. 8-8 DCT 의 경우에 AND 회로(363)의 하나의 입력에 레지스터(343)으로부터 데이터를 전달하고 AND 회로(363)의 다른 입력에, 4개의 연산 싸이클중에서 제 1 연산 싸이클 내지는 제 4 연산 싸이클의 순서에 따라 매 연산 싸이클에서 "0"신호를 전달한다. 2-4-8 DCT 의 경우, AND 회로(363)의 하나의 입력에 레지스터(343)로부터 데이터를 전달하며 AND 회로(363)의 하나의 입력에 레지스터(343)로부터 데이터를 전달하며 AND 회로(363)의 다른 입력에 2진 스트링 발생 회로(도시하지 않음)로부터 출력되는 4개의 연산 싸이클중에서 제 1 연산 싸이클 내지 제 4 연산 싸이클의 순서에 따라 매 연산 싸이클에서 순서적으로 신호들 "0", "1", "0", "1"을 전달한다. 즉, 8-8 DCT 의 경우에, 레지스터(342)로부터의 데이터가 가산 회로(383)에 의해 통과하며, 레지스터(403)에 저장된다. 2-4-8 DCT의 경우, 누적값은 가산 회로(383)에서 레지스터(342)로부터의 데이터 출력을 가산함으로써 얻어진 레지스터(403)으로부터의 출력이며, 하나의 이전 클럭상에서 레지스터(403)에 저장된 데이터에 대해 상기 가산 회로(383)의 하나의 입력에 전달하며 다음 클럭상에서 AND 회로(363)를 통해 가산 회로(383)의 다른 입력에 전달된다
상기 가산 회로(384)는 레지스터(404), AND 회로(364,365)와 함께 데이터용 누적 회로로 구성된다. AND 회로(364)의 입력에 대해서는 레지스터(344)로부터 데이터를 전달하며 8-8 DCT 의 경우에, AND 회로(364)의 다른 입력에 대해서는 4개의 연산 싸이클중 제 1 연산 싸이클에서 제 4 의 연산 싸이클까지 매 연산 싸이클에서 신호 "1" 을 전달하고, 2-4-8 DCT 의 경우, 2진 신호 스트링 발생 회로(도시하지 않음)에서 출력되는 4개의 연산 싸이클중에서 제 1 연산 싸이클 내지 제 4 연산 싸이클 순서에 따라 매 연산 싸이클에서 신호 "0"을 전달한다. AND 회로(365)중 하나의 입력에 대해 레지스터(404)로부터 데이터를 전달하며, 8-8 DCT 의 경우에, AND 회로(365)의 다른 입력에 대해 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4연산 싸이클까지 매연산 싸이클에서 신호 "0"을 전달하고 2-4-8 DCT 의 경우에, 2진 신호 스트링 발생 회로(도시하지 않음)로부터 출력되는 4개의 제 2 연산 싸이클중에서 제 1 연산 싸이클 내지 제 4 연산 싸이클 순서에 따라 매 연산 싸이클에서 신호 "0", "1", "0", "1" 을 전달한다.
8-8 DCT 의 경우에, 레지스터들(344내지 347)로부터 매 연산 싸이클에서 순서적으로 데이터 출력 각각은 매 연산 싸이클에서 가산 회로(384)의 제 1, 제 2, 제 3, 제 4 입력에 입력되고 순서적으로 레지스터(404)에 가산되어 저장된다. 2-4-8 DCT 의 경우에, 누적값은 레지스터(404)로부터 출력되고 가산 회로(384)에서 매 연산 싸이클에서 레지스터들(345,346,347)로부터 순차적인 데이터 출력을 가산하여 얻어지고 하나의 이전 클럭상의 레지스터(405)에서 저장된 데이터에, 다음 클릭상에서, AND 회로(364)를 통해 가산 회로(384)의 제 5 입력에 상기 가산 회로(384)의 제 2, 제 3, 제 4 입력을 전달한다.레지스터(401) 내지 레지스터(404)에 대한 MUX(12)의 각 회로에서의 지연들 및 그들의 연산 싸이클들에서의 편차가 다음의 동작들의 설명에서 일어난다해도, 이러한 지연들 및 편차들은 상세히 언급하지 않는다.다음에, 제 1 실시예의 연산을 도 1 내지 도4를 참고로 기술한다. 처음에, 8-8 DCT 에 대한 연산이 설명된다.8x8 화소 데이터 블록을 이루는 각 라인에 포함된 8개의 화소 데이터들(f0내지 f7) 각각은 MUX(12)로부터 순서적으로 출력되고 제 1 레지스터 그룹(13)을 구성하는 레지스터들(141내지 148) 각각에 저장된다. 즉, 데이터(f0)는 레지스터(141)에, 데이터(f7)는 레지스터(142)에, 데이터(f1) 레지스터(143)에, 데이터(f6)는 레지스터(144)에, 데이터(f2)는 레지스터(145)에, 데이터(f5)는 레지스터(146)에, 데이터(f3)는 레지스터(147)에, 데이터(f4)는 레지스터(148)에 저장된다. 상기 레지스터(141)에 저장된 데이터(f0)는 가산 회로(181)의 합 입력에 전달되고, 레지스터(142)에 저장된 데이터(f7)는 가산 회로(181)의 가수 입력에 전달되고 따라서 데이터(f0+ f7= a0)는 가산 회로(181)에서 출력된다. 상기 레지스터(143)에 저장된 데이터(f1)는 가산 회로(182)의 합 입력에 전달되고, 레지스터(144)에 저장된 데이터(f6)는 가산 회로(182)의 가수 입력에 전달되고, 따라서, 가산값(f1+ f2= a1)는 가산 회로(182)로부터 출력된다. 상기 레지스터(145)에 저장된 데이터(f2)는 가산 회로(183)의 합 입력에 전달되고 레지스터(146)에 저장된 데이터(f5)는 가산 회로(183)의 가수 입력에 전달되고, 따라서, 데이터(f2+ f5= a2)는 가산 회로(183)에서 출력된다. 레지스터(147)에 저장된 데이터(f3)는 가산 회로(184)의 합 입력에 전달되고, 데이터(f4)는 레지스터(147)에 저장되고, 따라서, (f3+ f4= a3)는 가산 회로(184)로부터 출력된다. 상기 레지스터(141)에 저장된 데이터(f0)는 감산 회로(201)의 감산 입력에 전달되고, 레지스터(142)에 저장된 데이터(f7)는 상기 감산 회로(201)의 감수 입력에 전달되고, 따라서, (f0- f7= a4)는 감산 회로(201)로부터 출력된다. 레지스터(143)에 저장된 데이터(F1)는 감산 회로(202)의 감산 입력에 전달되고, 레지스터(144)에 저장된 데이터(F6)는 감산 회로(202)의 감수 입력에 전달되고, 따라서, 데이터(f1- f6= a5)는 감산 회로(202)로부터 출력된다. 상기 레지스터(145)에 저장된 데이터(f2)는 감산 회로(203)의 감산 입력에 전달되고, 레지스터(146)에 저장된 데이터(f5)는 감산 회로(203)의 감수 입력에 전달되고 따라서, 데이터(f2- f5= a6)는 감산 회로(203)으로부터 출력된다. 상기 레지스터(147)에 저장된 데이터 f3는 감산 회로(204)의 감산 입력에 전달되고, 레지스터(147)에 저장된 데이터(f4)는 감산 회로(204)의 감수 입력에 전달되고, 따라서, 데이터(f3- f4= a4)는 감산 회로(204)로부터 출력된다.
상기 가산 회로(181)에서 가산 회로(184)까지의 데이터(a0내지 a3) 출력은 상기 레지스터들(221내지 224)를 통해 MUXs(241내지 244)로 입력된다. 상기 MUX(241)는 레지스터들(221, 224, 221, 224)의 순서에 따라 레지스터를 선택하며 4개의 대응 데이터(a0, a3, a0, a3)를 순서적으로 출력한다. 상기 MUX(242)는 레지스터들(221내지 223)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 대응 데이터(a1, a2, a1, a2)를 출력한다. 상기 MUX(243)는 레지스터들(221, 224, 222, 223)의 순서에 따라 레지스터를 선택하며, 순서적으로 4개의 대응 데이터들(a0, a3, a1, a2)를 출력한다. 상기 MUX(244)는 레지스터들(222, 223, 221, 224)의 순서에 따라 레지스터를 선택하고, 4개의 대응 데이터들(a1, a2, a0, a3)를 순서적으로 출력한다.
상기 MUX(245)는 레지스터들(225, 227, 226, 228)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 대응 데이터들(a4, a6, a5, a7)를 출력한다. 상기 MUX(240)는 레지스터들(226, 225, 228, 227)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 대응 데이터들(a5, a4, a7, a6)를 출력한다. 상기 MUX(247)는 레지스터들(227, 228, 225, 226)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 대응 데이터들(a6, a7, a4, a5)를 출력한다. 상기 MUX(248)는 레지스터들(228, 226, 227, 225)의 순서에 따라 레지스터를 선택하며, 순서적으로 4개의 대응 데이터들(a7, a5, a6, a4)를 출력한다.
상기 가감산 회로(261)는 MUX(241)로부터 순서적으로 출력되는 4개의 데이터들(a0, a2, a0, a3)중 제 1차, 제 2 차의 데이터 출력상과, MUX(242)로부터 출력되는 4개의 데이터들(a1, a2, a1, a2)중 제1, 제2차의 데이터 출력상에서 가산 연산들을 수행하고 상기 MUX(241)로부터 순차저으로 출력되는 4개의 데이터들(a0, a2, a0, a3)중에서 제3, 제4차로 데이터 출력상에서, 상기 MUX(242)로부터 출력되는 4개의 데이터들(a1, a2, a1, a2)중에서 제 3 및 제 4 차로 데이터 출력상에서 감산 연산들을 수행하고, 결과적으로, 데이터들(a0+ a1, a0- a1, a3- a2)를 순서적으로 출력한다. 즉, 상기 MUX(241)로부터의 제 1 차의 데이터 출력은 상기 MUX(242)로부터 제 1 차의 데이터 출력에 가산되고 같은 가산 연산들이 제 2 차의 데이터 출력상에서 수행되고 유사한 감산 연산들이 제 3 및 제 4 차의 데이터 출력상에서 수행된다. 레지스터(301)(도3에 도시된 레지스터 301을 보라)에서 순서적으로 저장된 후, 가감산 회로(261)로부터 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매연산 싸이클에서 데이터들(a0+ a1, a3+ a2, a3+ a2, a0- a1, a3- a2)각각은 P3계수 승산 회로(321)에서 고정 계수 P3에 의해 승산되고 순서적으로 레지스터(341)에 저장된다(도3의 레지스터(341)를 보라). 상기 레지스터(302)에 순서적으로 저장된 후, MUX(243)로부터 순서적으로 출력되는 데이터들(a0, a3, a1, a2) 각각은 P5계수 승산 회로(322)에서 고정 계수 P5에 의해 승산된다. 레지스터(342)에 순서적으로 저장된다(도3의 레지스터(341)를 보라). 레지스터(303)에 순서적으로 저장된 후(도3에 도시된 레지스터(303)을 보라), MUX(244)로부터 순서적으로 출력되는 (a1, a2, a0, a3)데이터 각각은 P1계수 승산 회로(323)의 고정 계수 P1에 의해 승산된다(도3의 레지스터(343)를 보라).
상기 레지스터(304)로 순서적으로 저장된 후(도4에 도시된 레지스터(304)를 보라), MUX(245)로부터 순서적으로 데이터들(a4, a6, a5, a7)출력 각각은, P6/P3계수 승산 회로(324)에서 고정 계수 P6에 의해 승산되고 순서적으로 레지스터(344)에 저장된다(도4의 레지스터(344)를 보라). 레지스터(305)로 순서적으로 저장된 후(도4의 레지스터(305)를 보라), MUX(246)으로부터 순서적으로, 데이터들(a5, a4, a7,a6) 출력 각각은 P4/P5계수 승산 회로(325)에서 고정 계수 P4에 의해 승산되고 상기 레지스터들(345)로 순서적으로 저장된다(도3의 레지스터(345)를 보라). 상기 레지스터(306)에 순서적으로 저장된 후(도4에 도시된 레지스터(306)을 보라), MUX(247)로부터 순서적으로, 데이터들(a6, a7, a4, a5) 출력 각각은 P2계수 승산 회로(326)에 의해 고정 계수 P2에 의해 승산되고 레지스터(346)(도4의 레지스터(346)를 보라)에 순서적으로 저장된다. 상기 레지스터(307)에 순서적으로 저장된 후 MUX(248)로부터 순서적으로 데이터들(a7, a5, a6, a4) 출력 각각은 P0/ P1계수 승산 회로(327)에 의해 고정 계수 P0에 의해 승산되고 레지스터(347)로 순서적으로 저장된다(도4의 레지스터(347)를 보라).
상기 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클로부터 매 연산 싸이클에서 레지스터(341)로부터 출력되는 ((a0+ a1) P3, (a3+ a2) P3, (a0- a1) P3, (a3- a2) P3)데이터들 각각 중에서, 데이터((a0+ a1) P3)는 가산 회로(381), 레지스터(401), AND 회로(361)에 수행된 4개의 연산 싸이클중에서 제 1 연산 싸이클로 레지스터(401)에 저장되고, 데이터((a0+ a1) P3+ (a3+ a2) P3)는 제 2 연산 싸이클로 레지스터(401)에 저장되고 데이터((a0 - a1) P3)는 제 3 연산 싸이클로 레지스터(401)에 저장되고 데이터((a0 - a1)P3+ (a3 - a2)P3) 제 4 연산 싸이클(도3의 레지스터(401)를 보라)로 레지스터(401)에 저장된다. 레지스터(401)에 순서적으로 저장되고 그로부터 출력되는 데이터중에서, 제 1 연산 싸이클로 저장된 데이터((a0 + a1) P3)와 제 3 연산 싸이클로 레지스터(401)에 저장된 데이터((a0 - a1) P3)는 값을 규정하지도 않고 이산 코싸인 변환시 변환 계수 데이터로서 사용되지 않는다. 상기 데이터는 도2에서 레지스터(401)의 출력 라인중 하부 우측에서( * )로 표시된다.
상기 제 2 연산 싸이클로 저장된 데이터((a0+ a1) P3+ (a3+ a2) P3)와 제 4 연산 싸이클로 저장된 데이터((a0- a1) P3+ (a3- a2) P3)는 식(45)에 포함된 연산값들중 변환 계수 데이터(F0, F4)로서 사용된다. 상기 변환 계수 데이터(F0, F4)는 도2의 레지스터(401)의 출력 라인중 하부 우측에 도시된다.
4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클로 레지스터(342)로부터의 데이터들(a0P5, a3P5, a1P5, a2P50) 및 4개의 연산 싸이클중에서 데이터들(a0P5, a3P5, a1P5, a2P5) 및 4개의 연산 싸이클중에서 (343)로부터의 데이터들(a1P1, a2P1, a0P1, a3P1)중에서, 상기 데이터(a0P5+ a1P1)는 가산 회로(382), 레지스터(402), AND 회로(362)에 의해 수행되는 4개의 제 2 연산 싸이클중에서 제 1 연산 싸이클로 레지스터(402)에 저장되고, 데이터(a0P5+ a1P1- a3P5- a2P1은 제 2 연산 싸이클로 레지스터(402)에 저장되고, 데이터 (- a2P1+ a0P1)는 제 3 싸이클로 레지스터(402)에 저장되고, 데이터 (- a1P5+ a0P1+ a2P5- a3P1)는 제 4 싸이클로 레지스터(402)에 저장된다(도3의 레지스터(402)를 보라).
레지스터(402)에 순서적으로 저장되고 그로부터 출력되는 데이터중에서, 제 1 연산 싸이클 및 제 3 연산 싸이클로 저장된 데이터(a0P5+ a1P1, a0P1- a1P5)는 값을 규정하지 않으며 이산 코싸인 변환시 변환 계수 데이터로서 사용되지도 않는다. 상기 데이터는 도2의 레지스터(402)의 출력 라인중 하부 우측에서 별표( * )로 표시된다. 상기 제 2 연산 싸이클과 제 4 연산 싸이클에 저장된 데이터들(a0P5+ a1P1- a3P5- a2P1) 및 데이터들(- a1P5+ a0 1+ a2P5- a3P1)는 식(45)에 포함된 변환 계수 데이터(F2, F6)로서 사용된다. 상기 변환 계수 데이터들(F2, F6)은 레지스터(402)의 출력 라인의 하부 우측에 도시된다. 신호 "0"은 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클의 AND 회로(363)의 다른 입력에 전달되기 때문에, 4개의 연산 싸이클중에서 제 1 내지 제 4 연산 싸이클의 매 연산 싸이클에서 레지스터(344)로부터의 데이터들(a4P6, -a6P6, -a5P6, -a7P6)은 가산 회로(383)에 의해 통과하여 레지스터(403)에 저장된다. 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클에서 레지스터(403)에 순서적으로 저장된 데이터는 값을 규정하지 않은 값이며 이산 코싸인 변환시, 변환 계수 데이터로서 사용되지 않는다. 상기 데이터는 도2에서 레지스터(403)의 출력 라인중 하부 우측상에서 별표(* )로 표시된다. 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클로 레지스터(344)로부터 순서적으로 출력되는 데이터들(a4P6, - a6P6, - a5P6, - a7P6)과 AND 회로(364)를 통해, 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클로 레지스터들(345)로부터 출력되는 (a5P4, a4P4, a7P4, a6P4), 4개의 연산 싸이클중에서 출력되는 (a5P4, a4P4, a7P4, a6P4), 4개의 레지스터(346)로부터 출력되는 (a6P2, - a7P2, a4P2, - a5P2), 4개의 연산 싸이클로부터 출력되는 (a6P2, - a7P2, a4P2, - a5P2) 레지스터(347)로부터 출력되는(a7P0, - a5P0, a6P0, a4P0)은 상기 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클로부터 매 연산 싸이클에 의해, 가산 회로(384)에 가산되고 상기 가산 연산들의 결과는 순서적으로 레지스터들(404)에 저장된다(도4의 레지스터(404)를 보라).
상기 레지스터들(404)에 저장된 데이터(a4P6+ a5P4+ a6P2+ a7P0)와 4개의 연산 싸이클중에서 제 1 연산 싸이클의 출력은 식(45)에 포함된 연산값의 변환 계수 데이터 F1으로서 사용되고, 제 2 연산 싸이클의 레지스터(404)로부터의 데이터(- a6P6+ a4P4- a7P2- a5P0)은 식(45)에 포함된 연산값중 변환 계수 데이터 (F3)로서 사용되고 제 3 연산 싸이클의 레지스터(404)로부터의 데이터(- a5P6+ a7P4+ a4P2+ a6P0)는 식(45)에 포함된 연산값중 변환 계수 데이터(F5)로서 사용되고, 제 4 연산 싸이클의 레지스터(404)로부터 출력되는 (- a7P6+ a6P4- a5P2+ a4P0)는 식(45)에 포함된 연산값중 변환 계수 데이터(F7)로서 사용된다. 상기 변환 계수 데이터(F1, F3, F5, F7)는 레지스터(404)의 출력 라인의 하부 우측에 도시된다.
위의 산술 연산을 완성하여, 8x8 데이터 블록을 구성하는 한개의 라인에 포함된 8개의 데이터상의 제 1 의 8-8 DCT 가 종료한다. 위의 기술과 같은 제 1 의 8-8 DCT 는 8x8 데이터 블록을 구성하는 다음 라인에 이어지는 각 라인에서 수행되고, 다음에 8x8 데이터 블록을 구성하는 모든 8 라인에서 제 1 의 8-8 DCT 가 유사한 방법으로 종료된다. 모든 8 라인상의 제 1 의 8-8 DCT 를 완성한 후, 제 2의 8-8 DCT 는 8x8 데이터 블록을 구성하는 8개의 데이터 스트링의 각 스트링상에서 수행된다. 제 1 의 8-8 DCT 와 제 2 의 8-8 DCT 를 완성하여 얻어진 변환 계수 데이터는 8x8 화상 데이터 입력 압축을 위해 사용된다. 따라서, 압축된 화소 데이터의 전송은 8x8 화소 데이터 블록의 압축을 위해 전송되는 영상내에서 8x8 화소 데이터상에서 제 1의 8-8 DCT, 제 2 의8-8 DCT 를 수행하여 얻어진 변환 계수 데이터를 사용함으로써 가능해진다.
다음에, 2-4-8 DCT 에 대한 연산을 설명한다. 상기 MUX(12)로부터 순서적으로 출력되는 8x8 화소 데이터를 구성하는 각 화소 라인에 포함된 8개의 화소 데이터들(f0내지 f7) 각각은 (f0내지 f7)의 화소 데이터가 레지스터들(141내지 148)에 대응하는 방법으로 각 레지스터들(141내지 148)에 저장된다.
레지스터(141)에 저장된 데이터(f0)는 가산 회로(181)의 합 입력에 전달되고 레지스터(142)에 공급된 데이터(f1)는 상기 가산 입력(181)의 가수 입력에 전달되고 데이터(f0+ f1= b0)는 가산 회로(181)로부터 출력된다. 레지스터들(143)에 저장된 데이터(f2)는 가산 회로(182)의 합 입력에 전달되고 레지스터들(144)에 공급된 데이터(f3)는 가산 회로(182)의 가수 입력에 전달되고 따라서, (f2+ f3= b1)는 가산 회로(182)로부터 출력된다. 상기 레지스터(145)에 저장된 데이터(f4)는 가산 회로(183)의 합 입력에 저장되고 레지스터(146)에 저장된 데이터(f5)는 가산 회로(183)의 가수 입력에 전달되고, 따라서, 데이터(f4+ f5= b2)는 가산 회로(182)로부터 출력된다. 상기 레지스터(147)에 저장된 데이터(f6)는 가산 회로(184)의 합 입력에 전달되고 레지스터(148)에 저장된 데이터(f7)는 상기 가산 회로(184)의 가수 입력에 전달되고 데이터(f6+ f7= b3)는 가산 회로(184)로부터 출력된다. 상기 레지스터(141)에 저장된 데이터(f0)는 감산 회로(201)의 차 입력에 전달되고 레지스터(142)에 저장된 데이터(f1)는 감산 회로(201)의 감수 입력에 전달되고, 데이터(f0- f1= b4)는 감산 회로(201)로부터 출력된다. 상기 레지스터들(143)에 저장된 데이터(f2)는 상기 감산 회로(202)의 차 입력에 전달되고 레지스터들(144)에 저장된 데이터(f3)는 상기 감산 회로(202)의 감수 입력에 전달되고, 그때, (f2- f2= b5)가 감산 회로(202)로부터 출력된다. 레지스터들(145)에 저장된 데이터(f4)는 감산 회로(203)의 차 입력에 전달되며 레지스터들(146)에 저장된 데이터(f5)는 감산 회로(203)의 감수 입력에 전달되고 데이터(f4- f4= b6)이 감산 회로(203)에서 출력된다. 레지스터들(147)에 저장된 데이터(f6)는 상기 감산 회로(204)의 차 입력에 전달되고 레지스터들(147)에 저장된 데이터(f6)는 감산 회로(204)의 감수 입력에 전달되고 데이터(f6- f7= b7)는 감산 회로(203)으로부터 출력된다.
상기 가산 회로(181)에서 가산 회로(184)까지 출력되는 데이터들(b0내지 b3)은 레지스터들(221내지 224)를 통해 MUXs(241내지 244)에 입력한다. MUX(241)은 레지스터들(221, 224, 221, 224)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 데이터(b0, b3, b0, b3)를 출력한다. MUX(242)는 레지스터들(223, 223, 223, 223)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 데이터들(b1, b2, b1, b2)를 출력한다. MUX(243)는 레지스터들(221, 224, 222, 223)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들(b0, b3, b1, b2)를 출력한다. MUX(244)는 레지스터들(222, 223, 221, 224)의 순서에 따라 레지스터를 선택하며, 순서적으로 4개의 데이터들(b1, b2, b0, b3)를 출력한8다.
상기 가산/감산 회로(261)는 MUX(241)로부터 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 2 연산 싸이클까지 매 연산 싸이클에서 주어진 4개의 데이터들 (b0, b3, b0, b3)중에서 제 1 및 제 2 차의 데이터 출력과 MUX(242)로부터 (b0, b3, b0, b3) 중에서 제 1 및 제 2 차의 데이터 출력과 MUX(242)로부터 (b0, b3, b0, b3) 중에서 제 1 및 제 2 차의 데이터 출력과 상의 가산 연산들을 수행하고, 상기 MUX(241)로부터 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 2 연산 싸이클까지 매 연산 싸이클에서 주어진 4개의 데이터 (b0, b3, b0, b3) 중에서 제 3차, 제 4 차의 데이터 출력과, MUX(242) (b0, b3, b0, b3) 중에서 제 3 차, 제 4 차의 데이터 출력과, MUX(242) (b0, b3, b0, b3) 중에서 제 3 차, 제 4 차의 데이터 출력과 출력상에서 감산 연산들을 수행한다. 결과적으로, 데이터들(b0+ b1, b3+ b2, b0- b1, b3- b2)를 출력한다. 즉, MUX(241)로부터의 제 1 차의 데이터 출력은 MUX(242)로부터 제 2 차의 데이터 출력에 가산되고 같은 가산 및 감산 연산들이 다른 데이터상에서 수행된다.
레지스터(301)(레지스터(301)을 보라)에 저장된 후 가산/감산 회로(261)로부터 순서적으로 출력되는 데이터들(b0+ b1, b3+ b2, b0- b1, b3- b2) 각각은 P3계수 승산 회로(321)의 고정 계수 P3에 의해 승산된다.
상기 레지스터(302)(레지스터 302를 보라)에 순서적으로 저장된 후, MUX(243)으로부터 순서적으로 출력되는 데이터들(b0, b3, b1, b2) 각각은 P5계수 승산 회로(322)의 고정 계수 P5에 순서적으로 승산되고 레지스터(342)(레지스터(342)를 보라)에 순서적으로 저장된다. 레지스터(303)에 순서적으로 저장된 후 MUX(244)로부터 순서적으로 출력되는 데이터(b1, b2, b0, b3) 각각은 P1계수 승산 회로(323)의 고정 계수 P1에 의해 승산되고 레지스터(343)에 순서적으로 저장된다(레지스터(343)를 보라).
상기 MUX(245)는 레지스터들(225, 228, 225, 228)의 순서에 따라 레지스터를 선택하며, 4 개의 데이터들(b4, b7, b4, b7)를 순서적으로 출력한다. 상기 MUX(247)는 레지스터들(226, 227, 226, 227)의 순서에 따라 레지스터를 선택하며, 순서적으로 4개의 데이터들(b5, b6, b5, b6)을 출력한다.
상기 가감산 회로(262)는 MUX(245)로부터 주어진 데이터들(b4, b7), 4개의 (b4, b7)중에서 제 1차, 제 2 차의 데이터 출력과, MUX(247)로부터 주어진 4개의 데이터들(b5, b6, b5, b6)중에서 제 1 차, 제 2 차의 데이터 출력상에서 가산 연산들을 수행하고, 상기 MUX(245)로부터 주어진 데이터 출력상에서 가산 연산들을 수행하고, 상기 MUX(245)로부터 주어진 데이터 출력상에서 감산 연산들을 수행하고, 결과적으로, 데이터들(b4+ b5, b7+ b6, b4- b5, b7- b6)를 출력한다. 순서적으로 출력되는 데이터들(b4+ b5, b7+ b6, b4- b5, b7- b6)은 MUX(281)를 통해 레지스터(304)에 순서적으로 저장된다(레지스터들(304)를 보라).
상기 MUX(246)는 레지스터들(225, 228, 226, 227)의 순서에 따라 레지스터를 선택하며 4개의 데이터들(b4, b7, b5, b6)를 순서적으로 출력한다. 순서적으로 출력되는 4개의 데이터들(b4,b7, b5, b6)은 레지스터(305)(레지스터(305)를 보라)에 저장된다. 상기 MUX(282)는 "0"을 4회 선택하고 순서적으로 "0"데이터를 출력한다. 순서적으로 출력되는 4개의 "0"데이터는 순서적으로(도6의 레지스터(306을 보라) 레지스터 (306)에 저장된다. 상기 MUX(248)는 레지스터들(226, 227, 225, 228)의 순서에 따라 레지스터를 선택하며, 4개의 데이터들(b5, b6, b4, b7)를 순서적으로 출력한다. 순서적으로 출력되는 4개의 데이터들(b5, b6, b4, b7)은 레지스터(307)에 (레지스터(307)를 보라)저장된다.
레지스터들(341)로부터 순서적으로 출력되는 데이터들((b0+ b1)P3, (b3+ b2) P3, (b0- b1) P3, (b3- b2) P3) 중에서, 데이터((b0+ b1) P3)는 레지스터(401) 및AND 회로(361)에 의해 수행된 4개의 연산 싸이클중에서 제 1 연산 싸이클의 레지스터(401)에 저장되고, 데이터((b0+ b1) P3+ (b3+ b2) P3)는 제 2 연산 싸이클로 레지스터(401)에 저장되고, 데이터((b0- b1) P3+ (b3- b2) P3)는 제 4 연산 싸이클(도5의 레지스터(401)를 보라)로 레지스터(401)에 저장된다.
레지스터(401)에 저장되고, 그로부터 출력되는 데이터중에서, 제 1 연산 싸이클의 레지스터(401)에 저장된 데이터((b0+ b1) P3), 제 3 연산 싸이클로 레지스터(401)에 저장된 데이터((b0- b1) P3)는 값을 규정하지 않고, 이산 코싸인 변환 방법으로 변환 계수 데이터로서 사용되지 않는다. 상기 데이터는 도2의 레지스터(401)의 출력 라인 하부 좌측상의 별표( * )로 표시된다.
제 2 연산 싸이클에 저장된 상기 데이터((b0+ b1) P3+ (b3+ b2) P3)와 제 4 연산 싸이클에 저장된 데이터((b0- b1) P3+ (b3- b2) P3)는 식(51)에 포함된 연산값의 변환 계수 데이터들(F0, f2)로서 사용된다. 상기 변환 계수 데이터들(F0, f2)는 상기 레지스터(401)의 출력 라인의 하부 좌측에 도시된다.
레지스터(342)로부터 순서적으로 출력되는 데이터들(boP5, b3P5, b1P5, b2P5), 레지스터(343)으로부터 순서적으로 출력되는 데이터들(b1P1, b2P1, b0P1, b3P1), 데이터(b0P5+ b1P1)는 가산 회로(382), 레지스터(402), AND 회로(362)에 의해 수행된 4개의 연산 싸이클중에서 제 1 의 연산 싸이클로 레지스터(402)에 저장되고, 데이터(b0P5+ b1P1- b3P5- b2P1)는 제 2 연산 싸이클로 레지스터(402)에 저장되고, 데이터(- b1P5+ b0P1)는 제 3 연산 싸이클로 레지스터(402)에 저장되고, 데이터(- b1P5+ b0P1+ b2P5- b3P1)는 제 4 연산 싸이클로 레지스터(402)에 저장된다.(레지스터(402)를 보라).
레지스터(402)에 저장되어 그로부터 출력되는 데이터중에서, 제 1 연산 및 제 3 연산으로 저장된 (b0P5+ b1P1, - b1P5+ b0P1)은 비규정된 값이고, 이산 코싸인 변환 방법에서, 변환 계수 데이터로서 사용되지 않는다. 상기 데이터는 도2의 레지스터들(402)의 출력 라인의 하부 좌측에서 별표( * )로 표시된다.
제 2 연산 싸이클에 저장된 (b0P5+ b1P1, - b3P5- b2P1)및 제 4 연산 싸이클에 저장된 (- b1P5+ b0P1+ b2P5- b3P1)은 식(45)에 포함된 변환 계수 데이터들(F1, F3)의 연산값으로서 사용된다. 상기 변환 계수 데이터 (F1, F3)는 도2의 레지스터(401)의 출력 라인의 하부 우측에 도시된다.
레지스터(304)에 순서적으로 저장되고 그로부터 출력되는 (b4+ b5, b7+ b6, b4- b5, b7- b6) 각각은 P6/P3계수 승산 회로(324)에서 고정 계수 P3에 의해 승산된다. 상기 4개의 연산 싸이클중 제 1 의 연산 싸이클에서, 레지스터(344)(도6의 레지스터(344)를 보라)에 저장되고, P6/P3계수 승산 회로(324)에서 출력되는 데이터(b4+ b5)P3)는 AND 회로(363)으로부터 "0" 데이터를 가산하고 레지스터(403)에 저장한다(도6의 레지스터(403)를 보라). 상기 제 1 연산 싸이클의 레지스터(403)에 전달된 데이터는 2-4-8 DCT 에서 변환 계수 데이터로서 사용되지 않는다. 상기 데이터는 도2의 레지스터(403)의 출력 라인의 하부측에 별표( * )로 표시된다.
4개의 연산 싸이클중에서 제 2 연산 싸이클로 AND 회로(363)을 통한개의 데이터(b4+ b5) 입력과 4개의 연산 싸이클중에서 제 2 연산 싸이클로 레지스터(344)로부터의 데이터((b7+ b6) P3) 출력은 가산 회로(383)에 전달되고 데이터((b4+ b5) P3+ (b7+ b6) P3)는 가산 회로(383)로부터 출력되어 레지스터(403)에 저장된다(레지스터(403)을 보라). 제 2 연산 싸이클로 레지스터(403)에 전달된 데이터는 2-4-8 DCT 에서 변환 계수 데이터(F4)로서 사용된다. 상기 변환 계수 데이터(F4)는 도2의 레지스터(403)의 출력 라인 하부측에 도시된다.
데이터((b4- b5) P3)및 "0" 데이터는 4개의 연산 싸이클중에서 제 3 연산 싸이클로 가산 회로에 전달되고 데이터((b4- b5) P3)는 가산 회로(383)으로부터 출력되고 레지스터(403)에 저장된다(도6의 레지스터(403)을 보라). 상기 제 3 연산 싸이클에서 레지스터(403)으로 전달된 데이터는 2-4-8 DCT 에서 변환 계수 데이터로 사용되지 않는다. 상기 데이터는 도2의 레지스터(403)의 출력 라인측에 별표( * )로 표시된다. 4개의 연산 싸이클에서 제 4의 연산 싸이클의 AND 회로(363)를 통한개의 데이터((b4- b5) P3)입력과 4개의 연산 싸이클에서 제 4 연산 싸이클의 AND 회로(363)를 통한개의 데이터((b4- b5) P3) 입력은 가산 회로(383)에 전달되고 데이터((b4- b5) P3+ (b7- b6) P3)는 가산 회로(383)으로부터 출력되고 레지스터(403)에 저장된다(레지스터(403)를 보라). 제 4 연산 싸이클에서 레지스터(403)로 전달되는 데이터는 2-4-8 DCT 에서 변환 계수 데이터(F6)로 사용되며, 상기 변환 계수 데이터(F6)는 도2의 레지스터(403)의 출력 라인 하측에 도시된다.
4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 싸이클에서 레지스터(305)에 저장된 데이터들(b4, b7, b5, b6) 각각과 순차적인 출력은 p4/p5계수 승산 회로(325)에서 고정 계수 p5에 의해 승산된다. 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에 저장된 4 개의 "0" 데이터 각각과 (레지스터(306)을 보라) 순차적인 출력은 p4/p5계수 승산 회로(325)에서 고정 계수 p5에 의해 승산된다. 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 레지스터(307)에 저장된 4개의 데이터들(b5, b6, b4, b7) 각각은 p0/ P1계수 승산 회로(327)에서 고정 계수 P1에 의해 승산된다.
상기 2-4-8 DCT 에서, "0"이 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 AND 회로(364)의 다른 입력에 전달되기 때문에 p6/p3계수 승산 회로(324)로부터의 데이나 출력은 가산 회로(384)에 전달되지 않으며, 데이터들(b4p5, b7p5, b5p5, b6p5)(도6의 레지스터(345)를 보라)는 p4/p5계수 승산 회로(325)로부터 순서적으로 출력하며 레지스터(345)에 순서적으로 저장되고 P0/ P1계수 승산 회로(327)로부터 출력되고 레지스터(347)에 순서적으로 저장되고 매 연산 싸이클에서 가산 회로(384)에 전달된다.
데이터(b4P5+ b6P1)는 4개의 연산 싸이클중에서 제 1 연산 싸이클로 레지스터(404)(도6의 레지스터들(404)를 보라)에 저장되고, 가산 회로(384)로부터 출력된다.
상기 제 1 연산 싸이클의 레지스터(404)에 전달된 데이터는 2-4-8 DCT 의 변환 계수 데이터로서 사용된다. 상기 변환 계수 데이터는 도2의 레지스터(404)의 출력 라인의 하부 좌측에 도시된다.
4개의 연산 싸이클중에서 제 2 연산 싸이클의 AND 회로(365)를 통한개의 데이터(b4P5+ b5P1) 입력과 제 2 연산 싸이클의 레지스터(345)로부터의 (- b7P5) 출력 및 제 2 연산 싸이클의 레지스터(347)로부터의 (- b6P1)데이터 출력 및 데이터는 가산 회로(384)에 전달되고 데이터(b4P5+ b5P1- b7P5- b6P1)는 가산 회로(384)로부터 출력되고 레지스터(404)(레지스터(404)를 보라)에 저장된다. 제 2 연산 싸이클의 레지스터(404)에 전달된 데이터는 2-4-8 DCT 에서 변환 계수 데이터로서 사용되고, 상기 변환 계수 데이터는 도2의 레지스터(404)의 출력 라인의 하부 좌측에 도시된다.
4개의 연산 싸이클중에의 제 3 연산 싸이클에서, 데이터 (- b6P5+ b4P1)는 가산 회로(384)로부터 출력되고 레지스터(404)(레지스터(404)를 보라)에 저장된다. 제 3 연산 싸이클의 레지스터(404)에 전달된 데이터는 2-4-8 DCT 에서 변환 계수 데이터로서 사용되고, 상기 데이터는 도2의 레지스터(403)의 출력 라인 하부 좌측에 별표( * )로 표시된다.
4개의 연산 싸이클중에서 제 4 연산 싸이클의 AND 회로(365)를 통한개의 데이터(- b6P5+ b4P1)입력과 제 4 연산 싸이클의 레지스터(345)로부터 출력되는 데이터(b6P5)와 제 4 연산 싸이클로 레지스터(347)로부터 출력되는 (-b7P1)는 가산회로(384)로부터 출력되고 레지스터(404)에 저장된다(도6의 레지스터(404)를 보라). 제 4 연산 싸이클의 레지스터(404)에 전달된 데이터는 2-4-8 DCT 에서 변환 계수 데이터(F7)로서 사용된다. 상기 DCT 계수 F7은 도2의 레지스터(404)의 출력 라인중 하부 좌측에 도시된다.
위의 산술 연산을 완성함으로서, 8x8 데이터 블록으로 구성되는 한개의 라인에 포함된 8개의 데이터상의 제 1 의 2-4-8 DCT 가 종료된다. 위에서 기술된 제1의 2-4-8 DCT는 8x8 데이터 블록을 구성하는 다음 라인에 이은 라인 각각에서 수행되고 8x8 데이터 블록을 구성하는 모든 8개의 라인상의 제 1의 2-4-8 DCT 가 같은 방법으로 종료된다. 모든 8개의 라인상에서 2-4-8 DCT 의 완성후에, 제2의 2-4-8 DCT는 8x8 데이터 블록을 구성하는 8개의 데이터 스트링 각 스트링상에서 수행되고 제 2의 2-4-8 DCT 가 종료된다. 상기 제 2 2-4-8 DCT 를 완성하여 얻어진 변환 계수 데이터는 8x8 화소 데이터의 압축을 위해 사용된다. 전송되는 영상 데이터로 8x8 화소 데이터 각각에서 제 1 2-4-8 DCT 와 제 2 2-4-8 DCT 를 수행함으로써, 영상 데이터가 압축되고 전송된다.
따라서, 본 발명에 따라서, 8-8 DCT 장치와 2-4-8 장치가 상기 8-8 DCT 회로에 사용된 고정 계수 승산 회로의 일부가 2-4-8 DCT 에 요구된 고정 계수 승산 회로로서 전환되어 사용되도록 구성되며, 8-8 DCT 에서 파이프 라인형 처리 산술 연산을 통해 얻어진 고속 계산 특징은 2-4-8 DCT 에 유지되고 고속 계산 특징이 소형화된 8-8 DCT 와 2-4-8 DCT 장치에서 조차도 계속 유지된다.
<제 2 실시예>
도7은 본 발명의 제 2 실시예에 다른 8-8/2-4-8 IDCT 구성을 부분적으로 보여주는 개략 블록 다이어그램이다. 도8은 또한 제 2 실시예에 따른 8-8/2-4-8 IDCT의 구성을 부분적으로 보여주는 개략 블록 다이어그램이다. 도9는 제 2 실시예에 따른 8-8/2-4-8 IDCT 를 구성하는 8-8 IDCT 의 연산을 설명하는 타이밍도의 일부이다. 도10은 제 2 실시예에 따른8-8/2-4-8 IDCT 를 구성하는 8-8 IDCT 연산을 설명하는 챠이밍 챠트의 나머지 부분이다. 도11은 제 2 실시예에 따른 8-8/2-4-8 IDCT 를 구성하는 2-4-8 IDCT 의 연산을 설명하는 타이밍 챠트의 일부이다. 도12는 제 2 실시예에 따른 8-8/2-4-8 IDCT 를 구성하는 2-4-8 IDCT 의 연산을 설명하는 타이밍 챠트의 나머지 부분이다. 도8의 라인 II - iI 상에서 도7의 라인 II - iI 를 겹치므로서, 8-8 DCT/2-4-8 IDCT 장치의 구성이 도시된다.
따라서 상기 실시예에 다라, 8-8 IDCT/2-4-8 IDCT 장치가 8-8 IDCT 회로에 사용된 고정 계수 승산 회로의 일부가 2-4-8IDCT 에 요구된 고정 계수 승산 회로로서 전환되어 사용되도록 구성되므로, 8-8 IDCT 에서 파이프 라인 처리형 산술 연산을 통해 얻어진 고속 계산 특성은 2-4-8 IDCT 에서 유지되고 고속 계산 특성은 소형화된 8-8 IDCT 장치와 2-4-8 IDCT 장치에서 조차 계속 유지된다.
8-8 IDCT/2-4-8 IDCT 장치의 구성을 설명하기 전에, 8x8 화소 데이터의 매 한개의 라인이나 스트링상의 8-8 IDCT 를 수행하는데 사용된 연산식은 아래에 기술되어 있다.
1차원식(52)의 형태로 "관련기술의 설명에서 기술된 2차원식(18)을 표시하고 식(40)의 경우에서처럼 h,x 에 따라 식(52)를 압축해제하여 얻어진 f(0), f(1),f(2), f(3), f(4), f(5), f(6), f(7) 및 F(0,v), f(1,v), f(2,v), f(3,v), f(4,v), f(5,v), f(6,v) 및 F(7,v)때 f(0) = f0, f(1) = f1, f(2) = f2, f(3) = f3, f(4) = f4, f(5) = f5, f(6) = f6, f(7) = f7및 F(0,v) = F0, F(1,v) = F1, F(2,v) = F2,, F(3,v) = F3, F(4,v) = F4, F(5,v) = F5, F(6,v) = F6및 F(7,v) = F7로 설정되고, 상기 결과식은 식(53)을 얻기 위해 변화되어 재배열된다. 식(53)의 (P0내지 P6)은 식(40)에서와 같은 값이다.
식(54)는 상기 식(53)의 우측을 변화시켜 얻어지며 식(55)은 식(54)의 우측을 재배열하여 얻어진다.
식(55)의 우측을 재배열하여, 식(56)이 얻어지고, 식(56) 내지 식(57)의 F0,f1, f2, f3, f4, f5, f6, f7을 설정하여 식(58)이 얻어진다.
제 2 실시예에 따른 8-8 IDCT/2-4-8 IDC 장치(110)를 구성하는 8-8 IDCT 장치는 식(58)에 따라 연산된다.
다음에, 8x8 화소 데이터를 구성하는 매 한개의 라인 또는 스트링상의 2-4-8 IDCT 를 수행하기 위해 사용된 연산식은 다음과 같다.
1차원식(52)의 형태로 "관련기술의 설명"에 설명된 2차원 식(18)을 표현하여 식(40)의 경우에, h,x 에 따라 식(52)를 압축해제하여 얻어진 f(0), f(1), f(2),f(3), f(4), f(5), f(6), f(7) 및 f(0,z), f(1,z), f(2,z), f(3,z), f(4,z), f(5,z), f(6,z) 및 f(7,z)가 f(0) = f0, f(1) = f1, f(2) = f2, f(3) = f3, f(4) = f4, f(5) = f5, f(6) = f6, f(7) = f7및 F(0,v) = F0, F(1,v) = F1, f(2,v) = F2, F(3,v) = F3, F(4,v) = F4, F(5,v) = F5, F(6,v) = F6및 F(7,v) = F7이 되도록 설정될때, 결과식은 변화되어 재배열되고 식(60)이 얻어진다. 식(60)에서 (P0내지 P6)은 식(40)에서와 같은 값이다.
식(61)은 위의 식(60)의 우측을 변화시켜 얻어지고 식(62)은 식(61)의 우측을 재배열하여 얻어진다.
식(63)에서와 같은 방법으로 식(62)에서 F0+ f4, F3+ f7, F1+ f5, F2+ f6, F0- f4, F3- f7, F1- f5, F2- f6를 설정하여, 식(64)가 얻어진다. 제 2 실시예에 따른 8-8 IDCT/2-4-8 IDCT 장치(110)를 구성하는 2-4-8 IDCT 장치는 식(64)에따라 연산한다.
8-8 IDCT 의 경우에, MUX(112)는 8-8 IDCT 가 수행되는 8x8 변환 계수 데이터(후에는 "8x8 데이터"로 불림)중에서 제 1 의 IDCT 에 대해 사용되는 8 개의 데이터 각각과 대응 레지스터들(141내지 148) 각각에 대해 제 1 IDCT 에 의해 얻어진 8-8 데이터로 구성되는 각 라인에 포함된 8 개의 데이터 각각을 선택적으로 출력하며, 2-4-8 IDCT 의 경우에, 제 1 레지스터 그룹(113)을 구성하는 레지스터(141)에 대한 8 개의 데이터(F0내지 F7)중에서 데이터(F0), 레지스터(145)에 대한개의 데이터(F1), 레지스터(143)에 대한개의 데이터(F2), 레지스터(147)에 대한개의 데이터(F3), 레지스터(142)에 대한개의 데이터(F4), 레지스터(146)에 대한개의 데이터(F5), 레지스터(144)에 대한개의 데이터(F6), 레지스(148)에 대한개의 데이터(F7)을 선택적으로 출력한다.
8-8 IDCT 의 경우에, 제 1 MUX 그룹(15)을 구성하는 MUXs(1612,162, 1632, 164, 156, 166, 167, 168)은 "0" 데이터를 선택하고 8-8 IDCT의 경우에, MUXs(1611, 1631)은 각각 레지스터들(142, 144)를 선택한다. 2-4-8 IDCT 에서, MUXs(162, 164내지 168)은 각각 대응 레지스터들(142, 144내지 148)을 선택한다. 상기 2-4-8 IDCT 의 경우에, MUXs(1611, 1612, 1631, 1632)는 레지스터들(141,142, 143, 144)를 선택한다. 제 2 MUX 그룹(123)을 구성하는 MUX(1241)는 레지스터들(221, 222, 223, 224) 각각의 출력에 접속되고 8-8 IDCT, 2-4-8 IDCT 둘다에서, 레지스터(221)를 4번 선택하고, 순서적으로 4개의 데이터들을 출력하다. MUX(1242)는 레지스터들(221, 222, 223, 224) 각각의 출력에 접속되고 8-8 IDCT 의 경우에, 레지스터(223)를 4번 선택하고, 순서적으로 4개의 데이터들을 출력한다. 2-4-8 IDCT 의 경우에, 레지스터(222)를 4번 선택하고, 순서적으로 4개의 데이터들을 출력한다. MUX(1243)는 8-8 IDCT 의 경우에, 레지스터들(221내지 224)의 각 출력에 접속되고 8-8 IDCT의 경우에 레지스터들(222, 224, 224, 222)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력하며, 2-4-8 IDCT 의 경우에, 레지스터들(223, 224, 224, 223)의 순서에 따라 레지스터를 선택하며, 순서적으로 4개의 데이터들을 출력하며, MUX(1244)는 레지스터들(221, 222, 223, 224)의 각 출력에 접속되고 8-8 IDCT의 경우에, 레지스터들(224, 222, 222, 224)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 데이터들을 출력하며, 2-4-8 IDCT 의 경우에, 레지스터들(224, 223, 223, 224)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 데이터들을 출력한다. MUX(1245)는 각 레지스터들(225, 226, 227, 228)의 출력에 각각 접속되고 8-8 IDCT 의 경우에, 레지스터들(225, 227, 226, 228)의 순서에 따라 레지스터를 선택하며, 순서적으로 4개의 데이터들을 출력하고, 2-4-8 IDCT 의 경우에, 레지스터(225)를 4번 선택하고 순서적으로 4개의 데이터들을 출력한다. MUS(1246)는 레지스터들(225, 226, 227, 228)의 각 출력에 접속되고 8-8 IDCT 에서, 레지스터들(226, 225, 228, 227)의 순서에 따라 레지스터를 선택하며 순서적으로 4개의 데이터들을 출력하고, 2-4-8 IDCT 의 경우에, 레지스터들(227, 228, 228, 227)의 순서에 따라 레지스터를 선택하고 순서적으로 4개의 데이터들을 출력한다. MUX(1247)는 레지스터들(225, 226, 227, 228)의 각 출력에 접속되고, 8-8 IDCT 의 경우에, 레지스터들(227, 228, 225, 226)의 순서에 따라 레지스터를 선택하고 4개의 데이터들을 출력한다. 2-4-8 IDCT 의 경우에, 레지스터(226)를 4번 선택하며 순서적으로 4개의 데이터들을 출력한다. MUX(1248)는 레지스터들(225, 226, 227, 228) 각각의 출력에 접속되고 8-8 IDCT 의경우에, 레지스터들(228, 226, 227, 225)의 순서에 따라 레지스터를 선택하며, 순서적으로 4개의 데이터들을 출력하며, 레지스터들(228, 227, 227, 228)을 선택하고 순서적으로 4개의 데이터들을 출력한다. 제 1 가산/감산 회로 그룹(125)을 구성하는 가산/감산 회로(1261)는 MUX(1241)로부터 순서적으로 출력되는 4개의 데이터중에서의 데이터와 제 1 및 제 4 순서에 따라 MUX(1242)로부터 순서적으로 4개의 데이터 출력중에서의 데이터상에서 가산 연산들을 수행하고, MUX(1241), MUX(1242)로부터 4개의 데이터 출력중에서 제 2, 제 3 순서에 따라 데이터 출력상에서 감산 연산들을 수행하며, 즉, 상기 MUX(1241)로부터 제 1 순서에 따라 데이터 출력은 MUX(1242)로부터 제 1 순서에 따라 데이터 출력에 가산되고 따라서 같은 가산 연산들이 제 4 의 순서에 따라 데이터 출력상에서 수행되고, 유사한 감산 연산들은 제 2, 제 3 순서에 따라 데이터 출력상에서 수행된다. 가산/감산 회로(1261)에 의해 수행된 감산 연산들에서, MUX(1242)로부터 데이터 출력은 MUX(1241)로부터 출력되는 데이터에서 감산된다.
상기 제 1 가산/감산 회로 그룹(125)을 구성하는 가산/감산 회로(1262)는 MUX(1245)로부터 순서적으로 4개의 데이터 출력중에서의 데이터와 제 1, 제 4 순서에 따라 MUX(1247)로부터 순서적으로 출력되는 4개의 데이터중에서 데이터에서 가산 연산들을 수행하며, MUX(1245), MUX(1247)로부터 출력되는 4개의 데이터중에서 제2, 제 3 순서에 따라 데이터 출력상에서 감산 연산들을 수행하고, 즉, 상기 MUX(1241)로부터 제 1 순서의 데이터 출력은 MUX(1247)로부터 제 1 순서에 따라 데이터 출력이 상기 MUX(1247)로부터 제 1 순서에 따라 데이터 출력에 가산되고 따라서 같은 가산 연산들이 제 4 순서에 따라 데이터 출력상에서 수행되고 유사한 감산 연산들이 제 2, 제 3 순서에 따라 데이터 출력상에서 수행된다. 상기 가산/감산 회로(1262)에 의해 수행된 감산 연산들에서, 상기 MUX(1247)로부터의 데이터 출력은, MUX(1245)로부터 데이터 출력에서 감산된다.
상기 8-8 IDCT 및 2-4-8 IDCT 둘다에서 제 4 레지스터 그룹(133)을 구성하는 레지스터(1341)는 p5계수 승산 회로(322)로부터 순서적으로 4개의 데이터 출력 각각을 저장하고 양의 값으로서 모든 데이터 각각을 출력한다. 제 4 의 레지스터 그룹(133)을 구성하는 레지스터(1342)는, 8-8 DCT, 2-4-8 IDCT 둘다에서, p5계수 승산 회로로부터 순서적으로 4개의 데이터 출력 각각을 저장하며 양의 값으로서 제 1, 제 3 순서에 따라 저장된 데이터와 음의 값으로 제 2, 제 4 순서에 따라 저장된 데이터를 출력한다. 상기 8-8 IDCT, 2-4-8 IDCT 둘다에서, 레지스터(1343)는, P1계수 승산 회로(323)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 양의 값으로서 제 1, 제 2 순서에 따라 저장된 데이터와 음의 값으로 제 3, 제 4 순서에 따라 저장된 데이터를 출력한다.
레지스터(1344)는 P6/P3계수 승산 회로(324)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 8-8 IDCT 의 경우에, 양의 값으로 제 1, 제 2, 제 4 순서에 따라 출력되는 데이터와, 음의 값으로 제 3 순서에 따라 출력되는 데이터를 출력하며, 2-4-8 IDCT 경우에, 양의 값으로서 저장된 모든 데이터 각각을 출력하며, 레지스터(1345)는 p4/p5로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 8-8 IDCT 의 경우에, 양의 값으로 제 1, 제 2 순서에 따라 출력되는 데이터와 음의 값으로 제 3, 제 4 순서에 따라 출력되는 데이터를 출력하며 2-4-8 IDCT 의 경우에, 양의 값으로 제 1, 제 3 순서에 따라 데이터와 음의 값으로서 제 2, 제 4 순서에 따라 출력되는 데이터를 출력한다. 레지스터(1346)는 p2 계수 승산 회로(326)으로부터 순서적으로 4개의 데이터 출력 각각에서 저장되고 음의 값으로서 제 1, 제 4 순서에 따라 출력되는 데이터와 양의 값으로 제 2, 제 3 순서에 따라 출력되는 데이터를 출력한다. 레지스터(1347)는 P0P0/ P1계수 승산 회로(327)로부터 순서적으로 4개의 데이터 출력 각각을 저장하며, 8-8 IDCT의 경우에, 음의 값으로서 제 1 내지 제 3 순서에 따라 출력되는 데이터와, 양의 값으로서 제 4 순서에 따라 출력되는 데이터를 출력하며, 2-4-8 IDCT 의 경우에, 음의 값으로서 제 1, 제 2 순서에 따라 데이터와 제 3, 제 4 순서의 데이터를 출력한다.
가산 회로(1382)는 레지스터(1341)에 저장된 데이터와, 레지스터(1342)에 저장된 데이터, 레지스터(1343)에 저장된 데이터상에서 가산 연산들을 수행한다. 가산 회로(1382)로부터 순차적인 데이터 출력은 순서적으로 레지스터(402)에 저장된다. 가산 회로(1384)는 레지스터(1344)에 저장된 데이터, 레지스터(1345)에 저장된 데이터, 레지스터(1346)에 저장된 데이터, 레지스들(1347)에 저장된 데이터상에서 가산 연산들을 수행하며, 상기 가산 회로(1384)로부터의 데이터 출력은 레지스터들(404)에 저장된다.
상기 레지스터(402)로부터의 데이터는 가산 회로(44)의 합 입력과 감산 회로(42)의 차 입력에 전달되고 레지스터(404)로부터의 데이터는 가산회로(44)의 가수 입력에 감산 회로(42)의 감수 입력에 전달된다. 감산 회로(42)로부터의 데이터 출력은 제 6 레지스터 그룹(45)을 이루는 레지스터(46)에 전달되고 가산 회로(44)로부터의 데이터는 제 6 레지스터 그룹(45)을 이루는 레지스터(48)에 전달된다.
더구나, 제 2 실시예의 구성은 위의 기술을 제외하고는 제 1 실시예와 같다. 그러므로, 도7,도8에서, 같은 번호는 제 1 실시예에서 도1과 도2와 같은 성분으로 주어지며 그들의 상세한 설명은 생략되었다.
하지만, 레지스터(1341)의 구성은 레지스터(341)의 구성과 같다. 상기 가산 회로(181)는 레지스터(141)와 MUX(162)의 출력에 접속되고, 가산 회로(182)는 레지스터(143)과 MUX(164)의 출력에 접속되고 상기 가산 회로(183)는 레지스터(145)와 MUX(164)의 출력에 접속된다. 상기 가산 회로(184)는 레지스터(147)와 MUX(168)의 출력에 접속된다. 더구나, 감산 회로(201)는 MUX(1611, 1612) 각각의 출력에 접속되고, 감산 회로(202)는 MUX(1631), MUX(1632)의 출력에 접속되고, 감산 회로(203)는 레지스터들(146). MUC(1622)에 접속되고, 감산 회로(203)는 레지스터들(146)과 MUX(165)의 출력에 접속되고, 감산 회로(204)는 레지스터(148) 및 MUX(168)의 출력에 접속된다.
다음에, 제 2 실시예의 연산들이 도7 내지 도12를 참고로 기술된다. 처음에, 8-8 IDCT 의 연산들이 설명된다.
상기 8-8 DCT 에 의해 압축된 8x8 영상 데이터중에서 스트링 방향으로 존재하는 8개의 데이터들(F0내지 F7)의 데이터 각각은 제 1 레지스터 그룹(113)을 이루는 대응 레지스터들(141내지 148)에 각각에 저장된다.
상기 MUXs(1612, 162, 1632, 164, 165, 166, 167, 168)은 선택된 "0" 데이터를 가지고, (MUX1611,MUX1631)은 각각 선택된 레지스터들(142, 144)를 가지기 때문에, 데이터 F0=a0는 가산 회로(181)로부터 출력되고, 가산 회로(182)로부터의 F2= a2데이터, 가산 회로(183)으로부터의 데이터(F4= a3), 가산 회로(184)로부터의 (F6= a1), 데이터(F1= a5)는 감산 회로(201)로부터 출력되고, 감산 회로(202)로부터의 (F3= a7), 감산 회로(203)로부터의 데이터(- f5= a6), 감산 회로(204)로부터의 데이터(- f7= a4)가 출력된다.
상기 가산 회로들(181내지 184)로부터 순차적인 데이터들(a0내지 a3)은 레지스터들(221내지 224)를 통해 MUXs(1241내지 1244)에 입력된다. 상기 가산/감산 회로(126)는 MUX(1241)로부터 4개의 연산 싸이클중에서 제 1 싸이클 내지 제 4 싸이클로부터 매 연산 싸이클에서 순서적으로 데이터(a0) 출력과, 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클에서 순차적인 데이터(a3) 출력에 대해 가산/감산 연산들을 수행하고, 결과적으로, 데이터(a0+ a3), 데이터(a0- a3), 데이터(a0- a3), 데이터(a0+ a3)는 순서적으로 출력된다.
가산/감산 회로(1261)로부터 순서적으로 출력되는 데이터들(a0+ a3, a0- a3, a0- a3, a0+ a3)은 (301)에 (도9의 레지스터(301)을 보라)저장된다. MUX(1243)으로부터 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클에서 출력되는 데이터들(a2, a1), 데이터들(a1, a2)와 MUX(1244)로부터 4개의 연산 싸이클중에서 제 1 연산에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 출력되는 데이터(a1), 데이터(a2), 데이터들(a2, a1)은 레지스터(303)에 순서적으로 저장된다(도9의 레지스터(303)을 보라). MUX(1245)로부터 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 데이터들(a5, a6, a7, a4) 출력은 레지스터(304)에 순서적으로 저장된다(도10의 레지스터(304)를 보라). MUX(1246)으로부터 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클에서의 데이터들(a7, a5, a4, a6) 출력은 순서적으로 레지스터(305)에 저장된다(도10의 레지스터(305)를 보라). 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 데이터들(a6, a4, a5, a7) 출력은 레지스터(306)에 저장된다(도10의 레지스터(306)을 보라). 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 데이터들(a4, a7, a6, a5) 출력은 레지스터(307)에 순서적으로 저장된다(도10의 레지스터(307)을 보라).
상기 레지스터(301)에 순서적으로 저장된 데이터는 p3계수 승산 회로(321)에서 고정 계수 p3에 의해 승산되고 결과 데이터는 레지스터(1341)에서 순서적으로 저장된다(도9의 레지스터(1341)를 보라). 레지스터(302)에 순서적으로 저장된 데이터는 p5 계수 승산 회로(322)에서 고정 계수 p5에 의해 승산되고 결과 데이터는 레지스터(1342)에 순서적으로 저장된다(도9의 레지스(1342)를 보라). 레지스터(303)에 순서적으로 저장된 데이터는 P1계수 승산 회로(323)에서 고정 계수 P1에 의해 승산되며, 결과 데이터는 레지스터(1343)에 순서적으로 저장된다. 레지스터(304)에 순서적으로 저장된 데이터는 p6계수 승산 회로(324)에서 고정 계수 p6에 의해 승산되고 결과 데이터는 레지스터(1344)에 순서적으로 저장된다(도10의 레지스터(1344)를 보라). 레지스터(305)에 순서적으로 저장된 데이터는 p4/p5계수 승산 회로(325)에서 고정 계수 p4에 의해 승산되고 결과 데이터는 레지스터(1345)에 순서적으로 저장된다(도10의 레지스터(345)를 보라). 레지스터(306)에 순서적으로 저장된 데이터는 p2계수 승산 회로(326)에서 고정 계수 p2에 의해 승산되고, 결과 데이터는 레지스터(1346)에 순서적으로 저장된다(도10의 레지스터(1346)을 보라). 상기 레지스터(307)에서 순서적으로 저장된 데이터는 P0/ P1계수 승산 회로(327)에서 고정 계수 P0에 의해 승산되고 결과 데이터는 레지스터(1347)에서 순서적으로 저장된다(도10의 레지스터(134)를 보라).
상기 가산 회로(1382)는 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클의 순서에 따라 레지스터들(134, 1342, 1343)으로부터 전달된 데이터의 각각에가산 연산들을 수행하며 출력 데이터들((a0+ a3) P3+ a2P5+ a1P1, (a0- a3) P3- a1P5+ a2P1, (a0- a3) P3+ a1P5- a2P1, (a0+ a3) P3- a2P5- a1P1)은 레지스터(402)에 순서적으로 저장된다(도9의 레지스터(402)를 보라).
상기 가산 회로(1384)는 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클 순서에 따라 레지스터들(1344, 1345, 1346)으로부터 전달된 데이터의 각각에가산 연산들을 수행하고, 출력 데이터들(a5P6+ a7P4- a6P2- a4P0, a6P6+ a5p4+ a4P2- a7P0, - a7P6- a4P4+ a5P2- a6P0, a4P6- a6P4- a7P2+ a5P0)은 레지스터(404)에서 순서적으로 저장된다(도9의 레지스터(404)를 보라).
상기 레지스터(402)에 저장된 데이터 및 매 제 2 연산 싸이클의 출력이 레지스터(404)에 저장되는 데이터에 의해 승산될때, 압축전에 표시되는 데이터들(f0내지 f7) 중에서 데이터(f0,)가산 회로(44)에서 매 제 2 연산 싸이클에서의 출력이 8x8 데이터 블록을 구성하는 스트링 방향으로 배열된 8 개의 데이터들(F0내지 F7)에서 수행될때, 제 1 연산 싸이클에서 얻어지며, 압축이 8 개의 데이터들(F0내지 F7)상에서 수행되기 전에 나타나는 데이터들(f0내지 f7) 중에서 데이터(f1)는 제 2 연산 싸이클에서 얻어지며, 압축이 8 개의 데이터들(F0내지 F7)입력상에서 수행되기 전에 나타나는 데이터(f0내지 f7) 중에서 데이터(f2)는 제 3 연산 싸이클에서 얻어지며, 압축이 8개의 데이터들(F0내지 F7)입력상에서 수행되기 전에 나타나는 데이터들(f0내지 f7) 중에서 데이터(f3)는 제 4 연산 싸이클에서 얻어진다. 상기 데이터들(f0, f1, f2, f3)은 레지스터(48)에 순서적으로 저장된다. 도8에서, 레지스터(48)에 저장되는 영상 데이터들(f0내지 f3)은 8개의 데이터들(F0내지 F7)에 대응하며, 레지스터(48)의 출력 라인의 최하부에 도시된다.
더구나, 레지스터(404)에 저장된 데이터 및 제 2 연산 싸이클의 출력이 레지스터(402)에 저장된 데이터로부터 감산되고 감산 회로(42)에서 제 2 연산 싸이클의출력, 압축이 8x8 입력 데이터 블록을 구성하는 스트링 방향으로 배열된 8개의 데이터들(f0내지 f7) 상에서 수행되기 전에 나타나는 데이터들(f0내지 f7) 중에서 데이터(f4)는 제 1 연산 싸이클로 얻어지며, 압축이 8 개의 입력 데이터들(F0내지 F7) 상에서 수행되기 전에 나타나는 데이터들(f0내지 f7) 중에서 데이터(f5)는 제 2 연산 싸이클로 얻어지며, 압축이 8 개의 입력 데이터들(F0내지 F7)에서 수행되기 전에 나타나는 데이터들(f0내지 f7) 중에서 데이터들(f6)이 제 3 연산 싸이클에서 얻어지고, 압축이 8개의 데이터들(F0내지 F7)입력상에서 수행되기 전에 나타나는 데이터들(f0내지 f7) 중에서 데이터(f7)는 제 4 연산 싸이클에서 얻어진다. 데이터들(f4, f5, f6, f7)은 순서적으로 레지스터(46)(도10의 레지스터(46)를 보라)에 순서적으로 저장된다. 도8에서, 레지스터(46)에 저장되는 영상 데이터들(f1내지 f7)은 8개의 데이터들(F0내지 F7)에 대응하며, 레지스터(48)의 출력 라인의 하부에 도시된다.
위의 산술 연산을 완성함으로써, 8x8 데이터 블록을 구성하는 한개의 스트링에 포함된 8개의 데이터상에서 제 1의 8-8 IDCT 가 종료된다. 위의 기술과 같은 제 1의 8-8 IDCT 는 8x8 데이터 블록을 구성하는 다음 스트링에 이은 스트링 각각에서 수행되고 후에, 8x8 데이터 블록을 구성하는 모든 8개의 스트링상의 제 1 8-8 IDCT 가 유사한 방법으로 종료된다. 모든 8개의 스트링상에서 제 1 8-8 IDCT 의완성후에, 제 2 의 8-8 IDCT 가 8x8 데이터 블록을 구성하는 각 라인에 포함된 8개의 데이터(IDCT 에 대해 전달된 데이터)상에서 수행된다. 8x8 개의 데이터 각각에서 수행되는 제 1 의 8-8 IDCT 를 완성함으로써, 상기 8-8 DCT 에 의해 압축된 전송 영상 데이터가 재생된다.
다음에, 2-4-8 IDCT 의 연산이 아래에 기술된다. MUX(112)로부터 순서적으로 전송된 8x8 전송 계수 데이터의 스트링 방향으로 배열된 2-4-8 DCT를 수행함으로써 얻어진 8x8 데이터 블록중에서 8개의 데이터들(F0내지 F7) 각각은 다음과 같이 제 1 레지스터 그룹(113)을 구성하는 레지스터들(141내지 148) 각각에 저장된다. 즉, 데이터(F0)는 레지스터(141)에, 데이터(F4)는 레지스터(142)에, 데이터(F2)는 레지스터(143)에, 데이터(F6)는 레지스들(144)에, 데이터(F1)는 레지스터(145)에, 데이터(F5)는 레지스들(146)에, 데이터(F3)는 레지스터(147)에, 데이터(F7)는 레지스터(148)에 저장된다.
상기 MUX(162), (164내지 168)이 선택된 대응 레지스터(141), 레지스터들(144내지 148)을 가지고 MUXs(1611, 1612, 1631, 1632)은 선택된 대응 레지스터들(141, 143, 143, 144)를 가지기 때문에, 데이터(F0+ f4= b0)는 가산 회로(181)로부터 출력되고, 데이터(F2+ f6= b3)는 가산 회로(182), 데이터(F1+ f5= b2)는 가산 회로(183), 데이터(F3+ f7= b1)는 가산 회로(184), 데이터(F0- f4= b4)는 감산 회로(201), 데이터(F2- f6= b7)는 감산 회로(202), 데이터(F3- f7= b5)는 감산 회로(204)로부터 출력된다.
상기 가산 회로(181)에서 (184)까지의 데이터들(b0 내지 b3)출력은 상기 레지스터들(221내지 224)를 통해 MUXs(1241내지 1244)에 입력된다. 가산 연산들과 감산 연산들이 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클에서 MUX(1241)로부터의 데이터(b0)출력과, 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 MUX(1242)로부터의 데이터(b3)출력에서 순서적으로 가감산 연산들에 의해 수행되고, 결과적으로 데이터들(b0+ b3, b0- b3, b0- b3, b0+ b3)은 순서적으로 출력된다. 상기 가산/감산 회로(1261)으로부터의 데이터들(b0+ b3, b0- b3, b0- b3, b0+ b3)은 레지스터(301)에 저장된다(도11의 레지스터(301)을 보라).
상기 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 MUX(1243)으로부터의 데이터들(b2, b1, b1, b2) 출력은 레지스터(302)에 저장되고(도11의 레지스터(302)를 보라), 4개의 연산 싸이클중에서 제 1 연산에서 제 4 연산 싸이클로부터 매 연산 싸이클에서 MUX(1244)로부터 데이터들(b1, b2, b2및 b1)은 순서적으로 레지스터(303)에 저장된다(도11의 레지스터(303)을 보라).
가감산 연산들이 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클로부터 매 연산 싸이클에서 MUX(1245)로부터 데이터들(b4, b4, b4, b4) 출력과 4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지 매 연산 싸이클에서 MUX(1247)로부터의 데이터들(b7, b7, b7, b7) 출력상에서 가산/감산 회로(1262)에 의해 수행되고, 데이터들(b4+ b7, b4- b7, b4- b7, b4+ b7)은 가감산 회로(1262)로부터 출력되고, 데이터들(b4+ b7, b4- b7, b4- b7, b4+ b7)은 순서적으로 레지스터(304)에 저장된다(도11의 레지스터(304)를 보라).
4개의 연산 싸이클중에서 제 1 연산 싸이클에서 제 4 연산 싸이클까지의 매 연산 싸이클에서 MUX(1246)으로부터의 데이터들(b6, b5, b5, b6) 출력은 레지스터(305)에 순서적으로 저장되고(도11의 레지스터(305)를 보라), 4개의 연산 싸이클중에서 제 1 연산에서 제 4 연산까지의 매 연산 싸이클에서 MUX(1247)로부터의 데이터들(b7, b7, b7, b7) 출력은 MUX(282)에 의해 모두 선택되지 않으며, 상기 MUX(282)에 의해 선택된 4개의 "0" 데이터는 순서적으로 레지스터(306)에 저장된다(도11의 레지스터(306)을 보라). 4개의 연산 싸이클중에서 제 1 연산에서 제 4 연산까지의 매 연산 싸이클에서 MUX(1248)로부터의 데이터들(b5, b6, b6, b5) 출력은 순서적으로 레지스터(307)에 저장된다(도11의 레지스터(307)을 보라).
상기 레지스터(301)에 순서적으로 저장된 각 데이터는 P3계수 승산 회로(321)에서 고정 계수 P3에 의해 승산되고 결과 데이터는 레지스터(1341)에 순서적으로 저장된다(도11의 레지스터(1341)를 보라). 상기 레지스터(302)에 순서적으로 저장된 각 데이터는 P5계수 승산 회로(322)에서 고정 계수 P5에 의해 승산되고 결과 데이터는 레지스터(1342)에 순서적으로 저장된다(도11의 레지스터(1342)를 보라). 레지스터(303)에 순서적으로 저장된 각 데이터는 P1계수 승산 회로(321)에서 고정 계수 P1에 의해 승산되고 결과 데이터는 레지스터(1343)에 순서적으로 저장된다(도11의 레지스터(1343)을 보라). 상기 레지스터(304)에서 순서적으로 저장된 각 데이터는 P6/P3계수 승산 회로(324)에서 고정 계수 P3에 의해 승산되고 결과 데이터는 레지스터(1344)에서 순서적으로 저장된다(도12의 레지스터(1344)를 보라). 상기 레지스터(305)에서 순서적으로 저장된 각 데이터는 P4/P5계수 승산 회로(325)에서 고정 계수 P5에 의해 승산되고 결과 데이터는 상기 레지스터(1345)에 순차저으로 저장된다(도12의 레지스터(1345)를 보라). 레지스터(306)에 순서적으로 저장된 데이터 각각은 p2계수 승산 회로(326)에서 고정 계수 p2에 의해 승산되고 결과 데이터는 레지스터(1346)(도12의 레지스터(1346)을 보라)에 순서적으로 저장된다. 레지스터(307)에 순서적으로 저장된 데이터 각각은P0/ P1계수 승산 회로(327)에서 고정 계수 P1에 의해 승산되고 결과 데이터는 레지스터(1347)에 순서적으로 저장된다(도12의 레지스터(1347)을 보라).
4개의 연산 싸이클중에서 제 1 연산에서 제 4 연산까지의 매 연산 싸이클에서 레지스터들(134, 1342, 1343)으로부터의 데이터 출력은 가산 회로(1382)에 가산되고 제 1 연산 싸이클에서 얻어진 데이터로서 데이터((b0+ b3)P3+ b2P5+ b1P1)은 가산 회로(1382)로부터 출력되고, 제 2 연산 싸이클에서 얻어진 데이터로서 데이터((b0- b3) P3- b1P5+ b2P1)가 출력되고, 제 3 연산 싸이클에서 얻어진 데이터로서 데이터((b0- b3) P3+ b1P5- b2P1)는 출력되고, 제 4 연산 싸이클에서 얻어진 데이터로서 데이터((b0+ b3) P3- b2P5- b1P1)는 출력 되고, 상기 데이터는 순서적으로 레지스터(402)에 저장된다. 상기 레지스터(402)에 순서적으로 저장되는 데이터는 8개의 데이터 입력(F0내지 F7)에 대응하는 화소 데이터들(f0내지 f7)중에서, 저장의 순서에 따라, (f0, f2, f4, f6)을 포함한다(식(64)에서는 (f0, f2, f4, f6)에 대응한다). 도8에서, 화소 데이터들(f0, f2, f4, f6)에 대응한다). 도8에서, 화소 데이터(f0, f2, f4, f6)은 레지스터(402)의 출력 라인 하부에 도시된다.
4개의 연산 싸이클중에서 제 1 연산에서 제 4 연산까지의 매 연산 싸이클에서 레지스터들(1344내지 1346)으로부터의 데이터 출력은 가산 회로(1384)에 가산되고, 상기 제 1 연산 싸이클에서 얻어진 데이터로서 데이터((b4+ b7) P3+ b6P5+ b5P1)는 가산 회로(1384)로부터의 출력이고, 제 2 연산 싸이클에서 얻어진 데이터로서 ((b4- b7) P3- b5P5+ b6P1)이 출력되고, 제 3 연산 싸이클에서 얻어진 데이터로서 데이터((b4- b7) P3+ b5P5- b6P1)이 출력되고, 제 4 연산 싸이클에서 얻어진 데이터로서 데이터((b4+ b7) P3- b6P5- b5P1)이 출력되며, 상기 데이터는 순서적으로 레지스터(404)에 저장된다. 레지스터(404)에 순서적으로 저장된 데이터는 8개의 데이터들(F0내지 F7)에 대응하여 화소 데이터들(f0내지 f7)중에서, 저장 순서에 따라 데이터들(f1, f3, f5, f7)(식(64)에서 (f1, f3, f5, f7)에 대응하여)을 포함한다. 도8에서, 화소 데이터들(f1, f3, f5, f7)은 레지스터(404)의 출력 라인의 하부에 도시된다.
위의 산술 연산을 완성함으로써, 8x8 데이터 블록을 구성하는 한개의 스트링에 포함된 8개의 데이터상에서 제 1 2-4-8 IDCT 가 종료된다. 위에서 기술과 같은 제 1 의 2-4-8 IDCT 는 8x8 데이터 블록을 구성하는 다음 스트링에 이은 각 스트링상에서 수행되고, 다음에, 8x8 데이터 블록을 구성하는 모든 8개의 스트링상의 제 1 2-4-8 IDCT 는 유사한 방법으로 종료된다. 모두 8개의 스트링상에서 제 1 의 2-4-8 IDCT 의 완성후에, 제 2 의 2-4-8 IDCT 는 8x8 데이터 블록을 구성하는 각 라인에 포함된 8개의 데이터(IDCT 용 전달 데이터)상에서 수행된다. 8x8데이터 각각각에서 수행되는 제 1 2-4-8 IDCT 와 제 2 의 2-4-8 IDCT 를 완성함으로써, 상기 2-4-8 DCT 에 의해 압축된 전송 영상 데이터가 재생된다.
따라서, 본 발명에 따라, 8-8 IDCT 장치와 2-4-8 IDCT 장치가 8-8 IDCT 회로에 사용된 고정 계수 승산 회로의 일부가 2-4-8 IDCT 에 요구된 고정 계수 승산 회로와 같이, 스위치되어 사용되기 때문에, 8-8 IDCT 에서 파이프 라인 처리형 산술 연산을 통해 얻어진 고속 계산 특징은 2-4-8 IDCT 에서 유지될 수 있고 고속 계산 특징은 소형화된 8-8 IDCT 장치와 2-4-8 IDCT 장치에서도 계속 유지된다.
<제 3 실시예>
도13은 본 발명의 제 3 실시예에 따른 16-16/2-8-16 DCT 장치의 전기적 구성을 보여주는 부분적인 개략 블록 다이어그램이다. 도14는 제 3 실시예에 다른 16-16/2-8-16 DCT 장치의 전기적 구성을 부분적으로 보여주는 개략 블록 다이어그램이다. 도14의 라인 III - iII 과 도13의 III - iII 을 겹치므로서, 16-16/2-8-16 DCT 장치의 전체 구성이 도시된다. 16-16 DCT 또는 2-8-16 DCT 가 입력되는 16x16 개의 화소 데이터상에서 수행되는 점에서 제 3 실시예의 16-16/2-8-16 DCT 의 구성과 제 1 실시예 및 제 2 실시예와는 상당히 다르다. 상기 16-16 DCT 의 경우에, 16-16 DCT/2-8-16 DCT 장치(210)은 식(17)을 압축해제하고 재배열하여 얻어진 결정식(65)에 따른 산술 연산을 수행하고, 2-8-16 DCT 의 경우에, 식(21)을 압축해제하여 재배열함으로써 얻어진 결정식(66)에 따라 산술 연산을 수행한다. 결정식(66)에서 값 (e0 내지 e15)은 식(67)에 의해 주어지고 결정식(66)에서 값 (g0 내지 g15)은 식(68)에 의해 주어진다.
식(65) 및 식(66)에서 값 (P0내지 P15)은 다음과 같다.
PO= cos ( 15 π / 32 ) = -cos ( 17 π / 32 ) = 0.09801714034.....
P1= cos ( 14 π / 32 ) = -cos ( 18 π / 32 ) = 0.195090322...
P2= cos ( 13 π / 32 ) = -cos ( 19 π / 32 ) = 0.2902846773...
P3= cos ( 12 π / 32 ) = -cos ( 20 π / 32 ) = 0.3826834324...
P4= cos ( 11 π / 32 ) = -cos ( 21 π / 32 ) = 0.4713967368...
P5= cos ( 10 π / 32 ) = -cos ( 22 π / 32 ) = 0.555570233...
P6= cos ( 9 π / 32 ) = -cos ( 23 π / 32 ) = 0.634393842...
P7= cos ( 8 π / 32 ) = -cos ( 24 π / 32 ) = 0.707106781...
P8= cos ( 7 π / 32 ) = -cos ( 25 π / 32 ) = 0.7730104534...
P9= cos ( 6π / 32 ) = -cos ( 26 π / 32 ) = 0.8314696123...
P10= cos ( 5 π / 32 ) = -cos ( 27 π / 32 ) = 0.8819212644..
P11= cos ( 4 π / 32 ) = -cos ( 28 π / 32 ) = 0.9238795325...
P12= cos ( 3 π / 32 ) = -cos ( 29 π / 32 ) = 0.9567403357...
P13= cos ( 2 π / 32 ) = -cos ( 30 π / 32 ) = 0.9807852804...
P14= cos ( π / 16 ) = -cos ( 31 π / 32 ) = 0.9951847276...
P15= cos ( 0 π ) = -cos ( π ) = 1
이 실시예의 16-16 DCT/2-8-16 DCT(210)은 고정 계수 승산 회로의 일부가 파이프 라인형 고속 산술 연산을 수행하기 위한 16-16 DCT 및 2-8-16 DCT 에 의해 공통적으로 사용되는 구성과 상기 16-16 DCT 및 2-8-16 DCT 가 소형화 회로에서 조차도 수행되는 구성으로 된다.
상기 제 3 실시예의 16-16 DCT/2-8-16 DCT 장치는 MUX(212), 제 1 레지스터 그룹(213)을 이루는 16개의 레지스터들(141내지 1416), 제 1 가산 회로 그룹(217)을 이루는 8개의 가산 회로들(181내지 188), 감산 회로 그룹(219)을 이루는 8개의 감산 회로들(201내지 208), 제 2 레지스터 그룹(221)을 이루는 16개의 레지스터들(221내지 2216), 제 1 의 MUX 그룹(223)을 이루는 16개의 MUXs(2241내지 22416), 제 1 가산/감산 회로 그룹(225)을 이루는 2개의 가산/감산 회로들(226, 2262), 제 3 레지스터 그룹(229)를 이루는 15개의 레지스터들(301내지 3015), 제 2 MUX 그룹(227)을 이루는 2개의 MUXs(281,282), 계수 승산 회로(2321), P11계수 승산 회로(2322), P3계수 승산 회로(2323), P13계수 승산 회로(2324), P9계수 승산 회로(2325), P5계수 승산 회로(2326), P1계수 승산 회로(2327), P14/P7계수 승산 회로(2328), P12/P11계수 승산 회로(2329), P10/P3계수 승산 회로(23210), P8/P13계수 승산 회로(23211), P6/P9계수 승산 회로(23212), P4/P5계수 승산 회로(23213), P2 계수 승산 회로(23214), P0/P1계수 승산 회로(23215), 제 4 의 레지스터 그룹(223)을 이루는 15개의 레지스터들(2341내지 23415), 제 2 의 가산 회로 그룹(237)을 이루는 6개의 가산 회로들(2381내지 2386), 제 5 의 레지스터 그룹(39)을 이루는 8개의 AND 회로들(2361내지 2369)와 6개의 레지스터들(401내지 406)로 구성된다. 도 13에서, 레지스터(141) 내지 레지스터(146) 각각은 R로서 도시된다.
상기 MUX(212)는 각각 16개의 화상 데이터를 선택적으로 출력하며 제 1 의 DCT가 수행되고, 제 1 의 DCT로부터 얻어진 16개의 화상 데이터 또는 16x16 개의 화상 데이터로 이루어진 블록을 구성하는 각 라인에 포함되고, 16x16 개의 화상 데이터를 구성하는 블록을 이루는 각 스트링에 포함된다. 후에,상기 MUX(212)로부터의 16개의 데이터 출력 각각은 데이터(f0내지 f16)로서 불린다. 상기 16-16 DCT 에서 MUX(212)는 제 1 레지스터 그룹(213)을 이루는 레지스터(141)에 데이터(f0)를 저장하고, 레지스터(142)에 (f15), 레지스터(143)에 (f1), 레지스터(144)에 (f14), 레지스터(145)에 (f2), 레지스터(146)에 (f13), 레지스터(147)에 (f3), 레지스터(148)에 (f12), 레지스터(149)에 (f4), 레지스터(1410)에 (f11), 레지스터(1411)에 (f5), 레지스터(1412)에 (f10), 레지스터(1413)에 (f6), 레지스터(1414)에 (f9), 레지스터(1415)에 (f7), 레지스터(1416)에 (f8)을 저장하고 2-4-8 DCT 의 경우에, 레지스터들(141내지 1416)에 대응하여 (f0내지 f15)를 저장한다.
16-16 DCT 및 2-8-16 DCT 둘다에서 제 1 가산 회로 그룹(217)을 이루는 가산 회로들(181내지 188) 각각은 2개의 레지스터에 저장된 데이터상에서 가산 연산들을 수행한다. 즉, 상기 가산 회로(181)는 레지스터(141)에 저장된 데이터를 레지스터(142)에 저장된 데이터에 가산한다. 상기 가산 회로(182)는 레지스터(143)에 저장된 데이터를 레지스터(144)의 데이터에 가산한다. 상기 가산 회로(183)는레지스터(145)의 데이터를 레지스터(146)에 가산한다. 상기 가산 회로(184)는 레지스터(147)의 데이터를 레지스터(148)의 데이터에 가산한다. 상기 가산 회로(185)는 레지스터(149)의 데이터를 레지스터(1410)의 데이터에 가산한다. 상기 가산 회로(186)는 레지스터(1411)의 데이터를 레지스터(1412의)의 데이터에 가산한다. 상기 가산 회로(187)는 레지스터(1413)의 데이터를 레지스터(1414)에 가산한다. 상기 가산 회로(188)는 레지스터(1415)에 저장된 데이터를 레지스터(1416)에 저장된 데이터에 가산한다.
16-16 DCT 및 2-4-8 DCT 둘다에서 감산 회로들(201내지 208) 각각은 2개의 레지스터에 저장된 데이터상에서 감산 연산들을 수행한다. 즉, 상기 감산 회로(201)는 레지스터(142)에 저장된 데이터를 레지스터(141)에 저장된 데이터에서 감산한다. 상기 감산 회로(202)는 레지스터(144)에 저장된 데이터에서 레지스터(143)에 저장된 데이터에서 감산한다. 상기 감산 회로(203)는 레지스터(146)에 저장된 데이터를 레지스터(145)에 저장된 데이터에서 감산한다. 상기 감산 회로(204)는 레지스터(148)에 저장된 데이터를 레지스터(147)에 저장된 데이터에서 감산한다. 상기 감산 회로(205)는레지스터(1410)에 저장된 데이터를 레지스터(149)에 저장된 데이터에서 가산한다. 상기 감산 회로(206)는 레지스터(1412)에저장된 데이터를 레지스터(1411)에 저장된 데이터에서 감산한다. 상기 감산 회로(207)는 레지스터(1414)에 저장된 데이터를 레지스터(1413)에 저장된 데이터에서 감산한다. 상기 감산 회로(208)는 래지스ㅌ(1416)에 저장된 데이터를 레지스터(1415)에 저장된 데이터에서 감산한다.
상기 제 2 레지스터 그룹(221)을 이루는 레지스터(221)는 상기 가산 회로(181)로부터 임시로 데이터를 저장한다. 상기 레지스터(222)는 상기 가산 회로(182)로부터 데이터를 임시로 저장한다. 상기 레지스터(223)는 가산 회로(183)으로부터 데이터를 임시로 저장한다. 상기 레지스터(224)는 가산 회로(184)으로부터 데이터를 임시로 저장한다. 상기 레지스터(225)는 가산 회로(185)으로부터 데이터를 임시로 저장한다. 상기 레지스터(226)는 가산 회로(186)으로부터 데이터를 임시로 저장한다. 상기 레지스터(227)는 가산 회로(187)으로부터 데이터를 임시로 저장한다. 상기 레지스터(228)는 가산 회로(188)으로부터 데이터를 임시로 저장한다.
상기 레지스터(229)는 감산 회로(201)로부터 데이터를 임시로 저장한다. 상기 레지스터(2210)는 감산 회로(202)로부터 데이터를 임시로 저장한다. 상기 레지스터(2211)는 감산 회로(203)로부터 데이터를 임시로 저장한다. 상기 레지스터(2212)는 감산 회로(204)로부터 데이터를 임시로 저장한다. 상기 레지스터(2213)는 감산회로(205)로부터 데이터를 임시로 저장한다.
레지스터(2214)는 감산 회로(206)로부터 출력된 데이터를 임시로 저장한다. 레지스터(2215)는 감산 회로(207)로부터 출력된 데이터를 임시로 저장한다. 레지스터(2216)는 감산 회로(208)로부터 출력된 데이터를 임시로 저장한다.
16-16 DCT의 경우, 제1 MUX 그룹(223)을 구성하는 MUX(2241) 내지 MUX(2244)에서 데이터를 선택하는 연산은 다음과 같다;
MUX(2241)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(221, 224, 225, 228, 221, 224, 225, 228)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2242)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(222, 223, 226, 227, 222, 223, 226, 227)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2243)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(221, 224, 225, 228, 222, 223, 226, 227)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2244)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(222, 223, 226, 227, 221, 224, 225, 228)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다.
2-8-16 DCT의 경우, MUX(2241) 내지 MUX(2248)에서 데이터를 선택하는 연산은 다음과 같다;
MUX(2241)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들 (221, 224, 225, 228, 221, 224, 225, 228)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2242)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(222, 223, 225, 227, 222, 223, 226, 227)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2243)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(221, 228, 224, 225, 222, 223, 226, 227)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2244)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(222, 223, 226, 227, 221, 224, 225, 228)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다.
16-16 DCT의 경우, MUXs(2245내지 2248)에서 데이터를 선택하는 연산은 다음과 같다;
MUX(2245)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(221, 228, 226, 223, 227, 222, 225, 224)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2246)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(222, 227, 221, 227, 224, 225, 223, 226)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2247)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(223, 226, 224, 225, 221, 228, 222,222)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2248)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(224, 225, 227, 222, 223, 226, 221, 228)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다.
2-8-16 DCT의 경우, MUXs(2245내지 2248)에서 데이터를 선택하는 연산은 다음과 같다;
MUX(2245)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(223, 226, 222, 227, 221, 228, 224, 225)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2246)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(222, 228, 224, 225, 222, 227, 223, 226)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2247)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들(224, 225, 221, 228,223, 226, 222, 227)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(2248)는 레지스터들(221내지 228)의 각 출력에 연결되고, 레지스터들 (222, 227, 223, 226, 224, 225, 221, 228)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다.
제1 MUX 그룹(223)을 구성하는 MUX(2249) 내지 MUX(22416)에서 데이터를 선택하는 연산은 16-16 DCT와 2-8-16 DCT 사이에 다르다. 먼저, 16-16 DCT의 경우, MUX(229내지 2216)에서 데이터를 선택하는 연산은 다음과 같다;
MUX(2249)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(229, 2214, 2215, 2213, 2212, 2210, 2211, 2216)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22410)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2210, 229, 2212, 2211, 2214, 2213, 2216, 2215)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22411)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2211, 2213, 229, 2215, 2210, 2216, 2212, 2214)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22412)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2212, 2215, 2211, 229, 2216, 2214, 2210, 2213)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22413)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2213, 2210, 2214, 2216, 229, 2211, 2215, 2212)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22414)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2214, 2212, 2216, 2210, 2215, 229, 2213, 2211)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22415)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2215, 2216, 2213, 2214, 2211, 2212, 229, 2210)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22416)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2216, 2211, 2210, 2212, 2213, 2215, 2214, 229)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다.
2-8-16 DCT의 경우, MUXs(229내지 2216)에서 데이터를 선택하는 연산은 다음과 같다;
MUX(2249)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들 (229, 2212, 2213, 2216, 229, 2212, 2213, 2216)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22410)는 레지스터들(229내지 2216)의 각출력에 연결되고, 레지스터들(229, 2216, 2212, 2213, 2210, 2211, 2214,2215)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22411)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2210, 2211, 2214, 2215, 229, 2212, 2213, 2216)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22412)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(229, 2216, 2211, 2214, 2210, 2215, 2212, 2213)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22413)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2210, 2215, 229, 2216, 2212, 2213, 2211, 2214)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22414)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2211, 2214, 2212, 2213, 229, 2216, 2210, 2215)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22415)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2210, 2211, 2214, 2215, 2210, 2211, 2213, 2214)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다. MUX(22416)는 레지스터들(229내지 2216)의 각 출력에 연결되고, 레지스터들(2212, 2213, 2210, 2215, 2211, 2214, 229, 2216)의 순서에 따라 레지스터를 선택하여 순서적으로 8개의 데이터를 출력한다.
16-16 DCT 및 2-4-8 DCT에서 모두 가감산 회로 그룹(225)을 구성하는 가감산 회로(2261)는 MUX(2241)로부터 순서적으로 출력된 8개 데이터 및 MUX(2242)로부터 순서적으로 출력된 8개 데이트 중 제1 내지 제4 순서에 따라 출력된 데이터에 가산 연산들을 실행하고, MUX(2241)로부터 순서적으로 출력된 8개 데이터 및 MUX(2242)로부터 순서적으로 출력된 8개 데이트 중 제5 내지 제8 순서에 따라 출력된 데이터에 감산 연산들을 실행한다. 즉, 가감산 회로(2261)는 MUX(2241)로부터 출력된 데이터에서 MUX(2242)로부터 출력된 데이터를 감산한다. 16-16 DCT 및 2-4-8 DCT에서 모두 가감산 회로(2262)는 MUX(2249)로부터 순서적으로 출력된 8개 데이터 및 MUX(22415)로부터 순서적으로 출력된 8개 데이트 중 제1 내지 제4 순서에 따라 출력된 데이터에 가산 연산들을 실행하고, MUX(2249)로부터 순서적으로 출력된 8개 데이터 및 MUX(22415)로부터 순서적으로 출력된 8개 데이트 중 제5 내지 제8 순서에 따라 출력된 데이터에 감산 연산들을 실행한다. 가감산 회로(2262)는 MUX(2249)로부터 출력된 데이터에서 MUX(22415)로부터 출력된 데이터를 감산한다.
16-16 DCT의 경우에서 제2 MUX 그룹(227)을 구성하는 MUX(281)는 MUX(2249)로부터 순서적으로 출력된 8개 데이터를 선택하고, 2-4-8 DCT의 경우에서는 가감산 회로(2262)로부터 순서적으로 출력된 데이터를 선택한다.
16-16 DCT의 경우에서 제2 MUX 그룹(227)을 구성하는 MUX(281)는 MUX(2249)로부터 순서적으로 출력된 8개 데이터를 선택하고, 2-8-16 DCT의 경우에서는 가감산 회로(2262)로부터 순서적으로 출력된 데이터를 선택한다. 16-16 DCT의 경우에서 MUX(282)는 MUX(22415)로부터 순서적으로 출력된 8개 데이터를 선택하고, 2-4-8 DCT에서는 (22415)로부터 순서적으로 출력된 8개 데이터를 선택하지 않고 MUX(282)의 8개 연산 싸이클에 대응하는 "0"의 8개 시간을 선택한다.
제3 레지스터 그룹(229)을 구성하는 레지스터(301)는 가감산 회로(2261)로부터 순서대로 출력된 8개 데이터에 대한 연산 결과를 순서적으로 저장한다. 레지스터(302)는 MUX(2243)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(303)는 MUX(2244)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(304)는 MUX(2245)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(305)는 MUX(2246)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(306)는 MUX(2247)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(307)는 MUX(2248)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다.
레지스터(308)는 MUX(2249)로부터 순서대로 출력된 8개 데이터에 대한 연산 결과를 순서적으로 저장한다. 레지스터(309)는 MUX(22410)로부터 순서대로 출력된8개 데이터를 순서적으로 저장한다. 레지스터(3010)는 MUX(22411)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(3011)는 MUX(22412)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(3012)는 MUX(22413)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(3013)는 MUX(22414)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다. 레지스터(3015)는 MUX(22416)로부터 순서대로 출력된 8개 데이터를 순서적으로 저장한다.
16-16 DCT 및 2-8-16 DCT의 경우에서 모두 P7계수 승산 회로(2321) 내지 P1계수 승산 회로(2327)는 각각 레지스터 각각으로부터 출력된 데이터를 똑같은 고정 계수에 의해 승산한다. 즉, P7계수 승산 회로(2321)는 레지스터(301)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P7으로 승산한다. P11계수 승산 회로(2322)는 레지스터(302)로부터 출력된 8개 데이터 각각을 고정 계수 P11으로 승산한다. P3계수 승산 회로(2323)는 레지스터(303)로부터 출력된 8개 데이터 각각을 고정 계수 P3으로 승산한다. P13계수 승산 회로(2324)는 레지스터(304)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P13으로 승산한다. P9계수 승산 회로(2325)는 레지스터(305)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수P9으로 승산한다. P5계수 승산 회로(2326)는 8개 데이터 각각을 고정 계수 P5으로 승산한다. P1계수 승산 회로(2327)는 레지스터(307)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P1으로 승산한다.
16-16 DCT 및 2-8-16 DCT의 경우에서 모두 P14/P7계수 승산 회로(2328) 내지 P4/P5계수 승산 회로(23215)는 각각의 고정 계수를 교환하도록 적응되고, 또 다른 고정 계수를 사용해 승산을 실행한다. 즉, P14/P7계수 승산 회로(2328)는 16-16 DCT의 경우에서 레지스터(308)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P14로 승산하고, 2-4-16 DCT의 경우에서는 레지스터(308)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P7로 승산한다. P12/P11계수 승산 회로(2329)는 16-16 DCT의 경우에서 레지스터(309)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P12로 승산하고, 2-4-8 DCT의 경우에서는 레지스터(309)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P11로 승산한다. P10/P3계수 승산 회로(23210)는 16-16 DCT의 경우에서 레지스터(3010)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P10로 승산하고, 2-8-16 DCT의 경우에서는 레지스터(3010)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P3로 승산한다. P8/P13계수 승산 회로(23211)는 16-16 DCT의 경우에서 레지스터(3011)로부터 순서적으로 출력된 8개데이터 각각을 승산하고, 2-4-8 DCT의 경우에서는 레지스터(3011)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P13로 승산한다. P6/P9계수 승산 회로(23212)는 16-16 DCT의 경우에서 레지스터(3012)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P6로 승산하고, 2-8-16 DCT의 경우에서는 레지스터(3012)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P9로 승산한다. P4/P5계수 승산 회로(23213)는 16-16 DCT의 경우에서 레지스터(3013)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P4로 승산하고, 2-4-8 DCT의 경우에서는 레지스터(3013)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P5로 승산한다. P2계수 승산 회로(23214)는 레지스터(3014)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P2로 승산한다. P0/P1계수 승산 회로(23215)는 레지스터(3015)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P0로 승산하고, 2-4-8 DCT의 경우에서는 레지스터(3015)로부터 순서적으로 출력된 8개 데이터 각각을 고정 계수 P1로 승산한다.
16-16 DCT 및 2-4-8 DCT의 경우에서 모두 제4 레지스터 그룹(233)을 구성하는 레지스터들(2341, 2343, 2345, 23414)은 각각 다음과 같이 순서적으로 데이터를 저장하고 출력한다;
레지스터(2341)는 P7계수 승산 회로(2321)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 각 데이터를 양의 값으로 순서적으로 출력한다. 레지스터(2343)는 P3계수 승산 회로(2323)로부터 순서적으로 출력된 8개 데이터 각각을 순서적으로 저장하고, 제1 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(2345)는 P9계수 승산 회로(2325)로부터 순서적으로 출력된 8개 데이터 각각을 순서적으로 저장하고, 제1 순서, 제3 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제4 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(23414)는 P2계수 승산 회로(23214)로부터 순서적으로 출력된 8개 데이터 각각을 순서적으로 저장하고, 제1 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(2342)는 P11계수 승산 회로(2342)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서, 제4 순서, 제6 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제3 순서, 제5 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제1 순서, 제2 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제3 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(2344)는 P13계수 승산 회로(2344)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서, 제3 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제4 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제2 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제1 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(2346)는 P5계수 승산 회로(2346)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서, 제3 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제4 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제2 순서, 제3 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제1 순서, 제4 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(2347)는 P1계수 승산 회로(2347)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서, 제3 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제4 순서,제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제2 순서, 제3 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제1 순서, 제4 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(2348)는 P14/P7계수 승산 회로(2348)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서, 제3 순서, 제4 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 출력되는 각 데이터를 양의 값으로 출력한다.
레지스터(2349)는 P12/P11계수 승산 회로(2349)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서, 제2 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제3 순서 내지 제6 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제1 순서, 제2 순서, 제4 순서, 제6 순서 및 제7 순서에 따라 출력되는 각 데이터를 양의 값으로 출력하고 제3 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(23410)는 P10/P3계수 승산 회로(23410)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서 및 제3 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서 및 제4 순서 내지 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제1 순서 및 제4 순서 내지 제8 순서에 따라 출력되는 각 데이터를 양의 값으로 출력하고 제2 순서 및 제3 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(23411)는 P8/P13계수 승산 회로(23411)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서 및 제4 순서 내지 제6 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서, 제3 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제1 순서, 제4 순서, 제6 순서 및 제8 순서에 따라 출력되는 각 데이터를 양의 값으로 출력하고 제2 순서, 제3 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(23412)는 P6/P9계수 승산 회로(23412)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서 내지 제3 순서, 제5 순서 및 제6 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제4 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제1 순서, 제3 순서, 제5 순서, 제7 순서에 따라 출력되는 각 데이터를 양의 값으로 출력하고 제2 순서, 제4 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(23413)는 P4/P5계수 승산 회로(23413)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서, 제3 순서 및제7 순서 내지 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제2 순서 및 제4 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제1 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 출력되는 각 데이터를 양의 값으로 출력하고 제2 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
레지스터(23415)는 P0/P1계수 승산 회로(23415)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 16-16 DCT의 경우, 제1 순서 내지 제4 순서 및 제6 순서 내지 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고 제5 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 DCT의 경우에서는 제1 순서, 제4 순서, 제5 순서 및 제7 순서에 따라 출력되는 각 데이터를 양의 값으로 출력하고 제2 순서, 제3 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
제2 가산 회로 그룹(237)에 포함된 가산 회로(2381)는 제5 그룹(239)을 구성하는 레지스터(401) 및 AND 회로(2361)와 함께 누적 회로를 구성한다. AND 회로(2361)의 한 입력에는 레지스터(401)로부터의 데이터가 공급되고, 16-16 DCT 및 2-8-16 DCT의 경우에서 모두, AND 회로(2361)의 다른 입력에는 이진수 신호 스트링 발생 회로 (도시되지 않음)로부터 공급되고 8개 연산 싸이클 중 제1 연산 싸이클 내지 제8 연산 사이클의 순서에 대응하는 신호 "0", "1", "1", "0", "1", "1" 및"1"이 공급된다. 누적값은 레지스터(401)로부터 출력되고, 이는 가산 회로(2381)에서, 레지스터(2341)로부터 출력되어 가산 회로(2381)의 한 입력에 공급되는 데이터를 한 이전 클럭에 레지스터(401)에 저장되고 다음 클럭에 AND 회로(2361)를 통해 가산 회로(2381)의 다른 입력에 공급되는 데이터에 가산함으로서 구해진다.
가산 회로(2382)는 레지스터(402) 및 AND 회로(2362)와 함께 누적 회로를 구성한다. AND 회로(2362)의 한 입력에는 레지스터(402)로부터의 데이터가 공급되고, 16-16 DCT 및 2-8-16 DCT의 경우에서 모두, AND 회로(2362)의 다른 입력에는 이진수 신호 스트링 발생 회로 (도시되지 않음)로부터 공급되고 8개 연산 싸이클 중 제1 연산 싸이클 내지 제8 연산 사이클의 순서에 대응하는 신호 "0", "1", "1", "0", "1", "1" 및 "1"이 공급된다. 누적값은 레지스터(402)로부터 출력되고, 이는 가산 회로(2382)에서, 레지스터(2342) 및 레지스터(2343)로부터 출력되어 가산 회로(2382)의 제1 입력 및 제2 입력에 공급되는 데이터를 한 이전 클럭에 레지스터(402)에 저장되고 다음 클럭에 AND 회로(2362)를 통해 가산 회로(2382)의 다른 입력에 공급되는 데이터에 가산함으로서 구해진다.
가산 회로(2383)는 레지스터(403) 및 AND 회로(2363)와 함께 누적 회로를 구성한다. AND 회로(2363)의 한 입력에는 레지스터(403)로부터의 데이터가 공급되고,16-16 DCT 및 2-8-16 DCT의 경우에서 모두, AND 회로(2363)의 다른 입력에는 이진수 신호 스트링 발생 회로(도시되지 않음)로부터 공급되고 8개 연산 싸이클 중 제1 연산 싸이클 내지 제8 연산 사이클의 순서에 대응하는 신호 "0", "1", "1", "0", "1", "1" 및 "1"이 공급된다. 누적값은 레지스터(403)로부터 출력되고, 이는 가산 회로(2383)에서, 레지스터(2344)로부터 레지스터(2347)로 출력되어 가산 회로(2383)의 제1 입력에 공급되는 데이터를 한 이전 클럭에 레지스터(403)에 저장되고 다음 클럭에 AND 회로(2363)를 통해 가산 회로(2383)의 제5 입력에 공급되는 데이터에 가산함으로서 구해진다.
가산 회로(2384)는 16-16 DCT의 경우, 레지스터(2348)로부터 레지스터(23415)로 출력된 데이터에 가산 연산들을 실행하고, 그 결과를 레지스터(404)에 저장하고, 2-8-16 DCT의 경우에는 레지스터들(2348내지 23415) 및 AND 회로(2365)와 함께 누적 회로를 구성한다. 즉, AND 회로(2365)의 한 입력에는 레지스터(405)로부터 출력되는 데이터가 공급되고, AND 회로(2365)의 다른 입력에는 16-16 DCT의 경우, 이진수 스트링 발생 회로(도시되지 않음)에 의해 8개 연산 싸이클 중 제1 연산 싸이클 내지 제8 연산 싸이클에 신호 "0"이 공급되고, 2-8-16 DCT의 경우에는 8개 연산 싸이클 중 제1 연산 싸이클 내지 제8 연산 싸이클의 순서에 대응하고 이진수 스트링 발생 회로 (도시되지 않음)에 의해 공급되는 신호 "0", "1", "0", "1", "0", "1","0" 및 "1"가 공급된다.
AND 회로(2367)의 한 입력에는 레지스터(234)로부터 데이터가 공급되고, AND 회로(2368)의 한 입력에는 레지스터(234)로부터 데이터가 공급되고, AND 회로(2369)의 한 입력에는 레지스터(3010)로부터 데이터가 공급된다. AND 회로(2367), AND 회로(2368) 및 AND 회로(2369) 각각의 다른 입력에는 16-16 DCT의 경우, 이진수 스트링 발생 회로(도시되지 않음)에 의해 8개 연산 싸이클 중 제1 연산 싸이클 내지 제8 연산 싸이클에 신호 "0"이 공급되고, 이진수 스트링 발생 회로(도시되지 않음)에 의해 8개 연산 싸이클 중 제1 연산 싸이클 내지 제8 연산 싸이클에 신호 "1"이 공급된다.
16-16 DCT의 경우, 8개 연산 싸이클 중에서 매 연상 싸이클마다 레지스터들(2348내지 23415) 각각으로부터 순서적으로 출력되는 데이터는 매 연산 싸이클마다 가산 회로(2384)의 제1 입력 내지 제8 입력 중 하나에 공급되어 가산 연산들이 실행되고, 결과의 데이터는 레지스터(404)에 순서적으로 저장되는 반면, 2-8-16 DCT의 경우, 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(23411내지 23415) 각각으로부터 순서적으로 출력되어 가산 회로(2384)의 제4 입력 내지 제8 입력 중 하나에 입력되는 데이터는 가산 회로(2384)에서 한 이전 클럭에 저장된 레지스터(404)로 저장되고 다음 클럭에 AND 회로(2365)를 통해 가산 회로(2384)의 제9입력에 공급된 데이터에 가산되고, 결과의 데이터는 레지스터(404)로부터 출력된다.
다음에는 도 13 및 도 14를 참고로 제1 실시예의 16-16 DCT 및 2-4-8 DCT의 동작이 설명된다. 먼저, 이후에는 16-16 DCT의 동작이 설명된다.
MUX(121)로부터 순서적으로 전송된 16x16개 데이터로 구성된 블록을 구성하는 각 라인에 포함되는 16개 데이터들(F0내지 F15)은 각각 제1 레지스터 그룹(213)에 포함된 레지스터들(141내지 1415) 각각에 저장된다. 즉, 데이터(f0)는 제1 레지스터 그룹(213)을 구성하는 레지스터(141)로 저장되고, 데이터(f15)는 레지스터(142)로 저장되고, 데이터(f1)는 레지스터(143)로 저장되고, 데이터(f14)는 레지스터(144)로 저장되고, 데이터(f2)는 레지스터(145)로 저장되고, 데이터(f13)는 레지스터(146)로 저장되고, 데이터(f3)는 레지스터(147)로 저장되고, 데이터(f12)는 레지스터(148)로 저장되고, 데이터(f4)는 레지스터(149)로 저장되고, 데이터(f11)는 레지스터(1410)로 저장되고, 데이터(f5)는 레지스터(1411)로 저장되고, 데이터(f10)는 레지스터(1412)로 저장되고, 데이터(f6)는 레지스터(1413)로 저장되고, 데이터(f9)는 레지스터(1414)로 저장되고, 데이터(f7)는 레지스터(1415)로 저장되고, 또한개의 데이터(f8)는 레지스터(1416)로 저장된다.
그래서, 16개의 화소 데이터 각각이 레지스터들(141내지 1416) 각각에 저장될 때, 데이터(f0+ f15= e0)가 가산 회로(181)로부터 출력되고, 데이터(f1+ f14= e1)가 가산 회로(182)로부터 출력되고, 데이터(f2+ f13= e2)가 가산 회로(183)로부터 출력되고, 데이터(f3+ f12= e3)가 가산 회로(184)로부터 출력되고, 데이터(f4+ f11= e4)가 가산 회로(185)로부터 출력되고, 데이터(f5+ f10= e5)가 가산 회로(186)로부터 출력되고, 데이터(f6+ f9= e6)가 가산 회로(187)로부터 출력되고, 또한개의 데이터(f7+ f8= e7)가 가산 회로(188)로부터 출력된다.
데이터(f0- f15= e8)가 감산 회로(201)로부터 출력되고, 데이터(f1- f14= e9)가 감산 회로(202)로부터 출력되고, 데이터(f2- f13= e10)가 감산 회로(203)로부터 출력되고, 데이터(f3- f12= e11)가 감산 회로(204)로부터 출력되고, 데이터(f4- f11= e12)가 감산 회로(205)로부터 출력되고, 데이터(f5- f10= e13)가 감산 회로(206)로부터 출력되고, 데이터(f6- f9= e14)가 감산 회로(207)로부터 출력되고, 또한개의 데이터(f6- f9= e14)가 감산 회로(207)로부터 출력된다.
가산 회로(181)로부터 출력된 데이터(e0)는 레지스터(221)에 저장되고, 가산 회로(182)로부터 출력된 데이터(e1)는 레지스터(222)에 저장되고, 가산 회로(183)로부터 출력된 데이터(e2)는 레지스터(223)에 저장되고, 가산 회로(184)로부터 출력된 데이터(e3)는 레지스터(224)에 저장되고, 가산 회로(185)로부터 출력된 데이터(e4)는레지스터(225)에 저장되고, 가산 회로(186)로부터 출력된 데이터(e5)는 레지스터(226)에 저장되고, 가산 회로(187)로부터 출력된 데이터(e6)는 레지스터(227)에 저장되고, 또한 가산 회로(188)로부터 출력된 데이터(e7)는 레지스터(228)에 저장된다.
감산 회로(201)로부터 출력된 데이터(e8)는 레지스터(229)에 저장되고, 감산 회로(202)로부터 출력된 데이터(e9)는 레지스터(2210)에 저장되고, 감산 회로(203)로부터 출력된 데이터(e10)는 레지스터(2211)에 저장되고, 감산 회로(204)로부터 출력된 데이터(e11)는 레지스터(2212)에 저장되고, 감산 회로(205)로부터 출력된 데이터(e12)는 레지스터(2213)에 저장되고, 감산 회로(206)로부터 출력된 데이터(e13)는 레지스터(2214)에 저장되고, 감산 회로(207)로부터 출력된 데이터(e14)는 레지스터(2215)에 저장되고, 또한 감산 회로(208)로부터 출력된 데이터(e15)는 레지스터(2216)에 저장된다.
가산 회로들(181내지 188)로부터 출력되는 데이터들(e0내지 e7)은 레지스터들(221내지 228)를 통해 MUXs(2241내지 2248)에 입력되고, 이어지는 데이터는 MUX(2241)로부터 MUX(2248)로 출력된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 순서적으로 MUX(2241)로부터 출력되는 8개 데이터들(e0, e3, e4, e7, e0, e3, e4,e7)은 가감산 회로(2261)로 공급되고, 8개 연산 싸이클 중에서 매 연산 싸이클마다 순서적으로 MUX(2242)로부터 출력되는 8개 데이터들(e1, e2, e5, e6, e1, e2, e5, e6)은 가감산 회로(2261)로 공급되어, 데이터들(e0+ e1, e3+ e2, e4+ e5, e7+ e6, e0- e1, e3- e2, e4- e5, e7- e6)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 가감산 회로(2261)로부터 순서적으로 출력되어 레지스터(301)에 저장된다.
8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(e0, e1, e2, e3, e4, e5, e6, e7)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(2243)에 의해 선택되고, 데이터들(e0, e3, e4, e7, e1, e2, e5, e6)은 MUX(2243)로부터 순서적으로 출력되어 레지스터(302)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(e0, e1, e2, e3, e4, e5, e6, e7)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(2244)에 의해 선택되고, 데이터들(e1, e2, e5, e6, e0, e3, e4, e7)은 MUX(2243)로부터 순서적으로 출력되어 레지스터(303)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(e0, e1, e2, e3, e4, e5, e6, e7)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(2245)에 의해 선택되고, 데이터들(e0, e7, e5, e2, e6, e1, e4, e3)은 MUX(2245)로부터 순서적으로 출력되어 레지스터(304)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(e0, e1, e2, e3, e4, e5, e6, e7)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(2246)에 의해 선택되고, 데이터들(e1, e6, e0, e6, e3, e4, e2, e5)은 MUX(2246)로부터 순서적으로 출력되어 레지스터(305)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(e0, e1, e2, e3, e4, e5, e6, e7)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(2247)에 의해 선택되고, 데이터들(e2, e5, e3, e4, e0, e7, e6, e1)은 MUX(2246)로부터 순서적으로 출력되어 레지스터(306)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(e0, e1, e2, e3, e4, e5, e6, e7)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(2248)에 의해 선택되고, 데이터들(e3, e4, e6, e1, e2, e5, e0, e7)은 MUX(2246)로부터 순서적으로 출력되어 레지스터(307)에 저장된다.
8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e8, e9, e10, e11, e12, e13, e14, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(2249)에 의해 선택되고, 데이터들(e8, e13, e14, e12, e11,e9, e10, e15)은 MUX(2246)로부터 순서적으로 출력되어 MUX(281)를 통해 레지스터(308)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e8, e9, e10, e11, e12, e13, e14, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(22410)에 의해 선택되고, 데이터들(e9, e8, e11, e10, e13, e12, e15, e14)은 MUX(22410)로부터 순서적으로 출력되어 레지스터(309)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e8, e9, e10, e11, e12, e13, e14, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(22411)에 의해 선택되고, 데이터들(e10, e12, e8, e14, e9, e15, e11, e13)은 MUX(22411)로부터 순서적으로 출력되어 레지스터(3010)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e8, e9, e10, e11, e12, e13, e14, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(22412)에 의해 선택되고, 데이터들(e11, e14, e10, e8, e15, e13, e9, e12)은 MUX(22412)로부터 순서적으로 출력되어 레지스터(3011)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e8, e9, e10, e11, e12, e13, e14, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(22413)에 의해 선택되고, 데이터들(e12,e9, e13, e15, e8, e10, e14, e11)은 MUX(22413)로부터 순서적으로 출력되어 레지스터(3012)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e8, e9, e10, e11, e12, e13, e14, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(22414)에 의해 선택되고, 데이터들(e13, e11, e15, e9, e14, e8, e12, e10)은 MUX(22414)로부터 순서적으로 출력되어 레지스터(3013)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e8, e9, e10, e11, e12, e13, e14, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(22415)에 의해 선택되고, 데이터들(e14, e15, e12, e13, e10, e11, e8, e9)은 MUX(22415)로부터 순서적으로 출력되어 MUX(282)를 통해 레지스터(3014)에 저장된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(229내지 2212)로부터 출력된 데이터들(e1, e3, e5, e7, e9, e11, e13, e15)은 8개 연산 싸이클 중에서 매 연산 싸이클마다 MUX(22416)에 의해 선택되고, 데이터들(e15, e10, e9, e11, e12, e14, e13, e8)은 MUX(22416)로부터 순서적으로 출력되어 레지스터(3015)에 저장된다.
8개 연산 싸이클 중에서 매 연산 싸이클마다 레지스터들(301내지 307)로부터 출력된 각 데이터는 대응하는 고정 계수 승산 회로로(2321내지 2322) 각각에서 8개연산 싸이클 중 매 연산 싸이클마다 대응하는 고정 계수 P7, P11, P13, P3, P9, P5및 P1로 각각 승산되고, 대응하는 레지스터들(2341내지 2347) 각각에 저장된다. 즉, 레지스터(2341)에 순서적으로 저장되는 각 데이터에는 가산 회로(2381)에서 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 결과의 데이터는 레지스터(401)에 저장된다.
데이터((e0+ e1) P7)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2381)로부터 출력되고, 데이터((e0+ e1+ e3+ e2) P7)은 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터((e0+ e1+ e3+ e2+ e4+ e5) P7)은 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터((e0+ e1+ e3+ e2+ e4+ e5+ e7+ e6) P7)은 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터((e0- e1) P7)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터((e0- e1+ e3- e2) P7)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터((e0- e1+ e3- e2+ e4- e5) P7)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터((e0- e1+ e3- e2+ e4- e5+ e7- e6) P7)는 8개 연산 싸이클 중 제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2381)로부터 출력된 데이터 중에서, 제4 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서레지스터(401)의 출력선 중 하단 우측에 (F0, F8)로 도시된 식(65)에서 표시되는 연산값(F0, F8)을 나타내고, 제1 연산 싸이클 내지 제3 연산 싸이클 및 제5 연산 싸이클 내지 제7 연산 싸이클에 출력된 데이터는 레지스터(401)의 출력선 중 하단 우측에 "*"로 도시된 정의되지 않은 값을 나타낸다.
레지스터(2342) 및 레지스터(2343)에 순서적으로 저장된 각 데이터에는 가산 회로(2382)에서 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 결과의 데이터는 레지스터(402)에 저장된다.
데이터(e0P11+ e1P3)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2382)로부터 출력되고, 데이터(e0P11+ e1P3- e3P11- e2P3)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터(e0P11+ e1P3- e3P11- e2P3- e4P11- e5P3)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터(e0P11+ e1P3- e3P11- e2P3- e4P11- e5P3+ e7P11+ e6P3)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(- e1P11+ e0P3)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터(- e1P11+ e0P3+ e2P11- e3P3)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터(- e1P11+ e0P3+ e2P11- e3P3- e5P11-e4P3)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터(- e1P11+ e0P3+ e2P11- e3P3- e5P11-e4P3- e6P11+ e7P3)는 8개 연산 싸이클 중 제8 연산 싸이클에 출력된다.
8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2382)로부터 출력된 데이터 중에서, 제4 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(402)의 출력선 중 하단 우측에 (F2, F6)로 도시된 식(65)에서 표시되는 연산값 (F2, F6)을 나타내고, 제1 연산 싸이클 내지 제3 연산 싸이클 및 제5 연산 싸이클 내지 제7 연산 싸이클에 출력된 데이터는 레지스터(402)의 출력선 중 하단 우측에 "* "로 도시된 정의되지 않은 값을 나타낸다.
레지스터(2344) 및 레지스터(2347)에 순서적으로 저장된 각 데이터에는 가산 회로(2383)에서 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 결과의 데이터는 레지스터(403)에 저장된다.
데이터(e0P13+ e1P9+ e2P5+ e3P1)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2383)로부터 출력되고, 데이터(e0P13+ e1P9+ e2P5+ e3P1- e7P13- e6P9- e5P5- e4P1)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터(e5P13+ e0P9+ e3P5+ e5P1)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터(e5P13+ e0P9+ e3P5+ e6P1- e2P13- e6P9- e4P5- e1P1)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(e6P13+ e2P9+ e0P5+ e3P1)는 8개 연산 싸이클 중 제5 연산싸이클에 출력되고, 데이터(e6P13+ e2P9+ e0P5+ e3P1- e1P13- e4P9- e7P5- e5P1)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터(e4P13+ e2P9- e1P5+ e0P1)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터(e4P13+ e2P9- e1P5+ e0P1- e3P13- e5P9+ e6P5- e7P1)는 8개 연산 싸이클 중 제8 연산 싸이클에 출력된다.
8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2383)로부터 출력된 데이터 중에서, 제2 연산 싸이클, 제4 연산 싸이클, 제6 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(403)의 출력선 중 하단 우측에 (F10, F14, F4, F12)로 도시된 식(65)에서 표시되는 연산값(F10, F14, F4, F12)을 나타내고, 제1 연산 싸이클, 제3 연산 싸이클, 제5 연산 싸이클 및 제7 연산 싸이클에 출력된 데이터는 레지스터(403)의 출력선 중 하단 우측에 "*"로 도시된 정의되지 않은 값을 나타낸다.
레지스터(2348) 및 레지스터(23415)에 순서적으로 저장된 각 데이터에는 가산 회로(2384)에서 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 결과의 데이터는 레지스터(404)에 저장된다.
데이터(e8P14+ e9P12+ e10P10+ e11P8+ e12P6+ e13P4+ e14P2+ e15P0)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2384)로부터 출력되고, 데이터(- e13P14+ e8P12- e12P10+ e14P8+ e9P6- e11P4- e15P2+ e10P0)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터(e14P14- e11P12+ e8P10- e10P8+ e13P6+ e15P4- e12P2+ e9P0)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터(e12P14- e10P12- e14P10+ e8P8- e15P6- e9P4+ e13P2+ e11P0)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(e11P14- e13P12- e9P10+ e15P8+ e8P6+ e14P4- e10P2- e12P0)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터(- e9P14- e12P12- e15P10+ e13P8+ e10P6+ e8P4+ e11P2+ e14P0)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터(e10P14+ e15P12- e11P10- e9P8- e14P6+ e12P4+ e8P2+ e13P0)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터(- e15P14+ e14P12- e13P10- e12P8- e11P6+ e10P4- e9P2+ e8P0)는 8개 연산 싸이클 중 제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중에서 매 연산 싸이클마다 가산 회로(2384)로부터 출력되는 데이터는 도 14에서 레지스터(404)의 출력선 중 하단 우측에 (F1, F3, F5, F7, F9, F11, F13, F15)로 도시된 식(65)에서 표시되는 연산값(F1, F3, F5, F7, F9, F11, F13, F15)을 나타낸다.
상기 산술적인 연산을 완료함으로서, 16x16 데이터 블록을 구성하는 한개의 라인내의 8개 데이터에 대한 1차 16-16 DCT가 종료된다. 상술된 바와 똑같은 1차 16-16 DCT는 16x16 데이터 블록을 구성하는 다음 선에 이어지는 각 라인에 실행되고, 16x16 데이터 블록을 구성하는 8개 선 모두에 대한 1차 16-16 DCT는 유사한 방식으로 종료된다. 8개 선에 모두 1차 16-16 DCT를 완료한 이후에는 16x16 데이터 블록을 구성하는 8개 데이터 스트링의 각 스트링에 2차 16-16 DCT가 실행된다. 2차 16-16 DCT를 완료함으로서 구해지는 변환 계수 데이터는 입력된 16x16 화상 데이터의 압축에 사용된다. 그래서, 압축된 화소 데이터의 전송은 16x16 화소 데이터 블록의 압축을 위해 전송되는 영상내의 16x16 화소 데이터에 1차 16-16 DCT 및 2차 16-16 DCT를 실행함으로서 구해지는 변환 계수 데이터를 사용하여 가능해진다.
다음에는 2-8-16 DCT의 동작이 설명된다. MUX(212)로부터 순서적으로 전송되는 16x16 데이터 블록을 구성하는 각 라인의 16개 데이터들(F0내지 F15)(DCT에 대한 입력 데이터)는 각각 제1 레지스터 그룹(213)에 포함된 레지스터들(141내지 1415)에 각각 저장된다.
16개의 화소 데이터들(f0내지 f15) 각각이 레지스터들(141내지 1416)에 각각 저장될 때, 데이터(f0+ f1= g0)는 가산 회로(182)로부터 출력되고, 데이터(f2+ f3= g1)는 가산 회로(182)로부터 출력되고, 데이터(f4+ f5= g2)는 가산 회로(183)로부터 출력되고, 데이터(f6+ f7= g3)는 가산 회로(184)로부터 출력되고, 데이터(f8+ f9= g4)는 가산 회로(185)로부터 출력되고, 데이터(f10+ f11= g5)는 가산 회로(186)로부터 출력되고, 데이터(f12+ f13= g6)는 가산 회로(187)로부터 출력되고, 또한개의 데이터(f14+ f15= g7)는 가산 회로(188)로부터 출력된다. 데이터(f0- f1)는 감산 회로(201)로부터 출력되고, 데이터(f2- f3= g9)는 감산 회로(202)로부터 출력되고, 데이터(f4- f5= g10)는 감산 회로(203)로부터 출력되고, 데이터(f6- f7= g11)는 감산 회로(204)로부터 출력되고, 데이터(f8- f9= g12)는 감산 회로(205)로부터 출력되고, 데이터(f10- f11= g11)는 감산 회로(206)로부터 출력되고, 데이터(f12- f13= g14)는 감산 회로(207)로부터 출력되고, 또한개의 데이터(f14- f15= g15)는 감산 회로(208)로부터 출력된다.
가산 회로(181)로부터 출력된 데이터(g0)는 레지스터(221)에 저장되고, 가산 회로(182)로부터 출력된 데이터(g1)는 레지스터(222)에 저장되고, 가산 회로(183)로부터 출력된 데이터(g2)는 레지스터(223)에 저장되고, 가산 회로(184)로부터 출력된 데이터(g3)는 레지스터(224)에 저장되고, 가산 회로(185)로부터 출력된 데이터(g4)는 레지스터(225)에 저장되고, 가산 회로(186)로부터 출력된 데이터(g5)는 레지스터(225)에 저장되고, 가산 회로(187)로부터 출력된 데이터(g6)는 레지스터(226)에 저장되고, 또한 가산 회로(188)로부터 출력된 데이터(g7)는 레지스터(228)에 저장된다.
감산 회로(201)로부터 출력된 데이터(g8)는 레지스터(229)에 저장되고, 감산 회로(202)로부터 출력된 데이터(g9)는 레지스터(2210)에 저장되고, 감산 회로(203)로부터 출력된 데이터(g10)는 레지스터(2211)에 저장되고, 감산 회로(205)로부터 출력된 데이터(g11)는 레지스터(2212)에 저장되고, 감산 회로(205)로부터 출력된 데이터(g12)는 레지스터(2213)에 저장되고, 감산 회로(206)로부터 출력된 데이터(g13)는 레지스터(2214)에 저장되고, 감산 회로(208)로부터 출력된 데이터(g14)는 레지스터(2215)에 저장되고, 또한 감산 회로(208)로부터 출력된 데이터(g15)는 레지스터(2216)에 저장된다.
가산 회로(181) 내지 가산 회로(188)로부터 출력된 데이터들(go내지 g7)은 레지스터들(221내지 228)를 통해 MUXs(2241내지 2248)에 입력될 때, 다음 데이터는 MUXs(2241내지 2248)로부터 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2241)로부터 순서적으로 출력되는 8개 데이터들(g0, g3, g4, g7, g0, g3, g4, g7)은 가감산 회로(2261)에 공급되고 8개 데이터들(g1, g2, g5, g6, g1, g2, g5, g6)은 가감산 회로(2261)에 공급될 때, 데이터들(go+ g1, g3+ g2, g5+ g4, g7+ g6, g1- g0, g3- g2, g5- g4, g7- g6)이 순서적으로 출력되어 레지스터(301)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(g0, g3, g4, g7, g0, g3, g4, g7) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2243)에 의해 선택되고, 데이터들(g0, g7, g3, g4, g1, g2, g5, g6) 각각은 MUX(2243)로부터 순서적으로 출력되어 레지스터(302)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(g0, g1, g2, g3, g4, g5, g6, g7) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2244)에 의해 선택되고, 데이터들(g1, g2, g5, g6, g0, g3, g4, g7) 각각은 MUX(2244)로부터 순서적으로 출력되어 레지스터(303)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(g0, g1, g2, g3, g4, g5, g6, g7) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2245)에 의해 선택되고, 데이터들(g2, g5, g1, g6, g0, g7, g3, g4) 각각은 MUX(2244)로부터 순서적으로 출력되어 레지스터(304)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(g0, g1, g2, g3, g4, g5, g6, g7) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2246)에 의해 선택되고, 데이터들(g0, g7, g3, g4, g1, g6, g2, g5) 각각은 MUX(2244)로부터 순서적으로 출력되어 레지스터(305)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(g0, g1, g2, g3, g4, g5, g6, g7) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2247)에 의해 선택되고, 데이터들(g3, g4, g0, g7, g2, g5, g1, g6) 각각은 MUX(2247)로부터 순서적으로 출력되어 레지스터(306)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(g0, g1, g2, g3, g4, g5, g6, g7) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2248)에 의해 선택되고, 데이터들(g1, g6, g2, g5, g3, g4, g0, g7) 각각은 MUX(2248)로부터 순서적으로 출력되어 레지스터(307)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(2249)에 의해 선택되고, 데이터들(g8, g11, g12, g15, g8, g11, g12, g15) 각각은 MUX(2249)로부터 순서적으로 출력되어 레지스터(308)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22410)에 의해 선택되고, 데이터들(g8, g15, g11, g12, g9, g10, g13, g14) 각각은 MUX(22410)로부터 순서적으로 출력되어 레지스터(309)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22410)에 의해 선택되고, 데이터들(g8, g15, g11, g12, g9, g10, g13, g14) 각각은 MUX(22410)로부터 순서적으로 출력되어 레지스터(309)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22411)에 의해 선택되고, 데이터들(g9, g10, g13, g14, g8, g11, g12, g15) 각각은 MUX(22411)로부터 순서적으로 출력되어 레지스터(3010)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22412)에 의해 선택되고, 데이터들(g8, g15, g10, g13, g9, g14, g11, g12)각각은 MUX(22411)로부터 순서적으로 출력되어 레지스터(3011)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22413)에 의해 선택되고, 데이터들(g9, g14, g8, g15, g11, g12, g10, g13) 각각은 MUX(22411)로부터 순서적으로 출력되어 레지스터(3012)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22414)에 의해 선택되고, 데이터들(g10, g13, g11, g12, g8, g15, g9, g14)각각은 MUX(22411)로부터 순서적으로 출력되어 레지스터(3013)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22415)에 의해 선택되지 않고, 데이터 "0"이 8회 선택되고 순서적으로 출력되어 레지스터(3014)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(g8, g9, g10, g11, g12, g13, g14, g15) 각각은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(22416)에 의해 선택되고, 데이터들(g11, g12, g9, g14, g10, g13, g8, g15) 각각은 MUX(22416)로부터 순서적으로 출력되어 레지스터(3015)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(301내지 307)로부터 출력된 각 데이터는 대응하는 고정 계수 승산 회로(2321) 내지 대응하는 고정 계수 승산 회로(2327)에서 대응하는 고정 계수 P7, P11, P3, P13, P9, P5및 P1각각으로 승산되고, 대응하는 레지스터들(2341내지 2347) 각각에 저장된다. 레지스터(2341)에 순서적으로 저장된 각 데이터에는 8개 연산 싸이클 중 매 연산 싸이클마다 가산회로(2381)에서 가산 연산들이 행해지고, 레지스터(401)에 저장된다.
데이터((g0+ g1) P7)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2381)로부터 출력되고, 데이터((g0+ g1+ g3+ g2) P7)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터((g0+ g1+ g3+ g2+ g4+ g5) P7)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터((g0+ g1+ g3+ g2+ g4+ g5+ g7+ g6) P7)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터((g0- g1) P7)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터((g0- g1+ g3- g2) P7)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터((g0- g1+ g3- g2+ g4- g5) P7)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터((g0- g1+ g3- g2+ g4- g5+ g7- g6) P7)는 8개 연산 싸이클 중 제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2381)로부터 출력되는 데이터 중에서, 제4 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(401)의 출력선 중 하단 좌측에 (F0, F4)로 도시된 식(66)에서 표시되는 연산값(F0, F4)을 나타내고, 제1 연산 싸이클 내지 제3 연산 싸이클 및 제5 연산 싸이클 내지 제7 연산 싸이클에 출력된 데이터는 레지스터(401)의 출력선 중 하단 좌측에 "*"로 도시된 정의되지 않은 값을 나타낸다.
레지스터(2342) 및 레지스터(2343)에 순서적으로 저장된 각 데이터에는 가산 회로(2382)에서 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 레지스터(402)에 저장된다.
데이터(g0P11+ g1P3)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2382)로부터 출력되고, 데이터(g0P11+ g1P3- g7P11- g2P3)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터(g0P11+ g1P3- g7P11- g2P3- g3P11- g5P3)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터(g0P11+ g1P3- g7P11- g2P3- g3P11- g5P3- g4P11+ g6P3)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(- g1P11+ g0P3)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터(- g1P11+ g0P3+ g2P11- g3P3)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터(- g1P11+ g0P3+ g2P11- g3P3- g5P11- g4P3)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터(- g1P11+ g0P3+ g2P11- g3P3- g5P11- g4P3- g6P11+ g7P3)는 8개 연산 싸이클 중 제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2382)로부터 출력된 데이터 중에서, 제4 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(402)의 출력선 중 하단 좌측에(F2, F6)로 도시된 식(66)에서 표시되는 연산값(F0, F4)을 나타내고, 제1 연산 싸이클 내지 제3 연산 싸이클 및 제5 연산 싸이클 내지 제7 연산 싸이클에 출력된 데이터는 레지스터(402)의 출력선 중 하단 좌측에 "*"로 도시된 정의되지 않은 값을 나타낸다.
레지스터(2344) 및 레지스터(2347)에 순서적으로 저장된 각 데이터에는 가산 회로(2383)에서 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 레지스터(403)에 저장된다.
데이터(- g0P13+ g0P9- g3P5- g1P1)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2383)로부터 출력되고, 데이터(- g2P13+ g0P9- g3P5- g1P1+ g5P13- g7P9+ g4P5+ g6P1)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터(- g1P13+ g3P9+ g0P5+ g2P1는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터 - g1P13+ g3P9+ g0P5+ g2P1+ g6P13- g4P9- g7P5- g5P1)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(g0P13+ g1P9+ g2P5+ g3P1)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터(g0P13+ g1P9+ g2P5+ g3P1- g7P13- g6P9- g5P5- g4P1)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터(- g3P13+ g2P9- g1P5+ g0P1)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터(- g3P13+ g2P9- g1P5+ g0P1+ g4P13- g5P9+ g6P5- g7P1)는 8개 연산 싸이클 중제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2383)로부터 출력된 데이터 중에서, 제2 연산 싸이클, 제4 연산 싸이클, 제6 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(403)의 출력선 중 하단 좌측에 (F3, F5, F1, F7)로 도시된 식(66)에서 표시되는 연산값(F3, F5, F1, F7)을 나타내고, 제1 연산 싸이클, 제3 연산 싸이클, 제5 연산 싸이클 및 제7 연산 싸이클에 출력된 데이터는 레지스터(403)의 출력선 중 하단 좌측에 "*"로 도시된 정의되지 않은 값을 나타낸다.
MUXs(2249, 22415)로부터 출력된 각 데이터에는 가감산 회로(2261)에서 가산 및 감산 연산들이 실행되어 MUX(281)를 통해 레지스터(308)에 저장되고 P14/P7고정 계수 승산 회로(2328)에서 고정 계수 P7로 승산될 이후에, 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2385)에서 가산 동작이 실행되고 레지스터(405)에 저장된다.
데이터(g8+ g9)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2385)로부터 출력되고, 데이터((g8+ g9+ g11+ g10) P7)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터((g8+ g9+ g11+ g10+ g12+ g13) P7)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터((g8+ g9+ g11+ g10+ g12+ g13+ g15+ g14)P7)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(g8- g9)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터((g8- g9+ g11- g10) P7)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터((g8- g9+ g11- g10+ g12- g13) P7)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터((g8- g9+ g11- g10+ g12- g13+ g15- g14) P7)는 제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2385)로부터 출력되는 데이터 중에서, 제4 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(405)의 출력선 중 하단 좌측에(F8, F12)로 도시된 식(66)에서 표시되는 연산값(F8, F12)을 나타내고, 제1 연산 싸이클 내지 제3 연산 싸이클 및 제5 연산 싸이클 내지 제7 연산 싸이클에 출력된 데이터는 레지스터(405)의 출력선 중 하단 좌측에 "*"로 도시된 정의되지 않은 값을 나타낸다.
레지스터(2349) 및 레지스터(23410)에 순서적으로 저장된 각 데이터에는 가산 회로(2386)에서 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 레지스터(406)에 저장된다.
데이터(g8P11+ g9P3)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2386)로부터 출력되고, 데이터(g8P11+ g9P3+ g15P11- g10P3)는 8개 연산 싸이클중 제2 연산 싸이클에 출력되고, 데이터(g8P11+ g9P3+ g15P11- g10P3- g11P11- g13P3)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터(g8P11+ g9P3+ g15P11- g10P3- g11P11- g13P3- g12P11+ g14P3)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(- g8P11+ g9P3)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터(- g9P11+ g8P3+ g10P11+ g11P3)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터(- g9P11+ g8P3+ g10P11+ g11P3+ g13P11+ g12P3)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터(- g9P11+ g8P3+ g10P11+ g11P3+ g13P11+ g12P3- g14P11+ g15P3)는 제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2386)로부터 출력된 데이터 중에서, 제4 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(403)의 출력선 중 하단 좌측에(F10, F14)로 도시된 식(66)에서 표시되는 연산값(F10, F14)을 나타내고, 제1 연산 싸이클 내지 제3 연산 싸이클 및 제5 연산 싸이클 내지 제7 연산 싸이클에 출력된 데이터는 레지스터(403)의 출력선 중 하단 좌측에 "*"로 도시된 정의되지 않은 값을 나타낸다. MUX(22412), MUX(22413), MUX(22414) 및 MUX(22416)으로부터 출력된 각 데이터는 레지스터(3011), 레지스터(3012), 레지스터(3013) 및 레지스터(3015)에 저장되고, 대응하는 P8/P13고정 계수 승산 회로(23211), P6/P9고정 계수승산 회로(23212), P4/P5고정 계수 승산 회로(23213) 및 P0/P1고정 계수 승산 회로(23215)에서 각각의 고정 계수 P13, 고정 계수 P9, 고정 계수 P5및 고정 계수 P1으로 각각 승산될다. 레지스터(23411) 및 레지스터(23415)에 저장된 결과의 데이터에는 각각 8개 연산 싸이클 중 매 연산 싸이클마다 가산 동작이 행해지고, 레지스터(404)에 저장된다.
데이터(g8P13+ g9P9+ g10P5+ g11P1)는 8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(2384)로부터 출력되고, 데이터(g8P13+ g9P9+ g10P5+ g11P1- g15P13- g14P9- g13P5- g12P1)는 8개 연산 싸이클 중 제2 연산 싸이클에 출력되고, 데이터(- g10P13+ g8P9- g11P5- g9P1)는 8개 연산 싸이클 중 제3 연산 싸이클에 출력되고, 데이터(- g10P13+ g8P9- g11P5- g9P1+ g13P13- g15P9+ g12P5+ g14P1)는 8개 연산 싸이클 중 제4 연산 싸이클에 출력되고, 데이터(- g9P13+ g11P9+ g8P3+ g10P1)는 8개 연산 싸이클 중 제5 연산 싸이클에 출력되고, 데이터(- g9P13+ g11P9+ g8P5+ g10P1+ g14P13- g12P9- g15P5- g13P1)는 8개 연산 싸이클 중 제6 연산 싸이클에 출력되고, 데이터(- g11P13+ g10P9- g9P5+ g8P1)는 8개 연산 싸이클 중 제7 연산 싸이클에 출력되고, 또한개의 데이터(- g11P13+ g10P9- g9P5+ g8P1+ g12P12- g13P9+ g14P5- g15P1)는 제8 연산 싸이클에 출력된다. 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(2384)로부터 출력된 데이터 중에서, 제2 연산 싸이클, 제4 연산 싸이클, 제6 연산 싸이클 및 제8 연산 싸이클에 출력된 데이터는 도 14에서 레지스터(404)의 출력선 중 하단 우측에 (F11, F13, F15)로 도시된 식(66)에서 표시되는 연산값(F11, F13, F15)을 나타내고, 제1 연산 싸이클, 제3 연산 싸이클, 제5 연산 싸이클 및 제7 연산 싸이클에 출력된 데이터는 레지스터(404)의 출력선 중 하단 좌측에 "*"로 도시된 정의되지 않은 값을 나타낸다.
상기 산술적인 연산을 완료함으로서, 16x16개의 데이터로 구성된 블록을 구성하는 한개의 라인내에 포함된 16개 데이터에 대한 1차 2-8-16 DCT가 종료된다. 상술된 바와 똑같은 1차 2-8-16 DCT는 16x16 데이터 블록을 구성하는 다음 선에 이어지는 각 라인에 실행되고, 8x8 데이터 블록을 구성하는 8개 선 모두에 대한 1차 2-8-16 DCT는 유사한 방식으로 종료된다. 16개 선에 모두 1차 2-8-16 DCT를 완료한 이후에는 16x16 데이터 블록을 구성하는 16개 데이터 스트링의 각 스트링에 2차 2-8-16 DCT가 실행된다. 2차 2-8-16 DCT를 완료함으로서 구해지는 변환 계수 데이터는 입력된 16x16 화상 데이터의 압축에 사용된다. 그래서, 압축된 화소 데이터의 전송은 16x16 화소 데이터 블록의 압축을 위해 전송되는 영상내의 16x16 화소 데이터에 1차 2-8-16 DCT 및 2차 2-8-16 DCT를 실행함으로서 구해지는 변환 계수 데이터를 사용하여 가능해진다.
그래서, 제3 실시예에 따라, 16-16 DCT/2-8-16 DCT 장치는 16-16 DCT에서 사용되는 고정 계수 승산 회로 일부가 또한 2-8-16 DCT 장치에서 요구되는 고정 계수승산 회로로 사용되도록 구성되므로, 16-16 DCT 장치 및 2-8-16 DCT 장치에서 전체 장치의 스케일을 소형화하더라도 16-16 DCT 장치에서 파이프라인 처리형 산술 연산을 통해 얻어지는 고속 계산 특징이 전부 유지될 수 있다.
<제4 실시예>
도 15는 본 발명의 제4 실시예에 따른 16-16/2-8-16 IDCT 장치의 전기 구성을 부분적으로 도시하는 블록도이다. 도 16은 제4 실시예에 따른 16-16/2-8-16 IDCT 장치의 전기 구성을 부분적으로 도시하는 블록도이다. 도 16의 선 IV-iV에 도 15의 선 IV - iV를 붙임으로서, 본 실시예의 16-16/2-8-16 IDCT 장치의 전체적인 구성이 도시될 수 있다. 16-16/2-8-16 IDCT는 제4 실시예에서 입력 데이터에 16-16/2-8-16 DCT를 실행함으로서 16-16/2-8-16 DCT로 압축된 영상 데이터로부터 원래 영상 데이터를 구하기 위해 압축된 영상 데이터에 실행된다는 점에서, 제4 실시예의 구성은 제3 실시예와 많이 다르다.
본 실시예의 16-16 IDCT/2-8-16 IDCT는 16-16 IDCT의 경우, 식 (18)을 압축해제하고 재배열함으로서 구해진 행렬식 (69)에 따라 산술 연산을 실행하고, 2-8-16 DCT의 경우에는 식 (22)를 압축해제하고 재배열함으로서 구해진 행렬식 (70)에 따라 산술 연산을 실행한다. 행렬식 (69)에서 값 h0내지 값 h15는 식 (71)로 주어지고, 행력식 (70)에서 값 g0내지 g15는 식 (72)으로 주어진다.
더욱이, 식 (69) 및 식 (70)에서 (P0내지 P15)는 식 (65) 및 식 (66)에서의 (P0내지 P15)와 똑같다.
MUX(312)는 16-16 IDCT의 경우, 16-16 IDCT가 실행되는 16x16 변환 계수 데이터(이후 "데이터"라 칭하여지는) 중에서 1차 IDCT를 위해 각 라인에 포함된 16개데이터 또는 1차 IDCT를 통해 얻어진 16x16 데이터를 구성하는 각 라인에 포함된 16개 데이터들(F0내지 F15)의 각 데이터를 대응하는 레지스터들(140내지 1415)에 선택적으로 출력하고, 2-8-16 IDCT의 경우에서는 16개 데이터들(F0내지 F15) 중 데이터(F0)을 제1 레지스터 그룹(313)에 포함된 레지스터(141)에 저장하고, 데이터(F8)을 레지스터(142)에 저장하고, 데이터(F1)을 레지스터(143)에 저장하고, 데이터(F9)을 레지스터(144)에 저장하고, 데이터(F2)을 레지스터(145)에 저장하고, 데이터(F10)을 레지스터(146)에 저장하고, 데이터(F3)을 레지스터(147)에 저장하고, 데이터(F11)을 레지스터(148)에 저장하고, 데이터(F5)을 레지스터(149)에 저장하고, 데이터(F13)을 레지스터(1410)에 저장하고, 데이터(F6)을 레지스터(1411)에 저장하고, 데이터(F14)을 레지스터(1412)에 저장하고, 데이터(F7)을 레지스터(1413)에 저장하고, 데이터(F15)을 레지스터(1414)에 저장하고, 데이터(F4)을 레지스터(1415)에 저장하고, 또한개의 데이터(F12)을 레지스터(1416)에 저장한다.
MUXs(161내지 168, 1692, 16102, 16112, 16122, 16132, 16142, 16152, 16162)은 각각 16-16 IDCT의 경우, "0" 데이터를 선택하고, 2-8-16 IDCT의 경우에는 레지스터들(142, 144, 146, 148, 1410, 1412, 1414, 1416)를 각각 선택한다. MUXs(1691, 16101, 16111, 16121, 16131, 16141, 16151,16161)은 각각 16-16 IDCT의 경우,레지스터들(143, 147, 149, 1413, 1414, 148, 1410, 1414)를 각각 선택하고, 2-8-16 IDCT의 경우에는 레지스터들(141, 143, 145, 147, 149, 1411, 1413, 1415)를 각각 선택한다.
제1 가산 회로 그룹(317)을 구성하는 가산 회로(181)는 레지스터(141)로부터 출력된 데이터를 MUX(161)로부터 출력된 데이터에 가산하고, 가산 회로(182)는 레지스터(143)로부터 출력된 데이터를 MUX(162)로부터 출력된 데이터에 가산하고, 가산 회로(183)는 레지스터(145)로부터 출력된 데이터를 MUX(163)로부터 출력된 데이터에 가산하고, 가산 회로(184)는 레지스터(147)로부터 출력된 데이터를 MUX(164)로부터 출력된 데이터에 가산하고, 가산 회로(185)는 레지스터(149)로부터 출력된 데이터를 MUX(165)로부터 출력된 데이터에 가산하고, 가산 회로(186)는 레지스터(1411)로부터 출력된 데이터를 MUX(166)로부터 출력된 데이터에 가산하고, 가산 회로(187)는 레지스터(1413)로부터 출력된 데이터를 MUX(167)로부터 출력된 데이터에 가산하고, 또한 가산 회로(188)는 레지스터(1415)로부터 출력된 데이터를 MUX(168)로부터 출력된 데이터에 가산한다.
감산 회로 그룹(319)을 구성하는 감산 회로(201)는 MUX(1691)로부터 출력된 데이터와 MXU(1692)로부터 출력된 데이터에 감산 연산들을 실행하고, 감산회로(202)는 MUX(16101)로부터 출력된 데이터와 MXU(16102)로부터 출력된 데이터에 감산 연산들을 실행하고, 감산 회로(203)는 MUX(16111)로부터 출력된 데이터와 MXU(16112)로부터 출력된 데이터에 감산 연산들을 실행하고, 감산 회로(204)는 MUX(16121)로부터 출력된 데이터와 MXU(16122)로부터 출력된 데이터에 감산 연산들을 실행하고, 감산 회로(205)는 MUX(16131)로부터 출력된 데이터와 MXU(16132)로부터 출력된 데이터에 감산 연산들을 실행하고, 감산 회로(206)는 MUX(16141)로부터 출력된 데이터와 MXU(16142)로부터 출력된 데이터에 감산 연산들을 실행하고, 감산 회로(207)는 MUX(16151)로부터 출력된 데이터와 MXU(16152)로부터 출력된 데이터에 감산 연산들을 실행하고, 또한 감산 회로(208)는 MUX(16161)로부터 출력된 데이터와 MXU(16162)로부터 출력된 데이터에 감산 연산들을 실행한다.
각 가산 회로(181) 내지 가산 회로(188)로부터 출력된 데이터는 제2 레지스터 그룹(321)에 포함된 대응하는 레지스터들(221내지 228)에 각각 저장되고, 각 감산 회로(201) 내지 감산 회로(208)로부터 출력된 데이터는 대응하는 레지스터들(229내지 2216)에 각각 저장된다.
제2 MUX 그룹을 구성하는 MUX(3241)는 레지스터들(221내지 228) 각각의 출력에 연결되고, 16-16 IDCT 및 2-8-16 IDCT의 경우에서 모두 레지스터(221)를 8회 선택하여 8개 데이터를 순서적으로 출력한다. MUX(3242)는 16-16 IDCT의 경우, 레지스터(225)를 8회 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터(228)를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(3243)는 16-16 IDCT의 경우, 레지스터들(223, 227, 227, 223, 223, 227, 227, 223)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(223, 226, 226, 223, 223, 226, 226, 223)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(3244)는 16-16 IDCT의 경우, 레지스터들(227, 223, 223, 227, 227, 223, 223, 227)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(226, 223, 223, 226, 226, 223, 223, 223)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(3245)는 16-16 IDCT의 경우, 레지스터들(222, 226, 224, 228, 228, 224, 226, 222)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(222, 225, 224, 227, 227, 224, 225,222)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(3246)는 16-16 IDCT의 경우, 레지스터들(224, 222, 228, 226, 226, 228, 222, 224)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고,2-8-16 IDCT의 경우에는 레지스터들(224, 222, 227, 225, 225, 227, 222, 224)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(3247)는 16-16 IDCT의 경우, 레지스터들(226, 228, 222, 224, 224, 222, 228, 226)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(225, 227, 222, 224, 224, 222, 227, 225)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(3248)는 16-16 IDCT의 경우, 레지스터들(228, 224, 226, 222, 222, 226, 224, 228)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(227, 224, 225, 222, 222, 225, 224, 227)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(3249)는 16-16 IDCT의 경우, 레지스터들(229, 2214, 2215, 2213, 2212, 2210, 2211, 2216)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터(2216)를 8회 반복적으로 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(32410)는 16-16 IDCT의 경우, 레지스터들(2210, 229, 2212, 2211, 2214, 2213, 2216, 2215)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(2211, 2214, 2214, 2211, 2211, 2214, 2214,2211)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(32411)는 16-16 IDCT의 경우, 레지스터들(2211, 2213, 229, 2215, 2210, 2216, 2212, 2214)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(2214, 2211, 2211, 2214, 2214, 2211, 2211, 2214)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(32412)는 16-16 IDCT의 경우, 레지스터들(2212, 2215, 2211, 229, 2216, 2214, 2210, 2213)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(2210, 2213, 2212, 2215, 2215, 2212, 2213, 2210)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(32413)는 16-16 IDCT의 경우, 레지스터들(2213, 2210, 2214, 2216, 229, 2211, 2215, 2212)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(2212, 2210, 2215, 2213, 2213, 2215, 2210, 2212)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(32414)는 16-16 IDCT의 경우, 레지스터들(2214, 2212, 2216, 2210, 2215, 229, 2213, 2211)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(2213, 2215, 2210, 2212, 2212, 2210, 2215,2213)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(32415)는 16-16 IDCT의 경우, 레지스터들(2215, 2216, 2213, 2214, 2211, 2212, 229, 2210)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터들(2215, 2212, 2213, 2210, 2210, 2213, 2212, 2215)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력한다.
MUX(32416)는 16-16 IDCT의 경우, 레지스터들(2216, 2211, 2210, 2212, 2213, 2215, 2214, 229)의 순서에 따라 레지스터를 선택하여 8개 데이터를 순서적으로 출력하고, 2-8-16 IDCT의 경우에는 레지스터(2216)를 8회 반복적으로 선택하여 8개 데이터를 순서적으로 출력한다.
제1 가감산 회로 그룹(325)을 구성하는 가산/감산 회로(3261)는 제1 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 MUX(3241)에서 순서적으로 출력된 8개 데이터 및 제1 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 MUX(3242)에서 순서적으로 출력된 8개 데이터에 가산 연산들을 실행하고, 제2 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 MUX(3241)에서 순서적으로 출력된 8개 데이터 및 제2 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 MUX(3242)에서 순서적으로 출력된 8개 데이터에 감산 연산들을 실행한다. 가감산 회로(3261)에 의한 감산 연산들에서는 MUX(3242)로부터 출력된 데이터가 MUX(3241)로부터 출력된 데이터에서 감산된다.
제1 가감산 회로 그룹(325)을 구성하는 가감산 회로(3262)는 제1 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 MUX(3249)에서 순서적으로 출력된 8개 데이터 및 제1 순서, 제4 순서, 제5 순서 및 제8 순서에 따라 MUX(32416)에서 순서적으로 출력된 8개 데이터에 가산 연산들을 실행하고, 제2 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 MUX(3241)에서 순서적으로 출력된 8개 데이터 및 제2 순서, 제3 순서, 제6 순서 및 제7 순서에 따라 MUX(3242)에서 순서적으로 출력된 8개 데이터에 감산 연산들을 실행한다. 가감산 회로(3262)에 의한 감산 연산들에서는 MUX(32416)로부터 출력된 데이터가 MUX(3249)로부터 출력된 데이터에서 감산된다.
제2 MUX 그룹(327)을 구성하는 MUX(281)는 16-16 IDCT의 경우, MUX(3249)로부터 출력된 8개 데이터를 순서적으로 선택하고, 2-8-16 IDCT의 경우에는 가감산 회로(3262)로부터 출력된 8개 데이터를 순서적으로 선택한다. MUX(282)는 16-16 IDCT의 경우, MUX(32415)로부터 출력된 8개 데이터를 순서적으로 선택하고, 2-8-16 IDCT의 경우에는 "0" 데이터를 8회 선택하여 이들을 출력한다. MUX(283)는 16-16 IDCT의 경우, MUX(32416)로부터 출력된 8개 데이터를 순서적으로 선택하여 이들을 출력하고, 2-8-16 IDCT의 경우에는 가감산 회로(32415)로부터 출력된 8개 데이터를 순서적으로 선택하여 이들을 순서적으로 출력한다.
제2 레지스터 그룹(329)을 구성하는 레지스터(301)는 가감산 회로(3261)로부터 순서대로 출력되는 8개 연산 결과를 순서적으로 저장한다. 레지스터(302)는 MUX(3243)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(303)는 MUX(3244)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(304)는 MUX(3245)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(305)는 MUX(3246)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(306)는 MUX(3247)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(307)는 MUX(3248)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다.
레지스터(308)는 MUX(281)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(309)는 MUX(32410)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(3010)는 MUX(32411)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(3011)는 MUX(32412)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(3012)는 MUX(32413)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(3013)는 MUX(32414)로부터 출력되고순서적으로 선택된 8개 데이터를 저장한다. 레지스터(3014)는 MUX(282)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다. 레지스터(3015)는 MUX(283)로부터 출력되고 순서적으로 선택된 8개 데이터를 저장한다.
P7계수 승산 회로(2321)는 레지스터(301)로부터 출력된 8개 데이터를 각각의 고정 계수 P7로 승산한다. P11계수 승산 회로(2322)는 레지스터(302)로부터 출력된 8개 데이터를 각각의 고정 계수 P11로 승산한다. P3계수 승산 회로(2323)는 레지스터(303)로부터 출력된 8개 데이터를 각각의 고정 계수 P3로 승산한다. P13계수 승산 회로(2324)는 레지스터(304)로부터 출력된 8개 데이터를 각각의 고정 계수 P13로 승산한다. P9계수 승산 회로(2325)는 레지스터(305)로부터 출력된 8개 데이터를 각각의 고정 계수 P9로 승산한다. P5계수 승산 회로(2326)는 레지스터(306)로부터 출력된 8개 데이터를 각각의 고정 계수 P5로 승산한다. P1계수 승산 회로(2327)는 레지스터(307)로부터 출력된 8개 데이터를 각각의 고정 계수 P1로 승산한다.
P14/P7계수 승산 회로(2328)는 16-16 DCT의 경우, 레지스터(308)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P14로 승산하고, 2-8-16 DCT의 경우에는 레지스터(308)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P7로 승산한다. P12/P11계수 승산 회로(2329)는 16-16 DCT의 경우, 레지스터(309)로부터순서적으로 출력된 8개 데이터를 각각의 고정 계수 P12로 승산하고, 2-8-16 DCT의 경우에는 레지스터(309)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P11로 승산한다. P10/P3계수 승산 회로(23210)는 16-16 DCT의 경우, 레지스터(3010)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P10로 승산하고, 2-8-16 DCT의 경우에는 레지스터(3010)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P3로 승산한다. P8/P13계수 승산 회로(23211)는 16-16 DCT의 경우, 레지스터(3011)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P8로 승산하고, 2-8-16 DCT의 경우에는 레지스터(3011)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P13로 승산한다.
P6/P9계수 승산 회로(23212)는 16-16 DCT의 경우, 레지스터(3012)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P6로 승산하고, 2-8-16 DCT의 경우에는 레지스터(3012)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P8로 승산한다. P4/P5계수 승산 회로(23213)는 16-16 DCT의 경우, 레지스터(3013)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P4로 승산하고, 2-8-16 DCT의 경우에는 레지스터(3013)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P5로 승산한다.
P2계수 승산 회로(23214)는 16-16 DCT의 경우, 레지스터(3014)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P2로 승산한다. P0/P1계수 승산 회로(23215)는 16-16 DCT의 경우, 레지스터(3015)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P0로 승산하고, 2-8-16 DCT의 경우에는 레지스터(3015)로부터 순서적으로 출력된 8개 데이터를 각각의 고정 계수 P1로 승산한다.
제4 레지스터 그룹(333)을 구성하는 레지스터(3341)는 16-16 IDCT 및 2-8-16 IDCT의 경우에서 모두 P7계수 승산 회로(2321)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 제1 순서 내지 제8 순서에 따라 순서적으로 출력되는 데이터를 양의 값으로 출력한다. 레지스터(3342)는 16-16 IDCT 및 2-8-16 IDCT의 경우에서 모두 P11계수 승산 회로(2322)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 제1 순서, 제3 순서, 제6 순서 및 제8 순서에 따라 순서적으로 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제4 순서, 제5 순서 및 제7 순서에 따라 순서적으로 출력되는 데이터를 음의 값으로 출력한다. 레지스터(3343)는 16-16 IDCT 및 2-8-16 IDCT의 경우에서 모두 P3계수 승산 회로(2323)로부터 순서대로 출력된 8개 데이터 각각을 순서적으로 저장하고, 제1 순서, 제2 순서 및 제7 순서에 따라 순서적으로 출력되는 데이터를 양의 값으로 출력하고, 제3 순서 내지 제6 순서 및 제8 순서에 따라 순서적으로 출력되는 데이터를음의 값으로 출력한다.
레지스터(3344)는 P13계수 승산 회로(2324)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서, 제4 순서 내지 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제3 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제5 순서 내지 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서 내지 제4 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(3345)는 P9계수 승산 회로(2325)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서 내지 제4 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제5 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서 내지 제4 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제5 순서 내지 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(3346)는 P5계수 승산 회로(2326)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서, 제5 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서 내지 제4 순서 및 제6 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제3 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제4 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.레지스터(3347)는 P1계수 승산 회로(2327)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서, 제3 순서, 제4 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제5 순서 및 제6 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제3 순서, 제4 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제5 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(3348)는 P14/P7계수 승산 회로(2328)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서, 제3 순서 내지 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서 내지 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력한다. 레지스터(3349)는 P12/P11계수 승산 회로(2329)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서, 제2 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제3 순서 내지 제6 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제3 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제4 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(33410)는 P10/P3계수 승산 회로(23210)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의경우, 제1 순서 내지 제3 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제4 순서 내지 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제2 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제3 순서 내지 제6 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(33411)는 P8/P13계수 승산 회로(23211)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서, 제4 순서 내지 제6 순서 및 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제3 순서 및 제7 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제5 순서 내지 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서 내지 제4 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(33412)는 P6/P9계수 승산 회로(23212)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서 내지 제3 순서, 제5 순서 및 제6 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제4 순서, 제7 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서 내지 제4 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제5 순서 내지 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(33413)는 P4/P5계수 승산 회로(23213)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서, 제3 순서, 제5 순서 내지 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서 및 제4 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제3 순서, 제5 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제4 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(33414)는 P2계수 승산 회로(23214)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT 및 2-8-16 IDCT의 경우에서 모두, 제1 순서, 제4 순서, 제6 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제3 순서, 제5 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다. 레지스터(33415)는 P0/P1계수 승산 회로(23216)로부터 순서적으로 출력된 8개 데이터를 각각 저장하고, 16-16 IDCT의 경우, 제1 순서 내지 제4 순서 및 제6 순서 내지 제8 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제5 순서에 따라 출력되는 데이터를 음의 값으로 출력하고, 2-8-16 IDCT의 경우에는 제1 순서, 제3 순서, 제4 순서 및 제7 순서에 따라 출력되는 데이터를 양의 값으로 출력하고, 제2 순서, 제5 순서, 제6 순서 및 제8 순서에 따라 출력되는 데이터를 음의 값으로 출력한다.
가산 회로(3383)는 16-16 IDCT 및 2-8-16 IDCT의 경우에서 모두, 레지스터들(3341내지 3347)로부터 순서적으로 출력되는 8개 데이터에 가산 연산들을 실행한다. 레지스터(403)는 가산 회로(3383)로부터 출력된 데이터를 저장한다.
가산 회로(3384)는 16-16 IDCT 및 2-8-16 IDCT의 경우에서 모두,레지스터들(3348내지 33415)로부터 순서적으로 출력되는 8개 데이터에 가산 연산들을 실행한다. 레지스터(404)는 가산 회로(364)로부터 출력된 데이터를 저장한다.
레지스터(403)로부터의 데이터는 가산 회로(44)의 피가수 (summand) 입력 및 감산 회로(42)의 피감수 (minuend) 입력에 공급되고, 레지스터(404)로부터의 데이터는 가산 회로(44)의 피가수 입력 및 감산 회로(42)의 피감수 입력에 공급된다. 감산 회로(42)로부터 출력된 데이터는 제6 레지스터 그룹(45)에 포함된 레지스터(46)에 공급되고, 가산 회로(44)로부터 출력된 데이터는 제6 레지스터 그룹(45)에 포함된 레지스터(48)에 공급된다. 제4 실시예의 다른 구성들은 제3 실시예의 구성들과 같고, 도 15 및 도 16에 도시된 구성성분에는 도 13 및 도 14에 주어진 것과 똑같은 참고번호가 지정되고, 관련된 설명은 생략된다.
제4 실시예의 연산은 도 15 및 도 16을 참고로 설명된다. 먼저, 16-16 DCT에 대한 연산이 설명된다.
MUX(321)로부터 순서적으로 16x16개의 화소에 16-16 DCT를 실행함으로서 압축된 이후 전송되는 16x16 변환 계수 데이터를 구성하는 각 스트링에서 16개의 화소 데이터(f0내지 f15)는 각각 16개의 데이터들(F0내지 F15)에 대응하는 제1 레지스터 그룹(131)을 구성하는 레지스터들(141내지 1416)에 각각 저장된다.
MUXs(161내지 168, 1692, 16102, 16112, 16122, 16132, 16142, 16152, 16162)은 각각 "0" 데이터를 선택하였고, MUXs(1691, 16101, 16111, 16121, 16131, 16141, 16151,16161)은각각 레지스터들(143, 147, 149, 1413, 144, 1410, 1414)를 선택하였으므로, 가산 회로(181)로부터 (F0= h0)이 출력되고, 가산 회로(182)로부터 (F2= h2)이 출력되고, 가산 회로(183)로부터 (F4= h4)이 출력되고, 가산 회로(184)로부터 (F6= h6)이 출력되고, 가산 회로(185)로부터 (F8= h8)이 출력되고, 가산 회로(185)로부터 (F10= h1)이 출력되고, 가산 회로(186)로부터 (F10= h10)이 출력되고, 가산 회로(187)로부터 (F12= h12)이 출력되고, 가산 회로(188)로부터 (F14= h14)이 출력되고, 감산 회로(201)로부터 (F1= h1)이 출력되고, 감산 회로(202)로부터 (F3= h3)이 출력되고, 감산 회로(203)로부터 (F5= h5)이 출력되고, 감산 회로(204)로부터 (F7= h7)이 출력되고, 감산 회로(205)로부터 (F9= h9)이 출력되고, 감산 회로(206)로부터 (F11= h11)이 출력되고, 감산 회로(207)로부터 (F13= h13)이 출력되고, 또한 감산 회로(208)로부터 (F15= h15)이 출력된다.
가산 회로(181)로부터 출력된 데이터(h0)는 레지스터(221)로 저장되고, 가산 회로(182)로부터 출력된 데이터(h2)는 레지스터(222)로 저장되고, 가산 회로(183)로부터 출력된 데이터(h4)는 레지스터(223)로 저장되고, 가산 회로(184)로부터 출력된 데이터(h6)는 레지스터(224)로 저장되고, 가산 회로(185)로부터 출력된 데이터(h8)는 레지스터(225)로 저장되고, 가산 회로(186)로부터 출력된 데이터(h10),레지스터(226)로부터 출력된 데이터(h12)는 가산 회로(187)에 저장되고, 또한 레지스터(227)로부터 출력된 데이터(h14)는 가산 회로(188)에 저장된다.
감산 회로(201)로부터 출력된 데이터(h1)는 레지스터(229)로 저장되고, 감산 회로(202)로부터 출력된 데이터(h3)는 레지스터(2210)로 저장되고, 감산 회로(203)로부터 출력된 데이터(h5)는 레지스터(2211)로 저장되고, 감산 회로(204)로부터 출력된 데이터(h7)는 레지스터(2212)로 저장되고, 감산 회로(206)로부터 출력된 데이터(h9)는 레지스터(2213)로 저장되고, 감산 회로(207)로부터 출력된 데이터(h11)는 레지스터(2215)로 저장되고, 또한 감산 회로(208)로부터 출력된 데이터(h15)는 레지스터(2216)로 저장된다.
레지스터(221)로부터 출력된 데이터(h0)는 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3241)에 의해 선택되어 가감산 회로(3261)로 공급되고, 레지스터(225)로부터 출력된 데이터(h8)는 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3242)에 의해 선택되어 가감산 회로(3261)로 공급되고, 이어서 데이터들(h0+ h8, h0- h8, h0- h8, h0+ h8, h0+ h8, h0- h8, h0- h8, h0+ h8)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 순서적으로 가감산 회로(3261)로부터 출력되어 레지스터(301)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(221내지 228)로부터 출력되는 데이터들(h0, h2, h4, h6, h8, h10, h12, h14)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3243)에 의해 선택되고, 데이터들(h4, h12, h12, h4, h4, h12, h12, h4)은 각각 MUX(3243)로부터 순서적으로 출력되어 레지스터(302)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(221내지 228)로부터 출력되는 데이터들(h0, h2, h4, h6, h8, h10, h12, h14)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3244)에 의해 선택되고, 데이터들(h12, h4, h4, h12, h12, h4, h4, h12)은 각각 MUX(3244)로부터 순서적으로 출력되어 레지스터(303)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(221내지 228)로부터 출력되는 데이터들(h0, h2, h4, h6, h8, h10, h12, h14)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3245)에 의해 선택되고, 데이터들(h2, h10, h6, h14, h14, h6, h10, h2)은 각각 MUX(3244)로부터 순서적으로 출력되어 레지스터(304)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(221내지 228)로부터 출력되는 데이터들(h0, h2, h4, h6, h8, h10, h12, h14)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3246)에 의해 선택되고, 데이터들(h6, h2, h14, h10, h10, h14, h2, h6)은 각각 MUX(3244)로부터 순서적으로 출력되어 레지스터(305)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(221내지 228)로부터 출력되는 데이터들(h0, h2, h4, h6, h8, h10, h12, h14)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3247)에 의해 선택되고, 데이터들(h10, h14, h2, h6, h6, h2, h14, h10)은 각각 MUX(3247)로부터 순서적으로 출력되어 레지스터(305)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(221내지 228)로부터 출력되는 데이터들(h0, h2, h4, h6, h8, h10, h12, h14)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3248)에 의해 선택되고, 데이터들(h14, h6, h10, h2, h2, h10, h6, h14)은 MUX(3247)로부터 순서적으로 출력되어 레지스터(307)에 저장된다.
8개 연산 싸이클 중 매 싸이클마다 레지스터들(229내지 2216)로부터 출력되는 데이터들(h1, h3, h5, h7, h9, h11, h13, h15)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3249)에 의해 선택되고, 데이터들(h1, h11, h13, h9, h7, h3, h5, h15)은 MUX(3249)로부터 순서적으로 출력되어 레지스터(308)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(229내지 2216)로부터 출력되는 데이터들(h1, h3, h5, h7, h9, h11, h13, h15)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32412)에 의해 선택되고, 데이터들(h7, h13, h5, h1, h15, h11, h3, h9)은 MUX(32412)로부터 순서적으로 출력되어 레지스터(3011)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(229내지 2216)로부터 출력되는 데이터들(h1, h3, h5, h7, h9, h11, h13, h15)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32412)에 의해 선택되고, 데이터들(h9,h3, h11, h15, h1, h5, h13, h7)은 MUX(32413)로부터 순서적으로 출력되어 레지스터(3012)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(229내지 2216)로부터 출력되는 데이터들(h1, h3, h5, h7, h9, h11, h13, h15)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32414)에 의해 선택되고, 데이터들(h11, h7, h15, h3, h13, h1, h9, h5)은 MUX(32414)로부터 순서적으로 출력되어 레지스터들(3013)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(229내지 2216)로부터 출력되는 데이터들(h1, h3, h5, h7, h9, h11, h13, h15)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32415)에 의해 선택되고, 데이터들(h13, h15, h9, h11, h5, h7, h1, h3)은 MUX(32415)로부터 순서적으로 출력되어 레지스터(3014)에 저장된다. 8개 연산 싸이클 중 매 싸이클마다 레지스터들(229내지 2216)로부터 출력되는 데이터들(h1, h3, h5, h7, h9, h11, h13, h15)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32416)에 의해 선택되고, 데이터들(h15, h5, h3, h7, h9, h13, h11, h1)은 MUX(32415)로부터 순서적으로 출력되어 레지스터(3015)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(301내지 307)로부터 출력되는 각 데이터는 8개 연산 싸이클 중 매 연산 싸이클마다 대응하는 고정 계수 승산 회로(2321) 내지 고정 계수 승산 회로(2327)에서 대응하는 계수 P7, P11, P3,P13, P9, P5및 P1로 승산되고, 레지스터들(3341내지 3347)로 저장된다. 대응하는 레지스터들(3341내지 3347)에 각각 저장된 데이터에는 각각 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(3383)에서 가산 연산들이 행해지고, 레지스터(403)에 저장된다.
가산 회로(3383)에서 8개 연산 싸이클 중 제1 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0+ h8) P7+ h4P11+ h12P3+ h2P13+ h6P6+ h10P5+ h14P1)이다. 제1 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f0+ f8)이다. 가산 회로(3383)에서 8개 연산 싸이클 중 제2 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0- h8) P7- h12P11+ h4P3- h10P13+ h2P9- h14P5- h6P1)이다. 제2 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f1+ f9)이다. 가산 회로(3383)에서 8개 연산 싸이클 중 제3 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0- h8) P7+ h12P11- h4P3- h6P13+ h1P9- h2P5+ h10P1)이다. 제3 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f2+ f10)이다. 가산 회로(3383)에서 8개 연산 싸이클 중 제3 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0+ h8) P7- h4P11- h12P3+ h14P13+ h10P9-h6P5+ h2P1)이다. 제3 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f3+ f11)이다. 가산 회로(3383)에서 8개 연산 싸이클 중 제5 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0+ h8) P7- h4P11- h12P3+ h14P13- h10P9+ h6P5- h2P1)이다. 제5 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f4+ f12)이다. 가산 회로(3383)에서 8개 연산 싸이클 중 제6 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0- h8) P7+ h12P11- h4P3+ h6P13- h14P9- h2P5- h10P1)이다. 제5 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f5+ f13)이다. 가산 회로(3383)에서 8개 연산 싸이클 중 제7 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0- h8) P7- h12P11+ h4P3+ h10P13+ h2P9+ h14P5+ h6P1)이다. 제5 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f6+ f14)이다. 가산 회로(3383)에서 8개 연산 싸이클 중 제7 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 ((h0+ h8) P7+ h4P11- h12P3- h2P13- h6P9+ h10P5+ h14P1)이다. 제8 연산 싸이클에 레지스터(403)에 저장된 데이터는 식 (69)에서 연산값(f7+ f15)이다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(308내지 3015)로부터 출력된 각 데이터는 8개 연산 싸이클 중 매 연산 싸이클마다 대응하는 고정 계수 승산 회로(2328) 내지 고정 계수 승산 회로(23215)에서 대응하는 계수 P14, P12, P10, P8, P4, P2및 P0으로 승산되고 레지스터들(3348내지 33415)에 저장된다. 대응하는 레지스터들(3348내지 33415)에 각각 저장된 데이터에는 각각 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(3384)에서 가산 연산들이 행해지고, 레지스터(404)에 저장된다.
가산 회로(3384)에서 8개 연산 싸이클 중 제2 연산 싸이클에 가산 연산들이 실행되어 레지스터(403)에 저장된 데이터는 (- h1P14+ h1P12- h9P10- h13P8+ h3P6- h7P4- h15P2+ h5P0)이다. 제2 연산 싸이클에 레지스터(404)에 저장된 데이터는 식 (69)에서 연산값(f1- f9)이다. 가산 회로(3384)에서 8개 연산 싸이클 중 제3 연산 싸이클에 가산 연산들이 실행되어 레지스터(404)에 저장된 데이터는 (h13P14- h7P12+ h1P10- h5P8+ h11P6+ h15P4- h9P2+ h3P0)이다. 제3 연산 싸이클에 레지스터(404)에 저장된 데이터는 식 (69)에서 연산값(f2- f10)이다. 가산 회로(3384)에서 8개 연산 싸이클 중 제4 연산 싸이클에 가산 연산들이 실행되어 레지스터(404)에 저장된 데이터는 (h9P14- h5P12- h13P10+ h1P8- h15P6- h3P4+ h11P2+ h7P0)이다. 제4 연산 싸이클에 레지스터(404)에 저장된 데이터는 식 (69)에서 연산값(f3- f11)이다. 가산 회로(3384)에서 8개 연산 싸이클 중 제5 연산 싸이클에 가산 연산들이 실행되어 레지스터(404)에 저장된 데이터는 (h7P14- h11P12- h3P10+ h15P8+ h1P6+ h13P4- h5P2- h9P0)이다. 제5 연산 싸이클에 레지스터(404)에 저장된 데이터는 식 (69)에서 연산값(f4- f12)이다. 가산 회로(3384)에서 8개 연산 싸이클 중 제6 연산 싸이클에 가산 연산들이 실행되어 레지스터(404)에 저장된 데이터는 - h3P14- h9P12- h15P10+ h11P8+ h5P6+ h1P4+ h7P2+ h13P0)이다. 제6 연산 싸이클에 레지스터(404)에 저장된 데이터는 식 (69)에서 연산값(f5- f13)이다. 가산 회로(3384)에서 8개 연산 싸이클 중 제7 연산 싸이클에 가산 연산들이 실행되어 레지스터(404)에 저장된 데이터는 (h5P14+ h15P12- h7P10- h3P8- h13P6+ h9P4+ h1P2+ h11P0)이다. 제7 연산 싸이클에 레지스터(404)에 저장된 데이터는 식 (69)에서 연산값(f6- f14)이다. 가산 회로(3384)에서 8개 연산 싸이클 중 제8 연산 싸이클에 가산 연산들이 실행되어 레지스터(404)에 저장된 데이터는 - h15P14+ h13P12- h11P10+ h9P8- h7P6+ h5P4- h3P2+ h1P)이다. 제8 연산 싸이클에 레지스터(404)에 저장된 데이터는 식 (69)에서 연산값(f7- f15)이다.
가산 회로(42)에서는 레지스터(403)로부터 순서적으로 출력된 8개 데이터 및 레지스터(404)로부터 순서적으로 출력된 8개 데이터에 가산 연산들이 실행되고, 결과의 데이터 (f0, f1, f2, f3, f4, f5, f6,f7)은 가산 회로(42)로부터 출력되어 레지스터(46)에 순서적으로 저장된다. 데이터들(f0, f1, f2, f3, f4, f5, f6, f7)은 도 16에서 레지스터(46)의 출력선 중 하단부에 도시된다. 가산 회로(44)에서는 레지스터(403)로부터 순서적으로 출력된 8개 데이터 및 레지스터(404)로부터 순서적으로 출력된 8개 데이터에 가산 연산들이 실행되고, 결과의 데이터들(f8, f9, f10, f11, f12, f13, f14, f15)은 가산 회로(44)로부터 출력되어 레지스터(46)에 순서적으로 저장된다. 데이터들(f8, f9, f10, f11, f12, f13, f14, f15)은 도 16에서 레지스터(46)의 출력선 중 하단부에 도시된다.
상기 산술적인 연산을 완료함으로서, DCT가 행해진 이후에 전송된 16x16 데이터 블록을 구성하는 한개의 스트링 중 16개 데이터에 대한 1차 16-16 IDCT가 종료된다. 상술된 바와 똑같은 1차 16-16 IDCT는 16x16 데이터 블록을 구성하는 다음 선에 이어지는 각 라인에 실행되고, 16x16 데이터 블록을 구성하는 16개 선 모두에 대한 1차 16-16 IDCT는 유사한 방식으로 종료된다. 16개 선에 모두 1차 16-16 IDCT를 완료한 이후에는 16x16 데이터 블록 (DCT에서의 전치 데이터)을 구성하는 16개 데이터 스트링의 각 스트링에 2차 16-16 IDCT가 실행된다. 2차 16-16 IDCT를 완료함으로서, 16-16 DCT가 행해진 이후에 전송된 원래의 영상 화상이 재생될 수 있다.
다음에는 2-8-16 IDCT의 동작이 설명된다.
MUX(312)로부터 순서적으로 16x16 화소에 16-16 DCT를 실행한 이후 전송되는 16x16 데이터로 구성된 블록을 구성하는 각 라인에 포함된 16개의 화소 데이터들(f0내지 f15)은 각각 16개 데이터들(F0내지 F15) 각각에 대응하는 제1 레지스터 그룹(313)을 구성하는 레지스터들(141내지 1415)에 각각 저장된다.
16개 데이터들(F0내지 F15) 중 데이터(F0)는 제1 레지스터 그룹(313)을 구성하는 레지스터(141)에 저장되고, 데이터(F8)는 레지스터(142)에 저장되고, 데이터(F1)는 레지스터(143)에 저장되고, 데이터(F9)는 레지스터(144)에 저장되고, 데이터(F2)는 레지스터(145)에 저장되고, 데이터(F10)는 레지스터(146)에 저장되고, 데이터(F3)는 레지스터(147)에 저장되고, 데이터(F11)는 레지스터(148)에 저장되고, 데이터(F5)는 레지스터(149)에 저장되고, 데이터(F13은 레지스터(1410)에 저장되고, 데이터(F6)는 레지스터(1411)에 저장되고, 데이터(F14)는 레지스터(1412)에 저장되고, 데이터(F7)는 레지스터(1413)에 저장되고, 데이터(F15)는 레지스터(1414)에 저장되고, 데이터(F4)는 레지스터(1415)에 저장되고, 또한개의 데이터(F12)는 레지스터(1416)에 저장된다.
MUXs(161내지 168, 1692, 16102, 16112, 16122, 16132, 16142, 16152, 16162)은 각각 레지스터들(142, 144, 146, 148, 1410, 1412, 1414, 1416)를 선택하였고, MUXs(1691,16101, 16111, 16121, 16131, 16141, 16151, 16161)은 각각 레지스터들(141, 143, 145, 147, 149, 1411, 1413, 1415)를 선택하였으므로, 가산 회로(181)로부터 데이터(F0+ f8= i0)가 출력되고, 가산 회로(182)로부터 데이터(F1+ f9= i1)가 출력되고, 가산 회로(183)로부터 데이터(F2+ f10= i2)가 출력되고, 가산 회로(184)로부터 데이터(F3+ f11= i3)가 출력되고, 가산 회로(185)로부터 데이터(F5+ f13= i4)가 출력되고, 가산 회로(186)로부터 데이터(F6+ f14= i5)가 출력되고, 가산 회로(187)로부터 데이터(F7+ f15= i6)가 출력되고, 가산 회로(188)로부터 데이터(F4+ f12= i7)가 출력되고, 감산 회로(201)로부터 데이터(F0- f8= i8)가 출력되고, 감산 회로(202)로부터 데이터(F1- f9= i9)가 출력되고, 감산회로(203)로부터 데이터(F2- f10= i10)가 출력되고, 감산 회로(204)로부터 데이터(F3- f11= i11)가 출력되고, 감산 회로(205)로부터 데이터(F5- f13= i12)가 출력되고, 감산 회로(206)로부터 데이터(F6- f14= i13)가 출력되고, 감산 회로(207)로부터 데이터(F7- f15= i14)가 출력되고, 또한 감산 회로(208)로부터 데이터(F4- f12= i15)가 출력된다.
가산 회로(181)로부터 출력된 데이터(i0)는 레지스터(221)에 저장되고, 가산 회로(182)로부터 출력된 데이터(i1)는 레지스터(222)에 저장되고, 가산 회로(183)로부터 출력된 데이터(i2)는 레지스터(223)에 저장되고, 가산 회로(184)로부터 출력된데이터(i3)는 레지스터(224)에 저장되고, 가산 회로(185)로부터 출력된 데이터(i4)는 레지스터(225)에 저장되고, 가산 회로(186)로부터 출력된 데이터(i5)는 레지스터(226)에 저장되고, 가산 회로(187)로부터 출력된 데이터(i6)는 레지스터(227)에 저장되고, 또한 가산 회로(188)로부터 출력된 데이터(i7)는 레지스터(228)에 저장된다.
감산 회로(201)로부터 출력된 데이터(i8)는 레지스터(229)에 저장되고, 감산 회로(202)로부터 출력된 데이터(i9)는 레지스터(2210)에 저장되고, 감산 회로(203)로부터 출력된 데이터(i10)는 레지스터(2211)에 저장되고, 감산 회로(204)로부터 출력된 데이터(i11)는 레지스터(2212)에 저장되고, 감산 회로(205)로부터 출력된 데이터(i12)는 레지스터(2213)에 저장되고, 감산 회로(206)로부터 출력된 데이터(i13)는 레지스터(2214)에 저장되고, 감산 회로(207)로부터 출력된 데이터(i14)는 레지스터(2215)에 저장되고, 또한 감산 회로(208)로부터 출력된 데이터(i15)는 레지스터(2216)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i8)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3241)에서 선택되고, 데이터(i0)는 8회 MUX(3241)로부터 순서적으로 출력되어 가감산회로(3261)에 공급된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i7)은 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3242)에서 선택되고, 데이터(i7)는 8회 MUX(3242)로부터 순서적으로 출력되어 가감산 회로(3261)에 공급되고, 데이터들(i0+ i7, i0- i7, i0- i7, i0+ i7, i0+ i7, i0- i7, i0- i7, i0+ i7)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 가감산 회로(3261)로부터 순서적으로 출력되어 레지스터(301)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i7)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3243)에서 선택되고, 각 데이터들(i2, i5, i5, i2, i2, i5, i5, i2)은 순서적으로 출력되어 레지스터(302)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i7)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3244)에서 선택되고, 각 데이터들(i5, i2, i2, i5, i5, i2, i2, i5)은 순서적으로 출력되어 레지스터(303)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i7)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3245)에서 선택되고, 각 데이터들(i1, i4, i3, i6, i6, i3, i4, i1)은 순서적으로 출력되어 레지스터(304)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i7)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3246)에서 선택되고, 각 데이터들(i3, i1, i6, i4, i4, i6, i1, i3)은 순서적으로 출력되어 레지스터(305)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i7)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3247)에서 선택되고, 각 데이터들(i4, i6, i1, i3, i3, i1, i6, i4)은 순서적으로 출력되어 레지스터(306)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(221내지 228)로부터 출력된 데이터들(i0내지 i7)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3248)에서 선택되고, 각 데이터들(i6, i3, i4, i1, i1, i4, i3, i6)은 순서적으로 출력되어 레지스터(307)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(3249)에서 선택되고, 데이터들(i8)는 MUX(3249)로부터 8회 순서적으로 출력되어 가감산 회로(3261)에 공급되며, 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32416)에서 선택되고, 데이터들(i15)는 MUX(32416)로부터 8회 순서적으로 출력되어 가감산 회로(3261)에 공급되고, 데이터들(i8+ i15, i8- i15, i8- i15, i8+ i15, i8+ i15, i8- i15, i8+ i15)는 각각 8개 연산 싸이클 중 매 연산 싸이클마다 순서적으로 출력되어 MUX(281)를 통해 레지스터(308)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32410)에서 선택되고, 각 데이터들(i10, i13, i13, i10, i10, i13, i13, i10)은 MUX(32410)로부터 순서적으로 출력되어 레지스터(309)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32411)에서 선택되고, 각 데이터들(i13, i10, i10, i13, i13, i10, i10, i13)은 MUX(32411)로부터 순서적으로 출력되어 레지스터(3010)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32412)에서 선택되고, 각 데이터들(i9, i12, i11, i14, i14, i11, i12, i9)은 MUX(32412)로부터 순서적으로 출력되어 레지스터(3011)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32412)에서 선택되고, 각 데이터들(i9, i12, i11, i14, i14, i11, i1, i9)은 MUX(32412)로부터 순서적으로 출력되어 레지스터(3011)에 저장된다. 8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32414)에서 선택되고, 각 데이터들(i12, i14, i9, i11, i11, i9, i14, i12)은 MUX(32413)로부터 순서적으로 출력되어 레지스터들(3011)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(229내지 2216)로부터 출력된 데이터들(i8내지 i15)은 각각 8개 연산 싸이클 중 매 연산 싸이클마다 MUX(32415)에서 선택되고, 각 데이터들(i14, i11, i12, i9, i9, i12, i11, i14)은 MUX(32415)로부터 순서적으로 출력되어 MUX(283)를 통해 레지스터(3015)에 저장된다. MUX(282)가 "0" 데이터를 선택하였으므로, MUX(32415)로부터 출력되는 모든 데이터는 "0" 데이터로 레지스터(33414)에 저장된다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(301내지 307)로부터 출력된 각 데이터에는 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(3383)에서 가산 연산들이 행해지고, 레지스터(403)에 저장된다. 8개 연산 싸이클 중 제1 연산싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0+ i7) P7+ i2P11+ i5P3+ i1P13+ i13P9+ i4P5+ i6P1)이다. 제1 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에 (f0)으로 도시된 식 (70)에서 연산값(f0)을 나타낸다. 8개 연산 싸이클 중 제2 연산 싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0- i7) P7- i5P11+ i2P3- i4P13+ i1P9- i6P5- i3P1)이다. 제2 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에 (f2)으로 도시된 식 (70)에서 연산값(f0)을 나타낸다. 8개 연산 싸이클 중 제3 연산 싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0- i7) P7+ i5P11- i2P3- i3P13+ i6P9+ i1P5+ i4P1)이다. 제3 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에 (f2)으로 도시된 식 (70)에서 연산값(f4)을 나타낸다. 8개 연산 싸이클 중 제4 연산 싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0+ i7) P7- i2P11- i5P3- i6P13+ i4P9- i3P5+ i1P1)이다. 제4 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에 (f6)으로 도시된 식 (70)에서 연산값(f6)을 나타낸다. 8개 연산 싸이클 중 제5 연산 싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0+ i7) P7- i2P11- i5P3- i6P13- i4P9+ i3P5- i1P1)이다. 제5 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에 (f8)으로 도시된 식 (70)에서 연산값(f8)을 나타낸다. 8개 연산 싸이클 중 제6 연산 싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0- i7) P7+ i5P11- i2P3+ i6P13- i6P9- i1P5- i4P1)이다. 제6 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에 (f10)으로 도시된 식 (70)에서 연산값(f0)을 나타낸다. 8개 연산 싸이클 중 제7 연산 싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0- i7) P7- i5P11+ i2P3+ i4P13- i1P9+ i6P5+ i3P1)이다. 제6 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에 (f12)으로 도시된 식 (70)에서 연산값(f12)을 나타낸다. 8개 연산 싸이클 중 제8 연산 싸이클에 가산 회로(3383)에서 가산 연산들이 행해져 레지스터(403)에 저장된 데이터는 ((i0+ i7) P7+ i2P11- i5P3- i1P13- i3P9- i4P5- i6P1)이다. 제8 연산 싸이클에 레지스터(403)로 저장된 데이터는 도 16에서 레지스터(403)의 출력선 중 하단부에(f14)으로 도시된 식 (70)에서 연산값(f14)을 나타낸다.
8개 연산 싸이클 중 매 연산 싸이클마다 레지스터들(3348내지 33415)로부터 출력된 각 데이터에는 8개 연산 싸이클 중 매 연산 싸이클마다 가산 회로(3384)에서 가산 동작이 행해져 레지스터(404)에 저장된다.
8개 연산 싸이클 중 제1 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8+ i15) P7+ i10P11+ i13P3+ i9P13+ i11P9+ i12P5+ i14P1)이다. 제1 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에 (f1)으로 도시된 식 (70)에서 연산값(f1)을 나타낸다. 8개 연산 싸이클 중 제2 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8- i15) P7- i13P11+ i10P3- i12P13+ i9P9- i14P5- i14P1)이다. 제1 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에 (f3)으로 도시된 식 (70)에서 연산값(f3)을 나타낸다. 8개 연산 싸이클 중 제3 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8- i15) P7+ i13P11- i10P3- i11P13+ i14P9+ i9P5+ i12P1)이다. 제1 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에(f5)으로 도시된 식 (70)에서 연산값(f5)을 나타낸다. 8개 연산 싸이클 중 제4 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8+ i15) P7- i10P11- i13P3- i14P13+ i12P9- i11P5+ i9P1)이다. 제4 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에 (f7)으로 도시된 식 (70)에서 연산값(f7)을 나타낸다. 8개 연산 싸이클 중 제5 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8+ i15) P7- i10P11- i13P3+ i14P13- i12P9+ i11P5- i9P1)이다. 제5 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에 (f9)으로 도시된 식 (70)에서 연산값(f9)을 나타낸다. 8개 연산 싸이클 중 제6 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8- i15) P7+ i13P11- i10P3+ i11P13- i14P9- i9P5- i12P1)이다. 제6 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에 (f11)으로 도시된 식 (70)에서 연산값(f11)을 나타낸다. 8개 연산 싸이클 중 제7 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8- i15) P7- i13P11+ i10P3+ i12P13- i9P9+ i14P5+ i11P1)이다. 제7 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에 (f13)으로 도시된 식 (70)에서 연산값(f13)을 나타낸다. 8개 연산 싸이클 중 제8 연산 싸이클에 가산 회로(3384)에서 가산 연산들이 행해져 레지스터(404)에 저장된 데이터는 ((i8+ i15) P7+ i10P11+ i13P3- i9P13- i11P9- i12P5- i14P1)이다. 제8 연산 싸이클에 레지스터(404)로 저장된 데이터는 도 16에서 레지스터(404)의 출력선 중 하단부에 (f15)으로 도시된 식 (70)에서 연산값(f15)을 나타낸다.
상기 산술적인 연산을 완료함으로서, 2-8-16 DCT가 행해진 이후에 전송된 16x16 데이터 블록을 구성하는 한개의 스트링 중 16개 데이터에 대한 1차 2-8-16 IDCT가 종료된다. 상술된 바와 똑같은 1차 2-8-16 IDCT는 16x16 데이터 블록을 구성하는 다음 선에 이어지는 각 라인에 실행되고, 16x16 데이터 블록을 구성하는 16개 스트링 모두에 대한 1차 2-8-16 IDCT는 유사한 방식으로 종료된다. 16개 스트링에 모두 1차 2-8-16 IDCT를 완료한 이후에는 16x16 데이터 블록 (DCT에서의 전치 데이터)을 구성하는 16개 데이터 스트링의 각 스트링에 2차 2-8-16 IDCT가 실행된다. 16x16 데이터에 각각 1차 2-8-16 IDCT 및 2차 2-8-16 IDCT를 완료함으로서, 2-8-16 DCT가 행해진 이후에 전송된 원래의 영상 화상이 재생될 수 있다.
그래서, 본 발명에 따라, 16-16 IDCT 및 2-8-16 IDCT 장치는 16-16 IDCT 회로에서 사용되는 고정 계수 승산 회로의 일부가 교환되어 2-8-16 DCT에서 요구되는 고정 계수 승산 회로로 사용될 수 있도록 구성되므로, 16-16 IDCT에서 파이프라인처리형 산술 연산을 통해 구해지는 고속 계산 특징이 2-8-16 IDCT에서도 유지될 수 있고, 소형화된 16-16 IDCT 장치 및 2-8-16 IDCT 장치에서도 고속 계산 특징이 계속 유지될 수 있다.
상기 제1 실시예 내지 제4 실시예를 기초하여, 다음의 결론을 얻을 수 있다;
식 (74)는 제1 실시예 및 제3 실시예의 경우와 똑같은 방식으로 식 (73)을 전개하여 이를 "N"에 대해 배열함으로서 구해질 수 있다. 그러므로, 제1 실시예 및 제2 실시예의 경우와 똑같은 방식으로 2Nx 2N화소 데이터를 구성하는 각 라인 및 각 스트링에 식 (74)으로 표시된 연산을 실행함으로서, 2 - 2N-1- 2NDCT에 대한 연산이 실행될 수 있다.
먼저, 식 (74)에서 우측 오른쪽에 있는 매트릭스가 설명된다.
식 (74)에서 우측 오른쪽에 있는 매트릭스에 포함된 성분 중에서, 최종 번호 P1, P5, P9, P13, ...가 주어진 구성성분 및 식 (75)으로 표시되는 구성성분은 i=1 내지 i=2N-1-1인 경우를 갖도록 매 다른 "i"를 선택함으로서 구해지는 계수이고, 여기서 그 계수는 식 (76)에 도시된 바와 같이 고정 계수 Pi(i=0, 1, 2, ...2N-1-1)로표시된다. i=1 내지 i=2N-1-1인 경우 매 다른 "1"을 선택함으로서 구해지는 고정 계수를 제외한 계수를 선택한 이후에 남겨지는 매 다른 "1"을 선택함으로서 i=2N-3 내지 i=2N-1-1일 때 구해질 수 있는 계수를 선택하고, 결과적으로 아직까지 남겨진 매 다른 "1"을 선택함으로서 구해진 고정 계수를 선택함으로서, 식 (74)에서 우측 오른쪽에 있는 매트릭스에 포함된 각 구성성분이 결정될 수 있다. 본 출원에서, 상기와 같이 결정될 수 있는 고정 계수는 "이산 코싸인 변환(discrete cosine transformation) 규칙에 따라 결정될 수 있는 고정 계수"라 칭하여진다.
식 (74)에서 우측 왼쪽의 상단측에 존재하는 매트릭스에 포함된 제1 라인상의 제1 스트링은 식 (77)으로 주어지고, 식 (77)에서 각 항의 값 kj(j=0, 1, 2, ..., 2N-1-1)는 식 (78)으로 주어진다.
식 (74)에서 우측 왼쪽의 하단측에 존재하는 매트릭스에 포함된 제1 라인상의 제1 스트링은 식 (79)으로 주어지고, 식 (79)에서 각 항의 값 kj (j=2N-1, 2N-1+1, 2N-1+2, ..., 2N-1))은 (80)으로 주어진다.
식 (74)에서 좌측 왼쪽의 상단측에 있는 매트릭스내의 각 구성성분 중에서 식 (74)에 도시된 셀(cell)은 한 구성성분을 나타낸다. 식 (74)에 도시된 바와 같이, 제2 선의 제1 스트링이 한 구성성분이다.
"21x 21"로 도시된 프레임 내지 "2N-3x 2N-3"로 도시된 프레임이 하단 우측 방향으로 배열되고, "2N-3x 2N-3"로 도시된 프레임 내지 "2N - 2x 2N - 2"로 도시된 프레임이 하단 우측 방향으로 배열된다.
구성성분 21x 21(21x 21개의 셀)은 "21x 21"로 도시된 프레임, 즉 제3 선 및 제4 선과 제2 스트링 및 제3 스트링으로 도시된 프레임에 포함된다. 구성성분 22x 22(22x 22개의 셀)은 "22x 22"로 도시된 프레임, 즉 제5 선 및 제8 선과 제4 스트링 및 제7 스트링으로 도시된 프레임에 포함된다. 구성성분 2N-3x 2N-3(2N-3x 2N-3개의 셀)은 "2N-3x 2N-3"로 도시된 프레임에 포함된다. 구성성분 2N - 2x 2N - 2(2N - 2x 2N - 2개의 셀)은 "2N-3x 2N-3"로 도시된 프레임에 포함된다.
식 (74)의 상단측에 있는 매트릭스에서 제2 선 및 제1 스트링으로 구성된 각 성분과 "21x 21"로 도시된 프레임 내지 2N - 2x 2N - 2로 도시된 프레임 각각에 포함된 각 구성성분은 식 (78)에서 표시된 각 kj의 가감산식 [kjm]N - 2(m = j 중 선택된 첨자 j 이외의 값)으로 주어진다. 또한, 식 (74)의 하단측에 있는 매트릭스에서 제2 선 및 제1 스트링으로 구성된 각 성분과 "21x 21"로 도시된 프레임 내지 2N - 2x 2N - 2로 도시된 프레임 각각에 포함된 각 구성성분은 식 (80)에서 표시된 각 kj의 가감산식 [kjn]N - 2(m = j 중 선택된 첨자 j 이외의 값)으로 주어진다.
식 (74)에서 우측 오른쪽 및 우측 왼쪽에 있는 매트릭스에서 행렬식의 연산이 설명된다. 제1 선 및 제1 스트링과 제2 선 및 제1 스트링의 구성성분은 우측에 있는 매트릭스에서 제1 구성성분으로 승산될다. 21x 21로 도시되는 프레임에 포함된 각 스트링의 각 구성성분은 우측에 있는 매트릭스에서 제2 구성성분 및 제3 구성성분으로 승산될다. 22x 22로 도시된 프레임에 포함된 각 스트링내의 각 구성성분은 우측에 있는 매트릭스에서 제4 구성 성분 내지 제7 구성성분으로 승산될다. 2N-3x 2N-3으로 도시된 프레임에 포함된 각 스트링내의 각 구성성분은 우측에 있는 매트릭스에서 제2N-3내지 제(1+ 21+22+ ... +2N-4) 구성성분으로 승산될다. 이 관계는 상단측 및 하단측에 있는 매트릭스에 적용될 수 있다.
식 (74)에서 우측 오른쪽에 있는 매트릭스 및 우측 왼쪽에 있는 매트릭스에서 행렬식의 연산으로 각 라인에 구해지는 각 구성성분의 각 적들의 합은 식 (74)에서 우측에 도시된 행렬식에 대응하는 구성성분 (변환 계수 데이터, 즉 식 (74)에서 F로 도시된 데이터)을 나타낸다.
상술된 홀수를 갖는 고정 계수 Pi로 승산될 각 구성성분은 화소 데이터(데이터(78) 및 식 (80)에서 "f"로 도시된 데이터)이다.
그렇지만, 일반적인 공식 및 일반적인 표현 형태에 의해 상술된 매트릭스를 구성하는 kj 중 어느 구성성분이 오는가를 나타내는 것은 불가능하다. 그러나, 식 (51) 및 식 (66)에서 행해진 것과 똑같은 방식으로, N의 지정된 값에 대해 식 (73)을 전개하여 재배열함으로서, 상술된 가감산식 [kjm]N - 2및 가감산식 [kjn]N - 2은 지정된 N 값에 대해 결정될 수 있다.
또한, 변환 계수 데이터가 32x32인 경우, 제2 실시예 및 제4 실시예에서 행해진 것과 똑같은 방식으로, N에 대해 식 (81)을 전개하여 재배열함으로서 식 (82)을 구하고, 식 (82)에서 표시된 연산을 제2 실시예 및 제4 실시예에서와 똑같은 방식으로 2Nx 2N변환 계수 데이터의 각 라인 또는 각 스트링에 포함된 데이터에 실행함으로서, 2 - 2N-1- 2NIDCT에 대한 연산이 실행될 수 있다. 식 (82)에 표시된 수 N은 자연수이다. 식 (82)에서 상단측에 있는 행렬식의 좌측에 도시된 매트릭스는 홀수의 화소이고, 식 (82)에서 하단측에 있는 행렬식의 좌측에 도시된 매트릭스는 짝수의 화소이다.
식 (82)에서 우측 왼쪽의 상단측에 있는 매트릭스 [lop] 및 하단측에 있는 매트릭스 [loq]의 제1 스트링은 변환 계수 데이터(F0)와 식 (83) 사이의 합이나 차로 표시되고, 다른 구성성분은 식 (83)에 표시된 변환 계수 데이터를 제외한 구성성분 Fk(1 ≤ k ≤ 2N-1- 2)을 갖는 매트릭스로 표시된다.
2N- 2NDCT는 식 (84)에 따라 실행되고, 2N- 2NIDCT는 식 (85)에 따라 실행된다. 식 (84)에서 좌우측에 있는 매트릭스 및 식 (85)에서 좌우측에 있는 매트릭스에서 사용되는 문자 및 표시는 대개 식 (74) 및 식 (82)에 대응한다. 식 (84) 및 식 (85)에서 우측 왼쪽에 있는 매트릭스에 포함된 각 구성성분은 아래 도시된바와 같이 식 (74) 및 식 (82)과 다르다;
식 (84)에 포함된 구성성분 [Ast]N - 2및 [Bsu]N-1은 각각 식 (86)으로 주어진다. 식 (84)에 포함된 구성성분 [Ast]N - 2및 [Bsu]N-1각각에서 사용되는 s, t 및 u의 의미는 j, m 및 n에 대응한다. 화소 데이터(f0내지 f2N-1은 식 (86)에서 주어진 화소 데이터이다. 구성성분 [Cvw] 및 [Dvx]는 각각 2N- 2NIDCT에서 변환 계수 데이터로 주어진다. 식 (85)에 포함된 구성성분 [Cvw] 및 [Dvx] 각각에서 사용되는 v, w 및 x의 의미는 식 (82)에서 o, p 및 q 에 대응한다.
그러므로, 2N- 2NDCT를 실행하는데 사용되는 회로 일부를 사용함으로서, 2N- 2N화소 데이터에 2 - 2N-1- 2NDCT가 실행될 수 있다. 또한, 2N- 2NIDCT를 실행하는데 사용되는 회로 일부를 사용함으로서, 2N- 2N변환 계수 데이터에 2 - 2N-1- 2NIDCT가 실행될 수 있다.
상술된 바와 같이, 본 발명에 따라, 2Nx 2N(N은 자연수)개의 화소 데이터 중 한개의 라인이나 한개의 스트링에 포함된 2N개의 화소 데이터로부터 이산 코싸인 변환 규칙에 따라, 똑같은 순서에 따라, 또는 다른 순서에 따라 결정된 홀수 k를 갖는 고정 계수들Pk(0 ≤ k ≤ 2N- 1)로 승산될 2N개의 화소 데이터로 구성되는 제1 세트의 화소 데이터 및 제2 세트의 화소 데이터를 선택하고, 홀수 k를 갖는 고정 계수에 대응하는 선택된 제1 세트의 화소 데이터 및 선택된 제2 세트의 화소 데이터 모두를 홀수 k를 갖는 고정 계수에 의해 승산하여 그 적들을 만들고, 그 적을 대응하는 고정 계수에 더하고, 또한 가산값을 기초하여 그 가산값에 대응하는 변환 계수 데이터 Pk중 소정의 수의 변환 계수 데이터를 출력함으로서, 2 - 2N-1- 2NDCT가 파이프라인 포맷에서 고속으로 실행될 수 있다.
2 - 2N-1- 2NIDCT는 2 - 2N-1- 2NDCT의 경우와 똑같은 방식으로 구성되므로 2Nx 2N개의 변환 계수 데이터에 실행될 수 있다.
본 발명은 상기 실시예에 제한되지 않고 본 발명의 범위 및 의도에서 벗어나지 않고 변화 및 수정될 수 있음이 명백하다. 예를 들면, 32x32 개의 화소 데이터 뿐만 아니라 32x32 개의 변환 계수 데이터가 사용될 때도 제1 실시예 내지 제4 실시예에서 얻어진 것과 똑같은 효과가 이루어질 수 있다. 상기 제1 실시예에서는 8-8 DCT 및 2-4-8 DCT에 대한 연산이 설명되고, 제2 실시예에서는 8-8 IDCT 및 2-4-8 IDCT에 대한 연산이 설명되고, 제3 실시예에서는 16-16 DCT 및 2-8-16 IDCT에 대한 연산이 설명되고, 또한 제4 실시예에서는 16-16 DCT 및 2-8-16 IDCT에 대한 연산이 설명된다. 그러나, 2-4-8 DCT, 2-4-8 IDCT, 2-8-16 DCT 및 2-8-16 IDCT가 하나씩 독립적으로 실행될 수 있다. 또한, 8-8 DCT, 2-4-8 DCT, 8-8 IDCT 및 2-4-8 IDCT는 분리된 장치를 사용하지 않고 레지스터로부터 출력된 데이터의 코드 및 MUX를 교환함으로서 한 장치로 실행될 수 있다. 영상 신호의 이산 코싸인 변환 속도가 크게 중요하지 않으면, DCT 및 IDCT에 대한 상기 연산은 소프트웨어로 실행될 수 있다. 상술된 각 실시예에서 MUX의 연산 전후의 타이밍, 예를 들면, MUX(241) 내지 MUX(248)에 입력하는 타이밍과 MUX(241) 내지 MUX(248)로의 입력에 이어지는 연산의 타이밍은 1 ; 2N-1이 될 수 있다. 더욱이, 상기 실시예에서는 합 및 차가 사용되지만, 일본 특개평 5-181896호에서 설명된 바와 같이, 신호의 선택 포맷을 사용함으로서, 본 발명이 동일하게 실시될 수 있다.
그래서, 본 발명에 따라, 2N- 2NDCT 및 2 - 2N-1- 2NDCT 장치는 2N- 2NDCT에서 사용되는 고정 계수 승산 회로 일부가 교환되어 2 - 2N-1- 2NDCT에서 요구되는 고정 계수 승산 회로로 사용될 수 있도록 구성되므로, 2N- 2NDCT에서 파이프라인 처리형 산술 연산을 통해 구해진 고속 계산 특징은 2 - 2N-1- 2NDCT에서도 유지되고, 소형화된 2N- 2NDCT 및 2 - 2N-1- 2NDCT 장치에서도 고속 계산 특징이 유지될 수 있다. 상기와 똑같은 효과는 본 발명에 따라 2N- 2NIDCT 및 2 - 2N-1- 2NIDCT 장치에서도 이루어질 수 있다.