Ужасное видео
Расширение имени файла | .средняя школа |
---|---|
Тип интернет-СМИ | видео/vnd.radgamettools.smacker |
Введите код | смк2 |
Разработано | Инструменты эпических игр |
Тип формата | Видеокодек |
Контейнер для | Smacker |
Smacker video — это формат видеофайлов (с .SMK расширением ), разработанный Epic Games Tools и в основном используемый для полномасштабного видео в видеоиграх . [1] Smacker использует адаптивную 8-битную палитру RGB . Формат RAD для видео с более высокой глубиной цвета — Bink Video . Формат Smacker определяет формат контейнера , формат сжатия видео и формат сжатия аудио. [2] С момента своего выпуска в 1994 году Smacker использовался более чем в 2300 играх. [1] Blizzard использовала этот формат для кинематографических видеороликов в своих играх Warcraft II , StarCraft и Diablo I. [3]
Формат был реконструирован и реализован в libavcodec . [4] [5] [6] Некоммерческий SourceForge проект libsmacker выпустил декодер с открытым исходным кодом в 2013 году. [7]
Технические подробности [ править ]
Формат файла (контейнер) [ править ]
Smacker определяет свой собственный формат контейнера . [2] Файл Smacker может содержать видеодорожку Smacker и до семи аудиодорожек. Каждая звуковая дорожка может иметь один канал (моно) или два канала (стерео) с разрядностью 8 или 16 бит. Звук может быть либо несжатым PCM , сжатым в формате Smacker Audio, либо, в более новых версиях Smacker, сжатым в формате Bink Audio . [2]
Видео [ править ]
Видео Smacker поддерживает 256 цветов, но не поддерживает прозрачность. [2] Несмотря на то, что Smacker является форматом на основе палитры , который по своей сути ограничен наличием не более 256 цветов в каждом кадре, видео Smacker по-прежнему может содержать больше цветов в целом из-за «вращения палитры», при котором палитра обновляется для каждого кадра. . [2] Обычно это приводит к тому, что файлы SMK выглядят лучше, если исходное видео содержит более 256 цветов. Степень сжатия зависит от содержимого. Кодирование видео, состоящего из неподвижных или едва движущихся кадров, после первого кадра практически бесплатно. [2] Кадры со случайными цветами могут увеличиваться более чем в два раза. [ нужна ссылка ]
В видео Smacker кадр разбивается на блоки 4×4 в порядке растрового сканирования. [2] Каждый блок может быть закодирован в одном из шести режимов кодирования: пропуск, заполнение, моно и три полных режима. Каждый режим может сигнализироваться для нескольких блоков в схеме кодирования длин серий . В режиме пропуска текущий блок копируется из предыдущего кадра в режиме условного пополнения . В режиме заливки текущий блок заполняется одним цветом. В монорежиме палитра локально уменьшена с 256 цветов до двух цветов. Оба цвета записываются в битовый поток, и один бит на пиксель используется для указания того, каким из двух цветов должен быть пиксель. [2] Монорежим можно интерпретировать как векторное квантование , при котором трехмерный вектор с компонентами красного, зеленого и синего квантовается с использованием адаптивной кодовой книги с двумя записями. Полноценных режима три, один был указан во второй версии формата Smacker, а два других добавлены в 4-й версии. [2] В исходном полном режиме передаются 16 цветов, по одному на каждый пиксель, что эквивалентно необработанному несжатому PCM. Два полных режима, добавленные в версии 4, используют 4 и 8 цветов в блоке соответственно. [2] В 4-цветном режиме блок 4×4 разбивается на четыре блока 2×2, каждый из которых заполнен сплошным цветом. В 8-цветном режиме блок 4×4 разбивается на восемь блоков 1×2, каждый из которых заполнен сплошным цветом. [2]
Дальнейшее сжатие достигается за счет энтропийного кодирования с использованием кодирования Хаффмана различных элементов битового потока, полученных в результате описанного выше процесса. [2] Существует четыре отдельные таблицы Хаффмана, каждая из которых содержит 16-битные записи: одна для определения режима, длины серии и цвета заливки в режиме цвета заливки, одна для индексов цвета в монорежиме, одна для растрового изображения в монорежиме и одна для всех данных в полном режиме. Каждая таблица адаптивна и передается один раз для каждого файла в заголовке. Таблицы Хаффмана в заголовке сами по себе сжаты: 16-битные значения в листьях кодового дерева разбиваются на старший и младший байт. Каждый байт сжимается с использованием таблицы Хаффмана, которая также содержится в заголовке. [2]
Аудио [ править ]
Аудио Smacker — это один из аудиоформатов, которые можно использовать в контейнере Smacker. Для сжатия дифференциально-импульсно-кодовая модуляция используется (DPCM). Разница между двумя последовательными выборками сжимается с помощью кодирования Хаффмана . Таблицы Хаффмана адаптируются один раз для каждого аудиокадра. [2]
См. также [ править ]
- Индексированный цвет
- Квантование цвета
- Bink Video , формат RAD для видео с более высокой глубиной цвета.
- Apple Video — кодек, основанный на аналогичной конструкции
- Microsoft Video 1 — кодек, основанный на аналогичной конструкции.
- QuickTime Graphics — кодек, основанный на аналогичной конструкции.
- S3 Texture Compression — формат сжатия текстур, основанный на аналогичной конструкции.
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б «Технология Smacker Video» . Игровые инструменты RAD . Проверено 4 мая 2013 г.
- ^ Jump up to: Перейти обратно: а б с д и ж г час я дж к л м н «Смакер» . МультимедиаВики . 11 апреля 2007 года . Проверено 4 апреля 2013 г.
- ^ Ладислав Зезула (2010). «Архивы MPQ — Обзор» . Проверено 4 мая 2013 г.
- ^ «Документация FFmpeg» . FFmpeg . Проверено 4 апреля 2013 г.
- ^ FFmpeg: видео Smacker и аудиодекодер Smacker
- ^ FFmpeg: демультиплексор контейнера Smacker
- ^ SourceForge Проект libsmacker