Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::MotionCompensator Class Reference

Abstract Motion compensator class. More...

#include <mot_comp.h>

Inheritance diagram for dirac::MotionCompensator:

dirac::MotionCompensator_EighthPixel dirac::MotionCompensator_HalfPixel dirac::MotionCompensator_Pixel dirac::MotionCompensator_QuarterPixel List of all members.

Public Member Functions

Static Public Member Functions

Protected Attributes

Private Member Functions


Detailed Description

Motion compensator class, for doing motion compensation with two references and overlapped blocks, using raised-cosine roll-off. This is an abstract class. It must be sub-classed and the BlockPixelPred must be defined in the sub-classes.


Constructor & Destructor Documentation

dirac::MotionCompensator::MotionCompensator const PicturePredParams ppp  ) 
 

Constructor initialises using codec parameters.

virtual dirac::MotionCompensator::~MotionCompensator  )  [virtual]
 

dirac::MotionCompensator::MotionCompensator const MotionCompensator cpy  )  [private]
 


Member Function Documentation

void dirac::MotionCompensator::AdjustBlockByRefWeights TwoDArray< ValueType > &  val1_block,
TwoDArray< ValueType > &  val2_block,
PredMode  block_mode
[private]
 

void dirac::MotionCompensator::AdjustBlockBySpatialWeights TwoDArray< ValueType > &  val_block,
const ImageCoords pos,
const TwoDArray< ValueType > &  wt_array
[private]
 

virtual void dirac::MotionCompensator::BlockPixelPred TwoDArray< ValueType > &  block_data,
const ImageCoords pos,
const ImageCoords orig_pic_size,
const PicArray refup_data,
const MVector mv
[private, pure virtual]
 

Implemented in dirac::MotionCompensator_Pixel, dirac::MotionCompensator_HalfPixel, dirac::MotionCompensator_QuarterPixel, and dirac::MotionCompensator_EighthPixel.

void dirac::MotionCompensator::CalculateWeights int  xbsep,
int  ybsep,
TwoDArray< ValueType > *  wt_array
[private]
 

virtual void dirac::MotionCompensator::CompensateBlock TwoDArray< ValueType > &  pic_data,
const ImageCoords pos,
const ImageCoords orig_pic_size,
PredMode  block_mode,
ValueType  dc,
const PicArray ref1up_data,
const MVector mv1,
const PicArray ref2up_data,
const MVector mv2,
const TwoDArray< ValueType > &  Weights
[private, virtual]
 

void dirac::MotionCompensator::CompensateComponent Picture pic,
Picture refsptr[2],
const MvData mv_data,
const CompSort  cs
[private]
 

void dirac::MotionCompensator::CompensatePicture const AddOrSub  direction,
const MvData mv_data,
Picture in_pic,
Picture refsptr[2]
 

Perform motion compensated addition/subtraction on a picture using parameters

Parameters:
direction whether we're subtracting or adding `
mv_data the motion vector data
in_pic Pointer to picture being motion compensated
refsptr Array of pointers to reference pictures.

void dirac::MotionCompensator::CompensatePicture const PicturePredParams ppp,
const AddOrSub  direction,
const MvData mv_data,
Picture in_pic,
Picture refptr[2]
[static]
 

Static function that motion compensates a picture. It uses the MV precision value in the PicturePredParams to instantiate the appropriate MotionCompensation sub-class.

Parameters:
ppp Picture prediction parameters
direction whether we're subtracting or adding
mv_data the motion vector data
in_pic Pointer to picture being motion compensated
refptr Array of pointers to reference pictures.

void dirac::MotionCompensator::CreateBlock int  xbsep,
int  ybsep,
bool  FullX,
bool  FullY,
TwoDArray< ValueType > &  WeightArray
[private]
 

Params defines the block parameters so the relevant weighting arrays can be created. FullX and FullY refer to whether the weight should be adjusted for the edge of an image. eg. 1D Weighting shapes in x direction FullX true FullX false ******** * * * * * *

void dirac::MotionCompensator::DCBlock TwoDArray< ValueType > &  block_data,
const ValueType  dc
[private]
 

DC-compensate an individual block

void dirac::MotionCompensator::FlipX const TwoDArray< ValueType > &  Original,
TwoDArray< ValueType > &  Flipped
[private]
 

void dirac::MotionCompensator::FlipY const TwoDArray< ValueType > &  Original,
TwoDArray< ValueType > &  Flipped
[private]
 

MotionCompensator& dirac::MotionCompensator::operator= const MotionCompensator rhs  )  [private]
 

void dirac::MotionCompensator::ReConfig  )  [private]
 


Member Data Documentation

bool dirac::MotionCompensator::luma_or_chroma [protected]
 

AddOrSub dirac::MotionCompensator::m_add_or_sub [protected]
 

TwoDArray<ValueType>* dirac::MotionCompensator::m_block_weights [protected]
 

OLBParams dirac::MotionCompensator::m_bparams [protected]
 

ChromaFormat dirac::MotionCompensator::m_cformat [protected]
 

TwoDArray<ValueType>* dirac::MotionCompensator::m_macro_block_weights [protected]
 

PicturePredParams dirac::MotionCompensator::m_predparams [protected]
 

TwoDArray<ValueType>* dirac::MotionCompensator::m_sub_block_weights [protected]
 


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.