抖动(数字信号处理)

求闻百科,共笔求闻
1位元表示的灰阶图,透过抖动制成。

抖动(英语:Dither),是在数位讯号处理领域的中一项用于降低量化误差的技术。透过在较低位元中加入杂讯,借此破坏谐波的排序,使谐波的影响受到压制,并减少量化误差在低频的影响。[1]抖动常用于视频处理,且是CD压制过程的最后一步。经过抖动处理过的音乐,将听起来更柔顺、背景更黑;而经过抖动处理过的影像,也会更加地柔顺耐看。

抖动最重要的用途之一是将灰阶图像转为黑白。透过使用抖动算法,可以令黑白图案的黑点密度接近原图案的大致灰度。

背景描述

自然界的讯号时域振幅上大多为连续的,而根据采样定理,采样时域会使用两倍的讯号最大频率,它确定了讯号带宽的上限,或能捕获连续讯号的所有资讯的离散采样讯号所允许采样频率的下限;然而,较少人注意到的是,振幅量化亦是讯号还原过程的重要因子。

由于硬体支援的限制,不可能使用无穷多的位元去表示一个振幅,只能使用近似的方式去表达,举例来说,如果数字系统只能显示自然数,那么数字1.8将会被归类为2来储存;数字2.4亦会被归类为2来储存。而借由将连续振幅时域转为离散的资料形式,更易于资讯储存传输还原。在这世界流行的CD光碟,储存的音乐大多为16位元,44100赫兹;后者因人耳接收最大频率的关系,因此只选择22050的两倍取样率,这就是有名的奈奎斯特频率

然而,如上一段所述,使用有限位元作讯号振幅量化时,无法避免的误差产生了,就像1.8被归类为2,误差就是负0.2,而2.4被归类为2,误差就是正0.4;采样位元越高,量化误差就越少,我们甚至可以算出量化误差之最大值为该取样位元之最小单位。例如CD的每两个连续取样点之间的最大误差为2的16次方分之一。

人耳对于频率的敏感度是不同的,人耳对于低频较敏感,对于超过五千赫兹的高频较不敏感,因此对于人耳来说,量化误差在低频的影响同样比在高频来的多。为了解决这样的问题,抖动就是在讯号振幅加入微量杂讯,使锯齿状的讯号还原时更加平滑,详细实作方式于下一段讲解。

数位音讯

在数位音讯中,许多播放软件具有抖动功能,例如著名的AMARRA播放器,可见得抖动的功用以及备受肯定。

以调整音量来说,有分为数位式与类比式的调整,类比式通常使用可变电阻去对输出讯号做衰减。然而,方便快速的数位式亦会造成量化误差的影响,

举例来说,如果一串讯号是1 2 3 4 5 6 7 8

如果将这样的讯号始衰减五分之一,

那么这串讯号将变成0.8 1.6 2.4 3.2 4 4.8 5.6 6.4

若将这样的衰减讯号无条件舍去,则变成0 1 2 3 4 4 5 6

若将这样衰减的讯号无条件进位,则变成1 2 3 4 4 5 6 6

而将这样的讯号去做四舍五入量化时,将变成1 2 2 3 4 5 6 6

我们可以发现调整音量对于量化误差有增大的影响。

或许人们会有疑问,如此振幅的误差很重要吗?有需要去解决吗?差一点点差很多吗?

事实上,根据傅立叶转换,振幅与振幅之间的关系是会间接影响频率的表现,而人耳对具有周期性的声音、频谱上特别突出的频率、随时间而变化的突出频率、低频率的变动、泛音的增减又是如此的敏感,因此当声音从高分辨率降低为低分辨率时,万万不可小看这样的误差。对于上述问题,较可行的解法是先将位元数拉长,例如CD的16位元先拉到24位元,接着将多出来的8位元加入杂讯。例如白杂讯,也就是能量在各频率都一样的杂讯,这种杂讯是随机的、乱序的、不规则的,我们大脑对于这样的讯号,会认为/界定为不重要、没有意义、没有办法追踪的讯号,所以会自动降低它的敏感度,将它忽视掉。

所以我们就先利用这样的特性,在24位元转回16位元时,在最后的八位元加入这样的杂讯,这样的杂讯虽然会增加总体的杂讯量,但是会打乱原本的量化误差,消除量化误差与原本讯号的关连。

也就是用我们比较可以接受/忍受的“沙沙沙”杂讯,来换取、取代原本突出的泛音失真。

音讯范例:



播放这些文件有问题?请参见媒体帮助

抖动算法

著名的抖动杂讯算法有下列几种

方块机率方程式

掷一骰子,决定每一个取样点之振幅需加入多少杂讯。

三角机率方程式

掷二骰子,并相加之,以此决定每一个取样点之振幅需加入多少杂讯,较方块机率方程式具有更多变化性。

白杂讯

加入白杂讯亦是简单好用的方式,计算复杂度亦较低。

无限长度滤波器

使用IIR滤波器作为回路,将量化误差转换为可被忽略的杂讯

图像处理

在数字图像处理中,经常使用抖动混合几种颜色,在颜色数量受限时产生出新的“颜色深度”。

参考资料

  1. Ken C. Pohlmann. Principles of Digital Audio. McGraw-Hill Professional. 2005. ISBN 0-07-144156-5.