[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码流分析 的相关文章

  • ES学习笔记

    01 REST 指的是客户端和服务器之间的交互在请求之间是无状态的 从客户端到服务器的每个请求都必须包含理解请求所必须的信息 同时在请求之间的任意间隔时间点 若服务器重启 那么客户端是得不到相应的通知的 所以无状态的请求可以由任何可用的服务
  • 3.Elasticsearch基础操作

    介绍ES的基本操作 如创建索引 mappings doc的一些基本操作 在doc操作中将分别介绍查询单条数据和多条数据 通过DSL的方式和JAVA api的方式体现 3 1 索引操作 索引操作是一种很危险的操作 索引就像相当于关系型数据库的
  • ELK系列(三)、安装Logstash插件及打包离线安装包

    Logstash有input output filter codec 四种插件类型 支持的种类也很丰富 功能特别强大 选对正确的插件可以节省很多的资源占用和开发效率 生产环境一般都无法连接到公网 所以本篇就带大家如何在线安装 以及打包离线安
  • bleve和es RediSearch 区别

    目录 区别 bleve支撑多大的数据量 bleve是否支持集群和分布式 bleve主要应用场景 区别 Bleve 和 Elasticsearch 是两个不同的搜索引擎库 而不是像 Bleve 和 RediSearch 那样相互竞争的产品 B
  • docker 安装elasticsearch以及kibana

    1 安装elasticsearch 1 1 拉取镜像 执行下面的命令将es的镜像拉取到本地 docker pull docker elastic co elasticsearch elasticsearch 6 5 0 1 2 启动容器 没
  • 视频中的I帧、B帧、P帧

    视频文件都是一帧一帧存储的 为了使文件的大小减小 通常会对文件进行压缩 mpeg4 MP4 文件中的每一帧开始都是固定的 00 00 01 b6 那么在接下来的每一帧分别是什么帧呢 I帧 B帧 P帧 一般在这固定帧的后面2bit就是标志是什
  • Elasticsearch Java 操作之后查询数据未及时更新

    在请求里加这个参数 request setRefreshPolicy WriteRequest RefreshPolicy IMMEDIATE 例如 public boolean saveOrUpdate String indexName
  • ES时间分组统计查询

    创建索引 PUT test 索引结构 PUT test mapping properties insertTime type date id type text fields keyword type keyword ignore abov
  • es备份数据和恢复数据

    1 fs方式 备份到本地挂载的硬盘 1 创建一个仓库 PUT snapshot my backup type fs settings location mount my backup 上面代码创建一个名为 my backup 的备份 存放在
  • Docker 安装运行 ElasticSearch 遇到的问题!

    在创建 6 4 3版本的 ES 以后启动发现过了一会 ES 自动退出了 原因好像是 ES 的默认分配的内存太大了 进程被自动杀死了 所以以下我来记录下这坑 使用ES工具类索引时运行测试方法时报错 org elasticsearch tran
  • es 搜索推荐:Suggest

    搜索推荐 Suggest 概述 搜索一般都会要求具有 搜索推荐 或者叫 搜索补全 的功能 即在用户输入搜索的过程中 进行自动补全或者纠错 以此来提高搜索文档的匹配精准度 进而提升用户的搜索体验 这就是Suggest 四种Suggester
  • java中实现es count distinct

    需求 说一下最近项目中碰到的一个es方面的需求 在一个字段columnB里面 获取特定值0的总数据量 然后在这些数据里面 再做另一个字段columnA的去重并得到该字段值的集合 方案 两种方案写成sql类似如下 两次es查询 SELECT
  • Es中索引的删除操作

    package com atguigu es test import org apache http HttpHost import org elasticsearch action admin indices delete DeleteI
  • (Linux)docker容器安装Kibana--简单安装

    docker容器安装Kibana docker容器安装Kibana 启动Kibana docker容器安装Kibana 使用docker命令安装Kibana容器 sudo docker pull kibana 7 4 2 等待下载安装完成
  • ELK 性能优化实践

    点击上方蓝色 方志朋 选择 设为星标 回复 666 获取独家整理的学习资料 一 背景介绍 近一年内对公司的 ELK 日志系统做过性能优化 也对 SkyWalking 使用的 ES 存储进行过性能优化 在此做一些总结 本篇主要是讲 ES 在
  • 解决Java JPA Es索引时间戳字符串格式比较问题

    说明 在Java开发中常见使用 yyyy MM dd HH mm ss 来格式化时间戳 例如 ApiModelProperty 订单开始日期 JsonFormat pattern yyyy MM dd HH mm ss JSONField
  • 将视频流式传输(或渐进式下载)到 Droid 浏览器

    我正在尝试将视频流式传输 或使用渐进式下载 到 Motorola Droid 浏览器 但运气不佳 使用 iPhone 我可以将 Safari 定向到http xxx xxx xxx 文件名 mp4 这是一个 MPEG 4 视频文件 Safa
  • Android MediaCodec:编码失败,因为视频轨道没有同步帧

    我计划将一个视频文件转换为另一个具有不同比特率 fps 等的视频文件 基本上我遵循中的示例http bigflake com mediacodec http bigflake com mediacodec 但是 日志显示视频轨道没有同步帧的
  • HTML 5 视频问题

    我正在尝试将我的网站设置为使用 HTML 5 视频 mp4 文件由 S3 提供 我的 MIME 类型是正确的 并且 URL 也是正确的 但它不起作用 我唯一能想到的是编解码器错误 这是我的代码
  • 使用 Python 从原始帧创建 MPEG4 视频文件

    我有一个原始视频帧源 我可以在 Python 中访问它 我想用它创建一个 MPEG4 视频 并带有 MP3 背景音乐 Python 中有哪些类型的工具和库可用于此类任务 最好我想要一个 API 我可以为其提供输出文件名 然后将各个帧作为 2

随机推荐

  • 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采用了对象的概念 不同的数据源被视作不同的对象 分别编码 数据的接收者不再是被动的 他可以对不同的对象进行自己的操作