VXLIB 1.1.0.0 Release Notes

June 14, 2017

VXLIB Release Notes


Contents

  1. Introduction
  2. Licensing
  3. Getting Started
  4. Documentation
  5. What's New
  6. Upgrade and Compatibility Information
  7. Device Support
  8. Validation Information
  9. Known Issues
  10. Technical Support


Introduction

The VXLIB package comprises the Texas Instruments Vision Library package together with the software tools (SWTOOLS) and all dependent packages in bundle format to simplify the release procedure.


Licensing

The licensing information of this library, as well as any third-party components included which are made available under a number of other open-source licenses are enumerated as part of the manifest. A complete manifest along with export control information is detailed here.


Getting Started

The VXLIB User's Manual provides the documentation and references necessary to integrate VXLIB Library routines into a development platform.


Documentation

The following documentation is available:

User's Manual [HTML]
Test Report [HTML]
Software Manifest [HTML]
Release Notes Archive [LINK]


What's New

The following new features were added as compared to 1.0.0:

  1. VXLIB-370: VXLIB_doubleThreshold_i16u_i8u API receives a new parameter to support block-based processing.
  2. VXLIB-373: VXLIB_meanStdDev_i8u_o32f API receives new parameters to support block-based processing.
  3. bam_plugin library including plugins for following kernels:
    1. VXLIB_absDiff_i16s_i16s_o16s
    2. VXLIB_absDiff_i8u_i8u_o8u
    3. VXLIB_addSquare_i8u_i16s_o16s
    4. VXLIB_addWeight_i8u_i8u_o8u
    5. VXLIB_add_i16s_i16s_o16s
    6. VXLIB_add_i8u_i16s_o16s
    7. VXLIB_add_i8u_i8u_o16s
    8. VXLIB_add_i8u_i8u_o8u
    9. VXLIB_and_i8u_i8u_o8u
    10. VXLIB_box_3x3_i8u_o8u
    11. VXLIB_cannyNMS_i16s_i16s_i16u_o8u
    12. VXLIB_channelCombine_2to1_i8u_o8u
    13. VXLIB_channelCombine_3to1_i8u_o8u
    14. VXLIB_channelCombine_4to1_i8u_o8u
    15. VXLIB_channelCombine_yuyv_i8u_o8u
    16. VXLIB_channelCopy_1to1_i8u_o8u
    17. VXLIB_channelExtract_1of2_i8u_o8u
    18. VXLIB_channelExtract_1of3_i8u_o8u
    19. VXLIB_channelExtract_1of4_i8u_o8u
    20. VXLIB_colorConvert_IYUVtoNV12_i8u_o8u
    21. VXLIB_colorConvert_IYUVtoRGBX_i8u_o8u
    22. VXLIB_colorConvert_IYUVtoRGB_i8u_o8u
    23. VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u
    24. VXLIB_colorConvert_NVXXtoIYUV_i8u_o8u
    25. VXLIB_colorConvert_NVXXtoRGBX_i8u_o8u
    26. VXLIB_colorConvert_NVXXtoRGB_i8u_o8u
    27. VXLIB_colorConvert_NVXXtoYUV4_i8u_o8u
    28. VXLIB_colorConvert_RGBXtoIYUV_i8u_o8u
    29. VXLIB_colorConvert_RGBXtoNV12_i8u_o8u
    30. VXLIB_colorConvert_RGBXtoRGB_i8u_o8u
    31. VXLIB_colorConvert_RGBXtoYUV4_i8u_o8u
    32. VXLIB_colorConvert_RGBtoIYUV_i8u_o8u
    33. VXLIB_colorConvert_RGBtoNV12_i8u_o8u
    34. VXLIB_colorConvert_RGBtoRGBX_i8u_o8u
    35. VXLIB_colorConvert_RGBtoYUV4_i8u_o8u
    36. VXLIB_colorConvert_YUVXtoIYUV_i8u_o8u
    37. VXLIB_colorConvert_YUVXtoNV12_i8u_o8u
    38. VXLIB_colorConvert_YUVXtoRGBX_i8u_o8u
    39. VXLIB_colorConvert_YUVXtoRGB_i8u_o8u
    40. VXLIB_convertDepth_i16s_o8u
    41. VXLIB_convertDepth_i8u_o16s
    42. VXLIB_convolve_i8u_c16s_o16s
    43. VXLIB_convolve_i8u_c16s_o8u
    44. VXLIB_dilate_3x3_i8u_o8u
    45. VXLIB_dilate_MxN_i8u_i8u_o8u
    46. VXLIB_doubleThreshold_i16u_i8u
    47. VXLIB_erode_3x3_i8u_o8u
    48. VXLIB_erode_MxN_i8u_i8u_o8u
    49. VXLIB_gaussian_3x3_i8u_o8u
    50. VXLIB_halfScaleGaussian_5x5_i8u_o8u
    51. VXLIB_harrisCornersScore_i16s_i16s_o32f
    52. VXLIB_harrisCornersScore_i32s_i32s_o32f
    53. VXLIB_histogramSimple_i8u_o32u
    54. VXLIB_histogram_i8u_o32u
    55. VXLIB_integralImage_i8u_o32u
    56. VXLIB_magnitude_i16s_i16s_o16s
    57. VXLIB_meanStdDev_i8u_o32f
    58. VXLIB_median_3x3_i8u_o8u
    59. VXLIB_median_MxN_i8u_i8u_o8u
    60. VXLIB_minMaxLoc_i16s
    61. VXLIB_minMaxLoc_i8u
    62. VXLIB_multiply_i16s_i16s_o16s
    63. VXLIB_multiply_i8u_i16s_o16s
    64. VXLIB_multiply_i8u_i8u_o16s
    65. VXLIB_multiply_i8u_i8u_o8u
    66. VXLIB_normL1_i16s_i16s_o16u
    67. VXLIB_normL2_i16s_i16s_o16u
    68. VXLIB_not_i8u_o8u
    69. VXLIB_or_i8u_i8u_o8u
    70. VXLIB_phase_i16s_i16s_o8u
    71. VXLIB_scaleImageNearest_i8u_o8u
    72. VXLIB_sobelX_3x3_i8u_o16s
    73. VXLIB_sobelY_3x3_i8u_o16s
    74. VXLIB_sobel_3x3_i8u_o16s_o16s
    75. VXLIB_sobel_5x5_i8u_o16s_o16s
    76. VXLIB_sobel_7x7_i8u_o16s_o16s
    77. VXLIB_sobel_7x7_i8u_o32s_o32s
    78. VXLIB_subtract_i16s_i16s_o16s
    79. VXLIB_subtract_i8u_i16s_o16s
    80. VXLIB_subtract_i8u_i8u_o16s
    81. VXLIB_subtract_i8u_i8u_o8u
    82. VXLIB_tableLookup_i16s_o16s
    83. VXLIB_tableLookup_i8u_o8u
    84. VXLIB_thresholdBinary_i8u_o8u
    85. VXLIB_thresholdRange_i8u_o8u
    86. VXLIB_xor_i8u_i8u_o8u

