|  | /* | 
|  | * Copyright (c) 2025, Alliance for Open Media. All rights reserved | 
|  | * | 
|  | * This source code is subject to the terms of the BSD 3-Clause Clear License | 
|  | * and the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear | 
|  | * License was not distributed with this source code in the LICENSE file, you | 
|  | * can obtain it at aomedia.org/license/software-license/bsd-3-c-c/.  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 | 
|  | * aomedia.org/license/patent-license/. | 
|  | */ | 
|  |  | 
|  | #ifndef AOM_AV1_COMMON_GDF_BLOCK_H | 
|  | #define AOM_AV1_COMMON_GDF_BLOCK_H | 
|  | #include "av1/common/odintrin.h" | 
|  | #include "av1/common/gdf.h" | 
|  |  | 
|  | #if CONFIG_GDF | 
|  | #define GDF_OPTS_INP_TOT (GDF_NET_INP_REC_NUM + GDF_NET_INP_GRD_NUM) | 
|  |  | 
|  | #define GDF_BLOCK_PADDED ((GDF_OPTS_INP_TOT + 2) * 4 + GDF_TEST_BLK_SIZE * 2) | 
|  |  | 
|  | #define GDF_TRAIN_GRD_SHIFT 4 | 
|  |  | 
|  | #define GDF_TRAIN_INP_PREC 0 | 
|  | #define GDF_TRAIN_REFDST_NUM 5 | 
|  | #define GDF_TRAIN_QP_NUM 6 | 
|  | #define GDF_TRAIN_CLS_NUM 4 | 
|  |  | 
|  | #define GDF_TRAIN_PAR_SCALE_LOG2 6 | 
|  | #define GDF_NET_INP_REC_NUM 18 | 
|  | #define GDF_NET_INP_GRD_NUM 4 | 
|  | #define GDF_NET_LUT_IDX_NUM 3 | 
|  | #define GDF_NET_LUT_IDX_INTRA_MAX 16 | 
|  | #define GDF_NET_LUT_IDX_INTER_MAX 10 | 
|  |  | 
|  | #define GDF_TEST_VIRTUAL_BOUNDARY 1 | 
|  | #if GDF_TEST_VIRTUAL_BOUNDARY | 
|  | #define GDF_TEST_LINE_BUFFER 0 | 
|  | #endif | 
|  |  | 
|  | extern const int gdf_guided_sample_coordinates_fwd[GDF_NET_INP_REC_NUM][2]; | 
|  | extern const int gdf_guided_sample_coordinates_bwd[GDF_NET_INP_REC_NUM][2]; | 
|  | extern const int | 
|  | gdf_guided_sample_vertical_masks[GDF_NET_INP_REC_NUM + GDF_NET_INP_GRD_NUM]; | 
|  | extern const int gdf_guided_sample_horizontal_masks[GDF_NET_INP_REC_NUM + | 
|  | GDF_NET_INP_GRD_NUM]; | 
|  | extern const int | 
|  | gdf_guided_sample_mixed_masks[GDF_NET_INP_REC_NUM + GDF_NET_INP_GRD_NUM]; | 
|  | extern const int16_t | 
|  | gdf_intra_alpha_table[GDF_TRAIN_QP_NUM] | 
|  | [GDF_TRAIN_CLS_NUM * | 
|  | (GDF_NET_INP_REC_NUM + GDF_NET_INP_GRD_NUM)]; | 
|  | extern const int16_t | 
|  | gdf_inter_alpha_table[GDF_TRAIN_REFDST_NUM][GDF_TRAIN_QP_NUM] | 
|  | [GDF_TRAIN_CLS_NUM * | 
|  | (GDF_NET_INP_REC_NUM + GDF_NET_INP_GRD_NUM)]; | 
|  | extern const int16_t | 
|  | gdf_intra_weight_table[GDF_TRAIN_QP_NUM] | 
|  | [GDF_TRAIN_CLS_NUM * | 
|  | (GDF_NET_INP_REC_NUM + GDF_NET_INP_GRD_NUM) * | 
|  | GDF_NET_LUT_IDX_NUM]; | 
|  | extern const int16_t | 
|  | gdf_inter_weight_table[GDF_TRAIN_REFDST_NUM][GDF_TRAIN_QP_NUM] | 
|  | [GDF_TRAIN_CLS_NUM * | 
|  | (GDF_NET_INP_REC_NUM + GDF_NET_INP_GRD_NUM) * | 
|  | GDF_NET_LUT_IDX_NUM]; | 
|  | extern const int32_t | 
|  | gdf_intra_bias_table[GDF_TRAIN_QP_NUM] | 
|  | [GDF_TRAIN_CLS_NUM * GDF_NET_LUT_IDX_NUM]; | 
|  | extern const int32_t | 
|  | gdf_inter_bias_table[GDF_TRAIN_REFDST_NUM][GDF_TRAIN_QP_NUM] | 
|  | [GDF_TRAIN_CLS_NUM * GDF_NET_LUT_IDX_NUM]; | 
|  | extern const int8_t gdf_intra_error_table | 
|  | [GDF_TRAIN_QP_NUM][GDF_NET_LUT_IDX_INTRA_MAX * GDF_NET_LUT_IDX_INTRA_MAX * | 
|  | GDF_NET_LUT_IDX_INTRA_MAX * GDF_TRAIN_CLS_NUM]; | 
|  | extern const int8_t | 
|  | gdf_inter_error_table[GDF_TRAIN_REFDST_NUM][GDF_TRAIN_QP_NUM] | 
|  | [GDF_NET_LUT_IDX_INTER_MAX * | 
|  | GDF_NET_LUT_IDX_INTER_MAX * | 
|  | GDF_NET_LUT_IDX_INTER_MAX * GDF_TRAIN_CLS_NUM]; | 
|  |  | 
|  | #endif  // CONFIG_GDF | 
|  | #endif  // AOM_AV1_COMMON_GDF_BLOCK_H |