四個字節(jié)是否正確,如果正確對齊成功計數(shù)器ali_cnt加1,當(dāng)連續(xù)alicnt_max幀 處正確則進(jìn)入幀同步狀態(tài)(IF),如果ali_cnt小于alicnt_max,則保持在Aligner狀態(tài),如 果任意一幀檢測錯誤則進(jìn)入00F狀態(tài)重新尋找?guī)鹗紭?biāo)識符,其中ali_cnt位寬alicnt_ width及計數(shù)最大值alicnt_max參數(shù)可配置,本發(fā)明實施例僅以alicnt_max= 5為例進(jìn)行 描述。
[0090] 表1 :幀同步狀態(tài)機(jī)跳轉(zhuǎn)條件描述
[0091]
[0092] 本發(fā)明實施例還提供了一種字對齊狀態(tài)機(jī),用于偽幀頭檢驗過程,圖7示出了本 發(fā)明實施例提供的字對齊狀態(tài)機(jī)的示意圖,參照圖7及表2 :
[0093] 當(dāng)進(jìn)入幀失步(00F)狀態(tài)時立即進(jìn)入S1狀態(tài);在S1狀態(tài)下:搜索PatternB,如果 搜索成功,將數(shù)據(jù)根據(jù)offset進(jìn)行預(yù)對齊并進(jìn)入S2狀態(tài),同時停止搜索PatternB,否則保 持在S1狀態(tài)下繼續(xù)搜索;
[0094] 在S2狀態(tài)下:判斷預(yù)對齊的PatternB前一周期的數(shù)據(jù)是否為PatternA,如果是 此后都保持在當(dāng)前狀態(tài)S2,幀同步狀態(tài)機(jī)進(jìn)入Aligner狀態(tài),如果預(yù)對齊的PatternB前一 周期的數(shù)據(jù)不等于PatternA或者幀同步狀態(tài)機(jī)從其他狀態(tài)跳轉(zhuǎn)到00F狀態(tài)時,退回到S1 狀態(tài),重新尋找PatternB。
[0095] 需要說明的是,字對齊狀態(tài)機(jī)的狀態(tài)會影響到幀同步狀態(tài)機(jī),字對齊狀態(tài)機(jī)只有 在S1狀態(tài)時,幀同步狀態(tài)機(jī)一直處于OOF狀態(tài),字對齊狀態(tài)機(jī)一旦跳轉(zhuǎn)到S2狀態(tài),幀同步 狀態(tài)機(jī)必然跳轉(zhuǎn)到Aligner狀態(tài),幀同步狀態(tài)機(jī)后續(xù)狀態(tài),字對齊狀態(tài)機(jī)一直保持在S2狀 〇
[0096] 表2 :幀定位及對齊功能狀態(tài)機(jī)跳轉(zhuǎn)條件描述
[0097]
[0098] 從上述技術(shù)方案可以看出,本發(fā)明實施例提供一種幀同步方案,首先,利用并行碼 流中包含的數(shù)據(jù)幀所對應(yīng)的幀頭的預(yù)設(shè)關(guān)鍵字段,與并行碼流中的各子并行碼流進(jìn)行并行 匹配,子并行碼流為并行碼流中起始位不同、但位寬相同的部分碼流;根據(jù)與關(guān)鍵字段匹配 成功的子并行碼流在并行碼流中的位置,確定幀頭在并行碼流中的偏移量;這樣,利用并行 比較多種錯位情況的并行碼流的方式進(jìn)行幀頭搜索,可以在同一周期內(nèi)對多種錯誤情況進(jìn) 行同時搜索,提高了處理效率,減少了處理時延;然后,根據(jù)并行碼流中包含的數(shù)據(jù)幀所對 應(yīng)的幀長度和確定出的幀頭偏移量,對并行碼流進(jìn)行預(yù)對齊處理;判斷預(yù)對齊后的幀頭是 否為偽幀頭,如果預(yù)對齊后的幀頭不是偽幀頭,則將預(yù)對齊后的并行碼流作為已同步的并 行碼流進(jìn)行輸出;這樣,利用串行多周期比較的方式進(jìn)行偽幀頭檢驗,在保證處理效率的前 提下,節(jié)約了邏輯資源。
[0099] 基于相同的技術(shù)構(gòu)思,本發(fā)明實施例提供了一種幀同步裝置,圖8示出了本發(fā)明 實施例提供的幀同步裝置的結(jié)構(gòu)示意圖,如圖8所示,該裝置包括:
[0100] 幀頭搜索模塊81,對于由接收到的串行碼流轉(zhuǎn)換得到的并行碼流,利用所述并行 碼流中包含的數(shù)據(jù)幀所對應(yīng)的幀頭的預(yù)設(shè)關(guān)鍵字段,與所述并行碼流中的各子并行碼流進(jìn) 行并行匹配,所述子并行碼流為所述并行碼流中起始位不同、但位寬相同的部分碼流;根據(jù) 與所述預(yù)設(shè)關(guān)鍵字段匹配成功的子并行碼流在所述并行碼流中的位置,確定幀頭在所述并 行碼流中的偏移量;
[0101] 幀同步及輸出模塊82,根據(jù)所述并行碼流中包含的數(shù)據(jù)幀所對應(yīng)的幀長度和確定 出的幀頭偏移量,對所述并行碼流進(jìn)行預(yù)對齊處理;并判斷預(yù)對齊后的幀頭是否為偽幀頭, 如果預(yù)對齊后的幀頭不是偽幀頭,則將預(yù)對齊后的并行碼流作為已同步的并行碼流進(jìn)行輸 出。
[0102] 可選的,所述預(yù)設(shè)關(guān)鍵字段至少包括:第一幀頭核心字和所述第一幀頭核心字的 位置;其中,所述第一幀頭核心字是根據(jù)在各幀頭中處于同一位置且取值相同的數(shù)值設(shè)置 的;所述幀頭搜索模塊81具體用于:將所述第一幀頭核心字與所述并行碼流中的各子并行 碼流進(jìn)行并行匹配,如果存在一個子并行碼流與所述第一幀頭核心字完全匹配,則根據(jù)該 第一幀頭核心字的位置確定該第一幀頭核心字所屬的幀頭在所述并行碼流中的偏移量;所 述幀同步及輸出模塊82具體用于:根據(jù)所述并行碼流中包含的數(shù)據(jù)幀所對應(yīng)的幀長度和 確定出的幀頭偏移量,將所述并行碼流處理為以幀頭起始、以預(yù)設(shè)長度為長度的并行碼流。
[0103] 可選的,所述預(yù)設(shè)關(guān)鍵字段中還包括第二幀頭核心字和該第二幀頭核心字的位 置;其中,所述第二幀頭核心字是根據(jù)在各幀頭中處于同一位置且取值相同的數(shù)值設(shè)置的; 并且,所述第二幀頭核心字與所述第一幀頭核心字根據(jù)處于不同位置的數(shù)值設(shè)置;
[0104] 所述幀同步及輸出模塊82具體用于:當(dāng)在預(yù)對齊后的幀頭中分別查找到第一幀 頭核心字和第二幀頭核心字所在位置時,根據(jù)所述第一幀頭核心字和第二幀頭核心字的位 置對查找到的位置進(jìn)行匹配,如果存在任一不匹配,則將預(yù)對齊后的幀頭確定為偽幀頭;或 者當(dāng)在預(yù)對齊后的幀頭中未查找到所述第二幀頭核心字時,將預(yù)對齊后的幀頭確定為偽幀 頭;或者根據(jù)所述第一幀頭核心字所在位置和預(yù)先設(shè)置的第一幀頭核心字和第二幀頭核心 字之間的相對位置,將預(yù)對齊后的幀頭中查找到第二幀頭核心字所在位置上的數(shù)值與第二 幀頭核心字的數(shù)值進(jìn)行匹配,如果不匹配,則將預(yù)對齊后的幀頭確定為偽幀頭。
[0105] 可選的,所述幀同步及輸出模塊82還用于:當(dāng)預(yù)對齊后的幀頭是偽幀頭時,重新 確定所述并行碼流中的幀頭偏移量。
[0106] 可選的,通過幀同步狀態(tài)機(jī)實現(xiàn)并行碼流的幀同步過程:在初始時,所述幀同步狀 態(tài)機(jī)進(jìn)入幀失步狀態(tài),在幀失步狀態(tài)下,由所述幀頭搜索模塊81在所述并行碼流中查找與 所述第一、第二幀頭核心字匹配的子并行碼流,如果均查找成功,則根據(jù)匹配成功的子并行 碼流的位置確定幀頭偏移量,并且,所述幀同步狀態(tài)機(jī)進(jìn)入幀對齊狀態(tài);否則,所述幀同步 狀態(tài)機(jī)繼續(xù)停留在幀失步狀態(tài);所述幀同步狀態(tài)機(jī)在幀對齊狀態(tài)下,由所述幀同步及輸出 模塊82根據(jù)所述并行碼流中包含的數(shù)據(jù)幀所對應(yīng)的幀長度和確定出的幀頭偏移量,按照 以幀頭起始、以預(yù)設(shè)長度為長度的方式,對所述并行碼流進(jìn)行預(yù)對齊,判斷預(yù)對齊后的幀頭 是否為偽幀頭;如果連續(xù)M幀預(yù)對齊后的幀頭均不是偽幀頭,則所述幀同步狀態(tài)機(jī)進(jìn)入幀 同步狀態(tài);否則,所述幀同步狀態(tài)機(jī)返回幀失步狀態(tài);所述幀同步狀態(tài)機(jī)在幀同步狀態(tài)下, 由幀同步及輸出模塊82判斷已同步的并行碼流中的各幀頭是否為偽幀頭,在連續(xù)P幀的幀 頭為偽幀頭時,所述幀同步狀態(tài)機(jī)進(jìn)入幀失步狀態(tài);否則,所述幀同步狀態(tài)機(jī)繼續(xù)停留在幀 同步狀態(tài);其中,所述M、P均為預(yù)設(shè)可調(diào)正整數(shù)。
[0107] 可選的,通過如下字對齊狀態(tài)機(jī)實現(xiàn)由幀失步狀態(tài)轉(zhuǎn)換至幀對齊狀態(tài)的過程:在 所述幀同步狀態(tài)機(jī)進(jìn)入失步狀態(tài)時,所述字對齊狀態(tài)機(jī)進(jìn)入搜索狀態(tài),在搜索狀態(tài)下,由所 述幀頭搜索模塊81在所述并行碼流中查找與所述第一幀頭核心字匹配的子并行碼流,如 果查找成功,則根據(jù)匹配成功的子并行碼流的位置確定幀頭偏移量,并且,所述字對齊狀態(tài) 機(jī)進(jìn)入預(yù)對齊狀態(tài);如果查找失敗,則所述字對齊狀態(tài)機(jī)繼續(xù)停留在搜索狀態(tài);所述字對 齊狀態(tài)機(jī)在預(yù)對齊狀態(tài)下,由所述幀頭搜索模塊81在所述并行碼流中查找與所述第二幀 頭核心字匹配的子并行碼流,如果查找成功,則所述字對齊狀態(tài)機(jī)保持在預(yù)對齊狀態(tài),同時 所述幀同步狀態(tài)機(jī)進(jìn)入幀對齊狀態(tài);如果查找失敗,則所述字對齊狀態(tài)機(jī)返回搜索狀態(tài)。
[0108] 可選的,所述預(yù)設(shè)關(guān)鍵字段的長度與所述并行數(shù)據(jù)的位寬相關(guān)。
[0109] 本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算 機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器,使得通過該計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令可實現(xiàn)流程圖中的 一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0110] 這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0111] 這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖的一個流程或多個流程和/或方框 圖的一個方框或多個方框中指定的功能的步驟。
[0112] 盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造 性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu) 選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0113] 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項】
1. 一種幀同步方法,其特征在于,該方法包括: 對于由接收到的串行碼流轉(zhuǎn)換得到的并行碼流,利用所述并行碼流中包含的數(shù)據(jù)幀所 對應(yīng)的幀頭的預(yù)設(shè)關(guān)鍵字段,與所述并行碼流中的各子并行碼流進(jìn)行并行匹配,所述子并 行碼流為所述并行碼流中起始位不同、但位寬相同的部分碼流;根據(jù)與所述預(yù)設(shè)關(guān)鍵字段 匹配成功的子并行碼流在所述并行碼流中的位置,確定幀頭在所述并行