русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Введение


Дата добавления: 2013-12-23; просмотров: 1668; Нарушение авторских прав


Раздел 7 . Кодирование текста, цвета и звука.

Лекция 13

по дисциплине «Информатика и ИКТ»

ТЕМА 2 «ОРГАНИЗАЦИЯ И ФУНКЦИОНИРОВАНИЕ КОМПЬЮТЕРОВ»

Содержание:

Введение

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 – таблицы.
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

 

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

 

7.2. Кодирование цвета.

Любой графический объект можно считать состоящим из цветных точек или из цветных линий, который в этом случае следует рассматривать как элементарные объекты. Рассмотрим для определенности экранную цветную точку (пиксель). У пикселя 3 основных свойства – координата по высоте, координата по ширине и цвет. Первые 2 свойства без труда представляются в виде чисел. А как быть с цветом? Как присвоить всем возможным оттенкам различные коды, учитывая, что человеческий глаз различает несколько миллионов оттенков?

Выход из этого положения дает одно замечательное свойство человеческого глаза – любой цвет на сетчатке глаза раскладывается в суперпозицию 3-х базовых цветов - красного, зеленого и синего и в таком виде поступает в мозг. Поэтому человек не различает собственно оттенок цвета (свет определенной длины волны) и тот же оттенок, составленный из базовых цветов (смешение 3-х длин волн с определенными интенсивностями). В связи с этим любому устройству, выводящему изображения, будь то монитор, проектор или принтер достаточно работать только с 3-мя базовыми цветами, меняя оттенки изменением соотношения интенсивностей этих цветов. Соответственно и задать цвет можно в виде 3-х чисел – значений интенсивностей базовых цветов. Такой способ задания цвета используется в RGB-кодировке – основной кодировке цвета.

Согласно стандарту RGB (Red, Green, Blue, т.е. Красный, Зеленый, Синий) для записи значения цвета отводится 3 байта (24 бита) – в первый байт записывается интенсивность красного, во второй байт интенсивность зеленого, в третий байт – интенсивность синего цвета. Т.к. в один байт можно записать любое значение от 0 до 255 (т.е. одно из 256 значений), то каждый базовый цвет может иметь 256 градаций интенсивности. Соответственно, в рамках RGB-стандарта возможно 256× 256×256 = 16777216 (более 16 млн.) различных значений оттенков. Это перекрывает возможности любого человеческого глаза.

