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。

H.265视频编码与技术全析(下)的更多相关文章

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

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

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

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

  3. 深度解析 H.265 视频解决方案

    又拍云上线了 H.265 从编码解码到 CDN 分发,完整的端到端的自适应解决方案:提供视频上传.视频存储.视频编码.视频分发适配.视频解码等功能.又拍云希望能以云服务的方式将大公司才能长期支付使用的 ...

  4. 【图像处理】DVR H.264视频编码基本知识

    视频编码技术基本是由ISO/IEC制定的MPEG-x和ITU-T制定的H.26x两大系列视频编码国际标准的推出.从H.261视频编码建议,到 H.262/3.MPEG-1/2/4等都有一个共同的不断追 ...

  5. H.264与H.265视频压缩编码参考码率

  6. 【省带宽、压成本专题】深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因

    过去几年,又拍云一直在点播.直播等视频应用方面潜心钻研,取得了不俗的成果.我们结合点播.直播.短视频等业务中的用户场景,推出了"省带宽.压成本"系列文章,从编码技术.网络架构等角度 ...

  7. 深入解析 H.265 编码模式,带你了解Apple全面推进H.265的原因

    今天我们聊聊视频编码.视频文件亘古以来存在一个矛盾:高清画质和视频体积的冲突,相同编码标准下,视频更高清,视频体积更大.因此,应用更先进的视频编码标准,降低视频体积,可以大幅降低网站的流量消耗. 目前 ...

  8. 【miscellaneous】最新HEVC/H.265 4K视频,显卡解码测试

    转载自:http://bbs.zol.com.cn/diybbs/d34441_76103.html 4K这个概念也在最近几年开始流行了起来,无论是4K显示器.4K电视盒子,还是4K游戏对硬件的要求也 ...

  9. 视频直播技术-视频-编码-传输-秒开等<转>

    转载地址:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547042&idx=1&sn=26d8728548 ...

随机推荐

  1. 4.1-web前端性能测试基础概述

    网站性能概述 1.网站架构通常分为前端和后台. 2.后台是实现网站功能的,比如:实现用户注册,用户能够为文章发表评论等等. 3.前端属于功能的表现,并且影响用户访问体验的绝大部分来自己前端页面. 4. ...

  2. 04- cookie与缓存技术

    什么是cookie 定义:Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一 ...

  3. 什么是响应式web设计

    什么是响应式web设计 现在开发一个产品,基本上都会需要兼顾 PC端和 移动端. 一般有两种思路: 1.为每个终端做一个特定的版本,并给2级域名,根据终端环境调用不同的版本代码. 2.一个网站能够兼容 ...

  4. Python中的时间日期模块(time、datetime)

    目录 Datetime 获取当前时间 获取当前日期 获取当前时间的tuple元组 格式化日期和时间 时间移动 获取两个时间的时间差 时间格式转换 Time 获取距元年(1970.1.1)的秒数 当时时 ...

  5. Windows PE资源表编程(枚举资源树)

    资源枚举 写一个例子,枚举一个PE文件的资源表.首先说下资源相关的作为铺垫. 1.资源类型也是PE可选头中数据目录的一种.位于第三个类型. 2.资源目录分为三层.第四层是描述文件相关的.这些结构是按照 ...

  6. Day007 计算器

    计算器 public static void main(String[] args) { double[] num={0,1}; String oprater="a"; doubl ...

  7. Web端直传数据至OSS

    官方文档 最佳实践 小程序直传实践 支付宝小程序直传实践 微信小程序直传实践 Web端PostObject直传实践 Web端PostObject直传实践简介 JavaScript客户端签名直传 服务端 ...

  8. PHP 通用格式化调试函数

    /** * 打印调试函数 * @param $content * @param $is_die */function pre($content, $is_die = true){ header('Co ...

  9. 教你用SQL实现统计排名

    前言: 在某些应用场景中,我们经常会遇到一些排名的问题,比如按成绩或年龄排名.排名也有多种排名方式,如直接排名.分组排名,排名有间隔或排名无间隔等等,这篇文章将总结几种MySQL中常见的排名问题. 创 ...

  10. matlab添加当前路径下的所有子目录

    % 添加当前路径下的所有子目录addpath(genpath(pwd));