stringtranslate.com

PCX

PCX , acrónimo de PiCture eXchange , es un formato de archivo de imagen desarrollado por la ahora extinta ZSoft Corporation de Marietta, Georgia , Estados Unidos . Fue el formato de archivo nativo de PC Paintbrush y se convirtió en uno de los primeros estándares de imágenes de DOS ampliamente aceptados , aunque desde entonces ha sido reemplazado por formatos de imagen más sofisticados, como BMP , JPEG y PNG . Los archivos PCX almacenan comúnmente imágenes indexadas por paleta que van desde 2 o 4 colores hasta 16 y 256 colores, aunque el formato se ha ampliado para registrar también imágenes de color verdadero (24 bits). [2]

Formatos de imagen PCX

PCX fue diseñado durante el desarrollo inicial del hardware de pantalla de PC y la mayoría de los formatos que admitía ya no se utilizan. La siguiente tabla muestra una lista de los formatos PCX más utilizados. Es posible que los programas de edición de imágenes actuales no puedan leer archivos PCX compatibles con hardware más antiguo.

PCX es compatible con el software de procesamiento de imágenes más común, incluidos ACDSee , FastStone , GIMP , ImageMagick , IrfanView , LView , Netpbm , PaintShop Pro , Photoshop , Visio , PMview , XnView y GraphicConverter . [3] [4] En la versión 2.1.4, FFmpeg podía codificar y decodificar los formatos de píxeles PCX rgb24, rgb8, bgr8, rgb4_byte, bgr4_byte, gray, pal8 y monob . [5]

Existe una versión de PCX de varias páginas, utilizada por algunos programas de gestión de documentos y fax , con extensión de archivo .dcx. Un archivo DCX consta de un encabezado que presenta un conjunto de archivos PCX siguientes. [6]

Formato de archivo PCX

Los archivos PCX fueron diseñados para usarse en computadoras compatibles con IBM y siempre usan el orden de bytes little endian . Un archivo PCX tiene tres secciones principales, en el siguiente orden

  1. Encabezado de 128 bytes
  2. datos de imagen
  3. (opcional) Paleta de 256 colores

El encabezado del archivo PCX contiene un byte identificador (valor 10), un número de versión, dimensiones de la imagen, 16 colores de paleta, número de planos de color, profundidad de bits de cada plano y un valor para el método de compresión. Los números de versión de PCX van de 0 a 5; esto originalmente denotaba la versión del programa PC Paintbrush utilizado para crear el archivo PCX. El encabezado siempre tiene espacio para 16 colores, aunque la cantidad de colores utilizados depende de la profundidad de bits de la imagen. [ aclaración necesaria ] El encabezado está compuesto por 18 campos: [7] [2]

Todos los archivos PCX utilizan el mismo esquema de compresión y el valor de compresión siempre es 1. No se han definido otros valores y no hay archivos PCX sin comprimir. Una fuente afirma que se permite el valor 0 (sin comprimir), pero no hay mucho software que lo admita . [8]

Disposición de los datos de la imagen

Los datos de imagen PCX se almacenan en filas o líneas de escaneo en orden descendente. Si la imagen tiene varios planos, estos se almacenan por plano dentro de la fila, de modo que todos los datos rojos de la fila 0 van seguidos de todos los datos verdes de la fila 0, luego todos los datos azules y luego los datos alfa. Este patrón se repite para cada línea, como se muestra en la siguiente tabla:

Cuando una imagen tiene menos de 8 bits por píxel, cada línea se rellena hasta el siguiente límite de byte par. [7] Por ejemplo, si una imagen tiene 1 plano de datos de 1 bit (monocromo) con un ancho de 22 píxeles, cada fila tendrá 4 bytes de largo, con 32 bits por fila y 10 bits sin usar.

Compresión de datos de imagen

Los datos de imagen PCX se comprimen mediante codificación por longitud de ejecución (RLE), un algoritmo de compresión simple sin pérdida que fusiona una serie de tres o más bytes consecutivos con valores idénticos en un par de dos bytes. Los dos bits más significativos de un byte se utilizan para determinar si los datos dados representan un solo píxel de un índice de paleta o valor de color determinado, o un par RLE que representa una serie de varios píxeles de un solo valor:

  1. Si ambos bits son 1, el byte se interpreta como la longitud de ejecución. Esto deja 6 bits para el valor de longitud de ejecución real, un rango de 0 a 63.
  2. En cualquier otro caso, el byte se interpreta como un único valor de píxel. Esto deja todos los valores para los que el bit 7 y el bit 8 no son 1 al mismo tiempo. Esto permite que todos los valores inferiores a 192 se codifiquen en un único byte.

Debido al uso de los dos bits más significativos como indicadores, los valores de píxel de 192 a 255 (con su bit más significativo ya establecido) deben almacenarse en un par de bytes RLE, incluso cuando solo aparecen uno o dos píxeles seguidos, mientras que los índices de color de 0 a 191 pueden almacenarse directamente o en pares de bytes RLE (lo que sea más eficiente en términos de espacio); por lo tanto, la relación de compresión real podría optimizarse con una clasificación adecuada de las entradas de la paleta, aunque esto no es factible cuando el archivo debe compartir su paleta de colores con otras imágenes. Por ejemplo, una paleta podría optimizarse con los colores más utilizados en las posiciones de paleta 0 a 191 y los colores menos comunes asignados al cuarto restante de la paleta.

Otra ineficiencia del algoritmo RLE es que permite almacenar fragmentos con una longitud de 0, lo que permite espacios en blanco en el archivo. Esto permitió que los archivos PCX se descomprimieran un poco más rápido [ ¿cómo? ] en los procesadores para los que originalmente estaba destinado. [ contradictorio ]

El algoritmo de compresión PCX requiere muy poca potencia de procesador o memoria para su aplicación, lo que supuso una preocupación importante para los sistemas informáticos cuando fue diseñado. Los algoritmos de compresión utilizados por los formatos de imagen más nuevos son más eficientes a la hora de comprimir imágenes como fotografías y gráficos difuminados o complejos.

Paleta de colores

Un archivo PCX tiene espacio en su encabezado para una paleta de 16 colores. Cuando el hardware VGA de 256 colores estuvo disponible, no había suficiente espacio para la paleta en un archivo PCX; ni siquiera los 54 bytes sin usar después del encabezado serían suficientes. La solución elegida fue colocar la paleta al final del archivo, junto con un byte marcador para confirmar su existencia.

Si un archivo PCX tiene una paleta de 256 colores, se encuentra a 768 bytes del final del archivo. En este caso, el valor en el byte que precede a la paleta debe ser 12 (0x0C). La paleta se almacena como una secuencia de triples RGB; su longitud utilizable está definida por la cantidad de colores en la imagen. Los valores de color en una paleta PCX siempre utilizan 8 bits, independientemente de la profundidad de bits de la imagen.

Referencias

  1. ^ .pcx Tipo MIME no registrado en IANA
  2. ^ por James D. Murray; William vanRyper (abril de 1996). Enciclopedia de formatos de archivos gráficos, segunda edición . O'Reilly . ISBN 1-56592-161-5. Consultado el 7 de marzo de 2014 .
  3. ^ Nir Sofer. "Extensión .pcx" . Consultado el 12 de enero de 2014 .
  4. ^ "Tipo de archivo: Microsoft PaintBrush Bitmap Graphic". Asociación de archivos de Windows . Microsoft . 2013. Archivado desde el original el 14 de marzo de 2014 . Consultado el 14 de marzo de 2014 .
  5. ^ "Formatos de imagen". Documentación general de FFmpeg . 2014. Consultado el 23 de febrero de 2014 .
  6. ^ "Extensión de archivo .DCX". fileinfo.com. 19 de febrero de 2010. Consultado el 14 de marzo de 2014 .
  7. ^ ab Dean Ansley (1991). "Manual de referencia técnica del formato de archivo PCX de ZSoft". ZSoft Corporation. Archivado desde el original el 14 de marzo de 2014. Consultado el 14 de marzo de 2014 .
  8. ^ "Formato PCX". ModdingWiki. 23 de junio de 2012. Consultado el 14 de marzo de 2014 .