/* * Copyright (c) 2016, Alliance for Open Media. All rights reserved. * * This source code is subject to the terms of the BSD 2 Clause License and * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License * was not distributed with this source code in the LICENSE file, you can * obtain it at www.aomedia.org/license/software. If the Alliance for Open * Media Patent License 1.0 was not distributed with this source code in the * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
void av1_init_intra_predictors(void); void av1_predict_intra_block_facade(const AV1_COMMON *cm, MACROBLOCKD *xd, int plane, int blk_col, int blk_row,
TX_SIZE tx_size); void av1_predict_intra_block(const MACROBLOCKD *xd, BLOCK_SIZE sb_size, int enable_intra_edge_filter, int wpx, int hpx,
TX_SIZE tx_size, PREDICTION_MODE mode, int angle_delta, int use_palette,
FILTER_INTRA_MODE filter_intra_mode, const uint8_t *ref, int ref_stride, uint8_t *dst, int dst_stride, int col_off, int row_off, int plane);
// Mapping of interintra to intra mode for use in the intra component staticconst PREDICTION_MODE interintra_to_intra_mode[INTERINTRA_MODES] = {
DC_PRED, V_PRED, H_PRED, SMOOTH_PRED
};
// Mapping of intra mode to the interintra mode staticconst INTERINTRA_MODE intra_to_interintra_mode[INTRA_MODES] = {
II_DC_PRED, II_V_PRED, II_H_PRED, II_V_PRED, II_SMOOTH_PRED, II_V_PRED,
II_H_PRED, II_H_PRED, II_V_PRED, II_SMOOTH_PRED, II_SMOOTH_PRED
};
// Get the shift (up-scaled by 256) in X w.r.t a unit change in Y. // If angle > 0 && angle < 90, dx = -((int)(256 / t)); // If angle > 90 && angle < 180, dx = (int)(256 / t); // If angle > 180 && angle < 270, dx = 1; staticinlineint av1_get_dx(int angle) { if (angle > 0 && angle < 90) { return dr_intra_derivative[angle];
} elseif (angle > 90 && angle < 180) { return dr_intra_derivative[180 - angle];
} else { // In this case, we are not really going to use dx. We may return any value. return 1;
}
}
// Get the shift (up-scaled by 256) in Y w.r.t a unit change in X. // If angle > 0 && angle < 90, dy = 1; // If angle > 90 && angle < 180, dy = (int)(256 * t); // If angle > 180 && angle < 270, dy = -((int)(256 * t)); staticinlineint av1_get_dy(int angle) { if (angle > 90 && angle < 180) { return dr_intra_derivative[angle - 90];
} elseif (angle > 180 && angle < 270) { return dr_intra_derivative[270 - angle];
} else { // In this case, we are not really going to use dy. We may return any value. return 1;
}
}
staticinlineint av1_use_intra_edge_upsample(int bs0, int bs1, int delta, int type) { constint d = abs(delta); constint blk_wh = bs0 + bs1; if (d == 0 || d >= 40) return 0; return type ? (blk_wh <= 8) : (blk_wh <= 16);
} #ifdef __cplusplus
} // extern "C" #endif #endif// AOM_AV1_COMMON_RECONINTRA_H_
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
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.