Log in

View Full Version : How to achieve "film look" on PAL DV source


Pages : 1 2 3 4 5 6 7 [8] 9

anton_foy
21st September 2006, 21:20
I can't find boxblur 1.5, someone got a link to it?

actionman133
21st September 2006, 22:55
Direct link from Neuron2's website:

http://www.neuron2.net/boxblur/boxblur15.zip

anton_foy
22nd September 2006, 03:28
Thank you Actionman got it to work now ;)

But I cant see much difference when I add this line: Glow(radius=3, minlevels=229, opacity=100)
If I understand this correctly it it gives a more halo than "glow" and it keeps the colouration from the footage so the halo will be tinted?

Edit: btw. your old Glow script I edited so it got faster, actually I think it was Mug who suggested that I should try fastgaussblur instead of spatialsoften

Function Glow (clip Last, int "radius", int "min", int "max", int "opacity") {

radius = Default (radius, 5)
edges = (radius % 4) == 0 ? radius : radius + 4 - (radius % 4)
min = Default (min, 254)
max = Default (max, min + 1)
opacity = Default (opacity, 1.0)

Mask = ConvertToYUY2 ().Levels (min, 1, max, 0, 255, false)
Mask = Mask.AddBorders (edges, edges, edges, edges).FastGaussBlur(24).Crop (edges, edges, edges * -1, edges * -1).Levels (0, 1, 127, 0, 255, False)
White = Blankclip (Mask).Invert ("Y")

Overlay (Last, White, mask = mask, opacity = opacity, output = "YV12")

}

function FastGaussBlur(clip clp, float rx, float "ry")
{
ry = default(ry, rx)
rx = rx+1.0
ry = ry+1.0
ox = clp.width
oy = clp.height
oxs1 = int(round(ox/4.0/sqrt(rx))*4)
oys1 = int(round(oy/4.0/sqrt(ry))*4)
oxs2 = int(round(sqrt(ox*oxs1)/4.0)*4)
oys2 = int(round(sqrt(oy*oys1)/4.0)*4)
oxs1 = oxs1<16 ? 16 : oxs1
oys1 = oys1<16 ? 16 : oys1
clp.bicubicresize(oxs1,oys1)
rx>9.0||ry>9.0 ? bicubicresize(oxs2,oys2,0.5,0.25) : last
return bicubicresize(ox,oy,1,0)
}

actionman133
22nd September 2006, 08:02
You are correct, Anton. The intent of the new glow filter is to add halos to bright objects to make them appear as if they are glowing.

You should also be using a larger radius for a more authentic effect. Halos tend to be fairly large, radius 10 or 12 pixels on VCD size footage even. So a radius of 3 won't do much at all.

I remember you were mentioning before about removing sharpening artifacts... Diffusion () would probably do that better with a small radius and high opacity, but Glow wouldn't be the best filter for fixing oversharpening...

Wilbert
24th September 2006, 21:36
Could someone add this to the script page at avisynth.org? Thx!

Backwoods
25th September 2006, 20:57
Edit: btw. your old Glow script I edited so it got faster, actually I think it was Mug who suggested that I should try fastgaussblur instead of spatialsoften

