View Full Version : Friese-Green / Biocolour
pgb
23rd April 2006, 19:32
The BBC have been doing a documentary (http://www.bbc.co.uk/history/programmes/openroad/) on Claude Friese-Green and his development of his father's Biocolour process. There's a small amount of technical detail on the process here (http://www.bbc.co.uk/history/programmes/openroad/colour_process_03.shtml), but not very much.
I've been trying to emulate the process with an Avisynth script, but the results aren't very good so far. Here's the script:
#Camera part
clip=converttorgb(directshowsource("DV25p.mkv"))
#
frame1=selectevery(clip,3,0)
frame2=selectevery(clip,3,1)
frame3=selectevery(clip,3,2)
#
# Emulate a red, orange and clear filter on successive frames, then convert to greyscale
red=greyscale(rgbadjust(frame1,1,0,0,0),"Average")
orange=greyscale(rgbadjust(frame2,1,0.5,0,0),"Average")
clear=greyscale(frame3,"Average")
#
# Output frames sequentially
camera=interleave(red,orange,clear)
#
#Projector part
#
projector_frame1=selectevery(camera,2,0)
projector_frame2=selectevery(camera,2,1)
#
# Emulate red and blue-green filters on successive frames
projector_red=rgbadjust(projector_frame1,1,0,0,0)
projector_bluegreen=rgbadjust(projector_frame2,0,1,1,0)
#
# Output frames sequentially
interleave(projector_red, projector_bluegreen)
Have I used the rgbadjust functions correctly to emulate coloured filters?
Any other suggestions?
Cheers,
PGB.
MrTroy
23rd April 2006, 19:53
Sorry for my ignorance, but what is it? A way of converting greyscale ("black and white") material to colour?
pgb
23rd April 2006, 21:13
It's a mechanical method for fooling the eye into seeing colour from frames of alternating colours.
The camera records on panchromatic black and white film with sequential frames shot through a red, an orange and a clear filter.
The individual frames of the film to be projected are then stained alternately red and blue-green.
Judging by the programme last week (and the full archive available for watching online (http://www.bbc.co.uk/history/programmes/openroad/launch.shtml) via streaming) the results are quite striking.
Mug Funky
24th April 2006, 03:14
i'd drop the "average" weighting in greyscale - black and white file works closer to the default behaviour.
so this is an early colour photography method? there wouldn't be a very large gamut, but i imagine it'd look acceptable for flesh tones (or am i misunderstanding the method used?).
pgb
24th April 2006, 11:03
No, that's right. It's most successful on reds and greens, but the whole process is surprisingly effective.
I'm sure the British Film Institute (who restored the film) did a substantial amount of colour processing, particularly to reduce the flicker.
Talking of reducing the flicker, I'd like to increase the framerate. I'm running Avisynth 2.57, which I gather has nicefps() built-in? How would I increase the framerate without speeding up the film - I'd need to do it before I started processing, so just after I load the clip.
:thanks:
colinb
24th April 2006, 17:36
I've been watching this series too. It is indeed quite effective.
You tend to get quite a bit of red or green ghosting around moving objects as each alternate frame is red or green.
Wouldn't they be able to get rid of a lot of this by taking all of the red frames and interpolating the in-between frames - these would effectively be at the same instant in time as a green frame which although differently tinted should contain a lot of clues as to the position of objects at that instant.
Then repeat this for the green frames. Then when you overlay the resulting two sets of red and green frames most of the color ghosting should disappear.
Mug Funky
25th April 2006, 12:53
interesting... motion search on edgemasks would do it. that would remove the fringing quite well - do a forward and backward motion compensation (blended into 1 frame using minimum SAD) of the 2 red frames to each green frame and vice versa.
I've got a new version of the script. This one works as intended:
# Camera part
clip=converttorgb(directshowsource("source.avi"))
#
frame1=selectevery(clip,4,0)
frame2=selectevery(clip,4,1)
frame3=selectevery(clip,4,2)
frame4=selectevery(clip,4,3)
#
# As filmed - alternate between clear and red filters
clear1=greyscale(frame1)
red1=greyscale(frame2.showred)
clear2=greyscale(frame3)
red2=greyscale(frame4.showred)
#
# Projector part - tint film frames alternately red and blue-green
blueframe1=rgbadjust(clear1,0,1,1,0)
greenframe1=rgbadjust(clear1,0,1,1,0)
redframe1=rgbadjust(red1,1,0,0,0)
#
blueframe2=rgbadjust(clear2,0,1,1,0)
greenframe2=rgbadjust(clear2,0,1,1,0)
redframe2=rgbadjust(red2,1,0,0,0)
#
# Create output - merged (no flicker)
outframe1=mergergb(redframe1,blueframe1,greenframe1)
outframe2=mergergb(redframe1,blueframe2,greenframe2)
interleave(outframe1,outframe2)
#
# Create output - interleaved only (flickery but authentic)
# interleave (redframe1,blueframe2)
Obviously a selection must be made between the last two sections of code, whether to output pure interleaved (relying on persistence of vision to create an illusion of colour) or RGB merged (pseudo-colour) and interleaved frames.
The cross-RGB-merging between frames 1 and 2 is there to emulate the extreme colour fringing apparent on Friese-Green's film. This occurs naturally in the pure-interleaved version.
It's sometimes necessary, depending on your source, to alter framerates to compensate for combining frames, but that's trivial.
I hope someone finds this of interest.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.