CN101227613B - 一种sad运算处理装置及方法 - Google Patents

一种sad运算处理装置及方法 Download PDF

Info

Publication number
CN101227613B
CN101227613B CN 200810065970 CN200810065970A CN101227613B CN 101227613 B CN101227613 B CN 101227613B CN 200810065970 CN200810065970 CN 200810065970 CN 200810065970 A CN200810065970 A CN 200810065970A CN 101227613 B CN101227613 B CN 101227613B
Authority
CN
China
Prior art keywords
output
pixel
value
iteration
unit
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.)
Active
Application number
CN 200810065970
Other languages
English (en)
Other versions
CN101227613A (zh
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.)
Actions Technology Co Ltd
Original Assignee
Actions Semiconductor Co Ltd
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 Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CN 200810065970 priority Critical patent/CN101227613B/zh
Publication of CN101227613A publication Critical patent/CN101227613A/zh
Application granted granted Critical
Publication of CN101227613B publication Critical patent/CN101227613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

本发明适用于视频图像编解码领域,提供了一种SAD运算处理装置及方法,包括:预处理单元,对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出每一对像素中一个像素值的原码和另一个像素值的反码;迭代求和单元,对预处理单元当前周期的输出以及迭代求和单元上一周期的输出求和,并将求和结果作为迭代求和单元当前周期的输出;和补偿单元,预处理单元和迭代求和单元执行特定数量个周期后,使用迭代求和单元的输出与补偿常数计算SAD值。本发明中SAD运算处理方法将求差值绝对值的过程同求累加和的过程结合,省去了对像素点单独求差值绝对值的步骤及其硬件资源,减少了硬件消耗,提高了运算速度。

Description

一种SAD运算处理装置及方法
技术领域
本发明属于视频图像编解码领域,尤其涉及一种SAD运算装置及运算方法。
背景技术
视频图像数据有极强的相关性,存在大量的冗余信息,冗余信息分为空域冗余信息和时域冗余信息。压缩编码技术就是将数据中的冗余信息去掉,去除数据之间的相关性。压缩技术包含帧内图像压缩技术、帧间图像压缩技术和熵编码压缩技术。其中,帧间图像压缩技术是根据相邻帧图像中图像内容的相似性和连贯性,用前一帧图像的像素信息和运动矢量来表示当前帧的信息。因此,编码结果中只需保留参考像素块的帧内编码结果和一个运动矢量。进行帧间图像压缩,需要在前一帧图像的一定范围中搜索与当前帧内某一宏块最匹配的像素块。这一过程被称为运动估计。
评价两个像素块匹配程度的标准是计算这两个像素块的绝对差值和(Sumof Absolute Difference,SAD),即
Figure G2008100659704D00011
其中width为所述当前像素块或者搜索窗口像素块的宽度,height为所述当前像素块或者搜索窗口像素块的高度,一般为8或16,MBc(x,y)表示当前像素块中坐标(x,y)的象素值,MBi(x,y)表示初始搜索窗口中第i个运动向量所对应的位置块中坐标(x,y)的象素值。
图1示出了视频编码器中的运动估计装置的结构图,整个运动估计装置包括:D存储器,用于保存目标块搜索窗口;S存储器,用于保存匹配块;SAD运算处理装置;寄存器,用于保存最小的SAD值MIN;以及逻辑控制模块等。整个视频压缩编码系统先在一个比较大的搜索窗口中找到与当前匹配块SAD差值最小的宏块;然后,控制逻辑模块根据不同的搜索算法,产生地址从S存储器和D存储器中获取匹配块和搜索窗口中参与比较运算的宏块的值,传输给SAD运算处理装置;SAD运算处理装置负责计算两个宏块的SAD值,若该SAD值小于保存在寄存器中的值,则刷新该寄存器,控制逻辑模块根据搜索窗口当前块的位置得到刷新的运动向量。
在视频图像压缩过程中,SAD运算是计算量最大的一部分,它的计算速度往往决定了整个视频压缩编码系统的效率。现有技术中大多数视频编码系统使用专用硬件对SAD运算进行加速是因为在一个时钟周期内对一个像素点求差和求绝对值分别要耗费一个时钟周期,且累加求和并不具有较好的并行性。现有的硬件结构在计算当前宏块和搜索窗口的SAD值时需要大量进行求差后再求绝对值的计算。如果进行简单的串行运算,往往无法满足系统对计算速度的要求。虽然SAD计算具有较好的并行性,但是通过大量硬件达到并行往往导致芯片的面积和功耗大大上升。现有的硬件结构往往把绝对值差值的计算和求累加和的计算分开进行,从而导致大量的硬件消耗。
发明内容
本发明实施例的目的在于提供一种用于视频编码系统中的SAD运算处理装置及方法,旨在解决现有技术在SAD运算中把绝对值差值的计算和求累加和的计算分开进行导致硬件消耗大,运算时间长,运算速度慢的问题。
本发明实施例的一个目的在于提供一种SAD运算处理装置,所述装置包括:
预处理单元,对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出每一对像素中一个像素值的原码和另一个像素值的反码;
迭代求和单元,对预处理单元当前周期的输出以及迭代求和单元上一周期的输出求和,并将求和结果作为当前周期迭代求和单元的输出;以及
和补偿单元,在预处理单元和迭代求和单元执行特定数量个周期后,使用迭代求和单元的输出与补偿常数计算SAD值。
本发明另一个目的在于提供一种SAD运算处理方法,所述方法包括下述步骤:
预处理步骤,对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出每一对像素中一个像素值的原码和另一个像素值的反码;
迭代求和步骤,对预处理步骤当前周期的输出以及迭代求和步骤上一周期的输出求和,并将求和结果作为迭代求和步骤当前周期的输出;
和补偿步骤,预处理步骤和迭代求和步骤执行特定数量个周期后,使用迭代求和步骤的输出与补偿常数计算SAD值。
本发明实施例的另一目的在于提供一种采用上述SAD运算处理装置实现的运动估计装置。
本发明实施例的另一目的在于提供一种采用上述SAD运算处理装置实现的视频图像编码器。
本发明实施例采用进位保留加法器构造数据压缩器,快速求取大量数据累加的部分和,SAD运算处理装置将求差值绝对值的过程同求累加和的过程结合,省去了现有技术中计算SAD值时对像素点单独求差值绝对值的步骤及其硬件资源,减少了硬件消耗,提高了运算速度。
附图说明
图1是现有技术提供的运动估计装置结构图;
图2是本发明实施例提供的一种SAD运算处理方法实现流程图;
图3是本发明实施例提供的一种SAD运算处理装置模块结构图;
图4是本发明实施例提供的第一种预处理结构的逻辑电路图;
图5是本发明实施例提供的第二种预处理结构的逻辑电路图;
图6是本发明实施例提供的迭代求和单元结构图;
图7是本发明实施例提供的进位保留加法器的逻辑电路图;
图8是本发明实施例提供的第一种和补偿单元结构图;
图9是本发明实施例提供的第二种和补偿单元结构图;
图10是本发明实施例提供的第三种和补偿单元结构图;
图11是本发明实施例提供的第四种和补偿单元结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过将当前像素块和搜索窗口像素块对应位置的像素按照相同规则输出每一对像素中一个像素值的原码和另一个像素值的反码,累计求和,并对求和结果进行补偿;将求差值绝对值的过程同求累加和的过程结合,利用预处理单元、迭代求和单元及和补偿单元计算SAD值。
求绝对值差的累加和可以用公式表示为:其中,
Figure G2008100659704D00042
width为所述当前像素块或者搜索窗口像素块的宽度,height为所述当前像素块或者搜索窗口像素块的高度,一般为8或16。MBc(x,y)表示当前块中坐标(x,y)的象素值,MBi(x,y)表示初始搜索窗口中第i个运动向量所对应的位置块中坐标(x,y)的象素值。
AD(x,y)=|MBc(x,y)-MBi(x,y)|   (1)
AD(x,y)=max(MBc(x,y),MBi(x,y))+(-min(MBc(x,y),MBi(x,y)))   (2)
T ( y ) = Σ x = 0 width - 1 { max ( MBc ( x , y ) , MBi ( x , y ) ) + ( - min ( MBc ( x , y ) , MBi ( x , y ) ) ) } - - - ( 3 )
其中i为非负整数,则
SAD(i+1)=SAD(i)+T(i+1)   (4)
其中,SAD(0)=T(0)且SAD=SAD(height-1)。
根据SAD(i)的递推关系,为避免重复运算,可将每次计算得到的SAD(i)暂存并与T(i+1)的计算结果求和,使用新结果更新暂存的结果。
本发明实施例中,一种SAD运算处理方法流程如图2所示,详述如下:
在步骤S201中,预处理步骤,对当前周期输入的当前像素块以及搜索窗口像素块对应位置的每一对像素值比较大小并输出;
作为本发明的第一实施例,步骤S201中对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出具体为:
输出每对像素中较大像素值的原码和较小像素值的反码。
在数值上,一个数的反码相当于其相反数减1。
在步骤S202中,迭代求和步骤,对预处理步骤当前周期的输出以及迭代求和步骤上一周期的输出求和,并将求和结果作为迭代求和步骤当前周期的输出;
在步骤S203中,和补偿步骤,在预处理步骤和迭代求和步骤执行特定数量个周期后,将迭代求和步骤的输出与补偿常数相加,输出SAD值。
当然,也可以令
NAD(x,y)=-|MBc(x,y)-MBi(x,y)|   (5)
NAD(x,y)=(-max(MBc(x,y),MBi(x,y)))+min(MBc(x,y),MBi(x,y))   (6)
NT ( y ) = Σ x = 0 width - 1 { ( - max ( MBc ( x , y ) , MBi ( x , y ) ) ) + min ( MBc ( x , y ) , MBi ( x , y ) ) } - - - ( 7 )
Figure G2008100659704D00054
其中i为非负整数,则
NSAD(i+1)=NSAD(i)+NT(i+1)   (8)
其中,NSAD(0)=NT(0)且NSAD=NSAD(height-1),SAD=-NSAD。
根据NSAD(i)的递推关系,为避免重复运算,可将每次计算得到的NSAD(i)暂存并与NT(i+1)的计算结果求和,使用新结果更新暂存的结果。经过循环求得NSAD后,对NSAD求反即可得到SAD。
作为本发明的第二实施例,步骤S201中对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出具体为:
输出每对像素中较小像素值的原码和较大像素值的反码。
在数值上,一个数的反码相当于其相反数减1。
在步骤S202中,迭代求和步骤,对预处理步骤当前周期的输出以及迭代求和步骤上一周期的输出求和,并将求和结果作为迭代求和步骤当前周期的输出;
在步骤S203中,和补偿步骤,在预处理步骤和迭代求和步骤执行特定数量个周期后,对迭代求和步骤的输出求反码,并对迭代求和步骤的输的反码与补偿常数求和作为SAD值。
本实施例中预处理步骤和迭代求和步骤执行特定数量个周期由外部时钟控制,所述特定数量N按如下方法确定:
N=width×height/M
其中,M是每周期输入的当前窗口与搜索窗口对应位置像素对的数量,width为当前像素块或者搜索窗口像素块的宽度,height为当前像素块或者搜索窗口像素块的高度。
在步骤S203中,预处理步骤和迭代求和步骤执行特定数量个周期后,使用迭代求和步骤的输出与补偿常数计算SAD值,补偿常数Const的确定方法为:
Const=width×height
其中,width为当前像素块或者搜索窗口像素块的宽度,height为当前像素块或者搜索窗口像素块的高度。
图3示出了本发明实施例提供的一种SAD运算处理装置模块结构图,包括:预处理单元31,迭代求和单元32以及和补偿单元33。其中预处理单元31用于对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出每一对像素中一个像素值的原码和另一个像素值的反码;迭代求和单元32用于对预处理单元当前周期的输出以及迭代求和单元上一周期的输出求和,并将求和结果作为当前周期迭代求和单元的输出;和补偿单元33用于在预处理单元和迭代求和单元执行特定数量个周期后,使用迭代求和单元的输出与补偿常数计算SAD值。
补偿常数Const的确定方法:
Const=width×height
其中,width为当前像素块或者搜索窗口像素块的宽度,height为当前像素块或者搜索窗口像素块的高度。对于16×16的像素宏块要加上256作为补偿,对于8×8的像素宏块要加上64作为补偿。
和补偿单元33在预处理单元31和迭代求和单元32执行特定数量个周期后开始运行。特定数量N的确定方法为:
N=width×height/M
其中,M是每周期输入的当前像素块以及搜索窗口像素块对应位置像素对的数量,width为所述当前像素块或者搜索窗口像素块的宽度,height为所述当前像素块或者搜索窗口像素块的高度。对于16×16的像素宏块,每次输入8对对应位置像素,则需要执行16×16/8=32次循环,对于8×8的像素宏块,每次输入8对对应位置像素,则需要执行8×8/8=8次循环。
作为本发明的一个实施例,预处理单元31包括与每个周期输入的像素对数量相等的预处理结构。所述预处理结构如图4所示,输入的数据为当前像素块对应位置的像素值Si和搜索窗口像素块对应位置的像素值Di,经过数据比较器311,输出Gi=Si[7:0]>Di[7:0]和Li=Si[7:0]<=Di[7:0],当当前像素块的像素值Si大于搜索窗口像素块的像素值Di时,得到第一输出Gi为1,第二输出Li为0,当当前像素块的像素值Si小于或等于搜索窗口像素块的像素值Di时,得到第一输出Gi为0,第二输出Li为1;第一异或门逻辑电路312将搜索窗口像素块对应位置的像素值原码的每一位和第一输出Gi求异或后输出;输出结果存储至第一寄存器314;第二异或门逻辑电路313将当前像素块对应位置的像素值原码的每一位和所述第二输出Li求异或后输出;输出结果存储至第二寄存器315;预处理单元31的输出INAi和INBi,作为迭代求和单元32的输入,INBi[n]=Di[n]^Li,INAi=Si[n]^Gi,其中,n为小于8的非负整数。
本发明的另一个实施例中,预处理单元31对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素值比较后,较小的像素值保持不变,对较大的像素值求反码,而非其相反数,然后对输出进行累加,并在累加和上进行补偿的方法代替对较小值的求负以简化硬件结构。
预处理单元31包括与每个周期输入的像素对数量相等的预处理结构。所述预处理结构如图5所示,输入的数据为当前像素块对应位置的像素值Si和搜索窗口像素块对应位置的像素值Di,经过数据比较器311,输出Gi=Si[7:0]>Di[7:0]和Li=Si[7:0]<=Di[7:0],当当前像素块的像素值Si大于搜索窗口像素块的像素值Di时,得到第一输出Gi为1,第二输出Li为0,当当前像素块的像素值Si小于或等于搜索窗口像素块的像素值Di时,得到第一输出Gi为0,第二输出Li为1;第一异或门逻辑电路312将搜索窗口像素块对应位置的像素值原码的每一位和第二输出Li求异或后输出;输出结果存储至第一寄存器314;第二异或门逻辑电路313将当前像素块对应位置的像素值原码的每一位和所述第一输出Gi求异或后输出;输出结果存储至第二寄存器315;预处理单元31的输出INAi和INBi,作为迭代求和单元32的输入,INBi[n]=Di[n]^Gi,INAi=Si[n]^Li,其中,n为小于8的非负整数。
迭代求和单元32包括:多级进位保留加法器组成的数据压缩器阵列,用于将当前周期预处理单元输出的值,以及上一周期第一部分和寄存器REG0和第二部分和寄存器REG1输出的结果进行压缩运算后输出,数据压缩器阵列最后一级进位保留加法器的数量为1,进位保留加法器为3输入2输出结构;第一部分和寄存器REG0,用于寄存数据压缩器阵列中最后一级进位保留加法器的第一输出T0,并反馈给数据压缩器阵列中第一级进位保留加法器;第二部分和寄存器REG1,用于寄存数据压缩器阵列中最后一级进位保留加法器的第二输出T1,并反馈给数据压缩器阵列中第一级进位保留加法器。
本发明实施例提供的迭代求和单元的结构如图6所示,输入的当前像素块对应位置的像素值和搜索窗口像素块对应位置的像素值经过8个8位数据比较器,得到16个8位像素点条件求反的值,再加上上一个周期数据压缩单元输出的2个16位部分和,总共18个输入,经过6级的进位保留加法器,每一级的输入为前一级输出的部分和,最后一级输出的部分和经过选通存入第一部分和寄存器REG0和第二部分和寄存器REG1中。为了保证求和过程中,压缩器阵列中的进位保留加法器不致溢出,加法器的输入输出均为16位数据。
其中将第一部分和寄存器REG0和第二部分和寄存器REG1的输出接回数据压缩器阵列输入端口的Bypass路径可以使整个SAD运算器以流水线工作。每个周期计算出的8个像素点的差值绝对值部分和不断累加到下个周期的输入上去,使得该SAD运算器每个周期都可以计算8个像素点的差值绝对值并累加到最终结果上。
在使用迭代求和单元前,应首先将迭代求和单元32中的第一部分和寄存器REG0和第二部分和寄存器REG1均清零,在第一周期,计算当前周期数据预处理单元全部输入的和,最后一级进位保留加法器的输出由两个部分和组成,设两个部分和分别为T0和T1,将T0的结果暂存于第一部分和寄存器REG0中,T1的结果暂存于第二部分和寄存器REG1中。以后每计算一次,使用新结果更新部分和寄存器REG0和REG1中的结果,经过特定数量次计算后,得到最终结果,将该最终结果交给和补偿单元处理后即可得到SAD。
迭代求和单元中的进位保留加法器CSA的具体逻辑电路如图7所示,三个输入IN1,IN2和CIN,经过三个与门,两个或门和一个非门得到两个输出C和S。
和补偿单元33在预处理单元31和迭代求和单元32执行特定数量个周期后,使用迭代求和步骤的输出与补偿常数计算SAD值。
由于在预处理单元31,对于当前图像块与搜索窗口图像块对应位置像素对中像素值较小的像素,计算其反码,而非相反数(补码),对预处理单元31输出进行累加求和,相当于对每个像素对都少加了一个1。为了避免每次都需要加1操作,在计算SAD最终结果时统一补偿加1操作。具体实现时,将迭代求和单元32的输出与一个补偿常数Const相加,得到SAD。
图8示出了本发明实施例提供的第一种和补偿单元33的结构图,包括:
补偿常数计算单元,第一数据选择器MUX1,第二数据选择器MUX2,超前进位加法器ADDER,计数器;
补偿常数计算单元,用于根据当前像素块和搜索窗口像素块的大小输出对应的补偿常数;计数器,用于产生数据选择控制信号;第一数据选择器MUX1,用于根据数据选择控制信号选择迭代求和单元第一部分和寄存器REG0的输出或者补偿常数输出;第二数据选择器MUX2,用于根据数据选择控制信号选择迭代求和单元第二部分和寄存器REG1的输出或者超前进位加法器的输出作为输出;超前进位加法器ADDER,用于对第一数据选择器输出以及第二数据选择器的输出进行求和;当计数器第一次计数时,产生数据控制信号控制第一数据选择器MUX1选择选择迭代求和单元第一部分和寄存器REG0的输出作为输出,第二数据选择器MUX2将迭代求和单元第二部分和寄存器REG1的输出作为输出;超前进位加法器ADDER实现迭代求和单元的两个输出的累加并反馈给第二数据选择器MUX2;当计数器第二次计数时,产生数据控制信号控制第一数据选择器MUX1选择补偿常数作为输出,第二数据选择器MUX2将计数器第一次计数时超前进位加法器的输出作为输出,超前进位加法器ADDER实现补偿常数与累加值相加,输出SAD值。
图9示出了本发明实施例提供的第二种和补偿单元33的结构图,包括:一个补偿常数计算单元,根据当前像素块和搜索窗口像素块的大小提供相应的补偿常数;
第一超前进位加法器ADDER1,用于对迭代求和单元的两个输出值累加求和输出累加值;第二超前进位加法器ADDER2,用于将补偿常数与累加值相加,输出SAD值。
由于预处理单元31在另一实施例中对于当前图像块与搜索窗口图像块对应位置像素对中像素值较大的像素,计算其反码,而非相反数(补码),对预处理单元31输出进行累加求和后,为了计算SAD需要首先对迭代求和单元32的输出求反码,同时,由于对较大像素取反码而非相反数,相当于对每个像素对都少加了一个1。为了避免每次都需要加1操作,在计算SAD最终结果时统一补偿加1操作。具体实现时,将迭代求和单元32的输出取反码后与一个补偿常数Const相加,得到SAD。
图10示出了本发明实施例提供的第三种和补偿单元33的结构图,包括:
补偿常数计算单元,第一数据选择器MUX1,第二数据选择器MUX2,超前进位加法器ADDER,计数器以及求反码单元;
求反码单元,用于对所述迭代求和单元32的两个输出求反码输出。作为一个实施例,求反码单元由第一异或单元和第二异或单元组成,第一异或单元的输入为0x0000和迭代求和单元32中第一部分和寄存器REG0的输出,输出为求反码单元的第一输出,第二异或单元的输入为0x0000和迭代求和单元32中第二部分和寄存器REG0的输出,输出为求反码单元的第二输出;
补偿常数计算单元,用于根据当前像素块和搜索窗口像素块的大小输出对应的补偿常数;计数器,用于产生数据选择控制信号;第一数据选择器MUX1,用于根据数据选择控制信号选择求反码单元的第一输出或者所述补偿常数输出;第二数据选择器MUX2,用于根据数据选择控制信号选择求反码单元的第二输出或者超前进位加法器的输出作为输出;超前进位加法器ADDER,用于对第一数据选择器输出以及第二数据选择器的输出进行求和;当计数器第一次计数时,产生数据控制信号控制第一数据选择器MUX1选择求反码单元的一个输出作为输出,第二数据选择器MUX2将求反码单元的另一输出作为输出;超前进位加法器ADDER实现求反码单元的两个输出的累加并反馈给第二数据选择器MUX2;当计数器第二次计数时,产生数据控制信号控制第一数据选择器MUX1选择补偿常数作为输出,第二数据选择器MUX2将计数器第一次计数时超前进位加法器的输出作为输出,超前进位加法器ADDER实现补偿常数与累加值相加,输出SAD值。
图11示出了本发明实施例提供的第四种和补偿单元33的结构图,包括:
求反码单元,用于对迭代求和单元32的两个输出求反码输出。作为一个实施例,求反码单元由第一异或单元和第二异或单元组成,第一异或单元的输入为0x0000和迭代求和单元32中第一部分和寄存器REG0的输出,输出为求反码单元的第一输出,第二异或单元的输入为0x0000和迭代求和单元32中第二部分和寄存器REG0的输出,输出为求反码单元的第二输出;
一个补偿常数计算单元,根据当前像素块和搜索窗口像素块的大小提供相应的补偿常数;
第一超前进位加法器ADDER1,用于对求反码单元的两个输出值累加求和输出累加值;第二超前进位加法器ADDER2,用于将补偿常数与累加值相加,输出SAD值。
本发明实施例采用上述SAD运算处理装置实现的运动估计装置以及视频图像编码器运算速度快,硬件消耗小。
本发明实施例采用进位保留加法器构造数据压缩单元,快速求取大量数据累加的部分和,SAD运算处理装置通过将求差值绝对值的过程同求累加和的过程结合,省去了对像素点单独求差值绝对值的步骤及其硬件资源,减少了硬件消耗,提高了运算速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种用于视频编码系统中的SAD运算处理装置,其特征在于,所述装置包括:
预处理单元,对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出每一对像素中一个像素值的原码和另一个像素值的反码;
迭代求和单元,对预处理单元当前周期的输出以及迭代求和单元上一周期的输出求和,并将求和结果作为当前周期迭代求和单元的输出;以及
和补偿单元,在预处理单元和迭代求和单元执行特定数量个周期后,使用迭代求和单元的输出与补偿常数计算SAD值;
其中:
所述预处理单元和迭代求和单元执行的周期数量N为:N=width×height/M,
所述补偿常数Const为:Const=width×height,
其中,M是每周期输入的当前像素块以及搜索窗口像素块对应位置像素对的数量,width为所述当前像素块或者搜索窗口像素块的宽度,height为所述当前像素块或者搜索窗口像素块的高度。
2.如权利要求1所述的装置,其特征在于,每个周期输入的当前像素块和搜索窗口像素块对应位置的像素对数量为8。
3.如权利要求1所述的装置,其特征在于,所述迭代求和单元包括:
多级进位保留加法器组成的数据压缩器阵列,用于将当前周期预处理单元输出的值,以及上一周期第一部分和寄存器REG0和第二部分和寄存器REG1输出的结果进行求和运算后输出,所述数据压缩器阵列最后一级进位保留加法器的数量为1,所述进位保留加法器为3输入2输出结构;
第一部分和寄存器REG0,用于寄存所述数据压缩器阵列中最后一级进位保留加法器的第一输出T0,并反馈给所述数据压缩器阵列中第一级进位保留加法器;
第二部分和寄存器REG1,用于寄存所述数据压缩器阵列中最后一级进位保留加法器的第二输出T1,并反馈给所述数据压缩器阵列中第一级进位保留加法器。
4.如权利要求3所述的装置,其特征在于,所述预处理单元包括与每个周期输入的像素对数量相等的预处理结构,所述预处理结构进一步包括:
数据比较器,用于比较当前像素块和搜索窗口像素块对应位置像素值的大小,当当前像素块的像素值Si大于搜索窗口像素块的像素值Di时,得到第一输出Gi为1,第二输出Li为0,当当前像素块的像素值Si小于或等于搜索窗口像素块的像素值Di时,得到第一输出Gi为0,第二输出Li为1;
第一异或门逻辑电路,用于将搜索窗口像素块对应位置的像素值原码的每一位和所述第一输出Gi求异或后输出;
第一寄存器,用于寄存所述第一异或门逻辑电路输出的值;
第二异或门逻辑电路,用于将当前像素块对应位置的像素值原码的每一位和所述第二输出Li求异或后输出;以及
第二寄存器,用于寄存所述第二异或门逻辑电路输出的值。
5.如权利要求4所述的装置,其特征在于,所述和补偿单元进一步包括:
补偿常数计算单元,第一数据选择器,第二数据选择器,超前进位加法器,计数器;
所述补偿常数计算单元,用于计算并输出补偿常数;
所述计数器,用于产生数据选择控制信号;
所述第一数据选择器,用于根据数据选择控制信号选择所述迭代求和单元的一个输出或者所述补偿常数输出;
所述第二数据选择器,用于根据数据选择控制信号选择所述迭代求和单元的另一输出或者所述超前进位加法器的输出作为输出;
所述超前进位加法器,用于对所述第一数据选择器输出以及第二数据选择器的输出进行求和;
当所述计数器第一次计数时,产生所述数据控制信号控制所述第一数据选择器选择所述迭代求和单元的一个输出或者所述补偿常数作为输出,所述第二数据选择器将迭代求和单元的另一输出作为输出,所述超前进位加法器,将此时第一数据选择器输出以及第二数据选择器的输出进行求和;当计数器第二次计数时,产生所述数据控制信号控制所述第一数据选择器在计数器第一次计数时未选择的另一个数作为输出,所述第二数据选择器将所述超前进位加法器第一次运算后的输出作为输出,所述超前进位加法器,将第一数据选择器输出以及第二数据选择器的输出进行求和,作为SAD值输出。
6.如权利要求4所述的装置,其特征在于,所述和补偿单元进一步包括:
补偿常数计算单元,用于计算并输出补偿常数;
第一超前进位加法器,用于对所述迭代求和单元的两个输出值以及所述补偿常数中的两个值进行求和;
第二超前进位加法器,用于对所述迭代求和单元的两个输出值以及所述补偿常数中未被第一超前进位加法器求和的第三个值和所述第一超前进位加法器的输出值求和,输出SAD值。
7.如权利要求3所述的装置,其特征在于,所述预处理单元包括与每个周期输入的像素对数量相等的预处理结构,所述预处理结构进一步包括:
数据比较器,用于比较当前像素块和搜索窗口像素块对应位置像素值的大小,当当前像素块的像素值Si大于搜索窗口像素块的像素值Di时,得到第一输出Gi为1,第二输出Li为0,当当前像素块的像素值Si小于或等于搜索窗口像素块的像素值Di时,得到第一输出Gi为0,第二输出Li为1;
第一异或门逻辑电路,用于将搜索窗口像素块对应位置的像素值原码的每一位和所述第二输出Li求异或后输出;
第一寄存器,用于寄存所述第一异或门逻辑电路输出的值;
第二异或门逻辑电路,用于将当前像素块对应位置的像素值原码的每一位和所述第一输出Gi求异或后输出;以及
第二寄存器,用于寄存所述第二异或门逻辑电路输出的值。
8.如权利要求7所述的装置,其特征在于,所述和补偿单元进一步包括:
补偿常数计算单元,第一数据选择器,第二数据选择器,超前进位加法器,计数器,求反码单元;
所述补偿常数计算单元,用于计算并输出补偿常数;
所述计数器,用于产生数据选择控制信号;
所述求反码单元用于对所述迭代求和单元的第一输出、第二输出求反码得到求反码单元的第一输出、第二输出;
所述第一数据选择器,用于根据数据选择控制信号选择所述求反码单元的一个输出或者所述补偿常数输出;
所述第二数据选择器,用于根据数据选择控制信号选择所述求反码单元的另一输出或者所述超前进位加法器的输出作为输出;
所述超前进位加法器,用于对所述第一数据选择器输出以及第二数据选择器的输出进行求和;
当所述计数器第一次计数时,产生所述数据控制信号控制所述第一数据选择器选择所述求反码单元的一个输出或者所述补偿常数作为输出,所述第二数据选择器将求反码单元的另一输出作为输出;当计数器第二次计数时,产生所述数据控制信号控制所述第一数据选择器在计数器第一次计数时未选择的另一个数作为输出,所述第二数据选择器将计数器第一次计数时超前进位加法器的输出作为输出,所述超前进位加法器将第一数据选择器输出以及第二数据选择器的输出进行求和,作为SAD值输出。
9.如权利要求7所述的装置,其特征在于,所述和补偿单元进一步包括:
补偿常数计算单元,用于计算并输出补偿常数;
求反码单元,用于对所述迭代求和单元的两个输出求反码;
第一超前进位加法器,用于对所述补偿常数和所述求反码单元的两个输出值中的两个值进行求和;
第二超前进位加法器,用于对所述补偿常数、所述求反码单元的两个输出值中未被第一超前进位加法器求和的第三个值和所述第一超前进位加法器的输出值求和,输出SAD值。
10.一种采用权利要求1的SAD运算处理装置实现的运动估计装置。
11.一种采用权利要求1的SAD运算处理装置实现的视频图像编码器。
12.一种用于视频编码系统中的SAD运算处理方法,其特征在于,所述方法包括下述步骤:
预处理步骤,对当前周期输入的当前像素块以及搜索窗口像素块对应位置的像素按照相同规则输出每一对像素中一个像素值的原码和另一个像素值的反码;
迭代求和步骤,对预处理步骤当前周期的输出以及迭代求和步骤上一周期的输出求和,并将求和结果作为迭代求和步骤当前周期的输出;
和补偿步骤,预处理步骤和迭代求和步骤执行特定数量个周期后,使用迭代求和步骤的输出与补偿常数计算SAD值;
其中:
所述预处理步骤和迭代求和步骤执行的周期数量N为:N=width×height/M,
所述补偿常数Const为:Const=width×height,
其中,M是每周期输入的当前像素块以及搜索窗口像素块对应位置像素对的数量,width为所述当前像素块或者搜索窗口像素块的宽度,height为所述当前像素块或者搜索窗口像素块的高度。
13.如权利要求12所述的方法,其特征在于,所述预处理步骤的输出为:
每对像素中较大像素值的原码和较小像素值的反码。
14.如权利要求13所述的方法,其特征所述使用迭代求和步骤的输出与补偿常数计算SAD值的步骤具体为:
对迭代求和步骤的输出与补偿常数求和作为SAD值。
15.如权利要求12所述的方法,其特征在于,所述预处理步骤的输出为:
每对像素中较大像素值的反码和较小像素值的原码。
16.如权利要求15所述的方法,其特征所述使用迭代求和步骤的输出与补偿常数计算SAD值的步骤具体为:
对迭代求和步骤的输出求反码;
对所述反码与补偿常数求和作为SAD值。
CN 200810065970 2008-01-22 2008-01-22 一种sad运算处理装置及方法 Active CN101227613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810065970 CN101227613B (zh) 2008-01-22 2008-01-22 一种sad运算处理装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810065970 CN101227613B (zh) 2008-01-22 2008-01-22 一种sad运算处理装置及方法