The following issues were resolved:

  1. VXLIB-368 : VXLIB_histogram_i8u_o32u fails in added test cases due to rounding error
  2. VXLIB-369 : VXLIB_minMaxLoc_i16s fails when all inputs are negative.
  3. VXLIB-372 : VXLIB_minMaxLoc_i16s and VXLIB_minMaxLoc_i8u both fail when processing the image in multiple blocks
  4. VXLIB-460 : VXLIB_histogramSimple_i8u_o32u invalid use of restrict in first iteration
  5. VXLIB-461 : Several kernels have input buffers not declared as "const"
  6. VXLIB-462 : VXLIB_STATUS variables should not be evaluated using |=


Upgrade and Compatibility Information

This version of VXLIB is compatible with the last released version:

YES
NO X

The package compatibility key for this release is found in the packages\ti\vxlib\package.xdc file.

Note:
  1. Package compatibility keys are independent of component release versions. For more information visit: Package Versioning and Compatibility

This section contains details about compatibility of APIs between this release and 1.0.0.0:

Interface file Change in user application required? Change details
VXLIB_doubleThreshold_i16u_i8u.h YES Addition of edgeMapLineOffset parameter to the function call
VXLIB_meanStdDev_i8u_o32f.h YES Addition of pixelsProcessed, fcurrentSum, and fcurrentSqSum parameters to the function call
VXLIB_colorConvert_IYUVtoNV12_i8u_o8u.h YES Added const keyword to input buffers, changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_IYUVtoRGBX_i8u_o8u.h YES Added const keyword to input buffers
VXLIB_colorConvert_IYUVtoRGB_i8u_o8u.h YES Added const keyword to input buffers
VXLIB_colorConvert_IYUVtoYUV4_i8u_o8u.h YES Added const keyword to input buffers, changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_NVXXtoIYUV_i8u_o8u.h YES Added const keyword to input buffers, changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_NVXXtoRGBX_i8u_o8u.h YES Added const keyword to input buffers
VXLIB_colorConvert_NVXXtoRGB_i8u_o8u.h YES Added const keyword to input buffers
VXLIB_colorConvert_NVXXtoYUV4_i8u_o8u.h YES Added const keyword to input buffers, changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_RGBXtoIYUV_i8u_o8u.h NO Changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_RGBXtoNV12_i8u_o8u.h NO Changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_RGBtoIYUV_i8u_o8u.h NO Changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_RGBtoNV12_i8u_o8u.h NO Changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_YUVXtoIYUV_i8u_o8u.h NO Changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_colorConvert_YUVXtoNV12_i8u_o8u.h NO Changed VXLIB_STATUS evaluation internally which may add a few cycles
VXLIB_histogram_i8u_o32u.h NO Function execution cycles may slightly increase due to bug fix
VXLIB_histogramSimple_i8u_o32u.h NO Function execution cycles may slightly increase due to bug fix
VXLIB_minMaxLoc_i16s.h NO Internal bug fixes
VXLIB_minMaxLoc_i8u.h NO Internal bug fixes


