KR20230021567A - 데이터를 인코딩 및/또는 디코딩하기 위한 방법 및 장치 - Google Patents

데이터를 인코딩 및/또는 디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20230021567A
KR20230021567A KR1020220043602A KR20220043602A KR20230021567A KR 20230021567 A KR20230021567 A KR 20230021567A KR 1020220043602 A KR1020220043602 A KR 1020220043602A KR 20220043602 A KR20220043602 A KR 20220043602A KR 20230021567 A KR20230021567 A KR 20230021567A
Authority
KR
South Korea
Prior art keywords
base
packet
digits
coded
data
Prior art date
Application number
KR1020220043602A
Other languages
English (en)
Inventor
알리아잠 압바스파르
아미르 아미르해니
Original Assignee
삼성디스플레이 주식회사
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 삼성디스플레이 주식회사 filed Critical 삼성디스플레이 주식회사
Publication of KR20230021567A publication Critical patent/KR20230021567A/ko

Links

Images

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
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting 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/4906Transmitting 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 binary codes
    • H04L25/4908Transmitting 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 binary codes using mBnB codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0091Transmitter details
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • 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/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • H03M7/3064Segmenting
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting 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/4906Transmitting 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 binary codes
    • H04L25/4915Transmitting 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 binary codes using pattern inversion or substitution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/027Speed or phase control by the received code signals, the signals containing no special synchronisation information extracting the synchronising or clock signal from the received signal spectrum, e.g. by using a resonant or bandpass circuit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

입력 데이터를 인코딩하는 방법으로서, 상기 입력 데이터를 복수의 데이터 패킷으로 분할하는 단계 - 상기 복수의 데이터 패킷의 입력 패킷은 제1 베이스 시스템에서 복수의 디지트(digit)를 포함함 -, 상기 제1 베이스 시스템으로부터의 입력 패킷을 베이스-변환하여 제2 베이스 시스템의 복수의 변환된 디지트를 포함하는 베이스-변환된 패킷을 생성하는 단계 - 상기 제2 베이스 시스템은 상기 제1 베이스 시스템보다 낮은 베이스 값을 가짐 -, 및 통신 채널을 통한 전송을 위한 코딩된 패킷을 생성하기 위해 상기 변환된 디지트를 증가시키는 단계를 포함하는, 입력 데이터를 인코딩하는 방법.

Description

