一種分布式圖像拼接同步的方法和裝置制造方法
【專利摘要】本發(fā)明提供一種分布式圖像拼接同步的方法和裝置,應用于一種分布式拼接控制系統(tǒng)中的視頻解碼器上,所述方法包括:視頻解碼器對所述拼接控制器輸出的視頻幀進行解碼,并將解碼后的視頻數(shù)據(jù)存于顯存中;在顯示輸出中斷產(chǎn)生時,根據(jù)公式Xn=(Tn-T1)+t1+d計算出第n幀的理論顯示輸出時間;判斷當前準備顯示第n幀的時間是否大于等于所述Xn;若是,則輸出該第n幀數(shù)據(jù)由該解碼器對應的子顯示屏進行顯示;否則,待下一個顯示中斷產(chǎn)生的周期重新判斷是否顯示該第n幀;本發(fā)明方案能夠降低各輸出屏畫面不同步的時間,提升拼接圖像顯示效果。
【專利說明】一種分布式圖像拼接同步的方法和裝置
【技術(shù)領域】
[0001]本發(fā)明涉及視頻監(jiān)控領域,尤其涉及一種分布式圖像拼接同步的方法和裝置。
【背景技術(shù)】
[0002]為了滿足用戶對大屏幕觀看的需求,大屏拼接技術(shù)越來越多的應用于視頻監(jiān)控領域。所謂大屏拼接技術(shù),是通過將一副完整的圖像分割成多份,在不同的顯示設備上進行顯示并且保證圖像各個部分同步顯示。目前,各廠家大多使用矩陣設備來實現(xiàn)大屏拼接,屬于集成式的拼接設備,其常見的解決方案如圖1和圖2所示,圖1是單純的矩陣設備,不支持網(wǎng)絡流輸入,若要進行網(wǎng)絡流的拼接顯示,前端必須要接一臺視頻解碼器用于對網(wǎng)絡流進行解碼,輸出視頻信號到矩陣設備;圖2集成了解碼模塊,可同時支持網(wǎng)絡流和視頻信號輸入。
[0003]對于上述兩種解決方案,可擴展性差,不同顯示模塊之間傳輸?shù)氖墙獯a后原始圖像,數(shù)據(jù)量大,而且由于采用集成式拼接模式,各分屏圖像共享帶寬進行傳輸,傳輸過程可能導致圖像到達顯示模塊的時間產(chǎn)生一定的差異,因此在拼接顯示輸出時,會造成各顯示模塊顯示拼接畫面時產(chǎn)生不同步。
【發(fā)明內(nèi)容】
[0004]基于上述問題,本發(fā)明提出一種分布式圖像拼接同步的方法,應用于一種分布式拼接控制系統(tǒng)中的視頻解碼器上,所述分布式拼接控制系統(tǒng)包括拼接控制器、若干視頻解碼器以及若干子顯示屏,其中所述若干視頻解碼器均連接于所述拼接控制器,每個視頻解碼器連接一個或多個子顯示屏,所述方法包括:
[0005]步驟A、對所述拼接控制器輸出的視頻幀進行解碼,并將解碼后的視頻數(shù)據(jù)存于顯存中;在顯示輸出中斷產(chǎn)生時,根據(jù)公式Xn=(Tn-Tl)+tl+d計算出第η幀的理論顯示輸出時間;其中Xn表示計算得到的第η幀的理論顯示輸出時間;tl表示與其它視頻解碼器同步后的首幀到達顯存的系統(tǒng)時間;所述Tl以及Tn分別表示首幀以及第η幀中攜帶的時間戳;所述d表示所述顯示緩沖時間,該時間為顯示輸出中斷產(chǎn)生周期的整數(shù)倍;所述η為大于I的整數(shù);其中該解碼器產(chǎn)生顯示輸出中斷的時間與其它解碼器產(chǎn)生顯示輸出中斷的時間同
I K
少;
[0006]步驟B、判斷當前準備顯示第η幀的時間是否大于等于所述Xn ;若是,則輸出該第η幀數(shù)據(jù)由該解碼器對應的子顯示屏進行顯示;否則,待下一個顯示輸出中斷產(chǎn)生時重新執(zhí)行步驟B。
[0007]優(yōu)選地,所述視頻解碼器接收由所述拼接控制器發(fā)出的包含重置命令的組播消息,并根據(jù)該組播消息中的重置命令重置顯示輸出芯片,以實現(xiàn)顯示輸出中斷時間與其它解碼器的同步。
[0008]優(yōu)選地,所述視頻解碼器收到來自所述拼接控制器發(fā)出的首幀到達時間查詢消息后,計算收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差,并將該時間差通告給所述拼接控制器,以使得所述拼接控制器可根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步。
[0009]優(yōu)選地,所述拼接控制器根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步具體為:拼接控制器以所述通告的時間差中最大的時間差為基準,向該視頻解碼器發(fā)送將記錄的首幀到達顯存的時間向前調(diào)整m毫秒的指令,其中m=a-b,a為所述最大時間差,b為該視頻解碼器收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差。
[0010]優(yōu)選地,當各視頻解碼器中任一視頻解碼器計算出的所述時間差與所述最大的時間差之間的差值超出所述顯示緩沖時間時,拼接控制器向所述視頻解碼器發(fā)出包含清空緩沖區(qū)命令的消息,所述視頻解碼器收到該消息后,根據(jù)該消息中的清空緩沖區(qū)的命令清空視頻緩沖區(qū)的數(shù)據(jù),返回執(zhí)行步驟A。
[0011]本發(fā)明還提出一種分布式圖像拼接同步裝置,該裝置應用于一種分布式拼接控制系統(tǒng)中的視頻解碼器上,所述分布式拼接控制系統(tǒng)還包括拼接控制器、若干子顯示屏以及其它視頻解碼器,其中所述各視頻解碼器均連接于所述拼接控制器,每個視頻解碼器連接一個或多個子顯示屏,該裝置包括:
[0012]解碼運算模塊,用于對所述拼接控制器輸出的視頻幀進行解碼,并將解碼后的視頻數(shù)據(jù)存于顯存中,并在顯示輸出中斷產(chǎn)生時,根據(jù)公式Xn= (Tn-Tl)+tl+d計算出第η幀的理論顯示輸出時間;其中Xn表示計算得到的第η幀的理論顯示輸出時間;tl表示與其它視頻解碼器同步后的首幀到達顯存的系統(tǒng)時間;所述Tl以及Tn分別表示首幀以及第η幀中攜帶的時間戳;所述d表示所述顯示緩沖時間,該時間為顯示輸出中斷產(chǎn)生周期的整數(shù)倍;所述η為大于I的整數(shù);所述解碼器產(chǎn)生顯示輸出中斷的時間與其它解碼器產(chǎn)生顯示輸出中斷的時間同步;
[0013]輸出控制模塊,用于判斷當前準備顯示第η幀的時間是否大于等于所述Xn;若是,則輸出該第η幀數(shù)據(jù)由該解碼器對應的子顯示屏進行顯示;否則,待下一個顯示輸出中斷產(chǎn)生時重新判斷是否輸出該第η幀。
[0014]優(yōu)選地,所述解碼運算模塊進一步用于:接收由所述拼接控制器發(fā)出的包含重置命令的組播消息,并根據(jù)該組播消息中的重置命令重置顯示輸出芯片,以實現(xiàn)顯示輸出中斷時間與其它解碼器的同步。
[0015]優(yōu)選地,所述解碼運算模塊進一步用于:當收到來自所述拼接控制器發(fā)出的首幀到達時間的查詢消息后,計算收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差,并將該時間差通告給所述拼接控制器,以使得所述拼接控制器可根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步。
[0016]優(yōu)選地,所述拼接控制器根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步具體為:拼接控制器以所述通告的時間差中最大的時間差為基準,向該視頻解碼器發(fā)送將記錄的首幀到達顯存的時間向前調(diào)整m毫秒的指令,其中m=a-b,a為所述最大時間差,b為該視頻解碼器收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差。
[0017]優(yōu)選地,當各視頻解碼器中任一視頻解碼器計算出的所述時間差與所述最大的時間差之間的差值超出所述顯示緩沖時間時,拼接控制器向所述視頻解碼器發(fā)出包含清空緩沖區(qū)命令的消息,所述輸出控制模塊進一步用于:收到該消息后,根據(jù)該消息中的清空緩沖區(qū)的命令清空視頻緩沖區(qū)的數(shù)據(jù)。
[0018]本發(fā)明方案通過提出一種分布式解碼拼接顯示方案,根據(jù)碼流中的時間戳嚴格控制每幀圖像的顯示時機,從而降低各輸出屏畫面不同步的時間,提升拼接圖像顯示效果。
【專利附圖】
【附圖說明】
[0019]圖1是一種現(xiàn)有技術(shù)中大屏拼接解決方案示意圖;
[0020]圖2是另一種現(xiàn)有技術(shù)中大屏拼接解決方案示意圖;
[0021]圖3是本發(fā)明提出的一種分布式拼接控制系統(tǒng)的拼接顯示流程示意圖;
[0022]圖4是本發(fā)明一種實施方式中一種分布式圖像拼接同步的方法流程圖;
[0023]圖5是本發(fā)明一種實施方式中選定首幀到達時間的示意圖;
[0024]圖6是本發(fā)明一種實施方式中對各子顯示屏的顯示輸出口進行首幀到達時間同步的不意圖;
[0025]圖7是本發(fā)明一種實施方式中根據(jù)時間戳進行顯示控制的流程圖;
[0026]圖8是本發(fā)明一種實施方式中一種分布式圖像拼接同步裝置的邏輯裝置。
【具體實施方式】
[0027]針對【背景技術(shù)】中提出的技術(shù)問題,本發(fā)明方案提出一種分布式拼接控制系統(tǒng),請參見圖3,與現(xiàn)有技術(shù)中采用的集成式拼接模式不同的是,該分布式拼接控制系統(tǒng)包括一臺拼接控制設備,若干視頻解碼器以及若干子顯示屏,其中所述若干視頻解碼器均連接于所述拼接控制器,每個視頻解碼器連接一個或多個子顯示屏。在具體實施過程中,由拼接控制設備根據(jù)拼接業(yè)務,將碼流復制分發(fā)到多個視頻解碼器上,各視頻解碼器對碼流進行解碼后,根據(jù)拼接業(yè)務,只輸出圖像的其中一部分畫面。當然,若視頻解碼器支持多路解碼輸出,則該視頻解碼器可負責輸出畫面的多個部分,如圖4中的視頻解碼器I。為描述簡便,本文中涉及的視頻解碼器輸出的幀均是指該視頻解碼器對應需輸出的該幀的部分畫面。比如說,圖3中解碼器2輸出的第I幀的描述實際指解碼器2輸出的第I幀的第2部分畫面。
[0028]對于該分布式拼接控制系統(tǒng),圖像的拼接同步是無法回避的問題。本發(fā)明提出一種適用于該分布式拼接控制系統(tǒng)的圖像拼接同步的方法和裝置。以下結(jié)合具體實施例詳細說明。
[0029]請參見圖4,該方法執(zhí)行如下步驟:
[0030]S401、對所述拼接控制器輸出的視頻幀進行解碼,并將解碼后的視頻數(shù)據(jù)存于顯存中;在顯示輸出中斷產(chǎn)生時,根據(jù)公式Xn=(Tn-Tl)+tl+d計算出第η幀的理論顯示輸出時間;
[0031]其中,Xn表示計算得到的第η幀的理論顯示輸出時間;tl表示與其它視頻解碼器同步后的首幀到達顯存的系統(tǒng)時間;所述Tl以及Tn分別表示首幀以及第η幀中攜帶的時間戳;所述d表示所述顯示緩沖時間,該時間為顯示輸出中斷產(chǎn)生周期的整數(shù)倍;所述η為大于I的整數(shù);其中該解碼器產(chǎn)生顯示輸出中斷的時間與其它解碼器產(chǎn)生顯示輸出中斷的時間同步;[0032]S402、判斷當前準備顯示第η幀的時間是否大于等于所述Xn ;若是,則輸出該第η幀數(shù)據(jù)由該解碼器對應的子顯示屏進行顯示;否則,待下一個顯示輸出中斷產(chǎn)生時重新執(zhí)行步驟S402。
[0033]在顯示輸出階段,各視頻解碼器的顯示輸出芯片每顯示一幀圖像后都會產(chǎn)生一個顯示輸出中斷用于對下一幀圖像進行設置。然而,在該分布式拼接的系統(tǒng)中,由于各視頻解碼器的顯示輸出芯片產(chǎn)生顯示輸出中斷的時機不一致,會導致圖像顯示的不同步。
[0034]因此,在本實施例中,需要預先對各視頻解碼器的顯示輸出芯片產(chǎn)生顯示中斷的時間進行同步。對各視頻解碼器的顯示輸出芯片產(chǎn)生的顯示輸出中斷的時間進行同步的過程,具體由拼接控制器執(zhí)行。在實際的運用中,拼接控制器可通過控制各視頻解碼器同時重置顯示輸出芯片,來保證各視頻解碼器產(chǎn)生顯示輸出中斷的時間為同一時刻。在一種優(yōu)選的方式中,由于在實際應用中拼接控制器與各視頻解碼器位于同一局域網(wǎng)內(nèi),因此拼接控制器可發(fā)送一個包含重置命令的組播消息,當該網(wǎng)絡內(nèi)各視頻解碼器收到該組播消息后,根據(jù)該組播消息中的重置命令對顯示輸出芯片進行重置,以實現(xiàn)顯示輸出中斷時間的同步。由于拼接控制器與各視頻解碼器位于同一局域網(wǎng),因此組播消息的實時性可最大程度的保證所有的顯示輸出芯片都同時收到該組播消息,從而實現(xiàn)各解碼器產(chǎn)生顯示輸出中斷的時機一致。
[0035]在本實施例中,各視頻解碼器收到拼接控制器輸出的視頻幀后,是通過周期性的調(diào)用公式Xn=(Tn-Tl)+tl+d來計算并控制第η幀的顯示和輸出時間的,其中該公式的調(diào)用周期為視頻解碼器產(chǎn)生顯示輸出中斷的周期。在該公式中,Tn和Tl為視頻數(shù)據(jù)中攜帶的時間戳。由于時間戳和參數(shù)d均為固定值,因此在本實施例中,Xn-tl實際是在和一個固定值在比較。即如果各視頻解碼器記錄的首幀到達顯存的時間tl相同,根據(jù)該公式,那么計算出的第η幀的理論顯示輸出時間必然相同。從而,為了保證各視頻解碼器的顯存收到首幀的時間tl相同,還需對所述首幀到達各視頻解碼器的顯存的時間tl進行同步。
[0036]以下參照附圖并結(jié)合實際例子對拼接控制器對各視頻解碼器中記錄的首幀到達顯存的時間進行同步的過程作進一步的描述:
[0037]在本實施例中,所述記錄的首幀到達各視頻解碼器的顯存的時間具體為首幀到達顯存后,記錄的下一個顯示輸出中斷產(chǎn)生的系統(tǒng)時間。請參見6,由于顯示輸出中斷產(chǎn)生的時間已經(jīng)預先進行了同步,而各視頻解碼器顯存收到首幀的時間可能存在差異,因此為了盡可能保證各視頻解碼器記錄的首幀到達顯存的時間相同,可記錄當首幀實際到達顯存后,下一個顯示輸出中斷產(chǎn)生的系統(tǒng)時間作為該首幀到達顯存的時間。比如圖5中的VOO和V01,首幀到達的實際時間雖然不相同,但如果選定首幀到達顯存后記錄的下一個顯示輸出中斷產(chǎn)生的時間作為該首幀到顯存的時間,最終VOO和VOl記錄的時間tl均相同。
[0038]但是在很多時候,首幀到達不同視頻解碼器的時間差可能大于一個顯示輸出中斷周期,所以上述方法并不能完全解決問題。本發(fā)明實施例在上述方法的基礎上,進一步按照以下方式進行操作。
[0039]在對各視頻解碼器記錄的首幀到達顯存的時間tl進行同步時,拼接控制器可通過向各解碼器發(fā)送一個組播消息來查詢并確定各視頻解碼器中首幀最早到達顯存的視頻解碼器,并將該視頻解碼器首幀到達顯存的時間作為基準值,以此對其他各視頻解碼器首幀到達顯存的時間進行校正。[0040]然而,由于各解碼器的系統(tǒng)時間可能各不相同,各視頻解碼器記錄的首幀到達顯存的系統(tǒng)時間可能各不相同,因此在本實施例中,拼接控制器是通過查詢各視頻解碼器收到查詢消息的時間與記錄的首幀到達顯存的系統(tǒng)時間之間的時間差值,來確定各視頻解碼器中首幀最早到達顯存的視頻解碼器。例如,拼接控制器可向各解碼器統(tǒng)一發(fā)出一個組播消息作為查詢消息,各解碼器收到該查詢消息后,計算出收到該查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的時間的時間差后,將該時間差作為查詢結(jié)果返回給拼接控制器。為了保證查詢結(jié)果的可靠,拼接控制器可通過多次查詢以保證查詢結(jié)果。由于組播消息的實時性,各解碼器收到查詢消息的時間可認為相同,因此當拼接控制器收到各視頻解碼器返回的所述時間差后,可根據(jù)不同視頻解碼器計算出的所述時間差,來判斷出各視頻解碼器中首幀最早到達顯存的視頻解碼器,即計算出的所述時間差最大的視頻解碼器為首幀最早到達顯存的視頻解碼器。
[0041]當確認了首幀最早到達顯存的視頻解碼器后,拼接控制器以該視頻解碼器計算出的時間差為基準值,對其他視頻解碼器記錄的首幀到達顯存的時間進行校正。具體為:向其他各視頻解碼器發(fā)送將記錄的首幀到達顯存的時間向前調(diào)整m毫秒的指令,其中m=a-b,a為所述各視頻解碼器中計算出的最大的所述時間差,b為各視頻解碼器收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差。例如:請參見圖3和圖6,以查詢?nèi)螢槔?,拼接控制器通過三次查詢后,通過各視頻解碼器返回的所述時間差最終確認出視頻解碼器I計算的時間差最大,即視頻解碼器I為首幀最早到達顯存的視頻解碼器,于是以視頻解碼器I返回的時間差作為基準值,對視頻解碼器2記錄的首幀到達顯存的時間進行校正。拼接控制器通過對視頻解碼器I和視頻解碼器2返回的所述時間差進一步計算差值,發(fā)現(xiàn)視頻解碼器2比視頻解碼器I記錄的首幀到達顯存的時間晚兩個顯示輸出中斷的產(chǎn)生周期,因此拼接控制器向視頻解碼器2發(fā)送首幀到達顯存的時間向前調(diào)整2個周期的指令,視頻解碼器2收到該指令后,將記錄的首幀到達時間減去兩個顯示輸出中斷產(chǎn)生周期的時間,從而保證視頻解碼器I和視頻解碼器2記錄的所述首幀到達顯存的時間一致。
[0042]其中,在本實施例中,當拼接控制器發(fā)現(xiàn)各視頻解碼器中任一視頻解碼器計算出的所述時間差,與所述首幀最早到達顯存的視頻解碼器計算出的所述時間差之間的差值,超出各視頻解碼器的顯示緩沖時間時,統(tǒng)一向各視頻解碼器發(fā)出一個包含清空緩沖區(qū)命令的消息;各視頻解碼器收到該消息后,清空各自的視頻緩沖區(qū)的數(shù)據(jù)后,重新執(zhí)行以上各步驟。在本實施例中,各視頻解碼器的顯示緩沖時間均相同,同時為了方便對各視頻解碼器記錄的首幀時間進行調(diào)整,該顯示緩沖時間為各解碼器顯示輸出中斷產(chǎn)生周期的整數(shù)倍。
[0043]通過對本實施例以上的描述,如果首幀到達各視頻解碼器顯存的時間tl相同時,各視頻解碼器根據(jù)公式Xn= (Tn-Tl) +tl+d計算出的各視頻解碼器第η幀的理論顯示輸出時間必然相同。因此對于一個視頻解碼器來說,在視頻的顯示輸出階段,可根據(jù)計算出的第η幀的理論顯示輸出時間對第η幀進行顯示和輸出控制。比如當視頻解碼器準備對第η幀進行顯示并輸出時,可以通過比較當前系統(tǒng)準備顯示第η幀的時間和所述Χη,來進一步確認是否顯示該第η幀。請參見圖7,在圖7中tn表示當前系統(tǒng)準備顯示第η幀時的系統(tǒng)時間。視頻解碼器從解碼后視頻緩沖區(qū)獲取第η幀數(shù)據(jù)后,當系統(tǒng)準備顯示第η幀時,視頻解碼器通過比較tn和由上述公式計算出的Xn,來確定是否顯示該第η幀;如果所述tn大于等于Xn,將該幀輸出給對應的子顯示屏進行顯示;假如顯示輸出中斷每16.7ms(60fps輸出時)產(chǎn)生一次,因此tn以16.7ms的梯度在增加,當首次滿足以上條件時,則將該幀輸出給對應的子顯示屏進行顯示,此時tn大于等于Xn,小于Xn+16.7ms,因此可以將視頻幀的不同步的時間控制在一個顯示輸出中斷產(chǎn)生周期之內(nèi)。另外,如果所述tn小于Xn,則不處理該幀,待下一個顯示輸出中斷周期再進行判斷是否顯示該幀。
[0044]當然,在本實施例中,拼接控制器可周期性使用上述方法對對各視頻解碼器進行顯示輸出中斷的同步,以及對所述首幀到達各視頻解碼器的顯存的時間進行同步,具體實施步驟與本實施例以上描述相同,在此不再贅述。
[0045]通過本實施例以上描述,可獲知到在本發(fā)明方案中,拼接控制器可周期性的對各視頻解碼器產(chǎn)生顯示輸出中斷的時機以及輸出的首幀到達各視頻解碼器的顯存的時間進行同步,從而最大程度避免了由于各視頻解碼器產(chǎn)生顯示輸出中斷的時機不同而造成的時間誤差。在本發(fā)明中,拼接控制器實際只利用了各視頻解碼器收到查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的時間,對各視頻解碼器的首幀到達顯存的時間進行了同步,并不需要對不同視頻解碼器的系統(tǒng)時間進行同步,因此同步效果更有效。
[0046]請參考圖8,本發(fā)明還提出一種分布式圖像拼接同步裝置80,該裝置應用于一種分布式拼接控制系統(tǒng)中的視頻解碼器上,所述分布式拼接控制系統(tǒng)還包括拼接控制器、若干子顯示屏以及其它視頻解碼器,其中所述各視頻解碼器均連接于所述拼接控制器,每個視頻解碼器連接一個或多個子顯示屏,該裝置包括:
[0047]解碼運算模塊81,用于對所述拼接控制器輸出的視頻幀進行解碼,并將解碼后的視頻數(shù)據(jù)存于顯存中,并在顯示輸出中斷產(chǎn)生時,根據(jù)公式Xn= (Tn-Tl)+tl+d計算出第η幀的理論顯示輸出時間;
[0048]其中,Xn表示計算得到的第η幀的理論顯示輸出時間;tl表示與其它視頻解碼器同步后的首幀到達顯存的系統(tǒng)時間;所述Tl以及Tn分別表示首幀以及第η幀中攜帶的時間戳;所述d表示所述顯示緩沖時間,該時間為顯示輸出中斷產(chǎn)生周期的整數(shù)倍;所述η為大于I的整數(shù);所述解碼器產(chǎn)生顯示輸出中斷的時間與其它解碼器產(chǎn)生顯示輸出中斷的時間同步;
[0049]輸出控制模塊82,用于判斷當前準備顯示第η幀的時間是否大于等于所述Xn ;若是,則輸出該第η幀數(shù)據(jù)由該解碼器對應的子顯示屏進行顯示;否則,待下一個顯示輸出中斷產(chǎn)生時重新判斷是否輸出該第η幀。
[0050]在本實施例中,所述解碼運算模塊進一步用于:接收由所述拼接控制器發(fā)出的包含重置命令的組播消息,并根據(jù)該組播消息中的重置命令重置顯示輸出芯片,以實現(xiàn)顯示輸出中斷時間與其它解碼器的同步。
[0051 ] 在本實施例中,所述解碼運算模塊進一步用于:當收到來自所述拼接控制器發(fā)出的首幀到達時間的查詢消息后,計算收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差,并將該時間差通告給所述拼接控制器,以使得所述拼接控制器可根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步。
[0052]在本實施例中,所述拼接控制器根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步具體為:拼接控制器以所述通告的時間差中最大的時間差為基準,向該視頻解碼器發(fā)送將記錄的首幀到達顯存的時間向前調(diào)整m毫秒的指令,其中m=a-b,a為所述最大時間差,b為該視頻解碼器收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差。
[0053]在本實施例中,當各視頻解碼器中任一視頻解碼器計算出的所述時間差與所述最大的時間差之間的差值超出所述顯示緩沖時間時,拼接控制器向所述視頻解碼器發(fā)出包含清空緩沖區(qū)命令的消息,所述輸出控制模塊進一步用于:收到該消息后,根據(jù)該消息中的清空緩沖區(qū)的命令清空視頻緩沖區(qū)的數(shù)據(jù)。
[0054]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種分布式圖像拼接同步的方法,應用于一種分布式拼接控制系統(tǒng)中的視頻解碼器上,其特征在于,所述分布式拼接控制系統(tǒng)包括拼接控制器、若干視頻解碼器以及若干子顯示屏,其中所述若干視頻解碼器均連接于所述拼接控制器,每個視頻解碼器連接一個或多個子顯示屏,所述方法包括: 步驟A、對所述拼接控制器輸出的視頻幀進行解碼,并將解碼后的視頻數(shù)據(jù)存于顯存中;在顯示輸出中斷產(chǎn)生時,根據(jù)公式Xn=(Tn-Tl)+tl+d計算出第n幀的理論顯示輸出時間;其中Xn表示計算得到的第n幀的理論顯示輸出時間;tl表示與其它視頻解碼器同步后的首幀到達顯存的系統(tǒng)時間;所述Tl以及Tn分別表示首幀以及第n幀中攜帶的時間戳;所述d表示所述顯示緩沖時間,該時間為顯示輸出中斷產(chǎn)生周期的整數(shù)倍;所述n為大于1的整數(shù);其中該解碼器產(chǎn)生顯示輸出中斷的時間與其它解碼器產(chǎn)生顯示輸出中斷的時間同步。 步驟B、判斷當前準備顯示第η幀的時間是否大于等于所述Xn ;若是,則輸出該第n幀數(shù)據(jù)由該解碼器對應的子顯示屏進行顯示;否則,待下一個顯示輸出中斷產(chǎn)生時重新執(zhí)行步驟B。
2.如權(quán)利要求1所述的方法,其特征在于,所述視頻解碼器接收由所述拼接控制器發(fā)出的包含重置命令的組播消息,并根據(jù)該組播消息中的重置命令重置顯示輸出芯片,以實現(xiàn)顯示輸出中斷時間與其它解碼器的同步。
3.如權(quán)利要求2所述的方法,其特征在于,所述視頻解碼器收到來自所述拼接控制器發(fā)出的首幀到達時間查詢消息后,計算收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差,并將該時間差通告給所述拼接控制器,以使得所述拼接控制器可根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步。
4.如權(quán)利要求3所述的方法,其特征在于,所述拼接控制器根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步具體為:拼接控制器以所述通告的時間差中最大的時間差為基準,向該視頻解碼器發(fā)送將記錄的首幀到達顯存的時間向前調(diào)整m毫秒的指令,其中m=a-b,a為所述最大時間差,b為該視頻解碼器收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差。
5.如權(quán)利要求4所述的方法,其特征在于,當各視頻解碼器中任一視頻解碼器計算出的所述時間差與所述最大的時間差之間的差值超出所述顯示緩沖時間時,拼接控制器向所述視頻解碼器發(fā)出包含清空緩沖區(qū)命令的消息,所述視頻解碼器收到該消息后,根據(jù)該消息中的清空緩沖區(qū)的命令清空視頻緩沖區(qū)的數(shù)據(jù),返回執(zhí)行步驟A。
6.一種分布式圖像拼接同步裝置,該裝置應用于一種分布式拼接控制系統(tǒng)中的視頻解碼器上,其特征在于,所述分布式拼接控制系統(tǒng)還包括拼接控制器、若干子顯示屏以及其它視頻解碼器,其中所述各視頻解碼器均連接于所述拼接控制器,每個視頻解碼器連接一個或多個子顯示屏,該裝置包括: 解碼運算模塊,用于對所述拼接控制器輸出的視頻幀進行解碼,并將解碼后的視頻數(shù)據(jù)存于顯存中,并在顯示輸出中斷產(chǎn)生時,根據(jù)公式Xn= (Tn-Tl)+tl+d計算出第η幀的理論顯示輸出時間;其中Xn表示計算得到的第η幀的理論顯示輸出時間;tl表示與其它視頻解碼器同步后的首幀到達顯存的系統(tǒng)時間;所述Tl以及Tn分別表示首幀以及第η幀中攜帶的時間戳;所述d表示所述顯示緩沖時間,該時間為顯示輸出中斷產(chǎn)生周期的整數(shù)倍;所述η為大于I的整數(shù);所述解碼器產(chǎn)生顯示輸出中斷的時間與其它解碼器產(chǎn)生顯示輸出中斷的時間同步; 輸出控制模塊,用于判斷當前準備顯示第η幀的時間是否大于等于所述Xn;若是,則輸出該第η幀數(shù)據(jù)由該解碼器對應的子顯示屏進行顯示;否則,待下一個顯示輸出中斷產(chǎn)生時重新判斷是否輸出該第η幀。
7.如權(quán)利要求6所述的視頻解碼器,其特征在于,所述解碼運算模塊進一步用于:接收由所述拼接控制器發(fā)出的包含重置命令的組播消息,并根據(jù)該組播消息中的重置命令重置顯示輸出芯片,以實現(xiàn)顯示輸出中斷時間與其它解碼器的同步。
8.如權(quán)利要求7所述的視頻解碼器,其特征在于,所述解碼運算模塊進一步用于:當收到來自所述拼接控制器發(fā)出的首幀到達時間的查詢消息后,計算收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差,并將該時間差通告給所述拼接控制器,以使得所述拼接控制器可根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步。
9.如權(quán)利要求8所述的視頻解碼器,其特征在于,所述拼接控制器根據(jù)該時間差以及其他視頻解碼器通告的時間差對該視頻解碼器首幀到達顯存的時間進行與其它視頻解碼器的同步具體為:拼接控制器以所述通告的時間差中最大的時間差為基準,向該視頻解碼器發(fā)送將記錄的首幀到達顯存的時間向前調(diào)整m毫秒的指令,其中m=a-b,a為所述最大時間差,b為該視頻解碼器收到所述查詢消息的系統(tǒng)時間與記錄的首幀到達顯存的系統(tǒng)時間的時間差。
10.如權(quán)利要求9所述的視頻解碼器,其特征在于,當各視頻解碼器中任一視頻解碼器計算出的所述時間差與所述最大的時間差之間的差值超出所述顯示緩沖時間時,拼接控制器向所述視頻解碼器發(fā)出包含清空緩沖區(qū)命令的消息,所述輸出控制模塊進一步用于:收到該消息后,根據(jù)該消息中的清空緩沖區(qū)的命令清空視頻緩沖區(qū)的數(shù)據(jù)。
【文檔編號】G06F3/14GK103795979SQ201410031868
【公開日】2014年5月14日 申請日期:2014年1月23日 優(yōu)先權(quán)日:2014年1月23日
【發(fā)明者】方煒 申請人:浙江宇視科技有限公司