How AV1 Signals Skipped Transform Blocks
The AV1 video codec conserves data by identifying areas where
prediction is accurate enough that transmitting residual error is
unnecessary. To prevent wasting bits on empty transform coefficients,
AV1 employs a hierarchical signaling mechanism that flags skipped
transform blocks at both the block and sub-transform levels. By
utilizing syntax elements like skip_mode, the
skip_txfm flag, and context-adaptive entropy coding, the
bitstream completely bypasses the transmission of coefficient tokens and
transform operations for these regions.
Block-Level Prediction
Skip (skip_mode)
At the coding block level, AV1 can activate skip_mode
for inter-predicted blocks under specific conditions—namely, when a
block uses compound prediction from the two nearest reference frames
spanning past and future temporal directions. When
skip_mode is set to 1 in the bitstream, the decoder assumes
motion vectors derived directly from neighboring blocks and infers that
there is no residual data. In this scenario, all transform information
is omitted from the bitstream, requiring only a single syntax element to
represent the entire block.
Transform Residual Skip
Flag (skip_txfm)
When a block does not qualify for or use skip_mode, it
can still omit transform residuals if the quantized coefficients are all
zero. The bitstream conveys this through the skip_txfm
syntax element (equivalent to a coded block flag).
If skip_txfm is true (value of 1):
- The bitstream terminates residual parsing for the block immediately.
- The transform tree syntax, transform type selection (e.g., DCT, ADST, identity), and coefficient tokens are entirely skipped.
- The decoder adds the prediction directly to the reconstruction buffer without performing an inverse transform.
If skip_txfm is false (value of 0), the decoder parses
the transform partition tree and extracts transform units to reconstruct
the residual signal.
End of Block
(eob) Signaling Within Sub-Blocks
When a transform block is parsed, AV1 divides it into smaller
transform units (TxUnits) according to the transform tree. If an
individual transform unit within an active block contains only zeros or
sparse coefficients, AV1 utilizes an end-of-block (eob)
position marker.
The eob value signals the index of the highest-frequency
non-zero coefficient in the scanning order. If a transform unit has no
coefficients at all, eob is signaled as 0, immediately
skipping the coefficient payload for that unit. If only low-frequency
coefficients are present, signaling an early eob allows the
bitstream to omit all subsequent trailing zero coefficients without
coding individual zero flags.
Context Modeling for Maximum Bit Conservation
The signaling of skip flags is optimized through AV1's
context-adaptive multi-symbol arithmetic coder (based on the Daala
entropy coder). The probability context used to code both
skip_mode and skip_txfm depends on the skip
status of neighboring blocks immediately above and to the left:
- If both neighbors skipped their transform coefficients, the current block has a very high statistical probability of skipping as well.
- The arithmetic coder uses this skewed probability distribution to encode the skip flag using a fraction of a bit.
Through this combination of early syntax exits and neighbor-dependent entropy coding, AV1 ensures that non-informative, all-zero transform blocks consume the absolute minimum bitstream budget.