关于非均匀量化的疑问
为了更清楚,我想你的问题是
为什么说低输入幅度下的压缩器增益较高,而非均匀量化器的步长在该区域内较小。同样,为什么说压缩器的增益对于高输入幅度更高,而对于这些输入而言步长更大。
首先,请注意,非均匀量化用于通过使量化器适应源概率密度函数来提高平均 SNR。当然,当源 pdf 不均匀时(例如,当它是高斯时),那么均匀量化不是一个好的选择。为了更好地理解它,假设您要将高斯源量化为水平。我们首先假设我们有一个统一的量化器。减少量化造成的失真的一种方法是增加步数()。增加意味着步长减小,最终导致更高的 SNR(更精细的量化)。增加级别的数量意味着增加了表示每个样本的总位数。例如,如果我们有 256 个级别,我们需要 8 位来表示每个级别。但是对于 1024 级,我们将需要 10 位。
现在在上面的例子中假设我们想要使用一个固定的(例如 256)并提高 SNR。为此,请注意高斯源更有可能产生均值附近的样本。因此,例如,零均值高斯源很可能生成接近零的值。因此,我们在零附近的区域分配较小的步长,而是在 pdf 的尾部(不太可能发生的地方)使步长变大。所以从技术上讲,我们平均使用较小的步长进行量化(但不增加层数)。
任何标量非均匀量化器都可以通过使用链来实现
1- 压缩器:无记忆的单调非线性
2- 一个统一的量化器
3- 扩展器:非线性的逆
在您的示例中,非线性在原点处具有很大的增益(特征函数很陡),同时它会在大振幅处引起某种饱和效应。但是这个增益应用于输入信号而不是量化器。之后仍应通过统一量化器对结果进行量化。虽然是一个均匀的量化器,但是由非线性引起的初步变化进而看起来好像使用了不同的步长:首先放大低幅度箱,然后有一个统一的网格,然后压缩它们。它们似乎被小步长量化。类似的东西也适用于高振幅箱,除了它们首先被压缩,然后它们被扩展。所以整体结果相当于大步长的效果。
[编辑:改进了图形和代码]如果你打电话sigmoid 函数(左),和均匀量化算子,右图由下式获得:
如图所示
从这个基本的 Matlab 代码:
time = linspace(-1,1,1000);
Q=4; % Number of bits (almost)
Qu = round(time*2^Q)/2^Q; % Uniform quantization
%%% Choice of companding/expanding
%% Square-root
S = @(x) sign(x).*sqrt(abs(x));
Sinv = @(x) sign(x).*(x.^2);
%% Mu-law
mu = 2^5-1;
S = @(x) sign(x).*log(1+mu*abs(x))/log(1+mu);
Sinv = @(x) sign(x).*((1+mu).^abs(x)-1)/mu;
Qnu = sign(time).*Sinv(round(S(abs(time))*2^Q)/2^Q); % Non-uniform quantization
subplot(2,2,1)
plot(time,S(time));
xlabel('Sigmoid function')
subplot(2,2,2)
plot(time,Qu);
xlabel('Uniform quantization')
subplot(2,2,3)
plot(time,Sinv(time));
xlabel('Inverse sigmoid function')
subplot(2,2,4)
plot(time,Qnu);
xlabel('Non-uniform quantization')
主要思想是保持量化步长与输入“几乎成比例”。使相对量化误差整个信号变化不大。您也可以绘制相对误差图。所以你的选择是:
- 使用非均匀量化器(右图):更精确,更不容易实现
- 使用整形函数(左图),其作用类似于 Anscombe 或 Box-Cox 的方差稳定变换(简短讨论):sigmoid、square toot、对数(如 A-law 和-law),然后应用统一量化器,并在需要时应用整形函数的逆函数
后者有时被称为压缩扩展(或压缩),是压缩和扩展的合并,也与动态范围压缩有关。虽然这样的设计在很大程度上是启发式的,但我想提一下最近的论文Scalar Quantization for Relative Error,数据压缩会议,2011:
概率源的量化器通常针对均方误差进行优化。在许多应用中,保持较低的相对误差是更合适的目标。该度量以前已与感知编码中对数压扩的使用启发式地联系在一起。我们在高分辨率假设下推导出固定速率和可变速率的最佳压扩量化器。分析表明,对数压扩最适合可变速率量化,但通常不适用于固定速率量化。自然地,使用正确优化的量化器对相对误差的改进可以是任意大的。我们将这个框架扩展为一大类无差异失真。