[mpeg4]mpeg4码流分析

2023-11-08

基于内容的AV编码

以前AV信息被看作纯粹的数据,编码时没有结合自身包含的内容,例如视频序列被认为是象素的组合。MPEG-4采用了对象的概念,不同的数据源被视作不同的对象,分别编码。数据的接收者不再是被动的,他可以对不同的对象进行自己的操作:删除、添加、移动等。语音、图像、视频等可以作为单独存在的对象,也可以集合成一个更高层的对象,我们称之为场景。举例说明,MPEG-4在编码前首先要对视频序列进行分析和理解以提取目标,其码流信息首先应给出各个目标的场景描述。想象一幅“人在旅途”的场景:“枯藤老树昏鸦,小桥流水人家,古道西风瘦马,夕阳西下,断肠人在天涯。”其场景可分解(或分割)成多个多媒体目标组成。其原始目标包括:

·静止图象:如固定的背景“枯藤”“老树”,“小桥”,“人家”,“古道”,“天涯”

·视频目标(VO :Video Object)。如“昏鸦” ,“瘦马” ,“夕阳” ,“人”

·音频目标:如“昏鸦”呜呜,“流水”潺潺 ,“西风”嗍嗍,“瘦马”长嘶,“人在”短叹;

一幅复杂的画面就由这些可操作的原始目标组成。如果对这些目标分别进行编码,最终用户便可以自由地操纵这些原始目标 (如目标的坐标,视点,动画等),还可得到一些原始目标的信息。如对“断肠人”的介绍,可在观看场景的同时用鼠标点击“断肠人”也许能得到此人的各种信息或网页,譬如此人名叫“马致远”、“苏东坡”还是“柳永”;爱好是“名山大川”还是“浪迹江湖”等。

 

码流由层次化的数据结构来描述:

图1 mpeg-4 video data structure

它可以分为5个层次:

视频序列(VS:Video Sequence,即VOS,Visual Object Sequence):一个完整的视频包括多个VS。

视频目标(VO:Video Object):VO即是场景中的特定目标

视频目标分辨层(VOL:Video Object Layer):VOL是VO的时间或空间的伸屈性描述。VO的描述可以在不同时间分辨率和空间分辨率上进行。它可以只包括一个基本层,也可以包括多个分辨率增强层。目标的伸屈性即是通过VOL来实现的。

视频对象平面组(GOV:Group of VOP):即为由VOP(I-Frame、P-Frame、B-Frame)等组成的GOP(Group Of Pictures)。

一个I-Frame后接若干P-FrameB-Frame构成一个视频对象平面组GOV(GOP)

当画面场景呈静态少有变化时,I帧比较大,P帧比较小且GOP持续较长。当画面场景变化较大时,一般将重新构造新的I帧、形成新的GOP

视频目标平面(VOP:Video Object Plane):VOP是VO在某个时间的存在,是VO在不同VOL层的时间序列。

概括来说,MPEG-4的视频由多个VS组成。而VS是一个或多个VO的集合,VO包含一个或多个VOL分辨层,VOL包括一系列VO在时间上的采样VOP。

所以VS序列(VS0,VS1…… )是整个场景在某段时间上图像系列,VO序列(VO0,VO1,…… )是从VS中提取的不同空间目标,VOL序列(VOL0,VOL,……)是VO的不同分辨层(基本层和多个增强层 )。VOP序列(VOP0,VOP,…… )是VO在不同分辨层的时间采样。而MPEG-4的视频编码就是基于VOP进行的。

MPEG-4用形状、运动和色彩三组参数描写VOP。

形状参数:采用以子块为基础,基于上下文的算术编码。可得到对形状无失真编码。

运动参数:先进性预测,然后再对预测差值进行变长编码(VLC)。

色彩编码:采用类似H.263的帧内/帧间混合编码方法。对VO边界上的子块,MPEG-4用形状自适应DCT(SA-DCT)取代拼贴算法。

 

各层的起始码如下所示:

visual object sequence  start code: 0x 00 00 01 B0

visual object sequence  end code: 0x 00 00 01 B1

