![]() |
|
||||||||||||||
| | 首页 | 新闻 | 文库 | 方案 | 技术 | 独家 | 座谈 | 下载 | 电路图 | 开发套件 | 仿真器 | 邮购 | 帮助 | VIP会员 | 芯片代购 | | ||
|
||
|
|||||
| 基于ASIC 的H.264 编码器设计及其ADSP 验证策略 | |||||
作者:汪毅,林… 文章来源:Internet 点击数: 更新时间:2008-3-31 ![]() |
|||||
|
【摘 要】提出了H.264/AVC 硬件编码器的一种3 级流水结构,以此来提高硬件加速电路的处理能力和利用效率。鉴于H.264 编码芯片验证的复杂性,还提出了一种基于ADSP-BF537的新型多媒体SoC 验证平台,并讨论了如何利用BF537,对H.264 编码芯片进行全面、高效的软硬件协同验证。 H.264[1]标准颁布以来, 其提供的高效的压缩率以及优质的图像质量已经得到了广泛的认可, 应用H.264 标准的各种编解码器也不断涌现, 其应用也层出不穷, 从传统的数字机顶盒、视频会议系统、可视电话到IP 视频服务、个人媒体播放器( PMP)。由于H.264编码算法复杂,必须要有强劲有力的硬件作为支持。目前,基于各种芯片的H.264解决方案相继推出,在实现H.264实时编码的芯片当中,主要有以下几种方案:基于专用芯片的结构(SoC+ASIC);基于DSP+ARM的结构;基于x86的结构。但低成本、低功耗以及高计算能力一直是方案中互相冲突的因素,在这3个因素的相互制约下,各方案有其不同的效果。
2 H.264硬件编码器结构划分和流水设计 H.264 所获得的优越性能是以增加计算复杂度为代价的,据估计,H.264编码复杂度大约相当于H.263的3倍。H.264编码算法的几个特点如下: 处理器负责处理宏块及更高级的控制,硬件加速模块ME(运动估计),REC(重构),EC(编码)和DPCM Loop(DCT/Q/IDCT/IQ)通过与总线相连来起到加快编码操作的作用。为了降低通过总线的数据量,对REC、EC 和DPCM Loop 模块的局部存储器进行共享,这几个模块又被称作BE(Block Engine)。整个流水线被分为ME 和BE 两级,其中ME 模块占用了整个系统绝大多数的计算量和带宽。在进行处理时,首先ME 模块按照光栅扫描(raster scan)顺序对宏块进行处理,在ME 对当前宏块处理完成之后,BE 模块接着对改宏块进行编码,而此时ME模块可对下一模块进行处理。 这种基于宏块的两级流水线结构应用在传统的视频编码器上又很好的表现,但它并不适合H.264 编码算法。H.264 的多帧预测和去块效应滤波算法造成了对带宽要求的急剧增加。例如在进行帧间预测时,编码芯片需要从片外存储器读取16x16 个8 比特编码数据,64x16个8 比特参考点数据以及周边4 个宏块的编码信息。每帧图像有720x576/256=1620 个宏块,每秒需要编码30 帧图像,先不考虑周边宏块的编码信息,则每秒需要读取的数据为(16x16+64x16)x1620x30 = 60Mbyte/s.采用各个硬件加速模块通过总线进行通讯的方式很难满足实时编码数据传输的要求;其次,H.264 的模式判决机制对宏块中的各个块使用串行处理的方式,这在提高编码效率的同时,也造成了相邻块数据间的非独离性,这给并行处理和流水线操作造成了极大的困难。 针对H.264 编码算法的特点,对前面讨论的结构做出了改进,提出一种新的硬件加速电路的设计结构,该结构采用采用3 级流水线结构,以此来增加硬件加速电路的处理能力和利用效率,具体的流水线结构如图2 所示。 图2 H.264 编码器3 级流水结构图 第一级为从片外存储器读取需要的数据到内部的乒乓RAM,第二级为内部编码流程,包括预测(PREDICT),残差编码(DCT/Q/IDCT/IQ),重构(REC),熵编码(EC)和滤波(DB),第三级为从内部乒乓RAM发送数据到片外存储器。 3 基于ADSP-BF537 的SoC 验证平台及验证策略 3.1 验证平台的结构组成 图3 多媒体SoC 验证平台结构组成图 其中SDRAM 用来存储中间数据,比如图像的参考帧YcbCr 像素数据等;另外,操作系统的快速运行也需要SDRAM 的支持。Flash 用来存储音视频编解码器的输入数据;处理音视频编解码时,还需要有音视频ADC 和DAC 来实现模拟信号的采集和还原;由于音视频编解码器逻辑较大,再加上系统总线、SDRAM 控制器,以及其他外设模块,还需要一个大容量高性能的FPGA 作为芯片的原型。本设计采用Altere 的StratixII EP2S130,内部具有十万数量级的ALUT 和6 MB 的内部SRAM,以满足验证需求。 对于BF537,直接利用其配套的EZ-KIT 开发板,通过在FPGA 验证板上设计与之兼容的插座,并将所有EZ-KIT 插座上对应的I/O 口与FPGA 的I/O 相连即可。采用的EP2S130 是1020 管脚封装,具有700 多个可配置I/O 引脚,满足连接数量的要求。基于ADSP 系列芯片以及EZ-KIT 开发板,ADI 也拥有自己的功能强大的编译调试工具VisualDSP,完全支持标准的C/C++,具有独立的汇编指令集,支持汇编与C 的嵌套编程,使ADSP 性能得到最大的发挥。VisualDSP 通过JTAG,还可以在EZ-KIT 中实现在线实时单步、断点调试,使得在ADSP 运行过程中,实现与PC 机的交互。基于ADSP 的强大处理能力和方便灵活的编译调试工具,可以利用ADSP,进行多媒体SoC 的复杂功能模块的验证。 3.2 H.264 编码器软硬件协同验证策略 图4 基于BF537 的软硬件协同验证原理图 其基本思想是:基于BF537,利用C 语言已经实现的算法,将其中需硬件实现的函数,经过RTL 转为硬件后,在原始软件平台下,去除已经改写成硬件的软件部分,保持其他软件不变,而通过接口函数驱动FPGA 内的已实现的硬件算法,并通过接口函数,将硬件处理完毕的结果送回BF537 继续运行,如果最后运行的结果和纯软件运行的正确结果一致,则说明改写的函数4 的RTL 是正确的,否则,检查相应RTL 代码。 3.3 基于ADSP-BF537 验证平台的功能原型验证 4 结论 目前,基于ASIC、3 级流水设计的H.264 编码器,已经通过了大多数视频序列的编码测试。在ADSP-BF537的多媒体验证开发板上,工作频率最多可以达到53MHz,完全可以满足30 帧/秒CIF 格式视频实时编码;本设计最终目标是应用于视频电话系统,最大支持720×576/30P 的图像格式,即H.264/AVC 标准中的3 级(Level)及其以下级别。ASIC 实验证明:采用0.13um CMOS 生产工艺,面积10.8MM2,工作频率133MHz,可以满足该编码芯片的系统性能要求;算法的复杂度决定了硬件前期的开发周期,尤其是系统级验证[5],本文编码器的验证采用的是基于ADSP-BF537 多媒体SoC 验证平台,有效的提高了SoC 验证效率,缩短该编码器的开发周期。实践证明,该验证方案是一种全面、高效的多媒体SoC 验证方案。 参考文献 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| FPGA+DSP实时三维图像信息处 ADP-TS101 EzFlash示例程序 ADSP TS101EzFlash (C)源代码 ADI DSP双精度除法的例子 ADI GPS导航解决方案 用对数放大器实现射频功率控 ADI DSP的单精度随机斜率滤波 多路跟踪滤波同步数据采集系 基于单片机的车载超级电容测 设计面向高清电视的全数字音 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 本站介绍 | 合作联络 | 欢迎投稿 | 广告业务 | 网站地图 | 设为首页 | 加入收藏 | 友情链接 | 网站公告 | 联系我们 | | |||
|