CN115733606A - 用于对数据进行编码和解码的方法以及转换编码器 - Google Patents
用于对数据进行编码和解码的方法以及转换编码器 Download PDFInfo
- Publication number
- CN115733606A CN115733606A CN202211054809.3A CN202211054809A CN115733606A CN 115733606 A CN115733606 A CN 115733606A CN 202211054809 A CN202211054809 A CN 202211054809A CN 115733606 A CN115733606 A CN 115733606A
- Authority
- CN
- China
- Prior art keywords
- input
- words
- bits
- key value
- group
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 21
- 230000000295 complement effect Effects 0.000 claims description 17
- 101150071746 Pbsn gene Proteins 0.000 description 14
- 238000001341 grazing-angle X-ray diffraction Methods 0.000 description 12
- 230000007704 transition Effects 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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
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
本发明涉及用于对数据进行编码和解码的方法以及转换编码器。用于对输入数据进行编码的方法包括:识别输入数据的输入包,输入包包括多个输入字,多个输入字中的每个输入字包括前位、组ID位和后位;基于多个输入字的组ID位,将多个输入字组织到多个组中;基于多个组中的每个组中的输入字的数量,识别多个组中的密钥组;基于多个输入字中的与密钥组相对应的一个输入字的前位、组ID位和后位,确定密钥值,并且基于密钥值和多个输入字,生成多个编码后的字。
Description
相关申请的交叉引用
本申请要求2021年8月31日递交的第63/239,281号美国临时申请(“灵活字长转换编码代码”)以及2021年12月20日递交的第17/556,899号美国专利申请(“用于具有灵活字长的转换编码的系统和方法”)的优先权和权益,该申请的全部内容通过引用并入本文。
技术领域
本公开的实施例的方面总体上涉及数据通信系统。
背景技术
一般来说,串行数据通信常用于通过电线、通过光纤乃至无线地进行通信的各种系统中。在数字数据的串行通信中,当发射器不与数据流一起传输时钟信号时,接收器必须使用来自数据流的时序信息来重新生成时钟。从串行数据流中提取时序信息的过程被称为时钟恢复,并且对于允许接收器电路对被传输的符号进行解码至关重要。
可以通过修改被传输的数据以确保在数据流内有足够数量的转换,来帮助在接收器处的时钟恢复。换句话说,必须限制在最坏情况下的无转换游程长度。为了确保频繁的转换,发射器可以利用转换编码算法来对原始数据进行编码,使得转换经常地发生。
本背景技术部分中公开的以上信息仅用于增强对本公开的理解,并且因此以上信息可能包含不形成本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的实施例的方面涉及用于对具有灵活字长和游程长度限制的传输流进行转换编码的系统和方法。在一些实施例中,转换编码使用数据包中每个字的位的子集作为字的组ID,基于包中的字的组ID将包中的字组织到不同的组中,识别具有最小的字的数量的密钥组,并且然后基于组ID和密钥组中缺失的位图案确定编码密钥值。然后,转换编码器在将编码后的字传输到接收器之前,使用密钥值对每个字进行编码。在一些实施例中,可以针对任何期望的字长和游程长度限制容易地修改转换编码。
根据本发明的一些实施例,提供了对输入数据进行编码的方法,该方法包括:识别输入数据的输入包,输入包包括多个输入字,多个输入字中的每个输入字包括前位、组ID位和后位;基于多个输入字的组ID位,将多个输入字组织到多个组中;基于多个组中的每个组中的输入字的数量,识别多个组中的密钥组;基于多个输入字中的与密钥组相对应的一个输入字的前位、组ID位和后位,确定密钥值;并且基于密钥值和多个输入字,生成多个编码后的字。
在一些实施例中,该方法进一步包括:接收输入数据;并且将输入数据分成包括输入包的多个数据包。
在一些实施例中,多个输入字中的每个输入字被表示为:[PRBi GIDi POBi],其中PRBi表示前位,GIDi表示组ID位,POBi表示后位,并且i为大于0的整数。
在一些实施例中,输入包包括31个输入字,多个输入字中的每个输入字包括8位,前位包括多个输入字中的对应输入字的最高有效位中的两个,组ID位包括对应输入字的4个中间位,并且后位包括对应输入字的2个最低有效位,多个组包括8组,并且输入包的游程长度为10。
在一些实施例中,将多个输入字组织到多个组中包括:将多个输入字中的具有相同的组ID位或具有相同的组ID位的补码的输入字分组到多个组中的同一组中,并且多个组的数量是组ID位中的位的数量的一半。
在一些实施例中,将多个输入字组织到多个组中包括:将多个输入字中的具有小于(2g-1)/2且等于第一值的组ID位值的一个输入字和多个输入字中的具有大于(2g-1)/2且等于第一值的补码的组ID位值的另一个输入字分组到同一组中,其中g表示组ID位的位长。
在一些实施例中,识别密钥组包括:将密钥组识别为多个组当中的具有最少数量的输入字或具有低于阈值的数量的输入字的一个组。
在一些实施例中,确定密钥值包括:将密钥组ID位确定为多个输入字中的与密钥组相对应的输入字的组ID位;将密钥前位确定为从多个输入字中的与密钥组相对应的输入字的前位缺失的位;将密钥后位确定为从多个输入字中的与密钥组相对应的输入字的后位缺失的位;并且基于密钥前位、密钥组ID位和密钥后位生成密钥值。
在一些实施例中,密钥值被表示为:[PRB0 GID0 POB0],其中PRB0表示密钥前位,GID0表示密钥组ID位,并且POB0表示密钥后位。
在一些实施例中,密钥值与多个输入字中的一个输入字具有相同的位长,并且与多个输入字中的任何一个输入字不同。
在一些实施例中,多个编码后的字包括第一编码后的字和第二编码后的字,第一编码后的字至少基于密钥值并且第二编码后的字基于密钥值和多个输入字中的每个输入字。
在一些实施例中,生成多个编码后的字包括:基于密钥值,生成修改后的密钥值;将第一编码后的字生成为修改后的密钥值;并且通过对多个输入字中的每个输入字和密钥值进行二进制XOR运算来生成第二编码后的字。
在一些实施例中,多个编码后的字被表示为:{K',x1^K,x2^K,…,xN^K},其中K表示密钥值,K'表示修改后的密钥值,x1、x2、......、xN表示输入包的多个输入字,N为大于2的整数,并且^用符号表示二进制XOR运算。
在一些实施例中,方法进一步包括:通过通信信道向接收器传输传输数据,传输数据包括多个编码后的字。
根据本发明的一些实施例,提供了用于对输入数据进行编码的转换编码器,转换编码器包括:处理器;以及处理器本地的处理器存储器,其中,处理器存储器具有在处理器存储器上存储的指令,当由处理器执行时,该指令使处理器进行:识别输入数据的输入包,输入包包括多个输入字,多个输入字中的每个输入字包括前位、组ID位和后位;基于多个输入字的组ID位将多个输入字组织到多个组中;识别多个组中的与低于阈值的数量的输入字相对应的密钥组;基于多个输入字中的与密钥组相对应的一个输入字的前位、组ID位和后位确定密钥值;并且基于密钥值和多个输入字生成多个编码后的字。
根据本发明的一些实施例,提供了对传输数据进行解码的方法,方法包括:接收包括包含修改后的密钥值的多个编码后的字的传输数据,多个编码后的字包括第一编码后的字;基于修改后的密钥值生成密钥值;并且通过对密钥值和第一编码后的字进行二进制XOR运算,来生成多个解码后的字中的第一解码后的字。
在一些实施例中,修改后的密钥值被表示为:[PRB0 GID0 POB0],其中PRB0表示修改后的密钥值的前位,GID0表示修改后的密钥值的组ID位并且POB0表示修改后的密钥值的后位,并且基于修改后的密钥值生成密钥值包括:将修改后的密钥值的组ID位的最高有效位(MSB)替换为零以生成密钥值。
在一些实施例中,基于修改后的密钥值生成密钥值包括:将修改后的密钥值的位当中的位设置为零以生成密钥值。
在一些实施例中,多个编码后的字被表示为:{K',x1^K,x2^K,…,xN^K},其中x1、x2、……、xN表示输入包的多个输入字,K表示用于对多个输入字进行编码的密钥值,K'表示修改后的密钥值,并且^用符号表示二进制XOR运算。
在一些实施例中,接收传输数据包括:通过通信信道从发射器接收传输数据。
附图说明
附图与说明书一起图示本公开的示例实施例,并且与描述一起用于解释本公开的原理。
图1A是根据本公开的一些实施例的串行数据通信系统的框图。
图1B图示根据本公开的一些实施例的串行数据通信系统的发射器/接收器的框图。
图2图示根据本公开的一些实施例的被分割为多个字的数据的包。
图3图示根据本公开的一些实施例的对输入数据进行编码的过程。
图4图示根据本公开的一些实施例的对传输数据进行解码的过程。
具体实施方式
以下阐述的详细描述旨在作为根据本公开提供的用于在串行数据通信中对数据进行转换编码/解码的系统和方法的示例实施例的描述,而不旨在表示可以构建或利用本公开的仅有的形式。描述结合图示的实施例阐述本公开的特征。然而,应理解,相同或等同的功能和结构可以由也旨在被涵盖在本公开的范围内的不同实施例来实现。如在本文中别处指代的,相同的附图标记旨在指示相同的元件或特征。
在相关技术中,为了实现游程长度受限的传输,发射器可以通过基于输入数据识别密钥、使用密钥对输入数据的每个字进行编码并将密钥与编码后的字一起传输到接收器,来将输入数据转换为用于传输的编码后的字。编码后的字可以具有特定的游程长度限制。接收器依次识别传输数据中的密钥,并且使用该密钥对接收的编码后的字进行解码,以获得原始的输入数据。然而,相关技术的编码器通常用与由协议层生成的字节大小的串行数据不对齐(即,不同)的字长工作。例如,协议层可以以8位字节为单位生成数据,而编码器可以以6位为单位进行转换编码。因此,编码器可能必须在转换编码包中利用位填充/填塞,这会增加编码开销或者依赖额外的对齐硬件,这会占用昂贵的不动产并增加额外的成本和复杂性。
根据一些实施例,转换编码器能够对字节大小的数据或具有任意合适的位数的字长进行编码,以产生各种游程长度限制。转换编码器还可以具有任意合适的游程长度限制,并且不限于特定的游程长度。这消除了对位填充或额外的字节到字的对齐硬件的需要,这可以简化发射器/接收器设计并降低系统成本。
图1A是根据本公开的一些实施例的串行数据通信系统1的框图。图1B图示根据本公开的一些实施例的串行数据通信系统1的发射器/接收器的框图。
参考图1A,在一些实施例中,串行数据通信系统1包括发射器10、通信信道(例如,串行通信信道)15和接收器20。发射器10可以包括用于对输入数据流进行压缩和/或编码以生成用于通过通信信道15(例如,具有一个或多个导体的传输线)传输到接收器20的传输数据的数据压缩器和/或编码器12。接收器20可以包括用于对由接收器20接收到的传输数据进行解压缩和/或解码以恢复输入数据流作为输出数据流的数据解压缩器和/或解码器22。接收器20可以进一步包括时钟恢复电路24和转换解码器200。
根据一些实施例,发射器10包括被配置为通过确保以至少特定频率发生转换来对传输数据流进行编码的转换编码器100,该特定频率使接收器20能够从通过通信信道15传输的编码后的数据流(例如,转换编码后的数据流)中提取时钟信号。即,转换编码器100限制编码后的数据流的游程长度。
如图1B中所示,由发射器10和接收器20的组成部件进行的操作可以由可以包括被利用以处理数据或数字信号的硬件、固件和软件的任意组合的处理电路或处理器30进行。处理电路硬件可以包括例如专用集成电路(ASIC)、通用或专用中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)和诸如现场可编程门阵列(FPGA)的可编程逻辑器件。如在本文中使用的,在处理电路中,每个功能由被配置(即,被硬接线)为执行该功能的硬件执行或者由被配置为运行存储在非暂时性存储介质中的指令的更通用的硬件(诸如CPU)执行。处理电路可以被制造在单个印刷线路板(PWB)上或跨多个互连的PWB分布。处理电路可以包含其他处理电路;例如,处理电路可以包括在PWB上互连的两个处理电路、FPGA和CPU。处理器30本地的处理器存储器32可以具有在处理器存储器32上存储的当由处理器30执行时使处理器30进行本文中关于图1A和图2至图4描述的操作的指令。
图2图示根据本公开的一些实施例的被分割为多个字的数据的包。
参考图1A和图2,在一些实施例中,转换编码器100将输入数据(该输入数据可能已经或可能尚未被数据压缩器和/或编码器12编码/压缩)划分为多个输入数据包(例如,位流)。每个输入数据包(也被称为输入包)被分割为N个字/数字,其中每个字/数字包含q位,其中N和q是大于零的整数。因此,输入包X可以被表示为:
X[0:q×N-1]=x1(b[0:q-1]),x2(b[q:2q-1]),…,xN(b[q×(N-1):(q×N)-1]) 等式(1)
其中x1、x2、…、xN表示构成输入包X的N个字/数字,并且各自具有0至2q-1之间的值。在图2的示例中,每个字包括8位(即,q=8)并且具有在[0:255]范围内的值。然而,本发明的实施例不限于此,并且每个字可以包括任意合适数量的位(例如,6位、10位等)。
转换编码器100对每个字进行编码/加扰,以确保每个字/数字中的转换并将被传输的数据的游程长度限制为期望值。在一些实施例中,转换编码器100以防止具有超出游程长度/2的前导或后续游程长度的字被传输的方式对包的字进行编码。在8位的字和10的期望游程长度的示例中,转换编码器100消除如下字(也被称为禁止字):
000000xx
xx000000
111111xx
xx111111
其中“x”可以是零或一(“无关位”)。因此,两个连续的字中的游程的最坏情况是xx100000 000001xx和xx011111 111110xx,这两者都具有10的游程长度。
为了对接收的输入字进行编码,转换编码器100首先将每个输入字的位分割为前位(PRBi)、组ID位(GIDi)和后位(POBi),并且i为大于0的整数。即,每个输入字可以被表示为[PRBi GIDi POBi](也可以被表示为[PRB GID POB]),其中PRB是输入字的最高有效位,GID是中间位,并且POB是最低有效位。GID中的中间位的数量可以被表示为:
GID中的中间位的数量:g=RL–WBL+2 (等式2)
其中RL表示期望的游程长度,并且WBL表示输入字的位长。在以上的示例中,GID中的中间位的数量等于4(=10-8+2)。因此,如以下的表1中所示,以上禁止字可以被分割为2位PRB、4位GID和2位POB:
表1:
如从表1中观察到的,如果GID不是全零或全一,则可以避免禁止字。此外,当GID为全零或全一时,当且仅当PRB和POB都不是与GID的位相同时,才可以避免禁止字。因此,转换编码器100对输入字的GID进行编码,使得编码后的字中的大多数不具有等于全零或全一的GID,并且对PRB和POB进行编码,使得具有全零或全一的GID的编码后的字不具有与GID相似的全零或全一。
在一些实施例中,一旦输入字被分割,输入字基于输入字的GID被分组在一起。这里,具有相同的GID和补码(即,1的补码)GID(例如,0000和1111)的输入字被分组在一起。即,当GID具有g位时,那些具有小于(2g-1)/2的GID值的输入字被组织在与GID匹配的组编号中,并且那些具有大于(2g-1)/2的GID值的输入字被组织在与它们的补码(逆)GID匹配的组编号中。因此,输入字被组织到的组的编号等于2g-1。基于其GID被组织的输入字可以被称为常规字,并且基于其补码GID被组织的那些输入字可以被称为补码字。
将输入字组织到不同的组中可以借助以下的表2被可视化。在表2的示例中,示例包的每个输入字有8位,GID有4位(即,g=4),并且PRB和POB各自有2位。因此,转换编码器100将输入字组织到8个组(即,组0到组7)中。
表2:
在一些实施例中,转换编码器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可以将零的MSB附加到从发射器10接收的GID0的剩余位(例如,001)。通过不传输零的MSB,转换编码器100可以实现用于传输更少的开销位的提高的编码效率。
在密钥组的GID0基于成员字的GID(例如,GID0=0001)的实施例中,密钥组的PRB被识别为任何常规字的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。因此,密钥值可以是[000001 00]、[00 0001 01]、[00 1110 00]或[00 1110 01]。这里,密钥值与输入字具有相同的位数(即,位长)。
在表2的在其中包包括31个字的示例中,至少一个组将具有3个或更少的成员。因此,可以找到从密钥组的PRB和POB缺失的一个或多个位图案。只要包中的字的数量N小于组的数量乘以PRB/POB字段中可能的位图案的数量,就可以满足该条件(在表2的示例中,存在8个组和PRB和POB中4个位图案,因此包大小小于8×4=32)。
在一些实施例中,转换编码器100使用密钥值对输入字进行编码,以生成包括多个用于传输到接收器20的编码后的字的编码包。每个编码后的字是对对应的输入字和密钥值进行XOR运算的结果。因此,编码后的包Y可以被表示为:
Y={y0,y1,…,yN}={K,x1^K,x2^K,…,xN^K} (等式3)
其中K表示密钥值,x1、x2、…、xN表示组成输入包X的N个输入字,并且符号^用符号表示二进制XOR运算。由于编码后的包Y包括密钥值以及编码后的字,因此编码后的包Y的字长比输入包X的字长大一(即,编码后的包包括N+1个字)。这里,整个密钥值作为编码后的字y0被传输到接收器20;然而,本公开的实施例不限于此。例如,转换编码器100可以构造修改后的密钥值K',并且将修改后的密钥值K'而不是密钥值K传输到接收器20。在假设密钥值的GID0的MSB为零的实施例中,转换编码器100可以将修改后的密钥值K'构造成与GID0的MSB被GID0的下一个有效位的补码代替的密钥值K相同。例如,参考表2,当密钥值的GID0为0001时,修改后的密钥值的GID0可能为1001。可以这样做以确保在修改后的密钥值K'中存在转换并且在修改后的密钥值K'的传输期间不违反游程长度。在这样的实施例中,编码后的包Y可以被表示为:
Y={y0,y1,…,yN}={K',x1^K,x2^K,…,xN^K} (等式4)
尽管等式3和等式4将密钥值/修改后的密钥值表示为编码后的包Y的第一个字,但是本公开的实施例不限于此。例如,密钥值/修改后的密钥值可以是编码后的包Y中的最后一个字,或者只要接收器20知道密钥值/修改后的密钥值在编码后的包Y内的位置,就可以具有在编码后的包Y内的任何其他合适的位置。因为确定密钥值/修改后的密钥值的方式,编码后的字表现出期望的游程长度,这允许接收器20从被传输的包中恢复时钟。
表2提供了基于示例输入字和所生成的密钥值而生成的编码后的字。因为密钥值的GID(以及等价地,密钥组的GID)通过定义而与其他组的GID不同,所以对密钥值和其他组的输入字进行异或得到作为结果的编码后的字的GID中的位转换。因此,如表2中所示,密钥值的GID确保至少与密钥组以外的组相对应的那些字的游程长度为10。此外,使用与密钥组的字的PRB和POB不同的密钥值的PRB0和POB0确保将密钥组内的字与密钥值进行异或得到编码后的字的PRB和POB两者中的位转换(即,连续的0位和1位)。结果,即使密钥组内的字也被编码,以满足期望的游程长度(例如,表2中的10的期望的游程长度)。
发射器10经由通信信道15将编码后的包Y传送给接收器20。在编码后的包Y包括密钥值K(如,例如等式3中的密钥值K)的实施例中,一旦接收器20接收到编码后的包Y,转换解码器200就识别密钥值(例如,接收到的编码后的包Y中的第一个字),并且基于密钥值对剩余的编码后的字进行解码,以生成被表示为{x'1,x'2,...,x'N}的、解码后的包X'。转换解码器200对第二个字和后面的字与密钥值进行异或运算。在一些实施例中,解码后的字x'i(i为大于或等于1的整数)可以被表示为:
x'i=yi^K=(xi^K)^K=xi (等式5)
因此,转换解码器200可以获得原始的输入字。在编码后的包Y包括修改后的密钥值K'(而不是例如,如等式4中表示的密钥值K)的实施例中,转换解码器200识别修改后的密钥值(例如,接收到的编码后的包Y中的第一个字),通过将修改后的密钥值的GID0的MSB替换为零而基于修改后的密钥值K'生成密钥值K,并且继续基于密钥值K对剩余的编码后的字进行解码,如以上描述的。
图3图示根据本公开的一些实施例的对输入数据进行编码的过程300。
当处理输入数据以进行转换时,转换编码器100接收输入数据(例如,输入数据流),将输入数据分成多个数据包,并且识别输入数据的输入包(步骤S302)。输入包包括多个输入字,多个输入字中的每个输入字包括前位、组ID位和后位。
在一些实施例中,转换编码器100基于多个输入字的组ID位将多个输入字组织到多个组中(步骤S304)。在这样做时,转变编码器100将多个输入字中的具有相同的组ID位和相同的组ID位的补码的输入字分组到多个组中的同一组中。在一些实施例中,转变编码器100将多个输入字中的具有小于(2g-1)/2且等于第一值的组ID位值的一个输入字和多个输入字中的具有大于(2g-1)/2且等于第一值的补码的组ID位值的另一个输入字分组到同一组中,其中g表示组ID位的位长。多个组的数量可以是组ID位中的位的数量的一半。
在一些示例中,输入包包括31个输入字,多个输入字中的每个输入字包括8位,前位包括多个输入字中的对应输入字的最高有效位中的两个,组ID位包括对应输入字的4个中间位,后位包括对应输入字的2个最低有效位,多个组包括8组,并且输入包的游程长度为10。然后,转变编码器100从多个组当中识别具有最少数量的输入字的密钥组(步骤S306)。
在一些实施例中,转换编码器100基于多个输入字中的与密钥组相对应的一个输入字的前位、组ID位和后位,来确定密钥值(步骤S308)。在这样做时,转换编码器100将密钥组ID位确定为多个输入字中的与密钥组相对应的输入字的组ID位,将密钥前位确定为从多个输入字中的与密钥组相对应的输入字的前位缺失的位,将密钥后位确定为从多个输入字中的与密钥组相对应的输入字的后位缺失的位,并且基于密钥前位、密钥组ID位和密钥后位生成密钥值。这里,密钥值与多个输入字中的一个输入字具有相同的位长,并且与多个输入字中的任何一个输入字不同。
转换编码器100基于密钥值和多个输入字生成多个编码后的字(步骤S310)。多个编码后的字包括第一编码后的字和第二编码后的字,其中第一编码后的字至少基于密钥值,并且第二编码后的字基于密钥值和多个输入字中的第一输入字。转换编码器100通过将第一编码后的字生成为密钥值并且通过对多个输入字中的一个输入字和密钥值进行二进制XOR运算来生成第二编码后的字,而生成编码后的字。
然后,转换编码器100通过通信信道15将包括编码后的字的传输数据传输到接收器20。
图4图示根据本公开的一些实施例的对传输数据进行解码的过程400。
在一些实施例中,接收器20通过通信信道15从发射器10接收包括多个编码后的字的传输数据(步骤S402)。编码后的字包括第一编码后的字和第二编码后的字。在一些示例中,第一编码后的字和第二编码后的字可以是连续的字。接收器20(例如,转换解码器200)通过对第一编码后的字和第二编码后的字进行二进制XOR运算而生成多个解码后的字中的第一解码后的字,以生成多个解码后的字(步骤S404)。第一编码后的字的位长可以与第一解码后的字的位长相同。
如以上描述的,根据一些实施例的转换编码器100能够以任何合适的字长对数据进行编码以产生任何合适的游程长度限制。在一些实施例中,转换编码器100通过以特定方式基于输入数据确定密钥值来实现这种期望的特征,这消除了对实现字节到字对齐硬件或位填充的需要,简化了发射器/接收器设计并降低了整体系统成本。此外,根据一些实施例,串行数据通信系统1在不给转换编码方案增加任何开销的情况下,实现这种期望的效果。
将理解,虽然术语“第一”、“第二”、“第三”等可以在本文中用于描述各种元件、部件、区、层和/或部分,但是这些元件、部件、区、层和/或部分不应受这些术语的限制。这些术语用于将一个元件、部件、区、层或部分与另一元件、部件、区、层或部分区分开。因此,以上讨论的第一元件、部件、区、层或部分可以被称为第二元件、部件、区、层或部分,而不脱离本发明构思的范围。
在本文中使用的术语用于描述具体实施例的目的,而不是旨在限制本发明构思。如在本文中使用的,单数形式“一”旨在也包括复数形式,除非上下文另有明确指示。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指明所陈述的特征、整体、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、元件、部件和/或其组的存在或附加。如在本文中使用的,术语“和/或”包括关联列出的项目中的一个或多个的任意和所有组合。此外,当描述本发明构思的实施例时,“可以”的使用意味着“本发明构思的一个或多个实施例”。而且,术语“示例性”旨在意味着示例或例示。
如在本文中使用的,术语“使用”、“使用中”和“被使用”可以被认为分别与术语“利用”、“利用中”和“被利用”同义。
尽管已经具体参考本公开的例示性实施例详细描述了本公开,但是在本文中描述的实施例不旨在是详尽的或者将本公开的范围限制为所公开的确切形式。本公开所属领域和技术的技术人员将理解,所描述的结构以及组装和操作的方法的改变和变化可以被实践,而不有意图地背离本公开的原理和范围,如在所附权利要求及其等同物中阐述的。
Claims (20)
1.一种对输入数据进行编码的方法,所述方法包括:
识别所述输入数据的输入包,所述输入包包括多个输入字,所述多个输入字中的每个输入字包括前位、组ID位和后位;
基于所述多个输入字的所述组ID位,将所述多个输入字组织到多个组中;
基于所述多个组中的每个组中的输入字的数量,识别所述多个组中的密钥组;
基于所述多个输入字中的与所述密钥组相对应的一个输入字的所述前位、所述组ID位和所述后位,确定密钥值;并且
基于所述密钥值和所述多个输入字,生成多个编码后的字。
2.根据权利要求1所述的方法,进一步包括:
接收所述输入数据;并且
将所述输入数据分成包括所述输入包的多个数据包。
3.根据权利要求1所述的方法,其中,所述多个输入字中的每个输入字被表示为:
[PRBiGIDiPOBi],
其中PRBi表示所述前位,GIDi表示所述组ID位,POBi表示所述后位,并且i为大于0的整数。
4.根据权利要求1所述的方法,其中,所述输入包包括31个输入字,所述多个输入字中的每个输入字包括8位,所述前位包括所述多个输入字中的对应输入字的最高有效位中的两个,所述组ID位包括所述对应输入字的4个中间位,并且所述后位包括所述对应输入字的2个最低有效位,所述多个组包括8组,并且所述输入包的游程长度为10。
5.根据权利要求1所述的方法,其中,所述将所述多个输入字组织到多个组中包括:
将所述多个输入字中的具有相同的组ID位或具有相同的组ID位的补码的输入字分组到所述多个组中的同一组中,
其中,所述多个组的数量是所述组ID位中的位的数量的一半。
6.根据权利要求1所述的方法,其中,所述将所述多个输入字组织到多个组中包括:
将所述多个输入字中的具有小于(2g-1)/2且等于第一值的组ID位值的一个输入字和所述多个输入字中的具有大于(2g-1)/2且等于所述第一值的补码的组ID位值的另一个输入字分组到同一组中,其中g表示所述组ID位的位长。
7.根据权利要求1所述的方法,其中,识别所述密钥组包括:
将所述密钥组识别为所述多个组当中的具有最少数量的输入字或具有低于阈值的数量的输入字的一个组。
8.根据权利要求1所述的方法,其中,确定所述密钥值包括:
将密钥组ID位确定为所述多个输入字中的与所述密钥组相对应的输入字的组ID位;
将密钥前位确定为从所述多个输入字中的与所述密钥组相对应的输入字的前位缺失的位;
将密钥后位确定为从所述多个输入字中的与所述密钥组相对应的输入字的后位缺失的位;并且
基于所述密钥前位、所述密钥组ID位和所述密钥后位生成所述密钥值。
9.根据权利要求8所述的方法,其中,所述密钥值被表示为:
[PRB0 GID0 POB0],
其中PRB0表示所述密钥前位,GID0表示所述密钥组ID位,并且POB0表示所述密钥后位。
10.根据权利要求1所述的方法,其中,所述密钥值与所述多个输入字中的一个输入字具有相同的位长,并且与所述多个输入字中的任何一个输入字不同。
11.根据权利要求1所述的方法,其中,所述多个编码后的字包括第一编码后的字和第二编码后的字,所述第一编码后的字至少基于所述密钥值,并且所述第二编码后的字基于所述密钥值和所述多个输入字中的每个输入字。
12.根据权利要求11所述的方法,其中,生成所述多个编码后的字包括:
基于所述密钥值,生成修改后的密钥值;
将所述第一编码后的字生成为所述修改后的密钥值;并且
通过对所述多个输入字中的每个输入字和所述密钥值进行二进制XOR运算来生成所述第二编码后的字。
13.根据权利要求1所述的方法,其中,所述多个编码后的字被表示为:
{K',x1^K,x2^K,…,xN^K},
其中K表示所述密钥值,K'表示基于所述密钥值的修改后的密钥值,x1、x2、......、xN表示所述输入包的所述多个输入字,N为大于2的整数,并且^用符号表示二进制XOR运算。
14.根据权利要求1至13中任一项所述的方法,进一步包括:
通过通信信道向接收器传输传输数据,所述传输数据包括所述多个编码后的字。
15.一种用于对输入数据进行编码的转换编码器,所述转换编码器包括:
处理器;以及
所述处理器本地的处理器存储器,其中,所述处理器存储器具有在所述处理器存储器上存储的指令,当由所述处理器执行时,所述指令使所述处理器进行:
识别所述输入数据的输入包,所述输入包包括多个输入字,所述多个输入字中的每个输入字包括前位、组ID位和后位;
基于所述多个输入字的所述组ID位,将所述多个输入字组织到多个组中;
识别所述多个组中的与低于阈值的数量的输入字相对应的密钥组;
基于所述多个输入字中的与所述密钥组相对应的一个输入字的所述前位、所述组ID位和所述后位,确定密钥值;并且
基于所述密钥值和所述多个输入字,生成多个编码后的字。
16.一种对传输数据进行解码的方法,所述方法包括:
接收包括包含修改后的密钥值的多个编码后的字的所述传输数据,所述多个编码后的字包括第一编码后的字;
基于所述修改后的密钥值生成密钥值;并且
通过对所述密钥值和所述第一编码后的字进行二进制XOR运算,来生成多个解码后的字中的第一解码后的字。
17.根据权利要求16所述的方法,其中,所述修改后的密钥值被表示为:
[PRB0 GID0 POB0],
其中PRB0表示所述修改后的密钥值的前位,GID0表示所述修改后的密钥值的组ID位,并且POB0表示所述修改后的密钥值的后位,并且
其中,基于所述修改后的密钥值生成所述密钥值包括:
将所述修改后的密钥值的所述组ID位的最高有效位替换为零,以生成所述密钥值。
18.根据权利要求16所述的方法,其中,基于所述修改后的密钥值生成所述密钥值包括:
将所述修改后的密钥值的位当中的位设置为零,以生成所述密钥值。
19.根据权利要求16所述的方法,其中,所述多个编码后的字被表示为:
{K',x1^K,x2^K,…,xN^K},
其中x1、x2、……、xN表示输入包的多个输入字,K表示用于对所述多个输入字进行编码的所述密钥值,K'表示所述修改后的密钥值,并且^用符号表示所述二进制XOR运算。
20.根据权利要求16至19中任一项所述的方法,其中,接收所述传输数据包括:
通过通信信道从发射器接收所述传输数据。
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 |
---|---|
CN115733606A true CN115733606A (zh) | 2023-03-03 |
Family
ID=83457264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211054809.3A Pending CN115733606A (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 |
EP0649106B1 (en) | 1993-10-19 | 2001-10-10 | Xerox Corporation | Compactly stored word groups |
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 |
EP2277296B1 (en) | 2008-04-15 | 2017-02-15 | 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 EP EP22192955.7A patent/EP4142229A1/en active Pending
- 2022-08-30 KR KR1020220109160A patent/KR20230033623A/ko unknown
- 2022-08-31 CN CN202211054809.3A patent/CN115733606A/zh active Pending
- 2022-08-31 TW TW111132968A patent/TW202320493A/zh unknown
-
2023
- 2023-01-24 US US18/158,883 patent/US11888962B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4142229A1 (en) | 2023-03-01 |
US20230163941A1 (en) | 2023-05-25 |
JP2023036033A (ja) | 2023-03-13 |
KR20230033623A (ko) | 2023-03-08 |
US11637685B2 (en) | 2023-04-25 |
US11888962B2 (en) | 2024-01-30 |
TW202320493A (zh) | 2023-05-16 |
US20230071335A1 (en) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0707402A2 (en) | Trellis coded modulation employing lower dimensionality convolutional encoder | |
JPH05284180A (ja) | 10ビットデータバイトを符号化し送信しかつ受信する方法および10b/12bモードの送信装置 | |
US20070168835A1 (en) | Serial communications system and method | |
KR100281738B1 (ko) | 니블 반전 및 블록 반전 부호의 부호화 및 복호화 방법, 그 부호 및 복호장치 | |
CN115733606A (zh) | 用于对数据进行编码和解码的方法以及转换编码器 | |
CN113507289B (zh) | 一种编码器、解码器及码字生成方法 | |
CN111726312A (zh) | 差分信号处理设备、其操作方法和电子信令的方法 | |
TW200926618A (en) | Devices and methods for bit-level coding and decoding of turbo codes, and a set of interleaving instructions recognizable by a data processing device | |
US6346895B1 (en) | Apparatus and method for using nibble inversion code | |
US11777765B2 (en) | Signal transmission system, transmitter encoding apparatus and receiver decoding apparatus | |
WO2020203548A1 (ja) | 符号化回路および半導体装置、符号化方法、データ伝送システム、復号回路 | |
CN115941116A (zh) | 编码方法、转换编码器和解码方法 | |
TW202337143A (zh) | 用於通用接近最佳封包編碼的通訊系統、發送器及接收器 | |
US7392464B1 (en) | Universal parity encoder | |
CN115314185A (zh) | 编码器和解码器 | |
KR100528139B1 (ko) | 코드워드를 생성하는 방법 및 장치 | |
US11632127B2 (en) | Near-optimal transition encoding codes | |
CN113169809A (zh) | 分布匹配器、信道编码器以及用于编码数据比特或符号的方法 | |
KR20140145437A (ko) | 이진 데이터의 압축 및 압축해제 방법과 장치 | |
TWI774233B (zh) | 訊號傳輸系統與發射端編碼裝置 | |
CN110336644B (zh) | 一种高维调制下的分层编码方法 | |
JP2011155330A (ja) | 伝送システム | |
JP2011147087A (ja) | 伝送装置、及び誤り訂正データの付加方法 | |
Usher et al. | Coding | |
Priya et al. | Highly Compressed and Errorless Reconfigurable DAB/DAB+ Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |