当前位置:首页 > EDA > 电子设计自动化
[导读]摘要:利用功能强大的FPGA实现视频图像的一种运动估计设计,采用的搜索方法是三步搜索法。在进行方案设计时,本文采用了技术比较成熟的VHDL语言进行设计,并使用Quartus II软件进行时序仿真。由仿真结果可知,无论是

摘要:利用功能强大的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所示是块匹配法的原理框图,其中的箭头就是由参考帧到当前帧的运动矢量。


    目前经常采用的块匹配准则主要有归一化互相关函数(NCCF),最小均方差(MSE)以及最小绝对值(MAD)。其中由于SAD准则在算法上并不需要做任何的乘法运算,可以减少很多的时间资源和硬件资源,从而使得SAD准则成为了现在通常使用的匹配准则。
   
    其中A是参考帧中的搜索窗口区域,k-1和fk分别是当前帧和参考帧中的像素点值,(x0,y0)是块中的其中一个点。
    搜索采用的是三步搜索法,它是按照由粗到细的搜索理念,以一个像素为搜索精度,分为4,2,1,3个搜索步长进行搜索。一般选取原点作为起始点,分别按照4,2,1,3个步长组成9个点构成的点群进行匹配运算,每次都是以误差最小的块为准匹配块,在第二和第三步搜索时分别以第一和第二步搜索到的准匹配块作为它们搜索的起始点。原理如图2所示。



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


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


    地址计数器模块的设计与当前块和参考块的存储有很大的关系。将数据存入当前块存储器和参考块存储器时的顺序是由左到右,由下到上,即当前块存储器是(-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所示。


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

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


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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着嵌入式的快速发展,在工控、通信、5G通信领域,FPGA以其超灵活的可编程能力,被越来越多的工程师选择。近日,米尔电子发布2款FPGA的核心板和开发板,型号分别为:基于紫光同创Logos-2系列PG2L100H的MYC...

关键字: FPGA 核心板 开发板

在某FPGA系统中,对电源系统进行调试,在同样的测试条件下,发现其中有一块板相对其它的板功耗总偏大,进而对其进行调试分析。

关键字: 电源 纹波调试 FPGA

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

UART(Universal Asynchronous Receiver/Transmitter)是一种通信协议,用于在电子设备之间传输数据。它是一种串行通信协议,意味着数据位按顺序一个接一个地传输。

关键字: FPGA UART串口通信

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

May 20, 2024 ---- 据TrendForce集邦咨询研究,三大原厂开始提高先进制程的投片,继存储器合约价翻扬后,公司资金投入开始增加,产能提升将集中在今年下半年,预期1alpha nm(含)以上投片至年底将...

关键字: 晶圆 HBM 存储器

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS
关闭
关闭