Overall, the codec is a classic motion-compensated hybrid
codec. The coder has the architecture shown below,
whilst the decoder performs the inverse operations.
Figure: Overall hybrid encoder architecture
There are four main elements or modules to the coder:
Transform and scaling involves taking frame data and
applying a transform (in this case the wavelet transform) and
scaling the coefficients to perform quantisation;
Entropy coding is applied to quantised transform
coefficients and to motion vector (MV) data and performs
lossless compression on them;
Motion estimation (ME) involves finding matches for
frame data from previously coded frames, trading off
accuracy with motion vector bit rate;
Motion compensation (MC) involves using the motion
vectors to predict the current frame, in such a way as to
minimise the cost of encoding the residual data.
The following sections describe these modules in more
detail, after first describing the rate-distortion framework
used throughout the encoder.
Dirac supports interlaced coding by means of coding
whole fields rather than frames. Unlike MPEG codecs there is
no complex macroblock-by-macroblock switching. Such complexity
is not justified as interlace (an analogue compression technique)
becomes a legacy system.
The codec can support any frame dimensions and common chroma
formats (444, 422, 420 but not 411) by means of picture padding.
The padding ensures that the wavelet transform can be applied properly.