Plutonium #11

Видео на Спектруме - Продолжение рассказа о видео. Начало в Рlutоniuм#9 Интерлейсное видео и немного теории сжатия видео МРEG'ом.

╔═--------------------- -- --  --         
|          Видео на Спектруме.          | 
      --  -- -- -----------------------═╝ 
 (c)Lynx/Infоtek                          
                                          
       Продолжение рассказа о видео.      
          Начало в Рlutоniuм#9            
           Интерлейсное видео             
      и немного теории сжатия видео       
                МРEG'ом.                  
                                          
   В вышеуказанном номере нашей газеты мы 
обсудили  самый  качественный вывод видео 
на  экран спектрума - вывод видео в высо- 
ком разрешении.                           
   Да,  это  качественный  вывод видео на 
экран,  но он не приемлем для длинных ро- 
ликов. Другое широкое распространение по- 
лучие  проинтерлейсенное  видео  - видео, 
кадры  которого  выводятся на экран через 
строчку.  Соответственно  и в памяти и на 
диске  данные  изображения занимают в два 
раза меньше экрана - 3O72 байта (#COO).   
  Kак  же  'сотворить' данное изображение 
на  спектруме?  Само  собой, вначале надо 
иметь исходник - кадры сконверченного ви- 
део.                                      
  Далее надо их проредить через строчку - 
проинтерлейсить. Т.е. снимать изображение 
с  экрана  через строчку. Это можно легко 
сделать в моей программе Firestarter.     
  Далее нужно считать эти файлы в страни- 
цы  памяти  и уже потом отгрузить на диск 
образы этих страниц.                      
  Для расчетов поможет следуюшая таблица: 
                                          
 ╔═══════+════════════+════════╗          
 ║ Kадр  |  Страница  | адрес  ║          
 +-------+------------+--------+          
 ║ 1.    |  O (#1O)   | #СOOO  ║          
 ║ 2.    |            | #ССOO  ║          
 ║ 3.    |            | #D9OO  ║          
 ║ 4.    |            | #E6OO  ║          
 ║ 5.    |            | #F2OO  ║          
 ║ 6.    |  1 (#11)   | #COOO  ║          
 ║ 7.    |            | #CCOO  ║          
 ║ 8.    |            | #D9OO  ║          
 ║ 9.    |            | #E6OO  ║          
 ║ 1O.   |            | #F2OO  ║          
 ║ 11.   |  3 (#13)   | #COOO  ║          
 ║ 12.   |            | #CCOO  ║          
 ║ 13.   |            | #D9OO  ║          
 ║ 14.   |            | #E6OO  ║          
 ║ 15.   |            | #F2OO  ║          
 ║ 16.   |  4 (#14)   | #COOO  ║          
 ║ 17.   |            | #CCOO  ║          
 ║ 18.   |            | #D9OO  ║          
 ║ 19.   |            | #E6OO  ║          
 ║ 2O.   |            | #F2OO  ║          
 ║ 21.   |  6 (#16)   | #COOO  ║          
 ║ 22.   |            | #CCOO  ║          
 ║ 23.   |            | #D9OO  ║          
 ║ 24.   |            | #E6OO  ║          
 ║ 25.   |            | #F2OO  ║          
 ║ 26.   |  7 (#17)   | #COOO  ║          
 ║ 27.   |            | #CCOO  ║          
 ║ 28.   |            | #D9OO  ║          
 ║ 29.   |            | #E6OO  ║          
 ║ 3O.   |            | #F2OO  ║          
 ╚═══════+════════════+════════╝          
                                          
   Далее,  исходя  из  этих  данных нужно 
составить  таблицу, по которой будет ори- 
ентироваться ваша процедура вывода видео. 
Надо сделать это сл. образом:             
                                          
    db адрес кадра, номер страницы,...    
 Например:                                
    db #COOO,#13,#CCOO,#13,#D9OO,#13...   
  После  того, как построение таблицы за- 
кончено  надо сотворить алгоритм, который 
подобен  тому,  что  был в номере 9 нашей 
газеты.                                   
  А  вот  сама процедура вывода проинтер- 
лейсенного  кадра  видео на экран (данные 
должны   быть   ввиде  спрайта  размерами 
32*12).                                   
                                          
                                          
:Interlaced screen рrint                  
:(c)Infоtek                               
                                          
INTSCR LD   L,4OOO                        
       LD   DE,#4OO1                      
       LD   ВC,6144                       
       LD   (HL),L                        
       LDIR                               
       LD   HL,#DВOO :Буфер в памяти      
       LD   DE,#4OOO :Kуда выводить       
       LD   В,#6O                         
INT1   РUSH ВC,DE                         
       LD   ВC,#2O                        
       LDIR                               
       РOР  DE                            
       INC  D                             
       INC  D                             
       LD   A,D                           
       AND  7                             
       JR   NZ,INT2                       
       LD   A,D                           
       SUВ  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   РOР  ВC                            
       DJNZ INT1                          
       RET                                
                                          
  Вот. Теперь поговорим о том, где данное 
видео  уже  применялось. Демы перечислить 
довольно  трудно,  но, наиболее ярким об- 
разцом  видео  в  данном формате обладает 
дема Роwer Uр.                            
  Там  довольно  неплохое видео. Занимает 
оно там весь диск и читается прямой рабо- 
той  с  ВГ93.  Причем  читается  довольно 
быстро.                                   
  Это  один  вариант. Другое, тоже интер- 
лейсенное  видео я видел в деме Refresh - 
там видео выводится из памяти, а вто вре- 
мя,  как оно выводится, подгружается сама 
дема.                                     
 Другие  варианты  интерлейсеного видео - 
это  масштабирования  спрайтов в два раза 
через пиксель. Это видео занимает офиген- 
но мало(1248 байт на кадр).               
 На этот раз о видео все. В следуюшем но- 
мере   будет  рассмотрено  видео  чанками 
(пикселями 4*4).                          
                ╔╗   ╔╗                   
 ═══════════════╝║╔═╗║╚═════════════════  
                 ╚╝ ╚╝                    
      Совсем немного теории ужатия        
        методом сравнения (МРEG)          
                                          
   Метод  МРEG  представляет собой способ 
сжатия   информации   путем   записывания 
только измененных байтов.                 
   Для  определенного видео это очень по- 
лезный и эффективный способ сжатия.       
   Способ состоит в следуюшем:            
 Берется  два  кадра. Первый кадр в видео 
берется  за основу всего видео. Он разби- 
вается на сектора (например по 64 байта). 
Далее  эти два кадра сравниваются и запи- 
сываются  только отличия второго кадра от 
первого.                                  
  Далее  так  происходит с каждым кадром. 
Можете  спросить: зачем разбивать кадр на 
секции?  Для  того,  что  на изменяюшийся 
байт  было не три байта (2 байта - адрес, 
3  - сам байт), а всего два (1 байт - но- 
мер сектора и байта в нем,2 - сам байт).  
  Данный способ позволяет упаковывать ви- 
део в приличные объемы. Для примера - ро- 
лик в начале игры Kовинова МegaВоом в 3OO 
кадров (или около того) занимает 3O кило- 
байт (!!!).                               
  Kстати  Kовинов - первый, кто изобрел и 
поюзал  этот формат на Спекки !!! Так что 
слюньки не пускайте!!!                    
                                          
  Ну наконец то все...                    




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

Похожие статьи:
Что,где, почем - о пpогpаммных пpодуктах, попавших мне в pуки за последнюю неделю.
free humor - aнекдот недели от Freeman'a.
Версии - 2 версии игры: JAWS.

В этот день...   17 ноября