o-du/phy
Intel O-RAN/X-RAN Generated Doxygen Documentation
Data Structures | Functions
BlockFloatCompander Namespace Reference

Data Structures

struct  CompressedData
 
struct  ExpandedData
 

Functions

void BlockFloatCompress_Basic (const ExpandedData &dataIn, CompressedData *dataOut)
 Reference compression. More...
 
void BlockFloatCompress_8b_AVX512 (const ExpandedData &dataIn, CompressedData *dataOut)
 8 bit compression More...
 
void BlockFloatCompress_9b_AVX512 (const ExpandedData &dataIn, CompressedData *dataOut)
 9 bit compression More...
 
void BlockFloatCompress_10b_AVX512 (const ExpandedData &dataIn, CompressedData *dataOut)
 10 bit compression More...
 
void BlockFloatCompress_12b_AVX512 (const ExpandedData &dataIn, CompressedData *dataOut)
 12 bit compression More...
 
void BlockFloatExpand_Basic (const CompressedData &dataIn, ExpandedData *dataOut)
 Reference expansion. More...
 
void BlockFloatExpand_8b_AVX512 (const CompressedData &dataIn, ExpandedData *dataOut)
 8 bit expansion More...
 
void BlockFloatExpand_9b_AVX512 (const CompressedData &dataIn, ExpandedData *dataOut)
 9 bit expansion More...
 
void BlockFloatExpand_10b_AVX512 (const CompressedData &dataIn, ExpandedData *dataOut)
 10 bit expansion More...
 
void BlockFloatExpand_12b_AVX512 (const CompressedData &dataIn, ExpandedData *dataOut)
 12 bit expansion More...
 

Detailed Description

Intel compiler frequently complains about templates not being declared in an external header. Templates are used throughout this project's source files to define local type-specific versions of functions. Defining every one of these in a header is unnecessary, so the warnings about this are turned off globally.

Function Documentation

◆ BlockFloatCompress_10b_AVX512()

void BlockFloatCompress_10b_AVX512 ( const ExpandedData dataIn,
CompressedData dataOut 
)

10 bit compression

Compute exponent and store for later use

Shift 1RB by corresponding exponent and write exponent and data to output Output data is packed exponent first followed by corresponding compressed RB

Apply exponent shift

Pack compressed data network byte order

Store exponent first

Now have 1 RB worth of bytes separated into 3 chunks (1 per lane) Use three offset stores to join

Definition at line 395 of file xran_compression.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BlockFloatCompress_12b_AVX512()

void BlockFloatCompress_12b_AVX512 ( const ExpandedData dataIn,
CompressedData dataOut 
)

12 bit compression

Compute exponent and store for later use

Shift 1RB by corresponding exponent and write exponent and data to output Output data is packed exponent first followed by corresponding compressed RB

Apply exponent shift

Pack compressed data network byte order

Store exponent first

Now have 1 RB worth of bytes separated into 3 chunks (1 per lane) Use three offset stores to join

Definition at line 431 of file xran_compression.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BlockFloatCompress_8b_AVX512()

void BlockFloatCompress_8b_AVX512 ( const ExpandedData dataIn,
CompressedData dataOut 
)

8 bit compression

Compute exponent and store for later use

Shift 1RB by corresponding exponent and write exponent and data to output

Store exponent first

Store compressed RB

Definition at line 335 of file xran_compression.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BlockFloatCompress_9b_AVX512()

void BlockFloatCompress_9b_AVX512 ( const ExpandedData dataIn,
CompressedData dataOut 
)

9 bit compression

Compute exponent and store for later use

Shift 1RB by corresponding exponent and write exponent and data to output Output data is packed exponent first followed by corresponding compressed RB

Apply exponent shift

Pack compressed data network byte order

Store exponent first

Now have 1 RB worth of bytes separated into 3 chunks (1 per lane) Use three offset stores to join

Definition at line 359 of file xran_compression.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BlockFloatCompress_Basic()

void BlockFloatCompress_Basic ( const ExpandedData dataIn,
CompressedData dataOut 
)

Reference compression.

Find max abs value for this RB

ARS data by exponent and pack bytes in Network order This uses a sliding buffer where one or more bytes are extracted after the insertion of each compressed sample

Definition at line 558 of file xran_compression.cpp.

Here is the caller graph for this function:

◆ BlockFloatExpand_10b_AVX512()

void BlockFloatExpand_10b_AVX512 ( const CompressedData dataIn,
ExpandedData dataOut 
)

10 bit expansion

Unpack network order packed data

Apply exponent scaling (by appropriate arithmetic shift right)

Write expanded data to output

Definition at line 510 of file xran_compression.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BlockFloatExpand_12b_AVX512()

void BlockFloatExpand_12b_AVX512 ( const CompressedData dataIn,
ExpandedData dataOut 
)

12 bit expansion

Unpack network order packed data

Apply exponent scaling (by appropriate arithmetic shift right)

Write expanded data to output

Definition at line 534 of file xran_compression.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BlockFloatExpand_8b_AVX512()

void BlockFloatExpand_8b_AVX512 ( const CompressedData dataIn,
ExpandedData dataOut 
)

8 bit expansion

Expand 1RB of data

Write expanded data to output

Definition at line 467 of file xran_compression.cpp.

Here is the caller graph for this function:

◆ BlockFloatExpand_9b_AVX512()

void BlockFloatExpand_9b_AVX512 ( const CompressedData dataIn,
ExpandedData dataOut 
)

9 bit expansion

Unpack network order packed data

Apply exponent scaling (by appropriate arithmetic shift right)

Write expanded data to output

Definition at line 486 of file xran_compression.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BlockFloatExpand_Basic()

void BlockFloatExpand_Basic ( const CompressedData dataIn,
ExpandedData dataOut 
)

Reference expansion.

byteBuffer currently has enough data in it to extract a sample Shift left first to set sign bit at MSB, then shift right to sign extend down to iqWidth. Finally recast to int16.

Definition at line 605 of file xran_compression.cpp.

Here is the caller graph for this function: