码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介


    =================================================================

    音视频入门基础:H.264专题系列文章:

    音视频入门基础:H.264专题(1)——H.264官方文档下载

    音视频入门基础:H.264专题(2)——使用FFmpeg命令生成H.264裸流文件

    音视频入门基础:H.264专题(3)——EBSP, RBSP和SODB

    音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介

    音视频入门基础:H.264专题(5)——FFmpeg源码中 解析NALU Header的函数分析

    音视频入门基础:H.264专题(6)——FFmpeg源码:从H.264码流中提取NALU Header、EBSP、RBSP和SODB

    音视频入门基础:H.264专题(7)——FFmpeg源码中 指数哥伦布编码的解码实现

    音视频入门基础:H.264专题(8)——H.264官方文档的描述符

    =================================================================

    一、引言

    AnnexB 格式的H.264码流的NALU去掉0x000001或0x00000001的起始码后,其第一个字节为占用 1 位的forbidden_zero_bit  + 占用 2 位 的nal_ref_idc  + 占用 5 位的nal_unit_type。它们加起来刚好8位,也就是1个字节,一般被我们称为NALU Header(NAL Unit Header):

    二、forbidden_zero_bit

    根据《音视频入门基础:H.264专题(1)——H.264官方文档下载》下载的H.264官方文档《T-REC-H.264-202108-I!!PDF-E.pdf》,第63页:

    forbidden_zero_bit 的值应为0。

    根据第308页:
    如果forbidden_zero_bit 的值为1,说明比特流语法出错了,字节对齐可能已经丢失,此时可以丢弃所有的比特流数据,直到之后检测到字节对齐。

    三、nal_ref_idc 

    nal_ref_idc的取值范围为0到3,值越高表示它对应的NALU越重要。当解码器在解码处理不过来的时候,可以丢掉nal_ref_idc为0的NALU。一般来讲,如果解码时某个NALU被其它Slice所依赖,说明该NALU比较重要。如果该NALU不需要被其它Slice依赖,说明该NALU不重要。

    根据H.264官方文档《T-REC-H.264-202108-I!!PDF-E.pdf》,第11页:

    非参考图片就是:nal_ref_idc为0的图片,它不会被其它图片用作帧内预测。

    根据《T-REC-H.264-202108-I!!PDF-E.pdf》,第13页:

    参考图片就是:nal_ref_idc不为0的图片。解码过程中被后续的图片用于帧内预测。
     

    根据第64页:

    Sequence parameter set(sps)、 Picture parameter set(pps)、 Coded slice of an IDR picture(IDR SLICE)的nal_ref_idc不能为0(一般值是3)。 Supplemental enhancement information (补充增强信息SEI)、 Access unit delimiter(分隔符)、 End of sequence(序列结束符)、 End of stream(码流结束符)、 Filler data(填充数据)的nal_ref_idc应为0。
    参考:《 设置encode PPS和SPS》
    《 nal_ref_idc value for the last frame in GOP when B frame is there for x264 encoding》
    《 Breif Description of nal_ref_idc Value in H.246 NALU》

     

    四、nal_unit_type

    nal_unit_type表示NALU 的类型,见《T-REC-H.264-202108-I!!PDF-E.pdf》,第65页:

  • 相关阅读:
    ppt 作图 如何生成eps格式
    cocos:ccpDistance函数的简单运用以及实现眼球随着手指在眼眶中转动的功能
    4G工业路由器高效数据传输助力光伏发电站管理
    TMS320F28374S之DAC
    PanNet: A deep network architecture for pan-sharpening(ICCV 2017)
    Shell:判断当前用户
    第五章 Ambari二次开发之自定义Flink服务概述
    CMU15445 (Fall 2019) 之 Project#1 - Buffer Pool 详解
    Rust的面向对象特性
    计算机毕业设计SSM电影网站系统设计【附源码数据库】
  • 原文地址:https://blog.csdn.net/u014552102/article/details/139950422
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号