user data start code: 0x 00 00 01 B2

group of vop start code: 0x 00 00 01 B3

video session error code: 0x 00 00 01 B4

visual object start code: 0x 00 00 01 B5

vop start code: 0x 00 00 01 B6

video object start code: 0x 00 00 01 00 (through 1F)

video object layer start code: 0x 00 00 01 20(through 2F)

reserved: 0x 00 00 01 30 through 0x 00 00 01 AF

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[mpeg4]mpeg4码流分析 的相关文章

  • Elasticsearch更新语法

    文章目录 update 语法 示例 数值计算 add列表元素 remove列表元素 add字段 remove字段 delete文档 detect noop upsert更新 新增 scripted upsert doc as upsert
  • docker 安装elasticsearch以及kibana

    1 安装elasticsearch 1 1 拉取镜像 执行下面的命令将es的镜像拉取到本地 docker pull docker elastic co elasticsearch elasticsearch 6 5 0 1 2 启动容器 没
  • ES聚合分析总结

    文档的聚合分析 像在SQL中会需要SUM MAX AVG 函数 ElasticSearch也提供了关于聚合分析的函数 ElasticSearch中常见的聚合分析函数有terms 分组函数 avg 平均数 range 区间分组 max 求最大
  • RestHighLevelClient封装使用,Java调用ES客户端 [支持ES6.x]

    前言 之前做项目的时候 需要用到Es的操作 本来想使用EsJpa的 即SpringDataElasticsearch 结果项目采用的是SpringBoot1 x版本 不得已 只要自己封装RestHighLevelClient来使用 不过网上
  • 解决ES6.6.0开启锁定内存后不能重新,报错“memory locking requested for elasticsearch process but memory is not locked”

    错误原因就是我们在配置文件里开启了 bootstrap memory lock true 不需要次需求的话 改成false就好 如果需要开启 按照下面来 亲测可行 root localhost 234 grep Ev etc elastic
  • elasticsearch 编写java程序报错Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch

    java程序启动报错 Exception in thread main java lang NoClassDefFoundError org elasticsearch plugins NetworkPlugin ERROR StatusL
  • Elasticsearch 跨集群复制(CCR)的使用

    什么是 Elasticsearch 的跨集群复制 CCR Cross Cluster Replication 跨集群复制是 Elasticsearch v6 5 发布的一个新的特性 这个特性可以让你将一个集群的索引数据同步复制到远程的另外一
  • 剖析ElasticSearch的评分计算过程

    剖析elasticsearch的评分计算过程 es搜索结果是怎样的排序的 准备测试数据 搜索 剖析参数含义 结论 es搜索结果是怎样的排序的 es的排序准则的相关度 根据搜索 关键词 计算关键词在一个文档中的得分 得分越高结果越靠前 那么计
  • es备份数据和恢复数据

    1 fs方式 备份到本地挂载的硬盘 1 创建一个仓库 PUT snapshot my backup type fs settings location mount my backup 上面代码创建一个名为 my backup 的备份 存放在
  • ES安全认证机制X-pack的安装及使用

    1 给ES Kibana安装x pack bin elasticsearch plugin install x pack bin kibana plugin install x pack 2 修改密码 注意 这个只能修改一次密码 同一个集群
  • java中实现es count distinct

    需求 说一下最近项目中碰到的一个es方面的需求 在一个字段columnB里面 获取特定值0的总数据量 然后在这些数据里面 再做另一个字段columnA的去重并得到该字段值的集合 方案 两种方案写成sql类似如下 两次es查询 SELECT
  • 【ElasticSearch(五)进阶】两种_search检索方式,match_all检索,Query DSL基本使用...

    ElasticSearch 五 进阶 两种 search检索方式 match all检索 Query DSL基本使用 一 导入测试数据 ElasticSearch官方为我们准备了一部分测试数据供调试使用 我们可以Kinaba内进行数据导入处
  • 权衡问题---学习了微服务各大常用组件的一点思考

    1 没有什么技术可以完全通用 只要深度使用一定需要从业务出发对技术进行权衡 从几个例子出发 1 ES的分片机制天生支持分布式 同时也带来了分布式了弊端 排序和算分问题 搜索的场景需要严格的定制化 通过对mapping的修改可以支持算分的调整
  • Es中索引的删除操作

    package com atguigu es test import org apache http HttpHost import org elasticsearch action admin indices delete DeleteI
  • es统计所有数量的坑

    最近在统计线上的数量时 会发现始终都是10000 觉得很奇怪 先来说一下场景 我使用的是7 2版本的es 需要统计所有数量 后来发现数量下面有个relation gte的属性 然后在网上一搜 发现es 7 X在数据量很大时 数量都会是100
  • 《再也不怕elasticsearch》REST API调用

    REST API调用 大家好我是迷途 一个在互联网行业 摸爬滚打的学子 热爱学习 热爱代码 热爱技术 热爱互联网的一切 再也不怕elasticsearch系列 帅途会慢慢由浅入深 为大家剖析一遍 各位大佬请放心 虽然这个系列帅途有时候更新的
  • ES使用小结

    ES使用总结 1 查询es全部索 2 根据es索引查询文档 3 查看指定索引mapping文件 4 默认查询总数10000条 5 删除指定索引文档 6 删除所有数据包括索引 7 設置窗口值 8 logstash简单配置 Logstash配置
  • ELK系列(二)、在Kibana中使用RESTful操作ES库

    上一篇讲了如何安装ELK ELK系列 一 安装ElasticSearch Logstash Kibana Filebeat v7 7 0 这篇介绍如何使用kibana连接ES并操作 先介绍一下ES和关系型数据库的概念对应 在ES7以前的版本
  • Elasticsearch 7 系列(3) —— 核心概念

    目录 集群 cluster 节点 node 索引 index 类型 type 要学好Elasticsearch 就得先对Elasticsearch中的概念有所了解 接下来我们就重点说说Elasticsearch中的集群 节点 索引 类型 文
  • 不解码就能找到h264视频中的关键帧(I帧)吗?即它在包中吗?

    我需要知道是否可以找到 I 帧而无需先对其进行解码 我希望 AVPacket 中有一些标志 但我看不到有一个 Thanks 你一定可以找到location通过查找适当的标头代码来分析 I 帧 如果您解析该序列 您可以从起始代码中找到它 H

