VC-1 decoding errors

I’ve raised this before, but that was in the Kodi v19 testing thread, which has now been locked. I think this deserves to be in a still-open, bumpable thread…

First, a link to some of my test clips: Dropbox - Deinterlacing test patterns - Simplify your life

Here’s an approximate copy of what I said in the other thread, edited for clarity:


Star by turning off hardware decoding, then play the 1080i60 wedge pattern clip. Decoded in software, it plays perfectly - that gives you a reference. Now try playing it with hardware decoding, and with deinterlacing set to Auto-Select. If you look carefully, you can see two different sets of artefacts: at the left edge of the horizontal wedge, centred on the 540 mark, there’s some very obvious moiré (this is the result of a deinterlacing error -not what’s interesting here); further to the right within that wedge, you should see also a couple of diagonal bars which sweep left to right, turn till they’re vertical, keep turning till they’re diagonal again, sweep right to left, disappear, and then repeat the cycle - that’s what we’re interested in.

If you now switch deinterlacing to Off, it fixes the deinterlacing, and the main moiré at the 540 mark vanishes; but the sweeping diagonal bars are still there (but fainter). This (I’m fairly sure) is the result of a decoding error.

My “Little Dorrit” clip also shows what look like decoding errors, although they’re more subtle here. To play it as well as possible you’ll need to whitelist 1080p/25, start playing the clip, set deinterlacing to Off, stop, then play it again. This gives correct deinterlacing, but there’s still some definite loss of detail - you notice it in the fine texture of the men’s faces. (For comparison, try playing it on a Pi 2 or 3, running Kodi v18, using MMAL, with VC-1 acceleration enabled, and with deinterlacing set to Off. Much more skin detail is visible.)

1 Like

Just to add that I have also noticed the very poor VC-1 image quality recently with the Vero 4K (excluding the broken deinterlacing) running 19.1.

There is definitely some form of DNR being applied when using hardware decoding, it shows up instantly on any high quality sources. As far as I can tell it only affects VC-1 decoding, so would not appear to be something applied globally “downstream” of the decoder.

That would certainly be consistent with what I’m seeing.

Can you post a photo or screenshot?

I have no way to do a direct HDMI capture, so the best I can do is a photo of the screen. Even with those limitations it shows the issue well enough.

It actually appears to be worse than I initially thought and not just DNR, there is a significant amount of macro blocking and and posterization in the Vero 4K decoded version that is not in the source file.

OPPO 203

Vero 4K

Note the heavy macoblocking in the flames and general “mushy” look of the Vero compared to the OPPO. Same source file, exactly the same TV input settings etc…

The source file for this is the 23.976 VC-1 test sample on the Kodi media sample page Samples - Official Kodi Wiki, but it appears to be consistent with all VC-1 files I have tried.

Vero 4K+ (Matrix):

Raspberry Pi (Leia):

I’m not sure if these are the exact same frame, but they give a good idea of what to look for. Look at the guy in the background, and at the difference in brightness between the bridge of his nose and the side of his nose, or between forehead and temple.

EDIT: Another pair, from the same clip. Note the detail under the girl’s left eye (her left, our right!) and on her cheekbone.

Vero 4K+ (Matrix):

Pi 3 (Leia):

I tried reinstalling the November 2020 release for a while today. It has been a long time since I’ve been running the 3.14 kernel, as I’ve been on the 4.9 kernel test version, and then the Matrix test version, so I didn’t really remember what my Vero 4K+ was formerly capable of.

One of the more noticeable regressions is VC-1 decoding quality. I’m not sure if it was perfect in the November release, but it was certainly a lot better than it is now. I hope you guys can find a way to get back to that.

Same hear i have to rollof to November 2020 to fix it. In Kodi 19 show like DNR filter, ony happens with VC-1. Im with Vero 4K device

I have the same problem (Kodi 19.3). Could OSMC developers please test a VC1 file on a Vero 4k+ please?

We test VC-1 playback on every release - as it is a particularly tricky format and significantly regression prone.

Oh, I see. Thanx. If I may say, please look out for macroblocking on the vero 4/4k+ just incase for the next point release.

Do you have a video that can produce macroblocking?

Sam

To provide more information on this;

Currently, we (@tanio99 – who has been working hard on this ) need to have the deinterlacer enabled for VC-1 content for it to play smoothly. But we’ve identified why this is the case and we have a fix for this that removes this dependency. However there are some issues to fix yet.

Once that’s sorted, I’m sure we can look further.

VC-1 is a pain, but it’s something we take seriously.

@bmillham has a huge collection of VC-1 videos, and tests regularly.

We’ve seen slow playback but not macroblocking. So if you do have clips that produce that, then it would be interesting to see them.

Sam

Could you let me know some titles where you see the macro-blocking? All of my VC-1 content (around 35 movies) were ripped directly from Blu-ray using MakeMKV with no other processing. I’ve never noticed any macro-blocking. So if you can give me an idea of movies, and even better where in the movie to look for it it will help me test new releases.

1 Like

Did y’all have a look at the clips I posted in the very first post of this thread? Notably, the clip from “Little Dorrit”? (Screenshots in post 6. See also post 5 by Metallic, which has another sample).

I’m not sure I would describe the effect as “macro-blocking” exactly. It’s more like “banding” - it looks almost as if it’s being rendered at the wrong bit depth - as if, instead of using the full 8 bits per channel, it’s being rendered with only 6- or 7-bit accuracy.

I’ll try to find a clip later

I have very limited internet, so downloading clips isn’t something I can really do. (Fingers crossed that I will get Starlink next month!!!)

This same file has the macroblocking for me

Edit: Kodi Wiki is down so here’s the direct link

Will this have any impact on the functionality introduced in late 2020 to allow deinterlacing to be disabled on 50i-encoded progressive material? This was a nice addition, as it gets rid of really bad moire that was present on default settings with my 1080/50i VC-1 mkv’s.

No. :crossed_fingers: