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

ippiRGBToLab_32f_C3R does not function in IPP9.0.

Honkanen__Markus
Beginner
487 Views

Hello,

when we run ippiRGBToLab_32f_C3R fuction for rgb float image, it returns an error code 0xc000000005: read access violation at 0x0, flags=0x0 (first chance). The 8-bit version of the function works properly.

Best regards,

Markus Honkanen

Pixact Ltd

 

0 Kudos
5 Replies
Sergey_P_Intel1
Employee
487 Views

Hello,

Can you send me your code and I'll  study this problem.

Regards,

Sergey 

0 Kudos
Honkanen__Markus
Beginner
487 Views

Hello Sergey,

Thank you for the quick response! I made a test code below for you, but it didn't return an error. We will study this issue on Monday. Probably the stride of the test image was somehow wrongly calculated... I'll let you know what we find out!

Best regards,

Markus

--

int main(intr argc, char *argv[])
{
    int step = 14784;
    int height = 1029;
    int width = 1228;
    Ipp32f *src = (Ipp32f*)ippiMalloc_32f_C3(width,height,&step);
    Ipp32f *dst = (Ipp32f*)ippiMalloc_32f_C3(width,height,&step);
    IppiSize roiSize = { width,height };
    IppStatus st = ippiRGBToLab_32f_C3R( src , step , dst , step , roiSize );
    if ( st == ippStsNoErr){
        printf("\n *************  passed ****************\n");
    }else{
        printf("\n *************  failed ****************\t");
    }
}

0 Kudos
Sergey_P_Intel1
Employee
487 Views

Sorry for dilay. Each image should has you own step.

int main()

{

int step0 = 14784;

int step1 = 14784;

int height = 1029;

int width = 1228;

Ipp32f *src = (Ipp32f*)ippiMalloc_32f_C3(width, height, &step0);

Ipp32f *dst = (Ipp32f*)ippiMalloc_32f_C3(width, height, &step1);

IppiSize roiSize = { width, height };

IppStatus st = ippiRGBToLab_32f_C3R(src, step0, dst, step1, roiSize);

if (st == ippStsNoErr){

printf("\n ************* passed ****************\n");

}

else{

printf("\n ************* failed ****************\t");

}

}

0 Kudos
Honkanen__Markus
Beginner
487 Views

Hello Sergey,

Finally today we returned to this issue. We found out that the ippiRGBToLab_32f_C3R crashes when the input image includes values larger than 1. The function works properly when the pixel values of the Ipp32f input image remain in the range [0 1]. We suggest that instead of crashing, the function could return an error, if the input image included values out of the appropriate range [0 1]. Thank you.
Best regards,
Markus
Pixact Ltd.

0 Kudos
Sergey_P_Intel1
Employee
487 Views

Thanks,

I fixed it in trunk.

0 Kudos
Reply