基于FPGA的运动估计设计

发布者:ikfnpo最新更新时间:2012-07-05 来源: 现代电子技术关键字:视频编码  FPGA  运动估计  三步搜索法  VHDL 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:利用功能强大的FPGA实现视频图像的一种运动估计设计,采用的搜索方法是三步搜索法。在进行方案设计时,本文采用了技术比较成熟的VHDL语言进行设计,并使用Quartus II软件进行时序仿真。由仿真结果可知,无论是在功能的实现上还是在搜索的准确性、高效性以及FPGA片上资源的利用率上,本设计方案都具有明显的优越性。
关键词:视频编码;FPGA;运动估计;三步搜索法;VHDL

    人类获取的信息中70%来自于视觉。视频信息具有直观性、确切性和高效性等优点,其在多媒体信息中占有重要地位,成为了主导现代生活的主力军。然而,视频信息信息量太大,对信息存储设备及通信网络均提出了很高要求,严重阻碍了人们对有效信息的获取和使用。而解决这个问题的途径就是视频编码即视频压缩。
    目前,视频编码的主控制芯片主要有3种:ASIC、FPGA和DSP。ASIC和PGA属于硬件设计,DSP属于软件设计。从功能上说,全定制ASIC(Applieation Speeifie IntegratedCircuit)的功耗低、设计密度大并且能够完成高速设计,但同时其开发周期很长,投片成本很高而且不容易对解决方案进行优化,应用范围很窄;DSp(Digital Signal Proeessing)可以提供强大的数字信号处理能力,其可编程特色可以支持各种标准格式的视频编解码算法,但其处理速度低、硬件结构不灵活;FPGA(Field Programmable Gato Airay)兼有了两者的一些优点如可编程、功耗低等,同时又具有设计周期短、开发成本低、处理速度快、设计灵活等特点。

1 运动估计原理
    运动估计主要是针对帧间预测,去除视频帧在空间域和时间域的冗余度。块匹配方法是目前编码效率较高,普遍采用的一种编码方法。首先,其要将当前帧进行划分。长期实践表明,将当前帧划分为多个16x16的块是比较合理的。其次,要根据划分出的当前块的具体情况,以及所采用的搜索方法来决定搜索窗口的大小。最后,要在所确定的搜索窗口里面,依据某种块匹配准则找到当前块的匹配块以及由匹配块到
当前块的运动矢量。图1所示是块匹配法的原理框图,其中的箭头就是由参考帧到当前帧的运动矢量。

d.JPG


    目前经常采用的块匹配准则主要有归一化互相关函数(NCCF),最小均方差(MSE)以及最小绝对值(MAD)。其中由于SAD准则在算法上并不需要做任何的乘法运算,可以减少很多的时间资源和硬件资源,从而使得SAD准则成为了现在通常使用的匹配准则。
    c.JPG
    其中A是参考帧中的搜索窗口区域,k-1和fk分别是当前帧和参考帧中的像素点值,(x0,y0)是块中的其中一个点。[page]

 

    搜索采用的是三步搜索法,它是按照由粗到细的搜索理念,以一个像素为搜索精度,分为4,2,1,3个搜索步长进行搜索。一般选取原点作为起始点,分别按照4,2,1,3个步长组成9个点构成的点群进行匹配运算,每次都是以误差最小的块为准匹配块,在第二和第三步搜索时分别以第一和第二步搜索到的准匹配块作为它们搜索的起始点。原理如图2所示。

a.JPG



2 硬件实现
    运动估计的原理图如图3所示。

e.JPG[page]

 

    2.1 地址计数器模块
    地址计数器主要是产生出可以在RRAM(参考块存储器)和CRAM(当前块存储器)中有目的地进行寻址的地址信号。如图4所示。

