Coding Video A Practical Guide to HEVC and Beyond

A fully up-to-date guide to transformative consumer technologies Video compression - or video coding - has been at the centre of a revolution in the way video is produced, delivered, and consumed. It has made the switch from analogue to digital video possible and has enabled fundamental shifts in th...

Descripción completa

Detalles Bibliográficos
Otros Autores: Richardson, Iain E., author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Chichester, England : John Wiley & Sons Ltd [2024]
Edición:First edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009852332206719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright Page
  • Contents
  • About the Author
  • Acknowledgements
  • About the Companion Website
  • Chapter 1 Introduction
  • 1.1 Why Write This Book?
  • 1.2 What Is in the Book?
  • 1.3 How Should You Use This Book?
  • References
  • Chapter 2 Video Coding and Video Quality
  • 2.1 Introduction
  • 2.2 An Overview of Video Coding
  • 2.2.1 Just How Much Data Are We Talking About?
  • 2.2.2 Bandwidth Is Increasing Every Year, But…
  • 2.3 Inputs and Outputs
  • 2.3.1 Digital Video
  • 2.3.2 Uncompressed Video Formats
  • 2.3.2.1 Frames, Fields and Pixels
  • 2.3.2.2 Colour and Colour Spaces
  • 2.3.3 Side Information
  • 2.3.4 Coded Video
  • 2.4 Structural Elements
  • 2.5 Prediction
  • 2.5.1 Prediction in a Video Encoder
  • 2.5.2 Prediction in a Video Decoder
  • 2.5.3 Prediction Example
  • 2.5.4 Choosing a Prediction
  • 2.5.5 Inter and Intra Prediction
  • 2.6 Transform and Quantisation
  • 2.6.1 Transform
  • 2.6.2 Quantisation
  • 2.7 Bitstream Coding
  • 2.7.1 Pre-processing
  • 2.7.2 Entropy Encoding
  • 2.8 The Coded Bitstream
  • 2.9 Storing and Transmitting the Coded Bitstream
  • 2.10 The Decoder
  • 2.10.1 Entropy Decoding
  • 2.10.2 Rescaling and Inverse Transform
  • 2.10.3 Reconstruction
  • 2.10.4 Decoder Output
  • 2.11 The Video Codec Model
  • 2.12 Video Codec Performance
  • 2.12.1 Video Quality
  • 2.12.2 Subjective Quality Measurement
  • 2.12.2.1 Factors Influencing Subjective Quality
  • 2.12.2.2 Subjective Quality Assessment Methods
  • 2.12.3 Objective Quality Measurement
  • 2.12.3.1 PSNR
  • 2.12.3.2 Other Objective Quality Metrics
  • 2.13 Conclusion
  • References
  • Chapter 3 A History of Video Coding and Video Coding Standards
  • 3.1 Introduction
  • 3.2 The Foundations of Video Coding, 1950-1990
  • 3.2.1 Entropy Coding: 1952-1987
  • 3.2.2 Frame Differencing: 1956-1972
  • 3.2.3 The Discrete Cosine Transform: 1974-1984.
  • 3.2.4 The Development of the Video Codec Model: 1977-1985
  • 3.2.5 Early Advances in Motion-Compensated Prediction: 1989-1995
  • 3.2.5.1 Bidirectional Prediction
  • 3.2.5.2 Variable Block Size Motion Compensation
  • 3.2.5.3 Multiple Reference Frames
  • 3.2.5.4 Motion Compensation with Fractional Pixel Accuracy
  • 3.3 Video Coding Standards and Formats: 1990-2021
  • 3.3.1 How Are the Standards Developed?
  • 3.3.1.1 MPEG and VCEG
  • 3.3.1.2 The Development Process
  • 3.3.1.3 Standards and Intellectual Property Rights
  • 3.3.2 H.120, H.261 and MPEG-1: Early Video Coding Standards
  • 3.3.3 MPEG-2: Digital TV and DVD-Video
  • 3.3.4 H.263 and MPEG-4 Part 2: Internet and Mobile Video
  • 3.3.5 H.264: Multi-Purpose Video Coding
  • 3.3.6 H.265/HEVC
  • 3.3.7 H.266/VVC
  • 3.3.8 Other Standards and Formats
  • 3.3.8.1 VC-1
  • 3.3.8.2 VP8, VP9 and AV1
  • 3.3.8.3 Essential Video Coding and Low-ComplexityEnhancement Video Coding
  • 3.4 Comparing Video Coding Standards
  • 3.5 Conclusions
  • References
  • Chapter 4 Structures
  • 4.1 Introduction
  • 4.1.1 How Does a Video Codec Use Structures?
  • 4.1.2 Separating a Sequence into Processing Units
  • 4.1.3 Regular or Irregular Structures
  • 4.1.4 Transmission and Access
  • 4.2 Coded Video: Sequence to Picture
  • 4.2.1 Coded Sequence
  • 4.2.2 Coded Frame or Picture
  • 4.2.3 Multi-picture Structures
  • 4.3 Coded Video: Picture to Basic Unit
  • 4.3.1 Basic Units
  • 4.3.2 Slices
  • 4.3.3 Tiles
  • 4.4 Coded Video: Basic Unit to Block
  • 4.4.1 Coding Structures
  • 4.4.2 Prediction Structures
  • 4.4.3 Transform Structures
  • 4.5 HEVC Coding Structures
  • 4.5.1 Coded HEVC Sequence
  • 4.5.2 Parameter Sets
  • 4.5.3 Profiles and Levels
  • 4.5.4 Reference Picture Sets
  • 4.5.5 HEVC Picture Types and Random Access
  • 4.5.5.1 Random Access Picture
  • 4.5.5.2 Examples: RAPs, Trailing and Leading Pictures.
  • 4.5.5.3 Random Access and Error Recovery
  • 4.5.5.4 Bitstream Splicing Operations
  • 4.5.6 HEVC-Coded Pictures
  • 4.5.7 Slices and Slice Segments
  • 4.5.8 Tiles
  • 4.5.9 Combining Slices and Tiles in HEVC
  • 4.5.10 HEVC Structures and Parallel Processing
  • 4.5.10.1 Parallel Decoding Using Tiles
  • 4.5.10.2 Parallel Decoding Using Slices
  • 4.5.10.3 Wavefront Parallel Processing/Parallelising CTU Rows
  • 4.5.11 Coding Tree Units and Coding Units
  • 4.5.11.1 Quantisation Groups
  • 4.5.12 Prediction Units and Transform Units
  • 4.5.12.1 Prediction Unit Structures
  • 4.5.12.2 Transform Unit, Transform Block and Transform Sub-Block
  • 4.5.13 HEVC Structures Example
  • 4.6 Structures in Versatile Video Coding/H.266
  • 4.6.1 Sequence Down to Picture
  • 4.6.2 Picture Down to Coding Unit
  • 4.7 Conclusion
  • Reference
  • Chapter 5 Intra Prediction
  • 5.1 Introduction
  • 5.2 The Intra Prediction Process
  • 5.3 Intra Prediction Modes
  • 5.3.1 DC Prediction
  • 5.3.2 Planar Prediction
  • 5.3.3 Directional Prediction
  • 5.3.4 Sample Filtering
  • 5.4 Prediction Block Sizes
  • 5.5 Signalling Intra Prediction Choices
  • 5.6 Choosing a Prediction
  • 5.7 HEVC Intra Prediction
  • 5.7.1 HEVC Intra Prediction Modes
  • 5.7.2 HEVC Intra Prediction Filtering
  • 5.7.3 Signalling HEVC Intra Prediction Modes
  • 5.7.3.1 HEVC Luma Prediction Mode Signalling
  • 5.7.3.2 HEVC Chroma Prediction Mode Signalling
  • 5.7.4 HEVC Intra Prediction Examples
  • 5.8 VVC Intra Prediction
  • 5.8.1 Intra Prediction Modes
  • 5.8.2 Intra Prediction of Rectangular Blocks
  • 5.8.3 Intra Interpolation Filters
  • 5.8.4 Cross-Component Prediction
  • 5.8.5 Extra Reference Lines
  • 5.8.6 Intra Sub-Partitions
  • 5.8.7 VVC Intra-coding Performance
  • 5.9 Conclusions
  • References
  • Chapter 6 Inter Prediction
  • 6.1 Introduction
  • 6.2 Inter Prediction - the Basics.
  • 6.2.1 Motion Vectors for Inter Prediction: The Terminology Problem
  • 6.3 Forward, Backward and Biprediction
  • 6.3.1 Picture or Slice Types
  • 6.3.2 Forward Prediction from Past Frames
  • 6.3.3 Backward Prediction from Future Frames
  • 6.3.4 Biprediction from Two Frames
  • 6.4 Inter Prediction Block Sizes
  • 6.5 Motion Vectors
  • 6.5.1 How Does the Encoder Choose Each Motion Vector?
  • 6.6 Sub-Pixel Interpolation
  • 6.6.1 What Does a Sub-Pixel Interpolated Reference Frame Look Like?
  • 6.6.2 Interpolation Filters
  • 6.6.3 Trade-Offs in Sub-Pixel Interpolation
  • 6.7 Reference Pictures
  • 6.7.1 Reference Pictures for Inter Prediction
  • 6.7.2 Reference Picture Structures
  • 6.7.2.1 Low-Delay Picture Structures
  • 6.7.2.2 Random Access Picture Structures
  • 6.7.3 Reference Picture Buffers
  • 6.7.3.1 Adding Pictures to the Reference Picture Buffer
  • 6.7.3.2 Removing Pictures from the Reference Picture Buffer
  • 6.7.3.3 Ordering Reference Pictures
  • 6.7.3.4 Communicating Reference Picture Structures
  • 6.8 Signalling Inter Prediction Choices
  • 6.8.1 Inter Prediction Parameters
  • 6.8.2 Signalling the Base Motion Vector Parameters
  • 6.8.3 Signalling the Delta Motion Vector Parameters
  • 6.8.4 Signalling Reference Picture Choices
  • 6.9 Skip Mode
  • 6.10 Loop Filter
  • 6.11 When Inter Prediction Does Not Find a Good Match
  • 6.12 HEVC Inter Prediction
  • 6.12.1 Overview
  • 6.12.1.1 HEVC Inter Prediction Example
  • 6.12.2 HEVC Inter prediction Unit Partitioning
  • 6.12.2.1 Slice Types and PU Types
  • 6.12.2.2 Symmetric PU Partitions
  • 6.12.2.3 Asymmetric PU Partitions
  • 6.12.2.4 CU Partitionings into Inter-PUs: Examples
  • 6.12.3 HEVC Inter-PU Coding
  • 6.12.3.1 Skip or Merge Coding
  • 6.12.3.2 Inter-PU Coding: Advanced Motion Vector Prediction
  • 6.12.3.3 HEVC Inter-PU Coding: Examples
  • 6.12.4 HEVC Inter Prediction Sources.
  • 6.12.5 HEVC Biprediction and Weighted Prediction
  • 6.12.6 HEVC Sub-Pixel Interpolation
  • 6.12.6.1 Luma Sample Interpolation
  • 6.12.6.2 Chroma Sample Interpolation
  • 6.12.7 HEVC Reference Pictures
  • 6.13 Inter Prediction in VVC
  • 6.13.1 Inter Prediction Partitions
  • 6.13.2 Extended Merge Mode
  • 6.13.3 Affine Motion-Compensated Prediction
  • 6.13.4 Biprediction Enhancements
  • 6.13.5 Sub-Pixel Interpolated Motion Compensation
  • 6.14 Conclusions
  • References
  • Chapter 7 Transform and Quantisation
  • 7.1 Introduction
  • 7.1.1 Transform: An Overview
  • 7.1.2 Quantisation: An Overview
  • 7.2 Residual Blocks
  • 7.3 Block Transforms
  • 7.3.1 What Is the Purpose of a Block Transform?
  • 7.3.2 Spatial Frequencies and Basis Patterns
  • 7.3.3 What Does the Transform Do?
  • 7.3.4 Types of Block Transform
  • 7.3.4.1 The Karhunen-Loeve Transform
  • 7.3.5 The Discrete Cosine Transform
  • 7.3.6 The Hadamard Transform
  • 7.3.7 Discrete Sine Transform
  • 7.3.8 The Discrete Cosine Transform in Detail
  • 7.3.9 The Discrete Cosine Transform: What It Means
  • 7.3.10 The Discrete Cosine Transform: Significant Coefficients
  • 7.4 Quantisation
  • 7.4.1 Combining Transform and Quantisation
  • 7.4.2 Designing the Quantiser
  • 7.5 Transform and Quantisation in Practice
  • 7.6 HEVC Transform and Quantisation
  • 7.6.1 Overview of HEVC Transform and Quantisation
  • 7.6.2 The HEVC Transforms
  • 7.6.2.1 DCT-Based Transforms
  • 7.6.2.2 DST-Based Transform
  • 7.6.2.3 The HEVC Forward and Inverse Transform and Quantisation Processes
  • 7.6.3 HEVC Quantisation and Rescaling
  • 7.6.3.1 HEVC QP and Qstep
  • 7.6.3.2 HEVC Forward Quantiser
  • 7.6.3.3 HEVC Rescaling
  • 7.6.3.4 HEVC Quantisation Matrices
  • 7.6.4 Example: The Complete HEVC Transform and Quantise Processes
  • 7.6.4.1 Forward Transform and Quantise
  • 7.6.4.2 Rescale and Inverse Transform.
  • 7.6.5 Bypassing Transform and/or Quantisation in HEVC.