различных символов можно закодировать (считая, что символы – это
возможные события):
К = 2I = 28 = 256,
т. е. для представления текстовой информации можно использовать алфавит мощностью 256 символов.
Суть кодирования заключается в том, что каждому символу ставят в соответствие двоичный код от 00000000 до 11111111 или соответствующий ему десятичный код от 0 до 255.
В русском языке 33 буквы (символа), для их кодирования достаточно 33 различных байта. Если различать прописные (заглавные) и строчные буквы, то потребуется 66 байтов. Для строчных и прописных букв английского языка следует добавить еще 52 символа – получается 118. Если добавить цифры (от 0 до 9), все возможные знаки препинания, скобки, знаки математических операций, а также специальные символы, например такие, как %, $, &, @, то все их можно закодировать восемью битами и при этом еще останутся свободные коды, которые можно использовать для других целей.
Таблицу кодов разделили пополам. Первые 128 кодов (от 0 до 127) должны быть стандартными и обязательными для всех стран и всех компьютеров, а во второй половине (с кода 128 до кода 255) каждая страна может делать все, что ей угодно, и создавать в этой половине свой национальный стандарт.
Первую (международную) половину таблицы кодов называют таблицей ASCII (American Standard Code for Information Interchange), ее ввел американский институт стандартизации ANSI. В этой таблице размещаются прописные и строчные буквы английского алфавита, символы чисел от 0 до 9, все знаки препинания, символы арифметических операций и некоторые другие специальные коды.
За вторую половину кодовой таблицы (коды от 128 до 255) стандарт ASCII не отвечает. Разные страны могут создавать здесь свои таблицы. Часто бывает, что даже в одной стране в этой половине действуют несколько разных стандартов, предназначенных для разных компьютерных систем. В России, например, содержание этой половины таблицы может подчиняться разным стандартам, каждый из которых действует в какой-то своей, особой области.
Таким образом, первые 32 кода базовой таблицы, начиная с нулевого, отданы производителям аппаратных средств. В этой области размещаются управляющие коды, которым не соответствуют никакие символы языков. Начиная с 32 по 127 код размещены коды символов английского алфавита, знаков препинания, арифметических действий и некоторых вспомогательных символов (табл. 3.1).
21
Кодировка символов русского языка, известная как кодировка Windows-1251, была введена “извне” – компанией Microsoft, но, учитывая широкое распространение операционных систем и других продуктов этой компании в России, она глубоко закрепилась и нашла широкое распространение (табл. 3.2).
Другая распространённая кодировка носит название КОИ-8 (код обмена информацией, восьмизначный) – её происхождение относится к временам действия Совета Экономической Взаимопомощи государств Восточной Европы. Сегодня кодировка КОИ-8 имеет широкое распространение в компьютерных сетях на территории России и в российском секторе Интернета.
Международный стандарт, в котором предусмотрена кодировка символов русского языка, носит название ISO (International Standard Organization – Международный институт стандартизации). На практике данная кодировка используется редко. Ниже приведены таблицы кодировки ASCII (табл. 5, 6).
Тексты, закодированные при помощи одной таблицы, не будут правильно отображаться в другой кодировке. Одному и тому же двоичному коду ставятся в соответствие различные символы.
В большинстве случаев о перекодировке текстовых документов заботится не пользователь, а специальные программы – конверторы, которые встроены в приложения.
Таблица 5
Базовая таблица кодировки ASCII
32 |
Пробел |
48 |
0 |
64 |
@ |
80 |
P |
96 |
` |
112 |
p |
33 |
! |
49 |
1 |
65 |
A |
81 |
Q |
97 |
a |
113 |
q |
34 |
´´ |
50 |
2 |
66 |
B |
82 |
R |
98 |
b |
114 |
r |
35 |
# |
51 |
3 |
67 |
C |
83 |
S |
99 |
c |
115 |
s |
36 |
$ |
52 |
4 |
68 |
D |
84 |
T |
100 |
d |
116 |
t |
37 |
% |
53 |
5 |
69 |
E |
85 |
U |
101 |
e |
117 |
u |
38 |
& |
54 |
6 |
70 |
F |
86 |
V |
102 |
f |
118 |
v |
39 |
´ |
55 |
7 |
71 |
G |
87 |
W |
103 |
g |
119 |
w |
40 |
( |
56 |
8 |
72 |
H |
88 |
X |
104 |
h |
120 |
x |
41 |
) |
57 |
9 |
73 |
I |
89 |
Y |
105 |
i |
121 |
y |
42 |
* |
58 |
: |
4 |
J |
90 |
Z |
106 |
j |
122 |
z |
43 |
+ |
59 |
; |
75 |
K |
91 |
[ |
107 |
k |
123 |
{ |
44 |
, |
60 |
< |
76 |
L |
92 |
\ |
108 |
l |
124 |
| |
45 |
- |
61 |
= |
77 |
M |
93 |
] |
109 |
m |
125 |
} |
46 |
. |
62 |
> |
78 |
N |
94 |
^ |
110 |
n |
126 |
~ |
47 |
/ |
63 |
? |
79 |
O |
95 |
_ |
111 |
o |
127 |
|
22
Таблица 6
Кодировка Windows-1251
128 |
Ђ |
144 |
ђ |
160 |
|
176 |
* |
192 |
А |
208 |
Р |
224 |
а |
240 |
р |
129 |
Ѓ |
145 |
‘ |
161 |
Ў |
177 |
± |
193 |
Б |
209 |
С |
225 |
б |
241 |
с |
130 |
, |
146 |
’ |
162 |
ў |
178 |
| |
194 |
В |
210 |
Т |
226 |
в |
242 |
т |
131 |
ѓ |
147 |
“ |
163 |
Ј |
179 |
¡ |
195 |
Г |
211 |
У |
227 |
г |
243 |
у |
132 |
,, |
148 |
” |
164 |
¤ |
180 |
ґ |
196 |
Д |
212 |
Ф |
228 |
д |
244 |
ф |
133 |
… |
149 |
• |
165 |
Ґ |
181 |
μ |
197 |
Е |
213 |
Х |
229 |
е |
245 |
х |
134 |
† |
150 |
- |
166 |
¦ |
182 |
¶ |
198 |
Ж |
214 |
Ц |
230 |
ж |
246 |
ц |
135 |
‡ |
151 |
— |
167 |
§ |
183 |
· |
199 |
З |
215 |
Ч |
231 |
з |
247 |
ч |
136 |
€ |
152 |
´ |
168 |
Ё |
184 |
ё |
200 |
И |
216 |
Ш |
232 |
и |
248 |
ш |
137 |
‰ |
153 |
™ |
169 |
© |
185 |
№ |
201 |
Й |
217 |
Щ |
233 |
й |
249 |
щ |
138 |
Љ |
154 |
љ |
170 |
Є |
186 |
є |
202 |
К |
218 |
Ъ |
234 |
к |
250 |
ъ |
139 |
‹ |
155 |
› |
171 |
« |
187 |
» |
203 |
Л |
219 |
Ы |
235 |
л |
251 |
ы |
140 |
Њ |
156 |
њ |
172 |
¬ |
188 |
ј |
204 |
М |
220 |
Ь |
236 |
м |
252 |
ь |
141 |
Ќ |
157 |
ќ |
173 |
- |
189 |
S |
205 |
Н |
221 |
Э |
237 |
н |
253 |
э |
142 |
Ћ |
158 |
ћ |
174 |
® |
190 |
s |
206 |
О |
222 |
Ю |
238 |
о |
254 |
ю |
143 |
Џ |
159 |
џ |
175 |
Ϊ |
191 |
ї |
207 |
П |
223 |
Я |
239 |
п |
255 |
я |
Начиная с 1997 г. последние версии Microsoft Windows&Office
поддерживают новую кодировку Unicode, которая на каждый символ отводит по 2 байта, а поэтому можно закодировать не 256 символов, а 65536 различных символов.
Таким образом, в настоящее время большая часть пользователей при помощи компьютера обрабатывает текстовую информацию, которая состоит из символов: букв, цифр, знаков препинания и др.
Контрольные вопросы
1.Как кодируются символы текста?
2.Чем различаются существующие кодировки русских букв?
3.В чем разница между традиционными 8-битными кодировками и новой кодировкой Unicode?
4.ДВОИЧНОЕ КОДИРОВАНИЕ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ
Внастоящее время широко используются технологии обработки графической информации с помощью ПК. Интерфейс пользователя также стал графическим. Особенно интенсивно технология обработки графической информации с помощью компьютера стала развиваться в 80-х годах.
Графическая информация может быть представлена в двух формах: аналоговой или дискретной. Примером аналогового представления может быть картина художника, а изображение, напечатанное при помощи
23
струйного принтера и состоящее из отдельных точек разного цвета, – это дискретное представление. Преобразование графической информации из аналоговой формы в дискретную происходит путем пространственной дискретизации (разбиения) графического изображения. При этом производится кодирование – присвоение каждому элементу конкретного значения в форме кода. В процессе дискретизации изображение разбивается на отдельные маленькие фрагменты (точки), причем каждому элементу (фрагменту) присваивается значение его цвета, т.е. код цвета (красный, зеленый, синий и т.д.).
Рис. 10. Пространственная дискретизация изображения
Качество кодирования изображения зависит от двух параметров. Вопервых, качество кодирования изображения тем выше, чем меньше размер точки и соответственно большее количество точек составляет изображение. Во-вторых, чем большее количество цветов, т.е. большее количество возможных состояний точки изображения, используется, тем более качественно кодируется изображение (каждая точка несет большее количество информации). Используемый набор цветов образует палитру цветов.
Одним байтом можно закодировать 256 различных цветов. Такой метод кодирования цвета называется индексным. В принципе, этого недостаточно для полноцветных изображений живой природы. Человеческий глаз может различать десятки миллионов цветовых оттенков.
Двумя байтами можно закодировать 65536 различных цветов. Это уже похоже на то, что мы видим на фотографиях и на картинках в журналах, но все равно хуже, чем в живой природе. Кодирование цветной графики 16разрядными двоичными числами называется режимом High Color.
Если для кодирования цвета одной точки использовать 3 байта (24 бита), то количество возможных цветов увеличится еще в 256 раз и достигнет 16,5 миллиона. Этот режим позволяет хранить, обрабатывать и передавать изображения, не уступающие по качеству наблюдаемым в живой природе. Режим представления цветной графики с использованием 24 двоичных разрядов называется полноцветным (True Color).
24
Используемое количество битов для кодирования цвета точки называют глубиной цвета.
Как известно, цветовые рецепторы человека, которые еще называют колбочками, подразделяются на три группы, причем каждая может воспринимать всего один цвет – красный, или зеленый, или синий. Поэтому цветное изображение на экране монитора формируется за счет смешивания трех базовых цветов: красного, зеленого и синего. Такая цветовая модель называется RGB моделью, по первым буквам английских названий цветов (Red, Green, Blue).
Если мы кодируем цвет точки с помощью трех байтов, то первый байт выделяется красной составляющей, второй – зеленой, а третий – синей. Для получения богатой палитры цветов базовым цветам могут быть заданы различные интенсивности. Чем больше значение байта цветовой составляющей, тем ярче этот цвет. Например, если точка имеет белый цвет, значит, у нее есть все цветовые составляющие и они имеют полную яркость. Поэтому белый цвет кодируется тремя полными байтами: 255, 255, 255. Черный цвет означает отсутствие всех прочих цветов. Все цветовые составляющие равны нулю. Черный цвет кодируется байтами 0, 0, 0. Серый цвет промежуточный между черным и белым. В нем есть все цветовые составляющие, но они одинаковы и нейтрализуют друг друга. Например, серый цвет может быть таким: 100, 100, 100 или таким: 150, 150, 150. Можно догадаться, что во втором случае яркость выше и второй вариант серого цвета светлее первого. У красного цвета все составляющие, кроме красной, равны нулю. Это может быть, например, темно-красный цвет: 128, 0, 0 или ярко-красный: 255, 0, 0. То же относится и к синему цвету (0, 0, 255) и к зеленому (0, 255, 0). Задавая любые значения (от 0 до 255) для каждого из трех байтов, с помощью которых кодируется цвет, можно закодировать любой из 16,5 миллиона цветов. Описанные примеры можно свести в табл. 7.
|
|
|
Таблица 7 |
|
Формирование цветов при глубине цвета 24 бита |
||||
|
|
|
|
|
Название |
Интенсивность |
|
|
|
цвета |
Красный |
Зеленый |
Синий |
|
Черный |
00000000 |
00000000 |
00000000 |
|
Красный |
11111111 |
00000000 |
00000000 |
|
Зеленый |
00000000 |
11111111 |
00000000 |
|
Синий |
00000000 |
00000000 |
11111111 |
|
Голубой |
00000000 |
11111111 |
11111111 |
|
Желтый |
11111111 |
11111111 |
00000000 |
|
Белый |
11111111 |
11111111 |
11111111 |
|
Итак, для кодирования цвета одной точки необходимы один, два или три байта, в зависимости от того, сколько цветов мы хотим передать.
25