f.JPG


    地址计数器模块的设计与当前块和参考块的存储有很大的关系。将数据存入当前块存储器和参考块存储器时的顺序是由左到右,由下到上,即当前块存储器是(-7,-7),(-6,-7),(-5,-7)……(8,-7),(-7,-6),(-6,-6)……(8,7),(8,8)。而参考块存储器是(-15,-15),(-15,-14),(-15,-13)……(-15,16),(-14,-15),(-14,-14)……(16,15),(16,16)。则可知在寻址当前块存储器时可以直接按照地址的由左到右,由下到上累加。其计算公式如式(2)所示:
    C_addr=(j+7)×16+(i+8)      (2)
    对于参考块存储器,它是一个32x32的数据块,设计的目的是从其中取出符合三步搜索法的9个数据块,当然这九个数据块都是16x16的,而且是以原点为中心组成的搜索点群。其计算公式如式(3)所示:
    R_addr=(j+15)x32+(i+16)     (3)
    Clk是时钟频率信号,当它发生上升沿跳变时会使得产生的地址跳变到下一个新值。
    Clr是清零信号,当它是低电平时,地址计数器可以产生从零开始的连续地址。
    由于,当前块存储器只是一个16x16的RAM,其总的存储空间是256,则可知使用八位地址就可以进行寻址整个空间,即CRAM_ADDR是八位输出信号。而参考块存储器是一个32x32的的RAM,其总的存储空间是1 024,则可知使用十位地址就可以进行寻址整个空间,即RRAM_ADDR是十位输出信号。
2.2 参考块分频器模块
    参考块分频器模块主要是将从参考块存储器中输出的信号经过分频处理后,存储在9个独立的单元,以便后续的处理,如图5所示。

i.JPG


    由参考块输出的信号是256x9个连续的像素值,而当前块输出的信号只是256个连续信号在连续时钟驱动下的九次重复,这样就很难在256x9个时钟周期内完成对9个匹配块的处理,更难在256个时钟周期内完成。因此要通过参考块分频器将参考块存储器连续输出的256x9个像素点值进行九次分频,存储在9个RAM单元之中。这样当下一个时钟周期的上升沿到来时,这9个RAM可以同时输出信号,并在接下来的255个时钟周期之后将里面存储的所有信号输出,而且输出的这些信号相互之间是完全独立的。同时,为了使后面的各模块能够很好的进行,参考块分频器模块还引入了当前块的像素值信号,使得存入9个RAM单元的信号不仅仅是参考块的像素点值,还有当前块的像素点值以便保证后面的减法器可以正常工作。[page]

 

    2.3 减法器模块
    减法器模块主要是完成当前块像素点值和参考块像素点值之间的作差,并将做差结果进行取绝对值运算。本减法器是采用9个LPM(参数化模块库)元件库中的减法器合成的。而LPM中的减法器将被减数和减数明确地分开了。因此,在将当前块和参考块像素点值输入到减法器之前先对二者进行比较,再分别输入到减法器的被减数和减数端口。这样当减法器设置为无符号数运算时,输出结果就相当于取了绝对值的差
值。从时钟周期的角度发现,整个减法器在256x9个时钟周期内是都在运行的,但是所要采集的有用信号仅仅是9个独立的256个时钟周期,即每个减法器仅仅使用256个时钟周期的有用信号,其他时钟周期内的信号对于其他减法器是有用信号,但是对于本减法器却是干扰信号,必须要消除。这就是在参考块分频器里面引入当前块信息的原因。
2.4 累加比较器模块
    累加比较器主要是完成对每个减法器输出的取过绝对值的差值信号的累加,并将累加结果进行比较输出最佳运动矢量。累加比较器的设计和减法器的设计有很大关系,除了在上述的取绝对值方面二者相互要求比较严格之外,在时序方面,二者也有很大关联。9个减法器在参考块分频器模块的作用下,工作于所有的时钟周期里面,而累加比较器则是以减法器输出的信号作为累加原材料的,这就使得累加比较器也必须从时钟的起始点就开始工作。确定运动矢量的标准是SAD最小值。也就是要通过比较9个累加结果,确定出最小值,并由地址计数器模块找到这个最小值所对应的运动矢量。
