运用平台FPGA支持多媒体、影片、与影像处理

本文作者:admin       点击: 2003-07-01 00:00
前言:
摘要

现今各种多媒体通讯的发展态势已愈来愈明朗。在数字电视、Video over IP、数字电影、无线影片传输、医疗影像、以及远距监视等开发上,许多应用从目前提供声音与数据的服务,将进一步扩展至实时影片技术的领域。近来硅组件逻辑闸密度与嵌入型功能的发展,研究多媒体处理技术的团体开启许多新的研发空间。此外,可程序化组件提供的弹性,亦能用来发展极具吸引力的解决方案。本文将探讨业界对于多媒体系统的需求,以及支持多媒体处理技术的一些基本组成区块。我们也将进一步讨论将实时影片应用的抽象理念对映于FPGA技术之设计流程。最后,我们将介绍JPEG2000 与MPEG-4新型压缩标准的市场需求。在多媒体处理解决方案领域中,FPGA技术已准备好支持整体产业,以合理的价位提供需要的传输频宽、设计工具、以及硅组件,协助执行各种新一代的多媒体演算过程。

多媒体通讯

由于新型压缩与通讯技术的发展,业界对于多媒体通讯的需求每年都持续成长。这些技术大多由各种标准组织,像是ISO、ITU、SMPTE 、以及IEEE等组织所主导。多媒体压缩技术(multimedia compression)是有效率地运用储存与频宽资源的关键。ISO MPEG 与JPEG 发展小组与ITU合作发展各种标准,以因应业界对于音效、影片、以及系统等压缩技术的需求。最新制定的标准:JPEG2000 与AVC (Advanced Video Codec, MPEG-4 Part 10/H.264)以合理地运算的成本,提供前所未有的效能,让FPGA技术比传统处理器型方案更适合其相关应用。

这些压缩标准将抢攻各种拥有支持 「profile」 与「level」的模式特色的应用市场。「profile」是定义出内含一套标准算法的Codec电子电路(Codec是指可将将模拟讯号编码成数字讯号,并可加以译码还原的电子电路)。「Level」则是定义一个profile中有那些参数选项,例如像每秒画格数与分辨率。这些标准支持的市场包括数字影片广播、以IP为媒介的多媒体(multimedia over IP)、以无线媒体传送的多媒体内容、远距影音监视、医疗影像、以及数字电影等。这些市场在撷取、运算、以及显示等方面的需求有相当大的差异。

业界预测压缩芯片市场规模将从15亿美元成长至2006年的28亿美元。这种成长态势很接近1990年代的无线音效产品的发展。现今许多支持音效与数据服务的系统,未来将逐渐走向影片服务,因而对运算功能形成新的挑战。

多媒体的需求

产品对于多媒体系统的需求与最终应用有直接的关系。例如,随选视讯对于传输延迟(latency)有较高的容忍度,而视讯会议则恰好相反,而视讯监控则对于传输延迟的容忍度则介于上述两个极端之间。实时多媒体系统不一定需要实时的编码机制,MPEG标准在发展时即是偏向降低译码器的复杂度,让业者能开发有效成本的解决方案。MPEG编码器的复杂度一般是MPEG译码器的十倍。像是随选视讯等不需要实时编码的应用,可运用两批次(two pass)的算法进行离线式的编码,以达到最佳的结果。视讯监控与视讯会议则需要实时的编码。在多媒体压缩方面,编码器的功能必须符合严格的规范,而译码器则有较大的自由度。也就是说,影音编码器须遵循技术标准运算出有效的数据流,而译码器则须解算出数据流中每个有效的位。

影像数据库的储存需求,与压缩影片传输的需求之间有很大的差异。ISO JPEG小组通常以压缩比(compression ratio)作为压缩的标准,而ISO MPEG小组则通常使用固定位数据率(constant bit rate)作为标准。这些系统在多媒体通讯时,需要固定的位率处理数据传输,以配合通讯的传输频道。这种模式所产生的问题是为求一定的压缩比率,有时必须牺牲影像品质。若编码器严格维持固定的位率,将致使画面品质上下波动,甚至到无法接收的水准。在编码器后方可配置一个缓冲区可解决这方面的问题,让数据流以变动的速度填入编码器,而传输信道则以固定的速度清空缓冲区。这种模式促使多媒体压缩系统产生内存的需求。为改进或提升品质而额外增加的前置与后置处理,亦增加对内存的需求。例如MPEG-4编码器通常需要3至10 megabytes的内存容量,而译码器则需1至3 megabytes。

