|
| | MotionCompensator (const PicturePredParams &ppp) |
| | Constructor.
|
| virtual | ~MotionCompensator () |
| | Destructor.
|
| void | CreateBlock (int xbsep, int ybsep, bool FullX, bool FullY, TwoDArray< ValueType > &WeightArray) |
| | Compensate a picture.
|
| *Flips the values in an array in the x direction void | FlipX (const TwoDArray< ValueType > &Original, TwoDArray< ValueType > &Flipped) |
| *Flips the values in an array in the y direction void | FlipY (const TwoDArray< ValueType > &Original, TwoDArray< ValueType > &Flipped) |
| virtual void | 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) |
| *Predict pixels in a block Pure virtual SubClasses need to define virtual it void | BlockPixelPred (TwoDArray< ValueType > &block_data, const ImageCoords &pos, const ImageCoords &orig_pic_size, const PicArray &refup_data, const MVector &mv)=0 |
| void | AdjustBlockByRefWeights (TwoDArray< ValueType > &val1_block, TwoDArray< ValueType > &val2_block, PredMode block_mode) |
| void | AdjustBlockBySpatialWeights (TwoDArray< ValueType > &val_block, const ImageCoords &pos, const TwoDArray< ValueType > &wt_array) |
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.
| void dirac::MotionCompensator::CreateBlock |
( |
int | xbsep, |
|
|
int | ybsep, |
|
|
bool | FullX, |
|
|
bool | FullY, |
|
|
TwoDArray< ValueType > & | WeightArray ) |
Perform motion compensated addition/subtraction on a picture using
parameters
\param direction whether we're subtracting or adding
`
- Parameters
-
| mv_data | the motion vector data |
| in_pic | Pointer to picture being motion compensated |
| refsptr | Array of pointers to reference pictures. */ void CompensatePicture( const AddOrSub direction ,
const MvData& mv_data,
Picture* in_pic ,
Picture* refsptr[2] ); |
private: private, body-less copy constructor: this class should not be copied MotionCompensator( const MotionCompensator& cpy ); private, body-less assignment=: this class should not be assigned MotionCompensator& operator=( const MotionCompensator& rhs );
functions
Motion-compensate a component
void CompensateComponent( Picture* pic ,
Picture* refsptr[2] ,
const MvData& mv_data , const CompSort cs);
Recalculate the weight matrix and store other key block related parameters.
DC-compensate an individual block
void DCBlock( TwoDArray<ValueType> &block_data ,
const ValueType dc);
void ReConfig();
Calculates a weighting arrays blocks. void CalculateWeights(int xbsep, int ybsep, TwoDArray<ValueType>* wt_array);
Calculates a weighting block.
/*! 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