绝对差异之和
在数字图像处理中,绝对差的总和(SAD)是图像块之间的相似度的量度。通过取原始块中的每个像素与用于比较的块中的相应像素之间的绝对差来计算。将这些差值相加以创建块相似度的简单度量,差异图像的L1范数或两个图像块之间的曼哈顿距离。绝对差的和可以用于各种目的,例如对象识别,立体图像的视差图的生成以及用于视频压缩的运动估计。
此示例使用绝对差的总和来确定搜索图像的哪个部分与模板图像最相似。在此示例中,模板图像大小为3×3像素,而搜索图像的大小为3×5像素。每个像素由0到9之间的单个整数表示。
例子:
Template Search image 2 5 5 2 7 5 8 6 4 0 7 1 7 4 2 7 7 5 9 8 4 6 8 5模板可能适合的搜索图像中正好有三个独特的位置:图像的左侧,图像的中心和图像的右侧。为了计算SAD值,使用每个对应的像素对之间的差的绝对值:2和2之间的差是0,4和1是3,7和8是1等等。对于三个可能的模板位置,计算每个像素的绝对差值的值给出以下内容:
Left Center Right 0 2 0 5 0 3 3 3 1 3 7 3 3 4 5 0 2 0 1 1 3 3 1 1 1 3 4对于这三个图像斑块中的每一个,将9个绝对差值加在一起,分别给出20,27和17的SAD值。根据这些SAD值,可以断定搜索图像的右侧与模板图像最相似,因为它与其他两个位置相比具有最小的绝对差值之和。
对象识别:
绝对差异的总和提供了一种自动搜索图像内的对象的简单方法,但由于照明,颜色,观察方向,大小或形状等上下文因素的影响,可能不可靠。 SAD可以与其他对象识别方法(例如边缘检测)一起使用,以提高结果的可靠性。
视频压缩:
SAD是一个非常快的指标,由于它的简单性;它实际上是考虑到块中每个像素的最简单的可能度量。因此,对于许多不同的块的广泛运动搜索是非常有效的。 SAD也易于并行化,因为它分别分析每个像素,使其易于使用诸如ARM NEON或x86 SSE2等指令实现。例如,SSE专门为此目的填补了绝对差异指令(PSADBW)的总和。一旦找到候选块,运动估计过程的最终细化通常用更好的考虑到人类感知的其他较慢但更准确的度量来完成。这些包括绝对变换差(SATD),平方差(SSD)和速率失真优化之和。