vs-preview
vs-preview copied to clipboard
Add descale helper
- [x] Add basic implementation
- [ ] Add GUI elements
- [ ] Add min/max height
- [ ] Add step mode/precision
- [ ] Int/Float precision checkbox
- [ ] Step increment
- [ ] Graph resolution/size
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
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
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)