WikiDer > Smacker видео

Smacker video
Smacker
Bink Smacker Video logo.png
Расширение имени файла
.smk
Типовой кодSmk2
РазработанИнструменты игры RAD
Тип форматаВидео кодек
Контейнер дляSmacker

Smacker видео это формат видеофайла.SMK расширение файла) разработан Инструменты игры RAD, и в основном используется для полноформатное видео в видеоигры.[1] Smacker использует адаптивную 8-битную RGB палитра. Формат RAD для видео с большей глубиной цвета: Бинк Видео. Формат Smacker определяет формат контейнера, формат сжатия видео и формат сжатия звука.[2] С момента своего выпуска в 1994 году Smacker использовался более чем в 2300 играх.[1] Blizzard использовала этот формат для кинематографических видеороликов в своих играх. Warcraft II, Стар Крафт и 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 video поддерживает 256 цветов и включает поддержку прозрачности.[2] Будучи палитра-базовый формат, который по своей сути ограничен количеством не более 256 цветов в каждом кадре, видеоролики Smacker могут по-прежнему содержать больше цветов в целом из-за «вращения палитры», при котором палитра обновляется покадрово.[2] Обычно это приводит к тому, что файлы SMK выглядят лучше, если исходное видео имеет более 256 цветов. Степень сжатия Smacker может достигать 1:12, но при потере качества (пикселизация).[нужна цитата]

В Smacker video кадр разбивается на блоки 4 × 4 в порядке растровой развертки.[2] Каждый блок может быть закодирован в одном из шести режимов кодирования: пропустить, заполнить, моно и три полных режима. Каждый режим может сигнализироваться для нескольких блоков в кодирование длин серий схема. В режиме пропуска текущий блок копируется из предыдущего кадра в условное пополнение мода. В режиме заливки текущий блок заполняется одним цветом. В монорежиме палитра локально сокращается с 256 цветов до двух цветов. Оба цвета записываются в поток битов, и один бит на пиксель используется, чтобы указать, каким из двух цветов должен быть пиксель.[2] Моно-режим можно интерпретировать как векторное квантование, где трехмерный вектор с красными, зелеными и синими компонентами квантованный с использованием адаптивной кодовой книги с двумя записями. Есть три полных режима, один был указан в версии 2 формата Smacker, а два других были добавлены в версии 4.[2] В исходном полном режиме передается 16 цветов, по одному на каждый пиксель, что эквивалентно необработанному несжатому ИКМ. Два полных режима, добавленные в версии 4, используют 4 и 8 цветов в блоке соответственно.[2] В 4-цветном режиме блок 4 × 4 разбивается на четыре блока 2 × 2, каждый из которых залит сплошным цветом. В 8-цветном режиме блок 4 × 4 разбивается на восемь блоков 1 × 2, каждый из которых залит сплошным цветом.[2]

Дальнейшее сжатие достигается за счет энтропийное кодирование с помощью Кодирование Хаффмана различных элементов битового потока, полученных в результате описанного выше процесса.[2] Существует четыре отдельных таблицы Хаффмана, каждая с 16-битными записями: одна для выбора режима, длины серии и цвета заливки в режиме цвета заливки, одна для индексов цвета в монорежиме, одна для растрового изображения в монорежиме и одна для всех данных в полном режиме. Каждая таблица адаптивна и передается один раз для каждого файла в заголовке. Таблицы Хаффмана в заголовке сами сжимаются: 16-битные значения в листьях кодового дерева разделяются на старший и младший байт. Каждый байт сжимается с использованием таблицы Хаффмана, которая также содержится в заголовке.[2]

Аудио

Smacker audio - это один из аудиоформатов, который можно использовать в контейнере Smacker. Для сжатия, Дифференциальная импульсная кодовая модуляция (DPCM) используется. Разница между двумя последовательными выборками сжимается с помощью Кодирование Хаффмана. Таблицы Хаффмана адаптируются один раз для каждого аудиокадра.[2]

Смотрите также

использованная литература

  1. ^ а б "Smacker Video Technology". Инструменты игры RAD. Получено 4 мая 2013.
  2. ^ а б c d е ж г час я j k л м "Smacker". Мультимедиа Вики. 11 апреля 2007 г.. Получено 4 апреля 2013.
  3. ^ Ладислав Зезула (2010). «Архивы MPQ - Обзор». Получено 4 мая 2013.
  4. ^ «Документация FFmpeg». FFmpeg. Получено 4 апреля 2013.
  5. ^ FFmpeg: Smacker video и Smacker audio decoder
  6. ^ FFmpeg: Демультиплексор контейнеров Smacker
  7. ^ SourceForge проект libsmacker

внешние ссылки