H264/AVC 句法和语义--重要的字段、带截图

news2024/10/10 14:22:19

一 SPS、PPS句法和语义

宽高在SPS里。
profile_idc:baseline、main、high。
level_idc:值越大,最大宏块处理速率等值越大。
m_ptParam.i_level_idc = 21; //X264编码参数
chroma_format_idc:1表示采样格式为4:2:0。
frame_mbs_only_flag:=1只含帧宏块。
SPS

entropy_coding_mode_flag:1—cabac 0—cavlc
weighted_pred_flag=1—P片使用加权预测
weighted_bipred_idc=2—B片使用隐式加权预测

m_ptParam.rc.i_qp_min = 10; //量化的最小值
m_ptParam.rc.i_qp_max = 51;
PPS

二 Slice Header

slice_type:0–P帧,1–B帧,2–I帧。大于5时,做减5处理。
field_pic_flag:0—帧编码 1—场编码(顶场、底场)。
idr_pic_id:IDR帧的序号。
disable_deblocking_filter_idc:去块滤波器。
first_mb_in_slice:重要,第一个宏块在整帧中的位置
frame_num:解码用。
POC picture_order_count:显示用。
pic_order_cnt_lsb:这个不是poc。
编码帧,POC包括TopFieldOrderCnt、BottomFieldOrderCnt。
SPS中有一个pic_order_cnt_type决定。
pic_order_cnt_type=0:只对POC低位编码传输。有B帧的。
=2:显示和解码顺序一致。没有B帧。
Slice Header

三 条带数据(宏块)语法

P帧才有运动矢量motion vectors L0 and L1
Mb_type:25–I_PCM,以差分编码形式保存宏块原始的像素值。
非I_PCM:值不确定。I slice,0-24。P slice,0-4。B slice,0-22。

mb_skip_run:cavlc跳过的个数,mb_skip_flag:使用cabac时,宏块是否跳过。
transform_size_8x8_flag:为1,预测残差按照8x8像素块进行解码。
为0,4x4。

CBP coded_block_pattern:当前宏块内的4个8x8子块编码对那个残差系树进行编码。
该语法在宏块为非I_16x16模式才存在。I_16x16,cbp在mb_type体现了。

高2位存储色度cbp:值范围0-2。
低4位存储亮度cbp:对应4个8x8,0-1。

mb_qp_delta:量化参数偏移值,[-26, 25]。
每一个slice第一个宏块的量化参数:
QP0 = pic_init_qp + 26 + slice_qp_delta + mb_qp_delta。
第二个及以后:QPn = (QPm + mb_qp_delta + 52) % 52。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 树进阶系列之平衡二叉查找树( AVL)的自平衡算法

1. 前言 树的深度与性能的关系。 在二叉排序树上进行查找时,其时间复杂度理论上接近二分算法的时间复杂度O(logn)。 但是,这里有一个问题,如果数列中的数字顺序不一样时,构建出来的二叉排序树的深度会有差异性,对最…

【Unity VR开发】结合VRTK4.0:抛物线

模块化开发(抛物线): 当我们用久了一个固定的东西之后就不想去追求新的东西,其实这是一种懒惰,每个人都应该明白,每一天,这个时间都在发生着变化,不管是人、事、物,而我…

[Android开发练习3] 四季图的切换

前言 本题主要涉及到使用帧式布局,以及如何为组件设置点击的事件响应,包括获取事件源,设置事件监听器,在Activity文件中书写一般的业务逻辑代码。 文章目录 布局代码 text3_season.xml(layout) style.xm…

私有云OpenStack学习笔记1

私有云:自己组建私有云系统。 私有云系统有哪些呢? OpenStack、CloudStack、Eucalyptus、vCloud Director四大主流云平台。 云计算有极大的潜力提高效率,显著地节约成本,实现可升级的基础设施和高性能以及安全的数据存储。 Ope…

秋招备战——Java基础知识

垃圾回收,JVM常用参数 将内存中不再被使用的对象进行回收,GC中用于回收的方法称为收集器,由于GC需要消耗一些资源和时间,Java在对对象的生命周期特征进行分析后,按照新生代、老年代的方式来对对象进行收集&#xff0c…

2023情人节送另一半什么好?四款适合送女友的数码好物分享

2023年情人节快到了,一个关于浪漫、惊喜并且充满爱意的节日,不少人都在烦恼送另一半什么好。而数码产品在日常生活中也是必不可少的存在,在此,我给大家整理了四款适合送女友的数码好物,一起来看看吧。 一、蓝牙耳机&a…

