J'ai parfaitement compris !!!
Je le sais tous ça
C'est vous qui me comprenez pas je crois bien !
Alors ont va vous apprendre...
255 en BITS = 11111111 = 8 x 1, OK ? = 1 octets OK ?
240 en BITS = 11110000 = 4 x 1 et 4 x 0, OK ? = 1 octets OK ?
225 en BITS = 11100001= 3 x 1 et 4 x 0 et 1, OK ? = 1 octets OK ?
127 en BITS = 01111111 = 1 x 0 et 7 x 1 OK ? = 1 octets OK ?
63 en BITS = 00111111 = 12 x 0 et 6 x 1 OK ? = 1 octets OK ?
0 en BITS = 00000000 = 8 x 0 OK ? = 1 octets OK ?
Si je
DIVISE TOUTES LES VALEUR PAR 2 et que je sais que ça n'ira jamais au dessus de par exemple 127 OK ?
Alors pourquoi se faire chier à écrire 01111111, quand 1111111 suffirais ?
SI TOUTES MES VALEUR EN BITS FONT TOUJOURS 7 BITS, pas de problème !
Donc si j'ai par exemple:
R220, V147, B255, A0
Normalement ça se code sur 4 octets, 4 caractères Ascii, 4 x 8 Bits, ok ?
En Bits = 11011100, 10010011, 11111111, 00000000
Et bien moi je dis que je veux que ça face moin, donc je divise tous par 2 tous le temps:
R220, V147, B255, A0 deviens donc maintenant: R110, V73, B127, A0
Et je les code sur 7 Bits et plus 8 !
En Bits = 1101010, 1001001, 1111111, 0000000
Maintenant un peut de pratique Messieurs !
Quel est le plus court ici:
1- 11011100100100111111111100000000
2- 1101010100100111111110000000
C'est le 2, ont gagne 3 Bits par couleur 24 Bits
et 4 Bits par couleur 32 Bits !
Multiplier ça maintenant par 1 000 000 et vous aurez un gain env de:
3 000 000 de Bits si c'est une image 24 Bits !
Soit à peut près 375000 octets = 366 Ko.
4 000 000 de Bits si c'est une image 32 Bits !
Soit à peut près 500000 octets = 488 Ko.
Ont continue car vous me suivez pas encore je suis sûr !
Si je code maintenant chaque groupe de 8 Bits sur un octets ça donne quoi ?
Version normale (24 Bits) = 8 x 3 = 24, 24 x 1 000 000 = 24 000 000, 24 000 000 / 8 = 3000000 Octets, 3000000 / 1024 = 2930 Ko, 2930 / 1024 = 2,86 Mo.
Ici il va me falloir donc un totale de 3 000 000 caractères Ascii pour l'ensemble de l'image, OK ?
Ici, pareil, je code chaque groupe de 8 Bits sur un octets ça donne quoi ?
Version 1 divisé par 2, (24 Bits) = 7 x 3 = 21, 21 x 1 000 000 = 21 000 000, 21 000 000 / 8 = 2625000 Octets, 2625000 / 1024 = 2564 Ko, 2564 / 1024 = 2,50 Mo.
Ici il va me falloir donc un totale de 2 625 000 caractères Ascii OK ?
Il restera très surement quelque Bits à la fin, inférieur à 8, il ne suffira alors que de rajouter des 0 avant pour faire un totale de 8.
Avez-vous compris maintenant ?!
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.