SkewRows

Skews the rows of a clip. It can be used to correct (deskew) problem clips such as the error message shown below.

Syntax and Parameters

SkewRows (clip, int skew)
clip

Source clip. All interleaved pixel formats are supported (including Y8).

skew

Skew amount, can be positive or negative. For YUY2 sources, skew should be even (divisible by 2). The skewing is memory layout based, so RGB images are skewed from the bottom up, YUV images are skewed from the top down.

The effect of the algorithm is to paste all of the input rows together as one single very long row, then slice them up based on the new width (= input width + skew). When the skew amount is negative, the last skew pixels of each line are added to the beginning of the next line and you get some extra lines at the end. The last line is padded with grey pixels when required.

The geometry of the output is calculated as follows:

  • OutWidth = InWidth + skew // signed skew values acceptable

  • OutHeight = (InHeight*InWidth + OutWidth-1) / OutWidth // rounded up to nearest integer

In other words, the width and height of the output clip are therefore altered slightly.

Examples

../../_images/skewrows_before.png

(original with skew problem)

../../_images/skewrows_after.png

SkewRows(1)

See also

AviSource and DirectShowSource pixel_type:

For planar color formats, adding a '+' prefix, e.g. DirectShowSource(..., pixel_type="+YV12"), tells AviSynth the video rows are DWORD aligned in memory instead of packed. This can fix skew or tearing of the decoded video when the width of the picture is not divisible by 4.

Changelog

Version

Changes

AviSynth 2.6.0

Initial release

$Date: 2022/03/17 12:22:43 $