vs-preview icon indicating copy to clipboard operation
vs-preview copied to clipboard

Add descale helper

Open Setsugennoao opened this issue 3 years ago • 3 comments

  • [x] Add basic implementation
  • [ ] Add GUI elements
    • [ ] Add min/max height
    • [ ] Add step mode/precision
      • [ ] Int/Float precision checkbox
      • [ ] Step increment
    • [ ] Graph resolution/size

Setsugennoao avatar Jun 09 '22 18:06 Setsugennoao

Additional options may be:

  • Crossconversion helper (every field upscaled separately, may have a vertical shift)
  • Shifting (Zewia found some cases where the image was shifted after upscaling, and would show up as being undescaleable until the shift was accounted for)
  • Allowing custom kernels, but that's probably not worth it considering the default set is already pretty solid for the most part
  • ~~Removing cringe kernels or reworking how they're displayed (think spline and lanczos always resulting in relatively low error even when they're wrong)~~ This can be worked around by giving users the option to add/remove possible kernels for a getscaler-like functionality, or to have users define kernels themselves when selecting getnative (with some sane defaults to fall back to, like catrom).
  • getscaler functionality, with a proper warning for newer users
  • A help button that explains the concept of descaling very briefly

LightArrowsEXE avatar Jun 09 '22 18:06 LightArrowsEXE

Additional ideas to make figuring out the kernel better:

  • Have the descaling mode return three videonodes:
    • graph
    • src luma
    • descaled clip with current kernel
  • Realtime swapping between kernels, videonodes update in realtime as well
  • Swapping between kernels on a hotkey (ctrl+number, perhaps? Following the order of the kernels in the list of allowed kernels)
  • Write the current kernel + any custom params on the clip using text.Text.
  • Write relative error on the clip

LightArrowsEXE avatar Jun 09 '22 19:06 LightArrowsEXE

Additional pitfalls that should probably have special cases applied:

crossconversion mode:

  • Different vertical shifts per field
    • If the scaling was done correctly, every field should have a different shift (msg)

LightArrowsEXE avatar Jun 09 '22 19:06 LightArrowsEXE