# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

# dirac::MEData Class Reference

Class for all the motion estimation data. More...

`#include <motion.h>`

Inheritance diagram for dirac::MEData:

List of all members.

## Public Member Functions

- MEData (const PicturePredParams &predparams, const int num_refs=2)
    Constructor.
- ~MEData ()
    Destructor.
- void DropRef (int ref_index)
    drop the data relating to one reference
- TwoDArray< MvCostData > & PredCosts (const int ref_id)
    Get the block cost structures for each reference.
- const TwoDArray< MvCostData > & PredCosts (const int ref_id) const
    Get the block cost structures for each reference.
- TwoDArray< float > & IntraCosts ()
    Get the intra costs.
- const TwoDArray< float > & IntraCosts () const
    Get the intra costs.
- TwoDArray< MvCostData > & BiPredCosts ()
    Get the bipred costs.
- const TwoDArray< MvCostData > & BiPredCosts () const
    Get the bipred costs.
- TwoDArray< float > & SBCosts ()
    Get the SB costs.
- const TwoDArray< float > & SBCosts () const
    Get the SB costs.
- float IntraBlockRatio () const
    Get the proportion of intra blocks.
- void SetIntraBlockRatio (const float r)
    Set the intra block ratio.
- void SetLambdaMap (const int num_refs, const float lambda)
    Set up the lambda map by detecting motion discontinuities.
- void SetLambdaMap (const int level, const TwoDArray< float > &l_map, const float wt)
    Set up the lambda map by averaging the lambda map from a lower level.
- const TwoDArray< float > & LambdaMap () const
    Get a lambda value for a given block and level.
- TwoDArray< int > & GlobalMotionInliers (const int ref_id)
    Get the inliers for each reference.
- const TwoDArray< int > & GlobalMotionInliers (const int ref_id) const
    Get the inliers for each reference.

## Private Member Functions

- void InitMEData ()
- void FindTransitions (TwoDArray< bool > &trans_map, const int ref_num)

## Private Attributes

- OneDArray< TwoDArray
  < MvCostData > * > m_pred_costs
- TwoDArray< float > m_intra_costs
- TwoDArray< MvCostData > m_bipred_costs
- TwoDArray< float > m_SB_costs
- TwoDArray< float > m_lambda_map
- OneDArray< TwoDArray< int > * > m_inliers
- float m_intra_block_ratio

## Friends

- std::ostream & operator<< (std::ostream &stream, MEData &me_data)
    Overloaded operator<< for outputing to (file) stream.
- std::istream & operator>> (std::istream &stream, MEData &me_data)
    Overloaded operator>> for input of data from (file) stream.

## Detailed Description

Motion estimation data: derived from MvData class, also incorporates costs for blocks and macroblocks

## Constructor & Destructor Documentation

dirac::MEData::MEData | ( | const PicturePredParams & | predparams,
|  | const int | num_refs = `2` |
| ) |  |  |

Constructor takes:

Parameters:

  | predparams | the picture prediction parameters
  | num_refs | the number of references being used for the picture

dirac::MEData::~MEData | ( |  | ) |

## Member Function Documentation

const TwoDArray<MvCostData>& dirac::MEData::BiPredCosts | ( |  | ) | const`[inline]`

References m_bipred_costs.

TwoDArray<MvCostData>& dirac::MEData::BiPredCosts | ( |  | ) | `[inline]`

References m_bipred_costs.

void dirac::MEData::DropRef | ( | int | ref_index | ) |

void dirac::MEData::FindTransitions | ( | TwoDArray< bool > & | trans_map,
|  | const int | ref_num |
| ) |  |  | `[private]`

const TwoDArray<int>& dirac::MEData::GlobalMotionInliers | ( | const int | ref_id | ) | const`[inline]`

References m_inliers.

TwoDArray<int>& dirac::MEData::GlobalMotionInliers | ( | const int | ref_id | ) | `[inline]`

References m_inliers.

void dirac::MEData::InitMEData | ( |  | ) | `[private]`

float dirac::MEData::IntraBlockRatio | ( |  | ) | const`[inline]`

References m_intra_block_ratio.

const TwoDArray<float>& dirac::MEData::IntraCosts | ( |  | ) | const`[inline]`

References m_intra_costs.

TwoDArray<float>& dirac::MEData::IntraCosts | ( |  | ) | `[inline]`

References m_intra_costs.

const TwoDArray<float>& dirac::MEData::LambdaMap | ( |  | ) | const`[inline]`

References m_lambda_map.

const TwoDArray<MvCostData>& dirac::MEData::PredCosts | ( | const int | ref_id | ) | const`[inline]`

References m_pred_costs.

TwoDArray<MvCostData>& dirac::MEData::PredCosts | ( | const int | ref_id | ) | `[inline]`

References m_pred_costs.

const TwoDArray<float>& dirac::MEData::SBCosts | ( |  | ) | const`[inline]`

References m_SB_costs.

TwoDArray<float>& dirac::MEData::SBCosts | ( |  | ) | `[inline]`

References m_SB_costs.

void dirac::MEData::SetIntraBlockRatio | ( | const float | r | ) | `[inline]`

References m_intra_block_ratio.

void dirac::MEData::SetLambdaMap | ( | const int | level,
|  | const TwoDArray< float > & | l_map,
|  | const float | wt |
| ) |  |  |

void dirac::MEData::SetLambdaMap | ( | const int | num_refs,
|  | const float | lambda |
| ) |  |  |

## Friends And Related Function Documentation

std::ostream& operator<< | ( | std::ostream & | stream,
|  | MEData & | me_data |
| ) |  |  | `[friend]`

std::istream& operator>> | ( | std::istream & | stream,
|  | MEData & | me_data |
| ) |  |  | `[friend]`

## Member Data Documentation

TwoDArray<MvCostData> dirac::MEData::m_bipred_costs`[private]`

Referenced by BiPredCosts().

OneDArray< TwoDArray<int>* > dirac::MEData::m_inliers`[private]`

Referenced by GlobalMotionInliers().

float dirac::MEData::m_intra_block_ratio`[private]`

Referenced by IntraBlockRatio(), and SetIntraBlockRatio().

TwoDArray<float> dirac::MEData::m_intra_costs`[private]`

Referenced by IntraCosts().

TwoDArray<float> dirac::MEData::m_lambda_map`[private]`

Referenced by LambdaMap().

OneDArray< TwoDArray<MvCostData>* > dirac::MEData::m_pred_costs`[private]`

Referenced by PredCosts().

TwoDArray<float> dirac::MEData::m_SB_costs`[private]`

Referenced by SBCosts().

The documentation for this class was generated from the following file:

- motion.h

© 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.