随着消费类电子产品(手机、PDA、PMP)市场的急剧发展,消费者对于多媒体(主要表现在视频应用上)应用的需求日渐增强。对于供应商来说,这意味着一个或者两个多媒体编解码器已经远远不够。尤其在现今视频市场多标准共存的情况下,如何实现消费类电子产品对于视频应用的支持成为处理器引擎需要面临的挑战。
实现视频解码通常有3种方法:其一,用RISC CPU与RTL加速器;其二RISC CPU+DSP引擎+RTL加速器;其三,可配置型处理器。在这3个方案里面,前面两者是目前市场上普遍应用的方法,然而通用CPU巨大的功耗与面积问题让便携式视频应用举步维艰,而RTL加速器虽然在处理速度上颇具优势,然而随着标准数量的增加,RTL模块的数量以及复杂度也直线上升,另外,无论升级或者修改硅芯片都需要重制。因此,以可编程性处理器来承担全部的视频解码任务的解决方案是在功耗、性能与设计灵活性之间找到了一个合适的平衡点。
正是看中这样的市场机会,Tensilica公司向全球发布了4款支持目前主流的视频编解码算法的标准视频处理器内核——Diamond VDO。与前两种方法不同的是,可配置视频处理器有机会调整DSP功能,以适应现实中各种视频处理标准的改变。Tensilica可扩展的视频引擎处理器不需要大功耗CPU,占用空间面积同时缩小,编解码任务可由视频处理器完成,从而将CPU从大功耗与过多的任务处理中解脱出来。而传统方法中主机处理器和解码器间过多的通信所引起的总线传输功耗,亦因为可配置视频处理器可以利用CPU定制的内部数据通道上传输完成,从而节省了功耗。
在发布会上面,Tensilica公司移动多媒体方案市场总监Larry Przywara为我们详细讲解了Diamond VDO系列的架构。得益于Xtensa可配置处理器技术,Diamond VDO采用双处理器的架构,包括一个集成DMA引擎,能以极低时钟速率实现完整D1 Main profile的解码和ASP编码(完整的H.264 Main profile解码仅需172MHz,而MPEG-4 Advanced Simple Profile (ASP)的解码仅需156MHz)。Diamond VDO双核架构包括基于Xtensa架构配置得到的一个流处理器和一个像素处理器。流处理器指令集对视频数据(熵解码、运动向量的预测等等)的串行式处理进行了优化。像素处理器指令集采用SIMD(单指令多数据)技术,对像素数据的并行式处理进行了优化。Diamond VDO还定义了400多条视频专用指令(其中包括了CABAC、CAVLC、Deblocking、Transforms、运动补偿和运动估计等)来对视频数据串行式处理进行优化。
Larry谈到之所以特别强调Diamond VDO对于CABAC的支持是因为目前市场上的解决方案里面都忽略了对CABAC功能的支持,通常采用独立的复杂的且不可扩展升级的RTL加速模块,或者是以更高频率的通用型CPU来实现。这明显增加了系统设计的复杂度以及功耗。Tensilica是第一家采用纯软件方案(指令集扩展的方式)来实现CABAC视频解决方案。这样做最明显的好处当然是降低了整体的功耗以及面积。Larry先生解释道,“因为传统的解决方案当中,数据通过总线在CPU与加速器之间传输时是会产生大量的功耗的——这部分功耗却往往被厂商忽略。而Diamond VDO因为采用扩展处理器的指令集的优化方式,因此省却了频繁的总线传输。这是降低功耗的一个关键所在。另外一点就是,当Diamond VDO引擎没有用于视频处理的时候,它可以被当作一个相当于500 MIPS的通用型处理器来执行其他系统任务。相对应的,传统的RTL模块则无法做到这样的可重用性。”
由于消费者的需求扩展了消费类设备中ASIC的技术规格要求,越来越多的应用将通过使用可配置处理器来执行。借助于可配置处理器所带来的自动设计流程,新的功能支持将会像软件升级一样简单,而设计和验证时间也将大大降低。