Video
view
Windows Media Video (WMV) generally refers to a
range of video codecs developed by Microsoft over the years. Even
though the range of codecs start with Windows Media Video 7 series,
and subsequently evolved to Windows Media Video 8 and the Windows
Media Video 9 series of codecs, Windows Media 7 and 8 codecs remain
proprietary to Microsoft, while Windows Media 9 has been standardised
as an independent (Society of Motion Picture and Television Engineers)
SMPTE standard – SMPTE 421M, also known as VC-1. All these
codecs, however, are part of the Windows Media framework.
WMV
is not built solely on Microsoft in-house technology. It is believed
that WMV version 7 (WMV1) was built upon Microsoft's own non-standard
version of MPEG-4 Part 2. As WMV 7 and WMV8 remain proprietary,
it is reasonable to assume that they are sufficiently different
from WMV9 which Microsoft itself claims as their flagship multimedia
codec series that has been made an open standard.
The Windows Media Video codecs were originally
developed as proprietary codecs for low-bit rate streaming applications.
In 2003 Microsoft drafted a video codec specification based on its
Windows Media Video version 9 codec, and submitted it to SMPTE for
standardisation. The standard was officially approved on April 3,
2006 as SMPTE 421M, thus making the Windows Media Video 9 codec
no longer a proprietary technology. Earlier versions of the codec
(7 and 8) are still considered proprietary, as they fall outside
the SMPTE 421M standard. The video stream is often combined with
an audio stream of Windows Media Audio and encapsulated in Advanced
Systems Format files, carrying the .wmv or .asf file extensions.
In the past, interlaced video content was always
de-interlaced before encoding with the Windows Media Video codec.
Now, the Windows Media 9 video encoder supports compression of interlaced
content without first converting it to progressive. Maintaining
interlacing in an encoded file is important, if the content is ever
rendered on an interlaced display, such as a television. Transport-independence
also enables the delivery of Windows Media Video 9 Advanced Profile
over systems that are not Windows Media-based, such as standards-based
broadcast infrastructures (through native MPEG-2 transport streams),
wireless infrastructures (through real-time transfer protocol [RTP]),
or even DVDs.
WMV is generally packed into an Advanced Systems
Format (ASF) container. It can also be put into AVI or Matroska
container formats. The resulting files may be named .avi if it is
an AVI-contained file, or .wmv or .asf if it is an ASF file, or
.mkv if it is a MKV file. WMV can be stored in an AVI file when
encoding with the VirtualDub encoder and using the WMV9 VCM codec
implementation. Microsoft's Windows Media Player for the Macintosh
does not support all WMV encoded files, since it supports only the
ASF file container.
The only difference between ASF files and WMV
or WMA files are the file extensions and the MIME types. The MIME
type for a WMV file is video/x-ms-wmv, and for WMA it is audio/x-ms-wma.
The MIME type for ASF is video/x-ms-asf. The basic internal structure
of the files is identical.
The change in extensions was made to make it easier
for an application to identify the content of a media file. A .wma
file extension designates a file containing only audio. A .wmv extension
designates a file containing both video and audio.
WMV compression technique |
WMV9 codes a sequence of images in the
YUV 4:2:0 colour space. The YUV model defines a colour space
in terms of one luminance and two chrominance components.
Y stands for the luminance component (the brightness), and
U and V are the chrominance (colour) components. YUV 4:2:0
indicates a planar YUV colour space, where a 2x2 block of
pixels in an image is represented by 4 Y samples, 1 for each
pixel, but all 4 pixels share a U sample and a V sample. YUV
4:2:0 can be transported within a general purpose container
format such as .asx. Usually, Y data appears first, followed
by the U data, then V data. Since 6 bytes, or 48 bits represent
4 pixels in this format, an average of 12 bits are required
to represent a single pixel in this scheme.
When WMV9 codes an image, it divides the image into macro
blocks. Each 16x16 macro block comprises 6 8x8 sample blocks
(4 Y blocks, 1 U block, and 1 V block as explained above).
Further, the coding method may divide an individual 8x8 block
into 2 8x4 blocks, 2 4x8 blocks, or 4 4x4 blocks.
WMV9
uses a variation of the ‘Discrete Cosine Transform’
to convert blocks of samples into a transform domain to facilitate
more efficient coding. The transform may operate on the full
8x8 block or any of the 3 supported sub-block sizes (8x4,
4x8, or 4x4). Unlike many codec standards preceding it, WMV9
defines a bit-accurate transform method that all implementations
are expected to conform to, so as to minimise transform error.
After transforming sample data into the transform domain,
WMV9 re-orders the transformed data in a zigzag pattern, which
makes certain successive coding techniques more effective.
It has 31 different zigzag patterns depending on various parameters.
Quantization is the compression step that potentially loses
the most information in a compression scheme such as WMV9.
This codec features an impressive number of quantization modes.
WMV9 uses a number of bit planes which are simply maps of
ones and zeros that specify properties for the macro blocks
in an image. For example, a particular bit plane codes information
about which macro blocks are not coded in a frame. These bit
planes are coded into the final bit stream using a number
of methods. In addition the usual type of differential coding
where differences between successive values are stored rather
than the absolute values, WMV9 also uses XOR bit operations.
|
|