Funções de cores amostradas nativas

O renderer Cairo nativo avalia funções de cores amostradas FunctionType 0 com Order 1 ou Order 3, incluindo múltiplas entradas de tint e múltiplas saídas de cores alternativas

A avaliação cúbica estende a convenção existente de interpolação escalar de quatro nós por um produto tensorial através das dimensões de entrada; as janelas se movem para dentro nas bordas da tabela, dimensões com menos de quatro samples retêm o fallback linear existente, e Size 1 permanece constante

O caminho escalar de transferência de uma entrada e uma saída mantém seu comportamento existente

Processamento de samples

As entradas são clipadas ao Domain, mapeadas por Encode e clipadas aos limites da tabela; a interpolação lê samples contínuos most-significant-bit-first, aplica Decode e clipa os componentes concluídos ao Range

Profundidades de samples de 1, 2, 4, 8, 12, 16, 24 e 32 bits são suportadas, com a primeira dimensão de entrada variando mais rápido

A seção 7.10.2 da ISO 32000-1 define o layout e a sequência de processamento de funções amostradas; a fórmula de aceitação numérica registra a convenção existente de quatro nós da biblioteca, sem alegar que o padrão seleciona um kernel cúbico único

Limites de recursos

A avaliação tensorial pode visitar quatro ramos por dimensão de entrada; cada nó visitado e cada bit de sample cúbico entram nos limites agregados de operações e no polling de cancelamento, enquanto ramos de peso zero não fazem trabalho de amostragem

Streams decodificados, dados de funções retidos e armazenamento de avaliação entram na admissão de decoded-bytes e working-bytes ativos; tabelas válidas grandes podem exigir um limite de operações selecionado pelo chamador

Falhas ocorrem antes da publicação do PNG, e renderings subsequentes podem reutilizar a mesma thread e a API de documentos carregados

Aceitação

Equações tensoriais independentes resolvem os pesos de interpolação por um sistema Vandermonde e verificam os pixels nativos para profundidades de samples empacotadas, janelas multidimensionais, dimensões curtas, encodings e clipping de saída

As diferenças de código-fonte de MuPDF e Poppler são retidas separadamente da aceitação tensorial nativa; ambos os readers também verificam companions explícitos de equações RGB

Veja Tests/Linux/HeadlessSampledCubic.en-us.md para reprodução focada de fixtures e orçamentos, e Renderer Cairo nativo do Linux para os contratos de rendering e posse