You are on page 1of 60

视频编解码技术初探

黄哲雄 18212020083
VIP: Video Image Processing Research Lab

2019/10/10 State Key Lab of ASIC & System, Fudan University 1


课程大纲
• 引言
• 视频的基本参数
• 视频压缩的常用方法
• 视频编解码器的通用架构
• 视频编解码技术的发展方向与研究热点
• 结语

2019/10/10 State Key Lab of ASIC & System, Fudan University 2


引言

2019/10/10 State Key Lab of ASIC & System, Fudan University 3


视频编解码技术的应用范围
• 视频内容处理是众多应用的核心技术
• 视频监控与摄像头
• 行车记录仪
• 网络直播
• 视频通话与录像
• 高清视频会议
• 在线远程教育
• 部分新兴应用也需要依赖视频编解码技术
• AI/AR/VR/…
• 云服务在视频业务的扩张与视频编解码技术关系密切

2019/10/10 State Key Lab of ASIC & System, Fudan University 4


视频编解码技术的必要性
• 原始视频数据量巨大,难以存储或经互联网传输
• 以UHD@60 fps为例,每秒所需传输的数据量可达
3840 × 2160 × 8 bits × 3 channels × 60 fps ≈ 12 Gbps
• 即使是视频传输线等高速传输环境,同样也存在理论上限
• DisplayPort 2.0的最大理论带宽为80 Gbps
• 视频传输线需要主动适配器(嵌入控制和放大芯片),长距离、高带宽
下成本迅速增加
• 随着AR、VR、高清视频应用的普及,数据量还会继续快速增长
• 高清晰度、高动态范围、高帧率、高码率,无一不需要海量数据传输

2019/10/10 State Key Lab of ASIC & System, Fudan University 5


视频格式的发展规律
• 视频格式的发展是为了支持更多视频源、使用更先进的编码工具
• 当前对高清晰度、高动态范围、高帧率视频的需求构成了新的挑战
• 视频格式的两条主要路线:H.26x和VPx/AV1
• H.26x应用广泛,技术较为先进,但使用时需缴纳版权费用
• VPx/AV1是开源项目,目的是消除专利风险,拓宽视频编解码应用面

2019/10/10 State Key Lab of ASIC & System, Fudan University 6


视频的基本参数

2019/10/10 State Key Lab of ASIC & System, Fudan University 7


图像的三维表示
• 图像通常可以认为是二维的,可以新增一维用于表示色彩数据
• 对于每一个色彩维度,我们使用一定范围内的整数表示强度
(intensity)

2019/10/10 State Key Lab of ASIC & System, Fudan University 8


颜色模型
• 颜色模型指的是一种使用多个颜色分量表示不同颜色的数学模型
• 通常一个颜色模型对应3到4个颜色分量
• 当颜色模型与具体的表示方法相关联,就形成了色彩空间
• 色彩空间通常是可见光的真子集

2019/10/10 State Key Lab of ASIC & System, Fudan University 9


像素精度/动态范围
• 通常使用8位整数即可
表示一个颜色分量的强
度,称之为SDR
• 使用更高精度的整数表
示强度即可获得更高的
动态范围,称之为HDR
• 相对于SDR,HDR可以
获得更好的视觉效果,
但所需数据量也更大

2019/10/10 State Key Lab of ASIC & System, Fudan University 10


不同颜色空间之间的对比
(Rec. 709 versus Rec. 2100)

2019/10/10 State Key Lab of ASIC & System, Fudan University 11


分辨率/解析度
CD/CIF

DVD/D1

720p/HD Ready

1080p/FHD

QHD

UHD

2019/10/10 State Key Lab of ASIC & System, Fudan University 12


帧率&码率
• 帧率:视频播放的速度,单位是fps(Frames Per Second)
• 码率:视频的单位时间内数据量,单位是bps(Bits Per Second)

2019/10/10 State Key Lab of ASIC & System, Fudan University 13


逐行扫描 vs. 隔行扫描

2019/10/10 State Key Lab of ASIC & System, Fudan University 14


视频压缩的常用方法

2019/10/10 State Key Lab of ASIC & System, Fudan University 15