Actually I think it was Didee from me using Blurx3 (mainly b.c I didn't go into my archives to find the FastGaussBlur script).

Could someone add this to the script page at avisynth.org? Thx!

Which? Diffusion, Glow or V2F?

Wilbert
25th September 2006, 21:04
Which? Diffusion, Glow or V2F?
All of them. I noticed that someone already started with it?

anton_foy
25th September 2006, 22:11
Actually I think it was Didee from me using Blurx3 (mainly b.c I didn't go into my archives to find the FastGaussBlur script).

Sorry Backwoods my memory isn't what it use to be :P
I think I remember that now that you mention it.

actionman133
25th September 2006, 23:34
I have started it Wilbert. I'll get around to finishing it when I can...

anton_foy
26th April 2007, 13:54
Does anyone have the ChanMix plugin E-male made?
I can't find it anywhere but in this thread but the link is dead and E-male is not answering my PM. Would be so great if someone could either put it in the plugins section or send to me personally:
(email) jonas.hed82@gmail.com

Thanks everyone

BlueCup
28th April 2007, 00:22
www.flmpro.com/DLLreq.zip

Chanmix and GiCoCu

You didn't look hard enough.

anton_foy
28th April 2007, 13:23
Whohoooo!

@ BlueCup

Thank you my friend, they like to hide for some reason hehe.

E-Male
28th April 2007, 14:06
I haven't been here for some time, so I din't see the requests until today.

I currently can't access the HD with my old programming stuff.
But I'll try to get the dlls and sources as soon as I got my new PC and will upload anything I could save to some webspace.


THX a lot to anyone providing mirrors.

anton_foy
28th April 2007, 17:36
Thats ok E-Male I got it now. Was a fool not knowing it was in the DLLreq.rar.

But cannot get ChanMix to work. The image just comes out black and white when testing.

Converttorgb24().ChanMix(10,10,10).Converttoyv12()

Is Chanmix exactly like in photoshop BTW.? In photoshop you can adjust RGB for each.

Like:

Red: red
green
blue
Constant

Green: red
green
blue
Constant

Blue: red
green
blue
Constant

And values between -200 to +200

E-Male
29th April 2007, 14:28
It is supposed to create greyscale output.
The 3 parameters are the weight of each color channel.

Korben
2nd May 2007, 11:41
actionman133 could you please post your curve.txt again. And beside this,the Tint function on avisynth homepage (http://avisynth.org/index.php?page=Tint) doesnt work properly.

It says:
---------------------------
VirtualDub Error
---------------------------
Avisynth open failure:
Overlay: Mask and overlay must have the same image size! (Height is not the same)
(tint.avs, line 29)
(O:\Capture\Project_107\720p.avs, line 33)

Any ideas?
BR

actionman133
4th May 2007, 16:35
Sorry Korben, I've long since deleted that curve file and I can't remember what values I used.

I had a look at the script but I can't see where it's going wrong... What are the dimensions and colourspace of your clip?

Korben
5th May 2007, 09:42
Ok.. no problem, if anybody has still the curve.txt please post it.

I dont know why, but it works now. The video is just SD-Video, 720x480. Iam almost using YUY2.

anton_foy
12th May 2007, 14:43
Recently my friend Gustaf Ullberg made another ChannelMixer plugin. It is identical to the Photoshop ChannelMixer and it supports RGB24 and RGB32 colorspaces. Hope you like it.

http://redshift.xtreem.nu/gustaf/filters/channelmixer_v1_0.zip

BlueCup
12th May 2007, 22:18
Great news, thank you.

anton_foy
18th May 2007, 15:02
When using a Photoshop curve with GiCoCu everything works fine but if I use two curves in a row like this:

GiCoCU("C:\Projekt\Curve1.amp",photoshop=true)
GiCoCU("C:\Projekt\Curve2.amp",photoshop=true)

my image gets a strong blue tint all over.
Possible bugg or Im doing something wrong?

BlueCup
19th May 2007, 08:40
Just curious, what version of Photoshop are you using?

anton_foy
19th May 2007, 11:44
@BlueCup

Im using 7.0...I know its old

BlueCup
20th May 2007, 05:51
Just making sure because I think CS1/2 (don't know about 3) save curves in a different file format.

WorBry
30th May 2007, 07:48
Sorry Korben, I've long since deleted that curve file and I can't remember what values I used

I'd be interested in that curve file also. Does anyone still have a copy?

jkwarras
24th July 2007, 11:38
I'm using the Backwoords script V2F on some DV PAL interlaced footage. It's great! Some thoughts:

1) Anyone has worked out a new version with new plugins, simpler, or with less color conversions?

2) I see in the output (it's a weeding video, outdoors, natural lights) some artifacts, like mosquito noise around edges. I guess it's due to some of the overlay, blur, masks stuff in the scripts.

3) Deinterlacing with leakkerneldeint (0) gives a progressive video and more film look feeling.

4) Grain is difficult, because adding addgrain(18,0,0) it's too much for me. Adding 10 is fine, but I see it too much. It's "over" the picture, not "in" the picture as in film. Adding it on the second step (FILM) brings more edges and it look worst. I've tried noisegenerator.dll and I get weird results, with colour changes.

5) Does someone knows if it'll be better (and quicker/simpler) to apply curves like the Panasonic DVX100 or HVX200 does? Another think is to get them and how to apply them to video.

