TWI384377B - 資料編碼及解碼方法 - Google Patents
資料編碼及解碼方法 Download PDFInfo
- Publication number
- TWI384377B TWI384377B TW097147171A TW97147171A TWI384377B TW I384377 B TWI384377 B TW I384377B TW 097147171 A TW097147171 A TW 097147171A TW 97147171 A TW97147171 A TW 97147171A TW I384377 B TWI384377 B TW I384377B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- bytes
- value
- data block
- substitute
- Prior art date
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本發明是有關於一種資料編碼及解碼方法,且特別是有關於一種取代特定字元之資料編碼及解碼方法。
一般而言,在處理資料之過程中,有某些數值係被定義為具有特殊機制。舉例來說,於C語系中,字串係為一零結束字串(zero-terminated string),也就是以NULL(”\0”)字元作為此字串之結尾,其中NULL字元之二元值係為”0”。因此,於轉換二元資料為字串型別之過程中,當遇到二元值為”0”之位元時,此字串即會中斷並被判定為結束。然而,二元資料係相當容易出現”0”,如此一來,便使得二元資料轉換為字串型別之過程中,字串常常會不適當地被中斷,並造成被中斷之字元後的資料遺失。
基於防止字串被中斷之情況產生,目前已有多種資料編碼方法被提出。請參照第1圖,其繪示執行傳統之編碼方法之資料之模擬圖之一例。編碼前之資料A之九個位元組之數值分別為”0”,”0”,”1”,”2”,”0”,”3”,”5”,”0”,”4”。編碼後之資料e(A)之十個位元組之數值分別為”5”,”1”,”2”,”5”,”8”,”1”,”2”,”3”,”5”,”4”。其中,資料e(A)之第一個位元組用以表示編碼前之資料A之”0”的個數加1,也就是”5”。資料e(A)之第二至第五個位元組用以記錄數值為”0”之位元組位置。資料e(A)之第六至第十個
位元組用以依序記錄資料A中”非0”之位元組之數值。
然而,此種記錄數值為”0”之位元組位置之方法中,需於資料e(A)解碼成資料A的過程中產生一陣列,並讀取資料e(A)之第一個位元組以獲得資料A之數值為”0”之位元組個數。之後,讀取資料e(A)之第二至第五個位元組以獲得資料A之數值為”0”之位元組位置。接著,再將資料e(A)之第六至第十個位元組之數值依序地寫至資料A之”非0”之位元組位置。如此一來,係增加解碼的複雜度,並降低解碼效率。
本發明係有關於一種資料編碼及解碼方法,係將資料區塊中不期望出現之特定數值置換為資料區塊中未出現之替代數值,以使得處理資料之過程中不會產生資料遺失之情況產生。
根據本發明之第一方面,提出一種資料編碼方法。此資料具有多個位元組,且每個位元組具有n個位元。資料編碼方法包括以下步驟。首先,定義一特定數值。之後,將資料劃分為一個或多個資料區塊。每個資料區塊具有m個位元組,其中,m≦2n
-2。接著,分別自每個資料區塊中獲得未出現在此m個位元組中之一替代數值。替代數值係不等於特定數值。然後,分別將每個資料區塊之m個位元組中為特定數值之位元組置換成替代數值。其次,分別於每個資料區塊之起始位置增加一起始位元組,並於起始位
元組存放替代數值,以分別獲得編碼後之資料區塊。其中,編碼後之每個資料區塊具有m+1個位元組。
根據本發明之第二方面,提出一種資料解碼方法。此資料具有多個資料區塊。每個資料區塊具有m+1個位元組,每個位元組具有n個位元,其中,m≦2n
-2。資料解碼方法包括以下步驟。首先,定義一特定數值。接著,分別讀取每個資料區塊之一起始位元組以獲得一替代數值。其次,分別將每個資料區塊之起始位元組後之m個位元組中,為替代數值之位元組置換成特定數值。然後,釋放每個資料區塊之起始位元組,以分別獲得解碼後之資料區塊。其中,每個資料區塊具有m個位元組。
為讓本發明之上述內容能更明顯易懂,下文特舉一較佳實施例,並配合所附圖式,作詳細說明如下:
本發明係有關於一種資料編碼及解碼方法。資料編碼方法係用以對具有多個位元組之一資料進行編碼。每個位元組具有n個位元。資料編碼方法包括以下步驟。首先,定義一特定數值。之後,將資料劃分為一個或多個資料區塊。每個資料區塊具有m個位元組,其中,m≦2n
-2。接著,分別自每個資料區塊中獲得未出現在此m個位元組中之一替代數值。替代數值係不等於特定數值。然後,分別將每個資料區塊之m個位元組中為特定數值之位元組置換成替代數值。其次,分別於每個資料區塊之起始位置增加一起
始位元組,並於起始位元組存放替代數值,以分別獲得編碼後之資料區塊。其中,編碼後之每個資料區塊具有m+1個位元組。
資料解碼方法係用以對具有多個資料區塊之一資料進行解碼。每個資料區塊具有m+1個位元組,每個位元組具有n個位元,其中m≦2n
-2。資料解碼方法包括以下步驟。首先,定義一特定數值。接著,分別讀取每個資料區塊之一起始位元組以獲得一替代數值。其次,分別將每個資料區塊之起始位元組後之m個位元組中,為替代數值之位元組置換成特定數值。然後,釋放每個資料區塊之起始位元組,以分別獲得解碼後之資料區塊。其中,每個資料區塊具有m個位元組。以下茲舉一實施例說明本發明之資料編碼及解碼方法。
資料編碼方法
請同時參照第2及第3圖,第2圖繪示依照本發明較佳實施例之資料編碼方法之流程圖之一例,第3圖繪示執行第2圖之資料編碼方法之資料之模擬圖之一例。資料編碼方法係用以對資料D1進行編碼,如第3圖所示。資料D1具有多個位元組,且每個位元組具有n個位元。因此,每個位元組之數值可為”0”至”(2n
-1)”之任一。在此,係以n=8為例做說明。換言之,每個位元組之數值可為”0”至”255”之任一。
資料編碼方法係包括以下步驟。首先,如步驟S210
所示,定義特定數值為”0”。之後,如步驟S220所示,將資料D1劃分為一個或多個資料區塊,且每個資料區塊具有254(28
-2)個位元組。為了方便說明,第3圖係以資料D1劃分出一個資料區塊B1為例作說明,其中資料區塊B1之254個位元組11~1254分別為”0”,”0”,”2”,”6”,...,”0”。
接著,如步驟S230所示,分別自每個資料區塊B1中獲得未出現在位元組11~1254中之替代數值,且替代數值係不等於特定數值”0”。較佳地,替代數值係為未出現在位元組11~1254中之最小數值。於本實施例中,未出現在位元組11~1254中之最小數值為”1”,故在此替代數值係以”1”為例作說明。
然後,如步驟S240所示,分別將每個資料區塊B1之位元組11~1254中,為特定數值”0”之位元組11、12及1254置換成替代數值”1”,以獲得置換後之資料區塊B2。其中,資料區塊B2之254個位元組21~2254分別為”1”,”1”,”2”,”6”,...,”1”。
其次,如步驟S250所示,分別於每個置換後之資料區塊B2之起始位置增加一起始位元組30,並於起始位元組30存放替代數值”1”,以獲得編碼後之資料區塊B3,其中每個資料區塊B3具有255個位元組30~3254,如第3圖所示。如此一來,編碼後之資料區塊B3將不具有特定數值”0”,以使二元資料D1轉換為字串型別之過程中防止字串不適當地被中斷,並可防止資料遺失之情況產生。
於本實施例中,特定數值雖以”0”為例做說明,然並
不限定於此。於其他實施例中,特定數值係為任何不期望出現之數值。
值得注意的是,由於從資料D1所劃分出之資料區塊B1具有254個位元組11~1254,且每個位元組11~1254之數值可為”0”至”255”之任一。因此,於數值”0”至”255”中,至少會有二個數值不會出現在位元組11~1254中。如此一來,即便數值”0”未出現於位元組11~1254,仍會有另一個數值不會出現於位元組11~1254中,因此可將此未出現於位元組11~1254中之非”0”數值作為替代數值。
此外,於本實施例中,資料區塊B1係以具有254個位元組為例作說明,以使得資料D1所劃分出之資料區塊之個數為最少,然並非用以限定本發明。於其他實施例中,資料區塊B1係具有253個或253個以下之位元組。再者,由於資料D1之位元組個數可能不為254的倍數,而使得從資料D1所劃分出之最後一個資料區塊之位元組個數少於254個,再或者,資料D1只劃分出一個資料區塊B1,然此係不會影響本發明之資料編碼方法。
除此之外,於步驟S230中,例如是建立一表格,以分別統計出數值”0”至”255”於資料區塊B1之位元組11~1254中之出現次數,並自表格中獲得未出現之數值,以將此數值作為替代數值。
資料解碼方法
請同時參照第3圖及第4圖,第4圖繪示依照本發明
較佳實施例之資料解碼方法之流程圖之一例。首先,如步驟S410所示,定義特定數值”0”。
接著,如步驟S420所示,分別讀取資料區塊B3之起始位元組30以獲得替代數值”1”,如第3圖所示。其次,如步驟S430所示,分別將每個資料區塊B3之起始位元組30後之254個位元組31~3254中,為替代數值”1”之位元組31、32及3254置換成特定數值”0”。然後,如步驟S440所示,釋放每個資料區塊之起始位元組30,以分別獲得解碼後之資料區塊B1。其中,每個資料區塊B1具有254個位元組21~2254。
本實施例上述第2及第4圖之之資料編碼方法及解碼方法之步驟及順序係可依據實際應用狀況進行修飾與調整。
本發明上述實施例所揭露之資料編碼及解碼方法,係將資料劃分為多個資料區塊,並將每個資料區塊中二元值為特定數值之位元組置換成未出現過之替代數值,並於每個資料區塊之起始位置增加用以存放替代數值之起始位元組,以獲得編碼後之資料。如此一來,編碼後之資料將不具有特定數值,故不期望出現之數值將不會存在於編碼後之資料。因此,於轉換二元資料為零結束字串型別之過程中,字串將不會不適當地被中斷,亦不會產生資料遺失之情況。
再者,本發明之資料解碼方法僅需分別讀取記錄於資料區塊之起始位元組之替代數值,並將資料區塊中為替代
數值之位元組置換成特定數值,即可完成解碼方法。因此,相較於傳統之記錄數值為”0”之位元組位置之方法中,本發明之資料解碼方法具有解碼速度快之優點。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
11~1254、21~2254、30~3254‧‧‧位元組
B1、B2、B3‧‧‧資料區塊
D1‧‧‧資料
第1圖繪示執行傳統之編碼方法之資料之模擬圖之一例。
第2圖繪示依照本發明較佳實施例之資料編碼方法之流程圖之一例。
第3圖繪示執行第2圖之資料編碼方法之資料之模擬圖之一例。
第4圖繪示依照本發明較佳實施例之資料解碼方法之流程圖之一例。
S210~S250‧‧‧步驟
Claims (9)
- 一種資料編碼方法,該資料具有複數個位元組,且各該位元組具有n個位元,該資料編碼方法包括:a.定義一特定數值;b.將該資料劃分為一個或複數個資料區塊,各該資料區塊具有m個位元組,其中,m≦2n -2;c.分別自各該資料區塊中獲得未出現在該m個位元組中之一替代數值,且該替代數值係不等於該特定數值;d.分別將各該資料區塊之該m個位元組中為該特定數值之該些位元組置換成該替代數值;以及e.分別於各該資料區塊之起始位置增加一起始位元組,並於該起始位元組存放該替代數值,以分別獲得編碼後之該資料區塊;其中,編碼後之各該資料區塊具有m+1個位元組。
- 如申請專利範圍第1項所述之資料編碼方法,其中該資料係對應至具有一零結束字串(zero-terminated string)形式之字串,且該特定數值係為0。
- 如申請專利範圍第1項所述之資料編碼方法,其中n=8且m=254。
- 如申請專利範圍第1項所述之資料編碼方法,其中於該步驟c中,係建立一表格,以分別於該表格中統計出0至(2n -1)於各該資料區塊之該m個位元組中之出現次數,並自該表格中獲得未出現之該數值,以獲得該替代數值。
- 如申請專利範圍第1項所述之資料編碼方法,其中於該步驟c中,係分別自各該資料區塊中找出未出現在該m個位元組中之最小數值,以獲得該替代數值,且該替代數值係不等於該特定數值。
- 一種資料解碼方法,該資料具有複數個資料區塊,各該資料區塊具有m+1個位元組,各該位元組具有n個位元,其中,m≦2n -2,該資料解碼方法包括:a.定義一特定數值;b.分別讀取各該資料區塊之一起始位元組以獲得一替代數值;c.分別將各該資料區塊之該起始位元組後之該m個位元組中,為該替代數值之該些位元組置換成該特定數值;以及d.釋放各該資料區塊之該起始位元組,以分別獲得解碼後之各該資料區塊;其中,解碼後之各該資料區塊具有m個位元組。
- 如申請專利範圍第6項所述之資料解碼方法,其中該資料具有一零結束字串(zero-terminated string)形式,且該特定數值為0。
- 如申請專利範圍第6項所述之資料解碼方法,其中n=8且m=254。
- 如申請專利範圍第6項所述之資料解碼方法,其中該替代數值係為各該資料區塊中未出現在該m個位元組中之最小數值,且該替代數值係不等於該特定數值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097147171A TWI384377B (zh) | 2008-12-04 | 2008-12-04 | 資料編碼及解碼方法 |
US12/464,268 US7843365B2 (en) | 2008-12-04 | 2009-05-12 | Data encoding and decoding methods and computer readable medium thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097147171A TWI384377B (zh) | 2008-12-04 | 2008-12-04 | 資料編碼及解碼方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201022962A TW201022962A (en) | 2010-06-16 |
TWI384377B true TWI384377B (zh) | 2013-02-01 |
Family
ID=42230471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097147171A TWI384377B (zh) | 2008-12-04 | 2008-12-04 | 資料編碼及解碼方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7843365B2 (zh) |
TW (1) | TWI384377B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112861475A (zh) * | 2020-11-03 | 2021-05-28 | 深圳市和讯华谷信息技术有限公司 | 编码、解码处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6369723B1 (en) * | 1998-07-29 | 2002-04-09 | Koninklijke Kpn N.V. | Replacement of special characters in a data stream |
US7280055B2 (en) * | 2005-04-22 | 2007-10-09 | International Business Machines Corporation | Method and apparatus for encoding binary data as a zero terminated string |
US7296211B2 (en) * | 2002-06-25 | 2007-11-13 | Lockheed Martin Corporation | System and method for transferring data on a data link |
TW200844798A (en) * | 2007-04-30 | 2008-11-16 | Jen-Te Chen | Decoding method utilizing temporally ambiguous code and apparatus using the same |
TWI303414B (en) * | 2005-12-21 | 2008-11-21 | Ind Tech Res Inst | A data encoding method for error correcton |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5337233A (en) | 1992-04-13 | 1994-08-09 | Sun Microsystems, Inc. | Method and apparatus for mapping multiple-byte characters to unique strings of ASCII characters for use in text retrieval |
TW472464B (en) | 1999-11-11 | 2002-01-11 | Lg Ind Systems Co Ltd | Method and apparatus for coding information, method and apparatus for decoding coded information, method of fabricating a recording medium, the recording medium and modulated signal |
KR20030019572A (ko) | 2000-07-13 | 2003-03-06 | 콸콤 인코포레이티드 | 최대거리 블록 코딩 방법 |
KR100716956B1 (ko) | 2000-10-11 | 2007-05-10 | 삼성전자주식회사 | 데이터 변조 방법 및 그 검출 방법 |
US6563436B2 (en) | 2001-09-24 | 2003-05-13 | Zenith Electronics Corporation | Kerdock coding and decoding system for map data |
TW566008B (en) | 2001-11-28 | 2003-12-11 | Univ Nat Chiao Tung | Apparatus for solving key equation polynomials in decoding error correction codes |
KR20040054206A (ko) | 2002-12-18 | 2004-06-25 | 삼성전자주식회사 | 복잡도를 줄인 코드 테이블을 사용하는 복조 장치 및 그방법 |
TWI226758B (en) | 2003-11-28 | 2005-01-11 | Mediatek Inc | Encoding method and apparatus for cross interleaved cyclic codes |
US7330137B2 (en) | 2003-12-12 | 2008-02-12 | Mediatek Inc. | Method and apparatus for RLL code encoding and decoding |
TWI240495B (en) | 2004-06-07 | 2005-09-21 | Ind Tech Res Inst | Cyclic redundancy check modification for message length detection and error detection |
US20050289132A1 (en) | 2004-06-24 | 2005-12-29 | Brian Lee | Method and system for converting encoding character set |
GB0421774D0 (en) | 2004-09-30 | 2004-11-03 | Ttp Communications Ltd | Source code protection |
-
2008
- 2008-12-04 TW TW097147171A patent/TWI384377B/zh active
-
2009
- 2009-05-12 US US12/464,268 patent/US7843365B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6369723B1 (en) * | 1998-07-29 | 2002-04-09 | Koninklijke Kpn N.V. | Replacement of special characters in a data stream |
US7296211B2 (en) * | 2002-06-25 | 2007-11-13 | Lockheed Martin Corporation | System and method for transferring data on a data link |
US7280055B2 (en) * | 2005-04-22 | 2007-10-09 | International Business Machines Corporation | Method and apparatus for encoding binary data as a zero terminated string |
TWI303414B (en) * | 2005-12-21 | 2008-11-21 | Ind Tech Res Inst | A data encoding method for error correcton |
TW200844798A (en) * | 2007-04-30 | 2008-11-16 | Jen-Te Chen | Decoding method utilizing temporally ambiguous code and apparatus using the same |
Also Published As
Publication number | Publication date |
---|---|
US20100141486A1 (en) | 2010-06-10 |
TW201022962A (en) | 2010-06-16 |
US7843365B2 (en) | 2010-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101092106B1 (ko) | 데이터 압축 | |
JP4468858B2 (ja) | データ符号化装置、データ符号化方法、プログラム | |
US7511639B2 (en) | Data compression for communication between two or more components in a system | |
KR101737451B1 (ko) | 데이터 압축 동안의 대안적 인코딩 솔루션들 평가 | |
CN110867213B (zh) | 一种dna数据的存储方法和装置 | |
WO2023130676A1 (zh) | 1型2型分段纠错内码的dna存储级联编码与解码方法 | |
CN111510156A (zh) | 一种基于分段的哈夫曼动态压缩及解压大文件的方法 | |
US7385533B2 (en) | Encoder and decoder using run-length-limited code | |
US7898444B2 (en) | Decoding method | |
CN114268323B (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
US6617985B1 (en) | Method and/or apparatus for implementing constraint codes with low error propagation | |
JP4141964B2 (ja) | エラー訂正コードに追加のエラー訂正レイヤを埋め込む方法及び装置 | |
CN116757158B (zh) | 基于半导体存储的数据管理方法 | |
TWI384377B (zh) | 資料編碼及解碼方法 | |
US7804919B2 (en) | Run length limiting apparatus and run length limiting method | |
US20060170578A1 (en) | Techniques for generating modulation codes using running substitutions | |
CN110518915B (zh) | 一种比特位计数编码以及解码方法 | |
CN114866091A (zh) | 基于划分组参考数的差值编码压缩及解压缩方法 | |
TW202226767A (zh) | 應用於鍵樹的編碼方法、應用於鍵樹的解碼方法與電子裝置 | |
CN1476013A (zh) | 具有错误处理的光盘数据读取方法 | |
CN103369311A (zh) | 一种用于防止起始码冲突的方法 | |
CN113271107B (zh) | 一种Huffman硬件解码方法 | |
US20090292699A1 (en) | Nucleotide and amino acid sequence compression | |
JP2006277903A (ja) | 符号化装置、及び復号装置 | |
CN115206430A (zh) | 基于dna的信息编码方法、解码方法及计算机可读存储介质 |