- •Лекция 57.11.1 – 57.21.1
- •Кодирование информации
- •1. Кодирование чисел. Системы счисления
- •1.1. Перевод целых чисел из системы счисления с основанием k в десятичную систему счисления
- •1.2. Двоичная система счисления
- •1.3. Перевод целых чисел из десятичной системы счисления в систему счисления с другим основанием
- •1.4. Шестнадцатеричная система счисления
- •1.5. Вавилонская (шестидесятеричная) система счисления
- •1.6. Задачи
- •Системы счисления, которые специалисты используют для общения с компьютером
- •Представление целых чисел в компьютере
- •Как компьютер выполняет арифметические действия над целыми числами
- •Как представляются в компьютере вещественные числа
- •Как компьютер выполняет арифметические действия над нормализованными числами
- •2. Кодирование двоичным кодом
- •3. Кодирование символов. Байт.
- •3.1. Юникод. Utf-8
- •3.2. Задачи
- •4. Единицы измерения объема данных и ёмкости памяти: килобайты, мегабайты, гигабайты…
- •4.1. Задачи
- •5. Кодирование графической информации
- •5.1. Восприятие цвета
- •5.2. Цветовые модели rgb и cmyk
- •5.3. Другие цветовые модели
- •5.4. Некоторые принципы уменьшения объема графических файлов
- •5.5. Задачи
- •6. Кодирование звуковой информации
- •6.1. Цифро-аналоговое и аналого-цифровое преобразование звуковой информации
- •6.2. Параметры семплирования
- •6.3. Задачи
3.1. Юникод. Utf-8
Т
еоретически
давно существует решение этих проблем.
Оно называется Unicode
(Юникод). Unicode–
это кодировочная таблица, в которой для
кодирования каждого символа используется
2 байта, т.е. 16 бит. На основании такой
таблицы может быть закодировано N=216=65
536 символов.
Юникод включает практически все современные письменности, в том числе: арабскую, армянскую, бенгальскую, бирманскую, греческую, грузинскую, деванагари, иврит, кириллицу, коптскую, кхмерскую, латинскую, тамильскую, хангыль, хань (Китай, Япония, Корея), чероки, эфиопскую, японскую (катакана, хирагана, кандзи) и другие.
С академической целью добавлены многие исторические письменности, в том числе: древнегреческая, египетские иероглифы, клинопись, письменность майя, этрусский алфавит.
В Юникоде представлен широкий набор математических и музыкальных символов, а также пиктограмм.
Для символов кириллицы в Юникоде выделено два диапазона кодов:
Cyrillic (#0400 — #04FF)
Cyrillic Supplement (#0500 — #052F).
Но внедрение таблицы Unicode в чистом виде сдерживается по той причине, что если код одного символа будет занимать не один байт, а два байта, что для хранения текста понадобится вдвое больше дискового пространства, а для его передачи по каналам связи – вдвое больше времени.
Поэтому сейчас на практике больше распространено представление Юникода UTF-8 (Unicode Transformation Format). UTF-8 обеспечивает наилучшую совместимость с системами, использующими 8-битные символы. Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 4 байтов. В целом, так как самые распространенные в мире символы – символы латинского алфавита - в UTF-8 по-прежнему занимают 1 байт, такое кодирование экономичнее, чем чистый Юникод.
3.2. Задачи
1. В кодируемом английском тексте используется только 26 букв латинского алфавита и еще 6 знаков пунктуации. В этом случае текст, содержащий 1000 символов можно гарантированно сжать без потерь информации до размера:
8000 бит;
7000 бит;
5000 бит;
1000 бит.
2. Словарь Эллочки – «людоедки» (персонаж романа «Двенадцать стульев») составляет 30 слов. Сколько бит достаточно, чтобы закодировать весь словарный запас Эллочки? Варианты: 8, 5, 3, 1.
4. Единицы измерения объема данных и ёмкости памяти: килобайты, мегабайты, гигабайты…
Итак, в мы выяснили, что в большинстве современных кодировок под хранение на электронных носителях информации одного символа текста отводится 1 байт. Т.е. в байтах измеряется объем (V), занимаемый данными при их хранении и передаче (файлы, сообщения).
Объем данных (V) – количество байт, которое требуется для их хранения в памяти электронного носителя информации.
Память носителей в свою очередь имеет ограниченную ёмкость, т.е. способность вместить в себе определенный объем. Ёмкость памяти электронных носителей информации, естественно, также измеряется в байтах.
Однако байт – мелкая единица измерения объема данных, более крупными являются килобайт, мегабайт, гигабайт, терабайт…
Следует запомнить, что приставки “кило”, “мега”, “гига”… не являются в данном случае десятичными. Так “кило” в слове “килобайт” не означает “тысяча”, т.е. не означает “103”. Бит – двоичная единица, и по этой причине в информатике удобно пользоваться единицами измерения кратными числу “2”, а не числу “10”.
1 байт = 23 =8 бит, 1 килобайт = 210 = 1024 байта. В двоичном виде 1 килобайт = &10000000000 байт.
Т.е. “кило” здесь обозначает ближайшее к тысяче число, являющееся при этом степенью числа 2, т.е. являющееся “круглым” числом в двоичной системе счисления.
Таблица 10.
Именование |
Обозначение |
Значение в байтах |
|
килобайт |
1 Кb |
210 b |
1 024 b |
мегабайт |
1 Mb |
210 Kb = 220 b |
1 048 576 b |
гигабайт |
1 Gb |
210 Mb = 230 b |
1 073 741 824 b |
терабайт |
1 Tb |
210 Gb = 240 b |
1 099 511 627 776 b |
В связи, с тем, что единицы измерения объема и ёмкости носителей информации кратны 2 и не кратны 10, большинство задач по этой теме проще решается тогда, когда фигурирующие в них значения представляются степенями числа 2. Рассмотрим пример подобной задачи и ее решение:
В текстовом файле хранится текст объемом в 400 страниц. Каждая страница содержит 3200 символов. Если используется кодировка KOI-8 (8 бит на один символ), то размер файла составит:
1 Mb;
1,28 Mb;
1280 Kb;
1250 Kb.
Решение
1) Определяем общее количество символов в текстовом файле. При этом мы представляем числа, кратные степени числа 2 в виде степени числа 2, т.е. вместо 4, записываем 22 и т.п. Для определения степени можно использовать Таблицу 7.
символов.
2) По условию задачи 1 символ занимает 8 бит, т.е. 1 байт => файл занимает 27*10000 байт.
3) 1 килобайт = 210 байт => объем файла в килобайтах равен:
.