scharfis_brain
24th July 2007, 12:02
3) use a more sophisticated deinterlacer like yadif, or mcbob/mvbob.

jkwarras
24th July 2007, 17:19
3) use a more sophisticated deinterlacer like yadif, or mcbob/mvbob.

Nice, I'll try one of these. Thanks.

Mug Funky
25th July 2007, 03:22
4) Grain is difficult, because adding addgrain(18,0,0) it's too much for me. Adding 10 is fine, but I see it too much. It's "over" the picture, not "in" the picture as in film. Adding it on the second step (FILM) brings more edges and it look worst. I've tried noisegenerator.dll and I get weird results, with colour changes.

5) Does someone knows if it'll be better (and quicker/simpler) to apply curves like the Panasonic DVX100 or HVX200 does? Another think is to get them and how to apply them to video.


film grain is tricky. negative film has much more grain in the darks than the highlights. however, most "film look" people experience is telecined film on TV. telecine machines on neg film will add their own noise to the highlights, but it's a different sort of noise. a simple luma mask could sort this out though.

applying curves to get a film look is also tricky - 1D LUTs aren't enough to reproduce some of the effects of exposed film. it doesn't take crosstalk into account (channel mixing). a 3D LUT can handle this very well though, and in fact there's a lot going on in the DI world that involves getting good 3d LUTs to simulate certain effects (bleach bypass, certain specific stocks, etc). these tend to be proprietary though, and usually made via direct measurements.

i'd love to see a 3d LUT plugin for avisynth, but it'd only be really useful in 10 bits or more (preferably float).

IanB
25th July 2007, 04:50
3d LUT, well it ain't gonna be fast, 256x256x256=16,777,216 table entries. At 3 bytes per entry give a 48Mb table. Certainly do-able with current machines, but oh what it will do to the L1 and L2 caches.

Full 10 bit is even worse, 1024x1024x1024=1,073,741,824 tables entries. At 3 words per entry gives a 6Gb table, sure you could spec an x64 machine to cope.

Compromise 10bit might just fit, 1024x256x256=67,108,864 table entries. At 1 word plus 2 bytes per entry gives a 256Mb table.

By understanding a particular table some clever tricks may be possible to drastically reduce the load, but then it's not general LUT anymore.

jkwarras
25th July 2007, 22:54
film grain is tricky. negative film has much more grain in the darks than the highlights. however, most "film look" people experience is telecined film on TV. telecine machines on neg film will add their own noise to the highlights, but it's a different sort of noise. a simple luma mask could sort this out though.

So I guess I'll have to stick with addgrain, right? Maybe a gaussian noise will have better 'cheap' results because it'll be less uniform... Maybe addgrain is already gaussian noise and I don't know it.

The luma mask for the grain is difficult? Sorry, my level of avisynth scripting is quite limited.

Pookie
26th July 2007, 01:42
Didee has a function which allows you to add more grain to the dark areas. Can't remember the name at the moment. Grainiac ? Grain Factory ?

Needs Masktools 1.5x and AddGrain plugins

function GrainFactory(clip last,int "grain1_strength",int "grain2_strength",int "grain1_sharpness",int "grain2_sharpness")
{

grain1_strength=default(grain1_strength,5)
grain2_strength=default(grain2_strength,2)
grain1_sharpness=default(grain1_sharpness,75)
grain2_sharpness=default(grain2_sharpness,75)

#grain1_strength = 7 # [ 0 - ???] strength of grain / for mid-tone areas
grain1_size = 1.15 # [0.5 - 4.0] size of grain / for mid-tone areas

#grain2_strength = 0 # [ 0 - ???] strength of grain / for dark & bright areas
grain2_size = 0.8 # [0.5 - 4.0] size of grain / for dark & bright areas

#grain1_sharpness = 75 # [ 0 - 100] very soft (0) to very sharp(100)
#grain2_sharpness = 75 # [ 0 - 100] grain definition

grain1_texture = 0 # [ 0 - 100] strength of "material texture" appearance
grain2_texture = 0 # [ 0 - 100] (in fact: 'bump' effect)

ontop_grain = 0 # [ 0 - ???] additional grain to put on top of prev. generated grain

temp_avg = 20 # [ 0 - 100] percentage of noise's temporal averaging

brightness_bias = 0.96 # [0.5 - 2.0] bias for dark|bright --> midtone fading

#-----------------------------------------------------------------------------------
o = last
ox = o.width
oy = o.height
sx1 = m4(ox/grain1_size)
sy1 = m4(oy/grain1_size)
sx1a = m4((ox+sx1)/2.0)
sy1a = m4((oy+sy1)/2.0)
sx2 = m4(ox/grain2_size)
sy2 = m4(oy/grain2_size)
sx2a = m4((ox+sx2)/2.0)
sy2a = m4((oy+sy2)/2.0)
b1 = grain1_sharpness/(-50.0) + 1.0
b2 = grain2_sharpness/(-50.0) + 1.0
b1a = b1/2.0
b2a = b2/2.0
c1 = (1.0-b1)/2.0
c2 = (1.0-b2)/2.0
c1a = c1/2.0
c2a = c2/2.0
t1a = string(grain1_texture)
t1b = string(100-grain1_texture)
t2a = string(grain2_texture)
t2b = string(100-grain2_texture)
tmpavg = temp_avg/100.0

#-----------------------------------------------------------------------------------

ADD_DIFF = "x y - 128 +"
BUMPKERNEL1 = T1a + " 0 0 0 " + T1b + " 0 0 0 0"
BUMPKERNEL2 = T2a + " 0 0 0 " + T2b + " 0 0 0 0"
CENTER2MAX_BIAS = "x 120 - abs "+string(brightness_bias)+" ^ 2.5 *"

#-----------------------------------------------------------------------------------

grainlayer1 = blankclip(o, width=sx1, height=sy1, color=$808080) .AddGrain(grain1_strength, 0, 0)

grainlayer1 = (grain1_texture==0)
\ ? grainlayer1
\ : yv12lutxy(grainlayer1,grainlayer1.DEdgeMask(0,255,0,255, BUMPKERNEL1), ADD_DIFF)

grainlayer1 = (grain1_size == 1.0) ? grainlayer1
\ : (grain1_size < 0.75) ? grainlayer1.bicubicresize(sx1a,sy1a, b1a, c1a).bicubicresize(ox,oy, b1a,c1a)
\ : grainlayer1.bicubicresize(ox,oy, b1,c1)

#-----------------------------------------------------------------------------------

grainlayer2 = blankclip(o, width=sx2, height=sy2, color=$808080) .AddGrain(grain2_strength, 0, 0)

grainlayer2 = (grain2_texture==0)
\ ? grainlayer2
\ : yv12lutxy(grainlayer2,grainlayer2.DEdgeMask(0,255,0,255, BUMPKERNEL1), ADD_DIFF)

grainlayer2 = (grain2_size == 1.0) ? grainlayer2
\ : (grain2_size < 0.75) ? grainlayer2.bicubicresize(sx2a,sy2a, b2a, c2a).bicubicresize(ox,oy, b2a,c2a)
\ : grainlayer2.bicubicresize(ox,oy, b2,c2)

#-----------------------------------------------------------------------------------

grainlayer = MaskedMerge(grainlayer1, grainlayer2, o.yv12lut(CENTER2MAX_BIAS), U=1,V=1)

grainlayer = (temp_avg==0) ? grainlayer
\ : grainlayer.mergeluma(grainlayer.temporalsoften(1,255,255,255,2), tmpavg)
grainlayer = (ontop_grain==0) ? grainlayer
\ : grainlayer.AddGrain(ontop_grain,0,0)

#-----------------------------------------------------------------------------------

result = yv12lutxy(o, grainlayer, ADD_DIFF, U=2,V=2)

return result
}
#-----------------------------------------------------------------------------------
function m4(float x) {return( x<16?16:int(round(x/4.0)*4)) }
#===================================================================================

