Backup de alta qualidade do Google Fotos - como o Google consegue uma ótima compactação e estou perdendo alguns dados?

21

Tenho certeza de que muitos de nós utilizamos o backup de alta qualidade das fotos do Google, o que nos permite armazenar fotos on-line sem taxas.

Recentemente, pensei em testar a qualidade dos uploads realizando o upload de algumas fotos (abaixo de 16 MP) e comparando-as com o original em termos de resolução, qualidade (como visto a olho nu) e tamanho do arquivo.

Fiquei surpreso ao constatar que a resolução e a qualidade eram quase as mesmas do original (na maioria dos casos, não havia diferença visual para os olhos), mas o tamanho do arquivo foi drasticamente reduzido - pelo menos 2-3x e até 10x alguns casos. Tendo usado o RAR para vários tipos de arquivos no passado, eu sabia que não chegaria perto e não me preocupei em testá-lo.

A questão é: como o Google gerencia uma compactação tão grande sem nenhuma alteração perceptível na própria imagem? Eles estão despejando dados de localização ou outros dados relacionados à imagem que o fotógrafo amador não conhece?

Anurag B.
fonte
2
Minha resposta realmente aborda a segunda pergunta. Eles não encontraram um algoritmo geral mágico de compactação sem perdas, como uma super versão do ZIP ou RAR. Eles apenas aprimoraram a compactação específica para JPEG.
mattdm

Respostas:

20

Bem, por um lado, todas as fotos maiores que 16 megapixels são redimensionadas para 16 MP - então, para muitas câmeras hoje, essa é uma queda imediata e óbvia na resolução.

Mas todas as outras fotos também são compactadas , usando um algoritmo de compactação otimizado. Eu não acho que o Google saia e diga exatamente o que eles fazem, mas provavelmente é o algoritmo Guetzli de código aberto . O Google reivindica:

As imagens geradas por guetzli são geralmente 20 a 30% menores que as imagens de qualidade equivalente geradas pelo libjpeg.

O que quer que estejam fazendo, os resultados são impressionantes - geralmente muito maiores que 20 a 30%. (Provavelmente, o Google não considera essas "qualidades equivalentes".) Você pode ver algumas comparações lado a lado nesta postagem no blog da Phone Arena .

Mas, para a sua pergunta do título: você definitivamente está perdendo alguns dados. Esse algoritmo não é mágico - ele simplesmente usa um modelo perceptivo para descartar dados visuais que a compactação JPEG convencional não faz, resultando em taxas de compactação mais altas e (esperançosamente) não causando mais perturbações às coisas que você pode realmente notar.

Só você pode decidir se está bem com isso. Se você estiver fazendo backup de originais RAW (com ajustes também armazenados em backup) e puder recriar os JPEGs à vontade, eu não pensaria duas vezes sobre isso. Mas se você é sério sobre fotografia e tem um fluxo de trabalho centralizado em JPEG - e apesar do esnobismo RAW on-line, tudo bem - você provavelmente deseja pelo menos manter os arquivos JPEG originais inalterados. Adicionar um terabyte de armazenamento custa apenas US $ 10 / mês com o Google. Ou se você é um cliente Amazon Prime (US $ 100 / ano), obtém real de armazenamento de fotos ilimitadas, inclusive de arquivos RAW.

mattdm
fonte
O Dropbox criou o Lepton para compactar sem perdas imagens JPEG em média 22%
Nick T
5

Eles estão basicamente jogando o poder de processamento no problema, usando abordagens intensivas de computação que tentam várias maneiras de compactar a imagem dentro das regras do JPG. O processamento é algo que o Google provavelmente possui, especialmente porque também economiza largura de banda.

Você pode fazer o mesmo - o software e vários serviços são gratuitos ou baratos. Seu programa / câmera simplesmente não tem o poder de processamento para criar uma maneira "ideal" de usar a compactação com perda de JPG.

TomTom
fonte
Este é um bom ponto, embora apenas reduza o tamanho da imagem em uma pequena proporção.
Salman A
4
Uau, esse algoritmo Guetzli mencionado por @mattdm acima é um porco! No site do github, com o software, ele diz que ele precisa de 300Mb de RAM por megapixel de imagem para processar e também leva um minuto de CPU por megapixel!
Davidbak
Sim. Basicamente "experimente várias combinações e use a melhor". O que o Lightroom mais recente, por exemplo, sua câmera (em particular sua câmera) pode fazer.
TomTom
Mas como o algoritmo está basicamente recomprimindo uma imagem JPEG já compactada, isso não é inferior no resultado de se você aplicasse o mesmo algoritmo ao original?
Michael
Sim. Não. Procure Gützli. JPEG - feito em parte pelas câmeras - é feito RÁPIDO. Tehy pode gastar um minuto para encontrar a codificação ótimo por serviços de imagem como compressor.io fazer o mesmo. Você obtém reduções de tamanho muito significativas com opticamente a mesma imagem.
TomTom