Professional Documents
Culture Documents
JPEG
1.1
RGB
YCbCr
(1)
1.2
JPEG
YCbCr
4:4:44:2:24:2:0 JPEG
Block Coding
88 JPEG
88 2-D Discrete Cosine
Transform2-D DCT
QuantizationQ
4:4:4
4:2:2
4:1:1
4:2:0
8
8
f(i,j)
F(u,v)
DCT
Fq(u,v)
Quantization
8x8
Header
Coding
Tables
Quantization
Table
Tables
01001011101
DC
DPCM
Data
Entropy
Coding
RLC
AC
zig zag
scan
JPEG
01001011101
Quantization
Table
Header
Coding
Tables
Tables
Data
F(u,v)
Entropy Fq(u,v)
Inverse
IDCT
Decoder
Quantization
f(i,j)
8x8
JPEG
SoC Design Lab., 2004
1.3
Transpose
Memory
(Y)
1 D DCT
Unit
1 D DCT
Unit
Z=YAT
Y=AX
128
X k1 ,k2
N 1 N 1
(2n + 1)k1 cos (2n2 + 1)k 2
2
= c(k1 )c(k 2 ) xn1,n2 cos 1
2N
2N
N
n1 =0 n2 =0
n1 , n2 , k1 , k 2 = 0,1,L, N 1
where c(0) =
xn1 ,n2 =
2
N
c ( k )c ( k
1
) X k1,k2 cos
(3)
n1 , n2 , k1 , k 2 = 0,1,L, N 1
where c(0) =
(2)
N 1 N 1
k1 =0 k 2 =0
2N
1
and c(n) = 1 for n 0
2
Row-Column Decomposition
Z=AXAT X
SoC Design Lab., 2004
8 point
1-D DCT
N 1
(2u + 1)v
u =0
2N
(2u + 1)v
v =0
2N
1
and c(v) =
N
2
N
(4)
for v 0
-C4
X0
X1
+
x
x
C4
x
x
-C2
C2
Y0
C4
Y4
Y2
-C4
C6
X2
X3
Y6
C6
X4
x
C7
C3
-C4
X5
X6
+
x
x
C4
x
C3
C7
C4
X7
+
x
x+y
x-y
C4
C1
+
x
x
x
Y1
Y5
C5
-C5
Y3
-C1
Y7
cx
Chens Algorithm[1]
1.4
JPEG
16
11
10
16
24
40
51
61
17
18
24
47
99
99
99
99
12
12
14
19
26
58
60
55
18
21
26
66
99
99
99
99
14
13
16
24
40
67
69
56
24
26
56
99
99
99
99
99
14
17
22
29
51
87
80
62
47
66
99
99
99
99
99
99
18
22
37
56
68
109
103
77
99
99
99
99
99
99
99
99
24
35
55
64
81
104
113
92
99
99
99
99
99
99
99
99
49
64
78
87
103
121
120
101
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
72
92
95
98
112
100
103
1.5
DC 88 JPEG
88 DC 88
DC DC
DC
DCi 1
DCi
blocki 1
sample
blocki
DCi
Difference
Previous sample
DCi DCi 1
DC i 1
1.6
88 63 AC
Zig-Zag
Zig-Zag 88
Zig-Zag AC
Zig-Zag
Zig-Zag
Row ScanColumn Scan
DC
30
-3
-1
-2
-2
-1
-1
R,L= 0 ,
DC AC -3-3 0
0,-3-3 -2-2 0
0,-2(0,-1) 0,-2
0,-1 0 AC -12,-1
-1 88 0 EOB
-1 0
1.7
JPEG DC AC
DC
DC
DC AC
Category
AC Coefficient Range
-1,1
-3,-2,2,3
-7,,-4,4,,7
-15,,-8,8,,15
-31,,-16,16,,31
-63,,-32,32,,63
-127,,-64,64,,127
-255,,-128,128,,255
-511,,-256,256,,511
10
-1023,,-512,512,,1023
11
-2047,,-1024,1024,,2047
AC
1.8
DCT-based Coding
88 888=512(bits)
88 98(bits)
10
140
144
152
168
162
147
136
148
144 147
152 140
155 136
145 156
148 156
167 140
156 123
155 136
140
147
167
160
148
155
167
155
61
4
-1
0
0
0
0
0
-3
-4
-2
0
0
0
0
0
2
2
0
1
0
-1
0
0
0 2 0 0 -1
0 0 0 0 0
0 -1 0 -1 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
3
5
7
9
11
13
15
17
5
7
9
11
13
15
17
19
7
9
11
13
15
17
19
21
9
11
13
15
17
19
21
23
11
13
15
17
19
21
23
25
13
15
17
19
21
23
25
27
15
17
19
21
23
25
27
29
179
179
172
160
162
162
147
136
-128
12
16
24
40
34
19
3
20
16
24
27
17
20
39
28
27
19
12
8
28
28
12
-5
8
12
19
39
32
20
27
39
27
11
12
35
24
12
27
34
24
27
20
34
27
8
12
16
19
51
39
24
8
19
8
12
19
47
51
44
32
34
34
19
8
FDCT
185
20
-10
-8
-3
3
8
0
-17
-34
-23
-5
9
-2
0
-7
14
26
-1
14
7
-18
-2
-2
-8
-9
6
-14
1
8
3
1
23
-10
-18
-8
-11
8
-1
1
-9
10
3
-2
17
-3
-7
4
-13
13
-20
-3
18
0
-1
-6
-18
6
0
8
15
-6
-1
0
(6)(61),(0,2)(-3),
(0,3)(4),(0,1)(-1),
(110)(111101)(01)(00)(100)
(0,3)(-4),(0,2)(2), Huffman (100)(00)(0)(100)(001)(01)
(1,2)(2),(0,2)(-2),
(10)(11011)(10)(01)(01)(01)
(0,2)(-2),(5,2)(2),
(01)(11111110111)(10)(111010)
Run-length
(3,1)(1),(6,1)(-1),
(1)(1111011)(0)(11100)(0)
(2,1)(-1),(4,1)((111011)(0)(11111010)(0)(1010)
1),
(7,1)(-1),(0,0)
17
19
21
23
25
27
29
31
Zig-Zag
total 98 bits
Q Table
1.9
JPEG
JPEG
Start_of_image
Frame
scan
End_of_image
......
scan
block
block
block
......
......
block
JPEG
11
2.
2.1
2.2
JPEG
ARM
Integrator/AP
JPEG
Hardware/Software Co-design
JPEG
JPEG
JPEG
JPEG
JPEG
JPEG: Still Image Data Compression Standard
[2]
SoC Design Lab., 2004
12
JPEG
JPEG JPEG
JPEG
z
4 Component
Component
RedGreenBlue
JPEG YCbCr 1
Y 2 Cb 4
JPEG 3
JPEG 88
8
1Y
88
Non-interleave order 3
1 88 2
88 3 88 88
Interleave
orderY1Cb1Cr1 MCUMinimum
Coded Unit
SoC Design Lab., 2004
13
8
8
Cb
Cr
MCU
MCU
Non-interleave orderMCU
MCU MCU 3
88 4:4:4 4 Y CbCr 88
4:1:1 MCU 88
14
SSSS
Value
-1,1
-3,-2,2,3
-7,,-4,4,,7
-15,,-8,8,,15
-31,,-16,16,,31
Category
0
1
2
3
4
Code Word
00
010
011
100
101
2.3
JPEG bmp.cpppicture.cppjpeg.cpp
stream.cpp
bmp.cpp*.bmp
picture.cpp 88
88
88
jpeg.cpp
88 picture.cpp
stream.cppbit-stream
bit
byte 0 1 16
SoC Design Lab., 2004
15
1 16 0 JPEG
Encoder
Bmp.cpp
Picture.cpp
Jpeg.cpp
Stream.cpp
Bmp.cpp
Picture.cpp
Jpeg.cpp
Decoder
JPEG
type.h ByteWordDWord
picture.cpp
bmp.cpp *.bmp
RGB JPEG
YCbCr YCbCr
RGB
stream.cpp
9
BufferBufferLengthbyte Buffer
1 bit Buffer BufferLength
Buffer bit
Name[32]
16
picture.cpp
9
Pixel
32 4
32-bits
Cb
Cr
8-bits
Pixel
WidthHeight Pixel
MCU88 88
Type 88 Y Cb
17
address
0
10 11 12 13 14 15
16 17 18 19
MCU
18
0 , 0
8 , 0
16 , 0
24 , 0
3
MCU
address
8
8
Cb
8
8
8
Cr
jpeg.cpp
9
Chens Algorithm 1
19
1
9
2.4
JPEG
sw.bat JPEG
ARM sw.axf
CodeWarrior C++
bmp test1.bmp test2.bmp test3.bmp
SoC Design Lab., 2004
20
test4.bmp sw
C++
[1] W. Chen, CH Smith, and S. Fralic, "A fast computational algorithm for the
discrete cosine transform," IEEE Trans. Commun., vol. COM-25, pp. 1004-1009,
Sept 1977.
[2] JPEG: Still Image Data Compression Standard by William B. Pennebaker and
Joan L. Mitchell, Kluwer Academic Publishers, ISBN: 0442012721
21