Agora  1.2.0
Agora project
encoder.h
Go to the documentation of this file.
1 
8 #ifndef ENCODER_H_
9 #define ENCODER_H_
10 
12 #include "phy_ldpc_encoder_5gnr.h"
13 
14 #define BITMASKU8(x) ((1U << (x)) - 1)
15 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
16 
17 namespace avx2enc {
18 
19 // Maximum 5G NR LDPC expansion factor (Zc) supported by the AVX2-based encoder
20 static constexpr size_t kZcMax = 255;
21 
22 static constexpr size_t kProcBytes = 32;
23 int32_t BblibLdpcEncoder5gnr(struct bblib_ldpc_encoder_5gnr_request* request,
24  struct bblib_ldpc_encoder_5gnr_response* response);
25 }; // namespace avx2enc
26 
27 // PROC_BYTES (maximum bytes processed as an LDPC chunk) is 64 bytes in
28 // FlexRAN's LDPC encoder and 32 bytes in Agora's derived LDPC encoder.
29 // Using the larger of the two works for padding buffers.
30 static constexpr size_t kMaxProcBytes = 64;
31 
32 #endif // ENCODER_H_
__attribute__
class RadioSocket __attribute__
encoder.h
Definitions for Agora's AVX2-based LDPC encoder.
avx2enc::LDPC_ADAPTER_P
void(*)(int8_t *, int8_t *, uint16_t, uint32_t, int8_t) LDPC_ADAPTER_P
Definition: iobuffer.h:22
avx2enc::LdpcSelectAdapterFunc
LDPC_ADAPTER_P LdpcSelectAdapterFunc(uint16_t zc_size)
Definition: iobuffer.cc:228
iobuffer.h
Declaration for for the avx2enc iobuffer functions.
kMaxProcBytes
static constexpr size_t kMaxProcBytes
Definition: encoder.h:30
avx2enc::LdpcEncoderBg1
void LdpcEncoderBg1(int8_t *pDataIn, int8_t *pDataOut, const int16_t *pMatrixNumPerCol, const int16_t *pAddr, const int16_t *pShiftMatrix, int16_t zcSize, uint8_t i_LS)
Definition: encoder.cc:15
avx2enc
Definition: cyclic_shift.cc:10
BG1_NONZERO_NUM
#define BG1_NONZERO_NUM
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:93
BG2_NONZERO_NUM
#define BG2_NONZERO_NUM
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:98
avx2enc::LdpcEncoderBg2
void LdpcEncoderBg2(int8_t *pDataIn, int8_t *pDataOut, const int16_t *pMatrixNumPerCol, const int16_t *pAddr, const int16_t *pShiftMatrix, int16_t zcSize, uint8_t i_LS)
Definition: encoder.cc:130
BG1_COL_TOTAL
#define BG1_COL_TOTAL
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:90
BG1_COL_INF_NUM
#define BG1_COL_INF_NUM
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:92
BG2_COL_INF_NUM
#define BG2_COL_INF_NUM
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:97
kBg2MatrixNumPerCol
static constexpr int16_t kBg2MatrixNumPerCol[52]
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:316
avx2enc::kProcBytes
static constexpr size_t kProcBytes
Definition: encoder.h:22
x2
x2
Definition: simulate_performance.m:31
ZC_MAX
#define ZC_MAX
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:88
fmt::v8::bg
text_style bg(detail::color_type background)
Definition: color.h:367
avx2enc::BblibLdpcEncoder5gnr
int32_t BblibLdpcEncoder5gnr(struct bblib_ldpc_encoder_5gnr_request *request, struct bblib_ldpc_encoder_5gnr_response *response)
Definition: encoder.cc:239
i
for i
Definition: generate_data.m:107
BG2_ROW_TOTAL
#define BG2_ROW_TOTAL
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:96
fmt::v8::fprintf
auto fprintf(std::FILE *f, const S &fmt, const T &... args) -> int
Definition: printf.h:607
gcc_phy_ldpc_encoder_5gnr_internal.h
avx2enc::kZcMax
static constexpr size_t kZcMax
Definition: encoder.h:20
BG1_ROW_TOTAL
#define BG1_ROW_TOTAL
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:91
x3
x3
Definition: simulate_performance.m:32
n
n
Definition: simulate_performance.m:1
avx2enc::CYCLIC_BIT_SHIFT
__m256i(*)(__m256i, int16_t, int16_t) CYCLIC_BIT_SHIFT
Definition: cyclic_shift.h:19
avx2enc::LdpcSelectShiftFunc
CYCLIC_BIT_SHIFT LdpcSelectShiftFunc(int16_t zcSize)
Definition: cyclic_shift.cc:166
kBg1MatrixNumPerCol
static constexpr int16_t kBg1MatrixNumPerCol[68]
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:108
x1
end BigStation x1
Definition: simulate_performance.m:30
kBg2Address
static constexpr int16_t kBg2Address[188]
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:324
cyclic_shift.h
Declaration for for the avx2enc cyclic shift functions.
kBg1Address
static constexpr int16_t kBg1Address[307]
Definition: gcc_phy_ldpc_encoder_5gnr_internal.h:117