0

MIT 6.837:Sampling & Aliasing 采样与混叠

 2 years ago
source link: https://ksmeow.moe/mit-6-837-sampling-aliasing/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

数字图片的采样和量化

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

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

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

∑j=0h−1∑i=0w−1δ(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 采样与混叠

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK