專利名稱:對(duì)i幀進(jìn)行同步的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像拼接技術(shù),特別涉及對(duì)I幀進(jìn)行同步的方法及設(shè)備。
背景技術(shù):
下面首先對(duì)本發(fā)明涉及的一些概念進(jìn)行簡(jiǎn)要說明一個(gè)GOP (畫面組,Group of Pictures)就是一組連續(xù)的畫面。MPEG編碼技術(shù)將畫面(即幀)分為I幀、P幀、B幀三種。其中1是內(nèi)部編碼幀,P是前向預(yù)測(cè)幀,B是雙向內(nèi)插幀。簡(jiǎn)單地講,I幀是一個(gè)完整的畫面,是每個(gè)GOP的第一個(gè)幀,而P幀和B幀記錄的是相對(duì)于I幀的變化,P幀由在它前面的P幀或I幀進(jìn)行預(yù)測(cè)。沒有I幀,P幀和B幀就無
法解碼。GOP的長(zhǎng)度(或者稱為GOP周期)是一個(gè)I幀到下一個(gè)I幀的間隔,即多少幀里面出現(xiàn)一次I幀。在監(jiān)控系統(tǒng)中,視頻全景拼接業(yè)務(wù)是將來自幾個(gè)IP網(wǎng)絡(luò)攝像機(jī)(IPC)或編碼器 (EC, Encoder)的攝像機(jī)的圖像拼接成大畫幅圖像。視頻全景拼接業(yè)務(wù)與普通的監(jiān)控業(yè)務(wù)相同,有實(shí)況圖像播放與歷史回放。歷史錄像存儲(chǔ)一般采用監(jiān)控前端直存模式,對(duì)各個(gè)IPC或EC所產(chǎn)生的視頻流進(jìn)行獨(dú)立存儲(chǔ)。實(shí)施視頻全景拼接技術(shù)的挑戰(zhàn)之一就是由于各個(gè)IPC或EC有各自獨(dú)立的編碼時(shí)鐘,使得I幀在各個(gè)IPC或EC的GOP周期內(nèi)的分布位置各不相同。對(duì)于實(shí)況圖像播放而言,拼接圖像后,如果I幀不同步,在拼接邊緣將導(dǎo)致畫質(zhì)下降。此外,對(duì)于歷時(shí)回放而言, 在回放快進(jìn)與快退時(shí)一般只對(duì)所存儲(chǔ)的歷史圖像中的I幀進(jìn)行解碼,由于拼接圖像中各個(gè)歷史圖像的I幀不同步,使得只能對(duì)I幀與P幀全部進(jìn)行解碼才能達(dá)到同步快進(jìn)與快退,這將大大降低性能。
發(fā)明內(nèi)容
本發(fā)明提供了一種對(duì)I幀進(jìn)行同步的方法及設(shè)備,以解決對(duì)監(jiān)控圖像進(jìn)行視頻全景拼接時(shí),由于I幀不同步所導(dǎo)致的畫質(zhì)下降、性能下降等問題。本發(fā)明提供的一種對(duì)I幀進(jìn)行同步的方法,應(yīng)用于視頻全景拼接,包括編碼設(shè)備向所述視頻全景拼接中的基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)計(jì)算其自身與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差以及內(nèi)部編碼幀(I幀)相對(duì)偏移值;編碼設(shè)備根據(jù)計(jì)算得到的I幀相對(duì)偏移值確定其自身產(chǎn)生I幀的時(shí)刻,并采用與基準(zhǔn)編碼設(shè)備相同的畫面組(GOP)長(zhǎng)度產(chǎn)生I幀。本發(fā)明提供的一種進(jìn)行視頻全景拼接的方法,包括接收除基準(zhǔn)編碼設(shè)備之外的各個(gè)編碼設(shè)備與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差,并接收參與視頻全景拼接的各個(gè)編碼設(shè)備的視頻流;根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接實(shí)況圖像播放和/或歷史回放。本發(fā)明提供的一種編碼設(shè)備,應(yīng)用于視頻全景拼接,包括同步模塊和視頻產(chǎn)生模塊;同步模塊,用于向所述視頻全景拼接中的基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)計(jì)算其自身與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差以及I幀相對(duì)偏移值;視頻產(chǎn)生模塊,用于根據(jù)計(jì)算得到的I幀相對(duì)偏移值確定其自身產(chǎn)生I幀的時(shí)刻, 并采用與基準(zhǔn)編碼設(shè)備相同的畫面組(GOP)長(zhǎng)度產(chǎn)生I幀。一種進(jìn)行視頻全景拼接的設(shè)備,其特征在于,包括接收模塊和拼接模塊;接收模塊,用于接收參與視頻全景拼接的各個(gè)編碼設(shè)備的視頻流,并用于接收除基準(zhǔn)編碼設(shè)備之外的各個(gè)編碼設(shè)備與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差;拼接模塊,用于根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接實(shí)況圖像播放和/或歷史回放。由上述技術(shù)方案可見,本發(fā)明提供的對(duì)I幀進(jìn)行同步的方法及設(shè)備,在執(zhí)行視頻全景拼接時(shí),在參與視頻全景拼接的編碼設(shè)備中確定一個(gè)基準(zhǔn)編碼設(shè)備,其他編碼設(shè)備向該基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)與基準(zhǔn)編碼設(shè)備進(jìn)行I幀同步, 從而使參與視頻全景拼接的各編碼設(shè)備之間的I幀同步,提高了視頻全景拼接的實(shí)況圖像播放和歷史回放的畫質(zhì)和性能。
圖1為本發(fā)明一較佳實(shí)施例中編碼設(shè)備之間的位置關(guān)系示意圖;圖2為本發(fā)明一較佳實(shí)施例中各參數(shù)及時(shí)序關(guān)系示意圖;圖3為本發(fā)明一較佳編碼設(shè)備的組成結(jié)構(gòu)示意圖;圖4為本發(fā)明一較佳進(jìn)行視頻全景拼接的設(shè)備的組成結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。本發(fā)明的主要思想是在執(zhí)行視頻全景拼接時(shí),在參與視頻全景拼接的編碼設(shè)備中確定一個(gè)基準(zhǔn)編碼設(shè)備,其他編碼設(shè)備向該基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)與基準(zhǔn)編碼設(shè)備進(jìn)行I幀同步,從而使參與視頻全景拼接的各編碼設(shè)備之間的 I幀同步,提高視頻全景拼接的實(shí)況圖像播放和歷史回放的畫質(zhì)和性能。較佳地,可以由視頻管理服務(wù)器將視頻全景拼接中處于居中靠左位置的視頻源設(shè)備的編碼設(shè)備確定為基準(zhǔn)編碼設(shè)備,選擇處于居中靠左位置的編碼設(shè)備作為基準(zhǔn)編碼設(shè)備的原因是居中靠左位置的編碼設(shè)備與兩邊的編碼設(shè)備之間的時(shí)間偏差均較小,并且,與兩邊的編碼設(shè)備的距離比較均衡。當(dāng)然,在實(shí)際應(yīng)用中也可以選擇處于其他位置的編碼設(shè)備作為基準(zhǔn)編碼設(shè)備。假設(shè)為3個(gè)IPC進(jìn)行視頻全景拼接,如圖1所示,3個(gè)IPC分別為IPC1、IPC2、 IPC3。按照本發(fā)明主要思想,視頻全景拼接業(yè)務(wù)在執(zhí)行時(shí)(包括實(shí)況圖像播放或歷史圖像存儲(chǔ)),視頻管理服務(wù)器可以選定IPCl的編碼設(shè)備為基準(zhǔn)編碼設(shè)備(以下稱為基準(zhǔn)IPC),并要求IPC2和IPC3的編碼設(shè)備分別向IPCl的編碼設(shè)備獲取同步數(shù)據(jù)。為簡(jiǎn)化描述,在下面的實(shí)施例中,將IPC1、IPC2和IPC3的編碼設(shè)備分別簡(jiǎn)稱為IPC1、IPC2和IPC3。除了圖1 所示的IPC的應(yīng)用場(chǎng)景外,不同的攝像頭連接不同的編碼器進(jìn)行視頻全景拼接的場(chǎng)景也能應(yīng)用本發(fā)明技術(shù)。以圖1所示應(yīng)用場(chǎng)景為例,下面參見圖2對(duì)本發(fā)明所提供的同步方法的實(shí)現(xiàn)流程進(jìn)行詳細(xì)說明。第1步IPC2等待視頻I幀產(chǎn)生,記錄當(dāng)前I幀的時(shí)間戳為tl、幀序號(hào)fl,向IPCl 發(fā)送同步請(qǐng)求消息,該消息中攜帶有該消息離開IPC2時(shí)的時(shí)間戳t2、tl及f 1。第2步當(dāng)同步請(qǐng)求消息到達(dá)IPCl時(shí),IPCl記錄時(shí)間戳t3。第3步IPC1等待視頻I幀產(chǎn)生,記錄當(dāng)前I幀的時(shí)間戳為t4以及幀序號(hào)f2,IPCl 向IPC2反饋同步響應(yīng)消息,該消息中攜帶有該消息離開IPCl時(shí)的時(shí)間戳t5、tl、t2、t3、 t4、fl、f2、IPCl的I幀間隔GOP參數(shù)、視頻編碼格式(如 64)、視頻分辨率。第4步IPC2接收到來自IPCl的同步響應(yīng)消息時(shí),記錄時(shí)間戳t6。第5步IPC2進(jìn)行下列計(jì)算1)計(jì)算 IPC2 相對(duì)于 IPCl 的時(shí)間差toff = ((t3_t2) + (t5_t6))/2。2)計(jì)算IPCl的I幀產(chǎn)生時(shí)刻在IPC2上對(duì)應(yīng)的時(shí)間戳t4,= t4-toff03)計(jì)算IPC2的I幀與IPCl的I幀的時(shí)間差offset = t4,-tl。4)計(jì)算IPCl的I幀產(chǎn)生時(shí)刻在IPC2上對(duì)應(yīng)的幀序號(hào)f3 = (fl+offset/幀間隔)取整。也就是說,IPC2的I幀對(duì)齊IPCl的I幀時(shí),幀序號(hào)f3在IPC2上應(yīng)當(dāng)是一個(gè)I幀。幀間隔為兩幀之間的時(shí)間差,在中國(guó),視頻信號(hào)一般為PAL(25幀/秒),幀間隔為 40ms,本發(fā)明要求IPC1、IPC2和IPC3具有相同的幀率(即幀間隔)。這里,由于幀序號(hào)是整數(shù),需要對(duì)計(jì)算結(jié)果進(jìn)行取整,具體的取整策略可以是四舍五入。5)計(jì)算I幀相對(duì)偏移值:f4 = f3mod(IPCl的GOP值);這里,I幀相對(duì)偏移值是指IPC2的I幀對(duì)齊IPCl的I幀時(shí),在一個(gè)GOP長(zhǎng)度內(nèi), IPC2的I幀幀數(shù)的偏移值。由于I幀是周期性產(chǎn)生的,將IPC2的I幀向IPCl的I幀對(duì)齊時(shí),需要對(duì)IPC2產(chǎn)生I幀的時(shí)刻進(jìn)行調(diào)整,使之與IPCl產(chǎn)生I幀的時(shí)刻相同,本步驟計(jì)算得到的I幀相對(duì)偏移值就是在IPC2處產(chǎn)生I幀時(shí)需要進(jìn)行調(diào)整的幀數(shù)。6)計(jì)算同一時(shí)刻IPC2相對(duì)IPCl的幀序號(hào)差f5 = f3_f2。第6步IPC2處理記錄IPC2與IPCl同一時(shí)刻的幀序號(hào)差f5,用于客戶端的實(shí)況圖像播放與歷史回放的幀同步;將IPC2的GOP長(zhǎng)度設(shè)置為與IPCl的GOP長(zhǎng)度相同,并設(shè)置與IPCl相同的視頻編碼格式與視頻分辨率,并設(shè)置I幀相對(duì)偏移值f4。進(jìn)行上述設(shè)置后,IPC2按照所設(shè)置的f4和GOP長(zhǎng)度確定產(chǎn)生I幀的時(shí)刻,并采用所設(shè)置的GOP長(zhǎng)度、視頻編碼格式和視頻分辨率產(chǎn)生I幀,即可與IPCl實(shí)現(xiàn)I幀對(duì)齊。例如假設(shè)幀號(hào)fl為2004,幀號(hào)f2為1002,IPC2與IPCl的時(shí)間差為4秒,幀間隔為 0. 04 秒(25 幀率),IPCl 的 GOP 值為 30 ;那么,f3= 2004+4/0. 04 = 2104,f4 = 2104 對(duì) 30 取模=4。如果IPC2的當(dāng)前幀序號(hào)值為2300,則下一個(gè)I幀計(jì)算2300+4+30-(2300對(duì)30取模)為=2314,將幀號(hào)2314所對(duì)應(yīng)的時(shí)刻確定為產(chǎn)生最近的下一個(gè)幀預(yù)期最近產(chǎn)生的I幀的序號(hào)時(shí)刻,最近的下一個(gè)I幀的序號(hào)就是2314。至此,完成IPC2與IPCl之間的同步。IPC3與IPCl之間的同步可以按照上述方法進(jìn)行,并且兩種同步可同時(shí)進(jìn)行。本發(fā)明中,對(duì)IPC1、IPC2、IPC3所產(chǎn)生的視頻流還是獨(dú)立存儲(chǔ),IPC2和IPC3記錄其各自相對(duì)IPCl的幀序號(hào)差f5。在客戶端進(jìn)行實(shí)況播放或回放時(shí),客戶端接收來自IPC1、IPC2、IPC3的實(shí)況流,并從IPC2和IPC3接收其各自相對(duì)IPCl的幀序號(hào)差,并在進(jìn)行視頻全景拼接時(shí),根據(jù)幀序號(hào)差進(jìn)行拼接,從而保證幀同步。例如假設(shè)IPC2與IPCl的幀序號(hào)差f5為100巾貞,客戶端收到IPC2數(shù)據(jù)包的幀序號(hào)為10106,IPCl數(shù)據(jù)包的幀序號(hào)為10001,則緩存IPC2的數(shù)據(jù)包,等收到IPCl的幀序號(hào)為 10006數(shù)據(jù)包時(shí),才將IPCl的幀序號(hào)為10006數(shù)據(jù)包與IPC2的幀序號(hào)為10106的數(shù)據(jù)包一
起解碼、拼接。對(duì)應(yīng)于上述方法,本發(fā)明提供了一種如圖3所示的編碼設(shè)備,該編碼設(shè)備應(yīng)用于視頻全景拼接,包括同步模塊310和視頻產(chǎn)生模塊320。其中同步模塊310,用于向所述視頻全景拼接中的基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)計(jì)算其自身與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差以及I幀相對(duì)偏移值;視頻產(chǎn)生模塊320,用于根據(jù)計(jì)算得到的I幀相對(duì)偏移值確定其自身產(chǎn)生I幀的時(shí)亥|J,并采用與基準(zhǔn)編碼設(shè)備相同的畫面組(GOP)長(zhǎng)度產(chǎn)生I幀。圖3所示編碼設(shè)備中的同步模塊310可以用于執(zhí)行以下操作記錄視頻產(chǎn)生模塊當(dāng)前產(chǎn)生的I幀的時(shí)間戳tl和幀序號(hào)f 1,向基準(zhǔn)編碼設(shè)備發(fā)送同步請(qǐng)求消息,消息中攜帶該消息離開所述編碼設(shè)備的時(shí)間戳t2,以及tl和fl ;從基準(zhǔn)編碼設(shè)備接收同步響應(yīng)消息,記錄時(shí)間戳t6,所述同步響應(yīng)消息中攜帶 該同步響應(yīng)消息離開基準(zhǔn)編碼設(shè)備的時(shí)間戳t5、基準(zhǔn)編碼設(shè)備收到所述同步請(qǐng)求消息的時(shí)間戳t3、基準(zhǔn)編碼設(shè)備收到所述同步請(qǐng)求消息之后產(chǎn)生I幀的時(shí)間戳t4和幀序號(hào)f2,以及 tl、t2、Π、基準(zhǔn)編碼設(shè)備的GOP長(zhǎng)度、視頻編碼格式和視頻分辨率;計(jì)算所述編碼設(shè)備相對(duì)于基準(zhǔn)編碼設(shè)備的時(shí)間差tofT = ((t3-t2) + (t5-t6))/2 ;計(jì)算基準(zhǔn)編碼設(shè)備的I幀產(chǎn)生時(shí)刻在所述編碼設(shè)備上對(duì)應(yīng)的時(shí)間戳t4’ = t4-toff ;計(jì)算所述編碼設(shè)備的I幀與基準(zhǔn)編碼設(shè)備的I幀的時(shí)間差offset = t4’ -tl ;計(jì)算基準(zhǔn)編碼設(shè)備的I幀產(chǎn)生時(shí)刻在所述編碼設(shè)備上對(duì)應(yīng)的幀序號(hào)f3 = (Π+offset/幀間隔)取整;計(jì)算所述編碼設(shè)備的I幀相對(duì)偏移值f4 = f3mod(基準(zhǔn)編碼設(shè)備的GOP長(zhǎng)度);計(jì)算所述編碼設(shè)備相對(duì)基準(zhǔn)編碼設(shè)備的幀序號(hào)差f5 = f3_f2。本發(fā)明還提供了一種如圖4所示的進(jìn)行視頻全景拼接的設(shè)備,該設(shè)備包括接收模塊410和拼接模塊420。其中接收模塊410,用于接收參與視頻全景拼接的各個(gè)編碼設(shè)備的視頻流,并用于接收除基準(zhǔn)編碼設(shè)備之外的各個(gè)編碼設(shè)備與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差;
拼接模塊420,用于根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接實(shí)況圖像播放和/或歷史回放。圖4所示設(shè)備中的拼接模塊420,以所接收到的基準(zhǔn)編碼設(shè)備的視頻流中的數(shù)據(jù)包作為基準(zhǔn),在當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差大于所述編碼設(shè)備的幀序號(hào)差時(shí),用于將所述編碼設(shè)備的數(shù)據(jù)包緩存,在當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差小于所述編碼設(shè)備的幀序號(hào)差時(shí),用于丟棄所述基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包;并用于將各個(gè)編碼設(shè)備的減去其對(duì)應(yīng)的幀序號(hào)差之后與基準(zhǔn)編碼設(shè)備的幀序號(hào)相等的數(shù)據(jù)包與基準(zhǔn)編碼設(shè)備的相應(yīng)數(shù)據(jù)包一起解碼,并對(duì)解碼后的圖像進(jìn)行拼接。本發(fā)明還提供了一種進(jìn)行視頻全景拼接的方法,包括接收除基準(zhǔn)編碼設(shè)備之外的各個(gè)編碼設(shè)備與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差,并接收參與視頻全景拼接的各個(gè)編碼設(shè)備的視頻流;根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接實(shí)況圖像播放和/或歷史回放。上述方法中,所述根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接包括以所接收到的基準(zhǔn)編碼設(shè)備的視頻流中的數(shù)據(jù)包作為基準(zhǔn),如果當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差大于所述編碼設(shè)備的幀序號(hào)差,則緩存所述編碼設(shè)備的數(shù)據(jù)包,如果當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差小于所述編碼設(shè)備的幀序號(hào)差,則丟棄所述編碼設(shè)備的數(shù)據(jù)包;將各個(gè)編碼設(shè)備的減去其對(duì)應(yīng)的幀序號(hào)差之后與基準(zhǔn)編碼設(shè)備的幀序號(hào)相等的數(shù)據(jù)包與基準(zhǔn)編碼設(shè)備的相應(yīng)數(shù)據(jù)包一起解碼,并對(duì)解碼后的圖像進(jìn)行拼接。由上述實(shí)施例可見,本發(fā)明提供的對(duì)I幀進(jìn)行同步的方法及設(shè)備,在執(zhí)行視頻全景拼接時(shí),在參與視頻全景拼接的編碼設(shè)備中確定一個(gè)基準(zhǔn)編碼設(shè)備,其他編碼設(shè)備向該基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)與基準(zhǔn)編碼設(shè)備進(jìn)行I幀同步,從而使參與視頻全景拼接的各編碼設(shè)備之間的I幀同步,提高了視頻全景拼接的實(shí)況圖像播放和歷史回放的畫質(zhì)和性能。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種對(duì)I幀進(jìn)行同步的方法,應(yīng)用于視頻全景拼接,其特征在于,包括編碼設(shè)備向所述視頻全景拼接中的基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)計(jì)算其自身與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差以及I幀相對(duì)偏移值;編碼設(shè)備根據(jù)計(jì)算得到的I幀相對(duì)偏移值確定其自身產(chǎn)生I幀的時(shí)刻,并采用與基準(zhǔn)編碼設(shè)備相同的畫面組(GOP)長(zhǎng)度產(chǎn)生I幀。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括參與視頻全景拼接的編碼設(shè)備將自身所產(chǎn)生的視頻流發(fā)送給進(jìn)行視頻全景拼接的設(shè)備和/或存儲(chǔ)設(shè)備,除所述基準(zhǔn)編碼設(shè)備之外的編碼設(shè)備將其自身與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差發(fā)送給所述進(jìn)行視頻全景拼接的設(shè)備和/或存儲(chǔ)設(shè)備。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于 所述獲取同步數(shù)據(jù)包括編碼設(shè)備記錄自身當(dāng)前產(chǎn)生的I幀的時(shí)間戳tl和幀序號(hào)fl,向基準(zhǔn)編碼設(shè)備發(fā)送同步請(qǐng)求消息,消息中攜帶該消息離開所述編碼設(shè)備的時(shí)間戳t2,以及tl和fl ;從基準(zhǔn)編碼設(shè)備接收同步響應(yīng)消息,記錄時(shí)間戳t6,所述同步響應(yīng)消息中攜帶該同步響應(yīng)消息離開基準(zhǔn)編碼設(shè)備的時(shí)間戳t5、基準(zhǔn)編碼設(shè)備收到所述同步請(qǐng)求消息的時(shí)間戳 t3、基準(zhǔn)編碼設(shè)備收到所述同步請(qǐng)求消息之后產(chǎn)生I幀的時(shí)間戳t4和幀序號(hào)f2,以及tl、 t2、Π、基準(zhǔn)編碼設(shè)備的GOP長(zhǎng)度、視頻編碼格式和視頻分辨率;所述計(jì)算其自身與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差以及I幀相對(duì)偏移值包括 計(jì)算所述編碼設(shè)備相對(duì)于基準(zhǔn)編碼設(shè)備的時(shí)間差toff = ((t3-t2) + (t5-t6))/2 ; 計(jì)算基準(zhǔn)編碼設(shè)備的I幀產(chǎn)生時(shí)刻在所述編碼設(shè)備上對(duì)應(yīng)的時(shí)間戳t4’ = t4-toff ; 計(jì)算所述編碼設(shè)備的I幀與基準(zhǔn)編碼設(shè)備的I幀的時(shí)間差offset = t4’ -tl ; 計(jì)算基準(zhǔn)編碼設(shè)備的I幀產(chǎn)生時(shí)刻在所述編碼設(shè)備上對(duì)應(yīng)的幀序號(hào)f3 = (Π+offset/幀間隔)取整;計(jì)算所述編碼設(shè)備的I幀相對(duì)偏移值f4 = f3mod (基準(zhǔn)編碼設(shè)備的GOP長(zhǎng)度); 計(jì)算所述編碼設(shè)備相對(duì)基準(zhǔn)編碼設(shè)備的幀序號(hào)差f5 = f3-f2。
4.一種進(jìn)行視頻全景拼接的方法,其特征在于,包括接收除基準(zhǔn)編碼設(shè)備之外的各個(gè)編碼設(shè)備與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差,并接收參與視頻全景拼接的各個(gè)編碼設(shè)備的視頻流;根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接實(shí)況圖像播放和/或歷史回放。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接包括以所接收到的基準(zhǔn)編碼設(shè)備的視頻流中的數(shù)據(jù)包作為基準(zhǔn),如果當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差大于所述編碼設(shè)備的幀序號(hào)差,則緩存所述編碼設(shè)備的數(shù)據(jù)包,如果當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差小于所述編碼設(shè)備的幀序號(hào)差,則丟棄所述編碼設(shè)備的數(shù)據(jù)包;將各個(gè)編碼設(shè)備的減去其對(duì)應(yīng)的幀序號(hào)差之后與基準(zhǔn)編碼設(shè)備的幀序號(hào)相等的數(shù)據(jù)包與基準(zhǔn)編碼設(shè)備的相應(yīng)數(shù)據(jù)包一起解碼,并對(duì)解碼后的圖像進(jìn)行拼接。
6.一種編碼設(shè)備,應(yīng)用于視頻全景拼接,其特征在于,包括同步模塊和視頻產(chǎn)生模塊;同步模塊,用于向所述視頻全景拼接中的基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)計(jì)算其自身與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差以及I幀相對(duì)偏移值;視頻產(chǎn)生模塊,用于根據(jù)計(jì)算得到的I幀相對(duì)偏移值確定其自身產(chǎn)生I幀的時(shí)刻,并采用與基準(zhǔn)編碼設(shè)備相同的畫面組(GOP)長(zhǎng)度產(chǎn)生I幀。
7.根據(jù)權(quán)利要求6所述的編碼設(shè)備,其特征在于,所述同步模塊用于執(zhí)行以下操作 記錄視頻產(chǎn)生模塊當(dāng)前產(chǎn)生的I幀的時(shí)間戳tl和幀序號(hào)fl,向基準(zhǔn)編碼設(shè)備發(fā)送同步請(qǐng)求消息,消息中攜帶該消息離開所述編碼設(shè)備的時(shí)間戳t2,以及tl和fl ;從基準(zhǔn)編碼設(shè)備接收同步響應(yīng)消息,記錄時(shí)間戳t6,所述同步響應(yīng)消息中攜帶該同步響應(yīng)消息離開基準(zhǔn)編碼設(shè)備的時(shí)間戳t5、基準(zhǔn)編碼設(shè)備收到所述同步請(qǐng)求消息的時(shí)間戳 t3、基準(zhǔn)編碼設(shè)備收到所述同步請(qǐng)求消息之后產(chǎn)生I幀的時(shí)間戳t4和幀序號(hào)f2,以及tl、 t2、fl、基準(zhǔn)編碼設(shè)備的GOP長(zhǎng)度、視頻編碼格式和視頻分辨率;計(jì)算所述編碼設(shè)備相對(duì)于基準(zhǔn)編碼設(shè)備的時(shí)間差toff = ((t3-t2) + (t5-t6))/2 ; 計(jì)算基準(zhǔn)編碼設(shè)備的I幀產(chǎn)生時(shí)刻在所述編碼設(shè)備上對(duì)應(yīng)的時(shí)間戳t4’ = t4-toff ; 計(jì)算所述編碼設(shè)備的I幀與基準(zhǔn)編碼設(shè)備的I幀的時(shí)間差offset = t4’ -tl ; 計(jì)算基準(zhǔn)編碼設(shè)備的I幀產(chǎn)生時(shí)刻在所述編碼設(shè)備上對(duì)應(yīng)的幀序號(hào)f3 = (Π+offset/幀間隔)取整;計(jì)算所述編碼設(shè)備的I幀相對(duì)偏移值f4 = f3mod(基準(zhǔn)編碼設(shè)備的GOP長(zhǎng)度); 計(jì)算所述編碼設(shè)備相對(duì)基準(zhǔn)編碼設(shè)備的幀序號(hào)差f5 = f3-f2。
8.一種進(jìn)行視頻全景拼接的設(shè)備,其特征在于,包括接收模塊和拼接模塊;接收模塊,用于接收參與視頻全景拼接的各個(gè)編碼設(shè)備的視頻流,并用于接收除基準(zhǔn)編碼設(shè)備之外的各個(gè)編碼設(shè)備與基準(zhǔn)編碼設(shè)備之間的幀序號(hào)差;拼接模塊,用于根據(jù)接收到的視頻流和幀序號(hào)差進(jìn)行視頻全景拼接實(shí)況圖像播放和/ 或歷史回放。
9.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于所述拼接模塊,以所接收到的基準(zhǔn)編碼設(shè)備的視頻流中的數(shù)據(jù)包作為基準(zhǔn),在當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差大于所述編碼設(shè)備的幀序號(hào)差時(shí),用于將所述編碼設(shè)備的數(shù)據(jù)包緩存,在當(dāng)前接收到的編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)與基準(zhǔn)編碼設(shè)備的數(shù)據(jù)包的幀序號(hào)之差小于所述編碼設(shè)備的幀序號(hào)差時(shí),用于丟棄所述編碼設(shè)備的數(shù)據(jù)包;并用于將各個(gè)編碼設(shè)備的減去其對(duì)應(yīng)的幀序號(hào)差之后與基準(zhǔn)編碼設(shè)備的幀序號(hào)相等的數(shù)據(jù)包與基準(zhǔn)編碼設(shè)備的相應(yīng)數(shù)據(jù)包一起解碼,并對(duì)解碼后的圖像進(jìn)行拼接。
全文摘要
本發(fā)明提供了一種對(duì)I幀進(jìn)行同步的方法和設(shè)備,在執(zhí)行視頻全景拼接時(shí),各個(gè)編碼設(shè)備向基準(zhǔn)編碼設(shè)備獲取同步數(shù)據(jù),并根據(jù)所獲取的同步數(shù)據(jù)與基準(zhǔn)編碼設(shè)備進(jìn)行I幀同步。應(yīng)用本發(fā)明能夠提高視頻全景拼接的畫質(zhì)和性能。
文檔編號(hào)H04N7/26GK102510494SQ201110302958
公開日2012年6月20日 申請(qǐng)日期2011年10月9日 優(yōu)先權(quán)日2011年10月9日
發(fā)明者陳尚武 申請(qǐng)人:杭州華三通信技術(shù)有限公司