Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

RS Decoder

hesperus
Beginner
463 Views
Does anyone have sample code for IPP's RS Decoder functions?

I am confuse of how to use the RSDecodeBM_8u and RSDecodeEE_8u, what are the pErasesureList and erasureListLength used for?
0 Kudos
5 Replies
Vladimir_Dudnik
Employee
463 Views
Did not you have a chance to look at IPP documentation (volume 1, signal processingmanual) ?

RSDecodeBM, RSDecodeEE

Performs the RS decoding operation.

Syntax

IppStatus ippsRSDecodeBM_8u(const int* pErasureList, int erasureListLength, Ipp8u* pCodeWord, const IppsRSDecodeSpec_8u* pRS, Ipp8u* pBuffer);

IppStatus ippsRSDecodeEE_8u(const int* pErasureList, int erasureListLength, Ipp8u* pCodeWord, const IppsRSDecodeSpec_8u* pRS, Ipp8u* pBuffer);

Parameters

pErasureList Pointer to the array with the list of erasure locations.
erasureListLengt h Length of the list of erasure locations.
pCodeWord Pointer to the codeword to be decoded.
pRS pBufferPointer to the work buffer.
pBuffer Pointer to the RS decoder context.

Description

This function is declared in the ippdi.h file. The function performs RS decoding defined by the
context pRS for the systematic code in the given codeword and stores the result back at the
address of pCodeWord. The RS decoders ippsRSDecodeBM and ippsRSDecodeEE implement
the Berlekamp-Massey (BM) and Extended Euclidean (EE) decoding algorithms, respectively.
The work buffer pointed by pBuffer must have size not less than the respective function
ippsRSDecodeBMGetBufferSize or ippsRSDecodeEEGetBufferSize returns.

Return Values

ippStsNoErr Indicates no error. Any other value indicates an error or warning.
Indicates an error condition if any of the specified pointers is NULL.
ippStsNullPtrErr Indicates an error condition if the context pointed by pRS is not valid.

ippStsContextMatchErr Indicates an error condition if any element of the array poined by pErasureList is not valid, that is, negative or exceeding the codeLength value specified in the context.

Pointer to the array with the list of erasure locations.

Regards,
Vladimir
0 Kudos
hesperus
Beginner
463 Views
Quoting - Vladimir Dudnik
Hi, Thanks for reply, I have checked the document, however, it did not tell how to use the initialize function, there seems to be some work to be done before I can use the Decode function, like init GF, init DecodeSpec, and some create buffer work. I don't know what sequence should I do these things.

After doing some search, I know what Erasure means to RS decode, however, can we use these functions without ErasureList? When I trying to pass NULL and 0 for the first parameter, the return value is ippStsSizeErr.

Is there anywhere I can find more detailed document?

Thanks.

Did not you have a chance to look at IPP documentation (volume 1, signal processingmanual) ?

RSDecodeBM, RSDecodeEE

Performs the RS decoding operation.

Syntax

IppStatus ippsRSDecodeBM_8u(const int* pErasureList, int erasureListLength, Ipp8u* pCodeWord, const IppsRSDecodeSpec_8u* pRS, Ipp8u* pBuffer);

IppStatus ippsRSDecodeEE_8u(const int* pErasureList, int erasureListLength, Ipp8u* pCodeWord, const IppsRSDecodeSpec_8u* pRS, Ipp8u* pBuffer);

Parameters

pErasureList Pointer to the array with the list of erasure locations.
erasureListLengt h Length of the list of erasure locations.
pCodeWord Pointer to the codeword to be decoded.
pRS pBufferPointer to the work buffer.
pBuffer Pointer to the RS decoder context.

Description

This function is declared in the ippdi.h file. The function performs RS decoding defined by the
context pRS for the systematic code in the given codeword and stores the result back at the
address of pCodeWord. The RS decoders ippsRSDecodeBM and ippsRSDecodeEE implement
the Berlekamp-Massey (BM) and Extended Euclidean (EE) decoding algorithms, respectively.
The work buffer pointed by pBuffer must have size not less than the respective function
ippsRSDecodeBMGetBufferSize or ippsRSDecodeEEGetBufferSize returns.

Return Values

ippStsNoErr Indicates no error. Any other value indicates an error or warning.
Indicates an error condition if any of the specified pointers is NULL.
ippStsNullPtrErr Indicates an error condition if the context pointed by pRS is not valid.

ippStsContextMatchErr Indicates an error condition if any element of the array poined by pErasureList is not valid, that is, negative or exceeding the codeLength value specified in the context.

Pointer to the array with the list of erasure locations.

Regards,
Vladimir

0 Kudos
Emmanuel_W_
New Contributor I
463 Views
Hi Vladimir,

It might be a good idea to include a sample in the future on how to use the RS functions. The usage is not straightforward from the documentation.

Emmanuel
0 Kudos
turks
Beginner
463 Views
Quoting - hesperus
Does anyone have sample code for IPP's RS Decoder functions?

I am confuse of how to use the RSDecodeBM_8u and RSDecodeEE_8u, what are the pErasesureList and erasureListLength used for?

0 Kudos
hesperus
Beginner
463 Views
Quoting - turks


Hi turks,

Do you have any suggestion? You can contact me at mountainyu@gmail.com

Thanks!
0 Kudos
Reply