新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于TMS320DM6446的數(shù)字電影放映系統(tǒng)設(shè)計(jì)

基于TMS320DM6446的數(shù)字電影放映系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-12-08 來(lái)源:網(wǎng)絡(luò) 收藏


2 軟件設(shè)計(jì)
數(shù)字電影放映系統(tǒng)的軟件設(shè)計(jì)主要是在Linux系統(tǒng)環(huán)境下,利用達(dá)芬奇軟件框架結(jié)構(gòu)來(lái)完成的。通過(guò)將符合數(shù)字媒體標(biāo)準(zhǔn)(xDM)的和視頻算法打包在由CodecEngine(代碼引擎)管理的Codec Server(代碼服務(wù)器)里,ARM端的應(yīng)用程序就可以調(diào)用集成在Codec Server里的和視頻算法,解碼來(lái)自L(fǎng)inux文件系統(tǒng)的、視頻、語(yǔ)音數(shù)據(jù),輸出到TMS320DM6446上控制視頻和語(yǔ)音外設(shè)的Linux器件驅(qū)動(dòng)器。
2.1 達(dá)芬奇軟件開(kāi)發(fā)方法
在進(jìn)行本系統(tǒng)軟件開(kāi)發(fā)時(shí),軟件開(kāi)發(fā)流程如圖3所示。

本文引用地址:http://butianyuan.cn/article/166312.htm


軟件開(kāi)發(fā)具體步驟如下:
①DSP端,在TI公司推出的CCS3.3開(kāi)發(fā)環(huán)境下,把音視頻解碼算法修改成符合數(shù)字媒體標(biāo)準(zhǔn)(xDM)的形式,并編譯生成一個(gè)算法的庫(kù)文件*.lib(等同于Linux環(huán)境下的*.a(chǎn)64P,直接在Linux環(huán)境下修改文件后綴名即可)。
②生成一個(gè)在DSP上運(yùn)行的可執(zhí)行程序*.x64P(即.out文件),也就是Codec Server。本系統(tǒng)的Codec Server里集成了MPEG-2、MPEG-4、H.264、AAC、MP3、G.71l多種形式的音視頻解碼器。
③根據(jù)Codec Server的名稱(chēng)及其中包含的具體的音視頻解碼算法,創(chuàng)建Codec Engine的配置文件*.cfg,包括Engine的不同配置、名稱(chēng),每個(gè)Engine里包括的Codec以及每個(gè)Codec運(yùn)行在ARM還是DSP端等。例如,在.cfg文件中,可以修改取得Codec模塊的相關(guān)語(yǔ)句,按需要引用Codec模塊。取得不同模塊的語(yǔ)句如下;

代碼模塊可以自己開(kāi)發(fā),也可以充分利用第三方的軟件技術(shù),任何與xDM兼容的算法都可以集成到Codec Server中。這樣就避免了開(kāi)發(fā)的重復(fù)性,降低了開(kāi)發(fā)的難度。
④將收集到的不同音視頻Codec包、Codec Server和Engine配置文件*.cfg以及應(yīng)用程序通過(guò)編譯、鏈接,最終生成ARM端可執(zhí)行文件。
2.2 達(dá)芬奇中間框架Codec Engine
Codec Engine是介于應(yīng)用程序和代碼服務(wù)器的中間層,是利用DaVinci技術(shù)簡(jiǎn)化數(shù)字產(chǎn)品開(kāi)發(fā)的關(guān)鍵組件。它為應(yīng)用程序提供了VISA接口,在不必考慮復(fù)雜的視頻、圖像、話(huà)音和語(yǔ)音處理算法(VISA)的前提下,利用Codec Engine提供的API,應(yīng)用程序可以方便地調(diào)用符合x(chóng)DM的算法組件。
2.3 ARM端解碼應(yīng)用程序的設(shè)計(jì)
本系統(tǒng)的應(yīng)用程序是在Linux系統(tǒng)環(huán)境下,利用DaVinci技術(shù)的Codec Engine提供的API來(lái)完成的。應(yīng)用程序運(yùn)行在TMS320DM6446雙核處理器的ARM端,解碼存儲(chǔ)在硬盤(pán)里的音頻、視頻、語(yǔ)音數(shù)據(jù),通過(guò)視頻末端輸出接口(VPBE)輸出,在OSD上實(shí)時(shí)顯示。
解碼線(xiàn)程的流程如圖4所示。


應(yīng)用程序主要包括5個(gè)POSIX線(xiàn)程:主線(xiàn)程(控制線(xiàn)程)、視頻線(xiàn)程、顯示線(xiàn)程、語(yǔ)音線(xiàn)程以及音頻線(xiàn)程。從圖4中可以看到,視頻、語(yǔ)音、音頻線(xiàn)程在主線(xiàn)程變成控制線(xiàn)程之前產(chǎn)生。顯示線(xiàn)程由視頻線(xiàn)程產(chǎn)生。“MSP430+IR”用來(lái)接收用戶(hù)輸入的命令,只有在命令行里提供了一個(gè)視頻文件時(shí),才能建立視頻線(xiàn)程。同時(shí),由于音頻和語(yǔ)音要求同樣的外設(shè)(AIC33),因此,不能同時(shí)解碼音頻和語(yǔ)音文件。此外,所有的線(xiàn)程都是搶占式的,基于優(yōu)先級(jí)的時(shí)序(SCHED_FIFO),其中,顯示線(xiàn)程具有最高的優(yōu)先級(jí),接下來(lái)是視頻線(xiàn)程,控制線(xiàn)程的優(yōu)先級(jí)最低。線(xiàn)程的初始化由Rendezvous公用程序模塊來(lái)同步。該模塊使用POSIX的條件來(lái)同步線(xiàn)程的初始化。每個(gè)線(xiàn)程執(zhí)行其初始化后,通知Rendezvous的對(duì)象。所有的線(xiàn)程都結(jié)束初始化后,同時(shí)解鎖,開(kāi)始執(zhí)行主循環(huán)。



關(guān)鍵詞: 編解碼器 音頻

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