微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于ADSP-BF533处理器的H.264解码器

基于ADSP-BF533处理器的H.264解码器

时间:09-15 来源:互联网 点击:
H.264是ITU T的VCEG和ISO/IEC的MPEG联合成立的联合视频组JVT(Joint Video Tearn)共同制定的新视频编码标准,定位于覆盖整个视频应用领域。H.264标准采用了基于可变大小宏块的运动补偿、多帧参考、整数变换、基于1/4像素精度的运动估计、去块效应滤波器等新技术,因而获得更好的压缩性能,同时也导致了运算量的大幅度增加。

Blackfin处理器采用了ADI公司和英特尔公司共同开发的微信号结构,在结构中加人专门的视频处理指令,工作频率高达756 MHz,能完成12OOM次/s乘加操作。与采用超标量结构或超长指令集的DSP(如TI的C6000系列)相比,Blackfin处理器在功耗、成本方面具有很大的优势,非常适合嵌入式的视频应用。

1 H.264视频编码标准  

H.264视频编解码器的基本结构与早期的编码标准(H.263、MPEG4等)相似,都是由运动补偿、变换、量化、熵编码、环路去块效应滤波器等功能单元组成的。H.264标准的改进主要体现在各功能模块内部。H_264的重大改进表现在以下几个方面:

①高精度的基于1/4像素精度的运动预测。

②多种宏块划分模式。每个宏块(16×16像素)的亮度分量有7种分区方法:16×16、16×8、8×16、8×8、8×4、4×8、4×4。

③多帧预测。在帧间编码时,可选5个不同的参考帧。

④整数变换。采用基于4×4像素块的整数变换代替DCT变换。

⑤H_264/AVC支持两种熵编码方法,即CAVLC(基于上下文的自适应可变长编码)和CABAC(基于上下文的自适应算术编码)。CAVLC的抗差错能力比较高,而编码效率比CABAC低;CABAC编码效率高,但需要的计算量和存储容量更大。

⑥帧内预测编码。H.264采用了多种设计合理的帧内预测模式,大大降低了I帧的编码率。

⑦网络适配层NAL(Network Abstraction Layer)为视频编码层提供一个与网络无关的统一接口,使视频编码数据能适应不同的网络应用环境。

H.264分为7种不同的框架(profile)——Baselineprofile、Main profiIe、Extended profile、High profik、High10 profik、High4:2:2 profile和High 4;4:4,分别代表不同的技术限制和算法集合。其中baseline prome的使用是不收版权费的。

2 基于ADSP—BF533的软硬件实现平台  

硬件平台采用ADI公司的ADSP—BF533 EZ—kit Lite评估板。此评估板包括l块ADSP—BF533处理器,32MB SDRAM,2 MB? Flash,ADVl836音频编解码器外接4输入/6输出音频接口,ADV7183视频解码器和ADV7171视频编码器外接3输入/3输出视频接口,1个UART接口,1个USB调试接口,1个JTAG调试接口。评估板系统结构框图如图1所示。

评估板上采用的ADSP—BF533处理器,工作频率高达756 MHz。该处理器有以下特点:双16位乘法累加器;双40位算术逻辑单元(ALU);4个8位视频ALU;1个40

位移位器;专用的视频信号处理指令;148 KB的片内存储器(16 KB可作为指令Cache,32 KB可作为数据Cache);动态电源管理功能等。Blackfin处理器还包括丰富的外设和接口:EBIU接口(4个128 MB SDRAM接口,4个l MB异步存储器接口),3个定时/计数器,1个UART,1个SPI接口,2个同步串行接口,1路并行外设接口(支持ITU一656数据格式)等等。Blackfin处理器在结构上充分体现了对媒体应用(特别是视频应用)算法的支持。

软件验证采用如下方式:首先,通过DSP仿真器将H.264编码文件拷贝到评估板的存储器里。然后,软件从存储器中读取编码文件的数据,进行解码操作。最后,将解码的数据通过PPI接口输出到ADV7171芯片,ADV7171芯片将输入的视频数据编码为PAL格式输出到显示器上二进行显示。

Blackfin处理器的软件开发平台是VisualDSP++4.0。

3 H 264实时解码器软件设计

3.1软件总体设计  

为了实现实时解码的要求,需要优化程序的设计。优化流程如下:

①在PC机上进行算法的验证和评估、优化程序的流程设计和数据结构设计。

②将程序代码移植到Blackfin处理器。在Visual—DSP++集成开发环境里进行编译,删除PC平台相关的代码,添加DSP平台相关的代码。

③进行基于DSP平台的优化操作。设置速度优化的编译参数,进行C语言级的优化,用汇编指令改写最耗时的函数,通过使用专用的向量指令和并行指令减少函数的执行时间。

3.2 在PC机上实现并优化解码器程序  

解码器程序参考了JM9.6,并在以下方面作了优化:

①由于只支持Baseline profile,删除有关B帧、SI片、SP片和数据分割等不支持特性的冗余程序代码;

②修正JM9.6,每次处理一个Slice时都要分配内存,读取其中信息,再释放内存,合理安排内存空间的分配和释放;

③将I帧、P帧分别独立解码,宏块解码也按预测模式和预测方向分成不同的解码模块,以省去中间的重复判断,提高解码速度;

④优化CAVLC码表的查询方法。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top