What kind of image are you using that you see a loss of quality with ASTC 4x4?
I converted a close-up shot of a cat down to 1296x728 and converted this to 8 different
ASTC versions: 4x4, 5x4, 5x5, 6x5, 6x6, 8x5, 8x6 and 8x8.
The display I am testing with is an EVE3-50G, it "only" has a 800x480 screen with 5" and "only" a BT815.
The eight ASTC images just fit in the 4MB flash on the display - hence the resolution.
The map file looks like this:
unified.blob : 0 : 4096
cat-2969932_1296x728_1296x728_COMPRESSED_RGBA_ASTC_4x4_KHR.raw : 4096 : 943488
cat-2969932_1296x728_1300x728_COMPRESSED_RGBA_ASTC_5x4_KHR.raw : 947584 : 757120
cat-2969932_1296x728_1300x730_COMPRESSED_RGBA_ASTC_5x5_KHR.raw : 1704704 : 607360
cat-2969932_1296x728_1296x730_COMPRESSED_RGBA_ASTC_6x5_KHR.raw : 2312064 : 504576
cat-2969932_1296x728_1296x732_COMPRESSED_RGBA_ASTC_6x6_KHR.raw : 2816640 : 421632
cat-2969932_1296x728_1296x730_COMPRESSED_RGBA_ASTC_8x5_KHR.raw : 3238272 : 378432
cat-2969932_1296x728_1296x732_COMPRESSED_RGBA_ASTC_8x6_KHR.raw : 3616704 : 316224
cat-2969932_1296x728_1296x728_COMPRESSED_RGBA_ASTC_8x8_KHR.raw : 3932928 : 235904
On a touch-event my code loads the next image from flash to RAM_G:
case 10:
if(toggle_lock == 0)
{
toggle_lock = 42;
image++;
image &= 0x07;
switch(image)
{
case 0:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 4096, 943488);
break;
case 1:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 947584, 757120);
break;
case 2:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 1704704, 607360);
break;
case 3:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 2312064, 504576);
break;
case 4:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 2816640, 421632);
break;
case 5:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 3238272, 378432);
break;
case 6:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 3616704, 316224);
break;
case 7:
EVE_cmd_memzero(0, 950000);
EVE_cmd_flashread(0, 3932928, 235904);
break;
}
}
break;
And to display the image I am using this:
switch(image)
{
case 0:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_4x4_KHR, 1296, 728);
break;
case 1:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_5x4_KHR, 1296, 728);
break;
case 2:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_5x5_KHR, 1296, 728);
break;
case 3:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_6x5_KHR, 1296, 728);
break;
case 4:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_6x6_KHR, 1296, 728);
break;
case 5:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_8x5_KHR, 1296, 728);
break;
case 6:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_8x6_KHR, 1296, 728);
break;
case 7:
EVE_cmd_setbitmap_burst(0, EVE_COMPRESSED_RGBA_ASTC_8x8_KHR, 1296, 728);
break;
}
EVE_cmd_dl_burst(DL_BEGIN | EVE_BITMAPS);
EVE_cmd_dl_burst(VERTEX2F(0, 0));
EVE_cmd_dl_burst(DL_END);
Plus I print out the number stored in the variable "image" on the screen.
Now for some unknown reason I can not get 4x4, 5x4 and 5x5 to display properly.
And yes, I have seen that the image converter noted a different resolution for 5x4 and 5x5.
But when I play with the resolution all I get is pixel trash.
The other 5 work just fine though.
And I have to say, I do not see any difference between 6x5, 6x6, 8x5, 8x6 and 8x8.
Not even under a magnifying glas.
The image I am using is this one:
https://pixabay.com/de/photos/katze-fl%C3%BCge-augen-hautnah-tier-2969932/I downloaded the 1920x1080 version, scaled it and saved it again as .jpg with 90% quality.
And it's just brilliant, the eyes, the hairs, a myriad of details and no compression fragments.