一 NALU头部解析



F: 必须为0,为1表示语法错误。整包将被丢弃

NalType:nalu包的类型,其中VCL NAL和non-VCL NAL各有32类。0-31是vcl nal单元;32-63,是非vcl nal单元。VCL是指携带编码数据的数据流,而non-VCL则是控制数据流.

LayerId:表示NAL所在的Access unit所属的层,该字段是为了HEVC的继续扩展设置。也就是目前都是0,以后的扩展可能会用到。

TID:

此字段指定nal单元加1的时间标识符。时间id的值等于tid-1,tid的值为0是非法的,以确保nal单元报头中至少只有一个比特等于1,以便能够在nal单元头和nal单元有效负载数据中独立考虑启动代码仿真。

当head为40 01 ====》0100 0000 0000 0001时,解析如下

F 0
NalType 100 0000 32/VPS
LayerId 0 0000 0 0
TID 001 1

二 NALU type 解析nalu type的计算方式

在每一帧的起始码(00 00 00 01)之后取到nalu头部code 两个字节

用该公式计算nalutype :int type = (code & 0x7E)>>1;Nalu type

val nal



non-vcl nalu



常用nalu type

语义为视频参数集 VPS

HEVC_NAL_VPS 32

语义为序列参数集 SPS

HEVC_NAL_SPS 33

语义为图像参数集 PPS

HEVC_NAL_PPS 34

语义为补充增强信息 SEI

HEVC_NAL_SEI_PREFIX 39HEVC_NAL_SEI_SUFFIX 40

视频帧数据流IDR ------ 下列均为视频帧,若要区分I B P 需要进一步分析

HEVC_NAL_TRAIL_N 0

HEVC_NAL_TRAIL_R 1

HEVC_NAL_TSA_N 2

HEVC_NAL_TSA_R 3

HEVC_NAL_STSA_N 4

HEVC_NAL_STSA_R 5

HEVC_NAL_BLA_W_LP 16

HEVC_NAL_BLA_W_RADL 17

HEVC_NAL_BLA_N_LP 18

HEVC_NAL_IDR_W_RADL 19

HEVC_NAL_IDR_N_LP 20

HEVC_NAL_CRA_NUT 21

HEVC_NAL_RADL_N 6

HEVC_NAL_RADL_R 7

HEVC_NAL_RASL_N 8

HEVC_NAL_RASL_R 9

SPS PPS和VPS的关系

三 参考代码

h265nalu头部的解析可参考ffmpeg代码

hevc_parser.c的parse_nal_units函数

H265Nalu头部解析的更多相关文章

  1. 重大漏洞!PHP multipart/form-data头部解析远程拒绝服务漏洞

    "有些人看不懂,简单比喻来说吧:目前刚出的任何安全防护都不会拦,网站类专属漏洞 畸形数据包,2KB随机数据包,2M网速打死各种网站,cdn通挂!"PHP multipart/for ...

  2. H264Nalu头部解析

    一 NALU头部解析 F: forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0. NRI: nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,如0 ...

  3. 音频文件解析(一):WAV格式文件头部解析

    WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源. 文 ...

  4. [VB.NET][C#]WAV格式文件头部解析

    简介 WAV 为微软开发的一种声音文件格式,它符合 RIFF(Resource Interchange File Format)文件规范,用于保存 Windows 平台的音频信息资源. 第一节 文件头 ...

  5. http 请求头部解析

    作者:知乎用户链接:https://www.zhihu.com/question/42696895/answer/109035792来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  6. Python - 头部解析

    背景 写 python 的时候,基本都要加两个头部注释,这到底有啥用呢? #!usr/bin/env python # -*- coding:utf-8 _*- print("hello-w ...

  7. HTTP头部解析

    当我们打开一个网页时,浏览器要向网站服务器发送一个HTTP请求头,然后网站服务器根据HTTP请求头的内容生成当次请求的内容发送给浏览器.你明白HTTP请求头的具体含意吗?下面一条条的为你详细解读,先看 ...

  8. PHP模拟发送POST请求之一、HTTP协议头部解析

    WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦.接下来的几篇博文中,我 ...

  9. JPEG头部解析

    6.3 JPEG格式       6.3.1简介  微处理机中的存放顺序有正序(big endian)和逆序(little endian)之分.正序存放就是高字节存放在前低字节在后,而逆序存放就是低字 ...

随机推荐

  1. 2020-2021-1 20209313 《Linux内核原理与分析》第一周作业

    遇到的问题:安装ubuntu遇到问题 描述:在本机上虚拟机的安装包点开就闪退,无法安装VMware 解决方案: 清理VMware相关注册表,更改用户名为英文,查阅相关资料,重装系统. 更换linux安 ...

  2. hasmap hashtable

    hashMap和hashtable方面的知识点吧: 1. 关于HashMap的一些说法: a) HashMap实际上是一个"链表散列"的数据结构,即数组和链表的结合体.HashMa ...

  3. Graph-GCN

    前言 在大型图中,节点的低维向量embedding被证明了作为各种各样的预测和图分析任务的特征输入是非常有用的.顶点embedding最基本的基本思想是使用降维技术从高维信息中提炼一个顶点的邻居信息, ...

  4. Memcached 的惹祸,.NET 5.0 的背锅

    抱歉,拖到现在才写这篇为 .NET 5.0 洗白的博文(之前的博文),不好意思,又错了,不是洗白,是还 .NET 5.0 的清白. 抱歉,就在今天上午写这篇博客的过程中,由于一个bug被迫在访问高峰发 ...

  5. Go module 本地导包方式

    tip本文只讲关于Go module 本地导包方式,其他请自行查阅 Go module 导包方式,go mod init project-name,会得到一个go.mod文件,此文件是管理依赖的,通常 ...

  6. SP1772 Find The Determinant II

    题意 \(T\) 组数据,每组给定两个整数 \(n,k\),求 \(\det A\),其中 \(A\) 为一个 \(n\times n\) 的矩阵且 \(A_{i,j}=\gcd(i,j)^k\),对 ...

  7. Luogu P3846 [TJOI2007] 可爱的质数/【模板】BSGS

    题意 给定 \(y,z,p\),求最小的正整数 \(x\) 满足 \(y^x\equiv z\bmod p\),保证 \(p\) 是质数. \(\texttt{Data Range:}2\leq y, ...

  8. Java学习的第十五天

    1.今天复习了第四章的内容 重新看了看方法参数问题,final修饰的关键字 2.今天没问题 3.明天学习多态变化

  9. 2020 年TI 杯大学生电子设计竞赛E题总结(放大器非线性失真研究装置)

    2020年TI杯大学生电子设计竞赛E题总结(放大器非线性失真研究装置) 摘要:E题的竞赛内容主要是参赛者自己搭建一个晶体管放大器,能够产生不失真.顶部失真.底部失真.双向失真和交越失真五种波形,并分别 ...

  10. [Luogu P3455] [POI2007]ZAP-Queries (莫比乌斯反演 )

    题面 传送门:洛咕 Solution 这题比这题不懂简单到哪里去了 好吧,我们来颓柿子. 为了防止重名,以下所有柿子中的\(x\)既是题目中的\(d\) 为了方便讨论,以下柿子均假设\(b>=a ...