stringtranslate.com

Vídeo de Smacker

Smacker video es un formato de archivo de video (con la extensión de archivo .SMK ) desarrollado por Epic Games Tools y utilizado principalmente para videos en movimiento completo en videojuegos . [1] Smacker utiliza una paleta RGB adaptable de 8 bits . El formato de RAD para vídeo con mayores profundidades de color es Bink Video . El formato Smacker especifica un formato 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 vídeos 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 video 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 formato Smacker Audio o, en versiones más recientes de Smacker, comprimido en formato Bink Audio. [2]

Video

El video de Smacker admite 256 colores, pero no admite transparencia. [2] Si bien es un formato basado en paleta , que está inherentemente limitado a no tener más de 256 colores en cada cuadro, los videos de Smacker aún pueden contener más colores en total debido a la "rotación de paleta", mediante la cual la paleta se actualiza por -base del marco. [2] Esto generalmente da como resultado archivos SMK que se ven mejor si el video fuente tiene más de 256 colores. La tasa de compresión depende del contenido. La codificación de un vídeo compuesto por fotogramas fijos o apenas en movimiento queda prácticamente libre a partir del primer fotograma. [2] Los marcos con colores aleatorios pueden duplicar con creces el tamaño original. [ cita necesaria ]

En el vídeo Smacker, un fotograma se divide en bloques de 4×4 en orden de escaneo ráster. [2] Cada bloque se puede codificar en uno de los seis modos de codificación: omitir, completar, mono y tres modos completos. Cada modo se puede señalar para múltiples bloques en un esquema de codificación de longitud de ejecución . En el modo de omisión, el bloque actual se copia del cuadro anterior en forma de reposición condicional. En el modo de relleno, el bloque actual se rellena con un solo color. En 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 cuantificación vectorial , donde un vector tridimensional con los componentes rojo, verde y azul se cuantifica 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 raw sin comprimir. PCM. 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 está relleno 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 está relleno con un color sólido. [2]

Se logra una mayor compresión mediante codificación entrópica utilizando 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 decisión de modo, longitud de ejecución y color de relleno en modo color de relleno, otra para índices de color en modo mono, otra para mapa de bits en modo mono. y uno para todos los datos en el modo completo. Cada tabla es adaptable y se transmite una vez por archivo en el encabezado. Las tablas de Huffman en el encabezado 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 de Huffman que también está contenida en el encabezado. [2]

Audio

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

Ver también

Referencias

  1. ^ ab "Tecnología de vídeo Smacker". Herramientas de juego RAD . Consultado el 4 de mayo de 2013 .
  2. ^ abcdefghijklmn "Smacker". MultimediaWiki . 11 de abril de 2007 . Consultado el 4 de abril de 2013 .
  3. ^ Ladislav Zezula (2010). "Archivos MPQ: descripción general" . Consultado 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

enlaces externos