Разработка и проектирование мультимедийного приложения

         

Цели, принципы и этапы тестирования.


Тестирование – процесс проверки правильности модели.

Каждому программисту известно, сколько времени и сил уходит на отладку и тестирование программ. На этот этап приходится около 50% общей стоимости разработки мультимедийного программного обеспечения.

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

Основные принципы организации тестирования:

· необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибки в ней;

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

·         по  тем  же  соображениям  организация - разработчик мультимедийного программного обеспечения не должна «единолично» его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);

·         должны являться правилом доскональное изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;

·         необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

·         при анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать; 


·         следует сохранять использованные тесты ( для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);

·         тестирования не должно планироваться исходя из предположения, что в программе не будут обнаружены ошибки (в частности, следует выделять для тестирования достаточные временные и материальные ресурсы);

·         следует учитывать так называемый «принцип скопления ошибок»: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна  числу ошибок, уже обнаруженных в этой части;

·         следует всегда помнить, что тестирование - творческий процесс, а не относиться к нему как к рутинному занятию.

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

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

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



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

·         программа может не соответствовать своей внешней спецификации, что в частности, может привести к тому, что в ее управляющем графе окажутся пропущенными некоторые необходимые пути;

·         не будут обнаружены ошибки, появление которых зависит от обрабатываемых данных (т.е. на одних исходных данных программа работает правильно, а на других - с ошибкой).

Таким образом, ни структурное, ни функциональное тестирование не может быть исчерпывающим.

font-style:italic'>Совместное тестирование модулей.

Известны два подхода к совместному тестированию модулей: пошаговое и монолитное тестирование.

При монолитном тестировании сначала по отдельности тестируются все модули программного комплекса, а затем все они объединяются в рабочую программу для комплексного тестирования.

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

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

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

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


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

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

Поскольку после тестирования главного модуля процесс проверки может продолжаться по-разному, следует придерживаться следующих правил:  

·         модули, содержащие операции ввода-вывода, должны подключаться к тестированию как можно раньше;

·         критические (т.е. наиболее важные) для программы в целом модули также должны тестироваться в первую очередь.

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



Формирование интерфейса с пользователем.


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

Имеется ряд стилей взаимодействий, которые делятся на два основных вида. Первый – это использование интерфейса языка команд - ввод команд текстовыми средствами; и второй – это непосредственное манипулирование. Таким образом, имеется ряд способов,  которыми пользователь мог бы связываться с компьютером:

· языки команд - пользователь управляет системой,  вводя соответствующие команды в тестовом режиме;

·         вопрос и ответ - диалог, где компьютер задает вопросы, а пользователь отвечает ему (или наоборот);

·         формы - пользователь заполняет формы или поля диалога, вводя данные в необходимые поля;

·         меню - пользователь обеспечен рядом опций и управляет системой, выбирая необходимые пункты;

·         прямое манипулирование - пользователь управляет объектами на экране посредством устройства манипулирования, типа мыши. Другой термин, используемый для прямого интерфейса манипулирования - Графический Интерфейс Пользователя.

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

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

 

Основные принципы создания интерфейса:


·         Естественность (интуитивность). Работа с системой не должна вызывать у пользователя сложностей в поиске необходимых директив (элементов интерфейса) для управления процессом решения поставленной задачи.

·         Непротиворечивость. Если в процессе работы с системой пользователем были использованы некоторые приемы работы с некоторой частью системы, то в другой части системы приемы работы должны быть идентичны. Также работа с системой через интерфейс должна соответствовать установленным, привычным нормам (например, использование клавиши Enter).

·         Неизбыточность. Это означает, что пользователь должен вводить только минимальную информацию для работы или управления системой. Например, пользователь не должен вводить незначимые цифры (00010 вместо 10). Аналогично, нельзя требовать от пользователя ввести информацию, которая была предварительно введена или которая может быть автоматически получена из системы. Желательно использовать значения по умолчанию где только возможно, чтобы минимизировать процесс ввода информации.

·         Непосредственный доступ к системе помощи. В процессе работы необходимо, чтобы система обеспечивала пользователя необходимыми инструкциями. Система помощи отвечает трем основным аспектам - качество и количество обеспечиваемых команд; характер сообщений об ошибках и подтверждения того, что система делает. Сообщения об ошибках должны быть полезны и понятны пользователю.

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



Формы


Формы – основной элемент интерфейса. Назначение форм – удобный ввод и просмотр данных, состояния, сообщений мультимедийной системы.

Основные принципы проектирования форм:

· Форма проектируется для более удобного, более понятного и скорейшего достижения  решения поставленной задачи.

