jpeg...jpeg codeblock • succession of symbols s1=(l,b) of eight bits followed by symbol s2 – l:...
TRANSCRIPT
![Page 1: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/1.jpg)
JPEG
![Page 2: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/2.jpg)
JPEG
• Joint Photographic Expert Group
• Voted as international standard in 1992
• Works with color and grayscale images, e.g., satellite, medical, ...
• Motivation: The compression ratio of lossless methods (e.g., Huffman, Arithmetic, LZW) is not high enough for image and videocompression, especially when the distribution of pixel values isrelatively flat.
![Page 3: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/3.jpg)
Features• Sequential encoding
– Block-by-block encoding in scan order
• Progressive encoding– geared at progressive transmission, or successive approximations: to
achieve higher order resolution pictures it uses more and more DCT coefficients, or more and more bits/coefficient
– Note: Different quality resolutions are not available on the same bitstream
• Hierarchical encoding– A lower resolution image is encoded first, upsampled and interpolated to
predict the full resolution and the prediction error is encoded with one of the other JPEG coders (pyramidal coder using the JPEG coder)
• Lossless encoding using a different strategy– Predictive coding on a neighborhood of three samples is used instead of
DCT
![Page 4: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/4.jpg)
Structure
• Block-based transform coding using DCT
• Rationale– Observation 1: A large majority of useful image contents change
relatively slowly across images, i.e., it is unusual for intensity values to alter up and down several times in a small area, for example, within an 8 x 8 image block. Translate this into the spatial frequency domain, it says that, generally, lower spatial frequency components contain more information than the high frequency components which often correspond to less useful details and noises.
– Observation 2: Psychophysical experiments suggest that humans are more receptive to loss of higher spatial frequency components than loss of lower frequency components.
![Page 5: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/5.jpg)
Main steps
• Colorspace conversion
• DCT (Discrete Cosine Transformation)
• Quantization
• Zigzag Scan
• DPCM on DC component– DPCM: differential pulse code modulation– DC: zero-frequency component
• RLE on AC Components– Run Length Encoding– AC: other spectral components
• Entropy Coding
![Page 6: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/6.jpg)
Block diagram
![Page 7: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/7.jpg)
Color
• Images are converted from RGB to YCbCr
• Cb and Cr components are downsamples– Possible formats:
• 4:4:4• 4:2:2• 4:2:0
![Page 8: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/8.jpg)
RGB
rho(red-green)=0.3565
rho(green-blu)=0.85rho=correlation coefficient
![Page 9: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/9.jpg)
YCbCr
rho(YCb)=0.09
rho(YCr)=-0.1474
rho=correlation coefficient
![Page 10: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/10.jpg)
2D DCT
![Page 11: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/11.jpg)
DCT: basis functions
Block-based transform
Block size N=M=8
This has proved to be a good compromise between coding efficiency (large blocks) and avoidance of blocking effects (small blocks).
This applies to typical target images: 512x512, target rate: 0.5bpp, bit depth=8 or 12 bits
![Page 12: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/12.jpg)
JPEG preview
The source data (8x8) is transformed to a linear combination of these 64 frequency squares.
Block sizeN=M=8
Block-based DCT
![Page 13: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/13.jpg)
Block-based DCT
• The DCT coefficients are rounded to the nearest integer and 128 is subtracted. Then they are divided by the corresponding weight in the quantization matrix (see quantization)
![Page 14: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/14.jpg)
Quantization
• JPEG quantizes the block cosine coefficients uniformly
quantized DCT coefficients
tk tk+1 DCT coefficients
![Page 15: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/15.jpg)
Weighted quantization qui
• “Perceptual” quantization is also possible– Based on the observation that the human eye is more sensible to low
than to high frequencies (luminance and color CSF)– The quantization tables are given but the standard allows the user to
define his own quantization tables– quantization interval ∝ wights
Luminance Chromaticity
![Page 16: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/16.jpg)
Contrast sensitivity function (CSF)
![Page 17: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/17.jpg)
Luminance and Chromatic CSFThe spatial CSF for luminance contrast is band-pass in nature, with a peak sensitivity around 5 cycles per degree. This function approaches zero at zero cycles per degree, illustrating the tendency for the visual system to be insensitive to uniform fields. It also approaches zero at about 60 cycles per degree, the point at which detailscan no longer be resolved by the human eye.
The chromatic mechanisms are of a low-pass nature and have significantly lower cut-o frequencies. This indicates the reduced availability of chromatic information for the details.
The yellow-blue CSF has a lower cutoff frequency then the red-green one.
Note also that the luminance CSF is much higherthan the chromatic CSFs. This denotes a greater sensitivity of the visual system to small changes in luminance contrastcompared to chromatic contrast.
![Page 18: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/18.jpg)
DCT block of coefficients
DC component
low spatial frequencies
high spatial frequencies
intermediate frequencies
![Page 19: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/19.jpg)
Raster scan of the coefficients
• In each block the coefficients are scanned in zig-zag order, which groups similar frequencies
quantized DCT coefficients
![Page 20: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/20.jpg)
DPCM on DC component
• The DC component changes slowly across the image– Since the bit depth is 8, it can be shown that the DCT coefficients are in
the range [-210,210-1]
• The residual with respect to the previous block is bounded1 11 112 , 2 1i iDC DC − ⎡ ⎤− ∈ − −⎣ ⎦
DCiDCi-1 block i-1 block i
![Page 21: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/21.jpg)
DPCM
• Predictive coding: The difference between the actual sample value and its predicted value (predicted value is based on previous sample or samples) is quantized and then encoded forming a digital value.– DPCM code words represent differences between samples unlike PCM
where code words represented a sample value.
• Based on the fact that most source signals show significant correlation between successive samples so encoding uses redundancy in sample values which implies lower bit rate.
• Realization of basic concept – Predict current sample value based upon previous samples (or sample)
and encode the difference between actual value of sample and predicted value (the difference between samples can be interpreted as prediction error).
![Page 22: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/22.jpg)
JPEG codeblock
• Succession of symbols S1=(L,B) of eight bits followed by symbol S2– L: length of a consecutive run of zeros, coded on 4 bits
• It takes values between 0 and 15– B: number of bits used to code the value of the next non-zero coefficient– The symbol S1=(15,0) is interpreted as a run-length of size 16 followed
by another run length• Usually more than 15 zeros are present
– If B is not zero, the subsequent symbol (of size B bits) specifies the amplitude of the next non zero coefficient
L B value
S1
8 bits
4 bits 4 bits
S2
B bits
![Page 23: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/23.jpg)
Example
10004000
(3,3)(100)(3,1)(1)
S1L B
S2 Range of values1 1 12 3 2 2 33 7 ... 4 4 ... 74 15 ... 8 8 ... 15.........10 1023 ... 512 512 ... 1023
B−− −− −− −
− −
The value of the coefficient coded on B bits belongs to a set of 2B values as indicated in the second column
![Page 24: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/24.jpg)
Example0.2bpp
![Page 25: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/25.jpg)
Example0.5bpp
![Page 26: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/26.jpg)
Example0.97bpp
![Page 27: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/27.jpg)
Example1.5bpp
![Page 28: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/28.jpg)
Example2.5bpp
![Page 29: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/29.jpg)
Rate/Distortion plot
![Page 30: JPEG...JPEG codeblock • Succession of symbols S1=(L,B) of eight bits followed by symbol S2 – L: length of a consecutive run of zeros, coded on 4 bits • It takes values between](https://reader034.vdocument.in/reader034/viewer/2022051406/6013569517ff8711dd494c9c/html5/thumbnails/30.jpg)
Pros&Cons
Pros
• Low complexity
• Memory efficient
• Reasonable coding efficiency
• Good image quality
• Adjustable image quality
Cons
• Single resolution
• Single quality
• No target bit-rate
• Blocking artifacts at low rates
• No region of interest (ROI) functionality
• No lossy and lossless representations on the same bitstream