为何x265 CQP模式下块级实际QP值比设置的初始QP低3?
x265 QP偏移问题解答
你观测到的实际编码QP比设置的初始QP低3的现象,是x265面向实用场景的默认优化设计,并非代码BUG,具体说明如下:
成因说明
- 你传入的
--qp 27为x265的标称亮度P帧基准QP,默认配置下会有三类自动QP偏移:- 帧类型偏移:你设置了
--keyint 1,所有编码帧都是I帧,x265默认通过--ipratio参数设置I帧QP比P帧基准QP低,因为人眼对I帧失真的敏感度远高于P帧,降低I帧QP可提升主观观感 - 色度分量偏移:x265默认对Cb、Cr两个色度分量设置负QP偏移(默认
--cbqpoffs -1、--crqpoffs -1),利用人眼对色度失真敏感度低的特性,在不明显增加码率的前提下提升色彩还原度 - 心理视觉优化偏移:x265默认开启
psy-rd、psy-rdoq优化,会主动降低纹理复杂区域的QP来保留细节,关闭AQ的情况下也会产生少量全局QP偏移
三类偏移叠加后刚好出现实际QP比设置值低3的现象,而HM作为标准参考软件没有任何面向实用的优化,所以QP完全和配置值对齐。
- 帧类型偏移:你设置了
- 你的猜测是正确的,该设计的核心目标就是在近似码率开销下,获得比HM更优的主观视觉质量,是x265相比参考编码器的核心优化点之一。
对齐HM QP的修改方案
在你的原有命令中添加对应参数即可关闭上述偏移,让实际编码QP与设置值完全一致:
x265.exe --input BQSquare_416x240_60.yuv --fps 60 --input-res 416x240 --interlace 0 -f 20 --input-depth 8 --input-csp i420 --ctu 64 --no-open-gop --keyint 1 --ref 1 --aq-mode 0 --qp 27 --ipratio 1 --cbqpoffs 0 --crqpoffs 0 --no-psy -r BQSquare_416x240_8bit_27.yuv --output-depth 8 --output BQSquare_416x240_8bit_27.bin
新增参数作用:
--ipratio 1:关闭I帧相对P帧的QP偏移--cbqpoffs 0、--crqpoffs 0:关闭色度分量QP偏移--no-psy:关闭所有心理视觉相关的QP调整

内容的提问来源于stack exchange,提问作者Alearner
相关产品推荐
相关产品推荐

