LUT: speed up 3bpp->4bpp LUT
authorØyvind Kolås <pippin@gimp.org>
Tue, 2 May 2023 20:55:55 +0000 (22:55 +0200)
committerØyvind Kolås <pippin@gimp.org>
Tue, 2 May 2023 21:10:19 +0000 (23:10 +0200)
Keep alpha (0xff) as computed rather than stripping and reapplying.

babl/babl-fish-path.c

index afb3a797e50cb96b99de949e404b71fc9f66b715..712f57a7df956987542d226f892fb67e078d7294 100644 (file)
@@ -276,8 +276,7 @@ static inline int _do_lut (uint32_t *lut,
           uint32_t *dst = (uint32_t*)destination;
           while (n--)
           {
-             uint32_t col = src[0]*256*256+src[1]*256+src[2];
-             *dst = lut[col] | 0xff000000;
+             *dst = lut[src[0]*256*256+src[1]*256+src[2]];
              dst++;
              src+=3;
           }
@@ -455,8 +454,6 @@ static inline int babl_fish_lut_process_maybe (const Babl *babl,
                                   temp_lut, 3,
                                   lut, 4,
                                   256*256*256);
-         for (int o = 0; o < 256 * 256 * 256; o++)
-           lut[o] = lut[o] & 0x00ffffff;
          free (temp_lut);
        }
        else if (source_bpp == 2 && dest_bpp == 2)