Декодирование и синтезирование кадров для неполных видеоданных

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

 

УРОВЕНЬ ТЕХНИКИ

[0001] Видеоданные обычно передаются по Интернету и другим сетям потребителям во всем мире. Видеоданные типично отправляются с использованием протоколов, которые разрешают или компенсируют потери пакетов данных видеокадров. Например, видеокадры, кодированные с использованием H.264-формата, могут передаваться с использованием нескольких различных фрагментов или слайсов (слайсов), каждая из которых может включать в себя несколько пакетов данных кадров. Эти пакеты могут теряться в ходе передачи или могут задерживаться по различным причинам. Если данные кадра для данного кадра остаются непринятыми в течение определенного количества времени, кадр выбрасывается, что приводит к потерям визуальной точности воспроизведения, которая может быть заметной видеопотребителем.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

[0008] Фиг. 1 иллюстрирует компьютерную архитектуру, в которой могут работать варианты осуществления, описанные в данном документе, включающие в себя декодирование неполными видеоданными.

[0009] Фиг. 2 иллюстрирует блок-схему последовательности операций примерного способа для декодирования неполных видеоданных.

[0010] Фиг. 3 иллюстрирует блок-схему последовательности операций альтернативного примерного способа для декодирования неполных видеоданных.

[0011] Фиг. 4 иллюстрирует блок-схему последовательности операций другого альтернативного примерного способа для декодирования неполных видеоданных.

[0012] Фиг. 5 иллюстрирует вариант осуществления, в котором фрагменты кадра декодируются последовательным способом.

[0013] Фиг. 6 иллюстрирует вариант осуществления, в котором фрагменты кадра декодируются и синтезируются.

[0014] Фиг. 7 иллюстрирует вариант осуществления, в котором фрагменты кадра декодируются в H.264-канале.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

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

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

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

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

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

[0020] Как проиллюстрировано на фиг. 1, вычислительная система 101 типично включает в себя, по меньшей мере, один модуль 102A обработки и запоминающее устройство 103A. Запоминающее устройство 103A может представлять собой физическое системное запоминающее устройство, которое может быть энергозависимым, энергонезависимым либо некоторой комбинацией означенного. Термин "запоминающее устройство" также может быть использован в данном документе для того, чтобы ссылаться на энергонезависимое устройство хранения большой емкости, такое как физические носители хранения данных. Если вычислительная система является распределенной, возможности обработки, запоминающего устройства и/или хранения также могут быть распределенными.

[0021] При использовании в данном документе, термин "выполняемый модуль" или "выполняемый компонент" может означать программные объекты, маршрутизации или способы, которые могут выполняться в вычислительной системе. Различные компоненты, модули, механизмы и службы, описанные в данном документе, могут быть реализованы как объекты или процессы, которые выполняются в вычислительной системе (к примеру, как отдельные подпроцессы).

[0022] В нижеследующем описании, варианты осуществления поясняются со ссылкой на этапы, которые выполняются посредством одной или более вычислительных систем. Если эти этапы реализованы в программном обеспечении, один или более процессоров ассоциированной вычислительной системы, которая выполняет этап, управляют работой вычислительной системы в ответ на выполнение машиночитаемых инструкций. Например, такие машиноисполняемые инструкции могут быть осуществлены на одном или более машиночитаемых носителей, которые формируют компьютерный программный продукт. Пример такой операции заключает в себе обработку данных. Машиноисполняемые инструкции (и обработанные данные) могут сохраняться в запоминающем устройстве 103A вычислительной системы 101. Вычислительная система 101 также может содержать каналы связи, которые обеспечивают возможность вычислительной системе 101 обмениваться данными с другими процессорами сообщений по проводной или беспроводной сети.

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

[0024] Варианты осуществления в пределах объема настоящего изобретения также включают в себя физические и другие машиночитаемые носители для переноса или сохранения машиноисполняемых инструкций и/или структур данных. Эти машиночитаемые носители могу представлять собой любые доступные носители, к которым можно осуществлять доступ посредством компьютерной системы общего назначения или специального назначения. Машиночитаемые носители, которые сохраняют машиноисполняемые инструкции и/или структуры данных, представляют собой компьютерные носители хранения данных. Машиночитаемые носители, которые переносят машиноисполняемые инструкции и/или структуры данных, представляют собой среды передачи. Таким образом, в качестве примера, а не ограничения, варианты осуществления изобретения могут содержать, по меньшей мере, два совершенно различных типа машиночитаемых носителей: компьютерные носители хранения данных и среды передачи.

[0025] Компьютерные носители хранения данных представляют собой физические аппаратные носители хранения данных, которые сохраняют машиноисполняемые инструкции и/или структуры данных. Физические аппаратные носители хранения данных включают в себя компьютерные аппаратные средства, к примеру, RAM, ROM, EEPROM, полупроводниковые накопители (SSD), флэш-память, запоминающее устройство на фазовых переходах (PCM), устройство хранения данных на оптических дисках, устройство хранения данных на магнитных дисках или другие магнитные устройства хранения данных либо любое другое аппаратное устройство(а) хранения данных, которое может использоваться для того, чтобы сохранять программный код в форме машиноисполняемых инструкций или структур данных, к которому может осуществляться доступ и которое может выполняться посредством компьютерной системы общего назначения или специального назначения для того, чтобы реализовывать раскрытую функциональность изобретения.

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

