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

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
引用:
Originally posted by mycai
沒錯,上面那個算式就是針對field作取樣。

不過雖說可以用更複雜的 filter 來 downsample…
對一些市上的encoder可別太期待,也有用chroma1 = 0.5*c1 + 0.5*c3, chroma2 = 0.5*c2 + 0.5*c4的東西存在,這可以參考三區的SP和LHA。

直接用 0.5 平均蠻奇怪的,畢竟 Standard 文件裡面有特別強調交錯畫面 Chroma 的取樣位置不是位在兩個 Luminance 的中間,而是位在 3:1 的位置上,所以當把交錯畫面的兩個 Field 合併成一個 Frame 的時候, Chroma 在空間上的取樣位置才會和 Progressive Frame 一致。
不過我也看過有 Encoder 簡便的作法,直接是拿 chroma1 = c1, chroma2 = c2 使用,一點內插都沒有 ^^;
一般的話是用 075*c1 + 0.25*c3,也有一些會用 cubic filter 做更複雜的取樣。
引用:
播放時upsample的複雜度的影響說來蠻大,
用PowerDVD看時Frame和Field DCT的差異相當明顯(我是這麼覺得啦);
WinDVD播放的Field DCT則和PowerDVD播的Frame DCT部份差不多,
不過WinDVD播的Frame DCT沒有比Field的好到哪去;
DVD2AVI解出來的還能看出Frame 和Field DCT的差異,不過畫質是三者中最好的。

呃呃、、您想說的意思指的是 downsampling 吧(Frame Type, Progressive/Interlaced Frame),和 DCT Type 無關喔,不然我們又要雞同鴨講了 :P
嗯,把循序畫面當成交錯畫面來取樣,問題確實很大,我也見過有幾張 DVD 這樣搞,例如普威爾 GateKeeper 21 附的 NCOP,就是全部 Interlaced Frame(不過 Picture Structure 是 Frame,也會用 Frame Prediction 和 Frame DCT。Frame Type 和 Picture Structure 這兩個意義是不一樣的,這個觀念要釐清)。
這個 NCOP 我猜普威爾是因為特殊原因,直接拿二區的來用..... 嗯嗯,而且竟然是用 Linear Quantization,不知道日本那邊壓縮的廠商是在惡搞嗎? :P

DVD2AVI 的畫質真的很好,upsampling 的作法大約等於 MSSG 裡面用的 6-tap FIR filter,可惜計算量大速度慢了一點。WinDVD..... 播放交錯畫面的 chroma upsampling 好像還是錯的?所以我現在都用 PowerDVD 看
引用:

市售player的話,除去panasonic的和其它一些公司的旗艦機外,拜chroma upsampling error所賜,Frame DCT看起來反而會比較爛一點…

這個 bug 到現在還沒普遍修正嗎?我以為這個問題發現以後廠商應該很快就會更正的說...
這個問題又不難解決,只要偵測 progressive_frame 這個旗標,循序畫面用循序畫面的 upsampling 函式,交錯畫面用交錯畫面的 upsampling 函式,就解決了呀。而且這是 Standard 文件裡面就有提到的標準解碼程序... 雖然是沒有一個步驟一個步驟講得很詳細,不過也應該不難看懂(比 MPEG-4 好看多了),廠商竟然會做錯,真是令人意外。(又不像軟體 DVD Player,如果要走 YV12 Overlay 的話,要解決交錯畫面解錯的問題確實很麻煩。像 PowerDVD 乾脆用 YUY2 Overlay,缺點是要自己先 upsampling 到 YUV 4:2:2,又要即時,品質會比較差一點,容易感到畫面上有雜點在閃爍。這是在電腦上才有的限制,做成硬體 DVD Player 還犯這種錯誤,真是不可原諒)


補充幾張圖,第一個是 YUV 4:2:0 在 Progressive Frame 和 Interlaced Frame 中的取樣方式,注意 Chroma 的取樣位置

╳ Represent luminance samples
○ Represent chrominance samples
Figure 6-1 -- The position of luminance and chrominance samples. 4:2:0 data.


Figure 6-2a – Vertical and temporal positions of samples in an interlaced frame with top_field_first = 1.
chroma1 = 0.75*c1 + 0.25*c3, chroma2 = 0.25*c2 + 0.75*c4


Figure 6-3 – Vertical and temporal positions of samples in a progressive frame.
chroma1 = 0.5*c1 + 0.5*c2, chroma2 = 0.5*c3 + 0.5*c4

mycai 兄提到的 chroma upsampling error,就是市售的 DVD Player 往往只有一種 upsampling 的演算法,不會去偵測 progressive_frame 這個旗標,判斷畫面是循序的還是交錯的,切換不同的 upsampling 方式。譬如說硬體 DVD Player 只有 Interlaced Frame 的 upsampling 方法,這樣遇到 Progressive Frame 就會解出錯誤的 Chroma 畫面,請參考這個網頁的圖片
http://www.hometheaterhifi.com/volu...bug-4-2001.html
文章中就有提到 progressive_frame 這個旗標,和一般硬體 DVD Player chroma upsampling 的錯誤。

第二個是 Frame DCT 和 Field DCT 的意義圖示

Figure 6-12 Luminance macroblock structure in frame DCT coding


Figure 6-13 Luminance macroblock structure in field DCT coding
舊 2003-01-23, 04:01 PM #29
回應時引用此文章
Shade離線中