• Nenhum resultado encontrado

4.2 PADRÕES PARA CODIFICAÇÃO BINÁRIA

No documento Download/Open (páginas 167-180)

CAPÍTULO IV COMPUTADOR UMA NOVA MÍDIA

4.2 PADRÕES PARA CODIFICAÇÃO BINÁRIA

Os computadores são máquinas eletrônicas e portanto capazes de tratar somente energia elétrica. Nessa possibilidade de "sentir" a existência ou não de corrente elétrica é que reside a base para o processamento de informações nos computadores. Trata-se do processamento digital binário, ou seja, da representação de dois valores: o valor ZERO,

quando não há corrente elétrica; e o valor UM, quando a corrente está presente. A essa unidade de informação denominamos BIT – Binary digit.

Um importante componente dos computadores, o clock, ou relógio, é responsável por medir o período de tempo em que o processador irá sentir se há ou não corrente. Para isso, o clock "pulsa" e a cada pulso o computador "sente" se há ou não corrente. Dessa forma o computador pode, enquanto estiver ligado, "sentir" continuamente a corrente elétrica e compor conjuntos enormes de bits. As pulsações são medidas em HERTZ42, ou seja, número de pulsos por segundo, nas quais o computador é capaz de "sentir " conteúdos de bits.

Ao pulsar 8 vezes, o computador irá "sentir" uma seqüência de 8 bits, contendo zeros e/ou uns. A essa seqüência é dada a denominação de BYTE43 e representa a unidade básica para o processamento da informação, com a qual o computador é capaz de processar e representar enorme quantidade de objetos – informações como imagens sons e outras – do mundo real.

Por ser composto por uma seqüência de 8 bits, a um byte, podem ser atribuídos 256 valores diferentes. Isso porque se o bit mais a direita pode representar dois valores binários, zero ou um, o bit seguinte à esquerda, combinado com o primeiro, podem, juntos, representar 22, ou 4 valores: 00, 01, 10 e 11. Ou seja, o valor binário 00 indica que nos dois "pulsos" medidos não havia corrente; o valor 01, indica que somente no segundo pulso havia corrente; o valor 10, indica que somente no primeiro pulso havia corrente; e que no valor 11, em ambos os pulsos a corrente estava presente. Portanto como o Byte é composto por 8 bits e para cada bit temos duas possibilidades de valor (zero ou um), teremos 28 possibilidades, ou 256 combinações diferentes.

Esse número de combinações possibilita que sejam representados, com agrupamentos binários, letras do alfabeto, números decimais, caracteres especiais (tais como acentuação) e,

42 Unidade de medida que levou o nome de Heinrich Hertz, o primeiro cientista a desenvolver um invento que permitiu confirmar a possibilidade de se emitir e receber as ondas de rádio. O escocês James Maxwell já havia previsto a existência de ondas de rádio, matematicamente, em 1864. Entre 1885 e 1889, como um professor da física no instituto politécnico de Karlsruhe, Alemanha produziu ondas eletromagnéticas em laboratório e mediu seus wavelength (tamanhos de ondas) e velocidade. Atualmente os microcomputadores PC são capazes de trabalhar em velocidade superior a dois GigaHERTZ, ou mais de dois 2 bilhões de pulsações por segundo. 43 O termo foi cunhado por Werner Buchholz, funcionário da IBM, em 1956. Foi uma mutação da palavra bite criada com a intenção de não confundi-la com bit. Em 1962 Buchholz descreveu byte como "um grupo de bits utilizados para codificar um caractere, ou o número de bits transmitidos paralelamente entre unidades de entrada e saída.". Arquiteturas mais antigas utilizavam bytes de 6 ou 7 bits ou conter 9 bits ou 36 bits. Os sistemas PDP-10 da Digital Corporation e o IBM 7030 suportavam bytes cujos tamanhos podiam variar de 1 a 64 bits. A adoção de bytes compostos de 8 bits aconteceu em 1956 e tornou-se padrão após o lançamento do sistema operacional IBM /360, em abril de 1964. O sistema ASCII utiliza sete dos oito bits para a codificação de conteúdos e um bit para controle.

também, as combinações de operações que se deseja que os computadores realizem. As operações podem ser de cálculos, apresentação dos resultados no monitor de vídeo, leitura do que está sendo digitado no teclado ou da movimentação e posição do mouse44 etc. Ao combinarmos o conteúdo de vários bytes podemos representar seqüências de textos, números, ou operações.

