O que é um arquivo JPC?

Um arquivo JPC armazena diretamente um fluxo de código JPEG 2000, geralmente sem as caixas de metadados fornecidas por um contêiner JP2. O mesmo fluxo elementar também é distribuído como .j2c ou .j2k. Essas extensões nomeiam os mesmos dados comprimidos de imagem JPEG 2000, não tipos de arquivo distintos.

Como os arquivos JPC funcionam

JPC é outro nome para um fluxo de código JPEG 2000 independente, a parte da norma que contém os dados comprimidos de imagem, sem as caixas externas da família JP2. Seu cabeçalho principal contém os parâmetros de que um decodificador precisa para reconstruir as amostras, incluindo tamanho da imagem, quantidade e precisão dos componentes, tamanho dos blocos, configurações de wavelet e quantização e organização dos pacotes e das camadas de qualidade. A norma trata o formato de arquivo JP2 como um invólucro opcional para esse fluxo, portanto um fluxo de código pode ser armazenado por conta própria ou contido em outro formato de arquivo. O que o fluxo de código não informa é o espaço de cor de seus componentes; essa descrição precisa estar implícita na aplicação ou ser fornecida fora de banda.

Informações essenciais

  1. .jpc, .j2c e .j2k nomeiam a mesma coisa, um fluxo de código JPEG 2000 sem contêiner, e decodificadores como o OpenJPEG encaminham os três para um único analisador de fluxo de código. O teste confiável são os primeiros quatro bytes, FF 4F FF 51, enquanto um arquivo JP2 começa com uma caixa de assinatura de 12 bytes. O tipo de mídia registrado é image/j2c; seu registro lista j2c e j2k como extensões, mas não jpc.
  2. Um fluxo de código sem contêiner não contém informações sobre o espaço de cor. O registro de image/j2c informa que ele está implícito ou é fornecido fora de banda, e é o invólucro JP2 que adiciona uma caixa Colour Specification obrigatória. Um software que não recebe a informação do espaço de cor recorre a uma suposição: o opj_decompress do OpenJPEG, por exemplo, trata uma imagem de três componentes como sYCC e a converte em RGB quando o segundo componente tem subamostragem horizontal e o primeiro tem a mesma amostragem horizontal e vertical, e trata um ou dois componentes como escala de cinza. Quando a precisão das cores for importante, obtenha o espaço de cor real ou o perfil ICC com quem produziu o arquivo e forneça essa informação à aplicação que o lê. Envolver o fluxo em JP2 não recupera essa informação: a caixa Colour Specification precisa ser gravada com base nesse valor conhecido, seja como um espaço de cor enumerado (sRGB, sYCC ou escala de cinza), seja como um perfil ICC restrito.
  3. Remover o invólucro JP2 elimina as caixas de assinatura e File Type, o JP2 Header com suas informações de cor e resolução e as caixas opcionais de XML, UUID e propriedade intelectual. Isso não remove recursos de codificação: o tamanho dos blocos é registrado no segmento de marcador SIZ, e o número de camadas de qualidade, a ordem de progressão e as configurações de wavelet são registrados em COD, todos dentro do fluxo de código.
  4. Um sufixo .jpc não garante um fluxo da parte 1. Um fluxo de código pode usar recursos de qualquer parte da família JPEG 2000, como High Throughput JPEG 2000, e declara o que um decodificador precisa por meio de seu campo Rsiz e do segmento de marcador CAP. Por isso, verifique esses elementos antes de presumir que determinado decodificador consegue ler o arquivo.

Quando os arquivos JPC são importantes

Sistemas de processamento de imagens devem encaminhar arquivos JPC a decodificadores compatíveis com entradas de fluxo de código bruto. Se um fluxo de trabalho depende de metadados incorporados de cor, layout ou descrição, um arquivo JPC sem contêiner pode ser insuficiente.

Como a Transloadit ajuda com arquivos JPC

A lista de formatos de imagem compatíveis da Transloadit inclui JPC, J2C e J2K, cada um descrito como sintaxe de fluxo de código JPEG-2000 e marcado como disponível para leitura e gravação nos Robots baseados em ImageMagick abrangidos pela lista, como o Robot /image/resize. A mesma lista tem uma entrada separada, JP2, para o formato de arquivo baseado em caixas, e o parâmetro format do Robot seleciona o formato de saída.

A disponibilidade de formatos depende da versão de imagemagick_stack que um Step usa, portanto confirme a entrada correspondente ao seu stack. A documentação não descreve como as cores são interpretadas em entradas de fluxo de código sem contêiner.

Explore os formatos de arquivo e os recursos de compressão da Transloadit

Fontes

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente