IC百科
基于Blackfin媒体处理器的视频应用
  视频处理算法的精益求精使得人们可以在越来越低码率的情况下获得更高的处理质量。 这些好处也造就了更多的基于视频处理的应用需求, 包括基于流媒体的机顶盒,数字视频录像机(DVR),数字视频广播(DVB),网络监控摄像头以及可视电话(videophone)等等。 这些应用共同之处在于它们都要求对视频的处理,处理的方式包括对视频数据的编码和解码,例如MJPEG, MPEG4,H.263以及目前相当受关注的H.264;或者实现对不同压缩制式之间的转码(Transcode)。这些应用都要求主处理芯片有非常强的视频处理功能。在对视频质量要求不断进步的同时,还要求整个设计实现保持很低的本钱和功耗水平。

基于Blackfin?的视频应用系统

对于设计工程师们来说选择一款合适的处理器来满足视频应用中日益进步的要求尽对是一件挑战性的任务。为满足当前视频应用的需求,处理器首先必须有足够强大的视频处理能力,尤其在实现基于MPEG4 及 H.264 这样的复杂视频处理算法的应用时。在这些高性能视频应用中,通常数据运算量极大。PAL和NTSC电视信号分别为25帧/秒和30帧/秒,编解码器需要每秒处理162000个宏块(Macro Block)。在H.264的编解码处理中要对每个宏块进行整型变化和反整型变化,运动搜索,宏块重构1。没有经过深进优化的H.264 CIF大小编码大约需要50,000万到1000,000万指令周期。

此外,随之而来的困难还包括如何将丰富的系统应用层和复杂的音视处理模块高度集成来实现低本钱的解决方案。 传统的方法是在系统中同时加进一个MCU和一个数字信号处理器。MCU用于实现系统控制及应用层,包括象网络TCP\IP协议等各种协议栈。而DSP用来完成一些大数据量的运算,象H.264编解码之类的视频处理。在这种结构下,工程师在系统实现时不得不面对两种不同的处理器,这使得系统的设计和调试都显得不太轻易。 并且一个多个处理器并存的系统很难满足低本钱和低功耗的苛刻要求。 

不过让工程师们觉得兴奋的是,过往由于带宽和处理能力的限制,只能在简单音频处理领域发挥作用的数字信号处理器,由于性能的不断进步,也开始在复杂视频应用领域大显身手。如今,工程师们可以在一个单一的结构中,这里指的是一个单一的处理器,来实现包括系统应用层和视频编解码处理。例如Analog Devices Inc 最新推出的Blackfin?系列媒体处理器。

Blackfin 处理器是一类专为满足当今嵌进式音频、视频和通讯应用的计算要求和功耗约束条件而设计的新型 16~32 位嵌进式处理器,如图1。Blackfin 处理器基于由 ADI 和 Intel 公司联合开发的微信号架构(MSA),它将一个 32 位 RISC 型指令集和双 16 位乘法累加(MAC)信号处理功能与通用型微控制器所具有的易用性组合在了一起。 这种处理特征的组合使得 Blackfin 处理器能够在信号处理和控制处理应用中均能发挥出色的作用 -- 在很多场合中免除了增设单独的微控制器(MCU)的需要。该能力极大地简化了硬件和软件设计和实现难度。

图1 ADSP-BF561系统结构示意图
目前,Blackfin 处理器在产品中可提供高达 756MHz 的性能,还提供了低至 0.8V 的业界领先的功耗性能。

下面我们以IP视频可视电话为例来看看采用Blackfin来设计实现基于IP的复杂视频应用。
IP视频电话产品应该不算是一个新的产品概念了。目前市面上有的IP视频电话多采用H.263和H.264编解码格式。对于一般的用户,大多要求CIF(352x288)的分辨率,实时帧率为25或30帧每秒。但随着视频处理技术的不断发展,在确保高质量实时视频的同时,对网络带宽的需求可以大幅减少。H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图像专家组联合提出的最新一代的视频编码标准。在采用H.264格式时,在低码率下,甚至64kbps 的码率时也可以获得高质量的音视频。 H.264格式的视频电话可以比H.263格式的视频电话节省近一半的带宽。所以新的IP视频电话都将以H.264为标准格式。 

作为单芯片方案,我们采用ADSP-BF561媒体处理器作为系统的核心处理器。 ADSP-BF561处理器是Blackfin 处理器系列中的新型对称多处理器成员。ADSP-BF561内部有两个高性能的MSA架构的Blackfin内核,提供有专用的高级视频处理指令。此外还有多达328kbytes的片上高速内存。既可以很好的支持丰富的应用功能如GUI,SIP或H.323协议栈,还能够完成复杂的音视频编解码处理,例如H.264单通道CIF的编解码。硬件平台的设计如图2所示。系统中视频数据的输进输出由两个独立的PPI承担,Blackfin的PPI 端口能够支持BT656兼容的视频数据。音频的输进输出由Blackfin?的Sport完成,Sport能够支持标准的I2S和TDM传输模式。此外,可以通过外频高至133MHz的异步总线接口上扩展以太网驱动芯片来提供高速的网络传输。一些辅助的控制外设象红外接口,可以由Blackfin提供的专门支持IrDA的Uart来支持。 


