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,499 @@
|
|
1
|
+
;
|
2
|
+
; jidctfst.asm - fast integer IDCT (MMX)
|
3
|
+
;
|
4
|
+
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
5
|
+
; Copyright (C) 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 a fast, not so accurate integer implementation of
|
18
|
+
; the inverse DCT (Discrete Cosine Transform). The following code is
|
19
|
+
; based directly on the IJG's original jidctfst.c; see the jidctfst.c
|
20
|
+
; for more details.
|
21
|
+
|
22
|
+
%include "jsimdext.inc"
|
23
|
+
%include "jdct.inc"
|
24
|
+
|
25
|
+
; --------------------------------------------------------------------------
|
26
|
+
|
27
|
+
%define CONST_BITS 8 ; 14 is also OK.
|
28
|
+
%define PASS1_BITS 2
|
29
|
+
|
30
|
+
%if IFAST_SCALE_BITS != PASS1_BITS
|
31
|
+
%error "'IFAST_SCALE_BITS' must be equal to 'PASS1_BITS'."
|
32
|
+
%endif
|
33
|
+
|
34
|
+
%if CONST_BITS == 8
|
35
|
+
F_1_082 equ 277 ; FIX(1.082392200)
|
36
|
+
F_1_414 equ 362 ; FIX(1.414213562)
|
37
|
+
F_1_847 equ 473 ; FIX(1.847759065)
|
38
|
+
F_2_613 equ 669 ; FIX(2.613125930)
|
39
|
+
F_1_613 equ (F_2_613 - 256) ; FIX(2.613125930) - FIX(1)
|
40
|
+
%else
|
41
|
+
; NASM cannot do compile-time arithmetic on floating-point constants.
|
42
|
+
%define DESCALE(x, n) (((x) + (1 << ((n) - 1))) >> (n))
|
43
|
+
F_1_082 equ DESCALE(1162209775, 30 - CONST_BITS) ; FIX(1.082392200)
|
44
|
+
F_1_414 equ DESCALE(1518500249, 30 - CONST_BITS) ; FIX(1.414213562)
|
45
|
+
F_1_847 equ DESCALE(1984016188, 30 - CONST_BITS) ; FIX(1.847759065)
|
46
|
+
F_2_613 equ DESCALE(2805822602, 30 - CONST_BITS) ; FIX(2.613125930)
|
47
|
+
F_1_613 equ (F_2_613 - (1 << CONST_BITS)) ; FIX(2.613125930) - FIX(1)
|
48
|
+
%endif
|
49
|
+
|
50
|
+
; --------------------------------------------------------------------------
|
51
|
+
SECTION SEG_CONST
|
52
|
+
|
53
|
+
; PRE_MULTIPLY_SCALE_BITS <= 2 (to avoid overflow)
|
54
|
+
; CONST_BITS + CONST_SHIFT + PRE_MULTIPLY_SCALE_BITS == 16 (for pmulhw)
|
55
|
+
|
56
|
+
%define PRE_MULTIPLY_SCALE_BITS 2
|
57
|
+
%define CONST_SHIFT (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)
|
58
|
+
|
59
|
+
alignz 32
|
60
|
+
GLOBAL_DATA(jconst_idct_ifast_mmx)
|
61
|
+
|
62
|
+
EXTN(jconst_idct_ifast_mmx):
|
63
|
+
|
64
|
+
PW_F1414 times 4 dw F_1_414 << CONST_SHIFT
|
65
|
+
PW_F1847 times 4 dw F_1_847 << CONST_SHIFT
|
66
|
+
PW_MF1613 times 4 dw -F_1_613 << CONST_SHIFT
|
67
|
+
PW_F1082 times 4 dw F_1_082 << CONST_SHIFT
|
68
|
+
PB_CENTERJSAMP times 8 db CENTERJSAMPLE
|
69
|
+
|
70
|
+
alignz 32
|
71
|
+
|
72
|
+
; --------------------------------------------------------------------------
|
73
|
+
SECTION SEG_TEXT
|
74
|
+
BITS 32
|
75
|
+
;
|
76
|
+
; Perform dequantization and inverse DCT on one block of coefficients.
|
77
|
+
;
|
78
|
+
; GLOBAL(void)
|
79
|
+
; jsimd_idct_ifast_mmx(void *dct_table, JCOEFPTR coef_block,
|
80
|
+
; JSAMPARRAY output_buf, JDIMENSION output_col)
|
81
|
+
;
|
82
|
+
|
83
|
+
%define dct_table(b) (b) + 8 ; jpeg_component_info *compptr
|
84
|
+
%define coef_block(b) (b) + 12 ; JCOEFPTR coef_block
|
85
|
+
%define output_buf(b) (b) + 16 ; JSAMPARRAY output_buf
|
86
|
+
%define output_col(b) (b) + 20 ; JDIMENSION output_col
|
87
|
+
|
88
|
+
%define original_ebp ebp + 0
|
89
|
+
%define wk(i) ebp - (WK_NUM - (i)) * SIZEOF_MMWORD
|
90
|
+
; mmword wk[WK_NUM]
|
91
|
+
%define WK_NUM 2
|
92
|
+
%define workspace wk(0) - DCTSIZE2 * SIZEOF_JCOEF
|
93
|
+
; JCOEF workspace[DCTSIZE2]
|
94
|
+
|
95
|
+
align 32
|
96
|
+
GLOBAL_FUNCTION(jsimd_idct_ifast_mmx)
|
97
|
+
|
98
|
+
EXTN(jsimd_idct_ifast_mmx):
|
99
|
+
push ebp
|
100
|
+
mov eax, esp ; eax = original ebp
|
101
|
+
sub esp, byte 4
|
102
|
+
and esp, byte (-SIZEOF_MMWORD) ; align to 64 bits
|
103
|
+
mov [esp], eax
|
104
|
+
mov ebp, esp ; ebp = aligned ebp
|
105
|
+
lea esp, [workspace]
|
106
|
+
push ebx
|
107
|
+
; push ecx ; need not be preserved
|
108
|
+
; push edx ; need not be preserved
|
109
|
+
push esi
|
110
|
+
push edi
|
111
|
+
|
112
|
+
get_GOT ebx ; get GOT address
|
113
|
+
|
114
|
+
; ---- Pass 1: process columns from input, store into work array.
|
115
|
+
|
116
|
+
; mov eax, [original_ebp]
|
117
|
+
mov edx, POINTER [dct_table(eax)] ; quantptr
|
118
|
+
mov esi, JCOEFPTR [coef_block(eax)] ; inptr
|
119
|
+
lea edi, [workspace] ; JCOEF *wsptr
|
120
|
+
mov ecx, DCTSIZE/4 ; ctr
|
121
|
+
alignx 16, 7
|
122
|
+
.columnloop:
|
123
|
+
%ifndef NO_ZERO_COLUMN_TEST_IFAST_MMX
|
124
|
+
mov eax, dword [DWBLOCK(1,0,esi,SIZEOF_JCOEF)]
|
125
|
+
or eax, dword [DWBLOCK(2,0,esi,SIZEOF_JCOEF)]
|
126
|
+
jnz short .columnDCT
|
127
|
+
|
128
|
+
movq mm0, MMWORD [MMBLOCK(1,0,esi,SIZEOF_JCOEF)]
|
129
|
+
movq mm1, MMWORD [MMBLOCK(2,0,esi,SIZEOF_JCOEF)]
|
130
|
+
por mm0, MMWORD [MMBLOCK(3,0,esi,SIZEOF_JCOEF)]
|
131
|
+
por mm1, MMWORD [MMBLOCK(4,0,esi,SIZEOF_JCOEF)]
|
132
|
+
por mm0, MMWORD [MMBLOCK(5,0,esi,SIZEOF_JCOEF)]
|
133
|
+
por mm1, MMWORD [MMBLOCK(6,0,esi,SIZEOF_JCOEF)]
|
134
|
+
por mm0, MMWORD [MMBLOCK(7,0,esi,SIZEOF_JCOEF)]
|
135
|
+
por mm1, mm0
|
136
|
+
packsswb mm1, mm1
|
137
|
+
movd eax, mm1
|
138
|
+
test eax, eax
|
139
|
+
jnz short .columnDCT
|
140
|
+
|
141
|
+
; -- AC terms all zero
|
142
|
+
|
143
|
+
movq mm0, MMWORD [MMBLOCK(0,0,esi,SIZEOF_JCOEF)]
|
144
|
+
pmullw mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
145
|
+
|
146
|
+
movq mm2, mm0 ; mm0=in0=(00 01 02 03)
|
147
|
+
punpcklwd mm0, mm0 ; mm0=(00 00 01 01)
|
148
|
+
punpckhwd mm2, mm2 ; mm2=(02 02 03 03)
|
149
|
+
|
150
|
+
movq mm1, mm0
|
151
|
+
punpckldq mm0, mm0 ; mm0=(00 00 00 00)
|
152
|
+
punpckhdq mm1, mm1 ; mm1=(01 01 01 01)
|
153
|
+
movq mm3, mm2
|
154
|
+
punpckldq mm2, mm2 ; mm2=(02 02 02 02)
|
155
|
+
punpckhdq mm3, mm3 ; mm3=(03 03 03 03)
|
156
|
+
|
157
|
+
movq MMWORD [MMBLOCK(0,0,edi,SIZEOF_JCOEF)], mm0
|
158
|
+
movq MMWORD [MMBLOCK(0,1,edi,SIZEOF_JCOEF)], mm0
|
159
|
+
movq MMWORD [MMBLOCK(1,0,edi,SIZEOF_JCOEF)], mm1
|
160
|
+
movq MMWORD [MMBLOCK(1,1,edi,SIZEOF_JCOEF)], mm1
|
161
|
+
movq MMWORD [MMBLOCK(2,0,edi,SIZEOF_JCOEF)], mm2
|
162
|
+
movq MMWORD [MMBLOCK(2,1,edi,SIZEOF_JCOEF)], mm2
|
163
|
+
movq MMWORD [MMBLOCK(3,0,edi,SIZEOF_JCOEF)], mm3
|
164
|
+
movq MMWORD [MMBLOCK(3,1,edi,SIZEOF_JCOEF)], mm3
|
165
|
+
jmp near .nextcolumn
|
166
|
+
alignx 16, 7
|
167
|
+
%endif
|
168
|
+
.columnDCT:
|
169
|
+
|
170
|
+
; -- Even part
|
171
|
+
|
172
|
+
movq mm0, MMWORD [MMBLOCK(0,0,esi,SIZEOF_JCOEF)]
|
173
|
+
movq mm1, MMWORD [MMBLOCK(2,0,esi,SIZEOF_JCOEF)]
|
174
|
+
pmullw mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
175
|
+
pmullw mm1, MMWORD [MMBLOCK(2,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
176
|
+
movq mm2, MMWORD [MMBLOCK(4,0,esi,SIZEOF_JCOEF)]
|
177
|
+
movq mm3, MMWORD [MMBLOCK(6,0,esi,SIZEOF_JCOEF)]
|
178
|
+
pmullw mm2, MMWORD [MMBLOCK(4,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
179
|
+
pmullw mm3, MMWORD [MMBLOCK(6,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
180
|
+
|
181
|
+
movq mm4, mm0
|
182
|
+
movq mm5, mm1
|
183
|
+
psubw mm0, mm2 ; mm0=tmp11
|
184
|
+
psubw mm1, mm3
|
185
|
+
paddw mm4, mm2 ; mm4=tmp10
|
186
|
+
paddw mm5, mm3 ; mm5=tmp13
|
187
|
+
|
188
|
+
psllw mm1, PRE_MULTIPLY_SCALE_BITS
|
189
|
+
pmulhw mm1, [GOTOFF(ebx,PW_F1414)]
|
190
|
+
psubw mm1, mm5 ; mm1=tmp12
|
191
|
+
|
192
|
+
movq mm6, mm4
|
193
|
+
movq mm7, mm0
|
194
|
+
psubw mm4, mm5 ; mm4=tmp3
|
195
|
+
psubw mm0, mm1 ; mm0=tmp2
|
196
|
+
paddw mm6, mm5 ; mm6=tmp0
|
197
|
+
paddw mm7, mm1 ; mm7=tmp1
|
198
|
+
|
199
|
+
movq MMWORD [wk(1)], mm4 ; wk(1)=tmp3
|
200
|
+
movq MMWORD [wk(0)], mm0 ; wk(0)=tmp2
|
201
|
+
|
202
|
+
; -- Odd part
|
203
|
+
|
204
|
+
movq mm2, MMWORD [MMBLOCK(1,0,esi,SIZEOF_JCOEF)]
|
205
|
+
movq mm3, MMWORD [MMBLOCK(3,0,esi,SIZEOF_JCOEF)]
|
206
|
+
pmullw mm2, MMWORD [MMBLOCK(1,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
207
|
+
pmullw mm3, MMWORD [MMBLOCK(3,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
208
|
+
movq mm5, MMWORD [MMBLOCK(5,0,esi,SIZEOF_JCOEF)]
|
209
|
+
movq mm1, MMWORD [MMBLOCK(7,0,esi,SIZEOF_JCOEF)]
|
210
|
+
pmullw mm5, MMWORD [MMBLOCK(5,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
211
|
+
pmullw mm1, MMWORD [MMBLOCK(7,0,edx,SIZEOF_IFAST_MULT_TYPE)]
|
212
|
+
|
213
|
+
movq mm4, mm2
|
214
|
+
movq mm0, mm5
|
215
|
+
psubw mm2, mm1 ; mm2=z12
|
216
|
+
psubw mm5, mm3 ; mm5=z10
|
217
|
+
paddw mm4, mm1 ; mm4=z11
|
218
|
+
paddw mm0, mm3 ; mm0=z13
|
219
|
+
|
220
|
+
movq mm1, mm5 ; mm1=z10(unscaled)
|
221
|
+
psllw mm2, PRE_MULTIPLY_SCALE_BITS
|
222
|
+
psllw mm5, PRE_MULTIPLY_SCALE_BITS
|
223
|
+
|
224
|
+
movq mm3, mm4
|
225
|
+
psubw mm4, mm0
|
226
|
+
paddw mm3, mm0 ; mm3=tmp7
|
227
|
+
|
228
|
+
psllw mm4, PRE_MULTIPLY_SCALE_BITS
|
229
|
+
pmulhw mm4, [GOTOFF(ebx,PW_F1414)] ; mm4=tmp11
|
230
|
+
|
231
|
+
; To avoid overflow...
|
232
|
+
;
|
233
|
+
; (Original)
|
234
|
+
; tmp12 = -2.613125930 * z10 + z5;
|
235
|
+
;
|
236
|
+
; (This implementation)
|
237
|
+
; tmp12 = (-1.613125930 - 1) * z10 + z5;
|
238
|
+
; = -1.613125930 * z10 - z10 + z5;
|
239
|
+
|
240
|
+
movq mm0, mm5
|
241
|
+
paddw mm5, mm2
|
242
|
+
pmulhw mm5, [GOTOFF(ebx,PW_F1847)] ; mm5=z5
|
243
|
+
pmulhw mm0, [GOTOFF(ebx,PW_MF1613)]
|
244
|
+
pmulhw mm2, [GOTOFF(ebx,PW_F1082)]
|
245
|
+
psubw mm0, mm1
|
246
|
+
psubw mm2, mm5 ; mm2=tmp10
|
247
|
+
paddw mm0, mm5 ; mm0=tmp12
|
248
|
+
|
249
|
+
; -- Final output stage
|
250
|
+
|
251
|
+
psubw mm0, mm3 ; mm0=tmp6
|
252
|
+
movq mm1, mm6
|
253
|
+
movq mm5, mm7
|
254
|
+
paddw mm6, mm3 ; mm6=data0=(00 01 02 03)
|
255
|
+
paddw mm7, mm0 ; mm7=data1=(10 11 12 13)
|
256
|
+
psubw mm1, mm3 ; mm1=data7=(70 71 72 73)
|
257
|
+
psubw mm5, mm0 ; mm5=data6=(60 61 62 63)
|
258
|
+
psubw mm4, mm0 ; mm4=tmp5
|
259
|
+
|
260
|
+
movq mm3, mm6 ; transpose coefficients(phase 1)
|
261
|
+
punpcklwd mm6, mm7 ; mm6=(00 10 01 11)
|
262
|
+
punpckhwd mm3, mm7 ; mm3=(02 12 03 13)
|
263
|
+
movq mm0, mm5 ; transpose coefficients(phase 1)
|
264
|
+
punpcklwd mm5, mm1 ; mm5=(60 70 61 71)
|
265
|
+
punpckhwd mm0, mm1 ; mm0=(62 72 63 73)
|
266
|
+
|
267
|
+
movq mm7, MMWORD [wk(0)] ; mm7=tmp2
|
268
|
+
movq mm1, MMWORD [wk(1)] ; mm1=tmp3
|
269
|
+
|
270
|
+
movq MMWORD [wk(0)], mm5 ; wk(0)=(60 70 61 71)
|
271
|
+
movq MMWORD [wk(1)], mm0 ; wk(1)=(62 72 63 73)
|
272
|
+
|
273
|
+
paddw mm2, mm4 ; mm2=tmp4
|
274
|
+
movq mm5, mm7
|
275
|
+
movq mm0, mm1
|
276
|
+
paddw mm7, mm4 ; mm7=data2=(20 21 22 23)
|
277
|
+
paddw mm1, mm2 ; mm1=data4=(40 41 42 43)
|
278
|
+
psubw mm5, mm4 ; mm5=data5=(50 51 52 53)
|
279
|
+
psubw mm0, mm2 ; mm0=data3=(30 31 32 33)
|
280
|
+
|
281
|
+
movq mm4, mm7 ; transpose coefficients(phase 1)
|
282
|
+
punpcklwd mm7, mm0 ; mm7=(20 30 21 31)
|
283
|
+
punpckhwd mm4, mm0 ; mm4=(22 32 23 33)
|
284
|
+
movq mm2, mm1 ; transpose coefficients(phase 1)
|
285
|
+
punpcklwd mm1, mm5 ; mm1=(40 50 41 51)
|
286
|
+
punpckhwd mm2, mm5 ; mm2=(42 52 43 53)
|
287
|
+
|
288
|
+
movq mm0, mm6 ; transpose coefficients(phase 2)
|
289
|
+
punpckldq mm6, mm7 ; mm6=(00 10 20 30)
|
290
|
+
punpckhdq mm0, mm7 ; mm0=(01 11 21 31)
|
291
|
+
movq mm5, mm3 ; transpose coefficients(phase 2)
|
292
|
+
punpckldq mm3, mm4 ; mm3=(02 12 22 32)
|
293
|
+
punpckhdq mm5, mm4 ; mm5=(03 13 23 33)
|
294
|
+
|
295
|
+
movq mm7, MMWORD [wk(0)] ; mm7=(60 70 61 71)
|
296
|
+
movq mm4, MMWORD [wk(1)] ; mm4=(62 72 63 73)
|
297
|
+
|
298
|
+
movq MMWORD [MMBLOCK(0,0,edi,SIZEOF_JCOEF)], mm6
|
299
|
+
movq MMWORD [MMBLOCK(1,0,edi,SIZEOF_JCOEF)], mm0
|
300
|
+
movq MMWORD [MMBLOCK(2,0,edi,SIZEOF_JCOEF)], mm3
|
301
|
+
movq MMWORD [MMBLOCK(3,0,edi,SIZEOF_JCOEF)], mm5
|
302
|
+
|
303
|
+
movq mm6, mm1 ; transpose coefficients(phase 2)
|
304
|
+
punpckldq mm1, mm7 ; mm1=(40 50 60 70)
|
305
|
+
punpckhdq mm6, mm7 ; mm6=(41 51 61 71)
|
306
|
+
movq mm0, mm2 ; transpose coefficients(phase 2)
|
307
|
+
punpckldq mm2, mm4 ; mm2=(42 52 62 72)
|
308
|
+
punpckhdq mm0, mm4 ; mm0=(43 53 63 73)
|
309
|
+
|
310
|
+
movq MMWORD [MMBLOCK(0,1,edi,SIZEOF_JCOEF)], mm1
|
311
|
+
movq MMWORD [MMBLOCK(1,1,edi,SIZEOF_JCOEF)], mm6
|
312
|
+
movq MMWORD [MMBLOCK(2,1,edi,SIZEOF_JCOEF)], mm2
|
313
|
+
movq MMWORD [MMBLOCK(3,1,edi,SIZEOF_JCOEF)], mm0
|
314
|
+
|
315
|
+
.nextcolumn:
|
316
|
+
add esi, byte 4*SIZEOF_JCOEF ; coef_block
|
317
|
+
add edx, byte 4*SIZEOF_IFAST_MULT_TYPE ; quantptr
|
318
|
+
add edi, byte 4*DCTSIZE*SIZEOF_JCOEF ; wsptr
|
319
|
+
dec ecx ; ctr
|
320
|
+
jnz near .columnloop
|
321
|
+
|
322
|
+
; ---- Pass 2: process rows from work array, store into output array.
|
323
|
+
|
324
|
+
mov eax, [original_ebp]
|
325
|
+
lea esi, [workspace] ; JCOEF *wsptr
|
326
|
+
mov edi, JSAMPARRAY [output_buf(eax)] ; (JSAMPROW *)
|
327
|
+
mov eax, JDIMENSION [output_col(eax)]
|
328
|
+
mov ecx, DCTSIZE/4 ; ctr
|
329
|
+
alignx 16, 7
|
330
|
+
.rowloop:
|
331
|
+
|
332
|
+
; -- Even part
|
333
|
+
|
334
|
+
movq mm0, MMWORD [MMBLOCK(0,0,esi,SIZEOF_JCOEF)]
|
335
|
+
movq mm1, MMWORD [MMBLOCK(2,0,esi,SIZEOF_JCOEF)]
|
336
|
+
movq mm2, MMWORD [MMBLOCK(4,0,esi,SIZEOF_JCOEF)]
|
337
|
+
movq mm3, MMWORD [MMBLOCK(6,0,esi,SIZEOF_JCOEF)]
|
338
|
+
|
339
|
+
movq mm4, mm0
|
340
|
+
movq mm5, mm1
|
341
|
+
psubw mm0, mm2 ; mm0=tmp11
|
342
|
+
psubw mm1, mm3
|
343
|
+
paddw mm4, mm2 ; mm4=tmp10
|
344
|
+
paddw mm5, mm3 ; mm5=tmp13
|
345
|
+
|
346
|
+
psllw mm1, PRE_MULTIPLY_SCALE_BITS
|
347
|
+
pmulhw mm1, [GOTOFF(ebx,PW_F1414)]
|
348
|
+
psubw mm1, mm5 ; mm1=tmp12
|
349
|
+
|
350
|
+
movq mm6, mm4
|
351
|
+
movq mm7, mm0
|
352
|
+
psubw mm4, mm5 ; mm4=tmp3
|
353
|
+
psubw mm0, mm1 ; mm0=tmp2
|
354
|
+
paddw mm6, mm5 ; mm6=tmp0
|
355
|
+
paddw mm7, mm1 ; mm7=tmp1
|
356
|
+
|
357
|
+
movq MMWORD [wk(1)], mm4 ; wk(1)=tmp3
|
358
|
+
movq MMWORD [wk(0)], mm0 ; wk(0)=tmp2
|
359
|
+
|
360
|
+
; -- Odd part
|
361
|
+
|
362
|
+
movq mm2, MMWORD [MMBLOCK(1,0,esi,SIZEOF_JCOEF)]
|
363
|
+
movq mm3, MMWORD [MMBLOCK(3,0,esi,SIZEOF_JCOEF)]
|
364
|
+
movq mm5, MMWORD [MMBLOCK(5,0,esi,SIZEOF_JCOEF)]
|
365
|
+
movq mm1, MMWORD [MMBLOCK(7,0,esi,SIZEOF_JCOEF)]
|
366
|
+
|
367
|
+
movq mm4, mm2
|
368
|
+
movq mm0, mm5
|
369
|
+
psubw mm2, mm1 ; mm2=z12
|
370
|
+
psubw mm5, mm3 ; mm5=z10
|
371
|
+
paddw mm4, mm1 ; mm4=z11
|
372
|
+
paddw mm0, mm3 ; mm0=z13
|
373
|
+
|
374
|
+
movq mm1, mm5 ; mm1=z10(unscaled)
|
375
|
+
psllw mm2, PRE_MULTIPLY_SCALE_BITS
|
376
|
+
psllw mm5, PRE_MULTIPLY_SCALE_BITS
|
377
|
+
|
378
|
+
movq mm3, mm4
|
379
|
+
psubw mm4, mm0
|
380
|
+
paddw mm3, mm0 ; mm3=tmp7
|
381
|
+
|
382
|
+
psllw mm4, PRE_MULTIPLY_SCALE_BITS
|
383
|
+
pmulhw mm4, [GOTOFF(ebx,PW_F1414)] ; mm4=tmp11
|
384
|
+
|
385
|
+
; To avoid overflow...
|
386
|
+
;
|
387
|
+
; (Original)
|
388
|
+
; tmp12 = -2.613125930 * z10 + z5;
|
389
|
+
;
|
390
|
+
; (This implementation)
|
391
|
+
; tmp12 = (-1.613125930 - 1) * z10 + z5;
|
392
|
+
; = -1.613125930 * z10 - z10 + z5;
|
393
|
+
|
394
|
+
movq mm0, mm5
|
395
|
+
paddw mm5, mm2
|
396
|
+
pmulhw mm5, [GOTOFF(ebx,PW_F1847)] ; mm5=z5
|
397
|
+
pmulhw mm0, [GOTOFF(ebx,PW_MF1613)]
|
398
|
+
pmulhw mm2, [GOTOFF(ebx,PW_F1082)]
|
399
|
+
psubw mm0, mm1
|
400
|
+
psubw mm2, mm5 ; mm2=tmp10
|
401
|
+
paddw mm0, mm5 ; mm0=tmp12
|
402
|
+
|
403
|
+
; -- Final output stage
|
404
|
+
|
405
|
+
psubw mm0, mm3 ; mm0=tmp6
|
406
|
+
movq mm1, mm6
|
407
|
+
movq mm5, mm7
|
408
|
+
paddw mm6, mm3 ; mm6=data0=(00 10 20 30)
|
409
|
+
paddw mm7, mm0 ; mm7=data1=(01 11 21 31)
|
410
|
+
psraw mm6, (PASS1_BITS+3) ; descale
|
411
|
+
psraw mm7, (PASS1_BITS+3) ; descale
|
412
|
+
psubw mm1, mm3 ; mm1=data7=(07 17 27 37)
|
413
|
+
psubw mm5, mm0 ; mm5=data6=(06 16 26 36)
|
414
|
+
psraw mm1, (PASS1_BITS+3) ; descale
|
415
|
+
psraw mm5, (PASS1_BITS+3) ; descale
|
416
|
+
psubw mm4, mm0 ; mm4=tmp5
|
417
|
+
|
418
|
+
packsswb mm6, mm5 ; mm6=(00 10 20 30 06 16 26 36)
|
419
|
+
packsswb mm7, mm1 ; mm7=(01 11 21 31 07 17 27 37)
|
420
|
+
|
421
|
+
movq mm3, MMWORD [wk(0)] ; mm3=tmp2
|
422
|
+
movq mm0, MMWORD [wk(1)] ; mm0=tmp3
|
423
|
+
|
424
|
+
paddw mm2, mm4 ; mm2=tmp4
|
425
|
+
movq mm5, mm3
|
426
|
+
movq mm1, mm0
|
427
|
+
paddw mm3, mm4 ; mm3=data2=(02 12 22 32)
|
428
|
+
paddw mm0, mm2 ; mm0=data4=(04 14 24 34)
|
429
|
+
psraw mm3, (PASS1_BITS+3) ; descale
|
430
|
+
psraw mm0, (PASS1_BITS+3) ; descale
|
431
|
+
psubw mm5, mm4 ; mm5=data5=(05 15 25 35)
|
432
|
+
psubw mm1, mm2 ; mm1=data3=(03 13 23 33)
|
433
|
+
psraw mm5, (PASS1_BITS+3) ; descale
|
434
|
+
psraw mm1, (PASS1_BITS+3) ; descale
|
435
|
+
|
436
|
+
movq mm4, [GOTOFF(ebx,PB_CENTERJSAMP)] ; mm4=[PB_CENTERJSAMP]
|
437
|
+
|
438
|
+
packsswb mm3, mm0 ; mm3=(02 12 22 32 04 14 24 34)
|
439
|
+
packsswb mm1, mm5 ; mm1=(03 13 23 33 05 15 25 35)
|
440
|
+
|
441
|
+
paddb mm6, mm4
|
442
|
+
paddb mm7, mm4
|
443
|
+
paddb mm3, mm4
|
444
|
+
paddb mm1, mm4
|
445
|
+
|
446
|
+
movq mm2, mm6 ; transpose coefficients(phase 1)
|
447
|
+
punpcklbw mm6, mm7 ; mm6=(00 01 10 11 20 21 30 31)
|
448
|
+
punpckhbw mm2, mm7 ; mm2=(06 07 16 17 26 27 36 37)
|
449
|
+
movq mm0, mm3 ; transpose coefficients(phase 1)
|
450
|
+
punpcklbw mm3, mm1 ; mm3=(02 03 12 13 22 23 32 33)
|
451
|
+
punpckhbw mm0, mm1 ; mm0=(04 05 14 15 24 25 34 35)
|
452
|
+
|
453
|
+
movq mm5, mm6 ; transpose coefficients(phase 2)
|
454
|
+
punpcklwd mm6, mm3 ; mm6=(00 01 02 03 10 11 12 13)
|
455
|
+
punpckhwd mm5, mm3 ; mm5=(20 21 22 23 30 31 32 33)
|
456
|
+
movq mm4, mm0 ; transpose coefficients(phase 2)
|
457
|
+
punpcklwd mm0, mm2 ; mm0=(04 05 06 07 14 15 16 17)
|
458
|
+
punpckhwd mm4, mm2 ; mm4=(24 25 26 27 34 35 36 37)
|
459
|
+
|
460
|
+
movq mm7, mm6 ; transpose coefficients(phase 3)
|
461
|
+
punpckldq mm6, mm0 ; mm6=(00 01 02 03 04 05 06 07)
|
462
|
+
punpckhdq mm7, mm0 ; mm7=(10 11 12 13 14 15 16 17)
|
463
|
+
movq mm1, mm5 ; transpose coefficients(phase 3)
|
464
|
+
punpckldq mm5, mm4 ; mm5=(20 21 22 23 24 25 26 27)
|
465
|
+
punpckhdq mm1, mm4 ; mm1=(30 31 32 33 34 35 36 37)
|
466
|
+
|
467
|
+
pushpic ebx ; save GOT address
|
468
|
+
|
469
|
+
mov edx, JSAMPROW [edi+0*SIZEOF_JSAMPROW]
|
470
|
+
mov ebx, JSAMPROW [edi+1*SIZEOF_JSAMPROW]
|
471
|
+
movq MMWORD [edx+eax*SIZEOF_JSAMPLE], mm6
|
472
|
+
movq MMWORD [ebx+eax*SIZEOF_JSAMPLE], mm7
|
473
|
+
mov edx, JSAMPROW [edi+2*SIZEOF_JSAMPROW]
|
474
|
+
mov ebx, JSAMPROW [edi+3*SIZEOF_JSAMPROW]
|
475
|
+
movq MMWORD [edx+eax*SIZEOF_JSAMPLE], mm5
|
476
|
+
movq MMWORD [ebx+eax*SIZEOF_JSAMPLE], mm1
|
477
|
+
|
478
|
+
poppic ebx ; restore GOT address
|
479
|
+
|
480
|
+
add esi, byte 4*SIZEOF_JCOEF ; wsptr
|
481
|
+
add edi, byte 4*SIZEOF_JSAMPROW
|
482
|
+
dec ecx ; ctr
|
483
|
+
jnz near .rowloop
|
484
|
+
|
485
|
+
emms ; empty MMX state
|
486
|
+
|
487
|
+
pop edi
|
488
|
+
pop esi
|
489
|
+
; pop edx ; need not be preserved
|
490
|
+
; pop ecx ; need not be preserved
|
491
|
+
pop ebx
|
492
|
+
mov esp, ebp ; esp <- aligned ebp
|
493
|
+
pop esp ; esp <- original ebp
|
494
|
+
pop ebp
|
495
|
+
ret
|
496
|
+
|
497
|
+
; For some reason, the OS X linker does not honor the request to align the
|
498
|
+
; segment unless we do this.
|
499
|
+
align 32
|