# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

# dirac::PictureDecompressor Class Reference

Compress a single image picture. More...

`#include <picture_decompress.h>`

List of all members.

## Public Member Functions

- PictureDecompressor (DecoderParams &decp, ChromaFormat cf)
    Constructor.
- ~PictureDecompressor ()
    Destructor.
- bool Decompress (ParseUnitByteIO &parseunit_byteio, PictureBuffer &my_buffer)
    Decompress the next picture into the buffer.
- const PictureParams & GetPicParams () const
    Returns the picture parameters of the current picture being decoded.

## Private Member Functions

- PictureDecompressor (const PictureDecompressor &cpy)
    Copy constructor is private and body-less.
- PictureDecompressor & operator= (const PictureDecompressor &rhs)
    Assignment = is private and body-less.
- void InitCoeffData (CoeffArray &coeff_data, const int xl, const int yl)
    Initialise the padded coefficient data for the IDWT and subband decoding.
- void CleanReferencePictures (PictureBuffer &my_buffer)
    Removes all the reference pictures in the retired list.
- void CompDecompress (TransformByteIO *p_transform_byteio, PictureBuffer &my_buffer, int pnum, CompSort cs)
    Decodes component data.
- void DecompressMVData (std::auto_ptr< MvData > &mv_data, PictureByteIO &picture_byteio)
    Decodes the motion data.
- void SetMVBlocks ()
    Set the number of superblocks and blocks.
- void PushPicture (PictureBuffer &my_buffer)
    Add a picture to the picture buffer.

## Private Attributes

- DecoderParams & m_decparams
    Parameters for the decompression, as provided in constructor.
- ChromaFormat m_cformat
    Chroma format of the picture being decompressed.
- bool m_skipped
    An indicator which is true if the picture has been skipped, false otherwise.
- bool m_use_global
    An indicator that is true if we use global motion vectors, false otherwise.
- bool m_use_block_mv
    An indicator that is true if we use block motion vectors, false otherwise.
- PredMode m_global_pred_mode
    Prediction mode to use if we only have global motion vectors.
- PictureParams m_pparams
    Current Picture Parameters.

## Detailed Description

This class decompresses a single picture at a time, using parameters supplied at its construction. PictureDecompressor is used by SequenceDecompressor.

## Constructor & Destructor Documentation

dirac::PictureDecompressor::PictureDecompressor | ( | DecoderParams & | decp,
|  | ChromaFormat | cf |
| ) |  |  |

Creates a PictureDecompressor with specific set of parameters the control the decompression process. It decodes motion data before decoding each component of the picture.

Parameters:

  | decp | decoder parameters
  | cf | the chroma format of the picture being decompressed

dirac::PictureDecompressor::~PictureDecompressor | ( |  | ) |

Releases resources.

dirac::PictureDecompressor::PictureDecompressor | ( | const PictureDecompressor & | cpy | ) | `[private]`

Copy constructor is private and body-less. This class should not be copied.

## Member Function Documentation

void dirac::PictureDecompressor::CleanReferencePictures | ( | PictureBuffer & | my_buffer | ) | `[private]`

void dirac::PictureDecompressor::CompDecompress | ( | TransformByteIO * | p_transform_byteio,
|  | PictureBuffer & | my_buffer,
|  | int | pnum,
|  | CompSort | cs |
| ) |  |  | `[private]`

bool dirac::PictureDecompressor::Decompress | ( | ParseUnitByteIO & | parseunit_byteio,
|  | PictureBuffer & | my_buffer |
| ) |  |  |

Decompresses the next picture from the stream and place at the end of a picture buffer. Returns true if able to decode successfully, false otherwise

Parameters:

  | parseunit_byteio | Picture info in Dirac-stream format
  | my_buffer | picture buffer into which the picture is placed

void dirac::PictureDecompressor::DecompressMVData | ( | std::auto_ptr< MvData > & | mv_data,
|  | PictureByteIO & | picture_byteio |
| ) |  |  | `[private]`

const PictureParams& dirac::PictureDecompressor::GetPicParams | ( |  | ) | const`[inline]`

References m_pparams.

void dirac::PictureDecompressor::InitCoeffData | ( | CoeffArray & | coeff_data,
|  | const int | xl,
|  | const int | yl |
| ) |  |  | `[private]`

PictureDecompressor& dirac::PictureDecompressor::operator= | ( | const PictureDecompressor & | rhs | ) | `[private]`

Assignment = is private and body-less. This class should not be assigned.

void dirac::PictureDecompressor::PushPicture | ( | PictureBuffer & | my_buffer | ) | `[private]`

void dirac::PictureDecompressor::SetMVBlocks | ( |  | ) | `[private]`

## Member Data Documentation

ChromaFormat dirac::PictureDecompressor::m_cformat`[private]`

DecoderParams& dirac::PictureDecompressor::m_decparams`[private]`

PredMode dirac::PictureDecompressor::m_global_pred_mode`[private]`

PictureParams dirac::PictureDecompressor::m_pparams`[private]`

Referenced by GetPicParams().

bool dirac::PictureDecompressor::m_skipped`[private]`

bool dirac::PictureDecompressor::m_use_block_mv`[private]`

bool dirac::PictureDecompressor::m_use_global`[private]`

The documentation for this class was generated from the following file:

- picture_decompress.h

© 2004 British Broadcasting Corporation. Dirac code licensed under the Mozilla Public License (MPL) Version 1.1.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.