Ganesh Ajjanagadde
bd9c58756a
lavc/aacenc_utils: replace sqrtf(Q*sqrtf(Q)) by precomputed value
...
It makes no sense whatsoever to do this at each function call; we
already have a table for this.
Yields a 2x improvement in find_min_book (x86-64, Haswell+GCC):
ffmpeg -i sin.flac -acodec aac -y sin.aac
find_min_book
old
605 decicycles in find_min_book, 8388453 runs, 155 skips.9x
606 decicycles in find_min_book,16776912 runs, 304 skips.9x
607 decicycles in find_min_book,33553819 runs, 613 skips.2x
607 decicycles in find_min_book,67107668 runs, 1196 skips.3x
607 decicycles in find_min_book,134215360 runs, 2368 skips3x
new
359 decicycles in find_min_book, 8388552 runs, 56 skips.3x
360 decicycles in find_min_book,16777112 runs, 104 skips.1x
361 decicycles in find_min_book,33554218 runs, 214 skips.4x
361 decicycles in find_min_book,67108381 runs, 483 skips.5x
361 decicycles in find_min_book,134216725 runs, 1003 skips5x
and more importantly a non-negligible speedup (~ 8%) to overall AAC encoding:
old:
ffmpeg -i sin.flac -acodec aac -strict -2 -y sin_new.aac 6.82s user 0.03s system 104% cpu 6.565 total
new:
ffmpeg -i sin.flac -acodec aac -strict -2 -y sin_old.aac 6.24s user 0.03s system 104% cpu 5.993 total
This also improves accuracy of the expression by ~ 2 ulp in some cases.
Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanag@gmail.com>
2016-03-01 22:57:44 -05:00
..
2016-01-31 17:09:38 +01:00
2016-02-24 18:21:38 +00:00
2016-01-31 15:44:11 -08:00
2016-02-24 18:21:38 +00:00
2016-02-29 08:46:53 -08:00
2016-02-24 17:31:44 +00:00
2016-02-27 16:31:46 -06:00
2016-03-01 22:57:44 -05:00
2016-02-13 12:23:22 +00:00
2016-01-31 15:44:11 -08:00
2016-01-31 15:44:11 -08:00
2016-01-31 15:44:11 -08:00
2016-01-31 15:44:11 -08:00
2016-02-24 17:31:44 +00:00
2016-01-31 13:29:04 +00:00
2016-02-13 14:42:38 +01:00
2016-02-24 17:31:44 +00:00
2016-02-26 21:49:34 +01:00
2016-02-26 21:49:34 +01:00
2016-02-26 21:53:32 +01:00
2016-02-26 21:49:34 +01:00
2016-02-26 21:49:34 +01:00
2016-02-26 21:53:34 +01:00
2016-01-27 16:36:46 +00:00
2016-01-22 19:26:41 +05:30
2016-02-26 21:53:34 +01:00
2016-02-25 00:18:12 +01:00
2016-01-31 15:44:11 -08:00
2016-02-24 17:31:44 +00:00
2016-02-24 17:31:44 +00:00
2016-02-24 17:31:44 +00:00
2016-02-26 21:53:32 +01:00
2016-02-19 10:45:54 +01:00
2016-02-27 13:17:20 +00:00
2016-02-27 12:18:06 +00:00
2016-01-30 17:44:13 +00:00
2016-02-02 18:06:13 -08:00
2016-01-30 17:44:13 +00:00
2016-02-02 23:27:30 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-02-04 12:16:19 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-02-06 01:36:55 -03:00
2016-02-06 01:36:55 -03:00
2016-01-25 17:10:49 +01:00
2016-01-31 17:09:38 +01:00
2016-02-07 09:09:13 -08:00
2016-02-07 09:09:13 -08:00
2016-02-07 09:09:13 -08:00
2016-02-09 14:59:36 +01:00
2016-02-03 17:19:30 +00:00
2016-02-07 09:09:13 -08:00
2016-02-05 19:29:43 -08:00
2016-02-05 19:29:43 -08:00
2016-02-03 17:19:33 +00:00
2016-02-07 09:26:15 -08:00
2016-02-14 19:17:36 +01:00
2016-02-14 19:17:36 +01:00
2016-02-14 19:17:36 +01:00
2016-02-14 19:17:36 +01:00
2016-02-09 20:02:31 +01:00
2016-01-28 10:31:41 +01:00
2016-01-29 13:57:15 -03:00
2016-01-28 10:31:41 +01:00
2016-02-19 21:50:16 +01:00
2016-01-23 13:29:46 +01:00
2016-02-13 14:19:54 +01:00
2016-01-31 15:44:11 -08:00
2016-01-31 15:44:11 -08:00
2016-02-17 16:13:09 +01:00
2016-02-24 17:31:44 +00:00
2016-01-30 13:38:16 +01:00
2016-01-28 16:57:04 +00:00
2016-01-27 16:36:46 +00:00
2016-01-28 16:57:04 +00:00
2016-02-08 15:00:29 -05:00
2016-01-28 17:19:06 +00:00
2016-01-28 19:49:48 -08:00
2016-01-31 12:59:28 +01:00
2016-01-31 15:44:11 -08:00
2016-01-31 15:44:11 -08:00
2016-01-27 16:36:46 +00:00
2016-02-14 21:09:07 +01:00
2016-02-24 17:35:47 +00:00
2016-02-19 01:31:16 +01:00
2016-02-24 17:31:44 +00:00
2016-02-24 17:31:44 +00:00
2016-02-19 01:31:16 +01:00
2016-02-13 14:19:54 +01:00
2016-02-14 00:36:05 +01:00
2016-02-15 12:33:50 +01:00
2016-02-14 00:36:05 +01:00
2016-01-22 17:08:08 +02:00
2016-02-03 16:49:19 +00:00
2016-02-24 17:31:44 +00:00
2016-01-27 20:06:01 +00:00
2016-02-03 16:49:19 +00:00
2016-02-26 21:49:34 +01:00
2016-01-27 17:18:00 +01:00
2016-02-03 16:49:19 +00:00
2016-02-24 17:35:47 +00:00
2016-02-24 17:35:47 +00:00
2016-01-31 13:19:50 +00:00
2016-02-03 16:49:19 +00:00
2016-02-04 02:17:57 +01:00
2016-02-19 21:06:26 +01:00
2016-02-19 21:02:42 +01:00
2016-02-22 20:23:31 -08:00
2016-01-27 16:36:46 +00:00
2016-02-01 00:35:37 +01:00
2016-02-01 01:36:44 +01:00
2016-01-28 16:42:32 +00:00
2016-01-28 16:44:59 +00:00
2016-02-28 23:39:32 +01:00
2016-02-03 16:49:19 +00:00
2016-01-31 15:44:11 -08:00
2016-02-29 21:44:06 +01:00
2016-02-26 21:49:34 +01:00
2016-01-27 16:36:46 +00:00
2016-02-28 18:46:35 +01:00
2016-02-03 16:49:19 +00:00
2016-02-03 16:49:19 +00:00
2016-02-03 22:14:27 +00:00
2016-01-28 17:24:53 +01:00
2016-02-24 17:31:44 +00:00
2016-01-31 15:44:11 -08:00
2016-02-26 21:53:32 +01:00
2016-02-26 22:15:20 +01:00
2016-02-24 17:31:44 +00:00
2016-01-23 02:17:53 +01:00
2016-02-16 21:47:56 +01:00
2016-02-16 21:47:56 +01:00
2016-02-24 03:22:31 +01:00
2016-01-31 12:28:04 +00:00
2016-02-03 16:54:20 +00:00
2016-01-28 16:42:32 +00:00
2016-02-03 16:54:20 +00:00
2016-01-27 19:58:35 +00:00
2016-02-26 21:49:34 +01:00
2016-02-24 18:15:14 +00:00
2016-02-24 18:15:14 +00:00
2016-02-24 18:15:14 +00:00
2016-02-28 13:32:01 +01:00
2016-02-24 17:31:44 +00:00
2016-02-14 22:31:47 +01:00
2016-01-31 15:44:11 -08:00
2016-02-26 21:53:34 +01:00
2016-01-22 19:26:58 +05:30
2016-02-24 17:31:44 +00:00
2016-02-29 12:42:29 +01:00
2016-01-29 19:58:41 -03:00
2016-02-03 16:49:19 +00:00
2016-02-24 17:31:44 +00:00
2016-02-24 17:36:30 +00:00
2016-01-29 19:58:44 -03:00
2016-03-01 13:53:47 -05:00
2016-02-24 17:31:44 +00:00
2016-02-24 17:22:43 +00:00
2016-01-27 20:18:04 +00:00
2016-01-27 20:18:04 +00:00
2016-01-27 20:18:04 +00:00
2016-02-16 16:51:45 +00:00
2016-02-16 16:51:45 +00:00
2016-02-24 17:31:44 +00:00
2016-02-09 19:19:43 +01:00
2016-02-22 00:44:42 +01:00
2016-02-26 21:49:34 +01:00
2016-02-24 17:31:44 +00:00
2016-02-26 21:53:32 +01:00
2016-02-24 17:31:44 +00:00
2016-02-24 17:35:47 +00:00
2016-01-27 16:36:46 +00:00
2016-01-27 16:36:46 +00:00
2016-02-03 16:49:19 +00:00
2016-02-03 16:49:19 +00:00
2016-02-26 21:49:34 +01:00
2016-02-26 22:15:20 +01:00
2016-02-26 21:49:34 +01:00
2016-01-27 00:08:23 +01:00
2016-01-31 17:09:38 +01:00
2016-01-31 17:09:38 +01:00
2016-02-26 21:53:32 +01:00
2016-01-31 15:44:11 -08:00
2016-02-24 17:31:44 +00:00
2016-01-27 16:36:46 +00:00
2016-02-29 21:44:06 +01:00
2016-02-03 16:49:19 +00:00
2016-02-03 16:49:19 +00:00
2016-02-23 20:37:11 -05:00
2016-02-03 16:49:19 +00:00
2016-01-30 13:31:44 +01:00
2016-02-16 17:23:32 +00:00
2016-02-16 17:23:32 +00:00
2016-02-24 18:15:14 +00:00
2016-02-24 17:31:44 +00:00
2016-02-24 17:31:44 +00:00
2016-02-20 13:49:44 +00:00
2016-02-26 14:47:06 +00:00
2016-03-01 13:44:18 +00:00
2016-02-16 20:05:28 +00:00
2016-02-13 14:42:38 +01:00
2016-02-28 13:33:14 +01:00
2016-01-31 15:44:11 -08:00
2016-02-24 17:31:44 +00:00
2016-02-13 19:49:34 +01:00
2016-02-21 14:31:19 -03:00
2016-02-26 21:49:34 +01:00
2016-02-26 21:53:34 +01:00
2016-01-22 19:26:24 +05:30
2016-01-22 19:27:12 +05:30
2016-02-24 18:15:14 +00:00
2016-02-24 18:15:14 +00:00
2016-02-24 18:15:14 +00:00
2016-01-28 19:49:48 -08:00