sexta-feira, 25 de maio de 2012

FIF Glitch

Esta série de imagens é resultado de um estudo que iniciei sobre o formato de arquivo FIF (fractal image format), método de compressão de imagens baseado em matemática fractal, o qual começou a ser desenvolvido em 1987 por Michael Barnsley e Alan Sloan com o objetivo de criar um formato de arquivo que codificasse imagens independentemente de sua resolução, com um grau de compressão comparado ao jpg, e que mantivesse uma melhor qualidade final nas imagens comprimidas em taxas mais altas.

Na prática, após comprimir uma imagem no formato fif, ao descomprimi-la novamente para um formato usual é possível escolher o tamanho do arquivo de saída. Por exemplo ao comprimir como fif uma imagem de 10x10cm poderemos descomprimi-la em 100x100cm com menos perdas visuais que o processo normal de redimensionamento - interpolação bicúbica - utilizado em editores de imagem como o Photoshop.

O arquivo fif contém uma representação matemática da imagem, chamada iterated function system (IFS), a partir da qual o processo de interpolação fractal reconstrói detalhes perdidos da imagem ao efetuar o redimensionamento para um tamanho maior. É baseado em um mapeamento da imagem em blocos (blocos de domínio e grupos de blocos) e na auto-similaridade inerente à matemática fractal, que se utiliza das informações descritas nestes blocos (ifs) para reconstruir os detalhes das imagens ao redimensioná-las.
Atualmente esta tecnologia de compressão e redimensionamento foi incorporada no software 'Perfect Resize', (antigo Genuine Fractals), na forma de um plug-in para Photoshop que comprime neste formato e amplia imagens bitmap, com resultados melhores que a interpolação bicúbica no caso de grandes ampliações. 

Iniciei a pesquisa com este formato pois surgiu a necessidade de ampliar algumas imagens bitmap para imprimir em grande formato. Alternativamente ao plug-in para photoshop 'Perfect Resize', resolvi usar o 'Fractal Imager 1.1',  um shareware de 1995 desenvolvido pela Iterated System Inc., empresa pertencente aos criadores do formato fif e detentora das patentes do mesmo.

Ao usar o 'Fractal Imager 1.1' percebi algumas limitações do formato e também cometi alguns 'erros' de codificação que logo me apontaram possibilidades interessantes em Glitch Art. Enquanto experimentava com estes erros e limitações descobri que certos redimensionamentos que partiam de originais muito pequenos (200x200px por ex.), com paletes de cores específicas, ou com certas caracteristicas visuais, quando comprimidos como fif com configurações específicas de encoding, ao serem descomprimidos pelo 'Fractal Imager 1.1' em grandes formatos (15000x15000px por ex.) ocorriam erros de decodificação que resultavam em imagens muito interessantes, povoadas de estruturas e artefatos de compressão que revelavam visualmente a matemática subjacente ao código-fonte do formato fif. Entre estas estruturas são bem visíveis os conjuntos de blocos, os blocos de domínio, a auto-similaridade em diferentes escalas na imagem, e as estruturas baseadas em triangulos de Sierpinski, o exemplo visual clássico de um IFS - iterated function system - lógica na qual se baseia este formato.

Experimentando um pouco mais descobri também possibilidades visuais vinculadas ao espaço de cor utilizado, tanto no arquivo de entrada (imagem a ser comprimida como fif) como no arquivo de saída (arquivo descomprimido e ampliado a partir do fif). Diferentes combinações de entrada e saída entre rgb, indexed color e grayscale também permitem certo controle sobre a cor e a forma. Dimensões em pixels que não tenham múltiplos de 8, ou um arquivo de saída com diferentes proporções também podem alterar o resultado final.

Com o tempo fui compilando - na forma de processos - certos conjuntos de procedimentos e configurações que geravam erros de codificação e decodificação ao lidar com as variáveis, no intuito de utilizar estes processos como métodos de criação visual. Também compilei seus resultados visuais - glitches - para utilizá-los como elementos de composição e ter suficiente controle sobre a forma e cor.

