Created by the British Broadcasting Corporation.
Compress a single image picture. More...
#include <picture_compress.h>
Public Member Functions | |
PictureCompressor (EncoderParams &encp) | |
Constructor. More... | |
~PictureCompressor () | |
Destructor. More... | |
void | PixelME (EncQueue &my_buffer, int pnum) |
Do pixel accurate motion estimate. More... | |
void | CalcComplexity (EncQueue &my_buffer, int pnum, const OLBParams &olbparams) |
Calculate the complexity of a picture. More... | |
void | CalcComplexity2 (EncQueue &my_buffer, int pnum) |
void | NormaliseComplexity (EncQueue &my_buffer, int pnum) |
Normalise picture complexity with respect to others in the queue. More... | |
void | SubPixelME (EncQueue &my_buffer, int pnum) |
Do subpixel accurate motion vector refinement. More... | |
void | ModeDecisionME (EncQueue &my_buffer, int pnum) |
Do mode decision based on sub-pel vectors. More... | |
void | IntraModeAnalyse (EncQueue &my_buffer, int pnum) |
Detect cuts in the current picture. More... | |
void | MotionCompensate (EncQueue &my_buffer, int pnum, AddOrSub dirn) |
Does motion compensation on picture pnum (forward or backward) More... | |
void | Prefilter (EncQueue &my_buffer, int pnum) |
Prefilter if required. More... | |
void | DoDWT (EncQueue &my_buffer, int pnum, Direction dirn) |
Do the DWT on a given picture. More... | |
void | CodeResidue (EncQueue &my_pbuffer, int pnum, PictureByteIO *pic_byteio) |
Compress a specific picture within a group of pictures (GOP) More... | |
void | CodeMVData (EncQueue &my_buffer, int pnum, PictureByteIO *pic_byteio) |
Compresses the motion vector data. More... | |
bool | IsSkipped () |
Returns true if the picture has been skipped rather than coded normally. More... | |
bool | IsMEDataAvail () const |
Returns true if Motion estimation data is available. More... | |
const MEData * | GetMEData () const |
Returns the motion estimation data. More... | |
Private Member Functions | |
PictureCompressor (const PictureCompressor &cpy) | |
Copy constructor is private and body-less. More... | |
PictureCompressor & | operator= (const PictureCompressor &rhs) |
Assignment = is private and body-less. More... | |
void | InitCoeffData (CoeffArray &coeff_data, const int xl, const int yl) |
Initialise the coefficient data array for holding wavelet coefficients. More... | |
float | GetCompLambda (const EncPicture &my_picture, const CompSort csort) |
Returns the value lambda according to picture and component type. More... | |
void | SelectQuantisers (CoeffArray &coeff_data, SubbandList &bands, const float lambda, OneDArray< unsigned int > &est_counts, const CodeBlockMode cb_mode, const PictureParams &pp, const CompSort csort) |
int | SelectMultiQuants (CoeffArray &coeff_data, SubbandList &bands, const int band_num, const float lambda, const PictureParams &pp, const CompSort csort) |
void | SetupCodeBlocks (SubbandList &bands) |
void | AddSubAverage (CoeffArray &coeff_data, int xl, int yl, AddOrSub dirn) |
Private Attributes | |
EncoderParams & | m_encparams |
bool | m_skipped |
bool | m_use_global |
bool | m_use_block_mv |
PredMode | m_global_pred_mode |
MEData * | m_me_data |
bool | m_medata_avail |
bool | m_is_a_cut |
MVPrecisionType | m_orig_prec |
This class compresses a single picture at a time, using parameters supplied at its construction. PictureCompressor is used by SequenceCompressor.
dirac::PictureCompressor::PictureCompressor | ( | EncoderParams & | encp | ) |
Creates a FrameEncoder with specific set of parameters the control the compression process. It encodes motion data before encoding each component of the picture.
encp | encoder parameters |
Referenced by IsMEDataAvail().
dirac::PictureCompressor::~PictureCompressor | ( | ) |
|
private |
Copy constructor is private and body-less. This class should not be copied.
|
private |
Referenced by IsMEDataAvail().
void dirac::PictureCompressor::CalcComplexity | ( | EncQueue & | my_buffer, |
int | pnum, | ||
const OLBParams & | olbparams | ||
) |
void dirac::PictureCompressor::CalcComplexity2 | ( | EncQueue & | my_buffer, |
int | pnum | ||
) |
void dirac::PictureCompressor::CodeMVData | ( | EncQueue & | my_buffer, |
int | pnum, | ||
PictureByteIO * | pic_byteio | ||
) |
void dirac::PictureCompressor::CodeResidue | ( | EncQueue & | my_pbuffer, |
int | pnum, | ||
PictureByteIO * | pic_byteio | ||
) |
Compresses a specified picture within a group of pictures.
my_pbuffer | picture buffer in which the reference frames resides |
pnum | picture number to compress |
pic_byteio | compressed picture in Dirac bytestream format |
|
private |
Referenced by IsMEDataAvail().
const MEData* dirac::PictureCompressor::GetMEData | ( | ) | const |
Referenced by IsMEDataAvail().
|
private |
Referenced by IsMEDataAvail().
void dirac::PictureCompressor::IntraModeAnalyse | ( | EncQueue & | my_buffer, |
int | pnum | ||
) |
|
inline |
|
inline |
References m_skipped.
void dirac::PictureCompressor::ModeDecisionME | ( | EncQueue & | my_buffer, |
int | pnum | ||
) |
void dirac::PictureCompressor::NormaliseComplexity | ( | EncQueue & | my_buffer, |
int | pnum | ||
) |
|
private |
Assignment = is private and body-less. This class should not be assigned.
Referenced by IsMEDataAvail().
void dirac::PictureCompressor::PixelME | ( | EncQueue & | my_buffer, |
int | pnum | ||
) |
void dirac::PictureCompressor::Prefilter | ( | EncQueue & | my_buffer, |
int | pnum | ||
) |
|
private |
Referenced by IsMEDataAvail().
|
private |
Referenced by IsMEDataAvail().
|
private |
Referenced by IsMEDataAvail().
void dirac::PictureCompressor::SubPixelME | ( | EncQueue & | my_buffer, |
int | pnum | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by IsMEDataAvail().
|
private |
|
private |
Referenced by IsSkipped().
|
private |
|
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.