# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

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

A compressed picture in Dirac bytestream format.

`#include <picture_byteio.h>`

Inheritance diagram for dirac::PictureByteIO:

## Public Member Functions
| PictureByteIO (PictureParams &frame_params, int frame_num)
| Constructor. More...
| PictureByteIO (PictureParams &frame_params, const ParseUnitByteIO &parseunit_byteio)
| Constructor. More...
virtual | ~PictureByteIO ()
| Destructor. More...
void | CollateByteStats (DiracByteStats &dirac_byte_stats)
| Gathers byte stats on the picture data. More...
bool | Input ()
| Inputs data from Dirac stream-format. More...
void | Output ()
| Outputs picture values to Dirac stream-format. More...
const std::string | GetBytes ()
| Gets string containing coded bytes. More...
int | GetSize () const
| Gets size (in bytes) More...
ParseUnitType | GetType () const
| Gets parse-unit type. More...
int | IsRef () const
| Returns true is picture in Reference picture. More...
int | IsNonRef () const
| Returns true is picture in Non-Reference picture. More...
int | NumRefs () const
| Gets parse-unit type. More...
bool | IsIntra () const
| Returns true is picture is Intra picture. More...
bool | IsInter () const
| Returns true is picture is Inter picture. More...
void | SetMvData (MvDataByteIO *mv_data)
void | SetTransformData (TransformByteIO *transform_data)
Public Member Functions inherited from dirac::ParseUnitByteIO
| ParseUnitByteIO ()
| Constructor. More...
| ParseUnitByteIO (const ByteIO &byte_io)
| Constructor. More...
| ParseUnitByteIO (const ParseUnitByteIO &parseunit_byteio)
| Constructor. More...
| ~ParseUnitByteIO ()
| Destructor. More...
bool | Input ()
| Reads from byte-stream to find parse data. More...
bool | IsValid ()
| Accesses validity of a unit by comparing it with an adjacent unit. More...
bool | CanSkip ()
| Can Skip past the entire parse-unit. More...
void | SetAdjacentParseUnits (ParseUnitByteIO *p_prev_parseunit)
| Set next/previous parse-unit values. More...
int | GetNextParseOffset () const
| Gets expected number of bytes to start of next parse-unit. More...
int | GetPreviousParseOffset () const
| Gets number of bytes to start of previous parse-unit. More...
bool | IsSeqHeader () const
| Returns true is parse unit is a Sequence Header. More...
bool | IsEndOfSequence () const
| Returns true is parse unit is an End of Sequence unit. More...
bool | IsAuxiliaryData () const
| Returns true is parse unit is Auxiliary Data. More...
bool | IsPaddingData () const
| Returns true is parse unit is Padding data. More...
bool | IsPicture () const
| Returns true is parse unit is Picture data. More...
bool | IsLowDelay () const
| Returns true is parse unit is Low Delay Sybtax unit. More...
bool | IsCoreSyntax () const
| Returns true is parse unit is Core syntax unit. More...
bool | IsUsingAC () const
| Returns true is parse unit uses Arithmetic coding. 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
unsigned char | CalcParseCode () const
| Calculates parse-code based on picture parameters. More...
void | InputReferencePictures ()
| Reads reference-picture data. More...
void | InputRetiredPicture ()
| Reads retired picture number. More...
void | SetPictureType ()
| Calculates picture-type (eg INTRA/INTER) of picture. More...
void | SetReferenceType ()
| Calculates reference-type of picture. More...
void | SetEntropyCodingFlag ()
| Sets the entropy coding flag in the picture parameters. More...

## Private Attributes
PictureParams & | m_frame_params
| Picture parameters. More...
int | m_frame_num
| Picture number. More...
MvDataByteIO * | m_mv_data
| MV data. More...
TransformByteIO * | m_transform_data
| Transform data. More...

## Additional Inherited Members
Protected Member Functions inherited from dirac::ParseUnitByteIO
virtual int | CalcNextUnitOffset ()
| Calculates number of bytes to start of next unit. More...
bool | SyncToUnitStart ()
| Locates start of parse-unit. More...
unsigned char | GetParseCode () const
| Get parse code. More...
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::PictureByteIO::PictureByteIO | ( | PictureParams & | frame_params,
|  | int | frame_num
| ) |  |

Parameters

  frame_params | Picture parameters
  frame_num | Picture number

dirac::PictureByteIO::PictureByteIO | ( | PictureParams & | frame_params,
|  | const ParseUnitByteIO & | parseunit_byteio
| ) |  |

Parameters

  frame_params | Destination of data
  parseunit_byteio | Source of data

virtual dirac::PictureByteIO::~PictureByteIO | ( |  | ) |
| virtual

## Member Function Documentation

unsigned char dirac::PictureByteIO::CalcParseCode | ( |  | ) | const
| private virtual

Returns
  Char bit-set

Reimplemented from dirac::ParseUnitByteIO.

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

Parameters

  dirac_byte_stats | Stat container

Reimplemented from dirac::ParseUnitByteIO.

const std::string dirac::PictureByteIO::GetBytes | ( |  | ) |
| virtual

Reimplemented from dirac::ParseUnitByteIO.

int dirac::PictureByteIO::GetSize | ( |  | ) | const
| virtual

Reimplemented from dirac::ParseUnitByteIO.

ParseUnitType dirac::PictureByteIO::GetType | ( |  | ) | const
| inline virtual

Reimplemented from dirac::ParseUnitByteIO.

References dirac::PU_PICTURE.

bool dirac::PictureByteIO::Input | ( |  | ) |

void dirac::PictureByteIO::InputReferencePictures | ( |  | ) |
| private

void dirac::PictureByteIO::InputRetiredPicture | ( |  | ) |
| private

bool dirac::PictureByteIO::IsInter | ( |  | ) | const
| inline

References dirac::ParseUnitByteIO::IsPicture(), and NumRefs().

bool dirac::PictureByteIO::IsIntra | ( |  | ) | const
| inline

References dirac::ParseUnitByteIO::IsPicture(), and NumRefs().

int dirac::PictureByteIO::IsNonRef | ( |  | ) | const
| inline

References dirac::ParseUnitByteIO::GetParseCode().

int dirac::PictureByteIO::IsRef | ( |  | ) | const
| inline

References dirac::ParseUnitByteIO::GetParseCode().

int dirac::PictureByteIO::NumRefs | ( |  | ) | const
| inline

References dirac::ParseUnitByteIO::GetParseCode().

Referenced by IsInter(), and IsIntra().

void dirac::PictureByteIO::Output | ( |  | ) |

void dirac::PictureByteIO::SetEntropyCodingFlag | ( |  | ) |
| private

void dirac::PictureByteIO::SetMvData | ( | MvDataByteIO * | mv_data | ) |
| inline

References m_mv_data.

void dirac::PictureByteIO::SetPictureType | ( |  | ) |
| private

void dirac::PictureByteIO::SetReferenceType | ( |  | ) |
| private

void dirac::PictureByteIO::SetTransformData | ( | TransformByteIO * | transform_data | ) |
| inline

References m_transform_data.

## Member Data Documentation

int dirac::PictureByteIO::m_frame_num
| private

PictureParams& dirac::PictureByteIO::m_frame_params
| private

MvDataByteIO* dirac::PictureByteIO::m_mv_data
| private

Referenced by SetMvData().

TransformByteIO* dirac::PictureByteIO::m_transform_data
| private

Referenced by SetTransformData().

The documentation for this class was generated from the following file:

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