Created by the British Broadcasting Corporation.
Compresses a sequence of frames from a stream. More...
#include <seq_compress.h>
Public Member Functions | |
FrameSequenceCompressor (StreamPicInput *pin, EncoderParams &encp, DiracByteStream &dirac_byte_stream) | |
Constructor. | |
virtual | ~FrameSequenceCompressor () |
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. | |
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 frames, frame by frame. 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::FrameSequenceCompressor::FrameSequenceCompressor | ( | StreamPicInput * | pin, |
EncoderParams & | encp, | ||
DiracByteStream & | dirac_byte_stream ) |
Creates a sequence compressor that compresses frames i.e. progressive data, and prepares to begin compressing with the first frame.Sets up frame padding in the picture input if necesary
pin | an input stream containing a sequence of frames |
encp | parameters for the encoding process |
dirac_byte_stream | Output destination for compressed data |
|
inlinevirtual |
Destructor. Must delete IO objects created by constructor.
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.
Load one frame of data into the Sequence Compressor. Sets m_all_done to true if no more data is available to be loaded.
Implements dirac::SequenceCompressor.
|
virtual |
Implements dirac::SequenceCompressor.
|
protectedvirtual |
Implements dirac::SequenceCompressor.
© 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.