Não sendo um especialista na área designada, eu, no entanto, li muita literatura especializada para me familiarizar com o assunto e, rompendo os espinhos para as estrelas, enchi, nos estágios iniciais, muitos cones. Com toda a abundância de informações, não consegui encontrar artigos simples sobre codificação como tal, fora do âmbito da literatura especial (por assim dizer, sem fórmulas e com imagens).
O artigo, na primeira parte, é um programa educacional sobre codificação como tal com exemplos de manipulação com códigos de bits e, na segunda, gostaria de abordar as maneiras mais simples de codificar imagens.
0. Começo
Visto que estou me dirigindo a iniciantes neste assunto, não consideraria vergonhoso referir-me à Wikipedia. E aí, para denotar a codificação da informação, temos essa definição - o processo de converter um sinal de uma forma conveniente para uso direto da informação em uma forma conveniente para transmissão, armazenamento ou processamento automático.
O que me faltou nas décadas de 70 e 80 foi na escola, mesmo que não na informática, mas, por exemplo, nas aulas de matemática - informações básicas sobre codificação. O fato é que cada um de nós está empenhado em codificar informações a cada segundo, constantemente e em geral - sem se concentrar na própria codificação. Ou seja, na vida cotidiana fazemos isso o tempo todo. Então, como isso acontece?
Mimetismo, gestos, fala, sinais de vários níveis - um sinal com uma inscrição, um sinal na estrada, semáforos e para o mundo moderno - códigos de barra e de barra, URL, hash tags.
Vamos dar uma olhada em alguns com mais detalhes.
1.1 Fala, expressões faciais, gestos
, - . , , . , . , , - , , , .
, ? - , , - . , , , , , , , - , , .
, - , .
1.2
. . , , "/". , .
, . ( ), , , - . "-", "A" - "--" "ET".
1.3
, , - , , . ? , , , , , , , . - , - , - . , , , , , , 1 , - .
2.
. , , - . , , - 8 .
256 , 0 255. , ( ) 00000000, 255 11111111. , 00000001.
, 26 26 , 10 . , ( ) .
" ".
2.1
8 , , , . , , :
|
|
|
|---|---|
|
|
18 |
|
|
12 |
|
|
11 |
|
|
11 |
|
|
9 |
|
|
8 |
|
|
4 |
|
|
3 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
19 ( ). 18+12+11+11+9+8+4+3+2+2+2+2+1+1+1+1+1+1+1=91 (91*8=728 ).
. , 256 19. - 19 LOG2(19)=4.25, , 5, 32 ( 4 , 16 ).
, 91*5=455 , 37.5%.
, . .
, 19 32 , .
2.2
. - , . :
|
|
|
, |
|---|---|---|
|
|
18 |
0 |
|
|
12 |
1 |
|
|
11 |
00 |
|
|
11 |
01 |
|
|
9 |
10 |
|
|
8 |
11 |
|
|
4 |
000 |
|
|
3 |
001 |
|
|
2 |
010 |
|
|
2 |
011 |
|
|
2 |
100 |
|
|
2 |
101 |
|
|
1 |
110 |
|
|
1 |
111 |
|
|
1 |
0000 |
|
|
1 |
0001 |
|
|
1 |
0010 |
|
|
1 |
0011 |
|
|
1 |
0100 |
179 .
, , , . , "111", "", "", "" "".
2.3
- , , . . - , / .
:
|
|
|
, |
|---|---|---|
|
|
18 |
0000 |
|
|
12 |
0001 |
|
|
11 |
0010 |
|
|
11 |
0011 |
|
|
9 |
0100 |
|
|
8 |
0101 |
|
|
4 |
0110 |
|
|
3 |
0111 |
|
|
2 |
10001 |
|
|
2 |
10010 |
|
|
2 |
10011 |
|
|
2 |
10100 |
|
|
1 |
10101 |
|
|
1 |
10110 |
|
|
1 |
10111 |
|
|
1 |
11000 |
|
|
1 |
11001 |
|
|
1 |
11010 |
|
|
1 |
11011 |
, , 0 - , 1 - . , 379 . 455 .
2 , 4 :
|
|
|
, |
|---|---|---|
|
|
18 |
000 |
|
|
12 |
001 |
|
|
11 |
0100 |
|
|
11 |
0101 |
|
|
9 |
0110 |
|
|
8 |
0111 |
|
|
4 |
10000 |
|
|
3 |
10001 |
|
|
2 |
10010 |
|
|
2 |
10011 |
|
|
2 |
10100 |
|
|
2 |
10101 |
|
|
1 |
10110 |
|
|
1 |
10111 |
|
|
1 |
11000 |
|
|
1 |
11001 |
|
|
1 |
11010 |
|
|
1 |
11011 |
|
|
1 |
11100 |
00 - 1 , 01 - 2 , 10 11 - 3 . - 356 .
, , , 455 379, 356 .
2.4
. , .
, . .
|
|
|
|
|---|---|---|
|
|
18 |
00 |
|
|
12 |
101 |
|
|
11 |
100 |
|
|
11 |
011 |
|
|
9 |
010 |
|
|
8 |
1111 |
|
|
4 |
11011 |
|
|
3 |
11001 |
|
|
2 |
111011 |
|
|
2 |
111010 |
|
|
2 |
111001 |
|
|
2 |
111000 |
|
|
1 |
1101011 |
|
|
1 |
1101010 |
|
|
1 |
1101001 |
|
|
1 |
1101000 |
|
|
1 |
1100011 |
|
|
1 |
1100010 |
|
|
1 |
110000 |
- 328 .
, 6 7 , , .
2.5.1
, . .
: " ".
:
|
|
|
|---|---|
|
|
18 |
|
|
3 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
1 |
, - , , , .
:
|
|
|
|
|---|---|---|
|
|
3 |
0 |
|
|
2 |
1 |
|
|
2 |
2 |
|
|
2 |
3 |
|
|
2 |
4 |
|
|
1 |
5 |
|
|
1 |
6 |
|
|
1 |
7 |
|
|
1 |
8 |
|
|
1 |
9 |
|
|
1 |
10 |
|
|
1 |
11 |
|
|
1 |
12 |
:
7, 0, 12, 3, 5, 0, 1, 9, 2, 10, 0, 4, 1, 3, 2, 8, 4, 6, 11
, , - . .
4 ( 0 15), , , . , , , , , 5 , 3 , , - . :
/ |
/ |
/ |
|---|---|---|
0 / 4 |
/ 18 |
/ 2 |
1 / 4 |
/ 5 |
/ 2 |
2 / 4 |
/ 10 |
/ 2 |
3 / 4 |
/ 12 |
/ 2 |
4 / 4 |
/ 12 |
/ 2 |
5 / 4 |
/ 31 |
/ 2 |
6 / 4 |
/ 17 |
/ 2 |
7 / 4 |
/ 20 |
/ 2 |
8 / 4 |
/ 10 |
/ 2 |
9 / 4 |
/ 18 |
/ 2 |
10 / 4 |
/ 26 |
/ 2 |
11 / 4 |
/ 17 |
/ 2 |
12 / 4 |
/ 21 |
/ 2 |
7 |
0 |
12 |
3 |
5 |
0 |
1 |
9 |
2 |
10 |
0 |
4 |
1 |
3 |
2 |
8 |
4 |
6 |
11 |
4 .
Contamos tudo juntos e obtemos 371 bits. Nesse caso, a própria mensagem foi codificada em 19 * 4 = 76 bits. Mas ainda precisamos manter o código de Huffman e o símbolo consistentes, como em todos os casos anteriores.
Posfácio
Espero que este artigo lhe dê uma impressão geral da codificação e mostre que não se trata apenas de um funcionário militar de criptografia ou de um algoritmo complexo para gênios matemáticos.
De vez em quando, descubro como os alunos estão tentando resolver problemas de codificação e simplesmente não conseguem se abstrair, sejam criativos com esse processo. Mas a codificação é como um penteado ou uma calça da moda, que, dessa forma, mostra nosso código social.