CN201066898Y - 一种实现菱形搜索算法的硬件结构 - Google Patents

一种实现菱形搜索算法的硬件结构 Download PDF

Info

Publication number
CN201066898Y
CN201066898Y CN 200720032262 CN200720032262U CN201066898Y CN 201066898 Y CN201066898 Y CN 201066898Y CN 200720032262 CN200720032262 CN 200720032262 CN 200720032262 U CN200720032262 U CN 200720032262U CN 201066898 Y CN201066898 Y CN 201066898Y
Authority
CN
China
Prior art keywords
array
reference block
diamond search
sad
block memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 200720032262
Other languages
English (en)
Inventor
余宁梅
廖裕民
王冬芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Technology
Original Assignee
Xian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian University of Technology filed Critical Xian University of Technology
Priority to CN 200720032262 priority Critical patent/CN201066898Y/zh
Application granted granted Critical
Publication of CN201066898Y publication Critical patent/CN201066898Y/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本实用新型公开了一种实现菱形搜索算法的硬件结构,包括核心控制器分别与参考块存储器、PE阵列、SAD阵列、地址生成器、编码模块连接;地址生成器再与参考块存储器连接;参考块存储器和当前块存储器的信息流输出端同时接入PE阵列的信息流输入端,PE阵列的信息流输出端与SAD阵列的信息流输入端连接;SAD阵列的信息流输出端与编码模块的信息流输入端连接。该硬件结构充分利用了搜索算法中的重复数据,只使用了很低的输入带宽和较少的硬件损耗实现了运动估计中的菱形搜索算法。本实用新型可以使用于任何视频编码硬件设备中,可以用于多种匹配块尺寸大小情况下的菱形搜索。

Description

