[mythtv] Kernel 2X HW-GL Deinterlacing

Mark Spieth mark at digivation.com.au
Sun Nov 25 02:09:29 UTC 2018


On 11/25/2018 2:31 AM, Peter Bennett wrote:
>
>
> On 11/23/18 5:48 PM, Mark Spieth wrote:
>> On 11/24/2018 8:53 AM, David Engel wrote:
>>> This issue was discussed on IRC some weeks ago but never resolved.  I
>>> thought I'd bring it up here in hopes of resolving it.
>>>
>>> On the Nvidia Shield, the kernel 2X HW-GL deinterlacer looks terrible
>>> by default.  However, after explicitly setting the scan type to
>>> "interlaced (reversed)", it clears up very nicely.  I don't see this
>>> same behavior on Linux.  In fact, I don't see any difference among
>>> the detect, interlaced (normal) and interlaced (reversed) scan types
>>> on Linux but my vision isn't the best.
>>
>> I have seen this too. I believe it is gl/gles driver implementation 
>> dependent.
>>
>> Ive also seen this on windows (laptops esp.)
>>
>> The GL interleavers need to perform the deinterleaving algo first and 
>> the last step also inverts the image. GL coord system has 0,0 at 
>> bottom left which mean the line order is reversed too so the 2nd 
>> field is originally on the first line.
>>
>> I dont know if there is any way to tell its behaviour from an API 
>> call. I suspect not.
>>
>> This ordering can be tweeked for android or runtime selectable.
>>
>> I noticed similar things for YV12 where the color was line swapped 
>> and looked weird in one of the samples your provided. Easier to see 
>> on a low res video.
>>
>> I have mods that I havent pushed which I have distributed in the past 
>> and still use. I suspect something like this also as an impact on the 
>> green line situation.
>>
>> Mark
>>
>>>
>>> Can anyone else confirm my findings, particularly on Linux? More
>>> importantly, can anyone explain the observed behavior?  I know one
>>> difference is the Shield uses OpenGL ES and Linux uses full OpenGL.
>>> Does the Raspberry Pi use OpenGL ES, and if so, how does kernel 2x
>>> HW-GL perform on it?
>>>
>>> This is of interest because, in theory, kernel deinterlacing should be
>>> better than linear blend deinterlacing.  Getting it working correctly
>>> without having to set the scan type manually every time would be a
>>> nice improvement.
>>>
>>> David
>>
> I have found that kernel deinterlacing has not worked well on Linux or 
> android, and I stick with linear blend. I tried the kernel deinterlace 
> on the fire stick and it looks the same whether I have interlaced 
> normal or interlaced reversed. In both cases there is a quivering 
> effect on straight lines, worse than when using bob. Linear blend 
> looks best in all cases. What type of effect do you see? 

I see odd and even lines swapped.

This is particularly noticable for YV12 on adjacent horizontal/diagonal 
color boundaries. Does nto affect YUY2/YUYV since color info is on a per 
line basis.

However this seems to have affected

I have a patch to for the above but I thought it was only an android 
issue. havent examined the effect on linux. This is a problem with the 
original GL deinteracers which process all lines from bottom to top (0,0 
being at bottom left) and then inverts the whole picture. I considered 
this an algo error but could not be sure about linux effects.

If you want the patch again let me know.

Mark




More information about the mythtv-dev mailing list