Created by the British Broadcasting Corporation.
Holds pictures both for reference and to overcome reordering delay. More...
#include <picture_buffer.h>
The buffer holds pictures in a stack to overcome both reordering due to bi-directional prediction and use as references for subsequence motion estimation. Pictures, and components of pictures, can be accessed by their picture numbers. GOP parameters can be included in the constructors so that pictures can be given types (I picture, L1 picture or L2 picture) on being pushed onto the stack; alternatively, these parameters can be overridden.
dirac::PictureBuffer::PictureBuffer | ( | ) |
dirac::PictureBuffer::PictureBuffer | ( | ChromaFormat | cf, |
const int | xlen, | ||
const int | ylen, | ||
const unsigned int | luma_depth, | ||
const unsigned int | chroma_depth, | ||
bool | using_ac | ||
) |
Creates a PictureBuffer using the chroma format. Suitable for compressing when there are no L2 pictures, or when the temporal prediction structure is to be determined on the fly.
cf | the Chroma format of pictures in the buffer |
xlen | the luma width of pictures in the buffer |
ylen | the luma height of pictures in the buffer |
luma_depth | the video depth of the luma comp in the buffer |
chroma_depth | the video depth of the chroma comp in the buffer |
using_ac | True if using Arithmetic coding to code coefficient data |
dirac::PictureBuffer::PictureBuffer | ( | ChromaFormat | cf, |
const int | numL1, | ||
const int | L1sep, | ||
const int | xlen, | ||
const int | ylen, | ||
const unsigned int | luma_depth, | ||
const unsigned int | chroma_depth, | ||
bool | interlace, | ||
bool | using_ac | ||
) |
Creates a PictureBuffer using the chroma format, the number of L1 pictures between I pictures and the separation in pictures between L1 pictures. Suitable for compressing when there is a full GOP structure or when the temporal prediction structure is to be determined on the fly.
cf | the Chroma format of pictures in the buffer |
numL1 | the number of Layer 1 pictures before the next I picture. 0 means that there is only one I picture. |
L1sep | the number of Layer 2 pictures between Layer 1 pictures |
xlen | the luma width of pictures in the buffer |
ylen | the luma height of pictures in the buffer |
luma_depth | the video depth of the luma comp in the buffer |
chroma_depth | the video depth of the chroma comp in the buffer |
interlace | Set true if material is being coded in interlaced mode |
using_ac | True if using Arithmetic coding to code coefficient data |
dirac::PictureBuffer::PictureBuffer | ( | const PictureBuffer & | cpy | ) |
Copy constructor. Removes the current contents of the pictureture buffer and copies in the contents of the initialising buffer.
dirac::PictureBuffer::~PictureBuffer | ( | ) |
void dirac::PictureBuffer::ClearSlot | ( | const unsigned int | pos | ) | [private] |
Clear internal data slot number pos
void dirac::PictureBuffer::CopyPicture | ( | const Picture & | picture | ) |
Put a copy of a new picture into the buffer.
Picture& dirac::PictureBuffer::GetPicture | ( | const unsigned int | pnum | ) |
Picture& dirac::PictureBuffer::GetPicture | ( | const unsigned int | pnum, |
bool & | is_present | ||
) |
const Picture& dirac::PictureBuffer::GetPicture | ( | const unsigned int | pnum, |
bool & | is_present | ||
) | const |
const Picture& dirac::PictureBuffer::GetPicture | ( | const unsigned int | pnum | ) | const |
bool dirac::PictureBuffer::IsPictureAvail | ( | const unsigned int | pnum | ) | const |
std::vector<int> dirac::PictureBuffer::Members | ( | ) | const |
PictureBuffer& dirac::PictureBuffer::operator= | ( | const PictureBuffer & | rhs | ) |
Operator=. Assigns all elements of the rhs to the lhs.
void dirac::PictureBuffer::PushPicture | ( | const PictureParams & | pp | ) |
Put a new picture into the top of the buffer. Picture parameters associated with the picture will be as given by the picture parameter object.
void dirac::PictureBuffer::Remove | ( | int | pnum | ) |
Delete picture.
pnum | picture number in display order to be deleted from picture buffer |
void dirac::PictureBuffer::SetRetiredPictureNum | ( | const int | show_pnum, |
const int | current_coded_pnum | ||
) |
Indicate which picture which has been output and which is no longer required for reference. Expiry times are set in each picture's picture parameters.
show_pnum | picture number in display order that can be output |
current_coded_pnum | picture number in display order of picture currently being coded |
std::vector<Picture*> dirac::PictureBuffer::m_pic_data [private] |
std::map<unsigned int,unsigned int> dirac::PictureBuffer::m_pnum_map [private] |
© 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.