iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
自我挑戰組

一天一招,快速上手 mpv-lazy系列 第 11

Day11:DRBA補幀 - RIFE 之外的新選擇

  • 分享至 

  • xImage
  •  

DRBA 介紹

智能分區,精準“雙標” —— 傳統的補幀演算法往往一刀切,強行讓所有物體都變絲滑。DRBA引入了 Distance Ratio Map 機制,嘗試識別畫面中的不同區域:

對背景(線性運動區): 全力補幀。無論是鏡頭平移還是背景滾動,盡力消除頓感。
對人物(非線性運動區): 保持克制。識別並保護動漫人物特有的“一拍二”或“一拍三”作畫節奏,避免破壞性插幀。
引用: DRBA 即時補幀 · hooke007/mpv\_PlayKit · Discussion #641

簡單來說是一種新的 AI 補幀算法,我們直接看差異。

Yes

從選單啟用

右鍵濾鏡可以選擇 DRBA_RTX,一樣第一次會跳出小視窗跑 TensorRT engine 加速,非 NV 顯卡請選擇 DRBA_DX12。

https://ithelp.ithome.com.tw/upload/images/20260810/20182793JcPAPMEmNp.png

RTX VSR(超分) + DRBA 補幀

這次用 RTX VSR + DRBA,效果覺得還不錯。假如遇到 RIFE 畫面抖動的話,可以用這個方案。

vf=d3d11vpp=format=nv12:scale=1.6:scaling-mode=nvidia,vapoursynth="~~/vs/MEMC_RIFE_NV.vpy"

腳本裡要改的幾行

打開 MEMC_DRBA_NV.vpy,使用者選項區是這樣:

H_Pre = 1440      # 先把片源降到這個高度再處理(填你螢幕的高度)
Model = 2         # 用哪顆模型,1 或 2
Fps_Num = 2       # 倍率的分子
Fps_Den = 1       # 倍率的分母
Sc_Mode = 0       # 場景切換偵測,0 = 停用
Gpu_T = 2         # 顯卡執行緒數

跟 Day 4 的 RIFE 幾乎是同一套結構,H_Pre 一樣是跑不動時第一個該動的地方。但有兩個差異要特別講。

第一,Model 的兩個值差很多。 1 是完整版、2 是輕量版(v2_lite),出廠預設是 2。而 1 的開銷大概是 2 的兩倍以上 —— 這不是小差距,別隨手改。

我的腳本

我4070 TI 能跑的效能。之前剛出來的時候只能950p,今天測試竟然設定 1080p,可以順利跑。(後來發現是免強順跑,有時會掉幀。)

UAI 4k + DRBA x2

import vapoursynth as vs
from vapoursynth import core
import k7sfunc as k7f

clip = video_in
if clip.height < 2160 * 0.85 :
    clip = k7f.FMT_CTRL(clip, h_max=1080)
    clip = k7f.UAI_NV_TRT(clip, model_pth="the_database_AnimeJaNaiV2L1_x2_fp16_op17.onnx", fp16_qnt=True, gpu=0, gpu_t=2, st_eng=True)
    clip = k7f.FMT_CTRL(clip, h_max=2160)
if container_fps <= 32 :
    clip = k7f.FMT_CTRL(clip, h_max=2160)
    clip = k7f.DRBA_NV(clip, model=2, turbo=2, fps_in=container_fps, fps_num=2, gpu=0, 
if not (clip == video_in) :
    clip.set_output()

UAI 2k + DRBA x3

import vapoursynth as vs
from vapoursynth import core
import k7sfunc as k7f
clip = video_in

if clip.height < 2160 * 0.85 :
      clip = k7f.FMT_CTRL(clip, h_max=720)
      clip = k7f.UAI_NV_TRT(clip, model_pth="the_database_AnimeJaNaiV2L1_x2_fp16_op17.onnx", fp16_qnt=True, gpu=0, gpu_t=2, st_eng=True)
      clip = k7f.FMT_CTRL(clip, h_max=2160)
if container_fps <= 32 :
    clip = k7f.FMT_CTRL(clip, h_max=2160)
    clip = k7f.DRBA_NV(clip, model=2, turbo=2, fps_in=container_fps, fps_num=3, gpu=0, gpu_t=2)
if not (clip == video_in) :
    clip.set_output()

後話

這模型剛出的時候,會有嚴重的抖動。不過今天嘗試沒有這個現象,可能最新 mpv-lazy 已經被改善,假如之前沒有這個問題的話,我可能會放在前面幾篇,建議可以考慮當主力補幀

想看缺點的話,可以看 非人學生與厭世教師 05 ED(22分後面) 文字有點抖動,但已經比之前好多了,有先缺點不是每個畫面都會有,所以我覺得只要利大於弊(Z>B),其實就可以用了。

相關文章


上一篇
Day10:RTX Video HDR 讓你的影片變成 HDR
下一篇
Day12:AI 超分之外的選擇:著色器(Shader)畫質強化
系列文
一天一招,快速上手 mpv-lazy13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言