VC-1

From Wikipedia, the free encyclopedia
Jump to: navigation, search
For other uses, see VC1.

SMPTE 421M, informally known as VC-1, and marketed as Windows Media Video, was initially developed as a proprietary video format by Microsoft, which was released as a SMPTE video codec standard on April 3, 2006. It is today a supported standard found in Blu-ray Discs, Windows Media, Microsoft's Silverlight framework, Slingbox,[1] and the now-discontinued HD DVD.

Format[edit]

VC-1 is an evolution of the conventional DCT-based video codec design also found in H.261, MPEG-1 Part 2, H.262/MPEG-2 Part 2, H.263, and MPEG-4 Part 2. It is widely characterized as an alternative to the ITU-T and MPEG video codec standard known as H.264/MPEG-4 AVC. VC-1 contains coding tools for interlaced video sequences as well as progressive encoding. The main goal of VC-1 Advanced Profile development and standardization was to support the compression of interlaced content without first converting it to progressive, making it more attractive to broadcast and video industry professionals.

Both HD DVD and Blu-ray Disc have adopted VC-1 as a video standard, meaning their video playback devices will be capable of decoding and playing video-content compressed using VC-1. Windows Vista partially supports HD DVD playback by including the VC-1 decoder and some related components needed for playback of VC-1 encoded HD DVD movies.[2]

Microsoft has designated VC-1 as the Xbox 360 video game console’s official video format, and game developers may use VC-1 for full motion video included with games. By means of an October 31, 2006 update, people can now play all formats of Windows Media Video on the Xbox 360 from a disc, USB storage device, or streaming from their PC via Windows Media Connect/Windows Media Player 11. This allows anyone to play VC-1 encoded video on the console.

VC-1 is also supported in the PlayStation 3 console and the FFmpeg project includes a free VC-1 decoder.[3]

On August 24, 2012, the Raspberry Pi Foundation announced hardware decoding support for VC-1.[4]

Microsoft codec implementations[edit]

The VC-1 codec specification has so far been implemented by Microsoft in the form of 3 codecs, each identified with a unique four character code.[5]

WMV3[edit]

Simple and Main Profiles of VC-1 remained completely faithful to the existing WMV3 implementation, making WMV3 bitstreams fully VC-1 compliant. The WMV3 codec was designed to primarily support progressive encoding for computer displays. An interlaced encoding mode was implemented, but quickly became deprecated when Microsoft started implementing WMV Advanced Profile. Whereas WMV3 progressive encoding was implemented in the YUV 4:2:0 color space, the deprecated interlaced mode was implemented in the less common YUV 4:1:1 color space.

The Windows Media Video 9 (WMV3) codec implements the Simple and Main modes of the VC-1 codec standard, providing high-quality video for streaming and downloading. "It provides support for a wide range of bit rates, from high-definition content at one-half to one-third the bit rate of MPEG-2, to low-bit-rate Internet video delivered over a dial-up modem. This codec also supports professional-quality downloadable video with two-pass and variable bit rate (VBR) encoding. Windows Media Video 9 is already supported by a wide variety of players and devices."[6]

A number of high definition movies and videos have been released commercially in a format dubbed WMV HD. These titles are encoded with WMV3 Main Profile @ High Level (MP@HL).

WMVA[edit]

WMVA was the original implementation of WMV Advanced Profile prior to the acceptance of the VC-1 draft by SMPTE. The codec was distributed with Windows Media Player 10 and Windows Media Format SDK 9.5 install packages. There are slight bitstream differences between WMVA and WVC1, so consequently WMVA is handled by a different DirectShow decoder than WVC1. Some 3rd party hardware and software decoders only decode WMVA based content. As of 2006, WMVA is considered a deprecated codec because it is not fully VC-1 compliant.

WVC1[edit]

