# WTInvSetDlyLine, WTInvGetDlyLine

Sets and gets the delay lines of the inverse wavelet transform.

## Syntax

IppStatus ippsWTInvSetDlyLine_32f(IppsWTInvState_32f* pState, const Ipp32f* pDlyLow, const Ipp32f* pDlyHigh);

IppStatus ippsWTInvSetDlyLine_32f8u(IppsWTInvState_32f8u* pState, const Ipp32f* pDlyLow, const Ipp32f* pDlyHigh);

IppStatus ippsWTInvSetDlyLine_32f16s(IppsWTInvState_32f16s* pState, const Ipp32f* pDlyLow, const Ipp32f* pDlyHigh);

IppStatus ippsWTInvSetDlyLine_32f16u(IppsWTInvState_32f16u* pState, const Ipp32f* pDlyLow, const Ipp32f* pDlyHigh);

IppStatus ippsWTInvGetDlyLine_32f(IppsWTInvState_32f* pState, Ipp32f* pDlyLow, Ipp32f* pDlyHigh);

IppStatus ippsWTInvGetDlyLine_32f8u(IppsWTInvState_32f8u* pState, Ipp32f* pDlyLow, Ipp32f* pDlyHigh);

IppStatus ippsWTInvGetDlyLine_32f16s(IppsWTInvState_32f16s* pState, Ipp32f* pDlyLow, Ipp32f* pDlyHigh);

IppStatus ippsWTInvGetDlyLine_32f16u(IppsWTInvState_32f16u* pState, Ipp32f* pDlyLow, Ipp32f* pDlyHigh);

## Include Files

ipps.h

## Domain Dependencies

Headers: ippcore.h, ippvm.h

Libraries: ippcore.lib, ippvm.lib

## Parameters

pState |
Pointer to the state structure. |

pDlyLow |
Pointer to the vector which holds delay lines for “low frequency” components. |

pDlyHigh |
Pointer to the vector which holds delay lines for “high frequency” components. |

## Description

These functions copy the delay line values from pDlyHigh and pDlyLow, and store them into the state structure pState.

**ippsWTInvSetDlyLine**. This function sets the delay line values of the inverse WT state.

**ippsWTInvGetDlyLine**. This function gets the delay line values of the inverse WT state.

## Application Notes

These functions set and read delay lines of inverse multiscale transformation. The functions receive or return filter low and high frequency component delay line vectors. The functions may be used to shape previous history of each of the components. Installation functions and read functions together ensure that delay lines from each filter are saved and reconstructed.

**Delay line data format.** Despite that any delay line formats could be used inside transformations, the functions provide the simplest format of received and returned vectors. Data either transferred to or returned from the delay lines have the same format as the low and high frequency components at the input of the inverse transform functions. Thus, delay line vectors must be made up of a succession of signal prehistory counts in the same time frame as the input components.

**Delay line lengths.** The length of the vectors that are transferred to or received by the delay line installation or reading functions is uniquely defined by the filter length and the value of additional filter delay.

The following expression defines the length of the delay line vector of the “low frequency” component filter in terms of the C language (integer division by two is used here for simplicity):

`dlyLowLen = (lenLow + offsLow - 1) / 2`,

where lenLow and offsLow are respectively the length and additional delay of the “low frequency” component filter.

The following expression defines the length of the delay line vector of the “high frequency” component filter in terms of the C language:

`dlyHighLen = (lenHigh + offsHigh - 1) / 2`,

where lenHigh and offsHigh are respectively the length and additional delay of the “high frequency” component filter.

The lenLow, offsLow, lenHigh, and offsHigh parameters are specified by the function ippsWTInvInit.

## Return Values

ippStsNoErr |
Indicates no error. |

ippStsNullPtrErr |
Indicates an error when pDlyLow or pDlyHigh is NULL. |

ippStsStateMatchErr |
Indicates an error when the state identifier pState is incorrect. |

**Parent topic:**Transforms for User Filter Banks