PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   DVD 討論區 (https://www.pcdvd.com.tw/forumdisplay.php?f=5)
-   -   《VirtualDubMod + AviSynth 簡易教學》DVD 轉 XviD 公認最簡單,轉檔速度最快,品質最好,挑片率0的方法! (https://www.pcdvd.com.tw/showthread.php?t=222652)

snic 2004-06-21 11:22 PM

引用:
Originally posted by taitongtan

我的想法是這樣的
16:9的DVD我們照Shade兄的標準做法
720x480-->704x480-->704x396或同比例縮小-->切黑邊
那若依以下做法應該也不會變形
720x480-->720x396(1.8181...)-->640x352(1.8181...)
不過好像只有640x352數字好看 而且還不能有黑邊
不然就是
720x480-->720x396-->切黑邊-->同比例縮小
不過數字不好掌握 不太實用
好像只有沒黑邊16:9的DVD這樣做才比較有好處

不知道我的想法有沒有錯
還請前輩們指教 :)

你的問題以前就有人提過,Shade大神也回覆過
所以我替Shade大神回答你(s大神文章果然好用XD)
出處(剛提的3大經典主題之一)
http://forum.pcdvd.com.tw/showthrea...10&pagenumber=2
引用:
Originally posted by Shade
是的,從數字上來說不算錯誤,而且比例也正確,不過從 AVI 檔的解析度來說,這樣的解析度不是一個好的解析度,我那時心急口快,就直說這是一個"錯誤"的解析度,用詞不當,非常抱歉 :)
我發覺我寫過最多次的好像就是 resize?應該比 YC 伸張、壓縮還要多次了,這真是一個萬年回答不完的疑問 :D
以前寫過一篇,這裡好像沒有貼過,轉過來
==
那個討論是說,先補黑邊再 resize,可以不用切掉原本的畫面,還能維持正確的 PAR 比例。
例如討論中 manono 所舉的例子,NTSC 16:9 anamorphic 720x480,先上下各補 4 pixels 的黑邊變成 720x488,再切掉下面 2 pixels,變成 720x486,再 resize 至 576x320。這樣沒有切到原本 720x480 的畫面(最後是由 720x486 去 resize 的,比原本多出 6 pixels 的黑邊,沒有切到原本的畫面),而且 PAR error 還是 0%。
manono 寫的 avs:
LoadPlugin("E:\DIVXST~1\GKnot\mpeg2dec.dll")
mpeg2source("D:\Wasabi\Wasabi.d2v")
AddBorders(0,4,0,4)
crop(0,0,720,486)
BicubicResize(576,320,0.333,0.333)

在 YUY2 模式下處理的話,垂直解析度應該可以增加奇數的 pixels 吧?所以可以改成上下各加 3 pixels 變成 720x486 直接 resize -> 576x320,就不用多一步 crop(0,0,720,486),把多餘的 pixel 切掉的步驟了。

其實如果是 NTSC 16:9 anamorphic,根本不用先補什麼黑邊,如果不管水平解析度要能被 32 整除的限制,720x480 直接 resize 為 720x395 就是正確的比例(不過水平 720 不能被 32 整除)。
什麼?高度 395 不能被 16 整除?沒關係,再多補黑邊變成 720x400 就可以了。resize 正確以後要再多補多少黑邊,或切掉多少畫面都不會影響正確的比例。但是要注意播放的時候螢幕解析度必須要設定為是 4:3 的比例,例如 640x480, 800x600, 1024x768... 等等。
(中略)
720x480 直接 Resize 至 720x395 比例仍然正確,是新版 GKnot 的算法(以左右切邊為 702 為正確比例,也就是 PAR 72/79 為正確比例)。舊版是以 704 為正確切邊,也就是 PAR 10/11 為正確比例,算出來的解析度不同。上面是以新版為準。

以前曾提過,NTSC D1 取樣出來的解析度其實是 720x486,因為 486 不能被 16 整除,所以切掉底部的 6 條掃瞄線,所以 NTSC DVD 上的解析度是 720x480。對於 NTSC 4:3 的 DVD,如果我們先上下多補 6 pixels 的黑邊,補成 720x486 再 resize,你會發現這時左右就不用切邊到 702,只要切邊到 711,從 711x486 再 Resize 就是正確比例。詳細的原理和計算法我就不再重述了。這樣看起來好像不錯,左右不用切那多,但是其實有利有弊。711x486 resize 雖然左右切邊減少,但上下卻多出 6 pixels 黑邊,播放時放大到全螢幕上下多出黑邊,可視範圍還是減少。其二,如果是做 640x480 的影片,原本 702x480 resize 至 640x480,垂直方向一樣是 480 不用 resize,等於只有做水平方向 resize,損失較小。711x486 -> 640x480,垂直 486 要變成 480,要做 resize,同時水平 711->640 做 resize 效果不好,畫面損失較大。所以我說有利有弊。

如果是 16:9 的影片,是可以考慮用先補黑邊的方式來避免切邊。

我個人是不太在意左右切邊的問題,反正那些要切掉的畫面就當作是多餘的,切掉一點也不會心疼 :p
(那些邊只是取樣的時候多取樣一點作為保險機制,切掉也沒有什麼損失,反正就當作是本來就不屬於我的東西,沒有也無所謂,這樣安慰自己也許會釋懷一點 :p )
==
轉貼完畢。

整理如下:
1. 製作 640x480 有它的好處,將螢幕解析度一樣調整為 640x480 播放,播放時不用再經過 resize,畫面最清晰、銳利。

2. 先左右切邊再 resize,也就是 720x480 -> 704x480 -> 640x480,垂直方向不會動到,不用作 resize,畫質損失最小,做出來畫面最清晰、銳利。

3. 左右不切邊,保留了左右的畫面,有效範圍變大,但是上下要補黑邊,可視範圍還是縮小。而且左右通常會有毛邊,留下來不好看,且不利壓縮。

4. 根據學理,720x480 不是 4:3,704x480 才是 4:3。既然我們知道要的是 4:3 的畫面,當初的設計也是 4:3,左右多出來的其實是多餘的,那麼切掉應該是順乎天理,應乎人情,很自然的事情?這樣想下手切的時候心裡就會好過一點 :p

真要強調保留所有原始畫面,那麼 720x480 也不是所有原始畫面,其實一開始做成 DVD 的時候,垂直就損失 6 條掃瞄線(720x486 -> 720x480,為了 480 才能被 16 整除)。要更吹毛求疵,其實取樣的時候就已經不是取樣全部所有畫面,真要全部所有畫面,那得拿原始電影膠片來轉才行 :p

既然導演在製作的時候就決定把這些畫面切掉,可見這些畫面不是"重點",既然畫面的多寡不是重點,考量到 704x480 -> 640x480 能保留最好的"畫質",考量到 704x480 -> 640x480 播放時可以有最大的可視範圍,考量到 704x480 -> 640x480 切掉黑邊、切掉毛邊利於壓縮,考量到順乎自然的原則(?),考慮到計算、製作、理解、記憶的方便,小弟還是建議一律
1. 左右切邊到 704x480(702x480)
2. 然後 resize
3. 把多餘的黑邊切掉

要做 VCD,一定要 720x480 -> 704x480 -> 兩邊等倍縮小 352x240,不可以用 702

sswroom 2004-06-22 12:57 AM

引用:
Originally posted by snic
你的問題以前就有人提過,Shade大神也回覆過
所以我替Shade大神回答你(s大神文章果然好用XD)
出處(剛提的3大經典主題之一)
http://forum.pcdvd.com.tw/showthrea...10&pagenumber=2

以前曾經討論過,4:3影片的Pixel Aspect Ratio(PAR)是10/11,這是以電視(NTSC)轉成Industrial Square Pixel的算式,Industrial Square Pixel不是1:1.而是396:395,所以要做出真正的1:1的算式是72:79,16:9的影片則要多乘一次4/3。
為了方便計算,我們通常用10/11的算式。

這就是我們以前討論的結果。

現在比較準確的做法是:
4:3
720x480 > 711x480 (crop) > 648x480 (resize) > 640x480 (crop)