WVC1, also known as Windows Media Video 9 Advanced Profile, implements a more recent and fully compliant Advanced Profile of the VC-1 codec standard. It offers support for interlaced content and is transport independent. With the previous version of the Windows Media Video 9 Series codec, users could deliver progressive content at data rates as low as one-third that of the MPEG-2 codec and still get equivalent or comparable quality to MPEG-2[citation needed]. The Windows Media Video 9 Advanced Profile codec also offers this same improvement in encoding efficiency with interlaced contents[citation needed]. A decoder for WVC1 is included in Windows Media Player 11, which is bundled with Windows Vista and is available as a download for Windows XP. This implementation is supported in Microsoft Silverlight.

Profiles[edit]

Simple Main Advanced
Baseline intra frame compression Yes Yes Yes
Variable-sized transform Yes Yes Yes
16-bit transform Yes Yes Yes
Overlapped transform Yes Yes Yes
4 motion vector per macroblock Yes Yes Yes
¼ pixel luminance motion compensation Yes Yes Yes
¼ pixel chrominance motion compensation No Yes Yes
Start codes No Yes Yes
Extended motion vectors No Yes Yes
Loop filter No Yes Yes
Dynamic resolution change No Yes Yes
Adaptive macroblock quantisation No Yes Yes
B frames No Yes Yes
Intensity compensation No Yes Yes
Range adjustment No Yes Yes
Field and frame coding modes No No Yes
GOP Layer No No Yes
Display metadata No No Yes
Simple Main Advanced

Bit rates and resolutions[edit]

Profile Level Maximum Bit Rate Resolution / Framerate
Simple Low 96 kbit/s 176 × 144 / 15 (QCIF)
Medium 384 kbit/s 240 × 176 / 30
352 × 288 / 15 (CIF)
Main Low 2 Mbit/s 320 × 240 / 24 (QVGA)
Medium 10 Mbit/s 720 × 480 / 30 (480p)
720 × 576 / 25 (576p)
High 20 Mbit/s 1920 × 1080 / 30 (1080p)
Advanced L0 2 Mbit/s 352 × 288 / 30 (CIF)
L1 10 Mbit/s 720 × 480 / 30 (NTSC-SD)
720 × 576 / 25 (PAL-SD)
L2 20 Mbit/s 720 × 480 / 60 (480p)
1280 × 720 / 30 (720p)
L3 45 Mbit/s 1920 × 1080 / 24 (1080p)
1920 × 1080 / 30 (1080i)
1280 × 720 / 60 (720p)
L4 135 Mbit/s 1920 × 1080 / 60 (1080p)
2048 × 1536 / 24

Other implementations[edit]

Due to its origins in Microsoft's WMV9 codec, the most popular implementations of VC-1 encoders have so far been done by Microsoft, though third-party implementations exist as well. Sonic Cinevision PSE, a professional VC-1 encoding tool used predominantly in HD DVD and Blu-ray encoding, is a commercial version of Microsoft's PEP (Parallel Encoder) encoding tool and VC-1 Analyzer tool. Microsoft owns the code development whereas Sonic Solutions owns the sales and distribution. Microsoft also provides a separate VC-1 Encoder SDK which allows any company or software developer to integrate VC-1 encoding into their applications. Non-Microsoft VC-1 implementations (based entirely on the SMPTE specifications) have been done by Tandberg Television, MainConcept[7] and Enciris Technologies. The FFmpeg project includes a free VC-1 decoder.[3][8]

Encoding software[edit]

Windows Media Encoder 9 Series encodes VC-1 compliant video files, including WVC1 FourCC media. Windows Media Format 11 Runtime or Windows Media Player 11 must be installed on the computer to ensure full VC-1 compliance across all three profiles (Simple, Main and Advanced). If either of these are installed, Windows Movie Maker can also save VC-1 compliant videos, as can any other application built on the Windows Media Format SDK or Windows Media Codec DMOs. A Windows Media Encoder Studio Edition was initially announced for professional encoding but later cancelled by Microsoft. Microsoft Expression Encoder which is part of Expression Studio supports encoding VC-1 video to the Windows Media (ASF) file format and the IIS Smooth Streaming format.

