H264 编码标准
H.264编码标准,也被称作MPEG-4 AVC(Advanced Video Coding),是一种被广泛使用的数字视频压缩标准,由国际电信联盟(ITU-T)和国际标准化组织(ISO)共同开发。这个标准旨在提供比以往视频编解码技术更高的数据压缩率,同时保持或提升视频质量。
H.264的主要特点包括:
-
高压缩率:H.264能够在保持高质量的视频输出的同时,显著减少所需的数据量。
-
多种编解码工具:包括帧内预测、帧间预测、变换编码、量化和熵编码等。
-
灵活性:支持多种分辨率和帧率,适用于不同的网络条件和应用场景。
-
网络友好性:设计时考虑了网络传输,具有良好的网络亲和性。
-
分层结构:H.264的码流结构分为视频编码层(VCL)和网络抽象层(NAL),其中VCL负责视频内容的核心压缩,NAL负责数据的封装和传输。
-
错误恢复机制:提供了解决网络传输中丢包等问题的工具。
-
可扩展性:通过使用不同的配置文件和级别,H.264可以适应不同的应用需求。
-
广泛应用:适用于视频会议、流媒体、数字电视、视频点播等多种应用。
-
多视图视频编码(MVC):H.264的一个扩展,支持3D视频编码。
-
约束基线配置文件:专为资源受限的环境设计,如移动设备。
H.264的应用:
- 视频流媒体服务:如YouTube、Netflix等。
- 视频监控系统:提供高质量的实时视频传输。
- 数字电视和广播:包括卫星电视和有线电视。
- 视频会议系统:支持高质量的视频通信。
- 移动设备:用于录制和播放视频。
H.264的局限性:
- 尽管H.264是一个强大的标准,但它也有一些局限性,特别是在处理高分辨率视频时。随着4K和8K视频的普及,H.264的后继标准HEVC(H.265)被开发出来,以提供更高的压缩效率
H264编码标准框架
H264编码标准中常见术语
术语 | 解释 |
---|---|
帧frame 和 场field | 一帧包含一个亮度矩阵采样点和两个对应的色度矩阵采样点,一帧包含两个场,即顶场top field 和底场 bottom field |
条带组 slice group | 图像中宏块或宏块对的子集 |
条带slice | 特定条带组内部按照光栅扫描顺序排列的整数个宏块或宏块对 |
宏块MB,macroblock | 一个16x16的亮度采样点和相应的两个色度采样点 |
I帧/P帧/B帧 | 编码帧类型,I帧帧内参考,P帧单向参考,B帧双向参考 |
比特流bitstream | 码流,表示编码图像及其相关数据 |
语法元素syntax element | 比特流中表示数据的元素 |
图像picture | 场或帧的通称 |
图像序号POC,Picture Order Count | 一个变量,随着图像位置在输出顺序上的递增具有非递减的值,对解码非常有用 |
AC/DC系数 | DC为 频率索引均为0的变换系数,即一个系数矩阵中坐标为(0, 0)处的系数,其余都为AC系数 |
编码图像缓存区CPB,Coded Picture Buffer | 保存编码图像队列缓存区 |
解码图像缓存区DPB,Decoded Picture Buffer | 保存解码图像的队列缓存区 |
List0/List1 | List0为前向参考帧列表,List1为后向参考帧列表 |
跳过的宏块skiped marcroblock | 宏块类型,表明宏块除了以“跳过”方式解码外没有任何数据被编码的宏块 |
宏块位置 | 宏块在图像中的二维位置,以(x,y)表示,图像中左上角位置的宏块,其位置(x,y)等于(0, 0) |
运动估计 | 运动估计是视频编码中的一项关键技术,特别是在基于块的混合编码框架中,如H.264/AVC标准。它利用视频序列中连续帧之间的时间冗余来进行压缩 |
运动矢量MV | 是一个二维向量,表示在连续两帧中,某个像素块从一帧移动到另一帧的位置变化 |
变换 | 从像素域转到频域 |
量化 | 一种减少数据量的重要技术,它通过减少表示图像或视频帧的数据的精度来实现压缩 |
CAVLC | 熵编码的一种,基于上下文的自适应可变长编码 |
CABAC | 熵编码的一种,基于上下文的自适应二进制算术编码 |
RDO,Rate Distortion Optimization | 率失真优化 |
FMO,flexible macroblock ordering | 灵活宏块重排 |
网络抽象层,NAL,Network Abstraction Layer | 一个语法结构,包含编码后续数据的类型指示和所包含的字节数,数据以RBSP形式出现 |
原始字节序列载荷,RBSP,Raw Byte Sequence Payload | 语法结构,包含整个封装于NAL单元中的字节 |
数据比特串,SODB,String of Data Bit | 表示语法元素的若干比特位的序列 |
图像参数集,PPS,picture parameter set | 语法结构,包含应用于0个或多个编码图像的语法元素 |
序列参数集,SPS,sequence parameter set | 语法结构,包含应用与0个或多个完整编码视频序列的语法元素 |
码率控制 | 编码过程中码率控制方法 |
码率 | 编码过程中每秒产生的比特数 |
帧率fps | 每秒的图像数量 |
GOP,Group of Pictures | 是视频流中一段连续的帧的集合,这些帧可以独立于视频流的其他部分进行解码 |
zigzag扫描 | 在DCT之后,为了进一步压缩数据,变换后的系数通常会按照特定的模式重新排列,这种模式就是所谓的“zigzag扫描”或“zigzag排列”。Zigzag扫描的基本思想是将DCT系数按照从低频到高频的顺序重新组织,从而使得人类视觉系统不敏感的高频系数集中在一起,便于后续的量化和熵编码。 |
亚像素,Sub-pixel | 指小于一个像素单位的精度。在H.264/AVC等视频压缩标准中,亚像素技术用于提高运动估计和补偿的精度,从而提高编码效率和视频质量 |