KR20180000143A - 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 - Google Patents

2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 Download PDF

Info

Publication number
KR20180000143A
KR20180000143A KR1020160077931A KR20160077931A KR20180000143A KR 20180000143 A KR20180000143 A KR 20180000143A KR 1020160077931 A KR1020160077931 A KR 1020160077931A KR 20160077931 A KR20160077931 A KR 20160077931A KR 20180000143 A KR20180000143 A KR 20180000143A
Authority
KR
South Korea
Prior art keywords
universal code
symbol
data
code
binary
Prior art date
Application number
KR1020160077931A
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 KR1020160077931A priority Critical patent/KR20180000143A/ko
Publication of KR20180000143A publication Critical patent/KR20180000143A/ko

Links

Classifications

    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

임의의 순번(K>=1) 에 대하여, 4진 유니버설 코드를 생성하여 4자리씩 끊어서 8비트단위로 압축데이터를 생성하는 방법에 관한 발명으로서,
4진의 경우 최상위 자리가 "1" 또는 “2” 또는 “3”으로 구성되고, 그 이하자리가 “0” 으로 구성되는 4진 유니버설 코드이다.
예를들어, 2 / 3 / 200 / 300 / 200/ 2000 과 같이 구성된 4진유니버설 코드의 경우, “1" 또는 2”또는 “3”을 만날 때 마다 데이터를 분할하여 읽으면 유일복호성을 만족시키는 유니버설코드로 완벽히 분할히 된다.
Figure pat00006

N=4 일때, 상기식에 따른 K 및 M값의 예시는 아래표와 같다.
2) 다음으로, N진 유니버설 코드의 suffix를 구하는 방법은
M-2 개의 "0" 으로 자동적으로 산출된다.
3) N진 유니버설 코드의 prefix 는,
K 를 (N-1) 로 나눈 나머지값( K mod (N-1), 이때 x mod y 는 x를 y로 나눈 나머지를 반환하는 함수) 이 prefix가 되는데 이때, prefix가 0 이면, prefix = N-1로 한다.

Description

