Code Monkey home page Code Monkey logo

Comments (6)

eustas avatar eustas commented on May 19, 2024

Thank you for your interest and detailed report.

shlxq works with quad-words -> only on 64-bit CPU. But I believe, this requirement is met, otherwise failure would have happened earlier.

Here it is said that "instruction is not supported in real mode and virtual-8086 mode", and again, I believe, it is not a problem.

Also, it is said, that instruction requires BMI2 CPU feature.
On OSX try sysctl -a | grep bmi2; for me it responds with hw.optional.bmi2: 1
On Linux try cat /proc/cpuinfo | grep bmi2 | head -n 1; it should respond with a long line like flags : ... bmi2 ...

Wikipedia says that: "Intel introduced BMI2 together with BMI1 in its line of Haswell processors. Only AMD has produced processors supporting only BMI1 without BMI2; BMI2 is supported by AMDs Excavator architecture and newer."

If the problem is missing BMI2 CPU feature, then try building with -mno-bmi2 flag.

Also, would be interesting to know it the binaries produced by Bazel also have this issue.
Bazel is easy to install on OSX (via Homebrew), and should also be easy to install on Ubuntu... After installation building is simple: bazel build -c opt :all, and binaries should appear in bazel-bin/

About attached image: it is 21600 x 10800 pixels = 2700 x 1350 8x8 blocks. Currently, it is bigger than kBrunsliMaxNumBlocks (3.5M > 2M). So, encoder will reject this image.
If you raise the limit, Brunsli should be able to compress this file successfully (27'201'049 bytes to 21'002'306 bytes). And decompress as well =) So, I believe, this limit should be configurable in the future.

from brunsli.

butterl avatar butterl commented on May 19, 2024

Thanks for you reply!

The CPU flag problem has solved by adding flag to CMakeLists. Because I'm working behind a proxy, the bazel support lib downloading always fail (have to download by hand) , so the bazel result will delay for maybe some days

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9e5d7a3..8c53002 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -60,6 +61,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
   -mavx2 \
   -mfma \
+  -mno-bmi2 \
   -Xclang -mprefer-vector-width=128 \
   -Xclang -target-cpu -Xclang haswell \
   -Xclang -target-feature -Xclang +avx2")

after compiled with -mno-bmi2 flag still got into an Assert even with small test picture (81K)(I tried modified kBrunsliMaxNumBlocks bigger with large test pic, but got similar error)

It's there any other limitation to the compile flag?

