СИСТЕМЫ И СПОСОБЫ ДЛЯ ОТЛОЖЕННЫХ ПРОЦЕССОВ ПОСТОБРАБОТКИ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ Российский патент 2020 года по МПК H04N19/117 H04N19/85 

Описание патента на изобретение RU2728812C1

Родственные заявки

[1] Настоящая заявка испрашивает приоритет согласно следующим предварительным заявкам на выдачу патента США: №62/488,526, поданной 21 апреля 2017 года; и №62/618,498, поданной 17 января 2018 года.

Область техники, к которой относится настоящее изобретение

[2] В удаленных играх, где игрой на стороне сервера управляет игрок на стороне клиента, предпринимаются попытки кодирования выходных видеоданных акселератора трехмерной графики (3D-графики) в реальном масштабе времени с использованием существующих или оптимизированных под требования пользователей кодирующих устройств. Однако интерактивный характер видеоигр, в частности, контур обратной связи для игрока между выходными видеоданными и данными, вводимыми игроком, делает потоковое игровое видео намного более чувствительным к задержке в сравнении со стандартным потоковым видео. Существующие способы кодирования видеосигналов могут жертвовать вычислительной мощностью и кое-какими иными параметрами ради уменьшения времени кодирования. Новые способы интеграции процесса кодирования в процесс рендеринга видеоданных могут обеспечить существенное уменьшение времени кодирования с сохранением вычислительной мощности, что повышает качество кодированной видеоинформации и сохраняет первоначальный формат битового потока данных, обеспечивая при этом взаимосовместимость существующих аппаратных устройств.

[3] Стандартные конвейеры рендеринга видеоданных отделены от конвейеров кодирования видеоинформации и функционируют в автономном режиме, причем описываемый процесс лишь незначительно пересекается с экспертными знаниями в двух предметных областях. Вследствие этого некоторые визуальные эффекты и процессы постобработки, применяемые в конвейере рендеринга видеоданных, контрпродуктивны для процесса кодирования видеоинформации, что приводит к появлению непреднамеренных визуальных искажений видеоизображения (артефактов), увеличению размеров кодированных видеоданных и продлению времени кодирования. Однако желательно, чтобы эти визуальные эффекты по-прежнему присутствовали в итоговом декодированном видеоизображении.

[4] За счет интеграции конвейеров рендеринга видеоданных и конвейеров кодирования видеоинформации эффекты постобработки могут быть отсрочены, что улучшает процесс кодирования. Например, имитация пленочной зернистости порождает эффект случайно возникающей динамической зернистости, которая сложно поддается обработке обычными кодерами без существенных затрат на улучшение качества или степени сжатия видеоизображений. Некоторые способы кодирования видеоинформации пытаются устранить этот дополнительный визуальный шум до кодирования, но эти способы реализуются только вне сети и являются затратными с точки зрения вычислений. Если отключить этот конкретный процесс постобработки в конвейере рендеринга, то это автоматически облегчит кодирование видеоинформации. Процесс постобработки может быть применен позже после декодирования видео. В случае пленочной зернистости наложение зернистости на декодированное видео не требует больших вычислительных ресурсов, может выполняться в декодере в реальном масштабе времени и может повысить субъективное качество видео за счет сокрытия прочих артефактов кодирования.

