• 1(current)
  • 2
  • 3
  • 4
  • 5
  • 10
WIP Experimental simple deinterlacing
#1
This is an experimental build implementing a simple linear blending deinterlacing for libstagefright and mediacodec h/w decoding.
Not high-quality, but it at least remove most of the "comb" effect, to the cost of added blurriness.
No auto-detection, so you have to enable deinterlacing manually depending on the source.

Please test and comment. I'd like to know if it is worth pursuing in that direction.

http://mirrors.xbmc.org/test-builds/andr...bi-v7a.apk
Reply
#2
Thanks for looking into this Koying, greatly appreciated!

Imho, it's definitely a step in the right direction, especially for SD broadcasts. 1080i sports is improved too, but still not really watchable. Although this might also be related to the frame rate, I'm in Europe so it's 1080i50, 1080i60 would probably look better.

Since the framerate can't be changed, I guess there's also no chance to get interlaced output working and let the tv do the de-interlacing? What about open source driver projects like freedreno, any chance something like that might help to overcome the current limitations?

EDIT:
I'm using a fire tv, btw.
Reply
#3
We don't get the fields from the H/W decoders. They are always "deinterlaced" into one frame but often, like on AFTV, it's simple weaving, leading to the "comb" effect.
All we can try is to reduce the comb effect by using gles shaders.
Reply
#4
For other codecs we have combined the fields into a single frame as well. Why don't you render each field separately,one after another?
Reply
#5
Read above. We DON'T have the fields, just a frame put together by whatever method the omx component on a specific SoC implements.
Reply
#6
Yes, I know. A shader can either pick the even or odd lines in one pass.
Reply
#7
And do you have a suggestion on how to re-inject the de-doubled frame from the renderer back into the player?
Reply
#8
why do you want to re-inject? assume we have a texture with both fields. For BOB we render 2 times from the same texture.
Reply
#9
Koying, I greatly appreciate you are working on this. I can't contribute to the technical conversation, but am most happy to be available for testing (using Amazon Fire TV, same as weak).

I installed your version and unfortunately can't see an improvement. But the fact that you are looking into this, makes me optimistic.
Reply
#10
@FernetMenta Do we already have code doing this?

I understand BOB as:
- Split the 2 fields, making 2 half-height frames out of them
- Double the refresh rate and render T-B-T-B-T-B...

I don't see how to time the T-B flip by staying in the renderer...
Reply
#11
RenderManager calls renderer->RenderUpdate for each field: https://github.com/xbmc/xbmc/blob/master...r.cpp#L806
From a renderer perspective only do what RenderManager instructs you. Either TOP field, BOT bield, or entire frame.
Reply
#12
Koying, thank you for your deinterlacing support.
In my configuration (LG G3, SnapDragon 801), there's hardware acc only for avc (all HD channels mostly 1080i 50 hz PAL in my country).
I'm not a technician, bust BOB should be the best method for these channels.
Anyway, with your build there's a clear improvement.
Don't know if you can add also software deinterlacing (with a 2.5 CPU it should not be a problem), because I can test only a few channels (most channels are SD mpeg2 720x576 PAL).
It seems to me that you're pointing in the right direction.
Thank you,
sdf
Reply
#13
I tried this yesterday on one of my fire TVs and its a definite improvement on 1080i content, not as good as can be achieved using a Raspberry Pi, but its a definite improvement.

The build itself seems very stable, had zero issues with 3 - 4 hours viewing of live TV yesterday.

Happy to help testing anything else - i have two PVR backends which kick out a variety of 1080i 50Hz content
Reply
#14
Now with BOB thanks to @FernetMenta. Should be much better:
http://mirrors.xbmc.org/test-builds/andr...bi-v7a.apk
Reply
#15
Huge improvement, thanks Koying/FernetMenta.
Any chance to get 'Auto' mode working?
Reply
  • 1(current)
  • 2
  • 3
  • 4
  • 5
  • 10

Logout Mark Read Team Forum Stats Members Help
Experimental simple deinterlacing1