查看: 11386|回覆: 7
收起左側

[討論]CoreAVC效能不錯,但是品質呢?

[複製連結]

發表於 2006-11-29 04:34:44 | 顯示全部樓層 |閱讀模式

馬上註冊,結交更多好友,享用更多功能,讓你輕鬆玩轉社區。

您需要 登錄 才可以下載或查看,沒有賬號?註冊

x
之前用CoreAVC撥H.264的影片時就覺得似乎亮度甚至Gamma好像有問題,但是也沒有其他更好的solution也就沒理他繼續用下去,一直到最近整理HDD時,一時興起,拿Star Wars EP3來比較了一下,不比還好,一比還得了,簡直想把H.264的影片通通拿去垃圾桶.

仔細再試了一下之後,發現兇手似乎就是人人稱道的CoreAVC...

我播放環境是KMPlayer 2.9.2.1100 (Build 1102 ~ 1122都試過),另外機器上只有另外裝了CoreAVC 1.1.0.5 pro,其餘的Codec通通沒裝,連WinDVD/PowerDVD也通通沒裝

播放的影片是這兩個版本
H.264版本:解析度 1920x1088,容量 16.5G,音軌 DD5.1 448K
MPEG2版本:解析度 1920x1080,容量 9.65G,音軌 DD5.1 384K

以下是播放時影片的截圖,放上來供大家比較一下,解析度統一縮成1280x720來抓圖
第一張是使用CoreAVC解碼的畫面
第二張是使用KMP內建的H264解碼的畫面
第三張是MPEG2版本,以KMP內建的Codec解碼

第一組






第二組






第三組






可惜H.264版本以KMP內建的Codec來解碼時,畫面最漂亮,細節也最多,但是卻會有Lag,播放一段時間之後,還會有影音不同步的現象,所以沒有實用價值..........

<font color="#000066">[這篇文章最後由Pepsi在 2006/11/28 08:45:04 AM 編輯]</font>

發表於 2006-11-29 06:52:36 | 顯示全部樓層
根據我個人的經驗,

1. KMP 在 Overlay 和 VMR9 輸出時有她很特別的 Conversion;
一般主流的商業 Players (如 Zoom Player, TheaterTek),
Overlay 輸出 PC Levels(1~254), VMR9 輸出 Video Levels(16~235)
(BTW, NV beta 版的 Driver 似乎也會如此, 除非更改 Regitry),
但是 KMP 一律輸出 Video Levels, 我猜 KMP 內部自動的做了 Levels conversion.

2. Core AVC 本身也有 Levels conversion 的功能(Fix VMR9 color range),
它相反的把 VMR9 輸出修改成 Overlay color range;
而且當我們套用 VMR9 勾取 Fix VMR9 color range, 再套用回 Overlay 時,
該功能並沒有跳回原 color range, 更奇怪的是再度選用 VMR9 時如果我們也又再勾取該功能時,
CoreAVC 會重複的做 Level conversion.
結果是, 只要我們多做幾次, 原本 11M/7.2-bit 的色彩定義就只剩下 6M/6.X-bit,
連帶的 Gamma 也完全壓縮而錯亂. CoreAVC 的這個問題似乎可以用 Reset 來解決.
(手頭上沒有 H.264 的 Black/White Levels 和 Gamma patterns, 只能用猜測的)

3.   
回覆 支持 反對

使用道具 舉報


 樓主| 發表於 2006-11-29 07:09:49 | 顯示全部樓層
思路上有位朋友在選了CoreAVC的Fix VMR9 color Range的選項時,就有明顯的改善,但是同樣的方法在我這裡選不選根本沒有差異,也嘗試把CoreAVC的設定reset之後重選還是沒有預期的效果.....唉

這是思路的朋友的畫面

fix VMR9 color range


no fix VMR9 color range
回覆 支持 反對

使用道具 舉報


發表於 2006-11-29 07:27:40 | 顯示全部樓層
上面是300的MOV檔預告片
另外可能高速模式有無開啟的關係吧?
回覆 支持 反對

使用道具 舉報


 樓主| 發表於 2006-11-29 07:53:23 | 顯示全部樓層
剛剛意外的發現.

我把設定調回只用KMP內建的Codec來解H264的影片,原本這樣使用時,一開始播放都是正常的,但是慢慢的會發現影音不同步的現象(影像比聲音快),不過我把反交錯(快速鍵 ALT + X)關閉之後,發現影音不同步的現象消失了,真是意外的驚喜,這樣的設定適合我手邊大部分的H264影片,但是碰到BBC deep blue的時候還是會稍微有些lag(但cpu loading沒滿載,大約75%上下小幅跳動),不曉得是不是deep blue的影像傳輸率特別高的關係(平均有21M以上),SW EP3平均大約17.5M,還能順利的播放,而且cpu loading只有63%上下小幅跳動

PS: CPU是E6300超頻跑400*7
回覆 支持 反對

使用道具 舉報


 樓主| 發表於 2006-11-29 18:51:10 | 顯示全部樓層
我把同樣的主題貼在思路上,也找到了比較方便的解決方案

思路的URL在這: http://www.silu.info/read.php?tid-164242.html

相關的參考圖片如下

有問題時的CoreAVC畫面(未開急速模式)


用KMP內建codec的畫面


用CoreAVC,KMP開急速模式的畫面

回覆 支持 反對

使用道具 舉報


發表於 2006-12-8 14:28:27 | 顯示全部樓層
對於 CoreAVC 的 Output levels 似乎很多人有疑義:
http://forum.doom9.org/showthread.php?p=911912#post911912


