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

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
引用:
Originally posted by Artx1
嗯, 話說先前宗毛兄在AVI動畫播放問題的討論串提到, HyperSNAP-DX抓下來的圖檔與照相結果有明顯的不同.... 於是出現了看起來與播放軟體似乎有一點點關係的新說法, 大家似乎可以參考看看....

請參照:
http://forum.pcdvd.com.tw/showthrea...&pagenumber=106

HyperSnap 啟動 DX 擷取時,抓下來的是播放軟體存放在記憶體內的 DX Overlay or Surface or Offscreen 的東西。這個區段裡面的資料,視播放解碼的軟體不同而有不同。
例如 XviD Decoder 預設是輸出 YUY2,那麼這個記憶體內存的資料就是 YUY2。
HyperSnap 抓下來這個 YUY2 後,它會去 Decode 這個資料,upsampling 到 YUV 4:4:4,然後轉成 RGB。最後就是顯示在螢幕上你看到的圖檔。
也就是 upsampling,YUV -> RGB 轉換,都變成是由 HyperSnap 來做。
所以你用同一個播放軟體,以 HyperSnap 擷取,抓下來的畫面都會一樣,不會因為插的顯示卡不同而有所不同。
宗毛兄的那兩張圖檔會不同是因為不是同一個 Frame。
而一般播放的時候,upsampling,YUV -> RGB,還有加上放大到全螢幕時的 scaling 全部都是由硬體顯示卡來做的。所以你在螢幕上看到的畫面,和用 HyperSnap 抓下來看的畫面並不會相同。
正因為這個原因,所以 black penny 兄才會捨近求遠,用數位相機拍攝實際上螢幕放出來的畫面。
經由 DX Overlay -> 顯示卡硬體處理後的畫面,是無法返回系統記憶體,由其他軟體抓取下來的。當然,新一代的 VPE 可以... 除此之外,傳統的方式,我們是無法擷取經由顯示卡處理後的畫面,所以要比較顯示卡播放的差異,一定要用數位相機拍攝的方式。
那麼我們也可以知道為什麼有時候 HyperSnap 擷取畫面會失效,因為 DX Overlay 記憶體內存放的資料 HyperSnap 不會解,所以也無法顯示。例如 DivX Decoder 啟動 YUV Extended,會直接輸出 YV12 的資料,如果 HyperSanp 找不到 Decoder 可以解它抓下來的 YV12,這時擷取就會失敗。

比較的時候最好抓精確的同一張 Frame 比較,不然很難比較。
Zoom Player 這個播放軟體可以以 Frame 為單位單格前進,用這個軟體比較方便調整到同一格比較。
     
      
舊 2003-07-29, 04:58 PM #61
回應時引用此文章
Shade離線中