当前位置: 首页 > news >正文

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

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

音视频入门基础: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官方文档的描述符

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

 

H.264官方文档《T-REC-H.264-202108-I!!PDF-E.pdf》第42页,对NALU的描述符进行了说明:

描述符指定了NALU中每个语法元素的解析过程,也就是NALU中每个属性使用什么编码方式,占用多少空间。

其中:

f(n):n位固定模式比特串(由左至右),左位在先。

u(n):n位无符号整数。

FFmpeg源码中通过get_bits1和get_bits函数读取f(n)和u(n)类型的属性。关于这两个函数的用法可以参考《FFmpeg中位操作相关的源码:GetBitContext结构体,init_get_bits函数、get_bits1函数和get_bits函数分析》。


ue(v):无符号指数哥伦布编码。

FFmpeg源码中通过get_ue_golomb、get_ue_golomb_long、get_ue_golomb_31等函数实现 对无符号指数哥伦布编码的解码。关于这两个函数的用法可以参考《音视频入门基础:H.264专题(7)——FFmpeg源码中 指数哥伦布编码的解码实现》


se(v):有符号指数哥伦布编码。FFmpeg源码中通过get_se_golomb和get_se_golomb_long等函数实现对 有符号指数哥伦布编码的解码。

描述符一般会在描述码流的结构的表格的第三列显示:

相关文章:

  • 安装 Mamba、Conv1d 时报错 “bare_metal_version“
  • MySQL数据恢复(适用于误删后马上发现)
  • 软件测试面试题:Redis的五种数据结构,以及使用的场景是什么?
  • 【操作系统期末速成】 EP01 | 学习笔记(基于五道口一只鸭)
  • 【leetcode78-81贪心算法、技巧96-100】
  • Rust 跨平台-Android 和鸿蒙 OS
  • 分布式计算、异构计算与算力共享
  • Jenkins 下使用 Node 和 Npm(借助 nvm-wrapper 插件)构建前端程序
  • idea中使用springboot进行开发时遇到的工程结构问题汇总
  • 论文解读——掌纹生成网络 RPG-Palm
  • STM32第十二课:ADC检测烟雾浓度(MQ2)
  • 4-数据提取方法2(xpath和lxml)(6节课学会爬虫)
  • 2024最全前端面试系列(计算机网络)(非科班出身最薄弱的环节)
  • 系统架构设计师教程(清华第2版)<第1章 绪论>解读
  • 一个启动脚本例子
  • 【mysql】环境安装、服务启动、密码设置
  • 【前端学习】-粗谈选择器
  • angular组件开发
  • chrome扩展demo1-小时钟
  • Java 内存分配及垃圾回收机制初探
  • JavaScript服务器推送技术之 WebSocket
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • k8s如何管理Pod
  • opencv python Meanshift 和 Camshift
  • Python打包系统简单入门
  • Python爬虫--- 1.3 BS4库的解析器
  • React-flux杂记
  • Terraform入门 - 1. 安装Terraform
  • 产品三维模型在线预览
  • 彻底搞懂浏览器Event-loop
  • 入门到放弃node系列之Hello Word篇
  • 首页查询功能的一次实现过程
  • 一些关于Rust在2019年的思考
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​Python 3 新特性:类型注解
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (4) PIVOT 和 UPIVOT 的使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (强烈推荐)移动端音视频从零到上手(下)
  • (转) ns2/nam与nam实现相关的文件
  • (转)创业家杂志:UCWEB天使第一步
  • .Net IE10 _doPostBack 未定义
  • .net 流——流的类型体系简单介绍
  • .NET 药厂业务系统 CPU爆高分析
  • .Net6 Api Swagger配置
  • .Net程序帮助文档制作
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • /etc/fstab和/etc/mtab的区别
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • [ 转载 ] SharePoint 资料