Способы представления мультимедийной информации в компьютере

Виды компьютерной графики: растровая, векторная, фрактальная и трёхмерная. Основные понятия компьютерной графики. Кодирование аудиоинформации, основные аудио форматы. Смешение сигналов и видео форматы. Разработка программы построения фракталов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 14.01.2015
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В качестве примера рассмотрим состав узлов одного из мощных аудиоадаптеров -- SoundBlaster AWE 32 Value. Он содержит два микрофонных малошумящих усилителя с автоматической регулировкой усиления для сигналов, поступающих от микрофона, два линейных усилителя для сигналов, поступающих с линии, с проигрывателя звуковых дисков или музыкального синтезатора. Кроме того, сюда входят программно-управляемый электронный микшер, обеспечивающий смешение сигналов от различных источников и регулировку их уровня и стерео баланса, 20-голосый синтезатор музыкальных звуков частотной модуляции FM, программно управляемый волновой (табличный) синтезатор музыкальных звуков и звуковых эффектов (16 каналов, 32 голоса, 128 инструментов), аналого-цифровой 16-разрядный преобразователь для превращения аналогового сигнала с выхода микшера в цифровой сигнал, систему сжатия цифровой информации с возможностью применения расширенного звукового процессора ASP. Наконец, аудиоадаптер имеет цифроаналоговый преобразователь (ЦАП) для превращения цифровых сигналов, несущих информацию о звуке, в аналоговый сигнал, адаптивный электронный фильтр на выходе ЦАП, снижающий помехи от квантования сигнала, двухканальный усилитель мощности по 4 Вт на канал с ручным и программно-управляемым регулятором громкости и MIDI-разъем для подключения музыкальных инструментов.

Как видно из этого перечня, аудиоадаптер -- достаточно сложное техническое устройство, построенное на основе использования последних достижений в аналоговой и цифровой аудиотехнике.

В новейшие звуковые карты входит цифровой сигнальный процессор DSP (Digital Signal Processor) или расширенный сигнальный процессор ASP (Advanced Signal Processor). Они используют совершенные алгоритмы для цифровой компрессии и декомпрессии звуковых сигналов, для расширения базы стереозвука, создания эха и обеспечения объемного (квадрофонического) звучания. Программа поддержки ASP QSound поставляется бесплатно фирмой Intel на CD-ROM “Software Developer CD”. Важно отметить, что процессор ASP используется при обычных двухканальных стереофонических записи и воспроизведении звука. Его применение не загружает акустические тракты мультимедиа компьютеров.

2.1.1 Кодирование аудиоинформации

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Звук представляет собой распространяющуюся чаще всего в воздухе, воде или другой среде волну с непрерывно изменяющейся интенсивностью и частотой.

Человек может воспринимать звуковые волны (колебания воздуха) с помощью слуха в форме звука различая при этом громкость и тон.
Чем больше интенсивность звуковой волны, тем громче звук, чем больше частота волны, тем выше тон звука.

Так как компьютер работает с числами, звуки и музыка должны быть представлены в числовом виде, или, как принято говорить, закодированы. Произвольная аудиоинформация при кодировании занимает много места, поэтому часто используют сжатые аудиоформаты. Музыка занимает меньше места, так как хорошо формализуется - ее можно записать с помощью нот.

Если известна глубина кодирования, то количество уровней громкости цифрового звука можно рассчитывать по общей формуле N = 2I.

Например, пусть глубина кодирования звука составляет 16 битов, в таком случае количество уровней громкости звука равно:

N = 2I = 216 = 65 536.

В процессе кодирования каждому уровню громкости звука присваивается свой 16-битовый двоичный код, наименьшему уровню звука будет соответствовать код 0000000000000000, а наибольшему - 1111111111111111.

Звук представляет собой волну, распространяющуюся в атмосфере, и воспринимаемую человеком с помощью органов слуха. Громкость звука - это его кажущаяся сила. Измеряется громкость в децибелах (дБ). Громкость обычного разговора около 50 дБ, шум на улице часто превышает 70 дБ, а громкость взлетающего самолета составляет 120 дБ. Порог чувствительности человеческого уха около 20 дБ.

Характеризуется звуковая волна изменением во времени частоты и амплитуды сигнала. Графически звуковая волна описывается кривой, задающей зависимость амплитуды от времени. Частота основных колебаний определяет высоту звука. Но звуки одной частоты могут иметь разный тембр.

Чтобы закодировать звук, необходимо измерять амплитуду сигнала через определенные промежутки времени. На каждом временном отрезке определяется средняя амплитуда сигнала. Графически такое преобразование описывается множеством столбиков.

При восстановлении исходной кривой ее вид будет искажен. Искажения тем больше, чем больше ширина столбиков, то есть чем реже определяется текущая амплитуда. Чем промежутки времени меньше, тем выше будет качество закодированного звука. Частота, с которой определяется амплитуда сигнала, называется частотой дискретизации.

Амплитуда сигнала, определенная в каждый момент времени, также должна быть представлена в числовом виде. В простейшем случае можно использовать один бит - есть звук или его нет. Но на практике такое кодирование не имеет смысла. Минимально для кодирования амплитуды сигнала отводятся восемь бит - один байт, что позволяет описать двести пятьдесят шесть уровней громкости. Качество звука при этом получается не слишком высокое. Если и частота дискретизации невелика, то при воспроизведении будут присутствовать сильные искажения. Значительно лучшее качество получается при использовании двух байт, что позволяет задать более шестидесяти пяти тысяч разных значений амплитуды. В большинстве случаев двух байт достаточно для получения высококачественной записи звука, хотя иногда применяют 24 бита - три байта для кодирования амплитуды сигнала.

Для кодирования звуков следует использовать частоту вдвое большую, чем частота кодируемого звука. Объяснение этому довольно простое. Звуковая волна состоит из двух полупериодов: положительного и отрицательного. Поэтому для ее имитации необходимо иметь хотя бы по одной выборке на каждом из полупериодов. Так как человек воспринимает звуки в диапазоне частот от 20 до 20000 Гц, то для качественного кодирования необходимо использовать частоту вдвое большую, чем 20000, то есть 40000 Гц. Тогда сохраненные выборки позволят воспроизводить звуковую волну внутри диапазона, воспринимаемого человеческим ухом. Для качественного кодирования звука принято иметь некоторый запас, поэтому при цифровой звукозаписи используется частота дискретизации 44100 Гц и 48000 Гц. Это означает, что за каждую секунду звукозаписи в цифровом виде записывается более 44000 единиц информации, последовательность которых моделирует звук длительностью в одну секунду.

Для того чтобы записать стереозвук, следует одновременно кодировать два независимых канала звука. При этом чтобы получить хорошее качество, нужно использовать два байта для кодирования и частоту дискретизации 44100 Гц для каждого из каналов. Именно так кодируется звук на компакт-дисках. При этом одна минута закодированного звука займет более 10 Мб.

В некоторых случаях можно обойтись более низким качеством, сравнимым с качеством записи диктофона. Для того чтобы закодировать голос, не предъявляя повышенных требований к качеству звучания, можно использовать один байт при кодировании и один монофонический канал. Частоту дискретизации также можно понизить. Чтобы разбирать отдельные слова и понимать их смысл, достаточно частоты дискретизации 8000 Гц. С такими параметрами минута закодированного звука займет менее 480 Кб.

Для повышения качества кодирования используют более высокие частоты дискретизации, до 96000 Гц, однако такое качество требуется исключительно при работе в профессиональных звукозаписывающих студиях.

Современные компьютеры часто используются при создании и воспроизведении музыки. Музыкальное произведение можно закодировать как любой другой звук, однако это займет много места. Кроме того, возникнут трудности при изменении партий отдельных инструментов. Проще указать инструмент и задать, какую ноту и как долго он должен играть. Для воспроизведения музыки компьютер синтезирует разнообразные звуки, которые издают музыкальные инструменты.

В компьютерной музыке используется аббревиатура MIDI, которая расшифровывается как Musical Instrument Digital Interface (Цифровой интерфейс музыкальных инструментов). Имеется стандарт, описывающий основные используемые инструменты, - GM (General MIDI - единый MIDI). В стандарте описаны пятнадцать групп мелодических инструментов и одна группа ударных инструментов. Мелодический набор состоит из пианино, органов, гитар, струнных, духовых и тому подобных инструментов. За всеми инструментами закреплены номера, например, нулевой номер имеет акустический рояль. Кроме GM используются стандарты GS (General Synth - единый синтез), XG (Extended General - единый расширенный), GM2 (General MIDI 2). Все эти стандарты не заменяют собой GM, а лишь дополняют его новыми инструментами и дополнительными параметрами звучания.

Несмотря на то, что инструменты и тембры стандартизированы в GM, а MIDI-файл содержит только номера инструментов и тембров, этот файл по-разному будет воспроизводиться на разных звуковых картах. Это объясняется несколькими причинами. Так, в стандарте описаны только названия инструментов и тембров. Такие параметры звука, как громкость, окраска и другие не определены и выбираются производителями звуковых карт произвольно.

Кроме того, на качество воспроизведения звука сильно сказывается метод, которым этот звук воспроизводится. Применяют два основных метода синтеза звуков. Более простой метод называется частотным синтезом (FM-синтез). Для каждой ноты каждого инструмента определена частота и амплитуда звука, и звуковая плата компьютера синтезирует звук. Однако при этом синтезированные звуки получаются не слишком похожими на звучание реальных инструментов. В современных звуковых платах частотный синтез не используется.

Значительно лучшее качество звучания дают волновые таблицы (Wave Table). В таблице записаны закодированные звуки реальных инструментов. При этом используется метод кодирования амплитуды звукового сигнала через короткие промежутки времени. Например, если требуется воспроизвести удар по тарелке, звуковая плата проигрывает небольшой фрагмент, записанный в определенном месте таблицы. Фрагменты называют сэмплами (samples). Инструменты с малой длительностью звучания обычно записываются полностью, а для остальных может записываться лишь начало, конец звука и небольшая средняя часть, которая затем проигрывается в цикле в течение нужного времени. Такое кодирование обеспечивает предельную реалистичность звучания классических инструментов и простоту получения звука. Однако волновые таблицы могут занимать много места в памяти.

Так как музыка, представленная в цифровом виде, не требует преобразований, к компьютеру напрямую можно подключить цифровые синтезаторы. Наигрывая мелодию на синтезаторе, в компьютер вводится последовательность нот. Также синтезаторы позволяют проигрывать композиции, созданные на компьютере. Загрузив в синтезатор сэмплы из волновой таблицы, можно извлекать самые необычные звуки при нажатии клавиш.

В последнее время стало модным караоке, и в компьютере стали кодировать музыку вместе с текстом. Фактически караоке является вариантом MIDI. Музыка закодирована обычным способом, но дополнительно добавлен текст, заменивший описание одного из инструментов.

Хотя частота дискретизации при кодировании звукового сигнала по компьютерным меркам не очень велика, объем получившихся цифровых данных достаточно большой. Чтобы уменьшить объем, занимаемый цифровыми аудиоданными, применяют различные методы сжатия информации, в частности алгоритмы MPEG. Например, применение сжатия по алгоритму MPEG-1 Layer 3 (МР3) позволяет уменьшить объем данных более чем в десять раз, при сохранении качества звука, близкого к audio-CD. Наряду с МР3 применяется формат сжатия по стандарту WMA (Windows Media Audio), поддерживаемый последними версиями операционных систем Windows.

В обоих стандартах используется метод сжатия по психоакустической модели, то есть из исходного звукового сигнала удаляется информация, малозаметная на слух, после чего сигнал сжимается обычными методами, которые реализованы в программах-архиваторах. При таком методе кодирования неизбежно искажение исходного сигнала, а значит - потеря качества. Степень потери качества можно регулировать, однако при увеличении качества неизбежно растет объем информации. Основным параметром, характеризующим качество записи, является скорость потока данных, поступающих для декодирования. Часто этот параметр называют битрейтом (bitrate - частота битов).

