단항 부호화
Unary coding길이 n의 1(또는 n), 보통 n은 0(자연스러운 숫자 음이 아닌 정수로 이해된다)또는 n− 1 낮은 사람들은 0(자연스러운 번호underst 있는 표를+a코드들과, 자연수, n의 곱을 나타내Unary coding,[nb 1]또는 단항 진법과 또한 때때로 온도계 부호, 엔트로피 인코딩입니다.ood로엄밀하게 양의 정수).예를 들어 5는 111110 또는 11110으로 표시됩니다.일부 표현에서는 n 또는 n - 1의 0 뒤에 1을 사용합니다.1과 0은 일반성을 잃지 않고 교환할 수 있습니다.단항 부호화는 프리픽스 프리 코드와 자기 동기화 코드입니다.
n(음수 아님) | n(정극성) | 유니리 코드 | 대안 |
---|---|---|---|
0 | 1 | 0 | 1 |
1 | 2 | 10 | 01 |
2 | 3 | 110 | 001 |
3 | 4 | 1110 | 0001 |
4 | 5 | 11110 | 00001 |
5 | 6 | 111110 | 000001 |
6 | 7 | 1111110 | 0000001 |
7 | 8 | 11111110 | 00000001 |
8 | 9 | 111111110 | 000000001 |
9 | 10 | 1111111110 | 0000000001 |
단항 부호화는 다음과 같은 이산 확률 분포에 최적으로 효율적인 부호화입니다.
( ,, 3 ..{ n 2, 3, ...}) 。
기호별 부호화에서는 모든 기하학적 분포에 최적입니다.
k ≥ = 1.61803398879…에 대해 황금비, 또는 보다 일반적으로, 다음과 같은 이산 분포에 대해
,,, n 이러한 확률 분포에 대한 최적의 기호별 부호화이지만 골롬 부호화는 입력 기호를 독립적으로 고려하지 않고 오히려 암묵적으로 입력을 그룹화하기 때문에 기하 분포에 대해 더 나은 압축 능력을 달성한다.같은 이유로 산술 부호화는 위의 마지막 경우와 같이 일반적인 확률 분포에서 더 나은 성능을 발휘합니다.
단항 코드가 현재 사용 중입니다.
단일 코드 사용의 예는 다음과 같습니다.
- 골롬 라이스 코드에서는 단항 부호화가 골롬 코드 워드의 몫 부분을 부호화하기 위해 사용됩니다.
- UTF-8에서는 연속 바이트를 검사하지 않고 시퀀스의 길이를 결정할 수 있도록 멀티 바이트 시퀀스의 선두 바이트에 유니리 인코딩을 사용하여 시퀀스 내의 바이트 수를 나타낸다.
- 순간적으로 훈련된 신경망은 효율적인 데이터 표현을 위해 단항 부호화를 사용한다.
생물학적 네트워크에서의 단항 부호화
단항 부호화는 새소리 [1][2]생성을 담당하는 신경 회로에 사용됩니다.새소리 학습과 새소리 생성에 모두 관여하는 새의 뇌핵은 HVC(고성중추)다.새소리의 다른 음에 대한 명령 신호는 HVC의 다른 지점에서 발생합니다.이 코딩은 공간 코딩으로 작동하며, 공간 코딩은 본질적으로 단순하고 견고하기 때문에 생물학적 회로에 대한 효율적인 전략입니다.
표준 런렝스 단항 코드
모든 이진 데이터는 1과 0을 번갈아 사용하는 런렝스로 단항 숫자를 나타내는 기능으로 정의됩니다.이는 동일한 번호 1 또는 0의 단항 ie N자리 숫자의 표준 정의에 준거합니다.정의상 모든 런렝스는 최소 1자리 숫자를 가지며, 따라서 엄밀하게 양의 정수를 나타냅니다.
n | RL 코드 | 다음 코드 |
---|---|---|
1 | 1 | 0 |
2 | 11 | 00 |
3 | 111 | 000 |
4 | 1111 | 0000 |
5 | 11111 | 00000 |
6 | 111111 | 000000 |
7 | 1111111 | 0000000 |
8 | 11111111 | 00000000 |
9 | 111111111 | 000000000 |
10 | 1111111111 | 0000000000 |
... |
고유하게 복호화할 수 있는 프리픽스 비단항 코드
다음은 프리픽스 코드가 아닌 고유하게 디코딩 가능한 단항 코드의 예입니다(디코딩을 위해 룩어헤드 필요).
n | 유니리 코드 |
---|---|
1 | 1 |
2 | 10 |
3 | 100 |
4 | 1000 |
5 | 10000 |
6 | 100000 |
7 | 1000000 |
8 | 10000000 |
9 | 100000000 |
10 | 1000000000 |
... |
대칭 단항 부호
다음 단항 코드 세트는 대칭이며 모든 방향으로 읽을 수 있습니다.또한 어느 방향으로든 즉시 해독할 수 있습니다.
n(정극성) | 유니리 코드 | 대안 | n(음수 아님) |
---|---|---|---|
1 | 1 | 0 | 0 |
2 | 00 | 11 | 1 |
3 | 010 | 101 | 2 |
4 | 0110 | 1001 | 3 |
5 | 01110 | 10001 | 4 |
6 | 011110 | 100001 | 5 |
7 | 0111110 | 1000001 | 6 |
8 | 01111110 | 10000001 | 7 |
9 | 011111110 | 100000001 | 8 |
10 | 0111111110 | 1000000001 | 9 |
... |
표준 단항 코드
최대값이 알려진 단항 값의 경우 문자 기반 코드와는 다른 다소 수치적 성질의 표준 단항 코드를 사용할 수 있습니다.숫자 '0' 또는 '-1'( 1 \ ^{로 시작하고 각 단계에서 최대 자릿수를 1자리씩 줄이고 결과를 숫자 '1'만큼 증가/감소합니다.
n | 유니리 코드 | 대안 |
---|---|---|
1 | 1 | 0 |
2 | 01 | 10 |
3 | 001 | 110 |
4 | 0001 | 1110 |
5 | 00001 | 11110 |
6 | 000001 | 111110 |
7 | 0000001 | 1111110 |
8 | 00000001 | 11111110 |
9 | 000000001 | 111111110 |
10 | 0000000000 | 1111111111 |
표준 코드는 문자열이 아닌 숫자로 처리될 경우 디코딩에 더 적은 처리 시간이 필요할 수 있습니다.기호 길이당 필요한 코드 수가 1과 다른 경우, 즉 필요한 길이의 비단일 코드가 더 많을 경우, 이 경우 길이를 줄이지 않고 값을 수치적으로 증가/감소함으로써 이를 달성할 수 있다.
일반화 단항 부호화
Subhash Kak은 표준 단항 [3]부호화보다 훨씬 효율적으로 숫자를 표현하기 위해 단항 부호화의 일반화 버전을 제시했다.다음은 7비트만 필요한 0 ~ 15의 정수에 대한 일반화된 단항 부호화의 예입니다(이 예에서는 숫자를 표시하기 위해 표준 단항 내의 단일 비트 대신 3비트가 임의로 선택됩니다.표현은 마커를 사용하여 더 높은 사이클에서 더 높은 정수를 나타내는 주기적 표현이라는 점에 유의하십시오.
n | 유니리 코드 | 일반화 단항 |
---|---|---|
0 | 0 | 0000000 |
1 | 10 | 0000111 |
2 | 110 | 0001110 |
3 | 1110 | 0011100 |
4 | 11110 | 0111000 |
5 | 111110 | 1110000 |
6 | 1111110 | 0010111 |
7 | 11111110 | 0101110 |
8 | 111111110 | 1011100 |
9 | 1111111110 | 0111001 |
10 | 11111111110 | 1110010 |
11 | 111111111110 | 0100111 |
12 | 1111111111110 | 1001110 |
13 | 11111111111110 | 0011101 |
14 | 111111111111110 | 0111010 |
15 | 1111111111111110 | 1110100 |
일반화된 단항 부호화에서는 필요한 비트 수가 결정되기 때문에 나타낼 숫자의 범위를 미리 지정해야 합니다.
「 」를 참조해 주세요.
메모들
레퍼런스
- ^ Fiete, I. R.; Seung, H. S. (2007). "Neural network models of birdsong production, learning, and coding". In Squire, L.; Albright, T.; Bloom, F.; Gage, F.; Spitzer, N. (eds.). New Encyclopedia of Neuroscience. Elsevier.
- ^ Moore, J. M.; et al. (2011). "Motor pathway convergence predicts syllable repertoire size in oscine birds". Proc. Natl. Acad. Sci. USA. 108 (39): 16440–16445. Bibcode:2011PNAS..10816440M. doi:10.1073/pnas.1102077108. PMC 3182746. PMID 21918109.
- ^ Kak, S. (2015). "Generalized unary coding". Circuits, Systems and Signal Processing. 35 (4): 1419–1426. doi:10.1007/s00034-015-0120-7. S2CID 27902257.