Created by the British Broadcasting Corporation.
#include <mot_comp.h>
dirac::MotionCompensator::MotionCompensator | ( | const CodecParams & | cp | ) |
Constructor initialises using codec parameters.
virtual dirac::MotionCompensator::~MotionCompensator | ( | ) | [virtual] |
dirac::MotionCompensator::MotionCompensator | ( | const MotionCompensator & | cpy | ) | [private] |
static void dirac::MotionCompensator::CompensatePicture | ( | const CodecParams & | cp, | |
const AddOrSub | direction, | |||
PictureBuffer & | buffer, | |||
const int | pnum, | |||
const MvData & | mv_data | |||
) | [static] |
Static function that motion compensates a picture. It uses the MV precision value in the CodecParams to instantiate the appropriate MotionCompensation sub-class.
cp | Encoder/decoder parameters | |
direction | whether we're subtracting or adding | |
buffer | the PictureBuffer object containing the picture and the reference pictures | |
pnum | number of picture in the picture buffer to be compensated ` | |
mv_data | the motion vector data |
void dirac::MotionCompensator::CompensatePicture | ( | const AddOrSub | direction, | |
PictureBuffer & | my_buffer, | |||
int | pnum, | |||
const MvData & | mv_data | |||
) |
Perform motion compensated addition/subtraction on a picture using parameters
direction | whether we're subtracting or adding | |
pnum | number of picture in the picture buffer to be compensated | |
my_buffer | the PictureBuffer object containing the picture and the reference pictures ` | |
mv_data | the motion vector data |
MotionCompensator& dirac::MotionCompensator::operator= | ( | const MotionCompensator & | rhs | ) | [private] |
void dirac::MotionCompensator::CompensateComponent | ( | Picture & | pic, | |
const Picture & | ref1picture, | |||
const Picture & | ref2picture, | |||
const MvData & | mv_data, | |||
const CompSort | cs | |||
) | [private] |
void dirac::MotionCompensator::DCBlock | ( | TwoDArray< ValueType > & | block_data, | |
const ValueType | dc | |||
) | [private] |
DC-compensate an individual block
void dirac::MotionCompensator::ReConfig | ( | ) | [private] |
void dirac::MotionCompensator::CalculateWeights | ( | int | xbsep, | |
int | ybsep, | |||
TwoDArray< ValueType > * | wt_array | |||
) | [private] |
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::FlipX | ( | const TwoDArray< ValueType > & | Original, | |
TwoDArray< ValueType > & | Flipped | |||
) | [private] |
void dirac::MotionCompensator::FlipY | ( | const TwoDArray< ValueType > & | Original, | |
TwoDArray< ValueType > & | Flipped | |||
) | [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] |
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] |
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] |
CodecParams dirac::MotionCompensator::m_cparams [protected] |
ChromaFormat dirac::MotionCompensator::m_cformat [protected] |
bool dirac::MotionCompensator::luma_or_chroma [protected] |
AddOrSub dirac::MotionCompensator::m_add_or_sub [protected] |
OLBParams dirac::MotionCompensator::m_bparams [protected] |
TwoDArray<ValueType>* dirac::MotionCompensator::m_block_weights [protected] |
TwoDArray<ValueType>* dirac::MotionCompensator::m_sub_block_weights [protected] |
© 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.