Merge

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
 
m
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Template:Func3Def|Merge(clip ''clip1'', clip ''clip2'' [, float ''weight''])|MergeChroma(clip ''clip1'', clip ''clip2'' [, float ''weight''])|MergeLuma(clip ''clip1'', clip ''clip2'' [, float ''weight''])}}
+
<div {{BlueBox2|40|0|3px solid purple}} >
 +
{{AvsPlusFullname}}<br>
 +
Up-to-date documentation: [https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/corefilters/merge.html https://avisynthplus.readthedocs.io]
 +
</div>
  
These filters make it possible to merge pixels (or, for YUV clips only, just the luma or chroma) from one videoclip into another. There is an optional weighting, so a percentage between the two clips can be specified. Merge is present in v2.56.
 
  
''clip1'' is the clip that has the appropriate data merged INTO (based on which filter you use). In the case of MergeLuma or MergeChroma, that means that the OTHER channel (chroma or luma respectively) is completely untouched.
+
__TOC__
  
''clip2'' is the one from which the pixel data must be taken. In MergeChroma, this is where the Chroma will be taken from, and vice-versa for MergeLuma. It must be the same colorspace as clip1; i.e. you cannot merge from a YV12 clip into a YUY2 clip.
+
== Usage ==
 +
<div style="max-width:62em" >
 +
{{FuncDefH4|Merge}}
 +
{{FuncDef
 +
|Merge(clip ''clip1'', clip ''clip2'' [, float ''weight'' ] )
 +
}}
  
The weight defines how much influence the new clip should have. Range is 0.0 to 1.0, where 0.0 is no influence and 1.0 will completely overwrite the specified channel. The default is 0.5 for Merge and 1.0 for MergeChroma and MergeLuma. The filter will be slightly slower when a weight other than 0.0, 0.5 or 1.0 is specified.
+
Merges pixels from one videoclip into another.<br>
 +
There is an optional weighting, so a percentage between the two clips can be specified.
  
The audio, framerate and framecount are taken from the first clip.
+
:{{Par2|clip1|clip|(required)}}
 +
::The clip that has the pixels merged into (the base clip).
 +
:{{Par2|clip2|clip|(required)}}
 +
::The clip from which the pixel data is taken (the overlay clip).  
  
Nb, prior to v2.60 there was no ''weight'' argument for MergeChroma and MergeLuma: you needed to use ''ChromaWeight'' for MergeChroma() and ''LumaWeight'' for MergeLuma(). Since v2.60 you can also use the ''weight'' argument.
+
:{{Par2|weight|float|0.5}}
 +
::Defines how much influence the new clip should have. Range is 0.0&ndash;1.0.
 +
::*At 0.0, {{FuncArg|clip2}} has no influence on the output.
 +
::*At 1.0, {{FuncArg|clip2}} replaces {{FuncArg|clip1}} completely.
 +
::*Default is 0.5; output is average of {{FuncArg|clip1}} and {{FuncArg|clip2}}.
  
'''Examples:'''
+
*Clips must have the same pixel-type.
 +
*Audio, [[Clip_properties|FrameRate]] and [[Clip_properties|FrameCount]] are taken from the first clip.
  
# Will only blur the Luma channel.
 
mpeg2source("c:\apps\avisynth\main.d2v")
 
lumvid = [[Blur]](1.0)
 
MergeLuma(lumvid)
 
  
  # This will do a Spatial Smooth on the Chroma channel
+
{{FuncDefH4|MergeChroma}}
 +
{{Func2Def
 +
|MergeChroma(clip ''clip1'', clip ''clip2'' [, float ''chromaweight'' ] ) (depreciated since v2.60)
 +
|MergeChroma(clip ''clip1'', clip ''clip2'' [, float ''weight'' ] ) (*v2.60 only)
 +
}}
 +
 
 +
Merges the ''chroma'' from one videoclip into another.<br>
 +
There is an optional weighting, so a percentage between the two clips can be specified.
 +
 
 +
:{{Par2|clip1|clip|(required)}}
 +
::The clip that has the chroma pixels merged into (the base clip).
 +
:{{Par2|clip2|clip|(required)}}
 +
::The clip from which the chroma pixel data is taken (the overlay clip).
 +
 
 +
:{{Par2|chromaweight|float|1.0}}
 +
:{{Par2|weight|float|1.0}}
 +
::Defines how much influence the new clip should have. Range is 0.0&ndash;1.0.
 +
::*At 0.0, {{FuncArg|clip2}} has no influence on the output.
 +
::*At 1.0, {{FuncArg|clip2}} replaces {{FuncArg|clip1}} chroma completely.
 +
::*Default is 1.0; output chroma taken only from {{FuncArg|clip2}}.
 +
::*Alternate name ''weight'' added in AviSynth v2.60
 +
 
 +
*Clips must have the same pixel-type and be [[YUV]] only.
 +
*Audio, [[Clip_properties|FrameRate]] and [[Clip_properties|FrameCount]] are taken from the first clip.
 +
 
 +
 
 +
{{FuncDefH4|MergeLuma}}
 +
{{Func2Def
 +
|MergeLuma(clip ''clip1'', clip ''clip2'' [, float ''lumaweight'' ] ) (depreciated since v2.60)
 +
|MergeLuma(clip ''clip1'', clip ''clip2'' [, float ''weight'' ] ) (*v2.60 only)
 +
}}
 +
 
 +
Merges the ''luma'' from one videoclip into another.<br>
 +
There is an optional weighting, so a percentage between the two clips can be specified.
 +
 
 +
:{{Par2|clip1|clip|(required)}}
 +
::The clip that has the luma pixels merged into (the base clip).
 +
:{{Par2|clip2|clip|(required)}}
 +
::The clip from which the luma pixel data is taken (the overlay clip).
 +
 
 +
:{{Par2|lumaweight|float|1.0}}
 +
:{{Par2|weight|float|1.0}}
 +
::Defines how much influence the new clip should have.  Range is 0.0&ndash;1.0.
 +
::*At 0.0, {{FuncArg|clip2}} has no influence on the output.
 +
::*At 1.0, {{FuncArg|clip2}} replaces {{FuncArg|clip1}} luma completely.
 +
::*Default is 1.0; output luma taken only from {{FuncArg|clip2}}.
 +
::*Alternate name ''weight'' added in AviSynth v2.60
 +
 
 +
*Clips must have the same pixel-type and be [[YUV]] only.
 +
*Audio, [[Clip_properties|FrameRate]] and [[Clip_properties|FrameCount]] are taken from the first clip.
 +
</div>
 +
 
 +
 
 +
== Examples ==
 +
<div style="max-width:62em" >
 +
<div {{BoxWidthIndent|46|0}} >
 +
  # Blur the Luma channel.
 +
[[DGDecode/MPEG2Source|MPEG2Source]]("main.d2v")
 +
clipY = [[Blur]](1.0)
 +
MergeLuma(clipY )
 +
</div>
 +
 
 +
<div {{BoxWidthIndent|46|0}} >
 +
# Do a spatial smooth on the chroma channel
 
  # that will be mixed 50/50 with the original image.
 
  # that will be mixed 50/50 with the original image.
  mpeg2source("c:\apps\avisynth\main.d2v")
+
  MPEG2Source("main.d2v")
  chromavid = SpatialSmoother(2,3)  
+
  clipC = [[SpatialSoften]](2,3)  
  MergeChroma(chromavid,0.5)
+
  MergeChroma(clipC , 0.5)
 +
</div>
  
  # This will run a temporalsmoother and a soft spatial
+
<div {{BoxWidthIndent|46|0}} >
  # smoother on the Luma channel, and a more agressive
+
  # Run a temporal smoother and a soft spatial
  # spatial smoother on the Chroma channel.
+
  # smoother on the luma channel, and a more aggressive
 +
  # spatial smoother on the chroma channel.
 
  # The original luma channel is then added with the
 
  # The original luma channel is then added with the
 
  # smoothed version at 75%. The chroma channel is
 
  # smoothed version at 75%. The chroma channel is
 
  # fully replaced with the blurred version.
 
  # fully replaced with the blurred version.
  mpeg2source("c:\apps\avisynth\main.d2v")
+
  MPEG2Source("main.d2v")
  luma = TemporalSmoother(2,3)
+
  clipY = [[TemporalSoften]](2,3)
  luma = luma.Spatialsmoother(3,10,10)
+
  \      .SpatialSoften(3,10,10)
  chroma = Spatialsmoother(3,40,40)
+
  clipC = SpatialSoften(3,40,40)
  MergeLuma(luma,0.75)
+
  MergeLuma(clipY, 0.75)
  MergeChroma(chroma)
+
  MergeChroma(clipC)
 +
</div>
 +
 
 +
<div {{BoxWidthIndent|46|0}} >
 +
# Average two video sources.
 +
vid1 = [[AviSource]]("main.avi")
 +
vid2 = AviSource("main2.avi")
 +
Merge(vid1, vid2)
 +
</div>
 +
</div>
  
# This will average two video sources.
 
[[AviSource]]("c:\apps\avisynth\main.avi")
 
vid2 = AviSource("c:\apps\avisynth\main2.avi")
 
Merge(vid2)
 
  
'''Changelog:'''
+
== Changelog ==
 
{| border="1"
 
{| border="1"
 
|-  
 
|-  
 
| v2.60
 
| v2.60
| Added alias "Weight" for "ChromaWeight" and "LumaWeight".
+
| Added alias ''weight'' for ''chromaweight'' and ''lumaweight''.
 
|-  
 
|-  
 
| v2.56
 
| v2.56
| Added Merge.
+
| Added ''Merge''.
 
|}
 
|}
  
  
 
[[Category:Internal filters]]
 
[[Category:Internal filters]]
 +
[[Category:Layering]]
 +
[[Category:Levels_and_Chroma_filters]]

Latest revision as of 07:23, 18 September 2022

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


Contents


[edit] Usage

Merge

Merge(clip clip1, clip clip2 [, float weight ] )

Merges pixels from one videoclip into another.
There is an optional weighting, so a percentage between the two clips can be specified.

clip  clip1 = (required)
The clip that has the pixels merged into (the base clip).
clip  clip2 = (required)
The clip from which the pixel data is taken (the overlay clip).
float  weight = 0.5
Defines how much influence the new clip should have. Range is 0.0–1.0.
  • At 0.0, clip2 has no influence on the output.
  • At 1.0, clip2 replaces clip1 completely.
  • Default is 0.5; output is average of clip1 and clip2.
  • Clips must have the same pixel-type.
  • Audio, FrameRate and FrameCount are taken from the first clip.


MergeChroma

MergeChroma(clip clip1, clip clip2 [, float chromaweight ] ) (depreciated since v2.60)
MergeChroma(clip clip1, clip clip2 [, float weight ] ) (*v2.60 only)

Merges the chroma from one videoclip into another.
There is an optional weighting, so a percentage between the two clips can be specified.

clip  clip1 = (required)
The clip that has the chroma pixels merged into (the base clip).
clip  clip2 = (required)
The clip from which the chroma pixel data is taken (the overlay clip).
float  chromaweight = 1.0
float  weight = 1.0
Defines how much influence the new clip should have. Range is 0.0–1.0.
  • At 0.0, clip2 has no influence on the output.
  • At 1.0, clip2 replaces clip1 chroma completely.
  • Default is 1.0; output chroma taken only from clip2.
  • Alternate name weight added in AviSynth v2.60
  • Clips must have the same pixel-type and be YUV only.
  • Audio, FrameRate and FrameCount are taken from the first clip.


MergeLuma

MergeLuma(clip clip1, clip clip2 [, float lumaweight ] ) (depreciated since v2.60)
MergeLuma(clip clip1, clip clip2 [, float weight ] ) (*v2.60 only)

Merges the luma from one videoclip into another.
There is an optional weighting, so a percentage between the two clips can be specified.

clip  clip1 = (required)
The clip that has the luma pixels merged into (the base clip).
clip  clip2 = (required)
The clip from which the luma pixel data is taken (the overlay clip).
float  lumaweight = 1.0
float  weight = 1.0
Defines how much influence the new clip should have. Range is 0.0–1.0.
  • At 0.0, clip2 has no influence on the output.
  • At 1.0, clip2 replaces clip1 luma completely.
  • Default is 1.0; output luma taken only from clip2.
  • Alternate name weight added in AviSynth v2.60
  • Clips must have the same pixel-type and be YUV only.
  • Audio, FrameRate and FrameCount are taken from the first clip.


[edit] Examples

# Blur the Luma channel.
MPEG2Source("main.d2v")
clipY = Blur(1.0)
MergeLuma(clipY )
# Do a spatial smooth on the  chroma channel
# that will be mixed 50/50 with the original image.
MPEG2Source("main.d2v")
clipC = SpatialSoften(2,3) 
MergeChroma(clipC , 0.5)
# Run a temporal smoother and a soft spatial
# smoother on the luma channel, and a more aggressive
# spatial smoother on the chroma channel.
# The original luma channel is then added with the
# smoothed version at 75%. The chroma channel is
# fully replaced with the blurred version.
MPEG2Source("main.d2v")
clipY = TemporalSoften(2,3)
\       .SpatialSoften(3,10,10)
clipC = SpatialSoften(3,40,40)
MergeLuma(clipY, 0.75)
MergeChroma(clipC)
# Average two video sources.
vid1 = AviSource("main.avi")
vid2 = AviSource("main2.avi")
Merge(vid1, vid2)


[edit] Changelog

v2.60 Added alias weight for chromaweight and lumaweight.
v2.56 Added Merge.
Personal tools