Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6758 Discussions

how to do YUV422 resize with IPP in linux kernel module

PeterLin
Beginner
1,541 Views

Hi,

I am new to this forum. I work in a company to make video capture card.

I need to do YUV422 resize with IPP in linux kernel module for freeware application. I will post my code and Makefile.

In IPP 8.1, I can succeed to use ippsGetLibVersion(); and ippsSum_16s_Sfs().

However, ippiResizeYUV422_8u_C2R(), ippiResizeYUV422Nearest_8u_C2R(), ippiResizeYUV422Linear_8u_C2R() all with link error, such as "floor. undefined!" ( it seemed to be a function call in application layer).

In Oneapi Basekit 2021.03,  my code got worse,  with link error "ippInit(); undefined!" 

All system information are in Makefile (OS version , kernel version, gcc version ...)

Any help will be grateful!

0 Kudos
4 Replies
NoorjahanSk_Intel
Moderator
1,448 Views

Hi,

Thanks for reaching out to us.

>>ippiResizeYUV422_8u_C2R()

This function is not supported in the current version(2021.3.0) of IPP

For more details please refer to the below link:

https://software.intel.com/content/www/us/en/develop/documentation/ipp-dev-reference/top/volume-2-image-processing/ipp-ref-removed-functions.html

>> with link error "ippInit(); undefined!" 

To remove this linking error, you can try linking the library files to your command.

-I $IPPROOT/include -L $IPPROOT/lib/<arch> -add the necessary library files(you can get that from document of required function)

 

For example:

icc *.c -o ipptest -I $IPPROOT/include -L $IPPROOT/lib/ia32 -lippcore -lippvm -lippi -lipps

 

>>I need to do YUV422 resize with IPP

We are looking into it. We will get back to you soon

 

Thanks & Regards

Noorjahan.

 

0 Kudos
Gennady_F_Intel
Moderator
1,433 Views

Peter,
ippInit API is available in the current version of IPP 2021.3. You may check ippcore.h.

ippiResizeYUV422_8u_C2R() -
// This API has been removed and is not available. See IPP Reference Manual Appendix C: Removed Functions for Image and Video Processing
// There is no replacement.


ippiResizeYUV422Nearest_8u_C2R() - available into version 2021.3
ippiResizeYUV422Linear_8u_C2R() - available into version 2021.3

I sligtly modify your original example ( see main_mod.c file) and compiled and linked against
IPP 2021.3:

icc -I/opt/intel/oneapi/ipp/2021.3.0/include main_mod.c -o 3.x \
/opt/intel/oneapi/ipp/2021.3.0/lib/intel64/nonpic/libippi.a \
/opt/intel/oneapi/ipp/2021.3.0/lib/intel64/nonpic/libipps.a \
/opt/intel/oneapi/ipp/2021.3.0/lib/intel64/nonpic/libippcore.a

The compilation was successful.

both of ippiResizeYUV422Nearest_8u_C2R() and ippiResizeYUV422Linear_8u_C2R() functions as well as ippInit were called and compiled.

The runtime has not been checked. as it is out of the scope of this thread. 

0 Kudos
Gennady_F_Intel
Moderator
1,388 Views

are there any updates?


0 Kudos
Gennady_F_Intel
Moderator
1,362 Views

This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only. 



0 Kudos
Reply