任何系统的主要需求就是每秒的运算效能,以达到实时处理的目标。在多媒体压缩方面,这个效能目标很难量化。由于许多因素的差异,让不同运算之间的MOPS有相当大的差距。图1显示多组MPEG-4 profiles与达到这些运算目标所须的MOPS,并以Level 1的Simple Profile为基准点,将它定为1。在640x480 分辨率每秒30 个画格的影音监视环境中运用JPEG2000压缩技术,约需要4,200 MOPS的效能,而在医疗影像1024x1024 分辨率、每秒60个画格的环境下进行无损耗的JPEG2000压缩,则需要29,000 MOPS的效能。4096x2048分辨率、每秒24个画格的数字电影,在使用JPEG2000压缩技术时需要93,000 MOPS的效能。在压缩过程中需要的MOPS会产生变动,所需的效能与影片资料流的内容有关,与每格画面的内容无关。在图2中,我们须判断在播放影片时的MOPS峰值。
在多媒体压缩方面,那些功能需要大量的运算?信息论显示对原始资料进行无损耗的压缩后,所得到的数据量等于影像的熵数(entropy)。这种结果是运用目前各种多媒体压缩Codec中的变动长度编码与演算编码技术。信息量以外的技术已超出本文探讨的范围,且可能运用动作预测技术,配合暂存冗余性与Discrete Cosign Transform (DCT) 或Discrete Wavelet Transform (DWT)算法,在高频率的状态下达到能量收敛的目标(energy compaction)。这些条件都会影响编码压缩的品质,因为在有损耗的压缩运算中,是不可能解算出原始影像品质。MPEG与MOPS以及动作预测演算之间有密切的关联,且直接影响压缩的品质。动作预测机制须搜寻某个画格与下个画格的数据(如图3所示),找出像素之间的最小差距,以判断出动作的方向。系统会将动作向量与差异数据加以编码,大幅减少其压缩出的数据量。

多媒体接口亦在多媒体系统中扮演重要角色。ANSI/SMPTE 259M-1997 标准规范数字影片序列讯号如何透过同轴电缆进行传输。这项通称为SDI的标准被广泛应用在电视制片室与制片中心,利用原本用来传送模拟影片的同轴电缆传送数字影片讯号。数字音效讯号以交错的模式置入在数字影片讯号中。错误侦测封包(EDH)经过运算后再插入数据流中。数字影片经过编码、序列化等处理作业后,再透过同轴电缆传送出去。在接收端,系统将序列数据流进行译码、讯框处理、以及解序列等作业后,撷取出数据与时脉讯号。在对数字影片数据进行译码之前,须针对数据流进行错误侦测与分析。

多媒体环境解决方案

在现今对成本敏感的市场中建置各种多媒体系统是一项挑战。就技术的观点而言,硅组件的逻辑闸密度会持续提升,能支持更多复杂的算法。更多的嵌入功能可协助系统研发业者克服设计上的挑战。硅组件的整合,亦能协助缩小产品的体积规格。寻找适合的解决方案,必须了解适合的运算、内存、以及接口等组件进而做出正确的决定。

多媒体的运算需求可能从数百MOPS到数十万MOPS。就硅组件运算领域而言,我们可选择通用型处理器、数字讯号处理器、媒体处理器、FPGA、ASIC、以及ASSP。内含多媒体延伸技术的通用型处理器可达到数百MOPS的效能,当应用系统不需要较多的运算效能时,则适合采用通用型处理器。若多媒体功能仅是整个系统需要的其中一项功能时,通用型处理器就有较大的吸引力。数字讯号处理器提供5000 MOPS左右的效能,支持更多的应用领域,并适合应用在各种嵌入型系统。媒体处理器将运算效能进一步推升至20,000 MOPS,并提供各种专为多媒体处理器量身订作的嵌入型功能。这些功能包括嵌入型位处理器、以及各种特殊MPEG功能,其作用有如芯片中的硬件加速器。FPGA的运算功能约为100,000 MOPS,并能支持各种高速接口。运算效能来自于分布式逻辑组件、MAC、以及本地端内存,这些组件可针对特定应用进行设计。像PowerPC这类嵌入型处理器的问市,让顾客能针对平台FPGA的程序代码以及硬件进行编程。ASIC能提供数十万MOPS的运算效能,并具备开放式的嵌入型功能。但在现今的硅组件环境中,ASIC亦有极高非重复性成本(NRE)的缺点,且仅适合应用在量产型的产品。ASSP则是专为单一应用所设计,且若不是应用在原先设计的应用领域,则性能将不如原先的水准。