데이터를 인코딩 및/또는 디코딩하기 위한 방법 및 장치{METHOD FOR ENCODING AND/OR DECODING DATA AND APPRATUS THEREOF}
본 출원은 2021년 8월 4일에 출원한 미국 가출원번호 제63/229,401호를 우선권 주장하며, 이 특허출원의 전체 내용이 원용에 의해 본 명세서에 그 전체로서 포함된다.
본 개시의 실시예는 일반적으로 데이터 통신 시스템에 관한 것이다.
일반적으로, 직렬 데이터 통신은 유선, 광섬유를 통해 통신하거나, 심지어는 무선으로 통신하는 다양한 시스템에서 보통 사용된다. 디지털 데이터의 직렬 통신에서 전송기가 데이터 스트림과 함께 클록 신호를 전송하지 않으면 수신기는 데이터 스트림으로부터의 타이밍 정보를 사용하여 클록을 재생성해야 한다. 직렬 데이터 스트림으로부터 타이밍 정보를 추출하는 프로세스를 클록 복구라고 하며, 이는 수신기 회로가 전송된 심볼을 디코딩할 수 있도록 하는 데 중요하다.
수신기에서의 클록 복구는 데이터 스트림 내에 충분한 천이가 있음을 보장하기 위해 전송된 데이터를 수정함으로써 지원될 수 있다. 즉, 최악의 경우 무-천이(no-transition) 실행-길이(run-length)가 제한되어야 한다. 빈번한 천이를 보장하기 위해, 전송기는 천이 인코딩 알고리즘을 이용하여 천이가 정기적으로 발생하도록 원시 데이터를 인코딩할 수 있다. 이러한 방식으로 데이터를 인코딩하는 것은 전송 효율성에 영향을 줄 수 있는 중복(오버헤드) 비트를 사용하는 것을 수반한다.
본 배경기술 영역에서 개시되는 상기 정보는 본 개시 내용의 이해를 돕기 위한 것일 뿐이며, 따라서 본 기술분야에서 통상의 지식을 가진 자에게 이미 공지된 선행 기술을 형성하지 않는 정보를 포함할 수 있다.
본 발명이 해결하고자 하는 과제는 데이터 통신 시스템을 제공하는 것이다.
본 개시의 실시예의 일 양태는 수신기에서 클록 복구를 가능하게 하기 위해 전송 스트림을 효율적으로 인코딩하기 위한 시스템 및 방법에 관한 것이다. 일부 실시예에서, 전송기는 매우 낮은 오버헤드 및 높은-코드-효율성의 실행-길이-제한된(run-length-limited) 천이 코드를 사용하여 데이터 스트림을 인코딩한다.
본 개시의 실시예의 일 양태는 매우 낮은 오버헤드 및 높은-코드-효율성의 실행-길이-제한된 천이 코드를 이용하여 데이터 스트림으로부터 클록 신호를 복구하기 위한 시스템 및 방법에 관한 것이다.
본 발명의 일부 실시예에 따르면, 입력 데이터를 인코딩하는 방법이 제공되며, 방법은, 입력 데이터를 복수의 데이터 패킷으로 분할하는 단계로서, 복수의 데이터 패킷의 입력 패킷은 제1 베이스 시스템에서 복수의 디지트(digit)를 포함하는 단계, 제1 베이스 시스템으로부터의 입력 패킷을 베이스-변환하여 제2 베이스 시스템의 복수의 변환된 디지트를 포함하는 베이스-변환된 패킷을 생성하는 단계로서, 제2 베이스 시스템은 제1 베이스 시스템보다 낮은 베이스 값을 가지는 단계, 및 통신 채널을 통한 전송을 위한 코딩된 패킷을 생성하기 위해 변환된 디지트를 증가시키는 단계를 포함한다.
일부 실시예에서, 베이스-변환된 패킷의 복수의 변환된 디지트의 개수는 상기 입력 패킷의 복수의 디지트의 개수보다 1 이상 더 많다.
일부 실시예에서, 변환된 디지트를 증가시키는 단계는, 코딩된 디지트를 생성하기 위해 변환된 디지트 각각을 1씩 증가시키는 단계를 포함하고, 코딩된 패킷은 코딩된 디지트를 포함한다.
일부 실시예에서, 코딩된 패킷은 설정된 실행-길이 값 이하의 실행-길이를 갖는다.
일부 실시예에서, 입력 패킷은 N개의 디지트를 포함하고, N개의 디지트 각각은 q 비트를 포함하고, 여기서 제1 베이스 시스템은 베이스 2q 시스템이고, 제2 베이스 시스템은 베이스 2q-2 시스템이고, 코딩된 패킷은 2q-2 이하의 실행-길이를 갖는다.
일부 실시예에서, 입력 패킷은 N개의 디지트를 포함하고, N개의 디지트 각각은 q 비트를 포함하고, 여기서 제1 베이스 시스템은 베이스 2q 시스템이고, 제2 베이스 시스템은 베이스 2q-3 이하의 시스템이다.
일부 실시예에서, 입력 패킷은 X = [x1x2 ... xN]2 q 로 표현되는 N-디지트 베이스-2q 개이고, 디지트 x1, x2, ... xN 각각은 0 내지 2q-1까지의 값을 가지고, 여기서 베이스-변환된 패킷은 X = [y0y1y2 ... yN]2 q -2로 표현되는 (N+1)-디지트 베이스-(2q-2)개이고, 복수의 디지트 y1,... yN 각각은 0 내지 2q-3의 값을 가진다.
일부 실시예에서, 오버헤드 디지트 y0는 0 내지 2q-3까지의 값을 갖고, N 및 q는 N <= 1/(log(2q)/log(2q-2) -1)로 표현되는 관계를 가진다.
일부 실시예에서, 오버헤드 디지트 y0는 단일 이진 비트이고, N 및 q는 N <= log2 / (log(2q) - log(2q-2))로 표현되는 관계를 가진다.
일부 실시예에서, 코딩된 패킷은 X' = {y 0+1, y 1+1, y 2+1, ... , y N+1}로 표현되고, 코딩된 디지트 y 0+1 ... y N+1 각각은 모두 0을 포함하지 않거나 모두 1을 포함하지는 않는다.
일부 실시예에서, 입력 패킷을 베이스-변환하는 단계는, 시프트, 덧셈 및 뺄셈 연산만을 포함하는 반복적인 프로세스를 포함한다.
일부 실시예에서, 코딩된 패킷은 적어도 하나의 비트 천이를 포함한다.
일부 실시예에서, 본 방법은 통신 채널을 통해 수신기에 전송 데이터를 전송하는 단계를 더 포함하며, 전송 데이터는 코딩된 패킷을 포함한다.
본 발명의 일부 실시예에 따르면, 입력 데이터를 인코딩하기 위한 천이 인코더가 제공되며, 상기 천이 인코더는 프로세서; 및 상기 프로세서에 로컬인 프로세서 메모리를 포함하고, 상기 프로세서 메모리에는, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 입력 데이터를 복수의 데이터 패킷으로 분할하고, 이 때 상기 복수의 데이터 패킷의 입력 패킷은 제1 베이스 시스템에서 복수의 디지트를 포함하고, 제1 베이스 시스템으로부터의 상기 입력 패킷을 베이스 변환하여 제2 베이스 시스템에서의 복수의 변환된 디지트를 포함하는 베이스-변환된 패킷을 생성하고, 여기서 제2 베이스 시스템은 상기 제1 베이스 시스템보다 낮은 베이스 값을 가지며, 통신 채널을 통한 전송을 위한 코딩된 패킷을 생성하기 위해 변환된 디지트를 증가시키도록 하는, 명령이 저장되어 있다.
본 발명의 일부 실시예에 따르면, 전송 데이터를 디코딩하는 방법이 제공되며, 상기 방법은, 전송 데이터를 복수의 코딩된 패킷으로 분할하는 단계로서, 복수의 코딩된 패킷의 코딩된 패킷은 제1 베이스 시스템에서 복수의 코딩된 디지트를 포함하는, 단계; 변환된 패킷을 생성하기 위해 복수의 코딩된 디지트를 감소시키는 단계; 및 제1 베이스 시스템으로부터의 상기 변환된 패킷을 베이스-변환하여 제2 베이스 시스템에서 복수의 디코딩된 디지트를 포함하는 디코딩된 패킷을 생성하는 단계로서, 제2 베이스 시스템은 상기 제1 베이스 시스템보다 큰 베이스 값을 가지는, 단계를 포함한다.
일부 실시예에서, 코딩된 패킷에서 복수의 코딩된 디지트의 개수는 디코딩된 패킷에서 복수의 디코딩된 디지트의 개수보다 하나 더 많다.
일부 실시예에서, 복수의 코딩된 디지트를 감소시키는 단계는, 변환된 디지트를 생성하기 위해 코딩된 디지트 각각을 1씩 감소시키는 단계를 포함하며, 변환된 패킷은 변환된 디지트를 포함한다.
일부 실시예에서, 코딩된 패킷은 설정된 실행-길이 값 이하의 실행-길이를 갖는다.
일부 실시예에서, 방법은 통신 채널을 통해 전송기로부터 전송 데이터를 수신하는 단계를 더 포함한다.
본 발명의 일부 실시예에 따르면, 전송 데이터를 디코딩하기 위한 천이 디코더가 제공되며, 상기 천이 디코더는 프로세서; 및 상기 프로세서에 로컬인 프로세서 메모리를 포함하고, 상기 프로세서 메모리에는, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 전송 데이터를 복수의 코딩된 패킷으로 분할하고, 이 때 복수의 코딩된 패킷의 코딩된 패킷은, 제1 베이스 시스템에서 복수의 코딩된 디지트를 포함하고, 변환된 패킷을 생성하기 위해 상기 복수의 코딩된 디지트를 감소시키며, 제1 베이스 시스템으로부터의 변환된 패킷을 베이스-변환하여 제2 베이스 시스템에서 복수의 디코딩된 디지트를 포함하는 디코딩된 패킷을 생성하도록 하는 명령이 저장되어 있으며, 이 때 제2 베이스 시스템은 제1 베이스 시스템보다 큰 베이스 값을 가진다.
첨부된 도면은 명세서와 함께 본 개시의 실시예를 설명하기 위한 것이고, 또한 상세한 설명과 함께 본 개시의 원리의 설명을 제공하기 위한 것이다. 도면은:
도 1a는 본 개시의 일부 실시예에 따른 직렬 데이터 통신 시스템의 블록도이다.
도 1b는 본 개시의 일부 실시예에 따른 직렬 데이터 통신 시스템의 전송기/수신기의 블록도를 도시한다.
도 2는 본 개시의 일부 실시예에 따른, 다수의 워드로 분할된 데이터 패킷을 도시한다.
도 3은 본 개시의 일부 실시예에 따른 입력 데이터를 인코딩하는 프로세스를 도시한다.
도 4는 본 개시의 일부 실시예에 따른 전송 데이터를 디코딩하는 프로세스를 도시한다.
아래에 설명된 상세한 설명은 본 개시에 따라 제공되는 것으로, 직렬 데이터 통신에서 데이터를 천이 인코딩/디코딩하기 위한 시스템 및 방법의 예시적인 실시예의 설명을 위한 것이며, 본 개시가 구성되거나 이용될 수 있는 유일한 형태를 나타낸 것은 아니다. 설명은 예시된 실시예와 관련하여 본 개시의 특징을 설명한다. 그러나, 본 개시의 범위 내에 포함되도록 의도된 상이한 실시예에 의해 동일하거나 동등한 기능 및 구조가 달성될 수 있음을 이해해야 한다. 본 명세서의 다른 곳에서 표시된 바와 같이, 유사한 도면 부호는 유사한 구성 또는 특징을 나타내기 위한 것이다.
도 1a는 본 개시의 일부 실시예에 따른 직렬 데이터 통신 시스템(1)의 블록도이다. 도 1b는 본 개시의 일부 실시예에 따른 직렬 데이터 통신 시스템(1)의 전송기/수신기의 블록도를 도시한다.
도 1a를 참조하면, 일부 실시예에서 직렬 데이터 통신 시스템(1)은 전송기(10), 통신 채널(예를 들어, 직렬 통신 채널)(15), 및 수신기(20)를 포함한다. 전송기(10)는 통신 채널(15)을 통해 수신기(20)로의 전송을 위한 전송 데이터를 생성하기 위해 입력 데이터 스트림에 대해 압축 및/또는 인코딩을 수행하기 위한 데이터 압축기 및/또는 인코더(12)를 포함할 수 있다. 수신기(20)는 입력 데이터 스트림을 복구하기 위해 수신기(20)에 의해 수신된 데이터 스트림에 대해 압축 해제 및/또는 디코딩을 수행하기 위한 데이터 압축 해제기 및/또는 디코더(22)를 포함할 수 있다.
일부 실시예에 따르면, 전송기(10)는, 수신기(20)가 통신 채널(15)을 통해 전송된 (예를 들어, 천이-인코딩된) 코딩된 데이터 스트림으로부터 클록 신호를 추출할 수 있도록 적어도 하나의 특정 주파수에서 천이가 발생하는 것을 보장함으로써, 전송 데이터 스트림을 인코딩하도록 구성된 천이 인코더(100)를 포함한다. 즉, 천이 인코더(100)는 코딩된 데이터 스트림의 실행-길이를 제한한다.
도 1b에 도시된 바와 같이, 전송기(10) 및 수신기(20)의 구성요소에 의해 수행되는 동작은 데이터 또는 디지털 신호를 처리하기 위해 사용되는 하드웨어, 펌웨어 및 소프트웨어의 임의의 조합을 포함할 수 있는 "처리 회로" 또는 "프로세서"(30)에 의해 수행될 수 있다. 처리 회로 하드웨어는 예를 들어 주문형 집적 회로(application specific integrated circuits, ASICs), 범용 또는 특수 목적 중앙 처리 장치(CPU), 디지털 신호 프로세서(digital signal processors, DSPs), 그래픽 처리 장치(graphics processing units, GPUs) 및 필드 프로그램 가능 게이트 어레이(field programmable gate arrays, FPGAs)와 같은 프로그램 가능 논리 디바이스를 포함할 수 있다. 본 명세서에 사용된 처리 회로에서, 각 기능은 그 기능을 수행하도록 구성된 하드웨어, 즉, 하드-와이어링(hard-wired)된 하드웨어에 의해 수행되거나, 비일시적 저장 매체에 저장된 명령을 실행하도록 구성된 CPU와 같은 보다 범용적인 하드웨어에 의해 수행된다. 처리 회로는 단일 인쇄 배선 기판(printed wiring board, PWB) 상에 제작되거나 상호 연결된 여러 PWB에 분산될 수 있다. 처리 회로는 다른 처리 회로를 포함할 수 있는데; 예를 들어, 처리 회로는 PWB 상에서 상호 연결된 두 개의 처리 회로, 즉 FPGA와 CPU를 포함할 수 있다. 프로세서(30)에 국부적인 프로세서 메모리(32)에는 프로세서(30)에 의해 실행될 때 프로세서(30)가 도 1a, 및 도 2 내지 도 4와 관련하여 본 명세서에 설명된 동작을 수행하게 하는 명령어가 저장되어 있을 수 있다.
도 2는 본 개시의 일부 실시예에 따른, 다수의 워드로 분할된 데이터 패킷을 도시한다.
도 1a 및 도 2를 참조하면, 일부 실시예에서, 천이 인코더(100)는 (데이터 압축기 및/또는 인코더(12)에 의해 인코딩/압축되거나 인코딩/압축되지 않을 수 있는) 입력 데이터를 다수의 입력 데이터 패킷(예를 들어, 비트 스트림)으로 분할한다. (입력 패킷이라고도 하는) 각 입력 데이터 패킷은 N개의 워드/디지트로 분할되며, 여기서 각 워드/디지트는 q 비트를 포함한다. 따라서, 데이터 패킷 X는 다음과 같이 나타낼 수 있다:
Figure pat00001
식 (1)
여기서, x 1, x 2, ..., x N은 입력 패킷을 구성하는 N개의 워드/디지트를 나타내고, 각각은 0 내지 2q-1의 값을 가진다. 도 2의 예시에서, 각 워드는 6비트(즉, q = 6)를 포함하고, [0:63] 범위의 값을 갖는다.
일부 실시예에서, 천이 인코더(100)는 모두 0(0의 디지트 값) 또는 모두 1(2q-1의 디지트 값)을 갖는 워드/디지트를 제거하는 방식으로 스트림을 인코딩함으로써 모든 워드/디지트의 천이를 보장한다. 이는 천이-인코딩된 스트림의 실행 길이를 2q-2로 제한한다. 예를 들어, 6비트 워드(즉, q = 6)의 경우 두 개의 연속된 워드/디지트 실행에 대한 최악의 시나리오는 100000 000001 또는 011111 111110이며, 이는 10( =2x6-2)의 실행-길이로 변환된다.
일부 실시예에 따르면, 천이 인코더(100)는 입력 패킷을 N-디지트 베이스-2q 숫자로 처리하며, 여기서 x 1 은 베이스-2q 숫자의 최상위 디지트(Most Significant Digit, MSD)이고 x N 은 최하위 디지트(Least Significant Digit, LSD)다. 따라서 패킷 X는 다음과 같이 표현될 수 있다.
Figure pat00002
식 (2)
여기서, x 1, x 2, ... x N은 0 내지 2q-1의 값을 가진다. q=6의 예시에서, 패킷은 N-디지트 베이스-64 숫자 X = [x 1 x 2 ... x N]64이다. 그 다음, 천이 인코더(100)는 이 숫자를 베이스 2q-2 (예를 들어, q=6에 대한 베이스는 62)로 변환한다. 베이스 2q-2 숫자(즉, 기본 변환된 패킷)는 다음과 같이 표현될 수 있다:
Figure pat00003
식 (3)
여기서, 변환된 디지트 y 0, y 1,... y N 각각은 0 내지 2q-3의 값을 갖는다. q=6의 예시에서 베이스-변환된 패킷은 X = [y 0 y 1 y 2 ... y N]62로 표현될 수 있으며, 여기서 변환된 디지트 y 0, y 1,... y N 는 0 내지 61의 값을 가진다. 변환된 디지트 y의 값 범위가 디지트 x보다 작으면 데이터 패킷 X를 나타내기 위해 디지트 x보다 변환된 디지트 y가 더 많이 사용될 수 있다. 이와 같이, N의 값(즉, 데이터 패킷의 베이스-2q 디지트의 개수)은 단지 하나의 추가 디지트(즉, 오버헤드 디지트), y 0만이 데이터 패킷을 나타내는 데 사용되도록 선택될 수 있다. 그 다음, 천이 인코더(100)는 변환된 디지트를 1만큼 증가시키고 다음과 같이 코딩된 패킷 X'를 생성한다:
Figure pat00004
식 (4)
이와 같이, 수신기(20)로 전송되는 코딩된 워드/디지트, y 0+1 ... y N+1은 모두 0 또는 모두 1을 포함하지 않는다. 즉, 코딩된 숫자는 0과 2q-1(예를 들어, q=6일 때 63)을 제외한다. 따라서, 전송기(10)는 전송되는 모든 코딩된 디지트의 천이를 보장할 수 있고 2q-2(예를 들어, q=6의 경우 10)의 제한된 실행-길이를 보장할 수 있다.
베이스-변환된 데이터 패킷 X가 베이스 2q-2에서 N+1개의 디지트(즉, y 0, y 1, y 2 ... y N)로 나타낼 수 있는 최대값은 (2q-2)N+1이다. 원본 데이터 패킷 X(즉, 변환되지 않은 데이터 패킷)가 원래 베이스 2q 및 N개의 디지트(즉, x 1, x 2 ... x N)에서 나타낼 수 있는 최대값은 (2q)N이다. 베이스-변환된 데이터 패킷이 입력 패킷(즉, 변환되지 않은 베이스 패킷) X의 적어도 모든 값을 나타낼 수 있도록 하기 위해 다음 관계가 유지된다:
Figure pat00005
식 (5)
여기서, 데이터 패킷 X의 워드 수 N에 대한 상한은 다음과 같이 유도될 수 있다.
Figure pat00006
식 (6)
6-비트 워드(즉, q=6)의 예에서, N에 대한 상한은
Figure pat00007
이다.
따라서, 원본 데이터 패킷 크기(즉, 입력 패킷의 워드 개수) N ≤ 129이면, 변환된 데이터 패킷, 따라서 코딩된 데이터 패킷은 단지 하나의 추가 워드/디지트만을 갖는다. 즉, 이 천이-인코딩 방식의 오버헤드는 한 워드이다. q=6의 예시에서 이는 코드 효율성으로 이어진다.
효율성 = 6x129/(6+6x129) = 99.2%
천이 인코더(100)에 의해 수행되는 인코딩의 1% 미만의 오버헤드는 거의 최적이고 q=6인 경우에 대해 97% 미만의 코드 효율성을 달성할 수 있는 관련 기술의 패킷 인코딩 방식에 비해 상당한 개선된 것이다.
전송기(10)(예를 들어, 천이 인코더(100))는 코딩된 패킷을 전송된 데이터 스트림으로서 수신기(20)에 전송한다. 통신 채널(15)을 통해 수신된 코딩된 패킷으로부터 클록 신호를 복구할 때, 수신기(20)의 클록 복구 회로(24)는 코딩된 패킷을 N번(예를 들어, 각 워드/디지트/심볼에 대해 1회) 업데이트할 수 있다. N 값이 크면, 이는 계산 집약적인 프로세스가 될 수 있으며 처리 지연을 발생시킬 수 있다.
따라서, 일부 실시예에서, 수신기 구현을 단순화하기 위해, 천이 인코더(100)는 오버헤드 디지트 y0을 0 또는 1로 설정함으로써 N을 더 낮은 값으로 제한한다(즉, y0을 q-비트 워드/디지트가 아닌 단일 이진 비트로 제한함). y0을 1-비트 코드 오버헤드로 사용하면, X가 나타낼 수 있는 최대 숫자는 2*(2q-2)N개이다. 따라서 베이스-변환된 데이터 패킷이 입력 패킷(즉, 비변환된-베이스 패킷) X의 적어도 모든 값을 나타낼 수 있도록 하기 위해 다음 관계를 유지한다:
Figure pat00008
식 (7)
결과적으로:
Figure pat00009
식 (8)
6비트 워드(q=6)의 예시에 대해, 수학식 7 및 8은 다음과 같이 나타난다.
Figure pat00010
Figure pat00011
즉, 패킷 크기가 N ≤ 21인 경우에는 1비트 오버헤드만 존재한다. 따라서 코드 효율성은,
효율성 = 21*6 / (1 + 21*6) = 99.2 %
일부 실시예에서, 천이 인코더(100)는 q 비트의 오버헤드 워드를 형성하기 위해 다수의 패킷(예를 들어, q-1 패킷)의 오버헤드 비트를 함께 풀링하고 대응하는 패킷 이후에 오버헤드 워드를 전송한다. 오버헤드 워드는 대응하는 q-1 패킷의 q-1 오버헤드 비트와 오버헤드 워드에 대한 (총 q 비트에 대한) 하나의 천이 비트를 포함한다. 이 방식을 사용하여 q=6에 대한 코드 효율성은 다음과 같이 계산될 수 있다.
효율성 = (5*21*6) / (5+1+5*21*6) = 99.1%
이는 여전히 거의 최적의 코딩 효율이다.
일부 실시예에 따르면, 수신기(20)의 천이 디코더(200)는 천이 인코더(100)에 대해서 상술한 동작들을 역으로 수행함으로써 통신 채널(15)을 통해 전송되는 코딩된 데이터 패킷 X'로부터 원본 데이터 패킷을 검색한다.
일부 예시에 따르면, 천이 인코더(100) 및 천이 디코더(200)는 베이스 2q의 원본 데이터 패킷이 다음과 같이 베이스(10)에 기록될 수 있다는 통찰에 기초한 베이스 변환을 수행하기 위한 반복적인 프로세스를 활용한다.
Figure pat00012
식 (9)
q=6의 예시에서,
Figure pat00013
.
초기에, 베이스-변환 프로세스의 첫 번째 반복에서, 천이 인코더(100)는 다음과 같이 정의되는 초기 값 A를 계산한다.
Figure pat00014
일부 예들에서, 천이 인코더(100)는 x 1이 2q-3 (예를 들어, q=6에 대해 61)보다 클 때 z 0 = 1 및 z 1 = x 1 - (2q-2)를 설정하고, 그렇지 않으면 z 0 = 0 및 z 1 = x 1 을 설정함으로써 z 0z 1을 결정할 수 있다.
각각의 반복에서, 천이 인코더(100)는 베이스 2q-2에서 새로운 A = ( A *2q + x n)10 을 계산하며, 여기서 우리는 이전 A = [z 0, z 1, ..., z n]의 베이스 2q-2를 갖는다. 출력은 새로운 A = [z 0 , z 1, ..., z n, z n+1]2 q -2 이다(여기서 이들은 모두 새로운 z i일 수 있음).
Figure pat00015
여기서, 10진수 값 A*(2q-2)으로 [z 0, z 1, ..., z n, 0]2 q -2 라는 표기법이 사용되고, 10진수 값 A*2으로 [2z 0, 2z 1, ..., 2z n]2 q -2 이 사용된다. 전자는 실제 베이스 (2q-2) 표기법이지만 후자는 (2q-2) 베이스 시스템으로 가중할 때 A*2에 대한 실제 값을 제공하는 가상 표기법일 뿐이다.
다음으로, 천이 인코더(100)는 (첫 번째 반복의 초기화 단계와 유사하게) x n을 베이스 (2q-2)로, x n = [y 0,y 1]2 q -2 = (y 0 *(2q-2)+ y 1)10 으로 변환한다.
변수 z iy i는 q-비트의 수이다. 지금까지의 모든 연산은 시프트와 덧셈을 이용하여 수행될 수 있다. 덧셈은 베이스 2q-2 시스템에서 수행될 수 있다.
새로운 z n+1 = y 1 + 2z n mod (2q-2)
새로운 z n = c n+1 + y 0 + 2z n-1 + z n mod (2q-2)
여기서, c n+1z n계산(y 1 + 2z n 의 제수를 (2q-2)로 나눈 값)에서 오는 캐리이다.
새로운 z n-1 = c n + 2z n-2 + z n-1 mod (2q-2)...
새로운 z 2 = c 3 + 2z 1 + z 2 mod (2q-2)
새로운 z 1 = c 2 + 2z 0 + z 1 mod (2q-2)
새로운 z 0 = c 1 + z 1 mod (2q-2)
N 번의 반복 후에, X = A = [z 0, z 1, ..., z N]2 q -2을 얻을 수 있다.
상기 산술 연산에서, 덧셈은 베이스에 관계없이 이진 덧셈으로 구현될 수 있다. 또한, 2x z i 연산은 시프팅 이진 구현을 사용하여 수행될 수 있다. 또한, mod (2q-2)는 비교(즉, 2q-3 과 2q+1-5을 비교) 및 차후 뺄셈을 사용하여 수행될 수 있다. 0, 1, 또는 2의 값을 갖는 캐리도 여기에서 얻는다. 이와 같이 위에서 설명된 반복 프로세스는 시프트, 덧셈, 및 뺄셈 연산으로 구현될 수 있다.
유사하게, 수신기(20)에서, 베이스 2q-2를 갖는 y 디지트들은 베이스 2q로 변환된다. 디코딩된 패킷 X는 다음과 같이 표현될 수 있다:
Figure pat00016
이것은 수신기(20)가 이진 형식으로 디코딩된 패킷 X를 복구할 수 있게 한다. 위에서 언급했듯이 시프트, 덧셈, 및 뺄셈 연산만 사용된다(예를 들어, y*62 = y<<6 - y<<1).
특정한 저-복잡도 베이스-변환 기술이 여기에 설명되어 있지만, 본 개시의 실시예는 이에 제한되지 않으며, 통상의 기술자에 의해 인식되는 바와 같이, 임의의 적합한 베이스 변환 기술이 천이 인코더(100) 및 천이 디코더(200)에 의해 이용될 수 있다. 예를 들어, 데이터 패킷을 베이스 64로부터 베이스 62로 변환할 때, 천이 인코더(100)는 베이스 64로부터 베이스 10으로 데이터 패킷을 변환한 다음, 베이스 10으로부터 베이스 62로 변환할 수 있다.
도 3은 본 개시의 일부 실시예에 따른 입력 데이터를 인코딩하는 프로세스(300)를 도시한다.
일부 실시예에서, 천이 인코더(100)는 입력 데이터를 복수의 데이터 패킷으로 분할한다(S302). 각각의 입력 패킷은 제1 베이스 시스템에서 복수의 디지트(예를 들어, N 디지트)를 포함한다. N 디지트 각각은 q 비트를 포함할 수 있고, 제1 베이스 시스템은 베이스 2q 시스템일 수 있다. N-디지트 베이스-2q 입력 패킷 매트는 X = [x1x2 ... xN]2 q로 표현되며, 여기서 각 디지트 x1, x2, ... xN 은 0 내지 2q-1의 값을 갖는다.
그 다음, 천이 인코더(100)는 제2 베이스 시스템에서 복수의 변환된 디지트를 포함하는 베이스-변환된 패킷을 생성하기 위해 각각의 입력 패킷에 대해 베이스-변환을 수행한다(S304). 제2 베이스 시스템은 제1 베이스 시스템보다 2만큼 낮은 베이스 값을 갖는다. 예를 들어, 제2 베이스 시스템은 베이스 2q-2 시스템일 수 있다. 베이스-변환된 패킷의 변환된 디지트의 수는 입력 패킷의 복수의 디지트의 수보다 하나 더 많다. 즉, 변환된 디지트에는 하나의 오버헤드 디지트(y0)를 가진다. (N+1)-디지트 베이스-(2q-2) 베이스-변환된 패킷은 X = [y0y1y2 ... yN]2 q -2로 표현될 수 있으며, 여기서 복수의 디지트 y1,... yN는 0 내지 2q-3의 값을 갖는다.
일부 예시들에서, 오버헤드 디지트 y0은 0 내지 2q-3의 값을 가질 수 있고, 값 N 및 q는 N <= 1/(log(2q)/log(2q-2) -1)로 표현되는 관계를 가질 수 있다. 다른 예들에서, 오버헤드 디지트 y0은 단일 이진 비트일 수 있고, 값 N 및 q는 N <= log2 / (log(2q) - log(2q-2))로 표현되는 관계를 갖는다.
그 다음, 천이 인코더(100)는 각각의 변환된 패킷의 변환된 디지트를 1씩 증가시켜 통신 채널(15)을 통한 전송을 위한 코딩된 패킷을 생성한다(S306). 전송기(10)(예를 들어, 천이 인코더(100))는 코딩된 패킷을 포함하는 전송 데이터를 통신 채널(15)을 통해 전송한다.
코딩된 패킷은 수신기(10)가 수신된 전송 데이터에 대해 클록 복구를 수행하도록 허용하는 설정된 실행-길이 값 또는 한계(예를 들어, 2q-2 이하)보다 작거나 같은 실행-길이를 갖는다. 각 코딩된 패킷은 X' = {y 0+1, y 1+1, y 2+1, ... , y N+1}로 표현될 수 있으며, 코딩된 디지트 y 0+1 ... y N+1 각각은 0 또는 1을 모두 포함하지 않는다. 즉, 각 코딩된 패킷은 적어도 하나의 비트 천이를 포함한다.
도 4는 본 개시의 일부 실시예에 따른 전송 데이터를 디코딩하는 프로세스(400)를 예시한다.
일부 실시예에서, 수신기(20)(예를 들어, 천이 디코더(200))는 통신 채널(15)을 통해 수신된 전송 데이터를 디코딩한다.
천이 디코더(200)는 수신된 전송 데이터를 복수의 코딩된 패킷으로 분할한다(S402). 복수의 코딩된 패킷의 각각의 코딩된 패킷은 제1 베이스 시스템에서 복수의 코딩된 디지트(예를 들어, N 디지트)를 포함한다. 각각의 코딩된 패킷은 수신기(200)가 전송 데이터로부터 클럭 신호를 추출할 수 있도록 하는 설정된 실행-길이 값 이하의 실행-길이를 갖는다.
그 다음, 천이 디코더(200)는 각 코딩된 패킷의 복수의 코딩된 디지트를 1씩 감소시켜 변환된 디지트를 포함하는 변환된 패킷을 생성한다(S404).
그 다음, 천이 디코더(200)는 제1 베이스 시스템으로부터의 변환된 패킷에 대해 베이스-변환을 수행하여 제2 베이스 시스템에서 복수의 디코딩된 디지트를 포함하는 디코딩된 패킷을 생성한다(S406). 제2 베이스 시스템은 제1 베이스 시스템보다 2만큼 큰 베이스 값을 갖는다. 일부 예시에서, 각각의 코딩된 패킷의 코딩된 디지트의 수는 각각의 디코딩된 패킷의 디코딩된 디지트의 수보다 하나 더 많다.
따라서, 전술한 바와 같이, 천이 인코더(100)는 수신기(20)에서 클록 복구를 가능하게 하기 위해 전송 스트림을 효율적으로 인코딩할 수 있다. 일부 실시예에서, 천이 인코더(100)는 매우-낮은-오버헤드 및 높은 코드 효율 실행-길이-제한된 천이 코드를 사용하여 데이터 스트림을 손실없이 인코딩한다.
"제1", "제2", "제3" 등의 용어가 다양한 요소, 구성요소, 영역, 층 및/또는 섹션을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이러한 요소, 구성요소, 영역, 층 및/또는 섹션은 이러한 용어로 제한되어서는 안된다. 이러한 용어는 하나의 요소, 구성요소, 영역, 층 또는 섹션을 다른 요소, 구성요소, 영역, 레이어 또는 섹션과 구별하는 데 사용된다. 따라서, 이하에서 논의되는 제1 요소, 구성요소, 영역, 층 또는 섹션은 본 발명의 권리 범위를 벗어나지 않으면서 제2 요소, 구성요소, 영역, 층 또는 섹션으로 명명될 수 있다.
본 명세서에서 사용된 용어는 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 명세서에 사용된 바와 같이, 단수 형태 "하나(a)" 및 "하나(an)"은 문맥 상 명백하게 달리 나타내지 않는 한 복수 형태도 포함하는 것으로 의도된다. 본 명세서에서 사용된 때, 용어 "포함하다", "포함하는", "포함하고" 및/또는 "포함한"은 명시된 특징, 정수, 단계, 연산, 요소 및/또는 또는 구성요소를 특정하지만 하나 이상의 다른 특징, 정수, 단계, 연산, 요소, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다. 본 명세서에 사용된 바와 같이, "및/또는"이라는 용어는 관련된 나열된 항목 중 하나 이상의 모든 조합을 포함한다. 또한, 본 발명의 실시예를 설명할 때 "할 수 있다"의 사용은 "본 발명의 하나 이상의 실시 예"를 의미한다. 또한, "예시적인"이라는 용어는 예시 또는 설명을 지칭하기 위한 것이다.
본 명세서에 사용된 바와 같이, "사용하다", "사용하는" 및 "사용된"이라는 용어는 각각 "활용하다", "이용하는" 및 "이용된"이라는 용어와 동의어로 간주될 수 있다.
더 나아가, 본 발명의 실시 예를 설명할 때 "할 수 있다"의 사용은 "본 발명의 하나 이상의 실시 예"를 지칭한다. 또한, "예시적인"이라는 용어는 예시 또는 설명을 지칭하기 위한 것이다.
본 개시는 예시적인 실시예에 대한 특정 참조와 함께 상세하게 설명되었지만, 본 명세서에 설명된 실시예는 완전한 것으로 의도되거나 본 개시의 범위를 개시된 정확한 형태로 제한하도록 의도되지 않는다. 본 개시가 속하는 기술 및 기술분야의 통상의 기술자는 설명된 구조 및 조립 및 작동 방법의 변경 및 수정이 이하의 청구항 및 그 균등물에 설명된 바와 같이 본 개시의 원리 및 범위를 의미 있게 벗어나지 않고 실시될 수 있음을 이해할 것이다.

