MIT 6.837:Sampling & Aliasing 采样与混叠

MIT 6.837:Sampling & Aliasing 采样与混叠

数字图片的采样和量化

真实世界中的场景是连续的,而计算机一般处理离散的数据。

将连续函数变为离散函数的过程称为采样,而将连续的数值变为离散的数值的过程为量化。为了得到适于计算机处理的数据形式,我们必须对原始场景的图片进行采样和量化。

对连续的图片进行采样的过程可以用采样矩阵表示。采样矩阵的基础是二维冲激函数 $\delta(x,y) = \begin{cases} 1, & (x,y)=(0,0) \\ 0, & \text{otherwise} \end{cases}$,可以用冲激函数表示采样矩阵为

$$ \sum_{j=0}^{h-1} \sum_{i=0}^{w-1} \delta(u-i, v-j) $$

将这个矩阵与表示连续图像的连续二维函数相乘,得到二维函数在整点上的颜色值,如下图所示。

.jpg - MIT 6.837:Sampling & Aliasing 采样与混叠

采样与重建

通过傅里叶分析,我们可以知道采样是频域上的周期搬移,而重建是频域上的低通滤波。但由于信号中包含高频,搬移时会发生相邻周期的频谱混叠,而这种混叠将导致重建时无法还原出原始的一个周期,最终体现为图片中的错误与失真。

2 1024x816 - MIT 6.837:Sampling & Aliasing 采样与混叠

为了保证重建中不发生问题,我们需要对信号进行预处理,例如移除其中的高频部分,或增加采样密度。根据采样定理,采样频率应不小于最高频率的两倍,只要预处理能够使信号满足此条件,则不会发生混叠失真。

滤波

在计算机图形学中,滤波器被用于两种情况:重建信号、去除高频部分得到带限信号。这两者都是低通滤波器,通常可以使用同一种滤波器完成。

二维的滤波可以通过矩阵的卷积来计算,因此滤波器可以用卷积核矩阵来表示。

预处理

预处理滤波器用于滤去高频信号,故为低通滤波器,可用覆盖像素面积的比例来实现。例如,光栅化直线的时候,应用预处理滤波器平滑直线边缘的锯齿。

.png - MIT 6.837:Sampling & Aliasing 采样与混叠
1 - MIT 6.837:Sampling & Aliasing 采样与混叠

后处理

后处理坐标系用于对样本滤波,可用对附近像素求平均值实现,也可以实现与预处理滤波器类似的效果。

2 - MIT 6.837:Sampling & Aliasing 采样与混叠

滤波器的种类

理想滤波器:频域低频增益为 1,高频衰减至 0。时域是无穷信号,难以实现。

实际滤波器:存在低频衰减和高频泄露问题,依然可能存在混叠失真。

3 - MIT 6.837:Sampling & Aliasing 采样与混叠

高斯滤波器:CRT 显示器在人眼中成像与之类似。

方框滤波器:时域上是一个门函数,上采样时造成锯齿。对应最近邻插值。

三角滤波器:时域上是一个三角形,易于实现,效果比方框略好。对应双线性插值。

双三次插值:时域上更接近理想滤波器的曲线,效果更好。

纹理贴图反走样

由于纹理贴图是分辨率有限的图片,在一些情况下容易产生走样。利用滤波等原理,我们可以改善这些走样问题。

纹理被放大时,如果使用方框滤波器会产生锯齿,因此可以利用三角滤波器(双线性插值)代替,从而得到平滑的结果,但会带来模糊的效果。

纹理被缩小时,其中的高频分量会导致奇怪的效果(如摩尔纹等),因此可以利用低通滤波器去除其高频分量。可以预处理出多种尺寸的缩小滤波结果,以减少渲染时的计算开销。

MIP Map 是一种保存缩小纹理的方式,它通过预处理出 1/2、1/4、……尺寸的缩小结果,再将其拼在同一张图中。由等比数列求和,新的纹理图片仅为原图片的 2 倍大小。

4 - MIT 6.837:Sampling & Aliasing 采样与混叠

由于每次映射贴图时不一定是等比例缩放,需要沿各边缩放的结果,可以利用各向异性 MIP Map 来处理这种情况。在这种方法中,保存的缩小贴图各边缩小为 1/2、1/4、……等尺寸,图片大小为原图的 4 倍。

4 - MIT 6.837:Sampling & Aliasing 采样与混叠


发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据