六、NAL Unit解析
参考标准文档:7.3和7.4节
一、NAL Unit结构
- NAL Unit:
- NAL Unit = NAL Header + NAL Body
- NAL Header:一个字节,包括:
- forbidden_zero_bit:规定必须为0禁止位,1 bit;
- nal_ref_idc:第2和3位,主要表示NAL的优先级。当该值为正时,表示当前NAL Unit中包含了SPS、PPS和作为参考帧的Slice等重要数据,2bit
- nal_unit_type:5bit,表示NAL Unit的类型,包括VCL层和非VCL层的多种数据类型。常见的nal_unit_type取值有:7表示SPS,8表示PPS,5表示IDR帧,1表示非IDR帧等
二、NAL Unit的有效负载数据及其封装
在NAL Header之后,NAL Unit的其余部分,即NAL Body包含了有效负载数据的封装。从NAL Body到实际的语法元素的码流自外向内共3层封装:
第一层:EBSP——扩展字节序列载荷
EBSP全称为Extended Byte String Payload,等同于NAL Body的数据本身。在EBSP中包含了一个特殊的字节0x03,表示防止竞争校验字节:
- emulation_prevention_three_byte:设置该值的目的是为了防止NAL Body内部出现于NAL Unit起始码0x 00 00 01或0x 00 00 00 01冲突。
- 当内部的连续4字节数据出现了下列情况时:
0x 00 00 00
0x 00 00 01
0x 00 00 02
0x 00 00 03 - 在两个0字节之后会插入值为3的一个字节,形成下列情况:
0x 00 00 03 00
0x 00 00 03 01
0x 00 00 03 02
0x 00 00 03 03 - 在进行解析时需要将附加的03字节去掉,得到RBSP数据。
第二层:RBSP——原始字节序列载荷
- RBSP全称为Raw Byte Sequence Payload
- 相当于NAL Body去掉03字节之后的数据,是对原始的语法元素码流进一步处理后产生的数据
- 相比于原始的语法元素码流,RBSP在末尾添加了rbsp_trailing_bits()部分,其主要目的是字节对齐
- 每个rbsp_trailing_bits()包括一个1bit和若干个0bit,0bit的个数不定,以实现字节的对齐。
例如: xxx 11010000 //后面的10000是为了对齐,如果不对齐会导致后面所有的都存在对齐问题(编码之后的数据并不是字节对齐的)
第三层:SODB——数据字节流
- SODB全称为String Of Data Bits
- 表示H.264的语法元素编码完成后的实际的原始二进制码流。SODB通常不能保证字节对齐,所以需要逐层向上封装
六、NAL Unit解析相关推荐
- NAL Unit解析
NAL Unit结构解析 NAL Unit包含NAL Header 和 NAL Body NAL Header: 一个字节,包括: forbidden_zero_bit: 0禁止位,1bit: nal ...
- H.264——NAL Unit结构分析
目录 NAL Unit格式 NAL Header nal_unit_type NAL Body Extended Byte String Payload RBSP和SODB **问:RBSP是不是等同 ...
- H264 NAL 单元解析
1.NAL全称Network Abstract Layer, 即网络抽象层. 在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面( ...
- Jmeter Web 性能测试入门 (六):Jmeter 解析 response 并传递 value
解析response中的内容,并把获取到的value传递到后续的request中,常用的方法就是在想要解析response的request上添加后置处理器 本章介绍两种常用的组件 BeanShell ...
- 第六章 PX4-Sensors解析
版权声明:本文为博主原创文章,未经博主允许不得转载. 第六章 PX4-Sensors解析 这一章节并不难,也很容易理解,但是这一章节有几个函数需要我们去理解一下,所以这里我们这里写一章来说明一下 ...
- C语言第六次作业指针,c语言第六次作业解析
<c语言第六次作业解析>由会员分享,可在线阅读,更多相关<c语言第六次作业解析(36页珍藏版)>请在人人文库网上搜索. 1.c 语言第六次作业解析第六次作业:指针(以下题目如无 ...
- Android[中级教程]第六章 XML解析之SAX解析器
Android[中级教程]第六章 XML解析之SAX解析器 分类: Android中级2011-10-06 01:52 125人阅读 评论(1) 收藏 举报 接上一章,这一章我们就来学习SAX解析器, ...
- H.264 NAL层解析(0x00000001,编码,打包,NALU)
文章参考自:https://blog.csdn.net/wudebao5220150/article/details/13810671 1.引言 H.264的主要目标: 1.高的视频压缩比 2.良好的 ...
- hashmap中用红黑树不用其他树_HashMap面试专题:常问六题深入解析
引言 其实我很早以前就想写一篇关于HashMap的面试专题.对于JAVA求职者来说,HashMap可谓是集合类的重中之重,甚至你在复习的时候,其他集合类都不用看,专攻HashMap即可. 然而,鉴于网 ...
最新文章
- [AHOI2005]约数研究
- 中国700万程序员不够用怎么办?我们去问了北大谢涛,顶会ASE最有影响力论文奖首批华人得主...
- linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录
- mac homebrew
- java 从未导入_Java 8的10个您从未听说过的功能
- [OpenJudge 3066]随机序列
- C# 使用SqlDataReader方式使用数据做查询的例子
- 中国电信天翼网关路由器后台登录useradmin用户忘记密码的解决方法默认密码管理员密码工作人员密码
- 微信公众号禁止分享功能
- GEEer成长日记二:Modis_NDVI逐日和逐月时间序列分析
- 竖流式沉淀池三角堰计算_一种辐流式沉淀池的双侧堰出水构造的制作方法
- 华为HCIE证书含金量
- [zt]给你的Mp4大换血,精选Touch里3年收集的900多首歌,经典不忍去的最新近流行的,与你共享~~...
- 【征稿】第三届电子、信息与计算技术前沿国际会议(ICFEICT 2023)
- 这是我见过最牛逼的Shell脚本!
- 免费SVN、Git项目托管主机及网站介绍
- android人脸识别——HowOld测测你的年龄和性别
- c语言题库及答案免费下载,C语言题库(含答案)
- 武汉计算机考研好的学校排名,武汉排名前十的考研学校
- 关于学习JavaScript!
热门文章
- RFC1662_PPP in HDLC-like Framing_HDLC协议
- 仿写百度(百度一下 你就知道)搜索页面
- 4、web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
- STM32CubeMX开发教程(1)— 安装教程
- ld-linux.so查找共享库的顺序
- Very fast template matching(非常快的模板匹配)
- 如何用人工智能破解罗一笑事件的“道德绑架”困局?
- Chrome浏览器图片不显示怎么办 解决方法分享
- mysql 整理碎片_mysql 如何去整理表数据,碎片整理
- PTA--文件--函数题--写文章--C语言