Claims (10)

  1. 입력 데이터를 인코딩하는 방법으로서,
    상기 입력 데이터를 복수의 데이터 패킷으로 분할하는 단계 - 상기 복수의 데이터 패킷의 입력 패킷은 제1 베이스 시스템에서 복수의 디지트(digit)를 포함함 -;
    상기 제1 베이스 시스템으로부터의 입력 패킷을 베이스-변환하여 제2 베이스 시스템의 복수의 변환된 디지트를 포함하는 베이스-변환된 패킷을 생성하는 단계 - 상기 제2 베이스 시스템은 상기 제1 베이스 시스템보다 낮은 베이스 값을 가짐 -; 및
    통신 채널을 통한 전송을 위한 코딩된 패킷을 생성하기 위해 상기 변환된 디지트를 증가시키는 단계
    를 포함하는, 입력 데이터를 인코딩하는 방법.
  2. 제1항에 있어서,
    상기 베이스-변환된 패킷의 복수의 변환된 디지트의 개수는 상기 입력 패킷의 복수의 디지트의 개수보다 1 이상 더 많은,
    입력 데이터를 인코딩하는 방법.
  3. 제1항에 있어서,
    상기 변환된 디지트를 증가시키는 단계는, 코딩된 디지트를 생성하기 위해 상기 변환된 디지트 각각을 1씩 증가시키는 단계를 포함하고,
    상기 코딩된 패킷은 코딩된 디지트를 포함하는,
    입력 데이터를 인코딩하는 방법.
  4. 제1항에 있어서,
    상기 코딩된 패킷은 설정된 실행-길이 값 이하의 실행-길이를 갖는,
    입력 데이터를 인코딩하는 방법.
  5. 제1항에 있어서,
    상기 입력 패킷은 N개의 디지트를 포함하고,
    N개의 디지트 각각은 q 비트를 포함하고, 상기 제1 베이스 시스템은 베이스 2q 시스템이고, 상기 제2 베이스 시스템은 베이스 2q-2 시스템이며, 상기 코딩된 패킷은 2q-2 이하의 실행-길이를 갖는,
    입력 데이터를 인코딩하는 방법.
  6. 제1항에 있어서,
    상기 입력 패킷은 N개의 디지트를 포함하고,
    N개의 디지트 각각은 q 비트를 포함하고, 상기 제1 베이스 시스템은 베이스 2q 시스템이고, 제2 베이스 시스템은 베이스 2q-3 이하의 시스템인,
    입력 데이터를 인코딩하는 방법.
  7. 제1항에 있어서,
    상기 입력 패킷은 X = [x1x2 ... xN]2 q 로 표현되는 N-디지트 베이스-2q 이고, 디지트 x1, x2, ... xN 각각은 0 내지 2q-1의 값을 가지고,
    상기 베이스-변환된 패킷은 X = [y0y1y2 ... yN]2 q -2로 표현되는 (N+1)-디지트 베이스-(2q-2)이고, 복수의 디지트 y1,... yN 각각은 0 내지 2q-3의 값을 가지는,
    입력 데이터를 인코딩하는 방법.
  8. 제7항에 있어서,
    오버헤드 디지트 y0는 0 내지 2q-3의 값을 가지고,
    N 및 q는 N <= 1/(log(2q)/log(2q-2) -1)로 표현되는 관계를 가지는,
    입력 데이터를 인코딩하는 방법.
  9. 제7항에 있어서,
    오버헤드 디지트 y0는 단일 이진 비트이고,
    N 및 q는 N <= log2 / (log(2q) - log(2q-2))로 표현되는 관계를 가지는,
    입력 데이터를 인코딩하는 방법.
  10. 제7항에 있어서,
    상기 코딩된 패킷은 X' = {y 0+1, y 1+1, y 2+1, ... , y N+1}로 표현되고,
    코딩된 디지트 y 0+1 ... y N+1 각각은 모두 0을 포함하지 않거나 모두 1을 포함하지 않는,
    입력 데이터를 인코딩하는 방법.
