Dirac - A Video Codec

Created by the British Broadcasting Corporation.


Public Member Functions | Private Member Functions | Private Attributes
dirac::MvDataByteIO Class Reference

Represents compressed sequence-parameter data used in an AccessUnit.

#include <mvdata_byteio.h>

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

List of all members.

Public Member Functions

 MvDataByteIO (PictureParams &pparams, PicturePredParams &picpredparams)
 Constructor.
 MvDataByteIO (ByteIO &byte_io, PictureParams &pparams, PicturePredParams &picpredparams)
 Constructor.
virtual ~MvDataByteIO ()
 Destructor.
void CollateByteStats (DiracByteStats &dirac_byte_stats)
 Gathers byte stats on the motion vector data.
void Output ()
 Outputs motion vector data Dirac byte-format.
void Input ()
 Inputs motion vector information.
virtual const std::string GetBytes ()
 Get string containing coded bytes.
MvDataElementByteIOSplitModeData ()
 Return pointer to the superblock splitting modes ByteIO stream.
MvDataElementByteIOPredModeData ()
 Return pointer to the superblock splitting modes ByteIO stream.
MvDataElementByteIOMV1HorizData ()
 Return pointer to the block MVs reference 1 ByteIO stream.
MvDataElementByteIOMV1VertData ()
 Return pointer to the block MVs reference 1 ByteIO stream.
MvDataElementByteIOMV2HorizData ()
 Return pointer to the block MV reference 2 ByteIO stream.
MvDataElementByteIOMV2VertData ()
 Return pointer to the block MV reference 2 ByteIO stream.
MvDataElementByteIOYDCData ()
 Return pointer to the block Y DC values ByteIO stream.
MvDataElementByteIOUDCData ()
 Return pointer to the block U DC values ByteIO stream.
MvDataElementByteIOVDCData ()
 Return pointer to the block V DC values ByteIO stream.
int GetSize () const
 Return the size.
- Public Member Functions inherited from dirac::ByteIO
 ByteIO (bool new_stream=true)
 Default constructor.
 ByteIO (const ByteIO &stream_data)
 Constructor.
virtual ~ByteIO ()
 Destructor.
int GetReadBytePosition () const
 Get position of read stream pointer.
void SetByteParams (const ByteIO &byte_io)
 Copies stream source/destination info.
void ByteAlignOutput ()
 Sync input for byte-alignment.
void WriteUint (unsigned int value)
 Ouputs an unsigned integer in interleaved exp Golomb format.
void SetBitsLeft (int left_bits)
 Sets input size in bits.
int BitsLeft (void)
 Sets input size in bits.

Private Member Functions

void InputBlockParams ()
 Inputs block parameters.
void InputMVPrecision ()
 Inputs Motion vector precision data.
void InputGlobalMotionParams ()
 Inputs global motion parameters.
void InputFramePredictionMode ()
 Inputs picture prediction mode.
void InputPictureWeights ()
 Inputs Picture Weights.
void OutputBlockParams ()
 Outputs block parameters.
void OutputMVPrecision ()
 Outputs Motion vector precision data.
void OutputGlobalMotionParams ()
 Outputs global motion parameters.
void OutputFramePredictionMode ()
 Outputs picture prediction mode.
void OutputPictureWeights ()
 Outputs Picture Weights.

Private Attributes

PictureParamsm_pparams
 Sequence paramters for intput/output.
PicturePredParamsm_picpredparams
 Codec params - EncParams for Output and DecParams for input.
MvDataElementByteIO m_splitmode_data
 block data containing split modes
MvDataElementByteIO m_predmode_data
 block data containing prediction modes
MvDataElementByteIO m_mv1hblock_data
 block data containing horizontal MV components for reference 1
MvDataElementByteIO m_mv1vblock_data
 block data containing vertical MV components for reference 1
MvDataElementByteIO m_mv2hblock_data
 block data containing horizontal MV components for reference 2
MvDataElementByteIO m_mv2vblock_data
 block data containing vertical MV components for reference 2
MvDataElementByteIO m_ydcblock_data
 block data containing Y DC data
MvDataElementByteIO m_udcblock_data
 block data containing U DC data
MvDataElementByteIO m_vdcblock_data
 block data containing V DC data

Additional Inherited Members

- Protected Member Functions inherited from dirac::ByteIO
bool CanRead () const
bool GetBit (unsigned char &c, int pos) const
void SetBit (unsigned char &c, int pos) const
void SetBits (unsigned char &c, unsigned char bits) const
void ByteAlignInput ()
 Sync input for byte-alignment.
bool ReadBool ()
 Reads boolean value.
bool ReadBoolB ()
 Reads boolean value - bounded i/o.
int ReadBit ()
 Reads next bit.
int ReadBitB ()
 Reads next bit - bounded i/o.
unsigned int ReadNBits (int count)
 Reads next 'count' bits.
void InputBytes (char *data, int count)
 Reads from stream.
void FlushInputB ()
 Flushes the bounde input.
int ReadSint ()
 Reads a signed integer in interleaved exp-Golomb format *return Signed integer read.
int ReadSintB ()
 Reads a signed integer in interleaved exp-Golomb format from bounded input *return Signed integer read.
unsigned int ReadUint ()
 Reads an unsigned integer in interleaved exp Golomb format.
unsigned int ReadUintB ()
 Reads an unsigned integer in interleaved exp Golomb format from bounded input.
unsigned int ReadUintLit (const int byte_size)
 Reads a fixed length unsigned integer from the stream in big endian.
unsigned char InputUnByte ()
 Reads a byte from the stream.
std::string InputUnString (const int count)
 Reads a series of bytes from a stream.
void WriteBit (const bool &bit)
 Outputs a bit.
int WriteNBits (unsigned int val)
 Outputs an unsigned integer.
void WriteNBits (unsigned int val, int count)
 Outputs an n bit integer.
void OutputBytes (const std::string &bytes)
 Outputs a series of bytes.
void OutputCurrentByte ()
 Outputs current byte contents.
void WriteSint (int val)
 Outputs an integer in Golomb signed integer format.
void WriteUintLit (const unsigned int &value, const int &length)
 Output unsigned int value in big endian format.
void RemoveRedundantBytes (const int count)
 Removes portion of byte-stream no longer required.
void SeekGet (const int offset, std::ios_base::seekdir dir)
- Protected Attributes inherited from dirac::ByteIO
std::stringstream * mp_stream
 Input/output steam.

Constructor & Destructor Documentation

dirac::MvDataByteIO::MvDataByteIO ( PictureParams pparams,
PicturePredParams picpredparams 
)
Parameters:
pparamsPicture Params
picpredparamsPicture prediction parameters
dirac::MvDataByteIO::MvDataByteIO ( ByteIO byte_io,
PictureParams pparams,
PicturePredParams picpredparams 
)
Parameters:
byte_ioInput/Output Byte stream
pparamsPicture Params
picpredparamsPicture prediction parameters
virtual dirac::MvDataByteIO::~MvDataByteIO ( )
virtual

Member Function Documentation

void dirac::MvDataByteIO::CollateByteStats ( DiracByteStats dirac_byte_stats)
virtual
Parameters:
dirac_byte_statsStat container

Reimplemented from dirac::ByteIO.

virtual const std::string dirac::MvDataByteIO::GetBytes ( )
virtual

Reimplemented from dirac::ByteIO.

int dirac::MvDataByteIO::GetSize ( ) const
virtual

Reimplemented from dirac::ByteIO.

void dirac::MvDataByteIO::Input ( )
void dirac::MvDataByteIO::InputBlockParams ( )
private
void dirac::MvDataByteIO::InputFramePredictionMode ( )
private
void dirac::MvDataByteIO::InputGlobalMotionParams ( )
private
void dirac::MvDataByteIO::InputMVPrecision ( )
private
void dirac::MvDataByteIO::InputPictureWeights ( )
private
MvDataElementByteIO* dirac::MvDataByteIO::MV1HorizData ( )
inline

References m_mv1hblock_data.

MvDataElementByteIO* dirac::MvDataByteIO::MV1VertData ( )
inline

References m_mv1vblock_data.

MvDataElementByteIO* dirac::MvDataByteIO::MV2HorizData ( )
inline

References m_mv2hblock_data.

MvDataElementByteIO* dirac::MvDataByteIO::MV2VertData ( )
inline

References m_mv2vblock_data.

void dirac::MvDataByteIO::Output ( )
void dirac::MvDataByteIO::OutputBlockParams ( )
private
void dirac::MvDataByteIO::OutputFramePredictionMode ( )
private
void dirac::MvDataByteIO::OutputGlobalMotionParams ( )
private
void dirac::MvDataByteIO::OutputMVPrecision ( )
private
void dirac::MvDataByteIO::OutputPictureWeights ( )
private
MvDataElementByteIO* dirac::MvDataByteIO::PredModeData ( )
inline

References m_predmode_data.

MvDataElementByteIO* dirac::MvDataByteIO::SplitModeData ( )
inline

References m_splitmode_data.

MvDataElementByteIO* dirac::MvDataByteIO::UDCData ( )
inline

References m_udcblock_data.

MvDataElementByteIO* dirac::MvDataByteIO::VDCData ( )
inline

References m_vdcblock_data.

MvDataElementByteIO* dirac::MvDataByteIO::YDCData ( )
inline

References m_ydcblock_data.


Member Data Documentation

MvDataElementByteIO dirac::MvDataByteIO::m_mv1hblock_data
private

Referenced by MV1HorizData().

MvDataElementByteIO dirac::MvDataByteIO::m_mv1vblock_data
private

Referenced by MV1VertData().

MvDataElementByteIO dirac::MvDataByteIO::m_mv2hblock_data
private

Referenced by MV2HorizData().

MvDataElementByteIO dirac::MvDataByteIO::m_mv2vblock_data
private

Referenced by MV2VertData().

PicturePredParams& dirac::MvDataByteIO::m_picpredparams
private
PictureParams& dirac::MvDataByteIO::m_pparams
private
MvDataElementByteIO dirac::MvDataByteIO::m_predmode_data
private

Referenced by PredModeData().

MvDataElementByteIO dirac::MvDataByteIO::m_splitmode_data
private

Referenced by SplitModeData().

MvDataElementByteIO dirac::MvDataByteIO::m_udcblock_data
private

Referenced by UDCData().

MvDataElementByteIO dirac::MvDataByteIO::m_vdcblock_data
private

Referenced by VDCData().

MvDataElementByteIO dirac::MvDataByteIO::m_ydcblock_data
private

Referenced by YDCData().


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.