H264量化

前言

残差矩阵经过整数DCT变换后即需要对变换后的DCT系数进行量化操作。且注意:前期DCT变换 M n ⋅ X ⋅ M n T M_n·X·M_n^T MnXMnT已经优化成了整数DCT变换 C f ⋅ X ⋅ C f T ⨂ S f Cf·X·Cf^T\bigotimes Sf CfXCfTSf,其中的 ⨂ S f \bigotimes Sf Sf动作放到了量化的过程中实现。
在这里插入图片描述


规定

在这里插入图片描述

  • QP是量化参数,是量化步长Qstep的编号,一共有52个
  • Qstep为量化步长。Qstep越大,图像的压缩率越大,失真率越大;反之Qstep越小,图像压缩率越小,失真率越小
  • 亮度块的QP最大值为52,而色度块规定最多只能有亮度块的80%,故QP最大值为39(明明52×0.8=41.6)
  • QP+=6 -> Qstep*=2,即QP每增加6,Qstep就会翻一倍
  • 编码器会根据图像的实际情况自动改变QP的值,进而改变Qstep

过程

  1. 一开始的量化操作是 Z i j = r o u n d ( Y i j Q s t e p ) Z_{ij}=round(\frac{Y_{ij}}{Qstep}) Zij=round(QstepYij),其中 Y i j Y_{ij} Yij为输入的DCT系数矩阵
  2. 加入整数DCT变换中的 ⨂ E f \bigotimes Ef Ef动作后,有 Z i j = r o u n d ( Y i j ⨂ E f Q s t e p ) Z_{ij}=round(Y_{ij}\bigotimes \frac{Ef}{Qstep}) Zij=round(YijQstepEf)
  3. 由于 1 Q s t e p \frac{1}{Qstep} Qstep1为除法运算,为了加速计算,我们将其简化为位移运算
    M F = E f Q s t e p 2 q b i t s MF=\frac{Ef}{Qstep}2^{qbits} MF=QstepEf2qbits,其中 q b i t s = 15 + f l o o r ( Q P / 6 ) qbits=15+floor(QP/6) qbits=15+floor(QP/6)。我们绘制一张QP={0,1,2…51}
    的MF表(Ef,Qstep和QP都已知,MF就已经确定了)。则 Y i j ⨂ E f Q s t e p = Y i j ⨂ M F 2 q b i t s Y_{ij}\bigotimes \frac{Ef}{Qstep}=Y_{ij}\bigotimes \frac{MF}{2^{qbits}} YijQstepEf=Yij2qbitsMF,这样我们就将除法运算转换成了计算机容易处理的位移运算 Z i j = ( Y i j ⋅ M F + o f f s e t ) > > q b i t s Z_{ij}=(Y_{ij}·MF+offset)>>qbits Zij=(YijMF+offset)>>qbits,其中offset为偏移量,作用是改善恢复图像的视觉效果,例如对帧内预测图像块取 f = 2 q b i t s 3 f=\frac{2^{qbits}}{3} f=32qbits,对帧间预测图像块取 f = 2 q b i t s 6 f=\frac{2^{qbits}}{6} f=62qbits

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值