一种实现菱形搜索算法的硬件结构
技术领域
本实用新型属于图像压缩技术领域,涉及一种实现菱形搜索算法的硬件结构。
背景技术
现实的视频信号中含有大量的冗余信息,主要是空间冗余和时间冗余,可以通过数据压缩去除这些信息数据之间的时间空间函数的自相关性和互相关性(即去除冗余),保留相互独立的信息分量,从而可以节约存储空间,提高传输效率,同时使视频信息在较低速率的信道上进行实时传送成为可能。运动估计能够有效的去除视频信息之间的时间冗余,它占整个视频压缩编码量的60%-80%,直接影响着编码的速度和效率,是视频编码的一项关键技术。在运动估计中,当前将要传输的图像作为当前帧,已传输的作为参考的图像称为参考帧。在进行运动估计运算时的具体流程为:首先将每帧图像划分成N×N的宏块;然后将当前帧的每一个图像块与参考帧中对应搜索区域的所有图像块进行匹配计算,找出最佳匹配块;最后输出最佳匹配块的行列坐标,也就是运动向量MV。因为在对当前块编码时相当于只描述了当前块相对于参考块的位移量而没有具体描述其内容,从而实现去除视频信息之间的时间冗余,这就是运动估计。
运动估计所采用的主要算法通常为块匹配算法,而块匹配法大致可分为两类:全搜索算法(FSBMA)和快速搜索算法,而后者又包括了如三步法(TSS),菱形搜索法(DS算法),四步法(FSS)等。在快速搜索算法中,菱形搜索由于利用了在现实视频中最佳匹配点的分布概率主要集中于以中心点为核心的一个菱形分布的特点,相对于其他典型的快速算法拥有良好的性能表现,但是由于其数据流不规则的特性造成硬件系统难于实现,也就限制了菱形搜索在现实中的实际应用。
发明内容
本实用新型的目的是,提供一种实现菱形搜索算法的硬件结构,来解决现有技术中很难使用硬件结构实现运动估计中菱形搜索算法的问题。
本实用新型所采用的技术方案是,一种实现菱形搜索算法的硬件结构,包括核心控制器,核心控制器通过数据线分别与参考块存储器、PE阵列、SAD阵列、地址生成器、编码模块连接;地址生成器通过数据线再与参考块存储器连接;参考块存储器和当前块存储器的信息流输出端同时接入PE阵列的信息流输入端,PE阵列的信息流输出端与SAD阵列的信息流输入端连接;SAD阵列的信息流输出端与编码模块的信息流输入端连接。
本实用新型的有益效果是,该硬件结构只使用了很低的输入带宽和较少的硬件损耗实现了菱形搜索算法,加快了视频编码中运动估计速度。
附图说明
图1是本实用新型硬件结构的示意图;
图2是菱形搜索中的各种搜索位置示意图,其中图2(a)所示为钻石形状的九个起始位置、图2(b)所示为顶点搜索时需要附加的搜索位置、图2(c)所示为边搜索时需要附加的搜索位置、图2(d)所示为最终的最佳匹配位置;
图3是一个完整的菱形搜索算法例的示意图;
图4是参考块存储器结构示意图;
图5是参考块存储器中的更新顺序和输出顺序示意图,其中图5(a)所示为左下到右上的输出顺序、图5(b)所示为左上到右下的输出顺序、图5(c)所示为右下到左上的输出顺序、图5(d)所示为右上到左下的输出顺序;
图6是PE阵列结构示意图;
图7是SAD阵列结构示意图;
图8是菱形搜索的数据流分析和扫描顺序示意图;
图9是菱形搜索中的四种移动模式示意图,其中图9(a)为参考块从左下到右上的移动、图9(b)为参考块从左上到右下的移动、图9(c)为参考块从右下到左上的移动、图9(d)为参考块从右上到左下的移动;
图中,1、当前块存储器,2、参考块存储器,3、PE阵列,4、SAD阵列,5、地址生成器,6、编码模块,7、核心控制器。
具体实施方式
下面结合附图和具体实施方式对本实用新型进行详细说明。
如图1所示,本实用新型装置主要包括核心控制器7,核心控制器7通过数据线分别与参考块存储器2、PE阵列3、SAD阵列4、地址生成器5、编码模块6连接;地址生成器5通过数据线再与参考块存储器2连接;参考块存储器2和当前块存储器1的信息流输出端同时接入PE阵列3的信息流输入端,PE阵列3的信息流输出端与SAD阵列4的信息流输入端连接;SAD阵列4的信息流输出端与编码模块6的信息流输入端连接。图中黑细线为交互控制指令的传输线,宽箭头为信息流的传输方向。
以下说明中都设定运动估计划分的基本图像块大小为N×N。
菱形搜索算法(DS算法)的计算方式如下,
如图2所示,为DS算法第一步和其他步骤的搜索位置,DS算法第一步的搜索位置呈菱形形状排列,在以后的步骤中,每一步的搜索位置由上一步得出的结果确定。
算法的具体步骤为,
第一步、对搜索窗口中心,如图2(a)所示的钻石形状的九个位置作匹配运算,如果得出的最佳匹配位置在钻石的中心(c,c),则跳到第三步;如果得出的最佳匹配位置在钻石的边上(c-1,c+1),(c-1,c-1),(c+1,c-1),(c+1,c+1),或顶点上(c-2,0),(c+2,0),(0,c-2),(0,c+2)则跳到第二步;
第二步、如果第一步得到的最佳匹配位置在边上,即点(c-1,c+1),(c-1,c-1),(c+1,c-1),(c+1,c+1),则作边搜索。边搜索时需要附加的搜索位置如图2(c)所示,在四个边上的情况相同;如果第一步得到的最佳匹配位置在顶点上,即点(c-2,0),(c+2,0),(0,c-2),(0,c+2),则作顶点搜索。顶点搜索时需要附加搜索的位置如图2(b)所示。如果这一步得到的最佳匹配位置在中心位置,则跳到第三步,否则,跳回第二步开始,继续作搜索;
第三步、以上一步得到的最佳匹配位置(c,c)为中心,对(c-1,c),(c+1,c),(c,c-1),(c,c+1)四个位置作匹配运算,此时需要附加搜索的位置如图2(d)所示,得到最终的最佳匹配位置。
如图3所示,是应用菱形搜索算法的一个完整过程的例子,如果第一步得到最小绝对差值之和(SAD)的位置是坐标原点,则对a,b,c,d四个位置作最后的匹配运算。否则要对附加的搜索位置进行匹配。图中得到的最佳匹配位置是(6,-3)。
根据算法设计的整体结构中,每个单元的具体结构和工作原理如下:
当前块存储器1用于存储当前图像块的象素值,是一个N×N的寄存器组,电路开始工作后每个时钟从外部依次读入一个象素进入相应的寄存器,当N×N个时钟后读满并可以进入工作状态,即可以向PE阵列3输入当前块的象素值。
如图4所示,参考块存储器2的结构是一个N×N的寄存器组,用于存储参考块的象素值,并将象素值按照一定顺序输出到PE阵列3。为了方便说明,图中显示的是当N=4时的结构,当N为其他值时的结构依此类推。该结构中的输入带宽为一个象素,即8bit。图中的
Figure Y20072003226200071
是编程开关,可以实现连接和断开两种状态。根据对菱形搜索数据流的分析得到的四种移动模式,在参考块中对应的动作如下:
a.左下到右上时,
Figure Y20072003226200072
导通而
Figure Y20072003226200073
关断,其对应的寄存器间的数据流如下:
ref _ image ⇒ R 1 R 2 R 3 R 4 R 8 R 12 R 16 , R 2 R 3 R 4 R 6 R 7 R 8 R 10 R 11 R 12 ⇒ R 5 R 6 R 7 R 9 R 10 R 11 R 13 R 14 R 15
b.左上到右下时,导通而
Figure Y20072003226200077
关断,其对应的寄存器间的数据流如下:
ref _ image ⇒ R 13 R 14 R 15 R 4 R 8 R 12 R 16 , R 14 R 15 R 16 R 6 R 7 R 8 R 10 R 11 R 12 ⇒ R 9 R 10 R 11 R 1 R 2 R 3 R 5 R 6 R 7
c.右下到左上时,
Figure Y20072003226200081
导通而
Figure Y20072003226200082
关断,其对应的寄存器间的数据流如下:
ref _ image ⇒ R 1 R 2 R 3 R 4 R 5 R 9 R 13 , R 1 R 2 R 3 R 5 R 6 R 7 R 9 R 10 R 11 ⇒ R 6 R 7 R 8 R 10 R 11 R 12 R 14 R 15 R 16
d.右上到左下时,
Figure Y20072003226200085
导通而
Figure Y20072003226200086
关断,其对应的寄存器间的数据流如下:
ref _ image ⇒ R 14 R 15 R 16 R 1 R 5 R 9 R 13 , R 5 R 6 R 7 R 9 R 10 R 11 R 13 R 14 R 15 ⇒ R 2 R 3 R 4 R 6 R 7 R 8 R 10 R 11 R 12
因为PE阵列3由N/2个PE构成,所以每次由参考块存储器2向PE阵列3输出N/2个象素点以供其计算。经过分析发现,在上述四种移动模式中,每种的参考块中间(N-2)×(N-2)的象素总是重复的。
如图5所示,本实用新型设置了与上述四种移动模式相对应的输出顺序:
a.左下到右上(如图5(a))
b.左上到右下(如图5(b))
c.右下到左上(如图5(c))
d.右上到左下(如图5(d))
图中数字代表读出的顺序,深色点代表需要更新的象素点,箭头表示更新象素点的顺序,参考块存储器2每个时钟周期输出N/2个象素点,图中的N为8,每个时钟周期可以更新一个象素点。每个参考块中一共有N+(N-1)个象素需要更新,而每个时钟周期输出N/2个象素,所以只要按照图中的顺序更新象素和输出,就能在象素更新结束后的下一周期将所有象素输出完毕。
如图6所示,PE阵列3用于计算当前块和参考块之间的SAD值。整个PE阵列3由N/2个PE构成,为了方便说明,所以图中显示的是当N=8时的PE阵列结构,当N为其他值时的结构依此类推。每个PE可以计算两个象素之间的绝对差值,加法器将PE输出的绝对差值相加后存储到累加器(ACCM),当整个参考块于当前块的象素点(N×N个象素点)被计算完后,这个参考块的SAD值经过选择器被送到与其位置对应的SAD阵列4中的寄存器中去。
SAD阵列4用于存储菱形搜索中对应候选块位置上的SAD值,并将SAD值提供给编码模块6以供其使用。该结构利用菱形搜索的数据流特点,充分复用了已经计算过的SAD值,可以大大减少重复的计算量。如图7所示,图中的
Figure Y20072003226200091
是编程开关,根据控制实现连接和断开两种状态,其开关条件取决于最优匹配点的位置,并且每次只有一个开关导通,其他的开关此刻都断开。X1~X4,Y1~Y4的导通条件如下:
X1:最优点为上方的点;
X2:最优点为右方的点;
X3:最优点为下方的点;
X4:最优点为左方的点;
Y1:最优点为右上方的点;
Y2:最优点为右下方的点;
Y3:最优点为左上方的点;
Y4:最优点为左下方的点;
利用这个结构,可以大幅减少重复的候选点的SAD计算,从而提高了计算速度。
地址生成器5用于根据参考块需要输出到PE阵列3的象素顺序产生相应的象素在参考块中的地址,以使得参考块能够正确输出。
编码模块6用于根据SAD阵列4存储的SAD值,找到SAD最小的匹配块,从而找到最优的匹配块并输出其运动矢量。
核心控制器7用于协调所有模块的工作和控制所有时序。
如图8所示,该结构是根据菱形搜索的数据流特点设计的,菱形搜索的数据流特点可以从菱形搜索流程中看出,为一个菱形搜索的所有候选点的位置,其中a,b,c三点的对应参考块也显示了出来,由图8中可以看出,a bc三点为近邻点,而近邻点之间的参考块之间都有(N-1)×(N-1)的象素是重叠的。图8中箭头显示的是LDS和SDS的搜索路线。
如图9所示,在菱形搜索中,其对应的参考块更新象素点的分布方式分为四种:
A、左下到右上(如图9(a))
B、左上到右下(如图9(b))
C、右下到左上(如图9(c))
D、右上到左下(如图9(d))
菱形搜索的方式有大菱形搜索(LDS)和小菱形搜索(SDS),利用上面提出的四种移动方式,可以涵盖菱形搜索中所有的移动。最终根据这个特点设计了参考块存储器2,使该参考块存储器2硬件消耗小且输入带宽小的同时保持了运算所需要的高速度。
另一方面,在计算SAD值的时候,当最优点不在中央而在边上或者角上时,在下一个菱形搜索框中其实有很多候选点对应参考块的SAD值是已经在前一个菱形搜索框中计算过的,其中,当最优点在角上时,在下一个菱形搜索框中有4个点的SAD值已经在前面的菱形搜索框中计算过,当最优点在边上时,在下一个菱形搜索框中有6个点的SAD值已经在前面的菱形搜索框中计算过。因此利用这个特点设置SAD阵列4。该阵列在最优点在边上或角上的情况下,将计算过的SAD值移动到新的菱形搜索框中对应的位置,只计算新的候选点的SAD值,从而减少了重复计算。
本实用新型根据上述分析的菱形搜索数据流特点,设置了电路的硬件结构,该电路的工作过程是,首先分别从当前帧和参考帧中读入图像数据进入当前块存储器1和参考块存储器2,然后两个存储器的象素按照设计的顺序进入PE阵列3,并由PE阵列3计算出当前块和参考块之间的SAD值,SAD值计算完毕后由PE阵列3计送入SAD阵列4中相应位置的存储器中,然后用同样的方法计算下一个参考块的SAD值,如此循环直到所有菱形搜索需要的所有参考块的SAD值计算完毕。最终由编码模块6根据SAD阵列4中的各模块的SAD值来判断最佳匹配点,并由最佳匹配点的位置来判断下一次菱形搜索的菱形搜索位置,并再次计算新的菱形搜索范围内所有参考块的SAD值,再判断最优点。如此循环,直到最优点的位置收敛为中心点,然后在计算完中心点和周围四点的SAD值后,由编码模块6判断出SAD值最小的匹配块,并将其相对于当前块的水平和垂直位移量作为运动矢量输出,从而完成运动估计。
本实用新型充分利用了菱形搜索中的数据流特点,减少了重复数据的输入和计算并同时提高了计算的速度。

Claims (1)

1.一种实现菱形搜索算法的硬件结构,其特征在于:包括核心控制器(7),核心控制器(7)通过数据线分别与参考块存储器(2)、PE阵列(3)、SAD阵列(4)、地址生成器(5)、编码模块(6)连接;地址生成器(5)通过数据线再与参考块存储器(2)连接;参考块存储器(2)和当前块存储器(1)的信息流输出端同时接入PE阵列(3)的信息流输入端,PE阵列(3)的信息流输出端与SAD阵列(4)的信息流输入端连接;SAD阵列(4)的信息流输出端与编码模块(6)的信息流输入端连接。
CN 200720032262 2007-07-17 2007-07-17 一种实现菱形搜索算法的硬件结构 Expired - Fee Related CN201066898Y (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200720032262 CN201066898Y (zh) 2007-07-17 2007-07-17 一种实现菱形搜索算法的硬件结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200720032262 CN201066898Y (zh) 2007-07-17 2007-07-17 一种实现菱形搜索算法的硬件结构

Publications (1)

Publication Number Publication Date
CN201066898Y true CN201066898Y (zh) 2008-05-28

Family

ID=39484083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200720032262 Expired - Fee Related CN201066898Y (zh) 2007-07-17 2007-07-17 一种实现菱形搜索算法的硬件结构

Country Status (1)

Country Link
CN (1) CN201066898Y (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045568A (zh) * 2010-12-30 2011-05-04 福州瑞芯微电子有限公司 双斜栅扫描实现对角线匹配运动估计匹配电路结构和方法
CN102160387A (zh) * 2008-09-23 2011-08-17 杜比实验室特许公司 棋盘式多路复用图像数据的编码和解码架构
US9420311B2 (en) 2009-01-29 2016-08-16 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US10194172B2 (en) 2009-04-20 2019-01-29 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721877A (zh) * 2008-09-23 2016-06-29 杜比实验室特许公司 对交织的图像数据进行解码的方法和包括编解码器的装置
CN102160387A (zh) * 2008-09-23 2011-08-17 杜比实验室特许公司 棋盘式多路复用图像数据的编码和解码架构
US9877045B2 (en) 2008-09-23 2018-01-23 Dolby Laboratories Licensing Corporation Encoding and decoding architecture of checkerboard multiplexed image data
CN102160387B (zh) * 2008-09-23 2016-03-02 杜比实验室特许公司 棋盘式多路复用图像数据的编码和解码架构
US9877046B2 (en) 2009-01-29 2018-01-23 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US9420311B2 (en) 2009-01-29 2016-08-16 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US11622130B2 (en) 2009-01-29 2023-04-04 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US9877047B2 (en) 2009-01-29 2018-01-23 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US12096029B2 (en) 2009-01-29 2024-09-17 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US12081797B2 (en) 2009-01-29 2024-09-03 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US10362334B2 (en) 2009-01-29 2019-07-23 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US10382788B2 (en) 2009-01-29 2019-08-13 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US11973980B2 (en) 2009-01-29 2024-04-30 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US10701397B2 (en) 2009-01-29 2020-06-30 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US11284110B2 (en) 2009-01-29 2022-03-22 Dolby Laboratories Licensing Corporation Coding and decoding of interleaved image data
US10609413B2 (en) 2009-04-20 2020-03-31 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
US11477480B2 (en) 2009-04-20 2022-10-18 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
US11792429B2 (en) 2009-04-20 2023-10-17 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
US11792428B2 (en) 2009-04-20 2023-10-17 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
US12058372B2 (en) 2009-04-20 2024-08-06 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
US12058371B2 (en) 2009-04-20 2024-08-06 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
US10194172B2 (en) 2009-04-20 2019-01-29 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
US12114021B1 (en) 2009-04-20 2024-10-08 Dolby Laboratories Licensing Corporation Directed interpolation and data post-processing
CN102045568A (zh) * 2010-12-30 2011-05-04 福州瑞芯微电子有限公司 双斜栅扫描实现对角线匹配运动估计匹配电路结构和方法
CN102045568B (zh) * 2010-12-30 2012-08-08 福州瑞芯微电子有限公司 双斜栅扫描实现对角线匹配运动估计匹配电路结构和方法

Similar Documents

Publication Publication Date Title
US11609968B2 (en) Image recognition method, apparatus, electronic device and storage medium
CN102647594B (zh) 一种整像素精度运动估计方法及其系统
CN105516726A (zh) 视频编码的运动补偿匹配方法和系统
CN201066898Y (zh) 一种实现菱形搜索算法的硬件结构
CN108805285B (zh) 一种卷积神经网络池化单元设计方法
CN103618911A (zh) 一种基于视频属性信息的视频流提供方法及装置
CN102113327B (zh) 图像编码装置、方法、集成电路
CN108419082A (zh) 一种运动估计方法及装置
US6169766B1 (en) Method and apparatus for detecting motion vector and image coding apparatus
CN100474929C (zh) 一种运动补偿数据载入装置及方法
CN101600112A (zh) 分像素运动估计装置和方法
CN113436057B (zh) 数据处理方法及双目立体匹配方法
CN101340588B (zh) 运动估计方法、装置和多媒体处理器
US20210233280A1 (en) Encoding device control method and device, and storage medium
US8064523B2 (en) Motion vector search apparatus
CN101511019A (zh) 一种可变模式运动估计方法及可变模式运动估计装置
CN103067711A (zh) 一种基于h264协议的整像素运动估计方法
CN103024395A (zh) 多视点视频编码模式选择方法及装置
CN105100799A (zh) 一种减少hevc编码器中帧内编码时延的方法
JP4625903B2 (ja) 画像処理プロセッサ
US20040247032A1 (en) Motion vector detection device and motion vector detection method
CN104618715A (zh) 一种获取最小率失真代价的方法及装置
CN115065825A (zh) 一种基于gpu的移动视频编解码系统
KR100282614B1 (ko) 저 전송률 비디오 코덱을 위한 움직임 예측장치
Momcilovic et al. Development and evaluation of scalable video motion estimators on GPU

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080528

Termination date: 20110717