Intel IPP Integration Wrappers Developer Guide and Reference

ID 751823
Date 1/18/2023
Document Table of 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.