Agora  1.2.0
Agora project
gcc_phy_ldpc_encoder_5gnr_internal.h File Reference
#include <immintrin.h>
#include "common_typedef_sdk.h"
Include dependency graph for gcc_phy_ldpc_encoder_5gnr_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PROC_BYTES   64
 
#define WAYS_144to256   2
 
#define WAYS_72to128   4
 
#define WAYS_36to64   8
 
#define WAYS_18to32   16
 
#define WAYS_2to16   16
 
#define PROC_BYTES   64
 
#define I_LS_NUM   8
 
#define ZC_MAX   384
 
#define BG1_COL_TOTAL   68
 
#define BG1_ROW_TOTAL   46
 
#define BG1_COL_INF_NUM   22
 
#define BG1_NONZERO_NUM   307
 
#define BG2_COL_TOTAL   52
 
#define BG2_ROW_TOTAL   42
 
#define BG2_COL_INF_NUM   10
 
#define BG2_NONZERO_NUM   188
 

Typedefs

using LDPC_ADAPTER_P = void(*)(int8_t **, int8_t *, uint16_t, uint32_t, int8_t)
 

Functions

void AdapterFrom288to384 (int8_t **pBuff0, int8_t *pBuff1, uint16_t zcSize, uint32_t cbLen, int8_t direct)
 
void Adapter2waysFrom144to256 (int8_t **pbuff0, int8_t *pbuff1, uint16_t zcSize, uint32_t cbLen, int8_t direct)
 
void Adapter4waysFrom72to128 (int8_t **pbuff0, int8_t *pbuff1, uint16_t zcSize, uint32_t cbLen, int8_t direct)
 
void Adapter8waysFrom36to64 (int8_t **pbuff0, int8_t *pbuff1, uint16_t zcSize, uint32_t cbLen, int8_t direct)
 
void Adapter16waysFrom18to32 (int8_t **pbuff0, int8_t *pbuff1, uint16_t zcSize, uint32_t cbLen, int8_t direct)
 
void Adapter16waysFrom2to16 (int8_t **pbuff0, int8_t *pbuff1, uint16_t zcSize, uint32_t cbLen, int8_t direct)
 
LDPC_ADAPTER_P LdpcSelectAdapterFunc (uint16_t zcSize)
 
void LdpcEncInitial ()
 
void LdpcEncoderBg1 (int8_t *pDataIn, int8_t *pDataOut, const int16_t *pMatrixNumPerCol, const int16_t *pAddr, const int16_t *pShiftMatrix, int16_t zcSize)
 
 __attribute__ ((aligned(64))) static const expr int16_t kBg1HShiftMatrix[307 *8]
 

Variables

static constexpr int16_t kBg1MatrixNumPerCol [68]
 
static constexpr int16_t kBg1Address [307]
 
static constexpr int16_t kBg2MatrixNumPerCol [52]
 
static constexpr int16_t kBg2Address [188]
 

Macro Definition Documentation

◆ BG1_COL_INF_NUM

#define BG1_COL_INF_NUM   22

◆ BG1_COL_TOTAL

#define BG1_COL_TOTAL   68

◆ BG1_NONZERO_NUM

#define BG1_NONZERO_NUM   307

◆ BG1_ROW_TOTAL

#define BG1_ROW_TOTAL   46

◆ BG2_COL_INF_NUM

#define BG2_COL_INF_NUM   10

◆ BG2_COL_TOTAL

#define BG2_COL_TOTAL   52

◆ BG2_NONZERO_NUM

#define BG2_NONZERO_NUM   188

◆ BG2_ROW_TOTAL

#define BG2_ROW_TOTAL   42

◆ I_LS_NUM

#define I_LS_NUM   8

◆ PROC_BYTES [1/2]

#define PROC_BYTES   64

◆ PROC_BYTES [2/2]

#define PROC_BYTES   64

◆ WAYS_144to256

#define WAYS_144to256   2

◆ WAYS_18to32

#define WAYS_18to32   16

◆ WAYS_2to16

#define WAYS_2to16   16

◆ WAYS_36to64

#define WAYS_36to64   8

◆ WAYS_72to128

#define WAYS_72to128   4

◆ ZC_MAX

#define ZC_MAX   384

Typedef Documentation

◆ LDPC_ADAPTER_P

using LDPC_ADAPTER_P = void (*)(int8_t**, int8_t*, uint16_t, uint32_t, int8_t)

Function Documentation

◆ __attribute__()

__attribute__ ( (aligned(64))  ) const

◆ Adapter16waysFrom18to32()

void Adapter16waysFrom18to32 ( int8_t **  pbuff0,
int8_t *  pbuff1,
uint16_t  zcSize,
uint32_t  cbLen,
int8_t  direct 
)

◆ Adapter16waysFrom2to16()

void Adapter16waysFrom2to16 ( int8_t **  pbuff0,
int8_t *  pbuff1,
uint16_t  zcSize,
uint32_t  cbLen,
int8_t  direct 
)

◆ Adapter2waysFrom144to256()

void Adapter2waysFrom144to256 ( int8_t **  pbuff0,
int8_t *  pbuff1,
uint16_t  zcSize,
uint32_t  cbLen,
int8_t  direct 
)

◆ Adapter4waysFrom72to128()

void Adapter4waysFrom72to128 ( int8_t **  pbuff0,
int8_t *  pbuff1,
uint16_t  zcSize,
uint32_t  cbLen,
int8_t  direct 
)

◆ Adapter8waysFrom36to64()

void Adapter8waysFrom36to64 ( int8_t **  pbuff0,
int8_t *  pbuff1,
uint16_t  zcSize,
uint32_t  cbLen,
int8_t  direct 
)

◆ AdapterFrom288to384()

