TW201815074A - 二進制資料的編碼、解碼方法和裝置 - Google Patents
二進制資料的編碼、解碼方法和裝置 Download PDFInfo
- Publication number
- TW201815074A TW201815074A TW106131352A TW106131352A TW201815074A TW 201815074 A TW201815074 A TW 201815074A TW 106131352 A TW106131352 A TW 106131352A TW 106131352 A TW106131352 A TW 106131352A TW 201815074 A TW201815074 A TW 201815074A
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- data
- byte
- binary data
- bytes
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0014—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
本申請提供一種二進制資料的編碼方法,包括:獲取二進制資料;所述二進制資料的長度為k字節,k為自然數;採用預定編碼算法將k字節的二進制資料轉換為(k+t)字節的7位編碼資料,t為大於等於k除以7的最小整數。透過本申請技術方案得到的編碼文件比Base64編碼文件的長度更小,在網路上傳輸時消耗的流量更少,能夠適應更為苛刻的應用場景要求。
Description
本申請涉及網路通訊技術領域,尤其涉及一種二進制資料的編碼方法和裝置、一種二進制資料的解碼方法和裝置。
在計算機中很多資源以二進制資料的形式儲存,例如圖片、音視頻流、可執行程式等,包含這些資源的文件通常都是二進制文件。但是在一些網路協定或網路應用中,能夠正確傳輸的資料只能是通用字符,二進制資料在基於這些網路協定或網路應用進行傳輸時,需要先在發送端將二進制資料編碼為字符資料,在傳輸到接收端後,再將字符資料解碼為二進制資料。 現有技術中,Base64是最為常用的二進制資料編解碼技術。Base64採用64個字符對二進制資料進行編碼,對N字節的二進制資料,將對應的8*N位中連續的每6位分割為1個部分,每個部分的值都在0到63之間,將該值對應於1個ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)字符,將所有部分對應的ASCII字符拼接起來,即可得到二進制資料的Base64編碼。對應的解碼過程與上述相逆,不再贅述。 可見,3字節二進制資料的Base64編碼資料的長度為4字節,一個二進制文件在轉換為Base64編碼文件後,文件長度增加了大約33%。也就是說,Base64編碼後的二進制文件在傳輸時要佔用的流量增加了三分之一左右。在行動互聯應用中,降低服務端與用戶手持設備之間的交互流量對所有業務而言都是至關重要的問題。Base64編碼後的字符文件較大,難以滿足一些苛刻的應用場景的要求。
有鑒於此,本申請提供一種二進制資料的編碼方法,包括: 獲取二進制資料;所述二進制資料的長度為k字節,k為自然數; 採用預定編碼算法將k字節的二進制資料轉換為(k+t)字節的7位編碼資料,t為大於等於k除以7的最小整數。 本申請提供的一種二進制資料的解碼方法,包括: 獲取待解碼的7位編碼資料;所述7位編碼資料的長度為p字節,p為大於1的自然數; 採用預定解碼算法將p字節的7位編碼資料轉換為(p-t)字節的二進制資料,t為大於等於p除以8的最小整數。 本申請還提供了一種二進制資料的編碼裝置,包括: 二進制資料獲取單元,用於獲取二進制資料;所述二進制資料的長度為k字節,k為自然數; 7位編碼單元,用於採用預定編碼算法將k字節的二進制資料轉換為(k+t)字節的7位編碼資料,t為大於等於k除以7的最小整數。 本申請提供的一種二進制資料的解碼裝置,包括: 待解碼資料獲取單元,用於獲取待解碼的7位編碼資料;所述7位編碼資料的長度為p字節,p為大於1的自然數; 7位解碼單元,用於採用預定解碼算法將p字節的7位編碼資料轉換為(p-t)字節的二進制資料,t為大於等於p除以8的最小整數。 由以上技術方案可見,本申請的實施例中,在編碼時,採用預定編碼算法對二進制資料進行7位編碼;在解碼時,採用預定解碼算法將7位編碼恢復為二進制資料;由於7字節的二進制資料可以轉換為8字節的7位編碼資料,二進制資料在轉換為7位編碼資料後長度大約增加了14.3%,因此採用本申請技術方案得到的編碼文件比Base64編碼文件的長度更小,在網路上傳輸時消耗的流量更少,能夠適應更為苛刻的應用場景要求。
在絕大多數編碼方式中,十進制值0到127所對應的字符在網路傳輸中能夠被各種網路協定或網路應用支持。例如,ASCII編碼、UTF-7(Unicode Transformation Format 7,7位元Unicode轉換格式)、7位等寬編碼等。也就是說,在將二進制文件轉換為上述這些編碼方式的7位編碼文件後,即可在各種應用中、基於各種協定進行文件傳輸。 7位編碼是採用一個字節的低7位來承載資料的編碼方式。7位編碼可以將7字節的二進制資料轉換為8字節的編碼資料,相比於Base64編碼將3字節的二進制資料轉換為4字節的編碼,其轉換效率更高,轉換後的編碼文件更小,更為節省傳輸流量。 因此,本申請的實施例提出一種新的二進制資料的編碼方法和對應的二進制資料的解碼方法,分別用來將二進制資料轉換為7位編碼資料、以及將7位編碼資料還原為二進制資料,以減小編碼資料的長度,節約編碼資料在網路傳輸時消耗的流量,從而解決現有技術中存在的問題。 本申請的實施例可以應用在任何具有計算和儲存能力的設備上,例如可以是手機、平板電腦、PC(Personal Computer,個人電腦)、筆記本、伺服器、虛擬機等實體設備或邏輯設備;也可以由兩個或兩個以上分擔不同職責的實體或邏輯設備、相互協同來實現本申請實施例中的各項功能。其中,編碼方法和解碼方法可以分別運行在不同的設備上,也可以運行在同一個設備上。 本申請的實施例中,二進制資料的編碼方法的流程如圖1所示。 步驟110,獲取二進制資料。 待轉換的二進制資料可以是一個二進制文件,也可以是作為一個文件組成部分的一段二進制資料,不做限定。可以從某個網路中的儲存位置讀取二進制資料,也可以從指定的緩存中獲得待轉換的二進制資料,本申請的實施例同樣不做限定。 設所獲取的二進制資料的長度為k(k為自然數)字節。 步驟120,採用預定編碼算法將k字節的二進制資料轉換為(k+t)字節的7位編碼資料,t為大於等於k除以7的最小整數。 一個字節的二進制資料有效位是8位,而一個字節的7位編碼資料有效位是7位。因此,在將二進制資料轉換為7位編碼資料時,1到7個字節的二進制資料分別可以由2到8個字節的7位編碼資料來表達,編碼後增加的長度為1個字節;8到14字節的二進制資料分別可以由10到16個字節的7位編碼資料來表達,編碼後增加的長度為2個字節;依次類推,k字節的二進制資料可以由(k+t)字節的7位編碼資料來表達,t為大於等於k除以7的最小整數。換言之,在將k字節的二進制資料轉換為7位編碼資料時,增加的長度為t個字節。 任何一種可以將k字節二進制資料一對一映射為(k+t)字節的7位編碼資料的算法都可以用作預定編碼算法,本申請的實施例不做限定。 本申請的實施例中,二進制資料的解碼方法的流程如圖2所示。 步驟210,獲取待解碼的7位編碼資料。 類似的,待解碼的7位編碼資料可以是一個編碼文件,也可以是作為一個文件組成部分的一段7位編碼資料,不做限定。可以從某個網路中的儲存位置讀取7位編碼資料,也可以從指定的緩存中獲得待解碼的7位編碼資料,本申請的實施例同樣不做限定。 設待解碼的7位編碼資料的長度為p(p為大於1的自然數)字節。 步驟220,採用預定解碼算法將p字節的7位編碼資料轉換為(p-t)字節的二進制資料,t為大於等於p除以8的最小整數。 如前所述,2到8個字節的7位編碼資料分別可以表達1到7個字節的二進制資料,解碼後減少的長度為1個字節;10到16個字節的7位編碼資料分別可以表達8到14字節的二進制資料,解碼後減少的長度為2個字節;依次類推,p字節的7位編碼資料可以表達(p-t)字節的二進制資料,t為大於等於p除以8的最小整數。換言之,在將p字節的7位編碼資料轉換為二進制資料時,減少的長度為t個字節。 與將二進制資料轉換為7位編碼資料時採用的預定編碼算法相逆、能夠將p字節的7位編碼資料還原為編碼前的(p-t)字節的二進制資料的算法,即可用來作為本申請實施例中的預定解碼算法。 在一種實現方式中,可以基於以下思路來進行編碼:一字節的二進制資料由8個位(bit)組成,由於7位編碼只能使用一字節中的低7位,一字節的二進制資料需要一字節的7位編碼和一個額外字節中的1位來表示。可以將一字節的8位二進制資料分拆為2個部分,將某個預定位(可以是第0位到第7位中的任何一位)作為由額外字節表示的1位,除該預定位外剩餘的7位由一字節的7位編碼來表示。該額外字節中的其他6位可以用於攜帶其他6個字節的二進制資料的預定位。這樣,每7個字節的二進制資料在映射為7位編碼時增加1個字節,不足7個字節的二進制資料在映射7位編碼時也會增加1個字節,則k字節的二進制資料在映射為7位編碼時,將增加t個字節。 具體而言,這種實現方式中的預定編碼算法可以按如下方式運行:在k字節二進制資料中提取每個字節的預定位,按照設定位順序組合為t字節7位編碼的組合位資料,將k字節二進制資料中每個字節剩餘的7位作為k字節7位編碼的剩餘位資料;將k字節7位編碼的剩餘位資料和t字節7位編碼的組合位資料按照設定字節順序進行排列,從而得到(k+t)字節的7位編碼資料。 對應的,在解碼時,這種實現方式的預定解碼算法可以按如下方式運行:由於p等於(k+t),p字節7位編碼資料中包括按照設定字節順序排列的t字節7位編碼的組合位資料和k字節7位編碼的剩餘位資料;根據設定字節順序區分出哪些是t字節的組合位資料、哪些是k字節的剩餘位資料後,按照設定位順序從t字節的組合位資料中提取k位,將提取的每1位***與該位的設定位順序對應的k字節剩餘位資料的預定位,從而得到k字節二進制資料。 其中,設定位順序和設定字節順序可以任意設置,只要預定編碼算法和預定解碼算法採用相同的設定位順序和設定字節順即可。例如,設定位順序可以是從一個字節組合位資料的第0位到第(s-1)位、或從第(s-1)位到第0位,依次對應於連續的s(s為不大於7的自然數)字節剩餘位資料;再如,設定字節順序可以是k字節剩餘位資料在t字節組合位資料之前,或k字節剩餘位資料在t字節組合位資料之後,並且k字節剩餘位資料按照所對應的二進制資料排列。 以下給出上述實現方式的兩個具體例子: 第一個例子:請參見圖3,在一種預定編碼算法中,可以將最高位作為預定位,依次將k字節二進制資料的最高位(第7位)按照從第1字節組合位資料的第6位到第0位、第2字節組合位資料的第6位到第0位這樣的設定位順序,生成t字節的組合位資料;將k字節二進制資料中的每個字節第0位到第6位作為k字節的剩餘位資料;將t字節的組合位資料排列在k字節的剩餘位資料之前,得到k字節二進制資料的(k+t)字節7位編碼資料。 在第一個例子的預定解碼算法中,將p(p=k+t)字節7位編碼資料的前t個字節作為組合位資料,後k個字節作為剩餘位資料;從t字節的組合位資料中按照從第1字節組合位資料的第6位到第0位、第2字節組合位資料的第6位到第0位這樣的設定位順序,提取出k個預定位;將順序提取出的k個預定位依次***到k個剩餘位資料的最高位,***預定位後即可得到k字節的二進制資料。 第二個例子:請參見圖4,在另一種預定編碼算法中,以第4位作為預定位,將連續7字節的二進制資料分為一組,如果最後剩餘不足7字節也作為一組,則k字節二進制資料將形成t個組。以組為單位,提取一組二進制資料中每個字節的預定位,按照第0位到第6位的設定位順序生成一字節的組合位資料,將該組中每個字節二進制資料的第5位到第7位右移一位,得到7位編碼的剩餘位資料。將每組的組合位資料排列在該組的剩餘位資料之前,以組為單位依次排列t個組,得到(k+t)字節的7位編碼資料。 在第二個例子的預定解碼算法中,將連續8字節的7位編碼資料分為一組,如果最後剩餘不足8字節也作為一組,則p(p=k+t)字節二進制資料將形成t個組。以組為單位,設某組中共(s+1)(s為不大於7的自然數)個字節,則該組中第1個字節為組合位資料,第2到第(s+1)個字節為s字節的剩餘位資料;將該組中組合位資料的第0位到第s位分別***到該組中第2到第(s+1)字節剩餘位資料的第4位,得到s字節的二進制資料。將從各個組得到的二進制資料依序排列,則可得到解碼後k字節的二進制資料。 可見,本申請的實施例中,在編碼時,採用預定編碼算法將二進制資料轉換為7位編碼資料;在解碼時,採用對應的預定解碼算法將7位編碼資料還原為二進制資料。由於二進制資料在轉換為7位編碼資料後長度大約增加了14.3%,遠小於Base64編碼增加的長度,應用本申請的實施例得到的編碼文件在網路上傳輸時消耗的流量更少,能夠適應更為苛刻的應用場景要求。 在本申請的一個應用示例中,採用一種編碼算法將圖片origin.jpg的資料轉換為7位ASCII編碼資料,對應的一種解碼算法將7位ASCII編碼資料還原為二進制資料。 實現編碼方法的JavaScript程式如下: var buf = new Buffer(1024); //開闢編碼時使用的緩衝區 var data = fs.readFileSync('origin.jpg'); //data為圖片origin.jpg的二進制資料 var length =data.length + Math.ceil(data.length / 7); //length為轉換後7位編碼資料的長度 var body = new Buffer(length); //body為轉換後的7位編碼資料} //從data的第一個字節開始,依次將每7個字節的最高位組成一個ASCII碼的組合位資料,其中每7個字節中第7個字節二進制資料的最高位在第0位,第1個字節二進制資料的最高位在第6位;直到data的最後一個字節;將組合位資料逐個寫入body} //從data的第一個字節開始,依次將每個字節的低7位生成一個ASCII碼的剩餘位資料,並且逐個寫入body 設temp為待解碼的7位編碼資料,實現解碼方法的JavaScript程式如下: var len = temp.length - Math.ceil(temp.length / 8); //len為解碼後二進制資料的長度 var buf = new Buffer(len); //buf為解碼後的二進制資料 } //temp的前(temp.length - len)個字節為組合位資料,之後為剩餘位資料;從組合位資料的第一個字節開始,依次提取每個字節的第6位到第0位,所提取的每位依次***到剩餘位資料的最高位,並寫入buf 與上述流程實現對應,本申請的實施例還提供了一種二進制資料的編碼裝置,和一種二進制資料的解碼裝置。這兩種裝置均可以透過軟體實現,也可以透過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為邏輯意義上的裝置,是透過所在設備的CPU(Central Process Unit,中央處理器)將對應的計算機程式指令讀取到內存記憶體中運行形成的。從硬體層面而言,除了圖5所示的CPU、內存記憶體以及非揮發性儲存器之外,二進制資料的編碼裝置或二進制資料的解碼裝置所在的設備通常還包括用於進行無線信號收發的芯片等其他硬體,和/或用於實現網路通訊功能的板卡等其他硬體。 圖6所示為本申請實施例提供的一種二進制資料的編碼裝置,包括二進制資料獲取單元和7位編碼單元,其中:二進制資料獲取單元用於獲取二進制資料;所述二進制資料的長度為k字節,k為自然數;7位編碼單元用於採用預定編碼算法將k字節的二進制資料轉換為(k+t)字節的7位編碼資料,t為大於等於k除以7的最小整數。 一種實現方式中,所述預定編碼算法包括:在k字節二進制資料中提取每個字節的預定位,按照設定位順序組合為t字節7位編碼的組合位資料;將k字節二進制資料中每個字節剩餘的7位作為k字節7位編碼的剩餘位資料;將k字節7位編碼的剩餘位資料和t字節7位編碼的組合位資料按照設定字節順序進行排列,生成所述二進制資料的7位編碼資料。 上述實現方式中,所述設定字節順序包括:k字節剩餘位資料在t字節組合位資料之前或之後,按照所對應的二進制資料排列。 上述實現方式中,所述設定位順序包括:將連續的s字節二進制資料中提取的預定位依次作為一個字節組合位資料的第0位到第(s-1)位、或第(s-1)位到第0位;s為不大於7的自然數。 上述實現方式中,所述預定位為每個字節的最高位。 圖7所示為本申請實施例提供的一種二進制資料的解碼裝置,包括待解碼資料獲取單元和7位解碼單元,其中:待解碼資料獲取單元用於獲取待解碼的7位編碼資料;所述7位編碼資料的長度為p字節,p為大於1的自然數;7位解碼單元用於採用預定解碼算法將p字節的7位編碼資料轉換為(p-t)字節的二進制資料,t為大於等於p除以8的最小整數。 一種實現方式中,所述預定解碼算法包括:按照設定字節順序,從p字節的7位編碼資料中獲取k字節的剩餘位資料和t字節的組合位資料,k為p減去t的差值;從t字節7位編碼的組合位資料中提取k位,將提取的每1位***與所述位的設定位順序對應的k字節剩餘位資料的預定位,得到k字節二進制資料。 上述實現方式中,所述設定字節順序包括:k字節剩餘位資料在t字節組合位資料之前或之後,按照所對應的二進制資料排列。 上述實現方式中,所述設定位順序包括:一個字節組合位資料的第0位到第(s-1)位、或第(s-1)位到第0位,依次對應於連續的s字節剩餘位資料;s為不大於7的自然數。 上述實現方式中,所述預定位為每個字節的最高位。 以上所述僅為本申請的較佳實施例而已,並不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的範圍之內。 在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和內存記憶體。 內存記憶體可能包括計算機可讀媒體中的非永久性儲存器,隨機存取記憶體(RAM)和/或非揮發性內存記憶體等形式,如唯讀記憶體(ROM)或快閃內存記憶體(flash RAM)。內存記憶體是計算機可讀媒體的示例。 計算機可讀媒體包括永久性和非永久性、可行動和非可行動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是計算機可讀指令、資料結構、程式的模組或其他資料。計算機的儲存媒體的例子包括,但不限於相變內存記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他內存記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,計算機可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。 還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要件的過程、方法、商品或者設備不僅包括那些要件,而且還包括沒有明確列出的其他要件,或者是還包括為這種過程、方法、商品或者設備所固有的要件。在沒有更多限制的情況下,由語句“包括一個……”限定的要件,並不排除在包括所述要件的過程、方法、商品或者設備中還存在另外的相同要件。 本領域技術人員應明白,本申請的實施例可提供為方法、系統或計算機程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程式代碼的計算機可用儲存媒體(包括但不限於磁盤儲存器、CD-ROM、光學儲存器等)上實施的計算機程式產品的形式。
110‧‧‧步驟
120‧‧‧步驟
210‧‧‧步驟
220‧‧‧步驟
圖1是本申請實施例中一種二進制資料的編碼方法的流程圖; 圖2是本申請實施例中一種二進制資料的解碼方法的流程圖; 圖3是本申請實施例中第一種預定編碼算法示例的示意圖; 圖4是本申請實施例中第二種預定編碼算法示例的示意圖; 圖5是運行本申請實施例的設備的一種硬體結構圖; 圖6是本申請實施例中一種二進制資料的編碼裝置的邏輯結構圖; 圖7是本申請實施例中一種二進制資料的解碼裝置的邏輯結構圖。
Claims (20)
- 一種二進制資料的編碼方法,其特徵在於,包括: 獲取二進制資料;該二進制資料的長度為k字節,k為自然數; 採用預定編碼算法將k字節的二進制資料轉換為(k+t)字節的7位編碼資料,t為大於等於k除以7的最小整數。
- 根據申請專利範圍第1項所述的方法,其中,該預定編碼算法包括:在k字節二進制資料中提取每個字節的預定位,按照設定位順序組合為t字節7位編碼的組合位資料;將k字節二進制資料中每個字節剩餘的7位作為k字節7位編碼的剩餘位資料;將k字節7位編碼的剩餘位資料和t字節7位編碼的組合位資料按照設定字節順序進行排列,生成該二進制資料的7位編碼資料。
- 根據申請專利範圍第2項所述的方法,其中,該設定字節順序包括:k字節剩餘位資料在t字節組合位資料之前或之後,按照所對應的二進制資料排列。
- 根據申請專利範圍第2項所述的方法,其中,該設定位順序包括:將連續的s字節二進制資料中提取的預定位依次作為一個字節組合位資料的第0位到第(s-1)位、或第(s-1)位到第0位;s為不大於7的自然數。
- 根據申請專利範圍第2項所述的方法,其中,該預定位為每個字節的最高位。
- 一種二進制資料的解碼方法,其特徵在於,包括: 獲取待解碼的7位編碼資料;該7位編碼資料的長度為p字節,p為大於1的自然數; 採用預定解碼算法將p字節的7位編碼資料轉換為(p-t)字節的二進制資料,t為大於等於p除以8的最小整數。
- 根據申請專利範圍第6項所述的方法,其中,該預定解碼算法包括:按照設定字節順序,從p字節的7位編碼資料中獲取k字節的剩餘位資料和t字節的組合位資料,k為p減去t的差值;從t字節7位編碼的組合位資料中提取k位,將提取的每1位***與該位的設定位順序對應的k字節剩餘位資料的預定位,得到k字節二進制資料。
- 根據申請專利範圍第7項所述的方法,其中,該設定字節順序包括:k字節剩餘位資料在t字節組合位資料之前或之後,按照所對應的二進制資料排列。
- 根據申請專利範圍第7項所述的方法,其中,該設定位順序包括:一個字節組合位資料的第0位到第(s-1)位、或第(s-1)位到第0位,依次對應於連續的s字節剩餘位資料;s為不大於7的自然數。
- 根據申請專利範圍第7項所述的方法,其中,該預定位為每個字節的最高位。
- 一種二進制資料的編碼裝置,其特徵在於,包括: 二進制資料獲取單元,用於獲取二進制資料;該二進制資料的長度為k字節,k為自然數; 7位編碼單元,用於採用預定編碼算法將k字節的二進制資料轉換為(k+t)字節的7位編碼資料,t為大於等於k除以7的最小整數。
- 根據申請專利範圍第11項所述的裝置,其中,該預定編碼算法包括:在k字節二進制資料中提取每個字節的預定位,按照設定位順序組合為t字節7位編碼的組合位資料;將k字節二進制資料中每個字節剩餘的7位作為k字節7位編碼的剩餘位資料;將k字節7位編碼的剩餘位資料和t字節7位編碼的組合位資料按照設定字節順序進行排列,生成該二進制資料的7位編碼資料。
- 根據申請專利範圍第12項所述的裝置,其中,該設定字節順序包括:k字節剩餘位資料在t字節組合位資料之前或之後,按照所對應的二進制資料排列。
- 根據申請專利範圍第12項所述的裝置,其中,該設定位順序包括:將連續的s字節二進制資料中提取的預定位依次作為一個字節組合位資料的第0位到第(s-1)位、或第(s-1)位到第0位;s為不大於7的自然數。
- 根據申請專利範圍第12項所述的裝置,其中,該預定位為每個字節的最高位。
- 一種二進制資料的解碼裝置,其特徵在於,包括: 待解碼資料獲取單元,用於獲取待解碼的7位編碼資料;該7位編碼資料的長度為p字節,p為大於1的自然數; 7位解碼單元,用於採用預定解碼算法將p字節的7位編碼資料轉換為(p-t)字節的二進制資料,t為大於等於p除以8的最小整數。
- 根據申請專利範圍第16項所述的裝置,其中,該預定解碼算法包括:按照設定字節順序,從p字節的7位編碼資料中獲取k字節的剩餘位資料和t字節的組合位資料,k為p減去t的差值;從t字節7位編碼的組合位資料中提取k位,將提取的每1位***與該位的設定位順序對應的k字節剩餘位資料的預定位,得到k字節二進制資料。
- 根據申請專利範圍第17項所述的裝置,其中,該設定字節順序包括:k字節剩餘位資料在t字節組合位資料之前或之後,按照所對應的二進制資料排列。
- 根據申請專利範圍第17項所述的裝置,其中,該設定位順序包括:一個字節組合位資料的第0位到第(s-1)位、或第(s-1)位到第0位,依次對應於連續的s字節剩餘位資料;s為不大於7的自然數。
- 根據申請專利範圍第17項所述的裝置,其中,該預定位為每個字節的最高位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201610887650.1 | 2016-10-11 | ||
CN201610887650.1A CN107919943B (zh) | 2016-10-11 | 2016-10-11 | 二进制数据的编码、解码方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201815074A true TW201815074A (zh) | 2018-04-16 |
Family
ID=61892693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106131352A TW201815074A (zh) | 2016-10-11 | 2017-09-13 | 二進制資料的編碼、解碼方法和裝置 |
Country Status (16)
Country | Link |
---|---|
US (1) | US10785277B2 (zh) |
EP (1) | EP3528389A4 (zh) |
JP (1) | JP6931050B2 (zh) |
KR (1) | KR102249267B1 (zh) |
CN (1) | CN107919943B (zh) |
AU (2) | AU2017342863B2 (zh) |
BR (1) | BR112019007284A2 (zh) |
CA (1) | CA3040003C (zh) |
MX (1) | MX2019004256A (zh) |
MY (1) | MY196192A (zh) |
PH (1) | PH12019500783A1 (zh) |
RU (1) | RU2725763C1 (zh) |
SG (1) | SG11201903176RA (zh) |
TW (1) | TW201815074A (zh) |
WO (1) | WO2018068634A1 (zh) |
ZA (1) | ZA201902948B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110504973A (zh) * | 2018-05-16 | 2019-11-26 | 北京京东尚科信息技术有限公司 | 文件压缩、解压方法和装置 |
CN110120819B (zh) * | 2019-04-26 | 2023-07-21 | 矩阵元技术(深圳)有限公司 | 一种布尔电路编码方法、装置及*** |
CN110569487B (zh) * | 2019-08-19 | 2023-07-18 | 积成电子股份有限公司 | 一种基于高频率字符替代算法的Base64扩展编码方法及*** |
CN112422491A (zh) * | 2020-05-08 | 2021-02-26 | 上海幻电信息科技有限公司 | 数字编码的加密解密方法、服务器和存储介质 |
CN111600610B (zh) * | 2020-05-26 | 2023-04-28 | 北京思特奇信息技术股份有限公司 | 一种变长整数的通用编码方法、***及电子设备 |
CN112148673A (zh) * | 2020-09-22 | 2020-12-29 | 北京中房智宝科技有限公司 | 一种多二进制合并成一个二进制文件读写错误的解决方法 |
CN112818639A (zh) * | 2020-12-30 | 2021-05-18 | 平安普惠企业管理有限公司 | 数据编码方法、装置、计算机设备和存储介质 |
CN112910568A (zh) * | 2021-01-18 | 2021-06-04 | 猫岐智能科技(上海)有限公司 | 一种数据通信方法、数据发送方法及数据接收方法 |
KR102627365B1 (ko) * | 2021-04-28 | 2024-01-18 | 한전케이디엔주식회사 | 배전설비 pd 진단시스템의 prpd 데이터 포맷변환 및 압축 방법 |
CN113542762A (zh) * | 2021-07-20 | 2021-10-22 | 中交信捷科技有限公司 | 一种车辆红外图像的压缩与增强方法和*** |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4597057A (en) | 1981-12-31 | 1986-06-24 | System Development Corporation | System for compressed storage of 8-bit ASCII bytes using coded strings of 4 bit nibbles |
US5007013A (en) | 1986-04-01 | 1991-04-09 | Westinghouse Electric Corp. | Bidirectional communication and control network with programmable microcontroller interfacing digital ICS and controlled product |
US4789852A (en) | 1987-06-05 | 1988-12-06 | Bailey Guy R | Method and apparatus for converting data in a binary format |
US5136291A (en) | 1990-11-30 | 1992-08-04 | Unisys Corporation | Transmitting binary data files using electronic mail |
US5406279A (en) | 1992-09-02 | 1995-04-11 | Cirrus Logic, Inc. | General purpose, hash-based technique for single-pass lossless data compression |
WO1994021051A1 (en) | 1993-03-10 | 1994-09-15 | Awacs Communications (Nz) Limited | Enhanced one way radio seven bit data network |
US5406280A (en) | 1993-08-26 | 1995-04-11 | Commerce Clearing House | Data retrieval system using compression scheme especially for serial data stream |
US5974464A (en) | 1995-10-06 | 1999-10-26 | Silicon Image, Inc. | System for high speed serial video signal transmission using DC-balanced coding |
JP2840589B2 (ja) | 1996-02-09 | 1998-12-24 | 富士通株式会社 | データ圧縮装置及びデータ復元装置 |
US5818032A (en) | 1997-01-03 | 1998-10-06 | Sun; Tsu-Hung Tom | Encoded color halftone micro-dots for high density digital information storage |
US7190257B2 (en) | 1999-03-16 | 2007-03-13 | Intermec Ip Corp. | Data encoding in radio frequency identification transponders |
JP2000307431A (ja) * | 1999-04-23 | 2000-11-02 | Victor Co Of Japan Ltd | 変調装置及び復調装置 |
US6801625B1 (en) * | 1999-12-08 | 2004-10-05 | Intel Corporation | Apparatus and method for stripping parity bits from an input stream |
US7451229B2 (en) | 2002-06-24 | 2008-11-11 | Microsoft Corporation | System and method for embedding a streaming media format header within a session description message |
CN1466342A (zh) * | 2002-07-02 | 2004-01-07 | 深圳市中兴通讯股份有限公司 | 一种在网关上还原电子邮件内容的方法 |
CN1251522C (zh) * | 2002-10-29 | 2006-04-12 | 蔡宁 | 一种利用pocsag编码传送图形文件的方法 |
US7590837B2 (en) | 2003-08-23 | 2009-09-15 | Softex Incorporated | Electronic device security and tracking system and method |
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
US7769904B2 (en) | 2004-06-09 | 2010-08-03 | L-3 Communications Integrated Systems L.P. | Extensible binary mark-up language for efficient XML-based data communications and related systems and methods |
CN100377613C (zh) * | 2005-06-01 | 2008-03-26 | 海信集团有限公司 | 移动终端短消息加密的方法 |
CN100423582C (zh) * | 2005-11-03 | 2008-10-01 | 浙江大学 | 一种用于将待编码数据进行二进制化编码的方法和装置 |
CN100425081C (zh) * | 2005-11-08 | 2008-10-08 | 杭州华三通信技术有限公司 | 短信收发的编码转换方法及其应用的网络设备 |
CN1937582B (zh) * | 2006-08-11 | 2012-08-15 | 白杰 | 待压缩数据的预处理方法以及压缩数据的传输方法 |
CN101080038A (zh) * | 2007-06-22 | 2007-11-28 | ***通信集团广东有限公司 | 一种基于ussd协议的中文信息传输方法 |
US10175990B2 (en) * | 2009-12-22 | 2019-01-08 | Intel Corporation | Gathering and scattering multiple data elements |
CN101840394B (zh) * | 2010-03-04 | 2012-12-19 | 英华达(南昌)科技有限公司 | 数据解码方法 |
CN103067022B (zh) * | 2012-12-19 | 2015-10-21 | 中国石油天然气集团公司 | 一种整型数据无损压缩方法、解压缩方法及装置 |
US20140204994A1 (en) * | 2013-01-24 | 2014-07-24 | Silicon Image, Inc. | Auxiliary data encoding in video data |
US9626184B2 (en) * | 2013-06-28 | 2017-04-18 | Intel Corporation | Processors, methods, systems, and instructions to transcode variable length code points of unicode characters |
CN107251438B (zh) * | 2015-02-16 | 2020-10-30 | 三菱电机株式会社 | 数据压缩装置及方法、数据解压缩装置及方法和记录介质 |
CN105740215A (zh) * | 2016-01-23 | 2016-07-06 | 北京掌阔移动传媒科技有限公司 | 一种数据通信编码和解码方法 |
-
2016
- 2016-10-11 CN CN201610887650.1A patent/CN107919943B/zh active Active
-
2017
- 2017-09-13 TW TW106131352A patent/TW201815074A/zh unknown
- 2017-09-26 MY MYPI2019001978A patent/MY196192A/en unknown
- 2017-09-26 RU RU2019113976A patent/RU2725763C1/ru active
- 2017-09-26 CA CA3040003A patent/CA3040003C/en active Active
- 2017-09-26 SG SG11201903176RA patent/SG11201903176RA/en unknown
- 2017-09-26 BR BR112019007284A patent/BR112019007284A2/pt not_active IP Right Cessation
- 2017-09-26 WO PCT/CN2017/103429 patent/WO2018068634A1/zh unknown
- 2017-09-26 JP JP2019519660A patent/JP6931050B2/ja active Active
- 2017-09-26 AU AU2017342863A patent/AU2017342863B2/en active Active
- 2017-09-26 MX MX2019004256A patent/MX2019004256A/es active IP Right Grant
- 2017-09-26 KR KR1020197013004A patent/KR102249267B1/ko active IP Right Grant
- 2017-09-26 EP EP17860029.2A patent/EP3528389A4/en not_active Withdrawn
-
2019
- 2019-04-10 US US16/380,643 patent/US10785277B2/en active Active
- 2019-04-11 PH PH12019500783A patent/PH12019500783A1/en unknown
- 2019-05-10 ZA ZA2019/02948A patent/ZA201902948B/en unknown
- 2019-12-13 AU AU2019101588A patent/AU2019101588A4/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3528389A1 (en) | 2019-08-21 |
US20190245906A1 (en) | 2019-08-08 |
BR112019007284A2 (pt) | 2019-07-09 |
JP6931050B2 (ja) | 2021-09-01 |
MX2019004256A (es) | 2019-07-01 |
KR20190064621A (ko) | 2019-06-10 |
RU2725763C1 (ru) | 2020-07-06 |
US10785277B2 (en) | 2020-09-22 |
AU2019101588A4 (en) | 2020-01-23 |
CA3040003C (en) | 2021-02-09 |
SG11201903176RA (en) | 2019-05-30 |
WO2018068634A1 (zh) | 2018-04-19 |
AU2017342863B2 (en) | 2020-10-22 |
PH12019500783B1 (en) | 2019-12-11 |
ZA201902948B (en) | 2020-08-26 |
CN107919943A (zh) | 2018-04-17 |
EP3528389A4 (en) | 2020-05-13 |
AU2017342863A1 (en) | 2019-05-02 |
CA3040003A1 (en) | 2018-04-19 |
JP2019537332A (ja) | 2019-12-19 |
CN107919943B (zh) | 2020-08-04 |
PH12019500783A1 (en) | 2019-12-11 |
KR102249267B1 (ko) | 2021-05-10 |
MY196192A (en) | 2023-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201815074A (zh) | 二進制資料的編碼、解碼方法和裝置 | |
WO2016029801A1 (zh) | 编码、解码方法以及编码装置和解码装置 | |
US10969971B2 (en) | Data storage method and apparatus | |
WO2017054597A1 (zh) | 表情字符串的处理方法及装置 | |
CN110597814A (zh) | 结构化数据的序列化、反序列化方法以及装置 | |
WO2017097159A1 (zh) | 一种随机字符串生成方法及装置 | |
CN103067441A (zh) | 一种图片分享的方法、装置和设备 | |
CN111131403A (zh) | 一种物联网设备的消息编解码方法及装置 | |
CN114020272A (zh) | 一种序列化编码、解码方法、装置及电子设备 | |
CN114281876A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113905093A (zh) | 序列化、反序列化方法、装置及电子设备 | |
US9471244B2 (en) | Data sharing using difference-on-write | |
CN110750388A (zh) | 一种备份解析方法、装置、设备和介质 | |
US9128758B2 (en) | Encoding densely packed decimals | |
WO2022120626A1 (zh) | 基于dna的数据存储方法、数据恢复方法、装置及终端设备 | |
CN115033549A (zh) | 基于区块链的文件链接存储方法及装置 | |
CN111178010B (zh) | 显示数字签名的方法及***、数据编辑方法及终端 | |
CN103138766A (zh) | 数据压缩与解压缩的方法及装置 | |
CN115001628B (zh) | 数据编码的方法及装置、数据解码的方法及装置和数据结构 | |
CN111324587A (zh) | Obj文件的数据的压缩方法、解析方法以及*** | |
Zeng et al. | Research on LZW Algorithm Based on AES in Data Backup Under Data Block Compression and Encryption | |
CN113283215B (zh) | 一种基于utf-32编码的数据混淆方法及装置 | |
CN111343612B (zh) | 一种物联网数据方法及*** | |
WO2024066753A1 (zh) | 压缩数据的方法和相关装置 | |
CN110888999A (zh) | 一种图片与字符相互转换的方法 |