TW201440442A - 安全及無損失的資料壓縮 - Google Patents

安全及無損失的資料壓縮 Download PDF

Info

Publication number
TW201440442A
TW201440442A TW102134301A TW102134301A TW201440442A TW 201440442 A TW201440442 A TW 201440442A TW 102134301 A TW102134301 A TW 102134301A TW 102134301 A TW102134301 A TW 102134301A TW 201440442 A TW201440442 A TW 201440442A
Authority
TW
Taiwan
Prior art keywords
character
coordinate
subsequence
sequence
encoding
Prior art date
Application number
TW102134301A
Other languages
English (en)
Inventor
Alain Denhez
Original Assignee
Alcatel Lucent
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Lucent filed Critical Alcatel Lucent
Publication of TW201440442A publication Critical patent/TW201440442A/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本發明提供一種用於壓縮字元串的方法,依據絕對編碼表,該字元串由字元的原始有序序列(2)所初始地界定,每一字元由獨特地代表每一字元的絕對數字所代表,包含以下步驟:將該原始序列(2)剖析成包含鄰接字元的至少一個第一型子序列(7),且成包含鄰接剩餘字元的至少一個第二型子序列(8),該第一型子序列(7)的鄰接字元的每一者係基於相對編碼表中的匹配字元予以選擇,使用該相對編碼表,編碼每一第一型子序列,及由來自該絕對編碼表的其絕對代表數字,代表來自每一第二型子序列(8)的每一字元。本發明亦提供一種用於解壓縮壓縮的序列(3)之對應方法。

Description

