d04f852368
The error-concealer is plugged in after any motion vectors have been decoded. It tries to estimate any missing motion vectors from the motion vectors of the previous frame. Intra blocks with missing residual are replaced with inter blocks with estimated motion vectors. This feature was developed in a separate sandbox (sandbox/holmer/error-concealment). Change-Id: I5c8917b031078d79dbafd90f6006680e84a23412
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
/*
|
|
* Copyright (c) 2011 The WebM project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
|
|
#ifndef ERROR_CONCEALMENT_H
|
|
#define ERROR_CONCEALMENT_H
|
|
|
|
#include "onyxd_int.h"
|
|
#include "ec_types.h"
|
|
|
|
/* Allocate memory for the overlap lists */
|
|
int vp8_alloc_overlap_lists(VP8D_COMP *pbi);
|
|
|
|
/* Deallocate the overlap lists */
|
|
void vp8_de_alloc_overlap_lists(VP8D_COMP *pbi);
|
|
|
|
/* Estimate all missing motion vectors. */
|
|
void vp8_estimate_missing_mvs(VP8D_COMP *pbi);
|
|
|
|
/* Functions for spatial MV interpolation */
|
|
|
|
/* Interpolates all motion vectors for a macroblock mb at position
|
|
* (mb_row, mb_col). */
|
|
void vp8_interpolate_motion(MACROBLOCKD *mb,
|
|
int mb_row, int mb_col,
|
|
int mb_rows, int mb_cols,
|
|
int mi_stride);
|
|
|
|
/* Conceal a macroblock with corrupt residual.
|
|
* Copies the prediction signal to the reconstructed image.
|
|
*/
|
|
void vp8_conceal_corrupt_mb(MACROBLOCKD *xd);
|
|
|
|
#endif
|