Nota Actualmente no se está realizando ningún desarrollo aquí. Partes de este proyecto se han utilizado en JPEG XL, que se encuentra en desarrollo activo.
PIK es un formato de imagen completo para fotografías e Internet.
PIK es una variante modernizada de JPEG con objetivos similares: almacenamiento y entrega eficiente de fotografías e imágenes web. Está diseñado desde cero para una decodificación rápida y de alta calidad .
Características que permiten una alta calidad (perceptualmente sin pérdidas):
Además de codificaciones total y perceptualmente sin pérdidas, PIK logra un buen equilibrio de calidad/tamaño/velocidad en una amplia gama de velocidades de bits (0,5 - 3 bpp). PIK permite la compresión automatizada/no supervisada porque garantiza que la calidad objetivo se mantenga en toda la imagen. Prioriza la autenticidad , una representación fiel del original, sobre la estética que se puede lograr alucinando detalles o "mejorando" (por ejemplo, agudizando/saturando) la entrada.
Funciones que permiten una decodificación rápida (> 1 GB/s multiproceso):
Otras características:
El codificador de modo sensible de PIK admite pases equivalentes a reducir la resolución en 4x u 8x. El formato admite pases más flexibles, con cualquier nivel de detalle, desde una reducción de resolución equivalente a 8x hasta resolución completa. No es necesario que la cantidad de detalle en una pasada sea uniforme: áreas de la imagen se pueden enviar con mayor detalle. El impacto del modo responsivo en el tamaño de la imagen codificada es bajo, con un promedio de alrededor del 2 % para una imagen responsiva de 3 pasadas (8x, 4x, resolución completa). En dicha configuración, las dos primeras pasadas ocupan en promedio el 20% del tamaño de la imagen cada una.
El software actualmente requiere una CPU compatible con AVX2 y FMA, por ejemplo Haswell. Actualmente, la construcción requiere clang 6 o posterior.
Para construir, se pueden utilizar las siguientes instrucciones:
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
Esto crea los binarios cpik
y dpik
en build/
.
El uso básico es el siguiente:
cpik [--distance ] input.png output.pik
El argumento opcional de la línea de comando --distance
para cpik es una distancia de Butteraugli (consulte http://github.com/google/butteraugli), que indica el error más grande aceptable. Los valores más grandes generan archivos más pequeños y de menor calidad. El valor predeterminado de 1,0 debería producir un resultado perceptualmente sin pérdidas.
Tenga en cuenta que el flujo de bits aún está en desarrollo y aún no está congelado.