Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::BlockDiffUp Class Referenceabstract

A virtual class for doing differences with sub-pixel vectors.

#include <me_utils.h>

Inheritance diagram for dirac::BlockDiffUp:
Collaboration diagram for dirac::BlockDiffUp:

Public Member Functions

 BlockDiffUp (const PicArray &ref, const PicArray &pic)
 Constructor, initialising the reference and picture data.
virtual ~BlockDiffUp ()
 Destructor.
virtual float Diff (const BlockDiffParams &dparams, const MVector &mv)=0
 Do the difference, returning SAD.
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.
Public Member Functions inherited from dirac::BlockDiff
 BlockDiff (const PicArray &ref, const PicArray &pic)
 Constructor, initialising the reference and picture data.
virtual ~BlockDiff ()
 Destructor.

Private Member Functions

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

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ BlockDiffUp() [1/2]

dirac::BlockDiffUp::BlockDiffUp ( const PicArray & ref,
const PicArray & pic )

Referenced by BlockDiffUp(), and operator=().

◆ ~BlockDiffUp()

virtual dirac::BlockDiffUp::~BlockDiffUp ( )
inlinevirtual

◆ BlockDiffUp() [2/2]

dirac::BlockDiffUp::BlockDiffUp ( const BlockDiffUp & cpy)
private

References BlockDiffUp().

Member Function Documentation

◆ Diff() [1/2]

virtual float dirac::BlockDiffUp::Diff ( const BlockDiffParams & dparams,
const MVector & mv )
pure virtual

Do the difference, returning SAD

Parameters
dparamsblock parameters
mvthe motion vector being used

Implements dirac::BlockDiff.

Implemented in dirac::BlockDiffEighthPel, dirac::BlockDiffHalfPel, and dirac::BlockDiffQuarterPel.

◆ Diff() [2/2]

virtual void dirac::BlockDiffUp::Diff ( const BlockDiffParams & dparams,
const MVector & mv,
const float mvcost,
const float lambda,
MvCostData & best_costs,
MVector & best_mv )
pure 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

Implemented in dirac::BlockDiffEighthPel, dirac::BlockDiffHalfPel, and dirac::BlockDiffQuarterPel.

◆ operator=()

BlockDiffUp & dirac::BlockDiffUp::operator= ( const BlockDiffUp & rhs)
private

References BlockDiffUp().


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.