[0027] Дополнительно, после достижения различных компонентов компьютерной системы, программный код в форме машиноисполняемых инструкций или структур данных может передаваться автоматически из сред передачи в компьютерные носители хранения данных (или наоборот). Например, машиноисполняемые инструкции или структуры данных, принятые по сети или линии связи для передачи данных, могут быть буферизованы в RAM в пределах сетевого интерфейсного модуля (например, NIC) и затем в конечном счете переданы в RAM компьютерной системы и/или в менее энергозависимые компьютерные носители хранения данных в компьютерной системе. Таким образом, следует понимать, что компьютерные носители хранения данных могут быть включены в компоненты компьютерной системы, которые также (или даже главным образом) используют среды передачи.

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

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

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

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

[0032] Фиг. 1 иллюстрирует компьютерную архитектуру 100, в которой может использоваться, по меньшей мере, один вариант осуществления. Компьютерная архитектура 100 включает в себя компьютерную систему 101. Компьютерные системы 101 и 113 могут представлять собой любой тип локальных компьютерных систем или распределенных компьютерных систем, включающих в себя облачные вычислительные системы. Каждая из них включает в себя, по меньшей мере, один процессор 102A/102B, запоминающее устройство 103A/103B и модуль 104A/104B связи. Модуль связи может включать в себя средства проводной или беспроводной связи, включающие в себя проводные или беспроводные сетевые карты, беспроводные Bluetooth-радиомодули, WiFi-радиомодули или другие аппаратные средства, выполненные с возможностью передавать и/или принимать цифровые данные. Модуль 104A связи, например, может принимать кадры 111 или фрагменты 110 кадра из модуля 104B связи компьютерной системы 113.

[0033] В некоторых вариантах осуществления, компьютерная система 113 может представлять собой сервер. Сервер может представлять собой одну компьютерную систему или может быть распределенным. Сервер может быть выполнен с возможностью предоставлять данные в клиенты, к примеру, в компьютерную систему 101. Сервер может предоставлять данные приложения в клиенты в ответ на ввод или другие запросы на данные. В некоторых случаях, компьютерная система 113 может представлять собой сервер видеоигр. В таких случаях, сервер видеоигр может быть выполнен с возможностью предоставлять кадры с контентом видеоигры. Эти кадры могут быть кодированы или, по меньшей мере, в некоторых случаях, могут быть в необработанной форме. Кадры могут отправляться в полнокадровой форме 111 или во фрагментах 110. Фрагменты могут отправляться через пакеты данных, и каждый фрагмент может включать в себя один или более пакетов данных. В связи с этим, фрагменты кадра передаются в компьютерную систему 101 и затем комбинируются таким образом, чтобы формировать полный кадр. Эти фрагменты кадра могут отправляться непрерывным потоковым способом для того, чтобы формировать смежную последовательность кадров для того, чтобы формировать киноизображение. В сценарии проведения игр, этот поток кадров должен формировать вывод видеоигры. Следует понимать, что вариант осуществления на основе видеоигр, хотя часто упоминается в данном документе, является просто одним примером варианта осуществления, в котором видеоконтент передается (т.е. передается в потоковом режиме) из одной компьютерной системы в другую. Фактически, декодирование неполных данных, как описано ниже, может реализовываться во множестве различных сценариев, в которых видеоданные отправляются по сети с потерями.

[0034] Чтобы упрощать передачу кадров 111 и фрагментов 110 кадра, они зачастую кодируются некоторым способом до передачи. В некоторых вариантах осуществления, кадры могут кодироваться согласно H.264-формату. В других вариантах осуществления, могут использоваться другие форматы. Модуль 114 кодирования компьютерной системы 113 может кодировать полные кадры и/или фрагменты 110 кадра согласно выбранному формату кодирования. Эти кодированные кадры или фрагменты кадра далее передаются в компьютерную систему 101, в которой они затем декодируются и отображаются на дисплее 108. Модуль 105 декодирования декодирует принимаемые кадры 111 и фрагменты 110 кадра и отправляет их на дисплей 108 для отображения пользователю. В некоторых вариантах осуществления, модуль 105 декодирования может быть выполнен с возможностью отображать фрагменты 110 кадра, даже когда некоторые фрагменты кадра пропущены. Фактически, в сетевой транзакции, в которой пакеты данных потеряны, некоторые фрагменты кадра или некоторые их части могут быть потеряны или могут задерживаться в ходе передачи. В таких случаях, модуль декодирования должен продолжать декодирование фрагментов 110 кадра, которые он принимает, при ожидании показа потерянных или задержанных фрагментов. Если потерянные или задержанные фрагменты не показаны во времени, модуль 107 синтезирования кадров может синтезировать фрагмент кадра с использованием множества различных технологий синтеза кадров.

