# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

Public Member Functions | Private Member Functions | Private Attributes | List of all members
dirac::MvDataByteIO Class Reference

Represents compressed sequence-parameter data used in an AccessUnit.

`#include <mvdata_byteio.h>`

Inheritance diagram for dirac::MvDataByteIO:

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

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

## Private Attributes
PictureParams & | m_pparams
| Sequence paramters for intput/output. More...
PicturePredParams & | m_picpredparams
| Codec params - EncParams for Output and DecParams for input. More...
MvDataElementByteIO | m_splitmode_data
| block data containing split modes More...
MvDataElementByteIO | m_predmode_data
| block data containing prediction modes More...
MvDataElementByteIO | m_mv1hblock_data
| block data containing horizontal MV components for reference 1 More...
MvDataElementByteIO | m_mv1vblock_data
| block data containing vertical MV components for reference 1 More...
MvDataElementByteIO | m_mv2hblock_data
| block data containing horizontal MV components for reference 2 More...
MvDataElementByteIO | m_mv2vblock_data
| block data containing vertical MV components for reference 2 More...
MvDataElementByteIO | m_ydcblock_data
| block data containing Y DC data More...
MvDataElementByteIO | m_udcblock_data
| block data containing U DC data More...
MvDataElementByteIO | m_vdcblock_data
| block data containing V DC data More...

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

## Constructor & Destructor Documentation

dirac::MvDataByteIO::MvDataByteIO | ( | PictureParams & | pparams,
|  | PicturePredParams & | picpredparams
| ) |  |

Parameters

  pparams | Picture Params
  picpredparams | Picture prediction parameters

dirac::MvDataByteIO::MvDataByteIO | ( | ByteIO & | byte_io,
|  | PictureParams & | pparams,
|  | PicturePredParams & | picpredparams
| ) |  |

Parameters

  byte_io | Input/Output Byte stream
  pparams | Picture Params
  picpredparams | Picture prediction parameters

virtual dirac::MvDataByteIO::~MvDataByteIO | ( |  | ) |
| virtual

## Member Function Documentation

void dirac::MvDataByteIO::CollateByteStats | ( | DiracByteStats & | dirac_byte_stats | ) |
| virtual

Parameters

  dirac_byte_stats | Stat 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:

- mvdata_byteio.h

© 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.