16:9
720x480 > 711x480 (crop) > 864x480 (resize) > 848x480 (crop)

16:9用放大畫面,原因是放大對細節的影響較小,而且長闊比的誤差比較小,但會令容量輕微上升。

taitongtan 2004-06-22 01:13 AM

引用:
Originally posted by snic
你只讀過這些還不夠...
Shade 大神對 resize 的解釋是最多的
下面有 3 大 resize 經典主題相信你沒讀過

請問如何resize成正確比例
http://forum.pcdvd.com.tw/showthrea...threadid=114425
DVD轉Divx的解析度大家都設多少?
http://forum.pcdvd.com.tw/showthrea...threadid=220775
《50張圖文解說教學》教你如何 resize 成正確比例
http://forum.pcdvd.com.tw/showthrea...threadid=177884


這些我也都拜讀過了 :)
不過剛剛瀏覽一遍
發現LIBIDO兄之前就有提過了 :shy:
http://forum.pcdvd.com.tw/showthrea...10&pagenumber=3
引用:
Originally posted by LIBIDO
只要明白原理以後,要多少 size 都可以自己算,譬如說 NTSC anamorphic 訊源,我要"直接" resize 到 640x352,要怎麼 resize 才是正確的?
高度:352/480
寬度 = 720 * 4/3 * 10/11 * 352/480 = 640
所以我要"直接" resize 到 640x352 就必須從 720x480 resize
720x480 --> 640x352

我大概知道怎麼一回事了
我只是想問問看有沒啥更新更好的resize方法
感謝snic兄 :)
不過像gknot resize的方法(我不太清楚gknot的原理)
保留左右畫面較多
但是相對上下會損失較多pixel
而且多多少少都有誤差
不知道跟我們原本習慣的左右砍16點無誤差的方法比較
兩者各自的優缺點為何
如果是有效畫面與比例誤差的取捨的話
我會相當願意兩種方法試情況交互使用

taitongtan 2004-06-22 02:14 AM

引用:
Originally posted by sswroom
以前曾經討論過,4:3影片的Pixel Aspect Ratio(PAR)是10/11,這是以電視(NTSC)轉成Industrial Square Pixel的算式,Industrial Square Pixel不是1:1.而是396:395,所以要做出真正的1:1的算式是72:79,16:9的影片則要多乘一次4/3。
為了方便計算,我們通常用10/11的算式。

這就是我們以前討論的結果。

現在比較準確的做法是:
4:3
720x480 > 711x480 (crop) > 648x480 (resize) > 640x480 (crop)

16:9
720x480 > 711x480 (crop) > 864x480 (resize) > 848x480 (crop)

16:9用放大畫面,原因是放大對細節的影響較小,而且長闊比的誤差比較小,但會令容量輕微上升。


感謝sswroom兄的說明
那想請問一下
如果想小一點的res.的話
是不是像這樣做
4:3
720x486 --> 711x486 (crop) --> 任何4:3的res. (resize) --> 切黑邊

16:9
720x486 --> 711x486 (crop) --> 任何16:9的res. (resize) --> 切黑邊

太晚頭有點暈暈的
感覺好像有錯
還請指導一下
謝謝 :)

LIBIDO 2004-06-22 02:19 AM

現在看到 resize 的討論,有種時光倒流的錯覺 :p

小弟以為,如果你是用 TMPGEnc 作業,在 RGB24 的色空間下可以切奇數的點,那麼用 sswroom 兄的做法是最準確的,這個是 sswroom 兄想到的方法,真是太聰明了 :)

如果你是用 AviSynth 作業,使用 YUY2 or YV12 製程,沒有動到 RGB,只能切偶數的點,那麼就用我們以前討論的做法,小弟現在已經沒力再去套公式計算了 :p

gknot 用的計算是 72/79,所以他認為切到 702 是正確的,誤差是 0%。其實是 702.22222.....,所以 702 還是不對的,不過 gknot 就算了,那些小數點的誤差當作沒看到。

用 sswroom 兄的做法,4:3 可以完全一點都不差,16:9 的誤差也比較小,可惜就是只能在 RGB24 底下切,YUY2 or YV12 不能用。