随机推荐

  • matlab仿真gmid电路,bandgap电路稳定性仿真---频响、相位裕度、环路增益

    仿真需要对原理图稍作修改 需在运放的闭环路径中加入iprobe元件 电路中存在两个反馈电路 一个正反馈 如图1组成路径 一个负反馈 如图2组成路径 两个反馈都经过了运放的输出端 故我这儿加在了输出端 可以同时仿真出两个反馈环路的频率响应 环
  • spring boot2整合kafka及遇到Exception thrown when sending a message with key='null'问题

    spring boot2整合kafka及遇到Exception thrown when sending a message with key null 问题 最近在学习spring boot2和kafka 就用学着使用spring boot
  • SpringBoot之CommandLineRunner接口和ApplicationRunner接口

    我们在开发中可能会有这样的情景 需要在容器启动的时候执行一些内容 比如读取配置文件 数据库连接之类的 SpringBoot给我们提供了两个接口来帮助我们实现这种需求 这两个接口分别为CommandLineRunner和Application
  • SQL技巧:如何统计博客每天的总点击量和每天的总点击人数

    最近由于工作安排 需要统计一篇火爆的博客每天的总点击量和每天的总点击人数 其实主要考验的就是编写SQL的能力 这里我们需要用到 GROUP BY 和 COUNT关键字 关于这2个关键字的用法 网上有很多 这里不再赘述 分组统计每天的总点击量
  • Qt之QtSoapHttpTransport 访问WebService

    简述 Web Service技术 能使得运行在不同机器上的不同应用无须借助附加的 专门的第三方软件或硬件就可相互交换数据或集成 依据Web Service规范实施的应用之间 无论它们所使用的语言 平台或内部协议是什么 都可以相互交换数据 Q
  • win10 安装mingw 使用makefile

    下载了一个新代码 里面有 h c 和 Makefile文件 说明文件中写道先编译 compiling Type make in a shell 在控制台上输入make 首先win r打开控制台 输入cmd 输入e 回车 cd github
  • mybatis查询返回空,sql数据库执行有数据

    需要编写一个统计功能 在Navicat Premium里调整好sql 然后编写后台代码 controller service serviceImpl dao 在serviceImpl 上添加 Service 注解 在dao 添加 Repos
  • 【测试 3】三、软件测试方法

    4 软件测试方法 包括白盒测试 灰盒测试 黑盒测试 静态测试 动态测试 手动测试 自动测试等 学习目标 熟悉白盒测试方法 掌握黑盒测试方法 掌握黑盒测试用例设计的方法 等价类划分法 边界值分析法 因果 图分析法 判定表分析法 正交试验法等
  • 图像特征提取三大算法:HOG特征,LBP特征,Haar特征

    一 HOG特征 from http dataunion org 20584 html 1 HOG特征 方向梯度直方图 Histogram of Oriented Gradient HOG 特征是一种在计算机视觉和图像处理中用来进行物体检测的
  • Intellij IDEA运行报Command line is too long的解决办法

    报错信息大概如下 Error running xxx Command line is too long Shorten command line for xxx or also for Application default configu
  • leet116. 每个节点的右向指针

    题目 给定一个二叉树 struct TreeLinkNode TreeLinkNode left TreeLinkNode right TreeLinkNode next 填充他的每个 next 下一个 指针 让这个指针指向其下一个右侧节点
  • Mybatis-Plus-【通俗易懂全讲解】

    Mybatis Plus 简介 MyBatis Plus opens new window 简称 MP 是一个 MyBatis opens new window 的增强工具 在 MyBatis 的基础上只做增强不做改变 为简化开发 提高效率
  • 08-go mod和vendor

    文章目录 1 go mod 1 1 创建项目 1 2 mod初始化 1 3 重新构建依赖 1 4 编译 2 vendor 2 1 拷贝依赖 2 2 使用vendor目录编译 1 go mod 1 1 创建项目 创建一个目录 root liu
  • QT中私有公有化(Q_DECLARE_PUBLIC Q_DECLARE_PRIVATE)原理小DEMO

    结果 b ljtcnt 8889 b ljtcnt 1457 代码如下 DrawToolButton h ifndef DrawToolButton H define DrawToolButton H include
  • CSDN中发布文章时上传图片上传失败的问题

    多是与搜狗输入法有关联 解决办法 在需要上传图片的时候切换到其他的输入法即可正常上传
  • Python中常用的正则表达式

    正则表达式是对字符串操作的一种逻辑公式 就是用事先定义好的一些特定字符 及这些字符的组合 组成一个 规则字符串 这个 规则字符串 用来表达对字符串的一种过滤逻辑 非python独有 但是python的re模块提供了实现 在python中写正
  • python实战-JSON形式爬虫-批量爬取图片并下载

    文章目录 一 前言 二 思路 1 网站返回内容 2 url分页结构 3 根据请求快速构造代码 三 具体代码的实现 四 总结 一 前言 上一篇文章已经对html形式的爬虫进行实战 批量爬取电影下载链接 接下来将实战json形式爬虫 批量爬取并
  • Java环境配置

    文章目录 windows环境 linux环境 yum安装 压缩包安装 首先需官网下载所需版本jdk 注意与机器对应 官网下载地址 https www oracle com technetwork cn java javase downloa
  • 时间序列--平滑+特征工程

    https machinelearningmastery com moving average smoothing for time series forecasting python 平滑的希望是消除噪声 更好地揭示潜在的因果过程的信号
  • [mpeg4]mpeg4码流分析

    基于内容的AV编码 以前AV信息被看作纯粹的数据 编码时没有结合自身包含的内容 例如视频序列被认为是象素的组合 MPEG 4采用了对象的概念 不同的数据源被视作不同的对象 分别编码 数据的接收者不再是被动的 他可以对不同的对象进行自己的操作