Dirac - A Video Codec

Created by the British Broadcasting Corporation.


Public Member Functions | Private Member Functions | Private Attributes | List of all members
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>

Collaboration diagram for dirac::SubpelRefine:
Collaboration graph
[legend]

Public Member Functions

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

Private Member Functions

 SubpelRefine (const SubpelRefine &cpy)
 Private, body-less copy constructor: this class should not be copied. More...
 
SubpelRefineoperator= (const SubpelRefine &rhs)
 Private, body-less assignment=: this class should not be assigned. More...
 
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. More...
 
void DoBlock (const int xblock, const int yblock, BlockMatcher &my_bmatch, MEData &me_data, const int ref_id)
 Match an individual block. More...
 
MVector GetPred (int xblock, int yblock, const MvArray &mvarray)
 Get a prediction for a block MV from the neighbouring blocks. More...
 

Private Attributes

const EncoderParamsm_encparams
 Local reference to the encoder params. More...
 
const PicturePredParamsm_predparams
 A local pointer to the encoder params. More...
 
CandidateList m_cand_list
 The list of candidate vectors being tested. More...
 
OneDArray< ImageCoordsm_nshift
 The relative coords of the set of neighbours used to generate MV predictions. More...
 

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

◆ SubpelRefine() [1/2]

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

The constructor initialises the encoder parameters.

Parameters
encpthe parameters used for controlling ME/MC

◆ ~SubpelRefine()

dirac::SubpelRefine::~SubpelRefine ( )
inline

◆ SubpelRefine() [2/2]

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

Member Function Documentation

◆ DoBlock()

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

◆ DoSubpel()

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

Does the actual sub-pixel refinement.

Parameters
my_bufferthe buffer of pictures being used
pic_numthe picture number on which motion estimation is being performed

◆ GetPred()

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

◆ MatchPic()

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

◆ operator=()

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

Member Data Documentation

◆ m_cand_list

CandidateList dirac::SubpelRefine::m_cand_list
private

◆ m_encparams

const EncoderParams& dirac::SubpelRefine::m_encparams
private

◆ m_nshift

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

◆ m_predparams

const PicturePredParams* dirac::SubpelRefine::m_predparams
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.