PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   DVD 討論區 (https://www.pcdvd.com.tw/forumdisplay.php?f=5)
-   -   DivX Video 5.0.4 (https://www.pcdvd.com.tw/showthread.php?t=202171)

暴君 2003-10-29 01:14 AM

引用:
Originally posted by Shade
淡入淡出的場景,新版的 XviD 已經有改善。
XviD 的動作搜尋演算法目前的主要設計人員 sysKin,改寫了 i/p/b frame 的判斷決策,現在遇到淡入淡出的場景,XviD 已經不會把每一張都壓成 keyframe 了。
不過我不只一次聽到有網友反應 XviD 對淡入淡出的場景,看起來不如 DivX5,sysKin 新版的改善也有限,所以我想這也許仍然是 XviD 目前的弱點。

還有常聽到有人說 XviD 對很暗很暗的場景容易出現壓縮瑕疵,這點我倒是有親身經歷。
XviD 對那種光線不足,但是又不是完全黑的場景,很容易出現方塊、或者是其他一些奇怪的瑕疵(例如看起來好像有東西黏在上面,髒髒的那種雜訊)。
這個可以利用 MPEG2Dec3.dll 提供的 LumaFilter 功能來解決,Avisynth 的語法如下
# 載入 MPEG2Dec3.dll
LoadPlugin("c:\Program Files\AviSynth 2.5\plugins\MPEG2Dec3.dll")
# LumaFilter,使用預設參數,可以視情況調整
LumaFilter()

你會發現那些暗部瑕疵很神奇地都不見了 :)


可以請問MPEG2Dec3.dll在那裡找嗎?
我找不到

tonyhsie 2004-10-19 02:07 PM

引用:
作者Shade
前面介紹的 warpsharp 內建了一個函式叫做 LoadAviUtlFilterPlugin,可以載入 AviUtl 的 filter,直接在 Avisynth 中使用。
例如我想在 Avisynth 中用 AviUtl 的 Lanczos3 Resize filter,lanczos3.auf 做 resize。
執行 ShowAUFInfo.exe lanczos3.auf >> aufilters.avs 就會印出 lanczos3 的函式

使用的時候
# LoadAviUtlPlugin Lanczos3 Resize
Import("c:\Program Files\AviSynth2\avs\aufilters.avs")
AU_lanczos3Resize(640,480)

warpsharp.dll 舊版的時候 LoadAviUtlPlugin 是獨立一個 LoadAviUtlPlugin.dll,更舊的版本使用前要先加上
ConvertYUY2ToAviUtlYC()
AU_LANCZOS3(640,480)
ConvertAviUtlYCToYUY2()

把 YUY2 轉成 AviUtl 的 48bit YUV 格式,現在好像不用了,程式自動轉換。
另外 loadaui.dll 好像也不見了,變成 warpsharp.dll 內建,function name 好像是 LoadAviUtlInputPlugin。
我很久沒使用了,最新的用法您需要自己研究看看,可以上日本的網站找資料

又寫得太長,好像一點也不簡短 ^^;


今天嘗試把 http://www.marumo.ne.jp/auf/ 的 lanczos3.auf 最新版
掛到 AviSynth 裡,卻怎麼樣也無法成功

不論是用 LoadAviUtlFilterPlugin 直接掛載,或是透過 ShowAUFInfo.exe + Import
都是出現一樣的錯誤訊息

"Avisynth open failure:
ConvertToRGB: 24-bit RGB and Rec.709 support require MMX and horizontal width a multiple of 4
(E:\PL1D102.avs, line 8)"

Lanczos3.auf 吃 YUY2 不吃 RGB24,且 horizontal (704) 也是 4 的倍數沒錯啊

原 avs 檔如下 :
LoadPlugin("C:\Program Files\AviSynth 2.5\warpsharp\warpsharp.dll")
LoadAviUtlInputPlugin("C:\Program Files\AviUtl\m2v.aui","MPEG2VIDEO")
LoadAviUtlFilterPlugin("C:\DL\lanczos3-0.5.1\lanczos3.auf", "_AU_lanczos3Resize")

MPEG2VIDEO("E:\PL1D102\VIDEO_TS\VTS_01_1 - 0xE0 - Video - MPEG-2 - 720x480 (NTSC) - 4~3.M2V")
FieldDeinterlace()
Crop(10,0,704,480)
_AU_lanczos3Resize(640,480)

實在搞不懂問題出在何處,還請 Shade 兄有空指點一下,謝謝 :)

Shade 2004-10-19 05:57 PM

我很久沒用了,Crop(10,0,704,480) 好像怪怪的,如果原始檔案大小是 720x480,左右減 10 會變成 700x480,而不是 704x480,這樣的 Crop 語法應該是錯的,可能是您誤打錯了 :)
如果不是因為這個原因造成錯誤的話,可能 LoadAviUtlFilterPlugin 在使用的時候,還是必須先加上
#ConvertToYUY2()
ConvertYUY2ToAviUtlYC()
AU_LANCZOS3(640,480)
ConvertAviUtlYCToYUY2()

才能工作,試試看 :)

tonyhsie 2004-10-19 06:41 PM

