AVM2

Feb. 16th, 2011 11:56 pm
thedeemon: (Default)
[personal profile] thedeemon
Сейчас доделываем Flash-based проигрыватель для видео, сжатого лучшим в мире кодеком для экранного видео. Для него как раз делался парсер из предыдущего поста. Декодер был переведен с С++ на haXe. Тот компилирует в байткод AVM2 - виртуальной машины, используемой в 9 и 10-м флэше. Дальше ВМ его на клиенте уже JIT'ит и выполняет. Причем байткод имеет стековую ОО семантику (а-ля JVM) с минимумом типизации (например, для сложения есть отдельные команды для интов, а для сравнения уже нет, только общие, рассчитанные на определение типа в рантайме). JIT'у приходится типы выводить. Сегодня немного посравнивал скорость и впечатлился: декодер на haXe & Flash player отличается по скорости от C++ & Intel compiler всего процентов на 20. А вы говорите флэш тормозит.

Демку проигрывателя можно пощупать тут:
http://data.infognition.com/sp_demo/

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

Флэшка с декодером, парсером и логикой плеера сейчас занимает меньше 20 КБ. Осталось прикрутить звук и сделать управление посимпатичней.

Date: 2011-02-17 04:16 am (UTC)
From: [identity profile] dmitri-pavlov.livejournal.com
>Распространенность сегодня
Именно что сегодня.
Завтра этот кодек уже никому не нужен будет, по причине исчезновения flash.

Date: 2011-02-17 04:52 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Могу поспорить, что через год распространенность flash player'a будет не ниже сегодняшней. И вполне возможно, все еще выше, чем доля клиентов с полноценной поддержкой HTML5.

Ну и обеспечивать работоспособность и производительность кодека на постоянно меняющемся зоопарке браузеров (у некоторых из которых обращение к массиву даже не О(1)) как-то не улыбается.

Date: 2011-02-17 05:28 am (UTC)
From: [identity profile] dmitri-pavlov.livejournal.com
Лично я уверен что относительная доля flash
через год будет меньше, чем сейчас.
Это даже легко проверить, надо только понять,
как измерить относительную долю распространённости flash.

Ну а новый гугловский кодек просто вставят
в браузеры и никакой flash не нужен будет.

Кодеки не должны реализовываться ни на JavaScript,
ни на Flash.

Date: 2011-02-17 06:34 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Ну я-то не гугл, и свой кодек в браузеры вставить не могу. А применение флэша задачу просмотра в браузере решает успешно.

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 25th, 2026 12:33 pm
Powered by Dreamwidth Studios