KR1020220043602A 2021-08-04 2022-04-07 데이터를 인코딩 및/또는 디코딩하기 위한 방법 및 장치 KR20230021567A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163229401P 2021-08-04 2021-08-04
US63/229,401 2021-08-04
US17/506,481 2021-10-20
US17/506,481 US11632127B2 (en) 2021-08-04 2021-10-20 Near-optimal transition encoding codes

Publications (1)

Publication Number Publication Date
KR20230021567A true KR20230021567A (ko) 2023-02-14

Family

ID=83115508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220043602A KR20230021567A (ko) 2021-08-04 2022-04-07 데이터를 인코딩 및/또는 디코딩하기 위한 방법 및 장치

Country Status (4)

Country Link
US (1) US11632127B2 (ko)
EP (1) EP4131875A1 (ko)
KR (1) KR20230021567A (ko)
CN (1) CN115706623A (ko)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3457093B2 (ja) 1995-04-14 2003-10-14 松下電器産業株式会社 記録媒体並びにデジタル変復調方法およびその装置
US6476737B1 (en) 2001-11-16 2002-11-05 Lsi Logic Corporation Rate 64/65 (d=0, G=11/I=10) run length limited modulation code
US7187307B1 (en) 2003-06-12 2007-03-06 Silicon Image, Inc. Method and system for encapsulation of multiple levels of communication protocol functionality within line codes
WO2006031070A1 (en) 2004-09-15 2006-03-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding transmission information in mobile telecommunication system
US7667626B1 (en) 2007-04-27 2010-02-23 Marvell International Ltd. Enumerative DC-RLL constrained coding
US8365053B2 (en) 2009-05-27 2013-01-29 International Business Machines Corporation Encoding and decoding data using store and exclusive or operations
US9729681B2 (en) 2012-09-28 2017-08-08 Anapass Inc. Data transmission method and data restoration method
KR101235696B1 (ko) 2012-09-28 2013-02-21 주식회사 아나패스 데이터 전송 방법 및 데이터 복원 방법
US9319179B1 (en) 2013-04-09 2016-04-19 Marvell International Ltd. Methods and apparatus for generating expanded code words to support error correction in a data communication system
US9431053B2 (en) 2014-04-24 2016-08-30 Marvell International Ltd. Run-length limited (RLL) codes
US9350384B2 (en) * 2014-09-30 2016-05-24 International Business Machines Corporation Hierarchical data compression and computation
CN108028667A (zh) 2015-09-24 2018-05-11 华为技术有限公司 具有很短信息块的咬尾卷积码
US10812102B2 (en) * 2018-06-29 2020-10-20 Apple Inc. Efficient data encoding
GB2579399B (en) * 2018-11-30 2020-12-16 Imagination Tech Ltd Data compression and storage
US11967973B2 (en) 2021-05-06 2024-04-23 Samsung Display Co., Ltd. Low overhead transition encoding codes

Also Published As

Publication number Publication date
US11632127B2 (en) 2023-04-18
CN115706623A (zh) 2023-02-17
US20230041347A1 (en) 2023-02-09
EP4131875A1 (en) 2023-02-08

Similar Documents

Publication Publication Date Title
EP0758825B1 (en) Method and apparatus for generating dc-free sequences with conveying partial information by the sequence of codeword digital sums of successive codewords
JPH06224777A (ja) 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置、ビットストリーム生成方法及び遷移マシン生成方法
KR100281738B1 (ko) 니블 반전 및 블록 반전 부호의 부호화 및 복호화 방법, 그 부호 및 복호장치
CN113507289B (zh) 一种编码器、解码器及码字生成方法
KR20010014990A (ko) 디지털 데이터용 저 디스패리티 코딩 방법
US11888962B2 (en) System and method for transition encoding with flexible word-size
TW202324040A (zh) 減少錯誤傳播的轉態編碼器及轉態編碼方法
US7079050B2 (en) Arithmetic decoding of an arithmetically encoded information signal
US6346895B1 (en) Apparatus and method for using nibble inversion code
KR20040044589A (ko) 다수결 논리를 이용한 rm 부호의 연판정 복호 방법 및그 장치
KR20230021567A (ko) 데이터를 인코딩 및/또는 디코딩하기 위한 방법 및 장치
US6101281A (en) Method for improving data encoding and decoding efficiency
US6753797B2 (en) Multiproperty 16/17 trellis code
JP2005502257A (ja) 多重積分により信号を符号化及び復号する変調コードシステム及び方法
KR20140145437A (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
JP3673222B2 (ja) 可変長符号化方法及び装置並びに可変長復号化方法及び装置
US20050036559A1 (en) Signal processing method and corresponding encoding method and device
CN110336644B (zh) 一种高维调制下的分层编码方法
Irshid Gray code weighting system (Corresp.)
KR100396827B1 (ko) 데이터 전송 시스템에서 병렬 길쌈 부호화 장치
Sayood et al. Recursively indexed differential pulse code modulation
US6919830B1 (en) Arithmetic decoding of an arithmetically encoded information signal
KR0171383B1 (ko) 순환컨벌루션널코드의복호화방법
JP2004128619A (ja) 符号化方法
TW202418807A (zh) 非疊代的熵編碼