Hi,
is it necessary to use an interpolation like IPPI_INTER_CUBIC while decoding a video?
In my case I scale the video to a bigger resolution than the source resolution. There I use a resize call with an interpolation method. At the end I call an interpolation method twice. Is this really necessary?
I can save performance load if I do it with the last resize call once. The result of the decoder will be of less quality then but does this play any role?
Are there any experiences how I can go on or do I have to do some tests on my own?
It seems to be that the interpolation is IPPI_INTER_NN at least and that there is no possibility to select the video decoder without using any interpolation.
If I suppose the decoding of video files I do not see any reasons for bad video quality in comparison with a video live stream via satellite. There it should be sufficient to do interpolation once.
Are there any other reasons to do interpolation twice while decoding and resizing a video?
Best regards,
Detlev



How can I decrease the performance load for video frame scaling by IPP?
Dear all,
at the moment my video decoder delivers frames in UYVY. Then a color conversion from UYVY to YUY2 is done. After this the video frame is scaled by an IPP call from 352x288 to 800x600. At last the color conversion from YUY2 back to UYVY is done to have the frame ready for Windows' Blt() call.
Now I try to improve my code. At first I think about the possibility to decode each video frame in YUY2 format. I found out that my DirectDraw interface can be set up for YUY2 instead of UYVY. Therefore it seems to be an option to save two color conversions. Without the conversion UYVY->YUY2 and YUY2->UYVY less performance load can be expected. Try to find a configuration so that there is no need anymore to use the color conversion calls ippiCbYCr422ToYCbCr422_8u_C2R() and ippiYCbCr422ToCbYCr422_8u_C2R().
This aim leads to following questions.
I saw that the pitch is the width*2 with UYVY. I guess I can calculate the pitch in the same way for YUY2. Is this correct?
Does YUY2 have any drawbacks in comparison with UYVY? Maybe the video decoder consumes much more performance load for decoding frames in YUY2 instead of UYVY.
Then I have the following selection of the video decoder in my sources. I saw that a filter method IPPI_INTER_LINEAR is defined:
umcRes = CodecPipeline::SelectVideoDecoder(
pItem->m_videostreaminfo,
&videoInputData,
IPPI_INTER_LINEAR,
lDeinterlacingMode,
1,
UMC::FLAG_VDEC_REORDER,
*pItem->m_pColorConverter,
pItem->m_pVideoDecoder);
If I use a later scaling by IPP with help of the call ippiResizeYUV422_8u_C2R() is it possible to select another filter for the frame decoding itself without having less decoding quality on the screens at the end? I can imagine that there are other configurations for the video decoder to my software faster.
Best regards,
Detlev