1 /* 2 * Copyright(c) 2019 Intel Corporation 3 * 4 * This source code is subject to the terms of the BSD 2 Clause License and 5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6 * was not distributed with this source code in the LICENSE file, you can 7 * obtain it at https://www.aomedia.org/license/software-license. If the Alliance for Open 8 * Media Patent License 1.0 was not distributed with this source code in the 9 * PATENTS file, you can obtain it at https://www.aomedia.org/license/patent-license. 10 */ 11 12 #ifndef EbEncIntraPrediction_h 13 #define EbEncIntraPrediction_h 14 15 #include "EbMotionEstimationProcess.h" 16 #include "EbModeDecision.h" 17 #include "EbIntraPrediction.h" 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 struct ModeDecisionCandidateBuffer; 24 struct ModeDecisionCandidate; 25 26 /////////..............................................////////////////////////// 27 28 extern EbErrorType svt_av1_intra_prediction_cl(uint8_t hbd_mode_decision, 29 struct ModeDecisionContext * context_ptr, 30 PictureControlSet * pcs_ptr, 31 ModeDecisionCandidateBuffer *candidate_buffer_ptr); 32 33 extern EbErrorType update_neighbor_samples_array_open_loop_mb( 34 uint8_t use_top_righ_bottom_left, 35 uint8_t update_top_neighbor, 36 uint8_t *above_ref, uint8_t *left_ref, 37 EbPictureBufferDesc *input_ptr, 38 uint32_t stride, uint32_t srcOriginX, 39 uint32_t srcOriginY, uint8_t bwidth, 40 uint8_t bheight); 41 extern EbErrorType update_neighbor_samples_array_open_loop_mb_recon( 42 uint8_t use_top_righ_bottom_left, 43 uint8_t update_top_neighbor, 44 uint8_t *above_ref, uint8_t *left_ref, uint8_t *recon_ptr, uint32_t stride, 45 uint32_t src_origin_x, uint32_t src_origin_y, uint8_t bwidth, uint8_t bheight, uint32_t width, 46 uint32_t height); 47 48 void svt_av1_predict_intra_block( 49 STAGE stage, const BlockGeom *blk_geom, MacroBlockD *xd, int32_t wpx, 50 int32_t hpx, TxSize tx_size, PredictionMode mode, int32_t angle_delta, int32_t use_palette, 51 PaletteInfo *palette_info, FilterIntraMode filter_intra_mode, uint8_t *top_neigh_array, 52 uint8_t *left_neigh_array, EbPictureBufferDesc *recon_buffer, int32_t col_off, int32_t row_off, 53 int32_t plane, BlockSize bsize, uint32_t txb_org_x_pict, uint32_t txb_org_y_pict, 54 uint32_t bl_org_x_pict, uint32_t bl_org_y_pict, uint32_t bl_org_x_mb, uint32_t bl_org_y_mb, 55 SeqHeader *seq_header_ptr); 56 void svt_av1_predict_intra_block_16bit( 57 EbBitDepthEnum bit_depth, STAGE stage, const BlockGeom *blk_geom, 58 MacroBlockD *xd, int32_t wpx, int32_t hpx, TxSize tx_size, PredictionMode mode, 59 int32_t angle_delta, int32_t use_palette, PaletteInfo *palette_info, 60 FilterIntraMode filter_intra_mode, uint16_t *top_neigh_array, uint16_t *left_neigh_array, 61 EbPictureBufferDesc *recon_buffer, int32_t col_off, int32_t row_off, int32_t plane, 62 BlockSize bsize, uint32_t txb_org_x_pict, uint32_t txb_org_y_pict, uint32_t bl_org_x_pict, 63 uint32_t bl_org_y_pict, uint32_t bl_org_x_mb, uint32_t bl_org_y_mb, 64 SeqHeader *seq_header_ptr); 65 66 #ifdef __cplusplus 67 } 68 #endif 69 #endif // EbEncIntraPrediction_h 70