1 /* 2 * Copyright(c) 2018 Intel Corporation 3 * SPDX - License - Identifier: BSD - 2 - Clause - Patent 4 */ 5 6 #ifndef EbReferenceObject_h 7 #define EbReferenceObject_h 8 9 #include "EbDefinitions.h" 10 #include "EbAdaptiveMotionVectorPrediction.h" 11 #include "EbObject.h" 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 typedef struct EbReferenceObject_s { 17 EbDctor dctor; 18 EbPictureBufferDesc_t *referencePicture; 19 EbPictureBufferDesc_t *referencePicture16bit; 20 EbPictureBufferDesc_t *refDenSrcPicture; 21 22 TmvpUnit_t *tmvpMap; 23 EB_BOOL tmvpEnableFlag; 24 EB_U64 refPOC; 25 26 EB_U8 qp; 27 EB_PICTURE sliceType; 28 29 EB_U8 intraCodedArea;//percentage of intra coded area 0-100% 30 31 EB_U8 intraCodedAreaLCU[MAX_NUMBER_OF_TREEBLOCKS_PER_PICTURE];//percentage of intra coded area 0-100% 32 EB_U32 nonMovingIndexArray[MAX_NUMBER_OF_TREEBLOCKS_PER_PICTURE];//array to hold non-moving blocks in reference frames 33 EB_U32 picSampleValue[MAX_NUMBER_OF_REGIONS_IN_WIDTH][MAX_NUMBER_OF_REGIONS_IN_HEIGHT][3];// [Y U V]; 34 35 EB_BOOL penalizeSkipflag; 36 37 EB_U8 tmpLayerIdx; 38 EB_BOOL isSceneChange; 39 EB_U16 picAvgVariance; 40 EB_U8 averageIntensity; 41 42 } EbReferenceObject_t; 43 44 typedef struct EbReferenceObjectDescInitData_s { 45 EbPictureBufferDescInitData_t referencePictureDescInitData; 46 } EbReferenceObjectDescInitData_t; 47 48 typedef struct EbPaReferenceObject_s { 49 EbDctor dctor; 50 EbPictureBufferDesc_t *inputPaddedPicturePtr; 51 EbPictureBufferDesc_t *quarterDecimatedPicturePtr; 52 EbPictureBufferDesc_t *sixteenthDecimatedPicturePtr; 53 EB_U16 variance[MAX_NUMBER_OF_TREEBLOCKS_PER_PICTURE]; 54 EB_U8 yMean[MAX_NUMBER_OF_TREEBLOCKS_PER_PICTURE]; 55 EB_PICTURE sliceType; 56 57 EB_S32 dependentPicturesCount; //number of pic using this reference frame 58 PictureParentControlSet_t *pPcsPtr; 59 } EbPaReferenceObject_t; 60 61 typedef struct EbPaReferenceObjectDescInitData_s { 62 EbPictureBufferDescInitData_t referencePictureDescInitData; 63 EbPictureBufferDescInitData_t quarterPictureDescInitData; 64 EbPictureBufferDescInitData_t sixteenthPictureDescInitData; 65 } EbPaReferenceObjectDescInitData_t; 66 67 /************************************** 68 * Extern Function Declarations 69 **************************************/ 70 extern EB_ERRORTYPE EbReferenceObjectCreator( 71 EB_PTR *objectDblPtr, 72 EB_PTR objectInitDataPtr); 73 74 extern EB_ERRORTYPE EbPaReferenceObjectCreator( 75 EB_PTR *objectDblPtr, 76 EB_PTR objectInitDataPtr); 77 78 #ifdef __cplusplus 79 } 80 #endif 81 #endif //EbReferenceObject_h