news 2026/9/12 1:02:57

Linux_13:H265

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux_13:H265

1.H265的优势和特点

H265编码(也称之为HEVC编码-High Efficiency Video Coding ),它是继H264之后所制定的一个全新的视频编码标准。H265保留了许多H264的技术,并在H264的基础上使用了全新的技术来改善编码质量和画面质量。H265的优势在于超高的压缩比(压缩比高达1:200)编码超高清的分辨率,如:4K分辨率(3840 * 2160)、8K分辨率(7680 * 4320),一般只有在编码超高清分辨率的时候才会用到H265编码,普通的分辨率如:1920 * 1080以下的分辨率只需要H264即可(这是由于H265虽然压缩比非常高,但是它的算法复杂程度也远超H264,对于一般播放器来说CPU运算也过于复杂)。

1.H265的帧内预测

1.宏块

H265的帧内预测比H264更加灵活,H264帧内预测只支持16 * 16的宏块。但是H265能够支持支持多种尺寸的宏块预测,包括4 * 48 * 816 * 1632 * 32多种宏块的预测。

H264视频文件处理的宏块基本上都是固定16 * 16。而H265视频文件处理的宏块范围就比较广了,从4 * 4到32 * 32的宏块都可以进行编码。那么宏块广泛的好处就是H265编码的细节就会更加清晰,对绝大部分物体都可以进行清晰编码,这一点比H264编码要强。

2.预测模式

除了多种尺寸的宏块预测外,HEVC总共还提供了35种预测模式,对比H264的9种帧内预测模式。H265 的帧内预测模式是H264的4倍以上。

  1. 0:Planner模式,它主要适用于像素变化缓慢区域,它和其他模式相比能够动态调节视频质量
  2. 1:DC 模式,主要适用于大面积平坦区域
  3. 2-34就是33种角度预测,这33种角度模式,相当于33个角度向量的预测。

2.H265的帧间预测

1.划分方式

在HEVC中,帧间预测单元PU总共有8种划分方式,包括4种对称方式:2Nx2N、2NxN、Nx2N、NxN和4种非对称模式:2NxnN、2NxnD、nLx2N、nRx2N。PU指的是帧间预测的基本单元,每个单元通过帧间预测获得一组运动数据。

2.预测模式

HEVC定义了两种帧间预测模式:分别是帧间模式(inter mode)、合并模式(merge mode)。

1.Merge模式:

Merge模式会为当前预测单元建立一个MV候选表,在列表中存在着5个候选MV。通过遍历5个候选MV,同时进行失真率计算,最终选择失真率最低的MV作为最优的MV。假设编/解码依旧相同的候选表,编码器只需要传输最优MV索引,这样就可以大幅度节省运动信息传输数。(MV指的是运动向量)

在空域领域最多提供4个候选MV,最多使用5个候选中的4个候选块的运动信息,如列表所示按照A1-B1-B0-A0的顺序建立起来。这其中B2属于替补位置,当A1、B1、B0、A0中只有一个或者多个不存在的时候,此时就需要用到B2。下面我们来看看,时域候选列表的建立过程,它的过程如下:利用当前PU在邻近已编码图像中找到对应的PU位置的运动信息,相比于空域,时域候选表不能直接使用候选块的信息,它是需要根据参考图像位置来做对应的比例伸缩调整。

curr_PU表示的是当前PU(预测单元)、col_PU表示的是同位PU, td和tb分别表示图像cur_pic、同位col_pic与二者参与图像cur_ref、col_ref之间的距离,当前的PU时域候选

MV计算公式为:curPU = (td/tb)*colPU;

Inter模式:

Inter模式也称之为AMVP模式(高级运动向量预测-Adaptive Motion Vector Prediction ),它是利用空域、时域上运动变量的相关性,并且为当前PU建立了候选的预测MV列表。HEVC编码器会从中选出最优的预测MV。HEVC编码器从中选择最优质的预测MV,并对MV进行编码。下面我们来看看inter模式如何计算当前PU

