999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于BCM7241平臺的DirectFB圖形引擎移植研究

2015-01-17 12:27:44梁文森
電腦與電信 2015年4期
關(guān)鍵詞:引擎嵌入式系統(tǒng)

梁文森

(1.福州大學(xué)物理與信息工程學(xué)院,福建 福州 350116;2.福建星網(wǎng)銳捷通訊股份有限公司,福建 福州 350001)

基于BCM7241平臺的DirectFB圖形引擎移植研究

梁文森1,2

(1.福州大學(xué)物理與信息工程學(xué)院,福建 福州 350116;2.福建星網(wǎng)銳捷通訊股份有限公司,福建 福州 350001)

本文詳細(xì)描述了如何在BCM7241硬件平臺上移植實現(xiàn)DirectFB的圖形引擎硬件加速功能;并把移植之后在系統(tǒng)性能上得到的提升與未移植之前做比較,說明DirectFB在優(yōu)化BCM7241硬件平臺GUI性能上的作用。

GUI;DirectFB;BCM7241;移植;圖形引擎

1 引言

圖形用戶界面,又稱圖形用戶接口(Graphical User Interface,簡稱GUI)是指采用圖形的方式顯示用戶操作界面。它與早期使用的非圖形界面的命令行界面相比,對于用戶來說圖形界面在視覺上更易于操作、接受。

近幾年來,隨著嵌入式技術(shù)的快速發(fā)展,嵌入式系統(tǒng)在軟件、硬件上均取得了較大的進(jìn)步。嵌入式GUI圖形引擎也得到了快速的發(fā)展,涌現(xiàn)出了一大批優(yōu)秀的嵌入式GUI圖形引擎,如:DirectFB、MiniGUI、QT等。近年來的市場調(diào)研需求顯示,非常多的嵌入式系統(tǒng),包括移動播放器、數(shù)字機(jī)頂盒、汽車電子控制系統(tǒng)、移動終端設(shè)備等均要求有一個高可靠、高性能的GUI系統(tǒng)的支持。因此,對圖形用戶界面GUI系統(tǒng)的要求是:高性能、高可靠、輕型、可移植、占用資源少、可配置等。

在嵌入式圖形引擎中需要實現(xiàn)很多圖形功能,具體包括:圖形的疊加、繪制、拷貝等。其中,有許多圖形功能需要進(jìn)行大量的數(shù)據(jù)傳遞搬移(如:圖形拷貝),或者有許多圖形功能需要進(jìn)行大量的數(shù)據(jù)運算(如2張圖片進(jìn)行混合疊加)。許多顯卡芯片帶有GPU(圖形處理器),有一部分圖形加速功能能夠從硬件上實現(xiàn)。

本文詳細(xì)描述了如何在BCM7241硬件平臺上移植實現(xiàn)DirectFB的圖形引擎硬件加速功能;并把移植之后在系統(tǒng)性能上得到的提升與未移植之前做比較,說明DirectFB在優(yōu)化BCM7241硬件平臺GUI性能上的作用。

2 DirectFB圖形引擎移植實現(xiàn)

2.1 BCM7241硬件平臺簡介

BCM7241芯片平臺是博通公司推出的一款低成本高性能的高清晰IP機(jī)頂盒(STB)解決方案芯片。 博通的BCM7241是一款SOC芯片,芯片內(nèi)部集成了MIPS核、視頻解碼器(RISC處理器)、音頻解碼器(DSP處理器)、解復(fù)用模塊(RISC處理器)、圖形引擎模塊(2D、OpenGL)、顯示模塊、DDR3控制器等多個功能模塊,其芯片內(nèi)部結(jié)構(gòu)如圖1所示。

圖1 BBCM7C24M1芯片內(nèi)部結(jié)構(gòu)

BCM7241芯片集成一個單核雙線程RISC MIPS核,主頻達(dá)到3000+DMIPS;集成一個DDR3內(nèi)存控制器,外接1GByte DDR3內(nèi)存;集成一個NAND FLASH控制器,目前外接一片256MByte NAND FLASH芯片用來存儲Linux操作系統(tǒng)和應(yīng)用程序。在BCM7241芯片平臺上廠商已提供可運行嵌入式Linux,其內(nèi)核版本3.3.3。

BCM7241圖形引擎模塊中,2D圖形引擎處理速率達(dá)到776 Mpixels per second,其2D圖形引擎具有如下幾個特性:硬件Scaling縮放、硬件BLT疊加等特性。

2.2 DirectFB簡介

DirectFB是一個輕型的提供硬件圖形引擎加速、輸入設(shè)備處理、集成透明管理的視圖窗口系統(tǒng)以及在驅(qū)動層之上的多層顯示的開放源碼庫。它是一個用軟件封裝實現(xiàn)當(dāng)前芯片硬件無法支持的圖形算法的層。DirectFB是專門針對嵌入式系統(tǒng)而設(shè)計,在設(shè)計之初就充分考慮嵌進(jìn)式系統(tǒng)的固有特性,體積小巧,資源消耗低,以最小的資源開銷來實現(xiàn)最高的硬件加速性能。作為嵌進(jìn)式系統(tǒng)中強(qiáng)大的圖形處理庫,DirectFB成為Linux下圖形處理的一個新的標(biāo)準(zhǔn)。

DirectFB是存在于Linux Frame Buffer層之上,高級圖形管理層(如QT、GTK+等)之下的。它以很小的資源占用來提供圖形硬件加速功能,如:提供多路帶α通道渲染等高級圖像操作功能。它不依賴其它庫除了標(biāo)準(zhǔn)C庫外,不需修改Linux內(nèi)核。它廣泛的應(yīng)用于有關(guān)Linux顯示界面的項目上。它支持市面上絕大部分的硬件顯示卡,支持鼠標(biāo)、鍵盤、遙控器、觸摸屏等輸入設(shè)備。支持JPEG、PNG、BMP、GIF、DirectFB bitmap font和矢量字庫TrueType等音視頻文件和字體。

2.3 DirectFB體系結(jié)構(gòu)

從GUI整個系統(tǒng)架構(gòu)來看,對于一般的DTV、STB來說,DirectFB處于QT、GTK這樣的高級GUI框架的下面,Linux系統(tǒng)驅(qū)動的上面。DirectFB是一個圖形加速中間件,專門針對Linux圖形庫設(shè)計的。

它的上層直接為圖形庫(如QT、GTK)提供如畫圖、顯示、輸入設(shè)備控制等服務(wù);它的下層直接面向GFX硬件加速,要求硬件驅(qū)動實現(xiàn)全部或部分預(yù)定的畫圖函數(shù),具體結(jié)構(gòu)如圖2所示。

圖2 DirectFB在應(yīng)用系統(tǒng)位置

對于上層的GUI高級框架來說,DirectFB是透明的;對于底層的驅(qū)動來說,DirectFB里面包含負(fù)責(zé)和硬件打交道的顯卡的驅(qū)動(gfxdriver)和顯示系統(tǒng)(system),這里gfxdriver是和各個硬件平臺相關(guān)的,需要自己實現(xiàn)。更加細(xì)化的Direct-FB的結(jié)構(gòu)圖如圖3所示。

圖3 DirectFB內(nèi)部結(jié)構(gòu)

2.4 DirectFB移植實現(xiàn)

通過上述對DirectFB體系結(jié)構(gòu)分析,在BCM7241硬件平臺上移植DirectFB圖形引擎需要根據(jù)BCM7241硬件平臺特性實現(xiàn)幾個模塊,具體是:gfxdriver(硬件圖形加速接口)、system系統(tǒng)顯示輸出、video(硬件音視頻解碼)。為了更易于理解DirectFB,介紹幾個DirectFB的概念,具體如下:

(1)Layers

它代表互相獨立的圖形緩存。大多數(shù)嵌入式設(shè)備都有多個layer,多個layer根據(jù)對應(yīng)的alpha值混合在一起從而顯示出來。

