Skip to content

Implement dithering #2

Open
Open
@jserv

Description

@jserv

Dithering is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images.
Prior art:

The upstream work was landed in tyrquake.

Activity

alanjian85

alanjian85 commented on Aug 16, 2022

@alanjian85
Collaborator

I'm not sure what dithering algorithm tyrquake uses, but the bit depth of the texture source, pbase, and the corresponding output pixel location, pdest, are both 256 colors, so they don't appear to have anything to do with error diffusion and quantization error randomization because the error of colors is negligible. Furthermore, despite the fact that static data used in the process is called dither_kernel, it doesn't use a conventional method of image convolution, so additional diagnostics may be required. I adapted it for the quake-embedded, though, so if it's still required, I can provide it.

jserv

jserv commented on Aug 21, 2022

@jserv
Author

Furthermore, despite the fact that static data used in the process is called dither_kernel, it doesn't use a conventional method of image convolution, so additional diagnostics may be required. I adapted it for the quake-embedded, though, so if it's still required, I can provide it.

My intention was to provide a runtime switch to bring visual computing "overheads," so that rv32emu users can be aware of the impacts, especially when JIT compilation is ready for performance boost. Dithering might be a good fit for this purpose. Feel free to propose another approach as a runtime switch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @jserv@alanjian85

      Issue actions

        Implement dithering · Issue #2 · sysprog21/quake-embedded