JPEG Still Image Data Compression Standard
JPEG Introduction - The background JPEG stands for Joint Photographic Expert Group A standard image compression method is needed to enable interoperability of equipment from different manufacturer It is the first international digital image compression standard for continuous-tone images (grayscale or color) Why compression is needed? Ex) VGA(640x480) 640x480x8x3=7,372,800bits with compression 200,000bits without any visual degradation --The “joint” in JPEG refers to collaboration between CCITT and ISO. --many continuous-tone image applications require a compression standard in order to develop significantly beyond their present state. JPEG has undertaken the ambitious task for developing a general-purpose compression standard to meet the needs of almost all continuous-tome still-image application. --From June 1987, JPEG conducted a selection process based on a blind assessment of subjective picture quality, and narrowed 12 proposed methods to three, in 1988 the a second, more rigorous selection process reveals that “ADCT” proposal produced the best quality. Later JPEG developed the “ADCT” and formalized it, so is the first international still-image compression standard.
JPEG Introduction – what’s the objective? “very good” or “excellent” compression rate, reconstructed image quality, transmission rate be applicable to practically any kind of continuous-tone digital source image good complexity have the following modes of operations: sequential encoding Progressive encoding lossless encoding --JPEG encoder and decoder makes the user to be able to change the parameters so they can control the compression/quality tradeoff. When we say a “very good” image quality, the compression rate must be in a acceptable level. Sequential encoding: each image component is encoded in a single left-to-right, top-to-bottom scan. Progressive encoding: the image is encoded in a multiple scans for applications in which transmission time is long, and the viewer prefers to watch the image built up in multiple coarse-to-clear passes. Loss-less encoding: the image is encoded to guarantee exact recovery of every source image sample value (even through the compression rate is low compared to the lossy modes) Hierarchical encoding: the image is encoded at multiple resolutions, so that lower-resolution versions may be accessed without first having to decompress the image at its full resolution. – A kind of Progressive encoding.
The basic parts of an JPEG encoder JPEG Overview encoder statistical model entropy Encoder Source image data compressed descriptors symbols tables coding tables The basic parts of an JPEG encoder In this presentation, I will only talk about how JPEG encoder works. The decoding process is simply the inverse procedure of encoding.
JPEG Baseline System
JPEG Baseline System JPEG Baseline system is composed of: Sequential DCT-based mode Huffman coding The basic architecture of JPEG Baseline system Source image data quantizer entropy encoder compressed table specification 88 blocks DCT-based encoder statistical model FDCT
Frequency sensitivity of Human Visual System JPEG Baseline System – Why does it work? Lossy encoding HVS is generally more sensitive to low frequencies Natural images Frequency sensitivity of Human Visual System
The Baseline System – DCT The Discrete Cosine Transform (DCT) separates the frequencies contained in an image. The original data could be reconstructed by Inverse DCT. The mathematical representation of FDCT (2-D): Where f(x,y): 2-D sample value F(u,v): 2-D DCT coefficient
Basis of DCT transform
The Baseline System-DCT (cont.) Before DCT (image data) After DCT (coefficients) An example of 1-D DCT decomposition The 8 basic functions for 1-D DCT
The Baseline System-DCT (cont.) The DCT coefficient values can be regarded as the relative amounts of the 2-D spatial frequencies contained in the 88 block the upper-left corner coefficient is called the DC coefficient, which is a measure of the average of the energy of the block Other coefficients are called AC coefficients, coefficients correspond to high frequencies tend to be zero or near zero for most natural images
The Baseline System – Quantization F(u,v): original DCT coefficient F’(u,v): DCT coefficient after quantization Q(u,v): quantization value Why quantization? . to achieve further compression by representing DCT coefficients with no greater precision than is necessary to achieve the desired image quality Generally, the “high frequency coefficients” has larger quantization values Quantization makes most coefficients to be zero, it makes the compression system efficient, but it’s the main source that make the system “lossy”
The Baseline System-Quantization (cont.) JPEG Luminance quantization table
A simple example Original image pattern After FDCT(DCT coefficients) Digitized image After FDCT(DCT coefficients)
A simple example(cont.) DCT coefficients Quantized coefficients
Baseline System - DC coefficient coding Since most image samples have correlation and DC coefficient is a measure of the average value of a 88 block, we make use of the “correlation” of DC coefficients DPCM quantized DC coefficients DC difference Differential pulse code modulation
Baseline System - AC coefficient coding AC coefficients are arranged into a zig-zag sequence: Horizontal frequency Vertical frequency 3 0 0 -3 0 -3 0 0 0 0 -1 0 -2(EOB)
Baseline System - Statistical modeling Statistical modeling translate the inputs to a sequence of “symbols” for Huffman coding to use Statistical modeling on DC coefficients: symbol 1: different size (SSSS) symbol 2: amplitude of difference (additional bits) Statistical modeling on AC coefficients: symbol 1: RUN-SIZE=16*RRRR+SSSS
Additional bits for sign and magnitude Huffman AC statistical model run-length/amplitude combinations Huffman coding of AC coefficients
An examples of statistical modeling
Other Operation Modes: JPEG2000 ROI coding
JPEG 2000 Allow efficient lossy and lossless compression within a single unified coding framework Progressive transmission by quality, resolution, component, or spatial locality Compressed domain processing Region of Interest coding JPEG2000 is NOT an extension of JPEG Wavelet Transform An extremely flexible bitstream structure
DCT Transform vs. Space-Scale Transform
JPEG2000 ROI coding Bit plane shift Finer Quantization level used
Experiment http://www.sfu.ca/~cjenning/toybox/hjpeg/index.html