Несколько месяцев назад, разочаровавшись в утилите Badaboom, я отказался от мысли использовать видеокарту для кодирования видео в формат Sony PSP. Но вот вчера вечером получил письмо от компании Nvidia, в котором рапортовалось о выходе новой версии программы Movavi Video Converter с. VP8, VP9 и H2. 65. Аппаратное ускорение кодирования и декодирования видео в процессорах 6 го поколения Skylake Блог компании Intel Хабрахабр. Более шести лет назад 1. Кодирование Видео С Помощью Видеокарты Nvidia' title='Кодирование Видео С Помощью Видеокарты Nvidia' />IDF компания Intel представила микроархитектуру процессоров Sandy Bridge второго поколения процессоров Intel Core. Процессор и графическое ядро объединили на одном кристалле, а само графическое ядро значительно обновилось и увеличило тактовую частоту. Именно в Sandy Bridge появилось секретное оружие технология Intel Quick Sync Video QSV для аппаратного ускорения кодирования и декодирования видео. Маленький участок So. C специально выделили для размещения специализированных интегральных схем, которые занимаются только видео. Это был настоящий аппаратный транскодер. Встроенная графика 9 го поколения HD Graphics 5. Nvidia NVENC это технология, позволяющая кодировать видео в H. H. 265 для последних процессоров Maxwell силами GPU со скоростями. Увы и ах, Nvidia ввела ограничение на обычных десктопных видеокартах нельзя кодировать больше двух потоков видео одновременно. Русский В данном видео, я продемонстрирую скорость кодирования видео с помощью видеокарты,в данном случае Nvidia GTX 470 и процессора Intel i53550 с технол. Нашл у Nvidia фичу CUDA, вроде бы как для подобных целей пригодную может. Суть технологии CUDA, активно продвигаемой NVidia в массы заключается в перенесении вычислений на графическую подсистему, обладающей. Intel Core i. 7 6. K с 2. 4 блоками выполнения команд EU, организованными в три фрагмента по 8 блоков. Удивительно, но Intel сумела обойти и AMD, и Nvidia в реализации аппаратного ускорения кодирования видео похожие технологии AMD Video Codec Engine и Nvidia NVENC в видеокартах AMD и Nvidia появились со значительным опозданием алгоритмы компрессии требуют серьзной адаптации под процессоры видеокарт. Вот почему идея и разработка QSV хранились в секрете пять лет. Сказать, что QSV была востребована значит, ничего не сказать. Воспроизведение декодирование видео с аппаратной поддержкой стало гораздо меньше отнимать ресурсов у других задач в ОС, меньше нагревать CPU и потреблять меньше электроэнергии. К тому же, в последние годы кодирование видео стало одной из самых ресурсомких задач на ПК. Популярность You. Программу Для Чтение Файлов Pub. Tube превратила миллионы человек в операторов и режиссров. А тут ещ и повсеместное распространение смартфонов, для которых требуется транскодирование с DVD в сжатый AVC MP4H. В результате, практически каждый ПК стал видеостудией. Массово распространились IPTV и потоковые видеотрансляции в интернете. Компьютер начал выполнять роль телевизора. Видео стало вездесущим и превратилось в один из самых популярных видов контента на ПК. Оно кодируется и транскодируется постоянно и везде на разные битрейты, в зависимости от типа устройства, размера экрана и скорости интернета. В такой ситуации возможность быстрого кодирования и декодирования видео в процессорах напрашивалась сама собой. Так в Intel GPU встроили аппаратный кодердекодер. Современный кодек обрабатывает каждый кадр в отдельности, но также анализирует последовательность кадров на предмет повторений во времени между кадрами и пространстве внутри одного кадра. Это сложная вычислительная задача. Ниже показан пример кадра из видео, который закодирован новейшим кодеком HEVC. Для конкретного участка возле уха зайца показано, как именно были закодированы различные участки кадра. Также показано положение и тип кадра в общей структуре видеопотока. Не углубляясь в детали алгоритмов видеокомпрессии, это дат общее представление, насколько много информации требуется анализировать, чтобы эффективно кодировать и декодировать видео. Скриншот открытого видео в программе Elecard Stream. Eye, 1. 92. 0. Например, дискретное косинусное преобразования DCT выполняется при кодировании, а обратное дискретное косинусное преобразования при декодировании. За прошедшие пять лет технология Intel QSV значительно продвинулась вперд. Добавлена поддержка свободных видеокодеков VP8 и VP9, обновлены драйверы под Linux и т. Технология улучшалась с каждым новым поколением Intel Core, вплоть до нынешнего 6 го поколения Skylake. Микроархитектура GPU 9 го поколения. Последняя версия QSV 5. Skylake. Данная версия GPU в официальной документации Intel классифицируется как Gen. Процессор Intel Core i. K для настольных компьютеров содержит 4 ядра CPU и встроенную графику 9 го поколения HD Graphics 5. С каждой новой микроархитектурой в GPU увеличивалось количество блоков выполнения команд EU. Оно выросло с 6 в Sandy Bridge до 7. Iris Pro Graphics 5. Skylake. В том числе за счт этого производительность GPU увеличилась десятикратно без увеличения тактовой частоты. Во всей графике последнего поколения Iris и Iris Pro имеется встроенный кэш Level 4 на 6. МБ. Каждый EU сочетает в себе одновременную многопоточность SMT и тщательно настроенную чередующуюся многопоточность IMT. Здесь работают арифметическо логические устройства с одиночным потоком команд, множественным потоком данных SIMD ALU. Они выстроены по конвейерам многочисленных тредов для высокоскоростного проведения вычислений с плавающей запятой и целочисленных операций. Суть чередующейся многопоточности в EU состоит в том, чтобы гарантировать непрерывный поток готовых для выполнения инструкций, но в то же время ставить в очередь с минимальной задержкой более сложные операции, такие как размещение векторов в памяти, запросы семплеров или другие системные коммуникации. Блок выполнения команд EUКаждый тред в блоке выполнения команд Gen. В каждом из регистров 3. SIMD или 3. 2 битных элементов данных. Таким образом, на каждый тред приходится 4 КБ файла реестра общего назначения GRF. Всего на один EU приходится 7 тредов с общим количеством 2. КБ GRF на EU. Гибкая система адресации позволяет адресовать несколько регистров вместе. Состояние треда в текущий момент сохраняется в отдельном файле архитектуры реестра ARF. В зависимости от нагрузки, аппаратные треды в EU могут выполнять параллельно один код от одного вычислительного ядра либо могут выполнять код от совершенно разных вычислительных ядер. Состояние выполнения в каждом треде, в том числе его собственные указатели инструкций, хранятся в его независимом ARF. На каждом цикле EU может выдавать до четырх различных инструкций, которые должны быть от четырх различных тредов. Специальный арбитр тредов Thread Arbiter отправляет эти инструкции в один из четырх функциональных блоков для выполнения. Обычно арбитр может выбирать из разнородных инструкций, чтобы одновременно загружать все функциональные блоки и, таким образом, обеспечивать параллелизм на уровне инструкций. Пара модулей FPU на схеме на самом деле выполняет и операции с плавающей запятой, и целочисленные вычисления. В Gen. 9 эти модули способы обработать за цикл не только до четырх операций с 3. Операции сложения и умножения выполняются одновременно, то есть блок EU способен выполнить максимум до 1. FPU по 4 операции. Компилятор сам эвристически выбирает режим загрузки тредов SIMD width SIMD 8, SIMD 1. SIMD 3. 2. Так, в случае SIMD 1. EU могут одновременно исполняться 1. При масштабировании на весь GPU с учтом нескольких уровней иерархии памяти получается, что максимальный теоретический лимит обмена данными между FPU и GRF достигает нескольких терабайт в секунду. Масштабируемость на уровне тредов переходит в масштабируемость на уровне блоков выполнения команд. В свою очередь, эти блоки выполнения команд объединятся в группы по восемь штук 8 EU 1 subslice. На каждом уровне масштабирования имеются локальные модули, работающие только здесь. Например, для каждой группы из 8 блоков EU предназначен свой локальный диспетчер тредов, порт данных и семплер для текстур. Группа из 8 блоков EU subsliceВ свою очередь группы из 8 EU объединяются в группы по 2. EU 3 sublices 1 slice. Эти срезы по 2. 4 блока, в свою очередь, тоже масштабируются существующая графика Gen. EU. В графике Gen. L3 до 7. 68 КБ на каждую группу из 2. EU. У всех семплеров и портов данных свой собственный интерфейс доступа к L3, позволяющий считать и записать по 6. Таким образом, на группу из 2. EU приходится три порта данных с полосой передачи данных к кэшу L3 1.