什么是SAD,SAE,SATD,SSD,SSE,MAD,MAE,MSD,MSE?

本文介绍了几种常用的误差度量指标,包括绝对误差和(SAD/SAE)、hadamard变换后的绝对值求和(SATD)、差值的平方和(SSD/SSE)、平均绝对误差(MAD/MAE)及平均平方误差(MSD/MSE),这些指标被广泛应用于信号处理和图像处理等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SAD(Sum of Absolute Difference)=SAE(Sum of Absolute Error)即绝对误差和

 

SATD(Sum of Absolute Transformed Difference)即hadamard变换后再绝对值求和

 

SSD(Sum of Squared Difference)=SSE(Sum of Squared Error)即差值的平方和

 

MAD(Mean Absolute Difference)=MAE(Mean Absolute Error)即平均绝对差值

 

MSD(Mean Squared Difference)=MSE(Mean Squared Error)即平均平方误差

### MR-SAD 与 MR-SATD 算法原理及实现 #### MR-SAD(Mean of Residual - Sum of Absolute Difference) MR-SAD 是一种改进的误差计算方法,通常用于运动估计或图像配准等任务中。与传统的 SAD(Sum of Absolute Difference)相比,MR-SAD 考虑了残差信号的均值特性。在某些应用场景中,例如 LIC(Luma Mapping with Chroma scaling)被启用的情况下,MR-SAD 被用来替代传统的 SAD 进行整像素和亚像素运动搜索。 **算法原理:** - MR-SAD 的核心思想是将预测块与参考块之间的差异(即残差)进行归一化处理。 - 具体来说,它通过减去残差的均值得到“均值残差”,然后计算该均值残差的绝对值之和。 **公式表示如下:** 假设预测块为 $ P(x,y) $,参考块为 $ R(x,y) $,则传统 SAD 表达式为: $$ SAD = \sum_{x,y} |P(x,y) - R(x,y)| $$ 而 MR-SAD 则为: $$ MR\text{-}SAD = \sum_{x,y} |(P(x,y) - R(x,y)) - \mu_{res}| $$ 其中 $ \mu_{res} $ 是残差块的平均值 [^2]。 **实现步骤:** 1. 计算预测块与参考块之间的残差。 2. 求出残差块的均值 $ \mu_{res} $。 3. 对每个残差点减去均值后取绝对值并求和。 #### MR-SATD(Mean of Residual - Sum of Absolute Transformed Difference) MR-SATDSATD(Sum of Absolute Transformed Difference)的一种扩展形式,常用于率失真优化(Rate-Distortion Optimization, RDO)中。当 LIC 应用于一个 CU(Coding Unit)时,在整像素和亚像素运动搜索过程中会使用 MR-SATD 来代替 SATD [^3]。 **算法原理:** - MR-SATD 首先对残差信号进行哈达玛变换(Hadamard Transform),然后计算变换后的系数绝对值之和。 - 与 MR-SAD 类似,MR-SATD 同样考虑了残差的均值信息,并将其从残差中去除后再进行变换和误差计算。 **公式表示如下:** 设残差块为 $ E(x,y) = P(x,y) - R(x,y) $,其均值为 $ \mu_{res} $,则修正后的残差为: $$ E'(x,y) = E(x,y) - \mu_{res} $$ 随后对 $ E'(x,y) $ 进行哈达玛变换得到频域系数 $ T(E') $,最终 MR-SATD 值为: $$ MR\text{-}SATD = \sum |T(E')| $$ **实现步骤:** 1. 计算预测块与参考块之间的原始残差。 2. 求出残差的均值并从中减去以获得均值归零的残差。 3. 对该残差执行哈达玛变换。 4. 计算变换后系数的绝对值之和作为 MR-SATD 值 [^1]。 #### 实现代码示例(Python) 以下是一个简化的 Python 实现示例,展示如何计算 MR-SAD 和 MR-SATD: ```python import numpy as np from numpy.fft import dct # 使用 DCT 模拟哈达玛变换,实际应使用 Hadamard 变换 def compute_mr_sad(pred_block, ref_block): residual = pred_block - ref_block mean_residual = np.mean(residual) mean_removed_residual = residual - mean_residual mr_sad = np.sum(np.abs(mean_removed_residual)) return mr_sad def hadamard_transform_2d(matrix): """Perform 2D Hadamard transform on a matrix.""" n = matrix.shape[0] hmat = np.kron([[1, 1], [1, -1]], np.ones((n//2, n//2))) transformed = np.dot(hmat, matrix).dot(hmat.T) return transformed def compute_mr_satd(pred_block, ref_block): residual = pred_block - ref_block mean_residual = np.mean(residual) mean_removed_residual = residual - mean_residual # Apply 2D Hadamard Transform transformed = hadamard_transform_2d(mean_removed_residual) mr_satd = np.sum(np.abs(transformed)) return mr_satd # 示例图像块(4x4) pred_block = np.array([[10, 12, 15, 17], [11, 13, 16, 18], [12, 14, 17, 19], [13, 15, 18, 20]]) ref_block = np.array([[9, 11, 14, 16], [10, 12, 15, 17], [11, 13, 16, 18], [12, 14, 17, 19]]) print("MR-SAD:", compute_mr_sad(pred_block, ref_block)) print("MR-SATD:", compute_mr_satd(pred_block, ref_block)) ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值