API Quick Reference Guide

  • 2020
  • 09/30/2019
  • Public Content
Contents

Architecture Conventions

All the IW functions follow the general principles described below. If a function does not follow any of these principles, it is explicitly mentioned in the function description in this document and in the corresponding header file.
  • Implementation limitations:
    The library is designed to accelerate existing code and does not provide any general non-optimized code. A particular function may not have implementation for every variation of parameters that it uses. If the function returns an error, use your original code instead. Before developing processing based solely on this library, check that all required parameters are supported.
  • Status codes guidelines:
    • For functions returning status, 0 value means that the operation completed successfully.
    • Every status with value above or equal to 0 is a warning, which means that the function worked and completed its task, but some potential issues may arise and you need to pay attention to them. In general, this can be ignored.
    • Every status with value below 0 is an error. It means that the function did not complete operation and your code should provide a fallback scenario.
    • C++ APIs of the IW library throw the
      ipp::IwException
      object only for values below 0.
  • Memory allocation:
    Some functions use internal memory allocation for temporary data:
    • In C++ APIs, all allocations are handled automatically by the library.
    • In C APIs, you may need to release objects manually. Functions that allocate memory have
      Alloc
      in their names and always have a
      Release
      counterpart.
      Use the
      Release
      function only if the
      Alloc
      function completed successfully. Otherwise, no memory is allocated.
  • Parameters handling:
    Processing functions do not allocate memory for the destination data. Allocate memory for all data before using a processing function.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804