安全及無損失的資料壓縮
技術領域係一種資訊的溝通。更特別地,其係對安全及無損失的壓縮/解壓縮而提出。
本文係一字元串,有序的為一字元序列。用數字表示字元、的典型方式係藉由使用絕對編碼表,其中每一字元係由唯一絕對數字所表示。最有名的此種絕對編碼表的一者係由ASCII規範所定義的一者。於此種ASCII絕對編碼表中,每一文字係典型地由唯一的一位元組數字所表示,因此限制此種ASCII絕對編碼表的大小至256個字元。用數字表示有序字元序列係提供對應的有序數字序列,每一字元係以相同次序由其絕對數字所表示。
因此,n個字元串係由佔用n個位元組的一數字序列所表示。由於資料或本文傳輸的增加,例如,在行動電話網路上,此種佔用似乎是太高。
存在有一些壓縮解法,諸如zip壓縮格式、rar壓縮格式等,然而,這些解法可能不會產生任何尺寸減小,特 別是在應用於短的長度串之本文字元時。
甚至用於短的長度串,顯示顯著尺寸減小的壓縮/解壓縮方案係可取的。
實施例關於一種用於壓縮字元串的方法,依據絕對編碼表,該字元串由字元的原始有序序列所初始地界定,每一字元由獨特地代表每一字元的絕對數字所代表,包含以下步驟:將該原始序列剖析成包含鄰接字元的至少一個第一型子序列,且成包含鄰接剩餘字元的至少一個第二型子序列,該第一型子序列的鄰接字元的每一者匹配相對編碼表中對應的字元,使用該相對編碼表編碼每一第一型子序列,自該壓縮序列中的每一第二型子序列複製每一字元,每一字元係自該絕對編碼表由其絕對代表數字所代表。
依據實施例的特徵,第一型子序列的編碼另包含以下步驟:自該絕對編碼表由其原始絕對代表數字將該子序列的初始字元編碼作為鍵碼,藉由編碼該相對編碼表中的位移,編碼接著該子序列中的該初始字元之每一字元於先於該字元的字元及該字元之間,及在該子序列中的最後字元之後,藉由向該相對編碼表中的第二特定控制字元編碼位移,表示編碼的末端結束該第一型子序列的編碼。
依據實施例的另一特徵,該方法可另包含以下步驟:將計算自該原始序列的校驗和插入該壓縮序列。
依據實施例的另一特徵,該相對編碼表中的位移於前 面字元及後續字元之間的編碼包含以下步驟:決定第一座標,沿著第一預定方向分開該相對編碼表中的該前面字元及該後續字元,決定第二座標,沿著第二預定方向分開該相對編碼表中的該前面字元及該後續字元,按序連接將所有決定的座標成壓縮序列。
依據實施例的另一特徵,該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,其中無數字係共用於該第一數字集中及該第二數字集中之間,以及其中該第一集中的一個第一特殊座標及第二集中的一個第二特殊座標係省略於壓縮序列中,除了當二個特殊座標係緊跟隨時,於此例中該後續特殊座標未省略。
依據實施例的另一特徵,該相對編碼表係以最頻繁字元填充,如將壓縮的字元串中所預期。
依據實施例的另一特徵,該相對編碼表係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的第一座標,以及第二特殊座標係對應於零分開列的第二座標。
依據實施例的另一特徵,該方法另包含以下步驟於剖析步驟及編碼步驟之間:如果經由編碼步驟將獲得之編碼子序列係短於原始子序列,檢查每一第一型子序列,及如果不是,將該第一型子序列視為第二型子序列。
另一實施例關於一種用於將壓縮的序列解壓縮成字元 串的方法,依據絕對編碼表,該字元串由字元的最後有序序列所界定,每一字元由獨特地代表每一字元的絕對數字所代表,包含以下步驟:自該壓縮的序列擷取鄰接數字的至少一個編碼的子序列,使用相對編碼表將該編碼的子序列解碼成最後解碼的子序列,保持剩餘數字,及使用該絕對編碼表將每一剩餘數字複製成解壓縮的序列2作為由絕對數字所代表的字元。
依據實施例的另一特徵,擷取及解碼步驟另包含以下步驟:依據該絕對編碼表,複製該最後解碼子序列中的初始數字作為由該絕對數字所代表的字元,預處理該編碼子序列中接著該初始數字的後續數字,解碼該相對編碼表中的後續數字作為相對位移,一直到位移指向該相對編碼表中的第二特定控制字元,表示編碼的末端,且因此表示該編碼子序列的末端。
依據實施例的另一特徵,解碼後續數字步驟另包含以下步驟:起動以是該初始字元的目前字元,目前位置係該相對編碼表中的該初始字元的位置,及目前對座標係該相對編碼表中的第一對第一座標及第二座標,重複後續步驟,直到新位置指向該相對編碼表中的第二特定控制字元:自該相對編碼表中的目前位置應用如由該目前對第一座標及第二座標所編碼之位移,該第一座標表示沿著第一預定方向之行的循環計數,該第二座標表示沿著第二預定方向之列的循環計數,以發現表示新解碼的字元的新位置,複製該新解碼的字元在該解碼的最後子序列中的該目 前字元之後,更新該目前字元至該新解碼的字元,更新該目前位置至該新位置,更新該目前座標對至該編碼的子序列中的下一對第一座標及第二座標。
依據實施例的另一特徵,該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,無數字係共用於該第一數字集中及該第二數字集中之間,該預處理步驟後續數字步驟另包含以下步驟:將該等後續數字分開成座標,插入第一特殊座標在任何第二特殊座標之前,插入第二特殊座標在任何第一特殊座標之前,插入第一特殊座標於任何二個鄰接第二座標之間,插入第二特殊座標於任何二個鄰接第一座標之間。
依據實施例的另一特徵,該相對編碼表係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的第一座標,以及第二特殊座標係對應於零分開列的第二座標。
另一實施例關於,包含用於依據此種壓縮方法來壓縮字元串成壓縮的序列的機構之壓縮器。
一個實施例關於一種用於壓縮字元串成壓縮的序列的壓縮器,依據絕對編碼表,該字元串由字元的原始有序序列所初始地界定,每一字元由獨特地代表每一字元的絕對數字所代表,包含:剖析器,用於剖析該原始序列成包含鄰接字元的至少一個第一型子序列,且成包含鄰接剩餘字 元的至少一個第二型子序列,該第一型子序列的鄰接字元的每一者係基於相對編碼表中的對應字元予以選擇,編碼器,用於自該壓縮的序列中的每一第二型子序列編碼每一字元、每一字元係自該絕對編碼表由其絕對代表數字所代表。
依據實施例的另一特徵,該編碼器另包含:第一子編碼器,用於自該絕對編碼表由原始絕對代表數字編碼該子序列的初始字元作為鍵碼,第二子編碼器,用於藉由編碼該相對編碼表中的位移,編碼接著該子序列中的該初始字元之每一字元於先於該字元的字元及該字元之間,及第三子編碼器,用於在該子序列中的最後字元之後,藉由向該相對編碼表中的第二特定控制字元編碼位移,表示編碼的末端結束該第一型子序列的編碼。
依據實施例的另一特徵,該壓縮器另包含:插入器,用於將計算自該原始序列的校驗和插入該壓縮的序列。
依據實施例的另一特徵,該第二子編碼器另包含:第一決定器,用於決定第一座標,沿著第一預定方向分開該相對編碼表中的該前面字元及該後續字元,第二決定器,用於決定第二座標,沿著第二預定方向分開該相對編碼表中的該前面字元及該後續字元,連接器,用於按序連接將所有決定的座標成壓縮的序列。
依據實施例的另一特徵,該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,其中無數字係共用於該第一數字集中及該第二數字集中之間,以 及其中該第一集中的一個第一特殊座標及第二集中的一個第二特殊座標係省略於壓縮的序列中,除了當二個特殊座標係緊跟隨時,於此例中該後續特殊座標未省略。
依據實施例的另一特徵,該相對編碼表係以最頻繁字元填充,如在將壓縮的字元串中所預期。
依據實施例的另一特徵,該相對編碼表係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的第一座標,以及第二特殊座標係對應於零分開列的第二座標。
依據實施例的另一特徵,該壓縮器另包含檢查器,用於如果經由編碼步驟將獲得之編碼子序列係短於原始子序列,檢查每一第一型子序列,及如果不是,將該第一型子序列視為第二型子序列。
另一實施例關於包含用於依據此種解壓縮方法來解壓縮一壓縮的序列成字元串的機構之解壓縮器。
一個實施例關於,依據絕對編碼表,該字元串由字元的最後有序序列所界定,每一字元由獨特地代表每一字元的絕對數字所代表,包含:擷取器,用於自該壓縮的序列擷取鄰接數字的至少一個編碼的子序列;解碼器,用於使用相對編碼表將該編碼的子序列解碼成最後解碼的子序列;保持器,用於保持剩餘數字;及複製器,用於使用該絕對編碼表將每一剩餘數字複製成解壓縮的序列作為由絕 對數字所代表的字元。
依據實施例的另一特徵,該擷取器及解碼器另包含:子複製器,用於依據該絕對編碼表,複製該最後解碼子序列中的初始數字作為由該絕對數字所代表的字元;預處理器,用於預處理該編碼子序列中接著該初始數字的後續數字;子解碼器,用於解碼該相對編碼表中的後續數字作為相對位移,一直到位移指向該相對編碼表中的第二特定控制字元,表示編碼的末端,且因此表示該編碼子序列的末端。
依據實施例的另一特徵,該子解碼器另包含:起動器,用於起動以是該初始字元的目前字元,目前位置係該相對編碼表中的該初始字元的位置,及目前座標對係該相對編碼表中的第一對第一座標及第二座標;重複器,用於重複後續步驟,直到新位置指向該相對編碼表中的第二特定控制字元:自該相對編碼表中的目前位置應用如由該目前對第一座標及第二座標所編碼之位移,該第一座標表示沿著第一預定方向之行的循環計數,該第二座標表示沿著第二預定方向之列的循環計數,以發現表示新解碼的字元的新位置,複製該新解碼的字元在該解碼的最後子序列中的該目前字元之後,更新該目前字元至該新解碼的字元,更新該目前位置至該新位置,更新該目前座標對至該編碼的子序列中的下一對第一座標及第二座標。
依據實施例的另一特徵,該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,其中無 數字係共用於該第一數字集中及該第二數字集中之間,其中該預處理器另包含:分開器,用於將該等後續數字分開成座標,第一插入器,用於插入第一特殊座標在任何第二特殊座標之前,第二插入器,用於插入第二特殊座標在任何第一特殊座標之前,第三插入器,用於插入第一特殊座標於任何二個鄰接第二座標之間,第四插入器,用於插入第二特殊座標於任何二個鄰接第一座標之間。
依據實施例的另一特徵,該相對編碼表係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的第一座標,以及第二特殊座標係對應於零分開列的第二座標。
1‧‧‧序列
2‧‧‧序列
3‧‧‧序列
4‧‧‧字元
5‧‧‧絕對數字
7‧‧‧第一第一型子序列
7a‧‧‧第二第一型子序列
8‧‧‧第一第二型子序列
8a‧‧‧第二第二型子序列
10‧‧‧絕對編碼表
11‧‧‧第一型編碼子序列
11a‧‧‧第一型編碼子序列
12‧‧‧第二型最後子序列
13‧‧‧第一特定控制字元
14‧‧‧第一字元
15‧‧‧移動數字
16‧‧‧第二特定控制字元
17‧‧‧填補字元
18‧‧‧校驗和
19‧‧‧校驗和
20‧‧‧相對編碼表
21‧‧‧位移
22‧‧‧前面字元
23‧‧‧後續字元
30‧‧‧壓縮方法
31‧‧‧剖析步驟
32‧‧‧隨意檢查步驟
33‧‧‧編碼步驟
34‧‧‧編碼
35‧‧‧編碼
36‧‧‧決定
37‧‧‧決定
38‧‧‧連接
39‧‧‧編碼
40‧‧‧複製步驟
41‧‧‧校驗和步驟
50‧‧‧壓縮裝置
51‧‧‧剖析器
52‧‧‧隨意檢查器
53‧‧‧編碼器
54‧‧‧第一子編碼器
55‧‧‧第二子編碼器
56‧‧‧第一決定器
57‧‧‧第二決定器
58‧‧‧連接器
59‧‧‧第三子編碼器
60‧‧‧複製器
61‧‧‧隨意插入器
70‧‧‧解壓縮方法
71‧‧‧擷取步驟
72‧‧‧解碼步驟
73‧‧‧複製
74‧‧‧預處理步驟
75‧‧‧分開步驟
76‧‧‧第一插入步驟
77‧‧‧第二插入步驟
78‧‧‧第三插入步驟
79‧‧‧第四插入步驟
80‧‧‧解碼
81‧‧‧起動步驟
82‧‧‧重複步驟
83‧‧‧保持步驟
84‧‧‧複製步驟
90‧‧‧解壓縮裝置
91‧‧‧擷取器/解碼器
93‧‧‧子複製器
94‧‧‧預處理器
95‧‧‧分開器
96‧‧‧第一插入器
97‧‧‧第二插入器
98‧‧‧第三插入器
99‧‧‧第四插入器
100‧‧‧子解碼器
101‧‧‧起動器
102‧‧‧重複器
從以下參照圖式所給予的詳細說明,本發明的其它特徵、細節及優點將變得更顯而易知,其中:圖1解說依據ASCII規範的絕對編碼表;圖2顯示絕對地編碼及依據一實施例的編碼之串的實例;圖3解說將原始一序列分成第一及第二型子序列的步驟;圖4解說相對編碼表;圖5解說依據一實施例之壓縮方法的流程圖; 圖6解說依據一實施例之壓縮器;圖7解說依據一實施例之解壓縮方法的流程圖;及圖8解說依據一實施例之解壓縮器。
本文係一字元串,有序的為字元4的序列1。用數字表示字元4的典型方式係藉由使用絕對編碼表10,其中每一字元4係由唯一絕對數字5所表示。最聞名的此種絕對編碼表10的一者係由ASCII規範所定義的一者。ASCII絕對編碼表10的第一半係顯示於圖1中。分別於第7行中提及於第3行的字元4係由分別於第5行中以十進位指示於第1行之絕對數字所表示,以及由分別於第6行中以十六進位指示於第2行的相同絕對數字5所表示。作為實例,字元“A”係由十進位的唯一絕對數字“065”及由十六進位的絕對數字“41”所表示。
於此種ASCII絕對編碼表10中,每一字元4係典型地由唯一的一位元組數字5所表示,因此將此種ASCII絕對編碼表的尺寸限制在256個字元(該表的一半被描述)。用數字表示為字元4的有序序列1的本文之典型方式將提供數字5的對應有序序列2,其中每一字元4係由其絕對數字5以相同次序所表示。參照圖2,解說性字串1:““888”橘子(Orange)語音郵件:於(on)12/05/11在(at)17h44此通信者已呼叫一次沒留訊息”,已使用該ASCII絕對編碼表10予以表示。所有方塊的第一行包含 字元的字串1,每一方塊的第二行對應地含有數字10的有序序列2,或十六進位的ASCII碼。
因為此種絕對編碼可能沒效率,壓縮方法被建議。所有方塊的第二列然後係代表將壓縮的原始有序序列2,以及所有方塊的第三列係對應的壓縮序列3,如經由壓縮方法的一實施例自該原始有序序列2所獲得。
除了該絕對編碼表10以外,該壓縮方法還使用相對編碼表20。此種相對編碼表20的實例係呈現於圖4中,該壓縮方法可包含數個步驟。
參照圖3,原始序列2在進入壓縮方法時係描述在上部。在圖3的下部上,壓縮序列3係描述如由該壓縮方法所輸出。
依據壓縮方法的第一步驟,該原始序列2係剖析成子序列7、8。該剖析係基於該相對編碼表20的內容。該內容係字元集,其係至少全部字元集的子集,如例如,由含於絕對編碼表10中的256個字元所界定。因此,一個人可界定第一型字元,其特徵在於,其係包含於該相對編碼表20中,且因此亦包含於該絕對編碼表10中。一個人可同樣地界定第二型字元,其係包含於該絕對編碼表10中而不是於該相對編碼表20中。例如,以圖1的解說性絕對編碼表10及圖4的解說性相對編碼表20,呈現於該相對編碼表20中的字元“A”-“Z”係第一型字元,而缺自該相對編碼表20的字元“0”-“9”係第二型字元。
因此,一個人可界定第一型子序列7為包含第一型的 鄰接字元,以及第二型子序列8包含任何類型的鄰接字元。因此,第一型字元可被發現於第一型或第二型子序列,而第二型字元出現於第二型子序列。
參照圖3,解說性字串:““888”橘子語音郵件:於12/05/11在17h44此通信者已呼叫一次沒留訊息”可基於圖4的相對編碼表20分成:第一第二型子序列8:“888”,第一第一型子序列7:“橘子語音郵件:於”,第二第二型子序列8a:“12/05/11在17h44”,及第二第一型子序列7a:“此通信者已呼叫一次沒留訊息”。
因此,“在(at)”包含字元:空格、“a”及“t”全部出現於該相對編碼表20中子序列8a可能已進一步分成三個子序列:第二型的12/05/11、第一型的“在”及第二型的“17h44”。然而,如而後解釋其本身,第一型子序列7的擷取可以是隨意的。這裡第一型子序列“在”被認為太短以致沒興趣擷取及編碼,如後詳述。
更普遍地,第一型子序列7的擷取可以是隨意的,因為可能沒有任何可擷取的第一型子序列於所有字元屬於絕對編碼表10之例子。於此種例子中,等於原始序列2的一個第二型子序列可經由該剖析步驟所獲得。
因為如以下將變得明顯,壓縮增益可經由第一型子序列7的編碼而獲得,有趣的是,擷取最長可能的第一型子序列7且使用第二型子序列8以容納缺自該相對編碼表 20之第二型的字元。
取決於它們的型,這二個型如此獲得的子序列被處理。每一第一型子序列7可使用該相對編碼表20予以編碼,如後所述。第二型子序列8係保持原樣。否則第二型子序列8保持使用該絕對編碼表10予以描述,其中每一字元4係自該絕對編碼表10由其絕對描述數字5予以描述。因此,第二型子序列係按次序自原始序列2簡單地複製至壓縮的序列3。
第一型子序列7係編碼成第一型最後子序列11,第二型子序列8係複製成與該原始第二型子序列8相同的第二型最後子序列12。壓縮方法的結果係最後壓縮序列3等於該第一及第二型最後子序列11、12的按次序串聯,如圖3所示。
壓縮方法的主要利益來自應用於任何第一型子序列7的編碼步驟。此種編碼步驟係基於該相對編碼表20且壓縮數個以下步驟。其係解說於圖3中。
為開始編碼第一型子序列7,第一特定控制字元13係加至結果對應的最後子序列11的開始。對於解壓縮方法/解碼步驟的注意,此種第一特定控制字元13係放置這裡以指示編碼的開始。
該第一特定控制字元13可任意地選擇。然而,如絕對編碼表10中所界定的一些字元係專屬於控制目的。其碼為自“00”至“1F”的字元4係控制字元。它們中許多已具有特別目的,且將不是最佳候選者。字元DC2(編碼 “12”)係一個可能候選者,因為如今它不常使用。本說明中的實例使用該DC2字元作為意指編碼的開始之第一特定控制字元13。
然後,將編碼的子序列7的第一字元14係絕對地編碼。這意指該初始字元14係自該絕對編碼表10由其原始絕對表示數字5所表示。該初始字元14在文中亦稱為鍵碼14。這意指將編碼的子序列7的第一數字係複製至最後編碼子序列11,在該第一特定控制字元13之後於第二位置。
然後,接在該子序列7中的該第一字元14之後的每一字元4係藉由編碼該相對編碼表20中的位移而相對地編碼於在將編碼的該字元之前的字元及該字元之間。此意指最後編碼子序列11先含有第一特定控制字元13、接著第一字元/鍵碼14、然後表示該第一字元14及緊接該第一字元14的第二字元之間的該相對編碼表20中的位移之移動數字15、然後表示該第二字元及緊接該第二字元的第三字元之間的位移之移動數字15、以及等等直到該原始子序列7的最後字元為止。因為這是重要步驟,位移的相對編碼將詳細後述。
編碼結束在該最後字元之後,該第一型子序列7的編碼的結束係由在最後字元之後編碼表示編碼的結束之該相對編碼表20中的第二特定控制字元16之朝向的位移之附加移動數字15而表示於最後編碼子序列11中。
現在讓我們回復到於所解說性字串及圖2。含有 ““888””之字串的開始包含缺自該相對編碼表20的5個字元。因此,它們形成第二型子序列:子序列8,其係編碼成{22,38,38,38,22}於原始序列2中及於壓縮序列3中。接著,開始第一型子序列7:“橘子語音郵件:於”。該原始子序列係最初編碼成{20,4F,72,61,6E,67,65,20,76,6F,69,63,65,6D,61,69,6C,3A,20,6F,6E,20}。經由編碼步驟,它然後變成最後子序列11,按次序包含第一特定控制字元13:DC2,其碼為“12”,以淺灰色表示,由原始子序列7的第一字元14的表示數字5跟隨,其為“空格”,其碼為“20”。它們由移動數字15所跟隨,按次序編碼字元及下一字元之間的每一位移。因為原始子序列7包含22個字元,它們為編碼的21個位移。它們係由移動數字15的序列所編成:由於該方法提供之有利減少,{41,C5,47,94,F7,C5,E7,E7,49,2F,A1,E1,69,70,B4,C2,2C}這裡包含17個位元組。最後子序列11由最後移動數字15所結束,這裡為“0C”,相當於最後字元,這裡為“”(空格)及該相對編碼表20中的第二特定控制字元16之間的位移。如而後所述,該移動數字“OC”由於省略在前的“0”變成“C”。然後“0”填補字元已被加在其後,以展示偶數的半位元組。此導致“C0”數字,以深灰色表示,於圖2中。下一數字{31,32,2F,...}係表示下一字元“12/...”的絕對數字5,屬於第二型子序列8a,且因此絕對地表示。
如圖3所示,可能的是,為了保全壓縮方法,增加校 驗和18、19係計算自該原始序列2。該校驗和18的複製19然後在傳輸之前附加至壓縮序列3,例如,在該壓縮序列的末端。此容許接收器藉由比較二個冗餘數據:壓縮序列3及該校驗和19予以檢查。該比較的正結果表示正確壓縮及傳輸,而負結果表示壓縮方法/編碼步驟中或傳輸中的錯誤。
計算該校驗和18的可能方式係例如,總結原始序列2的字元4的所有絕對數字5。雖然字串中的字元的數目保持少於256個,該總和保持小於65536個且可寫成二位元組。至於較大字串,為保持二位元組校驗和,可能將該字串削減成256個位元組子字串或使用突出校驗和演算,例如,忽略任何進位。
現在是說明位移編碼的時候,使用相對編碼表20。位移21係界定於該原始序列2中的二個跟隨字元之間,且吾人可界定前面字元22及後續字元23。因為該等字元屬於第一型子序列7,它們皆出現於該相對編碼表20。
原則係考慮位移21於自該前面字元22至該後續字元23的該相對編碼表20中。考慮該位移21,它可被解壓縮成水平位移及垂直位移。因此可能決定第一座標及第二座標以界定該位移21。相對編碼表20為矩形矩陣,第一座標可以是沿著第一預定方向分開該前面字元22與後續字元23之行的循環計數,以及第二座標可以是沿著第二預定方向分開該前面字元22與後續字元23之列的循環計數。列/行或行/列次序係任意選擇,且甚至可自一位移21 改變至另一者,只要其係一致於壓縮與解壓縮方法之間。
至於所有位移21,計數方向係有利地相同。行可被計數自左至右或自右至左。列可被計數自上至下或自下至上。此可以是不變或自一位移21改變至另一者,只要其係一致於壓縮與解壓縮方法之間。於說明的其餘部份,假設自左至右的行計數及自上至下的列計數方向。
該行計數係循環的,其中它係捨入以包含在0與行的最大數目減1之間,以及該列計數係循環的,其中它係捨入以包含在0與列的最大數目減1之間。
該決定第一及第二座標然後以位移的次序串聯成移動數字15,成壓縮序列3。
參照圖4,以解說性相對編碼表20,前面字元22“F”及後續字元“g”之間的位移21係詳細的。“F”係於序列3,“g”係於絕對數字5中,沿著左至右方向字元化位移21自“F”至“g”之行的數目然後係2。該位移21的第一座標然後係2,“F”係於列2中,“g”係於列5中,沿著上至下方向字元化位移21自“F”至“g”之列的數目然後係3。該位移21的第二座標然後係3。該位移21的移動數字15因此可編碼為(2、3)或“23”。
現在考慮字元“g”及字元“s”之間的位移,24。因此行係自左至右計數,分開“g”與“s”之行的數目係5。這裡,循環計數意含,行係循環地考慮,行0係再次放置在行7的右邊。計數自上至下分開“g”與“s”之列導致0的計數,因為它們二者在相同列上或至8的計數,其係依序捨入至 0,以保持包含在0及8-1=7之間,亦即,按模計算列的最大數目,這裡為8。
依據另一發明特徵,該第一座標係選擇於第一組數字中,以及第二座標係選擇於第二組數字中。無數字可共用於該第一組數字及該第二組數字之間。當注意座標時,此種特徵有利地允許立即知道它是否為第一座標或第二座標。
因此,因為各別的第一及第二座標的相對次序係已知的,此種特徵允許省略該第一組中的一個第一特殊座標以及該第二組中的一個第二特殊座標於壓縮序列3中。由於第一及第二座標的已知相對次序,此種省略可在解碼期間容易地檢測,且藉由使該對應的第一或第二特殊座標取代該省略座標而修正。
於將傳輸之位元組的減少量而論,該省略係可期待自壓縮方法/編碼步驟之利益的根據。
然而,當應用該省略時有例外。當二個此種特殊座標緊隨著時,它們不可能在解碼期間冒失去至少一字元的風險而二者都省略。於此種例子中,該二個跟隨座標的第二特殊座標未省略,且取代地保持於壓縮序列3中。它的存在允許解壓縮方法/解碼步驟以擷取回所有原始存在的字元。
為了最大化該相對編碼表20的使用,亦即,為了自指定的原始序列2而擷取大部份或最長的第一型子序列7,該相對編碼表20係有利地填充最常見字元,如於將壓 縮的本文字元的字串所期待。
至於相對編碼表20的指定尺寸N,該編碼表20中的一個位置可保留至EoC16,所有其它N-1位置係可利用且可被選擇以接受來自如絕對編碼表10所界定之完整的字元組的N-1個最常見字元。
字元的相對出現率係統計上估計自期待壓縮之本文字元的字串。出現率分析因此可應用至使用於該字串中的指定語言。
圖4的解說性相對編碼表20係8×8方形矩陣。它因此包含64個位置。一個位置係保留至EoC16。63個其餘位置係以英文語言由63個最常見字元自左至右且自上至下而填充。
有利的是具有儘可能包含來自如由絕對編碼表10所表示之完整的字元組的一樣多字元之大的相對編碼表20,為了最大化該相對編碼表20的使用,亦即,為了自指定的原始序列2而擷取大部份且最長的第一型子序列7。
依據實施例,該相對編碼表20可包含來自如絕對編碼表10所示的完整的字元組之所有字元。於絕對ASCII編碼表10的例子中,此導致256個字元,且因此至例如,16×16矩陣的相對編碼表20。由於任何原始序列2為第一型子序列7且可被編碼之事實,獲自廣泛編碼的利益係由於編碼位移所需的尺寸及座標而減少。至於此種16×16相對編碼表,每一座標係在16個符號中而選擇,因此 導致增加的編碼負擔。
依據可能較佳的是減小該相對編碼表20的尺寸,且因此減小位移的關聯座標的尺寸,以及集中編碼在由最常使用的字元所組成之第一型子序列7上。
依據較佳實施例,該相對編碼表係8×8方形矩陣。此允許分別藉由使用8個符號來編碼第一座標及第二座標。
於特別有利的實施例中,第一座標係依據行的循環計數選擇於[0..7]的第一範圍中。因此,“0”的座標表示相同行上的前面字元22及後續字元之間的位移21,“1”的座標表示緊接行上的前面字元22及後續字元之間的位移21,及等等。該行計數係例如,自左至右作成。
於該實施例中,第二座標係依據列的循環計數選擇於[8..F]的第二範圍中,加有8。該8的加入允許沒有第一座標及第二座標之間的共同座標,同時保持每一座標的含意。因此,“8”(意指0)的座標表示相同行上的前面字元22及後續字元之間的位移21,“9”(意指1)的座標表示緊接列上的前面字元22及後續字元之間的位移21,“A”(意指2)的座標表示二列的前面字元22及後續字元之間的位移21,及等等。該列計數係例如,自上至下作成。
由於該相對編碼表20的小尺寸及座標之值的選擇,任何座標可由半位元組表示,以及包含第一座標及第二座標的移動數字15可由位元組來表示。
此外,因此所使用的符號係不同,座標明確地表示其 是否為第一座標或第二座標。“D”座標表示5的計數且亦表示其關於列/第二座標。“3”座標表示3的計數且亦表示其關於行/第一座標。
這允許省略的第一座標:{0,1,2,3,4,5,6,7}中的一個第一特殊座標以及第二座標組:{8,9,A,B,C,D,E,F}的一個第二特殊座標。
該省略為壓縮利益的根據,可以至少預期用於座標的總數中之一個座標量,亦即,這裡用於1/8,如果假設正常分佈。該相對編碼表20中之字元的佈置的可能最佳化可甚至藉由使用該省略的第一特殊座標及該第二特殊座標具有統計上更多位移。
該省略的第一及第二特殊座標可分別隨意選擇,只要壓縮方法/編碼步驟與解壓縮方法/解碼步驟之間係一致。其它的一個可能選擇將省略對應於零分開行的第一座標以及省略對應於零分開列的第二座標。
因此,於一個實施例中,第一特殊座標係“0”以及第二特殊座標係“8”。這意指當原始序列2中的連續後續字元係位在該相對編碼表20的相同行或列上時,壓縮利益可被期待。相對編碼表20可藉由佈置該相對編碼表20的相同行或列上的字串中的統計上常後續字元最佳化例如,用於指定語言。
回復到實例,位移的編碼於第一型子序列7:“橘子語音郵件:在”參照圖2係使用圖4的相對編碼表20以下述方式而實現。
第一字元“”(“空格”)14係絕對地由其絕對表示數字:“20”表示。該第一字元14亦界定第一位置於該相對編碼表20在第一列第一行上。
緊接後續字元係“O”。第一位移然後係自“空格”至“O”。因此“O”係位於該相對編碼表20的第一列第四行上。位移然後可由4個行的水平位移及0個列的垂直位移而編碼。此導致4的第一座標及8(0+8)的第二座標。
後續字元係“r”。第二位移然後係自“O”至“r”。因此“r”係位於該相對編碼表20中的第六列第五行,位移然後可由1個行的水平位移及4個列的垂直位移而編碼。此導致1的第一座標及C(4+8)的第二座標。
後續字元係“a”。第三位移然後係自“r”至“a”。因此“a”係位於該相對編碼表20中的第五列第三行,位移然後可由5個行的水平位移及0個列的垂直位移而編碼。此導致5的第一座標及8的第二座標。
後續字元係“n”。第四位移然後係自“a”至“n”。因此“n”係位於該相對編碼表20中的第五列第七行,位移然後可由4個行的水平位移及0個列的垂直位移而編碼。此導致4的第一座標及8的第二座標。
後續字元係“g”。第五位移然後係自“n”至“g”。因此“g”係位於該相對編碼表20中的第六列第六行,位移然後可由7的水平位移及1的垂直位移而編碼。此導致7的第一座標及9(1-8)的第二座標。
後續字元係“e”。第六位移然後係自“g”至“e”。因此 “e”係位於該相對編碼表20中的第五列第二行,位移然後可由4個行的水平位移及7個列的垂直位移而編碼。此導致4的第一座標及F(7+8)的第二座標。
後續字元係“空格”,導致7及C的座標。
後續字元係“v”,導致5及E的座標。
後續字元係“o”,導致7及E的座標。
後續字元係“i”,導致7及0的座標。
後續字元係“c”,導致4及9的座標。
後續字元係“e”,導致2及F的座標。
後續字元係“m”,導致0及A的座標。
後續字元係“a”,導致1及E的座標。
後續字元係“i”,導致1及8的座標。
後續字元係“1”,導致6及9的座標。
後續字元係“:”,導致7及8的座標。
後續字元係“空格”,導致0及B的座標。
後續字元係“o”,導致4及C的座標。
後續字元係“n”,導致2及8的座標。
後續字元係“空格”,導致2及C的座標。
該“空格”係子序列7的最後字元。因此,最後位移係朝向EoC 16編碼,這裡位於第一行第五列。最後位移然後係自最後字元“空格”至“EoC”。位移然後可由0個行的水平位移及4個列的垂直位移而編碼。此導致0的第一座標及C的第二座標。
依據原始子序列7中之字元的次序之次序中的所有座 標的串聯,接著第一座標然後第二座標的可能相對次序,導致:
由於0已被選擇作為第一特殊座標以及8已被選擇作為第二特殊座標,它們可自已編碼序列省略,除了當它們二者係鄰接時。有一個出現,加註有盒框(box),其中一個人可發現0緊接著8。於此例中,下面的0被保持。此導致:
其簡化成:41 C5 47 94 F7 C5 E7 E7 49 2F A1 E1 69 70 B4 C2 2C C 0
該簡化係壓縮利益的主要理由。該數字的序列然後係按順序複製於對應的編碼子序列11中,如圖2中所見。
可注意的是,特定座標的省略,這裡為0及8,可能導致奇數的剩餘座標,如於實例中。因為每一座標佔用半位元組,此可能導致不完全的最後位元組。為符合該限制,任何不完全的最後位元組可由半位元組的填補字元17所完成。該填補字元17,這裡為斜體字,可例如,由零所充填,如於圖2中。
取決於字串的內容,壓縮方法/編碼步驟可有利的是,壓縮序列3係短於原始序列2。
如可自先前說明而容易地取得,第二型子序列8並未提供任何壓縮利益,因為其係自原始序列2同樣複製成壓縮序列3。至於第一型子序列7,壓縮利益取決於該子序 列7的內容。壓縮利益清楚地起因自相較於附加負擔之省略特定座標的數目。如果二個不多的省略可被操作,第一型子序列7甚至可編碼成較長的編碼子序列11。
參照一實施例,因為該負擔包括第一特定控制字元13(1位元組)及朝向EoC 16的位移(1位元組以內),其可包括多達2個位元組。特定座標的每一省略提供半位元組的增益。如果多於4個省略可被應用於指定的第一型子序列7,壓縮方法然後變成有利。插入校驗和18、19進一步增加二個位元組。因此如果第一型子序列7出現提供少於4個省略,分別地8個省略(於使用校驗和的例子),其編碼可能不是最佳。此種可有利地較佳處理為第二型子序列。
依據實施例,壓縮方法因此可藉由添加以下步驟而最佳化。至於獲自分割步驟的每一第一型子序列7,如果將經由編碼步驟所獲得之編碼子序列11具有大於或等於原始子序列7的長度之長度,該第一型子序列7係處理為第二型子序列,亦即,未編碼。
回復到圖2的實例,這是前述子序列“在”的例子,其未被視為第一型子序列,且因此未經由編碼步驟而處理,然而取代的是保持為含第二型子序列8的一部份。
壓縮方法及編碼步驟已被廣泛地說明。本揭露亦關於對應的解壓縮方法。
該解壓縮方法接收壓縮序列3,為數字的有序序列,且係負責解壓縮它以便以相同於該原始序列2之最後有序 序列的形式向後提供本文字元的最後字串。
該解壓縮方法使用如壓縮方法所使用之相同矩形矩陣相對編碼表20。
首先,解壓縮方法包括將該壓縮序列3剖析成來自編碼第一型子序列7的第一型編碼的子序列11及來自複製第二型子序列8的第二型子序列12。這可藉由自該壓縮序列3擷取所有現在編碼子序列11而完成,如果任一者是存在的話。
在該擷取後的該壓縮序列3中之剩餘數字被保持。它們在鄰接時可被集中在第二型子序列12。因為於最後第二型子序列中,每一此種第二型子序列12係複製相同於原始第二型子序列8。
如此擷取的每一第一型編碼子序列11可使用該相對編碼表20經由解碼步驟處理成相同於該原始第一型子序列7之最後第一型解碼子序列。
擷取過程可包含數個步驟。由於編碼方案,第一型編碼子序列11可由其初始數字,其為第一特定控制字元13為擷取的目的而檢測。壓縮序列3中所發現之任何此種第一特定控制字元13指示一個第一型編碼子序列11的存在,在該第一特定控制字元13之後開始。一旦發現的該第一特定控制字元13被拋棄且未複製成最後解縮序列。
接著由於按照位移的相對編碼,起自該第一特定控制字元13的第一型編碼子序列11被解碼以發現其末端且因此能夠最終化其擷取。
依據表示亦稱為鍵碼14的初始字元14之該絕對編碼表10,緊接該第一特定控制字元13的初始數字14表示絕對數字5,該最後第一型解碼子序列的第一字元。該初始字元14因此複製成最後解壓縮序列作為該最後第一型解碼子序列的第一解碼字元。
剩餘的後續數字被視為編碼相對位移的移動數字15。它們可使用該相對編碼表20而解碼。
因此第一型編碼子序列11的末端不可能典型地係已知,完全壓縮序列3可經由解碼步驟而處理或預處理,一直到其末端或直到另一第一特定控制字元13被發現於該壓縮序列3中。
當位移指向該相對編碼表20中的第二特定控制字元EoC16時,該解碼步驟可被結束。這指示編碼的末端且因此指示該第一型編碼子序列11的末端,其可被擷取自此事件,使其開頭及末端二者為眾知。
解碼步驟繼續對應於在編碼步驟期間所應用的處理之反向處理。接在該鍵碼14後續的數字被視為編碼連續位移之移動數字15,相對編碼表20中的每一位移界定最後解碼子序列的字元4。
每一移動數字15包含第一座標及第二座標。解碼步驟為每一此種移動數字15重複以下步驟。
解碼步驟界定目前字元,目前位置係該相對編碼表20中之該目前字元的位置,以及目前移動數字15包含第一座標及第二座標。在開始時,第一目前字元係採取等於 該鍵碼14或初始字元14,第一目前位置係採取等於該鍵碼字元14的位置於該相對編碼表20中,以及第一移動數字15係自編碼子序列11發現/擷取的第一移動數字,其係接著該初始字元14的第一數字。
解碼步驟然後自該相對編碼表20中的目前位置應用如第一座標及第二座標之目前對所編碼之位移,其中第一座標表示沿著第一預定方向之行的循環計數,第二座標表示沿著第二預定方向之列的循環計數,以發現表示新解碼字元的新位置。該新解碼字元係在最後解碼字元之後複製至最後解壓縮序列。
這裡可注意的是,位移係應用如對應編碼步驟中的相同方式,除了於編碼步驟中朝向字元的位移21界定二個座標,然而於解碼步驟中二個座標界定結束成字元的位移21。第一及第二預定方向係相同如於編碼步驟中。
如此發現的解碼字元然後係附加在第一型最後解碼子序列中的最後解碼字元之後。
如果該新解碼係該相對編碼表20中的EoC16字元位置,解碼步驟結束。該最後位移/EoC字元係拋棄在於,其不會出現第一型最後解碼子序列/最後解壓縮子序列。
雖然該最近解碼字元不是EoC16,目前字元係更新至該新解碼字元,目前位置係更新至該新解碼字元的對應新位置,以及目前移動數字15係更新至發現於該編碼子序列11中的下一移動數字15及下一對第一座標與第二座標。過程係然後重複以該最近目前字元、目前位置及目前 座標。
此種過程然後允許重複取回已被編碼成該編碼子序列11之所有字元。
依據編碼方案,如果第一座標係選擇於第一組數字中及該第二座標係選擇於第二組數字中,該二組之間沒有共同的數字,以及如果特殊第一座標及/或特殊第二座標已被省略,預處理步驟可被執行以將第一型編碼子序列11中在鍵碼16後附近之數字的序列轉換成移動數字15的序列。該預處理的目標係再引回該省略的特殊第一及/或第二座標。
該預處理步驟可分解成以下步驟。首先,接著該鍵碼16之該編碼子序列11的數字的序列係分開於座標。因此第一及第二座標未選擇於相同組數字中,表示座標的數字立即指出是否為第一座標或第二座標。
特殊座標通常被省略在編碼步驟期間,除了當接下來的一個特殊座標時。因此該編碼子序列11中附近的任何特殊座標指示此種對組態。為恢復到無省略的完全編碼子序列7,每當第一特殊座標係發現於編碼子序列11中時,第二特殊座標係在該第一特殊座標之前插入。同樣地,每當第二特殊座標發現於編碼子序列11中時,第一特殊座標係在該第二特殊座標之前插入。
恢復多個後續特殊座標的這二個步驟係在下二個步驟之前有利地應用。
因為依據特定次序而佈置之第一及/或第二座標在編 碼步驟期間應用在省略之前,其可能決定任何座標由於其省略而遺失。
例如,如果交替第一座標及第二座標的典型次序已在編碼時接著,該編碼子序列11中二個相鄰接續的第一座標表示,第二座標係遺失於它們二者之間。該遺失的第二座標然後可決定為可再插入其間的特殊第二座標。
因此每當二個鄰接的第二座標被發現時,如其數字所表示,第一特殊座標係插入於該二者之間。同樣地,每當二個鄰接的第一座標被發現時,如其數字所表示,第二特殊座標係插入於該二者之間。
於任何例子中,相對編碼表20、用於第一及第二座標之數字的組的選擇、第一及第二計數方向、第一及第二特殊座標係共用於壓縮方法/編碼步驟與解壓縮方法/解碼步驟之間。
依據實施例,相對編碼表20係相同如編碼步驟所使用之8×8正方形矩陣,該第一座標係依據自左至右的行的循環計數選擇於[0..7]的第一範圍,該第二座標係依據自下至上家有8個的列的循環計數選擇於[8..F]的第二範圍,第一特殊座標係0而第二特殊座標係8。
回復到實例,圖2的壓縮序列係解說解壓縮。壓縮序列3的第五第一數字:{22,38,38,38,22}未包含任何第一控制字元13,因此沒有“12”(DC2)存在。依據這是已依據絕對編碼表10以ASCII編碼。
第六數字係“12”(DC2)且因此表示第一型編碼子序列 11的開始。下一數字係“20”。因此它是鍵碼14,其係使用絕對編碼表10而絕對地解釋為“”(或“空格”)字元。
含有編碼連續位移之後續序列係:{41,C5,47,94,F7,C5,E7,E7,49,2F,A1,E1,69,70,B4,C2,2C,C0,31,32,2F,30,...}。
首先,解碼步驟這裡以半位元組將它們分開於座標中,導致:{4,1,C,5,4,7,9,4,F,7,C,5,E,7,E,7,4,9,2,F,A,1,E,1,6,9,7,0,B,4,C,2,2,C,C,0,3,1,3,2,2,F,3,0,...}。
接著,解碼步驟搜尋特殊第一座標,其係“0”,或特殊第二座標,其係“8”。有三個“0”且一個“8”係插入在每“0”之前。無“8”存在。此導致{4,1,C,5,4,7,9,4,F,7,C,5,E,7,E,7,4,9,2,F,A,1,E,1,6,9,7,8,0,B,4,C,2,2,C,C,8,0,3,1,3,2,2,F,3,8,0,...}。
接著,解碼步驟測試任一後續座標是否為相同類型。這是例如,具有二個第一座標的例子,“4”為第一座標,以及“1”亦為第一座標。這表示不存在它們的特殊第二座標“8”。同樣地,第四座標“5”及第六座標“4”二者為第一座標。“8”係插入在它們之間。同樣地,接在“F”之後的“A”可被發現。因此它們二者為第二座標,不存在“0”係插入在它們之間。考慮到所有的出現,這導致:{48,1C,58,48,79,4F,7C,5E,7E,78,49,2F,0A,1E,18,69,78,0B,4C,28,2C,0C,08,08,38,18,38,28,2F,38,0,...},認為第一及第二座標的正常交替。每一位元組/數字然後可 被解釋為包含第一座標及第二座標的移動數字15。
因為鍵碼14係“空格”字元,該相對編碼表20中的第一位置係在第一行第一列上。自此位置,由為“48”的第一移動數字15所界定之位移被應用。該位移係由自左至右的4個行及自上至下的8或0個列所界定,因此表示字元“O”。
起始自該第二字元“O”的第二位置,第二移動數字15係界定自左至右的1個行及自上至下的C或4個列的位移之“1C”,因此表示字元“r”。
相同過程係反覆地應用,且按序提供其它字元:“安吉(ange)語音信箱:on”。最後“空格”字元係由等於“0C”的移動數字15所接著。相同(0)行上及C或4個列的該位移指向EoC16的位置,且因此表示第一型子序列的結束及該“空格”字元係最後字元。
自剩餘數字,接著該“OC”數字且初始地誤認為編碼連續位移的數字:{08,08,38,18,38,28,2F,38,0,...},第一“0”可被辨識為填補字元17且被忽略。其它數字,或取代的其對應數字,以初始形式,在“0”及“8”的再引入之前:{31,32,2F,30,...}可從此以後被視為關於第二型最後子序列12。它們可被解壓縮/複製為:“12/0...”,直到新的第一特定控制字元13被發現,表示新第一型編碼子序列11a的開始且因此亦表示該第二型最後子序列12的結束。
圖5顯示壓縮方法30的可能實施例。該壓縮方法30 以剖析步驟31開始。下一者出現編碼步驟33,由複製步驟40接續。壓縮方法30可以隨意插入結束校驗和步驟41。
隨意檢查步驟32可被插在剖析步驟31及編碼步驟33之間。
編碼步驟33係進一步分成編碼34初始字元的步驟、編碼35每一後續字元的步驟與結束編碼39的步驟。
編碼35每一後續字元的步驟係另分成決定36第一座標步驟、決定37第二座標步驟與連接38步驟。
本揭露亦關於壓縮裝置50,其包含依據壓縮方法的上述實施例的任一者將一串本文字元壓縮成壓縮序列3之機構。
如圖6所述,此種壓縮裝置50包含剖析器51、隨意檢查器52、編碼器53、複製器60及隨意插入器61。該編碼器53進一步包含第一子編碼器54、第二子編碼器55及第三子編碼器59。第二子編碼器55另包含第一決定器56、第二決定器57及連接器58。
圖7顯示解壓縮方法70的可能實施例。該解壓縮方法70以擷取步驟71開始。下一者出現解碼步驟72,由保持步驟83接續,壓縮方法70可以複製步驟84結束。
擷取步驟71及解碼步驟72可進一步分成複製73初始字元步驟、預處理步驟74及解碼80後續數字步驟。
預處理步驟74係另分成分開步驟75、第一插入步驟76、第二插入步驟77、第三插入步驟78與第四插入步驟 79。
解碼80係另分成起動步驟81及重複步驟82。
本揭露亦關於解壓縮裝置90,其包含依據解壓縮方法的上述實施例的任一者將壓縮序列3解壓縮成一字元串之機構。
如圖8所述,此種解壓縮裝置90包含擷取器/解碼器91、保持器103及複製器104。該擷取器/解碼器91進一步包含子複製器93、預處理器94及子解碼器100。該子解碼器100另包含起動器101及重複器102。該預處理器94另包含分開器95、第一插入器96、第二插入器97、第三插入器98及第四插入器99。
前述壓縮及解壓縮方法可依據三個實施例予以使用,提供減小的壓縮比/利益。
依據第一實施例,稱為X,第一型子序列7係使用相對編碼表20予以編碼以及無校驗和被加入。該實施例提供最高的壓縮比但較少安全。
依據第二實施例,稱為Y,第一型子序列7係使用相對編碼表20予以編碼以及校驗和18被加入。該實施例提供較少的壓縮比但更安全,因為該校驗和18可容許偵測錯誤。
依據第三實施例,稱為Z,第一型子序列7未被編碼。否則寫入,無第一型子序列自原始序列2擷取,或任一原始序列2被視為單第二型子序列。該實施例提供最小的壓縮比,但為最安全。
依據全球策略,包括性的壓縮方法/裝置及解壓縮方法/裝置二者,該三個實施例可有利地結合。
X、Y及Z中的實施例係議定於壓縮方法及解壓縮方法之間,例如,藉由加至所傳輸的壓縮序列3之碼。依據已偵測到的其中任一錯誤,壓縮器及解壓縮器結合地選擇三個模式X、Y或Z的一者。
取決於該等錯誤的數量,例如,相較於臨界值,全球策略可選擇以改變目前實施例。如果太多錯誤存在,全球策略可試著藉由選擇提供增強的安全性在較小壓縮比的價格之新實施例以減少錯誤的數量。反而,如果太少錯誤存在,全球策略可試著藉由選擇提供增大的壓縮比之新實施例以增大壓縮比。
2‧‧‧序列
3‧‧‧序列
7‧‧‧第一第一型子序列
7a‧‧‧第二第一型子序列
8‧‧‧第一第二型子序列
8a‧‧‧第二第二型子序列
11‧‧‧第一型編碼子序列
11a‧‧‧第一型編碼子序列
12‧‧‧第二型最後子序列
13‧‧‧第一特定控制字元
14‧‧‧第一字元
15‧‧‧移動數字
16‧‧‧第二特定控制字元
17‧‧‧填補字元
18‧‧‧校驗和
19‧‧‧校驗和

