VC-1 is seen as an alternative to H.264/AVC. VC-1 supports compression of interlaced content without converting it to progressive first, making it more attractive than other codecs to video professionals.
The VC-1 codec was developed to allow for compressed video quality at bitrates that range from measly to gigantic. At its peak, the codec can handle a resolution as high as 2048 pixels × 1536 pixels for digital cinema, and of a maximum bit rate of 135 Mbps. In modem applications the VC-1 codec is used for small 10Kbps presentations at 160x120 pixels.
The codec in itself uses a block based motion compensation and spatial transform scheme that can be found in older compression standards such as MPEG-1 and H.261. VC-1 however has many optimizations that distinguish it from older compression schemes. They are as follows:
Adaptive Block Size Transform
VC-1 is capable of coding an 8 × 8 block using either an 8 × 8 transform, two 8 × 4 transforms, two 4 × 8 transforms, or four 4 × 4 transforms. By doing this, advantage is taken of the different sizes when needed for optimal image quality.
16-Bit Transforms
In an effort to minimize complexity of decoding, VC-1 uses 16-bit transforms, which makes it easier to implement digital signal processing (DSP) hardwares which were built on 16-bit processors.
Motion Compensation
According to Microsoft, "motion compensation is the process of generating a prediction of a video frame by displacing the reference frame. Typically, the prediction is formed for a block (an 8 × 8 pixel tile) or a macroblock (a 16 × 16 pixel tile) of data. The displacement of data due to motion is defined by a motion vector, which captures the shift along both the x- and y-axes.
The efficiency of the codec is affected by the size of the predicted block, the granularity of sub-pixel data that can be captured, and the type of filter used for generating sub-pixel predictors. VC-1 uses 16 × 16 blocks for prediction, with the ability to generate mixed frames of 16 × 16 and 8 × 8 blocks. The finest granularity of sub-pixel information supported by VC-1 is 1/4 pixel. Two sets of filters are used by VC-1 for motion compensation. The first is an approximate bicubic filter with four taps. The second is a bilinear filter with two taps.
VC-1 combines the motion vector settings defined by the block size, sub-pixel granularity, and filter type into modes. The result is four motion compensation modes that suit a range of different situations. This classification of settings into modes also helps compact decoder implementations."
Profiles and Levels
As with AVC, VC-1 has a set of profile and level combinations to help in the support of encoding all types of video. Each profile determines the amount of codec features available and the complexity of the required decoding.
Profile Level
Max Bit Rate
Representative Resolutions by Frame Rate
Simple
Low
96 Kbps
176 × 144 @ 15 Hz (QCIF)
Medium
384 Kbps
240 × 176 @ 30 Hz
352 × 288 @ 15 Hz (CIF)
Main
Low
2 Mbps
320 × 240 @ 24 Hz (QVGA)
Medium
10 Mbps
720 × 480 @ 30 Hz (480p)
720 × 576 @ 25 Hz (576p)
High
20 Mbps
1920 × 1080 @ 30 Hz (1080p)
Advanced
L0
2 Mbps
352 × 288 @ 30 Hz (CIF)
L1
10 Mbps
720 × 480 @ 30 Hz (NTSC-SD)
720 × 576 @ 25 Hz (PAL-SD)
L2
20 Mbps
720 × 480 @ 60 Hz (480p)
1280 × 720 @ 30 Hz (720p)
L3
45 Mbps
1920 × 1080 @ 24 Hz (1080p)
1920 × 1080 @ 30 Hz (1080i)
1280 × 720 @ 60 Hz (720p)
L4
135 Mbps
1920 × 1080 @ 60 Hz (1080p)
2048 × 1536 @ 24 Hz