摘要:介紹了一種可支持多路音頻艦頻同時播放的裝置,該裝置可用來實現(xiàn)電腦或電視等多媒體設備在播放多個視頻畫面的同時,獲得互不干擾的音頻輸出。該裝置中的數(shù)據(jù)緩存模塊連接有多個音頻/視頻讀取模塊,音頻/視頻讀取模塊的輸出端分別與音頻輸出接口和視頻呈現(xiàn)模塊連接。
關(guān)鍵詞:多媒體;復用;多路音頻;緩存
中圖分類號:TP37
文獻標志碼:A
文章編號:1006-8228(2011)12-13-03
0引言
多媒體技術(shù)是計算機綜合處理聲、文、圖信息的技術(shù),具有集成性、實時性和交互性。隨著社會的發(fā)展,在多媒體服務中,服務器端與客戶端需要高速的計算以支持視、音頻的實時編碼、解碼。多數(shù)情況下,PC機不能滿足實時與高質(zhì)量的要求。
目前的電視機、電腦等多媒體設備在播放視頻時,只能將一個視頻或音頻作為主播放界面,存在局限性。如電視機,由于家人各自喜歡看不同的頻道,經(jīng)常因選擇頻道而產(chǎn)生分歧。又如MP3、MP4等,能支持多個播放器的多媒體設備都存在主次音干擾問題。為此,人們希望能在一臺設備上同時播放多個視頻或音頻,而每個視頻或音頻能獨立擁有多媒體效果,且互不影響。本文將探討一種能夠充分利用資源的設計。本設計采用的核心芯片是MCU。MCU提供了一個多功能可編程服務平臺,采用通用編程語言,支持多種圖像/語音格式、多種壓縮標準和算法,被廣泛應用于如數(shù)字電視、數(shù)字視頻記錄、視頻會議和游戲平臺等領(lǐng)域。
1 裝置設計概述
1.1 方案提出
計算機技術(shù)的高速發(fā)展,使新一代計算機的資源相對充足。而在實際使用過程中,大量的系統(tǒng)資源并沒得到充分利用,特別是超線程的P4架構(gòu),利用率不到10%,造成很大的資源浪費。數(shù)字音頻是多媒體技術(shù)的重要組成部分,品種繁多的新產(chǎn)品也不斷涌現(xiàn),音頻數(shù)據(jù)壓縮和傳輸格式不斷豐富和更新,給人們帶來了方便和享受。但與此同時,人們也在對數(shù)字音頻產(chǎn)品不斷提出更高的要求,功能單一的產(chǎn)品必將被高性能、多功能以及具有良好兼容性的數(shù)字音頻系統(tǒng)所取代。同時播放多個視頻畫面時能夠獲得互不干擾的音頻輸出的技術(shù)必將成為數(shù)字音頻的發(fā)展趨勢。本文提出一種全新的設計方案:將系統(tǒng)資源優(yōu)化整合、充分利用,能夠在電腦或電視等多媒體設備中實現(xiàn)多畫面視頻播放、多通道音頻輸出,各聲音又不互相干擾的一種裝置。
1.2 常用的多路視頻、音頻同時播放方案分析
(1)單聲卡多聲道輸出方式
聲卡播放音頻文件原理:多個副緩沖區(qū)中的數(shù)據(jù)混合到主緩沖區(qū)中,然后再播放主緩沖區(qū)內(nèi)的數(shù)據(jù)實現(xiàn)聲音播放。聲卡的主緩沖區(qū)有且只有一個,聲道可有多個。采用多個聲道實現(xiàn)多路音頻輸出存在以下問題:多聲道不能實現(xiàn)聲音隔離單獨輸出;并且制作音源的時候是通過各個聲道,從多個方位,多種方式錄取的,錄取到的多路聲音經(jīng)過AC3或者DTS編碼后進行存儲,播放時聲卡把壓碼后的聲音信息再解碼出來,送到緩沖區(qū)中(也許用到了多個從緩沖區(qū)),最后通過聲卡的主緩沖區(qū)播放,因為其含有以多種方式,多方位錄制的信息,所以每個聲音輸出孔的聲音都存在混音等問題,聲音效果不好,不具備良好的立體感。
(2)音頻與視頻的雙輸出HDMI線+音響
市場中有采用帶音頻與視頻的雙輸出HDMI線和音響來實現(xiàn)兩個屏幕聲音互不干擾(視頻看電影,電腦游戲,各自有聲音)的產(chǎn)品,它則需要兩塊聲卡,一塊用于電影,一塊用于游戲,可以在程序中選擇使用不同聲卡。若采用一塊聲卡,因HDMI帶的音頻輸出只是多了一種輸出接口形式,聲音是通過同一個聲卡處理的,所以聲音還是混合的。如果將兩個程序播放聲音設置成一個左聲道,一個右聲道,播放程序或游戲可以進行這種設置,但無法實現(xiàn)立體聲。
(3)雙頭顯卡多音頻輸出
采用雙頭顯卡把電視與電腦連接起來,圖像互不干擾的問題可以解決,但電腦只有一塊聲卡,打開多個有聲應用程序于電腦和電視上會出現(xiàn)聲音串擾的問題。目前有種方法是利用一塊聲卡把不同應用程序的聲音分離出來,通過前后聲道進行傳輸,從而實現(xiàn)兩(多)路聲音分開傳輸,互不干擾。但實際操作發(fā)現(xiàn),前后聲道輸出的聲音總是相同的,有些聲卡自帶的“音效管理員”并不支持把前后聲道聲音分離的功能。另一種方法是為電腦添加一塊“虛擬聲卡”,通過“控制面板”的“聲音”設置,用不同的聲卡輸出不同應用程序的聲音。實際操作發(fā)現(xiàn)這種方法有兩個問題:第一,虛擬聲卡軟件(RigExpert)并不能獨立于物理聲卡發(fā)聲,因此并不能起到分離聲音的作用;第二,不是每一個發(fā)出聲音的應用軟件都提供了對聲卡進行選擇的設置,比如Windows Media Player可以設置,但RealPlayer則不支持,所以仍會出現(xiàn)聲音串擾的情況。
(4)分析
通常音源軟件自己不能選擇聲音輸出設備,默認的音頻數(shù)據(jù)是直接到windows的mix里面的。要實現(xiàn)分離輸出,就要考慮可以控制音頻的分離輸出軟件。本文提出:將任意聲道的聲音模擬成多聲道模式,并且在各聲道設置控制開關(guān),這擇就可以通過某些軟件實現(xiàn)虛擬聲道,并對各聲道進行獨立控制,進而可以把不同應用程序的聲音分別送入不同的聲道進行控制、傳送,最終解決聲音互相干擾的問題。
2 模塊裝置設計
(1)硬件說明
數(shù)字信號處理器DSP是聲卡的關(guān)鍵部件。聲卡用數(shù)字信號處理器芯片管理所有聲音輸入輸出和MIDI操作。用數(shù)字信號處理器可以通過編程來完成一些特定的任務,減輕CPU的負擔。它的芯片帶有自己的RAM和EPROM,用來存放聲音處理(vo)、ADPCM編碼/譯碼程序和中間運算結(jié)果。視頻輸入模塊采用DM365架構(gòu),能支持多種格式的視頻輸入格式,實現(xiàn)高清視頻輸入。高清AkD轉(zhuǎn)換芯片采用TVP7002,TVP7002能實現(xiàn)R/Pr,G/Y,B/Pb信號的數(shù)字轉(zhuǎn)換,轉(zhuǎn)換率高達165MHz。
(2)設計原理
同時播放多個音頻文件是利用多緩沖技術(shù),把多個副緩沖區(qū)中的數(shù)據(jù)混合到主緩沖區(qū)中,然后再播放主緩沖區(qū)內(nèi)的數(shù)據(jù)或用多線程來實現(xiàn)。本文設計將音頻,視頻數(shù)據(jù)存入緩存區(qū)的不同位置,利用多個音視頻數(shù)據(jù)讀取模塊進行讀取,并分別顯示或播放,互不影響。電路結(jié)構(gòu)如圖l所示。
如圖1所示,設計的裝置包括MCU(微控制單元)以及與該MCU連接的數(shù)據(jù)存儲模塊、音視頻解碼模塊和數(shù)據(jù)緩存模塊。設計的主要特點是數(shù)據(jù)緩存模塊連接有多個音頻/視頻讀取模塊,輸出端分別與視頻呈現(xiàn)模塊和音頻輸出接口模塊連接。MCU將要播放的數(shù)據(jù)從數(shù)據(jù)存儲模塊中讀取并進行解碼,并將解碼后的數(shù)據(jù)按照不同的地址分別存入緩存模塊中,緩存模塊采用多路復用技術(shù),實現(xiàn)集中管理,利用音頻/視頻讀取模塊讀取相應位置的數(shù)據(jù)信息,分別輸出顯示或播放。音頻輸出接口模塊具有多個音頻輸出端口,以便用戶通過各自的耳麥或音頻播放設備接收各自的音頻數(shù)據(jù)。
(3)程序說明
MCU采用其程序總線與數(shù)據(jù)總線分開,取指令與執(zhí)行指令并行運行的方式。程序總線寬度為256bit,每一次取指操作都是取8條指令,即一個取指包。執(zhí)行時,每條指令占用一個功能單元,取指、指令分配和指令譯碼單元都具備每周期讀取并傳遞8條32位指令的能力。
MCU有二個類似的可進行數(shù)據(jù)處理的數(shù)據(jù)通路A和B,其結(jié)構(gòu)如圖2所示,共包含下述物理資源:
①2個數(shù)據(jù)通路(A和B)。
②8個功能單元。MCU每組數(shù)據(jù)通路有四個功能單元,兩組數(shù)據(jù)通路功能單元的功能基本相同。這些功能單元主要完成乘法運算和產(chǎn)生地址的功能。L與s是主要的算術(shù)邏輯運算單元(ALU)。
③二個數(shù)據(jù)讀取通路(LD1和LD2)和二個數(shù)據(jù)存儲通路(ST1和ST2)。
④二個寄存器組交叉通路(2x和1x)。
⑤二個數(shù)據(jù)尋址通路(S/C1和S/C2)。
⑥控制寄存器組。
用戶可以通過對控制寄存器組編程來選用MCU的部分功能。功能單元方面,算術(shù)邏輯運算單元s可通過搬移指令MCU訪問控制寄存器,對其進行讀寫操作。每一個通道可以同時運行,也可以分時運行,并且是可編程和軟件可控的。它執(zhí)行數(shù)據(jù)傳送功能存儲器到存儲器:執(zhí)行塊傳送、預裝數(shù)據(jù)到內(nèi)部高速緩存、用0或1填充存儲器某特定區(qū)域。待傳送數(shù)據(jù)的參數(shù),如起始地址、數(shù)據(jù)大小等封裝并打包在一個數(shù)據(jù)包中??刂破饕淮巫x取一個數(shù)據(jù)包作為它的傳送數(shù)據(jù),并可以在不中斷VUW工作的情況下,把在存儲器中互不相連的數(shù)據(jù)持續(xù)地傳送。存儲器到IO口和IO口到存儲器,執(zhí)行IO數(shù)據(jù)傳輸?shù)腗UC控制寄存器有以下寄存器
尋址模式寄存器AMR
控制狀態(tài)寄存器CSR。
MCU控制器支持64M B到128M B的SDRAM/SGRAM,而不需另加額外的控制電路??刂破靼薉RAM的刷新與讀寫控制、隊列、優(yōu)先權(quán)判別等硬件邏輯。內(nèi)部的鎖相環(huán)電路產(chǎn)生SDRAM/SGRAM所需的讀寫時鐘。
MCU的EPROM/Falshrom控制器執(zhí)行以下幾個功能:
芯片配置和ROM啟動定序器。在系統(tǒng)啟動時,讀取系統(tǒng)啟動代碼和配制信息。
控制讀、寫、擦除FalshRom。
啟動過程中,進行上電診斷;測試狀態(tài)時,設置不同的程序斷點。
中斷控制寄存器IFR、ISR、ICR、IER、ISTP、IRP和NRP。
DMA控制器(Direct Memory Access):MCU中的通道控制器。
(4)本設計裝置實施的效果示意圖如圖3所示。圖中左邊同時播放了A、B、c、D四個視頻,輸出端設置有四個音頻輸出口(1、2、3、4)分別對應四個視頻的聲音。為促使聲音的不干擾傳輸,采用多信道利用技術(shù),把多個聲間傳輸分成不同的時隙,對各路通信進行分組,每組占用一個時隙,不同組分別進行數(shù)據(jù)傳輸互不干擾。信道利用技術(shù)中.復用器具有幾個緩存器,這樣就可將聲音分離。用戶只要通過各自的耳麥即可聽取相應視頻的聲音,可供多人使用,節(jié)省了資源。
(5)音頻信息傳輸采用MADI(Multichannel AudioDigital Interface)接口標準,線性量化(PCM)音頻數(shù)據(jù)MADI采用異步工作方式:音頻信號的時鐘和數(shù)據(jù)分開傳輸,每個通道包含32個比特,其中24個比特分配給音頻或由音頻,非音頻標記定義的其他數(shù)據(jù),另有4個比特用來表示二通道接口的有效位(V)、用戶數(shù)據(jù)位(U)、狀態(tài)數(shù)據(jù)位(C)和奇偶校驗位(P),另4個比特用于模式確認。
本設計的音頻輸出不僅僅只局限于有線的數(shù)據(jù)傳輸,其音頻輸出接口模塊還可以包括藍牙音頻輸出單元,通過無線藍牙實現(xiàn)音頻傳輸并播放。
3 結(jié)束語
本文將音/視頻數(shù)據(jù)存入緩存的不同位置,利用多個音視頻數(shù)據(jù)讀取模塊進行讀取,并分別顯示或播放,互不影響。目前在市場上還末找到可實現(xiàn)類似功能的硬件。此設計的裝置可應用于包括電視機、電腦以及多媒體設備等,具有較好的實用價值。