一鍵提昇動漫影片畫質 ~ Linux/Android版的Anime4K使用教學

目錄
如果你找到的動漫影片畫質低下想要改善,或是看到喜歡的圖片畫質卻不夠做成桌布,那麼你就需要能用魔法放大圖像的工具。
在這裡為您介紹bloc97開發的「Anime4K」,它是可以即時提昇2D動畫畫質的開源工具。不用轉檔播放影片立即生效。可在Linux上達成類似mpv-lazy的效果。
除此之外還有以Anime4K技術製成的轉檔工具「Anime4KCPP」,類似Waifu2x,專門把動漫圖片和影片放大之用。
Anime4K支援Linux/Windows/MacOS系統,甚至Android手機也能用。本文將簡介Anime4K在Linux和Android的用法。
1. Anime4K效果預覽 #
Anime4K具體效果如何呢?請先看圖。
Anime4K最好用獨立顯示卡運算,例如我的是Nvidia GTX1050Ti。跟類似的放大技術Real-ESRGAN比起來,Anime4K不需要經過冗長轉檔,不到一秒就能提昇目前播放影片的畫質。
例如1080p影片提昇至接近4K畫質,細節變清晰了:
或是720p變類似1080p
Anime4K最直觀感受的是線條變得清楚,但根據開發者說法,Anime4K僅針對H.264/H.265/VC-1編碼的1080p影片最佳化,720p以下放大會更容易糊掉,因此用來放大1080p(含以上)影片效果最好。
開發者也 指出,Anime4K不是生成對抗網路,效果並沒有比SRGAN好很多。
最後,Anime4K是針對動畫訓練的,因此對動畫以外的影片幾乎無效。
2. Linux版MPV如何使用Anime4K #
Linux要用MPV播放影片,再載入Anime4K的GLSL shader(著色器)達成提昇畫質的效果,最好使用獨立顯示卡運算。
Anime4K版本為v4.0.1,系統為Arch Linux,顯示卡為Nvidia GTX1050Ti
- 參照 Github的說明安裝MPV播放器。例如Arch Linux為:
sudo pacman -S mpv
- Anime4K最好依賴顯示卡運算。Linux安裝獨顯驅動,順便裝個CUDA:
sudo pacman -S nvidia-dkms cuda
- 取得Anime4K的GLSL檔案
git clone https://github.com/bloc97/Anime4K.git
cd Anime4K
- 將Anime4K的全部GLSL檔(非目錄)複製到MPV設定檔目錄下的
shaders
:
mkdir ~/.config/mpv/shaders
find glsl -type f -exec cp "{}" ~/.config/mpv/shaders \;
- 編輯
~/.config/mpv/mpv.conf
,加入MPV的播放參數,啟用GPU加速
keep-open=yes
sub-auto=fuzzy
hwdec-codecs=all
profile=gpu-hq
- 編輯
~/.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"
原理:開發者定義了A、B、C、A+A、B+B、C+A模式,每按一個組合鍵就會啟用多重shader提升畫質,使用者要自行判斷哪個比較好。
接著用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模式,在
~/.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"
3. Android手機MPV如何使用Anime4K #
參考 在安卓上优雅地食用Anime4K - Bilibili
由於需要強力圖形處理能力,Android手機處理器圖形性能建議至少要在Qualcomm Snapdragon 845之上才跑得動Anime4K。
話說若不是平板的話,手機螢幕那麼小放大到4K意義在哪裡。
從 Github下載MPV的APK,似乎得下載舊版才能用。
到Anime4K的Github,點選下載zip的功能,下載所有檔案
解壓縮,將全部的GLSL檔放到
內部儲存空間/Documents/Anime4K
開啟MPV,點選右上角Settings → Advanced → Edit mpv.conf,填入以下內容。Android的MPV因為不方便按快捷鍵,所以只好設定一開啟就載入GLSL。下面我寫的內容對應電腦版的Mode A+A
glsl-shaders-append="/storage/emulated/0/Documents/Anime4K/Anime4K_Clamp_Highlights.glsl"
glsl-shaders-append="/storage/emulated/0/Documents/Anime4K//Anime4K_Restore_CNN_M.glsl"
glsl-shaders-append="/storage/emulated/0/Documents/Anime4KAnime4K_Upscale_CNN_x2_M.glsl"
glsl-shaders-append="/storage/emulated/0/Documents/Anime4K/Anime4K_Restore_CNN_S.glsl"
glsl-shaders-append="/storage/emulated/0/Documents/Anime4K/Anime4K_AutoDownscalePre_x2.glsl"
glsl-shaders-append="/storage/emulated/0/Documents/Anime4K/Anime4K_AutoDownscalePre_x4.glsl"
glsl-shaders-append="/storage/emulated/0/Documents/Anime4K/Anime4K_Upscale_CNN_x2_S.glsl"
- 這樣播放影片就會有提昇畫質的效果了,相應的手機也會開始變卡。
4. 配合Vapoursynth提昇影片FPS #
參見 Linux版Vapoursynth MVTools設定教學
附錄:如何用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的豪華內容。