日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 顯示光電 > 電源-LED驅動
[導讀]本文介紹了一種基于嵌入式系統(tǒng)的全彩LED顯示屏脫機播放系統(tǒng)的設計方案。該方案旨在建立一套具有視頻播放,圖片、文字顯示,支持多區(qū)域顯示和流媒體播放,支持高分辨率的全彩LED屏幕的小型播放系統(tǒng)。系統(tǒng)硬件部分采用了S3C2440作為處理核心,并且使用嵌入式顯示芯片SM501提供2D圖形硬件加速功能。軟件部分移植了Linux 2.6內核,開發(fā)了一套建立在Linux內核之上的高顯示性能的專用LED播放軟件。本文較好地解決了目前LED顯示屏脫機控制卡局限于支持單色或者偽彩LED、分辨率低、不能播放高質量視頻的現狀。

1 引言

高分辨率LED顯示屏的應用日益廣泛,而目前國內LED顯示屏的播放控制系統(tǒng)主要采用聯機方式來實現,即PC機+視頻發(fā)送板,通過千兆以太網或者光纖,將視頻實時發(fā)送到LED顯示屏端的視頻接收板上完成顯示。這種方式具有良好的人機操作界面和優(yōu)秀的視頻顯示質量,對于近距離LED顯示屏聯機播放是一種重要的顯示手段。而對于超長距離、戶外LED顯示屏而言,聯機播放顯然需要付出很高的代價才能實現,有些場合甚至無法實現。而脫機方式在這些場合則顯示出其獨特的優(yōu)勢。脫機方式的特點在于無人值守,專用性強,占用資源少,經濟便攜。同時可以通過一定的控制途徑如Internet、GSM網絡等可對播放過程及內容進行實時的干預和修改。目前國內的脫機控制系統(tǒng)多由嵌入式系統(tǒng)如單片機、SOC、DSP、RISC處理器等實現。大多數脫機控制卡只能顯示較小的分辨率,支持偽彩或者單色,不能播放高質量的視頻。本設計旨在實現具有高分辨率、高質量視頻播放、流媒體播放、多區(qū)域顯示等功能的小型專用LED脫機播放系統(tǒng)。 本文將從系統(tǒng)的硬件結構和原理、軟件各模塊設計與實現、性能測試及結論三個方面進行說明。

2 脫機播放系統(tǒng)的硬件結構和工作原理

目前國內LED屏脫機控制系統(tǒng)多采用高性能RISC處理器作為核心,典型的以ARM9為核心的SoC芯片工作頻率大多在200~600MHz之間。然而顯示方面的性能依然比較低下,大多數芯片,典型的如S3C24X0,通過內部集成LCD控制器來實現顯示功能,一般只支持到640X480的顯示分辨率,16bit顏色深度。處理器芯片內置的LCD控制器是在系統(tǒng)內存中設置一小部分作為幀存(Frame Buffer),LCD控制器使用一個專用的高速DMA通道不斷地讀取幀存中的象素數據到FIFO memory中,最后生成視頻時序輸出到外部LCD接口,因此視頻顯示直接占用系統(tǒng)總線帶寬。支持更高的分辨率和色彩深度意味著占用更多的系統(tǒng)帶寬,比如1024×768分辨下,24位深度,60Hz場頻的顯示輸出,顯示占用的系統(tǒng)帶寬在1.1Gbps以上。小型嵌入式系統(tǒng)有限的總線帶寬顯然不可能很好地支持高分辨率真彩顯示。

另一方面,對于一般的 2D圖形操作如象素復制、縮放、色空間轉換等需要軟件實現,處理器對Frame Buffer的頻繁操作帶來的系統(tǒng)性能下降十分突出,極大的影響了CPU在視頻解碼方面的效率。

鑒于上述分析,使用普通的面向手持設備的嵌入式體系結構無法滿足全彩大型LED屏幕的顯示要求,本文選擇了工業(yè)級ARM芯片S3C2440+SM501顯示加速協處理器的解決方案,從根本上解決了上述分析兩個影響顯示性能的關鍵問題。

S3C2440是以ARM920T為核心,基本工作頻率400MHz,最高可達533MHz的一款工業(yè)級SoC.其內部集成了RART,USB,I2 C,LCD,NAND,MMC/SD controller等多種常見IO設備控制器。

SM501是一款便攜式多媒體協處理器芯片,專門為嵌入式工業(yè)提供顯示功能,具有視頻和2D加速能力。它支持多種輸入/輸出接口,包括模擬RGB、數字LCD接口、8位并行接口、USB、UART、IrDA、Zoom Video、AC97或I2S、SSP、PWM和I2 C.SM501的2D引擎包括一個前端色彩空間轉換器,支持4∶1和1∶8的比例。LCD視頻流水線支持一個YUV色彩空間轉換。通過將優(yōu)化的128位的2D圖形引擎和一個與本地幀存儲器連接的高帶寬鏈接相結合,SM501提供面向工業(yè)的2D圖形加速功能。2D圖形引擎包含一個命令翻譯器(一個增強型的DMA引擎),對于工作在150 MHz的32位數據寬度的SDRAM,SM501的DMA引擎讀取2D操作數的帶寬可達600 MB/s.SM501支持的最大顯示分辨率為1280×1 024,可以輕松支持普通PC顯示分辨率1024×768.

整個硬件系統(tǒng)原理如圖1示。S3C2440與SM501在slave 模式下通過系統(tǒng)總線連接,SM501連接8MB的本地幀存,S3C2440可以通過系統(tǒng)總線直接訪問SM501的本地幀存。系統(tǒng)掛接DM9000A 10/100M網絡芯片,上位機脫機控制軟件通過Internet網絡連接到脫機系統(tǒng)進行實時控制。脫機系統(tǒng)通過網絡實現流媒體功能。

對于SM501輸出的數字視頻,采用FPGA進行采集和分發(fā)。SM501與FPGA之間通過LCD數字接口連接,包含24 bit并行象素點RGB數據、象素時鐘pclk,行場同步及DE信號。FPGA采集LCD接口輸出的象素數據并實時轉發(fā)到象素位置對應的掃描板,一幀圖象傳輸完畢后,所有掃描板將同時更新顯示新圖像幀。每個掃描板控制的分辨率為256 × 256,脫機系統(tǒng)最大可以控制1024 × 768分辨率。FPGA內部邏輯詳細設計不作為本文討論的主要內容。

 

 

圖1 脫機播放系統(tǒng)硬件組成框圖

3 軟件系統(tǒng)

LED脫機播放軟件設計的基本要求包括:系統(tǒng)必須能夠勝任7× 24小時連續(xù)穩(wěn)定運行,因此播放軟件必須具備健壯性。雖然S3C2440處理速度相對已經較快,但是解碼對CPU時間的占用仍然是一個很突出的問題,因此播放軟件必須具備高效性,尤其是盡最大可能發(fā)揮出SM501提供的2D加速顯示能力。另外由于SoC更新速度很快,硬件平臺必然會有更好選擇,因此軟件在保證高效率的前提下必須提高其可移植性。最后是建立開放式的軟件架構,使之具備可擴展、可升級性,以便于逐步開發(fā)新的功能。

本文從以下兩個方面對軟件部分的設計進行介紹:

1)建立嵌入式Linux系統(tǒng)平臺

2)LED顯示屏脫機專用播放軟件設計與實現

文章將簡要介紹基于S3C2440平臺的嵌入式Linux系統(tǒng)平臺的搭建,然后著重介紹播放軟件在開放性、可移植性、高效性方面所采用的設計方法。

4.1 建立嵌入式Linux系統(tǒng)平臺

Linux內核具有體積小,效率高,成熟穩(wěn)定,源代碼開放,資源豐富,內核直接提供豐富的網絡協議,支持多種文件系統(tǒng)等諸多優(yōu)點。本課題移植了Linux2.6.18內核,該版本內核具有穩(wěn)定性好、開發(fā)工具支持度好的優(yōu)點。這部分工作主要包括:

1)針對硬件平臺移植u-boot.

2)剪裁并交叉編譯Linux內核。移植USB存儲盤、DM9000A網絡芯片、SM501顯卡的驅動到內核

3)交叉編譯busybox,生成ext2格式的Initrd文件系統(tǒng)鏡像

4)通過u-boot將內核和Initrd鏡像燒寫到Nand Flash上,設置內核啟動參數和u-boot啟動命令來啟動內核

