Dirac - A Video Codec

Created by the British Broadcasting Corporation.


Public Member Functions | Private Member Functions | Private Attributes | List of all members
dirac::PictureDecompressor Class Reference

Compress a single image picture. More...

#include <picture_decompress.h>

Collaboration diagram for dirac::PictureDecompressor:
Collaboration graph
[legend]

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

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
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_byteioPicture info in Dirac-stream format
my_bufferpicture 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:

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