2013年8月17日 星期六

下一代智慧型電視的設計需求

出處: 電子工程專輯
時間: 2011年02月08日

隨著技術進展,下一代電視、機上盒、以及數位媒體配接器等裝置,都變得越來越有‘智慧’,不僅能彼此互連,還能與網際網路連接。這些智慧型裝置都將成為令人注目的平台,以為儲存和分享音樂、視訊、雲端應用、社交媒體帶來全新的消費者體驗。同時,這些裝置也將能與智慧型家庭、智慧型行動裝置間無縫互動,打造出真正的連網新體驗。

下一代智慧型連網電視平台,例如最近發表的GoogleTV,將成為單一、簡易好用的多媒體來源與平台,可有效地結合網際網路多媒體互動內容與地面、衛星電視頻道,帶來一致性、直覺式的使用者體驗。消費者將能搜尋、組織、並體驗從廣播業者、網路服務、個人內容圖書館、以及透過行動應用產生或存取到的各種來源內容。

本文將介紹開發下一代智慧型連網電視平台時,所需考量的軟體和硬體需求。

智慧型電視的軟體需求

下一代智慧型電視(smart TV)將包含可管理底層硬體的先進軟體,並為終端使用者帶來一致性的使用者介面(UI)與可擴展的多樣化應用程式。

關鍵軟體包括具豐富功能的Android作業系統、Adobe Flash Player、以及Google Chrome或JavaScript-based widget引擎等快速網路體驗。

Android是專為用來作為下一代智慧型電視等連網平台基礎所設計的。它是以Linux核心為基礎,包括多個以C程式撰寫的軟體庫,以及用來執行應用程式碼的Dalvik虛擬機器(VM)。它通常附有能使此平台更為齊全的整套應用程式。Android是由Google免費提供,它的程式碼可依Apache開放原始碼授權協議取得,業者可針對其特定應用進行增強設計,無需再向開放來源提交程式碼。

Android應用程式是完全以Java撰寫的,但必須轉換為Dalvik可執行格式。Google會提供可與常用Eclipse整合開發環境一起使用的外掛程式與程式庫。Android的設計概念是,應用程式能在不同的硬體架構中自由移動,以減輕程式開發的負擔。

Google Chrome是採用WebKit佈局引擎和應用程式架構的網路瀏覽器。GoogleTV平台中的絕大部分是以Chrome提供的,它形成了基本的網際網路/網路平台。Chrome也會被GoogleTV應用程式所使用─其中有許多是真正的Chrome-based JavaScript應用程式,可透過遠端網路伺服器或網站與客戶端相連。類似像Chrome這類的瀏覽器是下一代智慧型電視的重要關鍵,以提供完整的網路瀏覽體驗。

Chrome的優點在於其應用程式效能與JavaScript處理速度。Chrome和Chrome-based JavaScript的效能非常重要,它會直接影響到處理器、GPU、以及記憶體的需求。

Adobe Flash Player可為網頁和服務增加動畫、視訊、和互動性。目前有超過75%的多媒體網頁內容是採用Adobe Flash Player所設計。Adobe Flash Player可處理向量和點陣式繪圖,以提供文字、圖面、和靜態影像的動畫。更重要的是,它支援音訊和視訊的雙向串流。因此,智慧型電視的硬體平台須能符合Adobe Flash Player的效能需求,才能得到令人滿意的使用者體驗。

為了能串流至Adobe Flash客戶端,此平台需有足夠效能以支援高訊框率、全訊框的HD視訊。至少此平台必須支援單一HD串流,並能同時處理其他的使用者互動功能,例如透過滑鼠、鍵盤、或麥克風產生使用者輸入,以及能從相連的相機串流視訊/靜態影像,而不會遺漏任何事件或畫面。更先進的智慧型電視可以傳輸多個Internet-based Flash串流,並顯示HDMI/複合視訊來源。

Adobe Flash Player包含一個稱為ActionScript的物件導向語言。它的主要功能包括支援硬體加速,以提升Open Screen計畫所支援的各種裝置之繪圖效能。

H.264視訊在Flash Player 10.1中是透過一顆GPU或硬體視訊解碼器進行解碼。有些硬體解碼器能同時加速多個H.264串流。加速的幅度取決於解碼器的規格。如果硬體解碼器不能處理額外的串流,Adobe Flash Player將會用軟體對此串流進行解碼。H.264的編碼則有多種選項,並且都能支援不同硬體解碼器的特定格式。

除了硬體H.264解碼,可支援OpenGL ES 2.0存取的裝置都能用Adobe Flash Player 10.1來產生所有繪圖元素(Pixel Bender著色器除外),而這些元素都是利用GPU硬體來增加繪圖效能的。當內容在這些裝置上執行時,會自動設定為GPU模式,以得到最佳效能。

智慧型電視使用者介面

