Martin Storsjö
dd299a2d6d
arm: vp9: Add NEON loop filters
...
This work is sponsored by, and copyright, Google.
The implementation tries to have smart handling of cases
where no pixels need the full filtering for the 8/16 width
filters, skipping both calculation and writeback of the
unmodified pixels in those cases. The actual effect of this
is hard to test with checkasm though, since it tests the
full filtering, and the benefit depends on how many filtered
blocks use the shortcut.
Examples of relative speedup compared to the C version, from checkasm:
Cortex A7 A8 A9 A53
vp9_loop_filter_h_4_8_neon: 2.72 2.68 1.78 3.15
vp9_loop_filter_h_8_8_neon: 2.36 2.38 1.70 2.91
vp9_loop_filter_h_16_8_neon: 1.80 1.89 1.45 2.01
vp9_loop_filter_h_16_16_neon: 2.81 2.78 2.18 3.16
vp9_loop_filter_mix2_h_44_16_neon: 2.65 2.67 1.93 3.05
vp9_loop_filter_mix2_h_48_16_neon: 2.46 2.38 1.81 2.85
vp9_loop_filter_mix2_h_84_16_neon: 2.50 2.41 1.73 2.85
vp9_loop_filter_mix2_h_88_16_neon: 2.77 2.66 1.96 3.23
vp9_loop_filter_mix2_v_44_16_neon: 4.28 4.46 3.22 5.70
vp9_loop_filter_mix2_v_48_16_neon: 3.92 4.00 3.03 5.19
vp9_loop_filter_mix2_v_84_16_neon: 3.97 4.31 2.98 5.33
vp9_loop_filter_mix2_v_88_16_neon: 3.91 4.19 3.06 5.18
vp9_loop_filter_v_4_8_neon: 4.53 4.47 3.31 6.05
vp9_loop_filter_v_8_8_neon: 3.58 3.99 2.92 5.17
vp9_loop_filter_v_16_8_neon: 3.40 3.50 2.81 4.68
vp9_loop_filter_v_16_16_neon: 4.66 4.41 3.74 6.02
The speedup vs C code is around 2-6x. The numbers are quite
inconclusive though, since the checkasm test runs multiple filterings
on top of each other, so later rounds might end up with different
codepaths (different decisions on which filter to apply, based
on input pixel differences). Disabling the early-exit in the asm
doesn't give a fair comparison either though, since the C code
only does the necessary calcuations for each row.
Based on START_TIMER/STOP_TIMER wrapping around a few individual
functions, the speedup vs C code is around 4-9x.
This is pretty similar in runtime to the corresponding routines
in libvpx. (This is comparing vpx_lpf_vertical_16_neon,
vpx_lpf_horizontal_edge_8_neon and vpx_lpf_horizontal_edge_16_neon
to vp9_loop_filter_h_16_8_neon, vp9_loop_filter_v_16_8_neon
and vp9_loop_filter_v_16_16_neon - note that the naming of horizonal
and vertical is flipped between the libraries.)
In order to have stable, comparable numbers, the early exits in both
asm versions were disabled, forcing the full filtering codepath.
Cortex A7 A8 A9 A53
vp9_loop_filter_h_16_8_neon: 597.2 472.0 482.4 415.0
libvpx vpx_lpf_vertical_16_neon: 626.0 464.5 470.7 445.0
vp9_loop_filter_v_16_8_neon: 500.2 422.5 429.7 295.0
libvpx vpx_lpf_horizontal_edge_8_neon: 586.5 414.5 415.6 383.2
vp9_loop_filter_v_16_16_neon: 905.0 784.7 791.5 546.0
libvpx vpx_lpf_horizontal_edge_16_neon: 1060.2 751.7 743.5 685.2
Our version is consistently faster on on A7 and A53, marginally slower on
A8, and sometimes faster, sometimes slower on A9 (marginally slower in all
three tests in this particular test run).
Signed-off-by: Martin Storsjö <martin@martin.st >
2016-11-11 14:16:42 +02:00
..
2016-11-10 11:18:22 +02:00
2016-11-11 14:16:42 +02:00
2016-01-19 20:47:49 +01:00
2014-08-15 01:26:33 -07:00
2016-10-18 00:10:36 +02:00
2016-09-29 14:48:03 +02:00
2016-11-08 17:21:02 +01:00
2016-05-13 14:55:56 +02:00
2015-07-27 15:24:59 +01:00
2016-02-18 15:35:30 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:59 +01:00
2015-08-28 16:01:16 +02:00
2016-03-20 08:15:01 +01:00
2015-07-27 15:24:59 +01:00
2015-02-28 21:51:24 +01:00
2014-05-01 13:00:57 +02:00
2015-02-21 00:54:40 +01:00
2016-11-08 17:54:34 +01:00
2015-06-07 10:14:46 +02:00
2015-12-07 11:27:42 -05:00
2014-12-18 23:27:14 +01:00
2016-03-23 09:25:30 +01:00
2016-08-17 12:16:42 +02:00
2015-02-03 20:32:16 -08:00
2016-11-02 10:33:36 +01:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:59 +01:00
2016-06-07 13:09:57 +02:00
2016-10-01 00:46:25 +02:00
2016-10-01 00:45:55 +02:00
2016-10-01 00:46:25 +02:00
2016-10-01 00:46:25 +02:00
2014-06-22 06:20:15 -07:00
2016-09-22 09:47:52 +02:00
2014-09-26 17:09:14 +02:00
2016-05-27 15:49:48 +02:00
2016-01-03 22:49:55 +01:00
2014-09-26 17:09:14 +02:00
2016-02-18 15:35:30 +01:00
2014-06-22 06:20:15 -07:00
2014-06-22 06:20:15 -07:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2014-08-09 16:59:34 +00:00
2014-08-09 16:59:34 +00:00
2015-07-27 15:24:58 +01:00
2016-06-06 12:03:20 -04:00
2016-11-08 17:54:34 +01:00
2016-03-23 09:25:30 +01:00
2015-07-27 15:24:58 +01:00
2015-07-20 15:06:50 +01:00
2016-09-08 21:58:22 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-02-18 15:35:30 +01:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2014-05-29 06:41:15 -07:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2014-12-18 23:27:14 +01:00
2014-09-02 03:45:21 -07:00
2014-09-02 03:45:21 -07:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:59 +01:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:59 +01:00
2016-01-11 21:51:11 +01:00
2015-07-27 15:24:58 +01:00
2015-09-29 14:33:00 +02:00
2015-09-29 14:33:00 +02:00
2016-09-22 09:47:52 +02:00
2016-09-22 09:47:52 +02:00
2015-07-27 15:24:58 +01:00
2016-10-12 11:06:58 -04:00
2016-06-13 13:31:21 -04:00
2015-12-05 13:12:27 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2014-11-14 20:25:02 +01:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2014-05-29 06:48:08 -07:00
2016-11-02 10:33:39 +01:00
2016-03-20 08:15:01 +01:00
2016-10-16 20:27:16 +02:00
2016-10-28 13:24:44 +02:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2016-11-08 17:54:34 +01:00
2015-07-20 15:06:50 +01:00
2015-07-27 15:24:58 +01:00
2016-11-03 20:17:12 +01:00
2015-07-27 15:24:58 +01:00
2016-03-20 08:15:01 +01:00
2016-05-04 18:16:21 +02:00
2014-06-22 18:22:31 -07:00
2014-06-22 18:22:31 -07:00
2015-07-12 18:15:39 +02:00
2015-07-27 15:24:58 +01:00
2016-02-18 15:35:30 +01:00
2016-05-04 15:14:14 +02:00
2015-10-08 21:55:31 +02:00
2015-04-19 22:37:02 +01:00
2015-04-19 22:37:02 +01:00
2016-08-26 11:48:15 +02:00
2016-08-26 11:48:15 +02:00
2016-08-26 11:48:15 +02:00
2016-08-26 11:48:15 +02:00
2016-08-26 11:48:15 +02:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:59 +01:00
2014-11-03 12:45:42 -05:00
2015-11-30 10:58:46 -05:00
2015-11-30 10:58:46 -05:00
2016-03-20 08:15:01 +01:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2015-07-20 15:06:50 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2016-08-24 14:45:08 +02:00
2016-09-22 09:47:52 +02:00
2016-05-04 18:16:21 +02:00
2016-09-04 12:19:47 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-10-03 14:09:23 +02:00
2015-09-17 10:33:21 +02:00
2015-03-15 14:51:36 +01:00
2015-07-27 15:24:59 +01:00
2015-03-13 21:20:37 +01:00
2015-03-17 12:31:07 +01:00
2016-01-15 13:47:11 +01:00
2015-12-31 11:40:32 +01:00
2016-05-04 18:16:21 +02:00
2015-12-24 13:58:18 +01:00
2016-05-04 18:16:21 +02:00
2015-12-31 11:40:32 +01:00
2015-12-31 11:40:32 +01:00
2014-09-16 04:42:32 -07:00
2015-12-23 11:50:08 +01:00
2015-09-12 13:39:37 +02:00
2015-05-31 15:03:30 +02:00
2016-09-29 14:48:03 +02:00
2016-04-26 16:30:18 -04:00
2015-07-27 15:24:58 +01:00
2014-09-09 01:39:47 -07:00
2016-05-25 16:37:43 +02:00
2015-12-06 10:28:04 +01:00
2016-02-09 20:02:31 +01:00
2016-05-04 18:16:21 +02: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
2016-05-04 18:16:21 +02:00
2014-12-18 23:22:59 +01:00
2015-07-27 15:24:58 +01:00
2015-10-21 11:59:46 +02:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:59 +01:00
2016-03-20 08:15:01 +01:00
2014-07-09 13:35:07 +00:00
2014-09-09 05:30:28 -07:00
2014-08-09 16:59:34 +00:00
2014-09-09 05:30:28 -07:00
2016-06-07 13:09:57 +02:00
2016-09-29 14:48:03 +02:00
2016-06-08 18:51:56 +02:00
2015-10-21 12:02:29 +02:00
2016-08-17 12:16:42 +02:00
2014-09-09 05:30:28 -07:00
2016-10-28 13:24:44 +02:00
2016-10-28 13:24:44 +02:00
2015-10-21 12:02:29 +02:00
2016-09-14 14:12:36 +02:00
2015-07-27 15:24:58 +01:00
2016-10-28 13:24:55 +02:00
2016-10-28 13:24:44 +02:00
2016-06-21 22:09:35 +03:00
2016-10-16 20:26:40 +02:00
2016-10-05 18:37:27 +02:00
2015-10-14 14:35:34 +02:00
2015-10-14 14:35:34 +02:00
2016-11-07 10:05:12 +01:00
2015-07-28 19:37:47 +03:00
2016-04-02 14:05:07 +02:00
2014-06-13 05:21:34 -07:00
2016-09-29 17:54:23 +02:00
2016-09-29 17:54:23 +02:00
2016-09-29 17:54:23 +02:00
2016-09-29 17:54:23 +02:00
2016-09-29 17:54:23 +02:00
2016-09-29 17:54:23 +02:00
2016-09-29 17:54:23 +02:00
2016-05-04 18:16:21 +02:00
2014-12-18 23:22:59 +01:00
2015-07-01 16:26:42 +01:00
2015-07-01 01:08:15 +02:00
2016-09-07 11:30:17 +02:00
2016-09-07 11:30:17 +02:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2016-05-04 18:16:21 +02:00
2016-10-16 20:27:16 +02:00
2016-08-17 12:16:42 +02:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2016-05-04 18:16:21 +02:00
2014-09-07 13:36:26 -07:00
2014-07-07 12:28:45 -07:00
2016-03-01 10:18:28 +01:00
2016-03-01 10:18:28 +01:00
2016-06-08 18:51:57 +02:00
2016-01-21 15:33:19 -05:00
2016-08-17 12:16:42 +02:00
2016-08-17 12:16:42 +02:00
2015-07-27 15:24:58 +01:00
2015-04-20 12:41:33 +02:00
2014-11-06 09:04:56 +01:00
2014-11-06 09:04:56 +01:00
2015-07-27 15:24:58 +01:00
2016-06-07 13:09:57 +02:00
2015-11-02 16:29:46 +01:00
2015-07-20 15:06:50 +01:00
2016-10-29 18:32:21 +02:00
2014-09-02 04:03:45 -07:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-12-23 11:50:18 +01:00
2015-12-23 11:50:18 +01:00
2016-11-08 17:54:34 +01:00
2015-07-27 15:24:58 +01:00
2016-11-08 17:54:34 +01:00
2015-02-15 22:47:19 +02:00
2015-02-15 22:47:10 +02:00
2015-07-27 15:24:58 +01:00
2015-02-15 22:47:21 +02:00
2015-02-15 22:47:21 +02:00
2015-07-27 15:24:58 +01:00
2015-11-30 10:58:46 -05:00
2015-12-05 12:12:26 +01:00
2016-06-07 13:09:57 +02:00
2016-11-08 17:54:34 +01:00
2016-05-04 18:16:21 +02:00
2016-05-22 20:22:43 +02:00
2015-07-27 15:24:59 +01:00
2015-07-27 15:24:58 +01:00
2016-08-17 12:22:29 +02:00
2016-06-07 13:22:22 +02:00
2016-06-07 13:22:22 +02:00
2016-06-07 13:22:22 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-06-08 18:51:56 +02:00
2016-11-03 17:43:55 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-06-21 11:17:53 +02:00
2016-06-21 11:11:26 +02:00
2016-08-11 10:52:54 +02:00
2016-10-27 12:21:46 +02:00
2016-04-24 10:06:25 +02:00
2016-06-21 11:13:29 +02:00
2016-06-21 11:11:26 +02:00
2016-04-24 10:06:23 +02:00
2016-06-21 11:11:26 +02:00
2016-06-21 11:17:28 +02:00
2016-06-21 11:13:29 +02:00
2016-06-21 11:17:28 +02:00
2016-06-21 11:11:26 +02:00
2016-11-08 17:54:34 +01:00
2016-07-11 16:29:57 +02:00
2016-08-17 12:16:42 +02:00
2016-06-21 11:15:44 +02:00
2016-04-24 10:06:24 +02:00
2016-07-15 15:33:54 +02:00
2016-06-21 11:17:28 +02:00
2016-05-04 18:16:21 +02:00
2016-09-29 14:48:04 +02:00
2016-09-29 14:48:04 +02:00
2016-06-21 11:11:26 +02:00
2016-06-21 11:11:26 +02:00
2016-10-02 11:41:45 +02:00
2016-07-15 15:33:54 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-06-21 11:11:26 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2014-09-05 13:55:04 +02:00
2014-05-29 06:48:31 -07:00
2016-07-13 18:18:46 -04:00
2016-05-04 18:16:21 +02:00
2015-07-27 16:21:14 +01:00
2015-07-27 16:00:22 +01:00
2015-07-27 16:00:22 +01:00
2016-10-28 11:22:22 +02:00
2016-10-21 10:11:20 +02: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
2016-10-16 20:26:28 +02:00
2016-11-08 17:54:34 +01:00
2016-11-08 17:54:34 +01:00
2016-10-16 20:26:47 +02:00
2016-10-21 10:11:20 +02:00
2016-11-03 20:17:12 +01:00
2016-10-21 10:11:20 +02:00
2016-11-08 11:22:29 -05:00
2016-10-21 10:11:20 +02:00
2016-10-16 20:26:17 +02:00
2016-07-18 15:27:13 +02:00
2016-10-22 17:33:35 +02:00
2016-10-16 20:26:17 +02:00
2016-10-16 20:26:17 +02:00
2015-07-27 15:24:58 +01:00
2014-06-13 05:21:34 -07:00
2016-07-25 19:38:18 +02:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2015-04-24 14:55:10 +01:00
2015-04-19 22:37:23 +01:00
2015-04-19 22:37:23 +01:00
2015-11-16 12:56:03 +01:00
2015-04-19 22:36:48 +01:00
2015-04-19 12:41:59 +01:00
2015-09-12 13:39:37 +02:00
2015-03-17 13:34:23 +00:00
2016-05-17 10:29:27 +02:00
2016-05-17 10:29:27 +02:00
2014-06-22 18:22:31 -07:00
2016-01-22 17:08:08 +02:00
2015-07-27 15:24:59 +01:00
2016-10-02 17:13:36 +02:00
2014-05-27 08:52:34 -07:00
2016-01-21 15:33:19 -05:00
2014-05-27 08:54:53 -07:00
2014-05-27 08:54:53 -07:00
2016-05-04 18:16:21 +02:00
2016-09-29 14:48:03 +02:00
2016-11-02 10:33:39 +01:00
2016-05-04 15:14:14 +02:00
2016-09-07 11:30:18 +02:00
2016-09-07 11:30:18 +02:00
2016-05-04 18:16:21 +02:00
2015-02-02 16:07:33 +01:00
2015-02-02 16:07:33 +01:00
2016-01-21 15:33:19 -05:00
2016-03-20 08:15:01 +01:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2016-11-03 20:17:12 +01:00
2016-05-04 18:16:21 +02:00
2016-06-07 13:09:57 +02:00
2015-03-30 17:49:05 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-03-23 19:31:23 +01:00
2016-06-07 13:09:57 +02:00
2016-11-03 15:50:48 +01:00
2016-03-29 13:41:09 +02:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2016-03-22 17:12:20 -04:00
2016-05-04 18:16:21 +02:00
2016-06-08 18:51:56 +02:00
2016-09-04 11:57:15 +02:00
2016-09-04 11:57:15 +02:00
2016-09-04 11:57:15 +02:00
2016-09-04 11:57:15 +02:00
2016-08-17 12:16:42 +02:00
2016-05-04 18:16:21 +02:00
2015-12-12 21:22:49 +01:00
2014-10-08 08:02:55 +00:00
2014-10-08 08:02:55 +00:00
2014-10-08 08:02:55 +00:00
2015-04-19 12:41:59 +01:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-03-30 17:51:21 +02:00
2015-03-30 17:51:21 +02:00
2016-09-29 14:48:03 +02:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-11-02 16:25:17 +01:00
2016-02-18 15:35:43 +01:00
2016-02-18 15:35:43 +01:00
2016-05-29 16:43:11 +02:00
2015-07-27 15:24:59 +01:00
2015-07-27 15:24:59 +01:00
2015-08-31 15:24:30 +02:00
2015-07-27 15:24:59 +01:00
2015-07-27 15:24:58 +01:00
2014-07-18 17:27:54 +02:00
2015-07-27 15:24:58 +01:00
2016-01-19 20:47:49 +01:00
2015-12-12 21:25:42 +01:00
2016-05-04 18:16:21 +02:00
2016-06-28 14:17:43 +03:00
2016-06-28 14:17:43 +03:00
2016-07-15 13:36:21 +03:00
2016-07-15 13:36:23 +03:00
2016-11-08 17:54:34 +01:00
2015-09-07 12:37:47 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-11-08 17:54:34 +01:00
2015-10-14 11:24:55 +02:00
2016-06-21 19:54:42 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:59 +01:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:59 +01:00
2015-06-24 08:48:52 +02:00
2015-07-09 21:36:19 +02:00
2016-08-26 13:25:59 +02:00
2016-07-23 08:27:29 +02:00
2015-07-27 15:24:58 +01:00
2015-06-17 14:13:43 +01:00
2016-04-21 12:25:42 -04:00
2016-11-07 10:16:10 +02:00
2016-01-21 15:33:19 -05:00
2016-11-11 10:17:07 +01:00
2016-05-04 18:16:21 +02:00
2016-07-20 18:59:36 +02:00
2016-01-21 15:33:19 -05:00
2015-07-27 15:24:58 +01:00
2014-11-14 20:25:52 +01:00
2014-11-25 02:00:06 +00:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-11-07 22:42:00 +01:00
2015-09-02 21:56:22 +02:00
2015-07-27 15:24:58 +01:00
2016-06-20 15:45:51 -04:00
2016-10-16 20:27:16 +02:00
2016-08-17 12:16:42 +02:00
2016-03-25 15:23:56 +01:00
2016-03-01 10:18:28 +01:00
2016-05-05 10:48:34 +02:00
2014-11-24 01:30:10 +00:00
2014-11-24 01:30:10 +00:00
2016-06-07 13:09:57 +02:00
2016-07-29 15:59:48 +02:00
2016-03-20 08:15:01 +01:00
2015-03-30 17:51:21 +02:00
2016-03-20 08:15:01 +01:00
2015-07-27 15:24:58 +01:00
2016-11-08 17:54:34 +01:00
2016-05-04 18:16:21 +02:00
2016-01-21 15:33:19 -05:00
2016-01-21 15:33:19 -05:00
2016-05-03 15:45:10 +02:00
2016-05-04 18:16:21 +02:00
2015-08-28 16:01:16 +02:00
2016-05-04 18:16:21 +02:00
2015-03-11 16:06:40 +01:00
2015-09-29 14:33:00 +02:00
2016-10-02 19:35:12 +02:00
2015-09-11 18:19:00 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2015-09-13 17:34:45 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:59 +01:00
2016-03-20 08:15:01 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2015-01-09 15:44:31 +01:00
2015-02-03 20:32:16 -08:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-16 10:51:17 +02:00
2016-08-17 12:16:42 +02:00
2016-02-09 20:04:59 +01:00
2016-05-04 18:16:21 +02:00
2016-06-29 12:31:03 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-06-29 12:31:03 +02:00
2016-06-07 13:09:57 +02:00
2015-06-12 11:57:26 +01:00
2015-06-12 11:57:26 +01:00
2015-12-12 21:26:29 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2016-10-27 12:21:46 +02:00
2016-01-03 22:49:55 +01:00
2016-05-04 18:16:21 +02:00
2016-09-29 17:54:24 +02:00
2014-04-22 22:01:45 +02:00
2016-09-29 17:54:24 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2015-09-30 16:44:33 +02:00
2015-09-13 17:34:45 +02:00
2016-09-28 10:01:52 +02:00
2016-09-16 16:28:07 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2016-07-31 08:19:27 +02:00
2016-05-04 18:16:21 +02:00
2015-05-31 13:06:19 +02:00
2015-05-31 13:06:19 +02:00
2014-06-23 09:58:17 -07:00
2014-06-23 09:58:17 -07:00
2016-08-17 12:16:42 +02:00
2014-07-06 14:48:50 -07:00
2014-06-17 08:44:07 -07:00
2016-05-04 18:16:21 +02:00
2016-06-07 13:09:57 +02:00
2016-05-04 18:16:21 +02:00
2015-05-31 13:06:19 +02:00
2016-02-19 20:38:18 +01:00
2016-06-07 13:09:57 +02:00
2016-08-17 12:16:42 +02:00
2016-08-17 12:16:42 +02:00
2016-05-04 18:16:21 +02:00
2015-10-21 11:51:07 +02:00
2015-10-21 11:51:07 +02:00
2015-07-27 15:24:58 +01:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-09-29 17:54:24 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2015-07-27 15:24:58 +01:00
2016-03-20 08:15:01 +01:00
2016-05-04 18:16:21 +02:00
2016-09-24 19:03:10 +02:00
2016-09-24 19:03:10 +02:00
2016-10-09 20:58:10 +02:00
2016-09-24 19:03:10 +02:00
2016-06-24 22:30:54 +03:00
2016-06-08 18:51:57 +02:00
2014-04-23 19:57:44 +02:00
2014-04-23 20:54:29 +02:00
2016-11-08 11:22:29 -05:00
2016-07-22 19:08:13 +02:00
2015-07-27 15:24:58 +01:00
2015-01-15 01:25:16 +01:00
2016-11-08 17:54:34 +01:00
2016-05-04 18:16:21 +02:00
2015-08-02 08:43:51 +02:00
2015-10-28 17:57:07 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2015-10-21 11:59:59 +02:00
2015-09-29 14:33:00 +02:00
2016-02-18 15:35:30 +01:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2016-08-18 17:06:46 +02:00
2015-07-20 15:06:50 +01:00
2014-06-13 05:21:34 -07:00
2016-05-11 12:21:25 +02:00
2015-07-27 15:24:58 +01:00
2016-09-14 14:12:36 +02:00
2016-09-14 14:12:36 +02:00
2016-11-03 17:43:55 +01:00
2014-11-11 11:49:54 +01:00
2016-05-04 18:16:21 +02:00
2015-09-12 13:39:37 +02:00
2016-01-21 15:33:19 -05:00
2016-08-17 12:16:42 +02:00
2015-07-27 15:24:58 +01:00
2015-10-21 11:59:59 +02:00
2016-06-12 20:27:53 +02:00
2016-02-18 15:35:44 +01:00
2015-07-27 15:24:58 +01:00
2016-08-26 11:50:21 +02:00
2016-08-26 11:50:21 +02:00
2016-08-26 11:50:21 +02:00
2015-05-31 15:03:31 +02:00
2016-11-10 20:36:11 +00:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-07-31 08:19:27 +02:00
2015-07-27 15:24:58 +01:00
2016-08-18 17:06:46 +02:00
2014-05-29 06:48:31 -07:00
2014-07-25 02:52:54 -07:00
2014-07-25 02:52:54 -07:00
2015-02-19 17:35:34 +01:00
2016-11-07 12:48:00 +01:00
2016-11-07 12:48:00 +01:00
2015-10-16 20:00:40 +02:00
2016-07-03 09:13:29 +02:00
2016-06-21 19:53:38 +02:00
2016-11-07 12:48:00 +01:00
2016-07-03 09:13:29 +02:00
2016-07-22 19:08:13 +02:00
2016-10-16 20:26:28 +02:00
2016-01-21 15:33:19 -05:00
2016-11-07 12:48:00 +01:00
2016-06-21 19:53:38 +02:00
2016-05-04 18:16:21 +02:00
2016-05-11 12:22:49 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-06-07 13:09:57 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2016-04-07 16:14:42 +02:00
2016-08-17 12:16:42 +02:00
2016-07-20 19:03:31 +02:00
2016-07-20 18:59:36 +02:00
2016-01-21 15:33:19 -05:00
2015-10-21 11:59:33 +02:00
2015-10-21 11:59:07 +02:00
2014-09-05 13:55:03 +02:00
2014-07-25 02:02:15 -07:00
2016-05-04 18:16:21 +02:00
2016-03-20 08:15:01 +01:00
2016-05-04 18:16:21 +02:00
2016-05-17 10:29:27 +02:00
2016-05-17 10:29:27 +02:00
2016-06-29 15:25:42 -04:00
2016-06-29 15:25:42 -04:00
2015-07-27 15:24:58 +01:00
2014-08-15 03:18:18 -07:00
2016-10-29 18:32:21 +02:00
2016-08-17 12:16:42 +02:00
2016-05-04 18:16:21 +02:00
2016-10-02 15:42:03 -04:00
2014-06-30 07:58:46 -07:00
2014-06-30 07:58:46 -07:00
2016-05-04 18:16:21 +02:00
2015-06-12 12:26:54 +01:00
2016-05-04 18:16:21 +02:00
2015-06-12 12:29:46 +01:00
2016-05-25 16:37:43 +02:00
2016-05-04 18:16:21 +02:00
2014-09-05 13:55:04 +02:00
2015-02-14 10:13:49 -08:00
2016-05-25 16:37:43 +02:00
2016-05-04 18:16:21 +02:00
2014-05-29 06:48:31 -07:00
2016-05-25 16:37:43 +02:00
2016-09-29 14:48:04 +02:00
2015-07-27 15:24:58 +01:00
2016-11-03 20:17:12 +01:00
2016-08-03 08:26:40 +02:00
2016-05-04 18:16:21 +02:00
2015-11-24 09:05:01 -05:00
2015-12-07 11:27:42 -05:00
2016-06-06 12:05:02 -04:00
2016-11-08 17:54:34 +01:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2016-05-04 18:16:21 +02:00
2015-07-23 13:35:16 +01:00
2015-07-23 13:35:16 +01:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:58 +01:00
2016-10-28 13:28:36 +02:00
2015-07-27 15:24:59 +01:00
2014-08-04 22:22:54 +02:00
2015-07-27 15:24:58 +01:00
2016-01-11 15:32:57 -05:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-09-04 11:57:15 +02:00
2016-05-04 18:16:21 +02:00
2016-06-07 13:09:57 +02:00
2016-11-03 15:52:12 +01:00
2015-12-14 16:45:01 +01:00
2015-12-14 16:45:01 +01:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2016-11-08 17:54:34 +01:00
2015-07-27 15:24:58 +01:00
2016-06-29 15:25:42 -04:00
2016-09-28 10:01:52 +02:00
2016-05-04 18:16:21 +02:00
2015-06-22 15:23:08 +01:00
2016-05-05 10:48:34 +02:00
2016-06-07 13:09:57 +02:00
2015-07-27 15:24:59 +01:00
2014-08-18 14:23:24 +02:00
2016-06-29 15:25:42 -04:00
2015-07-27 15:24:58 +01:00
2014-06-13 05:21:34 -07:00
2015-07-27 15:24:58 +01:00
2015-11-02 16:29:14 +01:00
2016-06-21 09:38:56 -04:00
2015-07-27 15:24:58 +01:00
2016-06-07 13:09:57 +02:00
2016-03-25 15:23:56 +01:00
2016-02-18 15:35:30 +01:00
2016-06-07 13:09:57 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-11-08 17:54:34 +01:00
2015-07-27 15:24:58 +01:00
2016-10-12 21:33:34 +02:00
2016-01-21 15:33:19 -05:00
2016-09-08 13:51:30 +02:00
2016-09-08 13:51:30 +02:00
2016-09-08 13:51:30 +02:00
2015-07-27 15:24:58 +01:00
2016-02-01 13:40:07 +01:00
2016-02-01 13:40:07 +01:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2015-07-20 15:06:50 +01:00
2016-10-24 20:17:47 +01:00
2016-08-30 22:16:01 +01:00
2016-03-30 09:10:26 +02:00
2016-03-30 09:10:26 +02:00
2016-10-02 20:23:18 +01:00
2016-10-21 10:11:20 +02:00
2016-09-28 22:54:11 +01:00
2016-10-17 21:07:25 +01:00
2016-10-17 21:07:25 +01:00
2016-10-24 20:17:47 +01:00
2016-08-30 21:45:59 +01:00
2016-08-30 21:45:59 +01:00
2016-08-30 21:45:59 +01:00
2016-09-09 18:56:18 +01:00
2016-08-30 22:16:01 +01:00
2015-07-27 15:24:58 +01:00
2016-06-07 13:09:57 +02:00
2016-05-04 18:16:21 +02:00
2014-09-04 07:11:03 -07:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-02-14 10:13:49 -08:00
2016-05-04 18:16:21 +02:00
2014-10-08 18:34:48 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-06-07 13:09:57 +02:00
2016-08-18 17:06:46 +02:00
2016-09-29 14:48:04 +02:00
2016-09-29 14:48:03 +02:00
2015-07-27 15:24:58 +01:00
2016-06-21 11:11:26 +02:00
2014-05-11 15:00:03 +02:00
2015-05-13 17:39:37 +02:00
2015-05-13 17:39:37 +02:00
2016-06-21 11:13:29 +02:00
2016-10-16 20:26:40 +02:00
2016-02-13 14:42:38 +01:00
2015-10-30 12:46:56 +01:00
2015-02-14 10:56:01 -08:00
2014-10-05 10:41:31 +00:00
2016-06-21 11:11:26 +02:00
2016-05-04 18:16:21 +02:00
2016-11-08 11:22:29 -05:00
2015-07-27 15:24:58 +01:00
2016-05-17 10:29:27 +02:00
2015-07-27 15:24:58 +01:00
2015-07-27 15:24:58 +01:00
2016-08-18 17:06:46 +02:00
2014-11-06 08:51:25 +01:00
2014-11-25 02:00:06 +00:00
2016-02-18 15:35:30 +01:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2014-04-22 22:01:45 +02:00
2014-04-22 22:01:45 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-08-26 11:36:26 +02:00
2016-08-26 11:36:26 +02:00
2016-11-08 17:54:34 +01:00
2016-08-26 11:50:22 +02:00
2016-08-26 11:36:26 +02:00
2016-09-08 21:58:22 +01:00
2016-09-08 21:58:22 +01:00
2016-03-25 15:23:56 +01:00
2016-07-10 14:52:16 +03:00
2016-10-04 10:54:07 +02:00
2016-11-10 11:15:56 +02:00
2016-11-10 11:15:56 +02:00
2016-11-10 11:15:56 +02:00
2016-08-11 10:54:44 +02:00
2016-08-26 11:50:22 +02:00
2016-08-26 11:50:22 +02:00
2016-08-26 11:50:22 +02:00
2016-08-26 11:50:22 +02:00
2014-07-01 03:26:51 -07:00
2016-05-04 18:16:21 +02:00
2016-06-07 13:09:57 +02:00
2016-06-07 13:09:57 +02:00
2014-09-03 03:09:08 -07:00
2014-09-04 05:19:46 -07:00
2015-09-12 13:39:37 +02:00
2016-08-17 12:16:42 +02:00
2015-07-27 15:24:59 +01:00
2014-09-04 05:19:46 -07:00
2016-05-04 18:16:21 +02:00
2016-08-17 12:16:42 +02:00
2016-05-04 18:16:21 +02:00
2016-05-04 18:16:21 +02:00
2016-08-30 22:06:47 +02:00
2016-02-19 20:38:18 +01:00
2015-05-31 13:06:19 +02:00
2016-02-19 20:38:18 +01:00
2016-02-19 20:38:18 +01:00
2016-03-29 13:41:09 +02:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2016-05-04 18:16:21 +02:00
2015-07-27 15:24:59 +01:00
2015-10-16 17:45:09 +02:00
2015-07-27 15:24:58 +01:00
2016-06-07 13:09:57 +02:00
2015-07-27 15:24:58 +01:00
2015-07-20 15:06:50 +01:00
2015-07-27 15:24:58 +01:00
2016-05-11 12:21:25 +02:00
2015-10-21 12:02:29 +02:00
2016-09-29 14:48:03 +02:00
2014-09-02 14:41:13 -07:00
2016-11-08 17:54:34 +01:00
2015-07-20 15:06:50 +01:00
2016-06-07 13:09:57 +02:00
2016-05-04 15:14:14 +02:00
2015-07-27 15:24:58 +01:00
2016-05-04 18:16:21 +02:00
2015-07-20 15:06:50 +01:00