
本书系统全面地介绍了新一代的通用视频编码标准H.266/VVC,讲解了相关编码原理和实现方法,并对相应标准语法语义进行了模块化的解读。全书共13 章。第1 章概述了视频编码国际标准和H.266/VVC的发展历程,介绍了H.266/VVC 的特色技术。第2 章讨论了数字视频格式和H.266/VVC 编码视频格式。第3 章详细解析了H.266/VVC 编码结构及参数集,并介绍了H.266/VVC 的档次、层和级别。第4~10 章为H.266/VVC 编码技术的分模块论述和语法语义解析,包括帧内预测编码、帧间预测编码、变换编码、量化、熵编码、环路滤波和面向多样化视频的编码工具。第11~13 章针对H.266/VVC 的实现和应用,详细介绍了H.266/VVC 的网络适配层、率失真优化和速率控制。 本书可作为电子信息类和广播电视类本科高年级学生和研究生的相关课程教材,也可供视频技术研究领域的研究生、教师、工程师参考,并且适合相关技术人员作为解读H.266/VVC 标准的参考用书。
前言 人类主要通过视觉感知世界,人们对于“看见”有着天然的渴望。如今,各式各样的视频应用已经渗透到人类社会的方方面面,毫不夸张地说,数字视频是现代人类社会的重要组成部分。作为一种数据量非常巨大的信息载体,视频获得实际应用的根本条件和前提,是对视频进行有效的压缩编码。自20世纪80年代以来,国际标准化组织一直在持续研究视频编解码方法,并根据当时的整体技术水平,制定视频编码国际标准,以适应不断涌现的新需求。 近年来,视频应用的多样化特点越来越突出。从移动短视频、网络直播到高清、超高清电视,从共享屏幕视频到沉浸式视频体验……视频的种类繁多、特色各异,数据量与日俱增。视频应用的多样化和数据量的爆发式增长为视频编码带来了新的挑战。在这样的背景下,国际电信联盟电信标准化部门(ITU-T)与国际标准化组织/国际电工委员会(ISO/IEC)再次通力合作,于2020年发布了新一代的通用视频编码标准H.266/VVC(Versatile Video Coding)。H.266/VVC包含大量视频编码新技术,与它的前代标准H.265/HEVC相比,H.266/VVC在相同重建视频质量下能够节约50%左右的码率。除了出色的压缩性能,H.266/VVC还包含针对全景视频、屏幕视频特有的编码工具,有望在各类视频业务中获得广泛的应用。 H.266/VVC的出色性能来源于复杂而精妙的编码新技术,相关标准的语法语义理解起来比较困难。作者针对H.265/HEVC标准著有《新一代高效视频编码H.265/HEVC:原理、标准与实现》一书,获得了读者的广泛好评。本书沿袭了前书的基本思路,从原理出发,对H.266/VVC视频编码标准进行分模块解读。在给出H.266/VVC整体编码框架及其中的关键技术之后,针对H.266/VVC的各个编码模块分别进行详尽分析。为方便读者理解,每个编码模块都包含了相应的背景知识、语法语义、实现方式等。此外,本书的作者深入参与了H.266/VVC标准的制定,并有多项编码技术被该标准采纳。在撰写本书的过程中,作者根据自身对标准的理解,对重点、难点进行了仔细剖析。 全书共13章。第1章概述了视频编码国际标准和H.266/VVC的发展历程,介绍了H.266/VVC的特色技术。第2章讨论了数字视频格式和H.266/VVC编码视频格式。第3章详细解析了H.266/VVC编码结构及参数集,并介绍了H.266/VVC的档次、层和级别。第4~10章为H.266/VVC编码技术的分模块论述和语法语义解析,包括帧内预测编码、帧间预测编码、变换编码、量化、熵编码、环路滤波和面向多样化视频的编码工具。第11~13章针对H.266/VVC的实现和应用,详细介绍了H.266/VVC的网络适配层、率失真优化和速率控制。 本书的撰写获得了业内同行专家的大力支持,在此特别感谢AVS视频组联合组长郑萧桢博士为本书友情撰写AVS系列标准的相关内容;特别感谢丁丹丹博士为本书友情撰写开放媒体联盟AOM系列标准的相关内容;特别感谢华为技术有限公司杨海涛博士(H.266/VVC标准“帧间预测编码”专题组主席)和陈焕浜研究员帮助校对帧间编码相关章节的技术描述。 同时,衷心感谢周健全、王海鑫、顾程铭、冉启宏、李程程、梁红、王璐歌、薛毅、巩浩等同学在资料收集和内容整理方面作出的辛勤劳动。 本书可作为电子信息类和广播电视类本科高年级学生和研究生的相关课程教材,也可供视频技术研究领域的研究生、教师、工程师参考,并且适合相关技术人员作为解读H.266/VVC标准的参考用书。 由于时间有限,书中的论述难免出现疏漏,恳请广大读者批评指正。 作 者 2022年6月
目录 第1章 绪论 1 1.1 视频压缩与编码概述 1 1.1.1 视频 1 1.1.2 视频压缩与编码 2 1.2 视频编码标准 4 1.2.1 什么是视频编码标准 4 1.2.2 视频编码标准的发展 5 1.3 H.266/VVC简介 13 1.3.1 标准化历程 13 1.3.2 编码框架及编码工具 14 参考文献 16 第2章 数字视频格式 19 2.1 数字视频 19 2.1.1 色彩 20 2.1.2 亮度动态范围 23 2.1.3 量化深度 25 2.1.4 空间分辨率 25 2.1.5 时间分辨率 26 2.1.6 全景视频 27 2.2 数字视频格式 28 2.2.1 色度亚采样 28 2.2.2 数字视频格式的规范标准 29 2.3 H.266/VVC编码视频格式 35 2.3.1 编码图像格式 35 2.3.2 解码图像格式 37 参考文献 43? 第3章 编码结构 44 3.1 编码结构概述 44 3.2 多层视频及参数集 46 3.2.1 多层视频编码结构 46 3.2.2 视频参数集 48 3.3 视频序列及参数集 51 3.3.1 编码视频序列 51 3.3.2 图像类型 52 3.3.3 序列参数集 53 3.4 图像及参数集 61 3.4.1 图像参数集 62 3.4.2 图像头 65 3.5 SLICE 69 3.6 TILE 71 3.6.1 Tile划分 72 3.6.2 Slice与Tile 72 3.7 子图像 73 3.8 树形编码单元 74 3.8.1 CU划分 75 3.8.2 图像边界上的CU划分 77 3.8.3 CU的相关语法元素 77 3.9 档次、层和级别 79 3.9.1 档次 80 3.9.2 层和级别 80 参考文献 81 第4章 帧内预测编码 82 4.1 视频预测编码技术 82 4.1.1 预测编码技术 82 4.1.2 帧内预测编码技术 84 4.1.3 H.266/VVC帧内预测编码概述 86 4.2 参考像素值获取 89 4.2.1 参考像素范围 89 4.2.2 参考像素滤波 91 4.3 预测值计算 92 4.3.1 传统预测模式 92 4.3.2 宽角度预测模式 96 4.3.3 基于矩阵的预测模式 97 4.4 预测值修正 100 4.5 帧内子区域划分 102 4.6 分量间线性模型预测 103 4.6.1 亮度分量下采样 103 4.6.2 线性模型参数 104 4.6.3 色度预测值 105 4.6.4 相关语法元素介绍 106 4.7 帧内预测模式编码 106 4.7.1 亮度预测模式编码 106 4.7.2 色度预测模式编码 109 参考文献 110 第5章 帧间预测编码 112 5.1 帧间预测编码概述 112 5.1.1 帧间预测编码原理 112 5.1.2 帧间预测编码关键技术 115 5.1.3 H.266/VVC帧间预测编码概述 121 5.2 亚像素插值 123 5.2.1 插值滤波器选择 123 5.2.2 亚像素插值方法 125 5.3 MERGE模式 126 5.3.1 常规Merge模式 126 5.3.2 Skip模式 130 5.3.3 带有运动矢量差的Merge模式 131 5.3.4 联合帧内帧间预测模式 133 5.4 几何划分预测模式 134 5.4.1 基本原理 134 5.4.2 标准实现 136 5.4.3 相关语法元素 141 5.5 高级运动矢量预测技术 141 5.5.1 常规AMVP模式 141 5.5.2 对称运动矢量差分编码技术 143 5.5.3 自适应运动矢量精度 144 5.6 基于子块的帧间预测模式 146 5.6.1 基于子块的时域MV预测技术 146 5.6.2 基于子块的仿射运动补偿 148 5.6.3 仿射Merge模式 149 5.6.4 仿射AMVP模式 153 5.7 解码端运动矢量细化 155 5.8 基于光流场的预测值修正 158 5.8.1 基于光流的预测值修正 158 5.8.2 双向光流预测值修正 159 5.8.3 基于光流的仿射预测修正 163 5.9 帧间加权预测 165 5.9.1 Slice级加权预测 166 5.9.2 CU级双向加权预测(BCW) 168 5.10 帧间预测模式组织结构 169 参考文献 171 第6章 变换编码 173 6.1 变换概述 173 6.1.1 离散余弦变换 174 6.1.2 整数离散余弦变换 176 6.1.3 离散正弦变换 179 6.1.4 整数离散正弦变换 180 6.1.5 H.266/VVC中的变换 182 6.2 主变换 182 6.2.1 主变换的基本原理 183 6.2.2 主变换的标准实现 185 6.3 二次变换 190 6.3.1 二次变换的基本原理 190 6.3.2 二次变换的标准实现 193 6.4 哈达玛变换 195 6.4.1 哈达玛变换的原理及特点 195 6.4.2 哈达玛变换的应用 196 参考文献 197 第7章 量化 199 7.1 标量量化 199 7.1.1 基本原理 199 7.1.2 均匀标量量化 200 7.1.3 Lloyd-Max量化器 202 7.1.4 熵编码量化器 203 7.2 矢量量化 204 7.2.1 基本原理 204 7.2.2 网格编码量化 205 7.3 H.266/VVC量化 206 7.3.1 H.266/VVC标量量化 207 7.3.2 率失真优化量化 209 7.3.3 依赖量化 210 7.3.4 量化参数 213 7.3.5 量化矩阵 215 参考文献 217 第8章 熵编码 219 8.1 熵编码基本原理 219 8.1.1 熵 219 8.1.2 变长编码 221 8.1.3 指数哥伦布编码 222 8.1.4 算术编码 224 8.2 零阶指数哥伦布编码 226 8.2.1 零阶指数哥伦布编码简介 226 8.2.2 H.266/VVC中的零阶指数哥伦布编码 227 8.3 CABAC 232 8.3.1 CABAC的原理 232 8.3.2 H.266/VVC中的CABAC 236 8.4 变换系数熵编码 239 8.4.1 变换系数扫描 239 8.4.2 最后一个非零系数位置信息编码 240 8.4.3 非零系数幅值信息编码 242 8.4.4 变换跳过残差熵编码 246 8.4.5 相关语法元素 247 参考文献 247 第9章 环路滤波 249 9.1 亮度映射与色度缩放 250 9.1.1 LMCS技术 251 9.1.2 LMCS的实现 252 9.1.3 LMCS的相关语法元素 254 9.2 去方块滤波 256 9.2.1 滤波决策 257 9.2.2 滤波操作 264 9.2.3 DBF的相关语法元素 267 9.3 样点自适应补偿 267 9.3.1 SAO技术 268 9.3.2 SAO的实现 270 9.3.3 SAO的相关语法元素 275 9.4 自适应环路滤波 277 9.4.1 维纳滤波 277 9.4.2 ALF技术 278 9.4.3 亮度ALF 280 9.4.4 色度ALF 284 9.4.5 分量间ALF 284 9.4.6 ALF的相关语法元素 286 参考文献 288 第10章 面向多样化视频的编码工具 290 10.1 全景视频编码 290 10.1.1 水平环绕运动补偿 290 10.1.2 虚拟边界取消环路滤波 292 10.2 屏幕内容视频编码 293 10.2.1 帧内块复制 293 10.2.2 变换跳过模式的残差编码 296 10.2.3 块差分脉冲编码调制 297 10.2.4 调色板模式 298 10.2.5 自适应色度变换 301 参考文献 303 第11章 网络适配层 304 11.1 分层结构 304 11.2 网络适配层单元 306 11.2.1 NALU头 307 11.2.2 NALU载荷 309 11.3 视频比特流中的NALU 311 11.4 网络适配层单元的应用 313 11.4.1 字节流应用 313 11.4.2 分组流应用 314 参考文献 318 第12章 率失真优化 319 12.1 率失真优化技术 319 12.1.1 率失真理论 319 12.1.2 视频编码中的率失真优化 326 12.2 H.266/VVC中的率失真优化 330 12.2.1 视频图像组的率失真优化 330 12.2.2 片层的率失真优化 333 12.2.3 CTU层的率失真优化 334 12.2.4 CU层的率失真优化 334 12.3 VTM中的率失真优化方法 335 12.3.1 CTU编码优化 335 12.3.2 CU划分模式判别 336 12.3.3 帧内预测模式判别 340 12.3.4 帧间预测模式判别 341 参考文献 345 第13章 速率控制 347 13.1 视频编码速率控制 347 13.1.1 速率控制的基本原理 347 13.1.2 缓冲机制 349 13.1.3 速率控制技术 350 13.2 H.266/VVC速率控制 356 13.2.1 目标比特分配 356 13.2.2 量化参数确定 358 参考文献 361 附录A 术语及英文解释 363 附录B 专业名词缩写 376