Letterbox: Difference between revisions

From Avisynth wiki
Jump to navigationJump to search
add link to avs+ documentation
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<div style="max-width:54em" >
<div style="max-width:54em" >
<div {{BlueBox2|40|0|3px solid purple}} >
{{AvsPlusFullname}}<br>
Up-to-date documentation: [https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/letterbox.html https://avisynthplus.readthedocs.io]
</div>
Fills the top and bottom ''rows'' of each frame, and optionally the left and right ''columns'', with black or color. This has several common uses:  
Fills the top and bottom ''rows'' of each frame, and optionally the left and right ''columns'', with black or color. This has several common uses:  
* Adjust the [[Aspect_ratios|aspect ratio]] ([[Wikipedia:Letterboxing_(filming)|letterboxing's]] traditional purpose)
* Black out video noise from the existing black bands in an image that's already letterboxed  
* Black out video noise from the existing black bands in an image that's already letterboxed  
* Black out the video noise at the bottom of the frame in [[Wikipedia:VHS|VHS]] tape sources.  
* Black out the video noise at the bottom of the frame in [[Wikipedia:VHS|VHS]] tape sources.  
Line 11: Line 16:


Generally, it's better to '''Crop''' video noise off than to black it out; many older lossy compression algorithms don't deal well with solid-color borders, unless the border happens to fall on a [[Wikipedia:Macroblock|macroblock]] boundary (16 pixels for MPEG). However, in some cases, particularly for certain hardware players, it's better to use '''Letterbox''' because it lets you keep a standard frame size.
Generally, it's better to '''Crop''' video noise off than to black it out; many older lossy compression algorithms don't deal well with solid-color borders, unless the border happens to fall on a [[Wikipedia:Macroblock|macroblock]] boundary (16 pixels for MPEG). However, in some cases, particularly for certain hardware players, it's better to use '''Letterbox''' because it lets you keep a standard frame size.
{{AvsPluscon}} also supports [[RGB64]], [[PlanarRGBA]] and [[YUVA]].
</div>  
</div>  


Line 16: Line 23:
== Syntax and Parameters ==
== Syntax and Parameters ==
{{FuncDef
{{FuncDef
|Letterbox(clip ''clip'', int ''top'', int ''bottom'' [, int ''x1'' , int ''x2'' , int ''color'' ] )
|Letterbox(clip ''clip'', int ''top'', int ''bottom'' [, int ''x1'' , int ''x2'' , int ''color'' ] [, int ''color_yuv'' {{AvsPluscon}}])
}}
}}


:{{Par2|top, bottom|int|(required)}}
:{{Par2|top, bottom|int|(required)}}
::Number of {{FuncArg|top}} and {{FuncArg|bottom}} rows to blank out.
::Number of {{FuncArg|top}} and {{FuncArg|bottom}} rows to blank out.
\::*For [[YV12]] sources, {{FuncArg|top}} and {{FuncArg|bottom}} must be [[Modulo|mod2]] (divisible by 2).  
::*For [[YV12]] sources, {{FuncArg|top}} and {{FuncArg|bottom}} must be [[Modulo|mod2]] (divisible by 2).  


:{{Par2|x1, x2|int|0}}
:{{Par2|x1, x2|int|0}}
Line 30: Line 37:
:{{Par2|color|int|(black)}}
:{{Par2|color|int|(black)}}
::Fill color; specified as an RGB value. See [[Colors|this page]] for more information on specifying colors.
::Fill color; specified as an RGB value. See [[Colors|this page]] for more information on specifying colors.
::*For YUV clips, colors are converted from full-range (0&ndash;255) to tv-range (16&ndash;235).
::*For YUV clips, colors are converted from full-range (0{{D}}-255{{D}}) to TV-range (16{{D}}-235{{D}}).
 
:{{Par2|color_yuv|int|}} {{AvsPluscon}}
::Specifies the color of the border using YUV values. It requires setting pixel_type to one of the YUV formats; otherwise it doesn't do anything.
::Similar to {{FuncArg|color_yuv}} in BlankClip


== Changes ==
== Changes ==
{| border="1"
{| border="1"
|-
| v3.4.1 AVS+
| Added color_yuv option.
|-  
|-  
| v2.07
| v2.07

Latest revision as of 07:24, 18 September 2022

AviSynth+
Up-to-date documentation: https://avisynthplus.readthedocs.io


Fills the top and bottom rows of each frame, and optionally the left and right columns, with black or color. This has several common uses:

  • Black out video noise from the existing black bands in an image that's already letterboxed
  • Black out the video noise at the bottom of the frame in VHS tape sources.
  • Black out overscan areas in VCD or SVCD sources.
  • Create a quick rectangular mask for other filters – a so-called "garbage matte"

See also: AddBorders, which increases frame size. Letterbox does not change frame size.

The functionality of Letterbox can be duplicated with a combination of Crop and AddBorders, but Letterbox is faster and easier.

Generally, it's better to Crop video noise off than to black it out; many older lossy compression algorithms don't deal well with solid-color borders, unless the border happens to fall on a macroblock boundary (16 pixels for MPEG). However, in some cases, particularly for certain hardware players, it's better to use Letterbox because it lets you keep a standard frame size.

AVS+ also supports RGB64, PlanarRGBA and YUVA.


Syntax and Parameters

Letterbox(clip clip, int top, int bottom [, int x1 , int x2 , int color ] [, int color_yuv AVS+])

int  top, bottom = (required)
Number of top and bottom rows to blank out.
  • For YV12 sources, top and bottom must be mod2 (divisible by 2).
int  x1, x2 = 0
Number of left (x1) and right (x2) columns to blank out.
  • For YUY2, YV16 and YV12 sources, left and right must be mod2 (divisible by 2).
  • For YV411 sources, left and right must be mod4 (divisible by 4).
int  color = (black)
Fill color; specified as an RGB value. See this page for more information on specifying colors.
  • For YUV clips, colors are converted from full-range (0d-255d) to TV-range (16d-235d).
int  color_yuv =
AVS+
Specifies the color of the border using YUV values. It requires setting pixel_type to one of the YUV formats; otherwise it doesn't do anything.
Similar to color_yuv in BlankClip

Changes

v3.4.1 AVS+ Added color_yuv option.
v2.07 Added color option.
v2.06 Added optional left and right parameters (x1 and x2).