Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 3/22/2024
Public
Document Table of Contents

Packed Formats

This section describes the main packed formats Perm, Pack, and CCS used by the Fourier transform functions.

Pack Format

The Pack format is a convenient, compact representation of a complex conjugate-symmetric sequence. The disadvantage of this format is that it is not the natural format used by the real Fourier transform algorithms (“natural” in the sense that bit-reversed order is natural for radix-2 complex Fourier transforms). In Pack format, the output samples of the Fourier transform are arranged as shown in the tables below. The output signal can be unpacked to a complex signal using the function ippsConjPack.

Perm Format

The Perm format stores the values in the order in which the Fourier transform algorithms use them. This is the most natural way of storing values for the Fourier transform algorithms. The Perm format is an arbitrary permutation of the Pack format. An important characteristic of the Perm format is that the real and imaginary parts of a given sample need not be adjacent.

In Perm format, the output samples of the Fourier transform are arranged as shown in the tables below. The output signal can be unpacked to a complex signal using the function ippsConjPerm.

NOTE:

For input signal of odd length the perm and pack format are identical.

CCS Format

The CCS format stores the values of the first half of the output complex signal resulted from the forward Fourier transform.

In CCS format, the output samples of the Fourier transform are arranged as shown in the tables below. Note that the signal stored in CCS format is one complex element longer. The output signal can be unpacked to a complex signal using the function ippsConjCcs.

Arrangement of Forward Fourier Transform Results in Packed Formats - Even Length
Index 0 1 2 3 . . . N-2 N-1 N N+1
Pack R0 R1 I1 R2 . . . I(N-1)/2 RN/2    
Perm R0 RN/2 R1 I1 . . . RN/2-1 IN/2-1    
CCS R0 0 R1 I1 . . . RN/2-1 IN/2-1 RN/2 0
Forward Fourier transform Result Representation in Packed Formats - Odd Length
Index 0 1 2 3 . . . N-2 N-1 N
Pack R0 R1 I1 R2 . . . R(N-1)/2 I(N-1)/2  
Perm R0 R1 I1 R2 . . . R(N-1)/2 I(N-1)/2  
CCS R0 0 R1 I1 . . . I(N-1)/2-1 R(N-1)/2 I(N-1)/2