Por que o espaço de cores xvYCC não está sendo absorvido pelas fotografias?

23

Nos últimos quinze anos, o sRGB tem sido o principal padrão para monitores de computador (e para impressão no nível do consumidor). Isso está mudando agora, à medida que os monitores com iluminação de LED de gama mais ampla se tornam comuns. Normalmente, os fotógrafos as usam com um espaço de cores como aRGB, que é semi-padrão - minha câmera pode salvar JPEGs nesse espaço nativamente, por exemplo.

Mas há um novo padrão amplamente adotado no setor de antivírus para substituir o sRGB. Esta é a IEC 61966-2-4 - xvYCC (ou "xvColor", para fins de marketing). Esse espaço de cores possui uma gama 1,8 vezes maior que o sRGB, cobrindo 90% da faixa de cores da visão humana (em vez dos 50% não inspiradores cobertos pelo nosso denominador comum atual). Leia muito mais no site da Sony no xvYCC .

O ponto importante, porém, é que isso não é teórico. Faz parte do padrão HDMI 1.3, junto com uma especificação para profundidade de cor de 10 a 16 bits por cor ("Deep Color", isso é chamado). Ao contrário do aRGB, que é basicamente um nicho profissional, há amplo suporte em equipamentos de nível de consumidor.

Esse é o pano de fundo. A questão é: dado que isso está pegando bastante, e que provavelmente todos temos hardware de computador (e TV!) Capaz de suportá-lo nos próximos anos, por que isso está sendo vendido basicamente como apenas um vídeo? Parece que a indústria de câmeras ficaria feliz em embarcar.

A Sony adora a idéia e lançou câmeras de vídeo há quatro anos. O Playstation 3 suporta, pelo amor de Deus! Por que não colocá-lo também nos Sony Alpha dSLRs? E a Sony não está sozinha - a Canon também possui câmeras de vídeo.

Obviamente, se você estiver gravando RAW, o suporte na câmera não é importante. É o pessoal do software conversor que precisaria embarcar - por que não há um empurrão para isso? Pelo que entendi, xvYCC é uma extensão do YCbCr, que é usada em arquivos JPEG . Mas, enquanto leio a literatura, encontro muitas menções a padrões MPEG atualizados, mas nada sobre imagens fotográficas fixas.

Por que não podemos ter coisas boas?

mattdm
fonte

Respostas:

11

O xvYCC é uma maneira inteligente de codificar dados de cores: ele abusa da representação YCC usando combinações de valores anteriormente proibidas para representar cores fora da gama do espaço RGB usado no esquema YCC. Ou seja, algumas tuplas YCC decodificam para cores com valores RG ou B negativos. Anteriormente, estes eram simplesmente ilegais; no xvYCC, isso é permitido e exibições com gama maior que o sistema RGB são bem-vindas para renderizá-las da melhor maneira possível. Então, na verdade, é um truque inteligente, principalmente compatível, para obter uma gama extra sem alterar muito o formato.

Faz sentido usá-lo em fotografias estáticas? Eu realmente não penso assim. Não há realmente a necessidade de ser compatível com o YCC; então, por que não usar um espaço de ampla gama como o ProPhoto RGB? Ou melhor: como usar profundidade de bits extra não é caro para fotos, por que não usar algo como CIELAB que pode cobrir toda a gama perceptível em humanos? Você tem bits suficientes para que a capacidade de codificar todas essas cores imaginárias não lhe custe qualquer quantidade apreciável de resolução de cores.

Obviamente, a questão do suporte à câmera é um pouco irrelevante - se você realmente se importa com cores, deve retirar os valores brutos do detector da câmera e começar com eles. E mesmo se você fizer isso, ainda ficará preso na gama perceptível da câmera. E a precisão da sua representação de cores também dependerá de quão bem os filtros da sua câmera se aproximam da resposta espectral dos cones humanos - entenda errado e as cores que parecem idênticas aos olhos serão diferentes da sua câmera. Nenhuma codificação irá corrigir isso. De fato, isso aconteceu com uma câmera digital barata que eu tinha - nesse caso, a sensibilidade ao infravermelho fazia as brasas parecerem roxas. Mesmo se você filtrar o IR, coisas com espectros pontiagudos, como arco-íris e luzes fluorescentes ou minerais (e talvez alguns corantes), mostrarão esse efeito quando os espectros de continuum parecerem bons.

Anne
fonte
20

Para começar de maneira simples, a resposta é "É usada para fotografias estáticas!" Vou explicar um pouco mais em breve, e seu uso é bastante nicho no momento.

As raízes do xvYCC

A codificação xvYCC é, até onde eu sei, um aprimoramento moderno da codificação YCC, ou em sua forma longa, Y'CbCr (ou YCbCr, que é um pouco diferente.) A codificação YCC faz parte de uma família de luminância / crominância espaços de cores, todos amplamente enraizados no espaço de cores L a b * ('Lab' para abreviar) formulado pela CIE na década de 1930. O espaço de cor Lab é também um espaço de cor de luminância / crominância, em que a luminância de uma cor é codificado na L * valor, enquanto dois eixos de crominância de uma cor são codificadas na a * e b * valores. O valor a * codifica metade da crominância ao longo do eixo verde / magenta , enquanto o valor b * codifica a outra metade da crominância ao longo do azul / amareloeixo. Esses dois eixos de cores foram escolhidos para imitar e representar as quatro principais sensibilidades do olho humano, que também se encontram ao longo de um par de eixos vermelho / verde e azul / amarelo (embora a verdadeira visão humana envolva uma curva vermelha de pico duplo, com o pico menor que ocorre no meio da curva azul, o que realmente significa que o olho humano é diretamente sensível à magenta, não a vermelho ... daí o eixo verde / magenta no laboratório.)

A codificação YUV

O Y'CbCr é provavelmente o mais destacado na forma de codificação de vídeo YUV. A codificação YUV foi projetada especificamente para reduzir a quantidade de espaço necessário para codificar cores para transmissão de vídeo, nos dias em que a largura de banda era uma mercadoria bastante escassa. A transmissão de informações de cores como trigêmeos RGB é um desperdício, pois os trigêmeos R, G, B codificam as cores com uma quantidade razoável de redundância: todos os três componentes incluem informações de luminância e informações de crominância, e a luminância é ponderada em todos os três componentes. YUV é uma forma de baixa largura de banda da codificação em cores Y'CbCr luminância / crominância que não possui a redundância desnecessária da codificação RGB. O YUV pode consumir de 2/3 a 1/4 da largura de banda de um sinal RGB completo, dependendo do formato de subamostragem (e, além disso, armazenou a imagem detalhada no canal de luminância distinto Y, que também suportava tanto a preto e branco como convenientemente sinais de TV em cores com um único formato de codificação.) Deve-se observar claramente que o YCC não é realmente um espaço de cores, pelo contrário, é uma maneira de codificar informações de cores RGB. Eu acho que um termo mais preciso seria ummodelo de cores que um espaço de cores, e o termo modelo de cores pode ser aplicado a RGB e YUV.

A partir da referência vinculada na pergunta original, parece que xvYCC é uma forma aprimorada de codificação Y'CbCr que armazena informações de cores de luminância / crominância codificadas com mais bits que YUV. Em vez de codificar a luminância e a crominância em conjuntos intercalados de 2-4 bits, o xvYCC codifica a cor nos valores modernos de 10 bits.

Uso em fotografia estática

Curiosamente, existe uma marca de câmera DSLR que usa algo muito semelhante. A Canon adicionou um novo formato RAW às suas câmeras nos últimos anos, chamado sRAW. Embora uma imagem RAW normal contenha um dump direto de dados completos do sensor, o sRAW não é realmente um formato de imagem RAW real. O formato sRAW não contém dados da camada, contém conteúdo Y'CbCr processado interpolado dos dados de pixel RGBG da camada subjacente. Semelhante aos dias da TV, o sRAW pretende usar mais informações de sinal originais para codificar dados de luminância e crominância em um formato de imagem de alta precisão (14-bpc), mas com economia de espaço. Uma imagem sRAW pode ter de 40 a 60% do tamanho de uma imagem RAW,