Claims (26)

  1. 一種用於壓縮字元串的方法,依據絕對編碼表(10),該字元串由字元(4)的原始有序序列(2)所初始地界定,每一字元由獨特地代表每一字元(4)的絕對數字(5)所代表,包含以下步驟:將該原始序列(2)剖析(31)成包含鄰接字元的至少一個第一型子序列(7),且成包含鄰接剩餘字元的至少一個第二型子序列(8),該第一型子序列(7)的鄰接字元的每一者匹配相對編碼表(20)中對應的字元,使用該相對編碼表(20)編碼(33)每一第一型子序列(7),自該壓縮序列(3)中的每一第二型子序列(8)複製(40)每一字元(4),每一字元係自該絕對編碼表(10)由其絕對代表數字(5)所代表。
  2. 如申請專利範圍第1項的方法,其中第一型子序列(7)的編碼(33)包含以下步驟:自該絕對編碼表(10)由其原始絕對代表數字(5)將該子序列的初始字元(14)編碼(34)作為鍵碼(14),藉由編碼該相對編碼表(20)中的位移(21),編碼(35)接著該子序列(7)中的該初始字元(14)之每一字元於先於該字元的字元及該字元之間,及在該子序列(7)中的最後字元之後,藉由向該相對編碼表(20)中的第二特定控制字元(16)編碼位移(21),表示編碼的末端結束該第一型子序列(7)的編 碼(39)。
  3. 如申請專利範圍第1或2項的方法,另包含以下步驟:將計算自該原始序列(2)的校驗和(18、19)插入(41)該壓縮序列(3)。
  4. 如申請專利範圍第2或3項的方法,其中該相對編碼表(20)中的位移(21)於前面字元及後續字元之間的編碼(35)包含以下步驟:決定(36)第一座標,沿著第一預定方向分開該相對編碼表(20)中的該前面字元及該後續字元,決定(37)第二座標,沿著第二預定方向分開該相對編碼表(20)中的該前面字元及該後續字元,按序連接(38)所有決定的座標成壓縮序列(3)。
  5. 如申請專利範圍第4項的方法,其中該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,其中無數字係共用於該第一數字集中及該第二數字集中之間,以及其中該第一集中的一個第一特殊座標及第二集中的一個第二特殊座標係省略於壓縮序列(3)中,除了當二個特殊座標係緊跟隨時,於此例中該後續特殊座標未省略。
  6. 如申請專利範圍第1至5項的任一項的方法,其中該相對編碼表(20)係以最頻繁字元填充,如將壓縮的字元串中所預期。
  7. 如申請專利範圍第1至6項的任一項的方法,其 中該相對編碼表(20)係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的第一座標,以及第二特殊座標係對應於零分開列的第二座標。
  8. 如申請專利範圍第1至7項的任一項的方法,另包含以下步驟於剖析步驟及編碼步驟之間:如果經由編碼步驟所獲得之編碼子序列(11)係短於原始子序列(7),檢查每一第一型子序列(7),及如果不是,將該第一型子序列(7)視為第二型子序列。
  9. 一種用於將壓縮的序列(3)解壓縮成字元串的方法,依據絕對編碼表(10),該字元串由字元(4)的最後有序序列(2)所界定,每一字元由獨特地代表每一字元(4)的絕對數字(5)所代表,包含以下步驟:自該壓縮的序列(3)擷取(71)鄰接數字的至少一個編碼的子序列(11),使用相對編碼表(20)將該編碼的子序列(11)解碼(72)成最後解碼的子序列(7),保持(83)剩餘數字,及使用該絕對編碼表(10)將每一剩餘數字複製(84)成解壓縮的序列(2)作為由絕對數字所代表的字元。
  10. 如申請專利範圍第9項的方法,其中擷取(71)及解碼(72)步驟另包含以下步驟: 依據該絕對編碼表(10),複製(73)該最後解碼子序列(2)中的初始數字(14)作為由該絕對數字所代表的字元,預處理(74)該編碼子序列(11)中接著該初始數字(14)的後續數字,解碼(80)該相對編碼表(20)中的後續數字作為相對位移(21),一直到位移指向該相對編碼表(20)中的第二特定控制字元(16),表示編碼的末端,且因此表示該編碼子序列(11)的末端。
  11. 如申請專利範圍第10項的方法,其中解碼(80)後續數字步驟另包含以下步驟:以是該初始字元(14)的目前字元起動(81),目前位置係該相對編碼表(20)中的該初始字元(14)的位置,及目前座標對係該編碼子序列(11)中的第一對第一座標及第二座標,重複(82)後續步驟,直到新位置指向該相對編碼表(20)中的第二特定控制字元(16):自該相對編碼表(20)中的目前位置應用如由該目前對第一座標及第二座標所編碼之位移(21),該第一座標表示沿著第一預定方向之行的循環計數,該第二座標表示沿著第二預定方向之列的循環計數,以發現表示新解碼的字元的新位置,複製該新解碼的字元在該解碼的最後子序列(7)中的該目前字元之後,及 更新該目前字元成該新解碼的字元,更新該目前位置成該新位置,更新該目前座標對成該編碼的子序列(11)中的下一對第一座標及第二座標。
  12. 如申請專利範圍第10或11項的方法,其中該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,其中無數字係共用於該第一數字集中及該第二數字集中之間,其中該預處理步驟(74)後續數字步驟另包含以下步驟:將該等後續數字分開(75)成座標,插入(76)第一特殊座標在任何第二特殊座標之前,插入(77)第二特殊座標在任何第一特殊座標之前,插入(78)第一特殊座標於任何二個鄰接第二座標之間,插入(79)第二特殊座標於任何二個鄰接第一座標之間。
  13. 如申請專利範圍第10至12項的任一項的方法,其中該相對編碼表(20)係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的第一座標,以及第二特殊座標係對應於零分開列的第二座標。
  14. 一種用於壓縮字元串成壓縮的序列(3)的壓縮器(50),依據絕對編碼表(10),該字元串由字元(4)的原始有序序列(2)所初始地界定,每一字元由獨 特地代表每一字元(4)的絕對數字(5)所代表,包含:剖析器(51),用於剖析該原始序列(2)成包含鄰接字元的至少一個第一型子序列(7),且成包含鄰接剩餘字元的至少一個第二型子序列(8),該第一型子序列(7)的鄰接字元的每一者係基於相對編碼表(20)中的對應字元予以選擇,編碼器(53),用於使用該相對編碼表(20),編碼每一第一型子序列(7),複製器(60),用於自該壓縮的序列(3)中的每一第二型子序列(8)複製每一字元(4),每一字元係自該絕對編碼表(10)由其絕對代表數字(5)所代表。
  15. 如申請專利範圍第14項的壓縮器,其中該編碼器(53)另包含:第一子編碼器(54),用於自該絕對編碼表(10)由原始絕對代表數字(5)編碼該子序列的初始字元(14)作為鍵碼(14),第二子編碼器(55),用於藉由編碼該相對編碼表(20)中的位移(21),編碼接著該子序列(7)中的該初始字元(14)之每一字元於先於該字元的字元及該字元之間,及第三子編碼器(59),用於在該子序列(7)中的最後字元之後,藉由向該相對編碼表(20)中的第二特定控制字元(16)編碼位移(21),表示編碼的末端結束該第一型子序列(7)的編碼。
  16. 如申請專利範圍第14或15項的壓縮器,另包含:插入器(61),用於將計算自該原始序列(2)的校驗和(18、19)插入該壓縮的序列(3)。
  17. 如申請專利範圍第14至16項的任一項的壓縮器,其中該第二子編碼器(55)另包含:第一決定器(56),用於決定第一座標,沿著第一預定方向分開該相對編碼表(20)中的該前面字元及該後續字元,第二決定器(57),用於決定第二座標,沿著第二預定方向分開該相對編碼表(20)中的該前面字元及該後續字元,連接器(58),用於按序連接所有決定的座標成壓縮的序列(3)。
  18. 如申請專利範圍第17項的壓縮器,其中該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,其中無數字係共用於該第一數字集中及該第二數字集中之間,以及其中該第一集中的一個第一特殊座標及第二集中的一個第二特殊座標係省略於壓縮的序列(3)中,除了當二個特殊座標係緊跟隨時,於此例中該後續特殊座標未省略。
  19. 如申請專利範圍第14至18項的任一項的壓縮器,其中該相對編碼表(20)係以最頻繁字元填充,如將壓縮的字元串中所預期。
  20. 如申請專利範圍第14至19項的任一項的壓縮器,其中該相對編碼表(20)係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的第一座標,以及第二特殊座標係對應於零分開列的第二座標。
  21. 如申請專利範圍第14至20項的任一項的壓縮器,另包含檢查器(52),用於如果經由編碼步驟將獲得之編碼子序列(11)係短於原始子序列(7),檢查每一第一型子序列(7),及如果不是,將該第一型子序列(7)視為第二型子序列。
  22. 一種用於將壓縮的序列(3)解壓縮成字元串的解壓縮器,依據絕對編碼表(10),該字元串由字元(4)的最後有序序列(2)所界定,每一字元由獨特地代表每一字元(4)的絕對數字(5)所代表,包含:擷取器(91),用於自該壓縮的序列(3)擷取鄰接數字的至少一個編碼的子序列(11),解碼器(91),用於使用相對編碼表(20)將該編碼的子序列(11)解碼成最後解碼的子序列(7),保持器(103),用於保持剩餘數字,及複製器(104),用於使用該絕對編碼表(10)將每一剩餘數字複製成解壓縮的序列(2)作為由絕對數字所代表的字元。
  23. 如申請專利範圍第22項的解壓縮器,其中該擷取器及解碼器另包含:子複製器(93),用於依據該絕對編碼表(10),複製該最後解碼子序列(2)中的初始數字(14)作為由該絕對數字所代表的字元,預處理器(94),用於預處理該編碼子序列(11)中接著該初始數字(14)的後續數字,子解碼器(100),用於解碼該相對編碼表(20)中的後續數字作為相對位移(21),一直到位移指向該相對編碼表(20)中的第二特定控制字元(16),表示編碼的末端,且因此表示該編碼子序列(11)的末端。
  24. 如申請專利範圍第22或23項的解壓縮器,其中該子解碼器(100)另包含:起動器(101),用於起動以是該初始字元(14)的目前字元,目前位置係該相對編碼表(20)中的該初始字元(14)的位置,及目前座標對係該編碼子序列(11)中的第一對第一座標及第二座標,重複器(102),用於重複以下步驟,直到新位置指向該相對編碼表(20)中的第二特定控制字元(16):自該相對編碼表(20)中的目前位置,應用如由該目前對的第一座標及第二座標所編碼之位移(21),該第一座標表示沿著第一預定方向之行的循環計數,該第二座標表示沿著第二預定方向之列的循環計數,以發現表示新解碼的字元的新位置, 複製該新解碼的字元在該解碼的最後子序列(7)中的該目前字元之後,及更新該目前字元成該新解碼的字元,更新該目前位置成該新位置,更新該目前座標對成該編碼的子序列(11)中的下一對第一座標及第二座標。
  25. 如申請專利範圍第22至24項的任一項的解壓縮器,其中該等第一座標係選擇於第一數字集中及該等第二座標係選擇於第二數字集中,其中無數字係共用於該第一數字集中及該第二數字集中之間,其中該預處理器(94)另包含:分開器(95),用於將該等後續數字分開成座標,第一插入器,用於插入第一特殊座標在任何第二特殊座標之前,第二插入器,用於插入第二特殊座標在任何第一特殊座標之前,第三插入器,用於插入第一特殊座標於任何二個鄰接第二座標之間,第四插入器,用於插入第二特殊座標於任何二個鄰接第一座標之間。
  26. 如申請專利範圍第22至25項的任一項的解壓縮器,其中該相對編碼表(20)係8×8矩陣,該第一座標係依據自左至右的行的循環計數選於[0..7]的第一範圍中,該第二座標係依據自上至下加有8列之列的循環計數選於[8..F]的第二範圍中,第一特殊座標係對應於零分開行的 第一座標,以及第二特殊座標係對應於零分開列的第二座標。
