h264格式分析
h264格式分析
- 一.简介
- 二.h264编码原理
- 1.帧间压缩
- 2.帧内压缩
- 三.编码结构
- 1.IDR帧
- 2.解码顺序
- 四.NALU
- 1.nalu头信息
- 2.annexb模式
一.简介
- h264是一种视频编码标准,又叫Advanced Video Codec,即AVC
二.h264编码原理
1.帧间压缩
通过I、B、P帧实现帧间压缩
- I帧(帧内编码帧),通常是每个 GOP(MPEG 所使⽤的⼀种视频压缩技术)的第⼀个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是⼀个图像经过压缩后的产物,⾃身可以通过视频解压算法解压成⼀张单独的完整的图⽚
- P帧(前向预测编码帧),通过充分将低于图像序列中前⾯已编码帧的时间冗余信息来压缩传输数据量的编码图像。需要参考其前⾯的⼀个I frame 或者P frame来⽣成⼀张完整的图⽚
- B帧(双向预测帧),既考虑与源图像序列前⾯已编码帧,也顾及源图像序列后⾯已编码帧之间的时间冗余信息来压缩传输数据量的编码图像
2.帧内压缩
视频是由单张图片帧组成,而图片帧之间的像素块存在相似性质,所以可以进行相似比较和压缩编码
三.编码结构
h264编码的层级结构从大到小为:序列(gop)、图⽚(pictrue)、⽚(slice)、宏块(macroblock)、⼦块(subblock)
- GOP(图像组)主要⽤作形容⼀个IDR帧到下⼀个IDR帧之间的间隔了多少个帧
- picture(图片)等同于帧,H264将视频分为连续的帧进⾏传输,在连续的帧之间使⽤I帧、P帧和B帧
- 单张图片继续分为片、宏块、子块
1.IDR帧
- ⼀个序列的第⼀个图像叫做 IDR 图像(⽴即刷新图像),IDR图像都是I帧图像,但I帧不一定是IDR帧
- I帧不⽤参考任何帧,但是之后的P帧和B帧是有可能参考这个I帧之前的帧,IDR帧不允许这样
- 核⼼作⽤:为了解码的重同步,当解码器解码到 IDR 图像时,⽴即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始⼀个新的序列。这样,如果前⼀个序列出现重⼤错误,在这⾥可以获得重新同步的机会
2.解码顺序
帧的解码顺序和帧在原始视频中的顺序并不相同
- 解码顺序:DR1 P4 B2 B3 P7 B5 B6 I10 B8 B9
- 原始视频:DR1 B2 B3 P4 B5 B6 P7 B8 B9 I10
四.NALU
- h264原始码流(裸流)是由⼀个接⼀个的NALU组成,一个帧可能有多个NALU表示
- ⼀个原始的H.264 NALU单元通常由 StartCode + NALU Header + NALU Payload 三部分组成,其中 Start Code ⽤于标示这是⼀个NALU 单元的开始,必须是0x00000001或0x000001
- 3字节的0x000001只有⼀种场合下使⽤,就是⼀个完整的帧被编为多个slice(⽚)的时候,包含这些slice的NALU使⽤3字节起始码,其余场合都是4字节0x00000001
1.nalu头信息
nalu header {F 1bitR 2bitT 5bit
}
- F为禁⽌位,forbidden_zero_bit:H.264规范中规定了这⼀位必须为0
- R为重要性指示位,nal_ref_idc:取00~11,取值越⼤,表示当前NAL越重要,需要优先受到保护。如果当前NAL是属于参考帧的⽚,或是序列参数集,或是图像参数集这些重要的单位时,必需⼤于0
- T为负荷数据类型,nal_unit_type:1~12由h264使⽤,24~31由h264以外的应⽤使⽤
- 5表示IDR的slice
- 6表示SEI(辅助增强信息)
- 7表示sps(序列参数集)
- 8表示pps(图像参数集)
2.annexb模式
H264有两种封装格式,很多解码器只⽀持annexb这种模式,因此需要将mp4做转换,在ffmpeg中⽤h264_mp4toannexb_filter可以做转换
- annexb模式,传统模式,有startcode,SPS和PPS是在ES中
- mp4模式,⼀般mp4和mkv都是mp4模式,没有startcode,SPS和PPS以及其它信息,被封装在container中,每⼀个帧前⾯4个字节是这个frame的⻓度
相关文章:
h264格式分析
h264格式分析一.简介二.h264编码原理1.帧间压缩2.帧内压缩三.编码结构1.IDR帧2.解码顺序四.NALU1.nalu头信息2.annexb模式一.简介 h264是一种视频编码标准,又叫Advanced Video Codec,即AVC 二.h264编码原理 1.帧间压缩 通过I、B、P帧实现帧间压缩 I…...
【数据分析师求职面试指南】实战技能部分
文章目录必备技能数据人员如何创造价值完整的指标体系构建数据监控集报表设计设计一份优质的数据分析报告基于互联网大数据的应用A B 测试用户画像完整的数据挖掘项目流程1. 分析问题,明确目标2.模型可行性分析3.选取模型4.选择变量5.特征工程6.建立模型&效果…...
树与二叉树(二叉树的表示,性质,遍历,还原)
基本术语:A(或B)是I的祖先,I是A(或B)的子孙;D是I的双亲,I是D的孩子;节点的孩子个数称为节点的度;树中节点的最大度数称为树的度;度大于0的节点称为…...
mysql 源码学习理解记录--lock_rec_move
记录源码学习笔记,如有错误,还请帮忙指正。 Lock_rec_move 函数使用场景之用于update Update 匹配条件时会用lock_rec_lock先加锁。然后再进行ha_update_row 操作。 在修改时,当修改的字段前后长度不一致时,会导致不能原地修改…...
markdown(.md)常用语法
markdown(.md)常用语法markdown常用语法常用目录标题分割线格式空格换行无序列表有序列表列表嵌套文字引用行内代码代码块字体转义斜体加粗删除线下划线功能链接todo listtypora插入图片并保存在本地包含了一些常用的MD语法和操作,语法不是很…...
千言数据集赛题介绍
赛题题目 通用信息抽取任务评测 将多种不同的信息抽取任务用统一的通用框架进行描述,着重考察相关技术方面在面对新的、未知的信息抽取任务与范式时的适应和迁移能力。 赛题介绍 信息抽取旨在将非结构化文本中的信息进行结构化,是自然语言处理的基础…...
信息技术最全总结(备考教资)
信息技术 备考教资信息技术知识点总结,欢迎收藏!需要xmind和备考书籍的可以评论区留言。 第一部分-学科专业知识 第一章-信息技术基础知识 信息与信息技术概述 信息概述 信息的定义 信息本身不是实体信息是通过文字、数字、图像、图形、声音、视频等方…...
opencv识别车道线(霍夫线变换)
目录1、前言2、霍夫线变换2.1、霍夫线变换是什么?2.2、在opencv中的基本用法2.2.1、HoughLinesP函数定义2.2.2、用法3、识别车道3.1、优化3.1.1、降噪3.1.2、过滤方向3.1.3、截选区域3.1.4、测试其它图片图片1图片2图片31、前言 最近学习opencv学到了霍夫线变换&am…...
MySQL的同步数据Replication功能
MySQL提供了Replication功能,可以实现将一个数据库的数据同步到多台其他数据库。前者通常称之为主库(master),后者则被称从库(slave)。MySQL复制过程采用异步方式,但延时非常小,秒级…...
2023年全国最新高校辅导员精选真题及答案17
百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 21.完善大学生的自我意识,我们可以采取的措施是()。 …...
中文代码92
PK 嘚釦 docProps/PK 嘚釦諿hl | docProps/app.xml漅Mo?糤?皘幅H??Q州濾mじ沜咅K宩Z5~q矹阶浇?灭貄}鰜>hk?i灐Q墩娲蝊毲b檊!J邮?\鏶 鵉苻牢[?j Y?a漺1簕B傟p悺L睮恃鶤?龎劂Q|瓣} A??苷0???5m?髤咄佶?\/#姧1N_??熹 冟.琽僠糧固Pw襅…...
Python SEO采集海量文本标题,用倒排索引找出“类似的标题“代码实现
Python SEO采集海量文本标题,用倒排索引找出“类似的标题“代码实现 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 一、说明 假设这个是采集到的海量文本标题: 现在要判断找到的这个标题 title = "拜登称特朗普拒绝承认选举…...
模型杂谈:快速上手元宇宙大厂 Meta “开源泄露”的大模型(LLaMA)
本篇文章聊聊如何低成本快速上手使用 Meta(Facebook)的开源模型 LLaMA。 写在前面 在积累点赞,兑现朋友提供的显卡算力之前,我们先来玩玩“小号的”大模型吧。我相信 2023 年了,应该不需要再赘述如何使用 Docker 干净…...
RedisCluster集群模式下master宕机主从切换期间Lettuce连接Redis无法使用报错Redis command timed out的问题
背景springboot使用redisTemplate访问redis cluster(三主三从),底层是Lettuce,当其中一个master挂掉后,slave正常升为master,程序报错 Redis commond timed out after 6 seconds。解决手动连接集群…...
Xuetr杀毒工具使用实验(28)
实验目的 (1)学习Xuetr的基本功能; (2)掌握Xuetr的基本使用方法。预备知识 windows操作系统的基本知识如:进程、网络、服务和文件等的了解。 XueTr是近年推出的一款广受好评的ARK工具。ARK工具全称为Anti R…...
fastapi(https)+openssl+测试(双向校验)
第一步生成根证书 # Generate CA private key openssl genrsa -out ca.key 2048 # Generate CSR openssl req -new -key ca.key -out ca.csr # Generate Self Signed certificate(CA 根证书) openssl x509 -req -days 365 -in ca.csr -signkey ca.key -o…...
TiDB Server
文章目录TiDB Server架构TiDB Server作用TiDB Server的进程SQL语句的解析和编译SQL读写相关模块在线DDL相关模块GC机制与相关模块TiDB Server的缓存热点小表缓存TiDB Server架构 Protocol Layer、Parse、Compile负责sql语句的解析编译和优化,然后生成sql语句执行计划…...
S3C2440移植Linux4.19.275内核以及过程中遇到的问题
目录 1 问题一:内核移植时MTD分区问题 2 问题二:uboot的MTDPARTS_DEFAULT定义的MTD分区,bootargs中的文件系统分区,内核的mtd_partition smdk_default_nand_part定义的分区,三者要对应起来 3 问题三:ubo…...
解忧杂货铺(二):UML时序图
目录 1、概述 2、UML时序图 2.1、什么是时序图 2.2、时序图的元素 2.2.1 角色(Actor) 2.2.2 对象(Object) 2.2.3 生命线(LifeLine) 2.2.4 控制焦点(Activation) 2.2.5 消息(Message) 2.2.6 自关联消息 2.2.7 组合片段 1、概述 在看AUTOSAR规范的时候发现时序图里面的…...
微信小程序的代码由哪些结构组成?
小程序官方建议把所有小程序的页面,都存放在pages 目录中,以单独的文件夹存在,如图所示: 其中,每个页面由4 个基本文件组成,它们分别是:js文件(页面的脚本文件,存放页面的数据、事件…...
教育工作者必备:用清音刻墨Qwen3为教学视频自动生成时间轴字幕
教育工作者必备:用清音刻墨Qwen3为教学视频自动生成时间轴字幕 1. 引言:教学视频的字幕痛点 作为一名教育工作者,您是否经常遇到这样的困扰?录制完教学视频后,手动添加字幕耗费大量时间,而且很难做到音画…...
电商老板必看:用Excel的IF和VLOOKUP函数,轻松算出你的新老客户利润贡献比
电商精细化运营:用Excel透视新老客户利润贡献的实战指南 对于中小电商企业主来说,理解客户结构是精细化运营的第一步。你可能没有专业的BI工具,但Excel这个看似普通的办公软件,却能帮你挖掘出惊人的商业洞察。本文将带你一步步构建…...
lite-avatar形象库保姆级教学:从CSDN控制台创建GPU实例到数字人上线全过程
lite-avatar形象库保姆级教学:从CSDN控制台创建GPU实例到数字人上线全过程 桦漫AIGC集成开发 | 微信: henryhan1117 1. 开篇:为什么选择lite-avatar形象库? 如果你正在寻找高质量的数字人形象,但又不想从零开始训练模型ÿ…...
HarmonyOS6 半年磨一剑 - RcTextarea 组件状态管理与禁用只读机制
文章目录 前言一、焦点状态机1.1 isFocused 驱动的 UI 变化1.2 焦点事件处理流程 二、禁用与只读的本质区别2.1 技术实现对比2.2 视觉表现差异2.3 清空按钮的保护逻辑 三、清空按钮的智能显示策略3.1 双重触发模式3.2 清空按钮的渲染位置3.3 清空操作的完整流程 四、自动聚焦与…...
如何用EuRoC数据集快速搭建VIO算法测试环境(附Python代码示例)
如何用EuRoC数据集高效构建VIO算法验证平台(附Python实战) 当我们需要验证视觉惯性里程计(VIO)算法时,一个高质量的数据集就像实验室里的精密仪器。EuRoC数据集正是这样一套"标准量具",它由微型飞…...
BongoCat:重新定义桌面体验的互动工具
BongoCat:重新定义桌面体验的互动工具 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作,每一次输入都充满趣味与活力! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是否曾觉得日复一日的…...
GLM-4.7-Flash多场景落地:保险条款解读、理赔话术生成与客户异议应答
GLM-4.7-Flash多场景落地:保险条款解读、理赔话术生成与客户异议应答 保险行业每天都要处理海量的文本工作:厚厚的保单条款需要解读,复杂的理赔申请需要沟通,客户的各种疑问需要专业、及时地回应。这些工作不仅繁琐,而…...
视频生成技术新范式:Wan2.2如何重新定义AI创作边界
视频生成技术新范式:Wan2.2如何重新定义AI创作边界 【免费下载链接】Wan2.2-Animate-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-14B 在数字内容创作领域,视频生成技术正经历着从实验性探索到产业化应用的关键转型…...
COMSOL:模拟多尺度扩散模型下的流体运动与浆液扩散
COMSOL COMSOL模拟不同扩散模型下煤粒吸附/解吸扩 散 comsol仿真模拟电双层纳米电极,扩散双电层耦 合了Nernst-Planck方程和泊松方程。 comsol二 氧化碳混相驱替,多孔介质驱替,油气,扩散, 考虑浓度变化,速度…...
795. 广告标识工厂哪家上门维修最及时?
在当今商业社会,广告标识对于企业的品牌展示和宣传起着至关重要的作用。然而,广告标识在使用过程中难免会出现各种问题,这就需要及时的上门维修服务。那么,广告标识工厂哪家上门维修最及时呢?今天就为大家推荐河北兴盛…...
