Informática E.P.S. Universidad de Sevilla TEMA 1: REPRESENTACIÓN DE LA INFORMACIÓN 1 2 ÍNDICE 1. 2. 3. 4. 5. 6. NÚMEROS TEXTO SEÑALES ANALÓGICAS AUDIO IMÁGENES VÍDEO 3 1. NÚMEROS (1): Binario (1) Representación de los números, ejemplos: Números Romanos: I, II, III, IV, V, VI, VII, VIII, IX, X, ... Sistema decimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ... Un mismo número puede representarse de forma diferente en cada sistema de numeración. Ejemplos: III y 3, X y 10, XXI y 21… ¿Y un Computador? Sistema de numeración binario: 0 y 1 Porque todos sus componentes se comunican utilizando señales que admiten dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario. Base de numeración: Nº de símbolos diferentes utilizados por el Sistema de Numeración para representar los números. Cada símbolo se denomina dígito. Sistema de numeración Base de numeración Nº de dígitos Dígitos usados Decimal Base 10 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Binario Base 2 2 0, 1 Hexadecimal Base 16 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Para indicar la base: Decimal 23(10 110(10 5(10 Binario 101(2 110(2 1(2 Hexadecimal 23(16 110(16 A3F0(16 4 1. NÚMEROS (1): Binario (2) Base 10 (10 dígitos): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Cada dígito tiene un valor diferente (peso) según su posición: ... ... ... Centenas Decenas Unidades 100 10 1 2 1 10 10 100 Más significativo Potencias de 10 Menos significativo Ejemplo: 324 = 3×102 + 2×101 + 4×100 = 300 + 20 + 4 Operaciones aritméticas: fáciles de realizar siguiendo unas reglas Base 2 (2 dígitos): 0, 1 Binario Decimal 0 0 1 1 10 2 11 3 100 4 101 5 110 6 111 7 ... ... Cada dígito tiene un valor diferente (peso) según su posición: ... ... 23 8 Más significativo 22 4 21 2 20 1 Potencias de 2 Menos significativo Ejemplo (de Binario a Decimal): 10110(2 = 1×24 + 0×23 + 1×22 + 1×21 + 0×20 = 16 + 4 + 2 = 22(10 5 1. NÚMEROS (1): Binario (3) ¿De Decimal a Binario? divisiones sucesivas entre dos 18 2 0 9 2 18(10 = 10010(2 1 4 2 0 2 2 0 1 Dígito menos significativo Suma: y Dígito más significativo Producto: 0×0=0 0×1=0 1×1=1 0+0=0 0+1=1 1 + 1 = 10 Operaciones aritméticas binarias 1 similares a las del sistema decimal 1 1 0 1 Acarreo × 1 1 1 0 0 1 0 1 1 1 1 0 + 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 0 6 1. NÚMEROS (2): Hexadecimal Representar un número en binario es tedioso ¿Algo más compacto? HEXADECIMAL (Base 16): Hexadecimal Binario Decimal Hexadecimal Binario Decimal 0 0000 0 8 1000 8 1 0001 1 9 1001 9 2 0010 2 A 1010 10 3 0011 3 B 1011 11 4 0100 4 C 1100 12 5 0101 5 D 1101 13 6 0110 6 E 1110 14 7 0111 7 F 1111 15 Conversión hexadecimal-binario: 1 dígito hexadecimal 247(10 = 1111 0111(2 = F7(16 4 dígitos binarios 7 1. NÚMEROS (3): Unidades Computador uso de número fijo de bits para representar valores. Con N bits se pueden representar 2N números naturales: de 0 a 2N-1 1 bit, 21 valores: 0 y 1 2 bits, 22 = 4 valores: 00, 01, 10, 11 3 bits, 23 = 8 valores: 000, 001, 010, 011, 100, 101, 110, 111 0 0 0 0 0 0 1 1 2 0 1 0 2 4 0 1 1 3 1 byte 1 0 0 4 8 bits 8 1 0 1 5 1 1 0 6 Números binarios “grandes”: 1 1 1 7 Kilo K = 210 = 1024 Kilo bits Kb = 210 bits Kilo bytes KB = 210 bytes Mega M = 220 = 1024K Mega bits Mb = 220 bits = 1024Kb Mega bytes MB = 220 bytes = 1024KB Giga G= = 1024M Giga bits Gb = 230 bits = 1024Mb Giga bytes GB = bytes = 1024MB 230 230 8 1. NÚMEROS (4): Signo (1) Introducción En el sistema decimal se añade los símbolos + y – para expresar el signo. Binario: no existen los símbolos + y -. Puesto que el computador sólo puede almacenar 0 y 1, no puede utilizar un símbolo nuevo para los nº negativos Para representar números negativos se utilizan diferentes codificaciones que permiten indicar el signo del número. Signo magnitud Complemento a dos NOTA: los números hexadecimales se utilizan para representar números binarios naturales de forma compacta; por lo tanto, no tienen signo. Se interpretaría el número en S-M o Ca2 como si fuera una sucesión de bits (binario natural) y se convertiría a hexadecimal. 9 1. NÚMEROS (4): Signo (2) ¿Cómo representamos el signo? S-M y Ca2 Representación Signo-Magnitud: se añade un bit de signo (0:+, 1: -) N bits Signo Magnitud 1 bit N-1 bits Ejemplos: -3 1011 -4 1100 -7 1111 +3 0011 +4 0100 +7 0111 Existen dos representaciones del cero: +0 y –0: Rango de valores: 2N−1 +0 0 00 ... 0 –0 1 00 ... 0 2N−1 Podemos representar positivos y negativos Positivos de +0 hasta 2N−1–1; Negativos de –0 hasta –(2N−1–1) El rango de valores que podemos representar con N bits es: [ –(2N−1–1), 2N−1–1 ] Ejemplo: Con 8 bits podemos representar [–(27–1), 27–1] [–127,127] Ventaja Representación intuitiva y fácil Inconvenientes: Existen dos representaciones del 0 El signo se trata de un modo diferente en las sumas y restas Hardware del ordenador Mayor complejidad del 10 1. NÚMEROS (4): Signo (3) Representación Complemento a 2 (Ca2): Bit más significativo indica signo: 0 para positivos y 1 para negativos Existe una sola representación del cero Si es positivo Idéntico a Signo-Magnitud Si es negativo Requiere una conversión 2 Procedimientos de conversión: A. Fórmula matemática Sea k el valor que queremos convertir a Ca2, utilizando N bits k ≥ 0: su representación en Ca2 es equivalente a Signo-Magnitud Ejemplo: 3 en Ca2 con 5 bits es 00011 k < 0: su representación en Ca2 es la representación en binario natural de 2N–|k| Ejemplos: –3 en C2 con 5 bits es la representación en binario natural de 25 – 3=32 – 3=29 11101 –16 en C2 con 5 bits es la representación en binario natural de 25 – 16=32 – 16=16 10000 11 1. NÚMEROS (4): Signo (4) B. Inversión: Sea k el valor que queremos convertir a Ca2, utilizando N bits Si k ≥ 0, su representación en Ca2 es equivalente a Signo-Magnitud Si k < 0, realizamos los siguientes pasos: Convertimos |k| en binario natural con N bits Invertimos el número: cambiamos los unos por ceros y viceversa Sumamos 1 y nos quedamos con los N bits menos significativos (no tomamos acarreo) Ejemplo: –3 en Ca2 con 5 bits –3 3 00011 11100 11100 + 1 Resultado 11101 Rango de valores: Podemos representar 2N−1 valores positivos y 2N−1 valores negativos Los valores positivos van de +0 hasta 2N−1-1 Los valores negativos van de –1 hasta –2N−1 El rango de valores que podemos representar con N bits es: [–2N−1, 2N−1–1] Ejemplo: Con 8 bits podemos representar [–27, 27–1] [-128,127] 12 1. NÚMEROS (4): Signo (5) ¿Conversión de Ca2 a decimal? Positivo (bit más significativo=0): igual que si fuera binario natural (o S-M). Ejemplo: 00101 5 Negativo (bit más significativo=1): Inversión: cambiamos los unos por ceros y viceversa Sumamos 1 al resultado y nos quedamos con los N bits menos significativos Convertimos a decimal como si fuera binario natural y negamos el valor obtenido Ejemplo: Conversión a decimal del nº 11011 11011 00100 00100 + 1 00101 5 –5 Ventajas de la representación Ca2 Existe una sola representación del cero Sumas y Restas se realizan como sumas menor complejidad de HW 13 1. NÚMEROS (5): Reales (1) ¿Representación de la coma/punto decimal? 2 posibilidades: coma/punto fijo y coma/punto flotante. A. Punto Fijo: El número de decimales es fijo. La parte entera se trabaja de igual forma a lo visto hasta ahora. La parte decimal se trata de forma parecida pero las potencias de 2 adquieren exponentes negativos. Binario en Punto Fijo a Decimal: uso de potencias de 2 negativas. Ejemplo: ¿10.011 en decimal? 10.011 = 1x21 + 0x20 + 0x2−1 + 1x2−2 + 1x2−3 = 2 + 0 + 0 + 0.25 + 0.125 = 2.375 Decimal a Binario en Punto Fijo: Parte entera: conversión conocida de decimal a binario natural Parte decimal: Multiplicaciones sucesivas por 2 y cogemos, en cada paso, la parte entera. Ejemplo: ¿2.375 en Binario con Punto Fijo? Parte entera: 2 10 en binario natural 0.75x2 = 1.5 Parte decimal: 0.375x2 = 0.75 Total: 10.011 0.5x2 = 1. Resultado: .011 14 1. NÚMEROS (5): Reales (2) B. Punto Flotante: Número de decimales variable mayor rango y flexibilidad El valor se representa como: (–1) signo × mantisa × 2 exponente Por ejemplo: 2.375(10 = 10.011(2 se representa como (−1)0 × 1.0011 × 21 −0.59375(10 = −0.10011(2 se representa como (−1)1 × 1.0011 × 2−1 Tres campos: signo (1 bit), mantisa y exponente Signo: 0 positivo y 1 negativo. Mantisa: Se normaliza de forma que obtengamos un número en coma fija de la forma 1.XXXXX y se almacena solamente la parte fraccionaria Exponente: Puede ser un valor positivo o negativo que se codifica de forma parecida a Ca2. Con N bits, el exponente se codifica convirtiendo a binario natural el valor resultante de la siguiente expresión (codificación exceso 2N−1 – 1): nuevo_valor = valor + (2N−1 – 1) Por ejemplo: para 8 bits, se utilizaría exceso 127 (28−1 – 1 = 127) y, teniendo como valor de exponente el -100, se haría lo siguiente: -100 + 127 = +27 +27 en binario natural con 8 bits 00011011 Valor a almacenar 15 2. TEXTO (1) Se asigna a cada carácter un valor numérico (o código) que lo identifica. Código ASCII (American Standard Code for Information Interchange) 128 elementos (7 bits): letras, números y caracteres especiales (puntuación, etc.) ASCII extendido utiliza 8 bits para codificar 256 elementos: ñ, á, é, í, ó, ú… Por ejemplo, la palabra “Hola” se representa con la secuencia de valores: {72(10, 111(10, 108(10, 97(10} En binario natural: {01001000(2, 01101111(2, 01101100(2, 01100001(2} 16 2. TEXTO (2) Los caracteres del código ASCII están ordenados: Las letras aparecen en orden alfabético Ejemplos: El código ASCII de la ‘a’ (97) más 1 es el código ASCII de la ‘b’ (98): ASCII(‘a’) + 1 97 + 1 98 ASCII(‘b’) El código ASCII de la ‘d’ (100) menos el código ASCII de la ‘a’ (97) nos da la distancia que hay entre las letras ‘a’ y ‘d’: ASCII(‘d’) – ASCII(‘a’) 100 – 97 3 Las letras mayúsculas aparecen antes que las letras minúsculas (sus códigos ASCII son menores) Los dígitos del 0 al 9 aparecen en orden creciente Ejemplos: El código ASCII del carácter ‘0’ + 3 es el código ASCII del carácter ‘3’: ASCII(‘0’) + 3 48 + 3 51 ASCII(‘3’) El código ASCII de cualquier dígito menos el del ‘0’ nos da el valor al que representa dicho dígito: ASCII(‘2’) – ASCII(‘0’) 50 – 48 2 ASCII(‘7’) – ASCII(‘0’) 55 – 48 7 17 2. TEXTO (3) ¿No son 256 caracteres muy pocos? … Pues sí. UNICODE: 2 Bytes por carácter 216 = 65536 posibles caracteres!! Alfabetos de todas las leguas vivas… y de las muertas!!, Números, … Incluso…entre 1997 y 2001 incluyó el Klingon!! … desapareció por derechos de autor. Comienzo de la tabla UTF-8/Unicode: ¡¡El comienzo es idéntico con la tabla ASCII!! COMPATIBILIDAD 18 3. SEÑALES ANALÓGICAS Señal (analógica) A(t): conjunto infinito de valores A y tiempo continuo t Dos pasos para digitalizar: DISCRETIZACIÓN o MUESTREADO: Frecuencia de muestreo f=1/T: t CUANTIZACIÓN: rango de valores 2num_bits : A Ak∈[0, 2num_bits-1] A(k∆T) A(t) Discretización t k∆T An(k∆T) Cuantización k∆ T A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 k∆ T Ejemplo: Señal analógica que abarca valores entre 0 y 10 voltios (unidades enteras). Muestreo a 50 Hz (50 muestras por segundo) Duración de 2 minutos Esto es: 4 bits por muestra (24 [0, 15]) y 50 muestras por segundo 4 x 50 x 2 x 60 = 24000 bits en total. 19 4. AUDIO Muestreo de valores de amplitud de onda a intervalos regulares (frec. muestreo) Comunicaciones telefónicas: Uso de 8000 muestras por segundo (8KHz de muestreo). Voz codificada con valores numéricos (amplitud de onda) Sonido de calidad (estándar de calidad CD): Muestreo de 44100 muestras por segundo (44.1KHz) Una muestra: codificada con 16 bits por canal. Estéreo: 32 bits por muestra. Cada segundo…más de 1 millón de bits!! (sin comprimir) Sistema de codificación alternativo: MIDI En sintetizadores electrónicos, videojuegos… Codifica instrumento, tono y tiempo. Ej: un clarinete tocando la nota ‘Sol’ durante 2 segundos MIDI: 3Bytes Sonido estándar: más de 2 millones de bits Ejemplo: Pista de 2 min. de duración, 2 canales, frecuencia de 44.1KHz y muestras de 5 bits. 2x60x2x5x44100 = 52920000 bits = 6’308 MBytes 20 5. IMÁGENES (1) Imagen: Matriz de píxeles con un nº de filas y un nº de columnas Cada píxel: Valor/es numérico/s que representa/n su información ¿Qué se almacena en un píxel? Tipos de Imágenes: Binarias: Cada píxel es blanco o negro, no hay otra posibilidad. Un solo bit. En escala de grises: Los píxeles poseen colores en una escala de grises. Dependiendo del número de bits utilizados para dicho rango de grises nos indicará lo que ocupa un píxel. Ej.: 256 valores en la escala de grises (8 bits). Color: Varios sistemas Digitalización de imágenes (II) 22 Digitalización de imágenes (III) Imágenes a Color: RGB: Rojo (R), Verde (G) y Azul (B). Representación digital en monitores y proyectores. Exploración de imágenes. Codificación habitual en ficheros de imágenes Color base del medio: NEGRO Se busca aumentar la claridad (se tiende al blanco). La combinación de las tres componentes en su mayor valor da como resultado el blanco 23 Digitalización de imágenes (IV) 24 Digitalización de imágenes (V) 0 255 25 Digitalización de imágenes (VI) CMY(K): Cyan (C), Magenta (M) y Amarillo (Y) Usado en reproducción impresa (cuatricomía). Color base del medio: BLANCO. Se busca oscurecer/tintar el papel (se tiende al negro). La combinación de las tres componentes en su mayor valor da como resultado el negro En la práctica no ocurre así, por tanto se “refuerza” con un color extra: el negro (K) 26 Digitalización de imágenes (VII) 27 Digitalización de imágenes (VIII) YUV Fotografía y televisión analógicas. Originalmente usado en el sistema PAL y NTSC para transmisión de TV en color. Transmisión de video por cable: YCbCr Transmisión de video digital: YPbPr Y (luminancia), U (diferencia de azul), V (diferencia de rojo) Base de los sistemas de compresión de imagen y video más usuales (JPG, H264) Y contiene casi toda la “energía” de la imagen U (Cb) y V (Cr) aportan muy poca información Por tanto se comprimen más aunque se pierda información en la compresión. 28 Digitalización de imágenes (IX) 29 5. IMÁGENES (7) En fotografía: Resolución de imagen en cámaras digitales Medida en Megapíxeles Algunas equivalencias: 1 megapíxel hace referencia a 1 millón de píxeles Megapíxeles Tamaño imagen 3:2 (Píxeles) Tamaño imagen 4:3 (Píxeles) 0,3 1 2 3 4 5 6 8 10 12 14 16 18 20 671x447 1224x816 1733x1155 2121x1414 2450x1633 2739x1826 3000x2000 3464x2309 3873x2582 4242x2828 4583x3055 4899x3266 5196x3464 5477x3651 Modelo de color comúnmente utilizado Almacenamiento Sin compresión Con compresión 632x474 1155x866 1633x1225 2000x1500 2309x1732 2581x1936 2828x2121 3265x2449 3652x2739 4000x3000 4320x3240 4619x3464 4899x3674 5164x3873 Modelo RGB TIFF o RAW JPEG 30 6. VÍDEO Aproximación: Secuencia de frames (imágenes) Cada frame tiene una resolución y una codificación (según tipo de imagen) Podríamos determinar el tamaño de un frame de igual forma que una imagen. “Novedad”: frecuencia de muestreo y duración Similar a una señal analógica en las que cada muestra es un frame. Ejemplo: 1 minuto a 25Hz Resolución: 320x240 RGB de 24 bits ¿Cuánto ocupa? 320x240x24x1x60x25 = 329,59 Mbytes 31 6. VÍDEO ¿No ocupan demasiado? Igual que con imágenes, lo normal es emplear formatos comprimidos para su almacenamiento. Además, la mayoría de los formatos no almacenan la información completa de cada frame, sino únicamente las modificaciones con respecto al frame anterior. Algunos formatos: Sin compresión: para tareas de edición (se pierde eficiencia en almacenamiento ganándose en eficiencia de computación). Con compresión: lo más común en un medio digital Cambios en macrobloques. MPEG, DiVX, XVID… Formatos contenedores (pueden estar comprimidos o no): avi, mkv, mpg…