Todo sobre archivos PBM
PBM es probablemente el formato de imagen más sencillo del mundo. Se representa únicamente con ceros y unos, y cada número corresponde a un píxel. Las filas y columnas del texto determinan la posición en la imagen. Así, incluso se podrían crear imágenes con un editor de texto. Es casi como pintar sobre papel cuadriculado con un lápiz. PBM no admite compresión, ni canales alfa, ni colores. Ni siquiera tonos de gris. Simplemente puede dibujar un píxel (1) o no (0).
TLDR:
Los archivos PBM forman parte de una familia de formatos más amplia. Este formato y sus variantes siguen utilizándose actualmente, aunque no son especialmente adecuados para compartir ni para el archivo a largo plazo. Son grandes y pocos programas los admiten, pero son muy flexibles y ofrecen un gran rendimiento. Quien encuentre un archivo PBM probablemente tenga entre manos un producto intermedio o una imagen creada con fines didácticos. Y es que el formato PBM es muy adecuado para la visualización, ya que es prácticamente autoexplicativo.
La historia de los archivos PBM
El PBM fue inventado en la década de 1980 por Jef Poskanzer, un programador de Berkeley que quería resolver un problema sencillo: enviar imágenes por correo electrónico. En la década de 1980, el correo electrónico aún no estaba tan desarrollado como hoy en día. Solo se podían enviar de forma fiable caracteres ASCII; los archivos binarios, como las imágenes, a menudo se dañaban durante el envío. Así pues, Poskanzer diseñó con PBM un formato de imagen que resolvía precisamente este problema.
La estructura técnica
Una imagen PBM, en su variante básica (P1), consta exactamente de tres partes: el número mágico, las dimensiones y los datos de píxeles propiamente dichos. Opcionalmente, se pueden utilizar comentarios, por ejemplo, para el contenido.
| Componente | Ejemplo | Significado |
|---|---|---|
| Número mágico | P1 |
PBM simple (variante ASCII) |
| Comentario | # mein bild |
Opcional, introducido con # introducido |
| Ancho Altura | 24 7 |
Dimensiones en píxeles |
| Datos de trama | 0 1 1 0 ... |
1 = negro, 0 = blanco |
El siguiente ejemplo muestra una imagen completa de la documentación:
P1 # feep.pbm 24 7 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 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 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
(los 0 se muestran un poco más oscuros solo para facilitar la visualización)
Entre los ceros y los unos se distingue claramente el texto FEEP. Por lo tanto, PBM corresponde al ASCII binario ;).
Plain vs. Raw: P1 y P4
Poskanzer introdujo posteriormente una variante binaria y la convirtió en la salida estándar de las herramientas Netpbm. La variante Plain (P1) fue la primera históricamente, pero fue sustituida debido a su mucho mayor consumo de espacio («lavishly wasteful» — «extremadamente derrochadora»).
| Característica | PBM Plain (P1) |
Raw PBM (P4) |
|---|---|---|
| Datos de píxeles | Caracteres ASCII 0 y 1 |
Bits, empaquetados a 8 por byte |
| Legible para humanos | Sí, completamente | Solo el encabezado |
| Espacio de almacenamiento por píxel | ~2 bytes (caracteres + espacios en blanco) | 1/8 byte (1 bit) |
| Longitud máxima de línea | Se recomiendan 70 caracteres | Sin límite |
| Imágenes por archivo | Exactamente 1 | Se permiten varias (desde julio de 2000) |
Hoy en día, toda la familia PBM, y en particular PPM, se utiliza a menudo como formato intermedio. En el caso de uso más sencillo y breve, solo existe en una tubería entre dos programas, es decir, solo durante el tiempo de ejecución. Esto nos lleva a las ventajas del formato:
Ventajas de los archivos PBM
- Sin dependencias: sin decodificador, sin biblioteca. Unas pocas líneas de C, Python o Shell bastan para leer y escribir.
- Filosofía Unix: las herramientas PBM son filtros. Se conectan entre sí mediante tuberías:
cat bild.pbm | pbmtopgm | ppmtojpeg > out.JPG. Más de 330 programas del paquete Netpbm funcionan así. - Pedagogía: quien quiera entender el procesamiento de imágenes (no la edición de imágenes), lo ideal es que empiece con PBM.
- Robustez: ni un encabezado dañado, ni un fragmento corrupto. El contenido es tan escaso que es casi imposible que algo salga mal. Y si se daña un bit, la imagen sigue siendo legible.
La familia PBM
PBM no está solo. A finales de 1988, Poskanzer amplió la familia con PGM (Portable Gray Map, escala de grises, número mágico P2/P5) y PPM (Portable Pixel Map, color RGB, P3/P6). Juntos forman el PNM: Portable Any Map. Más tarde se añadió el PAM (P7) como extensión universal.
PBM es la base y también el representante «más radical» de la familia, y solo ofrece dos posibilidades: luz encendida o luz apagada; píxel presente o ausente. Sin color, sin transparencia, sin tonos de gris. Solo una imagen en blanco y negro legible directamente en el código fuente.
Pbmplus y Netpbm
Poskanzer mantuvo Pbmplus hasta su última publicación a finales de 1991. A partir de entonces, el proyecto dejó de recibir mantenimiento. En 1993 surgió Netpbm como una bifurcación de la comunidad, básicamente un reempaquetado de Pbmplus con correcciones de errores y ampliaciones de desarrolladores de todo el mundo. Desde 1999, Netpbm está a cargo de Bryan Henderson y hoy en día se incluye en prácticamente todas las distribuciones de Linux.
PBM como tal ha quedado obsoleto. Los servidores de correo pueden manejar sin problemas archivos JPG, PNG e incluso vídeos. Sin embargo, la variante «colorida» ppm se utiliza a diario, en tuberías, en sistemas Linux. A PBM le queda la parte educativa: se explica de maravilla, se comprende de maravilla y —así de sencillo es PBM— se explica en papel cuadriculado.
Fuentes
Netpbm: especificación del formato PBM
Historia de Netpbm: artículo muy recomendable sobre la historia de pbm
Wiki: Jef Poskanzer
Convertir, abrir y editar archivos PBM
Detalles sobre los archivos PBM
- Software para abrir archivos PBM
- Software para editar archivos PBM
- Tipo MIME para PBM
No hay comentarios