TW102134301A 2012-10-09 2013-09-24 安全及無損失的資料壓縮 TW201440442A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP12306230.9A EP2720376A1 (en) 2012-10-09 2012-10-09 Secure and lossless data compression

Publications (1)

Publication Number Publication Date
TW201440442A true TW201440442A (zh) 2014-10-16

Family

ID=47115675

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102134301A TW201440442A (zh) 2012-10-09 2013-09-24 安全及無損失的資料壓縮

Country Status (8)

Country Link
US (1) US9740720B2 (zh)
EP (1) EP2720376A1 (zh)
JP (1) JP5913748B2 (zh)
KR (1) KR101667240B1 (zh)
CN (1) CN104813588A (zh)
IN (1) IN2015DN02821A (zh)
TW (1) TW201440442A (zh)
WO (1) WO2014056703A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107770540B (zh) * 2016-08-21 2024-01-09 上海天荷电子信息有限公司 融合多种具有不同参考关系的基元的数据压缩方法和装置
KR102003878B1 (ko) * 2017-05-29 2019-10-01 주식회사 스마트코어 디바이스 간의 데이터 맵을 이용한 데이터 전송 방법 및 장치
CN112749139B (zh) * 2020-12-30 2024-04-19 咪咕文化科技有限公司 日志文件处理方法、电子设备及存储介质
CN113162628B (zh) * 2021-04-26 2022-03-18 深圳希施玛数据科技有限公司 一种数据编码方法、数据解码方法、终端和存储介质
CN116665836B (zh) * 2023-07-26 2023-10-27 国仪量子(合肥)技术有限公司 序列数据的编辑存储方法、读取播放方法和电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4929946A (en) * 1989-02-09 1990-05-29 Storage Technology Corporation Adaptive data compression apparatus including run length encoding for a tape drive system
JPH0580972A (ja) * 1991-09-19 1993-04-02 Nec Corp データ圧縮装置
JPH0969785A (ja) * 1995-08-30 1997-03-11 Toshiba Corp データ圧縮方法及びデータ圧縮装置
US8356019B1 (en) * 2002-12-11 2013-01-15 Altera Corporation Method and apparatus for utilizing patterns in data to reduce file size
CN101095284B (zh) * 2004-12-28 2012-04-18 卡西欧电子工业株式会社 用于有选择地压缩和解压缩数据的设备与方法
US7653643B2 (en) * 2005-03-24 2010-01-26 Microsoft Corporation Method and apparatus for compressing a data set
JP2007274183A (ja) * 2006-03-30 2007-10-18 Toshiba Corp データ伝送システム及びデータ送・受信装置
CN101090273A (zh) 2006-06-13 2007-12-19 北京凯诚高清电子技术有限公司 独立16通道音频编解码算法
US9195695B2 (en) * 2006-09-15 2015-11-24 Ibm International Group B.V. Technique for compressing columns of data
US7769729B2 (en) * 2007-05-21 2010-08-03 Sap Ag Block compression of tables with repeated values
DE102010006931A1 (de) * 2010-02-04 2011-08-04 Bienert, Jörg, 50354 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen
JP4953145B2 (ja) * 2010-08-02 2012-06-13 Necシステムテクノロジー株式会社 文字列データ圧縮装置及びその方法並びに文字列データ復元装置及びその方法
US9390099B1 (en) * 2011-03-29 2016-07-12 Emc Corporation Method and apparatus for improving a compression ratio of multiple documents by using templates
EP2727247B1 (en) * 2011-06-30 2017-04-05 Openwave Mobility, Inc. Database compression system and method
US20130262412A1 (en) * 2012-03-28 2013-10-03 Brett Derek Hawton Method and System For Database Transaction Log Compression On SQL Server

