Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика БЖД / Пример ПЗ.docx
Скачиваний:
42
Добавлен:
11.05.2015
Размер:
82.44 Кб
Скачать
    1. Фильтр видео масштабирования компании Элекард в контексте технологииDirectShow

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

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

  • Быстрый (sharp);

  • Аккуратный (precise);

  • метод Ланцоша (Lanczos) для шести точек.

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

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

  1. Методы масштабирования цифровых изображений, применяемые в фильтре компании элекард

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

    1. Метод Ланцоша

Метод Ланцоша (третьего порядка) относится к числу методов, позволяющих масштабировать цифровые изображения с наилучшим качеством. В настоящее время он применяется во многих популярных графических программах, например ACDSee®,AdobePhotoshop®, GIMPи другие.

Данный метод использует нормированную функцию кардинального синуса sinc(x). В линейном случае формула преобразования по методу Ланцоша имеет вид [4]:

Функция имеет вид [4]:

где обозначает границу фильтра.

Для фильтров Ланцоша порядка 2 и 3, наиболее часто используемых в компьютерной графике, получим функции следующего вида:

Таким образом, полное выражение, описывающее фильтр Ланцоша порядка , принимает вид:

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

Двумерный фильтр Ланцоша в общем виде можно описать выражением [4]:

Точку с координатами (x0,y0) интерполированного изображения можно получить, воспользовавшись следующим выражением [4]:

где и.

Интерполяция производится по квадратному участку изображения размером пикселей.

  1. Способы оптимизации программы на языке си

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

  • выбор оптимального алгоритма;

  • оптимизация имеющейся программной реализации алгоритма;

  • применение технологии SIMD;

  • использование многопоточности.

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

Соседние файлы в папке Практика БЖД