Micro Blaze在AVS视频编码器软硬件协同设计中的应用*

2010-06-07 02:04荣耀程朱炳强
电视技术 2010年9期
关键词:编码标准宏块编码器

荣耀程,袁 媛,朱炳强,何 芸

(清华大学 电子工程系,北京 100084)

1 引言

AVS视频编码标准是国内具备自主知识产权的视频编码标准,应用范围包括高清晰度和高质量数字电视广播、网络电视、移动电视、视频通信、数字存储媒体等,其一般包括变换、量化、熵编码、帧内预测、帧间预测、环路滤波等技术模块[1-2]。

高效的视频编码器是AVS视频编码标准推广及应用的关键。纯软件的实现方案难以满足大尺度实时编码的巨大的计算量需求,而基于ASIC的纯硬件实现方案虽然在速度和功耗上更占优势,但在复杂控制、功能灵活性上存在缺陷。为了最大限度地综合利用软件方法和硬件方法两者的优势,需要将软硬件设计两者密切结合起来,软硬件协同设计方法已经引起了人们广泛的关注,并在嵌入式系统中得到了应用[3-6]。软硬件协同设计方法的关键是如何合理地进行软硬件划分,划分没有统一的标准,需要根据应用需求以及算法的复杂度等进行具体分析和设计。

2 AVS视频编码器体系结构

AVS的码流结构语法层次从高到低,依次是序列、图像(帧/场)、条带、宏块、块。通常基于AVS视频编码标准的编码器以宏块作为编码流程中的基本单位。块是宏块的进一步划分,作为预测、变换的基本单位。

考虑到编码流程中数据结构的一致性,笔者提到的AVS视频编码器在进行系统级的软硬件划分时,根据数据结构的层次关系,以宏块为界,将宏块级的数据处理交给专用的VLSI硬件结构来实现,而宏块级以上的任务交给可编程的RISC核(Micro Blaze)来完成。

如图1所示,底层的专用VLSI硬件结构处理并行度较高的数据,进行复杂的计算,包括整像素运动搜索、亚像素运动搜索、帧内预测、变换、量化以及熵编码。顶层的RISC核(Micro Blaze)主要完成的任务可以细分为两个层次,由于两个层次的任务具有并发性,无法用单独的RISC核来完成,所以采用了两个独立的RISC核。上层RISC核,称PicRisc,完成图像级的编码过程控制及参数设置、传递;下层RISC核,称为MbRisc,完成宏块级的编码过程控制及参数设置、传递。

除了在系统级进行软硬件划分外,还对熵编码模块进行了软硬件划分。视频编码中需要进行熵编码的内容有两大类,一类是预测残差块的信息,另一类是其他语法元素的信息。在熵编码模块,残差块的熵编码是由底层的专用VLSI硬件结构完成的,其他的语法元素由于符号率相对残差块较低,且熵编码的方法细节与残差块的编码细节不完全一致,因此用PicRisc对它们进行熵编码,可以在不影响效率的同时简化熵编码模块专用VLSI的硬件结构。

3 Micro Blaze的设计与实现

Micro Blaze[7]是Xilinx公司推出的32位RISC软处理器核,它通过使用通用逻辑基元,而非FPGA中的硬专用模块来实现。它在Virtex-4 FPGA中的工作频率可达 160 MHz,处理速度超过 184 DMIPS(Dhrystone测试方法下的每秒百万条指令),适合针对网络、电信、数据通信、嵌入式和消费等市场的产品。基于Micro Blaze所能提供的良好性能,笔者所提到的软硬件协同设计的AVS视频编码器选用Micro Blaze作为RISC核。

开发Micro Blaze处理器,使用的开发工具主要是Embedded Development Kit工具,包括XPS工具和SDK工具。XPS工具完成主要硬件设计调试工作,SDK工具用于设计和调试应用软件。

3.1 Micro Blaze硬件设计

可以利用EDK工具提供的BSB(Base System Builder)Wizard帮助用户较快地构建硬件平台。构建了基本的硬件结构以后,还需要通过总线接口、端口以及地址分配等对各个组件进行有效连接。

除了设计两层Micro Blaze外,还需要添加额外的硬件来完成两层Micro Blaze间的通信以及两层MicroB-laze与底层专用VLSI硬件结构的通信。笔者采用了相对总线机制控制更加简单的读写存储器方式来完成上述通信任务,如图2所示。

