Black Diamond Logo

Overview

Version 1.0
Copyright © 1996 Black Diamond Consulting, All Rights Reserved.


Panoramic Image

The Surround Video™ SDK is a collection of tools that developers can use to add 360° panoramic images to an application, as well as a runtime Internet control to allow the use of Surround Video™ Images in HTML documents or WEB pages. The Surround Video™ SDK supports the use of progressive rendering, image Hotspots with URL links, and development of Internet and native multimedia titles. The Surround Video™ SDK represents a breakthrough in technology for multimedia title development.

This core technology was developed by Black Diamond Consulting, Inc. of Rye, NH in conjunction with the Microsoft Multimedia Developer Relations Group. The first public demonstration of Surround Video was the Connections title, showcased at the January 1995 Consumer Electronics Show and starring the popular historian James Burke.

There are four components to Surround Video™ SDK: The Surround Video Editor, which provides for the authoring of Surround Video Images; the Surround Video API, the runtime component responsible for image display; the Surround Video Link Editor, which provides for the authoring of Surround Video Images suitable for use on the Internet; and the Surround Video Internet Control, which is an Internet-aware OLE control.

This technology presents new editorial opportunities to a variety of entertainment and educational uses. Adventure style games authored with photo-realistic backgrounds are one opportunity. Another is guided tours of major cities, museums, real estate listings, etc.


Technical Details

At the core of the Surround Video technology is the ability to manage 360° photographic images. These images are typically photographed with a panoramic camera. A popular example is the New York City skyline seen from the top of one of the skyscrapers.

Panoramic images have the drawback that they show the proper perspective only when viewed as a cylinder. When flattened out, features which would normally be seen as straight lines become warped; in some cases, the curvature can be quite severe.

Surround Video solves the problem of correcting the image distortion when it is projected onto a flat surface, such as a monitor, through a very efficient mapping algorithm. The effect to the user is similar to panning through a camera's viewfinder: The field of vision is narrower than that normally accorded to the human eye, but retains a strong sense of circular motion as opposed to simply panning from side to side.


How Image Correction Works

Figure 1

Surround Video Images are taken with a 360°, or panoramic, camera. The geometry of a panoramic camera is significantly different than a normal camera in that all points along the length of the film are equidistant from the camera's focal point at the time of exposure. This, in effect, creates a cylindrical image which only appears correct when viewed from the exact center of the cylinder. When the film is "unrolled" onto a flat surface, such as a monitor, the image shows very noticeable distortion. Surround Video compensates for this by mathematically projecting a portion of the cylindrical image (typically, about 70 degrees) onto a flat surface. The resulting image is the same as if it were taken with a normal camera. As the surround image is scrolled horizontally on screen, the entire visible area of the original image is passed through an in-memory correction map and then to the display.

Figure 2

The specifics of the correction map are largely determined by the circumference of the surround image. However, there is another parameter affecting the correction map. The "horizon" of the image is the line that falls on the plane of the camera's rotation. In the original image this is in the exact vertical center of the film. However, after scanning and cropping, the horizon is unlikely to still fall in the center of the image. To correct for this, the Surround Video Editor lets the title developer adjust the horizon to indicate the original camera plane and produce the desired image correction.




Surround Video Editor

The Surround Video Editor (SVEdit) is used to create Surround Video Images. These images usually start off as elongated BMP files which are the result of scanning a panoramic photograph. The editor is first used to crop the left and right edges of the photograph to produce a seamless image. The image is then cropped vertically if need be. The "horizon" of the image is then set to produce the proper image correction. The final image is then compressed using any of the installed system CODECs, to produce the completed Surround Video Image.

The resultant Surround Video Image consists of a number of vertical stripes that make up the complete image. The benefit of striping the image is that any stripe can be loaded independently, so only the visible portion of the image needs to be furnished before the current view is rendered.


Surround Video API

The Surround Video API is a single Component Object Model (COM) DLL that exports a set of user accessible APIs. These APIs allow the user to quickly incorporate Surround Video Images into their applications. Its core technologies include:

It is anticipated that title developers will be able to easily incorporate the Surround Video API into their applications to allow the use of 360 Panoramic Images within their multimedia titles.


Surround Video Link Editor

The Surround Video Link Editor is an authoring tool that allows the creation of Surround Video Images suitable for use on the Internet. These images can contain hotlinks to other files or URLs. These could be links to other HTML files or other Surround Video Images. These images are used in conjunction with the Surround Video Internet Control to allow the use of Surround Video Images on Web pages viewed with Microsoft's Internet Explorer, or other compatible browser, or in other OLE container applications that support Internet OLE controls.

Any number of links can be drawn onto the image in the form of rectangles or polygons. Links are created with a name and target type. The link name is either a file name or URL describing the name of the link target. The link target type determines whether the link is another HTML target or another Surround Video Image. HTML targets cause the Internet browser to jump to the new location, whereas Surround Video Image targets are loaded and displayed in the current control window.


Surround Video Control

The Surround Video Internet Control (SVControl) is designed to function both as a standard control (meaning it can reside within an OLE container application), and as an Internet control (meaning it knows how to retrieve data by way of the Internet and can be sponsored on a Web page).

The Surround Video Control knows where to get its data by parsing its data source's name property. If the data source name is in the form of a URL, the control downloads the data from the specified URL using the new ActiveX™ technology developed by Microsoft Corporation.

When a link is selected from within the control, the control first determines whether the link is defined as internal or external, then takes the appropriate action. If the link is defined as internal, the control attempts to open the specified data source name for that link within itself. If the link is defined as external, the control notifies its container that it needs to handle the opening of the specified data source name for that link.

The Surround Video Control processes both Surround Video Image files (*.svi) and Surround Video Link files (*.svh). Currently, if the user wishes to use the control's ability to do progressive rendering over the Internet, the file to be downloaded and displayed must be of type .svh.