[5] Международная заявка на патент № WO 2016172314 А1 («Заявка '314») раскрывает системы и способы, направленные на кодирование контента с учетом художественного замысла. Кодирующий интерфейс пользователя позволяет пользователю задать набор художественных эффектов и сконфигурировать обработку пикселей и/или блоков, соотносящихся с набором художественных эффектов, например, повышение точности воспроизведения, значение коррекции QP (параметра квантования) и/или постобработку. Примеры художественного замысла, которые могут быть добавлены в выходные видеоданные, включают в себя способ восстановления зернистости пленки и добавления ее обратно в видеосигнал до его отображения, когда кодер может устранить эффект пленочной зернистости из исходного сигнала до кодирования и использовать сообщение дополнительной информации расширения (SEI) зернистости пленки для передачи на декодер. Настоящее изобретение отличается от заявки '314, по меньшей мере, тем, что заявка '314 не раскрывает отключение конкретных процессов постобработки в конвейере рендеринга до кодирования с последующим применением этих процессов постобработки после декодирования видео. Как следствие, настоящее изобретение представляет собой усовершенствованную версию этой автоматизированной технологии, поскольку оно предлагает улучшенное кодирование и декодирование видеоинформации без существенных затрат на улучшение качества или степени сжатия видеоизображений. Настоящее изобретение также представляет собой определенное усовершенствование, поскольку оно улучшает итоговую пропускную способность, повышает скорость битового потока и сокращает время кодирования, а также может быть использовано при потоковой передаче видеоданных в реальном масштабе времени с улучшенным качеством видео.

[6] Патент США №9,609,330 («Патент '330») раскрывает контентно-адаптивное энтропийное кодирование режимов и данных ссылочного типа, которое предполагает, что подсистема предварительного анализа кодера анализирует контент для расчета параметров различных типов, полезных для повышения эффективности кодирования видеоинформации и улучшения скоростных характеристик. Эти параметры включают в себя данные о горизонтальном и вертикальном градиенте (Rs, Cs), дисперсию, пространственную сложность одного кадра, временную сложность одного кадра, детектирование смены сцены, оценку диапазона движений, детектирование усиления, оценку интервала прогнозирования, оценку количества объектов, детектирование границ области, расчет карты пространственной сложности, оценку фокусировки и оценку зернистости пленки. Параметры, генерируемые подсистемой предварительного анализа, могут быть затем использованы кодером или квантованы и переданы в декодер. Как и в предыдущем примере, настоящее изобретение отличается от технологии, описанной в заявке '330, по меньшей мере, тем, что указанная технология не блокирует конкретные процессы постобработки в конвейере рендеринга до кодирования с последующим применением этих процессов постобработки после декодирования видео. Следовательно, настоящее изобретение представляет собой усовершенствованную версию автоматизированной технологии, раскрытой в патенте '330, поскольку оно предлагает улучшенное кодирование и декодирование видеоданных без существенных затрат на улучшение качества или степени сжатия видеоизображений; а также потому, что оно может быть использовано при потоковой передаче видеоданных в реальном масштабе времени с улучшенным качеством видео.

[7] Патент США №9,762,911 («Патент '911») раскрывает системы и способы для методики, относящейся к контентно-адаптивному прогнозированию и энтропийному кодированию векторов движения. Раскрытая технология обеспечивает возможность приема первых видеоданных и вторых видеоданных для энтропийного кодирования в модуле энтропийного кодера. Первые видеоданные и вторые видеоданные могут представлять собой данные разных типов (например, данные заголовка, параметры плавного преобразования изображений, параметры синтеза или данные общих карт, или векторы движения, или данные разбиения при внутрикадровом прогнозировании, или иные подобные данные, которые будут описаны ниже). Первый метод энтропийного кодирования может быть определен для первых видеоданных на основании параметров, соотносимых с первыми видеоданными, такими как, например, количество сжатых битов первых видеоданных, заданный индикатор или флаг, соотносимый с первыми видеоданными, заданное пороговое значение или эвристически определяемое пороговое значение, либо иной параметр подобного рода. В некоторых примерах первый метод энтропийного кодирования может быть выбран из числа таких методов, как адаптивное кодирование длин серий символов в коде переменной длины или адаптивное проксикодирование в коде переменной длины. Первые видеоданные могут энтропийно кодироваться с использованием первого метода энтропийного кодирования, и вторые видеоданные могут энтропийно кодироваться с использованием первого метода энтропийного кодирования. И в этом случае настоящее изобретение отличается, по меньшей мере, тем, что технология, раскрытая в патенте '911, не предусматривает избирательной блокировки процессов постобработки в конвейере рендеринга до кодирования с последующим применением этих процессов постобработки после декодирования видео. Как и в предыдущем примере, настоящее изобретение представляет собой усовершенствованную версию автоматизированной технологии патента '911, поскольку оно предлагает улучшенное кодирование и декодирование видеоданных без существенных затрат на улучшение качества или степени сжатия видеоизображений. Настоящее изобретение также представляет собой определенное усовершенствование, поскольку оно повышает итоговую скорость битового потока и сокращает время кодирования, а также может быть использовано при потоковой передаче видеоданных в реальном масштабе времени с улучшенным качеством видео.

[8] Как следует из предшествующего уровня техники, представленного выше, до сих пор существует потребность в усовершенствовании компьютерной технологии предшествующего уровня техники, относящейся к кодированию видеоинформации в игровой среде.

Краткое раскрытие настоящего изобретения

[9] Следовательно, одна из целей заявленного изобретения, раскрытого в настоящем документе, заключается в том, чтобы устранить недостатки известного уровня техники и предложить системы и способы для уменьшения времени задержки и времени кодирования, в которых сервер передает клиентскому приложению команду на измерение потенциальной возможности аппаратных средств клиента и передает клиентскому приложению команду на суммирование известной нагрузки одного или нескольких заданных процессов постобработки-кандидатов на отсрочку для оценки количества процессов постобработки-кандидатов на отсрочку, которые могут быть отложены для аппаратных средств клиента. В клиентском приложении составляется список процессов постобработки-кандидатов на отсрочку, который выстраивается в обратном порядке. После этого сервер получает список процессов постобработки с отсрочкой, пропускает список отложенных процессов постобработки на этапе постобработки первого видеокадра и передает клиентскому приложению команду на рендеринг изображения.

[10] Другая цель настоящего изобретения состоит в том, чтобы предложить системы и способы для уменьшения времени задержки и времени кодирования за счет выполнения клиентским приложением обратного вызова или опроса одного или нескольких событий операционной системы с тем, чтобы определить, выполнять ли повторное измерение потенциальной возможности аппаратных средств клиента.

[11] Еще одна из целей настоящего изобретения состоит в том, чтобы предложить системы и способы для уменьшения времени задержки и времени кодирования за счет измерения потенциальной возможности аппаратных средств клиента путем выявления доступных наборов команд, характеристик памяти, центрального процессора (CPU) и/или графического акселератора (GPU-ускорителя).

[12] А еще одна из целей настоящего изобретения состоит в том, чтобы предложить системы и способы для уменьшения времени задержки и времени кодирования за счет оценки количества процессов постобработки-кандидатов на отсрочку, которые могут быть отложены для аппаратных средств клиента, путем измерения кадровой частоты и/или коэффициента использования ресурсов.

Краткое описание фигур

[13] В полной мере оценить настоящее изобретение и многие его сопутствующие преимущества можно без труда, если глубже вникнуть в них, ознакомившись с последующим подробным описанием, которое поясняется на прилагаемых чертежах, где:

[14] На фиг. 1 представлена блок-схема, иллюстрирующая один из примеров осуществления акселератора 3D-графики, который рейдирует видео для его просмотра на удаленном клиенте, согласно одному из вариантов осуществления настоящего изобретения;

[15] На фиг. 2 представлена блок-схема алгоритма, иллюстрирующая примеры стадий, потребных для сокращения времени кодирования или повышения субъективного качества видео за счет отсрочки процессов попиксельной постобработки согласно одному из вариантов осуществления настоящего изобретения;

[16] На фиг. 3 представлена схема, иллюстрирующая один из примеров минималистической реализации отложенного попиксельного качества на этапах рендеринга, кодирования и декодирования видео согласно одному из вариантов осуществления настоящего изобретения; а

[17] На фиг. 4 представлена блок-схема алгоритма, иллюстрирующая пример осуществления связи между сервером и клиентом для синхронизации списка отложенных процессов постобработки согласно одному из вариантов осуществления настоящего изобретения.

Подробное раскрытие предпочтительных вариантов осуществления настоящего изобретения

[18] При описании предпочтительных вариантов осуществления настоящего изобретения, проиллюстрированных на чертежах, во избежание двусмысленного толкования используется особая терминология. Однако предполагается, что настоящее изобретение не ограничено выбранными конкретными терминами, причем следует понимать, что каждый конкретный термин включает в себя все технические эквиваленты, которые действуют аналогичным образом для достижения аналогичной цели. Некоторые предпочтительные варианты осуществления настоящего изобретения описаны исключительно в иллюстративных целях, причем следует понимать, что заявленное изобретение может быть реализовано в иных формах, специально не показанных на чертежах.

[19] Конвейеры постобработки могут выполнять множество сложных процессов, включая фильтрацию-сглаживание, генерацию границ объекта с иллюзией непрерывного движения, коррекцию глубины резкости, цветокоррекцию, размытие изображения, создание эффекта пленочной зернистости, хроматическую аберрацию, каширование и тональное отображение. Некоторые из этих эффектов активно влияют на процессы кодирования, продлевая время кодирования и уменьшая степень сжатия в сравнении с несжатыми кадрами. Отсрочка применения некоторых процессов постобработки до окончания декодирования кадра может повысить субъективное качество видео и обеспечить дополнительные положительные эффекты.

[20] Во время разработки клиентского приложения должен быть проанализирован баланс между временем кодирования, полосой пропускания и субъективным качеством видео для каждого процесса постобработки в конвейере рендеринга, чтобы определить, какие процессы постобработки являются подходящими кандидатами на отсрочку. Список кандидатов на отсрочку будет использован клиентом во время прогона с тем, чтобы определить процессы постобработки, которые могут быть отложены на клиенте.

[21] Каждый процесс постобработки должен быть протестирован для измерения его влияния на процесс кодирования. Сначала через неизмененные конвейеры рендеринга и кодирования должен быть пропущен ряд опорных кадров, и должно быть замерено время кодирования и размеры кодированных кадров. После этого процессы постобработки должны быть по очереди отключены в конвейере рендеринга, а время кодирования и размеры кодированных кадров должны быть сопоставлены с контрольными результатами. Эти измерения помогут получить информацию о том, какие процессы постобработки являются подходящими кандидатами на отсрочку. Практически любой эффект постобработки, который увеличивает энтропию изображения, измеренную по увеличенным размерам кодированного кадра, по всей вероятности будет походящим кандидатом на отсрочку. Например, такой процесс постобработки, как имитация пленочной зернистости, добавляет в изображение случайные шумы, что приводит к уменьшению степени сжатия. В определенных ситуациях увеличить энтропию изображения и снизить степень сжатия может хроматическая аберрация и размытие изображения. Не должны подлежать отсрочке практически все эффекты постобработки, которые уменьшают энтропию или данные об изображении, так как уменьшение энтропии приводит к уменьшению потребления ресурсов при кодировании.

[22] Процессы постобработки, которые не изменяют энтропию изображения, могут быть выбраны в качестве кандидатов на отсрочку для достижения второстепенных целей, таких как улучшение субъективного качества видео или снижение нагрузки на сервер. Например, цветокоррекция может не влиять на время кодирования или коэффициент использования полосы пропускания, но ее отсрочка на клиенте может привести к измеряемому снижению вычислительной нагрузки на стороне сервера. Аналогичным образом фильтрация-сглаживание при ее отсрочке может улучшить субъективное качество видео и существенно снизить нагрузку на стороне сервера. Должно быть проведено дополнительное тестирование с тем, чтобы определить, целесообразно ли откладывать энтропийно-нейтральные процессы постобработки. Например, аналогичная процедура тестирования с использованием опорных кадров может быть использована для сравнения нагрузки на сервер до и после отсрочки энтропийно-нейтрального процесса постобработки.

[23] Клиентское приложение должно быть выполнено с возможностью вычисления постобработки по каждому кандидату на отсрочку. Для передачи этих функций в клиентское приложение может потребоваться определенная реорганизация кода. Процессы постобработки в конце конвейера рендеринга, такие как создание эффекта пленочной зернистости, хроматическая аберрация или каширование, обычно легче передаются в клиентское приложение в сравнении с теми процессами постобработки, которые выполняются ранее в конвейере рендеринга, такими как фильтрация-сглаживание или коррекция глубины резкости. Могут быть случаи, когда отсрочка процесса постобработки приводит к необходимости его применения в нелинейном пространстве, хотя обычно он применяется в линейном пространстве, что относится к процессам постобработки, которые применяются до тонального отображения, таким как, например, хроматическая аберрация, размытие изображения или каширование. Процесс постобработки может быть применен непосредственно в гамма-пространстве, и он может быть математически некорректным, но разница может быть незаметной для стороннего наблюдателя, и общее субъективное качество может быть улучшено. В противном случае, за счет некоторых циклов вычислений на стороне клиента и снижения качества изображения, клиентское приложение может преобразовать изображение обратно в линейное пространство, применить процесс постобработки, а потом преобразовать его обратно в гамма-пространство. Обратное преобразование в линейное пространство в определенной степени жертвует качеством, поскольку изображение во время кодирования будет квантоваться и сжиматься. Эти решения в отношении субъективного качества должны быть приняты на этапе разработки клиентского приложения.

[24] Все процессы постобработки, которые могут выполняться клиентским приложением, образуют основу списка процессов-кандидатов на отсрочку. Процессы-кандидаты на отсрочку должны располагаться в списке в том же порядке, в котором они появляются в конвейере рендеринга, с целью сохранения всех взаимозависимостей. Каждый процесс-кандидат на отсрочку в списке должен также сочетаться с требованиями к аппаратным средствам, таким как минимальные требования к памяти или требования к GPU-ускорителю.

[25] На фиг. 1 проиллюстрирован один из примеров осуществления системы, в которой предусмотрена отсрочка процессов постобработки попиксельного качества во время рендеринга видеоданных. Эта иллюстративная система представляет собой удаленную прикладную систему для потоковой передачи игровых видеоданных в реальном масштабе времени, которая в сравнении с видеосистемами других типов в наибольшей степени выигрывает от улучшения субъективного качества видео и сокращения времени кодирования за счет отсрочки процессов попиксельного качества. В этой системе сервер 100 служит для размещения программы 102 видеоигр и графического акселератора 104, который рейдирует выходные видеоданные. Видео декодируется в кодеке 106, а кодированные видеоданные 108 передаются удаленному клиенту. Архитектура сервера 100 представляет собой любое сочетание аппаратных или программных средств, которое может поддерживать функции как графического акселератора 104, так и кодека 106. В приведенном примере графический акселератор 104 может быть реализован, например, в виде GPU-ускорителя 110, исполняющего программу 102 видеоигр, загруженную в определенную машиночитаемую память 112, тогда как кодек 106 (также называемый кодером) может быть реализован в виде процессора CPU 114, исполняющего программу кодирования видеоинформации.

[26] Вычислительная система 116 удаленного клиента выполнена с возможностью прогона кодека 118 на стороне клиента для декодирования передаваемых кодированных видеоданных 108 и выполнения клиентского приложения 120 с целью применения процессов попиксельной постобработки с отсрочкой. Вычислительная система 116 клиента также содержит контроллер 122 дисплея, управляющего аппаратными средствами 124 дисплея. Входные данные с внешних устройств 126 ввода на стороне клиента будут преобразованы клиентским приложением 120 в данные 128 управления, которые передаются обратно в игровую программу 102, выполняемую на сервере 100. Исходя из конкретной реализации отложенной постобработки попиксельного качества, может потребоваться передача некоторых дополнительных данных 128 управления из программы 102 на стороне сервера в клиентское приложение 120, чтобы гарантировать применение надлежащих процессов постобработки для данного видеокадра.

[27] На фиг. 2 проиллюстрированы стадии, потребные для откладывания процессов постобработки в системе, которые рейдируют, кодируют и декодируют видео. На стадии 200 конвейер рендеринга начинается как обычно на сервере 100. В процесс рендеринга нет необходимости внесения каких-либо изменений до этапа постобработки.

[28] На стадии 202, а именно на этапе постобработки в процессе рендеринга видеоданных, осуществляемой графическим акселератором 104 сервера 100, должны быть пропущены все процессы постобработки, подлежащие отсрочке. Может быть пропущено любое количество процессов постобработки, если вычислительная система 116 клиента обладает вычислительной мощностью, необходимой для применения всех отложенных процессов постобработки. Фиг. 4 в деталях иллюстрирует, как сервер 100 определяет, какие процессы постобработки будут отложены. После пропуска какого-либо процесса постобработки конвейер рендеринга должен продолжить свою работу до тех пор, пока кадр не будет полностью рендирован.

[29] На стадии 204 осуществляется кодирование итогового кадра в кодеке 106. На основании выбора отложенных процессов постобработки время кодирования может быть сокращено, а кодированным данным может потребоваться более узкая полоса пропускания. Например, если отложен такой процесс постобработки, как создание эффекта пленочной зернистости, то кодеку 106 потребуется меньше времени для кодирования кадра без внесенного шума.

[30] На стадии 206 кодированные видеоданные 108 сохраняются в вычислительной системе 116 клиента или передаются в указанную систему по мере необходимости. При передаче потокового игрового видео в реальном масштабе времени, как в примере, который проиллюстрирован на фиг. 1, видеоданные 108 передаются сразу же. В альтернативных вариантах осуществления системы согласно настоящему изобретению кодированные видеоданные 108 могут сохраняться на сервере 100 для потокового воспроизведения по запросу или сохраняться на физических носителях данных.

[31] На стадии 208 кодированное видео декодируется в кодеке 118 вычислительной системы 116 удаленного клиента. В процесс декодирования нет необходимости внесения каких-либо изменений.

[32] На стадии 210 программное приложение может применять любые отложенные процессы постобработки в том же порядке, в котором они должны были появляться в конвейере рендеринга. Этому программному приложению, представленному на фиг. 1 в виде клиентского приложения 120, может также потребоваться прием данных 128 управления с сервера 100, если отложенные процессы постобработки меняются от кадра к кадру. Может также возникнуть необходимость в передаче клиентским приложением 120 данных 128 управления, если видео является интерактивным, как в системах передачи потокового игрового видео. Клиентское приложение 120 может быть неплотным в зависимости от требований отложенных процессов постобработки к вычислительной сложности, что позволяет расширить диапазон вычислительной мощности на стороне клиента.

[33] На фиг. 3 проиллюстрирована реализация отложенного процесса постобработки в примере осуществления системы, который представлен на фиг. 1. Обычный конвейер трехмерного (3D) рендеринга, обозначенный как «Конвейер рендеринга» (стадия 300), располагающийся на сервере 100, состоит из стадии 302 «Наложение», стадии 304 «Геометрия» и фаз растеризации, обозначенных как «Растеризация» (стадия 306). Выходными данными фазы растеризации на стадии 306 «Растеризация» является полный видеокадр, который часто расширяется путем последующей обработки на стадии 308 «Постобработка». Некоторые процессы постобработки негативно влияют на время кодирования или пропускную способность в ходе выполнения кодирования на стадии 310 «Кодирование», и эти процессы постобработки пропускаются во время постобработки на стадии 308 «Постобработка», если клиент может применить их позже. Остальные процессы постобработки, т.е. те, которые не отложены для клиента 116, применяются как обычно во время постобработки на стадии 308 «Постобработка». Выходной видеокадр кодируется на стадии 310 «Кодирование» и передается на стадии 312 «Передача».

[34] После получения клиентом 115 кодированного видеокадра, этот видеокадр декодируется на стадии 314 «Декодирование». На этом этапе все отложенные процессы постобработки применяются на стадии 316 «Отложенная постобработка». В случае с пленочной зернистостью, например, эффект движущегося изображения может быть заблаговременно кэширован и наложен на декодированный кадр с относительно низкими затратами на вычисление. Для цветокоррекции, псевдосмешения цветов и увеличения резкости видео уже существуют решения в реальном масштабе времени, которые могут применяться с учетом вычислительной мощности клиента. Итоговый видеокадр отображается на стадии 318 «Отображение».

[35] На фиг. 4 проиллюстрирован процесс, в ходе которого клиентское приложение 120 составляет список откладываемых процессов постобработки и передает этот список на сервер 100.

[36] На стадии 400 клиентское приложение 120 измеряет потенциальную возможность аппаратных средств клиента по определению того, какие процессы постобработки могут быть отложены на клиенте 116. Эта возможность клиента может быть измерена путем выявления в информации об аппаратных средствах характерных признаков, таких как имеющиеся наборы команд, характеристики памяти, CPU или GPU-ус корите ля.

[37] На стадии 402 клиентское приложение 120 считывает список процессов-кандидатов на отсрочку и отбрасывает любые процессы-кандидаты на отсрочку, в отношении которых клиентом не соблюдены аппаратные требования. Процессы постобработки-кандидаты на отсрочку должны быть подвергнуты сравнительному анализу на клиенте с целью измерения производительности клиента в реальном масштабе времени. Процессы-кандидаты на отсрочку по очереди добавляются в процесс сравнительного анализа до тех пор, пока клиент не потеряет возможность поддерживать требуемую производительность, измеряемую по кадровой частоте, коэффициенту использования ресурсов или какому-либо иному результату измерения в реальном масштабе времени. Сравнительный анализ может выполняться во время установки клиентского приложения, при первоначальном нагружении клиентского приложения 120 или при каждом нагружении приложения.

[38] Клиент 116 должен выполнить постобработку по максимальному числу процессов-кандидатов на отсрочку. Список на отсрочку выстраивается в обратном порядке для сохранения общего порядка выполнения операций, приближенного к первоначальному порядку в конвейере рендеринга. Например, мобильное устройство может быть выполнено с возможностью прогона только последних процессов постобработки, ноутбук может быть выполнен с возможностью прогона трех процессов постобработки в конце конвейере рендеринга, а современный настольный компьютер может быть выполнен с возможностью прогона всех процессов постобработки из списка процессов-кандидатов на отсрочку.

[39] На стадии 404 клиент 116 передает на сервер 100 список процессов постобработки, подлежащих отсрочке.

[40] На стадии 202 сервер 100 использует список отложенных процессов постобработки на этапе постобработки первого видеокадра. Все процессы постобработки по этому списку пропускаются.

[41] На стадии 206 начинается передача клиенту 116 потока кодированных видеоданных 108. Поскольку клиент 116 передал список процессов-кандидатов на отсрочку до того, как были сгенерированы какие-либо кадры, отсутствует необходимость передачи клиенту 116 каких-либо дополнительных метаданных с сервера 100. Клиент 116 автоматически узнает, какие процессы постобработки были отложены.

[42] На стадии 210 клиент 116 применяет все процессы постобработки из списка процессов-кандидатов на отсрочку. Клиент 116 продолжит накладывать отложенные процессы постобработки на последующие кадры.

[43] Могут быть предусмотрены сценарии, где в процессе выполнения программы потенциальная возможность клиента изменяется, что требует внесения изменений в список процессов-кандидатов на отсрочку. Например, если клиентское приложение выполняется на мобильном устройстве, которое только что перешло в режим экономии заряда батареи, то клиенту может потребоваться сокращение списка отложенных процессов постобработки. В этом примере клиентскому приложению необходимо было бы зафиксировать обратный вызов или опросить события операционной системы (OS) с тем, чтобы перехватить изменения в состоянии батареи. На стадии 412 клиентское приложение 120 отвечает на недавнее изменение среды путем повторного измерения потенциальной возможности клиента. Изменением среды может быть любое изменение, которое влияет на рабочие характеристики аппаратных средств вычислительной системы 116 удаленного клиента. В приведенном выше примере режим экономии заряда батареи уменьшит тактовую частоту на множитель, который может быть сразу же считан. Изменение множителя тактовой частоты может дать примерную оценку изменения потенциальной возможности клиента. В противном случае этап сравнительного анализа, описанный в привязке к стадии 402, может быть дополнен еще одним эталонным тестированием в режиме экономии заряда батареи.

[44] В случае изменения потенциальной возможности клиента клиентское приложение 120 повторно определит, какие процессы постобработки могут быть отложены, что выполняется на стадии 414. В примере с режимом экономии заряда батареи список на отсрочку может быть сокращен пропорционально изменению множителя тактовой частоты. Например, если режим экономии заряда батареи уменьшает тактовую частоту на 50%, то список на отсрочку сократится, по меньшей мере, наполовину. Если клиент 116 откладывает четыре процесса постобработки, то список сократится до двух процессов постобработки. В противном случае, если эталонное тестирование режима заряда батареи было проведено заранее, список на отсрочку уже известен.

[45] Если список на отсрочку был изменен, то на стадии 416 клиент 116 передаст на сервер 100 измененный список на отсрочку. Клиент 116 продолжит применение процессов постобработки из первоначального списка на отсрочку до тех пор, пока он не получит сообщение, переданное сервером 100, которое в предпочтительном варианте содержит другой список отложенных процессов постобработки.

[46] На стадии 418 сервер 100 применяет измененный список на отсрочку к следующему доступному кадру. Для синхронизации с клиентом 116 на этот кадр могут быть наложены определенные метаданные.

[47] На стадии 420 осуществляется передача кадра кодированных видеоданных 108 вместе с его соответствующими метаданными.

[48] Клиент находится в режиме ожидания до тех пор, пока он не получит флаг метаданных. На стадии 422 клиент 116 начинает обрабатывать кадры в соответствии с измененным списком на отсрочку. Клиент 116 продолжит применение отложенных процессов постобработки в соответствии с измененным списком на отсрочку. В случае повторного изменения среды выполнения список на отсрочку может быть снова сокращен или дополнен. В случае сокращения списка на отсрочку вследствие временного изменения среды выполнения, такого как переход мобильного устройства в режим экономии заряда батареи, клиентское приложение 120 должно при первой же возможности дополнить список на отсрочку с тем, чтобы в любой отдельно взятый момент времени было отложено максимально возможное число процессов постобработки.

ПРИМЕР 1: Результаты эталонного тестирования

[49] Имитация пленочной зернистости порождает эффект случайно возникающего визуального шума, что оказывает существенное влияние на степень сжатия кодера. Применение процессов постобработки, таких как имитация пленочной зернистости, на стороне клиента приводит к уменьшению размеров кодированных кадров.

[50] Для теста были взяты экспериментальные значения скорости передачи битового потока, а графический акселератор генерировал выходные данные с разрешением 1280×720 при скорости 60 кадров в секунду и усреднением по 60 кадрам для нахождения средней скорости передачи битового потока. Измеренные значения сравнивают скорость передачи битового потока видеоданных при наложении эффекта пленочной зернистости на стороне сервера со скоростью передачи битового потока видеоданных при отсрочке имитации пленочной зернистости для клиента. Эти измерения были повторены для трех разных вариантов имитации пленочной зернистости и для двух разных уставок качества кодера. Пленочная зернистость 1 отображает наименьший размер зерна, а пленочная зернистость 3 отображает наибольший размер зерна. Результаты тестирования воспроизведены ниже в Таблице 1 и Таблице 2. В Таблице 1 показаны результаты с использованием уставки качества кодера, равной 16, тогда как в Таблице 2 показаны результаты с использованием уставки качества кодера, равной 20.

[51] Если взглянуть на результаты тестирования, то становится ясно, что процессы постобработки, такие как имитация пленочной зернистости, приводят к увеличению размеров кодированных кадров, что является нежелательным. Эти негативные последствия проявляются сильнее при более высоких уставках качества кодера, и проявляются еще больше по мере увеличения объема внесенного шума. Однако за счет отсрочки имитации пленочной зернистости для клиента можно обеспечить существенное уменьшение скорости передачи битового потока, как это показано в Таблицах 1 и 2, где скорость передачи битового потока уменьшена, соответственно, до 270 Кбайт/с и 140 Кбайт/с.Вне зависимости от объема внесенного шума, измеренного в проведенных тестах по размерам пленочного зерна, скорость передачи битового потока остается стабильной при заданном качестве кодера.

[52] Аналогичным образом, как это показано ниже в таблице 3, было замерено время экспериментального кодирования, когда графический акселератор генерировал выходные данные с разрешением 1280×720 при скорости 60 кадров в секунду при разных уставках качества кодера. Измеренные значения сравнивают время кодирования для потока видеоданных при наложении эффекта пленочной зернистости на стороне сервера с временем кодирования потока видеоданных при отсрочке имитации пленочной зернистости для клиента. Размеры пленочного зерна остались неизменными по результатам всех измерений. Как явствует из Таблицы 3, уменьшение времени кодирования с помощью методов, описанных в настоящем документе, более отчетливо проявляется при более высоких уставках качества кодера.

[53] Предшествующее описание и чертежи должны рассматриваться исключительно как иллюстративно раскрывающие принципы заявленного изобретения. Предполагается, что настоящее изобретение не ограничено предпочтительным вариантом своего осуществления, и оно может быть реализовано самыми разными способами, которые будут понятны любому специалисту в данной области техники. Многочисленные сферы применения настоящего изобретения будут очевидны для специалистов в данной области техники. Следовательно, представляется нецелесообразным ограничивать заявленное изобретение конкретными раскрытыми примерами его осуществления или конкретной конструкцией и режимом работы, показанными и описанными в настоящем документе. Соответственно, все подходящие модификации и эквиваленты могут рассматриваться как входящие в объем заявленного изобретения.

Похожие патенты RU2728812C1

название год авторы номер документа
СИСТЕМЫ И СПОСОБЫ ДЛЯ ОТЛОЖЕННЫХ ПРОЦЕССОВ ПОСТОБРАБОТКИ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ 2021
  • Копьец, Майкл
RU2825728C2
СИСТЕМЫ И СПОСОБЫ ДЛЯ ОТЛОЖЕННЫХ ПРОЦЕССОВ ПОСТОБРАБОТКИ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ 2018
  • Копьец, Майкл
RU2744982C2
СИСТЕМЫ И СПОСОБЫ ДЛЯ ВЕКТОРОВ ДВИЖЕНИЯ, ГЕНЕРИРУЕМЫХ ВО ВРЕМЯ ИГРЫ 2018
  • Копьец, Микаэль
RU2735241C1
СИСТЕМЫ И СПОСОБЫ ДЛЯ ВЕКТОРОВ ДВИЖЕНИЯ, ГЕНЕРИРУЕМЫХ ВО ВРЕМЯ ИГРЫ 2018
  • Копьец, Микаэль
RU2760974C2
СИСТЕМЫ И СПОСОБЫ ДЛЯ РЕНДЕРИНГА И ВЫДАЧИ ПОДСКАЗОК КОДЕРУ НА ОСНОВАНИИ ОЦЕНКИ ПРЕДВАРИТЕЛЬНО КОДИРОВАННОЙ НАГРУЗКИ 2018
  • Копьец, Майкл
RU2720067C1
СИСТЕМЫ И СПОСОБЫ ДЛЯ РЕНДЕРИНГА И ВЫДАЧИ ПОДСКАЗОК КОДЕРУ НА ОСНОВАНИИ ОЦЕНКИ ПРЕДВАРИТЕЛЬНО КОДИРОВАННОЙ НАГРУЗКИ 2018
  • Копьец, Майкл
RU2752723C2
СИСТЕМЫ И СПОСОБЫ ВЫДАЧИ ПОДСКАЗОК КОДЕРУ НА ОСНОВАНИИ ОЦЕНКИ ПРЕДВАРИТЕЛЬНО КОДИРОВАННОЙ НАГРУЗКИ 2018
  • Копьец, Майкл
RU2753157C2
СИСТЕМЫ И СПОСОБЫ КОМПЕНСАЦИИ ДВИЖЕНИЯ НА ОСНОВАНИИ ВВОДА ИГРОКА 2020
  • Копьец, Майкл
RU2813614C2
СИСТЕМЫ И СПОСОБЫ КОМПЕНСАЦИИ ДВИЖЕНИЯ НА ОСНОВАНИИ ВВОДА ИГРОКА 2018
  • Копьец, Майкл
RU2729705C2
КОМПЕНСАЦИЯ ДВИЖЕНИЯ НА ОСНОВАНИИ ВВОДА ИГРОКА ПОСРЕДСТВОМ ПРОГНОЗИРОВАНИЯ ВЕКТОРОВ ДВИЖЕНИЯ 2018
  • Копьец, Майкл
RU2726284C1

Иллюстрации к изобретению RU 2 728 812 C1

Реферат патента 2020 года СИСТЕМЫ И СПОСОБЫ ДЛЯ ОТЛОЖЕННЫХ ПРОЦЕССОВ ПОСТОБРАБОТКИ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении времени задержки и времени кодирования. Выполняемый на компьютере способ откладывания процессов постобработки включает передачу клиентскому приложению команды на измерение потенциальной возможности аппаратных средств клиента; и передачу клиентскому приложению команды на суммирование известной нагрузки одного или нескольких заданных процессов постобработки-кандидатов на отсрочку для оценки количества процессов постобработки-кандидатов на отсрочку, которые могут быть отложены для аппаратных средств клиента; при этом составляется список процессов постобработки-кандидатов на отсрочку, выстраиваемый в обратном порядке; и при этом сервер получает список процессов постобработки, подлежащих отсрочке, пропускает список отложенных процессов постобработки на этапе постобработки первого видеокадра и передает клиентскому приложению команду на рендеринг изображения. 4 н. и 20 з.п. ф-лы, 4 ил., 3 табл.

Формула изобретения RU 2 728 812 C1

1. Выполняемый на компьютере способ откладывания процессов постобработки, включающий в себя следующие стадии:

передачу клиентскому приложению команды на измерение потенциальной возможности аппаратных средств клиента; и

передачу клиентскому приложению команды на суммирование известной нагрузки одного или нескольких заданных процессов постобработки-кандидатов на отсрочку для оценки количества процессов постобработки-кандидатов на отсрочку, которые могут быть отложены для аппаратных средств клиента;

при этом составляется список процессов постобработки-кандидатов на отсрочку, выстраиваемый в обратном порядке; и

при этом сервер получает список процессов постобработки, подлежащих отсрочке, пропускает список отложенных процессов постобработки на этапе постобработки первого видеокадра и передает клиентскому приложению команду на рендеринг изображения.

2. Компьютеризованный способ по п. 1, в котором сервер применяет обновленный список на отсрочку к следующему доступному видеокадру.

3. Компьютеризованный способ по п. 1, в котором сервер возвращает первый или следующий доступный видеокадр в клиентское приложение с флагом метаданных.

4. Компьютеризованный способ по п. 1, дополнительно включающий в себя стадию передачи сервером кодированных видеоданных в клиентское приложение без метаданных, соотносимых с процессами постобработки.

5. Компьютеризованный способ по п. 1, в котором список процессов постобработки-кандидатов на отсрочку повторно рассчитывается с учетом изменений состояния батареи аппаратных средств клиента.

6. Система для откладывания процессов постобработки, при этом сервер осуществляет по сети следующие действия:

передает клиентскому приложению команду на измерение потенциальной возможности аппаратных средств клиента; и

передает клиентскому приложению команду на суммирование известной нагрузки одного или нескольких заданных процессов постобработки-кандидатов на отсрочку для оценки количества процессов постобработки-кандидатов на отсрочку, которые могут быть отложены для аппаратных средств клиента;

при этом составляется список процессов постобработки-кандидатов на отсрочку, который выстраивается в обратном порядке; и

при этом сервер получает список процессов постобработки, подлежащих отсрочке, пропускает список отложенных процессов постобработки на этапе постобработки первого видеокадра и передает клиентскому приложению команду на рендеринг изображения.

7. Система по п. 6, в которой сервер применяет обновленный список на отсрочку к следующему доступному видеокадру.

8. Система по п. 6, в которой сервер возвращает первый или следующий доступный видеокадр в клиентское приложение с флагом метаданных.

9. Система по п. 6, дополнительно включающая в себя стадию передачи сервером кодированных видеоданных в клиентское приложение без метаданных, соотносимых с процессами постобработки.

10. Система по п. 6, в которой список процессов постобработки-кандидатов на отсрочку повторно рассчитывается с учетом изменений состояния батареи аппаратных средств клиента.

11. Выполняемый на компьютере способ откладывания процессов постобработки, включающий в себя следующие стадии:

идентификацию одного или нескольких процессов постобработки, подлежащих отсрочке;

пропуск одного или нескольких идентифицированных процессов постобработки;

кодирование с помощью кодека одного или нескольких кадров в виде одного или нескольких кодированных видеоизображений, причем пропущенные процессы постобработки при кодировании не используются; и

передачу одного или нескольких кодированных видеоизображений на компьютер клиента, причем клиент применяет пропущенные процессы постобработки к кодированному видеоизображению до его выдачи.

12. Компьютеризованный способ по п. 11, в котором пропуск процессов постобработки осуществляется в графическом акселераторе.

13. Компьютеризованный способ по п. 11, в котором, по меньшей мере, одно из кодированных видеоизображений сохраняется на сервере перед передачей клиенту.

14. Компьютеризованный способ по п. 13, в котором кодированные видеоизображения сохраняются на сервере для потокового воспроизведения по запросу или на физических носителях данных.

15. Компьютеризованный способ по п. 11, в котором идентификация процессов постобработки-кандидатов на отсрочку проводится с учетом вычислительной мощности клиента.

16. Компьютеризованный способ по п. 11, в котором кодированные видеоизображения предназначены для передачи потокового игрового видео.

17. Компьютеризованный способ по п. 11, в котором сервер получает данные управления от клиента.

18. Система для откладывания процессов постобработки, при этом сервер осуществляет по сети следующие действия:

идентифицирует один или несколько процессов постобработки, подлежащих отсрочке;

пропускает один или несколько идентифицированных процессов постобработки;

кодирует с помощью кодека один или несколько кадров в виде одного или нескольких кодированных видеоизображений, причем пропущенные процессы постобработки при кодировании не используются; и

передает на компьютер клиента одно или несколько кодированных видеоизображений, причем, по меньшей мере, одно из кодированных видеоизображений сохраняется на сервере перед передачей клиенту.

19. Система по п. 18, в которой пропуск процессов постобработки осуществляется в графическом акселераторе.

20. Система по п. 18, в которой, по меньшей мере, одно из кодированных видеоизображений сохраняется на сервере перед передачей клиенту.

21. Система по п. 20, в которой кодированные видеоизображения сохраняются на сервере для потокового воспроизведения по запросу или на физических носителях данных.

22. Система по п. 18, в которой идентификация процессов постобработки-кандидатов на отсрочку проводится с учетом вычислительной мощности клиента.

23. Система по п. 18, в которой кодированные видеоизображения предназначены для передачи потокового игрового видео.

24. Система по п. 18, в которой сервер получает от клиента данные управления.

Документы, цитированные в отчете о поиске Патент 2020 года RU2728812C1

US 8952962 B2, 10.02.2015
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор 1923
  • Петров Г.С.
SU2005A1
Многоступенчатая активно-реактивная турбина 1924
  • Ф. Лезель
SU2013A1
US 8559798 B2, 15.10.2013
СПОСОБ И УСТРОЙСТВО ДЛЯ ЭНТРОПИЙНОГО КОДИРОВАНИЯ ВИДЕО И СПОСОБ И УСТРОЙСТВО ДЛЯ ЭНТРОПИЙНОГО ДЕКОДИРОВАНИЯ ВИДЕО 2013
  • Ким Ил-Коо
RU2612624C2

RU 2 728 812 C1

Авторы

Копьец, Майкл

Даты

2020-07-31Публикация

2018-04-20Подача