What is the interlacing used in the sample image attached? It is present in motion regions only in mts video (stream: mpeg2tts, type: h264) I'm using UMC to extract images from video files. I tried all DeinterlacingMethod:: parameters in CodecPipeline::SelectVideoDecoder() but without any visual result. Can you test that image explicitely with deinterlacing functions from ippi? Maybe parameters in UMC deintelacing is not correct.
If you open the video in any program that can show it frame by frame, check if you have some of the frames which are not interlaced in the stream. If so, then you should not deinterlace it, but perform reverse telecine instead. Not sure if that can be done with UMC though.
Another option is that the video source was already messed up when encoded (i.e. that interlaced content has been fed into an encoder which did not recognize it but just encoded it as progressive), in that case I am afraid there is nothing you can do to restore image quality.
Sorry, I meant deinterlacing is the removal of odd or even lines and then interpolation back to original size. That works with the image I uploaded. Of course the detail is lost.
I'm sure without the use of the video player that using no deinterlacing or any kind of UMC deinterlacing produces the same effect. In no motion region there is no interlacing. But in motion regions the is interlacing.
My target is topresent those videos in HD quality despite how they were recorded. I do not understand the problem for UMC. If the interlacing is standard it should remove it. Otherwise there is no use of those options in the pipeline if they can not cope with simple interlacing.
If there are other video samples with interlacing that UMC can handle please let me know I'd like to test them to make sure if UMC can deinterlace at all or not.
There are two types of videos that look like they are interlaced, but only one of them is really interlaced. The other one is 2-3 pulldown where you have a repeating pattern of interlaced and non-interlaced frames. 2-3 pulldown cannot be deinterlaced using standard deinterlacing -- it requires reverse telecine process (IVTC).
At this point it might be the best if you can upload a sample of your video to some hosting site such as megaupload.com and post a link here so we can examine it and figure out what seems to be your problem.
Correct me if I'm wrong. I learned that mts stream produces odd and even frames coming after each other. Odd frame contains only odd rows from the entire 1080p frame and even frame contains only even rows. Full frame is composed from those odd/even pairs. If there is motion between odd and even capture then entire frame is interlaced exatly in motion regions. And that interlacing is not handled by UMC
I've also attached small mts file for a quick evaluation. Around 00:00:03.102 there is camera movement and interlacing is present over entire frame. In other regions only around moving persons that interlacing is visible.
I've attached the logic I'm using to setup UMC and grab frames. But it never arrives to umc_deinetrlacing.cpp e.g.Status Deinterlacing::GetFrame(MediaData *input, MediaData *output) as I set break point there.