dump1090-fa/debian
Oliver Jowett bff71dc820
Move all converters to starch-based implementations (#97)
* Switch all conversion routines to use starch.

main user-visible changes:

 * ensure you check out submodules ('git clone --recurse-submodules")
 * --version shows the CPU features and DSP implementations in use
 * --wisdom allows overriding of the built-in architecture wisdom
 * --dcfilter no longer supported
 * "starch-benchmark" binary will benchmark all options on the
   current machine and can produce a wisdom file to feed to
   the --wisdom option

If you have a usecase for --dcfilter, please get in touch and
let me know - it's an edge case and for now there's no starch/DSP
support for it, but support can be written if needed.

In almost all cases the new conversion routines are slightly or
substantially faster than the old conversion routines. The only case
that is slower is SC16/SC16Q11 on a Pi 0, which is around 10% slower
due to changing from heavily approximated lookup tables to higher
quality results (but SC16 is probably already out of reach of a Pi 0)

* No need to build with SC16Q11_TABLE_BITS any more

* Add oneoff/uc8_capture_stats

(reads a UC8 capture; measures min/max/mean I and Q)

* Switch UC8 conversion to 127.4 center, 128 range.

Looking at actual UC8 captures from a RTL2832, the mean I and Q
are actually at 127.4, so use that as the zero point.

This means that the resulting I/Q maximum values could be as large as
127.6. Switch to 128 for simplicity.

* Switch to the new UC8 zero offset in benchmarks, fix some bugs

* Fix some bugs in SC16/SC16Q11 validation, tighten the max error requirements

* Ditch UC8 approximation path, add a NEON VRQSQRTE path.

* Tweak the SC16 exact path, add a new impl that uses a mix of
u32 & floats.

* SC16Q11 impl tweaks:

 * add a u32->float exact path
 * ditch the approximation path
 * add a NEON VRSQRTE path
 * add a 12-bit table path (using the full signed I/Q value, not absolute value)

* Ditch SC16 approximation path, add NEON vrsqrte path

* Add oneoff/dsp_error_measurement

This runs sample input through the DSP functions that are
allowed to be inexact and dumps the results as a TSV suitable for
feeding to gnuplot to look at the actual errors.

* Update make clean, make wisdom targets

* Update wisdom based on benchmarking

* Preserve the raw wisdom benchmark data

* Update to latest starch

* Update .gitignore for new wisdom files

* Update starch generated code

* Build starch-benchmark as part of the 'all' target

* Use wisdom from /etc/dump1090-fa/wisdom.local if present

* Package starch-benchmark and a helper script to generate local wisdom data

* Remove submodules in preparation for importing them directly

* Import cpu_features v0.6.0 from https://github.com/google/cpu_features/releases/tag/v0.6.0

* Import starch at commit a725c8491dc33a321565d451b385131e589d8490
from https://github.com/flightaware/starch
2021-01-21 19:45:00 +08:00
..
lighttpd Merge pull request #74 from ianrenton/master 2020-08-02 22:48:09 -05:00
source Initial work on raspbian packaging. 2014-12-05 20:18:57 +00:00
README.librtlsdr Static link against librtlsdr. 2016-02-29 14:20:34 +00:00
changelog 4.1~dev for the dev branch 2020-10-01 13:46:22 +08:00
compat Start trimming dump1090-mutability down for use in piaware. 2016-01-13 00:00:08 +00:00
control Add support for custom builds that don't include all SDRs, to 2020-08-06 14:06:20 +08:00
copyright wheezy packaging and initscript 2016-07-11 18:49:52 +01:00
dump1090-fa.default Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
dump1090-fa.docs Static link against librtlsdr. 2016-02-29 14:20:34 +00:00
dump1090-fa.install Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
dump1090-fa.postinst Add an ENABLED line to /etc/default/dump1090-fa on upgrade if missing 2019-03-12 11:39:05 +00:00
dump1090-fa.postrm Try to avoid conflicting with other lighttpd config that 2016-09-22 16:45:28 +01:00
dump1090-fa.service Set SyslogIdentifier on dump1090-fa 2019-03-11 18:21:31 +00:00
generate-wisdom Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
rules Move all converters to starch-based implementations (#97) 2021-01-21 19:45:00 +08:00
start-dump1090-fa Fix getting LAT/LON from piaware .env file 2019-03-29 20:55:47 +01:00

README.librtlsdr

This package includes binaries that are statically linked against librtlsdr,
which is licensed under the GPL:

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

The upstream source is available at https://github.com/steve-m/librtlsdr