Also Published As

Publication number Publication date
US20150242448A1 (en) 2015-08-27
KR101667240B1 (ko) 2016-10-18
US9740720B2 (en) 2017-08-22
JP5913748B2 (ja) 2016-04-27
JP2015534795A (ja) 2015-12-03
IN2015DN02821A (zh) 2015-09-11
KR20150067342A (ko) 2015-06-17
WO2014056703A1 (en) 2014-04-17
EP2720376A1 (en) 2014-04-16
CN104813588A (zh) 2015-07-29

Similar Documents

Publication Publication Date Title
CN106570356B (zh) 基于Unicode编码的文本水印嵌入及提取方法
US10090857B2 (en) Method and apparatus for compressing genetic data
CN109657769B (zh) 一种基于游程编码的二维码信息隐藏方法
US20180375527A1 (en) Methods and apparatus to parallelize data decompression
TW201440442A (zh) 安全及無損失的資料壓縮
KR101678223B1 (ko) 멀티미디어 서명 코딩 및 디코딩
US7254250B2 (en) Watermark embedding and extraction method and apparatus in compressed streams
KR101969848B1 (ko) 유전자 데이터를 압축하는 방법 및 장치
TW538599B (en) A method of performing Huffman decoding
JP2000513164A (ja) 誤り保護付き可変長コーディング
CN101783788A (zh) 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
CN105306063A (zh) 一种记录型数据存储空间的优化与恢复方法
CN101222637A (zh) 具有特征标志的编码方法
CN110518917A (zh) 基于Huffman编码的LZW数据压缩方法及系统
CN110867213B (zh) 一种dna数据的存储方法和装置
CN103702133A (zh) 一种图像压缩展示方法及其装置
RU2386210C2 (ru) Способ сжатия данных
CN107623855A (zh) 一种基于压缩编码的高嵌入率数据隐写装置及隐写方法
CN103313053B (zh) 一种面向视觉对象的形状编码方法
JPH10164374A (ja) パタン符号化方式及び復号化方式とこの方式を用いた符号化装置及び復号化装置
Wu et al. Zero-error watermarking on jpeg images by shuffling Huffman tree nodes
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
van der Meer et al. JPEG File Fragmentation Point Detection using Huffman Code and Quantization Array Validation
CN104424617B (zh) 一种处理图像的方法和装置
KR20090050325A (ko) 전문 및 이미지 압축 방법 및 장치