Hi everyone, I am opening this PR to propose some gammatone filterbank optimizations using matrix operations with the Eigen library.
The proposed changes have two parts:
replacing current linear algebra backend library (Armadillo) with Eigen,
using Eigen operations for a faster gammatone filterbank implementation.
The proposed changes show bigger runtime improvements for shorter input files, and from our measurements we can see approx. 1.5x faster runtime for a 15" input, up to 2x for a 3" input file.
If we also combine this improvement with --search_window_radius 0 and --disable_realignment (when reference and degraded have no inter-frame lag), we could get approx. 5x faster runtimes for a 15" input.
The changes in this PR are a bit lengthy so I am also opening PR #116 with only the first part that replaces Armadillo with Eigen to keep it more contained and make the review process a bit easier. I also opened https://github.com/terpste/visqol/pull/6 only for comparison purposes, to highlight only the gammatone filterbank additions.
Hi everyone, I am opening this PR to propose some gammatone filterbank optimizations using matrix operations with the Eigen library.
The proposed changes have two parts:
The proposed changes show bigger runtime improvements for shorter input files, and from our measurements we can see approx. 1.5x faster runtime for a 15" input, up to 2x for a 3" input file.
If we also combine this improvement with
--search_window_radius 0
and--disable_realignment
(when reference and degraded have no inter-frame lag), we could get approx. 5x faster runtimes for a 15" input.The changes in this PR are a bit lengthy so I am also opening PR #116 with only the first part that replaces Armadillo with Eigen to keep it more contained and make the review process a bit easier. I also opened https://github.com/terpste/visqol/pull/6 only for comparison purposes, to highlight only the gammatone filterbank additions.