Click here to load reader
Click here to load reader
Feb 23, 2016
JPEGMarco Fuentes GarcaFrancisco Gea MartnezTopicsWhy do we need image compression?Lossless and lossy compressionImage file formatsWhat is JPEG?Steps of compressionsEffects of JPEG compression
Why do we need image compression?there are numerous applications involving processing, storage and transmission of digital images, generating a large number of files of large size
An RGB image 800x600 24 bits/px without compression takes 800x600x24 = 1.4 MBThe aim of compressing images: Reduce the size
Image compression: Reduce the amount of data keeping the information
Lossless and lossy compressionIn many applications the compression is only acceptable from the point of view of error-free data reductionMedical imaging, satellite, legal documents
in others, small loss of information can lead to a compression efficiencyInternet, multimedia, FAXCompressionLosslyThe image obtained after decompression has error
LosslessCompression preserve the data. It is possible to decompress the image without errorImage file formatsFormatReal colorPaletteGrayBitonalCompressionSourceMulti-ImageBitmap (BMP)YesYesYesYesRun-lengthWindowsNoTIFFYesYesYesYesJPG, LZW, Runs, CCITT4, CCITT3, packBitsStandardYesJFIF(JPEG)YesNoYesNoJPEGStandardNoPCXNo YesNoNoOwnWindowsNoPGMNoNoYesNoNoUnixNoGIFNoYesYesYesLZWStandardYesWhat is JPEG?JPEG (Joint Photographic Experts Group) defines various standards for monochromatic and color images
Each standard uses differents compression methods:
StandardAlgorithmJPEG originalTDC + HuffmanJPEG 2000TDW (Wavelets)JPEG LS (Lossless)Lossless prediction + Run-lenghtsJPEG, JFIF and SPIFFJPEG defines some compression methods
Eric Hamilton created JFIF (JPEG File Interchange Format)
JPEG file usually means JPEG file in JFIF format
Later, SPIFF replaced JFIFSteps of compressionsThe encoding process consists of several steps:The representation of the colors in the image is converted from RGB to YCBCR, consisting of one luma component (Y'), representing brightness, and two chroma components, (CB and CR).The image is split into blocks of 88 pixels, and for each block, each of the Y, CB, and CR data undergoes the Discrete Cosine Transform (DCT)The amplitudes of the frequency components are quantized.The resulting data for all 88 blocks is further compressed with a lossless algorithm, a variant of Huffman encoding
Steps of compressions
RGB -> YUV
JFIF usage of JPEG allows YCbCr where Y, Cb and Cr have the full 8-bit range of 0-255.And back:JPEG Format A JPEG image consists of a sequence of segments, each beginning with a marker, each of which begins with a 0xFF byte followed by a byte indicating what kind of marker it is.
After each data marker usually appear two bytes that indicate the length of data containing.Example: FF DB 00 43, Following 43 bytes define quantization table
DCTDCT becomes a set input of a set of coefficients with increasing frequency cosine.Each component of the image is divided into small blocks of 8 8 pixels, which are processed almost independently, which significantly reduces the computation time.
Example:[0,255] -> [-128,127]
The next step is to take the two-dimensional DCT, which is given by:
Top-left corner entry with the rather large magnitude. This is the DC coefficient. The remaining 63 coefficients are called the AC coefficients.
QuantizationThe human eye is good at seeing small differences in brightness over a relatively large area, but not so good at distinguishing the exact strength of a high frequency brightness variation.
This allows one to greatly reduce the amount of information in the high frequency components.
This is done by simply dividing each component in the frequency domain by a constant for that component, and then rounding to the nearest integer.
This rounding operation is the only lossy operation in the whole process (other than chroma subsampling) if the DCT computation is performed with sufficiently high precision.
As a result of this, it is typically the case that many of the higher frequency components are rounded to zero, and many of the rest become small positive or negative numbers, which take many fewer bits to represent.
The elements in the quantization matrix control the compression ratio, with larger values producing greater compression. A typical quantization matrix, as specified in the original JPEG Standard, is as follows:
The quantized DCT coefficients are computed with:
Where G is the unquantized DCT coefficients; Q is the quantization matrix above; and B is the quantized DCT coefficients.
Using this quantization matrix with the DCT coefficient matrix from above results in:
Entropy codingEntropy coding is a special form oflossless data compression.It involves arranging the image components in a "zigzag" order employing run-length encoding(RLE) algorithm that groups similar frequencies together, inserting length coding zeros, and then usingHuffman codingon what is left.
26, 3, 0, 3, 2, 6, 2, 4, 1 4, 1, 1, 5, 1, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Huffman code: 26, 3, 0, 3, 2, 6, 2, 4, 1 4, 1, 1, 5, 1, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 1, 1, EOB
25DecodingDecoding to display the image consists of doing all the above in reverse.Taking the DCT coefficient matrix (after adding the difference of the DC coefficient back in)
and taking the entry-for-entry product with the quantization matrix from above results in
which closely resembles the original DCT coefficient matrix for the top-left portion.
The next step is to take the two-dimensional inverse DCT (a 2D type-III DCT), which is given by:
Where:x is the pixel rowy is the pixel columnF_u,v is the reconstructed approximate coeffiecient at coordinates (u,v)f_u,v is the reconstructed pixel value at coordinates (x,y)
Rounding the output to integer values (since the original had integer values) results in an image with values (still shifted down by 128)
and adding 128 to each entry
This is the decompressed subimage
Effects of JPEG compressionQualitySize (bytes)Compression ratioCommentHighest quality (Q = 100)83,2612.6:1Extremely minor artifacts
QualitySize (bytes)Compression ratioCommentHigh quality (Q = 50)15,13815:1Initial signs of subimage artifacts
QualitySize (bytes)Compression ratioCommentMedium quality (Q = 25)9,55323:1Stronger artifacts; loss of high frequency information
QualitySize (bytes)Compression ratioCommentLow quality (Q = 10)4,78746:1Severe high frequency loss; artifacts on subimage boundaries are obvious
QualitySize (bytes)Compression ratioCommentLowest quality (Q = 1)1,523144:1Extreme loss of color and detail; the leaves are nearly unrecognizable