Битрейт измеряется в килобитах в секунду и может составлять до 320 Кбит/с. В большинстве случаев вполне хватает 192 или даже 128 битрейт. Битрейт ниже 48 Кбит/с существенно ухудшит качество и его не следует применять для записи музыки. Для записи речи можно использовать меньший битрейт. Качественную диктофонную запись можно получить при битрейте равном 8 Кбит/с.

Искажения при кодировании в форматах MP3 и WMA во многом зависят от характера музыки. Симфоническая музыка требует большего битрейта, а танцевальная - меньшего. Наиболее популярным битрейтом при кодировании музыкальных композиций считается битрейт 128 Кбит/с, дающий хорошее качество записи и позволяющий сжимать исходную информацию более чем в десять раз.

Для хранения произвольных звуковых данных чаще всего используются файлы формата wav. В этом формате может храниться моно- или стереозвук, закодированный одним или двумя байтами и с различной частотой дискретизации. Файлы этого формата могут быть сжаты разными способами для достижения меньшего размера, а могут оставаться и несжатыми. Музыкальные файлы используют формат mid, так как цифровой музыкальный интерфейс и способ кодирования музыкальной информации называется MIDI. Сжатые файлы могут иметь расширение wav, а могут расширением указывать на используемый способ сжатия - mp3 или wma. Есть и несколько других форматов звуковых файлов, но они применяются значительно реже.

2.1.2 Аудио форматы

MP3-- третий слой формата кодирования звуковой дорожки MPEG, лицензируемый формат файла для хранения аудиоинформации.

MP3 является одним из самых распространённых и популярных форматов цифрового кодирования звуковой информации с потерями. Он широко используется в файлообменных сетях для оценочной передачи музыкальных произведений. Формат может проигрываться практически во всех популярных операционных системах, на большинстве портативных аудиоплееров, а также поддерживается всеми современными моделями музыкальных центров и DVD-плееров.

В формате MP3 используется алгоритм сжатия с потерями, разработанный для существенного уменьшения размера данных, необходимых для воспроизведения записи и обеспечения качества воспроизведения звука очень близкого к оригинальному (по мнению большинства слушателей), хотя меломаны говорят об ощутимом различии. При создании MP3 со средним битрейтом 128 кбит/с в результате получается файл, размер которого примерно равен 1/11 от оригинального файла с CD-Audio. Само по себе несжатое аудио формата CD-Audio имеет битрейт 1411,2 кбит/с. MP3-файлы могут создаваться с высоким или низким битрейтом, который влияет на качество файла-результата. Принцип сжатия заключается в снижении точности некоторых частей звукового потока, что практически неразличимо для слуха большинства людей.

MPEG-4 -- это международный стандарт, используемый, преимущественно для сжатия цифрового аудио и видео. Он появился в 1998 году, и включает в себя группу стандартов сжатия аудио и видео и смежные технологии, одобренные ISO -- Международной организацией по стандартизации/IEC Moving Picture Experts Group (MPEG). Стандарт MPEG-4 в основном используется для вещания (потоковое видео), записи фильмов на компакт-диски, видеотелефонии (видеотелефон) и широковещания, в которых активно используется сжатие цифровых видео и звука.

MIDI (англ. Musical Instrument Digital Interface -- цифровой интерфейс музыкальных инструментов) -- стандарт цифровой звукозаписи на формат обмена данными между электронными музыкальными инструментами.

Интерфейс позволяет единообразно кодировать в цифровой форме такие данные как нажатие клавиш, настройку громкости и других акустических параметров, выбор тембра, темпа, тональности и др., с точной привязкой во времени. В системе кодировок присутствует множество свободных команд, которые производители, программисты и пользователи могут использовать по своему усмотрению. Поэтому интерфейс MIDI позволяет, помимо исполнения музыки синхронизировать управление другим оборудованием, например, осветительным, пиротехническим и т.п.

Последовательность MIDI-команд может быть записана на любой цифровой носитель в виде файла, передана по любым каналам связи. Воспроизводящее устройство или программа называется синтезатором (секвенсором) MIDI и фактически является автоматическим музыкальным инструментом.

ADX - это формат сжатия с потерями и хранения звукозаписи, разработанный CRI Middleware специально для использования в видеоиграх. Наиболее характерная особенность - возможность зациклить звукозапись, что делает применение формата удобным для использования в качестве фоновой музыки в различных играх, поддерживающих этот медиаконтейнер. Его поддерживают множество игр для SEGA Dreamcast некоторые игры для PlayStation 2 и GameCube. Одной из первых игр, использовавших ADX, была Burning Rangers на базе Sega Saturn. Наиболее заметно использовался в играх серии Sonic the Hedgehog, начиная с поколения Dreamcast, вплоть до игры Shadow the Hedgehog, в которой этот формат использовался для записи музыки и голосов персонажей.

VQF -- формат записи звука, основывается на технологии TwinVQ (англ.) (Transform-domain Weighted Interleave Vector Quanization -- векторное квантование с трансформными доменами и взвешенным чередованием), разработанной в Японии в лаборатории NTT Human Interface Labolatories

VQF-файлы примерно на 30-35 % меньше, чем MP3, при одинаковом качестве звука. Потоку 128 Кбит/с у файлов MP3 соответствует поток 80 Кбит/с у файлов VQF. У этих достоинств есть и обратная сторона. При декодировании загрузка процессора также на 30 % выше, чем при декодировании MP3. Это определяет повышенные требования к компьютеру, на котором планируется проигрывать такие файлы.

Тесты показывают превосходство VQF по всем параметрам на нижних частотах и гораздо меньшее искажение формы сигнала с большим динамическим диапазоном (реальная музыка). Однако по завалу верхних частот звукового спектра VQF на 2-3 дБ уступает MP3 на частотах выше 15 кГц. Это впрочем, легко компенсируется настройкой эквалайзера плеера, что объективно ставит VQF на ступень выше по качеству звука по сравнению с MP3.

WAV (англ. wave «волна») -- формат файла-контейнера для хранения записи оцифрованного аудиопотока. Под Windows этот формат чаще всего используется в качестве оболочки для несжатого звука (PCM), когда для каждого отсчёта амплитуды сигнала выделяется определённое число бит. Однако, в контейнер WAV можно поместить звук, сжатый почти любым кодеком (но с воспроизведением таких файлов могут возникать проблемы).

