1 /* 2 * Copyright(c) 2018 Intel Corporation 3 * SPDX - License - Identifier: BSD - 2 - Clause - Patent 4 */ 5 6 #ifndef EbSampleAdaptiveOffset_SSE2_h 7 #define EbSampleAdaptiveOffset_SSE2_h 8 9 #include "EbDefinitions.h" 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 EB_ERRORTYPE GatherSaoStatisticsLcu_OnlyEo_90_45_135_16bit_SSE2_INTRIN( 16 EB_U16 *inputSamplePtr, // input parameter, source Picture Ptr 17 EB_U32 inputStride, // input parameter, source stride 18 EB_U16 *reconSamplePtr, // input parameter, deblocked Picture Ptr 19 EB_U32 reconStride, // input parameter, deblocked stride 20 EB_U32 lcuWidth, // input parameter, LCU width 21 EB_U32 lcuHeight, // input parameter, LCU height 22 EB_S32 eoDiff[SAO_EO_TYPES][SAO_EO_CATEGORIES + 1], // output parameter, used to store Edge Offset diff, eoDiff[SAO_EO_TYPES] [SAO_EO_CATEGORIES] 23 EB_U16 eoCount[SAO_EO_TYPES][SAO_EO_CATEGORIES + 1]); // output parameter, used to store Edge Offset count, eoCount[SAO_EO_TYPES] [SAO_EO_CATEGORIES] 24 25 extern EB_ERRORTYPE SAOApplyBO16bit_SSE2_INTRIN( 26 EB_U16 *reconSamplePtr, 27 EB_U32 reconStride, 28 EB_U32 saoBandPosition, 29 EB_S8 *saoOffsetPtr, 30 EB_U32 lcuHeight, 31 EB_U32 lcuWidth); 32 33 extern EB_ERRORTYPE SAOApplyEO_45_16bit_SSE2_INTRIN( 34 EB_U16 *reconSamplePtr, 35 EB_U32 reconStride, 36 EB_U16 *temporalBufferLeft, 37 EB_U16 *temporalBufferUpper, 38 EB_S8 *saoOffsetPtr, 39 EB_U32 lcuHeight, 40 EB_U32 lcuWidth); 41 42 extern EB_ERRORTYPE SAOApplyEO_135_16bit_SSE2_INTRIN( 43 EB_U16 *reconSamplePtr, 44 EB_U32 reconStride, 45 EB_U16 *temporalBufferLeft, 46 EB_U16 *temporalBufferUpper, 47 EB_S8 *saoOffsetPtr, 48 EB_U32 lcuHeight, 49 EB_U32 lcuWidth); 50 51 extern EB_ERRORTYPE SAOApplyEO_90_16bit_SSE2_INTRIN( 52 EB_U16 *reconSamplePtr, 53 EB_U32 reconStride, 54 EB_U16 *temporalBufferUpper, 55 EB_S8 *saoOffsetPtr, 56 EB_U32 lcuHeight, 57 EB_U32 lcuWidth); 58 59 extern EB_ERRORTYPE SAOApplyEO_0_16bit_SSE2_INTRIN( 60 EB_U16 *reconSamplePtr, 61 EB_U32 reconStride, 62 EB_U16 *temporalBufferLeft, 63 EB_S8 *saoOffsetPtr, 64 EB_U32 lcuHeight, 65 EB_U32 lcuWidth); 66 67 #ifdef __cplusplus 68 } 69 #endif 70 #endif