视频系统的运动估计内核技术方案

技术编号:3587630 阅读:173 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了设置于一个FPGA中的视频系统运动估计(ME)内核,包括;数据输入控制器,从图像帧存储器中读取需要进行ME处理的宏块;参考帧缓冲区和当前帧缓冲区,用于存储帧的数据;线扫描/残差计算控制器对多个MV搜索;SAD计算阵列,可同时完成针对16个MV的SAD计算,并从中选出最小的SAD对应的MV;残差计算单元,完成1列中16个点的计算,共16个周期完成1个图像宏块残差的计算。本发明专利技术提供了“行列结构”的片内数据缓冲区,构建了并行运算器阵列,从而,从“点式搜索”的方式转换为“线式扫描”,可同时进行数据的输入和输出,为多个运算单元提供需要的数据,提高了工作效率。

【技术实现步骤摘要】

本专利技术涉及视频压縮系统,尤其是视频系统的运动估计内核装置。
技术介绍
视频和可视通信的所有应用都要处理大量的数据,因此,在现代数字 视频应用中,视频压縮是不可或缺的部分。视频压縮的准则就是尽可能的 消除视频数据序列间的时间和空间冗余。空间冗余的消除主要采用各种帧内变换编码技术来实现,如广泛应用的DCT(离散余弦变换),DWT(离散小 波换算)变换。而对时间上的冗余,即帧间冗余信息的消除主要釆用的方 法是基于运动估计(ME)和运动补偿(MC)的。首先通过对视频图像进行 运动估计,得到运动矢量后,再进行运动补偿,最后对得到的残差图像进 行压縮编码,减少帧间需传输的图像信息,从而提高整体图像的压縮比。 因此,运动估计是运动图像压縮系统中的核心, 一个好的运动估计,将大 大减少帧间需传输的像素值。运动估计算法中所涉及的运算只有加、减法 和存储操作,易于用硬件来实现。相比于用软件实现,速度要快得多。随 着FPGA (现场可编程门阵列)的量和内部存储区的越来越大,使得在一 片FPGA中可实现多个运动估计模块对视频数据进行并行处理,实现视频 和可视通信数据的实时传输和处理成为可能。视频压縮系统是目前研究的热点。近年来,有关运动估计的发 明和新型实用专利很多。其中,有的侧重于视频系统,有的侧重于运动估 计的算法,也有的侧重于实现方法,如中星公司的CN200410096324.6, 松下公司的CN200510063924.7,三星公司的CN200510075093. 5等。传统 的各种ME算法,都是为通用CPU和DSP器件实现而设计的,它们不适合 用硬件(FPGA芯片)完成实时处理。本专利技术公开了一种在实时应用环境中,适合硬件(如FPGA)实现的 ME内核。目前没有发现同本专利技术类似技术的说明或报道,也尚未收集到 国内外类似的资料。
技术实现思路
为了解决现有技术ME算法不适合用硬件(FPGA芯片)完成实时处理 的问题,本专利技术的目的在于提供一种视频系统的运动估计内核。利用本发 明可使FPGA器件在可实现的较低的时钟频率下(200MHz以下),完成高 速通用CPU和DSP器件都较难实时处理的计算。本专利技术适合于在大规模的 可编程逻辑器件上实现,以便于和其他内核一起构成可编程的片上系统, 它是实时应用环境中的视频压縮系统的核心模块。为了达到上述专利技术目的,本专利技术为解决其技术问题所采用的技术方案 是提供一种视频系统的运动估计内核,该内核设置于一个FPGA芯片中, 它包括数据输入控制器,用于从图像帧存储器中读取当前帧需要进行运动估 计ME处理的宏块,以及在参考帧中对应宏块的搜索窗口,根据ME搜索算 法,在搜索窗口中选取多至9个宏块去参加像素绝对差和SAD计算,进行 块匹配计算,并根据SAD计算的结果确定是否己经找到最佳匹配块,从而 得到运动矢量MV。参考帧缓冲区(1-BUF),用于存储参考帧的数据,设置为64行、16* 23列;当前帧缓冲区(P-BUF),用于存储当前帧的数据,设置为16行、16* 23列;线扫描/残差计算控制器,用于对多个MV的搜索,控制残差计算单 元的工作状态,设置为16行、16 * 23列;SAD计算阵列,从外部调入以前MV的计算结果,确定计算的起点, 并根据参考帧缓冲区、当前帧缓冲区的状态,实现多至9个宏块的SAD 计算;计算结果的MV和SAD信号输出到线扫描/残差计算控制器。残差计算单元,包括残差运算器及其缓冲器,根据MV指示的P (n, m)的匹配块P求(n, m),计算残差图像P (n, m) - P* (n, m);残差计 算单元根据参考帧缓冲区(1-BUF)、当前帧缓冲区(P-BUF)的状态, 一次 完成1列中16个点的计算,共16个周期完成1个图像宏块残差的计算。残差缓冲区,根据CPU提供的参数控制计算单元的工作,用于产生缓 冲区的地址。数据输出控制器,用于将ME处理单元得到的MV存到FPGA外围电路 MV存储器及残差图像存储器中对应的单元,由MV存储器、残差图像存储 器在ME控制器的控制下输出计算结果MV和残差图像。CPU核,内嵌于上述FPGA芯片中,用于控制数据输入控制器、数据 输出控制器和线扫描/残差计算控制器的工作。CPU核工作所需要的数据 和程序存储在外挂存储器(RAM)中。本专利技术视频系统的运动估计内核装置根据当今FPGA芯片中有较多的 片内存储块的特点,设计了行列结构的片内数据缓冲区,其有益效果 是可以同时进行数据的输入和输出,使得运算单元和数据调度单元能同 时并行工作;可以同时访问多个存储单元,使得片内的数据总线的宽度极 .高;能同时为多个运算单元提供需要的数据,为运算阵列的实现奠定了基 础。本专利技术在行列结构的片内数据缓冲区的基础上,构建了运算器阵 列,进行并行运算。其有益效果是针对某个MV的计算,使用了多个计 算单元并行运算。 一般,可以在20个时钟周期内完成计算。而现有技术 采用单核CPU或DSP用软件来计算,要进行256次计算。本专利技术由于采用上述结构,因而从点式搜索的方式转换为线式 '扫描方式,使得在1次搜索中可以完成对多个MV的搜索,不但搜索的 速度快,而且与传统的算法相比,在相同的搜索次数中,搜索的样本多, 得到最匹配的MV的机会就高。同时,由硬件构成的ME内核可以与系统中 的其他模块并行工作,提高了工作的效率。附图说明图1是本专利技术视频系统的运动估计内核的结构框图; 图2是本专利技术实现ME算法的系统框图; 图3是本专利技术的数据调度模块的结构框图;具体实施方式下面结合附图和实施例对本专利技术作进一步详细的说明。图1是本专利技术视频系统的运动估计内核的结构框图;该内核设置于一个FPGA芯片中(图中虚线框内)。如图l所示,它包括数据输入控制器1,用于从图像帧存储器中读取当前帧需要进行运动 估计ME处理的宏块,以及在参考帧中对应宏块的搜索窗口,根据ME搜索 算法,在搜索窗口中选取多至9个宏块去参加像素绝对差和SAD (像素绝 对差和)计算,进行块匹配计算,并根据SAD计算的结果确定是否已经找 到最佳匹配块,从而得到运动矢量MV。参考帧缓冲区(1-BUF)2,用于存储参考帧的数据,设置为64行、16* 23列;当前帧缓冲区(P-BUF) 3,用于存储当前帧的数据,设置为16行、16 * 23列;线扫描/残差计算控制器4,用于对多个MV的搜索,控制残差计算 单元6的工作状态;SAD计算阵列5,从外部调入以前MV的计算结果,确定计算的起点, 并根据参考帧缓冲区2、当前帧缓冲区3的状态,实现多至9个宏块的SAD 计算;计算结果的MV和SAD信号输出到线扫描/残差计算控制器4。残差计算单元6,用于残差运算器及其缓冲器根据MV指示的P (n, m) 的匹配块P木(n, m),计算残差图像P (n, m) - P* (n, m);残差计算单 元根据参考帧缓冲区(1-BUF〉2、当前帧缓冲区(P-BUF) 3的状态, 一次 完成1列中16个点的计算,总共16个周期就可完成1个图像宏块残差的 计算。残差缓冲区7,根据CPU提供的参数控制计算单元的工作,产生缓冲 区的地址。数据输出控制器8,用于将n路ME处理单元得到的MV存到FPGA外 围电路MV存储器及残差图像存储器ll中对应的单元。MV存储器、残本文档来自技高网
...

【技术保护点】
一种视频系统的运动估计内核装置,其特征在于,该内核设置于一个现场可编程门阵列FPGA芯片中,它包括:    数据输入控制器,用于从图像帧存储器中读取当前帧需要进行运动估计ME处理的宏块,以及在参考帧中对应宏块的搜索窗口,根据ME搜索算法,在搜索窗口中选取多至9个宏块去参加像素绝对差和SAD计算,进行块匹配计算,并根据SAD计算的结果确定是否已经找到最佳匹配块,从而得到运动矢量MV;    参考帧缓冲区I-BUF,用于存储参考帧的数据,设置为64行、16*2↑[3]列;    当前帧缓冲区P-BUF,用于存储当前帧的数据,设置为16行、16*2↑[3]列;    线扫描/残差计算控制器,用于对多个MV的搜索,控制残差计算单元的工作状态;    SAD计算阵列,从外部调入以前MV的计算结果,确定计算的起点,并根据参考帧缓冲区、当前帧缓冲区的状态,实现多至9个宏块的SAD计算;计算结果的MV和SAD信号输出到线扫描/残差计算控制器;    残差计算单元,包括残差运算器及其缓冲器,根据MV指示的P(n,m)的匹配块P*(n,m),计算残差图像P(n,m)-P*(n,m);并根据参考帧缓冲区、当前帧缓冲区的状态,一次完成1列中16个点的计算,共16个周期完成1个图像宏块残差的计算;    残差缓冲区,根据CPU提供的参数控制计算单元的工作,用于产生缓冲区的地址;    数据输出控制器,用于将ME处理单元得到的MV存到FPGA外围电路MV存储器及残差图像存储器中对应的单元,由MV存储器、残差图像存储器在ME控制器的控制下输出计算结果MV和残差图像;    CPU核,内嵌于上述FPGA芯片中,用于控制数据输入控制器、数据输出控制器和线扫描/残差计算控制器的工作。...

