Bifrost v1.1

From Avisynth wiki
Jump to: navigation, search
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

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.

Requirements

  • AviSynth 2.5.8 or later
  • Supported color formats: YV12


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.


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

Type 1:

Mpeg2source("fruits_basket_r1.d2v")
Bifrost()
Telecide(order=1)
Decimate()
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()


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) 
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)


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.


External Links



Back to Bifrost v2.0

Personal tools