Bonjour à tous,
Il est apparemment impossible de cacher des données au sein d’une image JPEG, et je voudrais savoir pourquoi.
Rappels sur la compression JPEG
Les images JPEG ont subi plusieurs étapes afin d’être compressées :
-
Calcul de tous les coefficients possibles et sélection des coefficients adaptés ;
-
Décomposition de l’image en 3 plans : Y, U et V et chaque plan correspond à la fréquence du point : f(x, y) ;
-
L’image est ensuite décomposée en blocs de 64 pixels (8x8) ;
-
Chaque bloc subit une Transformation en Fourier Rapide bidirectionnelle (FTT, Fast Fourier Transform) ;
-
A ce stade, chaque bloc correspond à 64 pairs de fréquence et d’orientation ;
-
Selon la qualité désirée par l’utilisateur, la quantification vectorielle OU BIEN l’élimination des coefficients de contribution minime, généralement les hautes fréquences, peuvent être utilisées ;
-
Le codage se termine par la compression puis la sauvegarde de l’image en JPEG.
Les coefficients dont je parle au point n°5 sont ceux retenus à l’étape n°0.
Rappels sur la stéganographie (cacher des données dans une image)
-
On rend impair la quantité de rouge d’une image "A".
-
On prend l’image "B" que l’on souhaite cacher dans "A". "B" contient des pixels soit noirs soit blancs (noirs => présence d’une donnée, blanc => absence de donnée). "B" fait la même taille que "A".
-
Là où on un pixel est noir dans "B", on ajoute 1 dans le pixel de même coordonnées (dans "A"). Sinon, on ne fait rien.
-
Puis on enregistre l’image : le format ne doit pas être JPEG.
Note : on peut faire de même pour le vert et le bleu (donc on peut cacher 3 images dans une même image, une pour le plan rouge, une autre pour le plan bleu et une autre pour le plan vert).
Question principale
Justement : en quoi le fait d’enregistrer une image au format JPEG est-il impossible avec mon algorithme de stéganographie ?
Déjà : est-ce à cause de la compression puis sauvegarde de l’image vers JPEG ? Ou bien est-ce lors de la phase de décompression puis affichage du JPEG ?
Puis : en détails, où est le problème ?
Question secondaire
Juste au cas où : est-ce que je me suis trompé dans mes explications concernant la compression et sauvegarde vers JPEG ? Ou trouvez-vous que je manque de précision ? N’hésitez pas à me ré-expliquer ça si vous en avez le temps
Bonnes fêtes de fin d’année à vous :magicien:,