專利名稱:非直接獲取視頻應用場合拼接視頻同步播放方法及裝置的制作方法
技術領域:
本發(fā)明實施例涉及視頻處理領域,具體涉及一種非直接獲取視頻應用場合拼接視頻同步播放方法及裝置。
背景技術:
在直接獲取視頻的應用場合,比如直接通過PCI/PC1-E卡獲取視頻數(shù)據(jù),或者直接通過以太網(wǎng)獲取視頻數(shù)據(jù)以及通過其他數(shù)據(jù)接口直接獲取視頻數(shù)據(jù)的情況下,用戶很容易把除視頻以外的附加信息傳遞給獲取端。然而在某些情況下,用戶并不是直接獲取視頻數(shù)據(jù),而是通過不可控的中間件來 獲取視頻數(shù)據(jù)的,比如通過顯卡獲取PC的視頻數(shù)據(jù),PC視頻源是可控的,但顯卡是不可控的。在通過顯卡獲取視頻數(shù)據(jù)的應用場合里,因為顯卡的輸出只有純粹的RGB圖像數(shù)據(jù),并沒有額外的數(shù)據(jù),因此我們不能在顯卡里面采集到自定義的數(shù)據(jù)。但是很多時候我們需要實時與圖像幀有關聯(lián)的信息,比如幀序號來實現(xiàn)視頻同步,在不同的應用場合中,我們可能還需要將其他數(shù)據(jù)附加到每一幀視頻上。在非直接獲取視頻數(shù)據(jù)的應用場合,只能通過更改圖像信息的辦法來加入自定義數(shù)據(jù),比如把圖像固定位置某些字節(jié)的值替換為自己的數(shù)據(jù),然后通過PC常用接口來傳送幀附加數(shù)據(jù),在這種情況下,由于視頻的傳輸與附加數(shù)據(jù)的傳輸是異步進行,如果要做到每一幀視頻對應其相應的數(shù)據(jù),那必須在PC端場信號切換的時間空隙來保證異步的視頻幀數(shù)據(jù)以及附加數(shù)據(jù)同時到達接收端。然而,由于顯示器刷新率過低,導致場空隙時間過短,并且在PC中識別并等待場信號刷新的時間間隔不準確,在等待后還要進行幀視頻輸出,結(jié)果是視頻很容易發(fā)生撕裂,而且實際上也達不到在接收端同步獲取到一一對應的視頻幀及其附加數(shù)據(jù)的目的。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種非直接獲取視頻應用場合拼接視頻同步播放的方法及裝置,可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻。同時通過異步緩存,降低了實時性要求,有效解決了視頻拼接同步的問題,大大提高了視頻同步播放效果,而且具有適用性廣的特點。本發(fā)明實施例中的非直接獲取視頻應用場合拼接視頻同步播放的方法,包括視頻源端按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié);所述幀序號數(shù)據(jù)包括幀序號和附加信息;視頻源端存儲被替換的固定字節(jié)及所述幀序號;視頻源端把所述幀序號和所述被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲所述數(shù)組;視頻源端緩沖預設幀數(shù)的視頻及與所述預設幀數(shù)的視頻相對應的幀序號及數(shù)組;
視頻源端發(fā)送所述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端;FPGA獲取每幀視頻中植入的幀序號數(shù)據(jù);FPGA根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原;FPGA輸出還原后的視頻??蛇x地,所述FPGA獲取每幀視頻中植入的幀序號數(shù)據(jù)之后和所述FPGA根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原之前還包括FPGA檢測接收到的視頻是否存在丟幀或重復幀,并對所述重復幀進行過濾幀處
理。 可選地,所述FPGA檢測接收到的視頻是否存在丟幀或重復幀,并對所述重復幀進行過濾幀處理包括(I) FPGA檢測接收到的第一幀視頻的幀序號是否為1,若是則觸發(fā)步驟(2),否則報告出現(xiàn)巾貞丟失;(2)FPGA檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為0,若是則報告出現(xiàn)重復幀并觸發(fā)步驟(3 ),否則觸發(fā)步驟(4);(3) 6八刪除第奸1幀的數(shù)據(jù),并觸發(fā)步驟(2);(4)FPGA檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為1,若是則觸發(fā)步驟(2),否則報告出現(xiàn)幀丟失。本發(fā)明實施例中的非直接獲取視頻應用場合拼接視頻同步播放的方法,包括( I)主設備檢測設備數(shù)量;(2)主設備接收所述設備進行同步視頻處理后輸出的同步信號;(3)主設備判斷是否所有設備輸出同步信號,若是則執(zhí)行步驟(4);否則進入計時狀態(tài)并執(zhí)行步驟(5);(4)主設備向所述所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出;(5)當計時值等于預設的等待時間值時,主設備判斷是否上述所有設備輸出同步信號,若是則執(zhí)行步驟(4);否則重新啟動??蛇x地,所述設備進行同步視頻處理包括視頻源端用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié);所述幀序號數(shù)據(jù)包括幀序號和附加信息;視頻源端存儲被替換的固定字節(jié)及所述幀序號;視頻源端把所述幀序號和所述被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲所述數(shù)組;視頻源端緩沖預設幀數(shù)的視頻及與所述預設幀數(shù)的視頻相對應的幀序號及數(shù)組;視頻源端發(fā)送所述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端;FPGA獲取圖像中植入的幀序號數(shù)據(jù);FPGA根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原。本發(fā)明實施例中的非直接獲取視頻應用場合拼接視頻同步播放的裝置,包括
替換單元,用于用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié);所述幀序號數(shù)據(jù)包括幀序號和附加信息;存儲單元,用于存儲被替換的固定字節(jié)及所述幀序號;關聯(lián)單元,用于把所述幀序號和所述被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲所述數(shù)組;緩沖單元,用于緩沖預設幀數(shù)的視頻及與所述預設幀數(shù)的視頻相對應的幀序號及數(shù)組; 發(fā)送單元,用于發(fā)送所述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端;獲取單元,用于獲取圖像中植入的幀序號數(shù)據(jù);還原單元,用于根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原;輸出單元,用于輸出還原后的視頻。可選地,所述裝置還包括幀處理單元,用于檢測接收到的視頻是否存在丟幀或重復幀,并對所述重復幀進行過濾幀處理。可選地,所述幀處理單元包括第一檢測子單元,用于檢測接收到的第一幀視頻的幀序號是否為I ;第二檢測子單元,用于當檢測接收到的第一幀視頻的幀序號是為I時,檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O ;刪除子單元,用于當檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是為O時,刪除第N+1幀的數(shù)據(jù),并繼續(xù)檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O ;第三檢測子單元,用于當檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差為I時,檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O。本發(fā)明實施例中的非直接獲取視頻應用場合拼接視頻同步播放的裝置,其特征在于,包括檢測單元,用于檢測設備數(shù)量;接收單元,用于接收所述設備進行同步視頻處理后輸出的同步信號;第一判斷單元,用于判斷是否所有設備輸出同步信號;發(fā)送單元,用于當確定所有設備輸出同步信號時,向所述所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出;第二判斷單元,用于當計時值等于預設的等待時間值時,判斷是否所述所有設備輸出同步信號。本發(fā)明實施例中,視頻源端首先按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié),然后存儲被替換的固定字節(jié)及幀序號,接著把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組并存儲上述數(shù)組,然后緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組,接著發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端,F(xiàn)PGA接收端接收之后獲取每幀視頻中植入的幀序號數(shù)據(jù),然后會根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù)并進行還原,最后FPGA輸出還原后的視頻。因此可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻。同時通過異步緩存,降低了實時性要求,有效解決了視頻拼接同步的問題,大大提高了視頻同步播放效果,而且具有適用性廣的特點。
圖1為本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放的方法第一實施例流程圖;圖2為本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放的方法第二實施例流程圖;圖3為本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放的方法第三實施例流程圖;圖4為本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放的裝置第一實施例結(jié)構圖;圖5為本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放的裝置第二實施例結(jié)構圖。
具體實施例方式本發(fā)明實施例提供了一種非直接獲取視頻應用場合拼接視頻同步播放的方法及裝置,可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻。同時通過異步緩存,降低了實時性要求,有效解決了視頻拼接同步的問題,大大提高了視頻同步播放效果,而且具有適用性廣的特點。請參閱圖1,本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放的方法的第一實施例包括101、視頻源端按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié);上述幀序號數(shù)據(jù)包括幀序號和附加信息;規(guī)則和幀序號數(shù)據(jù)可以預置在視頻源端內(nèi),規(guī)則可以為用幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié),可以是左上角4個字節(jié)的圖像數(shù)據(jù),其中的幀序號數(shù)據(jù)的第一個字節(jié),在視頻幀數(shù)很多的情況下可以在第二個字節(jié)或第三個字節(jié)中包含幀序號,上述的幀序號不是視頻自帶,而是由視頻源端編制的,具體可以為幀序號數(shù)據(jù)為4個字節(jié)的數(shù)據(jù),一個字節(jié)為8位二進制數(shù),當視頻數(shù)據(jù)相對較少的情況下,可以用第一個字節(jié)中的前4位二進制數(shù)來表示幀序號,用剩下的字節(jié)來表示附加信息。上述所說的規(guī)則,幀序號數(shù)據(jù)都可以根據(jù)實際情況進行設定,而不限于本實施例中提到的部分。102、視頻源端存儲被替換的固定字節(jié)及幀序號;視頻源端按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié)之后,可以存儲被替換的固定字節(jié)及上述的幀序號。103、視頻源端把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組, 并存儲數(shù)組;
視頻源端存儲被替換的固定字節(jié)及幀序號之后,可以把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,具體可以為假設前5幀的幀序號分別為1、2、3、4和5,被替換的固定字節(jié)分別為a、b、C、d和e,可以用(1、8)、(2、13)、(3、(3)、(4、(1)和(5、6)的方式將巾貞序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,然后將上述的數(shù)組進行存儲。104、視頻源端緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組;視頻源端可以緩沖預設幀數(shù),可以是10幀,也可以根據(jù)實際情況進行設定幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組。105、視頻源端發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端;視頻源端緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組之后, 可以向FPGA接收端發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組。106、FPGA獲取每幀視頻中植入的幀序號數(shù)據(jù);FPGA接收端接收到預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組之后,可以獲取每幀視頻中植入的幀序號數(shù)據(jù)。107、FPGA根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原;FPGA獲取每幀視頻中植入的幀序號數(shù)據(jù)之后,可以進行還原視頻操作,首先根據(jù)接收到的幀序號和數(shù)組,按照它們之間一一對應關系查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),然后用缺失圖像數(shù)據(jù)對應替換視頻中植入的幀序號數(shù)據(jù)即可完成對視頻的還原操作。108、FPGA輸出還原后的視頻。FPGA完成對視頻的還原操作后,可以對還原后的視頻進行輸出。本發(fā)明實施例中,視頻源端首先按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié),然后存儲被替換的固定字節(jié)及幀序號,接著把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組并存儲上述數(shù)組,然后緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組,接著發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端,F(xiàn)PGA接收端接收之后獲取每幀視頻中植入的幀序號數(shù)據(jù),然后會根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù)并進行還原,最后FPGA輸出還原后的視頻。因此可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻。同時通過異步緩存,降低了實時性要求,有效解決了視頻拼接同步的問題,大大提高了視頻同步播放效果,而且具有適用性廣的特點。上面簡單介紹了本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放的方法的第一實施例,下面對本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放的方法的第二實施例進行詳細的描述,請參閱圖2,本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放的方法的第二實施例包括201、視頻源端按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié);上述幀序號數(shù)據(jù)包括幀序號和附加信息;規(guī)則和幀序號數(shù)據(jù)可以預置在視頻源端內(nèi),規(guī)則可以為用幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié),可以是左上角4個字節(jié)的圖像數(shù)據(jù),其中的幀序號數(shù)據(jù)的第一個字節(jié),在視頻幀數(shù)很多的情況下可以在第二個字節(jié)或第三個字節(jié)中包含幀序號,上述的幀序號不是視頻自帶,而是由視頻源端編制的,具體可以為幀序號數(shù)據(jù)為4個字節(jié)的數(shù)據(jù),一個字節(jié)為8位二進制數(shù),當視頻數(shù)據(jù)相對較少的情況下,可以用第一個字節(jié)中的前4位二進制數(shù)來表示幀序號,用剩下的字節(jié)來表示附加信息。上述所說的規(guī)則,幀序號數(shù)據(jù)都可以根據(jù)實際情況進行設定,而不限于本實施例中提到的部分。202、視頻源端存儲被替換的固定字節(jié)及幀序號;視頻源端按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié)之后,可以存儲被替換的固定字節(jié)及上述的幀序號。203、視頻源端把所述幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲數(shù)組; 視頻源端存儲被替換的固定字節(jié)及幀序號之后,可以把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,具體可以為假設前5幀的幀序號分別為1、2、3、4和5,被替換的固定字節(jié)分別為a、b、C、d和e,可以用(1、8)、(2、13)、(3、(3)、(4、(1)和(5、6)的方式將巾貞序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,然后將上述的數(shù)組進行存儲。204、視頻源端緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組;視頻源端可以緩沖預設幀數(shù),可以是10幀,也可以根據(jù)實際情況進行設定幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組。205、視頻源端發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端;視頻源端緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組之后,可以向FPGA接收端發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組。206、FPGA獲取每幀視頻中植入的幀序號數(shù)據(jù);FPGA接收端接收到預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組之后,可以獲取每幀視頻中植入的幀序號數(shù)據(jù)。207、FPGA檢測接收到的視頻是否存在丟幀或重復幀,并對重復幀進行過濾幀處理。FPGA檢測接收到的視頻是否存在丟幀或重復幀的具體過程可以為(I) FPGA檢測接收到的第一幀視頻的幀序號是否為1,若是則觸發(fā)步驟(2),否則報告出現(xiàn)巾貞丟失;(2)FPGA檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為0,若是則報告出現(xiàn)重復幀并觸發(fā)步驟(3 ),否則觸發(fā)步驟(4);(3) 6八刪除第奸1幀的數(shù)據(jù),并觸發(fā)步驟(2);(4)FPGA檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為1,若是則觸發(fā)步驟(2),否則報告出現(xiàn)幀丟失;完成上述檢測過程可以確定接收到的幀數(shù)據(jù)是否完整。208、FPGA根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原;FPGA確定接收到的幀數(shù)據(jù)是完整的之后,可以進行還原視頻操作,首先根據(jù)接收到的幀序號和數(shù)組,按照它們之間一一對應關系查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),然后用缺失圖像數(shù)據(jù)對應替換視頻中植入的幀序號數(shù)據(jù)即可完成對視頻的還原操作。209、FPGA輸出還原后的視頻。FPGA完成對視頻的還原操作后,可以對還原后的視頻進行輸出。本發(fā)明實施例中,視頻源端首先按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié),然后存儲被替換的固定字節(jié)及幀序號,接著把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組并存儲上述數(shù)組,然后緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組,接著發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端,F(xiàn)PGA接收端接收之后獲取每幀視頻中植入的幀序號數(shù)據(jù),然后會檢測接收到的視頻是否存在丟幀或重復幀,并對重復幀進行過濾幀處理,確定視頻完整后會根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù)并進行還原,最后FPGA輸出還原后的視頻。 因此可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻。同時通過異步緩存,降低了實時性要求,有效解決了視頻拼接同步的問題,大大提高了視頻同步播放效果,而且具有適用性廣的特點,幀檢測處理的加入大大增強了視頻的可靠性。上面詳細介紹了本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放方法的第二實施例,特別是其中檢測幀的過程,下面對本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放方法的第三實施例進行描述,請參閱圖3,本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放方法的第三實施例包括301、主設備檢測設備數(shù)量;主設備可以檢測設備的數(shù)量,以用來確定步驟302中同步信號的個數(shù),上述的設備可以包括PC視頻源端,F(xiàn)PGA同步板,顯示單元,RS232串口,以及DVI視頻接口 ;上述的主設備可以是設備加上控制模塊。其中,PC視頻源端負責制作視頻源,保存固定位置像素值,更改固定位置為幀序號信息并將數(shù)據(jù)關聯(lián)成數(shù)組進行緩存;RS232串口負責將關聯(lián)數(shù)組信息傳送給FPGA端,同時PC端具有兩個DVI視頻輸出接口,將制作好并緩存的固定幀視頻數(shù)據(jù)通過兩個DVI分別輸?shù)紽PGA同步板卡進行處理;FPGA同步板負責接收緩存關聯(lián)數(shù)組及固定視頻數(shù)據(jù),以及接收像素同步時鐘或者場同步信號等同步數(shù)據(jù),進行視頻同步處理,在同步輸出端緩存視頻數(shù)據(jù),以及固定位置像素還原,通過兩個DVI接口分別將還原的視頻數(shù)據(jù)輸出到顯示單元;顯示單元負責接收FPGA同步板處理后的視頻信息,并通過DVI連接分別顯示。302、主設備接收設備進行同步視頻處理后輸出的同步信號;上述設備進行同步視頻處理可以包括視頻源端用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié)之后,可以存儲被替換的固定字節(jié)及幀序號,接著視頻源端把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲該數(shù)組,然后視頻源端會緩沖預設幀數(shù),可以為10幀的視頻及與上述預設幀數(shù)的視頻相對應的幀序號及數(shù)組,最后將預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組發(fā)送到FPGA接收端;FPGA接收到上述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組后,可以獲取圖像中植入的幀序號數(shù)據(jù),然后根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原。
設備進行同步視頻處理后,會向主設備輸出同步信號。303、主設備判斷是否所有設備輸出同步信號,若是則執(zhí)行步驟304;否則進入計時狀態(tài)并執(zhí)行步驟305 ;主設備接收各設備輸出的同步信號,當確定接收到所有設備的同步信號時,執(zhí)行步驟304,否則進入計時狀態(tài)并執(zhí)行步驟305。304、主設備向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出。主設備確定接收到所有設備的同步信號后,會向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出。
305、當計時值等于預設的等待時間值時,主設備判斷是否所有設備輸出同步信號,若是則執(zhí)行步驟304 ;否則重新啟動。當計時值等于預設的等待時間值時,主設備判斷是否所有設備輸出同步信號,若是則執(zhí)行步驟向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出;否則重新啟動。本發(fā)明實施例中,主設備首先檢測設備的數(shù)量,然后接收設備進行同步視頻處理后輸出的同步信號;接著判斷是否所有設備輸出同步信號,若是則向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出;否則進入計時狀態(tài),當計時值等于預設的等待時間值時,主設備判斷是否所有設備輸出同步信號,若是則向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出,否則重新啟動。所以可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻的基礎上實現(xiàn)多設備同步視頻并在大屏幕同步輸出功能,大大增強了本方法的適用性。上面詳細介紹了本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放的方法的第三實施例,,特別是其中對各設備輸出視頻進行同步的過程,下面對本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放裝置的第一實施例進行詳細的描述,請參閱圖4,本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放裝置的第一實施例包括替換單元401,用于用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié);幀序號數(shù)據(jù)包括幀序號和附加信息;存儲單元402,用于存儲被替換的固定字節(jié)及幀序號;關聯(lián)單元403,用于把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲數(shù)組;緩沖單元404,用于緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組;發(fā)送單元405,用于發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端;獲取單元406,用于獲取圖像中植入的幀序號數(shù)據(jù);還原單元407,用于根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原;輸出單元408,用于輸出還原后的視頻。所述裝置還包括幀處理單元409,用于檢測接收到的視頻是否存在丟幀或重復幀,并對重復幀進行過濾幀處理。所述幀處理單元409包括第一檢測子單元4091,用于檢測接收到的第一幀視頻的幀序號是否為I ;第二檢測子單元4092,用于當檢測接收到的第一幀視頻的幀序號是為I時,檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O ;刪除子單元4093,用于當檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是為O時,刪除第N+1幀的數(shù)據(jù),并繼續(xù)檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O ;第三檢測子單元4094,用于當檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差為I時,檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O。 替換單元401首先按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié);上述幀序號數(shù)據(jù)包括幀序號和附加信息;規(guī)則和幀序號數(shù)據(jù)可以預置在視頻源端內(nèi),規(guī)則可以為用幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié),可以是左上角4個字節(jié)的圖像數(shù)據(jù),其中的幀序號數(shù)據(jù)的第一個字節(jié),在視頻幀數(shù)很多的情況下可以在第二個字節(jié)或第三個字節(jié)中包含幀序號,上述的幀序號不是視頻自帶,而是由視頻源端編制的,具體可以為幀序號數(shù)據(jù)為4個字節(jié)的數(shù)據(jù),一個字節(jié)為8位二進制數(shù),當視頻數(shù)據(jù)相對較少的情況下,可以用第一個字節(jié)中的前4位二進制數(shù)來表示幀序號,用剩下的字節(jié)來表示附加信息。上述所說的規(guī)則,幀序號數(shù)據(jù)都可以根據(jù)實際情況進行設定,而不限于本實施例中提到的部分。替換單元401按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié)之后,存儲單元402可以存儲被替換的固定字節(jié)及上述的幀序號。存儲單元402存儲被替換的固定字節(jié)及幀序號之后,關聯(lián)單元403可以把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,具體可以為假設前5幀的幀序號分別為1、2、3、4和5,被替換的固定字節(jié)分別為a、b、C、d和e,可以用(1、8)、(2、13)、(3、(3)、(4、(1)和(5、0)的方式將幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,然后將上述的數(shù)組進行存儲。接著緩沖單元404可以緩沖預設幀數(shù),可以是10幀,也可以根據(jù)實際情況進行設定幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組。緩沖單元404緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組之后,發(fā)送單元405可以向FPGA接收端發(fā)送預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組。FPGA接收端接收到預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組之后,獲取單元406可以獲取每幀視頻中植入的幀序號數(shù)據(jù)。接著FPGA檢測接收到的視頻是否存在丟幀或重復幀,幀處理單元409對重復幀進行過濾幀處理。FPGA檢測接收到的視頻是否存在丟幀或重復幀的具體過程可以為(I)第一檢測子單元4091檢測接收到的第一幀視頻的幀序號是否為1,若是則觸發(fā)步驟(2),否則報告出現(xiàn)幀丟失;(2)第二檢測子單元4092檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為0,若是則報告出現(xiàn)重復幀并觸發(fā)步驟(3),否則觸發(fā)步驟(4);(3)刪除子單元4093刪除第N+1幀的數(shù)據(jù),并觸發(fā)步驟(2);
(4)第三檢測子單元4094檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為I,若是則觸發(fā)步驟(2 ),否則報告出現(xiàn)幀丟失。完成上述檢測過程可以確定接收到的幀數(shù)據(jù)是否完整。FPGA確定接收到的幀數(shù)據(jù)是完整的之后,還原單元407可以進行還原視頻操作,首先根據(jù)接收到的幀序號和數(shù)組,按照它們之間一一對應關系查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),然后用缺失圖像數(shù)據(jù)對應替換視頻中植入的幀序號數(shù)據(jù)即可完成對視頻的還原操作。還原單元407完成對視頻的還原操作后,輸出單元408可以對還原后的視頻進行輸出。本發(fā)明實施例中,首先替換單元401按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié),然后存儲單元402存儲被替換的固定字節(jié)及幀序號,接著關聯(lián)單元403把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組并存儲上述數(shù)組,然后緩沖單元404緩沖預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組,接著發(fā)送單元405發(fā)送預 設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端,F(xiàn)PGA接收端接收之后,獲取單元406獲取每幀視頻中植入的幀序號數(shù)據(jù),然后幀處理單元409會檢測接收到的視頻是否存在丟幀或重復幀,并對重復幀進行過濾幀處理,確定視頻完整后還原單元407會根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù)并進行還原,最后輸出單元408輸出還原后的視頻。因此可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻。同時通過異步緩存,降低了實時性要求,有效解決了視頻拼接同步的問題,大大提高了視頻同步播放效果,而且具有適用性廣的特點,幀檢測處理的加入大大增強了視頻的可靠性。上面詳細介紹了本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放裝置的第一實施例,特別是其中檢測幀的過程,下面對本發(fā)明非直接獲取視頻應用場合拼接視頻同步播放裝置的第二實施例進行描述,請參閱圖5,本發(fā)明實施例中非直接獲取視頻應用場合拼接視頻同步播放裝置的第二實施例包括檢測單元501,用于檢測設備數(shù)量;接收單元502,用于接收設備進行同步視頻處理后輸出的同步信號;第一判斷單元503,用于判斷是否所有設備輸出同步信號;發(fā)送單元504,用于當確定所有設備輸出同步信號時,向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出。第二判斷單元505,用于當計時值等于預設的等待時間值時,判斷是否所有設備輸出同步信號。檢測單元501可以檢測設備的數(shù)量,以用來確定各設備進行同步視頻處理后輸出的同步信號的個數(shù),上述的設備可以包括PC視頻源端,F(xiàn)PGA同步板,顯示單元,RS232串口,以及DVI視頻接口 ;上述的主設備可以是設備加上控制模塊。其中,PC視頻源端負責制作視頻源,保存固定位置像素值,更改固定位置為幀序號信息并將數(shù)據(jù)關聯(lián)成數(shù)組進行緩存;RS232串口負責將關聯(lián)數(shù)組信息傳送給FPGA端,同時PC端具有兩個DVI視頻輸出接口,將制作好并緩存的固定幀視頻數(shù)據(jù)通過兩個DVI分別輸?shù)紽PGA同步板卡進行處理;FPGA同步板負責接收緩存關聯(lián)數(shù)組及固定視頻數(shù)據(jù),以及接收像素同步時鐘或者場同步信號等同步數(shù)據(jù),進行視頻同步處理,在同步輸出端緩存視頻數(shù)據(jù),以及固定位置像素還原,通過兩個DVI接口分別將還原的視頻數(shù)據(jù)輸出到顯示單元;顯示單元負責接收FPGA同步板處理后的視頻信息,并通過DVI連接分別顯示。接著接收單元502接收設備進行同步視頻處理后輸出的同步信號;上述設備進行同步視頻處理可以包括視頻源端用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié)之后,可以存儲被替換的固定字節(jié)及幀序號,接著視頻源端把幀序號和被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲該數(shù)組,然后視頻源端會緩沖預設幀數(shù),可以為10幀的視頻及與上述預設幀數(shù)的視頻相對應的幀序號及數(shù)組,最后將預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組發(fā)送到FPGA接收端;FPGA接收到上述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀 序號及數(shù)組后,可以獲取圖像中植入的幀序號數(shù)據(jù),然后根據(jù)幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原。設備進行同步視頻處理后,會向主設備輸出同步信號。然后第一判斷單元503判斷是否所有設備輸出同步信號,若是則發(fā)送單元504向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出;否則進入計時狀態(tài)。當計時值等于預設的等待時間值時,第二判斷單元505判斷是否所有設備輸出同步信號,若是則發(fā)送單元504向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出;否則重新啟動。本發(fā)明實施例中,檢測單元501首先檢測設備的數(shù)量,然后接收單元502接收設備進行同步視頻處理后輸出的同步信號;接著第一判斷單元503判斷是否所有設備輸出同步信號,若是則發(fā)送單元504向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出;否則進入計時狀態(tài),當計時值等于預設的等待時間值時,第二判斷單元505判斷是否所有設備輸出同步信號,若是則發(fā)送單元504向所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出,否則重新啟動。所以可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻的基礎上實現(xiàn)多設備同步視頻并在大屏幕同步輸出功能,大大增強了本方法的適用性。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上對本發(fā)明所提供的一種非直接獲取視頻應用場合拼接視頻同步播放方法及裝置進行了詳細介紹,對于本領域的一般技術人員,依據(jù)本發(fā)明實施例的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
1.一種非直接獲取視頻應用場合拼接視頻同步播放的方法,其特征在于,包括 視頻源端按預置的規(guī)則用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié); 所述幀序號數(shù)據(jù)包括幀序號和附加信息; 視頻源端存儲被替換的固定字節(jié)及所述幀序號; 視頻源端把所述幀序號和所述被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲所述數(shù)組; 視頻源端緩沖預設幀數(shù)的視頻及與所述預設幀數(shù)的視頻相對應的幀序號及數(shù)組; 視頻源端發(fā)送所述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端; FPGA獲取每幀視頻中植入的幀序號數(shù)據(jù); FPGA根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原; FPGA輸出還原后的視頻。
2.根據(jù)權利要求1所述的非直接獲取視頻應用場合拼接視頻同步播放的方法,其特征在于,所述FPGA獲取每幀視頻中植入的幀序號數(shù)據(jù)步驟之后和所述FPGA根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原步驟之前還包括 FPGA檢測接收到的視頻是否存在丟幀或重復幀,并對所述重復幀進行過濾幀處理。
3.根據(jù)權利要求2所述的非直接獲取視頻應用場合拼接視頻同步播放的方法,其特征在于,所述FPGA檢測接收到的視頻是否存在丟幀或重復幀,并對所述重復幀進行過濾幀處理包括 (1)FPGA檢測接收到的第一幀視頻的幀序號是否為1,若是則觸發(fā)步驟(2),否則報告出現(xiàn)幀丟失; (2)FPGA檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O,若是則報告出現(xiàn)重復幀并觸發(fā)步驟(3),否則觸發(fā)步驟(4); (3)FPGA刪除第N+1幀的數(shù)據(jù),并觸發(fā)步驟(2); (4)FPGA檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為1,若是則觸發(fā)步驟(2),否則報告出現(xiàn)幀丟失。
4.一種非直接獲取視頻應用場合拼接視頻同步播放的方法,其特征在于,包括 (1)主設備檢測設備數(shù)量; (2)主設備接收所述設備進行同步視頻處理后輸出的同步信號; (3)主設備判斷是否所有設備輸出同步信號,若是則執(zhí)行步驟(4);否則進入計時狀態(tài)并執(zhí)行步驟(5); (4)主設備向所述所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出; (5)當計時值等于預設的等待時間值時,主設備判斷是否所述所有設備輸出同步信號,若是則執(zhí)行步驟(4);否則重新啟動。
5.根據(jù)權利要求4所述的非直接獲取視頻應用場合拼接視頻同步播放的方法,其特征在于,所述設備進行同步視頻處理包括 視頻源端用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié); 所述幀序號數(shù)據(jù)包括幀序號和附加信息; 視頻源端存儲被替換的固定字節(jié)及所述幀序號;視頻源端把所述幀序號和所述被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲所述數(shù)組; 視頻源端緩沖預設幀數(shù)的視頻及與所述預設幀數(shù)的視頻相對應的幀序號及數(shù)組; 視頻源端發(fā)送所述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端; FPGA獲取圖像中植入的幀序號數(shù)據(jù); FPGA根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原。
6.一種非直接獲取視頻應用場合拼接視頻同步播放的裝置,其特征在于,包括 替換單元,用于用預設的幀序號數(shù)據(jù)替換每幀視頻固定位置的固定字節(jié); 所述幀序號數(shù)據(jù)包括幀序號和附加信息; 存儲單元,用于存儲被替換的固定字節(jié)及所述幀序號; 關聯(lián)單元,用于把所述幀序號和所述被替換的固定字節(jié)關聯(lián)成數(shù)組,并存儲所述數(shù)組; 緩沖單元,用于緩沖預設幀數(shù)的視頻及與所述預設幀數(shù)的視頻相對應的幀序號及數(shù)組; 發(fā)送單元,用于發(fā)送所述預設幀數(shù)的視頻及與預設幀數(shù)的視頻相對應的幀序號及數(shù)組到FPGA接收端; 獲取單元,用于獲取圖像中植入的幀序號數(shù)據(jù); 還原單元,用于根據(jù)所述幀序號查找數(shù)組中每一幀視頻對應的缺失圖像數(shù)據(jù),并進行還原; 輸出單兀,用于輸出還原后的視頻。
7.根據(jù)權利要求6所述的非直接獲取視頻應用場合拼接視頻同步播放的裝置,其特征在于,所述裝置還包括 幀處理單元,用于檢測接收到的視頻是否存在丟幀或重復幀,并對所述重復幀進行過濾幀處理。
8.根據(jù)權利要求7所述的非直接獲取視頻應用場合拼接視頻同步播放的方法,其特征在于,所述幀處理單元包括 第一檢測子單元,用于檢測接收到的第一幀視頻的幀序號是否為I ; 第二檢測子單元,用于當檢測接收到的第一幀視頻的幀序號是為I時,檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O ; 刪除子單元,用于當檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是為O時,刪除第N+1幀的數(shù)據(jù),并繼續(xù)檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O ; 第三檢測子單元,用于當檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是為I時,檢測接收到的第N+1幀的幀序號與第N幀的幀序號之差是否為O。
9.一種非直接獲取視頻應用場合拼接視頻同步播放的裝置,其特征在于,包括 檢測單元,用于檢測設備數(shù)量; 接收單元,用于接收所述設備進行同步視頻處理后輸出的同步信號; 第一判斷單元,用于判斷是否所有設備輸出同步信號; 發(fā)送單元,用于當確定所有設備輸出同步信號時,向所述所有設備發(fā)送統(tǒng)一同步命令,告知所有設備收到命令后進行同步輸出; 第二判斷單元,用于當計時值等于預設的等待時間值時,判斷是否所述所有設備輸出同步信號。
全文摘要
本發(fā)明實施例公開了一種非直接獲取視頻應用場合拼接視頻同步播放的方法及裝置,可以在非直接獲取視頻的應用場合中,向視頻植入數(shù)據(jù),獲取數(shù)據(jù)以及恢復視頻。同時通過異步緩存,降低了實時性要求,有效解決了視頻拼接同步的問題,大大提高了視頻同步播放效果,而且具有適用性廣的特點。
文檔編號H04N21/236GK103024453SQ20121057632
公開日2013年4月3日 申請日期2012年12月26日 優(yōu)先權日2012年12月26日
發(fā)明者梁博文, 彭昌輝 申請人:廣東威創(chuàng)視訊科技股份有限公司