• StefanBruens's avatar
    Merge pull request #16494 from StefanBruens:jpeg2000_openjpeg_port · 8d784000
    StefanBruens authored
    Jpeg2000 OpenJPEG port
    
    * OpenJPEG based JPEG2000 decoder implementation
    
    Currently, the following input color spaces and depth conversions are
    supported:
    
    - 8 bit -> 8 bit
    - 16 bit -> 16 bit (IMREAD_UNCHANGED, IMREAD_ANYDEPTH)
    
    - RGB(a) -> BGR
    - RGBA -> BGRA (IMREAD_UNCHANGED)
    - Y(a) -> Y(a) (IMREAD_ANYCOLOR, IMREAD_GRAY, IMREAD_UNCHANGED))
    - YCC -> Y (IMREAD_GRAY)
    
    * Check for OpenJPEG availability
    
    This enables OpenJPEG based JPEG2000 imread support by default, which
    can be disabled by -DWITH_OPENJPEG=OFF. In case OpenJPEG is enabled
    and found, any checks for Jasper are skipped.
    
    * Implement precision downscaling for precision > 8 without IMREAD_UNCHANGED
    
    With IMREAD_UNCHANGED, values are kept from the input image, without it
    components are downscaled to CV_8U range.
    
    * Enable Jpeg2K tests when OpenJPEG is available
    
    * Add support for some more color conversions
    
    Support IMREAD_GRAY when input color space is RGB or unspecified.
    Support YUV input color space for BGR output.
    
    * fix: problems with unmanaged memory
    
    * fix: CMake warning - HAVE_OPENJPEG is undefined
    
    Removed trailing whitespaces
    
    * fix: CMake find_package OpenJPEG add minimal version
    
    * Basic JPEG2K encoder
    
    Images with depth CV_8U and CV_16U are supported, with 1 to 4 channels.
    
    * feature: Improved code for OpenJPEG2000 encoder/decoder
    
     - Removed code duplication
     - Added error handlers
     - Extracted functions
    
    * feature: Update conversion openjpeg array from/to Mat
    
    * feature: Extend ChannelsIterator to fulfill RandomAccessIterator named requirements
    
     - Removed channels split in copyFromMatImpl. With ChannelsIterator no allocations are performed.
     - Split whole loop into 2 parts in copyToMat -> where std::copy and std::transforms are called.
    
    * fix: Applied review comments.
    
     - Changed `nullptr` in CV_LOG* functions to `NULL`
     - Added `falls through` comment in decoder color space `switch`
     - Added warning about unsupported parameters for the encoder
    
    * feature: Added decode from in-memory buffers.
    Co-authored-by: 's avatarVadim Levin <vadim.levin@xperience.ai>
    8d784000
Name
Last commit
Last update
..
FindCUDA Loading commit data...
android Loading commit data...
checks Loading commit data...
platforms Loading commit data...
templates Loading commit data...
FindCUDA.cmake Loading commit data...
FindCUDNN.cmake Loading commit data...
FindFlake8.cmake Loading commit data...
FindOpenVX.cmake Loading commit data...
FindPylint.cmake Loading commit data...
FindVulkan.cmake Loading commit data...
OpenCVCRTLinkage.cmake Loading commit data...
OpenCVCompilerDefenses.cmake Loading commit data...
OpenCVCompilerOptimizations.cmake Loading commit data...
OpenCVCompilerOptions.cmake Loading commit data...
OpenCVDetectApacheAnt.cmake Loading commit data...
OpenCVDetectCUDA.cmake Loading commit data...
OpenCVDetectCXXCompiler.cmake Loading commit data...
OpenCVDetectDirectX.cmake Loading commit data...
OpenCVDetectHalide.cmake Loading commit data...
OpenCVDetectInferenceEngine.cmake Loading commit data...
OpenCVDetectOpenCL.cmake Loading commit data...
OpenCVDetectPython.cmake Loading commit data...
OpenCVDetectTBB.cmake Loading commit data...
OpenCVDetectTrace.cmake Loading commit data...
OpenCVDetectVTK.cmake Loading commit data...
OpenCVDetectVulkan.cmake Loading commit data...
OpenCVDownload.cmake Loading commit data...
OpenCVExtraTargets.cmake Loading commit data...
OpenCVFindAtlas.cmake Loading commit data...
OpenCVFindFrameworks.cmake Loading commit data...
OpenCVFindIPP.cmake Loading commit data...
OpenCVFindIPPIW.cmake Loading commit data...
OpenCVFindLAPACK.cmake Loading commit data...
OpenCVFindLATEX.cmake Loading commit data...
OpenCVFindLibsGUI.cmake Loading commit data...
OpenCVFindLibsGrfmt.cmake Loading commit data...
OpenCVFindLibsPerf.cmake Loading commit data...
OpenCVFindLibsVideo.cmake Loading commit data...
OpenCVFindMKL.cmake Loading commit data...
OpenCVFindOpenBLAS.cmake Loading commit data...
OpenCVFindOpenEXR.cmake Loading commit data...
OpenCVFindProtobuf.cmake Loading commit data...
OpenCVFindTengine.cmake Loading commit data...
OpenCVFindVA.cmake Loading commit data...
OpenCVFindVA_INTEL.cmake Loading commit data...
OpenCVFindWebP.cmake Loading commit data...
OpenCVFindXimea.cmake Loading commit data...
OpenCVGenABI.cmake Loading commit data...
OpenCVGenAndroidMK.cmake Loading commit data...
OpenCVGenConfig.cmake Loading commit data...
OpenCVGenHeaders.cmake Loading commit data...
OpenCVGenInfoPlist.cmake Loading commit data...
OpenCVGenPkgconfig.cmake Loading commit data...
OpenCVGenSetupVars.cmake Loading commit data...
OpenCVInstallLayout.cmake Loading commit data...
OpenCVMinDepVersions.cmake Loading commit data...
OpenCVModule.cmake Loading commit data...
OpenCVPCHSupport.cmake Loading commit data...
OpenCVPackaging.cmake Loading commit data...
OpenCVPylint.cmake Loading commit data...
OpenCVUtils.cmake Loading commit data...
OpenCVVersion.cmake Loading commit data...
cl2cpp.cmake Loading commit data...
copy_files.cmake Loading commit data...