Log in

View Full Version : Deflickering MPG2 video


Yo
22nd July 2005, 17:49
I'm not sure if this is the right forum to ask this question. If not, please let me know which forum to ask it to.

I have MPEG-2 video that I will burn to DVD. However, that MPEG-2 video flickers a lot. (Captured from an old VHS tape made with a poor old analog camcorder.) I am wondering about possibilities to take out the flicker.

I know of Avisynth and VirtualDub filters that reduce flicker, such as the one by Donald Graft, another from MSU, etc. but those work in programs that convert the video to AVI. Virtualdubmod can accept MPEG2 video as input, but it will not output it.

I have a few programs that work with MPEG-2 video, including Ulead Video Studio, and TMpgenc Plus. But I have not seen any filters in those programs (please correct me if I missed something) that can improve a flicker problem. Are there any programs that work with MPEG-2 video that can do this? (Video Studio has brightness and sharpness filters, and special effects, but I don't recall anything like deflicker.)

I guess it would be possible to convert the MPEG-2 video to AVI with Virtualdubmod, using deflicker filters, then import that avi into Video Studio to convert it back to MPEG-2. That would be very time-consuming, and assuming one used some kind of compression in creating the AVI (to create it uncompressed would require an incredible amount of space, which I don't have), would involve multiple recompressions into different formats, which is not good for the video. I would prefer to keep it encoded as is, as it is already in DVD-compatible format, but improve the flicker problem.

Any suggestions?

Delphin
23rd July 2005, 07:37
I'm not sure if this is the right forum to ask this question. If not, please let me know which forum to ask it to.

I have MPEG-2 video that I will burn to DVD. However, that MPEG-2 video flickers a lot. (Captured from an old VHS tape made with a poor old analog camcorder.) I am wondering about possibilities to take out the flicker.

I know of Avisynth and VirtualDub filters that reduce flicker, such as the one by Donald Graft, another from MSU, etc. but those work in programs that convert the video to AVI. Virtualdubmod can accept MPEG2 video as input, but it will not output it.

I have a few programs that work with MPEG-2 video, including Ulead Video Studio, and TMpgenc Plus. But I have not seen any filters in those programs (please correct me if I missed something) that can improve a flicker problem. Are there any programs that work with MPEG-2 video that can do this? (Video Studio has brightness and sharpness filters, and special effects, but I don't recall anything like deflicker.)

I guess it would be possible to convert the MPEG-2 video to AVI with Virtualdubmod, using deflicker filters, then import that avi into Video Studio to convert it back to MPEG-2. That would be very time-consuming, and assuming one used some kind of compression in creating the AVI (to create it uncompressed would require an incredible amount of space, which I don't have), would involve multiple recompressions into different formats, which is not good for the video. I would prefer to keep it encoded as is, as it is already in DVD-compatible format, but improve the flicker problem.

Any suggestions?


Several ways to do what you want.

I'll try to list them from the simplest to the more complex

You can use the 'Frame Server' in virtual dub as a source for Either TMPGEnc or BBMpeg.

MPEG2 support in TMPGEnc is a little less twitchy but it expires in 30days (unless you find and delete it's tracking key in the registry).

BBMpeg can provide great quality with the right settings but the user interface could be better.

Here are some hints to get VDubMod working with BBMpeg

1. Set up your VDubMod frame server with the AuxSetup program in the VirtualDub folder
(if you didn't do that when you installed the package).

2. Load your MPEG into VirtualDubMOD (let's not try any filters yet)

3. from the File menu in VirtualDubMOD, pick 'Start Frame Server'

4. The first dialog is just a link name, (just take the default which will be created from your mpeg files name)

5. The SECOND Frame Serve dialog window will ask the name you want to use for your VDR signpost file, this is a little more important. You can use any name you want, just REMEMBER WHAT IT IS AND WHICH FOLDER YOU PUT IT IN (don't give it an extension, VDUB will assign .VDR)

6. Now when you hit ok in the above [second] 'Frame Server' dialog you should see the xxxx.vdr file pop up in the folder you assigned (where obviously xxxx is the name you assigned (I just use VirtLink which creates VirtLink.vdr)

7. BBmpeg doesn't need to be installed just unzipped wherever you want to put it. After unzipping, the file you want to run is not named Bbmpeg, it’s called "AVI2MPG2_VFW.EXE"

8. In the upper left corner of the main AVI2MPG2_VFW window is a 'LOAD' button - FORGET IT! (It's there only for loading PROJECTS). The button you want is the little 'ADD' button below it. Use the 'ADD' button to add your VirtLink.vdr (or whatever you called it) to the encoding list (you will have to change the file selection to *.* to see it).

9. Now hit Start Encoding. (But wait! I want to change some settings . . .)

10. Don't worry, you can select 'Settings' from the next window if you want to change MPEG1/MPEG2 or Audio Encoding settings.

If you want to try the MPEG encoder in your old familiar video program, you can use a program called VFAPI to improve the compatibility of the VirtualDubMOD VirtLink.VDR file so that it will [hopfully] work with your other software.

I was able to use VFAPI (also available on the Doom9 software page) to create a 'fake' AVI that works absolutly perfectly in two of my video editing programs.

I have been able to encode hour long MPEG files with perfect sound and picture with VFAPI.

So here are the first three options again in brief . . .

Option 1
Your Mpeg > VirtualDubMOD > VirtLink.VDR > TMpgenc


Option 2
Your Mpeg > VirtualDubMOD > VirtLink.VDR > BBMpeg (actually AVI2MPG2_VFW.EXE)


Option 3
Your Mpeg > VirtualDubMOD > VirtLink.VDR > VFAPI.EXE > A_Fake.AVI > Your_Old_Video_Editor

VFAPI takes some time and some disk space to convert the audio (up to about 10minutes and a GIG of disk space for a very long 2 hour encode) but seems to be very stable once it gets going (with the excption that I can't open the fake AVI in media player on my system for some reason).


You can also use AVIsynth by itself or WITH VirtualDubMOD to 'FrameServe' to Qenc or HC for even higher video quality.

If you want to try this but don't want to deal with the complex AVISynth scripting language right now just try this very simple script with AVISynth and VirtualDubMOD . . .

First make sure you have AVIsynth 2.5 or later installed.

Now open NOTEPAD and create the following 2 line script . . .

AVISource("VirtLink.vdr")
converttoyv12()


Now use NOTEPAD to save the above as something like "MpegLink.AVS" (again this can be ANYTHING as long as it ends in .AVS)

Now your ready to use the legendary HC encoder
(Like BBmpeg above, HC fdoesn't need to be 'installed' just un-zipped into the folder of your choice)

Now it's a lot simpler than you may have thought . . .

Option 4
1. Load your MPG and start the VirtualDubMOD Frame-Server (VirtLink.VDR as mentioned above)

2. Load the MpegLink.AVS AVISynth DIRECTLY into the file-load dialog of the 'HC' MPEG encoder (and BINGO your ready to encode professional quality MPEG2 video).


Some quick notes . . .

The VirtLink.VDR and MpegLink.AVS need to be in the same folder to find each other (or you have to put the full path in the AVISource() line of the AVS file).

Don't try to use virtual dub filters which cause delay while 'frame serving'. Only a very few filters cause delay and will cause trouble (the most common is the 'temporal smoother' which comes with VirtualDubMOD)

Of the above options the HC encoder is the higest quality (though the other aren't too bad) HC gives quality very very very close to CCE SP (which sells for about 2000 dollars!).

Some will point out that pushing the video through the VirtualDubMOD Frame-Server slows things down and creates an unnecessary RGB conversion of the MPEG source file, but the reality is that it will still look so good that your source video is going to be pretty much the only limiting factor (and you get to use all the VirtualDubMOD goodies for pre-processing your video!)


TMPGEnc, BBMpeg(Avi2Mpg2.exe), and VFAPI will all try to encode audio (usually works for straight 29.97fps MPEG as long as they don't use AC3 audio)

HC doesn't encode audio so you have to do that separatly (in you situation you can just un-mux the audio from your current MPEG and remux it to the de-flicker processed mpeg, so don't let this stop you from useing HC because the quality is AWESOME)

I know this sound complicated, and I myself avoided messing with 'frame serving' for a long time (prefering to work with comercial software with simple minded interfaces - THAT WORKED LIKE CRAP). I'm just sorry I didn't figure this stuff out earlyer :)

Actually there are more than a half dozen ways to do what you want, but let’s stay with just these 4 for now (I'm guessing at least one of the above 4 options will work for you). :)

P.S. The options for HC can be a little daunting, so let me know if you want to try HC and I'll help you tweak it for your video.

mantis2k
24th July 2005, 00:42
How can I efficiently deflicker the whole of this movie, without losing too much quality?

I recorded a theatre screen live (roughly 24fps) using a PAL camcorder (25fps), which must explain the unfortunate flickering that varies in magnitude depending on scenes set in night/daylight.

I realise it may be impossible to deflicker this film, but thought it would be worth asking the experts at Doom 9... please advise!

Download interlaced clip... (http://www.rarekungfumovies.com/new/FromTheHighway.mpg)

Yo
24th July 2005, 19:23
Thank you very much for the detailed info, Delphin!! :)

I don't understand all this stuff yet (still somewhat of a newbie), but I'll look into it, and try some of the things you mention.

If on trying them out, if I have further questions, I'll come back here to ask you more. (It may take a few days for me to get back to that project, as I'm very busy right now.)

Thanks again for your detailed response! :thanks:

Several ways to do what you want.

I'll try to list them from the simplest to the more complex

You can use the 'Frame Server' in virtual dub as a source for Either TMPGEnc or BBMpeg.

MPEG2 support in TMPGEnc is a little less twitchy but it expires in 30days (unless you find and delete it's tracking key in the registry).

BBMpeg can provide great quality with the right settings but the user interface could be better.

Here are some hints to get VDubMod working with BBMpeg

1. Set up your VDubMod frame server with the AuxSetup program in the VirtualDub folder
(if you didn't do that when you installed the package).

2. Load your MPEG into VirtualDubMOD (let's not try any filters yet)

3. from the File menu in VirtualDubMOD, pick 'Start Frame Server'

4. The first dialog is just a link name, (just take the default which will be created from your mpeg files name)

5. The SECOND Frame Serve dialog window will ask the name you want to use for your VDR signpost file, this is a little more important. You can use any name you want, just REMEMBER WHAT IT IS AND WHICH FOLDER YOU PUT IT IN (don't give it an extension, VDUB will assign .VDR)

6. Now when you hit ok in the above [second] 'Frame Server' dialog you should see the xxxx.vdr file pop up in the folder you assigned (where obviously xxxx is the name you assigned (I just use VirtLink which creates VirtLink.vdr)

7. BBmpeg doesn't need to be installed just unzipped wherever you want to put it. After unzipping, the file you want to run is not named Bbmpeg, it’s called "AVI2MPG2_VFW.EXE"

8. In the upper left corner of the main AVI2MPG2_VFW window is a 'LOAD' button - FORGET IT! (It's there only for loading PROJECTS). The button you want is the little 'ADD' button below it. Use the 'ADD' button to add your VirtLink.vdr (or whatever you called it) to the encoding list (you will have to change the file selection to *.* to see it).

9. Now hit Start Encoding. (But wait! I want to change some settings . . .)

10. Don't worry, you can select 'Settings' from the next window if you want to change MPEG1/MPEG2 or Audio Encoding settings.

If you want to try the MPEG encoder in your old familiar video program, you can use a program called VFAPI to improve the compatibility of the VirtualDubMOD VirtLink.VDR file so that it will [hopfully] work with your other software.

I was able to use VFAPI (also available on the Doom9 software page) to create a 'fake' AVI that works absolutly perfectly in two of my video editing programs.

I have been able to encode hour long MPEG files with perfect sound and picture with VFAPI.

So here are the first three options again in brief . . .

Option 1
Your Mpeg > VirtualDubMOD > VirtLink.VDR > TMpgenc


Option 2
Your Mpeg > VirtualDubMOD > VirtLink.VDR > BBMpeg (actually AVI2MPG2_VFW.EXE)


Option 3
Your Mpeg > VirtualDubMOD > VirtLink.VDR > VFAPI.EXE > A_Fake.AVI > Your_Old_Video_Editor

VFAPI takes some time and some disk space to convert the audio (up to about 10minutes and a GIG of disk space for a very long 2 hour encode) but seems to be very stable once it gets going (with the excption that I can't open the fake AVI in media player on my system for some reason).


You can also use AVIsynth by itself or WITH VirtualDubMOD to 'FrameServe' to Qenc or HC for even higher video quality.

If you want to try this but don't want to deal with the complex AVISynth scripting language right now just try this very simple script with AVISynth and VirtualDubMOD . . .

First make sure you have AVIsynth 2.5 or later installed.

Now open NOTEPAD and create the following 2 line script . . .

AVISource("VirtLink.vdr")
converttoyv12()


Now use NOTEPAD to save the above as something like "MpegLink.AVS" (again this can be ANYTHING as long as it ends in .AVS)

Now your ready to use the legendary HC encoder
(Like BBmpeg above, HC fdoesn't need to be 'installed' just un-zipped into the folder of your choice)

Now it's a lot simpler than you may have thought . . .

Option 4
1. Load your MPG and start the VirtualDubMOD Frame-Server (VirtLink.VDR as mentioned above)

2. Load the MpegLink.AVS AVISynth DIRECTLY into the file-load dialog of the 'HC' MPEG encoder (and BINGO your ready to encode professional quality MPEG2 video).


Some quick notes . . .

The VirtLink.VDR and MpegLink.AVS need to be in the same folder to find each other (or you have to put the full path in the AVISource() line of the AVS file).

Don't try to use virtual dub filters which cause delay while 'frame serving'. Only a very few filters cause delay and will cause trouble (the most common is the 'temporal smoother' which comes with VirtualDubMOD)

Of the above options the HC encoder is the higest quality (though the other aren't too bad) HC gives quality very very very close to CCE SP (which sells for about 2000 dollars!).

Some will point out that pushing the video through the VirtualDubMOD Frame-Server slows things down and creates an unnecessary RGB conversion of the MPEG source file, but the reality is that it will still look so good that your source video is going to be pretty much the only limiting factor (and you get to use all the VirtualDubMOD goodies for pre-processing your video!)


TMPGEnc, BBMpeg(Avi2Mpg2.exe), and VFAPI will all try to encode audio (usually works for straight 29.97fps MPEG as long as they don't use AC3 audio)

HC doesn't encode audio so you have to do that separatly (in you situation you can just un-mux the audio from your current MPEG and remux it to the de-flicker processed mpeg, so don't let this stop you from useing HC because the quality is AWESOME)

I know this sound complicated, and I myself avoided messing with 'frame serving' for a long time (prefering to work with comercial software with simple minded interfaces - THAT WORKED LIKE CRAP). I'm just sorry I didn't figure this stuff out earlyer :)

Actually there are more than a half dozen ways to do what you want, but let’s stay with just these 4 for now (I'm guessing at least one of the above 4 options will work for you). :)

P.S. The options for HC can be a little daunting, so let me know if you want to try HC and I'll help you tweak it for your video.

Delphin
26th July 2005, 02:13
How can I efficiently deflicker the whole of this movie, without losing too much quality?

I recorded a theatre screen live (roughly 24fps) using a PAL camcorder (25fps), which must explain the unfortunate flickering that varies in magnitude depending on scenes set in night/daylight.

I realise it may be impossible to deflicker this film, but thought it would be worth asking the experts at Doom 9... please advise!

Download interlaced clip... (http://www.rarekungfumovies.com/new/FromTheHighway.mpg)


Yep, those are pretty nasty flicker bars, which are due to your camcorder using a faster 'shutter' during the brighter scenes and finding that sometime it was 'snapping the picture' just as the projector was advancing the frame.

One field and then the other is getting completly wiped out in a cyclic pattern.

To see what I am talking about, load the MPEG2 file into VirtualDubMPEG2 or VirtualDubMOD and then use the 'deinterlace filter' with the option 'split side by side' You will have to shrink the 'input' window down to 25% and the output down to 50% scale to make it all visible (use a 'right-click' in the window you want to rescale).

If you split the video as above you will see the one field then the other blacks completly out.

Wow! that looks bad!

But it turns out that it's not hopeless after all, because the very pattern of destruction in the video gave me an idea how to repair it.

Notice that ONLY ONE field is getting zapped at a time?

That means that either the EVEN scan lines or the ODD scan lines shoud be available at any given time, so we should be able to build a filter to detect this and JUST SELECT THE GOOD FIELD.

Here is a AVIsynth script that will fix it about 90%-95% and give you at least reasonabley watchable video by trying to always pick the best field.

I call this Bright Bob (which I just made up) it's a play on the fact that there is a common field interlace processing technique called 'smart bobing' and the fact that this field processing is 'smart' and plays on the fact that the filter uses luma 'brightness' values to make field bob decisions.

Pretty slick idea if I do say so myself.

This may look a little complicated, but that's only because I have tried to list every step.

Trust me the script is 'drop-in and go' if you know anything about AVIsynth.

In the detailed guide which follows I am assuming you have (or want to try) the HC encoder. If you would rather use CCE, Procoder etc that's fine as long as you have some experence getting them to work with AVIsynth.

First here is the FlickFix.avs AVIsynth script file . . .


# FlickFix.AVS
# "Bright Bob" DeFlicker Filter - Fixes Projection flicker by using the brighter
# field (which is the one not being zapped by the projector shutter flicker).

# Assumes a DGindex D2V file named "DGtemp.d2v" is in same folder.

# This is the 'magic' part here which splits the fields then checks the luma
# value to find out which one is least affected by flicker

MPEG2Source("DGtemp.d2v")
AssumeFrameBased
sep = SeparateFields
OddField = SelectOdd(sep)
EvenField = SelectEven(sep)
ConditionalFilter(OddField, EvenField, OddField, "(AverageLuma(OddField) - AverageLuma(EvenField))", "lessthan", "0")

# Now we resize back up to full vertical from the half vertical left by the
# field split (half vertical resolution, but absolutly no interlace problems)

Lanczos4Resize (704, 576)

# Shift a 704x576 image 64 pixels UP
# This code can shift and crop the image (just to recenter video vertically)
# to adjust you can make the two 64 values smaller and the 496 value
# larger, in 8 pixel increments, to change vertical centering.

Crop(0,64,704,496).AddBorders(0,0,0,64)

# This last line of code is the most critical to get good performance. This
# removes the residual flicker left by the field select bob'ing above.
# Scaling up the first four number will increase the time smoothing but
# also the artifacts. Lower numbers will not completly reduce the flicker
# but will not produce artifacts.

TemporalSoften (7, 30, 20, 22, 2)

#END


Cut and paste the above into NOTEPAD and save it as FlickFix.AVS


Here is the step by step guide on how to use the above filter to fix your video :

First we get and install some programs (if you don't have them already)

1. Get and install AVIsynth 2.5 or above from . . .

http://www.avisynth.org/


2. Get and install DGmpgdec package from . . .

http://neuron2.net/dgmpgdec/dgmpgdec.html


3. Get HC MPEG2 encoder from . . .

http://hank315.dyndns.org/HC_015.zip

Note AVI Synth has a real installer, the other can just be unzipped to install into a folder of your choice.

4. After installing the above thee programs, move a COPY of DGDecode.dll from your chosen DGmpgdec install folder to the AVIsynth 'plugins' folder.
(if you use Windows to copy the file make sure the name in the plugins folder is still DGDecode.dll)

The AVIsynth plugin folder is normally C:\program files\AVIsynth2.5\plugins


That's it for the install, just four simple steps.

Now lets look at the steps to actually fix your MPEG file.

1. Go to your DGmpgdec folder and launch the program DGindex.exe (DGindex is going to set up the MPEG2 file so it can be read by DGDecode.dll and imported into AVIsynth)

2. From the DGindex.exe program window load your MPEG file.

3. Set DGindex to not do anything with the pulldown flags (it's PAL so there shouldn't be any) and set it to just Demux your audio (we can mux the audio back in again later).

4. Now have DGindex 'save' your project file as DGtemp.d2v in the same folder you used for the above FlickFix.avs (it's not necessary to use the 'demux and save' option in DGindex, just the 'SAVE' option because demux and save is only refering to the VIDEO (which we don't need to be demuxed right now) the audio will be demuxed anyway, even if we just select SAVE as long as that's the option chosen on the audio menu.

5. Now we hopfully have FlickFix.avs and DFtemp.d2v in a temp folder togeather. So we can load the HC_Gui version and use it the re-encode the FlickerFixed video from the AVIsynth filter script. Just load the FlickFix.avs into the HC-GUI screen using the "load" button.

6. Now we only really have to worry about TWO options

- First, set the Encoding quality to 'best' using the small radio button at the top center of the HC-GUI window.

- Second, set the "aspect ratio" to 4:3 (from the default which is 16:9). Even though this is a wide screen movie it's letter boxed so we don't want wide screen 16:9.

As an OPTION you can also set the button to let you see every 50th frame as the video is encoded (probably a good idea just to make sure it's working)

If HC doesn't look like it's working, you may have goofed up something in the DGindex step. Try dragging and dropping the FlickerFix.AVS file into VirtualDub (this is also a way to preview any changes you make to the AVS script).

7. When HC finishes up you should have a FlickFix.m2v file which is your fixed MPEG2 video, you can preview it in any soft DVD player or in VirtualDubMOD or VirtualDubMPEG2.

8. For the last step use a MPEG2 muxer to put the audio and video streams back togeather. Here's a good one . . .

http://www.videohelp.com/~liquid217/ImagoMPEG-Muxer.zip

Here are some other good choices . . .

Muxman,

TMPGenc (the tools menu),

MPLEX (from the free DVDauthor package)

Yo
27th July 2005, 08:18
First make sure you have AVIsynth 2.5 or later installed.

Now open NOTEPAD and create the following 2 line script . . .

AVISource("VirtLink.vdr")
converttoyv12()



Hello again Delphin!

One thing I am curious about in the statement above.

Why the line converttoyv12()?

Thanks again! :)

Delphin
27th July 2005, 15:30
Hello again Delphin!

One thing I am curious about in the statement above.

Why the line converttoyv12()?

Thanks again! :)

yv12 is a 'colorspace' conversion.

A full color image can be represented in several ways . . .

RGB = separate channels for Red, Blue, Green

HSV = separate channels for Hue (color), Saturation (vivid color vs. washed out color), and Value (brightness)

And finally what is refered to as 'component' color = Y, Cr, Cb

where Y is Luma (brightness), and two color components Cr and Cb define both hue and saturation not
as independant values but as an x/y position in color space.

Check out this chart . . .


http://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/CIExy1931.png/325px-CIExy1931.png


Notice on the above chart we could plot colors as polar vectors spinning around the white center with the angle being Hue (color) and the distance from the center being equal to 'Saturation' (how vivid the color is). This 'polar' plot method of color representation is how HSV color is represented.

But, instead of 'polar' vectors, we can also represent color space values as simple rectangular X-Y coordinates (which is what Cr, Cb does).

So instead of R,G, and B, each pixel is represented by a Y brightness value and a pair of Cr and Cb values.

Actually that's just a little over simplified, because Y, Cr, Cb color can also be sub-sampled.

"Sub-sampled" in this case refers to the fact that the color, after being represented in the X-Y format I mentioned above, is only sampled at half the resolution of the "Y" Luma channel.

This is done because the structure of the human eye gives it less ability to resolve details where there are only color changes, and conversely, BETTER ability to resolve "Y channel" Luma (brightness) changes.

So it makes more sense to sub-sample the color at half the resolution (both horizontally and vertically) which is what YV12 does, and that's the format that a lot of MPEG encoders want to see because they actually use this color sub-sampling to help reduce the information that they need to encode.

The HC encoder (and also QuEnc) need a color space called yv12 which is a specially sub-sampled Y, Cr, Cb format.

It's true that the encoder could just do the conversion itself, but sometimes we can avoid an unnecessary conversion, which what HC Mpeg encoder and QuEncoder are trying to promote by being a little fussy about what input color format they will accept.

It's a matter of efficiency, because most MPEG decoders can kick out a yv12 formatted frame which can then pass right through AVIsynth and be processed without the color-space being changed (so sometimes we can avoid having to convert the color at all).

This makes the process of re-encoding run a little faster and, at least theoretically, at slightly higher quality (because we don't have any round off errors re-converting the colors).

If we only use AVIsynth in the path between the MPEG-Decoder DGDecode and the HC or QuEnc MPEG-Encoder then we don't need the final yv12 conversion, but unfortunatly, Virtual Dub kicks out RGB video frames and HC will complain about it and tell you that you need to convert to yv12 before it will encode the video.

Here are some links with information about the X-Y representation of color and the math used to convert from RGB to Y, Cr, Cb and also how the sub-sampling is done (which can be really confusing because there are a zillion formats, each with it's own cryptic abbreviation.

http://en.wikipedia.org/wiki/CIE_1931_color_space

http://www.mir.com/DMG/ycbcr.html

http://www.mir.com/DMG/chroma.html

Probably more info than you were looking for, but I couldn’t resist (that sure is a pretty chart) :) :) :)

danpos
27th July 2005, 17:12
@Delphin

:goodpost:

C ya!!