关键是能高效地处理各种标准
然而,仅仅因为一个处理器能够编程并不意味它就能高效地处理每一种标准。通用嵌入式CPU若用于处理视频流则显得配置不足,仅解码一段低质量的视频就不得不以极高的主频运行。因此,这种方案对便携式设备而言能效比太低。相反,专用视频处理器中集成有专用指令集,可以利用SIMD(单指令多数据)技术进行像素数据的并行处理或利用特殊指令进行视频数据的串行处理(例如熵解码、运动向量预测等)。在设计Diamond 388VDO标准视频引擎时,Tensilica公司在标准32-bit RISC指令集之外还增加了很多视频专用的指令集以优化引擎的视频处理能力。
要实现用于H.264 主规范的处理器尤其困难。H.264主规范采用了比特流无损熵编码中基于上下文的自适应二进制算术编码(CABAC)方法。要从CABAC比特流中解码每个二进制元素(称为bin)需要依赖于前一bin的完全解码结果,每个bin都对解码器的状态有很大影响。有两种嵌入式处理器能严格用软件实现实时CABAC解码:菲利普半导体(NXP)的Trimedia和Tensilic Diamond 388VDO。全软件CABAC解码这种方法经证实有一大优点,那就是在高比特率工作情况下能够达到最高效的性能。
Tensilica能够使用指令集扩展实现全软件的熵解码,因而能创建出可处理复杂比特流的低时钟速率、高能效视频处理器。例如,Tensilica能以仅162 MHz的时钟速率实现对一个5 Mbps比特流的所有D1 Main profile解码。
与此类似,H.264 Main profile支持B帧和交织式视频内容,而这两项功能会给经验不足的视频处理器和编解码器开发人员带来很大困难。解决视频编解码器难题最简单的方法就是增大DRAM存储器带宽。这种方法在高端PC机上没有问题,但用在嵌入式系统中就不现实了。由于受功耗和成本限制,嵌入式系统无法承受这样的DRAM带宽浪费。
图1所示为Tensilica Diamond388VDO标准视频引擎的框图。其中包含两个Tensilica Xtensa可配置处理器和一个DMA控制器,可最大限度发挥视频压缩解压算法固有的并行性。Diamond 388VDO内核中的流处理器和像素处理器共同分担视频压缩任务,DMA控制器则负责在处理器内核内外和两个处理器之间传送压缩前后的图象。Diamond 388VDO视频引擎中的每个处理器都有自己的指令集和数据RAM。

图1:Tensilica的 Diamond388VDO视频引擎框图。
上一页 [1] [2] [3] 下一页