·         Размещение информационных единиц на пространстве формы должно соответствовать логике ее будущего использования: это зависит от необходимой последовательности доступа к информационным единицам, частотой их использования, а также от относительной важности элементов.

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

·         Логические группы элементов необходимо отделять пробелами, строками, цветовыми или другими визуальными средствами.

·         Взаимозависимые или связанные элементы должны отображаться в одной форме.

Дизайн заголовков и полей:

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

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

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

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

·         Заголовки должны быть краткими, знакомыми и содержательными.

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



Элементы мультимедийных программ.


Основная проблема мультимедиа — совместная обработка разнородных данных: цифровых и аналоговых, «живого» видео и неподвижных изображений и т.п. В компьютере все дан­ные хранятся в цифровой форме, в то время как теле-, видео- и большин­ство аудиоаппаратуры имеет дело с аналоговым сигналом. Однако выходные устройства компьютера — мониторы и динамики имеют анало­говый выход. Поэтому простейший и наиболее дешевый путь построения первых систем мультимедиа состоял в стыковке разнородной аппаратуры с компьютером, предоставлении компьютеру возможностей управления этими устройствами, совмещении выходных сигналов компьютера и видео- и аудиоустройств и обеспечении их нормальной совместной работы. Даль­нейшее развитие мультимедиа происходит в направлении объедине­ния разнородных типов данных в цифровой форме на одной среде-носителе, в рамках одной системы.

 



Организация системы навигации и системы отображения состояний.


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

font-style:italic'>Общие принципы проектирования.

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

font-style:italic'>Проектирование сообщений.

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

Сообщения могут предложить пользователю:

·         выбрать из предложенных альтернатив некую опцию или набор опций;

·         ввести некоторую информацию;

·         выбрать опцию  из набора опций, которые могут изменяться в зависимости от текущего контекста;

·         подтвердите фрагмент введенной информации перед продолжением ввода.

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

                     



Размещение информации на экране.


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

font-style:italic'>Выделение элементов интерфейса яркостью.

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

·         движение (мигание или изменение позиции). Очень эффективный метод, поскольку глаз имеет специальный детектор для движущихся элементов;

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

·         цвет - использование цвета может быть чрезвычайно эффективно;

·         форма (символ, шрифт, форма символа). Используется для того, чтобы отличить различные категории данных;

·         использование различных алфавитов (шрифтов) в различных формах;

·         размер (текста, символов).
Обычно применяют увеличение выделенного объекта в 1.5 раза;

·         оттенение (различная текстура объектов). Эффективный метод для привлечения внимания к какой-либо части экрана;

·         окружение (подчеркивание, рамки, инвертированное изображение). Очень эффективный метод если не переусердствовать;

font-style:italic'> 

font-style:italic'>Использование цвета при проектировании эргономичного интерфейса.

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

·         группировки информации;

·         выделения различий между информацией;

·         выделения простых сообщений (ошибки, состояния и т.д.)

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

Приведем некоторые принципы использования цвета, которыми нужно руководствоваться при проектировании эргономичного интерфейса:

·         необходимо ограничить число цветов до 4 на экране и до 7 для последовательности экранов; для неактивных элементов нужно использовать бледные цвета;

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

·         для отображения состояния: красный = опасность/стоп, зеленый = нормально/продолжение работы, желтый  =  предостережение;



·         для привлечения внимания наиболее эффективны белый, желтый и красный цвета;

·         для упорядочения данных можно использовать спектр 7 цветов (радуга);

·         для разделения данных необходимо выбрать цвета из различных частей спектра (красный / зеленый, синий / желтый, любой цвет / белый);

·         для группировки данных, объединения и подобия нужно использовать цвета, которые являются соседями в спектре (оранжевые / желтые, синие / фиолетовые);

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

font-style:italic'>Непротиворечивость и стандартизация.

Данные на экране следует располагать таким образом, чтобы пользователь знал, где найти и где ожидать вывода необходимой информации:

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

·         информация, которая необходима не очень часто (например средства справки) не должна отображаться, но должна быть доступна, когда потребуется. Например, иконка Справки или соответствующая опция меню должна быть доступна на каждом экране;

·         менее срочная или менее необходимая информация не должна все время находится перед пользователем, но должна быть доступна, когда понадобится;

·         отчеты и ссылки должны быть сгруппированы.

font-style:italic'>Тексты и диалоги.

Приведем некоторые принципы, которыми необходимо руководствоваться при создании текстовых диалогов и отображений:

·         текст в нижнем регистре читается приблизительно на 13%  быстрее, чем текст, который напечатан полностью в верхнем регистре;

·         символы верхнего регистра наиболее эффективны для информации, которая должна привлечь внимание. НЕ ИСПОЛЬЗУЙТЕ ВЕРХНИЙ РЕГИСТР, ЕСЛИ ВЫ НЕ ХОТИТЕ ВЫДЕЛЯТЬ КАКУЮ-ЛИБО ИНФОРМАЦИЮ;

·         выровненный по правому краю текст труднее читать, чем равномерно распределенный текст с невыровненным правым полем;

·         оптимальный интервал между строками равен или немного больше, чем высота символов.

 



Средства управления графического интерфейса пользователя.


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

Кнопки используются, чтобы выбрать опцию или вызвать событие (например, запуск подпрограммы).

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

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

Метки и текстовые блоки используются для текстовой информации. Различие между ними -  текстовые поля, позволяют пользователю вводить текстовые данные в поля, в то время как метки - поля нередактируемые, используемые только для отображения текста, типа подсказок, команд пользователя и т.д.

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

 

font-style:italic'>Изображения (Иконки).

В интерфейсе непосредственного манипулирования, пользователи выполняют действия непосредственно на видимых объектах. Этими объектами могут быть кнопки, метки, меню или изображения (иконки).

Все иконки можно классифицировать согласно тому, насколько точно они отображают несущую функцию:

·         иконки подобия - иконки похожи на объекты, которые они отображают (типа ножниц, чтобы отобразить операцию «вырезки»);

·         иконки по образцу – представляют пример типа объекта (например иконкой, показывающей линию, чтобы представить средство рисования);


·         символические иконки - используются, чтобы представить действие или состояние в символической форме (например, разорванная линия между двумя компьютерами для того, чтобы показать разорванное сетевое соединение);

·         произвольные иконки - не несут никакой информации по поводу их представления, поэтому их назначение должно быть описано (например, обратная круговая стрелка, чтобы представить действие «отмена последней команды»).

font-style:italic'>Меню.

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

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

font-style:italic'>Основные принципы создания меню.

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

·         Алфавитный.



·         Категорийный.

·         В соответствии с нормальными соглашениями.

·         В соответствии с частотой использования.

Принципы проектирования меню:

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

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

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



Видеоданные.


При смешении сигналов основные проблемы возникают с видеоизоб­ражением. Различные ТВ–стандарты, существующие в мире (NTSC, PAL, SE­CAM), применение разных мониторов и видеоконтроллеров диктует разнообразие подходов в разрешении возникающих проблем. Однако в лю­бом случае требуется синхронизация двух изображений, для чего служит устройство генлок (genlock). С его помощью на экране монитора могут быть совмещены изображение, сгенерированное компьютером (анимированная или неподвижная графика, текст, титры), и «живое» видео. Если добавить еще одно устройство — кодер (encoder), компьютерное изо­бражение может быть преобразовано в форму ТВ–сигнала и записано на ви­деопленку. «Настольные видеостудии», являющиеся одним из примеров применения систем мультимедиа, позволяют готовить совмещенные видео–компьютерные клипы, титры для видеофильмов, помогают при монтаже кинофильмов.

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

Запись последовательности кадров в цифровом виде требует от компьютера больших объемов внешней памяти: частота кадров в американском ТВ–стандарте NTSC — 30 кадров/с (PAL, SECAM — 25 кадров/с), так что для запоминания одной секунды полноцветного полноэкранного видео требуется 20–30 Мбайт, а оптический диск емкостью 600 Мбайт вместит менее полминуты изображения. Но последовательность кадров недостаточно только запомнить, ее надо еще вывести на экран в соответствующем темпе. Подобной скоростью передачи информации — около 30 Мбайт/с — не обладает ни одно из существующих внешних запоминающих устройств. Чтобы выводить на экран компьютера оцифрованное видео, приходится идти на уменьшение объема передаваемых данных, (вывод уменьшенного изображения в небольшом окне, снижение частоты кадровой развертки до 10–15 кадров/с, уменьшение числа бит/пиксель), что, в свою очередь приводит к ухудшению качества изображения.

Более радикально обе проблемы — памяти и пропускной способности — решаются с помощью методов сжатия/развертки данных, которые позволяют сжимать информацию перед записью на внешнее устройство, а затем считывать и разворачивать в реальном режиме времени при выводе на экран. Так, для движущихся видеоизображений существующие адаптивные разностные алгоритмы могут сжимать данные с коэффициентом порядка 100:1— 160:1, что позволяет разместить на CD–ROM около часа полноценного озвученного видео. Работа этих алгоритмов основана на том, что обычно последующий кадр отличается от предыдущего лишь некоторыми деталями, поэтому, взяв какой–то кадр за базовый, для следующих можно хранить только относительные изменения.


