View Issue Details

IDProjectCategoryView StatusLast Update
0000169madVRbugpublic2014-03-04 00:29
Reporterbacondither Assigned Tomadshi  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Summary0000169: Dithering of reference white with error diffusion
DescriptionOn all white images(RGB 255) and video (RGB 235 reference white) after dithering with error diffusion 1 or 2 in 8-bit mode, the outputted image consists of RGB 254 and RGB 255 pixels. It should only consist of RBG 255 pixels.

Using random dither or no dither gives only RGB 255 white pixels which is correct.
Steps To ReproduceLoad an all white image or try the AVS 3-White Clipping.mp4 test pattern with ED 1 or 2 enabled. Then use a image editor to clip the lower part of the histogram >250 to se the dithering of whites more clearly.
TagsNo tags attached.
madVR VersionmadVRfinalDither4
Media Player (with version info)MPC-HC 1.6.8 and 1.7.3
Splitter (with version info)LAV Filters 0.60.1
Decoder (with version info)LAV Filters 0.60.1
DecodingSoftware
Deinterlacingnone (progressive)
DXVA2 Scaling Activeno
Aero / Desktop CompositionOn
Problem occurs with modeall modes
GPU ManufacturerAMD
GPU Model7790
GPU Driver VersionRadeon HD 7790 Catalyst Performance Driver 12.101.2.1 and 14.2 Beta

Activities

bacondither

2014-03-01 18:23

reporter  

noise whites.zip (328,457 bytes)

madshi

2014-03-02 15:01

administrator   ~0000401

Was able to reproduce this on both Intel and AMD GPUs. Not sure why this happens. It seems that the interop between D3D9 and DirectCompute somehow slightly effects the pixel range. I've now applied a manual correction, which seems to take care of the problem with Intel GPUs with both TV and PC output levels. It also fixes the problem with AMD GPUs with TV output levels. But AMD GPUs with PC output levels still have a dither pattern of 254-255. If I increase the correction for this, it would push white too high for Intel. So I think I'll keep it this way. AMD users either have to live with this, or alternatively run a custom pixel shader which slightly expands the video (e.g. using a simple multiplication factor of "255.2 / 255.0").

madshi

2014-03-03 12:44

administrator   ~0000404

P.S: Found a proper fix that seems to work for all GPUs and all situations.

Issue History

Date Modified Username Field Change
2014-03-01 18:23 bacondither New Issue
2014-03-01 18:23 bacondither File Added: noise whites.zip
2014-03-01 20:10 bacondither Media Player (with version info) MPC-HC 1.6.8 => MPC-HC 1.6.8 and 1.7.3
2014-03-01 20:10 bacondither GPU Driver Version Radeon HD 7790 Catalyst Performance Driver 12.101.2.1 => Radeon HD 7790 Catalyst Performance Driver 12.101.2.1 and 14.2 Beta
2014-03-01 23:10 madshi Assigned To => madshi
2014-03-01 23:10 madshi Status new => assigned
2014-03-02 15:01 madshi Note Added: 0000401
2014-03-02 15:01 madshi Status assigned => closed
2014-03-02 15:01 madshi Resolution open => fixed
2014-03-03 12:44 madshi Note Added: 0000404