O benefício do sRAW é que você mantém alta precisão de cores da percepção humana em um formato de arquivo compacto e faz melhor uso dos pixels RGBG no sensor de camada (em vez de amostragem sobreposta que produz ondulações de cores desagradáveis, o sRAW executa amostragem de crominância não sobreposta e a amostragem de luminância sobreposta / distribuída.) A desvantagem é que ele não é um formato RAW real e as informações de cores são interpoladas e reduzidas a amostragem do sensor de camada completa. Se você não precisar da resolução RAW completa da câmera (ou seja, você pretende apenas imprimir em 8x10 ou 11x16), o sRAW pode ser um benefício real, pois pode economizar muito espaço (economia de até 60% em relação ao RAW ), economiza mais rápido que o bruto, fornecendo uma taxa de quadros mais alta e faz melhor uso das informações de cores capturadas pelo sensor do que a RAW de resolução total.

jrista
fonte
Muito interessante e informativo - obrigado! Mas ainda estou surpreso que esse uso de nicho seja a única coisa até agora.
27511 mattdm
1
Eu acho que, tecnicamente falando, você pode considerar JPEG como outro formato de imagem que codifica dados de maneira compatível com YCC. Parte da economia de espaço no JPEG se deve ao fato de codificar dados RGB em um formato de luminância / crominância, no qual os dados são compactados ainda mais por meio de compressão com bloco com perdas. Embora a codificação específica xvYCC não seja comum em fotografias estáticas, quando você pensa sobre isso, a codificação de luminância / crominância é realmente o formato mais prevalente.
jrista
7

Você tem coisas quase completamente ao contrário. Este não é um caso em que a fotografia estática pode / deve "acompanhar" o vídeo - pelo contrário, é uma questão de o vídeo ter finalmente alcançado (aproximadamente) os recursos que o TIFF (por exemplo) fornece algumas décadas atrás (mais ou menos).

Embora você certamente não tenha visto muitos TIFFs de 16 bits / canal há 20 anos, a capacidade já estava lá, e 16 bits / canal (em TIFF e em vários outros formatos) agora são bastante comuns. Ao mesmo tempo, sinto-me obrigado a salientar que a maioria das pessoas parece achar 8 bits / canal inteiramente adequado. Apenas por um exemplo óbvio, o JPEG2000 suporta 16 bits / canal e compactação melhor que o JPEG original - mas não chega nem perto do uso da especificação JPEG original.

Na mesma época (na verdade, um pouco antes), o xvYCC estava trabalhando (aproximadamente) com os recursos do TIFF, o formato de arquivo openEXR estava sendo desenvolvido. Ele suporta até 32 bits / canal. Embora ainda não seja tão amplo de uso, espero que seja um pouco como o TIFF e, eventualmente, seja usado mais amplamente.

Quanto ao espaço de cores, é verdade que o maior número de bits / pixel se o xvYCC suporta uma gama maior que o sRGB. Mais uma vez, no entanto, o ProPhotoRGB (por exemplo) oferece uma gama muito mais ampla - e (com toda a honestidade) é possível questionar se há muita necessidade de um espaço de cores maior do que o ProPhotoRGB já fornece (aproximadamente 13% das cores que você pode representam no ProPhotoRGB são basicamente imaginários - vão além do que a maioria das pessoas pode perceber).

A vantagem do xvYCC é reduzir a quantidade de dados necessários / usados ​​para representar um determinado nível de qualidade. Para vídeo HD (em particular), minimizar a largura de banda é extremamente importante. Para câmeras fotográficas digitais, no entanto, a largura de banda é uma preocupação muito menor - embora certamente seria bom se (por exemplo) eu pudesse caber duas vezes mais fotos em um tamanho específico de cartão CF, não é um problema particularmente sério. Relativamente poucas pessoas usam a maior capacidade de cartões CF disponíveis, nem o custo dos cartões CF é uma parte substancial do orçamento de um fotógrafo típico.

