JPEG
Dans le calculant , JPEG (JAY-cheville prononcée de ; ˈdʒeɪpɛg ) est une méthode utilisée généralement de compression pour des images photographiques. Le JPEG de nom représente le groupe d'experts photographique de joint , le nom du comité qui a créé la norme. Le groupe a été organisé dans le 1986 , publiant une norme dans le 1992 , qui a été approuvé dans le 1994 comme OIN 10918-1. Le JPEG est distinct de MPEG (groupe d'experts d'image mobile ), qui produit des arrangements de compression pour la vidéo.
La norme de JPEG spécifie le codec , qui définit comment une image est comprimée dans un jet des bytes et décomprimé de nouveau dans une image, et le format de fichier employé pour contenir ce jet. La méthode de compression est habituellement la compression de lossy , signifiant qu'une certaine qualité visuelle est perdue dans le processus, bien qu'il y ait les variations sur le JPEG standard de ligne de base qui sont sans perte. Il y a également un " de entrelacé par ; " progressif de JPEG ; composer, dans lequel des données sont comprimées dans les passages multiples d'un détail progressivement plus élevé. C'est idéal pour les grandes images qui seront montrées tandis que téléchargement au-dessus d'un raccordement lent, permettant une prévision raisonnable après réception seulement d'une partie des données. Cependant, JPEGs progressif ne sont pas comme largement soutenu.
Le format de fichier est connu en tant que « format d'échange de JPEG », comme spécifique en annexe B de la norme. Ceci est souvent confondu avec le format , une version minimale d'échange (JFIF) de '' dossier '' de JPEG de du format d'échange de JPEG qui a été délibérément simplifié de sorte que c'ait pu être largement mis en application et devenu ainsi la norme de fait.
La raison de cette version simplifiée était que le format d'échange de JPEG souffre de trois points faibles qui l'empêchent d'être facilement compréhensibles et mis en application :
Définition d'espace chromatique
Définition composante d'enregistrement de sous-prélèvement
Définition d'allongement de Pixel En plus de JFIF, d'autres normes ont évolué pour adresser ces points faibles, y compris « le format de fichier échangeable » (Exif) d'image de et la couleur de du ICC profile .
Des dossiers d'image qui utilisent la compression de JPEG s'appellent généralement le " ; Files" de JPEG ;. La plupart des logiciels d'édition d'image qui écrivent à un " ; File" de JPEG ; créent réellement un dossier dans le format du JFIF .
La prolongation de dossier la plus commune pour ce format est .jif sont également employés. Il est également possible que des données de JPEG soient enfoncées dans d'autres types de dossier, tels que des images de format de tiff .
JPEG/JFIF est le format plus utilisé pour stocker et transmettre des photographies sur le World Wide Web . Pour cette application, JPEG/JFIF est loin supérieur à GIF , qui utilise une palette avec une limite maximum de 256 couleurs distinctes (la plupart des photographies de couleur contiennent beaucoup de milliers de couleurs distinctes). JPEG/JFIF est également preferred à png , qui produit des dossiers d'image beaucoup plus grands pour ce type d'image dû à sa compression sans perte.
L'algorithme de compression de JPEG est le pas comme bien adapté pour des dessins au trait et d'autres graphiques textuels ou iconiques, et ainsi les formats de png et de GIF sont preferred pour ces types d'images.
Le type de supports de MIME pour le JPEG est l'image de /JPEG (définie dans RFC 1341).
Codec de JPEG
Bien qu'un dossier de JPEG puisse être codé
dans diverses manières, le plus généralement il est fait avec le codage de JFIF.
Le procédé de codage se compose de plusieurs étapes : La représentation des couleurs dans l'image est convertie du RVB en YCbCr , se composant d'un composant de luma (y), représentant l'éclat, et deux composants de chroma, représentant la couleur. Cette étape est parfois sautée.
La résolution des données de chroma est réduite, habituellement par un facteur 2. Ceci reflète le fait que l'oeil est moins sensible aux détails fins de couleur qu'aux détails fins d'éclat. L'image est coupée en blocs de 8× ; 8 Pixel, et pour chaque bloc, chacune des données de Y, de Cb, et de Cr subit un le cosinus que discret transforment (DCT). Un DCT est semblable à une transformée de Fourier dans le sens qu'il produit un genre de spectre de fréquence spatiale. Les amplitudes des composants de fréquence sont quantifiés par . La vision humaine est beaucoup plus sensible à de petites variations de couleur ou d'éclat au-dessus des vastes zones que la force des variations à haute fréquence d'un éclat. Par conséquent, l'importance des composants à haute fréquence sont stockées avec une exactitude inférieure que les composants de basse fréquence. L'arrangement de qualité des affects d'encodeur (par exemple 50% ou 95%) dans quelle mesure la résolution de chaque composant de fréquence est réduite. Si un arrangement de qualité excessivement devaient être employés, les composants à haute fréquence seraient jetés tout à fait. Les données en résultant pour tout le 8× ; 8 blocs est encore comprimés avec un algorithme sans perte, une variante du codage de Huffman de . Les inverses de processus de décodage ces étapes. Dans le reste de cette section, le codage et les processus de décodage sont décrits en plus détail.
Codage
Plusieurs des options dans la norme de JPEG ne sont pas utilisées généralement, et comme mentionné ci-dessus, la plupart des utilisations de logiciel d'image le format plus simple de JFIF en créant un dossier de JPEG, qui spécifie notamment la méthode de codage. Voici une courte description d'une des méthodes plus communes de codage une fois appliquée à une entrée qui a 24 bits de par Pixel (huit de chacun de rouge, vert, et bleu de ). Cette option particulière est une méthode de la compression de données de lossy .
Transformation d'espace chromatique
D'abord, l'image devrait être convertie du RVB en espace chromatique différent appelé le YCbCr . Elle a trois composants Y, Cb et Cr : le composant de Y représente l'éclat d'un Pixel, les composants de Cb et de Cr représentent le Chrominance (couper en composants bleus et rouges). C'est le même espace chromatique qu'employé par la télévision en couleur numérique aussi bien que la vidéo numérique comprenant le DVDs visuel , et est semblable à la manière que la couleur est représentée dans la vidéo et le MAC analogues du pal mais pas par le analogue NTSC , qui emploie l'espace chromatique semblable du YIQ . La conversion d'espace chromatique de YCbCr permet une plus grande compression sans effet significatif sur la qualité perceptuelle d'image (ou la plus grande qualité perceptuelle d'image pour la même compression). La compression est plus efficace comme information d'éclat, qui est plus importante pour la qualité perceptuelle certaine de l'image, est confinée à un canal simple, représentant plus étroitement le système visuel humain. Cette conversion en YCbCr est spécifiée dans la norme de JFIF, et devrait être exécutée pour que le dossier en résultant de JPEG ait la compatibilité maximum. Cependant, quelques réalisations de JPEG dans le " ; le " le plus de haute qualité ; le mode n'appliquent pas cette étape et ne maintiennent pas à la place l'information de couleur dans le modèle de couleur du RVB , où l'image est stockée dans des canaux séparés pour la luminance de rouge, verte et bleue. Ceci a comme conséquence moins de compression efficace, et ne serait pas probablement employé si la taille de fichier de fichier étaient une issue.
Downsampling
En raison des densités des récepteurs de couleur et éclat-sensibles dans l'oeil humain, humains peut voir un détail considérablement plus fin dans l'éclat d'une image (le composant de Y) que dans la couleur d'une image (les composants de Cb et de Cr). Using cette connaissance, des encodeurs peuvent être conçus pour comprimer des images plus efficacement. La transformation dans le modèle de couleur de YCbCr permet la prochaine étape, qui est de réduire la résolution spatiale des composants de Cb et de Cr (appelés le " ; Downsampling " ou " ; " du sous-prélèvement de chroma de ;). Les rapports auxquels downsampling peut être fait sur le JPEG sont 4:4 de : 4 (aucun downsampling), 4:2 de : 2 (réduire par le facteur de 2 dans la direction horizontale), et le plus généralement 4:2 de : 0 (réduire par le facteur de 2 dans des directions horizontales et verticales). Pour le reste du processus de compression, Y, Cb et Cr sont traités séparément et d'une façon très semblable. Downsampling les composants de chroma sauve 33% ou 50% de l'espace pris par l'image sans affecter rigoureusement la qualité perceptuelle d'image.
Division de bloc
Après le sous-prélèvement , chaque canal doit être coupé en blocs 8×8 (de Pixel). Si les données pour un canal ne représentent pas un nombre de nombre entier de blocs puis l'encodeur doit remplir secteur restant des blocs inachevés d'une certaine forme de données factices :
remplir Pixel de bord de couleur fixe (typiquement noir) crée les objets façonnés foncés le long de la partie évidente de la frontière
la répétition des Pixel de bord est une technique commune mais non-optimale qui évite la frontière évidente, mais elle crée toujours des objets façonnés avec la colorimétrie des cellules remplies
une meilleure stratégie est de remplir Pixel using les couleurs qui préservent les coefficients de DCT des Pixel évidents, au moins pour les de basse fréquence (par exemple remplir de couleur moyenne de la partie évidente préservera le premier coefficient de C.C, mais le meilleur ajustage de précision les deux prochains coefficients à C. produira des résultats bien meilleurs avec les bords moins évidents des cellules 8×8 le long de la frontière).
Après, chaque composant (Y, Cb, Cr) de chaque bloc 8×8 est converti en représentation du domaine fréquentiel , using un type-II normal et bidimensionnel le cosinus que discret transforment (DCT).
Comme exemple, si un tel subimage 8×8 à 8 bits est :
La prochaine étape est de transformer le subimage d'une gamme positive à une concentrée sur zéro. Pour une image à 8 bits chaque Pixel a 256 valeurs possibles : . Pour concentrer sur zéro il est nécessaire de soustraire par moitié du nombre de valeurs possibles, ou 128. = de
La soustraction de 128 de chaque valeur de Pixel rapporte des valeurs de Pixel sur le
La prochaine étape est de prendre le DCT bidimensionnel, qui est donné par :
là où
le est la fréquence spatiale horizontal, pour le .
le est la fréquence spatiale verticale, pour le .
est un
de normalisation de de fonction le est la valeur de Pixel au
Le est le coefficient de DCT au
Si nous ci-dessus, et puis exécutons cette transformation sur notre matrice en rond au nombre entier le plus proche, nous obtenons
Noter la valeur plutôt grande du coin dessus-gauche. C'est le coefficient de C. Les 63 coefficients demeurants s'appellent les coefficients à C. Le DCT augmente temporairement la peu-profondeur de l'image, puisque les coefficients de DCT d'image à 8 bits/composante prennent à 11 ou 12 bits (selon la fidélité du calcul de DCT) pour stocker. Ceci peut forcer le codec pour employer temporairement les casiers de 16 bits pour tenir ces coefficients doublant la taille formelle de la représentation d'image en ce moment. L'avantage du DCT est sa tendance d'agréger la majeure partie du signal dans un coin du résultat, comme peut être vu ci-dessus. L'étape de quantification à suivre accentue cet effet tout en simultanément ramenant la taille des coefficients de DCT à 8 bits ou à moins, ayant pour résultat un signal avec une grande région de remorquage contenant des zéros que l'étape d'entropie peut simplement jeter. L'augmentation provisoire de la taille n'est pas à ce stade un souci d'exécution pour la plupart des réalisations de JPEG, parce qu'en général seulement une partie très petite de l'image est stockée sous la pleine forme de DCT à un moment donné pendant le codage ou processus de décodage.
Quantification
L'oeil humain est bon pour voir de petites
différences dans l'éclat au-dessus relativement des vastes zones, mais pas aussi bon pour distinguer la force exacte d'une variation à haute fréquence d'éclat. Ce fait permet à on de partir avec réduire considérablement la quantité de
l'information dans les composants à haute fréquence. Ceci est fait en divisant simplement chaque composant dans le
domaine de fréquence par une constante pour ce composant, et en arrondissant alors au nombre entier le plus proche. C'est l'opération principale de lossy dans le processus entier. En raison de ceci, c'est typiquement
la caisse que plusieurs des composants plus élevés de fréquence sont arrondi à zéro, et beaucoup du repos deviennent de petits nombres positifs ou négatifs, qui prennent à beaucoup peu de peu au magasin.
Une matrice commune de quantification de est :
Les coefficients à quantification de DCT sont calculés avec
là où est les coefficients unquantized de DCT ; est la matrice de quantification ci-dessus ; et est les coefficients à quantification de DCT. (Note que ce n'est dans le aucune multiplication de Matrix de de la manière .)
Using cette matrice de quantification avec la matrice de coefficient de DCT des résultats ci-dessus dans :
Par exemple, using −415 (le coefficient de C.C) et l'arrondissage au nombre entier le plus proche
voient également :
du codage d'entropie de Le codage d'entropie est un formulaire spécial de la compression de données sans perte . Il implique d'arranger les composants d'image dans un " ; zigzag" ; commander utiliser l'algorithme du codage (RLE) de Courir-longueur de qui groupe les fréquences semblables ensemble, en insérant des zéros de codage de longueur, et puis using le codage de Huffman de sur ce qui est laissé.
La norme de JPEG laisse également, mais n'exige pas, l'utilisation du codage arithmétique , qui est mathématiquement supérieur au codage de Huffman. Cependant, ce dispositif est rarement employé pendant qu'il est couvert par les brevets et parce qu'il est beaucoup plus lent pour coder et décoder comparé au codage de Huffman. Le codage arithmétique rend typiquement des dossiers environ 5% plus petits.
L'ordre de zigzag pour les coefficients ci-dessus quantifiés sont montrés ci-dessous. (Le format montré est juste pour la facilité de l'arrangement/du visionnement.)
Taux et objets façonnés de compression
Le taux de compression en résultant peut être varié selon les besoins en étant plus ou moins agressif dans les diviseurs utilisés dans la phase de quantification. Dix à une compressions ont habituellement comme conséquence une image qui ne peut pas être distinguée par l'oeil de l'original. 100 à une compressions sont habituellement possibles, mais regarderont distinctement artifacted par comparé à l'original. Le niveau approprié de la compression dépend de l'utilisation à laquelle l'image sera mise.
Ceux qui emploient le World Wide Web peuvent être au courant des irrégularités connues sous le nom d'objets façonnés de compression de qui apparaissent dans des images de JPEG. Ce sont dus à l'étape de quantification de l'algorithme de JPEG. Ils sont particulièrement apparents autour des yeux dans les images des visages. Ils peuvent être réduits en choisissant un niveau plus bas de la compression ; ils peuvent être éliminés en sauvant une image using un format de fichier sans perte du , cependant pour des images photographiques que ceci aura habituellement comme conséquence une plus grande taille de fichier de fichier. Les objets façonnés de compression rendent JPEGs de basse qualité inacceptable pour stocker le Heightmaps les images créées avec des programmes de technique de tracé de rayons pour avoir des formes blocky apparentes sur le terrain.
Quelques programmes permettent à l'utilisateur de varier la quantité par laquelle les différents blocs sont comprimés. Une compression plus forte est appliquée aux secteurs de l'image qui montrent peu d'objets façonnés. De cette façon il est possible de réduire manuellement la taille de fichier de fichier de JPEG avec moins de perte de qualité.
Depuis les résultats toujours d'étape de quantification du dans une perte d'information, la norme de JPEG est toujours un codec de compression de lossy. (L'information est perdue dans la quantification et l'arrondissage des nombres à point mobile.) Même si la matrice de quantification est un Matrix de ceux , l'information sera encore perdue dans l'étape de arrondissage.
Décodage
Le décodage pour montrer l'image se compose faire
tout le ce qui précède à l'envers.
Prenant la matrice de coefficient de DCT (après avoir ajouté la différence du coefficient de C.C en arrière dedans)
et prenant le produit d'entrée-pour-entrée de avec la matrice de quantification des résultats ci-dessus dedans
ce qui ressemble étroitement à la matrice originale de coefficient de DCT pour la partie dessus-gauche. La prise du DCT inverse (type-III DCT) a comme conséquence une image avec des valeurs (décalées toujours vers le bas par 128)
et additionnant 128 à chaque entrée
C'est le subimage non comprimé et peut être comparé au subimage original (voir également les images vers la droite) en prenant les résultats de différence (− original non comprimé) en valeurs d'erreur
avec moyen absolu erreur de environ 5 valeur par Pixel (c.,