VC9 Bitplane decoding


Defines

#define IMODE_RAW   0
#define IMODE_NORM2   1
#define IMODE_DIFF2   2
#define IMODE_NORM6   3
#define IMODE_DIFF6   4
#define IMODE_ROWSKIP   5
#define IMODE_COLSKIP   6

Functions

int alloc_bitplane (BitPlane *bp, int width, int height)
void free_bitplane (BitPlane *bp)
static void decode_rowskip (uint8_t *plane, int width, int height, int stride, GetBitContext *gb)
static void decode_colskip (uint8_t *plane, int width, int height, int stride, GetBitContext *gb)
static int bitplane_decoding (BitPlane *bp, VC9Context *v)

Detailed Description

See also:
8.7, p56
Imode types

Define Documentation

#define IMODE_COLSKIP   6

Definition at line 921 of file vc9.c.

Referenced by bitplane_decoding().

#define IMODE_DIFF2   2

Definition at line 917 of file vc9.c.

Referenced by bitplane_decoding().

#define IMODE_DIFF6   4

Definition at line 919 of file vc9.c.

Referenced by bitplane_decoding().

#define IMODE_NORM2   1

Definition at line 916 of file vc9.c.

Referenced by bitplane_decoding().

#define IMODE_NORM6   3

Definition at line 918 of file vc9.c.

Referenced by bitplane_decoding().

#define IMODE_RAW   0

Definition at line 915 of file vc9.c.

Referenced by bitplane_decoding().

#define IMODE_ROWSKIP   5

Definition at line 920 of file vc9.c.

Referenced by bitplane_decoding().


Function Documentation

int alloc_bitplane ( BitPlane bp,
int  width,
int  height 
)

Allocate the buffer from a bitplane, given its dimensions

Parameters:
bp Bitplane which buffer is to allocate
[in] width Width of the buffer
[in] height Height of the buffer
Returns:
Status
Todo:
TODO: Take into account stride
Todo:
TODO: Allow use of external buffers ?

Definition at line 932 of file vc9.c.

References av_malloc(), BitPlane::data, BitPlane::height, BitPlane::stride, and BitPlane::width.

Referenced by vc9_decode_init().

Here is the call graph for this function:

static int bitplane_decoding ( BitPlane bp,
VC9Context v 
) [static]

Decode a bitplane's bits

Parameters:
bp Bitplane where to store the decode bits
v VC9 context for bit reading and logging
Returns:
Status FIXME: Optimize
Todo:
TODO: Decide if a struct is needed

Definition at line 998 of file vc9.c.

References av_log(), AV_LOG_DEBUG, MpegEncContext::avctx, BitPlane::data, decode_colskip(), decode_rowskip(), MpegEncContext::gb, get_bits(), get_vlc2(), height, BitPlane::height, IMODE_COLSKIP, IMODE_DIFF2, IMODE_DIFF6, IMODE_NORM2, IMODE_NORM6, IMODE_RAW, IMODE_ROWSKIP, BitPlane::is_raw, offset, VC9Context::s, BitPlane::stride, VLC::table, VC9_IMODE_VLC_BITS, VC9_NORM2_VLC_BITS, VC9_NORM6_VLC_BITS, width, and BitPlane::width.

Referenced by decode_b_picture_secondary_header(), decode_i_picture_secondary_header(), and decode_p_picture_secondary_header().

Here is the call graph for this function:

static void decode_colskip ( uint8_t *  plane,
int  width,
int  height,
int  stride,
GetBitContext gb 
) [static]

Decode columns by checking if they are skipped

Parameters:
plane Buffer to store decoded bits
[in] width Width of this buffer
[in] height Height of this buffer
[in] stride of this buffer FIXME: Optimize

Definition at line 977 of file vc9.c.

References get_bits().

Referenced by bitplane_decoding().

Here is the call graph for this function:

static void decode_rowskip ( uint8_t *  plane,
int  width,
int  height,
int  stride,
GetBitContext gb 
) [static]

Decode rows by checking if they are skipped

Parameters:
plane Buffer to store decoded bits
[in] width Width of this buffer
[in] height Height of this buffer
[in] stride of this buffer

Definition at line 957 of file vc9.c.

References get_bits().

Referenced by bitplane_decoding().

Here is the call graph for this function:

void free_bitplane ( BitPlane bp  ) 

Free the bitplane's buffer

Parameters:
bp Bitplane which buffer is to free

Definition at line 945 of file vc9.c.

References av_freep(), BitPlane::data, BitPlane::height, BitPlane::stride, and BitPlane::width.

Referenced by vc9_decode_end().

Here is the call graph for this function:


Generated on Mon Apr 28 14:09:23 2008 for Cinelerra by  doxygen 1.5.5