Os trabalhos abaixo foram criados a partir de fragmentos de imagens com 400x340px (14x12cm - 72dpi), comprimidas como fif e descomprimidas como bmp com 15600x13260px (5,5x4,7m - 72dpi):

ifs glitch 1 - 5610x7382px - 47,5x62,5cm - 300 dpi

ifs glitch 2 - 5610x7382px - 47,5x62,5cm - 300 dpi

ifs glitch 3 - 5610x7382px - 47,5x62,5cm - 300 dpi


ifs glitch 4 - 5610x7382px - 47,5x62,5cm - 300 dpi

ifs glitch 5 - 5610x7382px - 47,5x62,5cm - 300 dpi

ifs glitch 6 - 5610x7382px - 47,5x62,5cm - 300 dpi

ifs glitch 7 - 5610x7382px - 47,5x62,5cm - 300 dpi


segunda-feira, 16 de abril de 2012

WDP (jpeg-xr) Glitch 2

Alguns exemplos de compressão wdp (jpeg-xr). Inicialmente utilizando uma imagem bitmap (1bit), em diversos graus de compressão e diferentes opções de 'overlap' (tópico 4.2.2.3 do HD Photo Featured Specification doc).

O Processo:
1-Abra a imagem no Photoshop (com o plug-in wdp instalado). Converta-a para grayscale (image>mode>grayscale). Então, converta-a para bitmap (image>mode>bitmap) com as configurações abaixo:




Imagem original - retrato de Nietzsche. Fonte: Wikimedia Commons


Imagem 1 - halftone screen (28/45)

2-Salve a imagem 1 como wdp (jpeg-xr) - no menu do Photoshop está como 'HD Photo (*.WDP; *.HDP)'. Use as configurações abaixo e salve várias versões do arquivo com 'quantization' entre 10 e 18 e 'overlap' = two levels:

Use valores para 'Quantization:' entre 10 e 18

Overlap=two levels - Quantization=10
Overlap=two levels - Quantization=11

Overlap=two levels - Quantization=12

Overlap=two levels - Quantization=13

Overlap=two levels - Quantization=14
Overlap=two levels - Quantization=15

Overlap=two levels - Quantization=16
Overlap=two levels - Quantization=17
Overlap=two levels - Quantization=18

3-Salve a novamente a imagem 1 como wdp (jpeg-xr). Use as configurações abaixo e salve várias versões do arquivo com 'quantization' entre 9 e 25 e 'overlap' = one level:

Use valores para 'Quantization:' entre 9 e 25

Overlap=one level - Quantization=9

Overlap=one level - Quantization=10

Overlap=one level - Quantization=11

Overlap=one level - Quantization=12

Overlap=one level - Quantization=13

Overlap=one level - Quantization=14

Overlap=one level - Quantization=15

Overlap=one level - Quantization=16

Overlap=one level - Quantization=17

Overlap=one level - Quantization=18

Overlap=one level - Quantization=19

Overlap=one level - Quantization=20

Overlap=one level - Quantization=21

Overlap=one level - Quantization=22

Overlap=one level - Quantization=23

Overlap=one level - Quantization=24

Overlap=one level - Quantization=25


sexta-feira, 13 de abril de 2012

PGF (progressive graphics file) Glitch


Henry David Thoreau. Fonte da imagem: Wikimedia Commons



Pesquisando formatos de arquivo alternativos para trabalhar com arte glitch, encontrei o  PGF (progressive graphics file). Este formato permite compressão lossy e lossless, trabalha com espaços de cor bitmap (1bit), cores indexadas, escala de cinza, rgb, cmyk, lab color (8 e 16bit).
Ao aplicar diferentes graus de compressão em arquivos bitmap (1bit) e arquivos de cores de cores indexadas, encontrei algumas possibilidades interessantes.
Neste processo utilizei Photoshop CS3 e o plug-in para compressão PGF (Windows XP SP3).

O Processo:

1-Instale o plug-in para compressão PGF no Photoshop;
2-Escolha uma imagem e abra no PS. Converta-a para grayscale (image>mode>grayscale). Então, converta-a para bitmap (image>mode>bitmap) com as configurações abaixo:



O resultado é algo semelhante a imagem abaixo (imagem 1). Salve-a como tif, para reutilizá-la novamente mais adiante.

Imagem 1 - bitmap (1bit)


3-Converta a imagem novamente para grayscale (image>mode>grayscale). Então a converta para rgb (image >mode>rgb), daí a converta para cores indexadas (image>mode>indexed color) com as configurações abaixo:


4-Salve o arquivo de cores indexadas resultante como PGF. Na janela 'PGF Options' entre o valor '2'. Faça o mesmo usando '3', '4' e '5':

Entrar valores de 2 a 5


Imagem 2 - indexed color pgf. PGF Options: Image Quality='2'
Imagem 3 - indexed color pgf. PGF Options: Image Quality='3'
Imagem 4 - indexed color pgf. PGF Options: Image Quality='4'

Imagem 5 - indexed color pgf. PGF Options: Image Quality='5'


A seguir um procedimento de edição de código fonte usando Notepad++, para alterar as cores da imagem. Devem ser editados alguns caracteres nas primeiras linhas do código, que inicia em 'PGF 6'. Para isto escolhi o arquivo pgf que foi salvo com compressão '5' (imagem 5):

Código antes da edição

Código depois da edição (abaixo a imagem resultante)




Seguindo deste ponto, editar o código para alterar a cor, desta vez para verde:

Código antes da edição
Código depois da edição (abaixo a imagem resultante)



E a partir do verde, o vermelho:

Código antes da edição

Código depois da edição (abaixo a imagem resultante)


Abaixo um procedimento semelhante ao anterior com o objetivo de alterar as cores para ciano, magenta e amarelo. Neste escolhi o arquivo pgf que foi salvo com compressão '4' (imagem 4):

Código antes da edição

Código depois da edição (abaixo a imagem resultante)



Código antes da edição
Código depois da edição (abaixo a imagem resultante)

Código antes da edição
Código depois da edição (abaixo a imagem resultante)







Imagem 1 - bitmap (1bit)

Retomando a imagem 1, criada na etapa 2 do processo, repita a etapa 3 (1bit>grayscale>rgb>indexed color) com as seguintes configurações: 


Salve o arquivo como PGF (etapa 4). Na janela 'PGF Options' entre o valor '3', faça o mesmo usando '4', '5', '6', '7' e '8'.

Entrar valores de 3 a 8


Imagem 1.1 - indexed color pgf. PGF Options: Image Quality='3'


Imagem 2.1 - indexed color pgf. PGF Options: Image Quality='4'


Imagem 3.1 - indexed color pgf. PGF Options: Image Quality='5'


Imagem 4.1 - indexed color pgf. PGF Options: Image Quality='6'



Imagem 5.1 - indexed color pgf. PGF Options: Image Quality='7'


Imagem 6.1 - indexed color pgf. PGF Options: Image Quality='8'


A seguir o procedimento para alterar as cores editando o código fonte da imagem no Notepad++. Escolhi o arquivo pgf que foi salvo com compressão '4' (imagem 2.1):

Código antes da edição

Código depois da edição (abaixo a imagem resultante)








1-Partindo da imagem original (no topo do post), abra-a no Photoshop, converta para grayscale e depois para bitmap com as seguintes configurações:




Imagem resultante - halftone screen (28/45)

2-Converta a imagem resultante novamente para grayscale (image>mode>grayscale), então para rgb (image>mode>rgb), e daí para cores indexadas (image>mode>indexed color) com as configurações abaixo:


3-Salve o arquivo de cores indexadas resultante como PGF. Na janela 'PGF Options' entre o valor '6':



Arquivo PGF resultante - indexed color - uniform 32 - compressão='6'








4-Editar o código fonte do arquivo PGF acima usando o Notepad++, conforme o indicado nas imagens a seguir:

Código antes da edição
Código depois da edição (imagem resultante abaixo)


Código antes da edição

Código depois da edição (abaixo a imagem resultante)



Código antes da edição

Código depois da edição (imagem resultante abaixo)