【下載】Media Player Classic HomeCinema 2860



贊助商連結



protoss0809
2009-05-14, 10:08 PM
我今天想了一下..
發現不大對..
色彩轉換的Upsampling(scaling那塊)部分依然還是丟給Decoder作才對...
我之前得到的結論是錯的...
這根本就是MPC Video Decoder的Chroma Upsampling解出來的效果有問題...!!.

如果啟用DXVA的話..
會丟給GPU來做..
現今GPU的硬體色彩轉換部分都非常強...
nVIDIA可以做到4x5...
ATi則是6x10..

我剛剛試了一下使用MPC-HC ver.1104
並用VMR9 + DXVA解碼輸出,狀況依舊...
用CORE AVC解碼搭配VMR9輸出 情形還是一樣...

倒是用WMP 11播放都沒那問題
不管輸出是用重疊還是高品質
(不過我不喜歡用WMP看影片...)

所以,看起來似乎是MPC程式的問題?
(MPC跟MPC-HC似乎都一樣有這問題...)

贊助商連結


per1
2009-05-14, 10:24 PM
我剛剛試了一下使用MPC-HC ver.1104
並用VMR9 + DXVA解碼輸出,狀況依舊...
用CORE AVC解碼搭配VMR9輸出 情形還是一樣...

倒是用WMP 11播放都沒那問題
不管輸出是用重疊還是高品質
(不過我不喜歡用WMP看影片...)

所以,看起來似乎是MPC程式的問題?
(MPC跟MPC-HC似乎都一樣有這問題...)
你試看看故意用FFDShow輸出..
看有沒有問題..??

protoss0809
2009-05-14, 10:29 PM
你試看看故意用FFDShow輸出..
看有沒有問題..??

是指用FFDSHOW解碼嗎?
情形一樣耶...

lecod
2009-05-15, 03:12 AM
是指用FFDSHOW解碼嗎?
情形一樣耶...
如果解碼流程跑這樣呢

FFDSHOW解碼(不做任何後處理,輸出色系RGB32)->VMR9(3D surfaces,resize選Bicubic,YUV Mixing不開)

protoss0809
2009-05-15, 04:20 AM
如果解碼流程跑這樣呢

FFDSHOW解碼(不做任何後處理,輸出色系RGB32)->VMR9(3D surfaces,resize選Bicubic,YUV Mixing不開)

這樣就正常多了
有沒有開YUV Mixing 都一樣正常

但是這樣子的話,wmv檔因為預設不是用ffdshow作解碼
這個問題還是會存在...,除非改成用ffdshow去解wmv

lecod
2009-05-15, 12:11 PM
這樣就正常多了
有沒有開YUV Mixing 都一樣正常

但是這樣子的話,wmv檔因為預設不是用ffdshow作解碼
這個問題還是會存在...,除非改成用ffdshow去解wmv
既然如此
那解碼器不變
加一道處理程序讓輸出色系轉RGB32
變成
預設解碼器->ffdshow raw video filter(OOXX轉RGB32)->VMR9
這樣子跑呢?

per1
2009-05-15, 12:49 PM
你們該不會只選RGB32輸出..
強制指定RGB32輸出
其他不選吧??..

per1
2009-05-15, 01:18 PM
我的猜測是..
MPC Video Decoder有對色彩轉換的upsampling作干涉,沒有讓GPU介入...

但是如果強制MPC Video Decoder指定DXVA輸出情況就會不同..
GPU會介入...
做硬體色彩轉換...
這時要取決GPU的能力...
但是目前GPU不管是ATi和nVIDIA的upsampling能力都非常強悍..

除非在ATi下有一個情況..
我認為本來是不該有的...
應該要解決掉的...
就我所知道..
以前ATi在VMR9下對upsampling是有問題的..
都是用point resize(Nearest Neighbor取樣)來做...
至於現在有沒有問題??..
我去拿一塊ATi 4670試試看好了=_="

protoss0809
2009-05-15, 02:26 PM
既然如此
那解碼器不變
加一道處理程序讓輸出色系轉RGB32
變成
預設解碼器->ffdshow raw video filter(OOXX轉RGB32)->VMR9
這樣子跑呢?

ffdshow裡面的raw video有很多選項說
只選YV12? 還是ALL YUV?


你們該不會只選RGB32輸出..
強制指定RGB32輸出
其他不選吧??..

基本上我都是照預設的
預設是有勾YV12的
不曉得YV12的輸出跟RGB32的輸出其差異在?


我的猜測是..
MPC Video Decoder有對色彩轉換的upsampling作干涉,沒有讓GPU介入...

但是如果強制MPC Video Decoder指定DXVA輸出情況就會不同..
GPU會介入...
做硬體色彩轉換...
這時要取決GPU的能力...
但是目前GPU不管是ATi和nVIDIA的upsampling能力都非常強悍..

除非在ATi下有一個情況..
我認為本來是不該有的...
應該要解決掉的...
就我所知道..
以前ATi在VMR9下對upsampling是有問題的..
都是用point resize(Nearest Neighbor取樣)來做...
至於現在有沒有問題??..
我去拿一塊ATi 4670試試看好了=_="

我剛好就是用ATI 4670 :|||:

不過再多一張ATI的卡來測試也是好的
不好意思,per1大就麻煩你了

shawnliu
2009-05-15, 03:59 PM
最基本的一点是,Chroma的upsampling只能够在YUV或YV12转换为RGB的过程中进行,所以很简单,不管是解码器还是渲染器,谁在做YUV向RGB的转换,谁就在做Chroma的upsampling。
如Proto所问FFdshow输出YV12和RGB有什么区别,唯一的区别就是把YUV向RGB转换得工作交给了谁。输出RGB,FFdshow就承担了转换工作,而输出YV12,很明显就将这个工作交给了渲染器。
至于转换质量的好坏取决于算法,如果各位看一下YV12 Chroma upsampling的shader文件,就可以发现,它也就是作了RGB转YUV的逆运算,然后再用好的upsampling算法再转回RGB。所以效果上和overlay的转换以及FFdshow没有什么区别。
至于为什么VMR9在3D纹理模式下会使用邻点取样,我是这么认为的,纯属猜测:因为在3D模式下,可以随意对单个像素进行控制,那么最基本的一点是,就是应该让视频画面在输出到Shader之前保持它本来的面目,所谓的双线形插值已经是对视频的再加工了,VMR9的设计者是否出于这种想法才让3D模式下,对Chroma信号不做任何插值处理,而将未经任何加工的原始视频数据输出到shader的呢?
:)