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. 给自己的Sublime Text换上Soda Theme主题后清爽了好多
  2. Linux对称NAT的UDP穿越
  3. c mysql封装 jdbc_彻底封装JDBC操作MySQL的连接。
  4. 提取Java集合的元素-Java 8方法
  5. 多个漏洞可被用于破坏劫持施耐德 PowerLogic 设备
  6. Lua开发工具(IntelliJ IDE +EmmyLua 插件 )
  7. 4g模块Linux拨号ppp脚本,在ARM-linux上实现4G模块PPP拨号上网【转】
  8. 中国石油大学远程教育《应急救援概论》第一阶段在线作业
  9. python源码剖析—— python中的字典对象
  10. 智能家居的应用研究现状
  11. Either your server has no Maven installations defined, or the requested Maven version does not exist
  12. Ipad2 使用心得
  13. コナン純黒のナイトメア20180715
  14. Java虚拟机内存模型简单介绍
  15. Holder不等式 Minkowski不等式
  16. centos7 安装 nodejs 16
  17. 关于机器学习系统设计的一些思路
  18. 生鲜配送系统有哪些功能?搭建生鲜配送系统有什么优势?
  19. 【7-2 杨辉三角】求杨辉三角的前n行数据。 输入格式: 输入n(n<10)值。 输出格式: 输出杨辉三角的前n行数据,每个数据占4列。
  20. 基于dSPACE的车轮检测装置转速与转向控制(1)

热门文章

  1. 【UE4从零开始 082】全局光照
  2. CocoaPods之Podfile\Podfile.lock
  3. c语言void调用不可作为,C语言的选择题.pdf
  4. 中南大学网络教育计算机考试答案,2015年6月中南大学网络教育课程考试《计算机组成原理》复习题及参考答案.pdf...
  5. python编写一个汽车类_python实现汽车管理系统
  6. java 中间件介绍_java中间件有哪些?java常用中间件介绍
  7. Java项目部署的完整流程
  8. 乌拉、利用python实现tree命令
  9. 访问oracle数据库语句,Oracle数据库SQL ——Select 语句使用方法
  10. 极域电子书包课堂管理系统怎么控屏_极域电子书包课堂管理系统