Image Processing and Computer Vision: 9 1 Image and Video Coding Compressing data to a smaller volume without losing (too much) information Why Code Data? To reduce storage volume To reduce transmission time One colour image 760 by 580 pixels 3 channels, each 8 bits 1.3 Mbyte Video data Same resolution 25 frames per second 33 Mbyte/second Image Processing and Computer Vision: 9 3 Redundancy Spatial Chromatic Correlation between colour channels Temporal Correlation between adjacent pixels Correlation between adjacent frames Perceptual Unnoticed losses Image Processing and Computer Vision: 9 4 Example Image Processing and Computer Vision: 9 5 Redundancy - Consequences Data exceeds information More data than content justifies Can lose data without losing information Image Processing and Computer Vision: 9 6 Compression Ratio volumeof uncompressed image C volumeof compressedimage Image Processing and Computer Vision: 9 7 Lossy vs Lossless Compression Can lose data without losing information Lossily compressed images can look similar to the original Lossy compression has greater C Image Processing and Computer Vision: 9 8 Quality of Decoded Images Measure differences between Original Coded/decoded images Options Maximum difference Average difference Subjective scales Image Processing and Computer Vision: 9 9 Example Image Processing and Computer Vision: 9 10 Subjective Quality Measurement Scales - Example 0 1 2 3 4 Unusable Annoying degradation Adequate images Barely perceptible degradation No observable degradation Image Processing and Computer Vision: 9 11 Difference coding Adjacent pixels are similar Difference is small Uncompressed: s , s , s , s , s , 0 1 2 3 4 Compressed: s , s s , s s , s s , s s , 0 0 1 1 2 Image Processing and Computer Vision: 9 2 3 3 4 12 Coding Assign 4 bits to a difference Can code –7, … , +8 Overflow? Use –7 and +8 to show larger differences Code –6, … , +7 directly Use overflow codes to indicate shift of codes Image Processing and Computer Vision: 9 13 Image Processing and Computer Vision: 9 14 Predictive Coding If signals are well sampled Adjacent samples are correlated They have similar values Differences are small Can guess next sample from value of current Image Processing and Computer Vision: 9 15 Iˆt 1 I t Constants are correlation coefficient and mean grey value Difference between real and predicted values are smaller Code as for difference coding Image Processing and Computer Vision: 9 16 Run Length Coding Replace runs of equal brightness values by (length of run, value) 12233444565 (1 1) (2 2) (2 3) (3 4) (1 5) (1 6) (1 5) More use when few brightness values e.g. fax Image Processing and Computer Vision: 9 17 Huffman Coding Uses variable length codes Most frequently occurring grey value has shortest code Least frequently occurring values have longest codes Image Processing and Computer Vision: 9 18 Example Symbol Probability A B C D E F 0.4 0.3 0.1 0.1 0.06 0.04 1 0.4 0.3 0.1 0.1 0.1 2 3 0.4 0.3 0.2 0.1 0.4 0.3 0.3 Image Processing and Computer Vision: 9 4 0.6 0.4 19 Symbol Probability A B C D E F 0.4 1 0.3 00 0.1 011 0.1 0100 0.06 01010 0.04 01011 1 0.4 0.3 0.1 0.1 0.1 2 1 00 011 0100 0101 Image Processing and Computer Vision: 9 0.4 0.3 0.2 0.1 3 1 00 010 011 0.4 1 0.3 00 0.3 01 4 0.6 0 0.4 1 20 GIF Applicable to images with 256 colours Replace sequences of bytes with shorter codes Most common sequences use shortest codes Image Processing and Computer Vision: 9 21 Wavelet coders Wavelet transform organises image content efficiently Can easily select data to be discarded Image Processing and Computer Vision: 9 22 Wavelet coders Image Processing and Computer Vision: 9 23 JPEG standard A subcommittee of ISO Optimised for a range of image subject matter Compression rates can be defined Quality inversely proportional to C Image Processing and Computer Vision: 9 24 Block Transform Coding original image decompose Sequence of 8 by 8 blocks - different planes treated separately (RGB, YUV etc.) transform Transformed blocks reduce redundancy and concentrate signal energy into a few coefficients discrete cosine transformation (DCT) quantise Blocks with discarded information - goal is to smooth picture and discard information that will not be missed, e.g. high frequencies entropy code Image Processing and Computer Vision: 9 25 Block Transform Encoding DCT Zig-zag run length code Image Processing and Computer Vision: 9 quantise entropy code 010111000111….. 26 Block Encoding Original image 139 144 149 153 144 151 153 156 150 155 160 163 159 161 162 160 DCT 1260 -1 -12 -5 -23 -17 -6 -3 -11 -9 -2 2 -7 -2 0 1 Zig-zag 79 0 -2 -1 -1 -1 0 0 -1 0 0 0 0 0 0 0 run length code 0 79 1 -2 0 -1 0 -1 0 -1 2 -1 0 0 Image Processing and Computer Vision: 9 Huffman code quantise 79 -2 -1 0 0 -1 -1 0 -1 0 0 0 0 0 0 0 10011011100011…. 27 Block Transform Decoding DCT Zig-zag run length code Image Processing and Computer Vision: 9 quantise entropy code 010111000111….. 28 Result of Coding and Decoding 139 144 149 153 144 151 153 156 150 155 160 163 159 161 162 160 144 146 149 152 148 150 152 154 155 156 157 158 160 161 161 162 Original block Reconstructed block -5 -4 -5 -1 -2 1 -1 0 0 1 3 1 1 2 5 -2 errors Image Processing and Computer Vision: 9 29 Discrete Cosine Transform 4C(u)C(v) F[u,v] = n2 with n-1 n-1 S S f(j,k) cos j=0 k=0 1 2 For w = 0 1 otherwise (2j+1) u p 2n cos (2k+1) v p 2n C(w) = Image Processing and Computer Vision: 9 30 Discussion Where are lossy steps? Quatisation and subsampling before coding How is quantisation matrix chosen? Its predefined by the standard after much experimentation Image Processing and Computer Vision: 9 31 Video coding Many specific standards AVS, MOV, QT, … One universal standard MPEG Image Processing and Computer Vision: 9 32 MPEG Standards Standard specifies audio, video and system layers MPEG-1: low data rates, poor quality: VHS quality at 1.5Mbits-1 MPEG-2: high quality hence high data rates: studio quality, 15Mbits-1 MPEG-4: low data rates, small images, 64 kbits-1 Image Processing and Computer Vision: 9 33 MPEG-1 Audio and video designed to work at CD ROM speeds: 1.5Mbits-1 Video 1.150Mbits-1 Audio 0.256Mbits-1 System 0.094Mbits-1 Image Processing and Computer Vision: 9 34 MPEG-2 Released in 1994 Aimed at digital TV, ATM. Additions for Interlaced video Scalable video coding Graceful degradation with noise Implementation of full standard impractical Varying profiles/levels of conformity Image Processing and Computer Vision: 9 35 MPEG-4 Coding specifically for multimedia objects Image Processing and Computer Vision: 9 36 Coding Algorithms Frame sequence Motion compensation Frame coding Image Processing and Computer Vision: 9 37 Frame Sequence I frames (Intraframes) P frames (Predicted frames) Coded independently of any other frame Derived from previous I frame by motion prediction B frames (Bidirectionally interpolated) Interpolate motion compensated blocks between I and P frames Image Processing and Computer Vision: 9 38 Motion Compensation Image is divided into macroblocks (16 x 16 pixels) Matching macroblocks are found by minimising differences Code differences and macroblock displacement Image Processing and Computer Vision: 9 39 Frame Coding Use JPEG algorithms Image Processing and Computer Vision: 9 40 Summary Why code data? Redundancy Assessment of compression Lossy vs. lossless compression Algorithms JPEG, MPEG Image Processing and Computer Vision: 9 41 But what … is it good for? Engineer at the Advanced Computing Systems Division of IBM, commenting on the microchip in 1968 Image Processing and Computer Vision: 9 42