Google har præsenteret et nyt åbent bibliotek, jpegli, med implementering af en encoder og decoder til billeder i JPEG-format. Biblioteket inkluderer yderligere optimeringer for at forbedre kodningseffektiviteten, hvilket muliggør en 35% stigning i kompressionsgraden for høj kvalitet billeder sammenlignet med traditionelle JPEG-codecs. I forhold til libjpeg-turbo muliggør jpegli opnåelse af et tilsvarende kvalitetsniveau med en reduktion af bitrate på 32%. På API- og ABI-niveau er biblioteket fuldt kompatibelt med libjpeg62 og kan bruges som en gennemsigtig erstatning for det. Koden for biblioteket er skrevet i C++ og distribueres under BSD-licensen.

Stigningen i kompressionsniveauet opnås ved anvendelse af avancerede teknologier til at reducere støj på billedet og forbedre kvaliteten, hvilket bruger mere effektive metoder til psykofysiske modeller for at mindske opståede artefakter. Især anvender jpegli adaptiv heuristik for kvantificering, brugt af JPEG XL-projektet, samt forbedrede algoritmer til valg af kvantificeringsmatricer og beregning af mellemliggende resultater.
Biblioteket jpegli muliggør kodning af billeder med 10 eller flere bits pr. farvekomponent. Samtidig tilpasser resultaterne fra de nye kodningsalgoritmer sig til den traditionelle JPEG-model, der kun tillader brug af 8 bits pr. farvekomponent. Denne funktion gør det muligt at bevare kompatibilitet med allerede eksisterende decoders, der er designet til 8-bit repræsentation af farvekomponenter.
Billeder kodet ved hjælp af jpegli opfylder fuldstændig JPEG-standarden, kræver ikke specifikke decoders, og kan vises i eksisterende JPEG-visningsprogrammer og webbrowsere. Anvendelsen af en egen decoder til at pakke billeder komprimeret med jpegli muliggør yderligere reduktion af artefakter. Kodningshastigheden med jpegli er sammenlignelig med bibliotekene libjpeg-turbo og MozJPEG.
Kilde: opennet.ru
