新一代多媒体压缩演算法发展出JPEG2000 与MPEG-4两项标准。这些标准对于记忆体、传输以及运算等方面的要求在标准化的过程中持续演进,如今已进入实际建置的阶段。近来矽元件在逻辑闸密度发展,为多媒体产业开启许多发展的新空间。本文将介绍各种多媒体压缩技术的需求,以及评估多媒体压缩处理的设计复杂度。并将探索建置多媒体处理环境之设计流程所需的抽象程度。最后将分析JPEG2000与MPEG-4的各种新兴压缩标准,以及如何与FPGA技术发展结合,支援即时(Real Time)多媒体系统。
多媒体压缩需求
数位多媒体通讯随着各种市场的发展而迅速成长,其中包括各种无线通讯、医学影像、一直到数位剧院等。多媒体压缩技术扮演重要的支援角色,让系统能有效率地运用现有的储存与频宽资源满足通讯的需求。初期的技术从1980年代后期一直发展至1990年代,其中包括JPEG、MPEG-1及MPEG-2。目前,国际标准组织(ISO)持续推展标准化工作,制定完成JPEG2000与MPEG-4标准。同时,国际标准组织继续针对3D与可延伸影片技术发展新的支援标准。但是您可能会问:为何数位音效与影片技术会不断在演进之中?答案在于演算法底层的运算架构。新矽元件技术支援愈来愈高的运算周期、记忆体以及记忆体传输频宽,为压缩演算法开启新的发展空间,因此许多替代方案就成为可行的技术。
最初的数位影像压缩技术是撷取自JPEG与MPEG-1标准。数位影像压缩的基础结合三项主要演算演算消费,包括转换、量子化、以及来源编码。最普遍的JPEG标准基本上是运用一套8×8 的离散余弦转换(DCT)法。其量子化的步骤包括看似不重要的DCT系数归零。若量子化的门槛过高,最后压缩出的影像中就会出现马赛克现象(Decompressed Image)。
在JPEG上,这种现象通常发生在压缩比高于30比1的条件中。对于软体进行JPEG撷取时通常会提供充裕的反应时间,以便进行压缩与解压缩作业。在医学影像或视讯监视中需要每秒播放30格影像的即时运算效率。因此需要在33毫秒的时间内完成DCT、量子化以及Huffman 编码等运算,才能维持所需要的画格更新速度。
JPEG随着业界采纳JPEG2000标准而继续发展。 JPEG2000标准采用完全不同的技术,配合离散波长转换(DWT)、位元面编码以及演算编码作为主要的演算技术。 JPEG2000不像JPEG在高压缩时会出现马赛克现象,但在图块边缘会产生所谓的蚊影效果(Mosquito Effect)。 JPEG2000的压缩比通常为50比1,且品质接近压缩比为30比1的JPEG。 JPEG2000有许多具吸引力的特色,其中包括:
- (1)优异的低位元率效能:平顺地转换至较低的位元率。
- (2)嵌入资料流:JPEG2000提供一种「嵌入型」资料流,例如在资料流中加入更多位元,以达到更高的影像画质。
- (3)错误回复:JPEG2000加入许多错误回复功能。
- (4)损耗与无损耗压缩:JPEG2000支援两种压缩法。
- (5)免授权费的架构:JPEG2000标准的Part I供任何人免费使用,不须支付权利金或版权费。
在即时动作的JPEG2000画格方面,DWT、位元编码以及演算编码的运算皆更为复杂,且需要更多的MOPS、记忆体以及记忆体频宽。影片压缩标准是由国际电信联盟(ITU)与ISO MPEG负责制定。这些标准延伸画格间演算法的范围,纳入暂时性画格冗余度缩减技术,并延用图块型DCT技术支援转换以及可变长度编码技术,进行来源编码。这套涵盖MPEG-1、MPEG-2(H.262)、MPEG-4 version 2以及MPEG-4 Part 10 Advanced Video Codec(AVC、H.264)的技术一般称为动作预测-补偿DCT型影片压缩法。
在影片压缩方面,采用固定位元率作为目标值而非压缩比。发展出的各种影片编/解码器透过速度扭曲曲线进行评估,量测其峰值讯号/杂讯率(PSNR)比以及位元率。影片编码的发展目标是希望达成维持品质同时降低位元率的目的。就影片编码器而言,须考量运算、记忆体以及记忆体频宽等方面的因素。 MPEG编/解码器方面,编码器的复杂度高于解码器。这种刻意的不对称性设计,是希望在初期的编码设计中造就出低成本的解码器。MPEG-4如今正扩展至双向通讯环境,故MPEG-4的即时编码问题亦逐渐浮上台面。
在建置即时多媒体压缩标准方面,要先分析有关MOPS、记忆体占用空间以及记忆体频宽等方面的需求。在满足上述目标后,可以考量如何让矽元件大小能配合应用系统。若考量运算MOPS,如(图一)所示,现有的各种选择对于许多DSP应用系统而言,通常有许多建置选择,有些属于通用型,有些则为特殊应用。在较高的运算复杂度方面包括各种多媒体应用,例如影片与音效处理。通常单一处理器可因应一种处理需求,但大多数系统都涉及许多影片处理,有些甚至须使用多种通道。在下个段落中将讨论即使是在CIF解析度下的简单编码,若不注意采用的动作预测演算法,MPEG-4编码很容易就会超过7000 MOPS。
表一 各种多媒体平台的比较
|
GPPs
|
DSPs
|
ASSPs
|
FPGAs
|
ASICs
|
耗用的设计资源
|
+++
|
++
|
+++
|
-
|
--
|
架构弹性
|
--
|
--
|
--
|
++
|
+++
|
即时弹性
|
++
|
+
|
--
|
+++
|
--
|
最高速度
|
--
|
-
|
+++
|
++
|
+++
|
电源效率
|
-
|
+
|
+++
|
+
|
+++
|
处理潜能虽然是选择平台时的重要考量因素,但其它设计特性亦须纳入考量的范围。 (表一)列出一些设计流程中的考量因素,包括:耗用的设计资源、设计架构弹性、执行阶段弹性、最高速度以及能源效率。通用型处理器(GPP)、数位讯号处理器(DSP)以及特殊应用讯号处理器(ASSP)提供耗用资源较少的演算平台,但对于许多高阶嵌入型应用而言,这些方案的弹性与处理效能较不充裕。
ASIC则提供优异的处理效能与省电效率,但昂贵的非重复开发成本让其仅适合支援产量极高的产品。各种软体/硬体协同设计平台具备极高的处理效能,例如像现场可编程逻辑闸阵列(FPGA),让业者能同步研发软体与硬体,开发出一套高阶可编程平台。如图一所示,若充份运用FPGA的处理效能,就会让它成为一项极具吸引力的高阶解决方案。
多媒体压缩设计复杂度
要了解MPEG-4标准的压缩设计复杂度,必须先了解压缩设定与压缩比率决定不同的运作模式。 MPEG的设定档(Profile)决定使用的技术,例如像DCT或可变长度来源编码。 MPEG中的压缩比率(Level)决定要处理多少参数才能达到标准的规范,例如像每秒多少MacroBlocks。其它须了解的重要压缩观念,与要遵循的标准有关。严格说来,解码器的位元流是根据编码器所制定,但其需求并不是由标准所规范。
应用系统采用的设定与压缩比影响运算MOPS。编码器许多设计复杂度的考量因素,皆与应用的种类有直接关连。 MPEG编码器虽较复杂,但其优点是仅须建立一组符合需求的位元流,而MPEG解码器就须配合MPEG的设定档与压缩比。 (图二)显示MPEG-4标准中MPEG-4设定档与压缩比的相关运算MOPS。尖峰记忆体需求以及记忆体频宽需求亦与设定档与压缩比有关。例如像MPEG-4编码器中,典型的记忆体需求为3至10 MB,而解码器则为1至3MB。此外,记忆体频宽需求与应用系统所采用的建置架构有密切关系。
《图二 MPEG-4配置文件与压缩比的相关运算MOPS》 |
|
Motion JPEG2000在不同的最终应用中亦有不同程度的需求。在影像监视系统中,每秒30格、640×480解析度的影片资料流约需4200 MOPS,每秒60格、1024×1024解析度的无损耗编码需要29000 MOPS;而每秒24格、4096 ×2048解析度的数位电影则须高达93000 MOPS,这些应用皆是属于JPEG2000技术应用。更复杂的是,记忆体大小、记忆体频宽与影像及资料序列皆有关连性。 JPEG与MPEG的实际每画格MOPS与应用种类有密切的关连。对于MPEG画格内运算所使用的资源与画格间动作差异所使用的运算资源完全不同。这点显示架构含有一定程度的扩充性,能处理不同复杂度的运算。影片编/解码器的一项重要参数就是能维持画格率的能力。架构除了须支援平均MOPS外,亦须支援最坏状况下尖峰MOPS的效能需求。
多媒体压缩设计流程
为有效率地建置多媒体压缩系统,须先从以C语言撰写的标准程式码着手。即使不是遵循各种压缩标准,在初期设计中采用C程式码也是一种设计优势,因为演算法研发者可方便地描述运算以及进行测试。 C语言程式码缺少的是一套最佳化方式,用来描述编码与解码器如何达到即时运作的效率。为了解达到即时运作的必要步骤,可以规画一套流程,内含演算法撷取、架构分析、实现以及建置等步骤。
再像是通用型处理器、DSP处理器以及媒体处理器等矽元件上建置媒体压缩功能的资料码与编译技术,其优点是:设计流程明确易懂,开始投入所需的技巧仅是一套简易的编程作业。但是其问题在于:如何运用处理器矽元件技术建置即时的串流媒体系统。不论处理器内含一组或多组处理单元,问题在于即时运算资料流在压缩演算过程中须经过处理单元数次。要克服串流处理的瓶颈,设计业者须了解与运用专为解决串流问题所量身订制的特殊指令,充份发挥少数处理单元的效能。
另一方面,市面上有FPGA与ASIC的设计流程,支援业者所需的平行处理机制,达到即时运作的目标。透过平行机制达到更高效能,所付出的代价就是效率较低的设计流程。传统的FPGA与ASIC设计流程要求研发业者设计一套硬体描述语言(HDL),配合矽元件的合成作业。由于目标不是冯若曼(von Neumann )或哈佛(Harvard)的电脑架构,故仍保有一定之弹性。首先使用者须决定一套架构,第二,使用者须决定如何在架构之间让演算法进行通讯。这种架构所需的设计技巧,高于基础的编程技巧,且通常需要特定的专业知识。近年来愈来愈多FPGA与ASIC嵌入至矽装置的处理器中,让问题更为复杂。这让业者能合并两种设计模式,而不必运用各种设计工具达到易用性或分隔的目标。
初期撷取阶段的多媒体设计流程,包含撷取串流资料的演算法以及探查阶段的演算法。了解目标是达到即时运作(每秒30格,每秒5940 个Macroblocks),故初期撷取序列的C语言程式码须配合资料流的设计目标。在探查阶段,设计流程须能针对撷取到的资料码预测其处理效能。在许多案例中,JPEG2000的演算程式码须达到20000 MOPS的执行效率,并融入部份的平行处理机制,以达到系统层级参数目标。
在设计流程的实行阶段,能针对运算矽元件与记忆体元件根据完整的资料拟定决策。在这个阶段,须改进功能单元之间的通讯,以达到更高的预测效能。这时可能发现选择的动作预测演算法因随机定址的特性,故不适合搭配自行选用的记忆体。在设计的最后阶段,也就是建置阶段,应确认矽元件的预测使用资源,并针对处理元件进行细部调整,以达到即时处理的效能。
多媒体压缩的实际建置
在即时系统中建置各种压缩演算法,须了解演算法本身以及所建置的矽元件技术。业者希望能自行修改动态预测演算法,以便在画质以及成本之间取得最佳的平衡点。这个领域的应用包括两种类型:处理器(通用型、DSP、以及媒体),FPGA与ASIC皆是建置的选择方案;或仅有FPGA与ASIC两者是选择方案。在第一个类型中,设计流程的考量因素经常扮演重要的角色,业者通常倾向于采用最具成本与功耗效率的处理器,以达到即时运作的目标。
FPGA解决方案确实能提供一套低成本的解决方案,但由于建置FPGA所需的技术,加上目前FPGA的设计流程,促使业者因产品上市时程的因素而不愿采用。 ASIC的考量因素主要为大量产量与非重复研发成本。综合以上因素,若能解决设计流程的问题,业者会选择采用FPGA建置高阶应用系统与中阶产品。要建构一套完善的FPGA多媒体设计流程,采用的架构应让串流媒体能流经FPGA架构,处理元素(PE)须分布于整个资料通道。
(图四)显示一组影片管线范例,内含各种功能性处理元件以及由一组通用处理单元所控制的记忆体。通用处理单元能控制资料流经管线的动向,并能针对每个画格修改参数设定值。例如,若需要加入即时位元率控制机制,软体或Orchestrator可透过处理网路的要求来变更位元率,并将处理元件修改成适当的参数。这种架构并非固定不变,而是可程式化,可自由调整记忆体处理元件以及软体控制。在通用型FPGA架构中加入部份架构与限制,能将系统层级的研发工作与从FPGA的规格中分离,然后在后段的设计流程中再加以整合。
结论
本文讨论多媒体压缩,探讨在建置即时媒体压缩系统所可能遇见的相关问题。包括各种多媒体压缩的需求、设计的复杂度、并规画一套设计流程。最后笔者推测业界将更为需要运用矽元件的抽象技术,以便能有效率地运用百万逻辑闸的矽元件技术。 (作者任职于Xilinx研发实验室)