Kopia zapasowa wysokiej jakości Zdjęć Google - w jaki sposób Google osiąga doskonałą kompresję i czy tracę niektóre dane?


21

Jestem pewien, że wielu z nas korzysta z wysokiej jakości kopii zapasowej zdjęć Google, która pozwala nam przechowywać zdjęcia online bez opłat.

Ostatnio zastanawiałem się, jak przetestować jakość przesyłanych zdjęć, przesyłając zdjęcia (poniżej 16 MP) i porównując je z oryginałem pod względem rozdzielczości, jakości (widzianej okiem) i rozmiaru pliku.

Byłem zaskoczony, gdy zauważyłem, że rozdzielczość i jakość były prawie takie same jak w oryginale (brak widocznej różnicy w oku w większości przypadków nawet powiększony), ale rozmiar pliku został drastycznie zmniejszony - co najmniej 2-3x, a nawet około 10x w niektóre przypadki. Korzystając z RAR do różnych typów plików w przeszłości, wiedziałem, że się nie zamknie i nie zadałem sobie trudu, aby go przetestować.

Pytanie brzmi: w jaki sposób Google zarządza tak wielką kompresją bez zauważalnej zmiany samego obrazu? Czy odrzucają dane lokalizacji lub inne dane związane z obrazem, o których fotograf amator nie wie?


2
Moja odpowiedź faktycznie dotyczy drugiego pytania. Nie znaleźli magicznego ogólnego algorytmu kompresji bezstratnej, takiego jak super wersja ZIP lub RAR. Właśnie poprawili kompresję specyficzną dla JPEG.
— mattdm

Odpowiedzi:


20

Po pierwsze, wszystkie zdjęcia większe niż 16 megapikseli mają rozmiar 16 MP - więc w przypadku wielu aparatów jest to natychmiastowy, oczywisty spadek rozdzielczości.

Ale wszystkie inne zdjęcia są również kompresowane przy użyciu optymalizującego algorytmu kompresji. Nie sądzę, że Google wychodzi i mówi dokładnie, co robią, ale prawdopodobnie jest to ich algorytm Guetzli typu open source . Google twierdzi:

Obrazy generowane przez guetzli są zwykle o 20-30% mniejsze niż obrazy o równoważnej jakości generowane przez libjpeg.

Cokolwiek robią, wyniki są imponujące - często znacznie większe niż 20-30%. (Prawdopodobnie wynika z tego, że Google nie bierze pod uwagę tych naprawdę „równoważnych jakości”). W tym blogu Phone Arena można zobaczyć kilka porównań .

Ale na twoje tytułowe pytanie: zdecydowanie tracisz trochę danych. Algorytm ten nie jest magiczny - po prostu używa modelu percepcyjnego do odrzucania danych wizualnych, których nie robi konwencjonalna kompresja JPEG, co skutkuje wyższymi współczynnikami kompresji, a (miejmy nadzieję) nie powoduje żadnych zakłóceń w rzeczach, które można faktycznie zauważyć.

Tylko Ty możesz zdecydować, czy ci to odpowiada. Jeśli tworzysz kopie zapasowe oryginałów RAW (z kopiami zapasowymi również dostosowanymi) i możesz odtwarzać pliki JPEG do woli, nie zastanawiałbym się dwa razy. Ale jeśli poważnie podchodzisz do fotografii i masz przepływ pracy skoncentrowany na JPEG - i pomimo snobizmu online RAW, to w porządku - prawdopodobnie chcesz zachować oryginalne pliki JPEG bez zmian. Dodanie terabajta przestrzeni dyskowej to tylko 10 USD miesięcznie w Google. Lub jeśli jesteś klientem Amazon Prime (100 USD rocznie), dostajesz rzeczywiste nieograniczone miejsce na zdjęcia, w tym pliki RAW.


Dropbox stworzył Lepton do bezstratnej kompresji obrazów JPEG średnio o 22%
— Nick T

5

Zasadniczo rzucają moc obliczeniową na problem, używając bardzo intensywnych obliczeń, które wypróbowują różne sposoby kompresji obrazu zgodnie z regułami JPG. Przetwarzanie jest czymś, co Google ma prawdopodobnie wiele, zwłaszcza, że ​​oszczędza również pasmo przenoszenia.

Możesz zrobić to samo - oprogramowanie i różne usługi są bezpłatne lub tanie. Twój program / kamera po prostu nie ma mocy obliczeniowej, aby wymyślić „optymalny” sposób użycia kompresji stratnej JPG.


Jest to dobry punkt, chociaż zmniejszy rozmiar obrazu tylko o niewielką część.
— Salman

4
Wow, ten algorytm Guetzli wspomniany powyżej przez @mattdm to świnia! Na stronie github z oprogramowaniem informuje, że potrzebuje 300 MB pamięci RAM na megapiksel obrazu, a procesor zajmuje 1 minutę !
— davidbak

Tak. Zasadniczo „wypróbuj wiele kombinacji, a następnie użyj najlepszej”. Które starsze Lightroom, ani na przykład twój aparat (w szczególności twój aparat) mogą zrobić.
— TomTom,

Ale skoro algorytm zasadniczo kompresuje już skompresowany obraz JPEG, to czy nie jest to gorsze, jeśli zastosujesz ten sam algorytm do oryginału?
— Michael

Tak. Nie. Spójrz Gützli. JPEG - częściowo wykonywany przez kamery - jest wykonywany SZYBKO. Tehy może poświęcić minutę na znalezienie optymalnego kodowania obrazu. Usługi takie jak Compressor.io robią to samo. Uzyskujesz znaczące redukcje rozmiaru przy optycznie tym samym obrazie.
— TomTom
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.