macroblock.h File Reference

Arrays for macroblock encoding. More...

#include "block.h"

Include dependency graph for macroblock.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void set_interpret_mb_mode (int slice_type)
void get_neighbors (Macroblock *currMB, PixelPos *block_a, PixelPos *block_b, PixelPos *block_c, PixelPos *block_d, int mb_x, int mb_y, int blockshape_x)
void GetMotionVectorPredictor (Macroblock *currMB, PixelPos *block_a, PixelPos *block_b, PixelPos *block_c, short pmv[2], char ref_frame, char **refPic, short ***tmp_mv, int mb_x, int mb_y, int blockshape_x, int blockshape_y)
void start_macroblock (ImageParameters *img, Macroblock **currMB)
void read_one_macroblock (ImageParameters *img, Slice *currSlice, Macroblock *currMB)
int decode_one_macroblock (ImageParameters *img, Macroblock *currMB, StorablePicture *dec_picture)
Boolean exit_macroblock (ImageParameters *img, int eos_bit)

Variables

const byte QP_SCALE_CR [52]


Detailed Description

Arrays for macroblock encoding.

Author:
Inge Lille-Langoy <inge.lille-langoy@telenor.com> Copyright (C) 1999 Telenor Satellite Services, Norway

Definition in file macroblock.h.


Function Documentation

int decode_one_macroblock ( ImageParameters *  img,
Macroblock *  currMB,
StorablePicture *  dec_picture 
)

Boolean exit_macroblock ( ImageParameters *  img,
int  eos_bit 
)

set coordinates of the next macroblock check end_of_slice condition

The if() statement below resembles the original code, which tested

img->current_mb_nr == img->PicSizeInMbs. Both is, of course, nonsense In an error prone environment, one can only be sure to have a new picture by checking the tr of the next slice header!

Definition at line 630 of file macroblock.c.

References FmoGetNextMBNr().

Referenced by decode_one_slice().

Here is the call graph for this function:

void get_neighbors ( Macroblock *  currMB,
PixelPos *  block_a,
PixelPos *  block_b,
PixelPos *  block_c,
PixelPos *  block_d,
int  mb_x,
int  mb_y,
int  blockshape_x 
)

Get current block spatial neighbors.

Definition at line 1740 of file macroblock.c.

References get4x4Neighbour().

Referenced by readMBMotionVectors().

Here is the call graph for this function:

void GetMotionVectorPredictor ( Macroblock *  currMB,
PixelPos *  block_a,
PixelPos *  block_b,
PixelPos *  block_c,
short  pmv[2],
char  ref_frame,
char **  refPic,
short ***  tmp_mv,
int  mb_x,
int  mb_y,
int  blockshape_x,
int  blockshape_y 
)

Get motion vector predictor.

Definition at line 1790 of file macroblock.c.

References macroblock::mb_field.

Referenced by readMBMotionVectors().

void read_one_macroblock ( ImageParameters *  img,
Slice *  currSlice,
Macroblock *  currMB 
)

void set_interpret_mb_mode ( int  slice_type  ) 

Set mode interpretation based on slice type.

Definition at line 886 of file macroblock.c.

References interpret_mb_mode_B(), interpret_mb_mode_I(), interpret_mb_mode_P(), and interpret_mb_mode_SI().

Referenced by decode_one_slice().

Here is the call graph for this function:

void start_macroblock ( ImageParameters *  img,
Macroblock **  currMB 
)

initializes the current macroblock

Definition at line 552 of file macroblock.c.

References CheckAvailabilityOfNeighbors(), error(), storable_picture::max_slice_id, macroblock::mbAddrX, macroblock::qp, storable_picture::slice_id, and update_qp().

Referenced by decode_one_slice().

Here is the call graph for this function:


Documentation generated with DoxyGen