ВИДЕОМОНТАЖЁРDAVINCI RESOLVE · ВИДЕО · AI

КАРТА ЗНАНИЙ · ВИДЕО И КАМЕРЫ

Те же числа. Другой результат.

Закодируйте сигнал в Video или Full и прочитайте тем же или другим способом. Коды, чёрный и белый покажут, откуда берётся ошибка — без коррекции на глаз.

Читайте числа. Замечайте допущения. Затем переносите принцип на свой материал.

02 / RANGE / SIGNAL LAB

Прочитать то, что записано.

Вход Y′0.500VIDEO · 10b502ИнтерпретацияVIDEO → 0.500
Исходная шкала
0 → 1
После декодирования
0 → 1.0000
Целый код502color_range = tv
Прочитанный уровень0.50000Δ = 0
Чёрный / белый после0 / 1.0000
Диапазоны согласованы. Округление — отдельная погрешность.

Модель диапазона Y′/RGB, не полный декодер Y′CbCr. Числа сохраняют выход за границы; только экранная шкала ограничена 0…1. Показанные теги относятся к опыту, не к анализу файла.

COLOR SCIENCE / 02 / VIDEO & CAMERAS

Опыт, а не готовый пресет.

Содержание ↓
ИЛЛЮСТРАЦИЯ ТЕМЫ

ГЛАВНОЕ БЕЗ ЛИШНИХ ТЕРМИНОВ

Видео-сигнал: YCbCr, levels, bit depth и chroma

Видеофайл — это не одна настройка цвета. Цветовые координаты, кривая, матрица, диапазон, разрядность, сетка компонент и сжатие решают разные задачи. Диагностика становится проще, когда вы называете слой ошибки, а не пытаетесь исправить всё одним LUT.

  • Называть слой ошибки до попытки исправления.
  • Читать Video и Full согласованно с записью.
  • Проверять готовый поток, а не только настройки экспорта.
Иллюстрация темы. Это не скриншот программы, не измерение камеры и не точная схема сенсора.
01

Читать файл по слоям, а не по одному ярлыку

Начните с независимых вопросов. Какие основные цвета и белая точка? Какая передаточная функция? Записаны RGB или Y′CbCr? Какая матрица используется? Как нормированные значения размещены в кодах? Сколько бит и какова сетка компонент? И лишь затем — каким кодеком и в каком контейнере это сохранено. Это удобная карта проверки, а не обязательная последовательность операций внутри каждого энкодера.

Например, «10-битный ProRes» ещё не описывает охват, кривую или наличие запечённого LUT. Расширение MOV также не даёт этих ответов. Сопоставляйте сведения о съёмке, параметры потока и результат декодирования. Если несколько слоёв обозначены одним словом «профиль», выясните, о каком именно профиле идёт речь: кодека, цвета или камеры.

Что это означает на практике

Заведите карточку исходника с отдельными полями. Пропуск «matrix» лучше честно оставить неизвестным, чем заполнить догадкой по размеру кадра.

02

Представление сигнала не равно оценке качества

RGB и Y′CbCr — разные способы представить компоненты изображения. В обычном NCL-преобразовании Y′CbCr рассчитывается из нелинейных R′G′B′. При полной сетке, согласованной матрице и арифметике без округления переход обратим. Он сам по себе не обязан делать изображение хуже.

Потери появляются при ограничении диапазона, квантовании, прореживании и сжатии. В реальной цепочке эти операции часто сопровождают переход, поэтому их последствия ошибочно приписывают одному имени Y′CbCr. Аналогично, файл RGB может быть грубо сжатым или иметь невысокую разрядность. Сравнивать нужно реальные параметры и результат следующей операции, а не только название представления.

Что это означает на практике

В соседней лаборатории Y′CbCr оставьте одну матрицу на входе и выходе. Ошибка почти нулевая. Затем включите округление: теперь причина отклонения определена отдельно.

03

Матрица — не переключатель цветового охвата

Коэффициенты матрицы определяют, как получить Y′ и цветоразностные компоненты из R′G′B′ и как восстановить их обратно. Для BT.709 используются веса 0,2126 / 0,7152 / 0,0722; для BT.601 — 0,299 / 0,587 / 0,114; для BT.2020 NCL — 0,2627 / 0,6780 / 0,0593. Неверная обратная матрица по-разному изменяет цветные участки.

Но смена коэффициентов 709 на 2020 не превращает основные цвета одного пространства в другое. Для этого нужно отдельное цветовое преобразование. В метаданных primaries и matrix являются разными полями именно потому, что описывают разные вещи. Нельзя достоверно назначить матрицу только по разрешению: после масштабирования старый материал может сохранить своё кодирование.

Что это означает на практике

При подозрении на неправильную матрицу используйте цветные поля и известный исходник. Нейтральная шкала может выглядеть правильно при обеих матрицах.

04

Video и Full: где находятся чёрный и белый

В номинальном 8-битном видеодиапазоне Y′ чёрный имеет код 16, белый — 235. Для 10 бит это 64 и 940. Цветоразностные компоненты используют другой размах: 16–240 с нейтралью 128 или 64–960 с нейтралью 512. Ошибка применять размах Y′ ко всем трём каналам создаёт дополнительные изменения цвета.

Номинальные границы не означают, что все числа вне них бессмысленны или обязаны немедленно обрезаться. Запас и зарезервированные значения зависят от системы передачи и формата. Full для Y′/RGB в опыте означает отображение 0…1 на 0…2ⁿ−1. Полное цифровое представление chroma нужно читать по определению конкретного формата, а не копировать формулу яркостной компоненты.

Что это означает на практике

Выберите 10 бит и Video: 0 и 1 дают 64 и 940. Переключение только способа чтения не изменяет записанные коды — меняется их интерпретация.

05

Две ошибки диапазона и почему их нельзя лечить LUT

Если коды Video прочитать как Full, номинальный чёрный станет положительным, а белый не достигнет единицы. Изображение может выглядеть выцветшим. В обратной ситуации — Full читается как Video — восстановленные значения выходят ниже нуля и выше единицы. Если следующий этап ограничит их, детали в краях диапазона исчезнут.

Это линейное изменение масштаба и смещения кодов, а не новая гамма, не баланс белого и не смена основных цветов. В опыте числа за пределами 0…1 сохраняются в показаниях; ограничена только плашка на экране. По одному внешнему виду диагноз не ставят: мягкий look может выглядеть похоже. Подтвердите гипотезу метаданными, известной шкалой и повторным импортом.

Что это означает на практике

Для 8 бит Video→Full чёрный 16 читается как 16/255 ≈ 0,06275. Эта величина объясняет приподнятый чёрный без поиска «магического» значения Lift.

06

Разрядность описывает сетку значений

n бит дают 2ⁿ возможных целочисленных слов: 256, 1024 и 4096 для 8, 10 и 12 бит. Размещение номинального сигнала внутри этих слов зависит от диапазона. Например, 64…940 содержит 877 кодовых значений, но 876 интервалов между крайними. Эти числа не следует путать при расчёте шага.

Дополнительные биты уменьшают ошибку квантования при одинаковом диапазоне. Они не расширяют сенсорный запас или треугольник основных цветов. После перехода 8→10 бит приложение может считать точнее, однако отличия, уже слитые в одном исходном коде, не появятся обратно. Число бит упаковки также не всегда равно эффективному числу значащих бит измерения.

Что это означает на практике

Сравните ошибку чтения значения 0,37 после 8- и 10-битной упаковки. Она зависит от положения значения между кодами, а не только от числа уровней.

07

Сетка chroma — отдельная потеря информации

В 4:4:4 у Y′, Cb и Cr одинаковое число пространственных отсчётов. В 4:2:2 у каждой chroma-компоненты вдвое меньше отсчётов по горизонтали. В распространённой прогрессивной 4:2:0 сетка chroma вдвое меньше по обеим осям. Яркостная сетка при этом не обязана уменьшаться.

Это не означает, что у 4:2:0 «нет синего канала»: Cb и Cr сохраняются, но реже. Уменьшение количества значений экономит данные ещё до энтропийного сжатия. На однопиксельных цветных линиях это иной тип ограничения, чем 8-битные ступени на градиенте. Для чересстрочного материала нужно отдельно учитывать структуру полей.

Что это означает на практике

Для прогрессивного 1920×1080 при 4:2:0 каждая chroma-плоскость имеет 960×540 отсчётов. Это не оценка итогового размера сжатого файла.

08

Положение отсчётов тоже имеет значение

Плотность сетки не описывает, где chroma находится относительно Y′. Отсчёт может быть совмещён с яркостным или расположен между ними. При восстановлении полной сетки алгоритм должен знать эту фазу. Неверное предположение смещает цветовую границу, хотя количество отсчётов и разрядность совпадают.

Поэтому цепочка ресайза и перекодирования должна согласовать фильтр, позицию chroma и, при необходимости, поля. Метаданные могут отсутствовать; тогда важны правила самого формата и документированные предположения декодера. Лаборатория использует явно описанные центрированные блоки и простое восстановление, а не заявляет универсальную имитацию 4:2:0 каждого кодека.

Что это означает на практике

