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 ...
随机推荐
- Jmeter-BeanShell Sampler调用java代码
1.添加BeanShell Sampler 2.编写BeanShell Sampler代码 3.引用参数 ${id}
- altium布局布线原则
布局应该先放位置确定不能随意变动的,之后是核心器件,然后是周围器件,如果周围器件过多,为防止布线时交叉过多,可以一部分小模块放到底层. 布线时优先顺序为先电源线和网络中使用频率高的线,之后是信号线.走 ...
- 第一次Sprint团队贡献分
201406114105 董婷婷 21 201406114157 容杰龙 22 201406114343 卓炜杰 ...
- mongooseim xmpp 服务器docker 安装试用
备注: 预备环境docker xmpp client 1. 启动mongooseim docker run -d -t -h mongooseim-1 --name mongooseim- ...
- lapis http verb 处理
1. 同一个url 包含不同的请求(respond_to 进行解决) // 路由格式 match ,通过respond_to 进行实际的http verb 处理 local lapis = requ ...
- hashids 了解
用于隐藏真实的id 原理是从数字经过一个加盐(salted)算法产生一个哈希(hash)字符串.这样算法就是通过混淆使结果具有不可预测性,而唯一性依然由数字本身来达成,从而得到(类似 youtube ...
- hdu 1724 Ellipse——辛普森积分
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1724 #include<cstdio> #include<cstring> #in ...
- 安装sphinx报错(undefined reference to `libiconv_open' 、undefined reference to `libiconv'、undefined reference to `libiconv_close'、make[1]: *** No rule to make target `all'. Stop. 、make: *** [all-recursive
(为知笔记copy过来格式有变,希望对遇到此问题的童鞋有帮助) 具体错误: Thank you for choosing Sphinx! [root@vm-vagrant csft-4.1]# mak ...
- 搭建基于hyperledger fabric的联盟社区(二) --环境配置
接下来讲一下在本地测试区块链网络的过程.我要部署的是2peer+1orderer架构,所以需要准备三台虚拟机,为了方便起见可以先把一台配置好,然后复制出剩余两台即可.搭建虚拟机我用的是virtualb ...
- 监控mysql状态并发送Email
*/10 * * * * /shell/mysql_status.sh > /dev/null 2>&1 #!/bin/bash port55=`/usr/sbin/lsof - ...