下一代智慧型電視平台必須能處理先進3D UI繪圖,包括將3D UI作成出現在視訊串流或其他應用視窗上的半透明層。此介面能以不同的長寬比執行,因此使用者能為顯示裝置選擇適當的配置。智慧型電視裝置必須能支援長寬比為16x9的全1080p解析度裝置。

介面本身將包括表單按鍵,以及代表可用內容或功能的圖示或縮略圖(thumbnail)。智慧型電視平台能發揮Android平台中的多工、多執行緒功能。透過點選介面元素,使用者就能啟動相關的Android程式,並同時執行多個應用程式。

在初期的Android平台中,切換到另一個應用程式通常會使最近執行的應用程式中斷,特別是,如果每個應用程式都需要顯示視訊串流的話,更是如此。隨著平台效能的提升,由於Android能讓多個應用程式同時保持活躍,此一現象將會改善。

智慧型電視硬體需求

以傳統數位視訊為基礎的消費電子產品與下一代智慧型電視間的差異,在於需要使用軟體和硬體來統一多媒體的檢視、相關應用程式和網路瀏覽。成功的關鍵是能提供一個不會出錯、不會中斷的使用者介面,以及具一致性的使用環境。下一代智慧型電視必須能有與PC/MAC相似的執行效能,但又要有消費性產品的可靠度與易用性。

要建置一個下一代智慧型電視平台,需從現今使用的典型智慧型/數位電視平台開始。

現今的基礎架構必須予以修改,才能因應下一代的效能與連接性需求。

除了所要求的效能範圍外,下一代智慧型電視與傳統DTV硬體需求之間還有其他的差異。硬體─不管是透過原始單一/多核心處理器或利用輔助硬體─都必須能提供完美的使用者體驗和可靠的連接性,其中包括:
* 相同或不同視訊內容的即時顯示錄影
* 在螢幕上同時顯示多重視訊串流
* 反應快速的網頁瀏覽
* 完美的Flash Player 10效能
* 快速應用程式啟動─優異的Java效能
* 可儲存Context(情境),讓使用者能在應用程式間來回移動
* 為UI提供快速的3D繪圖執行
* 快速開機
* 低功耗待機模式
* 支援數位家庭中所有的連接標準,包括802.11有線/無線網路、HDMI、USB和既有的視訊標準

CPU 在前一代產品中,CPU通常執行一個小型作業系統,並主要用來管理2D UI、產生螢幕畫面、並處理‘輕載’作業。

在下一代平台中,CPU會執行功能更豐富的Android OS、Java VM、多個應用程式開發庫、應用程式架構、以及數個預設的應用程式。此平台必須支援一個類似Chrome的瀏覽器、多個特定為TV使用者體驗設計的應用程式。所有這些都會為主處理器帶來大量的工作負載,因此有可能需要用到繪圖處理、轉碼、和編解碼器等硬體加速器。

傳統DTV和下一代產品間的另一個差異在於,CPU工作負載具有顯著的動態和變異特性。
傳統DTV是專為較固定效能需求所設計,它的工作負載變化不大。軟體是由製造商決定,因此平台的工作負載範圍能妥善規劃,並選用適當的處理器、記憶體、和額外元件。系統工作負載的最糟狀況是與DTV有限的功能有關,通常會發生在處理2D UI,因為它的功能有限,因此除了DTV的主要工作外,只能啟動或看見一部分的UI。

下一代平台則具備更寬廣的系統效能需求。CPU工作負載的最糟狀況會發生在當使用者在觀賞網際網路串流視訊時,但此平台並沒有原生的硬體解碼器,而需要用到CPU執行軟體解碼。與此同時,使用者可能還會看廣播電視和/或執行Java應用程式,或甚至進行與遠方使用者之間的雙向通訊。這顯示出新一代平台的工作負載有許多的不可預測性。Android作業系統基本上是遵循POSIX,並支援多核心、多執行緒應用程式。Android同時也支援對稱多重處理(SMP),可讓智慧型電視平台充分發揮處理器核心的多執行緒、SMP效能。

這是半導體供應商和OEM業者的主要設計考量。多變的工作負載和多種具視訊功能的網路應用程式,會需要更高的整體系統效能需求。因此,選用一個能完全支援多執行緒應用程式和SMP配置的處理器架構,是非常重要的關鍵。

GoogleTV中有兩款鎖定低階功能的產品,它們能處理UI需求,但僅具處理同步多媒體串流、同步應用程式和網路瀏覽的有限功能。這意味著,平台/半導體設計人員必須選擇具擴充性的處理器架構,並能與其他多種元件整合,以滿足連接性、繪圖、多媒體解碼/轉碼的需求。
從一個能提供完美使用者體驗和有限同步功能的入門級平台來看,半導體廠商應考慮採用執行速度為1 GHz的超純量單核心處理器,或800MHz的雙核心多執行緒處理器。CPU應包含一個執行速度至少為處理器時脈速度一半的浮點運算單元(FPU)。此外,我們也建議採用32KB L1指令和資料快取、最小32-entry TLB(建議用64)、和256KB L2快取。

