Представление данных в памяти...

53
ПРЕДСТАВЛЕНИЕ ДАННЫХ В ПАМЯТИ ЭВМ Лектор к.т.н., доцент Азарченков Андрей Анатольевич

Transcript of Представление данных в памяти...

Page 1: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

ПРЕДСТАВЛЕНИЕ

ДАННЫХ В ПАМЯТИ ЭВМ Лектор

к.т.н., доцент

Азарченков Андрей Анатольевич

Page 2: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Кодирование информации Язык – система кодирования информации

Азбука – слова языка

Чем более универсальна система кодирования, тем больше

видов информации можно представить с ее помощью

Двоичное кодирование

0 1

нет тока есть ток

нет поля есть поле

Page 3: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Двоичное кодирование

22=4 0 0 0 1 1 0 1 1

разряд

Page 4: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Элементарная ячейка памяти

адреса

байтов

Page 5: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление данных в памяти ЭВМ

Память ЭВМ состоит из множества ячеек (разрядов),

каждый из которых может находится в одном из двух

состояний (вкл/ выкл; намагничено/ размагничено; 0/ 1)

𝑘 − 1 − й разряд 0 − й разряд

ячейка памяти из 𝑘 разрядов

Page 6: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Различают следующие типы систем счисления:

• Позиционные (арабская);

• Не позиционные (римская).

В римской системе счисления используются следующие

символы: Один - I, пять - V, десять - X, сто - С, тысяча -

М и т.д.

В арабской системе счисления: 0,1, 2, 3, 4, 5, 6, 7, 8, 9 –

десятичная система счисления

В десятичной системе число может быть представлено

в виде полинома:

123,45 = 100 + 20 + 3 + 0,4 + 0,05 =

= 1 ∙ 102 + 2 ∙ 101 + 3 ∙ 100 + 4 ∙ 10−1 + 5 ∙ 10−2

Page 7: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

В общем виде представление числа в q-ичной системе

счисления представлено формулой:

𝑋 𝑞 = 𝑥𝑛−1 ∙ 𝑞𝑛−1 + 𝑥𝑛−2 ∙ 𝑞𝑛−2 + ⋯+ 𝑥1 ∙ 𝑞1 + 𝑥0 ∙ 𝑞0 +

+ 𝑥−1 ∙ 𝑞−1 +𝑥−2∙ 𝑞−2 + ⋯+ 𝑥−𝑚 ∙ 𝑞−𝑚.

Запись числа формируется по правилу:

𝑋 𝑞 = 𝑥𝑛−1, 𝑥𝑛−2 , … , 𝑥1 , 𝑥0, 𝑥−1, 𝑥−2, … , 𝑥−𝑚.

Длина записи числа зависит от системы в которой это

число представлено

231 10 = 11100111 2 = 347 8 = 𝐸7 16

Page 8: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

• Таблица соответствия чисел в разных системах

счисления

Десятич

ная

Двоична

я

Восьмерич

ная

Шестнадцатерич

ная

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

Page 9: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

• Пример. Перевести число из восьмеричной системы в

десятичную.

347 8 = 3 ∙ 82 + 4 ∙ 81 + 7 ∙ 80 = 3 ∙ 64 + 4 ∙ 8 + 7 = 231 10 .

Пример. Перевести число из шестнадцатеричной

системы в десятичную.

𝐸7 16 = 𝐸 ∙ 161 + 7 ∙ 160 = 14 ∙ 161 + 7 ∙ 160 = 224 + 7

= 231 10

Page 10: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Правила перевода чисел из десятичной

системы в двоичную

Перевод целой части:

• 115 10 = 1110011 2

Системы счисления

Page 11: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Правила перевода чисел из десятичной системы в

двоичную

Перевод целой части:

• 0,47 10 ≈ 0,0111 2

Page 12: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Примеры перевода дробной части

76

2

52 1

1

0 88

2

44

2

36

2

0

1

72

2

0

,

0 32

04

8

36

8

2

7

88

8

0

,

16

36

16

5

(С16)

76

16

0

,

12

