/* * Copyright (c) 2010 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.
*/
const MODE_INFO *mode_info_context = cm->mi; int mbr, mbc;
/* The pixel thresholds are adjusted according to if or not the macroblock
* is a skipped block. */ unsignedchar *ylimits = cm->pp_limits_buffer; unsignedchar *uvlimits = cm->pp_limits_buffer + 16 * cm->mb_cols;
if (ppl > 0) { for (mbr = 0; mbr < cm->mb_rows; ++mbr) { unsignedchar *ylptr = ylimits; unsignedchar *uvlptr = uvlimits; for (mbc = 0; mbc < cm->mb_cols; ++mbc) { unsignedchar mb_ppl;
#if CONFIG_POSTPROC int vp8_post_proc_frame(VP8_COMMON *oci, YV12_BUFFER_CONFIG *dest,
vp8_ppflags_t *ppflags) { int q = oci->filter_level * 10 / 6; int flags = ppflags->post_proc_flag; int deblock_level = ppflags->deblocking_level; int noise_level = ppflags->noise_level;
if (!oci->frame_to_show) return -1;
if (q > 63) q = 63;
if (!flags) {
*dest = *oci->frame_to_show;
/* handle problem with extending borders */
dest->y_width = oci->Width;
dest->y_height = oci->Height;
dest->uv_height = dest->y_height / 2;
oci->postproc_state.last_base_qindex = oci->base_qindex;
oci->postproc_state.last_frame_valid = 1; return 0;
} if (flags & VP8D_ADDNOISE) { if (!oci->postproc_state.generated_noise) {
oci->postproc_state.generated_noise = vpx_calloc(
oci->Width + 256, sizeof(*oci->postproc_state.generated_noise)); if (!oci->postproc_state.generated_noise) return 1;
}
}
/* Allocate post_proc_buffer_int if needed */ if ((flags & VP8D_MFQE) && !oci->post_proc_buffer_int_used) { if ((flags & VP8D_DEBLOCK) || (flags & VP8D_DEMACROBLOCK)) { int width = (oci->Width + 15) & ~15; int height = (oci->Height + 15) & ~15;
if (vp8_yv12_alloc_frame_buffer(&oci->post_proc_buffer_int, width, height,
VP8BORDERINPIXELS)) {
vpx_internal_error(&oci->error, VPX_CODEC_MEM_ERROR, "Failed to allocate MFQE framebuffer");
}
oci->post_proc_buffer_int_used = 1;
/* insure that postproc is set to all 0's so that post proc * doesn't pull random data in from edge
*/
memset((&oci->post_proc_buffer_int)->buffer_alloc, 128,
(&oci->post_proc_buffer)->frame_size);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.