searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

X264码率控制

2023-09-25 06:54:22
8
0

1 比特率

1.1 比特率是什么

比特率是直播、实时通话或者在线视频流的一个非常重要参数。

比特率衡量一段时间内传输的数据量,是网络传输的重要依据。在直播、实时通话、在线视频流中,视频比特率以千比特每秒或 kbps 为单位。比特率直观体现就是会影响视频的质量。当我们以更高的比特率流传输视频时,用户会获得更高质量的视频体验,对于已经是红海的视频传输来说,便可留住更多用户。

当涉及在线视频流时,互联网公司通常以多种比特率提供其内容,我们称这种传输方式为多比特率流。这种传输模式允许观众根据自身网络、设备情况访问更适合其互联网速度的比特率,从而使他们能够以最少的延迟、抖动和缓冲大小访问最高质量的内容。

自适应比特率视频播放器已经改变了游戏规则,因为它们自动以适当的比特率播放视频,以响应对每个观众的互联网速度的实时状态。

比特率在流媒体过程的编码或转码阶段也很重要,因为这也涉及数据传输。正如我们提到的,恒定比特率流和可变比特率流是两种最流行的编码类型。

2 X264 码率控制说明

2.1 码率控制原理

H264 标准中采用的是拉格朗日中值定理进行控制的。在数学中的最优化问题中,拉格朗日乘数法(以数学家约瑟夫·拉格朗日命名)是一种寻找多元函数在其变量受到一个或多个条件的约束时的极值的方法。这种方法可以将一个有 n 个变量与 k 个约束条件的最优化问题转换为一个解有 n + k 个变量的方程组的解的问题。

该方法实现复杂度非常高,在实际中应用的比较少,HM 中采用该方案。

X264 属于工程实践,更加追求效率和简便性,采用了一种更简单、效率高的控制策略--半精度帧的 SATD 算法,作为码率控制中策略选择的依据,该方案更多是根据经验总结出来的算法,但是作为指导码率控制策略是可以满足基本需求的,简便性更是拉格朗日乘数法不可比拟的。

3 X264 码率控制

这里简单说明一下,主要是跟踪 X264 的代码说明参数如何使用的。

X264 中一共有三种码率控制参数:CQP、ABR、CRF。以下我们稍微做一些介绍

 

3.1 恒定量化参数--CQP

CQP 对应的类型为:X264_RC_CQP;该值表示恒定量化参数,编码器会尽量把每帧图像采用相同的量化参数;该方法并不推荐。由于每帧图像都采用相同的量化参数,会导致静止图像浪费码率,运动激烈,变化突出的图像码率不够,而且码率也会有剧烈变化,呈现明显锯齿状;还有需要注意的是 libvpx 是不支持改模式的。

3.2 平均比特率--ABR

ABR 对应的类型为:X264_RC_ABR,也算 VBR 的一种;该值表示编码器会根据视频采集内容的复杂度(实际上是帧间变化量、运动情况)动态调整输出码率,图像复杂则码率高,图像简单则码率低,码率会波动比较大。该模式在输出码率时有一定的波动:对于静止画面,压缩后的码率会非常低;而对于小幅度运动场景,可能会有方块效应,这时画面质量逐渐变差,码率也会上升;但是对于剧烈晃动,比如连续挥手测试,则出现严重马赛克。

3.3 恒定质量因子--CRF

CRF 对应的类型:X264_RC_CRF;该模式是一种编码模式,可以向上或向下调整文件数据速率以达到选定的质量级别,而不是特定的数据速率。如果要保持最佳质量,而又不怎么担心文件大小,这时候就可以使用 CRF 速率控制模式。CRF 编码适用于存档或生成用于上传和转码的夹层文件。但是,从可交付性的角度来看,它不是最理想的,因为在对文件进行编码之前,不知道将产生的数据速率。

0条评论
0 / 1000
j****n
4文章数
0粉丝数
j****n
4 文章 | 0 粉丝
j****n
4文章数
0粉丝数
j****n
4 文章 | 0 粉丝

X264码率控制

2023-09-25 06:54:22
8
0

1 比特率

1.1 比特率是什么

比特率是直播、实时通话或者在线视频流的一个非常重要参数。

比特率衡量一段时间内传输的数据量,是网络传输的重要依据。在直播、实时通话、在线视频流中,视频比特率以千比特每秒或 kbps 为单位。比特率直观体现就是会影响视频的质量。当我们以更高的比特率流传输视频时,用户会获得更高质量的视频体验,对于已经是红海的视频传输来说,便可留住更多用户。

当涉及在线视频流时,互联网公司通常以多种比特率提供其内容,我们称这种传输方式为多比特率流。这种传输模式允许观众根据自身网络、设备情况访问更适合其互联网速度的比特率,从而使他们能够以最少的延迟、抖动和缓冲大小访问最高质量的内容。

自适应比特率视频播放器已经改变了游戏规则,因为它们自动以适当的比特率播放视频,以响应对每个观众的互联网速度的实时状态。

比特率在流媒体过程的编码或转码阶段也很重要,因为这也涉及数据传输。正如我们提到的,恒定比特率流和可变比特率流是两种最流行的编码类型。

2 X264 码率控制说明

2.1 码率控制原理

H264 标准中采用的是拉格朗日中值定理进行控制的。在数学中的最优化问题中,拉格朗日乘数法(以数学家约瑟夫·拉格朗日命名)是一种寻找多元函数在其变量受到一个或多个条件的约束时的极值的方法。这种方法可以将一个有 n 个变量与 k 个约束条件的最优化问题转换为一个解有 n + k 个变量的方程组的解的问题。

该方法实现复杂度非常高,在实际中应用的比较少,HM 中采用该方案。

X264 属于工程实践,更加追求效率和简便性,采用了一种更简单、效率高的控制策略--半精度帧的 SATD 算法,作为码率控制中策略选择的依据,该方案更多是根据经验总结出来的算法,但是作为指导码率控制策略是可以满足基本需求的,简便性更是拉格朗日乘数法不可比拟的。

3 X264 码率控制

这里简单说明一下,主要是跟踪 X264 的代码说明参数如何使用的。

X264 中一共有三种码率控制参数:CQP、ABR、CRF。以下我们稍微做一些介绍

 

3.1 恒定量化参数--CQP

CQP 对应的类型为:X264_RC_CQP;该值表示恒定量化参数,编码器会尽量把每帧图像采用相同的量化参数;该方法并不推荐。由于每帧图像都采用相同的量化参数,会导致静止图像浪费码率,运动激烈,变化突出的图像码率不够,而且码率也会有剧烈变化,呈现明显锯齿状;还有需要注意的是 libvpx 是不支持改模式的。

3.2 平均比特率--ABR

ABR 对应的类型为:X264_RC_ABR,也算 VBR 的一种;该值表示编码器会根据视频采集内容的复杂度(实际上是帧间变化量、运动情况)动态调整输出码率,图像复杂则码率高,图像简单则码率低,码率会波动比较大。该模式在输出码率时有一定的波动:对于静止画面,压缩后的码率会非常低;而对于小幅度运动场景,可能会有方块效应,这时画面质量逐渐变差,码率也会上升;但是对于剧烈晃动,比如连续挥手测试,则出现严重马赛克。

3.3 恒定质量因子--CRF

CRF 对应的类型:X264_RC_CRF;该模式是一种编码模式,可以向上或向下调整文件数据速率以达到选定的质量级别,而不是特定的数据速率。如果要保持最佳质量,而又不怎么担心文件大小,这时候就可以使用 CRF 速率控制模式。CRF 编码适用于存档或生成用于上传和转码的夹层文件。但是,从可交付性的角度来看,它不是最理想的,因为在对文件进行编码之前,不知道将产生的数据速率。

文章来自个人专栏
x264
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0