国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      嵌入式通信設備數據傳輸方法與流程

      文檔序號:11594354閱讀:696來源:國知局

      本發(fā)明涉及視頻處理,特別涉及一種嵌入式通信設備數據傳輸方法。



      背景技術:

      隨著信息技術的不斷發(fā)展,數據日益成為人們日常生活中重要資源。爆炸式增長的數據必然帶來存儲設備的持續(xù)增加。目前,數據存儲環(huán)境下的現代數據中心的存儲節(jié)點規(guī)模少則幾萬多則幾十萬,但在規(guī)模巨大的存儲環(huán)境系統(tǒng)中,存儲節(jié)點異常或者失效已成為一種普遍現象;與此同時,因網絡連接設備或者存儲節(jié)點其它元器件造成的數據不可訪問或者丟失現象也時有發(fā)生。對于視頻編碼存儲而言,計算量少的編譯碼復雜度與數據丟失時如何利用最少的數據量進行數據恢復都具有局部的時間特性,例如存儲中心網絡帶寬因素,cpu計算能力因素,在視頻文件利用編碼冗余策略進行存儲時,會對文件的存儲時間性能造成影響。若系統(tǒng)內具有高速帶寬與高性能的計算能力,視頻存儲單位大小的文件就會消耗更短的時間。而較高的可靠性與系統(tǒng)內最小的數據冗余與系統(tǒng)消耗較少的電能具有全局的時間特性,這將會直接決定系統(tǒng)消耗的設備成本,管理成本及能耗成本。為了滿足日益擴展的數據存儲需求,人們對視頻數據存儲的可靠性,可用性等相關特性提出了更高的要求,如何實現數據的低冗余度高可靠性存儲已經成為業(yè)界面臨的一個巨大挑戰(zhàn)。



      技術實現要素:

      為解決上述現有技術所存在的問題,本發(fā)明提出了一種嵌入式通信設備數據傳輸方法,包括:

      當檢測到存儲節(jié)點發(fā)生數據丟失時,調度分布式存儲在子集中的校驗數據塊,對丟失數據塊進行重建。

      優(yōu)選地,所述調度分布式存儲在子集中的校驗數據塊之前,還包括:

      通過下載部分原數據分塊與部分校驗數據塊,通過重建的方式在嵌入式終端重建丟失數據塊,恢復完成后,在使用文件的同時將已經重建出的數據分塊,經過數據驗證,重新發(fā)送到存儲系統(tǒng)。

      優(yōu)選地,所述調度分布式存儲在子集中的校驗數據塊,進一步包括:

      嵌入式終端調度子集中可滿足重建要求的最少校驗數據塊。

      優(yōu)選地,若出現多個存儲節(jié)點發(fā)生異常,計算恢復所有文件所需要的計算量,并按照計算量的均衡負載原則,對恢復節(jié)點進行任務分配。

      優(yōu)選地,所述當校驗信息子集中出現節(jié)點異常時,調度源文件進行二次編碼,并再次部署于新加入的節(jié)點上。

      優(yōu)選地,利用定期心跳和事件廣播組合的方式實現系統(tǒng)節(jié)點狀態(tài)的監(jiān)測,當系統(tǒng)出現新的節(jié)點時,該節(jié)點將通過廣播的方式將本節(jié)點的信息傳播給協調服務器及各個存儲節(jié)點;同時,每個存儲節(jié)點定期向其對應的文件管理節(jié)點報告自已存在的狀態(tài),如果對應的文件管理節(jié)點一段時間內沒有收到心跳則認為該存儲節(jié)點異常。

      優(yōu)選地,異常節(jié)點在恢復過程中,首先檢測與其余節(jié)點之間的連接情況,當恢復文件的節(jié)點與其余節(jié)點具有差別較大的網絡連接時,對各個鏈路發(fā)送測試數據包進行數據通路測評,并進行排序,并計算出所需恢復的最少文件塊個數p,從而從最優(yōu)的p個網絡連接中,獲取文件塊,對文件進行恢復。

      本發(fā)明相比現有技術,具有以下優(yōu)點:

      本發(fā)明提出了一種嵌入式通信設備數據傳輸方法,盡可能少地利用視頻存儲節(jié)點集內部網絡帶寬及計算能力來實現數據恢復,在實現數據高可用性的同時,提高了擴展性能。

      附圖說明

      圖1是根據本發(fā)明實施例的嵌入式通信設備數據傳輸方法的流程圖。

      具體實施方式

      下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細描述。結合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節(jié)以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細節(jié),并且無這些具體細節(jié)中的一些或者所有細節(jié)也可以根據權利要求書實現本發(fā)明。

      本發(fā)明的一方面提供了一種嵌入式通信設備數據傳輸方法。圖1是根據本發(fā)明實施例的嵌入式通信設備數據傳輸方法流程圖。

      本發(fā)明的視頻數據存儲系統(tǒng)采用了存儲節(jié)點子集擴展策略。在系統(tǒng)軟件結構上采用新的數據恢復方式,同時利用嵌入式終端的計算能力,使得系統(tǒng)盡可能少的利用存儲節(jié)點集內部網絡帶寬及計算能力來實現丟失數據的恢復重建。將丟失數據塊的恢復功能部分的遷移到嵌入式終端。視頻數據存儲系統(tǒng)中將單個文件的數據經過編碼后分塊封裝,均勻地存儲于鏡像子集的不同節(jié)點上,系統(tǒng)提供一個可擴展的存儲卷,卷內的數據采用層次目錄結構組織,支持多機多進程的并發(fā)存取。使系統(tǒng)可根據存儲容量的需求進行鏡像子集擴展,利用各個鏡像子集節(jié)點存儲能力達到按需擴展的目的。

      鏡像子集形成一個統(tǒng)一的單一文件映射,每個子集間形成一致的編碼存儲視圖。每個子集內存儲節(jié)點存儲的為相同文件的不同分塊,系統(tǒng)維護同一文件的不同分塊與存儲節(jié)點之間的映射關系。各個鏡像子集間將組合成一個具有層次結構的樹狀圖,以建立存儲文件集合與設備集合之間的映射關系。同時,各個存儲節(jié)點開辟一段單獨的存儲空間,用于系統(tǒng)特殊用途的數據存儲,避免造成鏡像子集內的存儲節(jié)點存儲文件目錄不一致的情況。系統(tǒng)中各個存儲節(jié)點獨立地維護子集的存儲資源和文件的元數據本身,并能夠獨立提供文件分塊讀取服務。當存儲節(jié)點內磁盤損壞時,磁盤所在節(jié)點對數據塊進行恢復,文件恢復節(jié)點將調度分布式存儲在子集中可滿足重建要求的最少校驗分塊,對丟失數據塊進行重建。若出現多個存儲節(jié)點發(fā)生異常時,文件服務器將計算恢復所有文件所需要的計算量,并按照計算量的均衡負載原則,對恢復節(jié)點進行任務分配。當校驗信息子集中出現節(jié)點異常時,系統(tǒng)將調度源文件進行二次編碼,并再次部署于新加入的節(jié)點上。

      存儲節(jié)點間采用對等結構設計,當存儲節(jié)點加入視頻數據存儲系統(tǒng)時,將自已的資源列表提供給協調服務器,任何一個組內節(jié)點既可以作為文件分塊的請求者,也可以作為文件分塊的提供者,視頻數據存儲系統(tǒng)根據存儲數據量及存儲系統(tǒng)利用率確定是否啟動下一鏡像子集。在任一鏡像子集sk(a;b)(k=1,2,3...)中將存儲節(jié)點分為文件分塊存儲節(jié)點及編碼校驗分塊存儲節(jié)點。文件分塊存儲節(jié)點構成信息鏡像子集sk(a),其中節(jié)點ak,i∈sk(a)(k,i屬于正整數),用于存儲原文件的分塊;而編碼校驗分塊存儲節(jié)點bk,i(k,i屬于正整數)構成校驗信息鏡像子集s(b)。

      為了降低整個系統(tǒng)內部文件的數據冗余度,本發(fā)明系統(tǒng)架構將文件級重復數據刪除引入系統(tǒng)。并在數據源位置執(zhí)行重復數據消冗的策略。嵌入式終端軟件運行時,利用sha加密算法計算待上傳文件的散列值,并將該值上傳到協調服務器,協調服務器協調各個存儲節(jié)點對該值進行查詢,當發(fā)現存在該值時,協調服務器更新該文件的引用度,并通知嵌入式終端數據已存儲,當未檢測出相同散列時,嵌入式終端接收該文件,并對文件的信息分塊計算散列,并分布式存儲到鏡像子集的節(jié)點中。

      文件級別的相同數據檢測可以檢測出不同文件名的相同文件,也可以檢測出不同目錄下的相同文件。系統(tǒng)將文件劃分成各個分塊,并計算每個分塊的sha值,將整個文件的散列值作為該文件的特征簽名。系統(tǒng)將每個文件的特征簽名與文件路徑以及其他相關信息構成元數據一起放在內存中,而其各個分塊的簽名放在磁盤中,只有當系統(tǒng)有節(jié)點異常時,才將各個分塊的簽名讀入內存中,以便嵌入式終端對丟失數據恢復后,進行校驗對比。為加快分塊的查找,系統(tǒng)將分塊的位置信息、及其散列值、以及文件塊標識統(tǒng)一存儲在一張表中。

      當系統(tǒng)出現節(jié)點異常,數據丟失而嵌入式終端卻需要讀取數據時,嵌入式終端通過下載部分原數據分塊與部分校驗數據塊,通過重建的方式在嵌入式終端重建丟失數據塊,恢復完成后,嵌入式終端在使用文件的同時,將已經重建出的數據分塊,經過數據驗證,重新發(fā)送到存儲系統(tǒng)。

      針對各個鏡像子集中數據存儲節(jié)點都具有相同目錄信息的特點,先將鏡像子集中的元文件均勻分塊存儲到各個存儲節(jié)點中,當嵌入式終端需要元文件信息時,鏡像子集的各個存儲節(jié)點將查詢本節(jié)點存儲的元數據。這樣將元數據的查詢轉換成各個存儲節(jié)點分別對元數據子塊的查詢。

      當嵌入式終端發(fā)出文件存儲請求時,文件服務器根據子集sk(a;b)中節(jié)點的運行情況,產生元數據,并向子集sk(a;b)中的某一空閑節(jié)點發(fā)出指令,嵌入式終端將直接和該存儲節(jié)點進行數據交互。該節(jié)點對文件進行分塊并編碼,產生校驗數據,并按照數據封裝格式進行封裝。文件的原始分塊將發(fā)送到子集sk(a),校驗數據塊分布式存儲到子集sk(b)上。這樣每個文件的數據塊及校驗塊跨越子集中的所有存儲節(jié)點,各節(jié)點間具有相同的文件存儲視圖。當鏡像子集sk(a;b)中的存儲空間即將利用完畢時,系統(tǒng)啟動下一鏡像子集sk+1(a;b)。為增加集群存儲系統(tǒng)計算資源的利用率,子集s1(b),s2(b),...sk+1(b)中節(jié)點也可被文件服務器用來分配對后續(xù)待存儲文件進行編碼計算。

      當有文件讀取需求時,嵌入式終端向文件服務器請求源數據,文件服務器直接發(fā)送待讀取文件與鏡像子集及存儲節(jié)點之間的映射與匹配信息給嵌入式終端。獲得應答后,嵌入式終端先將所要求的文件名和字節(jié)偏移轉換成文件的索引,向存儲節(jié)點發(fā)送包含文件名和索引的請求,直接和目標存儲節(jié)點集合建立文件讀取互操作。嵌入式終端向文件鏡像子集中每一個存儲節(jié)點發(fā)送一個請求,請求指定的文件分塊和塊內數據區(qū)。如果下載鏡像子集sk(b)中存儲校驗塊,則利用數據重建的方式獲取原文件。

      當嵌入式終端發(fā)出文件存儲請求,且存儲系統(tǒng)中無相同數據時,協調服務器根據子集sk(b)中節(jié)點的運行情況產生元數據,并向子集sk(b)中的某一空閑節(jié)點發(fā)出指令,嵌入式終端直接和該存儲節(jié)點進行文件交互。該節(jié)點對文件進行分塊并編碼,產生校驗數據,并按照數據封裝格式進行封裝,同時計算出各個文件信息分塊的散列值,并將散列值發(fā)送到協調服務器。存儲文件的數據分塊將發(fā)送到子集sk(a),校驗數據塊分布式存儲到子集sk(b)上。這樣每個文件的數據塊及校驗塊跨越子集中的所有存儲節(jié)點,各節(jié)點間具有相同的文件存儲視圖。當鏡像子集sk(a;b)中的存儲空間即將利用完畢時,系統(tǒng)啟動下一鏡像子集sk+1(a;b)。

      當有文件讀取需求時,嵌入式終端向文件服務器請求源數據,文件服務器直接發(fā)送待讀取文件與鏡像子集及存儲節(jié)點之間的映射與匹配信息給嵌入式終端。獲得應答后,用戶先將所要求的文件名和字節(jié)偏移轉換成文件的索引,向存儲節(jié)點發(fā)送包含文件名和索引的請求,直接和目標存儲節(jié)點集合建立文件讀取互操作。協調服務器根據查詢結果返回文件塊的索引,包括文件所在的集群子集以及數據塊的位置。嵌入式終端向文件鏡像子集中每一個存儲節(jié)點發(fā)送一個請求,請求指定的文件分塊和塊內數據區(qū)。嵌入式終端將按順序重組文件分塊獲得原文件。

      協調服務器負責分配集群存儲任務及元數據管理,協調服務器記錄存儲集群中各節(jié)點信息,存儲節(jié)點的子集劃分信息、系統(tǒng)存儲文件目錄信息、從文件到塊的映射關系信息以及各個文件分塊的散列值,同時還負責對丟失文件塊進行恢復時的策略確定,及恢復任務分配,文件分塊的遷移管理。系統(tǒng)利用定期心跳和事件廣播組合的方式實現系統(tǒng)節(jié)點狀態(tài)的監(jiān)測,當系統(tǒng)出現新的節(jié)點時,該節(jié)點將通過廣播的方式將本節(jié)點的信息傳播給協調服務器及各個存儲節(jié)點。同時,每個存儲節(jié)點定期向其對應的文件管理節(jié)點報告自已存在的狀態(tài),如果對應的文件管理節(jié)點一段時間內沒有收到心跳則認為該存儲節(jié)點異常。

      異常節(jié)點在恢復過程中,首先檢測與其余節(jié)點之間的連接情況,當恢復文件的節(jié)點與其余節(jié)點具有差別較大的網絡連接時,對各個鏈路發(fā)送測試數據包進行數據通路測評,并進行排序,并計算出所需恢復的最少文件塊個數p,從而從最優(yōu)的p個網絡連接中,獲取文件塊,對文件進行恢復。若節(jié)點k負責對文件f丟失的文件塊進行恢復,節(jié)點k從與其連接的p個節(jié)點發(fā)送全部文件塊讀取請求,節(jié)點k獲得所需文件塊后,利用系統(tǒng)編碼方法將源文件恢復后,根據標記和丟失的節(jié)點和文件塊,利用系統(tǒng)采用的編碼方法對源文件進行二次編碼,獲得丟失的冗余文件塊,重新按照文件封裝協議,依據各個丟失的文件塊尺寸進行重新封裝,并將重新恢復出的文件塊f的l個文件塊,分別均勻按順序存儲在存儲節(jié)點上。各個節(jié)點開辟一個專門的分區(qū)暫時存儲被重建出的數據塊,當異常節(jié)點被替換后,重建出的數據將按照協調服務器的數據塊放置路徑統(tǒng)一進行放置。

      本發(fā)明基于嵌入式終端的使用需求進行丟失數據塊恢復。利用散布在嵌入式終端大量的計算資源參與丟失文件塊的重建與集群內部集中重建相結合的方式,來實現異常節(jié)點上文件分塊的重建。

      若原文件為k個分塊,經編碼后產生n-k個校驗數據塊,則從這n個數據塊中任意取出k個分塊便可重建出原文件。集群存儲系統(tǒng)運行時,對重建臨界參數k(1<k<n-m)進行設置。當集群中異常存儲節(jié)點kf<k時,集群管理器并不組織內部節(jié)點對異常存儲節(jié)點上的數據塊進行恢復,而是利用用戶對所需求的數據塊進行恢復。用戶在讀取某一文件時,需要同時下載集群中所剩余的n-kf個原文件數據分塊和kf個校驗數據塊,并下載碼字信息,重建出異常的kf個數據塊,并將重建出的數據塊與已下載的n-kf個數據塊,拼接成原文件。同時,嵌入式終端對恢復出的kf個數據塊按照集群系統(tǒng)中數據塊封裝的格式再次進行封裝,并上傳到服務器集群上。文件服務器將計算該數據塊的散列值,并與已存儲的原數據塊的散列值進行比較,若相同,則存儲該分塊,若不同則拒絕該數據分塊的上傳請求。當計算機集群中異常的節(jié)點個數超過設置的重建臨界參數值k時,協調服務器將根據未被恢復的文件分塊數據量大小及集群內節(jié)點運行情況確定集群內恢復策略。協調服務器將計算重建所有剩余文件分塊所需要的計算量,按照計算量的均衡負載原則,對恢復節(jié)點進行任務分配。并將恢復的文件分塊再次部署于集群內存儲節(jié)點上。

      實現時,嵌入式終端首先計算已經重建出數據塊的散列函數值,將散列值上傳到協調服務器,由于協調服務器中已經存儲了在最初文件存儲時已經存儲的散列值庫,與庫中的丟失文件的散列值進行比對,如果發(fā)現嵌入式終端重建出的數據塊的散列值與丟失數據塊的散列值相同,則允許嵌入式終端上傳該數據塊,若嵌入式終端重建出的數據塊的散列值與丟失數據塊的散列值不同,說明重建的數據塊不正確,或者該數據已經被惡意篡改,不接收該數據塊。對于重要數據,當數據塊上傳完畢時,系統(tǒng)內部需要對已經上傳完畢的數據塊進行二次檢測。管理節(jié)點再次計算該數據塊的散列值,并與原數據塊的散列值再次比對,檢測其是否在上傳過程中,受到惡意攻擊或者篡改。

      當系統(tǒng)無原文件分塊丟失時,嵌入式終端直接下載原文件分塊來實現文件的讀取。在出現網絡阻塞時,嵌入式終端以重建的方式獲得比直接下載原數據塊更好的文件讀取性能。若某文件為m,信息節(jié)點個數為k,校驗節(jié)點個數為r。若某時刻信息節(jié)點可提供的數據讀取速率為ma,而校驗節(jié)點可提供的數據下載速率為mb,則mb>ma。若嵌入式終端重建m/k數據塊的速率為md,若有成立,則利用自適應方式對源文件進行獲取。嵌入式終端發(fā)送文件讀取請求,并檢測與各個節(jié)點網絡通信情況。當與各個節(jié)點連接狀況相同時,則選擇直接與原數據塊讀取文件信息。當發(fā)現有與存儲原數據塊的節(jié)點的連接較差時,計算通過下載部分校驗數據塊進行重建方式獲取文件的時間tr,同時計算從連接較差的節(jié)點直接讀取數據塊的時間t0,當tr<t0時,則通過重建的方式獲取文件。當tr>t0時,則以普通下載方式。

      針對流媒體文件內部讀取的特征,本發(fā)明首先對媒體文件進行均勻分塊,然后對分塊進行校驗計算獲取校驗塊,同時對流媒體文件前t個文件塊進行復制,并分別存儲到存儲集群的各個節(jié)點上。系統(tǒng)對于備份分塊采用單獨管理的模式,存儲節(jié)點將用磁盤中單獨開辟的空間存儲數據分塊的備份數據。統(tǒng)計某文件的被讀取次數x,若在單位時間內被讀取次數大于某一設定值y,則該文件的數據塊數保持復制和編碼冗余共存的狀態(tài)。若單位時間內被讀取次數小于某一設定值z,則系統(tǒng)清除該文件所有的復制分塊。

      系統(tǒng)中的節(jié)點進一步分為活動存儲節(jié)點和休眠存儲節(jié)點?;顒庸?jié)點的任務是存儲新的文件,以及承擔用戶對系統(tǒng)內部數據的讀取任務。優(yōu)選地,將存儲文件信息的存儲節(jié)點子集sn(a)設置為活動節(jié)點,讓其磁盤處于活動狀態(tài),以滿足海量用戶的數據讀取請求,存儲校驗數據的存儲節(jié)點子集sn(b)中存儲節(jié)點設置為靜態(tài)節(jié)點,使請求僅定向到部分布式存儲儲節(jié)點上。系統(tǒng)在重復數據散列值查詢時,利用該部分的節(jié)點進行分布式查詢。同時,文件管理器將統(tǒng)計對文件的讀取頻率,高頻率的數據將轉移到活動節(jié)點,訪問頻度很小的數據將被轉移到休眠存儲節(jié)點。

      在邏輯上,若存儲系統(tǒng)共有n個存儲節(jié)點,存儲系統(tǒng)需要達到的糾刪性能為系統(tǒng)可以容許任意r個存儲節(jié)點出現異常。則當嵌入式終端提出文件存儲請求時,系統(tǒng)首先對文件進行分塊,分塊的數目為k=n-r。并利用reedsolomon編碼矩陣g,產生r個校驗分塊。并利用k個節(jié)點存儲文件的原始分塊,其余r個節(jié)點用于存儲經過與g運算后產生的校驗數據分塊。其具體過程為:

      步驟一:當系統(tǒng)接到文件存儲請求時,系統(tǒng)直接對文件進行分塊,分為m×k個文件塊,若文件大小無法直接被m×k整除,則在文件末尾添加“0”。利用生成矩陣中各行向量中“0”、“1”對應的位置構造的規(guī)則,直接將編碼矩陣g中的向量與分割出的m×k數據塊進行運算,以獲取校驗數據塊。

      步驟二:若原文件的分塊用d=(d1,d2,…dk)t表示,將di稱為宏塊。di由m個微塊組成,而對于di中的m個數據塊(di,1,di,2…di,m)t稱為微塊組。若生成的校驗宏塊組用p=(p1,p2,…pr)t表示,其中每一個校驗宏塊pi中包含m個校驗微塊。原始文件塊及校驗塊的集合用e=(d1,d2,…dk|p1,p2,…pr)t表示。則:g·d=e。

      整個文件的m×k個數據分塊可表示為:d1,1,d1,2…d1,m,…,dk,1,dk,2…dk,m。原始文件分塊生成的每個校驗宏塊pi中包含m個校驗微塊,則校驗微塊分別表示為:p1,1,p1,2…p1,m,…,pr,1,pr,2…pr,m。

      將reedsolomon編碼矩陣g表示為g=[i,v’]t。其中i為m×m的單位陣,v’為(m×r)×(m×k)的矩陣。微塊pi,j的生成過程為:將待存儲文件的m×k個數據分塊d1,1,d1,2…d1,m,…,dk,1,dk,2…dk,m按順序排列,并與矩陣v’中第(i-1)·m+j行上的m·k個元素的位置依次對應。第(i-1)·m+j行上的0-1分布情況決定著校驗微塊pi,j的產生規(guī)則:將(i-1)·m+j行上所有值為“1”的元素位置所對應的那些文件數據分塊進行模2累加運算,得到的結果就是由該行決定的一個校驗微塊。如此,矩陣g中的子矩陣v’一共可以產生針對原文件的r·m個校驗微塊p1,1,p1,2,…,p1,m,…,pr,1,pr,2,…,pr,m,即可以產生t個校驗宏塊。單位矩陣i生成的數據塊即為文件的原始分塊。這些原始文件分塊按順序直接拼接起來就是原文件。

      然后針對二進制編碼矩陣進行編碼優(yōu)化。首先繼續(xù)將編碼矩陣表示為:

      g=[ik×m,gr×m]t其中:gr,m=[l1,i,l2,i,…lr×m,i]t

      根據生成校驗位的行向量l1,i,l2,i,…lr×m,i中“1”的個數確定出根據該向量計算校驗位時所需要的異或計算次數。并計算任意兩向量la,j,lb,j之間不相同的位數。下面根據以上參數確定校驗位計算優(yōu)化方法。其優(yōu)化流程如下:

      1.根據編碼矩陣中每一行向量中“1”的個數,確定出根據該行向量計算校驗位所需要的異或次數;

      2.比較編碼矩陣中任意兩個行向量之間的元素相同位與元素不同位的個數,記為(e/d),其中e表示兩個向量中元素相同的位個數;d表示兩個向量中元素不同的位個數;

      3.若行向量li(1<i<r·m)所需要的異或次數小于或等于步驟2中不同位數d,則直接根據該向量計算出該行所對應的校驗數據塊,并將該向量記為lj;

      4.利用步驟3中確定的向量lj,根據步驟2中相同位數與不同位數之比,確定下一個計算行向量。當某行向量lk與向量lj不同位數小于相同位數,且lk與向量lj不同位數與其余各個向量不同位數達到最小時,則根據向量lj已計算出的校驗數據來計算由lk確定的校驗數據;

      5.若仍有未計算校驗位,則按照步驟4中的計算規(guī)則,以lk為基礎向量,尋找下一待計算向量。

      6.確定是否已全部校驗位計算過程,若是,則保存校驗位依次計算過程,若否,則按照原始對應關系進行計算。

      為詳細的描述本方法,假定存儲數據塊d1,d2,…dr的節(jié)點出現異常,則嵌入式終端獲取原文件的具體過程如下:

      步驟1:根據編碼矩陣g=[i,v’]t直接得到校驗矩陣h=[v’t,im·r]t用于對丟失的數據塊進行重建。

      步驟2:從正常工作的存儲節(jié)點上,任意選擇k個存儲節(jié)點下載k個數據塊dr+1,dr+2,…dk,dk+l,…dk+r-1,dk+r。

      步驟3:將丟失的宏塊d1,d2,…dr分別表示為x1,x2,…xr,令β=[x1,x2,…xr,dr+1,…dk+r-1,dk+r],其中βr=[x1,x2,…xr],βk=[dr+1,…dk+r-1,dk+r]。即β=[βr,βk]。則按照關系β·h(k+r)r=0來重建出丟失的數據塊。

      步驟四:若矩陣h(k+r)r中與丟失數據塊對應的向量矩陣表示為h’r·r,矩陣h(k+r)r中與完好數據塊對應的向量矩陣表示為h”k.r;則有:

      βl×r·h’r·r=βl×k·h”k·r

      其中βl×r是未知的,丟失的數據塊βl×r可按照上式解出丟失數據塊,即:

      βl×r=βl×k·h”k·r(h’r·r)-1

      求出的數據塊[x1,x2,…xr]即為丟失的數據塊[d1,d2,…dr]。

      步驟五:將數據塊[d1,d2,…dr]與系統(tǒng)中未丟失的數據塊dr+1,dr+2…,dk,按照依次順序組合為[d1,d2,…dk],則該數據塊組合即為原文件。

      在存儲系統(tǒng)網絡帶寬受限的環(huán)境中,如果較低的維護帶寬來實現丟失數據的可靠性恢復。則采用以下基于校驗矩陣的丟失數據塊優(yōu)化重建方法。即選擇出需要最少重建帶寬的恢復矩陣h(k+r)m·rm的方法。具體如下:

      1.首先計算出校驗矩陣h(k+r)m·rm的每一個列向量中元素“1”的個數。

      2.從校驗矩陣h(k+r)m·rm中抽取出丟失數據塊所對應的行向量,構成矩陣hr’m·rm,則h(k+r)m·rm中剩余的行向量構成矩陣h(k+r-r’)m·rm,其下端r·m個向量構成了一個單位陣。上部表示為h(k-r’)m·rm。

      3.依次確定h(k-r’)m·rm中行向量中元素“0”的個數,當該行向量中“0”的個數大于或等于r’·m時,記錄每個“0”元素所在的列向量;并在所確定的列向量中進一步尋找是否存在“0”元素個數大于或等于r’·m的行向量,若無,則記錄上一步所確定的列向量。若有,則確定出新的列向量。以此循環(huán),并記錄下每次循環(huán)所確定的列向量。

      4.當循環(huán)檢索完畢后,分別根據每一組列向量中“1”的個數,確定出“1”元素和為最小的r’·m個列向量,并確定與之對應的h(r’·m)(r’·m)的秩為滿秩,即該子矩陣秩為r'·m。

      在本發(fā)明的進一步方面,將地址索引表ait引入鏡像子集作為擴展的尋址維度。地址索引表ait是用來描述尋址鏈表act屬性的元數據,ait將act劃分成為單個的可尋址邏輯成分,可以分別獨立訪問,三元動態(tài)結構的視頻數據存儲系統(tǒng)具有并行讀寫訪問的能力。而ait的指針是直接指向act邏輯成分的目標地址單元,無需搜索比較即可快速實現隨機訪問。

      地址索引表ait是尋址項aht集合,即ait={aht1,…,ahtm,…,ahtm};

      其中ahtm有一個輸入項和相對應的一個輸出項。它的輸入項為尋址變量值的一個組合,輸出項是該組合對應的數據索引。

      在視頻存儲系統(tǒng)鏡像子集的ait中,每個尋址項aht的輸入值是一組數據的尋址變量值,即邏輯地址la,其輸出值均為與該la值相對應的一個尋址鏈表act的指針、一個偏移量、一個數據長度。該act指針指向該組數據所要訪問的存儲單元在尋址鏈表act中的位置;偏移量在該存儲單元內確定了訪問起始地址;數據長度規(guī)定了訪問范圍;當該數據長度缺省或為0時,表示訪問直到文件的末尾。于是,對于視頻數據存儲系統(tǒng)的訪問可以根據目標數據的尋址變量組合的邏輯地址la,在文件元數據尋址鏈表act中唯一確定一個位置,從該位置起讀寫訪問存儲節(jié)點,aht中規(guī)定了訪問的數據長度。

      訪問視頻存儲系統(tǒng)鏡像子集的地址索引表ait采用如下步驟實現:

      1.根據訪問目標數據的尋址變量值檢索元數據地址索引表ait,由此獲得一個尋址鏈表act指針、一個偏移量和一個數據長度;

      2.通過該尋址鏈表指針獲得該組數據所要讀寫的存儲單元在尋址鏈表act中的位置,通過該偏移量獲得該組數據所要讀寫的存儲單元內的讀寫起始地址,通過該數據長度獲得讀寫范圍;依據該位置、該讀寫起始地址、該讀寫范圍進行該組數據的讀寫操作;

      3.當采用多個線程進行數據的讀操作時,或者多個線程進行數據的寫操作但不涉及修改尋址鏈表act指針、偏移量和數據長度,則不涉及生成新的尋址鏈表,則每個線程各自執(zhí)行步驟(1)和(2),由此實現多組數據的并行讀寫操作;

      4.當采用多個線程進行數據的寫操作時,涉及到修改尋址鏈表act指針或偏移量或數據長度,訪問步驟如下:

      (4-1)當采用多個線程進行數據的寫操作時,不涉及修改尋址鏈表act指針,則將數據從新給定的偏移量位置上寫入存儲單元,在需要更新數據長度時,計算新的數據長度并將新的偏移量和新的數據長度記入該aht輸出項;

      (4-2)當采用多個線程進行數據的寫操作時,涉及到修改尋址鏈表act指針,則訪問進入生成地址索引表ait的流程。

      在本發(fā)明的視頻數據存儲結構的基礎上中,視頻幀數據在編碼端使用快速運動估計,首先簡要介紹如下:除了在整幀范圍內進行塊運動搜索和限定范圍運動搜索之外,同時對應大范圍運動搜索和對應小范圍運動搜索。在大范圍搜索方式中采用迭代搜索,以上次搜索結果位置作為下次搜索的起始點位置,當搜索結果滿足一定條件,即當上次搜索結果與下一次搜索結果相同時,以其結果位置為起始點進行小范圍搜索。將小范圍搜索結果作為最終結果。

      在編碼端加入塊分類的功能,本發(fā)明將幀內的塊分為跳越塊和直接塊。對跳越塊,運動向量為0,實際殘差接近于0,因此僅傳送欖式信息,不傳送運動向量和殘差信息。其中通過以下方式判斷跳越塊:

      dm=σi,j∈blockm|x(i,j)-y(i,j)|/n

      x(i,j)代表幀中的塊位置m所中的一個像素i,j,y(i,j)代表參考幀中的對應像素,n代表塊中的像素個數。當結果dm小于預設門限值時,設定該塊為跳越塊。僅傳送模式信息到解碼端。

      在進行殘差計算時,釆用已解碼的關鍵幀作為參考幀。下文使用已解碼的關鍵幀生成邊信息。在幀中剩下的塊中,繼續(xù)確定屬于直接模式的塊,該類型塊的殘差接近于0,僅傳送模式信息和運動向量信息。為了減少編碼端復雜度,可以采用快速運動塊搜索算法。

      設定大范圍運動搜索迭代次數最大值為4,小范圍搜索次數為1,對應最大橫向或縱向距離(0,7)或(7,0),對應定長碼編碼碼率為3比特。如果大范圍向量搜索成功收斂,再將得到的運動殘差與門限值進行比較,門限值與跳越模式門限相同,當不超過門限值時,確定為直接模塊,需要向解碼端傳送模式信息和運動向量信息。

      在傳送跳越塊和直接塊相關信息時,如果將兩者合并編碼,零運動向量用(0,0)表示。在傳送運動向量信息時,可以用定長編碼或算法,具體計算流程如下:

      步驟1.對運動向量信息,分別采用定長編碼和指數編碼,取k中碼字長度較小的值為rate1;

      步驟2.將跳越模式和直接模式合并為一類,此時的碼率為:

      mode1=mode(跳越模式)∪mode(直接模式)

      mode2=mode(普通模式)

      rate2=ent(mode1,mode2)*code_length+2*num(mode(跳越模式))

      其中,模式信息mode()表示塊的類型對應的模式,ent()計算對應信息的熵,code_length為待編碼碼字長度。

      步驟3.總碼率為以上兩個碼率之和。

      total_rate=ratel+rate2

      在解碼端,得到對應的模式信息和運動向量信息后,對跳越模塊和直接模塊進行重建。對跳越模塊,直接將前一參考幀的相同位置的塊作為最后的重建塊。對于直接塊,利用運動向量,將對應的運動補償的塊作為最后的重建塊。而對于剩余的普通模式的塊,需要在解碼端生成邊信息和殘差信息。

      所述使用已解碼的關鍵幀生成邊信息,包括以下過程:

      步驟1.獲得初始運動向量。首先采用平行運動估計算法,計算平行運動向量。運動匹配搜索的表示為:

      (vx,vy)=argminmx,my(d(mx,my)*(1+0.05(mx2+my2)1/2)

      (vx,vy)=±(vx/2,vy/2)

      其中,x(i,j)代表參考塊像素,y(i+mx,j+my)代表另一幀運動搜索塊像素。||m||為0階范式,代表塊m的大小。最后的得到的運動估計向量為第一行計算得到的運動向量的一半。根據運動估計的原始方向取反或不變。

      當得到前后幀對應位置塊的運動向量后,將二者轉換為同一方向的運動向量,即將其中一個運動向量取反。將此兩個運動向量求平均,得到雙向運動搜索估計的初始運動向量。

      步驟2.對于每一個塊,將第1步的平均向量作為初始向量,假定該塊在短時間內做勻速直線運動。即該塊在前后幀中的運動向量大小相等,方向相反。在初始向量的預定范圍內進行雙向運動搜索,先以初始向量為中心,設定搜索范圍為-3到3,如果第一步的兩個運動向量差值在任一方向大于5,則將該方向搜索范圍擴展為-5到5。如果在此搜索范圍內,實際搜索位置數小于門限,則繼續(xù)以零向量為中心,以-6到6為搜導范圍進行搜索,取二者的最小值為運動搜索結果,對運動搜索的結果進行殘差計算,計算公式如下:

      (vx,vy)=argminmx,myd(mx,my)

      x,y代表前后參考幀。

      當計算的絕對殘差和達到最小時,得到雙向運動估計的運動向量結果。以根據該運動向量,得到對應的邊信息參考塊sideblock、殘差估計塊residentblock和殘差信息resident。

      residide=min(d(mx,my))

      sideblock(i,j)=(x(i-vx,j-vy)+y(i+vx,j+vy))/2

      residentblock(i,j)=(x(i-vx,j-vy)-y(i+vx,j+vy))/2

      步驟3.對于步驟2得到的運動向量估計的結果進行進一步處理。當運動向量幅度大于一定門限時,進行雙向平行運動估計補償。根據步驟1計算得到雙向平行運動估計向量,得到四個運動補償塊,對于得到的四個運動補償塊,如果均位于圖像顯示范圍之內,且同方向的運動向量之間的距離小于預設范圍,可以通過下式計算該塊對應的邊信息塊和殘差塊:

      sideblock=(block1+block2+block3+block4)/4

      residentblock=(block1+block2-block3-block4)/4

      其中block1和block2屬于當前幀的前驅幀,block3和block4屬于后繼幀。

      步驟4.對處于運動邊緣的塊,如果其對應的殘差值大于門限,進行如下處理:首先,對于第1步得到的兩個平行運動估計向量,取任意一個運動向量,如果在初始運動估計的反方向上,該向量運動估計的位置超過了圖像邊界,且本方向運動向量的估計殘差小于相反方向運動向量的估計殘差,則其對應的運動補償塊用該估計方向上得到的平行運動補償塊表示。在此情況下,用單向搜索進行補償。如果第1步的條件不滿足,則對另一個運動向量進行處理。將得到的運動補償塊進行加權平均。

      綜上所述,本發(fā)明提出了一種嵌入式通信設備數據傳輸方法,盡可能少地利用視頻存儲節(jié)點集內部網絡帶寬及計算能力來實現數據恢復,在實現數據高可用性的同時,提高了擴展性能。

      顯然,本領域的技術人員應該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計算系統(tǒng)來實現,它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成的網絡上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現,從而,可以將它們存儲在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結合。

      應當理解的是,本發(fā)明的上述具體實施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。此外,本發(fā)明所附權利要求旨在涵蓋落入所附權利要求范圍和邊界、或者這種范圍和邊界的等同形式內的全部變化和修改例。

      當前第1頁1 2 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1