目录
1 采样理论
锯齿(aliasing 走样)
artifacts 瑕疵/错误/不准确的结果(errors/mistakes/inaccuracies)
1.1 采样所产生的问题
- 锯齿,jaggies
- 摩尔纹(比如去掉奇数行奇数列,再放大到原来的大小)
- 人眼再时间上的采样跟不上运动的速度(车轮效应)
总结:
信号变化太快,而采样跟不上时,就会导致走样。
1.2 反走样:采样前模糊操作(滤波)
下图,是先做一次模糊操作(滤波操作),再进行采样。
左边,先做采样再模糊操作,不可以!
2 frequency domain 频域
傅里叶级数展开:(任何一个周期函数都可以写成一系列正弦和余弦以及一个常数项的组合)
(任何一个函数都可以分解成频率从低到高的组合)
傅里叶级数展开和傅里叶变换类似
函数本身有一个频率。采样有一个频率,比如图f5,采样频率跟不上变化速度,靠采样无法恢复出函数的样子。
2.1 走样定义
通过相同的采样方式,采样两个函数,却得到了相同的结果(图中蓝色和黑色函数,圆圈是采样点)
2.2 傅里叶变换(从时域变到频域)
建立频率和信号的联系。
图像(左图),从时域变到右边频域。
中心,最低频;边缘,最高频;亮度越亮,该频率上的信息越多。
(很多图片都是低频信息多)
水平和竖直的线,分析信号时认为他是周期性重复的信号;
但该张图不重复,就认为她到右边界又重复左边的内容,相当于水平上叠了好多次。如果把该图的左边搬到右边,图的左边界和有边界会叠到一块,再这个地方发生剧烈的信号变化,产生一个极高的高频。分析图像内部,忽略这两条线。
通过傅里叶变换,可以看到图像再不同频率的样子,即任何信号再不同频率的样子。(频谱)
高通滤波去掉低频信息,再逆傅里叶变换。可以看到高频信息表示了图像内容的边界。
比如在衣服边缘和背景,发生很大的信号变化,也就是高频信息。
低通滤波器,只留下低频信息,去掉高频,相当于去掉边界。相当于图像模糊了。
去掉高频、低频信息,提取到不是那么明显的边界特征,中间大面积相同的色块低频信息也去掉了。
相对于上面,留下再外面一圈,相当于更靠近高频信息(边界)了。
(现在更多图像操作是通过机器学习)
2.3 滤波
滤波 filtering = 平均 averaging = 卷积 convolution
2.3.1 卷积
滤波器 filter,相当于一个窗口,可以左右滑动。移动窗口(滤波器)的过程中,分别和信号做点乘,返回到滤波器的中心。
卷积:让滤波器再信号上一直左右移动。即原始信号的任意一个位置,再它的周围求加权平均。
卷积定理
时域上两个信号卷积 = 频域上两个信号乘积
一幅图,可以用卷积滤波器做卷积操作;也可以把该图变到频域上,把卷积的滤波器变到频域上,两者相乘,再逆傅里叶变换到时域。
补充定理:如果时域上是乘积,那么频域上就是卷积操作。
下图,3 * 3卷积滤波器(卷积核),对任何一个像素,取周围3*3的格子,再取平均。(相当于模糊了)
也可以,图片和卷积核分别到频域,再相乘,再逆傅里叶变换得到图片。
从图中,相当于对图片变到频域的内容做了一次低通滤波,也就是模糊。
2.3.2 卷积核
1 / 9:归一化,不让整个图片亮度发生变化
相当于低通滤波。
左边时域,用一个小的box,相当于把所有的频率都留下来(比如box比一个像素还要小,相当于没做操作),对应频域范围大。
3 从频率角度看采样
采样:重复频域上的内容
为什么会产生走样现象?
上面,信号原本的频谱;如果采样不够快,采样点时域之间的距离大,对应到频谱上采样频率 f 低、距离越小,发生混迭现象,也就是走样现象。
比如三角形光栅化,很多像素,采样密集了,走样现象就会少。如果信号和信号中间间隔大,即采样稀疏了,走样现象就会变严重。
4 反走样
1. 增加采样率
比如显示器分辨率越高,像素越小,采样率频率高,频谱上搬移间隔大,不容易出现混迭。
2. 先模糊、再采样
先模糊:低通滤波,把高频信息去掉;(一定大小的低通滤波器,对三角形卷积)
再采样:以原本的间隔复制它。
模糊操作
1个像素,box filter
因为 box filter 是一个像素,所以这里卷积是对任何一个像素内部求平均。
如何计算三角形再一个像素里面覆盖的面积??——> MSAA近似方法
抗锯齿方法1 MSAA(近似覆盖率)
MSAA是解决模糊操作的问题,而不是直接提高分辨率(屏幕内该有多少像素还是有多少像素)。MSAA只是近似得到每个像素的三角形覆盖率。
认为一个像素被划分成好多小的像素,每个小像素有个中心,判断该中心是不是再三角形里,再取平均。(三角形对覆盖像素的近似)
MSAA:增大了计算量。但工业界:不是规则的划分例如4*4,利用其他不规则分布图案,其中的某些点还会被邻近的不同像素复用。
快速近似抗锯齿 FXAA
得到带锯齿的图,做图像后期处理(图像匹配方法找到锯齿边界,换成没有锯齿的边界)
抗锯齿方法3 TAA(Temporal AA)
找上一帧的信息,静止场景,两帧应该一样。用一个像素内部不同位置的点感知是否再三角形内,那么两帧得到的有的地方有边界有的没有,复用了上一帧的结果,看上一帧的哪些像素再这一帧还有作用,并应用进来,相当于 MSAA 样本分布在时间上,且在当前帧上没有引入任何操作。
超分辨率
512*512——>1024 * 1024,中间会全都是锯齿。相当于一张高分辨率的图片,缺失了细节,想办法怎么把细节恢复出来。---->深度学习方法