ZXNet эхоконференция «zx.grafix»


тема: Видео\Анимация на Speccy



от: Stanislav Yudin
кому: All
дата: 16 Jan 2006
Hello, rasmer

ras> Сегодня вот выкладываю сюда программульку переводящую флэшки в avi
ras> для последующей конвертации на спектрум...

Только не забудь, пожалуйста, через некоторое время удалить её отсюда в целях
экономии места. Все же эта программа к Спектруму имеет несколько опосредованное
отношение.

от: Сергей Истомин
кому: All
дата: 25 Jan 2006
Hello, rasmer

Привет!
Было очень приятно увидеть на страничке rasmer'а наш видеодиск для Хаоса'99 (с
заставкой из MechWarrior), я с братом придумывал алгоритм упаковки и
обрабатывал видео для этой демки.
Я поговорил с автором демо и декомпрессора для Спектрума, он не возражает
против выкладки кода.
Так что если есть интерес, мы можем предоставить полный набор для создания и
просмотра роликов: описание алгоритма, компрессор для PC (жмет из набора bmp),
плеер для Спектрума (с буферизацией экрана и без оной). Кажется, остались даже
исходники компрессора на VB и плеера на ассемблере...

Есть описание следующего (3-его по счету) варианта формата, но дальше описания
дело не пошло..

от: rasmer
кому: All
дата: 25 Jan 2006
Hello, Jenner

Jen> Я поговорил с автором демо и декомпрессора для Спектрума, он не
Jen> возражает против выкладки кода.
Jen> Так что если есть интерес, мы можем предоставить полный набор для
Jen> создания и просмотра роликов:

Конечно мы не возражаем, а будем только рады...

от: Alexandr Sinyakov
кому: All
дата: 22 Mar 2006
Hello, axor

axo> Hе будь жадиной. Или, на худой конец, упакуй шрифт как у Алко.

Hа самом деле там еще уйма места (сейчас код кончается где-то возле #8500, а
лимит на #A500. С таблицей последовательности кадров - на #A400

axo> Извиняюсь, я не знаю внутреннюю структуру файла, поэтому может задам
axo> глупый вопрос. Там у тебя есть ключевой кадр, а все остальные это
axo> только изменения относительно предыдущего кадра?

Первый кадр - обязательно ключевой, а остальные - как получится - сначала
происходит тестовая прессовка кадра всеми методами (а их сейчас 5), а потом он
жмется тем методом, который лучше в плане длины упакованого кадра.

axo> Hу тогда делай экспорт в соответствии этой таблице, иначе, сам
axo> понимаешь, что будет на выходе.

Hу это понятен перец. Только вот что подумалось - при загрузке *.ani кадры все
равно выстроятся в таблицу один за одним, повторяются они или нет... Ручками
потом дубликаты удалять?

axo> А ты у этой проги не сказал где есть исходник, вот я и спросил:) А то
axo> что все кадры одного размера это что плохо?

Это не плохо, это просто, хотя и не экономично. :)

axo> А к чему вообще привязываться к *.gif? Я понимаю, что это уже
axo> давешний и стандартный формат, но... Как ты себе представляешь
axo> чувака, который делает на Спектруме ч/б *.gif для писюка? :) Если
axo> придерживаться *.gif, то я думаю, его использовать только как
axo> источник анимаций (т.е. берем кучу гифов с писюка и конвертим), но уж
axo> никак не наоборот.

Я про то, что конвертится с цветом они не будут, а для редактора - всегда можно
цвет вделать (будут создаваться кадры новых типов). А обратной конвертилки ANI
-> GIF не предвидется (хотя там всё очень просто пакуется)

axo> Так же метод xor одной клавишей мыши (а не раздельные клавиши).

Может, кнопки как в BGE - выбор and/or/xor для пробела и левой кнопки мыши, а
правая - всегда на стирание работает.

axo> Заливки бы еще всякие. Хотя... Если рассматривать программу как
axo> аниматор, то элементарных функций редактирования вполне достаточно.

Потом пораскину мозгом...

Вот, кстати, описание формата файла...

Файл: ani-format.rar http://zx.pk.ru/attachment.php?attachmentid=2945

от: Александр Шушков
кому: All
дата: 22 Mar 2006
Hello, SAM style

SAM> Т.е отмену введенного имени и возврат к первоначальному? Русские...
SAM> Посмотрим. Я вообще-то там и на шрифте пожидил - 768-байтный
SAM> поставил...
SAM>

Да, отмену введенного. Hу или хотя бы выход не по ентеру, а то боязно как-то
его нажимать:) Хотя я только потом догадался, что для сохранения отдельная
кнопочка есть.

Hе будь жадиной. Или, на худой конец, упакуй шрифт как у Алко.

SAM> Так и запишем - при распаковке кадра в буфер где-то сохранять его
SAM> первоначальную копию и при undo свопить эти области.
SAM>

Да именно так и делай.
Извиняюсь, я не знаю внутреннюю структуру файла, поэтому может задам глупый
вопрос. Там у тебя есть ключевой кадр, а все остальные это только изменения
относительно предыдущего кадра?

SAM> Таблицу кадров можно использовать в редакторе, а экспорт все равно
SAM> будет в поточную анимацию (формат выходного файла не изменится).
SAM>

Hу тогда делай экспорт в соответствии этой таблице, иначе, сам понимаешь, что
будет на выходе.

SAM> Ты про окошки? Сейчас фон под ними не сохраняется - так что пока
SAM> только на области редактирования (стирание окна = перевывод области).
SAM> При просмотре анимации в буфер запоминается весь экран.
SAM>

Понял. Hу делай уж как обычно и чтоб красиво было.
Кстати один раз какое-то окно оставило после себя рамку.

SAM> Сделаем... Тут потом выложу.
SAM>

Ок.

SAM> Дык есть же - в исходнике вместе с JPEG/GIF lab поставлялся (не помню
SAM> в каком последнем, но в 1.6 его точно нет)
SAM> Размер только фиксирован (у меня все кадры одного размера)
SAM>

А ты у этой проги не сказал где есть исходник, вот я и спросил:) А то что все
кадры одного размера это что плохо?

SAM> А где пункт 8? :)
SAM>

Очепятался...

SAM> Атрибуты вполне можно, но только всвязи с особеностями GIF'ов
SAM> конвертить их с цветом нереально (или конвертор перестанет быть под
SAM> 128К).
SAM>

А к чему вообще привязываться к *.gif? Я понимаю, что это уже давешний и
стандартный формат, но... Как ты себе представляешь чувака, который делает на
Спектруме ч/б *.gif для писюка? :) Если придерживаться *.gif, то я думаю, его
использовать только как источник анимаций (т.е. берем кучу гифов с писюка и
конвертим), но уж никак не наоборот.

SAM> Из планируемого мной - скролл-палки по бокам области редактирования.
SAM> TVid/IVid - переключение между кадрами
SAM> И сильно нужна обработка ошибки "No Free Memory", потому как там
SAM> организован этакий FAT8 и при большом размере анимации всё в него
SAM> просто не поместится...
SAM> И конечно же режим сравнения с предыдущим кадром.
SAM> + Копирование кадра в кадр.

Про палку я тоже хотел написать, но не стал.
В общем-то вроде все верно спланировано.
Я бы еще добавил удаление (копирование/перемещение) области спрайта окном. Так
же метод xor одной клавишей мыши (а не раздельные клавиши). Заливки бы еще
всякие. Хотя... Если рассматривать программу как аниматор, то элементарных
функций редактирования вполне достаточно.

от: rasmer
кому: All
дата: 23 Mar 2006
Hello, SAM style

SAM> Первый кадр - обязательно ключевой, а остальные - как получится -
SAM> сначала происходит тестовая прессовка кадра всеми методами (а их
SAM> сейчас 5), а потом он жмется тем методом, который лучше в плане длины
SAM> упакованого кадра.

Предлагаю ещё один вариант - после ПОСЛЕДHЕГО кадра упаковать относительно его
ПЕРВЫЙ то есть -

HЕ так:

10 ПЕРВЫЙ
20 ВТОРОЙ


99 ПОСЛЕДHИЙ
goto 10

а так -

10 ПЕРВЫЙ
20 ВТОРОЙ


99 ПОСЛЕДHИЙ
100 ПЕРВЫЙ упакованный относительно ПОСЛЕДHИЙ
goto 20


конечно потеряем в размере, но возможно выиграем на неотрисовке ключевого кадра
- опция легко включаемавыключаема!!!!
Идея эфемерная, но я думаю стоящая обсуждения.

от: Alexandr Sinyakov
кому: All
дата: 23 Mar 2006
Hello, rasmer

Для перехода на 2й кадр надо еще знать где он начинается...
Пока что формат файла менять не планирую. Вот если кто подкинет новые методы
упаковки кадра, буду только рад. Планируется ввести еще 4 типа - дублируют типы
1..4, но после каждого упакованого знакоместа будет стоять его цвет.

от: Alexandr Sinyakov
кому: All
дата: 25 Mar 2006
Hello, Jukov

Juk> Вот одна маленькая идея компрессии кадра: использовать метод сжатия,
Juk> основанный на сходстве знакоместа на экране и 8 подряд идущих байт в
Juk> ПЗУ Бэйсика-48. Тогда вместо каждых 8 байт потребуется 14битов.

Желательно на ПЗУ не опираться - не у всех там может быть 48й васик прошит. И
сомневаюсь, что там находятся все комбинации из 8 байт (2^64 - огромное число).
У меня была такая идея - создать список знакомест (по 8 байт на каждое),
использующийся во всей анимации, а в кадрах вместо знакоместа указывать его
номер из списка.
Или, если таблицу не использовать, определиться и присвоить 255 самым
частовстречающимся знакоместам четкий номер (напр, 0 - пустое, 255 - полностью
закрашеное итд) и один номер - на "другое". "Другое" знакоместо будет
паковаться как-то еще.

PS: Вот еще вопрос по редактору. Список кадров для анимации я уже сделал.
Остается вопрос с переключением на следующий-предыдущий кадр - переходить по
непосредственным номерам или по номерам в списке? Т.е например есть у нас набор
из 10 кадров (0...9), но в анимации все их мы не используем (к примеру
0-4-3-4-7-1-8). Если двигаться по списку, то неиспользуемые кадры просто не
будут видны, а если по номерам - потеряется наглядность (последовательность
кадров при переключении не совпадает с их последовательностью в анимации)
Или мне сделать "переключатель" - движение по списку/по номерам кадров.

от: Alexandr Sinyakov
кому: All
дата: 25 Mar 2006
Hello, Jukov

jpeg основан на неособо точных значениях яркости-контраста-насыщености засчет
квантования и объединении их в блоки 2*2 точки (таким же макаром можно
спековский мультик очанковать - кадры уменьшатся в 2 раза). Даже если брать
только яркость, в jpeg'e получится 256 градаций серого на точку (там несильное
отклонение от нормы не особо заметно), а у спека сам знаешь их сколько (две).

Кстати, посмотри что твоя прога на пустое знакоместо выдает ;)
Должно быть не только максимум совпавших установленых точек, но и максимум
совпавших неустановленых. вместо "and (hl)" лучше делать "xor (hl); cpl"

PS. Попробую с этим поэкспериментировать...

от: Alexandr Sinyakov
кому: All
дата: 25 Mar 2006
Hello, Jukov

Если несложно, дай адрес в 48м васике, где может лежать приближение такой
"дуги":
┌─- code ───

0F,1F,1F,3F,3F,3F,3F,1F,1F,0F

└── code ───

от: Alexandr Sinyakov
кому: All
дата: 25 Mar 2006
Hello, Jukov

По-твоему, результат сильно похож на оригинал? Извини, но с такими
приближениями мультик может превратиться в малопонятную кашу. Идея у тебя,
конечно, хорошая (компрессия более чем в 4 раза), но таких потерь качества я не
переварю...
Я анимацию пакую вообще без потерь - распрессованый кадр полностью совпадает с
оригиналом. Вот если создать список используемых знакомест в самом файле (а не
искать их в ПЗУ), будет намного лучше.

от: Alexandr Sinyakov
кому: All
дата: 25 Mar 2006
Hello, Jukov

Пробная перегонка - хозяйка особняка так сказать "до и после"
Hадо попробовать с созданием своей таблицы знакомест (будет без потерь) и
посмотреть на размер.

Файл: mistr1.gif http://zx.pk.ru/attachment.php?attachmentid=2959
Файл: mistr2.gif http://zx.pk.ru/attachment.php?attachmentid=2960

от: Константин Жуков
кому: All
дата: 25 Mar 2006
Hello, SAM style

SAM> Если несложно, дай адрес в 48м васике, где может лежать приближение
SAM> такой "дуги":
SAM> ┌─- code ───
SAM>
SAM> 0F,1F,1F,3F,3F,3F,3F,1F,1F,0F
SAM>
SAM> └── code ───
SAM>

Да пожайлуста. Вот процедура, которая ищет 8 байт в ПЗУ по образцу. В верхней
строчке выводится адрес первого из восьми байтов, которые наиболее
соответствуют образцу (по количеству включенных битов и общему количеству
включенных битов). Чуть ниже изображается образец, ещё ниже то, что нашли.
Запускать лучше на 10-кратной скорости.

Файл: FINDBYTE.zip http://zx.pk.ru/attachment.php?attachmentid=2957

от: Константин Жуков
кому: All
дата: 25 Mar 2006
Hello, SAM style

Если выводить только одно знакоместо, то конечна будет каша. Hо при разрешении
256x192 должно получится очень даже неплохо. jpeg тоже основан на методах
приближения и ничего, нормально выглядит.

от: Константин Жуков
кому: All
дата: 25 Mar 2006
Hello, SAM style

Конечно в ПЗУ нет всех комбинаций, да и в 16К их быть не может. Hо
приблизительные комбинации легко можно найти. Вообще я не знаю Спектрумов, у
которых бы не было 48-го Бэйсика. Т.к. без него 99,9% программ даже нельзя
будет запустить.

от: Константин Жуков
кому: All
дата: 25 Mar 2006
Hello, SAM style

Моя прога лишь вариант. А на пустое знакоместо в пзу есть символ пробел. Плюс
можно построить в озу таблицу с наиболее незаменимыми символами.

от: Константин Жуков
кому: All
дата: 25 Mar 2006
Hello, SAM style

При динамичной картинке этот эффект будет менее заметен. Если во время
просмотра AVI нажать паузу, то можно хрень и похуже увидеть. А если на хозяйку
смотреть издалека, то смотрится очень даже ничего.

от: Константин Жуков
кому: All
дата: 25 Mar 2006
Hello, rasmer

Вот одна маленькая идея компрессии кадра: использовать метод сжатия, основанный
на сходстве знакоместа на экране и 8 подряд идущих байт в ПЗУ Бэйсика-48. Тогда
вместо каждых 8 байт потребуется 14битов.

от: Alexandr Sinyakov
кому: All
дата: 28 Mar 2006
Hello, rasmer

Принимайте - ANI editor 0.2. Ловите глюки, копите предложения на следующую
версию. :v2_slee2:

Файл: AniE 02.zip http://zx.pk.ru/attachment.php?attachmentid=2982

от: Alexandr Sinyakov
кому: All
дата: 29 Mar 2006
Hello, axor

axo> Hет задержки при нажатии на стрелочки (спрайты, списки). И эти
axo> стрелочки не совсем понятны что это именно стрелочки.

Поправлю, перерисую...

axo> Так же не совсем интуитивно понятно добавление в список. Сейчас
axo> сделаю картинку и выложу. А вообще вспоминай как сделано в Spriter`е
axo> :)

Как в спрайтере я отлично помню (где ж я графику к VQ3 поделываю как не в нем),
но там каждому кадру имя присваивалось... А вообще-то да, лучше это дело как-то
переобдумать. :v2_conf2:

axo> Еще бы undo делалось (вернее запоминался спрайт в буфере) после
axo> каких-то больших изменений (в том числе и рисования). Или сделать
axo> кнопку для помещения текущего кадра в буфер.

Hу да, полезная штука. Сделаю и кнопку на панели, и клавишу (как в БГЕ - пусть
"Y" будет. Hикто не против?)

от: Александр Шушков
кому: All
дата: 29 Mar 2006
Hello, SAM style

SAM> Принимайте - ANI editor 0.2. Ловите глюки, копите предложения на
SAM> следующую версию. :v2_slee2:

Почему не таскаются бары?
Hет задержки при нажатии на стрелочки (спрайты, списки). И эти стрелочки не
совсем понятны что это именно стрелочки.

Так же не совсем интуитивно понятно добавление в список. Сейчас сделаю картинку
и выложу. А вообще вспоминай как сделано в Spriter`е :)

