1 / 26

Digital Image Processing Lecture 21: Lossy Compression

Digital Image Processing Lecture 21: Lossy Compression. Prof. Charlene Tsai. Reminder …. The Thursday class (5/29) is moved to Monday (5/28) for next week. JPEG Algorithm. Lossy compression trades some acceptable data loss for greater rate of compression.

seanna
Download Presentation

Digital Image Processing Lecture 21: Lossy Compression

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. Digital Image Processing Lecture 21: Lossy Compression Prof. Charlene Tsai

  2. Reminder … • The Thursday class (5/29) is moved to Monday (5/28) for next week.

  3. JPEG Algorithm • Lossy compression trades some acceptable data loss for greater rate of compression. • There are many available, but the most popular is the one developed by JPEG – transform coding. • Coding not done on pixel values, but on a transform.

  4. Transform • Discrete Cosine Transform (DCT) • Applying to 8x8 blocks, the forward and inverse DCT are • DCT are real-valued, high information-packing capability, and separable.

  5. Comparison with FFT • Given the following sequence 10 25 40 55 70 85 100 115 • If using FFT, the inverse of the first 4 FFT coefficients gives 49 41 56 57 71 70 85 90 • If using DCT, the result is 11 23 41 56 69 84 102 114

  6. JPEG Compression • For each 8x8 image block, perform the compression • Subtracting 128 from each value • Apply DCT • Normalization by dividing by matrix Q (the lossy part) • Turning most of the elements zero • Change the matrix into a vector by reading the nonzero element in a zigzag fashion.

  7. (con’d) • The first element (DC coefficient) of the vector is encoded as the difference between itself and the DC of previous block. • Keeps all values (except the very first one) small • Compressed using RLE • Other values (AC coefficients) are compressed using Huffman coding • Rate of compression is controlled by scaling Q => more scaling, more compression

  8. Decompression • Inverse the operations: • Decode Huffman encoding and RLE • Put the vector back to 8x8 matrix • Multiply by Q • Inverse DCT • Shift back by 128

  9. The Lossless Parts • Huffman Coding and RLE for AC and DC terms, respectively. • We’ll focus the discussion on the AC terms • Each nonzero value x is assigned a category k • The number of preceding 0s (run). • Values: 7 -1 10 0 2 1 0 0 2 4 0 1 0 -1 • Category: 1 4 2 1 2 3 1 1 • Run: 0 0 1 0 2 0 1 1

  10. Huffman Code Table • Part of JPEG baseline standard • See the handout for the code table and application.

  11. Wavelet Transform • For both FT and DCT, we assume so kind of periodicity in the image. • Wavelet Transform keeps the wave concept, but drop the eriodicity. • Wavelet is a little part of a wave wave wavelet

  12. What to do with a wavelet? • Given a wavelet function , we can • Dilate it by applying a scaling factor to x. e.g. would squash and would expand. • Translate by adding/subtracting a value from x. e.g. shift the wavelet 2 to the right, and shift 3 to the left. • Change it height by multiplying the function by a constant. • All together, we get

  13. Applications • Noise reduction • Edge detection • Compression • Adopted by JPEG2000

  14. A Simple Wavelet Transform • All wavelet transform work by taking weighted averages of input values and providing extra information for inversion. • Here the example is: averaging of two values and differencing. • If a and b are two numbers, we get average s and difference d by:

  15. (cont) • Given a simple vector v of 8 elements, we create two new vectors v1 and v2 of 4 elements each: • v1 containing the averages • v2 containing the differences • DWT at 1 scale is: • We can keep going for another 2 levels. • Let’s go through the example in pg425 of the handout. (available online)

  16. Haar Wavelet • Simplest wavelet, defined as • Haar wavelet can be written in terms of a simpler pulse function

  17. Mother wavelet Father wavelet (scaling function)

  18. Discrete Wavelet transform • The forward transformation • The inverse is

  19. are called the filter coefficients (or taps) • A wavelet is completely specified by its taps.

  20. Back to Haar Wavelet Low pass • where • values are what we have in a DWT matrix • Let’s look at the example in pg 429. High pass

  21. Two-Dimensional Wavelet (STD)

  22. Two-Dimensional Wavelet (non-STD)

  23. Example: one scale

  24. Image Compression • For a given value d, set all values x in the DWT for which to 0.

  25. High-Pass Filtering • Except from the top left image, the rest is high-frequency information. • If setting the top-left corner to 0, the result after inversion would be a high-pass filtered image.

  26. Denoising • Very similar to compression by using thresholding. • An example is given in pg446.

More Related