H.265视频编码与技术全析(下)

四.帧内预测模式

共35个(h264有9个),包括Planar,DC,33个方向模式:

除了Intra_Angular预测外,HEVC还和H.264/MPEG-4 AVC一样,支持Intra_Planar, Intra_DC预测模式;
. Intra_DC 使用参考像素的均值进行预测;
. Intra_Planar 使用四个角的参考像素得到的两个线性预测的均值;

划分模式:帧内只能使用PART_2Nx2N、PART_NxN两种

五、帧间预测

Skipped模式:无MV差异和残差信息的帧间预测模式

针对运动向量预测,H.265有两个参考表:L0和L1。每一个都拥有16个参照项,但是唯一图片的最大数量是8。H.265运动估计要比H.264更加复杂。它使用列表索引,有两个主要的预测模式:合并和高级运动向量(Merge and Advanced MV.)。

1. 运动估计准则

最小均方误差(Mean Square Error,MSE)
最小平均绝对误差(Mean Absolute Difference,MAD)
最大匹配像素数(Matching-Pixel Count,MPC)
绝对误差和(Sum Of Absolute Difference,SAD)
最小变换域绝对误差和(Sum Of Absolute Transformed Difference,SATD)

一般用SAD或者SATD。SAD不含乘除法,且便于硬件实现,因而使用最广泛。实际中,在SAD基础上还进行了别的运算来保证失真率。

2. 搜索算法

· dia 菱形

· hex (default) 六边形

· umh 可变半径六边形搜索(非对称十字六边形网络搜索)

· star 星型

· full 全搜索

全搜索: 所有可能的位置都计算两个块的匹配误差,相当于原块在搜索窗口内一个像素一个像素点的移动匹配
菱形搜索: 在x265中实际是十字搜索,仅对菱形对角线十字上的块进行搜索
HM的则是全搜索和TZSearch以及对TZSearch的优化的搜索。

3. MV预测

HEVC在预测方面提出了两种新的技术–Merge && AMVP (Advanced Motion Vector Prediction)都使用了空域和时域MV预测的思想,通过建立候选MV列表,选取性能最优的一个作为当前PU的预测MV,二者的区别:

· Merge可以看成一种编码模式,在该模式下,当前PU的MV直接由空域或时域上临近的PU预测得到,不存在MVD;而AMVP可以看成一种MV预测技术,编码器只需要对实际MV与预测MV的差值进行编码,因此是存在MVD的

· 二者候选MV列表长度不同,构建候选MV列表的方式也有所区别

Merge
当前块的运动信息可以通过相邻块的PUs运动信息推导出来,只需要传输合并索引,合并标记,不需要传输运动信息。

空间合并候选:从5个不同位置候选中选择4个合并候选

图中便是5个PU,但是标准规定最多四个,则列表按照A1–>B1–>B0–>A0–>(B2)的顺序建立,B2为替补,即当其他有一个或者多个不存在时,需要使用B2的运动信息。

时间合并候选:从2个候选中选择1个合并候选
从C3、H中选择一个:

AMVP
构造一个时空PUs的运动矢量候选列表,当前PU遍历候选列表,通过SAD选择最优预测运动矢量。

空间运动矢量候选:从5个位置中左侧、上侧分别选1个共2个候选

而AMVP的选择顺序,左侧为A0–>A1–>scaled A0–>scaledA1,其中scaled A0表示将A0的MV进行比例伸缩。
上方为B0–>B1–B2–>(scaled B0–>scaled B1–>scaled B2)。

然而,x265并不在乎标准,我们要的就是速度,所以在x265的代码中,只能看到它使用AMVP且对应的变量是

且对左侧和上侧分别if-else,选出两个。

时间运动矢量候选:从2个不同位置候选中选择1个候选

C0(右下) represents the bottom right neighbor and C1(中心) represents the center block.

Skip vs Merge:

分数像素内插:
用于产生非整数采样位置像素值的预测样本。

六、量化变换

七、其它

熵编码
目前HEVC规定只使用CABAC算术编码。

去块效应滤波器
消除反量化和反变换后由于预测误差产生的块效应,即块边缘处的像素值跳变。

自适应样点补偿
通过对重建图像进行分类,对每一类图像像素值进行加减1,从而达到减少失真,提高压缩率,减少码流的作用。

目前自适应样点补偿分为带状补偿,边缘补偿:

1. 带状补偿,按像素值强度划分为不同的等级,一共32个等级,按像素值排序,位于中间的16个等级进行补偿,将补偿信息写进码流,其余16个等级不进行补偿,减少码流。

2. 边缘补偿,选择不同的模板,确定当前像素类型,如局部最大,局部最小,或者图像边缘。

Wavefront Parallel Processing (WPP)
WPP的并行技术是以一行LCU块为单位进行的,但是不完全截断LCU行之间的关系,如下图,Thread1的第二个块的CABAC状态保存下来,用于Thread2的起始CABAC状态,依次类推进行并行编码或解码,因此行与行之间存在很大的依赖关系。通常该方法的压缩性高于tiles。

