Martin Storsjö
a63da4511d
aarch64: vp9itxfm: Do separate functions for half/quarter idct16 and idct32
...
This work is sponsored by, and copyright, Google.
This avoids loading and calculating coefficients that we know will
be zero, and avoids filling the temp buffer with zeros in places
where we know the second pass won't read.
This gives a pretty substantial speedup for the smaller subpartitions.
The code size increases from 14740 bytes to 24292 bytes.
The idct16/32_end macros are moved above the individual functions; the
instructions themselves are unchanged, but since new functions are added
at the same place where the code is moved from, the diff looks rather
messy.
Before:
vp9_inv_dct_dct_16x16_sub1_add_neon: 236.7
vp9_inv_dct_dct_16x16_sub2_add_neon: 1051.0
vp9_inv_dct_dct_16x16_sub4_add_neon: 1051.0
vp9_inv_dct_dct_16x16_sub8_add_neon: 1051.0
vp9_inv_dct_dct_16x16_sub12_add_neon: 1387.4
vp9_inv_dct_dct_16x16_sub16_add_neon: 1387.6
vp9_inv_dct_dct_32x32_sub1_add_neon: 554.1
vp9_inv_dct_dct_32x32_sub2_add_neon: 5198.5
vp9_inv_dct_dct_32x32_sub4_add_neon: 5198.6
vp9_inv_dct_dct_32x32_sub8_add_neon: 5196.3
vp9_inv_dct_dct_32x32_sub12_add_neon: 6183.4
vp9_inv_dct_dct_32x32_sub16_add_neon: 6174.3
vp9_inv_dct_dct_32x32_sub20_add_neon: 7151.4
vp9_inv_dct_dct_32x32_sub24_add_neon: 7145.3
vp9_inv_dct_dct_32x32_sub28_add_neon: 8119.3
vp9_inv_dct_dct_32x32_sub32_add_neon: 8118.7
After:
vp9_inv_dct_dct_16x16_sub1_add_neon: 236.7
vp9_inv_dct_dct_16x16_sub2_add_neon: 640.8
vp9_inv_dct_dct_16x16_sub4_add_neon: 639.0
vp9_inv_dct_dct_16x16_sub8_add_neon: 842.0
vp9_inv_dct_dct_16x16_sub12_add_neon: 1388.3
vp9_inv_dct_dct_16x16_sub16_add_neon: 1389.3
vp9_inv_dct_dct_32x32_sub1_add_neon: 554.1
vp9_inv_dct_dct_32x32_sub2_add_neon: 3685.5
vp9_inv_dct_dct_32x32_sub4_add_neon: 3685.1
vp9_inv_dct_dct_32x32_sub8_add_neon: 3684.4
vp9_inv_dct_dct_32x32_sub12_add_neon: 5312.2
vp9_inv_dct_dct_32x32_sub16_add_neon: 5315.4
vp9_inv_dct_dct_32x32_sub20_add_neon: 7154.9
vp9_inv_dct_dct_32x32_sub24_add_neon: 7154.5
vp9_inv_dct_dct_32x32_sub28_add_neon: 8126.6
vp9_inv_dct_dct_32x32_sub32_add_neon: 8127.2
Signed-off-by: Martin Storsjö <martin@martin.st>
2017-02-09 12:32:03 +02:00
..
2017-02-09 12:32:03 +02:00
2017-02-09 12:32:00 +02:00
2016-12-14 14:08:43 +01:00
2017-01-31 17:46:19 +01:00
2017-02-03 11:37:53 +01:00
2017-02-07 18:27:21 +01:00
2016-11-29 10:39:20 +01:00
2017-02-01 10:42:59 +01:00
2016-11-08 17:54:34 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2016-11-13 18:44:00 +01:00
2016-11-02 10:33:36 +01:00
2016-11-28 17:19:30 +01:00
2016-11-28 17:19:30 +01:00
2016-11-28 17:19:30 +01:00
2016-11-22 17:28:17 +01:00
2016-11-18 10:33:01 +01:00
2017-02-07 18:27:21 +01:00
2017-02-01 10:42:59 +01:00
2017-01-13 10:27:03 +01:00
2017-01-30 23:03:46 +00:00
2017-01-17 09:52:11 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2017-01-20 10:18:32 +01:00
2016-11-18 10:33:45 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-01 10:42:59 +01:00
2016-11-18 10:33:59 +01:00
2016-11-18 10:33:59 +01:00
2017-02-01 10:47:46 +01:00
2016-11-23 13:17:52 +01:00
2017-02-07 18:27:21 +01:00
2017-01-17 09:52:11 +01:00
2017-01-17 09:52:11 +01:00
2016-11-18 10:34:10 +01:00
2016-12-14 09:06:45 +01:00
2016-11-02 10:33:39 +01:00
2016-12-14 09:06:45 +01:00
2016-10-28 13:24:44 +02:00
2016-11-18 10:31:56 +01:00
2016-11-08 17:54:34 +01:00
2016-11-03 20:17:12 +01:00
2017-01-31 17:54:10 +01:00
2017-01-31 17:54:10 +01:00
2017-01-31 17:54:10 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-11-18 10:31:59 +01:00
2016-11-18 10:34:32 +01:00
2016-12-19 12:35:05 +01:00
2017-01-12 16:24:15 +01:00
2016-12-14 14:08:43 +01:00
2017-02-01 10:42:59 +01:00
2017-01-31 17:54:10 +01:00
2016-10-28 13:24:44 +02:00
2016-10-27 12:21:46 +02:00
2016-11-03 17:43:55 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-10-28 13:24:44 +02:00
2016-11-18 10:34:53 +01:00
2017-01-20 10:18:32 +01:00
2016-12-23 19:30:00 +01:00
2017-01-08 16:41:24 +01:00
2017-01-08 16:41:24 +01:00
2017-01-12 16:19:13 +01:00
2017-01-08 16:41:24 +01:00
2017-01-08 16:41:24 +01:00
2017-01-12 16:09:41 +01:00
2016-12-09 08:41:52 +01:00
2016-11-18 10:32:40 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-11-29 10:39:20 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-11-18 10:35:04 +01:00
2016-10-16 20:27:16 +02:00
2017-02-07 18:27:21 +01:00
2017-01-31 17:54:11 +01:00
2017-01-31 17:54:11 +01:00
2017-01-31 17:54:11 +01:00
2017-01-31 17:54:10 +01:00
2016-11-13 18:44:01 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-02-07 18:27:21 +01:00
2016-10-29 18:32:21 +02:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-11-08 17:54:34 +01:00
2017-02-07 18:27:21 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2016-11-18 10:35:36 +01:00
2017-02-07 18:27:21 +01:00
2017-01-31 17:54:11 +01:00
2016-11-03 17:43:55 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2016-12-19 08:09:19 +01:00
2016-12-01 08:23:54 +01:00
2017-01-31 17:46:19 +01:00
2016-10-27 12:21:46 +02:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2016-12-19 08:15:58 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-01-12 16:29:12 +01:00
2016-10-28 11:22:22 +02:00
2016-11-30 14:11:43 +01:00
2016-10-16 20:26:40 +02:00
2016-10-16 20:26:40 +02:00
2016-10-16 20:26:17 +02:00
2016-10-16 20:26:28 +02:00
2016-10-21 10:11:20 +02:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-01-12 16:27:56 +01:00
2017-01-12 16:27:56 +01:00
2017-01-31 17:46:19 +01:00
2016-10-21 10:11:20 +02:00
2017-01-31 17:46:19 +01:00
2017-01-12 16:27:56 +01:00
2016-10-16 20:26:17 +02:00
2016-12-12 09:25:16 +01:00
2016-12-12 09:25:16 +01:00
2016-10-16 20:26:17 +02:00
2016-10-16 20:26:17 +02:00
2017-02-07 18:27:21 +01:00
2016-12-23 19:30:00 +01:00
2016-11-18 10:35:43 +01:00
2016-12-19 08:10:22 +01:00
2016-11-02 10:33:39 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-12-03 14:36:03 +01:00
2017-02-01 10:42:59 +01:00
2016-12-03 14:36:03 +01:00
2017-01-12 16:24:15 +01:00
2017-02-07 18:27:21 +01:00
2016-11-03 15:50:48 +01:00
2016-12-19 12:35:05 +01:00
2017-02-07 18:27:21 +01:00
2016-12-03 14:36:03 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-12-03 14:36:03 +01:00
2016-12-03 14:36:03 +01:00
2016-11-16 08:21:05 +01:00
2016-12-08 21:34:30 +01:00
2016-11-13 18:44:01 +01:00
2016-11-08 17:54:34 +01:00
2016-12-08 15:53:58 -05:00
2016-11-08 17:54:34 +01:00
2016-11-13 18:44:01 +01:00
2016-12-08 15:53:58 -05:00
2016-11-07 10:16:10 +02:00
2016-12-11 09:27:40 +01:00
2017-01-31 17:54:10 +01:00
2016-11-07 22:42:00 +01:00
2017-01-25 10:38:43 +01:00
2017-01-30 23:03:46 +00:00
2016-11-30 13:44:05 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-11-29 13:13:35 +01:00
2017-02-07 18:27:21 +01:00
2016-12-19 13:22:29 +01:00
2017-02-07 18:27:21 +01:00
2016-12-02 12:16:26 -05:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-12-02 12:16:30 -05:00
2017-02-01 10:42:59 +01:00
2016-12-19 08:15:49 +01:00
2016-12-23 19:30:00 +01:00
2016-12-11 09:27:40 +01:00
2016-12-19 08:15:07 +01:00
2017-01-31 17:54:11 +01:00
2017-02-07 18:27:21 +01:00
2016-11-29 10:38:01 +01:00
2016-12-19 12:35:05 +01:00
2017-02-07 18:27:21 +01:00
2016-12-14 09:06:44 +01:00
2017-01-17 07:37:12 +01:00
2017-01-17 07:37:12 +01:00
2017-02-08 11:50:57 +02:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2017-01-12 16:24:15 +01:00
2017-02-01 10:42:59 +01:00
2016-11-18 10:36:11 +01:00
2016-11-18 10:36:11 +01:00
2016-12-25 13:22:50 +01:00
2017-02-07 18:27:21 +01:00
2017-01-31 09:35:54 +01:00
2016-11-03 17:43:55 +01:00
2016-12-23 19:30:00 +01:00
2016-12-19 08:10:22 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-11-14 19:38:19 +00:00
2016-11-17 16:53:48 +01:00
2017-02-01 10:42:59 +01:00
2016-11-14 19:38:20 +00:00
2017-01-12 16:21:39 +01:00
2016-11-14 19:38:19 +00:00
2017-02-01 10:42:59 +01:00
2017-01-13 08:42:10 +01:00
2017-01-13 08:42:10 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-01-31 17:54:11 +01:00
2016-11-12 16:47:06 +01:00
2016-12-21 11:13:20 +01:00
2016-10-29 18:32:21 +02:00
2016-11-24 11:22:11 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2017-01-31 17:46:19 +01:00
2016-11-03 20:17:12 +01:00
2017-01-31 17:54:11 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2017-02-07 18:27:21 +01:00
2016-10-28 13:28:36 +02:00
2017-02-07 18:27:21 +01:00
2017-02-02 17:06:17 +01:00
2017-01-25 11:06:58 +01:00
2017-01-25 11:06:58 +01:00
2017-01-25 11:06:58 +01:00
2017-01-25 11:06:58 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-01-25 09:55:36 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-01 10:42:59 +01:00
2017-02-07 18:27:21 +01:00
2016-11-24 11:22:12 +01:00
2017-02-07 18:27:21 +01:00
2016-11-08 17:54:34 +01:00
2016-12-19 12:35:05 +01:00
2016-12-19 12:35:05 +01:00
2016-12-14 09:06:45 +01:00
2017-02-07 18:27:21 +01:00
2016-12-19 08:13:28 +01:00
2017-01-30 22:52:54 +00:00
2017-01-04 21:49:41 +00:00
2017-02-01 10:42:59 +01:00
2017-01-29 13:28:31 +00:00
2017-01-30 23:03:46 +00:00
2017-02-01 10:42:59 +01:00
2017-01-30 22:52:54 +00:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:13:08 +01:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:10:22 +01:00
2017-02-07 18:27:21 +01:00
2016-12-19 12:35:05 +01:00
2016-11-14 19:38:19 +00:00
2016-12-19 12:35:05 +01:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:10:22 +01:00
2016-12-19 08:10:22 +01:00
2016-11-13 18:44:01 +01:00
2016-12-09 08:41:53 +01:00
2017-01-30 23:03:46 +00:00
2016-11-24 11:22:12 +01:00
2016-11-21 14:29:11 +01:00
2016-12-23 19:30:00 +01:00
2017-01-12 16:29:17 +01:00
2016-11-08 17:54:34 +01:00
2016-11-14 19:38:19 +00:00
2017-02-01 10:42:59 +01:00
2016-12-14 09:06:45 +01:00
2016-12-14 09:06:45 +01:00
2016-11-10 11:15:56 +02:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2017-02-01 10:42:59 +01:00
2016-11-30 23:48:28 +02:00
2017-01-25 09:55:35 +01:00
2017-02-07 18:27:21 +01:00
2017-02-06 15:13:34 +01:00
2017-02-06 15:13:34 +01:00
2017-02-06 15:13:34 +01:00
2017-02-06 15:13:34 +01:00
2017-02-06 15:13:34 +01:00
2017-02-06 15:13:34 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2017-02-07 18:27:21 +01:00
2016-11-08 17:54:34 +01:00
2017-01-19 09:52:10 +01:00