Если после перекодирования красный контур сдвинут, а чёрно-белая граница на месте, проверьте положение chroma до того, как менять трекер или маску.

09

Кодек, профиль и контейнер

Кодек определяет способы кодирования и сжатия; профиль ограничивает доступные инструменты и представления. Контейнер объединяет потоки, временные сведения и метаданные. Ни MOV, ни MP4 не являются сами по себе цветовым пространством. Разные файлы одного расширения могут нести совершенно разные видеопотоки.

Даже внутри одного семейства кодеков различаются сетка компонент, разрядность, альфа и степень потерь. Например, документация Apple различает варианты ProRes 422 и 4444; это не одно качество с разным весом файла. Visually lossless также не означает математическую тождественность исходнику. Для важных промежуточных операций проверяйте конкретный профиль и результат декодирования.

Что это означает на практике

При передаче титров с прозрачностью согласуйте поддержку alpha отдельно. Само слово ProRes в имени экспортного пресета этого не гарантирует.

10

Метка сообщает смысл, но не меняет отсчёты

Видеопоток может сообщать основные цвета, передаточную функцию, матрицу, диапазон и положение chroma. Контейнер может иметь собственные сведения. Они помогают программе выбрать интерпретацию, но не доказывают, что энкодер записал значения именно так. Возможны пропуски, неверные метки и противоречия между уровнями.

Изменение тега не выполняет цветовое преобразование. Это легко увидеть на опыте диапазонов: те же коды дают другие нормированные значения при иной трактовке. Назначение верной метки исправляет ошибочное описание, но назначение желаемой метки не переводит материал в желаемый стандарт. Храните исходник и описание того, что реально было пересчитано.

Что это означает на практике

FFmpeg setparams меняет свойства кадров, а не пересчитывает их пиксели. Для реального пересчёта нужен соответствующий фильтр преобразования, с верно указанным входом.

11

Диагностировать до творческой коррекции

Сначала сравните параметры исходника и декодирования. Неверный диапазон, неверная матрица и неверная передаточная функция дают разные классы ошибок. Data Levels относится к интерпретации числового диапазона; Input Color Space описывает цветовое состояние. Их нельзя считать взаимозаменяемыми кнопками «исправить картинку».

Для спорного клипа создайте отдельную тестовую версию без творческих нод, с известным управлением цветом. Сравните оригинал и промежуточный файл на тех же кадрах, проверьте шкалу и цветные участки. Если изменение помогает только одному объекту, оно может маскировать причину, а не устранять её. Автоматическое распознавание полезно, но не заменяет проверку сомнительного материала.

Что это означает на практике

Не компенсируйте Video→Full ошибку кривой контраста: позже правильное декодирование применит и верный диапазон, и вашу лишнюю компенсацию.

12

Проверять готовый файл, а не только окно экспорта

После рендера откройте сам результат: разрешение, формат пикселей, профиль, цветовые поля и частоту кадров. Затем импортируйте его обратно в контролируемый проект и сравните с таймлайном при согласованном просмотре. Первая проверка читает описание файла; вторая помогает увидеть последствия декодирования. Ни одна сама по себе не доказывает правильность всей доставки.

Для внешней проверки подходит ffprobe: -select_streams v:0 выбирает первый видеопоток, -show_entries задаёт поля, -of json выдаёт структурированный отчёт. Пустое поле или unknown означает отсутствие определённых сведений, а не автоматически Rec.709. Не передавайте клиенту «исправленный» файл только по тому, что в одном плеере он стал приятнее.

Что это означает на практике

Команда ниже читает метаданные, не изменяя файл: ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,profile,pix_fmt,color_range,color_space,color_transfer,color_primaries,chroma_location -of json "input.mov".

МОДЕЛЬ, КОТОРУЮ МОЖНО ПРОВЕРИТЬ

Не путайте описание файла с преобразованием.

Держите рядом смысл, расчёт и границу применимости.

8-bit Video: C = round(16 + 219Y′); Full: C = round(255Y′)

Для 10 бит Video используются 64 + 876Y′, для Full — 1023Y′. Обратная операция должна соответствовать способу записи. Опыт относится к Y′/RGB-уровням; chroma имеет другое смещение и размах. За пределами номинального диапазона числа не скрываются.

ПонятиеЧто описываетКакой вывод делать нельзя
RangeСоответствие целого кода нормированному уровню.Full не означает автоматически более качественный цвет.
MatrixПереход R′G′B′ ↔ Y′CbCr.Не является сменой основных цветов.
Codec / profileМетод сжатия и разрешённые характеристики потока.Расширение MOV не определяет всё содержимое.
MetadataСообщение о том, как интерпретировать значения.Правильная метка не доказывает правильные отсчёты.

СДЕЛАТЬ. СРАВНИТЬ. ОБЪЯСНИТЬ.

Поймать ошибку интерпретации до грейда.

Лаборатория работает без файлов. Для практики с клипом используйте тестовую копию и ffprobe; команда в разделе экспорта только читает файл.

  1. 01

    Согласовать диапазоны

    Выберите Video → Video, 8 бит. Проверьте Y′ = 0 и 1, затем Full → Full.

    ПРОВЕРКА

    Оба согласованных варианта возвращают правильные крайние уровни.

  2. 02

    Внести одну ошибку

    Оставьте запись Video и прочитайте как Full, не меняя код. Затем проверьте обратную ошибку.

    ПРОВЕРКА

    Вы можете объяснить поднятый чёрный либо выход за 0…1 числами.

  3. 03

    Прочитать реальный поток

    Сохраните JSON-отчёт ffprobe исходника и экспорта. Сравните codec, pix_fmt и цветовые поля.

    ПРОВЕРКА

    Неизвестное поле отмечено как неизвестное, а не угадано.

  4. 04

    Сопоставить описание и изображение

    Импортируйте экспорт в контролируемый проект и сравните шкалу, цветные плашки и края.

    ПРОВЕРКА

    Вы не исправляли проблему диапазона творческой кривой.

Проверьте понимание

0 / 4

Отмечайте то, что можете объяснить самостоятельно.

ПРОВЕРЬТЕ СВОЁ ОБЪЯСНЕНИЕ

Ситуация, а не вопрос с подвохом.

Сначала сформулируйте ответ. Затем откройте разбор.

01После изменения только тега картинка стала другой. Кодек пересчитал пиксели?

Не обязательно. Получатель мог иначе прочитать те же числа. Метаданные и операции пересчёта следует проверять раздельно.

02Файл 10-bit и UHD. Значит, это HDR Rec.2020?

Нет: разрядность и размер кадра не устанавливают primaries и transfer. Нужны соответствующие поля и подтверждение происхождения.

03В одном плеере всё правильно. Можно не проверять экспорт?

Нет: он мог интерпретировать неоднозначные метки иначе или скрыть ошибку. Сравните поток и контролируемый импорт.

Не сокращайте объяснение до этих ошибок

  • Считать YCbCr синонимом Rec.709.
  • Пытаться исправить range через CST/gamma.
  • Считать 10-bit автоматически HDR.
  • Считать 4:4:4 автоматически RGB или lossless.
  • Игнорировать matrix_coefficients/metadata.
  • Доверять только Deliver settings и не проверять финальный stream.
COLOR / DAVINCI RESOLVE

От модели — к рабочему процессу.

Сначала определите состояние исходных значений и уже выполненные операции. Затем проверяйте декодирование, цветовой процесс и готовый экспорт раздельно. Лаборатория демонстрирует указанный расчёт; она не измеряет ваш монитор, не декодирует загруженный клип и не сертифицирует настройки камеры.

Color Management ↗Scopes ↗Color Space Transform ↗

ПРОВЕРЯЙТЕ ПЕРВООСНОВУ

Источники и границы моделей.

Редакционная проверка: 1 октября 2026. Ссылки указывают на определения и формулы; упражнения — самостоятельные учебные примеры.

  1. [4]
    ITU-R · BT.709-6, §3–4 ↗

    Матрица Y′CbCr, квантование, номинальные уровни Y′ и Cb/Cr, сетка 4:2:2.

  2. [5]
    ITU-R · BT.601-7, Part A §2.5 ↗

    Коэффициенты матрицы SD и нормировка цветоразностных компонент.

  3. [6]
    ITU-R · BT.2020-2, Table 4 ↗

    Различие NCL и constant-luminance. Лаборатория реализует только NCL.

  4. [7]
    FFmpeg · ffprobe documentation ↗

    Выбор потока, вывод полей и JSON-отчёта о готовом файле. Метаданные — свидетельство, но не измерение правильности изображения.

  5. [8]
    FFmpeg · setparams / scale / zscale ↗

    Изменение свойств кадра отдельно от преобразования значений; диапазон и положение chroma при масштабировании.

  6. [9]
    FFmpeg · pixel formats and chroma locations ↗

    Размеры компонент, именование pixel formats и позиции chroma. Имя yuv в API не означает аналоговый YUV.

  7. [10]
    Apple · ProRes white paper, April 2022 ↗

    Разные профили семейства: разрядность, chroma, альфа и различие visually/mathematically lossless.

  8. [12]
    Blackmagic Design · DaVinci Resolve Color ↗

    Управление цветом и работа с RAW. Точные доступные настройки зависят от формата, версии и режима проекта.