2.2 Видеоинформация

Чтобы хранить и обрабатывать видео на компьютере, необходимо закодировать его особым образом. Изображение в видео состоит из отдельных кадров, которые меняются с определенной частотой. Кадр кодируется как обычное растровое изображение, то есть разбивается на множество пикселей. Закодировав отдельные кадры и собрав их вместе, можно описать все видео.

Видеоданные характеризуются частотой кадров и экранным разрешением. Скорость воспроизведения видеосигнала составляет 30 или 25 кадров в секунду, в зависимости от телевизионного стандарта. Наиболее известными из таких стандартов являются: SECAM, принятый в России и Франции, PAL, используемый в Европе, и NTSC, распространенный в Северной Америке и Японии. Разрешение для стандарта NTSC составляет 768 на 484 точек, а для PAL и SECAM - 768 на 576 точек. Не все пиксели используются для хранения видеоинформации. Так, при стандартном разрешении 768 на 576 пикселей, на экране телевизора отображается всего 704 на 540 пикселей. Поэтому для хранения видеоинформации в компьютере или цифровой видеокамере, размер кадра может отличаться от телевизионного. Например, в формате Digital Video или, как его еще называют DV, размер кадра составляет 720 на 576 пикселей. Такое же разрешение имеет кадр стандарта DVD Video. Размер кадра формата Video-CD составляет 352 на 288 пикселей.

В основе кодирования цветного видео лежит известная модель RGB. В телевидении же используется другая модель представления цвета изображения, а именно модель YUV. В такой модели цвет кодируется с помощью яркости Y и двух цветоразностных компонент U и V, определяющих цветность. Цветоразностная компонента образуется путем вычитания из яркостной компоненты красного и зеленого цвета. Обычно используется один байт для каждой компоненты цвета, то есть всего для обозначения цвета используется три байта информации. При этом яркость и сигналы цветности имеют равное число независимых значений. Такая модель имеет обозначение 4:4:4.

Опытным путем было установлено, что человеческий глаз менее чувствителен к цветовым изменениям, чем к яркостным. Без видимой потери качества изображения можно уменьшить количество цветовых оттенков в два раза. Такая модель обозначается как 4:2:2 и принята в телевидении. Для бытового видео допускается еще большее уменьшении размерности цветовых составляющих, до 4:2:0.

Если представить каждый кадр изображения как отдельный рисунок указанного выше размера, то видеоизображение будет занимать очень большой объем, например, одна секунда записи в системе PAL будет занимать 25 Мбайт, а одна минута - уже 1,5 Гбайт. Поэтому на практике используются различные алгоритмы сжатия для уменьшения скорости и объема потока видеоинформации.

Если использовать сжатие без потерь, то самые эффективные алгоритмы позволяют уменьшить поток информации не более чем в два раза. Для более существенного снижения объемов видеоинформации используют сжатие с потерями.

Среди алгоритмов с потерями одним из наиболее известных является MotionJPEG или MJPEG. Приставка Motion говорит, что алгоритм JPEG используется для сжатия не одного, а нескольких кадров. При кодировании видео принято, что качеству VHS соответствует кодирование MJPEG с потоком около 2 Мбит/с, S-VHS - 4 Мбит/с.

Свое развитие алгоритм MJPEG получил в алгоритме DV, который обеспечивает лучшее качество при таком же потоке данных. Это объясняется тем, что алгоритм DV использует более гибкую схему компрессии, основанную на адаптивном подборе коэффициента сжатия для различных кадров видео и различных частей одного кадра. Для малоинформативных частей кадра, например, краев изображения, сжатие увеличивается, а для блоков с большим количеством мелких деталей уменьшается.

Еще одним методом сжатия видеосигнала является MPEG. Поскольку видеосигнал транслируется в реальном времени, то нет возможности обработать все кадры одновременно. В алгоритме MPEG запоминается несколько кадров. Основной принцип состоит в предположении того, что соседние кадры мало отличаются друг от друга. Поэтому можно сохранить один кадр, который называют исходным, а затем сохраняются только изменения от исходного кадра, называемые предсказуемыми кадрами. Считается, что за 10-15 кадров картинка изменится настолько, что необходим новый исходный кадр. В результате при использовании MPEG можно добиться уменьшения объема информации более чем в двести раз, хотя это и приводит к некоторой потере качества. В настоящее время используются алгоритм сжатия MPEG-1, разработанный для хранения видео на компакт-дисках с качеством VHS, MPEG-2, используемый в цифровом, спутниковом телевидении и DVD, а также алгоритм MPEG-4, разработанный для передачи информации по компьютерным сетям и широко используемый в цифровых видеокамерах и для домашнего хранения видеофильмов.

2.2.1 Смешение сигналов

При смешении сигналов основные проблемы возникают с видео-изображением. Различные ТВ-стандарты, существующие в мире (NTSC, PAL, SECAM), применение разных мониторов и видеоконтроллеров диктует разнообразие подходов в разрешении возникающих проблем. Однако в любом случае требуется синхронизация двух изображений, для чего служит устройство генлок (genlock). С его помощью на экране монитора могут быть совмещены изображение, сгенерированное компьютером (анимированная или неподвижная графика, текст, титры), и “живое” видео. Если добавить еще одно устройство -- кодер (encoder), компьютерное изображение может быть преобразовано в форму ТВ-сигнала и записано на видеопленку. "Настольные видео-студии”, являющиеся одним из примеров применения систем мультимедиа, позволяют готовить совмещенные видео-компьютерные клипы, титры для видеофильмов, помогают при монтаже кинофильмов.

