由于消费者对便携式多媒体设备的强劲需求及技术上的进步,设备制造商面对的挑战是必须把更多的功能和服务集成在越来越小型、价廉和功能多样化的产品中。要了解如何针对这个市场创建高价值及与众不同的多媒体SoC,我们必须先看看目前一般的便携式多媒体设备能够实现的技术范围。
多媒体―多种标准的视频、音频及图像解码编码,如H.264、VC-1、MPEG4、AAC、MP3、JPEG。
无线―GSM或CDMA、WCDMA、TD-SCDMA、1xEV-
DO、WiMAX。
?
图形―包括用于游戏及先进GUI的2维和3维(立体)图形。
?语音识别―几乎是目前市场上各款新手机的标准配置。
连接和定位技术―如蓝牙、GPS、WiFi、UWB、WiMAX,包括天线、RF 和基带处理。
当针对SoC设计视频引擎时,该引擎必须能够支持多种不同的应用和标准:
视频播放/录制(电影、短片、播客(P odcast) 等)采用H.264、 MPEG4、 VC-1 或MPEG2。
视频会议采用H.263 (MPEG4短标头) 或 H.264。
?MobileTV采用H.264 或 VC-1。
此外,在当今便携式多媒体设备的众多视频标准中,有着大量的内容类型和文件格式:
文件格式:3gp、m4v、mpg、avi 等。
?内容类型:
?以文件为基础―在播放或录制存储在设备局域存储器上的短片或电影时使用。
视频流―用于播放经运营商网络传送的短片。
广播―用于MobileTV应用。
交互式 ― 允许用户与多媒体内容进行交互活动。
为了在便携式多媒体SoC中支持上述所有的视频标准与内容类型,有三种可行的方案。
硬连线加速器-面积小&性能高
硬连线加速器能以最高的效率和很少的门数执行某一特定标准 (通常是单一标准) 的单项功能 (解码或编码)。开发之后,硬连线加速器便可在不同的SoC上被复用,但只限于完全相同的功能。举例说,在VGA分辨率下支持MPEG4 Simple Profile编码的加速器需要大约15万个 NAND-2等效门电路,而在D1分辨率下同时支持MPEG4(Simple Profile)和H.264 (Baseline Profile) 解码的加速器必须完全进行重新设计,需要大约 350万个门电路。
图1所示为常见的SoC架构,包含了视频硬连线加速器、用于音频/语音处理的DSP引擎,以及实现上述二者间同步并运行其它内务和系统任务的CPU。
图1 采用硬连线加速器的系统架构(略)
采用硬连线加速器有多项优点:
面积―执行固定的操作不涉及任何指令处理 (取指令、解码),并无需程序内存管理,故门数相对较低。
功耗―低门数和高效的实现方案能带来低功耗。
性能―就执行时间和工作速度而言,这是非常有效的
实现方案。
不过,这种方案也存在某些缺陷:
只限于视频―使用硬连线加速器时,多媒体处理的音频和语音部分由SoC中的其他部件处理(通常是CPU
或DSP)。
视频和音频间的同步在CPU上完成 ― 在CPU上执行同步操作增加了开发工作量、集成度和QA。
功耗―使用硬连线加速器时,CPU一般执行算法的熵编码部分(如CAVLC)和后处理部分 (如去块效应滤波器),故在高比特率下该解决方案极为耗电(在约150MHz的负载情况下,ARM11内核的功耗便高达120mW。)
? 软件更新和Bug修复―Bug无法通过软件更新来越过或修复,很大机会需要重新流片。
下一代产品―硬连线加速器在多媒体SoC中执行某一特定功能,很可能无法满足下一代的产品要求。
存储器―SoC中的任何其他元件都无法存取加速器专用的存储器,因此在成本和芯片尺寸方面的效率很低。
有些硬连线加速器能够支持多个标准的解码操作 (即H.264 Baseline Profile 和 MPEG4 Simple Profile)。尽管这些加速器很有用,但它们已失去低门数这一主要优势。
视频协处理器-多标准视频引擎
视频协处理器以可编程的方式支持不同的视频标准,并通常执行解码和编码处理。以视频协处理器为基础的架构 (40至50万个门电路) 在面积方面往往比以硬连线加速器的大。但是,视频协处理器在支持多种视频标准方面具有更强的灵活性。
视频协处理器有两种不同的基本类型:
1. 混合型 ― 包含专用的CPU和附加的硬件模块,共同构成“视频协处理器”以加速视频处理。
2. 专用视频内核型 ― 是支持多标准的视频引擎,和混合模型相比是更为有效的解决方案,它没有CPU功能 (与混合型不同),只能进行视频处理。
图2所示为其常见的SoC架构,当中包含了执行视频编码解码功能的视频 协处理器、用于音频/语音处理的DSP引擎,以及实现音视频同步并运行系统任务的CPU。
图2 采用视频协处理器的系统架构(略)
采用视频协处理器的主要优势有:
支持多标准―无需硬件扩展即可支持多种视频编解码标准。
可扩展性―同一个平台可支持不同的分辨率和帧速率。
面积―该解决方案的面积一般在硬连线加速器和通用处理器之间。
Bug修复―与硬连线加速器不同,Bug可以通过软件更新来屏蔽 (因此无需重新流片)。
不过,这类方案也有一些缺点如下:
?音频处理―这种解决方案专为视频处理而设计,并不包括音频处理或视频/音频同步所需的硬件支持 (如TDM
端口、面向音频的操作)。
?内存―视频协处理器使用的存储器无法被SoC中非视
频处理用途的任何其他操作所复用。
编程―采用混合型的系统包含两个CPU (不必是同一
类),这便会产生对二者进行编程协作相关的问题 (如集成、数据流、通信协议等)。
仅限于视频―视频协处理器在SoC中不能执行任何其他任务。
未来视频标准的支持―视频协处理器针对特定的视频标准而设计。其他新标准的出现需要增加额外的视频资源。
通用处理器 (DSP/RISC) -真正的多任务引擎
通用处理器是可编程的解决方案,能够在相同的硬件平台上并行支持多个应用。在选择通用处理器时,系统集成商有两个主要选案:DSP 内核和 RISC 内核。RISC 内核由于缺乏计算能力、存储带宽有限且没有视频主导的指令,因此不太适合于执行视频处理或其他大量的计算任务。举例说,对32位RISC 内核来说,在D1分辨率下对复杂的视频编解码器 (如H.264) 进行解码所需的处理能力可能是双MAC DSP (例如CEVA-X1620) 的10倍。
在芯片面积方面,通用处理器的门数一般比前两种处理器多。不过,这类处理器可以在系统中复用来执行任何数据流的编码或解码,并可同时执行基带操作、定位 (GPS) 或蓝牙连接。
图3和图4所示为常见的SoC架构,分别以不同的配置方式集成了通用处理器。图3中有两个元件:用于多媒体处理的DSP和用于内务及系统任务的CPU。图4只有一个处理器(带有RISC功能的DSP),同时执行多媒体处理和CPU的其他任务。
图3 采用带CPU的通用DSP的系统架构(略)
图4 采用不带CPU的通用DSP的系统架构(略)
通用处理器方案的主要优点如下:
多标准―这些处理器支持多种视频标准和各种分辨率及帧速率。所有这些参数都可通过软件定义。相同的硬件平台能以15fps 的帧速率支持QVGA分辨率,也能以30fps的帧速率支持D1分辨率。
视频/音频同步―DSP能够运行不同的音频编解码器,并处理视频和音频的同步。当在DSP上执行同步时,
CPU将从所有多媒体任务中卸载出来,因此系统可能根
本不需要CPU。
可用于非视频操作―除视频处理之外,通用处理器还能够执行广泛的任务。
未来产品―同一个可编程平台能够支持数代的产品,让SoC设计人员很容易就满足客户的发展蓝图。
但是这种方法也存在某些缺点:
面积―可编程性无可避免地意味着更大的芯片面积。因为在视频处理以外还能执行其他任务,所以需要用于非视频处理的功能模块。不过,通过去掉系统中的CPU,或是采用更小型的CPU来处理较低的处理负荷,有助于减少系统所需的额外的门电路。
性能―与硬连线解决方案相比,在通用处理器上运行视频功能的速度通常较慢。不过,可采用算法解决方案来加速系统的性能。
加速通用处理器的视频处理
这里有几种方法有助于提高通用处理器的效率(性能):
采用专用的DSP视频指令来加速多媒体的处理。
把DSP从所有数据传输操作中解放出来,让其专注于多媒体处理。
算法加速―利用独特的软件算法来替代常规的复杂计算。
视频指令―DSP中的专用多媒体模块
专用多媒体指令能够显著加速纯软件多媒体的性能。下面是可嵌入到通用DSP中的一些指令,专用于加速多媒体处理:
绝对差分(Absolute differences)―用于运动评估和去块效应滤波器。
四重平均值(Quad average)―用于二分一或四分一的像素运动补偿。
分类字节 (Classify bytes)―用于非线性滤波器和预/后处理。
?字节增加/减少(Byte addition/subtraction)―用 于DCT、运动重建、四分一像素滤波器、对称滤波器、运动评估和去块效应滤波器。
内嵌数据限幅 (Inline data clipping) (到字节或字动态范围)―用于环内去块效应滤波器。
以下是H.264 内去块效应滤波器的代码示例,利用特殊的4路SIMD 视频指令 (CEVA-X1620汇编代码)。
bkrep lci0
{
m0.min{4b,ss} a6,a10,a6 ;min(TC0mp,Vp)<I>
|| m1.neg{4b} a10,a10 ; TC0mp->-TC0mp<I>
|| s.abssub{4b} a0,a2,a2 ;abs(p2-p0)<II>
|| l.abssub{4b} a1,a2,a1 ;abs(p1-p0)<II>
|| push{dw} a12 ; push p1-q1<II>
…
m0.max{4b,ss} a6,a10,a6 ; max(-TC0mp,Vp)<I>
|| m1.min{4b,ss} a9,a11,a9 ; min(TC0mq,Vq) <I>
|| s.cmpa{4b,lt} a2,a15,a10 ; abs(p2-p0) <II>
|| l.cmpa{4b,lt} a1,a15,a12 ; abs(p1-p0) <II>
|| ld{dw} (r1)+s0,a1 ; load p1 <I>
上面所示的代码描述了在视频后处理中把VLIW 与 SIMD结合起来。在该示例中,‘4b'SIMD 指令于4个不同的字节数据上进行处理。代码中的两个指令包都包含了5条并行指令 (VLIW),其中4条是4路SIMD指令,这样,在单个周期中就有17个并发操作被同时执行。
DSP减负-数据传输引擎
在针对多媒体应用的所有 SoC设计中多数存在一个 DMA 引擎。DMA最重要的任务是执行芯片内外的大部分数据传输,并可同时访问任何可用的资源,包括存储器、I/O、外设和总线桥。通过这种方式,DMA 引擎将分担 DSP 的部分数据传输任务,使后者能专注于媒体处理功能。
二维(2D) 和三维 (3D) 的DMA通道可以收集处于存储器中不同位置的分散数据 (从不同的帧),并将其作为单个数据块来移动,以便DSP进行处理。
在图5中,3D DMA通道允许DMA 传输宏块(Macro-block ),而无需 DSP 的任何干预。通过在三个 不同的 维度上对 DMA 进行编程,图中的传输便可完全无须 DSP的干预而实现。
算法加速
可以通过使用独特的算法来实现性能的提速,这种算法在视频处理流程中创建“捷径 (shortcut)”,从而使所需的DSP性能较小。
CEVA 公司专利的 FST(快速子空间跟踪) 技术便是这种加速技术的一例,以先进的图案识别算法为基础,可以无须多媒体编解码器中的复杂运算,从而实现更快的编解码,并降低对性能的要求。
图5 数据处理引擎示例(略)
这种加速算法方案能大幅提升视频处理的性能,与传统的编解码实现方案相比能提高10倍之多。
CEVA Mobile-Media2000- 全面完整的解决方案
CEVA 的Mobile-Media2000解决方案是以通用处理器为基础的多媒体平台,采用了上述的技术,在视频处理之外还开发了真正的多媒体引擎,能执行多项任务。Mobile-Media2000能达到370MHz 的运行频率 (TSMC的90nm G工艺以及 在最差条件下) ,只需要150MHz的运行频率即可进行30 帧每秒,D1分辨率下的 H.264 BP解码。这是因为采用了CEVA DSP独有的视频指令和CEVA专利的FST算法。
能够在不同的应用中复用Mobile-Media2000解决方案的特性给客户带来了重大的裨益,客户可以采用相同的内核架构开发面向广泛市场的多种不同产品,例如带有MobileTV的个人导航设备或具有WiMAX互联功能的便携式媒体播放器。这些设备复用SoC中相同的CEVA DSP处理器来实现多种功能,因而能降低成本并充分利用了研发投资,从不同的市场和应用中获得更多收益。
Mobile-Media2000以CEVA-X1620 DSP内核为基础,并结合了硬件平台、完整优化的多媒体软件编解码器和应用软件的多媒体平台。CEVA-X1620是开放式架构的DSP,让客户只需通过软件便能轻易地定制出与众不同的移动多媒体解决方案,无需进行任何硬件升级或重新流片。
总结
随着新标准的出现及不断发展,具有多媒体功能SoC的开发人员正面对着越来越复杂的多项挑战。用于多媒体应用的解决方案有多种,可以分为三大类:硬连线加速器、视频协处理器和通用处理器。CEVA的Mobile-Media2000是以通用处理器为基础的方案,具有专用的视频指令、强大的三维 DMA,并采用了独特的软件加速算法 (FST) ,因而成为目前用于视频和多任务处理的最佳解决方案选择。 |