Las
instrucciones de un programa se representan mediante una secuencia de bits, de
acuerdo a una tabla que asocia una de
estas secuencias a cada código de operación del conjunto de instrucciones del
procesador. Los datos deben codificarse de alguna forma, para que de esa forma
sea posible almacenarlos en la memoria.
La
forma en que esto se hace depende del tipo de datos, ya sean estos números
enteros, números reales, caracteres, figuras, imágenes, animaciones, audio o
video. Para cada tipo de datos existen múltiples estándares de codificación.
Representación de enteros positivos.-
Toda
la información y los programas deben convertirse a unos y ceros para que sean
tratables. Esta restricción obliga al uso de un sistema de numeración distinto
al que estamos acostumbrados, conocido como sistema decimal, o base 10.
Representación de números reales.-
Los
computadores representan los números reales, es decir, aquellos que tienen
decimales, de una forma muy similar a como lo hacen las calculadoras
científicas. La forma más usual de lograr esto, es seguir un estándar
establecido por el Institute of Electrical anid Electronics Engineers, IEEE. Por su complejidad solo se tratara las
generalidades de la representación en punto flotante.
Un
número en punto flotante tiene 3 componentes:
·
Signo
·
Mantisa (numero positivo)
·
Exponente (con signo)
La
Fig. 1 muestra los tres componentes que forman un número de punto flotante. El
signo determina si el número es positivo o negativo, y corresponde a un ¶único
bit al inicio de la representación. Tanto la mantisa como el exponente pueden
codificarse de distintas maneras. Sin embargo, la cantidad de bits que se
utilizan para cada uno determina el rango de números reales que se podría
representar.
Fig.1:
Componentes de un número real representado con punto flotante
Cuando
se usa 2 como la base de la representación
que es lo más común |, el número representado se puede interpretar como:
Por
ejemplo, si el bit de signo es un uno, el exponente es ¡2 y la mantisa es 1, el
número representado seria:
Los
estándares actuales definen dos tipos de números de punto flotante: Los de
precisión simple y los de doble precisión. Según el estándar de la IEEE, los
números de precisión simple utilizan 24 bits para la mantisa y 8 bits para el
exponente, por lo que este último puede variar desde 126 hasta 127. Por otra
parte, los de doble precisión utilizan 53 bits para la mantisa y 11 para el
exponente, por lo que este último puede variar en el rango de 1022 a 1023.
Representación de caracteres.-
Los
caracteres son los símbolos que manipula el computador para representar letras,
digitos y otros elementos de puntuación o con sindicados específicos. Básicamente,
todos los simbolos que aparecen en el teclado del computador son caracteres,
pero también hay otros caracteres que no aparecen en el teclado.
Originalmente
existían dos estándares de codificación para representar los caracteres en un
computador. Estos códigos asignan un número entero con cada carácter, el cual después
puede representarse en notación binaria.
El primero de ellos, el EBCDIC, toma su nombre
de las siglas de Extended Binary Coded Decimal Interchange Code, y era el
esquema de codificación utilizado en los primeros mainframes que fabricaba IBM.
El EBCDIC utiliza 8 bits para codicar los caracteres. Su uso es muy limitado en
la actualidad.
El segundo estándar, que todavia se utiliza en la actualidad es el ASCII, que
toma su nombre de las siglas de American Standard Code for Information
Interchange. Originalmente, el código utilizaba solo 7 bits, lo que le permitía
representar 128 caracteres distintos. En la actualidad, el código ASCII utiliza
8 bits, lo que le permite representar 256 caracteres distintos, incluyendo símbolos
de lenguajes distintos al Ingles.
Algunos de los caracteres ASCII no son visibles, y se utilizan para
controlar dispositivos de entrada y salida, como modems, terminales e impresoras.
Las letras minúsculas y mayúsculas sin
considerar las vocales con acento así
como los dígitos decimales, se encuentran consecutivos en el código, por lo que
el código de una letra es muy similar al de su sucesora.
Más recientemente, la International Stantard Organization, ISO, estableció
un estándar para la representación universal de caracteres, llamado Unicode. La
idea es que el nuevo código permita representar símbolos provenientes de
cualquier lenguaje, así como su correcta comunicación a través de Internet, por
ejemplo, en mensajes de correo electrónico. El Unicode utiliza 16 bits para
representar hasta 65536 caracteres distintos. Sus códigos se expresan
normalmente como 4 dígitos hexadecimales.
Los primeros 128 códigos del Unicode coinciden con los 128 códigos que
asigna el ASCII de 7 bits. A este subconjunto se le conoce como el Basic Latín,
y abarca los códigos que van desde el 000016 hasta el 007F16. Posteriormente
existen el Latin-1 (008016 al 00FF16) y el Latín Extended (010016 al 024F16).
Para denotar que el código de un carácter se está expresando según el Unicode,
se agregan los símbolos U+ antes del código hexadecimal. Por ejemplo, U + 0041,
para representar la letra A.
Fig2: Fragmento de la tabla ASCII de 8 bits
Fig3: Representación de caracteres según distintos estándares de codificación
REPRESENTACION DE IMAGENES
La
calidad de una imagen representada en un computador esta determinada por la
resolución con la que fue digitalizada es el proceso mediante el cual una
imagen es transformada en información numérica. Básicamente la imagen se
representa en una matriz de puntos, llamados pixels, manipulables en forma
independiente. En una imagen a color, los pixels tienen información de color.
En una imagen en blanco y negro los pixels pueden estar únicamente encendidos o
apagados
Una
misma imagen puede digitalizarse en distintas resoluciones. Por ejemplo, una
fotografía de 10x5 cms. Podría digitalizarse en una matriz de 512 x 512 pixels,
o en una de 1024 x 1024 pixels. En el segundo caso, existen más pixels por cada
centímetro cuadrado de la fotografía, por lo que la calidad de la imagen
digitalizada ser la mayor.
La
forma más simple para representar una imagen es mediante un mapa de bits, también
conocido como bitmap. En un bitmap, se asigna una cantidad constante de bits a
cada pixel de la imagen, y en esos bits se almacena la información de color, o
de tonalidades de gris, que representan al pixel. En el caso de imágenes en
blanco y negro, basta con asociar un bit con cada pixel. Así, una imagen de
1024 x 1024 pixels, en blanco y negro, puede representarse utilizando 2e20 bits,
lo que equivale a 128 Kbytes.
Con
las imágenes a color el tamaño de los bitmaps aumenta, dependiendo de la
cantidad de colores distintos que se quiera manipular, lo que se conoce como la
paleta de colores. Por ejemplo, si se utilizan 256 colores distintos, cada
pixel requiere de 8 bits para representar su color. Así, una imagen de 1024 x 1024
pixels, con una paleta de 256 colores, requiere de 3 x 2e23 bits, es decir, 1
Mbyte. La paleta de colores preferida es la de 24 bits, que puede formar
alrededor de 16 millones de colores diferentes. A este modo de representación
se le conoce como color verdadero, o true color. En esta paleta se utilizan 8
bits para representar una tonalidad de cada uno de los tres colores básicos,
con los que se forma el color en un computador: Rojo, verde y azul. En este
caso, la imagen de 1024 x 1024 pixels requiere de 3 x 2e23 bits, es decir, 3
Mbytes.
La
enorme cantidad de espacio que requieren las imágenes representadas como
bitmaps ha llevado al desarrollo de técnicas de compresión. Los algoritmos mas
populares de compresión de datos, como por ejemplo el conocido como zip,
pertenecen a una categoría llamada compresión sin perdida de información. Esto
quiere decir que la información comprimida, una vez recuperada, es exactamente
la original. Estos algoritmos son muy útiles para compresión de caracteres,
documentos, etc., pero no logra buenos radios de compresión con las imágenes.
Para
la compresión de imágenes se acostumbra utilizar algoritmos de compresión con perdida
de información.
Estos
algoritmos desechan información que no es útil, con el objetivo de reducir el tamaño
de las imágenes. A pesar de la perdida de información, por lo general los
cambios no son perceptibles por los sentidos humanos.
La
idea es explotar el hecho de que el ojo humano no percibe con exactitud ligeros
cambios en el color, pero si lo hace ante cambios en el brillo.
Uno
de los formatos de representación de imágenes, con compresión con pérdida de información,
lo constituye el jpeg, que toma su nombre del grupo de expertos que lo diseño:
Joint Photographic Experts Group. Este formato funciona muy bien con imágenes a
color o en escala de grises, principalmente en escenas del mundo real. Sin
embargo, no se recomienda su uso en dibujos generados a base de líneas. El
radio de compresión puede alcanzar 20 : 1, pudiendo comprimir una imagen de 2
MBytes en 100 KBytes. Su funcionamiento se basa en el registro de las
variaciones existentes entre pixels cercanos.
Otro
formato que es muy popular es el gif, el cual es superior al jpeg cuando se
tratan imágenes que no son del mundo real, por ejemplo, figuras o gráficos
generados por computador, así como imágenes en blanco y negro. También puede encontrarse
formatos como el tiff y el eps.
Representación de sonido
La
digitalización de sonidos, es decir, la traducción de ondas a números, se lleva
acabo utilizando la transformada de Fourier. Dada la gran cantidad de
información que resulta es necesario, en primera instancia, eliminar aquellos sonidos
que están fuera del rango de frecuencias que el oído humano puede percibir. Aun
así, la cantidad de datos es muy grande, incluso para unos pocos segundos de
sonido.
Al
igual que para el caso de las imágenes, existen estándares de compresión que se
basan en la eliminación de información redundante. Este es el caso del formato
mpeg, que corresponde a la versión para audio del jpeg. Su nombre proviene de
las siglas de Moving Picture Experts Group y no se limita al almacenamiento de
audio. En realidad, el mpeg comprende una diversidad de estándares para la
representación de audio y video. En la actualidad se utiliza el mpeg de nivel
4, conocido como MPEG-4, a partir del cual han surgido formatos muy populares
como el DivX.
En
la Internet, los formatos más populares para la transmisión de audio son
RealAudio, un estándar propietario de una empresa comercial, y WMA, el estándar
de Microsoft.
Representación de video
El
video, así como el cine y la televisión, se basa en una serie de cuadros que se
pasan rápidamente frente a la vista del espectador. El video es uno de los
tipos de datos que requieren mayor cantidad de espacio para su representación.
Por esta razón, la compresión es un factor determinante. Incluso los formatos
comerciales, como el DVD, existen gracias a complicados esquemas de compresión.
La compresión de video puede llevarse a cabo dentro de cada cuadro, registrando
diferencias dentro del cuadro, o entre cuadros, registrando diferencias entre
un cuadro y el siguiente.
Dentro
del ámbito de los computadores, el formato MOV se origino en el mundo de los
computadores
Macintosh
de Apple, aunque actualmente se utiliza en todo tipo de computadores Esta
basado en MPEG-4 y es utilizado por conocidos programas como el Quicktime. En
esta gama de formatos se encuentra también el formato RealVideo, que es
bastante popular para transferir video por la Internet, junto con el Windows Media
de Microsoft.
El
formato AVI fue creado por Microsoft, para manipular video dentro de su sistema
operativo Windows, e incluye niveles muy bajos de compresión de datos. Su
nombre proviene de las siglas de Audio Video Interleave.
Este
formato permite representar video compuesto de cuadros de hasta 160 x 120
pixels, con una tasa de refrescamiento de 15 cuadros por segundo.
REFERENCIAS
BIBLIOGRAFICAS
Universidad
De Talca Facultad De Ingeniería. Computación y Programación