No entanto, da mesma forma que nos codec, é fundamental que sejam acordados quais combinações representam o que, e para isso são criadas convenções de padronização aceitas por toda a indústria. Os padrões mais importantes para dar significado aos conteúdos dos bytes são o ASCII – American Standard Coding for Information Interchange, estabelecido pela ANSI- American National Standard Institute, e utilizado nos microcomputadores padrão IBM PC- Personal Computer e APPLE Macintosh; e o padrão EBCDIC – Extended Binary-Coded Decimal Interchange Code, estabelecido pela IBM, e utilizados em computadores de médio e grande porte, de sua fabricação. Nesse sentido, durante a operação, o processador do computador pode comparar o conteúdo dos bytes com o conteúdo da tabela de códigos e identificar se o byte que está sendo processado possui um código de operação, uma letra ou um caractere especial. Na tabela apresentada a seguir demonstramos alguns símbolos e os respectivos códigos binários, nos formatos ASCII e EBCDIC:

Tabela 1: Codificação Binária

Símbolo Alfa-numérico Código binário ASCII Código Binário EBCDIC

A 0100 0001 1100 0001 B 0100 0010 1100 0010 C 0100 0011 1100 0011 D 0100 0100 1100 0100 ! 0010 0001 0101 1010 J 0100 1010 1101 0001

44 Dispositivo eletrônico que controla as coordenadas de posicionamento (cursor) nas telas de computadores, na medida em que movimentamos manualmente o dispositivo. (www.hyperdictionary.com)

Tabela 1: Codificação Binária

" " (espaço em branco) 0010 0000 0100 0000

Z 0101 1010 1110 1001

5 (número decimal cinco) 0011 0101 1111 0101 Fonte: http://www.natural-innovations.com/computing/asciiebcdic.html

Portanto, conforme podemos observar no exemplo da tabela, a letra Z, maiúscula, é identificada pelo processador que trabalha com código ASCII cada vez que um byte chega com o conteúdo 01011010. Já esse mesmo conteúdo binário representa "!"(ponto de exclamação) para um outro processador que trabalhe com código EBCDIC. Evidentemente, os computadores trabalham com um único sistema de códigos, dependendo do tipo de processador que utilizam e, portanto, necessitam de software de conversão de um sistema de código para o outro, de forma a possibilitar a transferência das informações codificadas, entre computadores que trabalham com processadores que utilizam códigos diferentes.

Quanto às operações, cada fabricante de processadores detalha quais códigos acionam quais operações de seus processadores. A esse padrão de códigos necessários à elaboração de programas denominamos Instruction Set Codding, ou “Conjunto de códigos de instrução”.

Até aqui vimos que o principal objetivo de sistemas de mídia digital é possibilitar o envio e o recebimento de media object, em formato digital, por qualquer usuário da rede a ela conectado através de algum periférico, bem como o armazenamento desses conteúdos no que denominamos de subsistemas de bases de conhecimento.

Esclarecemos que os conteúdos, quer estejam presentes em nossas mentes ou em algum tipo de mídia analógica, terão que ser digitalizados por software de codec, ou seja, convertidos para formato binário para que possam ser processadas por computadores.

Também vimos como os computadores representam letras, números e caracteres especiais, além de instruções de operação, utilizando-se somente de corrente elétrica, cuja existência ou não, a cada pulso do clock, determina o conteúdo dos bytes. Porém, embora fique claro que podemos nos utilizar um conjunto de bytes para processar grandes volumes de texto, representados através de uma seqüência de caracteres alfa-numéricos, surge a pergunta que buscamos responder a seguir: como os computadores representam as imagens?

Mesmo os computadores mais antigos, que trabalhavam com impressoras de caracteres e possibilitavam a impressão de 132 caracteres (colunas) em uma linha e 75 linhas em uma página, permitiam a representação de imagens, embora de qualidade precária. Nada impedia que determinados caracteres fossem impressos em determinados pontos de intercessão entre linhas e colunas de forma que o conjunto de pontos impressos lembrasse algo parecido com uma figura.

A possibilidade de apresentação de imagens nos computadores, com qualidade, só foi possível após a adaptação e adição de recursos para operação em modo gráfico45 em equipamentos CRT- Cathod Ray Tube46, similares ao da figura 9 (apresentada em anexo), para funcionar como periférico de saída (OUTPUT) de informações computacionais. Até então os CRTs estavam sendo utilizados amplamente em aparelhos de televisão sem os recursos adicionais requeridos pelos computadores.

Desde os primeiros CRT, o caminho percorrido para chegar aos padrões de qualidade dos atuais monitores de vídeo gráficos foi árduo e demandou muitas pesquisas e investimentos, notadamente da IBM e de associações como a VESA-Video Electronics Standards Association. Os primeiros monitores trabalhavam exclusivamente em modo texto47 e, portanto, não dispunham de recursos para trabalhar em modo gráfico, exceto de forma análoga a da impressora citada anteriormente.

Existem muitas formas para classificarmos os monitores de vídeo modernos, utilizados como periféricos de saída nos computadores:

a) Quanto ao modo de apresentação de conteúdos: modo texto ou gráfico.

b) Quanto à capacidade de representar cores podem ser: monocromáticos, que mostram somente uma cor no plano frontal (foreground) e outra no plano de fundo (background), possibilitando somente a apresentação em duas cores (branco e preto, verde e preto ou âmbar e preto); ou coloridos, também denominados monitores RGB, que podem mostra separadamente sinais combinados com nas cores Red (vermelho), Green (verde) e Blue (azul), de forma análoga ao das televisões coloridas.

c) Quanto ao tamanho da parte visível da tela, medindo em polegadas a distância entre os dois cantos da tela.

45 Sofisticado modo de apresentação de conteúdos com ilimitada variedade de formas e fontes. A tela é tratada como um bloco de pontos na tela, com os quais são criadas as imagens.

Fonte:www.hyperdictionary.com/search.aspx

46 Um CRT trabalha movimentando feixes de elétrons para frente e para trás na tela. Cada vez (es) que o feixe passa, acende um ponto de fósforo dentro do tubo de gás, iluminando essa forma a parte ativa da tela. Ao desenhar linhas de alto a baixo na tela, são criadas as imagens. Fonte: www.electronics-lab.com/action/gallery/ 47 Modo texto ou carater, a tela é tratada como um conjunto de blocos nos quais podem ser apresentados somente caracteres ASCII . Fonte : www.hyperdictionary.com/search.aspx

Quanto à resolução, que indica qual é a densidade com que os pixels- Picture Element, estão presentes na tela. Os pixels correspondem aos pontos de fósforo que se acendem na tela para formar a imagem.

Quanto ao tipo de sinal que os mesmos aceitam e que podem ser digital ou analógico. O sinal analógico é um dos requisitos para assegurar qualidades de apresentação e está presente em todos os monitores modernos.

Quanto à freqüência do sinal de entrada o que no caso dos monitores capazes de operar com múltiplas freqüências podem apresentar as imagens em diferentes resoluções, dependendo de como os dados das imagens são recebidos.

g) Quanto à largura de banda dos sinais aceitos, determinante na velocidade com que a tela é redesenhada (refresh) em altas resoluções.

h) Quanto à possibilidade de interlace48, técnica que possibilita maior resolução do monitor embora as custas de redução na velocidade de reação do monitor.

i) Quanto à distância entre os pixels, de forma que quanto menor for essa distância mais pixels serão passíveis de apresentação na tela e, conseqüentemente, mais legível será a imagem.

j) Quanto à luminosidade e contraste presentes em cada pixel.

Em síntese, a qualidade das imagens apresentadas nos monitores atuais dos computadores depende de todas as características supracitadas e são essas variáveis que determinam também o maior ou menor espaço ocupado nas memórias das máquinas ou das placas adaptadoras que interconectam os monitores aos computadores e preparam, na memória, a imagem que será mostrada.

Embora cada um desses itens de classificação seja importante, sua discussão foge das questões abordadas neste texto e, portanto, nos preocuparemos em clarificar exclusivamente como as imagens são formadas, de forma a serem apresentadas pelos CRT's que operam em modo gráfico.

Nos monitores gráficos as imagens são mostradas através da divisão do espaço da tela em pixels, organizados em colunas e linhas, com uma distância tão pequena entre os pixel que eles parecem estar conectados. Quanto maior for a resolução, maior será o número de dpi - dots per inch (pontos presentes em uma polegada) e mais legível se torna a imagem. Em cada pixel, a cor apresentada será descrita por um certo número de bits utilizados para representa-la. Um dot, ou ponto, cuja cor é representada somente por 1(um) bit pode ter somente 2 cores representadas, uma com valor zero e outra com valor um. Um dot com cor representada por 8 (oito) bits suporta até 256 cores ou escalas de cinza. Por outro lado, se

48 Consiste em varreduras horizontais rápidas, combinadas com varreduras verticais mais lentas, de modo que a imagem passa a ser explorada em linhas. Quando completada a varredura vertical, ou quadro, o processo se repete. Dessa maneira obtém-se a varredura entrelaçada que elimina uma série de dificuldades, fazendo com que o olho humano veja a imagem sem oscilação e como seqüência contínua de cenas." (VALLEJO, 1998, p. 16)

forem utilizados 32 bits para representar a cor de um determinado dot, teremos a possibilidade de representar mais de 16 milhões de cores (true color ou cores reais).

Isso posto, podemos exemplificar um cálculo e avaliar qual será o espaço ocupado por uma imagem na memória do computador, independentemente do que nela esteja representado. Se por exemplo queremos mostrar uma imagem que ocupe a totalidade da tela de um monitor SVGA com 1.024 colunas x 768 linhas de resolução em true color, teremos que fazer o seguinte cálculo: tamanho = (1. 024 colunas x 768 linhas) x (32 bits de cores por coluna/linha) e então o resultado será de 25.165.824 bits, ou 3.145.728 Bytes49. Outra forma de avaliarmos adequadamente o tamanho dessa imagem é compararmos o espaço requerido pela imagem com o existente em um disket de microcomputador, que possui o espaço total de 1,44 Mbytes. Considerando que a imagem ocupa 3,0 Mbytes (1 Mega Byte = 1.024 X 1.024 bytes), serão necessários dois diskets para armazenar apenas uma dessas imagens.

Outro cálculo importante diz respeito à velocidade de transferência e ao impacto dessa operação, no tempo que essa imagem utilizará para transferir-se entre dois computadores interconectados em uma rede local com velocidade de 2 Megabits por segundo (Mb/s). Nesse caso o tempo necessário será de 12 segundos. Se por outro lado a transferência se der através de linha telefônica discada comum, na velocidade de 19.600 bits/s, esse processo levará quase 44 minutos.

Nosso próximo assunto trata da fórmula encontrada para resolver os problemas de espaço ocupado e do tempo para transmissão de imagens, bem como de outros tipos de conteúdos extensos. Trata-se de software de codec que implementam algoritmos para comprimir conteúdos, de forma a diminuir-lhes o tamanho, antes que sejam gravados em arquivos digitais ou encaminhados para transmissão pela rede. Para que seja possível a outros softwares descomprimirem esses arquivos, sem provocar a perda de conteúdos, é de fundamental importância que os criadores dos algoritmos de codec divulguem quais forem os padrões de codec adotados.

Existem basicamente duas formas de especificação de imagens: A primeira implica a codificação da imagem através de um bitmap, ou seja, de um mapa contendo a posição e o conteúdo (zero ou um) dos bits que compõem os pixels que formam a imagem, de modo muito similar ao que foi exposto anteriormente para a formação de imagens em monitores de

49 O tamanho da imagem também pode ser quantificada em 3.072 Kbytes (1 kilobytes = 1.024 bytes), ou 3,0 Mbytes (1 Mega Byte = 1.024 K bytes)

vídeo. As imagens codificadas dessa forma são caracterizadas e denominadas como imagens do tipo raster50. A segunda, denominada vetorial, implica codificação das definições geométrico-analíticas dos objetos gráficos e de atributos da imagem e não dos pixels que as compõem. Com a definição vetorial da imagem, o software que apresentará a imagem no monitor irá "redesenhar" a imagem de acordo com as especificações simbólico-geométricas dos objetos e aplicar os atributos especificados no arquivo (cor, textura, iluminação, etc). Ou seja, constrói o bitmap com as definições vetoriais da imagem.

Após a codificação de imagens estáticas em bitmaps podemos aplicar algoritmos de compressão de forma a torná-las menores, conforme veremos agora. A título de exemplo vamos imaginar a conversão da imagem de uma folha de papel branca em um arquivo do tipo raster, na configuração de 1.024 colunas x 768 linhas de resolução em true color. Nesse caso o arquivo bitmap resultante terá o já calculado tamanho de 3.145.728 Bytes, embora todos os pixels contenham exatamente a mesma seqüência de bits, representando a cor da folha. Poderíamos construir um algoritmo de compressão bastante simplista que analisasse a cor presente em cada um dos 1.024 pixels, de cada uma das 768 linhas. No caso do nosso exemplo, o software de compressão reconheceria que todos os pixels têm o mesmo conteúdo e, portanto, todos os 3.145.728 Bytes de informação poderiam ser substituídos por outra que registrasse, por exemplo, a seguinte informação : {1:786432, 0000}, ou seja, a imagem ocuparia somente 15 bytes.

