Source/Lib/Encoder/Codec/EbProductCodingLoop.c
EbErrorType av1_intra_luma_prediction(ModeDecisionContext *        md_context_ptr,
                                      PictureControlSet *          pcs_ptr,
                                      ModeDecisionCandidateBuffer *candidate_buffer_ptr) {
    EbErrorType return_error = EB_ErrorNone;

    uint16_t txb_origin_x =
        md_context_ptr->blk_origin_x +
        md_context_ptr->blk_geom->tx_boff_x[md_context_ptr->tx_depth][md_context_ptr->txb_itr];
    uint16_t txb_origin_y =
        md_context_ptr->blk_origin_y +
        md_context_ptr->blk_geom->tx_boff_y[md_context_ptr->tx_depth][md_context_ptr->txb_itr];

    uint8_t tx_width =
        md_context_ptr->blk_geom->tx_width[md_context_ptr->tx_depth][md_context_ptr->txb_itr];
    uint8_t tx_height =
        md_context_ptr->blk_geom->tx_height[md_context_ptr->tx_depth][md_context_ptr->txb_itr];

    uint32_t mode_type_left_neighbor_index =
        get_neighbor_array_unit_left_index(md_context_ptr->mode_type_neighbor_array, txb_origin_y);
    uint32_t mode_type_top_neighbor_index =
        get_neighbor_array_unit_top_index(md_context_ptr->mode_type_neighbor_array, txb_origin_x);
    uint32_t intra_luma_mode_left_neighbor_index = get_neighbor_array_unit_left_index(
        md_context_ptr->intra_luma_mode_neighbor_array, txb_origin_y);
    uint32_t intra_luma_mode_top_neighbor_index = get_neighbor_array_unit_top_index(
        md_context_ptr->intra_luma_mode_neighbor_array, txb_origin_x);

    md_context_ptr->intra_luma_left_mode = (uint32_t)(
        (md_context_ptr->mode_type_neighbor_array->left_array[mode_type_left_neighbor_index] !=
         INTRA_MODE)
            ? DC_PRED /*EB_INTRA_DC*/
            : (uint32_t)md_context_ptr->intra_luma_mode_neighbor_array
                  ->left_array[intra_luma_mode_left_neighbor_index]);

    md_context_ptr->intra_luma_top_mode = (uint32_t)(
        (md_context_ptr->mode_type_neighbor_array->top_array[mode_type_top_neighbor_index] !=
         INTRA_MODE)
            ? DC_PRED /*EB_INTRA_DC*/
            : (uint32_t)md_context_ptr->intra_luma_mode_neighbor_array->top_array
                  [intra_luma_mode_top_neighbor_index]); //   use DC. This seems like we could use a SB-width

    TxSize tx_size =
        md_context_ptr->blk_geom->txsize[md_context_ptr->tx_depth][md_context_ptr->txb_itr];

    PredictionMode mode;
    if (!md_context_ptr->hbd_mode_decision) {
        uint8_t top_neigh_array[64 * 2 + 1];
        uint8_t left_neigh_array[64 * 2 + 1];

        if (txb_origin_y != 0)
            memcpy(top_neigh_array + 1,
                   md_context_ptr->tx_search_luma_recon_neighbor_array->top_array + txb_origin_x,
                   tx_width * 2);
        if (txb_origin_x != 0)
            memcpy(left_neigh_array + 1,
                   md_context_ptr->tx_search_luma_recon_neighbor_array->left_array + txb_origin_y,
                   tx_height * 2);
        if (txb_origin_y != 0 && txb_origin_x != 0)
            top_neigh_array[0] = left_neigh_array[0] =
                md_context_ptr->tx_search_luma_recon_neighbor_array
                    ->top_left_array[MAX_PICTURE_HEIGHT_SIZE + txb_origin_x - txb_origin_y];

        mode = candidate_buffer_ptr->candidate_ptr->pred_mode;
        eb_av1_predict_intra_block(
            &md_context_ptr->sb_ptr->tile_info,
            !ED_STAGE,
            md_context_ptr->blk_geom,
            pcs_ptr->parent_pcs_ptr->av1_cm, //const Av1Common *cm,
            md_context_ptr->blk_geom->bwidth,
            md_context_ptr->blk_geom->bheight,
            tx_size,
            mode, //PredictionMode mode,
            candidate_buffer_ptr->candidate_ptr->angle_delta[PLANE_TYPE_Y],
            candidate_buffer_ptr->candidate_ptr->palette_info.pmi.palette_size[0] > 0,
            &candidate_buffer_ptr->candidate_ptr->palette_info, //ATB MD
            candidate_buffer_ptr->candidate_ptr->filter_intra_mode,
            top_neigh_array + 1,
            left_neigh_array + 1,
            candidate_buffer_ptr->prediction_ptr, //uint8_t *dst,
            md_context_ptr->blk_geom
                    ->tx_boff_x[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2, //int32_t col_off,
            md_context_ptr->blk_geom
                    ->tx_boff_y[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2, //int32_t row_off,
            PLANE_TYPE_Y, //int32_t plane,
            md_context_ptr->blk_geom->bsize,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_geom
                ->tx_org_x[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr], //uint32_t cuOrgX used only for prediction Ptr
            md_context_ptr->blk_geom
                ->tx_org_y[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr] //uint32_t cuOrgY used only for prediction Ptr
        );
    } else {
        uint16_t top_neigh_array[64 * 2 + 1];
        uint16_t left_neigh_array[64 * 2 + 1];

        if (txb_origin_y != 0)
            memcpy(
                top_neigh_array + 1,
                (uint16_t *)(md_context_ptr->tx_search_luma_recon_neighbor_array16bit->top_array) +
                    txb_origin_x,
                sizeof(uint16_t) * tx_width * 2);
        if (txb_origin_x != 0)
            memcpy(
                left_neigh_array + 1,
                (uint16_t *)(md_context_ptr->tx_search_luma_recon_neighbor_array16bit->left_array) +
                    txb_origin_y,
                sizeof(uint16_t) * tx_height * 2);
        if (txb_origin_y != 0 && txb_origin_x != 0)
            top_neigh_array[0] = left_neigh_array[0] =
                ((uint16_t *)(md_context_ptr->tx_search_luma_recon_neighbor_array16bit
                                  ->top_left_array) +
                 MAX_PICTURE_HEIGHT_SIZE + txb_origin_x - txb_origin_y)[0];

        mode = candidate_buffer_ptr->candidate_ptr->pred_mode;
        eb_av1_predict_intra_block_16bit(
            &md_context_ptr->sb_ptr->tile_info,
            !ED_STAGE,
            md_context_ptr->blk_geom,
            pcs_ptr->parent_pcs_ptr->av1_cm,
            md_context_ptr->blk_geom->bwidth,
            md_context_ptr->blk_geom->bheight,
            tx_size,
            mode,
            candidate_buffer_ptr->candidate_ptr->angle_delta[PLANE_TYPE_Y],
            candidate_buffer_ptr->candidate_ptr->palette_info.pmi.palette_size[0] > 0,
            &candidate_buffer_ptr->candidate_ptr->palette_info, //ATB MD
            candidate_buffer_ptr->candidate_ptr->filter_intra_mode,
            top_neigh_array + 1,
            left_neigh_array + 1,
            candidate_buffer_ptr->prediction_ptr,
            md_context_ptr->blk_geom
                    ->tx_boff_x[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2,
            md_context_ptr->blk_geom
                    ->tx_boff_y[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2, //int32_t row_off,
            PLANE_TYPE_Y,
            md_context_ptr->blk_geom->bsize,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_geom
                ->tx_org_x[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr], //uint32_t cuOrgX used only for prediction Ptr
            md_context_ptr->blk_geom
                ->tx_org_y[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr] //uint32_t cuOrgY used only for prediction Ptr
        );
    }

    return return_error;
}
// double check the usage of tx_search_luma_recon_neighbor_array16bit
double check the usage of tx_search_luma_recon_neighbor_array16bit
double check the usage of tx_search_luma_recon_neighbor_array16bit
EbErrorType av1_intra_luma_prediction(ModeDecisionContext *        md_context_ptr,
                                      PictureControlSet *          pcs_ptr,
                                      ModeDecisionCandidateBuffer *candidate_buffer_ptr) {
    EbErrorType return_error = EB_ErrorNone;
    uint16_t txb_origin_x =
        md_context_ptr->blk_origin_x +
        md_context_ptr->blk_geom->tx_boff_x[md_context_ptr->tx_depth][md_context_ptr->txb_itr];
    uint16_t txb_origin_y =
        md_context_ptr->blk_origin_y +
        md_context_ptr->blk_geom->tx_boff_y[md_context_ptr->tx_depth][md_context_ptr->txb_itr];
    uint8_t tx_width =
        md_context_ptr->blk_geom->tx_width[md_context_ptr->tx_depth][md_context_ptr->txb_itr];
    uint8_t tx_height =
        md_context_ptr->blk_geom->tx_height[md_context_ptr->tx_depth][md_context_ptr->txb_itr];
    uint32_t mode_type_left_neighbor_index =
        get_neighbor_array_unit_left_index(md_context_ptr->mode_type_neighbor_array, txb_origin_y);
    uint32_t mode_type_top_neighbor_index =
        get_neighbor_array_unit_top_index(md_context_ptr->mode_type_neighbor_array, txb_origin_x);
    uint32_t intra_luma_mode_left_neighbor_index = get_neighbor_array_unit_left_index(
        md_context_ptr->intra_luma_mode_neighbor_array, txb_origin_y);
    uint32_t intra_luma_mode_top_neighbor_index = get_neighbor_array_unit_top_index(
        md_context_ptr->intra_luma_mode_neighbor_array, txb_origin_x);
    md_context_ptr->intra_luma_left_mode = (uint32_t)(
        (md_context_ptr->mode_type_neighbor_array->left_array[mode_type_left_neighbor_index] !=
         INTRA_MODE)
            ? DC_PRED 
            : (uint32_t)md_context_ptr->intra_luma_mode_neighbor_array
                  ->left_array[intra_luma_mode_left_neighbor_index]);
    md_context_ptr->intra_luma_top_mode = (uint32_t)(
        (md_context_ptr->mode_type_neighbor_array->top_array[mode_type_top_neighbor_index] !=
         INTRA_MODE)
            ? DC_PRED 
            : (uint32_t)md_context_ptr->intra_luma_mode_neighbor_array->top_array
                  [intra_luma_mode_top_neighbor_index]); 
    TxSize tx_size =
        md_context_ptr->blk_geom->txsize[md_context_ptr->tx_depth][md_context_ptr->txb_itr];
    PredictionMode mode;
    if (!md_context_ptr->hbd_mode_decision) {
        uint8_t top_neigh_array[64 * 2 + 1];
        uint8_t left_neigh_array[64 * 2 + 1];
        if (txb_origin_y != 0)
            memcpy(top_neigh_array + 1,
                   md_context_ptr->tx_search_luma_recon_neighbor_array->top_array + txb_origin_x,
                   tx_width * 2);
        if (txb_origin_x != 0)
            memcpy(left_neigh_array + 1,
                   md_context_ptr->tx_search_luma_recon_neighbor_array->left_array + txb_origin_y,
                   tx_height * 2);
        if (txb_origin_y != 0 && txb_origin_x != 0)
            top_neigh_array[0] = left_neigh_array[0] =
                md_context_ptr->tx_search_luma_recon_neighbor_array
                    ->top_left_array[MAX_PICTURE_HEIGHT_SIZE + txb_origin_x - txb_origin_y];
        mode = candidate_buffer_ptr->candidate_ptr->pred_mode;
        eb_av1_predict_intra_block(
            &md_context_ptr->sb_ptr->tile_info,
            !ED_STAGE,
            md_context_ptr->blk_geom,
            pcs_ptr->parent_pcs_ptr->av1_cm, 
            md_context_ptr->blk_geom->bwidth,
            md_context_ptr->blk_geom->bheight,
            tx_size,
            mode, 
            candidate_buffer_ptr->candidate_ptr->angle_delta[PLANE_TYPE_Y],
            candidate_buffer_ptr->candidate_ptr->palette_info.pmi.palette_size[0] > 0,
            &candidate_buffer_ptr->candidate_ptr->palette_info, 
            candidate_buffer_ptr->candidate_ptr->filter_intra_mode,
            top_neigh_array + 1,
            left_neigh_array + 1,
            candidate_buffer_ptr->prediction_ptr, 
            md_context_ptr->blk_geom
                    ->tx_boff_x[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2, 
            md_context_ptr->blk_geom
                    ->tx_boff_y[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2, 
            PLANE_TYPE_Y, 
            md_context_ptr->blk_geom->bsize,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_geom
                ->tx_org_x[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr], 
            md_context_ptr->blk_geom
                ->tx_org_y[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr] 
        );
    } else {
        uint16_t top_neigh_array[64 * 2 + 1];
        uint16_t left_neigh_array[64 * 2 + 1];
        if (txb_origin_y != 0)
            memcpy(
                top_neigh_array + 1,
                (uint16_t *)(md_context_ptr->tx_search_luma_recon_neighbor_array16bit->top_array) +
                    txb_origin_x,
                sizeof(uint16_t) * tx_width * 2);
        if (txb_origin_x != 0)
            memcpy(
                left_neigh_array + 1,
                (uint16_t *)(md_context_ptr->tx_search_luma_recon_neighbor_array16bit->left_array) +
                    txb_origin_y,
                sizeof(uint16_t) * tx_height * 2);
        if (txb_origin_y != 0 && txb_origin_x != 0)
            top_neigh_array[0] = left_neigh_array[0] =
                ((uint16_t *)(md_context_ptr->tx_search_luma_recon_neighbor_array16bit
                                  ->top_left_array) +
                 MAX_PICTURE_HEIGHT_SIZE + txb_origin_x - txb_origin_y)[0];
        mode = candidate_buffer_ptr->candidate_ptr->pred_mode;
        eb_av1_predict_intra_block_16bit(
            &md_context_ptr->sb_ptr->tile_info,
            !ED_STAGE,
            md_context_ptr->blk_geom,
            pcs_ptr->parent_pcs_ptr->av1_cm,
            md_context_ptr->blk_geom->bwidth,
            md_context_ptr->blk_geom->bheight,
            tx_size,
            mode,
            candidate_buffer_ptr->candidate_ptr->angle_delta[PLANE_TYPE_Y],
            candidate_buffer_ptr->candidate_ptr->palette_info.pmi.palette_size[0] > 0,
            &candidate_buffer_ptr->candidate_ptr->palette_info, 
            candidate_buffer_ptr->candidate_ptr->filter_intra_mode,
            top_neigh_array + 1,
            left_neigh_array + 1,
            candidate_buffer_ptr->prediction_ptr,
            md_context_ptr->blk_geom
                    ->tx_boff_x[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2,
            md_context_ptr->blk_geom
                    ->tx_boff_y[md_context_ptr->tx_depth][md_context_ptr->txb_itr] >>
                2, 
            PLANE_TYPE_Y,
            md_context_ptr->blk_geom->bsize,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_origin_x,
            md_context_ptr->blk_origin_y,
            md_context_ptr->blk_geom
                ->tx_org_x[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr], 
            md_context_ptr->blk_geom
                ->tx_org_y[md_context_ptr->tx_depth]
                          [md_context_ptr->txb_itr] 
        );
    }
    return return_error;
}
EbErrorType av1_intra_luma_prediction ( ModeDecisionContext * md_context_ptr , PictureControlSet * pcs_ptr , ModeDecisionCandidateBuffer * candidate_buffer_ptr ) { EbErrorType return_error = EB_ErrorNone ; uint16_t txb_origin_x = md_context_ptr -> blk_origin_x + md_context_ptr -> blk_geom -> tx_boff_x [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] ; uint16_t txb_origin_y = md_context_ptr -> blk_origin_y + md_context_ptr -> blk_geom -> tx_boff_y [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] ; uint8_t tx_width = md_context_ptr -> blk_geom -> tx_width [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] ; uint8_t tx_height = md_context_ptr -> blk_geom -> tx_height [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] ; uint32_t mode_type_left_neighbor_index = get_neighbor_array_unit_left_index ( md_context_ptr -> mode_type_neighbor_array , txb_origin_y ) ; uint32_t mode_type_top_neighbor_index = get_neighbor_array_unit_top_index ( md_context_ptr -> mode_type_neighbor_array , txb_origin_x ) ; uint32_t intra_luma_mode_left_neighbor_index = get_neighbor_array_unit_left_index ( md_context_ptr -> intra_luma_mode_neighbor_array , txb_origin_y ) ; uint32_t intra_luma_mode_top_neighbor_index = get_neighbor_array_unit_top_index ( md_context_ptr -> intra_luma_mode_neighbor_array , txb_origin_x ) ; md_context_ptr -> intra_luma_left_mode = ( uint32_t ) ( ( md_context_ptr -> mode_type_neighbor_array -> left_array [ mode_type_left_neighbor_index ] != INTRA_MODE ) ? DC_PRED : ( uint32_t ) md_context_ptr -> intra_luma_mode_neighbor_array -> left_array [ intra_luma_mode_left_neighbor_index ] ) ; md_context_ptr -> intra_luma_top_mode = ( uint32_t ) ( ( md_context_ptr -> mode_type_neighbor_array -> top_array [ mode_type_top_neighbor_index ] != INTRA_MODE ) ? DC_PRED : ( uint32_t ) md_context_ptr -> intra_luma_mode_neighbor_array -> top_array [ intra_luma_mode_top_neighbor_index ] ) ; TxSize tx_size = md_context_ptr -> blk_geom -> txsize [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] ; PredictionMode mode ; if ( ! md_context_ptr -> hbd_mode_decision ) { uint8_t top_neigh_array [ 64 * 2 + 1 ] ; uint8_t left_neigh_array [ 64 * 2 + 1 ] ; if ( txb_origin_y != 0 ) memcpy ( top_neigh_array + 1 , md_context_ptr -> tx_search_luma_recon_neighbor_array -> top_array + txb_origin_x , tx_width * 2 ) ; if ( txb_origin_x != 0 ) memcpy ( left_neigh_array + 1 , md_context_ptr -> tx_search_luma_recon_neighbor_array -> left_array + txb_origin_y , tx_height * 2 ) ; if ( txb_origin_y != 0 && txb_origin_x != 0 ) top_neigh_array [ 0 ] = left_neigh_array [ 0 ] = md_context_ptr -> tx_search_luma_recon_neighbor_array -> top_left_array [ MAX_PICTURE_HEIGHT_SIZE + txb_origin_x - txb_origin_y ] ; mode = candidate_buffer_ptr -> candidate_ptr -> pred_mode ; eb_av1_predict_intra_block ( & md_context_ptr -> sb_ptr -> tile_info , ! ED_STAGE , md_context_ptr -> blk_geom , pcs_ptr -> parent_pcs_ptr -> av1_cm , md_context_ptr -> blk_geom -> bwidth , md_context_ptr -> blk_geom -> bheight , tx_size , mode , candidate_buffer_ptr -> candidate_ptr -> angle_delta [ PLANE_TYPE_Y ] , candidate_buffer_ptr -> candidate_ptr -> palette_info . pmi . palette_size [ 0 ] > 0 , & candidate_buffer_ptr -> candidate_ptr -> palette_info , candidate_buffer_ptr -> candidate_ptr -> filter_intra_mode , top_neigh_array + 1 , left_neigh_array + 1 , candidate_buffer_ptr -> prediction_ptr , md_context_ptr -> blk_geom -> tx_boff_x [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] >> 2 , md_context_ptr -> blk_geom -> tx_boff_y [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] >> 2 , PLANE_TYPE_Y , md_context_ptr -> blk_geom -> bsize , md_context_ptr -> blk_origin_x , md_context_ptr -> blk_origin_y , md_context_ptr -> blk_origin_x , md_context_ptr -> blk_origin_y , md_context_ptr -> blk_geom -> tx_org_x [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] , md_context_ptr -> blk_geom -> tx_org_y [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] ) ; } else { uint16_t top_neigh_array [ 64 * 2 + 1 ] ; uint16_t left_neigh_array [ 64 * 2 + 1 ] ; if ( txb_origin_y != 0 ) memcpy ( top_neigh_array + 1 , ( uint16_t * ) ( md_context_ptr -> tx_search_luma_recon_neighbor_array16bit -> top_array ) + txb_origin_x , sizeof ( uint16_t ) * tx_width * 2 ) ; if ( txb_origin_x != 0 ) memcpy ( left_neigh_array + 1 , ( uint16_t * ) ( md_context_ptr -> tx_search_luma_recon_neighbor_array16bit -> left_array ) + txb_origin_y , sizeof ( uint16_t ) * tx_height * 2 ) ; if ( txb_origin_y != 0 && txb_origin_x != 0 ) top_neigh_array [ 0 ] = left_neigh_array [ 0 ] = ( ( uint16_t * ) ( md_context_ptr -> tx_search_luma_recon_neighbor_array16bit -> top_left_array ) + MAX_PICTURE_HEIGHT_SIZE + txb_origin_x - txb_origin_y ) [ 0 ] ; mode = candidate_buffer_ptr -> candidate_ptr -> pred_mode ; eb_av1_predict_intra_block_16bit ( & md_context_ptr -> sb_ptr -> tile_info , ! ED_STAGE , md_context_ptr -> blk_geom , pcs_ptr -> parent_pcs_ptr -> av1_cm , md_context_ptr -> blk_geom -> bwidth , md_context_ptr -> blk_geom -> bheight , tx_size , mode , candidate_buffer_ptr -> candidate_ptr -> angle_delta [ PLANE_TYPE_Y ] , candidate_buffer_ptr -> candidate_ptr -> palette_info . pmi . palette_size [ 0 ] > 0 , & candidate_buffer_ptr -> candidate_ptr -> palette_info , candidate_buffer_ptr -> candidate_ptr -> filter_intra_mode , top_neigh_array + 1 , left_neigh_array + 1 , candidate_buffer_ptr -> prediction_ptr , md_context_ptr -> blk_geom -> tx_boff_x [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] >> 2 , md_context_ptr -> blk_geom -> tx_boff_y [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] >> 2 , PLANE_TYPE_Y , md_context_ptr -> blk_geom -> bsize , md_context_ptr -> blk_origin_x , md_context_ptr -> blk_origin_y , md_context_ptr -> blk_origin_x , md_context_ptr -> blk_origin_y , md_context_ptr -> blk_geom -> tx_org_x [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] , md_context_ptr -> blk_geom -> tx_org_y [ md_context_ptr -> tx_depth ] [ md_context_ptr -> txb_itr ] ) ; } return return_error ; }
double check the usage of tx_search_luma_recon_neighbor_array16bit
double check the usage of tx_search_luma_recon_neighbor_array16bit
/*EB_INTRA_DC*/ /*EB_INTRA_DC*/ //   use DC. This seems like we could use a SB-width //const Av1Common *cm, //PredictionMode mode, //ATB MD //uint8_t *dst, //int32_t col_off, //int32_t row_off, //int32_t plane, //uint32_t cuOrgX used only for prediction Ptr //uint32_t cuOrgY used only for prediction Ptr //ATB MD //int32_t row_off, //uint32_t cuOrgX used only for prediction Ptr //uint32_t cuOrgY used only for prediction Ptr