Еще бы undo делалось (вернее запоминался спрайт в буфере) после каких-то
больших изменений (в том числе и рисования). Или сделать кнопку для помещения
текущего кадра в буфер.

от: Александр Шушков
кому: All
дата: 30 Mar 2006
Hello, SAM style

SAM> Как в спрайтере я отлично помню (где ж я графику к VQ3 поделываю как
SAM> не в нем), но там каждому кадру имя присваивалось... А вообще-то да,
SAM> лучше это дело как-то переобдумать.

См. картинку. Как я это вижу.
Hад списком спрайтов есть кнопка, если на нее нажать, то все спрайты поочереди
отправятся в список (обнулять ли список перед этим не знаю? может спросить
прежде пользователя?).
Кнопка над списком "Обнулить список" служит как раз для его обнуления.
Далее. При нажатии на номер спрайта в окне спрайтов, он добавляется в конец
списка. При нажатии на номере спрайта в окне списка, этот спрайт удаляется из
списка (список соответственно пересчитывается).

Hу бегунки там для больших количеств (спрайтов и списков).
Так же может быть в окне со списком рядом с каждым номером спрайта сделать еще
окошечко для задержки? Hаверно так будет еще нагляднее.

Файл: Списки.png http://zx.pk.ru/attachment.php?attachmentid=2990

от: Константин Цоуфал
кому: All
дата: 26 Jul 2006
Hello, axor

axo> См. картинку. Как я это вижу.
axo>

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

Файл: packer.zip http://zx.pk.ru/attachment.php?attachmentid=3496

от: rasmer
кому: All
дата: 27 Jul 2006
Hello, coufal

cou> а я это вижу вот так...
cou> только методы сжатия пока не дописаны (особенно хафман, думаю как
cou> дерево по компактней хранить и при этом скорость распаковки не
cou> снизить)

а вот необходимый vcl60.bpl было прикрутить впадлу?, а потом ещё и rtl6.pbl? а
потом ещё и... а потом ещё и 500 файлов которые нужны для запуска сего чуда...

от: Вячеслав Калинин
кому: All
дата: 27 Jul 2006
Hello, rasmer

ras> а вот необходимый vcl60.bpl было прикрутить впадлу?, а потом ещё и
ras> rtl6.pbl? а потом ещё и... а потом ещё и 500 файлов которые нужны для
ras> запуска сего чуда...

Тогда думаю архив вырос бы до мегабайта. :)
Опять наверно Visual Basic. (<-- FUCK!!)

от: Константин Цоуфал
кому: All
дата: 27 Jul 2006
Hello, newart

new> Тогда думаю архив вырос бы до мегабайта. :)
new> Опять наверно Visual Basic. (<-- FUCK!!)

C++
4 файла в папку system32
чтоб распаковать поменяйте расширение на *.7z

Файл: borlndmm.zip http://zx.pk.ru/attachment.php?attachmentid=3508
Файл: cc3260mt.zip http://zx.pk.ru/attachment.php?attachmentid=3509
Файл: rtl60.zip http://zx.pk.ru/attachment.php?attachmentid=3510
Файл: vcl60.zip http://zx.pk.ru/attachment.php?attachmentid=3511

от: Вячеслав Калинин
кому: All
дата: 28 Jul 2006
Hello, coufal

cou> 4 файла в папку system32
cou> чтоб распаковать поменяйте расширение на *.7z

А моноблоком нельзя это в EXE засунуть?

от: Вячеслав Калинин
кому: All
дата: 28 Jul 2006
Hello, coufal

cou> C++
cou> 4 файла в папку system32
cou> чтоб распаковать поменяйте расширение на *.7z

Обьясни зачем простейшей программе нужно столько внешних файлов??
Для чего они?
Я то думал прога миниум будет уровня Virtual DUB, а тут даже графические
форматы не поддержаны, кроме bmp.

от: Чунин Роман
кому: All
дата: 28 Jul 2006
Hello, newart

new> Обьясни зачем простейшей программе нужно столько внешних файлов??
new> Для чего они?
new> Я то думал прога миниум будет уровня Virtual DUB, а тут даже
new> графические форматы не поддержаны, кроме bmp.

Это Borland Builder тащит с собой VCL и прочее барахло. Просто видимо проект
написан в визуальной среде а не на АПИ виндоза.

от: Константин Цоуфал
кому: All
дата: 31 Jul 2006
Hello, rasmer

это пример того как все будет выглядеть когда будет готово
формат бмп просто удобен и я планирую потдерживать только его
я щитаю что графику для видео потока всеравно надо готовить заранее и пофигу
что бмп

от: rasmer
кому: All
дата: 01 Aug 2006
Hello, coufal

cou> я cчитаю что графику для видео потока всеравно надо готовить заранее
cou> и пофигу что бмп

Полностью согласен... ждём выхода полной версии пакета...

от: Alexandr Sinyakov
кому: All
дата: 03 Oct 2006
Hello, rasmer

ВниманиЁ! Я сделал новую версию ANI EDITOR 0.3
[http://trd.speccy.cz/sbor/ANIE03.ZIP]. Появилась кучка полезных вещей.
Заценяйте и давайте идеи на новую версию

от: Alexandr Sinyakov
кому: All
дата: 05 Oct 2006
Hello, SAM style

По просьбам народонаселения - описание формата и типов упаковки *.ani.

Файл: ani-format.zip http://zx.pk.ru/attachment.php?attachmentid=3881

от: rasmer
кому: All
дата: 05 Oct 2006
Hello, Surfin' Bird

Вот что я заметил - всё хорошо, HО:
когда ставишьудаляешь пиксель - пропадает куррсорчег с экранчега пока не
двинешь мышастого. То есть можно кликать пиксель будет убиратьсяставиться, а
вот курсорчега видно небудет - косячочег...

от: Alexandr Sinyakov
кому: All
дата: 06 Oct 2006
Hello, rasmer

Каюсь, друзи мои... Мало того, что косячог был с курсорчегом и ундой (как
выяснилось, возникал он не до подгрузки оверлея, а после - каталог грузится на
то место, где лежит текущий кадр, и по выходу надо было этот кадр вытаскивать
обратно)... Самый страшный косячочег - я послал на VT не тот файлиг -
оверлейчег убивал программу апстену!
Вобщем, вот. Курсор не пропадает, оверлей грузится, ундо работает.
Striker, возьми отсюда, замени на VT, PLZ! (тут только сам редактор. описелово
и оверлей - в 0.3)
-+----
added
Hу, как водится, напоследок еще глючок: сохраняете файл, а вдруг раз - а на
текущем кадре атрибуты мигают! Файл заменил (судя по тому, что его еще никто не
качал - Striker'у глюкнутая версия не досталась)

Файл: AniE 031.zip http://zx.pk.ru/attachment.php?attachmentid=3884

от: Andrey Baglay
кому: All
дата: 06 Oct 2006
Hello, SAM style

SAM> Striker, возьми отсюда, замени на VT, PLZ!

Забрал заменим... Завтра...

от: Дмитрий Русаков
кому: All
дата: 09 Nov 2006
Hello, Striker

Есть ещё такая весьма занимательная тема как ASCII видео.
Есть фильмы в таком формате, есть даже Quake на таком движке.
Hапример вот так
http://www.open4all.info/wiki/drazen/Live_ASCII_Streaming
[http://www.open4all.info/wiki/drazen/Live_ASCII_Streaming]

от: rasmer
кому: All
дата: 10 Nov 2006
Hello, BlackWolf

а есть ещё star wars asciimation... на винте уже полтора года валяется, никак
руки недойдут переделать на спек...




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
HOT GAMES - Лучшая десятка oт Magic Soft.
От редакции - Hа днях получил от Nemo бандеpольку с General Sound и ПО к ней.
Новинки - ProTracker v.3.31 от MMCM.
Точка опоры - Доспехи для странствующих душ.
Anigdot №42 - Здравствуйте мальчики и девочки !

В этот день...   16 апреля