Conclusão: em termos de recursos técnicos, o xvYCC fornece pouco que ainda não está disponível.

Edit: Eu provavelmente deveria adicionar mais um ponto. Os LCDs começaram a substituir os CRTs da maioria dos monitores na época em que as câmeras digitais foram amplamente utilizadas - mas agora os monitores LCD de nível de consumidor estão começando a exceder (ou até se aproximar) da resolução de cores de 8 bits / canal. Era difícil se preocupar muito em ter 10 ou 12 bits / canal quando um monitor típico só podia exibir cerca de 6.

Há também os pequenos detalhes de que muitas pessoas simplesmente não se importam. Para eles, a qualidade fotográfica se enquadra no critério de aprovação / reprovação. A maioria das pessoas realmente pede é que uma imagem seja razoavelmente reconhecível. Eu suspeito que as pessoas estão lentamente começando a esperar melhor, mas depois de anos de Walgreens (ou quem quer que seja) transformando sua filha ruiva em uma loira (etc.), leva um tempo para se acostumar com a ideia de que a cor pode ser precisa.

Editar: Na verdade, existe outro passo além do JPEG 2000: JPEG XR . Isso suporta HDR de até 32 bits / canal (ponto flutuante). Ele também especifica um formato de arquivo que pode incluir todos os dados usuais do tipo EXIF ​​/ IPTC, perfil de cores incorporado etc. Relevante à pergunta aqui, que inclui um valor para especificar que um arquivo deve usar o espaço de cores xvYCC (um valor de 11no TRANSFER_CHARACTERISTICSelemento sintaxe, tabela A.9, caso alguém se importe). Isso não parece ser amplamente utilizado (pelo menos ainda), mas suporta diretamente o espaço de cores xvYCC para imagens estáticas.

Jerry Coffin
fonte
Obrigado; essa é definitivamente uma maneira de ver isso. Eu sei que esses formatos de arquivo e espaços de cores mais amplos existem. Acho que o que realmente me interessa é o motivo pelo qual há um impulso por maior profundidade de cores no mundo A / V, mas não na fotografia no nível do consumidor.
22611 mattdm em:
1
@mattdm: Eu acho que a razão de haver um empurrão é que ela não estava lá antes. A profundidade de gama ampla / alta de cores está disponível para fotografias estáticas há pelo menos uma década e, até onde eu sei, as câmeras digitais suportam o Adobe RGB (que possui uma gama mais ampla que o sRGB, embora não suporte 98% gama de laboratórios) por alguns anos. O sRAW da Canon está disponível nos DSLRs de entrada e de nível médio há pelo menos alguns anos. Eu concordo com Jerry ... o vídeo é o domínio que está "alcançando".
jrista
4

Então, para responder minha própria pergunta um pouco depois de algumas pesquisas:

Embora não seja xvYCC, por razões que realmente ainda me escapam (desde codificação JPEG usa um esquema mais velho similar), lá não parecem ser algumas encorajando se move sobre o "nós podemos ter coisas boas!" frente, porque parece que pelo menos a Microsoft se preocupa com uma gama de cores mais ampla e melhor profundidade de bits nas fotografias - pelo menos um pouco.

Eles têm, lenta mas seguramente, pressionado por um novo padrão de formato de arquivo chamado JPEG XR (anteriormente chamado Windows Media Photo e, em seguida, HD Photo). É um avanço interessante do JPEG "tradicional", oferecendo melhor compactação com a mesma qualidade de imagem e (até o ponto desta discussão) maior suporte à profundidade de bits.

O JPEG 2000 também faz isso, mas tem sido amplamente um fracasso, possivelmente por causa de preocupações com patentes que cobrem a compactação de wavelets que ele usa, ou talvez algo mais. O ponto importante é: a Microsoft está promovendo o JPEG XR agora, apresentando-o em muitos de seus softwares, incluindo o Internet Explorer 9 . A partir de 2009, é um padrão internacional real oficial e está coberto pela "Promessa da Comunidade" da Microsoft para não aplicar suas patentes de maneira hostil contra implementações. Então, isso é muito bom para futuras captações.

