本章着重介绍有关MPEG-4 Visual标准的细节。

Tool

编码工具集合的子集(比如支持交织等)。

Object

视频元素(比如一个矩形视频帧,或者一个任意形状的区域,静止的图像)。

Profile

视频对象类型的集合。

Level

每个Profile都会有多个Level,不同的Level对机器性能的要求各不相同,因此适用于不同的应用和环境。

VO(Video Object)

视频的一帧是一个VOP(Video Object Plane),多个VOP组成一个VO。VOP可以是矩形的也可以是任意形状的。

The Simple Profile

Simple Profile中的特性。

I-VOP

即通常所说的I帧,该帧的编码不依赖于其他帧,即Intra mode。

P-VOP

即通常所说的P帧,该帧的编码依赖于之前编码了的I帧或P帧。P帧中的宏块可以用帧内编码(出现一块新的找不到很好匹配的区域),或者帧间编码(利用运动补偿,估计)。

编码效率工具

这里介绍了一些提升编码效率的工具

Four motion vector per macroblock

缩小宏块大小,增加运动向量个数,达到更精确的匹配

Unrestricted Motion Vector

在帧边缘位置的宏块,如果物体从边缘位置进入屏幕范围,极有可能搜索不到比较好的匹配,但是如果将边缘位置按照像素值“外推(extrapolate)”,那么匹配准确度会明显提升。

Intra Prediction

因为相邻宏块的内容变化可能并不显著(马尔科夫特性),因此宏块的DC和AC系数可以根据相邻宏块进行预测。

传输效率工具

这里介绍了一些提升传输效率的工具

Video Packet

Packet又称之为Slice,在Packet的头部可以增加一个Sync标签,辅助解码器同步,防止错误的传递。

Data Partitioning

将数据分成两部分传递,第一部分保存每个宏块的编码模式和每个帧内编码宏块的DC系数或者帧间编码宏块的运动向量。而帧间编码宏块的AC系数和DC系数存储在第二部分,这样即使第二部分数据出现了错误,依靠第一部分的数据依然可以恢复出来。

Reversible VLCs

即Reversible Variable Length Codes,使得解码器可以正反两个方向解码,以此减小错误所影响的范围。

The Advanced Simple Profile

Advanced Simple Profile中的特性。

B-VOP

即B帧,双向预测帧。

Quarter-Pixel Motion Vectors

四分之一像素为单位的运动向量,提升精度。

Alternate quantiser

边长的量化步长,低频区域步长小,高频区域步长大,这样能够更高效地压缩。

Global Motion Compensation

支持全局的运动向量共享。

Interlace

对交织的支持。

  • Frame DCT Mode
  • Field DCT Mode

The Advanced Real Time Simple Profile

Advanced Real Time Simple Profile中的特性。

NEWPRED

new prediction,即支持选择更早的VOP进行预测,当出现错误时,利用之前较早的未出现错误的VOP预测,可以防止错误的传递。

Dynamic Resolution Conversion

当画面中出现较复杂的场景变化时,往往会意味着码率的瞬时提高,此时可以通过降低分辨率的方式来减小码率。

