TEMA 10. REPRESENTACIÓN INTERNA DE

Anuncio
TEMA 10. REPRESENTACIÓN INTERNA DE
LOS DATOS.
Oposiciones de Informática
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
INDICE
TEMA 10: REPRESENTACIÓN INTERNA DE LOS DATOS.
1.- DATOS. ...................................................................................................................... 3
1.1.- CONCEPTOS....................................................................................................... 3
1.2.- COMPOSICIÓN Y ESTRUCTURA. .................................................................. 3
1.3.- MEDIDAS DE INFORMACIÓN. ....................................................................... 3
2.- REPRESENTACIÓN INTERNA DE LOS DATOS. ................................................. 4
2.1.- DATOS A REPRESENTAR................................................................................ 4
2.2.- SISTEMAS DE NUMERACIÓN. ....................................................................... 5
2.3.- TIPOS DE DATOS QUE SE PUEDEN REPRESENTAR. ................................ 5
2.3.1.- REPRESENTACIÓN DE LAS INSTRUCCIONES. ................................... 6
2.3.2.- REPRESENTACIÓN DE LOS DATOS. ..................................................... 6
2.3.3.- REPRESENTACIÓN DE IMÁGENES...................................................... 12
2.3.4.- REPRESENTACIÓN DE SONIDOS. ........................................................ 12
3.- COMPRESIÓN DE DATOS. ................................................................................... 12
2
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
1.- DATOS.
1.1.- CONCEPTOS.
La palabra datos proviene del latín datum (plural data) que significa "lo que se da", en
el sentido de "lo que acontece". El diccionario de la Real Academia de la Lengua
Española dice que los datos son: "antecedentes necesarios para llegar al
conocimiento exacto de una cosa o para deducir las consecuencias legítimas de un
hecho". Dato en informática, es un conjunto de símbolos necesarios para expresar un número, valor,
palabra o concepto.
La información es cualquier entrada que cambia las probabilidades o destrezas.
La información es un conjunto de datos que permiten aclarar algo que es
desconocido. Es susceptible de aportar un conocimiento.
El ordenador es una máquina destinada a procesar información.
1.2.- COMPOSICIÓN Y ESTRUCTURA.
Los datos suelen ser magnitudes numéricas directamente medidas o captadas, pero
también pueden ser nombres o conjuntos de símbolos o valores cualitativos.
Los datos se representan mediante una secuencia de símbolos, por ejemplo en
nuestra vida diaria representamos las palabras mediante letras tomadas de nuestro
alfabeto.
Un alfabeto no es más que un conjunto de símbolos elementales en base a los cuales
se forma la información.
La informática ha logrado el tratamiento automático de la información con máquinas.
No es necesario que el alfabeto que usa una máquina en su interior sea el mismo que
el que utiliza el ser humano que la ha constituido y la maneja, basta con que la
traducción de los símbolos internos a los externos o viceversa se efectúe de una
manera cómoda y a ser posible automáticamente por la propia máquina.
La codificación: Es la operación que permite pasar del alfabeto fuente al alfabeto
código.
1.3.- MEDIDAS DE INFORMACIÓN.
Dentro del ordenador, la información se representa mediante el sistema de
numeración binario, es decir, mediante 0's y 1's. (Debido a que inicialmente existían 2
estados eléctricos básicos. Tensión y ausencia de tensión).
La unidad básica de información es el bit o BInary digiT. Viene de la expresión inglesa
de dígito binario.
Como el bit es una unidad de medida tan pequeña, se usan medidas de unidades
superiores. El byte es el conjunto de 8 bits. En la memoria del ordenador, un byte
suele ser la unidad de direccionamiento, es decir, se puede referir a cada byte
mediante un número que es su dirección. El byte puede almacenar 8 dígitos binarios.
Las características de información hoy en día son grandes por lo que se utilizan
múltiplos. 1Kbyte son 1024 bytes (210). 1 (Megabyte) Mbyte son 220 bytes, 1 (Giga)
Gbyte son 230 bytes y un (Tera) Tbyte son 240 bytes.
3
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
2.- REPRESENTACIÓN INTERNA DE LOS DATOS.
2.1.- DATOS A REPRESENTAR.
Toda la información que maneja el ordenador se representa mediante dos símbolos
básicos, el ordenador es capaz de construir, almacenar y representar distintos tipos de
información, mediante la codificación de la información, entre los que se distinguen 5
tipos de representaciones claramente:
- Representación de textos. Usualmente la información se da al ordenador en
la forma usual escrita que utilizan los seres humanos; es decir, con ayuda de un
alfabeto o conjunto de símbolos, que denominaremos caracteres.
- Representación de valores numéricos. Los datos numéricos se suelen
introducir como cualquier otro conjunto de caracteres.
- Representación de instrucciones. Las instrucciones de un programa en
lenguaje de alto nivel o en lenguaje ensamblador se dan en forma de texto y el
traductor correspondiente, ya sea un compilador o intérprete, se encarga de
transformarlas en instrucciones máquina. Son las que entiende el ordenador.
- Representación de sonidos. Los ordenadores actuales, además de procesar
textos y datos numéricos, también operan con otro tipo de elementos, como sonidos,
digitalizados y representados en binario en el interior del ordenador, mediante distintas
codificaciones del sonido.
- Representación de imágenes. Al igual que los sonidos, las imágenes tanto
estáticas como dinámicas poseen su representación y codificación binaria digital en el
interior de tos ordenadores. Siendo la codificación de las imágenes una de las técnicas
que más están evolucionando en los últimos tiempos debido al auge de los sistemas
multimedia.
La codificación va a facilitar y optimizar las tareas de almacenamiento, representación,
procesamiento y comunicación de la información. Algunos de los condicionantes que
encontraremos a la hora de codificar la información son los siguientes:
- La memoria del ordenador es finita, por lo que las representaciones han de
ser forzosamente acotadas.
- Las unidades funcionales del computador suelen estar diseñadas para
trabajar con una cadena de bits de cierto tamaño.
- Los elementos de comunicación entre unidades funcionales (buses) tienen
cierto ancho de, esto es, permiten transmitir simultáneamente un cierto número
de bits.
4
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
2.2.- SISTEMAS DE NUMERACIÓN.
Un sistema de numeración es el conjunto de reglas, convenios y símbolos que
permiten expresar números.
Existen sistemas de numeración posicionales y no posicionales.
En los primeros se contempla el valor relativo de la cifra dentro del número, en
los segundos no.
En los sistemas de numeración posicional el valor de un dígito depende tanto
de su propio valor como de la posición que ocupa. Un ejemplo es el sistema de
numeración decimal. En los sistemas de numeración no posicional el valor de
un dígito sólo depende de su valor. Por ejemplo el sistema romano, que utiliza
los siguientes siete símbolos para la representación {I, V, X, L, C, D, M} y que
independientemente de donde estén colocadas las cifras tienen el mismo valor.
Los sistemas más comunes son:
• Decimal. b=10. D {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Sistema de
representación numérico del ser humano.
• Binario. b=2. D {0, 1}. Sistema de representación interna del
ordenador.
• Octal. b=8. D {O,..7}. Las conversiones octal-binario y binario-octal
pueden hacerse fácilmente. Agrupando dígitos de 3 en 3.
• Hexadecimal b=16. D {O, .., 9, A, B, C, D, E, F}. Las conversiones
hexadecimal-binario y binario-hexadecimal se realizan agrupando dígitos
de 4 en 4.
Los datos numéricos se introducen en un ordenador usando el lenguaje escrito,
como secuencias de caracteres, y por tanto se codifican, como cualquier tipo
de texto, de acuerdo con un código de entrada y salida, tal como el ASCII. Si se
va a realizar algún cálculo matemático, la representación de los datos
numéricos como textos es inapropiada. En efecto, como este tipo de
codificación no se basa en los sistemas de numeración matemáticos, no
podemos aplicar las tablas y reglas de la aritmética para operar con dichos
números. Cuando queramos realizar algún cálculo matemático, obviamente lo
mejor es representar los datos numéricos en alguna forma basada en el
sistema de numeración matemático.
2.3.- TIPOS DE DATOS QUE SE PUEDEN REPRESENTAR.
Un ordenador es una máquina que partiendo de unos datos de entrada, los procesa y
produce una información de salida. Concretando, la ejecución de un programa implica
la realización del tratamiento (según especifica un conjunto de instrucciones) sobre
unos datos.
5
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
Los datos a representar internamente en el ordenador, se pueden clasificar:
2.3.1.- REPRESENTACIÓN DE LAS INSTRUCCIONES.
Una instrucción es un conjunto de símbolos que la computadora es capaz de
interpretar con objeto de realizar las operaciones de las que consta un programa. Las
instrucciones utilizadas por los ordenadores pueden tener diferentes formatos.
Todas las instrucciones tienen una parte que las diferencia, el código de operación
que indica la operación a ejecutar. Según el tipo de operación, pueden contener uno o
varios operandos.
Campos de una instrucción:
- Código de operación: este campo es necesario que esté presente en todas
las instrucciones, este campo, es el campo que diferencia una instrucción de otra.
Indica la operación a realizar. No hay dos operaciones diferentes con el mismo código
de operación.
El código de operación suele ocupar los bits más significativos de una instrucción (la
parte de la izq.). Si una instrucción ocupa más de una palabra, el código de operación
estará en la primera palabra que lea la CPU.
- Campo operandos: este campo no está presente en todas las instrucciones
ya que algunas instrucciones no emplean datos y otras en que la localización de los
mismos está implícita en el propio código de operación.
La longitud de este campo es normalmente variable, dependiendo del número de
operandos que utilice la instrucción y de forma que se indique a la CPU el acceso a los
mismos.
2.3.2.- REPRESENTACIÓN DE LOS DATOS.
2.3.2.1.- REPRESENTACIÓN ALFANUMÉRICA.
La representación de la información de tipo texto escrito se hace codificando, en un
octeto, cada uno de los caracteres que componen dicha información.
-
Código Baudot: Data de finales del S. XIX. Lo desarrolló Jean-Maurice-Émile
Baudot. Utilizaba 5 bits por carácter y se usaba en telegrafía.
-
Alfabeto Internacional Nº 2: 1901. Donald Murray añadió nuevos caracteres y
códigos de desplazamiento al anterior. Cada carácter 5 bits. Existen algunos
caracteres de control. Inicialmente se utilizó en los teletipos. (Teleimpresores o
TTY).
-
Codificación FIELDATA: Proyecto de Estados Unidos a finales de los 50.
Pretendía crear un estándar para recoger y distribución en el campo de batalla.
Utiliza bloques de 6 dígitos para representar los caracteres. Sólo se pueden
representar 26 datos, es decir 64 caracteres.
6
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
-
Codificación EBCDIC (Extended Binary Coded Decimal Interchange
Code): Usado en mainframes de IBM inicialmente. Utiliza 8 bits para cada
carácter por lo que se pueden representar 256 caracteres. Cada octeto se
divide en 2 partes (bits de zona, bits de dígito).
-
Código ASCII (American Standard Code for Information Interchange). El
más difundido hoy en día para su uso en los ordenadores. Se publicó en 1963
por ASA (que posteriormente pasó a ser ANSI) Dispone de 8 bits aunque sólo
utiliza los 7 primeros para el uso de letras, números y caracteres especiales.
Con 7 bits se pueden representar 128 caracteres diferentes. Se pueden
representar todos los números, letras mayúsculas, minúsculas, caracteres
especiales y de control.
El resto de las combinaciones de la 128 a la 255 se usan para representar
caracteres de tipo gráfico.
Los 32 primeros caracteres son de control.
-
UNICODE. Es un estándar internacional establecido por el Consorcio Unicote
(formado por empresas como Apple Computer, Microsoft, IBM, HP, …). Su
objetivo es representar cualquier carácter jamás escrito. Windows NT y sus
sucesores lo usan. También sistemas operativos como Linux, Mac OS X y
lenguajes de programación como Java, Perl y C#.
2.3.2.2.- REPRESENTACIÓN NUMÉRICA.
Como se sabe, los números se pueden clasificar en:
-
Naturales.
Enteros.
Racionales.
Irracionales.
Cualquiera de estos conjuntos de números es infinito, mientras que el espacio material
de representación de los computadores es finito, por lo tanto, no es posible
representar todos los valores.
En informática, se asigna un número fijo de n bits para representar un número.
Teniendo en cuenta que n bits permiten 2n números distintos existirán dos valores.
Se llama rango de representación al intervalo comprendido entre el mayor y el menor
número representable.
La resolución de representación se refiere a la diferencia que existe entre un
número representable y el inmediato siguiente:
Los factores a tener en cuenta para representar números son:
-
El tipo de los números a representar: enteros, reales …
El rango de números representables.
La posición de dato numérico: nº de números para un rango dado.
El coste hardware requerido para almacenar y procesar los números a
representar.
7
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
Los sistemas de representación más empleados son los siguientes:
ENTEROS.
-
Posicionales: un número se representa como una secuencia de dígitos, donde
cada uno tiene un peso de acuerdo con la posición que ocupa.
Con este tipo de representación, el problema es que leer y escribir largas
cadenas de 1’s o 0’s es engorroso y una tarea que predispone a cometer
errores. Como solución, se suele utilizar la base octal (b=8) y la base
hexadecimal (b=16).
Dentro de los números enteros tendremos que distinguir entre los números
positivos y los números negativos:
o
Si sólo representamos números
representaremos desde el 0 a 2n -1.
o
Para codificar los números enteros negativos, hemos de tener en
cuenta algunas consideraciones:
enteros
positivo,
con
n
bits
A) El intervalo de números positivos debería de ser igual al
intervalo de números negativos para un n dado.
B) Sea fácil detectar el signo por un simple test hardware.
C) Sea fácil detectar el 0.
D) El código resultante de la codificación ha de dar lugar a una
implementación sencilla a la hora de realizar las operaciones
aritméticas básicas.
Para dar respuesta a estas consideraciones, aparecen tres sistemas de
numeración posicionales que permiten la represtación de números negativos.
o
Signo y magnitud: consiste en reservar un bit para el signo. Con n bits
disponibles, uno indica el signo y los n-1 restantes indican la magnitud.
Normalmente, el bit de la izquierda se reserva para el signo. El bit de
signo a 0 indica que el nº es positivo, mientras que si es 1, indica que el
número es negativo.
Ventajas: cumple A) y B).
Inconvenientes: Representación dual del 0 y no verifica D), por
que la suma no es tan evidente.
Esta representación ampliamente utilizada en los computadores de la
tercera generación, en la actualidad no se utiliza.
8
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
o
Complemento a 1: se representa un número de n bits en complemento
a uno de la siguiente forma:
Para un nº positivo, se representa el número en binario. (Sin
reservar ningún bit para el signo como en el caso anterior).
Para un nº negativo, se representa igual que un número positivo
pero se complementa cada uno de los bits. (se cambian 0’s por
1’s y 1’s por 0’s).
Ventajas: cumple A) puesto que el número de positivos es igual
que el número de negativos. Cumple B) y D).
Inconvenientes: no cumple C) representación dual del 0.
o
Complemento a 2: se representa un número de n bits en complemento
a dos de la siguiente forma:
Para un nº positivo, se representa igual que un número positivo
en complemento a uno.
Para un nº negativo, se representa igual que un número
negativo en complemento a uno pero se le suma 1 al resultado
obtenido.
Ventajas:
Cumple A) puesto que el número de positivos es igual al de los
negativos.
Cumple B) porque es fácil detectar el signo.
Cumple C) porque no tiene representación dual del 0 y
Cumple D).
Inconvenientes: es más costoso de implementar ya que hay que
realizar una suma adicional.
Se puede decir que es la representación más utilizada a la hora de
representar números enteros negativos.
9
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
-
No posicionales: los sistemas de numeración no posicionales se basan en el
código BCD o Decimal Codificado en Binario que consiste en que cada dígito
decimal se codifica por 4 bits binarios (16 valores posibles). Ello da lugar a
muchos códigos posibles, los más importantes son:
o
BCD Natural: la codificación de cada dígito es equivalente a la
codificación binaria. Se puede decir que cada dígito se expresa
mediante un nibble (4 bits) se utilizan los pesos 8, 4, 2, 1, pero la
posición del nibble está pesada según potencias de 10.
o
Exceso a 3: es otro código construido a partir del BCD natural al que se
le suma 3 en cada dígito.
o
Aiken: es un código BCD en el que los pesos dentro de cada nibble son
2, 4, 2, 1 en vez de 8, 4, 2, 1. Es autocomplementario.
o
Gray: no es un código BCD. Entre dos códigos consecutivos sólo hay un
bit de diferencia.
o JOHNSON 5 bits: va aumentando el número de unos desde la
derecha, y posteriormente disminuye por la izquierda (no es
ponderado).
10
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
Decimal
BINARIO
BCD natural
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
NO
NO
NO
NO
NO
NO
BCD exceso BCD Aiken
3
0011
0000
0100
0001
0101
0010
0110
0011
0111
0100
1000
1011
1001
1100
1010
1101
1011
1110
1100
1111
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
GRAY
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
JOHNSON
5 bits
00000
00001
00011
00111
01111
11111
11110
11100
11000
10000
NO
NO
NO
NO
NO
NO
REALES.
-
Punto Fijo: consiste en colocar un punto en algún lugar de la cadena de unos
y ceros que va a representar nuestro número real.
Una vez colocado el punto en una determinada posición, ya no se puede
modificar ya que esa decisión se toma durante el diseño de la máquina.
A la derecha del punto las potencias de la base son negativas.
-
Punto flotante: consiste en representar el número mediante una mantisa, una
base y un exponente.
o
o
Para el exponente se reservan q bits.
Para la mantisa p bits.
- IEEE 754: es un formato estándar para los números flotantes de 32 y 64
bits:
32 bits (simple precisión).
El primer bit es el bit de signo (S), 0 para los positivos, 1
negativos.
Los 8 siguientes son los bits del exponente (E) en exceso 127.
E = C – 127. C = E+127
El resto (23) son la mantisa (M) se expresa normalizada(0,xxxxx)
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
64 bits (doble precisión).
11
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
Cambia sólo los bits reservados para cada campo. El primer bit es el
bit de signo (S), 11 son los bits del exponente (E) y 52 son la
mantisa (M):
S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
0 1
11 12
63
2.3.3.- REPRESENTACIÓN DE IMÁGENES.
Las imágenes analógicas presentan una variación continua de sombra y tonos. Para
poder representarlas es necesario realizar una conversión analógico / digital. Se hace
a través de un muestreo y una cuantificación.
-
-
El Muestreo divide la imagen analógica en subdivisiones cuadradas cuyo valor
depende de la escala (color) y de la intensidad de la luz.
Si el valor es un vector de tres componentes (R,G,B) se obtiene una escala de
color.
La Cuantificación es la discretización de cada una de las muestras. A cada
valor obtenido se le llama píxel.
2.3.4.- REPRESENTACIÓN DE SONIDOS.
El sonido es una onda analógica que presenta variaciones de amplitud a intervalos
regulares de tiempo.
La amplitud determina su volumen, mientras que la frecuencia determina la escala.
Al igual que con las imágenes es necesario realizar una digitalización (conversión
A/D).
El número de bits de la cuantificación influye en la calidad del sonido. El muestreo
debe ser realizado a 22 KHz.
3.- COMPRESIÓN DE DATOS.
En muchas aplicaciones se requiere la utilización de archivos de gran capacidad. Así
ocurre con los archivos de imágenes y sonido en aplicaciones multimedia. En estos
casos el tiempo de transmisión de una imagen por una red, o el volumen requerido
para su almacenamiento en disco pueden llegar a ser muy elevados.
Este problema se presenta de forma notable en las aplicaciones multimedia, donde es
frecuente utilizar combinadamente textos, sonidos, e imágenes tanto estáticas como
dinámicas (vídeo).
Existe un conjunto de técnicas para reducir el tamaño de la información que ocupan
estos archivos multimedia, denominadas compresión de datos. El archivo antes de ser
almacenado o transmitido se comprime mediante un algoritmo de compresión, y
cuando se recupera para procesarlo o visualizarlo se aplica la técnica inversa para
descomprimirlo.
12
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
Entre los algoritmos se distinguen aquellos que realizan:
• Compresión sin pérdidas, esto ocurre cuando la información original se
comprime sin perder nada de la información inicial de forma tal que se puede
recuperar exactamente la información de partida, sin pérdida de calidad.
• Compresión con pérdidas, para conseguir una mayor compresión, se
toleran pérdidas de calidad, no pudiéndose en la descompresión recuperar
exactamente la información original.
A continuación se describen los fundamentos de algunas técnicas de compresión:
- Codificación por longitud de secuencias (o RLE, Run Length Encoged).
Recuérdese que la información está representada internamente por ceros y
unos. Una forma sencilla de comprimir los datos, en el caso de que en el
archivo se repitan largas secuencias de ceros y unos, es sustituir cada una de
éstas por el símbolo de la secuencia seguido por el número de veces que se
repiten en ella. Este tipo de compresión resulta útil en archivos en los que se
repiten largas secuencias, por ejemplo, el fondo de en una imagen de un
espacio interior (la pared de una habitación es muy continuo y queda, por tanto,
representada por grandes secuencias de símbolos iguales.
- Codificación relativa o incremental. Con frecuencia en imágenes y señales
de sonido, los valores de dos píxeles consecutivos o de dos muestras de voz
consecutivas en el tiempo difieren en una cantidad pequeña, en comparación
con sus valores absolutos. Por ejemplo las, variaciones de color y de textura
dentro de los objetos de una imagen suelen ser muy pequeñas, teniéndose
sólo grandes variaciones en los contornos de dichos objetos. En este caso se
logra una reducción considerable de almacenamiento si en lugar de almacenar
los valores absolutos, se almacenan los incrementos respecto al valor anterior.
Esta técnica de compresión también se utiliza para imágenes en movimiento,
cuando la variación entre imágenes sucesivas es muy pequeña Este es el
caso, por ejemplo, de imágenes de videoconferencias una vez que se
transmite completamente la imagen primera, sucesivamente solo se transmiten
las diferencias con respecto a la imagen anterior.
- Codificación dependiente de la frecuencia. Consiste en representar cada
símbolo con un código binario cuya longitud sea inversamente proporcional a la
frecuencia con la que aparecen; de esta manera los símbolos que se repiten
más en un archivo se representarán con menos bits que los símbolos que
aparecen con menos frecuencia.
- Codificación con diccionario adaptativo. La idea básica consiste en
realizar un diccionario con secuencias de bits, y sustituir en el archivo a
comprimir dichas secuencias por su índice (número de orden) dentro del
diccionario. El diccionario es adaptativo en el sentido de que según se va
procesando la información, para comprimirla se va creando el diccionario: dada
una secuencia determinada, primero se consulta si ya está en el diccionario; si
13
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Tema 10
REPRESENTACIÓN INTERNA DE LOS DATOS.
es así, se sustituye por el índice correspondiente, si no la nueva secuencia se
incluye en el diccionario y se sustituye en el archivo por el nuevo índice. La
compresión se obtiene debido a que siempre ocuparan menos los índices que
las secuencias que representan.
- Codificación Lempel-Ziv LZ77. Es un caso particular de diccionario
adaptativo donde se busca si los siguientes caracteres a comprimir han
aparecido previamente en una secuencia anterior, caso de ser así esa cadena
de caracteres se codifican con 3 números (m, n, s), donde m representa el
lugar hacia atrás donde se inicia la secuencia previa encontrada, n es la
longitud de la secuencia y s es el siguiente carácter de la cadena comprimida.
Se observa que en este caso realmente no se crea un diccionario de cadenas.
Según aumenta el tamaño del archivo mayor probabilidad existe de encontrar
secuencias previas mas largas. En definitiva, la técnica consiste en encontrar la
mayor secuencia previa que concuerde con los siguientes símbolos a
comprimir del resto del archivo. Los conocidos programas zip y unzip para
comprensión y decomprensión de datos utilizan procedimientos de este tipo.
14
Oposiciones de Informática
Javi_nostra@hotmail.com
Tema 10 v3_0910
Descargar