Quantization(二)变长公式推导

1.简要介绍

本文简要介绍基于变长码的标量量化。上篇研究了在给定的重构电平K的情况下,将失真降至的量化器的设计,同时有一个前提:假设所有重构level \(s_i^{'}\)都用相同长度的码字,为定长编码。
现在我们结合变长码γ来考虑量化器的设计。此时此刻,我们对每一个特定的映射\(s_i^{'}\)赋给的码字长度为:\(\overline{l}(s_i^{'})=|\gamma(s_i^{'})|\)。对于编码器来说,我们可以随意采用,比如Huffman编码,此时平均码字长度为:

\[R=\sum_{i=0}^{N-1}p(s_i^{'})\times \overline{l}(s_i^{'}) \]

偏差Distortion(D)同上一篇的定义。如果我们用Huffman这个变长编码,\(\overline{l}(s_i^{'})\)是会随着\(p(s_i^{'})\)改变的,所以这个时候我们采用一种受码率约束的损失来衡量效果。形式如下:

\[min D \ subject\ to \ R \le R_{max} \]

or

\[min R \ subject\ to \ D \le D_{max} \]

\(R_{max}\)\(D_{max}\)分别是给定的最大速率和最大值失真。这种约束最小化问题可以是表述为拉格朗日泛函的无约束最小化:

\[J=D+\lambda R=E\{d_1(S,Q(S))\}+ \lambda E\{\overline{l}(Q(S))\} \]

如果有一个拉格朗日参数\(λ\)满足一个特定的速率\(R_{max}\)(或特定失真Dmax),对应的失真D(或速率R)是约束优化问题的一个解。

2.求解\(s_i^{'}\) with constant \(u_i\)

为了推导出类似于量化器的必要条件,在定长编码的设计中,我们首先假设给定了各个\(u_i\)是给定的。因为速率R与reconstruction level \(s_i^{'}\),上述最小化即可等价于最小化D。(如果我们采用Huffman算法来编码的话,\(\overline{l}(s_i^{'})\)通常只与对应区间的概率有关,而\(p(s_i^{'}\)通常情况下只与\(u_i\)有关。)此时,对于\(s_i^{'}\)的求解同上篇求解:

\[\begin{aligned} D & = E[f(s_{in}-s_{out})] \\ & = \sum_{i=1}^{N} \int_{-u_i}^{u_{i+1}} f(s-s_i^{'})\ p(x)\ dx +\sum_{i=0}^{N-1}p(s_i^{'})\overline{l}(s_i^{'})\\ \end{aligned} \]

\(x_{N+1}=\infty,x_1=-\infty\)

\[\begin{aligned} \frac{\partial D}{\partial s_i^{'}} = -\int_{u_i}^{u_{i+1}} f^{'}(s-s_i^{'})\ p(x)\ dx=0 \\ i=1,...,N\ \ \ \ \ \ \ (2) \end{aligned} \]

函数\(f(s)\)我们采用MSE。
方法一:

\[\begin{aligned} & E \{ (S-s_i{'})^2 \} \\ & =E\{(S-E(s)+E(s)-s_i{'})^2\} \\ & =E\{(S-E(s)))^2\}+(E(s)-s_i{'})^2 \\ & \ge E\{(S-E(s)))^2\} \end{aligned} \]

当等号成立时,\(E\{S\} == s_i^{'}\),即:

\[s_i^{'}=E\{S\}=\frac{\int_{u_i}^{u_{i+1}}sf(s)\ ds}{\int_{u_i}^{u_{i+1}}f(s)\ ds} \]

方法二:

\[\begin{aligned} D&= E\{f(S,s_i^{'})\}=\int_{u_i}^{u_{i+1}}(s-s_i^{'})^2f(s)\ ds \\ & = \underline{\int_{u_i}^{u_{i+1}}s^2f(s)\ ds}-\underline{\int_{u_i}^{u_{i+1}}2ss_i^{'}f(s)\ ds+\int_{u_i}^{u_{i+1}}s_i^{'2}f(s)\ ds } \end{aligned} \]

上述第一项为定值,所需对于D最小化来说,我们需要将第二项最小化,即:

\[Min_{s_i^{'}}\ \int_{u_i}^{u_{i+1}}s_i^{'2}f(s)\ ds-\int_{u_i}^{u_{i+1}}2s_i^{'}sf(s)\ ds \]

为了方便,我们设:
\(x=\int_{u_i}^{u_{i+1}}f(s)\ ds, y=\int_{u_i}^{u_{i+1}}sf(s)\ ds\)

\[D=xs_i^{'2}-2ys_i^{'} \]

\[\frac{\partial D}{\partial s_i^{'}}=2xs_i^{'}-2y=0 \]

故:

\[\begin{aligned} & s_i^{'}=\frac{y}{x} \\ &s_i^{'}=E\{S\}=\frac{\int_{u_i}^{u_{i+1}}sf(s)\ ds}{\int_{u_i}^{u_{i+1}}f(s)\ ds} \end{aligned} \]

3.求解\(u_i\) with constant \(s_i^{'},\overline{l}(s_i^{'})\)

为求解\(u_i\),我们现在假设\(s_i^{'}\)以及平均码字长度\(\overline{l}(s_i^{'})\)是定值。因为不同的\(u_i\)会对\(p(s_i^{})\)产生影响,所以此时我们的最小化函数为:

\[\begin{aligned} D & = E[f(s_{in}-s_{out})]+\sum_{i=0}^{N-1}p(s_i^{'})\overline{l}(s_i^{'}) \\ & = \sum_{i=1}^{N} \int_{u_i}^{u_{i+1}} (s-s_i^{'})^2\ f(x)\ dx +\sum_{i=0}^{N-1}p(s_i^{'})\overline{l}(s_i^{'})\\ \\ &where\ p(s_i^{'})=\int_{u_i}^{u_{i+1}}f(s)ds \end{aligned} \]

\[\begin{aligned} (1)becomes (for\ p(x_i) \neq 0) \\ & f(u_i -s_{i-1}^{'})+\lambda \overline{l}(s_{i-1}^{'})=f(u_i-s_i^{'})+\lambda \overline{l}(s_{i}^{'}) & &i=2,...,N\ \ \ \ \ \ \ (3) \end{aligned} \]

下面我们来详细求解\(u_i\)
我们首先定义以下:X=\(p(s_{i-1}^{'})\overline{l}(s_{i-1}^{'})+p(s_i^{'})\overline{l}(s_i^{'})\)

\[\begin{aligned} \frac{\partial D}{\partial u_i}&=\frac{\partial }{\partial u_i}\{无关项+\int_{u_i-1}^{u_{i}}(s-s_{i-1}^{'})^2f(s)\ ds+\int_{u_i}^{u_{i+1}}(s-s_i^{'})^2f(s)\ ds +p(s_{i-1}^{'})\overline{l}(s_{i-1}^{'})+p(s_i^{'})\overline{l}(s_i^{'})\} \\ = \frac{\partial }{\partial u_i}\{无关项&+\int_{u_i-1}^{u_{i}}s^2f(s)\ ds -\int_{u_i-1}^{u_{i}}2ss_{i-1}^{'}f(s)\ ds +\int_{u_i-1}^{u_{i}}s_{i-1}^{'2}f(s)\ ds \\ &+\int_{u_i}^{u_{i+1}}s^2f(s)\ ds -\int_{u_i}^{u_{i+1}}2ss_{i}^{'}f(s)\ ds +\int_{u_i}^{u_{i+1}}s_{i}^{'2}f(s)\ ds +X \} \\ =\frac{\partial }{\partial u_i}\{无关项&-\int_{u_i-1}^{u_{i}}2ss_{i-1}^{'}f(s)\ ds +\int_{u_i-1}^{u_{i}}s_{i-1}^{'2}f(s)\ ds \\ &-\int_{u_i}^{u_{i+1}}2ss_{i}^{'}f(s)\ ds +\int_{u_i}^{u_{i+1}}s_{i}^{'2}f(s)\ ds +X\} \\ =\frac{\partial }{\partial u_i}\{无关项&-\int_{u_i-1}^{u_{i+1}}2ss_{i-1}^{'}f(s)\ ds +\int_{u_i-1}^{u_{i+1}}s_{i-1}^{'2}f(s)\ ds \\ &-\int_{u_i}^{u_{i+1}}2s(s_{i}^{'}-s_{i-1}^{'})f(s)\ ds +\int_{u_i}^{u_{i+1}}(s_{i}^{'2}-s_{i-1}^{'2})f(s)\ ds \} \\ &=\frac{\partial }{\partial u_i}\{无关项-(s_{i}^{'}-s_{i-1}^{'})F_1(s)|_{u_i}^{u_{i+1}}+(s_{i}^{'2}-s_{i-1}^{'2})F_2(s)|_{u_i}^{u_{i+1}} \\ &=2(s_{i}^{'}-s_{i-1}^{'})u_if(u_i)-(s_{i}^{'2}-s_{i-1}^{'2})f(u_i) +p^{'}(s_{i-1}^{'})\overline{l}(s_{i-1}^{'})+p^{'}(s_i^{'})\overline{l}(s_i^{'})\\ &=(s_{i}^{'}-s_{i-1}^{'})f(u_i)\{2u_i-(s_{i}^{'}+s_{i-1}^{'})+f(s_{i-1}^{'})\overline{l}(s_{i-1}^{'})+f(s_i^{'})\overline{l}(s_i^{'})\}=0 \\ &==>u_i=\frac{s_{i}^{'}+s_{i-1}^{'}}{2}+\frac{1}{2}\cdot \frac{\overline{l}(s_i^{'})-\overline{l}(s_{i-1}^{'})}{s_i^{'}-s_{i-1}^{'}} \end{aligned} \]

4.例子

下图展示了一个均值为零,方差为1的高斯分布的迭代过程。由第二部分,在码率的限制下我们的\(u_i\)的迭代表达式为:

\[u_i=\frac{s_{i}^{'}+s_{i-1}^{'}}{2}+\frac{1}{2}\cdot \frac{\overline{l}(s_i^{'})-\overline{l}(s_{i-1}^{'})}{s_i^{'}-s_{i-1}^{'}} \]

其结果是决策阈值\(u_i\)的改变从两个重建level的均值向间隔码字长度长的方向平移,即使码字长度长的\(s_i^{'}\)分配的概率较小,从而减少平均码率。
也就是说,\(u_{N/2}\)越接近于零(对于0附近概率密度较大的函数),得到的distortion越小,此时,各个\(p(s_i^{'})\)的概率越接近,但此时所需要的entropy也越大;在相应的拉格朗日参数作用下,将\(u_i\)\(s_{i+1}^{'}\)偏,D和拉格朗日参数\(\lambda\)持相反的作用。
在这里插入图片描述
在这里插入图片描述
上图左侧,划分的间隔较多,所以一开始初始化的\(u_i,s_i^{'}\)都较小,所以\(\lambda\)参数起的作用较大,向外偏;针对有图来说的话,划分的间隔较少,初试的\(u_i,s_i^{'}\)都较大,所以一开始D起的作用较大,当\(u_i\)减小到一定值之后,粉红色区域的概率很容易就大于绿色的区域,所以此时distortion D和拉格朗日参数\(\lambda\)\(u_i\)起的作用都相同,都是使得\(u_i\)趋向于0。

另一处网址:csdn

Reference:Source coding

posted @ 2021-12-05 16:57  为红颜  阅读(209)  评论(0编辑  收藏  举报