Системы такого рода не позволяют как-то обрабатывать или редактировать само аналоговое изображение. Для того, чтобы это стало возможным, его необходимо оцифровать и ввести в память компьютера. Для этого служат так называемые платы захвата (capture board, frame grabbers). Оцифровка аналоговых сигналов порождает огромные массивы данных. Так, кадр стандарта NTSC (525 строк), преобразованный платой типа Truevision, превращается в компьютерное изображение с разрешением 512x482 пиксель. Если каждая точка представлена 8 битами, то для хранения всей картинки требуется около 250 Кбайт памяти, причем падает качество изображения, так как обеспечивается только 256 различных цветов. Считается, что для адекватной передачи исходного изображения требуется 16 млн. оттенков, поэтому используется 24-битовый формат хранения цветной картинки, а необходимый размер памяти возрастает. Оцифрованный кадр может затем быть изменен, отредактирован обычным графическим редактором, могут быть убраны или добавлены детали, изменены цвета, масштабы, добавлены спецэффекты, типа мозаики, инверсии и т.д. Естественно, интерактивная экранная обработка возможна лишь в пределах разрешения, обеспечиваемого данным конкретным видеоадаптером. Обработанные кадры могут быть записаны на диск в каком-либо графическом формате и затем использоваться в качестве реалистического неподвижного фона для компьютерной анимации. Возможна также покадровая обработка исходного изображения и вывод обратно на видеопленку для создания псевдореалистического мультфильма.

2.2.2 Видео форматы

NTSC (от англ. National Television Standards Committee -- Национальный комитет по телевизионным стандартам) -- система аналогового цветного телевидения, разработанная в США. 18 декабря 1953 года впервые в мире было начато цветное телевизионное вещание с применением именно этой системы.

AVI (Audio-Video Interleaved) был разработан корпорацией Microsoft для хранения и воспроизведения видеороликов. Представляет собой контейнер, в котором может быть что угодно, начиная от MPEG1 и заканчивая MPEG4. Он может содержать в себе потоки 4 типов - Video, Audio, MIDI, Text. Причем видеопоток может быть только один, тогда как аудио - несколько. В частности, AVI может содержать и только один поток - либо видео, либо аудио. Сам формат AVI не накладывает совершенно никаких ограничений на тип используемого кодека, ни для видео, ни для аудио - они могут быть любыми. Таким образом, в AVI файлах могут совершенно спокойно сочетаться любые видео- и аудиокодеки.

RealVideo формат, созданный компанией RealNetworks. RealVideo используется для живой телевизионной трансляции в Интернете. Например, телекомпания CNN одной из первых стала вещать в Сети. Обладает небольшим размером файла и самым низким качеством, зато вы, не особенно загружая свой канал связи, сможете посмотреть последний выпуск теленовостей на сайте выбранной вами телекомпании. Расширения RM, RA, RAM.

MPEG-1 - формат сжатия для компакт-дисков (CD-ROM). Качество видео - как у обычного видеомагнитофона, разрешение 352х240, диск с фильмом в таком формате обычно обозначается VCD (VideoCD).

MPEG-2 - формат для DVD-дисков, цифрового телевидения. В этом формате снимают видео DVD-, HDD-, Flash-камеры.

MPEG-4 - это формат, получаемый с помощью известных кодеков DivX, XviD, H.264 и др. Часто его называют просто MP4. Уменьшает видеопоток еще сильнее, чем MPEG-2, но картинка еще приличного качества, поэтому этот формат поддерживает большинство современных DVD-плееров.

MOV - формат Apple Macintosh QuickTime, может содержать кроме видео также графику, анимацию, 3D. Чаще всего для проигрывания этого формата нужен QuickTime Player.

Matroska (Матрёшка, также записывается как Matrцєka) -- проект, нацеленный на создание открытого, гибкого формата мультимедийного контейнера и набора инструментов и библиотек для работы с данными в этом формате. Этот проект является развитием проекта MCF, но значительно отличается тем, что основан на EBML (Extensible Binary Meta Language -- расширяемый двоичный метаязык) -- двоичном аналоге языка XML. Использование EBML позволяет расширять формат без потери совместимости со старыми программами.

Глава III. Разработка программы построения фракталов

Для того, чтобы написать программу, я выбрала четыре наиболее распространенных фрактала: треугольник Серпинского, драконова ломаная, бассейны Ньютона и биоморфы.

Треугольник Серпинского

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

Драконова ломаная.

Драконова ломаная относится к классу самоподобных рекурсивно порождаемых геометрических структур. Ломаная нулевого порядка представляет собой просто прямой угол. Изображение фигуры каждого следующего порядка строится путем рекурсивных замен каждого из отрезков фигуры младшего порядка на два отрезка, сложенных также в виде прямого угла.

При этом каждый первый угол оказывается "вывернутым" наружу, а каждый второй - вовнутрь. Несмотря на внешнюю простоту, построение драконовой ломаной - увлекательная алгоритмическая задачка, решение которой может потребовать определенных мыслительных усилий. На рисунке проиллюстрирован алгоритм построения драконовой ломаной и изображен вполне взрослый "дракон" десятого порядка.

Бассейны Ньютона.

Бассейны Ньютона, фракталы Ньютона - разновидность алгебраических фракталов. Области с фрактальными границами появляются при приближенном нахождении корней нелинейного уравнения алгоритмом Ньютона на комплексной плоскости (для функции действительной переменной метод Ньютона часто называют методом касательных, который, в данном случае, обобщается для комплексной плоскости). Применим метод Ньютона для нахождения нуля функции комплексного переменного, используя процедуру: Zn+1=Zn - f(Zn)/f'(Zn). Выбор начального приближения Z0 представляет особый интерес. Так как функция может иметь несколько нулей, в различных случаях метод может сходится к различным значениям. Однако, что за области обеспечат сходимость к тому или иному корню? Ввиду того, что Ньютон применял свой метод исключительно к полиномам, фракталы, образованные в результате такого применения, обрели название фракталов Ньютона или бассейнов Ньютона.

Биоморфы.

Биоморфы строятся простейшим алгоритмом многократного возведения в квадрат комплексного числа. Каждому комплексному числу соответствует точка на плоскости. Поэтому каждый раз при возведении в квадрат получаются новые комплексные числа, а соответственно и новые точки. Далее возможны три варианта: комплексное число резко растет, резко уменьшается и третий - числа начинает группироваться вокруг некоторой области(первые два варианта не интересны, так как рано или поздно мы перестанем наблюдать изображение). Клиффорд Пикоувер первым заметил схожесть этих группировок с микроорганизмами и дал им упомянутое выше название. Пример построения биоморфа, в указанной ниже программе, получен с помощью итерационных вычислений по формуле: Zn+1=Z9n+C. Внешний вид биоморфа зависит от действительной и мнимой составляющей комплексного числа.