[0035] Например, модуль 107 синтезирования кадров может синтезировать потерянный или задержанный фрагмент кадра посредством обращения к данным кадра для одного или более предыдущих кадров. Модуль 107 синтезирования кадров может определять то, что пропущенный фрагмент кадра находится в левом верхнем углу кадра, который в данный момент декодируется и подготавливается к отображению. Модуль 107 синтезирования кадров затем может обращаться к данным кадра для левого верхнего угла одного или более предыдущих кадров для того, чтобы выявлять то, на что эта часть кадра похожа (например, это синее небо или городской фон и т.д.). Затем на основе этих данных, модуль 107 синтезирования кадров может синтезировать пропущенный фрагмент(ы) кадра таким образом, что кадр выглядит практически точным. Тем не менее, вероятно, возникают некоторые потери точности воспроизведения. В этот момент, компьютерная система 101 может отправлять в компьютерную систему 113 индикатор 112, указывающий то, что, по меньшей мере, один фрагмент кадра потерян или существенно задержан, и то, что полный кадр 111 должен отправляться. Затем вместо отправки дельта-кадров (т.е. отправки просто частей кадра, которые изменены), должен отправляться полный кадр 111, либо должно выполняться некоторое другое обновление, чтобы корректировать некорректные пикселы. Следует отметить, что множество различных способов и технологий могут использоваться для того, чтобы синтезировать пропущенные фрагменты кадра. Эти способы синтеза кадров и другие принципы подробнее описываются ниже относительно способов 200, 300 и 400 по фиг. 2, 3 и 4, соответственно.

[0036] С учетом систем и архитектур, описанных выше, технологии, которые могут реализовываться в соответствии с раскрытым изобретением, должны лучше приниматься во внимание со ссылкой на блок-схемы последовательности операций способа по фиг. 2, 3 и 4. Для простоты пояснения, технологии показаны и описаны в качестве последовательности блоков. Тем не менее, следует понимать и принимать во внимание то, что заявленное изобретения не ограничено порядком блоков, поскольку некоторые блоки могут возникать в другом порядке и/или одновременно с другими блоками, если сравнивать с тем, что проиллюстрировано и описано в данном документе. Кроме того, не все проиллюстрированные этапы могут требоваться для того, чтобы реализовывать технологии, описанные далее.

[0037] Фиг. 2 иллюстрирует блок-схему последовательности операций способа 200 для декодирования неполных видеоданных. Способ 200 далее описывается со ссылкой на компоненты и данные окружения 100.

[0038] Способ 200 включает в себя этап приема, по меньшей мере, одного фрагмента кадра, причем кадр включает в себя множество фрагментов кадра, при этом каждый фрагмент кадра непосредственно кодируется так образом, чтобы быть отдельно декодируемым (этап 210). Например, модуль 104A связи компьютерной системы 101 может принимать фрагмент 110 кадра из модуля 104B связи компьютерной системы 113. Фрагмент 110 кадра может отправляться отдельно или в комбинации с другими фрагментами. Кроме того, сам фрагмент кадра может отправляться в одном пакете данных или может быть разбит на множество пакетов данных. Фрагмент 110 кадра представляет собой один фрагмент полного кадра (например, 111) и по сути формирует полный кадр при комбинировании с другими соответствующими фрагментами кадра. Кадры могут разделяться практически на любое число фрагментов кадра. Эти фрагменты затем переданы и повторно собраны с тем, чтобы формировать полный кадр. В некоторых вариантах осуществления, фрагменты кадра могут кодироваться посредством модуля 114 кодирования перед передачей в компьютерную систему 101. Кадры могут кодироваться в любом из множества различных форматов кодирования. Эти форматы кодирования могут быть оптимизированы согласно качеству видео, эффективности передачи (т.е. полосе пропускания), быстрому декодированию или согласно некоторым другим соображениям.

[0039] Каждый фрагмент 110 кадра может быть отдельно кодирован таким способом, который обеспечивает возможность отдельного декодирования фрагмента кадра. Таким образом, модуль 105 декодирования компьютерной системы 101 может принимать фрагмент кадра и декодировать его без приема других фрагментов кадра. Затем после приема другого фрагмента кадра и при ожидании приема других фрагментов кадра, модуль 105 декодирования может начинать декодирование недавно принимаемого фрагмента. Фактически, это описывается в способе 200, который включает в себя этап декодирования, по меньшей мере, одного из принимаемых фрагментов кадра при ожидании приема, по меньшей мере, одного дополнительного фрагмента кадра (этап 220). Этот процесс дополнительно иллюстрируется на фиг. 5.

[0040] Фиг. 5 включает в себя декодер 501, который может быть идентичным или отличным от модуля 105 декодирования по фиг. 1. Декодер 501, возможно, ранее принял фрагмент 503A кадра и, возможно, уже начал его декодирование. Этот декодированный фрагмент 503A кадра может добавляться или может иным образом начинать формирование кадра 505. Хотя показано как формирование нижней части кадра 505, следует понимать, что декодированный фрагмент 503A кадра может включать в себя данные кадра практически из любой части кадра и может включать в себя данные кадра из одного блока в кадре или может включать в себя данные кадра из различных частей кадра. Тем не менее, для простоты, фрагменты кадра на фиг. 5 и 6 показаны как накапливающиеся поверх друг друга горизонтально. Входящие фрагменты 502B, 502C и 502D кадра показаны на фиг 5 как передаваемые и еще не приняты посредством декодера 501. Тем не менее, по мере того, как эти принимаются фрагменты кадра, декодер 501 может начинать их декодирование отдельно. Таким образом, принимаемый фрагмент 503А кадра может декодироваться при ожидании приема фрагмента 502B кадра. Аналогично, фрагмент 503B кадра может декодироваться при ожидании приема фрагмента 502C кадра, фрагмент 503C кадра может декодироваться при ожидании приема фрагмента 502D кадра, и т.д. Таким образом, декодер 501 может использовать данные кадра, которые он в данный момент имеет, для того, чтобы начинать процесс декодирования.

