Qu’est-ce qu’un fichier PGM ?

Un fichier Portable Graymap est un format matriciel Netpbm dans lequel chaque pixel représente une intensité en niveaux de gris. Il utilise une structure texte ou binaire simple plutôt qu’un conteneur d’image riche en fonctionnalités.

Fonctionnement des fichiers PGM

PGM commence par un identifiant magique, les dimensions de l’image et une valeur maximale d’échantillon, suivis d’un échantillon d’intensité pour chaque pixel. Sa variante texte écrit les valeurs sous forme de texte décimal, tandis que sa variante brute utilise des données binaires compactes ; toutes deux décrivent la même grille de niveaux de gris. Ce format est utile aux points d’échange où la simplicité d’analyse compte, par exemple pour les jeux de données de test, les entrées de vision par ordinateur et l’inspection entre étapes de traitement.

Points clés

  1. P5 désigne la variante brute (binaire) et P2 la variante texte, qui écrit chaque échantillon sous forme décimale ASCII. Les champs de l’en-tête sont séparés par des caractères d’espacement et peuvent être interrompus par des commentaires allant de # jusqu’à la fin de la ligne. Dans un fichier PGM brut, un seul caractère d’espacement après la valeur maximale sépare l’en-tête de la matrice de pixels. Un fichier brut peut contenir plusieurs images à la suite, bien que la spécification précise que la plupart des outils ne lisent que la première ; un fichier texte en contient exactement une.
  2. La valeur maximale de l’en-tête, et non une profondeur de bits fixe, définit la plage des échantillons : elle doit être supérieure à 0 et inférieure à 65536, avec 0 pour le noir et la valeur maximale pour le blanc. Les échantillons bruts occupent un octet lorsque le maximum est inférieur à 256, et deux octets sinon, en commençant par l’octet de poids fort. Supposer un octet par pixel ou un ordre petit-boutiste corrompt des fichiers valides ; libjpeg v6b, par exemple, écrivait des fichiers PGM sur 16 bits en ordre petit-boutiste, contrairement à la spécification, comme l’indiquent les échanges sur la liste de diffusion des développeurs de FFmpeg. Pour une compatibilité maximale, la spécification recommande un maximum de 255, car les fichiers bruts ne pouvaient pas le dépasser avant avril 2000.
  3. Un en-tête PGM ne précise pas la relation entre les valeurs des échantillons et la lumière. La spécification les définit comme une intensité encodée avec la fonction de transfert ITU-R BT.709, cite les valeurs linéaires et la courbe sRGB comme variantes courantes, et reconnaît que de nombreux fichiers utilisent cette structure pour des entiers arbitraires. Il faut donc convenir en dehors du fichier s’il contient des niveaux de gris destinés à l’affichage, des données linéaires de capteur, une carte de profondeur ou un masque.
  4. PGM contient un seul canal, sans canal alpha, profil colorimétrique ni métadonnées structurées. Netpbm représente la transparence par un second fichier PGM utilisé comme masque, et son format PAM peut contenir les niveaux de gris et le canal alpha dans un même fichier. Aucun type de média n’est enregistré auprès de l’IANA ; image/x-portable-graymap est l’appellation habituelle.

Quand les fichiers PGM sont utiles

Utilisez PGM comme format intermédiaire pour les données de vision par ordinateur en niveaux de gris ou pour un débogage simple. Convertissez-le pour la distribution lorsque la taille du fichier, les métadonnées, la transparence ou une large prise en charge par les applications sont importantes.

Comment Transloadit vous aide avec les fichiers PGM

Le tableau des formats d’image de Transloadit, qui couvre ses Robots basés sur ImageMagick tels que /image/resize, répertorie PGM comme un format que ces Robots peuvent lire et écrire.

Le tableau indique uniquement la prise en charge des formats en lecture et en écriture. Il ne précise pas si les fichiers PGM produits utilisent la variante brute ou texte, ni comment sont traitées les valeurs maximales supérieures à 255. Faites donc passer un fichier représentatif dans votre Assembly avant de vous appuyer sur des données de plus haute précision.

Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression

Références

Transformer vos connaissances sur les médias en une chaîne de traitement opérationnelle

Reliez les téléversements, le traitement, l’IA, le stockage et la diffusion via une seule API déclarative — la pile d’encodage, la montée en charge et l’évolution constante des formats sont prises en charge pour vous.

Essayer Transloadit gratuitement