超分辨率算法
关于Waifu2、Anime4K与Anime4KCPP
一直以来,图像超分辨率/放大算法多是用在图片中,从PhotoZoom到使用了深度卷积神经网络的waifu2x,尤其是现在基于深度学习的软件确实可以输出一个还行甚至不错的结果,但对CPU与GPU的性能需求使得他们难以应用在视频实时处理中。几年前我也折腾过MadVR渲染器,它集成了Linear、Cubic、Sinc、Lanczos各种插值算法,插值后再通过减少锯齿、调整锐度等手段,达到改善画质的效果,算是提升视频画质绕不开的利器。这个渲染器真正实现了实时放大视频,然而,在CPU跟GPU很一般的情况下,根本跑不起高画质的优化,而低级的优化看到的效果又微乎其微,所以后来我干脆卸载掉MadVR,尽量找vcb-studio优化过的作品看。直到我看到了Anime4K这个项目。
从 waifu2x 说起
二次元是推动技术发展的重要动力把照片分为两大类,一类是相机拍出来的照片,另一类是绘制出来的插图。相对来说,绘制出来的作品线条更有规律可寻,放大后的效果也就更好,waifu2x最初也是针对放大二次元图片而被开发出来第一次接触到的时候跟PS的一对比,我都被惊呆了顺便一提 Camera Raw 13 新增的放大功能,依然是比较垃圾的,具体可以看这个这个视频
waifu2x提供了个demo网站:http://waifu2x.udp.jp/
现在已经可以分别对上述的“插图”与“照片”进行优化。因为这玩意还挺消耗算力的,所以放大倍数上限是2倍,最大支持5M,可以理解
之前到处都能刷到的无损放大网站 bigjpg,就是基于waifu2x,免费版只能放大4倍(实际上我感觉也足够用了)
好东西自然会有人开发出本地的GUI版:
Anime4K
单论放大后的效果,waifu2x确实比Anime4K更为出色,但他的高质量是用性能与时间换回来的,这也注定目前用它来实时优化视频不大实际。那继Lanczos、NGU这些较为优秀的算法以后,在实时优化视频领域,又有什么突破呢?直到去年我看到了Anime4K,一个实时二次元缩放算法,彻底震惊了我他根本不使用深度学习和训练学习,所以速度非常快说那么多没用,直接上手看看效果才最实际当时出来的是GLSL与HLSL的beta版。其中GLSL用在MPV上,HLSL用在Potplayer/MPC上,电脑装的Potplayer,自然就下了HLSL,一顿操作,切换开关,对比画质,这有区别吗,暂停画面我都没看出区别,更别说视频了我不死心,去求助搜索引擎,发现把视频缓冲格式输出为32位浮点就就能看到差别了这下确实看到差别了,但是我这个垃圾屏幕,正常输出跟优化后的32位没啥区别,这不白折腾吗后来甚至特地装了个MPV,对比效果,也看不到多大效果,我又失望了再加上后来看到,GLSL没有跟着更新,也就把它晾在一边了
Anime4KCPP
优化前左,优化后右
直到差不多一年后的今天,看回Anime4K,发现了这个项目,看到他不仅提供GUI,提供插件跟过滤器,甚至还有安卓版本看到DirectShow滤镜支持Potplayer,手痒再次尝试把DSFilter下载下来,解压,不使用内置的滤镜,在全局滤镜中添加Anime4KCPPDS.dll
并强制使用对比效果,这下真的明显了。换了几个视频测试,线条更加平滑了,虽然锐度也降低了,但总体观感要比优化前的好。这个观感的提升,是不需要截图放大,就能明显看出差距的,硬盘里720p的动画不用删了。
Waifu2x-Extension-GUI
既然有这么多好东西,自然有人把他们合并在一起。
Waifu2x-Extension-GUI集齐了Waifu2x-caffe / Waifu2x-converter / Waifu2x-ncnn-vulkan / SRMD-ncnn-vulkan / RealSR-ncnn-vulkan / Anime4KCPP / SRMD-CUDA
,几乎是相关的项目都堆进去了,不仅可以放大图片/视频/GIF,甚至可以给视频插帧,唯一的缺点就是集在一起太大了,1G多。
写在最后
Anime4KCPP其实是紧接着Anime4K出来的,现在的弹弹Play、恒星播放器中甚至内置了Anime4K,所以嫌麻烦可以直接用这两个播放器,对于720p的视频还是有很大帮助的。至于1080P,我的i7 7700HQ + 1050Ti跑起来会音画不同步……
留言