# Gamut Desk > TAGGING IS NOT CONVERTING. The numbers in a video file mean nothing on their own - `0.5` is a code > value, and what colour it is depends entirely on which space and which curve you say the file is > in. A conversion moves the pixels so the appearance survives. A tag moves the meaning and leaves > the pixels. Both are legitimate and they are opposites, and doing the wrong one produces a file > that is BYTE-IDENTICAL to the correct one. Five lanes over one colour pipeline, plus a free > browser-side engine doing exact triangle geometry and exact exponents. URL: https://gamut-desk.skillsafe.ai/ API: https://gamut-desk.skillsafe.ai/api.html Derived from browser-use/video-use (https://github.com/browser-use/video-use), MIT: a conversational video editor covering transcription, cutting, colour grading and overlays. Not affiliated with or endorsed by browser-use. ## The two operations ```text convert -> the pixels change so the appearance does not tag -> the pixels do not change and the appearance does ``` Doing the wrong one is the most common colour fault there is, and the file it produces is byte-identical to the right one - so every diagnosis that starts by comparing files finds nothing, and the argument that follows is always about somebody's monitor. THE FIRST QUESTION ABOUT ANY JOIN IS WHICH OF THE TWO HAPPENED, and a sheet that does not say has not been asked it. Nothing downstream can be checked until it is answered. ## Curves A relabel between two pure power curves is exactly `v^(encode/display)`. Give the number, not the adjective: Rec.709 (gamma 2.4) read as 2.2 puts a mid-grey at 0.469 instead of 0.5, about 6% dark. THERE ARE TWO ERRORS AND THEY PEAK IN DIFFERENT PLACES. The ABSOLUTE error is zero at black, zero at white and largest in the midtones - which is exactly why a chart with a black patch and a white patch passes the test a face fails. The RELATIVE error does the opposite and grows without bound toward black: the same file that is 6% dark at mid-grey is 24% dark at code 0.05. This is why the argument survives the meeting. The colourist is looking at the shadows and quoting a quarter; the client is looking at the face and quoting six percent. Same error, different numbers, both right, and nobody says which code value they mean. SAY WHICH CODE VALUE YOU MEAN. TWO THINGS ARE NOT GAMMA MISTAKES AT ALL: - SCENE-REFERRED against DISPLAY-REFERRED. Log and linear describe light that fell on a sensor; display curves describe light a screen should emit. Viewing one as the other looks washed out rather than dark, and no power function corrects it - an output transform does. CONVERTING across that boundary is not an error; it is the entire job of an output transform. - ABSOLUTE against RELATIVE. PQ says a code value IS a number of nits. Every SDR curve says it is a fraction of whatever the display manages. Joining them without a tone map is a category error. ## Gamuts are triangles Each space is three primaries in the CIE 1931 xy plane. Clip the source triangle against the destination and compare areas. ```text survives = overlap / SOURCE area how much of the grade gets through fills = overlap / DESTINATION area how much of the container is used ``` P3 into Rec.709 survives 73.7% and fills 100%. Rec.709 into Rec.2020 survives 100% and fills 52.9%. QUOTING ONE FOR THE OTHER is how a bad delivery gets signed off as fine because "it is 100%". A BIGGER CONTAINER IS NOT A BIGGER PICTURE. Rec.709 material in a Rec.2020 wrapper occupies about half of it and is still Rec.709 - nothing lost, nothing gained. What changed is the label, and everybody downstream will believe the label. AND CLIPPING DOES NOT REVERSE. A pipeline that narrows and then widens again does not recover what it dropped. ## What this page cannot do Everything here is geometry over labels you supply. THIS PAGE HAS NOT SEEN THE PICTURE. It does not know which colours are in the shot, and a gamut that clips 26% of a triangle may clip nothing anybody filmed or may ruin the one colour the brand is known by. AREA IN THE XY PLANE IS NOT PERCEPTUAL AREA. The chromaticity diagram is famously non-uniform - a percent in the greens is not a percent in the blues. A space with twice the area is not twice as good. Use the figures to compare a source with a destination, never to rank spaces. So never describe how a colour looks: `73.7% survives` is the geometry, not "washed out"; `-6.1% at mid-grey` is the shift, not "muddy". ## The sheet ```text PIPELINE deliver | rec709 display | g24 STAGES s1 | arri | logc | | camera originals s2 | p3 | g26 | convert | the grade s3 | rec709 | g24 | tag | the web master ``` A stage row is `id | space | curve | how | description`. `how` is how the material got INTO this stage from the one before it - `convert` or `tag`. The first stage needs none. A join that does not say is reported rather than assumed, because guessing it would mean guessing whether the pixels moved. ## The lanes - `plan` - picks the chain of spaces and where each transform sits - `check` - says what happened at every join and which finding to act on - `transfer` - where the brightness went, as an exponent and a code value - `gamut` - which colours do not survive, as an area - `deliver` - sorts findings into re-export, re-tag and accept, which severity does not decide ## What it does not do It converts nothing and grades nothing. Every figure is geometry over the labels you supply, so it is only as good as the pipeline you write down.