Professional Documents
Culture Documents
Almacenamiento de Datos
Prof: J. Solano 2011-I
Objetivos
Despues de estudiar este captulo el estudiante ser capaz de:
Listar cinco diferentes tipos de datos usados en un computador.
Describir como diferentes datos son almacenados dentro de un computador. Describir como enteros son almacenados dentro de un computador. Describir como reales son almacenados en un computador. Describir como audio es almacenado en un computador usando uno de los varios sistemas de codificacin. Describir como texto es almacenado en un computador usando muestreo, cuantificacin y codificacin. Describir como las imgenes son almacenadas en un computador usando regmenes de raster (mapeo de bits) y grficos vectoriales. Describir como las imgenes son almacenadas en un computador como una representacin de imgenes cambiando en el tiempo.
Introduccion a la Ciencia de la Computacion - CC101
INTRODUCCION
Los datos hoy dia vienen en diferentes formas incluyendo nmeros, texto, audio, imgenes y video.
La industria de computacin usa el trmino multimedia para definir informacin que contiene nmeros, texto, imgenes y video.
Introduccion a la Ciencia de la Computacion - CC101
Compresin de datos
Para ocupar menos espacio de memoria, los datos son normalmente comprimidos antes de ser almacenados en el ordenador. La compresin de datos es un tema muy amplio y complicado.
Compresin de datos
ALMACENANDO NUMEROS
Un nmero se cambia al sistema binario antes de ser almacenados en la memoria del ordenador, como se describe en la clase anterior. Sin embargo, an hay dos cuestiones que deben manejarse: 1- Como al macenar el signo de un nmero 2- Como mostrar el punto decimal
Almacenando enteros
Los enteros son nmeros sin parte fraccionaria. Por ejemplo, 134 y -125 son enteros, mientras que 134.23 y -0.235 no lo son. Un entero puede ser considerado como un nmero en el que se fija la posicin del punto decimal: el punto decimal esta a la derecha del bit menos significativo (ms a la derecha). Por esta razn, la representacin de punto fijo se utiliza para almacenar nmeros enteros. En esta representacin el punto decimal se supone pero no se almacena.
10
11
Ejemplo 1
Almacenar 7 en una ubicacin de memoria de 8 bits usando representacin sin signo
Solucion
Primero cambie el nmero entero a binario, (111)2. Agregue cinco 0s para hacer un total de ocho bits (00000111)2. El entero se almacena en la ubicacin de memoria. Tenga en cuenta que el subndice 2 se utiliza para enfatizar que el entero es binario, pero el subndice no se almacena en el ordenador.
12
Ejemplo 2
Almacenar 258 en una ubicacin de memoria de 16 bits.
Solucion
Cambie el entero a binario, (100000010)2. Agregue siete 0s para hacer un total de dieciseis bits (0000000100000010)2. El entero se almacena en la ubicacin de memoria.
13
Ejemplo 3
Que es retornado de un dispositivo de salida cuando se recupera un patrn de bits 00101011 almacenado en memoria como un entero sin signo (unsigned)?
Solucin
Usando el procedimiento de la clase anterior, el binario es convertido al entero sin signo 43.
14
15
En representatin de magnitud y signo, el bit mas a la izquierda define el signo del entero. Si es 0, el entero es positivo. Si es 1, el entero es negativo.
Introduccion a la Ciencia de la Computacion - CC101
16
Ejemplo 4
Almacenar +28 en una ubicacin de memoria de 8 bits usando representacin sign-and-magnitude
Solucion
El entero es cambiado a binario de 7 bits. Al bit mas a la izquierda se le asigna 0. El numero de 8 bits es almacenado.
17
Ejemplo 5
Almacenar -28 en una ubicacin de memoria de 8 bits usando representacin sign-and-magnitude
Solucin
El entero es cambiado a binario de 7 bits. Al bit mas a la izquierda se le asigna 1. El nmero de 8 bits es almacenado.
18
Ejemplo 6
Recuperar el entero que es almacenado como 01001101 en representacin sign-and-magnitude
Solucin
Desde que el bit mas a la izquierda es 0, el signo es positivo. El resto de los bits (1001101) es cambiado a decimal como 77. Despues de aadir el signo, el entero es +77.
19
Ejemplo 7
Recuperar el entero que es almacenado como 10100001 en representacin sign-and-magnitude
Solucin
Desde que el bit mas a la izquierda es 1, el signo es negativo. El resto de los bits (0100001) es cambiado a decimal como 33. Despus de aadir el signo, el entero es -33.
20
21
22
En representacin twos complement, el bit mas la izquierda define el signo del entero. Si es 0, el entero es positivo. Si es 1, el entero es negativo.
Introduccion a la Ciencia de la Computacion - CC101
23
24
Ejemplo 9
Aqui se muestra como se obtiene el entero original si aplicamos la operacin one's complement dos veces.
25
Two's Complementing
La segunda operacin se llama twos complementing o tomar el two's complement de un entero en binario. Esta operacion es hecha en dos pasos. Primero copiamos bits de la derecha hasta que un 1 es copiado; entonces, cambiamos (flip) el resto de los bits. Ejemplo 10 Lo siguiente muestra como tomamos el twos complement de un entero 00110100.
26
Ejemplo 11
Aqui se muestra que siempre se obtiene el entero original si aplicamos la operacin two's complement dos veces.
Un camino alternativo para tomar el twos complement de un entero es tomar primero el ones complement y despues aadir 1 al resultado.
Introduccion a la Ciencia de la Computacion - CC101
27
Ejemplo 12
Almacenar el entero 28 en una ubicacin de memoria de 8 bits usando representacin two's complement.
Solucin
El entero es positivo (sin signo significa positivo), entonces despus de transformarlo de decimal a binario ninguna otra accin es necesaria. Notar que cinco 0s adicionales son aadidos a la izquierda para completar ocho bits.
28
Ejemplo 13
Almacenar el entero -28 en una ubicacin de memoria de 8 bits usando representacin two's complement.
Solucin
El entero es negativo, entonces despues de transformarlo a binario, el computador aplica la operacin two's complement al entero.
29
Ejemplo 14
Recuperar el entero que es almacenado como 00001101 en memoria, en formato two's complement.
Solucin
El bit mas a la izquierda es 0, entonces el signo es positivo. El entero es cambiado a decimal y el signo es aadido.
30
Ejemplo 15
Recuperar el entero que es almacenado como 11100110 en memoria, en formato two's complement.
Solucion
El bit mas a la izquierda es 1, entonces el signo es negativo. El entero necesita la operacin two's complement antes de ser cambiado a decimal.
31
32
Comparacin
33
Almacenando reales
Un real es un nmero con una parte integral y una parte fraccional. Por ejemplo, el 23,7 es un nmero real - la parte entera es 23 y la parte fraccionaria es 0.7. Aunque una representacin de punto fijo puede ser usada para representar un nmero real, el resultado puede no ser preciso o puede no tener la precisin requerida. Los siguientes dos ejemplos explican por qu
Nmeros reales con partes enteras grandes o partes fraccionales muy pequeas no deberan ser almacenadas en representacin de punto fijo.
Introduccion a la Ciencia de la Computacion - CC101
34
En el sistema decimal, supongamos que usamos una representacin de punto fijo con dos dgitos a la derecha del punto decimal y catorce dgitos a la izquierda del punto decimal, para un total de dieciseis dgitos. La precisin de un nmero real en este sistema se pierde si tratamos de representar un nmero decimal como 1.00234: el sistema almacena el nmero como 1,00
Ejemplo 16
Ejemplo 17
En el sistema decimal, asumamos que usamos una representacin de punto fijo con seis dgitos a la derecha del punto decimal y diez dgitos de la izquierda del punto decimal, para un total de diecisis dgitos. La precisin de un nmero real en este sistema se pierde si tratamos de representar un nmero decimal como 236,154,302,345.00. El sistema almacena el nmero como 6,154,302,345.00: la parte entera es mucho menor de lo que debera ser
Introduccion a la Ciencia de la Computacion - CC101
35
Una representacin de punto flotante de un nmero es hecha de tres partes: un signo, un shifter (cambiador) y un nmero de punto fijo.
Introduccion a la Ciencia de la Computacion - CC101
36
Ejemplo 18
Aqui se muestra el nmero decimal 7,452,000,000,000,000,000,000.00 en notacin cientfica (representacin de punto flotante).
Las tres secciones son el signo (+), el shifter (21) y la parte de punto fijo (7.425). Notar que el shifter es el exponente.
Introduccion a la Ciencia de la Computacion - CC101
37
Ejemplo 19
Mostrar el nmero 0.0000000000000232 en notacin cientfica (representacin de punto flotante)
Solucin
Utilizamos el mismo criterio que en el ejemplo anterior, movemos el punto decimal tras el dgito 2, como se muestra a continuacin:
Las tres seccions son el signo (-), el shifter (-14) y la parte de punto fijo (2.32). Notar que el shifter es el exponente.
Introduccion a la Ciencia de la Computacion - CC101
38
Ejemplo 20
Mostrar el nmero (101001000000000000000000000000000.00)2 en representacin de punto flotante.
Solucin
Utilizamos la misma idea, manteniendo solo un dgito a la izquierda del punto decimal.
39
Ejemplo 21
Mostrar el nmero (0.00000000000000000000000101)2 en representacin de punto flotante.
Solucin
Utilizamos la misma idea, manteniendo solo un digito a la izquierda del punto decimal.
40
Normalizacin
Para hacer la parte fija de la representacin uniforme, tanto el mtodo cientfico (para el sistema decimal) como el mtodo de punto flotante (para el sistema binario) utilizan slo un dgito diferente de cero a la izquierda del punto decimal. Esta es la llamada normalizacin. En el sistema decimal este dgito puede ser de 1 a 9, mientras que en el sistema binario slo puede ser 1. De aqui en adelante, d es un dgito diferente de cero, x es un dgito, e y es 0 o 1.
41
Notar que el punto y el bit 1 a la izquierda de la seccin del punto fijo no son almacenados estan implcitos.
La mantisa es una parte fraccional que, junto con el signo, es tratada como un entero almacenado en representacin sign-and-magnitude.
Introduccion a la Ciencia de la Computacion - CC101
42
Sistema de exceso
El exponente, la potencia que muestra cuantos bits del punto decimal debe moverse hacia la izquierda o derecha, es un nmero con signo. Aunque esto podra haber sido almacenados usando representacin two's complement, una nueva representacin, llamada el Sistema de Exceso (Excess System), se utiliza en su lugar. En el sistema de exceso, enteros positivos y negativos se almacenan como enteros sin signo. Para representar un entero positivo o negativo, un entero positivo (llamado sesgo (bias)) se aade a cada nmero para cambiar (shift) de manera uniforme hacia el lado no negativo. El valor de este sesgo es 2m-1 - 1, donde m es el tamao de la ubicacin de memoria para almacenar el exponente.
43
Ejemplo 22
Podemos expresar dieciseis enteros en un sistema numrico con asignacin de 4 bits. Mediante la adicin de siete unidades a cada nmero entero en este rango, se puede trasladar de manera uniforme todos los enteros a la derecha y hacer todos ellos positivos, sin cambiar la posicin relativa de los enteros con respecto uno a otro, como muestra la figura. El nuevo sistema se conoce como exceso-7, o representacin sesgada con un valor de 7 de sesgo.
44
Estndar IEEE
45
Especificaciones IEEE
46
Ejemplo 23
Mostrar la representacin Excess_127 (single precision) del numero decimal 5.75. Solucion a. El signo es positivo, entonces S = 0. b. Transformacin decimal a binario: 5.75 = (110.11)2. c. Normalizacin: (110.11)2 = (1.1011)2 22. d. E = 2 + 127 = 129 = (10000001)2, M = 1011. Necesitamos anadir diecinueve ceros a la derecha de M para hacer 23 bits. e. La representacin se muestra abajo:
47
Ejemplo 24
Mostrar la representacion Excess_127 (single precision) del numero decimal -161.875. Solucion a. b. c. d. e. El signo es negativo, entonces S = 1. Transformacion decimal a binario: 161.875 = (10100001.111)2. Normalizacion: (10100001.111)2 = (1.0100001111)2 27. E = 7 + 127 = 134 = (10000110)2, y M = (0100001111)2. Representacion:
48
Ejemplo 25
Mostrar la representacin Excess_127 (single precision) del nmero decimal -0.0234375. Solucin a. b. c. d. e. El signo es negativo, entonces S = 1. Transformacin decimal a binario: 0.0234375 = (0.0000011)2. Normalizacin: (0.0000011)2 = (1.1)2 2-6. E = -6 + 127 = 121 = (01111001)2, y M = (1)2. Representacin:
49
Ejemplo 26
El patrn de bits (11001010000000000111000100001111)2 esta almacenado en formato Excess_127. Mostrar el valor en decimal. Solucin
a. El primer bit representa S, los siguientes ocho bits, E, y los restantes 23 bits, M. b. El signo es negativo. c. El shifter = E 127 = 148 - 127 = 21. d. Esto d (1.00000000111000100001111)2 221. e. El nmero binario es (1000000001110001000011.11)2. f. El valor absoluto es 2,104,378.75. g. El nmero es 2,104,378.75.
Introduccion a la Ciencia de la Computacion - CC101
50
Overflow y Underflow
Almacenando Cero
Un nmero real con la parte integral y la parte fraccional siendo cero, esto es, 0.0, no puede ser almacenado usando los pasos discutidos antes. Para manejar este caso especial, se ha convenido que en este caso el signo, exponente y la mantisa sean 0s.
Introduccion a la Ciencia de la Computacion - CC101
51
ALMACENANDO TEXTO
Una seccin de texto en cualquier idioma es una secuencia de smbolos utilizados para representar una idea en ese idioma. Por ejemplo, el idioma Ingls utiliza 26 smbolos (A, B, C, ..., Z) para representar las letras maysculas, 26 de smbolos (a, b, c, ..., z) para representar letras minsculas, nueve smbolos (0, 1, 2, ..., 9) para representar caracteres numricos y smbolos (., ?, :, ; , , !) para representar puntuacin!. Otros smbolos como espacio, nueva lnea, en blanco, y la ficha (tab) se utiliza para la alineacin del texto y la legibilidad.
52
Podemos representar cada smbolo con un patrn de bits. En otras palabras, texto tal como CATS, que esta hecho de cuatro smbolos, puede ser representado por un patrn de n-bit, cada patrn definiendo un nico smbolo.
53
54
Cdigos
ASCII
55
ALMACENANDO AUDIO
El audio es una representacin del sonido o la msica. Audio, por naturaleza, es diferente a los nmeros o texto que hemos discutido hasta ahora. El texto est compuesto por entidades contables (caracteres): podemos contar el nmero de caracteres de texto. El texto es un ejemplo de datos digitales. Por el contrario, el audio no es contable. Audio es un ejemplo de datos analgicos. Incluso si somos capaces de medir todos sus valores en un perodo de tiempo, no podemos almacenarlas en la memoria del ordenador, ya que necesitaramos un nmero infinito de posiciones de memoria.
Introduccion a la Ciencia de la Computacion - CC101
56
57
Muestreo
Si no puede grabar todos los valores de una seal de audio en un intervalo, podemos grabar algunos de ellos. Muestreo significa seleccionar slo un nmero finito de puntos en la seal analgica, medir sus valores y grabarlos
58
Cuantizacin
Los valores medidos para cada muestra es un nmero real. Esto significa que podemos almacenar 40,000 valores reales para cada muestra de un segundo. Sin embargo, es ms fcil de usar un entero sin signo (un patrn de bits) para cada muestra. Cuantizacin se refiere a un proceso que redondea el valor de una muestra al valor entero ms cercano. Por ejemplo, si el valor real es de 17.2, puede ser redondeado a 17: si el valor es de 17,7, se puede redondear a 18.
59
Codificacin
Los valores de la muestra cuantificada deben ser codificados como patrones de bits. Algunos sistemas asignan valores positivos y negativos a las muestras, algunos slo desplazan la curva a la parte positiva y asignan solo valores positivos. Si llamamos a la profundidad de bits (bit depth) o nmero de bits por muestra B, el nmero de muestras por segundo, S, es necesario almacenar S B bits por cada segundo de audio. Este producto es referido a veces como tasa de bits (bit rate), R. Por ejemplo, si usamos 40,000 muestras por segundo y 16 bits por cada muestra, la tasa de bits es R = 40,000 16 = 640,000 bits por segundo
Introduccion a la Ciencia de la Computacion - CC101
60
61
ALMACENANDO IMAGENES
Imagenes son almacenadas en computadores usando dos tecnicas diferentes: raster graphics y vector graphics.
Raster graphics
Grficos de mapa de bits (Raster graphics (or bitmap graphics)) se utiliza cuando es necesario almacenar una imagen analgica, tal como una fotografa. Una fotografa consiste de datos analgicos, similar a la informacin de audio. La diferencia es que la intensidad (color) de los datos vara en el espacio en lugar del tiempo. Esto significa que los datos deben muestrearse. Sin embargo, el muestreo en este caso, normalmente se llama digitalizacin (scanning). Las muestras se denominan pxeles (pixels - elementos de imagen).
Introduccion a la Ciencia de la Computacion - CC101
62
Resolucin Al igual que el muestreo de audio, en la digitalizacin de la imagen (scanning) necesitamos decidir el nmero de pxeles que debe registrar por cada pulgada cuadrada o lineal. La tasa de scanning en el procesamiento de la imagen se llama resolucin. Si la resolucin es suficientemente alta, el ojo humano no puede reconocer la discontinuidad en las imgenes reproducidas Profundidad de color El nmero de bits utilizados para representar un pxel, su profundidad de color (color depth), depende de cmo el color del pxel es manipulado mediante diferentes tcnicas de codificacin. La percepcin del color es como nuestros ojos responden a un haz de luz. Nuestros ojos tienen diferentes tipos de clulas fotorreceptoras: algunas responden a los tres colores primarios rojo, verde y azul (a menudo llamado RGB), mientras que otros se limitan a responder a la intensidad de la luz.
Introduccion a la Ciencia de la Computacion - CC101
63
True-Color Una de las tcnicas usadas para codificar un pixel es llamada True-Color, usa 24 bits para la codificacin del pixel.
64
Indexed-Color El esquema indexed coloro palette colorusa solo una porcin de esos colores.
65
Por ejemplo, una cmara digital de alta calidad utiliza casi tres millones de pxeles de una foto de 3 x 5 pulgadas. A continuacin se muestra el nmero de bits que necesitan ser almacenados con cada rgimen:
66
Estandares para codificacion de imagenes Varios estndares de facto para la codificacin de la imagen estn en uso. JPEG (Joint Photographic Experts Group) utiliza el esquema de True-Color, pero comprime la imagen para reducir el nmero de bits. GIF (Graphic Interchange Format), por el contrario, utiliza el esquema de Indexed-Color.
67
Vector graphics
Raster graphics tienen dos desventajas: el tamao del archivo es grande y reajuste es problematico. Ampliar un raster graphics (imagen de mapa de bits grficos) significa ampliacin de los pxeles, por lo que la imagen se ve desigual cuando se agranda. El mtodo de codificacin de imagen de grfico vectorial (vector graphic), sin embargo, no almacena los patrones de bits para cada pxel. Una imagen es descompuesta en una combinacin de formas geomtricas como lneas, cuadrados o crculos. Por ejemplo, considere un crculo de radio r. Las piezas principales de informacin que un programa necesita para dibujar este crculo son los siguientes: 1. El radio r y la ecuacin de un crculo. 2. La localizacin del punto central del crculo. 3. El estilo de lnea y color del trazo. 4. El estilo y color del relleno.
Introduccion a la Ciencia de la Computacion - CC101
68
Codificacin de imgenes
69
70
ALMACENANDO VIDEO
Video es una representacin de imgenes (llamada marcos frames) con el tiempo. Una pelcula consiste de una serie de frames mostrados uno tras otro. En otras palabras, el video es la representacin de la informacin que cambia en el espacio y en el tiempo. Por lo tanto, si sabemos cmo almacenar una imagen dentro de un computador, tambin sabemos cmo almacenar vdeo: cada imagen o marco (frame) se transforma en un conjunto de patrones de bits y se almacena. La combinacin de las imgenes entonces representa el vdeo
69