Записывать RGB-код цвета принято в виде 6-значного шестнадцатеричного числа, состоящего из 3-х двузначных шестнадцатеричных чисел, первое из которых обозначает интенсивность красного, второе интенсивность зеленого, третье интенсивность синего (т.е. в виде #rrggbb). Например, #FF0000 означает красный цвет, #00FF00 –зеленый, #0000FF –синий, #000000 –черный (отсутствие цвета), #FFFFFF белый (смешение максимальных интенсивностей базовых цветов), #808080 – серый (смешение половинных интенсивностей всех базовых цветов). При интерпретации значения RGB-кода удобно представить, что источником цвета является светильник, состоящий из 3-х лампочек – красной, зеленой и синей, причем яркость каждой лампочки определяется значением соответствующего двузначного шестнадцатеричного числа (00 – лампочка выключена, FF-лампочка включена с максимальной яркостью).

Кроме RGB используется еще одна общепринятая кодировка цветов CMYK.

Кодировка CMYK (Cyan -голубой, Magenta -розовый, Yellow -желтый и blacK -черный) является дополнительной к RGB. Коды базовых CMYK-цветов записываются в RGB как

Cyan = #00FFFF,

Magenta = #FF00FF,

Yellow = #FFFF00,

Black = #000000.

Таким образом, Cyan + Red = Magenta + Green = Yellow + Blue = #FFFFFF (белый цвет).

CMYK кодировка полностью эквивалентна RGB (дает столько же различных оттенков), но для ее реализации необходимо 4 байта (32 бита). Лишний байт необходим для дополнительного черного цвета, который не создает новых оттенков, а только меняет общую интенсивность цвета. Необходимость в дополнительном черном цвете возникает из-за невозможности получить черный смешением голубого, розового и желтого. Хотя теоретически такой результат должен получаться, на практике, при смешивании красок или при смешивании света точечных источников чистого черного цвета (т.е. полного отсутствия цвета) не получается.

Кодировка RGB позволяет наилучшим образом задать цветную точку на черном фоне, например изображение на экране монитора (при отсутствии какого-либо изображения монитор представляет собой черный экран). Кодировка CMYK более удобна при представлении изображения на белом фоне (например, изображения и текста на бумаге). Поэтому для любых печатающих устройств более удобна кодировка CMYK. Идея CMYK использовалась в полиграфии задолго до появления компьютеров при печати цветных изображений с помощью набора из 4-х базовых красок.

 

7.3. Кодировка звука.

Звук – это аналоговый процесс, который можно описать одной (но очень сложной!) функцией P(t), выражающей зависимость давления от времени в какой-либо точке пространства.

Человек различает две основные характеристики звука – громкость и тональность.

 

Громкость определяется как среднее значение функции P(t) за время t - маленькое с точки зрения человеческого восприятия, но достаточное для того, чтобы за это время произошло много пульсаций функции P(t) и можно было бы говорить о частотах этих пульсаций (например, величина t может составлять 1-2 десятых долей секунды). Тональность звука определяется частотами пульсаций функции P(t) за то же время t. Количественно охарактеризовать тональность можно при помощи разложения функции P(t) в ряд Фурье на временном отрезке t. В результате получится набор частотных гармоник – составляющих звукового спектра. Амплитуда каждой гармоники определяет громкость соответствующей частоты.

Любое кодирование звука заключается в представлении функции P(t) в виде набора данных, т.е. чисел. Существует много различных способов кодирования звука. Рассмотрим некоторые из них.

Формат MIDI (Musical Instrument Digital Interface) – цифровой интерфейс музыкальных инструментов. Создан в 1982 году ведущими производителями электронных музыкальных инструментов - Yamaha, Roland, Korg, E-mu и др. При этой кодировке считается, что звук создается набором музыкальных инструментов. Для каждого инструмента определяется набор возможных действий (например, нажатие определенной клавиши на фортепиано) и результат каждого действия (спектр звука). Каждому действию каждого инструмента присваивается код. MIDI – файл и состоит из последовательности таких кодов. Можно считать, что MIDI-формат является электронным аналогом нотной записи. Преимуществом MIDI-формата является очень маленький объем получающихся файлов. Одним из недостатков MIDI-формата является зависимость воспроизводимого звука от аппаратно-программного обеспечения, при помощи которого воспроизводится данный MIDI файл (точно так же, как исполняемое «вживую» музыкальное произведение зависит не только от нот, но и от исполнителя). Вторым (основным) недостатком этого формата является невозможность записать звук, не создаваемый музыкальными инструментами, например, человеческий голос.

Формат WAV (от слова wave – волна). Это формат, основанный на непосредственном табулировании функции P(t), т.е. на представлении этой функции в виде последовательности числовых значений Pi, в моменты времени ti, отстоящие друг от друга на очень маленькую величину Dt (Dt = ti+1 – ti ), называемую квантом дискретизации. За время Dt функция P(t) должна измениться незначительно, - это означает, что величина Dt должна быть существенно меньше периода самого высокочастотного звукового колебания из спектра функции P(t). Величина обратная Dt (n = 1/Dt) называется частотой дискретизации (частотой оцифровки). Числовые значения функции Pi дискретны, общее количество этих значений определяется разрядностью кодирования звука – 8 бит (256 значений), 16 бит (64 тыс. значений), 32 бита ( 4 млрд. значений) и т.д. Чем выше частота дискретизации и разрядность кодирования, тем более точно представляется записываемый звук. Достаточными являются значения этих параметров 44 кГц и 16 бит.

Формат WAV позволяет записывать любой звук с любой необходимой точностью. Главным недостатком этого формата является очень большой объем получающихся звуковых файлов. Даже при использовании процедуры сжатия данных объем таких файлов составляет несколько МБ на минуту звука, а объем 5-минутной музыкальные композиции составляют 30-50 МБ. Именно поэтому для записи музыкальных композиций формат WAV используется редко – его вытеснили форматы семейства MPEG. Формат WAV используется для записи коротких звуков, а также в тех случаях, когда важна точность записи звука, например, при снятии данных с акустических датчиков.

Форматы MPEG ,включая MP3 и MP4 – это семейство мультимедийных форматов для записи видеоизображения и звука. Принципы кодирования звука в рамках этих форматов основаны на том факте, что человеческое ухо не совершенно и на самом деле точное воспроизводство функции P(t) дает много избыточной информации, которую органы слуха не в состоянии обработать.

Рассмотрим кодирование звука на примере формата MP3 (сокращение от MPEG Layer 3). Перед кодированием исходный сигнал (функция P(t)) разбивается на участки длительности t, называемые звуковыми фреймами. Каждый звуковой фрейм раскладывается в ряд Фурье, после чего он обрабатывается на основе так называемой психоакустической модели, учитывающей особенности восприятия звука человека. В рамках этой модели учитывается, например, что если в спектре присутствует сильный звук на частоте 1000 Гц, то более слабый звук на частоте 1100 Гц уже не будет слышен, что будет ослаблена чувствительность уха на период в 100 мс после и 5 мс до возникновения сильного звука и т.д. Все неслышимые с точки зрения психоакустической модели звуки из спектра удаляются, это и позволяет значительно уменьшить объем звукового файла. При этом качество звука не ухудшается, а иногда, например, при оцифровке зашумленного звука, может даже улучшится по сравнению с оригиналом. В целом качество звука для рассматриваемых форматов определяется суммарным объемом получаемого кода на единицу времени звучания, т.е. количеством бит, затрачиваемых на кодирование 1 секунды звучания. Эта величина называется битрейтом и измеряется в килобитах в секунду (кб/с, kbs). Наивысшее для формата MP3 качество обеспечивается битрейтом 320 кб/с, достаточное качество – битрейтом 128 кб/с, это около 1 МБ на одну минуту звучания.

Алгоритмы кодирования звука могут различаться даже в рамках одного формата. Например, можно использовать MP3-кодирование с разными психоакустическими моделями. Непосредственное преобразование данных из звукового файла в звук (т.е. в аналоговый сигнал), а также обратное преобразование осуществляется специальными программными компонентами, которые называются кодеками (от слов КОдировщик и ДЕКодировщик). Для того чтобы успешно воспроизводить музыкальные файлы и видеофайлы, необходимо установить набор кодеков, соответствующих всем возможным алгоритмам кодирования.

Существуют и другие форматы кодирования звука, использующие те же идеи, что и MPEG. Например, формат VQF позволяем уменьшить размер файла по сравнению с MP3 примерно на 25% за счет использования более сложных алгоритмов кодирования.



<== предыдущая лекция | следующая лекция ==>
Семантическая мера информации | Моделирование сложных систем


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.