Constrained-Energy Fourier Transforms: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
(Created #REDIRECT)
 
(move CEFT page to expanded page name, since it's an orphan at the mo anyway)
 
Line 1: Line 1:
#REDIRECT [[CEFT]]
=== 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.
 
Ideas:
* 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.
 
Ideas:
* 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.
 
Ideas:
* Use a "rotation matrix"
* Prediction from lower frequencies
 
[[Category:Opus]]

Latest revision as of 03:27, 26 August 2015

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.

Ideas:

  • 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.

Ideas:

  • 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.

Ideas:

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