图2 基于ADSP-BF561的视频可视电话系统结构
在系统软件结构上,ADSP-BF561提供非对称多处理(AMP)和对称多处理(SMP)两种不同的处理架构。工程师可以根据具体应用的情况选择合适的处理架构。 

在视频可视电话的应用中,采用H.264的视频编解码格式,我们在前面也提到相对于H.263而言H.264算法的一些上风,当然也显而易见的是H.264对处理器的处理能力有着更为苛刻要求。因此在ADSP-BF561平台上,采用如图3所示的非对称多处理架构。由CoreA独立的完成H.264的编解码及音频的处理,CoreB则承担所有应用层的任务,例如操纵系统uclinux,图型界面GUI,可视电话网络协议H.323等等。容量高达128Kbytes的L2内部存储单元可以用于双核之间的数据交换和共享。


图3 基于ADSP-BF561的非对称多处理架构
在AMP的架构下,CoreA的资源可以由H.264编解码器全部支配,可以极大的进步编解码处理的效率。下面看看如何在ADSP-BF561上实现CIF分辨率的实时H.264编解码处理。

要实现30fps的H.264实时编解码要求对算法实现进行优化设计。优化主要分为算法结构优化,指令优化两个主要部分。

算法结构优化的核心就是针对处理器架构的特点来选择一种优化的存储区分配治理和数据处理模式。

众所周知,处理器内部存储器的访问速度比外部SDRAM的访问速度要快很多。但嵌进式处理器的内部存储空间通常比较小。固然ADSP-BF561 有多达328kbytes的片上空间,可但相对于视频处理对存储空间的要求而言还是有限。怎样分配和治理系统的存储空间对处理效率有着很大的影响。对数据区来说,在H.264中,象VLC和VLD的查表数据由于访问非常频繁则应该放在处理器的内存中。对程序存储区而言,算法的核心代码例如整系数变换,运动搜索(ME),运动补偿(MC), 内环的Loopfilter等等都分配到内部程序存储区。对于无法放置到内部存储区的部分代码和大量的视频数据则全部分配到外部的SDRAM中。同时为了进步对存放于SDRAM的数据和代码的访问速度,ADSP-BF561提供了一级缓存(Cache)来治理外部SDRAM存储区。

此外,ADSP-BF561提供了多达3个DMA引擎并可以支持2D-DMA传输。有了DMA的支持系统可以在后台完成大量的数据搬移。以帧为单位的视频数据太大必须存储在外部SDRAM中,这样处理速度会受到SDRAM访问速度的影响。但在H.264的处理中,就可以利用ADSP-BF561强大的DMA引擎,将算法的处理模式优化成按宏块(Macro Block)进行处理。可以在每个MB处理前将相关MB的数据用DMA从外存搬到内部存储器中。这样每次MB处理的数据都是内存的访问,可以明显的进步视频处理的速度。

对编解码算法进行指令优化的最大挑战就是如何尽可能的实现指令的并行处理。利用ADI提供的强大的程序优化器可以基于Blackfin?内核的特点进行指令优化,从而获取对处理器内核处理单元的最大利用。ADSP-BF561的内核中除了两个传统的ALU处理单元,还集成4个针对视频应用的8bit ALU。基于这种内核处理单元架构,Blackfin?提供了高级视频处理指令来加速关键视频处理模块,比如整系数变换、ME等等。

在基于上述方法的优化后,工程师们可以轻松的在ADSP-BF561的一个单核上实现具有CIF分辨率,超过30帧每秒的H.264实时编解码处理。

功耗和本钱控制

如今,对于工程师而言,不仅要设计出满足不断出现的新需求的系统,更大的挑战在于如何尽可能的降低设计本钱和系统功耗而又不牺牲系统性能和功能。 
降低本钱的一个趋势就是减少系统中芯片的数目,尽量做到单芯片或SOC解决方案。在类似上述IP视频可视电话的应用中,由于要求同时承担复杂的视频处理和多种应用控制和协议处理。传统方案中总是必须同时集成有DSP和MCU。在基于Blackfin?的方案中则可实现单一处理器同时完成视频处理和协议控制的功能。Blackfin?特有的DSP及RISC融合的内核架构可以轻松的支持这类设计要求。

除了本钱的要求外,功耗也是需要工程师们重点关注的。Blackfin?系列处理器充分考虑了手持式应用对功耗的苛刻要求,在处理器内部提供动态电源治理模块,借助该模块可以根据当前工作的复杂度对工作频率和工作电压进行独立的动态控制,从而达到降低功耗的目的。此外,Blackfin?还支持Full on, Active, Sleep,Deep Sleep, Hibernate等多种工作模式,使得系统在空闲状态时可以有选择的进进休眠状态,在这种状态下大部分的功能单元的供电将被断开以减少不必要的功耗。

结论

对于设计实现一个低本钱低功耗的复杂视频应用系统,选择合适的处理器对系统成败是非常关键的。象Blackfin?这样,将DSP强大的处理能力和RISC的MCU特性融合一体,可以很好支持操纵系统和应用协议栈同时还能轻松完成象H.264这样的复杂视频应用的单芯片解决方案,无疑是开发者的一个很好的选择。由于其本钱和功耗也是非常有竞争力的。

刘先生:13828738989 (微信同号)

邮箱:1626062770@qq.com

网址:www.ichs.cn 粤ICP备20057201号

地址:深圳市福田区华强电子世界B区4层