如果你找到的動漫影片畫質低下想要改善,或是看到喜歡的圖片畫質卻不夠做成桌布,那麼你就需要能用魔法放大圖像的工具。
在這裡為您介紹bloc97開發的「Anime4K」,它是可以即時提昇2D動畫畫質的開源工具。不用轉檔播放影片立即生效。可在Linux上達成類似mpv-lazy的效果。
除此之外還有以Anime4K技術製成的轉檔工具「Anime4KCPP」,類似Waifu2x,專門把動漫圖片和影片放大之用。
Anime4K支援Linux/Windows/MacOS系統,甚至Android/iOS手機也能用。本文將簡介Anime4K用法。
1. Anime4K效果預覽#
Anime4K具體效果如何呢?請先看圖。
Anime4K需要搭配播放器使用,在Linux上就是MPV。運算時需要獨立顯示卡才跑得動,例如我的是Nvidia GTX1050Ti。
Anime4K可以將1080p影片提昇至接近4K畫質,細節變清晰了:
或是720p變類似1080p
順帶一提,MPV可以當圖片檢視器(開啟主程式後把圖片拖進去),你可以把Anime4K當作暫時提昇圖片畫質的一個「濾鏡」工具。
2. 比較Anime4K與GAN圖片放大技術#
Anime4K最直觀感受的是線條變得清楚。根據開發者說法,Anime4K僅針對H.264/H.265/VC-1編碼的1080p影片最佳化,720p以下放大會更容易糊掉,因此用來放大1080p(含以上)影片效果最好。
且Anime4K是針對動畫訓練的,對動畫以外的影片幾乎無效。
開發者也 指出,Anime4K不是生成對抗網路,放大效果並沒有比Waifu2x/SRGAN/ESRGAN/Real-ESRGAN好。
但是Anime4K不是最好的圖片放大技術。如果你實際拿Anime4K跟Waifu2x、GAN之類的放大圖片技術比較,你會發現Anime4K還是有很多模糊的地方。
Anime4K的優點在於它是「即時運算」,宛如影片播放器的特殊濾鏡,不需要像GAN要等轉檔完成,而且GAN需要更高級的顯示卡。如果你只是想要「看起來」影片畫質很好,那麼Anime4K就夠用了。
3. Linux版MPV如何使用Anime4K#
Linux要用MPV播放影片,再載入Anime4K的GLSL shader(著色器)達成提昇畫質的效果,最好使用獨立顯示卡運算。
Anime4K版本為v4.0.1,系統為Ubuntu,顯示卡為Nvidia GTX1050Ti
用Flatpak安裝 MPV播放器。
Anime4K最好依賴顯示卡運算。Linux需 安裝Nvidia專有驅動,順便裝CUDA。
取得Anime4K的GLSL檔案
git clone https://github.com/bloc97/Anime4K.git
cd Anime4K
- 將Anime4K的全部GLSL檔(非目錄)複製到MPV設定檔目錄下的
shaders
:
mkdir ~/.var/app/io.mpv.Mpv/config/mpv/shaders
find glsl -type f -exec cp "{}" ~/.var/app/io.mpv.Mpv/config/mpv/shaders \;
- 編輯
~/.var/app/io.mpv.Mpv/config/mpv/mpv.conf
,加入MPV的播放參數,啟用GPU加速
keep-open=yes
sub-auto=fuzzy
hwdec-codecs=all
profile=gpu-hq
- 編輯
~/.var/app/io.mpv.Mpv/config/mpv/input.conf
,加入MPV的快捷鍵設定。以下為參考 Github說明所填寫,適用於GTX1650以下低階顯示卡的設定值。
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A (Fast)"
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B (Fast)"
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C (Fast)"
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A+A (Fast)"
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_S.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B+B (Fast)"
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C+A (Fast)"
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
原理:Anime4K的開發者提供了數十種以上的著色器,包含放大、修復、銳化、降噪、去模糊。
參見 開發者Github,他定義了A、B、C、A+A、B+B、C+A五種模式,每種模式由多個著色器組成。每按一個組合鍵就會啟用對應的模式提升畫質,使用者要自行判斷哪個比較好。
接著用MPV播放影片試試吧,檔案管理器裡對影片右鍵應可選取用MPV播放。
影片播放時按
CTRL
+數字鍵1~6
開啟Anime4K提昇畫質,按CTRL+0還原。目前Anime4K v4共有6種模式,通常使用A+A模式效果就夠了。啟用Anime4K時可按
Shift
+I
再按2,查看Anime4K的shader有無顯示在user shader列表,代表正確執行。如果要設定MPV播放影片便自動套用Anime4K A+A模式,在
~/.var/app/io.mpv.Mpv/config/mpv/mpv.conf
加入以下設定
glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"
- MPV也可以在看網路串流影的時候將其放大,參見 MPV Handler
4. 如何在手機使用Anime4K#
參考 Android版MPV+Anime4K使用教學和 iOS版Anime4K使用教學
5. 配合Vapoursynth提昇影片FPS#
參見 Linux版Vapoursynth MVTools設定教學
6. 如何用Anime4KCPP轉檔放大影片與圖片#
Anime4KCPP是採用Anime4K技術的「轉檔」軟體,將Anime4K的升級畫質結果轉成影片儲存,這樣播放就不需要額外耗費顯示卡運算了。
這可以說是離線版的Waifu2x,更棒的是還能轉影片。
Github提供的程式僅Windows和Android版有圖形界面,Linux只有純文字模式。
- Linux版要自行編譯,首先安裝編譯用的套件:
sudo pacman -S cmake gcc clang opencv python-opencv boost qt5-tools
- 開始編譯:
git clone https://github.com/TianZerL/Anime4KCPP.git
cd Anime4KCPP && mkdir build && cd build && cmake ..
make -j$(nproc)
- Anime4KCPP的執行檔位於
bin
,查看是否有正確安裝:
cd bin
./Anime4KCPP_CLI -V
接著開始轉檔。Nvidia顯示卡轉檔時可調用CUDA加速,圖片轉檔通常不會超過10秒。
範例一:將同目錄下的圖片
input.png
放大4倍,保持圖層透明度,輸出為output.png
:
./Anime4KCPP_CLI -i "input.png" -o "output.png" --GPUMode --zoomFactor 4 --alpha --CNNMode --HDN
成果
範例二:影片放大2倍,MP4轉MKV,使用AVC1編碼:
./Anime4KCPP_CLI -i "input.mp4" -o "output.kmv" --GPUMode --videoMode --codec avc1 --CNNMode --HDN
更多參數參考 Github Wiki。
順帶一提,此款工具可以配合 RIFE使用,讓動漫影片變成4K60FPS的豪華內容。