Download presentation
Presentation is loading. Please wait.
Published byOctavio Ventura Borba Modified over 6 years ago
1
CIS679: JPEG (more) Review of JPEG More about JPEG Lab project
2
Review of JPEG JPEG goals Picture Preparation Picture Processing
Component, block, and pixel Picture Processing Shift Forward DCT Quantization Different coefficients are treated separately => quantization table
4
Differential Encoding
The DC coefficient varies only slowly from one block to the next. 12, 13, 11, 11, 10, …… Only the difference in the preceding block is encoded. 12, 1, -2, 0. –1
5
Run-length Encoding The AC coefficients are encoded in the form of a string of pairs of values (skip, value) (0,6)(0,7)(0,3)(0,3)(0,3)(0,2) (0,2)(0,2)(0,2)(0,0)
6
Huffman Encoding Use variable length codes
Most frequently used symbols coded with fewest bits The intermediate symbol sequence DC coefficient: (sss, value) sss: the number of bits needed Value: the encode value AC coefficient: (skip, sss) (value) with run-length encoding skip: the number of consecutive 0 sss: the number of bits needed to encode the value Huffman code DC coefficients: 12 = (4, 12) = ( ) AC coefficient: (0, 6) = (0, 3) (6) = (100110)
7
Summary DC coefficient AC coefficient Input: 12, 13, 11, 11, 10, ……
Differential encode: 12, 1, -1,-1,-2… The intermediate symbol sequence: (sss, value) Huffman code: P160 (b) => sss P160 (a) => value Example: 12 = (4, 12) = ( ) AC coefficient Input: 6,7,3,0,0,3,3,2,0,0,0 Run-length encoding: (0,6)(0,7)(0,3)(2,3)(0,3)(0,2) (0,0) The intermediate symbol sequence: (skip, sss) (value) P => (skip, sss) P160(a) => value Example: (0, 6) = (0, 3) (6) = (100110)
8
Lab Project Objective: be familiar with JPEG Description
Input: an original 8*8 block => original data (the value of each pixel is in the range of [0,255]) (given by the Instructor) Steps: Shifted to the range of [-128, 127] FDCT (round: 1.6->2, -1.6->-2, 1.5->2, 1.1->1) Quantized with the given quantization table (see the given example) (round) (round: 1.6->2, -1.6->-2, 1.5->2, 1.1->1) Zig-zag coded Converted to the intermediate symbol sequence with run-length encoding on AC coefficients Encoded to bit sequence with Huffman encoding (based on the given default Huffman codewords tables) => compressed data The compression ratio = original data size (i.e. 64*8)/compressed data size Output: print out all the results of the above steps into different files (The names and formats of output files should follow the files put on the web.)
9
Lab Project Team: one or 2 students
What should be turned in (via to subject: 679 project)? Put all codes into one file (source_jpeg.c (.cpp) with clear comments (softcopy) Make sure TA can understand, compile, and run your codes on unix machines. All the codes should be in C or C++. A report including a summary (2 <= page # <= 5) and the source code file, and result files (hardcopy or softcopy either in PDF) Due date: Oct. 16, 2006, 5:00pm (EST) (both the code and the report) How will TA grade? Correctness: TA will use his own data to test your codes. Clearness: TA will check whether your code and report are understandable. Fairness: Students in the same teams get the same scores. No copy! All students involved in copy will get ZERO.
10
Example - Original Block
140 144 147 139 155 179 175 152 148 167 136 163 162 172 168 145 156 160 123
11
Example - Shifted Block
12 16 19 11 27 51 47 24 20 39 8 35 34 44 40 17 28 32 -5
12
Example -After FDCT 186 -25 21 -13 33 -20 -27 29 -34 27 -9 -11 11 14 7
-15 -23 -2 6 -18 3 -1 -12 -5 15 -8 -3 8 10 1 18 5 -7 12 4 2 -6
13
Example - Quantization Table
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
14
Example - After Quantization
61 -5 3 -1 -2 6 1 -3
15
Example – Other Steps Zig-zag sequence
61,-5,6,-2,-5,3,-1,-3,-1,0,0,0,-1,3,3,-1,-1,0,1,1,0,1,0,1,-1,-1,1,-1,-2,1,3,0,0,-1,0,0,0,0,0,-1,0,-1,0,-1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0 Intermediate symbol sequence (6)(61),(0,3)(-5),(0,3)(6),(0,2)(-2),(0,3)(-5), (0,2)(3), (0,1)(-1),(0,2)(-3),(0,1)(-1),(3,1)(-1), (0,2)(3), (0,2)(3),(0,1)(-1),(0,1)(-1), (1,1)(1), (0,1)(1),(1,1)(1), (1,1)(1), (0,1)(-1),(0,1)(-1),(0,1)(1),(0,1)(-1),(0,2)(-2),(0,1)(1),(0,2)(3),(2,1)(-1),(5,1)(-1),(1,1)(-1),(1,1)(-1),(1,1)(1),(6,1)(1),(1,1)(1),(0,0) Encoded bit sequence (total 154 bits) (1110)(111101) (100)(010) (100)(110) (01)(01) (100)(010) (01)(11) (00)(0) (01)(11) (01)(00) (00)(0) (111010)(0) (01)(11) (00)(0) (00)(0) (1100)(1) (00)(1) (1100)(1) (00)(0) (00)(0) (00)(1) (00)(0) (01)(01) (00)(1) (01)(11) (11011)(0) ( )(0) (1100)(0) (1100)(0) (1100)(1) ( )(1) (1100)(1) (1010)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.