vp10: merge ext_ipred_bltr experiment into misc_fixes.
Change-Id: I2f2deb700748408b8278b7f5c29ee1f2e39785ec
This commit is contained in:
Родитель
194c0a5cfb
Коммит
53dc9fd0a0
|
@ -265,7 +265,6 @@ EXPERIMENT_LIST="
|
||||||
fp_mb_stats
|
fp_mb_stats
|
||||||
emulate_hardware
|
emulate_hardware
|
||||||
misc_fixes
|
misc_fixes
|
||||||
ext_ipred_bltr
|
|
||||||
"
|
"
|
||||||
CONFIG_LIST="
|
CONFIG_LIST="
|
||||||
dependency_tracking
|
dependency_tracking
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "vp10/common/reconintra.h"
|
#include "vp10/common/reconintra.h"
|
||||||
#include "vp10/common/onyxc_int.h"
|
#include "vp10/common/onyxc_int.h"
|
||||||
|
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
enum {
|
enum {
|
||||||
NEED_LEFT = 1 << 1,
|
NEED_LEFT = 1 << 1,
|
||||||
NEED_ABOVE = 1 << 2,
|
NEED_ABOVE = 1 << 2,
|
||||||
|
@ -63,7 +63,7 @@ static const uint8_t extend_modes[INTRA_MODES] = {
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
static const uint8_t orders_64x64[1] = { 0 };
|
static const uint8_t orders_64x64[1] = { 0 };
|
||||||
static const uint8_t orders_64x32[2] = { 0, 1 };
|
static const uint8_t orders_64x32[2] = { 0, 1 };
|
||||||
static const uint8_t orders_32x64[2] = { 0, 1 };
|
static const uint8_t orders_32x64[2] = { 0, 1 };
|
||||||
|
@ -216,18 +216,13 @@ static void vp10_init_intra_predictors_internal(void) {
|
||||||
|
|
||||||
INIT_ALL_SIZES(pred[V_PRED], v);
|
INIT_ALL_SIZES(pred[V_PRED], v);
|
||||||
INIT_ALL_SIZES(pred[H_PRED], h);
|
INIT_ALL_SIZES(pred[H_PRED], h);
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
INIT_ALL_SIZES(pred[D207_PRED], d207e);
|
INIT_ALL_SIZES(pred[D207_PRED], d207e);
|
||||||
INIT_ALL_SIZES(pred[D45_PRED], d45e);
|
INIT_ALL_SIZES(pred[D45_PRED], d45e);
|
||||||
INIT_ALL_SIZES(pred[D63_PRED], d63e);
|
INIT_ALL_SIZES(pred[D63_PRED], d63e);
|
||||||
#else
|
#else
|
||||||
INIT_ALL_SIZES(pred[D207_PRED], d207);
|
INIT_ALL_SIZES(pred[D207_PRED], d207);
|
||||||
#if CONFIG_MISC_FIXES
|
|
||||||
pred[D45_PRED][TX_4X4] = vpx_d45e_predictor_4x4;
|
|
||||||
INIT_NO_4X4(pred[D45_PRED], d45);
|
|
||||||
#else
|
|
||||||
INIT_ALL_SIZES(pred[D45_PRED], d45);
|
INIT_ALL_SIZES(pred[D45_PRED], d45);
|
||||||
#endif
|
|
||||||
INIT_ALL_SIZES(pred[D63_PRED], d63);
|
INIT_ALL_SIZES(pred[D63_PRED], d63);
|
||||||
#endif
|
#endif
|
||||||
INIT_ALL_SIZES(pred[D117_PRED], d117);
|
INIT_ALL_SIZES(pred[D117_PRED], d117);
|
||||||
|
@ -243,18 +238,13 @@ static void vp10_init_intra_predictors_internal(void) {
|
||||||
#if CONFIG_VP9_HIGHBITDEPTH
|
#if CONFIG_VP9_HIGHBITDEPTH
|
||||||
INIT_ALL_SIZES(pred_high[V_PRED], highbd_v);
|
INIT_ALL_SIZES(pred_high[V_PRED], highbd_v);
|
||||||
INIT_ALL_SIZES(pred_high[H_PRED], highbd_h);
|
INIT_ALL_SIZES(pred_high[H_PRED], highbd_h);
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
INIT_ALL_SIZES(pred_high[D207_PRED], highbd_d207e);
|
INIT_ALL_SIZES(pred_high[D207_PRED], highbd_d207e);
|
||||||
INIT_ALL_SIZES(pred_high[D45_PRED], highbd_d45e);
|
INIT_ALL_SIZES(pred_high[D45_PRED], highbd_d45e);
|
||||||
INIT_ALL_SIZES(pred_high[D63_PRED], highbd_d63);
|
INIT_ALL_SIZES(pred_high[D63_PRED], highbd_d63);
|
||||||
#else
|
#else
|
||||||
INIT_ALL_SIZES(pred_high[D207_PRED], highbd_d207);
|
INIT_ALL_SIZES(pred_high[D207_PRED], highbd_d207);
|
||||||
#if CONFIG_MISC_FIXES
|
|
||||||
pred_high[D45_PRED][TX_4X4] = vpx_highbd_d45e_predictor_4x4;
|
|
||||||
INIT_NO_4X4(pred_high[D45_PRED], highbd_d45);
|
|
||||||
#else
|
|
||||||
INIT_ALL_SIZES(pred_high[D45_PRED], highbd_d45);
|
INIT_ALL_SIZES(pred_high[D45_PRED], highbd_d45);
|
||||||
#endif
|
|
||||||
INIT_ALL_SIZES(pred_high[D63_PRED], highbd_d63);
|
INIT_ALL_SIZES(pred_high[D63_PRED], highbd_d63);
|
||||||
#endif
|
#endif
|
||||||
INIT_ALL_SIZES(pred_high[D117_PRED], highbd_d117);
|
INIT_ALL_SIZES(pred_high[D117_PRED], highbd_d117);
|
||||||
|
@ -271,7 +261,7 @@ static void vp10_init_intra_predictors_internal(void) {
|
||||||
#undef intra_pred_allsizes
|
#undef intra_pred_allsizes
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
static inline void memset16(uint16_t *dst, int val, int n) {
|
static inline void memset16(uint16_t *dst, int val, int n) {
|
||||||
while (n--)
|
while (n--)
|
||||||
*dst++ = val;
|
*dst++ = val;
|
||||||
|
@ -286,7 +276,7 @@ static void build_intra_predictors_high(const MACROBLOCKD *xd,
|
||||||
int dst_stride,
|
int dst_stride,
|
||||||
PREDICTION_MODE mode,
|
PREDICTION_MODE mode,
|
||||||
TX_SIZE tx_size,
|
TX_SIZE tx_size,
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
int n_top_px, int n_topright_px,
|
int n_top_px, int n_topright_px,
|
||||||
int n_left_px, int n_bottomleft_px,
|
int n_left_px, int n_bottomleft_px,
|
||||||
#else
|
#else
|
||||||
|
@ -299,7 +289,7 @@ static void build_intra_predictors_high(const MACROBLOCKD *xd,
|
||||||
int i;
|
int i;
|
||||||
uint16_t *dst = CONVERT_TO_SHORTPTR(dst8);
|
uint16_t *dst = CONVERT_TO_SHORTPTR(dst8);
|
||||||
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
uint16_t *ref = CONVERT_TO_SHORTPTR(ref8);
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
DECLARE_ALIGNED(16, uint16_t, left_col[32]);
|
DECLARE_ALIGNED(16, uint16_t, left_col[32]);
|
||||||
#else
|
#else
|
||||||
DECLARE_ALIGNED(16, uint16_t, left_col[64]);
|
DECLARE_ALIGNED(16, uint16_t, left_col[64]);
|
||||||
|
@ -308,7 +298,7 @@ static void build_intra_predictors_high(const MACROBLOCKD *xd,
|
||||||
uint16_t *above_row = above_data + 16;
|
uint16_t *above_row = above_data + 16;
|
||||||
const uint16_t *const_above_row = above_row;
|
const uint16_t *const_above_row = above_row;
|
||||||
const int bs = 4 << tx_size;
|
const int bs = 4 << tx_size;
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
const uint16_t *above_ref = ref - ref_stride;
|
const uint16_t *above_ref = ref - ref_stride;
|
||||||
#else
|
#else
|
||||||
int frame_width, frame_height;
|
int frame_width, frame_height;
|
||||||
|
@ -322,7 +312,7 @@ static void build_intra_predictors_high(const MACROBLOCKD *xd,
|
||||||
// 129 E F .. U V
|
// 129 E F .. U V
|
||||||
// 129 G H .. S T T T T T
|
// 129 G H .. S T T T T T
|
||||||
|
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
(void) x;
|
(void) x;
|
||||||
(void) y;
|
(void) y;
|
||||||
(void) plane;
|
(void) plane;
|
||||||
|
@ -460,7 +450,7 @@ static void build_intra_predictors_high(const MACROBLOCKD *xd,
|
||||||
|
|
||||||
// predict
|
// predict
|
||||||
if (mode == DC_PRED) {
|
if (mode == DC_PRED) {
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
dc_pred_high[n_left_px > 0][n_top_px > 0][tx_size](dst, dst_stride,
|
dc_pred_high[n_left_px > 0][n_top_px > 0][tx_size](dst, dst_stride,
|
||||||
const_above_row,
|
const_above_row,
|
||||||
left_col, xd->bd);
|
left_col, xd->bd);
|
||||||
|
@ -479,7 +469,7 @@ static void build_intra_predictors_high(const MACROBLOCKD *xd,
|
||||||
static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
||||||
int ref_stride, uint8_t *dst, int dst_stride,
|
int ref_stride, uint8_t *dst, int dst_stride,
|
||||||
PREDICTION_MODE mode, TX_SIZE tx_size,
|
PREDICTION_MODE mode, TX_SIZE tx_size,
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
int n_top_px, int n_topright_px,
|
int n_top_px, int n_topright_px,
|
||||||
int n_left_px, int n_bottomleft_px,
|
int n_left_px, int n_bottomleft_px,
|
||||||
#else
|
#else
|
||||||
|
@ -488,7 +478,7 @@ static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
||||||
#endif
|
#endif
|
||||||
int x, int y, int plane) {
|
int x, int y, int plane) {
|
||||||
int i;
|
int i;
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
DECLARE_ALIGNED(16, uint8_t, left_col[64]);
|
DECLARE_ALIGNED(16, uint8_t, left_col[64]);
|
||||||
const uint8_t *above_ref = ref - ref_stride;
|
const uint8_t *above_ref = ref - ref_stride;
|
||||||
#else
|
#else
|
||||||
|
@ -509,7 +499,7 @@ static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
||||||
// 129 G H .. S T T T T T
|
// 129 G H .. S T T T T T
|
||||||
// ..
|
// ..
|
||||||
|
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
(void) xd;
|
(void) xd;
|
||||||
(void) x;
|
(void) x;
|
||||||
(void) y;
|
(void) y;
|
||||||
|
@ -535,7 +525,7 @@ static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
||||||
|
|
||||||
// NEED_LEFT
|
// NEED_LEFT
|
||||||
if (extend_modes[mode] & NEED_LEFT) {
|
if (extend_modes[mode] & NEED_LEFT) {
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
const int need_bottom = !!(extend_modes[mode] & NEED_BOTTOMLEFT);
|
const int need_bottom = !!(extend_modes[mode] & NEED_BOTTOMLEFT);
|
||||||
i = 0;
|
i = 0;
|
||||||
if (n_left_px > 0) {
|
if (n_left_px > 0) {
|
||||||
|
@ -578,7 +568,7 @@ static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
||||||
|
|
||||||
// NEED_ABOVE
|
// NEED_ABOVE
|
||||||
if (extend_modes[mode] & NEED_ABOVE) {
|
if (extend_modes[mode] & NEED_ABOVE) {
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
const int need_right = !!(extend_modes[mode] & NEED_ABOVERIGHT);
|
const int need_right = !!(extend_modes[mode] & NEED_ABOVERIGHT);
|
||||||
if (n_top_px > 0) {
|
if (n_top_px > 0) {
|
||||||
memcpy(above_row, above_ref, n_top_px);
|
memcpy(above_row, above_ref, n_top_px);
|
||||||
|
@ -621,7 +611,7 @@ static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
if (extend_modes[mode] & NEED_ABOVELEFT) {
|
if (extend_modes[mode] & NEED_ABOVELEFT) {
|
||||||
above_row[-1] = n_top_px > 0 ? (n_left_px > 0 ? above_ref[-1] : 129) : 127;
|
above_row[-1] = n_top_px > 0 ? (n_left_px > 0 ? above_ref[-1] : 129) : 127;
|
||||||
}
|
}
|
||||||
|
@ -675,7 +665,7 @@ static void build_intra_predictors(const MACROBLOCKD *xd, const uint8_t *ref,
|
||||||
|
|
||||||
// predict
|
// predict
|
||||||
if (mode == DC_PRED) {
|
if (mode == DC_PRED) {
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
dc_pred[n_left_px > 0][n_top_px > 0][tx_size](dst, dst_stride,
|
dc_pred[n_left_px > 0][n_top_px > 0][tx_size](dst, dst_stride,
|
||||||
const_above_row, left_col);
|
const_above_row, left_col);
|
||||||
#else
|
#else
|
||||||
|
@ -695,13 +685,13 @@ void vp10_predict_intra_block(const MACROBLOCKD *xd, int bwl_in, int bhl_in,
|
||||||
const int txw = (1 << tx_size);
|
const int txw = (1 << tx_size);
|
||||||
const int have_top = loff || xd->up_available;
|
const int have_top = loff || xd->up_available;
|
||||||
const int have_left = aoff || xd->left_available;
|
const int have_left = aoff || xd->left_available;
|
||||||
#if !CONFIG_EXT_IPRED_BLTR
|
#if !CONFIG_MISC_FIXES
|
||||||
const int bw = (1 << bwl_in);
|
const int bw = (1 << bwl_in);
|
||||||
const int have_right = (aoff + txw) < bw;
|
const int have_right = (aoff + txw) < bw;
|
||||||
#endif
|
#endif
|
||||||
const int x = aoff * 4;
|
const int x = aoff * 4;
|
||||||
const int y = loff * 4;
|
const int y = loff * 4;
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
const int bw = VPXMAX(2, 1 << bwl_in);
|
const int bw = VPXMAX(2, 1 << bwl_in);
|
||||||
const int bh = VPXMAX(2, 1 << bhl_in);
|
const int bh = VPXMAX(2, 1 << bhl_in);
|
||||||
const int mi_row = -xd->mb_to_top_edge >> 6;
|
const int mi_row = -xd->mb_to_top_edge >> 6;
|
||||||
|
|
|
@ -832,7 +832,7 @@ static INLINE void highbd_dc_predictor(uint16_t *dst, ptrdiff_t stride,
|
||||||
intra_pred_no_4x4(d207)
|
intra_pred_no_4x4(d207)
|
||||||
intra_pred_no_4x4(d63)
|
intra_pred_no_4x4(d63)
|
||||||
intra_pred_no_4x4(d45)
|
intra_pred_no_4x4(d45)
|
||||||
#if CONFIG_EXT_IPRED_BLTR
|
#if CONFIG_MISC_FIXES
|
||||||
intra_pred_allsizes(d207e)
|
intra_pred_allsizes(d207e)
|
||||||
intra_pred_allsizes(d63e)
|
intra_pred_allsizes(d63e)
|
||||||
intra_pred_no_4x4(d45e)
|
intra_pred_no_4x4(d45e)
|
||||||
|
@ -847,7 +847,4 @@ intra_pred_allsizes(dc_128)
|
||||||
intra_pred_allsizes(dc_left)
|
intra_pred_allsizes(dc_left)
|
||||||
intra_pred_allsizes(dc_top)
|
intra_pred_allsizes(dc_top)
|
||||||
intra_pred_allsizes(dc)
|
intra_pred_allsizes(dc)
|
||||||
#if CONFIG_VP9_HIGHBITDEPTH && CONFIG_MISC_FIXES && !CONFIG_EXT_IPRED_BLTR
|
|
||||||
intra_pred_highbd_sized(d45e, 4)
|
|
||||||
#endif
|
|
||||||
#undef intra_pred_allsizes
|
#undef intra_pred_allsizes
|
||||||
|
|
Загрузка…
Ссылка в новой задаче