Formatu di cumpressione d'imaghjini QOI introduttu

Hè statu introduttu un novu furmatu di cumpressione di l'imaghjini ligeri, senza perdita - QOI (Image abbastanza OK), chì vi permette di cumpressà assai rapidamente l'imaghjini in i spazii di culore RGB è RGBA. Quandu si compara u rendiment cù u formatu PNG, l'implementazione di riferimentu à un filu unicu di u formatu QOI in lingua C, chì ùn usa micca struzzioni SIMD è ottimisazioni di assemblea, hè 20-50 volte più veloce in a velocità di codificazione di e librerie libpng è stb_image, è 3. -4 volte più veloce in a velocità di decodificazione. In quantu à l'efficienza di compressione, QOI hè vicinu à libpng in a maiò parte di e teste (in certi testi hè un pocu avanti, è in altri hè inferjuri), ma in generale hè notevolmente davanti à stb_image (guadagnà finu à 20%).

L'implementazione di riferimentu di QOI in C hè solu 300 linee di codice. U codice fonte hè distribuitu sottu a licenza MIT. Inoltre, i dilettanti anu preparatu implementazioni di codificatori è decodificatori in e lingue Go, Zig è Rust. U prughjettu hè sviluppatu da Dominic Szablewski, un sviluppatore di ghjocu cù sperienza in a creazione di una biblioteca per a decodificazione di video MPEG1. Utilizendu u formatu QOI, l'autore hà vulsutu dimustrà chì hè pussibule di creà una alternativa efficace è simplice à i formati di codificazione di l'imaghjini muderni troppu cumplicati.

U rendiment QOI hè indipendente da a risoluzione è a natura di l'imaghjini codificati (O(n)). A codificazione è a decodificazione sò realizate in una sola passata - ogni pixel hè trattatu solu una volta è pò esse codificata in una di 4 manere, selezziunate secondu i valori di i pixel precedenti. Se u prossimu pixel coincide cù u precedente, allora u contatore di ripetizioni aumenta solu. Se u pixel currisponde à unu di i valori in u buffer di 64 pixel passati, u valore hè rimpiazzatu da un offset di 6 bit à u pixel passatu. Se u culore di u pixel precedente hè un pocu sfarente, a diferenza hè indicata in una forma curta (codificazione corta di e differenze in i cumpunenti di culore chì si mette in 2,4, 5 è XNUMX bits). Se l'ottimisazione ùn hè micca applicabile, u valore rgba sanu hè furnitu.

Source: opennet.ru

Add a comment