專利名稱:一種視頻傳輸設備及其usb傳輸?shù)难b置及方法
技術領域:
本發(fā)明涉及視頻設備的數(shù)據(jù)傳輸領域,特別是涉及一種視頻傳輸設備的USB傳輸 裝置、一種視頻傳輸設備及一種視頻傳輸設備的USB傳輸方法。
背景技術:
現(xiàn)代視頻采集與監(jiān)控系統(tǒng)中,計算機是一種主要的數(shù)據(jù)處理和顯示終端。隨著視 頻質量要求的提高,數(shù)據(jù)傳輸量的增大,USB接口基于其便攜、易擴展、支持即插即用和熱插 拔的特性,成為目前視頻傳輸設備中較為通用的計算機接口形式。 —般而言,視頻傳輸設備可以包括視頻接收處理模塊、USB接口模塊和主機三個部 分,其中,視頻接收處理模塊用于接收模擬視頻信號(如符合國家標準的PAL制式的模擬信 號),對其預處理后轉化為數(shù)字信號(如符合ITU-656協(xié)議的8位數(shù)字信號)。然后將有效 數(shù)據(jù)存入幀存儲器,等待內部芯片(如DSP內核)實施壓縮變換;USB接口模塊即可以將變 換后的有效視頻數(shù)據(jù)(如MPEG2、MPEG4數(shù)據(jù))發(fā)送至主機進行解碼、顯示或進一步處理。
然而,由于USB接口模塊是將有效視頻數(shù)據(jù)同步傳輸?shù)街鳈C端,USB傳輸所基于 的ISO協(xié)議與當前有效視頻數(shù)據(jù)的格式不兼容,因而現(xiàn)有技術極易出現(xiàn)USB接口模塊傳輸 的數(shù)據(jù)包不完整的情形;此外,在無線視頻傳輸設備中,由于無線信號不穩(wěn)定,誤碼率較高, USB接口模塊往往會傳輸過多的錯誤數(shù)據(jù),在這種情況下,將會造成主機消耗大量資源來 解碼錯誤數(shù)據(jù),從而不可避免地出現(xiàn)視頻顯示花屏、停頓等問題,甚至可能導致主機出錯崩 潰。 總之,目前需要本領域技術人員迫切解決的一個技術問題就是提出一種全新的 視頻傳輸設備的USB傳輸機制,用以提高數(shù)據(jù)傳輸?shù)耐暾院蜏蚀_性,減少主機端的資源 耗費,提高視頻傳輸效率和穩(wěn)定性。
發(fā)明內容
本發(fā)明所要解決的技術問題是提供一種視頻傳輸設備的USB傳輸方法、裝置及一 種視頻傳輸設備,用以提高數(shù)據(jù)傳輸?shù)耐暾院蜏蚀_性,減少主機端的資源耗費,提高視頻 傳輸效率和穩(wěn)定性。 為了解決上述技術問題,本發(fā)明實施例公開了一種視頻傳輸設備的USB傳輸裝 置,包括 第一緩存和第二緩存,所述第二緩存具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信 號 第一校驗模塊,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗模 塊; 第二校驗模塊,用于在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包 的接收順序是否正確;若正確,則觸發(fā)第一寫入模塊;若錯誤,則觸發(fā)第二寫入模塊;
第一寫入模塊,用于將該視頻數(shù)據(jù)包寫入第一緩存;
第二寫入模塊,用于將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效;
排隊處理模塊,用于在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩 存中的視頻數(shù)據(jù)包進行順序調整,以及,寫入第一緩存; 容量控制模塊,用于判斷第一緩存是否寫滿,若是,則觸發(fā)主機傳送模塊;
主機傳送模塊,用于將第一緩存中的視頻數(shù)據(jù)包發(fā)送至主機。
優(yōu)選的,所述的裝置,還包括 丟棄處理模塊,用于在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。 優(yōu)選的,所述第二緩存的空間對應m個視頻數(shù)據(jù)包的大小,m為大于1的自然數(shù);
所述排隊處理模塊進一步包括 連續(xù)接收子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個 視頻數(shù)據(jù)包寫入第二緩存; 排序子模塊,用于在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序;
寫入處理子模塊,用于將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。
優(yōu)選的,所述排隊處理模塊進一步包括 判斷子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻 數(shù)據(jù)包是否與當前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則執(zhí)行寫入調整子模塊;
寫入調整子模塊,用于將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存,并在第一緩存 中進行排序,以及,將第二緩存的狀態(tài)信號改為無效。 優(yōu)選的,所述第一校驗模塊依據(jù)視頻數(shù)據(jù)包的數(shù)據(jù)起始位信息和數(shù)據(jù)包大小校驗 所述視頻數(shù)據(jù)包是否完整。 優(yōu)選的,所述第二校驗模塊依據(jù)視頻數(shù)據(jù)包的分組數(shù)據(jù)標識及數(shù)據(jù)包號校驗視頻 數(shù)據(jù)包的接收順序是否正確。 優(yōu)選的,所述視頻數(shù)據(jù)包為MPEG數(shù)據(jù)包,所述第一緩存和第二緩存的空間為 58656字節(jié)的整數(shù)倍。 本發(fā)明實施例還公開了一種視頻傳輸設備,包括 視頻接收處理模塊,用于接收模擬視頻信號,并將其壓縮、轉換為數(shù)字的視頻數(shù) 據(jù); 主機,用于對視頻數(shù)據(jù)進行解碼、輸出處理; 第一緩存和第二緩存,所述第二緩存具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信 號 USB接口模塊,包括以下單元 第一校驗模塊,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗模 塊; 第二校驗模塊,用于在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包 的接收順序是否正確;若正確,則觸發(fā)第一寫入模塊;若錯誤,則觸發(fā)第二寫入模塊;
第一寫入模塊,用于將該視頻數(shù)據(jù)包寫入第一緩存; 第二寫入模塊,用于將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效;
排隊處理模塊,用于在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩 存中的視頻數(shù)據(jù)包進行順序調整,以及,寫入第一緩存;
6
容量控制模塊,用于判斷第一緩存是否寫滿,若是,則觸發(fā)主機傳送模塊;
主機傳送模塊,用于將第一緩存中的視頻數(shù)據(jù)包發(fā)送至主機。
優(yōu)選的,所述的視頻傳輸設備,還包括 丟棄處理模塊,用于在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。 優(yōu)選的,所述第二緩存的空間對應m個視頻數(shù)據(jù)包的大小,m為大于1的自然數(shù);
所述排隊處理模塊進一步包括 連續(xù)接收子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個 視頻數(shù)據(jù)包寫入第二緩存; 排序子模塊,用于在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序;
寫入處理子模塊,用于將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。
優(yōu)選的,所述排隊處理模塊進一步包括 判斷子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻 數(shù)據(jù)包是否與當前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則執(zhí)行寫入調整子模塊;
寫入調整子模塊,用于將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存,并在第一緩存 中進行排序,以及,將第二緩存的狀態(tài)信號改為無效。
優(yōu)選的,所述第一緩存、第二緩存位于主機中。 本發(fā)明實施例還公開了一種視頻傳輸設備的USB傳輸方法,所述視頻傳輸設備包 括第一緩存和第二緩存,所述第二緩存具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信號所 述方法包括 步驟Sl、校驗接收的視頻數(shù)據(jù)包是否完整,若是,則執(zhí)行步驟S2 ; 步驟S2、在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包的接收順序
是否正確;若正確,則執(zhí)行步驟S3 ;若錯誤,則執(zhí)行步驟S4 ; 步驟S3、將該視頻數(shù)據(jù)包寫入第一緩存; 步驟S4、將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效; 步驟S5、在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩存中的視頻
數(shù)據(jù)包進行順序調整,以及,寫入第一緩存; 步驟S6、在第一緩存寫滿時,將其緩存的視頻數(shù)據(jù)包發(fā)送至主機。
優(yōu)選的,所述的方法,還包括 在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。 優(yōu)選的,所述第二緩存的空間對應m個視頻數(shù)據(jù)包的大小,m為大于1的自然數(shù); 所述步驟S5進一步包括 在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個視頻數(shù)據(jù)包寫入第二緩 存; 在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序;
將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。
優(yōu)選的,所述步驟S5進一步包括 在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻數(shù)據(jù)包是否與當前 接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存, 并在第一緩存中進行排序,以及,將第二緩存的狀態(tài)信號改為無效。
7
與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點 本發(fā)明通過在USB接口模塊和主機之間增加第一緩存和第二緩存,第一緩存中存 儲完整且接收順序正確的視頻數(shù)據(jù)包,對于接收順序錯誤的視頻數(shù)據(jù)包,將其暫存至第二 緩存,等待后續(xù)接收的視頻數(shù)據(jù)包進行正確排序并寫入第一緩存;待第一緩存寫滿后則將 其緩存的所有視頻數(shù)據(jù)包傳送到主機。本發(fā)明通過在傳送至主機前對視頻數(shù)據(jù)包進行完整 性和接收順序的校驗,有效避免了主機接收到的數(shù)據(jù)包不完整或數(shù)據(jù)錯誤的問題,從而最 大限度地減少了主機錯誤解碼的資源耗費,提高了視頻傳輸效率和穩(wěn)定性。
圖1是本發(fā)明的一種視頻傳輸設備的USB傳輸裝置實施例1的結構框圖
圖2是本發(fā)明的一種視頻傳輸設備的USB傳輸裝置實施例2的結構框圖
圖3是本發(fā)明的一種視頻傳輸設備的USB傳輸裝置實施例3的結構框圖
圖4是本發(fā)明的一種視頻傳輸設備實施例的結構框圖;
圖5是本發(fā)明的一種視頻傳輸設備的USB傳輸方法實施例的流程圖。
具體實施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實 施方式對本發(fā)明作進一步詳細的說明。 參考圖l,示出了本發(fā)明的一種視頻傳輸設備的USB傳輸裝置實施例1的結構框 圖,具體可以包括 第一緩存buf_l和第二緩存buf_2,所述第二緩存buf_2具有標識其是否緩存有視 頻數(shù)據(jù)包的狀態(tài)信號buf_2_tag ; 在具體實現(xiàn)中,可以在狀態(tài)信號為有效時,將buf—2—tag置為l,在狀態(tài)信號為無 效時,將buf—2—tag置為0。 需要說明的是,為清楚本實施例各模塊之間的關聯(lián),在本說明書附圖中將該狀態(tài) 信號buf_2_tag繪制為與buf_2連接的單獨器件,而在實際中,將buf_2_tag置于buf_2中, 或以其它任一方式獲得該狀態(tài)信號都是可行的,附圖僅為一種示例。 第一校驗模塊102,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗 模塊104 ; 第二校驗模塊104,用于在所述第二緩存的狀態(tài)信號為無效時,如buf—2—tag = 0 時,校驗所述視頻數(shù)據(jù)包的接收順序是否正確;若正確,則觸發(fā)第一寫入模塊106 ;若錯誤, 則觸發(fā)第二寫入模塊108 ; 第一寫入模塊106,用于將該視頻數(shù)據(jù)包寫入第一緩存buf_l ; 第二寫入模塊108,用于將該視頻數(shù)據(jù)包寫入第二緩存buf—2,并將狀態(tài)信號改為
有效;如將buf—2—tag改為1 ; 排隊處理模塊110,用于在所述第二緩存的狀態(tài)信號為有效時,如buf—2—tag = 1 時,對第一緩存buf_l和第二緩存buf_2中的視頻數(shù)據(jù)包進行順序調整,以及,寫入第一緩
存bllf_l ; 容量控制模塊112,用于判斷第一緩存bufj是否寫滿,若是,則觸發(fā)主機傳送模塊114 ; 主機傳送模塊114,用于將第一緩存中的視頻數(shù)據(jù)包發(fā)送至主機。
在具體實現(xiàn)中,所述第一緩存和第二緩存可以在USB接口模塊與主機之間單獨設 置,也可以置于主機中。對于其空間大小,可以依據(jù)視頻數(shù)據(jù)的格式設置,例如,對于MPEG 格式的視頻數(shù)據(jù)而言,由于MEPG數(shù)據(jù)包具有固定大小188*312 (58656)byte,則可以相應設 置第一緩存和第二緩存的空間大小為58656字節(jié)的整數(shù)倍。 仍以MPEG數(shù)據(jù)為例,對于其傳輸流(transport stream,TS)中每個視頻數(shù)據(jù)包的
包頭通常具有如下信息
同歩位(sync—byte)8bit
分組標識(payload—unit—start—indicator)lbit
PID13bit
遞增的包號(continuity—counter)4bit —般而言,同步位表示每個視頻數(shù)據(jù)包的數(shù)據(jù)頭都應以0x47開始;分組標識是用 來判斷數(shù)據(jù)包開始時是PES數(shù)據(jù)((Packetized ElementaryStream,打包基本流)還是PSI 數(shù)據(jù)(Program Specific Information,節(jié)目特定信息),在視頻傳輸過程中,通常只對PES 數(shù)據(jù)進行解碼時的檢驗、對齊等處理;PID表示TS流中的每個分組的標識,如視頻數(shù)據(jù)對應 一個PID,音頻數(shù)據(jù)對應另一個PID ;遞增的包號表示數(shù)據(jù)包的號碼,在同一個PID的數(shù)據(jù)中 不斷遞增,當達到最大時清零后循環(huán)。 基于上表可以得知,如果要校驗當前接收的視頻數(shù)據(jù)包是否完整,則可以通過該 視頻數(shù)據(jù)包的起始位信息和數(shù)據(jù)包大小來確定,例如,從第一個0x47的數(shù)據(jù)頭開始,每隔 188*312 byte的數(shù)據(jù)尋找下一個0x47,如果能找到,則表示當前數(shù)據(jù)包是完整的,否則是不完整。 如果要校驗當前接收的視頻數(shù)據(jù)包的接收順序是否正確,則可以通過所述視頻數(shù) 據(jù)包的分組數(shù)據(jù)標識及數(shù)據(jù)包號確定。例如,對同一PID下的數(shù)據(jù)包號進行記錄和比較,當 發(fā)現(xiàn)當前接收數(shù)據(jù)包的包號與上次接收的包號不連續(xù)時,則判斷當前接收的數(shù)據(jù)包順序不 正確。 在實際中,視頻傳輸設備的USB傳輸是以ISO包的大小為依據(jù)觸發(fā)的,然而視頻傳 輸中常用的MPEG包的大小與ISO包并不兼容,所以現(xiàn)有技術中常常會出現(xiàn)主機無法獲得完 整數(shù)據(jù)包的情況,由于無線傳輸信號的不穩(wěn)定性,所以此種情況在無線視頻傳輸設備中尤 為明顯。因此,在本發(fā)明的一種優(yōu)選實施例中,所述視頻傳輸設備的USB傳輸裝置還可以包 括 丟棄處理模塊,用于在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。 即通過丟棄不完整的數(shù)據(jù)包,進而對下一個完整數(shù)據(jù)包進行處理,從而節(jié)省主機
端解碼錯誤數(shù)據(jù)所耗費的資源。 參考圖2,示出了本發(fā)明的一種視頻傳輸設備的USB傳輸裝置實施例2的結構框
9圖,具體可以包括 buf_l和buf_2, buf_2具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信號buf_2_tag, 當狀態(tài)信號為有效時為buf_2_tag = 1,無效時buf—2—tag = 0 :buf_2的空間對應m個視 頻數(shù)據(jù)包的大小,m為大于1的自然數(shù); 第一校驗模塊202,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗 模塊204 ;否則,觸發(fā)丟棄處理模塊220,在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù) 包,繼續(xù)接收下一個視頻數(shù)據(jù)包; 第二校驗模塊204,用于在buf_2_tag = 0時,校驗所述視頻數(shù)據(jù)包的接收順序是 否正確;若正確,則觸發(fā)第一寫入模塊206 ;若錯誤,則觸發(fā)第二寫入模塊208 ;
第一寫入模塊206,用于將該視頻數(shù)據(jù)包寫入buf_l ; 第二寫入模塊208,用于將該視頻數(shù)據(jù)包寫入buf_2,并將buf_2_tag改為1 ;
連續(xù)接收子模塊210,用于在buf_2_tag = 1時,將連續(xù)接收的m個視頻數(shù)據(jù)包寫 入buf_2 ; 排序子模塊212,用于在buf—2中對所述m個視頻數(shù)據(jù)包進行排序; 寫入處理子模塊214,用于將排序后的m個視頻數(shù)據(jù)包寫入bufj ; 容量控制模塊216,用于判斷buf_l是否寫滿,若是,則觸發(fā)主機傳送模塊218 ; 主機傳送模塊218,用于將buf_l中的視頻數(shù)據(jù)包發(fā)送至主機。 本實施例示出了圖l所示實施例中排隊處理模塊的一種具體應用示例,簡單來
講,其基本構思就是當發(fā)現(xiàn)第二緩存中存在視頻數(shù)據(jù)包時,表示前面出現(xiàn)了順序錯誤的情
形,在這種情況下,則先存滿第二緩存,在第二緩存中做排序,然后再寫入第一緩存。 例如,假設第二緩存的空間為5個視頻數(shù)據(jù)包的大小(5*188*312byte) , n個視頻
數(shù)據(jù)包的正確順序是a、 b、 c、 d、 e、 f.....n,傳輸開始第一次接收到完整的a,寫入buf_l ;
第二次接收到完整的c,發(fā)現(xiàn)順序錯誤,于是將c寫入buf_2,并將buf_2_tag置1 ;此后,將 連續(xù)接收到完整d、 e、 f、b(無論其接收順序是否正確)均寫入buf_2 ;然后,在buf_2中將 c、d、e、f、b排序為b、c、d、e、f,再將b、c、d、e、f寫入bufj。 需要說明的是,在實際中,如果buf—2存滿后,仍然未收到正確排序的某個視頻數(shù) 據(jù)包,如上例中,在c寫入buf_2后,連接接收到d、 e、 f、 g ;但一直未能收到正確排序的b, 則直接對已存的數(shù)據(jù)包進行排序也是可行的。這是因為,對于MPEG數(shù)據(jù)而言,由于其壓縮 過程本來就利用了時間冗余,所以缺少個別包對整體視頻的解碼和輸出影響并不大。
參考圖3,示出了本發(fā)明的一種視頻傳輸設備的USB傳輸裝置實施例3的結構框 圖,具體可以包括 buf_l和buf_2, buf_2具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信號buf_2_tag, 當狀態(tài)信號為有效時為buf_2_tag = l,無效時buf_2_tag = 0 : 第一校驗模塊302,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗 模塊304 ;否則,觸發(fā)丟棄處理模塊320,在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù) 包,繼續(xù)接收下一個視頻數(shù)據(jù)包; 第二校驗模塊304,用于在buf_2_tag = 0時,校驗所述視頻數(shù)據(jù)包的接收順序是 否正確;若正確,則觸發(fā)第一寫入模塊306 ;若錯誤,則觸發(fā)第二寫入模塊308 ;
第一寫入模塊306,用于將該視頻數(shù)據(jù)包寫入bufj ;
第二寫入模塊308,用于將該視頻數(shù)據(jù)包寫入buf_2,并將buf_2_tag改為1 ;
判斷子模塊310,用于在buf_2_tag = 1時,判斷buf_2中的視頻數(shù)據(jù)包是否與當 前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則執(zhí)行寫入調整子模塊312 ;
寫入調整子模塊312,用于將buf—2中的視頻數(shù)據(jù)包寫入bufj,并在bufj中進 行排序,以及,將buf_2_tag改為0 ; 容量控制模塊316,用于判斷buf_l是否寫滿,若是,則觸發(fā)主機傳送模塊218 ; 主機傳送模塊318,用于將buf_l中的視頻數(shù)據(jù)包發(fā)送至主機。 本實施例示出了圖1所示實施例中排隊處理模塊的另一種具體應用示例,簡單來
講,其基本構思就是當發(fā)現(xiàn)第二緩存中存在視頻數(shù)據(jù)包時,表示前面出現(xiàn)了順序錯誤的情
形,此時,若發(fā)現(xiàn)第二緩存中的視頻數(shù)據(jù)包與當前接收的數(shù)據(jù)包可形成正確順序,如為當前 接收數(shù)據(jù)包的下一個數(shù)據(jù)包,則將其寫入第一緩存后進行排序,同時重置狀態(tài)信號為無效。
例如,假設待寫入的3個視頻數(shù)據(jù)包的正確順序是a、b、 c、第一次接收到完整的 a,寫入buf_l ;第二次接收到c,寫入buf_2,并將buf_2_tag改為1 ;第三次接收到b,由于 buf2_tag = 1,讀取buf_2中發(fā)現(xiàn)有與b形成正確順序的c,于是將b、c均寫入buf_l并排 序;同時,將buf2—tag改為0。 當然,上述實施例2與實施例3僅僅是本發(fā)明排除處理模的應用示例,本領域技術 人員依據(jù)實際情況任意選用、組合上述排除處理模塊的處理方案,或者,采用其它方案對第 一緩存和第二緩存的視頻數(shù)據(jù)包進行排序和寫入第一緩存都是可行的,本發(fā)明對此無需加 以限制。 參考圖4,示出了本發(fā)明的一種視頻傳輸設備實施例的結構框圖,具體可以包括
視頻接收處理模塊401,用于接收模擬視頻信號,并將其壓縮、轉換為數(shù)字的視頻 數(shù)據(jù); 主機402,用于對視頻數(shù)據(jù)進行解碼、輸出處理; 第一緩存buf_l和第二緩存buf—2,所述第二緩存buf_2具有標識其是否緩存有 視頻數(shù)據(jù)包的狀態(tài)信號在本發(fā)明的一種優(yōu)選實施例中,所述buf_l和buf_2可以位于主機 402中; USB接口模塊403,包括以下單元 第一校驗模塊,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗模 塊; 第二校驗模塊,用于在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包 的接收順序是否正確;若正確,則觸發(fā)第一寫入模塊;若錯誤,則觸發(fā)第二寫入模塊;
第一寫入模塊,用于將該視頻數(shù)據(jù)包寫入第一緩存; 第二寫入模塊,用于將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效;
排隊處理模塊,用于在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩 存中的視頻數(shù)據(jù)包進行順序調整,以及,寫入第一緩存; 容量控制模塊,用于判斷第一緩存是否寫滿,若是,則觸發(fā)主機傳送模塊;
主機傳送模塊,用于將第一緩存中的視頻數(shù)據(jù)包發(fā)送至主機402。
其中,所述視頻接收處理模塊和主機均對應現(xiàn)有技術中的結構,例如,視頻接收處 理模塊可以用于接收模擬視頻信號(如符合國家標準的PAL制式的模擬信號),對其預處理后轉化為數(shù)字信號(如符合ITU-656協(xié)議的8位數(shù)字信號)。然后將有效數(shù)據(jù)存入幀存儲 器,等待內部芯片實施壓縮變換;主機中一般設置有解碼器404,以進行解碼、顯示或進一 步處理。 優(yōu)選的是,在本實施例中,所述USB接口模塊還可以包括 丟棄處理模塊,用于在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。 在本發(fā)明的一種優(yōu)選實施例中,所述第二緩存的空間可以對應m個視頻數(shù)據(jù)包的
大小,m為大于1的自然數(shù);所述排隊處理模塊可以進一步包括以下子模塊 連續(xù)接收子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個
視頻數(shù)據(jù)包寫入第二緩存; 排序子模塊,用于在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序; 寫入處理子模塊,用于將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。 本發(fā)明的另一種優(yōu)選實施例,所述排隊處理模塊可以進一步包括以下子模塊 判斷子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻
數(shù)據(jù)包是否與當前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則執(zhí)行寫入調整子模塊; 寫入調整子模塊,用于將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存,并在第一緩存
中進行排序,以及,將第二緩存的狀態(tài)信號改為無效。 對于圖4所示的實施例而言,由于其與前述裝置實施例基本相似,所以描述的比 較簡單,相關之處參見裝置實施例的部分說明即可。 參考圖5 ,示出了本發(fā)明的一種視頻傳輸設備的USB傳輸方法實施例的流程圖,其 中,所述視頻傳輸設備包括第一緩存和第二緩存,所述第二緩存具有標識其是否緩存有視 頻數(shù)據(jù)包的狀態(tài)信號;本實施例具體可以包括以下步驟 步驟501、校驗接收的視頻數(shù)據(jù)包是否完整,若是,則執(zhí)行步驟502 ;若否,則執(zhí)行 步驟507 ; 優(yōu)選的是,所述視頻數(shù)據(jù)包為MPEG包,在實際中,可以依據(jù)當前接收的MPEG包的 數(shù)據(jù)頭和大小判斷是否為完整的數(shù)據(jù)包。 步驟502、在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包的接收順序 是否正確;若正確,則執(zhí)行步驟503 ;若錯誤,則執(zhí)行步驟504 ; 在實際中,可以依據(jù)當前接收的MPEG包的分組數(shù)據(jù)標識(PID下的包號)是否為
上一次接收數(shù)據(jù)包的連續(xù)遞增標識;若是,則判定接收順序正確,否則,判定接收順序錯誤。
步驟503、將該視頻數(shù)據(jù)包寫入第一緩存; 步驟504、將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效; 步驟505、在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩存中的視頻
數(shù)據(jù)包進行順序調整,以及,寫入第一緩存; 步驟506、在第一緩存寫滿時,將其緩存的視頻數(shù)據(jù)包發(fā)送至主機。
步驟507、丟棄該視頻數(shù)據(jù)包。 在具體實現(xiàn)中,所述第一緩存和第二緩存的空間大小,可以依據(jù)視頻數(shù)據(jù)的格式 設置,例如,對于MPEG格式的視頻數(shù)據(jù)而言,則可以相應設置第一緩存和第二緩存的空間 大小為58656字節(jié)的整數(shù)倍。 在本發(fā)明的一種優(yōu)選實施例中,所述第二緩存的空間對應m個視頻數(shù)據(jù)包的大小,m為大于1的自然數(shù);所述步驟505可以進一步包括以下子步驟 子步驟S51、在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個視頻數(shù)據(jù)包 寫入第二緩存; 子步驟S52、在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序; 子步驟S53、將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。 作為另一優(yōu)選實施例,所述步驟505可以進一步包括以下子步驟 子步驟S61、在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻數(shù)據(jù)包
是否與當前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則執(zhí)行子步驟S62 ; 子步驟S62、將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存,并在第一緩存中進行排
序,以及,將第二緩存的狀態(tài)信號改為無效。 對于方法實施例而言,為了簡單描述,故將其都表述為一系列的動作組合,但是本
領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步
驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的
實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。 本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與
其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于方法實施例
而言,由于其與裝置實施例基本相似,所以描述的比較簡單,相關之處參見裝置實施例的部
分說明即可。 以上對本發(fā)明所提供的一種視頻傳輸設備的USB傳輸裝置、一種視頻傳輸設備及 一種視頻傳輸設備的USB傳輸方法進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原 理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思 想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上 均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
一種視頻傳輸設備的USB傳輸裝置,其特征在于,包括第一緩存和第二緩存,所述第二緩存具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信號第一校驗模塊,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗模塊;第二校驗模塊,用于在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包的接收順序是否正確;若正確,則觸發(fā)第一寫入模塊;若錯誤,則觸發(fā)第二寫入模塊;第一寫入模塊,用于將該視頻數(shù)據(jù)包寫入第一緩存;第二寫入模塊,用于將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效;排隊處理模塊,用于在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩存中的視頻數(shù)據(jù)包進行順序調整,以及,寫入第一緩存;容量控制模塊,用于判斷第一緩存是否寫滿,若是,則觸發(fā)主機傳送模塊;主機傳送模塊,用于將第一緩存中的視頻數(shù)據(jù)包發(fā)送至主機。
2. 如權利要求l所述的裝置,其特征在于,還包括丟棄處理模塊,用于在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。
3. 如權利要求l或2所述的裝置,其特征在于,所述第二緩存的空間對應m個視頻數(shù)據(jù) 包的大小,m為大于1的自然數(shù);所述排隊處理模塊進一步包括連續(xù)接收子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個視頻 數(shù)據(jù)包寫入第二緩存;排序子模塊,用于在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序; 寫入處理子模塊,用于將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。
4. 如權利要求1或2所述的裝置,其特征在于,所述排隊處理模塊進一步包括 判斷子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻數(shù)據(jù)包是否與當前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則執(zhí)行寫入調整子模塊;寫入調整子模塊,用于將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存,并在第一緩存中進 行排序,以及,將第二緩存的狀態(tài)信號改為無效。
5. 如權利要求1所述的裝置,其特征在于,所述第一校驗模塊依據(jù)視頻數(shù)據(jù)包的數(shù)據(jù) 起始位信息和數(shù)據(jù)包大小校驗所述視頻數(shù)據(jù)包是否完整。
6. 如權利要求1所述的裝置,其特征在于,所述第二校驗模塊依據(jù)視頻數(shù)據(jù)包的分組 數(shù)據(jù)標識及數(shù)據(jù)包號校驗視頻數(shù)據(jù)包的接收順序是否正確。
7. 如權利要求1所述的裝置,其特征在于,所述視頻數(shù)據(jù)包為MPEG數(shù)據(jù)包,所述第一緩 存和第二緩存的空間為58656字節(jié)的整數(shù)倍。
8. —種視頻傳輸設備,其特征在于,包括視頻接收處理模塊,用于接收模擬視頻信號,并將其壓縮、轉換為數(shù)字的視頻數(shù)據(jù); 主機,用于對視頻數(shù)據(jù)進行解碼、輸出處理;第一緩存和第二緩存,所述第二緩存具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信號 USB接口模塊,包括以下單元第一校驗模塊,用于校驗接收的視頻數(shù)據(jù)包是否完整,若是,則觸發(fā)第二校驗模塊; 第二校驗模塊,用于在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包的接 收順序是否正確;若正確,則觸發(fā)第一寫入模塊;若錯誤,則觸發(fā)第二寫入模塊; 第一寫入模塊,用于將該視頻數(shù)據(jù)包寫入第一緩存;第二寫入模塊,用于將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效;排隊處理模塊,用于在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩存中的視頻數(shù)據(jù)包進行順序調整,以及,寫入第一緩存;容量控制模塊,用于判斷第一緩存是否寫滿,若是,則觸發(fā)主機傳送模塊;主機傳送模塊,用于將第一緩存中的視頻數(shù)據(jù)包發(fā)送至主機。
9. 如權利要求8所述的視頻傳輸設備,其特征在于,還包括丟棄處理模塊,用于在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。
10. 如權利要求8或9所述的視頻傳輸設備,其特征在于,所述第二緩存的空間對應m個視頻數(shù)據(jù)包的大小,m為大于1的自然數(shù);所述排隊處理模塊進一步包括連續(xù)接收子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個視頻數(shù)據(jù)包寫入第二緩存;排序子模塊,用于在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序;寫入處理子模塊,用于將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。
11. 如權利要求8或9所述的視頻傳輸設備,其特征在于,所述排隊處理模塊進一步包括判斷子模塊,用于在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻數(shù)據(jù)包是否與當前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則執(zhí)行寫入調整子模塊;寫入調整子模塊,用于將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存,并在第一緩存中進行排序,以及,將第二緩存的狀態(tài)信號改為無效。
12. 如權利要求8所述的視頻傳輸設備,其特征在于,所述第一緩存、第二緩存位于主機中。
13. —種視頻傳輸設備的USB傳輸方法,其特征在于,所述視頻傳輸設備包括第一緩存和第二緩存,所述第二緩存具有標識其是否緩存有視頻數(shù)據(jù)包的狀態(tài)信號所述方法包括步驟Sl、校驗接收的視頻數(shù)據(jù)包是否完整,若是,則執(zhí)行步驟S2 ;步驟S2、在所述第二緩存的狀態(tài)信號為無效時,校驗所述視頻數(shù)據(jù)包的接收順序是否正確;若正確,則執(zhí)行步驟S3 ;若錯誤,則執(zhí)行步驟S4 ;步驟S3、將該視頻數(shù)據(jù)包寫入第一緩存;步驟S4、將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效;步驟S5、在所述第二緩存的狀態(tài)信號為有效時,對第一緩存和第二緩存中的視頻數(shù)據(jù)包進行順序調整,以及,寫入第一緩存;步驟S6、在第一緩存寫滿時,將其緩存的視頻數(shù)據(jù)包發(fā)送至主機。
14. 如權利要求13所述的方法,其特征在于,還包括在接收的視頻數(shù)據(jù)包不完整時,丟棄該視頻數(shù)據(jù)包。
15. 如權利要求13或14所述的方法,其特征在于,所述第二緩存的空間對應m個視頻數(shù)據(jù)包的大小,m為大于1的自然數(shù);所述步驟S5進一步包括在所述第二緩存的狀態(tài)信號為有效時,將連續(xù)接收的m個視頻數(shù)據(jù)包寫入第二緩存;在第二緩存中對所述m個視頻數(shù)據(jù)包進行排序;將排序后的m個視頻數(shù)據(jù)包寫入第一緩存。
16.如權利要求13或14所述的方法,其特征在于,所述步驟S5進一步包括 在所述第二緩存的狀態(tài)信號為有效時,判斷第二緩存中的視頻數(shù)據(jù)包是否與當前接收的視頻數(shù)據(jù)包形成正確接收順序,若是,則將第二緩存中的視頻數(shù)據(jù)包寫入第一緩存,并在第一緩存中進行排序,以及,將第二緩存的狀態(tài)信號改為無效。
全文摘要
本發(fā)明公開了一種視頻傳輸設備的USB傳輸裝置,包括第一緩存和第二緩存,第一校驗模塊用于校驗接收的視頻數(shù)據(jù)包是否完整,若是則觸發(fā)第二校驗模塊;第二校驗模塊用于在第二緩存狀態(tài)為無效時,校驗視頻數(shù)據(jù)包的接收順序是否正確;若正確,則觸發(fā)第一寫入模塊;若錯誤,則觸發(fā)第二寫入模塊;第一寫入模塊,用于將該視頻數(shù)據(jù)包寫入第一緩存;第二寫入模塊,用于將該視頻數(shù)據(jù)包寫入第二緩存,并將狀態(tài)信號改為有效;排隊處理模塊,用于在狀態(tài)信號為有效時,對第一緩存和第二緩存中的視頻數(shù)據(jù)包進行順序調整,并寫入第一緩存;容量控制模塊用于在第一緩存寫滿時觸發(fā)主機傳送。本發(fā)明可以減少主機端的資源耗費,提高視頻傳輸效率和穩(wěn)定性。
文檔編號H04N7/24GK101720033SQ20091023828
公開日2010年6月2日 申請日期2009年11月24日 優(yōu)先權日2009年11月24日
發(fā)明者唐巍 申請人:北京中星微電子有限公司