Dirac - A Video Codec

Created by the British Broadcasting Corporation.


Public Member Functions | Private Member Functions | Private Attributes
dirac::PictureDecompressor Class Reference

Compress a single image picture. More...

#include <picture_decompress.h>

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

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