Device Support

This release supports the following device families:


Validation Information

This release was built and validated using the following tools:


Known Issues

  1. VXLIB-371 : VXLIB_multiply_i16s_i16s_o16s with 1/255 as scaling factor fails for X86 target (low priority)
  2. Need to add bam_plugin support to more kernels.


Technical Support

Questions regarding the VXLIB library should be directed to the Texas Instruments Automotive E2E Forum. Please include the text 'VXLIB' in the title and add 'C66' and VXLIB tags to your post.


Package Versioning and Compatibility

Compatibility Keys

Compatibility keys serve two primary purposes:

  1. Enable tooling to identify incompatibilities between components
  2. Convey a level of compatibility between different releases to set end user expectations.

Each compatibility key is composed of 4 comma-delimited numbers - represented here by the letters M, S, R and P [M,S,R,P]. The table below provides a descriptive reference for compatibility key intention.

Compatibility Key Reference
Key Meaning Description
1 (M=Major) Break in compatibility The package consumer is required to re-write the calling source code to use the package
2 (S=Source) Source compatibility The package consumer’s source code doesn't require change, but does require a recompile
3 (R=Radix) Introduction of new features Compatibility with previous interfaces is not broken. If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source
4 (P=Patch) Bug fixes only If libraries are provided by the package, an application must re-link with the new libraries, but is not required to recompile its source.


Versioning

Each package version is composed of 4 period-delimited numbers - represented here by the letters M, m, p and b [M.m.p.b]. The table below provides a descriptive reference regarding package version numbering.

Package Version Reference
Digit Meaning Description
1 (M=Major) Major revision Incremented when the new version is substantially different from the previous For example, a new module added or an existing module's algorithm significantly altered.
2 (m=minor) Minor revision Incremented when the new version has changed but not in a major way. For example, some minor changes in the API or feature set.
3 (p=patch) Patch number Incremented for all other source code changes. This include any packaging support code.
4 (b=build) Build number Incremented for each release delivery to CM. Reset for any change to M, m or p


Copyright 2017, Texas Instruments Incorporated