Terranigma
26th July 2007, 02:13
Thanks Pookie, Never came across this one. Hope it's good like blockbuster (Or possibly even better knowing it's something from Didée :D).

foxyshadis
26th July 2007, 02:30
AddGrain is normal (gaussian), yes. For a very basic mask:

grain=Addgrain(100,.2,.2)
mt_merge(grain,last,last,chroma="copy")

You might get somewhat better results by pushing the chroma toward grey where the grain appears, and testing the U channel channel to test for deeper blues as well.

I have a more complex algorithm, but it needs a lot of tweaking to get different looks, and it's not really "correct" yet - just a hack, until I remember the right formula. And then yes, there's grainfactory, but since I didn't make it I don't know how to get the grain I like out of it. :p

jkwarras
27th July 2007, 00:02
Thanks a lot pookie and foxyshadis for the scripts, I'll try on my next post-processing :)

espy2
18th September 2007, 23:15
GiCoCu sounds absolutely wonderful in principle, I definitely want to use it, but it isn't working as expected. I see that someone else (WorBry) has had exactly the same problem.

I have tried everything including flat curves (1:1 linear) and various examples from webpages. Tried it on BlankClip examples giving pure R, G, B and Luma. Also tried on video and images. Even tried playing with the photoshop flag. Always the same effect - the result is just yellow tint.

Please, is there an explanation for this? I use GiCoCu 2005-06-20 from avisynth.org/warpenterprises under AviSynth v2.57 on Windows XP (SP2 etc.). For example does it only work under an older version of AviSynth?

This person had the same problem:

Sorry about that - I thought the image had uploaded. Anyway, here it is again as a jpg at half-sized resolution.

The test Gimp curve I created is nothing special, just a slight S-curve created in the RGB channel:

# GIMP Curves File
0 0 -1 -1 -1 -1 -1 -1 64 54 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 192 200 -1 -1 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 255


I also observed the same effect with a more complex Gimp curve posted by Mug Funky earlier in this thread:

# GIMP Curves File
-1 0 16 0 37 17 -1 -1 -1 -1 -1 0 -1 0 -1 0 128 127 -1 -1 -1 193 -1 221 -1 210 207 219 -1 241 -1 -1 255 235
0 0 -1 -1 -1 43 41 42 -1 53 -1 -1 -1 -1 -1 57 -1 39 -1 0 -1 0 -1 0 -1 204 211 226 -1 231 -1 -1 255 255
0 0 -1 -1 -1 -1 47 52 -1 61 -1 -1 -1 -1 -1 125 121 125 -1 -1 -1 -1 -1 -1 -1 210 215 231 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 -1 40 39 -1 0 -1 0 -1 0 -1 0 127 132 -1 147 -1 -1 -1 -1 -1 207 -1 221 222 235 -1 -1 255 255
0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 255

So I really dont know what's going wrong.

espy2
25th September 2007, 20:01
Tried some PhotoShop '.amp' files (downloaded) e.g. from http://members.chello.at/nagiller/vdub/curves.html and used them with GiCoCu in photoshop mode but the end result was no change to the original. The only time I got a change was when I hacked randomly inside the .amp file (using Notepad!).

