summaryrefslogtreecommitdiff
path: root/pngpriv.h
diff options
context:
space:
mode:
authorRichard Townsend <Richard.Townsend@arm.com>2018-01-25 19:03:04 +0000
committerCosmin Truta <ctruta@gmail.com>2018-09-04 00:04:58 -0400
commit7734cda20cf1236aef60f3bbd2267c97bbb40869 (patch)
tree46bd39573775cfbec419527dcd3573e0bbfcf0e1 /pngpriv.h
parent2fc5ddff180f20ab8f7c689dc7a9562521c2f427 (diff)
downloadlibpng-7734cda20cf1236aef60f3bbd2267c97bbb40869.tar.gz
Optimize png_do_expand_palette for ARM
ARM-specific optimization processes 8 or 4 pixels at once. Improves performance by around 10-22% on a recent ARM Chromebook.
Diffstat (limited to 'pngpriv.h')
-rw-r--r--pngpriv.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/pngpriv.h b/pngpriv.h
index a23febb81..973c3eac1 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -2117,6 +2117,29 @@ PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2,
PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr,
png_const_charp key, png_bytep new_key), PNG_EMPTY);
+#if PNG_ARM_NEON_IMPLEMENTATION == 1
+PNG_INTERNAL_FUNCTION(void,
+ png_riffle_palette_rgba,
+ (png_structrp, png_row_infop),
+ PNG_EMPTY);
+PNG_INTERNAL_FUNCTION(int,
+ png_do_expand_palette_neon_rgba,
+ (png_structrp,
+ png_row_infop,
+ png_const_bytep,
+ const png_bytepp,
+ const png_bytepp),
+ PNG_EMPTY);
+PNG_INTERNAL_FUNCTION(int,
+ png_do_expand_palette_neon_rgb,
+ (png_structrp,
+ png_row_infop,
+ png_const_bytep,
+ const png_bytepp,
+ const png_bytepp),
+ PNG_EMPTY);
+#endif
+
/* Maintainer: Put new private prototypes here ^ */
#include "pngdebug.h"