[Libav-user] Histogram based implementation within EBU R128 scanner filter

rohit khali khali.rohit at gmail.com
Wed Nov 23 11:32:37 EET 2022


I was going through histogram based implementation to compute program
loudness in ffmpeg\libavfilter\ebur128.c. This implementation uses static
tables like "histogram_energy_boundaries[]" and "histogram_energies[]" in 3
main steps to compute gated loudness.


1. Using histogram_energy_boundaries[], loudness sum is first recorded into
"block_energy_histogram[]" in the form of an increment in the corresponding
energy index.

2. Relative threshold is computed using “block_energy_histogram[]" and

3. Finally , gated loudness is computed using "block_energy_histogram[]"
and "histogram_energies[]" as per computed "relative threshold".


At first look, it looks like an optimised implementation over conventional
implementation of storing and using loudness sums in a growing linked list
to compute gated loudness.

However, I am wondering if there is any reference documentation or a
summary which can help me to understand this implementation a bit more
associated drawbacks such as precision loss over conventional implementation


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20221123/31be81b0/attachment.htm>

More information about the Libav-user mailing list