Formato de compresión de imaxe QOI introducido

Introduciuse un novo formato de compresión de imaxes lixeiro e sen perdas: QOI (Imaxe bastante OK), que permite comprimir imaxes moi rapidamente nos espazos de cor RGB e RGBA. Ao comparar o rendemento co formato PNG, a implementación de referencia dun só fío do formato QOI en linguaxe C, que non usa instrucións SIMD e optimizacións de ensamblaxe, é 20-50 veces máis rápida en velocidade de codificación que as bibliotecas libpng e stb_image, e 3. -4 veces máis rápido en velocidade de decodificación. En termos de eficiencia de compresión, QOI está preto de libpng na maioría das probas (nalgunhas probas está lixeiramente por diante, e noutras é inferior), pero en xeral está notablemente por diante de stb_image (ganancia de ata un 20%).

A implementación de referencia de QOI en C é só de 300 liñas de código. O código fonte distribúese baixo a licenza MIT. Ademais, os entusiastas prepararon implementacións de codificadores e decodificadores nos idiomas Go, Zig e Rust. O proxecto está a ser desenvolvido por Dominic Szablewski, un desenvolvedor de xogos con experiencia na creación dunha biblioteca para decodificar vídeos MPEG1. Usando o formato QOI, o autor quixo demostrar que é posible crear unha alternativa eficaz e sinxela aos formatos modernos de codificación de imaxes demasiado complicados.

O rendemento da QOI é independente da resolución e natureza da imaxe codificada (O(n)). A codificación e a decodificación realízanse nunha única pasada: cada píxel só se procesa unha vez e pódese codificar dunha das catro formas, seleccionadas dependendo dos valores dos píxeles anteriores. Se o seguinte píxel coincide co anterior, entón o contador de repeticións só aumenta. Se o píxel coincide cun dos valores do búfer de 4 píxeles anteriores, entón o valor substitúese por un desplazamento de 64 bits co píxel anterior. Se a cor do píxel anterior é lixeiramente diferente, a diferenza indícase nunha forma breve (codificación breve das diferenzas nos compoñentes de cor que se encaixan en 6, 2,4 e 5 bits). Se a optimización non é aplicable, proporciónase o valor rgba completo.

Fonte: opennet.ru

Engadir un comentario