(2)Surface

代表一塊預(yù)留的內(nèi)存,來保存像素數(shù)據(jù)。DirectFB中的Drawing,Bilitting操作就是基于Surface的。Surface的內(nèi)存根據(jù)設(shè)定,可以從系統(tǒng)中分配,也可以從顯卡的內(nèi)存中分配。

(3)Primary Surface

代表一個特殊layer的特殊surface。如果primary surface是單緩沖的,任何對于primary surface的操作都會直接反應(yīng)到顯示屏上。

(4)Subsurface

是一個surface的子集,但是自身并不占有任何內(nèi)存。

(5)Window/Windowstack

控制一個layer中的surface該顯示什么。Window屬于某個背景可以設(shè)定的layer。每個window有自己的surface,window用這個surface來組合圖像。

把DirectFB圖形引擎移植到博通BCM7241硬件平臺上需注意下面幾點:

(1)必須給圖形引擎驅(qū)動取一個唯一的名字,并且用宏定義DFB_GRAPHICS_DRIVER(bcmnexus_gfx)實現(xiàn)。

(2)在驅(qū)動中定義如下6個函數(shù)供DirectFB Core使用,具體如圖4所示。

(3)關(guān)鍵函數(shù)說明

driver_init_driver函數(shù)是初始化硬件驅(qū)動,在獲得所有需要的資源后驅(qū)動應(yīng)該注冊屏幕和層;同時通過GraphicsDeviceFuncs結(jié)構(gòu)的funcs返回BCM7241硬件平臺的硬件加速函數(shù)列表,具體實現(xiàn)方式如圖5所示。

圖4 DirectFB Core函數(shù)

圖5 硬件加速函數(shù)列表

其中,基于BCM7241硬件平臺2D圖形引擎實現(xiàn)的函數(shù)有:繪制矩形函數(shù)bcmnexus_gfxDrawRectangle、填充矩形函數(shù)bcmnexus_gfxFillRectangle、疊加函數(shù)bcmnexus_gfxBlit及拉伸疊加函數(shù)bcmnexus_gfxStretchBlit。

3 DirectFB圖形庫測試

為了測試移植后的圖形庫的性能采用DirectFB官方加速測試程序df_dok,主要針對圖形各種效果的混合功能進(jìn)行了測試。未開啟硬件加速,測試數(shù)據(jù)如圖6所示:

圖6 不開啟硬件加速測試

開啟硬件加速,測試數(shù)據(jù)如圖7所示:

圖7 開啟硬件加速測試

通過圖6、圖7測試數(shù)據(jù)對比可以看出,采用DirectFB硬件加速可以大幅度提升2D性能。

4 結(jié)語

基于BCM7241平臺的DirectFB圖形引擎移植可實現(xiàn)圖形用戶界面快速響應(yīng),用戶界面場景切換流暢,與移植DirectFB圖形引擎之前相比系統(tǒng)的性能顯著提升;它充分利用了圖形引擎加速器的加速功能,把大部分?jǐn)?shù)據(jù)處理交由圖形引擎處理,極大地減輕了CPU處理數(shù)據(jù)的負(fù)擔(dān),提高了嵌入式系統(tǒng)的圖形用戶界面性能。目前,該設(shè)計已應(yīng)用到數(shù)字標(biāo)牌嵌入式終端系統(tǒng)上,極大地提高了系統(tǒng)圖形用戶界面性能,給用戶帶來很好的交互體驗。

[1]劉小雙,李建平,鄭志國.DirectFB圖形加速在嵌入式系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009.

[2]吳文良.一種適合嵌入式系統(tǒng)的圖形庫DirectFB[J].硅谷,2010.

[3](加)亞荷毛爾等,秦云川.改編構(gòu)建嵌入式Linux系統(tǒng)(第二版)[M].中國電力出版社,2011.

[4][英]Neil Matthew Richard Stones著.Linux程序設(shè)計(第4版) [M],2010.

[5]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M],2008.

