November 29th, 2019

June 6th, 2018

 

Specification for Stereoscopic Windows Media Files v0.2

This is a preliminary specification and subject to change.

Content

Introduction

It is the goal of this specification to define a format for stereoscopic video files, based on Windows Media technology. The suggested format is easy to implement and offers the following features:

  • Configuration-free playback: Playback is possible without any prior configuration. All information required for playback is embedded in the video file.
  • 3D notification: Notifies the user when a 3D file is opened in a 2D video playback software.
  • Backwards compatibility (optional): 2D video playback software is able to play a stereoscopic Windows Media file, rendering the left view only.
  • High definition compatibility (optional): Encoding high definition stereoscopic content in traditional side-by-side or over/under format causes performance problems because current codec implementations cannot make use of multi processor systems and dual core CPUs. Using separate streams for left and right view solves the issue.
  • Multi language compatibility: The format supports multiple audio tracks.
  • Digital Rights Management: A commercially viable format requires support for rights management mechanisms.

The specification for stereoscopic Windows Media files is built upon Microsoft's ASF Specification. Multi language compatibility and Digital Rights Management are standard features of the Windows Media format and will not be addressed in this document.

Codecs

SMTPE VC-1 Advanced Profile (= Windows Media Video 9 Advanced Profile) should be used as video codec. Windows Media Audio 9 should be used for mono and stereo audio content, Windows Media Audio 9 Professional for high definition or multi channel audio content.

Video Streams

Left and right view should be either encoded as single video stream in side-by-side format or over/under format, or each view should be encoded as separate video stream.

In case separate streams are used, video stream numbers should be ordered from left to right. The most-left video streams has the lowest number, the most-right video stream the highest number. It is not required that video stream numbers are continuous. The number of video streams is limited by the ASF format only. Playback applications supporting only stereoscopic viewing methods (requiring two views only) should be able to decode just the first two video streams and ignore the remaining streams.

Mutual Exclusions

The mutual exclusion object should be set for dual stream and multi stream layouts only. This chapter does not apply for side-by-side and over/under layout.

An Advanced Mutual Exclusion Object should be used to define a mutual exclusive relationship between all video streams. The type ASF_Mutex_Unknown (D6E22A02-35DA-11D1-9034-00A0C90349BE) should be used.

Attributes

The following file level attributes are required to be present in the Extended Content Description Object:

Name   Type   Allowed Values
Stereoscopic   Boolean   True
StereoscopicLayout   Unicode string   "SideBySideRF" (side-by-side, right image first),
"SideBySideLF" (side-by-side, left image first),
"OverUnderRT" (over/under, right image top),
"OverUnderLT", (over/under, left image top),
"DualStream", (separate left/right streams),
"MultiStream" (more than two streams)
 
Remarks:   Side-by-side and over/under layouts provide better compatibility with existing stereoscopic playback applications, but do not provide compatibility with 2D playback applications. Consequently, the dual stream layout is recommended when it is not possible to provide a separate 2D version (e.g. lack of space on DVD-ROM), else, side-by-side or over/under format should be preferred.

The following file level attributes can be present in the Extended Content Description Object:

Name   Type   Content
StereoscopicSkip   Qword   Duration of the intro to be skipped by 3D video player software in 100 ns units.
StereoscopicHalfWidth   Boolean   Specifies if content is encoded at half horizontal resolution.
StereoscopicHalfHeight   Boolean   Specifies if content is encoded at half vertical resolution.
StereoscopicPreview   Byte array   JPEG image with a resolution of 160 x 120 pixels and a maximum size of 10240 bytes.
Source   Unicode string   Points to the source where the movie can be obtained; usually, but not necessarily, an URL.
 
Remarks:   StereoscopicHalfWidth and StereoscopicHalfHeight attributes are only required if the half horizontal or vertical resolution has not be compensated by the pixel aspect ratio. If the pixel aspect ratio already stretches the video to the full resolution, StereoscopicHalfWidth or StereoscopicHalfHeight must not be specified. These attributes should be used for legacy content only, where the aspect ratio has not been properly set during encoding.
    StereoscopicPreview and Source are used by the Stereoscopic Player video library. Other implementations are not required to implement these attributes, opposed to the StereoscopicSkip, StereoscopicHalfWidth and StereoscopicHalfHeight attributes which are required for proper playback.

Implementation Levels

All compliant implementations are required to support the attributes Stereoscopic, Stereoscopic­Layout, Stereoscopic­Skip, Stereoscopic­HalfWidth and Stereoscopic­HalfHeight. Depending on the implementation level, the following layouts must be supported.

Level   Required Layouts
Basic level   "SideBySideRF", "SideBySideLF", "OverUnderRT" and "OverUnderLT"
Multi stream level   all of basic level plus "DualStream" and "MultiStream"
 
Remarks:   Multi-stream level applications must be able to use the first two streams of multi stream files but may ignore the remaining streams. Typically, only application targeting multi-view autostereoscopic displays require more than two streams. Stereoscopic Player implements the multi-stream level, but does not make use of more than two streams.
    The basic level can be added to existing stereoscopic playback applications which already support side-by-side and over/under formats fairly easily. Multi-stream level, however, requires a custom file reader implementation (e.g. based on the Windows Media Format SDK) because the DirectShow filters provided by Microsoft deliver a single video stream only.
    Digital Rights Management is beyond the scope of this specification. However, support for Microsoft DRM 10 is strongly recommended.