/* * 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.
*/
/* For keyframes, intra block modes are predicted by the (already decoded) modes for the Y blocks to the left and above us; for interframes, there
is a single probability table. */
typedefstruct {
PREDICTION_MODE as_mode;
int_mv as_mv[2]; // first, second inter predictor motion vectors
} b_mode_info;
// Note that the rate-distortion optimization loop, bit-stream writer, and // decoder implementation modules critically rely on the defined entry values // specified herein. They should be refactored concurrently.
// This structure now relates to 8x8 block regions. typedefstruct MODE_INFO { // Common for both INTER and INTRA blocks
BLOCK_SIZE sb_type;
PREDICTION_MODE mode;
TX_SIZE tx_size;
int8_t skip;
int8_t segment_id;
int8_t seg_id_predicted; // valid only when temporal_update is enabled
// Only for INTRA blocks
PREDICTION_MODE uv_mode;
// Only for INTER blocks
INTERP_FILTER interp_filter;
// if ref_frame[idx] is equal to ALTREF_FRAME then // MACROBLOCKD::block_ref[idx] is an altref
MV_REFERENCE_FRAME ref_frame[2];
// TODO(slavarnway): Delete and use bmi[3].as_mv[] instead.
int_mv mv[2];
// number of 4x4s in current block
uint16_t n4_w, n4_h; // log2 of n4_w, n4_h
uint8_t n4_wl, n4_hl;
// encoder const int16_t *dequant;
int *eob;
};
#define BLOCK_OFFSET(x, i) ((x) + (i)*16)
typedefstruct RefBuffer { // TODO(dkovalev): idx is not really required and should be removed, now it // is used in vp9_onyxd_if.c int idx;
YV12_BUFFER_CONFIG *buf; struct scale_factors sf;
} RefBuffer;
// Grid of 8x8 cells is placed over the block. // If some of them belong to the same mbtree-block // they will just have same mi[i][j] value
MODE_INFO **mi;
MODE_INFO *left_mi;
MODE_INFO *above_mi;
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.