Repository navigation
Releases: v-novaltd/LCEVCdec
Releases · v-novaltd/LCEVCdec
Release list
4.3.1
API Changes
None
Features
- Vulkan pipeline - Refactored to reduce complexity
- Documentation - Updates for Android integrations
Bug Fixes
- Ensure Vulkan frame is copied to
ReceiveDecoderPicturewhen using an external picture defined by aPicturePlaneDesc - Resolve possibility of race condition in Vulkan temporal buffer handling when multiple bases are submitted at once
4.3.0
API Changes
- Added new
P010andP016enums toLCEVC_ColorFormat - API additions are fully backwards compatible with 4.x.x API
Features
- Vulkan pipeline - Improved shaders to reduce power consumption on Android by 32%
- Vulkan pipeline - Merge horizontal and vertical upscalers for performance and efficiency
- Vulkan pipeline - Extend output conversion for all buffer types
- Vulkan pipeline - Added dynamic workgroup size selection at runtime
- CPU pipeline - Reduce processing overhead in temporal buffer for frames with low residual load
- Build system - Added
VN_SDK_TRACING_SYSTEM_SINKoption for system level perfetto tracing on Android - Build system - Added build support for RISC-V in PR38
Bug Fixes
- Fix conformance issue at extreme chroma values with missing clamp
passthrough_mode=scaleon CPU pipeline behaves correctly- Resolved issues in public GitHub CI
4.2.2
API Changes
None
Features
- Pixel processing - Refactored NEON and SSE upscalers to yield a 15% reduction in frame times
- Pixel processing - Added a new AVX2 upscaler to yield a 30% reduction in frame times on x86 systems
- JNI - Added support for CPU rendering and CPU pipeline in AndroidX.media
- Pipelines - New
autopipeline is added to automatically switch between CPU and Vulkan on Android depending on device support - Vulkan pipeline - Added render support for 10bit
- Build system - FFmpeg dependency bumped to 9.0
- Test harness - Can now use hardware base decoders: MediaCodec, QSV and VideoToolbox when using an appropriate build of FFmpeg
Bug Fixes
- SSE build flags are only applied to SSE optimized source files - Issue #37
- Various stability improvements for Android in both CPU and Vulkan pipelines
4.2.1
API Changes
None
Features
- Enhancement - Added a bitstream fuzzing tool and hardened the bitstream parser against malformed input
- Enhancement - Various performance improvements to yield a 5% decrease in frame times
- Vulkan - Combine add and convert stages to improve performance
- Build System & Enhancement - Allow the enhancement and common modules to be built as a Linux kernel module. Various new CMake flags.
- Build System - Added
VN_SDK_LDE_FLOATSCMake flag to allow builds without float usage - Build System - Improved
VN_SDK_MINIMUM_LIB_SIZECMake flag to further reduce the file size of built shared libraries and the JNI aar
Bug Fixes
- Fixed default thread auto-detection on desktop platforms
- Improve Vulkan extension initialization checks
- Fix a Vulkan race condition
- Ensure passthrough behaves as expected in the Vulkan pipeline and JNI
- Ensure runtime SIMD acceleration flags are fully respected
- Fix ordering issues with out of order timestamp inputs
- Fix some conformance issues with min/max residual values
4.2.0
API Changes
- Added new Peek API call:
LCEVC_PeekDecoderPictureDescto peek all parameters of a future output picture - API additions are fully backwards compatible with 4.x.x API
Features
- Vulkan - Support for Android hardware buffers on output including format conversion
- Common - Allow custom time implementation via
clock_custom.hfor kernel builds - Build System - Added
VN_SDK_STATIC_LIBS_AS_OBJECTSCMake flag to produce object libraries - Build System - Added
VN_SDK_MINIMUM_LIB_SIZECMake flag to reduce the file size of build shared libraries
Bug Fixes
- Vulkan shader tweaks to support a wider range of Android GPUs
- LOQ1 residuals use correct inverse transform for level 1 1D scaling
- Improved edge case behavior of peek
- User data is correctly applied to residuals for conformance
- Improve error handling of bitstream parsing
- Builds in different build directories are fully reproducible and identical
.yextension raw monochrome bases are correctly detected by the harness for monochrome testsVN_SDK_LTOCMake flag forcesfullmode in all compilers
4.1.0
API Changes
- Added new Render API calls:
LCEVC_RenderInit,LCEVC_RenderSetWindow,LCEVC_RenderSendPictureandLCEVC_RenderReceivePicturealong with associated structs and enums - API additions are fully backwards compatible with 4.0.x API
Features
- Pipelines - Removed deprecated
legacypipeline - Pipelines - Major refactor to move common code between
cpuandvulkanpipelines to common base class - Structure - WASM wrapper moved to new
wrappersdir along with NEW Java Native Interface (JNI) - Wrappers - Added JNI for consumption by AndroidX.media3
- Vulkan Pipeline - The Vulkan pipeline is now performant!
- Vulkan Pipeline - Added rendering support for use in AndroidX.media3
- Vulkan Pipeline - Memory handled by VMA
- Vulkan Pipeline - Test harness can render to the display with
glfwvia the test harness with new--renderflag - Enhancement - Simplified
LdeKernelstructure withinLdeGlobalConfig - Enhancement - Moved
sharpenparameters fromLdeFrameConfigtoLdeGlobalConfig - Pixel Processing - Refactored upscalers to reduce frame time by ~20% and memory usage by ~5% in CPU mode
- Pixel Processing - Added optimized sharpening filter functions
- API - De-duplicated
disable_simdandforce_scalarflags in favor ofdisable_simd - API - Removed
log_levelsconfiguration option - Func tests - Encoder version updated to SDK 3.16.4 for all stream generation
- Func tests - Improved and extended dithering tests
- Structure - Stop using git LFS for small in-repo unit test assets
- Documentation - Additional docs for
pixel_processingandextractmodules - Documentation - Added docs for Vulkan pipeline options
Bug Fixes
LCEVC_Logevent type now triggers correctly on each logldeApproximatePAcould be called multiple times on the same kernel- Dithering is applied correctly for a 0D 0D scaled stream in the CPU pipeline
- Compiling with
VN_SDK_THREADING=OFFis truly single threaded with no references to threading libraries
4.0.5
API Changes
None
Features
- Enhancement - All temporal refresh residuals are treated as SET commands
- Enhancement - Huffman stack allocations can be configured through CMake
- Pixel Processing - Blit API split into 'Add' and 'Convert'
- Pixel Processing - Temporal add functions allow an implicit convert decreasing frame times by ~15%
- CPU Pipeline - Android thread count defaults to 1 for improved default behavior on Android phones
- Diagnostics - Tracing macros support metadata for Perfetto
Bug Fixes
None
4.0.4
API Changes
None
Features
- pkg-config - Main decoder API, utility and extract libraries are split into separate .pc files. Each .pc file only contains one library when builing shared.
- Build system - CMake & 32-bit Windows updates for Cerbero compatibility
Bug Fixes
- Fix crash when running concurrent instances of the decoder
- HDR additional info stream config is read correctly
- Fix undefined reference when building with
ASYNC_DIAGNOSTICS=OFF- Issue #34 - Highlight residuals in CPU mode correctly clear setzero comands
- Fixes to github CI for linting from fork branches
4.0.3
API Changes
None
Features
- Common - Added memory pools to reduce system allocations
- CPU pipeline - Refactored to use new memory architecture to improve performance
- Vulkan pipeline - Refactored to decouple frame object from the pipeline