El formato de imágenes BPG (Better Portable Graphics), pretende reemplazar a JPEG y JPEG2000 en compresión con pérdida, y a GIF, PNG y APNG en compresión sin pérdida.

El enfoque es similar al de WEBP de Google, es decir un estándar abierto, que lo que hace es adaptar un CODEC de vídeo, a la compresión de imágenes. WEBP se basaba en VP, mientras que BPG lo hace con x265.

Impulsado por el popular Fabrice Bellard, tiene un enfoque único. Además de sus completas posibilidades, esto es, mejor calidad con menor peso, y sus correspondientes SDK, ofrece un decodificador en Javascript.

Basta incluirlo en nuestra página, para automáticamente visualzar imágenes BPG, sin necesidad de plugins, ni de actualizar el navegador. Básicamente, el decoder convierte el stream de datos a un ByteArray, que se descomprime y dibuja en un canvas. Naturalmente el rendimiento no es comparable al código nativo, pero digamos que es más que digno.

Además, ofrece un cómodo Encoder Online que nos permite hacer pruebas fácilmente, y unas cuantas demos de sus posibilidades.

Aquí va mi breve comparativa.

Perin
JPEG 640×480 (calidad 85). Postprocesado con FileOptimizer. 61.546 bytes:

BPG 640×480 (calidad 29. Compresión 9). 22.027 bytes:

Sidra Isidra
JPEG 1280×720 (calidad 85). Postprocesado con FileOptimizer. 225.805 bytes:

BPG 1280×720 (calidad 29. Compresión 9). 73.578 bytes:

Personalmente los resultado me parecen impresionantes. Lástima que el soporte de BPG, fuera de lo que es el decoder Javascript (bpgdec8.js), quede reducido a XnViewMP, y alguna herramienta más. Y en todo caso, restringido a su lectura.