2012年8月11日 星期六

AirPlay Mirroring 不支援舊款 Mac 的真正原因


對於很多人來說,Mountain Lion 就像 Snow Leopard 一樣只是小改版,但裡面不乏一些有用的新功能,比如說 AirPlay Mirroring 就是一例。AirPlay Mirroring 是什麼呢?簡單的說它就是終極的 AirPlay,把只能投影特定 App 之影音內容的 AirPlay 擴充到將整個螢幕畫面都能利用 AirPlay + Apple TV 投影到大螢幕 (像電視) 上。聽起來沒什麼,但它不僅能同時傳輸影像及音訊,而且不用接線,完全是以無線網路達成這一切,用過的人就會知道有多麼方便。

AirPlay Mirroring 最初是在 iPad 2 的發表會上亮相,也就是說它支援 iPad 2,但很可惜的是它並不支援 iPad 1,即使升級到最新版的 iOS 也沒用。當時我就覺得奇怪,為什麼會有這樣的機種限制?明明 iPad 1 支援 AirPlay,而且也有 VGA Adapter 用以投射 App 畫面 (當然必須要該 App 支援,不能 Mirroring),為何不支援 AirPlay Mirroring?而且連用 Apple Digital AV Adapter 去輸出也不支援有線的 Mirroring,這到底是怎麼回事?

這個疑問在 Mountain Lion 上市後有了更多的討論,因為支援 AirPlay Mirroring for Mountain Lion 的 Mac 機種更少!清單在此,幾乎可以說在 2011 年之前出廠的 Mac 全部都不支援,這一點著實讓許多使用者感到不滿或失望,但 Apple 官方並沒有解釋為什麼不支援那些舊款 Mac。不過,有人發現了一個軟體可以讓舊款 Mac 突破這個困境 -- AirParrot!這也代表並非完全不可能,那麼 AirParrot 是怎麼做到的呢?有鑑於此,Cult of Mac 訪問了 AirParrot 的開發者,為大家解開這個謎團,以下是該篇舊文的全文翻譯,請各位不吝指教。

=============================

The Real Reason Why Macs Before 2011 Can't Use AirPlay Mirroring In Mountain Lion (原文連結)

2011 年前的 Mac 不能使用 AirPlay Mirroring 的真正原因

隨著 Mountain Lion 上市,AirPlay Mirroring 正式登陸 Mac,它允許 "某些" Mac 能直接串流影音內容到 Apple TV 中,並投射到大螢幕上。

"某些" 這詞兒在這裡是指 "有效的"、"能運行的",什麼意思呢?就是指若你的 iMac、MacBook Air、Mac Mini 不是 2011 年中之後生產的機種,或是 MacBook Pro 不是 2011 年初之後生產的機種,你的 Mac 即使安裝了 Mountain Lion 也不支援 AirPlay Mirroring,而這一點正是大多數使用者對 Mountain Lion 失望的主要原因。

於是,一堆 Apple 的陰謀論隨即浮上檯面,有些人說這是 Apple 單方面強迫使用者升級舊機的策略,而另外一派的人則猜測這是由於使用特殊 DRM 技術的 Intel 晶片在 2011 年前尚未問世 [1],所以舊款 Mac 才無法支援 AirPlay Mirroring。

然而,其實這檔子事的真正原因一點都不值得大家熱烈討論,因為原因很簡單,就只是舊款 Mac 之繪圖晶片的運算能力不夠強,達不到 Apple 心中認可的標準罷了。

How can that be?

It's simple: the secret sauce that Apple requires to make AirPlay Mirroring work is on-GPU H.264 encoding, or the ability to compress video on your device's actual graphic chips without calling upon the CPU.

那麼,要怎麼做才能達到 Apple 的要求?很簡單,AirPlay Mirroring 需要一種 GPU 晶片,它支援 H.264 編碼或具備壓縮影像訊號的能力,更重要的是,它要能支援完全的硬體編碼。也就是說,在進行 AirPlay Mirroring 時,GPU 必須完全吃下這一切,使得 CPU 不用經手 AirPlay Mirroring 的運算。

"至少在 Apple 的考量之下,較舊款的 Mac 不具支援 AirPlay Mirroring 的能力" 知名 AirPlay-like 軟體 AirParrot 的 Sid Keith 說 "若不使用 GPU 硬體編碼,鏡像輸出 (mirroring) 會耗費大量的 CPU 資源,此舉會使效能降低至 Apple 無法允許的地步"。

回頭想想,並非只有 2011 年之前的舊款 Mac 不支援 AirPlay Mirroring,即便是 iOS device,也只有 iPhone 4S 或 iPad 2 之後的機種才支援 AirPlay Mirroring [2],為什麼呢?因為較舊的 iOS device 所搭載的 A 系列處理器並不具備 H.264 GPU 硬體編碼的能力。