[0041] Фрагменты кадра также могут декодироваться не по порядку. Фрагменты кадра типично передаются по сетям с потерями и могут передаваться с использованием протоколов, которые не гарантируют безопасную передачу каждого пакета (например, UDP). Таким образом, фрагменты кадра могут быть потеряны или задержаны по различным причинам. В одном примере, фрагмент 502C кадра может приниматься перед фрагментом 502B кадра. В таком случае, декодер 501 может начинать декодирование фрагмента 502C кадра до того, как он принимает фрагмент 502B кадра. Затем, при приеме фрагмента 502B кадра, он декодируется и добавляется в кадр 505. В завершение, после приема всех составляющих фрагментов кадра 505, кадр должен отображаться на дисплее 504. Дисплей может представлять собой любой тип монитора, телевизионного приемника, планшетного компьютера или средства отображения. Кадр 505 может представлять собой один кадр в последовательности кадров. Например, в сценарии потоковой передачи видео или видеоигры, сервер потоковой передачи данных с большой вероятностью должен отправлять множество таких кадров каждую секунду. Эти кадры затем должны отображаться последовательно на дисплее 504, чтобы формировать киноизображение, которое является просматриваемым пользователем.

[0042] Возвращаясь к фиг. 2, после возникновения, по меньшей мере, одного состояния, указывающего то, что кадр является неполным, способ 200 включает в себя этап синтезирования одного или более фрагментов кадра для того, чтобы заменять, по меньшей мере, один дополнительный фрагмент кадра, который еще должен быть принят (этап 230). Состояние может включать в себя, например, определение того, что один или более фрагментов кадра потеряны или задержаны. Модуль 106 мониторинга состояния может быть выполнен с возможностью отслеживать входящие фрагменты кадра и может определять то, что фрагмент кадра потерян или существенно задержан. После такого определения, модуль 107 синтезирования кадров может синтезировать пропущенный фрагмент кадра и вставлять синтезированные данные в кадр для того, чтобы заполнять кадр.

[0043] Как проиллюстрировано на фиг. 6, декодированные фрагменты кадра могут комбинироваться с синтезированными фрагментами кадра для того, чтобы формировать кадр. Декодер 601 принимает фрагменты кадра, как описано выше относительно фиг. 5. Как показано, кадр 607 включает в себя уже декодированный фрагмент 605A кадра. Фрагмент 605A кадра, возможно, декодирован при ожидании фрагментов 602B, 602C, 602D, 602E кадра и т.д. Модуль 106 мониторинга состояния по фиг. 1 может определять то, что фрагмент 604B кадра потерян или задержан, и может инициировать модуль 107 синтезирования кадров (или синтезатор 603) для того, чтобы синтезировать фрагмент 604B кадра. Синтезированные данные могут получаться множеством способов, как подробнее описано ниже относительно фиг. 3. Синтезированный фрагмент 604B кадра может вставляться в кадр 607 в части(ях), в которой должен быть фактический фрагмент кадра. Декодер 601 может продолжать декодирование фрагментов кадра, в то время как синтезатор синтезирует другие фрагменты кадра. Таким образом, фрагмент 602C кадра может приниматься и декодироваться, что приводит к декодированному фрагменту 605C кадра. Другие фрагменты кадра, к примеру, 602D и 602E, также могут приниматься и декодироваться, в то время как синтезатор синтезирует данные для пропущенного или задержанного фрагмента кадра.

[0044] Возвращаясь к фиг. 1, модуль 106 мониторинга состояния может определять то, что возникает состояние, указывающее то, что кадр 111 является неполным. Это состояние может включать в себя индикатор того, что принято указанное минимальное пороговое число фрагментов кадра, что указывает то, что синтез фрагментов кадров должен осуществляться. Таким образом, например, минимальное число фрагментов кадра может устанавливаться в расчете на кадр или в расчете на последовательность кадров. После того, как достигнуто минимальное число фрагментов кадра, этот кадр может считаться допускающим коррекцию через синтез. В связи с этим, кадр включает в себя достаточно принимаемых данных, так что воссоздание (т.е. синтез) оставшихся фрагментов кадра является допустимым. Это минимальное число фрагментов кадра может задаваться администратором, программистом или другим пользователем.

[0045] В случаях, если минимальное число фрагментов кадра не принято, или в случаях, если синтез является невозможным или нежелательным (например, в результате получается слишком большое число артефактов), компьютерная система 101 может формировать индикатор 112, указывающий то, что должны отправляться эти данные замены кадра. По меньшей мере, в некоторых вариантах осуществления, данные замены кадра представляют собой полный кадр (например, 111). Индикатор 112 отправляется в вычислительную систему 113, и она отвечает посредством отправки полного кадра 111. Эти принимаемые данные кадра могут быть включены в существующий кадр (если фрагменты кадра отправлены) либо могут быть включены в качестве полного кадра.

[0046] Таким образом, как описано в способе 200 по фиг. 2, информация видеокадров может использоваться для того, чтобы определять то, что следует делать, когда обнаруживаются потери низкоуровневых пакетов, и в таких ситуациях, минимизировать время задержки при декодировании и визуальное повреждение, когда данные пропущены. Варианты осуществления обрабатывают низкоуровневые пакеты данных, поступающие по сети, отслеживают и группируют пакеты данных посредством кадра и фрагмента кадра и подают сгруппированные фрагменты кадра в модуль 105 декодирования при ожидании поступления других пакетов данных кадров. Если пакеты данных из фрагмента кадра не могут восстанавливаться через коррекцию ошибок, частичные фрагменты кадра либо заполняются, либо заменяются посредством синтезированных данных, которые минимизируют визуальное повреждение до тех пор, пока обновление не сможет быть выполнено (т.е. пока полный кадр 111 не будет отправлен). Это дополнительно позволяет использовать видеодекодеры, которые не имеют надежного скрытия ошибок посредством предоставления в них допустимых данных.

[0047] Фактически, в некоторых вариантах осуществления, компьютерная система 101 может определять то, что, по меньшей мере, один из принимаемых фрагментов кадра 110 включает в себя данные прямой коррекции ошибок. Эти данные прямой коррекции ошибок (FEC) затем могут реализовываться, чтобы исправлять ошибки во фрагменте кадра и в конечном счете использовать этот фрагмент кадра для того, чтобы формировать кадр. В таких случаях, фрагмент кадра может декодироваться до того, как инициируется прямая коррекция ошибок. В других вариантах осуществления, компьютерная система 101 может быть выполнена с возможностью ожидать FEC-информации для кадра, который имеет непринятый фрагмент кадра, при продолжении декодировать те фрагменты кадра, которые являются полными. Таким образом, модуль 105 декодирования может продолжать декодировать фрагменты кадра, даже при ожидании FEC-данных для тех фрагментах кадра, которые имеют неполные или поврежденные данные (например, вследствие потерянных или поврежденных пакетов данных). Затем когда FEC-данные принимаются для того фрагмента кадра, которому соответствует FEC-информация, модуль 105 декодирования может декодировать FEC-скорректированный фрагмент кадра и комбинировать этот фрагмент кадра с другими, чтобы формировать декодированный кадр 109. Этот кадр затем может отображаться на дисплее 108.

[0048] Фиг. 7 иллюстрирует вариант осуществления, который реализует H.264-формат. Хотя используется этот формат, следует понимать, что другие форматы также могут использоваться в аналогичных технологиях. Пакеты данных кадров могут отслеживаться через несколько кадров. Это приводит к отслеживанию информации, которая указывает компьютерной системе 101 то, что, например, более ранний кадр должен заполняться, и то, что пропущенные пакеты с большой вероятностью не будут поступать и должны считаться отброшенными пакетами. H.264-канал 702 по фиг. 7 использует объекты 703A, 703B и 703C модуля отслеживания кадров для того, чтобы отслеживать известные в данный момент выполняющиеся кадры наряду с пакетами данных, ассоциированными с кадром. Эти пакеты данных принимаются из канала 701 видеовывода или других источников потоковой передачи (например, источников на основе транспортного протокола реального времени (RTP)). Фрагменты кадра (либо слайса при использовании в данном документе) могут отслеживаться посредством объектов 704A, 704B и 704C модуля отслеживания слайсов, чтобы отслеживать каждую из выполняющихся слайсов для каждого кадра. Это обеспечивает возможность компьютерной системе 101 знать то, когда новый кадр начинается, то, насколько полным является предыдущий кадр, то, какие слайсы являются полными или пропущенными, то, когда кадру требуется прямая коррекция ошибок, и т.д.

[0049] H.264-канал 702 может принимать необработанные RTP-пакеты данных (или пакеты данных другого протокола) из канала 701 видеовывода без предварительной обработки. На основе временной метки, пакеты данных кадров подаются либо в существующий объект модуля отслеживания кадров (например, 703A), если имеется, либо в новый созданный объект модуля отслеживания кадров (например, 703C). Рабочие данные пакета данных кадров анализируются, когда приняты посредством модуля отслеживания кадров, и если пакет данных кадров содержит начало единицы слоя абстрагирования от сети (NALU) слайса, новый модуль отслеживания слайсов (например, 704C) создается и добавляется в список. Если пакет данных кадров (например, RTP-пакет 708) является следующим в последовательности для существующего слайса, он подается в соответствующий модуль отслеживания слайсов. В противном случае, пакет данных кадров хранится в списке пакетов не по порядку (OOO) (например, 706) или игнорируется, если он представляет собой копию. Если пакет содержит данные прямой коррекции ошибок (FEC) (например, 707), он либо используется сразу для того, чтобы воссоздавать отброшенный пакет (в некоторых случаях, когда только один пакет пропущен), либо хранится посредством модуля отслеживания кадров для последующего использования, когда поступают дополнительные пакеты.

[0050] По меньшей мере, в некоторых вариантах осуществления, когда пакет данных кадров подается в модуль отслеживания слайсов (например, 704A), может предполагаться, что пакет данных кадров находится в корректном порядке следования. После того, как принимается пакет данных последнего кадра слайса, NALU слайса (например, 705) может отправляться в видеодекодер (например, 105 по фиг. 1).

[0051] Если слайсы (например, фрагменты 110 кадра) для данного кадра 111 заполнены и отправлены в декодер (например, 105), кадр считается полным (например, 705), и канал может перенаправлять его для отображения на дисплее 108. Когда кадр и одна или более его слайсов не являются полными, когда данные для следующего кадра начинают поступать, компьютерная система 101 может определять то, что отброшены данные кадра, которые не могут воссоздаваться через коррекцию ошибок. В таких случаях, возникает синтез фрагментов кадров для того, чтобы маскировать ошибки, вызываемые посредством неполных данных кадра. Пропущенные фрагменты кадра синтезируются посредством модуля 107 синтезирования кадров таким образом, что модуль 105 декодирования может заканчивать обработку кадра. В варианте осуществления на основе H.264, описанном на фиг. 7, для каждого пропущенного слайса компонуется синтезированная NALU слайса, которая копирует пикселы из предыдущего опорного кадра. Синтезированная NALU слайса отправляется в декодер 105 для декодирования. Последующие полные слайса также отправляются для того, чтобы формировать кадр. Это дает в результате полный выходной кадр в случаях, если данные кадра являются неполными или поврежденными.

[0052] Если на поврежденный кадр (т.е. декодированный кадр с синтезированными частями 109) не ссылаются последующие кадры, то он может отображаться на дисплее 108, и затем следующий кадр может обрабатываться нормально. Повреждение данных кадров может быть видимым, но только в пределах времени в течение одиночного кадра, и не должно распространяться на последующие кадры. Альтернативно, если повреждение или другие потери данных являются достаточно значимыми, кадр может быть отброшен полностью и не отображаться вообще. Если поврежденный кадр представляет собой опорный кадр (например, P-кадр в H.264-формате), то его повреждение распространяется на последующие кадры (фактически, любой кадр, используемый в качестве базиса для последующих кадров, имеет свое повреждение распространенным). В таких случаях, поврежденный кадр отображается, но видеоисточник уведомляется через канал 701 видеовывода касательно того, что возникают потери данных. Это обеспечивает возможность видеопоставщику (например, компьютерной системе 113 по фиг. 1) сразу инициировать обновление, быстро очищая повреждение (в некоторых случаях, за следующую секунду или две).

[0053] Обращаясь теперь к фиг. 3, проиллюстрирована блок-схема последовательности операций способа 300 для декодирования неполных видеоданных. Способ 300 далее описывается со ссылкой на компоненты и данные окружения 100.

[0054] Способ 300 включает в себя, в ответ на прием одного или более фрагментов кадра, этап декодирования принимаемых одного или более фрагментов при ожидании приема, по меньшей мере, одного дополнительного фрагмента кадра (этап 310). Например, модуль 104A связи компьютерной системы 101 может принимать фрагменты 110 кадра, которые при комбинировании формируют полный кадр 111. При ожидании дополнительных приема фрагментов кадра, модуль 105 декодирования может начинать декодирование тех фрагментов кадра, которые он принимает, даже если эти фрагменты кадра следуют не по порядку. Модуль 106 мониторинга состояния может обнаруживать возникновение состояния, указывающего то, что кадр является неполным в том, что, по меньшей мере, один дополнительный фрагмент кадра еще должен быть принят (этап 320). Состояние может представлять собой определение того, что данные кадра для фрагмента кадра еще не приняты, или что фрагмент полного кадра не принят. Дополнительно или альтернативно, состояние может представлять собой прием, по меньшей мере, одного фрагмента последующего кадра или выполнение определения того, что данные кадра для данного фрагмента являются поврежденными или иным образом являются неприменимыми.

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

[0056] Дополнительно, модуль 107 синтезирования кадров может учитывать различные факторы, включающие в себя определение предыдущего перемещения между кадрами. Предыдущее перемещение между кадрами может представлять собой индикатор в отношении того, как данные должны продолжать изменяться в кадре, который синтезируется. Кроме того, модуль 107 синтезирования кадров может определять то, в каком направлении камера выполняется панорамирование, на основе одного или более предыдущих кадров и может синтезировать фрагменты кадра с использованием определенного направления панорамирования. Таким образом, если определяется то, что камера выполняет панорамирование слева направо, модуль 107 синтезирования кадров может определять то, что пикселы, которые ранее располагались в правой стороне кадра, должны прогрессивно перемещаться ближе к левой стороне кадра. Другие факторы, включающие в себя векторы движения, могут использоваться для того, чтобы определять ошибочные перемещения (в противоположность прогрессивным панорамированиям слева направо или сверху вниз) или предоставлять другие индикаторы в отношении того, на что должен быть похожим текущий кадр (т.е. кадр, который должен быть синтезирован). С использованием этой информации, модуль 107 синтезирования кадров может аппроксимировать или иным образом синтезировать пропущенные данные кадра для фрагмента кадра, который затем комбинируется с ранее декодированными фрагментами кадра для того, чтобы формировать полный кадр 111.

[0057] Фиг. 4 иллюстрирует блок-схему последовательности операций альтернативного способа (способ 400) для декодирования неполных видеоданных. Способ 400 далее описывается со ссылкой на компоненты и данные окружения 100.

[0058] Способ 400 включает в себя этап осуществления доступа, по меньшей мере, к одному фрагменту кадра, причем кадр включает в себя один или более фрагментов кадра, при этом каждый фрагмент кадра является отдельно декодируемым (этап 410). Модуль 105 декодирования может осуществлять доступ к одному или более принимаемым фрагментам кадра 110 и декодировать эти фрагменты кадра при ожидании приема, по меньшей мере, одного дополнительного фрагмента кадра (этап 420). Модуль 106 мониторинга состояния может определять то, что, по меньшей мере, один дополнительный фрагмент кадра еще должен быть принят, что обуславливает то, что кадр является неполным (этап 430). Затем в ответ на определение, модуль синтезирования кадров синтезирует фрагменты кадра с использованием данных кадра, ассоциированных, по меньшей мере, с одним предыдущим кадром (этап 440). Кадры и фрагменты кадра могут отслеживаться отдельно, как, в общем, показано на фиг. 7. Посредством отслеживания пакетов данных фрагментов кадра через несколько кадров, компьютерная система 10 может определять то, когда пакеты данных принимаются для последующего кадра. Когда пакет данных принимается для последующего кадра, он может представлять собой индикатор или состояние, которое инструктирует инициирование синтезу кадров.

[0059] В некоторых вариантах осуществления, отслеживание фрагментов кадра и/или отслеживание кадров может реализовываться с использованием протокольного порядкового номера, с использованием инкрементно увеличивающейся временной метки или с использованием некоторого другого типа идентификатора. Протокольный порядковый номер или инкрементно увеличивающаяся временная метка могут назначаться каждому кадру и/или каждому фрагменту кадра. Это обеспечивает возможность отдельного отслеживания кадра или фрагмента кадра и, следовательно, предупреждения компьютерной системы 101, когда данные кадра для нового фрагмента кадра или кадра приняты. Например, кадры и/или фрагменты кадра могут приниматься как часть потоковой видеоигры. Потоковые видеоигры типично проводятся на высокой частоте кадров для того, чтобы обеспечивать то, что пользователь не подвергается запаздыванию. В таких сценариях, компьютерная система 101 может использовать протокольный порядковый номер или инкрементно увеличивающуюся временную метку для того, чтобы быстро определять то, является либо нет кадр или фрагмент кадра неполным, и то, должны или нет части этого кадра быть синтезированы. Если он является неполным (например, информация временных меток, используемая для того, чтобы ассоциировать пакеты данных фрагментов кадра с фрагментами кадра и/или кадрами, указывает то, что новый кадр принимается), модуль синтезирования кадров может сразу синтезировать пропущенные или поврежденные данные кадра. Таким образом, кадр может быстро заполняться и отправляться на дисплей 108 для отображения игроку.

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

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

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

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

декодируют эту по меньшей мере одну первую часть первого кадра, к которой осуществляется доступ, перед приемом по меньшей мере одной второй части первого кадра;

определяют, что первый кадр является неполным, посредством определения того, что вторая часть первого кадра не принята;

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

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

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

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

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

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

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

декодируют эту по меньшей мере одну первую часть до приема по меньшей мере одной второй части первого кадра;

на основе, по меньшей мере, возникновения по меньшей мере одного состояния до приема упомянутой по меньшей мере одной второй части, каковое по меньшей мере одно состояние связано с данной по меньшей мере одной второй частью, синтезируют по меньшей мере одну заменяющую часть первого кадра для этой по меньшей мере одной второй части;

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

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

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

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

3. Способ по п. 2, в котором упомянутое по меньшей мере одно состояние содержит определение того, что упомянутая по меньшей мере одна вторая часть потеряна или задержана.

4. Способ по п. 2, дополнительно содержащий этап, на котором комбинируют декодированную по меньшей мере одну первую часть первого кадра и синтезированную заменяющую часть для формирования кадра.

5. Способ по п. 2, дополнительно содержащий этапы, на которых:

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

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

6. Способ по п. 2, дополнительно содержащий этап, на котором ожидают информацию прямой коррекции ошибок для первого кадра, в то же время продолжая декодировать части кадра, которые являются полными.

7. Способ по п. 6, дополнительно содержащий этапы, на которых:

принимают информацию прямой коррекции ошибок для первого кадра и

декодируют часть кадра, которой соответствует эта информация прямой коррекции ошибок.

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

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

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

11. Компьютерная система, выполненная с возможностью декодирования неполных видеоданных, при этом компьютерная система содержит:

один или более процессоров;

системную память и

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

в ответ на прием по меньшей мере одной первой части первого кадра декодировать принятую по меньшей мере одну первую часть первого кадра до приема по меньшей мере одной второй части первого кадра;

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

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

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

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

принимать второй кадр из второй вычислительной системы и

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

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

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

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

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

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

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

18. Машиночитаемый носитель, на котором сохранены машиноисполняемые команды, которые при их исполнении одним или более процессорами вычислительной системы предписывают вычислительной системе выполнять способ декодирования неполных видеоданных, содержащий этапы, на которых:

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

