數字電視 HbbTV與GoogleTV平臺的技術(shù)分析
3)程序庫層
Android包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過(guò)Android應用程序框架為開(kāi)發(fā)者提供服務(wù)。以下是一些核心庫:
系統C庫:從BSD繼承來(lái)的標準C系統函數庫(libc),它是專(zhuān)門(mén)為基于嵌入式Linux(Embedded Linux)的設備優(yōu)化了的;
媒體庫:基于PacketVideo/OpenCORE。該庫支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。支持的編碼格式包括MPEG-4、H.264、MP3、AAC、AMR、JPG、PNG等;
顯示管理器(SuRFace Manager):對顯示子系統的管理,并且為多個(gè)應用程序提供2D和3D圖層的無(wú)縫融合;
瀏覽器引擎(LibWebCore):最新的Web 瀏覽器引擎用,支持Android 瀏覽器和可嵌入的Web 視圖;
圖性引擎(SGL):底層的2D圖形引擎;
3D圖形庫(3D libraries):基于OpenGL ES 1.0 APIs 實(shí)現;該庫可以使用硬件3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速;
字體引擎(FreeType):點(diǎn)陣(Bitmap)和矢量(Vector)字體顯示;
SQLite:一個(gè)對于所有應用程序可用,功能強勁的輕型關(guān)系型數據庫引擎。
4)Android運行庫(RunTIme libraries)
編程語(yǔ)言核心庫的大多數功能。 Android包括了一個(gè)核心庫,它提供了Java
每一個(gè)Android應用程序都在它自己的進(jìn)程中運行,都擁有一個(gè)獨立的Dalvik虛擬機(Dalvik VM)實(shí)例。Dalvik被設計成可以同時(shí)高效地運行多個(gè)虛擬系統。
程序的虛擬機,其可執行文件(Dalvik Dalvik虛擬機是由Google公司主導開(kāi)發(fā)的用來(lái)解釋執行Java executable 編譯器編譯,然后通過(guò)SDK?format)格式文件(.dex)針對小內存使用做了優(yōu)化。同時(shí)Dalvik虛擬機是基于寄存器的,所有類(lèi)都經(jīng)由Java 中的dx工具轉化成“.dex”格式由虛擬機執行。Dalvik虛擬機依賴(lài)Linux內核的一些功能,比如線(xiàn)程機制和底層內存管理機制。
5)Linux 內核
Android的核心系統服務(wù)依賴(lài)于Linux 2.6 內核,如安全性、內存管理、進(jìn)程管理、網(wǎng)絡(luò )協(xié)議棧和驅動(dòng)模型。Linux內核也同時(shí)作為硬件和軟件棧之間的抽象層。
Android媒體庫系統OpenCORE的架構如下圖所示:

