Лекция 13
по дисциплине «Информатика и ИКТ»
ТЕМА 2 «ОРГАНИЗАЦИЯ И ФУНКЦИОНИРОВАНИЕ КОМПЬЮТЕРОВ»
Раздел 7 . Кодирование текста, цвета и звука.
Содержание:
Введение
7.1. Кодирование текста.
7.2. Кодирование цвета.
7.3. Кодировка звука.
Введение
При формировании информационных объектов весьма важным является ответ на вопрос как те или иные свойства объекта представляются в виде данных. Например, объект представляет текст, состоящий из символов (букв, цифр, знаков препинания). Как этот текст представить в виде набора данных, т.е. набора чисел? Аналогичные вопросы можно задать и по поводу изображения, и по поводу и звука.
Рассмотрим сначала пример с текстом. Текст состоит из символов, но сами символы уже ни из чего не состоят – они являются элементарными объектами. Причем символов конечное количество. Например, в русском языке 33 заглавных и 33 строчных буквы, вместе со знаками препинания – чуть больше 70 символов. Самый простой способ превратить символы в числа (данные) – просто перенумеровать их, т.е. поставить в соответствие каждому числу его порядковый номер и далее работать с этими номерами. Более общий способ – поставить в соответствие каждому символу какое-либо число (код) с одним обязательным условием – разным символам должны соответствовать разные коды. Это и есть кодировка символов.
Вообще, представление однородной группы элементарных объектов или элементарных свойств объекта в виде чисел (кодов), так что каждый объект (или свойство) представляется одним кодом и разным объектам (или свойствам) соответствуют разные коды, называется кодированием этой группы объектов.
7.1. Кодирование текста.
Для кодирования символов применяются две основных кодировки (системы кодирования):
ASCII (однобайтовая кодировка)
UNICODE (двухбайтовая кодировка).
Исторически сложилось, что сначала текст начали кодировать, присваивая символам номера от 0 до 255 (256 значений). При этом код любого символа укладывается в один байт, поэтому такая кодировка была названа однобайтовой. Таблица соответствия символов и кодов, называется кодировочной таблицей. Для однобайтовой кодировки символов кодировочную таблицу считают состоящей из двух частей – нижней (символы с кодами от 0 до 127) и верхней (символы с кодами от 128 до 255). Нижняя часть кодировочной таблицы соответствует стандарту ASCII (American Standard Code for Information Interchange).
Нижняя часть кодировочной ASCII – таблицы. | |||||||
0 |
16 ► |
32пробел |
48 0 |
64 @ |
80 P |
96 ` |
112 p |
1 ☺ |
17 ◄ |
33 ! |
49 1 |
65 A |
81 Q |
97 a |
113 q |
2 ☻ |
18 ↕ |
34 « |
50 2 |
66 B |
82 R |
98 b |
114 r |
3 ♥ |
19 ‼ |
35 # |
51 3 |
67 C |
83 S |
99 c |
115 s |
4 ♦ |
20 ¶ |
36 $ |
52 4 |
68 D |
84 T |
100 d |
116 t |
5 ♣ |
21 § |
37 % |
53 5 |
69 E |
85 U |
101 e |
117 u |
6 ♠ |
22 ▬ |
38 & |
54 6 |
70 F |
86 V |
102 f |
118 v |
7 • |
23 ↨ |
39 ' |
55 7 |
71 G |
87 W |
103 g |
119 w |
8 ◘ |
24 ↑ |
40 ( |
56 8 |
72 H |
88 X |
104 h |
120 x |
9 ○ |
25 ↓ |
41 ) |
57 9 |
73 I |
89 Y |
105 i |
121 y |
10 ◙ |
26 → |
42 * |
58 : |
74 J |
90 Z |
106 j |
122 z |
11 ♂ |
27 ← |
43 + |
59 ; |
75 K |
91 [ |
107 k |
123 { |
12 ♀ |
28 ∟ |
44 , |
60 < |
76 L |
92 \ |
108 l |
124 | |
13 ♪ |
29 ↔ |
45 - |
61 = |
77 M |
93 ] |
109 m |
125 } |
14 ♫ |
30 ▲ |
46 . |
62 > |
78 N |
94 ^ |
110 n |
126 ~ |
15 ☼ |
31 ▼ |
47 / |
63 ? |
79 O |
95 _ |
111 o |
127 |
В приведенной таблице в каждой ячейке слева расположен код символа, а справа - сам символ. Первые 32 кода (от 0 до 31) не используются при кодировании символов – они являются управляющими. Эти символы используются для форматирования текста и для других служебных надобностей. Например, в редакторе Microsoft Word символ с кодом 20 обозначает конец абзаца. В таблице приведены принятые графические обозначения для управляющих символов. Для собственно кодировки символов используются коды с 32 по 126 (коду 127 не соответствует никакой символ). Отметим, например, что символ ‘1’ имеет код 49, т.е. если мы при наборе текста введем символ ‘1’, то в текстовой файл запишется код 49 или в двоичной записи код 110001 ( 49 =(110001)2 ).
Для того чтобы ввести символ по его коду достаточно в режиме ввода текста при нажатой клавише Alt ввести код символа на правой части клавиатуры. При этом должен быть включен режим Num (переключается клавишей Num/Lock).
Нижняя часть ASCII таблицы является общепринятым мировым стандартом, который поддерживают фактически все компьютеры в мире. Это означает, что если написать текст, используя только символы этой приведенной таблице на любом компьютере, этот текст правильно отобразится на любом другом компьютере. Так как в нижней части ASCII таблицы есть только латинские буквы, то этот текст должен быть на латинице. Таким образом, текст на английском языке будет правильно прочитан везде.
А как быть с текстом на других языках? В рамках однобайтной кодировки для этого предусмотрена верхняя часть кодировочной таблицы (коды с 128 по 255), т. е. тоже 128 кодов. Для кодировки символов любого языка (кроме японского и китайского) - это вполне достаточное количество кодов. Но языков много, а для того чтобы закодировать все символы всех языков 128 кодов недостаточно. Поэтому, при однобайтовой кодировке для каждого языка существует своя верхняя часть кодировочной таблицы, а для некоторых языков используется даже насколько таких таблиц. Такие таблицы называются кодовыми страницами, им присваиваются номера и названия. Например, для русского языка широко используется 3 кодировочных таблицы - ГОСТ- альтернативная (866), КОИ-8 и Windows (1251). Если при записи текста использовалась одна кодировка, а при отображении другая, то текст отобразится неправильно (на экране появится «китайская грамота»).
Ответим теперь на следующий вопрос. Если в текстовой файл записываются только коды символов, то откуда берутся сами символы (т.е. графические образы) при отображении текста на экране? Ответ следующий. Эти графические образы хранятся операционной системой в специальных файлах шрифтов. Каждый такой файл содержит таблицу соответствия кодов символов и графических образов этих кодов. Естественно, содержимое такого файла должно соответствовать той или иной кодировочной таблице, но даже файлы соответствующие одной таблице могут различаться между собой – по величине символов, по их начертанию, насыщенности и т.д. Поэтому различных шрифтов, установленных в операционной системе, может оказаться очень много.
Неудобство использования ASCII кодировки очевидно – для каждого национального алфавита требуется своя расширенная таблица. Поэтому была предложена универсальная двухбайтовая система кодирования символов Unicode.
Стандарт Unicode был разработан с целью создания единой кодировки символов. Каждый символ в этом стандарте кодируется 16 битами, что позволяет ему охватить до 65,536 кодов – этого вполне достаточно для присваивания уникального кода каждому символу каждого языка, включая японский, китайский, а также древние письменные языков. В настоящее время Unicode содержит более 29000 неиспользованных кодов для расширения, позволяющие включить новые знаки. В будущем это может позволить включить в стандарт исторические знаки типа иероглифов и возможные расширения существующих алфавитов и/или наборов символов. Кроме того, Unicode резервирует более чем 6000 кодов, которые разработчики программного обеспечения и аппаратных средств могут использовать для собственных знаков и символов. Отметим, что первые 127 значений кодов Uncode соответствуют кодам ASCII, что обеспечивает полную совместимость этих кодировок. Подробное описание стандарта Unicode можно найти по адресу http://www.unicode.org/ .
Единственный недостаток двухбайтовой кодировки по сравнению с однобайтовой – объем данных для записи текста возрастает в 2 раза, - но это для современных компьютерных систем становится некритичным.