Dirac - A Video Codec

Created by the British Broadcasting Corporation.


Public Member Functions | Private Member Functions
dirac::BlockDiffUp Class Reference

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

#include <me_utils.h>

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

List of all members.

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

dirac::BlockDiffUp::BlockDiffUp ( const PicArray ref,
const PicArray pic 
)
virtual dirac::BlockDiffUp::~BlockDiffUp ( )
inlinevirtual
dirac::BlockDiffUp::BlockDiffUp ( const BlockDiffUp cpy)
private

Member Function Documentation

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::BlockDiffQuarterPel, and dirac::BlockDiffHalfPel.

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::BlockDiffQuarterPel, and dirac::BlockDiffHalfPel.

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