5.MPEG-4 压缩编码标准
1.MPEG-4标准概述
- 与MPEG1和MPEG2标准相比,MPEG-4 更加注重多媒体系统的交互性和灵活性,主要应用于可视电话、视频会议等。
- MPEG-4 标准主要包含音视频对象编码工具集和编码对象句法语言两个部分。
- MPEG-4 标准的编码基于对象,便于操作和控制对象,MPEG-4 的对象操作使用户可在终端直接将不同对象进行拼接,得到用户合成图像。
- MPEG-4 具有很好的扩展性,可进行时域和空域的扩展,MPEG-4 可根据带宽和误码率的客观条件,在时域或空域进行扩展。前者指在带宽允许时增加帧率带宽窄时,减少帧率,以达到充分利用带宽;后者指对图像进行采样插值,增加或减少空间分辨率。
- MPEG-4 有多种算法,可根据需要选择,例如区域编码有 DCT、 SADCT、 OWT 等等。
- MPEG-4 为了支持高效压缩、基于内容交互和基于内容分级扩展,以基于内容的方式表示视频数据,引入 AVO(Audio/Video Object)的概念实现基于内容的表示。
2.AVO及数据结构

- VOP(Video Object Plane,视频对象平面)可看作 VO 在某一时刻的表示,即某一帧; GOV(Group of VOPs,视频对象平面组)提供视频流的标记点,标记 VOP 单独解码的时域位置,也即对视频流任意访问的标记;
- VOL(Video Object Layer,视频对象层),用于扩展 VO 的时域和空域分辨率,包含 VO 的三种属性信息;
- VO(Video Object,视频对象)如前所述,为场景中的某个物体,有生命期,由时间上连续的许多帧构成;
- VS(Video Session,视频镜头),一个完整的视频序列由几个 VS 组成。
3.MPEG-4标准构成
MPEG-4 提供自然和合成的音频、视频以及图形的基于对象的编码工具。类似于以前标准,MPEG-4 由若干部分组成, 主要部分为系统、视频和音频。 MPEG-4 码流主要包括基本码流和系统流, 基本码流包括音视频和场景描述的编码流表示,每个基本码流只包含一种数据类型,并通过各自的解码器解码;系统流则指定根据编码视听信息和相关场景描述信息产生交互方式的方法,并描述其交互通信系统。
3.1.系统
MPEG-4 系统把音视频对象及其组合复用成一个场景,提供与场景互相作用的工具,使用户具有交互能力。 MPEG-4 的系统终端模型如下图所示

3.2.音频
3.3.视频
MPEG-4 支持对自然和合成视觉对象的编码。合成的视觉对象包括 2D、 3D 动画和人面部表情动画等。对于静止图像, MPEG-4 采用零树小波算法(Zerotree Wavelet Algorithm),以提高压缩比,同时还提供多达 11 级的空间分辨率和质量的可伸缩性。对于运动视频对象的编码, MPEG-4 采用了如下图 所示编码框图,以支持对象的编码。
- DC 预测,可选择当前块的前一块或者后一块作为当前 DC 值
- AC 预测, DCT 系数的 AC 预测在 MPEG-4 中是新的。选择用来预测 DC 系数的块也用于预测一行 AC 系数。AC 预测对于具有粗糙纹理、对角边缘或水平以及垂直边缘的块效果不佳。在块级切换 AC 预测的通断是所希望的,但这代价太大,一般在宏块级作出
- 交替水平扫描,这种扫描被添加到 MPEG-2 的两种扫描中。 MPEG-2 的交替扫描在 MPEG-4中被称为交替垂直扫描
- 三维 VLC, DCT 系数编码与 H.263 类似
- 四个运动矢量,允许宏块的四个运动矢量,与 H.263 类似
- 无约束运动矢量,与 H.263 相比,可以使用宽得多的±048 像素的运动矢量范围
- 子图形,子图形基本上是一个传输到解码器的大背景图像,为了显示,编码器传送该图像的一部分并映射到屏幕上仿射映射参数。通过改变映射,解码器可以放大和缩小子图形,以及向左或向右。
- 全局运动补偿,为了补偿由于摄像机运动、摄像机变焦或者大运动物体引起的全局运动,按照下列公式的八参数运动模型进行补偿:
- 四分之一像素运动补偿,主要目的是以小的语法和计算上代价来提高运动补偿的分辨率,得到更精确的运动描述和较小的预测误差。四分之一像素运动补偿只用于亮度像素,色度像素则是用半像素精度运动补偿。
- 形状编码:相对以前标准而言, MPEG-4 第一次引入形状编码的压缩算法。编码的形状信息有两种:二值形状信息(Binary Shape Information)和灰度级形状信息(Grey Scale Shape Information)。二值形状信息为用 0、 1 的方式表示编码 VOP 形状, 0 表示非 VOP 区域, 1 表示 VOP 区域;灰度级形状信息可取值 0~255, 0 表示非 VOP 区域(即透明区域), 1~255 表示透明度不同的区域, 255 表示完全不透明。 灰度级形状信息的引入主要为了使前景物体叠加到背景上时,边界不至于太明显、生硬,进行“模糊”处理。MPEG-4 采用位图法表示这两种形状信息。 VOP 被一个“边框”框住,如下图所示
- 运动估计和运动补偿:类似于以前的压缩标准(MPEG-1、 H.263 等)的三种帧格式: I、 P、 B, MPEG-4 的 VOP 也有三种相应的帧格式: I-VOP、 P-VOP、 B-VOP,表示运动补偿类型的不同。运动估计和补偿可以基于宏块,也可基于块。
- 纹理编码:纹理信息可能有两种:内部编码的 I-VOP 像素值和帧间编码的 P-VOP、 B-VOP 的运动估计残差值。 MPEG-4 采用基于分块的纹理编码, VOP 边框仍分为 16×16 的宏块。

