El video Smacker es un formato de archivo de video (con la extensión de archivo .SMK ) desarrollado por RAD Game Tools , y se usa 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 profundidades de color más altas 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 usó este formato para los videos cinematográficos que se ven en sus juegos.Warcraft II , StarCraft y Diablo I . [3]
![]() | |
Extensión de nombre de archivo | .smk |
---|---|
Tipo de medio de Internet | video / vnd.radgamettools.smacker |
Código de tipo | Smk2 |
Desarrollado por | Herramientas de juego RAD |
Tipo de formato | Códec de vídeo |
Contenedor para | Besazo |
El formato ha sido diseñado e implementado en libavcodec . [4] [5] [6] A no comercial SourceForge proyecto libsmacker publicado un decodificador de fuente abierta en 2013. [7]
Detalles técnicos
Formato de archivo (contenedor)
Smacker define su propio formato de contenedor . [2] Un archivo de Smacker puede contener una pista de video de 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 las versiones más recientes de Smacker, comprimido en formato Bink Audio . [2]
Video
El video de Smacker admite 256 colores e incluye soporte de 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", por lo que la paleta se actualiza en una -Base del marco. [2] Por lo general, esto da como resultado archivos SMK que se ven mejor si el video de origen tiene más de 256 colores. La tasa de compresión de Smacker puede llegar a 1:12, pero con pérdida de calidad ( pixelación ). [ cita requerida ]
En el video de Smacker, un fotograma se divide en bloques de 4 × 4 en orden de escaneo de trama. [2] Cada bloque se puede codificar en uno de los seis modos de codificación: salto, relleno, 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 fotograma anterior en forma de reabastecimiento 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 se puede interpretar como 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 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]
La compresión adicional se logra mediante la codificación de entropía utilizando la codificación de 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, duración de ejecución y color de relleno en modo de color de relleno, una para los índices de color en modo mono, una para el mapa de bits en modo mono y uno para todos los datos en 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 mediante una tabla de Huffman que también se incluye en el encabezado. [2]
Audio
Smacker audio es uno de los formatos de audio que se pueden utilizar en el contenedor Smacker. Para la compresión, se utiliza la modulación de código de pulso diferencial (DPCM). La diferencia entre dos muestras sucesivas se comprime mediante la codificación de Huffman . Las tablas de Huffman se adaptan una vez por cuadro de audio. [2]
Ver también
- Color indexado
- Cuantización de color
- Bink Video , formato de RAD para video con mayores profundidades de color
- Apple Video , un códec basado en un diseño similar
- Microsoft Video 1 , un códec basado en un diseño similar
- QuickTime Graphics , un códec basado en un diseño similar
- S3 Texture Compression , un formato de compresión de texturas basado en un diseño similar
Referencias
- ^ a b "Tecnología de video Smacker" . Herramientas de juego RAD . Consultado el 4 de mayo de 2013 .
- ^ a b c d e f g h yo j k l m "Smacker" . MultimediaWiki . 11 de abril de 2007 . Consultado el 4 de abril de 2013 .
- ^ Ladislav Zezula (2010). "Archivos MPQ - Descripción general" . Consultado el 4 de mayo de 2013 .
- ^ "Documentación de FFmpeg" . FFmpeg . Consultado el 4 de abril de 2013 .
- ^ FFmpeg: decodificador de video y audio Smacker
- ^ FFmpeg: demuxer de contenedores Smacker
- ^ Proyecto libsmacker de SourceForge
enlaces externos
- Página oficial de videos de Smacker