Overview

The Surround Video(tm) SDK is a collection of tools that developers can use to add 360 degree 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(tm) SDK supports the use of progressive rendering, image Hotspots with URL links, and development of Internet and native multimedia titles. The Surround Video(tm) SDK represents a breakthrough in technology for multimedia title development.

There are four components to Surround Video SDK: 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 Control for ActiveX , 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 degree; 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

Surround Video Images are taken with a 360 degree, 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.

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:

•	“ On-The-Fly” image correction.

•	Opening images at any location.

•	Supporting compressed, uncompressed and/or striped images.

•	Non-visible portions of the image read as needed from the background.

•	Opening compressed images in 8 or 24 bit mode.

•	Very efficient panning and custom blitting algorithms.

•	Support for Hotspot hit testing within the image.

•	Palette manipulation.

•	Full Pan and Zoom support.

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.


Scrolling an Image

An image is scrolled using the Compass Window.


Compass Window

The compass window is displayed by selecting the View/Compass menu item. This brings the compass window up in the upper left-hand corner of the image pane.

The shaded arc on the compass is the section of the image that is visible in the image pane.  The image can now be scrolled by clicking and/or dragging the mouse on the compass.


Setting the Horizon in an Image

When a new image is loaded into the Surround Video Editor the horizon is placed at the center of the image by default.

The horizon is displayed as a horizontal line across the image pane.  To make the horizon visible insure that the View/Horizon menu item is selected.  When the cursor is moved over the horizon line the cursor will change to the horizon cursor.  Press the left mouse button and drag the horizon line up or down.  If image correction is turned on the image will re-draw when the horizon is released.


Setting the Origin in an Image

The origin specifies the horizontal 0 coordinate for an image.  This has no direct effect on how the image is drawn, only where the horizontal 0 coordinate is.

The origin is displayed as a vertical line in the image pane. To make the horizon visible insure that the View/Horizon menu item is selected.  When the cursor is moved over the horizon line the cursor will change to the origin cursor.  Press the left mouse button and drag the origin line left or right.  Release the mouse button when the cursor line is in the correct place.

When the origin has been is at its desired final position it can be stored into the image by using the Edit/Set Origin or Edit/Crop Image +Set Origin menu selections.  The image will re-draw with the origin at the left edge of the image pane.


Cropping an Image

An image can be cropped horizontally and vertically to remove excess scanned data.  After adjusting the crop marks the crop can be executed.

Setting the crop marks

Crop marks are displayed in the image pane by enabling the View/Crop Marks menu item.

When the cursor is dragged over a crop mark the cursor image changes to one of four crop cursors.  Press the left mouse button and slide the crop mark.  When done release the mouse to set the crop mark.  When a crop mark is dragged into the image the area to be cropped will be marked with diagonal lines.

Setting the image seam

The horizontal cropping is also used to set the seam for a 360 degree image.  When the horizontal crop marks are moved the image in seam pane the is also updated.  Move the left and right crop marks until the seam is correct.

Execute the crop

Use the Edit/Crop Image, or Edit/Crop Image + Set Origin menu selection to execute the crop.  If horizontal cropping is being done a dialog will ask if the image’s field of view should be changed from 360 degrees.  Answer Yes only if the resultant image would not be a complete 360 degrees around.  If the field of view needs to be changed after cropping use the image’s Property Sheet.

After being cropped the image will be redrawn with the origin at the left edge of the image pane.


Image Correction

Image Correction is enabled by selecting the View/Image Correction menu selection.  When image correction is off the image will appear flat, and straight lines within the image will appear curved.  When image correction is on the image will appear curved, and straight lines within the image will appear straight.  It is usually easier to turn image correction off when cropping an image.


Image Compression Options

Strip width:  The number of pixels in each strip.

Number of strips:  Use the slider to specify how many strips the image will be divided into.  The strip width will be adjusted automatically.


Image Compression Configuration

Compressor:  Select the compression codec  from the drop down list.  All available compressing codecs will be listed.

Compression Quality:  Select the quality of the compression using the slider.  The lower the quality the more the image can be compressed.

About:  Displays information about the current codec.

Configure:  Configuration dialog for codec, if available.


Properties Sheet

The image’s general property sheet is brought up by selecting the File/Properties menu item, or by pressing <Alt-Enter>.

Field of view in degrees:  Set the number of degrees the image covers.  This would usually will be 360 degrees for surround images.  If not set to 360 degrees then there will be a Dead Spot.

Image Width, Height, Horizon, Bit Depth:  These non editable properties of the image are displayed in pixels.


Tips And Tricks

Compression

Don’t compress the image until all editing is done on it.  Most compression routines are lossey.  In fact if is best if two copies of the image are saved:  one compressed and the other non-compressed.  If the image needs to be modified the changes can be made to the non-compressed image and then compressed.  This will not degrade the image quality.

Image Correction

Leave image correction of when setting the crop marks (and setting the seam).  This makes it easier to line things up.

Setting The Origin

Crop the image before moving the origin.  On a new image the crop marks and origin start at the left side of an image (where the seam usually is).  If the origin is moved before the image is cropped and the seam is set it may be impossible to adjust the vertical crop marks around the seam.


Compass Window Visible Arc

The shaded arc represents the portion the image cylinder that is visible in the image pane


Compass Window NonVisible Arc
Compass Window Non-Visible Arc

The non-shaded arc represents the portion the image cylinder that is not visible in the image pane


 Dead Spot

If an image is not a complete 360 degrees then there will be a portion of the rotation where there is no image.  Instead of diplaying blank space the image will simply stop moving when the compass is passing through the dead spot.  When the image is displayed in the Surround Video Control it will not scroll past the edge of the image.


CODEC

Audio or video compression/decompression driver.


lossey

Used to describe an image compression that loses resolution when compressed.


Image Pane

The left hand pane of the program window is called the image pane.  The complete surround image is displayed here.  Its width can be adjusted by grabbing the vertical divider and sliding it to the left or right.


Seam Pane

The right hand pane of the program window is called the seam pane.  The origin of the image is centered in this window.  Usually this is where the image seam is displayed.  Its width can be adjusted by grabbing the vertical divider and sliding it to the left or right.