【技术特征摘要】
1、 一种视频系统的运动估计内核装置,其特征在于,该内核设置于一个现场可编程门阵列FPGA芯片中,它包括数据输入控制器,用于从图像帧存储器中读取当前帧需要进行运动估 计ME处理的宏块,以及在参考帧中对应宏块的搜索窗口,根据ME搜索算 法,在搜索窗口中选取多至9个宏块去参加像素绝对差和SAD计算,进行 块匹配计算,并根据SAD计算的结果确定是否已经找到最佳匹配块,从而 得到运动矢量MV;参考帧缓冲区I-BUF,用于存储参考帧的数据,设置为64行、16 *23列;当前帧缓冲区P-BUF,用于存储当前帧的数据,设置为16行、16 *23列;线扫描/残差计算控制器,用于对多个MV的搜索,控制残差计算单 元的工作状态;SAD计算阵列,从外部调入以前MV的计算结果,确定计算的起点, 并根据参考帧缓冲区、当前帧缓冲区的状态,实现多至9个宏块的SAD 计算;计算结果的MV和SAD信号输出到线扫描/残差计算控制器;残差计算单元,包括残差运算器及其缓冲器,根据MV指示的P (n, m)的匹配块P求(n, m),计算残差图像P (n, m) - P* (n, m);并根据 参考帧缓冲区、当前帧缓冲区的状态, 一次完成l列中16个点的计算, 共16个周期完成1个图像宏块残差的计算;残差缓冲区,根据CPU提供的参数控制计算单元的工作,用于产生缓 冲区的地址;数据输出控制器,用于将ME处理单元得到的MV存到FPGA外围电路 MV存储器及残差图像存储器中对应的单元,由MV存储器、残差图像存储 器在ME控制器的控制下输出计算结果MV和残差图像;CPU核,内嵌于上述FPGA芯片中,用于控制数据输入控制器、数据输出 控制器和线扫描/残差计算控制器的工作。2、 根据权利要求书l所述的视频系统的运动估计内核装置,其特征在 于,所述的ME处理单元包括参考帧缓冲区、当前帧缓冲区、线扫描/残 差计算控制器、SAD计算阵列和残差计算单元;所述ME处理单元由FPGA内的 小容量存储器块组成多个运算单元同时提供数据缓冲区并行工作。3、 根据权利要求书1或2所述的视频系统的运动估计内核装置,其特征在于所述FPGA内的小容量存储器块配置成双端口 DPRAM存储器, 有一个写入口和一个读出口,读写口可以分别对不同的地址同时操作;读写口的数据总线的宽度配置成不同的宽度;小存储块排成行列结构M承N, 其排列可以釆用以下结构的任意一种1) 各存储块合用读出口的地址总线和读信号,当给定读地址i时, 可同时得到M个存储块中地址i的数据;2) 各存储块合用读出口的地址总线和数据总线,使用各自的读信号, 则通过数据选择器可以读到指定存储块的指定地址单元上的数据;3) 各存储块合用写入口的地址总线和写信号,使用各自的数据总线, 当给出读地址i时...

【专利技术属性】
技术研发人员:章宁东
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1