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