╔═--------------------- -- -- --
| Видео на Спектруме. |
-- -- -- -----------------------═╝
(c)Lynx/Infotek
Продолжение рассказа о видео.
Начало в Plutonium#9
Интерлейсное видео
и немного теории сжатия видео
MPEG'ом.
В вышеуказанном номере нашей газеты мы
обсудили самый качественный вывод видео
на экран спектрума - вывод видео в высо-
ком разрешении.
Да, это качественный вывод видео на
экран, но он не приемлем для длинных ро-
ликов. Другое широкое распространение по-
лучие проинтерлейсенное видео - видео,
кадры которого выводятся на экран через
строчку. Соответственно и в памяти и на
диске данные изображения занимают в два
раза меньше экрана - 3O72 байта (#COO).
Как же 'сотворить' данное изображение
на спектруме? Само собой, вначале надо
иметь исходник - кадры сконверченного ви-
део.
Далее надо их проредить через строчку -
проинтерлейсить. Т.е. снимать изображение
с экрана через строчку. Это можно легко
сделать в моей программе Firestarter.
Далее нужно считать эти файлы в страни-
цы памяти и уже потом отгрузить на диск
образы этих страниц.
Для расчетов поможет следуюшая таблица:
╔═══════+════════════+════════╗
║ Кадр | Страница | адрес ║
+-------+------------+--------+
║ 1. | O (#1O) | #COOO ║
║ 2. | | #CCOO ║
║ 3. | | #D9OO ║
║ 4. | | #EбOO ║
║ 5. | | #F2OO ║
║ 6. | 1 (#11) | #COOO ║
║ 7. | | #CCOO ║
║ 8. | | #D9OO ║
║ 9. | | #EбOO ║
║ 1O. | | #F2OO ║
║ 11. | 3 (#13) | #COOO ║
║ 12. | | #CCOO ║
║ 13. | | #D9OO ║
║ 14. | | #EбOO ║
║ 15. | | #F2OO ║
║ 16. | 4 (#14) | #COOO ║
║ 17. | | #CCOO ║
║ 18. | | #D9OO ║
║ 19. | | #EбOO ║
║ 2O. | | #F2OO ║
║ 21. | 6 (#16) | #COOO ║
║ 22. | | #CCOO ║
║ 23. | | #D9OO ║
║ 24. | | #EбOO ║
║ 25. | | #F2OO ║
║ 26. | 7 (#17) | #COOO ║
║ 27. | | #CCOO ║
║ 28. | | #D9OO ║
║ 29. | | #EбOO ║
║ 3O. | | #F2OO ║
╚═══════+════════════+════════╝
Далее, исходя из этих данных нужно
составить таблицу, по которой будет ори-
ентироваться ваша процедура вывода видео.
Надо сделать это сл. образом:
db адрес кадра, номер страницы,...
Например:
db #COOO,#13,#CCOO,#13,#D9OO,#13...
После того, как построение таблицы за-
кончено надо сотворить алгоритм, который
подобен тому, что был в номере 9 нашей
газеты.
А вот сама процедура вывода проинтер-
лейсенного кадра видео на экран (данные
должны быть ввиде спрайта размерами
32*12).
:Interlaced screen print
:(c)Infotek
INTSCR LD L,ЧOOO
LD DE,#ЧOO1
LD ВС,6144
LD (HL),L
LDIR
LD HL,#DBOO :Буфер в памяти
LD DE,#ЧOOO :Куда выводить
LD В,#6O
INT1 PUSH ВС,DE
LD ВС,#2O
LDIR
POP DE
INC D
INC D
LD A,D
AND 7
JR NZ,INT2
LD A,D
SUB 8
LD D,A
LD A,E
ADD A,32
LD E,A
JR NC,INT2
LD A,D
ADD A,8
LD D,A
INT2 POP ВС
DJNZ INT1
RET
Вот. Теперь поговорим о том, где данное
видео уже применялось. Демы перечислить
довольно трудно, но, наиболее ярким об-
разцом видео в данном формате обладает
дема Power Up.
Там довольно неплохое видео. Занимает
оно там весь диск и читается прямой рабо-
той с ВГ93. Причем читается довольно
быстро.
Это один вариант. Другое, тоже интер-
лейсенное видео я видел в деме Refresh -
там видео выводится из памяти, а вто вре-
мя, как оно выводится, подгружается сама
дема.
Другие варианты интерлейсеного видео -
это масштабирования спрайтов в два раза
через пиксель. Это видео занимает офиген-
но мало(1248 байт на кадр).
На этот раз о видео все. В следуюшем но-
мере будет рассмотрено видео чанками
(пикселями 4*4).
╔╗ ╔╗
═══════════════╝║╔═╗║╚═════════════════
╚╝ ╚╝
Совсем немного теории ужатия
методом сравнения (MPEG)
Метод MPEG представляет собой способ
сжатия информации путем записывания
только измененных байтов.
Для определенного видео это очень по-
лезный и эффективный способ сжатия.
Способ состоит в следуюшем:
Берется два кадра. Первый кадр в видео
берется за основу всего видео. Он разби-
вается на сектора (например по 64 байта).
Далее эти два кадра сравниваются и запи-
сываются только отличия второго кадра от
первого.
Далее так происходит с каждым кадром.
Можете спросить: зачем разбивать кадр на
секции? Для того, что на изменяюшийся
байт было не три байта (2 байта - адрес,
3 - сам байт), а всего два (1 байт - но-
мер сектора и байта в нем,2 - сам байт).
Данный способ позволяет упаковывать ви-
део в приличные объемы. Для примера - ро-
лик в начале игры Kobuhoba MegaBoom в ЗОО
кадров (или около того) занимает 3O кило-
байт (!!!).
Кстати Ковинов - первый, кто изобрел и
поюзал этот формат на Спекки !!! Так что
слюньки не пускайте!!!
Ну наконец то все...
Other articles: