振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术
振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术
本文主要对SAO的几种补偿方式进行简要介绍。
文章目录
- 振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术
- 一、振铃效应
- 二、SAO的原理
- 1. SAO为什么能消除振铃效应
- 2. 五种类型的SAO
- 3. SAO选择类型的标准
- 三、EO模式
- 1. EO模式的原理
- 2. EO模式的四种判别方式
- 四、 BO模式
- 五、MERGE模式
- 六、NOT APPLIED模式
- 总结
- 参考资料
一、振铃效应
H265的压缩过程中【1】会丢失信号的部分高频分量,因此会产生振铃效应。
如图所示(图片来源【2】),实现代表未压缩图片的像素,虚线代表压缩后解码恢复后的图片的像素。这种由于高频信号损失引起图片失真的现象称为振铃效应
。
二、SAO的原理
1. SAO为什么能消除振铃效应
为了减少误差,可以将两者间的差值传输给解码端,但这样需要传输的信息较多较大,也没有必要。因此H265中设置了样点自适应补偿(Sample Adaptive Offset,SAO)技术,来减小振铃效应。具体逻辑就是对各个需要补偿的点(与原始图像有偏差)进行分类,为每个分类设置一个合适的偏移值(offset),这样解码端就能根据编码端传输过来的几个offset值和分类方式来恢复图像了。
2. 五种类型的SAO
H265在压缩图片时,将一帧视频的图片分割成许多64*64或者其他大小的碎片(CTU),而SAO是以CTU为单位的进行分类的。SAO大概可分为以下5种类型:
- Not Applied : 表示该CTU不需要进行补偿;
- Merge Up : 表示该CTU和他上面那块的CTU采用同样的补偿方式;
- Merge Left : 表示该CTU和他左面那块的CTU采用同样的补偿方式;
- Edge Offset (EO): 根据每个像素点和他附近像素点的关系,将其分为5类,其中4类需要补偿,为每类设置一个合适的offset。
- Band offset(BO): 根据每个像素点的大小进行分类,分为32个区间,为每个区间选择一个合适的offset。
3. SAO选择类型的标准
选取SAO类型的时候,不仅要考虑对图像的恢复效果,也要考虑引入SAO引起的信息的增大。
因此,我们引入代价函数δ\deltaδJ来衡量SAO,δ\deltaδJ的计算公司如下所示:
ΔJ = ΔD + λR;其中ΔD是引入该方式后,图片的失真程度;R是比特估计,也就是编码该SAO方式需要的比特数;λ是拉格朗日因子,该值设置越大,就越倾向于选择信息量少的SAO方式,该值越小就越倾向于选择恢复效果好的SAO方式。
ΔD和R详细的计算见【2】
三、EO模式
1. EO模式的原理
Edge Offset (EO)根据每个像素点和他附近像素点的关系,将其分为5类,其中4类需要补偿,为每类设置一个合适的offset。
2. EO模式的四种判别方式
对c点进行分类时,使c与附近的a,b两点进行比较。
如图所示(图片来源【2】),a,b的选取有4种方式,E_00(0度) E_90(90度), E_45(45度), E_135(135度)。
根据大小关系对其进行分类,如图所示(图片来源【2】),不属于这4类的,就是第5类,第5类不做补偿;
如果采用E_00方式取点,图片中的像素点就有E_00_1,E_00_2,E_00_3,E_00_4这4类;
计算E_00_1的个数N,和这些点与原始图片的差值之和E,然后计算E/N,取整。若E/N大于7,offset初始值就选7,否则选E/N;需要注意的是,1和2类的offset必须是正数,3和4类的offset必须是负数。
确定是初始值后,就在【0,offset初始值】间的整数进行遍历,计算出每一个offset对应的ΔJ,最后选出一个ΔJ最小的offset; 最终4个分类遍历完以后就得到ΔJ_00_1,ΔJ_00_2,ΔJ_00_3,ΔJ_00_4,这四个值相加,就是E_00分类方式得到最小的代价函数ΔJ_00;
同理计算出ΔJ_45, ΔJ_135和ΔJ_90, 之后对这4个值进行比较,选出最小的代价函数ΔJ_EO,及其对应的offset。如果该CTU最终选取EO模式,就输出这4个offset和其对应的角度即可。解码端可以根据角度和offset恢复图像。
四、 BO模式
Band offset(BO): 根据每个像素点的大小进行分类,分为32个区间,为每个区间选择一个合适的offset。分类后与EO模式的计算过程相同,确定offset初始值,遍历,找到每个区间代价函数最小的offset。
由于一个CTU中的点大多聚集在一起,因此一般选取连续的4个区间,就能涵盖几乎所有的点了。最终选出代价函数ΔJ相加起来最小的连续的4个区间。如果该CTU最终选取BO模式,就输出这4个offset和4个连续区间的起始区间位置即可。解码端可以根据起始区间位置和offset恢复图像
。
五、MERGE模式
MERGE模式分 Merge Left和Merge Up , 表示该CTU和他左面或上面那块的CTU采用同样的补偿方式和offset值;计算出代价函数后,选出代价函数最小的模式;
需要注意的是,由于直接采用附近块的SAO模式,因此编码时所需的比特数R较少,只需要编码merge信号的相关信息即可。
六、NOT APPLIED模式
Not Applied,表示该CTU不需要进行补偿;不需要补偿时,ΔD记为0,只需要计算编码所需比特数R即可。
总结
当计算完EO,BO,MERGE和NOT APPLIED的损失函数ΔJ以后,选取最小ΔJ的模式输出。
解码端接收到这些信息后,根据所选取的分类模式对图片的像素点进行分类,并加上对应的偏差值(offset),以达到减小振铃效应,更好的还原图片的目的。
参考资料
【1】CSDN博客: H.265/HEVC编码原理及其处理流程的分析
【2】.新一代高效视频编码H.265/HEVC:原理、标准与实现,作者:万帅、杨付正;
振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术相关推荐
- SAO样点自适应补偿技术实现代码详解(一)
作者:66 惯例推荐前辈的专栏: http://blog.csdn.net/HEVC_CJL/article/category/1283611/3 量化后重构的图像边缘部分会产生波纹现象,对肉眼观察到 ...
- HEVC 样点自适应补偿(SAO)原理详解
代码版本:HM-16.2+SCM-3.0rc1 时间: 2015/07/20 作者:LB SAO应用于去方块滤波之后,首先将Frame划分成若干个LCU,SAO对处于不同图像区域的LCU进行局部信息补 ...
- 块效应 振铃效应 呼吸效应
1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: 1.编码过程中对残差进行DCT变 ...
- 视频编码中的块效应、振铃效应和呼吸效应分析
1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: 1.编码过程中对残差进行DCT变 ...
- 振铃效应(ringing artifacts)
artifacts 纰漏 个人总结不一定对:图像复原中损失高频信息的话会产生振铃效应. 理想低通滤波器在频率域的形状为矩形,那么其傅立叶逆变换在时间域为sinc函数 图像处理中,对一幅图像进行滤 ...
- 几种常用的假设图像边界条件用于抑制振铃效应及实现(上)
一 介绍 传统的图像复原方法可能会给复原图像引入振铃效应,并且以边界振铃为主:产生这种现象的原因简单地来讲主要是由于模糊核的 不精确或者信息丢失. [图片来自论文<光学合成孔径系统成像性能优化与 ...
- 【Codecs系列】之视频编码中的块效应、振铃效应和呼吸效应分析
Date: 2018.5.28 1.块效应: (1)概念: 主要是由视频图像采用基于块的编码方式和量化造成相邻块之间存在明显差异的现象,在视频编码中人眼察觉到的小块边界处的不连续. (2)产生原因: ...
- 振铃效应(Ringingeffect)
振铃效应(Ringingeffect)是影响复原图像质量的众多因素之一,其典型表现是在图像灰度剧烈变化的邻域出现类吉布斯(Gibbs)分布--(满足给定约束条件且熵最大的分布)的振荡.在图像盲复原中, ...
- 21.失真/低高通/振铃效应/旁瓣泄漏效应/频域滤波/图像深度/频带/线性滤波源码分析 -- OpenCV从零开始到图像(人脸 + 物体)识别系列
本文作者:小嗷 微信公众号:aoxiaoji 吹比QQ群:736854977 简书链接:https://www.jianshu.com/u/45da1fbce7d0 本文你会找到以下问题的答案: 失真 ...
- java降噪_运动自适应降噪_Motion Adaptive Noise Reduction
运动自适应降噪_Motion Adaptive Noise Reduction 转载于:运动自适应降噪_Motion Adaptive Noise Reduction CMOS传感器在工作过程中会生成 ...
最新文章
- ios点击大头针气泡不弹出_百度地图使用(二)自定义大头针和弹出气泡
- 博客园Logo创意之我的朋友弄的
- shell管道重定向程序的实现
- 我是如何用JSP在网络上架构一个网上招标系统,以推进网站无纸化,过程电子化,管理智能化的发展
- linux下安装两个tomcat,linux安装两个tomcat-Go语言中文社区
- 优酷html5视频网站,国内主要视频网站的嵌入方式
- 关于设计模式的感悟2
- _id随机的 es_es 的数据操作
- ubuntu16.04打造vim和python3的IDE
- Matlab矩阵各行各列求和的不同方法
- 软件工程概论课后习题
- IE插件技术 BHO C# IE 插件
- 探索前沿脑科学,英特尔携手西悉尼大学共建“超级”计算机
- Linux 安装WinUSB
- 民间秘术——镇鬼送神
- 微信小程序集成腾讯IM,实现实时音视频通话,1V1聊天
- 小学生用大数据研究苏轼?多亏有程序员爸爸;冒牌 Chrome 扩展现身官方商店,众多用户中招...
- oracle判断为周一_oracle根据四位年周取当周周一的日期函数
- PHP大灌篮投篮游戏源码 微信+手机wap源码 带控制_大灌篮游戏源码
- Dell R720 安装 win2003 64位 的安装步骤以及注意事项
热门文章
- 备忘录——贝叶斯网络与贝叶斯深度网络学习思路总结
- Marvell车载以太网交换机芯片88Q5050
- 大厂“降本增效”后招聘要求,这项目经验和技术能力...,绝了
- 有幸为鲍勃大叔的封山之作《匠艺整洁之道》写了推荐序,顺手赠书!
- 怎么下载英文文献呢?
- 【Anychart】自动保存flash图片到指定目录下。
- 计算机 软考 网络工程 试题,2015年计算机软考网络工程师模拟试题及答案
- Servlet菜鸟教程
- openwrt 需要高级浏览器_树莓派 + OpenWrt 实现 BT 下载机
- 自助任务平台WQ5.5.6源码对接微信带分类信息线报赏金赚悬赏猫驴赚网版本