Dirac - A Video Codec

Created by the British Broadcasting Corporation.


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

A compressed picture in Dirac bytestream format.

#include <picture_byteio.h>

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

List of all members.

Public Member Functions

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

unsigned char CalcParseCode () const
 Calculates parse-code based on picture parameters.
void InputReferencePictures ()
 Reads reference-picture data.
void InputRetiredPicture ()
 Reads retired picture number.
void SetPictureType ()
 Calculates picture-type (eg INTRA/INTER) of picture.
void SetReferenceType ()
 Calculates reference-type of picture.
void SetEntropyCodingFlag ()
 Sets the entropy coding flag in the picture parameters.

Private Attributes

PictureParamsm_frame_params
 Picture parameters.
int m_frame_num
 Picture number.
MvDataByteIOm_mv_data
 MV data.
TransformByteIOm_transform_data
 Transform data.

Additional Inherited Members

- Protected Member Functions inherited from dirac::ParseUnitByteIO
virtual int CalcNextUnitOffset ()
 Calculates number of bytes to start of next unit.
bool SyncToUnitStart ()
 Locates start of parse-unit.
unsigned char GetParseCode () const
 Get parse code.
- 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)

Constructor & Destructor Documentation

dirac::PictureByteIO::PictureByteIO ( PictureParams frame_params,
int  frame_num 
)
Parameters:
frame_paramsPicture parameters
frame_numPicture number
dirac::PictureByteIO::PictureByteIO ( PictureParams frame_params,
const ParseUnitByteIO parseunit_byteio 
)
Parameters:
frame_paramsDestination of data
parseunit_byteioSource of data
virtual dirac::PictureByteIO::~PictureByteIO ( )
virtual

Member Function Documentation

unsigned char dirac::PictureByteIO::CalcParseCode ( ) const
privatevirtual
Returns:
Char bit-set

Reimplemented from dirac::ParseUnitByteIO.

void dirac::PictureByteIO::CollateByteStats ( DiracByteStats dirac_byte_stats)
virtual
Parameters:
dirac_byte_statsStat 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
inlinevirtual

Reimplemented from dirac::ParseUnitByteIO.

References dirac::PU_PICTURE.

bool dirac::PictureByteIO::Input ( )

Reimplemented from dirac::ParseUnitByteIO.

void dirac::PictureByteIO::InputReferencePictures ( )
private
void dirac::PictureByteIO::InputRetiredPicture ( )
private
bool dirac::PictureByteIO::IsInter ( ) const
inline
bool dirac::PictureByteIO::IsIntra ( ) const
inline
int dirac::PictureByteIO::IsNonRef ( ) const
inline
int dirac::PictureByteIO::IsRef ( ) const
inline
int dirac::PictureByteIO::NumRefs ( ) const
inline
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:

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