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, StereoscopicLayout, StereoscopicSkip,
StereoscopicHalfWidth and StereoscopicHalfHeight. 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. |
|