[發(fā)明專利]一種基于字節(jié)流的解碼方法有效
| 申請(qǐng)?zhí)枺?/td> | 201610044846.4 | 申請(qǐng)日: | 2016-01-22 |
| 公開(公告)號(hào): | CN105721105B | 公開(公告)日: | 2020-06-02 |
| 發(fā)明(設(shè)計(jì))人: | 杜強(qiáng)華;林建創(chuàng);李面換 | 申請(qǐng)(專利權(quán))人: | 廣州市毅航互聯(lián)通信股份有限公司 |
| 主分類號(hào): | H04L1/00 | 分類號(hào): | H04L1/00 |
| 代理公司: | 深圳市科吉華烽知識(shí)產(chǎn)權(quán)事務(wù)所(普通合伙) 44248 | 代理人: | 胡吉科 |
| 地址: | 510630 廣東省廣州市天河*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 字節(jié) 解碼 方法 | ||
1.一種基于字節(jié)流的解碼方法,其特征在于,所述解碼方法包括以下步驟:
A、利用bit字節(jié)流解碼算法生成byte的解碼表;
B、根據(jù)新生成的解碼表對(duì)輸入的byte進(jìn)行解碼并輸出結(jié)果;
所述步驟A中byte的解碼表包括HDLC_ZERO_SEARCH表、HDLC_FLAG_SEARCH表及HDLC_FLAG_FOUND表,分別對(duì)應(yīng)HDLC解碼的三種狀態(tài)HDLC_ZERO_SEARCH、HDLC_FLAG_SEARCH及HDLC_FLAG_FOUND;
所述HDLC_ZERO_SEARCH表生成包括以下步驟:
A11、判斷HDLC_ZERO_SEARCH狀態(tài)的hdlc0.c文件是否產(chǎn)生成功;如是,則將全局變量FAST_HDLC_DECODE_STATE_MACHINE HDLC_ZERO_SEARCH_SM寫入流程并執(zhí)行步驟A12,如否,則結(jié)束生成本表;
A12、枚舉所有的字節(jié)0~255在r_one 為0~7的情況下使用bit流解碼算法獲得轉(zhuǎn)換后的狀態(tài),r_one為收到連續(xù)bit1的個(gè)數(shù);
A13、在HDLC_ZERO_SEARCH狀態(tài)查找bit流中的0;
A14、調(diào)用bit流HDLC解碼并獲得轉(zhuǎn)換后的狀態(tài)結(jié)構(gòu)值struct hdlc_decode_state_tbl;
A15、將轉(zhuǎn)換后的狀態(tài)結(jié)構(gòu)值struct hdlc_decode_state_tbl寫入文件并枚舉所有的字節(jié)0~255在r_one為0~7的情況下的狀態(tài);
A16、對(duì)生成的HDLC_ZERO_SEARCH表寫入結(jié)束信息并關(guān)閉文件,結(jié)束本次表生成;
所述HDLC_FLAG_SEARCH表生成包括以下步驟:
A21、判斷HDLC_FLAG_SEARCH狀態(tài)的hdlc1.c文件是否產(chǎn)生成功;如是,則將全局變量FAST_HDLC_DECODE_STATE_MACHINE HDLC_FLAG_SEARCH_SM寫入流程并執(zhí)行步驟A22,如否,則結(jié)束生成本表;
A22、枚舉所有的字節(jié)0~255在r_one 為0~7的情況下使用bit流解碼算法獲得轉(zhuǎn)換后的狀態(tài);
A23、將HDLC_FLAG_SEARCH狀態(tài)設(shè)置成r_one值;
A24、調(diào)用bit流HDLC解碼并獲得轉(zhuǎn)換后的狀態(tài)結(jié)構(gòu)值struct hdlc_decode_state_tbl;
A25、將轉(zhuǎn)換后的狀態(tài)結(jié)構(gòu)值struct hdlc_decode_state_tbl寫入文件并枚舉所有的字節(jié)0~255在r_one 為0~7的情況下的狀態(tài);
A26、對(duì)生成的HDLC_FLAG_SEARCH表寫入結(jié)束信息并關(guān)閉文件,結(jié)束本次表生成;
所述HDLC_FLAG_FOUND表生成包括以下步驟:
A31、判斷HDLC_FLAG_FOUND狀態(tài)的hdlc2.c文件是否產(chǎn)生成功;如是,則將全局變量FAST_HDLC_DECODE_STATE_MACHINE HDLC_FLAG_FOUND_SM寫入流程并執(zhí)行步驟A32,如否,則結(jié)束生成本表;
A32、枚舉所有的字節(jié)0~255在r_one為0~7的情況下使用bit流解碼算法獲得轉(zhuǎn)換后的狀態(tài);
A33、將HDLC_FLAG_FOUND狀態(tài)設(shè)置成r_one值;
A34、調(diào)用bit流HDLC解碼并獲得轉(zhuǎn)換后的狀態(tài)結(jié)構(gòu)值struct hdlc_decode_state_tbl;
A35、將轉(zhuǎn)換后的狀態(tài)結(jié)構(gòu)值struct hdlc_decode_state_tbl寫入文件并枚舉所有的字節(jié)0~255在r_one 為0~7的情況下的狀態(tài);
A36、對(duì)生成的HDLC_FLAG_FOUND表寫入結(jié)束信息并關(guān)閉文件,結(jié)束本次表生成;
所述步驟B中單個(gè)byte的解碼包括以下步驟:
B11、根據(jù)記錄中間信息的結(jié)構(gòu)hdlc_state中記錄的解碼狀態(tài)機(jī)的狀態(tài)state值確定HDLC_ZERO_SEARCH表、HDLC_FLAG_SEARCH表及HDLC_FLAG_FOUND表中的某個(gè)表格;
B12、根據(jù)hdlc_state中記錄的r_one和當(dāng)前的解碼byte獲得新的狀態(tài)表項(xiàng)hdlc_decode_state_tbl并使用byte×7+r_one作為下標(biāo)直接查表;
B13、根據(jù)hdlc_state中記錄的state值在HDLC_FLAG_SEARCH表及HDLC_FLAG_FOUND表做狀態(tài)轉(zhuǎn)換處理;
B14、用hdlc_decode_state_tbl中的state和r_one更新hdlc_state中記錄state和r_one;
所述步驟B13中還包括以下步驟:
B131、判斷狀態(tài)是否跳轉(zhuǎn)到HDLC_FLAG_FOUND表;如是,則執(zhí)行步驟B132,如否,則結(jié)束本次操作;
B132、新的HDLC幀開始取出hdlc_decode_state_tbl中記錄的解碼輸出值r_val和r_val中有效值的bit數(shù)0_bitcnt;
B133,將r_val中的0_bitcnt個(gè)有效值數(shù)據(jù)copy到外部緩沖區(qū)并結(jié)束本次操作;
所述步驟B131還包括以下步驟:
B1311、判斷狀態(tài)是否跳轉(zhuǎn)到HDLC_FLAG_FOUND表;如是,則執(zhí)行步驟B1312,如否,則表示HDLC一幀解碼錯(cuò)誤停止并取出hdlc_decode_state_tbl中的0_bitcnt和r_val,并執(zhí)行步驟B 1313;
B1312、判斷是否收到新的HDLC標(biāo)志b_nextfrm;如是,則表示前一幀HDLC解碼完成并取出hdlc_decode_state_tbl中的0_bitcnt和r_val并執(zhí)行步驟B1313,如否,則一幀HDLC解碼進(jìn)行中并取出hdlc_decode_state_tbl中的0_bitcnt和r_val并執(zhí)行步驟B1314;
B1313、將r_val中的0_bitcnt個(gè)有效值和記錄的前此解碼的r_val組合為最后的輸出byte并執(zhí)行步驟1315;
B1314、將r_val中的0_bitcnt個(gè)有效值和記錄的前此解碼的r_val組合后輸出并結(jié)束本次操作;
B1315、進(jìn)行HDLG幀的CRC16校驗(yàn)并輸出一幀的值且結(jié)束本次操作。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣州市毅航互聯(lián)通信股份有限公司,未經(jīng)廣州市毅航互聯(lián)通信股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610044846.4/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 光傳送網(wǎng)信號(hào)調(diào)度方法和裝置
- 跨平臺(tái)的字節(jié)序處理方法、裝置和字節(jié)碼運(yùn)行平臺(tái)
- 用于提高Java處理器取指令帶寬的字節(jié)碼緩沖裝置
- 用于基于圖塊的3D計(jì)算機(jī)圖形系統(tǒng)的可隨機(jī)訪問(wèn)的無(wú)損參數(shù)數(shù)據(jù)壓縮
- 一種服務(wù)集群
- 針對(duì)主控芯片PS2251的數(shù)據(jù)加密方法
- 存儲(chǔ)器的修復(fù)方法
- 一種對(duì)字節(jié)數(shù)組進(jìn)行校驗(yàn)修正的方法和智能設(shè)備
- 循環(huán)移位處理裝置及方法
- 一種基于Unicode編碼的信息嵌入與提取方法
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





