Создание публичного облака (VMware vCloud)areconsterПрезентация Родиона Тульского, ведущего консультанта по решениям VMware, по вопросам создания публичного облака на платформе vCloud и других продуктов VMware
Особенности лицензирования инфраструктурных решений VMwareareconsterПрезентация на русском языке по лицензированию инфраструктурных решений VMware vSphere 5
Облачные вычисления на основе VMwareSkillFactoryЕвгений Киселев – эксперт по решениям VMware и инструктор авторизованных курсов – о том, как использовать самые популярные продукты VMware: платформу для серверной виртуализации vSphere 5.1, решения VMware Horizon View 5.2 и VMware Cloud Director 5.1.
Облачные вычисления на основе VMwareSkillFactoryЕвгений Киселев – эксперт по решениям VMware и инструктор авторизованных курсов – о том, как использовать самые популярные продукты VMware: платформу для серверной виртуализации vSphere 5.1, решения VMware Horizon View 5.2 и VMware Cloud Director 5.1.
Soft layer IBM Cloud platform and GPUEkaterina ShelestПрезентация IBM на бизнес-завтраке "Применение публичных облачных сервисов IBM для задач виртуализации и вычислений с помощью решений NVIDIA"
Методы повышения визуального качества восстановленного фонаMSU GML VideoGroup
Декодирование видео на GPU
1. Декодирование видео на
современных видеокартах
Арсаев Марат
Video Group
CS MSU Graphics & Media Lab
19.05.2010
2. Only for
Maxus
Содержание
Введение
Интерфейсы обработки видео
Аппаратная поддержка
Декодирование на CUDA
Выводы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
2
3. Only for
Maxus
Кодирование видео
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
3
4. Only for
Maxus
Содержание
Введение
Интерфейсы обработки видео
Microsoft DirectX Video Acceleration
Аналоги для Linux
Аппаратная поддержка
Декодирование на CUDA
Выводы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
4
5. Only for
Maxus
Microsoft DirectX Video
Acceleration
5
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ http://vistastyles.org/
6. Only for
Maxus
Microsoft DirectX Video
Acceleration: MPC-HС
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
6
7. Only for
Maxus
Microsoft DirectX Video
Acceleration: MPC-HС
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
7
8. Only for
Maxus Microsoft DirectX Video
Acceleration
Состоит из Device Driver Interface:
Motion Compensation DDI (decoder DDI)
ProcAmp DDI (post-processing DDI)
Deinterlacing DDI
COPP DDI (security DDI)
Вышла в декабре 2002 года.
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
8
9. Only for
Maxus Microsoft DirectX Video
Acceleration
Для того чтобы DXVA заработал, необходимо:
Программный декодер с необходимыми
DXVA вызовами
Системный DXVA-драйвер (входит в DirectX)
Видео драйвер, поддерживающий
запрашиваемые вызовы
Видеокарту с аппаратной поддержкой
требуемых функций
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
9
10. Only for
Maxus
Поток данных DirectShow
Фильтр
Программный
источника
декодер
потока
Рендерер
Видеодрайвер
(VMREMR)
Дополнительный
источник
DXVA работает тут
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
10
11. Only for
Maxus
Decoder DDI
Поддерживаемые стандарты: MPEG-1, MPEG-2,
MPEG-4, H.263, H.264, VC-1
Будут ускорены аппаратно только те части
декодирования, которые мы сконфигурируем
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
11
12. Only for
Maxus
Deinterlace DDI
Доступные алгоритмы деинтерлейсинга:
Bob (line doubling)
Simple Switching Adaptive
Motion Vector Steered
Advanced 3D Adaptive
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
12
13. Only for
Maxus
Deinterlace DDI
None Bob
ATI Vector Adaptive
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
13
14. Only for
Maxus
Deinterlace DDI
Доступные алгоритмы преобразования
частоты кадров:
Frame Repeat/Drop
Linear Temporal Interpolation
Motion Vector Steered
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
14
15. Only for
Maxus
ProcAmp DDI
Предоставляет возможность улучшить
визуальное качество
Предоставляет возможность автоматической
регулировки параметров видеокартой
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
15
16. Only for
Maxus
Использование Microsoft DXVA
Работа с DXVA идет через фильтры DirectShow
и состоит из следующих шагов:
Запрос возможностей устройства
(от определенного типа видео)
Подготовка рендерера
Выделение буферов в видеопамяти
Выполнение
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
16
17. Only for
Maxus
Microsoft DXVA 2.0
Доступен, начиная с DirectX 10 (2006 год)
Новый интерфейс – Capture DDI
Позволяет обходить ограничения на
DirectShow pipeline
Использует Enhanced Video Renderer (EVR)
Дополнительный стандарт – DXVA-HD
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
17
18. Only for
Maxus
Microsoft DXVA: резюме
+ Хорошо описанный интерфейс с множеством
форматов
+ Активная поддержка со стороны
производителей железа и ПО (Adobe Flash,
CoreAVC, ffdshow, Media Player Classic, и т.д.)
- Довольно сложное программирование
- Привязан к Microsoft DirectX
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
18
19. Only for
Maxus
Содержание
Введение
Интерфейсы обработки видео
Microsoft DirectX Video Acceleration
Аналоги для Linux
Аппаратная поддержка
Декодирование на CUDA
Выводы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
19
20. Only for
Maxus
Иерархия расширений
X Window System
X-Video Motion
X-Video extension Video
Compensation
Acceleration
API (libVA)
VDPAU (Video Decode and X-Video Bitstream
Presentation API for Unix) Acceleration (XvBA)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
20
21. Only for
Maxus
X-Video extension
Расширение отвечает за проигрывание и
вывод видео в системе X Window (c 1991 года)
Поддержка framebuffer object
Возможность вывода на удаленный
X Window сервер
Возможность аппаратного линейного
скейлинга, конвертирования форматов
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
21
22. Only for
Maxus
X-Video Motion
Compensation
Частичное добавление аппаратного
декодирования для MPEG-1, MPEG-2, MPEG-4:
Motion compensation
iDCT
Variable Length Encoding (VLD)
Поддержка множества видеокарт – NVIDIA, VIA,
Intel, S3 с 2002 года. ATI сделали поддержку
совсем недавно
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
22
23. Only for
Maxus
X-Video Motion
Compensation
XvMCContext
Video Pipeline
StreamInput
XvPort XvMCSurfaces Rendering
XvMCSubpictures
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
23
24. Only for
Maxus
Video Acceleration API
Создана для замещения XvMC c использованием
последних возможностей GPU
Возможности:
Motion compensation
iDCT (+ Modified iDCT)
In-loop Deblocking filter
Intra-frame prediction
Обратное квантование
Variable Length Decoding
Пространственно-временной деинтерлейсинг
Context-adaptive binary arithmetic coding / Context-adaptive variable-length
coding
Для видео в формате MPEG-2, H.264, VC-1
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
24
25. Only for
Maxus
Video Acceleration API
Поддерживается обмен
данными с X Window
сервером через Direct
Rendering Infrastructure
Благодаря удобному
интерфейсу и
расширенным
возможностям получил
развитие от NVIDIA и ATI
25
http://www.freedesktop.org/wiki/Software/vaapi
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
26. Only for
Maxus Video Acceleration API:
Compiz
26
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ http://www.compiz.org/
27. Only for
Maxus Video Decode and
Presentation API for Unix
Открытая библиотека (libvdpau) - back-end
VAAPI от Nvidia (2007 год)
Распространяется и в виде библиотеки,
отдельной от драйверов
Поддерживается некоторыми видеокартами S3
Три поколения с наращиваемым
функционалом
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
27
28. Only for
Maxus Video Decode and
Presentation API for Unix
Реализует MC, iDCT, VLD, Deblocking,
Deinterlacing для стандартов
MPEG-1
MPEG-2
MPEG-4
H.264
VC-1
Во второе поколение в стандарт добавлены
подавление шума и шарпен 28
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
29. Only for
Maxus
X-Video Bitstream Acceleration
Back-end для VAAPI от ATI (2009 год)
Поддержка MPEG-2, H.264, VC-1
Поддержка для ограниченного набора GPU
(начиная с 4xxx)
Поддержка базовых операций:
Motion compensation
iDCT
VLD
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
29
30. Only for
Maxus
Сравнение декодеров
Supported formats Supported operation
DXVA MPEG, H.264, VC-1 basic, FRC, DI, CE, IQ, encryption
Xv - rescaling, format conversion
XvMC MPEG, H.264 basic, DI
VA API MPEG, H.264, VC-1 basic, DI, FRC, IQ
VDPAU MPEG, H.264, VC-1 basic, DI, denoising, sharpen
XvBA H.264, VC-1 basic, DI
basic – Bit stream decoding
FRC – Frame Rate Conversion
CE – Color Enhancement
DI – deinterlacing
IQ – inverted quantization
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
30
31. Only for
Maxus
Содержание
Введение
Интерфейсы обработки видео
Аппаратная поддержка
Nvidia PureVideo
ATI AVIVO & Unified Video Decoder
Декодирование на CUDA
Выводы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
31
32. Only for
Maxus
Nvidia PureVideo
Помогает в декодировании и
пост-обработке видео
Доступна c GeForce 6xxx
Технология используется практически во
всех программных DVD/HD-плеерах
Продается отдельный DirectShow декодер –
Nvidia PureVideo Decoder
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
32
33. Only for
Maxus
Nvidia PureVideo 1st gen
Опубликован для видеокарт серии 6ххх (2004
год):
использовался VMR9
улучшено визуальное качество деинтерлейсинга и
рескейлинга
использовался в части MPEG-1/MPEG-2 decoding pipeline
начиная с 6600 (2005 год) – полная акселерация
MPEG-1/MPEG-2 decoding pipeline,
ограниченная поддержка VC-1 и H.264
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
33
34. Only for
Maxus
Nvidia PureVideo 2nd gen HD
Начиная с видеокарт серии 8ххх (2007):
переделанный H.264 pipeline полностью на GPU
большая часть декодера VC-1 на GPU
технология позволяла среднему компьютеру
проигрывать HD-DVD и Blu-ray фильмы без задержек
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
34
35. Only for
Maxus
Nvidia PureVideo 3rd gen HD
На некоторых картах 8-ой и 9-ой серий (2008):
полностью поддеживаемый декодинг VC-1
минорные изменения в декодировании MPEG-2
соответствует поддержке Video Decode and
Presentation API for Unix feature set B
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
35
36. Only for
Maxus
Nvidia PureVideo 4th gen HD
На картах 3хх и некоторых 2хх (2009):
полная поддержка декодировании MPEG-4 ASP
высококачественный рескейлер
снятие ограничений для H.264
cоответствует поддержке Video Decode and
Presentation API for Unix feature set С
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
36
37. Only for
Maxus
Содержание
Введение
Интерфейсы обработки видео
Аппаратная поддержка
Nvidia PureVideo
ATI AVIVO & Unified Video Decoder
Декодирование на CUDA
Выводы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
37
38. Only for
Maxus
ATI AVIVO
Начиная с видеокарт X-серии (2005 год)
поддерживаются:
автоматическое регулирование цветности,
денойзинг, шарпен
частичное декодирование форматов H.264, VC-1,
WMV9, MPEG-2 (кроме декодирования битового
потока)
адаптивный деинтерлейсинг, скейлинг
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
38
39. Only for
Maxus ATI Unified Video Decoder/
Unified Video Decoder+
В первом поколении, доступном с 2ххх серии
(2007 год):
полная поддержка VC-1, AVC/H.264
поддержка MPEG-2 в виде шейдеров
обширный пост-процессинг: denoising,
deinterlacing, scaling/resizing, in-loop
deblocking
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
39
40. Only for
Maxus
ATI Unified Video Decoder 2.0
Во втором поколении, доступном с 4ххх серии
(2008 год):
полная поддержка декодирования потоков
VC-1, AVC/H.264, MPEG-2
декодирование двойного потока
Picture-in-picture
полностью BD-Live совместима
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
40
41. Only for
Maxus
ATI UVD vs. NV PureVideo
Ситуация такова, что пользователь не
проиграет
Современные графические процессоры
управляются с потоком любой сложности
Загрузка CPU – минимальна
Качество картинки – на усмотрение
пользователя
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
41
42. Only for
Maxus
ATI UVD vs. NV PureVideo
ATI AVIVO
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
42
http://www.hardwareheaven.com/reviews.php?reviewid=552
43. Only for
Maxus
ATI UVD vs. NV PureVideo
NVIDIA PureVideo
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
43
http://www.hardwareheaven.com/reviews.php?reviewid=552
44. Only for
Maxus
Содержание
Введение
Интерфейсы обработки видео
Аппаратная поддержка
Декодирование на CUDA
Выводы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
44
45. Only for
Maxus
Библиотека NVCUVID
Предоставляет возможность управлять
процессором декодирования
Поддерживает MPEG-1, MPEG-2, H.264
Декодированный кадр сразу сохраняется в
CUDA Device Memory
Позволяет отображать видео (D3D или OGL)
или выгружать кадры из видеопамяти
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
45
46. Only for
Maxus
Библиотека NVCUVID
Последовательность действий:
Разобрать исходное видео (с помощью API)
Декодировать очередной кадр (с помощью API)
Произвести изменения кадра (пост-обработка)
Вывести кадр на экран (с помощью 3D API)
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
46
47. Only for
Maxus
Создание декодера
Пользователь заполняет структуру
CUVIDDECODECREATEINFO для вызова
cuvidCreateDecoder(), с информацией входного кадра:
тип кодека
размеры кадра
цветовой формат
Также пользователь указывает параметры выходных
данных:
размеры кадра
цветовой формат
количество кадров
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
47
49. Only for
Maxus
Декодирование кадра
Для вызова функции декодирования
cuvidDecodePicture() пользователь заполняет структуру
CUVIDPICPARAMS, содержащую :
информацию об интерлейсинге кадра
указатели на данные кадра
размеры кадра
Декодер записывает кадры в очередь, откуда их можно
достать по номеру
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
49
52. Only for
Maxus Пост-обработка и
отображение
Подготавливаем kernel
Отображение в память вызовом cuvidMapVideoFrame()
Вызов kernelа для обработки кадра вызовом
сudaPostProcessFrame()
Отображение при помощи 3D API
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
52
53. Only for
Maxus Пост-обработка и
отображение
#include “cudaModuleMgr.h”
CUmoduleManager * g_pCudaModule;
CUfunction g_mykernel;
CUStream g_KernelSID;
g_pCudaModule = new CUmoduleManager(“mykernel.ptx”, exec_path,
nKernels, nGlobalMem, nTexRef);
g_pCudaModule->GetCudaFunction(“my_main”, &g_mykernel);
…
GLuint gl_pbo = createPixelBufferObject(imageParams);
cuGLRegisterBufferObject(gl_pbo);
glutDisplayFunc(display);
…
void display(){
copyDecodedFrameToTexture();
render(); }
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
53
54. Only for
Maxus Пост-обработка и
отображение
void copyDecodedFrameToTexture()
{
CUdeviceptr pPBOData = 0;
unsigned int nPBOPitch = 0;
Cudeviceptr pDecodedFrame = 0;
unsigned int nDecodedPitch = 0;
CUVIDPARSERDISPINFO oDisplayInfo = queryImage();
CUVIDPROCPARAMS oVideoProcessingParameters = fillParameters();
cuvidMapVideoFrame(oDecoder, oDisplayInfo.picture_index,
&pDecodedFrame , &nDecodedPitch , &oVideoProcessingParameters);
cuGLMapBufferObject( &pPBOData, &nPBOPitch, gl_pbo);
…
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
54
56. Only for
Maxus NVCUVID
Резюме
Гибкая система пост-обработки
Все производится внутри видеопамяти
Кросс-платформенность
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
56
57. Only for
Maxus
Содержание
Введение
Интерфейсы обработки видео
Аппаратная поддержка
Декодирование на CUDA
Выводы
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
57
58. Only for
Maxus
Выводы
Каковы бы ни были условия входящего
видеопотока – производители GPU будут
готовы
Готовые декодеры удовлетворяют
большинству требований пользователя, для
определенных нужд – можно
запрограммировать свой
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
58
59. Only for
Maxus
Список литературы
1. http://www.freedesktop.org/wiki/Software/vaapi VA API
2. http://msdn.microsoft.com/en-us/library/ms798379.aspx DirectX Video
Acceleration
3. http://msdn.microsoft.com/en-us/library/aa965263(VS.85).aspx DirectX
Video Acceleration 2.0
4. http://forum.doom9.org/ Doom9's Forum
5. http://cbaoth.dk/~cbaoth/nvcuvid.pdf CUDA Video Decoder API
6. http://nvworld.ru/utilities/dxvacheck/ DXVA Checker
7. http://www.hardwareheaven.com/reviews.php?reviewid=552&pageid=14
UVD vs PureVideo
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
59
60. Only for
Maxus Лаборатория компьютерной
графики и мультимедиа
Видеогруппа это:
Выпускники в аспирантурах Англии,
Франции, Швейцарии (в России в МГУ и
ИПМ им. Келдыша)
Выпускниками защищено 5 диссертаций
Наиболее популярные в мире сравнения
видеокодеков
Более 3 миллионов скачанных фильтров
обработки видео
CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/
60