KR20170117850A - 이진데이터의 압축전송방법(10type-10type연속형) - Google Patents

이진데이터의 압축전송방법(10type-10type연속형) Download PDF

Info

Publication number
KR20170117850A
KR20170117850A KR1020160045832A KR20160045832A KR20170117850A KR 20170117850 A KR20170117850 A KR 20170117850A KR 1020160045832 A KR1020160045832 A KR 1020160045832A KR 20160045832 A KR20160045832 A KR 20160045832A KR 20170117850 A KR20170117850 A KR 20170117850A
Authority
KR
South Korea
Prior art keywords
binary
quot
cluster
binary cluster
type
Prior art date
Application number
KR1020160045832A
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 김정훈
Priority to KR1020160045832A priority Critical patent/KR20170117850A/ko
Publication of KR20170117850A publication Critical patent/KR20170117850A/ko

Links

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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • 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/06Code representation, e.g. transition, for a given bit cell depending only on the information in that bit cell
    • H03M5/12Biphase level code, e.g. split phase code, Manchester code; Biphase space or mark code, e.g. double frequency 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/55Compression Theory, e.g. compression of random number, repeated compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/028Arrangements specific to the transmitter end
    • H04L25/0284Arrangements to ensure DC-balance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 임의의 이진데이터에 있어서,
1개이상의 "0" 에 이어서 1개의 "1"로 구성되는 바이너리 클러스터인 A type바이너리 클러스터와 hidden A type 바이너리 클러스터로 구분하여 압축전송함으로써 기존의 3가지 type인 10type, 101 type, 1001 type 바이너리 클러스터 전송방법에 비해 압축효율과 속도를 대폭 향상시킨 발명으로서,
S] 과정 : 최상위로부터 최하위 방향으로 이동하면서, “01”을 처음만날 때, “01” 다음비트사이에서 이진수를 분리하고, 이때 분리된 이진수를 바이너리 클러스터라고 한다.
위와 같은 규칙으로 분리된 바이너리 클러스터는 A type 과 B type으로 나뉜다.
A type은 1개이상의 연속된 “0” 과 1개의 “1”로 구성된 형태이고,
B type은 A type이 아닌 형태이다.
먼저 분리된 바이너리 클러스터가 특별한 연산과정 없이 바로 A type 형태로 분리될 경우에는, 분리된 바이너리 클러스터의 “0”의 개수 또는 동일한 숫자를 나타내는 바이너리 클러스터의 비트길이 - 1 중에 어떤 하나를 선택하여 이 값(L)을 이진수로 변환한 값을 압축바이너리 클러스터로 하여 전송한다. 이때 압축바이너리 클러스터는 “1”로 시작하는 특성을 갖는다.
물론, 뒤에 설명될 B type 바이너리 클러스터의 경우 연산처리 이후 생성된 hidden A type 바이너리 클러스터를 압축바이너리 클러스터로 만들경우에, 압축바이너리 클러스터를 비트 반전하여 “0”으로 시작하는 특성을 갖도록 하게 되는데, 이 설정을 반대로 바꾸면, 상기 type A 바이너리 클러스터를 “0”로 시작하는 압축바이너리 클러스터로 변형하고, hidden type A 바이너리 클러스터를 “1”로 시작하는 압축바이너리 클러스터로 만들 수 있음은 물론이다.

Description