另一方面,對於一個能提供完美使用者體驗、平行視訊串流、應用程式執行和網路瀏覽的高階平台,我們則建議至少採用速度為1 GHz或以上的雙核心超純量處理器。此處理器應包含一個執行速度為處理器時脈速度一半的FPU、32KB L1指令和資料快取、以及64 entry TLB。同時,每個CPU應要有256KB L2快取 (也就是說,雙核心SoC需要512KB)。

繪圖 要支援下一代Android智慧型電視,開發人員必須建置符合OpenGL ES 2.0規範的3D繪圖引擎。OpenGL ES 2.0繪圖引擎必須能提供豐富的3D使用者介面、網際網路瀏覽、Adobe Flash Player 10.x、Flash-based 3D遊戲和Alpha混合。

顯示訊框緩衝器

1080p解析度表示有1,920水平畫素乘以1,080垂直線條,總共有2,073,600個畫素。若每個畫素採用4位元組色深,總計需要在CPU和繪圖引擎緩衝器間共享的記憶體容量為8,294,400位元組,或約8.3MB。

ATSC電視的最大訊框率為60Hz,這表示8.3MB的資料必須在一秒內傳送60次到顯示器。對一個32位元寬的記憶體匯流排來說,最佳狀況是每個週期傳送4位元組,因此傳輸到顯示器的數據率為:

這是訊框緩衝器的傳輸需求。此外,也需要有用來執行預渲染(pre-rendering)、3D材質映射等的繪圖引擎記憶體存取。視訊解壓器也要有自己的記憶體空間。

SoC記憶體控制器的設計也是關鍵。採用最快的外部DRAM,可確保終端產品能提供高品質的使用者體驗。這聽起來可能有點超過,但是,除了產生現場/錄影的視訊串流,下一代智慧型電視會高度依賴瀏覽器功能,發揮3D繪圖控制器的最大優勢以快速執行頁面內容。若要有流暢的使用者體驗,訊框緩衝器必須儘可能的大,同時記憶體控制器也必須儘可能支援最快的傳輸率。

目前,任何來自網際網路的視訊內容來源都是採用Adobe Flash Player。存取透過瀏覽器來的Flash-based內容,將會進一步增加繪圖子系統訊框緩衝器和記憶體控制器的工作負載。

根據這些軟體需求,針對OpenGL ES 2.0繪圖引擎所建議的最小效能為每秒大於250 百萬畫素,以及每秒大於10M個三角形。

編解碼器 顯示視訊內容的新一代裝置都會採用專屬的硬體解碼器,來處理1080p HD內容。在主應用處理器上執行軟體編解碼器,只適用於極小的螢幕尺寸。這類以軟體為基礎的解碼,可能無法充分發揮主應用處理器的效能,並有可能影響到諸如處理網路連接性等其他需求。與機上盒和DTV平台一樣,建議採用專屬硬體來建置所需的編解碼器。

下一代智慧型電視需要多種編解碼器,而不同的電視標準,如ATSC、DVB等,都會有各自不同的需求。編解碼器需要能提供與PC相同的網際網路瀏覽體驗。SoC製造商必須決定要用硬體或軟體來建置這些編解碼器。如果有些編解碼器是建置在軟體中,那就必須有足夠的運算能力,以滿足不同標準組織制定的最低效能水準。

記憶體(DRAM和快閃記憶體) 由於需要處理多重視訊串流和應用程式同步執行/網路瀏覽,我們建議,針對入門級系統,至少要用1GB的DDR2/3記憶體;而高階系統,設計人員應該至少考慮用兩倍的記憶體容量,即2GB。

此外,系統也需要採用快閃記憶體,以供儲存非揮發性程式碼程存和現場更新之用。針對入門級系統,我們建議至少要配置256MB,而高階系統需512MB。同時也要輔助儲存用的外部USB埠,讓使用者可自行載入內容。

外部記憶體介面是限制效能的最重要因素。在一個CPU、繪圖處理器、壓縮/解壓縮引擎都共享相同記憶體的系統中,記憶體介面必須儘可能採取最快、最寬的吞吐量設計。
因為繪圖效能至關重要,因此SoC和系統設計人員應詳細檢查繪圖引擎供應商提供的記憶體和系統匯流排需求規格。

本文小結

正如Android行動電話一樣,我們期望看到Android智慧型電視從2011年起就會有爆炸性的成長。

在設計這些平台時,選擇可針對Android進行最佳化的CPU架構非常重要,同時也能最佳化所有軟體堆疊所需的元件,以取得峰值效能。當然,開發工具和相關軟體庫也是關鍵。
謹慎考慮本文中提出的需求建議,將能設計出可確保優異智慧型電視體驗的高效能SoC。


圖 1:智慧型電視的軟體架構範例。

圖2:現今智慧型電視的硬體需求。

圖3:傳統數位視訊的運作環境。

圖4:常用的編解碼器和其應用。
作者:Kevin Kitagawa
MIPS科技行銷總監

沒有留言:

張貼留言