操作系统权限提升(四)之系统错误配置-Tusted Service Paths提权

系列文章 操作系统权限提升(一)之操作系统权限介绍 操作系统权限提升(二)之常见提权的环境介绍 操作系统权限提升(三)之Windows系统内核溢出漏洞提权 注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!!&am…

这18张 Python 数据科学速查表,让你的代码能力飞起来

数据科学是利用科学方法、流程、算法和系统从数据中提取价值的跨学科领域。数据科学家综合利用一系列技能(包括统计学、计算机科学和业务知识)来分析从网络、智能手机、客户、传感器和其他来源收集的数据。 目前在主流的数据科学领域一般有三大生态&…

深入详解 二次移动平均法python

什么是 二次移动平均法 二次移动平均法,也称为指数加权移动平均法,是一种用于平滑时间序列数据的算法。 文章目录二次移动平均法逻辑Python代码实现第二种实现二次移动平均法的方式第三种卷积实现二次移动平均法二次移动平均法的应用场景二次移动平均法逻…

Linux监控之prometheus学习

目录 需要学习以及掌握的知识 第一步:安装准备 1、安装nginx 2、安装prometheus 2_1、解压:prometheus-2.0.0.linux-amd64.tar.gz 2_2、移动到安装目录 2_3、将Prometheus配置为系统服务 2_4、重新加载系统文件,使prometheus.service文…

Linux字符设备、块设备的区别

一、字符设备 字符设备就是在对某设备进行操作时,该设备的读取以字节为单位进行。字符设备的操作是通过linux系统直接调用驱动程序完成的,在驱动程序的上一层并没用文件系统。因此字符设备的特点如下: 1、以字节流的方式进行读写、一个字节一…

亚马逊上线优惠券推荐功能,如何选品成为重中之重?

随着全球数字经济的进一步发展以及中国数字化基础设施的完善,众多中国品牌选择出海掘金道路。虽然全球经济格局的不确定因素在增多,但是总体上各国消费潜力在逐步释放,我国外贸行业也在不断迭代优化,尤其是出口跨境电商行业&#…

Python 基础语法介绍(二)

文章目录一、概述二、函数1)函数定义2)函数调用3)函数传参1、形式参数和实际参数2、关键字参数3、参数默认值4、可变参数4)函数返回值1、语法结构2、多值返回5)变量作用域1、局部变量2、全局变量【1】在主程序中定义全…

金融风控12

社交网络分析与金融反欺诈 设备指纹 一般是基于某些设备信息,通过一些设备指纹算法将这些信息组合,通过特定hsah算法得到一个ID值,作为该设备唯一标识符 常见元素有: - sim卡信息 - wifi信息 - 硬盘信息 - 内存信息 - 屏幕…

【Qt】6.QTableWidget控件、其他控件、自定义控件封装、鼠标事件

目录 QTableWidget控件 代码 widget.cpp 结果 其他控件 stackWidget栈控件 下拉框 代码 widget.cpp 结果 自定义控件封装 代码 smallwidget.h smallwidget.cpp widget.cpp 结果 鼠标事件 代码 mylabel.h mylabel.cpp 结果 QTableWidget控件 设置列数setC…

oAuth2的入门

目录一、OAuth2流程演示示例第一步第二步二、流程2.1 资源所有者2.2 客户2.3 客户2.4 认证服务器2.5 客户2.6 资源服务器三、测试一、OAuth2流程演示示例 第一步 先到gitee下载oAuth2官方提供的代码,然后导入项目 https://gitee.com/lisenaq/oauth2-example.git第…

SpringMVC(十四):SpringMVC异常处理

文章目录 SpringMVC异常处理 一、异常简介 二、异常处理具体实现

Charles 的简单使用

1.下载并安装charles官方下载地址:https://www.charlesproxy.com/download/当前最新版本是4.6.3 选择合适的安装包进行下载(windows.msi、macos.dmg、linux.tar.gz)例windows.msi:执行msi文件,选择合适的下载地址&…

【机器学习】聚类算法(理论)

聚类算法(理论) 目录一、概论1、聚类算法的分类2、欧氏空间的引入二、K-Means算法1、算法思路2、算法总结三、DBSCAN算法1、相关概念2、算法思路3、算法总结四、实战部分...一、概论 聚类分析,即聚类(Clustering)&…

js继承的6种方式

// 1 原型链继承function Per() {this.name "key";}Per.prototype new Person(); // 主要var per1 new Per();console.log(per1.age);// instanceof 判断元素是否在其他元素的原型链上// per1继承了Person的属性,返回trueconsole.log(Per1 instanceof …