The true secret of CoreAVC is not its unusually efficient AVC decoding code - which will someday be equalled and perhaps even bested by ffdshow - but a little-noticed capability which has slipped quietly under the radar of most everyone but myself...


The story begins long ago in the misty veils of ancient times, but to make it shorter, I'll summarize its most important points. The VMR9 renderer, for sure, and probably also VMR7, both have a strange behaviour regarding YUV data presented to their input pins.

In particular, if any YUV format is presented, values outside the range of 16-235 (TV levels) are clamped; RGB inputs are not clamped. After uncountably extensive tests by yours truly using every filter combination imaginable, it has been determined that the clamping behaviour holds true for every case, and in no case is there an exception but one.

Avery Lee, the creator of VirtualDub, has been investigating the strange quirks of luma levels in the VMR renderers here.

You may be asking yourself right now, "why oh why would I want PC level range when most video is coded in TV range?". Some good reasons come to mind: your video output device is probably a PC monitor or LCD, which expects PC levels.

Feeding TV levels to such a device results in washed-out blacks (compounding the backlight leakage already present on LCDs) and dim whites.

During encoding or re-encoding, the AviSynth command:

ColorYUV(levels="TV->PC"

can be used to stretch the TV levels to fit your device, or alternately, ffdshow's 'levels' filter can do it in realtime. But if ffdshow is sending any YUV format to the renderer, this will be utterly useless due to clamping.

Knowing this, it is time to shift the focus of our examination to CoreAVC. This nice little filter has a checkbox labelled "Fix VMR9 color range". When checked, the output of VMR9 is observed to be full PC range, using a full-range source and with any YUV format selected as output (and no, it's not secretly sending RGB; the input pin of the VMR9 renderer was checked to make sure).

Never, ever in the history of VMR9 has any piece of software been able to make this impossible event occur. Somewhere in the VMR9 or elsewhere in the system, exists a method to force the VMR9 to pass full PC range without clamping, from a YUV input.

It is also observed, that if CoreAVC is set to output any YUV format, and ffdshow is set to accept that format and output any YUV format (no RGB formats checked), then the renderer will observe the usual clamping behavior. Thus, the CoreAVC filter must be directly connected to the VMR9 renderer's input pin in order for the fix to work.

The hope is now to find out how they did it. If the information can be obtained, developers of all other filters may also incorporate the fix into their software. The fix has many advantages; most importantly it means that ffdshow can output YV12 without the heavy CPU burden of conversion to RGB, yet still maintain PC range.

To wrap up, a request is now issued to CoreCodec to provide this small tidbit of information, which would both provide the video community with a much-needed fix, yet still maintain the advantage CoreAVC enjoys by means of its efficient decoding architecture.

Note: Verification

The behavior as stated above can be verified by running three instances of MPC. Your should have two source materials, one encoded in TV range, the other PC range, output in either VMR9 or VMR9 Renderless. Drivers newer than 84.21 on Nvidia cards may cause unpredictable results. Finally, make sure ffdshow is NOT set to accept any raw video inputs, to avoid having it get in between CoreAVC and the VMR9 renderer.

MPC #1: CoreAVC filter set to RGB32 output ("Fix VMR9 levels" checkbox state shouldn't matter)
MPC #2: CoreAVC filter set to any YUV ouput, checkbox checked (should cause unclamped passthrough)
MPC #3: CoreAVC filter set to any YUV output, checkbox unchecked (should cause clamping to TV range)

If your source is TV range, #1-3 should appear identical and show TV range
If your source is PC range, #1,2 should appear identical and show PC range, while #3 shows TV range.

--------------------------------------------------------------------------------
Last edited by Isochroma : 5th December 2006 at 05:37.  
         

如果再加上 KMP 本身的 Levels conversion 以及 CoreAVC Video Deocder 本身的 Bug, 事情很容易就複雜化了!


回覆 支持 反對

使用道具 舉報


發表於 2006-12-19 19:22:17 | 顯示全部樓層
請問我用了用CoreAVC 1.1.0.5 pro開急速模式畫面還是一樣白白的
該怎麼半??
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回文 登入 | 註冊

本版積分規則

熱門推薦

HemmaBio器評ISP Elite 和 PA 8 :「一旦你聽過這聲音,就無法回頭」
HemmaBio器評ISP Elite 和
HemmaBio器評ISP Elite 和 PA 8 :「一旦你聽過這聲音,就無法回
Yamaha rx-v663為什麼每次啟動都有這個螢幕? 請益各位前輩們。 謝謝。
Yamaha rx-v663為什麼每次
一次家中的小朋友不知道碰到什麼..... 導致之後每次開機擴大機的
風暴StormAudio 家庭劇院巡禮 : 來自新加坡頂層公寓的聲音饗宴
風暴StormAudio 家庭劇院
風暴StormAudio 家庭劇院巡禮 : 來自新加坡頂層公寓的聲音饗宴
何止錦上添花!?Zidoo Neo Alpha的最佳Wingman - HD Fury Vrroom V3
何止錦上添花!?Zidoo Ne
何止錦上添花!?Zidoo Neo Alpha的最佳Wingman - HD Fury 8K VR
風暴StormAudio/Goldmund家庭劇院巡禮 "KazCorporation:為音樂愛好者實現家庭劇院夢想"
風暴StormAudio/Goldmund
風暴StormAudio/Goldmund家庭劇院巡禮"KazCorporation:為音樂愛

聯絡我們| 問題反映| 小黑屋| 手機版| Archiver|  本網站特別聘請 蔡家豪律師 為本站法律顧問

快速回覆 返回頂部 返回列表