2026-07-07 – Comprimindo imagens 25 vezes mais que o formato PNG, 2500x mais pequeno que um BMP, 99,96% de Compressão com o meu Formato de Imagem TSF em C++…
Apresento-vos o meu próprio formato de compressão de imagem TSF, que comprime os tilesets dos meus futuros jogos 25 vezes mais que o formato PNG.
Acontece que, como podem ver no exemplo abaixo, o tileset do jogo “Batman the Movie” da Ocean (1989), ocuparia 33 MB de tamanho.
Para eu incluir o tileset no ficheiro executável do meu Game Engine, obviamente que usava o formato PNG, pois seria o melhor compressor lossless de imagens.
Mas não chegava. Ele comprimia 99% mas continuaria a ter 300 KB extra no ficheiro executável do meu Game Engine, que já ia em 10 MB de tamanho com os MP3 e imagens do jogo embebidas.
Eu tinha de resolver o problema. O formato PNG não era suficiente para mim, por isso criei um mais eficaz, que comprime 25 vezes mais o que o PNG já teria comprimido.
Basicamente, um PNG ficaria a 1% do tamanho de um BMP, e o meu TSF passou a ficar a 4% de tamanho do próprio PNG, 25 vezes mais pequeno, e assim 2500 vezes mais pequeno que o formato BMP original.

Na imagem acima podem ver que converti o ficheiro BMP de 33 MB num TSF de 13 KB, e depois com o de 13 KB voltei a converter em BMP, e podem ver que ficou com o ficheiro 100% igual (vejam os comandos diff e cmp), e aberto no GwenView com a imagem impecável, e abri também com o meu ficheiro conversor ImageCompressor que não só serve para converter imagens, como para abrir o formato TSF, que o Gwenview não conhece, dado que acabei de o criar.
Isto não é nada ainda, tenho formas de compressão muito giras que mostrarei um dia, em que consigo comprimir milhões de vezes mais certas imagens, mas não por métodos de compressão tradicionais, depois um dia explico melhor sem revelar ainda.
Mas neste caso vocês perguntam-se: “Será o formato PNG assim tão mau que ainda seja possível comprimir 25x mais o que ele já comprimiu? Será que os cientistas de computação não arranjaram nada melhor?”.
É assim: O PNG é feito para funcionar o melhor possível para todos os tipos de imagens, e não especificamente para um só tipo. Por isso são generalistas. Neste caso, as pessoas que desenvolveram o formato PNG poderiam ter conseguido o que consegui aqui se tentassem.
O meu formato serviu para atacar um problema específico, que é o da compressão de imagens para videojogos, e por isso eu ataquei em força um problema específico, ao invés de tentar comprimir imagens no geral mais.
O meu compressor não ultrapassa assim o PNG em todos os tipos de imagem, apenas em tipos de imagem específicos, usados em videojogos.
Neste caso, foi usado para tilesets de jogos, e daí, devido à minha pouca originalidade para nomes, chamei-lhe TSF numa forma de brincadeira com a rádio famosa, e por ser “Tile Set Format”, porque o estava a testar com tilesets para o meu Game Engine.
Mas ele serve para problemas específicos. Noutros formatos de imagem, fica próximo ao formato PNG tradicional, ele só ganha em certo tipo de imagens.
Mas como podem ver, o meu nível de testes do meu Game Engine, terá um ficheiro executável com perto de 300 KB a menos do que teria se usasse o formato PNG.
Passei de 33 MB a 13 KB. De 33.000.000 a 13.326.
Isto não é nada ainda, um dia vou partilhar algo sobre o que chamo de “compressão infinita”, algo mais virado para matemáticas, e que poderão achar interessante.
De momento partilho convosco apenas isto, para que saibam, que, nem sempre o melhor possível foi atingido, e que por vezes vale a pena reinventar a roda. 🙂
Fiz isto agora porque costumo fazer algo para o Game Engine perto de ocasiões festivas, como foi agora na época do São João, em que passei a noite a mexer no compressor, à varanda, dado que não fui para a rua este ano.
Mas estarei dedicado ao meu livro de Matemática & Física, e deixarei estas coisas para o próximo ano.
Este formato de imagem vai ser usado noutros projectos meus, como por exemplo o navegador de fractais, para vos permitir ter imagens dos vossos fractais favoritos guardadas ocupando menos espaço no disco.
Mas sim, 2500 vezes mais pequeno que o original, e 25 vezes mais pequeno que o formato PNG, comprimindo a imagem acima em 99,96% parece do outro mundo e difícil de acreditar? Mas não é assim tanto para uma pessoa que sem saber como consegue enrolar 2 frigideiras juntas com uma mão quando o homem que levantou 500 Kg nem uma com duas mãos consegue. Para mim tudo é possível. 😛
E já sabem como sou, eu não me contento com o que os outros usam.
Mais notícias um dia.
Hasta!
2026-07-07.
Próximo post associado ao meu Game Engine:
(A colocar um dia).
Último post, também associado ao meu Game Engine:
Partilhado no mesmo dia no meu LinkedIn, em:


