JPEG ( / ˈ dʒ eɪ p ɛ ɡ / JAY -peg ) [2] est une méthode couramment utilisée de compression avec perte pour les images numériques , en particulier pour les images produites par la photographie numérique . Le degré de compression peut être ajusté, permettant un compromis sélectionnable entre la taille de stockage et la qualité d’image . JPEG atteint généralement une compression de 10:1 avec peu de perte perceptible de qualité d’image. [3] Depuis son introduction en 1992, JPEG est la norme de compression d’image la plus utilisée au monde, [4] [5]et le Format d’image numérique le plus largement utilisé , avec plusieurs milliards d’images JPEG produites chaque jour à partir de 2015. [6]
| Extension de nom de fichier | .jpg, .jpeg, .jpe .jif, .JFIF, .jfi |
|---|---|
| Type de média Internet | image/jpeg |
| Tapez le code | JPEG |
| Identificateur de type uniforme (UTI) | public.jpeg |
| nombre magique | ff d8 ff |
| Développé par | Groupe conjoint d’experts en photographie , IBM , Mitsubishi Electric , AT&T , Canon Inc. [1] |
| Première version | 18 septembre 1992 ; il y a 29 ans ( 1992-09-18 ) |
| Type de format | Format de compression d’image avec perte |
| Standard | ISO/CEI 10918, UIT-T T.81, UIT-T T.83, UIT-T T.84, UIT-T T.86 |
| Site Internet | www .jpeg .org /jpeg / |
La sous-image 8 × 8 affichée en niveaux de gris 8 bits
Ensuite, chaque bloc 8 × 8 de chaque composant (Y, Cb, Cr) est converti en une représentation dans le domaine fréquentiel , à l’aide d’une transformée en cosinus discrète bidimensionnelle normalisée de type II (DCT), voir Citation 1 dans la transformée en cosinus discrète . Le DCT est parfois appelé “DCT de type II” dans le contexte d’une famille de transformées comme dans la transformée en cosinus discrète , et l’inverse correspondant (IDCT) est désigné par “DCT de type III”.
Par exemple, une telle sous-image 8 × 8 8 bits pourrait être :
[ 52 55 61 66 70 61 64 73 63 59 55 90 109 85 69 72 62 59 68 113 144 104 66 73 63 58 71 122 154 106 70 69 67 61 68 104 126 88 68 70 79 65 60 70 77 68 58 75 85 71 64 59 55 61 65 83 87 79 69 68 65 76 78 94 ] . {displaystyle left[{begin{array}{rrrrrrrr}52&55&61&66&70&61&64&73\63&59&55&90&109&85&69&72\62&59&68&113&144&104&66&73\63&58&71&122&154&106&70&69\67&61&68&104&126&88&68&70\79&65&60&70&77&68&58&75\85&71&64&59&55&61&65&83\87&79&69&68&65&76&78&94end{array}}right].}
Avant de calculer le DCT du bloc 8 × 8, ses valeurs sont décalées d’une plage positive à une plage centrée sur zéro. Pour une image 8 bits, chaque entrée du bloc d’origine tombe dans la plage [ 0 , 255 ] {displaystyle [0,255]}
. Le milieu de la plage (dans ce cas, la valeur 128) est soustrait de chaque entrée pour produire une plage de données centrée sur zéro, de sorte que la plage modifiée est [ − 128 , 127 ] {displaystyle [-128,127]}
. Cette étape réduit les exigences de plage dynamique dans l’étape de traitement DCT qui suit.
Cette étape donne les valeurs suivantes :
g = x ⟶ [ − 76 − 73 − 67 − 62 − 58 − 67 − 64 − 55 − 65 − 69 − 73 − 38 − 19 − 43 − 59 − 56 − 66 − 69 − 60 − 15 16 − 24 − 62 − 55 − 65 − 70 − 57 − 6 26 − 22 − 58 − 59 − 61 − 67 − 60 − 24 − 2 − 40 − 60 − 58 − 49 − 63 − 68 − 58 − 51 − 60 − 70 − 53 − 43 − 57 − 64 − 69 − 73 − 67 − 63 − 45 − 41 − 49 − 59 − 60 − 63 − 52 − 50 − 34 ] ↓ y . {displaystyle g={begin{array}{c}x\longrightarrow \left[{begin{array}{rrrrrrrr}-76&-73&-67&-62&-58&-67&-64&-55\-65&-69&-73&-38&-19&-43&-59&-56\-66&-69&-60&-15&16&-24&-62&-55\-65&-70&-57&-6&26&-22&-58&-59\-61&-67&-60&-24&-2&-40&-60&-58\-49&-63&-68&-58&-51&-60&-70&-53\-43&-57&-64&-69&-73&-67&-63&-45\-41&-49&-59&-60&-63&-52&-50&-34end{array}}right]end{array}}{Bigg downarrow }y.}
Le DCT transforme un bloc 8 × 8 de valeurs d’entrée en une combinaison linéaire de ces 64 modèles. Les modèles sont appelés fonctions de base DCT bidimensionnelles et les valeurs de sortie sont appelées coefficients de transformation . L’indice horizontal est u {displaystyle u}
et l’indice vertical est v {style d’affichage v}
.
L’étape suivante consiste à prendre le DCT bidimensionnel, qui est donné par :
G u , v = 1 4 α ( u ) α ( v ) ∑ x = 0 7 ∑ y = 0 7 g x , y cos [ ( 2 x + 1 ) u π 16 ] cos [ ( 2 y + 1 ) v π 16 ] {displaystyle G_{u,v}={frac {1}{4}}alpha (u)alpha (v)sum _{x=0}^{7}sum _{y=0 }^{7}g_{x,y}cos left[{frac {(2x+1)upi }{16}}right]cos left[{frac {(2y+1) vpi }{16}}right]}
où
- u {displaystyleu}
est la fréquence spatiale horizontale , pour les entiers 0 ≤ u < 8 {displaystyle 0leq u<8}
.
- v {displaystylev}
est la fréquence spatiale verticale, pour les entiers 0 ≤ v < 8 {displaystyle 0leq v<8}
.
- α ( u ) = { 1 2 , if u = 0 1 , otherwise {displaystyle alpha (u)={begin{cases}{frac {1}{sqrt {2}}},&{mbox{if }}u=0\1,&{mbox{ sinon}}end{cases}}}
est un facteur d’échelle de normalisation pour rendre la transformation orthonormée
- g x , y {displaystyle g_{x,y}}
est la valeur du pixel aux coordonnées ( x , y ) { style d’affichage (x, y)}
- G u , v {displaystyle G_{u,v}}
est le coefficient DCT aux coordonnées ( u , v ) . {displaystyle(u,v).}
Si nous effectuons cette transformation sur notre matrice ci-dessus, nous obtenons ce qui suit (arrondi aux deux chiffres les plus proches après la virgule):
G = u ⟶ [ − 415.38 − 30.19 − 61.20 27.24 56.12 − 20.10 − 2.39 0.46 4.47 − 21.86 − 60.76 10.25 13.15 − 7.09 − 8.54 4.88 − 46.83 7.37 77.13 − 24.56 − 28.91 9.93 5.42 − 5.65 − 48.53 12.07 34.10 − 14.76 − 10.24 6.30 1.83 1.95 12.12 − 6.55 − 13.20 − 3.95 − 1.87 1.75 − 2.79 3.14 − 7.73 2.91 2.38 − 5.94 − 2.38 0.94 4.30 1.85 − 1.03 0.18 0.42 − 2.42 − 0.88 − 3.02 4.12 − 0.66 − 0.17 0.14 − 1.07 − 4.19 − 1.17 − 0.10 0.50 1.68 ] ↓ v . {displaystyle G={begin{array}{c}u\longrightarrow \left[{begin{array}{rrrrrrrr}-415.38&-30.19&-61.20&27.24&56.12&-20.10&-2.39&0.46\4.47&-21.86&-60.76&10.25&13.15&-7.09&-8.54&4.88\-46.83&7.37&77.13&-24.56&-28.91&9.93&5.42&-5.65\-48.53&12.07&34.10&-14.76&-10.24&6.30&1.83&1.95\12.12&-6.55&-13.20&-3.95&-1.87&1.75&-2.79&3.14\-7.73&2.91&2.38&-5.94&-2.38&0.94&4.30&1.85\-1.03&0.18&0.42&-2.42&-0.88&-3.02&4.12&-0.66\-0.17&0.14&-1.07&-4.19&-1.17&-0.10&0.50&1.68end{array}}right]end{array}}{Bigg downarrow }v.}
Notez l’entrée du coin supérieur gauche avec la magnitude plutôt grande. Il s’agit du coefficient DC (également appelé composante constante), qui définit la teinte de base pour l’ensemble du bloc. Les 63 coefficients restants sont les coefficients AC (également appelés composants alternatifs). [57] L’avantage du DCT est sa tendance à agréger la majeure partie du signal dans un coin du résultat, comme on peut le voir ci-dessus. L’étape de quantification à suivre accentue cet effet tout en réduisant simultanément la taille globale des coefficients DCT, résultant en un signal facile à compresser efficacement dans l’étage d’entropie.
Le DCT augmente temporairement la profondeur de bits des données, car les coefficients DCT d’une image 8 bits / composante prennent jusqu’à 11 bits ou plus (selon la fidélité du calcul DCT) pour être stockés. Cela peut forcer le codec à utiliser temporairement des nombres de 16 bits pour conserver ces coefficients, doublant la taille de la représentation de l’image à ce stade ; ces valeurs sont généralement ramenées à des valeurs de 8 bits par l’étape de quantification. L’augmentation temporaire de la taille à ce stade n’est pas un problème de performances pour la plupart des implémentations JPEG, car généralement seule une très petite partie de l’image est stockée sous forme DCT complète à un moment donné pendant le processus de codage ou de décodage de l’image.
Quantification
L’œil humain est doué pour voir de petites différences de luminositésur une zone relativement grande, mais pas aussi bon pour distinguer l’intensité exacte d’une variation de luminosité à haute fréquence. Cela permet de réduire considérablement la quantité d’informations dans les composants à haute fréquence. Cela se fait en divisant simplement chaque composant dans le domaine fréquentiel par une constante pour ce composant, puis en arrondissant à l’entier le plus proche. Cette opération d’arrondi est la seule opération avec perte dans l’ensemble du processus (autre que le sous-échantillonnage de chrominance) si le calcul DCT est effectué avec une précision suffisamment élevée. En conséquence, il arrive généralement que de nombreuses composantes de fréquence plus élevée soient arrondies à zéro, et la plupart des autres deviennent de petits nombres positifs ou négatifs, qui nécessitent beaucoup moins de bits pour être représentés.
Les éléments de la matrice de quantification contrôlent le taux de compression, des valeurs plus élevées produisant une plus grande compression. Une matrice de quantification typique (pour une qualité de 50 % telle que spécifiée dans la norme JPEG d’origine) est la suivante :
Q = [ 16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99 ] . {displaystyle Q={begin{bmatrix}16&11&10&16&24&40&51&61\12&12&14&19&26&58&60&55\14&13&16&24&40&57&69&56\14&17&22&29&51&87&80&62\18&22&37&56&68&109&103&77\24&35&55&64&81&104&113&92\49&64&78&87&103&121&120&101\72&92&95&98&112&100&103&99end{bmatrix}}.}
Les coefficients DCT quantifiés sont calculés avec
B j , k = r o u n d ( G j , k Q j , k ) for j = 0 , 1 , 2 , … , 7 ; k = 0 , 1 , 2 , … , 7 {displaystyle B_{j,k}=mathrm {rond} left({frac {G_{j,k}}{Q_{j,k}}}right){mbox{ for }}j= 0,1,2,ldots ,7;k=0,1,2,ldots ,7}
où G {displaystyle G}
est les coefficients DCT non quantifiés ; Q {displaystyle Q}
est la matrice de quantification ci-dessus ; et B {displaystyle B}
est les coefficients DCT quantifiés.
L’utilisation de cette matrice de quantification avec la matrice de coefficients DCT ci-dessus donne :
A gauche : une image finale est construite à partir d’une série de fonctions de base. À droite : chacune des fonctions de base DCT qui composent l’image, et le coefficient de pondération correspondant. Milieu : la fonction de base, après multiplication par le coefficient : cette composante est ajoutée à l’image finale. Pour plus de clarté, le macrobloc 8×8 dans cet exemple est agrandi de 10x en utilisant une interpolation bilinéaire. B = [ − 26 − 3 − 6 2 2 − 1 0 0 0 − 2 − 4 1 1 0 0 0 − 3 1 5 − 1 − 1 0 0 0 − 3 1 2 − 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] . {displaystyle B=left[{begin{array}{rrrrrrrr}-26&-3&-6&2&2&-1&0&0\0&-2&-4&1&1&0&0&0\-3&1&5&-1&-1&0&0&0\-3&1&2&-1&0&0&0&0\1&0&0&0&0&0&0&0\ &0&0&0&0&0&0&0\0&0&0&0&0&0&0&0\0&0&0&0&0&0&0&0end{tableau}}right].}
Par exemple, en utilisant −415 (le coefficient DC) et en arrondissant à l’entier le plus proche
r o u n d ( − 415.37 16 ) = r o u n d ( − 25.96 ) = − 26. {displaystyle mathrm {rond} left({frac {-415.37}{16}}right)=mathrm {rond} left(-25.96right)=-26.}
Notez que la plupart des éléments de fréquence plus élevée du sous-bloc (c’est-à-dire ceux avec une fréquence spatiale x ou y supérieure à 4) sont quantifiés en valeurs nulles.
Codage entropique
Ordre en zigzag des composants d’image JPEG
Le codage entropique est une forme spéciale de compression de données sans perte . Cela implique de disposer les composants de l’image dans un ordre ” en zigzag ” en utilisant un algorithme de codage de longueur de plage (RLE) qui regroupe des fréquences similaires, en insérant des zéros de codage de longueur, puis en utilisant le codage de Huffman sur ce qui reste.
La norme JPEG permet également, mais n’exige pas, que les décodeurs prennent en charge l’utilisation du codage arithmétique , qui est mathématiquement supérieur au codage Huffman. Cependant, cette fonctionnalité a rarement été utilisée, car elle était historiquement couverte par des Brevets nécessitant des licences payantes, et parce qu’elle est plus lente à encoder et à décoder par rapport au codage Huffman. Le codage arithmétique réduit généralement la taille des fichiers d’environ 5 à 7 %.
Le coefficient DC quantifié précédent est utilisé pour prédire le coefficient DC quantifié actuel. La différence entre les deux est codée plutôt que la valeur réelle. Le codage des 63 coefficients AC quantifiés n’utilise pas une telle différenciation de prédiction.
La séquence en zigzag pour les coefficients quantifiés ci-dessus est illustrée ci-dessous. (Le format indiqué est juste pour faciliter la compréhension/visualisation.)
| −26 | |||||||
| −3 | 0 | ||||||
| −3 | −2 | −6 | |||||
| 2 | −4 | 1 | −3 | ||||
| 1 | 1 | 5 | 1 | 2 | |||
| −1 | 1 | −1 | 2 | 0 | 0 | ||
| 0 | 0 | 0 | −1 | −1 | 0 | 0 | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 0 | 0 | 0 | ||
| 0 | 0 | 0 | 0 | 0 | |||
| 0 | 0 | 0 | 0 | ||||
| 0 | 0 | 0 | |||||
| 0 | 0 | ||||||
| 0 |
Si le bloc i est représenté par B i {displaystyle B_{i}}
et les positions dans chaque bloc sont représentées par ( p , q ) {displaystyle (p, q)}
où p = 0 , 1 , . . . , 7 {displaystyle p=0,1,…,7}
et q = 0 , 1 , . . . , 7 {displaystyle q=0,1,…,7}
, alors tout coefficient dans l’image DCT peut être représenté comme B i ( p , q ) {displaystyle B_{i}(p, q)}
. Ainsi, dans le schéma ci-dessus, l’ordre de codage des pixels (pour le i -ème bloc) est B i ( 0 , 0 ) {displaystyle B_{i}(0,0)}
, B i ( 0 , 1 ) {displaystyle B_{i}(0,1)}
, B i ( 1 , 0 ) {displaystyle B_{i}(1,0)}
, B i ( 2 , 0 ) {displaystyle B_{i}(2,0)}
, B i ( 1 , 1 ) {displaystyle B_{i}(1,1)}
, B i ( 0 , 2 ) {displaystyle B_{i}(0,2)}
, B i ( 0 , 3 ) {displaystyle B_{i}(0,3)}
, B i ( 1 , 2 ) {displaystyle B_{i}(1,2)}
etc.
Processus de codage et de décodage JPEG séquentiels de base
Ce mode de codage est appelé codage séquentiel de base . Le JPEG de base prend également en charge l’ encodage progressif . Alors que le codage séquentiel code les coefficients d’un seul bloc à la fois (en zigzag), le codage progressif code un lot de coefficients de position similaire de tous les blocs en une seule fois (appelé balayage ), suivi du lot suivant de coefficients de tous les blocs , etc. Par exemple, si l’image est découpée en N blocs 8×8 B 0 , B 1 , B 2 , . . . , B n − 1 {displaystyle B_{0},B_{1},B_{2},…,B_{n-1}}
, puis un codage progressif à 3 balayages code la composante continue, B i ( 0 , 0 ) {displaystyle B_{i}(0,0)}
pour tous les blocs, c’est-à-dire pour tous i = 0 , 1 , 2 , . . . , N − 1 {displaystyle i=0,1,2,…,N-1}
, lors du premier balayage. Ceci est suivi par la deuxième analyse qui encode quelques composants supplémentaires (en supposant quatre composants supplémentaires, ils sont B i ( 0 , 1 ) {displaystyle B_{i}(0,1)}
pour B i ( 1 , 1 ) {displaystyle B_{i}(1,1)}
, toujours en zigzag) les coefficients de tous les blocs (donc la séquence est : B 0 ( 0 , 1 ) , B 0 ( 1 , 0 ) , B 0 ( 2 , 0 ) , B 0 ( 1 , 1 ) , B 1 ( 0 , 1 ) , B 1 ( 1 , 0 ) , . . . , B N ( 2 , 0 ) , B N ( 1 , 1 ) {displaystyle B_{0}(0,1),B_{0}(1,0),B_{0}(2,0),B_{0}(1,1),B_{1}(0, 1),B_{1}(1,0),…,B_{N}(2,0),B_{N}(1,1)}
), suivi de tous les coefficients restants de tous les blocs du dernier balayage.
Une fois que tous les coefficients positionnés de manière similaire ont été codés, la position suivante à coder est celle qui se produit ensuite dans la traversée en zigzag, comme indiqué dans la figure ci-dessus. Il a été constaté que le codage JPEG progressif de base donne généralement une meilleure compression par rapport au JPEG séquentiel de base en raison de la possibilité d’utiliser différentes tables de Huffman (voir ci-dessous) adaptées à différentes fréquences sur chaque “balayage” ou “passe” (qui inclut des coefficients positionnés), bien que la différence ne soit pas trop grande.
Dans la suite de l’article, on suppose que le motif de coefficients généré est dû au mode séquentiel.
Afin de coder le modèle de coefficient généré ci-dessus, JPEG utilise le codage Huffman. La norme JPEG fournit des tables de Huffman à usage général ; les codeurs peuvent également choisir de générer des tables de Huffman optimisées pour les distributions de fréquences réelles dans les images en cours de codage.
Le processus de codage des données quantifiées en zigzag commence par un codage de longueur d’exécution expliqué ci-dessous, où :
- x est le coefficient AC quantifié non nul.
- RUNLENGTH est le nombre de zéros qui précèdent ce coefficient AC non nul.
- SIZE est le nombre de bits requis pour représenter x .
- AMPLITUDE est la représentation binaire de x .
Le codage de longueur de plage fonctionne en examinant chaque coefficient AC non nul x et en déterminant combien de zéros sont venus avant le coefficient AC précédent. Avec ces informations, deux symboles sont créés :
| Symbole 1 | Symbole 2 |
|---|---|
| (LONGUEUR, TAILLE) | (AMPLITUDE) |
RUNLENGTH et SIZE reposent tous deux sur le même octet, ce qui signifie que chacun ne contient que quatre bits d’information. Les bits supérieurs traitent du nombre de zéros, tandis que les bits inférieurs indiquent le nombre de bits nécessaires pour coder la valeur de x .
Cela a pour conséquence immédiate que le symbole 1 ne peut stocker que des informations concernant les 15 premiers zéros précédant le coefficient AC non nul. Cependant, JPEG définit deux mots de code Huffman spéciaux. L’un consiste à terminer la séquence prématurément lorsque les coefficients restants sont nuls (appelé “End-of-Block” ou “EOB”), et un autre lorsque la série de zéros dépasse 15 avant d’atteindre un coefficient AC non nul. Dans un tel cas où 16 zéros sont rencontrés avant un coefficient AC non nul donné, le symbole 1 est codé “spécialement” comme suit : (15, 0)(0).
Le processus global se poursuit jusqu’à ce que “EOB” – désigné par (0, 0) – soit atteint.
Dans cet esprit, la séquence de plus tôt devient :
(0, 2)(-3);(1, 2)(-3);(0, 1)(-2);(0, 2)(-6);(0, 1)(2);( 0, 1)(-4);(0, 1)(1);(0, 2)(-3);(0, 1)(1);(0, 1)(1); (0, 2)(5);(0, 1)(1);(0, 1)(2);(0, 1)(-1);(0, 1)(1);(0, 1 )(-1);(0, 1)(2);(5, 1)(-1);(0, 1)(-1);(0, 0);
(La première valeur de la matrice, −26, est le coefficient DC ; il n’est pas codé de la même manière. Voir ci-dessus.)
À partir de là, les calculs de fréquence sont effectués sur la base des occurrences des coefficients. Dans notre exemple de bloc, la plupart des coefficients quantifiés sont des petits nombres qui ne sont pas immédiatement précédés d’un coefficient nul. Ces cas plus fréquents seront représentés par des mots de code plus courts.
Taux de compression et artefacts
Cette image montre les pixels qui sont différents entre une image non compressée et la même image JPEG compressée avec un réglage de qualité de 50. Plus sombre signifie une plus grande différence. Notez en particulier les changements qui se produisent près des arêtes vives et qui ont la forme d’un bloc.
L’image originale
Les carrés 8 × 8 compressés sont visibles dans l’image agrandie, ainsi que d’autres artefacts visuels de la compression avec perte .
Le taux de compression résultant peut varier selon les besoins en étant plus ou moins agressif dans les diviseurs utilisés dans la phase de quantification. La compression dix pour un donne généralement une image qui ne peut pas être distinguée à l’œil nu de l’original. Un taux de compression de 100: 1 est généralement possible, mais il aura l’air nettement artefacté par rapport à l’original. Le niveau de compression approprié dépend de l’utilisation qui sera faite de l’image.
| Image externe |
|---|
| |
Ceux qui utilisent le World Wide Web connaissent peut-être les irrégularités connues sous le nom d’artefacts de compression qui apparaissent dans les images JPEG, qui peuvent prendre la forme de bruit autour des bords contrastés (en particulier les courbes et les coins) ou d’images “blocs”. Celles-ci sont dues à l’étape de quantification de l’algorithme JPEG. Ils sont particulièrement visibles autour des angles vifs entre des couleurs contrastées (le texte en est un bon exemple, car il contient de nombreux angles de ce type). Les artefacts analogues dans la vidéo MPEG sont appelés bruit de moustique , car l ‘«activité de bord» qui en résulte et les points parasites, qui changent avec le temps, ressemblent à des moustiques grouillant autour de l’objet. [58] [59]
Ces artefacts peuvent être réduits en choisissant un niveau de compression inférieur ; ils peuvent être complètement évités en enregistrant une image à l’aide d’un format de fichier sans perte , bien que cela se traduira par une taille de fichier plus grande. Les images créées avec des programmes de lancer de rayons ont des formes de blocs visibles sur le terrain. Certains artefacts de compression de faible intensité peuvent être acceptables lors de la simple visualisation des images, mais peuvent être accentués si l’image est ensuite traitée, ce qui entraîne généralement une qualité inacceptable. Considérez l’exemple ci-dessous, démontrant l’effet de la compression avec perte sur une étape de traitement de détection de bord .
| Image | Compression sans perte | La compression avec perte |
|---|---|---|
| Original | |
|
| Traité par le détecteur de bord Canny |
|
|
Certains programmes permettent à l’utilisateur de faire varier la quantité de compression des blocs individuels. Une compression plus forte est appliquée aux zones de l’image qui présentent moins d’artefacts. De cette façon, il est possible de réduire manuellement la taille du fichier JPEG avec moins de perte de qualité.
Étant donné que l’étape de quantification entraîne toujours une perte d’informations, la norme JPEG est toujours un codec de compression avec perte. (Des informations sont perdues à la fois lors de la quantification et de l’arrondi des nombres à virgule flottante.) Même si la matrice de quantification est une matrice de uns , des informations seront toujours perdues lors de l’étape d’arrondi.
Décodage
Le décodage pour afficher l’image consiste à faire tout ce qui précède en sens inverse.
Prendre la matrice de coefficients DCT (après avoir ajouté la différence du coefficient DC)
[ − 26 − 3 − 6 2 2 − 1 0 0 0 − 2 − 4 1 1 0 0 0 − 3 1 5 − 1 − 1 0 0 0 − 3 1 2 − 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] {displaystyle left[{begin{array}{rrrrrrr}-26&-3&-6&2&2&-1&0&0\0&-2&-4&1&1&0&0&0\-3&1&5&-1&-1&0&0&0\-3&1&2&-1&0&0&0&0\1&0&0&0&0&0&0&0\0&0&0 \0&0&0&0&0&0&0&0\0&0&0&0&0&0&0&0end{tableau}}right]}
et en prenant le produit entrée pour entrée avec la matrice de quantification ci-dessus, on obtient
[ − 416 − 33 − 60 32 48 − 40 0 0 0 − 24 − 56 19 26 0 0 0 − 42 13 80 − 24 − 40 0 0 0 − 42 17 44 − 29 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] {displaystyle left[{begin{array}{rrrrrrrr}-416&-33&-60&32&48&-40&0&0\0&-24&-56&19&26&0&0&0\-42&13&80&-24&-40&0&0&0\-42&17&44&-29&0&0&0&0\18&0&0&0&0&0&0&0\0&0&0&0&0&0&0&0 \0&0&0&0&0&0&0&0\0&0&0&0&0&0&0&0end{tableau}}right]}
qui ressemble étroitement à la matrice de coefficients DCT d’origine pour la partie supérieure gauche.
L’étape suivante consiste à prendre le DCT inverse bidimensionnel (un DCT 2D de type III), qui est donné par :
f x , y = 1 4 ∑ u = 0 7 ∑ v = 0 7 α ( u ) α ( v ) F u , v cos [ ( 2 x + 1 ) u π 16 ] cos [ ( 2 y + 1 ) v π 16 ] {displaystyle f_{x,y}={frac {1}{4}}sum _{u=0}^{7}sum _{v=0}^{7}alpha (u) alpha (v)F_{u,v}cos left[{frac {(2x+1)upi }{16}}right]cos left[{frac {(2y+1)v pi }{16}}right]}
où
- x {displaystylex}
est la rangée de pixels, pour les entiers 0 ≤ x < 8 {displaystyle leq x<8}
.
- y {displaystyle y}
est la colonne de pixels, pour les entiers 0 ≤ y < 8 {displaystyle 0leq y<8}
.
- α ( u ) {displaystyle\alpha (u)}
est défini comme ci-dessus, pour les entiers 0 ≤ u < 8 {displaystyle 0leq u<8}
.
- F u , v {displaystyle F_{u,v}}
est le coefficient approximatif reconstruit aux coordonnées ( u , v ) . {displaystyle(u,v).}
- f x , y {displaystyle f_{x,y}}
est la valeur de pixel reconstruite aux coordonnées ( x , y ) { style d’affichage (x, y)}
Arrondir la sortie à des valeurs entières (puisque l’original avait des valeurs entières) donne une image avec des valeurs (toujours décalées de 128)
De légères différences sont perceptibles entre l’image d’origine (en haut) et l’image décompressée (en bas), ce qui est plus facilement visible dans le coin inférieur gauche. [ − 66 − 63 − 71 − 68 − 56 − 65 − 68 − 46 − 71 − 73 − 72 − 46 − 20 − 41 − 66 − 57 − 70 − 78 − 68 − 17 20 − 14 − 61 − 63 − 63 − 73 − 62 − 8 27 − 14 − 60 − 58 − 58 − 65 − 61 − 27 − 6 − 40 − 68 − 50 − 57 − 57 − 64 − 58 − 48 − 66 − 72 − 47 − 53 − 46 − 61 − 74 − 65 − 63 − 62 − 45 − 47 − 34 − 53 − 74 − 60 − 47 − 47 − 41 ] {displaystyle left[{begin{array}{rrrrrrrr}-66&-63&-71&-68&-56&-65&-68&-46\-71&-73&-72&-46&-20&-41&-66&-57 -70&-78&-68&-17&20&-14&-61&-63\-63&-73&-62&-8&27&-14&-60&-58\-58&-65&-61&-27&-6&-40&-68&-50 -57&-57&-64&-58&-48&-66&-72&-47\-53&-46&-61&-74&-65&-63&-62&-45\-47&-34&-53&-74&-60&-47&- 47&-41end{tableau}}right]}
et en ajoutant 128 à chaque entrée
[ 62 65 57 60 72 63 60 82 57 55 56 82 108 87 62 71 58 50 60 111 148 114 67 65 65 55 66 120 155 114 68 70 70 63 67 101 122 88 60 78 71 71 64 70 80 62 56 81 75 82 67 54 63 65 66 83 81 94 75 54 68 81 81 87 ] . {displaystyle left[{begin{array}{rrrrrrrr}62&65&57&60&72&63&60&82\57&55&56&82&108&87&62&71\58&50&60&111&148&114&67&65\65&55&66&120&155&114&68&70\70&63&67&101&122&88&60&78\71&71&64&70&80&62&56&81\75&82&67&54&63&65&66&83\81&94&75&54&68&81&81&87end{array}}right].}
Il s’agit de la sous-image décompressée. En général, le processus de décompression peut produire des valeurs en dehors de la plage d’entrée d’origine de [ 0 , 255 ] {displaystyle [0,255]}
. Si cela se produit, le décodeur doit écrêter les valeurs de sortie afin de les maintenir dans cette plage pour éviter un débordement lors du stockage de l’image décompressée avec la profondeur de bits d’origine.
La sous-image décompressée peut être comparée à la sous-image d’origine (voir également les images à droite) en prenant les résultats de différence (original – non compressé) dans les valeurs d’erreur suivantes :
[ − 10 − 10 4 6 − 2 − 2 4 − 9 6 4 − 1 8 1 − 2 7 1 4 9 8 2 − 4 − 10 − 1 8 − 2 3 5 2 − 1 − 8 2 − 1 − 3 − 2 1 3 4 0 8 − 8 8 − 6 − 4 − 0 − 3 6 2 − 6 10 − 11 − 3 5 − 8 − 4 − 1 − 0 6 − 15 − 6 14 − 3 − 5 − 3 7 ] {displaystyle left[{begin{array}{rrrrrrrr}-10&-10&4&6&-2&-2&4&-9\6&4&-1&8&1&-2&7&1\4&9&8&2&-4&-10&-1&8\-2&3&5&2&-1&-8&2&- 1\-3&-2&1&3&4&0&8&-8\8&-6&-4&-0&-3&6&2&-6\10&-11&-3&5&-8&-4&-1&-0\6&-15&-6&14&-3&-5&-3&7 end{tableau}}right]}
avec une erreur absolue moyenne d’environ 5 valeurs par pixel (c’est-à-dire, 1 64 ∑ x = 0 7 ∑ y = 0 7 | e ( x , y ) | = 4.8750 {displaystyle {frac {1}{64}}sum _{x=0}^{7}sum _{y=0}^{7}|e(x,y)|=4.8750}
).
L’erreur est plus visible dans le coin inférieur gauche où le pixel inférieur gauche devient plus sombre que le pixel immédiatement à sa droite.
Précision requise
La description de l’encodage dans la norme JPEG ne fixe pas la précision nécessaire pour l’image compressée de sortie. Cependant, la norme JPEG (et les normes MPEG similaires) inclut certaines exigences de précision pour le de , y compris toutes les parties du processus de décodage (décodage à longueur variable, DCT inverse, déquantification, renormalisation des sorties) ; la sortie de l’algorithme de référence ne doit pas dépasser :
- un maximum d’un bit de différence pour chaque composant de pixel
- faible erreur quadratique moyenne sur chaque bloc de 8 × 8 pixels
- erreur moyenne très faible sur chaque bloc de 8 × 8 pixels
- erreur quadratique moyenne très faible sur toute l’image
- erreur moyenne extrêmement faible sur toute l’image
Ces assertions sont testées sur un grand nombre d’images d’entrée aléatoires, pour gérer les pires cas. L’ancienne norme IEEE 1180–1990 contenait des exigences de précision similaires. La précision a une conséquence sur la mise en oeuvre des décodeurs, et elle est critique car certains procédés d’encodage (notamment utilisés pour encoder des séquences d’images comme MPEG) doivent pouvoir construire, côté encodeur, une image décodée de référence. Afin de prendre en charge une précision de 8 bits par sortie de composant de pixel, la déquantification et les transformées DCT inverses sont généralement mises en œuvre avec une précision d’au moins 14 bits dans des décodeurs optimisés.
Effets de la compression JPEG
Les artefacts de compression JPEG se fondent bien dans les photographies avec des textures détaillées non uniformes, permettant des taux de compression plus élevés. Remarquez comment un taux de compression plus élevé affecte d’abord les textures haute fréquence dans le coin supérieur gauche de l’image, et comment les lignes contrastées deviennent plus floues. Le taux de compression très élevé affecte gravement la qualité de l’image, bien que les couleurs globales et la forme de l’image soient toujours reconnaissables. Cependant, la précision des couleurs souffre moins (pour un œil humain) que la précision des contours (basée sur la luminance). Ceci justifie le fait que les images doivent d’abord être transformées dans un modèle de couleur séparant la luminance de l’information chromatique,
Exemples de photographies
Impact visuel d’une compression jpeg sur Photoshop sur une image de 4480×4480 pixels
Pour information, l’image bitmap RVB 24 bits non compressée ci-dessous (73 242 pixels) nécessiterait 219 726 octets (à l’exclusion de tous les autres en-têtes d’informations). Les tailles de fichiers indiquées ci-dessous incluent les en-têtes d’informations JPEG internes et certaines métadonnées. Pour des images de la plus haute qualité (Q=100), environ 8,25 bits par pixel de couleur sont nécessaires. Sur les images en niveaux de gris, un minimum de 6,5 bits par pixel est suffisant (une information de couleur de qualité Q = 100 comparable nécessite environ 25 % de bits encodés en plus). L’image de la plus haute qualité ci-dessous (Q=100) est codée à neuf bits par pixel de couleur, l’image de qualité moyenne (Q=25) utilise un bit par pixel de couleur. Pour la plupart des applications, le facteur de qualité ne doit pas descendre en dessous de 0,75 bit par pixel (Q=12,5), comme en témoigne la faible qualité de l’image. L’image de qualité la plus basse n’utilise que 0,13 bit par pixel et affiche des couleurs très médiocres. Ceci est utile lorsque l’image sera affichée dans une taille considérablement réduite. Un procédé pour créer de meilleures matrices de quantification pour une qualité d’image donnée à l’aide du PSNRau lieu du facteur Q est décrit dans Minguillón & Pujol (2001). [60]
| Image | Qualité | Taille (octets) | Ratio de compression | Commenter |
|---|---|---|---|---|
| |
Qualité la plus élevée (Q = 100) | 81 447 | 2.7:1 | Artefacts extrêmement mineurs |
| |
Haute qualité (Q = 50) | 14 679 | 15:1 | Premiers signes d’artefacts de sous-image |
| |
Qualité moyenne (Q = 25) | 9 407 | 23:1 | Artefacts plus puissants ; perte d’informations à haute fréquence |
| |
Qualité médiocre (Q = 10) | 4 787 | 46:1 | Une forte perte de haute fréquence conduit à des artefacts évidents sur les limites de la sous-image (“macroblocage”) |
| |
Qualité la plus basse (Q = 1) | 1 523 | 144:1 | Perte extrême de couleurs et de détails ; les feuilles sont presque méconnaissables. |
La photo de qualité moyenne n’utilise que 4,3 % de l’espace de stockage requis pour l’image non compressée, mais présente peu de perte notable de détails ou d’artefacts visibles. Cependant, une fois un certain seuil de compression passé, les images compressées présentent des défauts de plus en plus visibles. Voir l’article sur la théorie taux-distorsion pour une explication mathématique de cet effet de seuil. Une limitation particulière de JPEG à cet égard est sa structure de transformée de bloc 8 × 8 non superposée. Des conceptions plus modernes telles que JPEG 2000 et JPEG XR présentent une dégradation plus gracieuse de la qualité à mesure que l’utilisation des bits diminue – en utilisant des transformées avec une plus grande étendue spatiale pour les coefficients de fréquence inférieurs et en utilisant des fonctions de base de transformation qui se chevauchent.
Compression supplémentaire sans perte
De 2004 à 2008, de nouvelles recherches ont émergé sur les moyens de compresser davantage les données contenues dans les images JPEG sans modifier l’image représentée. [61] [62] [63] [64] Cela a des applications dans des scénarios où l’image originale n’est disponible qu’au format JPEG, et sa taille doit être réduite pour l’archivage ou la transmission. Les outils de compression standard à usage général ne peuvent pas compresser de manière significative les fichiers JPEG.
En règle générale, ces schémas tirent parti des améliorations apportées au schéma naïf de codage des coefficients DCT, qui ne prend pas en compte :
- Corrélations entre les grandeurs des coefficients adjacents dans le même bloc ;
- Corrélations entre les grandeurs du même coefficient dans des blocs adjacents ;
- Corrélations entre les grandeurs du même coefficient/bloc dans différents canaux ;
- Les coefficients DC, lorsqu’ils sont pris ensemble, ressemblent à une version à échelle réduite de l’image originale multipliée par un facteur d’échelle. Des schémas bien connus de codage sans perte d’images à tons continus peuvent être appliqués, obtenant une compression quelque peu meilleure que le DPCM codé de Huffman utilisé dans JPEG.
Certaines options standard mais rarement utilisées existent déjà en JPEG pour améliorer l’efficacité du codage des coefficients DCT : l’ option de codage arithmétique et l’option de codage progressif (qui produit des débits inférieurs car les valeurs de chaque coefficient sont codées indépendamment, et chaque coefficient a une valeur significativement différente Distribution). Les méthodes modernes ont amélioré ces techniques en réordonnant les coefficients pour regrouper les coefficients de plus grande amplitude; [61] utilisant des coefficients et des blocs adjacents pour prédire de nouvelles valeurs de coefficients ; [63] diviser des blocs ou des coefficients entre un petit nombre de modèles codés indépendamment en fonction de leurs statistiques et valeurs adjacentes ; [62] [63]et plus récemment, en décodant les blocs, en prédisant les blocs suivants dans le domaine spatial, puis en les codant pour générer des prédictions pour les coefficients DCT. [64]
En règle générale, ces méthodes peuvent compresser les fichiers JPEG existants entre 15 et 25 %, et pour les fichiers JPEG compressés avec des paramètres de faible qualité, peuvent produire des améliorations allant jusqu’à 65 %. [63] [64]
Un outil disponible gratuitement appelé packJPG [65] est basé sur l’article de 2007 “Amélioration de la réduction de la redondance pour les fichiers JPEG”.
Formats dérivés pour la 3D stéréoscopique
JPEG Stéréoscopique
Un exemple de fichier .JPS stéréoscopique
JPS est une image JPEG stéréoscopique utilisée pour créer des effets 3D à partir d’images 2D. Il contient deux images statiques, une pour l’œil gauche et une pour l’œil droit ; encodé sous forme de deux images côte à côte dans un seul fichier JPG. JPEG Stéréoscopique (JPS, extension .jps) est un format basé sur JPEG pour les images stéréoscopiques . [66] [67] Il a une gamme de configurations stockées dans le champ de marqueur JPEG APP3, mais contient généralement une image de double largeur, représentant deux images de taille identique dans les yeux croisés (c’est-à-dire le cadre gauche sur la moitié droite de l’image et vice versa) disposition côte à côte. Ce format de fichier peut être visualisé au format JPEG sans aucun logiciel spécial, ou peut être traité pour le rendu dans d’autres modes.
Format multi-images JPEG
Le format JPEG multi-images (MPO, extension .mpo) est un format basé sur JPEG pour stocker plusieurs images dans un seul fichier. Il contient deux ou plusieurs fichiers JPEG concaténés. [68] [69] Il définit également un segment marqueur JPEG APP2 pour la description de l’image. Divers appareils l’utilisent pour stocker des images 3D, tels que Fujifilm FinePix Real 3D W1 , HTC Evo 3D , caméscope d’extension JVC GY-HMZ1U AVCHD/MVC, Nintendo 3DS , Panasonic Lumix DMC-TZ20 , DMC-TZ30 , DMC-TZ60 , DMC- TS4 (FT4) et Sony DSC-HX7V. D’autres appareils l’utilisent pour stocker des “images de prévisualisation” qui peuvent être affichées sur un téléviseur.
Au cours des dernières années, en raison de l’utilisation croissante des images stéréoscopiques, de nombreux efforts ont été déployés par la communauté scientifique pour développer des algorithmes de compression d’images stéréoscopiques . [70] [71]
Implémentations
Une implémentation très importante d’un codec JPEG est la bibliothèque de programmation libre libjpeg du Independent JPEG Group. Il a été publié pour la première fois en 1991 et a été la clé du succès de la norme. [72] Cette bibliothèque ou un dérivé direct de celle-ci est utilisée dans d’innombrables applications. Les versions récentes introduisent des extensions propriétaires qui rompent la compatibilité ABI avec les versions précédentes .
En mars 2017, Google a publié le projet open source Guetzli , qui échange un temps d’encodage beaucoup plus long pour une taille de fichier plus petite (similaire à ce que Zopfli fait pour PNG et d’autres formats de données sans perte). [73]
L’ISO/IEC Joint Photography Experts Group maintient une implémentation logicielle de référence qui peut coder à la fois les extensions JPEG de base (ISO/IEC 10918-1 et 18477–1) et JPEG XT (ISO/IEC 18477 Parties 2 et 6–9), ainsi que JPEG-LS (ISO/CEI 14495). [74]
JPEG XT
JPEG XT (ISO/IEC 18477) a été publié en juin 2015 ; il étend le format JPEG de base avec la prise en charge de profondeurs de bits entiers plus élevées (jusqu’à 16 bits), l’imagerie à plage dynamique élevée et le codage en virgule flottante, le codage sans perte et le codage de canal alpha. Les extensions sont rétrocompatibles avec le format de fichier JPEG/JFIF de base et l’image compressée avec perte de 8 bits. JPEG XT utilise un format de fichier extensible basé sur JFIF. Les couches d’extension sont utilisées pour modifier la couche de base JPEG 8 bits et restaurer l’image haute résolution. Le logiciel existant est compatible avec les versions ultérieures et peut lire le flux binaire JPEG XT, bien qu’il ne décode que la couche de base 8 bits. [75]
JPEGXL
| Apprendre encore plus Cette rubrique doit être mise à jour . ( avril 2022 ) Please help update this article to reflect recent events or newly available information. |
Depuis août 2017, JTC1/SC29/WG1 a publié une série de projets d’appels à propositions sur JPEG XL – la norme de compression d’image de nouvelle génération avec une efficacité de compression nettement meilleure (amélioration de 60 %) par rapport à JPEG. [76] On s’attend à ce que la norme dépasse les performances de compression d’images fixes présentées par HEVC HM, Daala et WebP , et contrairement aux efforts précédents visant à remplacer JPEG, pour fournir une option de transport et de stockage de recompression plus efficace et sans perte pour les images JPEG traditionnelles. [77] [78] [79]Les principales exigences incluent la prise en charge d’images à très haute résolution (au moins 40 MP), 8 à 10 bits par composant, le codage couleur RVB/YCbCr/ICtCp, les images animées, le codage de canal alpha, Rec. Espace colorimétrique 709 ( sRGB ) et fonction gamma (puissance 2,4), Rec. Espace colorimétrique à large gamme de couleurs 2100 (Rec. 2020) et fonctions de transfert à plage dynamique élevée (PQ et HLG), et compression de haute qualité des images synthétiques, telles que les polices bitmap et les dégradés. La norme devrait également offrir des profondeurs de bits plus élevées (entier 12–16 bits et virgule flottante), des espaces colorimétriques supplémentaires et des fonctions de transfert (telles que Log C de Arri), images d’aperçu intégrées, codage de canal alpha sans perte, codage de région d’image et codage de faible complexité. Toute technologie brevetée ferait l’objet d’une licence libre de droits . Les propositions ont été soumises en septembre 2018, ce qui a conduit à un projet de comité en juillet 2019, avec une date de publication cible actuelle en octobre 2019. [ Nécessite une mise à jour ] [80] [79]
Voir également
- Better Portable Graphics , un format basé sur l’encodage intra-frame du HEVC
- C-Cube , un des premiers implémenteurs de JPEG sous forme de puce
- Comparaison des formats de fichiers graphiques
- Comparaison des moteurs de mise en page (graphiques)
- Filtre de déblocage (vidéo) , les méthodes de déblocage similaires pourraient être appliquées au JPEG
- Règle de conception pour le système de fichiers de caméra (DCF)
- Extensions de fichiers
- Programme d’édition graphique
- Format de fichier d’image à haute efficacité , format de conteneur d’image pour HEVC et autres formats de codage d’image
- Lenna (image de test) , l’image standard traditionnelle utilisée pour tester les algorithmes de traitement d’image
- Codec d’image sans perte FELICS
- Mouvement JPEG
- WebP
Références
- ^ un bcd e f g h i j k l “T.81 – COMPRESSION NUMÉRIQUE ET CODAGE DES IMAGES FIXES À TON CONTINU – EXIGENCES ET DIRECTIVES” (PDF) . CCITT . Septembre 1992 . Récupéré le 12 juillet 2019 .
- ^ “Définition de “JPEG” ” . Collins English Dictionary . Récupéré le 23/05/2013 .
- ^ Haines, Richard F.; Chuang, Sherry L. (1er juillet 1992). Les effets de la compression vidéo sur l’acceptabilité des images pour le suivi d’expériences en sciences de la vie (rapport technique). NASA . NASA-TP-3239, A-92040, NAS 1.60:3239 . Récupéré le 13/03/2016 . Les niveaux de compression d’images fixes JPEG, même avec la large plage de 5: 1 à 120: 1 dans cette étude, ont donné des niveaux d’acceptabilité tout aussi élevés
- ^ un b Hudson, Graham; Léger, Alain; Niss, Birger ; Sebestyén, Istvan ; Vaaben, Jørgen (31 août 2018). “Norme JPEG-1 25 ans: raisons passées, présentes et futures d’un succès”. Journal d’imagerie électronique . 27 (4) : 1. doi : 10.1117/1.JEI.27.4.040901 . S2CID 52164892 .
- ^ “Le Format d’image JPEG expliqué” . BT.com . Groupe BT . 31 mai 2018. Archivé de l’original le 5 août 2019 . Récupéré le 5 août 2019 .
- ^ Baraniuk, Chris (15 octobre 2015). “Des protections contre la copie pourraient venir sur les JPEG” . Nouvelles de la BBC . BBC . Récupéré le 13 septembre 2019 .
- ^ “T.81 – COMPRESSION NUMÉRIQUE ET CODAGE DES IMAGES FIXES À TON CONTINU – EXIGENCES ET DIRECTIVES” (PDF) . CCITT . Septembre 1992. p. 14 . Récupéré le 12 juillet 2019 . La présente spécification spécifie deux classes de processus de codage et de décodage, les processus avec et sans perte . Celles basées sur la transformée en cosinus discrète (DCT) sont avec perte, ce qui permet d’obtenir une compression substantielle tout en produisant une image reconstruite avec une fidélité visuelle élevée à l’image source du codeur.
- ^ un bcde ” JPEG : 25 Jahre und kein bisschen alt” . Heise en ligne (en allemand). Octobre 2016 . Récupéré le 5 septembre 2019 .
- ^ un bc Ahmed, Nasir ( janvier 1991). “Comment j’ai trouvé la transformation en cosinus discrète” . Traitement numérique du signal . 1 (1): 4–5. doi : 10.1016/1051-2004(91)90086-Z .
- ^ “Qu’est-ce qu’un JPEG ? L’objet invisible que vous voyez tous les jours” . L’Atlantique . 24 septembre 2013 . Récupéré le 13 septembre 2019 .
- ^ “Archive HTTP – Statistiques intéressantes” . httparchive.org . Récupéré le 06/04/2016 .
- ^ Détection de type MIME dans Internet Explorer : types MIME téléchargés (msdn.microsoft.com)
- ^ “Format d’échange de fichiers JPEG” (PDF) . 3 septembre 2014. Archivé de l’original le 3 septembre 2014 . Récupéré le 16 octobre 2017 . {{cite web}}: CS1 maint: bot: original URL status unknown (link)
- ^ “Pourquoi JPEG 2000 n’a jamais décollé” . Institut national américain des normes . 10 juillet 2018 . Récupéré le 13 septembre 2019 .
- ^ un b Ahmed, Nasir ; Natarajan, T.; Rao, KR (janvier 1974), ” Discrete Cosine Transform “, IEEE Transactions on Computers , C-23 (1): 90–93, doi : 10.1109 / TC.1974.223784
- ^ un b Chen, Wen-Hsiung; Smith, C.; Fralick, S. (1977). “Un algorithme de calcul rapide pour la transformée discrète en cosinus”. Transactions IEEE sur les communications . 25 (9) : 1004-1009. doi : 10.1109/TCOM.1977.1093941 . ISSN 0090-6778 .
- ^ un b Chen, Wen-Hsiung; Pratt, WK (1984). “Codeur adaptatif de scène”. Transactions IEEE sur les communications . 32 (3): 225–232. doi : 10.1109/TCOM.1984.1096066 . ISSN 0090-6778 .
- ^ un bcdefg Lemos , Robert ( 23 juillet 2002). “Trouver la vérité patente dans la revendication JPEG” . CNET . Récupéré le 13 juillet 2019 .
- ^ ISO/CEI JTC 1/SC 29 (2009-05-07). “ISO/IEC JTC 1/SC 29/WG 1 – Codage des images fixes (SC 29/WG 1 Structure)” . Archivé de l’original le 2013-12-31 . Récupéré le 11/11/2009 .
- ^ un b ISO/IEC JTC 1/SC 29. “Programme de Travail, (Alloué à SC 29/WG 1)” . Archivé de l’original le 2013-12-31 . Récupéré le 07/11/2009 .
- ^ ISO. “JTC 1/SC 29 – Codage des informations audio, image, multimédia et hypermédia” . Récupéré le 11/11/2009 .
- ^ un b JPEG. “Groupe d’experts photographiques conjoints, page d’accueil JPEG” . Récupéré le 08/11/2009 .
- ^ “T.81 : Technologies de l’information – Compression numérique et codage d’images fixes à ton continu – Exigences et directives” . ITU.int . Récupéré le 07/11/2009 .
- ^ William B. Pennebaker; Joan L. Mitchell (1993). Norme de compression de données d’images fixes JPEG (3e éd.). Springer. p. 291.ISBN _ 978-0-442-01272-4.
- ^ ISO. “JTC 1/SC 29 – Codage des informations audio, image, multimédia et hypermédia” . Récupéré le 07/11/2009 .
- ^ “SPIFF, format de fichier d’échange d’images fixes” . Bibliothèque du Congrès . 30 janvier 2012. Archivé de l’original le 2018-07-31 . Récupéré le 31/07/2018 .
- ^ JPEG (2009-04-24). “JPEG XR entre dans le statut FDIS : le format d’échange de fichiers JPEG (JFIF) sera normalisé en tant que JPEG Part 5″ (Communiqué de presse). Archivé de l’original le 2009-10-08 . Récupéré le 09/11/2009 .
- ^ “Format d’échange de fichiers JPEG (JFIF)” . ECMA TR/98 1ère éd . Ecma International . 2009 . Récupéré le 01/08/2011 .
- ^ “Le brevet JPEG de Forgent” . SourceForge . 2002 . Récupéré le 13 juillet 2019 .
- ^ “Concernant les revendications de brevet récentes” . Jpeg.org . 2002-07-19. Archivé de l’original le 14/07/2007 . Récupéré le 29/05/2011 .
- ^ “JPEG et JPEG2000 – Entre querelle de brevet et changement de technologie” . Archivé de l’original le 17 août 2004 . Récupéré le 16/04/2017 . {{cite web}}: CS1 maint: bot: original URL status unknown (link)
- ^ Lemos, Robert (23 juillet 2002). “Trouver la vérité patente dans la revendication JPEG” . CNET . Récupéré le 13 juillet 2019 . Certains experts lui attribuent la création d’un type spécifique de manipulation d’image – la transformée en cosinus discrète – utilisée dans le format JPEG.
- ^ Kawamoto, Aube (22 avril 2005). “La poursuite en matière de Brevets graphiques se retourne contre Microsoft” . Nouvelles CNET . Récupéré le 28/01/2009 .
- ^ “Le Bureau des marques réexamine le brevet JPEG Forgent” . Publier.com . 3 février 2006. Archivé de l’original le 2016-05-15 . Récupéré le 28/01/2009 .
- ^ “USPTO : les déclarations les plus larges de Forgent contre la norme JPEG sont invalides” . Groklaw.net . 26 mai 2006 . Récupéré le 21/07/2007 .
- ^ “Système de codage pour réduire la redondance” . Gauss.ffii.org . Archivé de l’original le 12/06/2011 . Récupéré le 29/05/2011 .
- ^ “Revendication de brevet JPEG abandonnée” . Fondation publique des Brevets. 2 novembre 2006 . Récupéré le 03/11/2006 .
- ^ “Certificat de réexamen ex parte pour le brevet américain n ° 5 253 341” . Archivé de l’original le 2 juin 2008.
- ^ Groupe de travail. “Rozmanith : Utilisation des Brevets logiciels pour faire taire les critiques” . Eupat.ffii.org . Archivé de l’original le 16/07/2011 . Récupéré le 29/05/2011 .
- ^ “Une prime de 5 000 $ pour nommer Troll Tracker: Ray Niro veut savoir qui dit toutes ces choses désagréables à son sujet” . Law.com . Récupéré le 29/05/2011 .
- ^ Reimer, Jérémy (2008-02-05). “Chasse aux trolls : l’USPTO a demandé de réexaminer le brevet d’image large” . Arstechnica.com . Récupéré le 29/05/2011 .
- ^ Office des Brevets des États-Unis – Octroi d’un réexamen sur 5 253 341 C1
- ^ “Le juge met le brevet JPEG sur la glace” . Techdirt.com . 2008-04-30 . Récupéré le 29/05/2011 .
- ^ “La revendication unique du brevet JPEG a été rejetée (et rejetée pour faire bonne mesure)” . Techdirt.com . 2008-08-01 . Récupéré le 29/05/2011 .
- ^ Groupe de travail. “Page d’accueil de Princeton Digital Image Corporation” . Archivé de l’original le 11/04/2013 . Récupéré le 01/05/2013 .
- ^ Groupe de travail. “Article sur la décision du tribunal de Princeton concernant l’accord de licence GE” . Archivé de l’original le 2016-03-09 . Récupéré le 01/05/2013 .
- ^ “Vue d’ensemble du décodage progressif” . Réseau de développeurs Microsoft . Microsoft . Récupéré le 23/03/2012 .
- ^ Fastvideo (mai 2019). “Encodeur JPEG 12 bits sur GPU” . Récupéré le 06/05/2019 .
- ^ “Pourquoi vous devriez toujours faire pivoter les photos JPEG originales sans perte” . Petapixel.com . 14 août 2012 . Récupéré le 16 octobre 2017 .
- ^ “Format de fichier JFIF au format PDF” (PDF) .
- ^ Tom Lane (1999-03-29). “Foire aux questions sur la compression d’images JPEG” . Récupéré le 11/09/2007 . (q. 14 : “Pourquoi tous ces arguments sur les formats de fichiers ?”)
- ^ un b “Un espace colorimétrique standard par défaut pour Internet – sRGB” . www.w3.org .
- ^ un b “IEC 61966-2-1:1999/AMD1:2003 | CEI Webstore” . boutique en ligne.iec.ch .
- ^ “ISO/CEI 10918-1 : 1993(E) p.36″ .
- ^ Thomas G. Lane. “Fonctionnalités avancées : sélection des paramètres de compression” . Utilisation de la bibliothèque IJG JPEG .
- ^ Ryan, Dan (2012-06-20). Modules d’apprentissage en ligne : Série Dlr Associates . AuthorHouse. ISBN 9781468575200.
- ^ “Questions de fréquence DC / AC – Forum de Doom9” . forum.doom9.org . Récupéré le 16 octobre 2017 .
- ^ un b Phuc-Tue Le Dinh et Jacques Patry. Artefacts de compression vidéo et réduction du bruit MPEG Archivé le 14/03/2006 sur la Wayback Machine . DesignLine d’imagerie vidéo. 24 février 2006. Consulté le 28 mai 2009.
- ^ “ 3.9 bruit de moustique : forme de distorsion d’activité des bords parfois associée au mouvement, caractérisée par des artefacts en mouvement et/ou des motifs de bruit tachetés superposés sur les objets (ressemblant à un moustique volant autour de la tête et des épaules d’une personne).” UIT-T Rec. P.930 (08/96) Principes d’un système de dégradation de référence pour la vidéo Archivé le 16/02/2010 sur la Wayback Machine
- ^ Julià Minguillón, Jaume Pujol (avril 2001). “Modélisation d’erreur de quantification uniforme standard JPEG avec applications aux modes de fonctionnement séquentiel et progressif” (PDF) . Imagerie électronique . 10 (2): 475–485. Bibcode : 2001JEI….10..475M . doi : 10.1117/1.1344592 . hdl : 10609/6263 .
- ^ un b I. Bauermann et E. Steinbacj. Compression sans perte supplémentaire des images JPEG. Proc. du Picture Coding Symposium (PCS 2004), San Francisco, États-Unis, du 15 au 17 décembre 2004.
- ^ un b N. Ponomarenko, K. Egiazarian, V. Lukin et J. Astola. Compression supplémentaire sans perte d’images JPEG, Proc. du 4ème Intl. Symposium on Image and Signal Processing and Analysis (ISPA 2005), Zagreb, Croatie, pp. 117–120, 15–17 septembre 2005.
- ^ un bcd M. Stirner et G. Seelmann . Amélioration de la réduction de redondance pour les fichiers JPEG. Proc. du Picture Coding Symposium (PCS 2007), Lisbonne, Portugal, du 7 au 9 novembre 2007
- ^ un bc Ichiro Matsuda, Yukio Nomoto, Kei Wakabayashi et Susumu Itoh. Réencodage sans perte d’images JPEG à l’aide d’une prédiction intra adaptative par bloc. Actes de la 16e conférence européenne sur le traitement du signal (EUSIPCO 2008).
- ^ “Dernières versions binaires de packJPG : V2.3a” . 3 janvier 2008. Archivé de l’original le 23 janvier 2009.
- ^ J. Siragusa, DC Swift (1997). “Descripteur de données stéréoscopiques à usage général” (PDF) . VRex, Inc., Elmsford, New York, États-Unis . Archivé de l’original (PDF) le 2011-10-30. {{cite web}}: CS1 maint: uses authors parameter (link)
- ^ Tim Kemp, fichiers JPS
- ^ “Format multi-images” (PDF) . 2009. Archivé de l’original (PDF) le 2016-04-05 . Récupéré le 30/12/2015 .
- ^ “MPO2Stereo: Convertir les fichiers Fujifilm MPO en paires stéréo JPEG” , Mtbs3d.com , récupéré le 12 janvier 2010
- ^ Alessandro Ortis; Sebastiano Battiato (2015), Sitnik, Robert; Puech, William (eds.), “Une nouvelle méthode de mise en correspondance rapide pour la compression adaptative d’images stéréoscopiques” , Traitement d’ images tridimensionnelles , Traitement d’images tridimensionnelles, Mesure (3DIPM) et Applications 2015, SPIE – Traitement d’images tridimensionnelles , Measurement (3DIPM), and Applications 2015, 9393 : 93930K, Bibcode : 2015SPIE.9393E..0KO , doi : 10.1117/12.2086372 , S2CID 18879942 , récupéré le 30 avril 2015
- ^ Alessandro Ortis; Francesco Rundo; Giuseppe Di Giore; Sebastiano Battiato, Adaptive Compression of Stereoscopic Images , International Conference on Image Analysis and Processing (ICIAP) 2013 , récupéré le 30 avril 2015
- ^ “Aperçu de JPEG” . jpeg.org . Récupéré le 16/10/2017 .
- ^ “Annoncer Guetzli : Un nouvel encodeur JPEG Open Source” . Research.googleblog.com . Récupéré le 16 octobre 2017 .
- ^ “JPEG-JPEG XT” . jpeg.org .
- ^ “JPEG-JPEG XT” . jpeg.org .
- ^ “JPEG – Compression d’image de nouvelle génération (JPEG XL) Projet final d’appel à propositions” . Jpeg.org . Récupéré le 29 mai 2018 .
- ^ Alakuijala, Jyrki; van Asseldonk, Ruud; Boukortt, Sami ; Brusé, Martin ; Comşa, Iulia-Maria ; Firsching, Moritz; Fischbacher, Thomas; Kliuchnikov, Evgenii; Gomez, Sébastien ; Obryk, Robert; Potempa, Krzysztof; Rhatushniak, Alexandre ; Sneyers, Jon ; Szabadka, Zoltan; Vandervenne, Lode; Versari, Luca; Wassenberg, janvier (2019-09-06). “Architecture de compression d’image et outils de codage de nouvelle génération JPEG XL” . Dans Tescher, Andrew G; Ebrahimi, Touradj (dir.). Applications du traitement numérique des images XLII . p. 20. doi : 10.1117/12.2529237 . ISBN 9781510629677. S2CID 202785129 .
- ^ “Copie archivée” . Archivé de l’original le 22 août 2019 . Récupéré le 22 août 2019 . {{cite web}}: CS1 maint: archived copy as title (link)
- ^ un b Rhatushnyak, Alexandre; Wassenberg, Jan; Sneyers, Jon ; Alakuijala, Jyrki ; Vandevenne, Lode; Versari, Luca; Obryk, Robert; Szabadka, Zoltan; Kliuchnikov, Evgenii; Comsa, Iulia-Maria ; Potempa, Krzysztof; Brusé, Martin ; Firsching, Moritz; Khasanova, Renata; Ruud van Asseldonk; Boukortt, Sami ; Gomez, Sébastien ; Fischbacher, Thomas (2019). “Projet de comité du système de codage d’image JPEG XL”. arXiv : 1908.03565 [ eess.IV ].
- ^ “N79010 Dernier appel à propositions pour une norme de codage d’image de nouvelle génération (JPEG XL)” (PDF) . ISO/CEI JTC 1/SC 29/WG 1 (UIT-T SG16) . Récupéré le 29 mai 2018 .
Liens externes
| Wikimedia Commons a des médias liés à la compression JPEG . |
- Norme JPEG (JPEG ISO/IEC 10918-1 Recommandation ITU-T T.81) sur W3.org
- Site officiel du Groupe conjoint d’experts en photographie (JPEG)
- Format de fichier JFIF sur W3.org
- Visualiseur JPEG en 250 lignes de code Python facile à comprendre
- Exemples d’images sur toute la gamme des niveaux de quantification de 1 à 100 sur visengi.com
- Compresseur JPEG du domaine public dans un seul fichier source C++, avec un décompresseur correspondant sur code.google.com
- Code source ouvert du décodeur JPEG, copyright (C) 1995–1997, Thomas G. Lane