HEVC标准中的SAO以CTB为基本单位,这里的CTB是亮度和色度的结合体,通过选择一个合适的分类器将重建像素划分类别,然后对不同类别像素使用不同的补偿值。SAO包括两大类补偿形式,分别为边界补偿 edge offset EO 和边带补偿 Band offset BO。

SAO技术

1.边界补偿 EO

EO通过比较当前像素和相邻像素之间的大小关系对重建像素进行分类,然后对每一类的像素补偿相同数值。HEVC中EO选择了一维三像素分类模式。一维指的应该是同一图像,三像素为使用两个参考像素对当前像素进行分类;

EO的四种模式只是选取参考像素的不同,后续的分类方法上并无区别,但是对分类的结果是有影响的,如何选择模式?那么就是采用率失真的方法。

若不属于上图4种情况,那么当前像素归类为种类0。EO对种类1~4的重建像素进行补充,对种类0的重建像素不进行补偿。不同种的像素的offset可能不同,但同种像素的offset必定一样。

2.边带补偿 BO

BO根据像素强度值进行分类,BO将像素范围等分成32条边带。例如对bitdepth == 8的像素值,像素值大小为0~255,每条边带则包含8个像素值。然后则根据边带进行offset,即同一边带用一个offset值。

不仅如此,HEVC规定一个CTB只能用四条连续的边带,属于4条内的边带按边带进行补偿,不属于4条边带内的像素则不进行像素补偿。如何选择合适的边带,则用万金油率失真确定,传的时候只用传最小边带号和4个补偿值给解码端。

3.SAO参数融合

参数融合Merge是指对于一个CTB块,其SAO参数也就是补偿的各种参数直接使用相邻块的SAO参数,且只使用左侧和上侧相邻CTB块的SAO参数。

或者不使用参数融合的方法,按照自己的像素特点产生SAO参数。

SAO的实现方法

1.快速SAO模式识别

快速SAO模式识别则是针对BO和EO的,EO有4个模式,BO则要选择最好的四条边带,Merge则是要选择合适的参考CTB或者是非Merge,但如何选择模式以率失真代价为准:

2.SAO在HM10.0中的实现过程

SAO过程的重点是利用率失真代价选择最优的SAO参数。

在HM中的流程如下:

(1)信息统计

(2)亮度CTB的SAO模式

首先分别尝试EO和BO,然后再选择出最优的m值(offset),然后再以最优m值计算率失真代价。

还要计算不补偿模式的率失真代价,以及left和upmerge下的率失真代价。

(3)色度CTB的SAO模式

两个色度块共用相同的划分模式,其余步骤与亮度相同。

(4)CTU的最优SAO模式

CTB有亮度CTB和色度CTB,选择最优SAO模式时先划分为merge和非merge,merge则有up和left的率失真代价,非merge则包括BO和EO。

(5)CTU的SAO滤波

采用最优的SAO参数对CTU进行滤波。

(6)EO模式

如上文所述,EO模式下有两个参数要进行选择,首先进行模式选择(EO_0,EO_1,EO_2,EO_3),在每个模式下,又要对该模式的4个补偿值(m0_1,m0_2,mo_3,mo3_4,第0类像素不用补偿)进行选择。

(m0_1)''代表的是初始补偿值,n0_1代表的是EO_0模式下的属于种类1的像素个数,E则为插值和,然后根据算出的初始补偿值再进一步进行计算,特别注意的是:种类1和种类2的补偿值必须大于等于0,若算出来的m<0,则令m=0;种类3和种类4的补偿值必须小于等于0,同理。

(7)BO模式

BO模式的确定过程:先选择出0~31条边带的最优m值,再根据率失真代价选择出连续的四条band

可以看到,BO的最优m的取定和EO的十分相似,也就是少了一个种类正负的限定。

这里的m4,0 应该表示的是选择四条边带,当前边带为第零条,也就是第零条的m。

在HM10.0中是以一个Slice进行SAO的,先将该Slice的所有CTU进行参数统计,再计算SAO参数,然后进行补偿。

