RU2728812C1 - Системы и способы для отложенных процессов постобработки при кодировании видеоинформации - Google Patents
Системы и способы для отложенных процессов постобработки при кодировании видеоинформации Download PDFInfo
- Publication number
- RU2728812C1 RU2728812C1 RU2019136651A RU2019136651A RU2728812C1 RU 2728812 C1 RU2728812 C1 RU 2728812C1 RU 2019136651 A RU2019136651 A RU 2019136651A RU 2019136651 A RU2019136651 A RU 2019136651A RU 2728812 C1 RU2728812 C1 RU 2728812C1
- Authority
- RU
- Russia
- Prior art keywords
- post
- client
- processes
- deferred
- processing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 157
- 238000012805 post-processing Methods 0.000 title claims abstract description 132
- 230000008569 process Effects 0.000 title claims abstract description 125
- 230000002441 reversible effect Effects 0.000 claims abstract description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000009877 rendering Methods 0.000 abstract description 17
- 230000000694 effects Effects 0.000 abstract description 15
- 230000003111 delayed effect Effects 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000004075 alteration Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении времени задержки и времени кодирования. Выполняемый на компьютере способ откладывания процессов постобработки включает передачу клиентскому приложению команды на измерение потенциальной возможности аппаратных средств клиента; и передачу клиентскому приложению команды на суммирование известной нагрузки одного или нескольких заданных процессов постобработки-кандидатов на отсрочку для оценки количества процессов постобработки-кандидатов на отсрочку, которые могут быть отложены для аппаратных средств клиента; при этом составляется список процессов постобработки-кандидатов на отсрочку, выстраиваемый в обратном порядке; и при этом сервер получает список процессов постобработки, подлежащих отсрочке, пропускает список отложенных процессов постобработки на этапе постобработки первого видеокадра и передает клиентскому приложению команду на рендеринг изображения. 4 н. и 20 з.п. ф-лы, 4 ил., 3 табл.
Description
Родственные заявки
[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] Предшествующее описание и чертежи должны рассматриваться исключительно как иллюстративно раскрывающие принципы заявленного изобретения. Предполагается, что настоящее изобретение не ограничено предпочтительным вариантом своего осуществления, и оно может быть реализовано самыми разными способами, которые будут понятны любому специалисту в данной области техники. Многочисленные сферы применения настоящего изобретения будут очевидны для специалистов в данной области техники. Следовательно, представляется нецелесообразным ограничивать заявленное изобретение конкретными раскрытыми примерами его осуществления или конкретной конструкцией и режимом работы, показанными и описанными в настоящем документе. Соответственно, все подходящие модификации и эквиваленты могут рассматриваться как входящие в объем заявленного изобретения.
Claims (40)
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, в которой сервер получает от клиента данные управления.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762488526P | 2017-04-21 | 2017-04-21 | |
US62/488,526 | 2017-04-21 | ||
US201862618498P | 2018-01-17 | 2018-01-17 | |
US62/618,498 | 2018-01-17 | ||
PCT/US2018/028582 WO2018195431A1 (en) | 2017-04-21 | 2018-04-20 | Systems and methods for deferred post-processes in video encoding |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020124345A Division RU2744982C2 (ru) | 2017-04-21 | 2018-04-20 | Системы и способы для отложенных процессов постобработки при кодировании видеоинформации |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2728812C1 true RU2728812C1 (ru) | 2020-07-31 |
Family
ID=63854347
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020124345A RU2744982C2 (ru) | 2017-04-21 | 2018-04-20 | Системы и способы для отложенных процессов постобработки при кодировании видеоинформации |
RU2019136651A RU2728812C1 (ru) | 2017-04-21 | 2018-04-20 | Системы и способы для отложенных процессов постобработки при кодировании видеоинформации |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020124345A RU2744982C2 (ru) | 2017-04-21 | 2018-04-20 | Системы и способы для отложенных процессов постобработки при кодировании видеоинформации |
Country Status (15)
Country | Link |
---|---|
US (4) | US10271055B2 (ru) |
EP (1) | EP3613210A4 (ru) |
JP (1) | JP7077396B2 (ru) |
KR (1) | KR102282233B1 (ru) |
CN (1) | CN111052738B (ru) |
AU (1) | AU2018254570B2 (ru) |
BR (1) | BR112019021627A2 (ru) |
CA (1) | CA3059743A1 (ru) |
DE (1) | DE112018002117T5 (ru) |
GB (1) | GB2576286B (ru) |
MX (1) | MX2021004096A (ru) |
RU (2) | RU2744982C2 (ru) |
TW (2) | TWI691200B (ru) |
WO (1) | WO2018195431A1 (ru) |
ZA (2) | ZA201907681B (ru) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2576286B (en) | 2017-04-21 | 2022-09-07 | Zenimax Media Inc | Systems and methods for deferred post-processes in video encoding |
US11731043B2 (en) * | 2019-11-19 | 2023-08-22 | Sony Interactive Entertainment Inc. | Adaptive graphics for cloud gaming |
US20220212100A1 (en) * | 2021-01-04 | 2022-07-07 | Microsoft Technology Licensing, Llc | Systems and methods for streaming interactive applications |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182582A1 (en) * | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Adaptive resource monitoring and controls for a computing system |
US20130212440A1 (en) * | 2012-02-13 | 2013-08-15 | Li-Raz Rom | System and method for virtual system management |
US8559798B2 (en) * | 2004-05-19 | 2013-10-15 | Sony Corporation | Image frame processing method and device for displaying moving images to a variety of displays |
US8952962B2 (en) * | 2011-09-14 | 2015-02-10 | Samsung Electronics Co., Ltd. | Graphics processing method and apparatus using post fragment shader |
RU2612624C2 (ru) * | 2012-07-02 | 2017-03-09 | Самсунг Электроникс Ко., Лтд. | Способ и устройство для энтропийного кодирования видео и способ и устройство для энтропийного декодирования видео |
Family Cites Families (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4501980A (en) | 1982-06-04 | 1985-02-26 | Motornetics Corporation | High torque robot motor |
JP2972410B2 (ja) | 1991-10-03 | 1999-11-08 | 富士通株式会社 | 光学的読取装置 |
JPH06129865A (ja) | 1992-10-20 | 1994-05-13 | Sumitomo Electric Ind Ltd | シングルモ−ドファイバ型デポラライザとその製造方法及び光ファイバジャイロ |
US6728713B1 (en) * | 1999-03-30 | 2004-04-27 | Tivo, Inc. | Distributed database management system |
US6345279B1 (en) * | 1999-04-23 | 2002-02-05 | International Business Machines Corporation | Methods and apparatus for adapting multimedia content for client devices |
US6788680B1 (en) * | 1999-08-25 | 2004-09-07 | Sun Microsystems, Inc. | Defferrable processing option for fast path forwarding |
US20030078738A1 (en) * | 2000-04-12 | 2003-04-24 | Wouters Lucien Joseph Maria Rosalia | Method and apparatus for detecting outliers in biological/parmaceutical screening experiments |
EP1520431B1 (en) | 2002-07-01 | 2018-12-26 | E G Technology Inc. | Efficient compression and transport of video over a network |
US6903662B2 (en) | 2002-09-19 | 2005-06-07 | Ergodex | Computer input device with individually positionable and programmable input members |
US8054880B2 (en) | 2004-12-10 | 2011-11-08 | Tut Systems, Inc. | Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window |
US7408984B2 (en) | 2003-09-17 | 2008-08-05 | International Business Machines Corporation | Method and system for multiple pass video coding |
WO2005038452A1 (en) * | 2003-10-14 | 2005-04-28 | Verseon | Method and apparatus for analysis of molecular combination based on computations of shape complementarity using basis expansions |
US20050108707A1 (en) * | 2003-11-14 | 2005-05-19 | Taylor Thomas M. | Systems and methods for creating and managing a virtual retail store on end-user client computers within a network |
JP2006014981A (ja) * | 2004-07-02 | 2006-01-19 | Fujitsu Ltd | ネットワークゲーム制御方法及びネットワークゲームプログラム |
US8347088B2 (en) * | 2005-02-01 | 2013-01-01 | Newsilike Media Group, Inc | Security systems and methods for use with structured and unstructured data |
US20060230428A1 (en) * | 2005-04-11 | 2006-10-12 | Rob Craig | Multi-player video game system |
US8139642B2 (en) * | 2005-08-29 | 2012-03-20 | Stmicroelectronics S.R.L. | Method for encoding signals, related systems and program product therefor |
JP4888996B2 (ja) * | 2005-10-21 | 2012-02-29 | 株式会社ユニバーサルエンターテインメント | 会話制御装置 |
US7925136B2 (en) * | 2006-05-25 | 2011-04-12 | Qualcomm Incorporated | Method and apparatus for recording information in battery operated devices |
US9349201B1 (en) * | 2006-08-03 | 2016-05-24 | Sony Interactive Entertainment America Llc | Command sentinel |
DE102006043894B3 (de) * | 2006-09-19 | 2007-10-04 | Siemens Ag | Detailtiefenstufen-Einstellung mehrdimensionaler Bilddaten mit einem Client/Server-basierten Bildrenderingsystem |
US20080195664A1 (en) | 2006-12-13 | 2008-08-14 | Quickplay Media Inc. | Automated Content Tag Processing for Mobile Media |
US8069258B1 (en) | 2007-09-11 | 2011-11-29 | Electronic Arts Inc. | Local frame processing to apparently reduce network lag of multiplayer deterministic simulations |
US9967590B2 (en) | 2008-04-10 | 2018-05-08 | Qualcomm Incorporated | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
KR20090117429A (ko) * | 2008-05-09 | 2009-11-12 | 삼성전자주식회사 | 영상 부호화 및 복호화 방법 및 장치 |
EP2364190B1 (en) | 2008-05-12 | 2018-11-21 | GameFly Israel Ltd. | Centralized streaming game server |
US8154553B2 (en) | 2008-05-22 | 2012-04-10 | Playcast Media System, Ltd. | Centralized streaming game server |
WO2009138879A2 (en) | 2008-05-12 | 2009-11-19 | Wei Shi | System and method for fit prediction and recommendation of footwear and clothing |
JP4613990B2 (ja) * | 2008-07-31 | 2011-01-19 | ソニー株式会社 | 画像処理装置、画像処理方法、プログラム |
US8678929B1 (en) | 2008-08-01 | 2014-03-25 | Electronics Arts Inc. | Client-side prediction of a local game object to reduce apparent network lag of multiplayer simulations |
US20100278231A1 (en) | 2009-05-04 | 2010-11-04 | Imagine Communications Ltd. | Post-decoder filtering |
US9723319B1 (en) | 2009-06-01 | 2017-08-01 | Sony Interactive Entertainment America Llc | Differentiation for achieving buffered decoding and bufferless decoding |
CA2684678A1 (en) * | 2009-11-03 | 2011-05-03 | Research In Motion Limited | System and method for dynamic post-processing on a mobile device |
US9338523B2 (en) | 2009-12-21 | 2016-05-10 | Echostar Technologies L.L.C. | Audio splitting with codec-enforced frame sizes |
US20110261885A1 (en) | 2010-04-27 | 2011-10-27 | De Rivaz Peter Francis Chevalley | Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding |
WO2012097178A1 (en) * | 2011-01-14 | 2012-07-19 | Ciinow, Inc. | A method and mechanism for performing both server-side and client-side rendering of visual data |
KR20120096317A (ko) * | 2011-02-22 | 2012-08-30 | 한국전자통신연구원 | 스테레오스코픽 비디오를 부호화하는 방법 및 그 장치 |
JP5155462B2 (ja) | 2011-08-17 | 2013-03-06 | 株式会社スクウェア・エニックス・ホールディングス | 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体 |
WO2013040533A1 (en) * | 2011-09-16 | 2013-03-21 | Umami Co. | Second screen interactive platform |
JP5977023B2 (ja) | 2011-11-07 | 2016-08-24 | 株式会社スクウェア・エニックス・ホールディングス | 描画システム、プログラム、及び記録媒体 |
JP6247286B2 (ja) * | 2012-06-12 | 2017-12-13 | コーヒレント・ロジックス・インコーポレーテッド | ビデオコンテンツの符号化及び配信のための分散アーキテクチャ |
BR112015006178B1 (pt) | 2012-09-21 | 2022-11-16 | Nokia Technologies Oy | Métodos, aparelhos e meio não transitório legível por computador para codificação e decodificação de vídeo |
KR20150056811A (ko) | 2012-11-13 | 2015-05-27 | 인텔 코포레이션 | 차세대 비디오를 위한 콘텐츠 적응적 변환 코딩 |
US20140192207A1 (en) * | 2013-01-07 | 2014-07-10 | Jinsong Ji | Method and apparatus to measure video characteristics locally or remotely |
EP2951999A4 (en) | 2013-01-30 | 2016-07-20 | Intel Corp | CONTENT PARAMETRIC TRANSFORMATIONS FOR CODING VIDEOS OF THE NEXT GENERATION |
US9661351B2 (en) | 2013-03-15 | 2017-05-23 | Sony Interactive Entertainment America Llc | Client side frame prediction for video streams with skipped frames |
WO2014193403A1 (en) | 2013-05-31 | 2014-12-04 | Empire Technology Development Llc | Cache-influenced video games |
US9210434B2 (en) * | 2013-06-12 | 2015-12-08 | Microsoft Technology Licensing, Llc | Screen map and standards-based progressive codec for screen content coding |
US20140368505A1 (en) * | 2013-06-13 | 2014-12-18 | Nvidia Corporation | Graphics processing subsystem for recovering projection parameters for rendering effects and method of use thereof |
US9413830B2 (en) * | 2013-11-11 | 2016-08-09 | Amazon Technologies, Inc. | Application streaming service |
CN103686195B (zh) * | 2013-11-22 | 2017-04-05 | 华为技术有限公司 | 视频信息处理方法及设备 |
US9854270B2 (en) | 2013-12-19 | 2017-12-26 | Qualcomm Incorporated | Device and method for scalable coding of video information |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US20150228106A1 (en) | 2014-02-13 | 2015-08-13 | Vixs Systems Inc. | Low latency video texture mapping via tight integration of codec engine with 3d graphics engine |
US10880565B2 (en) | 2014-03-24 | 2020-12-29 | Qualcomm Incorporated | Use of specific HEVC SEI messages for multi-layer video codecs |
GB2538469B (en) | 2014-05-30 | 2020-08-05 | Halliburton Energy Services Inc | Methods for formulating a cement slurry for use in a subterranean salt formation |
US10078631B2 (en) * | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US9762919B2 (en) | 2014-08-28 | 2017-09-12 | Apple Inc. | Chroma cache architecture in block processing pipelines |
US20160092037A1 (en) | 2014-09-25 | 2016-03-31 | Osix Corporation | Computer-Implemented Methods, Computer Readable Media, And Systems For Distributed Processing |
US10142386B2 (en) * | 2014-10-29 | 2018-11-27 | DLVR, Inc. | Determining manifest file data used in adaptive streaming video delivery |
US10021411B2 (en) | 2014-11-05 | 2018-07-10 | Apple Inc. | Techniques in backwards compatible multi-layer compression of HDR video |
EP3029940B1 (en) * | 2014-12-04 | 2017-03-15 | Axis AB | Method and device for post processing of a video stream |
US9832521B2 (en) * | 2014-12-23 | 2017-11-28 | Intel Corporation | Latency and efficiency for remote display of non-media content |
US10063866B2 (en) | 2015-01-07 | 2018-08-28 | Texas Instruments Incorporated | Multi-pass video encoding |
KR102271721B1 (ko) * | 2015-01-13 | 2021-07-01 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 시스템, 단말 성능을 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
US10000963B2 (en) | 2015-01-26 | 2018-06-19 | Rolltech A/S | Two part spacer with overlapping surfaces |
CN107251008B (zh) * | 2015-02-27 | 2020-11-13 | 帝威视有限公司 | 在实况视频编码和流传输中进行帧复制和帧扩展的***和方法 |
CN106034241B (zh) * | 2015-03-19 | 2019-04-26 | 华为技术有限公司 | 一种多媒体重定向的方法、客户端、服务器和*** |
EP3286918A1 (en) | 2015-04-21 | 2018-02-28 | VID SCALE, Inc. | Artistic intent based video coding |
KR102370842B1 (ko) * | 2015-06-03 | 2022-03-08 | 삼성전자주식회사 | 컨텐츠를 암호화하기 위한 전자 장치 및 방법 |
US9491490B1 (en) | 2015-06-12 | 2016-11-08 | Intel Corporation | Facilitating environment-based lossy compression of data for efficient rendering of contents at computing devices |
JP6910130B2 (ja) | 2015-11-06 | 2021-07-28 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 3dレンダリング方法及び3dレンダリング装置 |
US10163183B2 (en) | 2016-01-13 | 2018-12-25 | Rockwell Collins, Inc. | Rendering performance using dynamically controlled samples |
US10000961B2 (en) | 2016-02-29 | 2018-06-19 | Ford Global Technologies, Llc | Temperature control for powered vehicle doors |
US9705526B1 (en) | 2016-03-17 | 2017-07-11 | Intel Corporation | Entropy encoding and decoding of media applications |
US10109100B2 (en) | 2016-03-25 | 2018-10-23 | Outward, Inc. | Adaptive sampling of pixels |
US20170347126A1 (en) | 2016-05-27 | 2017-11-30 | Qualcomm Incorporated | Video debanding using adaptive filter sizes and gradient based banding detection |
US20180115795A1 (en) * | 2016-10-22 | 2018-04-26 | Gopro, Inc. | Adaptive bit rate algorithm for point-to-point wifi devices |
US10462334B2 (en) | 2016-11-04 | 2019-10-29 | Disney Enterprises, Inc. | Pipeline for high dynamic range video coding based on luminance independent chromaticity preprocessing |
US11095877B2 (en) | 2016-11-30 | 2021-08-17 | Microsoft Technology Licensing, Llc | Local hash-based motion estimation for screen remoting scenarios |
US10591971B2 (en) * | 2017-04-01 | 2020-03-17 | Intel Corporation | Adaptive multi-resolution for graphics |
US10719902B2 (en) * | 2017-04-17 | 2020-07-21 | Intel Corporation | Thread serialization, distributed parallel programming, and runtime extensions of parallel computing platform |
GB2576286B (en) | 2017-04-21 | 2022-09-07 | Zenimax Media Inc | Systems and methods for deferred post-processes in video encoding |
-
2018
- 2018-04-20 GB GB1916964.8A patent/GB2576286B/en active Active
- 2018-04-20 WO PCT/US2018/028582 patent/WO2018195431A1/en active Application Filing
- 2018-04-20 DE DE112018002117.3T patent/DE112018002117T5/de active Pending
- 2018-04-20 US US15/958,574 patent/US10271055B2/en active Active
- 2018-04-20 TW TW107113615A patent/TWI691200B/zh active
- 2018-04-20 CA CA3059743A patent/CA3059743A1/en active Pending
- 2018-04-20 AU AU2018254570A patent/AU2018254570B2/en active Active
- 2018-04-20 CN CN201880041750.XA patent/CN111052738B/zh active Active
- 2018-04-20 BR BR112019021627-8A patent/BR112019021627A2/pt unknown
- 2018-04-20 JP JP2020507500A patent/JP7077396B2/ja active Active
- 2018-04-20 RU RU2020124345A patent/RU2744982C2/ru active
- 2018-04-20 RU RU2019136651A patent/RU2728812C1/ru active
- 2018-04-20 KR KR1020197033911A patent/KR102282233B1/ko active IP Right Grant
- 2018-04-20 EP EP18788388.9A patent/EP3613210A4/en active Pending
- 2018-04-20 TW TW109110609A patent/TWI735193B/zh active
-
2019
- 2019-03-15 US US16/355,200 patent/US10841591B2/en active Active
- 2019-10-18 MX MX2021004096A patent/MX2021004096A/es unknown
- 2019-11-20 ZA ZA2019/07681A patent/ZA201907681B/en unknown
-
2020
- 2020-10-06 US US17/064,430 patent/US11778199B2/en active Active
- 2020-11-12 ZA ZA2020/07052A patent/ZA202007052B/en unknown
-
2023
- 2023-07-12 US US18/221,293 patent/US20230362388A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182582A1 (en) * | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Adaptive resource monitoring and controls for a computing system |
US8559798B2 (en) * | 2004-05-19 | 2013-10-15 | Sony Corporation | Image frame processing method and device for displaying moving images to a variety of displays |
US8952962B2 (en) * | 2011-09-14 | 2015-02-10 | Samsung Electronics Co., Ltd. | Graphics processing method and apparatus using post fragment shader |
US20130212440A1 (en) * | 2012-02-13 | 2013-08-15 | Li-Raz Rom | System and method for virtual system management |
RU2612624C2 (ru) * | 2012-07-02 | 2017-03-09 | Самсунг Электроникс Ко., Лтд. | Способ и устройство для энтропийного кодирования видео и способ и устройство для энтропийного декодирования видео |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104879B (zh) | 一种视频编码方法、装置、电子设备及存储介质 | |
US9955194B2 (en) | Server GPU assistance for mobile GPU applications | |
US20230362388A1 (en) | Systems and methods for deferred post-processes in video encoding | |
US20100295922A1 (en) | Coding Mode Selection For Block-Based Encoding | |
RU2735241C1 (ru) | Системы и способы для векторов движения, генерируемых во время игры | |
RU2730435C1 (ru) | Системы и способы рендеринга с адаптируемым качеством под управлением кодировщика | |
US8396122B1 (en) | Video codec facilitating writing an output stream in parallel | |
CN110166796B (zh) | 视频帧的处理方法、装置、计算机可读介质及电子设备 | |
JP7405989B2 (ja) | マシン向け映像符号化における方法及び装置 | |
WO2014167609A1 (ja) | 情報処理装置、制御方法、プログラム、及び記録媒体 | |
EP4397038A1 (en) | A multi-try encoding operation for streaming applications | |
CN117062656A (zh) | 使用共享参考帧的低延迟多遍帧级速率控制 | |
JPH1174795A (ja) | ディジタル信号符号化方法及び復号方法、ディジタル信号符号化装置及び復号装置、ディジタル信号符号化プログラムを記録した記録媒体及びディジタル信号復号プログラムを記録した記録媒体 |