瀏覽單個文章
Shade
Senior Member
 
Shade的大頭照
 

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
引用:
Originally posted by silentlain
關於Avisynth YV12 在INTERLACE 時所產生Chroma upsampling ,我在這裡有看到一些討論http://forum.doom9.org/showthread.p...+for+your+Anime
不過根據他們的看法,Avisynth YV12似乎是沒問題的,有問題的是DVD本身!!??
可以煩請shade兄解釋一下嗎??因為我已經有點被搞混了.....

感謝您 post 這則消息讓我知道,我很訝異 sh0dan 和 trbarry 兩位竟然沒有指正 mf 的說法,他的說法是錯誤的。
sh0dan 大大是不是非常清楚我不知道,不過 trbarry 大大應該非常了解這個錯誤。
chroma upsampling 錯誤,是由於 YV12 沒有辦法指示哪些 Frame 是 Interlaced 哪些是 Progressive。在 MPEG2 解碼的時候,decoder 可以根據 progressive_frame 這個旗標來知道要怎麼做 upsampling 到 YUY2,但是輸出 YV12 的時候,這個情報就消失了。使用單一一種 upsampling 方法,遇到 Hybird 的訊源,就會發生 chroma upsampling 錯誤。

關於 chroma 的問題,過去 Doom9 討論過很多次,有一次 sh0dan 和 neuron2 還差點吵起來,我想他們大概是對說明這個議題感到疲累了吧
我舉過去的一個討論做例子(也沒多久,就在今年三月)
http://forum.doom9.org/showthread.p...8163&perpage=20

首先是 kilg0r3 發現他做的 encoded 會發生"色階"的現象,顏色會有很明顯的階梯狀,尤其是紅色特別明顯。他反覆實驗了許多次,發現這個現象不論是 MPEGDecoder, MPEG2Dec3 做 YV12 輸出的時候都有,但是用 DVD2AVI 卻沒有這個問題。
sh0dan 對這個問題很感興趣,他提供了一些解決的辦法,不過都沒有奏效。kilg0r3 繼續尋找問題的根源。這時大家的結論是這是 YV12 格式的缺陷,因為 YV12 格式兩行共用一個 chroma,很容易造成顏色呈階梯狀的現象。解決的辦法是用比較好的 FIR filter 做 upsampling 到 YUY2/RGB,例如 DVD2AVI,這樣會使 chroma 變得模糊,但是可以解決明顯的色階現象。
OK, 事情至此似乎告一段落,不過 trbarry 大大突然插進來,提供了一個連結

http://www.hometheaterhifi.com/volu...bug-4-2001.html

相信這個連結 silentlain 兄應該看過很多次
這個連結裡面說明了,部分硬體的 DVD Player 只有 Interlaced chroma upsampling 的方法,所以遇到 Progressive 的訊源,就會發生明顯的色階現象。這裡面提到了兩個重要的觀念:
1. DVD 存的 Frame,有 Interlaced 和 Progressive 兩種,由一個旗標叫做 progressive_frame 來指示
2. decoder 要根據這個旗標,切換 YV12 -> YUY2 的 upsampling 方法,upsampling 的結果才會正確

所以 DVD2AVI 能解決色階現象,不只是因為它用了比較好的 FIR filter,更是因為它能根據 progressive_frame 旗標,做正確的 upsampling 解碼。

The Croma Upsampling Problem 的網頁上,往下拉,搜尋 "Toy Story" Menu 這一段,有提供範例圖片。上下左右四張圖,左邊的那兩張是有用正確 upsampling 解碼的結果,上面是沒有 filtering,下面是使用 6-tap FIR filter,畫質最好。右邊的那兩張是錯誤的 upsampling 解碼的結果,上面沒有 filtering 的,色階很明顯,而下面用 6-tap FIR filter 處理的,色階就比較沒有那麼明顯,但是畫質還是不如正確解碼的結果。

看了這個連結之後,sh0dan 的結論是「I think the conclusion is "there is no better quality in YV12". Chroma is subsampled and in extreme cases like this it shows. The only thing that will help is smoothing chroma - even though what also has sideeffects.」。

smoothing chroma 的意思就是使用高 tap 數的 FIR filter 做 upsampling,能讓 chroma 比較平滑,不會有那麼明顯的色階。

於是最後 kilg0r3 就提了一個問題「how do you determine if a vob is interlaced/progressive on the chroma/luma plane?」。
這個問題問得不太對,luma 沒有 Interlaced 的問題,只有 chroma 才有 Interlaced 的問題,不過就不管他了
trbarry 大大的回答是「I guess if you have problem material and you don't know if it is coded progressive/interlaced (or it's mixed) then you could always use MPEG2DEC2. There is a version around somewhere here that even works with Avisynth 2.5.

But MPEG2DEC2 will return YUY2 that has been converted on a frame by frame basis looking at the MPEG-2 flags and deciding which type of conversion to do.」

我就是看了這個討論串才知道 trbarry 大大寫的 MPEG2Dec2/MPEG2Dec 的 YV12 版本仍然是輸出 YUY2,所以不會有 chroma upsampling error 的問題,可見這是 trbarry 了解這個問題,故意做的設計
當然 chroma upsampling error 的問題,我們則是早在 99 年的時候就因為 jackei 大大的關係,所以早就知道了
http://bbs.irradiance.net/txtVersio.../M.941483882.A/
舊 2003-05-25, 04:13 PM #88
回應時引用此文章
Shade離線中