网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> DaVinci文章 >> DM644X系列 >> 文章正文
  [组图]MPEG-1/2到MPEG-4码流转换的研究与实现         ★★★ 【字体:
MPEG-1/2到MPEG-4码流转换的研究与实现
作者:61IC录入    文章来源:本站原创    点击数:    更新时间:2007-1-14    
摘 要 本文研究并实现了MPEG-1/2码流到MPEG-4码流的转换,包括MPEG-1/2码流的解码及其优化,MPEG-4视音频码流的编码及其优化,及编码后生成的MPEG-4视音频码流的合成。
关 键 词 MPEG,AAC, 编码,解码,码流


1.引言
MPEG( Moving Pictures Experts Group)是国际标准化组织(ISO)和ITU制定发布的视频、音频、数据的压缩标准。MPEG-1主要应用于数字存储媒体CD-ROM、Video-CD、CD-I等。MPEG-2追求的是图象质量DVB、HDTV和DVD等制定的3Mbps~10Mbps的运动图象及其伴音的编码标准。MPEG-4[1]不仅是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG4试图达到两个目标:一是低比特率下的多媒体通信;二是多工业的多媒体通信的综合。由于MPEG-1/2图像中的音视频不能与人们进行交互,交互性与灵活性较低,以及多媒体通信的迅速发展,在电信业、计算机业、广播电视业趋于融合的发展趋势中,MPEG-1/2应用面不宽的缺陷日渐显露。同时由于现有的极大多数的存贮介质如VCD,DVD上存贮的多媒体数据以及网络上传输的多媒体数据是以MPEG-1/2格式存储的。因此,为了充分利用现有的宝贵资源以及适应未来数据媒体存储、传输、处理的需要,把现有的MPEG-1/2码流转换为MPEG-4码流势在必行。本文的研究内容来源于省发展高新技术产业计划项目中的“MPEG-1/2码流到internet上MPEG-4码流的转换”课题,这个项目正是基于internet和第三代移动通信多媒体服务发展的需要而立项的。
本文首先设计出转换系统的总体结构,然后详细介绍了总体结构中的各个模块的设计与实现及优化,最后给出了实验结果。
2.转换系统的总体结构
本转换系统的总体结构如图1所示。输入的MPEG-1/2文件经码流分析模块,通过MPEG-1/2文件音视频解码模块实现音视频流的解码,生成视频YUV数据与音频PCM数据。经解码得到音视频数据便可以用来完成显示和播放任务。同时通过MPEG-4音视频编码模块可以把解码得到的音视频数据分别编码为MPEG-4视频码流与MPEG-4音频码流。最后通过MPEG-4音视频码流合成模块完成MPEG-4音视频码流的同步与合成,生成标准的AVI文件。


3. MPEG-1/2码流的解码
(1)解码原理。解码可分成三部分,解复用、拆包和视频解码及音频解码。系统码流的总体解码过程如图所示。


(2)解码实现。本转换系统中使用的MPEG-1/2解码器是在MPEG组织提供的源代码的基础上进行优化产生的,主要针对IDCT变换和运动补偿部分进行优化。
MPEG组织提供的视频解码器和音频解码器的源代码是独立分开的,所以在进行MPEG-1/2解码器的具体实现时,首先需要实现MPEG-1/2系统码流解码的分析部分,然后分别调用MPEG组织提供的视频解码器和音频解码器的源代码来解码视音频码流部分。
(3)码流分析。码流分析主要是在码流上查找解码所需的信息,由于MPEG-1/2码流是结构化的,结构的开始都有一个起始码或同步信息码信息,这是查找的主要内容索引。在码流分析中,首先判断文件是否为有效合理的MPEG文件,以防止文件严重损坏或根本不是MPEG文件。接下来,判断此文件是MPEG-1文件还是MPEG-2文件。然后循环扫描每一个音视频包,根据包标识,可判断此MPEG文件由几个音频流、视频流组成。对于音频流,如果是MPEG-2文件还需进一步判断采用的是Mpeg还是AC3音频压缩算法[2]。
(4)解码优化。在对源代码进行优化时,对于IDCT变换部分,本转换系统使用了快速IDCT变换,同时使用了MMX指令对IDCT进行了优化。并且对于运动补偿部分本转换系统也使用了MMX指令进行了优化,从而使解码速度大大提高。
4. 视音频数据的MPEG-4编码
(1)编码实现
本转换系统使用的MPEG-4音视编码器是在微软提供的源代码的基础上进行优化产生的。MPEG-4仔细地制定了解码算法和比特流格式,但容许任意选择编码算法。这给开发人员很大的空间,来设计和实现这些编码算法。对于音频编码器,采用的是AAC时间/频率编码器。对于视频部分编码器,研究表明,运动估计运算消耗时间约占MPEG-4视频编码总时间的60%-70%,并且影响到压缩质量。因此本文主要是针对视频部分的运动估计进行优化。
(2) 视频编码中全局运动估计的优化
用 [xi,yi]T 表示某像素点在当前图像中的位置,用 [x′i,y′i]T表示该像素点在前一帧图像中的对应位置。它们的对应关系用六参数仿射参数模型表示:
x′i=axi+byi+c,y′i=axi+eyi+f (1)
用I(x,y)和I′(x′,y′)分别表示这当前图像和根据参考帧得到的预测图像,用θ=(a,b,c,d,e,f)T 表示参数矢量,I′(x′,y′)是参数矢量θ的函数,则目标能量函数为:


全局运动估计就是求解待定参数θ,使得R(θ)取得最小值,从而得到参数的最佳估计。用GaussNewton方法或者Levenberg Marquadet方法可以迭代求解。假设已有第k步的参数θk,通过目标函数R(θ)在该点作泰勒展开来近似R(θ):
R(θ)≈R(θk)+gTk(Δθk)+12 (Δθk)THk(Δθk) (2)
其中gk 和Hk 分别是R(θ)在θk处的梯度矩阵和Hessian矩阵:


