r   e   k   l   a   m   a
r   e   k   l   a   m   a

Tekst i grafiki w JPEG bez paskudnego halo dzięki pomysłowi polskiego programisty

Strona główna AktualnościOPROGRAMOWANIE

Przedstawiony przez Fabrice Bellarda format grafiki BPG wzbudził ogromne zainteresowanie – nie trzeba było być specjalistą od grafiki czy fotografii, by dostrzec jego miażdżącą przewagę nad popularnym JPEG. Niestety na drodze do jego upowszechnienia mogą stać patenty dotyczące kodeka H.265 (HEVC). Mozilla radzi więc, by trzymać się od BPG z dala, proponując dwa rozwiązania problemu jakości skompresowanej grafiki. Pierwsze z nich to eksperyment, wolny kodek Daala, który choć obiecujący, wciąż wymaga sporej pracy. Drugie dostępne jest już dziś, i co najważniejsze, działa praktycznie wszędzie bez konieczności stosowania dodatkowego oprogramowania.

Tym rozwiązaniem jest rozwijany od marca tego roku enkoder MozJPEG. Doczekał się on właśnie wydania 3.0, które dzięki staraniom jego deweloperów, w tym dobrze znanego polskiego programisty Kornela Lesińskiego (@pornelski na Twitterze), znacząco ulepsza jakość zakodowanych nim obrazków, zarówno zdjęć jak i liniowych grafik.

Za pomocą MozJPEG będzie już można sensownie kompresować tekst czy proste komiksy; dzięki zastosowaniu techniki odpierścieniowania (deringingu) wokół krawędzi o wysokim kontraście na białym tle praktycznie nie widać już szarych smug. Udało się też wyraźnie ulepszyć wierność odwzorowania gradientów barwnych, wprowadzając nowe, łatwo dostępne tabele kwantyzacji, zoptymalizowane pod kątem obrazów o wysokiej rozdzielczości (standardowe tabele kwantyzacji JPEG są dopasowane do wyświetlaczy o niskiej rozdzielczości).

r   e   k   l   a   m   a

Enkoder przynosi też zaawansowane mechanizmy kompresji. Domyślnie stosowana jest optymalizacja przez progresywne skanowanie, wzięta z narzędzia jpgcrush. Dzięki temu rozmiar JPEG-ów może zostać zmniejszony o dodatkowe kilkanaście procent, bez dalszego obniżania ich jakości. Wykorzystywany jest też algorytm kwantyzacji Trellis, stosowany w kodekach wideo. Zamiast po prostu odrzucać określoną liczbę detali według ustalonej jakości, MozJPEG sprawdza koszt zapisu każdego z detali, odrzucając tylko te, które kompresują się najgorzej.

Siłą MozJPEG jest jej pełna binarna kompatybilność ze standardowymi bibliotekami libjpeg i libjpeg-turbo. Programy dynamicznie linkujące do tych bibliotek mogą więc od razu korzystać z nowego enkodera. W wypadku innych aplikacji (np. oprogramowania własnościowego) pozostaje nakłonić ich producentów, by skorzystali z MozJPEG, kod dostępny jest bowiem na wolnej i liberalnej pod względem zastosowań licencji BSD. Samodzielnie przetestować nową wersję enkodera możecie dzięki webowej aplikacji Kornela, lub też kompilując kod źródłowy narzędzia mozjpeg na swojej maszynie.

Na początku wspomnieliśmy o długofalowych planach Mozilli względem grafiki w Sieci, warto więc powiedzieć tu coś więcej o kodeku Daala. Niedawno producent Firefoksa wraz z fundacją Xiph.org przedstawiły informacje o stanie prac nad tą metodą kompresji, udostępniając interaktywną wizualizację, dzięki której porównać można jakość obrazów skompresowanych za pomocą Daala, JPEG, VP8, VP9, H.264 oraz tego problematycznego pod względem patentowym H.265 (HEVC), używanego w BPG.

Przez ostatnie kilka miesięcy udało się znacznie ulepszyć to, co Daala oferuje w kwestii kompresji statycznych obrazów, tak że osiągnęła poziom H.264. Dobrze zachowuje tekstury, generuje znacznie mniej artefaktów, uzyskiwany obraz jest dość jednorodny pod względem rozkładu detali – ale szczerze mówiąc, daleko mu do możliwości HEVC.

A póki co – pozostaje nam pogodzić się z tymi wszystkimi niedoskonałościami JPEG (nawet wygenerowanego za pomocą MozJPEG), bo prędzej jednak Mozilla ukończy prace nad Daalą, niż świat wyzwoli się z patentów na algorytmy.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.