5.MPEG-4 压缩编码标准的更多相关文章
- MPEG-4 压缩编码标准
文章转自:http://www.cnblogs.com/CoderTian/p/8477021.html 1.MPEG-4标准概述 与MPEG1和MPEG2标准相比,MPEG-4 更加注重多媒体系统的 ...
- M-JPEG和MPEG-4的区别 M-JPEG VS MPEG
http://blog.sina.com.cn/s/blog_4b357b300100gre9.html M-JPEG VS MPEG http://blog.csdn.net/bluesky_sun ...
- 视频基础知识:浅谈视频会议中H.264编码标准的技术发展
浅谈视频会议中H.264编码标准的技术发展 浅谈视频会议中H.264编码标准的技术发展 数字视频技术广泛应用于通信.计算机.广播电视等领域,带来了会议电视.可视电话及数字电视.媒体存储等一系列应用,促 ...
- 流媒体 5——MPEG声音
1. 听觉系统的感知特性: MPEG声音的数据压缩和编码不是依据波形本身的相关性和模拟人的发音器官的特性,而是利用人的听觉系统的特性来达到压缩声音数据的目的,这种压缩编码称为感知声音编码. 许多科学工 ...
- HTML5视频Video 音频Audio
视频协议 视频格式 Flash HTML5 HTTP flv HTTP f4v HTTP mp4 HTTP m3u8 HTTP webm HTTP ogg RTMP flv RTMP f4v RTMP ...
- 【如何快速的开发一个完整的iOS直播app】(原理篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 目录 [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](播放篇) [如何快速的开发一个完整的 ...
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放 license收费等 ...
- iOS:app直播---原理篇
[如何快速的开发一个完整的iOS直播app](原理篇) 转载自简书@袁峥Seemygo:http://www.jianshu.com/p/7b2f1df74420 一.个人见解(直播难与易) 直播 ...
- H.264码流结构解析
from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX ...
随机推荐
- flask第十七篇——模板【1】
从这一节开始我们就正式进入flask一个重要的模块——模板了. 我们平时看的知乎平台就是Python开发的,可以看到他的很多页面布局都是一样的,比如你现在搜“如何自学Python”,去知乎看他的页面是 ...
- Flask第六篇——项目配置文件
我们在开发中,通常将一些需要用到的配置选项单独放在一个文件中,比如叫configs.py中.然后通过一些方式加载. 现在将加载配置文件的方法罗列如下: 1.先新建文件configs.py,文件代码: ...
- ldo的一些参数理解
psrr是衡量ldo抑制外来信号噪声的能力,而内部噪声是由基准电压和误差放大器引入的.通常器件手册说的输出噪声指的就是内部噪声. ldo的暂态响应也是一个重要指标
- memsql 基本安装试用
备注:使用docker 进行安装 1. 基本准备 a. 环境检查(必须,不然会有服务启动异常的问题) docker run --rm memsql/quickstart check-system b. ...
- js 正则表达式符号含义
\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功 ...
- 6.Python使用Pandas小案例
1.使用以下命令引入Pandas和xlrd,引入成功后在pycharm的setting导入即可使用(pip3是由于个人python版本为3.6)==在dos命令行输入以下信息 pip3 install ...
- 如何将angular-ui-bootstrap的分页组件封装成一个指令
准备工作: (1)一如既往的我还是使用了requireJS进行js代码的编译 (2)必须引入angualrJS , ui-bootstrap-tpls-1.3.2.js , bootstrap.css ...
- MOSS 2013研究系列---Win2008R2 建立域控时候,报密码不符合要求解决办法
今天远程给Win2008R2装AD域控的时候,突然报如下的错误页面: 修改了密码,将密码强度设置复杂了,但是,仍然会弹出这个错误页面,估计是因为远程账号的关系,于是再网上搜下了一下,找到了一个解决方案 ...
- Spring Boot Maven 打包可执行Jar文件
本文转载自:http://blog.csdn.net/smilecall/article/details/56288972 Maven pom.xml 必须包含 <packaging>ja ...
- dom4j使用的小例子
product.xml: <?xml version="1.0" encoding="UTF-8"?> <root> <produ ...