引用:
作者Shade
我很久沒用了,Crop(10,0,704,480) 好像怪怪的,如果原始檔案大小是 720x480,左右減 10 會變成 700x480,而不是 704x480,這樣的 Crop 語法應該是錯的,可能是您誤打錯了 :)
如果不是因為這個原因造成錯誤的話,可能 LoadAviUtlFilterPlugin 在使用的時候,還是必須先加上
#ConvertToYUY2()
ConvertYUY2ToAviUtlYC()
AU_LANCZOS3(640,480)
ConvertAviUtlYCToYUY2()

才能工作,試試看 :)


Crop(a, b, c, d) 是以 (a, b) 為左上起點,向右下方割出一塊長 c, 寬 d 的矩形
因為這個指令我用過很多次了,確定不會有問題 ^^"

但很遺憾的,即使使用上用的三行指令,仍會出現 error,且錯誤訊息一模一樣 ><


不論如何,還是很感謝你的指點 :)
繼續用 lanczos3.vdf 好了 :~~

Shade 2004-10-19 08:35 PM

引用:
作者tonyhsie
Crop(a, b, c, d) 是以 (a, b) 為左上起點,向右下方割出一塊長 c, 寬 d 的矩形
因為這個指令我用過很多次了,確定不會有問題 ^^"

啊,您說的沒錯,是我老糊塗了... ^^;
引用:
但很遺憾的,即使使用上用的三行指令,仍會出現 error,且錯誤訊息一模一樣 ><

我剛剛試了一下,我這邊可以,不過要加上 ConvertYUY2ToAviUtlYC(),不然會出現跟您一樣的錯誤。
我的語法
LoadPlugin("warpsharp.dll")
LoadAviUtlInputPlugin("m2v.aui","MPEG2VIDEO")
MPEG2VIDEO("Triangle Heart -Sweet Songs Forever- #3 OP.VOB")
LoadAviUtlFilterPlugin("lanczos3.auf", "_AU_lanczos3Resize")
ConvertYUY2ToAviUtlYC()
_AU_lanczos3Resize(640,480)
ConvertAviUtlYCToYUY2()
Crop(0,0,640,480)

可以成功。
我的 Avisynth 是 2004/07/14 版,warpsharp.dll 是 2003/11/03,lanczos3.auf 是 2002/05/13,0.5.0 版。
我想 lanczos3.auf 可能是關鍵,我已經忘了當初為什麼要用舊版的 lanczos3.auf,目前兩個目錄下放的都是這一個 plug-in,我已經太久沒動了 :p 好像是測試發現舊版的壓縮率比較高還是....?總之換用舊版的看看 :)

tonyhsie 2004-10-19 09:34 PM

引用:
作者Shade
我剛剛試了一下,我這邊可以,不過要加上 ConvertYUY2ToAviUtlYC(),不然會出現跟您一樣的錯誤。
我的語法
LoadPlugin("warpsharp.dll")
LoadAviUtlInputPlugin("m2v.aui","MPEG2VIDEO")
MPEG2VIDEO("Triangle Heart -Sweet Songs Forever- #3 OP.VOB")
LoadAviUtlFilterPlugin("lanczos3.auf", "_AU_lanczos3Resize")
ConvertYUY2ToAviUtlYC()
_AU_lanczos3Resize(640,480)
ConvertAviUtlYCToYUY2()
Crop(0,0,640,480)

可以成功。
我的 Avisynth 是 2004/07/14 版,warpsharp.dll 是 2003/11/03,lanczos3.auf 是 2002/05/13,0.5.0 版。
我想 lanczos3.auf 可能是關鍵,我已經忘了當初為什麼要用舊版的 lanczos3.auf,目前兩個目錄下放的都是這一個 plug-in,我已經太久沒動了 :p 好像...


語法上大致相同,warpsharp 版本也相同,lanczos3 也換成 0.5.0 了
仍然不行;有可能是因為 AviSynth 版本的關係,我是用 2004/9/1 2.5.5 正式版

現在在轉檔,待會更換版本試試好了 :)


另外想請教您,AviSynth 使用 AviUtl 的 plug-in 時,是否需要安裝 AviUtl ?
或甚至需要到 AviUtl 去設定該 plug-in ?


Lanczos3 0.5.1 變更點

"VFAPI 動作時スジズ MMX 整䓡/SSE2 琔䓡 ゎ 非 SIMD シウサ動作エペдヲソ修正ヵ⑦еユьメ Intel C 7.0 ズ𨬢更 "

VFAPI 動作時等等 MMX 整數/SSE2 實數 會以非 SIMD動作 back修正 Intel C 7.0 Compiler 的變更?!

大感謝:D

看起來或許跟錯誤訊息有關也說不定,只是實在看不太日文在說啥....:(

tonyhsie 2004-10-20 05:05 AM

引用:
作者tonyhsie
語法上大致相同,warpsharp 版本也相同,lanczos3 也換成 0.5.0 了
仍然不行;有可能是因為 AviSynth 版本的關係,我是用 2004/9/1 2.5.5 正式版

現在在轉檔,待會更換版本試試好了 :)


沒想到把 AviSynth 換成 2.5.6 alpha 版問題就解決了,
以前都用 DVD2AVI/MPEGDec3dg/內建 LanczosResize 的組合轉檔,

現在換成 MPEG2 VFAPI plug-in / Lanczos3.auf 組合試試 ^^"

感謝 Shade 大的幫忙~!

AMD-Ti 2004-10-20 05:14 AM

繼續使用XVID
anyway,謝分享.


所有的時間均為GMT +8。 現在的時間是04:55 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。