
- •Оптимизация и доработка цифрового фильтра масштабирования видеоданных
- •Содержание
- •Введение
- •Технологияdirectshow
- •Обзор технологии
- •Фильтр видео масштабирования компании Элекард в контексте технологииDirectShow
- •Методы масштабирования цифровых изображений, применяемые в фильтре компании элекард
- •Метод Ланцоша
- •Способы оптимизации программы на языке си
- •Выбор оптимального алгоритма
- •Вычислительная сложность
- •Выбор команд
- •Зависимость по данным и параллелизм команд
- •Оптимизация имеющейся программной реализации алгоритма
- •Оптимизация циклов
- •Оптимизация проверки условий
- •Оптимизация медленных команд
- •Оптимизация работы с памятью
- •ТехнологияSimd
- •Общее описание
- •Основные особенности применения технологии
- •Использование многопоточности
- •Общие принципы многопоточности
- •Способы программной организации многопоточности
- •Основные аспекты оптимизации многопоточности
- •Постановка задачи
- •Ход выполнения практики
- •Заключение
- •Список использованных источников
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизированных систем управления (АСУ)
Оптимизация и доработка цифрового фильтра масштабирования видеоданных
Отчет по преддипломной практике
Студент гр. 437
Марченко В.В.
«___»___________ 201_ г.
Руководитель
Груздев Д.Н.- начальник отдела,
ведущий инженер-программист ЗАО «Элекард-Девайсез», г.Томс
«____»___________ 201_ г.
2012
Введение 4
Содержание
Введение 4
1 ТЕХНОЛОГИЯ DIRECTSHOW7
1.1 Обзор технологии 7
1.2 Фильтр видео масштабирования компании Элекард в контексте технологии DirectShow10
2 МЕТОДЫ МАСШТАБИРОВАНИЯ ЦИФРОВЫХ ИЗОБРАЖЕНИЙ ПРИМЕНЯЕМЫЕ В ФИЛЬТРЕ КОМПАНИИ ЭЛЕКАРД 12
2.1 Метод Ланцоша 12
3 СПОСОБЫ ОПТИМИЗАЦИИ ПРОГРАММЫ НА ЯЗЫКЕ СИ 14
3.1 Выбор оптимального алгоритма 14
3.1.1 Вычислительная сложность 14
3.1.2 Выбор команд 15
3.1.3 Зависимость по данным и параллелизм команд 16
3.2 Оптимизация имеющейся программной реализации алгоритма 18
3.2.1 Оптимизация циклов 18
3.2.2 Оптимизация проверки условий 19
3.2.3 Оптимизация медленных команд 22
3.2.4 Оптимизация работы с памятью 23
3.3 Технология SIMD25
3.3.1 Общее описание 25
3.3.2 Основные особенности применения технологии 27
3.4 Использование многопоточности 30
3.4.1 Общие принципы многопоточности 30
3.4.2 Способы программной организации многопоточности 31
3.4.3 Основные аспекты оптимизации многопоточности 32
4 ПОСТАНОВКА ЗАДАЧИ 34
5 ХОД ВЫПОЛНЕНИЯ ПРАКТИКИ 35
6 ЗАКЛЮЧЕНИЕ 37
Список использованных источников 38
Введение
Со времен первого фильма братьев Люмьер видео начало постепенно внедряться в нашу повседневную жизнь и профессиональную деятельность. В связи с развитием компьютерной техники и информационных технологий способы передачи, хранения и воспроизведения видео также эволюционировали и перешли на цифровую основу.
За последние два десятилетия компьютеры в различных реализациях (персональные компьютеры, ноутбуки, планшетные компьютеры, смартфоны и т.д.) распространились настолько широко, что в 2011 году количество только пользователей Интернета в России составило более 70 миллионов (Лента новостей «РИА Новости». Технологии. http://www.ria.ru/technology/20111226/527204414.html). С увеличением числа пользователей компьютерных устройств и Интернета развитие получило и цифровое видео, и сегодня оно затрагивает уже огромное количество аспектов нашей жизни:
системы наблюдения на объектах;
кинематография;
любительское видео;
телевещание;
видеоконференции;
системы компьютерного зрения.
Исследование перспектив развития телекоммуникаций аналитиками компании CISCO [1] показали, то, что к 2013 году суммарный поток видеоданных составит примерно 90% пользовательского телекоммуникационного трафика, включая видеоконференции, мобильную телефонию и видеонаблюдение.
В настоящее время уже вошло в широкое потребление видео формата DVD, и постепенно развивается уже более высококачественное, так называемоеHDVideo, то есть видеосигнал высокого разрешения.
Это является следствием технологического прогресса. Вычислительные мощности современных компьютеров уже достаточно велики, а скорость соединения через сеть Интернет достаточно высока. Однако даже нынешние компьютерные системы не позволяют работать непосредственно с несжатыми видеоданными повсеместно и необходимо применять кодирование видео. Это позволяет при одной и той же ширине канала связи передать видео более высокого качества, а так же уменьшить объем на жестком диске, требуемый для хранения видео.
Несмотря на имеющиеся достижения в скорости передачи и обработки видеоданных далеко не все пользователи интернета могут смотреть видео в высоком разрешении (1280x720 или больше) из-за недостаточной скорости передачи данных. Дисплеи многих устройств также еще не поддерживают высокое разрешение. В связи с этим встает вопрос о масштабировании разрешения исходной видеопоследовательности до требуемого и приемлемого каждым конкретным пользователем. Кроме того, эффективность в достижении лучшего качества изображения показало и предварительное сжатие видео перед кодированием [2].
Существует множество методов масштабирования цифровых изображений (кадров видеопоследовательности):
метод ближайшего соседа;
метод полиномов Эрмита;
билинейная интерполяция;
бикубическая интерполяция;
интерполяция B-сплайнами;
метод Митчела;
интерполяция catmull-rom-сплайнами;
метод Ланцоша.
Все эти методы реализованы в программах разных производителей.
В рамках производственной практики необходимо детально ознакомиться с DirectShow-фильтром масштабирования видео компании Элекард, проанализировать возможности для оптимизации фильтра и выполнить оптимизацию с целью повышения быстродействия данного фильтра.