γk=[r1 r2 …rN]T 表示θk 处的残差,Jk= γ/θ,W是对角方阵且Wii=wi,Hik是γi 的Hessian矩阵,如果残差γ是比较小,那么可以做如下近似:Hk≈JTkWJk,根据方程R(θ)/θ=0由方程 (2 )可以得到:
JTkWJk(Δθk)=-JTkWγk (3)
根据方程(3)就可以得到θk 处的增量,这样就可以求出下一步参数:θk+1 =θk+Δθk,这样迭代就可以逐步减小目标函数。全局运动估计是基于密度估计(最小二乘原理)的,对外点比较敏感,而图像中既有背景全局运动也有前景物体的局部运动,这些局部运动点对于全局运动估计来说就是外点 (噪声),MPEG-4中全局运动估计算法只是在迭代之前用残差直方图去除10%残差比较大的点,在迭代过程中方程(3)中的权值矩阵为单位矩阵。不能很好地抑制外点影响。因此导致迭代收敛慢计算结果不准确。由于迭代计算中都涉及微分运算,这些算子易受噪声影响,所以在迭代计算时做了如下改进[3]:
(1)在迭代计算时采用wi=(|γi|+1 /σ)/ (σ2 +γ2i)2 加权,其中σ为残差的标准方差,当残差γi比σ大许多时,权值就会很快减小,这样可以增加算法的鲁棒性。
(2)由于微分运算易受噪声影响,梯度较小时受噪声影响较大,所以在图像中梯度小的点的梯度值是不可靠的,在迭代计算中可以选取梯度较大的点进行计算,本文算法是取平均梯度1.25倍和1.65倍之间的点,这是从实验统计中得出的。
(3)用三层金字塔进行快速估计 ,在金字塔前两层计算时采用基于直方图的方法去除外点:根据当前运动参数进行补偿后得到残差图像,然后根据残差图像直方图中90%处得到阈值,最后就可以去除残差大于阈值的点;而由于前景区域有集中性,所以在三层金字塔计算的最后一层计算时,采用残差块的方法去除外点:首先用初始参数计算残差,然后将图像分成16×16的块,再计算每个块的残差值(将该块内所有点的残差相加),最后就将块残差较大(1/3左右)并且有聚集在一起(8连通)特性的块作为外点整体去除。
实验结果表明,从全局运动的执行时间来看,本文算法的全局运动估计速度是MPEG-4中算法的 5倍以上,并且图像压缩率也有所提高。从实验结果整体来看,本文算法在提高速度的同时编码性能没有损失太多,和以前编码性能是可比的,而且在某些序列还有所提高。

3.3 MPEG-4视音频码流的合成
在前面谈到了MPEG-4视音频码流的生成,接下来需要把MPEG-4视音频码流同步、合成为一个输出文件。在MPEG-4标准中这就应涉及到MPEG-4系统标准部分。到目前为止,MPEG-4系统标准还没有被完全投入使用。同时也由于MPEG-4系统标准的复杂性,所以我们必须另辟蹊径。而AVI文件格式正好满足把MPEG-4视音频码流同步、合成为一个输出文件的要求。因此本文把MPEG-4视音频码流写成一个AVI文件输出。
AVI即音频视频交错(Audio Video Interleaved)格式[4],是由Microsoft公司开发的一种视频和音频交错存储的文件格式,AVI文件没有限定压缩标准,即同样是以AVI为后缀的视频文件,其采用的压缩算法可能不同,需要相应的解压软件才能识别和回放该AVI文件。
AVI文件用的是AVI RIFF形式,AVI RIFF形式由字串“AVI”标识。AVI文件一般由三部分构成:信息区、数据区和索引区(可缺省)。其中两个LIST块是必须的,这两个块定义了流和数据流的格式。索引块是任选的块,它给出了文件中这些数据块的地址。我们也可以添加自定义的块。
在进行MPEG-4视音频码流同步合成时,首先初始化信息区,给出音频流的压缩格式信息及视频流的压缩格式信息。然后每次向AVI文件中写入一帧MPEG-4视频流,一帧或几帧MPEG-4音频流。由于在MPEG-1/2的码流文件中音视频码流是交织放置的,并且已经是同步的码流了。因此在解码过程中MPEG-1/2的音视频码流也是交织解码的,相应的解码后的音视频数据也是交织编码的。这样就很容易地实现MPEG-4的音视频码流的同步和合成了。
4.实验结果
图3是此转换软件播放转换前MPEG-2文件的显示效果,此文件大小为5.21M。图4是用Windows Media Player播放转换后MPEG-4文件的显示效果,此文件大小为376K。可见,使用MPEG-4音视频编码算法压缩后的文件大小为使用MPEG-1/2音视频编码算法的原始文件大小的1/14,而且图像质量仍能保持转换前的效果。
综上所述,此转换软件在保持原始文件图像质量的前提下压缩率较高,同时转换后生成的MPEG-4码流文件可用通用的多媒体播放软件如Windows Media Player播放。因此,对此转换软件的研究是十分具有实际意义与科研价值的。
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于MPEG-4的嵌入式多媒体监…
    基于MPEG-4的嵌入式DVR分析与…
    MPEG-4 ASP视频编码器的软件…
    可同时实现MPEG-4编解码功能…
    MPEG-4实时编码器在ADSP-BF5…
    基于SDL的跨平台MPEG4播放器…
    LINUX MPEG4 DVR源代码
    基于MPEG-4的视频压缩基础
    MPEG-4技术的演进与在中国的…
    基于VW2005的MPEG-4音视频压…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号