令问题更加复杂的是,数字视频是一个迅速发展的领域,标准不断发展和变化。因此,在数字视频领域,处理器适应变化的能力比在其它应用中显得更加重要,但是,这种灵活性通常是以降低效率为代价的。
选择处理器的时候,难免要作一些折衷,但关键是要知道,如何选择处理器,才不至于使产品的成功打折扣。
没有万金油
数字视频技术被用于从手机到个人录像机(PVR)的各种产品之中。虽然许多视频产品具有一些共同的功能,例如,多数使用视频压缩算法、对视频进行压缩和解压缩,但它们之间还是有一些显著的区别。便携产品最重视的是能耗;而电线驱动的产品一般不关心这个问题。为起居室设计的产品通常比为手持设备设计的产品具有更高的视频分辨率。
总之,一个处理器不能满足所有各方面的需求。甚至某一类处理器也不能满足所有的需求。能否成功地选择合适的处理器,关键在于了解有哪些处理器可用,并了解各类处理器的优缺点。
各取所需
由于有这么多的处理器供你选择,实际上不可能挨个都看一遍——甚至无法详细了解各个主要大类,可以采用分级方法:利用对你来说最重要的筛选标准先排除不适合的候选者。
进行初选时普遍采用的标准包括:
* 速度。数字视频任务,像许多其它类型的信号处理任务一样,都要求处理器承担沉重的计算任务。针对目标应用,仔细分析处理器是否具有足够的速度,最好使用BDTI Video Benchmarks等面向视频的测试基准。
* 价格。虽然芯片价格很重要,但每通道成本或者总体系统成本可能更加重要。
* 能源效率。在多数情况下,评估能源效率比功耗更有意义,因为能源使用情况决定着电池寿命。
* 灵活性。有些种类的处理器比其它种类的处理器更加灵活,可以适应未来产品特点的变化,或者允许现场升级,如增加对新压缩算法的支持。但是,一般来说,处理器灵活性越高,其成本和能源使用效率越低。
* 开发工具质量。处理器是否拥有用于支持信号处理应用(或者更进一步,视频应用)开发的工具,可能对于开发时间产生重大影响,并进而影响产品上市时间。
* 与早期处理器型号的兼容性。如果你期望重复使用早期产品所用的软件,这点通常很重要。
* 供应商路线图。供应商的产品路线图,是否非常符合你的后续产品开发计划?在你的产品寿命期内,处理器能否得到支持或者升级?
* 以芯片或者可授权内核形式销售。有些处理器是作为封装好的现成芯片出售的;有些是作为可授权知识产权出售的――通常被称为可授权内核,用于制造定制芯片。本文所讨论的多数处理器种类都既包括封装式芯片,也包括可授权内核。
我们下面将会介绍,每种处理器都在上述各方面进行着不同的折衷。
各类处理器的优势与劣势
本文重点介绍数字视频所普遍采用的六类处理器:固定功能引擎,专用标准产品(ASSP),媒体处理器,DSP,嵌入式RISC处理器和FPGA。这些范围覆盖了最专业的和最灵活的产品,我们将讨论各类处理器的优劣,并对每类中的一个具体产品进行分析。
首先谈谈固定功能引擎。它采用硬布线处理器结构,以获得最大效率;它们不使用指令流,不可以编程。硬布线逻辑牺牲了灵活性,以换取非凡的处理速度、能源效率,而且经常能够取得成本效益。
采用固定功能引擎可以简化系统设计和测试。由于固定功能引擎不可编程,产品开发人员就不必学习编程工具,也不必集成多个软件模块。而且他们不需要考虑,处理器所执行的多个任务是否可能以其不希望的方式相互影响,是否会干扰系统的实时特点等问题。
固定功能引擎一般以可授权知识产权(IP)的方式提供,以便于集成到定制芯片之中。采用这种形式,固定功能引擎最适合于手机等大批量应用。固定功能引擎有时也可以芯片的形式提供。固定功能视频芯片,如MPEG-2解码器芯片,能够以较低的成本给现有产品增加功能,特别是当产品具有能够处理需求控制和用户接口功能的主机处理器的时候。
比如Hantro公司的5150 MPEG-4视频解码器,这是以IP形式出售的固定功能引擎的例子。该引擎准备用作协处理器,附属于一个通用处理器,后者处理一些MPEG-4解码所需要的要求不太高的子任务。
固定功能硬件的主要缺点是缺乏灵活性。由于它不可编程,产品开发人员就不能很容易地修改固定功能硬件,使其支持新标准或者不同的功能。这点很令人关切,因为许多视频应用目前来看仍然不够成熟,标准和功能变化很快。
因此,固定功能引擎经常被用作专用标准产品的一部分,下面就说一说ASSP。
专用标准产品(ASSP)是集成度很高的专用芯片。可以与专用集成电路(ASIC)作一番比较。ASIC是由系统公司设计的,并用于它们自己的产品之中。而ASSP是由芯片公司设计的,作为现成的芯片提供给多家系统开发商。由于开发一种复杂芯片又费钱又耗时,ASSP通常用于已达到大批量的已定型产品,或者预计会有较高的批量的产品。
比如卓然公司的Vaddis 5R,是面向DVD录像机中音频和视频处理的高度专业化的芯片。所需要的关键算法都已确定:最突出的是MPEG-2视频压缩与解压缩。
虽然Vaddis 5R包含两个RISC处理器,但它在执行计算量最大的任务时使用固定功能硬件加速器,如MPEG-2视频解码和彩色空间转换。出于上述原因,Vaddis 5R (和其它类似的ASSP)也具有固定功能引擎的优缺点:拥有良好的性能和能源效率,但灵活性有限。
灵活性有限,意味着系统设计人员在设计产品时,使其产品与采用同样ASSP的其它产品容易雷同。它还意味着,系统设计人员高度依赖芯片供应商的路线图,因为需要新款芯片支持显著不同的功能。
还有一种是主要依赖可编程处理器执行繁重视频任务的ASSP,为获得灵活性而牺牲了能源效率和成本效率。这类ASSP通常与视频解码器和硬件驱动器等关键软件相捆绑,使系统开发人员不必从事许多低级软件的开发工作。但是,与采用基于固定功能硬件的ASSP相比,仍可能需要在软件开发和集成方面花费很大的精力。
媒体处理器在专业化/灵活性方面处于ASSP与数字信号处理器(DSP)之间。媒体处理器针对与音频和视频处理相关的任务进行了优化,不象DSP那样面向广泛的信号处理任务进行优化。媒体处理器通常要采用多个处理器,包括一个类似于DSP的主处理引擎、两个或三个专用协处理器,以及音频与视频专用外设。
飞利浦的PNX1500就是一款媒体处理器。像典型的媒体处理器一样,PNX1500基于一个功能强大的、高度并行的处理器内核,该内核在执行视频处理任务时具有较高的效率。PNX1500还包含几个固定功能硬件加速器和专用外设器件,这也是典型的媒体处理器的特点。主处理器内核处理压缩等复杂的视频任务,系统设计人员可以对该内核进行编程。
与卓然公司的Vaddis 5R类似, PNX1500非常适合于MPEG-2解码。但与卓然的ASSP不同的是,PNX1500具有足够的灵活性,可以与H.264等其它视频压缩标准一同使用。当然,这种灵活性也是有代价的:与固定功能硬件相比,软件视频解码器的能源与成本效率通常较低。
由于媒体处理器采用多个不同的处理器,与其它可编程处理器相比,给软件开发造成极大的困难。例如,为了执行一项特定的视频任务,一般必须给两个或更多的处理单元编程,并对它们加以协调。为了帮助弥补这个缺点,媒体处理器供应商经常提供优化的软件构件库。
媒体处理器供应商通常强调在开发软件时使用C或C++,不推荐或支持汇编语言。之所以强调用高级语言开发软件,是为了使程序员不需面对处理器架构方面的许多复杂问题。但不足之处是,程序员必须依赖编译器来生成有效代码,而这不总是现实的。开发人员可能需要投入很大的精力,手工调整其高级语言代码,以获得最佳性能。
数字信号处理器(DSP)是为一系列信号处理应用所设计。与媒体处理器相比,DSP所采用的规格不太偏重于视频处理,而且并行性较低。为了弥补并行性较低的弱点,在给定的应用中,DSP的指令执行速度通常必须高于媒体处理器。较高的指令速度可能导致系统设计复杂化,并增加能耗。另一方面,与嵌入RISC处理器(下面将会说到)相比,DSP在处理视频任务时需要的时钟速度较低。DSP的关键优势在于其灵活性和强大的应用开发工具。德州仪器(Texas Instruments)的TMS320DM642就是一款专门面向视频应用的DSP。
从历史上看,DSP一直不适合于利用编译器编译,而且DSP编译器效率不高。但最近几年形成了一种趋势,厂商开始开发更适合编译器的DSP。另外,有些DSP供应商和独立工具供应商在开发编译器方面投入巨资。因此,DSP编译器质量大幅提高。但是,要获得最佳性能,经常需要手工优化汇编程序。好消息是,DSP供应商通常会提供良好的汇编语言编程工具。但架构本身有时比较复杂,使汇编语言编程工作具有挑战性。由于视频应用是DSP的重要目标,所以DSP开发工具通常提供辅助视频应用开发商的特点。例如,数据可视化能力在调试视频处理软件时非常有用。
典型DSP与典型嵌入RISC处理器之间的一个重要区别是,对于操作系统的支持。DSP一般支持少量实时操作系统,但不支持Windows CE之类的“完整功能版”操作系统。因此,许多系统设计利用DSP来负责视频处理,利用嵌入RISC处理器来运行操作系统和处理其它非视频任务。但是最近,有些DSP供应商已使其处理器能够运行Linux等高级操作系统。
历史上,DSP供应商没有重视各代产品之间的兼容性问题。因此,当产品更新换代的时候,难以重复使用应用软件。但这种情况正在改变,一些新款DSP开始具有一定的与早期产品兼容的能力。例如,TMS320C64x与它的早期型号TMS320C62x可以二进制兼容。
嵌入RISC处理器被广泛用于嵌入应用。历史上,它们一直是通用处理器,拥有很少的或者没有专用特点。RISC处理器经常在视频产品中扮演主机处理器的角色,一般与专用视频处理器一起工作。
直到最近,RISC处理器的速度才提高到能够处理非常低端视频处理任务的水平。但是目前,时钟速度越来越快,正在使嵌入RISC处理器能够胜任要求更严格的数字视频任务。此外,嵌入RISC处理器的并行性越来越高,而且增加了专用视频特点。虽然像高分辨率视频压缩之类的艰巨任务仍然超出了嵌入RISC处理器的能力范围,但这些处理器越来越多地介入要求不太高的视频任务。英特尔的XScale PXA27x就是一款嵌入RISC处理器的例子。
PXA27x基于英特尔的Xscale内核,而该内核本身则基于流行的ARM v5TE指令集。PXA27x通过将Wireless MMX扩展在ARM指令集中增加了DSP功能。它的最高时钟速度是624 MHz,对于嵌入RISC处理器来说是相对较高的速度。与其DSP增强性能相结合,这样高的时钟速度使PXA27x可以胜任许多视频处理任务。
虽然与其它类型的处理器相比,嵌入RISC处理器在处理视频任务时通常效率较低,但它在应用软件开发方面具有许多优点。例如,嵌入RISC处理器通常得到完备的软件开发基础设施的支持,以及大量程序员的青睐。而且嵌入RISC处理器一般比本文讨论的其它处理器更容易编程。不足之处是,嵌入RISC处理器的工具软件和软件开发基础设施,对于视频处理软件开发的支持较弱,不如本文所介绍的许多其它处理器。
嵌入RISC架构的路线图通常比本文提及的其它处理器清晰,对于需要规划多代产品的系统开发商来说,简化了它们的计划工作。此外,这些处理器几乎总是保留后向兼容能力。许多RISC处理器架构的另一项优点是多供应商支持,也即多家供应商提供基于同样内核架构的芯片。不幸的是,Wireless MMX之类的先进特点往往被一家供应商所独有。
现场可编程门阵列(FPGA),在考虑视频处理器的时候人们可能不会首先想到它,但它们的灵活性和高并行性(因此,可能具有高速度)可能非常适合于艰巨的视频处理应用。
FPGA包含一批可重新配置的逻辑模块、可编程互连资源、I/O模块和(在某些情况下)专用固定功能模块。
FPGA经过配置后可以满足某项应用的需求,而且可以提供强大的计算能力和内存带宽,如Altera公司的Stratix-II。Stratix-II是一个高端FPGA系列,包含专用固定功能模块,如乘法器、PLL和内存模块——这些都能够增强其在视频处理算法方面的性能。
FPGA是灵活性最高的处理器类型,基于FPGA的设计可以轻易升级,以执行新功能或者满足新标准。但不幸的是,这种灵活性是以牺牲能源效率和成本效率为代价的。例如,FPGA的能源效率通常低于ASIC和ASSP,而且FPGA的价格可能高达数百甚至数千美元。但是,FPGA供应商最近推出了成本效益更高的器件,使其对于更多的应用产生吸引力。
FPGA的另外一个弱点是,应用开发工作要比可编程处理器软件开发困难,而且精于FPGA设计的工程师比软件开发方面的工程师更少。
虽然FPGA可能很适合视频算法,但通常仍然需要采用可编程处理器来执行操作系统之类的软件。因此,FPGA往往与一个或多个可编程处理器一同使用。但是,随着可以FPGA内部使用的“软”处理器内核的出现,如Altera公司的Nios II和赛灵思的MicroBlaze (都是32位RISC处理器内核),现在可以把指令集处理器集成到FPGA之中。
其它类处理器
除了上述介绍的六种处理器以外,至少还有四种处理器可能适用于一些数字视频应用。包括:
* 嵌入式PC处理器通用处理器,只拥有很少(如果有的话)专门为视频处理所设计的特点。供应商经常重复利用较旧的、面向PC的架构,增加更多的片上集成来创造专为嵌入应用所设计的处理器。这些嵌入PC处理器一般不适合于任务繁重的视频处理,所以它们经常与一个专用“视频”处理器配合使用,后者负责核心的视频处理任务。
* 可配置处理器。是一种可授权的处理器内核,得到授权者可以对其改造,用于定制芯片之中。定制化工作在芯片投产以前进行;一旦投产,处理器硬件就定型了。
* 可重新配置处理器与可配置处理器类似,但它们能够在芯片造出来以后根据不同的任务重新配置,因此在运行时可以选择不同的配置。
* 专用指令处理器(ASIP)。这是为手边的应用专门设计的处理器。ASIP不是以封装式处理器或者可授权处理器内核的形式出售,而是供应商提供工具,使芯片设计人员能够创建自己的ASIP。
由于数字视频是非常热门的市场,所以未来几年可能会有更多种类的处理器出现。这些产品可能集中上述处理器的特点。
显然,没有一个单独的处理器或者处理器类型最适合于所有的数字视频应用。具有一定灵活性的处理器越来越受欢迎,但固定功能硬件也有一席之地。这是一个如何为自己的赌注采取保险措施的问题,而且你必须考虑所有的解决方案。
作者:Bjorn Hori ,Jennifer Eyre,BDTI 公司