1 / 14

11110

YUV RGB. DCT. ZZ. Q. VLC. +. in. -. 68. -23. -4. -3. 11110. 68. 70. 7. 0. 0. 0. 8. -23. -28. 17. 3. 101. -20. -23. -2. Non-overlapping 8x8 blocks. 0. 0. 8. 8. sym. code. -4. 17. 20. -11. 101. -23. -20. -2. 0. 0. 0. 8. 8. 4. -3. 3. -11. -12. 0.

thor-blake
Download Presentation

11110

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. YUV RGB DCT ZZ Q VLC + in - 68 -23 -4 -3 11110 68 70 7 0 0 0 8 -23 -28 17 3 101 -20 -23 -2 Non-overlapping 8x8 blocks 0 0 8 8 sym code -4 17 20 -11 101 -23 -20 -2 0 0 0 8 8 4 -3 3 -11 -12 0 -4 0 0 -1 100 8 8 4 4 -2 101 11100 -3 -28 -30 +2 110 0 -4 0 0 2 0 0 9 70 -20 0 0 -3 11100 0 0 0 -3 +1 11101 0 0 7 8 -20 -30 20 0 +7 11110 110 17 2 20 0 7 8 4 0 20 20 -10 110 20 2 17 9 8 4 3 0 0 -10 -10 0 0 0 -3 0 3 0 0 110 20 20 2 0 0 0 3 offset 100 -10 -11 -1 - 100 -10 -1 -11 IDCT ZZ IQ VLD + 100 -12 -10 -1 out JPEG Joint Photographic Expert Group jvm

  2. Coding principle: frequent data words have shorter code words than infrequent data words Decoding (throughput) problem: “hidden” code word boundaries -> algorithm comprises a feedback loop Clock cycle Data word bitstream Code book 0 1 2 3 4 5 6 1100111100110 1100111100110 1100111100110 1100111100110 1100111100110 1100111100110 1100111100110 - 10 00 11 01 00 10 Code word Data word probability 0 10 110 111 00 01 10 11 50% 25% 12.5% 12.5% Average length 1.75 bits 2 bits 1/2+2/4+3/8+3/8 jvm

  3. Multiple components, interleaving and minimum coded unit A1 A2 B1 B2 C1 C2 An Bn Cn non-interleaved MCU = 1 data unit = 8x8 pixels A1 A2 B1 B2 C1 C2 … An … Bn … Cn scan1 scan2 scan3 MCU interleaved MCU=3 data units A1 B1 C1 A2 B2 C2 … An Cn Bn scan1 jvm

  4. Multiple components with different dimensions A1 A2 B1 B2 C1 C2 An Bn/2 Cn/2 MCU interleaved MCU=4 data units A1 A2 B1 C1 A3 A4 B2 C2 … An-1 An Cn/2 Bn/2 scan1 jvm

  5. X : number of horizontal samples in image Y : number of vertical samples in image xi : number of horizontal samples in component Ci yi : number of vertical samples in component Ci C4 xi = ceil(X*Hi/Hmax) yi = ceil(Y*Vi/Vmax) C3 C2 C1 Example: X=Y=512 Hmax=4 Vmax=2 C1 H1=4 V1=1 x1=512 y1=256 C2 H2=2 V2=2 x2=256 y2=512 C3 H3=1 V3=1 x3=128 y3=256 jvm

  6. SOI APP < ...> DQT <quantisation table 1> DQT <quantisation table 2> SOF <image info, size …> DHT <huffmann table 1> DHT <huffmann table 2> DHT <huffmann table 3> DHT <huffmann table 4> SOS <encoded data> jvm

  7. SOI Frame EOI Quant. Tables Frame header Scan1 Scan2 … Scann SOF DQT Huffmann tables Scan header ECS DHT SOS MCU1 MCU2 ... MCUn jvm

  8. Frame header structure • Parameter size in bits • Marker (FFC0…FFCF) 16 • frame header length 16 • sample precision 8 • number of lines 16 • number of samples/line 16 • number of components in frame 8 • for each frame component • component identifier 8 • horizontal sampling factor 4 • vertical sampling factor 4 • quantization table destination selector 8 jvm

  9. Scan header structure • Parameter size in bits • Marker (FFDA) 16 • scan header length 16 • number of components in scan 8 • for each component • component selector 8 • DC entropy coding table selector 4 • AC entropy coding table selector 4 • start of spectral selection or predictor selection 8 • end of spectral selection 8 • successive approximation bit stream position high 4 • successive approximation bit stream position low 4 jvm

  10. DHT marker segment structure • Parameter size in bits • Marker (FFC4) 16 • Huffman table definition length 16 • for each Huffman table • table class 4 • Huffman table identifier 4 • number of Huffman codes of length i (Li) • for i = 1..16 8 • value associated with each Huffman code • for i = 1..16; j = 1..Li 8 jvm

  11. Table for luminance DC difference (p. 509) 0 00 1 010 2 011 3 100 4 101 5 110 6 1110 7 11110 8 111110 9 1111110 10 11111110 11 111111110 jvm

  12. FF C4 0 1F 0 0 1 5 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 A B 5 words of length 3 Length = 31 B values 1 words of length 2 Class AC|DC 0 words of length 1 jvm

  13. DQT marker segment structure • Parameter size in bits • Marker (FFDE) 16 • Quantization table definition length 16 • for each Quantization table • Quantization table element precision 4 • Quantization table identifier 4 • Quantization table element (0..63) 8 or 16 jvm

  14. Structure of the Guerrier code jpeg.c jpeg.h utils.c parse.c get_bits ( ) get_next_MK ( ) load_quant_tables ( ) init_MCU ( ) process_MCU ( ) fast_idct.c idct_1d ( ) IDCT ( ) color.c tree_vld.c load_huff_tables ( ) get_symbol ( ) huffman.c unpack _block ( ) spy.c unpack.c jvm

More Related