Scale 系列:
包括 Scale2x、2xSal、EPX、AdvMAME2x 等等 。这类滤镜是使用简单的 filter 对图像进行卷积 。有时比单纯的卷积要复杂一些,等价于使用了多个不同的滤镜进行卷积以后产生多个图像,最后对图像进行条件混合 。还有些强调边缘的滤镜也会通过图像的二次差分判断边缘从而采取不同的混合策略(权重) 。
考虑最简单的 Scale2x,将像素 P 放大为 4 个子像素,根据周围 4 像素设置子像素的颜色采用以下规则:
1=P; 2=P; 3=P; 4=P;
IF C==A => 1=A
IF A==B => 2=B
IF D==C => 3=C
IF B==D => 4=D
IF of A, B, C, D, three or more are identical: 1=2=3=4=P
则称之为 Scale2x 算法 。其结果其实基本上就是把一个像素分成了四个像素,颗粒感会大大下降 。规则简单,性能也好:
其它 Scale 系列同理,主要都是在放大之后根据原图像周围像素颜色通过一定规则决定子像素颜色 。
Eagel、2xSal 也是同一系列的滤镜,只不过考虑的周围像素范围不同 。例如比较复合的 Super2xSal 考虑的像素范围就要更大一些,涉及周围 11 个像素的值,并且也设置了相似的判定规则,效果如下:
Scale 系列滤镜是我认为 16 位机和 8 位机的底线,下面的就稍微有点越界了 。
HQx 和 xBR 滤镜系列
有时候现代人口味刁钻,希望能消除像素本身的颗粒感 。而前面那些简单的临像素加权平均或分支的滤镜会导致边缘模糊,并且处理像素游戏中的线条非常苦手,因此有人开发了相应更复杂的滤镜满足这些人的需求 。
HQx 系列 :(high-quality scale)
这一系列滤镜会根据周围像素颜色与自己的不同关系(周围 8 个像素根据阈值分为相似或者不相似两类,因此共 256 种可能),通过查找表的方式确定放大之后的像素颜色如何定义 。而这一查找表本身的定义比较复杂 。用 C 写几千行也很不容易(包含了 HQx-2/3/4
https://github.com/grom358/hqx/blob/master/src/hq2x.c),当然用 GLSL 要简单不少 。其目的主要是为了放大之后的线条能够更加顺滑 。
xBR 滤镜系列
xBR 滤镜系列,包含 xBR , xBRZ, xBR-Hybrid, Super xBR, xBR 3D 和 Super xBR 3D.
同样的,这些滤镜也主要是用来游玩像素游戏时消除像素颗粒感使用 。总有人认为这种圆滑感看起来比颗粒感的像素更舒服一些 。
这类滤镜比 HQx 更强大的地方在于通过多个 pass 解决了许多 HQx 的单次查找表索无法解决的问题,让还原的线条更加锐利 。
具体原理参考:(
https://forums.libretro.com/t/xbr-algorithm-tutorial/123)( https://pastebin.com/cbH8ZQQT)
虽然这里可怜的马里奥看起来有点不堪,但一般情况下这个滤镜没有那么惨 。xBR 滤镜对边缘的处理远比 HQx 更加强大,非常善于消除像素的颗粒感并且保留色块和边缘的锐利 。NGA 有人专门写过一篇文章吹这个滤镜,并且认为 xBRZ 是最好的 2D 放大滤镜(单纯从放大角度,不考虑深度学习类的方法,应该算是没错的) 。有需求的可以参考一下:
猜你喜欢
- 苹果期货价格走势图 – 苹果期货历史最低价
- 李世民完了是哪个皇帝 历史上李世民完了是哪个皇帝
- 微信在新手机登录还能查到删除人聊天记录吗? 如何查历史微信聊天记录
- 山东历史名人 孟子简介
- 数码知识:qq音乐历史播放怎么找qq音乐历史播放在哪
- 历史复习资料 历史复习资料介绍
- 水浒传中的林冲历史上存在吗?
- 鲁智深历史上存在吗?
- 历史上有吴用吗?
- 俄罗斯的历史简介 俄罗斯的历史简述
