Intelligent Image and Video Compression: Communicating Pictures, Second Edition explains the requirements, analysis, design and application of a modern video coding system. It draws on the authors’ extensive academic and professional experience in this field to deliver a text that is algorithmically rigorous yet accessible, relevant to modern standards and practical. It builds on a thorough grounding in mathematical foundations and visual perception to demonstrate how modern image and video compression methods can be designed to meet the rate-quality performance levels demanded by today's applications and users, in the context of prevailing network constraints.
"David Bull and Fan Zhang have written a timely and accessible book on the topic of image and video compression. Compression of visual signals is one of the great technological achievements of modern times, and has made possible the great successes of streaming and social media and digital cinema. Their book, Intelligent Image and Video Compression covers all the salient topics ranging over visual perception, information theory, bandpass transform theory, motion estimation and prediction, lossy and lossless compression, and of course the compression standards from MPEG (ranging from H.261 through the most modern H.266, or VVC) and the open standards VP9 and AV-1. The book is replete with clear explanations and figures, including color where appropriate, making it quite accessible and valuable to the advanced student as well as the expert practitioner. The book offers an excellent glossary and as a bonus, a set of tutorial problems. Highly recommended!¿ --Al Bovik
Key Features
- An approach that combines algorithmic rigor with practical implementation using numerous worked examples
- Explains how video compression methods exploit statistical redundancies, natural correlations, and knowledge of human perception to improve performance
- Uses contemporary video coding standards (AVC, HEVC and VVC) as a vehicle for explaining block-based compression
- Provides broad coverage of important topics such as visual quality assessment and video streaming
1 INTRODUCTION 1
1.1 Communicating pictures: the need for compression . . . . . . . . . . . . . . 1
1.1.1 What is compression? . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Why do we need compression? . . . . . . . . . . . . . . . . . . . . . 2
1.2 Applications and Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Generic drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Application drivers and markets . . . . . . . . . . . . . . . . . . . . 6
1.3 Requirements and trade-offs in a compression system . . . . . . . . . . . . 8
1.3.1 The benefits of a digital solution . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.3 Trade-offs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 The Basics of Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.1 Still image encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.2 Encoding video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3 Measuring visual quality . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 The Need for Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.1 Some basic facts about standards . . . . . . . . . . . . . . . . . . . . 11
1.5.2 A brief history of video encoding standards . . . . . . . . . . . . . . 12
1.6 The creative continuum: an interdisciplinary approach . . . . . . . . . . . . 13
1.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 THE HUMAN VISUAL SYSTEM 17
2.1 Principles and theories of human vision . . . . . . . . . . . . . . . . . . . . 17
2.2 Acquisition: the human eye . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Retinal tissue layers . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Optical processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 Retinal photoreceptors and their distribution . . . . . . . . . . . . . 22
2.2.4 Visual processing in the retina . . . . . . . . . . . . . . . . . . . . . 24
2.3 The visual cortex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.1 Opponent processes . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.2 Biased competition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.3 Adaptation processes . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
ii
CONTENTS iii
2.3.4 V1 - the primary visual cortex . . . . . . . . . . . . . . . . . . . . . 27
2.3.5 V2 - the prestriate cortex . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.6 Dorsal and Ventral Streams . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.7 Extrastriate Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 Visual fields and acuity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 Field of view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.2 Acuity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.3 Light, luminance and brightness . . . . . . . . . . . . . . . . . . . . 30
2.4.4 Light level adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5 Color processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.1 Opponent theories of color . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.2 CIE 1931 chromaticity chart . . . . . . . . . . . . . . . . . . . . . . . 36
2.6 Spatial processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.1 Just noticeable difference, contrast and Weber’s Law . . . . . . . . . 36
2.6.2 Frequency-dependent contrast sensitivity . . . . . . . . . . . . . . . . 37
2.6.3 Multiscale edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.4 Perception of textures . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.5 Shape and Object Recognition . . . . . . . . . . . . . . . . . . . . . 42
2.6.6 The importance of phase information . . . . . . . . . . . . . . . . . . 43
2.7 Perception of Scale and depth . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.1 Size or Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.2 Depth cues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.7.3 Depth cues and 3-D entertainment . . . . . . . . . . . . . . . . . . . 46
2.8 Temporal and spatio-temporal response . . . . . . . . . . . . . . . . . . . . 47
2.8.1 Temporal CSF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.8.2 Spatio-temporal CSF . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.8.3 Flicker and peripheral vision . . . . . . . . . . . . . . . . . . . . . . 48
2.9 Attention and eye movements . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.9.1 Saliency and attention . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.9.2 Eye movements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.10 Visual masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.10.1 Texture masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.10.2 Edge masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.10.3 Temporal masking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.11 A perceptual basis for image and video compression . . . . . . . . . . . . . . 53
3 SIGNAL PROCESSING AND INFORMATION THEORY FUNDAMENTALS
60
3.1 Signal and picture sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.1 The sampling theorem . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.2 Multidimensional sampling lattices . . . . . . . . . . . . . . . . . . . 64
3.2 Statistics of images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
CONTENTS iv
3.2.1 Histograms and distributions . . . . . . . . . . . . . . . . . . . . . . 67
3.2.2 Mean values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.3 Correlation in natural images . . . . . . . . . . . . . . . . . . . . . . 68
3.3 Filtering and transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3.1 Discrete time linear systems . . . . . . . . . . . . . . . . . . . . . . . 74
3.3.2 Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3.3 Linear filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3.4 Filter frequency response . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3.5 Examples of practical filters . . . . . . . . . . . . . . . . . . . . . . . 78
3.3.6 Non-linear filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3.7 Linear transforms and the DFT . . . . . . . . . . . . . . . . . . . . . 80
3.4 Quantization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.4.1 Basic theory of quantization . . . . . . . . . . . . . . . . . . . . . . . 82
3.4.2 Adaptation to signal statistics . . . . . . . . . . . . . . . . . . . . . . 84
3.4.3 HVS weighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.4.4 Vector quantization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.5 Linear prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.5.1 Basic feedforward linear predictive coding . . . . . . . . . . . . . . . 84
3.5.2 Linear prediction with the predictor in the feedback loop . . . . . . . 88
3.5.3 Wiener Hopf equations and the Wiener filter . . . . . . . . . . . . . 90
3.6 Information and entropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.6.1 Self information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.6.2 Entropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.6.3 Symbols and statistics . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.7 Machine learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.7.1 An overview of AI and machine learning . . . . . . . . . . . . . . . . 95
3.7.2 Neural networks and error backpropagation . . . . . . . . . . . . . . 96
3.7.3 Deep neural networks . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4 DIGITAL PICTURE FORMATS AND REPRESENTATIONS 112
4.1 Pixels, blocks and pictures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.1.1 Pixels, samples or pels . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.1.2 Moving pictures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.1.3 Coding units and macroblocks . . . . . . . . . . . . . . . . . . . . . . 115
4.1.4 Picture types and Groups Of Pictures . . . . . . . . . . . . . . . . . 115
4.2 Formats and aspect ratios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.2.1 Aspect ratios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.2.2 Displaying different formats . . . . . . . . . . . . . . . . . . . . . . . 122
4.3 Picture scanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.3.1 Standards conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
CONTENTS v
4.4 Gamma correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.5 Color spaces and color transformations . . . . . . . . . . . . . . . . . . . . . 127
4.5.1 Color descriptions and the HVS . . . . . . . . . . . . . . . . . . . . . 127
4.5.2 Sub-sampled color spaces . . . . . . . . . . . . . . . . . . . . . . . . 133
4.5.3 Color sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.6 Measuring and comparing picture quality . . . . . . . . . . . . . . . . . . . 138
4.6.1 Compression ratio and bit rate . . . . . . . . . . . . . . . . . . . . . 138
4.6.2 Objective distortion and quality metrics . . . . . . . . . . . . . . . . 139
4.6.3 Subjective assessment . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.7 Rates and distortions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.7.1 Rate-distortion characteristics . . . . . . . . . . . . . . . . . . . . . . 144
4.7.2 Rate distortion optimization . . . . . . . . . . . . . . . . . . . . . . . 146
4.7.3 Comparing video coding performance . . . . . . . . . . . . . . . . . . 146
4.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
5 TRANSFORMS FOR IMAGE AND VIDEO CODING 151
5.1 The Principles of decorrelating transforms . . . . . . . . . . . . . . . . . . . 151
5.1.1 The basic building blocks . . . . . . . . . . . . . . . . . . . . . . . . 151
5.1.2 Principle components and axis rotation . . . . . . . . . . . . . . . . 152
5.2 Unitary transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.2.1 Basis functions and linear combinations . . . . . . . . . . . . . . . . 155
5.2.2 Orthogonality and normalization . . . . . . . . . . . . . . . . . . . . 156
5.2.3 Extension to 2-D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.3 Basic transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.3.1 The Haar transform . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.3.2 The Walsh-Hadamard transform . . . . . . . . . . . . . . . . . . . . 158
5.3.3 So why not use the discrete Fourier transform? . . . . . . . . . . . . 162
5.3.4 Desirable properties of an image transform . . . . . . . . . . . . . . . 162
5.4 Optimum transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
5.4.1 Discarding coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . 163
5.4.2 The Karhunen-Loeve transform (KLT) . . . . . . . . . . . . . . . . . 165
5.4.3 The KLT in practice . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
5.5 Discrete Cosine Transform (DCT) . . . . . . . . . . . . . . . . . . . . . . . . 167
5.5.1 Derivation of the DCT . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.5.2 DCT basis functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.5.3 Extension to 2-D: Separability . . . . . . . . . . . . . . . . . . . . . 172
5.5.4 Variants on sinusoidal transforms . . . . . . . . . . . . . . . . . . . . 174
5.6 Quantization of DCT coefficients . . . . . . . . . . . . . . . . . . . . . . . . 175
5.6.1 The basics of quantization . . . . . . . . . . . . . . . . . . . . . . . 175
5.6.2 Perceptually optimized quantization matrices . . . . . . . . . . . . . 178
5.7 Performance comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
CONTENTS vi
5.7.1 DCT vs DFT revisited . . . . . . . . . . . . . . . . . . . . . . . . . . 180
5.7.2 Comparison of transforms . . . . . . . . . . . . . . . . . . . . . . . . 181
5.7.3 Rate-distortion performance of the DCT . . . . . . . . . . . . . . . . 181
5.8 DCT implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.8.1 Choice of transform block size . . . . . . . . . . . . . . . . . . . . . . 185
5.8.2 DCT complexity reduction . . . . . . . . . . . . . . . . . . . . . . . . 185
5.8.3 Field vs frame encoding for interlaced sequences . . . . . . . . . . . 187
5.8.4 Integer transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5.8.5 DCT DEMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5.9 JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6 FILTER BANKS AND WAVELET COMPRESSION 192
6.1 Introduction to multiscale processing . . . . . . . . . . . . . . . . . . . . . . 192
6.1.1 The short time Fourier transform and the Gabor transform . . . . . 193
6.1.2 What is a wavelet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
6.1.3 Wavelet and filter bank properties . . . . . . . . . . . . . . . . . . . 196
6.2 Perfect reconstruction filter banks . . . . . . . . . . . . . . . . . . . . . . . . 197
6.2.1 Filter and decomposition requirements . . . . . . . . . . . . . . . . . 197
6.2.2 The 1-D filter bank structure . . . . . . . . . . . . . . . . . . . . . . 198
6.3 Multirate filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.3.1 Upsampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.3.2 Downsampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
6.3.3 System transfer function . . . . . . . . . . . . . . . . . . . . . . . . . 207
6.3.4 Perfect reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . 209
6.3.5 Spectral effects of the two-channel decomposition . . . . . . . . . . . 209
6.4 Useful filters and filter banks . . . . . . . . . . . . . . . . . . . . . . . . . . 210
6.4.1 Quadrature mirror filters . . . . . . . . . . . . . . . . . . . . . . . . . 210
6.4.2 Wavelet filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
6.4.3 Multistage (multiscale) decompositions . . . . . . . . . . . . . . . . . 216
6.4.4 Separability and extension to 2-D . . . . . . . . . . . . . . . . . . . . 217
6.4.5 Finite length sequences, edge artifacts and boundary extension . . . 220
6.4.6 Wavelet compression performance . . . . . . . . . . . . . . . . . . . . 224
6.5 Coefficient quantization and bit allocation . . . . . . . . . . . . . . . . . . . 224
6.5.1 Bit allocation and zonal coding . . . . . . . . . . . . . . . . . . . . . 224
6.5.2 Hierarchical coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.6 JPEG2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
6.6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
6.6.2 Architecture - bit planes and scalable coding . . . . . . . . . . . . . 227
6.6.3 Coding performance . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
6.6.4 Region of interest coding . . . . . . . . . . . . . . . . . . . . . . . . . 228
6.6.5 Benefits and status . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
CONTENTS vii
7 LOSSLESS COMPRESSION METHODS 233
7.1 Motivation for lossless image compression . . . . . . . . . . . . . . . . . . . 233
7.1.1 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
7.1.2 Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
7.1.3 Dictionary methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
7.2 Symbol encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
7.2.1 A generic model for lossless compression . . . . . . . . . . . . . . . . 236
7.2.2 Entropy, efficiency and redundancy . . . . . . . . . . . . . . . . . . . 236
7.2.3 Prefix codes and unique decodability . . . . . . . . . . . . . . . . . . 237
7.3 Huffman coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7.3.1 The basic algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7.3.2 Minimum variance Huffman coding . . . . . . . . . . . . . . . . . . . 241
7.3.3 Huffman decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
7.3.4 Modified Huffman coding . . . . . . . . . . . . . . . . . . . . . . . . 243
7.3.5 Properties of Huffman codes . . . . . . . . . . . . . . . . . . . . . . . 244
7.3.6 Adaptive methods for Huffman encoding . . . . . . . . . . . . . . . . 245
7.4 Symbol formation and encoding . . . . . . . . . . . . . . . . . . . . . . . . . 248
7.4.1 Dealing with sparse matrices . . . . . . . . . . . . . . . . . . . . . . 248
7.4.2 Symbol encoding in JPEG . . . . . . . . . . . . . . . . . . . . . . . . 249
7.4.3 JPEG performance examples . . . . . . . . . . . . . . . . . . . . . . 254
7.4.4 Lossless JPEG mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
7.4.5 Context Adaptive Variable Length Coding (CAVLC) in H.264/AVC 257
7.5 Golomb coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
7.5.1 Unary codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
7.5.2 Golomb and Golomb-Rice codes . . . . . . . . . . . . . . . . . . . . . 258
7.5.3 Exponential Golomb codes . . . . . . . . . . . . . . . . . . . . . . . . 258
7.6 Arithmetic coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
7.6.1 The basic arithmetic encoding algorithm . . . . . . . . . . . . . . . . 260
7.6.2 The basic arithmetic decoding algorithm . . . . . . . . . . . . . . . . 263
7.6.3 Advantages and properties of arithmetic coding . . . . . . . . . . . 265
7.6.4 Binary implementations of arithmetic coding . . . . . . . . . . . . . 267
7.6.5 Tag generation with scaling . . . . . . . . . . . . . . . . . . . . . . . 269
7.6.6 Context-adaptive arithmetic coding . . . . . . . . . . . . . . . . . . . 271
7.6.7 Arithmetic coding with binary symbols . . . . . . . . . . . . . . . . . 272
7.7 Performance comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
7.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
8 CODING MOVING PICTURES: MOTION PREDICTION 281
8.1 Temporal correlation and exploiting temporal redundancy . . . . . . . . . . 281
8.1.1 Why motion estimation? . . . . . . . . . . . . . . . . . . . . . . . . . 281
8.1.2 Projected motion and apparent motion . . . . . . . . . . . . . . . . . 283
CONTENTS viii
8.1.3 Understanding temporal correlation . . . . . . . . . . . . . . . . . . 284
8.1.4 How to form the prediction . . . . . . . . . . . . . . . . . . . . . . . 284
8.1.5 Understanding temporal correlation . . . . . . . . . . . . . . . . . . 287
8.1.6 Approaches to motion estimation . . . . . . . . . . . . . . . . . . . . 287
8.2 Motion models and motion estimation . . . . . . . . . . . . . . . . . . . . . 288
8.2.1 Problem formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
8.2.2 Affine and high order models . . . . . . . . . . . . . . . . . . . . . . 288
8.2.3 Translation only models . . . . . . . . . . . . . . . . . . . . . . . . . 289
8.2.4 Pixel-recursive methods . . . . . . . . . . . . . . . . . . . . . . . . . 291
8.2.5 Frequency domain motion estimation using phase correlation (PhC) 292
8.3 Block Matching Motion Estimation (BMME) . . . . . . . . . . . . . . . . . 295
8.3.1 Translational block matching . . . . . . . . . . . . . . . . . . . . . . 295
8.3.2 Matching criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
8.3.3 Full search algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
8.3.4 Properties of block motion fields and error surfaces . . . . . . . . . 297
8.3.5 Motion failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
8.3.6 Restricted and unrestricted vectors . . . . . . . . . . . . . . . . . . . 302
8.4 Reduced complexity motion estimation . . . . . . . . . . . . . . . . . . . . . 303
8.4.1 Pixel grids and search grids . . . . . . . . . . . . . . . . . . . . . . . 303
8.4.2 Complexity of full search . . . . . . . . . . . . . . . . . . . . . . . . . 303
8.4.3 Reducing search complexity . . . . . . . . . . . . . . . . . . . . . . . 304
8.4.4 2-D Logarithmic Search (TDL) . . . . . . . . . . . . . . . . . . . . . 305
8.4.5 N-Step Search (NSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
8.4.6 Diamond search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
8.4.7 Hexagonal search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
8.4.8 Test Zone Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
8.4.9 Initialization and termination criteria . . . . . . . . . . . . . . . . . . 311
8.4.10 Reduced complexity block matching algorithm performance comparisons
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
8.5 Skip and merge modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
8.6 Motion vector coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
8.6.1 Motion vector prediction . . . . . . . . . . . . . . . . . . . . . . . . . 315
8.6.2 Entropy coding of motion vectors . . . . . . . . . . . . . . . . . . . . 315
8.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
9 THE BLOCK-BASED HYBRID VIDEO CODEC 319
9.1 The block-based hybrid model for video compression . . . . . . . . . . . . . 319
9.1.1 Picture types and prediction modes . . . . . . . . . . . . . . . . . . . 319
9.1.2 Properties of the DFD signal . . . . . . . . . . . . . . . . . . . . . . 321
9.1.3 Operation of the video encoding loop . . . . . . . . . . . . . . . . . . 322
9.1.4 Operation of the video decoder . . . . . . . . . . . . . . . . . . . . . 322
9.2 Intra-frame prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
CONTENTS ix
9.2.1 Intra-prediction for small luminance blocks . . . . . . . . . . . . . . 328
9.2.2 Intra-prediction for larger blocks . . . . . . . . . . . . . . . . . . . . 329
9.3 Sub-pixel motion estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
9.3.1 Sub-pixel matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
9.3.2 Interpolation methods . . . . . . . . . . . . . . . . . . . . . . . . . . 331
9.3.3 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
9.3.4 Interpolation-free methods . . . . . . . . . . . . . . . . . . . . . . . . 336
9.4 Multiple reference frame motion estimation . . . . . . . . . . . . . . . . . . 336
9.4.1 Justification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
9.4.2 Properties, complexity and performance of MRF-ME . . . . . . . . . 337
9.4.3 Reduced complexity MRF-ME . . . . . . . . . . . . . . . . . . . . . 338
9.4.4 The use of multiple reference frames in current standards . . . . . . 338
9.5 Variable block sizes for motion estimation . . . . . . . . . . . . . . . . . . . 339
9.5.1 Influence of block size . . . . . . . . . . . . . . . . . . . . . . . . . . 339
9.5.2 Variable block sizes in practice . . . . . . . . . . . . . . . . . . . . . 339
9.6 Variable sized transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
9.6.1 Integer transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
9.6.2 DC coefficient transforms . . . . . . . . . . . . . . . . . . . . . . . . 342
9.7 In-loop deblocking operations . . . . . . . . . . . . . . . . . . . . . . . . . . 343
9.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
10 MEASURING AND MANAGING PICTURE QUALITY 347
10.1 General considerations and influences . . . . . . . . . . . . . . . . . . . . . . 348
10.1.1 What do we want to assess? . . . . . . . . . . . . . . . . . . . . . . . 348
10.1.2 Noise, distortion and quality . . . . . . . . . . . . . . . . . . . . . . . 348
10.1.3 Influences on perceived quality . . . . . . . . . . . . . . . . . . . . . 349
10.2 Subjective testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
10.2.1 Justification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
10.2.2 Test sequences and conditions . . . . . . . . . . . . . . . . . . . . . 351
10.2.3 Choosing subjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
10.2.4 Testing environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
10.2.5 Testing methodology and recording of results . . . . . . . . . . . . . 353
10.2.6 Statistical analysis and significance testing . . . . . . . . . . . . . . . 357
10.2.7 The complete evaluation process . . . . . . . . . . . . . . . . . . . . 358
10.2.8 Subjective testing through crowdsourcing . . . . . . . . . . . . . . . 358
10.2.9 Measuring immersion in visual content . . . . . . . . . . . . . . . . . 360
10.3 Test data sets and how to use them . . . . . . . . . . . . . . . . . . . . . . . 361
10.3.1 Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
10.3.2 The relationship between Mean Opinion Score and an objective metric363
10.3.3 Evaluating metrics using public (or private) databases . . . . . . . . 363
10.4 Objective quality metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
CONTENTS x
10.4.1 Why do we need quality metrics? . . . . . . . . . . . . . . . . . . . . 365
10.4.2 A characterization of PSNR . . . . . . . . . . . . . . . . . . . . . . . 367
10.4.3 A perceptual basis for metric development . . . . . . . . . . . . . . 368
10.4.4 Perception-based image and video quality metrics . . . . . . . . . . 370
10.4.5 The future of metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
10.5 Rate-distortion optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
10.5.1 Classical rate-distortion theory . . . . . . . . . . . . . . . . . . . . . 378
10.5.2 Practical rate distortion optimization . . . . . . . . . . . . . . . . . . 380
10.5.3 The influence of additional coding modes and parameters . . . . . . 382
10.5.4 From Rate-Distortion to Rate-Quality Optimization . . . . . . . . . 387
10.6 Rate control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
10.6.1 Buffering and HRD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
10.6.2 Rate control in practice . . . . . . . . . . . . . . . . . . . . . . . . . 391
10.6.3 Regions of interest and rate control . . . . . . . . . . . . . . . . . . . 394
10.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
11 COMMUNICATING PICTURES: DELIVERY ACROSS NETWORKS401
11.1 The operating environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
11.1.1 Characteristics of modern networks . . . . . . . . . . . . . . . . . . . 401
11.1.2 Transmission types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
11.1.3 Operating constraints . . . . . . . . . . . . . . . . . . . . . . . . . . 403
11.1.4 Error characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
11.1.5 The challenges and a solution framework . . . . . . . . . . . . . . . . 406
11.2 The effects of loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
11.2.1 Synchronization failure . . . . . . . . . . . . . . . . . . . . . . . . . . 407
11.2.2 Header loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
11.2.3 Spatial error propagation . . . . . . . . . . . . . . . . . . . . . . . . 408
11.2.4 Temporal error propagation . . . . . . . . . . . . . . . . . . . . . . . 410
11.3 Mitigating the effect of bitstream errors . . . . . . . . . . . . . . . . . . . . 411
11.3.1 Video is not the same as data! . . . . . . . . . . . . . . . . . . . . . 411
11.3.2 Error resilient solutions . . . . . . . . . . . . . . . . . . . . . . . . . 412
11.4 Transport layer solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
11.4.1 Automatic Repeat Request (ARQ) . . . . . . . . . . . . . . . . . . . 414
11.4.2 FEC Channel coding . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
11.4.3 Hybrid ARQ (HARQ) . . . . . . . . . . . . . . . . . . . . . . . . . . 417
11.4.4 Packetization strategies . . . . . . . . . . . . . . . . . . . . . . . . . 417
11.5 Application Layer solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
11.5.1 Network abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
11.5.2 The influence of frame type . . . . . . . . . . . . . . . . . . . . . . . 418
11.5.3 Synchronization codewords . . . . . . . . . . . . . . . . . . . . . . . 420
11.5.4 Reversible VLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
CONTENTS xi
11.5.5 Slice structuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
11.5.6 Error tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
11.5.7 Redundant motion vectors . . . . . . . . . . . . . . . . . . . . . . . . 424
11.6 Cross layer solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
11.6.1 Link adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
11.7 Inherently robust coding strategies . . . . . . . . . . . . . . . . . . . . . . . 427
11.7.1 Error Resilient Entropy Coding (EREC) . . . . . . . . . . . . . . . . 427
11.7.2 Pyramid vector quantization (PVQ) . . . . . . . . . . . . . . . . . . 431
11.8 Error concealment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
11.8.1 Detecting missing information . . . . . . . . . . . . . . . . . . . . . . 434
11.8.2 Spatial error concealment (SEC) . . . . . . . . . . . . . . . . . . . . 435
11.8.3 Temporal error concealment . . . . . . . . . . . . . . . . . . . . . . . 436
11.8.4 Hybrid methods with mode selection . . . . . . . . . . . . . . . . . . 440
11.8.5 Intelligent error concealment . . . . . . . . . . . . . . . . . . . . . . 442
11.9 Congestion management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
11.9.1 HTTP Adaptive Streaming (HAS) . . . . . . . . . . . . . . . . . . . 442
11.9.2 Scalable video encoding . . . . . . . . . . . . . . . . . . . . . . . . . 445
11.9.3 Multiple description coding (MDC) . . . . . . . . . . . . . . . . . . . 447
11.10Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
12 VIDEO CODING STANDARDS AND FORMATS 453
12.1 The need for and role of standards . . . . . . . . . . . . . . . . . . . . . . . 453
12.1.1 The focus of video standardization . . . . . . . . . . . . . . . . . . . 453
12.1.2 The standardization process . . . . . . . . . . . . . . . . . . . . . . . 454
12.1.3 Intellectual property and licensing . . . . . . . . . . . . . . . . . . . 455
12.2 H.120 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
12.2.1 Brief history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
12.2.2 Primary features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
12.3 H.261 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
12.3.1 Brief history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
12.3.2 Picture types and primary features . . . . . . . . . . . . . . . . . . . 456
12.4 MPEG-2/DVB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
12.4.1 Brief History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
12.4.2 Picture types and primary features . . . . . . . . . . . . . . . . . . . 458
12.4.3 MPEG-2 profiles and levels . . . . . . . . . . . . . . . . . . . . . . . 459
12.5 H.263 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
12.5.1 Brief history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
12.5.2 Picture types and primary features . . . . . . . . . . . . . . . . . . . 460
12.6 MPEG-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
12.6.1 Brief history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
12.6.2 Picture types and primary features . . . . . . . . . . . . . . . . . . . 465
CONTENTS xii
12.7 H.264/AVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
12.7.1 Brief history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
12.7.2 Primary features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
12.7.3 Network abstraction and bitstream syntax . . . . . . . . . . . . . . . 468
12.7.4 Pictures and partitions . . . . . . . . . . . . . . . . . . . . . . . . . . 469
12.7.5 The Video coding layer . . . . . . . . . . . . . . . . . . . . . . . . . 472
12.7.6 Profiles and levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
12.7.7 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
12.7.8 Scalable extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
12.7.9 Multiview extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
12.8 H.265/HEVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
12.8.1 Brief background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
12.8.2 Primary features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
12.8.3 Network abstraction and high level syntax . . . . . . . . . . . . . . . 479
12.8.4 Pictures and partitions . . . . . . . . . . . . . . . . . . . . . . . . . . 480
12.8.5 The Video Coding Layer (VCL) . . . . . . . . . . . . . . . . . . . . . 482
12.8.6 Profiles and Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
12.8.7 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
12.8.8 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
12.9 H.266/VVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
12.9.1 Brief background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
12.9.2 Primary features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
12.9.3 High-level syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
12.9.4 Picture partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
12.9.5 Intra prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
12.9.6 Inter prediction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
12.9.7 Transformation and quantization . . . . . . . . . . . . . . . . . . . . 496
12.9.8 Entropy coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
12.9.9 In-loop filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
12.9.10Coding tools for 360 video . . . . . . . . . . . . . . . . . . . . . . . 499
12.9.11 Profiles, tiers and levels . . . . . . . . . . . . . . . . . . . . . . . . . 499
12.9.12Performance gains for VVC over recent standards . . . . . . . . . . . 499
12.10The Alliance of Open Media (AOM) . . . . . . . . . . . . . . . . . . . . . . 501
12.10.1VP9 and VP10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
12.10.2AV1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
12.11Other standardized and proprietary codecs . . . . . . . . . . . . . . . . . . . 502
12.11.1VC-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
12.11.2 Dirac or VC-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
12.11.3 RealVideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
12.12Codec comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
12.13Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
CONTENTS xiii
13 COMMUNICATING PICTURES - THE FUTURE 509
13.1 The motivation: more immersive experiences . . . . . . . . . . . . . . . . . 509
13.2 New formats and extended video parameter spaces . . . . . . . . . . . . . . 510
13.2.1 Influences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
13.2.2 Spatial resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
13.2.3 Temporal resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
13.2.4 Dynamic range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
13.2.5 360 degree video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
13.2.6 Parameter interactions and the creative continuum . . . . . . . . . . 521
13.3 Intelligent video compression . . . . . . . . . . . . . . . . . . . . . . . . . . 522
13.3.1 Challenges for compression: understanding content and context . . 522
13.3.2 Parametric video compression . . . . . . . . . . . . . . . . . . . . . 525
13.3.3 Context based video compression . . . . . . . . . . . . . . . . . . . . 527
13.4 Deep video compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
13.4.1 The need for data - training datasets for compression . . . . . . . . . 528
13.4.2 Deep optimization of compression tools . . . . . . . . . . . . . . . . 529
13.4.3 End to end architectures for deep image compression . . . . . . . . 534
13.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
9780128104088; 9780081004128; 9780123744562; 9780123965493