E, junto com isso, eles estão promovendo a ideia de mais bits por canal como " alta cor " (o que é engraçado para mim, pois, na minha opinião, ainda são os antigos canais de 16 bits para todos) modo de placa de vídeo). Como parte disso, eles têm um espaço de cores "intermediário", possivelmente ridiculamente grande, chamado scRGB - leia uma boa descrição detalhada aqui - que é suportada pelo JPEG XR, se você desejar. Pode não ser particularmente útil como um espaço de cores final , uma vez que a maioria de suas cores está na área "imaginária" fora da percepção humana . Mas de qualquer maneira, o ponto é, a Microsoft está integrando padrões de maior profundidade de bits para o sistema operacional Windows, e fotografia ainda éparte disso. De uma entrevista CNET um pouco antiga : "Eu absolutamente espero que o suporte ao scRGB nas câmeras acompanhe o JPEG XR".

Mas isso foi em 2007. Quatro anos e meio depois, ainda não vemos câmeras suportando JPEG XR, muito menos espaços de cores de grande profundidade e gama ampla. Mas, talvez eu esteja apenas sendo impaciente. Como as outras respostas aqui observam, o hardware de exibição que suporta ampla gama está apenas se tornando disponível, o suporte no sistema operacional mais popular do mundo é bastante recente e o primeiro navegador da web a suportá-lo foi lançado este mês . À medida que isso se apodera e, eventualmente, é captado pelo Chrome e Firefox , os programas de processamento de imagem (incluindo conversores RAW) ganharão suporte e a saída direta real das câmeras seguirá.

Ou a coisa toda vai falhar. O tempo vai dizer. :)

mattdm
fonte
2
Uma boa característica do JPEG XR é que ele é computacionalmente barato; portanto, seria viável implementar, por exemplo, a codificação na câmera. O JPEG 2000 é caro. Este é certamente um fator, embora talvez a marcha do poder da computação em diante não seja tão importante.
precisa saber é o seguinte
3

Vou adicionar algumas notas em torno de Jon ...

  1. O espaço de cores é significativo no contexto da câmera apenas quando se fala de JPEGs porque, para imagens Raw, o espaço de cores é uma opção na fase "desenvolvimento". Algumas câmeras (semi-profissionais Pentax, por certo) permitem a escolha de sRGB ou aRGB para o desenvolvimento JPEG, portanto, talvez elas possam adicionar uma terceira (ou quarta para o ProPhoto). Então, novamente, para a maioria dos profissionais, eles puxam a imagem no espaço de cores desejado para o meio de saída pretendido.

  2. O visualizador (e / ou dispositivo) também deve estar ciente do espaço de cores e ser capaz de lidar com ele. Embora os monitores de gama ampla estejam se tornando mais comuns, eles provavelmente ainda são uma minoria massiva e levará um tempo para recuperar o atraso. Caramba, conheço muitas pessoas que ainda possuem monitores CRT antigos conectados a computadores decentes.

John Cavan
fonte
Quero enfatizar novamente que o xvYCC não é um 'espaço de cores', é realmente, na melhor das hipóteses, um formato de codificação para informações de cores RGB. Ele suporta uma gama mais ampla, não porque é um espaço de cores, mas porque armazena informações de cores usando mais bits de informações e as armazena em um formato mais próximo do modo como os seres humanos percebem a luminância e a cor.
jrista
@jrista, o padrão IEC o chama especificamente de "espaço de cores YCC de gama estendida para aplicativos de vídeo - xvYCC", o que implica fortemente que é de fato um espaço de cores. Tendo ler sobre YCC, eu ver onde você está vindo sobre isso, e não querendo pagar cem dólares para ler o padrão eu não posso ter certeza, mas minha suposição atual é que ele especifica tanto uma forma estendida de especificar informações de cores no YCC e um espaço de cores RGB mais amplo.
mattdm
1
Vou ter que ler mais fundo na especificação. Ainda não estou exatamente certo do que o xv representa, então talvez isso realmente se refira a algum tipo de amplo espaço de cores. O YCC, apesar de usar mais bits, certamente não é uma "gama", é apenas um encoding. Seria como dizer que RGB é um espaço de cores ... não é, é apenas uma maneira de codificar dados de cores. A color spacedefine os valores de luminância e crominância de cada cor por meio de um conjunto de mapeamentos de cores primárias, uma tecla gama, um ponto branco e preto e algumas curvas.
jrista
1
Eu estou supondo que "xv" é "valor estendido", mas pode significar apenas "soudns cool".
mattdm
1