3.1 Описание интерфейса программы

Интерфейс программы (Рис. 1) представляет собой окно, содержащее вкладки переключения фракталов, описание каждого фрактала, и панель построения.

Рис.1 Стартовое окно программы

Переключение между фракталами осуществляется нажатием на соответствующие вкладки (Рис. 2)

Рис.2 Выбор фрактала

Описание фрактала располагается в правой части окна программы. В описание входят краткие сведения о фрактале, а также рассказан ход построения (Рис. 3)

Рис.3 Описание фрактала «Треугольник Серпинского»

Панель построения представляет собой секцию исполняющих и управляющих элементов (Рис. 4)

Панель построения фракталов «Треугольник Серпинского» и «Драконова ломаная»

Панель построения фрактала «Бассейны Ньютона»

Панель построения фрактала «Биоморф»

Рис.4 Панели построения

Рассмотрим подробнее процесс управления построением фрактала «Треугольник Серпинского».

Рис.5 ТреугольникСерпинского

Уровень - это глубина построения фрактала. Построение фрактала определенного уровня осуществляется нажатием кнопки «Нарисовать». Также управлять построением фрактала можно с помощью кнопок «Следующий» и «Предыдущий», которые осуществляют построение фрактала следующего и предыдущего уровня соответственно.

Построение фрактала «Драконова ломаная» осуществляется аналогично треугольнику «Серпинского», но для наглядности при построении драконовой ломаной красным цветом показана ломаная предыдущего уровня. (Рис. 6)

Рис.6 Драконова ломаная. Красным цветом выделен фрактал предыдущего уровня.

Рассмотрим построение фрактала «Бассейны Ньютона»

Построение осуществляется нажатием на кнопку «Нарисовать». Также можно выбрать масштабный коэффициент построения. (Рис. 7)

Рис.7 Бассейны Ньютона. Слева - коэффициент масштабирование равен 20, справа коэффициент равен 4.

Построение фрактала «Биоморфы».

Рис.8 Биоморфы

Построение осуществляется нажатием на кнопку «Нарисовать». Также можно выбрать масштабный коэффициент построения и коэффициенты, влияющие на внешний вид. (Рис. 9)

Рис.9 Биморфы с различными значениями коэффициентов внешнего вида.

3.2 Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Spin, Buttons, ExtCtrls, ComCtrls;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet3: TTabSheet;

Panel1: TPanel;

Panel2: TPanel;

SpinEdit1: TSpinEdit;

Panel6: TPanel;

Image4: TImage;

Panel5: TPanel;

Label8: TLabel;

SpinEdit6: TSpinEdit;

TabSheet4: TTabSheet;

Button1: TButton;

Label6: TLabel;

Label7: TLabel;

SpinEdit8: TSpinEdit;

btn1: TButton;

Button3: TButton;

TabSheet5: TTabSheet;

Image5: TImage;

btn2: TButton;

SpinEdit9: TSpinEdit;

Label9: TLabel;

Label10: TLabel;

Label1: TLabel;

SpinEdit2: TSpinEdit;

SpinEdit3: TSpinEdit;

Image3: TImage;

Image1: TImage;

Image2: TImage;

StaticText1: TStaticText;

StaticText2: TStaticText;

StaticText3: TStaticText;

StaticText4: TStaticText;

Button2: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

procedure Button1Click(Sender: TObject);

procedure btn1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure btn2Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

// объявление глобальных переменных

var

Form1: TForm1;

rnd,x1,x2,x3,y1,y2,y3,FinalUroven:integer;

c:char;

ot:string;

cc,UgolR,UgolL,StartUgol,ConCoef:Real;

implementation

{$R *.dfm}

// Вспомогательная процедура для рисования линии на заданном холсте

procedure Line(x1,y1,x2,y2:real; C:TCanvas);

begin

c.Moveto(round(x1),round(y1));

c.lineto(round(x2),round(y2));

end;

// Процедура построения треугольника Серпинского по заданным параметрам

Procedure Treugolnik_serpinskogo(uroven:integer;x1,y1,x2,y2,x3,y3:real);

var

xd,yd,xe,ye,xf,yf:real;

begin

inc(uroven);

if uroven= FinalUroven then

begin

line(x1,y1,x2,y2, Form1.Image1.Canvas);

line(x2,y2,x3,y3, Form1.Image1.Canvas);

line(x3,y3,x1,y1, Form1.Image1.Canvas);

form1.Image1.Canvas.Refresh;

end

else

begin

xd:=round((x1+x2)/2);

yd:=round((y1+y2)/2);

xe:=round((x2+x3)/2);

ye:=round((y2+y3)/2);

xf:=round((x1+x3)/2);

yf:=round((y1+y3)/2);

Treugolnik_serpinskogo(uroven,x1,y1,xd,yd,xf,yf);

Treugolnik_serpinskogo(uroven,xd,yd,x2,y2,xe,ye);

Treugolnik_serpinskogo(uroven,xf,yf,xe,ye,x3,y3);

end;

end;

// Вызов процедуры построения треугольника Серпинского посредством нажатия на кнопку «Нарисовать»

procedure TForm1.Button3Click(Sender: TObject);

begin

// Заполняем область для рисование белым цветом

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.rectangle(0,0,image1.Width,image1.Height);

// Задаемся начальными точками

x1:=10;

y1:=10;

x2:=320;

y2:=470;

x3:=630;

y3:=10;

image1.Canvas.CleanupInstance;

image1.Canvas.rectangle(0,0,654,472);

if spinedit1.value >0 then

begin

FinalUroven:=Spinedit1.Value;

Treugolnik_serpinskogo(0,x1,y1,x2,y2,x3,y3);

end;

end;

// Вызов процедуры построения треугольника Серпинского высшего уровня посредством нажатия на кнопку «Следующий»

procedure TForm1.Button2Click(Sender: TObject);

begin

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.rectangle(0,0,image1.Width,image1.Height);

x1:=10;

