Opened 5 weeks ago

Last modified 5 weeks ago

#6260 new defect

NVENC H.264 encoding causes aliasing / stair-stepping colors, worse on interlaced than progressive

Reported by: alexpigment Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: NVENC
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:

When encoding to H.264 with the NVENC encoder, I'm seeing a pronounced aliasing or stair-stepping effect that happens on the colors (chroma-only?) during motion. This occurs on progressive encodes, but is worse on interlaced encodes. I have verified this behavior on both an Nvidia 1060 and an Nvidia 750 while using the newest static Win64 build from Zeranoe as well as a build from January.

To rule out a problem with the GPU, driver, or NVENC itself, I used Staxrip x264 1.4.0.0 to encode with NVENC H.264 on 2 samples and saw no issues. Therefore, this issue appears to be specific to the FFMPEG implementation of NVENC. FFMPEG x264 does not suffer from this issue either.

How to reproduce:

% ffmpeg -i interlacedsample.mp4 -c:v h264_nvenc -b:v 20000000 -flags +ilme+ildct interlacedoutput.mp4

View the file in a player that supports deinterlacing (I'm using WMP 12 for consistency). Notice that the colors of the rings have massive stair-stepping around the curves, particularly in the lower right where the red and green intersect.

As mentioned above, this also occurs on progressive, albeit to a lesser but still very problematic degree.

% ffmpeg -i progressivesample.mp4 -c:v h264_nvenc -b:v 20000000 progressiveoutput.mp4

The same problem occurs here, most notably at hte top of the blue right and at the intersection of the green and red rings at the bottom left.

ffmpeg version N-84348-gdb7a05d
built on 2017-03-21

Attachments (4)

interlacedsample.mp4 (2.1 MB) - added by alexpigment 5 weeks ago.
This is the input file as used in the first part of the reproduction steps.
progressivesample.mp4 (1.5 MB) - added by alexpigment 5 weeks ago.
This is the input file as used in the second part of the reproduction steps.
interlacedoutput.mp4 (2.4 MB) - added by alexpigment 5 weeks ago.
This is the problematic output file that results from the first part of the reproduction steps (bitrate lowered for file size considerations).
progressiveoutput.mp4 (2.1 MB) - added by alexpigment 5 weeks ago.
This is the problematic output file that results from the second part of the reproduction steps (bitrate lowered for file size considerations).

Change History (5)

Changed 5 weeks ago by alexpigment

This is the input file as used in the first part of the reproduction steps.

Changed 5 weeks ago by alexpigment

This is the input file as used in the second part of the reproduction steps.

Changed 5 weeks ago by alexpigment

This is the problematic output file that results from the first part of the reproduction steps (bitrate lowered for file size considerations).

Changed 5 weeks ago by alexpigment

This is the problematic output file that results from the second part of the reproduction steps (bitrate lowered for file size considerations).

comment:1 Changed 5 weeks ago by cehoyos

  • Component changed from ffmpeg to undetermined
  • Keywords aliasing interlaced progressive chroma removed
  • Priority changed from important to normal
Note: See TracTickets for help on using tickets.