从上面这张图我们可以看出,inter处理过程是从空域MV列表5个里面选择2个,时域MV列表2个选择1个,紧接着去除重复的MV,然后填补零矢量(填补0,0),保留候选列表中前2个MV,最后选择出最优MV。

注意:这里要科普两个东西分别是空域和时域

空域:指的是像素域,换言之空域处理就是在像素级别进行处理,比方说像素叠加等等。

时域:自变量是时间,换言之横轴是时间,纵轴是信号的变化。

2.H265重点帧类型的讲解

在H265中,绝大部分的结构都和H264是一样,但是H265码流增加了一个NALU结构,那就是VPS。VPS的主要作用是对传输的视频进行分级,视频分级的最主要作用是有利于兼容标准在多视点视频的扩展,下面是一个经典H265的NALU结构

VPS视频参数集(NALU:00 00 00 01 40 01),VPS主要用于传输视频的分级信息,它用于兼容可分级视频编码和多视点的扩展。H265中加入该结构主要目的是兼容标准在系统多字方面的扩展。

可分级编码主要解决的是根据网络情况的好坏来判断传输什么类型的数据,比方说在弱网环境下可分级编码可以使得视频数据只保留基本的信息进行传输,并实时根据网络的情况动态来决定是否传输增强的视频信息从而使得图像质量得以提升。

SPS:全称是序列参数集(它的NALU是00 00 00 01 67),它保存了一组编码视频序列的全局参数。

PPS:除了序列参数集SPS之外,H264还有另外一个重要的参数集合Picture Parameter Set图像参 数集合(PPS,它的NALU是它的NALU是00 00 00 01 68)

SEI:是一种用于视频流传输中的额外附加信息(它在传输的时候可有可无),SEI是H264标准的一部 分。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 23:37:47

Ranatachykinin A ;KPSPDRFYGLM-NH₂

一、基础信息英文名称:Ranatachykinin A三字母序列:Lys-Pro-Ser-Pro-Asp-Arg-Phe-Tyr-Gly-Leu-Met-NH₂单字母序列:KPSPDRFYGLM-NH₂CAS 号:135690-47-0精确分子量:1309.55 Da分子式:C60H92N16O15S等电点&a…

作者头像 李华
网站建设 2026/9/3 2:15:58

一款悄然崛起的国产规则引擎,让业务编排效率提升 10 倍!

大家好,我是 Guide。今天来推荐一款非常优秀的国产规则引擎,说不定你曾经就用过。下面是正文。 你有没有接过那种祖传代码?一个几千行的 if-else 堡垒,改一行逻辑,要测半天。更糟的是,业务方今天说要"…

作者头像 李华
网站建设 2026/9/2 19:45:41

ESXi 虚拟化详解

ESXi 虚拟化详解 ESXi 是 VMware 推出的企业级 Type-1(裸金属)虚拟化管理程序(Hypervisor),直接安装在物理服务器上,不依赖底层通用操作系统。它通过 VMkernel 对 CPU、内存、存储、网络等资源进行调度与管…

作者头像 李华
网站建设 2026/9/7 3:21:20

C++之纯虚函数和抽象类

文章目录纯虚函数抽象类纯虚函数 如果一个虚函数仅表达抽象的行为,没有具体的功能,即只有声明没有定义,这样的虚函数被称为纯虚函数或抽象方法 class 类名 { public:virtual 返回类型 函数名 (形参表) 0; };假设有图形类Figure, 设计计算面…

作者头像 李华
网站建设 2026/9/8 7:05:34

方盾防毒口罩:化工喷漆作业的呼吸安全保障

在化工喷漆作业现场,刺鼻气味常常弥漫于空气中。许多作业人员误以为“习惯就好”,从而忽视了佩戴防毒口罩的重要性。殊不知,这些看似平常的喷漆烟雾中,隐匿着多种对人体有害的物质。长期暴露其中,极有可能引发严重的健…

作者头像 李华