John Koleszar
bd84685f78
Optimize vp9_tree_probs_from_distribution
...
The previous implementation visited each node in the tree multiple times
because it used each symbol's encoding to revisit the branches taken and
increment its count. Instead, we can traverse the tree depth first and
calculate the probabilities and branch counts as we walk back up. The
complexity goes from somewhere between O(nlogn) and O(n^2) (depending on
how balanced the tree is) to O(n).
Only tested one clip (256kbps, CIF), saw 13% decoding perf improvement.
Note that this optimization should port trivially to VP8 as well. In VP8,
the decoder doesn't use this function, but it does routinely show up
on the profile for realtime encoding.
Change-Id: I4f2848e4f41dc9a7694f73f3e75034bce08d1b12
2013-03-10 13:39:30 -07:00
..
2013-02-05 14:23:17 -08:00
2013-02-05 14:23:17 -08:00
2013-03-04 14:13:31 -08:00
2013-02-13 15:12:17 +00:00
2012-12-18 15:31:19 -08:00
2012-12-05 08:59:25 -08:00
2013-03-04 16:34:36 -08:00
2013-03-04 16:34:36 -08:00
2012-12-18 15:31:19 -08:00
2013-02-06 16:12:56 -08:00
2012-11-28 10:53:17 -08:00
2013-02-27 08:22:39 -08:00
2013-02-26 23:54:23 -08:00
2013-02-08 20:23:35 -08:00
2013-03-04 16:34:36 -08:00
2013-03-10 13:39:30 -07:00
2013-03-04 16:34:36 -08:00
2013-03-10 13:39:30 -07:00
2013-02-20 18:34:42 -08:00
2013-03-10 13:39:30 -07:00
2013-01-02 14:22:11 +00:00
2012-12-18 15:31:19 -08:00
2012-12-18 15:31:19 -08:00
2013-02-27 08:22:39 -08:00
2013-02-27 08:22:39 -08:00
2013-03-01 11:06:05 -08:00
2013-02-08 20:23:35 -08:00
2012-12-18 15:31:19 -08:00
2013-03-04 12:01:27 -08:00
2013-03-04 16:34:36 -08:00
2013-01-14 15:57:21 -08:00
2013-03-04 16:34:36 -08:00
2013-03-04 16:34:36 -08:00
2013-02-06 16:12:56 -08:00
2013-01-24 08:45:22 -08:00
2013-01-11 14:54:14 -08:00
2012-11-27 14:12:30 -08:00
2013-02-26 23:54:23 -08:00
2013-02-08 10:16:13 +00:00
2012-12-18 15:31:19 -08:00
2012-11-28 10:53:17 -08:00
2013-02-26 10:03:29 -08:00
2013-02-05 15:43:03 -08:00
2013-02-05 15:43:03 -08:00
2013-03-04 11:08:41 -08:00
2013-03-04 16:34:36 -08:00
2013-01-08 10:19:59 -08:00
2012-12-18 15:31:19 -08:00
2012-12-18 15:31:19 -08:00
2012-12-18 15:31:19 -08:00
2013-02-05 15:43:03 -08:00
2012-12-18 15:31:19 -08:00
2012-11-28 10:53:17 -08:00
2012-12-18 15:31:19 -08:00
2013-03-04 16:34:36 -08:00
2013-03-01 17:50:55 -08:00
2013-02-26 23:54:23 -08:00
2013-02-05 15:43:03 -08:00
2013-02-20 10:37:36 +02:00
2013-02-26 15:52:05 -08:00
2013-03-05 11:17:14 -08:00
2013-02-26 15:52:05 -08:00
2013-02-06 16:12:56 -08:00
2013-01-28 17:28:04 +00:00
2012-12-18 15:31:19 -08:00
2012-12-18 15:31:19 -08:00
2013-02-26 15:52:05 -08:00
2012-12-18 15:31:19 -08:00
2012-12-18 15:31:19 -08:00
2012-12-18 15:31:19 -08:00
2013-01-08 10:19:59 -08:00
2012-11-27 14:12:30 -08:00
2013-02-22 11:03:14 -08:00
2013-02-22 11:03:14 -08:00
2013-02-13 12:31:00 -08:00
2013-02-22 11:03:14 -08:00
2013-03-10 13:39:30 -07:00
2013-03-10 13:39:30 -07:00