TWI656746B - 編碼器、解碼器、通訊系統及用於編碼資料之方法 - Google Patents
編碼器、解碼器、通訊系統及用於編碼資料之方法 Download PDFInfo
- Publication number
- TWI656746B TWI656746B TW103137315A TW103137315A TWI656746B TW I656746 B TWI656746 B TW I656746B TW 103137315 A TW103137315 A TW 103137315A TW 103137315 A TW103137315 A TW 103137315A TW I656746 B TWI656746 B TW I656746B
- Authority
- TW
- Taiwan
- Prior art keywords
- bits
- parity
- data
- hamming
- bit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/31—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining coding for error detection or correction and efficient use of the spectrum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
一種編碼器包含:配置為接收複數個資料位元的輸入端;配置為利用漢明編碼操作將資料位元編碼,以產生複數個編碼的資料位元的處理器;以及配置為輸出複數個編碼的資料位元的輸出端,其中處理器配置為相較於對應於標準的漢明碼的編碼的資料位元,減少複數個編碼的資料位元的最大運行長度。
Description
本申請案主張於2013年10月31日向美國專利及商標局提出之美國臨時專利申請號61/898,415「最大轉換漢明碼(Maximal Transition Hamming Codes)」的優先權及效益,其全部公開內容於此併入作為參考。
本發明係有關於編碼器、解碼器、通訊系統以及用於編碼資料的方法。
在資料通訊中,發送器與接收器之間的傳輸可使用漢明碼(Hamming codes,HC)驗證及校正。一般而言,漢明碼藉由包含複數個同位位元而對複數個資料位元提供錯誤偵測及校正,其中同位位元係混合在資料位元之間。
另外,在電子資料通訊中,例如以串列資料連結(serial data link),發送器與接收器之間的通訊可使用時脈回復(clock recovery)或時脈資料回復(clock-data recovery,CDR)過程而同步化。例如,接收器可使用鎖相迴路(phase-locked loop,PLL)從近似頻率參考器中產生時脈(clock),並接著使用時脈資料回復將所產生的訊號相位對準至資料流中的轉換。然而,如果資料運行長度(例如,1s或0s的連續流)由於
不足的轉換數量以供接收器偵測而造成超過特定的長度,時脈訊號的回復可能會失敗。
本發明的實施例的態樣係針對通訊系統及將數位資料的運行長度減少或最小化的方法。於一些實施例中,經修正的漢明編碼操作係應用到數位資料。
根據本發明的一實施例,用於編碼資料之方法包含:於複數個資料位元上使用漢明編碼操作而計算複數個同位位元,以獲得複數個計算的同位位元,並且同位位元中的第一同位位元係使用偶同位而計算,而同位位元中的第二同位位元則使用奇同位而計算;以及輸出資料位元及計算的同位位元。
第二同位位元可為複數個同位位元的序列中的最後同位位元。
第一同位位元可為次於複數個同位位元的序列中的最後同位位元。
漢明編碼操作可對應於HC(127,120),第一同位位元可為第六同位位元而第二同位位元可為第七同位位元。
根據本發明的一實施例,用於編碼資料之方法包含:於複數個資料位元上使用漢明編碼操作而計算複數個同位位元,以獲得複數個計算的同位位元;將計算的同位位元***(interleaving)複數個資料位元,以產生複數個編碼的資料位元;以及重新排列複數個編碼的資料位元,以減少複數個資料位元的資料序列的最大運行長度(maximum run length)。
重新排列複數個編碼的資料位元可包含將在編碼的資料位元的開端的複數個編碼的資料位元的數字移動至複數個編碼的資料位元的最後一個之後的位置。
漢明編碼操作可對應於HC(127,120),並且於編碼的資料位元的開端的複數個編碼的資料位元的數字可包含32位元。
漢明編碼操作可利用奇同位(odd parity)。
根據本發明的一實施例,編碼器包含:配置為接收複數個資料位元的輸入端;配置為利用漢明編碼操作將資料位元編碼以產生複數個編碼的資料位元的處理器;以及配置為輸出複數個編碼的資料位元的輸出端,其中處理器配置為相較於對應於標準的漢明碼的編碼的資料位元,減少複數個編碼的資料位元的最大運行長度。
處理器可以配置為於複數個資料位元上利用漢明編碼操作而計算複數個同位位元,以獲得複數個計算的同位位元,並且同位位元中的第一同位位元利用偶同位而計算,而同位位元中的第二同位位元利用奇同位而計算,其中複數個編碼的資料位元可包含資料位元及計算的同位位元。
處理器可配置為重新排列複數個編碼的資料位元,以減少複數個編碼的資料位元的最大運行長度。
複數個編碼的資料位元可藉由將在編碼的資料位元的開端的複數個編碼的資料位元的數字移動至複數個編碼的資料位元的最後一個之後的位置而重新排列。
漢明編碼操作可對應於HC(127,120),並且於編碼的資料位元的開端的複數個編碼的資料位元的數字包含32位元。
根據本發明的一實施例,解碼器包含:配置為接收包含複數個資料位元及複數個同位位元的複數個編碼的資料位元的輸入端;配置為修正編碼的資料位元以產生複數個漢明編碼的位元,及利用漢明解碼操作將漢明編碼的位元解碼以產生複數個解碼的位元的處理器;以及配置為輸出複數個解碼的位元的輸出端,其中複數個編碼的資料位元相較於對應於標準的漢明碼的編碼的資料位元,具有減少的運行長度。
處理器可配置為藉由將在編碼的資料位元的開端的複數個編碼的資料位元的數字移動至複數個編碼的資料位元的最後一個之後的位置而重新排列複數個編碼的資料位元而修正編碼的資料位元。
處理器可配置為藉由轉換同位位元中的一個同位位元的值而修正編碼的資料位元。
根據本發明的一實施例,通訊系統包含:資料源;串列連結;耦接於資料源與串列連結之間的編碼器,編碼器包含:配置為從資料源中接收複數個資料位元的輸入端;配置為利用漢明編碼操作將資料位元編碼以產生複數個編碼的資料位元的處理器;以及配置為輸出複數個編碼的資料位元到串列連結的輸出端,其中處理器配置為相較於對應於標準的漢明碼的編碼的資料位元,減少複數個編碼的資料位元的最大運行長度。
處理器可配置為於複數個資料位元上利用漢明編碼操作而計算複數個同位位元,同位位元中的第一同位位元利用偶同位而計算,而同位位元中的第二同位位元則利用奇同位而計算,其中複數個編碼的資料位元包含資料位元及複數個計算的同位位元。
處理器可配置為藉由將在編碼的資料位元的開端的複數個編碼的資料位元的數字移動至複數個編碼的資料位元的最後一個之後的位置以重新排列複數個編碼的資料位元,以減少複數個編碼的資料位元的
最大運行長度。
10‧‧‧漢明編碼器
12‧‧‧同位產生器
12a‧‧‧第一同位產生器
12b‧‧‧第二同位產生器
14‧‧‧多工器
16‧‧‧同位選擇器
20‧‧‧編碼的位元
22‧‧‧修正的編碼位元
24、26‧‧‧修正的漢明編碼位元
40‧‧‧漢明解碼器
100‧‧‧編碼系統
102、152‧‧‧暫存器
104、154‧‧‧選擇器
150、350‧‧‧接收系統
200、250、400、430、450‧‧‧方法
202、204、206、208、252、254、256、258、402、404、406、408、410、412、432、434、436、452、454、456‧‧‧操作
300、330‧‧‧傳輸器
310‧‧‧修正的漢明編碼器
332、352‧‧‧同位位元修正器
K‧‧‧長度
T‧‧‧轉換位元
附圖與說明書一起說明了本發明的例示性實施例,並且與描述一起用於解釋本發明的原理。
第1圖係為說明配置成接收輸入資料並產生漢明編碼資料的組件的示意性方塊圖。
第2圖係為示意地說明具有7個同位位元的漢明120個資料位元(或HC(127,120))的示意圖。
第3圖係為示意地說明根據本發明的一實施例之使用修正的漢明碼所編碼的資料的示意圖。
第4圖係為說明根據本發明的一實施例之配置為使用修正的漢明碼而將資料編碼的編碼系統的方塊圖。
第5圖係為根據本發明的一實施例從編碼的位元20中產生修正的編碼位元22的方法的流程圖。
第6圖係為說明根據本發明的一實施例配置為使用修正的漢明碼將資料解碼的接收系統的方塊圖。
第7圖係為根據本發明的一實施例將資料解碼的方法的流程圖。
第8A圖及第8B圖係為示意地說明根據本發明額外的實施例之使用修正的漢明碼所編碼的資料的示意圖。
第9圖係為說明根據本發明額外的實施例之配置為使用修正
的漢明碼將資料編碼的系統的方塊圖。
第10圖係為根據本發明的另一實施例從輸入資料中計算修正的漢明編碼位元的方法的流程圖。
第11圖係為說明根據本發明的一實施例之配置為輸出修正的漢明編碼位元的傳輸器的示意性方塊圖。
第12圖係為說明根據本發明的一實施例從輸入資料中計算修正的漢明編碼位元的方法的流程圖。
第13圖係為說明根據本發明的一實施例之配置為接收修正的漢明編碼位元的接收器的方塊圖。
第14圖係為說明根據本發明的一實施例之將在修正的漢明編碼中的位元解碼的方法的流程圖。
在以下的詳細描述中,只有本發明的某些例示性實施例會以說明的方式表示及描述。如本領域中的通常知識者將認識到,本發明可以許多不同的形式而實施,並且不應解釋為受限於本文中所闡述的實施例。類似的參考符號於整個說明書中表示類似的元件。
本發明的實施例的態樣係針對通訊系統及在通訊系統中將數位資料的運行長度減小或最小化的方法。
在數位通訊中,發送器及接收器可使用時脈回復或時脈資料回復(CDR)過程而同步化。使用時脈資料回復過程的接收器通常基於偵測的轉換,藉由偵測電壓位準之間的轉換時間及將接收器的時脈進行相位對準而操作。
然而,如果所接收的訊號包含過長的運行長度(例如,具有相同電壓位準的長序列的資料符號),時脈資料回復過程可能會因為在所接收的訊號中不足的轉換數量而失敗,其可導致時脈回復的問題。
另外,在一般的資料通訊中,在發送器與接收器之間的傳輸錯誤可藉由將位元流編碼而偵測及校正。一種此類的編碼技術被稱為漢明碼(Hamming Code,HC),其係藉由在通訊流中包含(或交錯)複數個同位位元而對複數個資料位元提供一個位元錯誤偵測及校正。在標準的漢明碼系統中,這些同位位元係混合在資料位元之間。
第1圖係為說明配置成接收輸入資料並產生漢明碼的漢明編碼器10的示意性方塊圖。漢明編碼器10包含配置為經由耦接到資料源的輸入端而接收資料位元的同位產生器12及多工器14。同位產生器12在資料位元上使用漢明編碼操作而計算同位位元,而多工器14將所產生的同位位元與所接收的資料位元結合,以產生漢明編碼資料。同位產生器12可為偶同位產生器或可為奇同位產生器。多工器14可為,例如,配置成在輸出漢明編碼資料到輸出端之前儲存所產生的同位位元及資料位元的暫存器(例如,耦接到串列連結的串列通訊裝置)。
同位位元的數量(M)係取決於位元流中資料位元的數量(N)。特別是對N個資料位元而言,同位位元的數量M滿足:2M-1-M+1N2M-M-1,其中M=2,3,... (1)
第2圖係為說明通過7個同位位元的120個資料位元的編碼(被稱為HC(127,120))的示意圖。如第2圖中所示,7個同位位元pj(其中j=1,2,...,7)係混合在120個資料位元dk(其中k=1,2,...,120)之間。尤其是在標準的漢明碼中,同位位元係位於二次方的位置上。例如,如第2圖中所示,在標準(127,120)的漢明碼之編碼的位元20中,同位
位元係位於1、2、4、8、16、32及64的位置。轉換位元T(或bT)也可包含在一端,其中轉換位元為係為最後位元的相反。例如,在HC(127,120)中,如果d120=0,則T=1,以及如果d120=1,則bT=0。
在漢明編碼操作中,每個同位位元係在資料位元的特殊集合上基於XOR(互斥或)的操作而計算。例如,p1可在位元流中於每隔一個位元上從XOR操作中計算如下。
p1♁d1♁d2♁d4♁d5♁d7...=f其中♁為XOR操作,並且對於偶同位f為0,而對於奇同位f為1。為了求得p2,藉由保持兩個位元並省略兩個位元而進行類似的XOR操作如下。
p2♁d1♁d3♁d4♁d6♁d7...=f以類似的方式求得其他同位位元。
於一些例子中,利用漢明碼所編碼的資料的傳輸可導致長時間運行。例如,於使用偶同位的HC(127,120)中,如果dk=0其中k=1,2,...,120,則pj=0其中j=1,2,...,7。所以,這個使用偶同位的序列將具有127個連續0s(其中轉換位元bT提供中斷的1)的運行。另外,如果前一訊框的轉換位元為0,運行長度將為128。作為另一個例子,於使用奇同位的HC(127,120)中,dk=0其中k=1,2,...,119及d120=1,則pj=0其中j=1,2,...,7。所以,這個使用奇同位的序列將具有126個連續0s(其中資料位元d120提供中斷的1)的運行。另外,如果前一訊框的轉換位元為0,運行長度將為127。
本發明的實施例係針對通訊系統,以及基於修正的漢明碼(HC)而使用修正的錯誤校正系統使其中傳輸器的輸出端中的轉換數量增加或最大化(例如,其中資料符號的最大運行長度減小)的方法。
第3圖係為產生根據本發明的一實施例的HC(127,120)編碼位元的輸出的修正的編碼位元22的示意圖。參照第3圖,運行長度可藉由重新排列原始編碼位元而減少。例如,原始編碼的位元20的前面的L位元可移動到序列的末端,使得修正的編碼位元22從原始編碼的位元20的最後的K-L(K=M+N為在訊框中的位元總數)位元開始。對於漢明碼HC(127,120),其中K=127,L=32。一般來說,L為pM-1的位置之前(並包含pM-1的位置)的位元數。(於HC(127,120)中,由於M=7,則pM-1=p6其位於位置32並因此L=32。)
例如,當使用奇同位時,同位位元可以通常方式之HC(127,120)而計算,以產生編碼的位元20。然後輸出的前面的32個位元可移動到末端(例如,b1,b2,...,b32,b33,...,b127==>b33,...,b127,b1,b2,...,b32),以產生輸出的修正的編碼位元22。(於一些實施例中,轉換位元係位於最後的位置。)使用此種技術,當dk=0時,其中k=1,2,...,120,可達到95個位元的最大運行長度(例如,b33到b127為95個0s,但是bT為b127的相反,因此bT=1),其係為來自126個位元的標準HC(127,120)的最大運行長度的簡化。
第4圖係為說明根據本發明的一實施例之配置為減少所傳輸資料的運行長度的編碼系統100或傳輸系統(或傳輸器)的示意性方塊圖。編碼系統100包含配置為從輸入端接收資料位元,以在所接收的資料位元上進行漢明編碼操作,並產生漢明編碼輸出的漢明編碼器10(例如,為本領域中通常知識者已知合適的漢明編碼器)、配置為儲存來自漢明編碼器(例如,當使用HC(127,120)時,L=32)的輸出的前面的L個位元的暫存器102、以及配置為選擇性地將漢明編碼器10的輸出的前面的L個位元儲存到暫存器102中,並在前面的L個位元之後輸出剩餘的位元(例如,當使用HC(127,120)時的下一96個位元),以及在輸出剩餘的位
元之後將所儲存的L個位元輸出的選擇器104。例如,選擇器104可包含計數器,以計算從漢明編碼器10所接收的位元數(或計算時脈週期數),以決定何時將輸出位元儲存於暫存器102中(例如,於HC(127,120)中的前面的32個位元)、何時直接地將從漢明編碼器10所接收的位元輸出(例如,於HC(127,120)中的下一95個位元)、以及何時將所儲存的位元輸出(例如,於輸出HC(127,120)中的95個位元之後)。第4圖的方塊圖的不同的組件可使用,例如,處理器、特定應用積體電路(application specific integrated circuit,ASIC)、場效可編程閘極陣列(field programmable gate array,FPGA)及其組合來實施(例如,實施方塊圖的不同部分的不同類型的組件)。
第5圖係為說明根據本發明的一實施例的從編碼的位元20中產生具有減少的運行長度的修正的編碼位元22的方法200的流程圖。於操作202中,具有長度K的漢明編碼的位元20係從漢明編碼器10中接收,漢明編碼器10係在所接收的資料位元上進行漢明編碼操作。接著編碼的位元20的前面的L個位元在操作204中暫存於暫存器102中。在操作206中,編碼的位元20的下一K-L個位元然後作為修正的編碼位元22的第一部分而輸出,並且在操作208中,暫存的L個位元係作為修正的編碼位元22的第二部分而輸出。位元可直接地輸出或可從傳輸器中輸出之前輸出到第二暫存器。
第6圖係為說明根據本發明的一實施例的接收系統(或接收器)150的方塊圖。接收系統150包含用於識別將哪個位元儲存於暫存器152中並配置為將位元輸出到漢明解碼器40的選擇器154,其中漢明解碼器40將解碼的資料輸出。
第7圖係為說明根據本發明的一實施例之將修正的編碼位元
22接收並解碼以回復原始編碼的位元20的方法250的流程圖。在操作252中,接收長度K的修正的編碼位元。在操作254中,所接收的修正的編碼位元的前面的K-L個位元係暫存於暫存器152中。在操作256中,所接收的修正的編碼位元的下一L個位元接著輸出,接著在操作258中將暫存的K-L個位元輸出。輸出位元可在供應到漢明解碼器40之前暫存,以進行漢明解碼操作。
根據本發明的另一實施例,最大運行長度係藉由對最後兩個同位位元使用不同的同位類型(例如,奇位元對上偶位元)而減少或最小化。換言之,在使用M個同位位元的序列的漢明碼中,同位位元的序列中的最後(或最終)同位位元pM係使用第一同位而計算,而同位位元的序列中的次於最後(或倒數第二)同位位元p M-1係使用不同於第一同位的第二同位而計算。第8A圖係為說明根據本發明的一實施例的HC(127,120)編碼位元的輸出的修正的漢明編碼位元24的示意圖,其中最終同位位元pM(於此情況下,p7)係使用奇同位(例如,p7=位元d58至d120的互斥或(XOR)加1,或更簡要地,p7=XOR(d58:d120)♁1)而計算,而倒數第二同位位元p M-1(於此情況下,p6)係使用偶同位(例如,p6=位元d27至d57及位元d89至d120的互斥或(XOR),或更簡要地,p6=XOR(d27:d57,d89:d120))而計算。藉由使用偶同位及奇同位的混合而計算修正的編碼位元的同位位元,可以獲得94個位元的最大運行長度。
第8B圖係為說明根據本發明的再一實施例的HC(127,120)編碼位元的修正的漢明編碼位元24的示意圖,其中同位位元的序列的最終同位位元pM(於此情況下,p7)係使用偶同位(例如,p7=XOR(d58:d120))而計算,而同位位元的序列的倒數第二同位位元p M-1(於此情況下,p6)係使用奇同位(例如,p6=XOR(d27:d57,d89:d120)♁1)而計算。藉由使用偶同位及奇同位的混合而計算修正的編碼位元的同位位元的序列,可以獲
得94個位元的最大運行長度。
根據本發明的實施例,同位位元的序列的其他同位位元p1至p M-2(例如,p1至p5)可具有偶同位或奇同位。同位位元p1至p M-2中的不同的同位位元可以不同的(偶或奇)同位而計算。
第9圖係為說明根據本發明的一實施例之配置為輸出修正的漢明編碼位元24或26的傳輸器300的示意性方塊圖。傳輸器300包含配置為計算修正的漢明碼的修正的漢明編碼器310,修正的漢明編碼器310包含同位選擇器16、第一同位產生器12a、第二同位產生器12b、以及多工器14。於一實施例中,第一同位產生器及第二同位產生器係分別地配置以計算偶同位及奇同位(或進行漢明編碼操作)。同位選擇器16根據所需要的資料位元而識別並供應輸入資料的資料位元到第一同位產生器及第二同位產生器,以計算特定的同位位元。
例如,在實施例中,其中同位位元p7係使用奇同位而計算,而同位位元p6係使用偶同位而計算,同位選擇器16供應資料位元d58:d120到第二同位產生器12b(其配置為計算奇同位)用以計算p7,且同位選擇器16供應資料位元d27:d57及d89:d120到第一同位產生器12a以計算同位位元p6。
第10圖係為說明從輸入資料中計算修正的漢明編碼位元的方法400的流程圖。在操作402中,接收編碼的位元20資料(例如,從輸出通過串列連結所發送的資料的裝置或組件)。在操作404中,識別位元群用以計算同位位元。例如,在HC(127,120)中,位元d58:d120識別為與同位位元p7相關聯,而資料位元d27:d57及d89:d120識別為用於計算同位位元p6。在操作406中,所計算的特定同位位元的同位係識別為偶或奇。例如,於一實施例中,p6係使用偶同位而計算,而p7係使用奇同位而計算。
基於所識別的同位用於特定同位位元,對應於同位位元的資料位元係使用操作408中的偶同位或操作410中的奇同位而計算。例如,當同位位元p6係使用偶同位而計算時,資料位元d27:d57及d89:d120用於計算操作408中同位位元p6的值。在操作412中,所計算的同位位元係與輸出修正的漢明編碼位元24或26中的編碼的位元20資料結合(或交錯)(例如,同位位元pa位於位置2a-1)。
第11圖係為說明根據本發明的另一實施例之配置為輸出修正的漢明編碼位元24或26的傳輸器330的示意性方塊圖。傳輸器330包含配置為計算標準漢明編碼操作(例如,給定一組輸入資料位元d下計算一組M個同位位元p)的標準漢明編碼器10,其中最後兩個同位位元p M-1及pM係使用相同的同位而計算(例如,兩者都使用偶同位而計算或兩者都使用奇同位而計算)。傳輸器330進一步包含同位位元修正器332(或傳輸同位位元修正器),其配置為藉由計算p M-1及1的互斥或(XOR)(例如,將倒數第二同位位元設置為p M-1♁1)而修正倒數第二同位位元p M-1的同位(例如,從偶到奇或從奇到偶)。經修正的位元流然後輸出為修正的漢明編碼位元24或26。
根據本發明的其他實施例,同位位元修正器332係配置為藉由計算pM及1的互斥或(XOR)(例如,將最終同位位元設置為pM♁1)而修正最終同位位元pM的同位。
第12圖係為說明根據本發明的另一實施例從輸入資料中計算修正的漢明編碼位元的方法430的流程圖。在操作432中,接收包含M個同位位元p及N個資料位元d的長度K的漢明編碼位元流。在操作434中,識別倒數第二同位位元p M-1,而在操作436中,顛倒倒數第二同位位元p M-1或以p M-1♁1取代(換句話說,其值係從0至1或從1至0轉換或
顛倒其值)。具顛倒的倒數第二同位位元的修正的漢明編碼位元然後輸出為修正的漢明編碼位元24或26。
於本發明的其他實施例中,在操作434中,識別最終同位位元pM,並且在操作436中,顛倒最終同位位元pM或以pM♁1取代。
第13圖係為說明根據本發明的一實施例的接收器的方塊圖。參照於第13圖,接收系統350包含接收同位位元修正器352,接收同位位元修正器352係配置為藉由計算p M-1及1的互斥或(XOR)(例如,將倒數第二同位位元設置為p M-1♁1)而修正倒數第二同位位元p M-1的同位(例如,從偶到奇或從奇到偶)。接收同位位元修正器352然後供應位元流到將位元流解碼以產生解碼資料的標準漢明解碼器40。在一些實施例中,顛倒最終同位pM,而不是顛倒倒數第二同位位元p M-1。
第14圖係為說明根據本發明的一實施例之將在修正的漢明碼中的位元解碼的方法450的流程圖。在操作452中,接收長度K的修正的漢明編碼位元流。倒數第二同位位元p M-1在操作454中識別,並且在操作456中顛倒或以p M-1及1的互斥或(XOR)的值取代(例如,將倒數第二同位位元設置為p M-1♁1)。此操作的結果係為回復可供應到標準漢明解碼器的標準修正的漢明編碼位元24或26。在一些實施例中,修正最終同位pM,而不是修正倒數第二同位位元p M-1。
藉由混合奇同位及偶同位而可達致減少運行長度的證明可在本申請案向美國專利及商標局所提交的「藉由混合漢明碼中的奇同位及偶同位而減少運行長度(Reduction of Run Length by mixing Odd and Even Parities in Hamming Code)」的附錄中找到。附錄的全部內容於此併入作為參考。
如本領域中的通常知識者將會理解,本發明的實施例可以不
同的方式實施,並且於本文中所使用的術語「處理器(processor)」可表示成任何能夠進行所描述操作的計算裝置,如具有指令儲存在連接到一般用途的處理器的記憶體的編程的一般用途處理器(例如,ARM處理器)、場效可編程閘極陣列(FPGA)、以及訂製的特定應用積體電路(application specific integrated circuit,ASIC)。本發明的實施例可整合成串列通訊控制器(例如,通用串列匯流排(universal serial bus)或USB控制器)、圖形處理單元(graphical processing unit,GPU)、內部面板界面、以及其他使用漢明編碼訊號的硬體或軟體系統。
雖然本發明已結合了數個例示性實施例來描述,但應當理解的是,本發明並不受限於所公開的實施例,而是相反地,旨在涵蓋所附的申請專利範圍的精神及範疇內所包含的各種修改及等效佈置。
Claims (10)
- 一種用於編碼資料之方法,該方法包含:於複數個資料位元上使用一漢明編碼操作而計算複數個同位位元,該複數個同位位元中的一第一同位位元係使用一偶同位而計算,而該複數個同位位元中的一第二同位位元係使用一奇同位而計算;以及依序地輸出該複數個資料位元及該複數個計算的同位位元至一串列連結,該複數個計算的同位位元***該複數個資料位元,其中該第一同位位元在該第二同位位元之前依序地輸出,其中在該第一同位位元和該第二同位位元之間,該複數個資料位元的一第一序列依序地輸出,其中在該第二同位位元之後,該複數個資料位元的一第二序列依序地輸出,以及其中於該第二序列中的該複數個資料位元的一數字大於於該第一序列中的該複數個資料位元的一數字。
- 如申請專利範圍第1項所述之方法,其中該第二同位位元為該複數個同位位元的序列中的最後同位位元。
- 如申請專利範圍第1項所述之方法,其中該第一同位位元為次於該複數個同位位元的序列中的最後同位位元。
- 如申請專利範圍第1項所述之方法,其中該漢明編碼操作對應於具有7個同位位元的漢明120個資料位元(HC(127,120)),該第一同位位元為第六同位位元以及該第二同位位元為第七同位位元。
- 一種編碼器,其包含:一輸入端,配置為接收複數個資料位元;一處理器,配置為利用一漢明編碼操作將該複數個資料位元編碼,以產生複數個編碼的位元;以及一輸出端,配置為依序地輸出該複數個編碼的位元至一串列連結,其中該處理器配置為相較於對應於一標準的漢明碼的該複數個編碼的位元,減少該複數個編碼的位元的一最大運行長度,其中該處理器配置為於複數個資料位元上利用該漢明編碼操作而計算複數個同位位元,該複數個同位位元中的一第一同位位元係使用一偶同位而計算,而該複數個同位位元中的一第二同位位元係使用一奇同位而計算,其中該複數個編碼的位元包含***該複數個資料位元的該複數個同位位元,其中該輸出端配置為在該第二同位位元之前,依序地輸出該第一同位位元,其中該輸出端配置為在該第一同位位元和該第二同位位元之間,依序地輸出該複數個資料位元的一第一序列,其中該輸出端配置為在該第二同位位元之後,依序地輸出該複數個資料位元的一第二序列,以及其中於該第二序列中的該複數個資料位元的一數字大於於該第一序列中的該複數個資料位元的一數字。
- 如申請專利範圍第5項所述之編碼器,其中該處理器配置為重新排列該複數個編碼的位元,以減少該複數個編碼的位元的該最大運行長度。
- 如申請專利範圍第6項所述之編碼器,其中該複數個編碼的位元藉由將在一開端的該複數個編碼的位元的一數字移動至該複數個編碼的位元的最後一個之後的一位置而重新排列。
- 如申請專利範圍第7項所述之編碼器,其中該漢明編碼操作對應於具有7個同位位元的漢明120個資料位元(HC(127,120)),並且於該開端的該複數個編碼的位元的該數字包含32位元。
- 一種解碼器,其包含:一輸入端,配置為在一串列連結上依序地接收包含複數個資料位元及複數個同位位元的複數個編碼的位元;一處理器,配置為:修正複數個接收的編碼的位元,以產生複數個漢明編碼的位元,該複數個接收的編碼的位元包含***複數個資料位元的一第一同位位元及一第二同位位元;及利用一漢明解碼操作將該複數個漢明編碼的位元解碼,以產生複數個解碼的位元,該第一同位位元解碼為一偶同位位元,而該第二同位位元解碼為一奇同位而計算;以及一輸出端,配置為輸出該複數個解碼的位元,其中該複數個接收的編碼的位元相較於對應於一標準的漢明碼的該複數個編碼的位元,具有一減少的運行長度,其中該輸入端配置為在該第二同位位元之前,依序地接收該第一同位位元,其中該輸入端配置為在該第一同位位元和該第二同位位元之間,依序地接收該複數個資料位元的一第一序列,其中該輸入端配置為在該第二同位位元之後,依序地接收該複數個資料位元的一第二序列,以及其中於該第二序列中的該複數個資料位元的一數字大於於該第一序列中的該複數個資料位元的一數字。
- 如申請專利範圍第9項所述之解碼器,其中該處理器配置為藉由以下至少之一來修正該複數個接收的編碼的位元:藉由將在一開端的該複數個編碼的位元的一數字移動至該複數個編碼的位元的最後一個之後的一位置而重新排列該複數個接收的編碼的位元及藉由轉換該複數個同位位元中的一同位位元的一值。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361898415P | 2013-10-31 | 2013-10-31 | |
US61/898,415 | 2013-10-31 | ||
US14/338,109 | 2014-07-22 | ||
US14/338,109 US9658921B2 (en) | 2013-10-31 | 2014-07-22 | Maximal transition hamming codes |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201524136A TW201524136A (zh) | 2015-06-16 |
TWI656746B true TWI656746B (zh) | 2019-04-11 |
Family
ID=51703082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103137315A TWI656746B (zh) | 2013-10-31 | 2014-10-29 | 編碼器、解碼器、通訊系統及用於編碼資料之方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9658921B2 (zh) |
EP (1) | EP2869471A1 (zh) |
JP (1) | JP2015089132A (zh) |
KR (1) | KR102281107B1 (zh) |
CN (1) | CN104601275B (zh) |
AU (1) | AU2014227460B2 (zh) |
TW (1) | TWI656746B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102430173B1 (ko) | 2015-11-24 | 2022-08-05 | 삼성전자주식회사 | 디스플레이 장치 |
JP6971538B2 (ja) * | 2016-05-18 | 2021-11-24 | ソニーセミコンダクタソリューションズ株式会社 | 通信装置、通信方法、プログラム、および、通信システム |
KR102608908B1 (ko) * | 2016-06-23 | 2023-12-04 | 에스케이하이닉스 주식회사 | 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치 |
DE102016118269A1 (de) * | 2016-09-27 | 2018-03-29 | Endress + Hauser Gmbh + Co. Kg | Verfahren und System zum verteilten Speichern von Informationen in einer eine Vielzahl von Feldgeräten aufweisenden Anlage der Prozessautomatisierung |
CN107565979B (zh) * | 2017-09-26 | 2020-08-04 | 武汉虹信通信技术有限责任公司 | 一种编码方法及编码器 |
US11695429B2 (en) | 2021-07-29 | 2023-07-04 | Samsung Display Co., Ltd. | Systems and methods for transition encoding with protected key |
US11636057B2 (en) * | 2021-07-30 | 2023-04-25 | Qualcomm Incorporated | Data re-encoding for energy-efficient data transfer in a computing device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4596014A (en) * | 1984-02-21 | 1986-06-17 | Foster Wheeler Energy Corporation | I/O rack addressing error detection for process control |
US20030192006A1 (en) * | 2002-04-08 | 2003-10-09 | Matthew Coakeley | Systems and methods for high speed serial encoding and decoding for data and control interfaces |
US7467335B2 (en) * | 2005-07-01 | 2008-12-16 | Alcatel-Lucent Usa Inc. | Method and apparatus for synchronizing data channels using an alternating parity deskew channel |
TW200937870A (en) * | 2007-10-30 | 2009-09-01 | Sony Corp | Data processing apparatus and method |
TW201010293A (en) * | 2008-04-28 | 2010-03-01 | Qualcomm Inc | Communication signal decoding with iterative cooperation between inner and outer codes |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4680765A (en) * | 1985-07-26 | 1987-07-14 | Doland George D | Autosync circuit for error correcting block decoders |
JP2593071B2 (ja) * | 1987-03-23 | 1997-03-19 | 日本電信電話株式会社 | 誤り訂正機能を有するバイフエーズ符号伝送方法 |
WO2000021198A1 (en) * | 1998-10-01 | 2000-04-13 | Koninklijke Philips Electronics N.V. | Generation of a runlength limited digital information signal |
US7596743B2 (en) * | 2005-09-28 | 2009-09-29 | Ati Technologies Inc. | Method and apparatus for error management |
KR20070112953A (ko) | 2006-05-24 | 2007-11-28 | 삼성전자주식회사 | Ecc 제어회로, 제어방법 및 반도체 메모리 장치 |
KR101518507B1 (ko) | 2007-07-19 | 2015-05-11 | 한국전자통신연구원 | 영상신호 송수신 장치 및 방법 |
KR100942702B1 (ko) | 2007-08-30 | 2010-02-17 | 한국전자통신연구원 | 심볼 오류정정이 가능한 주파수 선택적 기저대역을사용하는 변복조 방법 및 그 장치 |
-
2014
- 2014-07-22 US US14/338,109 patent/US9658921B2/en active Active
- 2014-09-17 AU AU2014227460A patent/AU2014227460B2/en active Active
- 2014-10-16 EP EP20140189177 patent/EP2869471A1/en not_active Ceased
- 2014-10-28 KR KR1020140147445A patent/KR102281107B1/ko active IP Right Grant
- 2014-10-29 JP JP2014220152A patent/JP2015089132A/ja active Pending
- 2014-10-29 TW TW103137315A patent/TWI656746B/zh active
- 2014-10-29 CN CN201410592783.7A patent/CN104601275B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4596014A (en) * | 1984-02-21 | 1986-06-17 | Foster Wheeler Energy Corporation | I/O rack addressing error detection for process control |
US20030192006A1 (en) * | 2002-04-08 | 2003-10-09 | Matthew Coakeley | Systems and methods for high speed serial encoding and decoding for data and control interfaces |
US7467335B2 (en) * | 2005-07-01 | 2008-12-16 | Alcatel-Lucent Usa Inc. | Method and apparatus for synchronizing data channels using an alternating parity deskew channel |
TW200937870A (en) * | 2007-10-30 | 2009-09-01 | Sony Corp | Data processing apparatus and method |
TW201010293A (en) * | 2008-04-28 | 2010-03-01 | Qualcomm Inc | Communication signal decoding with iterative cooperation between inner and outer codes |
Also Published As
Publication number | Publication date |
---|---|
AU2014227460A1 (en) | 2015-05-14 |
CN104601275B (zh) | 2020-04-21 |
TW201524136A (zh) | 2015-06-16 |
KR102281107B1 (ko) | 2021-07-23 |
US20150121164A1 (en) | 2015-04-30 |
KR20150050429A (ko) | 2015-05-08 |
JP2015089132A (ja) | 2015-05-07 |
CN104601275A (zh) | 2015-05-06 |
AU2014227460B2 (en) | 2018-09-20 |
US9658921B2 (en) | 2017-05-23 |
EP2869471A1 (en) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI656746B (zh) | 編碼器、解碼器、通訊系統及用於編碼資料之方法 | |
US7418644B2 (en) | System for error correction coding and decoding | |
WO2009031837A1 (en) | Signal segmentation method and crc attachment method for reducing undetected error | |
JP4071879B2 (ja) | 誤り検出器、この誤り検出器を備えた通信システム、および誤り検出方法 | |
JPH09181616A (ja) | 巡回冗長検査エラー検出・訂正装置 | |
US11018699B2 (en) | Method and apparatus for controlling interleaving depth | |
TW200915735A (en) | Turbo decoder and stop judging circuit and iteration stopping method thereof | |
US5878061A (en) | Providing serial data clock signal transitions with parity bits | |
US9252815B2 (en) | Extension of product codes with applications to tape and parallel channels | |
US10860415B2 (en) | Memory architecture including response manager for error correction circuit | |
CN111277830B (zh) | 一种编码方法、解码方法及装置 | |
KR20100017586A (ko) | 디지털 방송 수신기 및 그 스트림 처리 방법 | |
US8745465B1 (en) | Detecting a burst error in the frames of a block of data bits | |
CN109217982B (zh) | 传输数据的方法、装置、发送设备和接收设备 | |
TWI527383B (zh) | A Fast BCH Code Decoding Method | |
US11251815B2 (en) | Decoding circuit and decoding method based on Viterbi algorithm | |
CN114443347B (zh) | 一种可配置crc码计算方法 | |
Gholase et al. | Enhancement of error detection and correction capability using orthogonal code convolution | |
JP6552776B1 (ja) | 誤り訂正復号装置および誤り訂正復号方法 | |
Meshram et al. | Implementation of error correction technique using OCC on FPGA | |
TWI599182B (zh) | 解碼裝置及方法 | |
RU2013116673A (ru) | Способ для приема информации по двум параллельным каналам | |
JP2016149679A (ja) | 通信方法および通信システム | |
JPH08293801A (ja) | ディジタル情報の誤り制御方法及びその装置 | |
KR19990065358A (ko) | 오류 검출 부호의 길쌈 부호화 및 복호화 방법 |