X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=fhi_lib%2Flib%2Fapi%2Fxran_compression.h;h=5dc088f4f52a3f8ce4326fcd7010978c445d0e27;hb=2de97529a4c5a1922214ba0e6f0fb84cacbd0bc7;hp=fc4f7ad9ca61984aa0adb96b678e1082014755fe;hpb=2fbf70096f64af622da983e88c5a64e90ad9bdbd;p=o-du%2Fphy.git diff --git a/fhi_lib/lib/api/xran_compression.h b/fhi_lib/lib/api/xran_compression.h index fc4f7ad..5dc088f 100644 --- a/fhi_lib/lib/api/xran_compression.h +++ b/fhi_lib/lib/api/xran_compression.h @@ -1,6 +1,6 @@ /****************************************************************************** * -* Copyright (c) 2019 Intel. +* Copyright (c) 2020 Intel. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ /*! \file xran_compression.h - \brief External API for compading with the use BFP algorithm. + \brief External C-callable API for compression/decompression with the use BFP algorithm and Modulation compression */ #ifndef _XRAN_COMPRESSION_H_ @@ -37,8 +37,12 @@ extern "C" { struct xranlib_compress_request { int16_t *data_in; /*!< Pointer to data to compress. */ int16_t numRBs; /*!< numRBs */ + int16_t numDataElements; /*!< number of elements in block process [UP: 24 i.e 12RE*2; CP: 16,32,64,128. i.e AntElm*2] */ int16_t compMethod; /*!< Compression method */ int16_t iqWidth; /*!< Bit size */ + int16_t reMask; /*!< 12-bit RE mask representing 12REs in one RB */ + int16_t csf; /*!< 1-bit constellation shift flag defined in section 5.4.7.4 */ + uint16_t ScaleFactor; /*!< Scale factor as defined in section A.5*/ int32_t len; /*!< Length of input buffer in bytes */ }; @@ -59,9 +63,12 @@ struct xranlib_compress_response { struct xranlib_decompress_request { int8_t *data_in; /*!< Pointer to data to decompress. */ int16_t numRBs; /*!< numRBs */ + int16_t numDataElements; /*!< number of elements in block process [UP: 24 i.e 12RE*2; CP: 16,32,64,128. i.e AntElm*2] */ int16_t compMethod; /*!< Compression method */ int16_t iqWidth; /*!< Bit size */ - + int16_t reMask; /*!< 12-bit RE mask representing 12REs in one RB */ + int16_t csf; /*!< 1-bit constellation shift flag defined in section 5.4.7.4 */ + uint16_t ScaleFactor; /*!< Scale factor as defined in section A.5*/ int32_t len; /*!< Length of input data. */ }; @@ -92,17 +99,29 @@ xranlib_companding_version(char *version, int buffer_size); \param [out] response Structure containing the output data and data length. \return 0 for success, -1 for error */ -int +int32_t xranlib_compress(const struct xranlib_compress_request *request, struct xranlib_compress_response *response); - -int xranlib_compress_sse(const struct xranlib_compress_request *request, +int32_t +xranlib_compress_sse(const struct xranlib_compress_request *request, + struct xranlib_compress_response *response); +int32_t +xranlib_compress_avx2(const struct xranlib_compress_request *request, + struct xranlib_compress_response *response); +int32_t +xranlib_compress_avx512(const struct xranlib_compress_request *request, + struct xranlib_compress_response *response); +int32_t +xranlib_compress_avxsnc(const struct xranlib_compress_request *request, struct xranlib_compress_response *response); -int xranlib_compress_avx2(const struct xranlib_compress_request *request, +int32_t +xranlib_compress_bfw(const struct xranlib_compress_request *request, struct xranlib_compress_response *response); -int xranlib_compress_avx512(const struct xranlib_compress_request *request, +int32_t +xranlib_compress_avx512_bfw(const struct xranlib_compress_request *request, struct xranlib_compress_response *response); -int xranlib_compress_avx512_bfw(const struct xranlib_compress_request *request, +int32_t +xranlib_compress_avxsnc_bfw(const struct xranlib_compress_request *request, struct xranlib_compress_response *response); //! @} @@ -113,16 +132,31 @@ int xranlib_compress_avx512_bfw(const struct xranlib_compress_request *request, \param [out] response Structure containing the output data and data length. \return 0 for success, -1 for error. **/ -int +int32_t xranlib_decompress(const struct xranlib_decompress_request *request, struct xranlib_decompress_response *response); - -int xranlib_decompress_sse(const struct xranlib_decompress_request *request, +int32_t +xranlib_decompress_sse(const struct xranlib_decompress_request *request, + struct xranlib_decompress_response *response); +int32_t +xranlib_decompress_avx2(const struct xranlib_decompress_request *request, struct xranlib_decompress_response *response); -int xranlib_decompress_avx2(const struct xranlib_decompress_request *request, +int32_t +xranlib_decompress_avx512(const struct xranlib_decompress_request *request, struct xranlib_decompress_response *response); -int xranlib_decompress_avx512(const struct xranlib_decompress_request *request, +int32_t +xranlib_decompress_avxsnc(const struct xranlib_decompress_request *request, struct xranlib_decompress_response *response); +int32_t +xranlib_decompress_bfw(const struct xranlib_decompress_request *request, + struct xranlib_decompress_response *response); +int32_t +xranlib_decompress_avx512_bfw(const struct xranlib_decompress_request *request, + struct xranlib_decompress_response *response); +int32_t +xranlib_decompress_avxsnc_bfw(const struct xranlib_decompress_request *request, + struct xranlib_decompress_response *response); + //! @} #ifdef __cplusplus