Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИиИКТ Лекция 13 Кодирование.doc
Скачиваний:
15
Добавлен:
10.05.2015
Размер:
102.91 Кб
Скачать

8

Лекция 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 раза, - но это для современных компьютерных систем становится некритичным.