Opened 5 years ago

Last modified 4 years ago

#12272 new Bug Report - General

mythtranscode creating artifacts when transcoding interlaced mpeg2 streams

Reported by: tapperm@… Owned by: JYA
Priority: minor Milestone: unknown
Component: MythTV - Mythtranscode Version: 0.27-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I've been seeing issues with mythtranscode since approximately 0.23. Blocky artifacts are introduced around motion (especially where there is motion blur in the input stream). This was occurring even for ridiculously high bitrate and quality settings. Replicating the same bitrate, quality settings and flags in mythffmpeg did not result in the same artifacting, suggesting the problem may be caused something in mythtranscode or NuppelVideoRecorder?.

Applying deinterlace transcode filters does not have any effect on the problem - although different filters can exaggerate the problem.

However, applying the postprocess filter or the ivtc filter fixes the problem completely - even though interlace combing is still left in the output stream.

If deinterlace filters are applied before or after the postprocess or ivtc filters, the artifacts are reintroduced.

Even more interestingly, applying the vflip filter generates extremely odd behaviour. The output from mythtranscode seems to show a mix of upside down and right-side up blocks in the same frame - possibly something is going on with the i-frames causing motion detected blocks to incorrectly reference the wrong field of an interlaced signal?

Attached files: orig.mpg - original mpeg2 file. yadifdeint.nuv - yadif deinterlaced showing extreme artifacting kerneldeint.nuv - kernel deinterlaced showing less extreme artifacting vflip.nuv - vflipped version showing mixture of flipped and non-flipped blocks. postprocess.nuv - postprocess filtered. Still interlaced but no artifacts ivtc.nuv - inverse telecined - no artifacts ivtc-then-kerneldeint.nuv - deinterlaced after telecine, artifacts appear kerneldeint-then-ivtc.nuv - deinterlaced before telecine, artifacts present.

Marking this as minor, since using ivtc filter seems to be an effective workaround. Postprocess would work, except that it has a tendency to segfault.

Attachments (8)

yadifdeint.nuv (1.3 MB) - added by Michael Tapper <tapperm@…> 5 years ago.
yadif deinterlaced - extreme artifacting
orig.mpg (1.9 MB) - added by Michael Tapper <tapperm@…> 5 years ago.
original input file
nofilters.nuv (1.4 MB) - added by Michael Tapper <tapperm@…> 5 years ago.
transcoded with no filters applied
vflip.nuv (1.6 MB) - added by Michael Tapper <tapperm@…> 5 years ago.
vflip filter applied - mixed blocks of upside-down and right-side up blocks
ivtc.nuv (1.4 MB) - added by Michael Tapper <tapperm@…> 5 years ago.
ivtc - no artifacts
ivtc-then-kerneldeint.nuv (1.4 MB) - added by Michael Tapper <tapperm@…> 5 years ago.
kerneldeint-then-ivtc.nuv (1.4 MB) - added by Michael Tapper <tapperm@…> 5 years ago.
kerneldeint.nuv (1.4 MB) - added by Michael Tapper <tapperm@…> 5 years ago.

Change History (10)

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: yadifdeint.nuv added

yadif deinterlaced - extreme artifacting

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: orig.mpg added

original input file

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: nofilters.nuv added

transcoded with no filters applied

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: vflip.nuv added

vflip filter applied - mixed blocks of upside-down and right-side up blocks

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: ivtc.nuv added

ivtc - no artifacts

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: ivtc-then-kerneldeint.nuv added

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: kerneldeint-then-ivtc.nuv added

Changed 5 years ago by Michael Tapper <tapperm@…>

Attachment: kerneldeint.nuv added

comment:1 Changed 5 years ago by Michael Tapper <tapperm@…>

Left out postprocess.nuv, as the output was identical to ivtc.nuv

Also, it looks like kerneldeint produces the same output as ivtc then kerneldeint or kerneldeint then ivtc.

comment:2 Changed 4 years ago by Octavian Petre <octavsly@…>

have thee same issue.

Note: See TracTickets for help on using tickets.