Page 13: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Пример. Перевести число 23,125 из десятичной системы

в двоичную.

Ответ: 23,12510 = 10111,0012.

1 0

2 2 1

5 1

11 1

23 2

2

2

1 0

5

2

125

2

0

0

25

2

0

,

Page 14: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Page 15: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Page 16: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Пример. Перевести число из двоичной системы в

десятичную.

11100111,1101 2 = 1 ∙ 27 + 1 ∙ 26 + 1 ∙ 25 + 0 ∙ 24 + 0 ∙ 23 +

+1 ∙ 22 + 1 ∙ 21 + 1 ∙ 20 + 1 ∙ 2−1 + 1 ∙ 2−2 + 0 ∙ 2−3 + 1 ∙ 2−4 =

128 + 64 + 32 + 4 + 2 + 1 + 0,5 + 0,25 + 0,0625 = 231,825 10 .

Page 17: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Пример. Перевести число из двоичной системы в

восьмеричную.

11100111,11012 = 011 100 111,110 100 =

= 0 ∙ 22 + 1 ∙ 21 + 1 ∙ 20 ∙ 82 + 1 ∙ 22 + 0 ∙ 21 + 0 ∙ 20 ∙ 81

+ 1 ∙ 22 + 1 ∙ 21 + 1 ∙ 20 ∙ 80 + 1 ∙ 22 +∙ 21 + 0 ∙ 20 ∙ 8−1 +

+ 1 ∙ 22 + 0 ∙ 21 + 0 ∙ 20 ∙ 8−2 =

= 3 ∙ 82 + 4 ∙ 81 +7 ∙ 80 +6 ∙ 8−1 +4 ∙ 8−2= 347,64 8

Page 18: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Пример. Перевести число из двоичной системы в

шестнадцатеричную.

1110 0111, 1101 2 = 1 ∙ 23 + 1 ∙ 22 + 1 ∙ 21 + 0 ∙ 20 ∙ 161 +

+ 0 ∙ 23 + 1 ∙ 22 + 1 ∙ 21 + 1 ∙ 20 ∙ 160 +

+ 1 ∙ 24 + 1 ∙ 23 + 0 ∙ 21 + 1 ∙ 20 ∙ 16−1 =

= 14 ∙ 161 + 7 ∙ 160 + 13 ∙ 16−1 = 𝐸7,𝐷 16 .

Page 19: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Системы счисления называются кратными, если

выполняется соотношение: S = RN, где S, R – основания

систем счисления, N – степень кратности (целое число: 2, 3 ).

Для перевода числа из системы счисления R (с меньшим

основанием) в кратную ей систему счисления S (с большим

основанием) необходимо, двигаясь от десятичной точки

влево и вправо, разбить число на группы по N разрядов,

дополняя при необходимости нулями крайние левую и правую

группы. Затем каждую группу заменяют соответствующей

цифрой из системы счисления S.

Page 20: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Пример. Перевести число 1101111001,11012 в восьмеричную и

шестнадцатеричную систему счисления.

1 5 7 1 6 4

001 101 111 001 , 110 100 = 1571,648

7 F B 9 C

0111 1111 1011 , 1001 1100 = 7FB,9C16

Page 21: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Для перевода чисел из системы счисления S (с большим

основанием) в кратную ей систему счисления R (с меньшим

основанием) достаточно заменить каждую цифру этого числа

соответствующим числом из системы счисления R, при этом

отбрасывают незначащие нули в старших (00512) и младших

(15,124000) разрядах.

3 0 5 , 4 8 =11 000 101, 12

011 000 101 100

7 B 2 E 16 =11 110 110 010, 1112

0111 1011 0010 1110

Page 22: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Системы счисления

Рассмотренный способ часто применяется при переводе

восьмеричных и шестнадцатеричных чисел в двоичную

систему счисления. Достаточно каждую цифру заменить

эквивалентной ей двоичной триадой (тройкой цифр) или

тетрадой (четверкой цифр).

5 3 7 1

537,18 = 101 011 111, 0012 ;

1 A 3 F

1A3,F16 = 1 1010 0011, 11112

Page 23: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Арифметические операции в двоичной

системе счисления

Page 24: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сложение

Page 25: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сложение

10000000101+ 11100010110111001010

Перевод первого слагаемого в десятичную систему счисления.

10000000101 2 = 1 ∙ 210 + 1 ∙ 22 + 1 ∙ 20 = 1024 + 4 + 1 = 1029 10 .

Перевод второго слагаемого в десятичную систему счисления.

1110001012 = 1 ∙ 28 + 1 ∙ 27 + 1 ∙ 26 + 1 ∙ 22 + 1 ∙ 20 =

= 256 + 128 + 64 + 4 + 1 = 453 10 .

Перевод суммы в десятичную систему счисления.

10111001010 2 = 1 ∙ 210 + 1 ∙ 28 + 1 ∙ 27 + 1 ∙ 26 + 1 ∙ 23 + 1 ∙ 21=

= 1024 + 256 + 128 + 64 + 8 + 2 = 1482 10 .

Проверка в десятичной системе счисления.

1029 10 + 453 10 = 1482 10 .

Page 26: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Вычитание

1100000011−101010111 110101011

Page 27: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Умножение

100111 × 1000111 100111 + 100111 100111 000000 000000 000000100111

101011010001

Page 28: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Деление

Page 29: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление целых чисел

1. Двоично-десятичное представление

2. Представление в прямом коде

3. Представление в дополнительном коде

Число -128 -127 -52 -0

Прямой

код

1000 0000 0111 1111 0011 0100 0000 0000

Обратный

код

0111 1111 1000 0000 1100 1011 1111 1111

Доп-й

код

1000 0000 1000 0001 1100 1100 0000 0000

Page 30: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление целых чисел

Пример. Получить десятичное значение числа по его дополнительному коду 10010111 2 .

1. Прежде всего, отметим, что задано отрицательное число, так как в старшем разряде стоит 1;

• Из дополнительного кода вычтем 1: 10010111 − 1 =10010110 (обратный код);

• Инвертируем полученный код: 01101001 (получили модуль отрицательного числа);

• Переведем в десятичную систему счисления: 01101001 2 = 1 ∙ 26 + 1 ∙ 25 + 1 ∙ 23 + 1 ∙ 20 = = 64 + 32 + 8 = 105;

• Записать число со знаком «-» -105.

Page 31: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление вещественных чисел

Представление в формате с фиксированной запятой

Page 32: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление вещественных чисел

M × 10p

где 1 <= M < 10 (мантисса), p — целое (порядок).

120100000 = 1,201 × 108

120100000 = 1,201 × 108 = 0,1201 × 109 = 12,01 × 107

Page 33: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление вещественных чисел

Форматы представления вещественных чисел

Точность Одинарн

ая

Двойная Расширен

ная

Размер (байты) 4 8 10

Обозначение полей S-E-M S-E-M S-E-I-M

Размеры полей (бит) 1-8-23 1-11-52 1-15-1-63

Смещение 127 1023 32766

Page 34: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление вещественных чисел

1 10000000111 0011100001010000000000000000000000000000000000000000

63 62..52 51..0

Пример. Представить число -312,3125(10) в формат с

плавающей запятой с двойной точностью.

В формате с двойной точностью порядок занимает 11 бит

(211=2048(10) с учетом цифры 0 и симметричного распределения

положительных и отрицательных диапазонов (2048-2)|2=1023) и

имеет диапазон от 2-1023 до 21023, поэтому смещение равно

1023(10) = 1111111111(2)

Перевод в двоичную систему счисления:

-312,3125=100111000,0101.

Нормализация:

100111000,0101=1,001110000101∙28.

Вычисление смещения:

8+1023=1031=10000000111(2).

Представление в памяти ЭВМ.

Page 35: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление вещественных чисел

Пример. Получить десятичное представление числа заданного в формате с двойной точностью по его коду:

0011111111101100011000000000000000000000000000000000000000000000

Заданное число состоит из 64 разрядов, тогда в памяти ЭВМ его распределение будет выглядеть следующим образом:

0 01111111110 11000110000000000000000000000000000000000000000

00000

63 62..52 51..0

Это код положительного числа, поскольку в разряде с

номером 63 записан нуль.

Page 36: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление вещественных чисел

Продолжение примера

• Порядок этого числа:

01111111110 2 = 1022 10

• Степень числа:

1022 − 1023 = − 1.

• Число в двоичной форме:

1,1100011 ∙ 2−1 = 0,11100011 2 .

• В десятичной системе

0,11100011 2 = 0.88671875 10 .

Page 37: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Особенности арифметических

операций в памяти ЭВМ Выполнить сложение 100 10 и 51 10 в знаковом

восьмиразрядном представлении.

В этом представлении 100 10 = 01100100 2 и

51 2 = 00110011 2 .

При сложении этих чисел получим 10010111 2 .

Самая левая единица (знаковый разряд) указывает на

то, что в 8 разрядах записано отрицательное число. Так

как отрицательные числа представляются в

дополнительном коде, то после перевода в десятичное

представление получим -105. Таким образом, в

восьмиразрядной знаковой арифметике 100+51=-105.

Page 38: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Кодирование текстовой информации

Код символа - уникальное беззнаковое целое двоичное

число, поставленное в соответствие некоторому

символу.

Алфавит - совокупность вводимых и отображаемых

символов.

Для хранения кода символа в наиболее

распространенных системах кодирования отведен

1 байт=8 бит.

28=256 символов

Текстовая (символьная) строка - это конечная

последовательность символов.

Длина текстовой строки - это количество символов в

ней.

Page 39: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление символьных данных

Page 40: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление звуковых данных

Page 41: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление звуковых данных

Высокое качество воспроизведения получается в

формате лазерного аудиодиска при следующих

параметрах оцифровки: частота дискретизации — 44,1

кГц, квантование — 16 бит, т.е. 𝑁 = 216.

Таким образом, 1 с стереозвука займет 2байт ∙44100байт с ∙ 2кан ∙ 1с = 1776400 байт дисковой

памяти. Качество звука при этом получается очень

высоким.

Page 42: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление графических данных

Модель RGB.

Законы смешения цветов.

• закон трехмерности — любой цвет может быть представлен комбинацией трех основных цветов;

• закон непрерывности — к любому цвету можно подобрать бесконечно близкий;

• закон аддитивности — цвет смеси зависит от яркости составляющих цветов.

Кодирование цветного изображения

Page 43: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление графических данных

Модель CMYK.

Дополняющие цвета:

• голубой (Cyan = B+G), дополняющий красного;

• пурпурный (Magenta = R+B), дополняющий зеленого;

• желтый (Yellow = R+G), дополняющий синего.

Page 44: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Представление графических данных

Оцифровка изображений

Если для кодирования яркости каждой точки использовать по одному байту (8 бит) на каждый из трех цветов (всего 3 • 8 = 24 бита), то система обеспечит представление 224 = 16,7 млн распознаваемых цветов, что близко цветовосприятию человеческого зрения.

Режим представления цветной графики двоичным кодом из 24 разрядов называется полноцветным или TrueColor.

Например, скромный по современным меркам экран монитора имеет растр 800x600 точек, изображение, представленное в режиме TrueColor, займет 800 х 600 х 3 = 1 440 000 байт.

В случае, когда не требуется высокое качество отображения цвета, применяют режим HighColor, который кодирует одну точку растра двумя байтами (16 разрядов дают 216 = 65,5 тысячи цветов).

Page 45: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сжатие данных Преобразование данных,

производимое с целью

уменьшения их объѐма.

Применяется для более

рационального использования

устройств хранения и

передачи данных. Сжатие

основано на устранении

избыточности, содержащейся

в исходных данных.

Page 46: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сжатие информации

• Пример. Если в слове «Дерево» умышленно пропустить некоторые буквы

«Д р во»

• Пример. Сумма последовательности чисел может быть записана так:

