Нативные сэмплированные цветовые функции
Нативный рендерер Cairo вычисляет сэмплированные цветовые функции FunctionType 0 с Order 1 или Order 3, включая несколько входов оттенка и несколько выходов альтернативных цветов
Кубическое вычисление расширяет существующее скалярное соглашение интерполяции по четырём узлам тензорным произведением по входным измерениям; окна сдвигаются внутрь у краёв таблицы, измерения с менее чем четырьмя сэмплами сохраняют существующий линейный фолбэк, а Size 1 остаётся константой
Скалярный путь передаточной функции с одним входом и одним выходом сохраняет существующее поведение
Обработка сэмплов
Входы отсекаются по Domain, отображаются через Encode и отсекаются по границам таблицы; интерполяция читает непрерывные сэмплы от старшего бита к младшему, применяет Decode и отсекает завершённые компоненты по Range
Поддерживаются глубины сэмплов 1, 2, 4, 8, 12, 16, 24 и 32 бита, первое входное измерение изменяется быстрее всего
Раздел 7.10.2 ISO 32000-1 определяет раскладку сэмплированных функций и последовательность обработки; численная формула приёмки фиксирует существующее соглашение библиотеки по четырём узлам, не утверждая, что стандарт выбирает единственное кубическое ядро
Лимиты ресурсов
Тензорное вычисление может обойти четыре ветви на каждое входное измерение; каждый посещённый узел и каждый кубический бит сэмпла попадает в агрегированные лимиты операции и опрос отмены, а ветви с нулевым весом не делают сэмпловой работы
Декодированные потоки, удерживаемые данные функций и память вычисления попадают в допуск декодированных и активных рабочих байтов; большие корректные таблицы могут потребовать выбранного вызывающим лимита операции
Сбои происходят до публикации PNG, а последующая отрисовка может переиспользовать тот же поток и API загруженного документа
Приёмка
Независимые тензорные уравнения решают веса интерполяции через систему Вандермонда и проверяют нативные пиксели для упакованных глубин сэмплов, многомерных окон, коротких измерений, кодировок и отсечения выхода
Различия исходников MuPDF и Poppler сохраняются отдельно от нативной тензорной приёмки; оба ридера также проверяют независимых компаньонов явных RGB-уравнений
Фокусированное воспроизведение фикстур и бюджетов см. в Tests/Linux/HeadlessSampledCubic.en-us.md, а контракты отрисовки и владения — в нативном Linux-рендерере Cairo