|
發表於 2007-7-11 22:01:27
|
顯示全部樓層
思路orbitlee版主:
初步判斷,問題可能出在這裏,和haali分離器對VC1視頻幀的識別相關。
ISO13818-1(H.222.0)裏定義了PS/TS封裝的格式, 通常每個視頻幀和音頻幀都有自己的時間碼,用於維持正確的A/V同步關係。 電視臺的TS流能滿足這個要求,Blu-ray屬於TS,也能滿足這個要求。但HD DVD用的是PS封裝,很奇怪的是, 並非每幀都有時間碼,經常出現幾幀甚至幾十幀才有一個時間碼的情況。在HDDVD Remux成TS以後,時間碼的跳躍情況也仍然保留下來。
時間碼是如何使用的? 分離器在分離的時候,看到時間碼,再把視頻和音頻資料提取出來,交給解碼器解碼,並要求渲染器在正確的時間(由時間碼指示), 呈現正確的資料(解碼後的音頻/視頻).
如果視頻流中每幀都有時間碼,分離器不會有什麼難度,提取時間碼照著做就行了。如果不是每幀都有時間碼,分離器就要去自行推算,這幀的時間碼應該是多少。如果推算錯誤,渲染器在不正確的實現呈現視頻/音頻,就會出現畫面抖動或音軌爆音的情況。
視頻和音頻不同,視頻幀可能出現解碼順序和播放順序不一致的情況,原因是B幀的存在。解碼的順序1234, 播放時可能是1423. 對這個的判斷,就要看分離器是如何識別視頻幀的解碼和播放順序了。 MPEG2和H.264出現的比較久,haali分離器的識別沒問題。 而VC-1是今年1月份以後才大量出現的,haali的識別處理可能還存在有問題。
舉個例子比較容易理解。 要求你100步走50米的路,步伐均勻。一種情況,每0.5米給你在地上劃條線做標誌,你每步都踩線上上。這個很容易做到。 另一種情況,什麼標誌都沒有,你就走吧。很有可能出現前99步,每步只走了0.49米,結果最後一步你要走1.49米,你只能跳一下,均勻就不談了。
解決方法?一是在片源中給每幀都加入時間碼,使分離器不會犯錯誤。二是改進分離器,讓它能夠正確推算每幀的時間碼。 時間碼的推算,可能和解碼器/渲染器也有關係。
VC1編碼的HD DVD和相應的Remux TS, 在這個問題上是綁在一條船上,只要分離器能正確處理一個,就能處理另外一個。
思路fanxy 版主:
用軟解428,603的HAALI分離器的確有此現象。 用SONIC分離器不會頓。但是SONIC分離器問題多多。
用POWERDVD7.3 直接播放則沒有。非常完美,可惜KMP還不能調用PDVD的分離器,目前只能等HAALI分離器改進了。
remux片子,XP系統下目前似乎只有N卡 7xxx,8xxx可以搞定硬解.
VISTA系統下,據說A卡18XX,19XX, N卡 7xxx,8xxx可以搞定硬解,我沒驗證過.
主要因為調用的解碼器是WMVDMO.目前2XXX系列顯卡驅動似乎還不支持對他的硬解,
只支持POWERDVD自帶的解碼器開硬解, 但目前還不能用別的播放器調用POWERDVD自帶的解碼器,
不過相信改進驅動或者升級WMVDMO,使得支持硬解,或者破解調用POWERDVD自帶的解碼器, 只是時間的問題。 |
|