本發(fā)明涉及視頻拼接領(lǐng)域,具體涉及一種基于海思平臺的視頻拼接方法。
背景技術(shù):
視頻拼接墻是由多個(gè)顯示單元拼接在一起共同構(gòu)成一個(gè)大屏進(jìn)行顯示的應(yīng)用。傳統(tǒng)的視頻拼接處理器需要使用“解碼處理器+FPGA”的架構(gòu),其中解碼處理器實(shí)現(xiàn)視頻的解碼,而FPGA實(shí)現(xiàn)視頻裁剪、縮放和疊加算法。這樣的架構(gòu)成本高昂,另外,使用FPGA實(shí)現(xiàn)的疊加算法延時(shí)最低,但開發(fā)難度大,開發(fā)周期長。而若使用CPU實(shí)現(xiàn)則因視頻圖像數(shù)據(jù)量巨大,頻繁的拷貝、存儲以及運(yùn)算會增加CPU負(fù)擔(dān),導(dǎo)致CPU占用率高,無法再處理其他事務(wù)。
而隨著視頻處理技術(shù)的不斷發(fā)展,各類拼接墻用戶,諸如作戰(zhàn)中心、鐵路管理中心等客戶對大墻拼接效果也表露出較高的技術(shù)要求,譬如追求高實(shí)時(shí)性、疊加層數(shù)多以及低成本。CPU這樣的結(jié)構(gòu)顯然無法滿足用戶的需求,而高成本高開發(fā)投入的“解碼處理器+FPGA”也無法滿足用戶需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是解決現(xiàn)有技術(shù)的缺陷,提供一種能夠提高實(shí)時(shí)性、輕易實(shí)現(xiàn)視頻圖形疊加和縮放的視頻拼接方法,采用的技術(shù)方案如下:
一種基于海思平臺的視頻拼接方法,包括:
將一個(gè)畫面裁剪成N個(gè)小畫面;
對裁剪后的小畫面進(jìn)行縮放;
將縮放后的小畫面輸出到拼接墻上對應(yīng)的位置;
其特征在于,使用海思Hi3536芯片進(jìn)行以上操作。
進(jìn)一步地,當(dāng)有多個(gè)畫面疊加在一起時(shí),則分別對每個(gè)畫面進(jìn)行裁剪、縮放,然后分別輸出到拼接墻上對應(yīng)的位置。
假設(shè)有多個(gè)畫面疊加在一起,則對圖像分塊裁剪后分別在每個(gè)顯示單元上進(jìn)行疊加,這樣,多個(gè)顯示單元就共同顯示一幅完整的多層疊加畫面了。
進(jìn)一步地,本發(fā)明中,進(jìn)行視頻疊加時(shí)使用DMA方式進(jìn)行視頻像素拷貝。
視頻疊加操作其實(shí)是對多幅圖像進(jìn)行拷貝動作,海思Hi3536芯片提供DMA操作,能夠高效地對圖像像素?cái)?shù)據(jù)進(jìn)行拷貝,消耗極低CPU資源,即使對多個(gè)視頻進(jìn)行疊加,仍然能簡單地將該視頻直接拷貝到指定位置,并且疊加時(shí)間有足夠的余量,不會對幀率控制造成影響。 在海思Hi3536芯片說明有描述,在同一個(gè)視頻層中不能通道間疊加,而Hi3536芯片只有兩個(gè)高清視頻層,因此傳統(tǒng)的疊加方法只支持2層的1080p疊加,而本發(fā)明使用DMA方式進(jìn)行視頻像素拷貝,實(shí)現(xiàn)了16層1080p@30的疊加性能。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:
本發(fā)明在器件成本和開發(fā)周期上加以考慮,提供基于海思Hi3536芯片的視頻拼接方案,使用了海思的SOC內(nèi)部自帶的圖像處理引擎對視頻圖像的數(shù)學(xué)運(yùn)算和圖像操作提供硬件上的支持,能夠輕易實(shí)現(xiàn)縮放和疊加,同時(shí)海思SOC內(nèi)部自帶視頻解碼器資源,實(shí)現(xiàn)將視頻拼接處理器集成在一塊芯片上實(shí)現(xiàn),可不采用傳統(tǒng)的“解碼處理器+FPGA”結(jié)構(gòu)來實(shí)現(xiàn)視頻拼接。
附圖說明
圖1是本發(fā)明實(shí)施例的流程圖;
圖2是本發(fā)明實(shí)施例對圖像進(jìn)行裁剪的示意圖;
圖3是本發(fā)明實(shí)施例對2個(gè)畫面疊加情況下對圖像進(jìn)行裁剪的示意圖;
圖4是本發(fā)明實(shí)施例對16層視頻疊加的效果圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明做進(jìn)一步詳細(xì)說明。
如圖1所示,一種基于海思平臺的視頻拼接方法,包括:
將一個(gè)畫面裁剪成N個(gè)小畫面;
對裁剪后的小畫面進(jìn)行縮放;
將縮放后的小畫面輸出到拼接墻上對應(yīng)的位置,如圖2所示;
使用海思Hi3536芯片進(jìn)行以上操作。
進(jìn)一步地,當(dāng)有多個(gè)畫面疊加在一起時(shí),則分別對每個(gè)畫面進(jìn)行裁剪、縮放,然后分別輸出到拼接墻上對應(yīng)的位置。
假設(shè)有多個(gè)畫面疊加在一起,則對圖像分塊裁剪后分別在每個(gè)顯示單元上進(jìn)行疊加,這樣,多個(gè)顯示單元就共同顯示一幅完整的2層疊加畫面了,如圖3所示。
本實(shí)施例中,進(jìn)行視頻疊加時(shí)使用DMA方式進(jìn)行視頻像素拷貝。
視頻疊加操作其實(shí)是對多幅圖像進(jìn)行拷貝動作,海思Hi3536芯片提供DMA操作,能夠高效地對圖像像素?cái)?shù)據(jù)進(jìn)行拷貝,不會消耗CPU資源,即使對多個(gè)視頻進(jìn)行疊加,仍然能簡單地將該視頻直接拷貝到指定位置,本實(shí)施例測試能對16路1080p@30的視頻進(jìn)行實(shí)時(shí)疊加,如圖4所示。而且,疊加一幀只需18ms,效果良好,對于30幀/秒的視頻,其一幀時(shí)間間隔為1/30s = 33.33ms并且疊加時(shí)間有足夠的余量,不會對幀率控制造成影響。