基于基于Xtensa可配置处理器技术的视频加速引擎技术开发可配置处理器技术的视频加速引擎技术开发
现代可配置和可扩展处理器是构建定制视频和音频引擎的理想选择。Tensilica公司提供相关的视频和音频IP作为
SOC模块,包括HiFi 2音频引擎、钻石系列标准的38xVDO(视频)多标准和多分辨率视频方法。与之匹配的软
件编解码器是非常重要的。HiFi 2音频引擎与相关的软件一起可完成绝大部分流行的音频编解码器,例如MP3、
AAC、WMA等。类似地,钻石 38xVDO 视频加速引擎与相应的编码器和译码器软件可以实现H.264 (包括
Baseline、Main和profiles)、MPEG-4 (SP 和 ASP)、 MPEG-2、VC-1/WM9及其它标准。这些视频技术涵盖了
从QCIF 到CIF以及SD各种分辨率,功耗低,面积小。
掌上多媒体设备的增长极大地改变了终端多媒体芯片供应商对产品的定位需求。这些芯片提供商的IC设计目标不再仅仅针
对一两种多媒体编解码器。消费者希望他们的移动设备能够利用不同的设备来播放媒体,能够采用不同的标准进行编码,并能
够从不同的设备来下载或者接收媒体数据。视频译码器和编码器引擎必须满足多种需求,并具有面积和功耗优势。
1、设计视频加速引擎的传统RTL方法
上一代视频ASIC的设计主要对MPEG-2进行编码和译码,因为这是DVD标准。有些视频ASIC还支持MPEG-1,用于
VCD(视频CD)播放。在多数情况下,MPEG-2编码器和译码器都采用RTL设计方法。一个典型MPEG-2视频ASIC体系结构
如图1所示,其中包括由各个RTL模块构成的视频子系统、主控制器和片上存储器。
图1 MPEG-2视频ASIC体系结构
采用硬线RTL体系结构支持多种视频标准,然而,这也意味着每个视频标准都需要一个专用的RTL模块来实现。采用硬线
RTL模块实现一个多种标准的视频加速引擎具有一定的局限性。无论是实现一个新的视频标准、更新已有的标准还是消除其中
的故障都需要重新进行芯片加工。
2、采用处理器作为视频加速引擎的优势
可编程处理器能够满足多种视频标准的灵活性要求。与RTL模块设计方法相比,可编程处理器具有如下几个优势:一是易
于将编解码器与处理器接口;二是满足新的视频标准要求、更新现有编解码器或者采用软件方法在芯片投片后也可以修改故
障;三是可以采用软件更新的方法很容易地提高视频编解码器的性能。
然而,传统的32位处理器存在性能瓶颈,因为它们是面向通用代码设计的,而不是面向视频加速引擎设计的。嵌入式
DSP也并非专门为视频量身定做的,而是包括硬件功能部件、指令和接口,专门应用于通用DSP领域。因此,为了在传统
RISC和DSP处理器上实现视频编解码器,就必须使这些处理器运行在很高的速度(Mhz)上,需要大量的存储器空间,因此需要
很大的功耗,不适合便携式应用。
通过研究一个视频内核程序所需要的计算量,即可一目了然。比如,一个绝对差值累加运算SAD,该运算是大部分视频
编码算法中运动估计一步常采用的方法。SAD算法将会在相邻两个连续视频帧中找出宏块的运动情况,为此,需要计算两个
宏块中每一组对应的像素值之间绝对差值的累加和。
下面C代码给出了SAD核心算法的简单实现:
for (row = 0; row < numrows; row++) {
for (col = 0; col < numcols; col++) {
accum += abs(macroblk1[row][col] - macroblk2[row][col]);
} /* column loop */
} /* row loop */
SAD核心算法的基本计算方法如图2所示。正像图中所示的那样,SAD核心算法首先执行减法操作,然后取绝对值,最后
对前面的结果进行累加。
评论0
最新资源