Jump to content


Photo

Look up Table (LUT)

LUT RAW REC709

  • Please log in to reply
13 replies to this topic

#1 Joe Fowler

Joe Fowler

    New

  • Basic Members
  • Pip
  • 3 posts
  • Cinematographer
  • Sheffield

Posted 29 April 2016 - 09:12 AM

new to this site and need a bit of help on the topic of luts

 

I am currently studying Filmmaking at the Northern Film school in Leeds, UK. I am writing an essay on Luts and can't seem to get my head around them. Is there anyone in this community that can explain them in the most simplistic way?

 

Here is where i am at with my research in a nutshell. A LUT takes an input value and generates a new output value, which i kind of get. So would Sonys Slog3 be classed as a LUT, and would REC 709 be classed as a LUT. if anyones does respond, please could you make the explanation as simple as possible.

 

Thanks for taking the time to Read, much appreciated.

 

 

 

 


  • 0




#2 Brian Drysdale

Brian Drysdale
  • Basic Members
  • PipPipPipPip
  • 4778 posts
  • Cinematographer

Posted 29 April 2016 - 09:18 AM

REC 709 is a standard, so it's much more comprehensive than a LUT, although perhaps a small part of it could be regarded as a LUT

 

https://en.wikipedia.org/wiki/Rec._709


  • 0

#3 Robin R Probyn

Robin R Probyn
  • Basic Members
  • PipPipPipPip
  • 1151 posts
  • Cinematographer
  • Tokyo

Posted 29 April 2016 - 09:38 AM

Slog3/Slog2  are gamma curves.. these are capture,record gamma,s ... they are not designed for display..have a look at it.. very desaturated you could never just put that out for viewing as it is..  a LUT is applied to these capture gamma,s to re map the values to display gamma curves.. the standard for TV is REC 709.. the rec actually stands for recommended so its not an absolute standard.So a REC709 LUT is often applied for viewing purposes as ultimately something very close to that will be out put at the end.. but a LUT can also be made in say Resolve and this can be applied too.. but most camera,s have a REC709 LUT already pre installed..so thats the easy option..

 

So the LUT can be applied in the grading stage.. and also very often as a monitor LUT during actual shooting.. to the camera VF and ext monitors for the director/make up/art dept/clients etc to see an image very close the intended final image.. not the SLOG image..  there are also 1D LUTs and 3D LUTs.. others on this forum can explain the difference much better than I can.. 


Edited by Robin R Probyn, 29 April 2016 - 09:42 AM.

  • 0

#4 David Mullen ASC

David Mullen ASC
  • Sustaining Members
  • 18986 posts
  • Cinematographer
  • Los Angeles

Posted 29 April 2016 - 10:12 AM

LUT's can convert one gamma curve to another, most commonly to covert log gamma (S-Log, ARRI Log-C, etc.) to a display gamma such as Rec.709 or P3 (though what gets confusing is that these are also color spaces.) So Rec.709 is not a LUT... but one might label a LUT that converts log to Rec.709 as "Rec.709" if you needed to call the LUT something.
  • 0

#5 Joe Fowler

Joe Fowler

    New

  • Basic Members
  • Pip
  • 3 posts
  • Cinematographer
  • Sheffield

Posted 29 April 2016 - 11:23 AM

Id like to thank everyone thats has posted a response, you have all helped me out so much. thank you to you all 

 

if anyone else reads this feel free to post, every little bit of information helps

 

thanks 


  • 0

#6 Maximilian Motel

Maximilian Motel
  • Basic Members
  • PipPip
  • 31 posts
  • Other
  • Berlin, Germany

Posted 04 May 2016 - 11:58 AM

A LUT basically converts the colors & contrast of footage.

 

While SLOG->Rec.709 or something like that can be used very early to get the footage to look "right", LUTs can also be used to apply a grade. You might, for example, generate a look in a program, such as Davinci Resolve (or now also Photoshop), then export that as a LUT which you then apply in Premiere / Final Cut.


  • 0

#7 Landon D. Parks

Landon D. Parks
  • Basic Members
  • PipPipPipPip
  • 1628 posts
  • Producer
  • Cincinnati, Ohio

Posted 04 May 2016 - 12:20 PM

As others have said, Look Up Tables (LUTs) are just conversion scripts from one gamma to another, they are not a standard or color space. I often view them as one might a 'saved look' in a program like Magic Bullet Looks. LUT's can also be used to color grade as well as convert color spaces. For example, if you want to make digital look like film, there are more than few LUTs you can buy that will supposedly make that happen. They do so by adjusting your gamma curve, contrast, color curves, etc. 

 

There are also display LUTs, which convert one working format to another for display. For example, the new Atomos 7" recorders will take an slog, vlog input and apply an internal LUT to it to bring it back to what it 'should' look like in a rec.709 type space. Most display LUTs do not burn any of that data in - they are just there to aid in temporary viewing of the material.

 

There are also output LUTs that will convert for different color spaces. For example, if you grade in rec.709 space but want to do a DCP, you'll need to apply a rec.709 to P3 lut. If you don't the colors will be off when projecting a 709 image in P3 space. 


Edited by Landon D. Parks, 04 May 2016 - 12:24 PM.

  • 0

#8 Ben Richardson

Ben Richardson

    New

  • Basic Members
  • Pip
  • 1 posts
  • Cinematographer

Posted 07 May 2016 - 11:55 AM

Forgive this overlong reply, but I couldn't find any way to condense it more. And I'm writing this from memory, so I'd ask more technical users than me to please forgive any errors in terminology! But I think it covers the gist of the matter.

Let's say you have an image, and you want it brighter and higher contrast. You decide to use an incredibly simple gain function that doubles the incoming values in your image. The gain function itself would be "input value x2 equals output value".

So looking at a set of incoming values: 0,1,2,3,4,5,6,7 we would get the result 0,2,4,6,8,10,12,14. You've doubled each value in the image. But you've had to do live computation actual realtime math on each incoming number.

So we make it easier for the computer by pre-calculating all possible answers and storing them as a Look-Up-Table, such as this:
0,0
1,2
2,4
3,6
4,8
5,10
6,12
7,14

Now it's really fast and easy for the computer to find the results you want, because all it has to do is "look up" the answers. It's less flexible than doing the math in realtime (what if you wanted to change the gain to x2.1 or x3? you'd need a whole new LUT), but it's way faster.

When you start talking about real-world image information, and real-world color edits, storing every value makes the table larger than we want. Even for a simple gain function as above, you'd need to store 1024 value-pairs for 10-bit precision. So we store fewer values. In the example above, we might store just half the values:
0,0
2,4
4,8
6,12

This means the computer has to do *some* calculations to interpolate the missing values. But it only has to do them once upon first loading the LUT( I think?!) and then it can "look up" from the full set of values in future. (This explains why different software can sometimes give slightly different results from the same LUT, they might be interpolating the missing values using different techniques, and thus give slightly different results.)

The example above is of a "1D" LUT. As you can see, with individual value-pairs (even with pairs for each of the RGB channels) we can only do simple things to "shape" the image, altering its overall brightness and crude color balance. We CAN affect the channels separately but and this is important the channels cannot interact. They only know what their piece of the look up table is telling them.

For real world use with color images, we need "3D" LUTs. These are far more complex, but the same principles apply. They store triplet values for all possible RGB combinations, and map each incoming triplet to an output triplet. This means you can affect color and saturation along with brightness. A crude example being:
1,1,1 might "look up" to 2,2,2
but
1,1,2 might "look up" to 1,2,3
The R and G values get a different treatment in the second pair than the first. This is how 3D LUTs are able to store sophisticated and subtle color edits. To store all possible I incoming and outgoing combinations would make for enormous LUTs, so again we only store enough for the computer to accurately work out the whole table in future.

Because of their "3D" nature, these LUTs are often referred to as "cubes", and their sizes given as 17x17 or 33x33 for example. These numbers describe the amount of precision the LUT is storing, and hence how much "interpolation" your software will have to do. To a certain degree bigger is better, and more accurate. 65x65 is a common high-quality size for use in final grading. For viewing purposes, 33x33 is plenty good enough and a common standard for monitor calibration. Most hardware devices have a limit on the "size" of LUT they can handle.

Now all the boring part is out the way, I'll speak about the actual use of LUTs.

What a LUT is effectively doing is saying "make THIS look like THAT," and they are utterly inflexible once created. They can only do the one color and brightness transform they were built to do. So the trick becomes building them specifically and accurately. And for that you need data: at least two pieces of it, and input and an output, a THIS and a THAT.

In the case of the popular so-called "film look" LUTs, someone has "profiled" an input image signal let's say Arri Log-C, a flat-looking curve designed to preserve image detail throughout the range of a photographed scene and also the characteristics of a desired output image. For the sake of argument let's say "the look of a color negative printed onto Kodak Vision stock."

If both the input and output are accurately "profiled" and the software used to compare them to "build" the LUT is good, then the resulting LUT will accurately "transform" the incoming Log-C image to the desired appearance every time.

(Whether that's what you actually need or want is another matter. What happens if you feed a higher contrast image into this LUT, say a Rec709 image instead of Log-C? Well, the LUT will simply do what it does exactly as before, but your result will be much higher contrast and color saturation than the creator of the LUT intended. If you want that, fine!)

Things do get more complicated when you take viewing environment into consideration. When building your "Log-C to Kodak Print" LUT, you also need to know what the target viewing conditions for the resulting image will be Rec709 for example so that your LUT can "target" that known viewing condition. A lot of the "print emulation" LUTs that were floating around the web a few years ago were originally built by labs to VERY precisely emulate their print-stock, right down to the dense yellow highlights and somewhat lifted and cyan blacks that the real photochemical release print would have when projected with the right kind of bulb, etc. They did this because THEY wanted to see on a video monitor EXACTLY what the print would look like when they ACTUALLY printed it on film stock. Many users today DON'T actually want that much precision: they want the film color response or "look" without the "projected through a piece of plastic" look.

To profile real film (for example), and then adjust the numbers to give a "pleasing" result without qualities you might not want takes skill, which is why well built LUTs are often proprietary and expensive. Although they are just one-stop color transforms once built, they took very talented people a lot of work to get right.

It's also important to note that you don't HAVE to profile some medium's existing color response to create the look you want. If you play around in color correction software and get a result you like, you can save that as a LUT and apply it freely to any similar incoming footage without ever having to actually worry about "where" the created look came from.

Beyond creative uses, LUTs are used in any situation where you want to make "this" image like "that" image. If you have a monitor, and you can profile it accurately enough to know what it ACTUALLY looks like, and you also know what you WANT it to look like, you can use a LUT to make it so. (Again, this is a little more complex in reality: you can't make a monitor display colors it physically can't display, so your LUT can only make the displayed image a subset of the monitor's maximum range of values. And a LUT can't magically make an unstable device more stable.)

LUTs can also be built to make one camera "look" like another if desired. But again, you're subject to the limitations of the source data: you can't magic new information where there was none, if your camera clips highlights sooner than the target camera, no LUT is bringing that back.

To end this rambling post, and answer your original question, there can be no such thing as a "Rec709" LUT, only a "something to Rec709 LUT." You could have a "Log-C to Rec709" LUT or an "S-Log to Rec709" LUT. And with monitor LUTs, they are even more specific, useful only on the actual device that was profiled for their creation: you might have a "Jim's-monitor-at-75-backlight-and-all-other-settings-at-default to Rec709" LUT whose sole purpose is to make Jim's monitor display an incoming Rec709 image accurately.

LUTs are an important part of modern color workflows because they are precise, repeatable and once created have low computational overhead. They allow us to make subtle and nuanced color corrections and store them for repeated use through all stages of the imaging pipeline. They can be creative or they can be technical. And in cases such as monitor calibration they can simply be right or wrong. It all depends on the quality of the data used to create them, and on clear understanding of the intended use.

Hope that helps!
  • 2

#9 Shawn Sagady

Shawn Sagady
  • Basic Members
  • PipPipPip
  • 164 posts
  • Cinematographer
  • Maryland

Posted 08 May 2016 - 06:48 AM

Forgive this overlong reply, but I couldn't find any way to condense it more. And I'm writing this from memory, so I'd ask more technical users than me to please forgive any errors in terminology! But I think it covers the gist of the matter.

Let's say you have an image, and you want it brighter and higher contrast. You decide to use an incredibly simple gain function that doubles the incoming values in your image. The gain function itself would be "input value x2 equals output value".

So looking at a set of incoming values: 0,1,2,3,4,5,6,7 we would get the result 0,2,4,6,8,10,12,14. You've doubled each value in the image. But you've had to do live computation actual realtime math on each incoming number.

So we make it easier for the computer by pre-calculating all possible answers and storing them as a Look-Up-Table, such as this:
0,0
1,2
2,4
3,6
4,8
5,10
6,12
7,14

Now it's really fast and easy for the computer to find the results you want, because all it has to do is "look up" the answers. It's less flexible than doing the math in realtime (what if you wanted to change the gain to x2.1 or x3? you'd need a whole new LUT), but it's way faster.

When you start talking about real-world image information, and real-world color edits, storing every value makes the table larger than we want. Even for a simple gain function as above, you'd need to store 1024 value-pairs for 10-bit precision. So we store fewer values. In the example above, we might store just half the values:
0,0
2,4
4,8
6,12

This means the computer has to do *some* calculations to interpolate the missing values. But it only has to do them once upon first loading the LUT( I think?!) and then it can "look up" from the full set of values in future. (This explains why different software can sometimes give slightly different results from the same LUT, they might be interpolating the missing values using different techniques, and thus give slightly different results.)

The example above is of a "1D" LUT. As you can see, with individual value-pairs (even with pairs for each of the RGB channels) we can only do simple things to "shape" the image, altering its overall brightness and crude color balance. We CAN affect the channels separately but and this is important the channels cannot interact. They only know what their piece of the look up table is telling them.

For real world use with color images, we need "3D" LUTs. These are far more complex, but the same principles apply. They store triplet values for all possible RGB combinations, and map each incoming triplet to an output triplet. This means you can affect color and saturation along with brightness. A crude example being:
1,1,1 might "look up" to 2,2,2
but
1,1,2 might "look up" to 1,2,3
The R and G values get a different treatment in the second pair than the first. This is how 3D LUTs are able to store sophisticated and subtle color edits. To store all possible I incoming and outgoing combinations would make for enormous LUTs, so again we only store enough for the computer to accurately work out the whole table in future.

Because of their "3D" nature, these LUTs are often referred to as "cubes", and their sizes given as 17x17 or 33x33 for example. These numbers describe the amount of precision the LUT is storing, and hence how much "interpolation" your software will have to do. To a certain degree bigger is better, and more accurate. 65x65 is a common high-quality size for use in final grading. For viewing purposes, 33x33 is plenty good enough and a common standard for monitor calibration. Most hardware devices have a limit on the "size" of LUT they can handle.

Now all the boring part is out the way, I'll speak about the actual use of LUTs.

What a LUT is effectively doing is saying "make THIS look like THAT," and they are utterly inflexible once created. They can only do the one color and brightness transform they were built to do. So the trick becomes building them specifically and accurately. And for that you need data: at least two pieces of it, and input and an output, a THIS and a THAT.

In the case of the popular so-called "film look" LUTs, someone has "profiled" an input image signal let's say Arri Log-C, a flat-looking curve designed to preserve image detail throughout the range of a photographed scene and also the characteristics of a desired output image. For the sake of argument let's say "the look of a color negative printed onto Kodak Vision stock."

If both the input and output are accurately "profiled" and the software used to compare them to "build" the LUT is good, then the resulting LUT will accurately "transform" the incoming Log-C image to the desired appearance every time.

(Whether that's what you actually need or want is another matter. What happens if you feed a higher contrast image into this LUT, say a Rec709 image instead of Log-C? Well, the LUT will simply do what it does exactly as before, but your result will be much higher contrast and color saturation than the creator of the LUT intended. If you want that, fine!)

Things do get more complicated when you take viewing environment into consideration. When building your "Log-C to Kodak Print" LUT, you also need to know what the target viewing conditions for the resulting image will be Rec709 for example so that your LUT can "target" that known viewing condition. A lot of the "print emulation" LUTs that were floating around the web a few years ago were originally built by labs to VERY precisely emulate their print-stock, right down to the dense yellow highlights and somewhat lifted and cyan blacks that the real photochemical release print would have when projected with the right kind of bulb, etc. They did this because THEY wanted to see on a video monitor EXACTLY what the print would look like when they ACTUALLY printed it on film stock. Many users today DON'T actually want that much precision: they want the film color response or "look" without the "projected through a piece of plastic" look.

To profile real film (for example), and then adjust the numbers to give a "pleasing" result without qualities you might not want takes skill, which is why well built LUTs are often proprietary and expensive. Although they are just one-stop color transforms once built, they took very talented people a lot of work to get right.

It's also important to note that you don't HAVE to profile some medium's existing color response to create the look you want. If you play around in color correction software and get a result you like, you can save that as a LUT and apply it freely to any similar incoming footage without ever having to actually worry about "where" the created look came from.

Beyond creative uses, LUTs are used in any situation where you want to make "this" image like "that" image. If you have a monitor, and you can profile it accurately enough to know what it ACTUALLY looks like, and you also know what you WANT it to look like, you can use a LUT to make it so. (Again, this is a little more complex in reality: you can't make a monitor display colors it physically can't display, so your LUT can only make the displayed image a subset of the monitor's maximum range of values. And a LUT can't magically make an unstable device more stable.)

LUTs can also be built to make one camera "look" like another if desired. But again, you're subject to the limitations of the source data: you can't magic new information where there was none, if your camera clips highlights sooner than the target camera, no LUT is bringing that back.

To end this rambling post, and answer your original question, there can be no such thing as a "Rec709" LUT, only a "something to Rec709 LUT." You could have a "Log-C to Rec709" LUT or an "S-Log to Rec709" LUT. And with monitor LUTs, they are even more specific, useful only on the actual device that was profiled for their creation: you might have a "Jim's-monitor-at-75-backlight-and-all-other-settings-at-default to Rec709" LUT whose sole purpose is to make Jim's monitor display an incoming Rec709 image accurately.

LUTs are an important part of modern color workflows because they are precise, repeatable and once created have low computational overhead. They allow us to make subtle and nuanced color corrections and store them for repeated use through all stages of the imaging pipeline. They can be creative or they can be technical. And in cases such as monitor calibration they can simply be right or wrong. It all depends on the quality of the data used to create them, and on clear understanding of the intended use.

Hope that helps!

 

Great answer Ben!


  • 0

#10 YongLee

YongLee
  • Basic Members
  • PipPip
  • 30 posts
  • Cinematographer
  • P.R.C

Posted 03 September 2016 - 05:25 AM

as david mullen said"LUT is covert log gamma (S-Log, ARRI Log-C, etc.) to a display gamma such as Rec.709 or P3". 

​my question is , when i shooting at scene , how to choose the display gamma ?  if my footage will be screened in the theater, i should choose Rec.709 or P3?  if i choose P3, the footage Is the same as the effect in the theater?


  • 0

#11 Robin R Probyn

Robin R Probyn
  • Basic Members
  • PipPipPipPip
  • 1151 posts
  • Cinematographer
  • Tokyo

Posted 03 September 2016 - 07:27 AM

Where as Slog is a very good gamma curve... never come up an S. LUT.. this will get you into trouble..


  • 0

#12 David Mullen ASC

David Mullen ASC
  • Sustaining Members
  • 18986 posts
  • Cinematographer
  • Los Angeles

Posted 03 September 2016 - 10:09 PM

The differences between Rec.709 and P3 aren't that dramatic, P3 is a slightly bigger color space so some shades are a little different, particularly reds, but I don't think it matters much which you use for on-set monitoring.  Gamma is similar.  Partly depends on if you have a P3-capable monitor, which are rare, but it's never going to be the same experience anyway, watching a small flatscreen monitor versus a projected image on a large screen.

 

It matters more that you later color-correct using a P3 projector if making a theatrical master.


  • 0

#13 YongLee

YongLee
  • Basic Members
  • PipPip
  • 30 posts
  • Cinematographer
  • P.R.C

Posted 04 September 2016 - 07:10 PM

great answer David,  thank you very much!


  • 0

#14 YongLee

YongLee
  • Basic Members
  • PipPip
  • 30 posts
  • Cinematographer
  • P.R.C

Posted 04 September 2016 - 07:27 PM

thank 

Robin R Probyn


  • 0



Zylight

Abel Cine

Tai Audio

Aerial Filmworks

The Slider

CineTape

Visual Products

rebotnix Technologies

Glidecam

Willys Widgets

Paralinx LLC

Quantum Music Works

CineLab

Ritter Battery

Pro 8mm

FJS International, LLC

Technodolly

Rig Wheels Passport

Metropolis Post

Broadcast Solutions Inc

Paralinx LLC

Abel Cine

Willys Widgets

Rig Wheels Passport

FJS International, LLC

Tai Audio

Glidecam

Broadcast Solutions Inc

Metropolis Post

Zylight

Aerial Filmworks

Quantum Music Works

Pro 8mm

CineLab

Technodolly

CineTape

Visual Products

The Slider

rebotnix Technologies

Ritter Battery