經過上述工作,建立了一個小型化的嵌入式Linux平臺。限于篇幅,本文對嵌入式Linux平臺的建立細節(jié)問題不深入介紹。

4.2 LED顯示屏脫機專用播放軟件設計與實現

LED顯示屏脫機播放軟件的主要設計目標是支持視頻播放、圖片顯示、多區(qū)域顯示、流媒體播放、遠程控制。由于整個軟件項目比較龐大,本文將只選擇幾個關鍵模塊進行詳細說明,并側重介紹軟件方面如何利用SM501來實現高性能顯示及視頻播放。對流媒體播放和遠程控制部分不做介紹。

4.2.1 多區(qū)域顯示功能模塊的設計

隨著LED顯示屏幕分辨率的不斷增加,同一個顯示屏對信息容量的需求也相應的增長,在面向廣告的LED屏中這種需求尤其突出。典型的LED多區(qū)域顯示情形是一個視頻區(qū)域,多個圖片區(qū)域,一個滾動字幕區(qū)域。脫機播放系統(tǒng)主要面向戶外廣告屏,因此,必須重點考慮多區(qū)域顯示功能。

為了更好的支持LED屏幕多區(qū)域顯示,必須從傳統(tǒng)的全屏顯示概念中脫離出來,建立基于區(qū)域(zone)顯示的概念,即顯示內容總是在某個顯示區(qū)域上完成顯示,單屏顯示只是多區(qū)域顯示的一個特例。在結構上區(qū)域按層次劃分,區(qū)域可以劃分為多個子區(qū)域。同級子區(qū)域的位置不能重疊。這樣,在理論上,可以支持任意的以矩形為單位的分區(qū)域顯示形式。多個區(qū)域并行顯示,通過多線程方式實現。

每個區(qū)域都包含一個播放列表(playlist)。每個播放列表由一系列顯示項目(playitem)組成。 顯示項目的概念是指在某個顯示區(qū)域上進行一次完整的顯示過程。如一段視頻播放,一幅圖片定時顯示,文字的運動顯示等。程序采用了面向對象的設計思想,將不同類型的顯示項目的共性抽象出來,以方便不斷擴展的新的顯示項目和客戶定制的顯示內容。

所有的顯示項目,無論其內容如何,都可以抽象為一個隨時間變化的狀態(tài)機。每個顯示項目在時間的推移下在其所屬的區(qū)域中完成自身的顯示,也就是完成一個從初始化到結束的狀態(tài)轉換過程。因此,playitem是一個抽象基類。每種類型的顯示項目只需重新實現playitem提供的公共調用接口即可。

每個區(qū)域具有一個播放線程,該線程不斷地從playlist中取出一個顯示項目,執(zhí)行其狀態(tài)轉換接口完成顯示過程。這種設計允許不同類型的顯示項目混合排列在同一個顯示列表下,極大的增加了播放過程安排的靈活性。

多區(qū)域顯示設計模型如圖2示。

 

 

圖2 多區(qū)域顯示模型

4.2.2基于SM501的2D加速顯示接口設計

顯示層的設計旨在提供一套可移植的、使用方便的2D顯示接口,包括基于區(qū)域內部坐標的應用顯示層接口和基于屏幕坐標而與硬件無關的底層顯示接口。應用顯示層給顯示項目playitem提供簡單的基于區(qū)域坐標的顯示接口?;谄聊蛔鴺说牡讓语@示直接工作在SM501硬件之上,最大化利用了SM501硬件加速能力,同時還提供了可移植的接口。在移植到其他的2D硬件上只需要重新實現底層顯示接口即可。

由于硬件設計上SM501處于slave mode與S3C2440連接,SM501不能訪問系統(tǒng)內存,所有要進行加速操作的顯示內容必須存放在SM501的獨立顯存上,這樣不方便移植DirectFB作為底層顯示接口。因此本文按照通用的2D顯示接口,獨立實現了一套基于屏幕坐標的通用底層2D顯示接口。

在實現上通過mmap把SM501的控制寄存器和獨立顯存全部從內核空間映射到用戶空間,這樣在程序中可以直接訪問SM501的寄存器和管理本地顯存,避免了在顯示時應用程序與內核之間的數據交換,顯示加速作用得以充分發(fā)揮?;趯M501的直接訪問,底層顯示層實現了一套基本接口,包括顯存分配與釋放和基本2D加速操作如畫線(line)、矩形填充(fill_rect),位圖復制(bitblt)、縮放(bitblt_stretch)、色空間轉換(CSC)等。其中對視頻播放性能影響最大的是縮放和色空間轉換。[!--empirenews.page--]

