Articulo de referencia

Vídeo de Smacker

Smacker Video es un formato de archivo de video (con la extensión .SMK ) desarrollado por RAD Game Tools y utilizado principalmente para video de movimiento completo en videojue...

Smacker Video es un formato de archivo de video (con la extensión .SMK ) desarrollado por RAD Game Tools y utilizado principalmente para video de movimiento completo en videojuegos . [ 1 ] Smacker utiliza una paleta RGB adaptativa de 8 bits . El formato de RAD para video con mayor profundidad de color es Bink Video . El formato Smacker especifica un formato de contenedor , un formato de compresión de video y un formato de compresión de audio. [ 2 ] Desde su lanzamiento en 1994, Smacker se ha utilizado en más de 2300 juegos. [ 1 ] Blizzard utilizó este formato para los videos cinematográficos que se ven en sus juegos Warcraft II , StarCraft y Diablo I. [ 3 ]

El formato ha sido sometido a ingeniería inversa e implementado en libavcodec . [ 4 ] [ 5 ] [ 6 ] Un proyecto no comercial de SourceForge, libsmacker, lanzó un decodificador de código abierto en 2013. [ 7 ]

Detalles técnicos

Formato de archivo (contenedor)

Smacker define su propio formato de contenedor . [ 2 ] Un archivo Smacker puede contener una pista de vídeo Smacker y hasta siete pistas de audio. Cada pista de audio puede tener un canal (mono) o dos canales (estéreo) con una profundidad de bits de 8 o 16 bits. El audio puede ser PCM sin comprimir , comprimido en el formato de audio Smacker o, en versiones más recientes de Smacker, comprimido en el formato de audio Bink . [ 2 ]

Video

El vídeo Smacker admite 256 colores, pero no admite transparencia. [ 2 ] Aunque es un formato basado en paleta , que está inherentemente limitado a tener no más de 256 colores en cada fotograma, los vídeos Smacker pueden contener más colores en total debido a la "rotación de paleta", mediante la cual la paleta se actualiza fotograma a fotograma. [ 2 ] Esto suele dar como resultado archivos SMK que se ven mejor si el vídeo de origen tiene más de 256 colores. La tasa de compresión depende del contenido. La codificación de un vídeo que consta de fotogramas estáticos o con poco movimiento es prácticamente gratuita después del primer fotograma. [ 2 ] Los fotogramas con colores aleatorios pueden duplicar con creces el tamaño sin comprimir.

En el vídeo Smacker, un fotograma se divide en bloques de 4×4 en orden de barrido raster. [ 2 ] Cada bloque puede codificarse en uno de seis modos de codificación: salto, relleno, mono y tres modos completos. Cada modo puede ser señalado para múltiples bloques en un esquema de codificación de longitud de ejecución . En el modo de salto, el bloque actual se copia del fotograma anterior de forma condicional . En el modo de relleno, el bloque actual se rellena con un solo color. En el modo mono, la paleta se reduce localmente de 256 colores a dos colores. Ambos colores se escriben en el flujo de bits y se utiliza un bit por píxel para indicar cuál de los dos colores debe ser un píxel. [ 2 ] El modo mono puede interpretarse como una cuantización vectorial , donde un vector tridimensional con los componentes rojo, verde y azul se cuantiza utilizando un libro de códigos adaptativo con dos entradas. Hay tres modos completos, uno se especificó en la versión 2 del formato Smacker, mientras que los otros dos se agregaron en la versión 4. [ 2 ] En el modo completo original, se transmiten 16 colores, uno por cada píxel, equivalente a PCM sin comprimir sin procesar. Los dos modos completos agregados en la versión 4 usan 4 y 8 colores en un bloque, respectivamente. [ 2 ] En el modo de 4 colores, el bloque de 4×4 se divide en cuatro bloques de 2×2, cada uno de los cuales se rellena con un color sólido. En el modo de 8 colores, el bloque de 4×4 se divide en ocho bloques de 1×2, cada uno de los cuales se rellena con un color sólido. [ 2 ]

Se logra una mayor compresión mediante la codificación de entropía utilizando la codificación Huffman de los diversos elementos del flujo de bits que resultan del proceso anterior. [ 2 ] Hay cuatro tablas Huffman separadas, cada una con entradas de 16 bits: una para la decisión de modo, la longitud de ejecución y el color de relleno en el modo de color de relleno, una para los índices de color en el modo monocromo, una para el mapa de bits en el modo monocromo y una para todos los datos en el modo completo. Cada tabla es adaptativa y se transmite una vez por archivo en la cabecera. Las tablas Huffman en la cabecera están comprimidas: los valores de 16 bits en las hojas del árbol de código se dividen en un byte alto y un byte bajo. Cada byte se comprime utilizando una tabla Huffman que también está contenida en la cabecera. [ 2 ]

Audio

El audio Smacker es uno de los formatos de audio que se pueden usar en el contenedor Smacker. Para la compresión, se utiliza la modulación por impulsos codificados diferencial (DPCM). La diferencia entre dos muestras sucesivas se comprime mediante codificación Huffman . Las tablas Huffman se adaptan una vez por cada fotograma de audio. [ 2 ]

Véase también

Referencias

  1. 1 2 "Tecnología de video Smacker" . RAD Game Tools . Recuperado el 4 de mayo de 2013 .
  2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 "Smacker" . MultimediaWiki . 11 de abril de 2007. Recuperado el 4 de abril de 2013 .
  3. Ladislav Zezula (2010). "Archivos MPQ - Descripción general" . Recuperado el 4 de mayo de 2013 .
  4. "Documentación de FFmpeg" . FFmpeg . Consultado el 4 de abril de 2013 .
  5. FFmpeg: Decodificador de vídeo y audio Smacker
  6. FFmpeg: Demultiplexor de contenedores Smacker
  7. Proyecto SourceForge libsmacker
  • Página oficial de vídeos de Smacker