Codage pour les nuls, partie 1

N'étant pas un spécialiste dans ce domaine, j'ai néanmoins lu beaucoup de littérature spécialisée pour me familiariser avec le sujet et, traversant les épines jusqu'aux étoiles, j'ai rempli, dans les premiers stades, beaucoup de cônes. Avec toute l'abondance d'informations, je n'ai pas pu trouver d'articles simples sur le codage en tant que tel, en dehors du cadre de la littérature spéciale (pour ainsi dire, sans formules et avec des images).





L'article, dans la première partie, est un programme éducatif sur le codage en tant que tel avec des exemples de manipulations avec des codes de bits, et dans la seconde, je voudrais aborder les moyens les plus simples d'encoder des images.





0. Début

Puisque je m'adresse à des débutants dans ce domaine, je ne considérerais pas honteux de me référer à Wikipedia. Et là, pour désigner le codage des informations, nous avons une telle définition - le processus de conversion d'un signal d'une forme pratique pour une utilisation directe des informations en une forme pratique pour la transmission, le stockage ou le traitement automatique.





Ce qui me manquait dans les années 70 et 80, c'était à l'école, sinon en informatique, mais, par exemple, dans les cours de mathématiques - des informations de base sur le codage. Le fait est que chacun de nous est engagé dans le codage de l'information à chaque seconde, constamment et en général - sans se concentrer sur le codage lui-même. Autrement dit, dans la vie de tous les jours, nous le faisons tout le temps. Alors, comment cela se passe-t-il?





Mimétisme, gestes, discours, signaux de différents niveaux - un signe avec une inscription, un signe sur la route, des feux de circulation et pour le monde moderne - codes à barres et à barres, URL, balises de hachage.





Jetons un coup d'œil à certains plus en détail.





1.1 Discours, expressions faciales, gestes

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





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





, - , .





1.2

Pings indiens

. . , , "/". , .





, . ( ), , , - . "-", "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 .





Nous comptons tout ensemble et obtenons 371 bits. Dans ce cas, le message lui-même était codé en 19 * 4 = 76 bits. Mais nous devons toujours garder le code et le symbole de Huffman cohérents, comme dans tous les cas précédents.





Épilogue

J'espère que l'article vous donnera une impression générale du codage et montrera qu'il ne s'agit pas seulement d'un chiffreur militaire ou d'un algorithme complexe pour les génies mathématiques.





De temps en temps, je découvre comment les étudiants essaient de résoudre des problèmes de codage et ne peuvent tout simplement pas faire abstraction, proposer une approche créative de ce processus. Mais le codage est comme une coiffure ou un pantalon de fantaisie, qui montre ainsi notre code social.








All Articles