Towards Fixed-Point Formats Determination for Faust Programs
Agathe Herrou, Florent de Dinechin, Stéphane Letz, Yann Orlarey, Anastasia Volkova
TL;DR
The paper addresses the challenge of replacing floating-point with fixed-point representations in Faust-compiled audio pipelines, particularly for FPGA targets, by developing automatic fixed-point format inference. It introduces a range-and-accuracy based framework, including the notion of pseudo-injectivity, and integrates it into the Faust compiler to propagate ranges and precisions through a signal graph, emitting fixed-point casts in generated code. The approach is demonstrated on sinewave and Karplus-Strong examples, showing that audio quality can be preserved while inferring fixed-point formats, though the method can yield wider-than-necessary bitwidths, indicating room for optimization. The work advances practical fixed-point deployment for audio on configurable hardware, enabling more resource-efficient implementations while maintaining acceptable fidelity, and outlines concrete avenues for further refinement such as backward propagation and interval-based error modeling.
Abstract
Modern programmable digital signal processing relies on floating-point numbers for their ease of use. Fixed-point number formats have the potential to save resources and improve execution time, but realising this potential burdens the programmer with the need to define each format, at every step of the computation. This article reviews existing methods to automatically determine fixed-point formats, then describes and evaluates the prototype implementation of automatic fixed-point format determination in the Faust compiler.
