Commit Graph

15 Commits

Author SHA1 Message Date
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
Oliver Jowett 0306c7edfd Update .gitignore for new binaries 2019-05-02 17:31:08 +08:00
Oliver Jowett ebd066d883 wheezy packaging and initscript 2016-07-11 18:49:52 +01:00
Oliver Jowett 99dd290352 Rebuild a basic faup1090 using the reworked network services bits.
This is a from-scratch reimplementation that should be functionally
equivalent to the Flightaware version that was based on dump1090_mr
and had its fingers deep in the network code. This version should be
a little less invasive / fragile..
2015-06-26 17:54:23 +01:00
Jon Burgess b246bdcab4 Add view1090 to gitignore 2015-02-07 23:25:43 +00:00
terribl f53632b00d Merge branch 'mapRefactor' into masterMerge
Conflicts:
	.gitignore
	public_html/gmap.html
	public_html/script.js

  All conflicts fixed but you are still merging.

	modified:   .gitignore
	modified:   dump1090.c
	new file:   public_html/config.js
	new file:   public_html/coolclock/coolclock.js
	new file:   public_html/coolclock/excanvas.js
	new file:   public_html/coolclock/moreskins.js
	new file:   public_html/extension.js
	modified:   public_html/gmap.html
	new file:   public_html/options.js
	new file:   public_html/planeObject.js
	modified:   public_html/script.js
	modified:   public_html/style.css
2013-06-03 10:53:17 +03:00
terribl 9c465c174b Added untrackedDeveloperSettings to this branch too.
Load devel settings file after config.js and settings are saved for
developers even after merges.

	modified:   .gitignore
	modified:   public_html/config.js
	modified:   public_html/gmap.html
	modified:   public_html/script.js

Example file
--- untrackedDeveloperSettings.js ---
// Load this file after config.js so these settings are used

var CONST_CENTERLAT = 35.21928;
var CONST_CENTERLON = -80.94406;
var CONST_ZOOMLVL   = 9;
--- untrackedDeveloperSettings.js END ---
2013-05-25 11:56:32 +03:00
terribl 6bf2f2b54b Added global settings and untrackedDeveloperSettings.js-file.
untrackedDeveloperSettings.js
Create file and add line `var developerSettings = true;` on top of it.
After that some settings can be overwritten with deleloper's flavour.

-- Example File w/o line numbers --
var developerSettings = true;

var CONST_CENTERLAT = 60.0; // 45.0
var CONST_CENTERLON = 20.0; // 9.0
var CONST_ZOOMLVL   = 6; //5
-- End of Example File --

	modified:   .gitignore
	modified:   public_html/gmap.html
	modified:   public_html/script.js
2013-05-23 12:47:29 +03:00
terribl bf4ccaca06 bdavenports .diff-file 2013-05-11 13:15:09 +03:00
terribl f59e82aee9 fix .gitignore file 2013-05-10 12:58:24 +03:00
terribl 6968bf92a6 Splitted gmap.html to multiple files in new 'public_html'-directory.
Changes to 'dump1090.c'-file made accordingly.

	modified:   .gitignore
	modified:   dump1090.c
	deleted:    gmap.html
	new file:   public_html/gmap.html
	new file:   public_html/script.js
	new file:   public_html/style.css
2013-05-09 17:59:26 +03:00
antirez c2e79d4555 Many small improvements (see full commit message).
* Better preamble detection to skip most of the messages we'll likely
  not be able to decode.

* A Phase correction algorithm that improves the recognition compared
  to the previous algorithm used.

* Javascript output in debug mode, and a debug.html file that can be
  used in order to see graphically undecoded samples.

* Ability to detect cross-read messages, that are, messages that happen
  to start and end across two different reads from the device or file.

* A few bugx fixed.

* README improved.
2013-01-26 01:08:13 +01:00
antirez 9c8ad1c6b7 More stuff on .gitignore. 2013-01-10 19:00:07 +01:00
antirez 3833673f3f Git ignore the right executable name. 2013-01-05 21:42:26 +01:00
antirez 7ca5a4b3a4 Initial commit of Dump1090, a simple Mode S decoder. 2013-01-05 13:52:25 +01:00