Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::FrameCompressor Class Reference

Compress a single image frame. More...

#include <frame_compress.h>

List of all members.

Public Member Functions

Private Member Functions

Private Attributes


Detailed Description

This class compresses a single frame at a time, using parameters supplied at its construction. FrameCompressor is used by SequenceCompressor.

Constructor & Destructor Documentation

dirac::FrameCompressor::FrameCompressor ( EncoderParams encp  ) 

Creates a FrameEncoder with specific set of parameters the control the compression process. It encodes motion data before encoding each component of the frame.

Parameters:
encp encoder parameters

dirac::FrameCompressor::~FrameCompressor (  ) 

dirac::FrameCompressor::FrameCompressor ( const FrameCompressor cpy  )  [private]

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


Member Function Documentation

bool dirac::FrameCompressor::MotionEstimate ( const FrameBuffer my_fbuffer,
int  fnum 
)

Performs motion estimation for a frame and writes the data locally

Parameters:
my_fbuffer picture buffer of uncoded originals
fnum frame number to compress
Returns:
true if a cut is detected.

FrameByteIO* dirac::FrameCompressor::Compress ( FrameBuffer my_fbuffer,
int  fnum 
)

Compresses a specified frame within a group of pictures.

Parameters:
my_fbuffer picture buffer in which the reference frames resides
fnum frame number to compress
Returns:
Compressed frame in Dirac bytestream format

bool dirac::FrameCompressor::IsSkipped (  )  [inline]

bool dirac::FrameCompressor::IsMEDataAvail (  )  const [inline]

const MEData* dirac::FrameCompressor::GetMEData (  )  const

FrameCompressor& dirac::FrameCompressor::operator= ( const FrameCompressor rhs  )  [private]

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

void dirac::FrameCompressor::AnalyseMEData ( const MEData  )  [private]

void dirac::FrameCompressor::CompressMVData ( MvDataByteIO mv_data  )  [private]

float dirac::FrameCompressor::GetCompLambda ( const FrameParams fparams,
const CompSort  csort 
) [private]

void dirac::FrameCompressor::SelectQuantisers ( CoeffArray coeff_data,
SubbandList bands,
const float  lambda,
OneDArray< unsigned int > &  est_counts,
const CodeBlockMode  cb_mode,
const FrameSort  fsort,
const CompSort  csort 
) [private]

int dirac::FrameCompressor::SelectMultiQuants ( CoeffArray coeff_data,
SubbandList bands,
const int  band_num,
const float  lambda,
const FrameSort  fsort,
const CompSort  csort 
) [private]

void dirac::FrameCompressor::SetupCodeBlocks ( SubbandList bands  )  [private]

void dirac::FrameCompressor::AddSubAverage ( CoeffArray coeff_data,
int  xl,
int  yl,
AddOrSub  dirn 
) [private]


Member Data Documentation

EncoderParams& dirac::FrameCompressor::m_encparams [private]

MEData* dirac::FrameCompressor::m_me_data [private]

bool dirac::FrameCompressor::m_skipped [private]

bool dirac::FrameCompressor::m_use_global [private]

bool dirac::FrameCompressor::m_use_block_mv [private]

PredMode dirac::FrameCompressor::m_global_pred_mode [private]

bool dirac::FrameCompressor::m_medata_avail [private]

bool dirac::FrameCompressor::m_is_a_cut [private]

double dirac::FrameCompressor::m_intra_ratio [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.