O espaço de cores do xvYCC provavelmente não está sendo absorvido pelas fotografias estáticas, porque foram desenvolvidos novos padrões que são uma melhoria para os padrões mais antigos, e nenhum fabricante deseja investir em um padrão que possa se depreciar antes de ser substituído pela "próxima melhor coisa" ' Eles aprenderam com VHS vs. Beta.

O formato de imagem de alta eficiência (HEIF), MPEG-H Parte 12, é um formato de arquivo que especifica um formato estrutural, a partir do qual os formatos de imagem específicos de codec podem ser derivados.

O HEIF também inclui a especificação para encapsular imagens e seqüências de imagens em conformidade com a codificação de vídeo de alta eficiência (HEVC, ISO / IEC 23008-2 | ITU-T Rec. H.265 ou MPEG-H Parte 2).

Ele é mencionado no Vídeo-chave da WWDC 2017 da Apple: https://youtu.be/oaqHdULqet0?t=58m49s .

O iPhone 7 da Apple, ou mais recente, pega o que é fotografado e o salva em formato JPEG ou HEIF. O uso do HEIF pode fornecer uma solução original de Câmera para armazenamento para exibição - uma infraestrutura completa sem perda ou conversão de entrada para saída (ao usar o HEIF descompactado).

Não é que eles ofereçam suporte completo a todos os recursos (como o MPEG raramente é "totalmente suportado") ou que não seja fácil o suficiente para outras pessoas, apenas que eles parecem ser os primeiros a oferecer uma solução completa para imagens (para vídeo tivemos um subconjunto do HEVC H.264, H.265 e, recentemente, do HikVision H.265 + por anos).

Se você conhece outras câmeras que suportam HEIF, por favor, comente ou edite, obrigado.

As câmeras que gravam imagens e vídeos em uma faixa dinâmica particularmente alta (o sensor tem mais de 16 bits por cor) geralmente não processam os dados (criam um arquivo compactado), mas enviam os dados brutos diretamente, por exemplo: http: // www .jai.com / pt-br / products / at-200ge - que a câmera gera 24 a 30 bits por pixel ou http://www.jai.com/en/products/at-140cl - que a câmera gera 24 a 36 bits por pixel .

É possível obter uma câmera com espaço de cores CIE 1931 (e provavelmente outros Espaços de Cores) se você pesquisar incessantemente ou estiver disposto a pagar a um fornecedor de câmeras especializado para fazer exatamente o que deseja, provavelmente estará escrevendo o software para converta do seu Color Space para outro usado por outros programas.

Aqui está um link para a câmera Condor3 CIE 1931 da Quest Innovations: http://www.quest-innovations.com/cameras/C3-CIE-285-USB .

Câmeras com sensores 3,4,5 ou 6 podem dividir o espectro em partes menores e fornecer mais bits por canal, resolvendo a cor e a intensidade exatas com mais precisão: http://www.optec.eu/en/telecamere_multicanale/telecamere_multicanale.asp .


Prisma para uma câmera de 3 canais 3CCD ou 3MOS

Prisma para uma câmera de 4 canais 4CCD ou 4MOS

Prisma para uma câmera de 5 canais 5CCD ou 5MOS


Referências:

https://developer.apple.com/videos/play/wwdc2017/503/

https://nokiatech.github.io/heif/technical.html

https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format

Roubar
fonte