h264编码笔记(nal_ref_idc)
一、nal_ref_idc定义
X264关于nal_ref_idc的枚举定义:
nal_ref_idc不等于0时,规定NAL单元的内容包含一个序列参数集,或一个图像参数集,或一个参考图像条带,或一个参考图像的条带数据分割。
如果一个包含一个条带或条带数据分割的NAL 单元的nal_ref_idc等于0时,该条带或条带数据分割是一个非参考图像的一部分。
对于序列参数集或序列参数集扩展或图像参数集的NAL单元,nal_ref_idc不应等于0。当一个特定的图像的一个条带或条带数据分割NAL单元的nal_ref_idc等于0,该图像的所有条带或条带数据划分NAL单元都应该等于0。
IDR NAL单元的nal_ref_idc不应等于0,即nal_unit_type等于5的NAL单元。
所有nal_unit_type等于6、9、10、11或12的NAL单元其nal_ref_idc都应等于0。
当nal_uint_type为1时,nal_ref_idc代表该帧是否被参考,若该帧没有被参考,nal_ref_idc则为0。
在视频传输过程中,对于P帧或者B帧的nal_ref_idc为0的帧,不进行数据恢复时,不会对后续视频有影响。
二、扩展应用
GOP#1第一帧是IDR帧,后面接着连续的三个B帧,再后面连着P帧,再接三个B帧,循环反复。
解码工作顺序:
1、解码I帧;2、解码第一个P帧;3 解码前三个B帧,这3个B帧依赖于 IDR帧和第一个P帧,IDR帧和第一个P帧解码完后,才解码前三个B帧,而B帧没有被任何其他帧参考。
这三个B帧的NAL头里面的nal_ref_idc字段就为0(NAL_PRIORITY_DISPOSABLE)。这三个B帧丢失,不会导致后续的P帧和B帧解析不出来,仅会掉帧。所以在音视频传输时,可以根据实际情况,权衡一下是否需要恢复。
h264编码笔记(nal_ref_idc)相关推荐
- H264编码 封装成MP4格式 视频流 RTP封包
From:http://www.cnblogs.com/ghw-NO1/archive/2012/08/28/2660848.html 一.概述 本文讲述的是对H264编码且封装成MP4格式的视频流进 ...
- 音视频开发系列-H264编码原理
H264简介 来自百度百科的介绍: H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式. H.264是ITU-T以H.26x系列为名称命名的 ...
- H264编码基本原理(一)
H264编码基本原理(一) 一.前言 二.H264相关概念 2.1 序列 2.2 帧类型 2.3 GOP(画面组) 2.4 IDR帧(关键帧) 三.H264压缩方式 3.1 压缩方式说明 四.H264 ...
- 【音视频】H264编码基础
H264编码基础 0x1 基本介绍 视频是由一帧帧图像组成,视频为了不卡顿,一秒钟至少要16帧画面,但是图片内容太大,传输不现实.因此需要对他们编码. 官方文档:http://www.itu.int/ ...
- H264编码原理及NALU介绍
一.简述 流媒体编解码流程大致如图1所示: [流媒体编解码流程 图1] 视频数据编解码层格式包含有:H264,H265,MPEG4等. 本文我们主要对H264编码原理进行整理,并对NALU做简要介绍. ...
- 采集音频和摄像头视频并实时H264编码及AAC编码
0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...
- 采集音频和摄像头视频并实时H264编码及AAC编码[转]
0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...
- ffmpeg的H264编码 视频逐渐模糊
万能的互联网,又一次在临危之时解决了我的问题 最近在看ffmpeg里的H264编码,然后试着去做了一下.但是目前发现一个问题,就是编码写入的.264文件,用播放器(VLC,暴风都试过)播放后,发现编码 ...
- 字符编码笔记:ASCII,Unicode和UTF-8(转载)
字符编码笔记:ASCII,Unicode和UTF-8 作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个 ...
最新文章
- 程序员2004下载地址
- ps怎么制作流体_PS教程:制作渐变流体效果海报
- Machine Learning week 9 quiz: Recommender Systems
- Java中如何读写cookie (二)
- Medoo 开源项目发布,超轻量级的PHP SQL数据库框架
- C语言中 \r, \n, \b
- BugkuCTF-MISC题乌云邀请码
- SpringBoot之创建SpringBoot项目(idea开发)
- 大众仪表板上为什么30km,50km处要标红?
- linux下repair filesystem模式修复方法
- python中__init__()、__new__()、__call__()、__del__()几个魔法方法的用法
- 看完就能学会FTP和DHCP✌️
- 安装Google play 服务等四件套
- 抓包工具神器,fiddler全解
- 你身边长期不上班的人,靠什么活着?
- 华为、字节跳动、蔚来、康师傅、法雷奥、AIG等公司高管变动
- MAYA如何做3D logo
- css层叠样式的使用,CSS层叠样式表——使用CSS样式的方法
- 【Zigbee精华教程01】Zigbee无线组网技术入门建议与学习路线
- HTTP中的常用方法