一種基于dsp的多通道視頻流控制系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種基于DSP的多通道視頻流控制系統(tǒng)和方法,屬于編碼解碼技術(shù)領(lǐng) 域。
【背景技術(shù)】
[0002] 隨著市場(chǎng)需求視頻會(huì)議方數(shù)要求越來(lái)越多,采用基于FPGA視頻控制路數(shù)和開(kāi)發(fā)難 度成為了問(wèn)題。使用FPGA由于受到采集硬件接口限制,視頻的路數(shù)少;FPGA實(shí)現(xiàn)視頻縮放處 理開(kāi)發(fā)難度比較大,處理視頻疊圖比較容易出錯(cuò),處理內(nèi)存也比較復(fù)雜;FPGA成本相對(duì)比較 局。
【發(fā)明內(nèi)容】
[0003] 針對(duì)現(xiàn)有技術(shù),本發(fā)明的技術(shù)方案提供了一種基于DSP的多通道視頻流控制系統(tǒng) 和方法,利用DSP對(duì)數(shù)據(jù)處理優(yōu)勢(shì),提升視頻路數(shù)及解決FPGA處理視頻縮放及疊圖開(kāi)發(fā)難度 大問(wèn)題,減少了一塊FPGA降低了硬件成本。
[0004] 本發(fā)明的技術(shù)方案包括一種基于DSP的多通道視頻流控制系統(tǒng),其特征在于,該系 統(tǒng)包括解碼預(yù)處理模塊、通道參數(shù)模塊、編碼模塊、編碼發(fā)送模塊,其中:解碼預(yù)處理模塊用 于創(chuàng)建解碼通道對(duì)接入已解碼的數(shù)據(jù)帖進(jìn)行緩存,當(dāng)緩存數(shù)據(jù)帖達(dá)到預(yù)設(shè)值,啟用編碼模 塊;通道參數(shù)模塊用于對(duì)所述解碼模塊和編碼模塊進(jìn)行自定義設(shè)置解碼和編碼參數(shù),還用 于對(duì)所述解碼模塊和編碼模塊分配數(shù)據(jù)編碼緩存區(qū);編碼模塊用于根據(jù)所述通道參數(shù)模塊 所設(shè)置的解碼參數(shù)進(jìn)行編碼處理,進(jìn)而還包括對(duì)編碼輸出通道進(jìn)行申請(qǐng);編碼發(fā)送模塊用 于當(dāng)所述編碼模塊編碼完畢后對(duì)數(shù)據(jù)緩存區(qū)和數(shù)據(jù)帖的清理和重設(shè),還包括對(duì)編碼完成的 視頻流進(jìn)行發(fā)送。
[0005] 根據(jù)所述的基于DSP視頻流控制的系統(tǒng),所述的解碼預(yù)處理模塊包括:解碼數(shù)據(jù)接 收模塊,創(chuàng)建多個(gè)解碼數(shù)據(jù)通道對(duì)數(shù)據(jù)帖進(jìn)行接收,每個(gè)解碼數(shù)據(jù)通道創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)帖 鏈表存儲(chǔ)數(shù)據(jù)帖;解碼數(shù)據(jù)監(jiān)測(cè)模塊,用于對(duì)解碼通道進(jìn)行監(jiān)測(cè),當(dāng)解碼數(shù)據(jù)通道內(nèi)所存儲(chǔ) 的數(shù)據(jù)帖長(zhǎng)度超過(guò)解碼數(shù)據(jù)通道的長(zhǎng)度時(shí),釋放之前存儲(chǔ)的數(shù)據(jù)帖并接受最新存儲(chǔ)的數(shù)據(jù) 帖,還用于對(duì)解碼數(shù)據(jù)通道下數(shù)據(jù)帖緩存總量進(jìn)行監(jiān)測(cè),當(dāng)數(shù)據(jù)帖緩存總量超過(guò)預(yù)設(shè)值,貝U 將數(shù)據(jù)帖發(fā)送至所述編碼模塊。
[0006] 根據(jù)所述的基于DSP視頻流控制的系統(tǒng),所述的通道參數(shù)模塊包括:解碼通道參數(shù) 模塊,用于對(duì)解碼通道參數(shù)進(jìn)行設(shè)置,解碼通道參數(shù)設(shè)置包括解碼通道開(kāi)關(guān)設(shè)置、解碼數(shù)據(jù) 輸出通道設(shè)置、輸出通道編碼分辨率及輸出通道的起始坐標(biāo);編碼通道參數(shù)模塊,用于對(duì)編 碼通道參數(shù)進(jìn)行設(shè)置,編碼通道參數(shù)設(shè)置包括編碼通道唯一標(biāo)識(shí)、編碼寬度和編碼高度;緩 存區(qū)分配模塊,用于對(duì)所述解碼預(yù)處理模塊和編碼模塊進(jìn)行分配對(duì)應(yīng)的數(shù)據(jù)緩存區(qū)。
[0007] 根據(jù)所述的基于DSP視頻流控制的系統(tǒng),所述的編碼模塊包括:預(yù)處理模塊,用于 接收所述解碼預(yù)處理模塊發(fā)送的緩存數(shù)據(jù)帖,并根據(jù)所述通道參數(shù)模塊分配對(duì)應(yīng)的數(shù)據(jù)緩 存區(qū)對(duì)數(shù)據(jù)帖進(jìn)行存儲(chǔ);視頻編碼模塊,用于對(duì)所述預(yù)處理存儲(chǔ)的數(shù)據(jù)帖進(jìn)行編碼,根據(jù)所 述通道參數(shù)模塊設(shè)置的參數(shù)對(duì)數(shù)據(jù)帖進(jìn)行縮放和疊圖處理,并將處理后的數(shù)據(jù)帖使用DMA 拷貝方式拷貝至視頻編碼緩沖區(qū)。
[0008] 根據(jù)所述的基于DSP視頻流控制的系統(tǒng),所述的編碼發(fā)送模塊包括:釋放模塊,用 于當(dāng)所述編碼模塊完成所有編碼通道的數(shù)據(jù)帖時(shí),對(duì)數(shù)據(jù)帖及視頻編碼緩存區(qū)域的數(shù)據(jù)進(jìn) 行釋放,還包括對(duì)緩存區(qū)的重新設(shè)置;發(fā)送模塊,對(duì)所示編碼模塊完成數(shù)據(jù)帖的編碼時(shí),對(duì) 編碼完成的數(shù)據(jù)帖發(fā)送至下一個(gè)處理系統(tǒng)進(jìn)行處理。
[0009] 本發(fā)明的技術(shù)方案還包括一種基于DSP的多通道視頻流控制方法,其特征在于,該 方法包括:創(chuàng)建解碼通道對(duì)接入已解碼的數(shù)據(jù)帖進(jìn)行緩存,當(dāng)緩存數(shù)據(jù)帖達(dá)到預(yù)設(shè)值,啟用 編碼模塊;對(duì)所述解碼模塊和編碼模塊進(jìn)行自定義設(shè)置解碼和編碼參數(shù),還用于對(duì)所述解 碼模塊和編碼模塊分配數(shù)據(jù)編碼緩存區(qū);根據(jù)所述通道參數(shù)模塊所設(shè)置的解碼參數(shù)進(jìn)行編 碼處理,進(jìn)而還包括對(duì)編碼輸出通道進(jìn)行申請(qǐng);當(dāng)所述編碼模塊編碼完畢后對(duì)數(shù)據(jù)緩存區(qū) 和數(shù)據(jù)帖的清理和重設(shè),還包括對(duì)編碼完成的視頻流進(jìn)行發(fā)送。
[0010] 進(jìn)一步,該方法還包括:創(chuàng)建多個(gè)解碼數(shù)據(jù)通道對(duì)數(shù)據(jù)帖進(jìn)行接收,每個(gè)解碼數(shù)據(jù) 通道創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)帖鏈表存儲(chǔ)數(shù)據(jù)帖;對(duì)解碼通道進(jìn)行監(jiān)測(cè),當(dāng)解碼數(shù)據(jù)通道內(nèi)所存儲(chǔ) 的數(shù)據(jù)帖長(zhǎng)度超過(guò)解碼數(shù)據(jù)通道的長(zhǎng)度時(shí),釋放之前存儲(chǔ)的數(shù)據(jù)帖并接受最新存儲(chǔ)的數(shù)據(jù) 帖,還用于對(duì)解碼數(shù)據(jù)通道下數(shù)據(jù)帖緩存總量進(jìn)行監(jiān)測(cè),當(dāng)數(shù)據(jù)帖緩存總量超過(guò)預(yù)設(shè)值,貝U 將數(shù)據(jù)帖發(fā)送至所述編碼模塊。
[0011] 進(jìn)一步,該方法還包括:對(duì)解碼通道參數(shù)進(jìn)行設(shè)置,解碼通道參數(shù)設(shè)置包括解碼通 道開(kāi)關(guān)設(shè)置、解碼數(shù)據(jù)輸出通道設(shè)置、輸出通道編碼分辨率及輸出通道的起始坐標(biāo);對(duì)編碼 通道參數(shù)進(jìn)行設(shè)置,編碼通道參數(shù)設(shè)置包括編碼通道唯一標(biāo)識(shí)、編碼寬度和編碼高度;對(duì)所 述解碼預(yù)處理模塊和編碼模塊進(jìn)行分配對(duì)應(yīng)的數(shù)據(jù)緩存區(qū)。
[0012] 進(jìn)一步,該方法還包括:接收所述解碼預(yù)處理模塊發(fā)送的緩存數(shù)據(jù)帖,并根據(jù)所述 通道參數(shù)模塊分配對(duì)應(yīng)的數(shù)據(jù)緩存區(qū)對(duì)數(shù)據(jù)帖進(jìn)行存儲(chǔ);對(duì)所述預(yù)處理存儲(chǔ)的數(shù)據(jù)帖進(jìn)行 編碼,根據(jù)所述通道參數(shù)模塊設(shè)置的參數(shù)對(duì)數(shù)據(jù)帖進(jìn)行縮放和疊圖處理,并將處理后的數(shù) 據(jù)帖使用DMA拷貝方式拷貝至視頻編碼緩沖區(qū)。
[0013] 進(jìn)一步,該方法還包括:當(dāng)所述編碼模塊完成所有編碼通道的數(shù)據(jù)帖時(shí),對(duì)數(shù)據(jù)帖 及視頻編碼緩存區(qū)域的數(shù)據(jù)進(jìn)行釋放,還包括對(duì)緩存區(qū)的重新設(shè)置;對(duì)所示編碼模塊完成 數(shù)據(jù)帖的編碼時(shí),對(duì)編碼完成的數(shù)據(jù)帖發(fā)送至下一個(gè)處理系統(tǒng)進(jìn)行處理。
[0014] 本發(fā)明的有益效果為:對(duì)單板視頻路數(shù)進(jìn)行了提升,降低了硬件價(jià)格,降低了開(kāi)發(fā) 難度。
【附圖說(shuō)明】
[0015] 圖Ia所示為根據(jù)本發(fā)明實(shí)施方式的非DSP技術(shù)裝置結(jié)構(gòu)圖; 圖化所示為根據(jù)本發(fā)明實(shí)施方式的DSP技術(shù)裝置結(jié)構(gòu)圖; 圖2所示為根據(jù)本發(fā)明實(shí)施方式的DSP系統(tǒng)總體結(jié)構(gòu)圖; 圖3所示為根據(jù)本發(fā)明實(shí)施方式的數(shù)據(jù)流圖; 圖4所示為根據(jù)本發(fā)明實(shí)施方式的內(nèi)部交互圖。
【具體實(shí)施方式】
[0016] 為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì) 本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明的基于DSP的多通道視頻流控制系統(tǒng)和方法適用于視頻處理 的處理器開(kāi)發(fā)。
[0017] 圖Ia和Ib分別展示了非DSP方案的裝置,W及有DSP方案的裝置,其中DDR(動(dòng)態(tài)隨 機(jī)存儲(chǔ)器)、flash(閃存,即存儲(chǔ)單元)、ethphy(物理層動(dòng)態(tài)接口,即網(wǎng)口)為存儲(chǔ)單元, DM8186和DM6467為忍片類型,A8、DSP、M3為處理器,使用本發(fā)明的DSP方案的裝置與未使用 DSP方案的裝置具有W下區(qū)別: 1.使用了 DSP方案提升了單板視頻路數(shù),未使用DSP方案,720p路數(shù)只能達(dá)到4路,但是 使用DSP方案720P能夠達(dá)到16路。
[001引2.降低硬件成本。
[0019] 3.降低開(kāi)發(fā)難度。未使用DSP方案,四個(gè)DM6467同時(shí)工作,需要協(xié)同工作,上層業(yè)務(wù) 控制相對(duì)比較復(fù)雜;FPGA處理疊圖方面,F(xiàn)PGA內(nèi)存處理時(shí)要考慮內(nèi)存同步、考慮時(shí)隙對(duì)齊、 還要考慮FPGA編譯布線,而DSP疊圖操作簡(jiǎn)單,打吾言通用的拷貝處理就可W實(shí)現(xiàn);縮放處理 方面,F(xiàn)PGA算法用硬件語(yǔ)言實(shí)現(xiàn)比較復(fù)雜,而用DSP處理比較簡(jiǎn)單。
[0020] 圖2所示為根據(jù)本發(fā)明實(shí)施方式的DSP系統(tǒng)總體結(jié)構(gòu)圖。DM8168忍片包含多個(gè)核, A8、VPSSM3、VideoM3和DSP四個(gè)處理器。A8用于處理上層業(yè)務(wù)及收發(fā)碼流,并將碼流送給 VideoM3解碼,VideoM3將解完的送給DSP做縮放及疊圖處理,處理完成后再送給VideoM3編 碼,編碼完成后送給A8發(fā)送出去。實(shí)現(xiàn)過(guò)程如(1)-(4)所示: (1)分別給各個(gè)解碼器和編碼器分配碼流空間; (2 )DSP接收上層對(duì)各個(gè)解碼和編碼通道參數(shù)設(shè)置; (3) 獲取編碼和解碼通道的碼流,根據(jù)對(duì)應(yīng)通道配置做