O que é um arquivo J2C?

Um arquivo J2C contém um fluxo de código bruto JPEG 2000, em vez das caixas e da estrutura de metadados de um contêiner da família JP2. O mesmo fluxo de bits elementar também circula com as extensões .j2k e .jpc. Ele transporta principalmente dados comprimidos de amostras de imagem.

Como funcionam os arquivos J2C

Um arquivo .j2c é um único fluxo de código JPEG 2000, sem nenhum envoltório; .j2k e .jpc são outros nomes para o mesmo fluxo, não formatos distintos. A sintaxe do fluxo de código é definida no anexo A de ITU-T T.800 | ISO/IEC 15444-1. Ele começa com o marcador SOC, imediatamente seguido pelo segmento marcador SIZ, que informa o tamanho da grade de referência e dos blocos, a quantidade de componentes e a profundidade de bits e o espaçamento das amostras de cada componente. Outros segmentos marcadores descrevem o estilo de codificação, a quantização e a progressão, e o marcador EOC encerra o fluxo. Isso é suficiente para um decodificador reconstruir os valores das amostras, e como os níveis de resolução, as camadas de qualidade, os blocos e a ordem de progressão são codificados no próprio fluxo, a decodificação parcial ou com resolução reduzida não depende de um contêiner. O que o fluxo de código não informa é o significado das amostras. O formato de arquivo JP2 existe para acrescentar essa camada: ele envolve o fluxo de código em caixas que contêm, entre outras coisas, pelo menos uma caixa de especificação de cor e, opcionalmente, uma caixa de propriedade intelectual para informações sobre direitos.

Informações essenciais

  1. Como reconhecer um arquivo .j2c? Pelos primeiros bytes, não pelo nome. Um fluxo de código começa com FF 4F FF 51, o marcador SOC seguido pelo marcador SIZ, enquanto um arquivo JP2 começa com a caixa de assinatura de 12 bytes 00 00 00 0C 6A 50 20 20 0D 0A 87 0A, seguida por uma caixa de tipo de arquivo. O tipo de mídia registrado para um fluxo de código sem contêiner é image/j2c, que lista tanto j2c quanto j2k como extensões de arquivo; image/jp2 é o tipo do formato de arquivo estruturado em caixas.
  2. O arquivo informa em qual espaço de cor estão suas amostras? Não. O registro de image/j2c afirma que um fluxo de código JPEG 2000 não contém informações sobre o espaço de cor da imagem e que essas informações são implícitas ou fornecidas fora de banda. Um arquivo JP2 deve conter pelo menos uma caixa de especificação de cor; um arquivo .j2c não tem equivalente. Portanto, quem exibe ou converte um fluxo de código sem contêiner depende de uma suposição ou de informações mantidas em outro lugar.
  3. Todo decodificador de JPEG 2000 Parte 1 consegue ler qualquer arquivo .j2c? Não necessariamente. Segundo o registro, um fluxo de código pode usar recursos de qualquer parte da família JPEG 2000, e os recursos de que um decodificador precisa são sinalizados pelo parâmetro Rsiz no segmento marcador SIZ em conjunto com o segmento marcador CAP. Os bytes iniciais não distinguem esses casos: o OpenJPEG, por exemplo, detecta fluxos de código de alto rendimento .jhc com a mesma assinatura de quatro bytes que usa para .j2c.
  4. Um arquivo .j2c é sem perdas ou com perdas? O sufixo não informa, mas o fluxo informa em parte. Em um fluxo de código da Parte 1, os segmentos marcadores de estilo de codificação registram se foi usado o filtro wavelet irreversível 9-7 ou o reversível 5-3. O filtro irreversível é o caminho com perdas. O filtro reversível possibilita a codificação sem perdas, mas não comprova que ela foi usada, porque T.800 observa que a transformação reversível de múltiplos componentes, usada apenas com o filtro 5-3, pode ser usada em fluxos de código truncados para oferecer compressão com perdas. Um fluxo de código que usa as extensões da Parte 2 (T.801 | ISO/IEC 15444-2) pode conter outros valores no mesmo campo, cada um selecionando um núcleo de transformação definido no próprio fluxo.

Quando os arquivos J2C são relevantes

Um decodificador deve aceitar um fluxo de código JPEG 2000 sem contêiner, em vez de supor que todo recurso tenha metadados de um contêiner JP2. Fluxos de trabalho que precisam de informações sobre cor ou direitos podem precisar obtê-las de outra fonte.

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