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.
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.
Using Bifrost multiple times on type 2 rainbows can improve the results.
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:
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)
Bifrost(clip, clip altclip (Returns the first clip if none is specified, has to be yv12), float scenelumathresh (Default 3.0), int variation (Default 5), bool conservativemask (Default false), bool interlaced (Default true))
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.
Scenelumathresh is how much every pixel in the frame/field may change on average and still be processed.
Variation determines how much the chroma must change for it to be considered a rainbow. Increasing it decreases false detection in some cases.
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.
Interlaced changes between field based and frame based decisions for scenelumathresh and is equivalent to using separatefields and weave.
Bifrost was created by Fredrik Mellbin. You can find my avisynth related things at ivtc.org and if you want to contact me I can be found in the doom9 forums and in #darkhold on irc.chatsociety.net. The source will probably never be released since it contains nothing of real interest. Only simple chroma averaging and a few thresholds.