![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 如何优化数字基带处理器上的H.264视频解码器 | |||||
作者:Jose Fri… 文章来源:模拟器件公司 点击数: 更新时间:2007-1-21 ![]() |
|||||
|
作者:Jose Fridman,模拟器件公司 在各种嵌入式系统尤其是手机中,除了处理器执行时间,另外一个非常重要的资源就是设备总线和外部存储设备接口。本文我们将讲述一个依据某个应用在使用指令缓存时所占带宽来对之进行剖析的方法。这一方法可以通过传统的周期型概图来实现,并能使外部存储接口有限的设备中的应用得到优化。我们发现,在一个外部接口有限的设备中,如果对使用缓存的应用的程序提取带宽进行优化,可以使其执行运行时间得到改进。我们以H.264视频解码器作为例子,这个解码器运行于AD6900的一个Blackfin DSP上-AD6900是一个高端的低功率手机和多媒体SoC器件,是模拟器件公司AD20msp500 SoftFone数字基带芯片组系列的新产品。 最近几年,缓存成为DSP和嵌入式系统中经常谈论的话题。在没有应用缓存时,嵌入式软件的开发需要对所有可用的物理存储设备如片上SRAM、片外SRAM、SDRAM和FlASH等设备中的代码进行详细管理。这意味着软件设计者必须通过基于运行时分析的探索法来定位所有实时代码模块。比如,当需要一个特别的实时模块,例如通信系统中的数据均衡器,它的代码就必须在执行之前从低速片外存储器转向高速片上SRAM。这个预载阶段确保模块能快速执行,不会超出限定的执行时间范围。 但是,这个过程需要耗费大量时间,是产生运行时系统bug的来源,而且相当复杂,只能用于相对较小的系统。可以试想一下,在现代蜂窝手机系统的复杂性已经达到一个极限,尤其是GSM modem和FDD WCDMA模块同时共存的新一代多模手机都即将出现的今天,这样的方案可行吗?除了蜂窝标准,IEEE802.11 Wireless LAN和蓝牙等多种无线连接标准以及MPEG-4和H.264 0等多媒体器件也被集成到蜂窝手机中。无线标准的多样性给本已高度复杂的硬件和软件系统增加了更多负担,因此使得显式代码定位的方案根本行不通。 另一方面,假如我们要设计一个使用指令缓存的系统,但不注重程序定位,就要花费过多的时间来让缓存提取程序代码,而存储程序代码的存储器所占带宽也会过大,这种情况就好像我们将整个程序放在了外部闪存上。 在本文中,我们就来讲述一个如何为大型软件系统的代码实现最佳定位的方法-这个系统是通过一个使用指令缓存的Blackfin DSP执行的。这个方法不仅能适用于AD6900型数字基带处理器,对于任何其它型号的Blackfin DSP也都可以适用。AD6900是一个高端的低功率无线手持设备和多媒体片上系统器件,也是模拟器件公司AD20msp500 SoftFone芯片组系列的最新产品。 AD6900的结构 我们主要讲述的是AD6900型DBB,如图1所示。右上方是Blackfin子系统,由Blackfin 核、L1代码和数据存储器(可配置成缓存或者SRAM)、L2存储器、Blackfin DMA控制器即DSPDMA以及一套用来获取并处理GSM数据的DSP外围设备组成。Blackfin子系统和系统总线接口单元(SBIU)相连,这个多端口单元可以实现DSP和L1存储器以及其它部分之间的并行连接。右下方是ARM926EJ-S子系统。系统中第三个片上存储器叫做系统RAM(即L3存储器),通过Blackfin和ARM都可接入。外部存储器(L4)则可通过外部总线控制器(EBS)、SDRAM控制器(SDC)和NAND闪存控制器 (NFC)来接入。 多媒体连接函数,即显示和捕捉设备的接口,是由专用的APBUS子系统来提供的。该系统包含了一个并行外设接口(PPI)控制器-支持10b相机传感器或者视频输入接口(包括ITU-656 和ITU-601数字视频),以及一个专用的外部总线接口-用于并行LCD显示器即EBUS2,消除了主要外部存储器接口的噪音和负载。多媒体接口设备的数据转移则通过多通道DMA 控制器即APPDMA来实现,该控制器支持YUV4:2:2、YUV4:2:0和 RGB565等多种视频格式。
AD6900的存储器系统具有多个等级。从Blackfin处理器来看,L1存储器可以进行快速零等待状态存储,但容量有限,而较低级别的存储器(L2, L3和L4)则提供了更大的存储量,但是速度较低。Blackfin DSP有一个双排16KB指令缓存,线大小32KB。 H.264视频编解码器 H.264视频解码器,即MPEG 4 Part 10 / AVC,推动着无线手持设备中的多种新应用。之所以以之为例子来讲述在AD6900系统中定位代码的方法,是因为它对代码提取带宽上具有很高的要求。表格1是运行在Blackfin DSP上的H.264解码器概图,展示了几个最占周期的函数(整个应用程序里大约有100个函数)。这个表格中的信息是比较典型的信息,包括函数被提取次数、周期总数及其对整个DSP处理器负载的作用。在这个特殊试验中,我们运用了一个分为21部分(如,帧)的基线概图参考设计向量,每一个I-slice对应15个 P-slice。与很多其它的DSP类似,Blackfin VDSP也可以捕捉这类概图信息的种类。代码开发者可以借助该信息来集中于并优化最耗费DSP周期的函数,比如_decode_residual和_filter_mb_edgev_4pix。实际上,这样的执行,这两种函数以及各种其它的高度周期密集型函数都已经在汇编语言中优化了。总体上大约10%的代码基以汇编语言优化,另外90%则以C语言优化。
这一概图的一个重要方面,在于它显示了每个函数所需指令缓存列的数量。以_decode_residual为例,从图中除了可以看出它占用周期最多之外,还能看出它使指令缓存产生了大量的缓存列。此时,光是这一函数就产生了H.264视频解码器所需缓存列总数量的10.5%。 同样的,其它函数在DSP负载方面可能不是最占周期的,但是也需要大量指令缓存列。在表格中我们对要求最多缓存列的三个函数做了标记,它们一共占据了总缓存列数的40%。总体说来,DSP周期消耗和缓存列数是不相关的。很多DSP周期消耗很小的函数却需要大量的缓存列,而有些高DSP负载的函数需要的缓存列却很少(比如_filter_mb_edgev_4pix 消耗6.7%的 DSP周期,但需要的缓存列只占总数的0.1%。) 这一信息之所以有用,是因为当整个应用程序被置于低级存储器如片外闪存时,代码提取就需要耗费大量包含指令缓存列的带宽。这个代码带宽会和视频及临时数据争夺总线资源,而且可能会降低解码器的效率。我们可以看到,光是程序提取就占据整个解码器片外存储器带宽中的50%,而视频数据、表格查找和状态信息等函数加起来才仅占一半。 如果将表格1中三个最占缓存的函数都放到一个更接近DSP的存储器上,比如L1程序存储器,就可以将片外代码提取带宽降低大约40%。这是以缓存列作为基础来勾勒概图的主要目的。 我们一般会采用表格2那样的方式,虽然是同样的概图,但依据递减的缓存列来分类。我们可以看到一些不占据高DSP负载的函数却可能需要大量的缓存列。比如,如果用传统的周期型概图来显示_hl_motion函数,就根本不必考虑借助它来实现优化,因为它只消耗0.7%的DSP负载。但是,它所需要的缓存列却达到5.5%,那么在这种情况下,如果将它放在离DSP更近的存储器上,就能凭借相当大的空余来改进应用程序的性能。
利用表格2中的概图,我们选出那些消耗最多缓存列的函数并将之放在L1 DSP存储器上。函数的数量取决于整个系统其它部分的要求以及可用的L1存储容量。这个例子里的L1 DSP存储量为16KB,若将最耗缓存的函数放在它上面,可以将程序提取所耗带宽降低54%,从而使整个H.264解码器的周期时间能减少10%。H.264解码器的程序大小约为125KB,也就是说,通过重新连接并将13%的代码转移到片上存储器,周期性能也得到了改进。 结论 在考虑对应用程序进行优化时,我们总是把偏重于问题的某一个方面:以周期消耗或者MIPS消耗来表示的应用程序DSP资源占用程度。但是,在很多嵌入式系统中,除了处理器执行时间之外,还有一个非常重要的资源就是整个设备的总线和外部存储接口。这一点在高集成系统里尤其明显,比如手机中的DBB,外部接口常常是多关键的系统资源之一。本文我们讲述了一个依据某个应用程序在基于指令缓存的系统上执行时所消耗的带宽来来描绘程序概图的方法。这一方法可以通过传统的周期型概图来实现,并能使外部存储接口有限的设备中的应用程序得到优化。我们发现,在一个外部接口有限的设备中,如果对使用缓存的应用的程序提取带宽进行优化,可以使其周期时间得到改进(即MIPS)。 参考资料 “Software radio: a modern approach to radio engineering ”,作者J. Reed,Prentice Hall出版公司, Upper Saddle River, 新泽西州,2002年出版 《The MPEG-4 Book》,编辑Fernando Pereira和Touradj Ebrahimi,,IMSC Press Multimedia丛书;Andrew Tescher,丛书总编,Prentice Hall PTR出版社, 2003年出版 “Software Defined Radio -- Baseband Technology for 3G Handsets and Basestations”书中的“DSP for Handsets: The Blackfin Processor”一文,作者Tuttlebee, Walter (ed.), ISBN 0-470-86770-1,John Wiley & Sons出版社 “Cached Memory Characterization of a Wireless Digital Baseband Processor,”作者S. Kannan, M. Allen, J. Fridman, 发表于IEEE声学、语音和信号处理国际会议(ICASSP),蒙特利尔,魁北克,2004年5月 “H.264 and MPEG-4 Video Coding for Next-generation Multimedia”,作者Iain E. G. Richardson,Wiley & Sons出版社,2003年出版 作者简介 Jose Fridman博士,模拟器件公司系统和软件经理,在ADI工作已10年,目前专注于开发GSM/GPRS/EDGE/WCDMA网络无线手持设备的平台。ADI最近两个DSP处理器架构-Blackfin and TigerSHARC的设计者;IEEE信号处理协会的一个常设委员会-IEEE Industry DSP Committee (IDSP-IEEE行业DSP委员会)主席; ICASSP Industry and Technology Tracks (ITT) 2001和ICASSP Industry and Technology Tracks (ITT) 2002的主席;IEEE Design and Implementation of Signal Processing Systems (DISPS) Committee成员;在DSP处理器架构和通信领域发表过30篇论文,有10项专利; 电子邮箱:jose.fridman@analog.com 模拟器件公司RF和无线业务部 地址:804 Woburn Street, RSTC Building Wilmington, MA 01887, USA |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|