2. Only for
Maxus
Содержание доклада
Введение
Обзор архитектуры графического
оборудования
Использование на практике
Мои цели и задачи
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
2
3. Only for
Maxus
Введение
“A Survey of General-Purpose Computation on Graphics
Hardware”, John D. Owens, David Luebke, Naga Govindaraju,
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Computer Graphics Forum, 2007
3
4. Only for
Maxus
Введение
Чем обусловлено преимущество?
• до 160(ATI)/240(NVIDIA)
программируемых процессоров
• высокая степень распараллеливания
• наличие специфических операций
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
4
5. Only for
Maxus
Содержание доклада
Введение
Обзор средств программирования
и архитектуры GPU
Использование на практике
Мои цели и задачи
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
5
6. Only for
Maxus
Архитектура GPU
Вершинный Сборка Растеризация
процессор примитивов
Видео Видеопамять
Фильтр Тесты
Фрагментный
процессор
Текстуры
CPU GPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
6
7. Only for
Maxus Перенос задачи на
GPU
Основные концепции:
Массив данных – текстура
Вычисления – шейдерная программа
Запуск вычислений – рисование в
буфер кадров
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
7
8. Only for
Maxus
Вершинный процессор
• На вход – вершины с атрибуты
• Добавление, изменение аттрибутов
• На последнем оборудовании - медленный
доступ к текстурам
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
8
9. Only for
Maxus
Сборка
• На вход - преобразованные вершины и
информацию о их связях
• Формирование фигур
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
9
10. Only for
Maxus
Растеризация
• Формирует фрагменты и координаты
конечных пикселей
• Интерполирует атрибуты вершин
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
10
11. Only for
Maxus
Тесты
• Тест глубины
• Тест по шаблону
• Позволяют разбить или избежать
ненужных вычислений
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
11
12. Only for
Maxus Фрагментный
процессор
• На вход - пиксель с атрибутами
• Формирование цвета
• Одновременное вычисление нескольких
наборов данных
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
12
13. Only for
Maxus
Видеопамять
• Текстура – место хранения промежуточных
и конечных результатов вычислений
• Параметры текстуры:
• Texture target
• Texture format
• Render target
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
13
14. Вычисления в несколько
Only for
Maxus
проходов
Используется метод пинг-понга
Вывод Текстура 1 Текстура 2
Применение:
редукция
вычисление сложных алгоритмов
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
14
16. Only for
Maxus Обзор средств
программирования
ARB
High level languages
HLSLCg
GLSL
other – Brook+, Lib Sh…
CUDA, AMD Stream
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
16
17. Only for
Maxus
ARB
• Ассемблерный язык
• Не поддерживает контроль программы
• Используется для совместимости на
низком уровне
!!ARBfp1.0
TEMP color;
MUL color, fragment.texcoord[0].y
, 2.0;
ADD color, 1.0, -color;
ABS color, color;
ADD result.color, 1.0, -color;
MOV result.color.a, 1.0;
END
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
17
18. Only for
Maxus
HLSL
• С-подобный язык программирования
• Пользовательские функции
• Типы данных – bool, fixed, half
• Работает под DirectX начиная с
версии 9.0
void main( in v2p IN, out p2f OUT )
{
float4 color = tex2D(tex0, IN.Texcoord0);
OUT.Color = brightness * IN.Color * color; }
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
18
19. Only for
Maxus
Cg
• Практически идентичен HLSL
• Работает через OpenGL или DirectX
• Расширение структур
• Использование профайлов
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
19
20. Only for
Maxus
GLSL
• С-подобный язык программирования
• Часть спецификации OpenGL 2.0
• Некоторые отличия от HLSL в
производительности
varying vec2 texture_coordinate;
uniform sampler2D my_color_texture;
void main()
{
gl_FragColor = texture2D(my_color_texture,
texture_coordinate); }
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
20
21. Only for
Maxus
CUDA
• Расширение языка С
• Не требует знания архитектуры
видеокарты
• Доступен только на последнем
оборудовании NVIDIA
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
21
22. Only for
Maxus
AMD Stream
• Расширение языка Brook
• SDK содержит оптимизированные
библиотеки основных функций для ATI
• Поддерживает OpenCL
• Совместим только с потоковыми GPU
ATI
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
22
23. Only for
Maxus
Обзор средств
программирования
Доступ к Набор Поддержка Абстракция
данным инструкций GPU
ARB текстура суженный практически все на уровне
языка
GLSL текстура полный зависит от на уровне
версии шейдеров шейдера
Cg текстура полный зависит от на уровне
(HLSL) версии шейдеров шейдера
CUDA прямой доступ С-подобный NVidia (ATI) на уровне
(AMD (Brook+) последних основной
Stream) поколений программы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
23
24. Only for
Maxus
Содержание доклада
Введение
Обзор архитектуры графического
оборудования
Использование на практике
Мои цели и задачи
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
24
25. Only for
Maxus
GPU-KLT feature tracking
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
25
26. Only for
Maxus
Необходимые вычисления
цель – нахождение смещения d с целью
минимизации ошибки r
x – текущая точка
d - смещение
I - изображение
- вектор градиента
изображения в т. х
нахождение точек интереса
“Feature Tracking and Matching in Video Using Programmable
Graphics Hardware” Sudipta N. Sinha, Jan-Michael Frahm, Marc
Pollefeys, Yakup Genc 26
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Machine Vision and Applications, July 2006
submitted to
27. Only for
Maxus
Необходимые вычисления
трекинг реализуется решением уравнения
G – градиент в точке х, представляется в
симметрическом виде:
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
27
28. Only for
Maxus
GPU-KLT feature tracking
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
28
29. Only for
Maxus
Build-Pyramid
Используемые данные :
2 входных изображения
набор текстур для пирамиды формата
RGBA
Размытие для градиента
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
29
30. Only for
Maxus
Track
Используемые данные:
набор текстур для представления точек
кол-во итераций * макс. * кол-во уровней
кол-во точек
I(x0, y0, x1, y1)
временные текстуры для решения
уравнения
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
30
31. Only for
Maxus
Track
4 прохода :
интерполяция яркости и градиента вокруг
каждой следующей точки (7х7)
вычисление матрицы А и вектора b
решение уравнения
после каждой итерации проверка и
выгрузка результатов в следующую
строку текстуры
выгрузка на CPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
31
32. Only for
Maxus
GPU-KLT feature tracking
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
32
33. Only for
Maxus
Feature re-select
использование ранней фильтрации для
определения шаблона поиска
2 прохода
вычисление элементов матрицы окна 7х7
подсчет минимального хар. значения
результат – 8битовая текстура
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
33
34. Only for
Maxus
Feature re-select
фильтрация алгоритмом подавления в
точках отсутствия максимума
void main(uniform sampler2D src_tex : TEXUNIT0,
float2 st0 : TEXCOORD0,
uniform float2 ds,
out float4 color : COLOR)
{
float maxCornerness = pack_4ubyte(tex2D(src_tex, st0));
…
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
34
35. Only for
Maxus
Feature re-select
for (int i = -MIN_DIST; i < 0; ++i)
{
float cornerness = abs(pack_4ubyte(tex2D(src_tex, st0 + i*ds)));
maxCornerness = (cornerness >= abs(maxCornerness)) ?
(-cornerness) : maxCornerness;
}
…
color = unpack_4ubyte(maxCornerness);
}
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
35
36. Only for
Maxus
Feature re-select
результат выгружается на CPU
CPU
feature list
сортировка и добавление лучших точек
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
36
37. Only for
Maxus
GPU-KLT feature tracking:
производительность
Real-time обработка видео 1024х768 – 30fps
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
37
38. Only for
Maxus
Fast and efficient dense
variational stereo on GPU
Цель – построение 3D модели по 2-м
изображениям
Увеличение точности за счет 3-ей камеры
Построение видео 3D модели
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
38
39. Only for
Maxus
Fast and efficient dense
variational stereo on GPU
Цель – построение 3D модели по стерео-изображению
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
39
40. Only for
Maxus
Необходимые вычисления
1) Подсчет энергии:
S – 3D модель
Т – отдельный
треугольник
I – изображение
П(m) – проекция
точки m на фигуру
A – площадь тр-ка
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
40
41. Only for
Maxus
Необходимые вычисления
2) Подсчет градиента:
М – точка
V(M) – ее соседи
d – расстояние до камеры
сводится к вычислению величины
“Fast and efficient dense variational stereo on GPU”
Julien Mairal, Renaud Keriven and Alexandre Chariot
Proceedings of the Third International Symposium on 3D Data 41
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video Visualization, and Transmission (3DPVT'06)
Processing,
42. Only for
Maxus
Алгоритм на GPU
Вычисление градиента:
После прямого вычисления :
i = 1, 2; k = 1,2,3;
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
42
43. Only for
Maxus
Алгоритм на GPU
Шаг 2 Шаг 3
Шаг 1 Шаг 4
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
43
44. Only for
Maxus
Fast and efficient dense
variational stereo on GPU
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
44
45. Only for
Maxus
Две камеры - неточности
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
45
46. Only for
Maxus
Три камеры
Классификация треугольников
Отбрасывание невидимых частей
Принцип ближнего
Последовательный просчет модели
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
46
47. Only for
Maxus
Три камеры
2 3
4
1
7 6
5
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
47
48. Only for
Maxus
Результаты
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
48
49. Only for
Maxus
Содержание доклада
Введение
Обзор архитектуры графического
оборудования
Использование на практике
Мои цели и задачи
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
49
50. Only for
Maxus
Список литературы
“A Survey of General-Purpose Computation on Graphics Hardware”, John D. Owens,
David Luebke, Naga Govindaraju, Computer Graphics Forum, 2007
“Feature Tracking and Matching in Video Using Programmable Graphics Hardware”
Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, Yakup Genc, submitted to Machine
Vision and Applications, July 2006
“Fast and efficient dense variational stereo on GPU”, Julien Mairal, Renaud Keriven and
Alexandre Chariot, Proceedings of the Third International Symposium on 3D Data
Processing, Visualization, and Transmission (3DPVT'06)
“High-Level GPU Programming, Domain-specific optimization and inference” Calle
Lejdfors, Doctoral dissertation, Department of Computer Science, Lund University, 2008
“The GPU and Graphic Algorithms” , Ivo Hanak, State of the Art and Concept of PhD
Thesis, 2005
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
50
51. Лаборатория компьютерной
Only for
Maxus
графики и мультимедиа
Видеогруппа это:
Выпускники в аспирантурах Англии,
Франции, Швейцарии (в России в МГУ и
ИПМ им. Келдыша)
Выпускниками защищено 5 диссертаций
Наиболее популярные в мире сравнения
видеокодеков
Более 3 миллионов скачанных фильтров
обработки видео
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video
51