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,573 @@
|
|
1
|
+
;
|
2
|
+
; jidctred.asm - reduced-size IDCT (64-bit SSE2)
|
3
|
+
;
|
4
|
+
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
5
|
+
; Copyright (C) 2009, 2016, D. R. Commander.
|
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 inverse-DCT routines that produce reduced-size
|
18
|
+
; output: either 4x4 or 2x2 pixels from an 8x8 DCT block.
|
19
|
+
; The following code is based directly on the IJG's original jidctred.c;
|
20
|
+
; see the jidctred.c for more details.
|
21
|
+
|
22
|
+
%include "jsimdext.inc"
|
23
|
+
%include "jdct.inc"
|
24
|
+
|
25
|
+
; --------------------------------------------------------------------------
|
26
|
+
|
27
|
+
%define CONST_BITS 13
|
28
|
+
%define PASS1_BITS 2
|
29
|
+
|
30
|
+
%define DESCALE_P1_4 (CONST_BITS - PASS1_BITS + 1)
|
31
|
+
%define DESCALE_P2_4 (CONST_BITS + PASS1_BITS + 3 + 1)
|
32
|
+
%define DESCALE_P1_2 (CONST_BITS - PASS1_BITS + 2)
|
33
|
+
%define DESCALE_P2_2 (CONST_BITS + PASS1_BITS + 3 + 2)
|
34
|
+
|
35
|
+
%if CONST_BITS == 13
|
36
|
+
F_0_211 equ 1730 ; FIX(0.211164243)
|
37
|
+
F_0_509 equ 4176 ; FIX(0.509795579)
|
38
|
+
F_0_601 equ 4926 ; FIX(0.601344887)
|
39
|
+
F_0_720 equ 5906 ; FIX(0.720959822)
|
40
|
+
F_0_765 equ 6270 ; FIX(0.765366865)
|
41
|
+
F_0_850 equ 6967 ; FIX(0.850430095)
|
42
|
+
F_0_899 equ 7373 ; FIX(0.899976223)
|
43
|
+
F_1_061 equ 8697 ; FIX(1.061594337)
|
44
|
+
F_1_272 equ 10426 ; FIX(1.272758580)
|
45
|
+
F_1_451 equ 11893 ; FIX(1.451774981)
|
46
|
+
F_1_847 equ 15137 ; FIX(1.847759065)
|
47
|
+
F_2_172 equ 17799 ; FIX(2.172734803)
|
48
|
+
F_2_562 equ 20995 ; FIX(2.562915447)
|
49
|
+
F_3_624 equ 29692 ; FIX(3.624509785)
|
50
|
+
%else
|
51
|
+
; NASM cannot do compile-time arithmetic on floating-point constants.
|
52
|
+
%define DESCALE(x, n) (((x) + (1 << ((n) - 1))) >> (n))
|
53
|
+
F_0_211 equ DESCALE( 226735879, 30 - CONST_BITS) ; FIX(0.211164243)
|
54
|
+
F_0_509 equ DESCALE( 547388834, 30 - CONST_BITS) ; FIX(0.509795579)
|
55
|
+
F_0_601 equ DESCALE( 645689155, 30 - CONST_BITS) ; FIX(0.601344887)
|
56
|
+
F_0_720 equ DESCALE( 774124714, 30 - CONST_BITS) ; FIX(0.720959822)
|
57
|
+
F_0_765 equ DESCALE( 821806413, 30 - CONST_BITS) ; FIX(0.765366865)
|
58
|
+
F_0_850 equ DESCALE( 913142361, 30 - CONST_BITS) ; FIX(0.850430095)
|
59
|
+
F_0_899 equ DESCALE( 966342111, 30 - CONST_BITS) ; FIX(0.899976223)
|
60
|
+
F_1_061 equ DESCALE(1139878239, 30 - CONST_BITS) ; FIX(1.061594337)
|
61
|
+
F_1_272 equ DESCALE(1366614119, 30 - CONST_BITS) ; FIX(1.272758580)
|
62
|
+
F_1_451 equ DESCALE(1558831516, 30 - CONST_BITS) ; FIX(1.451774981)
|
63
|
+
F_1_847 equ DESCALE(1984016188, 30 - CONST_BITS) ; FIX(1.847759065)
|
64
|
+
F_2_172 equ DESCALE(2332956230, 30 - CONST_BITS) ; FIX(2.172734803)
|
65
|
+
F_2_562 equ DESCALE(2751909506, 30 - CONST_BITS) ; FIX(2.562915447)
|
66
|
+
F_3_624 equ DESCALE(3891787747, 30 - CONST_BITS) ; FIX(3.624509785)
|
67
|
+
%endif
|
68
|
+
|
69
|
+
; --------------------------------------------------------------------------
|
70
|
+
SECTION SEG_CONST
|
71
|
+
|
72
|
+
alignz 32
|
73
|
+
GLOBAL_DATA(jconst_idct_red_sse2)
|
74
|
+
|
75
|
+
EXTN(jconst_idct_red_sse2):
|
76
|
+
|
77
|
+
PW_F184_MF076 times 4 dw F_1_847, -F_0_765
|
78
|
+
PW_F256_F089 times 4 dw F_2_562, F_0_899
|
79
|
+
PW_F106_MF217 times 4 dw F_1_061, -F_2_172
|
80
|
+
PW_MF060_MF050 times 4 dw -F_0_601, -F_0_509
|
81
|
+
PW_F145_MF021 times 4 dw F_1_451, -F_0_211
|
82
|
+
PW_F362_MF127 times 4 dw F_3_624, -F_1_272
|
83
|
+
PW_F085_MF072 times 4 dw F_0_850, -F_0_720
|
84
|
+
PD_DESCALE_P1_4 times 4 dd 1 << (DESCALE_P1_4 - 1)
|
85
|
+
PD_DESCALE_P2_4 times 4 dd 1 << (DESCALE_P2_4 - 1)
|
86
|
+
PD_DESCALE_P1_2 times 4 dd 1 << (DESCALE_P1_2 - 1)
|
87
|
+
PD_DESCALE_P2_2 times 4 dd 1 << (DESCALE_P2_2 - 1)
|
88
|
+
PB_CENTERJSAMP times 16 db CENTERJSAMPLE
|
89
|
+
|
90
|
+
alignz 32
|
91
|
+
|
92
|
+
; --------------------------------------------------------------------------
|
93
|
+
SECTION SEG_TEXT
|
94
|
+
BITS 64
|
95
|
+
;
|
96
|
+
; Perform dequantization and inverse DCT on one block of coefficients,
|
97
|
+
; producing a reduced-size 4x4 output block.
|
98
|
+
;
|
99
|
+
; GLOBAL(void)
|
100
|
+
; jsimd_idct_4x4_sse2(void *dct_table, JCOEFPTR coef_block,
|
101
|
+
; JSAMPARRAY output_buf, JDIMENSION output_col)
|
102
|
+
;
|
103
|
+
|
104
|
+
; r10 = void *dct_table
|
105
|
+
; r11 = JCOEFPTR coef_block
|
106
|
+
; r12 = JSAMPARRAY output_buf
|
107
|
+
; r13d = JDIMENSION output_col
|
108
|
+
|
109
|
+
%define original_rbp rbp + 0
|
110
|
+
%define wk(i) rbp - (WK_NUM - (i)) * SIZEOF_XMMWORD
|
111
|
+
; xmmword wk[WK_NUM]
|
112
|
+
%define WK_NUM 2
|
113
|
+
|
114
|
+
align 32
|
115
|
+
GLOBAL_FUNCTION(jsimd_idct_4x4_sse2)
|
116
|
+
|
117
|
+
EXTN(jsimd_idct_4x4_sse2):
|
118
|
+
push rbp
|
119
|
+
mov rax, rsp ; rax = original rbp
|
120
|
+
sub rsp, byte 4
|
121
|
+
and rsp, byte (-SIZEOF_XMMWORD) ; align to 128 bits
|
122
|
+
mov [rsp], rax
|
123
|
+
mov rbp, rsp ; rbp = aligned rbp
|
124
|
+
lea rsp, [wk(0)]
|
125
|
+
collect_args 4
|
126
|
+
|
127
|
+
; ---- Pass 1: process columns from input.
|
128
|
+
|
129
|
+
mov rdx, r10 ; quantptr
|
130
|
+
mov rsi, r11 ; inptr
|
131
|
+
|
132
|
+
%ifndef NO_ZERO_COLUMN_TEST_4X4_SSE2
|
133
|
+
mov eax, dword [DWBLOCK(1,0,rsi,SIZEOF_JCOEF)]
|
134
|
+
or eax, dword [DWBLOCK(2,0,rsi,SIZEOF_JCOEF)]
|
135
|
+
jnz short .columnDCT
|
136
|
+
|
137
|
+
movdqa xmm0, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
|
138
|
+
movdqa xmm1, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
|
139
|
+
por xmm0, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
|
140
|
+
por xmm1, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
|
141
|
+
por xmm0, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
|
142
|
+
por xmm1, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
|
143
|
+
por xmm0, xmm1
|
144
|
+
packsswb xmm0, xmm0
|
145
|
+
packsswb xmm0, xmm0
|
146
|
+
movd eax, xmm0
|
147
|
+
test rax, rax
|
148
|
+
jnz short .columnDCT
|
149
|
+
|
150
|
+
; -- AC terms all zero
|
151
|
+
|
152
|
+
movdqa xmm0, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
|
153
|
+
pmullw xmm0, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
154
|
+
|
155
|
+
psllw xmm0, PASS1_BITS
|
156
|
+
|
157
|
+
movdqa xmm3, xmm0 ; xmm0=in0=(00 01 02 03 04 05 06 07)
|
158
|
+
punpcklwd xmm0, xmm0 ; xmm0=(00 00 01 01 02 02 03 03)
|
159
|
+
punpckhwd xmm3, xmm3 ; xmm3=(04 04 05 05 06 06 07 07)
|
160
|
+
|
161
|
+
pshufd xmm1, xmm0, 0x50 ; xmm1=[col0 col1]=(00 00 00 00 01 01 01 01)
|
162
|
+
pshufd xmm0, xmm0, 0xFA ; xmm0=[col2 col3]=(02 02 02 02 03 03 03 03)
|
163
|
+
pshufd xmm6, xmm3, 0x50 ; xmm6=[col4 col5]=(04 04 04 04 05 05 05 05)
|
164
|
+
pshufd xmm3, xmm3, 0xFA ; xmm3=[col6 col7]=(06 06 06 06 07 07 07 07)
|
165
|
+
|
166
|
+
jmp near .column_end
|
167
|
+
%endif
|
168
|
+
.columnDCT:
|
169
|
+
|
170
|
+
; -- Odd part
|
171
|
+
|
172
|
+
movdqa xmm0, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
|
173
|
+
movdqa xmm1, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
|
174
|
+
pmullw xmm0, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
175
|
+
pmullw xmm1, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
176
|
+
movdqa xmm2, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
|
177
|
+
movdqa xmm3, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
|
178
|
+
pmullw xmm2, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
179
|
+
pmullw xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
180
|
+
|
181
|
+
movdqa xmm4, xmm0
|
182
|
+
movdqa xmm5, xmm0
|
183
|
+
punpcklwd xmm4, xmm1
|
184
|
+
punpckhwd xmm5, xmm1
|
185
|
+
movdqa xmm0, xmm4
|
186
|
+
movdqa xmm1, xmm5
|
187
|
+
pmaddwd xmm4, [rel PW_F256_F089] ; xmm4=(tmp2L)
|
188
|
+
pmaddwd xmm5, [rel PW_F256_F089] ; xmm5=(tmp2H)
|
189
|
+
pmaddwd xmm0, [rel PW_F106_MF217] ; xmm0=(tmp0L)
|
190
|
+
pmaddwd xmm1, [rel PW_F106_MF217] ; xmm1=(tmp0H)
|
191
|
+
|
192
|
+
movdqa xmm6, xmm2
|
193
|
+
movdqa xmm7, xmm2
|
194
|
+
punpcklwd xmm6, xmm3
|
195
|
+
punpckhwd xmm7, xmm3
|
196
|
+
movdqa xmm2, xmm6
|
197
|
+
movdqa xmm3, xmm7
|
198
|
+
pmaddwd xmm6, [rel PW_MF060_MF050] ; xmm6=(tmp2L)
|
199
|
+
pmaddwd xmm7, [rel PW_MF060_MF050] ; xmm7=(tmp2H)
|
200
|
+
pmaddwd xmm2, [rel PW_F145_MF021] ; xmm2=(tmp0L)
|
201
|
+
pmaddwd xmm3, [rel PW_F145_MF021] ; xmm3=(tmp0H)
|
202
|
+
|
203
|
+
paddd xmm6, xmm4 ; xmm6=tmp2L
|
204
|
+
paddd xmm7, xmm5 ; xmm7=tmp2H
|
205
|
+
paddd xmm2, xmm0 ; xmm2=tmp0L
|
206
|
+
paddd xmm3, xmm1 ; xmm3=tmp0H
|
207
|
+
|
208
|
+
movdqa XMMWORD [wk(0)], xmm2 ; wk(0)=tmp0L
|
209
|
+
movdqa XMMWORD [wk(1)], xmm3 ; wk(1)=tmp0H
|
210
|
+
|
211
|
+
; -- Even part
|
212
|
+
|
213
|
+
movdqa xmm4, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
|
214
|
+
movdqa xmm5, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
|
215
|
+
movdqa xmm0, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
|
216
|
+
pmullw xmm4, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
217
|
+
pmullw xmm5, XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
218
|
+
pmullw xmm0, XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
219
|
+
|
220
|
+
pxor xmm1, xmm1
|
221
|
+
pxor xmm2, xmm2
|
222
|
+
punpcklwd xmm1, xmm4 ; xmm1=tmp0L
|
223
|
+
punpckhwd xmm2, xmm4 ; xmm2=tmp0H
|
224
|
+
psrad xmm1, (16-CONST_BITS-1) ; psrad xmm1,16 & pslld xmm1,CONST_BITS+1
|
225
|
+
psrad xmm2, (16-CONST_BITS-1) ; psrad xmm2,16 & pslld xmm2,CONST_BITS+1
|
226
|
+
|
227
|
+
movdqa xmm3, xmm5 ; xmm5=in2=z2
|
228
|
+
punpcklwd xmm5, xmm0 ; xmm0=in6=z3
|
229
|
+
punpckhwd xmm3, xmm0
|
230
|
+
pmaddwd xmm5, [rel PW_F184_MF076] ; xmm5=tmp2L
|
231
|
+
pmaddwd xmm3, [rel PW_F184_MF076] ; xmm3=tmp2H
|
232
|
+
|
233
|
+
movdqa xmm4, xmm1
|
234
|
+
movdqa xmm0, xmm2
|
235
|
+
paddd xmm1, xmm5 ; xmm1=tmp10L
|
236
|
+
paddd xmm2, xmm3 ; xmm2=tmp10H
|
237
|
+
psubd xmm4, xmm5 ; xmm4=tmp12L
|
238
|
+
psubd xmm0, xmm3 ; xmm0=tmp12H
|
239
|
+
|
240
|
+
; -- Final output stage
|
241
|
+
|
242
|
+
movdqa xmm5, xmm1
|
243
|
+
movdqa xmm3, xmm2
|
244
|
+
paddd xmm1, xmm6 ; xmm1=data0L
|
245
|
+
paddd xmm2, xmm7 ; xmm2=data0H
|
246
|
+
psubd xmm5, xmm6 ; xmm5=data3L
|
247
|
+
psubd xmm3, xmm7 ; xmm3=data3H
|
248
|
+
|
249
|
+
movdqa xmm6, [rel PD_DESCALE_P1_4] ; xmm6=[rel PD_DESCALE_P1_4]
|
250
|
+
|
251
|
+
paddd xmm1, xmm6
|
252
|
+
paddd xmm2, xmm6
|
253
|
+
psrad xmm1, DESCALE_P1_4
|
254
|
+
psrad xmm2, DESCALE_P1_4
|
255
|
+
paddd xmm5, xmm6
|
256
|
+
paddd xmm3, xmm6
|
257
|
+
psrad xmm5, DESCALE_P1_4
|
258
|
+
psrad xmm3, DESCALE_P1_4
|
259
|
+
|
260
|
+
packssdw xmm1, xmm2 ; xmm1=data0=(00 01 02 03 04 05 06 07)
|
261
|
+
packssdw xmm5, xmm3 ; xmm5=data3=(30 31 32 33 34 35 36 37)
|
262
|
+
|
263
|
+
movdqa xmm7, XMMWORD [wk(0)] ; xmm7=tmp0L
|
264
|
+
movdqa xmm6, XMMWORD [wk(1)] ; xmm6=tmp0H
|
265
|
+
|
266
|
+
movdqa xmm2, xmm4
|
267
|
+
movdqa xmm3, xmm0
|
268
|
+
paddd xmm4, xmm7 ; xmm4=data1L
|
269
|
+
paddd xmm0, xmm6 ; xmm0=data1H
|
270
|
+
psubd xmm2, xmm7 ; xmm2=data2L
|
271
|
+
psubd xmm3, xmm6 ; xmm3=data2H
|
272
|
+
|
273
|
+
movdqa xmm7, [rel PD_DESCALE_P1_4] ; xmm7=[rel PD_DESCALE_P1_4]
|
274
|
+
|
275
|
+
paddd xmm4, xmm7
|
276
|
+
paddd xmm0, xmm7
|
277
|
+
psrad xmm4, DESCALE_P1_4
|
278
|
+
psrad xmm0, DESCALE_P1_4
|
279
|
+
paddd xmm2, xmm7
|
280
|
+
paddd xmm3, xmm7
|
281
|
+
psrad xmm2, DESCALE_P1_4
|
282
|
+
psrad xmm3, DESCALE_P1_4
|
283
|
+
|
284
|
+
packssdw xmm4, xmm0 ; xmm4=data1=(10 11 12 13 14 15 16 17)
|
285
|
+
packssdw xmm2, xmm3 ; xmm2=data2=(20 21 22 23 24 25 26 27)
|
286
|
+
|
287
|
+
movdqa xmm6, xmm1 ; transpose coefficients(phase 1)
|
288
|
+
punpcklwd xmm1, xmm4 ; xmm1=(00 10 01 11 02 12 03 13)
|
289
|
+
punpckhwd xmm6, xmm4 ; xmm6=(04 14 05 15 06 16 07 17)
|
290
|
+
movdqa xmm7, xmm2 ; transpose coefficients(phase 1)
|
291
|
+
punpcklwd xmm2, xmm5 ; xmm2=(20 30 21 31 22 32 23 33)
|
292
|
+
punpckhwd xmm7, xmm5 ; xmm7=(24 34 25 35 26 36 27 37)
|
293
|
+
|
294
|
+
movdqa xmm0, xmm1 ; transpose coefficients(phase 2)
|
295
|
+
punpckldq xmm1, xmm2 ; xmm1=[col0 col1]=(00 10 20 30 01 11 21 31)
|
296
|
+
punpckhdq xmm0, xmm2 ; xmm0=[col2 col3]=(02 12 22 32 03 13 23 33)
|
297
|
+
movdqa xmm3, xmm6 ; transpose coefficients(phase 2)
|
298
|
+
punpckldq xmm6, xmm7 ; xmm6=[col4 col5]=(04 14 24 34 05 15 25 35)
|
299
|
+
punpckhdq xmm3, xmm7 ; xmm3=[col6 col7]=(06 16 26 36 07 17 27 37)
|
300
|
+
.column_end:
|
301
|
+
|
302
|
+
; -- Prefetch the next coefficient block
|
303
|
+
|
304
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 0*32]
|
305
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 1*32]
|
306
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 2*32]
|
307
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 3*32]
|
308
|
+
|
309
|
+
; ---- Pass 2: process rows, store into output array.
|
310
|
+
|
311
|
+
mov rax, [original_rbp]
|
312
|
+
mov rdi, r12 ; (JSAMPROW *)
|
313
|
+
mov eax, r13d
|
314
|
+
|
315
|
+
; -- Even part
|
316
|
+
|
317
|
+
pxor xmm4, xmm4
|
318
|
+
punpcklwd xmm4, xmm1 ; xmm4=tmp0
|
319
|
+
psrad xmm4, (16-CONST_BITS-1) ; psrad xmm4,16 & pslld xmm4,CONST_BITS+1
|
320
|
+
|
321
|
+
; -- Odd part
|
322
|
+
|
323
|
+
punpckhwd xmm1, xmm0
|
324
|
+
punpckhwd xmm6, xmm3
|
325
|
+
movdqa xmm5, xmm1
|
326
|
+
movdqa xmm2, xmm6
|
327
|
+
pmaddwd xmm1, [rel PW_F256_F089] ; xmm1=(tmp2)
|
328
|
+
pmaddwd xmm6, [rel PW_MF060_MF050] ; xmm6=(tmp2)
|
329
|
+
pmaddwd xmm5, [rel PW_F106_MF217] ; xmm5=(tmp0)
|
330
|
+
pmaddwd xmm2, [rel PW_F145_MF021] ; xmm2=(tmp0)
|
331
|
+
|
332
|
+
paddd xmm6, xmm1 ; xmm6=tmp2
|
333
|
+
paddd xmm2, xmm5 ; xmm2=tmp0
|
334
|
+
|
335
|
+
; -- Even part
|
336
|
+
|
337
|
+
punpcklwd xmm0, xmm3
|
338
|
+
pmaddwd xmm0, [rel PW_F184_MF076] ; xmm0=tmp2
|
339
|
+
|
340
|
+
movdqa xmm7, xmm4
|
341
|
+
paddd xmm4, xmm0 ; xmm4=tmp10
|
342
|
+
psubd xmm7, xmm0 ; xmm7=tmp12
|
343
|
+
|
344
|
+
; -- Final output stage
|
345
|
+
|
346
|
+
movdqa xmm1, [rel PD_DESCALE_P2_4] ; xmm1=[rel PD_DESCALE_P2_4]
|
347
|
+
|
348
|
+
movdqa xmm5, xmm4
|
349
|
+
movdqa xmm3, xmm7
|
350
|
+
paddd xmm4, xmm6 ; xmm4=data0=(00 10 20 30)
|
351
|
+
paddd xmm7, xmm2 ; xmm7=data1=(01 11 21 31)
|
352
|
+
psubd xmm5, xmm6 ; xmm5=data3=(03 13 23 33)
|
353
|
+
psubd xmm3, xmm2 ; xmm3=data2=(02 12 22 32)
|
354
|
+
|
355
|
+
paddd xmm4, xmm1
|
356
|
+
paddd xmm7, xmm1
|
357
|
+
psrad xmm4, DESCALE_P2_4
|
358
|
+
psrad xmm7, DESCALE_P2_4
|
359
|
+
paddd xmm5, xmm1
|
360
|
+
paddd xmm3, xmm1
|
361
|
+
psrad xmm5, DESCALE_P2_4
|
362
|
+
psrad xmm3, DESCALE_P2_4
|
363
|
+
|
364
|
+
packssdw xmm4, xmm3 ; xmm4=(00 10 20 30 02 12 22 32)
|
365
|
+
packssdw xmm7, xmm5 ; xmm7=(01 11 21 31 03 13 23 33)
|
366
|
+
|
367
|
+
movdqa xmm0, xmm4 ; transpose coefficients(phase 1)
|
368
|
+
punpcklwd xmm4, xmm7 ; xmm4=(00 01 10 11 20 21 30 31)
|
369
|
+
punpckhwd xmm0, xmm7 ; xmm0=(02 03 12 13 22 23 32 33)
|
370
|
+
|
371
|
+
movdqa xmm6, xmm4 ; transpose coefficients(phase 2)
|
372
|
+
punpckldq xmm4, xmm0 ; xmm4=(00 01 02 03 10 11 12 13)
|
373
|
+
punpckhdq xmm6, xmm0 ; xmm6=(20 21 22 23 30 31 32 33)
|
374
|
+
|
375
|
+
packsswb xmm4, xmm6 ; xmm4=(00 01 02 03 10 11 12 13 20 ..)
|
376
|
+
paddb xmm4, [rel PB_CENTERJSAMP]
|
377
|
+
|
378
|
+
pshufd xmm2, xmm4, 0x39 ; xmm2=(10 11 12 13 20 21 22 23 30 ..)
|
379
|
+
pshufd xmm1, xmm4, 0x4E ; xmm1=(20 21 22 23 30 31 32 33 00 ..)
|
380
|
+
pshufd xmm3, xmm4, 0x93 ; xmm3=(30 31 32 33 00 01 02 03 10 ..)
|
381
|
+
|
382
|
+
mov rdx, JSAMPROW [rdi+0*SIZEOF_JSAMPROW]
|
383
|
+
mov rsi, JSAMPROW [rdi+1*SIZEOF_JSAMPROW]
|
384
|
+
movd XMM_DWORD [rdx+rax*SIZEOF_JSAMPLE], xmm4
|
385
|
+
movd XMM_DWORD [rsi+rax*SIZEOF_JSAMPLE], xmm2
|
386
|
+
mov rdx, JSAMPROW [rdi+2*SIZEOF_JSAMPROW]
|
387
|
+
mov rsi, JSAMPROW [rdi+3*SIZEOF_JSAMPROW]
|
388
|
+
movd XMM_DWORD [rdx+rax*SIZEOF_JSAMPLE], xmm1
|
389
|
+
movd XMM_DWORD [rsi+rax*SIZEOF_JSAMPLE], xmm3
|
390
|
+
|
391
|
+
uncollect_args 4
|
392
|
+
mov rsp, rbp ; rsp <- aligned rbp
|
393
|
+
pop rsp ; rsp <- original rbp
|
394
|
+
pop rbp
|
395
|
+
ret
|
396
|
+
|
397
|
+
; --------------------------------------------------------------------------
|
398
|
+
;
|
399
|
+
; Perform dequantization and inverse DCT on one block of coefficients,
|
400
|
+
; producing a reduced-size 2x2 output block.
|
401
|
+
;
|
402
|
+
; GLOBAL(void)
|
403
|
+
; jsimd_idct_2x2_sse2(void *dct_table, JCOEFPTR coef_block,
|
404
|
+
; JSAMPARRAY output_buf, JDIMENSION output_col)
|
405
|
+
;
|
406
|
+
|
407
|
+
; r10 = void *dct_table
|
408
|
+
; r11 = JCOEFPTR coef_block
|
409
|
+
; r12 = JSAMPARRAY output_buf
|
410
|
+
; r13d = JDIMENSION output_col
|
411
|
+
|
412
|
+
align 32
|
413
|
+
GLOBAL_FUNCTION(jsimd_idct_2x2_sse2)
|
414
|
+
|
415
|
+
EXTN(jsimd_idct_2x2_sse2):
|
416
|
+
push rbp
|
417
|
+
mov rax, rsp
|
418
|
+
mov rbp, rsp
|
419
|
+
collect_args 4
|
420
|
+
push rbx
|
421
|
+
|
422
|
+
; ---- Pass 1: process columns from input.
|
423
|
+
|
424
|
+
mov rdx, r10 ; quantptr
|
425
|
+
mov rsi, r11 ; inptr
|
426
|
+
|
427
|
+
; | input: | result: |
|
428
|
+
; | 00 01 ** 03 ** 05 ** 07 | |
|
429
|
+
; | 10 11 ** 13 ** 15 ** 17 | |
|
430
|
+
; | ** ** ** ** ** ** ** ** | |
|
431
|
+
; | 30 31 ** 33 ** 35 ** 37 | A0 A1 A3 A5 A7 |
|
432
|
+
; | ** ** ** ** ** ** ** ** | B0 B1 B3 B5 B7 |
|
433
|
+
; | 50 51 ** 53 ** 55 ** 57 | |
|
434
|
+
; | ** ** ** ** ** ** ** ** | |
|
435
|
+
; | 70 71 ** 73 ** 75 ** 77 | |
|
436
|
+
|
437
|
+
; -- Odd part
|
438
|
+
|
439
|
+
movdqa xmm0, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
|
440
|
+
movdqa xmm1, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
|
441
|
+
pmullw xmm0, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
442
|
+
pmullw xmm1, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
443
|
+
movdqa xmm2, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
|
444
|
+
movdqa xmm3, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
|
445
|
+
pmullw xmm2, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
446
|
+
pmullw xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
447
|
+
|
448
|
+
; xmm0=(10 11 ** 13 ** 15 ** 17), xmm1=(30 31 ** 33 ** 35 ** 37)
|
449
|
+
; xmm2=(50 51 ** 53 ** 55 ** 57), xmm3=(70 71 ** 73 ** 75 ** 77)
|
450
|
+
|
451
|
+
pcmpeqd xmm7, xmm7
|
452
|
+
pslld xmm7, WORD_BIT ; xmm7={0x0000 0xFFFF 0x0000 0xFFFF ..}
|
453
|
+
|
454
|
+
movdqa xmm4, xmm0 ; xmm4=(10 11 ** 13 ** 15 ** 17)
|
455
|
+
movdqa xmm5, xmm2 ; xmm5=(50 51 ** 53 ** 55 ** 57)
|
456
|
+
punpcklwd xmm4, xmm1 ; xmm4=(10 30 11 31 ** ** 13 33)
|
457
|
+
punpcklwd xmm5, xmm3 ; xmm5=(50 70 51 71 ** ** 53 73)
|
458
|
+
pmaddwd xmm4, [rel PW_F362_MF127]
|
459
|
+
pmaddwd xmm5, [rel PW_F085_MF072]
|
460
|
+
|
461
|
+
psrld xmm0, WORD_BIT ; xmm0=(11 -- 13 -- 15 -- 17 --)
|
462
|
+
pand xmm1, xmm7 ; xmm1=(-- 31 -- 33 -- 35 -- 37)
|
463
|
+
psrld xmm2, WORD_BIT ; xmm2=(51 -- 53 -- 55 -- 57 --)
|
464
|
+
pand xmm3, xmm7 ; xmm3=(-- 71 -- 73 -- 75 -- 77)
|
465
|
+
por xmm0, xmm1 ; xmm0=(11 31 13 33 15 35 17 37)
|
466
|
+
por xmm2, xmm3 ; xmm2=(51 71 53 73 55 75 57 77)
|
467
|
+
pmaddwd xmm0, [rel PW_F362_MF127]
|
468
|
+
pmaddwd xmm2, [rel PW_F085_MF072]
|
469
|
+
|
470
|
+
paddd xmm4, xmm5 ; xmm4=tmp0[col0 col1 **** col3]
|
471
|
+
paddd xmm0, xmm2 ; xmm0=tmp0[col1 col3 col5 col7]
|
472
|
+
|
473
|
+
; -- Even part
|
474
|
+
|
475
|
+
movdqa xmm6, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
|
476
|
+
pmullw xmm6, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
|
477
|
+
|
478
|
+
; xmm6=(00 01 ** 03 ** 05 ** 07)
|
479
|
+
|
480
|
+
movdqa xmm1, xmm6 ; xmm1=(00 01 ** 03 ** 05 ** 07)
|
481
|
+
pslld xmm6, WORD_BIT ; xmm6=(-- 00 -- ** -- ** -- **)
|
482
|
+
pand xmm1, xmm7 ; xmm1=(-- 01 -- 03 -- 05 -- 07)
|
483
|
+
psrad xmm6, (WORD_BIT-CONST_BITS-2) ; xmm6=tmp10[col0 **** **** ****]
|
484
|
+
psrad xmm1, (WORD_BIT-CONST_BITS-2) ; xmm1=tmp10[col1 col3 col5 col7]
|
485
|
+
|
486
|
+
; -- Final output stage
|
487
|
+
|
488
|
+
movdqa xmm3, xmm6
|
489
|
+
movdqa xmm5, xmm1
|
490
|
+
paddd xmm6, xmm4 ; xmm6=data0[col0 **** **** ****]=(A0 ** ** **)
|
491
|
+
paddd xmm1, xmm0 ; xmm1=data0[col1 col3 col5 col7]=(A1 A3 A5 A7)
|
492
|
+
psubd xmm3, xmm4 ; xmm3=data1[col0 **** **** ****]=(B0 ** ** **)
|
493
|
+
psubd xmm5, xmm0 ; xmm5=data1[col1 col3 col5 col7]=(B1 B3 B5 B7)
|
494
|
+
|
495
|
+
movdqa xmm2, [rel PD_DESCALE_P1_2] ; xmm2=[rel PD_DESCALE_P1_2]
|
496
|
+
|
497
|
+
punpckldq xmm6, xmm3 ; xmm6=(A0 B0 ** **)
|
498
|
+
|
499
|
+
movdqa xmm7, xmm1
|
500
|
+
punpcklqdq xmm1, xmm5 ; xmm1=(A1 A3 B1 B3)
|
501
|
+
punpckhqdq xmm7, xmm5 ; xmm7=(A5 A7 B5 B7)
|
502
|
+
|
503
|
+
paddd xmm6, xmm2
|
504
|
+
psrad xmm6, DESCALE_P1_2
|
505
|
+
|
506
|
+
paddd xmm1, xmm2
|
507
|
+
paddd xmm7, xmm2
|
508
|
+
psrad xmm1, DESCALE_P1_2
|
509
|
+
psrad xmm7, DESCALE_P1_2
|
510
|
+
|
511
|
+
; -- Prefetch the next coefficient block
|
512
|
+
|
513
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 0*32]
|
514
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 1*32]
|
515
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 2*32]
|
516
|
+
prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 3*32]
|
517
|
+
|
518
|
+
; ---- Pass 2: process rows, store into output array.
|
519
|
+
|
520
|
+
mov rdi, r12 ; (JSAMPROW *)
|
521
|
+
mov eax, r13d
|
522
|
+
|
523
|
+
; | input:| result:|
|
524
|
+
; | A0 B0 | |
|
525
|
+
; | A1 B1 | C0 C1 |
|
526
|
+
; | A3 B3 | D0 D1 |
|
527
|
+
; | A5 B5 | |
|
528
|
+
; | A7 B7 | |
|
529
|
+
|
530
|
+
; -- Odd part
|
531
|
+
|
532
|
+
packssdw xmm1, xmm1 ; xmm1=(A1 A3 B1 B3 A1 A3 B1 B3)
|
533
|
+
packssdw xmm7, xmm7 ; xmm7=(A5 A7 B5 B7 A5 A7 B5 B7)
|
534
|
+
pmaddwd xmm1, [rel PW_F362_MF127]
|
535
|
+
pmaddwd xmm7, [rel PW_F085_MF072]
|
536
|
+
|
537
|
+
paddd xmm1, xmm7 ; xmm1=tmp0[row0 row1 row0 row1]
|
538
|
+
|
539
|
+
; -- Even part
|
540
|
+
|
541
|
+
pslld xmm6, (CONST_BITS+2) ; xmm6=tmp10[row0 row1 **** ****]
|
542
|
+
|
543
|
+
; -- Final output stage
|
544
|
+
|
545
|
+
movdqa xmm4, xmm6
|
546
|
+
paddd xmm6, xmm1 ; xmm6=data0[row0 row1 **** ****]=(C0 C1 ** **)
|
547
|
+
psubd xmm4, xmm1 ; xmm4=data1[row0 row1 **** ****]=(D0 D1 ** **)
|
548
|
+
|
549
|
+
punpckldq xmm6, xmm4 ; xmm6=(C0 D0 C1 D1)
|
550
|
+
|
551
|
+
paddd xmm6, [rel PD_DESCALE_P2_2]
|
552
|
+
psrad xmm6, DESCALE_P2_2
|
553
|
+
|
554
|
+
packssdw xmm6, xmm6 ; xmm6=(C0 D0 C1 D1 C0 D0 C1 D1)
|
555
|
+
packsswb xmm6, xmm6 ; xmm6=(C0 D0 C1 D1 C0 D0 C1 D1 ..)
|
556
|
+
paddb xmm6, [rel PB_CENTERJSAMP]
|
557
|
+
|
558
|
+
pextrw ebx, xmm6, 0x00 ; ebx=(C0 D0 -- --)
|
559
|
+
pextrw ecx, xmm6, 0x01 ; ecx=(C1 D1 -- --)
|
560
|
+
|
561
|
+
mov rdx, JSAMPROW [rdi+0*SIZEOF_JSAMPROW]
|
562
|
+
mov rsi, JSAMPROW [rdi+1*SIZEOF_JSAMPROW]
|
563
|
+
mov word [rdx+rax*SIZEOF_JSAMPLE], bx
|
564
|
+
mov word [rsi+rax*SIZEOF_JSAMPLE], cx
|
565
|
+
|
566
|
+
pop rbx
|
567
|
+
uncollect_args 4
|
568
|
+
pop rbp
|
569
|
+
ret
|
570
|
+
|
571
|
+
; For some reason, the OS X linker does not honor the request to align the
|
572
|
+
; segment unless we do this.
|
573
|
+
align 32
|