Journal influence
Bookmark
Next issue
Technology of synthesis of high resolution stereo video clips in the real time 3d visualization system
The article was published in issue no. № 3, 2012 [ pp. 74-80 ]Abstract:The article describes the high resolution video file synthesis technology allowing video clips of high quality in various stereo formats to be obtained within the framework of real time visualization system. Such stereo formats as anaglyphical, interlaced, vertical and horizontal stereopair format and format for autostereoscopic displays Philips are supported. The proposed technology makes it possible to fix the training process in the real time mode and then synthesize the high quality video material illustrating the recorded process. The article gives the detailed study of the relevant scheme of video clips synthesis on the basis of training record files, proposes the relevant data structures and algorithm of their processing. It separately studies the stage of video clip recording and associated issues of synthesis of high resolution images in video memory, elimination of visual defects caused by image discreteness, issues of compaction of video information and its recording into the file. The program module developed on the basis of the technologies proposed in the article can find its application in a wide range of problems requiring the synthesis of high quality material, including building of simulation and training complexes, tutorial systems and game applications.
Аннотация:Описывается технология синтеза видеофайлов высокого разрешения, позволяющая в рамках системы визуализа-ции реального времени получать видеоролики высокого качества в различных стереоформатах. Поддерживаются такие стереоформаты, как анаглифический, чересстрочный, форматы вертикальной и горизонтальной стереопары и формат для автостереоскопических мониторов Philips. Предложенная технология позволяет фиксировать в реальном режиме времени процесс тренировки, а затем синтезировать высококачественный видеоматериал, иллюстрирующий записанный процесс. Подробно рассмотрена соответствующая схема синтеза видеороликов на основе файлов записи тренировок, предложены соответствующие структуры данных и алгоритм их обработки. Отдельно рассмотрены этап записи видеороликов и связанные с ним вопросы синтеза изображения высокого разрешения в видеопамяти, устра-нения визуальных дефектов, обусловленных дискретностью изображения, вопросы сжатия видеоинформации и ее записи в файл. Программный модуль, разработанный на основе предложенных в статье технологий, может найти применение для решения широкого круга задач, где требуется синтез высококачественного видеоматериала, в том числе при построении имитационно-тренажерных комплексов, обучающих систем и игровых приложений.
Authors: Torgashev M.A. (mtorg@mail.ru) - SRISA RAS, Moscow, Russia, Ph.D, Timokhin P.Yu. (webpismo@yahoo.de) - SRISA RAS (Research Associate), Moscow, Russia | |
Keywords: stereo mode, algorithms of 3D visualization in a real-time mode, technologies of video file’s synthesis |
|
Page views: 9232 |
Print version Full issue in PDF (7.64Mb) Download the cover in PDF (1.33Мб) |
В последнее время все большее распространение получает оборудование для просмотра видео высокого разрешения (High-definition video, НD video), в том числе ЖК телевизоры и плазменные панели бытового использования, становятся общедоступными 3D-технологии и оборудование для стереоотображения. На рынок поставляется большое количество различных моделей устройств, поддерживающих стереорежим. Таким образом, популярность данного оборудования обусловливает растущий спрос на технологии подготовки видеоматериалов (видеоконтента) высокого разрешения в различных стереоформатах. Источниками HD-видеоконтента могут быть записи реальных тренировочных, обучающих либо игровых процессов в имитационно-тренажерных комплексах, обучающих системах или игровых приложениях. Общим компонентом для таких систем является система трехмерной визуализации виртуальных сцен, которая обеспечивает синтез трехмерных изображений в режиме реального времени [1]. В Центре визуализации и спутниковых информационных технологий НИИСИ РАН создана собственная система визуализации [2], обладающая широким спектром возможностей синтеза трехмерных виртуальных сцен, в том числе с использованием распределенных вычислений. Синтез трехмерных сцен в стереорежиме Для создания стереоэффекта используются несколько различных технологий, основанных на разных принципах разделения ракурсов для правого и левого глаза [3]. В частности, распространены технологии активного стерео (применяются затворные очки), пассивного стерео (поляризационные очки и фильтры), анаглифические (используются очки с цветными светофильтрами), а также автостереоскопические системы, не требующие использования очков. Для разных устройств стереоотображения используются различные форматы представления видеоданных в стереорежиме. Среди них можно выделить анаглифический формат, горизонтальную и вертикальную стереопары (Side-By-Side), чересстрочное представление (Interlaced Stereo), форматы для автостереоскопических мониторов (например, формат WowVx 2D+Depth для мониторов Philips 3D Solutions). Рассмотрим особенности этих стереоформатов и соответствующие технологии синтеза сцены в системе визуализации. Более подробно алгоритмы реализации данных стереоформатов описаны в [4]. Анаглифический формат стереоизображения предназначен для систем с анаглифическими очками, использующих метод спектральной сепарации стереопары (рис. 1). Этот метод заключается в том, что цветовой спектр делится на две части: одна часть отдается для левого ракурса, а другая для правого. Каждый ракурс пропускается через свой фильтр, который отделяет собственную часть спектра. Итоговое изображение получается суммированием обработанных ракурсов. Последующее воспроизведение происходит с помощью очков с двумя разными фильтрами – для правого и левого глаза. При разделении ракурсов с помощью очков каждый глаз видит ракурс с урезанным спектром, однако человеческий мозг по мере возможности восстанавливает исходный цветовой спектр, и мы видим полноцветное изображение. Наиболее распространен вариант красно-голубых (red-cyan) фильтров, также используются желто-зеленые очки и очки со сложным спектром светопропускания. Для реализации данного режима необходимо синтезировать на экране два ракурса, применив для каждого глаза свою цветовую фильтрацию. В случае использования красно-голубых очков цветовая фильтрация ракурса для левого глаза заключается в пропускании только красной составляющей цвета, а для правого глаза – синего и зеленого цветов. Еще одним широко распространенным форматом для представления данных в стереорежиме является формат горизонтальной (horizontal) или вертикальной стереопары (vertical side-by-side). Изображения, соответствующие разным ракурсам, записываются в общее изображение, разделенное пополам либо по вертикали, либо по горизонтали. Реализация стереорежима в таком формате заключается в формировании в нужных областях окна изображений, соответствующих левому и правому глазу. Рассмотрим реализацию формата горизонтальной стереопары. В этом режиме левая половина изображения предназначена для левого глаза, а правая – для правого. Очевидно, что необходимо разделить окно визуализации пополам и синтезировать в левой и правой его частях изображения с помощью виртуальных камер, соответствующих левому и правому глазу. Часть оборудования для стереоотображения использует чересстрочный формат (его также называют line-by-line). Он организован так, что в четных и нечетных строках попеременно записываются изображения для правого и левого глаза. Чересстрочный формат, наример, используют мониторы Zalman TriMon, JVC GD-463D10E, Hyundai 3D и другие. Для сепарации изображений стереопары в них применяется технология круговой поляризации. На дисплей нанесена специальная пленка, преобразующая линейно-поляризованный свет в свет с круговой поляризацией с разным направлением для четных и нечетных строк. Идея предлагаемого алгоритма формирования изображения в чересстрочном формате состоит в следующем. На начальном этапе синтезируется изображение сцены для левого и правого глаза в нижнюю и верхнюю половины экрана соответственно (в экранный буфер). После этого копируется содержимое буфера в текстуру. Затем рисуются прямоугольники размером в одну строку с текстурными координатами, соответствующими нужной строке полученной текстуры (рис. 2). Чтобы не было искажения размеров объектов, при формировании изображений для левого и правого глаза необходимо скорректировать соотношение (аспект) для камеры, установив его равным аспекту всего окна (W/H), а не аспекту области вывода одного глаза (W/(H/2)). В последнее время на рынке стереооборудования появились так называемые автостереоскопические мониторы, которые не требуют использования очков при просмотре стереоизображений. Сепарация ракурсов в них осуществляется с помощью системы вертикальных линз, которые обеспечивают разделение светового потока таким образом, что каждый глаз наблюдает только предназначенные для него изображения. Эти мониторы являются многоракурсными и позволяют наблюдать стереоэффект не только в фиксированной зоне напротив экрана, но и из нескольких фиксированных положений (рис. 3). К мониторам такого типа относится Philips 3D Solutions со специальным стереоформатом WowVx «2D+Depth», который содержит не стереопару, как большинство других форматов, а в дополнение к обычному (2D) изображению хранит информацию о глубине (Depth), на основе которой монитор строит изображения для нескольких ракурсов (рис. 4). Информация, описывающая глубину, явным образом размещается в изображении и записывается в виде градаций серого цвета. Значение интенсивности кодируется восемью битами (8 бит) в диапазоне [0, 255]. Значение 0 соответствует максимально удаленным объектам, которые монитор может воспроизвести в стерео. Значение 128 соответствует объектам, которые при настройках по умолчанию будут восприниматься лежащими в плоскости экрана. Значение 255 кодирует области, максимально выходящие из экрана. Таким образом, диапазон [0, 128) задает области за экраном, а (128, 255] – области перед экраном. Для перевода в данное представление информации о реальной глубине объектов, которая доступна при визуализации, требуется задать преобразование значения координаты Z пикселей в диапазон [0, 255]. Для реализации такого преобразования существует множество вариантов. Рассмотрим один из них. Можно выделить некоторый диапазон глубины, представляющий наибольший интерес применительно к данной сцене. Этот диапазон задается вручную пользователем с помощью фиксации ближней и дальней плоскостей, ограничивающих интересующую область. Ближней плоскости ставится в соответствие значение 255, дальней – значение 0. Объекты, располагающиеся в заданном диапазоне глубины, полностью используют диапазон симулируемой монитором глубины стереоэффекта. Рассмотренное преобразование реализуется с помощью синтеза сцены на отдельном проходе с помощью шейдерной обработки. Соответствующая шейдерная программа имеет минимальную вычислительную сложность. Рассмотрим общую технологию синтеза видеороликов в системе визуализации реального времени. Синтез видеороликов в системе визуализации реального времени Наиболее простой подход к синтезу видеороликов в системе трехмерной визуализации состоит в прямом захвате синтезированного изображения из буфера кадра и покадровой записи в видеофайл. Однако для обеспечения режима реального времени он в большинстве случаев не подходит. Процесс захвата кадра, его сжатие и запись имеют очень высокую вычислительную сложность и требуют сверхвысокопроизводительной дисковой подсистемы. Для записи несжатого HD-файла с разрешением 1920´1080 и скоростью воспроизведения 24 кадра в секунду требуется производительность дисковой подсистемы в 142 Мб/с. Для записи сжатого видео требуется меньшая дисковая производительность, особенно для современных форматов сжатия (например, стандарта Н.264). Однако задача эффективного сжатия требует высоких вычислительных ресурсов и пока не может быть выполнена в реальном режиме времени. Для решения данной проблемы предлагается использовать другой подход – записать в каждом кадре параметры виртуальной сцены, позволяющие полностью восстановить ее внешний вид, и затем по ним выполнить последующий синтез видео в отдельном процессе. При таком подходе требование реального времени на этапе синтеза видеоролика не выставляется, процесс может осуществляться без ущерба качеству и в произвольном разрешении, не привязанном к разрешению экрана, используемому на этапе записи тренировки. Диаграмма связей такого двухступенчатого подхода представлена на рисунке 5. Для решения задачи записи и последующего воспроизведения тренировок в систему визуализации добавляется дополнительный блок обработки тренировок [5]. Рассмотрим схему его функционирования. Для записи процесса тренировки выбирается диапазон времени между кадрами записи (шаг записи). Для последующего синтеза видеоролика он должен совпадать с его желаемой скоростью (возможные варианты – 24, 25, 30, 50 кадров в секунду). Если при моделировании используется тот же шаг времени, задача фиксации параметров сцены значительно упрощается: необходимо лишь сохранить в файл результаты моделирования текущего шага. В противном случае моменты времени расчета динамики и записи состояния не совпадают. В результате возникает проблема вычисления значений параметров виртуальной сцены в момент записи. Для ее решения существуют по крайней мере два подхода. Первый заключается в выборе последнего рассчитанного значения параметра. Этот подход очень прост, однако имеет существенные недостатки: записанная траектория движения объекта сцены может существенно отличаться от исходной, кроме этого, на графике записанного параметра могут наблюдаться рывки, отсутствующие в исходной траектории. Второй подход, который позволяет устранить эти проблемы, состоит в интерполяции значений параметров, рассчитанных в соседние моменты времени. Для этого могут применяться обычная линейная интерполяция, а также квадратичные функции или полиномы более высоких порядков. Для записи файла тренировки (rec-файла) используется следующая структура данных. В начале файла записывается заголовок, содержащий общую информацию: – идентификатор rec-файла, позволяющий проверить соответствие файла нужному формату; – имена файлов всех трехмерных сцен, используемых в тренировке; – количество пакетов; – шаг записи в миллисекундах; – продолжительность тренировки в миллисекундах. Вслед за заголовком в файл записываются пакеты, описывающие параметры виртуальной сцены на соответствующих шагах записи. Каждый пакет имеет собственный заголовок, в котором записываются размер пакета и данные, описывающие параметры виртуальной сцены. Для записи этих данных используется так называемая чанковая структура. Под чанком понимается структура, имеющая заголовок (содержит идентификатор данных и размер данных) и блок данных. Такая организация позволяет обеспечить расширение формата хранения с сохранением обратной совместимости его версий. Чанки с новыми идентификаторами, не известными предыдущей версии формата, будут просто пропускаться, не нарушая общее функционирование системы. В качестве примеров записываемых параметров виртуальной сцены можно привести следующие: – преобразование системы координат объекта, записываемое в виде совокупности вектора перемещения v, задающего преобразование сдвига, и кватерниона единичной длины q, задающего ориентацию объекта; – флаг сокрытия/открытия объекта или источника света; – раствор камеры; – раствор прожектора; – интенсивность источника света. Процедура синтеза видеоролика из rec-файла состоит в последовательном чтении рассмотренных выше пакетов, соответствующих очередному кадру, и в восстановлении по ним состояний виртуальной сцены. Из таких снимков параметров виртуальной сцены блок записи видеоролика формирует результирующий видеофайл. Рассмотрим этот блок и используемые в нем технологии. Запись видеороликов высокого разрешения В предлагаемой технологии запись результирующего видеоролика осуществляется покадрово. Из полученного снимка параметров виртуальной сцены блок записи с помощью функции визуализации синтезирует в видеопамяти изображение высокого разрешения, устраняет визуальные артефакты, связанные с алиасингом (ступенчатостью изображения сцены), сжимает изображение и записывает его в видеофайл (в данной работе выбран контейнер avi). Схема блока записи показана на рисунке 6. Рассмотрим подробнее основные этапы его работы. При визуализации в графическом ускорителе изображение синтезируется в буфере цвета, входящем в буфер кадра. Максимальные размеры буфера цвета ограничены разрешением экрана, что не позволяет синтезировать в нем изображения более высокого разрешения. Для решения этой задачи предлагается использовать внеэкранный рендеринг – подход, при котором изображение синтезируется во внеэкранном буфере видеопамяти, максимальные размеры которого в несколько раз превышают размеры буфера кадра (для современных ускорителей максимальный размер внеэкранного буфера составляет до 8192´8192 против 2056´1600 у экранного буфера). Одной из распространенных технологий, позволяющих реализовать этот подход, является технология FrameBufferObject (FBO) [6]. В предлагаемой реализации в видеопамяти создается внеэкранный буфер кадра, к которому в качестве буфера цвета подключается созданная ранее текстура, имеющая размеры видеокадра. Для синтеза изображения в данный буфер перед визуализацией кадра он устанавливается в качестве целевого. Как уже было отмечено, визуальные артефакты, связанные с алиасингом, проявляются в виде ступенчатости изображения сцены, а при движении камеры в сценах с высокой детальностью геометрии – и в виде мерцания мелких деталей на изображении сцены. Для решения этой проблемы в настоящее время используется полноэкранное сглаживание изображения (full-scene anti-aliasing, FSAA). Одним из распространенных методов FSAA является сглаживание со множественной выборкой (multisample anti-aliasing, MSAA), при котором каждый пиксель (сэмпл), расположенный в области ступенчатости, делится на субпиксели (2, 4, 8 и т.д. – в зависимости от установленного уровня выборки), цвет которых оценивается и усредняется для общего пикселя. Большее количество субпикселей обеспечивает более высокое качество сглаживания. При синтезе изображения в буфере кадра MSAA выполняется автоматически драйвером видеокарты. В предлагаемой реализации с внеэкранным синтезом изображения MSAA выполняется при специальном копировании внеэкранного буфера кадра. Для этого изображение вначале синтезируется в буфере отображения MSAA, подключенном к дополнительному вне- экранному буферу кадра, а затем копируется с интерполяцией в текстуру, подключенную к основному внеэкранному буферу. При таком копировании драйвер видеокарты автоматически выполняет интерполяцию субпикселей буфера отображения в пиксели текстуры, формируя в результате сглаженное изображение. Для сжатия и записи синтезированного изображения в avi-файл предлагается использовать распространенное API Video For Windows (VFW). Перед записью видеоролика создается и открывается avi-файл, открывается входной несжатый видеопоток и привязывается к ранее открытому файлу. С помощью стандартного диалога пользователь выбирает необходимый видеокодек из списка всех установленных в операционной системе кодеков и настраивает его параметры. На основе выбранного кодека и данных о входном видеопотоке открывается сжатый выходной видеопоток, который будет записываться в avi-файл. Для этого потока устанавливается формат поступающих растровых изображений (структура типа BitMapInfoHeader), которые бу- дут передаваться в поток в качестве кадров. При записи видеоролика растровое изображение высоко- го разрешения, синтези- рованное в видеопамяти, захватывается с помощью OpenGL в битовый массив в оперативной памяти и передается во входной видеопоток. Кадры входного потока сжимаются выбранным кодеком, передаются в выходной сжатый видеопоток и записываются в avi-файл. В конце записи видеоролика видеопотоки и avi-файл закрываются. При синтезе видеоролика в системе визуализации пользователю также необходимо иметь возможность просматривать на экране записываемые кадры (например, для выбора момента начала или конца записи ролика). При предлагаемом внеэкранном методе синтеза видеоролика записываемые кадры визуализируются с помощью вписанного в экран прямоугольника с наложенной на него текстурой, содержащей синтезированное изображение виртуальной сцены. При этом разрешение текстуры приводится к разрешению экрана с помощью фильтрации текстуры, а геометрические координаты вершин прямоугольника вычисляются таким образом, чтобы было сохранено соотношение сторон кадра видеоролика: P0=(0, ytop), P1=(0, ybottom), P2=(wd, ybottom), P3=(wd, ytop), где ytop,bottom=(hdwv ±wdhv) / 2wv, а wv, hv и wd, hd – ширина и высота кадра видеоролика и экрана в пикселях. С учетом приведенного соотношения предлагается следующий алгоритм работы блока записи видеоролика высокого разрешения. 1. Создать и открыть avi-файл. 2. Открыть входной несжатый видеопоток Vin. 3. Выбрать формат сжатия С. 4. Открыть выходной видеопоток Vout со сжатием С. 5. Создать внеэкранный буфер кадра FBOsingle с подключенной текстурой T. 6. Создать внеэкранный буфер кадра FBOmultisample с подключенным MSAA буфером отображения R. 7. Цикл по синтезируемым кадрам: a) установить буфер FBOmultisample в качестве цели рендеринга; b) визуализировать снимок параметров виртуальной сцены; c) копировать с интерполяцией буфер отображения R буфера FBOmultisample в текстуру T буфера FBOsingle; d) захватить текстуру T в битовый массив в оперативной памяти; e) передать битовый массив во входной видеопоток Vin; f) установить экранный буфер кадра в качестве цели рендеринга; g) визуализировать прямоугольник, вписанный в экран, с наложенной текстурой T. Конец цикла. 8. Удалить внеэкранный буфер кадра FBOsingle. 9. Удалить внеэкранный буфер кадра FBOmultisample. 10. Закрыть входной видеопоток Vin. 11. Закрыть выходной видеопоток Vout. 12. Закрыть avi-файл. В заключение необходимо отметить, что предложенные технологии в полном объеме были реализованы в системе визуализации [1]. На рисунке 7 отображен диалог настройки, предоставляющий возможности по изменению размеров изображения, степени сглаживания, настройке видеокодека и стереорежима. Разработанный программный модуль позволяет синтезировать высококачественные моно- и стереовидеоролики формата avi с разрешением до 8192´8192 со сглаживанием по 16 субпикселям с использованием установленного в системе видеокодека. Поддерживается несколько стереоформатов, включая анаглифический, чересстрочный, формат вертикальной и горизонтальной стереопары и формат для автостереоскопических мониторов Philips. Программный модуль может найти применение для широкого круга задач, где требуется синтез высококачественного видеоматериала, в том числе при построении имитационно-тренажерных комплексов, обучающих систем и игровых приложений. В дальнейших исследованиях предполагается рассмотреть вопрос более эффективного сжатия файлов записей, а также поддержку дополнительных контейнеров хранения видеоданных (mkv, mp4, ts). Литература 1. Михайлюк М.В. Компьютерная графика в системах визуализации имитационно-тренажерных комплексов // Программные продукты и системы. 2003. № 3. С. 7–15. 2. Михайлюк М.В., Торгашев М.А. Система «GLVIEW» визуализации для моделирующих комплексов и систем виртуальной реальности // Вестн. РАЕН. 2011. № 2. C. 20–28. 3. Хураськин И.А. Создание виртуального окружения в тренажерных комплексах: сб. докл. междунар. науч. конф., посвященной 80-летию со дня рожд. акад. В.А. Мельникова, 2009. C. 122–125. 4. Торгашев М.А. Реализация стереорежима в реальном масштабе времени для различных устройств отображения // Программные продукты и системы. 2010. № 2. C. 23–29. 5. Торгашев М.А. Реализация режимов записи и воспроизведения тренировок в имитационно-тренажерных комплексах моделирования сложных динамических систем: сб. тр. НИИСИ РАН, 2011. Т. 1. № 2. C. 59–61. 6. Боресков А.В. Разработка и отладка шейдеров. СПб, 2006. 496 с. |
Permanent link: http://swsys.ru/index.php?page=article&id=3218&lang=en |
Print version Full issue in PDF (7.64Mb) Download the cover in PDF (1.33Мб) |
The article was published in issue no. № 3, 2012 [ pp. 74-80 ] |
Perhaps, you might be interested in the following articles of similar topics: