{"course":{"slug":"motion-and-audio","title":"Motion, Sound and Music","url":"https://addaly.com/learn/motion-and-audio","level":"intermediate","track":"create"},"lesson":{"slug":"log-and-luts","title":"Log footage and what a LUT is not","url":"https://addaly.com/learn/motion-and-audio/log-and-luts","position":42,"of":72,"minutes":11,"answer":"Log encoding allocates code values roughly evenly per stop so a wide range survives a limited file, and a LUT is a fixed lookup table with a defined input domain.","keyIdea":"Log encoding allocates code values roughly evenly per stop so a wide range survives a limited file, and a LUT is a fixed lookup table with a defined input domain, which is why a conversion LUT is decoding rather than grading, and why applying a look before exposure is corrected destroys detail permanently."},"body":{"format":"markdown","text":"## Why the footage looks grey and flat\n\nFootage shot in a log mode looks washed out, desaturated and wrong straight off the camera. That is the intended appearance, and it exists for a specific reason.\n\nA scene can contain a range of brightness far wider than a display can show: a window and a shadowed interior in one frame might span fourteen stops. A Rec.709 display handles about six to eight. The sensor may capture twelve to fifteen. The question is how to store that range in the limited code values a file has.\n\nStore it linearly and you waste levels. Human vision responds roughly logarithmically to light: the difference between 1 and 2 units of light is far more visible than between 100 and 101. A linear encoding spends half its levels on the brightest stop, which is the one where the eye is least sensitive.\n\n**Log encoding** allocates code values roughly evenly per stop instead. Each doubling of light gets a similar number of levels. The result fits fourteen stops into a 10-bit file without visible steps in the shadows, and looks flat on screen because it is not meant to be viewed directly: it is a container.\n\nEvery manufacturer has one: S-Log, V-Log, C-Log, N-Log, Log-C, F-Log. They differ in curve shape and in where middle grey sits, which is why a LUT for one camera applied to another is wrong.\n\n## A LUT is a lookup table, nothing more\n\nA **1D LUT** maps each channel independently: for this input value of red, output that value. Three lists of numbers. It can change contrast and per-channel balance and cannot change hue relationships, because red's output does not depend on green.\n\nA **3D LUT** maps a colour to a colour. It is a cube (commonly 33 × 33 × 33) of sample points in RGB space, with the output colour stored at each. Values between the samples are interpolated, usually tetrahedrally. A 33-cube is 35,937 entries. Because output depends on all three inputs, a 3D LUT can rotate hues, apply film-like colour crosstalk, and do everything a 1D LUT cannot.\n\nThe `.cube` format is plain text. Open one and you will see a header and a long list of RGB triples. There is nothing mysterious inside.\n\n## The distinction people get wrong\n\nThere are two quite different uses, and calling both \"a LUT\" causes most of the confusion.\n\n**A conversion LUT** transforms from one defined encoding to another: S-Log3/S-Gamut3 to Rec.709, for instance. It is a technical operation with a correct answer, supplied by the camera manufacturer. Applying it is not grading; it is decoding.\n\n**A look LUT** is a creative grade someone baked into a table: a teal-and-orange treatment, a film emulation, a bleach bypass. It has no correct answer and it is not tied to your footage's exposure.\n\nThe fatal ordering mistake is to apply a look LUT to log footage that has not been exposure-balanced first. The LUT was built expecting a particular input; feed it footage that is a stop under and every value lands in the wrong part of the table. The result is crushed shadows or clipped highlights that cannot be recovered afterwards, because the LUT has already discarded them.\n\n**Correct order:** conversion or colour-space transform → exposure and white balance → look → final trim. Grading before the transform, or looking before exposure, produces results nobody can fix later.\n\n## Why a LUT clips and a transform does not\n\nA LUT has a defined input domain, usually 0 to 1. Values outside it (specular highlights in a float pipeline, log values above the table's top entry) are clamped or extrapolated badly. So a LUT applied to high-dynamic-range data throws away everything above its ceiling.\n\nThis is why colour-managed pipelines increasingly use parametric transforms rather than tables. **OpenColorIO** (the open-source colour management system used by Blender, Natron, Nuke and, in recent versions, Resolve) describes the chain as a set of named colour spaces and transforms rather than as baked tables. It is free, it is the standard in visual effects, and Blender ships with a usable configuration out of the box.\n\n## Practical notes that save an afternoon\n\n- **Never bake a look into your master.** Grade non-destructively and export the master in a wide space; apply looks on the way to each delivery.\n- **A monitoring LUT is not an applied LUT.** Every editor and camera lets you view through a LUT while recording the log. That is the correct arrangement: you see a normal image and keep the range.\n- **Check the LUT's expected input.** A `.cube` built for log input applied to already-converted Rec.709 footage produces a badly over-contrasted image, and it is a common mix-up because both files are just video.\n- **Exposure discipline matters more with log.** Log's shadow range is thin; underexposing log and lifting in the grade produces noise very quickly. Most manufacturers recommend exposing to the right of their nominal middle grey, sometimes by a stop or more, and their documentation says by how much.\n\n## The free path\n\n**DaVinci Resolve**'s free edition is the strongest free colour tool in existence, includes LUT support and colour management, and is what a large part of the industry actually uses. **Blender** ships with OpenColorIO and the Filmic and AgX view transforms, which are well-regarded, free, and demonstrate the parametric approach directly. **ffmpeg** can apply a `.cube` with `-vf lut3d=file.cube` for batch work. **OpenColorIO** itself is open source. Camera manufacturers publish their conversion LUTs free.\n\n## The limitation\n\nA LUT is a fixed table and it knows nothing about your shot. It cannot compensate for a colour cast, a different white balance, or a subject at a different exposure. Two shots from the same camera in the same scene will not match just because they went through the same LUT: matching shots is a separate job done by eye and by scope.\n\nAnd the popular \"film emulation\" LUTs are approximations of one property of a film stock (its colour response) with none of the grain structure, halation or highlight roll-off that make film look like film. They are a starting point some people find useful and a claim to treat carefully, because no lookup table can reproduce a photochemical process."},"check":{"question":"A colourist applies a film-look LUT to log footage that is a stop underexposed, then tries to bring the exposure up afterwards. The shadows stay crushed. Why can the damage not be undone?","options":[{"text":"The LUT has baked a contrast curve into the metadata, which overrides any subsequent exposure node in the colour pipeline.","correct":false,"tempting":"A LUT changes pixel values rather than writing metadata, and nothing about it overrides later operations."},{"text":"Log footage cannot be exposure-corrected after any transform, because the log curve is non-invertible once a 3D interpolation has been applied to it.","correct":false,"tempting":"Log curves are invertible; the loss here is clipping at the table's boundaries, not the curve's mathematics."},{"text":"The LUT mapped several distinct input values onto the same output, so the distinctions that carried the shadow detail no longer exist to be lifted.","correct":true},{"text":"Applying a look LUT converts the footage from its camera colour space into Rec.709, and Rec.709 has a narrower gamut than the camera gamut, so the shadow information has been moved outside the representable colour volume and clipped at the gamut boundary rather than at the black point.","correct":false,"tempting":"Gamut is about colour rather than tonal range, and the crush described is a tonal clip at the bottom of the table."}]},"prev":{"slug":"bit-depth-and-banding","title":"Counting the steps in a gradient","url":"https://addaly.com/learn/motion-and-audio/bit-depth-and-banding"},"next":{"slug":"frame-rate-and-cadence","title":"Frame rates, shutter and judder","url":"https://addaly.com/learn/motion-and-audio/frame-rate-and-cadence"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Log footage and what a LUT is not', in Motion, Sound and Music. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/motion-and-audio/log-and-luts (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Log footage and what a LUT is not","courseTitle":"Motion, Sound and Music","module":{"index":5,"slug":"codecs-colour-and-delivery","title":"Codecs, colour and delivery"},"answer":null,"keyIdea":"Log encoding allocates code values roughly evenly per stop so a wide range survives a limited file, and a LUT is a fixed lookup table with a defined input domain, which is why a conversion LUT is decoding rather than grading, and why applying a look before exposure is corrected destroys detail permanently.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"why-the-footage-looks-grey-and-flat","runs":[{"text":"Why the footage looks grey and flat"}]},{"t":"p","runs":[{"text":"Footage shot in a log mode looks washed out, desaturated and wrong straight off the camera. That is the intended appearance, and it exists for a specific reason."}]},{"t":"p","runs":[{"text":"A scene can contain a range of brightness far wider than a display can show: a window and a shadowed interior in one frame might span fourteen stops. A Rec.709 display handles about six to eight. The sensor may capture twelve to fifteen. The question is how to store that range in the limited code values a file has."}]},{"t":"p","runs":[{"text":"Store it linearly and you waste levels. Human vision responds roughly logarithmically to light: the difference between 1 and 2 units of light is far more visible than between 100 and 101. A linear encoding spends half its levels on the brightest stop, which is the one where the eye is least sensitive."}]},{"t":"p","runs":[{"text":"Log encoding","b":true},{"text":" allocates code values roughly evenly per stop instead. Each doubling of light gets a similar number of levels. The result fits fourteen stops into a 10-bit file without visible steps in the shadows, and looks flat on screen because it is not meant to be viewed directly: it is a container."}]},{"t":"p","runs":[{"text":"Every manufacturer has one: S-Log, V-Log, C-Log, N-Log, Log-C, F-Log. They differ in curve shape and in where middle grey sits, which is why a LUT for one camera applied to another is wrong."}]},{"t":"h2","id":"a-lut-is-a-lookup-table-nothing-more","runs":[{"text":"A LUT is a lookup table, nothing more"}]},{"t":"p","runs":[{"text":"A "},{"text":"1D LUT","b":true},{"text":" maps each channel independently: for this input value of red, output that value. Three lists of numbers. It can change contrast and per-channel balance and cannot change hue relationships, because red’s output does not depend on green."}]},{"t":"p","runs":[{"text":"A "},{"text":"3D LUT","b":true},{"text":" maps a colour to a colour. It is a cube (commonly 33 × 33 × 33) of sample points in RGB space, with the output colour stored at each. Values between the samples are interpolated, usually tetrahedrally. A 33-cube is 35,937 entries. Because output depends on all three inputs, a 3D LUT can rotate hues, apply film-like colour crosstalk, and do everything a 1D LUT cannot."}]},{"t":"p","runs":[{"text":"The "},{"text":".cube","code":true},{"text":" format is plain text. Open one and you will see a header and a long list of RGB triples. There is nothing mysterious inside."}]},{"t":"h2","id":"the-distinction-people-get-wrong","runs":[{"text":"The distinction people get wrong"}]},{"t":"p","runs":[{"text":"There are two quite different uses, and calling both “a LUT” causes most of the confusion."}]},{"t":"p","runs":[{"text":"A conversion LUT","b":true},{"text":" transforms from one defined encoding to another: S-Log3/S-Gamut3 to Rec.709, for instance. It is a technical operation with a correct answer, supplied by the camera manufacturer. Applying it is not grading; it is decoding."}]},{"t":"p","runs":[{"text":"A look LUT","b":true},{"text":" is a creative grade someone baked into a table: a teal-and-orange treatment, a film emulation, a bleach bypass. It has no correct answer and it is not tied to your footage’s exposure."}]},{"t":"p","runs":[{"text":"The fatal ordering mistake is to apply a look LUT to log footage that has not been exposure-balanced first. The LUT was built expecting a particular input; feed it footage that is a stop under and every value lands in the wrong part of the table. The result is crushed shadows or clipped highlights that cannot be recovered afterwards, because the LUT has already discarded them."}]},{"t":"p","runs":[{"text":"Correct order:","b":true},{"text":" conversion or colour-space transform → exposure and white balance → look → final trim. Grading before the transform, or looking before exposure, produces results nobody can fix later."}]},{"t":"h2","id":"why-a-lut-clips-and-a-transform-does-not","runs":[{"text":"Why a LUT clips and a transform does not"}]},{"t":"p","runs":[{"text":"A LUT has a defined input domain, usually 0 to 1. Values outside it (specular highlights in a float pipeline, log values above the table’s top entry) are clamped or extrapolated badly. So a LUT applied to high-dynamic-range data throws away everything above its ceiling."}]},{"t":"p","runs":[{"text":"This is why colour-managed pipelines increasingly use parametric transforms rather than tables. "},{"text":"OpenColorIO","b":true},{"text":" (the open-source colour management system used by Blender, Natron, Nuke and, in recent versions, Resolve) describes the chain as a set of named colour spaces and transforms rather than as baked tables. It is free, it is the standard in visual effects, and Blender ships with a usable configuration out of the box."}]},{"t":"h2","id":"practical-notes-that-save-an-afternoon","runs":[{"text":"Practical notes that save an afternoon"}]},{"t":"ul","items":[[{"text":"Never bake a look into your master.","b":true},{"text":" Grade non-destructively and export the master in a wide space; apply looks on the way to each delivery."}],[{"text":"A monitoring LUT is not an applied LUT.","b":true},{"text":" Every editor and camera lets you view through a LUT while recording the log. That is the correct arrangement: you see a normal image and keep the range."}],[{"text":"Check the LUT’s expected input.","b":true},{"text":" A "},{"text":".cube","code":true},{"text":" built for log input applied to already-converted Rec.709 footage produces a badly over-contrasted image, and it is a common mix-up because both files are just video."}],[{"text":"Exposure discipline matters more with log.","b":true},{"text":" Log’s shadow range is thin; underexposing log and lifting in the grade produces noise very quickly. Most manufacturers recommend exposing to the right of their nominal middle grey, sometimes by a stop or more, and their documentation says by how much."}]]},{"t":"h2","id":"the-free-path","runs":[{"text":"The free path"}],"role":"free"},{"t":"p","runs":[{"text":"DaVinci Resolve","b":true},{"text":"’s free edition is the strongest free colour tool in existence, includes LUT support and colour management, and is what a large part of the industry actually uses. "},{"text":"Blender","b":true},{"text":" ships with OpenColorIO and the Filmic and AgX view transforms, which are well-regarded, free, and demonstrate the parametric approach directly. "},{"text":"ffmpeg","b":true},{"text":" can apply a "},{"text":".cube","code":true},{"text":" with "},{"text":"-vf lut3d=file.cube","code":true},{"text":" for batch work. "},{"text":"OpenColorIO","b":true},{"text":" itself is open source. Camera manufacturers publish their conversion LUTs free."}]},{"t":"h2","id":"the-limitation","runs":[{"text":"The limitation"}],"role":"limit"},{"t":"p","runs":[{"text":"A LUT is a fixed table and it knows nothing about your shot. It cannot compensate for a colour cast, a different white balance, or a subject at a different exposure. Two shots from the same camera in the same scene will not match just because they went through the same LUT: matching shots is a separate job done by eye and by scope."}]},{"t":"p","runs":[{"text":"And the popular “film emulation” LUTs are approximations of one property of a film stock (its colour response) with none of the grain structure, halation or highlight roll-off that make film look like film. They are a starting point some people find useful and a claim to treat carefully, because no lookup table can reproduce a photochemical process."}]}],"check":{"question":[{"text":"A colourist applies a film-look LUT to log footage that is a stop underexposed, then tries to bring the exposure up afterwards. The shadows stay crushed. Why can the damage not be undone?"}],"options":[{"text":[{"text":"The LUT has baked a contrast curve into the metadata, which overrides any subsequent exposure node in the colour pipeline."}],"correct":false,"tempting":[{"text":"A LUT changes pixel values rather than writing metadata, and nothing about it overrides later operations."}]},{"text":[{"text":"Log footage cannot be exposure-corrected after any transform, because the log curve is non-invertible once a 3D interpolation has been applied to it."}],"correct":false,"tempting":[{"text":"Log curves are invertible; the loss here is clipping at the table’s boundaries, not the curve’s mathematics."}]},{"text":[{"text":"The LUT mapped several distinct input values onto the same output, so the distinctions that carried the shadow detail no longer exist to be lifted."}],"correct":true,"tempting":null},{"text":[{"text":"Applying a look LUT converts the footage from its camera colour space into Rec.709, and Rec.709 has a narrower gamut than the camera gamut, so the shadow information has been moved outside the representable colour volume and clipped at the gamut boundary rather than at the black point."}],"correct":false,"tempting":[{"text":"Gamut is about colour rather than tonal range, and the crush described is a tonal clip at the bottom of the table."}]}],"order":[1,3,2,0],"why":null},"prev":{"slug":"bit-depth-and-banding","title":"Counting the steps in a gradient","minutes":10},"next":{"slug":"frame-rate-and-cadence","title":"Frame rates, shutter and judder","minutes":10}}}