Uma conexão de monitor de 10 bits pode preservar todos os tons em gradientes sRGB de 8 bits em um monitor de gama ampla?

5

Esta questão é sobre o gerenciamento de cores e o uso de uma profundidade de cor maior, 10 bits por canal (30 bits no total, resultando em 1.07 bilhões de cores ou 1024 tons de cinza, às vezes chamadas de "cores profundas") comparadas para o padrão de 8 bits por canal (24 bits no total, 16,7 milhões de cores, 256 tons de cinza, às vezes referido como "true color"). Não confunda com "32 bit color", que normalmente se refere à cor padrão de 8 bits com um canal extra ("canal alfa") para transparência (usado para obter efeitos como janelas semitransparentes, etc.).

O seguinte pode ser considerado como estando em vigor:

1: Um monitor de gama ampla que suporta entrada de 10 bits. Além disso, pode-se supor que o monitor foi calibrado para sua gama nativa e que um perfil de cor ICC foi criado.

2: Uma placa gráfica que suporta saída de 10 bits (e está conectada ao monitor via DisplayPort).

3: Drivers para a placa gráfica que suporta saída de 10 bits.

Se aplicativos que suportam saída de 10 bits e perfis de cores forem usados, esperaria que eles exibissem imagens que foram salvas usando espaços de cores diferentes corretamente. Por exemplo, tanto uma imagem sRGB quanto uma imagem adobeRGB devem ser exibidas corretamente. Se uma imagem sRGB foi salva usando 8 bits por canal (quase sempre o caso), o caminho do sinal de 10 bits garantiria que nenhum gradiente tonal fosse perdido na conversão do sRGB da imagem para o espaço de cor nativo do monitor .

Por exemplo: Se a imagem contiver um pixel que é vermelho puro em 8 bits (255,0,0), o valor correspondente em 10 bits seria (1023,0,0). No entanto, como o monitor tem um espaço de cor maior que sRGB, enviar o sinal (1023,0,0) para o monitor resultaria em um vermelho muito saturado. Portanto, de acordo com o perfil de cores ICC, o sinal seria transformado em um valor diferente com menos saturação de vermelho, por exemplo (987,0,0). Como ainda há muitos níveis entre 0 e 987, todos os 256 valores (0-255) para vermelho no espaço de cores sRGB do arquivo podem ser mapeados exclusivamente para valores de 10 bits corrigidos de cor no espaço de cores nativo do monitor.

No entanto, se a conversão fosse feita em 8 bits, (255,0,0) seria traduzida para (246,0,0), e agora haveria apenas 247 níveis disponíveis para o canal vermelho em vez de 256, degradando a qualidade da imagem exibida.

Minha pergunta é: como isso funciona no Ubuntu? Digamos que eu use o Firefox (que reconhece cores e usa perfis de cores ICC). Eu obteria o processamento de 10 bits, preservando assim todos os níveis de uma imagem de 8 bits? Qual é a situação para outras aplicações, especialmente aplicações fotográficas como Shotwell, Rawtherapee, Darktable, RawStudio, Photivo etc?

O Ubuntu difere de outros sistemas operacionais (Linux e outros) neste ponto?

    
por hjb981 14.04.2013 / 19:38

3 respostas

3

  

"Em poucas palavras, não deve haver problema se você renderizar em 8 ou 10,   mas há um grande problema com o linux, de qualquer maneira, com profundidades de bits. Dentro   linux, infelizmente não há software front-end que permita que você   mude a profundidade do bit. A ÚNICA maneira de alterar a profundidade de bits no linux é   compilar seus drivers de vídeo para chamar 10 bits por canal para o seu   interfaces, em vez de 8. "

Na verdade, os drivers Nvidia GeForce suportam 10 bit por canal no Linux por um tempo agora. É claro que você precisará de um monitor com suporte a cores de 10 bits por canal conectado via DisplayPort à sua placa de vídeo para que ele funcione.

Por outro lado, com o Windows, apenas os drivers da Nvidia para suas placas Quadro permitem cores de 10 bits por canal. Mas a maioria dos aplicativos não funciona (já que a própria área de trabalho do Windows é de 8 bits por canal e é difícil implementar 10 bits por cor de canal em parte da tela, como você veria em um aplicativo de edição de imagens. O Photoshop tem 10 bits por canal trabalhando no Windows usando placas AMD Firepro ou Nvidia Quadro com o CS6. No Photoshop CC, eu vi relatos de problemas com os cartões Firepro.

Basicamente, o Windows requer cartões "Pro" (AMD Firepro ou Nvidia Quadro) para obter esse recurso (10 bits por canal colorido com aplicativos que o suportam), pois os drivers para placas AMD Radeon e Nvidia GeForce não suportam Buffers OpenGL de 10 bits por canal usados por aplicativos como o Photoshop. Veja esta página para algumas informações sobre a Nvidia:

link

Mas, curiosamente, os drivers Nvidia Proprietary Linux para GeForce Cards suportam buffers OpenGL de 10 bits por canal se você tiver uma placa com DisplayPort e uma tela que suporte 10 bits por canal. Eles adicionaram suporte a cores de 10 bits por canal (a.k.a., 30 bits) para seus drivers Linux, começando com 295.20. Aqui está um velho artigo da Phoronix mencionando:

link

Se você for ao Painel de Controle Nvidia X-Server no Linux, e olhar em Configurações de Exibição, deverá ver uma opção Color Depth se o monitor detectado for capaz de 10 bits por canal e conectado por uma Porta de Exibição. Você verá uma opção de 30 bits marcada como Experimental lá. Ou, você pode simplesmente selecionar X Screen 0 (versus a tela detectada) e ver a escolha da profundidade de cor dessa forma (onde o padrão é 24 bits, mas terá 30 bits disponíveis na lista suspensa). É claro que você não deseja selecionar essa opção a menos que tenha uma configuração de hardware real de 30 bits (10 bits por canal) (placa com um DispayPort com um monitor conectado a ela com um painel de cor de 10 bits por canal). / p>     

por JimC 08.11.2013 / 16:32
2

Existem alguns problemas importantes com isso, que abordarei mais adiante.

Se você 'atribuir' um perfil de cores menor (sRGB) a um perfil de cores maior, você terá uma alteração nos valores RGB. A única maneira de preservar com segurança os valores sRGB originais é usar a opção 'convert', que converte o modo de cor ou designação 'Lab' e trys para preservar os matizes originais ou desatribuir o perfil de cores e permitir que o software seja usado renderização rgb.

Em termos de bit, não deve haver um problema se você renderiza em 8 ou 10, mas existe um grande problema com o linux, de qualquer maneira, com profundidades de bit. No linux, infelizmente não há software front-end que permita alterar a profundidade de bits. A ÚNICA forma de alterar a profundidade de bits no Linux é compilar seus drivers de vídeo para chamar 10 bits por canal para suas interfaces, em vez de 8.

    
por user173110 06.07.2013 / 19:49
1

Um ...

O Windows suporta pelo menos a saída 16bpp desde o Windows 7. O post falando sobre os drivers NVidia de 10 bits que não funcionam no Windows porque o SO está limitado a 8bpp é MUITO MUITO ERRADO.

Esta informação está disponível desde 2008 no WinHEC quando foi anunciada e demonstrada pela primeira vez para o Windows 7 e usada na produção do Windows 7 em 2009, quando foi lançada com drivers ATI e NVidia oferecendo pelo menos 10bpp de suporte. (Fontes: Wiki, MSDN, WinHEC, etc.)

Existem muitos profissionais que usam monitores de 30 bits e 48 bits com o Windows 7/8/10, que não estão pontilhando / diminuindo a resolução da cor do SO para o monitor. (Fontes: Wiki, MSDN, Adobe, Autodesk, RenderMan, etc.)

Nota extra: Recentemente, o OS X adicionou suporte a cores de 10 bits para o OS X 10.11 (2015), o que é muito triste, especialmente quando a Apple está exigindo o uso de sua nova estrutura de GPU para usá-lo.

    
por TheNetAvenger 05.01.2016 / 20:20