VC-1

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

SMPTE 421M, informally known as VC-1, is a video coding format. It was initially developed as a proprietary video format based on WMV 9 by Microsoft in 2003 and officially approved as a SMPTE video codec standard on April 3, 2006.

It is today a supported standard found in Blu-ray Discs, Microsoft's Silverlight framework, and the now-discontinued HD DVD.

Format

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.[1]

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.[2]

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

Microsoft codec implementations

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.[4]

WMV3

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."[5]

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

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

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

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

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

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 and MainConcept.[6] The FFmpeg project includes a free VC-1 decoder.[2][7]

Encoding software

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

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.

Raspberry Pi hardware supports VC-1 hardware-accelerated decoding, although it requires purchasing of the correspondent license key.[8]

Legal status

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

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.

External links

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • VC-1 reference software analysis at the MultimediaWiki
  • RFC 4425 – IETF RTP Payload Format for Video Codec 1
  • Lua error in package.lua at line 80: module 'strict' not found. for the Raspberry Pi