新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于TMS320DM6446的數字電影放映系統設計

        基于TMS320DM6446的數字電影放映系統設計

        作者: 時間:2010-12-08 來源:網絡 收藏


        2 軟件設計
        數字電影放映系統的軟件設計主要是在Linux系統環境下,利用達芬奇軟件框架結構來完成的。通過將符合數字媒體標準(xDM)的和視頻算法打包在由CodecEngine(代碼引擎)管理的Codec Server(代碼服務器)里,ARM端的應用程序就可以調用集成在Codec Server里的和視頻算法,解碼來自Linux文件系統的、視頻、語音數據,輸出到TMS320DM6446上控制視頻和語音外設的Linux器件驅動器。
        2.1 達芬奇軟件開發方法
        在進行本系統軟件開發時,軟件開發流程如圖3所示。

        本文引用地址:http://www.104case.com/article/166312.htm


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

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


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



        關鍵詞: 編解碼器 音頻

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泊头市| 清水河县| 巴塘县| 丰县| 阿拉善右旗| 莱州市| 阿拉善盟| 会东县| 宽城| 兴化市| 淮滨县| 托里县| 平泉县| 乌拉特中旗| 邢台市| 桂东县| 万宁市| 威远县| 同德县| 望谟县| 安多县| 赫章县| 西华县| 德惠市| 静海县| 海南省| 黄浦区| 万全县| 吕梁市| 定州市| 公安县| 台东县| 邻水| 湖州市| 息烽县| 孟连| 浙江省| 商水县| 宜宾市| 堆龙德庆县| 茌平县|