Interchange File Format (IFF), es un formato de archivo originalmente introducido por la compañía Electronic Arts en 1985 (en cooperación con Commodore Amiga) con el objetivo de facilitar la transferencia de datos entre programas de software producidos por empresas diferentes.
Los ficheros IFF no tienen una extensión definida. La mayoría de archivos con extensión .iff son archivos ILBM, nombrados de manera incorrecta ya que este tipo de archivos son los archivos IFF más comunes y la mayoría asumen que es el único tipo de archivos referidos a este estándar (en la muchos sistemas que trabajan con archivos IFF, las extensiones de archivos no son importantes).
Un archivo IFF está compuesto de chunks o bloques de datos. Cada chunk comienza con lo que la especificación llama como "Type ID" (en español, Identificación de Tipo). Esto viene a ser lo que en entornos de Macintosh es llamado OSType y lo que los desarrolladores de Windows llamarían FourCC). A continuación de este identificador hay un número entero de 32 bits sin signo (todos los enteros en los archivos IFF son de tipo big-endian) especificando el tamaño de los datos subsiguientes (el contenido del chunk) en bytes. Mediante esta técnica, que hace que el estándar incluya longitudes definidas para cada chunk, es posible saltar determinados bloques de datos que no importan o que no son necesarios procesar mientras se está analizando el archivo.
Existen una serie de chunks de grupo predefinidos con los identificadores ‘FORM’, ‘LIST’ y ‘CAT ’. El chunk FORM es como una estructura de registros, conteniendo un identificador de tipo (indicando el tipo de registro) seguido de bloques de datos anidados que especifican los campos del registro. El de tipo LIST es una estructura que contiene una serie de chunks de propiedades ‘PROP’ así como una serie de bloques anidados a aquellos para que estas propiedades son de aplicación. El tipo CAT es simplemente una colección de chunks anidados sin una semántica definida. Los chunks de grupo pueden contender asimismo otros chunks de grupo, dependiendo de las necesidades de la aplicación. Los chunks de grupo, al igual que sus equivalentes más simples, contienen un elemento que especifica la longitud. Por lo tanto, saltar un grupo de datos puede efectuarse de una manera muy simple mediante una operación seek() de tipo Unix.
Los chunks deben comenzar en offsets de archivo pares, ya que se beneficia de los orígenes del IFF en el procesador Motorola 68000, que no puede direccionar valores mayores que un byte en una dirección impar. Por lo tanto, un chunk seguido de otro chunk de dirección impar será precedido por un byte de relleno para convertirlo en una cantidad de datos par.
El nivel más alto de la estructura de un archivo IFF consiste de exactamente uno de los chunks de grupo: FORM, LIST o CAT .
Cada tipo de chunk tiene una estructura interna diferente, ya sean datos numéricos, texto, o datos en crudo. También es posible incluir otros ficheros IFF como si de otros chunks se trataran (puesto que tienen la misma estructura: cuatro letras seguidas de la longitud) y algunos formatos utilizan esta característica. Existen chunks estándar que pueden estar presentes en cualquier archivo IFF, por ejemplo ‘AUTH’ (conteniendo texto indicando el autor del archivo), ‘ANNO’ (que contiene una anotación, normalmente el nombre del programa que creó el archivo), ‘NAME’ (conteniendo el nombre del trabajo existente en el archivo), ‘VERS’ (conteniendo la versión del archivo), ‘(c) ’ (conteniendo texto con información sobre el copyright). Además existen chunks que son comunes entre una gran cantidad de formatos, como por ejemplo ‘CMAP’ que almacena los datos de la paleta de los ficheros ILBM, ANIM y DR2D (imágenes de mapa de bits, animaciones e imágenes vectoriales). También hay chunks que tienen un nombre común pero que almacenan diferentes datos tales como ‘BODY’ que puede almacenar una imagen en formato ILBM y un sonido en formato 8SVX. Finalmente, existen chunks únicos para el tipo de datos que almacenan. Algunos programas que crean archivos IFF les añaden chunks con sus datos internos; estos mismos archivos pueden ser leídos más tarde por otros programas sin ningún problema (ya que los analizadores pueden saltarse los chunks que les resulten irrelevantes), lo cual es una gran ventaja del IFF sobre otros formatos de archivo.
Al ser un formato de archivo anidable y descriptivo, existen muchas similitudes en cuanto a arquitectura con el XML. No obstante, XML es fundamentalmente un formato en modo texto, mientras que todo IFF contiene al menos algún campo en formato binario (por ejemplo los campos de longitud). Es posible convertir de manera automática un archivo IFF a su equivalente en XML; sin embargo, al tener el XML una serie de características adicionales como los datos descriptivos y los metadatos (atributos, entidades, DTD y esquemas) y características navigacionales (xpath), éste no puede ser convertido tan fácilmente a IFF.
Escribe un comentario o lo que quieras sobre Interchange File Format (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)