KR20230033623A - 데이터 부호화 방법 및 부호기와 데이터 복호화 방법 - Google Patents
데이터 부호화 방법 및 부호기와 데이터 복호화 방법 Download PDFInfo
- Publication number
- KR20230033623A KR20230033623A KR1020220109160A KR20220109160A KR20230033623A KR 20230033623 A KR20230033623 A KR 20230033623A KR 1020220109160 A KR1020220109160 A KR 1020220109160A KR 20220109160 A KR20220109160 A KR 20220109160A KR 20230033623 A KR20230033623 A KR 20230033623A
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- words
- input
- group
- key value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000007704 transition Effects 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 24
- 230000000295 complement effect Effects 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 10
- 239000003607 modifier Substances 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 241000295146 Gallionellaceae Species 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012546 transfer Methods 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/493—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 by transition coding, i.e. the time-position or direction of a transition being encoded before transmission
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
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호(발명의 명칭: FLEXIBLE WORD-SIZE TRANSITION ENCODING CODES)를 우선권 주장하며, 여기에 인용함으로써 이 출원의 전체 내용을 본원에 포함한다.
일반적으로 직렬 데이터 통신은 유선 통신 시스템, 광섬유 통신 시스템뿐 아니라 무선 통신 시스템에도 통상적으로 사용된다. 디지털 데이터의 직렬 통신에서, 송신기가 데이터 스트림과 함께 클록 신호를 송신하지 않을 때는, 수신기가 데이터 스트림에 들어 있는 시간 정보를 사용하여 클록을 재생하여야 한다. 직렬 데이터 스트림에서 시간 정보를 추출하는 과정은 클록 복구라고 알려져 있고, 수신기 회로가 전송된 심볼을 복호화할 때 중요하다.
전송된 데이터를 변경하여 데이터 스트림 내에 충분한 수의 전이가 존재하도록 함으로써 수신기에서의 클록 복구에 도움을 줄 수 있다. 달리 말하면, 최악의 경우인 전이 없는 런-길이가 제한되어야 한다. 전이를 자주 발생시키기 위해서, 송신기는 전이 부호화 알고리즘을 사용하여 전이가 주기적으로 일어나도록 원래 데이터(raw data)를 부호화할 수 있다.
배경 기술 항목에서 설명한 앞서의 정보는 본 발명의 이해를 높이기 위한 것일 뿐이며, 당업자에게 이미 알려진 종래 기술을 이루지 않는 정보를 포함할 수 있다.
본 발명이 해결하고자 하는 과제는 유연한(flexible) 워드 크기와 런-길이 한계를 가지는 전송 스트림의 전이 부호화 시스템 및 방법을 제공하는 것이다.
본 발명의 한 실시예에 따르면, 전이 부호화는 데이터 패킷 내의 각 워드의 비트 부분 집합을 그 워드의 그룹 ID로 사용하고, 그 그룹 ID에 기초하여 패킷의 워드를 서로 다른 그룹으로 조직하고, 최소 워드 수를 가지는 키 그룹을 식별하며, 이어 그룹 ID와 키 그룹의 누락 비트 패턴에 기초하여 부호화 키 값을 결정한다. 전이 부호기는 이어 부호화 워드를 수신기에 보내기 전에 키 값을 사용하여 각 워드를 부호화한다. 본 발명의 한 실시예에 따르면, 어떠한 소기의 워드 크기 및 런-길이 한계에 대해서도 전이 부호화는 쉽게 변경될 수 있다.
본 발명의 한 실시예에 따른 입력 데이터 부호화 방법은, 프리 비트, 그룹 ID 비트 및 포스트 비트를 각각 포함하는 복수의 입력 워드를 포함하는 입력 데이터의 입력 패킷을 식별하는 단계, 상기 복수의 입력 워드의 그룹 ID 비트에 기초하여 상기 복수의 입력 워드를 복수의 그룹으로 조직하는 단계, 상기 각 복수의 그룹 내의 입력 워드의 수에 기초하여 상기 복수의 그룹 중 키 그룹을 식별하는 단계, 상기 복수의 입력 워드 중 상기 키 그룹에 대응하는 입력 워드의 상기 프리 비트, 상기 그룹 ID 비트 및 상기 포스트 비트에 기초하여 키 값을 결정하는 단계, 그리고 상기 키 값 및 상기 복수의 입력 워드에 기초하여 복수의 부호화 워드를 생성하는 단계를 포함한다.
본 발명의 한 실시예에 따른 입력 데이터 부호화 방법은, 상기 입력 데이터를 수신하는 단계, 그리고 상기 입력 데이터를 상기 입력 패킷을 포함하는 복수의 데이터 패킷으로 분할하는 단계를 더 포함할 수 있다.
본 발명의 한 실시예에 따르면, 상기 입력 워드 각각은 [PRBi GIDi POBi]로 표현되며, PRBi는 상기 프리 비트를 나타내고, GIDi는 상기 그룹 ID 비트를 나타내고, POBi는 상기 포스트 비트를 나타내며, i는 0보다 큰 정수일 수 있다.
본 발명의 한 실시예에 따르면, 상기 입력 패킷은 31 개의 입력 워드를 포함하고, 상기 복수의 입력 워드 각각은 8 비트를 포함하고, 상기 프리 비트는 상기 복수의 입력 워드 중 대응 워드의 2 MSB(most significant bit)를 포함하고, 상기 그룹 ID 비트는 상기 대응 워드의 4 중간 비트를 포함하고, 상기 포스트 비트는 상기 대응 워드의 2 LSB(least significant bit)를 포함하며, 상기 복수의 그룹은 8 개의 그룹을 포함하며, 상기 입력 패킷의 런 길이는 10일 수 있다.
본 발명의 한 실시예에 따르면, 상기 복수의 입력 워드를 복수의 그룹으로 조직하는 단계는, 상기 복수의 입력 워드 중 동일한 그룹 ID 비트 또는 동일한 그룹 ID 비트의 보수를 가지는 입력 워드들을 상기 복수의 그룹 중 동일한 그룹으로 묶는 단계를 포함하며, 상기 복수의 그룹의 수는 상기 그룹 ID 비트 내의 비트 수의 절반일 수 있다.
본 발명의 한 실시예에 따르면, 상기 복수의 입력 워드를 복수의 그룹으로 조직하는 단계는, 복수의 입력 워드 중 (2g-1)/2 보다 작고 제1 값과 동일한 그룹 ID 비트 값을 가지는 워드들을 하나로 묶고, (2g-1)/2 보다 크고 상기 제1 값의 보수와 동일한 그룹 ID 비트 값을 가지는 워드들을 동일한 그룹의 다른 하나로 묶는 단계를 포함하며, 상기 g는 상기 그룹 ID 비트의 비트 길이를 나타낼 수 있다.
본 발명의 한 실시예에 따르면, 상기 키 그룹을 식별하는 단계는, 상기 키 그룹을 상기 복수의 그룹 중 최소 입력 워드 수 또는 문턱 값 아래의 입력 워드 수를 가지는 그룹으로 정의하는 단계를 포함할 수 있다.
본 발명의 한 실시예에 따르면, 상기 키 값을 결정하는 단계는, 키 그룹 ID 비트를 상기 복수의 워드 중 상기 키 그룹에 대응하는 워드의 그룹 ID 비트로 결정하는 단계, 키 프리 비트를 상기 복수의 워드 중 상기 키 그룹에 대응하는 워드의 프리 비트에서 누락된 비트로 결정하는 단계, 키 포스트 비트를 상기 복수의 워드 중 상기 키 그룹에 대응하는 워드의 포스트 비트에서 누락된 비트로 결정하는 단계, 그리고 상기 키 프리 비트, 상기 키 그룹 ID 비트 및 상기 키 포스트 비트에 기초하여 상기 키 값을 생성하는 단계를 포함할 수 있다.
본 발명의 한 실시예에 따르면, 상기 키 값은 [PRB0 GID0 POB0]로 표현되며, PRB0 는 상기 키 프리 비트를 나타내고, GID0 는 상기 키 그룹 ID 비트를 나타내고, POB0 는 상기 키 포스트 비트를 나타낼 수 있다.
본 발명의 한 실시예에 따르면, 상기 키 값은 상기 복수의 입력 워드 중 하나와 동일한 비트 길이를 가지며, 상기 복수의 입력 워드 중 어느 것과도 같지 않을 수 있다.
본 발명의 한 실시예에 따르면, 상기 복수의 부호화 워드는 제1 부호화 워드 및 제2 부호화 워드를 포함하며, 상기 제1 부호화 워드는 적어도 상기 키 값에 기초하고, 상기 제2 부호화 워드는 상기 키 값과 상기 복수의 입력 워드 중 제1 입력 워드에 기초할 수 있다.
본 발명의 한 실시예에 따르면, 상기 복수의 부호화 워드를 생성하는 단계는, 상기 키 값에 기초하여 변경 키 값을 생성하는 단계, 상기 제1 부호화 워드를 상기 변경 키 값으로 생성하는 단계, 그리고 상기 복수의 입력 워드 중 하나와 상기 키 값에 이진 XOR 연산을 수행하여 상기 제1 부호화 워드를 생성하는 단계를 포함할 수 있다.
본 발명의 한 실시예에 따르면, 상기 복수의 부호화 워드는 { K' , x 1^K, x 2^K, … , x N^K }로 표현되며, K는 상기 키 값을 나타내고, K'은 상기 키 값에 기초한 변경 키 값을 나타내고, x 1, x 2, … , x N 은 상기 입력 패킷의 상기 복수의 입력 워드를 나타내고, N은 2보다 큰 정수이고, ^ 는 이진 XOR 연산을 기호화한 것일 수 있다.
본 발명의 한 실시예에 따른 입력 데이터 부호화 방법은, 상기 복수의 부호화 워드를 포함하는 전송 데이터를 통신 채널을 통하여 수신기에 전송하는 단계를 더 포함할 수 있다.
본 발명의 한 실시예에 따른 입력 데이터 부호화용 전이 부호기는, 프로세서, 그리고 상기 프로세서에 종속되며 명령(instruction)을 저장하는 프로세서 메모리를 포함하며, 상기 프로세서가 상기 명령을 수행하면 상기 프로세서는, 프리 비트, 그룹 ID 비트 및 포스트 비트를 각각 포함하는 복수의 입력 워드를 포함하는 입력 데이터의 입력 패킷을 식별하고, 상기 입력 워드의 그룹 ID 비트에 기초하여 상기 복수의 입력 워드를 복수의 그룹으로 조직하고, 상기 복수의 그룹 중 문턱 값보다 작은 입력 워드의 수에 대응하는 키 그룹을 식별하고, 상기 복수의 입력 워드 중 상기 키 그룹에 대응하는 입력 워드의 상기 프리 비트, 상기 그룹 ID 비트 및 상기 포스트 비트에 기초하여 키 값을 결정하고, 상기 키 값 및 상기 복수의 입력 워드에 기초하여 복수의 부호화 워드를 생성한다.
본 발명의 한 실시예에 따른 전송 데이터 복호화 방법은, 변경 키 값을 포함하고 제1 부호화 워드를 포함하는 복수의 부호화 워드를 포함하는 전송 데이터를 수신하는 단계, 상기 변경 키 값에 기초하여 키 값을 생성하는 단계, 그리고 상기 키 값과 상기 제1 부호화 워드에 이진 XOR 연산을 수행하여 복수의 복호화 워드 중 제1 복호화 워드를 생성하는 단계를 포함한다.
본 발명의 한 실시예에 따르면, 상기 변경 키 값은 [PRB0 GID0 POB0]로 표현되며, PRB0 는 상기 변경 키 값의 프리 비트를 나타내고, GID0 는 상기 변경 키 값의 그룹 ID 비트를 나타내고, POB0 는 상기 변경 키 값의 포스트 비트를 나타내며, 상기 변경 키 값에 기초하여 키 값을 생성하는 단계는, 상기 키 값의 상기 그룹 ID 비트의 MSB를 0으로 바꾸어 상기 키 값을 생성하는 단계를 포함할 수 있다.
본 발명의 한 실시예에 따르면, 상기 변경 키 값에 기초하여 키 값을 생성하는 단계는, 상기 변경 키 값의 비트 중 하나를 0으로 설정하여 상기 키 값을 생성하는 단계를 포함할 수 있다.
본 발명의 한 실시예에 따르면, 상기 복수의 부호화 워드는 { K' , x 1^K, x 2^K, … , x N^K }로 표현되며, x 1, x 2, … , x N 은 입력 패킷의 복수의 입력 워드를 나타내고, K는 상기 복수의 부호화 워드를 부호화하는 데 사용되는 상기 키 값을 나타내고, K'은 상기 변경 키 값을 나타내고, ^ 는 이진 XOR 연산을 기호화한 것일 수 있다.
본 발명의 한 실시예에 따르면, 상기 전송 데이터를 수신하는 단계는, 상기 전송 데이터를 통신 채널을 통하여 송신기로부터 수신하는 단계를 포함할 수 있다.
본 발명은 어떤 적절한 워드 크기를 가지는 데이터라도 부호화하여 어떤 적절한 런 길이 제한이라도 생성할 수 있다. 본 발명의 한 실시예에서는, 전이 부호기가 특별한 방식으로 입력 데이터에 기초하여 키 값을 결정함으로써 이러한 소기의 특성을 가능하게 하며, 이는 바이트-워드 정렬 하드웨어 또는 비트 패딩을 구현할 필요성을 없애고, 송신기/수신기 설계를 간단히 하며, 전체 시스템 비용을 줄여 준다. 또한, 본 발명의 한 실시예에 따르면, 통신 시스템은 전이 부호화 방식에 오버헤드를 가하지 않고 이러한 소기의 효과를 달성한다.
도 1a는 본 발명의 한 실시예에 따른 직렬 데이터 통신 시스템의 블록도이다.
도 1b는 본 발명의 한 실시예에 따른 직렬 데이터 통신 시스템의 송신기/수신기의 블록도이다.
도 2는 본 발명의 한 실시예에 따라 다수의 워드로 분할된 패킷을 나타낸다.
도 3은 본 발명의 한 실시예에 따른 입력 데이터 부호화 과정을 나타낸다.
도 4는 본 발명의 한 실시예에 따른 입력 데이터 복호화 과정을 나타낸다.
도 1b는 본 발명의 한 실시예에 따른 직렬 데이터 통신 시스템의 송신기/수신기의 블록도이다.
도 2는 본 발명의 한 실시예에 따라 다수의 워드로 분할된 패킷을 나타낸다.
도 3은 본 발명의 한 실시예에 따른 입력 데이터 부호화 과정을 나타낸다.
도 4는 본 발명의 한 실시예에 따른 입력 데이터 복호화 과정을 나타낸다.
이제 뒤에서 설명할 상세한 설명은 직렬 통신에서의 데이터 전이 부호화/복호화 시스템 및 방법의 실시예에 관한 것으로서, 본 발명에 의하여 구현 또는 이용될 유일한 형태를 나타내는 것은 아니다. 이제 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 상세하게 설명한다. 그러나 서로 다른 실시예에서 구현되는 것과 동일한 또는 균등한 기능과 구조도 본 발명의 범위 내에 포함된다. 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 도면 부호를 붙였다.
관련 기술로서, 런-길이 제한 전송을 달성하기 위하여, 송신기는 입력 데이터 전송을 위한 부호화(된) 워드로 변환할 수 있는데, 이는 입력 데이터에 기초하여 키를 정의하고, 그 키를 사용하여 각 워드를 부호화하고, 부호화(된) 워드들과 함께 그 키를 수신기에 전송함으로써 가능하다. 부호화된 데이터는 특정 런-길이 제한을 가지고 있다. 다시 수신기는 전송 데이터 내의 키를 식별하고 이를 사용하여 수신한 부호화 워드를 복호화하여 원본 입력 데이터를 얻는다. 그러나 관련 기술의 부호기들은 프로토콜 층(protocol layer)이 생성한 바이트-크기 직렬 데이터와 정렬되지 않는 (즉, 다른) 워드 크기로 동작하는 경우가 잦다. 예를 들면, 프로토콜 층은 8-비트 바이트 단위로 데이터를 생성하는 반면, 부호기는 6 비트 단위로 전이 부호화를 수행할 수 있다. 이 경우, 부호기는 전이 부호화 패킷에서 오버헤드(overhead)를 증가시키는 비트 패딩/스터핑(padding/stuffing)을 사용해야 할 수도 있고, 값비싼 부동산을 차지하고 추가적인 비용과 복잡함을 더하는 추가적인 정렬 하드웨어에 의존해야 할 수도 있다.
본 발명의 한 실시예에 따르면, 전이 부호기는 바이트-크기 데이터 또는 적정 비트 수를 가지는 워드 크기를 부호화하여 다양한 런-길이 제한을 생성할 수 있다. 전이 부호기는 어떠한 적정 런-길이 제한도 가질 수 있으며, 특정 런-길이에 한정되지 않는다. 이는 비트 패딩이나 추가적인 바이트-워드 정렬 하드웨어의 필요성을 제거하며, 이는 송신기/수신기 설계를 단순화하고 시스템 비용을 줄여줄 수 있다.
도 1a는 본 발명의 한 실시예에 따른 직렬 데이터 통신 시스템(1)의 블록도이다. 도 1b는 본 발명의 한 실시예에 따른 직렬 데이터 통신 시스템(1)의 송신기/수신기의 블록도이다.
도 1a를 참고하면, 본 발명의 한 실시예에 따른 직렬 데이터 통신 시스템(1)은 송신기(10), 통신 채널(즉, 직렬 통신 채널)(15) 및 수신기(20)를 포함한다. 송신기(10)는 입력 데이터 스트림에 압축을 수행하거나 부호화를 수행하여 통신 채널(15)(보기: 하나 이상의 도체를 갖춘 전송선)을 통하여 수신기(20)에 전송할 전송 데이터를 생성하는 데이터 압축기 및/또는 부호기(12)를 포함할 수 있다. 수신기(20)는 수신기(20)가 수신한 데이터 스트림에 압축 해제 또는 복호화를 수행하여 입력 데이터 스트림을 복구하는 데이터 압축 해제기 및/또는 복호기(22)를 포함할 수 있다. 수신기(20)는 또한 클록 복구 회로(24)를 포함할 수 있다.
본 발명의 한 실시예에 따르면, 송신기(10)는 전이 부호기(100)를 포함하며, 전이 부호기(100)는 전이가 적어도 특정 주파수에 따라 발생하도록 함으로써 전송 데이터 스트림을 부호화하는데, 여기에서 특정 주파수는 수신기(20)가 통신 채널(15)을 통하여 전송된 (예를 들어, 전이 부호화된) 부호화 데이터 스트림으로부터 클록 신호를 추출할 수 있도록 하는 주파수이다. 즉, 전이 부호기(100)는 부호화 데이터 스트림의 런-길이를 제한한다.
도 1b에 도시한 것처럼, 송신기(10)와 수신기(20)의 구성 요소가 수행하는 동작은 "처리 회로" 또는 "처리기" 또는 "프로세서"(30)로 구현될 수 있다. "처리 회로"는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합을 사용하여 구현할 수 있다. 처리 회로는 예를 들면, 응용 주문형 집적 회로(ASIC), 범용 또는 전용 중앙 처리 장치(CPU), 디지털 신호 처리기(DSP), 그래픽 처리 장치(GPU), FPGA 등의 프로그램가능 논리 장치를 포함할 수 있다. 처리 회로에서 각각의 함수는 그 기능을 수행하는 유선 하드웨어 또는 비순간(non-transitory) 저장 매체에 저장된 명령을 수행하는 CPU 등의 범용 하드웨어로 수행될 수 있다. 처리 회로는 하나의 인쇄 배선 기판(PWB: printed wiring board)에 제작되거나 서로 연결된 PWB에 분산 배치될 수 있다. 처리 회로는 다른 처리 회로를 포함할 수 있는데, 예를 들면 PWB 상에서 서로 연결된 FPGA와 CPU를 포함할 수 있다. 프로세서(30)에 종속된 프로세서 메모리(32)는 명령을 포함할 수 있으며, 프로세서(30)는 이 명령을 실행하면 도 1a, 도 2 내지 도 4를 참고하여 설명한 동작을 수행할 수 있다.
도 2는 본 발명의 한 실시예에 따라 다수의 워드로 분할된 패킷을 나타낸다.
도 1a 및 도 2를 참고하면, 본 발명의 한 실시예에서는, 전이 부호기(100)가 [데이터 압축기 및/또는 부호기(12)에 의하여 압축/부호화되었거나 그렇지 않은] 입력 데이터를 다수의 입력 데이터 패킷(보기: 비트 스트림)으로 분할한다. 각 입력 데이터 패킷(입력 패킷이라고도 함)은 N 개의 워드/디지트(word/digit)로 분할되며, 각 워드/디지트는 q 개의 비트를 포함한다. 따라서 데이터 패킷(X)은 다음과 같이 표현할 수 있다.
여기에서 x 1, x 2, ..., x N 은 입력 패킷을 이루는 N 개의 워드/디지트를 나타내고, 이들 각각은 0과 2q-1 사이의 값을 가진다. 도 2의 예에서, 각 워드는 8 비트를 포함하고(즉, q = 8), [0:255] 범위의 값을 가진다. 그러나 본 발명의 실시예는 이에 한정되지 않으며, 각 워드가 어떠한 비트 수(보기: 6 비트, 10 비트 등)라도 가질 수 있다.
전이 부호기(100)는 각 워드를 부호화/스크램블(scramble)하여 각 워드/디지트에 전이를 확보하고 전송된 데이터의 런-길이를 소기의 값으로 한정한다. 본 발명의 한 실시예에서는, 전이 부호기(100)가 패킷의 워드들을 이러한 방식으로 부호화하여 런-길이/2 보다 큰 선두(leading) 또는 후미(trailing) 런-길이를 가지는 워드가 전송되는 것을 방지한다. 8-비트 워드 및 10의 소기 전송 런-길이의 예에서, 전이 부호기(100)는 다음과 같은 워드를 제거한다.
000000xx
xx000000
111111xx
xx111111
여기에서 'x'는 0 또는 1 ["비트 무관(don't-care bit)"]일 수 있다. 여기에서, 두 개의 연속 워드에서 최악의 런 시나리오는 xx100000 000001xx 및 xx011111 111110xx 이며, 둘 다 10의 런-길이를 가진다.
수신한 입력 워드를 부호화하기 위해서, 전이 부호기(100)는 먼저 각 입력 워드의 비트를 프리 비트(PRB: pre bits), 그룹 ID 비트(GID: group ID bits) 및 포스트 비트(POB: post bits)로 분할한다. 즉, 각 입력 워드는 [PRB GID POB]로 표시할 수 있으며, PRB가 최상위 비트(MSB: most significant bits), GID가 중간 비트(middle bits), POB가 최하위 비트(LSB: least significant bits). GID에 있는 중간 비트 수는 다음과 같다.
여기에서 RL은 소기의 부호화 런 길이를 나타내고, WBL은 입력 워드 비트 길이를 나타낸다. 앞의 예에서, GID의 비트 수는 4 (=10-8+2)이다. 따라서, 앞의 금지 비트(forbidden bits above)는 2-비트 PRB, 4-비트 GID, 2-비트 POB로 분할될 수 있으며 다음의 표 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)는 대부분의 부호화된 워드가 모두 0 또는 모두 1인 GID를 가지지 않도록 입력 워드의 GID를 부호화하고, 모두 0 또는 모두 1인 GID를 가지는 부호화 워드가 GID와 유사하게 모두 0 또는 모두 1을 가지지 않도록 PRB와 POB를 부호화한다.
본 발명의 한 실시예에서는, 일단 워드가 분할되면, 입력 워드는 그 GID에 기초하여 묶인다. 여기에서, 동일한 GID 및 보수(complement)(즉, 1의 보수) GID(보기: 0000 and 1111)를 가지는 워드는 함께 묶인다. 즉, GID가 g 비트를 가지면, (2g-1)/2 보다 작은 GID 값을 가지는 워드들은 그 GID와 어울리는 그룹 수로 조직되고, (2g-1)/2 보다 큰 GID 값을 가지는 워드들은 그 보수[역(inverse)] GID와 어울리는 그룹 수로 조직된다. 이와 같이, 입력 워드가 조직되는 그룹의 수는 2g-1이다. GID에 기초하여 조직되는 입력 워드 그룹은 정규 워드(regular word)라 하고 보수 GID에 기초하여 조직되는 입력 워드 그룹은 보수 워드(complement word)라 할 수 있다.
입력 워드를 서로 다른 그룹으로 조직하는 것은 아래 표 2의 도움으로 시각화할 수 있다. 표 2의 예에서, 예시한 패킷의 각 입력 워드는 8 비트이고, GID는 4 비트(즉, g = 4)이며, PRB 및 POB 각각은 2 비트를 가진다. 따라서, 전이 부호기(100)는 입력 워드를 8 개의 그룹(즉, 0 ~ 7)으로 조직한다.
그룹 | 워드 | 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)보다 작은 수의 구성원을 가지는 그룹을 식별하며, 이 그룹을 키 그룹(key group)이라 한다. 키 그룹 내의 모든 워드의 GID 또는 보수 GID는 그룹 GID를 나타낼 수 있다. 표 2의 예에서, 그룹 1은 워드 구성원 수가 최소(즉, 3)로서 키 그룹으로 식별될 수 있다. 이 그룹 내의 워드는 GID (또는 보수 GID)가 0001이다. 이와 같이, 0001 또는 1110 은 키 그룹의 GID(GID0로 표기할 수 있음)로 식별될 수 있다. 본 발명의 한 실시예에서는, 키 그룹의 GID (보수 GID는 아님)는 GID0로 선택된다. GID0의 MSB가 0이라 가정하고, GID0의 나머지 비트(보기: 표 2의 예에서 001)만이 수신기(20)로 전송될 수 있다. 이러한 방식에 맞추어, 수신기(20)는 송신기(10)로부터 받은 GID0의 나머지 비트(보기: 001)에 0의 MSB를 덧붙일 수 있다. 0의 MSB를 전송하지 않음으로써 전이 부호기(100)는 줄어든 수의 오버헤드 비트를 전송하는 향상된 부호화 효율을 얻을 수 있다.
키 그룹의 GID0가 구성원 워드의 GID(보기: GID0 = 0001)에 기초하는 실시예에서, 키 그룹의 PRB는 어떤 정규 워드의 PRB 및 어떤 보수 워드의 보수 PRB로서 식별될 수 있다. 키 그룹의 PRB와 POB는 각각 PRB0와 POB0라고 할 수 있다. 키 그룹의 GID0가 구성원 워드의 보수 GID(보기: GID0 = 1110)에 기초하는 경우에는, PRB0 및 POB0가 대응하는 정규 구성원 워드의 POB 및 보수 PRB와 대응 보수 워드의 PRB 및 POB로부터의 누락 비트 패턴(missing bit pattern)에 기초할 수 있다.
전이 부호기(100)는 이어 키 그룹의 GID, PRB 및 POB에 기초하여 부호화 키 값(coding key value)(간단히 "키 값"이라고 함)을 생성한다. 본 발명의 한 실시예에 따르면, 전이 부호기(100)는 키 그룹의 GID를 키 값(GID0)의 GID로 사용하며, 키 값의 PRB 및 POB(즉, PRB0 and POB0)를 각각 키 그룹의 PRB0 및 POB0으로부터 누락된 비트 패턴으로 결정한다. 하나 이상의 비트 패턴이 PRB/POB로부터 누락되었다면, 누락 패턴 중 어느 것이라도 PRB0/POB0로 사용될 수 있다. 표 2의 예에서, GID0는 0001이고, PRB는 00이며, POB는 00 또는 01일 수 있다. 그러므로 키 값은 [00 0001 00], [00 0001 01], [00 1110 00] 또는 [00 1110 01]일 수 있다. 여기에서, 키 값은 입력 워드와 동일한 비트 수(즉, 비트 길이)를 가진다.
패킷이 31 개의 워드를 포함하는 표 2의 예에서, 적어도 하나의 그룹은 3 개 또는 그보다 적은 수의 구성원을 가질 것이다. 이와 같이, 키 그룹의 PRB 및 POB로부터 누락된 하나 이상의 비트 패턴을 찾을 수 있다. 이 조건은 입력 패킷의 워드 수 N이 그룹 수에 PRB/POB 필드에서 가능한 패턴 수를 곱한 값보다 작은 한 충족된다(표 2의 예에서, 8개의 그룹과 PRB 및 POB에 4 개의 패턴이 있으므로 패킷 크기는 8 x 4 = 32 보다 작다).
본 발명의 한 실시예에서는, 전이 부호기(100)가 키 값을 사용하여 입력 워드를 부호화하여 수신기(20)에 전송할 복수의 부호화 워드를 포함하는 부호화된 패킷을 생성한다. 각 부호화 워드는 대응 입력 워드와 키 값에 XOR 연산을 수행한 결과이다. 이와 같이, 부호화된 패킷(Y)은 다음과 같이 표현할 수 있다.
여기에서 K는 키 값을 나타내고, x 1, x 2, ..., x N 는 입력 패킷을 이루는 N 개의 입력 워드를 나타내고, 기호 ^ 는 이진 XOR 연산을 기호화한 것이다. 부호화된 패킷이 부호화 워드뿐 아니라 키 값도 포함하므로 부호화된 패킷의 워드 길이가 변환된 패킷보다 1만큼 더 크다(즉, N+1 개의 워드를 포함한다). 여기에서는 전체 키워드가 부호화 워드(y 0)로서 수신기에 전송되지만, 본 발명의 실시예는 이에 한정되지 않는다. 예를 들면, 전이 부호기(100)가 변경(된) 키 값(K')을 만들고 이를 키 값(K) 대신 수신기(20)에 전송할 수 있다. 키 값의 GID0의 MSB가 0이라고 가정한 실시예에서, 전이 부호기(100)는 변경 키 값(K')을 키 값(K)과 동일하게 만들되, GID0의 MSB를 GID0의 차상위 비트(next significant bit)의 보수(complement)로 대체할 수 있다. 예를 들면, 표 2를 참고하면, 키 값의 GID0 0001일 때, 변경 키 값의 GID0는 1001일 수 있다. 이는 K'에 전이가 있고 K'의 전송 동안 런-길이가 위배되지 않도록 보장하기 위하여 행해진다. 이러한 실시예에서, 부호화된 패킷(Y)은 다음과 같이 표현될 수 있다.
수학식 3, 4는 키 값/변경 키 값을 부호화된 패킷의 첫 번째 워드로 표현하고 있지만, 본 발명의 실시예는 이에 한정되지 않는다. 예를 들면, 키 값/변경 키 값은 부호화된 패킷(Y)의 마지막 워드일 수도 있고, 아니면 수신기(20)가 패킷 내의 키 값/변경 키 값의 위치를 알고 있는 한 패킷 내의 적정한 어떤 위치라도 가능하다. 키 값/변경 키 값이 결정되는 방식 때문에, 부호화된 워드는 수신기(20)가 전송된 패킷으로부터 클록을 복구할 수 있도록 하는 소기의 런-길이를 보여준다.
표 2는 예시의 입력 워드와 생성된 키 값에 기초하여 생성된 부호화된 값을 제공한다. 키 값의 GID (및, 이와 동등하게, 키 그룹의 GID)는 그 정의에 따라 다른 그룹의 것과는 다르기 때문에, 키 값과 다른 그룹의 입력 워드를 XOR 연산하면 결과적인 부호화 워드의 GID에 비트 전이가 발생한다. 따라서, 표 2에 도시한 것처럼, 키 값의 GID는 키 그룹이 아닌 그룹에 대응하는 적어도 이러한 워드들에 대해서 10의 런 길이를 보장한다. 또한, 키 그룹의 워드의 PRB 및 POB와 다른 키 값의 PRB0 및 POB0를 사용함으로써, 키 그룹 내의 워드와 키 값의 XOR 연산이 부호화된 워드의 PRB 및 POB 둘 다에 비트 전이(즉, 연속하는 0과 1 비트)를 확실히 일으키도록 할 수 있다. 그 결과, 키 그룹 내의 워드조차도 부호화되어 소기의 런-길이(보기: 표 2에서 10)를 충족시킨다.
송신기(10)는 통신 채널(15)을 통하여 수신기(20)와 부호화된 패킷(Y)을 전한다. 부호화된 패킷(Y)이 (예를 들어 수학식 3에 있는) 키 값(K)을 포함하는 실시예에서, 수신기(20)가 부호화된 패킷을 수신하면, 전이 복호기(200)는 키 값(보기: 수신한 패킷의 첫 번째 워드)을 식별하고, 키 값에 기초하여 나머지 부호화 워드를 복호화하여 복호화(된) 패킷(X')을 생성하며, 이는 { x' 1, x' 2, ..., x' N }로 표현된다. 전이 복호기(200)는 두 번째 및 그 이후 워드를 키 값과 XOR 연산한다. 본 발명의 한 실시예에서는, 복호화(된) 워드(x' i)(i는 1 이상의 정수)는 다음과 같이 표현될 수 있다.
따라서, 전이 복호기(200)는 원본 입력 워드를 재생할 수 있다. 부호화된 패킷이 [예를 들어 수학식 4에 표현한 키 값(K) 대신] 변경 키 값(K')을 포함하는 실시예에서, 전이 복호기(200)는 변경 키 값(보기: 수신한 패킷에서 첫 번째 워드)을 식별하고, 키 값의 GID0의 MSB를 0으로 대체함으로써 변경 키 값(K')에 기초하여 키 값(K)을 생성하며, 앞서 설명한 것처럼, 나머지 부호화된 워드를 키 값(K)에 기초하여 복호화한다.
도 3은 본 발명의 한 실시예에 따른 입력 데이터 부호화 과정(300)을 나타낸다.
전이를 위하여 입력 데이터를 처리할 때, 전이 부호기(100)는 입력 데이터(보기: 입력 데이터 스트림)를 수신하고, 입력 데이터를 복수의 데이터 패킷으로 분할하며, 입력 데이터의 입력 패킷을 식별한다(S302). 입력 패킷은 복수의 입력 워드를 포함하고, 각 입력 워드는 프리 비트, 그룹 ID 비트 및 포스트 비트를 포함한다.
본 발명의 한 실시예에서는, 전이 부호기(100)가 복수의 입력 워드를 그 그룹 ID 비트에 기초하여 복수의 그룹으로 조직한다(S304). 이와 같이 할 때, 전이 부호기(100)는 복수의 입력 워드 중 동일한 그룹 ID 비트와 동일한 보수 그룹 ID 비트를 가지는 것들을 복수의 그룹 중 동일한 그룹으로 묶는다. 본 발명의 한 실시예에서는, 전이 부호기(100)가 복수의 입력 워드 중 (2g-1)/2 보다 작고 제1 값과 동일한 그룹 ID 비트 값을 가지는 워드들을 하나로 묶고, (2g-1)/2 보다 크고 제1 값의 보수와 동일한 그룹 ID 비트 값을 가지는 워드들을 동일한 그룹의 다른 하나로 묶는다. 그룹의 수는 그룹 ID 비트 내의 비트 수의 절반일 수 있다.
본 발명의 한 실시예에서는, 입력 패킷이 31 개의 입력 워드를 포함하고, 복수의 입력 워드 각각은 8 비트를 포함하고, 프리 비트는 복수의 입력 워드 중 대응하는 워드의 2 MSB를 포함하고, 그룹 ID 비트는 대응 워드의 4 중간 비트를 포함하고, 포스트 비트는 대응 워드의 2 LSB를 포함하며, 복수의 그룹은 8 개의 그룹을 포함하며, 입력 패킷의 런 길이는 10이다. 전이 부호기(100)는 이어 복수의 그룹 중 입력 워드 수가 최소인 키 그룹을 식별한다(S306).
본 발명의 한 실시예에서는, 전이 부호기(100)가 복수의 워드 중 키 그룹에 대응하는 워드의 프리 비트, 그룹 ID 비트 및 포스트 비트에 기초하여 키 값을 결정한다(S308). 이렇게 할 때, 전이 부호기(100)는 키 그룹 ID 비트를 복수의 워드 중 키 그룹에 대응하는 워드의 그룹 ID 비트로 정하고, 키 프리 비트를 복수의 워드 중 키 그룹에 대응하는 워드의 프리 비트에서 누락된 비트로 정하고, 키 포스트 비트를 복수의 워드 중 키 그룹에 대응하는 워드의 포스트 비트에서 누락된 비트로 정하며, 키 프리 비트, 키 그룹 ID 비트 및 키 포스트 비트에 기초하여 키 값을 생성한다. 여기에서, 키 값은 복수의 입력 워드 중 하나와 동일한 비트 길이를 가지며, 복수의 입력 워드 중 어느 것과도 같지 않다.
전이 부호기(100)는 키 값 및 복수의 입력 워드에 기초하여 복수의 부호화(된) 워드를 생성한다(S310). 복수의 부호화 워드는 제1 부호화 워드 및 제2 부호화 워드를 포함하며, 제1 부호화 워드는 적어도 키 값에 기초하고, 제2 부호화 워드는 키 값과 제1 입력 워드에 기초한다. 전이 부호기(100)는 제1 부호화 워드를 키 값으로 생성하고, 복수의 입력 워드 중 하나와 키 값에 이진 XOR 연산을 수행함으로써 제2 부호화 워드를 생성한다.
전이 부호기(100)는 이어 부호화 워드를 포함하는 전송 데이터를 통신 채널(15)을 통하여 수신기(20)에 전송한다.
도 4는 본 발명의 한 실시예에 따른 전송 데이터 복호화 과정(400)을 나타낸다.
본 발명의 한 실시예에서는, 수신기(20)가 복수의 부호화 워드를 포함하는 전송 데이터를 통신 채널(15)을 통하여 송신기(10)로부터 수신한다(S402). 부호화 워드는 제1 부호화 워드 및 제2 부호화 워드를 포함한다. 본 발명의 한 실시예에 따르면, 제1 및 제2 부호화 워드는 연속하는 워드일 수 있다. 수신기(20)[보기: 전이 복호기(200)]는 제1 및 제2 부호화 워드에 이진 XOR 연산을 수행하여 복수의 복호화(된) 워드 중 제1 복호화 워드를 생성함으로써 복수의 복호화 워드를 생성한다(S404). 제1 부호화 워드의 비트 길이는 제1 복호화 워드와 동일할 수 있다.
앞서 설명한 바와 같이, 본 발명의 한 실시예에 따른 전이 부호기(100)는 어떤 적절한 워드 크기를 가지는 데이터라도 부호화하여 어떤 적절한 런 길이 제한이라도 생성할 수 있다. 본 발명의 한 실시예에서는, 전이 부호기(100)가 특별한 방식으로 입력 데이터에 기초하여 키 값을 결정함으로써 이러한 소기의 특성을 가능하게 하며, 이는 바이트-워드 정렬 하드웨어 또는 비트 패딩을 구현할 필요성을 없애고, 송신기/수신기 설계를 간단히 하며, 전체 시스템 비용을 줄여 준다. 또한, 본 발명의 한 실시예에 따르면, 통신 시스템(1)은 전이 부호화 방식에 오버헤드를 가하지 않고 이러한 소기의 효과를 달성한다.
"제1", "제2", "제3" 등의 용어를 여러 가지 원소, 성분, 영역, 층, 부분 등에 사용하지만, 이들은 이런 수식어에 의하여 한정되지 않는다. 이러한 용어는 어떤 원소, 성분, 영역, 층, 부분을 다른 원소, 성분, 영역, 층, 부분과 구별하기 위하여 사용하는 것이며 본 발명의 취지와 범위를 벗어나지 않는다.
여기에서 사용된 용어는 특정 실시예를 설명할 목적으로 사용할 뿐이며 본 발명을 제한하고자 하는 것은 아니다. 여기에서 수를 특별히 언급하지 않으면 단수 또는 복수의 경우를 모두 포함한다. 어떤 특징, 단계, 동작, 부분, 성분 등을 "포함"한다는 표현은 해당 부분 외에 다른 특징, 단계, 동작, 부분, 성분 등도 포함할 수 있다는 것을 의미한다. "및/또는"이라는 표현은 나열된 것들 중 하나 또는 둘 이상의 모든 조합을 포함한다. 또한, 본 발명의 실시예를 설명할 때 사용하는 "수 있다"는 표현은 "본 발명의 하나 이상의 실시예"에 적용 가능하다는 것을 뜻한다. "예시적인"이라는 용어는 예 또는 도면을 나타낸다.
"사용", "이용" 등은 이와 유사한 다른 표현과 함께 비슷한 의미로 사용될 수 있다.
본 발명의 실시예를 설명할 때 "수 있다(may)"는 표현의 사용은 발명의 하나 이상의 실시예와 관련된다. 또한 "예시의(exemplary)"라는 용어는 예를 나타내기 위한 것이다.
앞에서는 구체적인 실시예를 들어 상세하게 설명하였지만, 여기에서 설명한 실시예는 본 발명의 범위를 기재한 그대로 한정하기 위한 것이 아니다. 당업자라면 앞에서 설명한 결합 및 동작의 구조 및 방법을 다음 청구범위 및 그 등가물에 표현된 발명의 원리 및 범위에서 크게 벗어나지 않고 변경 또는 수정하는 것이 가능하다는 점을 알 수 있다.
1: 직렬 데이터 통신 시스템
10: 송신기
12: 데이터 부호기/압축기
15: 통신 채널
20: 수신기
22: 데이터 복호기/압축 해제기
24: 클록 복구 회로
30: 프로세서
32: 프로세서 메모리
100: 전이 부호기
200: 전이 복호기
10: 송신기
12: 데이터 부호기/압축기
15: 통신 채널
20: 수신기
22: 데이터 복호기/압축 해제기
24: 클록 복구 회로
30: 프로세서
32: 프로세서 메모리
100: 전이 부호기
200: 전이 복호기
Claims (20)
- 프리 비트, 그룹 ID 비트 및 포스트 비트를 각각 포함하는 복수의 입력 워드를 포함하는 입력 데이터의 입력 패킷을 식별하는 단계,
상기 복수의 입력 워드의 그룹 ID 비트에 기초하여 상기 복수의 입력 워드를 복수의 그룹으로 조직하는 단계,
상기 각 그룹 내의 입력 워드의 수에 기초하여 상기 복수의 그룹 중 키 그룹을 식별하는 단계,
상기 복수의 입력 워드 중 상기 키 그룹에 대응하는 입력 워드의 상기 프리 비트, 상기 그룹 ID 비트 및 상기 포스트 비트에 기초하여 키 값을 결정하는 단계, 그리고
상기 키 값 및 상기 복수의 입력 워드에 기초하여 복수의 부호화 워드를 생성하는 단계
를 포함하는 입력 데이터 부호화 방법.
- 제1항에서,
상기 입력 데이터를 수신하는 단계, 그리고
상기 입력 데이터를 상기 입력 패킷을 포함하는 복수의 데이터 패킷으로 분할하는 단계
를 더 포함하는 입력 데이터 부호화 방법.
- 제1항에서,
상기 입력 워드 각각은 [PRBi GIDi POBi]로 표현되며, PRBi는 상기 프리 비트를 나타내고, GIDi는 상기 그룹 ID 비트를 나타내고, POBi는 상기 포스트 비트를 나타내며, i는 0보다 큰 정수인 입력 데이터 부호화 방법.
- 제1항에서,
상기 입력 패킷은 31 개의 입력 워드를 포함하고, 상기 복수의 입력 워드 각각은 8 비트를 포함하고, 상기 프리 비트는 상기 복수의 입력 워드 중 대응 워드의 2 MSB(most significant bit)를 포함하고, 상기 그룹 ID 비트는 상기 대응 워드의 4 중간 비트를 포함하고, 상기 포스트 비트는 상기 대응 워드의 2 LSB(least significant bit)를 포함하며, 상기 복수의 그룹은 8 개의 그룹을 포함하며, 상기 입력 패킷의 런 길이는 10인 입력 데이터 부호화 방법.
- 제1항에서,
상기 복수의 입력 워드를 복수의 그룹으로 조직하는 단계는,
상기 복수의 입력 워드 중 동일한 그룹 ID 비트 또는 동일한 그룹 ID 비트의 보수를 가지는 입력 워드들을 상기 복수의 그룹 중 동일한 그룹으로 묶는 단계
를 포함하며,
상기 복수의 그룹의 수는 상기 그룹 ID 비트 내의 비트 수의 절반인
입력 데이터 부호화 방법.
- 제1항에서,
상기 복수의 입력 워드를 복수의 그룹으로 조직하는 단계는,
복수의 입력 워드 중 (2g-1)/2 보다 작고 제1 값과 동일한 그룹 ID 비트 값을 가지는 워드들을 하나로 묶고, (2g-1)/2 보다 크고 상기 제1 값의 보수와 동일한 그룹 ID 비트 값을 가지는 워드들을 동일한 그룹의 다른 하나로 묶는 단계
를 포함하며,
상기 g는 상기 그룹 ID 비트의 비트 길이를 나타내는
입력 데이터 부호화 방법.
- 제1항에서,
상기 키 그룹을 식별하는 단계는,
상기 키 그룹을 상기 복수의 그룹 중 최소 입력 워드 수 또는 문턱 값 아래의 입력 워드 수를 가지는 그룹으로 정의하는 단계
를 포함하는 입력 데이터 부호화 방법.
- 제1항에서,
상기 키 값을 결정하는 단계는,
키 그룹 ID 비트를 상기 복수의 워드 중 상기 키 그룹에 대응하는 워드의 그룹 ID 비트로 결정하는 단계,
키 프리 비트를 상기 복수의 워드 중 상기 키 그룹에 대응하는 워드의 프리 비트에서 누락된 비트로 결정하는 단계,
키 포스트 비트를 상기 복수의 워드 중 상기 키 그룹에 대응하는 워드의 포스트 비트에서 누락된 비트로 결정하는 단계, 그리고
상기 키 프리 비트, 상기 키 그룹 ID 비트 및 상기 키 포스트 비트에 기초하여 상기 키 값을 생성하는 단계
를 포함하는 입력 데이터 부호화 방법.
- 제8항에서,
상기 키 값은 [PRB0 GID0 POB0]로 표현되며, PRB0 는 상기 키 프리 비트를 나타내고, GID0 는 상기 키 그룹 ID 비트를 나타내고, POB0 는 상기 키 포스트 비트를 나타내는 입력 데이터 부호화 방법.
- 제1항에서,
상기 키 값은 상기 복수의 입력 워드 중 하나와 동일한 비트 길이를 가지며, 상기 복수의 입력 워드 중 어느 것과도 같지 않은 입력 데이터 부호화 방법.
- 제1항에서,
상기 복수의 부호화 워드는 제1 부호화 워드 및 제2 부호화 워드를 포함하며, 상기 제1 부호화 워드는 적어도 상기 키 값에 기초하고, 상기 제2 부호화 워드는 상기 키 값과 상기 복수의 입력 워드 중 제1 입력 워드에 기초하는 입력 데이터 부호화 방법.
- 제11항에서,
상기 복수의 부호화 워드를 생성하는 단계는,
상기 키 값에 기초하여 변경 키 값을 생성하는 단계,
상기 제1 부호화 워드를 상기 변경 키 값으로 생성하는 단계, 그리고
상기 복수의 입력 워드 중 하나와 상기 키 값에 이진 XOR 연산을 수행하여 상기 제1 부호화 워드를 생성하는 단계
를 포함하는 입력 데이터 부호화 방법.
- 제1항에서,
상기 복수의 부호화 워드는 { K' , x 1^K, x 2^K, … , x N^K }로 표현되며, K는 상기 키 값을 나타내고, K'은 상기 키 값에 기초한 변경 키 값을 나타내고, x 1, x 2, … , x N 은 상기 입력 패킷의 상기 복수의 입력 워드를 나타내고, N은 2보다 큰 정수이고, ^ 는 이진 XOR 연산을 기호화한 것인 입력 데이터 부호화 방법.
- 제1항에서,
상기 복수의 부호화 워드를 포함하는 전송 데이터를 통신 채널을 통하여 수신기에 전송하는 단계를 더 포함하는 입력 데이터 부호화 방법.
- 프로세서, 그리고
상기 프로세서에 종속되며 명령(instruction)을 저장하는 프로세서 메모리
를 포함하며,
상기 프로세서가 상기 명령을 수행하면 상기 프로세서는,
프리 비트, 그룹 ID 비트 및 포스트 비트를 각각 포함하는 복수의 입력 워드를 포함하는 입력 데이터의 입력 패킷을 식별하고,
상기 입력 워드의 그룹 ID 비트에 기초하여 상기 복수의 입력 워드를 복수의 그룹으로 조직하고,
상기 복수의 그룹 중 문턱 값보다 작은 입력 워드의 수에 대응하는 키 그룹을 식별하고,
상기 복수의 입력 워드 중 상기 키 그룹에 대응하는 입력 워드의 상기 프리 비트, 상기 그룹 ID 비트 및 상기 포스트 비트에 기초하여 키 값을 결정하고,
상기 키 값 및 상기 복수의 입력 워드에 기초하여 복수의 부호화 워드를 생성하는
입력 데이터 부호화용 전이 부호기.
- 변경 키 값을 포함하고 제1 부호화 워드를 포함하는 복수의 부호화 워드를 포함하는 전송 데이터를 수신하는 단계,
상기 변경 키 값에 기초하여 키 값을 생성하는 단계, 그리고
상기 키 값과 상기 제1 부호화 워드에 이진 XOR 연산을 수행하여 복수의 복호화 워드 중 제1 복호화 워드를 생성하는 단계
를 포함하는 전송 데이터 복호화 방법.
- 제16항에서,
상기 변경 키 값은 [PRB0 GID0 POB0]로 표현되며, PRB0 는 상기 변경 키 값의 프리 비트를 나타내고, GID0 는 상기 변경 키 값의 그룹 ID 비트를 나타내고, POB0 는 상기 변경 키 값의 포스트 비트를 나타내며,
상기 변경 키 값에 기초하여 키 값을 생성하는 단계는,
상기 키 값의 상기 그룹 ID 비트의 MSB를 0으로 바꾸어 상기 키 값을 생성하는 단계
를 포함하는
전송 데이터 복호화 방법.
- 제16항에서,
상기 변경 키 값에 기초하여 키 값을 생성하는 단계는,
상기 변경 키 값의 비트 중 하나를 0으로 설정하여 상기 키 값을 생성하는 단계
를 포함하는 전송 데이터 복호화 방법.
- 제16항에서,
상기 복수의 부호화 워드는 { K' , x 1^K, x 2^K, … , x N^K }로 표현되며, x 1, x 2, … , x N 은 입력 패킷의 복수의 입력 워드를 나타내고, K는 상기 복수의 부호화 워드를 부호화하는 데 사용되는 상기 키 값을 나타내고, K'은 상기 변경 키 값을 나타내고, ^ 는 이진 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 | 2021-12-20 | ||
US17/556,899 US11637685B2 (en) | 2021-08-31 | 2021-12-20 | System and method for transition encoding with flexible word-size |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230033623A true KR20230033623A (ko) | 2023-03-08 |
Family
ID=83457264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220109160A KR20230033623A (ko) | 2021-08-31 | 2022-08-30 | 데이터 부호화 방법 및 부호기와 데이터 복호화 방법 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11637685B2 (ko) |
EP (1) | EP4142229A1 (ko) |
JP (1) | JP2023036033A (ko) |
KR (1) | KR20230033623A (ko) |
CN (1) | CN115733606A (ko) |
TW (1) | TW202320493A (ko) |
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 |
---|---|---|---|---|
DE3583819D1 (de) | 1984-05-21 | 1991-09-26 | Matsushita Electric Ind Co Ltd | Verfahren und vorrichtung zur erzeugung eines lauflaengenbegrenzten kodes. |
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 |
ES2163402T3 (es) | 1993-10-19 | 2002-02-01 | Xerox Corp | Grupos de palabras almacenados de manera compacta. |
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 |
WO2009127225A1 (en) | 2008-04-15 | 2009-10-22 | 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 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 |
---|---|
US11888962B2 (en) | 2024-01-30 |
CN115733606A (zh) | 2023-03-03 |
US20230071335A1 (en) | 2023-03-09 |
JP2023036033A (ja) | 2023-03-13 |
US20230163941A1 (en) | 2023-05-25 |
TW202320493A (zh) | 2023-05-16 |
EP4142229A1 (en) | 2023-03-01 |
US11637685B2 (en) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6747580B1 (en) | Method and apparatus for encoding or decoding data in accordance with an NB/(N+1)B block code, and method for determining such a block code | |
US6614369B1 (en) | DC balanced 7B/8B, 9B/10B, and partitioned DC balanced 12B/14B, 17B/20B, and 16B/18B transmission codes | |
KR100281738B1 (ko) | 니블 반전 및 블록 반전 부호의 부호화 및 복호화 방법, 그 부호 및 복호장치 | |
KR20230033623A (ko) | 데이터 부호화 방법 및 부호기와 데이터 복호화 방법 | |
US7683810B2 (en) | Code design with decreased transition density and reduced running digital sum | |
US5878061A (en) | Providing serial data clock signal transitions with parity bits | |
US5938773A (en) | Sideband signaling with parity bit schemes | |
US11777765B2 (en) | Signal transmission system, transmitter encoding apparatus and receiver decoding apparatus | |
KR20230050256A (ko) | 데이터 부호화 방법 및 부호기와 데이터 복호화 방법 | |
US6344807B1 (en) | Packet-frame generator for creating an encoded packet frame and method thereof | |
KR100464228B1 (ko) | 디지탈정보신호의송신및수신장치및그의송신방법 | |
TW202245428A (zh) | 低編碼開銷轉態編碼之編碼器及解碼 | |
US6438728B1 (en) | Error character generation | |
KR100528139B1 (ko) | 코드워드를 생성하는 방법 및 장치 | |
US6101281A (en) | Method for improving data encoding and decoding efficiency | |
JP4780350B2 (ja) | シリアルデータ通信のための符号化方式 | |
US11632127B2 (en) | Near-optimal transition encoding codes | |
Immink et al. | Efficient encoding of constrained block codes | |
CN110336644B (zh) | 一种高维调制下的分层编码方法 | |
JPH0629861A (ja) | データ圧縮方法 | |
TWI774233B (zh) | 訊號傳輸系統與發射端編碼裝置 | |
JP2003087121A (ja) | コードレートを増加させるためのブロック符号化/復号化方法及び装置 | |
Postol | Some new lattice quantization algorithms for video compression coding | |
Witsenhausen | Minimizing the Worst‐Case Distortion in Channel Splitting | |
JPH06268526A (ja) | 信号処理システム |