I would suggest using ktx (basis) for all textures, it simplifies your pipeline - you don’t have to use two different texture types.
Compressing smaller textures will yield smaller proportional gains - yes, but those gains will still be there. What @donmccurdy said:
this is slightly incorrect, it is technically true that it takes some time to upload a texture to the GPU, but the larger part is spent in “decode”. That is, when you try to upload, say a PNG as a texture to the GPU - it will first be decoded (decompressed), PNG is a fairly complex format to decode and a 4k image might take ~200ms to decode, actual upload of 90Mb of data to the GPU will be trivial by comparison, taking only around 5ms.
What @donmccurdy said about reducing this “freezing” is true though, since KTX textures are not decoded before upload. So you end up uploading typically 4x less data, so instead of say 90Mb, you upload only 22.5Mb, but you also don’t pay the decoding cost.
On top of that, compressed textures typically come with their own mipmaps, this further saves your GPU time to build those mipmaps.
On top of that, compressed textures run faster, what I mean by this is that sampling a compressed texture in the shader will be a few cycles faster than a normal texture, because hardware is optimized for that and compressed texture takes less space, so you’ll have more texture cache hits.
On top of that, since compressed textures take less space on the GPU, you can put more texture data on the GPU to use in the same scene before you start seeing any performance issues due to memory issue, also around 4x more (assuming your compressed textures take 4x space).
Compressed textures are not “free” though, and the biggest thing to watch out for is the compression artifacts, when you look at a poorly compressed JPG image - you will see colors being slightly off in some places and curved lines broken into blocky smudges. Compressed textures work in much the same way as JPG compression, so you can expect to see similar artifacts. Usually this is not a problem as long as you’re aware of it ahead of time and use proper compression settings.
Back to your question.
If you have a lot of small textures (256 resolution or less) - I recommend using a texture atlas. It’s not about compression, but more about avoiding texture switching, which is a significant cost overhead in its own right. You can find a lot of information on texture atlases here on the forum if you’re interested.