# 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:

[legend]
Collaboration diagram for dirac::MEData:

[legend]

List of all members.

## Public Member Functions

- MEData (const int xnumMB, const int ynumMB, const int xnumblocks, const int ynumblocks, const int num_refs=2)
    Constructor.
- MEData (const int xnumMB, const int ynumMB, const int num_refs=2)
    Constructor.
- ~MEData ()
    Destructor.
- 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 > & MBCosts ()
    Get the MB costs.
- const TwoDArray< float > & MBCosts () const
    Get the MB costs.
- 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_MB_costs
- TwoDArray< float > m_lambda_map
- OneDArray< TwoDArray< int > * > m_inliers

## 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 int | xnumMB,
|  | const int | ynumMB,
|  | const int | xnumblocks,
|  | const int | ynumblocks,
|  | const int | num_refs = `2` |
| ) |  |  |

Constructor takes:

Parameters:

  | xnumMB | the number of MBs horizontally
  | ynumMB | the number of MBs vertically
  | xnumblocks | the number of blocks horizontally
  | ynumblocks | the number of blocks vertically
  | num_refs | the number of references being used for the frame

dirac::MEData::MEData | ( | const int | xnumMB,
|  | const int | ynumMB,
|  | const int | num_refs = `2` |
| ) |  |  |

Constructor. Numbers of blocks derived from the number of MBs

Parameters:

  | xnumMB | the number of MBs horizontally
  | ynumMB | the number of MBs vertically
  | num_refs | the number of references being used for the frame

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

## Member Function Documentation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

## 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

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

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

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

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

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

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

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.