
ТОИ - Лекция 5 Файлы и файловая структура.ppt.ppt
- Количество слайдов: 75
Теоретические основы информатики Лекция 5. Файлы и файловая структура Преподаватель Тронин Вадим Георгиевич 1
5. Файлы и файловая структура • 5. 1. Организация данных и управление ими. • 5. 2. Понятие «файл» и «файловая система» . • 5. 3. Структура файловой системы. Файловое дерево. • 5. 4. Создание файлов, типизация файлов. Управление версиями файлов. Защита файлов. • 5. 5. Сжатие информации. 2
5. 1. Организация данных и управление ими. 5. 1. 1. Данные и их обработка • Суть всех алгоритмов (и компьютерных программ) состоит в том, что они описывают преобразование некоторых начальных данных в конечные. Представление и организация данных имеет при разработке алгоритма первостепенное значение. Вопрос о том, как должны быть организованы данные, необходимо решать до того, как начинается разработка алгоритма (программы). Ведь прежде, чем выполнить какие либо операции, надо иметь объекты, к которым они будут применяться, и четко представлять себе структуру объектов, которые будут получены. 3
5. 1. 1. Данные и их обработка • Одним из свойств компьютеров является способность хранить огромные объемы информации и обеспечивать легкий доступ к ней. Информация, подлежащая обработке, в некотором смысле представляет абстракцию фрагмента реального мира, поскольку некоторые свойства и характеристики реальных объектов при этом игнорируются (как несущественные для данной задачи). • Например, каждый сотрудник в списке сотрудников некоторого учреждения представлен множеством данных. Это множество может включать идентифицирующие данные (например, фамилию), данные, относящиеся к тому, что сотрудник делает или к тому, что делают для него. Однако маловероятно, что будут включены такие сведения, как цвет глаз или волос, рост и вес. 4
5. 1. 1. Данные и их обработка • Решая конкретную задачу, необходимо выбрать множество данных, представляющих реальную ситуацию, выбрать способ представления информации. Представление данных определяется исходя из средств и возможностей, допускаемых программным обеспечением, свойств самих данных, операции, которые должны выполняться над ними. • Неструктурированные данные простейшие данные. • Структурированные данные полученные с помощью комбинации простейших данных, обладают некоторой организацией. Примеры множества, массивы, записи, очереди • Динамические структуры данных, память для хранения которых выделяется прямо в процессе выполнения программы. К таким данным относят линейные списки (одно и двунаправленные), стеки, деревья, графы. • В объектно ориентированном программировании устранено противостояние данных и программ. Объект это некое образование, 5 состоящее не только из данных, но и из процедур их обработки.
5. 1. 2. Простые (неструктурированные) типы данных • В математике принято классифицировать величины в соответствии с их характеристиками. Различают целые, вещественные, комплексные и логические величины, представляющие собой отдельные значения, множества значений или множества множеств. • Фактически тип характеризует множество значений, которые может принимать константа, переменная, выражение или функция. Широко используется правило, по которому тип явно указывается в описании константы, переменной или функции. К данным каждого типа применимы определенные операции и их поведение подчиняется некоторым аксиомам. 6
5. 1. 2. Простые (неструктурированные) типы данных • Над целыми числами могут выполняться операции сложения (+), вычитания ( ) и умножения (*). Существуют две различные операции, связанные с делением и не выводящие за границы множества целых чисел: 1) определение целой части от деления одного числа на другое; 2) определение остатка от деления одного числа на другое. • Целые числа, используемые компьютером, имеют те же свойства (подчиняются тем же аксиомам), что и целые числа в арифметике. Все вычисления с ними выполняются абсолютно точно (не приближенно). Имеется только одно отличие в свойствах компьютерных целых чисел от тех, которыми оперирует абстрактная математика, а именно ограниченность диапазона. Это свойство компьютерных чисел связано с особенностями их кодирования в ячейках памяти компьютера. 7
5. 1. 2. Простые (неструктурированные) типы данных • Над действительными (или вещественными) числами могут быть выполнены операции сложения (+), вычитания ( ), умножения (*) и деления (/), так же, как и над математическими действительными числами. Операции над действительными числами выполняются с точностью, не превосходящей некоторого фиксированного значения, вследствие того, что представления чисел в памяти компьютера имеют ограниченную длину. Так, например, в машинной арифметике может быть 1/3 = 0, 3333, тогда как математически точное десятичное представление дроби 1/3 бесконечно длинное число. 8
5. 1. 2. Простые (неструктурированные) типы данных • Главным свойством литерных (символьных) данных является их упорядоченность, т. е. свойство быть сравнимыми. Обычным признаком значения символьной или текстовой величины являются кавычки, и справедливо 'а' < 'b', 'b' < 'с', 'с' < 'd' и т. д. Каждый символ имеет определенный числовой код (например, код символа латинской буквы "А" в большинстве кодировок 63) и упорядочение происходит в соответствии с этими числовыми кодами. Как правило, имеются функции, позволяющие получить по символу его код и символ по коду. • Для строчных величин единственной выполнимой операцией является конкатенация ( «сложение» ) строк. Например, 'abcd' + 'efg' = 'abcdefg'. В конкретных системах обычно определены функции, определяющие длину строк, вхождение в них тех или иных подстрок, вырезающие из строк некоторые фрагменты. 9
5. 1. 2. Простые (неструктурированные) типы данных • К логическим данным, способным принимать значения «истина» ( «true» ) или «ложь» ( «false» ), применимы основные операции логики высказываний: конъюнкция (логическое «и» «and» ), дизъюнкция (логическое «или» «or» ), отрицание (логическое «не» «not» ). Иногда можно использовать операции импликации ( «если» ), эквиваленции ( «если и только если» ) и т. п. Логические операции определяются таблицей истинности. • Часто при решении задач оказываются полезными определенные разработчиком типы данных, представляющие собой перечисление некоторых констант или ограниченный с обеих сторон диапазон определенных ранее данных. Например, создается тип данных из двух символов 'а' и 'b' или из целых чисел в диапазоне от 1 до 100 и т. 10
5. 1. 3. Структурированные типы данных • Структурированные типы данных классифицируют по следующим основным признакам: – однородная неоднородная, – упорядоченная неупорядоченная, – прямой доступ последовательный доступ, – статическая динамическая. • Признаки из разных пар могут сочетаться. 11
5. 1. 3. Структурированные типы данных • Если все элементы, образующие структуру, однотипны (например целые числа или символы), то структура является однородной; если же в ней «перепутаны» элементы разной природы (например, числа чередуются с символами), то неоднородной. • Структуру называют упорядоченной, если между ее элементами определен порядок следования. Примером упорядоченной математической структуры служит числовая последовательность, в которой у каждого элемента (кроме первого) есть предыдущий и последующий. Наличие индекса в записи элементов структуры уже указывает на ее упорядоченность (хотя индекс для этого не является обязательным признаком). 12
5. 1. 3. Структурированные типы данных • По способу доступа упорядоченные структуры бывают прямого и последовательного доступа. При прямом доступе каждый элемент структуры доступен пользователю в любой момент независимо от других элементов. Глядя на линейную таблицу чисел мы можем списать или заменить сразу, допустим, десятый элемент. Однако, если эта таблица не на бумаге, а записана на магнитофонную ленту, то сразу десятое число нам недоступно надо сначала извлечь девять предшествующих. Это пример последовательного доступа. • Если у структуры размер (длина, количество элементов) не может быть изменен «на ходу» , а фиксирован заранее, то такую структуру называют статической. Динамическая структура размер которой не фиксирован, а меняется по ходу решения задачи при необходимости. Например, при описании закономерностей движения очереди в магазине мы не знаем заранее, сколько человек в ней будет в тот или иной момент, и соответствующую структуру данных (список фамилий участников очереди) лучше представлять динамической. 13
5. 1. 3. Структурированные типы данных. 5. 1. 3. 1. Массив • Массив (регулярный тип данных) однородная упорядоченная статическая структура прямого доступа. • Массивом называют однородный набор величин одного и того же типа, называемых компонентами массива, объединенных одним общим именем (идентификатором) и идентифицируемых (адресуемых) вычисляемым индексом. Компоненты массива имеют одно и то же имя, но различаются по индексам, которые могут иметь характер целых чисел из некоторого диапазона, литер, перечисленных констант. Индексы позволяют адресовать компоненты массива, т. е. получить доступ в произвольный момент времени к любой из них как к одиночной переменной. Обычный прием работы с массивом выборочное изменение отдельных его компонент. 14
5. 1. 3. Структурированные типы данных. 5. 1. 3. 1. Массив • Вычисляемые индексы позволяют использовать единое обозначение элементов массива для описания массовых однотипных операций в циклических конструкциях программ. Важной особенностью массива является его статичность. Массив должен быть описан в программе (т. е. определены тип и число компонент) и его характеристики не могут быть изменены в ходе выполнения программы. • Компонентами массива могут быть не только простейшие данные, но и структурные, в том числе массивы. В этом случае мы получаем массивов многомерный массив. Для индексации может потребоваться два, три и более индексов. • Существуют специальные виды массивов. Например, массив литер (символов) определяется как строка. 15
5. 1. 3. Структурированные типы данных. 5. 1. 3. 1. Массив • Двумерный массив визуально представляется плоской таблицей. При наличии одного имени (идентификатора) для всех компонентов каждый из них фиксируется значениями двух индексов, указывающих номер строки и номер столбца, на пересечении которых находится эта компонента. i j 1 2 3 4 … 1 a 12 a 13 a 14 … 2 a 21 a 22 a 23 a 24 … 3 a 31 a 32 a 33 a 34 … 4 a 41 a 42 a 43 a 44 … … … . . . … 16
5. 1. 3. Структурированные типы данных. 5. 1. 3. 2. Записи • Обобщением массива является комбинированный тип данных запись, являющаяся неоднородной упорядоченной статической структурой прямого доступа. Запись есть набор именованных компонент полей (часто разного типа), объединенных общим именем и идентифицируемых (адресуемых) с помощью как имени записи, так и имен полей. • Запись В состоит из трех полей, имеющих последовательно типы «текст» , «целое число» , «вещественное число» : 1 е поле название детали, 2 е условный номер по каталогу, 3 е длина. • Если запись часть набора данных, то имя поля состоит из двух частей и называется составным именем поля (составные имена В. name, В. number, В. length). 17
5. 1. 3. Структурированные типы данных. 5. 1. 3. 2. Записи • Записи и массивы обладают одним общим свойством произвольным доступом к компонентам. • Записи более универсальны в том смысле, что для них не требуется идентичности типов их компонент. • Массивы обеспечивают большую гибкость индексы их компонент можно вычислять в отличие от имен полей записей. 18
5. 1. 3. Структурированные типы данных. 5. 1. 3. 3. Множества • Структура данных, моделирующая свойства математического объекта множества. • Над множеством могут быть выполнены следующие операции: – – 1) объединение множеств (операция сложения '+'); 2) пересечение множеств (операция умножения '*'); 3) теоретико множественная разность (вычитание множеств ' '); 4) проверка принадлежности элемента множеству. • Различия между множеством и массивом: – размер множества заранее не оговаривается (хотя и ограничен компьютерной реализацией, например, 255), – не существует иного способа доступа к элементам множества, кроме как проверкой принадлежности множеству. 19
5. 1. 3. Структурированные типы данных. 5. 1. 3. 4. Очередь • Очередь есть линейно упорядоченный набор следующих друг за другом компонент, доступ к которым происходит по следующим правилам: • 1) новые компоненты могут добавляться лишь в хвост очереди; • 2) значения компонент могут читаться (извлекаться) лишь в порядке следования компонент от головы к хвосту очереди. • Размер очереди заранее не оговаривается и теоретически может считаться бесконечным. • Принцип извлечения и добавления компонент к очереди часто называется «первым вошел первым вышел» (английская аббревиатура «FIFO» ). 20
5. 1. 3. Структурированные типы данных. 5. 1. 3. 5. Стек • Структура данных, в которой элемент, который первым в нее помещался, выходит последним и, тот, который последним входит, выходит первым (английская аббревиатура «LIFO» ) получила название стек (или магазин по сходству с магазином стрелкового оружия). 21
5. 1. 3. Структурированные типы данных. 5. 1. 3. 6. Иерархическая структура данных • Во всех рассмотренных выше структурах отдельные элементы (компоненты, поля, составляющие) структуры были формально равноправны. Существует, широкий круг задач, в которых одни данные естественным образом «подвязаны» к другим. В этом случае возникает соподчиненная (иерархическая) структура данных. • Представим себе генеалогическое дерево, корень которого имя человека, на следующем уровне имена его родителей, еще на следующем имена родителей и т. д. Такая структура называется двоичным деревом 22
5. 2. Понятие «файл» и «файловая система» . • Файл — это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. • Как правило, файлы хранятся в памяти, не зависящей от энергопитания. • Каталог – это особый тип файлов, которые содержат системную справочную информацию о наборе файлов, сгруппированных пользователем по какому либо неформальному признаку. 23
5. 2. Понятие «файл» и «файловая система» . • Основные цели использования файла: – Долговременное и надежное хранение информации. Достигается за счет использования запоминающих устройств, не зависящих от питания, надежность обеспечивается средствами защиты доступа к файлам и общей организацией программного кода операционной системы, при которой сбои аппаратуры чаще всего не разрушают информацию, хранящуюся в файлах. – Совместное использование информации. Файлы обеспечивают естественный и легкий способ разделения информации между приложениями и пользователями за счет наличия понятного человеку символьного имени и постоянства хранимой информации и расположения файла. Пользователь должен иметь удобные средства работы с файлами, средства поиска файлов по признакам. Файл может быть создан одним пользователем, а использоваться другими пользователями, при этом создатель 24 файла или администратор могут определить права доступа к нему.
5. 2. Понятие «файл» и «файловая система» . • Файловая система (англ. file system) — регламент, определяющий способ организации, хранения и именования данных на носителях информации. Она определяет формат физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла, максимальный возможный размер файла, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности (разграничение доступа, шифрование файлов). • Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, также, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флэш памяти) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. 25
5. 2. Понятие «файл» и «файловая система» . • Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске). • С точки зрения операционной системы, весь диск представляет из себя набор кластеров размером от 512 байт и выше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные. • Файловая система не обязательно напрямую связана с физическим носителем информации. Существуют виртуальные и сетевые файловые системы, которые являются лишь способом доступа к файлам, находящимся на удалённом компьютере. 26
5. 2. 2. Структура файла • Каждый файл имеет свой тип, определяющий, какая информация хранится в файле. Основные типы файлов – программа (код) и данные. Данные подразделяются на числовые, символьные (текстовые) и двоичные (произвольная информация). • В современном представлении файл – это последовательность слов или байтов. Базовое представление файла и базовые операции над ним не зависят от типа устройства. • Файлы условно подразделяют на файлы простой и сложной структуры (при этом точка зрения на структуру файла зависит от той программы, которая его обрабатывает). 27
5. 2. 2. Структура файла • Файлы простой структуры состоят из последовательности записей – элементарных единиц, в терминах которых выполняются операции обмена с файлом. Записи могут быть: – строками, если это текстовый файл; – двоичными данными фиксированной длины; – двоичными данными переменной длины. • Файлы сложной структуры могут быть самого разного вида: – отформатированным документом Microsoft Office (такой файл, кроме собственно текста, содержит управляющие символы переключения шрифтов, цветов и т. д. ); – загрузочным модулем реального или виртуального двоичного кода, подобные файлы состоят из нескольких секций, содержат внутренние ссылки и таблицы и т. д. • Сложная структура файла может быть смоделирована записями путем добавления управляющих символов. Файлы интерпретируются операционной системой или программами их обработки. 28
5. 3. Структура файловой системы. Файловое дерево. 5. 3. 1. Состав файловой системы • Файловая система — это часть операционной системы, включающая: – совокупность всех файлов на диске, – наборы служебных структур данных, используемых для управления файлами, такие как, например, каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске, – комплекс системных программных средств, реализующих управление файлами, в частности операции по созданию, уничтожению, чтению, записи, именованию файлов, установке атрибутов и уровней доступа, поиску и т. д. 29
5. 3. 2. Задачи файловой системы • именование файлов; • программный интерфейс работы с файлами для приложений; • отображение логической модели файловой системы на физическую организацию хранилища данных; • устойчивость файловой системы к сбоям питания, ошибкам аппаратных и программных средств. • В многопользовательских системах защита файлов пользователя от несанкционированного доступа других пользователей. 30
5. 3. 3 Классификация файловых систем • По предназначению файловые системы можно классифицировать на следующие категории: – для носителей с произвольным доступом (например, жёсткий диск): FAT 32, HPFS, ext 2 и др. – для носителей с последовательным доступом (например, магнитные ленты): QIC и др. – для оптических носителей — CD и DVD: ISO 9660, ISO 9690, HFS, UDF и др. – виртуальные файловые системы: AEFS и др. – сетевые файловые системы: NFS, SMBFS, SSHFS, Gmail. FS и др. 31
5. 3. 3 Файловое дерево 32
5. 3. 4. Файловая система FAT • Файловая система FAT (File Allocation Table) разработана Биллом Гейтсом и Марком Мак. Дональдом в 1977 году и стала основой для ОС MS DOS. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт. 33
5. 3. 5. Файловая система FAT Логический раздел, отформатированный под файловую систему FAT, состоит из следующих областей: • • • загрузочный сектор содержит программу начальной загрузки операционной системы (зависит от операционной системы, которая будет загружаться из этого раздела). основная копия FAТ содержит информацию о размещении файлов и каталогов на диске. резервная копия FAT. корневой каталог занимает фиксированную область размером в 32 сектора (16 Кбайт), что позволяет хранить 512 записей о файлах и каталогах (каждая запись каталога состоит из 32 байт). область данных предназначена для размещения всех файлов каталогов. 34
5. 3. 5. Файловая система FAT • Для хранения файлов всё доступное для них пространство разбивается на кластеры. Таблица размещения файлов содержит ячейки, каждая из которых указывает на определённый кластер на жестком диске. Если кластер принадлежит файлу, то его ячейка содержит номер следующей ячейки этого же файла. Если ячейка указывает на конец файла, она содержит значение «FFFF» . Неиспользуемые кластеры помечены нулём. «Плохие» кластеры помечены специальным кодом. • Кластер (англ. cluster) — в некоторых типах файловых систем логическая единица хранения данных в таблице размещения файлов, объединяющая группу секторов. • Например, на дисках с размером секторов в 512 байт, 512 байтный кластер содержит один сектор, тогда как 4 килобайтный кластер содержит восемь секторов. • Существует три версии FAT — FAT 12, FAT 16 и FAT 32. Они отличаются 35 количеством бит, отведённых для хранения номера кластера.
5. 3. 5. Файловая система FAT Классификация файловой системы FAT Максимальный размер файла Максимальное количество файлов Максимальный размер тома FAT 12 32 Mb FAT 16 2 ГБайт FAT 32 2 ГБайт 4 096 65 536 > 4 млрд 32 МБайт 2 Гбайт (4 Гбайт) 8 ТБайт Назначение Для дискет Для жестких дисков Для дисков малого объёма 36
5. 3. 5. Файловая система FAT • Отказоустойчивость системы – Поскольку система FAT хранит данные о файлах и данные о свободном месте на диске в одной таблице, то операция по записи файла, традиционно состоящая из двух этапов (добавление занимаемого блока в перечень занятых и исключение этого же блока из списка свободных) происходит в FAT в одно действие. Благодаря этому система FAT обладает встроенной устойчивостью к сбоям, то есть сбой (например, питания) в момент выполнения операции чтения или записи в большинстве случаев не приведёт к разрушению файловой системы. Речь идёт именно о целостности файловой системы, а не самих файлов. 37
5. 3. 6. Файловая система NTFS • NTFS (от англ. New Technology File System — «файловая система новой технологии» ) — файловая система для семейства операционных систем Microsoft Windows NT. • Основными отличительными свойствами NTFS являются: – поддержка больших файлов и больших дисков объемом до 2 Тбайт; – восстанавливаемость после сбоев и отказов программ и аппаратуры управления дисками; – высокая скорость операций, в том числе и для больших дисков; – низкий уровень фрагментации, в том числе и для больших дисков; – гибкая структура, допускающая развитие за счет добавления новых типов записей и атрибутов файлов с сохранением совместимости с предыдущими версиями файловой системы; – устойчивость к отказам дисковых накопителей; – поддержка длинных символьных имен; – контроль доступа к каталогам и отдельным файлам. 38
5. 3. 7. Сравнение FAT и NTFS Ограничения Размеры тома NTFS Минимальный размер тома составляет приблизительно 10 Мб. На практике рекомендуется создавать тома, размеры которых не превышают 2 Тб. С помощью NTFS нельзя форматировать дискеты Размеры файлов Теоретически размер файла может составлять 16 эксабайт. Экса = 260 FAT 16 и FAT 32 FAT поддерживает различные размеры томов — от объема дискет и до 4 Гб FAT 32 поддерживает тома объемом от 2 гб. до 2 Тб. Работая под управлением Windows XP для FAT 32 можно отформатировать тома, размер которых не превышает 32 Гб. FAT 32 не поддерживаются диски размеры которых меньше 512 Мб. FAT 16 поддерживает файлы размером не более 2 Гб. FAT 32 поддерживает файлы размером 39 не более 4 Гб.
5. 4. Создание файлов, типизация файлов. Управление версиями файлов. Защита файлов. 5. 4. 1. Атрибуты файлов • Атрибуты — это информация, описывающая свойства файла. • Примеры возможных атрибутов файла: тип файла (обычный файл, каталог, специальный файл и т. п. ); владелец файла; создатель файла; пароль для доступа к файлу; информация о разрешенных операциях доступа к файлу; времена создания, последнего доступа и последнего изменения; текущий размер файла; максимальный размер файла; признаки «только для чтения» ; «скрытый файл» ; «системный файл» ; «архивный файл» ; «двоичный/символьный» ; – признак «временный» (удалить после завершения процесса); 40 – признак блокировки. – – – – –
5. 4. 1. Атрибуты файлов • Набор атрибутов файла определяется спецификой файловой системы: в файловых системах разного типа для характеристики файлов могут использоваться разные наборы атрибутов. В однопользовательской ОС в наборе атрибутов будут отсутствовать характеристики, имеющие отношение к пользователям и защите, такие как владелец файла, создатель файла, пароль для доступа к файлу, информация о разрешенном доступе к файлу. • Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять — только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается. 41
5. 4. 2. Операции над файлами • Создание файла (Create). Создается заголовок файла; первоначально его содержимое (память) пусто. • Запись в файл (Write). Как правило, происходит записями (records) или блоками – более крупными логическими единицами информации, объединяющими несколько записей, с целью оптимизации операций ввода вывода. • Чтение из файла (Read). Обычно выполняется записями или блоками. • Поиск позиции внутри файла (позиционирование) (Seek). Позиция задается номером записи или блока, либо специальными именами, обозначающими начало файла (позиция перед первой записью) или конец файла (позиция последней записи). • Удаление файла (Delete). В зависимости от реализации системы файлов, ошибочное удаление файла может быть фатальным или исправимым. • Сокращение файла (Truncate). 42
5. 4. 2. Операции над файлами • Открытие файла (Open) – поиск файла в структуре директорий по его символьному имени (пути) и считывание его заголовка и одного или нескольких смежных блоков в буфера в основной памяти. • Закрытие файла (Close) – запись содержимого буферов в блоки файла; обновление файла во внешней памяти в соответствии с его текущим состоянием; освобождение всех структур в основной памяти, связанных с файлом. • Для выполнения операций обмена с файлом (read, write), файл необходимо открыть. Закрытие файла выполняет пользовательский процесс; если он этого не выполняет, то закрывает все файлы, операционная система после завершения или прекращения процесса. 43
5. 4. 3. Защита файлов • Создатель файла должен иметь возможность управлять списком допустимых операций над файлом и списком пользователей, которым они разрешены. Это и обеспечивают механизмы защиты файлов. • Различаются следующие основные типы доступа к файлу: – – – Read (для чтения) Write (для записи) Execute (для исполнения) Append (для записи в конец файла, или присоединения) Delete (для удаления) List (для вывода списка файлов в директории). 44
5. 4. 4. Типы файлов – имена и расширения тип файла исполняемый код (загрузочный модуль) объектный модуль расширение имени exe, com, bin или отсутствует obj, о функциональность готовая к выполнению программа в бинарном машинном коде откомпилированная программа в бинарном коде, но не слинкованная исходный код на языке с, сс, Java, pas, asm, исходный код на различных языках (Си, программирования а Паскаль и др. ) командный файл bat, sh файл с командами для командного интерпретатора текст txt, doc текстовые данные, документы документ для wp, tex, rtf, doc Документ в формате какого либо текстового процессора библиотека lib, a, so, dll библиотеки модулей для программирования архив rar, arc, zip, tar мультимедиа mpeg, mov, rm несколько файлов, сгруппированных в один файл, для архивации или хранения бинарный файл, содержащий аудио или видео/аудиоинформацию 45
5. 5. Сжатие информации 5. 5. 1. Определения • Характерной особенностью большинства «классических» типов данных, с которыми традиционно работают люди, является определенная избыточность. Степень избыточности зависит от типа данных. Например, у видеоданных степень избы точности обычно в несколько раз больше, чем у графических данных, а степень избыточности графических данных в несколько раз больше, чем текстовых. Степень избыточности данных зависит от принятой системы кодирования. Например, кодирование текстовой информации средствами русского языка (с использованием русской азбуки) дает в среднем избыточность на 20 30% больше, чем кодирование адекватной информации средствами англий ского языка. • Для человека избыточность информации связана с представлением о ее качестве, поскольку избыточность, как правило, улучшает восприятие в неблагоприятных условиях (просмотр телепередач при наличии помех, восстановление поврежденного графического материала, чтение текстов в условиях недостаточной освещенности). 46
5. 5. Сжатие информации 5. 5. 1. Определения • При обработке информации избыточность также играет важную роль. Например, при преобразовании или селекции информации избыточность используют для повышения ее качества (репрезентативности, актуальности, адекватности и т. п. ). Однако, когда речь заходит не об обработке, а о хранении готовых документов или их передаче, то избыточность можно уменьшить, что дает эффект сжатия данных. • Технология, позволяющая сократить размер обрабатываемых данных, называется сжатием данных. • Научной основой всех методов сжатия данных является теория информации: данные, в которых имеются статистические автокорреляции, называются избыточными. • Если методы сжатия информации применяют к готовым документам, то нередко термин сжатие данных подменяют термином архивация данных, а программные средства, выполняющие эти операции, 47 называют архиваторами.
5. 5. 2. Объекты сжатия • В зависимости от того, в каком объекте размещены данные, подвергаемые сжатию, различают: – уплотнение (архивацию) файлов. Применяют для уменьшения их размеров при подготовке к пере даче по каналам электронных сетей или к транспортировке на внешнем носителе малой емкости, например на гибком диске. – уплотнение (архивацию) папок. Используют как средство архивации данных перед длительным хранением, в частности, при резервном копировании. – уплотнение дисков. Служит целям повышения эффективности использования их рабочего пространства и, как правило, применяется к дискам, имеющим недоста точную емкость. 48
5. 5. 3. Обратимость сжатия • Для любых алгоритмов сжатия данных теоретически есть только три способа уменьшения их избыточности: – изменение содержания данных, – изменение их структуры, – и то и другое вместе. 49
5. 5. 3. Обратимость сжатия • Если при сжатии данных происходит изменение их содержания, метод сжатия необра тим и при восстановлении данных из сжатого файла не происходит полного вос становления исходной последовательности. Такие методы называют также методами сжатия с регулируемой потерей информации (losing compression). • Применимы только для типов данных, у которых формальная утрата части содержания не при водит к значительному снижению потребительских свойств. Это относится к мультимедийным данным: видеорядам, музыкальным записям, звуко записям и рисункам. Методы сжатия с потерей информации обеспечивают гораздо более высокую степень сжатия, чем обратимые методы, но их нельзя при менять к текстовым документам, базам данных, программному коду. • Характерными форматами сжатия с потерей информации являются: –. JPG для графических данных; –. MPG для видеоданных; 50
5. 5. 3. Обратимость сжатия • Если при сжатии данных происходит только изменение их структуры, то метод сжатия обратим. • Из результирующего кода можно восстановить исходный массив путем применения обратного метода. Обратимые методы применяют для сжатия любых типов данных. • Характерными форматами сжатия без потери информации (losless compression) являются: –. GIF, . ТIF, . РСХ и многие другие для графических данных; –. AVI для видеоданных; –. ZIP, . ARJ, . RAR, . LZH, . LH, . CAB и многие другие для любых типов данных. 51
5. 5. 3. Обратимость сжатия • При исследовании методов сжатия данных следует иметь в виду существование следующих доказанных теорем, – Для любой последовательности данных существует теоретический предел сжатия, который не может быть превышен без потери части информации. – Для любого алгоритма сжатия можно указать такую последовательность данных, для которой он обеспечит лучшую степень сжатия, чем другие методы. – Для любого алгоритма сжатия можно указать такую последовательность данных, для которой данный алгоритм вообще не позволит получить сжатия. • Следует иметь в виду, что различные методы сжатия наивысшую эффективность демонстрируют для данных разных типов и разных объемов. • Существует достаточно много обратимых методов сжатия данных, однако в их основе лежит сравнительно небольшое количество теоретических алгоритмов. 52
5. 5. 4. Алгоритмы сжатия данных без потери информации • Метод кодирования длины серий даёт наилучшие результаты, если сжимаемые данные состоят из длинных последовательностей одних и тех же значений (алгоритмы RLE, KWE). • Метод относительного кодирования. В некоторых случаях информация может состоять из блоков данных, каждый из которых может немного отличаться от предыдущего. Примером могут служить последовательные кадры видеоизображения. Каждый блок кодируется с точки зрения его взаимосвязи с предыдущим блоком. 53
5. 5. 4. Алгоритмы сжатия данных без потери информации • Метод частотно зависимого кодирования, при котором длина битовой комбинации, представляющей элемент данных, обратно пропорциональна частоте использования этого элемента (коды Хоффмана). • Методы кодирования Lempel Ziv являются наиболее универсальными для сжатия данных общего назначения. Системы кодирования по методу Lempel Ziv используют технологию кодирования с применением адаптивного словаря. В данном контексте словарь означает набор строительных блоков, из которых создаётся сжатое сообщение. Строительными блоками могут быть символы алфавита, блок данных (нулей и единиц), хранящихся в компьютере. 54
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 1. Алгоритм RLE • • • В основу алгоритмов кодирования длины серий RLE (Run Length Encoding) положен принцип выявления повторяющихся последо вательностей данных и замены их простой структурой, в которой указывается код данных и коэффициент повтора. Например, для последовательности: 0; 0; 0; 127; 0; 255; 255 (всего 10 байтов) образуется следующий вектор: Значение Коэффициент повтора 0 3 127 2 0 1 255 4 При записи в строку он имеет вид: 0; 3; 127; 2; 0; 1; 255; 4 (всего 8 байтов). В данном примере коэффициент сжатия равен 8/10 (80 %). Программные реализации алгоритмов RLE отличаются простотой, высокой скоростью работы, но обеспечивают недостаточное сжатие. Наилучшими объектами для алгоритма являются графические файлы, в которых боль шие одноцветные участки изображения кодируются длинными последовательнос тями одинаковых байтов. Метод может давать выигрыш на некоторых типах файлов баз данных, имеющих таблицы с фиксированной длиной полей. Для текстовых данных методы RLE неэффективны. 55
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 2. Алгоритм KWE • В основу алгоритмов кодирования по ключевым словам (Keyword Encoding) положено кодирование лексических единиц исходного документа группами бай тов фиксированной длины(токенами). Примером лексической единицы может служить слово (последовательность символов, справа и слева ограниченная пробелами или сим волами конца абзаца). Результат кодирования сводится в таблицу, которая при кладывается к результирующему коду и представляет собой словарь. Обычно для англоязычных текстов принято использовать двухбайтную кодировку слов. • Эффективность метода зависит от длины документа, поскольку из за необходимости прикладывать к архиву словарь длина кратких документов не только не уменьшается, но даже возрастает. Данный алгоритм эффективен для англоязычных текстовых документов и файлов баз данных. Для русскоязычных документов, отличающихся увеличен ной длиной слов и большим количеством приставок, суффиксов и окончаний, не всегда удается ограничиться двухбайтными токенами, и эффективность метода заметно снижается. 56
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 3. Алгоритм Хаффмана • В основе алгоритма Хаффмана лежит кодирование не байтами, а битовыми группами. – перед началом кодирования производится частотный анализ кода документа и выявляется частота повтора каждого из встречающихся символов. – чем чаще встречается тот или иной символ, тем меньшим количеством битов он кодируется (соответственно, чем реже встречается символ, тем длиннее его кодовая битовая последовательность). – образующаяся в результате кодирования иерархическая структура приклады вается к сжатому документу в качестве таблицы соответствия. • В связи с тем, что к сжатому архиву необходимо прикладывать таблицу соответ ствия, на файлах малых размеров алгоритм Хафмана малоэффективен. Практика также показывает, что его эффективность зависит и от заданной предельной длины кода (размера словаря). В среднем, наиболее эффективными оказываются архивы с размером словаря от 512 до 1024 единиц. 57
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 4. Алгоритм Лемпеля Зива (LZ 77, LZW, LZH) • Используется идея адаптивного сжатия. Алгоритмы Лемпеля Зива сводятся к поиску в потоке повторяющихся последовательностей и замене этих последовательностей на их номер в динамическом словаре. Различие состоит в способах кодирования номера и формировании словаря. За один проход по тексту одновременно динамически строится словарь и кодируется текст. При этом словарь не хранится – за счёт того, что при декодировании используется тот же самый алгоритм построения словаря, словарь динамически восстанавливается. В сжатое представление записывается найденный код слова и расширенная буква, а словарь пополняется расширенной комбинацией. Поскольку номер последовательности в словаре содержит больше битов, чем символы исходного потока, алгоритмы Лемпеля Зива предполагают дальнейшее перекодирование преобразованного потока кодом Хаффмена. • Большинство современных архиваторов, такие как Zip, RAR, основаны на вариациях и аналогах алгоритмов Лемпеля Зива. 58
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 5. Алгоритм Лемпеля Зива Велча (LZW) • универсальный алгоритм сжатия данных без потерь, созданный в 1984 году, в качестве улучшенной реализации алгоритма LZ 78. Алгоритм разработан так, чтобы его можно было быстро реализовать, но он не обязательно оптимален, поскольку не проводит анализа входных данных. Акроним «LZW» указывает на фамилии изобретателей алгоритма: Лемпель, Зив и Велч. Данный алгоритм при сжатии (кодировании) динамически создаёт таблицу преобразования строк: определённым последовательностям символов (словам) ставятся в соответствие группы бит фиксированной длины (обычно 12 битные). Таблица инициализируется всеми 1 символьными строками (в случае 8 битных символов — это 256 записей). • По мере кодирования, алгоритм просматривает текст символ за символом, и сохраняет каждую новую, уникальную 2 символьную строку в таблицу в виде пары код/символ, где код ссылается на соответствующий первый символ. 59
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 5. Алгоритм Лемпеля Зива Велча (LZW) • После того как новая 2 символьная строка сохранена в таблице, на выход передаётся код первого символа. Когда на входе читается очередной символ, для него по таблице находится уже встречавшаяся строка максимальной длины, после чего в таблице сохраняется код этой строки со следующим символом на входе; на выход выдаётся код этой строки, а следующий символ используется в качестве начала следующей строки. Алгоритму декодирования на входе требуется только закодированный текст, поскольку он может воссоздать соответствующую таблицу преобразования непосредственно по закодированному тексту. • На момент своего появления алгоритм LZW давал лучший коэффициент сжатия для большинства приложений. Он стал первым широко используемым на компьютерах методом сжатия данных. В 1987 году алгоритм стал частью стандарта на формат изображений GIF. Он также может (опционально) использоваться в формате TIFF. В настоящее время, алгоритм содержится в стандарте PDF. 60
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 5. Алгоритм Лемпеля Зива Велча (LZW) • Пример, показывающий состояние выходных данных и словаря на каждой стадии при кодировании сообщения. Ограничимся простым алфавитом — только заглавные буквы, без знаков препинания и пробелов. Сообщение, которое нужно сжать, выглядит следующим образом: TOBEORNOTTOBEORNOT# • Маркер # используется для обозначения конца сообщения. Тем самым, в нашем алфавите 27 символов (26 заглавных букв от A до Z и #). Компьютер представляет это в виде групп бит, для представления каждого символа алфавита нам достаточно группы из 5 бит на символ. По мере роста словаря, размер групп должен расти, с тем чтобы учесть новые элементы. 5 битные группы дают 25 = 32 возможных комбинации бит, поэтому, когда в словаре появится 33 е слово, алгоритм должен перейти к 6 битным группам. Заметим, что, поскольку используется группа из всех нолей 00000, то 33 я группа имеет код 32. 61
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 5. Алгоритм Лемпеля Зива Велча (LZW) • • Начальный словарь будет содержать: # = 00000 A = 00001 B = 00010 C = 00011. . . Z = 11010 Без использования алгоритма LZW, при передаче сообщения как оно есть — 25 символов по 5 бит на каждый — оно займёт 125 бит. Сравним это с тем, что получается при использовании LZW: 62
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 5. Алгоритм Лемпеля Зива Велча (LZW) • • • • • Символ: Битовый код: Новая запись словаря: (на выходе) T 20 = 10100 O 15 = 01111 27: TO B 2 = 00010 28: OB E 5 = 00101 29: BE O 15 = 01111 30: EO R 18 = 10010 31: OR < со следующего символа начинаем использовать 6 битные группы N 14 = 001110 32: RN Общая длина = 6*5 + 11*6 = 96 бит. O 15 = 001111 33: NO Таким образом, используя LZW мы T 20 = 010100 34: OT сократили сообщение на 29 бит из 125 TO 27 = 011011 35: TT BE 29 = 011101 36: TOB — это почти 22 %. Если сообщение OR 31 = 011111 37: BEO будет длиннее, то элементы словаря TOB 36 = 100100 38: ORT будут представлять всё более и более EO 30 = 011110 39: TOBE длинные части текста, благодаря чему RN 32 = 100000 40: EOR повторяющиеся слова будут OT 34 = 100010 41: RNO # 0 = 000000 42: OT# представлены очень компактно. 63
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 6. Свойства алгоритмов сжатия Алгоритм Выходная структура RLE (Run Length Список (вектор Encoding) данных) KWE (Keyword Encoding) Алгоритм Хафмана Алгоритм Лемпеля Зива Сфера Примечание применения Графические Эффективность данные алгоритма не зависит от объема данных Таблица данных Текстовые Эффективен для (словарь) данные массивов большого объема Иерархическая Любые Эффективен для структура (дерево данные массивов большого кодировки) объема Таблица данных Любые Эффективен для (словарь) данные массивов большого объема 64
5. 5. 4. Алгоритмы сжатия данных без потери информации. 5. 5. 4. 6. Свойства алгоритмов сжатия • Рассмотренные выше алгоритмы в «чистом виде» на практике не применяют из за того, что эффективность каждого из них сильно зависит от начальных условий. • В связи с этим, современные средства архивации данных используют более сложные алгоритмы, основанные на комбинации нескольких теоретических методов. Общим принципом в работе таких «синтетических» алгоритмов является предва рительный просмотр и анализ исходных данных для индивидуальной настройки алгоритма на особенности обрабатываемого материала. • Все перечисленные алгоритмы способны только устранять автокорреляции, уже существующие во входном сигнале. Очевидно, что если автокорреляций не было, то упаковки не произойдёт, поэтому гарантировать уровень сжатия эти алгоритмы не могут. • Автокорреляция — статистическая взаимосвязь между случайными величинами из одного ряда, но взятых со сдвигом. 65
5. 5. 5. Алгоритмы сжатия данных с потерей информации • Для упаковки данных, полученных оцифровкой реальных сигналов, прежде всего изображений и звука, точные алгоритмы не подходят. Так как реальный сигнал всегда сопровождается тепловым, так назы ваемым белым (равномерно содержащим все частоты) шумом. Этот шум ис кажает наличествующие в сигнале автокорреляции, сам же автокорреляций не имеет, поэтому обратимые алгоритмы с зашумленным сигналом спра виться не могут. • Алгоритмы. JFIF (лежащий в основе распространенного формата хранения растровых изображений JPG), МРЕG, МРЗ начинаются с выполнения над входным потоком преобразования Фурье. JFIF удаляет из полученного спектра фиксированное количество частот обычно самые слабые. Количество частот, которые надо выки нуть, определяется параметром настройки упаковщика. У JFIF этот параметр так и называется коэффициентом упаковки, у МРЗ битрейтом. 66
5. 5. 5. Алгоритмы сжатия данных с потерей информации • Профильтрованный таким образом сигнал заведомо содержит автокорреляции даже если исходный, зашумленный, сигнал их и не содержал, такая фильтрация их создаст и потому легко поддается упаковке. Благодаря этому, все пере численные алгоритмы обеспечивают гарантированный уровень упаковки. Понят но, что точно восстановить по подвергнутому такому преобразованию пото ку исходный сигнал невозможно, но такой цели и не ставится, поэтому все перечисленные методы относятся к разряду необратимых. • При разумно выбранном уровне упаковки результат фотореалистичное изображение или музыкальное произведение на взгляд (на слух) практически неотличим от оригинала. 67
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. 5. 1. Сжатие изображений • Растровый формат, используемый в современных цифровых преобразователях изображений, предусматривает кодирование изображений в формате по три байта на пиксель, что приводит к созданию громоздких, неудобных в работе растровых файлов. Специально для этого формата разработано множество схем сжатия, предназначенных для уменьшения места, за нимаемого подобными файлами на диске. 68
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. 5. 2. Формат GIF • Используемый в формате GIF (Graphic Interchange Format разработанный компанией Compu. Serve ) метод заключается в уменьшении количества цветовых оттенков пикселя до 256, в результате чего цвет каждого пикселя представляется одним байтом вместо трех. С помощью таблицы, называемой цветовой палитрой, каждый из допустимых цветовых оттенков пикселя ассоциируется с некоторой комбинацией цветов "красный зеленый синий". Изменяя палитру, можно изменять цвета, появляющиеся в изображении. • Обычно один из цветов палитры в формате GIF воспринимается как обозначение "прозрачности". Это означает, что в закрашенных этим цветом участках изображения отображается цвет того фона, на котором оно находится. Благодаря этому и простоте использования изображений формат GIF полу чил широкое распространение в тех компьютерных играх, где множество раз личных картинок перемещается по экрану. Кроме того, формат GIF позволяет эффективно сжимать изо бражения, состоящие из блоков одного цвета 69 с четкими границами (напри мер в цветной мультипликации).
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. 5. 3. Формат JPEG • Формат JPEG стандарт, разработанный ассоциацией Joint Photographic Experts Group в рамках организации ISO. Формат JPEG показал себя как эффективный метод представления цветных фотографий. Именно по этой причине данный стандарт используется производителями современных цифровых фотокамер. Следует ожидать, что он окажет немалое влияние на об ласть цифрового представления изображений и в будущем. • Стандарт JPEG включает несколько способов представле ния изображения, каждый из которых имеет собственное назначение. Например, когда требуется максимальная точность представления изображения, формат JPEG предлагает режим "без потерь". 70
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. 5. 3. Формат JPEG • В режиме «без потерь» экономия места достигается посредством запомина ния различий между последовательными пикселями, а не яркости каждого пик селя в отдельности. Согласно теории, в большинстве случаев степень различия между соседними пикселями может быть закодирована более короткими бито выми комбинациями, чем собственно значения яркости отдельных пикселей. Существующие различия кодируются с помощью кода переменной длины, кото рый применяется в целях дополнительного сокращения используемой памяти. • При использовании режима "без потерь" создаваемые файлы рас тровых изображений настолько велики, что они с трудом обрабатываются метода ми современной технологии, а потому и применяются на практике крайне редко. 71
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. 5. 3. Формат JPEG • Стандартный метод формата JPEG режим «базовых строк» , В этом режиме каждый из пикселей также представляется тремя составляющими, но в данном случае это уже один компонент яркости и два компонента цвета. • Режим "базовых строк" стандарта JPEG использует особенность человеческого зрения (а именно разную чувствительность к изменениям яркости и цвета), ко дируя компонент яркости аждого к пикселя, но усредняя значение цветовых компонентов для блоков, состоящих из четырех пикселей, и записывая цветовые компоненты только для этих блоков. В результате окончательное представление изображения сохраняет внезапные перепады яркости, однако оставляет размытыми резкие изменения цвета. Преимущество этой схемы состоит в том, что ка ждый блок из четырех пикселей представлен только шестью значениями (четыре показателя яркости и два цвета), а не двенадцатью, которые необходимы при использовании схемы из трех показателей на каждый пиксель. 72
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. 5. 3. Формат JPEG • Дополнительной экономии места можно достичь с помощью записи информа ции, определяющей зменения компонентов яркости и и цвета, а не их абсолют ных значений. Полученная в результате битовая комбинация дополнительно сжимается с использованием кодов переменной дли ны. В результате применение режима "базовых строк" формата JPEG позволяет получать цветные изображения приемлемого качества, размер которых находит ся в соотношении 1: 20 с размером растровых файлов, в которых для представле ния каждого пикселя используется трехбайтовая схема, используемая в большинстве существующих сканеров. 73
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. 5. 4. Другие методы сжатия • В области сжатия данных прово дятся интенсивные и обширные исследования. Рассмотрены лишь два из множе ства существующих методов сжатия изображений. • Помимо них имеются многочисленные методы сжатия аудио и видеоинформации. • Например, ме тод, подобный режиму "базовых строк" формата JPEG, был разработан входя щей в состав ISO ассоциацией Motion Picture Experts Group (MPEG) и принят в качестве стандарта кодирования (или сжатия) аудио и видеоинформации. Суть этого стандарта состоит в записи начальной картинки последовательности изо бражений с помощью метода, подобного режиму "базовых строк" формата JPEG, после чего для кодирования оставшейся части изображений в их последователь ности применяются методы относительного кодирования. 74
5. 5. 5. Алгоритмы сжатия данных с потерей информации. 5. 5. Сжатие звука • • Наиболее распространенным способом кодирования аудиоинформации (в целях ее сохранения, обработки и передачи) является измерение значения амплитуды звуковой волны через регулярные интервалы времени и запись последовательности полученных значений. Чтобы получить необходи мое качество звучания, на современных компакт дисках музыка записывается с частотой выборки 44 100 значений в секунду. Каждое из значений записывается в 16 разрядном формате (для стереозаписей ис пользуется 32 разрядный формат) для хранения звуковых данных с продолжительностью звучания в одну секунду потребуется более миллиона битов памяти. Подобные затраты памяти приемлемы для записи музыки на компакт дисках, однако в сочетании с видео записью (для получения движущихся озвученных изображений) эти требования превышают возможности современной технологии. Поэтому ассоциация Motion Picture Experts Group (MPEG), входящая в состав ISO, разработала методы сжатия аудиоинформации, позволяющие существенно снизить требования к исполь зованию памяти. Одним из таких форматов является МРЗ (MPEG 1, Audio Layer 3), позволяющий сжимать аудиоинформацию в соотношении 12: 1. 75