Created by the British Broadcasting Corporation.
Compresses a sequence of fields from a stream. More...
#include <seq_compress.h>
Public Member Functions | |
FieldSequenceCompressor (StreamPicInput *pin, EncoderParams &encp, DiracByteStream &dirac_byte_stream) | |
Constructor. | |
virtual | ~FieldSequenceCompressor () |
Destructor. | |
virtual bool | LoadNextFrame () |
Load data. | |
virtual void | SetPicTypeAndRefs (PictureParams &pparams) |
Set up the appropriate prediction parameters for a picture. | |
![]() | |
SequenceCompressor (StreamPicInput *pin, EncoderParams &encp, DiracByteStream &dirac_byte_stream) | |
Constructor. | |
virtual | ~SequenceCompressor () |
Destructor. | |
const EncPicture * | CompressNextPicture () |
Compress the next picture in sequence. | |
const EncPicture * | GetPictureEncoded () |
Return a pointer to the most recent picture encoded. | |
DiracByteStats | EndSequence () |
bool | Finished () |
Determine if compression is complete. | |
void | SignalEOS () |
Signal end of sequence. | |
int | PTSOffset () |
The delay required for correct timestamps. |
Protected Member Functions | |
virtual int | CodedToDisplay (const int pnum) |
Uses the GOP parameters to convert picture numbers in coded order to display order. | |
virtual void | UpdateCBRModel (EncPicture &my_picture, const PictureByteIO *picture_byteio) |
Update the CBR model based on the data we've compressed. | |
![]() | |
void | SetMotionParameters () |
Set up the motion block parameters. | |
void | MakeSequenceReport () |
Make a report to screen on the coding results for the whole sequence. | |
virtual void | CleanBuffers () |
Remove unwanted pictures from picture buffers. | |
void | UpdateIntraPicCBRModel (const PictureParams &, const bool is_a_cut) |
Update the parameters to be used in advance of coding an intra frame. | |
bool | CanEncode () |
Returns true if the encoder can encode a picture. |
Private Member Functions | |
void | PreMotionEstmationFilter (PicArray &comp) |
Filter fields. |
Private Attributes | |
int | m_field1_bytes |
int | m_field2_bytes |
Additional Inherited Members | |
![]() | |
bool | m_all_done |
Completion flag, returned via the Finished method. | |
bool | m_just_finished |
Flag indicating whether we've just finished. | |
OLBParams * | m_basic_olb_params0 |
A class to hold the basic block parameters. | |
OLBParams * | m_basic_olb_params1 |
A class to hold the basic block parameters. | |
const OLBParams * | m_basic_olb_params2 |
A class to hold the basic block parameters. | |
OLBParams * | m_intra_olbp |
A class to hold block parameters to use when there are lots of intra blocks. | |
SourceParams & | m_srcparams |
The parameters of the input source. | |
EncoderParams & | m_encparams |
The parameters used for encoding. | |
PicturePredParams & | m_predparams |
The parameters used for ME/MC. | |
int | m_L1_sep |
The L1 separation currently in use. | |
PictureParams | m_pparams |
Generic picture parameters for initialising pictures. | |
StreamPicInput * | m_pic_in |
Pointer pointing at the picture input. | |
EncQueue | m_enc_pbuffer |
A picture buffer used for local storage of pictures whilst pending re-ordering or being used for reference. | |
int | m_current_display_pnum |
The number of the current picture to be coded, in display order. | |
int | m_current_code_pnum |
The number of the current picture to be coded, in coded order. | |
int | m_show_pnum |
The number of the picture which should be output for concurrent display or storage. | |
int | m_last_picture_read |
The index, in display order, of the last picture read. | |
int | m_gop_start_num |
The picture number of the last GOP start. | |
int | m_delay |
A delay so that we don't display what we haven't coded. | |
QualityMonitor | m_qmonitor |
A class for monitoring the quality of pictures and adjusting parameters appropriately. | |
RateController * | m_ratecontrol |
A class for monitoring and controlling bit rate. | |
PictureCompressor | m_pcoder |
A class to hold the picture compressor object. | |
DiracByteStream & | m_dirac_byte_stream |
Output destination for compressed data in bitstream format. | |
bool | m_eos_signalled |
Flag to check if End of Sequence has been signalled by the end user. |
This class compresses a sequence of fields, field by field. It currently uses GOP parameters set in the encoder parameters in order to define the temporal prediction structure. A version to incorporate non-GOP structures is TBC.
dirac::FieldSequenceCompressor::FieldSequenceCompressor | ( | StreamPicInput * | pin, |
EncoderParams & | encp, | ||
DiracByteStream & | dirac_byte_stream | ||
) |
Creates a sequence compressor that compresses fields i.e. interlaced data, and prepares to begin compressing with the first field.
pin | an input stream containing a sequence of frames |
encp | parameters for the encoding process |
dirac_byte_stream | Output destination for compressed data |
|
virtual |
Destructor. Must delete IO objects created by constructor.
|
protectedvirtual |
Uses the GOP parameters to convert picture numbers in coded order to display order. Pure virtual function. The child class will have to define it.
pnum | the picture number in coded order |
Implements dirac::SequenceCompressor.
|
virtual |
Load one frame i.e. two fields of data into the Sequence Compressor. Sets m_all_done to true if no more data is available to be loaded.
Implements dirac::SequenceCompressor.
|
private |
Low pass filter the components in the fields used in Motion Estimation so that ME works better. Using a 1/4 1/2 1/4 filter
|
virtual |
Implements dirac::SequenceCompressor.
|
protectedvirtual |
Implements dirac::SequenceCompressor.
|
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.