이진데이터의 압축전송방법(10type-10type연속형){BINARY DATA COMPRESSED TRANSFER METHOD AND APPRATUS THEREOF}
라인코딩, 데이터 압축
라인코딩, 데이터 압축
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
임의의 이진데이터에 있어서, 특정 임의의 범위의 이진데이터에 있어서
...001011100011111001010101000000011110111...
[ 전송부 ]
< 첫번째 압축바이너리 클러스터 전송>
[S] 과정 : 최상위로부터 최하위 방향으로 이동하면서, “01”을 처음만날 때, “01” 다음비트사이에서 이진수를 분리하면 아래와 같다.
001/011100011111001010101000000011110111
이때 분리된 “001” 과 같은 이진수를 바이너리 클러스터라고 한다.
위와 같은 규칙으로 분리된 바이너리 클러스터는 A type 과 B type으로 나뉜다.
Figure pat00001
A type은 1개이상의 연속된 “0” 과 1개의 “1”로 구성된 형태이고,
B type은 A type이 아닌 형태이다.
이때 다양한 약속을 통해 Latter part를 변형시킬수 있는데, 데이터 압축에 유리한 모든 방법의 변형이 가능하다. 단 복호화시에는 그 역과정을 통해서 복호화시켜주어야 한다. 본 실시례에서는 별도로 latter part를 변형하는 과정은 거치치 않았다.
먼저 분리된 바이너리 클러스터가 특별한 연산과정 없이 바로 A type 형태로 분리될 경우에는, 분리된 바이너리 클러스터의
“0”의 개수 또는 동일한 숫자를 나타내는 바이너리 클러스터의 비트길이 - 1 중에 어떤 하나를 선택하여 이 값(L)을 이진수로 변환한 값을 압축바이너리 클러스터로 하여 전송한다. 이때 압축바이너리 클러스터는 “1”로 시작하는 특성을 갖는다.
물론, 뒤에 설명될 B type 바이너리 클러스터의 경우 연산처리 이후 생성된 hidden A type 바이너리 클러스터를 압축바이너리 클러스터로 만들경우에, 압축바이너리 클러스터를 비트 반전하여 “0”으로 시작하는 특성을 갖도록 하게 되는데, 이 설정을 반대로 바꾸면, 상기 type A 바이너리 클러스터를 “0”로 시작하는 압축바이너리 클러스터로 변형하고, hidden type A 바이너리 클러스터를 “1”로 시작하는 압축바이너리 클러스터로 만들 수 있음은 물론이다.
또한 이러한 설정을 이용하여 특정 패스워드값에 따라서, 각 바이너리 클러스터에 대하여 압축바이너리 클러스터를 만들고 이를 유형별로 다시 비트반전여부를 결정함에 있어서, 특정 패스워드 비트값에 따라 각 유형별로 비트반전여부를 압축시마다 결정함으로써 암호화 전송효과를 나타낼 수 있다.
예를들어 상기에서 “001”은 L=2 가 되며, L을 이진수로 변환하면 “10” 이고 이것이 첫 번째 전송대상 압축바이너리 클러스터이다.
이 값을 전송한다.
그리고 압축대상 이진데이터로부터 바이너리 클러스터는 제거하고, 남은 이진데이터에 대하여 [S]과정부터 다시 반복한다.
001/011100011111001010101000000011110111
< 두번째 압축바이너리 클러스터 전송>
이제 남은 데이터를 다시 [S]과정부터 진행해보면,
011100011111001010101000000011110111
[S]과정을 거치면,
01/1100011111001010101000000011110111
이고, 분리된 바이너리 클러스터가 "01" 이므로, A type이므로, <첫번째 전송>처럼 L=1을 구하고 L을 이진수로 환산한 이진수 “1”을 압축바이너리 클러스터로 하여 전송한다.
< 세번째 압축바이너리 클러스터 전송>
이제 남은 데이터를 다시 [S]과정부터 진행해보면,
1100011111001010101000000011110111
[S]과정을 거치면, 아래와 같은데,
110001/1111001010101000000011110111
이고, 분리된 바이너리 클러스터가 "110001" 이므로, B type이다. 나머지 이진수 영역을 Latter part라고 명명하였다.
Figure pat00002
분리된 바이너리 클러스터가 B type일 경우에는,
[1] B type 바이너리 클러스터를 비트반전한 형태의 Inverted binary cluster로 변형한뒤, 남은 이진데이터와 결합시킨다.
Figure pat00003
즉 110001 ===> 001110 으로 inverted binary cluster를 만들고, 재결합시키면, 아래와 같다.
001110/1111001010101000000011110111
이때 다양한 약속을 통해 Latter part를 변형시킬수 있는데, 데이터 압축에 유리한 모든 방법의 변형이 가능하다. 단 복호화시에는 그 역과정을 통해서 복호화시켜주어야 한다. 본 실시례에서는 별도로 latter part를 변형하는 과정은 거치치 않았다.
[2] 다음으로 다시 위의 [S] 과정을 거쳐서 바이너리 클러스터를 분리한다.
[S]과정을 거치면, 아래와 같이 “001” 바이너리 클러스터로 분할되고, 이는 A type 바이너리 클러스터이다.
001/1101111001010101000000011110111
이와 같이, 분리된 바이너리 클러스터는 반드시 A type이 된다. 이와 같은 바이너리 클러스터를 Hidden A type 바이너리 클러스터라고 명명하자.
Figure pat00004
[3] 이제 분리된 hidden A type 바이너리 클러스터에 대하여, L을 구하면 L=2이고, 이를 이진수로 변환하면 “10” 이고 이를 Hidden A type 바이너리 클러스터의 경우에는 비트반전하여 “01” 로 만들어서 “0”으로 시작하는 형태의 압축바이너리 클러스터를 만들어서 전송시킨다.
<4번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
1101111001010101000000011110111 ==> S과정 ==>
1101/111001010101000000011110111 ==> B type 바이너리 클러스터
0010111001010101000000011110111 ==> inverted 바이너리 클러스터==> [S]과정
001/0111001010101000000011110111 ==> hidden A type 바이너리 클러스터 ==> L=2 ==>압축바이너리 클러스터(“10”) ==> 최종압축바이너리 클러스터 (“01”) 전송
<5번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
0111001010101000000011110111 ==> S과정 ==>
01/11001010101000000011110111 ==> A type 바이너리 클러스터 ==> L=1 ==> 최종압축바이너리 클러스터 (“1”) 전송
<6번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
11001010101000000011110111 ==> S과정 ==>
11001/010101000000011110111 ==> B type 바이너리 클러스터
00110010101000000011110111 ==> inverted 바이너리 클러스터 ==> [S]과정
001/10010101000000011110111 ==> hidden A type 바이너리 클러스터 ==> L=2 ==>압축바이너리 클러스터(“10”) ==> 최종압축바이너리 클러스터 (“01”) 전송
< 7 번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
1001/0101000000011110111 ==> 01100101000000011110111 ==> 01/100101000000011110111 ==> L=1 ==> “0” 전송
< 8 번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
1001/01000000011110111 ==> 011001000000011110111 ==> 01/1001000000011110111 ==> L=1 ==> “0” 전송
< 9 번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
1001/000000011110111 ==> 0110000000011110111 ==>
01/10000000011110111 ==> L=1 ==> “0” 전송
< 10 번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
1000000001/1110111 ==> 01111111101110111 ==>
01/111111101110111 ==> L=1 ==> "0"전송
<11번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
111111101/110111 ==> 000000010110111 ==>
00000001/0110111 ==> L=7 ( 압축바이너리 클러스터 “111”) ==> 반전하여 “000” 전송
<12번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
01/10111 ==> L=1 ==> 압축바이너리 클러스터 “1” 전송
<13번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
101/11 ==> 01011 ==> 01 / 011 ==> L=1 (압축바이너리클러스터 “1”) ==> 반전하여 “0” 전송
<14번째 압축바이너리 클러스터 전송>
이제 상기 바이너리 클러스터를 전송후 제거한뒤, 남은 이진데이터에 대하여, 상기 압축바이너리 클러스터 전송과정을 반복하면
01/1 ==> L=1 ==> 압축바이너리 클러스터 “1” 전송
<마지막 압축바이너리 클러스터 전송>
이제 다시 [S]과정을 통해 남은 데이터에 대해서 “01”을 만나는지 찾는데 아래와 같은 경우처럼 “01”을 만나지 못하는 경우이거나, “01”을 만나는 경우 이렇게 두가지 모두 가능할 수 있다.
[1] 설정에 따라 반드시 “01”을 만나도록 한다면, 전송초기에 전송대상 이진데이터의 최하위 비트뒤에 “01”을 붙임으로써 해결이 가능하고, 이때 단, 복호화한뒤에 최후의 “01”을 제거하여야 한다.
[2] 그렇지 않은 경우에는, 마지막 바이너리 클러스터 전송시에는, 별도의 압축과정없이 그대로 전송하는 방법이 있다.
본 실시례에서는, 그대로 전송하는 방법을 사용하면, 복호화측에서 마지막 클러스터의 경우에는, 별도의 압축해제없이 원본으로 간주하도록 한다.
1 ===> “1”을 최종적으로 전송
따라서, 본 실시례
00101 11000 11111 00101 01010 00000 01111 0111 의 39비트의 데이터의 경우에 압축바이너리 클러스터는,
10 / 1 / 01 / 01 / 1 / 01 / 0 / 0 / 0 / 0 / 000 / 1 / 0 / 1 / 1 의 14개의 압축바이너리 클러스터와 1개의 원본클러스터로 전송된다.
한편 이때, 압축바이너리 클러스터를 생성할때 , 바이너리 클러스터가 A type 또는 Hidden A type에 따라 비트반전의 형태가 본 실시례에서는 , A type일 경우에는, 축바이너리 클러스터의 비트반전을 수행하지 않는 형태였지만, Hidden A type일 경우에는, 압축바이너리 클러스터에 대해 비트반전을 수행하였다. 이를 설정으로 바꾸어, 특정 password 에 대하여, 바이너리 클러스터가 Hidden A type 일때 password가 0 또는 1 가운데 특정 값이었다면, 압축바이너리 클러스터를 비트 반전을 시키고, A type 일때 압축바이너리 클러스터를 비트반전을 시키지 않도록 하거나 또는 그 반대로 설정할수가 있다. 이와 같은 경우에 복호화 측에서는 항상 password를 참조하여, password 값에 따라서, 0으로 시작한 압축바이너리 클러스터라고 하여도, Hidden A type 바이너리 클러스터의 복호화 과정이 아닌 A type 바이너리 클러스터의 복호화 과정으로 진행될수가 있고, 또는 그 반대로 진행될 수가 있다.
Figure pat00005
21비트로 압축전송되며, 14개의 압축바이너리 클러스터간 구분정보(/) 가 추가되어, 전체 35 clock으로 전송되어 39 비트의 39 clock보다는 4 clock 효과가 전송속도 향상효과가 나타난다. 이때 구분정보 “/”는 CBCD(Compressed Binary Cluster Delimiter)라고 본 발명에서는 이름지었고, 1 clock 뿐만 아니라 수신기가 감지할수 있는 형태라면 어떠한 duration도 무방하며,
한편, 상기와 같이 압축바이너리 클러스터를 전송함에 있어서,
10 / 1 / 01 / 01 / 1 / 01 / 0 / 0 / 0 / 0 / 000 / 1 / 0 / 1 / 1
고속통신에 널리쓰이는 8b10b , 64b66b , 128b13xb 등에 적용할 수 있는데,
본 발명에서는 각각 4Q10B, 32Q66B , 64Q13xb 로 변환전송하여 동일한 경우의수에 대하여 DC balance를 맞추어 전송할 수 있다. 즉,
CBCD 직후의 "1"의 경우에, 4 진수 3으로
CBCD 직후의 "0"의 경우에, 4진수 2로 표현하면, 물론 또는 약속에 따라,
CBCD직후의 "1" 또는 "0"이 아닌경우의 각각의 "1" 또는 "0"과 CBCD직후의 "1" 또는 "0" 을 4진수의 0,1,2,3 어떤 하나로 매핑하기로 사전 설정할수도 있다.
물론 가장 최상위의 압축바이너리 클러스터의 최상위 비트의 " 1" 을 4로 전송하거나 그대로 1로 전송하는 것과 같은 실시례도 가능하다.
상기와 같은 방식으로 압축바이너리 클러스터를 4진수로 표현하면, CBCD는 더이상 필요치 않게 되어, 전체 21 개의 4진수로 구성되어 전송된다.
10 / 1 / 01 / 01 / 1 / 01 / 0 / 0 / 0 / 0 / 000 / 1 / 0 / 1 / 1
10 4 31 31 4 31 3 3 3 3 300 4 3 4 4
또는
10 / 1 / 01 / 01 / 1 / 01 / 0 / 0 / 0 / 0 / 000 / 1 / 0 / 1 / 1
40 4 31 31 4 31 3 3 3 3 300 4 3 4 4
보낼수도 있다.
설명의 편의상 최후의 압축 바이너리 클러스터 "1"을 전송하지 않는다고 실시례를 하나 추가하면, 아래와 같이 20개의 4진수로 전송된다.
10 / 1 / 01 / 01 / 1 / 01 / 0 / 0 / 0 / 0 / 000 / 1 / 0 / 1 ==>
10431314313333300434
상기 20개의 4진수를 8b10b체계를 이용해 전송하면,
4Q10b 로 전송하면 된다. 따라서 총 20개의 4진수는 50비트의 2진수로 전송된다.
1043/1314/3133/3330/0434
부연설명하면,
8B10B로 전송하기위하여, 4Q10B로 전송하는 방식이며,
64B66B는 32Q66B로,
128B13xB 는 64Q13xB로 전송하는 것과 같다.
내부적으로는 4Q10B 전송의 경우, 4Q를 8B로 내부전환한뒤, 10B로 최종변환하여 전송한다.
맨체스터 코드의 line coding 방식으로 전송할 경우에, “1” 은 하강에지, “0”상승 에지로 표현하되, “/” 는 1/2 bit period에서 no transition이라는 형태로 표현할 수 도 있다. 즉 "/" 는 LOW-LOW 또는 HIGH-HIGH 또는 휴지전위로 표현할 수 있다.
예를들어 압축전송 코드가 아래와 같다면,
000 / 0 / 1 / 00101 / 0 / 0 / 11 / 111001 / 11
이와 같은 데이터 스트리밍은 다음과 같이 맨체스터 코드로 변환되어 Layer 0에서 전송 가능하다.
Figure pat00006
또한 어떠한 전송 방식이든지 구분정보 “/”를 1과 0을 표현하는 방법외의 별도의 방법을 물리적 또는 시간적으로 구현하는 방식이면, 본 발명의 적용이 가능하다. 또는, Differential manchester coding을 사용할수도 있다.
한편 DC -Balance와 관련하여, 상기와 같이
송신측에서 수신측으로 압축바이너리 클러스터를 맨체스터 코딩방식 또는 differential manchester 코딩방식으로 전송함에 있어서,
압축바이너리 클러스터간 구분정보(CBCD, Compressed Binary Cluster Delimiter) 의 경우에, transition이 일어나지 않는 형태인 HIGH-HIGH(“11”) 이때 HIGH 하나는 1/2 bit period 로 편의상 설정 또는 LOW-LOW(“00”) 이때 LOW 하나는 1/2 bit period로 편의상 설정 또는 휴지전위( bipolar전송일때, 0 volt) 를 전송하도록 되어 있는데,
맨체스터 코딩방식의 DC balance를 맞추기 위하여, 휴지전위를 제외한 상승엣지/상승엣지(“11”) 또는 하강엣지/하강엣지(“00”) 를 전송할 경우, CBCD는 특정한 순번에서 HIGH-HIGH 로 구현되면, 다음 CBCD는 LOW-LOW 로 구현하여, HIGH와 LOW의 개수를 맞추어 줌으로써 CBCD가 첨가되어도 DC balance가 유지되도록 하며,
특히 마지막 까지 모든 코딩이 끝났는데, CBCD의 균형이 맞지 않을 경우 마지막에 CBCD를 반대로 추가하여 줌으로써 DC-balance를 맞추어 줄수있다.
예를들어, 아래와 같은 형태로 압축바이너리 클러스터를 전송할 경우
01 / 101 / 0 / 0 / 1 / 0
이를 본 발명의 맨체스터 코딩으로 바꾸면,
0 은 편의상 HIGH-LOW로 변환하면(HIGH를 “1”로 LOW를 “0”으로 표현)
1 은 편의상 LOW-HIGH로 변환하면(HIGH를 “1”로 LOW를 “0”으로 표현)
CBCD인 / 은 LOW-LOW 또는 HIGH-HIGH로 변환하면(HIGH를 “1”로 LOW를 “0”으로 표현)
01 / 101 / 0 / 0 / 1 / 0 ==> 1001/011001/10/10/01/10
==> 1001 11 011001 11 10 11 10 11 01 11 10
과 같이 맨체스터 코드 형태로 표현이 가능한데 ,
DC balance측면에서 , CBCD를 표현하는 “11” 이 5회가 더 나와서, 균형이 맞지 않는다. 따라서, 처음에 CBCD를 위해 “11”을 표현하면, 다음번 CBCD는 “00”을 표현하고 이후 번갈아 가면서 CBCD를 표현하여야 DC balance가 맞다.
즉 아래와 같이 처리하여 주면 되는데, 마지막의 경우 CBCD가 “11”에 대응하는 “00” 이 존재하지 않으므로, 마지막에 CBCD "00"을 추가하여 주도록 한다. 만약 이미 DC balance가 모두 맞다면 더 이상 추가할 필요는 없다.
1001 11 011001 00 10 11 10 00 01 11 10 00
상기와 같은 방식으로 맨체스터코딩을 구현하면 DC balance가 맞게 되어 있다.
만약 최초 CBCD를 “00”으로 표현하면 다음 CBCD는 “11”이 되어야하고 이 순서대로 번갈아 CBCD를 표현함을 물론이다.
한편 본 발명의 맨체스터 코딩은 표준적인 맨체스터 decoding기법을 적용하였을때 , 복호화기에서 CBCD를 Error로 아래와 같이 표출하게 된다.
아래는 ATMEL 사의 Manchester coding Basics 관련 APPLICATON NOTE의 맨체스터 코드 Encoder Decoder부분에 관한 로직 구현에 따라 본 발명을 적용하여 본 시나리오이다.
한편 상기와 같이
송신측에서 수신측으로 압축바이너리 클러스터를 맨체스터 코딩방식 또는 differential manchester 코딩방식으로 전송함에 있어서 ,
압축바이너리 클러스터간 구분정보(CBCD, Compressed Binary Cluster Delimiter) 의 경우에, transition이 일어나지 않는 형태인 HIGH-HIGH(“11”) 이때 HIGH 하나는 1/2 bit period 로 편의상 설정 또는 LOW-LOW(“00”) 이때 LOW 하나는 1/2 bit period로 편의상 설정 또는 휴지전위 ( bipolar전송일때 , 0 volt) 를 전송하도록 되어 있는데,
맨체스터 코딩방식의 DC balance를 맞추기 위하여, 휴지전위를 제외한 상승엣지 / 상승엣지 (“11”) 또는 하강엣지/하강엣지(“00”) 를 전송할 경우, CBCD는 특정 한 순번에서 HIGH- HIGH 로 구현되면, 다음 CBCD는 LOW- LOW 로 구현하여, HIGH와 LOW의 개수를 맞추어 줌으로써 CBCD가 첨가되어도 DC balance가 유지되도록 하며,
특히 마지막 까지 모든 코딩이 끝났는데, CBCD의 균형이 맞지 않을 경우 마지막에 CBCD를 반대로 추가하여 줌으로써 DC-balance를 맞추어 줄수있다 .
예를들어 , 아래와 같은 형태로 압축바이너리 클러스터를 전송할 경우
01 / 101 / 0 / 0 / 1 / 0
이를 본 발명의 맨체스터 코딩으로 바꾸면,
0 은 편의상 HIGH-LOW로 변환하면(HIGH를 “1”로 LOW를 “0”으로 표현)
1 은 편의상 LOW-HIGH로 변환하면(HIGH를 “1”로 LOW를 “0”으로 표현)
CBCD인 / 은 LOW-LOW 또는 HIGH-HIGH로 변환하면(HIGH를 “1”로 LOW를 “0”으로 표현)
01 / 101 / 0 / 0 / 1 / 0 ==> 1001/011001/10/10/01/10
==> 1001 11 011001 11 10 11 10 11 01 11 10
과 같이 맨체스터 코드 형태로 표현이 가능한데 ,
DC balance측면에서 , CBCD를 표현하는 “11” 이 5회가 더 나와서, 균형이 맞지 않는다. 따라서, 처음에 CBCD를 위해 “11”을 표현하면, 다음번 CBCD는 “00”을 표현하고 이후 번갈아 가면서 CBCD를 표현하여야 DC balance가 맞다. 이때 직전 CBCD가 " 11" 인데 현재 CHCD가 다시 "11"이면 이것은 확실히 에러를 나타 내는것이거나 또는 직전 CBCD가 " 00" 인데 현재 CBCD가 다시 "00"이면, 맨체스터 코딩의 Error detection기능도 어느정도 유지할수가 있다.
즉 아래와 같이 처리하여 주면 되는데, 마지막의 경우 CBCD가 “11”에 대응하는 “00” 이 존재하지 않으므로, 마지막에 CBCD "00"을 추가하여 주도록 한다. 만약 이미 DC balance가 모두 맞다면 더 이상 추가할 필요는 없다.
100111011001001011100001111000
상기와 같은 방식으로 맨체스터코딩을 구현하면 DC balance가 맞게 되어 있다.
만약 최초 CBCD를 “00”으로 표현하면 다음 CBCD는 “11”이 되어야하고 이 순서대로 번갈아 CBCD를 표현함을 물론이다.
한편 본 발명의 맨체스터 코딩은 표준적인 맨체스터 decoding기법을 적용하였을때 , 복호화기에서 CBCD를 Error로 아래와 같이 표출하게 된다.
Figure pat00007
Figure pat00008
Figure pat00009
Figure pat00010
복호화기에서 복호화할 때 이 Error 값을 CBCD로 인지하여 복호화 알고리즘을 이용하여 복호화가 가능하다.
즉, 01 / 101 / 0 / 0 / 1 / 0 ==> ( 본 발명에서 제안하는 LINE coding) ==> 01E101E0E0E1E0E ==> 01 / 101 / 0 / 0 / 1 / 0 와 같은 형태로 최종 변환 수신되어, E 를 압축바이너리 클러스터 구분정보("/")로 인식하여 압축해제한다. 마지막의 E는 존재할수도 있고 존재하지 않 을수 있는 DC balance를 맞추기 위한 것으로서 버리면 된다.
[수신부]
수신부에서는 순차적으로 물리적인 전송방법에 따라 수신받은 압축바이너리 아래와 같이 클러스터들 및 압축바이너리 클러스터 구분정보들로부터 압축바이너리 클러스터들만을 구분해낼수 있다.
10 / 1 / 01 / 01 / 1 / 01 / 0 / 0 / 0 / 0 / 000 / 1 / 0 / 1 / 1
압축바이너리 클러스터는 최후의 압축바이너리 클러스터는 특수성이 있어서, 별도로 압축시에 최하위 비트 이후에 “01”을 추가한 경우가 아니면, 별도의 압축해제 과정이 필요없이 바로 원본과 동일하다.
다음으로, 디코딩 방법은 2가지가 있다.
[1] 0 으로 시작하는 압축바이너리 클러스터와 1로 시작하는 압축바이너리 클러스터가 있는데, 디코딩 방법은 전체 압축바이너리 클러스터를 모두 수신한뒤 , 최후의 바이너리 클러스터로부터 상위로 이동하면서 디코딩하는 방법
먼저, 전체를 다 받은다음에
Figure pat00011
(1)최하위 압축 바이너리 클러스터부터 압축해제하는데,
본 실시례에서는 15번 압축바이너리 클러스터인 최하위 바이너리 클러스터는 별도의 decoding과정없이 바로 최하위 비트가 된다.
따라서,
“1”
(2) 다음으로, 14번 압축바이너리 클러스터는 “1” 로 시작하므로, L=1 이고, 압축해제하면, L개의 “0” 에 이어서 1개의 “1”로 구성된 바이너리 클러스터 “01” 로 압축해제 된다.
이를 직전 해독된 비트의 최상위 비트 앞에 붙인다.
따라서, “01” / “1” ===> “011”
(3) 다음으로, 13번 압축바이너리 클러스터는 “0”으로 시작하므로,
1) 압축바이너리 클러스터를 먼저 비트 반전하면, “1”이고, 따라서 L=1 이다, 따라서, 바이너리 클러스터는 “01” 이 된다.
먼저 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면,
“01” / “011” ==> “01011” 이 된다.
2) *** 이때, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 “10111” 로서 decoding 과정을 완료한다.
Figure pat00012
(4) 다음으로 12번 압축바이너리 클러스터는 “1”이고, L=1 이며, 따라서 압축해제하면, “01”이고, “1”로 시작하는 압축바이너리 클러스터이므로, 바로 기존 decoding 결과의 최상위 앞에 이어붙이면,
“01” / “10111” ==> “0110111” 이 된다.
(5) 다음으로 11번 압축바이너리 클러스터는 “000” 이고 “0”으로 시작하므로 비트반전하면, “111” 이고 이는 십진수로 7 이므로, L=7이다. 따라서 압축해제하면, “00000001” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면,
“00000001” / “0110111” ==> “000000010110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
000000010 110111” ==> 111111101 110111”
(6) 다음으로 10번 압축바이너리 클러스터는, “0” 이고, “0”으로 시작하므로 비트반전하면, “1” 이고 이는 십진수로 1 이므로, L=1이다. 따라서 압축해제하면, “01” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“01” / “111111101110111” ==> “01111111101110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
0111111110 1110111” ==> “ 1000000001 1110111”
(7) 다음으로 9번 압축바이너리 클러스터는, 역시 “0” 이고, “0”으로 시작하므로 비트반전하면, “1” 이고 이는 십진수로 1 이므로, L=1이다. 따라서 압축해제하면, “01” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“01” / “10000000011110111” ==> “0110000000011110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
0110 000000011110111” ==> “ 1001 000000011110111”
(8) 다음으로 8번 압축바이너리 클러스터는, 역시 “0” 이고, “0”으로 시작하므로 비트반전하면, “1” 이고 이는 십진수로 1 이므로, L=1이다. 따라서 압축해제하면, “01” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“01” / “1001000000011110111” ==> “011001000000011110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
0110 01000000011110111” ==> “ 1001 01000000011110111”
(9) 다음으로 7번 압축바이너리 클러스터는, 역시 “0” 이고, “0”으로 시작하므로 비트반전하면, “1” 이고 이는 십진수로 1 이므로, L=1이다. 따라서 압축해제하면, “01” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“01” / “100101000000011110111” ==> “01100101000000011110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
0110 0101000000011110111” ==> " 1001 0101000000011110111”
(10) 다음으로 6번 압축바이너리 클러스터는, “01” 이고, “0”으로 시작하므로 비트반전하면, “10” 이고 이는 십진수로 2 이므로, L=2이다. 따라서 압축해제하면, “001” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“001” / “10010101000000011110111”==>“00110010101000000011110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
00110 010101000000011110111” ==> “ 11001 010101000000011110111”
(11) 다음으로 5번 압축바이너리 클러스터는, “1” 이고, 이는 십진수로 1 이므로, L=1이다. 따라서 압축해제하면, “01” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다. 상술하였듯이 "1"로 시작하는 압축바이너리 클러스터는 이것으로 decoding과정이 끝나게 된다.
“01” / “11001010101000000011110111”==>“0111001010101000000011110111”
(12) 다음으로 4번 압축바이너리 클러스터는, “01” 이고, “0”으로 시작하는 압축바이너리 클러스터는 비트반전하면 “10” 이고 이는 십진수로 2 이므로, L=2 이다. 따라서 압축해제 하면, “001” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“001” / “0111001010101000000011110111”==>“0010111001010101000000011110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
0010 111001010101000000011110111” ==> “ 1101 111001010101000000011110111”
(13) 다음으로 3번 압축바이너리 클러스터는, 역시 “01” 이고, “0”으로 시작하는 압축바이너리 클러스터는 비트반전하면 “10” 이고 이는 십진수로 2 이므로, L=2 이다. 따라서 압축해제 하면, “001” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“001” / “1101111001010101000000011110111”==>“0011101111001010101000000011110111”
그리고, 상술했듯이, 압축바이너리 클러스터가 “0”으로 시작하는 경우에는, 한단계 과정이 더 추가되는데, 현재 생성된 decoding데이터의 최상위로부터 최하위 방향으로 이동하면서, “10”을 처음 만나는 경우 “10”을 포함하는 범위에 대하여, 비트반전을 실시 하여 decoding과정을 마친다.
001110 1111001010101000000011110111” ==> “ 110001 1111001010101000000011110111”
(14) 다음으로 2번 압축바이너리 클러스터는, “1” 이고, 이는 십진수로 1 이므로, L=1 이다. 따라서 압축해제 하면, “01” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“01” / “ 110001 1111001010101000000011110111”==>“011100011111001010101000000011110111”
상술하였듯이 "1"로 시작하는 압축바이너리 클러스터는 이것으로 decoding과정이 끝나게 된다.
(15) 마지막으로 1번 압축바이너리 클러스터는, “10” 이고, 이는 십진수로 2 이므로, L=2 이다. 따라서 압축해제 하면, “001” 이고, 이를 직전 해독된 비트의 최상위 비트 앞에 붙이면, 아래와 같다.
“001” / “011100011111001010101000000011110111”==>“001011100011111001010101000000011110111”
상술하였듯이 "1"로 시작하는 압축바이너리 클러스터는 이것으로 decoding과정이 끝나게 된다.
결론적으로 1에서 15단계를 거쳐 decoding을 끝낸 결과는 아래와 같고,
“001011100011111001010101000000011110111” 이는 상기 처음의 압축전송대상 데이터 원본인 아래와 같이 완벽히 동일하게 decoding?음을 알수 있다.
“001011100011111001010101000000011110111”
[2] 수신부에서 순차적으로 수신받으면서, 1로 시작하는 압축바이너리 클러스터를 만날때마다 , 역순으로 직전 디코딩된 이후부터 디코딩하는 방법
[1]과 같은 decoding방법은 모든 압축데이터를 수신부에서 다 받고 나서 최하위로부터 최상위 방향으로 수신부 데이터를 decoding하는 방식이고, [2] 방식은 수신부에서 데이터를 받으면서, “1”로 시작하는 압축바이너리 클러스터를 만날때마다 그때까지 받은 수신데이터들을 decoding하여 기존 decoding된 데이터의 하위비트쪽으로 붙여나가는 방식이다. 장점은 모든 데이터를 다 받지 않은 상태에서도 복호화가 가능하다는 점과, 비교적 순차적으로 복호화가 가능하다는 점이다.
Figure pat00013
위와 같은 방법에 따르면,
(1) 먼저, 최초 받은 1번 압축바이너리 클러스터는 “10”으로서 “1”로 시작하므로, 바로 decoding을 수행하면, “10” 은 십진수로 2 이므로, L=2이다. 따라서 “001” 로 압축해제 된다.
(2) 2번 압축바이너리 클러스터는 “1”으로서 역시 “1”로 시작하므로 바로 decoding을 수행하면, “1”은 십진수로 1 이므로, L=1이다 따라서 “01”로 압축해제 되고, 직전까지 decoding된 결과의 최하위비트 이후에 붙인다.
따라서, “001” / “01” ==> “00101” 이다.
(3) 3번 압축바이너리 클러스터는 “01"으로서, ”0“으로 시작하므로, 바로 decoding을 수행하지 않고 우선 다음 압축바이너리 클러스터를 더 받는다.
(4) 4번 압축바이너리 클러스터는 “01”으로서 역시 “0”으로 시작하므로, 바로 decoding을 수행하지 않고 우선 다음 압축바이너리 클러스터를 더 받는다.
(5) 5번 압축바이너리 클러스터는 “1” 로서 비로서 “1”로 시작하므로 sub-decoding을 하되, 현재 받은 5번 압축바이너리 클러스터부터 역순으로 직접 sub-decoding이후에 받은 압축바이너리 클러스터들을 압축해제 한뒤, 이를 현재 decoding된 데이터의 최하위비트 이후에 붙인다.
3번/4번/5번 압축바이너리 클러스터는 01/01/1 이므로,
1) 먼저 5번의 경우에 "1"이고 L=1이므로 압축해제하면, “01” 이다.
2) 다음으로 4번의 경우 “01”이고 반전하면 “10”이므로 L=2 이고 압축해제하면, “001” 인데, 5번 sub-decoding된 결과 최상위 비트 앞에 다음과 같이 붙인뒤
“001”/“01” ==> “00101”
다음으로 최상위부터 최하위 방향으로 “10”을 처음 만날 때 “10”을 포함한 영역까지를 비트반전한다
0010 1” ==> “ 1101 1”
3) 다음으로 3번의 경우 “01”이고 반전하면, “10”이므로 L=2이고 압축해제하면 “001”이고 이를 직전 sub-decoding된 결과에 이어붙이면,
“001” / “11011” ==> “00111011”
다음으로 최상위부터 최하위 방향으로 “10”을 처음 만날 때 “10”을 포함한 영역까지를 비트반전한다
001110 11” ==> “ 110001 11”
더 이상의 sub-decoding이 필요한 압축바이너리 클러스터가 없으므로, 기존 decoding된 결과의 최하위 비트 이후에 상기 sub-decoding된 결과를 이어붙이면,
아래와 같다.
“00101” / “ 110001 11” ==> “00101 110001 11”
(6) 6번 압축바이너리 클러스터는 “01” 이므로, “0”으로 시작하므로 바로 decoding하지 않고 다음 압축바이너리 클러스터를 더 읽어들임
(7) 7번 압축바이너리 클러스터는 “0” 이므로, “0”으로 시작하므로 바로 decoding하지 않고 다음 압축바이너리 클러스터를 더 읽어들임
(8) 8번 압축바이너리 클러스터는 “0” 이므로, “0”으로 시작하므로 바로 decoding하지 않고 다음 압축바이너리 클러스터를 더 읽어들임
(9) 9번 압축바이너리 클러스터는 “0” 이므로, “0”으로 시작하므로 바로 decoding하지 않고 다음 압축바이너리 클러스터를 더 읽어들임
(10) 10번 압축바이너리 클러스터는 “0” 이므로, “0”으로 시작하므로 바로 decoding하지 않고 다음 압축바이너리 클러스터를 더 읽어들임
(11) 11번 압축바이너리 클러스터는 “000” 이므로, “0”으로 시작하므로 바로 decoding하지 않고 다음 압축바이너리 클러스터를 더 읽어들임
(12) 12번 압축바이너리 클러스터는 “1” 이므로, “1”으로 시작하므로 직전까지 읽어들인 압축바이너리 클러스터들과 함께 역순으로 함께 sub-decoding한다.
1) 11번 압축바이너리 클러스터는 “1”이므로 L=1 이고 압축해제하면, “01”이다.
2) 10번 압축바이너리 클러스터는 “000” 이므로, 비트반전하면 “111”이고 십진수로 7이므로 L=7 따라서 압축해제하면, “00000001” 이다. 이를 기존까지 sub-decoding된 결과의 최상위 비트 앞에 붙인다.
“00000001” / “01” ==> “0000000101”
다음으로, sub-decoding 된 결과의 최상위부터 최하위 방향으로 이동하면서 “10”을 처음만날 때, 그 “10”포함하는 범위까지 비트반전한다.
000000010 1” ==> “ 111111101 1”
3) 9번 압축바이너리 클러스터는 “0”이므로 비트 반전하면, “1”이고, 십진수로 1이므로, L=1 따라서 압축해제하면, “01”이다 이를 기존까지 sub-decoding된 결과의 최상위 앞에 붙인다.
“01” / “1111111011” 다음으로, sub-decoding 된 결과의 최상위부터 최하위 방향으로 이동하면서 “10”을 처음만날 때, 그 “10”포함하는 범위까지 비트반전하면, 아래와 같다.
0111111110 11” ==> “ 10000000011 1”
4) 8번 압축바이너리 클러스터는 “0” 이므로, 비트 반전하면, “1”이고, 십진수로 1이므로, L=1 따라서 압축해제하면, “01”이다 이를 기존까지 sub-decoding된 결과의 최상위 앞에 붙인다.
“01”/“100000000111” 다음으로, sub-decoding 된 결과의 최상위부터 최하위 방향으로 이동하면서 “10”을 처음만날 때, 그 “10”포함하는 범위까지 비트반전하면, 아래와 같다.
“01100000000111” ==> “ 1001 0000000111”
5) 7번 압축바이너리 클러스터는 “0”이므로, 비트 반전하면, “1”이고, 십진수로 1이므로, L=1 따라서 압축해제하면, “01”이다 이를 기존까지 sub-decoding된 결과의 최상위 앞에 붙인다.
“01”/“10010000000111” 다음으로, sub-decoding 된 결과의 최상위부터 최하위 방향으로 이동하면서 “10”을 처음만날 때, 그 “10”포함하는 범위까지 비트반전하면, 아래와 같다.
“01”/“10010000000111” ==> “ 1001 010000000111”
6) 6번 압축바이너리 클러스터는 “01”이므로, 비트 반전하면, “10”이고, 십진수로 2이므로, L=2 따라서 압축해제하면, “001”이다 이를 기존까지 sub-decoding된 결과의 최상위 앞에 붙인다.
“001”/“1001010000000111” 다음으로, sub-decoding 된 결과의 최상위부터 최하위 방향으로 이동하면서 “10”을 처음만날 때, 그 “10”포함하는 범위까지 비트반전하면, 아래와 같다.
“0011001010000000111” ==>“ 11001 01010000000111”
7) 더 이상의 sub-decoding이 필요한 압축바이너리 클러스터가 없으므로, 기존 decoding된 결과의 최하위 비트 이후에 상기 sub-decoding된 결과를 이어붙이면,
이제 (5)과정까지 decoding된 결과 이후에 sub-decoding된 결과를 이어붙이면, 아래와 같다.
“0010111000111”/“ 11001 01010000000111” ==> “0010111000111 11001 01010000000111”
(13) 13번 압축바이너리 클러스터는 “0” 이므로 decoding하지 않고 다음 압축바이너리 클러스터를 더 읽어들인다.
(14) 14번 압축바이너리 클러스터는 “1”으므로, 직전까지 읽어들인 압축바이너리 클러스터까지 역순으로 sub-decoding한다
1) 14번 압축바이너리 클러스터는 “1”이므로 L=1이고, 압축해제하면, “01” 로 sub-decoding된다.
2) 13번 압축바이너리 클러스터는 “0” 이므로 비트반전하면, “1”이고 따라서, L=1이다. 압축해제하면, “01”이며, 이를 sub-decoding된 결과 최상위 비트앞에 배치하면, “01”/“01” ==> “0101” 이다.
이제 sub-decoding된 결과의 최상위부터 최하위 방향으로 “10”을 처음만날 때 “10”포함한 범위를 비트반전한다.
010 1” ==> “ 101 1”
3) 더 이상의 sub-decoding이 필요한 압축바이너리 클러스터가 없으므로, 기존 decoding된 결과의 최하위 비트 이후에 상기 sub-decoding된 결과를 이어붙이면, 아래와 같다.
“00101110001111100101010000000111”/“ 101 1” ==> “00101110001111100101010000000111 101 1”
(15) 15번 압축바이너리 클러스터 “1”은 최후의 바이너리 클러스터이므로,
별도의 압축해제 과정없이 그냥 그대로 기존 decoding된 결과의 최하위 비트 이후에 붙인다.
"001011100011111001010100000001111011"/ "1" ==> "0010111000111110010101000000011110111"
상기의 (1)~(15)과정을 통해 decoding된 결과는
“0010111000111110010101000000011110111” 이고, 아래의 압축전송전의 원본데이터와 완벽히 일치하는 것을 알수 있다.
001011100011111001010101000000011110111
맨체스터 코딩 전송방법

Claims (1)

  1. 국내우선권주장출원을 위하여 청구범위는 별도로 기재하지 않음.(Encoding, Decoding알고리즘 및 맨체스터 코딩의 CBCD 전송방법, DC-balance맞추는 방법, Error-detection관련 보완방법, 마지막 CBCD관련 및 Differential 맨체스터 코딩에 있어서도 동일하게 적용될수 있는 것까지 청구범위에 넣어야함)
KR1020160045832A 2016-04-14 2016-04-14 이진데이터의 압축전송방법(10type-10type연속형) KR20170117850A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160045832A KR20170117850A (ko) 2016-04-14 2016-04-14 이진데이터의 압축전송방법(10type-10type연속형)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160045832A KR20170117850A (ko) 2016-04-14 2016-04-14 이진데이터의 압축전송방법(10type-10type연속형)

Publications (1)

Publication Number Publication Date
KR20170117850A true KR20170117850A (ko) 2017-10-24

Family

ID=60299669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160045832A KR20170117850A (ko) 2016-04-14 2016-04-14 이진데이터의 압축전송방법(10type-10type연속형)

Country Status (1)

Country Link
KR (1) KR20170117850A (ko)

Similar Documents

Publication Publication Date Title
JP4801776B2 (ja) データ圧縮
CN101795407B (zh) 用于对比特序列进行编码的方法和设备
KR20190117652A (ko) 압축된 게놈 서열 리드로부터 게놈 참조 서열의 복원 방법 및 시스템
US10003356B2 (en) Devices and methods of source-encoding and decoding of data
JP2013508867A5 (ko)
EP4243290A3 (en) Circular buffer rate matching for polar codes
FI3574595T3 (fi) Lähetyskanavan enkoodaus ja dekoodaus
CN110021369B (zh) 基因测序数据压缩解压方法、系统及计算机可读介质
EP4325727A3 (en) Data processing method and device
CN106656198B (zh) 一种基于lz77的编码方法
CN106656195A (zh) 数据压缩、解压缩的方法及系统
KR20170114289A (ko) 이진데이터의 압축전송방법(10type-10type연속형)
CN103731241A (zh) 提高通信系统频谱效率的编码系统及方法
KR20170117850A (ko) 이진데이터의 압축전송방법(10type-10type연속형)
KR20170117849A (ko) 이진데이터의 압축전송방법(10type-10type연속형)
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
KR20170116548A (ko) 이진데이터의 압축전송방법(10type-10type연속형)
KR20170114285A (ko) 이진데이터의 압축전송방법(10type-10type연속형)
US11637685B2 (en) System and method for transition encoding with flexible word-size
JP4780350B2 (ja) シリアルデータ通信のための符号化方式
KR20170112612A (ko) 이진데이터의 압축전송방법(10type-10type연속형)
CN1656688B (zh) 在压缩之前处理数字数据
KR101670606B1 (ko) 이진데이터의 압축 및 압축해제 방법
KR20170016572A (ko) 실시간 줄길이의 압축 및 전송방법 및 그 장치
Mathur et al. A Novel Approach to Compress and Secure Human Genome Sequence