How tough life is, how strong you should be!
分类: LINUX
2013-01-08 10:53:37
1.视频数据编码的办法
对数据进行编码的目的前面以前提过,一方面降低数据体积,一方面保留数据携带的信息量..对于视频数据,我们要做的将是降低数据何积和保证数据解码后的视觉效果.视频数据编码一般有三个方法:
a.去除时间冗余度(时间冗余度是指视频数据在各帧之前的信息冗余)
b.去除空间冗余度(空间冗余度是指视频数据帧中各像素的信息冗余)
c.去除静态冗余度(静态冗余度是指视频数据在存储介质中的信息冗余)
2.MPEG4的编码方法
MPEG4是一种基于内容和视觉效果的编码方法.
基于内容:
MPEG4的基本编码单元不是每个图像帧,而是一个AVO(Audio Visual Object),这时以VO为例.一个视觉场景中可以有多个VO.比如说背景VO,前景VO,头像VO等.对于前景等信息比较重要的VO,MPEG4采取高质量的编码策略,以保证图像质量;而对于背景等信息相对次要的VO来说,MPEG4采用低质量的编码策略,甚至可以丢弃不用.从而大大降低了数据的码率.
基于视觉效果:
我们知道,人眼对于不同的信号,它的各级敏感程度是不同的.比如,人眼对亮度信号的敏感程度大于色彩程度,对于低频信号的敏感程度大于高频信号的敏感程度;对于静态信号的的敏感程度大于动态信号的敏感程度.针对亮度信号的敏感性,MPEG4选择YUV(亮度色差空间)做为其视频输入格式,同时利用DCT(离散余弦变换)对视频数据的频率进于适当的处理等.
总的来说,MPEG4在视频数据编码中同样采用三个策略:
a.采用动态补偿(Motion Compensation)支除数据时间冗余度
所谓动态被偿指的是当前帧可以通前一帧或前N帧加上它的运动预测构建得到,这就使得当前帧的体积中是一个运动分量,从而大大被降低了.
b.采用离散余弦变换(DCT)和游程长度编码(RLC)去除数据空间冗余度.
c.采用可变长编码去除数据静态冗余度
3.MPEG4编码标准层次结构
MPEG4编码标准的层次结构可以简单的表示如下:
视觉场景->VS(Visual Object Sequence)->VO->VOL(Visual Object Layer)->VOP(Visual Object Plane)
一般来说,一个视觉场景中可以包含一个VO的序列,称为VS.VO主要被定义为画面中分割出来的不同物体,每个VO有三类信息来描述:运动信息、形状信息、纹理信息.这里提到的VOL,指的是VO在基于内容或者要求较高的应用中,可以是场景中的某一层面,在一些低比特率的应用中,VO可以就是一个矩形帧,从而与原来的标准兼容.视频对象平面(VOP)是视频对象(VO)在某一时刻的采样。VOP是MPEG-4视频编码的核心概念。VOP之间可以互相独立的编码,也可以相互通过运动补偿来进行编码。VOP我们可以理解为普通编码中的帧.
4.MPEG4编码流程
第一步是VO的形成(VO Formation),先要从原始视频流中分割出VO,之后由编码控制(Coding control)机制为不同的VO以及各个VO的三类信息分配码率,之后各个VO分别独立编码,最后将各个VO的码流复合成一个位流。其中,在编码控制和复合阶段可以加入用户的交互控制或由智能化的算法进行控制。
MPEG4的解码过程实际上是编码的一个逆过程