多媒体需要的内存从数kilobytes至数megabytes不等,视应用的种类而定。大多数应用是根据须储存多少画格来估算所需要的内存。720x480分辨率24位的NTSC美规电视讯号,每个画格就需要341 Kwords的内存。若仅需要储存一张关键画格,则需求尚在芯片内存的容量范围内。高分辨率的720条渐进式扫瞄线(1280x720x24)电视画面,每张画格需要900 Kwords的内存,而1080i (1080x1920x24)规格的讯号每张画格就需要2.025 Mwords的内存。一般而言,您会使用到数megabytes的外部内存。目前业界最常使用的外部内存为同步式DRAM与ZBT内存。ZBT内存的优点是相互交替存取模式以及较简单的内存控制器,但容量仅有2至8 Megabytes,故成本高于DRAM。同步式DRAM在切换读取与写入模式时会有延迟,故须使用较复杂的内存控制器。DRAM容量介于32至128 Megabytes之间,提供两倍与四倍速版本能提高内存频宽,并以快冲模式读取相互紧邻的数据。

多媒体研发工具

持续成长的逻辑闸密度对于研发工具产业形成严峻的挑战。当百万逻辑闸设计变成稀松平常,甚至能达到千万逻辑闸的水准之际,业者如何因应芯片内含一亿个逻辑闸的设计复杂度?对于通用型处理器与数字讯号处理器而言,软件编程环境能妥善因应如此高的复杂度,协助研发业者运用芯片提供运算效能。对于多媒体系统而言,问题则较为复杂,因高速缓存容量持续成长,因而实时运算衍生出更多的限制。我们见到业者开始运用多媒体延伸方案,透过抽象的研发模式避开复杂的细节,并达到实时运算的目标。额外增加的IP函式库将扮演一个关键角色,减轻因设计复杂度所衍生的各种问题。媒体处理器具备许多嵌入型功能,但在一般性的编程环境中较难以运用。FPGA与ASIC因具备平行运算的能力,故产生较高的吸引力。问题的焦点在于如何在高效率的编程环境中运用这些运算效能。最近许多厂商推出支持C语言与网关工具的改良方案,有希望在未来数年内解决这方面的问题。

当开发新的Codec时,业者通常以C语言环境展开研发工作。在开发AVC Codec时,业者通常会撰写参考软件,让研发人员能了解Codec中每项技术的相对利益。当某套标准被采用时,这套参考软件就能为建置人员提供一个建置的参考依据,扮演许多有用的角色。这意谓着一般而言,建置作业的起点是了解参考软件以及相关的复杂瓶颈。市面上亦出现许多检测工具,能迅速显示内存的频宽以及运算方面的问题。

我们亦开始看到市场上出现新型的工具,能提高多媒体系统设计的抽象层次。Mathworks推出一套新环境,为DSP设计业者提供娴熟的算法开发环境。Xilinx System Generator可让业者在这套架构中开发DSP,并提供一套技术协助业者发展算法以及仿真系统的行为,开发出FPGA设计方案以供后续的建置步骤。图4显示一套运用Xilinx System Generator for DSP环境所发开的边界侦测(edge detection)系统。这套仿真架构亦能提供回路中的硬件组件,缩短仿真的时间。它能为特定领域的工具提供抽象机制,并能赶上硅组件逻辑闸密度的成长速度。
结论

本文我们讨论各种多媒体通讯,并探讨多媒体产业目前面临的各种问题。我们亦介绍各方面的需要与处理需求,以及各种能满足这些需求的组件。市场上愈来愈多的业者要求多媒体设计工具,我们发现必须透过提高抽象层级来作阶段性的发展,以便能有效率地运用百万逻辑闸的硅组件技术。