#include "global.h"
#include "erc_do.h"

Go to the source code of this file.
Functions | |
| static void | concealBlocks (ImageParameters *p_Img, int lastColumn, int lastRow, int comp, frame *recfr, int picSizeX, int *condition) |
| static void | pixMeanInterpolateBlock (ImageParameters *p_Img, imgpel *src[], imgpel *block, int blockSize, int frameWidth) |
| int | ercConcealIntraFrame (ImageParameters *p_Img, frame *recfr, int picSizeX, int picSizeY, ercVariables_t *errorVar) |
| void | ercPixConcealIMB (ImageParameters *p_Img, imgpel *currFrame, int row, int column, int predBlocks[], int frameWidth, int mbWidthInBlocks) |
| int | ercCollect8PredBlocks (int predBlocks[], int currRow, int currColumn, int *condition, int maxRow, int maxColumn, int step, byte fNoCornerNeigh) |
| int | ercCollectColumnBlocks (int predBlocks[], int currRow, int currColumn, int *condition, int maxRow, int maxColumn, int step) |
Definition in file erc_do_i.c.
| static void concealBlocks | ( | ImageParameters * | p_Img, | |
| int | lastColumn, | |||
| int | lastRow, | |||
| int | comp, | |||
| frame * | recfr, | |||
| int | picSizeX, | |||
| int * | condition | |||
| ) | [static] |
Core for the Intra blocks concealment. It is called for each color component (Y,U,V) separately Finds the corrupted blocks and calls pixel interpolation functions to correct them, one block at a time. Scanning is done vertically and each corrupted column is corrected bi-directionally, i.e., first block, last block, first block+1, last block -1 ...
| p_Img | image encoding parameters for current picture | |
| lastColumn | Number of block columns in the frame | |
| lastRow | Number of block rows in the frame | |
| comp | color component | |
| recfr | Reconstructed frame buffer | |
| picSizeX | Width of the frame in pixels | |
| condition | The block condition (ok, lost) table |
Definition at line 309 of file erc_do_i.c.
References ercCollect8PredBlocks(), ercCollectColumnBlocks(), and ercPixConcealIMB().
Referenced by ercConcealIntraFrame().

| int ercCollect8PredBlocks | ( | int | predBlocks[], | |
| int | currRow, | |||
| int | currColumn, | |||
| int * | condition, | |||
| int | maxRow, | |||
| int | maxColumn, | |||
| int | step, | |||
| byte | fNoCornerNeigh | |||
| ) |
This function checks the neighbors of a Macroblock for usability in concealment. First the OK macroblocks are marked, and if there is not enough of them, then the CONCEALED ones as well. A "1" in the the output array means reliable, a "0" non reliable MB. The block order in "predBlocks": 1 4 0 5 x 7 2 6 3 i.e., corners first.
| predBlocks[] | Array for indicating the valid neighbor blocks | |
| currRow | Current block row in the frame | |
| currColumn | Current block column in the frame | |
| condition | The block condition (ok, lost) table | |
| maxRow | Number of block rows in the frame | |
| maxColumn | Number of block columns in the frame | |
| step | Number of blocks belonging to a MB, when counting in vertical/horizontal direction. (Y:2 U,V:1) | |
| fNoCornerNeigh | No corner neighbors are considered |
Definition at line 154 of file erc_do_i.c.
Referenced by concealBlocks(), and ercConcealInterFrame().
| int ercCollectColumnBlocks | ( | int | predBlocks[], | |
| int | currRow, | |||
| int | currColumn, | |||
| int * | condition, | |||
| int | maxRow, | |||
| int | maxColumn, | |||
| int | step | |||
| ) |
collects prediction blocks only from the current column
| predBlocks[] | Array for indicating the valid neighbor blocks | |
| currRow | Current block row in the frame | |
| currColumn | Current block column in the frame | |
| condition | The block condition (ok, lost) table | |
| maxRow | Number of block rows in the frame | |
| maxColumn | Number of block columns in the frame | |
| step | Number of blocks belonging to a MB, when counting in vertical/horizontal direction. (Y:2 U,V:1) |
Definition at line 263 of file erc_do_i.c.
Referenced by concealBlocks().
| int ercConcealIntraFrame | ( | ImageParameters * | p_Img, | |
| frame * | recfr, | |||
| int | picSizeX, | |||
| int | picSizeY, | |||
| ercVariables_t * | errorVar | |||
| ) |
The main function for Intra frame concealment. Calls "concealBlocks" for each color component (Y,U,V) separately.
| p_Img | image encoding parameters for current picture | |
| recfr | Reconstructed frame buffer | |
| picSizeX | Width of the frame in pixels | |
| picSizeY | Height of the frame in pixels | |
| errorVar | Variables for error concealment |
Definition at line 44 of file erc_do_i.c.
References concealBlocks().
Referenced by exit_picture().

| void ercPixConcealIMB | ( | ImageParameters * | p_Img, | |
| imgpel * | currFrame, | |||
| int | row, | |||
| int | column, | |||
| int | predBlocks[], | |||
| int | frameWidth, | |||
| int | mbWidthInBlocks | |||
| ) |
Conceals the MB at position (row, column) using pixels from predBlocks[] using pixMeanInterpolateBlock().
| p_Img | image encoding parameters for current picture | |
| currFrame | current frame | |
| row | y coordinate in blocks | |
| column | x coordinate in blocks | |
| predBlocks[] | list of neighboring source blocks (numbering 0 to 7, 1 means: use the neighbor) | |
| frameWidth | width of frame in pixels | |
| mbWidthInBlocks | 2 for Y, 1 for U/V components |
Definition at line 94 of file erc_do_i.c.
References pixMeanInterpolateBlock().
Referenced by concealBlocks().

| static void pixMeanInterpolateBlock | ( | ImageParameters * | p_Img, | |
| imgpel * | src[], | |||
| imgpel * | block, | |||
| int | blockSize, | |||
| int | frameWidth | |||
| ) | [static] |
Does the actual pixel based interpolation for block[] using weighted average.
| p_Img | image encoding parameters for current picture | |
| src[] | pointers to neighboring source blocks | |
| block | destination block | |
| blockSize | 16 for Y, 8 for U/V components | |
| frameWidth | Width of the frame in pixels |
Definition at line 497 of file erc_do_i.c.
Referenced by ercPixConcealIMB().