2 + 4 + 6 + ⋯+ 38 + 40,

• или так:

2𝑖20𝑖=1 .

Степень избыточности литературного английского языка

составляет 50%.

Примеры избыточности в тексте:

• повторение в тексте фрагментов

• некоторые значения в сжимаемых данных встречаются

чаще других

Page 47: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сжатие информации

Разработаны и применяются два типа алгоритмов

сжатия:

• сжатие с изменением структуры данных (оно

происходит без потери данных, обратимые

методы);

• сжатие с частичной потерей данных (с регулируемой

потерей данных).

Page 48: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сжатие информации

Алгоритмы с изменением структуры данных

• GIF, TIF, PCX, PNG – для графических данных;

• AVI – для видеоданных;

• ZIP, ARJ, RAR, CAB – для любых типов данных.

Коэффициент сжатия - основная характеристика

алгоритма сжатия:

k = So/Sc,

где So — объѐм исходных данных, Sc — объѐм сжатых.

Если k = 1, алгоритм не производит сжатия

Если k < 1, то алгоритм порождает сообщение

большего размера, нежели несжатое

Page 49: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сжатие информации

Пример. Входной текст состоит из десятичной записи

целых чисел и заков «минус», разделенных пробелами:

«280 -1296 48 40 365 -159 13 777». Алфавит

приведенного текста состоит из 12 символов (цифры от

0 до 9, знак «-» и пробел). Для кодирования такого

количества символов достаточно четырех бит

(двоичнодесятичный способ представления). Если

упаковать коды данных символов в 4 бита («0» ->

«0000», «1» -> «0001»,… «9»-> «1001», «-» -> «1110»,

«пробел» -> «1111»), то можно будет кодировать по 2

символа входного массива одним байтом в выходном

массиве. В результате получаем двухкратное сжатие

данных.

Page 50: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Алгоритмы сжатия без потери данных Метод упаковки - уменьшение количества бит,

отводимых для кодирования символов, если в данных

присутствует только небольшая часть всего алфавита

Пример

«КОЛ_ОКОЛО_КОЛОКОЛА»

5 различных символов,

log25=3 бит,

8 символов*3 бита=54 бита≈7 байт.

k = 18/7=2,6 раз

Метод Хаффмана – расширение метода упаковки,

кодирует часто встречающиеся символы короткими

кодами, а редко встречающиеся — более длинными

Page 51: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Алгоритмы сжатия без потери данных 3. Метод RLE (кодирование повторов) - строка

одинаковых символов, составляющих серию, заменяется

строкой, которая содержит сам повторяющийся символ и

количество его повторов

Пример

Строка изображения в черно-белом варианте

B - чѐрный пиксель, W - белый: WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWW

WWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW

12W1B12W3B24W1B14W

4. Алгоритм Лемпеля-Зива - создаѐт таблицу

преобразования строк: определѐнным

последовательностям символов ставятся в соответствие

группы бит фиксированной длины

Page 52: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сжатие информации

Алгоритмы с частичной потерей данных

Пример. Глаз человека наиболее чувствителен к

зеленому цвету, чувствительность к красному меньше

примерно в 4 раза, а к синему почти в 10 раз. Это

означает, что для хранения этой информации можно

использовать меньшее количество бит.

Page 53: Представление данных в памяти ЭВМiipo.tu-bryansk.ru/pub/Azarchenkov/Informatika/...и 51 10 в знаковом восьмиразрядном представлении.

Сжатие информации

Алгоритмы с частичной потерей данных

• JPEG – метод сжатия графических данных;

• MPEG – метод сжатия видеоданных;

• MP3 – метод сжатия звуковых данных.

Форматы используемые необратимые методы сжатия

• MPEG-1 – применялся в первых Video CD (VCD-I);

• MPEG-2 – используется в DVD и Super Video CD (SVCD,

VCD-II);

• MJPEG – формат сжатия видео, в котором каждый кадр

сжимается по методу JPEG;

• MPEG-4 – наиболее эффективный формат сжатия;

• DivX, XviD – улучшенные модификации формата MPEG.