《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 系統(tǒng)級(jí)抽象有助于加速嵌入式視頻產(chǎn)品上市進(jìn)程

系統(tǒng)級(jí)抽象有助于加速嵌入式視頻產(chǎn)品上市進(jìn)程

2008-12-05
作者:J.B. Fowler

?

??? 數(shù)字視頻技術(shù)" title="視頻技術(shù)">視頻技術(shù)正從便攜式攝像機(jī)與安全監(jiān)控系統(tǒng)等專(zhuān)用應(yīng)用領(lǐng)域向各種消費(fèi)類(lèi)電子產(chǎn)品快速推廣,這為傳統(tǒng)視頻開(kāi)發(fā)技術(shù)提出了巨大挑戰(zhàn)。過(guò)去,這些傳統(tǒng)技術(shù)需要熟悉最新編碼/解碼(編解碼器" title="編解碼器">編解碼器)標(biāo)準(zhǔn)并能為高性能信號(hào)處理平臺(tái)編寫(xiě)匯編代碼的專(zhuān)家手工編寫(xiě)大量代碼。

?

??? 信號(hào)處理技術(shù)制造商推出了將處理器、開(kāi)發(fā)工具、軟件以及系統(tǒng)專(zhuān)業(yè)技術(shù)高度集成的開(kāi)發(fā)環(huán)境,使設(shè)計(jì)人員能夠在高系統(tǒng)級(jí)" title="系統(tǒng)級(jí)">系統(tǒng)級(jí)別的抽象環(huán)境下開(kāi)發(fā)視頻應(yīng)用" title="視頻應(yīng)用">視頻應(yīng)用,從而解決這一繁瑣而復(fù)雜的難題。這使設(shè)計(jì)人員能集中精力開(kāi)發(fā)應(yīng)用功能,通過(guò)簡(jiǎn)單調(diào)用應(yīng)用編程接口 (API) 就能實(shí)施視頻、音頻、語(yǔ)音和影像技術(shù),以處理諸如實(shí)施特定編解碼器引擎以及匹配屏幕分辨率等細(xì)節(jié)。

?

新一代視頻應(yīng)用

?

??? 隨著實(shí)施數(shù)字視頻的成本不斷下降,更多嵌入式開(kāi)發(fā)人員開(kāi)始在各種產(chǎn)品中集成音、視頻技術(shù)。機(jī)頂盒(STB)作為集成家庭安全監(jiān)控系統(tǒng)的功能,其使家庭用戶(hù)能在電視屏幕上查看訪(fǎng)客情況。同時(shí),傳統(tǒng)與非傳統(tǒng)視頻應(yīng)用的質(zhì)量也在不斷提高。為了可智能化地調(diào)整對(duì)比度與聚焦,正在開(kāi)發(fā)計(jì)算性能更高的算法。高靈活性的處理選項(xiàng)也使用戶(hù)能通過(guò)包括黑白、彩色、紅外、熱感等在內(nèi)的各種設(shè)置捕獲影像。此外,我們也正在開(kāi)發(fā)智能攝像頭,以在鏡頭框中的所有人都睜眼時(shí)才捕獲影像。

?

傳統(tǒng)的編解碼器實(shí)施方法

?

??? 日益廣泛的視頻使用與復(fù)雜性不斷提高的新型視頻應(yīng)用使人們開(kāi)始重視傳統(tǒng)視頻開(kāi)發(fā)方法的局限性問(wèn)題。傳統(tǒng)方法的最大障礙之一就是需要對(duì)編解碼器算法進(jìn)行手工編碼,才能壓縮數(shù)據(jù)流進(jìn)行傳輸存儲(chǔ)也才能解壓縮用于查看和編輯。目前的編解碼器標(biāo)準(zhǔn)非常復(fù)雜,而且還在不斷演進(jìn)發(fā)展,以增強(qiáng)視頻質(zhì)量和降低帶寬占用。

?

????正由于此,工程師往往需要很多人月 (man-month) 的時(shí)間才能完成嵌入式視頻應(yīng)用的實(shí)施。通常,編解碼器先用采 C/C++ 等較高級(jí)語(yǔ)言開(kāi)發(fā),然后再將部分代碼用匯編語(yǔ)言重寫(xiě),從而根據(jù)硬件實(shí)施優(yōu)化性能與功耗。上述編程工作的第二階段需要熟練掌握特定硬件平臺(tái)的大量專(zhuān)業(yè)技能。

?

??? 諸如 MPEG2 等前代編解碼器已穩(wěn)定成型,但 MPEG4 與 H.264 等最新的高效編解碼器仍在不斷改進(jìn),因此我們必須在產(chǎn)品開(kāi)發(fā)過(guò)程和未來(lái)升級(jí)中考慮到編解碼器變動(dòng)的可能性。此外,新型編解碼器也提供了更豐富的工具套件 (toolset),能夠?yàn)殚_(kāi)發(fā)人員在設(shè)置視頻流" title="視頻流">視頻流時(shí)提供更多選擇。例如,有的編解碼器視頻流可允許使用隔行掃描規(guī)范,而有的則不行。

?

硬件考慮事項(xiàng)

?

??? 編解碼器通常運(yùn)行于專(zhuān)用集成電路 (ASIC) 或數(shù)字信號(hào)處理器(DSP)上。ASIC是針對(duì)特定應(yīng)用進(jìn)行設(shè)計(jì)定制的,因此功耗通常較低,外形尺寸也相對(duì)較小。使用 ASIC 的不利因素在于,工程設(shè)計(jì)僅適用于特定應(yīng)用,因此成本較高,而且如果要根據(jù)不斷發(fā)展的編解碼器標(biāo)準(zhǔn)進(jìn)行實(shí)施更改的話(huà),成本也會(huì)比較高。新編解碼器的實(shí)施通常需要增加 ASIC 器件的裸 片大小。

?

??? DSP 則能提供全面的軟件可編程性,其中包括現(xiàn)場(chǎng)再編程功能,以使用戶(hù)在推出 MPEG 2 產(chǎn)品之后還能再讓其升級(jí)支持 H.264 視頻編解碼器。此外,DSP 還有助于簡(jiǎn)化可支持多種編解碼器產(chǎn)品的開(kāi)發(fā),而且還能根據(jù)標(biāo)準(zhǔn)的變化實(shí)時(shí)更新編解碼器。此外,還可將 DSP集成在片上系統(tǒng)(SoC)中,與諸如通用處理器(GPP)和加速器等更多功能結(jié)合在一起,從而有助于減少組件數(shù)。

?

應(yīng)用領(lǐng)域的問(wèn)題

?

??? 數(shù)字視頻實(shí)施只是當(dāng)今大多數(shù)創(chuàng)新型應(yīng)用的一部分,通常運(yùn)行于 GPP 之上的應(yīng)用則構(gòu)成另一部分,可提供用戶(hù)界面并實(shí)現(xiàn)產(chǎn)品差異化的特定特性。應(yīng)用的重要角色之一就是實(shí)現(xiàn)軟硬件的統(tǒng)一,例如,在編解碼器與視頻端口之間提供視頻緩存。此外,應(yīng)用還需要諸如 Linux或Windows CE 等操作系統(tǒng),因?yàn)楸仨毻ㄟ^(guò)操作系統(tǒng)來(lái)處理以太網(wǎng)協(xié)議棧、無(wú)線(xiàn)協(xié)議棧、輸入/輸出設(shè)備驅(qū)動(dòng)器等。

?

通過(guò)軟件實(shí)現(xiàn)硬件抽象

?

??? 新一代視頻產(chǎn)品的開(kāi)發(fā)人員必須快速向市場(chǎng)推出具備高級(jí)特性的產(chǎn)品,才能確保在競(jìng)爭(zhēng)中脫穎而出。為了實(shí)現(xiàn)上述目標(biāo),他們必須盡可能集中優(yōu)勢(shì)資源用于應(yīng)用本身的開(kāi)發(fā)工作,而不應(yīng)被視頻實(shí)施的具體細(xì)節(jié)所干擾。

視頻硬件開(kāi)發(fā)人員為了滿(mǎn)足上述要求,推出了包含軟硬件、工具以及支持等在內(nèi)的集成式環(huán)境,能夠大幅簡(jiǎn)化數(shù)字視頻技術(shù)的實(shí)施。這種環(huán)境提供了一個(gè)開(kāi)放式平臺(tái)以供眾多企業(yè)開(kāi)發(fā)和集成可構(gòu)成數(shù)字視頻系統(tǒng)的不同組件,從而降低了視頻系統(tǒng)的復(fù)雜性。這些高性能信號(hào)處理平臺(tái)目前包含生產(chǎn)就緒型軟件,如硬件驅(qū)動(dòng)器、手工優(yōu)化的編解碼器,以及管理網(wǎng)絡(luò)上音視頻同步和流媒體的應(yīng)用代碼等。

?

??? 新架構(gòu)提供的 API 使開(kāi)發(fā)人員能專(zhuān)注于應(yīng)用開(kāi)發(fā)工作,而無(wú)需為視頻實(shí)施問(wèn)題浪費(fèi)過(guò)多時(shí)間,也不必進(jìn)行 DSP 編程。通過(guò)將硬件實(shí)施細(xì)節(jié)與硬件在應(yīng)用中的使用相分離,開(kāi)發(fā)人員可非常便捷地將應(yīng)用移植到新平臺(tái)與新操作系統(tǒng)上,一般僅需更改 API 之后的驅(qū)動(dòng)器即可。

編寫(xiě)應(yīng)用程序的開(kāi)發(fā)人員僅需調(diào)用標(biāo)準(zhǔn)函數(shù)庫(kù)就能實(shí)施各種視頻、影像、話(huà)音與音頻編解碼器以及其他視頻和音頻功能。

?

