Move palette code from libvpx/nextgenv2 to aomedia.
Palette code originally by huisu@. Gives 11.68% BDRate improvement on screen content set. Last 7 small speedup patches from me, giving 10% speedup overall for screen content set. From aomedia/master: Revert 57fa6267 : Remove color_index_map From libvpx/nextgenv2: c93e5cc3 : Bring palette back to nextgenv2 827e1b3f : Add test for screen content coding tools in end to end test 78b0bd0a : Complete (mostly) migration of palette mode 8a128c2a : Fixes for Palette mode 4ab00912 : Palette mode: record selected transform type cbb8be76 : Set block size upper bound for Palette mode bb0e6921 : Convert palette from double to float. a0a23b7f : faster code: replace nested for loops by memcpy(). 016a5daa : Palette code: simpler and faster duplicate removal d0000208 : Palette code cleanup 6dde8018 : Use built-in qsort(); create remove_dup() method. f746c103 : Handle centroid rounding inside palette.c itself. d68c7b6d : Palette: count Y colors only for screen content. f1906e96 : Palette code: remove the use of same if condition twice. Locally made sure all combinations of "--enable-ext-intra" and/or "--enable-palette" and/or "--enable-aom-highbitdepth" build OK. P.S. Note for future reference: EXT_INTRA experiment has only been moved *partially* to aomedia at this point. If and when the rest is moved to aomedia, EXT_INTRA + PALETTE combo needs to be moved to aomedia as well. Change-Id: I8826780014ec8a88281e56c8258b7c966121b46f
Showing with 1835 additions and 13 deletions