为了完成通信,需要添加额外的硬件模块包括:

1)外部存储器访问控制器

exd_lmb_cntlr_Mb和exd_lmb_cntlr_Pic这两个控制单元分别对应MbRisc和PicRisc,均可直接通过实例化lmb_bram_if_cntlr的IP核来实现。

2)块存储器的接口

customBRAMIF_Mb和customBRAMIF_Pic这两个接口单元分别对应MbRisc和PicRisc,需要自定制IP核customBlockRAM interface,并实例化此IP核。最终形成的顶层MbRisc和PicRisc的硬件结构分别如图3和图4所示。

3.2 Micro Blaze软件设计

顶层RISC核(Micro Blaze)的硬件部分设计完成后,使用高级语言C编写代码,开发完成相应的软件部分。两层Micro Blaze的任务不同。PicRisc的软件所需要完成的任务包括:

1)初始化和更新编码参数

如图像类型、图像尺寸、量化参数、图像编码类型(I帧、P帧、B帧)更新编码参数。

2)部分语法元素的熵编码以及码流合成

按照AVS标准文档里所规定的码流结构[1]来进行控制,如图5所示。图5中的block编码的任务是由底层VLSI的熵编码模块完成的,此模块将残差块熵编码形成的比特流存储在图2所示的Block RAM中,最后PicRisc把残差块的比特流与其他语法元素的比特流合成为最终视频编码输出的比特流。

MbRisc软件所需要完成的任务主要是更新宏块级的编码参数,如宏块计数,宏块的量化参数等。

4 仿真及综合结果

对软硬件协同设计的编码器进行仿真验证时,除了需要将底层的VLSI结构以及顶层的两个Micro Blaze实例化外,还需要将编写好的软件初始化写入Micro Blaze的指令存储器中,最终的仿真结果表明Micro Blaze工作正常,功能正确。

设计中采用的硬件平台是Xilinx公司的virtex4-xc4vlx200-ff1513-10,整个设计在 ISE 9.2i和EDK 9.2i环境下进行。综合后,两个Micro Blaze共使用了1932个Slice,最高时钟频率可达147.435 MHz。

5 小结

介绍了Micro Blaze嵌入式RISC核在AVS视频编码器软硬件协同设计中的应用。利用Micro Blaze嵌入式RISC核以及基于Micro Blaze开发的软件可以高效地完成相关处理任务,使本文所提到的AVS视频编码器兼顾了高效性和灵活性,为其对高清视频源进行实时编码提供了强有力的支持。

[1]GB/T 20090.2-2006,信息技术 先进音视频编码 第二部分:视频[S].2004.

[2]虞露,胡倩,易峰.AVS视频的技术特征[J].电视技术,2005,29(7):8-11.

[3]PAULIN P G,LIEM C,CORNERA M,et al.Embedded software in realtime signal processing systems,application and architecture trends[J].Proceedings of the IEEE,1997,85(3):419-435.

[4]CHEN Towei,HUANG Yuwen,CHEN Tungchien,et al.Architecture design of H.264/AVC decoder with hybrid task pipelining for high de?nition videos[C]//Proc.ISCAS 2005.[S.l.]:IEEE Press,2005:2931-2934.

[5]JANGSK,LEEJ,CHOIGY,etal.Hardware-softwareco-implementation of a H.263 video codec[J].IEEE Transactions on Consumer Electronics,2000,46(1):191-200.

[6]CHIMIENTIAA,FANUCCIL,LOCATELLICR,etal.VLSIarchitecture for a low-power video codec system[J]. Microelectronics Journal,2002,33(5-6):417-427.

[7]Xilinx.Micro Blaze soft processor core[EB/OL].[2010-01-19].http://www.xilinx.com/tools/microblaze.htm.

猜你喜欢
编码标准宏块编码器
国家医保局发布《关于贯彻执行15项医疗保障信息业务编码标准的通知》
高校标准化主数据平台建设与应用
基于FPGA的同步机轴角编码器
高保真压缩技术的商用价值
基于双增量码道的绝对式编码器设计
JESD204B接口协议中的8B10B编码器设计
铁路工程信息模型分类和编码标准研究
基于选择特征宏块的快速视频稳像
多总线式光电编码器的设计与应用
基于宏块合并的H.264模式选择算法