taitongtan 2004-06-22 02:38 AM

引用:
Originally posted by LIBIDO
現在看到 resize 的討論,有種時光倒流的錯覺 :p

小弟以為,如果你是用 TMPGEnc 作業,在 RGB24 的色空間下可以切奇數的點,那麼用 sswroom 兄的做法是最準確的,這個是 sswroom 兄想到的方法,真是太聰明了 :)

如果你是用 AviSynth 作業,使用 YUY2 or YV12 製程,沒有動到 RGB,只能切偶數的點,那麼就用我們以前討論的做法,小弟現在已經沒力再去套公式計算了 :p

gknot 用的計算是 72/79,所以他認為切到 702 是正確的,誤差是 0%。其實是 702.22222.....,所以 702 還是不對的,不過 gknot 就算了,那些小數點的誤差當作沒看到。

用 sswroom 兄的做法,4:3 可以完全一點都不差,16:9 的誤差也比較小,可惜就是只能在 RGB24 底下切,YUY2 or YV12 不能用。


我還是會用以前討論的做法
因為我用avisyth
只是我在resize時發現以前討論的做法與gknot的做法
保留的有效畫面不甚相同
我說的不清楚gknot的原理是
不知道它怎麼決定crop的數值
可以使得只要一次crop與一次resize即能達到誤差極小
所以才會亂想說不知道有啥方法可以保留更多有效畫面的
結果只想出720x480-->640x352 (resize)
不過您老早就知道了
我的想法是
如果可以誤差很小 但是有效畫面增加不少的話
我也願意試試那種方法
新手繼續潛水去... :)

sswroom 2004-06-22 02:56 AM

引用:
Originally posted by LIBIDO
現在看到 resize 的討論,有種時光倒流的錯覺 :p

小弟以為,如果你是用 TMPGEnc 作業,在 RGB24 的色空間下可以切奇數的點,那麼用 sswroom 兄的做法是最準確的,這個是 sswroom 兄想到的方法,真是太聰明了 :)

如果你是用 AviSynth 作業,使用 YUY2 or YV12 製程,沒有動到 RGB,只能切偶數的點,那麼就用我們以前討論的做法,小弟現在已經沒力再去套公式計算了 :p

用 sswroom 兄的做法,4:3 可以完全一點都不差,16:9 的誤差也比較小,可惜就是只能在 RGB24 底下切,YUY2 or YV12 不能用。

請問用16:9的誤差是多少呢?
711 / 79 * 72 / 3 * 4 = 864
這樣計算對嗎?

還有,由於YUY2或YV12也是用1個單位儲存2-4點的色彩訊號,所以不能切成奇數的點。要切成奇數的點,必須先轉成YUV 4:4:4(AVIUTL/12bit)或RGB24(TMPGEnc)才可以。

LIBIDO 2004-06-22 03:07 AM

引用:
Originally posted by sswroom
請問用16:9的誤差是多少呢?
711 / 79 * 72 / 3 * 4 = 864
這樣計算對嗎?

完全正確,誤差是零,
我又寫錯了 :p
果然半夜不能寫東西,最近老是寫錯 ^^;;

LIBIDO 2004-06-22 03:12 AM

引用:
Originally posted by tonyhsie
請問 B-frame lag 又是什麼情況呢? :D

用 AviUtl or TMPGEnc 壓縮 XviD AVI + B-frame 的時候,開頭會多出 0x7f 的 dummy frame 沒有去除,造成用這兩個軟體壓出來的檔案會影音不同步。

sswroom 兄的 AVIRead 可以做出沒有 lag 的檔案。

LIBIDO 2004-06-22 03:15 AM

引用:
Originally posted by snic
我突然想起來...
所謂的沒問題的舊版包不包含 VirtualDubMod 1.4x 的版本呢?

小弟記不得是從哪一個版本開始有問題,1.4.x 的版本"好像"沒有,可以抓回來試試看。

或者用 AVS2AVI 這個軟體作壓縮的工作,這個軟體不會丟掉最後的 frame,也沒有 0x7f dummy frame 的問題。


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

vBulletin Version 3.0.1
powered_by_vbulletin 2025。