Chapter 5. MPEG-4 Visual的更多相关文章

  1. (英文版)使用Visual Studio 2015 编写 MASM 汇编程序!

    原文地址:http://kipirvine.com/asm/gettingStartedVS2015/index.htm#CreatingProject Getting Started with MA ...

  2. Interacted Action-Driven Visual Tracking Algorithm

    文章来源:Attentional Action-Driven Deep Network for Visual Object Tracking   博士论文(2017年8月份完稿) http://s-s ...

  3. VES Hand Book Contents

    3...ABOUT THE VES4...Foreword 6...Chapter 1......Introduction6......Visual Effects and Special Effec ...

  4. 转:LIRe 源代码分析

    1:整体结构 LIRE(Lucene Image REtrieval)提供一种的简单方式来创建基于图像特性的Lucene索引.利用该索引就能够构建一个基于内容的图像检索(content- based ...

  5. LIRe 源代码分析 2:基本接口(DocumentBuilder)

    ===================================================== LIRe源代码分析系列文章列表: LIRe 源代码分析 1:整体结构 LIRe 源代码分析 ...

  6. 零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下)

    原文:零元学Expression Blend 4 - Chapter 33 简单轻松的学会如何使用Visual States(下) 上篇提到了Visual State Manager中文翻译为视觉状态 ...

  7. 零元学Expression Blend 4 - Chapter 32 简单轻松的学会如何使用Visual States(上)

    原文:零元学Expression Blend 4 - Chapter 32 简单轻松的学会如何使用Visual States(上) Visual State Manager中文翻译为视觉状态管理器,这 ...

  8. how to build apache log4cxx 0.10 by Visual Studio 201*

    Chapter 1 Official Steps  We are going to follow the steps here, http://logging.apache.org/log4cxx/b ...

  9. [转]第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV

    仅供参考,还未运行程序,理解部分有误,请参考英文原版. 绿色部分非文章内容,是个人理解. 转载请注明:http://blog.csdn.net/raby_gyl/article/details/174 ...

随机推荐

  1. loadrunner提高篇-场景设计实践

    集合点设置 一.为什么要进行集合点设置? 因为在测试过程中,并不能保证所有的Vuser都在同一时刻进行操作,这样就达不到并发测试的目的,故需要用到集合点技术,集合点的意思是如果在一个操作之前设置了一个 ...

  2. 【JAVAWEB学习笔记】19_事务

    事务 学习目标 案例-完成转账 一.事务概述 1.什么是事务 一件事情有n个组成单元 要不这n个组成单元同时成功 要不n个单元就同时失败 就是将n个组成单元放到一个事务中 2.mysql的事务 默认的 ...

  3. JDFS:一款分布式文件管理实用程序第一篇(线程池、epoll、上传、下载)

    一 前言 截止目前,笔者在博客园上面已经发表了3篇关于网络下载的文章,这三篇博客实现了基于socket的http多线程远程断点下载实用程序.笔者打算在此基础上开发出一款分布式文件管理实用程序,截止目前 ...

  4. Linux Academy Learn Notes

    Linux Essentials Certification Globbing ls ?.txt --- ? stands for one character while * means one or ...

  5. CPU最核心的电子元件叫做石英晶振

    CPU是电子计算机的主要设备之一,是电脑中的核心配件.主要功能是解释计算机指令以及处理计算机软件中的数据.有人会问,你知道CPU里面都有什么吗?我想大家都会说硅晶体,集成度极大的半导体材料.却没有人提 ...

  6. Azure Event Hub 技术研究系列3-Event Hub接收事件

    上篇博文中,我们通过编程的方式介绍了如何将事件消息发送到Azure Event Hub: Azure Event Hub 技术研究系列2-发送事件到Event Hub 本篇文章中,我们继续:从Even ...

  7. R语言的导数计算(转)

    转自:http://blog.fens.me/r-math-derivative/ 前言 高等数学是每个大学生都要学习的一门数学基础课,同时也可能是考完试后最容易忘记的一门知识.我在学习高数的时候绞尽 ...

  8. git reset、git checkout和git revert的区别

    这三个git命令都是用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于commit层面,还可以作用于file层面Reset在commit层面,reset通过移除当前分支的一些节点来实现版本回滚; ...

  9. Libevent源码分析—event, event_base

    event和event_base是libevent的两个核心结构体,分别是反应堆模式中的Event和Reactor.源码分别位于event.h和event-internal.h中 1.event: s ...

  10. python 多线程,进程的理解

    python的threading.Thread类有一个run方法,用于定义线程的功能函数,可以在自己的线程类中覆盖该方法.而创建自己的线程实例后,通过Thread类的start方法,可以启动该线程,交 ...