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

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
引用:
Originally posted by snic
http://forum.pcdvd.com.tw/showthrea...0&pagenumber=10
你可以先看一下這連結第 2.3 篇 Shade 兄的留言...
主要大意是說 MPEG2Dec3 解出來的 MPEG-2 (YV12 格式)在某些特殊情況下給 IVTC 的 plugin 處理會發生解錯 upsampling 的問題
所以當時我教學採用 MPEG2DEC 解 MPEG-2 (YUV2 格式)
至於你說的 MPEG2Dec3dg 是否有改進這 BUG 我就不清楚了^^"
如果改進了當然解出來的就是 YV12 格式最完美^^

MPEG2Dec3 的輸出可以是正確的,但是必須和 MPEG2DEC2 一樣,輸出 YUY2,輸出 YUY2 的時候,交錯畫面才會是正確的。
MPEG2Dec3 有一個指令叫做 YV12ToYUY2(),用這個指令就可以轉成 YUY2,並且可以根據原本的 MPEG-2 旗標切換解碼的方法,輸出正確的畫面。
用 YV12ToYUY2() 可以輸出正確的畫面,當然,此時會轉到 YUY2 色空間。

也就是說,其實解碼器並沒有問題,可以輸出正確的結果,但是如果只輸出 YV12 格式,因為 YV12 格式上下兩行要共用一個色度資訊 UV,所以遇到交錯畫面就會發生錯誤。
YV12 格式
Y Y
Y Y + UV

YUY2 格式
Y Y + UV
Y Y + UV

YUY2 格式上下兩行各自有自己的 UV,不會有交錯畫面的問題。

所以 MPEG2Dec3 並沒有錯,會發生錯誤的是 YV12 格式,只要由 MPEG2Dec3 輸出 YUY2 格式就不會有問題。
MPEG2Dec3dg 解碼也是和 MPEG2Dec3 一樣。

雖然 MPEG2Dec3/MPEG2Dec3dg 直接輸出 YV12 的時候有錯,但是一般我們不會直接壓縮交錯畫面,我們後面會接 IVTC filter,例如 Decomb,Decomb 會組合交錯最少的畫面,還原回原本的 progressive 畫面,progressive 畫面的交錯解碼問題並不明顯,所以結果還是可以接受。

用 YV12 有它的好處,速度比較快

我自己用也是用 MPEG2Dec3dg 解碼,因為我會用到需要在 YUY2 下工作的 filter,所以我會轉成 YUY2,因此也就"順便"不用全程 YV12 的做法。
排列順序是,因為 Decomb 在 YV12 空間下處理效果比較好,所以是先經過 Decomb,再轉成 YUY2。

關於 YUY2 和 YV12 處理的問題,Kiraru 大大做了一個實驗
http://members.at.infoseek.co.jp/kiraru2002/yv12.html
舊 2003-12-28, 07:34 PM #180
回應時引用此文章
Shade離線中