ubuntu@ubuntu:~/code/paper/brunsli/build$ lldb-7 ./cbrunsli Joint-Photographic-Experts-Group-jpeg-1-1024x576.jpg
(lldb) target create "./cbrunsli"
Current executable set to './cbrunsli' (x86_64).
(lldb) settings set -- target.run-args  "Joint-Photographic-Experts-Group-jpeg-1-1024x576.jpg"
(lldb) r
Process 26890 launched: '/home/ubuntu/code/paper/brunsli/build/cbrunsli' (x86_64)
WriteBitsPrepareStorage                     0WriteBits   6                20           0WriteBits   6                3e           6WriteBits   6                1b          12WriteBits   6                1b          18WriteBits   6                 2          24WriteBits   6                 4          30WriteBits   6                 4          36WriteBits   6                1a          42WriteBits   6                 4          48WriteBits   6                1a          54WriteBits   6                 4          60WriteBits   6                1a          66WriteBits   6                 4          72WriteBits   6                1a          78WriteBits   6                 4          84WriteBits   6                1a          90WriteBits   6                 4          96WriteBits   6                1a         102WriteBits   6                1a         108WriteBits   6                 4         114WriteBits   6                1a         120WriteBits   6                 4         126WriteBits   6                1a         132WriteBits   6                 4         138WriteBits   6                1a         144WriteBits   6                19         150WriteBits   1                 0         156WriteBits   2                 0         157WriteBits   1                 0         159WriteBits   1                 1         160WriteBits   1                 0         161WriteBits   4                 5         162WriteBits  32                 0         166WriteBits  31                 2         198WriteBits  31                 3         229WriteBits  32                 1         260WriteBits  32                 1         292WriteBits  32                 1         324WriteBits   1                 1         356WriteBits   2                 3         357WriteBits   1                 0         359WriteBits   1                 1         360WriteBits   2                 3         361WriteBits   1                 0         363WriteBits   1                 0         364WriteBits   1                 0         365WriteBits   1                 0         366WriteBits   1                 0         367WriteBits   1                 0         368WriteBits   1                 0         369WriteBits   1                 0         370WriteBits   2                 1         371WriteBits   1                 0         373WriteBits   1                 1         374WriteBits   1                 0         375WriteBits   4                 5         376WriteBits  32                 1         380WriteBits  32                 1         412WriteBits  32                 1         444WriteBits  32                 1         476WriteBits  32                 1         508WriteBits  32                 1         540WriteBits   1                 0         572WriteBits   1                 0         573WriteBits   1                 0         574WriteBits   1                 0         575WriteBits   1                 0         576WriteBits   1                 0         577WriteBits   1                 0         578WriteBits   2                 0         579WriteBits   1                 1         581WriteBits   1                 1         582WriteBits   1                 0         583WriteBits   4                 d         584WriteBits  32                 0         588WriteBits  31                 2         620WriteBits  31                 2         651WriteBits  31                 2         682WriteBits  31                 2         713WriteBits  31                 0         744WriteBits  30                 6         775WriteBits  31                 2         805WriteBits  31                 2         836WriteBits  31                 2         867WriteBits  31                 2         898WriteBits  31                 3         929WriteBits  32                 1         960WriteBits  32                 1         992WriteBits   1                 0        1024WriteBits   1                 1        1025WriteBits   2                 1        1026WriteBits   1                 0        1028WriteBits   1                 0        1029WriteBits   1                 0        1030WriteBits   1                 0        1031WriteBits   1                 1        1032WriteBits   2                 3        1033WriteBits   1                 0        1035WriteBits   1                 0        1036WriteBits   1                 1        1037WriteBits   2                 2        1038WriteBits   1                 1        1040WriteBits   2                 1        1041WriteBits   1                 0        1043WriteBits   1                 0        1044WriteBits   1                 1        1045WriteBits   2                 1        1046WriteBits   1                 1        1048WriteBits   2                 2        1049WriteBits   1                 1        1051WriteBits   2                 1        1052WriteBits   1                 1        1054WriteBits   2                 2        1055WriteBits   1                 1        1057WriteBits   2                 3        1058WriteBits   1                 1        1060WriteBits   2                 2        1061WriteBits   1                 0        1063WriteBits   1                 1        1064WriteBits   2                 0        1065WriteBits   1                 1        1067WriteBits   2                 2        1068WriteBits   1                 1        1070WriteBits   2                 1        1071WriteBits   1                 1        1073WriteBits   2                 2        1074WriteBits   1                 0        1076WriteBits   1                 1        1077WriteBits   2                 2        1078WriteBits   1                 1        1080WriteBits   2                 1        1081WriteBits   1                 0        1083WriteBits   1                 1        1084WriteBits   2                 2        1085WriteBits   1                 1        1087WriteBits   2                 1        1088WriteBits   1                 1        1090WriteBits   2                 1        1091WriteBits   1                 1        1093WriteBits   2                 2        1094WriteBits   1                 0        1096WriteBits   1                 1        1097WriteBits   2                 2        1098WriteBits   1                 1        1100WriteBits   2                 1        1101WriteBits   1                 0        1103WriteBits   1                 1        1104WriteBits   2                 0        1105WriteBits   1                 1        1107WriteBits   2                 1        1108WriteBits   1                 1        1110WriteBits   2                 1        1111WriteBits   1                 1        1113WriteBits   2                 2        1114WriteBits   1                 1        1116WriteBits   2                 2        1117WriteBits   1                 1        1119WriteBits   2                 3        1120WriteBits   1                 0        1122WriteBits   1                 1        1123WriteBits   2                 2        1124WriteBits   1                 1        1126WriteBits   2                 2        1127WriteBits   1                 0        1129WriteBits   1                 1        1130WriteBits   2                 1        1131WriteBits   1                 0        1133WriteBits   1                 0        1134WriteBits   1                 1        1135WriteBits   2                 3        1136WriteBits   1                 1        1138WriteBits   2                 3        1139WriteBits   1                 0        1141WriteBits   1                 1        1142WriteBits   2                 1        1143WriteBits   1                 1        1145WriteBits   2                 1        1146WriteBits   1                 1        1148WriteBits   2                 1        1149WriteBits   1                 0        1151WriteBits   1                 1        1152WriteBits   2                 2        1153WriteBits   1                 1        1155WriteBits   2                 3        1156WriteBits   1                 1        1158WriteBits   2                 0        1159WriteBits   1                 1        1161WriteBits   2                 2        1162WriteBits   1                 1        1164WriteBits   2                 2        1165WriteBits   1                 1        1167WriteBits   2                 3        1168WriteBits   1                 0        1170WriteBits   1                 1        1171WriteBits   2                 0        1172WriteBits   1                 1        1174WriteBits   2                 0        1175WriteBits   1                 1        1177WriteBits   2                 2        1178WriteBits   1                 0        1180WriteBits   1                 0        1181WriteBits   2                 1        1182WriteBits   1                 1        1184WriteBits   1                 1        1185WriteBits   1                 0        1186WriteBits   4                 b        1187WriteBits  32                 0        1191WriteBits  31                 2        1223WriteBits  31                 2        1254WriteBits  31                 1        1285WriteBits  30                 4        1316WriteBits  31                 1        1346WriteBits  30                 5        1377WriteBits  32                 1        1407WriteBits  32                 1        1439WriteBits  32                 1        1471WriteBits  32                 1        1503WriteBits  32                 1        1535WriteBits   1                 1        1567WriteBits   2                 1        1568WriteBits   1                 0        1570WriteBits   1                 0        1571WriteBits   1                 0        1572WriteBits   1                 1        1573WriteBits   2                 1        1574WriteBits   1                 0        1576WriteBits   1                 1        1577WriteBits   2                 2        1578WriteBits   1                 1        1580WriteBits   2                 3        1581WriteBits   1                 1        1583WriteBits   2                 1        1584WriteBits   1                 1        1586WriteBits   2                 2        1587WriteBits   1                 0        1589WriteBits   1                 1        1590WriteBits   2                 3        1591WriteBits   1                 0        1593WriteBits   1                 1        1594WriteBits   2                 0        1595WriteBits   1                 1        1597WriteBits   2                 3        1598WriteBits   1                 1        1600WriteBits   2                 1        1601WriteBits   1                 1        1603WriteBits   2                 2        1604WriteBits   1                 1        1606WriteBits   2                 0        1607WriteBits   1                 1        1609WriteBits   2                 3        1610WriteBits   1                 1        1612WriteBits   2                 1        1613WriteBits   1                 1        1615WriteBits   2                 2        1616WriteBits   1                 1        1618WriteBits   2                 2        1619WriteBits   1                 0        1621WriteBits   1                 0        1622WriteBits   1                 1        1623WriteBits   2                 1        1624WriteBits   1                 1        1626WriteBits   2                 1        1627WriteBits   1                 0        1629WriteBits   1                 1        1630WriteBits   2                 1        1631WriteBits   1                 0        1633WriteBits   1                 1        1634WriteBits   2                 0        1635WriteBits   1                 1        1637WriteBits   2                 2        1638WriteBits   1                 1        1640WriteBits   2                 1        1641WriteBits   1                 1        1643WriteBits   2                 2        1644WriteBits   1                 1        1646WriteBits   2                 1        1647WriteBits   1                 0        1649WriteBits   1                 1        1650WriteBits   2                 2        1651WriteBits   1                 0        1653WriteBits   1                 1        1654WriteBits   2                 0        1655WriteBits   1                 1        1657WriteBits   2                 2        1658WriteBits   1                 0        1660WriteBits   1                 1        1661WriteBits   2                 0        1662WriteBits   1                 1        1664WriteBits   2                 1        1665WriteBits   1                 0        1667WriteBits   1                 1        1668WriteBits   2                 2        1669WriteBits   1                 0        1671WriteBits   1                 1        1672WriteBits   2                 3        1673WriteBits   1                 0        1675WriteBits   1                 0        1676WriteBits   2                 1        1677WriteBits   1                 1        1679WriteBits   1                 1        1680WriteBits   1                 0        1681WriteBits   4                 b        1682WriteBits  32                 0        1686WriteBits  31                 2        1718WriteBits  31                 2        1749WriteBits  31                 1        1780WriteBits  30                 3        1811WriteBits  30                 3        1841WriteBits  30                 4        1871WriteBits  31                 2        1901WriteBits  31                 2        1932WriteBits  31                 2        1963WriteBits  31                 3        1994WriteBits  32                 1        2025WriteBits   1                 1        2057WriteBits   2                 1        2058WriteBits   1                 0        2060WriteBits   1                 0        2061WriteBits   1                 0        2062WriteBits   1                 1        2063WriteBits   2                 1        2064WriteBits   1                 0        2066WriteBits   1                 0        2067WriteBits   1                 1        2068WriteBits   2                 1        2069WriteBits   1                 1        2071WriteBits   2                 3        2072WriteBits   1                 1        2074WriteBits   2                 1        2075WriteBits   1                 1        2077WriteBits   2                 2        2078WriteBits   1                 1        2080WriteBits   2                 3        2081WriteBits   1                 0        2083WriteBits   1                 1        2084WriteBits   2                 0        2085WriteBits   1                 1        2087WriteBits   2                 3        2088WriteBits   1                 1        2090WriteBits   2                 1        2091WriteBits   1                 1        2093WriteBits   2                 2        2094WriteBits   1                 1        2096WriteBits   2                 2        2097WriteBits   1                 0        2099WriteBits   1                 1        2100WriteBits   2                 3        2101WriteBits   1                 1        2103WriteBits   2                 2        2104WriteBits   1                 1        2106WriteBits   2                 1        2107WriteBits   1                 1        2109WriteBits   2                 2        2110WriteBits   1                 1        2112WriteBits   2                 2        2113WriteBits   1                 0        2115WriteBits   1                 0        2116WriteBits   1                 1        2117WriteBits   2                 0        2118WriteBits   1                 1        2120WriteBits   2                 1        2121WriteBits   1                 0        2123WriteBits   1                 1        2124WriteBits   2                 1        2125WriteBits   1                 0        2127WriteBits   1                 1        2128WriteBits   2                 2        2129WriteBits   1                 0        2131WriteBits   1                 1        2132WriteBits   2                 0        2133WriteBits   1                 1        2135WriteBits   2                 0        2136WriteBits   1                 1        2138WriteBits   2                 1        2139WriteBits   1                 0        2141WriteBits   1                 1        2142WriteBits   2                 1        2143WriteBits   1                 1        2145WriteBits   2                 1        2146WriteBits   1                 1        2148WriteBits   2                 1        2149WriteBits   1                 1        2151WriteBits   2                 2        2152WriteBits   1                 0        2154WriteBits   1                 1        2155WriteBits   2                 3        2156WriteBits   1                 0        2158WriteBits   1                 1        2159WriteBits   2                 0        2160WriteBits   1                 1        2162WriteBits   2                 1        2163WriteBits   1                 0        2165WriteBits   1                 1        2166WriteBits   2                 3        2167WriteBits   1                 0        2169WriteBits   1                 1        2170WriteBits   2                 0        2171WriteBits   1                 1        2173WriteBits   2                 1        2174WriteBits   1                 0        2176WriteBits   1                 1        2177WriteBits   2                 3        2178WriteBits   1                 1        2180WriteBits   2                 2        2181WriteBits   1                 0        2183WriteBits   1                 1        2184WriteBits   2                 1        2185WriteBits   1                 0        2187WriteBits   1                 1        2188WriteBits   2                 2        2189WriteBits   1                 0        2191WriteBits   1                 0        2192WriteBits   2                 0        2193WriteBits   1                 1        2195WriteBits   1                 1        2196WriteBits   1                 0        2197WriteBits   4                 d        2198WriteBits  32                 0        2202WriteBits  31                 2        2234WriteBits  31                 1        2265WriteBits  30                 2        2296WriteBits  30                 5        2326WriteBits  30                 2        2356WriteBits  30                 3        2386WriteBits  29                 7        2416WriteBits  30                 3        2445WriteBits  30                 3        2475WriteBits  30                 3        2505WriteBits  30                 3        2535WriteBits  30                 4        2565WriteBits  31                 3        2595WriteBits   1                 1        2626WriteBits   2                 1        2627WriteBits   1                 0        2629WriteBits   1                 0        2630WriteBits   1                 1        2631WriteBits   2                 2        2632WriteBits   1                 0        2634WriteBits   1                 0        2635WriteBits   1                 1        2636WriteBits   2                 3        2637WriteBits   1                 0        2639WriteBits   1                 0        2640WriteBits   1                 1        2641WriteBits   2                 0        2642WriteBits   1                 1        2644WriteBits   2                 3        2645WriteBits   1                 1        2647WriteBits   2                 1        2648WriteBits   1                 1        2650WriteBits   2                 2        2651WriteBits   1                 1        2653WriteBits   2                 2        2654WriteBits   1                 0        2656WriteBits   1                 1        2657WriteBits   2                 1        2658WriteBits   1                 1        2660WriteBits   2                 2        2661WriteBits   1                 0        2663WriteBits   1                 1        2664WriteBits   2                 2        2665WriteBits   1                 0        2667WriteBits   1                 1        2668WriteBits   2                 2        2669WriteBits   1                 0        2671WriteBits   1                 1        2672WriteBits   2                 3        2673WriteBits   1                 0        2675WriteBits   1                 1        2676WriteBits   2                 3        2677WriteBits   1                 1        2679WriteBits   2                 1        2680WriteBits   1                 1        2682WriteBits   2                 1        2683WriteBits   1                 1        2685WriteBits   2                 2        2686WriteBits   1                 1        2688WriteBits   2                 3        2689WriteBits   1                 1        2691WriteBits   2                 1        2692WriteBits   1                 0        2694WriteBits   1                 1        2695WriteBits   2                 0        2696WriteBits   1                 1        2698WriteBits   2                 1        2699WriteBits   1                 0        2701WriteBits   1                 1        2702WriteBits   2                 3        2703WriteBits   1                 0        2705WriteBits   1                 1        2706WriteBits   2                 2        2707WriteBits   1                 1        2709WriteBits   2                 2        2710WriteBits   1                 0        2712WriteBits   1                 1        2713WriteBits   2                 3        2714WriteBits   1                 1        2716WriteBits   2                 0        2717WriteBits   1                 1        2719WriteBits   2                 1        2720WriteBits   1                 1        2722WriteBits   2                 2        2723WriteBits   1                 1        2725WriteBits   2                 3        2726WriteBits   1                 1        2728WriteBits   2                 0        2729WriteBits   1                 1        2731WriteBits   2                 1        2732WriteBits   1                 1        2734WriteBits   2                 2        2735WriteBits   1                 1        2737WriteBits   2                 3        2738WriteBits   1                 1        2740WriteBits   2                 0        2741WriteBits   1                 1        2743WriteBits   2                 1        2744WriteBits   1                 1        2746WriteBits   2                 2        2747WriteBits   1                 1        2749WriteBits   2                 0        2750WriteBits   1                 1        2752WriteBits   2                 1        2753WriteBits   1                 0        2755WriteBits   1                 1        2756WriteBits   2                 0        2757WriteBits   1                 1        2759WriteBits   2                 1        2760WriteBits   1                 0        2762WriteBits   1                 0        2763WriteBits   1                 1        2764WriteBits   2                 3        2765WriteBits   1                 1        2767WriteBits   2                 1        2768WriteBits   1                 0        2770WriteBits   1                 1        2771WriteBits   2                 0        2772WriteBits   1                 1        2774WriteBits   2                 1        2775WriteBits   1                 0        2777WriteBits   1                 1        2778WriteBits   2                 1        2779WriteBits   1                 1        2781WriteBits   2                 3        2782WriteBits   1                 0        2784WriteBits   1                 1        2785WriteBits   2                 1        2786WriteBits   1                 1        2788WriteBits   2                 2        2789WriteBits   1                 0        2791WriteBits   1                 1        2792WriteBits   2                 0        2793WriteBits   1                 1        2795WriteBits   2                 1        2796WriteBits   1                 0        2798WriteBits   1                 1        2799WriteBits   2                 3        2800WriteBits   1                 0        2802WriteBits   1                 1        2803WriteBits   2                 0        2804WriteBits   1                 1        2806WriteBits   2                 0        2807WriteBits   1                 1        2809WriteBits   2                 1        2810WriteBits   1                 0        2812WriteBits   1                 1        2813WriteBits   2                 2        2814WriteBits   1                 1        2816WriteBits   2                 2        2817WriteBits   1                 0        2819WriteBits   1                 1        2820WriteBits   2                 0        2821WriteBits   1                 1        2823WriteBits   2                 3        2824WriteBits   1                 0        2826WriteBits   1                 1        2827WriteBits   2                 0        2828WriteBits   1                 1        2830WriteBits   2                 2        2831WriteBits   1                 1        2833WriteBits   2                 0        2834WriteBits   1                 1        2836WriteBits   2                 1        2837WriteBits   1                 1        2839WriteBits   2                 0        2840WriteBits   1                 1        2842WriteBits   2                 1        2843WriteBits   1                 0        2845WriteBits   1                 1        2846WriteBits   2                 2        2847WriteBits   1                 1        2849WriteBits   2                 1        2850WriteBits   1                 1        2852WriteBits   2                 0        2853WriteBits   1                 1        2855WriteBits   2                 2        2856WriteBits   1                 1        2858WriteBits   2                 1        2859WriteBits   1                 1        2861WriteBits   2                 2        2862WriteBits   1                 0        2864WriteBits   1                 1        2865WriteBits   2                 1        2866WriteBits   1                 1        2868WriteBits   2                 1        2869WriteBits   1                 1        2871WriteBits   2                 0        2872WriteBits   1                 1        2874WriteBits   2                 2        2875WriteBits   1                 1        2877WriteBits   2                 0        2878WriteBits   1                 1        2880WriteBits   2                 1        2881WriteBits   1                 0        2883WriteBits   1                 1        2884WriteBits   2                 1        2885WriteBits   1                 1        2887WriteBits   2                 3        2888WriteBits   1                 1        2890WriteBits   2                 0        2891WriteBits   1                 1        2893WriteBits   2                 1        2894WriteBits   1                 1        2896WriteBits   2                 1        2897WriteBits   1                 1        2899WriteBits   2                 1        2900WriteBits   1                 0        2902WriteBits   1                 1        2903WriteBits   2                 1        2904WriteBits   1                 1        2906WriteBits   2                 3        2907WriteBits   1                 0        2909WriteBits   1                 0        2910WriteBits   2                 0        2911WriteBits   1                 1        2913WriteBits   1                 1        2914WriteBits   1                 0        2915WriteBits   4                 c        2916WriteBits  32                 0        2920WriteBits  31                 3        2952WriteBits  32                 0        2983WriteBits  31                 2        3015WriteBits  31                 2        3046WriteBits  31                 2        3077WriteBits  31                 2        3108WriteBits  31                 2        3139WriteBits  31                 3        3170WriteBits  32                 0        3201WriteBits  31                 2        3233WriteBits  31                 3        3264WriteBits  32                 1        3295WriteBits   1                 1        3327WriteBits   2                 1        3328WriteBits   1                 0        3330WriteBits   1                 0        3331WriteBits   1                 1        3332WriteBits   2                 2        3333WriteBits   1                 0        3335WriteBits   1                 1        3336WriteBits   2                 0        3337WriteBits   1                 1        3339WriteBits   2                 1        3340WriteBits   1                 0        3342WriteBits   1                 1        3343WriteBits   2                 1        3344WriteBits   1                 1        3346WriteBits   2                 1        3347WriteBits   1                 0        3349WriteBits   1                 1        3350WriteBits   2                 1        3351WriteBits   1                 1        3353WriteBits   2                 1        3354WriteBits   1                 0        3356WriteBits   1                 1        3357WriteBits   2                 2        3358WriteBits   1                 1        3360WriteBits   2                 1        3361WriteBits   1                 0        3363WriteBits   1                 1        3364WriteBits   2                 3        3365WriteBits   1                 1        3367WriteBits   2                 2        3368WriteBits   1                 1        3370WriteBits   2                 1        3371WriteBits   1                 1        3373WriteBits   2                 2        3374WriteBits   1                 1        3376WriteBits   2                 3        3377WriteBits   1                 1        3379WriteBits   2                 1        3380WriteBits   1                 0        3382WriteBits   1                 1        3383WriteBits   2                 2        3384WriteBits   1                 1        3386WriteBits   2                 2        3387WriteBits   1                 1        3389WriteBits   2                 1        3390WriteBits   1                 1        3392WriteBits   2                 2        3393WriteBits   1                 1        3395WriteBits   2                 1        3396WriteBits   1                 1        3398WriteBits   2                 2        3399WriteBits   1                 0        3401WriteBits   1                 1        3402WriteBits   2                 2        3403WriteBits   1                 1        3405WriteBits   2                 2        3406WriteBits   1                 0        3408WriteBits   1                 1        3409WriteBits   2                 3        3410WriteBits   1                 1        3412WriteBits   2                 2        3413WriteBits   1                 0        3415WriteBits   1                 1        3416WriteBits   2                 3        3417WriteBits   1                 1        3419WriteBits   2                 1        3420WriteBits   1                 1        3422WriteBits   2                 1        3423WriteBits   1                 1        3425WriteBits   2                 2        3426WriteBits   1                 1        3428WriteBits   2                 3        3429WriteBits   1                 1        3431WriteBits   2                 2        3432WriteBits   1                 0        3434WriteBits   1                 1        3435WriteBits   2                 2        3436WriteBits   1                 1        3438WriteBits   2                 3        3439WriteBits   1                 0        3441WriteBits   1                 1        3442WriteBits   2                 2        3443WriteBits   1                 1        3445WriteBits   2                 3        3446WriteBits   1                 0        3448WriteBits   1                 1        3449WriteBits   2                 0        3450WriteBits   1                 1        3452WriteBits   2                 0        3453WriteBits   1                 1        3455WriteBits   2                 1        3456WriteBits   1                 0        3458WriteBits   1                 1        3459WriteBits   2                 3        3460WriteBits   1                 1        3462WriteBits   2                 0        3463WriteBits   1                 1        3465WriteBits   2                 1        3466WriteBits   1                 1        3468WriteBits   2                 2        3469WriteBits   1                 1        3471WriteBits   2                 2        3472WriteBits   1                 1        3474WriteBits   2                 2        3475WriteBits   1                 1        3477WriteBits   2                 1        3478WriteBits   1                 0        3480WriteBits   1                 1        3481WriteBits   2                 0        3482WriteBits   1                 1        3484WriteBits   2                 0        3485WriteBits   1                 1        3487WriteBits   2                 1        3488WriteBits   1                 0        3490WriteBits   1                 1        3491WriteBits   2                 3        3492WriteBits   1                 1        3494WriteBits   2                 2        3495WriteBits   1                 1        3497WriteBits   2                 1        3498WriteBits   1                 0        3500WriteBits   1                 0        3501WriteBits   2                 1        3502WriteBits   1                 1        3504WriteBits   1                 1        3505WriteBits   1                 0        3506WriteBits   4                 b        3507WriteBits  32                 1        3511WriteBits  32                 1        3543WriteBits  32                 1        3575WriteBits  32                 0        3607WriteBits  31                 3        3639WriteBits  32                 1        3670WriteBits  32                 1        3702WriteBits  32                 1        3734WriteBits  32                 1        3766WriteBits  32                 1        3798WriteBits  32                 1        3830WriteBits  32                 1        3862WriteBits   1                 0        3894WriteBits   1                 0        3895WriteBits   1                 1        3896WriteBits   2                 2        3897WriteBits   1                 0        3899WriteBits   1                 1        3900WriteBits   2                 3        3901WriteBits   1                 1        3903WriteBits   2                 3        3904WriteBits   1                 1        3906WriteBits   2                 1        3907WriteBits   1                 1        3909WriteBits   2                 2        3910WriteBits   1                 1        3912WriteBits   2                 0        3913WriteBits   1                 1        3915WriteBits   2                 1        3916WriteBits   1                 0        3918WriteBits   1                 1        3919WriteBits   2                 1        3920WriteBits   1                 1        3922WriteBits   2                 1        3923WriteBits   1                 0        3925WriteBits   1                 1        3926WriteBits   2                 1        3927WriteBits   1                 1        3929WriteBits   2                 1        3930WriteBits   1                 0        3932WriteBits   1                 1        3933WriteBits   2                 0        3934WriteBits   1                 1        3936WriteBits   2                 3        3937WriteBits   1                 1        3939WriteBits   2                 1        3940WriteBits   1                 1        3942WriteBits   2                 2        3943WriteBits   1                 1        3945WriteBits   2                 2        3946WriteBits   1                 1        3948WriteBits   2                 1        3949WriteBits   1                 0        3951WriteBits   1                 1        3952WriteBits   2                 3        3953WriteBits   1                 1        3955WriteBits   2                 1        3956WriteBits   1                 0        3958WriteBits   1                 1        3959WriteBits   2                 2        3960WriteBits   1                 1        3962WriteBits   2                 2        3963WriteBits   1                 1        3965WriteBits   2                 1        3966WriteBits   1                 1        3968WriteBits   2                 2        3969WriteBits   1                 1        3971WriteBits   2                 1        3972WriteBits   1                 1        3974WriteBits   2                 2        3975WriteBits   1                 0        3977WriteBits   1                 1        3978WriteBits   2                 1        3979WriteBits   1                 1        3981WriteBits   2                 2        3982WriteBits   1                 1        3984WriteBits   2                 1        3985WriteBits   1                 1        3987WriteBits   2                 2        3988WriteBits   1                 0        3990WriteBits   2                 1        3991WriteBits   1                 1        3993WriteBits   1                 1        3994WriteBits   1                 0        3995WriteBits   4                 b        3996WriteBits  32                 1        4000WriteBits  32                 1        4032WriteBits  32                 1        4064WriteBits  32                 0        4096WriteBits  31                 3        4128WriteBits  32                 0        4159WriteBits  31                 3        4191WriteBits  32                 1        4222WriteBits  32                 1        4254WriteBits  32                 1        4286WriteBits  32                 1        4318WriteBits  32                 1        4350WriteBits   1                 0        4382WriteBits   1                 0        4383WriteBits   1                 1        4384WriteBits   2                 2        4385WriteBits   1                 0        4387WriteBits   1                 1        4388WriteBits   2                 3        4389WriteBits   1                 1        4391WriteBits   2                 3        4392WriteBits   1                 1        4394WriteBits   2                 1        4395WriteBits   1                 1        4397WriteBits   2                 2        4398WriteBits   1                 1        4400WriteBits   2                 0        4401WriteBits   1                 1        4403WriteBits   2                 1        4404WriteBits   1                 0        4406WriteBits   1                 1        4407WriteBits   2                 1        4408WriteBits   1                 1        4410WriteBits   2                 1        4411WriteBits   1                 0        4413WriteBits   1                 1        4414WriteBits   2                 1        4415WriteBits   1                 1        4417WriteBits   2                 3        4418WriteBits   1                 1        4420WriteBits   2                 1        4421WriteBits   1                 1        4423WriteBits   2                 2        4424WriteBits   1                 1        4426WriteBits   2                 1        4427WriteBits   1                 1        4429WriteBits   2                 1        4430WriteBits   1                 0        4432WriteBits   1                 1        4433WriteBits   2                 2        4434WriteBits   1                 1        4436WriteBits   2                 1        4437WriteBits   1                 0        4439WriteBits   1                 1        4440WriteBits   2                 3        4441WriteBits   1                 1        4443WriteBits   2                 2        4444WriteBits   1                 1        4446WriteBits   2                 1        4447WriteBits   1                 1        4449WriteBits   2                 2        4450WriteBits   1                 1        4452WriteBits   2                 3        4453WriteBits   1                 1        4455WriteBits   2                 1        4456WriteBits   1                 0        4458WriteBits   1                 1        4459WriteBits   2                 1        4460WriteBits   1                 1        4462WriteBits   2                 2        4463WriteBits   1                 0        4465WriteBits   1                 1        4466WriteBits   2                 1        4467WriteBits   1                 1        4469WriteBits   2                 2        4470WriteBits   1                 1        4472WriteBits   2                 1        4473WriteBits   1                 1        4475WriteBits   2                 2        4476WriteBits   1                 1        4478WriteBits   2                 2        4479WriteBits   1                 1        4481WriteBits   2                 2        4482WriteBits   1                 0        4484WriteBits   1                 1        4485WriteBits   2                 0        4486WriteBits   1                 1        4488WriteBits   1                 0        4489WriteBits   4                 d        4490WriteBits  32                 1        4494WriteBits  32                 0        4526WriteBits  31                 2        4558WriteBits  31                 2        4589WriteBits  31                 2        4620WriteBits  31                 3        4651WriteBits  32                 0        4682WriteBits  31                 2        4714WriteBits  31                 2        4745WriteBits  31                 3        4776WriteBits  32                 1        4807WriteBits  32                 1        4839WriteBits  32                 1        4871WriteBits  32                 1        4903WriteBits   1                 0        4935WriteBits   1                 0        4936WriteBits   1                 1        4937WriteBits   2                 2        4938WriteBits   1                 0        4940WriteBits   1                 1        4941WriteBits   2                 0        4942WriteBits   1                 1        4944WriteBits   2                 1        4945WriteBits   1                 0        4947WriteBits   1                 1        4948WriteBits   2                 1        4949WriteBits   1                 1        4951WriteBits   2                 1        4952WriteBits   1                 0        4954WriteBits   1                 1        4955WriteBits   2                 1        4956WriteBits   1                 1        4958WriteBits   2                 1        4959WriteBits   1                 0        4961WriteBits   1                 1        4962WriteBits   2                 2        4963WriteBits   1                 1        4965WriteBits   2                 1        4966WriteBits   1                 0        4968WriteBits   1                 1        4969WriteBits   2                 3        4970WriteBits   1                 1        4972WriteBits   2                 2        4973WriteBits   1                 1        4975WriteBits   2                 1        4976WriteBits   1                 1        4978WriteBits   2                 2        4979WriteBits   1                 1        4981WriteBits   2                 3        4982WriteBits   1                 1        4984WriteBits   2                 1        4985WriteBits   1                 0        4987WriteBits   1                 1        4988WriteBits   2                 1        4989WriteBits   1                 1        4991WriteBits   2                 2        4992WriteBits   1                 0        4994WriteBits   1                 1        4995WriteBits   2                 2        4996WriteBits   1                 1        4998WriteBits   2                 2        4999WriteBits   1                 0        5001WriteBits   1                 1        5002WriteBits   2                 3        5003WriteBits   1                 1        5005WriteBits   2                 2        5006WriteBits   1                 0        5008WriteBits   1                 1        5009WriteBits   2                 3        5010WriteBits   1                 1        5012WriteBits   2                 1        5013WriteBits   1                 1        5015WriteBits   2                 1        5016WriteBits   1                 1        5018WriteBits   2                 2        5019WriteBits   1                 1        5021WriteBits   2                 3        5022WriteBits   1                 1        5024WriteBits   2                 2        5025WriteBits   1                 0        5027WriteBits   1                 1        5028WriteBits   2                 2        5029WriteBits   1                 1        5031WriteBits   2                 3        5032WriteBits   1                 0        5034WriteBits   1                 1        5035WriteBits   2                 2        5036WriteBits   1                 1        5038WriteBits   2                 3        5039WriteBits   1                 0        5041WriteBits   1                 1        5042WriteBits   2                 1        5043WriteBits   1                 1        5045WriteBits   2                 0        5046WriteBits   1                 1        5048WriteBits   2                 1        5049WriteBits   1                 0        5051WriteBits   1                 1        5052WriteBits   2                 0        5053WriteBits   1                 1        5055WriteBits   2                 0        5056WriteBits   1                 1        5058WriteBits   2                 1        5059WriteBits   1                 0        5061WriteBits   1                 1        5062WriteBits   2                 2        5063WriteBits   1                 1        5065WriteBits   2                 0        5066WriteBits   1                 1        5068WriteBits   2                 1        5069WriteBits   1                 1        5071WriteBits   2                 2        5072WriteBits   1                 1        5074WriteBits   2                 0        5075WriteBits   1                 1        5077WriteBits   2                 3        5078WriteBits   1                 1        5080WriteBits   2                 1        5081WriteBits   1                 0        5083WriteBits   1                 1        5084WriteBits   2                 1        5085WriteBits   1                 1        5087WriteBits   2                 2        5088WriteBits   1                 1        5090WriteBits   2                 1        5091WriteBits   1                 0        5093WriteBits   6                 0        5094WriteBits   6                 0        5100WriteBits   4                 0        5106WriteBits   4                 1        5110WriteBits   2                 2        5114WriteBits   2                 0        5116WriteBits   2                 0        5118WriteBits   2                 0        5120WriteBits   2                 1        5122WriteBits   2                 1        5124WriteBits   2                 0        5126WriteBits   2                 2        5128WriteBits   2                 1        5130WriteBits   2                 0        5132WriteBits   1                 0        5134WriteBits   1                 0        5135WriteBits   6                 1        5136WriteBits   6                 5        5142WriteBits   4                 0        5148WriteBits   4                 2        5152WriteBits   2                 0        5156WriteBits   2                 0        5158WriteBits   2                 0        5160WriteBits   2                 0        5162WriteBits   1                 0        5164WriteBits   1                 0        5165WriteBits   6                 1        5166WriteBits   6                3f        5172WriteBits   4                 0        5178WriteBits   4                 1        5182WriteBits   2                 0        5186WriteBits   2                 2        5188WriteBits   2                 0        5190WriteBits   2                 1        5192WriteBits   1                 0        5194WriteBits   1                 0        5195WriteBits   6                 1        5196WriteBits   6                3f        5202WriteBits   4                 0        5208WriteBits   4                 1        5212WriteBits   2                 0        5216WriteBits   2                 1        5218WriteBits   2                 0        5220WriteBits   2                 1        5222WriteBits   1                 0        5224WriteBits   1                 0        5225WriteBits   6                 6        5226WriteBits   6                3f        5232WriteBits   4                 0        5238WriteBits   4                 2        5242WriteBits   2                 0        5246WriteBits   2                 0        5248WriteBits   2                 0        5250WriteBits   2                 0        5252WriteBits   1                 0        5254WriteBits   1                 0        5255WriteBits   6                 1        5256WriteBits   6                3f        5262WriteBits   4                 2        5268WriteBits   4                 1        5272WriteBits   2                 0        5276WriteBits   2                 0        5278WriteBits   2                 0        5280WriteBits   2                 0        5282WriteBits   1                 0        5284WriteBits   1                 0        5285WriteBits   6                 0        5286WriteBits   6                 0        5292WriteBits   4                 1        5298WriteBits   4                 0        5302WriteBits   2                 2        5306WriteBits   2                 0        5308WriteBits   2                 0        5310WriteBits   2                 0        5312WriteBits   2                 1        5314WriteBits   2                 0        5316WriteBits   2                 0        5318WriteBits   2                 2        5320WriteBits   2                 0        5322WriteBits   2                 0        5324WriteBits   1                 0        5326WriteBits   1                 0        5327WriteBits   6                 1        5328WriteBits   6                3f        5334WriteBits   4                 1        5340WriteBits   4                 0        5344WriteBits   2                 0        5348WriteBits   2                 2        5350WriteBits   2                 0        5352WriteBits   2                 1        5354WriteBits   1                 0        5356WriteBits   1                 0        5357WriteBits   6                 1        5358WriteBits   6                3f        5364WriteBits   4                 1        5370WriteBits   4                 0        5374WriteBits   2                 0        5378WriteBits   2                 1        5380WriteBits   2                 0        5382WriteBits   2                 1        5384WriteBits   1                 0        5386WriteBits   1                 0        5387WriteBits   6                 1        5388WriteBits   6                3f        5394WriteBits   4                 1        5400WriteBits   4                 0        5404WriteBits   2                 0        5408WriteBits   2                 0        5410WriteBits   2                 0        5412WriteBits   2                 0        5414WriteBits   1                 0        5416WriteBits   1                 0        5417WriteBits   2                 1        5418WriteBits   2                 0        5420WriteBits   1                 1        5422WriteBits   4                 0        5423WriteBits   2                 1        5427WriteBits   4                 0        5429WriteBits   2                 0        5433WriteBits   1                 0        5435WriteBits   4                 0        5436WriteBitsPrepareStorage                     0WriteBits   2                 1           0WriteBits   1                 1           2WriteBits   6                17           3WriteBits   1                 0           9WriteBits   1                 0          10WriteBits   1                 0          11WriteBits   1                 0          12WriteBits   1                 0          13WriteBits   1                 0          14WriteBits   1                 0          15WriteBits   1                 0          16WriteBits   1                 0          17WriteBits   1                 0          18WriteBits   1                 0          19WriteBits   1                 0          20WriteBits   1                 0          21WriteBits   1                 0          22WriteBits   1                 0          23WriteBits   1                 0          24WriteBits   1                 0          25WriteBits   1                 0          26WriteBits   1                 0          27WriteBits   1                 0          28WriteBits   1                 0          29WriteBits   1                 0          30WriteBits   1                 0          31WriteBits   1                 0          32WriteBits   1                 0          33WriteBits   1                 0          34WriteBits   1                 0          35WriteBits   1                 0          36WriteBits   1                 0          37WriteBits   1                 0          38WriteBits   1                 1          39WriteBits   1                 0          40WriteBits   1                 0          41WriteBits   1                 1          42WriteBits   1                 1          43WriteBits   1                 0          44WriteBits   1                 0          45WriteBits   1                 0          46WriteBits   1                 0          47WriteBits   1                 0          48WriteBits   1                 0          49WriteBits   1                 0          50WriteBits   1                 0          51WriteBits   1                 0          52WriteBits   1                 0          53WriteBits   1                 0          54WriteBits   1                 0          55WriteBits   1                 0          56WriteBits   1                 0          57WriteBits   1                 0          58WriteBits   1                 0          59WriteBits   1                 0          60WriteBits   1                 0          61WriteBits   1                 0          62WriteBits   1                 0          63WriteBits   1                 0          64WriteBits   1                 0          65WriteBits   1                 0          66WriteBits   1                 0          67WriteBits   1                 0          68WriteBits   1                 1          69WriteBits   1                 0          70WriteBits   1                 0          71WriteBits   1                 1          72WriteBits   1                 1          73WriteBits   1                 0          74WriteBits   1                 0          75WriteBits   1                 0          76WriteBits   1                 0          77WriteBits   1                 0          78WriteBits   1                 0          79WriteBits   1                 0          80WriteBits   1                 1          81WriteBits   6                17          82WriteBits   1                 0          88WriteBits   1                 0          89WriteBits   1                 0          90WriteBits   1                 0          91WriteBits   1                 0          92WriteBits   1                 0          93WriteBits   1                 0          94WriteBits   1                 0          95WriteBits   1                 0          96WriteBits   1                 0          97WriteBits   1                 0          98WriteBits   1                 0          99WriteBits   1                 0         100WriteBits   1                 0         101WriteBits   1                 0         102WriteBits   1                 0         103WriteBits   1                 0         104WriteBits   1                 0         105WriteBits   1                 0         106WriteBits   1                 0         107WriteBits   1                 0         108WriteBits   1                 0         109WriteBits   1                 0         110WriteBits   1                 0         111WriteBits   1                 0         112WriteBits   1                 0         113WriteBits   1                 0         114WriteBits   1                 0         115WriteBits   1                 0         116WriteBits   1                 0         117WriteBits   1                 0         118WriteBits   1                 0         119WriteBits   1                 0         120WriteBits   1                 0         121WriteBits   1                 0         122WriteBits   1                 0         123WriteBits   1                 0         124WriteBits   1                 0         125WriteBits   1                 0         126WriteBits   1                 0         127WriteBits   1                 0         128WriteBits   1                 0         129WriteBits   1                 0         130WriteBits   1                 0         131WriteBits   1                 0         132WriteBits   1                 0         133WriteBits   1                 0         134WriteBits   1                 0         135WriteBits   1                 0         136WriteBits   1                 0         137WriteBits   1                 0         138WriteBits   1                 0         139WriteBits   1                 0         140WriteBits   1                 0         141WriteBits   1                 0         142WriteBits   1                 0         143WriteBits   1                 0         144WriteBits   1                 0         145WriteBits   1                 0         146WriteBits   1                 0         147WriteBits   1                 0         148WriteBits   1                 0         149WriteBits   1                 0         150WriteBits   1                 0         151WriteBits   2                 0         152WriteBits   2                 1         154WriteBits   2                 1         156cbrunsli: /home/ubuntu/code/paper/brunsli/c/enc/brunsli_encode.cc:495: void brunsli::Histogram::Add(int): Assertion `val < 18' failed.
Process 26890 stopped
* thread #1, name = 'cbrunsli', stop reason = signal SIGABRT
    frame #0: 0x00007ffff71a1428 libc.so.6`__GI_raise(sig=6) at raise.c:54
