
- •Министерство образования и науки Российской Федерации
- •Цель лекции
- •План лекции
- •1 Происхождение вычислительных машин
- •2 Изучение алгоритмов
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Биты и их хранение
- •2 Оперативная память
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Устройства внешней памяти
- •3 Хранение и поиск файлов
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Представление числовых значений
- •2 Хранение целых чисел
- •3 Хранение дробей
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Представление текста
- •2 Представление изображений
- •Достоинства пиксельной графики
- •Недостатки пиксельной графики
- •Достоинства векторной графики
- •Недостатки векторной графики
- •3 Представление звука
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Сжатие изображений
- •2 Ошибки передачи данных
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Архитектура эвм
- •2 Связь процессора с другими устройствами
- •3 Другие архитектуры
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Машинный язык
- •2 Пример машинного языка
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Выполнение программы
- •2 Пример выполнения программы
- •3 Программы и данные
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Логические операции
- •2 Операции сдвига
- •3 Арифметические операции
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Эволюция операционных систем
- •2 Архитектура операционных систем
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Понятие процесса
- •2 Управление процессами
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Классификация сетей
- •2 Сетевые протоколы*
- •3 Безопасность сетей
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Понятие алгоритма
- •2 Представление алгоритма
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Теория решения задач
- •2 Общие методы решения задач
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Алгоритм последовательного поиска
- •2 Управление циклами
- •3 Алгоритм сортировки методом вставки
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Алгоритмы поиска и сортировки
- •2 Управление рекурсией
- •3 Разработка рекурсивных процедур
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Эффективность алгоритмов
- •2 Верификация программ
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Эволюция и классификация языков программирования
- •2 Концепции традиционного программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Процедурные единицы
- •2 Реализация языка программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Объектно-ориентированное программирование
- •2 Декларативное программирование
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Структуры данных
- •Integer Scores (2.9).
- •2 Статические и динамические структуры
- •3 Указатели
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Массивы
- •2 Списки
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Структура и функции стека
- •2 Реализация стека
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Очереди
- •2 Деревья
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Пользовательские типы данных
- •Int Age;
- •2 Классы
- •Int *StackEntries;
- •3 Стандартная библиотека шаблонов
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Роль операционной системы
- •2 Последовательные файлы
- •3 Вопросы программирования
- •0000000010000110
- •001100010011001100110100
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Основные положения индексации
- •2 Вопросы программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Основные положения хеширования
- •2 Вопросы программирования
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Общие вопросы
- •2 Система управления базой данных
- •3 Поддержка целостности баз данных
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Модели баз данных
- •2 Реляционная модель баз данных
- •3 Объектно-ориентированные базы данных
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Интеллект и машины
- •2 Распознавание образов
- •3 Мышление
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Искусственные нейронные сети
- •2 Генетические алгоритмы
- •Контрольные вопросы
- •Невычислимые функции Цель лекции
- •План лекции
- •1 Основы машины Тьюринга
- •2 Невычислимая функция
- •3 Сложность задач
- •Листинг 1. Процедура MergeLists для объединения двух упорядоченных списков
- •Листинг 2. Алгоритм сортировки слиянием, реализованный в процедуре MergeSort
- •Контрольные вопросы
- •Цель лекции
- •План лекции
- •1 Шифрование с открытым ключом
- •2 Модульная арифметика
- •Контрольные вопросы
- •Литература
- •Internet-ресурсы
3 Представление звука
При наиболее распространенном способе кодирования звуковой информации амплитуда сигнала измеряется через равные промежутки времени и записываются полученные значения. Например, последовательность 0, 1.5, 2.0, 1.5, 2.0, 3.0, 4.0, 3.0, 0 описывает волну звука, амплитуда которой сначала увеличивается, затем немного уменьшается, затем снова повышается и, наконец, падает до 0 (рис. 1.17). Этот способ кодирования, в котором частота дискретизации составляет 8000 отсчетов в секунду, используется не первый год в дальней телефонной связи. Голос на одном конце канала кодировался в виде числовых значений, отражавших амплитуду звукового сигнала, восемь тысяч раз в секунду. Эти значения затем передавались по каналам связи и использовались для воспроизведения звука.
Может показаться, что 8000 отсчетов в секунду — это большая частота дискретизации, но она все же недостаточна для высокой точности воспроизведения музыки. Для получения качественного звучания на современных музыкальных компакт-дисках используется частота дискретизации, равная 44 100 отсчетов в секунду. Для данных, полученных при каждом отсчете, отводится 16 битов памяти (или 32 бита для стереозаписей). Следовательно, для хранения одной секунды звучания требуется более миллиона битов.
В музыкальных синтезаторах, компьютерных играх и звуковых сигналах, сопровождающих веб-страницы, широко используется более экономная система кодирования, которая называется цифровым интерфейсом музыкальных инструментов (MIDI — Musical Instrument Digital Interface).
При использовании стандарта MIDI не требуется столько места в памяти, как при дискретизации звукового сигнала, так как эта система кодирует указания, как следует порождать музыку, а не сам звуковой сигнал. Точнее, MIDI кодирует информацию о том, какой инструмент должен играть, какую ноту и какова продолжительность звучания этой ноты. Это означает, что для кларнета, играющего ноту ре в течение двух секунд, потребуется три байта, а не более двух миллионов битов, как в случае дискретизации сигнала с частотой 44100 отсчетов.
Рисунок 2 – Звуковой сигнал представленный последовательностью битов
Проще говоря, стандарт MIDI скорее похож на нотную запись, которую читает исполнитель, чем на само исполнение. Издержки метода — музыкальная запись в стандарте MIDI может звучать по-разному в исполнении различных музыкальных синтезаторов.
Контрольные вопросы
1. Какие существуют системы кодирования текста?
2. Какие существуют виды компьютерной графики?
3. Укажите достоинства и недостатки каждого вида графики.
4. Поясните термины «дискретизация» и «квантование» применительно к представлению звука в компьютере.
Лекция № 6 Сжатие данных
Цель лекции
Изучить методы сжатия изображений и исправления ошибок, возникающих при передаче данных.
План лекции
1. Сжатие изображений.
2. Ошибки передачи данных.
1 Сжатие изображений
Ранее мы рассматривали, что в растровой графике, которая производится современными цифровыми преобразователями, изображение, как правило, представляется в формате три байта на один пиксел, что приводит к большим и трудно обрабатываемым файлам растровой графики. Для того чтобы уменьшить требования к памяти, было разработано много схем сжатия. Одна их них, разработанная компанией CompuServe, называется GIF (сокращенно от Graphic Interchange Format — формат графического обмена). Этот стандарт сжатия решает проблему путем сокращения количества цветов, которые могут быть приписаны пикселу, до 256. Это означает, что значение каждого пиксела можно представить с помощью одного байта, а не трех. Каждому из 256 значений пиксела при помощи таблицы, которая называется палитрой, ставится в соответствие определенное сочетание красного, зеленого и синего цветов. Изменяя палитру изображения, мы можем изменять цвета изображения.
Одному из цветов изображения в формате GIF обычно присваивается значение «прозрачный», то есть через любой участок изображения, которому присвоен этот цвет, виден фон. Вследствие этой возможности и относительной простоты формата GIF, он используется в компьютерных играх, где многочисленные изображения перемещаются по экрану.
Другой стандарт сжатия изображений называется JPEG. Он был разработан Joint Photographic Experts Group (Объединенная группа экспертов в области фотографии), входящей в состав организации ISO. JPEG оказался эффективным для представления цветных фотографий. На самом деле, именно этот стандарт принят производителями современных цифровых камер, и он обещает еще долгое время иметь влияние в сфере цифровых изображений.
В действительности стандарт JPEG включает в себя несколько способов представления изображений, у каждого из которых своя задача. Например, в ситуациях, когда требуется предельная точность, формат JPEG предоставляет метод «без потерь», при котором не происходит потери информации во время кодирования изображения. В соответствии с этим алгоритмом хранится различие между соседними пикселами, а не интенсивности пикселов. Такой подход основывается на предположении, что в большинстве случаев различие между соседними пикселами можно представить более коротким двоичным кодом, чем их значение (это пример относительного кодирования). Различия записываются при помощи кода переменной длины.
К сожалению, применение этого метода не дает изображений, размер которых можно легко менять, и поэтому используется редко. Вместо него используется базисный стандарт JPEG, который сокращает размер кода изображения, используя для определения состояния пикселов два параметра: яркость и цвет.
Причина такого разделения состоит в том, что человеческий глаз более чувствителен к изменениям яркости, чем к изменениям цвета. Рассмотрим, например, два синих фона, различающихся только тем, что один из них содержит небольшую яркую точку, а второй небольшую зеленую точку, яркость которой такая же, как и яркость фона. Человеческий глаз быстрее обнаружит яркую точку, чем зеленую. Базисный формат использует это свойство человеческого глаза и кодирует каждую компоненту яркости, но при этом изображение разделяется на блоки размером четыре пиксела, и записывается только средний цвет каждого блока. Следовательно, в окончательном представлении сохраняются все быстрые изменения яркости, но при этом стираются быстрые изменения цвета. Преимущество же этого метода заключается в том, что каждый блок из четырех пикселов задается только шестью значениями (4 для яркости и 2 для цвета), а не двенадцатью, как если один пиксел задается тремя значениями.
Дополнительное пространство экономится при записи изменений яркости и цвета, а не их фактических значений. Причина этого, как и в методе «без потерь», заключается в том, что по мере сканирования изображения степень различия соседних пикселов можно представить более коротким двоичным кодом, чем тот, который потребовался бы для записи фактических значений цвета. В действительности, эти различия записываются при помощи математического метода, который называется дискретным косинусным преобразованием. Мы не будем рассматривать его в этой книге. Окончательный двоичный код затем сжимается при помощи метода с кодом переменной длины.
Короче говоря, при помощи базисного стандарта JPEG можно кодировать высококачественные цветные изображения, используя двоичный код, который занимает примерно в двадцать раз меньше памяти, чем код формата «три байта на пиксел», используемый во многих сканерах. Поэтому стандарт JPEG завоевывает все большую популярность. Однако в некоторых прикладных системах используются другие форматы. Например, формат GIF больше, чем JPEG, подходит для изображений, состоящих из блоков одного цвета с четкой границей, таких как цветные мультфильмы.
В заключение следует заметить, что исследования в области сжатия данных представляют собой широкое поле деятельности. Мы обсудили только два метода сжатия изображений из множества существующих. Кроме того, существуют различные техники сжатия звуковых и видеоданных. Например, группой Motion Picture Experts Group (MPEG — Экспертная группа по вопросам движущегося изображения), входящей в состав организации ISO, были разработаны методы, подобные тем, которые используются в стандарте JPEG, для того чтобы ввести стандарты кодирования (сжатия) движущихся изображений. Согласно этому алгоритму сначала кодируется первое изображение последовательности, подобно тому, как это делается в базисном стандарте JPEG, а затем при помощи методов относительного кодирования записываются оставшиеся изображения.