MPEG-4编码器在BF561上的优化

2010-06-14 08:53:33来源: 现代电子技术

      随着网络技术和多媒体技术的发展。视频通信的需求逐渐增加。同时,最新的视频压缩标准不断推出。MPEG-4(Moving Pictures Expcrts Group-4)是国际运动图像像编码专家组(MPEG Moving Picture ExpertsGroup)在1998年11月制定的。它提供了用于甚低速率的音视频编码,实现了基于内同的压缩编码,具有良好的兼容性、伸缩性和可靠性。以DSP为嵌入式图像处理核心的系统,具有开发周期短,编程灵活的特点,因此DSP图像处理系统成为了当前研究热点。Blackfin系列处理器是ADI专门针对于通信和多媒体方面的应用而开发的定点DSP,在片上集成了一套通用的数字图像处理外围设备,为数字图像处理和多媒体应用创建了一套完整的系统级片上解决方案。在此以该系列中BF56l为平台,研究实现MPET-4编码算法,并对该算法进行优化。

1 ADSP-BF56l结构特点

      ADSP-BF561是采用对等的双核结构,可以很好地执行两种任务,且开发人员可以随意分配任务来平衡双核之间的负载。如图1所示,每一个Blackfin内核包含两个乘/累加器(MAC),两个40位的ALU,四个视频专用8位ALU和一个40位移位器。运算单元处理来自寄存器组的8位、16位或者32位数据。每个MAC每周期可完成一个16位乘16位的乘法运算,并把结果累加到40位的累加器中,提供8位的精度扩展。ALU单元执行标准的算术和逻辑运算,由于两个ALU具备对16位或32位数据操作的能力,因此运算单元具备的灵活性可以满足各种应用中信号处理的要求。每个32位的输入寄存器可以作为两个16位的寄存器,因此每个ALU可以完成非常灵活的单16位算术运算。通过把寄存器当作两个16位的操作数使用,双16位或单32位操作可以在一个周期中完成。更好地利用第二个ALU,四个16位操作可以简单地完成,加速了每个周期的吞吐量。强大的40位移位器功能丰富,可以对数据进行移位、循环移位、归一化、提取和存储等操作。运算单元所使用的数据来自具有16个16位操作数或8个32位操作数的寄存器组。


      同时BF561把存储器视为一个统一的4 GB地址空间,使用32位地址并采用分级存储器结构。Level1(L1)存储器一般以全速运行,没有或只有很少的延迟。Level 2(L2)/Level 3(L3)分布在片内或片外,对它的访问会耗费多个处理器周期。在L1级,指令存储器只存放指令,两个数据存储器存放数据,一个专用的临时数据存储器存放堆栈和局部变量信息。在L2/L3级可以存放指令和数据。

2 编码器整体结构

      以BF561为核心构成的MPEG-4编码器结构如图2所示,其中BF561为编码处理器,完成视频采集控制以及基于MPEG-4的压缩编码等工作;与之相连的视频解码芯片选用ADI公司提供的ADV7183,它是10位ADC的增强型视频解码器,其内含三个精确模/数转换器(ADCs)和完整的自动增益控制(AGC)电路。BF561与ADV7183之间通过其专用视频接口PPI接口相连,并通过I2C总线协议完成对ADV7183内部寄存器的读/写操作。

