|
╔═--------------------- -- -- -- | Видео на Спектруме. | -- -- -- -----------------------═╝ (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:
|
|
|
|
|
|
Similar articles:
В этот день... 21 November