HEVC混合编码方法引入的亮点

2024-04-07 07:18

本文主要是介绍HEVC混合编码方法引入的亮点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HEVC混合编码方法引入的亮点:(翻译能力有限,不当之处,欢迎指正,谢谢)

1)             编码树单元(CTU,coding tree units)和编码树块(CTB,coding tree block)结构

以前标准编码层的核心是宏块,通常是4:2:0格式,包含一个16x16亮度采样块和两个相应的8x8色度采样块。然而,HEVC中类似的结构是CTU,它的大小由编码器决定,并且它可以比传统的宏块要大。一个CTU由一个亮度CTB(CTB, coding tree block),相应的两个色度CTBs和语法元素组成。一个LxL大小的亮度CTU可以是L=16,32,或者64采样;一般而言,大的CTU有利于提高压缩性能。HEVC支持CTBs通过树结构分割成更小的块和像四叉树的信号。

2)             编码单元(CU,coding units)和编码块(CB, coding block

CTU的四叉树语言结构指定了它亮度和色度CTBs的大小和位置。

四叉树的根部在CTU。因此,一个亮度CB最大为一个CTB。一个CTU分割成多个亮度和色度CTBs有分割信号控制。一个CU由一个亮度CB,两个相应的色度CBs和语法元素组成。一个CTB可能只含有一个CU,或者分割成多个CUs,并且每个CU有一个相应的分割的多个预测单元(PUs, prediction units)和一个树变换单元(TUs, transform units)。

3)             预测单元(PUs,prediction units)和预测块(PBs,prediction blocks)

在CU级决定一个编码一个图像区域用帧间预测还是帧内预测。一个PU分割结构的根部在CU级。依据基本的预测类型选择,亮度和色度的CBs可以进一步分割大小,这些分割子块通过亮度和色度PBs进行预测。HEVC支持的PB大小从64x64到4x4。

4)             变换单元(TUs,transform units)和变换块(TBs, transform blocks)

预测残差通过块变换进行编码。一个TU树结构的根部在CU级。亮度CB残差可能和亮度变换块TB一样,或者进一步分割成多个亮度TBs。色度TBs也是一样的。定义了一个类似离散余弦变换(DCT, discrete cosine transform)的整数基函数用于正方形TB块,如4x4,8x8,16x16和32x32。对于4x4的亮度帧内预测残差块,定义了一个源于离散正弦变换(DST, discrete sine transform)的整数变换。

5)             运动矢量信号

使用了一个先进的运动矢量预测(AMVP, advanced motion vector prediction),它包含基于相邻PBs和参考帧数据的最可能候选模式。同时,使用一个针对MV编码的融合模式,它允许从时域或空域相邻PBs继承MVs。而且,和H.264/MPEG-4AVC相比,还定义了改善的skip的和直接运动推断。

6)             运动补偿(MC,motion compensation

MVs采用1/4采样精度,7抽头和8抽头的滤波器用于分数采样内插。(和H.264/MPEG-4 AVC相比,H.264/MPEG-4 AVC采用6抽头滤波器用于1/2像素位置采样,然后通过线性内插的1/4位置采样)。和H.264/MPEG-4AVC相似,HEVC采用了多参考帧。对于每一个PB,传输一个或者两个运动矢量,将相应导致单向预测或者双向预测编码。像H.264/MPEG-4 AVC一样,HEVC采用一个扩充和偏移操作来实现权重预测。

7)             帧内预测(Intrapictureprediction

在帧间预测不能实现的图像区域,相邻块的已编码边界采样点用作空域预测的参考数据。帧内预测支持33种方向模式(H.264/MPEG-4AVC支持8种这样模式),一种平面模式和一种DC预测模式。选择的帧内预测模式通过基于之前相邻以解码的PBs的最可能模式(MPM,most probable prediction modes)之一进行编码。

8)             量化控制

和H.264/MPEG-4AVC中一样,HEVC采用一种统一的重建量化机制,同时针对不同大小的TB伸缩量化矩阵。

9)             熵编码

HEVC采用基于内容自适应的二进制算术编码(CABAC, context adaptive binary arithmeticcoding)进行熵编码。这个和H.264/MPEG-4 AVC中的CABAC很相似,但是做了一些改进以提高它的处理速度和压缩性能,并减少它的内容内存存储要求。

10)         内部环路去块滤波器

HEVC在帧间预测循环中,采用一个类似H.264/MPEG-4 AVC用的去块滤波器。然而,这种滤波器针对决策机制和滤波处理过程设计的简单些,并且能很好的用于并行处理之中。

11)         采样自适应偏移(SAO,sample adaptive offset

HEVC在帧间预测循环的去块滤波后,引入了一个非线性的幅度映射。它的目的是用查表的方法更好的重建原来信号的幅度。这个查表同个一些在编码端通过直方图分析获得的额外参数进行设置。(注:转载请注明出处,谢谢)

这篇关于HEVC混合编码方法引入的亮点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881967

相关文章

hevc和H.264格式的区别

HEVC(High Efficiency Video Coding)和H.264(也称为Advanced Video Coding,AVC)都是视频压缩标准,但它们之间存在一些显著的区别,主要集中在压缩效率、资源需求和兼容性方面。 压缩效率 HEVC,也被称为H.265,提供了比H.264更高的压缩效率。这意味着在相同的视频质量下,HEVC能够以大约一半的比特率进行编码,从而减少存储空间需求和

【Unity Shader】Alpha Blend(Alpha混合)的概念及其使用示例

在Unity和图形编程中,Alpha Blend(也称为Alpha混合)是一种用于处理像素透明度的技术。它允许像素与背景像素融合,从而实现透明或半透明的效果。Alpha Blend在渲染具有透明度的物体(如窗户、玻璃、水、雾等)时非常重要。 Alpha Blend的概念: Alpha值:Alpha值是一个介于0(完全透明)和1(完全不透明)的数值,用于表示像素的透明度。混合模式:Alpha B

混合密码系统解析

1. 概述         混合密码系统(hybrid cryptosystem)是将对称密码和非对称密码的优势相结合的方法。一般情况下,将两种不同的方式相结合的做法就称为混合(hybrid)。用混合动力汽车来类比的话,就相当于是一种将发动机(对称密码)和电动机(非对称密码)相结合的系统。         混合密码系统中会先用快速的对称密码来对消息进行加密,这样消息就被转换为了密文从而也就保证

JS在页面中的引入方式

注意 JS引入时的一个小问题: JS引入的是JS文件时,此标签之间的无效,既想插入文件又想嵌入写法,则必须另起一个标签。 重定向 action是指定提交到哪里

「BioNano系列」光学图谱混合组装应该怎么做?

评估从头组装结果 Bionano从头组装出光学图谱CMAP可以和参考序列的CMAP进行比对,通过Access上可视化检查参考基因组的组装质量,比较两者间的不同。 这里所用的CMAP图谱来自于一篇发表在NC的拟南芥的基因组文章(原本计划用他们的bnx文件介绍从头组装,但是通讯作者根本不搭理我), 光学图谱的下载方式为: wget https://submit.ncbi.nlm.nih.gov

PHP的最新版本是什么?它引入了哪些新特性?

PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言,主要用于服务器端编程。它在服务器上执行,能够生成动态页面内容、处理表单数据、发送和接收Cookies、操作数据库等。PHP语法借鉴了C语言,并吸纳了Java和Perl的特色,发展出自己的独特语法。 此外,PHP也是一种弱类型语言,从PHP 7开始增加了类型提示功能,使得代码更

SpringBoot-注解@ImportResource引入自定义spring的配置xml文件和配置类

1、注解@ImportResource 我们知道Spring的配置文件是可以有很多个的,我们在web.xml中如下配置就可以引入它们: SprongBoot默认已经给我们配置好了Spring,它的内部相当于已经有一个配置文件,那么我们想要添加新的配置文件怎么办? 注解@ImportResource就在干这个的: ① 创建一个新的spring配置文件 ② 程序口入,主类上加注解

ios中得到中英文混合字符串长度

//得到中英文混合字符串长度 方法1(按照英文字符个数统计)- (int)convertToInt:(NSString*)strtemp{int strlength = 0;char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];for (int i=0 ; i<[strtemp lengthOfBytes

【报错解决】引入@ComponentScan注解注册bean容器后,导致的接口404问题

引入@ComponentScan注解注册bean容器后,导致的接口404问题 背景 由于微服务开发中,经常需要在公共模块在引入一些公共模块,供其他服务使用,但是其他服务需要在启动类中配置@ComponentScan注解扫描这个公共模块下注册的 bean,但是,如果我们配置了@ComponentScan并且扫描了公共模块下的 bean,那么将会破坏@ComponentScan默认扫描的包,也就是

记VS2010与MATLAB混合编程遇到的一些问题

一、首先使用的是win7 ×64系统 VS2010软件和MATLAB2014b         问题:MATLAB2014b进行打包时,总是打包失败。         原因:我使用的这个MATLAB版本破解不完全,可以进一步破解然后尝试。 二、重新安装了MATLAB2015a是个破解完全的 打包的问题成功解决了。写了小的测试代码,但是在使用打包的类创建对象时,显示如下错误