SM501的繪圖引擎(Draw Engine)包括兩個部分,2D繪圖引擎和CSC顏色空間轉換模塊。2D繪圖引擎主要用來繪制直線(基于Bresenham算法),矩形填充,復制(Bitblt),旋轉復制(Rotation bitblt)??s放與顏色空間轉換功能都是通過CSC模塊來實現。CSC模塊可以實現YUV422,YUV420,RGB565,RGB888幾種色彩空間及格式轉換到RGB565和RGB888,色空間轉換隱含了縮放功能。

顯存分配與釋放管理是對映射到用戶空間的Frame buffer進行的。實現上使用空閑鏈表的方法,并且采用最先適應的原則。最先適應分配算法有利于保留更大的連續(xù)內存塊給那些一次性內存需求量大的分配請求。由于視頻解碼后色空間轉換和縮放必須使用硬件加速來實現,因此總是預留1M的顯存空間給視頻顯示使用。在顯存不足的情況下,通過malloc分配系統(tǒng)內存。相應的所有顯示層接口的地址參數均被設計成為自動識別地址屬于系統(tǒng)內存還是獨立顯存,如果地址屬于系統(tǒng)內存,則表明當前顯存不足,于是使用軟件的方法實現繪圖操作。在釋放顯存時,程序若識別參數地址為系統(tǒng)內存,將調用free去完成釋放。

在多個顯示區(qū)域同時顯示的情況下,顯存的分配與釋放管理以及所有的基于硬件加速的2D操作均被互斥地調用,以避免多線程同時對SM501資源進行爭用帶來的與時間相關的執(zhí)行錯誤。

由于SM501加速操作只能使用本地幀存的物理地址,而通過mmap映射得到的是進程空間的虛擬地址,顯存分配得到的地址也是基于映射后的地址,因此寫入SM501寄存器中作為地址的操作數必須將進程空間地址轉化為實現的幀存物理地址。轉化方法就是用顯示分配函數得到的地址減去mmap得到的首地址。

建立在底層顯示層之上,軟件實現了與屏幕絕對坐標無關的基于區(qū)域內部坐標的2D加速顯示接口。區(qū)域內部坐標與區(qū)域本身在屏幕上的絕對坐標相加即可得出要顯示的絕對坐標。另外每個顯示區(qū)域都有對齊、縮放方式的選項??s放方式可以有不縮放,線性縮放,非線性縮放三種,對齊在X,Y方向上分別有三種對齊方式。因為實際顯示的內容大小與顯示區(qū)域大小往往不是相同的,因此這兩種選項對實際顯示效果影響極大。如區(qū)域寬高比與顯示內容寬高比相差較大時,非線性縮放將導致顯示內容嚴重畸變,而線性縮放將顯示內容保持為原來的寬高比。顯示層次如圖4.

 

 

圖3 顯示層次

4.2.3脫機系統(tǒng)的視頻播放器設計

這部分主要介紹針對SM501顯卡的解碼過程優(yōu)化設計,并給出優(yōu)化后的性能測試數據。LED脫機播放系統(tǒng)目前支持MPEG-4視頻格式的AVI文件播放。

MPEG-4是MPEG(運動圖像專家組)制定的視頻壓縮標準,是目前用得最廣泛的一種視頻編碼標準。MPEG組織于1999年1月正式公布了MPEG-4 V1.0版本。MPEG-4除采用第一代視頻編碼(MPEG-1,MPEG-2,H.263等)的核心技術,如變換編碼、運動估計與運動補償、量化、熵編碼外,還提出了一些新的有創(chuàng)見性的關鍵技術,包括視頻對象提取技術、VOP視頻編碼技術、視頻編碼可分級性技術、運動估計與運動補償技術等。

Xvid是開源的MEPG-4碼器,遵守GPL通用公共許可證,也是目前國際上公認的性能最佳的MPEG-4編解器之一,支持MPEG-4 SP框架。本文移植了Xvidcore-1.1.3到arm-Linux環(huán)境,并且基于Xvid設計了自己的LED脫機系統(tǒng)視頻播放器。

