【视频编码学习】——SAD和SATD
视频编码学习——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变换
【视频编码学习】——SAD和SATD相关推荐
- 【视频编码学习】——变换的理解
视频编码--变换的理解 • 变换编码是正交变换,正交变换可以理解为坐标轴旋转 • 变换的目的是:去相关性,使信号独立,对变换系数采取独立的量化,可以最小化失真,且获得更低的码率 • 变换+标量量化能获 ...
- 【视频编码学习】AVS3参考软件HPM-4.1简单配置运行
1.用Visual Studio2017打开HPM-4.1文件夹 2.找到文件夹目录下x86_windows文件夹,因为是在win上运行该代码 3.然后找到对应vs版本(我当时2017版)的解决方案s ...
- 视频编码失真测度:SAD、SATD、SSD、MSE、PSNR
一.定义 SSD:平方误差和 -- Sum of Squared Difference MSE:均方误差 -- Mean Squared Error SAD:绝对误差和 (时域)-- Sum of A ...
- 哈达玛变换及其在图像/视频编码中的应用:计算SATD
沃尔什-哈达玛变换(Walsh-Hadmard Transform,WHT),是一种典型的非正弦函数变换,采用正交直角函数作为基函数,具有与傅里叶函数类似的性质,图像数据越是均匀分布,经过沃尔什-哈达 ...
- mp4v2再学习 -- H264视频编码成MP4文件
一.H264视频编码成MP4文件 参看:H264视频编码成MP4文件 参看:mp4v2在VS2010下的编译与在项目中的使用 最近做项目需要将H264文件封装为mp4文件,从网上找到了MP4V2库,下 ...
- 深度学习赋能视频编码
深度学习赋予了诸如计算机视觉等领域新的研究契机,其应用也获得了视频编码领域的诸多关注.在LiveVideoStack线上分享中北京大学信息技术学院 助理研究员王苫社详细介绍了当下深度学习在视频编码中的 ...
- LiveVideoStack线上分享第三季(六):深度学习与视频编码
深度学习赋予了诸如计算机视觉等领域新的研究契机,对于视频编码,其应用也获得了视频编码领域的诸多关注.6月29日20:00,LiveVideoStack线上分享第三季,第六期,北京大学信息技术学院,助理 ...
- 海思SDK学习(7)海思媒体处理软件平台MMP(6)视频编码VENC
视频编码 1.概述 VENC模块,即视频编码模块.本模块支持多路实时编码,且每路编码独立,编码协议和编码profile 可以不同.本模块支持视频编码同时,调度Region 模块对编码图像内容进行叠加和 ...
- 使用FFMPEG——4.2.2版本实现提取视频编码解码文件,ffmpeg基础学习。
FFMPEG基础学习 视频解码,并且输出到文件. 我通过雷霄骅的博客学习FFMPEG,在学习过程中发现"雷神"的代码由于版本的问题,很多代码已经无法在FFMPEG--4.2.2版本 ...
最新文章
- getLocationInWindow getLocationOnScreen getLeft , getTop, getBottom,getRight
- Elasticsearch之倒排索引
- Mysql的库与表的基本操作
- java空间租用_java影片租赁平台
- postgresql 目录结构
- 按照前序遍历和中序遍历构建二叉树
- Bootstrap3.0入门学习系列规划[持续更新]
- 【报告分享】2021年中国企业直播成长路径研究报告.pdf(附下载链接)
- 121.Best Time to Buy and Sell Stock
- The Basic Knowledge of Graph(图的基本知识)
- PaddleNLP--UIE(二)--小样本快速提升性能(含doccona标注)
- 股票数据分析查询接口,股票数据接口,沪深港股,股票api查询
- Gluster-Heketi-Kubernetes 安装步骤(以DaemonSet形式安装) Ubuntu 16.04
- tar.bz2 解压命令。
- 对称加密算法AES - ECB模式
- 机器学习之决策树(机器学习技法)
- C++primer学习(13.拷贝控制)
- YYYY/MM/dd 日期format的幺蛾子
- [单片机框架] [kv_sys] 实现一个简易KV键值系统(升级版)
- 2011年的赢家和输家