旅行者

海内存知己,天涯若比邻。

博客园 首页 新随笔 联系 订阅 管理

MPEG-4技术的应用将使当前很多提供声音和数据服务的系统得到进一步的扩展,根据涉及ISO标准的版本、部分、类(profile)和等级(level)的不同,MPEG-4对应不同的技术。本文将讨论所有不同的MPEG-4技术,研究MPEG-4的需求、架构和实现策略,并讨论计算需求以更好地理解MPEG-4的实现。

MPEG-4标准活动开始于1995年,至今还在不断发展之中。此标准由如表所示的16部分组成,本文将详细讨论该标准的第二和第十部分,这两部分是关于视频编码处理。在很多出版物中经常出现MPEG-4,但常常并没有严格区分出MPEG-4到底是用软件还是硬件来实现的,本文试图更明确阐述“MPEG-4”这个术语。有关MPEG句法的一部分新版本使标准实现向后兼容,这是MPEG-4的第二部分。在新的不能后向兼容的技术引入MPEG标准后,在2001-2003期间又创建了MPEG-4的第10部分,即高级视频编码(AVC)。图1:不同类/级的每秒宏块数。

标准的创建需要通过工作草案(WD)、委员会草案(CD)、最终委员会草案(FCD)、草案国际标准(DIS)、最终草案国际标准(FDIS)和最终国际标准(IS)这一系列过程,在该过程中伴随着技术的汇集、融合和应用。标准的修正通常都会增加更多的类,MPEG-4的第二版修正1和2就增加了FGS类,而修正3又增加了简单可扩展level 0和高级简单可扩展level 3b。MPEG的类规定了用于协同操作点(interoperability point)的技术,等级规定了一个类的范围或大小。此外,MPEG还定义了码流和解码器的一致性问题,但并没有直接规定解码器的功能。

压缩技术与MPEG-4

为了更好地理解类和等级,先了解MPEG-4的简单类(Simple profile)和核心类(Core file)。简单类采用矩形I帧和P帧,具有基于运动补偿离散余弦变换(DCT)基本功能的编码处理。I帧为帧内编码,而P帧为帧间编码,这两类编码方式是为了降低冗余信息。核心类可以采用I帧、P帧和B帧视频对象平面(VOP),并具有采用二进制形状定义的任意形状编码功能。因此,如果采用核心类则必须开发出一种形状自适应DCT来实现与核心类的互操作,而在简单类中需要采用标准的8×8 DCT技术。

在MPEG的术语中,等级表示在一个类中的参数范围。一些重要参数有:对象数量、量化表数量、视频复杂度验证子(VCV)缓冲大小、VCV解码器速率(单位:kbps)。缓冲器大小和速度的限制,以及类采用的技术所规定的操作点(operate point)都明确定义了该类适合的应用领域。例如,假如互联网流媒体联盟(ISMA图2:对给定FPGA可以支持不同操作点。 1.0)决定在两个操作点之间的互操作,对于视频部分他们可以选择Simple@Level1和Advanced Simple@Level3。开发工程师可以根据所要求的信道码率和处理要求,选择一个最具成本效益的类和等级。

MPEG-4复杂度变化

随着数字视频的广泛应用,目前已经存在多种不同的MPEG-4解决方案复杂度。由于存在好几种不确定因素,使得在设计一个复杂的视频编解码器之前很难确定真正所需要的计算能力。由于MPEG参考代码的编制过程中会有若干公司和会员单位参与,尽管代码在功能上是正确的,但在实时性和存储器管理上并没有实现优化。事实上,MPEG-4有第5部分的参考软件和第7部分的优化参考软件。即使是优化的参考软件,由于它必须避免采用特定供应商的处理器代码,因而比商业解决方案还是慢3到5倍。目前有两个独立于处理器的评估工具可以帮助评估MPEG参考代码的复杂度:IMEC公司的Atomium工具评估软件的内存转移情况,而EPFL SIT工具以运营商的角度来评估最优化情况。这些评估工具的作用就是要给出在MPEG-4的类中的某项技术复杂程度的总体认识。

在了解了不同的MPEG-4技术的计算复杂性之后,下一步就是要知道编码器和解码器需要处理的原始数据量,通过了解每秒中宏块数量就可以轻易地得到该数据。图1中列出了简单类的level 1到level 3,高级类的level 0到level 5,主类的level 2到level 4。值得注意的是,除了三个类的技术不同以外,不同操作点在单位时间内能处理的数量具有很大的差异。此外,如果包含了演播室类(Studio profile),这个范围可以达到每秒三百万个宏块。

MPEG-4的实现表:MPEG-4的不同部分和功能描述。

假定你能够确定一个或一系列操作点,怎样才能实现实时操作呢?通过正确的MPEG-4技术的类估计,为满足类似于每秒内的宏块数的系统级参数的并行特性要求,将采用一种具有软件配合的视频管线架构(video pipeline architecture),FPGA可以提供这种必要的并行特性来实现实时的、具有成本效益的视频编解码器。考虑硅器件的MOPS(百万操作每秒)参数,目前有约2,000MOPS的通用处理器,而采用DSP处理器可以将这个数字提高到约8,000MOPS,但存在数据流由限运算单元处理的缺点。带有专用处理引擎的媒体处理器,如位运算单元可以将该参数提升到20,000MOPS,但FPGA和ASIC具有更高的设计自由度,可以扩展到100,000MOPS以上。

FPGA基于SRAM技术的特点使其具有可再编程功能。因此,对于一个给定的FPGA设计可以支持几种操作点和不同的信道数,如图2所示。在必要的情况下,不同的MPEG-4技术还可以编程在同一个FPGA中,在不超出FPGA计算能力条件下,甚至还可能支持MPEG-4标准未来的类和等级。像ISMA这样的系统级要求经常具有不同的操作点以满足不同的应用需要,利用FPGA的重编程的特性可以开发出足不同市场需求的设备。

posted on 2004-07-12 13:26  旅行者  阅读(1903)  评论(0编辑  收藏  举报