Evidentemente, uma imagem com mais variações de cor geraria um arquivo maior, essa variação também pode ocorrer em função de diferentes fórmulas matemáticas empregadas nos algoritmos de compressão, e, portanto, teremos a possibilidade de representar a mesma imagem codificada e comprimida por diversas técnicas. Isso posto surge a pergunta: como sabemos qual algoritmo deve ser aplicado para descomprimir uma certa imagem previamente comprimida?

O meio mais comum para identificar o padrão de codificação de imagens é atribuir um sufixo composto por um ponto e letras ao nome do arquivo. Para exemplificar esse procedimento, tomemos o algoritmo de compressão para imagens do tipo raster conhecido como JPEG51. Quando uma imagem é comprimida pelo algoritmo do JPEG o resultado é 50 De acordo com a www.hyperdictionary.com, raster é a formação que consiste de um conjunto de linhas horizontais compostas de pixels e é utilizada para formar imagens em CRT's.

51 Padrão criado pelo grupo JPEG -'Joint Photographic Experts Group. O nome formal do padrão é ISO/IEC

IS 10918-1 | ITU-T Recommendation T.81, publicado pela ISO – International Standard Organization, em

armazenado em um arquivo que ao ser gravado tem atribuído, além do nome do arquivo, uma extensão. Nesse caso, um arquivo contendo a foto de um gato e comprimido pelo algoritmo JPEG pode ser chamado "imagem_de_gato1.jpg", indicando o conteúdo do arquivo (imagem_de_gato1) e o formato (.jpg) em que a imagem se encontra.

Da mesma forma, arquivos contendo desenhos vetoriais também são identificados com extensão específica, como é o caso do formato CGM (Computer Graphics Metafile for electronic documents), definido pelo padrão internacional ISO/IEC 8632:1999, para descrever digitalmente fotografias definidas de forma vetorial, raster, e híbridas de forma bastante compacta.

Esses dois casos são apenas exemplos de algoritmos e software de compressão para arquivos gráficos, cuja quantidade de opções pode ser vislumbrada na lista que apresentamos no anexo 2 e que se encontra em http://www.wotsit.org

Aos padrões de codec digital, identificados segundo os sufixos presentes nos arquivos gerados pelos mesmos, também é comum a designação de formato ou extensão dos arquivos para identificar-lhes o conteúdo armazenado.

Algumas extensões ou formatos de arquivos, bastante populares, foram desenvolvidas por empresas comerciais, tais como a Microsoft quando da criação de seus softwares, dentre os quais os conhecidos formatos doc e ppt (ou ppp). O padrão de formato doc estabelece como os textos e suas apresentações (fontes, tamanhos, figuras, estrutura de documento, imagens, etc) são armazenadas em arquivos digitais, quando utilizamos o software de edição de textos Word da mesma empresa; enquanto o formato ppt estabelece a forma de armazenamento dos conteúdos produzidos no software de apresentação Powerpoint.

Aos padrões de codificação de formatos que não são disponibilizados em domínio público e, via de regra, tem o acesso a essa informação impedidos por força de patentes e direitos autorais, denominamos de código fechado (ou proprietário). Aos padrões cuja especificação é colocada em domínio público denominamos código aberto ou Open Source.

Evidentemente que, no caso de padrões de código fechado, ou proprietário, outros fabricantes de software terão dificuldades de representar de forma adequada o conteúdo de arquivos com as extensões proprietárias, dificultando sobremaneira a interoperabilidade entre softwares. Esse mecanismo, por sinal, é muito empregado de forma a assegurar a manutenção de monopólios em certos segmentos da indústria de software.

mantenham os direitos de propriedade sobre os mesmos. Três exemplos bastante significativos e de grande importância para a indústria gráfica são os padrões estabelecidos pela empresa ADOBE, para armazenamento digital de conteúdos escritos, compostos por

No documento Download/Open (páginas 167-180)