Codificación para tontos, parte 1

No siendo un especialista en esta área, sin embargo, leí mucha literatura especializada para familiarizarme con el tema y, rompiendo las espinas hacia las estrellas, llené, en las etapas iniciales, muchos conos. Con toda la abundancia de información, no pude encontrar artículos simples sobre codificación como tal, fuera del alcance de la literatura especial (por así decirlo, sin fórmulas y con imágenes).





El artículo, en la primera parte, es un programa educativo sobre codificación como tal con ejemplos de manipulaciones con códigos de bits, y en la segunda me gustaría tocar las formas más simples de codificar imágenes.





0. Inicio

Dado que me dirijo a novatos en este asunto, no consideraría vergonzoso referirme a Wikipedia. Y allí, para denotar la codificación de la información, tenemos tal definición: el proceso de convertir una señal de una forma conveniente para el uso directo de información a una forma conveniente para la transmisión, almacenamiento o procesamiento automático.





Lo que me faltaba en los años 70 y 80 estaba en la escuela, aunque no en informática, sino, por ejemplo, en lecciones de matemáticas: información básica sobre codificación. El hecho es que cada uno de nosotros se dedica a codificar información cada segundo, de forma constante y en general, sin concentrarse en codificarse. Es decir, en la vida cotidiana lo hacemos todo el tiempo. Entonces, ¿cómo sucede esto?





Mimetismo, gestos, habla, señales de diferentes niveles: un letrero con una inscripción, un letrero en la carretera, semáforos y para el mundo moderno: códigos de barras y códigos de barras, URL, etiquetas hash.





Echemos un vistazo a algunos con más detalle.





1.1 Habla, expresiones faciales, gestos

, - . , , . , . , , - , , , .





, ? - , , - . , , , , , , , - , , .





, - , .





1.2

Pings indios

. . , , "/". , .





, . ( ), , , - . "-", "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 todo junto y obtenemos 371 bits. En este caso, el mensaje en sí se codificó en 19 * 4 = 76 bits. Pero aún debemos mantener la coherencia del código y el símbolo de Huffman, como en todos los casos anteriores.





Epílogo

Espero que este artículo le dé una impresión general de la codificación y le muestre que no es solo un empleado de cifrado militar o un algoritmo complejo para genios matemáticos.





De vez en cuando me encuentro con cómo los estudiantes están tratando de resolver problemas de codificación y simplemente no pueden abstraer, proponer un enfoque creativo para este proceso. Pero la codificación es como un peinado o unos pantalones elegantes, que de esta manera muestran nuestro código social.








All Articles