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(
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.