Commit a65f59c8 authored by sebastian's avatar sebastian

Adapted all for BG2, still somethings not working... to debug

parent 6b5d2eee
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
#define NR_LDPC_ENABLE_PARITY_CHECK #define NR_LDPC_ENABLE_PARITY_CHECK
//#define NR_LDPC_PROFILER_DETAIL //#define NR_LDPC_PROFILER_DETAIL
#ifdef NR_LDPC_DEBUG_MODE //#ifdef NR_LDPC_DEBUG_MODE
#include "nrLDPC_tools/nrLDPC_debug.h" #include "nrLDPC_tools/nrLDPC_debug.h"
#endif //#endif
static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler); static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler);
...@@ -116,7 +116,14 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP ...@@ -116,7 +116,14 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
start_meas(&p_profiler->llr2CnProcBuf); start_meas(&p_profiler->llr2CnProcBuf);
#endif #endif
nrLDPC_llr2CnProcBuf(p_lut, p_llr, p_procBuf, Z); if (BG == 1)
{
nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z);
}
else
{
nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->llr2CnProcBuf); stop_meas(&p_profiler->llr2CnProcBuf);
#endif #endif
...@@ -158,7 +165,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP ...@@ -158,7 +165,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
} }
else else
{ {
nrLDPC_cn2bnProcBuf(p_lut, p_procBuf, Z); nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z);
} }
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->cn2bnProcBuf); stop_meas(&p_profiler->cn2bnProcBuf);
...@@ -206,15 +213,16 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP ...@@ -206,15 +213,16 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
} }
else else
{ {
nrLDPC_bn2cnProcBuf(p_lut, p_procBuf, Z); nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z);
} }
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->bn2cnProcBuf); stop_meas(&p_profiler->bn2cnProcBuf);
#endif #endif
#ifdef NR_LDPC_DEBUG_MODE //#ifdef NR_LDPC_DEBUG_MODE
nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC);
nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf); nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf);
#endif //#endif
// Parity Check not necessary here since it will fail // Parity Check not necessary here since it will fail
// because first 2 cols/BNs in BG are punctured and cannot be // because first 2 cols/BNs in BG are punctured and cannot be
...@@ -257,7 +265,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP ...@@ -257,7 +265,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
} }
else else
{ {
nrLDPC_cn2bnProcBuf(p_lut, p_procBuf, Z); nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z);
} }
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->cn2bnProcBuf); stop_meas(&p_profiler->cn2bnProcBuf);
...@@ -302,7 +310,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP ...@@ -302,7 +310,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
} }
else else
{ {
nrLDPC_bn2cnProcBuf(p_lut, p_procBuf, Z); nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z);
} }
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->bn2cnProcBuf); stop_meas(&p_profiler->bn2cnProcBuf);
...@@ -368,7 +376,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP ...@@ -368,7 +376,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
} }
else else
{ {
nrLDPC_cn2bnProcBuf(p_lut, p_procBuf, Z); nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z);
} }
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->cn2bnProcBuf); stop_meas(&p_profiler->cn2bnProcBuf);
...@@ -416,7 +424,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP ...@@ -416,7 +424,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
} }
else else
{ {
nrLDPC_bn2cnProcBuf(p_lut, p_procBuf, Z); nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z);
} }
#ifdef NR_LDPC_PROFILER_DETAIL #ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->bn2cnProcBuf); stop_meas(&p_profiler->bn2cnProcBuf);
......
...@@ -52,9 +52,44 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -52,9 +52,44 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
// LUT that only depend on BG // LUT that only depend on BG
p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG2; p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG2;
p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG3;
p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG4;
p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG5;
p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG6;
p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG8;
p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG10;
p_lut->posBnInCnProcBuf[6] = NULL;
p_lut->posBnInCnProcBuf[7] = NULL;
p_lut->posBnInCnProcBuf[8] = NULL;
// LUT that only depend on R // LUT that only depend on R
if (R == 15) if (R == 15)
{ {
p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG3;
p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG4;
p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG5;
p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG6;
p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG8;
p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG10;
p_lut->startAddrBnProcBuf[6] = NULL;
p_lut->startAddrBnProcBuf[7] = NULL;
p_lut->startAddrBnProcBuf[8] = NULL;
p_lut->bnPosBnProcBuf[0] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG3;
p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG4;
p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG5;
p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG6;
p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG8;
p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG10;
p_lut->bnPosBnProcBuf[6] = NULL;
p_lut->bnPosBnProcBuf[7] = NULL;
p_lut->bnPosBnProcBuf[8] = NULL;
p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R15;
p_lut->llr2llrProcBufNumBn = llr2llrProcBufNumBn_BG2_R15;
p_lut->llr2llrProcBufNumEl = &llr2llrProcBufNumEl_BG2_R15;
p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R15; p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R15;
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R15; p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R15;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R15; p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R15;
...@@ -64,6 +99,30 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -64,6 +99,30 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
} }
else if (R == 13) else if (R == 13)
{ {
p_lut->startAddrBnProcBuf[0] = NULL;
p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG4;
p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG5;
p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG6;
p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG8;
p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG10;
p_lut->startAddrBnProcBuf[6] = NULL;
p_lut->startAddrBnProcBuf[7] = NULL;
p_lut->startAddrBnProcBuf[8] = NULL;
p_lut->bnPosBnProcBuf[0] = NULL;
p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG4;
p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG5;
p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG6;
p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG8;
p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG10;
p_lut->bnPosBnProcBuf[6] = NULL;
p_lut->bnPosBnProcBuf[7] = NULL;
p_lut->bnPosBnProcBuf[8] = NULL;
p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R13;
p_lut->llr2llrProcBufNumBn = llr2llrProcBufNumBn_BG2_R13;
p_lut->llr2llrProcBufNumEl = &llr2llrProcBufNumEl_BG2_R13;
p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R13; p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R13;
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R13; p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R13;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R13; p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R13;
...@@ -73,6 +132,30 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -73,6 +132,30 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
} }
else if (R == 23) else if (R == 23)
{ {
p_lut->startAddrBnProcBuf[0] = NULL;
p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG4;
p_lut->startAddrBnProcBuf[2] = NULL;
p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG6;
p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG8;
p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG10;
p_lut->startAddrBnProcBuf[6] = NULL;
p_lut->startAddrBnProcBuf[7] = NULL;
p_lut->startAddrBnProcBuf[8] = NULL;
p_lut->bnPosBnProcBuf[0] = NULL;
p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG4;
p_lut->bnPosBnProcBuf[2] = NULL;
p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG6;
p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG8;
p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG10;
p_lut->bnPosBnProcBuf[6] = NULL;
p_lut->bnPosBnProcBuf[7] = NULL;
p_lut->bnPosBnProcBuf[8] = NULL;
p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R23;
p_lut->llr2llrProcBufNumBn = llr2llrProcBufNumBn_BG2_R23;
p_lut->llr2llrProcBufNumEl = &llr2llrProcBufNumEl_BG2_R23;
p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R23; p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R23;
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R23; p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R23;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R23; p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R23;
...@@ -1134,6 +1217,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1134,6 +1217,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
} }
else if (Z == 384) else if (Z == 384)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z384_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z384_CNG4;
p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z384_CNG5;
p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z384_CNG6;
p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z384_CNG8;
p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z384_CNG10;
p_lut->circShift[6] = NULL;
p_lut->circShift[7] = NULL;
p_lut->circShift[8] = NULL;
if (R == 13) if (R == 13)
{ {
p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG2_Z384_R13; p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG2_Z384_R13;
...@@ -1200,7 +1293,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1200,7 +1293,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R13; p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R13;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R13; p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R13;
p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13; p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13;
p_lut->numEdgesPerBn = lut_numEdgesPerBn_BG1_R13;
numLLR = NR_LDPC_NCOL_BG1_R13*Z; numLLR = NR_LDPC_NCOL_BG1_R13*Z;
} }
else if (R == 23) else if (R == 23)
...@@ -1233,7 +1326,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1233,7 +1326,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R23; p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R23;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R23; p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R23;
p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23; p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23;
p_lut->numEdgesPerBn = lut_numEdgesPerBn_BG1_R23;
numLLR = NR_LDPC_NCOL_BG1_R23*Z; numLLR = NR_LDPC_NCOL_BG1_R23*Z;
} }
else if (R == 89) else if (R == 89)
...@@ -1266,12 +1359,14 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1266,12 +1359,14 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R89; p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R89;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R89; p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R89;
p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89; p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89;
p_lut->numEdgesPerBn = lut_numEdgesPerBn_BG1_R89;
numLLR = NR_LDPC_NCOL_BG1_R89*Z; numLLR = NR_LDPC_NCOL_BG1_R89*Z;
} }
// LUT that depend on Z and R // LUT that depend on Z and R
if (Z == 2) switch (Z)
{
case 2:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z2_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z2_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z2_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z2_CNG4;
...@@ -1282,27 +1377,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1282,27 +1377,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z2_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z2_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z2_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z2_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z2_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z2_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z2_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z2_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z2_R13;
} }
else if (R == 23) case 3:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z2_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z2_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z2_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z2_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z2_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z2_R89;
}
}
else if (Z == 3)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z3_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z3_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z3_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z3_CNG4;
...@@ -1313,27 +1390,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1313,27 +1390,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z3_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z3_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z3_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z3_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z3_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z3_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z3_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z3_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z3_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z3_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z3_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z3_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z3_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z3_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z3_R89;
}
} }
else if (Z == 4) case 4:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z4_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z4_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z4_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z4_CNG4;
...@@ -1344,27 +1403,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1344,27 +1403,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z4_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z4_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z4_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z4_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z4_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z4_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z4_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z4_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z4_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z4_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z4_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z4_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z4_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z4_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z4_R89;
} }
} case 5:
else if (Z == 5)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z5_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z5_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z5_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z5_CNG4;
...@@ -1375,27 +1416,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1375,27 +1416,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z5_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z5_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z5_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z5_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z5_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z5_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z5_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z5_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z5_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z5_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z5_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z5_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z5_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z5_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z5_R89;
}
} }
else if (Z == 6) case 6:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z6_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z6_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z6_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z6_CNG4;
...@@ -1406,27 +1429,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1406,27 +1429,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z6_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z6_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z6_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z6_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z6_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z6_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z6_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z6_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z6_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z6_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z6_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z6_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z6_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z6_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z6_R89;
} }
} case 7:
else if (Z == 7)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z7_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z7_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z7_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z7_CNG4;
...@@ -1437,27 +1442,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1437,27 +1442,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z7_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z7_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z7_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z7_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z7_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z7_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z7_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z7_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z7_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z7_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z7_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z7_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z7_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z7_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z7_R89;
}
} }
else if (Z == 8) case 8:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z8_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z8_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z8_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z8_CNG4;
...@@ -1468,27 +1455,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1468,27 +1455,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z8_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z8_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z8_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z8_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z8_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z8_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z8_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z8_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z8_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z8_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z8_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z8_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z8_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z8_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z8_R89;
} }
} case 9:
else if (Z == 9)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z9_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z9_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z9_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z9_CNG4;
...@@ -1499,27 +1468,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1499,27 +1468,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z9_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z9_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z9_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z9_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z9_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z9_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z9_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z9_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z9_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z9_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z9_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z9_R23;
} }
else if (R == 89) case 10:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z9_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z9_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z9_R89;
}
}
else if (Z == 10)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z10_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z10_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z10_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z10_CNG4;
...@@ -1530,27 +1481,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1530,27 +1481,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z10_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z10_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z10_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z10_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z10_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z10_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z10_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z10_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z10_R13;
} }
else if (R == 23) case 11:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z10_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z10_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z10_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z10_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z10_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z10_R89;
}
}
else if (Z == 11)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z11_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z11_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z11_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z11_CNG4;
...@@ -1561,27 +1494,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1561,27 +1494,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z11_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z11_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z11_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z11_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z11_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z11_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z11_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z11_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z11_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z11_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z11_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z11_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z11_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z11_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z11_R89;
}
} }
else if (Z == 12) case 12:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z12_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z12_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z12_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z12_CNG4;
...@@ -1592,27 +1507,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1592,27 +1507,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z12_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z12_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z12_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z12_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z12_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z12_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z12_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z12_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z12_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z12_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z12_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z12_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z12_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z12_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z12_R89;
} }
} case 13:
else if (Z == 13)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z13_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z13_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z13_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z13_CNG4;
...@@ -1623,27 +1520,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1623,27 +1520,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z13_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z13_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z13_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z13_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z13_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z13_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z13_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z13_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z13_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z13_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z13_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z13_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z13_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z13_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z13_R89;
}
} }
else if (Z == 14) case 14:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z14_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z14_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z14_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z14_CNG4;
...@@ -1654,27 +1533,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1654,27 +1533,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z14_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z14_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z14_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z14_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z14_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z14_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z14_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z14_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z14_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z14_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z14_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z14_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z14_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z14_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z14_R89;
} }
} case 15:
else if (Z == 15)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z15_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z15_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z15_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z15_CNG4;
...@@ -1685,27 +1546,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1685,27 +1546,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z15_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z15_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z15_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z15_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z15_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z15_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z15_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z15_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z15_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z15_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z15_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z15_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z15_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z15_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z15_R89;
}
} }
else if (Z == 16) case 16:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z16_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z16_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z16_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z16_CNG4;
...@@ -1716,27 +1559,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1716,27 +1559,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z16_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z16_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z16_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z16_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z16_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z16_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z16_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z16_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z16_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z16_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z16_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z16_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z16_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z16_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z16_R89;
} }
} case 18:
else if (Z == 18)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z18_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z18_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z18_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z18_CNG4;
...@@ -1747,27 +1572,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1747,27 +1572,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z18_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z18_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z18_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z18_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z18_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z18_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z18_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z18_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z18_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z18_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z18_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z18_R23;
} }
else if (R == 89) case 20:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z18_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z18_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z18_R89;
}
}
else if (Z == 20)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z20_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z20_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z20_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z20_CNG4;
...@@ -1778,27 +1585,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1778,27 +1585,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z20_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z20_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z20_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z20_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z20_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z20_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z20_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z20_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z20_R13;
} }
else if (R == 23) case 22:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z20_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z20_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z20_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z20_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z20_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z20_R89;
}
}
else if (Z == 22)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z22_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z22_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z22_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z22_CNG4;
...@@ -1809,27 +1598,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1809,27 +1598,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z22_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z22_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z22_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z22_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z22_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z22_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z22_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z22_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z22_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z22_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z22_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z22_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z22_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z22_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z22_R89;
}
} }
else if (Z == 24) case 24:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z24_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z24_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z24_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z24_CNG4;
...@@ -1840,27 +1611,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1840,27 +1611,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z24_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z24_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z24_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z24_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z24_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z24_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z24_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z24_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z24_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z24_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z24_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z24_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z24_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z24_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z24_R89;
} }
} case 26:
else if (Z == 26)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z26_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z26_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z26_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z26_CNG4;
...@@ -1871,27 +1624,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1871,27 +1624,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z26_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z26_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z26_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z26_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z26_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z26_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z26_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z26_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z26_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z26_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z26_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z26_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z26_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z26_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z26_R89;
}
} }
else if (Z == 28) case 28:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z28_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z28_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z28_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z28_CNG4;
...@@ -1902,27 +1637,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1902,27 +1637,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z28_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z28_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z28_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z28_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z28_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z28_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z28_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z28_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z28_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z28_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z28_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z28_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z28_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z28_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z28_R89;
} }
} case 30:
else if (Z == 30)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z30_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z30_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z30_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z30_CNG4;
...@@ -1933,27 +1650,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1933,27 +1650,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z30_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z30_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z30_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z30_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z30_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z30_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z30_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z30_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z30_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z30_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z30_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z30_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z30_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z30_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z30_R89;
}
} }
else if (Z == 32) case 32:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z32_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z32_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z32_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z32_CNG4;
...@@ -1964,27 +1663,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1964,27 +1663,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z32_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z32_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z32_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z32_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z32_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z32_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z32_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z32_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z32_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z32_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z32_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z32_R23;
} }
else if (R == 89) case 36:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z32_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z32_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z32_R89;
}
}
else if (Z == 36)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z36_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z36_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z36_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z36_CNG4;
...@@ -1995,27 +1676,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -1995,27 +1676,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z36_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z36_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z36_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z36_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z36_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z36_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z36_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z36_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z36_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z36_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z36_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z36_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z36_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z36_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z36_R89;
}
} }
else if (Z == 40) case 40:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z40_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z40_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z40_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z40_CNG4;
...@@ -2026,27 +1689,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2026,27 +1689,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z40_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z40_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z40_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z40_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z40_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z40_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z40_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z40_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z40_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z40_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z40_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z40_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z40_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z40_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z40_R89;
} }
} case 44:
else if (Z == 44)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z44_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z44_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z44_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z44_CNG4;
...@@ -2057,27 +1702,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2057,27 +1702,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z44_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z44_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z44_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z44_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z44_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z44_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z44_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z44_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z44_R13;
} }
else if (R == 23) case 48:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z44_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z44_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z44_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z44_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z44_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z44_R89;
}
}
else if (Z == 48)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z48_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z48_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z48_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z48_CNG4;
...@@ -2088,27 +1715,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2088,27 +1715,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z48_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z48_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z48_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z48_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z48_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z48_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z48_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z48_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z48_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z48_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z48_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z48_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z48_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z48_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z48_R89;
}
} }
else if (Z == 52) case 52:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z52_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z52_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z52_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z52_CNG4;
...@@ -2119,27 +1728,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2119,27 +1728,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z52_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z52_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z52_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z52_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z52_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z52_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z52_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z52_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z52_R13;
} }
else if (R == 23) case 56:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z52_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z52_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z52_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z52_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z52_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z52_R89;
}
}
else if (Z == 56)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z56_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z56_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z56_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z56_CNG4;
...@@ -2150,27 +1741,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2150,27 +1741,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z56_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z56_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z56_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z56_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z56_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z56_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z56_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z56_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z56_R13;
} }
else if (R == 23) case 60:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z56_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z56_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z56_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z56_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z56_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z56_R89;
}
}
else if (Z == 60)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z60_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z60_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z60_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z60_CNG4;
...@@ -2181,27 +1754,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2181,27 +1754,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z60_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z60_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z60_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z60_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z60_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z60_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z60_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z60_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z60_R13;
} }
else if (R == 23) case 64:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z60_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z60_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z60_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z60_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z60_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z60_R89;
}
}
else if (Z == 64)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z64_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z64_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z64_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z64_CNG4;
...@@ -2212,27 +1767,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2212,27 +1767,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z64_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z64_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z64_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z64_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z64_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z64_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z64_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z64_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z64_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z64_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z64_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z64_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z64_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z64_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z64_R89;
}
} }
else if (Z == 72) case 72:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z72_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z72_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z72_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z72_CNG4;
...@@ -2243,27 +1780,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2243,27 +1780,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z72_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z72_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z72_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z72_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z72_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z72_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z72_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z72_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z72_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z72_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z72_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z72_R23;
} }
else if (R == 89) case 80:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z72_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z72_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z72_R89;
}
}
else if (Z == 80)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z80_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z80_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z80_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z80_CNG4;
...@@ -2274,27 +1793,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2274,27 +1793,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z80_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z80_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z80_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z80_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z80_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z80_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z80_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z80_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z80_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z80_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z80_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z80_R23;
} }
else if (R == 89) case 88:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z80_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z80_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z80_R89;
}
}
else if (Z == 88)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z88_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z88_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z88_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z88_CNG4;
...@@ -2305,27 +1806,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2305,27 +1806,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z88_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z88_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z88_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z88_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z88_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z88_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z88_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z88_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z88_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z88_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z88_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z88_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z88_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z88_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z88_R89;
} }
} case 96:
else if (Z == 96)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z96_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z96_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z96_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z96_CNG4;
...@@ -2336,27 +1819,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2336,27 +1819,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z96_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z96_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z96_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z96_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z96_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z96_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z96_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z96_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z96_R13;
} }
else if (R == 23) case 104:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z96_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z96_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z96_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z96_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z96_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z96_R89;
}
}
else if (Z == 104)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z104_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z104_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z104_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z104_CNG4;
...@@ -2367,27 +1832,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2367,27 +1832,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z104_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z104_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z104_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z104_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z104_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z104_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z104_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z104_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z104_R13;
} }
else if (R == 23) case 112:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z104_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z104_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z104_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z104_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z104_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z104_R89;
}
}
else if (Z == 112)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z112_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z112_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z112_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z112_CNG4;
...@@ -2398,27 +1845,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2398,27 +1845,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z112_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z112_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z112_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z112_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z112_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z112_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z112_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z112_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z112_R13;
} }
else if (R == 23) case 120:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z112_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z112_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z112_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z112_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z112_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z112_R89;
}
}
else if (Z == 120)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z120_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z120_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z120_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z120_CNG4;
...@@ -2429,27 +1858,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2429,27 +1858,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z120_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z120_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z120_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z120_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z120_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z120_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z120_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z120_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z120_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z120_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z120_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z120_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z120_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z120_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z120_R89;
} }
} case 128:
else if (Z == 128)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z128_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z128_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z128_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z128_CNG4;
...@@ -2460,27 +1871,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2460,27 +1871,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z128_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z128_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z128_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z128_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z128_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z128_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z128_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z128_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z128_R13;
} }
else if (R == 23) case 144:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z128_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z128_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z128_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z128_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z128_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z128_R89;
}
}
else if (Z == 144)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z144_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z144_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z144_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z144_CNG4;
...@@ -2491,27 +1884,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2491,27 +1884,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z144_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z144_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z144_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z144_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z144_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z144_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z144_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z144_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z144_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z144_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z144_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z144_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z144_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z144_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z144_R89;
}
} }
else if (Z == 160) case 160:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z160_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z160_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z160_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z160_CNG4;
...@@ -2522,27 +1897,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2522,27 +1897,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z160_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z160_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z160_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z160_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z160_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z160_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z160_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z160_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z160_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z160_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z160_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z160_R23;
} }
else if (R == 89) case 176:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z160_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z160_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z160_R89;
}
}
else if (Z == 176)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z176_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z176_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z176_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z176_CNG4;
...@@ -2553,27 +1910,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2553,27 +1910,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z176_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z176_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z176_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z176_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z176_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z176_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z176_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z176_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z176_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z176_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z176_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z176_R23;
} }
else if (R == 89) case 192:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z176_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z176_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z176_R89;
}
}
else if (Z == 192)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z192_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z192_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z192_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z192_CNG4;
...@@ -2584,27 +1923,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2584,27 +1923,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z192_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z192_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z192_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z192_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z192_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z192_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z192_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z192_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z192_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z192_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z192_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z192_R23;
} }
else if (R == 89) case 208:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z192_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z192_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z192_R89;
}
}
else if (Z == 208)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z208_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z208_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z208_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z208_CNG4;
...@@ -2615,27 +1936,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2615,27 +1936,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z208_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z208_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z208_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z208_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z208_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z208_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z208_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z208_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z208_R13;
} }
else if (R == 23) case 224:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z208_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z208_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z208_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z208_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z208_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z208_R89;
}
}
else if (Z == 224)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z224_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z224_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z224_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z224_CNG4;
...@@ -2646,27 +1949,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2646,27 +1949,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z224_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z224_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z224_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z224_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z224_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z224_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z224_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z224_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z224_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z224_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z224_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z224_R23;
} }
else if (R == 89) case 240:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z224_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z224_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z224_R89;
}
}
else if (Z == 240)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z240_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z240_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z240_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z240_CNG4;
...@@ -2677,27 +1962,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2677,27 +1962,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z240_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z240_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z240_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z240_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z240_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z240_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z240_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z240_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z240_R13;
} }
else if (R == 23) case 256:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z240_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z240_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z240_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z240_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z240_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z240_R89;
}
}
else if (Z == 256)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z256_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z256_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z256_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z256_CNG4;
...@@ -2708,27 +1975,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2708,27 +1975,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z256_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z256_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z256_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z256_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z256_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z256_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z256_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z256_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z256_R13;
} }
else if (R == 23) case 288:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z256_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z256_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z256_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z256_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z256_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z256_R89;
}
}
else if (Z == 288)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z288_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z288_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z288_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z288_CNG4;
...@@ -2739,27 +1988,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2739,27 +1988,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z288_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z288_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z288_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z288_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z288_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z288_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z288_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z288_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z288_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z288_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z288_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z288_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z288_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z288_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z288_R89;
}
} }
else if (Z == 320) case 320:
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z320_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z320_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z320_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z320_CNG4;
...@@ -2770,27 +2001,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2770,27 +2001,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z320_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z320_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z320_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z320_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z320_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z320_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z320_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z320_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z320_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z320_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z320_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z320_R23;
} }
else if (R == 89) case 352:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z320_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z320_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z320_R89;
}
}
else if (Z == 352)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z352_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z352_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z352_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z352_CNG4;
...@@ -2801,27 +2014,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2801,27 +2014,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z352_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z352_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z352_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z352_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z352_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z352_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z352_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z352_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z352_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z352_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z352_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z352_R23;
} }
else if (R == 89) case 384:
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z352_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z352_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z352_R89;
}
}
else if (Z == 384)
{ {
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z384_CNG3; p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z384_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z384_CNG4; p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z384_CNG4;
...@@ -2832,29 +2027,23 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu ...@@ -2832,29 +2027,23 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z384_CNG9; p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z384_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z384_CNG10; p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z384_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19; p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19;
break;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z384_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z384_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z384_R13;
} }
else if (R == 23) default:
{ {
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z384_R23; p_lut->circShift[0] = NULL;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z384_R23; p_lut->circShift[1] = NULL;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z384_R23; p_lut->circShift[2] = NULL;
p_lut->circShift[3] = NULL;
p_lut->circShift[4] = NULL;
p_lut->circShift[5] = NULL;
p_lut->circShift[6] = NULL;
p_lut->circShift[7] = NULL;
p_lut->circShift[8] = NULL;
} }
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z384_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z384_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z384_R89;
} }
} }
}
return numLLR; return numLLR;
} }
......
...@@ -513,6 +513,320 @@ static const uint16_t circShift_BG1_Z320_CNG19[19][4] = {{73, 303, 68, 220},{15, ...@@ -513,6 +513,320 @@ static const uint16_t circShift_BG1_Z320_CNG19[19][4] = {{73, 303, 68, 220},{15,
static const uint16_t circShift_BG1_Z256_CNG19[19][4] = {{250, 2, 106, 121},{69, 239, 111, 89},{226, 117, 185, 84},{159, 124, 63, 20},{100, 71, 117, 150},{10, 222, 93, 131},{59, 104, 229, 243},{229, 173, 177, 136},{110, 220, 95, 86},{191, 102, 39, 246},{9, 109, 142, 219},{195, 132, 225, 211},{23, 142, 225, 240},{190, 155, 245, 76},{35, 255, 205, 244},{239, 28, 251, 144},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}}; static const uint16_t circShift_BG1_Z256_CNG19[19][4] = {{250, 2, 106, 121},{69, 239, 111, 89},{226, 117, 185, 84},{159, 124, 63, 20},{100, 71, 117, 150},{10, 222, 93, 131},{59, 104, 229, 243},{229, 173, 177, 136},{110, 220, 95, 86},{191, 102, 39, 246},{9, 109, 142, 219},{195, 132, 225, 211},{23, 142, 225, 240},{190, 155, 245, 76},{35, 255, 205, 244},{239, 28, 251, 144},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}};
static const uint16_t circShift_BG1_Z384_CNG19[19][4] = {{307, 76, 205, 276},{19, 76, 250, 87},{50, 73, 328, 0},{369, 288, 332, 275},{181, 144, 256, 199},{216, 331, 161, 153},{317, 331, 267, 56},{288, 178, 160, 132},{109, 295, 63, 305},{17, 342, 129, 231},{357, 217, 200, 341},{215, 99, 88, 212},{106, 354, 53, 304},{242, 114, 131, 300},{180, 331, 240, 271},{330, 112, 205, 39},{346, 0, 13, 357},{1, 0, 0, 1},{0, 0, 0, 0}}; static const uint16_t circShift_BG1_Z384_CNG19[19][4] = {{307, 76, 205, 276},{19, 76, 250, 87},{50, 73, 328, 0},{369, 288, 332, 275},{181, 144, 256, 199},{216, 331, 161, 153},{317, 331, 267, 56},{288, 178, 160, 132},{109, 295, 63, 305},{17, 342, 129, 231},{357, 217, 200, 341},{215, 99, 88, 212},{106, 354, 53, 304},{242, 114, 131, 300},{180, 331, 240, 271},{330, 112, 205, 39},{346, 0, 13, 357},{1, 0, 0, 1},{0, 0, 0, 0}};
// BG2
// CNG3
static const uint16_t circShift_BG2_Z2_CNG3[3][6] = {{0, 0, 0, 0, 0, 1},{1, 0, 1, 0, 1, 1},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG3[3][6] = {{2, 0, 1, 2, 0, 1},{1, 0, 2, 2, 2, 1},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG3[3][6] = {{2, 0, 0, 2, 2, 3},{3, 0, 3, 0, 1, 3},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 0, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG3[3][6] = {{2, 3, 1, 2, 3, 1},{4, 3, 2, 5, 2, 1},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG3[3][6] = {{0, 1, 6, 3, 0, 5},{1, 3, 6, 5, 0, 5},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG3[3][6] = {{6, 4, 0, 2, 2, 3},{7, 4, 7, 4, 1, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG3[3][6] = {{0, 2, 4, 7, 8, 7},{6, 0, 1, 7, 4, 2},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG3[3][6] = {{7, 6, 9, 7, 7, 2},{9, 4, 5, 7, 5, 5},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG3[3][6] = {{8, 9, 7, 2, 3, 1},{4, 9, 2, 5, 2, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG3[3][6] = {{7, 2, 12, 11, 11, 12},{9, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG3[3][6] = {{7, 1, 13, 10, 7, 12},{1, 10, 6, 5, 0, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG3[3][6] = {{0, 6, 4, 10, 6, 4},{14, 5, 1, 12, 1, 9},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG3[3][6] = {{14, 4, 8, 2, 10, 11},{15, 12, 7, 12, 1, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG3[3][6] = {{0, 2, 13, 7, 8, 7},{6, 9, 10, 7, 13, 2},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 12, 14, 0, 4},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG3[3][6] = {{18, 6, 20, 7, 7, 13},{9, 4, 16, 7, 16, 16},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG3[3][6] = {{20, 21, 7, 14, 3, 13},{4, 21, 2, 17, 2, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG3[3][6] = {{20, 15, 12, 24, 11, 25},{22, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG3[3][6] = {{21, 15, 27, 24, 7, 12},{1, 10, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG3[3][6] = {{15, 6, 4, 25, 21, 4},{14, 5, 1, 27, 16, 24},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG3[3][6] = {{30, 4, 8, 18, 10, 27},{31, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG3[3][6] = {{18, 20, 13, 25, 8, 25},{24, 27, 10, 25, 31, 20},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 25, 32, 34, 20, 24},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG3[3][6] = {{18, 28, 42, 7, 29, 35},{31, 4, 16, 29, 16, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{4, 21, 2, 17, 26, 31},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG3[3][6] = {{46, 41, 12, 50, 11, 25},{22, 38, 37, 27, 33, 37},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG3[3][6] = {{49, 43, 27, 52, 35, 40},{1, 38, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG3[3][6] = {{15, 6, 4, 25, 21, 34},{44, 35, 1, 57, 46, 54},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG3[3][6] = {{30, 36, 8, 18, 42, 27},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG3[3][6] = {{54, 56, 13, 61, 8, 25},{60, 63, 10, 25, 67, 56},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 74, 20, 64},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG3[3][6] = {{18, 72, 42, 51, 29, 79},{75, 48, 16, 73, 60, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{52, 21, 50, 17, 74, 31},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG3[3][6] = {{98, 93, 64, 50, 11, 77},{22, 90, 89, 27, 85, 89},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG3[3][6] = {{49, 99, 27, 108, 35, 40},{1, 94, 6, 61, 70, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG3[3][6] = {{75, 66, 64, 25, 81, 34},{44, 95, 61, 57, 46, 114},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG3[3][6] = {{94, 100, 8, 18, 106, 91},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG3[3][6] = {{202, 197, 168, 50, 115, 181},{126, 194, 193, 27, 189, 193},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG3[3][6] = {{49, 211, 27, 108, 147, 40},{1, 94, 118, 61, 182, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG3[3][6] = {{195, 66, 64, 25, 201, 154},{44, 95, 181, 57, 46, 114},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG3[3][6] = {{222, 228, 8, 18, 106, 219},{63, 156, 151, 28, 1, 151},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}};
// CNG4
static const uint16_t circShift_BG2_Z2_CNG4[4][20] = {{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1},{0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1},{1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG4[4][20] = {{0, 1, 0, 2, 0, 1, 1, 1, 1, 2, 1, 0, 0, 2, 2, 1, 0, 0, 1, 0},{2, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, 2, 0, 1, 1, 1, 0, 2, 1},{2, 2, 2, 0, 1, 0, 0, 1, 2, 1, 0, 2, 1, 0, 0, 2, 1, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG4[4][20] = {{3, 2, 3, 3, 0, 3, 2, 0, 3, 2, 2, 2, 0, 3, 1, 0, 3, 3, 0, 1},{2, 2, 3, 3, 2, 0, 1, 2, 3, 3, 1, 0, 0, 1, 0, 2, 2, 0, 3, 1},{3, 2, 2, 1, 2, 1, 1, 2, 2, 0, 3, 2, 3, 0, 3, 2, 2, 2, 0, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{1, 0, 3, 3, 3, 3, 3, 2, 0, 4, 1, 0, 3, 4, 2, 3, 3, 4, 1, 2},{2, 2, 3, 4, 1, 4, 4, 3, 3, 2, 0, 2, 3, 3, 1, 2, 4, 3, 3, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG4[4][20] = {{0, 4, 3, 2, 0, 4, 4, 1, 4, 2, 4, 0, 3, 5, 5, 1, 0, 3, 1, 3},{2, 4, 3, 3, 0, 0, 1, 1, 2, 3, 3, 2, 5, 3, 4, 1, 1, 0, 5, 1},{5, 2, 5, 3, 4, 0, 3, 1, 5, 4, 0, 5, 4, 0, 0, 2, 4, 3, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG4[4][20] = {{4, 0, 4, 4, 5, 0, 6, 3, 2, 6, 6, 3, 1, 1, 0, 1, 2, 1, 0, 1},{2, 1, 0, 4, 2, 5, 6, 1, 5, 4, 2, 0, 5, 5, 4, 0, 6, 6, 0, 3},{3, 5, 4, 5, 2, 2, 1, 4, 1, 0, 4, 5, 4, 6, 6, 6, 4, 0, 1, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG4[4][20] = {{3, 6, 7, 3, 4, 7, 2, 4, 7, 6, 2, 2, 4, 3, 1, 4, 7, 7, 0, 1},{6, 6, 7, 7, 2, 4, 1, 2, 3, 3, 5, 4, 4, 5, 0, 6, 2, 4, 3, 5},{7, 6, 6, 5, 2, 1, 5, 2, 6, 0, 7, 6, 3, 4, 7, 2, 6, 2, 0, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG4[4][20] = {{6, 7, 6, 4, 8, 7, 2, 1, 5, 3, 7, 5, 0, 1, 6, 4, 1, 2, 6, 3},{6, 6, 5, 6, 7, 1, 4, 3, 7, 6, 5, 8, 6, 7, 2, 3, 7, 5, 1, 2},{6, 7, 5, 2, 7, 5, 6, 0, 2, 2, 7, 8, 2, 6, 3, 8, 1, 7, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{6, 5, 3, 3, 8, 8, 8, 7, 5, 9, 6, 0, 8, 9, 7, 3, 3, 4, 6, 2},{7, 7, 8, 9, 6, 4, 4, 3, 8, 7, 0, 2, 3, 8, 6, 2, 9, 8, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG4[4][20] = {{9, 9, 1, 5, 8, 2, 7, 2, 0, 3, 9, 6, 6, 0, 5, 7, 2, 10, 6, 0},{1, 9, 0, 4, 9, 3, 8, 1, 0, 9, 2, 7, 5, 8, 9, 0, 7, 6, 2, 6},{6, 7, 4, 7, 0, 2, 8, 7, 7, 6, 6, 10, 7, 8, 7, 8, 8, 6, 5, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG4[4][20] = {{0, 10, 3, 8, 6, 10, 4, 1, 10, 2, 10, 0, 9, 5, 5, 1, 0, 9, 7, 3},{2, 10, 9, 3, 6, 6, 1, 7, 2, 9, 3, 8, 11, 9, 4, 7, 7, 0, 11, 7},{5, 8, 11, 9, 10, 0, 9, 7, 11, 4, 0, 5, 4, 0, 6, 2, 10, 9, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG4[4][20] = {{4, 10, 5, 5, 12, 6, 1, 10, 0, 9, 1, 6, 7, 2, 1, 2, 1, 12, 11, 9},{1, 8, 12, 4, 8, 7, 9, 5, 1, 5, 4, 0, 4, 9, 11, 11, 4, 1, 7, 2},{0, 9, 10, 11, 10, 0, 10, 10, 0, 10, 7, 7, 10, 11, 12, 10, 9, 4, 10, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG4[4][20] = {{4, 7, 4, 4, 12, 7, 6, 10, 2, 13, 6, 10, 1, 1, 7, 1, 9, 8, 0, 8},{2, 1, 7, 4, 2, 12, 6, 1, 12, 4, 2, 7, 12, 5, 11, 7, 13, 13, 7, 3},{3, 12, 11, 12, 2, 2, 1, 11, 8, 7, 11, 12, 11, 13, 13, 13, 4, 0, 8, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG4[4][20] = {{14, 11, 4, 8, 8, 9, 12, 13, 5, 6, 7, 14, 1, 4, 10, 13, 12, 2, 3, 8},{5, 4, 2, 7, 1, 9, 2, 13, 4, 4, 9, 14, 2, 0, 0, 7, 11, 0, 7, 5},{0, 0, 12, 7, 0, 13, 6, 11, 6, 10, 1, 11, 1, 6, 10, 1, 0, 9, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG4[4][20] = {{3, 14, 15, 3, 12, 7, 10, 12, 7, 14, 2, 2, 4, 3, 9, 12, 15, 15, 0, 1},{6, 14, 15, 15, 2, 4, 9, 10, 11, 11, 5, 12, 4, 5, 8, 6, 2, 12, 11, 5},{7, 6, 14, 5, 2, 9, 13, 2, 14, 8, 7, 6, 11, 4, 15, 10, 6, 2, 8, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG4[4][20] = {{6, 16, 15, 13, 17, 7, 2, 1, 14, 12, 16, 14, 9, 1, 6, 13, 1, 11, 6, 12},{6, 15, 14, 6, 16, 10, 13, 3, 7, 6, 5, 17, 6, 7, 11, 3, 16, 14, 1, 11},{15, 16, 5, 2, 16, 5, 6, 9, 2, 11, 7, 17, 2, 6, 3, 8, 1, 16, 12, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 5, 13, 13, 18, 18, 8, 17, 15, 9, 6, 0, 8, 19, 17, 3, 13, 4, 16, 2},{17, 7, 8, 19, 6, 14, 4, 13, 18, 7, 10, 2, 13, 18, 6, 2, 19, 18, 3, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG4[4][20] = {{20, 9, 12, 5, 19, 13, 18, 2, 0, 3, 20, 6, 17, 11, 16, 7, 2, 21, 6, 0},{1, 9, 11, 15, 9, 3, 8, 12, 0, 20, 2, 7, 5, 19, 20, 0, 7, 6, 2, 6},{17, 7, 4, 18, 0, 13, 19, 18, 18, 17, 17, 10, 7, 8, 18, 19, 19, 17, 16, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG4[4][20] = {{0, 22, 15, 20, 18, 10, 4, 13, 10, 14, 22, 12, 21, 5, 5, 1, 12, 21, 7, 3},{2, 22, 21, 15, 6, 18, 13, 7, 14, 9, 15, 8, 11, 9, 16, 7, 7, 12, 11, 7},{5, 8, 11, 9, 22, 12, 9, 19, 23, 16, 0, 17, 4, 12, 18, 2, 22, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG4[4][20] = {{17, 23, 18, 18, 25, 6, 14, 10, 0, 9, 14, 6, 7, 15, 1, 15, 1, 25, 11, 9},{1, 21, 25, 4, 21, 20, 9, 18, 14, 5, 4, 0, 17, 9, 11, 11, 17, 1, 7, 15},{13, 22, 23, 24, 10, 0, 10, 23, 13, 10, 20, 7, 23, 11, 25, 23, 9, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG4[4][20] = {{4, 7, 18, 4, 12, 7, 6, 24, 16, 13, 20, 24, 15, 1, 7, 1, 9, 22, 14, 8},{16, 15, 21, 4, 16, 26, 20, 15, 26, 4, 16, 21, 12, 5, 25, 7, 13, 13, 7, 17},{17, 12, 25, 26, 16, 2, 1, 25, 22, 7, 25, 26, 25, 13, 27, 27, 18, 14, 8, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG4[4][20] = {{29, 26, 4, 8, 8, 9, 27, 28, 5, 21, 7, 29, 16, 4, 25, 28, 12, 17, 18, 23},{20, 19, 2, 7, 1, 24, 17, 13, 4, 19, 24, 14, 2, 15, 15, 22, 11, 15, 7, 5},{0, 15, 12, 7, 0, 28, 6, 11, 21, 10, 16, 26, 16, 21, 25, 16, 15, 9, 0, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG4[4][20] = {{19, 14, 31, 19, 28, 23, 26, 12, 23, 14, 2, 18, 4, 19, 25, 12, 31, 15, 0, 1},{22, 30, 15, 15, 2, 20, 9, 10, 11, 11, 5, 12, 4, 21, 8, 6, 2, 12, 11, 5},{7, 6, 14, 21, 18, 25, 29, 18, 14, 8, 7, 6, 11, 4, 31, 26, 6, 2, 24, 22},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG4[4][20] = {{6, 34, 33, 31, 17, 7, 2, 19, 32, 30, 34, 32, 27, 1, 24, 13, 1, 11, 6, 12},{24, 33, 14, 24, 34, 28, 31, 3, 7, 6, 5, 17, 6, 25, 29, 21, 34, 32, 1, 11},{15, 16, 23, 20, 34, 5, 6, 9, 20, 29, 7, 35, 2, 6, 21, 26, 1, 34, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 25, 33, 33, 18, 38, 28, 17, 35, 29, 6, 20, 8, 19, 37, 23, 13, 24, 36, 2},{37, 7, 8, 19, 6, 34, 24, 33, 38, 7, 30, 2, 13, 38, 6, 2, 19, 18, 23, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG4[4][20] = {{42, 9, 34, 5, 41, 13, 40, 24, 22, 25, 20, 28, 17, 11, 38, 29, 24, 21, 28, 0},{23, 31, 11, 15, 31, 3, 8, 34, 0, 20, 24, 29, 5, 41, 20, 22, 7, 6, 24, 6},{39, 29, 4, 40, 22, 13, 41, 40, 18, 17, 17, 10, 29, 30, 40, 41, 19, 17, 38, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG4[4][20] = {{24, 22, 39, 20, 42, 10, 28, 13, 10, 38, 22, 36, 21, 29, 29, 25, 36, 45, 7, 3},{26, 22, 45, 15, 6, 42, 13, 31, 38, 9, 15, 8, 35, 33, 40, 7, 7, 36, 11, 7},{29, 8, 11, 33, 46, 12, 9, 19, 47, 16, 24, 17, 28, 12, 18, 26, 46, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG4[4][20] = {{43, 49, 18, 18, 25, 6, 40, 10, 0, 9, 14, 6, 7, 41, 1, 41, 1, 25, 37, 35},{27, 21, 51, 4, 47, 20, 35, 18, 14, 5, 30, 0, 17, 35, 11, 11, 17, 1, 7, 41},{13, 22, 49, 50, 36, 0, 10, 23, 13, 36, 46, 7, 23, 37, 25, 23, 35, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG4[4][20] = {{32, 35, 46, 4, 12, 35, 6, 24, 44, 41, 48, 52, 15, 29, 35, 1, 37, 50, 42, 8},{16, 43, 49, 32, 16, 26, 20, 43, 54, 32, 44, 21, 12, 33, 53, 7, 41, 13, 35, 45},{45, 40, 53, 54, 44, 30, 29, 25, 22, 7, 25, 54, 53, 13, 55, 27, 46, 42, 36, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 57, 58, 5, 21, 7, 59, 46, 4, 25, 58, 42, 47, 18, 53},{20, 49, 2, 37, 31, 24, 47, 13, 34, 19, 24, 14, 2, 15, 45, 52, 41, 45, 7, 35},{0, 45, 12, 37, 30, 28, 6, 11, 51, 10, 16, 56, 46, 21, 55, 46, 45, 9, 0, 50},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG4[4][20] = {{51, 14, 63, 51, 28, 23, 26, 12, 23, 46, 34, 50, 4, 19, 57, 12, 31, 47, 0, 1},{22, 30, 47, 47, 2, 20, 41, 42, 43, 11, 37, 44, 36, 21, 40, 38, 2, 44, 11, 37},{7, 38, 14, 21, 50, 57, 29, 18, 46, 8, 7, 38, 43, 36, 63, 26, 38, 34, 56, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG4[4][20] = {{42, 70, 33, 67, 17, 7, 2, 19, 68, 30, 34, 32, 63, 37, 60, 49, 1, 47, 6, 48},{24, 69, 50, 24, 34, 28, 31, 3, 43, 42, 5, 17, 6, 25, 65, 57, 70, 32, 1, 47},{51, 16, 59, 56, 70, 41, 6, 9, 56, 29, 43, 71, 2, 42, 21, 26, 1, 70, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{56, 65, 33, 73, 18, 78, 68, 17, 75, 69, 46, 20, 8, 19, 77, 63, 13, 24, 36, 2},{77, 7, 48, 19, 6, 74, 24, 33, 78, 7, 30, 42, 13, 78, 6, 2, 19, 58, 63, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG4[4][20] = {{86, 53, 34, 49, 85, 13, 40, 68, 22, 25, 64, 28, 17, 11, 38, 73, 24, 21, 72, 44},{67, 31, 11, 15, 31, 47, 52, 78, 44, 20, 24, 73, 49, 41, 64, 66, 7, 6, 68, 6},{83, 73, 4, 40, 22, 57, 85, 40, 62, 61, 61, 54, 29, 74, 84, 41, 19, 17, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG4[4][20] = {{72, 22, 39, 68, 90, 58, 76, 61, 10, 86, 70, 84, 69, 77, 77, 25, 84, 93, 7, 51},{74, 70, 93, 63, 6, 42, 61, 79, 86, 57, 15, 8, 83, 81, 88, 55, 55, 36, 11, 7},{29, 56, 11, 81, 46, 60, 57, 67, 95, 64, 72, 17, 28, 12, 18, 74, 94, 57, 67, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG4[4][20] = {{43, 101, 18, 70, 25, 6, 92, 10, 52, 9, 14, 6, 59, 93, 53, 93, 53, 77, 89, 87},{27, 73, 51, 4, 99, 20, 35, 18, 66, 57, 82, 0, 69, 87, 63, 63, 69, 53, 59, 93},{13, 22, 49, 102, 36, 52, 10, 23, 13, 88, 46, 59, 75, 89, 77, 75, 87, 69, 75, 63},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG4[4][20] = {{88, 35, 46, 4, 68, 35, 6, 80, 44, 41, 104, 108, 71, 29, 91, 1, 37, 106, 98, 8},{16, 43, 105, 88, 16, 26, 20, 43, 54, 88, 100, 21, 12, 89, 53, 63, 97, 69, 35, 101},{101, 40, 109, 110, 44, 86, 29, 81, 22, 63, 81, 110, 109, 69, 55, 83, 46, 42, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 117, 118, 5, 81, 7, 59, 46, 64, 85, 58, 42, 47, 78, 53},{20, 49, 2, 97, 91, 84, 107, 13, 94, 19, 24, 14, 2, 15, 105, 112, 41, 45, 67, 95},{60, 105, 72, 37, 90, 88, 6, 11, 111, 10, 16, 116, 106, 21, 55, 106, 105, 69, 60, 110},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG4[4][20] = {{51, 14, 63, 51, 92, 87, 26, 76, 23, 46, 98, 114, 4, 19, 57, 12, 31, 111, 0, 1},{86, 94, 111, 47, 66, 20, 105, 42, 107, 11, 101, 44, 36, 85, 40, 38, 66, 44, 75, 101},{71, 102, 14, 85, 50, 57, 29, 82, 110, 8, 7, 38, 107, 36, 63, 26, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG4[4][20] = {{43, 101, 18, 174, 129, 110, 196, 10, 52, 113, 14, 110, 163, 197, 157, 197, 157, 181, 193, 191},{27, 177, 155, 108, 203, 124, 35, 122, 170, 161, 186, 0, 173, 191, 167, 167, 173, 157, 163, 197},{117, 22, 49, 102, 140, 52, 114, 23, 13, 88, 46, 163, 179, 193, 181, 179, 191, 173, 179, 167},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG4[4][20] = {{200, 147, 46, 116, 68, 35, 6, 80, 156, 153, 216, 108, 71, 29, 91, 1, 37, 106, 98, 120},{16, 43, 217, 200, 16, 138, 20, 43, 54, 88, 212, 21, 12, 201, 165, 175, 97, 181, 35, 101},{101, 152, 109, 110, 156, 86, 141, 81, 134, 63, 193, 110, 109, 69, 55, 83, 46, 154, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG4[4][20] = {{29, 176, 124, 38, 128, 39, 117, 238, 5, 81, 7, 179, 46, 184, 85, 178, 42, 167, 78, 53},{140, 169, 122, 217, 211, 84, 227, 13, 94, 19, 144, 14, 2, 135, 225, 112, 41, 45, 67, 215},{180, 225, 72, 157, 210, 88, 6, 11, 111, 130, 16, 116, 106, 141, 175, 106, 105, 189, 180, 230},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG4[4][20] = {{179, 142, 63, 51, 220, 87, 26, 76, 23, 46, 98, 242, 132, 147, 57, 140, 31, 239, 0, 129},{214, 94, 111, 175, 194, 20, 105, 42, 235, 139, 101, 44, 164, 85, 40, 38, 66, 172, 75, 229},{71, 230, 14, 213, 50, 185, 29, 210, 238, 8, 135, 166, 235, 36, 63, 154, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
// CNG5
static const uint16_t circShift_BG2_Z2_CNG5[5][9] = {{1, 1, 1, 1, 1, 1, 0, 1, 1},{1, 1, 0, 0, 1, 0, 0, 1, 0},{1, 0, 0, 0, 1, 0, 0, 0, 1},{1, 1, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG5[5][9] = {{1, 2, 2, 1, 1, 0, 2, 1, 0},{0, 2, 2, 2, 1, 0, 2, 2, 1},{2, 1, 0, 2, 0, 0, 0, 1, 1},{1, 1, 1, 1, 1, 1, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 2, 1, 3},{1, 1, 0, 2, 1, 2, 0, 3, 0},{1, 0, 2, 2, 3, 0, 2, 0, 1},{3, 1, 0, 2, 0, 2, 0, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 2, 2, 2, 3, 4, 4, 0, 0},{1, 1, 4, 2, 2, 1, 4, 3, 1},{0, 0, 2, 1, 2, 3, 3, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG5[5][9] = {{4, 5, 2, 1, 1, 3, 2, 1, 0},{0, 2, 2, 5, 4, 3, 5, 5, 4},{5, 4, 0, 5, 3, 3, 3, 1, 4},{4, 4, 4, 4, 1, 4, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG5[5][9] = {{2, 6, 1, 2, 1, 5, 6, 6, 1},{2, 3, 5, 1, 4, 4, 6, 6, 2},{2, 1, 5, 3, 5, 1, 3, 4, 3},{6, 0, 1, 0, 4, 6, 2, 6, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 6, 5, 7},{5, 1, 4, 2, 1, 6, 4, 7, 0},{5, 0, 2, 6, 3, 0, 2, 0, 1},{7, 5, 0, 6, 0, 2, 0, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG5[5][9] = {{7, 1, 1, 4, 8, 3, 3, 7, 6},{4, 5, 3, 1, 6, 0, 7, 1, 2},{6, 2, 8, 8, 4, 1, 2, 1, 5},{4, 6, 1, 2, 7, 8, 6, 7, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{7, 7, 7, 2, 8, 9, 4, 0, 5},{1, 6, 4, 2, 7, 1, 9, 3, 1},{5, 0, 2, 6, 7, 3, 8, 7, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG5[5][9] = {{5, 1, 3, 7, 0, 1, 2, 3, 7},{10, 3, 10, 3, 2, 4, 1, 5, 8},{0, 9, 2, 5, 8, 6, 7, 9, 5},{9, 1, 9, 6, 1, 0, 9, 2, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG5[5][9] = {{4, 11, 8, 1, 7, 3, 2, 7, 0},{0, 8, 8, 5, 10, 9, 11, 5, 10},{5, 10, 6, 11, 9, 3, 9, 7, 4},{10, 4, 10, 10, 7, 4, 6, 1, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG5[5][9] = {{4, 8, 0, 6, 0, 8, 5, 8, 5},{1, 8, 3, 1, 7, 5, 6, 3, 4},{10, 8, 9, 4, 0, 2, 12, 10, 11},{3, 12, 8, 4, 5, 7, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG5[5][9] = {{2, 6, 1, 9, 8, 5, 6, 6, 8},{2, 10, 12, 1, 11, 4, 6, 6, 2},{2, 8, 12, 3, 12, 8, 10, 11, 3},{13, 0, 1, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG5[5][9] = {{2, 8, 13, 3, 7, 5, 1, 11, 7},{13, 7, 4, 12, 7, 8, 8, 6, 4},{3, 13, 3, 2, 9, 10, 0, 10, 11},{8, 7, 6, 9, 12, 7, 8, 11, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG5[5][9] = {{11, 11, 11, 3, 3, 11, 14, 13, 7},{13, 9, 12, 2, 1, 14, 12, 15, 0},{13, 0, 2, 6, 3, 8, 2, 0, 9},{7, 5, 8, 14, 8, 2, 0, 10, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG5[5][9] = {{7, 10, 10, 4, 17, 12, 12, 16, 15},{4, 5, 12, 1, 15, 9, 7, 10, 2},{6, 11, 8, 8, 4, 10, 11, 10, 14},{13, 6, 10, 11, 7, 8, 6, 7, 16},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 12, 18, 19, 4, 0, 15},{11, 16, 4, 2, 17, 11, 9, 13, 11},{5, 0, 2, 6, 7, 3, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG5[5][9] = {{16, 1, 3, 7, 11, 12, 2, 14, 18},{10, 3, 21, 3, 13, 4, 1, 16, 19},{11, 20, 2, 5, 8, 17, 18, 9, 5},{20, 1, 9, 17, 12, 11, 9, 13, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG5[5][9] = {{4, 11, 8, 1, 19, 15, 14, 19, 0},{12, 8, 20, 5, 22, 9, 23, 17, 10},{17, 22, 6, 11, 21, 15, 9, 7, 4},{10, 4, 10, 22, 19, 16, 6, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG5[5][9] = {{4, 21, 13, 6, 13, 21, 5, 8, 18},{1, 8, 3, 1, 20, 5, 19, 16, 17},{23, 21, 9, 17, 0, 2, 12, 23, 24},{3, 25, 8, 4, 5, 20, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG5[5][9] = {{2, 6, 15, 9, 8, 19, 20, 6, 22},{2, 10, 26, 1, 11, 18, 20, 6, 16},{16, 8, 26, 3, 12, 22, 10, 25, 17},{27, 0, 15, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG5[5][9] = {{17, 8, 28, 18, 22, 20, 16, 26, 7},{28, 7, 4, 27, 22, 23, 23, 6, 19},{18, 28, 18, 17, 24, 25, 15, 10, 11},{8, 22, 21, 9, 12, 22, 8, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG5[5][9] = {{11, 11, 11, 19, 19, 11, 30, 29, 7},{13, 25, 12, 2, 17, 14, 28, 15, 16},{29, 0, 18, 6, 3, 8, 18, 0, 9},{23, 21, 24, 30, 8, 18, 0, 26, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG5[5][9] = {{25, 10, 28, 4, 35, 12, 12, 34, 15},{4, 5, 30, 1, 15, 9, 7, 28, 20},{24, 29, 8, 26, 22, 28, 29, 28, 32},{13, 24, 28, 11, 25, 8, 6, 25, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 18, 39, 24, 20, 35},{11, 36, 4, 22, 17, 31, 29, 13, 11},{5, 20, 2, 26, 27, 23, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG5[5][9] = {{16, 23, 3, 29, 11, 34, 2, 36, 40},{10, 25, 43, 3, 13, 26, 23, 38, 41},{11, 42, 24, 27, 8, 17, 18, 9, 5},{20, 23, 9, 39, 34, 33, 31, 13, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG5[5][9] = {{28, 11, 32, 1, 19, 39, 14, 19, 24},{36, 8, 44, 29, 22, 33, 23, 41, 10},{41, 22, 30, 35, 21, 39, 9, 7, 4},{34, 4, 10, 22, 19, 16, 6, 37, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG5[5][9] = {{30, 21, 39, 32, 39, 21, 5, 8, 18},{27, 8, 29, 1, 20, 31, 45, 16, 17},{49, 21, 35, 43, 0, 2, 38, 49, 50},{29, 51, 8, 30, 5, 20, 35, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG5[5][9] = {{2, 6, 43, 37, 36, 19, 48, 34, 50},{30, 38, 26, 1, 39, 46, 20, 6, 44},{16, 8, 54, 31, 40, 22, 38, 53, 17},{27, 0, 43, 28, 4, 41, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG5[5][9] = {{47, 38, 58, 48, 22, 50, 16, 26, 37},{58, 37, 34, 57, 52, 23, 53, 6, 19},{48, 28, 48, 47, 24, 55, 15, 10, 41},{8, 52, 51, 39, 42, 22, 38, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG5[5][9] = {{11, 11, 11, 19, 51, 11, 62, 29, 7},{13, 57, 44, 2, 17, 14, 60, 15, 48},{61, 0, 18, 38, 3, 8, 50, 32, 9},{55, 53, 56, 30, 40, 50, 0, 58, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG5[5][9] = {{25, 46, 28, 4, 71, 48, 48, 70, 15},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 29, 44, 62, 58, 28, 65, 28, 32},{49, 24, 64, 47, 25, 8, 42, 61, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 58, 79, 24, 20, 35},{51, 76, 4, 22, 57, 31, 29, 13, 51},{5, 20, 2, 26, 27, 63, 18, 7, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG5[5][9] = {{16, 23, 3, 29, 11, 78, 46, 36, 84},{54, 25, 87, 3, 57, 70, 23, 38, 85},{11, 86, 24, 27, 8, 17, 62, 53, 5},{64, 23, 53, 39, 78, 77, 75, 57, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 62, 67, 24},{36, 8, 92, 29, 22, 81, 23, 41, 58},{89, 22, 78, 35, 21, 39, 9, 55, 52},{82, 52, 58, 70, 67, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG5[5][9] = {{82, 21, 39, 32, 91, 21, 57, 60, 70},{27, 60, 29, 53, 20, 31, 97, 68, 17},{101, 73, 35, 95, 52, 54, 38, 49, 50},{81, 51, 8, 82, 5, 72, 35, 57, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG5[5][9] = {{2, 62, 99, 37, 36, 75, 48, 90, 106},{30, 38, 26, 1, 95, 46, 20, 6, 44},{72, 8, 110, 31, 40, 22, 94, 109, 73},{83, 56, 99, 28, 4, 97, 2, 6, 64},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG5[5][9] = {{47, 38, 58, 48, 82, 50, 76, 26, 37},{118, 97, 94, 57, 112, 23, 53, 66, 19},{48, 88, 48, 47, 84, 55, 75, 70, 101},{68, 112, 51, 99, 42, 82, 98, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG5[5][9] = {{75, 11, 11, 83, 115, 75, 126, 29, 71},{77, 57, 108, 2, 17, 14, 124, 15, 112},{61, 0, 82, 38, 3, 8, 114, 32, 9},{119, 117, 56, 94, 104, 114, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG5[5][9] = {{186, 125, 39, 32, 91, 125, 57, 164, 70},{27, 60, 29, 53, 20, 31, 201, 172, 17},{205, 177, 35, 95, 52, 54, 142, 49, 50},{81, 51, 8, 186, 109, 176, 35, 161, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG5[5][9] = {{2, 174, 99, 37, 36, 75, 48, 90, 106},{30, 150, 138, 113, 95, 158, 132, 6, 44},{184, 8, 110, 143, 40, 134, 206, 221, 185},{83, 56, 99, 140, 116, 97, 2, 6, 176},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG5[5][9] = {{167, 38, 178, 48, 82, 170, 196, 146, 37},{238, 217, 214, 57, 232, 23, 173, 66, 139},{48, 208, 168, 167, 204, 175, 195, 190, 221},{68, 232, 51, 219, 162, 202, 218, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG5[5][9] = {{203, 11, 11, 83, 115, 203, 254, 29, 71},{205, 185, 236, 2, 145, 142, 124, 143, 240},{61, 0, 210, 38, 3, 8, 114, 160, 9},{247, 117, 56, 222, 232, 242, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
// CNG6
static const uint16_t circShift_BG2_Z2_CNG6[6][3] = {{1, 1, 1},{1, 0, 1},{0, 1, 0},{1, 0, 1},{1, 0, 0},{0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG6[6][3] = {{1, 0, 2},{2, 2, 0},{1, 1, 1},{2, 1, 0},{0, 1, 2},{0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG6[6][3] = {{3, 3, 1},{1, 0, 3},{2, 1, 0},{3, 0, 3},{3, 2, 0},{0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG6[6][3] = {{0, 0, 0},{1, 4, 0},{2, 4, 3},{1, 0, 1},{4, 3, 3},{0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG6[6][3] = {{4, 3, 2},{2, 2, 0},{1, 4, 4},{2, 1, 0},{0, 4, 5},{0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG6[6][3] = {{3, 4, 5},{5, 6, 6},{2, 3, 0},{2, 5, 3},{4, 6, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG6[6][3] = {{7, 3, 1},{1, 4, 3},{2, 5, 4},{7, 4, 3},{7, 6, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG6[6][3] = {{4, 1, 7},{5, 6, 0},{3, 8, 8},{2, 7, 0},{8, 4, 2},{0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG6[6][3] = {{0, 0, 0},{1, 4, 5},{2, 9, 8},{1, 5, 6},{4, 8, 8},{0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG6[6][3] = {{2, 3, 4},{7, 0, 4},{2, 10, 2},{4, 1, 3},{5, 7, 0},{0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG6[6][3] = {{10, 9, 8},{8, 8, 6},{1, 4, 4},{8, 1, 6},{0, 4, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG6[6][3] = {{6, 7, 7},{10, 8, 0},{10, 3, 0},{2, 12, 3},{10, 12, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG6[6][3] = {{3, 11, 5},{12, 13, 13},{2, 3, 7},{9, 12, 10},{11, 13, 13},{0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG6[6][3] = {{1, 2, 11},{11, 12, 6},{4, 7, 12},{13, 4, 7},{12, 11, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG6[6][3] = {{7, 11, 1},{9, 4, 3},{2, 13, 12},{15, 12, 3},{7, 14, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG6[6][3] = {{4, 1, 7},{14, 15, 9},{12, 17, 17},{11, 7, 0},{17, 13, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{2, 19, 8},{1, 5, 16},{4, 8, 18},{0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG6[6][3] = {{13, 3, 4},{18, 0, 15},{13, 10, 2},{15, 1, 3},{16, 7, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG6[6][3] = {{10, 9, 8},{20, 20, 18},{1, 4, 16},{8, 1, 6},{0, 16, 23},{0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG6[6][3] = {{6, 7, 7},{23, 8, 0},{10, 16, 13},{2, 12, 3},{10, 12, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG6[6][3] = {{17, 11, 19},{26, 27, 13},{2, 3, 21},{23, 26, 10},{25, 13, 13},{0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG6[6][3] = {{1, 17, 26},{11, 12, 6},{19, 22, 27},{28, 4, 22},{27, 26, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG6[6][3] = {{7, 27, 1},{9, 4, 19},{2, 13, 12},{31, 28, 3},{7, 30, 20},{0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG6[6][3] = {{4, 1, 25},{32, 15, 27},{12, 35, 35},{29, 25, 0},{35, 31, 29},{0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{22, 19, 28},{21, 5, 16},{24, 28, 38},{0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG6[6][3] = {{35, 3, 4},{40, 22, 37},{35, 10, 24},{15, 23, 3},{16, 29, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG6[6][3] = {{10, 33, 32},{44, 44, 42},{25, 4, 16},{32, 1, 6},{0, 40, 47},{0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG6[6][3] = {{32, 7, 7},{49, 34, 26},{36, 42, 39},{28, 12, 3},{10, 12, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG6[6][3] = {{17, 11, 47},{26, 55, 13},{2, 31, 49},{51, 54, 38},{25, 41, 13},{0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG6[6][3] = {{1, 17, 26},{41, 12, 6},{49, 52, 27},{28, 4, 52},{27, 56, 34},{0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG6[6][3] = {{39, 27, 1},{41, 36, 19},{2, 45, 12},{31, 28, 3},{39, 30, 52},{0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG6[6][3] = {{40, 37, 25},{68, 15, 63},{12, 35, 35},{65, 61, 36},{71, 67, 65},{0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG6[6][3] = {{0, 0, 0},{51, 44, 45},{62, 19, 68},{61, 45, 16},{64, 68, 78},{0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG6[6][3] = {{79, 47, 48},{84, 66, 37},{35, 10, 24},{15, 67, 47},{60, 29, 55},{0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG6[6][3] = {{10, 33, 80},{44, 92, 90},{25, 4, 16},{80, 49, 6},{48, 88, 47},{0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG6[6][3] = {{32, 7, 59},{49, 34, 78},{36, 94, 39},{28, 64, 3},{62, 12, 58},{0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG6[6][3] = {{73, 11, 103},{26, 55, 13},{58, 31, 105},{107, 110, 38},{81, 97, 69},{0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG6[6][3] = {{1, 17, 86},{41, 72, 66},{49, 52, 87},{88, 4, 52},{87, 56, 34},{0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG6[6][3] = {{103, 27, 1},{41, 100, 19},{66, 45, 12},{31, 28, 3},{103, 30, 116},{0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG6[6][3] = {{136, 7, 163},{49, 34, 78},{36, 198, 143},{132, 168, 107},{62, 12, 58},{0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG6[6][3] = {{185, 123, 103},{138, 55, 13},{170, 31, 105},{219, 222, 150},{193, 209, 181},{0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG6[6][3] = {{121, 137, 86},{41, 72, 186},{169, 172, 87},{88, 124, 172},{207, 56, 154},{0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG6[6][3] = {{231, 155, 129},{41, 228, 147},{194, 45, 140},{159, 28, 3},{103, 158, 116},{0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}};
// CNG8
static const uint16_t circShift_BG2_Z2_CNG8[8][2] = {{1, 1},{1, 0},{0, 0},{0, 0},{1, 0},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z3_CNG8[8][2] = {{0, 1},{1, 0},{1, 0},{0, 2},{2, 0},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z4_CNG8[8][2] = {{1, 1},{1, 2},{0, 0},{2, 0},{1, 0},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z5_CNG8[8][2] = {{0, 0},{0, 4},{0, 4},{0, 4},{0, 3},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z6_CNG8[8][2] = {{0, 1},{1, 0},{4, 3},{0, 2},{5, 0},{4, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z7_CNG8[8][2] = {{2, 5},{5, 5},{2, 4},{6, 2},{4, 0},{1, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z8_CNG8[8][2] = {{1, 1},{5, 2},{4, 4},{2, 4},{5, 0},{5, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z9_CNG8[8][2] = {{3, 5},{8, 7},{8, 2},{8, 2},{7, 3},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z10_CNG8[8][2] = {{0, 0},{0, 4},{0, 9},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z11_CNG8[8][2] = {{2, 10},{0, 3},{3, 8},{3, 5},{7, 10},{2, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z12_CNG8[8][2] = {{6, 1},{1, 6},{10, 9},{6, 2},{11, 6},{4, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z13_CNG8[8][2] = {{0, 9},{6, 7},{7, 8},{9, 1},{1, 2},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z14_CNG8[8][2] = {{2, 12},{12, 5},{9, 4},{13, 9},{11, 7},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z15_CNG8[8][2] = {{10, 14},{11, 1},{11, 3},{6, 8},{8, 5},{7, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z16_CNG8[8][2] = {{9, 1},{5, 2},{12, 12},{10, 4},{13, 0},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z18_CNG8[8][2] = {{3, 5},{8, 16},{17, 2},{17, 2},{7, 3},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z20_CNG8[8][2] = {{0, 0},{0, 14},{0, 19},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z22_CNG8[8][2] = {{2, 10},{11, 14},{14, 19},{3, 16},{18, 10},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z24_CNG8[8][2] = {{6, 1},{1, 18},{22, 21},{18, 14},{23, 18},{4, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z26_CNG8[8][2] = {{13, 22},{19, 7},{20, 21},{9, 1},{14, 2},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z28_CNG8[8][2] = {{16, 12},{26, 19},{23, 18},{13, 23},{11, 7},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z30_CNG8[8][2] = {{25, 14},{11, 1},{11, 3},{21, 23},{23, 5},{22, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z32_CNG8[8][2] = {{9, 17},{21, 18},{12, 12},{26, 20},{29, 16},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z36_CNG8[8][2] = {{3, 23},{26, 34},{17, 20},{35, 2},{7, 3},{19, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z40_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z44_CNG8[8][2] = {{24, 10},{11, 36},{14, 19},{3, 38},{40, 10},{35, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z48_CNG8[8][2] = {{30, 25},{1, 18},{22, 21},{18, 14},{23, 18},{28, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z52_CNG8[8][2] = {{39, 22},{19, 7},{20, 47},{9, 27},{40, 28},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z56_CNG8[8][2] = {{16, 40},{54, 19},{23, 46},{13, 23},{39, 35},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z60_CNG8[8][2] = {{25, 14},{11, 31},{11, 3},{21, 53},{23, 35},{52, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z64_CNG8[8][2] = {{9, 17},{53, 50},{12, 44},{26, 52},{61, 48},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z72_CNG8[8][2] = {{3, 23},{26, 34},{53, 20},{35, 38},{43, 39},{55, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z80_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z88_CNG8[8][2] = {{68, 10},{55, 80},{14, 19},{3, 82},{40, 54},{35, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z96_CNG8[8][2] = {{78, 25},{1, 18},{70, 21},{66, 14},{71, 18},{76, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z104_CNG8[8][2] = {{39, 22},{19, 59},{72, 47},{61, 79},{92, 28},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z112_CNG8[8][2] = {{72, 40},{110, 19},{23, 46},{69, 79},{95, 91},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z120_CNG8[8][2] = {{25, 74},{11, 31},{71, 3},{21, 53},{23, 35},{112, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z128_CNG8[8][2] = {{9, 81},{117, 114},{76, 44},{26, 52},{61, 112},{77, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z144_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z160_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z176_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z192_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z208_CNG8[8][2] = {{143, 126},{19, 163},{176, 47},{165, 183},{196, 132},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z224_CNG8[8][2] = {{72, 152},{110, 131},{23, 46},{181, 191},{95, 91},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z240_CNG8[8][2] = {{145, 74},{131, 31},{71, 3},{21, 53},{23, 155},{112, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z256_CNG8[8][2] = {{9, 81},{117, 114},{204, 44},{26, 52},{189, 240},{205, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z288_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z320_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z352_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z384_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}};
// CNG10
static const uint16_t circShift_BG2_Z2_CNG10[10][2] = {{1, 0},{0, 0},{1, 0},{1, 0},{0, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z3_CNG10[10][2] = {{0, 1},{0, 1},{0, 2},{2, 0},{1, 0},{1, 1},{2, 1},{0, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z4_CNG10[10][2] = {{3, 0},{2, 2},{1, 2},{1, 0},{2, 1},{0, 2},{0, 2},{0, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z5_CNG10[10][2] = {{2, 3},{4, 0},{0, 2},{0, 1},{3, 2},{0, 2},{0, 3},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z6_CNG10[10][2] = {{3, 4},{0, 1},{0, 5},{2, 0},{1, 3},{1, 4},{5, 4},{3, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z7_CNG10[10][2] = {{4, 3},{2, 6},{3, 1},{2, 5},{3, 5},{4, 5},{1, 2},{3, 0},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z8_CNG10[10][2] = {{7, 0},{6, 2},{5, 6},{5, 0},{2, 1},{4, 6},{0, 2},{4, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z9_CNG10[10][2] = {{1, 3},{4, 4},{5, 4},{3, 4},{3, 1},{8, 4},{6, 2},{5, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z10_CNG10[10][2] = {{7, 8},{4, 5},{0, 2},{0, 6},{8, 2},{0, 7},{0, 3},{5, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z11_CNG10[10][2] = {{6, 9},{10, 9},{8, 9},{1, 6},{0, 6},{4, 1},{6, 6},{1, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z12_CNG10[10][2] = {{3, 4},{0, 7},{0, 5},{8, 0},{7, 3},{7, 10},{5, 4},{3, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z13_CNG10[10][2] = {{5, 10},{1, 9},{3, 5},{11, 7},{3, 8},{4, 3},{1, 9},{11, 4},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z14_CNG10[10][2] = {{11, 3},{2, 6},{3, 8},{2, 12},{3, 12},{4, 12},{1, 2},{3, 7},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z15_CNG10[10][2] = {{7, 14},{9, 6},{3, 5},{12, 5},{6, 9},{8, 4},{9, 13},{2, 0},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z16_CNG10[10][2] = {{7, 8},{6, 10},{13, 14},{13, 8},{2, 1},{12, 6},{0, 2},{12, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z18_CNG10[10][2] = {{1, 12},{4, 13},{14, 4},{12, 4},{12, 1},{8, 13},{15, 2},{14, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z20_CNG10[10][2] = {{17, 18},{4, 15},{0, 2},{0, 6},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z22_CNG10[10][2] = {{17, 9},{21, 20},{19, 20},{1, 17},{11, 17},{15, 1},{17, 17},{1, 17},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z24_CNG10[10][2] = {{3, 16},{12, 7},{0, 17},{20, 0},{7, 3},{19, 22},{17, 4},{3, 18},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z26_CNG10[10][2] = {{18, 10},{1, 22},{3, 18},{24, 7},{3, 21},{17, 3},{14, 9},{24, 4},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z28_CNG10[10][2] = {{25, 17},{16, 6},{3, 8},{16, 12},{3, 12},{4, 26},{1, 16},{3, 21},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z30_CNG10[10][2] = {{22, 29},{24, 21},{3, 5},{27, 20},{6, 9},{23, 19},{9, 13},{17, 15},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z32_CNG10[10][2] = {{7, 8},{6, 26},{29, 30},{29, 8},{2, 17},{28, 22},{0, 18},{28, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z36_CNG10[10][2] = {{19, 12},{22, 13},{32, 22},{30, 4},{12, 1},{26, 13},{33, 20},{14, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z40_CNG10[10][2] = {{17, 38},{4, 15},{0, 22},{0, 26},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z44_CNG10[10][2] = {{17, 9},{21, 42},{19, 42},{1, 39},{11, 17},{37, 1},{39, 17},{1, 17},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z48_CNG10[10][2] = {{27, 40},{36, 31},{0, 17},{44, 24},{31, 27},{43, 22},{41, 28},{3, 42},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z52_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{50, 7},{29, 47},{17, 3},{14, 35},{24, 4},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z56_CNG10[10][2] = {{53, 17},{44, 6},{3, 36},{44, 12},{3, 12},{32, 54},{29, 44},{31, 21},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z60_CNG10[10][2] = {{22, 59},{54, 51},{3, 35},{27, 50},{36, 39},{23, 19},{9, 43},{47, 15},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z64_CNG10[10][2] = {{39, 8},{38, 58},{61, 30},{61, 40},{34, 17},{28, 54},{32, 18},{60, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z72_CNG10[10][2] = {{19, 48},{22, 49},{32, 22},{66, 4},{12, 1},{26, 49},{69, 56},{50, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z80_CNG10[10][2] = {{57, 38},{44, 15},{0, 22},{0, 66},{8, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z88_CNG10[10][2] = {{17, 53},{65, 86},{63, 86},{1, 39},{55, 17},{37, 1},{83, 17},{45, 17},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z96_CNG10[10][2] = {{27, 40},{36, 79},{48, 17},{92, 72},{31, 27},{91, 22},{89, 28},{3, 90},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z104_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 7},{81, 99},{17, 3},{14, 87},{76, 56},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z112_CNG10[10][2] = {{53, 73},{44, 6},{3, 36},{44, 12},{3, 12},{88, 110},{29, 44},{31, 21},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z120_CNG10[10][2] = {{22, 119},{54, 51},{63, 95},{27, 110},{96, 39},{23, 79},{9, 43},{47, 75},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z128_CNG10[10][2] = {{39, 8},{38, 58},{125, 30},{125, 104},{98, 81},{28, 54},{96, 18},{124, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z144_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z160_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z176_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z192_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z208_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 111},{185, 203},{17, 3},{14, 191},{180, 160},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z224_CNG10[10][2] = {{53, 185},{156, 6},{115, 36},{156, 124},{115, 124},{200, 110},{29, 156},{31, 133},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z240_CNG10[10][2] = {{142, 239},{174, 171},{183, 95},{27, 110},{96, 159},{23, 199},{9, 43},{167, 75},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z256_CNG10[10][2] = {{167, 8},{166, 58},{253, 158},{125, 104},{226, 209},{156, 54},{224, 18},{252, 128},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z288_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z320_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z352_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z384_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}};
// Startaddressses in the BN buffer of the different CN groups // Startaddressses in the BN buffer of the different CN groups
// BG1 // BG1
// Group of CNs with 3 BNs (CNG3) / only this group is independent of Z // Group of CNs with 3 BNs (CNG3) / only this group is independent of Z
...@@ -580,6 +894,59 @@ static const uint8_t bnPosBnProcBuf_BG1_R23_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, ...@@ -580,6 +894,59 @@ static const uint8_t bnPosBnProcBuf_BG1_R23_CNG19[19][4] = {{0, 0, 0, 0},{0, 0,
static const uint32_t startAddrBnProcBuf_BG1_R89_CNG19[19][4] = {{28416, 28800, 29184, 29568},{26880, 10752, 27264, 27648},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 1536, 1536, 18816},{384, 384, 384, 1536}}; static const uint32_t startAddrBnProcBuf_BG1_R89_CNG19[19][4] = {{28416, 28800, 29184, 29568},{26880, 10752, 27264, 27648},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 1536, 1536, 18816},{384, 384, 384, 1536}};
static const uint8_t bnPosBnProcBuf_BG1_R89_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 0, 1},{1, 2, 2, 2},{3, 3, 3, 4},{4, 5, 4, 5},{7, 6, 5, 6},{8, 7, 6, 8},{9, 9, 7, 9},{10, 10, 8, 10},{11, 12, 11, 11},{13, 13, 12, 12},{14, 14, 13, 14},{16, 15, 15, 15},{17, 17, 16, 16},{18, 19, 17, 18},{19, 20, 18, 19},{20, 0, 1, 20},{0, 1, 2, 2}}; static const uint8_t bnPosBnProcBuf_BG1_R89_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 0, 1},{1, 2, 2, 2},{3, 3, 3, 4},{4, 5, 4, 5},{7, 6, 5, 6},{8, 7, 6, 8},{9, 9, 7, 9},{10, 10, 8, 10},{11, 12, 11, 11},{13, 13, 12, 12},{14, 14, 13, 14},{16, 15, 15, 15},{17, 17, 16, 16},{18, 19, 17, 18},{19, 20, 18, 19},{20, 0, 1, 20},{0, 1, 2, 2}};
// BG2
// CNG3
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG3[3][6] = {{72960, 64128, 64512, 64896, 74112, 31872},{34176, 49536, 23040, 17664, 40320, 41088},{0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 1, 0, 0},{18, 21, 23, 25, 27, 33}};
// CNG4
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG4[4][20] = {{59520, 60672, 70272, 62208, 62592, 62976, 72576, 63360, 63744, 73344, 73728, 65280, 36096, 65664, 74496, 66048, 74880, 66432, 36864, 75264},{67968, 69120, 16896, 29568, 22656, 72192, 16896, 20352, 17664, 34560, 35328, 50688, 45696, 31872, 51072, 36480, 51456, 46464, 32640, 51840},{52992, 28032, 54912, 55680, 44544, 30336, 56832, 39552, 49152, 25728, 49920, 31104, 31104, 40704, 57216, 46080, 57600, 32640, 41472, 57984},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},{0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17, 19, 20, 24, 28, 29, 30, 31, 32, 34, 35, 36, 37}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG4[4][8] = {{36096, 37248, 43776, 38784, 39168, 39552, 46080, 39936},{41472, 42624, 9984, 20352, 22272, 45696, 9984, 22272},{30720, 11520, 32640, 33408, 29568, 22272, 34560, 26496},{0, 0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG4[4][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 4, 1, 0, 1, 2},{0, 0, 0, 0, 0, 4, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG4[4][1] = {{18816},{16128},{15360},{0}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG4[4][1] = {{0},{0},{1},{0}};
// CNG5
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG5[5][9] = {{69504, 61056, 61440, 61824, 71040, 71424, 71808, 34944, 35712},{19584, 69888, 44160, 70656, 22272, 25344, 48768, 44928, 50304},{28800, 21888, 24960, 19968, 55296, 56064, 56448, 30336, 45312},{54528, 43776, 38400, 38784, 39168, 28800, 29568, 39936, 26112},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 1, 0},{0, 0, 0, 0, 0, 1, 1, 0, 0},{5, 6, 7, 9, 10, 12, 13, 22, 26}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG5[5][7] = {{43008, 37632, 38016, 38400, 44544, 44928, 45312},{18432, 43392, 29184, 44160, 20352, 22272, 22272},{18432, 18432, 20352, 20352, 33024, 33792, 34176},{32256, 28800, 25344, 25728, 26112, 11904, 12288},{0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG5[5][7] = {{0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 1, 3, 0},{4, 1, 3, 2, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0},{5, 6, 7, 9, 10, 12, 13}};
// R23
// none
// CNG6
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG6[6][3] = {{59904, 60288, 68736},{68352, 48000, 48384},{47616, 43008, 43392},{42624, 24576, 54144},{53376, 53760, 38016},{0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{1, 2, 3}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG6[6][3] = {{36480, 36864, 42240},{41856, 18432, 20352},{16512, 28032, 28416},{27648, 18432, 31872},{31104, 31488, 24960},{0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 3, 0},{0, 0, 0},{1, 2, 3}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG6[6][2] = {{19200, 19584},{16896, 12672},{11520, 12672},{11520, 12672},{16128, 16896},{0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG6[6][2] = {{0, 0},{0, 0},{0, 1},{1, 2},{1, 1},{1, 2}};
// CNG8
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG8[8][2] = {{58368, 59136},{66816, 67200},{33408, 16128},{14592, 15360},{20736, 18816},{23424, 27264},{26496, 27264},{52224, 37248}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{0, 0},{0, 0},{0, 1},{0, 0}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG8[8][2] = {{34944, 35712},{40320, 40704},{6912, 9216},{7680, 8448},{12672, 14592},{12672, 14592},{12672, 11136},{29952, 24192}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{1, 2},{3, 4},{4, 0},{0, 0}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG8[8][2] = {{17664, 18432},{13824, 14592},{1152, 7296},{3456, 5376},{3456, 5376},{9216, 5376},{3456, 2304},{13824, 1152}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{2, 3},{2, 4},{4, 1},{1, 2}};
// CNG10
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG10[10][2] = {{58752, 67584},{15360, 33792},{14592, 16128},{46848, 47232},{21120, 21504},{41856, 42240},{18432, 19200},{23808, 24192},{52608, 28032},{26496, 37632}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{1, 0}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG10[10][2] = {{35328, 41088},{8448, 7296},{7680, 9216},{12672, 14592},{14592, 16512},{26880, 27264},{12672, 16512},{14592, 16512},{30336, 16512},{10752, 24576}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{0, 0},{2, 2},{3, 3},{0, 4},{0, 0}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG10[10][2] = {{18048, 15360},{5376, 2304},{3456, 7296},{9216, 10368},{5376, 7296},{9216, 10368},{3456, 7296},{10368, 11520},{14592, 7296},{1152, 2304}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{2, 2},{1, 1},{3, 3},{2, 2},{1, 4},{1, 2}};
// LUT for llr2llrProcBuf // LUT for llr2llrProcBuf
// BG1 // BG1
...@@ -596,6 +963,20 @@ static const uint16_t llr2llrProcBufAddr_BG1_R89[4] = {9984,9600,1536,384}; ...@@ -596,6 +963,20 @@ static const uint16_t llr2llrProcBufAddr_BG1_R89[4] = {9984,9600,1536,384};
static const uint8_t llr2llrProcBufNumBn_BG1_R89[4] = {1,1,21,3}; static const uint8_t llr2llrProcBufNumBn_BG1_R89[4] = {1,1,21,3};
static const uint8_t llr2llrProcBufNumEl_BG1_R89 = 4; static const uint8_t llr2llrProcBufNumEl_BG1_R89 = 4;
// BG2
// R15
static const uint16_t llr2llrProcBufAddr_BG2_R15[13] = {19200,19584,17280,14592,18432,15744,18048,15360,16128,16512,18816,16896,17664};
static const uint8_t llr2llrProcBufNumBn_BG2_R15[13] = {1,1,1,2,1,1,1,1,1,1,1,1,1};
static const uint8_t llr2llrProcBufNumEl_BG2_R15 = 13;
// R13
static const uint16_t llr2llrProcBufAddr_BG2_R13[10] = {11520,11904,6912,7296,8448,10752,9216,11136,8064,10368};
static const uint8_t llr2llrProcBufNumBn_BG2_R13[10] = {1,1,1,2,2,1,3,1,1,1};
static const uint8_t llr2llrProcBufNumEl_BG2_R13 = 10;
// R23
static const uint16_t llr2llrProcBufAddr_BG2_R23[12] = {6144,5376,1152,2304,4224,3072,4608,3456,4992,3840,5760,1536};
static const uint8_t llr2llrProcBufNumBn_BG2_R23[12] = {1,1,1,2,1,1,1,1,1,1,1,2};
static const uint8_t llr2llrProcBufNumEl_BG2_R23 = 12;
// LUT for llr2cnProcBuf // LUT for llr2cnProcBuf
// LUTs are not rate dependent, however the number of CN in a CNG varies with rate // LUTs are not rate dependent, however the number of CN in a CNG varies with rate
// CNG3 // CNG3
...@@ -618,6 +999,13 @@ static const uint8_t posBnInCnProcBuf_BG1_CNG10[10][1] = {{0},{1},{3},{12},{16}, ...@@ -618,6 +999,13 @@ static const uint8_t posBnInCnProcBuf_BG1_CNG10[10][1] = {{0},{1},{3},{12},{16},
// CNG19 // CNG19
static const uint8_t posBnInCnProcBuf_BG1_CNG19[19][4] = {{0, 0, 0, 0},{1, 2, 1, 1},{2, 3, 2, 3},{3, 4, 4, 4},{5, 5, 5, 6},{6, 7, 6, 7},{9, 8, 7, 8},{10, 9, 8, 10},{11, 11, 9, 11},{12, 12, 10, 12},{13, 14, 13, 13},{15, 15, 14, 14},{16, 16, 15, 16},{18, 17, 17, 17},{19, 19, 18, 18},{20, 21, 19, 20},{21, 22, 20, 21},{22, 23, 24, 22},{23, 24, 25, 25}}; static const uint8_t posBnInCnProcBuf_BG1_CNG19[19][4] = {{0, 0, 0, 0},{1, 2, 1, 1},{2, 3, 2, 3},{3, 4, 4, 4},{5, 5, 5, 6},{6, 7, 6, 7},{9, 8, 7, 8},{10, 9, 8, 10},{11, 11, 9, 11},{12, 12, 10, 12},{13, 14, 13, 13},{15, 15, 14, 14},{16, 16, 15, 16},{18, 17, 17, 17},{19, 19, 18, 18},{20, 21, 19, 20},{21, 22, 20, 21},{22, 23, 24, 22},{23, 24, 25, 25}};
// BG2
static const uint8_t posBnInCnProcBuf_BG2_CNG3[3][6] = {{1, 0, 0, 0, 1, 10},{2, 5, 6, 4, 13, 13},{32, 35, 37, 39, 41, 47}};
static const uint8_t posBnInCnProcBuf_BG2_CNG4[4][20] = {{0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 1, 0, 1, 0, 2, 1},{1, 1, 3, 10, 6, 1, 4, 8, 3, 2, 2, 5, 7, 12, 5, 2, 5, 7, 10, 5},{11, 12, 11, 11, 7, 10, 11, 13, 5, 9, 5, 12, 10, 13, 11, 7, 11, 12, 13, 11},{14, 18, 22, 25, 28, 29, 30, 31, 33, 34, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51}};
static const uint8_t posBnInCnProcBuf_BG2_CNG5[5][9] = {{1, 0, 0, 0, 1, 1, 1, 2, 2},{8, 1, 7, 1, 6, 9, 5, 7, 5},{10, 6, 9, 8, 11, 11, 11, 12, 7},{11, 7, 13, 13, 13, 12, 12, 13, 9},{19, 20, 21, 23, 24, 26, 27, 36, 40}};
static const uint8_t posBnInCnProcBuf_BG2_CNG6[6][3] = {{0, 0, 1},{1, 5, 5},{5, 7, 7},{7, 9, 11},{11, 11, 13},{15, 16, 17}};
static const uint8_t posBnInCnProcBuf_BG2_CNG8[8][2] = {{0, 0},{1, 1},{2, 3},{3, 4},{6, 8},{9, 10},{10, 12},{11, 13}};
static const uint8_t posBnInCnProcBuf_BG2_CNG10[10][2] = {{0, 1},{3, 2},{4, 4},{5, 5},{6, 6},{7, 7},{8, 8},{9, 9},{11, 10},{12, 13}};
......
...@@ -121,7 +121,7 @@ static inline void nrLDPC_llr2llrProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrL ...@@ -121,7 +121,7 @@ static inline void nrLDPC_llr2llrProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrL
\param Z Lifting size \param Z Lifting size
\param BG Base graph \param BG Base graph
*/ */
static inline void nrLDPC_llr2CnProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) static inline void nrLDPC_llr2CnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{ {
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0]; const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1]; const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1];
...@@ -313,124 +313,277 @@ static inline void nrLDPC_llr2CnProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLD ...@@ -313,124 +313,277 @@ static inline void nrLDPC_llr2CnProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLD
\param p_lut Pointer to decoder LUTs \param p_lut Pointer to decoder LUTs
\param Z Lifting size \param Z Lifting size
*/ */
static inline void nrLDPC_cn2bnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) static inline void nrLDPC_llr2CnProcBuf_BG2(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1];
const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2];
const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3];
const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4];
const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5];
const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->posBnInCnProcBuf[0];
const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->posBnInCnProcBuf[1];
const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->posBnInCnProcBuf[2];
const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->posBnInCnProcBuf[3];
const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->posBnInCnProcBuf[4];
const uint8_t (*lut_posBnInCnProcBuf_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->posBnInCnProcBuf[5];
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
int8_t* cnProcBuf = p_procBuf->cnProcBuf;
uint32_t i;
uint32_t j;
uint32_t idxBn = 0;
int8_t* p_cnProcBuf;
uint32_t bitOffsetInGroup;
// =====================================================================
// CN group with 3 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX;
for (j=0; j<3; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[0]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG3[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG3[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 4 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX;
for (j=0; j<4; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[1]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG4[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG4[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 5 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX;
for (j=0; j<5; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[2]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG5[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG5[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 6 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX;
for (j=0; j<6; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[3] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[3]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG6[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG6[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 8 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX;
for (j=0; j<8; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[4]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG8[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG8[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 10 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX;
for (j=0; j<10; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[5] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[5]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG10[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG10[j][i]);
p_cnProcBuf += Z;
}
}
}
/**
\brief Copies the values in the CN processing results buffer to their corresponding place in the BN processing buffer for BG2.
\param p_lut Pointer to decoder LUTs
\param Z Lifting size
*/
static inline void nrLDPC_cn2bnProcBuf_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{ {
const uint32_t* lut_cn2bnProcBuf = p_lut->cn2bnProcBuf;
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1];
const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2];
const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3];
const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4];
const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5];
const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0];
const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1];
const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2];
const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3];
const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4];
const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5];
const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4];
const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5];
int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;
int8_t* bnProcBuf = p_procBuf->bnProcBuf; int8_t* bnProcBuf = p_procBuf->bnProcBuf;
const uint32_t* p_lut_cn2bn;
int8_t* p_cnProcBufRes; int8_t* p_cnProcBufRes;
uint32_t bitOffsetInGroup; uint32_t bitOffsetInGroup;
uint32_t i; uint32_t i;
uint32_t j; uint32_t j;
uint32_t M; uint32_t idxBn = 0;
// ===================================================================== // =====================================================================
// CN group with 3 BNs // CN group with 3 BNs
p_lut_cn2bn = &lut_cn2bnProcBuf[0];
M = lut_numCnInCnGroups[0]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX;
for (j=0; j<3; j++) for (j=0; j<3; j++)
{ {
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup]; p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup];
for (i=0; i<M; i++) for (i=0; i<lut_numCnInCnGroups[0]; i++)
{ {
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; idxBn = lut_startAddrBnProcBuf_CNG3[j][i] + lut_bnPosBnProcBuf_CNG3[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[lut_startAddrBnProcBuf_CNG3[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][i]);
p_cnProcBufRes += Z;
} }
} }
// ===================================================================== // =====================================================================
// CN group with 4 BNs // CN group with 4 BNs
p_lut_cn2bn += (M*3); // Number of elements of previous group
M = lut_numCnInCnGroups[1]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX;
for (j=0; j<4; j++) for (j=0; j<4; j++)
{ {
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup]; p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup];
for (i=0; i<M; i++) for (i=0; i<lut_numCnInCnGroups[1]; i++)
{ {
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; idxBn = lut_startAddrBnProcBuf_CNG4[j][i] + lut_bnPosBnProcBuf_CNG4[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG4[j][i]);
p_cnProcBufRes += Z;
} }
} }
// ===================================================================== // =====================================================================
// CN group with 5 BNs // CN group with 5 BNs
p_lut_cn2bn += (M*4); // Number of elements of previous group
M = lut_numCnInCnGroups[2]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX;
for (j=0; j<5; j++) for (j=0; j<5; j++)
{ {
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[2] + j*bitOffsetInGroup]; p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
for (i=0; i<M; i++) for (i=0; i<lut_numCnInCnGroups[2]; i++)
{ {
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; idxBn = lut_startAddrBnProcBuf_CNG5[j][i] + lut_bnPosBnProcBuf_CNG5[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG5[j][i]);
p_cnProcBufRes += Z;
} }
} }
// ===================================================================== // =====================================================================
// CN group with 6 BNs // CN group with 6 BNs
p_lut_cn2bn += (M*5); // Number of elements of previous group
M = lut_numCnInCnGroups[3]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX;
for (j=0; j<6; j++) for (j=0; j<6; j++)
{ {
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[3] + j*bitOffsetInGroup]; p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[3] + j*bitOffsetInGroup];
for (i=0; i<M; i++) for (i=0; i<lut_numCnInCnGroups[3]; i++)
{ {
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; idxBn = lut_startAddrBnProcBuf_CNG6[j][i] + lut_bnPosBnProcBuf_CNG6[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG6[j][i]);
p_cnProcBufRes += Z;
} }
} }
// ===================================================================== // =====================================================================
// CN group with 8 BNs // CN group with 8 BNs
p_lut_cn2bn += (M*6); // Number of elements of previous group
M = lut_numCnInCnGroups[4]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX;
for (j=0; j<8; j++) for (j=0; j<8; j++)
{ {
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[4] + j*bitOffsetInGroup]; p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
for (i=0; i<M; i++) for (i=0; i<lut_numCnInCnGroups[4]; i++)
{ {
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; idxBn = lut_startAddrBnProcBuf_CNG8[j][i] + lut_bnPosBnProcBuf_CNG8[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG8[j][i]);
p_cnProcBufRes += Z;
} }
} }
// ===================================================================== // =====================================================================
// CN group with 10 BNs // CN group with 10 BNs
p_lut_cn2bn += (M*8); // Number of elements of previous group
M = lut_numCnInCnGroups[5]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX;
for (j=0; j<10; j++) for (j=0; j<10; j++)
{ {
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[5] + j*bitOffsetInGroup]; p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[5] + j*bitOffsetInGroup];
for (i=0; i<M; i++) for (i=0; i<lut_numCnInCnGroups[5]; i++)
{ {
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i]; idxBn = lut_startAddrBnProcBuf_CNG10[j][i] + lut_bnPosBnProcBuf_CNG10[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG10[j][i]);
p_cnProcBufRes += Z;
} }
} }
} }
/** /**
...@@ -440,7 +593,6 @@ static inline void nrLDPC_cn2bnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_ ...@@ -440,7 +593,6 @@ static inline void nrLDPC_cn2bnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_
*/ */
static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{ {
//const uint32_t* lut_cn2bnProcBuf = p_lut->cn2bnProcBuf;
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
...@@ -464,7 +616,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -464,7 +616,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7];
const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8];
//const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
...@@ -477,19 +628,15 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -477,19 +628,15 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
int8_t* cnProcBufRes = p_procBuf->cnProcBufRes; int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;
int8_t* bnProcBuf = p_procBuf->bnProcBuf; int8_t* bnProcBuf = p_procBuf->bnProcBuf;
//const uint32_t* p_lut_cn2bn;
int8_t* p_cnProcBufRes; int8_t* p_cnProcBufRes;
uint32_t bitOffsetInGroup; uint32_t bitOffsetInGroup;
uint32_t i; uint32_t i;
uint32_t j; uint32_t j;
//uint32_t M;
uint32_t idxBn = 0; uint32_t idxBn = 0;
// ===================================================================== // =====================================================================
// CN group with 3 BNs // CN group with 3 BNs
//p_lut_cn2bn = &lut_cn2bnProcBuf[0];
//M = lut_numCnInCnGroups[0]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX;
for (j=0; j<3; j++) for (j=0; j<3; j++)
...@@ -502,8 +649,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -502,8 +649,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 4 BNs // CN group with 4 BNs
//p_lut_cn2bn += (M*3); // Number of elements of previous group
//M = lut_numCnInCnGroups[1]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX;
for (j=0; j<4; j++) for (j=0; j<4; j++)
...@@ -521,8 +666,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -521,8 +666,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 5 BNs // CN group with 5 BNs
//p_lut_cn2bn += (M*4); // Number of elements of previous group
//M = lut_numCnInCnGroups[2]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX;
for (j=0; j<5; j++) for (j=0; j<5; j++)
...@@ -540,8 +683,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -540,8 +683,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 6 BNs // CN group with 6 BNs
//p_lut_cn2bn += (M*5); // Number of elements of previous group
//M = lut_numCnInCnGroups[3]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX;
for (j=0; j<6; j++) for (j=0; j<6; j++)
...@@ -559,8 +700,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -559,8 +700,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 7 BNs // CN group with 7 BNs
//p_lut_cn2bn += (M*6); // Number of elements of previous group
//M = lut_numCnInCnGroups[4]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX;
for (j=0; j<7; j++) for (j=0; j<7; j++)
...@@ -578,8 +717,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -578,8 +717,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 8 BNs // CN group with 8 BNs
//p_lut_cn2bn += (M*7); // Number of elements of previous group
//M = lut_numCnInCnGroups[5]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX;
for (j=0; j<8; j++) for (j=0; j<8; j++)
...@@ -597,8 +734,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -597,8 +734,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 9 BNs // CN group with 9 BNs
//p_lut_cn2bn += (M*8); // Number of elements of previous group
//M = lut_numCnInCnGroups[6]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX;
for (j=0; j<9; j++) for (j=0; j<9; j++)
...@@ -616,8 +751,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -616,8 +751,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 10 BNs // CN group with 10 BNs
//p_lut_cn2bn += (M*9); // Number of elements of previous group
//M = lut_numCnInCnGroups[7]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX;
for (j=0; j<10; j++) for (j=0; j<10; j++)
...@@ -635,8 +768,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -635,8 +768,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 19 BNs // CN group with 19 BNs
//p_lut_cn2bn += (M*10); // Number of elements of previous group
//M = lut_numCnInCnGroups[8]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX;
for (j=0; j<19; j++) for (j=0; j<19; j++)
...@@ -781,6 +912,147 @@ static inline void nrLDPC_bn2cnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_ ...@@ -781,6 +912,147 @@ static inline void nrLDPC_bn2cnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_
} }
static inline void nrLDPC_bn2cnProcBuf_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1];
const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2];
const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3];
const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4];
const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5];
const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0];
const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1];
const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2];
const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3];
const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4];
const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5];
const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4];
const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5];
int8_t* cnProcBuf = p_procBuf->cnProcBuf;
int8_t* bnProcBufRes = p_procBuf->bnProcBufRes;
int8_t* p_cnProcBuf;
uint32_t bitOffsetInGroup;
uint32_t i;
uint32_t j;
uint32_t idxBn = 0;
// For CN groups 3 to 6 no need to send the last BN back since it's single edge
// and BN processing does not change the value already in the CN proc buf
// =====================================================================
// CN group with 3 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX;
for (j=0; j<2; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[0]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG3[j][i] + lut_bnPosBnProcBuf_CNG3[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[lut_startAddrBnProcBuf_CNG3[j][i]], Z, lut_circShift_CNG3[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 4 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX;
for (j=0; j<3; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[1]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG4[j][i] + lut_bnPosBnProcBuf_CNG4[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG4[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 5 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX;
for (j=0; j<4; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[2]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG5[j][i] + lut_bnPosBnProcBuf_CNG5[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG5[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 6 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX;
for (j=0; j<5; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[3] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[3]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG6[j][i] + lut_bnPosBnProcBuf_CNG6[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG6[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 8 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX;
for (j=0; j<8; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[4]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG8[j][i] + lut_bnPosBnProcBuf_CNG8[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG8[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 10 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX;
for (j=0; j<10; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[5] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[5]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG10[j][i] + lut_bnPosBnProcBuf_CNG10[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG10[j][i]);
p_cnProcBuf += Z;
}
}
}
/** /**
\brief Copies the values in the BN processing results buffer to their corresponding place in the CN processing buffer for BG1. \brief Copies the values in the BN processing results buffer to their corresponding place in the CN processing buffer for BG1.
\param p_lut Pointer to decoder LUTs \param p_lut Pointer to decoder LUTs
...@@ -788,7 +1060,6 @@ static inline void nrLDPC_bn2cnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_ ...@@ -788,7 +1060,6 @@ static inline void nrLDPC_bn2cnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_
*/ */
static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z) static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{ {
// const uint32_t* lut_cn2bnProcBuf = p_lut->cn2bnProcBuf;
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups; const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups; const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
...@@ -812,7 +1083,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -812,7 +1083,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7]; const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7];
const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8]; const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8];
// const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1]; const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2]; const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3]; const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
...@@ -826,11 +1096,9 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -826,11 +1096,9 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
int8_t* bnProcBufRes = p_procBuf->bnProcBufRes; int8_t* bnProcBufRes = p_procBuf->bnProcBufRes;
int8_t* p_cnProcBuf; int8_t* p_cnProcBuf;
// const uint32_t* p_lut_cn2bn;
uint32_t bitOffsetInGroup; uint32_t bitOffsetInGroup;
uint32_t i; uint32_t i;
uint32_t j; uint32_t j;
// uint32_t M;
uint32_t idxBn = 0; uint32_t idxBn = 0;
// For CN groups 3 to 19 no need to send the last BN back since it's single edge // For CN groups 3 to 19 no need to send the last BN back since it's single edge
...@@ -839,8 +1107,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -839,8 +1107,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 3 BNs // CN group with 3 BNs
// p_lut_cn2bn = &lut_cn2bnProcBuf[0];
// M = lut_numCnInCnGroups[0]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX;
for (j=0; j<2; j++) for (j=0; j<2; j++)
...@@ -853,8 +1119,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -853,8 +1119,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 4 BNs // CN group with 4 BNs
//p_lut_cn2bn += (M*3); // Number of elements of previous group
//M = lut_numCnInCnGroups[1]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX;
for (j=0; j<3; j++) for (j=0; j<3; j++)
...@@ -872,8 +1136,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -872,8 +1136,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 5 BNs // CN group with 5 BNs
//p_lut_cn2bn += (M*4); // Number of elements of previous group
//M = lut_numCnInCnGroups[2]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX;
for (j=0; j<4; j++) for (j=0; j<4; j++)
...@@ -886,14 +1148,11 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -886,14 +1148,11 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG5[j][i]); nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG5[j][i]);
p_cnProcBuf += Z; p_cnProcBuf += Z;
} }
} }
// ===================================================================== // =====================================================================
// CN group with 6 BNs // CN group with 6 BNs
//p_lut_cn2bn += (M*5); // Number of elements of previous group
//M = lut_numCnInCnGroups[3]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX;
for (j=0; j<5; j++) for (j=0; j<5; j++)
...@@ -911,8 +1170,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -911,8 +1170,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 7 BNs // CN group with 7 BNs
//p_lut_cn2bn += (M*6); // Number of elements of previous group
//M = lut_numCnInCnGroups[4]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX;
for (j=0; j<6; j++) for (j=0; j<6; j++)
...@@ -930,8 +1187,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -930,8 +1187,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 8 BNs // CN group with 8 BNs
//p_lut_cn2bn += (M*7); // Number of elements of previous group
//M = lut_numCnInCnGroups[5]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX;
for (j=0; j<7; j++) for (j=0; j<7; j++)
...@@ -949,8 +1204,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -949,8 +1204,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 9 BNs // CN group with 9 BNs
//p_lut_cn2bn += (M*8); // Number of elements of previous group
//M = lut_numCnInCnGroups[6]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX;
for (j=0; j<8; j++) for (j=0; j<8; j++)
...@@ -968,8 +1221,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -968,8 +1221,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 10 BNs // CN group with 10 BNs
//p_lut_cn2bn += (M*9); // Number of elements of previous group
//M = lut_numCnInCnGroups[7]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX;
for (j=0; j<9; j++) for (j=0; j<9; j++)
...@@ -987,8 +1238,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf ...@@ -987,8 +1238,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// ===================================================================== // =====================================================================
// CN group with 19 BNs // CN group with 19 BNs
//p_lut_cn2bn += (M*10); // Number of elements of previous group
//M = lut_numCnInCnGroups[8]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX; bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX;
for (j=0; j<19; j++) for (j=0; j<19; j++)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment