Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac::FieldSequenceCompressor Class Reference

Compresses a sequence of fields from a stream. More...

#include <seq_compress.h>

Inheritance diagram for dirac::FieldSequenceCompressor:

Inheritance graph
[legend]
Collaboration diagram for dirac::FieldSequenceCompressor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Protected Member Functions

Private Member Functions

Private Attributes


Detailed Description

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.


Constructor & Destructor Documentation

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.

Parameters:
pin an input stream containing a sequence of frames
encp parameters for the encoding process
dirac_byte_stream Output destination for compressed data

virtual dirac::FieldSequenceCompressor::~FieldSequenceCompressor  )  [virtual]
 

Destructor. Must delete IO objects created by constructor.


Member Function Documentation

virtual void dirac::FieldSequenceCompressor::CleanBuffers  )  [protected, virtual]
 

Reimplemented from dirac::SequenceCompressor.

virtual int dirac::FieldSequenceCompressor::CodedToDisplay const int  pnum  )  [protected, virtual]
 

Uses the GOP parameters to convert frame numbers in coded order to display order. Pure virtual function. The child class will have to define it.

Parameters:
pnum the picture number in coded order

Implements dirac::SequenceCompressor.

virtual bool dirac::FieldSequenceCompressor::IsNewAccessUnit  )  [protected, virtual]
 

Implements dirac::SequenceCompressor.

virtual bool dirac::FieldSequenceCompressor::LoadNextFrame  )  [virtual]
 

Load oen 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.

Returns:
true - if both fields load succeeded. false - otherwise

Implements dirac::SequenceCompressor.

virtual const Frame& dirac::FieldSequenceCompressor::OriginalFrame int  frame_num  )  [protected, virtual]
 

Reimplemented from dirac::SequenceCompressor.

void dirac::FieldSequenceCompressor::PreMotionEstmationFilter PicArray comp  )  [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 void dirac::FieldSequenceCompressor::RateControlCompress Frame my_frame,
bool  is_a_cut
[protected, virtual]
 

Implements dirac::SequenceCompressor.


Member Data Documentation

int dirac::FieldSequenceCompressor::m_field1_bytes [private]
 

int dirac::FieldSequenceCompressor::m_field2_bytes [private]
 

FrameBuffer* dirac::FieldSequenceCompressor::m_origbuffer [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.