網誌文章分布

最新消息:
AviSynth/VapourSynth Filter 支援 YUV444P16 格式啦~ 這樣就有很多花樣可以玩了,像是Waifu2X, RIFE等RGB濾鏡可以幾乎無損輸出! 超開心
最近的腳本有提供RIFE實時撥放支援,等過段時間再把RIFE的相關資訊寫到Blog中 如果有時間的話...咕咕咕
DmitriRender迎來時隔年五年多的更新了(僅限NVIDIA Ampere, Turing, Pascal, Maxwell, Kepler顯示卡),同時也支援10Bit輸出。不過新版好像緩衝有點太少,容易卡頓
SVP最新版本已支援在DS系撥放器中透過Avisynth Filter輸出10Bit畫面,而且跳轉時卡頓狀況有大幅改善。
由AMD工程師回覆,AMD已徹底終止Fluid Motion技術,如有BFRC需求的用戶請多加留意。 (https://community.amd.com/thread/250830)

近期更新文章:
測試筆記:SVP最新測試版參數(beta script)(2023-12-17 腳本更新)
進階教程系列(十二) - 視訊解碼濾鏡 MPC Video Decoder(2022-06-11)
進階教程系列(三) - 字幕渲染濾鏡 XySubFilter丶AssFilterMod(2022-06-11更新)

2017年6月4日 星期日

SmoothVideo Project 系列(四) - 自製功能(2022-05-02 更新)

本文主要是放置我修改的腳本功能介紹,腳本可於 測試筆記:SVP最新測試版參數(beta script) 或 SmoothVideo Project 系列(三) - SVP自動除幀腳本 中找到,直接強化原有參數的部分就不多提,主要說明變化影響較大的幾個功能。

目前新增的功能有以下幾種
1. SVP自動除幀腳本
2. 關閉HDR映射功能
3. 提升輸出幀率精度功能
4. 偵測腳本是否有正常載入
5. 修正特定情況下的SVP色彩錯誤


SVP自動除幀腳本

用於處理部分轉換過程中產生重複影格的影片,如果確定影片轉換過程中有錯誤才使用,否則不建議開啟,詳細見 SmoothVideo Project 系列(三) - SVP自動除幀腳本

關閉HDR映射功能

在使用ffdshow raw video filter時,如果撥放HDR影片,由於ffdshow不支援傳遞HDR meta data,導致色彩錯誤,所以SVP會對影片進行HDR色調映射,來改善觀感。不過,SVP內建的色調映射效果還是比不上madVR的色調映射,因此在腳本中新增一項功能,「檔案路徑中包含hdr=on時,關閉SVP的HDR色調映射功能」。
在madVR在檔案路徑中包含hdr=on時,就會強制開啟madVR的色調映射,而強制關閉SVP的HDR色調映射。

提升輸出幀率精度功能

此功能可以用於提升輸出幀率精度,像是將23.976 fps提升精度至 24000/1001 fps等,但缺點是不支援幀率會變動的影片,例如:兩段不同幀率拼接而成的影片,因此預設沒有開啟。
由於mkv封裝的時間精度較差(timecodes),只有毫秒等級,24000/1001 fps每幀時長為41.70833ms,但mkv格式封裝後會變成41.00000ms、42.00000ms這兩種時長反覆切換,開啟此功能後可以恢復成41.70833ms。
可以參考SmoothVideo Project 系列(三) - SVP自動除幀腳本中的使用者定義選項進行修改。

標題:Precision
指令碼名稱:analyse_main_precision
選項範圍:FRC配置
允許值: 列表:0,1
(設為1時,表示啟用輸出幀率精度提升功能)

偵測腳本是否有正常載入

用於偵測override.js是否有正常載入的功能,如未正常載入,會在影片左上角顯示override.js未載入,預設開啟。

修正特定情況下的SVP色彩錯誤

修正在播放10Bit影片,透過Vapoursynth Filter執行SVP補幀輸出10Bit畫面時,畫面呈現綠色的問題。詳細請見:https://github.com/CrendKing/avisynth_filter/issues/65
AviSynth Filter已於 v1.4.0版內建此修正,故移除腳本內修正

支援SVP官方提供的RIFE套件

SVP 4 Pro官方雖然有提供實驗性的RIFE功能讓用戶嘗鮮,但目前官方版本這功能是無法正常執行的,因此做了一些修正,除了讓RIFE功能正常外,也讓RIFE可以支援DirectShow的VapourSynth Filter。(由於RIFE還在快速開發中,可能過段時間後,就要重新修改)
20220409修改:
    1. 停用Math precision選項支援,目前SVP採用的VapourSynth-RIFE-ncnn-Vulkan不支援這選項。
    2. 將預設的模型通用、日本動畫改為rife-v4、rife-anime模型。

20220416修改:
    1. 試圖緩解開啟RIFE後,SVP字樣不會消除的情況,代價是SVP指數功能被關閉
    2. 添加 vs-rife 支援,可以透過PyTorch(CUDA)加速運算,但目前似乎ncnn-Vulkan更快一籌。
    3. YUV444/YUV422影片的輸出解析度從YUV420提升到YUV444/YUV422。
    4. 自製功能在開啟RIFE後依然可以作用。

註: 欲嘗試 vs-rife 的用戶可以參考 RIFE / PyTorch installation 安裝PyTorch及vs-rife,我有時間在整理到網誌上。


更新threads算法

可以參考這篇文章 測試筆記:SVP於 AviSynth / VapourSynth 的效能測試,測試過程中發現SVP在不同執行緒下的資源消耗不同,採用近似於Mickey 20220326_Decimate腳本的設定,使用較佳的執行續設定取代SVP預設設定。
由於Sysinfo.dll不支援偵測部分硬體,故將Avisynth環境中的theads算法還原成SVP官方版本,僅更新Vapoursynth環境下的threads。

更新dither和縮小算法

將預設dither算法從random更換成ordered以及將縮小算法從從precise bicubic(b=0, c=0.75)改為Catmull-Rom(b=0, c=0.5)。


2022-03-01

更新內容
2022-03-15 新增功能: 修正特定情況下的SVP色彩錯誤,更新提升輸出幀率精度功能說明。
2022-04-09 新增功能: 支援20220409 SVP官方提供的RIFE套件,更新threads算法。
2022-04-09 新增功能: RIFE功能增加,支援vs-rife,更新dither和縮小算法。
2022-05-02 移除功能: 移除Avisynth環境中的更新dither算法。

20 則留言:

  1. 請問只要把您已解壓縮的三個檔案加上override.js覆蓋原本的內容即可? 還是下方那些未解壓縮的檔案也要一併解出來去覆蓋呢?

    回覆刪除
    回覆
    1. 壓縮檔裡的壓縮檔不用解壓,那只是保留來源原樣而已,下次應該會拿掉...
      留意override.js的位置不太一樣,不在SVP資料裡面。

      刪除
    2. 了解,又發現一個問題使用avisynth_filter濾鏡3.7.1版好像會和SVP沖到,potplayer播放器會直接卡死,降到3.7.0則沒這問題,不曉得大大您有沒有遇到?

      刪除
    3. 我沒遇到卡死的問題,但我有遇到PotPlayer性能異常的問題。
      Present階段花費的時間是MPC-BE的16倍之多,導致drop frames很嚴重
      https://i.imgur.com/W0yW76M.png

      刪除
    4. 剛在測試Avisynth Filter自訂腳本功能時,發現腳本中有ConvertToYUV420()或ConvertBits()指令時,均會導致撥放器崩潰,但神奇的是SVP所執行的腳本也有包含這兩個指令,但卻不受影響。

      切換回Avisynth 3.7.0後,情況似乎緩解了(太晚了,沒仔細試)
      稍微查一下資料,看起來有點像這個issue
      https://github.com/AviSynth/AviSynthPlus/issues/275

      刪除
    5. 剛剛看到Avisynth 3.7.2發布,聽說有解決issues 275,所以試了一下。
      hmm...在Avisynth filter中使用這兩個指令還是會導致撥放器崩潰。

      經過測試,可以運行ConvertToYUV420()的最新版本為Avisynth_3.7.1_20211103_test23
      可以運行ConvertBits()的最新版本為Avisynth_3.7.1_20211104_test24
      https://forum.doom9.org/showthread.php?t=181351

      額外試了一下ffdshow raw video filter,好像沒這問題。

      刪除
    6. 已發issue,等候AVSF作者回應中
      https://github.com/CrendKing/avisynth_filter/issues/66

      刪除
    7. hmm...看起來沒辦法解決,最多只能更新到Avisynth+ v3.7.0 (或v3.7.1_20211103_test23)。

      刪除
  2. 感謝大大撥空測試,那ffdshow raw video filter和Avisynth 有什麼區別嗎? 用了一陣子的Avisynth 觀看電影之類的真人影像,偶爾會發生拉動進度條導致畫面延遲,影像和語音不同步的情況,體驗不是太好

    回覆刪除
    回覆
    1. ffdshow raw video filter一款很久沒更新的上古濾鏡,裡面也有內建Avisynth,但這濾鏡的Avisynth只支援8Bit輸入/輸出。
      請問是在什麼情況下會產生影音不同步呢?
      (老實說...我好幾年沒在電腦上開撥放器看影片了,這幾年新出的AVSF濾鏡,只有修改腳本時會用到,所以不太確定穩定性如何)

      刪除
    2. 拉動影片進度條的時候偶爾會發生,但不一定會出現。題外話不曉得大大有沒有機會能出個真人影像的參數,這東西真的太專業了,真的心有餘力不足。

      刪除
    3. 真人影像我不太喜歡補過的畫面,看不習慣。
      近幾年也沒什麼時間窩在電腦前看影片 嗚嗚嗚...

      刪除
  3. 請問我使用Potplayer 嘗試過兩種Decimate_SATD、Decimate 檔案放完之後Potplayer都沒辦法使用到SVP4(左下角沒跳出提示啟用)
    有重新在potplayer上偏好設定中重新設定一次 也沒有反應
    交叉測試是 將pluging64、script放入SVP4資料夾中後就會發生這樣的問題
    SVP4 Pro 是最新版的 想請問有哪個環節出問題
    後來的解決辦法是把除了override.js的其餘資料夾資料與原始資料並存
    Potplayer就可以讀到了

    回覆刪除
    回覆
    1. 诶...override.js不是放在SVP資料夾下喔,要放在%USERNAME%\AppData\Roaming\SVP4裡。
      如果SVP無法啟動,請提供日誌檔案給我,謝謝。日誌檔案位置如下
      https://i.imgur.com/kPKQCKK.png

      刪除
  4. https://cdn.discordapp.com/attachments/189707564097732609/957292620663627806/unknown.png

    回覆刪除
    回覆
    1. 啊...是我說明不清楚,明天把那篇內文修正
      是把壓縮檔中的plugins、plugins64資料夾覆蓋原始資料夾,覆蓋後資料夾中應該會有原始SVP提供的dll檔案加上我額外加入的檔案。
      不是刪除原始資料夾後,將壓縮檔的檔案移入SVP目錄中。

      你的日誌中顯示缺少svpflow1.dll和svpflow2.dll這兩個SVP官方提供的.dll檔案,這兩個檔案在壓縮檔未提供,所以SVP無法正常啟動。

      您後來所做的"資料夾資料與原始資料並存",這才是正確的做法喔 :D

      刪除
    2. 辛苦了 原來這樣才是正確作法
      觀影體驗 提升有感 謝謝黑米奇大大的教學

      刪除
  5. 想問個笨問題
    20220409_SATD https://bit.ly/3Kvrg4w 檔名是"_Decimate"
    20220409_Decimate https://bit.ly/3NYR7E3 檔名是"_Decimate_SATD"

    SATD的檔名是"_Decimate"
    Decimate的檔名是"_Decimate_SATD"

    加上說明幾乎一樣
    到底這兩種版本差別在哪看不太明白...XD

    回覆刪除
    回覆
    1. 不是笨問題,是我連結放反了 抱歉QQ
      已修正,謝謝告知

      刪除
    2. 基本上兩個只有override.js檔案有差異,
      現在為了更新方便,其實很多版本我都共用同一套檔案,只是使用參數把某些功能關閉而已

      刪除

熱門文章