本章着重介绍有关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. 添加本地jar包到本地的Maven仓库以及在Maven仓库中搜索想要添加的jar包

    今天在学习Memacached的时候,将java_memcached-release下载下来,要使用maven来集成相关的jar包,Memcached的jar包如下: java_memcached-r ...

  2. bash下. : () {} [] [[]] (())的解释 (非原创,侵删)

    Copy from http://blog.chinaunix.net/uid-20380484-id-1692999.html bash下有很多像{}.[]等一些符号命令,下面是我对一些常用的符号命 ...

  3. linux通配符与正则表达式

    通配符   *  任意字符,可重复多次     ? 任意字符,重复一次     [] 代表一个字符 举例: [a,b,c] 表示abc中任意一个 通配符的作用是用来匹配文件名的 正则表达式 正则表达式 ...

  4. repo版本切换

    repo init -u https://android.googlesource.com/platform/manifest repo sync 之后 这样初始化之后,相当于下载了全部的分支, 本想 ...

  5. 几张图带你轻轻松松了解小程序和APP的区别

    微信"小程序"的公测一开放,立即在朋友圈刷屏无数,仿佛人人都在互联网圈.但是因为微信限制,程序还不能发布使用,所以也极少人看到真正的小程序是怎么样的. 小程序驿站专注微信小程序的开 ...

  6. java虚拟机学习-JVM调优总结(5)

    数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型.基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用,而不是对象本身, ...

  7. nodejs服务实现反向代理,解决本地开发接口请求跨域问题

    前后端分离项目需要解决第一个问题就是,前端本地开发时如何解决通过ajax请求产生的跨域的问题.一般的做法是通过本地配置nginx反向代理进行处理的,除此之外,还可以通过nodejs来进行代理接口.当然 ...

  8. DATA VISUALIZATION – PART 2

    A Quick Overview of the ggplot2 Package in R While it will be important to focus on theory, I want t ...

  9. 多线程编程-- part 5.3 LockSupport

    一.LockSupport的介绍 LockSupport是用来创建锁和其他同步类的基本线程阻塞原语.  LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程 ...

  10. 基于类(Java)和基于原理(JavaScript)的对象系统的比较

    Java:面向对象编程语言,吸收了C++语言的各种优点,丢掉了C++让人头疼的多继承.指针等概念.具有功能强大和简单易用的两大特征.Java具有简单性.面向对象.分布式.健壮性.安全性.平台独立与可移 ...