I looked at GiCoCu source (GiCoCu.cpp) and also at Gimp source (gimpcurvestool.c) for color curves. I am confused why (in both sources) the code appears to read 6 rows yet it looks like are only 5 rows of data in a .cur file. The code says for (i = 0; i < 5; i++) Not that it's likely to explain the problem, since Gimp's color curves application does work (I tried it), but would be nice to be on more certain ground.

Anyone got any advice/directions here?

Leak
25th September 2007, 20:51
for (i = 0; i < 5; i++)
That counts i from 0 to 4; the loop terminates as soon as I becomes 5.

I.e. it reads exactly 5 rows.

np: Modeselektor - Em Ocean (Happy Birthday!)

espy2
25th September 2007, 21:30
Oh gawsh...

well I am here to solve a problem, not establish credibility...

Thanks for that quick answer.

zee944
3rd March 2008, 11:25
I'm trying to use GiCoCu for boosting up the darker parts of video a little, leaving the black level and the white peak untouched.

Comparing with Ylevels (http://forum.doom9.org/showthread.php?t=79898) and HDR AGC (http://forum.doom9.org/showthread.php?t=93571) it seems GiCoCu doesn't process only luma, thus the colours become unnatural so easily. Is there way to make GiCoCu to process only luma?

I use Gimp to draw the curve which already suggests the RGB values will be touched, and it's not good for me. Am I missing something here?

Leak
3rd March 2008, 18:17
Is there way to make GiCoCu to process only luma?
MergeChroma(GiCoCu(...),last)

That'll replace whatever chroma GiCoCu produces with that of the unfiltered clip.

np: The Orb - Assassin (Chocolate Hills Of Bohol Mix) (U.F.Orb Remixes)

BBugsBunny
3rd March 2008, 22:34
Maybe emale or someone else could update gicocu? My filter
http://members.chello.at/nagiller/vdub/index.html
does in principle the same as gicocu only for VirtualDub.
I did work pretty much lately on the filter and the code is open source.

@ zee944: what you ask for is the RGB weighted mode in my filter. It calculates Luma the RGB value and applies the curve accordingly. This way the color is preserved. No full RGB->YUV->RGB conversion is needed.

It should be no big deal to add this in gicocu.
Also I'm not sure if the latest gimp uses the same interpolation to draw the curves as in earlier versions of gim and I'm not sure if gicocu generates exactly the same curve with the given coordinates. The actual gimp version definitely does a different interpolation than photoshop.
I added a spline (+ line + gamma) mode to my filter interface and thus was doing some research in that area... My spline mode produces an identical curve to photoshop with a given .acv curve. A new final (incl. source code) will be available soon. If someone is interested to test the spline mode of my filter can send me a PM. It should then be more practical to use VirtualDub + my gradation curves filter to generate cuves than using gimp to do this.

zee944
4th March 2008, 12:38
MergeChroma(GiCoCu(...),last)

That'll replace whatever chroma GiCoCu produces with that of the unfiltered clip.


How should it work? GiCoCu wants RGB24 or RGB32 colorspace, while MergeChroma accepts YUV. Using this code:

MergeChroma(GiCoCU("Ylevels_gradationcurves138b-ben_rajzolva.amp",photoshop=true),last)

...VirtualDub says: "Avisynth open failure: MergeLuma: YUV data only (no RGB); use ConvertToYUY2 or ConvertToYV12".

@ zee944: what you ask for is the RGB weighted mode in my filter. It calculates Luma the RGB value and applies the curve accordingly.


Thanks, I've already figured out that your filter works fine in weighted mode. My problem is that I have to do it in Avisynth.

It would be so fine if I could use your filter to draw the curve in weighted RGB/YUV mode, and then feed GiCoCu with it and do exactly the same. I wouldn't even mind if Gradation.vdf wouldn't have that spline effect for smoothing the curve.

Leak
4th March 2008, 15:50
How should it work? GiCoCu wants RGB24 or RGB32 colorspace, while MergeChroma accepts YUV.
Oh. Well, I've never used GiCoCu myself... :D

But appending a ".ConvertToYUY2()" to both parameters of MergeChroma should do the trick. You can of course also append a ".ConvertToRGB32()" to the MergeChroma call itself if you really need RGB.

I don't think you'll be able to do this without colorspace conversions, at any rate...

zee944
4th March 2008, 16:24
But appending a ".ConvertToYUY2()" to both parameters of MergeChroma should do the trick.

Oh, thank you very much! It does work:

MergeChroma(GiCoCU("Ylevels_gradationcurves138b-ben_rajzolva.amp",photoshop=true).ConvertToYUY2,last.ConvertToYUY2)

If the footage (taken from a DVD) is already within the 15..235 values, I don't loose any details converting back and forth to RGB32/YUY2, do I? I'm not really aware of this colorspace-conversion thing...

Leak
4th March 2008, 18:27
If the footage (taken from a DVD) is already within the 15..235 values, I don't loose any details converting back and forth to RGB32/YUY2, do I? I'm not really aware of this colorspace-conversion thing...
I was more thinking of rounding errors, since converting between RGB and YUV involves non-integer maths with the results having to be rounded to an integer (i.e. to a byte's 0-255 range).

But it should be hardly noticeable unless you keep converting back and forth between colorspaces... :)

np: The Orb - Sleeping Tiger & The Gods Unknown (The Dream)

BBugsBunny
22nd March 2008, 15:34
Curves could be applied in YUV directly as well. But someone has to update the gicocu plugin for that to work...

BTW a new version of my gradation curves virtualdub plugin is out:
http://forum.doom9.org/showthread.php?t=133191
Now has got a nice spline editor mode as well. Can export .amp files that gicocu should be able to read.
So now it is problably a better alternative than to build the curve in in gimp.
The amp file does not include the color space and the gicocu plugin does not support all color spaces, that my plugin does support, so be careful configuring gicocu.

zee944
23rd March 2008, 11:05
Thanks BBugsBunny, I became a regular user of your Gradation filter in the past few weeks. I draw the curve with your stuff and then feed GiCoCu with the curve file.
I have one problem though. When I want to grab a point (coordinate) to move it, I have to place the mouse cursor above and left to it. Sometimes it makes a bit problematic to draw the curve.

The two extremes (between these two I have to click above and left to the coordinate accordingly):
http://i179.photobucket.com/albums/w286/zee944/th_gradation_filter_mouse_problem_2.jpg (http://i179.photobucket.com/albums/w286/zee944/gradation_filter_mouse_problem_2.jpg)http://i179.photobucket.com/albums/w286/zee944/th_gradation_filter_mouse_problem_1.jpg (http://i179.photobucket.com/albums/w286/zee944/gradation_filter_mouse_problem_1.jpg)

I'm using Windows 2000 SP4 and Virtualdub-MPEG2 1.6.9. I've never encountered similar problem with anything else. Any idea?

BBugsBunny
23rd March 2008, 12:46
zee944 thanks a lot for that bug report!
I think I know the cause of this. I think you use 125% DPI Windows metrics size, do you?
Well I did take the windows metrics into account for the routine that draws the curve, but forgot to do so for the routine that captures the mouse commands...
I can probably fix this soon and will then release a bugfix version for this.
I think the 125% DPI Windows metrics settings is used reletively seldom. Most leave them standard. For that reason this bug was undiscovered for so long.

zee944
23rd March 2008, 17:36
I think I know the cause of this. I think you use 125% DPI Windows metrics size, do you?

Right! And the cursor movement indeed looks about 25% false, too. Surely it's the problem.

Should I be able to edit an already saved curve? When I import an .amp file I drawed earlier and switch the curve type on the right side, the filter resets the curve.