Peut-on detecter qu'une image a subi un codage JPEG?
Module MTI
Dau-Khoî Nguyen
Matthieu Roger
Signets:
Preliminaire
Qu'est-ce que JPEG fait de particulier?
L'impact de la quantification de la DCT sur
l'entropie d'une image
Exploitation de la diminution de l'entropie de
l'image
JPEG ou un travail par blocs
Les details glissants
Preliminaire:
Notre role etait ici de determiner s'il etait possible d'extraire des donnees
significatives d'une image bitmap, pour savoir si elle avait pu etre codee
en JPEG.
Dans un premier temps, nous nous sommes donc attache a comprendre l'action
du codage jpeg dans ses grandes lignes. En voici un resume.
Illustration
1. Qu'est-ce que JPEG fait de particulier?
-
Codage en general avec perte
-
Travail sur des blocs
-
Utilisation d'une DCT
sur un bloc puis quantification
par une matrice de pas de quantification
-
Outils utilises: xv et cantata
Nous avons donc essaye de trouver des traces de ces traitements dans nos
images tests. Bien entendu, nous n'avons pas traite le cas des images
JPEG lossless ou bien de qualites subjectives telles qu'elles nous paraissaient
sans perte. Nous avons donc force la compression jusqu'a obtenir des images
degradees desquelles nous avons pu extraire des caracteres significatifs.
Remarquons que l'on peut aussi considerer le codage JPEG comme un filtrage
de l'image (DCT et quantification) suivi d'un codage entropique (lecture
zigzag + DPCM
& RLE
+ Huffman).
A propos des outils et de la methodologie: non avons utilise xv, qui
permet de fixer le facteur de qualite du codage JPEG. Ce facteur,
compris entre 1 et 100%, divise la table
des pas de quantification utilises apres la DCT. Il ne s'agit donc
pas du taux de compression, meme si ces deux indicateurs evoluent de la
meme facon.
Illustration
2. L'impact de la quantification de la DCT
sur l'entropie d'une image
Si l'on concoit le codage JPEG comme un filtrage de l'image suivi d'un
codage entropique, on peut donc considerer un codage JPEG Lossless comme
notre reference pour une image non abimee. Dans la plupart des cas (c'est-a-dire
en dehors des contre-exemples soigneusement fabriques), un codage JPEG
Baseline autorisera un meilleur taux de compression qu'un codage Lossless.
Comme nous considerons le codage JPEG comme un filtrage, nous pouvons alors
en deduire que ce filtrage diminue l'entropie de l'image. En effet, un
JPEG Baseline va faire un filtrage via la quantification de la DCT qui
sera suivi en fait d'un codage entropique JPEG Lossless (en fait
de la fin, a peu de choses pres).
Donc sous-quantifier la
DCT diminue l'entropie de l'image.
Illustration
3. Exploitation de la diminution de l'entropie de
l'image
-
Augmentation de l'intercorrelation des pixels
-
Histogramme
Comment traduire le diminution de l'entropie d'une image? L'entropie caracterise
la quantite d'information contenue dans l'image. Cela signifie donc que
l'image transporte moins d'information. C'est-a-dire que si l'on decouvre
partiellement une image JPEG, on devinera mieux ce qui est cache qu'avec
la meme image avant qu'elle ait ete codee. Cela signifie qu'on a augmente
d'une certaine maniere l'autocorrelation des pixels. De quelle maniere
s'en rendre compte?
A part faire une longue recherche pour voir de quelle maniere exacte
on renforce l'intercorrelation des pixels en quantifiant les coefficients
de la DCT appliquee a une image, on est oblige de faire appel a des outils
statistiques existants.
On peut ainsi esperer voir apparaitre des artefacts sur l'histogramme
de l'image. On constate en effet une sorte de hachage de l'histogramme
qu'on pourrait rapprocher des pics qui apparaissent sur un histogramme
lors de la sous-quantification d'une image.
Illustration
4. JPEG ou un travail par blocs
-
L'unite JPEG: le bloc 8x8
Le codage JPEG s'effectue sur des blocs. Il est donc legitime de rechercher
ces blocs dans l'image decodee, a travers des ruptures de continuite. En
calculant le gradient de l'image decodee, on voit effectivement apparaitre
la structure sous-jacente en blocs, particulierement sur les zones de l'image
quasi-uniformes.
Peut-on alors faire appel a un autre outil statistique tel que l'autocorrelation
pour extraire ce caractere meme des endroits ou il echappe a l'oeil? Il
s'avere decevant et difficilement interpretable pour reconnaitre la structure
en blocs.
Illustration
5. Les details glissants
En regardant de plus pres les mats et les drisses de l'image des bateaux,
nous avons pu constater des phenomenes de retournements locaux agissant
bloc par bloc. Une explication intuitive voudrait qu'il s'agisse de l'introduction
de dephasages du fait de la sous-quantification des coefficients de la
DCT. Cela agirait principalement sur les hautes frequences qui correspondent
aux coefficients de la DCT les plus touches...
Nous avons illustre ce phenomene sur un detail des cheveux de l'image bien
connue "tifany". Sur l'image originale bitmap, le contour du cheveu de
tifany se decoupe homogenement.
En revanche, sur l'image compressee avec un facteur de qualite de 15%,
une structure de blocs 8x8 de detache subjectivement, mais surtout des
details discontinus en niveaux de gris apparaissent dans des coins, comme
a l'endroit indique par la fleche "detail glissant".
Sans rentrer dans un calcul de DCT puis de quantification, ce phenomene
peut s'expliquer dans ces zones par la presence de hautes frequences dans
l'image originale. La DCT puis la quantification ont pour effet a des fins
de compression d'eliminer donc d'introduire des erreurs sur les coefficients
du coin inferieur droit correspondant aux hautes frequences. Plus on applique
un facteur de qualite bas, comme c'est le cas ici a 15%, plus forte est
l'erreur sur ces coefficients. Or dans le cas du bloc de ce detail, ce
coefficient n'est pas negligeable. Pour le pixel du coin superieur gauche
du bloc, lors de la DCT inverse, ce coefficient devrait avoir un role de
compensation par rapport aux coefficents des composantes continues, role
qui par compression a ete supprime. La consequence est que ledit pixel
prend alors un niveau de gris plus proche du niveau de la composante continue
qu'il ne devrait avoir en realite, ce qui ici a pour effet de faire apparaitre
ce "detail glissant" correspondant a une reaaparition de haute frequence.
Illustration