Skip to content

Releases: v-novaltd/LCEVCdec

4.3.1

Choose a tag to compare

@v-nova-ci v-nova-ci released this 27 Oct 17:39

API Changes

None

Features

  • Vulkan pipeline - Refactored to reduce complexity
  • Documentation - Updates for Android integrations

Bug Fixes

  • Ensure Vulkan frame is copied to ReceiveDecoderPicture when using an external picture defined by a PicturePlaneDesc
  • Resolve possibility of race condition in Vulkan temporal buffer handling when multiple bases are submitted at once

4.3.0

Choose a tag to compare

@v-nova-ci v-nova-ci released this 14 Oct 13:23

API Changes

  • Added new P010 and P016 enums to LCEVC_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_SINK option 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=scale on CPU pipeline behaves correctly
  • Resolved issues in public GitHub CI

4.2.2

Choose a tag to compare

@v-nova-ci v-nova-ci released this 10 Sep 15:43

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 auto pipeline 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

Choose a tag to compare

@v-nova-ci v-nova-ci released this 13 Aug 10:38

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_FLOATS CMake flag to allow builds without float usage
  • Build System - Improved VN_SDK_MINIMUM_LIB_SIZE CMake 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

Choose a tag to compare

@v-nova-ci v-nova-ci released this 16 Jun 14:47

API Changes

  • Added new Peek API call: LCEVC_PeekDecoderPictureDesc to 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.h for kernel builds
  • Build System - Added VN_SDK_STATIC_LIBS_AS_OBJECTS CMake flag to produce object libraries
  • Build System - Added VN_SDK_MINIMUM_LIB_SIZE CMake 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
  • .y extension raw monochrome bases are correctly detected by the harness for monochrome tests
  • VN_SDK_LTO CMake flag forces full mode in all compilers

4.1.0

Choose a tag to compare

@v-nova-ci v-nova-ci released this 30 Apr 10:39

API Changes

  • Added new Render API calls: LCEVC_RenderInit, LCEVC_RenderSetWindow, LCEVC_RenderSendPicture and LCEVC_RenderReceivePicture along with associated structs and enums
  • API additions are fully backwards compatible with 4.0.x API

Features

  • Pipelines - Removed deprecated legacy pipeline
  • Pipelines - Major refactor to move common code between cpu and vulkan pipelines to common base class
  • Structure - WASM wrapper moved to new wrappers dir 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 glfw via the test harness with new --render flag
  • Enhancement - Simplified LdeKernel structure within LdeGlobalConfig
  • Enhancement - Moved sharpen parameters from LdeFrameConfig to LdeGlobalConfig
  • 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_simd and force_scalar flags in favor of disable_simd
  • API - Removed log_levels configuration 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_processing and extract modules
  • Documentation - Added docs for Vulkan pipeline options

Bug Fixes

  • LCEVC_Log event type now triggers correctly on each log
  • ldeApproximatePA could 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=OFF is truly single threaded with no references to threading libraries

4.0.5

Choose a tag to compare

@v-nova-ci v-nova-ci released this 09 Feb 09:26

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

Choose a tag to compare

@v-nova-ci v-nova-ci released this 24 Nov 11:33

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

Choose a tag to compare

@v-nova-ci v-nova-ci released this 30 Oct 16:46

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

Bug Fixes

  • Fix error in passthrough mode in FFmpeg
  • Fix build error in acceleration.c when building with external toolchains - PR #32 & PR #33
  • Libav base decoder correctly handles streams without enhancement (native mode)
  • Further fixes to github CI

3.3.9

Choose a tag to compare

@v-nova-ci v-nova-ci released this 30 Oct 16:45

API Changes

None

Features

None

Bug Fixes

  • pkg-config file is dynamically generated to allow easy builds of FFmpeg 7.1 with --enable-liblcevc-dec