2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법{BINARY UNIVERSAL CODE To QUARDRUPLE UNIVERSAL CODE ENCODING AND DECODING METHOD}
라인코딩,유니버설코드
라인코딩,유니버설코드
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
임의의 순번(K>=1) 에 대하여, N진 유니버설 코드를 생성하는 방법에 관한 발명으로서,
먼저 아래 표1와 같이, N=4인 4진2진 유니버설 코드의 경우 최상위 자리가 "1" 또는 “2” 또는 “3”으로 구성되고, 그 이하자리가 "0"으로 구성되는 유니버설 토드이다.
예를들어, 2 / 3 / 200 / 300 / 200/ 1000 / 1 / 2 / 3 / 1 과 같이 구성된 4진 유니버설 코드의 경우, "1" 또는 “2”또는 “3”을 만날 때 마다 데이터를 분할하여 읽으면 유일 복호성을 만족시키는 유니버설코드로 완벽히 분할히 된다.
2320030020010001231 ==> 2/3/200/300/200/1000/1/2/3/1
K N4 유니버설설코코드드
1 1
2 2
3 3
4 10
5 20
6 30
7 100
8 200
9 300
10 1000
11 2000
12 3000
13 10000
14 20000
15 30000
16 100000
17 200000
18 300000
19 1000000
20 2000000
21 3000000
... ...
상기 표1과 같이 N진 유니버설 코드의 경우 K 및 N 값에 따라 K 에 대응하는 유니버설 코드를 실시간 연산을 통해 encoding/ decoding할 수 있다.
1) 임의의 순번 K 로부터 M을 구한다. N진 유니버설 코드를 만들때 아래와 같은 수식을 이용한다.
물론 이와 같은 수식과 동일한 결과를 가져오는 모든 함수는 본 발명의 권리범위에 속한다.
Figure pat00001
N=4 일때, 상기식에 따른 K 및 M값의 예시는 아래표와 같다.
K M
1 2
2 2
3 2
4 3
5 3
6 3
7 4
8 4
9 4
10 5
11 5
12 5
13 6
14 6
15 6
16 7
17 7
18 7
19 8
20 8
21 8
22 9
23 9
24 9
25 10
26 10
27 10
28 11
29 11
30 11
31 12
32 12
33 12
34 13
35 13
36 13
37 14
38 14
39 14
40 15
... ...
2) 다음으로, N진 유니버설 코드의 suffix를 구하는 방법은
M-2 개의 "0" 으로 자동적으로 산출된다.
3) N진 유니버설 코드의 prefix 는,
K 를 (N-1) 로 나눈 나머지값( K mod (N-1), 이때 x mod y 는 x를 y로 나눈 나머지를 반환하는 함수) 이 prefix가 되는데 이때, prefix가 0 이면, prefix = N-1로 한다.
이때, N에 따라 prefix는 10이상 일 수 있는데, 그때에는 1자리의 적절한 문자symbol로 prefix를 상징하여 표현할 수 있음은 물론이다. 예를들어, 10진수 10은 16진수로 A 와 같은 방법이다.
이와 같은 코드를 BL-N-beta 코드라 명명하고 상기 예시는 N=4일때를 의미하는데,
BL -N2-beta 코드의 경우에는, 0 아닌 수를 만날때마다 분할함으로써 유일복호성 을 유지한다.
예를들어 BL-62코드(N=6)의 경우에는,
2/3/4/5000000/4/50/2000/3/300000/1/3/3 은 아래와 같이 일렬로 붙어있게 되나.
234500000045020003300000133 은 다음과 같이 유일복호성을 가지고 동일하게 분할됨을 알수있다.
2/3/4/5000000/4/50/2000/3/300000/1/3/3
이와 같은 규칙에 따라 생성된 최종 결과값을 아래표에 예시로서 나타낸다.
K M 4진유니버버설설코코드드
1 2 1
2 2 2
3 2 3
4 3 10
5 3 20
6 3 30
7 4 100
8 4 200
9 4 300
10 5 1000
11 5 2000
12 5 3000
13 6 10000
14 6 20000
15 6 30000
16 7 100000
17 7 200000
18 7 300000
19 8 1000000
20 8 2000000
21 8 3000000
22 9 10000000
23 9 20000000
24 9 30000000
25 10 100000000
26 10 200000000
27 10 300000000
28 11 1000000000
29 11 2000000000
30 11 3000000000
31 12 10000000000
32 12 20000000000
33 12 30000000000
... ... ...
상기와 같은 유니버설 코드의 decoding방법은 ,
N진 유니버설 코드의 길이를 L 이라고 하고,
"0"을 제외한 prefix 를 H 라고 한다면(또는 유니버설 코드의 최초 자리 숫자) , 아래 수식에 따라 계산하면 K 값이 구해진다.
Figure pat00002
이렇게 순번 K로부터 계산된 N유니버설 코드는,
다양한 2진 유니버설 코드와 각 순번별로 1:1로 매핑되어, 4진화된 값으로 변형된뒤 ,4자리의 4진수를 묶으면 256종이 도며 이를 8비트의 2진수에 별도의 규칙으로 매핑하거나 그대로 4자리 4진수로부터 연산을 통해 8자리의 2진수로 변환하여, 8B10B등 고속전송라인코딩으로 변환하여 접목가능하다.
예를들어, 압축전송대상인, 데이터가 0 으로 시작하는지 1로 시작하는지 송수신간에 알고 있다고 한다면, 일 실시례로서, "1"로 시작하는 이진데이터에 있어서,
1000111010110000011111001010101011101
상위에서 하위 방향으로 이동시, 비트값 변화가 있을때, 아래와 같은 형태로 분할가능하며,
1/000/111/0/1/0/11/00000/11111/00/1/0/1/0/1/0/1/0/111/0/1
각 분할된 이진수 덩어리는 바이너리 클러스터라고 하며, 길이만 알고, 시작바이너리 클러스터가 무슨 값으로 (0 인지 1인지) 구성되었는지 알면 이진수를 복원할수 있다.
상기의 경우, 바이너리 클러스터의 길이 값을 기준으로 구분하면 아래와 같다. 1/3/3/1/1/1/2/5/5/2/1/1/1/1/1/1/1/1/3/1/1 이다. 이와 같은 것을 길이 클러스터라고 정의하고,
이때 이러한 길이 값 변환결과에서 길이가 1인 경우에는, 다음 길이 클러스터의 길이가 역시 1인 경우를 편의상 B 심볼( 즉 1/1/) 이라 하고, 하나의 심볼로 간주한다. 혹은 다음 길이 클러스터 길이가 1 보다 큰 경우에는, 다음 길이 클러스터의의 값에서 1을 빼주면(해당 다음 길이 클러스터는 값이 1이 감소되게 된다), 1비트만큼을 포함하여 하나의 심볼로 간주하는데 이를 A 심볼(즉 1/1 ) 이라고 하자. A심볼과 B심볼의 차이점은, 해당심볼에 클러스터간의 구분정보가 2개인가 1개인가의 차이이다.
나머지의 경우에는, 그대로 길이 클러스터가 심볼로 정의된다고 한다면,
1/3/3/1/1/1/2/5/5/2/1/1/1/1/1/1/1/1/3/1/1
위와 같은 길이 클러스터는,
1/3/3 ==> 1/1 (A심볼) 과 2/ 심볼 및 3/ 심볼로 3개의 심볼로 구분된다.
Figure pat00003
1/1/ ==> B심볼로 된다.
1/2/5/ ==> 1/1 (A심볼), 1/1(A심볼) , 4/ 심볼 라는 3개의 심볼로 구분된다.
Figure pat00004
5/ ===> 5/ 심볼
2/ ===> 2/ 심볼
1/1/ ==> B심볼
1/1/ ==> B심볼
1/1/ ==> B심볼
1/1/ ==> B심볼
3/ ==> 3/ 심볼
1/1 ==> A심볼 또는 B심볼(데이터의 마지막이므로, 1/1/ 과 1/1 의 큰 차이는 없음).
이와 같은 규칙으로 생성 가능한 모든 심볼을 K 값에 대응하면 아래와 같다.
이를 BL-sigma 코드라고 한다. K=1 일때는 A K=2일때는 B, K가 3이상일때는 (K-1)자체가 하나의 심볼을 나타낸다. encoding, decoding은 이의 순관계 역관계로 정의된다.
K BL-sigma
1 A
2 B
3 2/
4 3/
5 4/
6 5/
7 6/
8 7/
9 8/
10 9/
11 10/
12 11/
13 12/
14 13/
15 14/
16 15/
17 16/
18 17/
1로 시작하는 일례로 393,202 bit의 이진데이터의 경우에 위와 같이 분할하면, 아래표 14와 같다. 실질적으로 심볼 A 및 B는 2/ 는 2비트의 데이터를 나타낸다.
심볼 K 빈도도수수
A 1 39170
B 2 39463
2/ 3 39260
3/ 4 19600
4/ 5 9912
5/ 6 4934
6/ 7 2434
7/ 8 1199
8/ 9 575
9/ 10 302
10/ 11 161
11/ 12 81
12/ 13 38
13/ 14 17
14/ 15 15
15/ 16 4
16/ 17 4
17/ 18 3
18/ 19 5
20/ 21 1
21/ 22 1
23/ 24 1
27/ 28 1
29/ 30 2
32/ 33 1
40/ 41 1
49/ 50 1
60/ 61 1
이제 이진데이터를 상기 표와 같이 분석한뒤, K를 매개로 BL-N 코드와 매칭하면, 아래와 같고, 4진 데이터의 크기가 2진데이터의 크기보다 50%이하로 작아지면, 압해당심볼에서는 압축효과가 발생하게 된다.
K symbol 원본데이이터터 frq 4진진유유니니버버설설코코드드 4진진데데이이터터크크기기 2진진데데이이터터크크기기
1 A 2 43248 1 43248 86496
2 B 2 41956 2 41956 83912
3 2/ 2 43033 3 43033 86066
4 3/ 3 21466 10 42932 64398
5 4/ 4 10176 20 20352 40704
6 5/ 5 5281 30 10562 26405
7 6/ 6 2639 100 7917 15834
8 7/ 7 1209 200 3627 8463
9 8/ 8 853 300 2559 6824
10 9/ 9 518 1000 2072 4662
11 10/ 10 451 2000 1804 4510
12 11/ 11 254 3000 1016 2794
13 12/ 12 340 10000 1700 4080
14 13/ 13 231 20000 1155 3003
15 14/ 14 230 30000 1150 3220
16 15/ 15 121 100000 726 1815
17 16/ 16 60 200000 360 960
18 17/ 17 44 300000 264 748
19 18/ 18 40 1000000 280 720
20 19/ 19 27 2000000 189 513
21 20/ 20 24 3000000 168 480
22 21/ 21 8 10000000 64 168
23 22/ 22 9 20000000 72 198
24 23/ 23 33 30000000 264 759
25 24/ 24 76 100000000 684 1824
26 25/ 25 81 200000000 729 2025
27 26/ 26 117 300000000 1053 3042
28 27/ 27 35 1000000000 350 945
29 28/ 28 64 2000000000 640 1792
30 29/ 29 27 3000000000 270 783
... ... ... ... ... ... ...
즉, 상기 각각 심볼에 대응하게 되면 4진 유니버설 코드가 일렬로 생성되는데,
이를 4자리씩 분할하면, 256종류의 8비트의 이진데이터가 생성되어 이를 전송하게 된다.
예를들어,
이진데이터 원본의 심볼이 A , B, 2/, 3/, 4/, 5/ , A , A ,A 라면, 4진유니버설 코드로는 1231 0203 0111 이므로, 4자리씩 끊어서 8비트로 변환하여 전송가능하다. 즉 1231==>01101110
0203 ==> 00100011
0111 ==> 00010101
수신측에서는 상기 8비트단위의 심볼을 4자리의 4진수로 역변환한뒤, 0 아닌 수를 만날때마다 분할하면, 아래와 같고
123102030111 ==> 1/2/3/10/20/30/1/1/1 각각의 4진유니버설 코드에 대응하여 K값을 구하면, 1,2,3,4,5,6,1,1,1 이고 이를 symbol로 변환하면, A,B, 2/,3/,4/,5/,A,A,A 로서 복원되고 각 심볼이 의미하는 이진데이터로,복구하면,
A ==> 1/1
B ==> 1/1/
2/ ==> 11/
3/ ==> 111/
4/ ==> 1111/
5/ ===> 11111/
이므로,
A,B, 2/,3/,4/,5/,A,A,A ==> 1/1 1/1/ 11/ 111/ 1111/ 11111/ 1/1 1/1 1/1
==> 1/11/1/11/111/1111/11111/1/11/11/1
이제 최초 비트가 0인지 1인지 상호약속으로 안다고 하면, 예를들어, 1로 시작한다고 하면
원본데이터는 1/00/1/00/111/0000/11111/0/11/00/1 과 같이 결정된다.
아래 그림은, BL -code series로 원본이진데이터를 분할한뒤 , BL -code series로부터 k 를 decoding하고, k 로부터 BL -N2 (N= 4)의 경우를 encoding한뒤 , 이 결과들을 연결시킨뒤 , 4자리의 단위로 BL _42 코드를 분할하여 8b10b로 송후 수신측에서 다시 전송받은 BL _ 42코드를 유일복호성 규칙에 맞게 분할하여 decoding하여 k를 구하고 이를 이용하여 BL -series code( BL -alpha, omega등 ) 으로 encoding하여 데이터를 결합함으로서 최종적인 압축 전송 및 해제가 일어나ㅡㄴ 과정을 도표화하였다.
Figure pat00005