Publications (2)

Publication Number Publication Date
CN101227613A CN101227613A (zh) 2008-07-23
CN101227613B true CN101227613B (zh) 2010-04-07

Family

ID=39859332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810065970 Active CN101227613B (zh) 2008-01-22 2008-01-22 一种sad运算处理装置及方法

Country Status (1)

Country Link
CN (1) CN101227613B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2535426B (en) * 2014-10-31 2021-08-11 Advanced Risc Mach Ltd Apparatus, method and program for calculating the result of a repeating iterative sum
CN112399114B (zh) * 2019-08-13 2022-12-13 天津大学青岛海洋技术研究院 一种快速的dvs图像传感器列信号读出方法

Also Published As

Publication number Publication date
CN101227613A (zh) 2008-07-23

Similar Documents

Publication Publication Date Title
CN105183425B (zh) 一种具有高精度低复杂度特性的固定位宽乘法器
CN110519603B (zh) 一种实时视频缩放的硬件电路及其缩放方法
Medeiros et al. A parallel color-based particle filter for object tracking
Tomasi et al. High-performance optical-flow architecture based on a multi-scale, multi-orientation phase-based model
WO2011020647A1 (en) Method and apparatus for estimation of interframe motion fields
KR20090105365A (ko) 움직임 추정 장치 및 이를 구비하는 동영상 부호화 장치
US20030031257A1 (en) Motion estimation method and apparatus for interrupting computation which is determined not to provide solution
CN101453557B (zh) 一种基于运动矢量对消和差分原理的快速全局运动估计方法
Abel et al. Applications tuning for streaming SIMD extensions
CN101227613B (zh) 一种sad运算处理装置及方法
Sousa et al. Low-power array architectures for motion estimation
Fischer et al. Cost-effective video filtering solution for real-time vision systems
CN101227607A (zh) 一种基于并行流水线的穷尽运动估计搜索方法与装置
Chang et al. Design and implementation of a low-cost guided image filter for underwater image enhancement
CN1625266A (zh) 计算绝对差值的设备、运动估计设备和运动图像编码设备
Ismail et al. An efficient adaptive high speed manipulation architecture for fast variable padding frequency domain motion estimation
Liu et al. Fast and Scaled Counting-Based Stochastic Computing Divider Design
Chen et al. Hardware design of moving object detection on reconfigurable system
Prayline Rajabai et al. Hardware Implementation of Diamond Search Algorithm for Motion Estimation
Chen et al. Analysis and hardware architecture design of global motion estimation
Tian et al. Determination of fractional pixel location via an optimal group delay estimation approach
Shin et al. A center-biased hybrid search method using plus search pattern for block motion estimation
Keller et al. Fast global motion estimation for MPEG-4 video compression
CN100370834C (zh) 多模图像编解码芯片中的系数缩放计算模块
CN105898334A (zh) 一种应用于视频编解码的dc预测电路及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: 519085 hi tech Zone, Guangdong, Zhuhai science and Technology Innovation Coast Road, No. four, No. 1

Patentee after: Juli Integrated Circuit Design Co., Ltd.

Address before: 519085 No. 1, unit 15, building 1, 1 Da Ha Road, Tang Wan Town, Guangdong, Zhuhai

Patentee before: Juli Integrated Circuit Design Co., Ltd.

TR01 Transfer of patent right

Effective date of registration: 20170612

Address after: 519085 C District, 1# workshop, No. 1, science and technology No. four road, hi tech Zone, Zhuhai, Guangdong, China

Patentee after: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

Address before: 519085 hi tech Zone, Guangdong, Zhuhai science and Technology Innovation Coast Road, No. four, No. 1

Patentee before: Juli Integrated Circuit Design Co., Ltd.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ACTIONS TECHNOLOGY Co.,Ltd.

Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder