Skip to content

Resizers in forced convolution only - separate planes processing control #447

@DTL2020

Description

@DTL2020

As we have in many Asd-g plugins - for planar formats it have separate plane processing control of typical values
Planes to process.
1: Return garbage.
2: Copy plane.
3: Process plane. Always process planes when the clip is RGB.

Where 1 expected 'do nothing' and fastest mode if user do not care of the output plane conent (simply old RAM content in the allocated memory pages ?).
2 - more slower plane copy
3 - full processing.

I see it is used to make things somehow faster for example in QTGMC+ script by Dogway - https://github.com/Dogway/Avisynth-Scripts/blob/c6a837107afbf2aeffecea182d021862e9c2fc36/MIX%20mods/QTGMC%2B.avsi#L678

So to use new core features of GaussResize to replace this processing and skip using one more external dependency plugin it is better to add same functionality to Resize filters.

May be as bit mask for 'force' parameter ? To make number of parameters for Resize filter smaller.

Currently 'force' parameter uses 2 LSBs -
0, 1, 2, 3
We can assign 3 (4 for formats with 4 planes) groups of next bits (pairs of bits) to encode plane processing mode:
0 - full process plane (default, to keep backward compatibility)
1 - write nothing to output plane
2 - copy plane

So defaults 0,1,2,3 will keep compatibility and for special processing modes user need to add decimal special control values to 'force' param value
Like force=3+(plane 0(Y) = full process, planes 1 and 2 (U and V) = copy)
where
plane 0 control 2 bits (xx<<2)
plane 1 control 2 bits (xx<<4)
plane 2 control 2 bits (xx<<6)
plane 3 control 2 bits (xx<<8)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions