Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 26138 defines conformance testing requirements for MPEG-4 Advanced Video Coding (AVC), also known as H.264 — the most widely deployed video compression standard in the world. Conformance testing ensures that encoder and decoder implementations correctly interpret the bitstream syntax and produce valid decoded pictures. Without rigorous conformance verification, interoperability between encoders and decoders from different vendors would be unreliable, undermining the entire video ecosystem from streaming services to video conferencing.
ISO/IEC 26138 specifies two levels of conformance: bitstream conformance and decoder conformance. Bitstream conformance verifies that an encoded stream adheres to the syntax, semantic constraints, and level limitations defined in the AVC specification. Decoder conformance verifies that a decoder implementation can correctly decode all conformant bitstreams and produce the correct output frames.
| Conformance Level | What It Tests | Test Method | Failure Implication |
|---|---|---|---|
| Bitstream Conformance | NAL unit syntax, SPS/PPS parameters, slice headers, macroblock prediction modes, entropy coding | Bitstream parsing and syntax element validation against specification tables | Non-conformant streams may crash decoders or produce visual artifacts |
| Decoder Conformance | Inter-prediction, intra-prediction, deblocking filter, CABAC/CAVLC decoding, reference picture management | Decode reference bitstreams and compare output PSNR against threshold | Non-conformant decoders produce incorrect pictures or fail on valid streams |
| Hypothetical Reference Decoder (HRD) | Buffer management, coded picture buffer (CPB) overflow/underflow, decoding timing | Simulate HRD buffering model with encoded stream timing parameters | Non-conformant streams may cause buffer underflow in real-time decoding |
Conformance test bitstreams are organized by profile and level. The standard defines test vectors for Baseline, Main, Extended, High, and several other profiles. Each test vector exercises specific aspects of the decoding process — for example, test vectors for deblocking filter conformance verify that the filter correctly handles block boundaries at various quantisation parameter values.
The standard provides a comprehensive set of test bitstreams organized into categories that target specific decoding features. For each test bitstream, the standard specifies:
The expected decoded output — either as a reference YUV file (for full-pel accuracy comparison) or as a CRC/SHA checksum of the decoded picture buffer content. Checksum-based comparison is the preferred method in automated test suites because it avoids the storage overhead of reference YUV files and eliminates floating-point rounding issues.
Decoder configuration parameters — including the output format (8-bit or 10-bit), chroma format (4:2:0, 4:2:2, or 4:4:4), and frame rate. The decoder under test must be configured exactly as specified to produce the correct output.
Tolerance thresholds — for tests where exact bit-exact output is not required (e.g., post-filter processing), the standard defines PSNR and maximum per-pixel error thresholds. A typical threshold for decoder conformance is 0.5 dB PSNR below the reference, with no single pixel error exceeding 2 quantization levels.
Building a conformant AVC codec requires careful attention to edge cases that are frequently sources of non-conformance:
Reference picture management: The decoded picture buffer (DPB) management logic — including sliding window and adaptive memory control — is one of the most complex parts of the AVC standard. Conformance test vectors for DPB stress edge cases such as long-term reference picture marking, memory management control operations (MMCO) commands, and maximum DPB size at each level.
Arithmetic precision: AVC specifies motion compensation interpolation with 6-tap FIR filters for half-pel positions and bilinear for quarter-pel positions. The intermediate rounding operations must exactly match the specification. Even one bit of difference in rounding accumulates across frames, causing visible drift in long video sequences.
Deblocking filter: The filter strength is a function of quantisation parameter, motion vector differences, and coded residual information. Boundary-strength assignment errors are a common source of non-conformance. The standard’s test vectors include sequences designed specifically to exercise every branch of the boundary-strength calculation.