news 2026/5/28 17:09:33

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/5/28 12:03:38

必收藏!为什么程序员/小白一定要学大模型?看完少走1年弯路

在AI技术迭代日新月异的今天,大模型早已不是实验室里的“黑科技”,而是席卷整个科技行业的核心变革力量,更是程序员、技术小白突破职业瓶颈、抢占时代红利的关键抓手。2025年,大模型的应用早已渗透到我们技术开发与日常办公的方方…

作者头像 李华
网站建设 2026/5/27 3:48:08

收藏级!大模型底层原理详解(从极简到初级,小白程序员必看)

很多小白程序员和刚接触AI的朋友,每天用着DeepSeek、ChatGPT等大模型,却始终搞不懂它“开口即懂”的底层逻辑——其实大模型没有那么神秘,核心就是“算概率、选最优”。今天这篇文章,就从3个层级由浅入深拆解大模型底层原理&#…

作者头像 李华
网站建设 2026/5/22 2:35:47

事件意义与菩提心:两种普世路径的深层辨析

事件意义与菩提心:两种普世路径的深层辨析一、问题的核心:两种普世性的本质差异当我们说“每个事件都有意义”时,是在陈述一种本体论事实——意义作为存在的基本属性,如引力般普遍存在。当我们说“菩提心”时,是在倡导…

作者头像 李华
网站建设 2026/5/12 6:00:18

Yolov7模型训练指南:从环境搭建到最终应用

1. 环境搭建1.1 【 设备与系统配置 】我使用的设备配置为V100显卡双卡,总显存64GB,操作系统为Ubuntu 18.04,Python版本为3.7.10。在这样的环境下,我可以顺利地进行yolov7模型的训练。1.2 【 代码获取与准备 】在搭建好环境后&…

作者头像 李华