專利名稱:多處理器視頻處理系統(tǒng)及其中的視頻圖像同步傳輸與顯示方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻處理領(lǐng)域,特別涉及一種多CPU視頻處理技術(shù)。
背景技術(shù):
在多CPU視頻處理系統(tǒng)中,非壓縮視頻數(shù)據(jù)的實(shí)時(shí)傳輸往往是造成系統(tǒng)性能瓶頸的關(guān)鍵環(huán)節(jié)。對(duì)于視頻拼接控制這種以數(shù)據(jù)傳輸為核心的應(yīng)用而言,往往采用“通用CPU和專用處理芯片”的系統(tǒng)結(jié)構(gòu),其中專用處理芯片專注于處理數(shù)據(jù)接收和處理,以保證處理的實(shí)時(shí)性?,F(xiàn)有技術(shù)中,中國(guó)專利申請(qǐng)公布號(hào)為CN 101986258A公布了一種用于視頻拼接的 “通用CPU和專用處理芯片”的系統(tǒng)結(jié)構(gòu)的技術(shù)方案,但本發(fā)明的發(fā)明人發(fā)現(xiàn),該發(fā)明專利雖然能在“通用CPU+專用處理芯片”這種系統(tǒng)結(jié)構(gòu)中實(shí)現(xiàn),卻無法在對(duì)等多CPU系統(tǒng)對(duì)等星型結(jié)構(gòu)中實(shí)現(xiàn)。所以,亟待一種在多CPU系統(tǒng)對(duì)等結(jié)構(gòu)的視頻處理技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種多處理器視頻處理系統(tǒng)及其中的視頻圖像同步傳輸與顯示方法,在每組內(nèi)存區(qū)域中分別設(shè)置讀、寫信息包及相應(yīng)讀寫標(biāo)識(shí)可以判斷該內(nèi)存區(qū)域中的兩個(gè)緩沖區(qū)的狀態(tài),避免顯示單元緩沖區(qū)重寫重讀和解碼單元重發(fā)等冗余操作,便于顯示單元顯示和解碼單元圖像數(shù)據(jù)傳輸間的并行操作,當(dāng)傳輸大容量視頻圖像時(shí),采用該方法的多處理器視頻處理系統(tǒng)可以實(shí)現(xiàn)視頻圖像的同步傳輸與無縫拼接同步顯示。為解決上述技術(shù)問題,本發(fā)明的實(shí)施方式公開了一種多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法,該系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí);每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元;顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入,顯示單元對(duì)應(yīng)的讀信息包可供本顯示單元讀取和寫入,顯示單元對(duì)應(yīng)的寫信息包對(duì)于本顯示單元是只讀的。包括以下步驟解碼單元生成一幀非壓縮圖像,并對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元分別執(zhí)行如下步驟如果顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)等于寫標(biāo)識(shí),則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸將屬于該顯示單元的圖像發(fā)送到該寫標(biāo)識(shí)指示的空閑緩沖區(qū)并將寫標(biāo)識(shí)取反,否則等待,直到讀標(biāo)識(shí)等于寫標(biāo)識(shí);各顯示單元根據(jù)顯示刷新頻率查詢對(duì)應(yīng)的讀標(biāo)識(shí)和寫標(biāo)識(shí),如果讀標(biāo)識(shí)不等于寫標(biāo)識(shí),則將讀標(biāo)識(shí)指示的緩沖區(qū)作為下次顯示的源數(shù)據(jù)的存儲(chǔ)區(qū),并將讀標(biāo)識(shí)設(shè)置為與寫標(biāo)識(shí)相同的值。本發(fā)明的實(shí)施方式還公開了一種視頻圖像同步顯示方法,所述多處理器視頻處理系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí);每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元;對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的, 顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入,顯示單元對(duì)應(yīng)的讀信息包可供本顯示單元讀取和寫入,顯示單元對(duì)應(yīng)的寫信息包對(duì)于本顯示單元是只讀的。該多處理器視頻處理系統(tǒng)還包括具有若干同步通道的同步傳輸模塊;該同步傳輸模塊采用的所述方法包括以下步驟遍歷每一個(gè)同步通道,如果當(dāng)前同步通道已使能,則對(duì)該同步通道所對(duì)應(yīng)的每一個(gè)顯示單元執(zhí)行以下步驟如果需要向顯示單元發(fā)送圖像,且該顯示單元對(duì)應(yīng)的內(nèi)存區(qū)域中有空閑緩沖區(qū), 則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸,將圖像發(fā)送到該顯示單元的空閑緩沖區(qū);如果當(dāng)前同步通道的所有圖像都已發(fā)送,則發(fā)送當(dāng)前同步通道的同步信息包,并去使能當(dāng)前同步通道。本發(fā)明的實(shí)施方式還公開了一種采用視頻圖像同步傳輸與顯示方法的多處理器視頻處理系統(tǒng),該系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí);每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元;顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入,顯示單元對(duì)應(yīng)的讀信息包可供本顯示單元讀取和寫入,顯示單元對(duì)應(yīng)的寫信息包對(duì)于本顯示單元是只讀的。解碼單元,用于生成一幀非壓縮圖像,并對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元分別執(zhí)行如下步驟如果顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)等于寫標(biāo)識(shí),則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸將屬于該顯示單元的圖像發(fā)送到該寫標(biāo)識(shí)指示的空閑緩沖區(qū)并將寫標(biāo)識(shí)取反,否則等待,直到讀標(biāo)識(shí)等于寫標(biāo)識(shí);顯示單元,用于根據(jù)顯示刷新頻率查詢對(duì)應(yīng)的讀標(biāo)識(shí)和寫標(biāo)識(shí),如果讀標(biāo)識(shí)不等于寫標(biāo)識(shí),則將讀標(biāo)識(shí)指示的緩沖區(qū)作為下次顯示的源數(shù)據(jù)的存儲(chǔ)區(qū),并將讀標(biāo)識(shí)設(shè)置為與寫標(biāo)識(shí)相同的值。本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于通過設(shè)置ping-pang 緩沖區(qū)及其信息包和其中的讀寫標(biāo)識(shí),實(shí)現(xiàn)顯示單元的緩沖區(qū)的狀態(tài)同步、透明地呈現(xiàn)給數(shù)據(jù)發(fā)送端?;趯?duì)等多CPU系統(tǒng)和PCIE總線技術(shù),設(shè)計(jì)并實(shí)現(xiàn)一種同步傳輸協(xié)議,使得可自由配置的視頻拼接功能得以實(shí)現(xiàn),并保證畫面的同步性。在每組內(nèi)存區(qū)域中分別設(shè)置讀、寫信息包及相應(yīng)讀寫標(biāo)識(shí)可以判斷該內(nèi)存區(qū)域中的兩個(gè)緩沖區(qū)的狀態(tài),避免顯示單元緩沖區(qū)重寫重讀和解碼單元重發(fā)等冗余操作,便于顯示單元顯示和解碼單元圖像數(shù)據(jù)傳輸間的并行操作,當(dāng)傳輸大容量視頻圖像時(shí),采用該方法的多處理器視頻處理系統(tǒng)可以實(shí)現(xiàn)視頻圖像的同步傳輸與無縫拼接同步顯示。同步信息包在顯示單元接收到當(dāng)前同步通道的所有圖像數(shù)據(jù)之后接收,可以使顯示單元同步顯示圖像數(shù)據(jù)。進(jìn)一步地,解碼單元進(jìn)行M*N(M、N為正整數(shù))拼接顯示設(shè)置時(shí),可以根據(jù)視頻幀圖像的大小和其所對(duì)應(yīng)的內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)的地址及其大小,選擇相應(yīng)的顯示單元及其個(gè)數(shù)。進(jìn)一步地,信息包中圖像緩沖區(qū)的地址相對(duì)于信息頭采用偏移量形式,使得數(shù)據(jù)傳輸方式無論是PCIE總線傳輸還是本地內(nèi)存拷貝,都可以靈活處理緩沖區(qū)地址。如果是絕對(duì)物理地址,則可以通過PCIE總線單獨(dú)作一次轉(zhuǎn)換,如果是相對(duì)地址,因?yàn)樾畔㈩^地址已被計(jì)算過,所以不需要通過系統(tǒng)調(diào)用重新計(jì)算緩沖區(qū)的位置,而直接在信息頭地址加上偏移量就可以知道緩沖區(qū)的地址。進(jìn)一步地,調(diào)用PCIE總線或通過本地傳輸將圖像發(fā)送到該顯示單元的空閑緩沖區(qū),可以充分利用本地顯示單元和PCIE總線連接的顯示單元資源,當(dāng)需要M*N拼接時(shí),大大提高了顯示單元的利用率。進(jìn)一步地,當(dāng)同步傳輸模塊中的所有同步通道都未使能或者所述顯示單元未查詢到空閑緩沖區(qū),同步傳輸模塊休眠1ms。
圖1 (a)是本發(fā)明第一實(shí)施方式中一種多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法的流程示意圖;圖1 (b)是本發(fā)明第一實(shí)施方式中一種多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法的流程示意圖;圖2是本發(fā)明第二實(shí)施方式中一種多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法的流程示意圖;圖3是本發(fā)明第三實(shí)施方式中一種視頻圖像同步顯示方法的流程示意圖;圖4是本發(fā)明第四實(shí)施方式中一種視頻圖像同步顯示方法的流程示意圖;圖5是本發(fā)明第四實(shí)施方式中一種視頻圖像同步顯示方法的的信息包讀寫標(biāo)識(shí)和緩沖區(qū)的狀態(tài)轉(zhuǎn)移表的示意圖;圖6(a)是本發(fā)明第五實(shí)施方式中一種視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)的結(jié)構(gòu)示意圖;圖6(b)是本發(fā)明第五實(shí)施方式中一種視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)的解碼單元與顯示單元數(shù)據(jù)傳輸?shù)慕Y(jié)構(gòu)示意圖;圖6(c)是本發(fā)明第五實(shí)施方式中一種視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)的處理器結(jié)構(gòu)示意圖;圖7是本發(fā)明第六實(shí)施方式中一種視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)的結(jié)構(gòu)及相應(yīng)數(shù)據(jù)流示意圖;圖8是本發(fā)明第六實(shí)施方式中一種視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式在以下的敘述中,為了使讀者更好地理解本申請(qǐng)而提出了許多技術(shù)細(xì)節(jié)。但是,本領(lǐng)域的普通技術(shù)人員可以理解,即使沒有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請(qǐng)各權(quán)利要求所要求保護(hù)的技術(shù)方案。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明第一實(shí)施方式涉及一種多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法。圖1(a)和圖1(b)是該多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法的流程示意圖。該多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法,該系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí)。每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元。顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入,顯示單元對(duì)應(yīng)的讀信息包可供本顯示單元讀取和寫入,顯示單元對(duì)應(yīng)的寫信息包對(duì)于本顯示單元是只讀的。在每組內(nèi)存區(qū)域中分別設(shè)置讀、寫信息包及相應(yīng)讀寫標(biāo)識(shí)可以判斷該內(nèi)存區(qū)域中的兩個(gè)緩沖區(qū)的狀態(tài),避免顯示單元緩沖區(qū)重寫重讀和解碼單元重發(fā)等冗余操作,便于顯示單元顯示和解碼單元圖像數(shù)據(jù)傳輸間的并行操作,當(dāng)傳輸大容量視頻圖像時(shí),采用該方法的多處理器視頻處理系統(tǒng)可以實(shí)現(xiàn)視頻圖像的同步傳輸與無縫拼接同步顯示。其中,視頻拼接又稱大屏拼接,或拼接顯示,即通過多個(gè)顯示器顯示一幅圖像,每個(gè)顯示器只顯示圖像的一部分,多個(gè)顯示器按次序排列起來構(gòu)成一幅完整的畫面。通過設(shè)置ping-pang緩沖及雙信息包及其讀寫標(biāo)識(shí),實(shí)現(xiàn)大量視頻數(shù)據(jù)的同步傳輸,使得在多CPU架構(gòu)中的視頻拼接得以實(shí)現(xiàn)。具體地說,如圖1(a)和圖1(b)所示,該多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法包括以下步驟如圖1(a)所示在步驟IaOl中,解碼單元生成一幀非壓縮圖像,并對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元分別執(zhí)行如下步驟Ia02、la03、la04和la05 此后進(jìn)入步驟la02,解碼單元判斷各個(gè)顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)是否等于寫標(biāo)識(shí)。若讀標(biāo)識(shí)等于寫標(biāo)識(shí),則進(jìn)入步驟la03 ;否則,返回步驟la02,繼續(xù)判斷各個(gè)顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)是否等于寫標(biāo)識(shí),直到讀標(biāo)識(shí)等于寫標(biāo)識(shí)時(shí)進(jìn)入步驟la03。在步驟la03中,如果顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)等于寫標(biāo)識(shí),則表示寫標(biāo)識(shí)指示的緩沖區(qū)為空閑狀態(tài),此時(shí)解碼單元調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸將屬于該顯示單元的圖像發(fā)送到該寫標(biāo)識(shí)指示的空閑緩沖區(qū)。基于PCIE總線技術(shù),在傳輸帶寬上滿足視頻數(shù)據(jù)的最大傳輸需求,設(shè)計(jì)并實(shí)現(xiàn)一種同步協(xié)議,使得視頻拼接控制這類應(yīng)用可以在多CPU系統(tǒng)中實(shí)現(xiàn)。總線和接口標(biāo)準(zhǔn)(Peripheral Component Interconnection Express,簡(jiǎn)稱 “PCIE” 或 “PCI-E”),是由 Interl (英特爾)公司提出的一種總線標(biāo)準(zhǔn),時(shí)鐘頻率為2. 5G或5. 0G,采用雙向串行傳輸方式,并且支持點(diǎn)對(duì)點(diǎn)傳輸,數(shù)據(jù)傳輸能力比PCI總線大大提高。此后進(jìn)入步驟la04,解碼單元將寫標(biāo)識(shí)取反。作為本發(fā)明的一個(gè)優(yōu)選實(shí)施例,解碼單元將每個(gè)寫標(biāo)識(shí)取反的步驟包括將取反后的寫標(biāo)識(shí)重新寫入對(duì)應(yīng)顯示單元的寫信息包寫標(biāo)識(shí)中。此后進(jìn)入步驟la05,解碼單元判斷生成的該幀圖像是否全部發(fā)送完畢。若沒有發(fā)送完畢,則返回步驟la02,繼續(xù)判斷各個(gè)顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)是否等于寫標(biāo)識(shí);若全部發(fā)送完畢,則結(jié)束本流程。在本法明的其他某些實(shí)施例中,上述步驟la05可以不進(jìn)行,只要解碼單元將該幀視頻幀圖像發(fā)送完畢,所有顯示單元會(huì)同時(shí)收到新數(shù)據(jù)即可,此后結(jié)束本流程。同時(shí),若上述步驟la05不進(jìn)行,步驟la02、la03、la04則表示能將該幀圖像全部執(zhí)行相應(yīng)操作,與該解碼單元對(duì)應(yīng)的顯示單元會(huì)同時(shí)接收到視頻圖像新數(shù)據(jù)。如圖1(b)所示在步驟IbOl中,各顯示單元根據(jù)顯示刷新頻率查詢對(duì)應(yīng)的讀標(biāo)識(shí)和寫標(biāo)識(shí)。此后進(jìn)入步驟lb02,各顯示單元判斷查詢到的讀標(biāo)識(shí)和寫標(biāo)識(shí)是否相等。若讀標(biāo)識(shí)不等于寫標(biāo)識(shí),則進(jìn)入步驟lb03 ;否則,進(jìn)入步驟lb05。在步驟lb03中,如果讀標(biāo)識(shí)不等于寫標(biāo)識(shí),則顯示單元將讀標(biāo)識(shí)指示的緩沖區(qū)作為下次顯示的源數(shù)據(jù)的存儲(chǔ)區(qū)。此后進(jìn)入步驟lb04,顯示單元同時(shí)將讀標(biāo)識(shí)設(shè)置為與寫標(biāo)識(shí)相同的值,此后結(jié)束本流程。在步驟lb05中,如果讀標(biāo)識(shí)等于寫標(biāo)識(shí),則表示讀標(biāo)識(shí)指示的緩沖區(qū)沒有待顯示的新數(shù)據(jù),該顯示單元重復(fù)輸出上次輸出的圖像數(shù)據(jù),此后結(jié)束本流程。本發(fā)明第二實(shí)施方式涉及一種多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法。圖2是該多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法的流程示意圖。第二實(shí)施方式在第一實(shí)施方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于解碼單元進(jìn)行M*N(M、N為正整數(shù))拼接顯示設(shè)置時(shí),可以根據(jù)視頻幀圖像的大小和其所對(duì)應(yīng)的內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)的地址及其大小,選擇相應(yīng)的顯示單元及其個(gè)數(shù)。信息包中圖像緩沖區(qū)的地址相對(duì)于信息頭采用偏移量形式,使得數(shù)據(jù)傳輸方式無論是PCIE傳輸還是本地內(nèi)存拷貝,都可以靈活處理緩沖區(qū)地址;如果絕對(duì)物理地址,則可以通過PCIE單獨(dú)作一次轉(zhuǎn)換,如果是相對(duì)地址,因?yàn)樾畔㈩^地址已被計(jì)算過,所以不需要通過系統(tǒng)調(diào)用重新計(jì)算緩沖區(qū)的位置,直接在信息頭地址加上偏移量就可以知道緩沖區(qū)的地址。具體地說讀信息包和寫信息包中還包括視頻幀圖像大小、該讀信息包和寫信息包所在內(nèi)存區(qū)域中的兩個(gè)緩沖區(qū)地址及其緩沖區(qū)大小。讀信息包、寫信息包中對(duì)應(yīng)內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)地址采用偏移量形式。在上述解碼單元對(duì)其所對(duì)應(yīng)的各顯示單元執(zhí)行視頻圖像同步傳輸?shù)牟襟E之前,還包括如圖2所示的系統(tǒng)初始化的步驟在步驟201中,多處理器視頻處理系統(tǒng)在各顯示單元所在的處理器內(nèi)存空間上分別設(shè)置一組內(nèi)存區(qū)域。此后進(jìn)入步驟202,多處理器視頻處理系統(tǒng)中的主處理器通知各顯示單元所在的處理器啟動(dòng)各個(gè)顯示單元。
此后進(jìn)入步驟203,各顯示單元所在的處理器初始化一組內(nèi)存區(qū)域中的讀標(biāo)識(shí)和寫標(biāo)識(shí),并標(biāo)識(shí)該組內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)為空閑狀態(tài)。此后進(jìn)入步驟204,初始化一組內(nèi)存區(qū)域中的讀標(biāo)識(shí)和寫標(biāo)識(shí)并標(biāo)識(shí)該組內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)為空閑狀態(tài)之后,各顯示單元所在的處理器返回各顯示單元的地址至主處理器。此后進(jìn)入步驟205,主處理器將各顯示單元的地址轉(zhuǎn)化為PCIE總線地址空間的地址。該系統(tǒng)中包括通過以PCIE總線連接的多個(gè)處理器,其中一個(gè)處理器兼為主處理器;兼為主處理器的處理器既可以是參與同步傳輸與拼接顯示的多處理器之一,也可以是另外獨(dú)立的一顆處理器。該臺(tái)兼任主處理器的處理器,作為主處理器時(shí),它只負(fù)責(zé)發(fā)送命令,不參與功能實(shí)現(xiàn);不作為主處理器時(shí),只參與功能實(shí)現(xiàn),不進(jìn)行命令發(fā)送。其中,該兼任主處理器的處理器與其它處理器的連接既可以通過PCIE,也可以通過網(wǎng)絡(luò)等其它方式進(jìn)行連接。此后進(jìn)入步驟206,主處理器通知解碼單元的處理器設(shè)置并啟動(dòng)其輸出端口,此后進(jìn)入上述解碼單元對(duì)其所對(duì)應(yīng)的各顯示單元執(zhí)行視頻圖像同步傳輸?shù)牟襟E。其中,解碼單元的處理器設(shè)置輸出端口的端口信息包括所述各顯示單元的PCIE總線地址空間地址、顯示畫面大小及其在原始幀圖像中的位置、原始幀圖像的區(qū)域大小。本發(fā)明第三實(shí)施方式涉及一種視頻圖像同步顯示方法。所述多處理器視頻處理系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí);每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元;顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入,顯示單元對(duì)應(yīng)的讀信息包可供本顯示單元讀取和寫入,顯示單元對(duì)應(yīng)的寫信息包對(duì)于本顯示單元是只讀的。該多處理器視頻處理系統(tǒng)還包括具有若干同步通道的同步傳輸模塊;圖3是該視頻圖像同步顯示方法的流程示意圖。具體地說,如圖3所示,該同步傳輸模塊采用的同步顯示方法包括以下步驟解碼單元遍歷每一個(gè)同步通道,如果當(dāng)前同步通道已使能,則對(duì)該同步通道所對(duì)應(yīng)的每一個(gè)顯示單元執(zhí)行以下步驟在步驟301中,如果需要向顯示單元發(fā)送圖像,且該顯示單元對(duì)應(yīng)的內(nèi)存區(qū)域中有空閑緩沖區(qū),則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸進(jìn)行數(shù)據(jù)傳輸。此后進(jìn)入步驟302,解碼單元將圖像發(fā)送到該顯示單元的空閑緩沖區(qū)。此后進(jìn)入步驟303,如果當(dāng)前同步通道的所有圖像都已發(fā)送,解碼單元?jiǎng)t發(fā)送當(dāng)前同步通道的同步信息包。同步信息包在顯示單元接收到當(dāng)前同步通道的所有圖像數(shù)據(jù)之后接收,可以使顯示單元同步顯示圖像數(shù)據(jù)。此后進(jìn)入步驟304,解碼單元去使能當(dāng)前同步通道,此后結(jié)束本流程。本發(fā)明第四實(shí)施方式涉及一種視頻圖像同步顯示方法。
第四實(shí)施方式在第三實(shí)施方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于調(diào)用 PCIE總線或通過本地傳輸將圖像發(fā)送到該顯示單元的空閑緩沖區(qū),可以充分利用本地顯示單元和PCIE總線連接的顯示單元資源,當(dāng)需要M*N拼接時(shí),大大提高了顯示單元的利用率。 當(dāng)同步傳輸模塊中的所有同步通道都未使能或者所述顯示單元未查詢到空閑緩沖區(qū),同步傳輸模塊休眠1ms。具體地說在調(diào)用PCIE總線或通過本地傳輸將圖像發(fā)送到該顯示單元的空閑緩沖區(qū)的步驟中,如果解碼單元和顯示單元在同一個(gè)處理器中,則通過處理器內(nèi)的本地傳輸將圖像發(fā)送到顯示單元的空閑緩沖區(qū),如果解碼單元和顯示單元不在同一個(gè)處理器中,則調(diào)用PCIE總線傳輸將圖像發(fā)送到顯示單元的空閑緩沖區(qū)。解碼單元生成一幀非壓縮圖像后,先使能一個(gè)同步通道,并向該同步通道提交與該同步通道對(duì)應(yīng)顯示單元的PCIE總線地址空間的地址和該幀圖像數(shù)據(jù),再向同步通道提交同步命令。顯示單元根據(jù)視頻顯示刷新頻率查詢緩沖區(qū)是否出現(xiàn)新的視頻幀數(shù)據(jù),若出現(xiàn), 則顯示該視頻幀數(shù)據(jù),之后,將該存儲(chǔ)該視頻數(shù)據(jù)的緩沖區(qū)設(shè)置為占用狀態(tài),并將上次占用的緩沖區(qū)設(shè)置為空閑狀態(tài)。在本發(fā)明的其他某些實(shí)施方式中,可以在解碼單元和顯示單元之間設(shè)置少量相應(yīng)的外部接口,分別用于執(zhí)行相應(yīng)的操作,使數(shù)據(jù)傳輸和信息包的處理可以很容易的完成。如下所示ITFO 顯示單元根據(jù)視頻顯示刷新頻率查詢緩沖區(qū)是否出現(xiàn)新的視頻幀數(shù)據(jù),若出現(xiàn),則顯示該視頻幀數(shù)據(jù),之后,將該存儲(chǔ)該視頻數(shù)據(jù)的緩沖區(qū)設(shè)置為占用狀態(tài),并將上次占用的緩沖區(qū)設(shè)置為空閑狀態(tài)。ITFl 解碼單元生成一幀非壓縮圖像后,請(qǐng)求并使能一個(gè)空閑同步通道。ITF2 向解碼單元使能后的同步通道提交PCIE總線地址空間的地址和視頻幀圖像數(shù)據(jù)。ITF3:在向同步通道中提交PCIE總線地址空間的地址和視頻幀圖像數(shù)據(jù)之后,解碼單元又向該同步通道提交同步命令,使之同步顯示和傳輸。通過ITF0-ITF3封裝了解碼單元和顯示單元所需要的所有操作,而不需要知道對(duì)方的實(shí)現(xiàn)細(xì)節(jié)。當(dāng)同步傳輸模塊中的所有同步通道都未使能或者所述顯示單元未查詢到空閑緩沖區(qū),同步傳輸模塊休眠lms。在本發(fā)明的其他某些實(shí)施方式中,若同步傳輸模塊中的所有同步通道都未使能或者所述顯示單元未查詢到空閑緩沖區(qū)時(shí),同步傳輸模塊休眠的時(shí)間可以根據(jù)具體實(shí)際情況進(jìn)行設(shè)置,比如設(shè)置在O-Ims之間,或者大于Ims休眠時(shí)間。作為本發(fā)明的優(yōu)選實(shí)施例,圖4是本發(fā)明第四實(shí)施方式中一種視頻圖像同步顯示方法的流程示意圖,如圖4所示在步驟401中,同步傳輸模塊等待多CPU視頻處理系統(tǒng)初始化。此后進(jìn)入步驟402,當(dāng)解碼單元需要向顯示單元發(fā)送視頻圖像數(shù)據(jù)時(shí),同步傳輸模塊遍歷查詢可使用(或空閑未使能)的同步通道用于傳輸該視頻圖像數(shù)據(jù),即設(shè)置i =0, cnt = 0,從同步通道序號(hào)i為0的同步通道開始。其中i表示當(dāng)前同步通道序號(hào),cnt用于統(tǒng)計(jì)各同步通道的一個(gè)完整遍歷過程中,傳輸了視頻圖像數(shù)據(jù)的同步通道數(shù)。此后進(jìn)入步驟403,判斷當(dāng)前同步通道i是否小于解碼單元數(shù)S (或者解碼單元可以使用的同步通道數(shù)S)。若小于,則進(jìn)入步驟404 ;否則,進(jìn)入步驟419。在步驟404,判斷當(dāng)前同步通道i是否已使能。若是,則進(jìn)入步驟406 ;否則,進(jìn)入步驟405。在步驟405中,選取下一個(gè)序號(hào)的同步通道作為當(dāng)前同步通道i,此后返回步驟 403,繼續(xù)判斷當(dāng)前同步通道i是否小于解碼單元數(shù)S。在步驟406中,遍歷查詢與解碼單元有數(shù)據(jù)傳輸需要的顯示單元j,從顯示單元序號(hào)j為0的同步通道開始。此后進(jìn)入步驟407,判斷當(dāng)前顯示單元j是否小于解碼單元需要數(shù)據(jù)傳輸?shù)目傦@示單元數(shù)P。若是,則進(jìn)入步驟413 ;否則,進(jìn)入步驟408。在步驟408中,若當(dāng)前顯示單元j不是解碼單元需要數(shù)據(jù)傳輸?shù)膶?duì)應(yīng)顯示單元,則判斷當(dāng)前同步通道i中所有的視頻圖像數(shù)據(jù)是否全部發(fā)送完畢。若全部發(fā)送完畢,則進(jìn)入步驟409 ;否則,返回步驟405,選取下一個(gè)序號(hào)的同步通道作為當(dāng)前同步通道i,繼續(xù)發(fā)送余下的視頻圖像數(shù)據(jù)。在步驟409中,若當(dāng)前同步通道i中的視頻圖像數(shù)據(jù)全部發(fā)送,則判斷是否已經(jīng)提交同步命令。若已經(jīng)提交,則進(jìn)入步驟410 ;否則,返回步驟405,選取下一個(gè)序號(hào)的同步通道作為當(dāng)前同步通道i,繼續(xù)發(fā)送余下的視頻圖像數(shù)據(jù)或者同步命令。在步驟410中,發(fā)送當(dāng)前同步通道i的同步信息包。此后進(jìn)入步驟411,由于當(dāng)前同步通道i發(fā)送了視頻圖像數(shù)據(jù),所以用于統(tǒng)計(jì)各個(gè)同步通道的一個(gè)完整遍歷過程中傳輸了視頻圖像數(shù)據(jù)的同步通道數(shù)的cnt就累加一次。此后進(jìn)入步驟412,關(guān)閉當(dāng)前同步通道i,此后返回步驟405,選取下一個(gè)序號(hào)的同步通道作為當(dāng)前同步通道i,繼續(xù)發(fā)送視頻圖像數(shù)據(jù)。在步驟413中,若當(dāng)前顯示單元j小于解碼單元需要數(shù)據(jù)傳輸?shù)目傦@示單元數(shù)P, 則繼續(xù)判斷該顯示單元j是否需要接受視頻圖像數(shù)據(jù)。若需要,則進(jìn)入步驟414 ;否則,進(jìn)入步驟418。在步驟414中,根據(jù)顯示單元序號(hào)j查詢到顯示單元j,以傳輸視頻圖像數(shù)據(jù)。此后進(jìn)入步驟415,判斷當(dāng)前顯示單元j(或終端j)是否有空閑緩沖區(qū)。若有空閑緩沖區(qū),則進(jìn)入步驟416 ;否則,進(jìn)入步驟418。在步驟416中,解碼單元調(diào)用PCIE總線或者本地傳輸通過當(dāng)前同步通道i向當(dāng)前顯示單元j發(fā)送視頻圖像數(shù)據(jù)。此后進(jìn)入步驟417,記錄該發(fā)送至當(dāng)前顯示單元的視頻圖像數(shù)據(jù)全部發(fā)送完畢。此后進(jìn)入步驟418,選取下一個(gè)序號(hào)的顯示單元作為當(dāng)前顯示單元j,繼續(xù)接收當(dāng)前同步通道i余下的視頻圖像數(shù)據(jù),此后返回步驟407,繼續(xù)判斷當(dāng)前顯示單元j是否小于解碼單元需要數(shù)據(jù)傳輸?shù)目傦@示單元數(shù)P。在步驟419中,若當(dāng)前沒有空閑同步通道,即i > = S,則繼續(xù)判斷在一個(gè)完整遍歷
12(即P*S次遍歷)過程中,傳輸了視頻圖像數(shù)據(jù)的同步通道數(shù)cnt是否為零。若為零,則表示在整個(gè)P*S次遍歷的遍歷過程中,沒有任何同步通道傳輸了視頻圖像數(shù)據(jù),就進(jìn)入步驟420 ;否則表示在整個(gè)P*S次遍歷的遍歷過程中,有cnt數(shù)目個(gè)同步通道傳輸了視頻圖像數(shù)據(jù),就返回步驟402,當(dāng)解碼單元需要向顯示單元發(fā)送視頻圖像數(shù)據(jù)時(shí),遍歷查詢可使用(或空閑未使能)的同步通道用于傳輸該視頻圖像數(shù)據(jù),即設(shè)置i = 0, cnt = 0,從同步通道序號(hào)i為0的同步通道開始。其中i表示當(dāng)前同步通道序號(hào),cnt用于統(tǒng)計(jì)各個(gè)同步通道的一個(gè)完整遍歷過程中,傳輸了視頻圖像數(shù)據(jù)的同步通道數(shù)。在步驟420中,休眠1ms,此后返回步驟402。作為本發(fā)明的一個(gè)優(yōu)選實(shí)施例,圖5是本發(fā)明第四實(shí)施方式中一種視頻圖像同步顯示方法的信息包讀寫標(biāo)識(shí)和緩沖區(qū)的狀態(tài)轉(zhuǎn)移表的示意圖。在系統(tǒng)初始化階段,包括以下步驟1至3 :1.對(duì)于每個(gè)顯示單元DISPi(i = 1,2,3…),在其自身處理器的內(nèi)存空間上開辟一塊稱為“顯示終端”的內(nèi)存區(qū)域(記為SINKi)。每個(gè)SINKi由1個(gè)讀、寫信息頭和2個(gè)圖像緩沖區(qū)組成,這2個(gè)圖像緩沖區(qū)一個(gè)用于當(dāng)前顯示,另一個(gè)用于存放新的視頻圖像數(shù)據(jù),其中信息頭中包含一個(gè)從讀信息包(記為RDIFi)和一個(gè)從寫信息包(記為WRIFi),RDIFi和 WRIFi的結(jié)構(gòu)是相同的,都包含1個(gè)讀標(biāo)示r,l個(gè)寫標(biāo)示w,2個(gè)圖像緩沖區(qū)的偏移地址,以及其它一些用于確定圖像和緩沖區(qū)大小的參數(shù)。通過這兩個(gè)信息包中的r和w可以判斷2 個(gè)圖像緩沖區(qū)的狀態(tài),如圖5所示的信息包讀寫標(biāo)識(shí)和緩沖區(qū)的狀態(tài)轉(zhuǎn)移,Si表示步驟i, BUF是緩沖區(qū),I代表Idle表示緩沖區(qū)處于空閑狀態(tài),R代表Ready表示緩沖區(qū)已有新數(shù)據(jù), B代表Busy表示正在輸出顯示。RDIF-r代表顯示單元已讀過的緩沖區(qū),WDIF-w代表解碼單元下一次應(yīng)當(dāng)寫的BUF,RDIF-w與WDIF-r雖然有一些冗余的,如RDIF-w與RDIF_r始終相同,WDIF-r和WDIF-w除了最初的情況始終相反,解碼單元只從RDIF讀,只向WRIF中寫。2.主處理器發(fā)送命令給某處理器CPUd,通知啟動(dòng)某顯示單元DISPi的顯示功能。 CPUd首先初始化SINKi中RDIFi和WRIFi的讀、寫標(biāo)識(shí)為0,表示這2個(gè)圖像緩沖區(qū)均處于 “空閑”狀態(tài);然后返回SINKi的地址給主處理器。3.主處理器將SINKi轉(zhuǎn)化為PCIE地址空間的地址PCISINKi,然后發(fā)送命令給某處理器CPh,通知CPh設(shè)置并啟動(dòng)解碼單元DECj的輸出端口 PORTp,其中顯示單元地址為 PCISINKi,顯示畫面的大小為DW*DH,顯示畫面在解碼圖像中的位置是(X,Y),對(duì)應(yīng)的解碼圖像的區(qū)域大小是(SW*SH)。通過系統(tǒng)初始化中的步驟2和3把DISPi和DECj關(guān)聯(lián)起來。在實(shí)現(xiàn)同步傳輸和同步拼接顯示階段中,包括以下步驟4至9 :
4. CPUs的DECj輸出一幀解碼圖像;5. CPUs查詢DECj的PORTp的顯示單元地址PCISINKi是否屬于本處理器的PCIE 地址范圍,如果是轉(zhuǎn)到步驟7,否則轉(zhuǎn)到步驟6 ;6. CPUs 通過 PCIE 讀取 PCISINKi 中 RDIFi 和 WRIFi 的讀寫標(biāo)識(shí),若 RDIFi-> w = =WRIFi- > w,則表示SINKi中RDIFi- > w指向圖像緩沖區(qū)為空閑狀態(tài),CPUs將圖像縮放到所需大小后通過PCIE發(fā)送到該圖像緩沖區(qū);若RDIFi- >w ! = WRIFi- > w,則休眠 1毫秒,然后繼續(xù)查詢,直到RDIFi- > W==WRIFi- > w,然后執(zhí)行上述操作。之后轉(zhuǎn)到步驟8 ;7. CPh將PCISINKi地址轉(zhuǎn)化為本地地址SINKi,然后讀取SINKi中RDIFi和WRIFi的讀寫標(biāo)識(shí),若RDIFi- > w == WRIFi- > w,則表示SINKi中RDIFi- > w指向圖像緩沖區(qū)為空閑狀態(tài),CPUs將圖像縮放到所需大小后通過PCIE發(fā)送到該圖像緩沖區(qū);若RDIFi- > w ! = WRIFi- > w,則休眠1毫秒,然后繼續(xù)查詢,直到RDIFi- > w == WRIFi- > w,然后執(zhí)行上述操作。之后轉(zhuǎn)到步驟8;8. CPUs的DECj對(duì)于所有已經(jīng)使能的PO RT都執(zhí)行完步驟5至步驟7后,設(shè)置 WRIFi- > r = RDIFi- > r,再將每個(gè)WRFi- > w取反,然后寫入到對(duì)應(yīng)的PCISINKi或SINKi 中。9. CPUd中的顯示單元DISPi根據(jù)顯示的刷新頻率查詢SINKi中RDIFi和WRIFi的讀寫標(biāo)識(shí),若RDIFi- > r ! = WRIFi- > w,則表示RDIFi- > r指向的圖像緩沖區(qū)有新數(shù)據(jù),DISPi把該圖像緩沖區(qū)作為下次顯示的源數(shù)據(jù)的存儲(chǔ)區(qū),并更新從讀信息包(RDIFi- > r = WRIFi- > w, RDIFi- > w = WRIFi- > w);若 RDIFi- > r = = WRIFi- > w,則表示 RDIFi- > r指向的圖像緩沖區(qū)沒有新數(shù)據(jù),DISPi重復(fù)輸出上次的圖像數(shù)據(jù);實(shí)現(xiàn)同步傳輸和同步拼接顯示階段中的步驟4到步驟9周而復(fù)始,所有關(guān)聯(lián)到 DECj的顯示單元(本優(yōu)選例中只有DISPi)都會(huì)同時(shí)得到新數(shù)據(jù)。本發(fā)明的各方法實(shí)施方式均可以以軟件、硬件、固件等方式實(shí)現(xiàn)。不管本發(fā)明是以軟件、硬件、還是固件方式實(shí)現(xiàn),指令代碼都可以存儲(chǔ)在任何類型的計(jì)算機(jī)可訪問的存儲(chǔ)器中(例如永久的或者可修改的,易失性的或者非易失性的,固態(tài)的或者非固態(tài)的,固定的或者可更換的介質(zhì)等等)。同樣,存儲(chǔ)器可以例如是可編程陣列邏輯(Prog rammable Array Logic,簡(jiǎn)稱“PAL”)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,簡(jiǎn)稱“RAM”)、可編程只讀存儲(chǔ)器(Programmable Read Only Memory,簡(jiǎn)稱 “PROM”)、只讀存儲(chǔ)器(Read-Only Memory, 簡(jiǎn)稱 “ROM”)、電可擦除可編程只讀存儲(chǔ)器(Electrically Erasable Prog rammable ROM, 簡(jiǎn)稱“EEPR0M”)、磁盤、光盤、數(shù)字通用光盤(Digital Versatile Disc,簡(jiǎn)稱“DVD”)等等。本發(fā)明第五實(shí)施方式涉及一種視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)。圖6是該視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖6(a) 所示的多處理器視頻處理系統(tǒng),該系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,包括處理器1至處理器n,每個(gè)處理器中有如圖6(b)所示的一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有如圖6(c)所示的對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí)。每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元,如圖6(b)所示。顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入,顯示單元對(duì)應(yīng)的讀信息包可供本顯示單元讀取和寫入,顯示單元對(duì)應(yīng)的寫信息包對(duì)于本顯示單元是只讀的。解碼單元,用于生成一幀非壓縮圖像,并對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元分別執(zhí)行如下步驟如果顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)等于寫標(biāo)識(shí),則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸將屬于該顯示單元的圖像發(fā)送到該寫標(biāo)識(shí)指示的空閑緩沖區(qū)并將寫標(biāo)識(shí)取反,否則等待,直到讀標(biāo)識(shí)等于寫標(biāo)識(shí)。顯示單元,用于根據(jù)顯示刷新頻率查詢對(duì)應(yīng)的讀標(biāo)識(shí)和寫標(biāo)識(shí),如果讀標(biāo)識(shí)不等于寫標(biāo)識(shí),則將讀標(biāo)識(shí)指示的緩沖區(qū)作為下次顯示的源數(shù)據(jù)的存儲(chǔ)區(qū),并將讀標(biāo)識(shí)設(shè)置為與寫標(biāo)識(shí)相同的值。第一實(shí)施方式是與本實(shí)施方式相對(duì)應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第一實(shí)施方式互相配合實(shí)施。第一實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第一實(shí)施方式中。本發(fā)明第六實(shí)施方式涉及一種視頻圖像同步傳輸與顯示的多處理器視頻處理系統(tǒng)。第六實(shí)施方式在第五實(shí)施方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于解碼單元進(jìn)行M*N(M、N為正整數(shù))拼接顯示設(shè)置時(shí),可以根據(jù)視頻幀圖像的大小和其所對(duì)應(yīng)的內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)的地址及其大小,選擇相應(yīng)的顯示單元及其個(gè)數(shù)。信息包中圖像緩沖區(qū)的地址相對(duì)于信息頭采用偏移量形式,使得數(shù)據(jù)傳輸方式無論是PCIE總線傳輸還是本地內(nèi)存拷貝,都可以靈活處理緩沖區(qū)地址;如果絕對(duì)物理地址, 則可以通過PCIE總線單獨(dú)作一次轉(zhuǎn)換,如果是相對(duì)地址,因?yàn)樾畔㈩^地址已被計(jì)算過,所以不需要通過系統(tǒng)調(diào)用重新計(jì)算緩沖區(qū)的位置,直接在信息頭地址加上偏移量就可以知道緩沖區(qū)的地址。具體地說讀信息包和寫信息包中還包括視頻幀圖像大小、該讀信息包和寫信息包所在內(nèi)存區(qū)域中的兩個(gè)緩沖區(qū)地址及其緩沖區(qū)大小,兩個(gè)緩沖區(qū)地址采用偏移量形式。作為本發(fā)明的一個(gè)優(yōu)選例,系統(tǒng)結(jié)構(gòu)及相應(yīng)的數(shù)據(jù)流及其方向如圖7所示。作為本發(fā)明的一個(gè)優(yōu)選例,如圖8所示,該系統(tǒng)中包括通過以PCIE總線連接的多個(gè)處理器,其中一個(gè)處理器兼為主處理器;兼為主處理器的處理器既可以是參與同步傳輸與顯示的多處理器之一,也可以是另外獨(dú)立的一顆處理器,該臺(tái)兼任主處理器的處理器,作為主處理器時(shí),它只負(fù)責(zé)發(fā)送命令,不參與功能實(shí)現(xiàn);不作為主處理器時(shí),只參與相應(yīng)的功能實(shí)現(xiàn),不進(jìn)行命令發(fā)送。其中, 該兼任主處理器的處理器與其它處理器的連接既可以通過PCIE總線,也可以通過網(wǎng)絡(luò)等其它方式進(jìn)行連接。該多處理器視頻處理系統(tǒng),用于在解碼單元對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元執(zhí)行視頻圖像同步傳輸與顯示的步驟之前,進(jìn)行以下初始化的工作各顯示單元所在的處理器在其自身內(nèi)存空間上分別設(shè)置一組內(nèi)存區(qū)域。主處理器通知各顯示單元所在的處理器啟動(dòng)各個(gè)顯示單元。各顯示單元所在的處理器初始化一組內(nèi)存區(qū)域中的讀標(biāo)識(shí)和寫標(biāo)識(shí),標(biāo)識(shí)該組內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)為空閑狀態(tài),并返回各顯示單元的地址至主處理器。主處理器將各顯示單元的地址轉(zhuǎn)化為PCIE總線地址空間的地址,并通知解碼單元的處理器設(shè)置并啟動(dòng)其輸出端口。解碼單元的處理器設(shè)置輸出端口的端口信息包括所述各顯示單元的PCIE總線地址空間地址、顯示畫面大小及其在原始幀圖像中的位置、原始幀圖像的區(qū)域大小。第二實(shí)施方式是與本實(shí)施方式相對(duì)應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第二實(shí)施方式互相配合實(shí)施。第二實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第二實(shí)施方式中。
需要說明的是,本發(fā)明各設(shè)備實(shí)施方式中提到的各單元或模塊都是邏輯單元或模塊,在物理上,一個(gè)邏輯單元或模塊可以是一個(gè)物理單元或模塊,也可以是一個(gè)物理單元或模塊的一部分,還可以以多個(gè)物理單元或模塊的組合實(shí)現(xiàn),這些邏輯單元或模塊本身的物理實(shí)現(xiàn)方式并不是最重要的,這些邏輯單元或模塊所實(shí)現(xiàn)的功能的組合是才解決本發(fā)明所提出的技術(shù)問題的關(guān)鍵。此外,為了突出本發(fā)明的創(chuàng)新部分,本發(fā)明上述各設(shè)備實(shí)施方式并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元或模塊引入,這并不表明上述設(shè)備實(shí)施方式并不存在其它的單元或模塊。雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施方式,已經(jīng)對(duì)本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對(duì)其作各種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法,其特征在于,該系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、 一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí); 每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元;顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入;包括以下步驟解碼單元生成一幀非壓縮圖像,并對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元分別執(zhí)行如下步驟如果顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)等于寫標(biāo)識(shí),則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸將屬于該顯示單元的圖像發(fā)送到該寫標(biāo)識(shí)指示的空閑緩沖區(qū)并將寫標(biāo)識(shí)取反,否則等待,直到讀標(biāo)識(shí)等于寫標(biāo)識(shí);各顯示單元根據(jù)顯示刷新頻率查詢對(duì)應(yīng)的讀標(biāo)識(shí)和寫標(biāo)識(shí),如果讀標(biāo)識(shí)不等于寫標(biāo)識(shí),則將讀標(biāo)識(shí)指示的緩沖區(qū)作為下次顯示的源數(shù)據(jù)的存儲(chǔ)區(qū),并將讀標(biāo)識(shí)設(shè)置為與寫標(biāo)識(shí)相同的值。
2.根據(jù)權(quán)利要求1所述的多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法,其特征在于,所述讀信息包和寫信息包中還包括視頻幀圖像大小、該讀信息包和寫信息包所在內(nèi)存區(qū)域中的兩個(gè)緩沖區(qū)地址及其緩沖區(qū)大小。
3.根據(jù)權(quán)利要求2所述的多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法,其特征在于,所述讀信息包、寫信息包中對(duì)應(yīng)內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)地址采用偏移量形式。
4.根據(jù)權(quán)利要求1所述的多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法,其特征在于,該系統(tǒng)中包括通過以PCIE總線連接的多個(gè)處理器,其中一個(gè)處理器兼為主處理器;在所述解碼單元對(duì)其所對(duì)應(yīng)的各顯示單元執(zhí)行視頻圖像同步傳輸?shù)牟襟E之前,還包括所述系統(tǒng)初始化的步驟在各顯示單元所在的處理器內(nèi)存空間上分別設(shè)置一組內(nèi)存區(qū)域;主處理器通知各顯示單元所在的處理器啟動(dòng)各個(gè)顯示單元;各顯示單元所在的處理器初始化所述一組內(nèi)存區(qū)域中的讀標(biāo)識(shí)和寫標(biāo)識(shí),標(biāo)識(shí)該組內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)為空閑狀態(tài),并返回各顯示單元的地址至主處理器;主處理器將各顯示單元的地址轉(zhuǎn)化為PCIE總線地址空間的地址,并通知所述解碼單元的處理器設(shè)置并啟動(dòng)其輸出端口。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的多處理器視頻處理系統(tǒng)中視頻圖像同步傳輸與顯示方法,其特征在于,所述解碼單元的處理器設(shè)置輸出端口的端口信息包括所述各顯示單元的PCIE總線地址空間地址、顯示畫面大小及其在原始幀圖像中的位置、原始幀圖像的區(qū)域大小。
6.一種視頻圖像同步顯示方法,其特征在于,所述多處理器視頻處理系統(tǒng)包括通過以 PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí);每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元;顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入;該多處理器視頻處理系統(tǒng)還包括具有若干同步通道的同步傳輸模塊;該同步傳輸模塊采用的所述方法包括以下步驟遍歷每一個(gè)同步通道,如果當(dāng)前同步通道已使能,則對(duì)該同步通道所對(duì)應(yīng)的每一個(gè)顯示單元執(zhí)行以下步驟如果需要向顯示單元發(fā)送圖像,且該顯示單元對(duì)應(yīng)的內(nèi)存區(qū)域中有空閑緩沖區(qū),則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸,將圖像發(fā)送到該顯示單元的空閑緩沖區(qū);如果當(dāng)前同步通道的所有圖像都已發(fā)送,則發(fā)送當(dāng)前同步通道的同步信息包,并去使能當(dāng)前同步通道。
7.根據(jù)權(quán)利要求6所述的視頻圖像同步顯示方法,其特征在于,在所述調(diào)用PCIE總線或通過本地傳輸將圖像發(fā)送到該顯示單元的空閑緩沖區(qū)的步驟中,如果解碼單元和顯示單元在同一個(gè)處理器中,則通過處理器內(nèi)的本地傳輸將圖像發(fā)送到顯示單元的空閑緩沖區(qū), 如果解碼單元和顯示單元不在同一個(gè)處理器中,則調(diào)用PCIE總線傳輸將圖像發(fā)送到顯示單元的空閑緩沖區(qū)。
8.根據(jù)權(quán)利要求6所述的視頻圖像同步顯示方法,其特征在于,所述解碼單元生成一幀非壓縮圖像后,先使能一個(gè)同步通道,并向該同步通道提交與該同步通道對(duì)應(yīng)顯示單元的PCIE總線地址空間的地址和該幀圖像數(shù)據(jù),再向同步通道提交同步命令;所述顯示單元根據(jù)視頻顯示刷新頻率查詢緩沖區(qū)是否出現(xiàn)新的視頻幀數(shù)據(jù),若出現(xiàn), 則顯示該視頻幀數(shù)據(jù),之后,將該存儲(chǔ)該視頻數(shù)據(jù)的緩沖區(qū)設(shè)置為占用狀態(tài),并將上次占用的緩沖區(qū)設(shè)置為空閑狀態(tài)。
9.根據(jù)權(quán)利要求6至8中任一項(xiàng)所述的視頻圖像同步顯示方法,其特征在于,若同步傳輸模塊中的所有同步通道都未使能或者所述顯示單元未查詢到空閑緩沖區(qū),則所述同步傳輸模塊休眠1ms。
10.一種采用視頻圖像同步傳輸與顯示方法的多處理器視頻處理系統(tǒng),其特征在于,該系統(tǒng)包括通過以PCIE總線連接的多個(gè)處理器,每個(gè)處理器中有一個(gè)或多個(gè)顯示單元和一個(gè)或多個(gè)解碼單元,每個(gè)顯示單元分別有對(duì)應(yīng)的一組內(nèi)存區(qū)域,每組內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、一個(gè)讀信息包和一個(gè)寫信息包,讀信息包中包括一個(gè)讀標(biāo)識(shí),寫信息包中包括一個(gè)寫標(biāo)識(shí);每個(gè)解碼單元對(duì)應(yīng)一個(gè)或多個(gè)顯示單元;顯示單元對(duì)應(yīng)的讀信息包對(duì)于解碼單元是只讀的,顯示單元對(duì)應(yīng)的寫信息包可供解碼單元讀取和寫入;所述解碼單元,用于生成一幀非壓縮圖像,并對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元分別執(zhí)行如下步驟如果顯示單元對(duì)應(yīng)的讀標(biāo)識(shí)等于寫標(biāo)識(shí),則調(diào)用PCIE總線或通過處理器內(nèi)的本地傳輸將屬于該顯示單元的圖像發(fā)送到該寫標(biāo)識(shí)指示的空閑緩沖區(qū)并將寫標(biāo)識(shí)取反,否則等待,直到讀標(biāo)識(shí)等于寫標(biāo)識(shí);顯示單元,用于根據(jù)顯示刷新頻率查詢對(duì)應(yīng)的讀標(biāo)識(shí)和寫標(biāo)識(shí),如果讀標(biāo)識(shí)不等于寫標(biāo)識(shí)則將讀標(biāo)識(shí)指示的緩沖區(qū)作為下次顯示的源數(shù)據(jù)的存儲(chǔ)區(qū),并將讀標(biāo)識(shí)設(shè)置為與寫標(biāo)識(shí)相同的值。
11.根據(jù)權(quán)利要求10所述的采用視頻圖像同步傳輸與顯示方法的多處理器視頻處理系統(tǒng),其特征在于,所述讀信息包和寫信息包中還包括視頻幀圖像大小、該讀信息包和寫信息包所在內(nèi)存區(qū)域中的兩個(gè)緩沖區(qū)地址及其緩沖區(qū)大小,兩個(gè)緩沖區(qū)地址采用偏移量形式。
12.根據(jù)權(quán)利要求10所述的采用視頻圖像同步傳輸與顯示方法的多處理器視頻處理系統(tǒng),其特征在于,該系統(tǒng)中包括通過以PCIE總線連接的多個(gè)處理器,其中一個(gè)處理器兼為主處理器;所述系統(tǒng),用于在解碼單元對(duì)與該解碼單元對(duì)應(yīng)的各顯示單元執(zhí)行視頻圖像同步傳輸與顯示的步驟之前,進(jìn)行以下初始化的工作各顯示單元所在的處理器在其自身內(nèi)存空間上分別設(shè)置一組內(nèi)存區(qū)域;主處理器通知各顯示單元所在的處理器啟動(dòng)各個(gè)顯示單元;各顯示單元所在的處理器初始化所述一組內(nèi)存區(qū)域中的讀標(biāo)識(shí)和寫標(biāo)識(shí),標(biāo)識(shí)該組內(nèi)存區(qū)域中兩個(gè)緩沖區(qū)為空閑狀態(tài),并返回各顯示單元的地址至主處理器;主處理器將各顯示單元的地址轉(zhuǎn)化為PCIE總線地址空間的地址,并通知所述解碼單元的處理器設(shè)置并啟動(dòng)其輸出端口。
13.根據(jù)權(quán)利要求10至12任一項(xiàng)所述的采用視頻圖像同步傳輸與顯示方法的多處理器視頻處理系統(tǒng),其特征在于,所述解碼單元的處理器設(shè)置輸出端口的端口信息包括所述各顯示單元的PCIE總線地址空間地址、顯示畫面大小及其在原始幀圖像中的位置、原始幀圖像的區(qū)域大小。
全文摘要
本發(fā)明涉及視頻處理領(lǐng)域,公開了一種多處理器視頻處理系統(tǒng)及其中的視頻圖像同步傳輸與顯示方法。通過PCIE總線技術(shù),實(shí)現(xiàn)視頻圖像在多CPU系統(tǒng)中同步傳輸和拼接顯示。本發(fā)明中,該多處理器系統(tǒng)包括以PCIE總線連接的有顯示單元和解碼單元多個(gè)處理器,顯示單元中內(nèi)存區(qū)域包括兩個(gè)緩沖區(qū)、分別包含讀、寫標(biāo)識(shí)的讀、信息包;包括以下步驟解碼單元生成一幀非壓縮圖像,對(duì)相應(yīng)各顯示單元分別執(zhí)行如下步驟若顯示單元對(duì)應(yīng)的讀寫標(biāo)識(shí)相等,則調(diào)用PCIE總線或通過本地傳輸將圖像發(fā)送到寫標(biāo)識(shí)所指空閑緩沖區(qū)并將寫標(biāo)識(shí)取反;各顯示單元根據(jù)顯示刷新頻率查詢對(duì)應(yīng)讀寫標(biāo)識(shí),若讀寫標(biāo)識(shí)不等,則將讀標(biāo)識(shí)所指緩沖區(qū)作為下次顯示的數(shù)據(jù)的存儲(chǔ)區(qū),并置讀標(biāo)識(shí)為寫標(biāo)識(shí)值。
文檔編號(hào)G06F13/42GK102497527SQ20111042276
公開日2012年6月13日 申請(qǐng)日期2011年12月16日 優(yōu)先權(quán)日2011年12月16日
發(fā)明者師恩義, 錢學(xué)鋒, 黃田 申請(qǐng)人:杭州??低晹?shù)字技術(shù)股份有限公司