TW202320493A - 具有可伸縮字長的轉態編碼器及轉態編碼方法 - Google Patents
具有可伸縮字長的轉態編碼器及轉態編碼方法 Download PDFInfo
- Publication number
- TW202320493A TW202320493A TW111132968A TW111132968A TW202320493A TW 202320493 A TW202320493 A TW 202320493A TW 111132968 A TW111132968 A TW 111132968A TW 111132968 A TW111132968 A TW 111132968A TW 202320493 A TW202320493 A TW 202320493A
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- input
- key
- words
- key value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0079—Receiver details
- H04L7/0087—Preprocessing of received signal for synchronisation, e.g. by code conversion, pulse generation or edge detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4904—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using self-synchronising codes, e.g. split-phase codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Quality & Reliability (AREA)
Abstract
本揭露提供一種編碼輸入資料的方法、用於編碼輸入資料的轉態編碼器、以及解碼傳輸資料的方法。編碼輸入資料的方法包含識別輸入資料的輸入封包,輸入封包中包含複數個輸入字,各輸入字包含前置位元、群識別符位元、以及後置位元;基於該複數個輸入字的群識別符位元將複數個輸入字編組為複數個組;基於複數個組中的每一組中的輸入字數來識別複數個組中的關鍵組;基於對應於關鍵組的複數個輸入字中的一個的前置位元、群識別符位元、以及後置位元來判定關鍵值;以及根據關鍵值及複數個輸入字產生複數個編碼字。
Description
相關申請案之交互參照
本申請案主張於2021年8月31日所提出名稱為「可伸縮字長的過度編碼(FLEXIBLE WORD-SIZE TRANSITION ENCODING CODES)」之第63/239,281號美國臨時申請案之優先權,其內容透過引用方式全文併入本文中。
本揭露的實施例的態樣大致上涉及一種資料通訊系統,且具體涉及一種具有可伸縮字長的轉態編碼器及轉態編碼方法。
一般而言,串列資料通訊通常用於透過線路、光纖甚至無線的方式來進行通訊的各種系統中。在數位資料的串列通訊中,當發送器不與資料串流一起傳輸時脈訊號時,接收器必須使用來自資料串流的時序資訊來重新產生時脈。從串列資料串流中提取時序資訊的過程稱為時脈回復(clock recovery),其對於允許接收器電路解碼傳輸的符號至關重要。
可以透過修改傳輸的資料來輔助接收器的時脈回復,以確保資料串流中有足夠數量的轉態。換句話說,必須限制最壞情況無轉態運行長度(worst-case no-transition run-length)。為了確保頻繁的轉態,發送器可以利用轉態編碼演算法對原始資料進行編碼,從而定期地發生轉態。
在先前技術部分中所揭露的上述資訊僅用於增進對本揭露的理解,因此可能包含不構成本揭露所屬技術領域具有通常知識者已知的現有技術的資訊。
本揭露的實施例的態樣涉及一種用於對具有可伸縮字長及運行長度限制的傳輸串流進行轉態編碼的系統及方法。在一些實施例中,轉態編碼使用資料封包中的每一個字的位元的子集來作為字的群識別符,基於其群識別符將此封包的字編組為複數個組,識別具有最少字數的關鍵組,並接續根據組識別符及關鍵組中丟失的位元樣型(bit patterns)來判定編碼關鍵值。在將編碼字傳輸至接收器之前,轉態編碼器接續使用關鍵值來編碼各個字。在一些實施例中,可以針對任意需要的字長及運行長度限制來輕鬆地修改轉態編碼。
根據本揭露的一些實施例,提供一種編碼輸入資料的方法,此方法包含:識別輸入資料的輸入封包,輸入封包中包含複數個輸入字,各輸入字包含前置位元、群識別符位元、以及後置位元;基於複數個輸入字的群識別符位元將複數個輸入字編組為複數個組;基於複數個組中的每一組中的輸入字數來識別複數個組中的關鍵組;基於對應於關鍵組的複數個輸入字中的一個的前置位元、群識別符位元、以及後置位元來判定關鍵值;以及根據關鍵值及複數個輸入字產生複數個編碼字。
在一些實施例中,此方法進一步包含:接收輸入資料;以及將輸入資料分割為包含輸入封包的複數個資料封包。
在一些實施例中,各輸入字表示為:[PRB
iGID
iPOB
i],其中PRB
i表示前置位元,GID
i表示群識別符位元,POB
i表示後置位元,並且i為大於0的整數。
在一些實施例中,輸入封包中包含31個輸入字,複數個輸入字中的每一個包含8個位元,前置位元包含複數個輸入字中的對應字的2個最高有效位元,群識別符位元包含對應字的4個中間位元,並且後置位元包含對應字的2個最低有效位元,複數個組包含8個組,並且輸入封包的運行長度(run-length)為10。
在一些實施例中,將複數個輸入字編組為複數個組包含:將具有相同的群識別符位元或者具有相同的群識別符位元的補碼的複數個輸入字中的至少一個分組至複數個組的相同組中,並且複數個組的數量為群識別符位元中的位元數量的二分之一。
在一些實施例中,將複數個輸入字編組為複數個組包含:將具有小於((2
g-1)/2且等於第一值的群識別符位元值的複數個輸入字中的一個、以及相同組中具有大於(2
g-1)/2且等於補碼的群識別符位元值的複數個輸入字中的另一個進行分組,其中g表示群識別符位元的位元長度。
在一些實施例中,識別關鍵組包含:將關鍵組識別為在具有最少的輸入字數或者具有少於閾值的輸入字數的複數個組中的一個。
在一些實施例中,判定關鍵值包含:將關鍵群識別符位元判定為對應於關鍵組的複數個輸入字中的一個字的群識別符位元;將關鍵前置位元判定為從對應於關鍵組的複數個輸入字中的至少一個的前置位元丟失的位元;將關鍵後置位元判定為從對應於關鍵組的複數個輸入字中的至少一個的後置位元丟失的位元;以及基於關鍵前置位元、關鍵群識別符位元、以及關鍵後置位元產生關鍵值。
在一些實施例中,關鍵值表示為:[PRB
0GID
0POB
0],其中PRB
0表示關鍵前置位元,GID
0表示關鍵群識別符位元,並且POB
0表示關鍵後置位元。
在一些實施例中,關鍵值具有與複數個輸入字中的一個相同的位元長度,並且與複數個輸入字中的任意一個均不相同。
在一些實施例中,複數個編碼字包含第一編碼字及第二編碼字,第一編碼字至少基於關鍵值並且第二編碼字基於關鍵值及複數個輸入字的第一輸入字。
在一些實施例中,產生複數個編碼字包含:基於關鍵值產生修正關鍵值;產生作為修正關鍵值的第一編碼字;以及透過對複數個輸入字中的一個以及關鍵值執行二進制互斥或運算以產生第二編碼字。
在一些實施例中,複數個編碼字表示為:{ K’ ,
x 1^K,
x 2^K, … ,
x N^K },其中K表示關鍵值,K’表示基於關鍵值的修正關鍵值,{
x 1,
x 2, … ,
x N}表示輸入封包的複數個輸入字,N為大於2的整數,並且^表示二進制互斥或運算。
在一些實施例中,此方法進一步包含:透過通訊通道傳送傳輸資料至接收器,傳輸資料包含複數個編碼字。
根據本揭露的一些實施例中,提供了一種用於編碼輸入資料的轉態編碼器,轉態編碼器包含:處理器;以及處理器記憶體,係為處理器的本地記憶體,其中處理器記憶體在其上儲存有複數個指令,當處理器執行複數個指令時,使得處理器執行:識別輸入資料的輸入封包,輸入封包中包含複數個輸入字,各輸入字包含前置位元、群識別符位元、以及後置位元;基於複數個輸入字的群識別符位元將複數個輸入字編組為複數個組;識別對應於小於閾值的輸入字數的複數個組的關鍵組;基於對應於關鍵組的複數個輸入字中的一個的前置位元、群識別符位元、以及後置位元來判定關鍵值;以及根據關鍵值及複數個輸入字產生複數個編碼字。
根據本揭露的一些實施例,提供了一種解碼傳輸資料的方法,此方法包含:接收包含複數個編碼字的傳輸資料,複數個編碼字包含修正關鍵值及第一編碼字;基於修正關鍵值產生關鍵值;以及透過對關鍵值及第一編碼字執行二進制互斥或運算以產生複數個編碼字的第一編碼字。
根據本揭露的一些實施例中,修正關鍵值表示為:[PRB
0GID
0POB
0],其中PRB
0表示修正關鍵值的前置位元,GID
0表示修正關鍵值的群識別符位元,並且POB
0表示修正關鍵值的後置位元,並且其中基於修正關鍵值產生關鍵值包含:將關鍵值的群識別符位元的最高有效位元(most significant bit,MSB)替換為0以產生關鍵值。
根據本揭露的一些實施例中,基於修正關鍵值產生關鍵值包含:設定修正關鍵值的位元中的一個位元為0以產生關鍵值。
根據本揭露的一些實施例中,複數個編碼字表示為:{ K’ ,
x 1^K,
x 2^K, … , x
N^K },其中{
x 1,
x 2, … ,
x N}表示輸入封包的複數個字,K表示用於編碼複數個編碼字的關鍵值,K’表示修正關鍵值,並且^表示二進制互斥或運算。
根據本揭露的一些實施例中,接收傳輸資料包含:透過通訊通道從發送器接收傳輸資料。
在下文中的詳細說明旨在作為串列資料通訊中的用於轉態編碼/解碼資料的系統及方法的例示性實施例的說明,其根據本揭露來提供,並且其並非旨在表示本揭露可以被構成或利用的唯一形式。結合所示的實施例的說明闡明了本揭露的特徵。然而,應當理解的是,相同或同等的功能及結構可以透過不同的實施例來實現,這些實施例也旨在包含於本揭露的範圍內。如本文中其他部分所指出的,相似的元件符號旨在指代相似的元件或特徵。
在相關技術領域中,為了實現運行長度限制(run-length-limited)傳輸,發送器可以透過基於輸入資料來識別金鑰,使用金鑰對輸入資料的每一個字進行編碼,並將金鑰連同編碼字一起發送至接收器。編碼資料可以具有特定的運行長度限制。接收器依序識別傳輸資料中的金鑰,並使用此金鑰對接收到的編碼字進行解碼以獲取原始輸入資料。然而,相關技術的編碼器通常使用與協定層(protocol layer)產生的字長尺寸不對齊(即,不同)的字長。例如,協定層可以以8位元字節(bit bytes)為單位產生資料,而編碼器可以以6位元為單位來執行轉態編碼。因此,編碼器可能必需在轉態編碼資料封包中使用位元填充(bit padding/stuffing),其將會增加編碼的額外字元(overhead),或者需要依賴額外的對齊硬體,其將會佔用昂貴的空間並且增加額外的成本及複雜性。
根據一些實施例,轉態編碼器能夠對字節尺寸(byte-sized)的資料或具有任意合適位元數的字長進行編碼,以產生各種運行長度限制。轉態編碼器可以進一步具有任意合適的運行長度限制,並且不限定於特定的運行長度。藉此消除了對於位元填充或額外的字節字(byte-word)對齊硬體的需要,從而可以簡化發送器/接收器的設計並且降低系統成本。
第1A圖為根據本揭露的一些實施例的串列資料通訊系統1的方塊圖。第1B圖為根據本揭露一些實施例的串列資料通訊系統1的發送器/接收器的方塊圖。
參照第1A圖,在一些實施例中,串列資料通訊系統1包含發送器10、通訊通道(例如,串列通訊通道)15、以及接收器20。發送器10可以包含資料壓縮器及/或編碼器12,其用於對輸入資料串流執行壓縮及/或編碼以產生用於透過通訊通道15(例如,具有一個或多個導體的傳輸線)傳輸至接收器20的傳輸資料。接收器20可以包含資料解壓縮器及/或解碼器22,其用於對接收器20接收到的資料串流進行解壓縮及/或解碼以恢復輸入資料串流。接收器20可以進一步包含時脈回復電路24。
根據一些實施例,發送器10包含轉態編碼器100,其配置為透過確保以至少特定頻率發生轉態來編碼傳輸資料串流,此特定頻率使得接收器20能夠從透過通訊通道15傳輸的編碼資料串流(例如,轉態-編碼的(transition-encoded))中提取時脈訊號。也就是說,轉態編碼器100限制了編碼資料串流的運行長度。
如第1B圖所示,由發送器10及接收器20的構成部件執行的操作可以由「處理電路」或「處理器」30來執行,其可以包含用於處理資料或數位訊號的硬體、韌體、以及軟體的任意組合。處理電路硬體可以包含,例如特殊應用積體電路(Application Specific Integrated Circuits,ASICs)、通用或專用的中央處理器(Central Processing Units,CPUs)、數位訊號處理器(Digital Signal Processors,DSPs)、圖像處理器(Graphics Processing Units,GPUs)、以及諸如場域可程式閘陣列(Field Programmable Gate Arrays,FPGAs)的可程式邏輯裝置。在處理電路中,如本文所使用的,各個功能可以由配置為執行此功能的硬體(即,硬佈線)來執行,或者由配置為執行儲存於非暫態儲存媒體中的指令的更為通用的硬體(例如,中央處理器)來執行。處理電路可以製作在單個印刷線路板(Printed Wiring Board,PWB)上或者分佈在多個互連的印刷線路板上。一個處理電路可能包含其他的處理電路;例如,處理電路可以包含在印刷線路板上互連的兩個處理電路,場域可程式閘陣列以及中央處理器。處理器30本地的處理器記憶體32可以在其上儲存有指令,當處理器30執行這些指令時,使得處理器30執行在本文中參照第1A圖及第2圖至第4圖所說明的描述的操作。
第2圖為根據本揭露一些實施例的被分割為多個字的資料封包。
參照第1A圖及第2圖,在一些實施例中,轉態編碼器100將輸入資料(可以為已經被資料壓縮器及/或編碼器12編碼/壓縮,或者可以未被資料壓縮器及/或編碼器12編碼/壓縮)分割為複數個輸入資料封包(例如,位元串流)。各輸入資料封包(也稱作輸入封包)被劃分為N個字/數字,其中各字/數字包含q個位元。因此,資料封包X可以表示為:
X[0:qxN-1] =
x 1(b[0:q-1]),
x 2(b[q:2q-1]), … ,
x N(b[qx(N-1):(qxN)-1]) 等式(1)。
其中{ x
1, x
2, … , x
N}表示構成輸入資料封包的N個字/數字,各個字/數字的值介於0至2
q-1之間。在第2圖的示例中,各個字包含8個位元(即,q=8)並且具有在[0:255]範圍內的值。然而,本發明的實施例不限定於此,並且各個字可以包含任意合適數量的位元(例如,6個位元、10個位元等)。
轉態編碼器100對每個字進行編碼/加擾(scrambles)以確保每個字/數字中的轉態並且將傳輸資料的運行長度限制為期望值。在一些實施例中,轉態編碼器100以這樣的方式對封包的字進行編碼以防止傳輸具有大於運行長度的一半的前導(leading)或尾隨(trailing)運行長度的字。在8位元字並且期望傳輸運行長度為10的示例中,轉態編碼器100消除了以下的字:
000000xx
xx000000
111111xx
xx111111
其中「x」可以為0或1(「無關位元(don’t-care bit)」)。因此,在兩個連續字中運行的最壞情況是xx100000 000001xx以及xx011111 111110xx,其兩者的運行長度均為10。
為了對接收到的輸入字進行編碼,轉態編碼器100首先將各輸入字的位元分成前置位元(pre bits,PRB)、群識別符位元(group ID bits,GID)、以及後置位元(post bits,POB)。也就是說,各輸入字可以表示為[PRB GID POB],其中PRB為輸入字的最高有效位元,GID為中間位元,並且POB為輸入字的最最低有效位元。GID中的中間位元的數量可以表示為:
GID中的位元數: g = RL – WBL +2 等式(2)。
其中,RL表示期望的編碼運行長度,WBL表示輸入字位元長度。在上述的示例中,GID中的位元數等於4(=10-8+2)。因此,上述禁止位元可以被劃分為2位元PRB、4位元GID、以及2位元POB,如下列表1所示:
表1
禁止字 | PRB | GID | POB |
000000xx | 00 | 0000 | 00 |
xx000000 | xx | 0000 | 00 |
111111xx | 11 | 1111 | xx |
xx111111 | xx | 1111 | 11 |
從表1可以看出的是,如果GID並非全為0或全為1,則可以避免禁止字。此外,當GID是全為0或全為1時,且當PRB及POB皆非與GID相同的位元時,可以避免禁止字。因此,轉態編碼器100對輸入字的GID進行編碼,使得大多數的編碼字不具有等於全為0或全為1的GID,並且對PRB及POB進行編碼,使得具有全為0或全為1的GID的編碼字不具有與GID相似的全為0或全為1的GID。
在一些實施例中,一旦字被劃分,輸入字基於其自身的GID被分組在一起。在此,具有相同的GID及補碼(即,1的補碼)GID(例如,0000及1111)的字分組在一起。也就是說,當GID有g個位元時,GID值小於(2
g-1)/2的字編組在與GID匹配的組號中,GID值大於(2
g-1)/2的字被編組在與其補碼(反向)GID匹配的組號中。因此,輸入字被編組至的組數等於2
g-1。根據其GID進行編組的一組輸入字可以被稱作常規字(regular words),而根據其補碼GID進行編組的那些輸入字可以被稱作補碼字(complement words)。
透過下列表2可以使得將輸入字分為不同的組的編組可視化。在表2的示例中,示例資料封包的各輸入字具有8個位元,GID具有4個位元(即,g = 4),PRB及POB分別具有兩個位元。因此,轉態編碼器100將輸入字編組為8個組(即,0至7)。
表2
組 | 字 | GID | PRB | POB | 編碼字 | 新組 |
00-0000-01 | 00-0001-01 | |||||
0 | 10-0000-11 | 10-0001-11 | ||||
0000 | 11-0000-10 | 11-0001-10 | 1 | |||
5 個構成要素 | 00-1111-01 | 00-1110-01 | 0001 | |||
11-1111-10 | 11-11110-10 | |||||
11-0001-10 | 0001 | 11 | 10 | 11-0000-10 | ||
1 | 10-0001-11 | 0001 | 10 | 11 | 10-0000-11 | 0 |
0001 | 10-1110-01 | inv(0001) | inv(01) | inv(10) | 10-1111-01 | 0000 |
3 個構成要素 | GID0 = 0001 | PRB0 = 00 | POB0 = 00 | |||
… | … | |||||
01-0111-00 | 01-0110-00 | |||||
7 | 11-1000-10 | 11-1001-10 | 6 | |||
0111 | 01-1000-11 | 01-1001-11 | 0110 | |||
4 個構成要素 | 11-1000-01 | 11-1001-01 |
在一些實施例中,轉態編碼器100識別具有最少的構成要素數量的組(例如,表2中的組1)或具有低於閾值(例如,4)的構成要素數量的組,其被稱作關鍵組。關鍵組中任意一個字的GID或補碼GID皆可以表示組GID。在表2的示例中,具有最少數量的字構成要素(即,三個)的組1被識別為關鍵組。此組中的字具有0001的GID(或補碼GID)。因此,0001或1110可以被識別為關鍵組的GID(可以被稱作GID0)。在一些實施例中,關鍵組的GID(而非補碼GID)被選擇為GID0。可以接續假設GID0的最高有效位元(MSB)為零,並且可以僅將GID0的其餘位元(例如,表2的示例中的001)傳輸至接收器20。與此方案一致,接收器20可以將零的最高有效位元附加至從發送器10接收的GID0的剩餘位元(例如,001)。透過不發送零的MSB,轉態編碼器100可以實現改進的編碼效率以傳輸較少的額外字元位元(overhead bits)。
在關鍵組的GID0為基於構成要素字的GID(例如,GID0 = 0001) 的實施例中,關鍵組的PRB被識別為任意常規字(regular words)的PRB以及任意補充字的補碼PRB。關鍵組的PRB及POB可以分別稱作PRB0及POB0。當關鍵組的GID0基於構成要素字的補碼GID(例如,GID0 = 1110)時,PRB0及POB0 可以基於來自對應的常規構成要素字的補碼PRB及POB以及對應補碼字的PRB及POB的丟失的位元樣型。
轉態編碼器100接續基於關鍵組的GID、PRB、以及POB產生編碼關鍵值(也簡稱作「關鍵值」)。根據一些實施例,轉態編碼器100使用關鍵組的GID作為關鍵值的GID(GID0),並且將關鍵值的PRB及POB(即,PRB0及POB0)分別判定為從關鍵組的PRB及POB丟失的位元樣型。當從PRB/POB中丟失一個以上的位元樣型模式時,丟失的樣型中的任意一者皆可以用作PRB0/POB0。在表2的示例中,GID0可以為0001,PRB可以為00,並且POB可以為00或01。因此,關鍵值可以為[00 0001 00]、[00 0001 01]、[00 1110 00]、或者[00 1110 01]。在此,關鍵值與輸入字具有相同的位元數(即,位元長度)。
在表2的示例中,一個封包中包含31個字,至少一個組將具有3個或更少的構成要素。因此,可以找到從關鍵組的PRB及POB中丟失的一個或多個位元模式。只要輸入封包中的字數N小於組數乘以PRB/POB字段中可能的樣型數(在表2的示例中,在PRB及POB中具有8個組及4個樣型,因此此封包的尺寸小於 8 x 4 = 32)即可滿足此條件。
在一些實施例中,轉態編碼器100使用關鍵值對輸入字進行編碼以產生用於傳輸至接收器20的包含複數個編碼字的編碼封包。各編碼字為對相應的輸入字及關鍵值執行二進制互斥或運算(XOR operation)的結果。因此,編碼封包Y可以表示為:
Y = {
y 0,
y 1, … ,
y N} = { K ,
x 1^K,
x 2^K, … ,
x N^K } 等式(3)。
其中K表示關鍵值,{
x 1,
x 2, … ,
x N}表示組成輸入封包的N個輸入字,符號^表示二進制互斥或運算。由於編碼封包中包含關鍵值及編碼字,因此編碼封包的字長比轉態後的封包大一個(即,其包含N+1個字)。在此,整個關鍵字作為編碼字y
0被傳輸至接收器20;然而,本揭露的實施例不限定於此。例如,轉態編碼器100可以構建修正關鍵值K’,並將其傳輸至接收器20,而不傳輸關鍵值K。在假設關鍵值的GID0的最高有效位元為零的實施例中,轉態編碼器100可以將修正關鍵值K’構建為關鍵值K相同,其GID0的最高有效位元被GID0的下一個有效位元的補碼所替換。例如,參照表2,當關鍵值的GID0為0001時,修正關鍵值的GID0可以為1001。藉此可以確保K’中具有轉態,並且在傳輸 K’的期間不被違反運行長度。在這樣的實施例中,編碼封包Y可以表示為:
Y = {
y 0,
y 1, … ,
y N} = { K’ ,
x 1^K,
x 2^K, … ,
x N^K } 等式(4)。
雖然等式3及等式4將關鍵值/修正關鍵值表示為編碼封包的第一個字,但是本揭露的實施例不限定於此。例如,關鍵值/修正關鍵值可以為編碼封包Y中的最後一個字,或者可以在封包內具有任意其他合適的位置,只要接收器20知道在封包內的關鍵值/修正關鍵值的位置即可。由於判定關鍵值/修改後的關鍵值的方式,編碼字呈現出期望的運行長度,這允許接收器20從傳輸的封包中回復時脈。
表2提供了基於示例輸入字以及產生的關鍵值而產生的編碼值。由於關鍵值的GID(以及,與其等效的關鍵組的GID)根據定義與其他組的GID不相同,因此對其他組的關鍵值以及輸入字進行互斥或運算將導致產生的編碼字的GID發生位元轉態。因此,關鍵值的GID確保了至少那些與關鍵組以外的組相對應的字的運行長度為10,如表2所示。此外,使用與關鍵組的字的PRB及POB不相同的關鍵值的PRB0及POB0可以確保使用關鍵值對關鍵組內的字進行互斥或運算將導致編碼字的PRB及POB發生位元轉態(即,連續的0及1位元)。藉此,甚至關鍵組內的字也受到編碼從而滿足所需的運行長度(例如,表2中的10)。
發送器10經由通訊通道15將編碼封包Y傳送至接收器20。在編碼封包Y包含關鍵值K(例如,等式3)的實施例中,一旦接收器接收了編碼封包,轉態解碼器200識別關鍵值(例如,接收的資料封包中的第一個字),並且基於關鍵值對剩餘的編碼字進行解碼以產生解碼資料封包X’,其表示為{
x’ 1, x’ 2, ..., x’ N}。轉態解碼器200使用關鍵值對第二個及後續的字執行互斥或運算。在一些實施例中,解碼後的字
x’ i(i為大於或等於1的整數)可以表示為:
x' i=
y i^ K = (
x i^ K) ^ K =
x i等式(5)。
因此,轉態解碼器200可以檢索原始輸入字。在編碼資料封包中包含修正關鍵值K’(而非關鍵值K,例如,如等式4中所表示的)的實施例中,轉態解碼器200識別修正關鍵值(例如,接收到的封包中的第一個字),透過將關鍵值的GID0的對高有效位元替換為零,並且接續基於關鍵值 K’對剩餘的編碼字進行解碼,其具體實施方式如上所述。
第3圖為根據本揭露一些實施例的編碼輸入資料的過程300。
當處理用於轉態的輸入資料時,轉態編碼器100接收輸入資料(例如,輸入資料串流),將輸入資料劃分成複數個資料封包,並且識別輸入資料的輸入封包(步驟S302)。輸入封包中包含複數個輸入字,各輸入字包含前置位元、群識別符位元、以及後置位元。在一些實施例中,轉態編碼器100基於複數個輸入字的群識別符位元將複數個輸入字編組為複數個組(步驟S304)。藉由此方式,轉態編碼器100將具有相同群識別符位元以及相同補碼群識別符位元的複數個輸入字分組至複數個組中的相同組。
在一些實施例中,轉態編碼器100將具有小於(2
g-1)/2且等於第一值的群識別符位元值的複數個輸入字中的一個、以及具有大於(2
g-1)/2且等於第一值補碼的群識別符位元的複數個輸入字中的另一個分組至相同組中,其中g表示群識別符位元的位元長度。複數個組的數量可以為群識別符位元中的位元數量的二分之一。
在一些示例中,輸入封包中包含31個輸入字,複數個輸入字中的每一個包含8個位元,前置位元包含複數個輸入字中的對應字的2個最高有效位元,群識別符位元包含對應字的4個中間位元,後置位元包含對應字的2個最低有效位元,複數個組包含8個組,並且輸入封包的運行長度為10。轉態編碼器100接續從複數個組中識別具有最少的輸入字數的關鍵組(步驟S306)。
在一些實施例中,轉態編碼器100基於對應於關鍵組的複數個字中的一個的前置位元、群識別符位元、以及後置位元來判定關鍵值(步驟S308)。藉由此方式,轉態編碼器100將關鍵群識別符位元判定為對應於關鍵組的複數個輸入字中的一個字的群識別符位元,將關鍵前置位元判定為從對應於關鍵組的複數個輸入字中的至少一個的前置位元丟失的位元,將關鍵後置位元判定為從對應於關鍵組的複數個輸入字中的至少一個的後置位元丟失的位元,並且基於關鍵前置位元、關鍵群識別符位元、以及關鍵後置位元產生關鍵值。在此,關鍵值與複數個輸入字中的一個具有相同的位元長度,並且與複數個輸入字中的任意一個均不相同。
轉態編碼器100基於關鍵值及複數個輸入字產生複數個編碼字(步驟S310)。複數個編碼字包含第一編碼字及第二編碼字,其中第一編碼字至少基於關鍵值,並且第二編碼字基於關鍵值及複數個輸入字的第一輸入字。轉態編碼器100透過產生第一編碼字作為關鍵值並且對複數個輸入字中的一個及關鍵值執行二進制互斥或運算以產生第二編碼字來產生編碼字。
轉態編碼器100接續透過通訊通道15將包含編碼字的傳輸資料傳輸至接收器20。
第4圖為根據本揭露一些實施例的解碼輸入資料的過程400。
在一些實施例中,接收器20透過通訊通道15從發送器10接收包含複數個編碼字的傳輸資料(步驟S402)。編碼字包含第一編碼字及第二編碼字。在一些示例中,第一編碼字及第二編碼字可以為連續的字。接收器20(例如,轉態解碼器200)透過對第一編碼字及第二編碼字執行二進制互斥或運算來產生複數個解碼字,進而產生複數個解碼字中的第一解碼字(步驟S404)。第一編碼字的位元長度可以與第一解碼字的位元長度相同。
如上所述,根據一些實施例的轉態編碼器100能夠對具有任意合適的字長的資料進行編碼以產生任意合適的運行長度限制。在一些實施例中,轉態編碼器100透過以特定方式基於輸入資料判定關鍵值來實現此期望的特徵,藉此消除了對實現字節到字(byte-to-word)對齊硬體或位元填充的需要,從而簡化了發送器/接收器的設計並且降低整體系統成本。此外,根據一些實施例,通訊系統1在不添加任何額外字元(overhead)至轉態編碼方案的情況下實現了此預期功效。
應當理解的是,儘管在本文中可以使用「第一(first)」、「第二(second)」、「第三(third)」等術語來說明各種元件、組件、區域、層、及/或部分,但是這些元件、組件、區域、層、及/或部分不應受到這些術語的限制。這些術語用於將一個元件、組件、區域、層、或部分與另一元件、組件、區域、層、或部分區分開來。因此,在不脫離本發明思想的範圍的情況下,在下文中說明的第一元件、組件、區域、層、或部分可以被稱作第二元件、組件、區域、層、或部分。
在本文中使用的術語係用於說明特定實施例的目的,而不是用於限制本發明的思想。如本文所使用的單數形式「一(a)」及「一(an)」也意圖包含複數形式,除非上下文明確的另外指出。應進一步理解的是,在本說明書中使用的術語「包含(includes)」、「包含(including)」、「包含(comprises)」、及/或「包含(comprising)」時,指定所陳述的特徵、整體、步驟、操作、元件、及/或組件存在,但不排除一個或複數個其他特徵、整體、步驟、操作、元件、組件、及/或其組合的存在或添加。如本文中所使用的「及/或(and/or)」包含一個或多個相關的列出項目中的任一個及所有組合。此外,在說明根據本發明思想的實施例時,「可以(may)」表示一個或多個根據本發明思想的實施例。並且,術語「例示性(exemplary)」表示範例或示出。
如本文所用的術語「使用(use)」、「使用(using)」、「使用(used)」可以分別與「利用(utilize)」、「利用(utilizing)」、「利用(utilized)」同義。
進一步的,在說明根據本發明思想的實施例時,「可以(may)」表示一個或多個根據本發明思想的實施例。同樣的,術語「例示性(exemplary)」表示範例或示出。
雖然本揭露已經具體參考其說明性的實施例進行了詳細說明,但本文所說明的實施例並非旨在詳盡無疑或者限制本揭露的範圍為所揭露的確切形式。本領域具有通常知識者可以理解的是,可以在不脫離本揭露內容的原理及範圍的情況下實踐所說明的結構以及組裝與操作方法的更改及變化,並且本發明的保護範圍由所附的申請專利範圍及其等同物所限定。
1:串列資料通訊系統
10:發送器
12:資料壓縮器及/或編碼器
15:通訊通道
20:接收器
22:資料解壓縮器及/或解碼器
24:時脈回復電路
30:處理器
32:處理器記憶體
100:轉態編碼器
200:轉態解碼器
300,400:過程
S302,S304,S306,S308,S310,S402,S404:步驟
將結合附圖及說明書來說明本揭露的例示性實施例,並且結合此說明以闡明本揭露的原理。
第1A圖為根據本揭露的一些實施例的串列資料通訊系統的方塊圖。
第1B圖為根據本揭露一些實施例的串列資料通訊系統的發送器/接收器的方塊圖。
第2圖為根據本揭露一些實施例的被分割為多個字的資料封包。
第3圖為根據本揭露一些實施例的編碼輸入資料的過程。
第4圖為根據本揭露一些實施例的解碼輸入資料的過程。
300:過程
S302,S304,S306,S308,S310:步驟
Claims (20)
- 一種編碼輸入資料的方法,該方法包含: 識別該輸入資料的一輸入封包,該輸入封包中包含複數個輸入字,各該輸入字包含前置位元、群識別符位元、以及後置位元; 基於該複數個輸入字的該群識別符位元將該複數個輸入字編組為複數個組; 基於該複數個組中的每一組中的輸入字數來識別該複數個組中的一關鍵組; 基於對應於該關鍵組的該複數個輸入字中的一個的該前置位元、該群識別符位元、以及該後置位元來判定一關鍵值;以及 根據該關鍵值及該複數個輸入字產生複數個編碼字。
- 如請求項1所述之方法,其進一步包含: 接收該輸入資料;以及 將該輸入資料分割為包含該輸入封包的複數個資料封包。
- 如請求項1所述之方法,其中各該輸入字表示為: [PRB iGID iPOB i], 其中PRB i表示該前置位元,GID i表示該群識別符位元,POB i表示該後置位元,並且i為大於0的整數。
- 如請求項1所述之方法,其中該輸入封包中包含31個輸入字,該複數個輸入字中的每一個包含8個位元,該前置位元包含該複數個輸入字中的一對應字的2個最高有效位元,該群識別符位元包含該對應字的4個中間位元,並且該後置位元包含該對應字的2個最低有效位元,該複數個組包含8個組,並且該輸入封包的運行長度為10。
- 如請求項1所述之方法,其中將該複數個輸入字編組為該複數個組包含: 將具有相同的該群識別符位元或者具有相同的該群識別符位元的補碼的該複數個輸入字中的至少一個分組至該複數個組的相同組中, 其中該複數個組的數量為該群識別符位元中的位元數量的二分之一。
- 如請求項1所述之方法,其中將該複數個輸入字編組為複數個組包含: 將具有小於(2 g-1)/2且等於一第一值的群識別符位元值的該複數個輸入字中的一個、以及相同組中具有大於(2 g-1)/2且等於補碼的群識別符位元值的該複數個輸入字中的另一個進行分組,其中g表示該群識別符位元的位元長度。
- 如請求項1所述之方法,其中識別該關鍵組包含: 將該關鍵組識別為在具有最少的輸入字數或者具有少於一閾值的輸入字數的該複數個組中的一個。
- 如請求項1所述之方法,其中判定該關鍵值包含: 將一關鍵群識別符位元判定為對應於該關鍵組的該複數個輸入字中的一個字的該群識別符位元; 將一關鍵前置位元判定為從對應於該關鍵組的該複數個輸入字中的至少一個的該前置位元丟失的位元; 將一關鍵後置位元判定為從對應於該關鍵組的該複數個輸入字中的至少一個的該後置位元丟失的位元;以及 基於該關鍵前置位元、該關鍵群識別符位元、以及該關鍵後置位元產生該關鍵值。
- 如請求項8所述之方法,其中該關鍵值表示為: [PRB 0GID 0POB 0], 其中PRB 0表示該關鍵前置位元,GID 0表示該關鍵群識別符位元,並且POB 0表示該關鍵後置位元。
- 如請求項1所述之方法,其中該關鍵值具有與該複數個輸入字中的一個相同的位元長度,並且與該複數個輸入字中的任意一個均不相同。
- 如請求項1所述之方法,其中該複數個編碼字包含一第一編碼字及一第二編碼字,該第一編碼字至少基於該關鍵值並且該第二編碼字基於該關鍵值及該複數個輸入字的一第一輸入字。
- 如請求項11所述之方法,其中產生該複數個編碼字包含: 基於該關鍵值產生一修正關鍵值; 產生作為該修正關鍵值的該第一編碼字;以及 透過對該複數個輸入字中的一個以及該關鍵值執行二進制互斥或(binary XOR)運算以產生該第二編碼字。
- 如請求項1所述之方法,其中該複數個編碼字表示為: { K’ , x 1^K, x 2^K, … , x N^K }, 其中K表示該關鍵值,K’表示基於該關鍵值的一修正關鍵值,{ x 1, x 2, … , x N}表示該輸入封包的該複數個輸入字,N為大於2的整數,並且^表示二進制互斥或(binary XOR)運算。
- 如請求項1所述之方法,其進一步包含: 透過一通訊通道傳送傳輸資料至一接收器,該傳輸資料包含該複數個編碼字。
- 一種轉態編碼器,係用於編碼輸入資料,該轉態編碼器包含: 一處理器;以及 一處理器記憶體,係為該處理器的本地記憶體,其中該處理器記憶體在其上儲存有複數個指令,當該處理器執行該複數個指令時,使得該處理器執行: 識別該輸入資料的一輸入封包,該輸入封包中包含複數個輸入字,各該輸入字包含前置位元、群識別符位元、以及後置位元; 基於該複數個輸入字的該群識別符位元將該複數個輸入字編組為複數個組; 識別對應於小於一閾值的輸入字數的該複數個組的一關鍵組; 基於對應於該關鍵組的該複數個輸入字中的一個的該前置位元、該群識別符位元、以及該後置位元來判定一關鍵值;以及 根據該關鍵值及該複數個輸入字產生複數個編碼字。
- 一種解碼傳輸資料的方法,該方法包含: 接收包含複數個編碼字的該傳輸資料,該複數個編碼字包含一修正關鍵值及一第一編碼字; 基於該修正關鍵值產生一關鍵值;以及 透過對該關鍵值及該第一編碼字執行二進制互斥或(binary XOR)運算以產生複數個編碼字的一第一編碼字。
- 如請求項16所述之方法,其中該修正關鍵值表示為: [PRB 0GID 0POB 0], 其中PRB 0表示該修正關鍵值的前置位元,GID 0表示該修正關鍵值的群識別符位元,並且POB 0表示該修正關鍵值的後置位元,並且 其中基於該修正關鍵值產生該關鍵值包含: 將該關鍵值的該群識別符位元的最高有效位元替換為0以產生該關鍵值。
- 如請求項16所述之方法,其中基於該修正關鍵值產生該關鍵值包含: 設定該修正關鍵值的位元中的一個位元為0以產生該關鍵值。
- 如請求項16所述之方法,其中該複數個編碼字表示為: { K’ , x 1^K, x 2^K, … , x N^K }, 其中{ x 1, x 2, … , x N}表示一輸入封包的複數個字,K表示用於編碼該複數個編碼字的該關鍵值,K’表示該修正關鍵值,並且^表示該二進制互斥或(binary XOR)運算。
- 如請求項16所述之方法,其中接收該傳輸資料包含: 透過一通訊通道從一發送器接收該傳輸資料。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163239281P | 2021-08-31 | 2021-08-31 | |
US63/239,281 | 2021-08-31 | ||
US17/556,899 US11637685B2 (en) | 2021-08-31 | 2021-12-20 | System and method for transition encoding with flexible word-size |
US17/556,899 | 2021-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202320493A true TW202320493A (zh) | 2023-05-16 |
Family
ID=83457264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111132968A TW202320493A (zh) | 2021-08-31 | 2022-08-31 | 具有可伸縮字長的轉態編碼器及轉態編碼方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11637685B2 (zh) |
EP (1) | EP4142229A1 (zh) |
JP (1) | JP2023036033A (zh) |
KR (1) | KR20230033623A (zh) |
CN (1) | CN115733606A (zh) |
TW (1) | TW202320493A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233247B (zh) * | 2023-04-25 | 2023-07-21 | 合肥智鼎科技服务有限公司 | 一种具备预处理性能的数据传输处理系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0162558B1 (en) | 1984-05-21 | 1991-08-21 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for generating a run length limited code |
FR2618624B1 (fr) * | 1987-07-24 | 1992-04-30 | Michel Servel | Systeme de commutation de multiplex temporels hybrides a memoire tampon optimisee |
EP0551691A1 (en) | 1992-01-15 | 1993-07-21 | International Business Machines Corporation | Sorting method |
DE69330908T2 (de) | 1993-10-19 | 2002-04-04 | Xerox Corp., Rochester | Kompakt-gespeicherte Wortgruppen |
US5420866A (en) | 1994-03-29 | 1995-05-30 | Scientific-Atlanta, Inc. | Methods for providing conditional access information to decoders in a packet-based multiplexed communications system |
US5969649A (en) * | 1998-02-17 | 1999-10-19 | International Business Machines Corporation | Run length limited encoding/decoding with robust resync |
US6070164A (en) | 1998-05-09 | 2000-05-30 | Information Systems Corporation | Database method and apparatus using hierarchical bit vector index structure |
US6295361B1 (en) | 1998-06-30 | 2001-09-25 | Sun Microsystems, Inc. | Method and apparatus for multicast indication of group key change |
US6417788B1 (en) | 1999-07-09 | 2002-07-09 | Maxtor Corporation | High rate runlength limited codes for 10-bit ECC symbols |
US7088398B1 (en) | 2001-12-24 | 2006-08-08 | Silicon Image, Inc. | Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data |
US7664015B2 (en) * | 2004-10-20 | 2010-02-16 | L-3 Communications Security & Detection Systems | Inspection system with data acquisition system interconnect protocol |
US20080253562A1 (en) | 2007-04-12 | 2008-10-16 | Nokia Corporation | Handshake procedure |
US9591002B2 (en) | 2008-04-15 | 2017-03-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for providing trustworthiness of communication |
KR101405457B1 (ko) | 2009-04-07 | 2014-06-11 | 한국전자통신연구원 | 그룹 변조 방법 및 이를 이용한 송신 장치 |
US8724243B1 (en) | 2012-12-07 | 2014-05-13 | Lsi Corporation | Systems and methods for run length limited encoding |
KR101494510B1 (ko) | 2013-03-12 | 2015-02-23 | 명지대학교 산학협력단 | 그룹키 관리 장치 및 방법과 이에 관한 기록매체 |
US9223765B1 (en) | 2013-10-09 | 2015-12-29 | Google Inc. | Encoding and decoding data using context model grouping |
GB2521828A (en) | 2013-12-23 | 2015-07-08 | Sony Corp | Data encoding and decoding |
US10291354B2 (en) | 2016-06-14 | 2019-05-14 | Qualcomm Incorporated | High performance, flexible, and compact low-density parity-check (LDPC) code |
US10116430B1 (en) * | 2016-09-01 | 2018-10-30 | Xilinx, Inc. | Alignment marker independent data alignment for a receiver |
WO2018126496A1 (en) | 2017-01-09 | 2018-07-12 | Qualcomm Incorporated | Bit allocation for encoding and decoding |
US10860419B2 (en) * | 2018-12-28 | 2020-12-08 | Intel Corporation | Minimal aliasing bit-error correction code |
CN110730067B (zh) | 2019-09-06 | 2021-10-19 | 深圳开源互联网安全技术有限公司 | 密钥生成方法、装置、计算机可读存储介质及终端设备 |
KR20230021949A (ko) * | 2021-08-06 | 2023-02-14 | 삼성전자주식회사 | 메모리 장치 및 이의 동작 방법 |
-
2021
- 2021-12-20 US US17/556,899 patent/US11637685B2/en active Active
-
2022
- 2022-08-30 JP JP2022137344A patent/JP2023036033A/ja active Pending
- 2022-08-30 KR KR1020220109160A patent/KR20230033623A/ko unknown
- 2022-08-30 EP EP22192955.7A patent/EP4142229A1/en active Pending
- 2022-08-31 TW TW111132968A patent/TW202320493A/zh unknown
- 2022-08-31 CN CN202211054809.3A patent/CN115733606A/zh active Pending
-
2023
- 2023-01-24 US US18/158,883 patent/US11888962B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230071335A1 (en) | 2023-03-09 |
US20230163941A1 (en) | 2023-05-25 |
US11888962B2 (en) | 2024-01-30 |
US11637685B2 (en) | 2023-04-25 |
KR20230033623A (ko) | 2023-03-08 |
JP2023036033A (ja) | 2023-03-13 |
EP4142229A1 (en) | 2023-03-01 |
CN115733606A (zh) | 2023-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Deng et al. | DC-free coset codes | |
US20040025104A1 (en) | Parallel convolutional encoder | |
US8533577B1 (en) | Universal parity encoder | |
WO2022088709A1 (zh) | 一种以太网的编码方法及装置 | |
TW202320493A (zh) | 具有可伸縮字長的轉態編碼器及轉態編碼方法 | |
KR100281738B1 (ko) | 니블 반전 및 블록 반전 부호의 부호화 및 복호화 방법, 그 부호 및 복호장치 | |
CN113507289B (zh) | 一种编码器、解码器及码字生成方法 | |
TW202324040A (zh) | 減少錯誤傳播的轉態編碼器及轉態編碼方法 | |
US11777765B2 (en) | Signal transmission system, transmitter encoding apparatus and receiver decoding apparatus | |
US9490836B2 (en) | Apparatus for improved encoding and associated methods | |
KR100528139B1 (ko) | 코드워드를 생성하는 방법 및 장치 | |
TW202245428A (zh) | 低編碼開銷轉態編碼之編碼器及解碼 | |
US6101281A (en) | Method for improving data encoding and decoding efficiency | |
CN108737017A (zh) | 信息处理的方法、装置和通信设备 | |
KR100997870B1 (ko) | 데이터 인코딩 및 디코딩 방법, 데이터 전송 방법, 송신기 및 수신기 | |
CN113541871A (zh) | 一种生成码字的方法及编解码器 | |
US11632127B2 (en) | Near-optimal transition encoding codes | |
TW202032923A (zh) | 交插器 | |
Tse et al. | Polar coding for parallel Gaussian channels | |
WO2024055954A1 (zh) | 一种数据处理方法以及数据处理装置 | |
KR101632116B1 (ko) | 이진 데이터의 압축 및 복원 방법과 장치 | |
Priya et al. | Highly Compressed and Errorless Reconfigurable DAB/DAB+ Architecture | |
Usher et al. | Coding | |
JPH06284019A (ja) | 畳み込み符号化方法および誤り訂正符号化復号化装置 |