圖為:Android媒體庫軟件的組成
OpenCore的代碼非常龐大,它是基于C++的實(shí)現,定義了全功能的操作系統移植層,各種基本的功能均被封裝成類(lèi)(Class)的形式,各層次之間的接口多使用繼承等方式。
在A(yíng)ndroid 2.1及以前的版本中,是不支持JIT的。2010年5月21日的Google I/O大會(huì )上,Google發(fā)布了Android 2.2版本,主要的新功能包括:
支持JIT,性能也有提高;
支持Adobe Flash 10.1及AIR(Apollo Integrated Runtime)技術(shù);
支援全新的API應用,例如語(yǔ)音辨識功能,可以快速將話(huà)語(yǔ)轉成文字訊息,進(jìn)行資料搜尋,甚至用來(lái)啟動(dòng)Google Maps等;
在企業(yè)應用上也有相當程度的支持,例如微軟的Exchange、Security Policies與GAL lookup(全地址搜索)等,方便在接收即時(shí)訊息與內容快速傳送之類(lèi)的運用。
2.3 HbbTV與GoogleTV平臺的技術(shù)比較分析
從上面的分析我們可以看到,HbbTV是MHP模式的中間件平臺向互聯(lián)網(wǎng)(基于IP傳輸的網(wǎng)絡(luò ))的延伸,其細致的基于IP網(wǎng)絡(luò )通道應用管理的協(xié)議規范,可以有效地將廣播通道的應用管理融于一體,使得HbbTV平臺(簡(jiǎn)單地說(shuō)就是中間件平臺)可以支持DVB、IP多媒體應用。而GoogleTV的技術(shù)平臺,是將基于Linux的開(kāi)放軟件包集成在一起,采用開(kāi)源的媒體播放器來(lái)播放音視頻流媒體。在GoogleTV的核心Android系統中,并沒(méi)有支持廣播通道(DVB-C/S/T)的數字電視協(xié)議(至少到目前為止還沒(méi)有),因此,它是不可以被數字電視運營(yíng)商用來(lái)開(kāi)展增值業(yè)務(wù)的。這可以說(shuō)是GoogleTV平臺目前的一個(gè)重要的缺陷。
一般情況下,數字電視中間件平臺(即使是基于MHP規范的),都是與平臺的操作系統(RTOS)無(wú)關(guān)的,例如中間件系統中的文件系統、TCP/IP 協(xié)議棧等是可以移植到不同的系統中的,這樣基于中間件的業(yè)務(wù)平臺對系統的內存和存儲(如Flash等)的要求就會(huì )低許多;而Android系統是基于 Linux的,盡管實(shí)時(shí)Linux操作系統進(jìn)行了許多的優(yōu)化,但每個(gè)應用需要在一個(gè)不同的進(jìn)程中運行,其需要的存儲等都還是比標準的中間件平臺要大許多。尤其是Android系統中的圖形與圖像處理模塊、媒體播放器模塊、瀏覽器引擎等都是Google公司從其它的開(kāi)源代碼中集成起來(lái)的,是一個(gè)GPL軟件包的組合與大雜燴。
程序的執行方式:Dalvik語(yǔ)言進(jìn)行應用程序的編寫(xiě),DalvikVM采用了與JavaVM不同的bytecode格式和Java盡管都是采用 Java程序的執行進(jìn)行了優(yōu)化。然而,Dalvik虛擬機與傳統的Java虛擬機相比的性能提高,還沒(méi)有權威機構給出數據。在A(yíng)ndroid2.1版本以前,Google號稱(chēng)其性能優(yōu)異,無(wú)需JIT(Just-In-Time)技術(shù),可是,在最近發(fā)布的Android2.2中,JIT技術(shù)還是采用了。知識產(chǎn)權問(wèn)題,當然也對Java?VM是基于寄存器的;JavaVM是基于堆棧的。此舉的目的是為了避開(kāi)Sun公司的Java。
基于HbbTV的中間件平臺,是由不同的技術(shù)廠(chǎng)商自行開(kāi)發(fā)和提供的,在符合標準規范(HbbTV、MHP或其它專(zhuān)有中間件規范)的情況下,可以添加運營(yíng)商需要的功能、從而適合個(gè)性化與交互性的應用需要;GoogleTV采用的是開(kāi)源軟件包,是免費的。這成為眾多終端整機廠(chǎng)商趨之若鶩的重要原因。
3、數字電視運營(yíng)對中間件技術(shù)平臺的要求
在網(wǎng)絡(luò )功能趨同、業(yè)務(wù)融合的今天,數字電視運營(yíng)已經(jīng)發(fā)生了很大的變化,通過(guò)寬帶網(wǎng)絡(luò )、基于IP協(xié)議傳遞視頻的業(yè)務(wù)和多媒體終端已經(jīng)在大量涌現。在IP網(wǎng)絡(luò )上進(jìn)行點(diǎn)播、時(shí)移以及錄制等都是很普通的功能,而且,應用本身和其數據已經(jīng)混為一體、不可區分。由于信息量大和及時(shí)性要求,這些應用以及越來(lái)越多地以HTML網(wǎng)頁(yè)的形式展現,根據需要及時(shí)下載,或者相關(guān)信息通過(guò)Ajax、RSS等協(xié)議自動(dòng)更新。
對運營(yíng)商而言,數字電視數據業(yè)務(wù)可能來(lái)源于廣播信道(衛星、有線(xiàn)或無(wú)線(xiàn)等)和/或寬帶信道(互聯(lián)網(wǎng)、或其它的IP通道)的信號,音視頻與數據可以不加區分地由這兩個(gè)通道分別接入,在帶寬限制的情況下,廣播通道可以用來(lái)播送高清節目,而寬帶的使用形式就會(huì )有很廣,如視頻點(diǎn)播、時(shí)移、信息瀏覽、電子商務(wù)等。
運營(yíng)商對數字電視的訴求是要通過(guò)提供音視頻內容、娛樂(lè )信息等,來(lái)進(jìn)行增值業(yè)務(wù)和互動(dòng)應用的運營(yíng)。因此,運營(yíng)商需要一個(gè)能夠完全掌控的“封閉”環(huán)境,形成一個(gè)“圍墻花園”(Walled Garden),將音視頻節目、娛樂(lè )信息、增值業(yè)務(wù)與應用都搬到運營(yíng)商控制的平臺上向用戶(hù)提供,并對所有業(yè)務(wù)的運行進(jìn)行監控。同時(shí),運營(yíng)商也需要能夠有開(kāi)放系統的可能,允許終端用戶(hù)訪(fǎng)問(wèn)開(kāi)放的互聯(lián)網(wǎng)信息,甚至可以訪(fǎng)問(wèn)互聯(lián)網(wǎng)音視頻內容,如YouTube、優(yōu)酷網(wǎng)、土豆網(wǎng)等視頻網(wǎng)站的內容。當然,從內容安全的角度來(lái)看,這些互聯(lián)網(wǎng)內容需要在服務(wù)器端進(jìn)行過(guò)濾與監控。同時(shí),運營(yíng)商需要一個(gè)穩定、可靠的中間件業(yè)務(wù)平臺,根據市場(chǎng)和業(yè)務(wù)的發(fā)展進(jìn)行功能的更新與改進(jìn),他們需要專(zhuān)業(yè)的中間件平臺技術(shù)廠(chǎng)商為其進(jìn)行針對性和專(zhuān)業(yè)化的服務(wù),這勢必使得中間件平臺逐步個(gè)性化和根據運營(yíng)商的需要進(jìn)行定制化,即使是基于HbbTV平臺的中間件,在不同的運營(yíng)商市場(chǎng),會(huì )顯示出有運營(yíng)商烙印的特征功能,這將會(huì )促進(jìn)運營(yíng)商在激烈的競爭中不斷推陳出新、發(fā)展用戶(hù)、贏(yíng)得競爭。
數字電視行業(yè)正在經(jīng)歷著(zhù)深刻的變化,多媒體視頻業(yè)務(wù)通過(guò)多種渠道不斷涌現。從老百姓的角度來(lái)講,過(guò)去被動(dòng)地看電視就夠了,現在需要越來(lái)越多的交互性?xún)热?,比如在體育賽事播出時(shí)提供增值業(yè)務(wù)等,觀(guān)眾對數字手段帶來(lái)好處的要求也越來(lái)越多,短信、電子郵件、天氣預報也可以搬到電視屏幕上來(lái),除此以外,還有一些個(gè)性化的社區服務(wù)和社會(huì )化電視。
4、未來(lái)的技術(shù)平臺誰(shuí)會(huì )勝出?
從業(yè)務(wù)的角度上來(lái)看,數字電視有兩類(lèi)市場(chǎng):運營(yíng)商市場(chǎng)和零售市場(chǎng)。數字電視運營(yíng)商(包括廣電運營(yíng)商和電信運營(yíng)商)需要在他們的“封閉”網(wǎng)絡(luò )(“圍墻花園”—Walled Garden)中進(jìn)行經(jīng)營(yíng)與發(fā)展、創(chuàng )造用戶(hù)、增加收入。在封閉的網(wǎng)絡(luò )中,運營(yíng)商能夠豐富他們的業(yè)務(wù),提供開(kāi)放的互聯(lián)網(wǎng)無(wú)法比擬的應用內涵和服務(wù)質(zhì)量。以 HbbTV為基礎的中間件融合業(yè)務(wù)平臺,既可以滿(mǎn)足運營(yíng)商采用廣播和(或)寬帶通道進(jìn)行增值業(yè)務(wù)開(kāi)展的需要,而且又可以支持運營(yíng)商對應用進(jìn)行管理和控制。因此,HbbTV中間件平臺更能夠符合運營(yíng)商的需要,必將成為運營(yíng)商的不可或缺的業(yè)務(wù)運營(yíng)平臺。
從技術(shù)的角度來(lái)看,GoogleTV并沒(méi)有脫離微軟公司的WebTV、Apple公司的AppleTV的框架與功能,是WebTV或AppleTV 在互聯(lián)網(wǎng)電視上的又一次努力,是互聯(lián)網(wǎng)技術(shù)移植到流媒體視頻處理領(lǐng)域的技術(shù)思路的延續。毫無(wú)疑問(wèn),采用它去瀏覽Hulu、YouTube等視頻網(wǎng)站的內容以及網(wǎng)上新聞是沒(méi)有問(wèn)題的,但對有大量覆蓋的有線(xiàn)電視、衛星電視和(或)IPTV電視用戶(hù)的數字電視運營(yíng)商來(lái)說(shuō),我們認為,它是不便于用來(lái)進(jìn)行增值業(yè)務(wù)運營(yíng)的。
GoogleTV當前引起了業(yè)界的廣泛關(guān)注,主要原因是Google公司將Android平臺全部開(kāi)放其源代碼,容許Android在終端上的移植層的源代碼為各廠(chǎng)家所擁有(各廠(chǎng)家自己進(jìn)行移植)。我們認為,GoogleTV平臺可能適合于數字電視廠(chǎng)家將其移植到零售市場(chǎng)的終端設備上,用來(lái)支持互聯(lián)網(wǎng)流媒體的播放與瀏覽、增加其終端設備的功能和賣(mài)點(diǎn)。運營(yíng)商市場(chǎng)是不可能使用原封不動(dòng)的GoogleTV平臺的。即使有廠(chǎng)家將GoogleTV系統用于運營(yíng)商市場(chǎng),那他們也需要花費巨大的精力將原有Android系統進(jìn)行技術(shù)改造、增加運營(yíng)商需要的功能。那這樣,它也就不成為GoogleTV平臺,而只是開(kāi)源代碼為技術(shù)廠(chǎng)商所用而已,就象其它的開(kāi)源代碼(如WebKit、OpenGL等)一樣。
總之,Google公司將GoogleTV平臺完全開(kāi)放源代碼,其本質(zhì)目的是使GoogleTV終端能夠訪(fǎng)問(wèn)他們的Android應用商店,他們通過(guò)此應用商店獲取利益,而并非真正是為了數字電視業(yè)界有一個(gè)普遍適用的技術(shù)平臺而無(wú)利益的考量。不管怎樣,GoogleTV是互聯(lián)網(wǎng)領(lǐng)域向數字電視領(lǐng)域融合的又一次嘗試,它為家電廠(chǎng)家的終端研發(fā)提供了軟件系統的參考,必將對數字電視和互聯(lián)網(wǎng)視頻流媒體業(yè)務(wù)的未來(lái)發(fā)展產(chǎn)生深遠影響。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
c++相關(guān)文章:c++教程
矢量控制相關(guān)文章:矢量控制原理
評論