Lossless JPEG transcoding Daniel Sanchez ECE 533 Fall
- Slides: 14
Lossless JPEG transcoding Daniel Sanchez ECE 533 Fall 2006 Final Project Presentation University of Wisconsin-Madison
Overview § The problem of JPEG transcoding § Full-featured MATLAB JPEG codec § Lossless transcoder § Lossless rotation 2
The problem of JPEG transcoding § Basic JPEG decoder/encoder block diagrams: JPEG Decoder DC Huffman IDPCM DC JPEG File IQ AC Huffman De. Zig. Zag IDCT Level shifting YCb. Cr->RGB Image AC JPEG Encoder DC RGB Image RGB->YCb. Cr Level shifting DCT DPCM DC Huffman JPEG Q File AC Zig. Zag AC Huffman § Reencoding introduces errors because of the color model conversions (YCb. Cr<->RGB) 3
Implementing a JPEG codec in MATLAB § Extends the MATLAB JPEG Toolbox by Phil Sallee • http: //redwood. ucdavis. edu/phil/demos/jpegtbx/ • Includes functions that cover the more tedious parts of the codec JPEG Encoder Implemented Provided by toolbox DC RGB Image RGB->YCb. Cr Level shifting DPCM DC Huffman JPEG DCT Q File AC Zig. Zag AC Huffman § Works with most images! • Full color, arbitrary size, … • Some restrictions in subsampling and color models 4
Example of lossy reencoding Original image Error after reencoding (x 15) SNR=25. 1 d. B 5
Lossless JPEG transcoder [1] § How to modify decoder/encoder? Lossy JPEG Transcoder DC Huffman IDPCM DC JPEG File IQ AC Huffman De. Zig. Zag RGB->YCb. Cr Level shifting DCT Level shifting YCb. Cr->RGB Image AC DC RGB Image IDCT DPCM DC Huffman JPEG Q File AC Zig. Zag AC Huffman Reencoded coefficients are an estimation of the original ones -> Correct that estimation! 6
Lossless JPEG transcoder [2] JPEG Lossless Transcoder - Decoder DC Huffman IDPCM JPEG DC IQ File AC Huffman De. Zig. Zag Level shifting IDCT YCb. Cr->RGB AC RGB Image RGB->YCb. Cr Level shifting DCT Lossless Decompression Q + RGB->YCb. Cr Level shifting DCT Difference coefficients DPCM RGB Image Lossless Compression DC Huffman JPEG Q File Zig. Zag AC Huffman JPEG Lossless Transcoder - Encoder 7
Results of lossless transcoding Original image Transcoded image Difference coefficients (contrast ↑↑) § Lossy reencoding: SNR = 33. 2 d. B § Lossless transcoding: SNR = ∞ 8
Lossless rotation § Different approach: Operate on blocks directly • No need to requantize -> Lossless • Faster than decoding/encoding § To rotate an image (90º counterclockwise): • Rotate whole blocks (without modifying content) 1 2 3 3 6 9 4 5 6 2 5 8 • Perform the transformation G(u, v)=F(v, u)(-1)v on each block 7 8 9 1 4 7 □ This rotates the contents in the spatial domain! • Transpose quantization matrices (they are not symmetric in general!) 9
Results of lossless rotation [1] Original image 10
Results of lossless rotation [2] Those strange manipulations actually work! Losslessly rotated image 11
Results of lossless rotation [3] Error when lossy rotation is applied 4 times § § This time SNR=18. 1 d. B Lossy rotation degrades the quality much more than reencoding! 12
Applications of lossless transcoding § Image editing (allows editors to work with lossy compressed images without degrading quality) § Image rotation and other basic transformations (cropping, flipping, …) § Image transmission/storage 13
Thanks for your attention Any questions? 14
- Video transcoding basics
- Bf-533
- Daniel sanchez the voice
- Daniel l sanchez
- Block size in block preparation step of jpeg compression is
- Jpeg camera module
- Jpeg: still image data compression standard
- Jpeg 2000 compressor
- 27/30
- Jpeg to png
- Jpeg in digital image processing
- Jpeg still image data compression standard
- Fourier basis
- Jpeg ls compression algorithm
- Arm jpeg