Claims (1)

  1. 국내우선권주장 출원의 선출원으로서 별도의 청구범위는 기재치 않음
KR1020160077931A 2016-06-22 2016-06-22 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 KR20180000143A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160077931A KR20180000143A (ko) 2016-06-22 2016-06-22 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160077931A KR20180000143A (ko) 2016-06-22 2016-06-22 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법

Publications (1)

Publication Number Publication Date
KR20180000143A true KR20180000143A (ko) 2018-01-02

Family

ID=61004372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160077931A KR20180000143A (ko) 2016-06-22 2016-06-22 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법

Country Status (1)

Country Link
KR (1) KR20180000143A (ko)

Similar Documents

Publication Publication Date Title
KR101171697B1 (ko) 정수-값 데이터의 스트림을 압축하는 시스템 및 방법
US20110150351A1 (en) Parallelization of variable length decoding
WO2018103452A1 (zh) 信息位图的编码、解码方法、装置及存储介质
KR102393743B1 (ko) 모드 심볼들을 사용하는 인코더, 디코더 및 방법
KR20180000143A (ko) 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법
KR20170142796A (ko) 2진 유니버설 코드의 N진 복합 유니버설 코드로의 encoding 및 decoding방법
KR20140145437A (ko) 이진 데이터의 압축 및 압축해제 방법과 장치
KR101632116B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR20150103992A (ko) 이진 데이터의 압축 및 복원 방법과 장치
Rani et al. A survey on lossless text data compression techniques
KR20180002145A (ko) Utf-8코드로 구성된 데이터의 유니버설 코드를 이용한 실시간 무손실 무사전 압축방법
Siddique Combinatorial Entropy Encoding
KR101734515B1 (ko) 데이터 부호화 및 복호화 방법과 장치
Jaradat et al. A Simple Binary Run‐Length Compression Technique for Non‐Binary Sources Based on Source Mapping
KR101760070B1 (ko) 데이터 부호화 및 복호화 방법과 장치
KR20180006011A (ko) Utf-8 코드 문자체계에 있어서, byte 1 에 대한 3비트 압축을 통한 한글메시지의 집중적 압축방법 및 그 장치
Irshid Gray code weighting system (Corresp.)
JPH04280517A (ja) データ圧縮および復元方式
𝐒𝐡𝐢𝐫𝐚𝐤𝐨𝐥𝟏 et al. Performance optimization of dual stage algorithm for lossless data compression and decompression
KR101632115B1 (ko) 이진 데이터의 압축 및 복원 방법과 장치
KR20160115086A (ko) 바이너리 클러스터를 이용한 이진스트리밍 데이터의 실시간 압축전송 및 복원방법
KR101578608B1 (ko) 일반 코드 생성을 위한 데이터 부호화 장치 및 데이터 복호화 장치
JP5855777B2 (ja) データ圧縮装置、データ復号装置、データ圧縮方法、データ復号方法およびデータ圧縮および復号システム
KR20180000138A (ko) 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법
KR20180005386A (ko) Utf-8코드로 구성된 데이터의 유니버설 코드를 이용한 실시간 무손실 무사전 압축방법