3 编码器优化方案

  3.1 基于Cache和DMA的优化

  Blackfin系列DSP多级存储结构,其代码从内部L1指令存储器运行、中间数据及常用参数从内部L1数据存储器读取或存放时,才能实现最佳性能。但是MPEG-4算法大量的算法导致代码不可能放入L1指令存储器中,大量的中间数据和参数也不可能仅存放在L1数据存储器中,所以要考虑如何更好地利用处理器上的L1存储器才能让系统的性能达到最佳。指令Cache,数据DMA,这是目前最流行的系统模型,多数的嵌入式媒体处理器都是基于这样的想法而设计的。

  使用高速缓存机制允许编程者访问大的、低成本的外部存储器。它的工作方式是:在需要的时候自动将代码读入L1指令存储器。这使编程者不必繁琐地将代码从内部存储器移入移出。指令高速缓存有助于以更为有效的方式从外部存储器预取指令。

  相比于指令管理方面使用指令Cache,在数据管理上使用DMA显得是自然而然的。但是在优化过程中还是注意了以下几个问题:

  (1)由于BF561的外部总线是32位宽的,所以用32位DMA能最大程度地提高数据存取的性能。

  (2)基于寄存器的DMA和基于描述符的DMA两种DMA工作方式的选取。基于寄存器的DMA中,处理器直接对DMA控制寄存器编程来初始化一个传送。因为寄存器不必从内存中装载,并且内核不必保存描述符,因此,基于寄存器的DMA提供了最好的DMA控制器性能。相反在基于描述符的DMA操作中,可以对一个DMA通道进行编程,以便在当前传送队列完成后,自动设置和重启其他的DMA传送过程。在管理一个系统的DMA过程时,基于描述符的模型可以提供最大的灵活性。基于上面的考虑,在视频采集模块中我们选了基于描述符的DMA控制方式,而在其他模块中选取基于寄存器的DMA方式。

  (3)当数据在内部存储器移动时,尽量不使用标准C语言中的memepy()函数,而使用MemDMA的方式,这样可以减少CPU等待时间。

  3.2 存储器管理策略优化

  对于通常的嵌入式媒体处理器,片上存储器都不够存储一个完整的视频帧,因此系统必须依赖L3外部RAM来支持对大缓冲区进行相对较快的访问。因此对片外存储器的访问必须精心设计,以保证较优的数据吞吐。以下是笔者在优化过程中总结的一些关键步骤:

  (1)分组类似传送来减小存储器总线出送方向切换的次数。以相同的方向访问外存是是最有效率的(如连续的读或者写)。例如,当访问片外SDRAM时,16个读16个写总比单独的16个读/写要快,这是由于先写再读而导致的延迟。对外存的随机访问会产生高概率的总线中转。因此在给定的方向上充分利用控制传输数量的能力是重要的。

  对于MemDMA流,当期望共享可用的DMA总线带宽时,可编程的DMA控制器以轮流选择每个数据流的方式进行固定数量的传送。在每条DMA总线上,这个“方向控制”工具在DMA资源的优化使用方面是一个重要的考虑。通过分组同方向地传送在一起,其提供了一种方法来管理DMA总线传送方向的频繁变动。当使用方向控制特性时,DMA控制器优先级保证在DMA或存储器总线上,与前一次传送据具有相同读/写方向的数据传输,直到方向控制计数器溢出,或停止传送,或传送过程中自己改变方向。当方向计数器归零时,DMA控制器改变其优先选择方向为相反的数据流动。

  (2)保持SDRAM的行打开及实现多次数据传送。每次访问SDRAM都会花费几个SCLK(系统时钟周期),特别是如果需要的SDRAM的行还没有被激活时。一旦一行是激活的,就能从一整行中读取数据而不必每次访问该行的时候再打开。或者可以这样理解:每个SCLK周期访问存储器的任何位置都是可能的,只要这些位置在SDRAM的同一行中。关闭一行需要多个SDRAM时钟周期,因此,连续的行关闭能严格限制SDRAM的吞吐量。

  一个SDRAM的页错失可花费20~50个CCLK(核时钟周期)。Blackfin系列DSP可以最多同时打开四个SDRAM行,从而减少设置时间。应用程序应当通过适当放置数据缓冲区和管理访问来利用打开的SDRAM块,原则就是把可能同一时间访问的缓冲区分配到不同的SDRAM块中。

  3.3 基于双核结构的优化

  

[1] [2]

关键字:MPEG-4  编码器  BF561  优化

编辑:鲁迪 引用地址:http://www.eeworld.com.cn/szds/2010/0614/article_1732.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
MPEG-4
编码器
BF561
优化

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 电视相关 白色家电 数字家庭 PC互联网 数码影像 维修拆解 综合资讯 其他技术 技术产品 应用设计 论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved