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)成立,负责组织新一代视频编码标准的研发和制定, ...
最新文章
- 安装与使用 Trac 来管理项目
- 自己发现的数学规律二
- margin 0 auto 什么意思
- 51nod 1623 完美消除(数位DP)
- textview 结束后释放_等待按键释放,你的代码如何写?
- linux bcc_使用bcc / BPF在Linux中分析性能的7种工具
- python装饰器记录每一个函数的执行时间
- Word打开后出现乱码
- RK3288开发板,RK3288核心板,瑞芯微RK3288主板资料
- 5G安全,5G防御,5G网络安全,5G信息安全
- 一个汽车软件测试工程师的三年工作总结
- 计算机文件丢失系统无法启动,文件损坏或丢失windows无法启动_windows无法启动文件损坏解决方法...
- [DB][mysql]下出现 java.sql.SQLException: Incorrect string value: '\xF4\x80\x8E\xAE\xE8\x83...'
- 软考高级,考网规还是考项管?
- 进阶的阿牛哥之给数据添加趋势线
- C语言“水仙花数”是一个正三位数,他的个位十位百位的立方和等于他本身
- 示例:Linux设备属性节点驱动,以及cat, echo操作
- Matlab的filtfilt函数解析与C++实现
- 硬盘分区DG分区助手看不见硬盘
- 操作系统实验四——使用命名管道实现进程通信
热门文章
- FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)
- vue 打印 某块内容成pdf
- 此更新不适用于您的计算机 kb4012212,这才是正确的全球勒索软件处置方法(含Windows补丁)...
- PostgreSQL 生成任意基数数独 - 4
- Centos7设置SSH安全策略–指定IP登陆
- 计算机网络高校校园网设计思路,网络工程设计与实现程设计高校校园网设计方案.doc...
- VGG-16网络结构解析
- 激光雷达点云的特征表达
- 基于Arduino的循迹小车
- BAT算法工程师的成长之路,超详细的学习路线