BookinglyTech News
Software

OpenAPV 1.1.1 estrena API set 1 con decodificacion por PBU y SIMD para AVX2 y NEON

La implementacion de referencia del codec APV pasa de la 0.3.0 a la 1.1.1 por un cambio de conjunto de API, no por una ruptura de compatibilidad: nada se ha eliminado.

2 min de lecturaPhoronix0 vistas

OpenAPV, la implementacion de referencia open source del codec Advanced Professional Video (APV), ha publicado la version 1.1.1. Llega despues de la 0.3.0 y ese salto de numeracion no es un cambio de version mayor al uso. El proyecto numera sus entregas como APISET.MAJOR.MINOR.PATCH, y el primer componente identifica el conjunto de API, no el major del versionado semantico. La 0.3.0.0 fue la ultima de la API set 0; esta es la primera que lleva la API set 1.

El anuncio lo deja claro: la API set 0 no ha cambiado y sigue soportada por completo, y no se ha retirado nada. Traducido a una actualizacion en produccion, la 1.1.1 no deberia romper a nadie que ya compilara contra la 0.3.0, pero conviene fijarse en el primer numero antes de mover una dependencia en un pipeline que ya funcione.

Que entra en la 1.1.1

El cambio funcional mas visible es la decodificacion basada en PBU. El proyecto añade tambien perfiles nuevos con tiles mas pequeños, pensados para repartir mejor el trabajo entre hilos y para permitir decodificacion parcial mas fina: menos trozos de imagen que rehacer cuando solo hace falta una region concreta del fotograma.

Para quien integre la libreria dentro de un servicio, el detalle practico es el soporte de asignadores de memoria personalizados. Permite sacar el codec del heap de la libc y usar un allocator propio, algo que importa cuando el proceso comparte memoria con otras piezas o cuando se quiere controlar la fragmentacion a mano.

En rendimiento, la version incorpora optimizaciones AVX2 y ARM NEON, ademas de limpieza en el codigo de los kernels SIMD y otras mejoras de robustez. Los binarios y el detalle completo estan en las notas de la version. Los benchmarks de CPU de OpenAPV van por otra via: los ya publicados estan en OpenBenchmarking, y desde el proyecto avisan de que habra mediciones nuevas sobre hardware distinto.

El salto de 0.3.0 a 1.1.1 puede desconcertar a quien asuma versionado semantico, aunque el propio anuncio explica el criterio. Lo que queda por ver es cuanto de todo esto se traduce en numeros: las optimizaciones SIMD y el decodificado por PBU se mediran cuando salgan esos benchmarks, que de momento son un anuncio y no una cifra.