Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::PictureDecompressor Class Reference

Compress a single image picture. More...

#include <picture_decompress.h>

Collaboration diagram for dirac::PictureDecompressor:

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 PictureParamsGetPicParams () 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.
PictureDecompressoroperator= (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

DecoderParamsm_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

◆ PictureDecompressor() [1/2]

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
decpdecoder parameters
cfthe chroma format of the picture being decompressed

Referenced by operator=(), and PictureDecompressor().

◆ ~PictureDecompressor()

dirac::PictureDecompressor::~PictureDecompressor ( )

Releases resources.

◆ PictureDecompressor() [2/2]

dirac::PictureDecompressor::PictureDecompressor ( const PictureDecompressor & cpy)
private

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

References PictureDecompressor().

Member Function Documentation

◆ CleanReferencePictures()

void dirac::PictureDecompressor::CleanReferencePictures ( PictureBuffer & my_buffer)
private

◆ CompDecompress()

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

◆ Decompress()

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_byteioPicture info in Dirac-stream format
my_bufferpicture buffer into which the picture is placed

◆ DecompressMVData()

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

◆ GetPicParams()

const PictureParams & dirac::PictureDecompressor::GetPicParams ( ) const
inline

References m_pparams.

◆ InitCoeffData()

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

◆ operator=()

PictureDecompressor & dirac::PictureDecompressor::operator= ( const PictureDecompressor & rhs)
private

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

References PictureDecompressor().

◆ PushPicture()

void dirac::PictureDecompressor::PushPicture ( PictureBuffer & my_buffer)
private

◆ SetMVBlocks()

void dirac::PictureDecompressor::SetMVBlocks ( )
private

Member Data Documentation

◆ m_cformat

ChromaFormat dirac::PictureDecompressor::m_cformat
private

◆ m_decparams

DecoderParams& dirac::PictureDecompressor::m_decparams
private

◆ m_global_pred_mode

PredMode dirac::PictureDecompressor::m_global_pred_mode
private

◆ m_pparams

PictureParams dirac::PictureDecompressor::m_pparams
private

Referenced by GetPicParams().

◆ m_skipped

bool dirac::PictureDecompressor::m_skipped
private

◆ m_use_block_mv

bool dirac::PictureDecompressor::m_use_block_mv
private

◆ m_use_global

bool dirac::PictureDecompressor::m_use_global
private

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

© 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.