#include "block.h"


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] |
Definition in file macroblock.h.
| int decode_one_macroblock | ( | ImageParameters * | img, | |
| Macroblock * | currMB, | |||
| StorablePicture * | dec_picture | |||
| ) |
decode one macroblock
Definition at line 4620 of file macroblock.c.
References colocated_params::bottom, storable_picture::chroma_vector_adjustment, decode_ipcm_mb(), decode_one_component(), colocated_params::frame, storable_picture::imgUV, storable_picture::imgY, macroblock::mb_field, macroblock::mb_type, storable_picture::structure, colocated_params::top, and YUV444.
Referenced by decode_one_slice().

| 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().

| 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().

| 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 | |||
| ) |
Get the syntax elements from the NAL.
TO for error concealment If we have an INTRA Macroblock and we lost the partition which contains the intra coefficients Copy MB would be better than just a gray block. Seems to be a bit at the wrong place to do this right here, but for this case up to now there is no other way.
Definition at line 1134 of file macroblock.c.
References assignSE2partition, macroblock::b8mode, macroblock::b8pdir, datapartition::bitstream, macroblock::cbp, Slice::dp_mode, Slice::dpB_NotPresent, macroblock::ei_flag, Bitstream::ei_flag, Bitstream::frame_bitoffset, init_macroblock(), syntaxelement::len, linfo_ue(), macroblock::luma_transform_size_8x8_flag, syntaxelement::mapping, pic_motion_params::mb_field, macroblock::mb_field, mb_is_available(), macroblock::mb_type, storable_picture::motion, macroblock::NoMbPartLessThan8x8Flag, Slice::partArr, macroblock::qp, read_ipred_modes(), readB8_typeInfo_CABAC(), readCBPandCoeffsFromNAL(), syntaxelement::reading, readIPCMcoeffsFromNAL(), readMB_skip_flagInfo_CABAC(), readMB_transform_size_flag_CABAC(), readMB_typeInfo_CABAC(), readMotionInfoFromNAL(), datapartition::readSyntaxElement, readSyntaxElement_FLC(), SE_HEADER, SetB8Mode(), macroblock::skip_flag, syntaxelement::type, update_qp(), syntaxelement::value1, and syntaxelement::value2.
Referenced by decode_one_slice().

| 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().

| 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().
