Bifrost v1.1

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m
m (minor formatting)
 
(3 intermediate revisions by one user not shown)
Line 1: Line 1:
{{FilterCat|External_filters|Restoration_filters|Rainbow & Dot Crawl Removal}}
+
{{FilterCat4|External_filters|Plugins|Restoration_filters|Rainbow & Dot Crawl Removal}}
{{Filter
+
{{Filter3
 
| {{Author/Myrsloik}}  
 
| {{Author/Myrsloik}}  
 
| v1.1
 
| v1.1
| [http://ivtc.org/avisynth/bifrost-1.1.zip Bifrost]
+
| [http://ivtc.org/avisynth/bifrost-1.1.zip bifrost-1.1.zip]
 
| Rainbow & Dot Crawl Removal
 
| Rainbow & Dot Crawl Removal
|
 
* YV12
 
 
| Closed source
 
| Closed source
 
|}}
 
|}}
 
<br>
 
<br>
'''Back to [[Bifrost|Bifrost v2.0]]'''
+
'''Back to [[Bifrost|Bifrost v2.0]] &larr;'''
 
== Description ==
 
== Description ==
:Bifrost is a temporal derainbower for avisynth that works in the YV12 colorspace and is intended for region 1 anime DVDs (hasn't been tested with anything else).
+
Bifrost is a temporal derainbower for avisynth that works in the [[YV12]] colorspace and is intended for region 1 anime DVDs (hasn't been tested with anything else). The advantage of a temporal derainbower is that it can actually recover detail and doesn't just smooth the image and cause color bleeding. The bad part is that it's only possible to process static parts of the image which is why an alternative derainbowing method can be used with the altclip parameter. The most similar filter is probably the temporal processing part of the [http://home.earthlink.net/~tacosalad/video/dotcrawl.html DotCrawl] VirtualDub filter but with considerably less checks for artifacts.<br>
:The advantage of a temporal derainbower is that it can actually recover detail and doesn't just smooth the image and cause color bleeding.  
+
:The bad part is that it's only possible to process static parts of the image which is why an alternative derainbowing method can be used with the altclip parameter.  
+
:The most similar filter is probably the temporal processing part of the [http://home.earthlink.net/~tacosalad/video/dotcrawl.html DotCrawl] VirtualDub filter but with considerably less checks for artifacts
+
==== Requirements: ====
+
:- AviSynth 2.5.8 or later
+
:- Supported color formats: [[YV12]]
+
 
<br>
 
<br>
 
+
== Requirements ==
== Syntax and Parameters ==
+
* AviSynth 2.5.8 or later
:{{Template:FuncDef|Bifrost(clip, clip "altclip", float "scenelumathresh", int "variation", bool "conservativemask", bool "interlaced")}}
+
* Supported color formats: [[YV12]]
 +
<br>
 +
== [[Script variables|Syntax and Parameters]] ==
 +
:{{Template:FuncDef|Bifrost(''clip'', ''clip'' "altclip", ''float'' "scenelumathresh", ''int'' "variation", ''bool'' "conservativemask", ''bool'' "interlaced")}}
 +
<br>
 +
::{{Par2| |clip| }}
 +
:::Input clip.
 
<br>
 
<br>
::{{Par|altclip|clip|}}
+
::{{Par2|altclip|clip| }}
 
:::Altclip is the clip to return frames from when scenelumathresh is passed. This allows rainbows to be removed even in high motion scenes with other processing.
 
:::Altclip is the clip to return frames from when scenelumathresh is passed. This allows rainbows to be removed even in high motion scenes with other processing.
 
:::Returns the first clip if none is specified.
 
:::Returns the first clip if none is specified.
 
<br>
 
<br>
::{{Par|scenelumathresh|float|3.0}}
+
::{{Par2|scenelumathresh|float|3.0}}
 
:::Scenelumathresh is how much every pixel in the frame/field may change on average and still be processed.
 
:::Scenelumathresh is how much every pixel in the frame/field may change on average and still be processed.
 
<br>
 
<br>
::{{Par|variation|int|5}}
+
::{{Par2|variation|int|5}}
 
:::Variation determines how much the chroma must change for it to be considered a rainbow. Increasing it decreases false detection in some cases.
 
:::Variation determines how much the chroma must change for it to be considered a rainbow. Increasing it decreases false detection in some cases.
 
<br>
 
<br>
::{{Par|conservativemask|bool|false}}
+
::{{Par2|conservativemask|bool|false}}
 
:::Conservativemask determines if the area around pixels that are considered rainbows also are processed. Can reduce miscoloring a little when there's both movement and rainbows.
 
:::Conservativemask determines if the area around pixels that are considered rainbows also are processed. Can reduce miscoloring a little when there's both movement and rainbows.
 
<br>
 
<br>
::{{Par|interlaced|bool|true}}
+
::{{Par2|interlaced|bool|true}}
 
:::Interlaced changes between field based and frame based decisions for scenelumathresh and is equivalent to using [[SeparateFields]] and [[Weave]].
 
:::Interlaced changes between field based and frame based decisions for scenelumathresh and is equivalent to using [[SeparateFields]] and [[Weave]].
 
<br>
 
<br>
  
 
== Rainbow Types ==
 
== Rainbow Types ==
:When dealing with telecined material you first have to determine if the rainbows were added before or after it was telecined.
+
When dealing with telecined material you first have to determine if the rainbows were added before or after it was telecined. To do this use [[SeparateFields]]().[[SelectOdd]]() on the source. Find a frame with lots of rainbowing and see if they change every frame or if there's a duplicate every 5 frames. If you find duplicates it's type 2 rainbows and you have to perform perfect IVTC in [http://code.google.com/p/yatta-ivtc/ YATTA] and force the right pattern over the entire source clip and then finally use "Decimation by pattern" in the project to finish it. If you find no duplicates (type 1) the process is much simpler and you just put <tt>Bifrost()</tt> right after the source
:To do this use SeparateFields().SelectOdd() on the source. Find a frame with lots of rainbowing and see if they change every frame or if there's a duplicate every 5 frames.  
+
:If you find duplicates it's type 2 rainbows and you have to perform perfect IVTC in YATTA and force the right pattern over the entire source clip and then finally use "Decimation by pattern" in the project to finish it.  
+
:If you find no duplicates (type 1) the process is much simpler and you just put Bifrost() right after the source
+
 
<br>
 
<br>
 
====Type 1:====
 
====Type 1:====
Line 71: Line 66:
 
<br>
 
<br>
 
== Changelog ==
 
== Changelog ==
  Version 1.1
+
Version     Date            Developer      Changes<br>
       - Corrected several bad assumptions about pitch and no longer requests frames out of range which makes it compatible with avisynth 2.5.7.
+
[http://ivtc.org/avisynth/bifrost-1.1.zip v1.1]       2007/03/04      Myrsoik        - Corrected several bad assumptions about pitch and no longer requests  
      - Uses the whole image and not just the upper half to determine if there is too much motion, this reduces artifacts greatly in certain clips but the  
+
                                                frames out of range which makes it compatible with avisynth 2.5.7.
        scenelumathresh argument now has to be twice as big as in previous versions for the same effect.
+
                                              - Uses the whole image and not just the upper half to determine if there
      - Processes the image borders properly instead of just ignoring them.
+
                                                is too much motion, this reduces artifacts greatly in certain clips but  
      - Can look two frames in either direction instead of just one frame in both. This makes it possible to remove rainbows in frames right before and after scenechanges.
+
                                                the scenelumathresh argument now has to be twice as big as in previous  
 
+
                                                versions for the same effect.
 +
                                              - Processes the image borders properly instead of just ignoring them.
 +
                                              - Can look two frames in either direction instead of just one frame in both.  
 +
                                                This makes it possible to remove rainbows in frames right before and after  
 +
                                                scenechanges.
 +
<br>
 +
==External Links ==
 +
*[http://forum.doom9.org/showthread.php?t=74364 Doom9 Forum] - Original post by Myrsloik.
 +
*[http://forum.doom9.org/showthread.php?t=74397 Doom9 Forum] - Discussion about Bifrost v0.9.
 
<br>
 
<br>
== Links ==
 
:[http://forum.doom9.org/showthread.php?t=74364 Doom9 Forum] - Original post by Myrsloik.
 
:[http://forum.doom9.org/showthread.php?t=74397 Doom9 Forum] - Discussion about Bifrost v0.9.
 
 
<br>
 
<br>
'''Back to [[Bifrost|Bifrost v2.0]]'''
+
'''Back to [[Bifrost|Bifrost v2.0]] &larr;'''

Latest revision as of 19:02, 20 September 2014

Abstract
Author Myrsloik
Version v1.1
Download bifrost-1.1.zip
Category Rainbow & Dot Crawl Removal
License Closed source
Discussion


Back to Bifrost v2.0

Contents

[edit] Description

Bifrost is a temporal derainbower for avisynth that works in the YV12 colorspace and is intended for region 1 anime DVDs (hasn't been tested with anything else). The advantage of a temporal derainbower is that it can actually recover detail and doesn't just smooth the image and cause color bleeding. The bad part is that it's only possible to process static parts of the image which is why an alternative derainbowing method can be used with the altclip parameter. The most similar filter is probably the temporal processing part of the DotCrawl VirtualDub filter but with considerably less checks for artifacts.

[edit] Requirements

  • AviSynth 2.5.8 or later
  • Supported color formats: YV12


[edit] Syntax and Parameters

Bifrost(clip, clip "altclip", float "scenelumathresh", int "variation", bool "conservativemask", bool "interlaced")


clip   =
Input clip.


clip  altclip =
Altclip is the clip to return frames from when scenelumathresh is passed. This allows rainbows to be removed even in high motion scenes with other processing.
Returns the first clip if none is specified.


float  scenelumathresh = 3.0
Scenelumathresh is how much every pixel in the frame/field may change on average and still be processed.


int  variation = 5
Variation determines how much the chroma must change for it to be considered a rainbow. Increasing it decreases false detection in some cases.


bool  conservativemask = false
Conservativemask determines if the area around pixels that are considered rainbows also are processed. Can reduce miscoloring a little when there's both movement and rainbows.


bool  interlaced = true
Interlaced changes between field based and frame based decisions for scenelumathresh and is equivalent to using SeparateFields and Weave.


[edit] Rainbow Types

When dealing with telecined material you first have to determine if the rainbows were added before or after it was telecined. To do this use SeparateFields().SelectOdd() on the source. Find a frame with lots of rainbowing and see if they change every frame or if there's a duplicate every 5 frames. If you find duplicates it's type 2 rainbows and you have to perform perfect IVTC in YATTA and force the right pattern over the entire source clip and then finally use "Decimation by pattern" in the project to finish it. If you find no duplicates (type 1) the process is much simpler and you just put Bifrost() right after the source

[edit] Type 1:

Mpeg2source("fruits_basket_r1.d2v")
Bifrost()
Telecide(order=1)
Decimate()
[edit] Type 1 using altclip and SSIQ:
Mpeg2source("gsc_r1.d2v")
Bifrost(scenelumathresh=1.5,altclip=SSIQ(11,100,true),interlaced=true)
Telecide(order=1)
Decimate()


[edit] Type 2:

Using Bifrost multiple times on type 2 rainbows can improve the results.

Mpeg2source("trigun_r1.d2v")
Telecide(order=1,ovr="trigun.tel.txt")
Decimate(ovr="trigun.dec.txt")
Bifrost(interlaced=false) 
[edit] Type 2 using altclip and SSIQ:
Mpeg2source("bgc_r1.d2v")
Telecide(order=1,ovr="bgc.tel.txt")
Decimate(ovr="bgc.dec.txt")
Bifrost(scenelumathresh=2,altclip=SSIQ(11,300,false),interlaced=false)


[edit] Changelog

Version      Date            Developer       Changes
v1.1 2007/03/04 Myrsoik - Corrected several bad assumptions about pitch and no longer requests frames out of range which makes it compatible with avisynth 2.5.7. - Uses the whole image and not just the upper half to determine if there is too much motion, this reduces artifacts greatly in certain clips but the scenelumathresh argument now has to be twice as big as in previous versions for the same effect. - Processes the image borders properly instead of just ignoring them. - Can look two frames in either direction instead of just one frame in both. This makes it possible to remove rainbows in frames right before and after scenechanges.


[edit] External Links



Back to Bifrost v2.0

Personal tools