TurboWarp recommended, the larger images are slow: https://turbowarp.org/911394130 A successor to the image format used in TM3D available here: https://scratch.mit.edu/projects/788861757 Same controls as image editor. Press 1,2 or 3 to load an image. Press I to paste one in (using this project's format). The compression used here outperforms both QOI and PNG images when represented as base 64. This project makes use of base 94. All printable ASCII characters except whitespace is in use. It is a significant improvement over my previous format as I better used the available operation codes and assigned the majority (65%) to luma difference encodings. It's also less than 300 blocks! The data stream consists of "chunks". Each chunk contains an operation where the first character is the "op code". All characters after are "op data". The op codes are indexed from 0 and are the following: - raw RGB value (0-21) - copy adjacent colour (22-25) - use hash table like QOI (26) - RLE of op codes (27) - luma diff volumes (28-90) - unassigned (91-93) Colours in an image tend to be similar to each other. They tend to form a ellipsoid with the major axis aligned with the overall brightness (colour differences are less common). I remap the RGB values to Y'UV like QOI. Then I make use of rectangular cuboid "volumes" of small and large sizes (1 and 2 op data chars, respectively) to cover the spread efficiently. Smaller volumes are centered around the origin since smaller changes are very common. The result is a large majority of the pixels are accounted for with this form of compression. Limitations: This is called "RGB8" for a reason. It is only designed to handle data in 8-bit per channel RGB. There is an expectation that the colours are of an image so the compression may not work as well if you say, feed it normal maps or other non-image data. Like QOI and unlike PNG, it doesn't perform well with highly patterned data (think checkerboards). This is because there is no pattern recognition. PNG's sliding window can detect such things. My technique can not, it only considers previously seen colours rather than their relationship spatially among each other. A single-channel data stream version (named "A8") exists: https://scratch.mit.edu/projects/945242679/ There is no support for image properties such as dimensions. This project is purely the "data stream". See the full project here: https://github.com/awesome-llama/image_format