hm编码工具使用_H.265视频编码与技术全析(下)相关推荐

  1. H.265视频编码与技术全析

    一. 概述 作为新一代视频编解码格式,H.265得到越来越广泛的应用.不久之前,苹果公司在翘首期盼中发布了iPhone6,该款手机较之以往的iPhone,不仅仅只是简单地增大了屏幕,其采用了H.265 ...

  2. H.265视频编码与技术全析(下)

    H.265视频编码与技术全析(下) 四.帧内预测模式 共35个(h264有9个),包括Planar,DC,33个方向模式: 除了Intra_Angular预测外,HEVC还和H.264/MPEG-4 ...

  3. H.265视频编码与技术全析(上)

    H.265视频编码与技术全析(上) 一. 概述 作为新一代视频编解码格式,H.265得到越来越广泛的应用.不久之前,苹果公司在翘首期盼中发布了iPhone6,该款手机较之以往的iPhone,不仅仅只是 ...

  4. Linux实现ffmpeg H.265视频编码

    Linux实现ffmpeg H.265视频编码 几乎所有观看的视频,数字地面电视,电缆,卫星或互联网上的压缩.原始的,未压缩的视频太大,会浪费太多的带宽.在DVD和Blu-ray之前,有视频CD(VC ...

  5. android直播视频编码,Android手机直播之视频编码技术

    今天我们继续给大家讲解Android手机直播流程中的编码技术,编码过程分为视频和音频解码,这篇文字先介绍视频编码的技术.图玩智能为企业提供直播平台的二次开发服务,为大家搭建更加完善的直播系统,欢迎随时 ...

  6. hm编码工具使用_HM中字典编码分析

    LZ77算法基本过程http://jpkc.zust.edu.cn/2007/dmt/course/MMT03_05_2.htm 输入待字典编码的CU, CopyCuFromPicYuv444(pcP ...

  7. 高效视频编码 (HEVC) -H.265(结构解析)

    版本 HEVC (H.265) 规范的第一个版本于 2013 年 4 月发布.该标准的版本如下: ITU-T H.265 (V1) (04/2013) http://handle.itu.int/11 ...

  8. 视频编码(3):H.266 编码性能比 H.265 再提升 49% 的关键丨音视频基础

    ​ 我们在前文视频编码(2):H.265 如何比 H.264 提升 40% 编码效率丨音视频基础_音视频开发老马的博客-CSDN博客中探讨了 H.264 视频编码的基本概念.编码工具.编码流程及码流结 ...

  9. FFmpeg入门详解之20:视频编码原理简介

    视频为何需要压缩? 原因:未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频. ● 传输困难 ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟. 主要压缩了什么东西 ...

最新文章

  1. mysql 存储过程 invoker invoker
  2. 关于PostgreSQL的GiST索引之四
  3. 转载:thread的六种状态
  4. python对json的操作总结
  5. 大数据中,机器学习和数据挖掘的联系与区别
  6. JavaScript得到鼠标指针相对于浏览器页面(或客户区)的水平坐标(兼容ie,ff)...
  7. TextView的跑马灯效果(AS开发实战第二章学习笔记)
  8. 数据结构 创建顺序栈
  9. mysql replace into语句学习
  10. org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir异常解决方法...
  11. ODOO从哪里开始??OpenERP的第一根线头儿
  12. LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法
  13. SVM中对偶、凸优化与KTT条件问题
  14. 字符串练习:手机号码屏蔽,身份证号码信息查看,游戏骂人敏感词替换
  15. 【通信系统仿真系列】基于Matlab的汉明码(Hamming Code)纠错传输以及交织编码(Interleaved coding)仿真
  16. Android实现按住缩小 松开放大的效果
  17. CentOs解决下载速度慢 更换下载源
  18. CISCO 3750交换机堆叠
  19. 有关酸雨,最近淋雨易得皮肤病!!!!!!!!!!!!!!!
  20. 软件工程概述,软件工程的基本原理是什么?

热门文章

  1. 临近年关,发生两起磁盘占满引发的服务下线故障
  2. 评估服务基础性能应该参考那些指标?
  3. 高并发项目Java是标配?.NET Core要将它拉下“神坛”!
  4. 用.NetCore 编译国产老牌PHP论坛DiscuzX ,世界上最好的语言从此属于.Net 的一员
  5. 博客系统知多少:揭秘那些不为人知的学问(二)
  6. 15分钟从零开始搭建支持10w+用户的生产环境(四)
  7. ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记
  8. Kubernetes AIOps解决方案商 Carbon Relay获6300万美元A轮融资
  9. abp vnext2.0核心组件之DDD组件之实体结构源码解析
  10. .NET Core IdentityServer4实战 第Ⅴ章-单点登录