Created by the British Broadcasting Corporation.
#include <mot_comp.h>
Inheritance diagram for dirac::MotionCompensator:
dirac::MotionCompensator::MotionCompensator | ( | const CodecParams & | cp | ) |
Constructor initialises using codec parameters.
virtual dirac::MotionCompensator::~MotionCompensator | ( | ) | [virtual] |
dirac::MotionCompensator::MotionCompensator | ( | const MotionCompensator & | cpy | ) | [private] |
virtual void dirac::MotionCompensator::CompensateBlock | ( | TwoDArray< CalcValueType > & | pic_data, | |
const ImageCoords & | orig_pic_size, | |||
const PicArray & | refup_data, | |||
const MVector & | Vec, | |||
const ImageCoords & | Pos, | |||
const TwoDArray< ValueType > & | Weights | |||
) | [private, pure virtual] |
void dirac::MotionCompensator::CompensateComponent | ( | Frame & | picframe, | |
const Frame & | ref1frame, | |||
const Frame & | ref2frame, | |||
const MvData & | mv_data, | |||
const CompSort | cs | |||
) | [private] |
void dirac::MotionCompensator::CompensateFrame | ( | const AddOrSub | direction, | |
FrameBuffer & | my_buffer, | |||
int | fnum, | |||
const MvData & | mv_data | |||
) |
Perform motion compensated addition/subtraction on a frame using parameters
direction | whether we're subtracting or adding | |
fnum | number of frame in the frame buffer to be compensated | |
my_buffer | the FrameBuffer object containing the frame and the reference frames ` | |
mv_data | the motion vector data |
static void dirac::MotionCompensator::CompensateFrame | ( | const CodecParams & | cp, | |
const AddOrSub | direction, | |||
FrameBuffer & | buffer, | |||
const int | fnum, | |||
const MvData & | mv_data | |||
) | [static] |
Static function that motion compensates a frame. 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 FrameBuffer object containing the frame and the reference frames | |
fnum | number of frame in the frame buffer to be compensated ` | |
mv_data | the motion vector data |
void dirac::MotionCompensator::CreateBlock | ( | int | xblen, | |
int | yblen, | |||
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< CalcValueType > & | pic_data, | |
const ImageCoords & | orig_pic_size, | |||
const ValueType | dc, | |||
const ImageCoords & | Pos, | |||
const TwoDArray< ValueType > & | Weights | |||
) | [private] |
DC-compensate an individual block
void dirac::MotionCompensator::FlipX | ( | const TwoDArray< ValueType > & | Original, | |
int | xblen, | |||
int | yblen, | |||
TwoDArray< ValueType > & | Flipped | |||
) | [private] |
void dirac::MotionCompensator::FlipY | ( | const TwoDArray< ValueType > & | Original, | |
int | xblen, | |||
int | yblen, | |||
TwoDArray< ValueType > & | Flipped | |||
) | [private] |
float dirac::MotionCompensator::Linear | ( | float | t, | |
float | B | |||
) | [private] |
MotionCompensator& dirac::MotionCompensator::operator= | ( | const MotionCompensator & | rhs | ) | [private] |
float dirac::MotionCompensator::RaisedCosine | ( | float | t, | |
float | B | |||
) | [private] |
void dirac::MotionCompensator::ReConfig | ( | ) | [private] |
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] |
CodecParams dirac::MotionCompensator::m_cparams [protected] |
TwoDArray<ValueType>* dirac::MotionCompensator::m_half_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.