Por que as pessoas usam imagens JPG?

17

Eu vejo imagens JPG em todos os lugares. Mas por que?

Arquivos PNG têm opacidade, enquanto JPGs não. Tentei exportar algumas imagens para PNG e JPG para comparar o tamanho, e ambas correspondem ou o PNG é menor (dependendo da imagem, é claro).

insira a descrição da imagem aqui

Esta é uma imagem JPG de 512 x 512 que diz "JPG"

insira a descrição da imagem aqui

E esta é uma imagem PNG de 512 x 512 que diz "PNG".

O JPG era 31.7kb e o PNG era 25.9kb

Então, o que dá?

JediBurrell
fonte
3
Algo que você também deve saber é que .png é sem perdas, enquanto .jpg não é. Portanto, .png é mais adequado para imagens-fonte, enquanto que .jpg é mais adequado para publicação.
Ninguém
1
O @Nobody PNG pode ser com ou sem perdas. Dependendo de como você o exporta.
DA01 05/06
8
Para sua informação, você raramente usaria JPG para arte de linha, como nos exemplos que você usa aqui. Portanto, com base apenas nesses exemplos, você não usaria JPG. Se fossem fotos, você perceberá que obtém resultados totalmente diferentes.
DA01 05/06
7
Eu realmente não acredito que essa pergunta tenha sobrevivido mais de 10 segundos.
à paisana
2
@ DA01 PNG nunca apresenta perdas, mas é possível manipular com perdas a imagem antes de exportá-la para PNG para diminuí-la. A especificação PNG não sabe nada sobre isso.
6605 Ninguém

Respostas:

35

Porque eles são muito melhores em compactar fotos com muitas cores e formas irregulares, como fotografias.

Você já tentou o mesmo experimento que fez, mas depois com uma fotografia? O arquivo .png provavelmente será maior do que qualquer arquivo .jpg, independentemente do fator de compactação do arquivo .jpg.

Exemplo:

imagem png
imagem .png, 110k

jpeg em 100 qualidade
.jpg com 100% de qualidade, 63k

jpeg em 30 qualidade
.jpg com 30% de qualidade, um mísero 9k

Se você olhar atentamente, verá alguns artefatos no formato .jpg de 30% de qualidade, mas isso ocorre principalmente porque a borda rígida da lâmpada contra o fundo verde suave não se presta muito bem ao algoritmo de compactação. Você pode ter fotos regulares reduzidas a até 10 ou 5% de qualidade, sem qualquer perda que você notaria rapidamente.

Vincent
fonte
3
FWIW: Depois de otimizar o PNG, ele possui 34 KB, sem qualquer perda reconhecível.
Mario
Uau, eu nunca soube disso. Tentei converter uma fotografia que tirei para PNG e passou de 550k para 2933k. Você sabe o que torna esse o caso?
precisa saber é o seguinte
10
A compactação PNG @JediBurrell é sempre sem perdas (AFAIK), enquanto a compactação do JPG acaba descartando as informações da imagem. No seu caso, uma imagem já compactada em JPG, embora com boa aparência, conterá bordas em torno de cada bloco (pequenos quadrados compactados que compõem uma imagem em JPG), e o PNG seleciona esses artefatos para que não sejam perdidos. Portanto, seu PNG é muito maior que o JPG original. A recompactação de um JPG usando JPG tornará isso pior muitas vezes - o efeito é chamado de "meta-bloqueio".
Jay Versluis
2
@JediBurrell Se você está interessado nos detalhes técnicos e matemáticos, pode assistir a este vídeo da Computerphile.
Paul Manta
2
"o fundo verde suave não se presta muito bem ao algoritmo de compactação": pelo contrário, os gradientes são muito bem representados pelo JPEG, enquanto as arestas duras não são, produzindo artefatos nas proximidades. Para os curiosos, leia sobre Fourier transformando um sinal quadrado.
Lloeki 6/06
13

O JPEG tem o apoio da indústria fotográfica e antecede o PNG em cerca de meia dúzia de anos, enquanto o PNG foi projetado como um substituto para o GIF, que era protegido com zelo pela CompuServe. As pessoas foram processadas por usar GIFs em seus sites, por exemplo, simplesmente porque não usavam um programa licenciado pela CompuServe para criar essas imagens.

Desde o início, o JPEG foi projetado para recuperar um pouco de espaço, diminuindo os arquivos, em detrimento da qualidade perfeita em pixels. Mesmo a configuração de Q para 100 causará artefatos menores e quase invisíveis - o dano é causado e, a cada vez que o arquivo é modificado e salvo, mais danos ocorrem. No entanto, a menos que você o faça muitas vezes, provavelmente nunca perceberá o efeito, a menos que vá procurá-lo.

