QP和CRF控制码率和画质的原理

1.QP原理
2.CRF原理
3补充:
3.1编码器内部三种压缩策略
3.2示例x264使用双通道模式

1.QP原理

量化器和CRF都是常用的视频编码器中用于控制视频码率和画质的工具。下面将从原理上详细解释它们是如何工作的。

量化器是一种常用的码率控制方法,其原理是通过舍弃视频数据中的部分信息来减少视频数据的大小,从而达到控制视频码率的目的。在视频编码中,量化器通常是在离散余弦变换(DCT)之后使用的,它将DCT变换后的系数乘以一个固定的量化矩阵,从而将系数的精度降低,进而减少编码所需的比特数。量化器的参数通常是一个0到51之间的整数,它越小表示量化器越严格,编码出的视频码率越低,但画质也会相应变差。

2.CRF原理

CRF是另一种常用的码率控制方法,其原理是控制视频的视觉质量,而不是直接控制视频的比特率。CRF通常会根据视频数据的复杂程度和压缩效率自动调整视频的质量,从而达到控制视频码率和画质的目的。CRF的参数通常是一个0到51之间的整数,它越大表示视频的质量越差,但编码出的视频码率也会越低。当设置了CRF的值后,它会在满足这个画质后,尽量压缩码率。

tips:

在实际使用中,量化器和CRF通常是同时使用的,以达到更好的视频压缩效果。量化器和CRF之间的关系可以用一个简单的公式来表示:目标比特率 = 码率因子 x 量化器参数。其中,码率因子是CRF的参数,通过调整它来控制视频的质量。在实际使用中,可以通过调整量化器和CRF的参数来找到一个平衡点,以在满足目标比特率的同时尽可能保持较高的视频质量。
如果只关注码率,那么只需要设置量化器,如何只关注画质,那么只需要设置crf。crf和量化器qp的值范围根据不同的编码器不同而不同,因为不同的编码器,其实现算法的实现是不同的。

3.补充:

3.1编码器内部三种压缩策略

在编码器内部有三种码率控制方式:
1.QP,关注码率。设置了目标码率后,在不同复杂度的帧,和运动帧时,QP自动调整,此时画质也会变化,但持码率稳定,称这个模式为CBR模式。通常为网络传输的模式。
2.CRF,关注质量。在不同复杂度帧,和运动帧时,为了维持画质恒定,码率会动态调整,称为VBR模式。通常用来存储文件的模式。
3.双通道模式:这种模式下,编码器将视频分为两个通道,分别进行编码和比特率控制。其中一个通道负责编码低复杂度的静态图像,另一个通道负责编码高复杂度的运动图像。通过这种方式。

3.2示例x264使用双通道模式

如在x264中设置双通道模式,需要使用x264opts参数,其中包含了如下三个子选项:
rc-lookahead:设置编码器的预测深度,即编码器预测将使用多少帧来进行比特率控制和质量控制。较大的预测深度可以提高编码效率,但也会增加延迟。
b-adapt:设置B帧自适应模式,可以选择禁用、普通或严格模式。
bframes:设置B帧数量,可以在0-16之间选择。
下面是一个示例命令,演示如何在FFmpeg中使用x264opts参数来设置双通道模式:

ffmpeg -i input.mp4 -c:v libx264 -x264opts rc-lookahead=60:bframes=3:b-adapt=2 -c:a copy output.mp4

在这个命令中,x264opts参数包含了三个子选项,分别为rc-lookahead、bframes和b-adapt。这个设置将会启用双通道模式,并设置预测深度为60帧,B帧数量为3个,B帧自适应模式为普通模式。其他的参数设置和常规的FFmpeg命令类似。

你可能感兴趣的:(#,音视频基础,QP,CRF,码率控制,画质,ffmpeg)