What did the camera capture?
Explore color filters, CMOS and CCD readout, debayering, and the choices baked into recording.
Open camera acquisitionExplore how cameras capture color, how video stores it, and what changes in an edit. Follow the four sections from capture to delivery, or open a lesson to explore one attribute.
INTRODUCTION
A camera measures light. Processing builds an image, editing changes it, and an output transform prepares it for the destination. This lab follows that workflow and lets you isolate the choices along the way.
Explore color filters, CMOS and CCD readout, debayering, and the choices baked into recording.
Open camera acquisitionExplore working spaces, gamut, transfer functions, transforms, chroma sampling and recording precision.
Open working colorConnect the grade to the output transform, master and delivery copy. Check what the exported file actually contains.
Open output and deliveryEach image lesson isolates its own attribute. Start with its suggested test image, change one control, then compare source on the left with output on the right. Use the numbers and diagrams when your display cannot reveal the difference.
Try the shutter-to-delivery walkthrough or look up the vocabulary.
01 / GAMUT
BIT DEPTH COMPARISON
All three ramps begin with the same smooth gray signal. The middle ramp rounds it to the selected bit depth. The bottom adds a tiny amount of noise before rounding.
Broad vertical strips in the middle ramp are values that have been rounded to the same number. With dither, neighboring pixels can round to different values, making the boundary less coherent. The missing precision becomes less visible, but it has not been recovered.
This neutral sRGB ramp isolates bit depth. Gamut, chroma, transfer and the main dither checkbox do not affect these three rows. These ramp buffers are still sRGB / 8-bit. Contrast stretching magnifies the recording steps and the dither noise together.
LIGHT → FILTER → MEASUREMENT → RGB
A photosite produces one signal from the light that passes through its filter. It does not measure three independent RGB values. In this ideal model, an R filter passes only the red channel. Change the light or switch the filter and watch the one measurement.
One scalar measurement. The other two channels are unknown at this site.
Try it: choose Red light, then switch R → G → B filters. Next choose Mixed light, keep the R filter, and change only green or blue. Why does the R measurement stay fixed?
These are normalized linear-light channel levels, not three measured luminances. Real filters have broad, overlapping spectral responses; this ideal RGB model isolates sampling. It does not simulate wavelength spectra or a sensor ADC.
TWO WAYS TO READ THE SENSOR
Both turn light into an electrical signal. Compare where that signal is read. Bayer is the color-filter pattern; either sensor design can use it.
Read near each site, then send the signals down column paths.
Move the collected charge through registers to a shared reader.
Same color task: each Bayer site still supplies one filtered measurement. Both need debayering to make full RGB pixels.
Different question: rolling vs. global shutter describes when rows collect light. CMOS can use either; reading rows in sequence does not by itself mean rolling shutter.
CMOS means complementary metal-oxide-semiconductor. In a typical active-pixel sensor, local circuitry converts collected charge to an analog voltage. Selected pixel voltages are read through column circuits; this example uses parallel column ADCs to digitize them.
CCD means charge-coupled device. Clocked registers transfer charge to an output node for charge-to-voltage conversion, followed by an ADC. This diagram uses one shared output; real CCDs can have multiple outputs. The final step groups the repeated reads together.
Orange circles represent charge packets, not individual electrons. Circle size indicates the relative signal level. Exposure and ideal values are held fixed; the diagram does not simulate noise, ADC rounding, physical timing or speed. Neither architecture guarantees better color or image quality.
References: Hamamatsu: CCD and CMOS architectures, CMOS column readout, Exposure and readout timing, AMD: CMOS/CCD color sampling.
The filter changes with position. A Bayer tile repeats two G filters, one R and one B. Click Capture to retain only each site's filtered channel. The colored mosaic identifies the filter; the recording itself contains one number per site.
Why twice as much green? Vision is more sensitive to fine brightness detail than fine color detail, and green contributes strongly to perceived brightness. Bayer gives green more sampling positions. These percentages count sites, not captured light or output RGB channels.
Select a photosite below. Its own filter channel is retained exactly. Choose Output R, G or B to see which neighbors supply that channel. Click Debayer to assemble those estimates into the complete image, then compare nearest and bilinear in the controls.
Each square is one photosite. Color identifies its filter; the number is its linear measurement. The white outline selects a site. Orange outlines mark the measured sites used for the chosen output channel. Click a square or use arrow keys.
SELECTED PHOTOSITE
—Try it: select an R site, then Output R and Output G. One uses the site's own measurement; the other needs neighbors. At a fine colored edge, compare the estimate with the ideal reference RGB listed below it.
Debayering builds RGB at every output position. It does not turn neighboring measurements into three independent measurements at one site. Fine patterns can produce false color or moiré; a full-size output raster alone does not guarantee resolved detail.
Try it: choose Resolution chart, capture and debayer. Compare nearest with bilinear and change the sensor raster size. Watch fine lines and colored edges.
Bayer is not 4:2:0. Bayer samples filtered light before RGB exists. Codec chroma subsampling operates on the reconstructed image later.
Further reading: RED 101: The Bayer Sensor Strategy. This lab uses ideal filters and simple reconstruction; production demosaicing is more sophisticated.
The full comparison appears after debayering: source left, output right, at equal sensor resolution. The independent single-site sliders above do not alter this captured test image. This model excludes sensor noise, optics, white balance and an optical low-pass filter.
Choose 1280 × 720 for responsiveness or 1920 × 1080 for more detail. Fit resizes the preview; 100% uses one image pixel per CSS pixel. Bayer intentionally samples a smaller virtual sensor raster.
COLOR SPACE TRANSFORM
—Decode the input transfer function to recover linear RGB.
—Express that color with a common colorimetric reference.
—Convert to destination linear RGB. Map out-of-gamut values if necessary.
—Encode the output transfer function. A correct display decodes it again.
Values above describe the pixel you click in the image. Triples are R / G / B, except the XYZ reference. These are normalized floating-point values before recording quantization.
Change the numbers using the known input and output definitions. Correct viewing preserves colors that fit the destination, apart from any deliberate rendering or gamut mapping.
Keep the numbers and tell the software what they mean. Correctly assigning a missing input tag can fix interpretation. Incorrectly assigning output characteristics to input values produces the “Assign output” error shown here.
The photograph is synthetically encoded from an sRGB image for this experiment. It is not original camera log footage. Illustrative log is log₂(1 + 63L) / 6, with inverse (2⁶ⱽ − 1) / 63. This is a reversible SDR teaching encoding with no manufacturer look, highlight roll-off or HDR tone mapping.
GAMUT MAPPING
SELECTED COLOR
Outside destination
Click the image or move the probe. Rings are source chromaticities; filled dots are mapped colors. The connecting line shows this color’s journey.
Camera and working gamuts can use virtual primaries, including negative y coordinates. Their triangles describe a numerical encoding, not the sensor’s spectral response or a display’s capabilities. Some synthetic RGB combinations do not correspond to physical colors.
xy describes chromaticity, not brightness. Equal distances here are not equal perceptual differences. The axes expand to fit the selected primaries.
SIGNAL STRUCTURE
CAPTURE, POST & DELIVERY
A camera turns light into numbers. Those numbers are processed, recorded, edited, and turned back into light on a screen. Each stage makes choices about color, detail and file size. A typical processed-video path is sensor → camera processing → recording → editing → delivery. RAW recording can defer debayering and some image processing until post. The exact processing order and what is baked in vary by camera and recording mode.
Set the light level, click the shutter, then build, record, edit and deliver that same frame. The previews show what is available at each stage. The captured frame stays fixed until you start again.
Source · light before capture
Debayer the retained measurements.
sRGB · SDR screen preview
A codec encodes pictures; a container packages video, audio and metadata. For example, H.264 can be packaged in MP4.
This still-frame activity calculates ideal Bayer sampling, bilinear reconstruction, full-range RGB signal quantization, and a linear-light edit. It uses sRGB encoding for a reversible teaching workflow. It does not encode a video file, model Y′CbCr subsampling, simulate camera color calibration or apply a cinema/HDR output renderer. The video-specific choices are explained below.
The sensor collects light. Small light-sensitive sites measure the image, and the camera converts those measurements into numbers.
Exposure and optics determine what reaches the sensor. A Bayer array measures one filtered signal per photosite; the analog-to-digital converter turns it into numbers. Sensor readout precision, such as 12 or 14 bits per sample, is separate from the eventual video’s bit depth.
Explore Bayer captureThe camera builds a usable color picture from the sensor measurements. Some choices become part of the recording; others can be left for editing.
Debayering estimates full RGB pixels. Camera processing can apply black-level and defect correction, white balance, noise reduction, a camera-to-output color transform, sharpening and a rendering look. Processed video bakes in many choices. RAW often retains more choices for post, but can still include preprocessing and compression.
Recording means choosing both what the picture’s numbers mean and how to store them in a file.
For processed video, primaries and a transfer function define the RGB values. Video commonly stores Y′CbCr with a specified matrix, range, chroma sampling and bit depth. The codec compresses the image sequence; a container packages video, audio, timing and metadata into a file.
Explore recording precisionEditing software must read the recording correctly before you change it. A common working color space helps footage from different cameras fit into one project.
Decode the codec and correctly identify the source color space. Develop RAW where needed. An input transform brings sources into the working space for grading and effects. Proxies or an intermediate codec can improve playback. Relink to the intended full-quality media for final rendering.
Explore color transformsMake a version that the final screen or service can play and display as intended. Keep a high-quality master for future exports.
The output transform renders the working image for the target gamut and light range. Export the required codec, profile, precision and container with correct color tags. Check the actual exported file in the intended playback path. Keep a high-quality master for later versions.
Apple ProRes RAW: sensor-to-post workflow · Apple ProRes: intra-frame coding and variants · Sony: Intra and long-GOP camera modes · MDN: media containers · Adobe: input, working and output color management · ACEScct specification · ACEScg specification · DaVinci Wide Gamut / Intermediate specification · Sony: gamma and color mode · ITU-T H.264
CAMERA & SENSOR ACQUISITION
Start with the light reaching the sensor, then follow the measurements into a camera file. RAW can leave debayering and some image processing for post; processed video bakes in more of those choices.
The sensor collects light. Small light-sensitive sites measure the image, and the camera converts those measurements into numbers.
Exposure and optics determine what reaches the sensor. A Bayer array measures one filtered signal per photosite; the analog-to-digital converter turns it into numbers. Sensor readout precision, such as 12 or 14 bits per sample, is separate from the eventual video’s bit depth.
Explore Bayer captureThe camera builds a usable color picture from the sensor measurements. Some choices become part of the recording; others can be left for editing.
Debayering estimates full RGB pixels. Camera processing can apply black-level and defect correction, white balance, noise reduction, a camera-to-output color transform, sharpening and a rendering look. Processed video bakes in many choices. RAW often retains more choices for post, but can still include preprocessing and compression.
Recording means choosing both what the picture’s numbers mean and how to store them in a file.
For processed video, primaries and a transfer function define the RGB values. Video commonly stores Y′CbCr with a specified matrix, range, chroma sampling and bit depth. The codec compresses the image sequence; a container packages video, audio, timing and metadata into a file.
Explore recording precisionExplore Bayer, CMOS and CCD · Compare recording and codec choices
CAMERA & SENSOR ACQUISITION
Recording settings determine how much information is retained and how much work it takes to decode. Compare acquisition, intermediate and delivery choices, then inspect how predicted frames depend on one another.
TEMPORAL COMPRESSION
Some codecs store each frame independently. Others save space by predicting from nearby frames and recording information needed to correct that prediction. To show one frame, the player may need to decode others first.
A group of pictures (GOP) organizes a sequence of coded pictures. An I-picture uses intra-picture coding. P-pictures predict from reference pictures; B-pictures can use references before and after them in display order. Prediction still needs coded information to reconstruct the image, including residuals. Intra coding can also be lossy.
Click a frame. Green is selected; orange marks other pictures required to reconstruct it.
This simplified GOP uses non-reference B-pictures. Real encoders can use other reference structures. An I-picture is not automatically a clean random-access boundary; headers and codec rules also matter, including H.264 IDR pictures.
Camera recording balances quality with card space and recording time. Editing favors smooth playback and easy access to individual frames. Delivery favors files the destination can play at an acceptable size. One format rarely wins all three.
| Stage / choice | Useful for | Tradeoff |
|---|---|---|
| Camera recording: long-GOP H.264 / HEVC | Long recordings and limited card capacity. Temporal prediction uses similarity between frames. | Seeking and multistream edits can require more decoding work. Hardware support depends on profile, bit depth and chroma format. Motion and noise can stress a restricted bitrate. |
| Camera recording: All-I, ProRes or RAW modes | All-I / ProRes can simplify frame access. RAW can retain more control over image development. | Typically more media bandwidth and storage. RAW development adds processing. All-I does not guarantee better quality than long-GOP at an arbitrary bitrate; RAW is a separate choice from GOP structure. |
| Intermediate / master: ProRes or DNxHR | Editing performance, exchanges and a high-quality rendered master. Choose the variant for required chroma and precision; use an alpha-capable format such as ProRes 4444 when needed. | Larger files and another encode for a transcode. Higher precision avoids some new rounding but does not restore the original’s missing information. These codecs are not universally lossless. |
| Delivery: compatible H.264 / HEVC / AV1 profile | Efficient distribution within the destination’s playback and upload requirements. | Compatibility, encoder time, bandwidth and visible compression compete. The service may transcode again. A broadcast or screening specification may instead require an intra-frame master. |
GOP structure, bitrate, bit depth, chroma sampling and color definition are distinct variables. Compare actual camera modes and destination specifications, not codec names alone.
DIGITAL INTERMEDIATE & IMAGE SCIENCE
Bring footage into a known color definition before grading or compositing. Keep color interpretation separate from the choice of a file format for editing.
WORKING COLOR
A working color space gives your footage a common set of color rules while you edit. An intermediate codec gives it a file format that may be easier to play and exchange. They solve different problems.
A working space gives mixed camera sources a common color definition. ACEScct uses wide AP1 primaries and a log-like encoding for grading. ACEScg uses AP1 with linear-light values for rendering and compositing. DaVinci Wide Gamut / Intermediate is another working-space pairing.
These are not final display looks. A display or output transform produces the view for an SDR or HDR destination. A wider working space can avoid premature clipping and support multiple outputs; it cannot create colors or highlight detail absent from the source.
A ProRes or DNxHR intermediate instead changes how image data is compressed and stored. Transcoding to it does not automatically perform a color-space transform. Specify whether the source color encoding is preserved or converted, and preserve its interpretation.
ACEScct is a grading encoding, not the ACES archival interchange encoding. Choose effects and transforms that expect your actual working-space definition.
A file needs both a color definition and a recording format. Think of these as the meaning of the picture and the way it is packed. Changing one does not automatically change the other.
| Property | What it defines | What it does not establish |
|---|---|---|
| Gamut / primaries | Which colors the RGB definition can describe. Primaries are its red, green and blue building blocks. | Bit depth, detail or compression quality. |
| Gamma / transfer function | How a stored number relates to light, including how the values are distributed between dark and bright regions. Power gamma, log, PQ and HLG are different relationships. | A gamut. “Log” alone is not a complete input definition. |
| Color space / video interpretation | Primaries, white point and transfer function; video can also need matrix and range conventions. | A codec or file extension. Rec.709 primaries alone do not identify every display relationship. |
| Video bit depth & chroma | Sample precision and color’s spatial sampling. 8-bit has 256 full-range codes per component; 10-bit has 1,024. 10-bit 4:2:2 describes precision and sampling. | HDR by itself, or recovery of precision already lost. |
| Codec & container | H.264, HEVC or ProRes describe compression; MP4, MOV and MXF describe packaging. | A fixed color space or quality level. A MOV file can contain different codecs. |
FINISHING & OUTPUT
Render the working image for its destination, then encode and package the required version. A high-quality master and a delivery copy serve different purposes.
Make a version that the final screen or service can play and display as intended. Keep a high-quality master for future exports.
The output transform renders the working image for the target gamut and light range. Export the required codec, profile, precision and container with correct color tags. Check the actual exported file in the intended playback path. Keep a high-quality master for later versions.
Choose the recording mode around the edit and the final destination. Quick turnaround and heavy color correction place different demands on the camera files.
For a fast SDR turnaround with limited grading, a known Rec.709-oriented camera rendering can reduce post work. For demanding grades, keying or several SDR/HDR outputs, supported 10-bit or higher precision, appropriate chroma sampling and a log/wide-gamut or RAW path can retain more flexibility. Log redistributes code values; it does not increase the photons captured or rescue clipped sensor highlights.
Exposure, white balance, noise and focus still matter. Test the complete path before choosing a recording mode solely by its largest numbers.
The master is your high-quality finished version. A delivery copy is an export made to suit a particular screen, service or client.
Keep original camera files and their metadata. Grade in the chosen working space, monitor through the intended output transform, and create a high-quality rendered master. Make smaller delivery copies from that master when appropriate, without applying the output transform a second time.
Verify resolution, frame rate, audio, codec/profile, bitrate, bit depth, chroma sampling, range and color tags against the delivery specification. HDR delivery also needs its defined transfer, mastering conditions and applicable metadata. Display P3 browser support does not by itself establish an HDR mastering path.
Inspect destination gamut mapping · Inspect the output transform · Review delivery codec tradeoffs
VIDEO & COLOR TERMS
Start with the everyday explanation, then read the technical detail beneath it. These terms describe different parts of an image; knowing which one changed helps explain what you see.
The kinds of numbers used to describe a color.
RGB uses red, green and blue components. Y′CbCr uses luma and two color-difference components. A model alone does not specify the primary colors or how its values relate to light.
The rules that tell software what color a set of numbers means.
For these RGB experiments, a color space specifies primaries, a white point and a transfer function. Video interpretation can also require a matrix and signal range. An RGB triplet without that context is incomplete.
The range of colors a color space or device can represent.
The xy triangle shows primary chromaticities without brightness. It does not show the full three-dimensional color volume. A wide gamut does not automatically mean HDR or higher bit depth.
Primaries are the red, green and blue building blocks. The white point sets the reference for neutral white.
All selectable gamuts here share D65 white. Camera and working gamuts may use virtual primaries that a display cannot emit. Their encoding triangle is not a map of sensor spectral sensitivity.
A rule that connects stored numbers to light. It explains why 0.5 does not always mean half the light.
Pure gamma is a power-law relationship. sRGB and BT.709 use piecewise curves. OETF describes scene light to signal; EOTF describes signal to display light. A camera-to-display rendering relationship can involve an OOTF.
A way to spread recorded values across a large brightness range. Unmanaged log footage often looks flat.
A log curve changes how values are allocated; it does not create captured dynamic range. The actual curve and gamut must be known. The lab’s illustrative log is a teaching curve, not a camera-specific LogC or S-Log encoding.
Numbers that grow in direct proportion to the light they represent.
Doubling a linear-light value doubles the represented light. Many operations, including the RGB↔XYZ transforms here, need linear values rather than gamma- or log-encoded signals.
Two related descriptions of the light-and-dark information in an image.
Y′ luma is calculated from nonlinear RGB′ signals. Y luminance is a linear-light photometric quantity. They are related but not interchangeable, and neither is simply a measure of perceived brightness in every viewing condition.
Saving fewer color-detail samples while keeping the luma image at full resolution.
4:4:4 keeps full chroma sampling. 4:2:2 halves it horizontally. Progressive 4:2:0 halves each chroma plane’s width and height. It reduces spatial color detail, not the gamut or the number of colors to one quarter.
Bit depth sets how many numerical steps can be stored. Quantization rounds values to those steps.
An 8-bit component has 256 possible code values; a 10-bit component has 1,024. A narrow gradient uses only some of them. Increasing precision later cannot recover values already lost to rounding.
Banding turns a smooth gradient into visible strips. Dither uses a little noise to make those strips less obvious.
Noise added before quantization lets nearby pixels round to adjacent values, making boundaries less coherent. It trades contours for noise and does not turn an 8-bit recording into a 10-bit recording.
Gamut mapping adapts colors; tone mapping adapts the brightness range or rendering.
They can interact in an output transform. Changing primaries alone is not HDR-to-SDR tone mapping. The lab’s compression toward neutral is an illustrative gamut mapper, not a standardized perceptual rendering method.
A LUT is a table for changing values. Color management makes sure those values are interpreted and displayed correctly.
A LUT needs the expected input color space to behave as intended. Color management can include input, working and output transforms. A creative look serves a different purpose from identifying the source encoding.
A Bayer sensor measures one color-filtered value at each site. Debayering estimates the missing channels to build RGB pixels.
A typical 2 × 2 Bayer tile has one red, two green and one blue site. Real filter responses overlap. Demosaicing and camera color processing turn those measurements into an image in a defined color space.
Sensor-oriented data that leaves some image-building choices for later.
RAW commonly defers debayering and some camera processing until development. It may still include preprocessing and compression. RAW is not automatically uncompressed, lossless or free of camera decisions.
The method used to encode and decode the video data.
H.264, HEVC, AV1, ProRes and DNxHR are codec examples. Profile, bitrate, bit depth, chroma and encoder settings affect the result. The codec name alone does not specify color space or guarantee quality.
The file wrapper that holds video, audio, timing and metadata together.
MP4, MOV and MXF are containers. A MOV file can carry different codecs. The extension alone does not tell you how the video was compressed or which color definition it uses.
Some frames stand on their own; others use references to help reconstruct the picture. A GOP organizes that sequence.
I-pictures use intra-picture coding. P- and B-pictures use prediction; B-pictures can reference frames later in display order. Decode order can therefore differ from display order. An I-picture alone is not always a clean random-access boundary.
A working space sets color rules for editing. An intermediate helps store and play media. A master keeps the finished result at high quality.
An intermediate codec such as ProRes or DNxHR is separate from an intermediate color space. Transcoding does not automatically transform color. Rendered masters and destination-specific delivery copies have different purposes.
Processing uses floating-point linear RGB and XYZ with D65 white. Synthetic images are authored in the selected source primaries; the photograph is decoded as sRGB and converted without inventing wider-gamut colors. Each lesson bypasses the attributes taught on the other pages. In the signal model, destination gamut mapping happens in linear light. Transfer encoding happens before RGB′ → Y′CbCr, centered chroma subsampling, full-range quantization, reconstruction and transfer decoding. The final image is converted to the selected preview color space for a tagged 8-bit Canvas buffer.
Display: Automatic preview uses explicitly tagged Display P3 pixels when both the browser Canvas API and the display advertise P3 support; otherwise it uses sRGB. You can select either supported preview space. The 16-inch 2019 MacBook Pro has a P3 wide-gamut display. Display P3 combines P3 primaries, D65 white and the sRGB transfer function. It is distinct from cinema DCI-P3. XYZ values are converted into the selected preview space before its channels are clipped to 0–1. A P3 preview shows more colors on a P3 display, but cannot show the whole Rec.2020 gamut. The xy coordinates remain mathematical values before preview clipping. The plot background is an approximate sRGB rendering, not a spectral color reference. Detection is not monitor calibration.
Scope: progressive 4:4:4, 4:2:2 and 4:2:0; centered box sampling and nearest/bilinear reconstruction; 4–12-bit quantization; SDR transfer curves. No codec compression, interlaced sampling, PQ/HLG display rendering, calibrated monitor simulation or standardized perceptual gamut mapper is implied. “Compress” moves toward neutral at constant luminance Y when Y is in range; it does not promise perceptual hue preservation. Saturation boost clamps source RGB to its source gamut. BT.709 and BT.2020 use their standard non-constant-luminance matrix coefficients. All other gamuts use teaching Y′CbCr matrices derived from their Y weights, rather than standardized camera video encodings. Full-range chroma uses the integer midpoint as neutral.
New isolated lessons: Transform decodes a known input encoding, converts primaries through XYZ, maps the destination gamut and encodes the output. It bypasses chroma and bit-depth controls. The banding lesson quantizes a neutral sRGB signal ramp from 0.35 to 0.45; optional 8× signal contrast is applied after quantization, equally to the reference and both comparisons.
Precision: synthetic gradients start as floating point. The photo and text/chart canvas sources are 8-bit. A higher bit-depth setting cannot restore missing source precision, and the final 8-bit preview buffers can hide differences between 10-bit and 12-bit. Difference shows absolute signal error in the selected preview space, not perceptual ΔE. The preview buffers have 8 bits per component; that does not establish the physical panel’s precision.
References: ITU-R BT.709, ITU-R BT.2020, W3C color conversion reference, 2019 MacBook Pro display specifications, Basler: Bayer capture and demosaicing, ARRI Wide Gamut 3, ARRI Wide Gamut 4, Sony S-Gamut3 primaries, DaVinci Wide Gamut.