ffmpeg | branch: master | Clément Bœsch <u...@pkh.me> | Tue Dec 27 17:47:41 2022 +0100| [6c7b54e9622b304db4230bcd8136c7daf47b6a6a] | committer: Clément Bœsch
avfilter/paletteuse: use lowbias32 for color hashing Impact is more negligible than previous commit but still faster (1.02x). > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6c7b54e9622b304db4230bcd8136c7daf47b6a6a --- libavfilter/vf_paletteuse.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c index 65c89ff0bf..0179a399f2 100644 --- a/libavfilter/vf_paletteuse.c +++ b/libavfilter/vf_paletteuse.c @@ -70,8 +70,7 @@ struct color_node { int left_id, right_id; }; -#define NBITS 5 -#define CACHE_SIZE (1<<(3*NBITS)) +#define CACHE_SIZE (1<<15) struct cached_color { uint32_t color; @@ -347,10 +346,7 @@ static av_always_inline int color_get(PaletteUseContext *s, uint32_t color, { int i; struct color_info clrinfo; - const uint8_t rhash = (color>>16) & ((1<<NBITS)-1); - const uint8_t ghash = (color>> 8) & ((1<<NBITS)-1); - const uint8_t bhash = color & ((1<<NBITS)-1); - const unsigned hash = rhash<<(NBITS*2) | ghash<<NBITS | bhash; + const uint32_t hash = ff_lowbias32(color) & (CACHE_SIZE - 1); struct cache_node *node = &s->cache[hash]; struct cached_color *e; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".