Родственные заявки
[1] Настоящая заявка испрашивает приоритет согласно следующим предварительным заявкам на выдачу патента США: №62/488,526, поданной 21 апреля 2017 года, и №62/596,325, поданной 8 декабря 2017 года.
Область техники, к которой относится настоящее изобретение
[2] В сфере удаленных игр, где игрой на стороне сервера управляет игрок на стороне клиента, предпринимаются попытки кодирования выходных видеоданных акселератора трехмерной графики (SD-графики) в реальном масштабе времени с использованием существующих или оптимизированных под требования пользователей кодирующих устройств. Однако интерактивный характер видеоигр, в частности, контур обратной связи для игрока между выходными видеоданными и данными, вводимыми игроком, делает игровое потоковое видео намного более чувствительным к временной задержке в сравнении со стандартным потоковым видео. Существующие способы кодирования видеосигналов могут жертвовать вычислительной мощностью и кое-какими иными параметрами ради уменьшения времени кодирования. Новые способы интеграции процесса кодирования в процесс рендеринга видеоданных могут обеспечить существенное уменьшение времени кодирования с сохранением вычислительной мощности, что повышает качество кодированной видеоинформации и сохраняет первоначальный формат битового потока данных, обеспечивая при этом взаимосовместимость существующих аппаратных устройств.
[3] Применяемые в настоящее время стандарты кодирования видео характеризуются наличием лишь цветовой и временной информации, содержащейся в последовательностях изображений и предназначенной для сокращения времени кодирования видеоинформации, увеличения ее размеров или повышения качества видео. Некоторые стандарты кодирования, такие как стандарты серии MPEG, используют вычислительно-трудоемкий способ оценки параметров движения на основе блоков для аппроксимации движения объектов на основе цветовых данных, содержащихся в видео. Эти способы оценки параметров движения изображения на основе блоков традиционно обеспечивают существенное уменьшение размеров кодированного видео, но являются источником большой временной задержки в среде передачи потокового видео в реальном масштабе времени.
[4] Интеграция процесса кодирования в процесс рендеринга видеоданных обеспечивает доступ к источникам дополнительных данных, которые могут быть эффективно использованы для улучшения кодирования. К примеру, некоторые акселераторы 3D-графики, например, используемые в игровом движке, уже могут генерировать векторы движения, которые идеально описывают движение каждого пикселя в каждом видеокадре. За счет предоставления последнего отрендеренного кадра и введения надлежащим образом отформатированных данных векторов движения в кодирующее устройство может быть пропущена наиболее сложная в вычислительном отношении и времязатратная стадия, реализуемая в кодирующем устройстве, а именно стадия оценки параметров движения для каждого межкадра. Кроме того, векторы движения, генерируемые графическим акселератором, будут характеризоваться повышенной точностью в сравнении с векторами, которые аппроксимируются алгоритмом оценки параметров движения на основе блоков, что повышает качество кодированного видео.
[5] Эти две функции, а именно кодирование видеоинформации и рендеринг видеоданных в реальном масштабе времени, традиционно выполняются по отдельности и независимо друг от друга. За счет объединения графического акселератора и кодирующего устройства, что позволяет максимально раскрыть сильные стороны каждого из этих устройств, время кодирования может быть сокращено в достаточной степени для того, чтобы можно было поддерживать приложения, воспроизводящие потоковое видео, которые гиперчувствительны к задержкам.
[6] Эти и другие сопутствующие преимущества настоящего изобретения станут очевидными в свете недостатков, присущих технологиям, описанным ниже.
[7] Например, опубликованная заявка на выдачу патента США №2015/0228106 А1 («Публикация '106») раскрывает технологию, направленную на декодирование видеоданных с целью генерирования последовательности декодированных блоков видеоизображения. Эта технология позволяет использовать каждый декодированный блок видеоизображения в виде отдельной текстуры для соответствующих многоугольников геометрической поверхности по мере генерирования декодированных блоков движком кодека. Технология публикации '106 описывает объединение движка кодека, который декодирует кодированные видеоданные для генерирования отображаемого видеоизображения, с акселератором 3D-графики, который частично рейдирует картинку путем наложения текстуры видеоизображения на геометрическую поверхность. Однако эта технология имеет недостатки в сравнении с настоящим изобретением, по меньшей мере, вследствие того, что она не раскрывает и не использует графический акселератор, который предоставляет как последний отрендеренный кадр, так и надлежащим образом отформатированные данные векторов движения для введения в движок видеокодека, благодаря чему видеокодеку нет какой-либо необходимости выполнять оценку параметров движения до передачи кодированных видеоданных на кодирующий движок удаленного клиента. И наоборот, усовершенствование компьютерной технологии, предложенное настоящим изобретением, обеспечивает уменьшение времени кодирования и вычислительной мощности, повышает качество кодированного видео и позволяет сохранить первоначальный формат битового потока данных для обеспечения взаимосовместимости.
[8] Опубликованная заявка на выдачу патента США №2011/0261885 А1 («Публикация '885») раскрывает системы и способы, направленные на сужение полосы частот за счет объединения оценки параметров движения и макроблочного кодирования. В этой системе оценка параметров движения может выполняться с использованием выборки видеоданных для генерирования информации, относящейся к оценке параметров движения, включая векторы движения. Эти векторы движения могут соответствовать текущему макроблоку, использующему соответствующие видеоданные, кэшированные в буфере. Как и в предыдущем примере, технология публикации '885 имеет недостатки в сравнении с настоящим изобретением, по меньшей мере, вследствие того, что она не раскрывает и не использует графический акселератор, который предоставляет как последний отрендеренный кадр, так и надлежащим образом отформатированные данные векторов движения для введения в движок видеокодека, благодаря чему видеокодеку нет какой-либо необходимости выполнять оценку параметров движения до передачи кодированных видеоданных на удаленный кодирующий движок клиента. По этой причине технология публикации '885 не обеспечивает уменьшение времени кодирования и вычислительной мощности и повышение качества кодированного видео в той степени, в которой это обеспечивается настоящим изобретением.
[9] Как следует из вышеизложенного, до сих пор в этой области техники существует потребность в усовершенствовании компьютерной технологии предшествующего уровня техники, относящейся к кодированию видеоинформации в игровой среде.
Краткое раскрытие настоящего изобретения
[10] Следовательно, цель конкретных вариантов осуществления заявленного изобретения, раскрытых в настоящем документе, заключается в том, чтобы устранить недостатки предшествующего уровня техники и предложить системы и способы формирования графических данных, которые используют архитектуру сетевого сервера, обеспечивающую работу графического акселератора, движка видеокодека и кодирующего движка удаленного клиента для передачи кодированных видеоданных, благодаря чему графический акселератор предоставляет как последний отрендеренный кадр, так и надлежащим образом отформатированные данные векторов движения для введения в движок видеокодека.
[11] Другая цель заявленного изобретения состоит в том, чтобы предложить такие системы и способы формирования графических данных, чтобы движку видеокодека не было необходимости в проведении какой-либо оценки параметров движения до передачи кодированных видеоданных на кодирующий движок удаленного клиента.
[12] Еще одна из целей заявленного изобретения состоит в том, чтобы предложить такие системы и способы формирования графических данных, чтобы графический акселератор мог преобразовывать векторы попиксельного движения в векторы поблочного движения.
[13] Еще одна из целей заявленного изобретения состоит в том, чтобы предложить системы и способы формирования графических данных, где с помощью вычислительного шейдера генерируются векторы попиксельного движения для их прибавления к скорости камеры с целью получения попиксельного результата, и где попиксельный результат сохраняется в буфере векторов движения.
[14] И еще одна из целей заявленного изобретения состоит в том, чтобы предложить системы и способы формирования графических данных, при использовании которых данные векторов поблочного движения вводятся графическим акселератором в движок кодирования видеоинформации в реальном масштабе времени одновременно с кадром видеоизображения, подвергнутого цветовой субдискретизации.
Краткое описание фигур
[15] Настоящее изобретение и многие его преимущества будут понятны из подробного описания вместе с прилагаемыми чертежами, где:
[16] На фиг. 1 представлена блок-схема, иллюстрирующая акселератор 3D-графики, рейдирующий видео для кодирования и передачи клиенту;
[17] На фиг. 2 представлена блок-схема, иллюстрирующая стадии, потребные для уменьшения временной задержки путем введения векторов движения, сгенерированных акселератором 3D-графики, в модифицированный процесс кодирования, показанный на фиг. 4;
[18] На фиг. 3 показана схема, иллюстрирующая преобразование векторов попиксельного движения, сгенерированных в графическом акселераторе, в векторы помакроблочного движения для введения в кодирующий движок; а
[19] На фиг. 4 представлена блок-схема, иллюстрирующая потребные изменения процесса кодирования видеоинформации, который используется на фиг. 1.
Подробное раскрытие предпочтительных вариантов осуществления настоящего изобретения
[20] При описании предпочтительных вариантов осуществления настоящего изобретения, проиллюстрированных на чертежах, во избежание двусмысленного толкования используется конкретная терминология. Однако предполагается, что настоящее изобретение не ограничено выбранными конкретными терминами, причем следует понимать, что каждый конкретный термин включает в себя все технические эквиваленты, которые действуют аналогичным образом для достижения аналогичной цели. Некоторые предпочтительные варианты осуществления настоящего изобретения описаны исключительно в иллюстративных целях, причем следует понимать, что заявленное изобретение может быть реализовано в иных формах, специально не показанных на чертежах.
[21] В тех сферах применения, где акселератор 3D-графики рейдирует видео, подлежащее кодированию и передаче в реальном масштабе времени, графический акселератор и кодирующее устройство могут представлять собой устройства с более сильной связью, что предусмотрено для уменьшения общего времени вычисления и снижения потребления вычислительных ресурсов. Данные векторов попиксельного движения, которые уже сгенерированы графическим акселератором для каждого видеокадра, могут быть преобразованы в данные векторов поблочного движения и введены в движок кодека, чтобы можно было пропустить стадию оценки параметров движения, которая представляет собой единственную наиболее сложную и вычислительно-трудоемкую стадию в процессе кодирования. В графических акселераторах, которые используют восстанавливающий фильтр для генерации границ объекта с иллюзией непрерывного движения, уже могут быть рассчитаны векторы попиксельного движения для каждого видеокадра. Переход от векторов попиксельного движения к векторам поблочного движения может быть выполнен путем нахождения вектора средних значений для каждого макроблока размерами 16×16 пикселей. Это преобразование осуществляется в акселераторе 3D-графики таким образом, что в кодирующий движок из акселератора 3D-графики должна проходить только небольшая часть исходных данных векторов движения. В случаях, когда графический акселератор и кодирующий движок не имеют общей памяти, это также поможет уменьшить использование пропускной способности памяти. Векторы поблочного движения вводятся в движок кодека, полностью минуя стадию оценки параметров движения, без внесения существенных изменений в остальной процесс кодирования.
[22] На фиг. 1-4 приведен один из примеров способа совершенствования процесса кодирования видеоинформации в приложениях, воспроизводящих потоковое видео, где акселератор 3D-графики генерирует сопутствующие данные векторов движения в процессе рендеринга видеокадра.
[23] На фиг. 1 приведен пример системы, в которой видео рендируется и кодируется для передачи удаленному клиенту 116. Акселератор 100 3D-графики, включенный в память 106 на сервере 120, пропускает видеоданные и дополнительную информацию векторов движения об отрендеренном видеокадре в движок 102 кодека (именуемый в настоящем документе просто кодеком или кодером), который генерирует кодированный битовый поток 108 для передачи в вычислительную систему 116 клиента. Архитектура сервера 120 представляет собой любое сочетание аппаратных или программных средств, которое обеспечивает поддержку функций как графического акселерометра, так и движка кодека. В приведенном примере графический акселератор 100 может быть реализован, например, в виде GPU-ускорителя, приводящего в исполнение программное обеспечение 104 для видеоигр, загруженное в машиночитаемую память 106, тогда как движок 102 кодека может быть реализован в виде центрального процессора (CPU), выполняющего программу кодирования видеоинформации. Кодирующий движок 102 генерирует кодированные видеоданные 108 для передачи в вычислительную систему 116 удаленного клиента, которая включает в себя кодирующий движок (кодек) 110, декодирующий битовый поток с целью его воспроизведения на дисплее 114, который управляется контроллером 112 дисплея. Вычислительная система 116 удаленного клиента представляет собой любое сочетание аппаратных средств, устройства, или программного обеспечения, позволяющего декодировать и отображать кодированный битовый поток 108.
[24] На фиг. 2 проиллюстрированы стадии, необходимые для ускорения кодирования за счет повторного использования имеющихся вспомогательных данных, полученных при выполнении процесса рендеринга, в процессе кодирования видеоинформации. На стадии 202 сначала должны быть сгенерированы вспомогательные данные, что является обычной функциональной особенностью графического акселератора 100, расположенного на сервере 120. По мере увеличения мощности и повсеместного распространения GPU-ускорителей генерирование векторов попиксельного движения в реальном масштабе времени становится общим свойством современных движков для видеоигр. Во время рендеринга двухмерного (2D) видеокадра из 2 В-сцены акселератор трехмерной графики сгенерирует вспомогательные выходные данные во время выполнения процесса формирования цвета, которые должны быть использованы в качестве входных данных для последующих прогонов в ходе постобработки. Вспомогательные выходные данные могут включать в себя информацию, записанную в буферы сглаживания, цвета или скорости, т.е. в три ячейки памяти, выделенные для временного хранения информации, соответственно, о глубине пикселей, цвете пикселей и движении пикселей.
[25] При практической реализации широко используемого способа генерация границ объекта с иллюзией непрерывного движения, называемого в настоящем документе восстанавливающей фильтрацией для генерации границ объекта с иллюзией непрерывного движения, попиксельные скорости из буфера скорости сначала субдискретизируются до меньшего числа ячеек мозаики, где каждая ячейка мозаики представляет максимальную скорость из совокупности пикселей. После этого ячейки мозаики маскируются с использованием попиксельной глубины в буфере сглаживания, и результаты накладываются на попиксельные цвета в буфере цвета для генерации границ объекта с иллюзией непрерывного движения. Предусмотрено несколько вариаций способа восстанавливающей фильтрации, которые повышают точность воспроизведения, улучшают фильтрующую способность или и то и другое, но принципы остаются такими же, и буфер скорости содержит данные о попиксельном движении между двумя соседними кадрами. Хотя термин «скорость» представляет собой термин, используемый в терминологии для графического акселератора, а термин «вектор скорости» представляет собой термин, используемый в терминологии для кодирования видеоинформации, указанные термины являются функционально эквивалентными, и попиксельная скорость означает то же самое, что и векторы попиксельного движения. Буфер скорости содержит вспомогательные данные в виде векторов попиксельного движения, которые будут повторно использованы в процессе кодирования видеоинформации.
[26] На стадии 204 графический акселератор 100, располагающийся на сервере 120, преобразует векторы попиксельного движения в векторы помакроблочного движения, исходя из размеров макроблока, используемых при кодировании. Кодек Н.264 по умолчанию использует макроблоки размерами 16 × 16 пикселей, которые в необязательном варианте могут быть еще больше уменьшены. Векторы 256 попиксельного движения могут быть усреднены с их сведением в единый вектор средних значений, который будет использован в качестве вектора поблочного движения. Этот процесс подробнее описан в привязке к фиг. 3.
[27] На стадии 206 информация о векторах помакроблочного движения вводится в кодирующий движок/кодер 102, располагающийся на сервере 120, при этом стадия оценки параметров движения пропускается. В случае реализации кодера программными средствами стадия оценки параметров движения может быть полностью отключена, что обеспечивает значительную экономию времени вычислений центральным процессором (CPU). Экономия времени в CPU должна с избытком компенсировать дополнительное время, потребное для расчета усредненных векторов в GPU-ускорителе (на стадии 204) и передачи их в CPU.
[28] На стадии 208 выполняется кодирование, начиная со стадии компенсации движения, поскольку векторы поблочного движения, выдаваемые графическим акселератором 100, взаимозаменяемы с векторами, которые рассчитываются на обычной стадии оценки параметров движения. Остальная часть процесса кодирования видеоинформации, который подробнее описан в привязке к фиг. 4, существенно не отличается от обычной компенсации движения, остаточного расчета и стадий кодирования, выполняемых согласно стандарту кодирования, предусматривающего использование методов оценки параметров движения.
[29] На фиг. 3 более подробно показано преобразование векторов попиксельного движения в векторы помакроблочного движения, выполняемое в графическом акселераторе 100. На этапе формирования цвета акселератор 100 трехмерной графики, располагающийся на сервере 120, будет генерировать векторы попиксельного движения и сохранять данные в буфере 300 скорости, который также располагается на сервере 120. Буфер 300 скорости может содержать данные только по динамическим объектам, исключая информацию о движении, обусловленную движением камеры игрока. Для получения информации о векторах движения по каждому пикселю в пространстве изображения вычислительный шейдер 302 будет объединять векторы, содержащиеся в буфере 300 скорости, со скоростью камеры для всех статических объектов, еще не включенных в буфер скорости, и сохранять попиксельные результаты в буфере 304 векторов движения. Скорость камеры представляет собой двухмерную (2D) проекцию поворотного и поступательного движения камеры во время формирования кадра. Некоторые графические акселераторы могут использовать немного другие способы расчета этих векторов попиксельного движения для всего экранного пространства, но принципы остаются теми же.
[30] Для макроблока кодер Н.264 по умолчанию использует размеры 16 × 16, которые могут быть уменьшены вплоть до 4 × 4. В примере, показанном на фиг. 3, для упрощения используется макроблок 306 размерами 4 × 4, но указанный способ должен быть экстраполирован таким образом, чтобы он соответствовал размерам макроблока, используемым в кодере. Для макроблока 306 размерами 4 × 4 предусмотрены векторы 308 попиксельного движения, хранящиеся в буфере 304 векторов движения. Эти векторы 308 попиксельного движения должны быть преобразованы (стадия 312) в единый вектор 310 помакроблочного движения, который может быть введен в кодер для его использования при компенсации движения, как это показано на фиг. 4. Получение среднего арифметического множества векторов 308 попиксельного движения представляет собой способ 312 преобразования с низкой сложностью вычислений и коротким временем вычислений.
[31] В необязательном варианте в преобразование 312 среднего арифметического могут быть внесены изменения с целью повышения качества за счет дополнительной сложности вычислений или мощности. Например, могут быть применены методы медианной фильтрации векторов для устранения нарушений сплошности макроблочного векторного поля перед вычислением среднего арифметического с тем, чтобы обеспечить отражение вектором 310 помакроблочного движения большинства пикселей в макроблоке 306. Поскольку результирующий вектор помакроблочного движения выведен из векторов попиксельного движения, которые были изначально рассчитаны по известным данным о движении объекта, эти векторы помакроблочного движения всегда будут обеспечивать более точное отражение в сравнении с векторами, рассчитанными с помощью используемых в настоящее время алгоритмов оценки параметров движения на основе блоков, которые могут выводить движение лишь на основе данных о цвете пикселей.
[32] На фиг. 4 проиллюстрирован способ пропуска сложного в вычислительном отношении процесса оценки параметров движения путем введения векторов движения, генерируемых в графическом акселераторе 100 сервера 120, показанном на фиг. 1, в кодирующий движок 102 сервера 120, показанный на фиг. 1. Как будет подробно разъяснено ниже, результирующий битовый поток 108 кодированных видеоданных передается в вычислительную систему 116 удаленного клиента. Способ, показанный на фиг. 4, иллюстрирует процесс кодирования для одного межкадра, в частности, Р-кадра в соответствии с определением, которое предусмотрено в стандартах видеокодеков серии MPEG. Формирование межкадра (I-кадра) не будет меняться, поскольку при формировании I-кадра компенсация 406 движения не выполняется. Видеокадр 402 с субдискретизированным цветом и данные 404 векторов поблочного движения будут переданы из графического акселератора 100 сразу после их получения. Векторы 404 движения, сгенерированные во время игры, используются для того, чтобы можно было пропустить формирование векторов движения, что в противном случае имело бы место на обычной стадии 426 оценки параметров движения, как это указано в стандарте H.264/MPEG-4 AVC. Стадия 426 оценки параметров движения будет пропущена, а в случае программной реализации кодирующего движка она может быть вообще отключена. Пропуск стадии 426 оценки параметров движения обеспечит существенное уменьшение времени кодирования, что в избытке компенсирует время, затрачиваемое на преобразование данных буфера скорости в соответствующий формат согласно описанию, представленному в привязке к фиг. 3.
[33] Векторы 404 движения, уже преобразованные под соответствующие размеры макроблока, могут использоваться сразу же без внесения каких-либо изменений в процесс компенсации 406 движения. Результаты компенсации 406 движения объединяются с входным видеокадром 402, подвергнутым цветовой субдискретизации, формируя остаточное изображение 430, которое обрабатывается на стадии 408 остаточного преобразования и масштабирования, на стадии 410 квантования и на стадии 412 сканирования, которые обычно предусмотрены в существующих аппаратных или программных видеокодерах.
[34] Стадии распаковки должны выполняться в том случае, если того требует выбранный для реализации стандарт распаковки. Уставки 420 распаковки и распакованное изображение 428 рассчитываются путем применения алгоритмов стандарта кодирования, предусматривающих обратное квантование 414, обратное преобразование и сканирование 416 с последующей распаковкой 418. Отсканированные коэффициенты 412 объединяются с уставками 420 распаковки и кодируются в энтропийном кодере 422 перед передачей в виде битового потока 108 в вычислительную систему 116 удаленного клиента для декодирования в кодеке 110 вычислительной системы удаленного клиента. Распакованное изображение 428 становится вводными данными для компенсации 406 движения в следующем кадре. Битовый поток 108 (включающий в себя кодированные видеоданные) сохраняет формат, заданный стандартом кодирования, таким как H.264/MPEG-4 AVC, который используется при осуществлении настоящего изобретения. Этот пример характерен для стандарта H.264/MPEG-4 AVC, но он может быть, в общем, использован для аналогичных стандартов кодирования, которые используют методы оценки 426 параметров движения и компенсации 406 движения.
ПРИМЕР 1: Эталонное тестирование, демонстрирующее сокращение времени кодирования
[35] Стадия оценки параметров движения при традиционном Н.264-совместимом кодировании обычно является наиболее сложной в вычислительном отношении и времязатратной стадией. Как указано в настоящем документе, повторное использование векторов движения, генерируемых во время игры, может обеспечить существенное сокращение времени кодирования.
[36] В среде тестирования графический акселератор генерировал выходные данные с разрешением 1280 × 720 при скорости 60 кадров в секунду. Время кодирования снималось с кодера х264, работающего в однопотоковом режиме. Работа кодера в однопотоковом режиме увеличивает время кодирования в сравнении с реальным применением, но нормирует результаты измерений к виду одного ядра с тем, чтобы их можно было напрямую сопоставлять друг с другом. Результаты времени кодирования сначала были измерены с использованием немодифицированной оценки параметров движения в кодере, а затем повторно измерены в той же среде с использованием включенной функции оценки параметров движения, генерируемых во время игры.
[37] Была выбрана область низкоинтенсивного движения, включающая в себя вид от первого лица рук игрока, оружия и неподвижной стенки. Руки и оружие игрока циклически проходят стадии незначительного оживление в виде «дрожания», генерируя небольшой объем движения пикселей на относительно небольшом экранном пространстве. Результаты этого теста воспроизведены в Таблице 1, представленной ниже, где показаны результаты по времени задержки с использованием и без использования методов оценки параметров движения, генерируемых во время игры, описанных в настоящем документе. При низкой интенсивности с отключенной функцией оценки параметров движения, генерируемых во время игры, время немодифицированного кодирования составило 12 мс. При активации функции оценки параметров движения, генерируемых во время игры, время кодирования сократилось на 3 мс до 9 мс. Аналогичное сокращение времени задержки было продемонстрировано и для сценариев со средней и высокой интенсивностью движения, где для сценариев со средней интенсивностью движения задержка времени уменьшилась на 17,6%, а для сценариев с высокой интенсивностью движения задержка времени уменьшилась в пределах от 15% до 30%. Эти результаты демонстрируют весьма значительное сокращение времени задержки, когда активирована функция оценки параметров движения, генерируемых во время игры.
[38] Среда тестирования также выявила, что при преобразовании векторов попиксельного движения, генерируемых во время игры, в векторы помакроблочного движения для кодера возникают дополнительные затраты. Однако эти затраты намного меньше в сравнении с выигрышем от сокращения времени кодирования, описанного в предыдущем разделе. При использовании графического акселератора, формирующего видео с разрешением 1280 × 720, преобразование векторов движения из векторов попиксельного движения в векторы помакроблочного движения занимает 0,02 мс. Замеренная экономия времени кодирования на три порядка превышает величину дополнительных затрат на использование векторов движения, генерируемых во время игры, для кодирования.
[39] Предшествующее описание и чертежи должны рассматриваться исключительно как иллюстративно раскрывающие принципы заявленного изобретения. Предполагается, что настоящее изобретение не ограничено предпочтительным вариантом своего осуществления, и оно может быть реализовано самыми разными способами, которые будут понятны любому специалисту в данной области техники. Многочисленные сферы применения настоящего изобретения будут очевидны для специалистов в данной области техники. Следовательно, представляется нецелесообразным ограничивать заявленное изобретение конкретными раскрытыми примерами его осуществления или конкретной конструкцией и режимом работы, показанными и описанными в настоящем документе. Соответственно, все подходящие модификации и эквиваленты могут рассматриваться как входящие в объем заявленного изобретения.
Изобретение относится к системам рендеринга интегрированной графики. Технический результат заключается в обеспечении возможности предоставления как последнего отрендеренного кадра, так и отформатированных данных векторов движения для введения в движок видеокодека. Система для формирования графических данных на компьютере обеспечивает преобразование векторов попиксельного движения в векторы поблочного движения, графический акселератор генерирует один или несколько векторов попиксельного движения, преобразует указанные векторы попиксельного движения в один или несколько векторов поблочного движения и напрямую вводит указанные векторы поблочного движения в движок видеокодека, при этом движок видеокодека преобразует векторы поблочного движения в кодированные видеоданные и передает кодированные видеоданные в вычислительную систему удаленного клиента и при этом компенсация поблочного движения пропускается. 3 н. и 17 з.п. ф-лы, 4 ил., 1 табл.
1. Выполняемый на компьютере способ формирования графических данных, обеспечивающий преобразование векторов попиксельного движения в векторы поблочного движения, включающий в себя следующие стадии:
формирование одного или нескольких векторов попиксельного движения;
преобразование одного или нескольких векторов попиксельного движения в один или несколько векторов поблочного движения в графическом акселераторе; и
введение векторов поблочного движения в движок кодирования видеоинформации;
при этом движок кодирования видеоинформации преобразует один или несколько векторов поблочного движения в кодированные видеоданные, и при этом компенсация поблочного движения пропускается.
2. Способ по п. 1, в котором один или нескольких векторов попиксельного движения сохраняются в буфере скорости до их преобразования.
3. Способ по п. 1, в котором формирование одного или нескольких векторов попиксельного движения включает в себя следующие стадии:
объединение в вычислительном шейдере одного или нескольких векторов попиксельного движения со скоростью камеры для получения попиксельного результата; и
сохранение попиксельного результата в буфере векторов движения.
4. Способ по п. 1, в котором графический акселератор вводит данные векторов поблочного движения в движок кодирования видеоинформации в реальном масштабе времени одновременно с одним или несколькими видеокадрами, подвергнутыми цветовой субдискретизации.
5. Способ по п. 1, в котором кодированные видеоданные декодируются для воспроизведения в вычислительной системе удаленного клиента.
6. Способ по п. 1, в котором движок кодирования видеоинформации выполняет компенсацию движения и остаточную трансформацию с целью преобразования одного или нескольких векторов поблочного движения в кодированные видеоданные.
7. Способ по п. 1, в котором кодированные видеоданные готовятся к передаче на кодирующий движок удаленного клиента путем применения одного или нескольких алгоритмов обратного квантования, обратного преобразования и масштабирования и/или распаковки.
8. Способ по п. 1, в котором один или несколько векторов попиксельного движения преобразуются в один или несколько векторов поблочного движения с использованием способа преобразования, который применяет среднее арифметическое.
9. Система для формирования графических данных на компьютере, обеспечивающая преобразование векторов попиксельного движения в векторы поблочного движения, в которой:
графический акселератор генерирует один или несколько векторов попиксельного движения, преобразует указанные векторы попиксельного движения в один или несколько векторов поблочного движения и напрямую вводит указанные векторы поблочного движения в движок видеокодека; при этом:
движок видеокодека преобразует векторы поблочного движения в кодированные видеоданные и передает кодированные видеоданные в вычислительную систему удаленного клиента и при этом компенсация поблочного движения пропускается.
10. Система по п. 9, в которой один или нескольких векторов попиксельного движения сохраняются в буфере скорости до их преобразования.
11. Система по п. 9, в которой один или несколько векторов попиксельного движения генерируются путем прибавления в вычислительном шейдере одного или нескольких векторов попиксельного движения к скорости камеры для получения попиксельного результата и сохранения попиксельного результата в буфере векторов движения.
12. Система по п. 9, в которой графический акселератор вводит данные векторов поблочного движения в движок видеокодека в реальном масштабе времени одновременно с одним или несколькими видеокадрами, подвергнутыми цветовой субдискретизации.
13. Система по п. 9, в которой движок видеокодека выполняет компенсацию движения и остаточную трансформацию для преобразования одного или нескольких векторов поблочного движения в кодированные видеоданные.
14. Система по п. 9, в которой кодированные видеоданные готовятся к передаче в вычислительную систему удаленного клиента путем применения одного или нескольких алгоритмов обратного квантования, обратного преобразования и масштабирования и/или распаковки.
15. Система по п. 9, в которой кодированные видеоданные сконфигурированы с возможностью декодирования и воспроизведения на дисплее под управлением контроллера дисплея.
16. Система по п. 9, в которой графический акселератор преобразует один или несколько векторов попиксельного движения в один или несколько векторов поблочного движения с использованием способа преобразования, который применяет среднее арифметическое.
17. Выполняемый на компьютере способ для формирования графических данных, обеспечивающий преобразование векторов попиксельного движения в векторы поблочного движения, включающий в себя следующие стадии:
преобразование одного или нескольких векторов попиксельного движения в один или несколько векторов поблочного движения в графическом акселераторе, причем данные векторов поблочного движения передаются на движок кодека; и
прием графическим акселератором одного или нескольких видеокадров, подвергнутых цветовой субдискретизации, причем видеокадры с субдискретизированным цветом передаются на движок кодека;
при этом движок кодека объединяет данные векторов поблочного движения с видеокадрами, подвергнутыми цветовой субдискретизации, для кодирования видеоданных, передаваемых в вычислительную систему удаленного клиента.
18. Способ по п. 17, в котором данные векторов поблочного движения, объединенные с видеокадрами, подвергнутыми цветовой субдискретизации, формируют остаточное изображение.
19. Способ по п. 18, в котором остаточное изображение перед кодированием подвергается дополнительной обработке путем остаточного преобразования и масштабирования, квантования и/или сканирования.
20. Способ по п. 18, дополнительно включающий в себя следующие стадии:
расчет обратного квантования, обратного преобразования и масштабирования; и
распаковку остаточного изображения.
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Токарный резец | 1924 |
|
SU2016A1 |
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
СПОСОБ ПОИСКА ВЕКТОРОВ ПЕРЕМЕЩЕНИЙ В ДИНАМИЧЕСКИХ ИЗОБРАЖЕНИЯХ | 2011 |
|
RU2487489C2 |
Авторы
Даты
2020-10-29—Публикация
2018-04-20—Подача