2.5 整体方案
    整体方案主要是将三步搜索法中的三步分开进行。在外部输入信号的控制下,先输入第一步搜索的地址计算控制因子,使得寻址范围是在步长为4的9个数据块群里面,第一步搜索完成时将第一步搜索到的最佳运动矢量输入到第二步的搜索中,完成机制和第一步唯一的区别就是地址计算和产生的寻址范围不同,这样一直到完成第三步搜索时,将第三步搜索得到的最佳运动矢量作为当前块在这个搜索窗口里面的最佳运动矢量。

3 实验结果与分析
    本设计采用Stratix II系列的EP2S15F484C3器件进行仿真,仿真结果如图6所示。

b.JPG


    由仿真结果可知整个搜索过程完全符合时序要求,总的逻辑资源占用率是27%。组合查找表使用了2 169个,占总数量12 480的17%。专用逻辑寄存器使用了2 855个,占总数量12 480的23%。而用的总的寄存器数也就是2 855。使用了180个片上引脚,占总个数的52%。使用了86 088比特的块存储器单元,占总的快存储器数量的21%。搜索到的最佳运动矢量(0,-7),由前两步的搜索结果可知其完全正确。

4 结束语
    本文中采用FPGA设计的运动估计方案无论在搜索速度,资源利用还是时序控制上都具有一定的优越性,可以大大提高视频编码器设计的性价比。另外,随着半导体工艺的不断进步,FPGA的性价比将不断提高,将使得运动估计乃至视频编码的技术不断提高。

关键字:视频编码  FPGA  运动估计  三步搜索法  VHDL 引用地址:基于FPGA的运动估计设计

上一篇:ADI推出数模转换器简化FPGA接口
下一篇:通信领域采用FPGA芯片嵌入式系统分析方案

推荐阅读最新更新时间:2024-05-02 22:10

