Como o oCompress funciona
O que acontece quando você solta um arquivo, como conferir que nada é enviado e o que a compressão sem perdas e com perdas significa de verdade.
A versão curta
Quando você abre uma página de ferramenta, o seu navegador baixa a página e um pequeno programa, o compressor. Quando você adiciona um arquivo, o navegador o lê, o compressor o processa no seu próprio processador, e o resultado volta para você como um download. Em nenhum momento o arquivo é enviado pela rede. O processo inteiro é assim:
- Carregar. A página e a interface da ferramenta carregam primeiro. O mecanismo de cada tipo de arquivo (imagens, vídeo e áudio ou documentos) só é baixado quando você adiciona um arquivo correspondente, então você nunca baixa código que não vai usar.
- Ler. O seu navegador dá à página acesso exatamente aos arquivos que você escolheu, e a nada mais no seu dispositivo.
- Comprimir. O trabalho roda em um Web Worker, uma linha de execução em segundo plano do navegador, então a página continua respondendo e você pode cancelar a qualquer momento.
- Salvar. O arquivo comprimido é criado na memória (vídeos grandes, no armazenamento privado do navegador) e salvo pelo download normal do seu navegador, um por um ou em um ZIP.
O que roda no seu navegador
Os navegadores modernos conseguem executar código compilado perto da velocidade nativa por meio do WebAssembly e dão às páginas da web acesso aos codificadores de vídeo por hardware do aparelho por meio de uma interface chamada WebCodecs. O oCompress usa os dois:
- Imagens: MozJPEG para JPEG, OxiPNG e um quantizador de paleta para PNG, o codificador WebP da libwebp do Google, a libavif para AVIF, o SVGO para SVG e decodificadores e codificadores dedicados para GIF e TIFF. Os codecs de JPEG, PNG, WebP e AVIF são compilados para WebAssembly.
- Vídeo e áudio: WebCodecs com a biblioteca Mediabunny para ler e gravar contêineres como MP4 e WebM. A codificação usa o codificador por hardware do seu chip gráfico quando disponível, e é por isso que pode ser rápida mesmo em um navegador. Os arquivos MP3 são gravados pelo codificador LAME e os FLAC pela libFLAC, ambos compilados para WebAssembly e carregados só quando necessário.
- Documentos: código nosso, construído sobre bibliotecas de PDF e ZIP de código aberto, abre PDFs e arquivos do Office, recomprime as imagens lá dentro com os codecs de imagem e grava um novo arquivo.
Todas as bibliotecas que distribuímos são de código aberto: a maioria sob licenças permissivas como MIT, BSD e Apache 2.0, a Mediabunny sob a MPL 2.0 e o codificador de MP3 LAME sob a LGPL, como um arquivo separado e substituível. Veja a lista de bibliotecas com versões e licenças.
Como você pode conferir que nada é enviado
Você não precisa acreditar só na nossa palavra. Dois testes simples:
- Fique offline. Abra uma página de ferramenta, comprima um arquivo para que o mecanismo seja carregado, depois desligue o Wi-Fi ou os dados móveis e comprima outro arquivo do mesmo tipo. Funciona, porque nada precisa da rede.
- Observe a rede. No Chrome, Edge ou Firefox, pressione F12, abra a guia Rede (Network) e comprima um arquivo. Você vai ver o código do compressor sendo carregado do nosso site e requisições de análise e de anúncios, mas nenhuma requisição levando o seu arquivo. Uma foto de 10 MB apareceria como um upload de 10 MB; não há nenhum.
A página envia, sim, eventos de uso anônimos ao Google Analytics, como "um JPG de alguns megabytes foi comprimido". Esses eventos contêm a ferramenta, o tipo de arquivo e, em faixas aproximadas, o tamanho, a economia e o tempo de processamento, nunca o nome do arquivo nem o conteúdo dele.
Compressão sem perdas: o mesmo conteúdo em menos bytes
A compressão sem perdas encontra redundância, coisas que estão guardadas mais de uma vez ou que podem ser previstas, e as grava de forma mais compacta. A decodificação inverte o processo com exatidão. Três ideias aparecem em quase todos os formatos sem perdas:
- Previsão. Pixels vizinhos em uma imagem ou amostras consecutivas em um áudio costumam ser parecidos. Guardar a pequena diferença em relação a uma previsão, em vez do valor completo, deixa números quase sempre próximos de zero. Os filtros do PNG e o preditor linear do FLAC funcionam assim.
- Repetição. Sequências repetidas são substituídas por uma referência curta à cópia anterior. Essa é a parte LZ77 do DEFLATE, usado em ZIP, PNG e arquivos do Office.
- Codificação de entropia. Valores frequentes recebem códigos curtos, e valores raros, códigos longos (codificação de Huffman ou aritmética).
A compressão sem perdas tem um limite natural: ruído aleatório não pode ser previsto, então uma foto granulada ou uma gravação com ruído nunca diminui muito sem perda. É também por isso que comprimir um arquivo que já está comprimido, como um JPEG dentro de um ZIP, quase não economiza nada.
Compressão com perdas: removendo o que você não vai sentir falta
Os codecs com perdas vão além, descartando informações que os olhos e os ouvidos humanos mal percebem. JPEG e WebP guardam a cor com resolução menor que a luminosidade e arredondam os detalhes finos de alta frequência. MP3, AAC e Opus descartam sons mascarados por outros mais altos. Codecs de vídeo como o H.264 guardam uma imagem completa de vez em quando e, no intervalo, principalmente movimento e mudanças.
A configuração de qualidade ou de taxa de bits decide quanto é descartado. Com configurações moderadas, a perda é muito difícil de notar; se você exagerar, aparecem artefatos típicos: blocos e halos nas imagens, um som metálico ou de "debaixo d'água" no áudio, borrões em cenas rápidas de vídeo.
O que as ferramentas prometem e o que não prometem
- Você nunca recebe um arquivo maior. Se o resultado não for menor, a ferramenta devolve o original e avisa que ele já está otimizado.
- Documentos e arquivos de áudio geram bytes idênticos para o mesmo arquivo e as mesmas configurações; codificadores de vídeo por hardware podem variar alguns bytes entre uma execução e outra.
- O texto dos documentos continua sendo texto; as páginas nunca são transformadas em imagens.
- Metadados de imagem, como a localização GPS, são removidos por padrão, enquanto o perfil de cor e a rotação são mantidos. Metadados de vídeo, como local, aparelho e datas, também são removidos por padrão; o áudio mantém as tags e a capa, a menos que você desative isso.
O que não podemos prometer é uma porcentagem específica. A economia depende inteiramente de como o arquivo foi feito: uma foto de celular ou um PDF escaneado normalmente tem bastante margem, um arquivo que já foi otimizado tem pouca. A ferramenta mostra os tamanhos exatos antes e depois de cada arquivo.
Limites da compressão no navegador
Uma aba do navegador é um ambiente isolado com memória limitada, e isso define os limites do que é viável. A ferramenta aceita imagens de até 200 MB e 100 megapixels, arquivos PDF e do Office de até 300 MB e vídeo e áudio de até 4 GB no computador (1 GB no celular), embora vídeos longos em 4K ainda possam não caber na memória de uma aba. A velocidade depende do seu hardware: nos nossos testes em um PC Windows rápido no Chrome, um minuto de vídeo 1080p levou cerca de 20 segundos, e uma foto de 24 megapixels, cerca de 2,5 segundos; celulares podem ser bem mais lentos. Vídeo e a maioria das conversões de áudio precisam de WebCodecs, que as versões atuais do Chrome, Edge e Opera, o Firefox 130+ e o Safari 26+ oferecem; WAV e AIFF podem virar MP3, FLAC ou WAV mesmo sem ele.
Alguns formatos não têm nenhum decodificador nos navegadores, como WMA, AVI e WMV, e arquivos binários antigos do Office não podem ser reescritos com segurança. Para eles, a ferramenta explica as opções em vez de gerar um arquivo que poderia estar danificado. Quando um trabalho é grande demais para um navegador, um programa de desktop como o HandBrake para vídeo ou o LibreOffice para documentos é a recomendação honesta.