"由於 AirPlay Mirroring 的需求,Intel 及 AMD 於 2011 年亮相的新款處理器都為此被 Apple 要求必須符合它所要的規格" AirParrot 的首席開發者 David Stanfill 表示。

"Apple 已經為新款 Intel 及 AMD 處理器寫好了 H.264 GPU 硬體編碼的驅動程式" Stanfill 說 "在即將進行 AirPlay Mirroring 前,螢幕上的任何影像都已經儲存在圖型畫面的緩衝區 (graphics' frame buffer) 裡,Apple 所要做的是:1. scaling 依比例延伸 (這是 AirPlay Mirroring 裡最耗費資源的一環,所以若兩者的解析度 1:1 相同,投影的效果是最好的);2. color conversion 色彩空間轉換 (H.264 影像使用 YUV 色彩空間,投影至其他螢幕時必須轉換成 RGB 色彩空間);3. 即時的 GPU 硬體編碼。接著,Apple 只要將檔案相對小的已編碼影音串流傳輸至 Apple TV 上即可。"

That's not to say that it's impossible for Apple to do AirPlay Mirroring on a Mac without on-GPU H.264 encoding. AirParrot is an app that proves exactly the opposite: all that is required is a multi-core CPU. But things can definitely get hot, and Apple hates that.

不過,這並不代表不支援 H.264 GPU 硬體編碼的 Mac 完全不可能使用 AirPlay Mirroring。AirParrot 就是一個明顯的反例 -- 它讓所有內建多核心 CPU 的 Mac 都能使用 AirPlay Mirroring,但此舉會讓機器變熱,而 Apple 最肚爛這種事

"在 AirParrot 裡,我們花費了大量的時間去調整驅動影像訊號轉換的 CPU 指令" Stanfill 告訴 Cult of Mac "其實近代的多核心 CPU 處理 H.264 編碼都是綽綽有餘,但處理「比例延伸」及「色彩空間轉換」還是非常吃力。目前我們的 AirParrot 可以做到 1080p / 60 fps 的 AirPlay Mirroring,但也只需要 10~20% 的 CPU 用量,這種效能比用 Flash 播放 1080p 的影片還要好。不過,妥協之處在於,若較舊款的 Mac 使用 AirParrot,它必須承擔不小的 CPU 用量,而且此舉會讓風扇狂轉,以及機器變得有些溫熱 .... 但是,就算是以 GPU 硬體編碼來運行 AirPlay Mirroring,2011 年 Macbook 的擁有者一樣可以注意到它所產生的熱。"

不過,無論你使用的是 AirPlay Mirroring 或 AirParrot、無論你使用的是新款或舊款的 Mac,對於大部分使用者來說,真正的瓶頸並不是 H.264 編碼由誰 (GPU 或 CPU) 運算,而是網路的速度

"為了平順地使用如 AirPlay Mirroring 的「以網路為基底的影音播放」,你真的需要最高等級的網路" Stanfill 再次強調 "這意指 AirPort Express 系列 IP 分享器,或是其他高等級高頻寬的 IP 分享器所營造出來的穩定連線品質對於 AirPlay Mirroring 來說是必須的。在這幾個月來,已經有上萬個使用不同連線品質之網路的用戶使用 AirParrot,我們的 AirParrot 能夠傳輸與 AirPlay Mirroring 相同等級的影音串流,所以沒有理由期待 Apple 之 AirPlay Mirroring 的使用體驗會跟 AirParrot 有多大的差異,但若你在使用 AirPlay Mirroring 時同時也在用 BT 抓東西 ..... 嗯 .... 只能祝你好運。"

OK,謎團解開了!所以,如果你的 Mac 是 2011 年前的舊款機種,在安裝 Mountain Lion 之後是不能使用 AirPlay Mirroring 的,不過 AirParrot 可以達成你的心願,它的售價僅為 9.99 美元,而且支援 Snow Leopard 以上的 OSX 版本,如果你想先試用看看,可以至官網下載試用版來玩玩。

==========================

嗯,實際翻譯一篇文章才知道看得懂跟寫成翻譯文章是完全不同的兩回事 ..... 其實為了語意及語句通順,我額外添加了不少字詞,有些地方簡直就是改寫了 ...... 這點要跟忠於原作的網友們說聲抱歉,有任何建議請留言給我,感謝各位的指教~


附註
1. 這裡的 "Intel 晶片" 就是大家都知道的 Sandy Bridge 系列晶片組。
2. 換句話說,只有 A5 以上的 A 系列處理器才支援 AirPlay Mirroring。

沒有留言:

張貼留言