• 4

macbook pro看高清影片(1080p)會lag

Buzzilian wrote:
Adobe沒有放棄Apple喔~幾乎所有的Adobe產品原碼都是在OS X上完成的,Windows上的Photoshop或Illustrator都是被轉過code所成形的。我以前在美國Adobe的經銷商打過工,一開始 Adobe都有教育我們過。嚴格說起來Adobe的產品在OS X上RUN的話,會比在Windows流暢許多喔~而且Windows版的修改Patch一般都比OS X版本來的多喔~


Adobe近幾年早就轉向windows平台,OSX使用者哀號不受Adobe重視已久。更不要說什麼OSX下"流暢許多"這種傳聞。你是“幾年“前待過哪間"經銷商"?
gate2 wrote:
這是OSX底層driver和自己API的問題,只要Apple一天不做,CyberLink這些上層AP一點辦法都沒有。Windows下能使用各種格式的GPU硬解,是因為微軟底層已經做好,只要使用者的硬體有支援,播放程式自然能夠使用這項功能。...(恕刪)


可否請您更深入說明一下是怎樣的 'driver' 與 'API' 架構讓 application 無法使用 GPU 運算輔助?您可否就基於 Snow Leopard 版本說明?在 Snow Leopard 之前的版本已停產了。。。

gate2 wrote:
你的記憶有誤。就算是10.6的QTX,也只有9400M能使用GPU的硬解。更不要說之前版友提到的的,所謂硬解也只限於某些格式的H.264。如果機器正好是9400M,也只從itunes下載HD影片觀賞,那恭喜,你能在OSX下"享受"H.264硬解這個功能。其他人就乖乖軟解或是切到windows下才能好好觀賞HD playback。...(恕刪)


H.264 從 simple 到 high profile 本來就有不同,decode 的運算需求也有不同。bitstream semantic/syntax 定義也不是 100% 嚴謹,encoder 的 implementations 以及使用者對於 encoding parameters 設定也會造成所產生的 H.264 bitstream 有很大的差異。Apple 支援自家以及測試過的 coded stream,個人覺得廠商這樣的作法並沒有什麼不妥。如果試著只安裝 Window 7 就好,不安裝任何的 codec packs,然後去網路上蒐集各種 H.264 的 bitstream,也會觀察出有不少 H.264 的 bitstream 是 Microsoft 內建的 decoder 所無法處理的。這也是 CyberLink 這類廠商還有生存空間的地方,CyberLink 費了很大的功夫把各式各樣的影音 containers 及 coded streams 利用 CPU/GPU 的硬體功能來加速,做的比 Microsoft 原廠還要好。

話說回來,個人也是覺得 Mac 在目前大鳴大放的各式影音 container 以及 codecs 的支援上有比較遲緩,不過這全是 Apple 的錯嗎?個人認為也不致於,頂多只能說 Apple 比較不積極在支援 3'rd party 上面。如果我的影音內容是使用 Apple 的 solutions 所產生的,然後看看官網 QiuckTime 的技術規格,找到對應的機器,還可以滿愉快的觀賞。所以看法見仁見智囉,我喜歡支援越多越好,不過有不少人就恰恰相反,他們希望一個就好,而且最好簡單到你告訴我怎麼樣的配備就可以,那我就照辦就對了,他們想把時間用在其他他們認為更有意義或價值的事上面。
謝謝各位前輩意見
看起來我用bootcamp +windows 7 +3'rd party的decoder就可以看1080p了
沒事, 請繼續討論!!
我去年剛買macbook pro 13"時也有發現這樣的狀況,因為第一次用macbook pro,所以不知道是不是軟體的問題,我先想到的是不是硬體的關係,因為本身內建的硬碟是5400轉的,在加上也覺得硬碟不夠大,所以就換了一顆7200轉較大的硬碟,也有順便加裝記憶體到2G,加完後重灌,播放1080p的影片就沒有lag了,以上供您參考.
葉慈 wrote:
看起來我用bootcamp +windows 7 +3'rd party的decoder就可以看1080p了
沒事, 請繼續討論!!...(恕刪)

