一种全搜索块匹配算法的实现及其应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SA 结构 PE数量
SA 需要的计算次数
单个 PE AB1 A S1 AB2 A S2
1 N 2P + 1 N2 (2P + 1) N
N2 (2P + 1) 2 N (2P + 1) 2 N2 (2P + 1) (2P + 1) (2P + 1) N (2P + 1)
由表 1 可见 , PE ( p rocess element) 运算可完 成减法 、取绝对值和加法运算各一次.
图 4 基于 AB2结构的 FSBM A体系结构 F ig14 System arch itecture of FSBM A ba sed
on AB2 arch itecture
为降低 PEs对帧图像存储器的数据访问 , 可在 FSBMA 处理器中 , 加入当前帧参考块的随机存储 器和搜索区域随机存储器. 控制单元产生对基于 AB2的处理阵列和地址发生器的控制信号 , 达到同 步工作的目的. 地址发生器将产生访问两个随机存 储器地址信号. 总线按照 IBM coreconnect总线标准 设置.
收稿日期 : 2005211208; 修回日期 : 2006201211 基金项目 : 国家自然科学基金资助项目 (90207012) 作者简介 : 田志东 (19782) , 男 (汉族 ) , 内蒙古自治区通辽市人 , 深圳大学硕士研究生. 通讯作者 : 朱明程 (19532) , 男 (汉族 ) , 深圳大学教授. E2mail: zhumc@ szu1edu1cn
- P ≤ u, v ≤ P;
(1)
N-1 N-1
∑∑ M SE
=
1 N2
x =0
j =0
Ck ( x, y) - Rk - 1 ( x + u, y + v) 2
- P ≤ u, v ≤ P.
(2)
其中 , Ck ( x, y) 表示当前帧中块的像素 ; Rk - 1 ( x + u, y + v) 表示参考帧中块的元素. 由这两个准则获得 的运动估计与预测效果相当接近. 由于 MAD 准则 不需要乘法运算 , 所以 MAD 准则更适合在 FPGA 和 VLSI ( very large scale integration) 上实现. 本研 究实现的 FSBMA 算法采用 MAD 准则.
AB 结构是加法器数量等于宏块大小 N 时的 SA 结构 , AS结构是加法器数量等于搜索区域大小时 的 SA 结构. AB1 和 AS1 是一维结构 , 结构简单 , 使用硬件资源少 , 适用于极低码率的应用. AB2和 AS2是二维结构. 显然二维结构处理速度快于一维 结构 , 但是二维结构相对于一维结构 , 硬件复杂 , 占用资源多 , 消耗功率大 , 且需要更宽的数据带 宽. 因此 , 对于高码率的应用必须采用二维结构.
图 2为 AS2结构图 , 图 3为 AB2结构图. AS2 结构与 AB2 结构相比 , 结构复杂 , 硬件资源使用 多. 所以 AB2结构更适合于硬件资源有限的 FPGA 使用. 在 AB2结构中 , 当前帧参考块的数据在 PEs 的 AD ( absolute difference) 内保持不变 , 而搜索区
2 SA 结构
FSBMA 的运算量非常大 , 例如 , 计算一个块 的运动矢量需要 ( 2 ×N2 ) ( 2P + 1) 2 次运算 (包括加 法 、减法和求绝对值 ) 和 ( 2P + 1) 2 - 1次比较运算. 为实现实时编码应用 , 必须采用大量的硬件资源和 合理的体系结构完成这些运算.
SA 结构是一种采用并行处理单元和流水线技 术的计算网络 , 该网络能够实现快速大量的运算. 所以在全搜索块匹配运动预测中常被采用. SA 内 的处理单元采用同步时钟和同步控制 , 并且具有模
第 23卷 , 第 2期 2006年 4月
深圳大学学报理工版 JOURNAL OF SHENZHEN UN IVERSITY SC IENCE AND ENGINEER ING
Vol123, No12 Ap r1 2006
文章编号 : 100022618 (2006) 0220133204
一种全搜索块匹配算法的 FPGA实现及其应用
1 全搜索块匹配算法
FSBMA是 M E中最常用的实现算法. 如图 1可 说明基于块匹配的运动预测算法.
图 1 块匹配算法简图 F ig11 Block ma tch ing a lgor ithm
对当前帧图像 , 可将它划分成 N ×N 的非重叠 块. M E的目的是根据一定的匹配准则 , 在参考帧 中找到一个 N ×N的最匹配块. 设当前帧在视频序列 中的时间为 k , 对于参考帧 , 若它在视频序列中的 时间为 k - n , 则称其为前向运动预测 ; 若它在视 频序列中的时间为 k +m , 则称其为后向运动预测. 其中 , n和 m 是任意时间单元 , 通常不超过 3. 当前
块化和结构整齐的特点 , 因此该结构易于实现. 全搜索块匹配算法可设计出符合其特点的 SA
结构. 在这方面 Thomas Komarek和 Peter Pirsch[ 5 ]提 出 4种用于全搜索块匹配算法的 SA 结构 , 如表 1.
表 1 四种 SA结构的比较 [ 5] Table 1 Com pare of four SA arch itectures
关键词 : 全搜索块匹配 ; 现场可编程逻辑门电路 ; 实时压缩 中图分类号 : TP 391 文献标识码 : A
原始 数 字 视 频 因 数 据 量 大 造 成 存 储 和 传 输 困 难. 如分辨率为 352 ×288 像素 、25帧 / s时 , 公用 中分辨率格式 ( common intermediate form at, C IF ) 视频序列的码率大于 30 M bits/ s. 于是有必要对原 始数字视频进行压缩 , 以便于传输和存储. 目前视 频压 缩 算 法 常 采 用 运 动 预 测 ( motion estim ation, M E) [ 1 ]降低视频的帧间时间冗余. M E 利用视频序 列中相邻帧间图像的变化比较小 , 用一个运动矢量 和相邻帧间图像的差值代替原始图像进行传送.
E2m a il:
tzd1978 @ 1631com
© 1994-2007 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
134
深圳大学学报理工版
第 23卷
帧中的块通常用块左上角坐标 ( x, y) 表示. 对于参 考帧的搜索空间 , 若定义最大位移为 P , 并按一定 的匹配准则找到最匹配块 ( x + u, y + v) , 把由矢量 ( x, y) 到矢量 ( x + u, y + v) 的矢量称为当前帧 ( x, y) 块的运动矢量 , 该矢量可表示为 ( u, v) .
图 3 AB2 结构图 ( N = 3, P = 2) F ig13 Systolic arch itecture AB2 w ith N百度文库= 3 and P = 2
3 FSBMA 在 FPGA 上的实现
图 4给出基于 AB2 结构的 FSBMA 在 FPGA 上 实现的体系结构图.
图 5 优化后的 AD 单元结构 F ig15 O ptim ized arch itecture of AD elem en t
田志东 , 朱明程
(深圳大学信息工程学院 , 深圳 518060)
摘 要 : 研究一种全搜索块匹配的脉动阵列结构 , 将该结构的全搜索块匹配算法在赛林思 V irtex - Ⅱ Pro系列现场可编程逻辑门电路 (简称 FPGA ) 上综合并实现 , 给出在 FPGA 上实现该算法的面积使用和最 高工作频率等结果. 该结构可用于低码率的实时压缩应用 , 如 MPEG22. 其最大特点在于可以在运动距离的 最大值范围内任意设定运动距离 P值 , 同时搜索区域可以是长宽任意值的区域.
最常用的匹配准则有平均绝对差值 (mean of absolute difference, MAD ) 准则和均方误差 (mean of square error, M SE) 准则. 分别定义为
N-1 N-1
∑∑ MAD
=
1 N2
x =0
j=0
Ck ( x, y) - Rk - 1 ( x + u, y + v)
图 2 AS2结构图 ( N = 3, P = 2) F ig12 Systolic arch itecture AS2 w ith N = 3 and P = 2
© 1994-2007 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
M E的实现是基于块匹配的运动预测为主 , 而 全搜索块匹配 ( full search block matching algorithm , FSBMA ) 算法是预测性能最好的算法. 但 FSBMA 运算量大 , 需要大量硬件来提高处理速度. 脉动阵 列 ( systolic array, SA ) 结构具有可进行大量数据 处理和并行处理的优点. 故选用 SA 结构的 FSBMA 能满足实时应用要求.
运动预测块匹配可有多种实现算法 , 最直接的 方法是计算搜索窗口内每一个候选块的 MAD 值 , 找出 MAD 值最小的块 , 并计算出运动矢量 , 这就 是全搜索算法 [ 324 ] .
运动预测块匹配还有一些快速搜索算法 , 如三 步搜索法和钻石形搜索法. 但快速搜索算法经常会 收敛于一个局部极小点 , 而不是全局最小点. 因此 快速算法会有一定的性能损失. 而全搜索能得到最 佳预测.
图 3的 FSBMA 结构是按照 IBM core connect总 线结构设计的 , 该结构可在 xc2vp40 FPGA 上使用 SOC结构 , 实现这个编码系统.
第 2期
田志东 , 等 : 一种全搜索块匹配算法的 FPGA实现及其应用
135
内的数据顺序输入到 PEs的 AD , 这样就可依次计 算每个候选块的 MAD. 最后通过比较器得到最小 的 MAD 值 , 同时得出运动矢量.
置了 3个可配置参数 ———搜索区长度 、高度和最大 运动距离 P . 通过设置长宽两个参数可完成任意长 宽的搜索区域. 该体系的实现是在 Xilinx ISE613集 成软件包和 XST综合软件下完成的. 对于 PEs中使 用量最大的 AD 单元进行优化 , 优化后结构见图 5.
现场可编程逻辑门电路 ( field p rogram gate ar2 ray, FPGA ) 具有灵活 、可重复配置和快速的原型 设计特点. 所以 , 用 FPGA 来实现实时 M E是合适 的选 择. 本 研 究 选 用 X ilinx V irtex Ⅱ2Pro 系 列 [ 2 ] xc2vp40 FPGA , 采用 xc2vp40内嵌的 powerpc405处 理器 , 用 SOC ( system 2on2chip ) 系 统结 构 在 一 片 FPGA 上实现 M PEG22实时压缩系统.
为实现 FSBMA 的参数化控制 , 在控制单元设
优化后 AD 单元包括 AD1 和 AD2 两类 , 其中 AD1只完成减法运算和取绝对值运算 , AD2完成减 法 、取绝对值和加法运算. 这样可减少 AD s中的加 法器数目 , 达到优化目的.
图 4的 FSBMA 结构在 Xilinx V irtex2Ⅱ Pro系列 ( xc2vp40) 的 FPGA 上实现 , FSBMA 参数为 N = 16, P值仅影响 RAM 的大小 , 对 PEs使用的面积无 影响. FPGA 的速度等级为 5. 本实验实现的 P 值 最大为 31. 实现过程中对系统占用面积和最高工作 频率进行优化 , 实验最终实现的使用面积 (通常以 使用的 CLB 数量来衡量 ) 为 2 060, 最高工作频率 为 1591872 MHz, 使用率为 42%.