Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
6814 Discussions

how to do YUV422 resize with IPP in linux kernel module

PeterLin
Beginner
1,986 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,893 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,878 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,833 Views

are there any updates?


0 Kudos
Gennady_F_Intel
Moderator
1,807 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