PNG, por outro lado, é perfeitamente sem perdas. Cada pixel é reproduzido fielmente todas as vezes, não importa quantas vezes o arquivo seja modificado e salvo. No entanto, há um limite de quão bem você pode compactar dados sem perda, embora o PNG use vários truques para compactar o máximo possível de informações no menor número possível de bytes de dados. Um JPEG de alta qualidade provavelmente terá o mesmo tamanho de um PNG sem otimização ou até maior. À medida que o PNG começa a otimizar, digamos, usando filtros ou ajustando os tamanhos das janelas, o arquivo fica menor sem perdas, enquanto o JPEG deve começar a descartar as informações visuais para acompanhar.

Então, por que o JPEG é usado? Afinal, é geralmente inferior em termos de fidelidade e espaço de armazenamento. A principal razão, é claro, é que é um padrão da indústria e possui um suporte muito amplo. Praticamente todas as câmeras do mundo usam RAW (literalmente, os dados brutos) ou JPEG. Existem processadores de dados de hardware embutidos nessas câmeras para compactar os dados JPEG o mais rápido possível, etc.

Você descobrirá que esse é o mesmo motivo pelo qual o GIF ainda está em toda parte. A maioria dos softwares suporta GIF, enquanto o PNG possui um suporte menor em softwares mais antigos (por exemplo, versões mais antigas do Internet Explorer exigiam um plug-in para mostrar arquivos PNG). Mesmo com um péssimo suporte de cores, ele suporta animações, algo que o PNG não faz (existe um formato de arquivo relacionado, APNG, que nunca decolou como o PNG). O GIF ainda é o campeão das imagens animadas, pois é o único formato de arquivo que pode fazê-lo com amplo suporte.

O custo para mudar de JPEG para PNG seria proibitivo para um possível cliente de hardware. As câmeras precisariam de novos processadores construídos para oferecer suporte à compactação rápida de PNG, por exemplo, porque são codificados para usar JPEG agora. Suas câmeras antigas não teriam valor, porque você teria que comprar uma nova com um chip PNG embutido. Isso também significaria que você teria que convencer um fabricante a ir contra os padrões da indústria e começar a fabricar esses dispositivos, o que significa que haveria demanda suficiente para justificá-lo, e essas câmeras seriam inicialmente mais caras do que as baseadas em JPEG homólogos. É muito difícil mudar uma indústria.

phyrfox
fonte
PNG é potencialmente sem perdas. O software de economia pode optar por perder dados difíceis para obter um melhor formato compactável. A natureza vavelet do jpeg torna impossível a sua perda.
Joojaa
@joojaa Você pode fazer backup da declaração de que a compactação PNG "pode ​​optar por perder dados difíceis"?
CJ Dennis
@joojaa JPEG usa compactação DCT, não wavelet. Você pode estar pensando em JPEG 2000.
bcrist
7
Entendo que a redução de cores ocorre antes que a imagem seja passada para o codec PNG. Só porque um formato é capaz de armazenar dados já com perdas não os torna com perdas. Alterar uma imagem RGB de 32 bits com Alpha para uma imagem em preto e branco de 1 bit perderá muitos dados, mas não é o PNG que está fazendo isso. A redução da profundidade de cor é uma conversão com perdas, não uma compactação com perdas .
CJ Dennis
2
Meu erro é DCT. O que quero dizer é que, embora o PNG não tenha perdas, nem todos os otimizadores de PNG são! Assim, sem saber o que você usou, você não sabe se o processo foi com perdas ou não. Portanto, a questão da não-perda não é tão simples quanto se pensa. Assim como as alterações de profundidade de cor acontecem antes de salvar os otimizadores PNG, as imagens podem ser alteradas de outras maneiras antes de salvar, para uma área menor. @JCDennis Esses trituradores existem apenas veja suas páginas de manual.
Joojaa
7

Algo não mencionado em grandes detalhes é a maneira como esses algoritmos de compactação funcionam. O JPEG é direcionado diretamente para fotografias em que pequenas alterações na cor dos pixels não são notadas. O PNG é mais direcionado para imagens fabricadas que contêm grandes áreas de uma única cor em que a compressão é aproveitada ao máximo, como no exemplo de uma foto enorme em branco com letras pretas. Se você tirasse a mesma foto e colocasse o plano de fundo branco para desbotar uniformemente de branco para cinza, de um lado para o outro da imagem, o tamanho do png aumentaria drasticamente e o jpg provavelmente teria poucas alterações. Eu fiz algumas codificações há cerca de 10 anos diretamente com esses dois formatos para descompactar esses tipos de arquivo em bmps. JPEG é muito sofisticado e complexo. PNG é muito simples e só é realmente eficaz em determinadas imagens em que a cor é imutável nas linhas horizontais

Ryan
fonte
1
Você realmente tentou isso? PNG não é apenas uma codificação de comprimento de execução e é muito mais sofisticado do que você sugere. Ele usa um algoritmo adaptável e efetivamente comprime áreas sólidas e padrões repetidos.
Z7sg #