基于FPGA平台的抗DPA攻击电路级防护技术研究
0 引言    近年来,现场可编程门阵列(Field Programmable Gate Array,FPGA)由于其高性能、低价格、高开发速度、方便的编程方式等特点得到了广泛的应用。但对FPGA进行DPA(Differential Power Analysis,差分功耗分析)攻击已经成为FPGA应用中信息安全的主要威胁之一,受到了广泛的关注。   DPA是SCA(Side Channel Attacks,旁路攻击)技术的一种,其攻击思想为:以电路的功耗特性为基础,利用功耗与内部密钥的关系,将大量采样到的包含该内部密钥运算的功耗波形数据根据所猜测的密钥进行划分,使得所划分的两部分具有不同的功耗特性。最后,对两部分的功耗数据相
[安防电子]
基于<font color='red'>FPGA</font>平台的抗DPA攻击电路级防护技术研究
Microchip发布智能高级合成(HLS)工具套件
Microchip发布智能高级合成(HLS)工具套件,助力客户使用PolarFire® FPGA平台进行基于C++的算法开发 新工具套件增强了PolarFire FPGA在边缘计算系统中进行硬件加速的用途 由于边缘计算应用需要综合考虑性能与低功耗,因此带动了开发人员将现场可编程门阵列(FPGA)用作高能效加速器的需求,这种做法还能够提供灵活性和加快上市时间。然而,大部分边缘计算、计算机视觉和工业控制算法都是由开发人员使用C++语言原生开发的,而他们对底层FPGA硬件知之甚少或一无所知。为了支持这一重要的开发群体,Microchip Technology Inc.(美国微芯科技公司)推出了名为SmartHLS的HLS设计工作
[嵌入式]
Microchip发布智能高级合成(HLS)工具套件
FPGA平台架构用于复杂嵌入式系统
设计嵌入系统的主要挑战来自于需要同时优化众多设计因素。这些需要优化的设计因素包括单位成本、NRE(不可回收工程)成本、功率、尺寸、性能、灵活性、原型制造时间、产品上市时间、产品在市场生存时间、可维护性、可重配置能力、工程资源、开发和设计周期、工具、硬件/软件划分,以及其他许多因素。 Virtex-II ProTM平台FPGA产品基于高性能的Virtex-IITM结构,为嵌入式系统设计提供了一个极灵活的解决方案。利用Virtex-II ProTM器件,嵌入式系统设计人员可以在单片器件内集成范围广泛的硬和软IP核心,其中的硬件和固件具有可升级能力,从而可延长产品的在市场生存时间。 Virtex-II 结构的可编程能力降低了系统开发
[嵌入式]
FPGA电源需求中三种供电要求解析方案
目前越来越多的家用电器从低速的拨号上网向宽带互联网接入或互联网协议电视(IPTV)转移,尤其是IPTV有望在中国获得快速的发展。比较而言,IPTV的基础设施成本相当低,因为这种方法不需要铜轴电缆,而是采用DSL或宽带链接和机顶盒将节目流传送到家用电器。 现在的可编程门阵列(FPGA)已经被证明是这种平台的理想选择,因为它们提供了快速改变市场需求的灵活性。FPGA的电源需求通常很复杂,因为FPGA有多达三种供电要求,为了实现可靠的系统性能,必须对这些要求排序。 内核电压 内核电压轨通常设定成VCCINT,为FPGA逻辑供电。要求的电流从几百毫安到几十安培,具体大小取决于时钟频率和所用的门数。因为该负载是呈高度容性,内核电压
[嵌入式]
<font color='red'>FPGA</font>电源需求中三种供电要求解析方案
多重创新技术引领28nm潮流
  从2010年初可编程领域首次超越CPU企业率先宣布进入28nm工艺节点开始,可编程平台的领导厂商赛灵思公司就没有让28nm的舞台冷场过,尤其是今年3月率先交付全球第一个28nm芯片—Kintex 7 325T,6月再次交付Virtex-7 485T所展示的强大的执行能力,不仅让其从竞争中脱颖而出,而且也让关注工艺进步和设计创新的整个电子行业对28nm的广泛应用充满期待。   多重创新应对三大挑战   进入28nm不仅只是工艺的提升,重要的是要解决阻碍FPGA进一步发展的三大挑战:首先是功耗的挑战,其次是提高系统的集成度,第三是提高设计效率。   赛灵思公司亚太区销售及市场总监张宇清对记者表示,过去一年中,赛灵思在2
[嵌入式]
使用FPGA实现自适应全阵列局部调光解决方案
乍一看,今天的汽车看起来跟几十年前的汽车没什么差别,但事实并非如此。车舱内、引擎盖下甚至轮胎内都隐藏这巨大的变化,可谓到处都有进步。 当前的一个趋势是向软件定义车辆发展,对车辆的许多功能和特性的控制是集中式的。实现方式是利用微处理器、传感器和软件算法来增强车辆性能、功能和用户体验。软件定义车辆的一些关键方面包括集中计算、无线(OTA)更新和云通信。 然后就是车辆的电气化。这是指用电子元件替换或补充传统机械元件的过程。其中最显而易见的就是电机。混合动力车型是向电动汽车(EV)的过渡的主要阶段,这类汽车同时拥有燃油发动机和电机,最后持续发展到仅由电动机驱动。由于没有废气排放,电动汽车更环保,而且减少了人们对化石燃料的依赖,有助
[嵌入式]
使用<font color='red'>FPGA</font>实现自适应全阵列局部调光解决方案
基于FPGA的DDS信号发生器的设计仿真
本文主要介绍利用FPGA和matlab实现任意频率信号发生器的功能,并进行仿真,使用Quartus Ⅱ+modelsim+matlab实现功能,以正弦波为例说明,开发芯片频率50MHz 产生正弦波sin信号的mif文件 采用matlab产生mif文件,具体的代码如下: clear; clc; width=8; depth=256; fid =fopen ('sin.mif','w'); fprintf(fid,'WIDTH=%d;n',width); fprintf(fid,'DEPTH=%d;n',depth); fprintf(fid,'ADD
[测试测量]
基于<font color='red'>FPGA</font>的DDS信号发生器的设计仿真
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved