Video on the Spectrum - Continuation of the story about the video. Start in Plutonium #9 Interlaced video and a little theory of MPEG video compression.

Plutonium #11
╔═--------------------- -- -- --        
|        Video on Spectrum.   | 
      -- -- -- -----------------------═╝ 
 (c)Lynx/Infotek                         
                         
  Continuation of the story about the video.      
  Beginning in Plutonium#9     
  Interlaced video     
  and a little video compression theory     
  MPEG.                  
      
 In the above issue of our newspaper we 
discussed the highest quality video output 
on the Spectrum screen - video output in high- 
com permission.                           
   Yes, it's high qualityoutput video to 
screen, but it is not acceptable for long ro- 
faces Another widespread 
best interlaced video - video, 
the frames of which are displayed on the screen through 
line.  Accordingly, both in memory and on 
disk image data takes up two 
times smaller than the screen - 3O72 bytes (#COO).   
  How to 'create' this image 
on Spectrum?  Of course, first you need 
have the source - frames of the converted video 
deo.                                      
  Next you need to thin them out through the line - 
Interlace. Those. take an image 
from the screen through a line. This can be done easily 
make in my Firestarter program.     
  Next you need to read these files into the page 
memory and then upload it to disk 
images of these pages.                      
  The following table will help you with your calculations: 
                                          
 ╔═══════+════════════+════════╗          
 ║ Frame |  Page | address ║          
 +-------+-----------+--------+          
 ║ 1. |  O(#1O) | #COOO ║          
 ║ 2. |            | #CCOO ║          
 ║ 3. |            | #D9OO ║          
 ║ 4. |            | #EbOO ║          
 ║ 5. |            | #F2OO ║          
 ║ 6. |  1 (#11) | #COOO ║          
 ║ 7. |            | #CCOO ║          
 ║ 8. |            | #D9OO ║║ 9. |            | #EbOO ║          
 ║ 1O.   |            | #F2OO ║          
 ║ 11. |  3 (#13) | #COOO ║          
 ║ 12. |            | #CCOO ║          
 ║ 13. |            | #D9OO ║          
 ║ 14. |            | #EbOO ║          
 ║ 15. |            | #F2OO ║          
 ║ 16. |  4 (#14) | #COOO ║          
 ║ 17. |            | #CCOO ║          
 ║ 18. |            | #D9OO ║          
 ║ 19. |            | #EbOO ║          
 ║ 2O.   |            | #F2OO ║          
 ║ 21. |  6 (#16) | #COOO ║          
 ║ 22. |            | #CCOO ║          
 ║ 23. |            | #D9OO ║          
 ║ 24. |            | #EbOO ║          
 ║ 25. |            | #F2OO ║          
 ║ 26. |  7 (#17) | #COOO ║          
 ║ 27. |            | #CCOO ║          
 ║ 28. |            | #D9OO ║          
 ║ 29. |            | #EbOO ║          
 ║ 3O.   |            | #F2OO ║          
 ╚══════════════════════════          
                                          
   Next, based on this data we need 
draw up a table by which the ori- 
ent your video output routine. 
It is necessary to do it sl. thus:             
                                          
    db frame address, page number,...    
 For example:                                
    db #COOO,#13,#CCOO,#13,#D9OO,#13...After the construction of the table is completed 
of course we need to create an algorithm that 
similar to the one in number 9 of ours 
newspapers.                                   
  But the procedure for outputting the inter- 
leysen frame of video onto the screen (data 
must be sprite sized 
32*12).                                   
                                          
                                          
:Interlaced screen print                  
:(c)Infotek                               
                                          
INTSCR LD L,ХOOOO                        
       LD DE,#ЧOO1                      
       LD VS,6144                       
       LD(HL),L                        
       LDIR                               
       LD HL,#DBOO :Buffer in memory      
       LD DE,#ХОOO :Where to withdraw       
       LD B,#6O                         
INT1 PUSH BC,DE                         
       LD Sun,#2O                        
       LDIR                               
       POP DE                            
       INC D                             
       INC D                             
       LD A,D                           
       AND 7                             
       JR NZ,INT2                       
       LD A,D                           
       SUB8                             
       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 Sun                            
 DJNZ INT1                          
       RET                                
                                          
  Here. Now let's talk about where this 
The video has already been used. Dems to list 
quite difficult, but the most striking ob- 
The video size in this format has 
Deme Power Up.                            
  There's a pretty good video there. Occupies 
it is there the entire disk and is read directly by 
the one with VG93.  And it's quite readable 
quickly.                                   
  This is one option. Other, also inter- 
I saw this video in the Refresh demo - 
there the video is removed from memory, and then 
I, as it is displayed, loads itself 
dema.                                     
 Other interlaced video options - 
this is scaling the sprites twice 
via pixel. This video is awesome 
but not enough (1248 bytes per frame).               
 This time it's all about the video.In the next but- 
At least the video will be reviewed in chunks 
(pixels 4*4).                          
                ╔╗ ╔╗                   
 ═══════════════╝║╔═╗║╚═════════════════  
                 ╚╝ ╚╝                    
      Just a little compression theory        
       comparison method (MPEG)        
              
   TheMPEGmethod is a method 
compression of information by recording 
only changed bytes.                 
   For a certain video this is very 
A useful and effective compression method.       
   The method is as follows:            
 Two frames are taken. First frame in the video 
is taken as the basis for the entire video. He broke 
is divided into sectors (for example, 64 bytes). 
Next, these two frames are compared and recorded 
only the differences between the second frame and 
first.                                  
  This then happens with every frame. 
You may ask: why split the frame into 
sections?  For what's changing 
byte was not three bytes (2 bytes - address, 
3 - the byte itself), and only two (1 byte - but- 
measures the sector and the byte in it, 2 - the byte itself).  
  This method allowspack vi- 
deo in decent volumes. For example - ro- 
face at the beginning of the game Kobuhoba MegaBoom in ZOO 
frames (or so) takes 3O kilo- 
byte (!!!).                               
  By the way Kovinov is the first to invent and 
I used this format on Specky!!! So 
don't let your mouth water!!!                    
                                          
  Well, finally everything...                    

Share your thoughts about the article