Dirac - A Video Codec

Created by the British Broadcasting Corporation.


Public Member Functions | Private Member Functions | List of all members
dirac::BlockDiffHalfPel Class Reference

A class for doing differences with half-pixel accurate vectors.

#include <me_utils.h>

Inheritance diagram for dirac::BlockDiffHalfPel:
Inheritance graph
[legend]
Collaboration diagram for dirac::BlockDiffHalfPel:
Collaboration graph
[legend]

Public Member Functions

 BlockDiffHalfPel (const PicArray &ref, const PicArray &pic)
 Constructor, initialising the reference and picture data. More...
 
 ~BlockDiffHalfPel ()
 Destructor. More...
 
float Diff (const BlockDiffParams &dparams, const MVector &mv)
 Do the difference, returning SAD. More...
 
void Diff (const BlockDiffParams &dparams, const MVector &mv, const float mvcost, const float lambda, MvCostData &best_costs, MVector &best_mv)
 Do the actual difference, overwriting the best MV so far if appropriate. More...
 
- Public Member Functions inherited from dirac::BlockDiffUp
 BlockDiffUp (const PicArray &ref, const PicArray &pic)
 Constructor, initialising the reference and picture data. More...
 
virtual ~BlockDiffUp ()
 Destructor. More...
 
virtual float Diff (const BlockDiffParams &dparams, const MVector &mv)=0
 Do the difference, returning SAD. More...
 
virtual void Diff (const BlockDiffParams &dparams, const MVector &mv, const float mvcost, const float lambda, MvCostData &best_costs, MVector &best_mv)=0
 Do the actual difference, overwriting the best MV so far if appropriate. More...
 
- Public Member Functions inherited from dirac::BlockDiff
 BlockDiff (const PicArray &ref, const PicArray &pic)
 Constructor, initialising the reference and picture data. More...
 
virtual ~BlockDiff ()
 Destructor
More...
 
virtual float Diff (const BlockDiffParams &dparams, const MVector &mv)=0
 Do the difference, returning SAD. More...
 

Private Member Functions

 BlockDiffHalfPel (const BlockDiffHalfPel &cpy)
 Private, bodyless copy-constructor: class should not be copied. More...
 
BlockDiffHalfPeloperator= (const BlockDiffHalfPel &rhs)
 Private, bodyless assignment=: class should not be assigned. More...
 

Additional Inherited Members

- Protected Attributes inherited from dirac::BlockDiff
const PicArraym_pic_data
 
const PicArraym_ref_data
 

Constructor & Destructor Documentation

◆ BlockDiffHalfPel() [1/2]

dirac::BlockDiffHalfPel::BlockDiffHalfPel ( const PicArray ref,
const PicArray pic 
)

◆ ~BlockDiffHalfPel()

dirac::BlockDiffHalfPel::~BlockDiffHalfPel ( )
inline

◆ BlockDiffHalfPel() [2/2]

dirac::BlockDiffHalfPel::BlockDiffHalfPel ( const BlockDiffHalfPel cpy)
private

Member Function Documentation

◆ Diff() [1/2]

float dirac::BlockDiffHalfPel::Diff ( const BlockDiffParams dparams,
const MVector mv 
)
virtual

Do the difference, returning SAD

Parameters
dparamsblock parameters
mvthe motion vector being used

Implements dirac::BlockDiffUp.

◆ Diff() [2/2]

void dirac::BlockDiffHalfPel::Diff ( const BlockDiffParams dparams,
const MVector mv,
const float  mvcost,
const float  lambda,
MvCostData best_costs,
MVector best_mv 
)
virtual

Do the actual difference, overwriting the best MV so far if appropriate, and bailing out if we do worse

Parameters
dparamsblock parameters
mvthe motion vector being used
mvcostthe (prediction) cost of the motion vector mv
lambdathe weighting to be given to mvcost
best_coststhe best Lagrangian costs obtained yet
best_mvthe MV giving the best Lagrangian costs so far

Implements dirac::BlockDiffUp.

◆ operator=()

BlockDiffHalfPel & dirac::BlockDiffHalfPel::operator= ( const BlockDiffHalfPel rhs)
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.