- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
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.
10x
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I can't accessfile, please check if you attached it correctly
Regards,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
IM_ERROR SaveImageJPEG(
CIppImage& image,
PARAMS_JPEG& param,
BaseStreamOutput& out);
which can be used in application like piece of code below:
...
CIppImage image;
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 params_jpeg;
...
params_jpeg.huffman_opt = <1 - generate optimal huffman tables, 0 - use default huffman tables>;
params_jpeg.nthreads =
params_jpeg.point_transform =
params_jpeg.predictor =
params_jpeg.quality =
params_jpeg.restart_interval = <0 - disable restart intervals, 1 - enable restart intervals>;
params_jpeg.sampling =
params_jpeg.tmode =
imStatus = SaveImageJPEG(image, params_jpeg, out);
This is based in IPP 7.0 samples and might slightly differ with IPP 6.x samples.
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vladimir
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page