декодируют этот по меньшей мере один фрагмент кадра, к которому осуществляется доступ, ожидая приема по меньшей мере одного дополнительного фрагмента кадра;

определив, что этот по меньшей мере один дополнительный фрагмент еще не принят, трактуют первый кадр как являющийся неполным;

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

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

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

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

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

19. Машиночитаемый носитель по п. 18, при этом кадры и части кадров отслеживаются по отдельности с использованием по меньшей мере одного из порядкового номера, основывающегося на протоколе, и инкрементно увеливичающейся временной метки.

20. Машиночитаемый носитель по п. 18, при этом кадры принимаются как часть потока видеоигры.



 

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

Изобретение относится к области обработки изображений. Технический результат – повышение эффективности кодирования видеоизображений.

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

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

Изобретение относится к кодированию/декодированию видео на основе арифметического кодирования. Техническим результатом является повышение эффективности процесса декодирования символов.

Изобретение относится к кодированию с предсказанием с использованием компенсации движения. Техническим результатом является более точное предсказание на основе эффективной интерполяции изображений.

Изобретение относится к вычислительной технике. Технический результат − повышение скорости поиска необходимого события или объекта в импортированном видео, полученном от стороннего устройства.

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

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

Изобретение относится к кодированию и декодированию видео. Техническим результатом является обеспечение эффективного способа сжатия видео на основе внутреннего предсказания.

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

Изобретение относится к способу и устройству для обработки текущего пиксельного блока изображения с использованием режима палитрового прогнозирования согласно HEVC RExt. Технический результат заключается в улучшении кодирования палитрового режима. Такой результат достигается за счет того, что режим использует текущую палитру для того, чтобы компоновать блок предиктора индексов, чтобы прогнозировать текущий пиксельный блок. Текущая палитра содержит записи, ассоциирующие индексы записей с пиксельными значениями. Способ содержит прогнозирование текущей палитры из записей двух или более палитр, которые представляют собой палитры, ранее используемые для того, чтобы обрабатывать блоки пикселов. Может использоваться предиктор палитры, который компонуется из двух или более палитр, предпочтительно из используемой в прошлый раз палитры для единицы кодирования в текущем объекте кодирования и из ранее используемой палитры, для которой битовая карта флага указывает то, скопированы или нет ее элементы в используемую в прошлый раз палитру. 10 н. и 5 з.п. ф-лы, 27 ил.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования. Устройство для декодирования видео содержит средство для осуществления доступа к видеокартинке, которая включает в себя многочисленные картинки, объединенные в единую картинку; средство для осуществления доступа к информации, которая является частью принятого видеопотока, причем информация, к которой осуществляется доступ, указывает, каким образом объединены многочисленные картинки в видеокартинке, к которой осуществляется доступ, и включает в себя информацию о пространственном перемежении и информацию о дискретизации, при этом информация о пространственном перемежении указывает пространственное перемежение, примененное к многочисленным картинкам при формировании единой картинки, и при этом информация о дискретизации указывает один или более параметров, относящихся к фильтру повышающей дискретизации для восстановления каждой из многочисленных картинок в другое разрешение, причем один или более параметров, относящихся к фильтру повышающей дискретизации, включают в себя указание направления фильтрации; и средство для декодирования видеокартинки для предоставления декодированного представления по меньшей мере одной из многочисленных картинок. 12 н. и 31 з.п. ф-лы, 41 ил., 10 табл.

Изобретение относится к кодированию/декодированию видео. Технический результат изобретения заключается в возможности регулировать битовую глубину в ходе восстановления кодированных выборок, недопущении возникновения переполнения выходных данных при декодировании. Способ декодирования видео содержит этапы: получение преобразованных коэффициентов блока из потока битов; формирование обратно квантованных преобразованных коэффициентов и ограничение их до диапазона первой битовой глубины; формирование значений выборки путем масштабирования обратно преобразованных коэффициентов и ограничение значений выборки до диапазона второй битовой глубины; формирование остаточных значений посредством выполнения второго одномерного обратного преобразования в отношении ограниченных значений выборки, при этом обратно квантованные преобразованные коэффициенты имеют размер битовой глубины, равный 16 битам, значения выборки, ограниченные до диапазона второй битовой глубины, имеют размер битовой глубины, равный 16 битам, масштабирование содержит операцию битового сдвига вправо на N бит. 1 з.п. ф-лы, 18 ил., 4 табл.

Изобретение относится к видеодекодированию, в частности к определению набора опорных картинок (RPS), которые используются в предсказывающем декодировании текущей картинки (изображения). Техническим результатом является повышение эффективности видеодекодирования. Предложен способ определения RPS, который является набором опорных картинок, используемых в предсказывающем декодировании текущей картинки, включающий: получение флага, указывающего, определяется ли RPS на основании значения счета по порядку картинок (POC) текущей картинки и предыдущей картинки или определяется ли RPS на основании индекса опорного RPS, который является значением идентификации опорного RPS, который является одним из предварительно определенных наборов RPS и на который ссылаются при определении RPS, и дельта RPS, которое является значением разности между значением POC опорной картинки, включенной в опорный RPS, и значением POC опорной картинки, включенной в RPS; и определение RPS в соответствии со значением флага. 7 н. и 4 з.п. ф-лы, 15 ил.
Наверх