Constrained-Energy Fourier Transforms

From XiphWiki
Jump to navigation Jump to search

Problems with current implementation and possible solutions

Overlapped FFT not critically sampled

In the current implementation, we encode 4/3 times more samples than necessary because we use 256-point FFTs with 64 samples overlap.


  • Use an MDCT instead of the FFT
  • Do extrapolation on the input and use a wider FFT. Then optimise the search only for the "real" samples

Non-harmonic signals (i.e. music)

CEFT only works on speech because most of its coding efficiency is provided by the pitch predictor.


  • Sinusoidal prediction
  • Use two (or more) pitch periods and choose one for each bin/band/whatever
  • Use two (or more) pitch periods at the same time and use energy conservation to keep everything stable.

Sparse spectrum

CEFT tends to have musical noise, especially at high frequency when there are very few bits/bin.


  • Use a "rotation matrix"
  • Prediction from lower frequencies