Video encoder products made by Inlet, Digital Rapids, Harmonic, Envivio, Elemental Technologies, Anystream, Telestream and Rhozet support VC-1 encoding (based on the Microsoft VC-1 Encoder SDK) for IPTV and Web streaming.

Hardware-based encoding and decoding[edit]

Because VC-1 encoding and decoding requires significant computing power, software implementation that run on a general-purpose CPU are typically slow, especially when dealing with HD video content. To reduce CPU usage or to do real-time encoding, special-purpose hardware may be employed, either for the complete encoding or decoding process, or for acceleration assistance within a CPU-controlled environment. A hardware VC-1 encoder can be an ASIC or an FPGA.

Hardware-accelerated (also known as hardware-assisted) video decoding can either be done on dedicated, special-purpose hardware or on generic, multi-purpose hardware such as GPUs. The former is typically found in consumer electronics devices such as Blu-ray Disc players and 3G/4G mobile phones, while the latter is typically found in PCs. Nearly all video cards manufactured since 2006 support some level of GPU-accelerated VC-1 decoding on the Windows platform via DirectX Video Acceleration APIs. The native Windows WMV9/VC-1 decoder (wmvdecod.dll) only supports DXVA profiles A, B and C, while 3rd party VC-1 decoders such as Cyberlink's support the full DXVA Profile D decode acceleration. There is no support for GPU-accelerated VC-1 decode on the MacOS platform.

Legal status[edit]

Although widely considered to be Microsoft’s product there are 18 member companies within the VC-1 patent pool.[9] As an SMPTE standard, VC-1 is open to implementation by anyone, although implementers may be required to pay licensing fees to the MPEG LA, LLC licensing body or directly to its members, who claim to hold essential patents on the format (since it is a non-exclusive licensing body).[10]

See also[edit]

References[edit]

  1. ^ Hohenberger, Anne; Claire Towlson (2005-06-30). "Sling Media’s Newly-Released Slingbox Uses Microsoft Windows Media and Texas Instruments Digital Media Technology to Deliver On-the-Go Entertainment". Sling Media. Retrieved 29 October 2010. 
  2. ^ "VC-1 Technical Overview". Windows Media. Microsoft. 2006. Retrieved October 5, 2006. 
  3. ^ a b "VC-1". Summer of Code. Google. Archived from the original on 2007-09-13. Retrieved 2007-03-21. 
  4. ^ "Raspberry Pi VC-1 Hardware Decoding". Raspberry Pi Foundation. 2012. Retrieved August 24, 2012. 
  5. ^ Sullivan, Gary J. (December 2007, updated August 2010). "DirectX Video Acceleration Specification for Windows Media Video v8, v9 and vA Decoding (Including SMPTE 421M "VC-1")". Microsoft Developer Network (MSDN) Library, Windows Development Kit, Windows Driver Kit, Device and Driver Technologies, Display Devices (Adapters and Monitors), Design Guide, Windows 2000 Display Driver Model Design Guide. Microsoft. Retrieved 29 October 2010. 
  6. ^ "About the Windows Media Codecs". Microsoft Developer Network. Microsoft. Retrieved 28 April 2014. 
  7. ^ "MainConcept VC-1 Codec Package". MainConcept. Retrieved September 24, 2010. 
  8. ^ "FFmpeg Home/News". FFmpeg. March 9, 2007. Retrieved 29 October 2010. "Nine months without news but with heavy development. A few select highlights are decoders for VC-1/WMV3/WMV9, VMware, VP5, VP6 video and WavPack, IMC, DCA audio and a WMA encoder." 
  9. ^ "VC-1 Licensors". MPEG-LA. Retrieved 2013-05-19. 
  10. ^ "MPEG LA, LLC. Press Release" (PDF). Archived from the original on November 13, 2006. Retrieved August 17, 2006. 

External links[edit]