y1:=10;

x2:=320;

y2:=470;

x3:=630;

y3:=10;

image1.Canvas.CleanupInstance;

image1.Canvas.rectangle(0,0,654,472);

if spinedit1.value >0 then

begin

FinalUroven:=Spinedit1.Value +1;

Spinedit1.Value:=FinalUroven;

Treugolnik_serpinskogo(0,x1,y1,x2,y2,x3,y3);

end;

end;

// Вызов процедуры построения треугольника Серпинского низшего уровня посредством нажатия на кнопку «Предыдущий»

procedure TForm1.Button4Click(Sender: TObject);

begin

if spinedit1.value >1 then

begin

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.rectangle(0,0,image1.Width,image1.Height);

x1:=10;

y1:=10;

x2:=320;

y2:=470;

x3:=630;

y3:=10;

image1.Canvas.CleanupInstance;

image1.Canvas.rectangle(0,0,654,472);

FinalUroven:=Spinedit1.Value -1;

Spinedit1.Value:=FinalUroven;

Treugolnik_serpinskogo(0,x1,y1,x2,y2,x3,y3);

end;

end;

// Процедура построения драконовой ломаной.

Procedure Drakonova_lomanaya(uroven:integer;x1,y1,x2,y2:real;n:real);

var

dx,dy,AC,CD,AD,cx,cy:real;

begin

inc(uroven);

if Uroven=FinalUroven then

begin

line(x1,y1,x2,y2, form1.image3.canvas);

end

else begin

cx:=(x2+x1)/2;

cy:=(y2+y1)/2;

AC:=sqrt(sqr(cx-x1)+sqr(cy-y1));

dx:=cx + AC * (cos(n+pi/2));

dy:=cy + AC * (sin(n+pi/2));

Drakonova_lomanaya(uroven,x1,y1,dx,dy,n+45*cc);

Drakonova_lomanaya(uroven,x2,y2,dx,dy,n+90*cc+45*cc);

end;

end;

// Вызов процедуры построения драконовой ломаной посредством нажатия на кнопку «Нарисовать»

procedure TForm1.btn1Click(Sender: TObject);

begin

x1:=145;

y1:=160;

x2:=560;

y2:=160;

cc:=(pi/180);

FinalUroven:=spinedit6.Value;

if FinalUroven > 0 then begin

image3.Canvas.Brush.Color:=clWhite;

image3.Canvas.rectangle(0,0,image3.Width,image3.Height);

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

if FinalUroven > 1 then begin

Image3.Canvas.Pen.Color:=clRed;

FinalUroven:=FinalUroven-1;

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

Image3.Canvas.Pen.Color:=clBlack;

end;

end;

end;

// Вызов процедуры построения драконовой ломаной высшего уровня посредством нажатия на кнопку «Следующий»

procedure TForm1.Button5Click(Sender: TObject);

begin

x1:=145;

y1:=160;

x2:=560;

y2:=160;

cc:=(pi/180);

if FinalUroven > 0 then begin

FinalUroven:=spinedit6.Value+1;

spinedit6.Value:=FinalUroven;

image3.Canvas.Brush.Color:=clWhite;

image3.Canvas.rectangle(0,0,image3.Width,image3.Height);

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

if FinalUroven > 1 then begin

Image3.Canvas.Pen.Color:=clRed;

FinalUroven:=FinalUroven-1;

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

Image3.Canvas.Pen.Color:=clBlack;

end;

end;

end;

// Вызов процедуры построения драконовой ломаной низшего посредством нажатия на кнопку «Предыдущий»

procedure TForm1.Button6Click(Sender: TObject);

begin

x1:=145;

y1:=160;

x2:=560;

y2:=160;

cc:=(pi/180);

if FinalUroven > 1 then begin

FinalUroven:=spinedit6.Value-1;

spinedit6.Value:=FinalUroven;

image3.Canvas.Brush.Color:=clWhite;

image3.Canvas.rectangle(0,0,image3.Width,image3.Height);

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

if FinalUroven > 2 then begin

Image3.Canvas.Pen.Color:=clRed;

FinalUroven:=FinalUroven-1;

Drakonova_lomanaya(0,x1,y1,x2,y2,0);

Image3.Canvas.Pen.Color:=clBlack;

end;

end;

end;

// Процедура построения «бассейнов» Ньютона.

procedure newton(coeff:Real);

Type

TComplex = Record

X : Real;

Y : Real;

End;

Const

iter = 500;

max = 1e+10;

min = 1e-10;

Var

z, t, d : TComplex;

p : Real;

x, y, n : Integer;

gd, gm : Integer;

mx, my : Integer;

Begin

Randomize;

Mx := 656 div 2;

My := 472 div 2;

For y := -my to my do

For x := -mx to mx do Begin

n := 0;

z.x := X*coeff; // Масштабирование фрактала

z.y := Y*coeff;

d := z;

While (sqr(z.x)+sqr(z.y) < max) and (sqr(d.x)+sqr(d.y) > min)

and (n < iter) do Begin

t := z;

p := sqr(sqr(t.x)+sqr(t.y));

z.x := 2/3*t.x + (sqr(t.x)-sqr(t.y))/(3*p);

z.y := 2/3*t.y*(1-t.x/p);

d.x := abs(t.x - z.x);

d.y := abs(t.y - z.y);

Inc(n);

end;

Form1.Image4.Canvas.Pixels[mx + x,my + y] := (16 - (n mod 16))*16;

End;

end;

// Вызов процедуры построения бассейна ньютона посредством нажатия на кнопку «Нарисовать»

procedure TForm1.Button1Click(Sender: TObject);

var coeff:Real;

begin

image4.Canvas.Brush.Color:=clWhite;

image4.Canvas.rectangle(0,0,image4.Width,image4.Height);

Coeff:=spinedit8.value*0.0001 + 0.0007;

newton(coeff);

end;

// Процедура построения биоморфа.

procedure biomorf(var coeff2, coeff3, coeff4:real);

var re,im,re1,im1: Real ;

V,X,Y, gd, gm : Integer;

C: string;

label m1;

// Вспомогательная процедура возведения в куб комплексного числа

