I use UIC code sample to compress 8 bit image in jpeg baseline quality=100.
I am usingipp 6.1.
Operation success but when I come to view jpeg result in picnic, decoding result is corrupted image (error decoding message appear).
(see 1.jpg attached file)
Is there any option to debug or watch picnic logs.
Well, I see corrupted image. Could you please explain in little bit more details how do you get this image, what UIC application did you use, howhave you built this application, what other parameters you use in addition to quality 100%? What is your source image?
I am using "w_ipp-samples_p_7.0.1.041\ipp-samples\image-codecs\uic\src\codec\image\jpeg\enc\src\jpegenc.cpp" code.
I am trying to compress a buffer of 1024x1120 8 bit gray level (buffer is ok, I success toencode to jpeg lossless or jpeg2000 andview it using the picnic).
IPP 6.1and picnic is 7.0 version.
Is there any option to receive decoding error reason?
It seems you use some derivative development on top ofinternal JPEG classes. I would recommend you to useJPEG through UIC interface, the same way as it is in picnic or uic_transcoder_con applications. Take a look at jpeg.cpp file from either picnic or uic_transcoder_con applications, it contain function
which can be used in application like piece of code below:
CStdFileOutput out; // this can be substituted by CMemBuffOutput if you need encode to memory buffer
some code to initialize image and output file stream
params_jpeg.huffman_opt = <1 - generate optimal huffman tables, 0 - use default huffman tables>;
params_jpeg.restart_interval = <0 - disable restart intervals, 1 - enable restart intervals>;
imStatus = SaveImageJPEG(image, params_jpeg, out);
This is based in IPP 7.0 samples and might slightly differ with IPP 6.x samples.
It seems that in the while loop, everyiteration that call to
"TransformMCURowBL(pMCUBuf, thread_id);" and"EncodeHuffmanMCURowBL(pMCUBuf);"
work on the same first buffer line area of
"pMCUBuf = m_block_buffer + thread_id * m_numxMCU * m_nblock * DCTSIZE2;"
Am I missing something?