Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Код - это набор условных сигналов для записи или передачи некоторых заранее определенных понятий.
Рисунок . Примеры систем кодирования
Любой способ кодирования характеризуется наличием основы (алфавит, спектр цветности, система координат, основание системы счисления…) и правил конструирования информационных образов на этой основе.
Система счисления (СС) - способ кодирования числовой информации, т.е. способ записи чисел с помощью некоторого алфавита, символы которого называют цифрами.
Различают системы счисления позиционные и непозиционные. Пример позиционной системы счисления арабская (современная десятичная), непозиционной римская.
Таблица . Позиционная и непозиционная СС
Позиционная СС |
Непозиционная СС |
005 = 5*1 (пять) 050 = 5*10 (пятьдесят) 500 = 5*100 (пятьсот) |
IX = 10-1 = 9 XI = 10+1 = 11 XX = 10+10 = 20 |
В позиционных системах счисления величина, обозначаемая цифрой в записи числа, зависит от её положения в числе (позиции, разряда). Количество используемых цифр называется основанием системы счисления.
Так, в десятичной системе счисления, основание которой равно 10, различают 10 арабских цифр - 0, 1, 2, ..., 9.
В вычислительной технике широко применяют двоичную, восьмеричную и шестнадцатеричную систему счисления.
Двоичная система счисления имеет основание 2, и, следовательно, ее алфавит состоит из двух цифр - 0 и 1; алфавит восьмеричной системы счисления составляют цифры 0, 1, 2, 3, 4, 5, 6, 7; шестнадцатеричной - десять арабских цифр от 0 до 9 и еще шесть символов - А (10), В (11), С (12), D (13), E (14), F (15).
Для любой позиционной системы счисления справедливо следующее правило формирования числа на основании входящих в эту систему цифр:
или, если расписать сумму в этом выражении,
,
где
y число;
k основание системы счисления;
xi цифры числа;
i номер позиции (разряда) числа, начиная с 0.
Так, на основании формулы десятичное число 638(10) представляется следующим образом:
.
Мы говорим в таком случае, что в этом числе 6 сотен, 3 десятка и 8 единиц.
Исторически, использование для счета десяти цифр связано с тем, что человечество училось считать на пальцах. На самом деле для представления любого числа достаточно алфавита, состоящего только из двух символов, что и реализуется, при хранении информации в памяти электронных устройств. Ячейка памяти в этом случае может находиться в одном из двух состояний, которые кодируются как 0 и 1. Информационная емкость такой ячейки равна 1 биту.
Перевод целых чисел из системы счисления с основанием k в десятичную систему счисления
Число, записанное в позиционной системе счисления с любым основанием, переводится в десятичную систему счисления по правилу .
Если, например, 45(8) число, записанное в восьмеричной системе счисления, то
45(8)=4*81+5*80=4*8+5*1=32+5=37(10)
Число 203(5) записано в пятеричной системе счисления, тогда
203(5)=2*52+0*51+3*50=2*25+0*5+3*1=50+0+3=53(10)
Меняется только основание системы счисления, алгоритм остается неизменным.
Основание позиционной системы счисления в ней самой всегда записывается как 10; например, в двоичной системе счисления 10(2) означает число 2(10), а в восьмеричной 10(8) означает число 8(10).
Чтобы легче осуществлять перевод из системы счисления по любому основанию в десятичную, следует для начала явно пронумеровать разряды исходного числа справа налево, начиная с 0.
Двоичная (бинарная) система счисления имеет основание 2. Ее алфавит цифры 0 и 1. Для перевода числа из двоичной системы счисления в десятичную также справедливо правило . Представим в десятичном виде число 1101(2), или, что то же самое, &1101 (& - амперсант, - этим символом принято указывать то, что следующая за ним запись двоичная).
1101(2)=1*23+1*22+0*21+1*20=1*8+1*4+0*2+1*1=13(10)
Но двоичная система имеет некоторые приятные особенности, т.к. коэффициентами при степенях двойки в ней могут быть только либо нули (и тогда можно просто игнорировать разряд числа, имеющий значение “0”), либо единицы (умножение на “1” также можно опустить).
Т.е. достаточно просуммировать “два в соответствующей степени” только в тех позициях двоичного числа, в которых находятся единицы. Степень же, в которую нужно возводить число 2, равна номеру позиции.
Арифметические операции в любой позиционной системе счисления также имеют общую логику.
Таблица
1 |
“Круглые” числа в двоичной СС |
|||
&101 |
= 5(10) |
&1 |
= 20 |
= 1 |
+ 1 |
&10 |
= 21 |
= 2 |
|
&110 |
= 6(10) |
&100 |
= 22 |
= 4 |
+ 1 |
&1000 |
= 23 |
= 8 |
|
&111 |
= 7(10) |
&10000 |
= 24 |
= 16 |
Каждый разряд двоичного числа имеет информационную емкость 1 бит. На основании одного двоичного разряда можно закодировать только два десятичных числа - &0=0(10), &1=1(10), на основании двух двоичных разрядов можно закодировать уже четыре десятичных числа &00=0(10), &01=1(10) , &10=2(10), &11=3(10) , тремя двоичными разрядами можно представить восемь десятичных чисел и т.д. в соответствии с формулой Хартли.
Таблица
20 |
десятичное |
22 |
21 |
20 |
десятичное |
||
1 |
1 |
1 |
1 |
1 |
7 |
||
0 |
0 |
1 |
1 |
0 |
6 |
||
1 |
0 |
1 |
5 |
||||
21 |
20 |
десятичное |
1 |
0 |
0 |
4 |
|
1 |
1 |
3 |
0 |
1 |
1 |
3 |
|
1 |
0 |
2 |
0 |
1 |
0 |
2 |
|
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Мы видим, что добавление каждого следующего разряда вдвое увеличивает количество двоичных комбинаций. Графически это может быть представлено так:
Рисунок . Каждый следующий разряд двоичного числа удваивает количество возможных комбинаций из нулей и единиц
Таблицу степеней числа 2 от 20 до 210 следует знать наизусть.
Таблица
N |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
2N |
1 |
2 |
4 |
8 |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
Открытие двоичного способа представления чисел приписывают китайскому императору Фо Ги, жизнь которого относится к 4-му тысячелетию до новой эры. Известный немецкий математик Лейбниц (1646-1716) в 1697 г. разработал правила двоичной арифметики. Он подчеркивал, что "вычисление с помощью двоек, то есть 0 и 1, в вознаграждение его длиннот, является для науки основным и порождает новые открытия, которые оказываются полезными впоследствии, даже в практике чисел, а особенно в геометрии: причиной чего служит то обстоятельство, что при сведении чисел к простейшим началам, каковы 0 и 1, всюду выявляется чудесный порядок".
Блестящие предсказания Лейбница сбылись только через 2,5 столетия, когда именно двоичная система счисления нашла применение в качестве универсального способа кодирования информации в компьютерах.
Перевод целых чисел из десятичной системы счисления в систему счисления с другим основанием
Для осуществления такого перевода необходимо делить число с остатком на основание системы счисления до тех пор, пока частное больше основания системы счисления.
Рисунок . Перевод числа из десятичной СС в двоичную
Пример перевода десятичного числа 25(10) в двоичный вид показан на рисунке 16.
Результат перевода записывается в обратном порядке, т.е. начиная с последнего результата деления.
Система счисления с основанием 16 интересна тем, что она включает в себя больше разрядов, чем десятичная, и соответственно десяти арабских цифр недостаточно для алфавита этой системы счисления, поэтому в качестве недостающих цифр в ней используются буквы латинского алфавита.
Для обозначения того, что запись является шестнадцатеричным числом, принято использовать также символ #.
Таблица
Основание СС (k) |
Цифры, составляющие алфавит СС |
Пример записи |
2 |
0, 1 |
&101011111 |
10 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
351 |
16 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, B, C, D, E, F 10 11 12 13 14 15 |
#15f |
Для шестнадцатеричной системы счисления действуют те же правила перевода, что и для всякой позиционной системы счисления.
Рисунок . Перевод из СС с основанием 10 в СС с основанием 16. |
Рисунок . Перевод из СС с основанием 16 в СС с основанием 10. |
Исторический интерес представляет так называемая «вавилонская», или шестидесятеричная система счисления, весьма сложная, существовавшая в Древнем Вавилоне, за две тысячи лет до н.э.
Это первая известная нам система счисления, основанная на позиционном принципе. Система вавилонян сыграла большую роль в развитии математики и астрономии, ее следы сохранились до наших дней. Так, мы до сих пор делим час на 60 минут, а минуту на 60 секунд. Точно так же, следуя примеру вавилонян, окружность мы делим на 360 частей (градусов).
Информация любого типа: символьная, графическая, звуковая, командная для представления на электронных носителях кодируется на основании алфавита, состоящего только из двух символов (0, 1). Информация представленная в аналоговом виде, для того, чтобы быть сохраненной в электронной памяти, оцифровывается и приводится к двоичному коду.
Каждая ячейка электронной памяти обладает информационной ёмкостью 1 бит. Физически, в зависимости от способа регистрации информации, это может быть конденсатор, находящийся в одном из двух состояний: разряжен (0), заряжен (1); элемент магнитного носителя: размагничен (0), намагничен (1); элемент поверхности оптического диска: нет лунки (0), есть лунка (1). Одним из первых носителей информации, представленной в двоичном коде, была бумажная перфокарта, пробитое отверстие на которой означало 1, а цельная поверхность 0.
На основании одной ячейки информационной ёмкостью 1 бит можно закодировать только 2 различных состояния. Для того чтобы каждый символ, который можно ввести с клавиатуры в латинском регистре, получил свой уникальный двоичный код, требуется 7 бит. На основании последовательности из 7 бит, в соответствии с формулой Хартли, может быть получено N=27=128 различных комбинаций из нулей и единиц, т.е. двоичных кодов. Поставив в соответствие каждому символу его двоичный код, мы получим кодировочную таблицу. Человек оперирует символами, компьютер их двоичными кодами.
Для латинской раскладки клавиатуры такая кодировочная таблица одна на весь мир, поэтому текст, набранный с использованием латинской раскладки, будет адекватно отображен на любом компьютере. Эта таблица носит название ASCII (American Standard Code of Information Interchange) по-английски произносится [э́ски], по-русски произносится [а́ски]. Ниже приводится вся таблица ASCII, коды в которой указаны в десятичном виде. По ней можно определить, что когда вы вводите с клавиатуры, скажем, символ “*”, компьютер его воспринимает как код 42(10), в свою очередь 42(10)=101010(2) это и есть двоичный код символа “*”. Коды с 0 по 31 в этой таблице не задействованы.
Таблица . Таблица символов ASCII
Код |
символ |
код |
символ |
код |
символ |
код |
символ |
код |
символ |
код |
символ |
32 |
Пробел |
48 |
. |
64 |
@ |
80 |
P |
96 |
' |
112 |
p |
33 |
! |
49 |
0 |
65 |
A |
81 |
Q |
97 |
a |
113 |
q |
34 |
" |
50 |
1 |
66 |
B |
82 |
R |
98 |
b |
114 |
r |
35 |
# |
51 |
2 |
67 |
C |
83 |
S |
99 |
c |
115 |
s |
36 |
$ |
52 |
3 |
68 |
D |
84 |
T |
100 |
d |
116 |
t |
37 |
% |
53 |
4 |
69 |
E |
85 |
U |
101 |
e |
117 |
u |
38 |
& |
54 |
5 |
70 |
F |
86 |
V |
102 |
f |
118 |
v |
39 |
' |
55 |
6 |
71 |
G |
87 |
W |
103 |
g |
119 |
w |
40 |
( |
56 |
7 |
72 |
H |
88 |
X |
104 |
h |
120 |
x |
41 |
) |
57 |
8 |
73 |
I |
89 |
Y |
105 |
i |
121 |
y |
42 |
* |
58 |
9 |
74 |
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 |
DEL |
Чтобы хранить также и коды национальных символов каждой страны (в нашем случае символов кириллицы) требуется добавить еще 1 бит, что увеличит количество уникальных комбинаций из нулей и единиц вдвое, т.е. в нашем распоряжении дополнительно появится 128 свободных кодов (со 128-го по 255-й), в соответствие которым можно поставить символы русского алфавита.
Таким образом, отведя под хранение информации о коде каждого символа 8 бит, мы получим N=28=256 уникальных двоичных кодов, что достаточно, чтобы закодировать все символы, которые можно ввести с клавиатуры.
Так мы подошли к необходимости познакомиться с еще одной базовой единицей измерения байтом.
Байт - последовательность из 8 бит.
1 байт = 23 бит = 8 бит.
На основании одного байта можно получить 28=256 уникальных двоичных кодов.
В современных кодировочных таблицах под хранение информации о коде каждого символа отводится 1 байт.
1 символ = 1 байт.
В байтах измеряется объем данных (V) при их хранении и передаче по каналам связи. Например, текст “Добрый день!” занимает объем равный 12 байтам.
Биты в байте нумеруются с конца с 0-го по 7-й. Минимальная комбинация на основании одного байта восемь нулей, максимальная восемь единиц. Рисунок 11.
11111111(2)=27+26+25+24+23+22+21+20=128+64+32+16+8+4+2+1=255(10)
При хранении на физическом уровне каждый байт может быть реализован, например, на базе восьми конденсаторов, каждый из которых либо разряжен (0), либо заряжен (1). Рисунок 12.
Рисунок Байт: минимальная и максимальная комбинации |
Рисунок . Байт: соответствие двоичного числа и электрического импульса. |
Возвращаясь к кодировочным таблицам, заметим, что на сегодняшний день в использовании не одна, а несколько кодировочных таблиц, включающих коды кириллицы, это стандарты, выработанные в разные годы и различными учреждениями. В этих таблицах различен порядок, в котором расположены друг за другом символы кирилличного алфавита, поэтому одному и тому же коду соответствуют разные символы. По этой причине, мы иногда сталкиваемся с текстами, которые состоят из русских букв, но в бессмысленной для нас последовательности.
Например, текст “Компьютерные вирусы”, введенный в кодировке Windows-1251 в кодировке КОИ-8 будет отображен так: ”лПНРШАФЕТОШЕ ЧЙТХУЩ”.
Таблица . Несоответствие кодов символов в различных кодировках кириллицы
Код |
Windows-1251 |
КОИ-8 |
ISO |
Под национальные кодировки отданы коды с 128-го по 255-й. |
192 |
А |
ю |
Р |
|
193 |
Б |
а |
С |
|
194 |
В |
б |
Т |
Эта проблема разрешима - на каждом компьютере найдутся все основные кодировочные таблицы, и если тест выглядит неадекватно, нужно попробовать перекодировать его, просто указав использовать другую кодировочную таблицу. Но наличие такой проблемы, конечно, вносит неудобства.
Теоретически давно существует решение этих проблем. Оно называется 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 байт, такое кодирование экономичнее, чем чистый Юникод.
Итак, в мы выяснили, что в большинстве современных кодировок под хранение на электронных носителях информации одного символа текста отводится 1 байт. Т.е. в байтах измеряется объем (V), занимаемый данными при их хранении и передаче (файлы, сообщения).
Объем данных (V) количество байт, которое требуется для их хранения в памяти электронного носителя информации.
Память носителей в свою очередь имеет ограниченную ёмкость, т.е. способность вместить в себе определенный объем. Ёмкость памяти электронных носителей информации, естественно, также измеряется в байтах.
Однако байт мелкая единица измерения объема данных, более крупными являются килобайт, мегабайт, гигабайт, терабайт…
Следует запомнить, что приставки “кило”, “мега”, “гига”… не являются в данном случае десятичными. Так “кило” в слове “килобайт” не означает “тысяча”, т.е. не означает “103”. Бит двоичная единица, и по этой причине в информатике удобно пользоваться единицами измерения кратными числу “2”, а не числу “10”.
1 байт = 23 =8 бит, 1 килобайт = 210 = 1024 байта. В двоичном виде 1 килобайт = &10000000000 байт.
Т.е. “кило” здесь обозначает ближайшее к тысяче число, являющееся при этом степенью числа 2, т.е. являющееся “круглым” числом в двоичной системе счисления.
Таблица
Именование |
Обозначение |
Значение в байтах |
|
Килобайт |
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 |
Петабайт |
1 PiB |
210 Tb = 250 b |
примерно 1015 байт |
Эксабайт |
1 EiB |
210 Pib = 260 b |
примерно 1018 байт |
Зеттабайт |
1 ZiB |
210 Eib = 270 b |
примерно 1021 байт |
Йоттабайт |
1 YiB |
210 Zib = 280 b |
примерно 1024 байт |
В связи, с тем, что единицы измерения объема и ёмкости носителей информации кратны 2 и не кратны 10, большинство задач по этой теме проще решается тогда, когда фигурирующие в них значения представляются степенями числа 2.
Рассмотрим пример подобной задачи и ее решение:
Пример: В текстовом файле хранится текст объемом в 400 страниц. Каждая страница содержит 3200 символов. Если используется кодировка KOI-8 (8 бит на один символ), то размер файла составит:
Решение:
символов.
2) По условию задачи 1 символ занимает 8 бит, т.е. 1 байт => файл занимает 27*10000 байт.
3) 1 килобайт = 210 байт => объем файла в килобайтах равен:
.
Графическая информация, как и информация любого другого типа, хранятся в памяти компьютера в виде двоичных кодов. Изображение, состоящее из отдельных точек, каждая из которых имеет свой цвет, называется растровым изображением. Минимальный элемент такого изображения в полиграфии называется растр, а при отображении графики на мониторе минимальный элемент изображения называют пиксель (pix).
Пиксель |
Растр |
Рисунок . Минимальная единица изображения: пиксель и растр
Если пиксель изображения может быть раскрашен только в один из 2х цветов, допустим, либо в черный (0), либо в белый (1), то для хранения информации о цвете пикселя достаточно 1 бита памяти (log2(2)=1 бит). Соответственно, объем, занимаемый в памяти компьютера всем изображением, будет равен числу пикселей в этом изображении (рисунок 14).
Если под хранение информации о цвете пикселя выделить 2 бита, то число цветов, допустимых для раскраски каждого пикселя, увеличится до 4х (N=22=4), а объем файла изображения в битах будет вдвое больше, чем количество составляющих его пикселей (рисунок 15).
Рисунок 1 бит на пиксель 2 цвета |
Рисунок 2 бита на пиксель 4 цвета |
При печати на не цветном принтере обычно допускает 256 градаций серого цвета (от черного (0) до белого (255)) для раскраски каждой точки изображения. Под хранение информации о цвете точки в этом случае отводится 1 байт, т.е. 8 бит (log2(256)=8 бит).
Цвет это ощущение, которое возникает в сознании человека при воздействии на его зрительный аппарат электромагнитного излучения с длиной волны в диапазоне от 380 до 760 нм. Эти ощущения могут быть вызваны и другими причинами: болезнь, удар, мысленная ассоциация, галлюцинации, и др.
Способность к цветоощущению возникла в процессе эволюции как реакция адаптации, как способ получения сведений об окружающем мире и способ ориентирования в нем. Каждый человек воспринимает цвета индивидуально, отлично от других людей. Однако у большей части людей цветовые ощущения очень схожи.
Физической основой цветовосприятия является наличие специфических светочувствительных клеток в центральном участке сетчатки глаза, так называемых палочек и колбочек.
Различают три вида колбочек, по чувствительности к разным длинам волн света (цветам). Колбочки S-типа чувствительны в фиолетово-синей, M-типа в зелено-желтой, и L-типа в желто-красной частях спектра.
Наличие этих трех видов колбочек (и палочек, чувствительных в изумрудно-зеленой части спектра) даёт человеку цветное зрение.
В ночное время зрение обеспечивают только палочки, поэтому ночью человек не может различать цвета.
Каждое животное видит мир по-своему. Сидя в засаде, лягушка видит только движущиеся предметы: насекомых, на которых она охотится, или своих врагов. Чтобы увидеть всё остальное, она должна сама начать двигаться.
Сумеречные и ночные животные (например, волки и другие хищные звери), как правило, почти не различают цветов.
Стрекоза хорошо различает цвета только нижней половиной глаз, верхняя половина смотрит в небо, на фоне которого добыча и так хорошо заметна.
О хорошем зрении насекомых мы можем судить хотя бы по красоте цветков растений - ведь эта красота предназначена природой именно для насекомых - опылителей. Но мир, каким они его видят, сильно отличается от привычного для нас. Цветки, которые опыляют пчелы, обычно не окрашены в красный цвет: пчела этот цвет воспринимает, как мы - черный. Зато, вероятно, многие невзрачные на наш взгляд цветы приобретают неожиданные великолепие в ультрафиолетовом спектре, в котором видят насекомые. На крыльях некоторых бабочек (например, лимонницы, боярышницы) имеются узоры, скрытые от человеческого глаза и видимые только в ультрафиолетовых лучах. Когда муравьев в ходе опыта стали облучать сильными ультрафиолетовыми лучами, они побежали укрываться "в тень" не под защиту пропускавшей ультрафиолет темной дощечки, а под прозрачное, на наш взгляд, стекло, задерживавшее эти лучи.
Все объекты окружающего мира можно разделить на: излучающие (светящиеся: солнце, лампа, монитор), отражающие излучение (бумага) и пропускающие (стекло).
Рисунок . Излучающие, отражающие и пропускающие объекты
В зависимости от того, является объект излучающим или отражающим для представления описания его цвета в виде числового кода используются две обратных друг другу цветовые модели: RGB или CMYK.
Модель RGB используется в телевизорах, мониторах, проекторах, сканерах, цифровых фотоаппаратах… Эта модель является аддитивной (суммарной), что означает, что цвета в этой модели добавляются к черному (blacK) цвету.
Основные цвета в этой модели: красный (Red), зеленый (Green), синий (Blue). Их парное сочетание в равных долях дает дополнительные цвета: желтый (Yellow), голубой (Cyan) и пурпурный (Magenta).
R+G=Y; G+B=C; B+R=M.
Сумма всех трех основных цветов в равных долях дает белый (White) цвет: R+G+B=W.
Цветовая модель CMYK используется в полиграфии при формировании изображений, предназначенных для печати на бумаге. Основными цветами в ней являются те, которые являются дополнительными в модели RGB, т.к. они получаются вычитанием цветов RGB из белого цвета. Поэтому модель CMYK называется субтрактивной.
C=W-R; M=W-G; Y=W-B.
В свою очередь парное сочетание в равных долях цветов модели CMY дает цвета модели RGB. Всем известно, что если смешать на бумаге желтую и голубую краску, получится зеленый цвет. На языке цветовых моделей, это описывается выражением: Y+C=G, кроме того, C+M=B и M+Y=R.
В теории, сумма C+M+Y=K, т.е. дает черный (blacK) цвет, но поскольку реальные типографские краски имеют примеси, их цвет не совпадает в точности с теоретически рассчитанным голубым, желтым и пурпурным. Особенно трудно получить из этих красок черный цвет. Поэтому в модели CMYK к триаде CMY добавляют черный цвет K. От слова blacK для обозначения черного цвета взята последняя буква, и т.к. буква B уже используется в модели RGB для обозначения синего цвета.
Рисунок Излучающий объект RGB |
Рисунок . Отражающий объект CMYK |
Если кодировать цвет одной точки изображения тремя битами, каждый из которых будет являться признаком присутствия (1) или отсутствия (0) соответствующей компоненты системы RGB, то мы получим все восемь различных цветов описанных выше моделей.
Таблица
1 бит на каждый компонент RGB 23=8 |
R |
G |
B |
Цвет |
1 |
1 |
1 |
W (white /белый) |
|
1 |
1 |
0 |
Y (yellow / желтый) |
|
1 |
0 |
1 |
M (magenta / пурпурный) |
|
1 |
0 |
0 |
R (red / красный) |
|
0 |
1 |
1 |
C (cyan / голубой) |
|
0 |
1 |
0 |
G (green / зеленый) |
|
0 |
0 |
1 |
B (blue /синий) |
|
0 |
0 |
0 |
K (black / черный) |
На практике же, для сохранения информации о цвете каждой точки цветного изображения в модели RGB обычно отводится 3 байта (т.е. 24 бита) - по 1 байту (т.е. по 8 бит) под значение цвета каждой составляющей. Таким образом, каждая RGB-составляющая может принимать значение в диапазоне от 0 до 255 (всего 28=256 значений), а каждая точка изображения, при такой системе кодирования может быть окрашена в один из 23*8=224=16 777 216 цветов. Такой набор цветов принято называть True Color (правдивые цвета), потому что человеческий глаз все равно не в состоянии различить большего разнообразия.
Рисунок . Цветовой куб
Изменяющиеся в диапазоне от 0 до 255 координаты RGB образуют цветовой куб. Любой цвет расположен внутри этого куба и описывается своим набором координат, показывающем в каких долях смешаны в нем красная, зеленая и синяя составляющие.
Таблица
Изображение |
Основа кодирования |
Памяти на пиксель |
Количество цветов |
|
байт |
бит |
|||
Черно-белое |
Bitmap |
1 |
||
Оттенки серого |
256 градаций серого |
1 |
8 |
28=256 |
Цветное излучающее |
RGB |
3 |
24 |
224=16 777 216 |
Цветное отражающее |
CMYK |
4 |
32 |
232=429 4967 296 |
HSB
Две описанные выше модели удобны скорее для компьютеров, чем для нас с вами. Человеку гораздо проще не синтезировать цвет из отдельных составляющих, а выбирать его, ориентируясь на более естественные параметры: тон, насыщенность, яркость. Именно эти три параметра и стали основой для модели HSB (Hue, Saturation, Brightness), она же HSL (Hue, Saturation, Lightness).
Параметр тона Hue (читается «хью») это чистый цвет сам по себе один из цветов спектра (радуги). В модели HSB он представлен как замкнутый круг, положение конкретного оттенка на котором указывается в градусах от 0 до 359.
Параметр Saturation это насыщенность. Чем меньше насыщенность, тем ближе цвет к серому и наоборот: с увеличением насыщенности цвет становится сочнее. Lightness, соответственно, определяет долю белого в итоговом цвете.
Lab
В попытке совместить цветовой охват моделей RGB и CMYK была создана модель Lab, не привязанная к среде вывода. Параметр модели L показывает общую яркость пикселов, параметром a передаются цвета от темно-зеленого до ярко-розового с разными вариациями насыщенности и яркости, а параметром b от светло-синего до ярко-желтого. Модель Lab обеспечивает наибольшую совместимость, цветовой охват и скорость. Из-за своей универсальности Lab широко используется способными в ней разобраться профессионалами.
Сколько бит требуется, чтобы закодировать информацию о 130 оттенках? Нетрудно подсчитать, что 8 (то есть 1 байт), поскольку при помощи 7 бит можно сохранить номер оттенка о 0 до 127, а 8 бит хранят от 0 до 255. Легко видеть, что такой способ кодирования не является оптимальным: 130 заметно меньше 255. Подумайте, как уплотнить информацию о рисунке при его записи в файл, если известно, что:
а) в рисунке одновременно содержится только 16 цветовых оттенков из 130 возможных;
б) в рисунке присутствуют все 130 оттенков одновременно, но количество точек, закрашенных разными оттенками, сильно различаются.
Решение:
а) Очевидно, что для хранения информации о 16 оттенках достаточно log2(16)=4 бита. Однако так как эти 16 оттенков выбраны из 130, то они могут иметь номера, двоичные коды которых не умещаются в 4 битах. Поэтому воспользуемся методом палитр. Назначим 16 используемым в нашем рисунке оттенкам свои “локальные” номера от 0 до 15 и закодируем весь рисунок из расчета 4 бита на пиксель. Допишем к этой информации (в конец содержащего ее файла) таблицу соответствия, состоящую из 16 пар байтов с номерами оттенков: 1 байт - наш “локальный” номер в данном рисунке, второй - реальный номер данного оттенка. Если рисунок достаточно велик, выигрыш в объеме полученного файла будет значительным.
б) Попытаемся реализовать простейший алгоритм архивации графической информации. Назначим трем оттенкам, которыми закрашено минимальное количество точек, коды 128 130 (восьмибитные), а остальным оттенкам - коды 1 -127 (семибитные). Будем записывать в файл (который в этом случае представляет собой не последовательность байтов, а сплошной битовый поток) семибитные коды для оттенков с номерами от 1 до 127. Для оставшихся же трех оттенков в битовом потоке будем записывать число-признак - семибитный 0 - и сразу за ним двухбитный “локальный” номер, а в конце файла добавим таблицу соответствия “локальных” и реальных номеров. Так как оттенки с кодами 128 - 130 встречаются редко, то семибитных нулей будет немного.
Заметим, что постановка вопросов в данной задаче не исключает и другие варианты решения, без привязки к цветовому составу изображения - архивацию:
Мир наполнен самыми разнообразными звуками: тиканье часов и гул моторов, завывание ветра и шелест листьев, пение птиц и голоса людей. О том, как рождаются звуки, и что они собой представляют, люди начали догадываться очень давно. Еще древнегреческий философ и ученый - энциклопедист Аристотель, исходя из наблюдений, объяснял природу звука, полагая, что звучащее тело создает попеременное сжатие и разрежение воздуха. Так, колеблющаяся струна то разряжает, то уплотняет воздух, а из-за упругости воздуха эти чередующиеся воздействия передаются дальше в пространство - от слоя к слою, возникают упругие волны. Достигая нашего уха, они воздействуют на барабанные перепонки и вызывают ощущение звука.
На слух человек воспринимает упругие волны, имеющие частоту где-то в пределах от 16 Гц до 20 кГц (1 Гц - 1 колебание в секунду). В соответствии с этим упругие волны в любой среде, частоты которых лежат в указанных пределах, называют звуковыми волнами или просто звуком. В учении о звуке важны такие понятия как тон и тембр звука. Всякий реальный звук, будь то игра музыкальных инструментов или голос человека, - это своеобразная смесь многих гармонических колебаний с определенным набором частот.
Колебание, которое имеет наиболее низкую частоту, называют основным тоном, другие - обертонами.
Тембр - разное количество обертонов, присущих тому или иному звуку, которое придает ему особую окраску. Именно по тембру мы легко можем отличить звуки рояля и скрипки, гитары и флейты, узнать голос знакомого человека.
Музыкальный звук можно характеризовать тремя качествами:
Громкость звука зависти от давления, возникающего при прохождении звуковой волны в жидкой и газообразной среде, которое непосредственно воспринимается ухом. Громкие звуки создают большое давление, тихие - малое. Давление измеряется в Паскалях, однако в акустике звуковое давление обычно измеряется в децибелах (дБ) относительно порога слышимости. По определению, величина порога принята равной pt=0,00002Па=20мкПа. Порог слышимости принимается за 0дБ, а громкость вычисляется как l=20*log10(p/pt), где l [дБ] - громкость (в смысле звукового давления), p [Па]- звуковое давление, pt [Па]- порог слышимости. При этом: все слышимые звуки имеют положительную величину громкости; неслышимые (ниже порога громкости) - отрицательную; изменение громкости на 6дБ соответствует двукратному изменению давления; изменение на 20дБ - изменению давления в 10 раз.
Таблица . Несколько типичных значений громкости
Звук |
Громкость |
Порог слышимости |
0 дБ |
Шелест листвы, тиканье наручных часов, дыхание |
10-20 дБ |
Тихий шепот, тиканье настенных часов |
20-30 дБ |
Шум в помещении |
30-40 дБ |
Тихий разговор |
40-50 дБ |
Разговор средней громкости |
50-60 дБ |
Громкий разговор |
60-70 дБ |
Шумная улица |
70-80 дБ |
Двигатель грузового автомобиля |
~80 дБ |
Отбойный молоток |
~90 дБ |
Громкая дискотека |
100-120 дБ |
Самолет на взлете |
120 дБ |
Болевой порог |
130 дБ |
Как же происходит кодирование звука? С самого детства мы сталкиваемся с записями музыки на разных носителях: грампластинках, кассетах, компакт-дисках и т.д. В настоящее время существует два основных способах записи звука: аналоговый и цифровой. Для того чтобы записать звук на какой-нибудь носитель его нужно преобразовать в электрический сигнал.
Это делается с помощью микрофона. Самые простые микрофоны имеют мембрану, которая колеблется под воздействием звуковых волн. К мембране присоединена катушка, перемещающаяся синхронно с мембраной в магнитном поле. В катушке возникает переменный электрический ток. Изменения напряжения тока точно отражают звуковые волны.
Переменный электрический ток, который появляется на выходе микрофона, называется аналоговым сигналом. Напомним, что применительно к сигналу «аналоговый» обозначает, что этот сигнал непрерывен по времени и амплитуде. При дискретном представлении информации физическая величина изменяется скачкообразно («лесенкой»), принимая конечное множество значений.
Виниловая пластинка является примером аналогового хранения звуковой информации, так как звуковая дорожка свою форму изменяет непрерывно. Но у аналоговых записей есть большой недостаток - старение носителя. Виниловые пластинки при проигрывании их несколько раз теряют качество. Поэтому преимущество отдают цифровой записи.
В начале 80-х годов появились компакт-диски. Они являются примером дискретного хранения звуковой информации, так как звуковая дорожка компакт - диска содержит участки с различной отражающей способностью. Теоретически эти цифровые диски могут служить вечно, если их не царапать, т.е. их преимуществами являются долговечность и неподверженность механическому старению. Другое преимущество заключается в том, что при цифровой перезаписи нет потери качества звука.
Кратко рассмотрим процессы преобразования звука из аналоговой формы в цифровую и наоборот.
Звуковые волны при помощи микрофона превращаются в аналоговый переменный электрический сигнал. Он проходит через звуковой тракт и попадает в аналого-цифровой преобразователь (АЦП) устройство, которое переводит сигнал в цифровую форму.
В упрощенном виде принцип работы АЦП заключается в следующем: он измеряет через определенные промежутки времени амплитуду сигнала и передает дальше, уже по цифровому тракту, последовательность чисел, несущих информацию об изменениях амплитуды.
Во время аналого-цифрового преобразования никакого физического преобразования не происходит. С электрического сигнала снимается отпечаток, являющийся цифровой моделью колебаний напряжения в аудиотракте. Цифровой сигнал по своей природе дискретен т. е. прерывист, поэтому цифровая модель не совсем точно соответствует форме аналогового сигнала.
Семпл - это промежуток времени между двумя измерениями амплитуды аналогового сигнала.
Дословно Sample переводится с английского как «образец». В мультимедийной и профессиональной звуковой терминологии это слово имеет несколько значений. Кроме промежутка времени семплом называют также любую последовательность цифровых данных, которые получены путем аналого-цифрового преобразования. Сам процесс преобразования называют семплированием. В русском техническом языке его называют дискредитацией.
Вывод цифрового звука происходит при помощи цифро-аналогового преобразователя (ЦАП), который на основании поступающих цифровых данных в соответствующие моменты времени генерирует электрический сигнал необходимой амплитуды.
Важными параметрами семплирования являются частота и разрядность.
Частота - количество измерений амплитуды аналогового сигнала в секунду.
Если частота семплирования не будет более чем в два раза превышать частоту верхней границы звукового диапазона, то на высоких частотах будут происходить потери. Этим объясняется то, что стандартная частота для звукового компакт-диска - это частота 44.1 кГц. Так как диапазон колебаний звуковых волн находится в пределах от 20 Гц до 20 кГц, то количество измерений сигнала в секунду должно быть больше, чем количество колебаний за тот же промежуток времени. Если же частота дискредитации значительно ниже частоты звуковой волны, то амплитуда сигнала успевает несколько раз измениться за время между измерениями, а это приводит к тому, что цифровой отпечаток несет хаотичный набор данных. При цифро-аналоговом преобразовании такой семпл не передает основной сигнал, а выдает только шум.
В формате компакт-дисков Audio DVD за одну секунду сигнал измеряется 96 000 раз, т.е. применяют частоту семплирования 96 кГц. Для экономии места на жестком диске в мультимедийных приложениях довольно часто применяют меньшие частоты: 11, 22, 32 кГц. Это приводит к уменьшению слышимого диапазона частот, а, значит, происходит сильное искажение того, что слышно.
Разрядность указывает, с какой точностью происходят изменения амплитуды аналогового сигнала. Точность, с которой при оцифровке передается значение амплитуды сигнала в каждый из моментов времени, определяет качество сигнала после цифро-аналогового преобразования. Именно от разрядности зависит достоверность восстановления формы волны.
Для кодирования значения амплитуды используют принцип двоичного кодирования. Звуковой сигнал должен быть представлен в виде последовательности электрических импульсов (двоичных нулей и единиц). Обычно используют 8, 16-битное или 20-битное представление значений амплитуды. От частоты дискредитации (количества измерений уровня сигнала в единицу времени) зависит качество кодирования. С увеличением частоты дискредитации увеличивается точность двоичного представления информации. При частоте 8 кГц (количество измерений в секунду 8000) качество семплированного звукового сигнала соответствует качеству радиотрансляции, а при частоте 48 кГц (количество измерений в секунду 48000) - качеству звучания аудио-CD.
Если использовать 8-битное кодирование, то можно достичь точности изменения амплитуды аналогового сигнала до 1/256 от динамического диапазона цифрового устройства (28 = 256).
Если использовать 16-битное кодирование для представления значений амплитуды звукового сигнала, то точность измерения возрастет в 256 раз.
В современных преобразователях принято использовать 20-битное кодирование сигнала, что позволяет получать высококачественную оцифровку звука.
Формат Audio DVD использует разрядность 24 бита и частоту семплирования 96 кГц.
Пример 1: Подсчитать, сколько места будет занимать одна минута цифрового звука на жестком диске или любом другом цифровом носителе, записанного с частотой
а) 44.1 кГц; в) 22 кГц;
б) 11 кГц; г) 32 кГц
и разрядностью 16 бит.
Решение:
а) Если записывают моносигнал с частотой 44.1 кГц, разрядностью 16 бит (2 байта), то каждую минуту аналого-цифровой преобразователь будет выдавать 441000 * 2 * 60 = 529 000 байт (около 5 Мб) данных об амплитуде аналогового сигнала, который в компьютере записываются на жесткий диск.
Если записывают стереосигнал, то 1 058 000 байт (около 10 Мб).
б) для частот 11, 22, 32 кГц расчеты производятся аналогично.
Пример 2: Какой объем данных имеет моноаудиофайл, длительность звучания которого 1 секунда, при среднем качестве звука (16 бит, 24 кГц)?
Решение:
16 бит * 24000 = 384 000 бит = 48 000 байт = 46 875 килобайт.
Рисунок . Перевод числа из двоичной СС в десятичную