Je sais qu'une image 24 bits consacre 8 bits chacune pour R, G et B. Est-ce juste pour l'espace colorimétrique RVB. Dans l'espace colorimétrique YCbCr pour une image JPEG 24 bits, comment sont répartis les bits?
Je sais qu'une image 24 bits consacre 8 bits chacune pour R, G et B. Est-ce juste pour l'espace colorimétrique RVB. Dans l'espace colorimétrique YCbCr pour une image JPEG 24 bits, comment sont répartis les bits?
Réponses:
Il existe quelques formats pour YCbCr. de manière générale, l'œil est plus sensible aux changements de luminance (Y, luminosité) qu'aux changements de chrominance (Cb, Cr, couleur). Ainsi, il est possible d'effacer certaines informations de chrominance tout en conservant la qualité de l'image.
Ainsi, le format le plus "cher" est 4: 4: 4, où pour chaque composant luma (Y) il y a 1 différence rouge (Cr) et une différence bleue (Cb).
Ensuite, en appliquant le principe que j'ai mentionné, il y a 4: 2: 2 où pour chaque 2 composantes Y il y a 1 Cb et 1 Cr. Et cela va encore plus loin en 4: 1: 1 et 4: 2: 0, etc. Plus d'infos ici .
Un JPEG peut commencer avec 8 bits par canal R, G et B, mais lorsqu'il est stocké dans le JPEG, il est stocké très différemment, où il n'y a pas de "profondeur de bit" réelle mais à la place, les valeurs sont stockées sous forme de coefficients de fréquence d'une précision donnée.
En JPEG, ce qui est plus pertinent, c'est le taux de quantification , qui affecte la quantité d'informations jetées pendant la phase de quantification de la compression et donc la précision de chaque coefficient. Ce taux de quantification est défini par le paramètre "qualité" lorsque vous enregistrez un JPEG dans Photoshop. Cela n'est pas lié à la profondeur de bits comme dans une image raster, et vous pourriez même dire qu'une image JPEG n'a pas de profondeur de bits lorsqu'elle est au format JPEG, bien que les encodeurs / décodeurs JPEG commencent par / se terminent par 24 bits. image raster.
L'autre facteur majeur pertinent pour enregistrer un JPEG est le type de sous-échantillonnage de chrominance . Dans un JPEG, vous avez la possibilité de diviser par deux la résolution horizontale, ou à la fois horizontale et verticale, des canaux de couleur (Pr et Pb) par rapport au canal de luminance (luminosité). Lors de la décompression, les canaux de couleur sont interpolés et dans la plupart des sujets photographiques , cela ne fait pas une énorme différence.
Voici un résumé approximatif de la façon dont une image est transformée en JPEG.
Les valeurs RVB sont converties en valeurs Y, Pb, Pr. L'espace colorimétrique YPbPr est mieux adapté à une compression efficace car il conserve les informations de luminance, qui contiennent le plus de détails, dans un seul canal. Cette conversion est une simple opération arithmétique parfaitement réversible, sauf en cas d'erreur d'arrondi.
Si vous utilisez un sous-échantillonnage de chrominance (en d'autres termes, en utilisant autre chose que le mode 4: 4: 4), alors la résolution verticale et / ou horizontale des canaux Pb et Pr uniquement est divisée par deux. Ainsi, ces canaux auront des dimensions de pixels différentes du canal de luminance. Cela entraîne une perte permanente de résolution dans les canaux de couleur.
Pour chaque canal, l'image est divisée en blocs de 8 pixels par 8 pixels, ce qui donne 64 valeurs linéaires pour chacun de ces blocs dans chaque canal. Si un canal n'est pas un multiple de 8 pixels dans l'une ou l'autre dimension, alors les pixels de bord sont répétés (et seront rejetés lors de la décompression - ainsi la compression JPEG est toujours plus efficace avec des dimensions qui sont des multiples de 8 pixels, ou 16 si vous factorisez dans le sous-échantillonnage de chrominance).
Les 64 valeurs de chaque bloc subissent une transformation du domaine spatial vers le domaine fréquentiel, dans ce cas appelé une transformation cosinus discrète. Vous vous retrouvez avec 64 coefficients, chacun représentant l'amplitude d'une carte de fréquence particulière sur la zone prise par ce bloc. La première valeur est la fréquence la plus basse qui est effectivement la valeur moyenne de tous les pixels, jusqu'aux dernières valeurs qui décrivent la composante de fréquence la plus élevée du bloc. Les valeurs antérieures s'écartent toutes beaucoup plus et sont plus importantes pour l'apparence de l'image finale que les valeurs ultérieures d'un bloc. Cette opération est parfaitement réversible tant que vous utilisez suffisamment de précision.
Ensuite, il y a l'étape de quantification, où chacun des 64 coefficients obtenus à l'étape précédente est divisé par un certain nombre (appelé facteur de quantification), et le reste est rejeté. C'est là que la précision des échantillons est le plus affectée, mais c'est là que vous obtenez les énormes économies d'espace de JPEG par rapport à la compression sans perte. Étant donné que tout est dans le domaine fréquentiel depuis la transformation précédente, cette perte de précision fait de son mieux pour préserver la qualité d'image perceptuelle que de simplement réduire la profondeur de bit / précision des pixels avant cette transformation. L'inverse de cette procédure consiste simplement à multiplier par le même nombre que vous avez divisé les coefficients, mais bien sûr, puisque vous avez jeté les restes, vous vous retrouvez avec moins de précision des coefficients. Il en résulte une perte de qualité permanente,
Après cette quantification, il est typique que bon nombre des coefficients ultérieurs et moins significatifs soient nuls, ils sont donc supprimés. Ensuite, une routine de codage de longueur variable (sans perte) code tous les coefficients restants de manière efficace, même si chacun peut utiliser un nombre différent de bits.
Il est impossible de dire qu'un certain facteur de quantification équivaut à une certaine profondeur de bits car la quantification ne donne pas de bandes comme lorsque vous réduisez la profondeur de bits, mais donne plutôt une perte de perception globale en détail, en commençant par les parties où vous le remarqueriez. moins parce qu'il est d'une si faible amplitude pour sa fréquence.
La représentation de la chrominance (Cb Cr) dans des canaux séparés de la luma (Y) a un autre effet positif sur la compression. La plupart des informations visibles se trouvent dans le canal luma. Les yeux humains tolèrent à la fois une résolution spatiale inférieure et une quantification plus agressive dans les canaux de chrominance. Ainsi, une image compressée de manière agressive peut finir par consommer environ 10% de l'espace fichier pour la chrominance, et le reste pour la luminance, tout en restant décente.
À la fin de la journée, c'est toujours une compression avec perte.
Environ 8 bits pour chaque canal, mais il existe plusieurs façons légèrement différentes de le faire. Les détails sont donnés dans l'article Wikipedia sur YCbCr .