我的經驗是使用「Plex」這套軟體,原本播起來會Lag的影片,全部都能正常無Lag的順暢播放~
再也不用切bootcamp去Windows了~

唯一的小問題是「Plex」每次關閉程式時都會出現不明的錯誤訊息~(不過我通常都是無視它~
軟體基本上能正常動作就好~(反正也沒那麼多播不動的影片~)
Lucose wrote:
可否請您更深入說明一下是怎樣的 'driver' 與 'API' 架構讓 application 無法使用 GPU 運算輔助?您可否就基於 Snow Leopard 版本說明?在 Snow Leopard 之前的版本已停產了。。。


恐怕要Apple才能回答這個問題。無論是Tiger/Leopard/Snow Leopard,情況都是一樣。Apple所販售的機器,都是有專門的硬體在處理video playback,不須要使用CPU,但為至今只有9400M能使用?

Lucose wrote:
H.264 從 simple 到 high profile 本來就有不同,decode 的運算需求也有不同。bitstream semantic/syntax 定義也不是 100% 嚴謹,encoder 的 implementations 以及使用者對於 encoding parameters 設定也會造成所產生的 H.264 bitstream 有很大的差異。Apple 支援自家以及測試過的 coded stream,個人覺得廠商這樣的作法並沒有什麼不妥。如果試著只安裝 Window 7 就好,不安裝任何的 codec packs,然後去網路上蒐集各種 H.264 的 bitstream,也會觀察出有不少 H.264 的 bitstream 是 Microsoft 內建的 decoder 所無法處理的。這也是 CyberLink 這類廠商還有生存空間的地方,CyberLink 費了很大的功夫把各式各樣的影音 containers 及 coded streams 利用 CPU/GPU 的硬體功能來加速,做的比 Microsoft 原廠還要好。

話說回來,個人也是覺得 Mac 在目前大鳴大放的各式影音 container 以及 codecs 的支援上有比較遲緩,不過這全是 Apple 的錯嗎?個人認為也不致於,頂多只能說 Apple 比較不積極在支援 3'rd party 上面。如果我的影音內容是使用 Apple 的 solutions 所產生的,然後看看官網 QiuckTime 的技術規格,找到對應的機器,還可以滿愉快的觀賞。所以看法見仁見智囉,我喜歡支援越多越好,不過有不少人就恰恰相反,他們希望一個就好,而且最好簡單到你告訴我怎麼樣的配備就可以,那我就照辦就對了,他們想把時間用在其他他們認為更有意義或價值的事上面。


這段你講的大部份是software decoder的流程,但重點是當上層軟體把bitstream分出來後,底層哪個硬體要負責處理這些bitstream,這才是本文的重點 "為什麼OSX下不能使用GPU內建的硬體video engine來作",這個問題很多3'rd party都遇到,譬如Adobe的flash10.1在OSX下就缺乏API來讓GPU處理video的bitstream,而必須讓CPU來"軟解"。

Apple的問題不在於沒有積極支援3'rd party,而在於沒有implement底層的GPU video engine,讓這些software decoder也能輕鬆使用內建的硬體來處理video playback。
gate2 wrote:
恐怕要Apple才能回答這個問題。無論是Tiger/Leopard/Snow Leopard,情況都是一樣。Apple所販售的機器,都是有專門的硬體在處理video playback,不須要使用CPU,但為至今只有9400M能使用?

Apple 好像沒賣過在規格書上有註明「專門的硬體在處理video playback」,除了 Snow Leopard 及 QuickTime X 推出時配合當時切換到 nVidia 9400M/9600M chipset 才有在 Tech Spec 上註明,您要不要確認一下?另外如果您指的是 ATI/nVidia 的 GPU 有這項功能,那就有趣了,該提供的,恐怕是 Apple,ATi 與 nVidia 這三家公司一起坐下來好好合作,把您要的功能做好。所以要打可能也是三個都該打屁股。話說回來,只有 SD resolution 的 MPEG1/2/4 真的也不需要用到什麼 GPU 加速,過去 PowerPC G4/G5 以及 Intel Core Duo,Core 2 Dou 就很夠用了。

gate2 wrote:
這段你講的大部份是software decoder的流程,但重點是當上層軟體把bitstream分出來後,底層哪個硬體要負責處理這些bitstream,這才是本文的重點 "為什麼OSX下不能使用GPU內建的硬體video engine來作",這個問題很多3'rd party都遇到,譬如Adobe的flash10.1在OSX下就缺乏API來讓GPU處理video的bitstream,而必須讓CPU來"軟解"。

您可以告訴我有那台 PC CPU+GPU 硬體+Wiindows XP/Vista/7+Decoder 可以做到您說的,把 bitstream 從 container split 出來後,CPU 就涼勢涼勢什麼都不用幹的?我只知道 de-entropy,macro block decode,filters,color space transform,post-processing 可以利用 GPU 的硬體來加速,但是似乎還是要 CPU 來串連這一堆 GPU 硬體加速工作,那到底這樣的 decoder 是「軟解」?怎樣是「硬解」?可否請您下個定義?為何您指出我說的是「大部份是software decoder的流程」?另外「譬如Adobe的flash10.1在OSX下就缺乏API來讓GPU處理video的bitstream」可否在深入說明一下?小弟真的不是很懂您說的,就我知道 Snow Leopard 有 OpenGL/OpenCL 可以用來加速 de-entropy,macro block decoding,filtering,color space transforming,post-processing,當中的一項或多項解碼過程中的運算,為何會說沒有?如果您說的是像 Windows 底下由 ATI/nVidia 所提供的 DirectShow filter 讓 Adobe 可以很輕鬆的呼叫使用,那恐怕問題又回到跟上面一樣,為什麼 Apple/ATI/nVidia 三家公司不好好坐下來利用 QuickTime component frameworks 寫一個像 Windows 下可以用到 ATI/nVidia GPU 加速的 plugin,順便也公布 SDK 讓 Adobe 可以用。

gate2 wrote:
Apple的問題不在於沒有積極支援3'rd party,而在於沒有implement底層的GPU video engine,讓這些software decoder也能輕鬆使用內建的硬體來處理video playback。

現在的 Snow Leopard 提供了更佳的 OpenGL/OpenCL frameworks,可以達到同樣的運算加速目的。另外在 H.264 Full HD 之前的 video/audio streams,似乎不需要什麼硬體加速。小弟還真的不是很理解您說的「底層的GPU video engine」的定義是什麼?

題外話,為何 video decoding 這件事變成是 GPU 的職責?Intel/AMD 的 CPU 效能無法跟上低耗電的消費性產品所製作的內容(比如說一台小 DV 或手機拍的 HD 影片),這是一件很丟臉的事耶,不過好像很少人在批 Intel/AMD 不長進喔,反而變成是 Microsoft,Apple,ATI,nVidia 的事了!。。。

小弟並不是 Apple 員工,也沒買 Apple 股票,只是純就技術上向您請教,因為您之前回覆小弟的地方,有很多我不是很理解的地方,還希望您不吝指教,或許我真的有盲點也不一定。
Lucose wrote:
Apple 好像沒賣過在規格書上有註明「專門的硬體在處理video playback」,除了 Snow Leopard 及 QuickTime X 推出時配合當時切換到 nVidia 9400M/9600M chipset 才有在 Tech Spec 上註明,您要不要確認一下?另外如果您指的是 ATI/nVidia 的 GPU 有這項功能,那就有趣了,該提供的,恐怕是 Apple,ATi 與 nVidia 這三家公司一起坐下來好好合作,把您要的功能做好。所以要打可能也是三個都該打屁股。話說回來,只有 SD resolution 的 MPEG1/2/4 真的也不需要用到什麼 GPU 加速,過去 PowerPC G4/G5 以及 Intel Core Duo,Core 2 Dou 就很夠用了。


Nvidia的 PureHD和AMD的Avivo HD就是GPU內的video硬體引擎,可以offload CPU在video playback的負擔。Nvidia和ATI早在GF8xxx和HD2xxx系列的GPU裡實現這樣的設計,Apple的iMac/MacBook使用相同的晶片,卻只有在Nvidia的9400M裡提供這個功能,這就是重點,為什麼有這樣的硬體,上層的player卻不能使用這樣的功能。Mac版的硬體只能從Apple購買,driver只能從Apple下載,所以Apple is the one to blame。

CPU夠不夠力不是這個討論的重點。有現成硬體可以做事,為什麼還要用CPU的運算?

Lucose wrote:
您可以告訴我有那台 PC CPU+GPU 硬體+Wiindows XP/Vista/7+Decoder 可以做到您說的,把 bitstream 從 container split 出來後,CPU 就涼勢涼勢什麼都不用幹的?我只知道 de-entropy,macro block decode,filters,color space transform,post-processing 可以利用 GPU 的硬體來加速,但是似乎還是要 CPU 來串連這一堆 GPU 硬體加速工作,那到底這樣的 decoder 是「軟解」?怎樣是「硬解」?可否請您下個定義?為何您指出我說的是「大部份是software decoder的流程」?另外「譬如Adobe的flash10.1在OSX下就缺乏API來讓GPU處理video的bitstream」可否在深入說明一下?小弟真的不是很懂您說的,就我知道 Snow Leopard 有 OpenGL/OpenCL 可以用來加速 de-entropy,macro block decoding,filtering,color space transforming,post-processing,當中的一項或多項解碼過程中的運算,為何會說沒有?如果您說的是像 Windows 底下由 ATI/nVidia 所提供的 DirectShow filter 讓 Adobe 可以很輕鬆的呼叫使用,那恐怕問題又回到跟上面一樣,為什麼 Apple/ATI/nVidia 三家公司不好好坐下來利用 QuickTime component frameworks 寫一個像 Windows 下可以用到 ATI/nVidia GPU 加速的 plugin,順便也公布 SDK 讓 Adobe 可以用。


我哪裡有說CPU可以什麼事都不做? OpenGL/OpenCL是API,但實際執行運算的是硬體,如果你提到的 de-entropy,macro block decoding,filtering,color space transforming,post-processing是透過OpenGL/OpenCL交給CPU處理,那就還是軟解。有API可以用是一回事,有硬體支援API運算是另一回事。譬如,只要安裝DirectX任何人都可以執行以DirectX開發的軟體,但只有在GPU硬體支援DirectX指令的情況下,你的CPU才不必進行相關的運算把它offload到GPU。這樣解釋硬解和軟解的差異,你可以理解嗎?

第二個問題,Adobe可以呼叫相關API來執行video playback的運算啊,但他們要的是由GPU執行的API不是CPU。

Lucose wrote:
現在的 Snow Leopard 提供了更佳的 OpenGL/OpenCL frameworks,可以達到同樣的運算加速目的。另外在 H.264 Full HD 之前的 video/audio streams,似乎不需要什麼硬體加速。小弟還真的不是很理解您說的「底層的GPU video engine」的定義是什麼?

題外話,為何 video decoding 這件事變成是 GPU 的職責?Intel/AMD 的 CPU 效能無法跟上低耗電的消費性產品所製作的內容(比如說一台小 DV 或手機拍的 HD 影片),這是一件很丟臉的事耶,不過好像很少人在批 Intel/AMD 不長進喔,反而變成是 Microsoft,Apple,ATI,nVidia 的事了!。。。

小弟並不是 Apple 員工,也沒買 Apple 股票,只是純就技術上向您請教,因為您之前回覆小弟的地方,有很多我不是很理解的地方,還希望您不吝指教,或許我真的有盲點也不一定。


我的感覺是你對整個系統的底層不是很清楚,尤其是硬體,所以才會一直認為只要有frameworks就是"運算加速"。有frameworks有API,你在OS上層開發的軟體才能進行相關的運算,跟是否有硬體加速是兩回事。你知道一個硬體的16-bit全加器只需要幾個clock就可以完成加法運算,如果你要交給CPU做也行,但光等它有空就要等很久。這就是為什麼GPU設計要內建video engine來處理video playback,尤其是HD,因為"快"。



gate2 wrote:
Nvidia的 PureHD和AMD的Avivo HD就是GPU內的video硬體引擎,可以offload CPU在video playback的負擔...


1.為什麼 ATI/nVidia 不把 Avivo 跟 PureVideo 移植到 OS X?真的是在 OS X 技術上做不到嗎?Apple 的 OS X 卡死了 ATI/nVidia 嗎?您可以解釋一下 Turbo.264 HD 這一類的產品是怎麼做到的?是 Apple 偏心跳下來幫 Elgato 寫 driver 寫 API?應該不是吧!Elgato 等公司利用 OS X 內建的 frameworks,並且把對自家硬體所支援的 driver 實作出來的吧,更好的是如果您寫的 player 可以用 QuickTime framework 而且認得 Elgato 這些公司的硬體加速 component,插上該硬體,您也可以得到同樣的加速效果喔。有趣的是為什麼 ATI/nVidia 做不到?
2.Snow Leopard 之前的 OS X 版本不支援 OpenCL,但是 nVidia 有把 CUDA SDK 移植到 OS X 上,為什麼 3'rd party decoder/player 不用?Snow Leopard 則有更強大的 OpenCL 可用,我還是不懂為什麼在有支援 OpenCL 硬體加速的 Mac 機器上呼叫 OpenCL API 只是如您所說用到 CPU 而已,而不能用到 GPU 加速?您真的要好好幫小弟上一課,我在 Apple 官網站以及 HPC 網站看到的,跟您所說有極大的差異,不少在 Mac 上科學運算的軟體已經成功的使用 OpenCL API 來使用 nVidia/ATI GPU 運算加速功能。

gate2 wrote:
的感覺是你對整個系統的底層不是很清楚,尤其是硬體,所以才會一直認為只要有frameworks就是"運算加速"。有frameworks有API,你在OS上層開發的軟體才能進行相關的運算,跟是否有硬體加速是兩回事。你知道一個硬體的16-bit全加器只需要幾個clock就可以完成加法運算,如果你要交給CPU做也行,但光等它有空就要等很久。這就是為什麼GPU設計要內建video engine來處理video playback,尤其是HD,因為"快"。

1.OpenGL/OpenCL 沒有支援 GPU 硬體運算?是我對系統/硬體/底層不了解?還是您說錯了?
2.'Framework' 這個詞在 OS X 是類似 Windows 底下的 'SDK library',不是我們一般在 software 書籍裡面所指的那個 'framework' 喔,Apple 提供了不少 SDK libraries(frameworks) 供開發者使用,包括最新的 QuickTime SDK 也可以在 Snow Leopard 及 QuickTime X 所列出有支援的 GPU 上使用硬體加速運算的功能,就好像您在 Windows 7 底下直接呼叫 Windows Media Player 的 SDK 只要硬體有支援,自動就會用到 GPU 硬體加速一樣。您要不要到 Apple 官網再讀一遍?


可能請您要再多多解釋一下 CUDA/PureVideo,Stream SDK/Avivo,OpenCL,DirectX SDK,QuickTime SDK 等等,以及 ISO-13818,IEC-14496,還有怎麼實作 video decompressor ,小弟覺得您上面的回文對技術上的解釋又把小弟搞的更糊塗了,感謝您啊!
Lucose wrote:
1.為什麼 ATI/nVidia 不把 Avivo 跟 PureVideo 移植到 OS X?真的是在 OS X 技術上做不到嗎?Apple 的 OS X 卡死了 ATI/nVidia 嗎?您可以解釋一下 Turbo.264 HD 這一類的產品是怎麼做到的?是 Apple 偏心跳下來幫 Elgato 寫 driver 寫 API?應該不是吧!Elgato 等公司利用 OS X 內建的 frameworks,並且把對自家硬體所支援的 driver 實作出來的吧,更好的是如果您寫的 player 可以用 QuickTime framework 而且認得 Elgato 這些公司的硬體加速 component,插上該硬體,您也可以得到同樣的加速效果喔。有趣的是為什麼 ATI/nVidia 做不到?
2.Snow Leopard 之前的 OS X 版本不支援 OpenCL,但是 nVidia 有把 CUDA SDK 移植到 OS X 上,為什麼 3'rd party decoder/player 不用?Snow Leopard 則有更強大的 OpenCL 可用,我還是不懂為什麼在有支援 OpenCL 硬體加速的 Mac 機器上呼叫 OpenCL API 只是如您所說用到 CPU 而已,而不能用到 GPU 加速?您真的要好好幫小弟上一課,我在 Apple 官網站以及 HPC 網站看到的,跟您所說有極大的差異,不少在 Mac 上科學運算的軟體已經成功的使用 OpenCL API 來使用 nVidia/ATI GPU 運算加速功能。


1. PureVideo和Avivo都是硬體,它早就包含在Apple的硬體裡,為什麼Apple不開放上層AP使用這個硬體功能,這是Apple該回答的問題。另外,Apple不是第一天這麼做了,iPod的bluetooth也是現成的硬體在那裡,但就是要使用者付費更新軟體後才能使用。Turbo.264HD這產品怎麼做的你要問他啊? 它可以裡面放一顆H.264的codec,然後自己port到自己開發的軟體並使用這個硬體功能啊。相同的道理Mac顯示晶片的driver是Apple負責開發的,Apple不做,使用者當然批評Apple啊,跟Nvidia/AMD何關?

2.現在我很確定你不了解底層硬體的運作,有現成的硬體在做H.264 decoder,沒有人會發神經用OpenCL來作decode。OpenCL要做也是encode。你又沒教學費給我,我為什麼要幫你上課? Apple官網就說的很清楚,QTX的H.264硬體加速只有9400平台支援,你前面洋洋灑灑列那一堆是"可以播放的環境"不是"可以使用GPU硬體加速播放的環境",你真的很番。


Lucose wrote:
1.OpenGL/OpenCL 沒有支援 GPU 硬體運算?是我對系統/硬體/底層不了解?還是您說錯了?
2.'Framework' 這個詞在 OS X 是類似 Windows 底下的 'SDK library',不是我們一般在 software 書籍裡面所指的那個 'framework' 喔,Apple 提供了不少 SDK libraries(frameworks) 供開發者使用,包括最新的 QuickTime SDK 也可以在 Snow Leopard 及 QuickTime X 所列出有支援的 GPU 上使用硬體加速運算的功能,就好像您在 Windows 7 底下直接呼叫 Windows Media Player 的 SDK 只要硬體有支援,自動就會用到 GPU 硬體加速一樣。您要不要到 Apple 官網再讀一遍?


可能請您要再多多解釋一下 CUDA/PureVideo,Stream SDK/Avivo,OpenCL,DirectX SDK,QuickTime SDK 等等,以及 ISO-13818,IEC-14496,還有怎麼實作 video decompressor ,小弟覺得您上面的回文對技術上的解釋又把小弟搞的更糊塗了,感謝您啊!


1. 我認為你完全不懂底層硬體,也沒有使用過HDL設計過RTL,所以才會老拿OpenGL/OpenCL來當作"硬體加速"。我有沒有說錯?

2. QTX只在9400M平台上,某些格式的H.264會交給GPU的video engine處理,俗稱h.264硬體加速。你在10.6的QTX下播h.264編碼的MKV檔(最好是30Mbps這種流量),飆高的CPU使用率和在windows下相比,你就可以了解QTX的h.264硬體加速有多殘缺。你先把OS底層硬體運作搞懂,不要老是拿個SDK或是frameworks來談底層硬體運作,基本上那些東西是OS和上層AP的interface,跟OS底層的硬體/driver如何運作是兩回事。
  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?