# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

Public Member Functions | Private Member Functions | Private Attributes
dirac::SubpelRefine Class Reference

The SubpelRefine class takes pixel-accurate motion vectors and refines them to 1/8-pixel accuracy. More...

`#include <me_subpel.h>`

List of all members.

## Public Member Functions
| SubpelRefine (const EncoderParams &encp)
| Constructor.
| ~SubpelRefine ()
| Destructor.
void | DoSubpel (EncQueue &my_buffer, int pic_num)
| Does the actual sub-pixel refinement.

## Private Member Functions
| SubpelRefine (const SubpelRefine &cpy)
| Private, body-less copy constructor: this class should not be copied.
SubpelRefine & | operator= (const SubpelRefine &rhs)
| Private, body-less assignment=: this class should not be assigned.
void | MatchPic (const PicArray &pic_data, const PicArray &refup_data, MEData &me_data, int ref_id)
| Match a picture from its (upconverted) reference, and record the block mvs.
void | DoBlock (const int xblock, const int yblock, BlockMatcher &my_bmatch, MEData &me_data, const int ref_id)
| Match an individual block.
MVector | GetPred (int xblock, int yblock, const MvArray &mvarray)
| Get a prediction for a block MV from the neighbouring blocks.

## Private Attributes
const EncoderParams & | m_encparams
| Local reference to the encoder params.
const PicturePredParams * | m_predparams
| A local pointer to the encoder params.
CandidateList | m_cand_list
| The list of candidate vectors being tested.
OneDArray< ImageCoords > | m_nshift
| The relative coords of the set of neighbours used to generate MV predictions.

## Detailed Description

The SubpelRefine class takes pixel-accurate motion vectors and refines them to 1/8-pixel accuracy. It uses references upconverted by a factor of 2 in each dimension, with the remaining precision gained by doing linear interpolation between values on-the-fly.

## Constructor & Destructor Documentation

dirac::SubpelRefine::SubpelRefine | ( | const EncoderParams & | encp | ) |

The constructor initialises the encoder parameters.

Parameters:

  encp | the parameters used for controlling ME/MC

dirac::SubpelRefine::~SubpelRefine | ( |  | ) |
| inline

dirac::SubpelRefine::SubpelRefine | ( | const SubpelRefine & | cpy | ) |
| private

## Member Function Documentation

void dirac::SubpelRefine::DoBlock | ( | const int | xblock,
|  | const int | yblock,
|  | BlockMatcher & | my_bmatch,
|  | MEData & | me_data,
|  | const int | ref_id
| ) |  |
| private

void dirac::SubpelRefine::DoSubpel | ( | EncQueue & | my_buffer,
|  | int | pic_num
| ) |  |

Does the actual sub-pixel refinement.

Parameters:

  my_buffer | the buffer of pictures being used
  pic_num | the picture number on which motion estimation is being performed

MVector dirac::SubpelRefine::GetPred | ( | int | xblock,
|  | int | yblock,
|  | const MvArray & | mvarray
| ) |  |
| private

void dirac::SubpelRefine::MatchPic | ( | const PicArray & | pic_data,
|  | const PicArray & | refup_data,
|  | MEData & | me_data,
|  | int | ref_id
| ) |  |
| private

SubpelRefine& dirac::SubpelRefine::operator= | ( | const SubpelRefine & | rhs | ) |
| private

## Member Data Documentation

CandidateList dirac::SubpelRefine::m_cand_list
| private

const EncoderParams& dirac::SubpelRefine::m_encparams
| private

OneDArray<ImageCoords> dirac::SubpelRefine::m_nshift
| private

const PicturePredParams* dirac::SubpelRefine::m_predparams
| private

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

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