epeg 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/MANIFEST +5 -0
- data/TODO +1 -0
- data/epeg/.dockerignore +4 -0
- data/epeg/.gitignore +5 -0
- data/epeg/CMakeLists.txt +30 -0
- data/epeg/Dockerfile +23 -0
- data/epeg/Epeg.h +90 -0
- data/epeg/README.md +42 -0
- data/epeg/epeg_main.c +1642 -0
- data/epeg/epeg_private.h +85 -0
- data/epeg/example/.gitignore +1 -0
- data/epeg/example/CMakeLists.txt +20 -0
- data/epeg/example/example.jpg +0 -0
- data/epeg/example/rotatetest.c +29 -0
- data/epeg/example/scaletest.c +48 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/BUILDING.md +828 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/CMakeLists.txt +1420 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/ChangeLog.md +1494 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/LICENSE.md +132 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/README.ijg +277 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/README.md +356 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cderror.h +137 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cdjpeg.c +145 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cdjpeg.h +157 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/change.log +315 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cjpeg.1 +354 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cjpeg.c +695 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/BuildPackages.cmake +182 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/GNUInstallDirs.cmake +416 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/cmake_uninstall.cmake.in +24 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cmakescripts/testclean.cmake +41 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/cmyk.h +61 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/coderules.txt +78 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/djpeg.1 +296 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/djpeg.c +822 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/annotated.html +104 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/bc_s.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/bdwn.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/classes.html +106 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/closed.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen-extra.css +3 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen.css +1184 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/doxygen.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/dynsections.js +97 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2blank.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2cl.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2doc.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2folderclosed.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2folderopen.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2lastnode.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2link.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mlastnode.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mnode.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2mo.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2node.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2ns.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2plastnode.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2pnode.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2splitbar.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/ftv2vertline.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/functions.html +134 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/functions_vars.html +134 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/group___turbo_j_p_e_g.html +2775 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/index.html +90 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/jquery.js +8 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/modules.html +95 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_f.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_g.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/nav_h.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/open.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_63.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_63.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_64.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_64.js +5 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_68.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_68.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6e.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6e.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6f.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_6f.js +5 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_72.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_72.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_74.js +102 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_77.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_77.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_78.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_78.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_79.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/all_79.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/classes_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/classes_74.js +6 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/close.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enums_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enums_74.js +8 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enumvalues_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/enumvalues_74.js +37 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/functions_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/functions_74.js +31 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/groups_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/groups_74.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/mag_sel.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/nomatches.html +12 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search.css +271 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search.js +809 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_l.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_m.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/search_r.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/typedefs_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/typedefs_74.js +5 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_63.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_63.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_64.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_64.js +5 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_68.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_68.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6e.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6e.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6f.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_6f.js +5 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_72.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_72.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_74.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_74.js +10 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_77.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_77.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_78.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_78.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_79.html +26 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/search/variables_79.js +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjregion.html +186 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjscalingfactor.html +148 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/structtjtransform.html +212 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/sync_off.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/sync_on.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_a.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_b.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_h.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tab_s.png +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doc/html/tabs.css +60 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doxygen-extra.css +3 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/doxygen.config +16 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/example.txt +464 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jaricom.c +157 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/CMakeLists.txt +88 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/MANIFEST.MF +2 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/README +52 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJBench.java +1021 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJExample.java +405 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/TJUnitTest.java +960 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/allclasses-frame.html +24 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/allclasses-noframe.html +24 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/constant-values.html +532 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/deprecated-list.html +252 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/help-doc.html +210 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/index-all.html +1029 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/index.html +71 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJ.html +1356 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJCompressor.html +926 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJCustomFilter.html +241 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJDecompressor.html +1255 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJException.html +340 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJScalingFactor.html +343 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJTransform.html +751 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/TJTransformer.html +421 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/YUVImage.html +765 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-frame.html +31 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-summary.html +202 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/org/libjpegturbo/turbojpeg/package-tree.html +160 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/overview-tree.html +164 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/package-list +1 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/background.gif +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/tab.gif +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/titlebar.gif +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/resources/titlebar_end.gif +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/script.js +30 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/serialized-form.html +176 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/doc/stylesheet.css +474 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJ.java +584 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJCompressor.java +677 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJCustomFilter.java +76 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJDecompressor.java +931 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJException.java +78 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJLoader-unix.java.in +59 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJLoader-win.java.in +35 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJScalingFactor.java +115 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJTransform.java +227 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/TJTransformer.java +163 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org/libjpegturbo/turbojpeg/YUVImage.java +445 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJ.h +129 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJCompressor.h +101 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJDecompressor.h +101 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/java/org_libjpegturbo_turbojpeg_TJTransformer.h +29 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcapimin.c +295 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcapistd.c +162 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcarith.c +932 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jccoefct.c +449 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jccolext.c +144 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jccolor.c +710 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcdctmgr.c +721 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jchuff.c +1096 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jchuff.h +42 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcicc.c +105 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcinit.c +77 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcmainct.c +162 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcmarker.c +664 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcmaster.c +640 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcomapi.c +109 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jconfig.h.in +73 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jconfig.txt +143 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jconfigint.h.in +31 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcparam.c +541 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcphuff.c +1105 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcprepct.c +351 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcsample.c +539 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jcstest.c +126 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jctrans.c +400 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdapimin.c +407 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdapistd.c +639 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdarith.c +773 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdatadst-tj.c +203 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdatadst.c +293 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdatasrc-tj.c +194 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdatasrc.c +295 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdcoefct.c +692 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdcoefct.h +82 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdcol565.c +384 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdcolext.c +143 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdcolor.c +883 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdct.h +208 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jddctmgr.c +352 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdhuff.c +831 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdhuff.h +238 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdicc.c +171 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdinput.c +408 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmainct.c +460 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmainct.h +71 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmarker.c +1377 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmaster.c +737 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmaster.h +28 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmerge.c +617 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmrg565.c +354 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdmrgext.c +184 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdphuff.c +687 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdpostct.c +294 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdsample.c +518 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdsample.h +50 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jdtrans.c +155 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jerror.c +251 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jerror.h +316 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctflt.c +169 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctfst.c +227 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jfdctint.c +288 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jidctflt.c +240 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jidctfst.c +371 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jidctint.c +2627 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jidctred.c +409 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jinclude.h +88 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jmemmgr.c +1179 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jmemnobs.c +115 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jmemsys.h +178 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jmorecfg.h +421 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jpeg_nbits_table.h +4098 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jpegcomp.h +31 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jpegint.h +368 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jpeglib.h +1132 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jpegtran.1 +295 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jpegtran.c +601 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jquant1.c +859 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jquant2.c +1285 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jsimd.h +117 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jsimd_none.c +418 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jsimddct.h +70 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jstdhuff.c +143 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jutils.c +133 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/jversion.h +52 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/libjpeg.map.in +11 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/libjpeg.txt +3144 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/md5/CMakeLists.txt +1 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5.c +275 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5.h +57 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5cmp.c +59 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/md5/md5hl.c +125 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdbmp.c +689 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdcolmap.c +254 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdgif.c +39 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdjpgcom.1 +63 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdjpgcom.c +510 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdppm.c +766 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdrle.c +389 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdswitch.c +424 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/rdtarga.c +509 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/Distribution.xml.in +24 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/License.rtf +20 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/ReadMe.txt +5 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/Welcome.rtf +17 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/deb-control.in +31 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/installer.nsi.in +191 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/libjpeg.pc.in +10 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/libturbojpeg.pc.in +10 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/makecygwinpkg.in +66 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/makedpkg.in +115 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/makemacpkg.in +284 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/makerpm.in +30 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/makesrpm.in +48 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/maketarball.in +51 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/rpm.spec.in +221 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/release/uninstall.in +113 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/sharedlib/CMakeLists.txt +99 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/CMakeLists.txt +385 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm/jsimd.c +721 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm/jsimd_neon.S +2878 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm64/jsimd.c +798 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/arm64/jsimd_neon.S +3433 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/gas-preprocessor.in +1 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-avx2.asm +578 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-mmx.asm +476 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolext-sse2.asm +503 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-avx2.asm +121 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-mmx.asm +121 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jccolor-sse2.asm +120 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-avx2.asm +113 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-mmx.asm +113 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgray-sse2.asm +112 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-avx2.asm +457 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-mmx.asm +355 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcgryext-sse2.asm +382 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jchuff-sse2.asm +424 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcphuff-sse2.asm +660 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-avx2.asm +388 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-mmx.asm +324 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jcsample-sse2.asm +351 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-avx2.asm +515 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-mmx.asm +404 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolext-sse2.asm +458 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-avx2.asm +118 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-mmx.asm +117 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdcolor-sse2.asm +117 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-avx2.asm +136 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-mmx.asm +123 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmerge-sse2.asm +135 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-avx2.asm +575 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-mmx.asm +460 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdmrgext-sse2.asm +517 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-avx2.asm +760 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-mmx.asm +731 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jdsample-sse2.asm +724 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctflt-3dn.asm +318 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctflt-sse.asm +369 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctfst-mmx.asm +395 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctfst-sse2.asm +403 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-avx2.asm +331 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-mmx.asm +620 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jfdctint-sse2.asm +633 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-3dn.asm +451 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-sse.asm +571 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctflt-sse2.asm +497 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctfst-mmx.asm +499 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctfst-sse2.asm +501 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-avx2.asm +453 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-mmx.asm +851 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctint-sse2.asm +858 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctred-mmx.asm +704 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jidctred-sse2.asm +592 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-3dn.asm +230 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-mmx.asm +276 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquant-sse.asm +208 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquantf-sse2.asm +168 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquanti-avx2.asm +188 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jquanti-sse2.asm +201 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jsimd.c +1253 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/i386/jsimdcpu.asm +135 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/jsimd.h +1083 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jccolext-mmi.c +483 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jccolor-mmi.c +148 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jcsample-mmi.c +100 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jcsample.h +28 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdcolext-mmi.c +424 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdcolor-mmi.c +139 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jdsample-mmi.c +245 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jfdctint-mmi.c +398 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jidctint-mmi.c +571 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jquanti-mmi.c +130 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jsimd.c +610 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/jsimd_mmi.h +57 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/loongson/loongson-mmintrin.h +1324 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd.c +1123 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd_dspr2.S +4479 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/mips/jsimd_dspr2_asm.h +292 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jcolsamp.inc +135 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jdct.inc +31 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jpeg_nbits_table.inc +4097 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdcfg.inc +93 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdcfg.inc.h +131 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/nasm/jsimdext.inc +479 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jccolext-altivec.c +269 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jccolor-altivec.c +116 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcgray-altivec.c +111 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcgryext-altivec.c +228 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcsample-altivec.c +159 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jcsample.h +28 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdcolext-altivec.c +276 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdcolor-altivec.c +106 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdmerge-altivec.c +130 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdmrgext-altivec.c +329 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jdsample-altivec.c +400 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jfdctfst-altivec.c +154 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jfdctint-altivec.c +258 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jidctfst-altivec.c +255 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jidctint-altivec.c +357 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jquanti-altivec.c +250 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jsimd.c +872 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/powerpc/jsimd_altivec.h +98 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolext-avx2.asm +558 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolext-sse2.asm +483 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolor-avx2.asm +121 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jccolor-sse2.asm +120 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgray-avx2.asm +113 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgray-sse2.asm +112 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgryext-avx2.asm +437 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcgryext-sse2.asm +362 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jchuff-sse2.asm +346 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcphuff-sse2.asm +637 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcsample-avx2.asm +366 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jcsample-sse2.asm +329 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolext-avx2.asm +495 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolext-sse2.asm +438 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolor-avx2.asm +118 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdcolor-sse2.asm +117 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmerge-avx2.asm +136 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmerge-sse2.asm +135 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmrgext-avx2.asm +593 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdmrgext-sse2.asm +535 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdsample-avx2.asm +695 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jdsample-sse2.asm +664 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctflt-sse.asm +355 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctfst-sse2.asm +389 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctint-avx2.asm +320 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jfdctint-sse2.asm +619 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctflt-sse2.asm +481 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctfst-sse2.asm +490 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctint-avx2.asm +417 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctint-sse2.asm +846 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jidctred-sse2.asm +573 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquantf-sse2.asm +154 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquanti-avx2.asm +162 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jquanti-sse2.asm +187 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jsimd.c +1076 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/simd/x86_64/jsimdcpu.asm +86 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/structure.txt +904 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/nightshot_iso_100.bmp +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/nightshot_iso_100.txt +25 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test.scan +5 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test1.icc +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test1.icc.txt +20 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test2.icc +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/test2.icc.txt +20 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testimgari.jpg +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testimgint.jpg +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig.jpg +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig.ppm +4 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/testorig12.jpg +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_5674_0098.bmp +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_6434_0018a.bmp +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/testimages/vgl_6548_0026a.bmp +0 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjbench.c +1031 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjbenchtest.in +256 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjbenchtest.java.in +215 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjexample.c +396 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjexampletest.in +149 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjexampletest.java.in +151 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjunittest.c +931 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjutil.c +70 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/tjutil.h +47 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/transupp.c +1628 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/transupp.h +210 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-jni.c +1246 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-mapfile +65 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg-mapfile.jni +101 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg.c +2152 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/turbojpeg.h +1744 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/usage.txt +635 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/win/jconfig.h.in +34 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg62-memsrcdst.def +108 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg62.def +106 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg7-memsrcdst.def +110 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg7.def +108 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/win/jpeg8.def +111 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wizard.txt +212 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wrbmp.c +558 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wrgif.c +413 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wrjpgcom.1 +103 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wrjpgcom.c +591 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wrppm.c +365 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wrrle.c +309 -0
- data/epeg/vendor/libjpeg-turbo-2.0.4/wrtarga.c +261 -0
- data/epeg.c +131 -0
- data/epeg.gemspec +18 -0
- data/extconf.rb +80 -0
- data/test.jpg +0 -0
- data/test.rb +42 -0
- metadata +546 -0
@@ -0,0 +1,637 @@
|
|
1
|
+
;
|
2
|
+
; jcphuff-sse2.asm - prepare data for progressive Huffman encoding
|
3
|
+
; (64-bit SSE2)
|
4
|
+
;
|
5
|
+
; Copyright (C) 2016, 2018, Matthieu Darbois
|
6
|
+
;
|
7
|
+
; Based on the x86 SIMD extension for IJG JPEG library
|
8
|
+
; Copyright (C) 1999-2006, MIYASAKA Masaru.
|
9
|
+
; For conditions of distribution and use, see copyright notice in jsimdext.inc
|
10
|
+
;
|
11
|
+
; This file should be assembled with NASM (Netwide Assembler),
|
12
|
+
; can *not* be assembled with Microsoft's MASM or any compatible
|
13
|
+
; assembler (including Borland's Turbo Assembler).
|
14
|
+
; NASM is available from http://nasm.sourceforge.net/ or
|
15
|
+
; http://sourceforge.net/project/showfiles.php?group_id=6208
|
16
|
+
;
|
17
|
+
; This file contains an SSE2 implementation of data preparation for progressive
|
18
|
+
; Huffman encoding. See jcphuff.c for more details.
|
19
|
+
|
20
|
+
%include "jsimdext.inc"
|
21
|
+
|
22
|
+
; --------------------------------------------------------------------------
|
23
|
+
SECTION SEG_TEXT
|
24
|
+
BITS 64
|
25
|
+
|
26
|
+
; --------------------------------------------------------------------------
|
27
|
+
; Macros to load data for jsimd_encode_mcu_AC_first_prepare_sse2() and
|
28
|
+
; jsimd_encode_mcu_AC_refine_prepare_sse2()
|
29
|
+
|
30
|
+
%macro LOAD16 0
|
31
|
+
pxor N0, N0
|
32
|
+
pxor N1, N1
|
33
|
+
|
34
|
+
mov T0d, INT [LUT + 0*SIZEOF_INT]
|
35
|
+
mov T1d, INT [LUT + 8*SIZEOF_INT]
|
36
|
+
pinsrw X0, word [BLOCK + T0 * 2], 0
|
37
|
+
pinsrw X1, word [BLOCK + T1 * 2], 0
|
38
|
+
|
39
|
+
mov T0d, INT [LUT + 1*SIZEOF_INT]
|
40
|
+
mov T1d, INT [LUT + 9*SIZEOF_INT]
|
41
|
+
pinsrw X0, word [BLOCK + T0 * 2], 1
|
42
|
+
pinsrw X1, word [BLOCK + T1 * 2], 1
|
43
|
+
|
44
|
+
mov T0d, INT [LUT + 2*SIZEOF_INT]
|
45
|
+
mov T1d, INT [LUT + 10*SIZEOF_INT]
|
46
|
+
pinsrw X0, word [BLOCK + T0 * 2], 2
|
47
|
+
pinsrw X1, word [BLOCK + T1 * 2], 2
|
48
|
+
|
49
|
+
mov T0d, INT [LUT + 3*SIZEOF_INT]
|
50
|
+
mov T1d, INT [LUT + 11*SIZEOF_INT]
|
51
|
+
pinsrw X0, word [BLOCK + T0 * 2], 3
|
52
|
+
pinsrw X1, word [BLOCK + T1 * 2], 3
|
53
|
+
|
54
|
+
mov T0d, INT [LUT + 4*SIZEOF_INT]
|
55
|
+
mov T1d, INT [LUT + 12*SIZEOF_INT]
|
56
|
+
pinsrw X0, word [BLOCK + T0 * 2], 4
|
57
|
+
pinsrw X1, word [BLOCK + T1 * 2], 4
|
58
|
+
|
59
|
+
mov T0d, INT [LUT + 5*SIZEOF_INT]
|
60
|
+
mov T1d, INT [LUT + 13*SIZEOF_INT]
|
61
|
+
pinsrw X0, word [BLOCK + T0 * 2], 5
|
62
|
+
pinsrw X1, word [BLOCK + T1 * 2], 5
|
63
|
+
|
64
|
+
mov T0d, INT [LUT + 6*SIZEOF_INT]
|
65
|
+
mov T1d, INT [LUT + 14*SIZEOF_INT]
|
66
|
+
pinsrw X0, word [BLOCK + T0 * 2], 6
|
67
|
+
pinsrw X1, word [BLOCK + T1 * 2], 6
|
68
|
+
|
69
|
+
mov T0d, INT [LUT + 7*SIZEOF_INT]
|
70
|
+
mov T1d, INT [LUT + 15*SIZEOF_INT]
|
71
|
+
pinsrw X0, word [BLOCK + T0 * 2], 7
|
72
|
+
pinsrw X1, word [BLOCK + T1 * 2], 7
|
73
|
+
%endmacro
|
74
|
+
|
75
|
+
%macro LOAD15 0
|
76
|
+
pxor N0, N0
|
77
|
+
pxor N1, N1
|
78
|
+
pxor X1, X1
|
79
|
+
|
80
|
+
mov T0d, INT [LUT + 0*SIZEOF_INT]
|
81
|
+
mov T1d, INT [LUT + 8*SIZEOF_INT]
|
82
|
+
pinsrw X0, word [BLOCK + T0 * 2], 0
|
83
|
+
pinsrw X1, word [BLOCK + T1 * 2], 0
|
84
|
+
|
85
|
+
mov T0d, INT [LUT + 1*SIZEOF_INT]
|
86
|
+
pinsrw X0, word [BLOCK + T0 * 2], 1
|
87
|
+
|
88
|
+
mov T0d, INT [LUT + 2*SIZEOF_INT]
|
89
|
+
pinsrw X0, word [BLOCK + T0 * 2], 2
|
90
|
+
|
91
|
+
mov T0d, INT [LUT + 3*SIZEOF_INT]
|
92
|
+
pinsrw X0, word [BLOCK + T0 * 2], 3
|
93
|
+
|
94
|
+
mov T0d, INT [LUT + 4*SIZEOF_INT]
|
95
|
+
pinsrw X0, word [BLOCK + T0 * 2], 4
|
96
|
+
|
97
|
+
mov T0d, INT [LUT + 5*SIZEOF_INT]
|
98
|
+
pinsrw X0, word [BLOCK + T0 * 2], 5
|
99
|
+
|
100
|
+
mov T0d, INT [LUT + 6*SIZEOF_INT]
|
101
|
+
pinsrw X0, word [BLOCK + T0 * 2], 6
|
102
|
+
|
103
|
+
mov T0d, INT [LUT + 7*SIZEOF_INT]
|
104
|
+
pinsrw X0, word [BLOCK + T0 * 2], 7
|
105
|
+
|
106
|
+
cmp LENEND, 2
|
107
|
+
jl %%.ELOAD15
|
108
|
+
mov T1d, INT [LUT + 9*SIZEOF_INT]
|
109
|
+
pinsrw X1, word [BLOCK + T1 * 2], 1
|
110
|
+
|
111
|
+
cmp LENEND, 3
|
112
|
+
jl %%.ELOAD15
|
113
|
+
mov T1d, INT [LUT + 10*SIZEOF_INT]
|
114
|
+
pinsrw X1, word [BLOCK + T1 * 2], 2
|
115
|
+
|
116
|
+
cmp LENEND, 4
|
117
|
+
jl %%.ELOAD15
|
118
|
+
mov T1d, INT [LUT + 11*SIZEOF_INT]
|
119
|
+
pinsrw X1, word [BLOCK + T1 * 2], 3
|
120
|
+
|
121
|
+
cmp LENEND, 5
|
122
|
+
jl %%.ELOAD15
|
123
|
+
mov T1d, INT [LUT + 12*SIZEOF_INT]
|
124
|
+
pinsrw X1, word [BLOCK + T1 * 2], 4
|
125
|
+
|
126
|
+
cmp LENEND, 6
|
127
|
+
jl %%.ELOAD15
|
128
|
+
mov T1d, INT [LUT + 13*SIZEOF_INT]
|
129
|
+
pinsrw X1, word [BLOCK + T1 * 2], 5
|
130
|
+
|
131
|
+
cmp LENEND, 7
|
132
|
+
jl %%.ELOAD15
|
133
|
+
mov T1d, INT [LUT + 14*SIZEOF_INT]
|
134
|
+
pinsrw X1, word [BLOCK + T1 * 2], 6
|
135
|
+
%%.ELOAD15:
|
136
|
+
%endmacro
|
137
|
+
|
138
|
+
%macro LOAD8 0
|
139
|
+
pxor N0, N0
|
140
|
+
|
141
|
+
mov T0d, INT [LUT + 0*SIZEOF_INT]
|
142
|
+
pinsrw X0, word [BLOCK + T0 * 2], 0
|
143
|
+
|
144
|
+
mov T0d, INT [LUT + 1*SIZEOF_INT]
|
145
|
+
pinsrw X0, word [BLOCK + T0 * 2], 1
|
146
|
+
|
147
|
+
mov T0d, INT [LUT + 2*SIZEOF_INT]
|
148
|
+
pinsrw X0, word [BLOCK + T0 * 2], 2
|
149
|
+
|
150
|
+
mov T0d, INT [LUT + 3*SIZEOF_INT]
|
151
|
+
pinsrw X0, word [BLOCK + T0 * 2], 3
|
152
|
+
|
153
|
+
mov T0d, INT [LUT + 4*SIZEOF_INT]
|
154
|
+
pinsrw X0, word [BLOCK + T0 * 2], 4
|
155
|
+
|
156
|
+
mov T0d, INT [LUT + 5*SIZEOF_INT]
|
157
|
+
pinsrw X0, word [BLOCK + T0 * 2], 5
|
158
|
+
|
159
|
+
mov T0d, INT [LUT + 6*SIZEOF_INT]
|
160
|
+
pinsrw X0, word [BLOCK + T0 * 2], 6
|
161
|
+
|
162
|
+
mov T0d, INT [LUT + 7*SIZEOF_INT]
|
163
|
+
pinsrw X0, word [BLOCK + T0 * 2], 7
|
164
|
+
%endmacro
|
165
|
+
|
166
|
+
%macro LOAD7 0
|
167
|
+
pxor N0, N0
|
168
|
+
pxor X0, X0
|
169
|
+
|
170
|
+
mov T1d, INT [LUT + 0*SIZEOF_INT]
|
171
|
+
pinsrw X0, word [BLOCK + T1 * 2], 0
|
172
|
+
|
173
|
+
cmp LENEND, 2
|
174
|
+
jl %%.ELOAD7
|
175
|
+
mov T1d, INT [LUT + 1*SIZEOF_INT]
|
176
|
+
pinsrw X0, word [BLOCK + T1 * 2], 1
|
177
|
+
|
178
|
+
cmp LENEND, 3
|
179
|
+
jl %%.ELOAD7
|
180
|
+
mov T1d, INT [LUT + 2*SIZEOF_INT]
|
181
|
+
pinsrw X0, word [BLOCK + T1 * 2], 2
|
182
|
+
|
183
|
+
cmp LENEND, 4
|
184
|
+
jl %%.ELOAD7
|
185
|
+
mov T1d, INT [LUT + 3*SIZEOF_INT]
|
186
|
+
pinsrw X0, word [BLOCK + T1 * 2], 3
|
187
|
+
|
188
|
+
cmp LENEND, 5
|
189
|
+
jl %%.ELOAD7
|
190
|
+
mov T1d, INT [LUT + 4*SIZEOF_INT]
|
191
|
+
pinsrw X0, word [BLOCK + T1 * 2], 4
|
192
|
+
|
193
|
+
cmp LENEND, 6
|
194
|
+
jl %%.ELOAD7
|
195
|
+
mov T1d, INT [LUT + 5*SIZEOF_INT]
|
196
|
+
pinsrw X0, word [BLOCK + T1 * 2], 5
|
197
|
+
|
198
|
+
cmp LENEND, 7
|
199
|
+
jl %%.ELOAD7
|
200
|
+
mov T1d, INT [LUT + 6*SIZEOF_INT]
|
201
|
+
pinsrw X0, word [BLOCK + T1 * 2], 6
|
202
|
+
%%.ELOAD7:
|
203
|
+
%endmacro
|
204
|
+
|
205
|
+
%macro REDUCE0 0
|
206
|
+
movdqa xmm0, XMMWORD [VALUES + ( 0*2)]
|
207
|
+
movdqa xmm1, XMMWORD [VALUES + ( 8*2)]
|
208
|
+
movdqa xmm2, XMMWORD [VALUES + (16*2)]
|
209
|
+
movdqa xmm3, XMMWORD [VALUES + (24*2)]
|
210
|
+
movdqa xmm4, XMMWORD [VALUES + (32*2)]
|
211
|
+
movdqa xmm5, XMMWORD [VALUES + (40*2)]
|
212
|
+
movdqa xmm6, XMMWORD [VALUES + (48*2)]
|
213
|
+
movdqa xmm7, XMMWORD [VALUES + (56*2)]
|
214
|
+
|
215
|
+
pcmpeqw xmm0, ZERO
|
216
|
+
pcmpeqw xmm1, ZERO
|
217
|
+
pcmpeqw xmm2, ZERO
|
218
|
+
pcmpeqw xmm3, ZERO
|
219
|
+
pcmpeqw xmm4, ZERO
|
220
|
+
pcmpeqw xmm5, ZERO
|
221
|
+
pcmpeqw xmm6, ZERO
|
222
|
+
pcmpeqw xmm7, ZERO
|
223
|
+
|
224
|
+
packsswb xmm0, xmm1
|
225
|
+
packsswb xmm2, xmm3
|
226
|
+
packsswb xmm4, xmm5
|
227
|
+
packsswb xmm6, xmm7
|
228
|
+
|
229
|
+
pmovmskb eax, xmm0
|
230
|
+
pmovmskb ecx, xmm2
|
231
|
+
pmovmskb edx, xmm4
|
232
|
+
pmovmskb esi, xmm6
|
233
|
+
|
234
|
+
shl rcx, 16
|
235
|
+
shl rdx, 32
|
236
|
+
shl rsi, 48
|
237
|
+
|
238
|
+
or rax, rcx
|
239
|
+
or rdx, rsi
|
240
|
+
or rax, rdx
|
241
|
+
|
242
|
+
not rax
|
243
|
+
|
244
|
+
mov MMWORD [r15], rax
|
245
|
+
%endmacro
|
246
|
+
|
247
|
+
;
|
248
|
+
; Prepare data for jsimd_encode_mcu_AC_first().
|
249
|
+
;
|
250
|
+
; GLOBAL(void)
|
251
|
+
; jsimd_encode_mcu_AC_first_prepare_sse2(const JCOEF *block,
|
252
|
+
; const int *jpeg_natural_order_start,
|
253
|
+
; int Sl, int Al, JCOEF *values,
|
254
|
+
; size_t *zerobits)
|
255
|
+
;
|
256
|
+
; r10 = const JCOEF *block
|
257
|
+
; r11 = const int *jpeg_natural_order_start
|
258
|
+
; r12 = int Sl
|
259
|
+
; r13 = int Al
|
260
|
+
; r14 = JCOEF *values
|
261
|
+
; r15 = size_t *zerobits
|
262
|
+
|
263
|
+
%define ZERO xmm9
|
264
|
+
%define X0 xmm0
|
265
|
+
%define X1 xmm1
|
266
|
+
%define N0 xmm2
|
267
|
+
%define N1 xmm3
|
268
|
+
%define AL xmm4
|
269
|
+
%define K eax
|
270
|
+
%define LUT r11
|
271
|
+
%define T0 rcx
|
272
|
+
%define T0d ecx
|
273
|
+
%define T1 rdx
|
274
|
+
%define T1d edx
|
275
|
+
%define BLOCK r10
|
276
|
+
%define VALUES r14
|
277
|
+
%define LEN r12d
|
278
|
+
%define LENEND r13d
|
279
|
+
|
280
|
+
align 32
|
281
|
+
GLOBAL_FUNCTION(jsimd_encode_mcu_AC_first_prepare_sse2)
|
282
|
+
|
283
|
+
EXTN(jsimd_encode_mcu_AC_first_prepare_sse2):
|
284
|
+
push rbp
|
285
|
+
mov rax, rsp ; rax = original rbp
|
286
|
+
sub rsp, byte 4
|
287
|
+
and rsp, byte (-SIZEOF_XMMWORD) ; align to 128 bits
|
288
|
+
mov [rsp], rax
|
289
|
+
mov rbp, rsp ; rbp = aligned rbp
|
290
|
+
lea rsp, [rbp - 16]
|
291
|
+
collect_args 6
|
292
|
+
|
293
|
+
movdqa XMMWORD [rbp - 16], ZERO
|
294
|
+
|
295
|
+
movd AL, r13d
|
296
|
+
pxor ZERO, ZERO
|
297
|
+
mov K, LEN
|
298
|
+
mov LENEND, LEN
|
299
|
+
and K, -16
|
300
|
+
and LENEND, 7
|
301
|
+
shr K, 4
|
302
|
+
jz .ELOOP16
|
303
|
+
.BLOOP16:
|
304
|
+
LOAD16
|
305
|
+
pcmpgtw N0, X0
|
306
|
+
pcmpgtw N1, X1
|
307
|
+
paddw X0, N0
|
308
|
+
paddw X1, N1
|
309
|
+
pxor X0, N0
|
310
|
+
pxor X1, N1
|
311
|
+
psrlw X0, AL
|
312
|
+
psrlw X1, AL
|
313
|
+
pxor N0, X0
|
314
|
+
pxor N1, X1
|
315
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
316
|
+
movdqa XMMWORD [VALUES + (8) * 2], X1
|
317
|
+
movdqa XMMWORD [VALUES + (0 + DCTSIZE2) * 2], N0
|
318
|
+
movdqa XMMWORD [VALUES + (8 + DCTSIZE2) * 2], N1
|
319
|
+
add VALUES, 16*2
|
320
|
+
add LUT, 16*SIZEOF_INT
|
321
|
+
dec K
|
322
|
+
jnz .BLOOP16
|
323
|
+
test LEN, 15
|
324
|
+
je .PADDING
|
325
|
+
.ELOOP16:
|
326
|
+
test LEN, 8
|
327
|
+
jz .TRY7
|
328
|
+
test LEN, 7
|
329
|
+
jz .TRY8
|
330
|
+
|
331
|
+
LOAD15
|
332
|
+
pcmpgtw N0, X0
|
333
|
+
pcmpgtw N1, X1
|
334
|
+
paddw X0, N0
|
335
|
+
paddw X1, N1
|
336
|
+
pxor X0, N0
|
337
|
+
pxor X1, N1
|
338
|
+
psrlw X0, AL
|
339
|
+
psrlw X1, AL
|
340
|
+
pxor N0, X0
|
341
|
+
pxor N1, X1
|
342
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
343
|
+
movdqa XMMWORD [VALUES + (8) * 2], X1
|
344
|
+
movdqa XMMWORD [VALUES + (0 + DCTSIZE2) * 2], N0
|
345
|
+
movdqa XMMWORD [VALUES + (8 + DCTSIZE2) * 2], N1
|
346
|
+
add VALUES, 16*2
|
347
|
+
jmp .PADDING
|
348
|
+
.TRY8:
|
349
|
+
LOAD8
|
350
|
+
pcmpgtw N0, X0
|
351
|
+
paddw X0, N0
|
352
|
+
pxor X0, N0
|
353
|
+
psrlw X0, AL
|
354
|
+
pxor N0, X0
|
355
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
356
|
+
movdqa XMMWORD [VALUES + (0 + DCTSIZE2) * 2], N0
|
357
|
+
add VALUES, 8*2
|
358
|
+
jmp .PADDING
|
359
|
+
.TRY7:
|
360
|
+
LOAD7
|
361
|
+
pcmpgtw N0, X0
|
362
|
+
paddw X0, N0
|
363
|
+
pxor X0, N0
|
364
|
+
psrlw X0, AL
|
365
|
+
pxor N0, X0
|
366
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
367
|
+
movdqa XMMWORD [VALUES + (0 + DCTSIZE2) * 2], N0
|
368
|
+
add VALUES, 8*2
|
369
|
+
.PADDING:
|
370
|
+
mov K, LEN
|
371
|
+
add K, 7
|
372
|
+
and K, -8
|
373
|
+
shr K, 3
|
374
|
+
sub K, DCTSIZE2/8
|
375
|
+
jz .EPADDING
|
376
|
+
align 16
|
377
|
+
.ZEROLOOP:
|
378
|
+
movdqa XMMWORD [VALUES + 0], ZERO
|
379
|
+
add VALUES, 8*2
|
380
|
+
inc K
|
381
|
+
jnz .ZEROLOOP
|
382
|
+
.EPADDING:
|
383
|
+
sub VALUES, DCTSIZE2*2
|
384
|
+
|
385
|
+
REDUCE0
|
386
|
+
|
387
|
+
movdqa ZERO, XMMWORD [rbp - 16]
|
388
|
+
uncollect_args 6
|
389
|
+
mov rsp, rbp ; rsp <- aligned rbp
|
390
|
+
pop rsp ; rsp <- original rbp
|
391
|
+
pop rbp
|
392
|
+
ret
|
393
|
+
|
394
|
+
%undef ZERO
|
395
|
+
%undef X0
|
396
|
+
%undef X1
|
397
|
+
%undef N0
|
398
|
+
%undef N1
|
399
|
+
%undef AL
|
400
|
+
%undef K
|
401
|
+
%undef LUT
|
402
|
+
%undef T0
|
403
|
+
%undef T0d
|
404
|
+
%undef T1
|
405
|
+
%undef T1d
|
406
|
+
%undef BLOCK
|
407
|
+
%undef VALUES
|
408
|
+
%undef LEN
|
409
|
+
%undef LENEND
|
410
|
+
|
411
|
+
;
|
412
|
+
; Prepare data for jsimd_encode_mcu_AC_refine().
|
413
|
+
;
|
414
|
+
; GLOBAL(int)
|
415
|
+
; jsimd_encode_mcu_AC_refine_prepare_sse2(const JCOEF *block,
|
416
|
+
; const int *jpeg_natural_order_start,
|
417
|
+
; int Sl, int Al, JCOEF *absvalues,
|
418
|
+
; size_t *bits)
|
419
|
+
;
|
420
|
+
; r10 = const JCOEF *block
|
421
|
+
; r11 = const int *jpeg_natural_order_start
|
422
|
+
; r12 = int Sl
|
423
|
+
; r13 = int Al
|
424
|
+
; r14 = JCOEF *values
|
425
|
+
; r15 = size_t *bits
|
426
|
+
|
427
|
+
%define ZERO xmm9
|
428
|
+
%define ONE xmm5
|
429
|
+
%define X0 xmm0
|
430
|
+
%define X1 xmm1
|
431
|
+
%define N0 xmm2
|
432
|
+
%define N1 xmm3
|
433
|
+
%define AL xmm4
|
434
|
+
%define K eax
|
435
|
+
%define KK r9d
|
436
|
+
%define EOB r8d
|
437
|
+
%define SIGN rdi
|
438
|
+
%define LUT r11
|
439
|
+
%define T0 rcx
|
440
|
+
%define T0d ecx
|
441
|
+
%define T1 rdx
|
442
|
+
%define T1d edx
|
443
|
+
%define BLOCK r10
|
444
|
+
%define VALUES r14
|
445
|
+
%define LEN r12d
|
446
|
+
%define LENEND r13d
|
447
|
+
|
448
|
+
align 32
|
449
|
+
GLOBAL_FUNCTION(jsimd_encode_mcu_AC_refine_prepare_sse2)
|
450
|
+
|
451
|
+
EXTN(jsimd_encode_mcu_AC_refine_prepare_sse2):
|
452
|
+
push rbp
|
453
|
+
mov rax, rsp ; rax = original rbp
|
454
|
+
sub rsp, byte 4
|
455
|
+
and rsp, byte (-SIZEOF_XMMWORD) ; align to 128 bits
|
456
|
+
mov [rsp], rax
|
457
|
+
mov rbp, rsp ; rbp = aligned rbp
|
458
|
+
lea rsp, [rbp - 16]
|
459
|
+
collect_args 6
|
460
|
+
|
461
|
+
movdqa XMMWORD [rbp - 16], ZERO
|
462
|
+
|
463
|
+
xor SIGN, SIGN
|
464
|
+
xor EOB, EOB
|
465
|
+
xor KK, KK
|
466
|
+
movd AL, r13d
|
467
|
+
pxor ZERO, ZERO
|
468
|
+
pcmpeqw ONE, ONE
|
469
|
+
psrlw ONE, 15
|
470
|
+
mov K, LEN
|
471
|
+
mov LENEND, LEN
|
472
|
+
and K, -16
|
473
|
+
and LENEND, 7
|
474
|
+
shr K, 4
|
475
|
+
jz .ELOOPR16
|
476
|
+
.BLOOPR16:
|
477
|
+
LOAD16
|
478
|
+
pcmpgtw N0, X0
|
479
|
+
pcmpgtw N1, X1
|
480
|
+
paddw X0, N0
|
481
|
+
paddw X1, N1
|
482
|
+
pxor X0, N0
|
483
|
+
pxor X1, N1
|
484
|
+
psrlw X0, AL
|
485
|
+
psrlw X1, AL
|
486
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
487
|
+
movdqa XMMWORD [VALUES + (8) * 2], X1
|
488
|
+
pcmpeqw X0, ONE
|
489
|
+
pcmpeqw X1, ONE
|
490
|
+
packsswb N0, N1
|
491
|
+
packsswb X0, X1
|
492
|
+
pmovmskb T0d, N0 ; lsignbits.val16u[k>>4] = _mm_movemask_epi8(neg);
|
493
|
+
pmovmskb T1d, X0 ; idx = _mm_movemask_epi8(x1);
|
494
|
+
shr SIGN, 16 ; make room for sizebits
|
495
|
+
shl T0, 48
|
496
|
+
or SIGN, T0
|
497
|
+
bsr T1d, T1d ; idx = 16 - (__builtin_clz(idx)>>1);
|
498
|
+
jz .CONTINUER16 ; if (idx) {
|
499
|
+
mov EOB, KK
|
500
|
+
add EOB, T1d ; EOB = k + idx;
|
501
|
+
.CONTINUER16:
|
502
|
+
add VALUES, 16*2
|
503
|
+
add LUT, 16*SIZEOF_INT
|
504
|
+
add KK, 16
|
505
|
+
dec K
|
506
|
+
jnz .BLOOPR16
|
507
|
+
.ELOOPR16:
|
508
|
+
test LEN, 8
|
509
|
+
jz .TRYR7
|
510
|
+
test LEN, 7
|
511
|
+
jz .TRYR8
|
512
|
+
|
513
|
+
LOAD15
|
514
|
+
pcmpgtw N0, X0
|
515
|
+
pcmpgtw N1, X1
|
516
|
+
paddw X0, N0
|
517
|
+
paddw X1, N1
|
518
|
+
pxor X0, N0
|
519
|
+
pxor X1, N1
|
520
|
+
psrlw X0, AL
|
521
|
+
psrlw X1, AL
|
522
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
523
|
+
movdqa XMMWORD [VALUES + (8) * 2], X1
|
524
|
+
pcmpeqw X0, ONE
|
525
|
+
pcmpeqw X1, ONE
|
526
|
+
packsswb N0, N1
|
527
|
+
packsswb X0, X1
|
528
|
+
pmovmskb T0d, N0 ; lsignbits.val16u[k>>4] = _mm_movemask_epi8(neg);
|
529
|
+
pmovmskb T1d, X0 ; idx = _mm_movemask_epi8(x1);
|
530
|
+
shr SIGN, 16 ; make room for sizebits
|
531
|
+
shl T0, 48
|
532
|
+
or SIGN, T0
|
533
|
+
bsr T1d, T1d ; idx = 16 - (__builtin_clz(idx)>>1);
|
534
|
+
jz .CONTINUER15 ; if (idx) {
|
535
|
+
mov EOB, KK
|
536
|
+
add EOB, T1d ; EOB = k + idx;
|
537
|
+
.CONTINUER15:
|
538
|
+
add VALUES, 16*2
|
539
|
+
jmp .PADDINGR
|
540
|
+
.TRYR8:
|
541
|
+
LOAD8
|
542
|
+
|
543
|
+
pcmpgtw N0, X0
|
544
|
+
paddw X0, N0
|
545
|
+
pxor X0, N0
|
546
|
+
psrlw X0, AL
|
547
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
548
|
+
pcmpeqw X0, ONE
|
549
|
+
packsswb N0, ZERO
|
550
|
+
packsswb X0, ZERO
|
551
|
+
pmovmskb T0d, N0 ; lsignbits.val16u[k>>4] = _mm_movemask_epi8(neg);
|
552
|
+
pmovmskb T1d, X0 ; idx = _mm_movemask_epi8(x1);
|
553
|
+
shr SIGN, 8 ; make room for sizebits
|
554
|
+
shl T0, 56
|
555
|
+
or SIGN, T0
|
556
|
+
bsr T1d, T1d ; idx = 16 - (__builtin_clz(idx)>>1);
|
557
|
+
jz .CONTINUER8 ; if (idx) {
|
558
|
+
mov EOB, KK
|
559
|
+
add EOB, T1d ; EOB = k + idx;
|
560
|
+
.CONTINUER8:
|
561
|
+
add VALUES, 8*2
|
562
|
+
jmp .PADDINGR
|
563
|
+
.TRYR7:
|
564
|
+
LOAD7
|
565
|
+
|
566
|
+
pcmpgtw N0, X0
|
567
|
+
paddw X0, N0
|
568
|
+
pxor X0, N0
|
569
|
+
psrlw X0, AL
|
570
|
+
movdqa XMMWORD [VALUES + (0) * 2], X0
|
571
|
+
pcmpeqw X0, ONE
|
572
|
+
packsswb N0, ZERO
|
573
|
+
packsswb X0, ZERO
|
574
|
+
pmovmskb T0d, N0 ; lsignbits.val16u[k>>4] = _mm_movemask_epi8(neg);
|
575
|
+
pmovmskb T1d, X0 ; idx = _mm_movemask_epi8(x1);
|
576
|
+
shr SIGN, 8 ; make room for sizebits
|
577
|
+
shl T0, 56
|
578
|
+
or SIGN, T0
|
579
|
+
bsr T1d, T1d ; idx = 16 - (__builtin_clz(idx)>>1);
|
580
|
+
jz .CONTINUER7 ; if (idx) {
|
581
|
+
mov EOB, KK
|
582
|
+
add EOB, T1d ; EOB = k + idx;
|
583
|
+
.CONTINUER7:
|
584
|
+
add VALUES, 8*2
|
585
|
+
.PADDINGR:
|
586
|
+
mov K, LEN
|
587
|
+
add K, 7
|
588
|
+
and K, -8
|
589
|
+
shr K, 3
|
590
|
+
sub K, DCTSIZE2/8
|
591
|
+
jz .EPADDINGR
|
592
|
+
align 16
|
593
|
+
.ZEROLOOPR:
|
594
|
+
movdqa XMMWORD [VALUES + 0], ZERO
|
595
|
+
shr SIGN, 8
|
596
|
+
add VALUES, 8*2
|
597
|
+
inc K
|
598
|
+
jnz .ZEROLOOPR
|
599
|
+
.EPADDINGR:
|
600
|
+
not SIGN
|
601
|
+
sub VALUES, DCTSIZE2*2
|
602
|
+
mov MMWORD [r15+SIZEOF_MMWORD], SIGN
|
603
|
+
|
604
|
+
REDUCE0
|
605
|
+
|
606
|
+
mov eax, EOB
|
607
|
+
movdqa ZERO, XMMWORD [rbp - 16]
|
608
|
+
uncollect_args 6
|
609
|
+
mov rsp, rbp ; rsp <- aligned rbp
|
610
|
+
pop rsp ; rsp <- original rbp
|
611
|
+
pop rbp
|
612
|
+
ret
|
613
|
+
|
614
|
+
%undef ZERO
|
615
|
+
%undef ONE
|
616
|
+
%undef X0
|
617
|
+
%undef X1
|
618
|
+
%undef N0
|
619
|
+
%undef N1
|
620
|
+
%undef AL
|
621
|
+
%undef K
|
622
|
+
%undef KK
|
623
|
+
%undef EOB
|
624
|
+
%undef SIGN
|
625
|
+
%undef LUT
|
626
|
+
%undef T0
|
627
|
+
%undef T0d
|
628
|
+
%undef T1
|
629
|
+
%undef T1d
|
630
|
+
%undef BLOCK
|
631
|
+
%undef VALUES
|
632
|
+
%undef LEN
|
633
|
+
%undef LENEND
|
634
|
+
|
635
|
+
; For some reason, the OS X linker does not honor the request to align the
|
636
|
+
; segment unless we do this.
|
637
|
+
align 32
|