void AdapterFrom288to384 ( int8_t **  pBuff0,
int8_t *  pBuff1,
uint16_t  zcSize,
uint32_t  cbLen,
int8_t  direct 
)

◆ LdpcEncInitial()

void LdpcEncInitial ( )

◆ LdpcEncoderBg1()

void LdpcEncoderBg1 ( int8_t *  pDataIn,
int8_t *  pDataOut,
const int16_t *  pMatrixNumPerCol,
const int16_t *  pAddr,
const int16_t *  pShiftMatrix,
int16_t  zcSize 
)

◆ LdpcSelectAdapterFunc()

LDPC_ADAPTER_P LdpcSelectAdapterFunc ( uint16_t  zcSize)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ kBg1Address

constexpr int16_t kBg1Address[307]
staticconstexpr
Initial value:
= {
0, 64, 128, 192, 256, 320, 384, 448, 512, 576, 704, 768,
832, 896, 960, 1088, 1216, 1280, 1408, 1536, 1664, 1792, 1920, 2048,
2176, 2304, 2432, 2560, 2688, 2816, 0, 128, 192, 256, 320, 448,
512, 576, 640, 704, 768, 960, 1024, 1152, 1216, 1344, 1472, 1600,
1728, 1856, 1984, 2112, 2240, 2368, 2496, 2624, 2752, 2880, 0, 64,
128, 640, 1472, 1664, 2112, 0, 64, 192, 320, 512, 832, 1024,
1280, 1536, 2496, 2624, 64, 128, 192, 448, 640, 1536, 1664, 1792,
2688, 0, 64, 128, 1344, 0, 128, 192, 384, 1600, 1728, 2240,
2880, 64, 128, 192, 448, 640, 832, 1216, 1600, 1984, 2176, 2496,
2816, 64, 128, 192, 448, 640, 1216, 1728, 2560, 0, 64, 128,
1280, 2432, 2624, 2816, 0, 128, 192, 384, 576, 768, 960, 1216,
1472, 1920, 2432, 2880, 0, 64, 192, 384, 576, 768, 1024, 1280,
1536, 2112, 0, 64, 192, 320, 512, 704, 896, 1152, 1408, 2048,
2240, 2432, 0, 128, 192, 384, 576, 768, 960, 1152, 1408, 1920,
2368, 64, 128, 192, 448, 640, 1088, 1600, 1856, 2048, 2304, 0,
64, 128, 896, 1664, 2176, 2304, 0, 64, 192, 320, 512, 704,
896, 1088, 1344, 2752, 64, 128, 192, 384, 576, 896, 1088, 1408,
2176, 2560, 0, 128, 192, 384, 576, 768, 960, 1152, 1472, 1856,
2304, 2624, 2752, 0, 64, 128, 512, 1152, 1792, 2496, 0, 128,
192, 384, 576, 832, 1024, 1344, 0, 64, 192, 320, 512, 704,
896, 1088, 1344, 1792, 2112, 320, 512, 704, 1024, 1280, 1536, 1984,
2240, 2816, 704, 832, 2368, 512, 1920, 2048, 2688, 960, 1856, 1984,
2752, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896,
960, 1024, 1088, 1152, 1216, 1280, 1344, 1408, 1472, 1536, 1600, 1664,
1728, 1792, 1856, 1920, 1984, 2048, 2112, 2176, 2240, 2304, 2368, 2432,
2496, 2560, 2624, 2688, 2752, 2816, 2880}

◆ kBg1MatrixNumPerCol

constexpr int16_t kBg1MatrixNumPerCol[68]
staticconstexpr
Initial value:
= {
30, 28, 7, 11, 9, 4, 8, 12, 8, 7, 12, 10, 12, 11, 10, 7, 10,
10, 13, 7, 8, 11, 9, 3, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}

◆ kBg2Address

constexpr int16_t kBg2Address[188]
staticconstexpr
Initial value:
= {
0, 64, 128, 256, 320, 384, 512, 640, 704, 832, 960, 1152,
1216, 1344, 1472, 1600, 1728, 1856, 2048, 2176, 2304, 2496, 0, 128,
192, 256, 320, 448, 512, 576, 640, 768, 832, 896, 1024, 1088,
1216, 1280, 1408, 1536, 1792, 1984, 2240, 2432, 2624, 0, 192, 1408,
1536, 1664, 1792, 1920, 2112, 2304, 2560, 0, 64, 128, 768, 1472,
64, 128, 192, 1280, 1856, 64, 192, 320, 384, 448, 1088, 1472,
1600, 1792, 1920, 2048, 2240, 2432, 2624, 0, 64, 192, 640, 896,
1152, 1728, 64, 192, 320, 384, 448, 640, 704, 1152, 1664, 1920,
2112, 2304, 2496, 64, 128, 192, 576, 832, 1344, 0, 64, 192,
384, 704, 1024, 1536, 1920, 576, 960, 1216, 2112, 2368, 2560, 256,
320, 384, 448, 576, 768, 896, 960, 1024, 1088, 1280, 2240, 2432,
2624, 512, 1024, 1088, 1664, 2048, 2176, 2496, 448, 704, 832, 896,
1344, 1664, 1984, 2176, 2368, 2560, 256, 320, 384, 448, 512, 576,
640, 704, 768, 832, 896, 960, 1024, 1088, 1152, 1216, 1280, 1344,
1408, 1472, 1536, 1600, 1664, 1728, 1792, 1856, 1920, 1984, 2048, 2112,
2176, 2240, 2304, 2368, 2432, 2496, 2560, 2624}

◆ kBg2MatrixNumPerCol

constexpr int16_t kBg2MatrixNumPerCol[52]
staticconstexpr
Initial value:
= {
22, 23, 10, 5, 5, 14, 7, 13, 6, 8, 6, 14, 7, 10, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}