??? API 本身由硬件制造商提供,并已針對(duì)硬件實(shí)施進(jìn)行了優(yōu)化。如果換用新的硬件,那么只需替換驅(qū)動(dòng)程序即可,而無(wú)需更改應(yīng)用代碼。如果標(biāo)準(zhǔn)發(fā)生更改或者發(fā)布了新標(biāo)準(zhǔn),則硬件制造商可以更新編解碼器,這樣應(yīng)用開(kāi)發(fā)人員只需下載新的軟件庫(kù)而不必重新編寫(xiě)代碼。這種方案有助于大幅降低視頻開(kāi)發(fā)的成本并縮短產(chǎn)品上市進(jìn)程。

?

訪(fǎng)問(wèn)任何來(lái)源的視頻

?

??? 上述方案的主要優(yōu)勢(shì)在于無(wú)需對(duì)應(yīng)用代碼做出重大更改即能訪(fǎng)問(wèn)各種來(lái)源的視頻流。例如,可用下列代碼來(lái)訪(fǎng)問(wèn)硬盤(pán)驅(qū)動(dòng)器等 ATA 外設(shè)中的視頻,而且可對(duì)這段代碼范例稍做修改,就能訪(fǎng)問(wèn)任何來(lái)源的視頻。

??? InitPeripherals()

??? InitEthernet();

??? InitUSB();

??? InitATA();

??? InitDisplay();

??? InitH264Decoder();

??? OpenCodec()

??? OpenH264Channel();

??? StartDecode(ATA.Address, H264.Channel, Display.Address);

?

??? 通過(guò) API,開(kāi)發(fā)人員能根據(jù)視頻引擎來(lái)配置硬件,以確保特殊應(yīng)用能夠滿(mǎn)足復(fù)雜節(jié)目要求,如影像尺寸、單位像素位 (bpp) 等,此外還能管理幀緩沖器與內(nèi)置屏幕顯示功能等,不一而足。

?

更改顯示尺寸

?

??? 下列代碼范例顯示,打開(kāi)并配置視頻流之后即可輕松更改顯示尺寸。這段代碼使機(jī)頂盒能使用相同的代碼與家庭影院監(jiān)視器直接相連,并將內(nèi)容下載至個(gè)人視頻播放器。

?

??? InitPeripherals()

??? // Display driver is passed arguments to move away from

??? default values

??? InitDisplay(QCIF | CIF | D1 | 720p | 1080i);

?

??? 新系統(tǒng)級(jí)抽象方案可顯著簡(jiǎn)化高級(jí)視頻特性的實(shí)施。我們可用這種方案來(lái)實(shí)施時(shí)移技術(shù),以便將實(shí)時(shí)視頻存儲(chǔ)至磁盤(pán)上,而不必一定要立即播放,這樣用戶(hù)即便暫時(shí)沒(méi)時(shí)間收看也可以看重播,從而不會(huì)錯(cuò)過(guò)任何節(jié)目。

?

I/O 層驅(qū)動(dòng)程序

?

??? 上述各種特性背后的復(fù)雜細(xì)節(jié)均由通用 API 訪(fǎng)問(wèn)低層驅(qū)動(dòng)程序完成,因而對(duì)開(kāi)發(fā)人員而言實(shí)際上是完全透明的。采用界面熟悉、獲廣泛支持的 Linux 驅(qū)動(dòng)程序可簡(jiǎn)化視頻技術(shù)在嵌入式應(yīng)用中的集成工作。我們可使用 Linux 社區(qū)非常熟悉的 API,如捕獲側(cè) (capture side) 上的 Video for Linux Two (V4L2) API 與通用 FBDev API 等,能夠簡(jiǎn)化從 PC 開(kāi)發(fā)環(huán)境向嵌入式 SOC 環(huán)境的升級(jí)。

?

??? 我們能夠在無(wú)需使用任何匯編語(yǔ)言編程的情況下以最佳方式實(shí)施硬件產(chǎn)品的計(jì)算資源。我們可以執(zhí)行各種復(fù)雜操作,包括優(yōu)化使用DSP資源和基于硬件的加速引擎,通過(guò)信號(hào)鏈模式使用增強(qiáng)型直接存儲(chǔ)器存取外設(shè)以提高數(shù)據(jù)傳輸效率,并通過(guò)中斷和小片任務(wù)模式(Interrupt vs. Tasklet)中的分組處理來(lái)靈活滿(mǎn)足不同應(yīng)用要求等。

?

??? 總而言之,新型設(shè)計(jì)方法使開(kāi)發(fā)人員能夠通過(guò) API 實(shí)現(xiàn)全面的視頻功能,而不必考慮視頻處理的細(xì)節(jié)問(wèn)題??奢p松對(duì)視頻處理的低級(jí)別細(xì)節(jié)進(jìn)行修改,以滿(mǎn)足編解碼器或硬件更改的要求,而毋需更改上層應(yīng)用代碼。這種方案消除了對(duì) DSP 進(jìn)行編程的麻煩,以使開(kāi)發(fā)團(tuán)隊(duì)能將大部分部力量集中于應(yīng)用本身的開(kāi)發(fā)上。此外,新方案還有助于以更低的費(fèi)用大幅縮短集成領(lǐng)先視頻功能的產(chǎn)品的上市時(shí)間,同時(shí)減少未來(lái)產(chǎn)品維護(hù)與升級(jí)所需的時(shí)間和成本。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。