视频压缩的常用方法
• 对视频的压缩方法可以分为无损和有损
• 无损压缩:不影响视频质量,但压缩比有限
• 颜色分量/空间/时间上的相关性
• 信息分布的局部性
• 有损压缩:影响视频质量,但能更有效率地压缩视频
• 降低色彩表示精度,或减少可用颜色数量
• 色彩空间与色度下采样
• 图像在频域上的分布特点

2019/10/10 State Key Lab of ASIC & System, Fudan University 16


色彩空间的转换
• 当前显示设备通常使用RGB色彩空间
• 人眼对于亮度信息较色度信息更为敏感
• 通常我们使用YCbCr色彩空间代替RGB,两者可以互相转换

2019/10/10 State Key Lab of ASIC & System, Fudan University 17


色度下采样
• 将色彩空间转换为YCbCr
的目的是将亮度与色度 Luma
分离,此时可以通过下
采样减小色度分量的数
据量 Chroma 4:4:4

• 在还原到RGB色彩空间
前,需要使用插值的方 Chroma 4:2:2
式对色度信息进行上采

Chroma 4:2:0

2019/10/10 State Key Lab of ASIC & System, Fudan University 18


色度下采样后的图像质量对比

2019/10/10 State Key Lab of ASIC & System, Fudan University 19


图像在空间上的相关性

2019/10/10 State Key Lab of ASIC & System, Fudan University 20


图像在空间上的相关性
• 在单帧视频中,图像具有局部相关性,即一个像素的颜色大概率
和相邻像素存在联系
• 利用相关性,我们可以根据相邻像素的值预测当前像素的值,从
而减少实际表示的数据量

2019/10/10 State Key Lab of ASIC & System, Fudan University 21


视频在时间上的相关性
• 视频是连续播放的图像序列,因此存在时间上的相关性
• 视频中物体的运动规律存在局部性,需要将不同的运动物体同背
景区分开来,从而分别进行预测
• 有时候,我们可以在多个方向同时进行预测,以尽可能利用相邻
图像中的关键信息

2019/10/10 State Key Lab of ASIC & System, Fudan University 22


实际的运动补偿样例(以块为单位)

2019/10/10 State Key Lab of ASIC & System, Fudan University 23


帧内预测 vs. 帧间预测
帧内预测 帧间预测
• 利用空间上的相关性 • 利用时间上的相关性
• 不需要参考相邻帧 • 需要参考相邻帧
• 预测过程代价较小 • 预测过程代价较大
• 压缩效果一般(~1:10) • 压缩效果较好(<1:100)

2019/10/10 State Key Lab of ASIC & System, Fudan University 24


视频压缩的基本单位
以像素为基本单位 以图像内容/层次
以块为基本单位 为基本单位
• 对空间/时间上的相关 • 对图像内容以块为单位 • 对图像内容按层次进行
性利用最为精确 进行预测与压缩,是一 划分,充分分割了各部
• 像素级信息的数据量相 种较为实用的方案 分内容的运动
当于原始图像,因此压 • 块之间可以利用相关性 • 理论上具有最佳效果,
缩效率和图像质量不可 减少数据量,块内部也 实际上对复杂物体的变
兼得 可利用频域分布特点进 形和运动仍然难以处理
• 通常只有对像素的简单 一步压缩视频 • 需要使用额外信息或算
预测(如DPCM)是实 • 广泛用于各种视频编解 法对图像进行语义分割,
用的 码技术,是成熟的方案 实现代价很大

2019/10/10 State Key Lab of ASIC & System, Fudan University 25


对原始视频的划分处理
• 对于以块为基本单位的预测和压缩算法,如何对当前块进行划分
是非常重要的一个问题
• 根据划分的作用位置不同,可以分为(以H.265为例):
• CTU:编码块的最大单位,所有编码块大小的上限
• CU:当前编码块的单位,可由CTU进一步划分得到
• PU:当前编码块中预测块的单位,可由CU进一步划分得到
• TU:当前编码块中变换块(以及后续的熵编码)的单位,可由PU进一步
划分得到
• 如果划分非统一,需要额外的数据量以记录划分信息

2019/10/10 State Key Lab of ASIC & System, Fudan University 26


H.264 vs. H.265 in Partitioning

2019/10/10 State Key Lab of ASIC & System, Fudan University 27


H.265中对CU的划分处理样例