При значительных изменениях кадра, например, при монтажной склейке, наезде или панорамировании камеры, автоматически выбирается новый базовый кадр. Для статических изображений коэффициент сжатия, естественно, ниже — порядка 20–30:1. Для аудиоданных применяют свои методы компрессии.

В настоящее время целый ряд фирм активно ведет разработку алгоритмов сжатия видеоинформации, стремясь достичь коэффициента сжатия порядка 200:1 и выше. В основе наиболее эффективных алгоритмов лежат различные адаптивные варианты: DCT (Discrete Cosine Transform, дискретное косинус–преобразование), DPCM (Differential Pulse Code Modulation, разностная импульсно–кодовая модуляция), а также фрактальные методы. Алгоритмы реализуются аппаратно — в виде специальных микросхем, или “firmware” — записанной в ПЗУ программы, либо чисто программно.

При использовании специальных видеоадаптеров (видеобластеров)  мультимедиа–ПК становятся центром бытовой видеосистемы, конкурирующей с самым совершенным телевизором.

Новейшие видеоадаптеры имеют средства связи с источниками телевизионных сигналов и встроенные системы захвата кадра (компрессии/декомпрессии видеосигналов) в реальном масштабе времени, т.е. практически мгновенно. Видеоадаптеры имеют быструю видеопамять от 2 до 64 Мбайт и специальные графические ускорители процессоры. Это позволяет получать до 30–50 кадров в секунду и обеспечить вывод подвижных полноэкранных изображений.



В настоящее время разработке мультимедийных



            В настоящее время разработке мультимедийных продуктов уделяется много внимания, особенно, если речь идет о создании компьютерных энциклопедий, электронных учебников, развлекательных и познавательных программ и т.д. Что же такое мультимедийный продукт? Во-первых – это программный продукт, обязательно предоставляющий пользователю интерактивный, то есть диалоговый, режим работы, который предполагает обмен командами и ответами между человеком и компьютером. Во-вторых, это среда, где используются разнообразные видео- и аудиоэффекты.
            Мультимедийный продукт – интерактивная компьютерная разработка, в состав которой могут входить музыкальное сопровождение, видеоклипы, анимация, галереи картин и слайдов, различные базы данных и т.д.            Мультимедиа-это сумма технологий, позволяющих компьютеру вводить, обрабатывать, хранить, передавать и отображать (выводить) такие типы данных, как текст, графика, анимация, оцифрованные неподвижные изображения, видео, звук, речь.
            Мультимедийные продукты можно разделить на:
·         энциклопедии;
·         обучающие программы;
·         развивающие программы;
·         программы для детей;
·         игры.
Несомненным достоинством и особенностью технологии являются следующие возможности мультимедиа, которые активно используются в представлении информации:
·         возможность хранения большого объема самой разной информации на одном носителе (до 20 томов авторского текста, около 2000 и более высококачественных изображений, 30-45 минут видеозаписи, до 7 часов звука);
·         возможность увеличения (детализации) на экране изображения или его наиболее интересных фрагментов, иногда в двадцатикратном увеличении (режим «лупа») при сохранении качества изображения.
Это особенно важно для презентации произведений искусства и уникальных исторических документов;
·         возможность сравнения изображения и обработки его разнообразными программными средствами с научно- исследовательскими или познавательными целями;
·         возможность выделения в сопровождающем изображение текстовом или другом визуальном материале «горячих слов (областей)», по которым осуществляется немедленное получение справочной или любой другой пояснительной (в том числе визуальной) информации (технологии гипертекста и гипермедиа);
·         возможность осуществления непрерывного музыкального или любого другого аудиосопровождения, соответствующего статичному или динамичному визуальному ряду;
·         возможность использования видеофрагментов из фильмов, видеозаписей и т.д., функции «стоп-кадра», покадрового «пролистывания» видеозаписи;
·         возможность включения в содержание диска баз данных, методик обработки образов, анимации (к примеру, сопровождение рассказа о композиции картины графической анимационной демонстрацией геометрических построений ее композиции) и т.д.;
·         возможность подключения к глобальной сети Internet;
·         возможность работы с различными приложениями (текстовыми, графическими и звуковыми редакторами, картографической информацией);
·         возможность создания собственных «галерей» (выборок) из представляемой в продукте информации (режим «карман» или «мои пометки»);
·         возможность «запоминания пройденного пути» и создания «закладок» на заинтересовавшей экранной «странице»;
·         возможность автоматического просмотра всего содержания продукта («слайд-шоу») или создания анимированного и озвученного «путеводителя-гида» по продукту («говорящей и показывающей инструкции пользователя»); включение в состав продукта игровых компонентов с информационными составляющими;
·         возможность «свободной» навигации по информации и выхода в основное меню (укрупненное содержание), на полное оглавление или вовсе из программы в любой точке продукта.