AVI文件格式是Windows系統(tǒng)下最常用的一種視頻文件格式。AVI文件并不局限任何視頻編碼格式。AVI文件格式是基于RIFF(Resource Interchange File Format)文件格式的。RIFF基于“塊”為信息單位,每個塊由一個4字符組成的FOURCC字標識。整個文件由一個RIFF塊構成,RIFF塊和LIST(列表)塊可以包含子塊。包含子塊的塊結構為:FOURCC+塊長度+塊類型+塊數據。不包含子塊的塊結構為:FOURCC+塊長度+數據。 AVI文件在RIFF的基礎上定義了自己的塊類型和數據。一個AVI RIFF文件由3大部分組成:RIFF文件頭,hdrl列表,movi列表,除此外還有一個可選的索引idxl塊。其中hdrl列表包含 avih 子塊和 strl 子列表,文件中有多少個流,hdrl 列表中就有多少個strl 子列表,strl子列表在 hdrl 中的次序就是流的序號。Movi列表中是實際的MPEG-4編碼流,avih子塊包含了AVI視頻文件的頭信息,比較重要的是幀頻。一般的AVI視頻文件只有一個視頻流。戶外LED屏幕對于音頻播放需求少,因此本文并不涉及音頻解碼。

Xvid解碼過程中要不斷輸入MPEG-4視頻編碼比特流,視頻流從AVI文件中的movi列表子塊中提取。AVI文件存儲在USB可移動存儲盤上,文件IO時間延遲會導致解碼過程產生間隙性的視頻播放停頓,因此有必要采用單獨的IO線程從AVI文件中不斷提取視頻流。IO線程與解碼線程構成一種生產者-消費者類型的線程同步關系,需要引入同步互斥量來保證其同步工作。

由于MPEG-4視頻編解碼的原始顏色空間是YUV420,如果直接輸出YUV420平面格式Xvid不需要進行顏色空間轉換,其余輸出格式則需要經過色空間轉換算法得到。Xvidcore-1.1.3解碼器輸出不同的顏色空間格式對整個解碼時間的影響非常顯著。表1是在S3C2440平臺下使用Xvidcore-1.1.3解碼同一MPEG-4視頻文件(分辨率320x176) 使用不同輸出格式的幀頻比較。

表1 Xvid不同輸出格式解碼速率比較表

 

 

本文使Xvid解碼直接輸出YUV420平面格式,避免了Xvid使用軟件算法進行色空間

轉換,然后使用SM501提供的YUV420轉RGBx888硬件色空間轉換命令完成視頻幀的顯示。這種方式下SM501與Xvid解碼器并行工作,發(fā)揮了最佳的效果。同時為了避免了對數據的二次復制,本文直接在SM501本地顯存中申請了空間作為解碼幀輸出地址,這些優(yōu)化使得整個解碼器的性能提高了2~3倍。 圖4表示了簡要的視頻播放軟件流程。

通過硬件縮放和象素復制,本文實現了1024×768分辨率下全屏流暢視頻顯示和多區(qū)域視頻同步顯示等普通嵌入式系統(tǒng)難以達到顯示效果。多個顯示區(qū)域下脫機播放系統(tǒng)AVI視頻文件播放性能測試結果如表2示??梢钥吹?,由于有硬件2D加速支持,解碼速率與視頻實際顯示速率完全相等,區(qū)域大小以及多個區(qū)域同時顯示對系統(tǒng)性能沒有顯著影響。

表2 視頻播放器性能測試

 

 

測試結果表明該系統(tǒng)足以勝任大多數全彩類型商業(yè)廣告LED大屏幕脫機視頻播放。

 

 

圖4 優(yōu)化的視頻播放流程

5 結論

本文采用高速MCU和SM501嵌入式顯卡作為硬件平臺,突破了嵌入式系統(tǒng)在顯示性能上的瓶頸,接口明確。在軟件上移植了Linux2.6內核作為軟件平臺,在效率和可移植性方面做了較好平衡,運用了良好的軟件設計思想,開發(fā)出具有開放式體系結構的LED脫機播放軟件。該系統(tǒng)已經成功應用于全彩LED顯示屏的脫機播放和控制。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