2019/10/10 State Key Lab of ASIC & System, Fudan University 28


基于块的变换和量化
• 在以块为单位划分图像并进行预测后,得到的是块级的残差信息
• 残差的频域分布通常满足低频能量大、高频能量小的特点
• 使用二维变换对行和列分别进行变换,结果等价于分别左乘和右乘变换
矩阵,即𝑌 = 𝐶 𝑇 𝑋𝐶
• 通常使用DCT等变换,以使低频分量和高频分量分别集中于一角
• 在变换后,可以通过量化降低数据的表示精度,从而减小数据量
• 在频域上进行量化,不会导致图像出现明显的色斑
• 量化可以显著降低残差信息的数据量,但量化是有损的
• 可以对不同频率的系数施加不同的量化步长,从而在减少高频数据量的
同时不影响低频数据量,有助于提升编码效果

2019/10/10 State Key Lab of ASIC & System, Fudan University 29


DCT的二维正交基分布图

2019/10/10 State Key Lab of ASIC & System, Fudan University 30


变换前后的残差/系数分布变化

2019/10/10 State Key Lab of ASIC & System, Fudan University 31


变换和量化过程示意图

2019/10/10 State Key Lab of ASIC & System, Fudan University 32


熵编码
• 用于对所有编码信息(包括预测信息和系数)进行无损压缩
• 熵编码前后的数据必须是一一对应的
• 熵编码必须满足无前缀(non-prefix)特性
• 熵编码的本质是对于信息熵的利用
• 熵编码即是编码过程中按熵原理不丢失任何信息的编码
• 熵编码的目的是在无损压缩的前提下尽量减少目标码流长度
• 熵编码的目标是尽可能逼近信息熵的极限
• 熵编码的两种主要手段
• 利用单个语法元素本身的概率(独立同分布假设)
• 利用语法元素之间的依赖关系(上下文相关性)

2019/10/10 State Key Lab of ASIC & System, Fudan University 33


熵编码与算术编码
• 为了对不同概率进行熵编码,
需要引入算术编码以动态调整
编码区间的长度
• 显然,更大的区间意味着更小
的信息熵,因此我们可以使用
更少的二进制位来编码

2019/10/10 State Key Lab of ASIC & System, Fudan University 34


视频编解码器的通用架构

2019/10/10 State Key Lab of ASIC & System, Fudan University 35


视频编解码器的通用架构
• 当前视频编解码器的通用架构相对固定,在标准间没有太大变化
• 图像划分与拼接(CTU/CU/PU/TU)
• 帧内预测(空间相关)与帧间预测(时间相关)
• 残差的计算与压缩(变换和量化)
• 熵编码与熵解码
• 图像重建与缓存
• 环路内后处理(去方块滤波、SAO)
• 其它(图像处理/码流封装)
• 视频编解码器的处理单位是块(即宏块/CTU),可以使用流水线
加快处理效率

2019/10/10 State Key Lab of ASIC & System, Fudan University 36


视频编码器的通用架构

Original Image
Intra

Partition T&Q IQ&IT


IME FME MC
Entropy Bitstream
Inter Coding
Deblocking
& SAO

2019/10/10 State Key Lab of ASIC & System, Fudan University 37


视频解码器的通用架构

Bitstream
Intra
Entropy Deblocking
& SAO
Stitch
Coding
Inter
Reconstruct Image
IQ&IT

2019/10/10 State Key Lab of ASIC & System, Fudan University 38


图像划分与拼接
• 图像输入顺序通常是光栅扫描,需要将其转化为宏块/CTU
• CU、PU和TU的划分需要根据图像的具体情况进行判断
• 在解码端,需要将编码后的图像还原成光栅扫描顺序

2019/10/10 State Key Lab of ASIC & System, Fudan University 39


帧内预测及编码
• 帧内预测使用当前宏块/CTU的相邻像素进行预测
• 由于滤波等处理同时作用于相邻块,因此只能在所有预测结束后进行
• 帧内预测支持多种预测模式
• 直流分量预测(DC)
• 角度预测(Angular)
• 渐变(Plane/Planar)
• 帧内预测支持多种划分
• 符合块内图像规律
• 同时影响TU选择

2019/10/10 State Key Lab of ASIC & System, Fudan University 40


