HEVC SAO技术阅读
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技术阅读相关推荐
- HEVC编码技术简介
HEVC视频编码框架 HEVC编码框架与H.26X标准的编码框架类似,均采用基于块的混合模型. 图1 HEVC编码框架 如上图所示,HEVC编码器的工作过程为: 1.首先,视频编码器将输入视频图像划分 ...
- MCS-51单片机原理与接口技术--阅读笔记(原创)
MCS-51单片机原理与接口技术--阅读笔记(原创) 由 王宇 原创并发布 : 第1章 单片机概述 MSC-51美国Intel公司 第2章 基本机构 制造工艺为HMOS MSC-5 ...
- [读书笔记]日本蜡烛图技术 阅读笔记
阅读心得: 全书总共270页,但是字体较大,行间距较大,读起来还算是轻松,而且每一个章节就有练习题,确实是比较有趣的书.读完以后,对于技术面有一个基本的认识,还待股市里面继续摸爬滚打了. 第一篇:蜡烛 ...
- html5、canvas核型技术阅读(1)
1.1 标签设置width与height属性同时设置了绘制大小与元素大小: 实用css约束canvas标签,则约束了元素大小,若绘图大小与元素大小不一致,则会发生拉伸或者缩放,使得绘图大小满足元素大小 ...
- HEVC算法和体系结构:环路滤波技术
环路滤波(In-Loop Filtering)技术 类似于以往的视频编码标准,HEVC仍采用基于块的混合编码框架,一些失真效应仍然存在,如方块效应.振铃效应.颜色偏差以及图像模糊等等.为了解决这些问题 ...
- HEVC视频编码技术
HEVC视频编码框架 HEVC编码框架与H.26X标准的编码框架类似,均采用基于块的混合模型. 图1 HEVC编码框架 如上图所示,HEVC编码器的工作过程为: 1.首先,视频编码器将输入视频图像划分 ...
- RTP Payload Format for High Efficiency Video Coding (HEVC)
版权申明:未经允许请勿转载.转载前请先联系作者(hello@yeshen.org) This memo describes an RTP payload format for the video co ...
- 视频编码第一节:H.265/HEVC原理——入门
写在开头: 最近工作原因接触了视频编码方面的技术,觉得有必要对经典的H.265/HEVC视频编码技术了解学习,开这个版块的博客目的一方面作为学习笔记,另一方面希望能多和大家一起沟通交流 ...
- 笔记:新一代高效视频编码H.265/HEVC原理、标准与实现
第一章绪论 3个色彩基本分量,或亮度和色度分量. 每秒播放的帧的数目叫做帧率,单位fps.为了使人眼能够有平滑连续的感受,视频的帧率需要达到25~30 fps以上. H.265/HEVC几乎在每个模块 ...
- H.265/HEVC简介
2010年1月,由VCEG和MPEG组建的视频编码联合组(Joint Collaborative Team on Video Coding,JCT-VC)成立,负责组织新一代视频编码标准的研发和制定, ...
最新文章
- 给自己的Sublime Text换上Soda Theme主题后清爽了好多
- Linux对称NAT的UDP穿越
- c mysql封装 jdbc_彻底封装JDBC操作MySQL的连接。
- 提取Java集合的元素-Java 8方法
- 多个漏洞可被用于破坏劫持施耐德 PowerLogic 设备
- Lua开发工具(IntelliJ IDE +EmmyLua 插件 )
- 4g模块Linux拨号ppp脚本,在ARM-linux上实现4G模块PPP拨号上网【转】
- 中国石油大学远程教育《应急救援概论》第一阶段在线作业
- python源码剖析—— python中的字典对象
- 智能家居的应用研究现状
- Either your server has no Maven installations defined, or the requested Maven version does not exist
- Ipad2 使用心得
- コナン純黒のナイトメア20180715
- Java虚拟机内存模型简单介绍
- Holder不等式 Minkowski不等式
- centos7 安装 nodejs 16
- 关于机器学习系统设计的一些思路
- 生鲜配送系统有哪些功能?搭建生鲜配送系统有什么优势?
- 【7-2 杨辉三角】求杨辉三角的前n行数据。 输入格式: 输入n(n<10)值。 输出格式: 输出杨辉三角的前n行数据,每个数据占4列。
- 基于dSPACE的车轮检测装置转速与转向控制(1)
热门文章
- 【UE4从零开始 082】全局光照
- CocoaPods之Podfile\Podfile.lock
- c语言void调用不可作为,C语言的选择题.pdf
- 中南大学网络教育计算机考试答案,2015年6月中南大学网络教育课程考试《计算机组成原理》复习题及参考答案.pdf...
- python编写一个汽车类_python实现汽车管理系统
- java 中间件介绍_java中间件有哪些?java常用中间件介绍
- Java项目部署的完整流程
- 乌拉、利用python实现tree命令
- 访问oracle数据库语句,Oracle数据库SQL ——Select 语句使用方法
- 极域电子书包课堂管理系统怎么控屏_极域电子书包课堂管理系统