AG fuer technische Informatik Meystre
The making of TurnOut screensaver
1993 Video caption was available and the first panoramic views using VideoBlaster and FhotoFisnish was born.
The 24 Bit true color bitmaps was not viewable with standard VGA, so color reduction was used to view the panorama on any computer display of this time using just 16 colors.
With Intel 486/33 and 8MByte memory creation and manipulation of large images was rather difficult and time consuming.
The results of this early screensaver are still downloadable on the net as 16bit version for Windows 3.0 / 3.11 ( turn16*.zip )
This screensaver was programmed using Microsofts Quick C for Windows. The activation control was not part of the Windows system. The screensaver is started as an application ( bs.exe with bshook.dll as action controller )
With the introduction of Windows 95 and Windows NT a new 32 Bit object oriented version was developed using C++ and the MFC classes. From now the activation control and the login dialog is a part of Windows. The screensaver TurnOut.scr is configured using the desktop settings.
A first 256 color version was abandoned due to palette problems with some video cards. From summer 97 the Windows for Video API is used to display the panorama as DIB on any screen and for any color deep using the DrawDibDraw function.
The Bitmap is stored inside the screensaver code, pictures becomes larger and larger and more than 1 picture per screensaver blow up the program size to megabytes.
Compression is a must. JPEG is available as C Source, with a lot code. A minimized object oriented C++ jpeg encoder/decoder is built using the description and examples of the Independent JPEG Group. One Set of jpeg tables are used for all pictures. Each panoramic view is stored as Huffman string and uses the unified tables. The Huffman string is stored as resource and just the selected picture is loaded and decoded to a bitmap at activation time.
This approach make it possible to pack 4 views and more in 1 screensaver.
The biggest panorama of the Antarctic set (288 x 6504) has a size of 10 megabytes, a Huffman string of 292k only and the screensaver size is just 592k, including additional 3 panoramic views. The total size of the 4 bitmaps alone is 14 megabytes.
the building steps.
Pictures are taken with camcorder ( Panasonic VHS-C / Sony PC1E ).
Transferred to computer using a Hauppauge WinTV capture card
1. creating single frame avi, about 10 to 16 overlapping pictures of the full panorama sequence.
2. each frame is stored as 24 color bitmap ( 240 x 320 )
PanoPatcher puts the frames together adapting position and color.
This is not an automatic panorama builder requesting precise picture elements. You can use poor synchronized frames - taken on the fly, up and down - to get nice results.
PanoPatch is now available for download (435KB).
Panopatcher generate a 24bit Bitmap with black borders. Refine and size the final bitmap using any standard tools ( PhotoEditor, PhotoDeluxe, photofinisher ... or Gimp with Linux)
The next step is the jpeg coding to get the Huffman string as loadable resource for the screensaver.
The last step is combining 4 pictures to 1 resource (.rc2) an making a new build of TurnOut.
Even abandoned by Compaq and Microsoft, I still maintain a DEC-Alpha-AXP native TurnOut version.
Linux versions are planed.