Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

FLI, FLC, CEL

Блок тип 7 – блок дельта - сжатия по словам (DELTA_FLC)

Наиболее часто встречающийся блок в FLC – файлах. Используется только в Animator Pro. Содержит различия между последовательными фреймами. В отличии от блока DELTA_FLI это сжатие по словам. Данные организованы в строки, в каждой строке пакеты. Первое слово ( 16 бит ) - число сжатых строк, т.е. сколько строк будет выводиться на экран. Затем - данные для каждой строки отдельно, всегда начинающиеся с первой строки. Каждая строка сжимается индивидуально.

Каждая строка может начинаться с некоторого количества дополнительных слов, для того чтобы пропустить не изменяемые строки и установить последний байт в строке для фильмов, у которых ширина экрана нечетная. Число пропущенных строк не включается в общее число сжатых строк. Последнее слово из этих дополнительных слов положительно и содержит число пакетов в строке. Старшие два бита этих слов используются, чтобы определить назначение слова.

Бит 15Бит 14Назначение
00Т.е. слово больше нуля. Тогда слово содержит число пакетов в строке. Число пакетов может быть нуль, тогда только последний пиксель в строке изменяется.
10Младший байт содержит последний байт строки (только для нечетной ширины экрана). Число пакетов в строке всегда следует за этим словом.
11Слово содержит число строк для пропуска. Число пропущенных строк равняется абсолютному значению данного слова. За этим словом могут быть еще слова для пропуска строк или слова для вывода последнего байта строки и число пакетов в строке.

Формат пакета для строки:

Смещение (Байт)Размер (Байт)НазваниеОписание
01Skip_countПропуск столбцов
11Size_countЧисло байт для копирования и тип копирования
2??DataДанные

Пропуск столбцов пикселей обозначает, сколько столбцов пикселей необходимо пропустить относительно текущего пикселя. Если необходимо пропустить больше, чем 255 пикселей, то они будут разбиты на два пакета. Число байтов для копирования знаковое. При этом отрицательные и положительные значения имеют обратный смысл по сравнению с типом блока 15. Это сделано для эффективности. Если данный байт больше нуля, то следующие size_count слов ( т.е. size_count*2 байтов ) копируются на экран. Если size_count меньше нуля, то следующее за size_count слово ( т.е. два последовательных байта, необязательно одинаковых ) копируется на экран. Количество повторений этого слова равно абсолютному числу size_count.

Блок тип 4 - настройки палитры (COLOR_256)

Данный блок позволяет настраивать палитру. Данные в этом блоке организованы в пакеты. Данный блок применяется только в FLC - файлах.

Первое слово после заголовка - число пакетов в этом блоке. Далее следуют пакеты. Первый байт пакета - сколько цветов палитры пропустить, не изменяя. Следующий байт - сколько цветов палитры надо изменить. Если данное число равно 0, то необходимо изменить все 256 цветов. Затем идут значения красной, зеленой и синей компоненты цвета - триады RGB ( всего 3 байта ). Это значения цветов для настройки палитры. Значения цветов изменяются от 0 до 255.

Вот пример в котором будут изменены 2, 7, 8 и 9 цвета:

  • 2 ; два пакета
  • 2,1,r,g,b ; пропустить 2 цвета, и изменить 1 цвет
  • 4,3,r,g,b,r,g,b,r,g,b ; пропустить еще 4 цвета, и изменить 3 цвета

Блок тип 11 - настройки палитры (COLOR_64)

Данный блок позволяет настраивать палитру. Данные в этом блоке организованы в пакеты. Данный блок применяется только в FLI - файлах.

Первое слово после заголовка - число пакетов в этом блоке. Далее следуют пакеты. Первый байт пакета - сколько цветов палитры пропустить, не изменяя. Следующий байт - сколько цветов палитры надо изменить. Если данное число равно 0, то необходимо изменить все 256 цветов. Затем идут значения красной, зеленой и синей компоненты цвета - триады RGB ( всего 3 байта ). Это значения цветов для настройки палитры. Значения цветов изменяются от 0 до 63.

Вот пример в котором будут изменены 2, 7, 8 и 9 цвета:

  • 2 ; два пакета
  • 2,1,r,g,b ; пропустить 2 цвета, и изменить 1 цвет
  • 4,3,r,g,b,r,g,b,r,g,b ; пропустить еще 4 цвета, и изменить 3 цвета

Блок тип 18 - миниатюрное изображение (PSTAMP)

Данный блок можно пропустить. Дополнительную информацию по данному блоку можно получить на [2]. Так как данный блок никакоем образом не влияет на воспроизведение фильма, я опускаю описание его.

Достоинства и недостатки

Большим недостатком данных форматов фильмов является отсутствие звукового сопровождения. Но данный недостаток просто устранить в конкретной реализации, введя при проигрывании фильма звуковое сопровождение.

Также большим недостатком является отсутствие опорных кадров, но этот недостаток также просто устранить, создав утилиту для размещения в файле опорных кадров и указателей на эти кадры.

Другим недостатком является отсутствие поддержки полноцветных изображений. Но перевод в 8 битную палитру полноцветных изображений считается одним из способов субдискретизации с потерей качества. Поэтому это скорее плюс, чем минус.

Большим достоинством данного формата считается распространенность Animator Pro, простота создания в нем анимационных файлов и подробные описания его формата.

Источники и исходники.

Об авторе

Перевод и дополнения Анисимова С.Ю. 1997/01 и 1998/03. Кировская обл. г. Кирово-Чепецк. Россия.

Никакая часть этой статьи не может быть издана или скопирована любым способом без предшествующего письменного разрешения автора - Анисимова Сергея Юрьевича с одним исключением - Вы может включать эту статью в немодифицированном виде на ваших Web-страницах для свободного всеобщего просмотра.


Предыдущая | Оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог