当前位置:网站首页>【视频编码学习】——SAD和SATD
【视频编码学习】——SAD和SATD
2022-08-09 13:31:00 【繁星¹⁸⁹⁵】
视频编码学习——SAD和SATD
一、常用误差定义
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)即平均平方误差
二、在视频编码中的应用
以RDO为例,在编码模式的RDO决策中,模式对应的代价:
J(mode)=SSD+λ*R(ref,mode,mv,residual)
- 这里,SSD是指重建块与源图像的差值均方和;λ是拉格朗日乘子,就当是权值吧;R就是该模式下宏块编码的实际码流,包括对参考帧、模式、运动矢量、残差等的比特总和。当然如果是帧内模式,就只有R(mode,residual)。
- 很多人迷惑的是,当前宏块还没编码啊,怎么知道它的码流和重建图像?实际上,RDO就是对每个模式都实际编码一次,得到J(mode),然后选择J(mode)最小的模式为实际编码模式。就像编码器引入了一个大反馈,如果视频编码器真的按上面的公示进行RDO,那编码起来速度很慢,当然,编码效率最佳。
- 因此在实际应用中,就有了下面的替代公式:
J(mode)=SAD+λ*R(ref,mode,mv)
J(mode)=SATD+λ*R(ref,mode,mv)
在这里,SAD就是该模式下预测块与源图像的绝对误差和。比特R中少了对residual的编码,也就是运动估计后就可以直接得到该模式的J(mode)值,极大的减少了运算复杂度。
SATD就是对残差进行哈德曼变换后的系数绝对和,在大多数情形下,SATD比SAD评价效果更好些,当然,SATD比SAD多了个变换,计算量大些。
三、SAD和SATD应用场景
- SATD:当不用率失真优化时, 选择SATD+delta×r(mode,ref,mv)作为模式选择的依据;帧内模式选择用SATD。运动估计中,亚象素用SATD
- SAD: 运动估计中,整象素搜索用SAD
解释
- SAD即绝对误差和,仅反映残差时域差异,影响PSNR值,不能有效反映码流的大小。SATD即将残差经哈德曼变换的4×4块的预测残差绝对值总和,可以将其看作简单的时频变换,其值在一定程度上可以反映生成码流的大小。因此,不用率失真最优化时,可将其作为模式选择的依据。
- 一般帧内要对所有的模式进行检测,帧内预测选用SATD的原因同上。
- 在做运动估计时,一般而言,离最优匹配点越远,匹配误差值SAD越大,这就是有名的单一平面假设,现有的运动估计快速算法大都利用该特性。但是,转换后SATD值并不满足该条件,如果在整象素中运用SATD搜索,容易陷入局部最优点。而在亚象素中,待搜索点不多,各点处的SAD差异相对不大,可以用SATD选择码流较少的匹配位置。
四、SAD和SATD的物理意义
- SAD即绝对误差和,仅反映残差时域差异,影响PSNR值,不能有效反映码流的大小。其值仅反映误差D。
- SATD即将残差经哈德曼变换的系数绝对值总和,可以将其看作简单的时频变换,其值在一定程度上可以反映生成码流R的大小。
变换
视频编码中常用的变换:DCT
MSE下理论最佳变换:KL变换
边栏推荐
猜你喜欢
随机推荐
蓝桥杯嵌入式(STM32F103RBT6)最全攻略(一)
oracle财务数据权限思考
Kubernetes资源编排系列之三: Kustomize篇
Operating system migration practice deploying MySQL database on openEuler
Jetpack Compose——remember、mutableStateOf、rememberSaveable
openharmony容器组件之Counter
响应式pbootcms模板建材家居类网站
C语言,if循环 for 循环 while循环 switch循环 do...while()循环
【ClickHouse】 日志清理方法(query_log、query_thread_log)
12.cuBLAS开发指南中文版--cuBLAS中的Level-1函数asum()和axpy()
测试研发的人数科学比例
Where to go to IOE-EBS
1.11 flink中的动态加载udf jar包
阿里巴巴云原生大数据运维平台 SREWorks 正式开源
汇编语言学习(一)
iptables防火墙
Jetpack Compose - Use of TextField and OutlinedTextField (text box)
Spark Sql之join on and和where
阿里云PAI与香港大学合作论文入选INFOCOM 2022,有效减少大规模神经网络训练时间
理解redis,一篇就够