procedure KUB ; begin

re1:=re*(re*re-3*im*im) ;

im1:=im*(3*re*re-im*im) ; re:=re1 ; im:=im1 ;

end ;

begin

X:=-328 ;

REPEAT

Y:=-236 ;

REPEAT

V:=0 ;

re:=-1+coeff2*X ; // масштабирование фрактала

im:=0+coeff2*Y ;

REPEAT KUB ;

KUB ;

re:=re-coeff3 ; // изменение внешнего вида

im:=im+coeff4 ;

if re*re > 5 then GOTO m1;

if re*re > 6 then GOTO m1;

V:=V+1 ;

UNTIL V > 10 ;

m1: IF ( abs(re) < 7 ) OR (abs(im) < 3 ) then

Form1.Image5.Canvas.Pixels[X+178,Y+236]:=V*8000

ELSE Form1.Image5.Canvas.Pixels[X+178,Y+236]:=clsilver;

Y:=Y+1 ;

UNTIL Y > 237 ;

X:=X+1 ;

UNTIL X > 478 ;

END;

// Вызов процедуры построения фрактала посредством нажатия на кнопку «Нарисовать»

procedure TForm1.btn2Click(Sender: TObject);

var coeff2, coeff3, coeff4:Real;

begin

image5.Canvas.Brush.Color:=clWhite;

image5.Canvas.rectangle(0,0,image5.Width,image5.Height);

Coeff2:=spinedit9.value*0.0001 + 0.0007;

Coeff3:=spinedit2.value*0.1;

coeff4:=spinedit3.value*0.01;

biomorf(coeff2, coeff3, coeff4);

end;

end.

Программа прилагается на диске.

Заключение

В данной работе были выявлены особенности представления различных видов графической информации, рассмотрены различные цветовые схемы, а также графические форматы. Для создания своей практической части, я остановила свой выбор на одном из видов компьютерной графики.

Кроме этого, в данной дипломной работе были рассмотрены способы представления аудио- и видеоинформации, а так же наиболее распространенные форматы.

Особое внимание было уделено написанию программы, позволяющей наглядно продемонстрировать построение некоторых видов фракталов.

Список литературы

1. «Информатика. Базовый курс». Учебник для Вузов/под ред. С.В. Симоновича, - СПб.: Питер, 2000;

2. Левин А.Ш. «Самоучитель компьютерной графики и звука. 2-е изд». - СПб.: Питер, 20064

3. Борзенко А.Е. , Федоров А.Г. «Мультимедиа для всех». - М.: ТОО фирма "КомпьютерПресс", 1995;

4. В. П. Иванов, А. С. Батраков. «Трёхмерная компьютерная графика» / Под ред. Г. М. Полищука. -- М.: Радио и связь, 1995;

5. Никлаус Вирт - «Алгоритмы + структуры данных = программы». М.: Мир, 1985;

6. Архангельский А.Я. - «Программирование в Delphi. Учебник по классическим версиям Delphi. Учебник по классическим версиям Delphi». Бином-Пресс, 2008;

7. http://ru.wikipedia.org - Свободная энциклопедия;

8. http://delphisourses.ru - Программирование на Delphi;

9. http://fractals.chat.ru - Вселенная фракталов.

Размещено на Allbest.ru


Подобные документы

  • Компьютерная графика - область информатики, занимающаяся проблемами получения различных изображений. Виды компьютерной графики: растровая, векторная, фрактальная. Программы для создания компьютерной анимации, область применения, форматы хранения.

    реферат [29,1 K], добавлен 16.03.2010

  • Представление графических данных. Растровая, векторная и фрактальная виды компьютерной графики. Цвет и цветовые модели: метод кодирования цветовой информации для ее воспроизведения на экране монитора. Основные программы для обработки растровой графики.

    реферат [429,7 K], добавлен 01.08.2010

  • Компьютерная графика как область информатики, занимающаяся проблемами получения различных изображений на компьютере. Области применения компьютерной графики. Двумерная графика: фрактальная, растровая и векторная. Особенности трёхмерной графики.

    реферат [756,4 K], добавлен 05.12.2010

  • Виды и способы представления компьютерной информации в графическом виде. Отличительные особенности растровой и векторной графики. Масштабирование и сжатие изображений. Форматы графических файлов. Основные понятия трехмерной графики. Цветовые модели.

    контрольная работа [343,5 K], добавлен 11.11.2010

  • Виды компьютерной графики. Программные средства для работы с фрактальной графикой. Базовые команды черчения. Основные и дополнительные сервисные команды AutoCAD. Растровая, векторная, фрактальная и трёхмерная графика. Команды редактирования чертежа.

    курсовая работа [41,8 K], добавлен 22.04.2016

  • Основные понятия и задачи, решаемые компьютерной графикой. Характеристика и разновидности компьютерной графики. Цветовые модели RGB, CMYK, HSB. Графические форматы растровых и векторных изображений. Особенности шелкографии, трёхмерная графика и анимация.

    курсовая работа [350,7 K], добавлен 20.02.2012

  • Понятие компьютерной графики. Представление графической информации в компьютере. Графические форматы и редакторы. Характеристика программы, интерфейса. Возможности использования программы CorelDraw. Возможности создания сложных графических изображений.

    дипломная работа [1,1 M], добавлен 04.01.2011

  • Суть принципа точечной графики. Изображения в растровой графике, ее достоинства. Обзор наиболее известных редакторов векторной графики. Средства для работы с текстом. Программы фрактальной графики. Форматы графических файлов. Трехмерная графика (3D).

    дипломная работа [764,7 K], добавлен 16.07.2011

  • Достоинства и недостатки векторной графики, ее применение и основной принцип построения графических объектов. Объектно-ориентированный подход к пакетам векторной или иллюстративной графики. Основные программы, редакторы и форматы векторной графики.

    курсовая работа [129,0 K], добавлен 30.05.2015

  • Механизм графического представления данных. Виды компьютерной графики: фрактальная, трехмерная, растровая, векторная. Разрешение экранного изображения, понятие линиатуры. Связь между параметрами изображения и размером файла. Динамический диапазон.

    реферат [38,6 K], добавлен 27.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.