專利名稱:處理多媒體數(shù)據(jù)的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及一種處理多媒體數(shù)據(jù)的方法、裝置及系統(tǒng)。
背景技術(shù):
隨著多媒體技術(shù)的迅速發(fā)展,視頻已經(jīng)進(jìn)入高清時代,其應(yīng)用范圍也越來越廣。通過對多媒體數(shù)據(jù)進(jìn)行編碼及傳輸?shù)忍幚硪詫崿F(xiàn)多路視頻監(jiān)控,是目前應(yīng)用范圍較廣的一種視頻應(yīng)用。為了向用戶提供更清晰的視頻畫面,使視頻畫面達(dá)到高清分辨率,如何對多媒體數(shù)據(jù)進(jìn)行編碼及傳輸處理,成為了多路視頻監(jiān)控應(yīng)用中的一個關(guān)鍵問題?,F(xiàn)有技術(shù)在對多媒體數(shù)據(jù)進(jìn)行編碼及傳輸處理時,通過單芯片采集多路多媒體數(shù)據(jù),并對采集到的多媒體數(shù)據(jù)進(jìn)行編碼得到編碼數(shù)據(jù)后,將編碼數(shù)據(jù)傳輸至外部存儲設(shè)備或進(jìn)行網(wǎng)絡(luò)傳輸。 在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題由于現(xiàn)有技術(shù)在處理多媒體數(shù)據(jù)時,其數(shù)據(jù)采集、數(shù)據(jù)編碼和碼流傳輸過程都在一個芯片上實現(xiàn),對于多路視頻監(jiān)控而言,多媒體數(shù)據(jù)的數(shù)據(jù)量較大,導(dǎo)致現(xiàn)有技術(shù)中的芯片編碼負(fù)荷過重,因而對多媒體數(shù)據(jù)的處理效率較低。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種處理多媒體數(shù)據(jù)的方法、裝置及系統(tǒng)。所述技術(shù)方案如下一方面,提供了一種處理多媒體數(shù)據(jù)的方法,所述方法包括多個編碼裝置中的每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù);將所述多路編碼數(shù)據(jù)打包,并將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的DMA (DirectMemory Access,直接內(nèi)存訪問)緩存中,由所述傳輸裝置對所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。進(jìn)一步地,所述將所述多路編碼數(shù)據(jù)打包,具體包括依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并將獲取到的每路編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包;或者,依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。進(jìn)一步地,所述將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,具體包括查詢所述對應(yīng)的DMA緩存的空隊列,并獲取所述空隊列的地址;根據(jù)所述空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列,所述數(shù)據(jù)隊列的地址與所述空隊列的地址相同。進(jìn)一步地,所述根據(jù)所述空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列之后,還包括向所述傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帶了所述數(shù)據(jù)隊列的地址,使所述傳輸裝置根據(jù)所述數(shù)據(jù)隊列的地址拆解所述對應(yīng)的DMA緩存中的打包數(shù)據(jù)。進(jìn)一步地,所述根據(jù)所述空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列之后,還包括
接收所述傳輸裝置將拆解后的數(shù)據(jù)傳輸后發(fā)送的數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帶了所述數(shù)據(jù)隊列的地址;根據(jù)所述數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。另一方面,還提供了一種編碼裝置,所述裝置包括編碼模塊,用于通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù);打包模塊,用于將所述編碼模塊編碼得到的多路編碼數(shù)據(jù)打包;第一發(fā)送模塊,用于將所述打包模塊得到的打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,由所述傳輸裝置對所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。進(jìn)一步地,所述打包模塊,具體用于依次獲取各個編碼通道輸出的編碼數(shù)據(jù),并將獲取到的每個編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包;或者,依次獲取各個編碼通道輸出的編碼數(shù)據(jù),并在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。進(jìn)一步地,所述第一發(fā)送模塊,具體包括查詢單元,用于查詢所述對應(yīng)的DMA緩存的空隊列;獲取單元,用于獲取所述查詢單元查詢到的空隊列的地址;發(fā)送單元,用于根據(jù)所述獲取單元獲取到的空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列,所述數(shù)據(jù)隊列的地址與所述空隊列的地址相同。進(jìn)一步地,所述裝置,還包括第二發(fā)送模塊,用于向所述傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帶了所述數(shù)據(jù)隊列的地址,使所述傳輸裝置根據(jù)所述數(shù)據(jù)隊列的地址拆解所述對應(yīng)的DMA緩存中的打包數(shù)據(jù)。進(jìn)一步地,所述裝置,還包括接收模塊,用于接收所述傳輸裝置將拆解后的數(shù)據(jù)傳輸后發(fā)送的數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帶了所述數(shù)據(jù)隊列的地址;釋放模塊,用于根據(jù)所述接收模塊接收到的數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。又一方面,還提供了一種處理多媒體數(shù)據(jù)的方法,所述方法包括傳輸裝置獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù);對所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù);
其中,所述打包數(shù)據(jù)為所述每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼得到多路編碼數(shù)據(jù)后,對所述多路編碼數(shù)據(jù)進(jìn)行打包得到的數(shù)據(jù)。進(jìn)一步地,所述傳輸裝置獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)之前,還包括接收編碼裝置發(fā)送的數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帶了所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址,所述數(shù)據(jù)隊列中存儲了打包數(shù)據(jù);所述傳輸裝置獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù),具體包括根據(jù)所述數(shù)據(jù)發(fā)送完畢通知中攜帶的所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)。 進(jìn)一步地,所述傳輸拆解后的數(shù)據(jù)之后,還包括向?qū)?yīng)的編碼裝置發(fā)送數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帶了所述數(shù)據(jù)隊列的地址,使所述編碼裝置根據(jù)所述數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。再一方面,還提供了一種傳輸裝置,所述裝置包括獲取模塊,用于獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù);其中,所述打包數(shù)據(jù)為所述每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼得到多路編碼數(shù)據(jù)后,對所述多路編碼數(shù)據(jù)進(jìn)行打包得到的數(shù)據(jù);拆解模塊,用于對所述獲取模塊獲取到的所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解;傳輸模塊,用于傳輸所述拆解模塊拆解后的數(shù)據(jù)。進(jìn)一步地,所述裝置,還包括接收模塊,用于接收編碼裝置發(fā)送的數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帶了所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址,所述數(shù)據(jù)隊列中存儲了打包數(shù)據(jù);所述獲取模塊,具體用于根據(jù)所述數(shù)據(jù)發(fā)送完畢通知中攜帶的所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)。進(jìn)一步地,所述裝置,還包括發(fā)送模塊,用于向?qū)?yīng)的編碼裝置發(fā)送數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帶了所述數(shù)據(jù)隊列的地址,使所述編碼裝置根據(jù)所述數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。還提供了一種處理多媒體數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括多個編碼裝置及一個傳輸
裝置;所述多個編碼裝置中的每個編碼裝置如上面所述的編碼裝置;所述傳輸裝置如上面所述的傳輸裝置。本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是通過采用多個編碼裝置與傳輸裝置級聯(lián)的方式,實現(xiàn)將多路視頻編碼分?jǐn)偟蕉鄠€編碼裝置上,解決了單編碼裝置編碼負(fù)荷過重的問題;另外,通過采用DMA傳輸機(jī)制,并由編碼裝置來控制向傳輸裝置中對應(yīng)的DMA緩存發(fā)送打包數(shù)據(jù),使編碼裝置可以統(tǒng)一管理傳輸裝置中的DMA緩存中的隊列,不但能夠保證每個編碼裝置的碼流傳輸?shù)姆€(wěn)定性,而且還能夠?qū)崿F(xiàn)多線程并行處理碼流,進(jìn)而提高多媒體數(shù)據(jù)的處理效率。
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實施例一提供的一種處理多媒體數(shù)據(jù)的方法流程圖;圖2是本發(fā)明實施例一提供的另一種處理多媒體數(shù)據(jù)的方法流程圖;圖3是本發(fā)明實施例二提供的一種處理多媒體數(shù)據(jù)的方法流程圖; 圖4是本發(fā)明實施例三提供的一種編碼裝置結(jié)構(gòu)示意圖;圖5是本發(fā)明實施例三提供的另一種編碼裝置的結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例三提供的又一種編碼裝置的結(jié)構(gòu)示意圖;圖7是本發(fā)明實施例三提供的再一種編碼裝置的結(jié)構(gòu)示意圖;圖8是本發(fā)明實施例四提供的一種傳輸裝置的結(jié)構(gòu)示意圖;圖9是本發(fā)明實施例四提供的另一種傳輸裝置的結(jié)構(gòu)示意圖;圖10是本發(fā)明實施例四提供的又一種傳輸裝置的結(jié)構(gòu)示意圖;圖11是本發(fā)明實施例五提供的一種處理多媒體數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。實施例一本實施例提供了一種處理多媒體數(shù)據(jù)的方法,以編碼裝置執(zhí)行該方法的角度為例,參見圖1,本實施例提供的方法流程具體如下101 :多個編碼裝置中的每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù);102:將多路編碼數(shù)據(jù)打包,并將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的DMA緩存中,由傳輸裝置對DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。其中,將多路編碼數(shù)據(jù)打包,包括但不限于依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并將獲取到的每路編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包;或者,依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。進(jìn)一步地,將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,具體包括查詢對應(yīng)的DMA緩存的空隊列,并獲取空隊列的地址;
根據(jù)空隊列的地址將打包數(shù)據(jù)發(fā)送至對應(yīng)的DMA緩存的空隊列中,使空隊列轉(zhuǎn)為數(shù)據(jù)隊列,數(shù)據(jù)隊列的地址與空隊列的地址相同。進(jìn)一步地,根據(jù)空隊列的地址將打包數(shù)據(jù)發(fā)送至對應(yīng)的DMA緩存的空隊列中,使空隊列轉(zhuǎn)為數(shù)據(jù)隊列之后,還包括向傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,數(shù)據(jù)發(fā)送完畢通知中攜帶了數(shù)據(jù)隊列的地址,使傳輸裝置根據(jù)數(shù)據(jù)隊列的地址拆解對應(yīng)的DMA緩存中的打包數(shù)據(jù)。其中,根據(jù)空隊列的地址將打包數(shù)據(jù)發(fā)送至對應(yīng)的DMA緩存的空隊列中,使空隊列轉(zhuǎn)為數(shù)據(jù)隊列之后,還包括接收傳輸裝置將拆解后的數(shù)據(jù)傳輸后發(fā)送的數(shù)據(jù)傳輸完畢通知,數(shù)據(jù)傳輸完畢通知中攜帶了數(shù)據(jù)隊列的地址;根據(jù)數(shù)據(jù)隊列的地址釋放對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使數(shù)據(jù)隊列轉(zhuǎn)為空隊列。
·
以傳輸裝置執(zhí)行該方法的角度為例,參見圖2,本實施例提供的方法流程具體如下201 :傳輸裝置獲取多個編碼裝置中的每個編碼裝置向傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù);202 :對DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。進(jìn)一步地,傳輸裝置獲取多個編碼裝置中的每個編碼裝置向傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)之前,還包括接收編碼裝置發(fā)送的數(shù)據(jù)發(fā)送完畢通知,數(shù)據(jù)發(fā)送完畢通知中攜帶了對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址,數(shù)據(jù)隊列中存儲了打包數(shù)據(jù);傳輸裝置獲取多個編碼裝置中的每個編碼裝置向傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù),具體包括根據(jù)數(shù)據(jù)發(fā)送完畢通知中攜帶的對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址獲取多個編碼裝置中的每個編碼裝置向傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)。進(jìn)一步地,傳輸拆解后的數(shù)據(jù)之后,還包括向?qū)?yīng)的編碼裝置發(fā)送數(shù)據(jù)傳輸完畢通知,數(shù)據(jù)傳輸完畢通知中攜帶了數(shù)據(jù)隊列的地址,使編碼裝置根據(jù)數(shù)據(jù)隊列的地址釋放對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使數(shù)據(jù)隊列轉(zhuǎn)為空隊列。本實施例提供的方法,通過采用多個編碼裝置與傳輸裝置級聯(lián)的方式,實現(xiàn)將多路視頻編碼分?jǐn)偟蕉鄠€編碼裝置上,解決了單編碼裝置編碼負(fù)荷過重的問題;另外,通過采用DMA傳輸機(jī)制,并由編碼裝置來控制向傳輸裝置中對應(yīng)的DMA緩存發(fā)送打包數(shù)據(jù),使編碼裝置可以統(tǒng)一管理傳輸裝置中的DMA緩存中的隊列,不但能夠保證每個編碼裝置的碼流傳輸?shù)姆€(wěn)定性,而且還能夠?qū)崿F(xiàn)多線程并行處理碼流,進(jìn)而提高多媒體數(shù)據(jù)的處理效率。為了更加清楚地闡述上述實施例提供的方法,結(jié)合上述內(nèi)容,以如下實施例二為例,對處理多媒體數(shù)據(jù)的方法進(jìn)行舉例說明,詳見如下實施例二 實施例二本實施例提供了一種處理多媒體數(shù)據(jù)的方法,結(jié)合上述實施例一的內(nèi)容,為了便于說明,本實施例以兩個編碼裝置,一個傳輸裝置實現(xiàn)處理多媒體數(shù)據(jù)為例,對本實施例提供的方法進(jìn)行詳細(xì)地舉例說明。參見圖3,本實施例提供的方法流程具體如下
301 :兩個編碼裝置中的每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù);針對該步驟,編碼裝置對多媒體數(shù)據(jù)進(jìn)行編碼的方式可依據(jù)現(xiàn)有的編碼芯片對多媒體數(shù)據(jù)進(jìn)行編碼的方式實現(xiàn),本實施例對此不作具體限定。例如,每個編碼裝置對應(yīng)4路編碼通道,通過每路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到4路編碼數(shù)據(jù)。302 :每個編碼裝置將多路編碼數(shù)據(jù)打包,并將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的DMA緩存中;其中,DMA緩存為傳輸裝置中的DMA緩存,為了使每個編碼裝置能夠?qū)⒋虬鼣?shù)據(jù)傳輸至傳輸裝置,本實施例提供的方法中,可在傳輸裝置中分別設(shè)置與每個編碼裝置對應(yīng)的DMA緩存,也就是說,一個編碼裝置對應(yīng)傳輸裝置中的一個DMA緩存,編碼裝置的個數(shù)與傳輸裝置中DMA緩存的個數(shù)相同,以使不同編碼裝置將其打包數(shù)據(jù)發(fā)送至各自對應(yīng)的DMA緩存中。除此之外,還可在傳輸裝置處僅設(shè)置一個DMA緩存,并區(qū)分各個編碼裝置對應(yīng)該一個 DMA緩存中的哪部分,由此同樣能夠?qū)崿F(xiàn)編碼裝置將其打包數(shù)據(jù)發(fā)送至DMA緩存中的對應(yīng)位置。當(dāng)然,編碼裝置與DMA緩存的對應(yīng)關(guān)系還可以有其他方式,本實施例對此不作具體限定。具體地,每個編碼裝置將多路編碼打包時,采用的打包方式包括但不限于如下兩種方式中的一種第一種方式依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并將獲取到的每路編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包;針對該種方式,以編碼裝置有3路編碼通道為例,編碼裝置獲取第I路編碼通道編碼得到的編碼數(shù)據(jù),并將其打包成一個數(shù)據(jù)包,之后再獲取第2路編碼通道編碼得到的編碼數(shù)據(jù),并將其打包成一個數(shù)據(jù)包,之后再獲取第3路編碼通道編碼得到的編碼數(shù)據(jù),并將其打包成一個數(shù)據(jù)包?;蛘?,分別獲取3路編碼通道編碼得到的編碼數(shù)據(jù),再將獲取到的3路編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包。第二種方式依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。針對該種方式,其在依次獲取各路編碼通道輸出的編碼數(shù)據(jù)時,具體過程為如果一路編碼通道在獲取編碼數(shù)據(jù)時刻無編碼數(shù)據(jù)輸出,則立即跳到下一路編碼通道獲取編碼數(shù)據(jù);如果一路編碼通道在獲取編碼數(shù)據(jù)時刻有編碼數(shù)據(jù)輸出,則立即將該編碼數(shù)據(jù)取出;依次循環(huán)從各路編碼通道取數(shù)據(jù)。例如,當(dāng)編碼裝置存在3路編碼通道時,分別為通道I、通道2和通道3,先從通道I開始取數(shù)據(jù),如果通道I此時有編碼數(shù)據(jù),則獲取通道I中的編碼數(shù)據(jù),并跳到下一通道繼續(xù)開始獲取編碼數(shù)據(jù);如果通道I此時無編碼數(shù)據(jù),則立即跳到下一通道獲取編碼數(shù)據(jù);依次循環(huán)從3路通道中取編碼數(shù)據(jù),直到獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。具體閾值大小,可以為100兆,150兆或是其他數(shù)值,本實施例不對閾值大小進(jìn)行具體限定。進(jìn)一步地,編碼裝置將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的DMA緩存中時,可先查詢對應(yīng)的DMA緩存的空隊列,并獲取該空隊列的地址;根據(jù)該空隊列的地址將打包數(shù)據(jù)發(fā)送至對應(yīng)的DMA緩存的空隊列中,使該空隊列轉(zhuǎn)為數(shù)據(jù)隊列,數(shù)據(jù)隊列的地址與該空隊列的地址相同。當(dāng)然,除了上述發(fā)送方式外,編碼裝置還可以采用其他發(fā)送方式將打包數(shù)據(jù)發(fā)送至DMA緩存,本實施例不對將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的DMA緩存中的發(fā)送方式進(jìn)行具體限定。無論采用哪種打包方式得到打包數(shù)據(jù),以及采用哪種發(fā)送方式將其發(fā)送,針對上述第一種打包方式,編碼裝置在將獲取到的每路編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包之后,可即刻將其發(fā)送至傳輸裝置中對應(yīng)的DMA緩存中,由于在將每路編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包之后,即刻將其進(jìn)行發(fā)送,因而可保證每個編碼通道輸出的編碼數(shù)據(jù)能夠及時傳輸;針對上述第二種打包方式,編碼裝置在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包,再將其發(fā)送至傳輸裝置中對應(yīng)的DMA緩存中,由于編碼裝置是將達(dá)到閾值的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包進(jìn)行發(fā)送,因而實現(xiàn)了大塊數(shù)據(jù)的傳輸,不僅可以降低數(shù)據(jù)傳輸效率及傳輸次數(shù),還可降低因多次傳輸數(shù)據(jù)而浪費的CPU (Central Processing Unit,中央處理器)消耗。
303 :傳輸裝置獲取編碼裝置向傳輸裝置中對應(yīng)的DMA緩存發(fā)送的打包數(shù)據(jù);針對該步驟,傳輸裝置獲取編碼裝置向傳輸裝置中對應(yīng)的DMA緩存發(fā)送的打包數(shù)據(jù)的方式包括但不限于如下兩種方式中的一種;第一種方式傳輸裝置每隔預(yù)設(shè)周期主動獲取編碼裝置向傳輸裝置中對應(yīng)的DMA緩存發(fā)送的打包數(shù)據(jù);針對該種方式,以預(yù)設(shè)周期為5秒為例,傳輸裝置每隔5秒便從傳輸裝置中的DMA緩存中獲取數(shù)據(jù),以DMA緩存有10路隊列為例,10路隊列依次編號為I至10。傳輸裝置每隔5秒便遍歷一次DMA緩存中的所有隊列。如果傳輸裝置查詢到5號隊列為數(shù)據(jù)隊列,包含編碼裝置向傳輸裝置中對應(yīng)的DMA緩存發(fā)送的打包數(shù)據(jù),則立即將打包數(shù)據(jù)獲取并進(jìn)行拆解。其中,預(yù)設(shè)周期大小除上述的5秒外,還可以為其他大小,本實施例不對預(yù)設(shè)周期的具體大小進(jìn)行限定。第二種方式以預(yù)設(shè)的觸發(fā)條件觸發(fā)傳輸裝置被動獲取編碼裝置向傳輸裝置中對應(yīng)的DMA緩存發(fā)送的打包數(shù)據(jù);針對該種方式,以預(yù)設(shè)的觸發(fā)條件為編碼裝置將打包數(shù)據(jù)發(fā)送至對應(yīng)的DMA緩存的空隊列中之后,向傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,在該數(shù)據(jù)發(fā)送完畢通知中攜帶了數(shù)據(jù)隊列的地址為例,通過傳輸裝置接收該編碼裝置發(fā)送的數(shù)據(jù)發(fā)送完畢通知,觸發(fā)傳輸裝置根據(jù)該數(shù)據(jù)隊列的地址獲取對應(yīng)DMA緩存中數(shù)據(jù)隊列中的打包數(shù)據(jù)。其中,除以編碼裝置向傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知作為預(yù)設(shè)的觸發(fā)條件之外,還可以預(yù)設(shè)其他的觸發(fā)條件,本實施例不對觸發(fā)傳輸裝置被動獲取編碼裝置向傳輸裝置中對應(yīng)的DMA緩存發(fā)送的打包數(shù)據(jù)的觸發(fā)條件進(jìn)行限定。當(dāng)然,除了上述傳輸裝置獲取打包數(shù)據(jù)的兩種方式外,傳輸裝置還可以采用其他獲取方式獲取打包數(shù)據(jù),本實施例不對傳輸裝置獲取編碼裝置向傳輸裝置中對應(yīng)的DMA緩存發(fā)送打包數(shù)據(jù)的獲取方式進(jìn)行具體限定。304 :傳輸裝置對DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。針對該步驟,傳輸裝置通過上述步驟303獲取到打包數(shù)據(jù)后,將打包數(shù)據(jù)進(jìn)行拆解,具體拆解方式可按照現(xiàn)有的解包方式實現(xiàn),本實施例對此不做具體限定。無論采用哪種拆解方式對打包數(shù)據(jù)進(jìn)行拆解,均可拆解出各路編碼數(shù)據(jù),并將拆解后的各路編碼數(shù)據(jù)進(jìn)行傳輸,例如,將拆解后的數(shù)據(jù)傳輸至存儲空間進(jìn)行存盤處理或?qū)⑵溥M(jìn)行網(wǎng)絡(luò)傳輸。
進(jìn)一步地,傳輸裝置將拆解后的數(shù)據(jù)進(jìn)行傳輸后,存儲該拆解后的數(shù)據(jù)所對應(yīng)的打包數(shù)據(jù)的數(shù)據(jù)隊列可被釋放,進(jìn)而實現(xiàn)資源的重復(fù)利用。具體實現(xiàn)時,在傳輸裝置將拆解后的數(shù)據(jù)傳輸完畢后,由該傳輸裝置向?qū)?yīng)的編碼裝置發(fā)送數(shù)據(jù)傳輸完畢通知,且在該數(shù)據(jù)傳輸完畢通知中攜帶數(shù)據(jù)隊列的地址,以使編碼裝置根據(jù)該數(shù)據(jù)隊列的地址釋放對應(yīng)傳輸裝置中的DMA緩存的數(shù)據(jù)隊列,即使該數(shù)據(jù)隊列轉(zhuǎn)為空隊列,以便于后續(xù)重復(fù)利用。當(dāng)然,除上述傳輸裝置通知編碼裝置釋放數(shù)據(jù)隊列的方式外,還可以采取其他通知方式,本實施例對此不作具體限定。另外,由于每個編碼裝置對應(yīng)一個傳輸裝置中的DMA緩存,或是對應(yīng)一個DMA緩存中的一部分,因此,為了使傳輸裝置能夠明確當(dāng)前需釋放的數(shù)據(jù)隊列與哪個編碼 裝置相對應(yīng),本實施例提供的方法在上述步驟303中,由編碼裝置向傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知時,可通過該數(shù)據(jù)發(fā)送完畢通知攜帶發(fā)送打包數(shù)據(jù)的編碼裝置的標(biāo)識,以使傳輸裝置通過該標(biāo)識區(qū)分是哪一個編碼裝置向傳輸裝置發(fā)送了打包數(shù)據(jù),即當(dāng)前需釋放的數(shù)據(jù)隊列與哪個編碼裝置相對應(yīng)。編碼裝置的具體標(biāo)識,可以為編碼裝置的編號、MAC地址或其他標(biāo)識,本實施例不對編碼裝置的具體標(biāo)識進(jìn)行限定。以不同編碼裝置對應(yīng)不同編號,將編碼裝置的編號作為編碼裝置的標(biāo)識為例,編號為I的編碼裝置向傳輸裝置發(fā)送打包數(shù)據(jù)后,向傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,該數(shù)據(jù)發(fā)送完畢通知中除了攜帶存儲打包數(shù)據(jù)的數(shù)據(jù)隊列的地址外,還攜帶了發(fā)送該打包數(shù)據(jù)的編碼裝置的編號1,則傳輸裝置在將該數(shù)據(jù)隊列中的打包數(shù)據(jù)拆解傳輸之后,向編號為I的編碼裝置返回攜帶該數(shù)據(jù)隊列的地址的傳輸完畢通知,使編號為I的編碼裝置釋放數(shù)據(jù)傳輸完畢通知中攜帶的數(shù)據(jù)隊列的地址所對應(yīng)的數(shù)據(jù)隊列,即使數(shù)據(jù)隊列轉(zhuǎn)為空隊列,而該空隊列可在下次發(fā)送打包數(shù)據(jù)時繼續(xù)使用。需要說明的是,以上內(nèi)容僅以通過兩個編碼裝置與一個傳輸裝置實現(xiàn)處理多媒體數(shù)據(jù)為例進(jìn)行說明,實際應(yīng)用中,編碼裝置的數(shù)量還可以為其他個數(shù),具體可依據(jù)實際編碼需求進(jìn)行設(shè)置,本實施例不對編碼裝置的具體數(shù)量進(jìn)行限定。當(dāng)編碼裝置的數(shù)量為一個時,一個編碼裝置與一個傳輸裝置同樣能夠采用上述方法實現(xiàn)處理多媒體數(shù)據(jù),其具體實現(xiàn)過程與上述步驟301至步驟304的流程一致,此處不再贅述。本實施例提供的方法,通過采用多個編碼裝置與傳輸裝置級聯(lián)的方式,實現(xiàn)將多路視頻編碼分?jǐn)偟蕉鄠€編碼裝置上,解決了單編碼裝置編碼負(fù)荷過重的問題;另外,通過采用DMA傳輸機(jī)制,并由編碼裝置來控制向傳輸裝置中對應(yīng)的DMA緩存發(fā)送打包數(shù)據(jù),使編碼裝置可以統(tǒng)一管理傳輸裝置中的DMA緩存中的隊列,不但能夠保證每個編碼裝置的碼流傳輸?shù)姆€(wěn)定性,而且還能夠?qū)崿F(xiàn)多線程并行處理碼流,進(jìn)而提高多媒體數(shù)據(jù)的處理效率。實施例三本實施例提供了一種編碼裝置,該裝置用于執(zhí)行上述實施例一及實施例二提供的處理多媒體數(shù)據(jù)的方法中編碼裝置的功能,參見圖4,該裝置包括編碼模塊41,用于通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù);打包模塊42,用于將編碼模塊41編碼得到的多路編碼數(shù)據(jù)打包;第一發(fā)送模塊43,用于將打包模塊42得到的打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,由傳輸裝置對DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。
進(jìn)一步地,打包模塊42,具體用于依次獲取各個編碼通道輸出的編碼數(shù)據(jù),并將獲取到的每個編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包;或者,依次獲取各個編碼通道輸出的編碼數(shù)據(jù),并在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。參見圖5,第一發(fā)送模塊43,具體包括查詢單元431,用于查詢對應(yīng)的DMA緩存的空隊列;獲取單元432,用于獲取查詢單元431查詢到的空隊列的地址;發(fā)送單元433,用于根據(jù)獲取單元432獲取到的空隊列的地址將打包數(shù)據(jù)發(fā)送至對應(yīng)的DMA緩存的空隊列中,使空隊列轉(zhuǎn)為數(shù)據(jù)隊列,數(shù)據(jù)隊列的地址與空隊列的地址相同。
參見圖6,該裝置,還包括第二發(fā)送模塊44,用于向傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,數(shù)據(jù)發(fā)送完畢通知中攜帶了數(shù)據(jù)隊列的地址,使傳輸裝置根據(jù)數(shù)據(jù)隊列的地址拆解對應(yīng)的DMA緩存中的打包數(shù)據(jù)。參見圖7,該裝置,還包括接收模塊45,用于接收傳輸裝置將拆解后的數(shù)據(jù)傳輸后發(fā)送的數(shù)據(jù)傳輸完畢通知,數(shù)據(jù)傳輸完畢通知中攜帶了數(shù)據(jù)隊列的地址;釋放模塊46,用于根據(jù)接收模塊45接收到的數(shù)據(jù)隊列的地址釋放對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使數(shù)據(jù)隊列轉(zhuǎn)為空隊列。本實施例提供的編碼裝置,通過多個編碼裝置與傳輸裝置級聯(lián)的方式,實現(xiàn)將多路視頻編碼分?jǐn)偟蕉鄠€編碼裝置上,解決了單編碼裝置編碼負(fù)荷過重的問題;另外,通過采用DMA傳輸機(jī)制,并由編碼裝置來控制向傳輸裝置中對應(yīng)的DMA緩存發(fā)送打包數(shù)據(jù),使編碼裝置可以統(tǒng)一管理傳輸裝置中的DMA緩存中的隊列,不但能夠保證每個編碼裝置的碼流傳輸?shù)姆€(wěn)定性,而且還能夠?qū)崿F(xiàn)多線程并行處理碼流,進(jìn)而提高多媒體數(shù)據(jù)的處理效率。實施例四本實施例提供了一種傳輸裝置,該裝置用于執(zhí)行上述實施例一和實施例二提供的處理多媒體數(shù)據(jù)的方法中傳輸裝置執(zhí)行的功能。參見圖8,該裝置包括獲取模塊81,用于獲取多個編碼裝置中的每個編碼裝置向傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù);其中,打包數(shù)據(jù)為每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼得到多路編碼數(shù)據(jù)后,對多路編碼數(shù)據(jù)進(jìn)行打包得到的數(shù)據(jù);拆解模塊82,用于對獲取模塊81獲取到的DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解;傳輸模塊83,用于傳輸拆解模塊82拆解后的數(shù)據(jù)。參見圖9,該裝置,還包括接收模塊84,用于接收編碼裝置發(fā)送的數(shù)據(jù)發(fā)送完畢通知,該數(shù)據(jù)發(fā)送完畢通知中攜帶了對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址,該數(shù)據(jù)隊列中存儲了打包數(shù)據(jù);獲取模塊81,具體用于根據(jù)數(shù)據(jù)發(fā)送完畢通知中攜帶的對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址獲取多個編碼裝置中的每個編碼裝置向傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)。參見圖10,該裝置,還包括
發(fā)送模塊85,用于向?qū)?yīng)的編碼裝置發(fā)送數(shù)據(jù)傳輸完畢通知,該數(shù)據(jù)傳輸完畢通知中攜帶了數(shù)據(jù)隊列的地址,使編碼裝置根據(jù)該數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使數(shù)據(jù)隊列轉(zhuǎn)為空隊列。本實施例提供的傳輸裝置,通過多個編碼裝置與其級聯(lián)的方式,實現(xiàn)將多路視頻編碼分?jǐn)偟蕉鄠€編碼裝置上,解決了單編碼裝置編碼負(fù)荷過重的問題;另外,通過編碼裝置采用DMA傳輸機(jī)制,并由編碼裝置來控制向傳輸裝置中對應(yīng)的DMA緩存發(fā)送打包數(shù)據(jù),使編碼裝置可以統(tǒng)一管理傳輸裝置中的DMA緩存中的隊列,不但能夠保證每個編碼裝置的碼流傳輸?shù)姆€(wěn)定性,而且還能夠?qū)崿F(xiàn)多線程并行處理碼流,進(jìn)而提高多媒體數(shù)據(jù)的處理效率。實施例五本實施例提供了一種處理多媒體數(shù)據(jù)的系統(tǒng),參見圖11,該系統(tǒng)包括
多個編碼裝置1101及一個傳輸裝置1102 ;其中,編碼裝置1101如上述實施例三提供的編碼裝置;傳輸裝置1102如上述實施例四提供的傳輸裝置。本實施例提供的系統(tǒng),通過多個編碼裝置與傳輸裝置級聯(lián)的方式,實現(xiàn)將多路視頻編碼分?jǐn)偟蕉鄠€編碼裝置上,解決了單編碼裝置編碼負(fù)荷過重的問題;另外,通過采用DMA傳輸機(jī)制,并由編碼裝置來控制向傳輸裝置中對應(yīng)的DMA緩存發(fā)送打包數(shù)據(jù),使編碼裝置可以統(tǒng)一管理傳輸裝置中的DMA緩存中的隊列,不但能夠保證每個編碼裝置的碼流傳輸?shù)姆€(wěn)定性,而且還能夠?qū)崿F(xiàn)多線程并行處理碼流,進(jìn)而提高多媒體數(shù)據(jù)的處理效率。需要說明的是上述實施例提供的系統(tǒng)中,傳輸裝置可與一個編碼裝置級聯(lián),也可與多個編碼裝置級聯(lián),當(dāng)多個編碼裝置與傳輸裝置進(jìn)行級聯(lián)時,處理對媒體數(shù)據(jù)的方式詳見實施例二所述,此處不再贅述。上述實施例提供的編碼裝置和傳輸裝置在對多媒體數(shù)據(jù)進(jìn)行處理時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的編碼裝置、傳輸裝置、處理多媒體數(shù)據(jù)的系統(tǒng)與處理多媒體數(shù)據(jù)的方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種處理多媒體數(shù)據(jù)的方法,其特征在于,所述方法包括 多個編碼裝置中的每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù); 將所述多路編碼數(shù)據(jù)打包,并將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,由所述傳輸裝置對所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述將所述多路編碼數(shù)據(jù)打包,具體包括 依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并將獲取到的每路編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包; 或者,依次獲取各路編碼通道輸出的編碼數(shù)據(jù),并在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,具體包括 查詢所述對應(yīng)的DMA緩存的空隊列,并獲取所述空隊列的地址; 根據(jù)所述空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列,所述數(shù)據(jù)隊列的地址與所述空隊列的地址相同。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列之后,還包括 向所述傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帯了所述數(shù)據(jù)隊列的地址,使所述傳輸裝置根據(jù)所述數(shù)據(jù)隊列的地址拆解所述對應(yīng)的DMA緩存中的打包數(shù)據(jù)。
5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述根據(jù)所述空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列之后,還包括 接收所述傳輸裝置將拆解后的數(shù)據(jù)傳輸后發(fā)送的數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帯了所述數(shù)據(jù)隊列的地址; 根據(jù)所述數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。
6.一種編碼裝置,其特征在于,所述裝置包括 編碼模塊,用于通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù); 打包模塊,用于將所述編碼模塊編碼得到的多路編碼數(shù)據(jù)打包; 第一發(fā)送模塊,用于將所述打包模塊得到的打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,由所述傳輸裝置對所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述打包模塊,具體用于依次獲取各個編碼通道輸出的編碼數(shù)據(jù),并將獲取到的每個編碼通道輸出的編碼數(shù)據(jù)分別打包成一個數(shù)據(jù)包;或者,依次獲取各個編碼通道輸出的編碼數(shù)據(jù),并在獲取到的編碼數(shù)據(jù)的大小達(dá)到閾值后,將獲取到的編碼數(shù)據(jù)打包成一個數(shù)據(jù)包。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述第一發(fā)送模塊,具體包括 查詢單元,用于查詢所述對應(yīng)的DMA緩存的空隊列;獲取單元,用于獲取所述查詢単元查詢到的空隊列的地址; 發(fā)送單元,用于根據(jù)所述獲取單元獲取到的空隊列的地址將打包數(shù)據(jù)發(fā)送至所述對應(yīng)的DMA緩存的空隊列中,使所述空隊列轉(zhuǎn)為數(shù)據(jù)隊列,所述數(shù)據(jù)隊列的地址與所述空隊列的地址相同。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置,還包括 第二發(fā)送模塊,用于向所述傳輸裝置發(fā)送數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帯了所述數(shù)據(jù)隊列的地址,使所述傳輸裝置根據(jù)所述數(shù)據(jù)隊列的地址拆解所述對應(yīng)的DMA緩存中的打包數(shù)據(jù)。
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述裝置,還包括 接收模塊,用于接收所述傳輸裝置將拆解后的數(shù)據(jù)傳輸后發(fā)送的數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帯了所述數(shù)據(jù)隊列的地址; 釋放模塊,用于根據(jù)所述接收模塊接收到的數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。
11.一種處理多媒體數(shù)據(jù)的方法,其特征在于,所述方法包括 傳輸裝置獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù); 對所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù); 其中,所述打包數(shù)據(jù)為所述每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼得到多路編碼數(shù)據(jù)后,對所述多路編碼數(shù)據(jù)進(jìn)行打包得到的數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述傳輸裝置獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)之前,還包括 接收編碼裝置發(fā)送的數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帯了所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址,所述數(shù)據(jù)隊列中存儲了打包數(shù)據(jù); 所述傳輸裝置獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù),具體包括 根據(jù)所述數(shù)據(jù)發(fā)送完畢通知中攜帯的所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述傳輸拆解后的數(shù)據(jù)之后,還包括 向?qū)?yīng)的編碼裝置發(fā)送數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帯了所述數(shù)據(jù)隊列的地址,使所述編碼裝置根據(jù)所述數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。
14.一種傳輸裝置,其特征在于,所述裝置包括 獲取模塊,用于獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù);其中,所述打包數(shù)據(jù)為所述每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼得到多路編碼數(shù)據(jù)后,對所述多路編碼數(shù)據(jù)進(jìn)行打包得到的數(shù)據(jù); 拆解模塊,用于對所述獲取模塊獲取到的所述DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解;傳輸模塊,用于傳輸所述拆解模塊拆解后的數(shù)據(jù)。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述裝置,還包括 接收模塊,用于接收編碼裝置發(fā)送的數(shù)據(jù)發(fā)送完畢通知,所述數(shù)據(jù)發(fā)送完畢通知中攜帶了所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址,所述數(shù)據(jù)隊列中存儲了打包數(shù)據(jù); 所述獲取模塊,具體用于根據(jù)所述數(shù)據(jù)發(fā)送完畢通知中攜帯的所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列的地址獲取多個編碼裝置中的每個編碼裝置向所述傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存發(fā)送的打包數(shù)據(jù)。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述裝置,還包括 發(fā)送模塊,用于向?qū)?yīng)的編碼裝置發(fā)送數(shù)據(jù)傳輸完畢通知,所述數(shù)據(jù)傳輸完畢通知中攜帯了所述數(shù)據(jù)隊列的地址,使所述編碼裝置根據(jù)所述數(shù)據(jù)隊列的地址釋放所述對應(yīng)的DMA緩存的數(shù)據(jù)隊列,使所述數(shù)據(jù)隊列轉(zhuǎn)為空隊列。
17.—種處理多媒體數(shù)據(jù)的系統(tǒng),其特征在于,所述系統(tǒng)包括多個編碼裝置及ー個傳輸裝置; 其中,所述多個編碼裝置中的每個編碼裝置如所述權(quán)利要求6至10中任ー權(quán)利要求所述的編碼裝置;所述傳輸裝置如所述權(quán)利要求14至16中任ー權(quán)利要求所述的傳輸裝置。
全文摘要
本發(fā)明公開了一種處理多媒體數(shù)據(jù)的方法、裝置及系統(tǒng),屬于信息技術(shù)領(lǐng)域。所述方法包括多個編碼裝置中的每個編碼裝置通過多路編碼通道對多媒體數(shù)據(jù)進(jìn)行編碼,得到多路編碼數(shù)據(jù);將多路編碼數(shù)據(jù)打包,并將打包數(shù)據(jù)發(fā)送至傳輸裝置中對應(yīng)的直接內(nèi)存訪問DMA緩存中,由傳輸裝置對DMA緩存中的打包數(shù)據(jù)進(jìn)行拆解,并傳輸拆解后的數(shù)據(jù)。本發(fā)明通過采用多個編碼裝置與傳輸裝置級聯(lián)的方式,實現(xiàn)將多路視頻編碼分?jǐn)偟蕉鄠€編碼裝置上,可以解決單編碼裝置負(fù)荷過重的問題。通過采用DMA傳輸機(jī)制不但能夠保證每個編碼裝置的碼流傳輸?shù)姆€(wěn)定性,而且還能夠?qū)崿F(xiàn)多線程并行處理碼流。通過采用打包發(fā)送的方式,提升了DMA傳輸?shù)男剩档土薈PU的功耗。
文檔編號H04N7/24GK102801969SQ20121025884
公開日2012年11月28日 申請日期2012年7月25日 優(yōu)先權(quán)日2012年7月25日
發(fā)明者李昭早 申請人:華為技術(shù)有限公司