l39: low power dct/idct processor 설계
DESCRIPTION
L39: Low Power DCT/IDCT Processor 설계. 1. Introduction. 본 Project 에서는 DCT/IDCT 알고리즘과 구조를 알아 보고 단일 칩 HDTV(MPEG-2), H.26x 등에서 사용이 가능한 소면적 , 고속의 DCT/IDCT 프로세서 구조를 제안하고 저전력 설계 방법으로 구현해 본다 . 저전력 디지털 설계 DCT/IDCT 알고리즘과 구조 소면적 , 고속의 DCT/IDCT 프로세서 구조를 제안 VLSI 설계 및 구현 결론. - PowerPoint PPT PresentationTRANSCRIPT
L39: Low Power DCT/IDCT Processor 설계
1. Introduction
• 저전력 디지털 설계• DCT/IDCT 알고리즘과 구조• 소면적 , 고속의 DCT/IDCT 프로세서 구조를 제안• VLSI 설계 및 구현• 결론
본 Project 에서는 DCT/IDCT 알고리즘과 구조를 알아 보고 단일 칩 HDTV(MPEG-2), H.26x 등에서 사용이 가능한 소면적 , 고속의 DCT/IDCT 프로세서 구조를 제안하고 저전력 설계 방법으로 구현해 본다 .
2. 저전력 디지털 설계
• Modified DCT/IDCT 프로세서 구조로 하드웨어 크기를 줄여 물리적 Capacitance 를 감소 시킨다 .
W.H. Chen 의 고속 알고리즘 분산 연산 구조
곱셈기 제거RAC(ROM and Accumulator in Cascade) 로 매트릭스 곱셈
수행
• 소비전력이 적은 구조를 갖는 고속 덧셈기를 최적 설계한다 .
3. DCT/IDCT 구조 (1)
3.1 DCT/IDCT 알고리즘
입력 픽셀 블록의 값 에 대한 정 방향 2-D DCT 와 역 방향 2-D DCT 식은 다음과 같다 .
X u vNC u C v x i j i u
Nj vNj
N
i
N
( , ) ( ) ( ) ( , ) cos ( ) cos ( )
2 2 12
2 120
1
0
1
x i jN
C u C v X u vi uN
j vNv
N
u
N
( , ) ( ) ( ) ( , ) cos ( ) cos ( )
2 2 12
2 120
1
0
1
C C u C v u v( ) , ( ) ( ) ( , )0 12
1 0 0
x i j( , )
3. DCT/IDCT 구조 (2)
3.2 고속알고리즘
1-D DCT/IDCT
M atrixTranspose
1-D DCT/IDCTIN OUT
RC M(row- column method) 2- D DCT/ IDCT 의 구 조
3. DCT/IDCT 구조 (3)X0
X4
X2
X6
X5
X1
X7
X3
x0
x1
x2
x3
x4
x5
x6
x7
A1
A2
A3
A4
A5
A6
A7
A8
- 1- 1 - 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1 - 1 - 1
- 1
- 1
- 1
B5
B4
B3
B2
B1
The Flowgraph for 1- D IDC T by Arai, Agui, and Nakajima
Annn
B B B B B
RST 8 1
16 2 81 3 0 707 2 0 541 4 1 307 5 0 383. , . , . , .
3. DCT/IDCT 구조 (4)
x1
x2
x3
x4
x5
x6
x7
x0 X0
X4
X2
X6
X1
X5
X3
X7
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- C 4
- C 4- C 4- C 4
- C 4
- C 4- C 4- C 4
C 6
C 6- C 2C 2
C 7
C 3
C 3
C 7
C 1
C 5- C 5
- C 1
The F lowgraph of C hen's 1- D DC T
3. DCT/IDCT 구조 (5)
W.H. Chen은 행렬을 재구성하여 연산량을 줄이는 고속 알고리즘을 제안 .• 코사인 함수의 대칭성을 이용• (N x N) x (N x 1) 행렬 연산을 (N/2 x N/2) x (N/2 x 1) 행렬연산 식으로 변환하여 계산량을 줄임 .
XXXX
C C C CC C C CC C C CC C C C
x xx xx xx x
XXXX
C C C CC C C CC C C CC C C C
x
0
2
4
6
4 4 4 4
2 6 6 2
4 4 4 4
6 2 2 6
0 7
1 6
2 5
3 4
1
3
5
7
1 3 5 7
3 7 1 5
5 1 7 3
7 5 3 1
12
12
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPP
0 7
1 6
2 5
3 4
16
L
NMMMM
O
QPPPP
xx xx xx x
where c kk, cos
xxxx
C C C CC C C CC C C CC C C C
XXXX
C C C CC C C CC C C CC C C C
XXXX
xxxx
0
2
4
6
4 2 4 6
2 6 4 2
4 2 4 6
4 6 4 2
0
2
4
6
1 3 5 7
5 1 7 3
7 5 3 1
3 7 1 5
1
3
5
7
0
2
4
6
12
12
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPPL
NMMMM
O
QPPPP
L
NMMMM
O
QPPPPL
NMMMM
O
QPPPP
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPPL
NMMMM
O
QPPPP
L
NMMMM
O
QPPPPL
NMMMM
O
QPPPP
12
12
16
4 2 4 6
2 6 4 2
4 2 4 6
4 6 4 2
0
2
4
6
1 3 5 7
5 1 7 3
7 5 3 1
3 7 1 5
1
3
5
7
C C C CC C C CC C C CC C C C
XXXX
C C C CC C C CC C C CC C C C
XXXX
where c kk, cos
3. DCT/IDCT 구조 (6)
3.3 분산 연산 구조 (Distributed Arithmetic)XX
X
c c cc c c
c c c
xx
x
X c x x b bb sign bitb mth bitM number of bits
X c x
c b b
K
K
N N NK K
n nk kk
K
k k kmm
Mm
k
km
n nk kk
K
nk k kmm
Mm
k
K
1
2
6
10 11 1
20 21 2
0 1
1
2
10
1
1 0
1
01
1
1
2
2
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPPL
NMMMM
O
QPPPP
RS|T|
::
:
( )
c b c bnk kmk
K
m
Mm
nk kk
K
LNM OQP
11
1
01
2 ( )
...........
...........
...........
...........
ROM1
ROM4
ROM3
ROM2
±
±
±
±
R
R
R
R
x1
x2
x3
x4
X1
X2
X3
X4
4. Modified DCT/IDCT
XX
C CC C
x x x xx x x x
XX
C CC C
x x x xx x x x
XXXX
C C C CC C C CC C C CC C C C
0
4
4 4
4 4
0 7 3 4
1 6 2 5
6
2
2 6
6 2
1 6 2 5
0 7 3 4
1
3
5
7
1 3 5 7
3 7 1 5
5 1 7 3
7 5 3 1
12
12
12
LNMOQP
LNM OQP
LNM OQPLNMOQPLNM OQP
LNM OQPL
NMMMM
O
QPPPP
L
NMMMM
O
QPPPP
L
NMMMM
O
QPPPP
x xx xx xx x
where c kk
0 7
1 6
2 5
3 4
16, cos
Forward DCT 는 매트릭스 분해 과정을 통해서 아래와 같이 표현 된다 .
고속 알고리즘 : 입력계수 상호간의 가감산 부분
분산 산출 처리 : 서로 다른 상수값과의 곱셈 부분
5. VLSI 설계 및 구조5.0 DCT/IDCT Processor 입출력 신호
D C T/ID C T Processor
Reset
C LK
DI
MC D
ST
DO
Done
ResetCLKDI : 입력 데이터 버스MCD : DCT/IDCT Change ModeST : 데이터 입력 시작 신호
DO : 출력 데이터 버스Done : 출력데이터 시작 신호
5. VLSI 설계 및 구조Transpose
module
1-D DCTcomputation
moduleParallel-to-Serial
moduleSerial-to-Parallel
module
Output buffer& clipping
Inputbuffer
FDCT_IN(8:0)IDCT_IN(11:0)
FDCT_OUT(11:0)IDCT_OUT(8:0)
5.1 DCT 전체 블럭도
5. VLSI 설계 및 구조5.2 Transpose RAM(1)
16wordD x16bits QA (RAM1)
16wordD x16bits QA (RAM2)
16wordD x16bits QA (RAM3)
16wordD x16bits QA (RAM4)
A Mux B
A Mux B
C ontro ller
A B Mux C
A B Mux C
DL(15:0)
DH(15:0)
SyncR/ W control
QL(15:0)
QL(15:0)
Transpose Module 의 구 조
5. VLSI 설계 및 구조5.2 Transpose RAM(2)
0 2 4 616 18 20 2232 34 36 3848 50 52 54
1 3 5 717 19 21 2333 35 37 3949 51 53 55
8 10 12 14 24 26 28 3040 42 44 4656 58 60 62
9 10 12 14 25 27 29 3141 43 45 4757 59 61 63
RAM1 RAM2
RAM3 RAM4
Transpose RAM 의 사 용 예
10
3 5 72 4 6
9 11
8 10... 57
56
59
58
61
60
63
62
1
0
3
2
5
4
7
6
8
0
24
16
40
32
56
48
9
1
25
17
...
... 15
7
31
23
47
39
63
55
60cyc les 64cyc les
Transpose Mudule 의 입 출 력 데 이 터 형 태
5. VLSI 설계 및 구조5.3 Internal data word-length
14 13 12 11 10 9 8 7 6 5 4 3 2 1 .1 .2 .3 .4 .5 .6 .7 .8 .9Internal Data
DC T In
IDC T In
1- D DC T Out
1- D IDC T Out
2- D DC T In
2- D IDC T In
2- D DC T Out
2- D IDC T Out
DC T Out
IDC T Out
5. VLSI 설계 및 구조5.4 Butterfly in Preprocessor(1)
B 15 B 14 B 13 B 12 B 11 B 1 2 B 11 B 1 0 B 9 B 8 B 7 B 6 B 5 B 4 B 3 B 2 B 1 B 0 A 15 A 14 A 13 A 12 A 11 A 1 0 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0
16 bit Carry Generate / Propagate UnitP 1 5 G 1 5 P 1 4 G 14 P 13 G 1 3 P 12 G 1 2 P11 G 1 1 P 10 G 1 0 P 9 G 9 P 8 G 8 P 7 G 7 P 6 G 6 P 5 G 5 P 4 G 4 P 3 G 3 P 2 G 2 P 1 G 1 P 0 G 0
P 3 G 3 P 2 G 2 P 1 G 1 P 0 G 0P*
4 bit BCLU*G*
C 2 C 1 C 0
P 3 G 3 P 2 G 2 P 1 G 1 P 0 G 0P *
4 bit BCLU*G *
C 2 C 1 C 0
P 3 G 3 P 2 G 2 P 1 G 1 P 0 G 0P *
4 bit BCLU*G *
C 2 C 1 C 0
P 3 G 3 P 2 G 2 P 1 G 1 P 0 G 0P *
4 bit BCLU*G *
C 2 C 1 C 0
P 3 G 3 P 2 G 2 P 1G 1 P 0G 0
4 bit CLA C IN
C 3 C 2 C 1 C 0
C OUT C 3C 7C 11
C IN
P 1 5 P 14 P 1 3 P 12 P 11 P 12 P 11 P 10 P9 P 8 P 7 P 6 P 5 P 4 P 3 P 2 P 1 P 0 C 14 C 1 3 C 12 C 11 C 10 C 9 C 8 C 7 C 6 C 5 C 4 C 3 C 2 C 1 C 0
16 bit Summ ation UnitS 1 5 S 14 S 1 3 S 1 2 S 1 1 S 10 S 9 S 8 S 7 S 6 S 5 S 4 S 3 S 2 S 1 S 0
C 0C 2 C 1C 6 C 5C 4C 8C 10 C 9C 12C 13C 14
5. VLSI 설계 및 구조5.4 Butterfly in Preprocessor(2)
5. VLSI 설계 및 구조5.5 Postprocessor 워드 단위 병렬 -직렬변환 , IDCT 버터플라이 , 라운딩 (rounding)
DC T
1- D DC T(1st) : 20 bits → 16 bits rounding
1- D DC T(2nd) : 20 bits → 12 bits rounding & c lipping (- 2048 ~ 2047)
Output : 12 bits
IDC T
1- D DC T(1st) : 20 bits → 16 bits rounding
1- D DC T(2nd) : 20 bits → 9 bits rounding & c lipping (- 256 ~ 255)
Output : 9 bits
Input : 9 bits Input : 12 bits
6. Result6.1 2-D DCT/IDCT Synthesis Result
Preprocessor & Postprocessor (3324 & 7410 Gates) 16, 18, 20 bit Carry-look Adder
RAC (16word x 7 ROM & 36278 Gates) Distribute Arithmetic 방법을 사용 하지 않고 곱셈기 사용 (Synopsys Lib)
Transpose RAM 16word x 16bits 일반 RAM 4 개 사용
Total : 52,308 Gates
6. Future Work
• 이번 프로젝트의 목적은 우선 구현이 목적이었으므로 Low power 와 Area 면에서 최적화를 시키지 못했다 .
• 행렬연산을 하는 RAC 부분을 곱셈기를 사용치 않고 Distribute Arithmetic 방법으로 구현을 한다면 36,278 개의 Gates 수가 최소한 반으로 줄 수 있을 것이다 .
• Preprocessor & Postprocessor 에 사용된 Carry-lookahead Adder 대신에 보다 Low power 와 소면적을 위해서 4bit Adder 와 Register로 하위 비트와 상위비트를 따로 계산을 하는 방법도 가능 할 것이다 .
7. Reference[1] A.Makisetti and Jr A.N. Willson.”A 100 MHz 2-D 8x8 DCT/IDCT Processor for HDTV Applications”, IEEE Transactions on Circuit and Systems for Video Technology,5(2):158-165,1995
[2] Jordi Ribas-Corbera and Shawmin Lei, “Rate Control in DCT Video Coding for Low-Delay Communication”, IEEE Transactions on circuits and systems for video technology, vol.9,No.1,february 1999
[3] Seehyun Kim and Wonyong Sung, “Fixed-Piont Error Analysis and Word Length Optimization of 8x8 IDCT Architecture”, IEEE Transactions on circuits and systems for video technology, vol.8, No.8, December 1998
[4] Yun-Hui Fan, Vijay K. Madisetti, “On Fast Algorithms for Computing the Inverse Modified Discrete Cosine Transform”, IEEE signal processing letters, vol.6, No.3, march 1999
[5] Y.Arai, T.Agui and M.Nakajima, A Fast DCT-SQ Scheme for images, trans. Of the IEICE.E 71(11):1095(Nov.1988)
[6] M.T.SUN, L. WU and M.L.Liou, “A Concurrent Architecture for VLSI Implementation of Discrete Cosine Transform”, IEEE Transactions on circuits and systems, vol. Cas-34, No. 8, August 1987