You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For LetterBox() with fixed frame size it may be natural to control its placement measured from the border of the frame with float-precision with current left/top/right/bottom parameters without changing parameters count.
But it is also nice to have float-precision transient placement control in AddBorders and it has less natural control because it adds a new number of integer sample count to the frame with integer dimensions. So addition of the float format of left/top/right/bottom may be harder to understand and also the required control of the shifting of transients from the current 'in-between old and new sample' is only +-0.5 max. But as we have 4 borders with separate control it may require up to 4 new parameters to control also sub-sampling shifting. If LetterBox uses AddBorders it may be a better solution ?
Some use cases of Animate(LetterBox()) - when user adjust the anti-ringing filtering it can show the very small residual ringing in dynamics when it cycle many possible positions of transient relative to sampling grid. It may be not very good visible in static imaging. Also may be used for compression testing.
Addition: The script solution in this post is not perfect because it also shifts part of the original image. Will try to think if it possible to make better example later. But with small flt_rad (about 2..3) the shifting of the part of image may be not greatly visible so it work as good enough demo.
Other possible way without shifting but with limited precision (at this implementation) may be:
For 0.01 precision/stepping: (for processed part of the frame)
1. LanczosResize(width*100, height) #may be not best - need testing with Point or Bicubic or Spline ?
2. LetterBox(Int(fractional_part*100)) #set position of transient in integer form with 1/100 precision (in original size)
3. FilteredDownsize(width/100, height) #using provided by user filter kernel
May be this method may be redesigned for higher (unlimited float) precision. Like combining of 1+2+3 operations into single filtering-convolution operation if possible. Though even 0.01 sample granularity is already very good.
The text was updated successfully, but these errors were encountered:
It is good to have float coordinates input and new transient positioning relative to sampling grid.
Example of the left border float coordinate for LetterBox:
For LetterBox() with fixed frame size it may be natural to control its placement measured from the border of the frame with float-precision with current left/top/right/bottom parameters without changing parameters count.
But it is also nice to have float-precision transient placement control in AddBorders and it has less natural control because it adds a new number of integer sample count to the frame with integer dimensions. So addition of the float format of left/top/right/bottom may be harder to understand and also the required control of the shifting of transients from the current 'in-between old and new sample' is only +-0.5 max. But as we have 4 borders with separate control it may require up to 4 new parameters to control also sub-sampling shifting. If LetterBox uses AddBorders it may be a better solution ?
Some use cases of Animate(LetterBox()) - when user adjust the anti-ringing filtering it can show the very small residual ringing in dynamics when it cycle many possible positions of transient relative to sampling grid. It may be not very good visible in static imaging. Also may be used for compression testing.
Addition: The script solution in this post is not perfect because it also shifts part of the original image. Will try to think if it possible to make better example later. But with small flt_rad (about 2..3) the shifting of the part of image may be not greatly visible so it work as good enough demo.
Other possible way without shifting but with limited precision (at this implementation) may be:
For 0.01 precision/stepping: (for processed part of the frame)
May be this method may be redesigned for higher (unlimited float) precision. Like combining of 1+2+3 operations into single filtering-convolution operation if possible. Though even 0.01 sample granularity is already very good.
The text was updated successfully, but these errors were encountered: