量化

无损压缩算法大致由两个步骤组成:改变信号的表示以减少样本的熵(Entropy),以及熵编码(Entropic Coding)。有损压缩算法在表示变换和编码之间插入了一个量化(Quantification)步骤。它在信号表示中引入了误差,但同时也能更大程度地减少熵,这比无损情况下的效果更明显。

均匀量化


连续信号通常具有无限多的可能值,例如一个音频信号的幅度可能是任意的实数。然而,数字系统只能处理有限的值集合,例如整数或固定的小数位数。因此,在数字化过程中,需要对信号的幅度进行近似,使其符合离散值集合的要求。这个近似过程就是量化。

最简单的量化方法是均匀量化器$Q_\Delta$:

其中$R$表示四舍五入,$\Delta$是量化步长。

例如对区间$[-1,1]$以步长$\Delta = 0.5$进行量化后,有:

  • $Q_\Delta(-1) = 0.5R(-1/0.5) = -1$
  • $Q_\Delta(-0.74) = 0.5R(-0.74/0.5) = -0.5$
  • $Q_\Delta(-0.4) = 0.5R(-0.4/0.5) = 0$
  • $Q_\Delta(0.5) = 0.5R(0.5/0.5) = 0.5$

为了计算这种量化引入的误差,我们假设需要量化的数据由一个已知概率密度 $p(x)$ 的随机变量 $X$ 生成,并且这种概率密度在量化间隔 $[(n-1 / 2) \Delta,(n+1 / 2) \Delta[$ 上(近似)为常数(高分辨率量化假设)。
在这种情况下,通过基础计算可以得到量化误差:


$d=\mathbb{E}\left((X-Q(X))^2\right) = \frac{1}{\Delta}\int{(n-1/2)\Delta}^{(n+1/2)\Delta}(x-n\Delta)^2dx = \frac{1}{\Delta}\left|\frac{(x-n\Delta)^3}{3}\right|{(n-1/2)\Delta}^{(n+1/2)\Delta} = \frac{\Delta^2}{12}$

通过将数据用二进制表示,可以观察到增加一个比特相当于将 $\Delta$ 减半(相当于量化级从$2^n$增加到$2^{n+1}$),从而量化噪声的功率减少 $6.04 dB$ 。

熵约束下的标量量化


我们现在研究更通用的量化器,它由一组区间 $\left[a_{k-1}, a_k\left[\right.\right.$ 和值 $b_k$ 描述,这些区间将实数轴划分开。量化器定义为:

记:

在高分辨率假设下,有:

可以近似认为在每一个区间中,量化器与前一章提及的量化器相同。根据先前的计算,此时的误差为:


微分熵

定义具有概率密度$p$的随机变量$X$的微分熵为:


定理

在高分辨率假设下有:

证明:

由于$-log_2$的凸性,有:

即可证明。


推论

对于给定量化误差 $d$ ,熵在量化步长 $\Delta_k=\Delta$ 恒定时达到最小值。
要保证给定量化跨差 $d$ ,所需的比特率为:

代入步长的关系:

反过来,根据比特率计算误差:

矢量数据的量化


通过在正交基 $\left(\phi_n\right)_n$ 上分解矢量数据(选择一个正交基可以保证信号误差与系数误差一致),对每个系数 $X_n=\left\langle\phi_n, X\right\rangle$ 单独进行编码。

目标是找到应用于每个系数的量化步长 $\Delta_n$ ,在固定比特率的条件下最小化误差。

展开后:

总的比特率为:


定理
在高分辨率假设下,当量化步长为 $\Delta_n=\Delta$ 时,可以在固定失真条件下实现最小比特率。对应的失真 (误差) 为:

其中:

  • $\bar{H}_d$ 是平均微分熵。
  • $\bar{R}=R / N$ 是平均比特率。

分解基的选择


我们最终确定用于信号分解的最优基。这里假设被分解的信号是高斯信号。很容易证明,方差为 $\sigma^2$ 的正态分布变量的熵为:

使用上一节中失真的表达式,可以得到:

其中:

$\rho^2$ 是每个系数方差的几何平均值。


定理

当信号按照协方差矩阵的特征向量(称为 Karhunen-Loève 基)进行分解时,$\rho^2$达到最小值。

我们将信号分解到一个正交基$\left(\phi_n\right)$上,有:$\sigma_n^2=\phi_n^T \Sigma \phi_n$,因此对上式取对数:

在协方差矩阵特征向量基中分解:

根据$log_2$是一个凹函数,有:

又因为$\sum_{m=1}^N\left|\left\langle\phi_n, \psi_m\right\rangle\right|^2=1$,有:

因此有:

不同分布的熵


正态分布

对于正态分布 $X \sim \mathcal{N}(\mu, \sigma^2)$,概率密度函数为:

微分熵的计算公式为:

将 $p(x)$ 代入公式:

最终结果为:


拉普拉斯分布

对于中心化的拉普拉斯分布 $X \sim \text{Laplace}(\mu, b)$,概率密度函数为:

经过计算,其微分熵为:


均匀分布

对于均匀分布 $X \sim \mathcal{U}(a, b)$,概率密度函数为:

其微分熵为:


等方差下的熵比较

各分布的方差为:

  • 正态分布:$\sigma^2$
  • 拉普拉斯分布:$2b^2 = \sigma^2 \implies b = \sqrt{\frac{\sigma^2}{2}}$
  • 均匀分布:$\frac{(b-a)^2}{12} = \sigma^2 \implies b-a = 2\sqrt{3\sigma^2}$

代入后得到的熵为:

  • 正态分布:$\frac{1}{2} \log_2(2\pi e \sigma^2)$
  • 拉普拉斯分布:$\log_2\left(2\sqrt{\frac{\sigma^2}{2}} e\right)$
  • 均匀分布:$\log_2\left(2\sqrt{3\sigma^2}\right)$

按熵值从大到小排序:

  1. 正态分布($H_d \propto \log_2(\sigma)$)
  2. 均匀分布($H_d \propto \log_2(\sigma)$,但小于正态分布)
  3. 拉普拉斯分布($H_d \propto \log_2(\sigma)$,最小)

在方差相等的情况下,正态分布具有最大的微分熵,其次是均匀分布,最后是拉普拉斯分布。