2013/04/25

Video Vectorizado promete Acabar com os Pixeis


Há muito tempo que se vem a tentar resolver um grande problema que afecta a maioria das imagens digitais: os pixeis. O pixel é elemento fundamental de uma imagem, a sua unidade mais básica e irredutível, e que serve de "escala" para todo o tipo de coisas, da resolução das fotos tiradas em câmaras fotográficas, aos monitores de computadores, aos ecrãs Full HD e Ultra HD.

O problema é que a evolução da tecnologia dos ecrãs vai fazendo com que estes pixeis aumentem sem parar. Das resoluções que dantes pareciam excelentes, nos filmes em DVD, para as resoluções FullHD nos Bluray, e agora... já falamos de vídeos em resolução 4K (ou até superior)! Haverá forma de escaparmos a esta "prisão" que são os pixeis? Na verdade... há.

Os gráficos vectoriais não são nada de novo, e ecrãs vectoriais existiam já antes das primeiras televisões. A sua vantagem é que não dependem da resolução do ecrã para serem apresentados. Se eu especificar que quero desenhar um triângulo, sei que é um triângulo, quer seja desenhado num ecrã de um telemóvel com 128x128 pixeis, ou num ecrã Ultra HD com 4K de resolução - e em ambos os casos ele dará uso a todos os pixeis que estiverem disponíveis.

Mas se as imagens vectoriais até são comuns para icons, cliparts, e outro tipo de gráficos... não o são para algo como vídeo. No entanto, há quem esteja a trabalhar nessa área e que diz que daqui por alguns anos poderemos ter codecs de vídeo vectorial.


A grande vantagem deste sistema é que, tal como num icon vectorial, também o vídeo passaria a ser independente da resolução do ecrã onde fosse exibido, tirando o máximo partido de toda a resolução disponível, e com uma grande vantagem: a codificação do video passaria a ser feita de forma mais eficiente, ocupando menos espaço, e tornando obsoleta a classificação de que se trataria de um vídeo em resolução DVD, FullHD, ou UltraHD! O vídeo ocuparia o mesmo espaço.


Em tempos, os gráficos vectoriais recebiam fortes críticas devido à baixa resolução dos ecrãs, que fazia com que gráficos "desenhados à mão" e estudados para esconder as limitações dos poucos pixeis existentes oferecessem qualidade superior. Mas numa altura em que nos equipamentos mobile temos ecrãs com densidades de pixeis superiores à de páginas impressas em papel, e que na nossas salas já se contempla a passagem de FullHD para UltraHD... penso que poderemos estar numa altura propícia para que os elementos vectoriais possam regressar e libertar-nos da espiral insustentável de criar imagens/vídeos específicos para cada resolução.

8 comentários:

  1. os meus ícones os vectores comprimidos tem tamanhos na ordem dos megabytes, os vectores são escaláveis mas isso pouco quer dizer, um zoom a um vector de qualidade chega sempre a um ponto onde apenas vez um traço ou um contraste...
    os gradientes deixam de ser vistos e e passas a ver o banding (8 bits é o máximo de stops que um gradiente pode ter aka 256)
    Renderizar um vector complexo pode demorar muito muito tempo tenho casos de vectores que demoram horas a ser convertidos em pixmaps.
    Eu só trabalho com vectores adoro os mas eles não resolvem nada disso, vectores são fundamentalmente uma excelente base de trabalho para desenho...

    ResponderEliminar
    Respostas
    1. São coisas diferentes. Tu trabalhas com vectores, e provavelmente com muitas dezenas de layers e camadas sobrepostas para criares os efeitos que pretendes. Aqui trata-se de coisas bastante mais simples - como se pode ver no vídeo de demonstração.

      Eliminar
    2. Carlos acredita em mim, não dá, isto não é novo de todo, e se pensares por um bocado sobre como é que tal coisa funciona rapidamente percebes que é é impraticável... para eres uma ideia pega num qualquer editor de vectores numa imagem com definição de jeito e transforma em vector com qualidade decente, vai sair um monstro, uma path por cada cor 256X256X256 e depois o mesmo para cada objeto são monstros que ocupam centenas de megabytes que demoram horas a renderizar, poderia haver alguma vantagem teorica para animações pois simplesmente guardavas as instruções de alteração de paths, mas nunca é tão simples e é o que os codecs de raster já fazem hoje.

      Eliminar
    3. Não tens que me dizer isso a mim, mas sim a eles. ;)

      De qualquer forma, imagino logo à partida meia dúzia de formas para optimizar a coisa de forma a que não seja exactamente um blob/vector por cada cor individual.
      E se eu imagino isso, imagino também que investigadores que se dedicam a isto há meses/anos o tenham feito a níveis bem mais avançados.

      Podiam era liberar uma demo real de vídeo vectorizado, que assim já demonstravam a validade da coisa.

      Eliminar
    4. A minha posição advém de já ter trabalhado com diversos grupos apostados em coisas semelhantes, isto de trabalho académico tem muito que se lhe diga ;)

      Outra nota sabes onde trabalham os melhores matemáticos do mundo? duas áreas basicamente, algoritmos de fast trading, e codecs ;)

      queres uma ideia bem melhor para "vectorização" de imagens ??? shaders ;)

      Eliminar
  2. em jeito de nota final, podem ir ver os vectores dos icones Oxygem para descobrir que há um para cada tamanho final da renderização.

    como eu sempre digo "SVG is Scalabale Vector Graphics, but not the way you think it is"

    ResponderEliminar
  3. Respostas
    1. Será obtido por conversão e processamento de vídeo normal, como um qualquer outro codec de compressão/descompressão.

      Eliminar