Comprimir muitas imagens grandes semelhantes?

11

Estou lidando com um grande arquivo de imagens de satélite da Terra, cada uma tirada com 15 minutos de diferença sobre a mesma área, portanto elas são bastante semelhantes entre si. Dois contíguos são assim:

Osalgoritmosdevídeocompactammuitobemváriasimagenssemelhantes.Noentanto,essasimagenssãomuitograndesparavídeo(10848x10848)eousodecodificadoresdevídeoexcluiriaosmetadadosdasimagens,portanto,extraí-loserestaurarosmetadadosseriacomplicado,mesmoseeuconseguisseumcodificadordevídeoparatrabalharcomimagenstãograndes.

Parafazeralgunstestes,reduzias96imagensdeumdiapara1080x1080pixels,totalizando40,1MBeexperimentoumacompactaçãodiferentecomosseguintesresultados:

  1. zip:39,8MB
  2. rar:39,8MB
  3. 7z:39,6MB
  4. tar.bz2:39,7MB
  5. zpaqv7.14:38,3MB
  6. fp8v2:32,5MB
  7. paq8pxdv45:30,9MB
Osúltimostrêsdevemaproveitarmuitomelhorocontextoefuncionarmelhordoqueacompressãotradicional,masataxadecompactaçãoaindaémuitobaixasecomparadaaovídeomp4,quepodechegara15MBouatémesmopreservaraimagem.qualidade.

Noentanto,nenhumdosalgoritmosusadosporessesutilitáriosdecompactaçãoparecemtirarproveitodasimilaridadedasimagenscomoacompactaçãodevídeofaz.Naverdade,usandoo packJPG , que comprime cada imagem separadamente, o conjunto inteiro chega a 32.9 MB, bem perto de fp8 e paq8pxd, mas sem aproveitar as semelhanças entre as imagens (porque cada imagem é compactada individualmente).

Em outro experimento, calculei no Matlab a diferença das duas imagens acima, e é assim:

Compactarambasasimagensoriginais(219,5+217,0=436,5kBnototal)comfp8reduzi-laspara350,0kB(80%),mascompactandoumadelaseaimagemdadiferença(comoumjpgdamesmaqualidadeeusando122,5kB),resultamemumarquivode270,8kB(62%),entãonovamente(comoreveladopelacomparaçãoentreoMP4eopackJPG),ofp8nãoparecetirarmuitoproveitodassemelhanças.Mesmocompactadocomrar,umaimagemmaisadiferençaémelhorquefp8nasimagensoriginais.Nessecaso,orarreduzpara333,6kB(76%).

Achoquedevehaverumaboasoluçãodecompactaçãoparaesseproblema,jáquepossovisualizarmuitosaplicativos.Aoladodomeucasoparticular,euachoquemuitosfotógrafosprofissionaistêmmuitosdisparossimilaresdevidoadisparossequenciais,ouimagenscomlapsodetempo,etc.Todososcasosquesebeneficiariamdetalcompressão.

Alémdisso,nãoexijocompactaçãosemperdas,pelomenosnãoparaosdadosdaimagem(osmetadadosdevemserpreservados).

Então...Existeummétododecompactaçãoqueexploraassemelhançasentreasimagenscompactadas?

Asduasimagensdotesteacimapodemserbaixadas aqui , e as 96 imagens do primeiro teste aqui .

    
por Camilo Rada 08.04.2018 / 06:09

1 resposta

3

Eu não sei de um software específico que faz isso, mas há algumas pesquisas sobre o assunto. Por exemplo, consulte os artigos Conjuntos de compactação de imagens semelhantes por Samy Ait-Aoudia , Abdelhalim Gabis, Amina Naimi, e Comprimindo conjuntos de imagens semelhantes usando o modelo de compressão híbrida por Jiann-Der Lee, Shu-Yen Wan, Ma Chemg-Min, Rui-Feng Wu.

Em um nível mais prático, você pode estender sua técnica de subtração, por exemplo, escrevendo um script que use ImageMagick para calcular a diferença entre imagens consecutivas, salvando o resultado como um jpeg (ou um png comprimido se você quiser sem perdas). Você obterá uma imagem de base e um conjunto de imagens "delta" compactadas que devem ser muito menores. Para calcular a diferença usando o ImageMagick:

convert image2.png image1.png -compose MinusSrc -composite -depth 24 -define png:compression-filter=2 -define png:compression-level=9 -define png:compression-strategy=1 difference-2-1.png

Para recalcular adicionando de volta:

convert image1.png difference-2-1.png -compose Plus -composite image2-reconstructed.png

(Você pode fazer o mesmo usando jpg e economizar muito espaço).

    
por 11.04.2018 / 18:12