KR20180000138A - 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 - Google Patents
2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 Download PDFInfo
- Publication number
- KR20180000138A KR20180000138A KR1020160077922A KR20160077922A KR20180000138A KR 20180000138 A KR20180000138 A KR 20180000138A KR 1020160077922 A KR1020160077922 A KR 1020160077922A KR 20160077922 A KR20160077922 A KR 20160077922A KR 20180000138 A KR20180000138 A KR 20180000138A
- Authority
- KR
- South Korea
- Prior art keywords
- universal code
- binary
- bits
- quaternary
- code
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/55—Compression 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진의 경우 최상위 자리가 “2” 또는 “3”으로 구성되고, 그 이하자리가 “0” 또는 “1”로 구성되는 4진 유니버설 코드이다.
예를들어, 2 / 3 / 211 / 301 / 210/ 2000 과 같이 구성된 4진유니버설 코드의 경우, “2”또는 “3”을 만날 때 마다 데이터를 분할하여 읽으면 유일복호성을 만족시키는 유니버설코드로 완벽히 분할히 된다.
1) 임의의 순번 K 로부터 M을 구한다.
2) 다음으로 M으로부터 P값을 구하는데,
3) P 값으로부터, 4진 유니버설 코드에 있어서, 최상위 자리의 “2” 또는 “3” 이후에 존재하는 숫자를 구하기 위하여, 아래와 같은 수식으로 R을 구하고.
4) R을 구하면 이를 P 비트의 2진수로 변환하여 “0” 및 “1”로 구성된 이진수 형태로 변환하고,
R은 이때 P 비트의 길이를 가지며, P비트 보다 작을 경우, leading zero 로서 “0”을 최상위 비트로부터 채워넣어서, P비트로 만든다.
5) 최상위 자리는 K 가 홀수일 때 “2” , 짝수일 때 “3”을 배치하여(물론 홀짝에 따라 반대로 할당할수 있으며, 특정한 약속에 따라 K값에 따라 2,3을 달리 할당할수 있다(이를 통해 암호화가 가능해진다))
이렇게 K 라는 순번에 따라 결정된 “2” 또는 “3” 뒤에 이진화된 R을 배치하여, 4진화된 유니버설 코드로 구성한하여 최종적인 순번 K에 따른 유니버설 코드를 생성한다.
먼저 아래표와 같이, 4진의 경우 최상위 자리가 “2” 또는 “3”으로 구성되고, 그 이하자리가 “0” 또는 “1”로 구성되는 4진 유니버설 코드이다.
예를들어, 2 / 3 / 211 / 301 / 210/ 2000 과 같이 구성된 4진유니버설 코드의 경우, “2”또는 “3”을 만날 때 마다 데이터를 분할하여 읽으면 유일복호성을 만족시키는 유니버설코드로 완벽히 분할히 된다.
1) 임의의 순번 K 로부터 M을 구한다.
2) 다음으로 M으로부터 P값을 구하는데,
3) P 값으로부터, 4진 유니버설 코드에 있어서, 최상위 자리의 “2” 또는 “3” 이후에 존재하는 숫자를 구하기 위하여, 아래와 같은 수식으로 R을 구하고.
4) R을 구하면 이를 P 비트의 2진수로 변환하여 “0” 및 “1”로 구성된 이진수 형태로 변환하고,
R은 이때 P 비트의 길이를 가지며, P비트 보다 작을 경우, leading zero 로서 “0”을 최상위 비트로부터 채워넣어서, P비트로 만든다.
5) 최상위 자리는 K 가 홀수일 때 “2” , 짝수일 때 “3”을 배치하여(물론 홀짝에 따라 반대로 할당할수 있으며, 특정한 약속에 따라 K값에 따라 2,3을 달리 할당할수 있다(이를 통해 암호화가 가능해진다))
이렇게 K 라는 순번에 따라 결정된 “2” 또는 “3” 뒤에 이진화된 R을 배치하여, 4진화된 유니버설 코드로 구성한하여 최종적인 순번 K에 따른 유니버설 코드를 생성한다.
Description
라인코딩,유니버설코드
라인코딩,유니버설코드
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
임의의 순번(K>=1) 에 대하여, N진2진 유니버설 코드를 생성하는 방법에 관한 발명으로서,
먼저 아래 표1와 같이, N=4인 4진2진 유니버설 코드의 경우 최상위 자리가 “2” 또는 “3”으로 구성되고, 그 이하자리가 2진수인“0” 또는 “1”로 구성되는 4진2진 유니버설 코드이다.
예를들어, 2 / 3 / 211 / 301 / 210/ 2000 과 같이 구성된 4진2진 유니버설 코드의 경우, “2”또는 “3”을 만날 때 마다 데이터를 분할하여 읽으면 유일 복호성을 만족시키는 유니버설코드로 완벽히 분할히 된다.
232113012102000 ==> 2/3/211/301/210/2000
K | code |
1 | 2 |
2 | 3 |
3 | 20 |
4 | 30 |
5 | 21 |
6 | 31 |
7 | 200 |
8 | 300 |
9 | 201 |
10 | 301 |
11 | 210 |
12 | 310 |
13 | 211 |
14 | 311 |
15 | 2000 |
16 | 3000 |
17 | 2001 |
18 | 3001 |
19 | 2010 |
20 | 3010 |
21 | 2011 |
22 | 3011 |
23 | 2100 |
24 | 3100 |
25 | 2101 |
26 | 3101 |
27 | 2110 |
28 | 3110 |
29 | 2111 |
30 | 3111 |
... | ... |
1) 임의의 순번 K 로부터 M을 구한다. N진2진 유니버설 코드를 만들때 아래와 같은 수식을 이용한다.
물론 이와 같은 수식과 동일한 결과를 가져오는 모든 함수는 본 발명의 권리범위에 속한다.
N=4일때,
상기식에 따른 K 및 M값의 예시는 아래표와 같다.
K | M |
1 | 2 |
2 | 2 |
3 | 3 |
4 | 3 |
5 | 4 |
6 | 4 |
7 | 5 |
8 | 5 |
9 | 6 |
10 | 6 |
11 | 7 |
12 | 7 |
13 | 8 |
14 | 8 |
15 | 9 |
16 | 9 |
17 | 10 |
18 | 10 |
19 | 11 |
20 | 11 |
21 | 12 |
22 | 12 |
23 | 13 |
24 | 13 |
25 | 14 |
26 | 14 |
27 | 15 |
28 | 15 |
29 | 16 |
30 | 16 |
.... | .... |
2) 다음으로 M으로부터 P값을 구하는데, 아래와 같은 수식으로 구한다.
상기와 같은 식으로 M 으로부터 P를 구한 예시는 아래 표와 같다. 물론 상기 M으로부터 P값과 동등한 값을 나타내는 모든 연산 또는 알고리즘도 본 발명의 권리범위에 속하게 된다.
M | P |
2 | 0 |
2 | 0 |
3 | 1 |
3 | 1 |
4 | 1 |
4 | 1 |
5 | 2 |
5 | 2 |
6 | 2 |
6 | 2 |
7 | 2 |
7 | 2 |
8 | 2 |
8 | 2 |
9 | 3 |
9 | 3 |
10 | 3 |
10 | 3 |
11 | 3 |
11 | 3 |
12 | 3 |
12 | 3 |
13 | 3 |
13 | 3 |
14 | 3 |
14 | 3 |
15 | 3 |
15 | 3 |
16 | 3 |
16 | 3 |
... | ... |
3) P 값으로부터, N진2진 유니버설 코드의 최상위 자리 다음에 존재하는 숫자를 구하기 위하여, 아래와 같은 수식으로 R을 구하고.
이때 R < 0 이면, R = 0 으로 한다.
물론 상기 M,P 로부터 동일한 R값을 나타내는 모든 연산 또는 알고리즘도 본 발명의 권리범위에 속하게 된다.
M, P와 R의 연산결과의 일부를 아래 표에 보인다.
M | P | R |
2 | 0 | 0 |
2 | 0 | 0 |
3 | 1 | 0 |
3 | 1 | 0 |
4 | 1 | 1 |
4 | 1 | 1 |
5 | 2 | 0 |
5 | 2 | 0 |
6 | 2 | 1 |
6 | 2 | 1 |
7 | 2 | 2 |
7 | 2 | 2 |
8 | 2 | 3 |
8 | 2 | 3 |
9 | 3 | 0 |
9 | 3 | 0 |
10 | 3 | 1 |
10 | 3 | 1 |
11 | 3 | 2 |
11 | 3 | 2 |
12 | 3 | 3 |
12 | 3 | 3 |
13 | 3 | 4 |
13 | 3 | 4 |
14 | 3 | 5 |
14 | 3 | 5 |
15 | 3 | 6 |
15 | 3 | 6 |
16 | 3 | 7 |
16 | 3 | 7 |
... | ... | ... |
4) R을 구하면 이를 P 비트의 2진수로 변환하여 “0” 및 “1”로 구성된 이진수 형태로 변환하고,
R은 이때 P 비트의 길이를 가지며, P비트 보다 작을 경우, leading zero 로서 “0”을 최상위 비트로부터 채워넣어서, P비트로 만든다.
R을 상기와 같이 이진화하여 P비트의 이진수로 만든 R을 아래표에 보인다.
P | R | R(P 비트 2진화) |
0 | 0 | |
0 | 0 | |
1 | 0 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
1 | 1 | 1 |
2 | 0 | 00 |
2 | 0 | 00 |
2 | 1 | 01 |
2 | 1 | 01 |
2 | 2 | 10 |
2 | 2 | 10 |
2 | 3 | 11 |
2 | 3 | 11 |
3 | 0 | 000 |
3 | 0 | 000 |
3 | 1 | 001 |
3 | 1 | 001 |
3 | 2 | 010 |
3 | 2 | 010 |
3 | 3 | 011 |
3 | 3 | 011 |
3 | 4 | 100 |
3 | 4 | 100 |
3 | 5 | 101 |
3 | 5 | 101 |
3 | 6 | 110 |
3 | 6 | 110 |
3 | 7 | 111 |
3 | 7 | 111 |
... | ... | ... |
5) 최상위 자리를 HR라고 하면,
HR = K mod (N-2) 를
구한뒤
(이때 X mod
Y 는
X를 Y로 나눈 나머지를 반환)
HR=
0 이면
, HR=(N-2)+1로 하고, HR 이 0
이아니면
, HR 에 1을
더한다(즉 HR=HR+1)
이때, N에 따라 HR이 10이상일수 있는데, N=16일 경우에는, HR=10 에서 HR=15사이~일때는 각각 A~F라는 한자리의 문자로 표현할 수 있다. 또는 HR이 2자리 이상이 될 경우에는 HR 을 1자리의 숫자 또는 문자로 대체하여 1자리로 만든다.
아래표 13은 N=6일때 K 와 HR 의 관계의 일부를 나타낸 표이다.
복호화 방법은,
BL
-
N2코드의
경우에는, 0
및 1 이 아닌 수를(즉 HR을)
만날때마다
분할함으로써 유일복호성을 유지한다.
예를들어 BL-62코드(N=6)의 경우에는,
2/3/4/501000110/4/50/2010/3/3010110/2/3/3 은 아래와 같이 일렬로 붙어있게 되나.
234501000110450201033010110233 다음과 같이 유일복호성을 가지고 동일하게 분할됨을 알수있다.
2/3/4/501000110/4/50/2010/3/3010110/2/3/3
N | K | K mod (N-2) | HR |
6 | 1 | 1 | 2 |
6 | 2 | 2 | 3 |
6 | 3 | 3 | 4 |
6 | 4 | 0 | 5 |
6 | 5 | 1 | 2 |
6 | 6 | 2 | 3 |
6 | 7 | 3 | 4 |
6 | 8 | 0 | 5 |
6 | 9 | 1 | 2 |
6 | 10 | 2 | 3 |
6 | 11 | 3 | 4 |
6 | 12 | 0 | 5 |
6 | 13 | 1 | 2 |
6 | 14 | 2 | 3 |
6 | 15 | 3 | 4 |
6 | 16 | 0 | 5 |
6 | 17 | 1 | 2 |
6 | 18 | 2 | 3 |
6 | 19 | 3 | 4 |
6 | 20 | 0 | 5 |
... | ... | ... | ... |
이때, M mod (N-2) 칼럼과 HR값간의 관계를
암호등을 통한 매핑방법을 이용하여 특수한 상호 약속을 적용하면,
실시간 압축전송과 암호화가 함께 가능해진다,
PREV_HR = M mod (N-2) 라고 했을때,
예를들어, N=6일 경우에 PREV_HR 이 0~3 까지의 값을 가지고 이에 HR 이 계산상으로 2,3,4,5를 각각 계산으로 도출되지만, 암호를 통해 PREV_HR 값 ==> HR 값 대응관계를 0 ==> 3 , 1 ==> 2 , 2 ==> 5, 3 ==> 4 와 같은 관계로 재설정하면, 매핑관계를 알수 없으면 암호해독이 불가능해진다. 이와 같은 방식으로 암호화가 가능해진다.
아래표 14은 N=4일때 상기 공식에 따라 구해진 K 와 HR 의 관계의 일부를 나타낸 표이다.
K | K mod (N-2) | HR |
1 | 1 | 2 |
2 | 0 | 3 |
3 | 1 | 2 |
4 | 0 | 3 |
5 | 1 | 2 |
6 | 0 | 3 |
7 | 1 | 2 |
8 | 0 | 3 |
9 | 1 | 2 |
10 | 0 | 3 |
11 | 1 | 2 |
12 | 0 | 3 |
13 | 1 | 2 |
14 | 0 | 3 |
15 | 1 | 2 |
16 | 0 | 3 |
17 | 1 | 2 |
18 | 0 | 3 |
19 | 1 | 2 |
20 | 0 | 3 |
... | ... | .... |
한편, N=4 일 경우에는, 위의 방법과 동일한 결과값을 나타내지만 다음과 같이
K 가 홀수일 때 “2” , 짝수일 때 “3”을 배치하여(물론 홀짝에 따라 반대로 할당할수 있으며,상술한 바와 같이 특정한 약속에 따라 K값에 따라 2,3을 달리 할당할수 있다(이를 통해 암호화가 가능해진다))
이렇게 K 라는 순번에 따라 결정된 “2” 또는 “3” 뒤에 이진화된 R을 배치하여, 4진2진화된 유니버설 코드로 구성한하여 최종적인 순번 K에 따른 유니버설 코드를 생성한다
이와 같은 규칙에 따라 생성된 최종 결과값을 아래표에 예시로서 나타낸다.
K | M | P | R | R(P 비트 2진화) | 4진2진 유니버설코드 |
1 | 2 | 0 | 0 | 2 | |
2 | 2 | 0 | 0 | 3 | |
3 | 3 | 1 | 0 | 0 | 20 |
4 | 3 | 1 | 0 | 0 | 30 |
5 | 4 | 1 | 1 | 1 | 21 |
6 | 4 | 1 | 1 | 1 | 31 |
7 | 5 | 2 | 0 | 00 | 200 |
8 | 5 | 2 | 0 | 00 | 300 |
9 | 6 | 2 | 1 | 01 | 201 |
10 | 6 | 2 | 1 | 01 | 301 |
11 | 7 | 2 | 2 | 10 | 210 |
12 | 7 | 2 | 2 | 10 | 310 |
13 | 8 | 2 | 3 | 11 | 211 |
14 | 8 | 2 | 3 | 11 | 311 |
15 | 9 | 3 | 0 | 000 | 2000 |
16 | 9 | 3 | 0 | 000 | 3000 |
17 | 10 | 3 | 1 | 001 | 2001 |
18 | 10 | 3 | 1 | 001 | 3001 |
19 | 11 | 3 | 2 | 010 | 2010 |
20 | 11 | 3 | 2 | 010 | 3010 |
21 | 12 | 3 | 3 | 011 | 2011 |
22 | 12 | 3 | 3 | 011 | 3011 |
23 | 13 | 3 | 4 | 100 | 2100 |
24 | 13 | 3 | 4 | 100 | 3100 |
25 | 14 | 3 | 5 | 101 | 2101 |
26 | 14 | 3 | 5 | 101 | 3101 |
27 | 15 | 3 | 6 | 110 | 2110 |
28 | 15 | 3 | 6 | 110 | 3110 |
29 | 16 | 3 | 7 | 111 | 2111 |
30 | 16 | 3 | 7 | 111 | 3111 |
... | ... | ... | ... | .... | .... |
이와 같은 K로부터 4진2진 유니버설 코드를 생성하는 프로그래밍 코드 또한 예시로서 아래에 보인다(VBA로 작성) 아래 코드는 1~10000까지의 K에 따라 엑셀의 sheet1에 6개의 칼럼으로서
K, M,P, R, R(P비트로 2진화된 값), 4진2진 유니버설 코드순서로 칼럼에 출력하는 프로그램이다. floor 함수는 INT함수와 IF문을 통해 동등한 값을 구하도록 변형하여 작성하였다.
한편 N진 유니버설 코드로부터 K값을 구하는 decoding방법은 다음과 같다.
1) N진유니버설 코드의 suffix를 제외한 prefix 의 비트 길이 P가 된다. 이때 suffix는 N진유니버설 코드의 가장 앞자리 숫자이다. 따라서 P는 N진 유니버설 코드의 길이를 L 이라고 했을때 L-1과 같다.
P = L-1
2) N진 유니버설 코드의 suffix의 10진수 변환 값이 R이 된다.
만약 suffix 가 "01" 이면 R=1, "10" 이면 R=2 가된다.
3) M은 아래와 같이 구한다.
4) H = suffix 의 값이다. 예를들어, "2"이면 H=2, "3"이면 H=3이다.
5) K 는 아래와 같은 공식으로 계산되어 decoding된다.
또다른 일반화 예시로서 N=6일경우에는, 다음 표17과 같다.
K | M | P | R | R(P비트 2진화화) | 6진진유유니니버버설설코코드드 |
1 | 2 | 0 | 0 | 2 | |
2 | 2 | 0 | 0 | 3 | |
3 | 2 | 0 | 0 | 4 | |
4 | 2 | 0 | 0 | 5 | |
5 | 3 | 1 | 0 | 0 | 20 |
6 | 3 | 1 | 0 | 0 | 30 |
7 | 3 | 1 | 0 | 0 | 40 |
8 | 3 | 1 | 0 | 0 | 50 |
9 | 4 | 1 | 1 | 1 | 21 |
10 | 4 | 1 | 1 | 1 | 31 |
11 | 4 | 1 | 1 | 1 | 41 |
12 | 4 | 1 | 1 | 1 | 51 |
13 | 5 | 2 | 0 | 00 | 200 |
14 | 5 | 2 | 0 | 00 | 300 |
15 | 5 | 2 | 0 | 00 | 400 |
16 | 5 | 2 | 0 | 00 | 500 |
17 | 6 | 2 | 1 | 01 | 201 |
18 | 6 | 2 | 1 | 01 | 301 |
19 | 6 | 2 | 1 | 01 | 401 |
20 | 6 | 2 | 1 | 01 | 501 |
21 | 7 | 2 | 2 | 10 | 210 |
22 | 7 | 2 | 2 | 10 | 310 |
23 | 7 | 2 | 2 | 10 | 410 |
24 | 7 | 2 | 2 | 10 | 510 |
25 | 8 | 2 | 3 | 11 | 211 |
26 | 8 | 2 | 3 | 11 | 311 |
27 | 8 | 2 | 3 | 11 | 411 |
28 | 8 | 2 | 3 | 11 | 511 |
29 | 9 | 3 | 0 | 000 | 2000 |
30 | 9 | 3 | 0 | 000 | 3000 |
31 | 9 | 3 | 0 | 000 | 4000 |
32 | 9 | 3 | 0 | 000 | 5000 |
33 | 10 | 3 | 1 | 001 | 2001 |
34 | 10 | 3 | 1 | 001 | 3001 |
35 | 10 | 3 | 1 | 001 | 4001 |
36 | 10 | 3 | 1 | 001 | 5001 |
37 | 11 | 3 | 2 | 010 | 2010 |
38 | 11 | 3 | 2 | 010 | 3010 |
39 | 11 | 3 | 2 | 010 | 4010 |
40 | 11 | 3 | 2 | 010 | 5010 |
41 | 12 | 3 | 3 | 011 | 2011 |
42 | 12 | 3 | 3 | 011 | 3011 |
43 | 12 | 3 | 3 | 011 | 4011 |
44 | 12 | 3 | 3 | 011 | 5011 |
45 | 13 | 3 | 4 | 100 | 2100 |
46 | 13 | 3 | 4 | 100 | 3100 |
47 | 13 | 3 | 4 | 100 | 4100 |
48 | 13 | 3 | 4 | 100 | 5100 |
49 | 14 | 3 | 5 | 101 | 2101 |
50 | 14 | 3 | 5 | 101 | 3101 |
51 | 14 | 3 | 5 | 101 | 4101 |
52 | 14 | 3 | 5 | 101 | 5101 |
53 | 15 | 3 | 6 | 110 | 2110 |
54 | 15 | 3 | 6 | 110 | 3110 |
55 | 15 | 3 | 6 | 110 | 4110 |
56 | 15 | 3 | 6 | 110 | 5110 |
57 | 16 | 3 | 7 | 111 | 2111 |
58 | 16 | 3 | 7 | 111 | 3111 |
59 | 16 | 3 | 7 | 111 | 4111 |
60 | 16 | 3 | 7 | 111 | 5111 |
... | ... | ... | ... | ... | ... |
이렇게 순번 K로부터 계산된 4진2진 유니버설 코드는,
다양한 2진 유니버설 코드와 각 순번별로 1:1로 매핑되어, 4진화된 값으로 변형된뒤 ,4자리의 4진수를 묶으면 256종이 도며 이를 8비트의 2진수에 별도의 규칙으로 매핑하거나 그대로 4자리 4진수로부터 연산을 통해 8자리의 2진수로 변환하여, 8B10B등 고속전송라인코딩으로 변환하여 접목가능하다.
예를들어, 압축전송대상인
임의의 "1"로 끝나는 이진데이터가 있다고 한다면, 최상위로부터 최하위 범위까지 이동하면서, "1" 또는 "0"을 만날때 다음 "1"을 만날때마다 이진수를 분할하여 바이너리 클러스터라고 하면,
...000111010110000011111001010101011101...
아래와 같은 형태로 분할가능하며,
...0001/11/01/01/1000001/11/11/001/01/01/01/01/11/01...
상기와 같은 바이너리 클러스터의 모든 종류는 아래와 같다. 이와 같은 바이너리 클러스터도 유일복호성이 있으며, 유니버설 코드로서 기능하며 이를 본 발명에서는 BL-omega code라고 명명하였다. 순번 K 일때 BL-omega이며,
K | BL-omega |
1 | 11 |
2 | 01 |
3 | 101 |
4 | 001 |
5 | 1001 |
6 | 0001 |
7 | 10001 |
8 | 00001 |
9 | 100001 |
10 | 000001 |
11 | 1000001 |
12 | 0000001 |
13 | 10000001 |
14 | 00000001 |
15 | 100000001 |
16 | 000000001 |
17 | 1000000001 |
18 | 0000000001 |
19 | 10000000001 |
20 | 00000000001 |
21 | 100000000001 |
22 | 000000000001 |
23 | 1000000000001 |
24 | 0000000000001 |
25 | 10000000000001 |
26 | 00000000000001 |
27 | 100000000000001 |
28 | 000000000000001 |
29 | 1000000000000001 |
30 | 0000000000000001 |
... | ... |
encoding방법은, K 가 짝수일때는,
K 를 2로 나눈 몫을 Q라고 할때, Q개의 "0" 에 이어서, 1개의 "1"로 구성하고,
K 가 홀수일때는,
K 를 2로 나눈 몫을 Q라고 할때, 최상위의 "1" 에 이어서, Q개의 "0" 그리고 최하위의 "1"로 구성된 형태로 K에 따라 encoding된다.
decoding방법[1]은,
1) 최상위가 "1"인 경우는, 이후의 0 의 갯수가 Q이므로,
K = 2Q + 1 로 decoding하고,
2) 최상위가 "0" 인경우는 최상위 포함 0의 갯수가 Q이므로,
K = 2Q로 decoding한다.
혹은
decoding방법[2]
1) 최상위가 "1" 인 경우에,
유니버설 코드의 길이를 L이라고 할때, Q = L-2 이고,
K = 2Q+1 로 decoding하고,
2) 최상위가 "0" 인 경우에는, Q = L-1 이고,
K = 2Q로 decoding한다.
예를들어, "1"로 끝나는 397313 비트의 임의의 이진데이터에 대하여,
상기 방법에 따른 방식으로 분할하여 생성된 유니버설 코드(BL-omega)의 분포는 다음표와 같다. 지면관계상 일부만 표현한다.
전체 107,623 개의 유니버설 코드로 데이터는 완벽히 분할되었다.
BL -omega universal code | frequency |
… | … |
0000000000000000000000000000000000000001 | 2 |
0000000000000000000000000000000001 | 2 |
000000000000000000000000000000001 | 5 |
00000000000000000000000000000001 | 27 |
0000000000000000000000000000001 | 11 |
000000000000000000000000000001 | 33 |
00000000000000000000000000001 | 26 |
0000000000000000000000000001 | 52 |
000000000000000000000000001 | 63 |
00000000000000000000000001 | 34 |
0000000000000000000000001 | 41 |
000000000000000000000001 | 2 |
00000000000000000000001 | 1 |
0000000000000000000001 | 12 |
000000000000000000001 | 12 |
00000000000000000001 | 20 |
0000000000000000001 | 8 |
000000000000000001 | 32 |
00000000000000001 | 66 |
0000000000000001 | 90 |
000000000000001 | 84 |
00000000000001 | 280 |
0000000000001 | 264 |
000000000001 | 587 |
00000000001 | 408 |
0000000001 | 241 |
000000001 | 215 |
00000001 | 420 |
0000001 | 740 |
000001 | 1518 |
00001 | 3013 |
0001 | 6549 |
001 | 12296 |
01 | 23329 |
…… | … |
100000000000000000000000000000000000001 | 2 |
100000000000000000000000000000000001 | 2 |
10000000000000000000000000000000001 | 2 |
1000000000000000000000000000000001 | 1 |
100000000000000000000000000000001 | 4 |
10000000000000000000000000000001 | 14 |
1000000000000000000000000000001 | 3 |
100000000000000000000000000001 | 19 |
10000000000000000000000000001 | 21 |
1000000000000000000000000001 | 24 |
100000000000000000000000001 | 22 |
10000000000000000000000001 | 25 |
100000000000000000000001 | 4 |
10000000000000000000001 | 2 |
1000000000000000000001 | 10 |
100000000000000000001 | 6 |
10000000000000000001 | 4 |
1000000000000000001 | 1 |
100000000000000001 | 8 |
10000000000000001 | 12 |
1000000000000001 | 127 |
100000000000001 | 16 |
10000000000001 | 353 |
1000000000001 | 75 |
100000000001 | 165 |
10000000001 | 106 |
1000000001 | 86 |
100000001 | 185 |
10000001 | 346 |
1000001 | 730 |
100001 | 1581 |
10001 | 3795 |
1001 | 6155 |
101 | 11793 |
11 | 31313 |
한편 상기 표의 BL-omega 코드를 decoding한 K 값을 본 발명의 4진 유니버설 코드와 매핑하면 아래와 같다.
즉, 최상위 비트가 "0"이고, 길이가 2696비트인 BL-OMEGA코드는 4진화된 유니버설 코드인 301010000111 로 변환된다는 의미이며, 이렇게 모든 BL-N2코드들은 아래그림과 같이 연속적인 숫자로 묶여지면서, 특정 G 자리씩 분할되어 전송된다 N=4일때는 G=4가 최적이고, N=16일때는 G=2일때가 8b10b 전송을 위해서는 최적으로 여겨진다.
한편, 4진화된 유니비설 코드는 4자리씩 끊어 읽어서,8b10B방식으로 전송할 수 있는데, 이때 총 소요되는 비트수는 181997자리의 4진수이며, 이를 4개씩 나누어 8B10B전송을 위해 10비트로 변환하면, 181997/4 * 10 = 454992.5 비트가 소요된다. 한편 그대로 이를 2진 코드인 원본을 8B10B로 보내면, 397313/8*10= 496641.3 비트가 소요되어, 전체적으로 4만비트 정도를 더 절감할 수 있다.
아래 그림은,
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하여 데이터를
결합함으로서
최종적인 압축 전송 및 해제가
일어나ㅡㄴ
과정을
도표화하였다
.
BL-omega코드길이이 | BL-omega 최최상상위위비비트트 | Q | K(순순번번) | frequency | 4진진화화유유니니버버설설 코코드드 | frequency |
2696 | 0 | 2695 | 5390 | 1 | 301010000111 | 1 |
1969 | 0 | 1968 | 3936 | 1 | 31110110000 | 1 |
1692 | 0 | 1691 | 3382 | 2 | 31010011011 | 2 |
1482 | 0 | 1481 | 2962 | 2 | 30111001001 | 2 |
596 | 0 | 595 | 1190 | 1 | 3001010011 | 1 |
593 | 0 | 592 | 1184 | 1 | 3001010000 | 1 |
466 | 0 | 465 | 930 | 2 | 311010001 | 2 |
456 | 0 | 455 | 910 | 2 | 311000111 | 2 |
414 | 0 | 413 | 826 | 2 | 310011101 | 2 |
398 | 0 | 397 | 794 | 2 | 310001101 | 2 |
396 | 0 | 395 | 790 | 2 | 310001011 | 2 |
365 | 0 | 364 | 728 | 2 | 301101100 | 2 |
364 | 0 | 363 | 726 | 2 | 301101011 | 2 |
302 | 0 | 301 | 602 | 2 | 300101101 | 2 |
301 | 0 | 300 | 600 | 2 | 300101100 | 2 |
292 | 0 | 291 | 582 | 1 | 300100011 | 1 |
290 | 0 | 289 | 578 | 4 | 300100001 | 4 |
249 | 0 | 248 | 496 | 1 | 31111000 | 1 |
217 | 0 | 216 | 432 | 2 | 31011000 | 2 |
210 | 0 | 209 | 418 | 1 | 31010001 | 1 |
202 | 0 | 201 | 402 | 1 | 31001001 | 1 |
186 | 0 | 185 | 370 | 1 | 30111001 | 1 |
185 | 0 | 184 | 368 | 1 | 30111000 | 1 |
172 | 0 | 171 | 342 | 2 | 30101011 | 2 |
131 | 0 | 130 | 260 | 1 | 30000010 | 1 |
126 | 0 | 125 | 250 | 2 | 3111101 | 2 |
101 | 0 | 100 | 200 | 2 | 3100100 | 2 |
100 | 0 | 99 | 198 | 1 | 3100011 | 1 |
99 | 0 | 98 | 196 | 1 | 3100010 | 1 |
98 | 0 | 97 | 194 | 4 | 3100001 | 4 |
97 | 0 | 96 | 192 | 1 | 3100000 | 1 |
64 | 0 | 63 | 126 | 2 | 311111 | 2 |
62 | 0 | 61 | 122 | 2 | 311101 | 2 |
61 | 0 | 60 | 120 | 2 | 311100 | 2 |
60 | 0 | 59 | 118 | 6 | 311011 | 6 |
58 | 0 | 57 | 114 | 2 | 311001 | 2 |
57 | 0 | 56 | 112 | 1 | 311000 | 1 |
53 | 0 | 52 | 104 | 2 | 310100 | 2 |
51 | 0 | 50 | 100 | 2 | 310010 | 2 |
50 | 0 | 49 | 98 | 9 | 310001 | 9 |
49 | 0 | 48 | 96 | 2 | 310000 | 2 |
43 | 0 | 42 | 84 | 2 | 301010 | 2 |
41 | 0 | 40 | 80 | 2 | 301000 | 2 |
40 | 0 | 39 | 78 | 2 | 300111 | 2 |
34 | 0 | 33 | 66 | 2 | 300001 | 2 |
33 | 0 | 32 | 64 | 5 | 300000 | 5 |
32 | 0 | 31 | 62 | 27 | 31111 | 27 |
31 | 0 | 30 | 60 | 11 | 31110 | 11 |
30 | 0 | 29 | 58 | 33 | 31101 | 33 |
29 | 0 | 28 | 56 | 26 | 31100 | 26 |
28 | 0 | 27 | 54 | 52 | 31011 | 52 |
27 | 0 | 26 | 52 | 63 | 31010 | 63 |
26 | 0 | 25 | 50 | 34 | 31001 | 34 |
25 | 0 | 24 | 48 | 41 | 31000 | 41 |
24 | 0 | 23 | 46 | 2 | 30111 | 2 |
23 | 0 | 22 | 44 | 1 | 30110 | 1 |
22 | 0 | 21 | 42 | 12 | 30101 | 12 |
21 | 0 | 20 | 40 | 12 | 30100 | 12 |
20 | 0 | 19 | 38 | 20 | 30011 | 20 |
19 | 0 | 18 | 36 | 8 | 30010 | 8 |
18 | 0 | 17 | 34 | 32 | 30001 | 32 |
17 | 0 | 16 | 32 | 66 | 30000 | 66 |
16 | 0 | 15 | 30 | 90 | 3111 | 90 |
15 | 0 | 14 | 28 | 84 | 3110 | 84 |
14 | 0 | 13 | 26 | 280 | 3101 | 280 |
13 | 0 | 12 | 24 | 264 | 3100 | 264 |
12 | 0 | 11 | 22 | 587 | 3011 | 587 |
11 | 0 | 10 | 20 | 408 | 3010 | 408 |
10 | 0 | 9 | 18 | 241 | 3001 | 241 |
9 | 0 | 8 | 16 | 215 | 3000 | 215 |
8 | 0 | 7 | 14 | 420 | 311 | 420 |
7 | 0 | 6 | 12 | 740 | 310 | 740 |
6 | 0 | 5 | 10 | 1518 | 301 | 1518 |
5 | 0 | 4 | 8 | 3013 | 300 | 3013 |
4 | 0 | 3 | 6 | 6549 | 31 | 6549 |
3 | 0 | 2 | 4 | 12296 | 30 | 12296 |
2 | 0 | 1 | 2 | 23329 | 3 | 23329 |
930 | 1 | 928 | 1857 | 4 | 2110100001 | 4 |
413 | 1 | 411 | 823 | 4 | 210011100 | 4 |
401 | 1 | 399 | 799 | 2 | 210010000 | 2 |
397 | 1 | 395 | 791 | 2 | 210001100 | 2 |
389 | 1 | 387 | 775 | 1 | 210000100 | 1 |
387 | 1 | 385 | 771 | 1 | 210000010 | 1 |
386 | 1 | 384 | 769 | 2 | 210000001 | 2 |
365 | 1 | 363 | 727 | 2 | 201101100 | 2 |
322 | 1 | 320 | 641 | 2 | 201000001 | 2 |
292 | 1 | 290 | 581 | 2 | 200100011 | 2 |
291 | 1 | 289 | 579 | 9 | 200100010 | 9 |
251 | 1 | 249 | 499 | 1 | 21111010 | 1 |
189 | 1 | 187 | 375 | 1 | 20111100 | 1 |
188 | 1 | 186 | 373 | 1 | 20111011 | 1 |
187 | 1 | 185 | 371 | 1 | 20111010 | 1 |
186 | 1 | 184 | 369 | 1 | 20111001 | 1 |
98 | 1 | 96 | 193 | 1 | 2100001 | 1 |
65 | 1 | 63 | 127 | 2 | 2000000 | 2 |
64 | 1 | 62 | 125 | 2 | 211111 | 2 |
41 | 1 | 39 | 79 | 1 | 201000 | 1 |
39 | 1 | 37 | 75 | 2 | 200110 | 2 |
36 | 1 | 34 | 69 | 2 | 200011 | 2 |
35 | 1 | 33 | 67 | 2 | 200010 | 2 |
34 | 1 | 32 | 65 | 1 | 200001 | 1 |
33 | 1 | 31 | 63 | 4 | 200000 | 4 |
32 | 1 | 30 | 61 | 14 | 21111 | 14 |
31 | 1 | 29 | 59 | 3 | 21110 | 3 |
30 | 1 | 28 | 57 | 19 | 21101 | 19 |
29 | 1 | 27 | 55 | 21 | 21100 | 21 |
28 | 1 | 26 | 53 | 24 | 21011 | 24 |
27 | 1 | 25 | 51 | 22 | 21010 | 22 |
26 | 1 | 24 | 49 | 25 | 21001 | 25 |
24 | 1 | 22 | 45 | 4 | 20111 | 4 |
23 | 1 | 21 | 43 | 2 | 20110 | 2 |
22 | 1 | 20 | 41 | 10 | 20101 | 10 |
21 | 1 | 19 | 39 | 6 | 20100 | 6 |
20 | 1 | 18 | 37 | 4 | 20011 | 4 |
19 | 1 | 17 | 35 | 1 | 20010 | 1 |
18 | 1 | 16 | 33 | 8 | 20001 | 8 |
17 | 1 | 15 | 31 | 12 | 20000 | 12 |
16 | 1 | 14 | 29 | 127 | 2111 | 127 |
15 | 1 | 13 | 27 | 16 | 2110 | 16 |
14 | 1 | 12 | 25 | 353 | 2101 | 353 |
13 | 1 | 11 | 23 | 75 | 2100 | 75 |
12 | 1 | 10 | 21 | 165 | 2011 | 165 |
11 | 1 | 9 | 19 | 106 | 2010 | 106 |
10 | 1 | 8 | 17 | 86 | 2001 | 86 |
9 | 1 | 7 | 15 | 185 | 2000 | 185 |
8 | 1 | 6 | 13 | 346 | 211 | 346 |
7 | 1 | 5 | 11 | 730 | 210 | 730 |
6 | 1 | 4 | 9 | 1581 | 201 | 1581 |
5 | 1 | 3 | 7 | 3795 | 200 | 3795 |
4 | 1 | 2 | 5 | 6155 | 21 | 6155 |
3 | 1 | 1 | 3 | 11793 | 20 | 11793 |
2 | 1 | 0 | 1 | 31313 | 2 | 31313 |
Claims (1)
- 국내우선권주장 출원의 선출원으로서 별도의 청구범위는 기재치 않음
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160077922A KR20180000138A (ko) | 2016-06-22 | 2016-06-22 | 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160077922A KR20180000138A (ko) | 2016-06-22 | 2016-06-22 | 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180000138A true KR20180000138A (ko) | 2018-01-02 |
Family
ID=61004560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160077922A KR20180000138A (ko) | 2016-06-22 | 2016-06-22 | 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180000138A (ko) |
-
2016
- 2016-06-22 KR KR1020160077922A patent/KR20180000138A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105656604B (zh) | 一种比特交织极化编码调制方法及装置 | |
CN103400174B (zh) | 一种二维码的编码方法、解码方法及系统 | |
EA201070629A1 (ru) | Устройство и способ обработки данных, а также устройство и способ кодирования | |
JP3588349B2 (ja) | 10進数を2進数にエンコード/デコードする方法 | |
Kelbert et al. | Information theory and coding by example | |
KR960032906A (ko) | 계수화된 기호를 발생하는 인코더 | |
Howard et al. | Parallel lossless image compression using Huffman and arithmetic coding | |
KR20150092585A (ko) | 이진 영상에 기반한 유전체 데이터 압축 방법 및 장치 | |
CN112398484A (zh) | 一种编码方法及相关设备 | |
KR20180000138A (ko) | 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 | |
CN107526903A (zh) | 有约束条件排列组合编码生成算法及matlab实现方法 | |
KR20170140613A (ko) | 2진 유니버설 코드의 N진2진 복합 유니버설 코드로의 encoding 및 decoding방법 | |
KR20170128842A (ko) | 2진 유니버설 코드의 4진 유니버설 코드로의 encoding 및 decoding방법 | |
KR20170142796A (ko) | 2진 유니버설 코드의 N진 복합 유니버설 코드로의 encoding 및 decoding방법 | |
KR20170133097A (ko) | 2진 유니버설 코드의 4진 유니버설 코드로의 encoding 및 decoding방법 | |
KR20170127808A (ko) | 4진 유니버설 코드의 encoding 및 decoding방법 | |
Ziv | The Universal LZ77 Compression Algorithm Is Essentially Optimal for Individual Finite-Length $ N $-Blocks | |
KR20170128027A (ko) | 3진 유니버설 코드의 생성 방법 및 그 장치 | |
KR20170128876A (ko) | 2진유니버설 코드의 3진 유니버설 코드 생성 방법 및 그 장치 | |
Das et al. | A variant of the Narayana coding scheme | |
KR20180000143A (ko) | 2진 유니버설 코드의 N진 유니버설 코드로의 encoding 및 decoding방법 | |
KR20170126157A (ko) | 유니버설 코드를 이용한 8b10b 등 고속라인 코딩방법 | |
KR101734515B1 (ko) | 데이터 부호화 및 복호화 방법과 장치 | |
Kawabata et al. | A new implementation of the Ziv-Lempel incremental parsing algorithm | |
CN112769522B (zh) | 一种基于Partition结构的编码分布式计算方法 |