当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]MPEG-4编码器在BF561上的优化

随着网络技术和多媒体技术的发展。视频通信的需求逐渐增加。同时,最新的视频压缩标准不断推出。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内部寄存器的读/写操作。[!--empirenews.page--]

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 基于双核结构的优化
    一片BF561内包含了两个完全相同的Blackfin内核,这使其拥有比同系列芯片更为强劲的运算能力。因此想要充分发挥其能力就必须更具其结构特性为编码器设定合适的整体构架。通常的方式有两种,一种是非对称的程序设计模式,另外一种为对称的程序设计模式。顾名思义,非对称模式就是两个内核完成不同的处理任务,这种模式下,两个内核好像是两个单独的处理器,它们之间不共享代码。不共享或者只共享少量的数据。而对称的程序设计模式比较适合于处理器任务较为单一,但运算量比较大的情况,更能发挥双核在运算能力方面的优势。
    基于上面的分析,选择了对称的程序设计模式,而且是基于运算量考虑的对称模型,即两个核各负责半帧图像的压缩,另外A核还负责系统初始化以及输入/输出中断的响应,B核还负责时间字符的叠加以及时间计算等,这样最大程度上平衡了两个核的工作量。此外,在L2存储器中定义了两个核都需要的变量,以及控制双核同步的信号量等。双核协作工作的过程以及同步方式如图3所示。



[!--empirenews.page--]4 编码器测试
    在此分别采用foreman.yuv和Brige_close.yuv两个标准序列对编码其性能进行测试,图4~图7为效果图。


    优化前后的两种序列图像的性能对比如表1所示。


    采用实时采集的图像进行测试时,优化前图像模糊、不连续,说明编码速度小于采集速度;优化后图像清晰连续,说明编码器的编码速度已经达到25 f/s以上,达到了D1格式实时采集压缩的性能要求。
    将优化后的编码算法应用到实际视频采集系统中,得到优化前后的图像如图8、图9所示,实验结果表明,本文优化后的编码器可以得到很好的效果。

5 结语
    在此论述一款基于BF561 DSP的MPEG-4编码器的优化方案,通过实验验证了编码器的编码效率达到了PAL制式25 f/s@D1的要求,可以充分满足实时监控、视频图像存储等方面的应用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