H261 Compression Standard
The H.261 codec was developed by the ITU (International Telecommunications Union). H.261 is a legacy codec used for only two purposes:
■ H.323 requires that video endpoints support the H.261 format.
■ H.261 provides interoperability with legacy endpoints. Table A-1 shows the video frame parameters for H.261.
|
Video Parameter |
Parameter Options |
|
Interlace-specific coding |
No |
|
Color format |
YCbCr, 4:2:0 interstitial |
|
Frame sizes |
QCIF (mandatory) and CIF (optional) |
|
Frame rate |
Supports frame positions at intervals corresponding to 29.97 Hz |
|
Aspect ratio |
4:3 |
Technically, H.261 defines frames that may occur only at intervals corresponding to 29.97 Hz. However, it allows the encoder to send a lower frame rate, achieved by "dropping" a pre-fixed number of consecutive frames between each sent frame. If the encoder plans to send video at a fixed lower frame rate, that lower frame rate is not signaled in the bitstream, but it can be transmitted out of band.
Table A-2 shows the characteristics of motion vectors (MV) for H.261 coding. The allowable options are the simplest for any of the standard codecs and allow a single MV per macroblock (MB).
Table A-2 Motion Vector Attributes for H.261
|
Motion Vector Attribute |
Attribute Options |
|
MV per MB |
1. |
|
MV H / V range |
[-15, +16]. |
|
MV resolution |
Single pel for luma and chroma. |
|
Chroma MV calculation |
Divide the luma MV by 2, and then truncate to single pel accuracy. |
|
MV inter groups of blocks (GOB) restrictions |
Not restricted to the same GOB. |
|
MV frame restrictions |
MVs are restricted to within frame boundaries. |
|
MV prediction |
H.261 codes the MV difference from an inter MB to the left. |
|
Overlapped block motion compensation (OBMC) |
None. |
H.261 does not perform prediction of pixel values in the spatial domain; the algorithm applies a discrete cosine transform (DCT) directly to either original pixel values or residual pixel values. Table A-3 shows the characteristics of DCT coding for H.261.
Table A-3 DCT Attributes for H.261
|
DCT Attribute |
Attribute Options |
|
Transform |
8x8 DCT |
|
Prediction of DCT coefficients |
No |
Table A-4 shows the characteristics of the quantization process used in the H.261 standard, after the DCT.
Table A-4 Quantization Attributes for H.261
|
Quantization Attribute |
Attribute Options |
|
Step size changes |
The step size can change by any amount from MB to MB. |
|
Intra DC coefficient |
This value is quantized without a dead zone, with a step size of 8, represented in 8 bits. |
Table A-4 Quantization Attributes for H.261 (Continued)
|
Quantization Attribute |
Attribute Options |
|
Intra AC coefficient and all inter coefficients |
Matrix quantization: No Quantizer step size range: 31 Quantizer clipping: [-127, +127] |
Table A-5 shows the methods by which the H.261 codec applies entropy coding to each bitstream element. H.261 uses a fixed-length code for the intra DC coefficients and variable-length coding (VLC) for other elements of the bitstream. H.261 does not use an arithmetic coder.
Table A-5 Entropy Coding for H.261
|
Attribute |
Characteristics |
|
Intra DC coefficient |
Fixed-length 8 bits. |
|
Other coefficients |
The run and length are coded jointly. For the inter DC coefficient, H.261 uses a slightly modified VLC table. |
|
MV |
VLC. |
|
Scanning options |
One fixed zigzag scan. |
Table A-6 shows that two of the more significant advanced features commonly available in other codecs are not options for H.261.
Table A-6 Special Features for H.261
|
Advanced Feature |
Present in Codec? |
|
Deblocking filter |
No |
|
Temporal, signal-to-noise ratio (SNR), and spatial scalability |
No |
Table A-7 shows that H.261 offers forward error correction as the only kind of built-in data resiliency.
Table A-7 Data Resiliency for H.261
|
Resiliency Attribute |
Available in H.261? |
|
Forward error correction (FEC) |
Yes |
|
Slices |
No |
|
Data independence |
No |
|
Data partitioning |
No |
|
Redundant slices |
No |
The H.261 codec is the only codec in this appendix that applies a loop filter to the predicted frame. This loop filter simply blurs the reconstructed frame before the frame is used as a predicted frame. The loop filter might be necessary when the video sequence has objects with sharp edges. Because H.261 is limited to MVs with single-pel accuracy, sharp edges in the original frame and predicted frame might not line up. The result is a residual image containing high-frequency edge-difference information. These high frequency-edges result in larger values for AC DCT coefficients and in turn increase the bit rate of the output stream. The goal of the loop filter is to blur the predicted frame slightly, to soften the sharp edges of the residual image. Other codecs use MVs with subpixel accuracy and do not have this alignment problem.
Continue reading here: H263 Compression Standard
Was this article helpful?