H.264使用帧内预测的样例

2019/10/10 State Key Lab of ASIC & System, Fudan University 41


帧间预测及编码
• 帧间预测较帧内预测更为复杂,数据量和运算量都更大
• 主要原因是帧间预测的搜索范围更大,并且块内组织更加灵活
• 可以通过限制搜索范围、使用高效搜索方式等方法加快速度
• 部分视频编码标准支持亚像素预测,可以使运动估计更为准确
• 现实物体的运动通常不以整像素为单位进行
• H.264和H.265的插值精度一样,但H.265通过增加滤波器抽头的方式提高
亚像素预测的准确性
• 亚像素预测的计算代价较大,可以通过分步进行的方式优化
• 帧间预测算法可以分为IME(Integer Motion Estimation)、FME
(Fractional Motion Estimation) 、MC(Motion Compensation)三部分

2019/10/10 State Key Lab of ASIC & System, Fudan University 42


H.265使用帧间预测的样例

2019/10/10 State Key Lab of ASIC & System, Fudan University 43


变换和量化
• 目前常用的变换函数包括DCT、
DST、Hadamard Transform等
• 标准通常只规定的反量化和反
变换的过程
• 变换和量化可以适当优化算法,
使得计算更方便、编码效果更好
• 量化参数(QP)决定了视频质量
• 为了达到更好的量化效果,现
代视频编码标准通常支持自定
义量化表
2019/10/10 State Key Lab of ASIC & System, Fudan University 44
熵编码与熵解码
• H.264中可选CAVLC和CABAC,H.265只支持CABAC
• CAVLC(Context-Adaptive Variable-Length Coding)
• CABAC(Context-Adaptive Binary Arithmetic Coding)
• 标准中规定了语法元素表,编解码器按照标准进行编解码操作
• 熵编码与熵解码是确定性算法,不涉及压缩率优化
• 熵编码与熵解码的优化目标是提高执行效率
• 对于硬件设计,可以使用并行编解码来减少执行周期数
• CABAC引入上下文模型和算术编码,对码流的压缩率更高
• CABAC较CAVLC减小码流约5-15%,代价是执行时间更长、占用内存更多

2019/10/10 State Key Lab of ASIC & System, Fudan University 45


CAVLC和CABAC的对比

CAVLC CABAC
• 二值化+简单串联编码 • 二值化+上下文模型+算术编码
• 仅对于系数编码使用上下文关 • 对于大部分语法元素都使用上
系(结合哈夫曼编码) 下文关系(结合算术编码)
• 对码流的压缩有限 • 依靠上下文模型对码流进行自
• 编码后码长容易估计 适应的、更高比例的压缩
• 硬件设计较为简单 • 编码后码长难以估计,因为涉
及到概率的变化
• 硬件设计较为复杂
2019/10/10 State Key Lab of ASIC & System, Fudan University 46
H.264中的码流分布情况(𝑄𝑃 = 28时)

I macroblock P macroblock

2019/10/10 State Key Lab of ASIC & System, Fudan University 47


图像重建与缓存
• 在编码器和解码器,都需要进行图像重建
• 编码端需要使用重建后图像进行下一步预测,因为解码端无法获得原始
图像
• 图像重建需要使用还原后的残差进行
• 图像的缓存对于编解码器的设计非常重要
• 帧内预测需要缓存相邻行和列的图像,而帧间预测需要缓存被参考的一
整帧图像
• 帧内预测所需的数据量相对较小,而帧间预测所需的数据量非常大,因
为需要对搜索范围内的所有像素进行评估
• 缓存的容量通常确定了编解码器所支持的最大分辨率

2019/10/10 State Key Lab of ASIC & System, Fudan University 48


环路内后处理
• 在图像重建后,通常会出现次生效应,对图像质量产生负面影响
• 方块效应:按块划分及预测会导致块边缘的像素值出现突变
• 振铃效应:DCT等变换在边缘处有波动(Gibbs现象)导致图像质量下降
• 解决方法:去方块滤波与SAO(样点自适应补偿)
• 去方块滤波可消除方块效应与振铃效应,但需区分真实边界与虚假边界
• SAO是H.265提出的新技术,目的是修正块边缘的像素分布,从而改善编
码效果
• 去方块滤波的作用范围是一整帧,而SAO可对单个CTU进行补偿,对图
像质量的改善明显

2019/10/10 State Key Lab of ASIC & System, Fudan University 49


去方块滤波(Deblocking Filter)效果演示

2019/10/10 State Key Lab of ASIC & System, Fudan University 50


SAO效果演示

2019/10/10 State Key Lab of ASIC & System, Fudan University 51


码流打包与解包
• 实际的视频码流需要包含视频基本信息和视频内容
• 部分信息非常重要,必须正确传输以保证正常解码
• 部分信息可以丢弃,不影响其它帧的正常解码
• H.264和H.265可以使用NAL(Network Abstraction Layer)封装码流
• 封装后的码流可以按包传输,在协议层面提供QoS保障

2019/10/10 State Key Lab of ASIC & System, Fudan University 52


视频编解码技术的
发展方向与研究热点

2019/10/10 State Key Lab of ASIC & System, Fudan University 53


视频编解码技术的硬件实现
• 实际是否需要硬件编解码器?
• 低端设备(如单片机):最多支持图像编解码
• 高端设备(如PC):可以有,但没必要(软编码可满足直播等需求)
• “不上不下”的设备:纯软件性能不足,需要硬件模块助力
• 摄像头/行车记录仪/投影仪/…
• 相关硬件成本不到百元
• 硬件编解码器的使用范围以嵌入式设备为主
• 一般认为硬件平台是ARM Cortex-A系列(或同等级CPU),相应的总线
标准是AMBA(包括AXI/AHB和APB)
• 桌面平台的硬件编解码器则以完整支持高清格式为主要卖点

2019/10/10 State Key Lab of ASIC & System, Fudan University 54


视频编解码技术对低延迟的优化
• 网络直播等应用对延迟非常敏感,而编解码带来的延迟相当可观
• 延迟的重点在于并行处理,在单个编解码器使用的资源相对固定
的情况下,需要尽量缩减长依赖带来的必要延迟
• H.264支持Slice并行,H.265新增Tile并行,通过切断依赖的方式允许多个
图像单元之间并行处理
• 对帧级别的参考关系进行解析,对可同步编解码的帧并行处理
• 另外,编解码器的处理环路也需要优化,在视频质量和编码效率
之间进行取舍
• 使用流水线切割编解码处理过程,提高硬件使用率
• 对特定应用寻找最为合适的编解码标准

2019/10/10 State Key Lab of ASIC & System, Fudan University 55


视频编解码技术对屏幕内容的支持
• 相对于自然内容,屏幕内容的压缩具有特殊性
• 屏幕内容有大量硬边缘,基于变换的方法可能会导致边缘质量变差
• 屏幕内容有大量重复部分,如文字、图标等
• 屏幕内容使用的色彩较为单一
• H.265支持SCC(Screen Content Coding),可以优化编码性能
• 对于硬边缘,可以跳过变换,直接编码残差以避免边缘质量下降
• 对于重复部分,可以使用类似于帧间编码的技术,在帧内寻找参考像素
• 对于色彩单一的情况,可以使用调色板(palette)创建颜色索引,节省编码
像素的空间

2019/10/10 State Key Lab of ASIC & System, Fudan University 56


结语

2019/10/10 State Key Lab of ASIC & System, Fudan University 57


结语
• 视频编解码技术是众多应用的核心部分
• 视频编解码技术的本质是消除视频本身的冗余,并在人眼不敏感
的部分适当降低质量以换取更高的压缩比
• 视频编解码标准包含了多种编码工具,目的是在视频质量和压缩
效率上取得平衡
• 当前主流的视频编解码标准是H.26x、VPx和AV1
• 未来的视频编解码技术需要结合实际需求进行开发
• 视频编解码的硬件设计仍是重要课题

2019/10/10 State Key Lab of ASIC & System, Fudan University 58


参考资料
• Digital Video Introduction
• GitHub资源,包括文档和相关测试程序
• 建议在本地下载并尝试运行,体验视频编解码技术的魅力
• H.264 Specification
• H.265 Specification
• AV1 Specification

2019/10/10 State Key Lab of ASIC & System, Fudan University 59


Thanks for listening!

2019/10/10 State Key Lab of ASIC & System, Fudan University 60

You might also like