Created by the British Broadcasting Corporation.
#include <me_mode_decn.h>
In deciding which modes to adopt, the ModeDecider object calculates costs for all permutations, doing motion estimation for the level 1 and level 0 modes as these have not been calculated before. The process of decision for each is as follows. For each MB, we loop over the levels, and call DoLevelDecn. DoLevelDecn does motion estimation if it's necessary. Then it assumes that we don't have a common block mode and calls DoUnitDecn which finds the best mode for each unit in the MB at that level, individually. When we've got a best cost for that level we go up to the next one.
dirac::ModeDecider::ModeDecider | ( | const PicturePredParams & | ppp | ) |
The constructor creates arrays for handling the motion vector data at splitting levels 0 and 1, as motion estimation must be performed for these levels.
dirac::ModeDecider::~ModeDecider | ( | ) |
The destructor destroys the classes created in the constructor
dirac::ModeDecider::ModeDecider | ( | const ModeDecider & | cpy | ) | [private] |
void dirac::ModeDecider::DoModeDecn | ( | EncQueue & | my_buffer, | |
int | pic_num | |||
) |
Does the mode decision
my_buffer | the buffer of all the relevant frames | |
pic_num | the picture number for which motion estimation is being done |
ModeDecider& dirac::ModeDecider::operator= | ( | const ModeDecider & | rhs | ) | [private] |
void dirac::ModeDecider::DoMBDecn | ( | ) | [private] |
void dirac::ModeDecider::DoLevelDecn | ( | int | level | ) | [private] |
float dirac::ModeDecider::DoUnitDecn | ( | const int | xpos, | |
const int | ypos, | |||
const int | level | |||
) | [private] |
void dirac::ModeDecider::DoME | ( | const int | xpos, | |
const int | ypos, | |||
const int | level | |||
) | [private] |
float dirac::ModeDecider::ModeCost | ( | const int | xindex, | |
const int | yindex | |||
) | [private] |
ValueType dirac::ModeDecider::GetDCPred | ( | int | xblock, | |
int | yblock | |||
) | [private] |
void dirac::ModeDecider::SetChromaDC | ( | EncQueue & | my_buffer, | |
int | pic_num | |||
) | [private] |
void dirac::ModeDecider::SetChromaDC | ( | const PicArray & | pic_data, | |
MEData & | me_data, | |||
CompSort | csort | |||
) | [private] |
ValueType dirac::ModeDecider::GetChromaBlockDC | ( | const PicArray & | pic_data, | |
int | xloc, | |||
int | yloc, | |||
int | split | |||
) | [private] |
PictureSort dirac::ModeDecider::m_psort [private] |
const PicturePredParams& dirac::ModeDecider::m_predparams [private] |
float dirac::ModeDecider::m_lambda [private] |
OneDArray<float> dirac::ModeDecider::m_level_factor [private] |
OneDArray<float> dirac::ModeDecider::m_mode_factor [private] |
OneDArray< MEData* > dirac::ModeDecider::m_me_data_set [private] |
const PicArray* dirac::ModeDecider::m_pic_data [private] |
const PicArray* dirac::ModeDecider::m_ref1_updata [private] |
const PicArray* dirac::ModeDecider::m_ref2_updata [private] |
int dirac::ModeDecider::num_refs [private] |
IntraBlockDiff* dirac::ModeDecider::m_intradiff [private] |
BiBlockDiff* dirac::ModeDecider::m_bicheckdiff [private] |
int dirac::ModeDecider::m_xmb_loc [private] |
int dirac::ModeDecider::m_ymb_loc [private] |
© 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.