1、概述
涂鸦IPC,通常主码流为H.265,子码流为H.264。本文主要介绍H.264和H.265文件格式。
Code: Select all
H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC),在1998年起草,于2003年3月正式发布。
H.265是ITU-T VCEG继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。H.265的推出时间是2013年2月。标准全称为高效视频编码HEVC(High Efficiency Video Coding)。
H264的压缩比大概达到300400:1。同样的画质和同样的码率,H.265比H2.64 占用的存储空间要少理论50%;
2、H.264
在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。
2.1 VLC
VCL 数据即编码处理的输出,它表示被压缩编码后的视频数据序列。在 VCL 数据传输或存储之前,这些编码的 VCL 数据,先被映射或封装进 NAL 单元中。如上图。
2.2 NALU和NAL
每一帧就是一个NAL单元(NALU)。
NALU 通常由 3 部分组成:
标识码+NALU Header+有效载荷。
标识码:标识NULU的开始,必须是“0x00000001”或“0x000001”。
NALU Header:NALU类型(5bit)、重要性指示位(2bit)、禁止位(1bit)。
第 0 位禁⽌位,值为 1 表示语法出错 ;
第 1,2 位为参考级别;
低 5 位为 NALU Type;
Code: Select all
NAL单元结构体如下:
Code: Select all
NALU Type 对照表:
2.3 SPS,PPS,I帧,P帧
SPS (Sequence Parameter Set)序列参数集,作用于一-串连续的视频图像。 如seq_ parameter_ set_ id、帧数及POC(picture order count)的约束、参考帧数目、解码图像尺寸和帧场编码模式选择标识等。
Code: Select all
PPS (Picture Parameter Set)图像参数集,作用于视频序列中的图像。如pic_ parameter_ set_ id、 熵编码模式选择标识、片组数目、初始量化参数和去方块滤波系数调整标识等。SPS和PPS是在IDR帧之前成对出现的。
Code: Select all
IDR,IDR帧属于I帧。视频中最关键的一些帧。
Code: Select all
P 帧,视频参考帧。