• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于i.MX6Q的嵌入式顯示系統(tǒng)設(shè)計與實現(xiàn)

    2020-06-10 07:40:44陳騰
    電子技術(shù)與軟件工程 2020年4期
    關(guān)鍵詞:畸變線程繪制

    陳騰

    (中航航空電子有限公司 北京市 100098)

    1 引言

    人們認(rèn)知和感知外部世界的主要途徑是視覺。大量實驗心理學(xué)實驗驗證了人類約83%的信息獲取來自視覺。信息時代引發(fā)了“信息爆炸”,與視覺相關(guān)的應(yīng)用更是受到用戶追捧。顯示技術(shù)在軍事、信息科技、娛樂等諸多應(yīng)用領(lǐng)域中起到了關(guān)鍵性的作用。

    機(jī)載、車載、艦載及智能眼鏡等顯示系統(tǒng)現(xiàn)已廣泛的應(yīng)用在各種飛機(jī)、車輛、艦船、單兵或個人,通過像源產(chǎn)生的操縱指引和顯示信息與外部自然場景實時圖像相互疊加投射到組合光學(xué)鏡片上,使得駕駛員或者操作者在觀察真實外視景的同時,能夠了解飛機(jī)、車輛、艦船、個體等的可視化狀態(tài)信息,甚至不利氣象條件下或環(huán)境限制情況下的增強(qiáng)顯示信息。

    傳統(tǒng)的嵌入式顯示系統(tǒng)一般采用OpenGL或者其他圖形API進(jìn)行矢量圖形的繪制,借助GPU加速實時渲染實現(xiàn)外視頻格式轉(zhuǎn)換、縮放及疊加,基于并行結(jié)構(gòu)的FPGA對圖像進(jìn)行畸變校正處理,將顯示信息經(jīng)過光學(xué)系統(tǒng)投射到顯示像源上進(jìn)行顯示,因此傳統(tǒng)顯示設(shè)備需要GPU圖像處理板和FPGA處理板等多塊板卡,設(shè)備的成本高、體積和功耗大、可擴(kuò)展性差。此外,由于采用Verilog等硬件描述語言進(jìn)行開發(fā),開發(fā)復(fù)雜度較高維護(hù)難且迭代周期較長。

    近年來無論是軍用電子設(shè)備、民用電子設(shè)備,還是消費類可穿戴電子產(chǎn)品,小型化和低功耗成為主流發(fā)展趨勢。ARM架構(gòu)SOC在性能和功耗上十分切合小型化嵌入式系統(tǒng)需求。借助多核處理器或者DSP、GPU等輔助硬件資源實現(xiàn)高復(fù)雜度編碼,借助通用平臺及操作系統(tǒng),通過軟件實現(xiàn)系統(tǒng)控制、任務(wù)調(diào)度和顯示繪制等功能,從而有效降低開發(fā)難度,大幅削減成本,提高系統(tǒng)的可維護(hù)性及擴(kuò)展性。

    本文采用Freescale ARM Cortex-A9架構(gòu)的i.MX6Q SOC,借助Linux操作系統(tǒng)和內(nèi)嵌圖像處理單元GPU設(shè)計了一套實時字符及視頻顯示系統(tǒng)。

    2 系統(tǒng)整體設(shè)計

    如圖1所示,基于i.MX6Q的顯示系統(tǒng)由視頻采集模塊、視頻存儲模塊、視頻轉(zhuǎn)換模塊、圖形繪制模塊、畸變校正模塊以及顯示控制軟件共同組成。顯示系統(tǒng)通過視頻采集模塊實時采集的PAL格式的模擬輸入視頻數(shù)據(jù)和DVI-D格式的數(shù)字輸入視頻數(shù)據(jù),并轉(zhuǎn)換成YUV4:2:2格式的2路并行信號,存入視頻存儲模塊中。視頻轉(zhuǎn)換模塊讀取視頻存儲模塊中采集到的輸入視頻,并進(jìn)行圖像縮放和RGB5:6:5格式轉(zhuǎn)換。圖形繪制模塊用于2D圖形、字符及顯示效果的繪制,并將繪制效果與視頻轉(zhuǎn)換模塊輸出的視頻進(jìn)行疊加。疊加結(jié)果一路通過i.MX6Q集成的HDMI接口直接輸出為DVI-D格式的數(shù)字視頻,用于電子儀表顯示給駕駛員或者操作人員;另一路送畸變校正模塊,通過GPU紋理貼圖的方式將疊加的整幅圖像進(jìn)行畸變校正操作,再將校正后的整幅圖像經(jīng)過光學(xué)系統(tǒng)投射到顯示像源上進(jìn)行顯示。

    3 硬件設(shè)計

    顯示系統(tǒng)硬件平臺主要由i.MX6Q核心處理器、存儲單元、調(diào)試接口、電源模塊、視頻采集芯片、信號轉(zhuǎn)換芯片、時鐘等部分構(gòu)成。圖2為基于i.MX6Q平臺的顯示系統(tǒng)硬件部分組成示意圖。

    作為顯示系統(tǒng)的硬件核心處理單元,i.MX6Q主要基于ARM Cortex-A9架構(gòu)的高擴(kuò)展性1.2GHz高速四核應(yīng)用處理器,其硬件架構(gòu)如圖2所示。該芯片集成了2D和3D圖形處理器,具備1080p視頻處理能力,能夠支持64-bit DDR3/DDR3L/LPDDR2內(nèi)存接口,并且具有豐富的集成IO接口鏈接多種類型外設(shè),具有較高的SOC集成度,大幅降低了設(shè)計復(fù)雜度。

    i.MX6Q處理器內(nèi)嵌了VIVANTE 3個相互獨立且高度集成的圖形處理單元(GPU,graphics processing units)。其中,GPU3Dv4(GC2000)負(fù)責(zé)3D圖形加速,支持顯示高達(dá)1080p的顯示分辨率,能夠支持OpenGL ES 2.0及其擴(kuò)展, OpenGL ES 1.1和OpenVG 1.1。GPU2Dv2(GC320)負(fù)責(zé)2D圖形加速,支持多種2D圖形算法。GPUVGv2(GC355)負(fù)責(zé)矢量圖形加速。為了實現(xiàn)系統(tǒng)的高性能、低功耗,GPU對片上硬件資源進(jìn)行了充分利用和優(yōu)化設(shè)計。

    顯示系統(tǒng)采用非易失性FLASH芯片存儲操作系統(tǒng)和文件系統(tǒng),每次上電時從該芯片中讀取系統(tǒng)并加載應(yīng)用程序。另有64bit帶寬、1333MHz速率的2GByte DDR3高速數(shù)據(jù)存儲芯片,對內(nèi)存進(jìn)行擴(kuò)展及存儲業(yè)務(wù)數(shù)據(jù)。

    系統(tǒng)設(shè)計了以太網(wǎng)口、USB接口、RS232串口等調(diào)試接口,用于Linux環(huán)境下,內(nèi)核和文件系統(tǒng)的加載,顯示控制軟件和驅(qū)動的開發(fā)及調(diào)試,數(shù)據(jù)傳輸、信息輸出顯示等功能。

    4 軟件設(shè)計

    考慮到顯示系統(tǒng)的實時性,將Linux操作系統(tǒng)移植到i.MX6Q芯片上,在顯示控制軟件內(nèi)核中編寫了視頻采集驅(qū)動模塊、FLASH驅(qū)動、DDR驅(qū)動等代碼,將外設(shè)抽象成文件系統(tǒng)下的“/dev/image*”設(shè)備,達(dá)到底層硬件驅(qū)動和上層應(yīng)用軟件分離的目的,有利于提供系統(tǒng)的可擴(kuò)展性,便于軟件開發(fā)。

    圖1:顯示系統(tǒng)整體框圖

    為了滿足字符及視頻顯示的高實時性,顯示系統(tǒng)充分借助i.MX6Q的4個內(nèi)核,采用多線程軟件設(shè)計組織整個數(shù)據(jù)流水線,提高應(yīng)用的整體幀率。應(yīng)用程序可分為7個線程,分別為:主線程、視頻采集線程、視頻縮放線程、視頻顯示線程、畸變校正線程、SGL指令接收線程、數(shù)據(jù)接收線程。其中主線程為父線程,其它線程都由主線程創(chuàng)建,作為主線程的子線程。除了數(shù)據(jù)接收線程外,其余線程為同步線程,由主線程控制同步時序。通過信號量來實現(xiàn)多線程的同步,并將任務(wù)負(fù)載均衡的分布在4個CPU核中。顯示控制軟件架構(gòu)及時序如圖3所示。

    顯示控制軟件主要線程模塊設(shè)計方法實現(xiàn)如下:

    視頻采集模塊video_capture,操作通過V4L2視頻采集框架調(diào)用函數(shù)實現(xiàn),不需要關(guān)心底層采集芯片ADV7180和ADV7611具體實現(xiàn)。顯控軟件對V4L2編程接口做了進(jìn)一步封裝以適應(yīng)顯示系統(tǒng)調(diào)用需要。

    視頻縮放模塊video_scaler,通過VIVANTE提供的GAL接口,調(diào)用FilterBlit功能,完成外視頻縮放操作變換,及YUV422格式向RGB565格式轉(zhuǎn)換。

    視頻顯示模塊video_display,預(yù)先提取并存儲字體文件的參數(shù)并上傳到硬件中,再直接繪制硬件中緩存的數(shù)據(jù)。OpenGL的Truetype字體紋理生成依賴開源的SKIA程序加載Truetype字體,將SKIA畫布(SkCanvas)均勻分割成16x8個網(wǎng)格,通過調(diào)用measureText()函數(shù)提前解析出文本的寬度數(shù)值,將所有文本逐個繪制到每個網(wǎng)格中并存儲每個文本的位置坐標(biāo)信息,最終由SkCanvas控制圖像的輸出。如需繪制帶黑邊的字符、反走樣、旋轉(zhuǎn)、開窗、閉塞等特殊圖形時,只需要使用工具生成特殊圖形的圖像及其參數(shù),在繪制的時候切換到相應(yīng)圖形的紋理來進(jìn)行渲染即可。這種繪制需要生成特定字號的紋理畫布以獲得較好的顯示效果。

    畸變校正模塊distortion_correction模塊,通過畸變字典存儲畸變后圖像的每個像素坐標(biāo)與畸變前原圖像坐標(biāo)的對應(yīng)關(guān)系。OpenGL在繪制時采用TrangleStrip的方式,通過8x8網(wǎng)格將上傳到GPU中的圖像劃分為多個四邊形小窗,計算每個8x8網(wǎng)格四個頂點的像素值,網(wǎng)格中間的像素值則根據(jù)四個頂點像素值自動插值生成。繪制時指定畸變圖像四個頂點的位置、原圖像四個頂點對應(yīng)的像素值,用三角形覆蓋整個畸變圖像,逐個繪制完三角形即實現(xiàn)了整幅畸變圖像的渲染。

    5 結(jié)束語

    本文基于Cortex-A9架構(gòu)的i.MX6Q SOC,借助Linux操作系統(tǒng)和內(nèi)嵌圖像處理單元GPU設(shè)計了一套實時字符及視頻顯示系統(tǒng)。該嵌入式系統(tǒng)的硬件部分以高性能i.MX6Q芯片為核心,進(jìn)行了相關(guān)硬件電路的設(shè)計。顯示控制軟件基于 Linux操作系統(tǒng),采用V4L2視頻采集框架實現(xiàn)兩路實時視頻采集功能,采用開源SKIA繪制2D圖形及字符,使用GPU GC320進(jìn)行視頻轉(zhuǎn)換、2D圖像的旋轉(zhuǎn)、縮放、平移等操作,通過OpenGL以貼圖的方式實現(xiàn)畸變校正功能,最終得到兩路視頻輸出。設(shè)計結(jié)果表明,該系統(tǒng)實時顯示性能較高,在工程實踐中尤其是小型化、低功耗的應(yīng)用需求中具有很好的應(yīng)用價值。

    圖2:顯示系統(tǒng)硬件示意圖

    圖3:顯示控制軟件架構(gòu)及時序圖

    猜你喜歡
    畸變線程繪制
    Art on coffee cups
    放學(xué)后
    童話世界(2018年17期)2018-07-30 01:52:02
    在Lightroom中校正鏡頭與透視畸變
    淺談linux多線程協(xié)作
    在轉(zhuǎn)變中繪制新藍(lán)圖
    輻射誘導(dǎo)染色體畸變的快速FISH方法的建立
    《癌變·畸變·突變》2014年第26卷索引
    《癌變·畸變·突變》第六屆編委會第2次會議紀(jì)要
    Linux線程實現(xiàn)技術(shù)研究
    VBA在宗地圖繪制中的應(yīng)用
    刚察县| 寿阳县| 安图县| 乡城县| 开江县| 上杭县| 科技| 长丰县| 玛纳斯县| 澄城县| 当雄县| 南溪县| 通化市| 仁化县| 宣汉县| 靖安县| 安新县| 安图县| 和顺县| 安溪县| 弋阳县| 浦江县| 阳城县| 天津市| 库尔勒市| 迁安市| 治多县| 监利县| 阿勒泰市| 花莲市| 恩平市| 乐清市| 堆龙德庆县| 洪雅县| 双桥区| 乌兰察布市| 山东省| 凤山县| 陆丰市| 亚东县| 麻城市|