(lldb) bt
* thread #1, name = 'cbrunsli', stop reason = signal SIGABRT
  * frame #0: 0x00007ffff71a1428 libc.so.6`__GI_raise(sig=6) at raise.c:54
    frame #1: 0x00007ffff71a302a libc.so.6`__GI_abort at abort.c:89
    frame #2: 0x00007ffff7199bd7 libc.so.6`__assert_fail_base(fmt="", assertion=<unavailable>, file=<unavailable>, line=<unavailable>, function=<unavailable>) at assert.c:92
    frame #3: 0x00007ffff7199c82 libc.so.6`__GI___assert_fail(assertion=<unavailable>, file=<unavailable>, line=<unavailable>, function=<unavailable>) at assert.c:101
    frame #4: 0x00000000004488b5 cbrunsli`brunsli::Histogram::Add(int) + 69
    frame #5: 0x000000000044883e cbrunsli`brunsli::EntropySource::AddCode(int, int) + 46
    frame #6: 0x000000000044476a cbrunsli`brunsli::DataStream::AddCode(int, int, int, brunsli::EntropySource*) + 202
    frame #7: 0x000000000043edc0 cbrunsli`brunsli::EncodeDC(int, int, int, int const*, int const*, short const**, short const**, std::vector<bool, std::allocator<bool> >*, brunsli::EntropySource*, brunsli::DataStream*) + 1376
    frame #8: 0x0000000000440547 cbrunsli`brunsli::ProcessCoefficients(brunsli::JPEGData const&, brunsli::JPEGCodingState*) + 743
    frame #9: 0x0000000000441667 cbrunsli`brunsli::BrunsliEncodeJpeg(brunsli::JPEGData const&, bool, unsigned char*, unsigned long*) + 647
    frame #10: 0x0000000000433bb2 cbrunsli`ProcessFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 322
    frame #11: 0x0000000000433d53 cbrunsli`main + 195
    frame #12: 0x00007ffff718c830 libc.so.6`__libc_start_main(main=(cbrunsli`main), argc=2, argv=0x00007fffffffd338, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffd328) at libc-start.c:291
    frame #13: 0x0000000000433599 cbrunsli`_start + 41
(lldb) up
frame #1: 0x00007ffff71a302a libc.so.6`__GI_abort at abort.c:89
(lldb) up
frame #2: 0x00007ffff7199bd7 libc.so.6`__assert_fail_base(fmt="", assertion=<unavailable>, file=<unavailable>, line=<unavailable>, function=<unavailable>) at assert.c:92
(lldb) up
frame #3: 0x00007ffff7199c82 libc.so.6`__GI___assert_fail(assertion=<unavailable>, file=<unavailable>, line=<unavailable>, function=<unavailable>) at assert.c:101
(lldb) up
frame #4: 0x00000000004488b5 cbrunsli`brunsli::Histogram::Add(int) + 69
cbrunsli`brunsli::Histogram::Add:
    0x4488b5 <+69>: movslq -0xc(%rbp), %rax
    0x4488b9 <+73>: movq   -0x18(%rbp), %rcx
    0x4488bd <+77>: movl   (%rcx,%rax,4), %edx
    0x4488c0 <+80>: addl   $0x1, %edx
(lldb) up
frame #5: 0x000000000044883e cbrunsli`brunsli::EntropySource::AddCode(int, int) + 46
cbrunsli`brunsli::EntropySource::AddCode:
    0x44883e <+46>: addq   $0x10, %rsp
    0x448842 <+50>: popq   %rbp
    0x448843 <+51>: retq
    0x448844:       nopw   %cs:(%rax,%rax)

from brunsli.

eustas avatar eustas commented on May 19, 2024

Perhaps -Xclang -target-cpu -Xclang haswell. Try remoing it, instead of adding -mno-bmi2.

from brunsli.

eustas avatar eustas commented on May 19, 2024

About the test image: it seems that something else is subtly broken, works well on my Mac both with CMake- and Bazel-built binaries.
As I've mentioned, for CMake too many assumptions are made about target machine. Try to strip them all (first "CPU flags", if it does not help, then "Machine flags").

from brunsli.

butterl avatar butterl commented on May 19, 2024

Thanks, the error solved and the 26M image after compressing,reduced to 21M and the compress/decompress time is about 10s with Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz(32 core)

Dose it now compress/decompress only use one core?

from brunsli.

eustas avatar eustas commented on May 19, 2024

Currently, yes.
We are planning to support multi-core in future:
color components are fully independent already, and inside color component we could work in slices with some minor compression ratio loss.

Unfortunately, can not give any promises, on when this feature will be available.

from brunsli.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.