Firma Google zaprezentowała nową otwartą bibliotekę jpegli, która zawiera implementację kodera i dekodera obrazów w formacie JPEG. Biblioteka zawiera dodatkowe optymalizacje zwiększające efektywność kodowania, które pozwalają osiągnąć o 35% wyższy stopień kompresji wysokiej jakości obrazów w porównaniu do tradycyjnych kodeków JPEG. W porównaniu do libjpeg-turbo, biblioteka jpegli osiąga podobny poziom jakości przy jednoczesnym zmniejszeniu bitratu o 32%. Na poziomie API i ABI biblioteka jest w pełni kompatybilna z libjpeg62 i może być używana do jej bezproblemowej zamiany. Kod biblioteki jest napisany w języku C++ i jest rozpowszechniany na licencji BSD.

Zwiększenie poziomu kompresji osiąga się dzięki zastosowaniu zaawansowanych technologii do redukcji szumów na obrazie i poprawy jakości, wykorzystujących bardziej efektywne metody psychowizualnego modelowania do zmniejszenia występujących artefaktów. W szczególności w jpegli wykorzystano adaptacyjną heurystykę kwantyzacji stosowaną w projekcie JPEG XL, a także ulepszone algorytmy wyboru macierzy kwantyzacji oraz obliczania wyników pośrednich.
Biblioteka jpegli pozwala na kodowanie obrazów z wykorzystaniem 10 lub więcej bitów na składową kolorystyczną. Wynik pracy nowych algorytmów kodowania dostosowuje się do tradycyjnego modelu formatu JPEG, który dopuszcza użycie tylko 8 bitów na składową kolorystyczną. Taka cecha pozwala na zachowanie zgodności z istniejącymi dekoderami przeznaczonymi dla 8-bitowego przedstawienia składowych kolorów.
Obrazy kodowane za pomocą jpegli w pełni odpowiadają standardowi JPEG, nie wymagają specyficznych dekoderów i mogą być przeglądane w istniejących przeglądarkach JPEG i przeglądarkach internetowych. Zastosowanie własnego dekodera do dekompresji obrazów skompresowanych za pomocą jpegli pozwala na dodatkowe zmniejszenie artefaktów. Prędkość kodowania przy użyciu jpegli jest porównywalna z bibliotekami libjpeg-turbo i MozJPEG.
Źródło: opennet.ru