HEVC SAO技术阅读相关推荐

  1. HEVC编码技术简介

    HEVC视频编码框架 HEVC编码框架与H.26X标准的编码框架类似,均采用基于块的混合模型. 图1 HEVC编码框架 如上图所示,HEVC编码器的工作过程为: 1.首先,视频编码器将输入视频图像划分 ...

  2. MCS-51单片机原理与接口技术--阅读笔记(原创)

             MCS-51单片机原理与接口技术--阅读笔记(原创) 由  王宇 原创并发布 : 第1章 单片机概述 MSC-51美国Intel公司 第2章 基本机构 制造工艺为HMOS MSC-5 ...

  3. [读书笔记]日本蜡烛图技术 阅读笔记

    阅读心得: 全书总共270页,但是字体较大,行间距较大,读起来还算是轻松,而且每一个章节就有练习题,确实是比较有趣的书.读完以后,对于技术面有一个基本的认识,还待股市里面继续摸爬滚打了. 第一篇:蜡烛 ...

  4. html5、canvas核型技术阅读(1)

    1.1 标签设置width与height属性同时设置了绘制大小与元素大小: 实用css约束canvas标签,则约束了元素大小,若绘图大小与元素大小不一致,则会发生拉伸或者缩放,使得绘图大小满足元素大小 ...

  5. HEVC算法和体系结构:环路滤波技术

    环路滤波(In-Loop Filtering)技术 类似于以往的视频编码标准,HEVC仍采用基于块的混合编码框架,一些失真效应仍然存在,如方块效应.振铃效应.颜色偏差以及图像模糊等等.为了解决这些问题 ...

  6. HEVC视频编码技术

    HEVC视频编码框架 HEVC编码框架与H.26X标准的编码框架类似,均采用基于块的混合模型. 图1 HEVC编码框架 如上图所示,HEVC编码器的工作过程为: 1.首先,视频编码器将输入视频图像划分 ...

  7. RTP Payload Format for High Efficiency Video Coding (HEVC)

    版权申明:未经允许请勿转载.转载前请先联系作者(hello@yeshen.org) This memo describes an RTP payload format for the video co ...

  8. 视频编码第一节:H.265/HEVC原理——入门

    写在开头:         最近工作原因接触了视频编码方面的技术,觉得有必要对经典的H.265/HEVC视频编码技术了解学习,开这个版块的博客目的一方面作为学习笔记,另一方面希望能多和大家一起沟通交流 ...

  9. 笔记:新一代高效视频编码H.265/HEVC原理、标准与实现

    第一章绪论 3个色彩基本分量,或亮度和色度分量. 每秒播放的帧的数目叫做帧率,单位fps.为了使人眼能够有平滑连续的感受,视频的帧率需要达到25~30 fps以上. H.265/HEVC几乎在每个模块 ...

  10. H.265/HEVC简介

    2010年1月,由VCEG和MPEG组建的视频编码联合组(Joint Collaborative Team on Video Coding,JCT-VC)成立,负责组织新一代视频编码标准的研发和制定, ...

最新文章

  1. 安装与使用 Trac 来管理项目
  2. 自己发现的数学规律二
  3. margin 0 auto 什么意思
  4. 51nod 1623 完美消除(数位DP)
  5. textview 结束后释放_等待按键释放,你的代码如何写?
  6. linux bcc_使用bcc / BPF在Linux中分析性能的7种工具
  7. python装饰器记录每一个函数的执行时间
  8. Word打开后出现乱码
  9. RK3288开发板,RK3288核心板,瑞芯微RK3288主板资料
  10. 5G安全,5G防御,5G网络安全,5G信息安全
  11. 一个汽车软件测试工程师的三年工作总结
  12. 计算机文件丢失系统无法启动,文件损坏或丢失windows无法启动_windows无法启动文件损坏解决方法...
  13. [DB][mysql]下出现 java.sql.SQLException: Incorrect string value: '\xF4\x80\x8E\xAE\xE8\x83...'
  14. 软考高级,考网规还是考项管?
  15. 进阶的阿牛哥之给数据添加趋势线
  16. C语言“水仙花数”是一个正三位数,他的个位十位百位的立方和等于他本身
  17. 示例:Linux设备属性节点驱动,以及cat, echo操作
  18. Matlab的filtfilt函数解析与C++实现
  19. 硬盘分区DG分区助手看不见硬盘
  20. 操作系统实验四——使用命名管道实现进程通信

热门文章

  1. FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)
  2. vue 打印 某块内容成pdf
  3. 此更新不适用于您的计算机 kb4012212,这才是正确的全球勒索软件处置方法(含Windows补丁)...
  4. PostgreSQL 生成任意基数数独 - 4
  5. Centos7设置SSH安全策略–指定IP登陆
  6. 计算机网络高校校园网设计思路,网络工程设计与实现程设计高校校园网设计方案.doc...
  7. VGG-16网络结构解析
  8. 激光雷达点云的特征表达
  9. 基于Arduino的循迹小车
  10. BAT算法工程师的成长之路,超详细的学习路线