本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種音視頻數(shù)據(jù)DMA傳輸方法及裝置。
背景技術(shù):
DMA(Direct Memory Access,直接內(nèi)存存取)是所有現(xiàn)代電腦的重要特色,它允許不同速度的硬件裝置來溝通,而不需要依賴于CPU的大量中斷負(fù)載。否則,CPU需要從來源把每一片段的資料復(fù)制到暫存器,然后把它們再次寫回到新的地方。在這個時間中,CPU對于其他的工作來說就無法使用。
傳統(tǒng)的音視頻數(shù)據(jù)傳輸方式有將音頻數(shù)據(jù)編碼到視頻數(shù)據(jù)中,或傳輸當(dāng)將部分音頻數(shù)據(jù)與一幀視頻數(shù)據(jù)進(jìn)行合并傳輸。這兩種方式當(dāng)面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生問題。實際應(yīng)用中,由于視頻數(shù)據(jù)要經(jīng)過多級幀率變換,例如源端為1080P,60Hz,但輸出需要1080P,30Hz。這就需要將視頻數(shù)據(jù)幀率降低一倍。但音頻數(shù)據(jù)要保持其連續(xù)性,不能丟音頻幀,且要求與視頻數(shù)據(jù)同步,這就需要對音頻視頻數(shù)據(jù)進(jìn)行特殊處理,保證視聽效果。
上述提及的面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題成為了本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法及裝置,解決了目前面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題。
本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法,包括:
獲取音視頻數(shù)據(jù);
將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;
根據(jù)響應(yīng)的DMA請求對所述視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對所述音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;
將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)所述DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放。
優(yōu)選地,獲取音視頻數(shù)據(jù)具體包括:
獲取所述視頻數(shù)據(jù)和所述音頻數(shù)據(jù);
將所述視頻數(shù)據(jù)轉(zhuǎn)換成DDR存儲格式,并將所述音頻數(shù)據(jù)轉(zhuǎn)換成FIFO存儲格式。
優(yōu)選地,將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間具體包括:
將所述視頻數(shù)據(jù)進(jìn)行多幀緩存處理,并存入外部DDR存儲空間;
將所述音頻數(shù)據(jù)存入內(nèi)部FIFO存儲空間;
同時,根據(jù)所述視頻數(shù)據(jù)的視頻幀號與所述音頻數(shù)據(jù)的音頻幀號插入到音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中。
優(yōu)選地,根據(jù)響應(yīng)的DMA請求對所述視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對所述音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理具體包括:
接收并響應(yīng)處理器發(fā)出的所述DMA請求;
當(dāng)請求所述視頻數(shù)據(jù)時,同時讀取所述視頻幀號狀態(tài)寄存器;
當(dāng)請求音頻數(shù)據(jù)時,同時讀取音頻長度與所述音頻幀號狀態(tài)寄存器;
對所述視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對所述音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理。
優(yōu)選地,將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)所述DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放具體包括:
將所述DMA視頻數(shù)據(jù)DMA到顯存中通過顯卡顯示;
將所述DMA音頻數(shù)據(jù)DMA到內(nèi)存中,并將所述音頻幀號狀態(tài)寄存器和所述視頻幀號狀態(tài)寄存器中的幀號信息一一對應(yīng);
當(dāng)獲取同步指令時,根據(jù)所述視頻幀號搜索對應(yīng)相同的所述音頻幀號。
本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸裝置,包括:
獲取單元,用于獲取音視頻數(shù)據(jù);
存儲處理單元,用于將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;
DMA響應(yīng)單元,用于根據(jù)響應(yīng)的DMA請求對所述視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對所述音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;
DMA傳輸單元,用于將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)所述DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放。
優(yōu)選地,獲取單元具體包括:
獲取子單元,用于獲取所述視頻數(shù)據(jù)和所述音頻數(shù)據(jù);
轉(zhuǎn)換子單元,用于將所述視頻數(shù)據(jù)轉(zhuǎn)換成DDR存儲格式,并將所述音頻數(shù)據(jù)轉(zhuǎn)換成FIFO存儲格式。
優(yōu)選地,存儲處理單元具體包括:
第一存儲子單元,用于將所述視頻數(shù)據(jù)進(jìn)行多幀緩存處理,并存入外部DDR存儲空間;
第二存儲子單元,用于將所述音頻數(shù)據(jù)存入內(nèi)部FIFO存儲空間;
加入同步標(biāo)志子單元,用于根據(jù)所述視頻數(shù)據(jù)的視頻幀號與所述音頻數(shù)據(jù)的音頻幀號插入到音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中。
優(yōu)選地,DMA響應(yīng)單元具體包括:
DMA響應(yīng)子單元,接收并響應(yīng)處理器發(fā)出的所述DMA請求;
第一讀取子單元,用于當(dāng)請求所述視頻數(shù)據(jù)時,同時讀取所述視頻幀號狀態(tài)寄存器;
第二讀取子單元,用于當(dāng)請求音頻數(shù)據(jù)時,同時讀取音頻長度與所述音頻幀號狀態(tài)寄存器;
DMA處理子單元,用于對所述視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對所述音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理。
優(yōu)選地,DMA傳輸單元具體包括:
第一DMA傳輸子單元,用于將所述DMA視頻數(shù)據(jù)DMA到顯存中通過顯卡顯示;
第二DMA傳輸子單元,用于將所述DMA音頻數(shù)據(jù)DMA到內(nèi)存中,并將所述音頻幀號狀態(tài)寄存器和所述視頻幀號狀態(tài)寄存器中的幀號信息一一對應(yīng);
DMA同步傳輸子單元,用于當(dāng)獲取同步指令時,根據(jù)所述視頻幀號搜索對應(yīng)相同的所述音頻幀號。
從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點(diǎn):
本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法及裝置,其中,音視頻數(shù)據(jù)DMA傳輸方法包括:獲取音視頻數(shù)據(jù);將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放。本實施例中,通過將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放,解決了目前面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法的一個實施例的流程示意圖;
圖2為本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法的另一個實施例的流程示意圖;
圖3為本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸裝置的一個實施例的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸裝置的另一個實施例的結(jié)構(gòu)示意圖;
圖5和圖6為圖2的應(yīng)用例示意圖。
具體實施方式
本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法及裝置,解決了目前面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題。
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范圍。
請參閱圖1,本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法的一個實施例包括:
101、獲取音視頻數(shù)據(jù);
本實施例中,當(dāng)需要傳輸音視頻數(shù)據(jù)時,首先需要獲取音視頻數(shù)據(jù)。
102、將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;
當(dāng)獲取音視頻數(shù)據(jù)之后,需要將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間。
103、根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;
當(dāng)將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間之后,需要根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理。
104、將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放。
當(dāng)根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理之后,需要將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放。
本實施例中,通過將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放,解決了目前面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題。
上面是對音視頻數(shù)據(jù)DMA傳輸方法的過程進(jìn)行的描述,下面將對詳細(xì)的過程進(jìn)行詳細(xì)的描述,請參閱圖2,本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸方法的另一個實施例包括:
201、獲取視頻數(shù)據(jù)和音頻數(shù)據(jù);
本實施例中,當(dāng)需要傳輸音視頻數(shù)據(jù)時,首先需要獲取視頻數(shù)據(jù)和音頻數(shù)據(jù)。
202、將視頻數(shù)據(jù)轉(zhuǎn)換成DDR存儲格式,并將音頻數(shù)據(jù)轉(zhuǎn)換成FIFO存儲格式;
當(dāng)獲取視頻數(shù)據(jù)和音頻數(shù)據(jù)之后,需要將視頻數(shù)據(jù)轉(zhuǎn)換成DDR存儲格式,并將音頻數(shù)據(jù)轉(zhuǎn)換成FIFO存儲格式。
203、將視頻數(shù)據(jù)進(jìn)行多幀緩存處理,并存入外部DDR存儲空間;
當(dāng)將視頻數(shù)據(jù)轉(zhuǎn)換成DDR存儲格式,并將音頻數(shù)據(jù)轉(zhuǎn)換成FIFO存儲格式之后,需要將視頻數(shù)據(jù)進(jìn)行多幀緩存處理,并存入外部DDR存儲空間。
204、將音頻數(shù)據(jù)存入內(nèi)部FIFO存儲空間;
當(dāng)將視頻數(shù)據(jù)進(jìn)行多幀緩存處理,并存入外部DDR存儲空間的同時,需要將音頻數(shù)據(jù)存入內(nèi)部FIFO存儲空間。
205、根據(jù)視頻數(shù)據(jù)的視頻幀號與音頻數(shù)據(jù)的音頻幀號插入到音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中;
當(dāng)步驟203和204的同時,需要根據(jù)視頻數(shù)據(jù)的視頻幀號與音頻數(shù)據(jù)的音頻幀號插入到音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中。
206、接收并響應(yīng)處理器發(fā)出的DMA請求;
當(dāng)步驟203至205之后,需要接收并響應(yīng)處理器發(fā)出的DMA請求。
207、當(dāng)請求視頻數(shù)據(jù)時,同時讀取視頻幀號狀態(tài)寄存器,當(dāng)請求音頻數(shù)據(jù)時,同時讀取音頻長度與音頻幀號狀態(tài)寄存器;
當(dāng)接收并響應(yīng)處理器發(fā)出的DMA請求之后,需要當(dāng)請求視頻數(shù)據(jù)時,同時讀取視頻幀號狀態(tài)寄存器,當(dāng)請求音頻數(shù)據(jù)時,同時讀取音頻長度與音頻幀號狀態(tài)寄存器。
208、對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;
當(dāng)請求視頻數(shù)據(jù)時,同時讀取視頻幀號狀態(tài)寄存器,當(dāng)請求音頻數(shù)據(jù)時,同時讀取音頻長度與音頻幀號狀態(tài)寄存器之后,需要對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理。
209、將DMA視頻數(shù)據(jù)DMA到顯存中通過顯卡顯示;
當(dāng)對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理之后,需要將DMA視頻數(shù)據(jù)DMA到顯存中通過顯卡顯示。
210、將DMA音頻數(shù)據(jù)DMA到內(nèi)存中,并將音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中的幀號信息一一對應(yīng);
當(dāng)將DMA視頻數(shù)據(jù)DMA到顯存中通過顯卡顯示的同時,需要將DMA音頻數(shù)據(jù)DMA到內(nèi)存中,并將音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中的幀號信息一一對應(yīng)。
211、當(dāng)獲取同步指令時,根據(jù)視頻幀號搜索對應(yīng)相同的音頻幀號。
當(dāng)步驟209和210之后,需要當(dāng)獲取同步指令時,根據(jù)視頻幀號搜索對應(yīng)相同的音頻幀號。
下面以一具體應(yīng)用場景進(jìn)行描述,如圖5和圖6所示,應(yīng)用例包括:
傳輸過程可分為如圖6:
1接收音視頻數(shù)據(jù)
2將音視頻數(shù)據(jù)存入指定存儲空間
3接收并響應(yīng)DMA請求
4DMA音視頻數(shù)據(jù)到處理器端
具體過程中還包括:
過程1中包括:視頻數(shù)據(jù)接收,檢測視頻分辨率,并轉(zhuǎn)換成DDR存儲所需格式(vs+hs+data_valid+data)。音頻數(shù)據(jù)接收,檢測音頻格式(采樣率,聲道信息等),并轉(zhuǎn)換成FIFO存儲所需格式(data+data_valid)。音頻與視頻接收獨(dú)立進(jìn)行。
過程2中包括:將過程1中的音視數(shù)據(jù)存入到指定空間。由于視頻,數(shù)據(jù)龐大,同時由于按幀傳輸?shù)奶厥庑?,同步性要求讀寫幀不能重疊,且需要進(jìn)行幀率變換,所以視頻多幀緩存,存入外部DDR存儲空間。但音頻數(shù)據(jù)數(shù)據(jù)量小,要求保持其連續(xù)性,不可間斷,所以存入內(nèi)部FIFO空間。在存儲音視頻數(shù)據(jù)的過程中,同時加入同步標(biāo)志,具體方法是,在視頻的幀開始,產(chǎn)生一個幀號,用兩個字節(jié)表示,將這個幀號,插入到音頻幀號狀態(tài)和視頻幀號狀態(tài)寄存器中。
過程3中包括:接收并響應(yīng)處理器發(fā)出的DMA請求。當(dāng)請求視頻數(shù)據(jù)時,同時讀取視頻幀號狀態(tài)寄存器。當(dāng)請求音頻數(shù)據(jù)時,同時讀取音頻長度與音頻幀號狀態(tài)寄存器。視頻數(shù)據(jù)按幀大小進(jìn)行DMA,音頻數(shù)據(jù)按FIFO存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA。
過程4中包括:DMA音視頻數(shù)據(jù)到處理器端,視頻數(shù)據(jù)需要用顯卡顯示,固將視頻數(shù)據(jù)DMA到顯存中,直接顯示。音頻數(shù)據(jù)DMA到內(nèi)存中,且根據(jù)音頻幀號狀態(tài)和視頻幀號狀態(tài)寄存器中幀號信息一一對應(yīng),當(dāng)需要校準(zhǔn)對齊時,根據(jù)視頻幀號去搜索對應(yīng)相同的音頻幀號。對齊方式可手動也可定時自動。
本實施例中,通過將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放,解決了目前面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題。
實現(xiàn)了通過PCI-E接口傳到處理器的存儲空間,對音頻數(shù)據(jù)與視頻數(shù)據(jù)區(qū)別對待,可以響應(yīng)各自處理要求,如接受不同的幀率變換請求,DMA到不同的存儲空間顯存或內(nèi)存。同時加入精確對齊機(jī)制,使音視頻間的延遲小于1幀。
請參閱圖3,本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸裝置的一個實施例包括:
獲取單元301,用于獲取音視頻數(shù)據(jù);
存儲處理單元302,用于將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;
DMA響應(yīng)單元303,用于根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;
DMA傳輸單元304,用于將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放。
本實施例中,通過將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放,解決了目前面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題。
上面是對音視頻數(shù)據(jù)DMA傳輸裝置的各單元進(jìn)行的描述,下面將對子單元進(jìn)行面試,請參閱圖4,本發(fā)明實施例提供的一種音視頻數(shù)據(jù)DMA傳輸裝置的另一個實施例包括:
獲取單元401,用于獲取音視頻數(shù)據(jù);
獲取單元401具體包括:
獲取子單元4011,用于獲取視頻數(shù)據(jù)和音頻數(shù)據(jù);
轉(zhuǎn)換子單元4012,用于將視頻數(shù)據(jù)轉(zhuǎn)換成DDR存儲格式,并將音頻數(shù)據(jù)轉(zhuǎn)換成FIFO存儲格式。
存儲處理單元402,用于將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;
存儲處理單元402具體包括:
第一存儲子單元4021,用于將視頻數(shù)據(jù)進(jìn)行多幀緩存處理,并存入外部DDR存儲空間;
第二存儲子單元4022,用于將音頻數(shù)據(jù)存入內(nèi)部FIFO存儲空間;
加入同步標(biāo)志子單元4023,用于根據(jù)視頻數(shù)據(jù)的視頻幀號與音頻數(shù)據(jù)的音頻幀號插入到音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中。
DMA響應(yīng)單元403,用于根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;
DMA響應(yīng)單元403具體包括:
DMA響應(yīng)子單元4031,接收并響應(yīng)處理器發(fā)出的DMA請求;
第一讀取子單元4032,用于當(dāng)請求視頻數(shù)據(jù)時,同時讀取視頻幀號狀態(tài)寄存器;
第二讀取子單元4033,用于當(dāng)請求音頻數(shù)據(jù)時,同時讀取音頻長度與音頻幀號狀態(tài)寄存器;
DMA處理子單元4034,用于對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理。
DMA傳輸單元404,用于將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放。
DMA傳輸單元404具體包括:
第一DMA傳輸子單元4041,用于將DMA視頻數(shù)據(jù)DMA到顯存中通過顯卡顯示;
第二DMA傳輸子單元4042,用于將DMA音頻數(shù)據(jù)DMA到內(nèi)存中,并將音頻幀號狀態(tài)寄存器和視頻幀號狀態(tài)寄存器中的幀號信息一一對應(yīng);
DMA同步傳輸子單元4043,用于當(dāng)獲取同步指令時,根據(jù)視頻幀號搜索對應(yīng)相同的音頻幀號。
本實施例中,通過將視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存入對應(yīng)的指定存儲空間;根據(jù)響應(yīng)的DMA請求對視頻數(shù)據(jù)根據(jù)幀大小進(jìn)行DMA處理,對音頻數(shù)據(jù)根據(jù)存儲的數(shù)據(jù)個數(shù)數(shù)量進(jìn)行DMA處理;將DMA處理后的DMA視頻數(shù)據(jù)通過顯卡顯示,將DMA音頻數(shù)據(jù)根據(jù)DMA視頻數(shù)據(jù)進(jìn)行對應(yīng)播放,解決了目前面臨音頻數(shù)據(jù)與視頻數(shù)據(jù)在不同的存儲空間時和處理音視頻同步時會產(chǎn)生的同步出錯的技術(shù)問題。
實現(xiàn)了通過PCI-E接口傳到處理器的存儲空間,對音頻數(shù)據(jù)與視頻數(shù)據(jù)區(qū)別對待,可以響應(yīng)各自處理要求,如接受不同的幀率變換請求,DMA到不同的存儲空間顯存或內(nèi)存。同時加入精確對齊機(jī)制,使音視頻間的延遲小于1幀。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。