[6][英]Neil Matthew Richard Stones.Linux程序設(shè)計[M].人民郵電出版社,2010.

[7]文全剛.嵌入式Linux操作系統(tǒng)原理與應(yīng)用[M].北京航空航天大學(xué)出版社,2011.

[8][德]Michael Kerrisk.Linux/UNIX系統(tǒng)編程手冊[M].孫劍等譯.人民郵電出版社,2014.

Research on the DirectFB Graphics Engine Transplant Based on BCM7241 Platform

Liang Wensen1,2
(1.College of Physics and Information Engineering,Fuzhou University,Fuzhou 350116,Fujian; 2.Fujian Star-net Communication Co.,Ltd,Fuzhou 350001,Fujian)

This paper describes in detail how to implement the DirectFB transplantation on BCM7241 hardware platform of the graphics engine hardware acceleration;and gets the promotion in the performance of the system after the transplantation and compares with the performance before transplantation,illustrating the function of DirectFB in optimizing BCM7241 hardware platform GUI performance.

GUI;DirectFB;BCM7241;implanting;graphics engine

TP393

:A

:1008-66609(2015)04-0053-03

梁文森,男,福建泉州人,本科,軟件工程師,研究方向:嵌入式系統(tǒng)設(shè)計。

猜你喜歡
引擎嵌入式系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發(fā)平臺
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發(fā)
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 在线视频亚洲色图| 国产女人水多毛片18| 久久9966精品国产免费| 一本一道波多野结衣av黑人在线| 天天摸天天操免费播放小视频| 亚洲欧美另类日本| 国产本道久久一区二区三区| 国产精品视频999| 手机精品视频在线观看免费| 在线五月婷婷| 亚洲欧美不卡中文字幕| 欧美在线网| 玖玖免费视频在线观看| A级毛片无码久久精品免费| 亚洲欧美国产视频| 精品久久777| 99久久精品无码专区免费| 亚洲色图欧美视频| 欧美性天天| 国产成a人片在线播放| 免费日韩在线视频| 99久久99这里只有免费的精品| 成年人视频一区二区| 被公侵犯人妻少妇一区二区三区 | 欧美无遮挡国产欧美另类| 国产精品福利在线观看无码卡| 无码精品国产VA在线观看DVD | 精品福利网| 亚洲午夜片| 精品三级在线| 97久久精品人人做人人爽| 高清国产在线| 亚洲视频在线网| 在线观看免费AV网| 欧美中文字幕在线视频| 色爽网免费视频| 久久久久国产一区二区| 中文字幕天无码久久精品视频免费 | 在线免费看片a| 国产午夜一级毛片| 国产女同自拍视频| 色婷婷视频在线| 亚洲日韩精品综合在线一区二区| 亚洲高清中文字幕| 青青操视频在线| 国产精品尤物铁牛tv| 亚洲欧美在线看片AI| 狠狠色狠狠综合久久| 欧美日韩亚洲国产主播第一区| 青青草原国产一区二区| a级毛片一区二区免费视频| 欧美国产成人在线| 91福利在线观看视频| 特级aaaaaaaaa毛片免费视频| 亚洲欧美日本国产综合在线| 日本道中文字幕久久一区| 国产在线视频福利资源站| 欧美一区国产| 日韩欧美国产三级| 亚洲成年人网| 欧美激情福利| 国语少妇高潮| 亚洲综合第一区| 国产免费a级片| 国产在线观看一区精品| 国产无遮挡裸体免费视频| 中文字幕人成乱码熟女免费| 直接黄91麻豆网站| 国产一区成人| 夜精品a一区二区三区| 在线观看视频一区二区| 国产一级在线观看www色| 免费欧美一级| 伊人五月丁香综合AⅤ| 亚洲高清中文字幕在线看不卡| 午夜国产理论| 伊人久久综在合线亚洲2019| 亚洲欧美综合在线观看| 狠狠色丁婷婷综合久久| 自拍偷拍一区| 日韩无码一二三区| 91精品aⅴ无码中文字字幕蜜桃 |