【摘要】本文重點介紹了DAB數(shù)字音頻廣播TPEG數(shù)據(jù)業(yè)務(wù)的一種應(yīng)用,在TFT顯示屏幕中顯示的圖片或文字可以通過文中提出的圖片播放系統(tǒng)成功地轉(zhuǎn)化,并在帶有VGA接口的LCD屏幕上顯示。該系統(tǒng)主要是在DAB基帶芯片中讀取數(shù)據(jù),以STM32F103作為TPEG數(shù)據(jù)解碼和JPEG圖片解碼的芯片。通過后期測試證明該系統(tǒng)解碼速度快、運行穩(wěn)定、成本低,具有很好的實用價值。
【關(guān)鍵詞】數(shù)字音頻廣播;STM32;TPEG;VGA;JPEG圖片
1.引言
DAB(Digital Audio Broadcasting,數(shù)字音頻廣播)是以數(shù)字技術(shù)為手段,移動、固定或便攜式接收機來接收由廣播機構(gòu)發(fā)出的高質(zhì)量的聲音節(jié)目(其音質(zhì)可達(dá)CD質(zhì)量)和數(shù)據(jù)業(yè)務(wù)的技術(shù)體系[1]。隨著DAB技術(shù)的快速發(fā)展及推廣,市場對數(shù)字音頻廣播的需求會越來大,對其應(yīng)用要求也越來越高,對多樣化服務(wù)的要求也越來越高,比如圖片、文字信息等等。
TPEG(Transport Protocol Expert Group)協(xié)議是由歐洲廣播聯(lián)盟(EBU-European Broadcasting Union)交通旅游信息(TTI-Traffic and Travel Information)計劃小組于1997年制定的[2]。TPEG協(xié)議可以以數(shù)字音頻廣播為傳輸媒介,是實時傳送交通信息和旅游信息的標(biāo)準(zhǔn)協(xié)議,它能以文字或圖片的形式全天候提供交通、天氣等資訊。TPEG協(xié)議已被納入DAB標(biāo)準(zhǔn)之中,作為DAB的一項重要業(yè)務(wù)應(yīng)用。本文主要對基于TPEG數(shù)據(jù)業(yè)務(wù)圖片播放系統(tǒng)進行了介紹,該系統(tǒng)能實現(xiàn)在STM32芯片中進行TPEG數(shù)據(jù)解碼,及JPEG解碼,最后通過VGA驅(qū)動模塊將解碼數(shù)據(jù)輸送到LCD顯示屏上進行顯示。
2.圖片播放系統(tǒng)總體設(shè)計原理
2.1 系統(tǒng)硬件框圖
本文設(shè)計的基于TPEG數(shù)據(jù)業(yè)務(wù)圖片播放系統(tǒng)是數(shù)字廣播Tpeg數(shù)據(jù)業(yè)務(wù)應(yīng)用的一個擴展,相比于以前的系統(tǒng)有了很大的改進,該系統(tǒng)可以將Tpeg數(shù)據(jù)中的圖片數(shù)據(jù)解碼后在帶有VGA接口的LCD顯示屏上進行顯示。由于系統(tǒng)的成功設(shè)計使它得到了更加廣泛的應(yīng)用,如電子相框、電子廣告牌等。同時該系統(tǒng)具有解碼速度快、穩(wěn)定性高、成本低、效果好、實用性強等特點。整個系統(tǒng)的設(shè)計如圖1所示。
圖1 系統(tǒng)硬件框圖
該系統(tǒng)主要由五大模塊構(gòu)成,它們分別是RF芯片、基帶解碼芯片、flash存儲芯片(4M)、MCU(STM32f103)、VGA驅(qū)動模塊。RF芯片主要對接收到的信號進行解調(diào),基帶芯片負(fù)責(zé)信源解碼和信道解碼,MCU(STM32f103)負(fù)責(zé)Jpeg數(shù)據(jù)解碼與Tpeg數(shù)據(jù)解碼,flash芯片主要是存儲Tpeg數(shù)據(jù)與解碼前后的圖片數(shù)據(jù),VGA驅(qū)動模塊負(fù)責(zé)將解碼過后的圖片數(shù)據(jù)送入LCD顯示屏進行顯示。
2.2 系統(tǒng)的主要硬件模塊介紹
2.2.1 基帶解碼芯片
中頻信號經(jīng)過ADC模數(shù)轉(zhuǎn)換得到一個8位并行數(shù)字信號后傳給基帶芯片,基帶芯片對該數(shù)字信號進行基帶解碼?;鶐Ы獯a主要包括對DAB的信道解碼和信源解碼。同時基帶芯片可以將解碼后的數(shù)字音頻數(shù)據(jù)直接輸出,以供音頻類節(jié)目的應(yīng)用。
2.2.2 STM32f103處理器
該處理器是內(nèi)核為32位的Cortex-M3處理器,最高工作頻率為72MHz,具有512KB的閃存程序存儲器和64KB的SRAM內(nèi)核具有突出的中斷處理能力,且其實時性高,系統(tǒng)存儲要求低。由于該處理器具有很強的處理性能,使得整個系統(tǒng)的功耗和成本得到了很大程度的降低,是系統(tǒng)中非常重要的一部分。
2.2.3 flash存儲芯片
FLASH存儲器又稱閃存,它結(jié)合了ROM和RAM的長處,不僅具備電子可擦除可編程(EEPROM)的性能,還不會斷電丟失數(shù)據(jù)同時可以快速讀取數(shù)據(jù)(NVRAM的優(yōu)勢)。本系統(tǒng)使用它主要就是存取TPEG數(shù)據(jù)與解碼前后的圖片數(shù)據(jù)。
2.2.4 VGA驅(qū)動模塊
本模塊是整個系統(tǒng)的最后一個部分,它直接和帶VGA接口的LCD顯示屏連接。它的作用是在FSMC的作用下將解碼后的RGB圖片數(shù)據(jù)輸送到LCD顯示屏上顯示。
3.圖片播放系統(tǒng)的軟件開發(fā)
3.1 系統(tǒng)的軟件開發(fā)環(huán)境
該系統(tǒng)的軟件部分主要分兩個模塊,Tpeg數(shù)據(jù)的解碼和Jpeg圖片的解碼。
本文對接收終端的軟件系統(tǒng)設(shè)計,采用了嵌入式軟件開發(fā)中常用Keil uVision4開發(fā)平臺。本文設(shè)計的系統(tǒng)選用了C語言作為程序的開發(fā)語言,J-link作為本系統(tǒng)軟件的調(diào)試工具和程序的下載工具,同時采用SWD作為系統(tǒng)調(diào)試接口和下載方式。
3.2 Tpeg數(shù)據(jù)解碼
Tpeg數(shù)據(jù)解碼程序主要是根據(jù)TPEG協(xié)議來編寫的,在發(fā)送DAB數(shù)據(jù)前要把相關(guān)的圖片數(shù)據(jù)進行TPEG編碼,而這個是完全按照它的協(xié)議來進行的。
本文的系統(tǒng)實現(xiàn)TPEG數(shù)據(jù)業(yè)務(wù)的解碼過程如下:數(shù)字音頻廣播以DAB傳輸幀的形式傳輸TPEG節(jié)目數(shù)據(jù),本系統(tǒng)獲得DAB節(jié)目數(shù)據(jù)后,首先對其進行FIC解碼,根據(jù)FIC解碼結(jié)果,可以得出該DAB信號中是否有TPEG數(shù)據(jù)業(yè)務(wù),確定TPEG數(shù)據(jù)業(yè)務(wù)所占用的子信道位置,并從中獲取TPEG節(jié)目數(shù)據(jù);之后該系統(tǒng)對TPEG節(jié)目數(shù)據(jù)依次進行網(wǎng)絡(luò)層解碼、封裝層解碼和應(yīng)用層解碼;最終可以獲得我們需要的原圖片數(shù)據(jù)。TPEG業(yè)務(wù)的解碼流程圖如圖2所示。
圖2 TPEG解碼系統(tǒng)框圖
為了確保TPEG業(yè)務(wù)數(shù)據(jù)在接收過程中具有較高的安全性和較好的準(zhǔn)確性,TPEG數(shù)據(jù)幀在編碼過程中,可采用以下三個技術(shù):一是對TPEG數(shù)據(jù)幀使用同步技術(shù);二是對TPEG數(shù)據(jù)使用差錯檢測技術(shù);三是對TPEG數(shù)據(jù)使用加密技術(shù)。
3.3 JPEG圖片數(shù)據(jù)解碼
3.3.1 JPEG解碼器原理
本文提出的Jpeg解碼器是運用了Huffman解碼來實現(xiàn)的。解碼的整體框架如圖3所示。
圖3 解碼框圖
在Jpeg解碼開始前,我們已經(jīng)把圖片數(shù)據(jù)在Tpeg解碼時已經(jīng)分離出來了,并且把數(shù)據(jù)存入了flash存儲芯片。
如圖3所示,首先從flash芯片中讀取圖片的信息頭,主要包括需要的圖像識別碼、Huffman表,量化表,圖片的高、寬,采樣因子等解碼需要的信息。然后,對圖片數(shù)據(jù)進行Humffman解碼、反量化、反離散余弦變換(IDCT)、轉(zhuǎn)換圖片數(shù)據(jù)。最后,將解碼后的圖片數(shù)據(jù)經(jīng)過VGA驅(qū)動模塊送入到LCD顯示屏進行顯示。
在進行TPEG數(shù)據(jù)解碼后得到JPEG圖片數(shù)據(jù),接下來將是圖片數(shù)據(jù)的存儲工作。圖片數(shù)據(jù)的存儲是按照很多數(shù)據(jù)塊進行的,每一個數(shù)據(jù)塊分為8×8像素。數(shù)據(jù)和像素點是按照從左到右、從上到下的順序存儲的。JPEG利用Huffman亮度表和色度表分別對圖片的亮度和色度進行解碼。解碼中需要注意的是,解碼出的直流分量DC_nr是校正值,而不是真正的DC_nr值,在加上后一個MCU解碼出來的DC_nr值才是真正直流分量。AC_nr分量解碼出來就是真正的值。用亮度和色度量化矩陣對他們進行反量化,公式如下[3]:
量化后8×8的矩陣中,數(shù)據(jù)時按照“Z”形進行排列的,所以要進行反Zig-zag變換[4]。根據(jù)編碼要求,對圖片數(shù)據(jù)進行正向離散余弦變換。解碼用IDCT進行反變換,即從頻域向時域變換。其中,反向離散余弦變換公式為:
進行RGB數(shù)據(jù)轉(zhuǎn)換后,我們可以注意到轉(zhuǎn)換結(jié)果,它支持的RGB范圍是(0,255),如果轉(zhuǎn)換的結(jié)果不在這個范圍內(nèi),小于0就設(shè)置為0,大于255就設(shè)置為255。
3.3.2 反離散余弦變換
反離散余弦變換其實就是離散余弦變換的逆過程。下面主要介紹離散余弦變換DCT:
離散余弦變換是傅里葉變換的一種特殊情況。它作為一種重要的分析工具,被廣泛的應(yīng)用到離散信號頻域分析中,并作為一種編碼工具在數(shù)字圖像中得到了廣泛的應(yīng)用。離散余弦變換矩陣與圖像內(nèi)容是沒有關(guān)系的,它對所有圖像采用固定的變換矩陣,具有以下特點:計算復(fù)雜度適中、可離散性、快速算法等。
離散余弦變換的基函數(shù)為:
該公式為一個實數(shù)變換,最低頻率系數(shù)為DC系數(shù),它作為信號的平均值,其他的變換系數(shù)稱為AC系數(shù),與不同的頻率相對應(yīng)。
4.整個系統(tǒng)的解碼結(jié)果分析
4.1 系統(tǒng)的數(shù)據(jù)流向分析
本文的整個系統(tǒng)其實是一個接收解碼端,它首先接受DAB信號,在信號進入到基帶芯片后進行信源解碼與信道解碼,成功后把數(shù)據(jù)傳入到MCU進行TPEG解碼,從中解碼出圖片數(shù)據(jù)并存入flash存儲器中,然后MCU再取JPEG數(shù)據(jù)進行解碼,數(shù)據(jù)再次存入flash芯片,F(xiàn)SMC控制VGA模塊從存儲器中取數(shù)據(jù)送入到LCD顯示屏顯示。數(shù)據(jù)流向如圖4所示。
圖4 數(shù)據(jù)流向
4.2 解碼結(jié)果
在發(fā)送端我們是將一張像素為1024× 768,大小為230KB的圖片進行TPEG編碼,最終生成了tdc格式的文件,大小為280KB。因為在進行JPEG解碼后生成的RGB數(shù)據(jù)是會比原來的原圖片數(shù)據(jù)大很多的,而本文中使用的flash存儲芯片大小為4M,完全可以裝下所有的數(shù)據(jù)。
在整個系統(tǒng)完成后,對系統(tǒng)進行了時間上的測試,測試結(jié)果是在從接受到信號到JPEG解碼完成需要大約13s,而接上VGA模塊到LCD上顯示整個過程用了大約36s的時間。在圖片顯示的效果上幾乎和原圖片效果一樣。具體解碼前原圖片如圖5所示。解碼后在LCD上顯示的圖片效果如圖6所示。
5.結(jié)論
本文提出了數(shù)字廣播TPEG數(shù)據(jù)業(yè)務(wù)的JPEG圖像解碼的系統(tǒng)實現(xiàn),并且整個系統(tǒng)能夠成功在LCD顯示屏是顯示圖片。該系統(tǒng)可以作為宣傳的工具或電子廣告牌使用。它作為新的數(shù)字廣播的TPEG數(shù)據(jù)業(yè)務(wù)的應(yīng)用,具有非常大的實用價值。隨著數(shù)字廣播的不斷推廣,該客戶群體也在不斷增加,該系統(tǒng)將會有很廣闊的市場前景。同時,該系統(tǒng)作為新一代的解碼系統(tǒng)具有較高的研究與應(yīng)用價值。
參考文獻(xiàn)
[1]李棟.數(shù)字聲音廣播[M].北京廣播學(xué)院出版社,2001,07: 13-14.
[2]Transport Protocol Experts Group(TPEG)TPEG specifications-Part 3:Service and Network Information Application[S].EBU B/TPEG BPN027-3.2002-oct-29.
[3]張強,雷躍明,周先發(fā)等.嵌入式系統(tǒng)JPEG圖像解碼器設(shè)計與實現(xiàn)[J].計算機應(yīng)用,2007(9):1001-9081.
[4]吳嘉慧.JPEG圖像解碼方案[J].現(xiàn)代計算機,2007(3):49-53
[5]廖小情,陳小平.JPEG軟件解碼及其在ARM7上的實現(xiàn)[J].微型機與應(yīng)用,2011,30(9):39-45.
作者簡介:
萬運龍,男,碩士研究生,主要研究方向:軟件開發(fā)與嵌入式程序設(shè)計。
陳忠勝,男,碩士研究生,主要研究方向:嵌入式程序設(shè)計。