searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

H264 nalu解析

2024-11-28 09:53:28
81
0

SPS:序列参数集,SPS中保存了一组编码视频序列(Coded video sequence)的全局参数。
PPS:图像参数集,对应的是一个序列中某一副图像或者某几副图像的参数。
I帧:帧内编码,可独立解码生成完整的图片
P帧:前向预测编码帧,需要参考其前⾯的⼀个I 或者B 来⽣成⼀张完整的图⽚。
B帧: 双向预测内插编码帧,则要参考其前⼀个I或者P帧及其后⾯的⼀个P帧来⽣成⼀张完整的图⽚。

IDR帧(即时转码刷新):一个系列的第一个图像,一般都是I帧,但I帧不一定都是IDR帧、IDR之后的图像永远不会使用IDR之前的图像来解码

GOP:两个I帧的距离

Reference(参考周期):两个P帧的距离

 

注:

发I帧之前至少发一次sps和pps

 

Nalu:network abstract layer unit,H.264原始码流(裸流)是由⼀个接⼀个NALU组成,它的功能分为两层,VCL(视频编码层)和 NAL(⽹络提取层)

VCL:包括核⼼压缩引擎和块,宏块和⽚的语法级别定义,设计⽬标是尽可能地独⽴于⽹络进⾏⾼效的编码。
NAL:负责将VCL产⽣的⽐特字符串适配到各种各样的⽹络和多元环境中,覆盖了所有⽚级以上的语法级别。

在VCL进⾏数据传输或存储之前,这些编码的VCL数据,被映射或封装进NAL单元。下面是一个NALU的组成:

 ⼀个NALU = ⼀组对应于视频编码的NALU头部信息 + 
            ⼀个原始字节序列负荷(RBSP, Raw Byte Sequence Payload). 

 

NALU解析:

H.264标准指出,当数据流是储存在介质上时,在每个NALU 前添加起始码:0x000001 或 0x00000001,⽤来指示⼀个NALU 的起始和终⽌位置:

在这样的机制下,在码流中检测起始码,作为⼀个NALU得起始标识,当检测到下⼀个起始码时,当前NALU结束。
3字节的0x000001只有⼀种场合下使⽤,就是⼀个完整的帧被编为多个slice(⽚)的时候,包含这些slice的NALU 使⽤3字节起始码。其余场合都是4字节0x00000001的。

type &0x1f==0x7是sps

type &0x1f==0x8是pps

0条评论
0 / 1000
ling
5文章数
0粉丝数
ling
5 文章 | 0 粉丝
ling
5文章数
0粉丝数
ling
5 文章 | 0 粉丝

H264 nalu解析

2024-11-28 09:53:28
81
0

SPS:序列参数集,SPS中保存了一组编码视频序列(Coded video sequence)的全局参数。
PPS:图像参数集,对应的是一个序列中某一副图像或者某几副图像的参数。
I帧:帧内编码,可独立解码生成完整的图片
P帧:前向预测编码帧,需要参考其前⾯的⼀个I 或者B 来⽣成⼀张完整的图⽚。
B帧: 双向预测内插编码帧,则要参考其前⼀个I或者P帧及其后⾯的⼀个P帧来⽣成⼀张完整的图⽚。

IDR帧(即时转码刷新):一个系列的第一个图像,一般都是I帧,但I帧不一定都是IDR帧、IDR之后的图像永远不会使用IDR之前的图像来解码

GOP:两个I帧的距离

Reference(参考周期):两个P帧的距离

 

注:

发I帧之前至少发一次sps和pps

 

Nalu:network abstract layer unit,H.264原始码流(裸流)是由⼀个接⼀个NALU组成,它的功能分为两层,VCL(视频编码层)和 NAL(⽹络提取层)

VCL:包括核⼼压缩引擎和块,宏块和⽚的语法级别定义,设计⽬标是尽可能地独⽴于⽹络进⾏⾼效的编码。
NAL:负责将VCL产⽣的⽐特字符串适配到各种各样的⽹络和多元环境中,覆盖了所有⽚级以上的语法级别。

在VCL进⾏数据传输或存储之前,这些编码的VCL数据,被映射或封装进NAL单元。下面是一个NALU的组成:

 ⼀个NALU = ⼀组对应于视频编码的NALU头部信息 + 
            ⼀个原始字节序列负荷(RBSP, Raw Byte Sequence Payload). 

 

NALU解析:

H.264标准指出,当数据流是储存在介质上时,在每个NALU 前添加起始码:0x000001 或 0x00000001,⽤来指示⼀个NALU 的起始和终⽌位置:

在这样的机制下,在码流中检测起始码,作为⼀个NALU得起始标识,当检测到下⼀个起始码时,当前NALU结束。
3字节的0x000001只有⼀种场合下使⽤,就是⼀个完整的帧被编为多个slice(⽚)的时候,包含这些slice的NALU 使⽤3字节起始码。其余场合都是4字节0x00000001的。

type &0x1f==0x7是sps

type &0x1f==0x8是pps

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0