Сокращение задержки при кодировании и декодировании видео

Иллюстрации

Показать все

Изобретение относится к кодированию и декодированию видео для стандарта высокоэффективного видеокодирования (HEVC). Техническим результатом является сокращение задержки при кодировании и декодировании видео. Предложены способ и устройство сокращения задержки при кодировании и декодировании видео посредством ограничения задержки, обусловленной переупорядочиванием видеокадров, и посредством указания ограничения на задержку переупорядочивания кадров, по меньшей мере, одним синтаксическим элементом, который сопровождает кодированные данные для видеокадров. Средство связи в режиме реального времени с видеокодером устанавливает синтаксический элемент, который указывает ограничение на задержку переупорядочивания кадров, которое соответствует межкадровым зависимостям между несколькими кадрами видеопоследовательности, затем выводит синтаксический элемент. Соответствующее средство связи в режиме реального времени с видеодекодером принимает синтаксический элемент, который указывает ограничение на задержку переупорядочивания кадров, определяет ограничение на задержку переупорядочивания кадров по синтаксическому элементу и использует ограничение на задержку переупорядочивания кадров для определения, когда реконструированный кадр готов для вывода (в плане порядка вывода). 6 н. и 25 з.п. ф-лы, 12 ил.

Реферат

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

Проектировщики применяют сжатие (называемое также исходным кодированием или исходной кодировкой) для снижения битовой скорости (битрейта) цифрового видео. Сжатие уменьшает стоимость хранения и передачи видеоинформации посредством преобразования информации в форму со сниженной битовой скоростью. Распаковка (называемая также декодированием) реконструирует версию первоначальной информации из сжатой формы. «Кодек» является кодирующей/декодирующей системой.

За последние два десятка лет приняты различные стандарты видеокодеков, в том числе стандарты H.261, H.262 (MPEG-2 или ISO/IEC 13818-2), H.263 и H.264 (AVC или ISO/IEC 14496-10) и стандарты MPEG-1 (ISO/IEC 11172-2), MPEG-4 Visual (ISO/IEC 14496-2) и SMPTE 421M. В последнее время в состоянии разработки находится стандарт HEVC (высокоэффективное видеокодирование). Стандарт на видеокодек обычно определяет параметры для синтаксиса кодированного видеопотока с детализацией параметров в двоичном потоке, когда при кодировании и декодировании используют конкретные возможности. Во многих случаях стандарт на видеокодек обеспечивает также сведения об операциях декодирования, которые декодер должен выполнять для получения точных результатов при декодировании.

Основной целью сжатия является обеспечение высокой характеристики скорость-искажение. Поэтому для конкретной битовой скорости кодер стремится обеспечить наивысшее качество видео. Или для конкретного уровня качество/точность соответствия первоначальному видео кодер стремится обеспечить кодированное видео с минимальной битовой скоростью. На практике, в зависимости от сценария применения, на решения, принимаемые в течение кодирования и декодирования, влияют также такие соображения, как время кодирования, сложность кодирования, ресурсы кодирования, время декодирования, сложность декодирования, ресурсы декодирования, суммарное запаздывание и/или гладкость воспроизведения.

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

С другой стороны, целесообразно рассмотреть такие сценарии применения, как телеконференция с использованием настольных компьютеров, видеонаблюдение, видеотелефония и другие сценарии связи в режиме реального времени. Приведенные применения критичны ко времени. Малая задержка между записью входных изображений и воспроизведением выходных изображений является основным фактором характеристик. Когда средства кодирования/декодирования, адаптированные для связи не в режиме реального времени, применяются в сценариях связи в режиме реального времени, суммарная задержка часто недопустимо велика. Запаздывания, которые упомянутые средства вносят в течение кодирования и декодирования, могут повысить характеристики при обычном воспроизведении видео, но нарушают связь в режиме реального времени.

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

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

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

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

Вышеприведенные и другие цели, признаки и преимущества изобретения станут более понятными из нижеприведенного подробного описания, которое дано со ссылкой на прилагаемые фигуры.

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

Фигура 1 - схема примерной компьютерной системы, в которой могут быть реализованы некоторые описанные варианты осуществления.

Фигуры 2a и 2b - схемы примерных сетевых сред, в которых могут быть реализованы некоторые описанные варианты осуществления.

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

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

Фигуры 5a-5e - схемы, показывающие порядок кодирования и порядок вывода для кадров в нескольких примерных сериях.

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

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

ПОДРОБНОЕ ОПИСАНИЕ

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

В сценариях кодирования/декодирования видео неизбежно некоторое запаздывание между моментом времени, когда входной видеокадр принимается, и моментом времени, когда кадр воспроизводится. Кадр кодируется кодером, подается в декодер и декодируется декодером, и некоторая величина задержки обусловлена практическими ограничениями ресурсов кодирования, ресурсов декодирования и/или пропускной способности сети. Другую задержку можно, тем не менее, предотвратить. Например, задержка может быть внесена кодером и декодером для повышения характеристики скорость-искажение (например, при использовании межкадровых зависимостей от изображений, находящихся дальше к началу последовательности). Упомянутую задержку можно сократить, однако при этом возможны потери с точки зрения характеристики скорость-искажение, загрузки процессора или гладкости воспроизведения.

При применении методик и средств, описанных в настоящей заявке, задержка сокращается посредством ограничения задержки (следовательно, ограничения временной протяженности межкадровых зависимостей) и указания ограничения задержки декодеру. Например, ограничение на задержку является ограничением на задержку переупорядочивания кадров. В альтернативном варианте, ограничение на задержку является ограничением, выраженным в виде секунд, миллисекунд или другой величины измерения времени. Затем декодер может определять ограничение на задержку и использовать ограничение при определении кадров, которые готовы для вывода. Таким образом, можно сократить запаздывание при проведении удаленной телеконференции с использованием настольных компьютеров, видеотелефонии, видеонаблюдении, передаче видео web-камерой и в других областях применения связи в режиме реального времени.

Некоторые из инноваций, предлагаемых в настоящей заявке, поясняются со ссылкой на синтаксические элементы и операции, характерные для стандарта H.264 и/или HEVC. Упомянутые инновации могут быть также реализованы для других стандартов или форматов.

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

I. Примерные вычислительные системы

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

Как показано на фигуре 1, компьютерная система (100) содержит, по меньшей мере, один процессор (110, 115) и память (120, 125). На фигуре 1 приведенная базовая конфигурация (130) обведена штриховой линией. Процессоры (110, 115) исполняют компьютерно-исполняемые команды. Процессор может быть универсальным центральным процессором (ЦП), процессором в специализированной интегральной схеме (ASIC) или процессором любого другого типа. В мультипроцессорной системе, несколько процессоров исполняют компьютерно-исполняемые команды для повышения производительности обработки данных. Например, на фигуре 1 показан центральный процессор (110), а также графический процессор или сопроцессор (115). Физическая память (120, 125) может быть энергозависимой памятью (например, регистрами, кэш-памятью, оперативной памятью (RAM)), энергонезависимой памятью (например, постоянной памятью (ROM), электрически стираемой программируемой постоянной памятью (EEPROM), флэш-памятью и т.п.) или некоторой комбинацией упомянутых двух видов памяти, доступной для процессора(ов). Память (120, 125) хранит программное обеспечение (180), реализующее, по меньшей мере, одну из инноваций для сокращения задержки при кодировании и декодировании видео, в форме компьютерно-исполняемых команд, подходящих для исполнения процессором(ами).

Компьютерная система может иметь дополнительные функциональные возможности. Например, компьютерная система (100) содержит запоминающее устройство (140), по меньшей мере, одно устройство (150) ввода, по меньшей мере, одно устройство (160) вывода и, по меньшей мере, одно соединение (170) связи. Механизм межкомпонентных соединений (не показанный), например шина, контроллер или сеть, соединяют между собой компоненты компьютерной системы (100). Обычно программное обеспечение операционной системы (не показанное) обеспечивает операционную среду для исполнения другого программного обеспечения в компьютерной системе (100) и координирует действия компонентов компьютерной системы (100).

Физическое запоминающее устройство (140) может быть съемным или несъемным и содержит магнитные диски, магнитные ленты или кассеты, постоянную память на компакт дисках (CD-ROM), цифровые видеодиски (DVD) или любой другой носитель, который можно использовать для хранения информации долговременным способом и к которому можно обращаться в компьютерной системе (100). Запоминающее устройство (140) хранит команды для программного обеспечения (180), реализующего, по меньшей мере, одну инновацию для сокращения задержки при кодировании и декодировании видео.

Устройство(а) (150) ввода может быть сенсорным устройством ввода, например клавиатурой, мышью, пером или трекболом, устройством речевого ввода, сканирующим устройством или другим устройством, которое обеспечивает ввод в компьютерную систему (100). При видеокодировании устройство(а) (150) ввода может быть камерой, видеокартой, платой телевизионного тюнера или подобным устройством, которое принимает входное видео в аналоговой или цифровой форме, или памятью CD-ROM, или перезаписываемым компакт-диском (CD-RW), который передает отсчеты видеоданных в компьютерную систему (100). Устройство(а) (160) вывода может быть дисплеем, принтером, акустическим устройством, устройством записи компакт-диска или другим устройством, которое обеспечивает вывод из компьютерной системы (100).

Соединение(ния) (170) связи дают возможность связи по среде передачи данных с другой компьютерной системой. Среда передачи данных передает такую информацию, как компьютерно-исполняемые команды, входные или выходные аудио- или видеоданные или другие данные в виде модулированного сигнала данных. Модулированный сигнал данных является сигналом, который имеет, по меньшей мере, одну из своих характеристик, установленную или изменяемую таким образом, чтобы кодировать информацию в сигнале. Например, и без ограничения, среды передачи данных могут использовать электрическую, оптическую, радиочастотную (РЧ) или другую несущую.

Методики и средства могут быть описаны в общем контексте компьютерно-считываемых носителей. Компьютерно-считываемые носители являются любыми существующими физическими носителями, к которым можно получать доступ в компьютерной среде. Например, и без ограничения, при использовании компьютерной системы (100), компьютерно-считываемые носители содержат память (120, 125), запоминающее устройство (140) и комбинации из любых упомянутых устройств.

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

Термины «система» и «устройство» применяются в настоящей заявке с возможностью взаимной замены. Если контекст не указывает прямо на иное, ни один термин не подразумевает никакого ограничения типа компьютерной системы или компьютерного устройства. В общем, компьютерная система или компьютерное устройство могут быть локальными или распределенными и могут содержать/включать в себя любую комбинацию специализированного аппаратного обеспечения и/или универсального аппаратного обеспечения с программным обеспечением, реализующим функции, описанные в настоящей заявке.

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

II. Примерные сетевые среды

На фигурах 2a и 2b изображены примерные сетевые среды (201, 202), которые содержат видеокодеры (220) и видеодекодеры (270). Кодеры (220) и декодеры (270) соединены по сети (250), с использованием соответствующего протокола связи. Сеть (250) может содержать сеть Internet или другую компьютерную сеть.

В сетевой среде (201), показанной на фигуре 2a, каждое средство (210) связи в режиме реального времени («RTC») содержит как кодер (220), так и декодер (270) для двунаправленной связи. Данный кодер (220) может формировать выходные данные, соответствующие стандарту SMPTE 421M, стандарту ISO-IEC 14496-10 (известному также как стандарт H.264 или AVC (усовершенствованное видеосжатие), стандарту HEVC другому стандарту или специализированному формату, при этом соответствующий декодер (270) принимает кодированные данные из кодера (220). Двунаправленная связь может быть частью видеоконференции, видеотелефонного вызова или другого сценария двухсторонней связи. Хотя сетевая среда (201), показанная на фигуре 2a, содержит два средства (210) связи в режиме реального времени, сетевая среда (201) может содержать, по меньшей мере, три средства (210) связи в режиме реального времени, которые участвуют в связи между несколькими сторонами.

Средство (210) связи в режиме реального времени управляет кодированием, выполняемым кодером (220). На фигуре 3 представлена примерная кодирующая система (300), которая может быть включена в состав средства (210) связи в режиме реального времени. В альтернативном варианте, средство (210) связи в режиме реального времени использует другую кодирующую систему. Средство (210) связи в режиме реального времени управляет также декодированием, выполняемым декодером (270). На фигуре 4 показана примерная декодирующая система (400), которая может быть включена в состав средства (210) связи в режиме реального времени. В альтернативном варианте, средство (210) связи в режиме реального времени использует другую декодирующую систему.

В сетевой среде (202), показанной на фигуре 2b, кодирующее средство (212) содержит кодер (220), который кодирует видео для доставки в несколько средств (214) воспроизведения, которые содержат декодеры (270). Для системы видеонаблюдения, системы контроля с web-камерами, презентации удаленной телеконференции с использованием настольных компьютеров или в другом сценарии, в котором видео кодируется и передается из одного места в, по меньшей мере, одно другое место, можно обеспечивать однонаправленную связь. Хотя сетевая среда (202), показанная на фигуре 2b, содержит два средства (214) воспроизведения, сетевая среда (202) может содержать больше или меньше средств (214) воспроизведения. В общем, средство (214) воспроизведения обменивается информацией с кодирующим средством (212), чтобы определять поток видео для получения средством (214) воспроизведения. Средство (214) воспроизведения принимает поток, буферизует принятые кодированные данные в течение подходящего периода и начинает декодирование и воспроизведение.

На фигуре 3 показана примерная кодирующая система (300), которая может быть включена в состав кодирующего средства (212). В альтернативном варианте, кодирующее средство (212) использует другую кодирующую систему. Кодирующее средство (212) может также содержать логику контроллера на стороне сервера для управления соединениями с, по меньшей мере, одним средством (214) воспроизведения. На фигуре 4 показана примерная декодирующая система (400), которую можно включить в состав средства (214) воспроизведения. В альтернативном варианте, средство (214) воспроизведения использует другую декодирующую систему. Средство (214) воспроизведения может также содержать логику контроллера на стороне клиента для управления соединениями с кодирующим средством (212).

В некоторых случаях использование синтаксического элемента для указания задержки (например, задержки переупорядочивания кадров) характерно для конкретного стандарта или формата. Например, кодированные данные могут содержать, по меньшей мере, один синтаксический элемент, который указывает ограничение на задержку в виде части синтаксиса элементарного кодированного видеопотока, заданного в соответствии со стандартом или форматом, или в виде заданных метаданных мультимедиа, относящихся к кодированным данным. В упомянутых случаях средство (210) связи в режиме реального времени, кодирующее средство (212) и/или средство (214) воспроизведения с сокращенной задержкой может зависеть от кодека в том, что решения, которые они составляют, могут зависеть от синтаксиса двоичного потока для конкретного стандарта или формата.

В других случаях использование синтаксического элемента для указания ограничения на задержку (например, задержку переупорядочивания кадров) не зависит от конкретного стандарта или формата. Например, о синтаксическом(их) элементе(ах), который(ые) указывает(ют) ограничение на задержку, может сообщаться как о составной части синтаксиса потока передачи мультимедиа, файла хранения мультимедиа или, в общем, мультиплексирующего протокола или транспортного протокола системы передачи мультимедийных данных. Или синтаксический(ие) элемент(ы), который(ые) указывает(ют) задержку, могут быть согласованы между средствами (210) связи в режиме реального времени, кодирующими средствами (212) и/или средствами (214) воспроизведения в соответствии с протоколом согласования свойств мультимедиа. В упомянутых случаях средство (210) связи в режиме реального времени, кодирующее средство (212) и средство (214) воспроизведения с сокращенной задержкой могут не зависеть от кодека в том, что упомянутые средства могут работать с любыми существующими кодером и декодером видео, в предположении некоторого уровня управления межкадровыми зависимостями, устанавливаемыми в процессе кодирования.

III. Примерные кодирующие системы

На фигуре 3 приведена блок-схема примерной кодирующей системы (300), в связи с которой могут быть реализованы некоторые описанные варианты осуществления. Кодирующая система (300) может быть универсальным кодирующим средством, способным работать в любом из нескольких режимов кодирования, например режиме кодирования с малой задержкой для связи в режиме реального времени, режиме перекодировки и нормальном режиме кодирования для воспроизведения мультимедиа из файла или потока, или упомянутая система может быть специализированным кодирующим средством, адаптированным для одного упомянутого режима кодирования. Кодирующая система (300) может быть выполнена в виде модуля операционной системы, в виде составной части библиотеки приложений или в виде автономного приложения. В общем, кодирующая система (300) принимает последовательность исходных видеокадров (311) из источника (310) видео и создает кодированные данные для вывода в канал (390). Кодированные данные, выводимые в канал, могут содержать, по меньшей мере, один синтаксический элемент, который указывает ограничение на задержку (например, задержку переупорядочивания кадров) для поддержки декодирования с сокращенной задержкой.

Источник (310) видео может быть камерой, платой телевизионного тюнера, носителем данных или другим источником цифрового видео. Источник (310) видео формирует последовательность видеокадров с частотой кадров, например, 30 кадров в секунду. В контексте настоящей заявки термин «кадр» в общем относится к исходным, кодированным или реконструированным данным изображения. Для прогрессивного видео кадр является прогрессивным видеокадром. Для чересстрочного видео в примерных вариантах осуществления чересстрочный видеокадр преобразуется в прогрессивный до кодирования. В альтернативном варианте, два дополняющих чересстрочных видеополя кодируются как чересстрочный видеокадр или отдельные поля. Помимо обозначения прогрессивного видеокадра термин «кадр» может обозначать одно непарное видеополе, дополняющую пару видеополей, предметную плоскость видеоизображения, которая представляет видеообъект в данный момент времени, или область интереса в более крупном изображении. Предметная плоскость или область видеоизображения может быть частью более крупного изображения, которое содержит несколько объектов или областей сцены.

Поступающий исходный кадр (311) сохраняется в области (320) памяти временного хранения исходных кадров, которая содержит несколько областей (321, 322, …, 32n) памяти кадровых буферов. Кадровый буфер (321, 322 и т.п.) вмещает один исходный кадр в области (320) памяти исходных кадров. После того как, по меньшей мере, один из исходных кадров (311) сохранен в кадровых буферах (321, 322 и т.п.), селектор (330) кадров периодически выбирает отдельный исходный кадр из области (320) памяти исходных кадров. Порядок, в котором кадры выбираются селектором (330) кадров для ввода в кодер (340), может отличаться от порядка, в котором кадры формируются источником (310) видео, например кадр может находиться впереди по порядку, чтобы поддерживать обратное предсказание по времени. Перед кодером (340), кодирующая система (300) может содержать предпроцессор (не показанный), который выполняет предварительную обработку (например, фильтрацию) выбранного кадра (331) перед кодированием.

Кодер (340) кодирует выбранный кадр (331) для формирования кодированного кадра (341), а также формирует управляющие сигналы (342) для управления памятью. Если текущий кадр является не первым кадром, который был кодирован, то при выполнении процесса его кодирования кодер (340) может использовать, по меньшей мере, один ранее кодированный/декодированный кадр (369), который был сохранен в области (360) памяти временного хранения декодированных кадров. Упомянутые сохраненные декодированные кадры (369) служат как опорные кадры для межкадрового предсказания содержимого текущего исходного кадра (331). Обычно кодер (340) содержит несколько кодирующих модулей, которые выполняют задачи кодирования, например оценку параметров и компенсацию движения, преобразования частоты, квантование и статистическое кодирование. Точные операции, выполняемые кодером (340), могут изменяться в зависимости от формата сжатия. Формат выходных кодированных данных может быть форматом Windows Media Video, форматом VC-1, форматом MPEG-x (например, MPEG-1, MPEG-2 или MPEG-4), форматом H.26x (например, H.261, H.262, H.263, H.264), форматом HEVC или другим форматом.

Кодированные кадры (341) и управляющие сигналы (342) для управления памятью подвергаются обработке эмулятором (350) процесса декодирования. Эмулятор (350) процесса декодирования реализует некоторые функции декодера, например задачи декодирования для реконструкции опорных кадров, которые используются кодером (340) при оценке параметров и компенсации движения. Эмулятор (350) процесса декодирования использует управляющие сигналы (342) для управления памятью для определения, нуждается ли данный кодированный кадр (341) в реконструкции и сохранении для использования в качестве опорного кадра при межкадровом предсказании последующих кадров, подлежащих кодированию. Если управляющие сигналы (342) указывают, что кодированный кадр (341) нуждается в сохранении, то эмулятор (350) процесса декодирования моделирует процесс декодирования, который будет проведен декодером, который получает кодированный кадр (341) и формирует соответствующий декодированный кадр (351). При этом, когда кодер (340) использовал декодированный(ые) кадр(ы) (369), которые были сохранены в области (360) памяти декодированных кадров, эмулятор (350) процесса декодирования также использует декодированный(ые) кадр(ы) (369) из области (360) памяти в качестве части процесса декодирования.

Область (360) памяти временного хранения декодированных кадров содержит несколько областей (321, 322, …, 32n) памяти кадровых буферов. Эмулятор (350) процесса декодирования использует управляющие сигналы (342) для управления памятью, чтобы управлять содержимым области (360) памяти для идентификации любых кадровых буферов (361, 362 и т.п.) с кадрами, которые больше не нужны кодеру (340) для использования в качестве опорных кадров. После моделирования процесса декодирования эмулятор (350) процесса декодирования сохраняет недавно декодированный кадр (351) в кадровом буфере (361, 362 и т.п.), который был идентифицирован упомянутым образом.

Кодированные кадры (341) и управляющие сигналы (342) для управления памятью буферизуются также во временной области (370) кодированных данных. Кодированные данные, которые агрегируются в области (370) кодированных данных, могут содержать, в виде составной части синтаксиса элементарного кодированного видеопотока, по меньшей мере, один синтаксический элемент, который указывает ограничение на задержку. Или кодированные данные, которые агрегируются в области (370) кодированных данных, могут содержать синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку, в виде составной части метаданных мультимедиа, относящихся к кодированным видеоданным (например, в качестве, по меньшей мере, одного параметра в, по меньшей мере, одном сообщении о дополнительной расширенной информации («SEI») или сообщении об информации применимости видео («VUI»)).

Агрегированные данные (371) из временной области (370) кодированных данных обрабатываются канальным кодером (380). Канальный кодер (380) может пакетировать агрегированные данные для передачи в виде потока мультимедиа, при этом канальный кодер (380) может добавлять, в виде составной части синтаксиса потока передачи мультимедиа, синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку. Или канальный кодер (380) может организовать агрегированные данные для хранения в виде файла, при этом канальный кодер (380) может добавлять, в виде составной части синтаксиса файла хранения мультимедиа, синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку. Или, в обобщенном случае, канальный кодер (380) может реализовать, по меньшей мере, один из мультиплексирующего протокола или транспортного протокола системы передачи мультимедийных данных, при этом канальный кодер (380) может добавлять, в виде составной части синтаксиса протокола(ов), синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку. Канальный кодер (380) обеспечивает вывод в канал (390), который представляет собой запоминающее устройство, соединение связи или другой канал для вывода.

IV. Примерные декодирующие системы

На фигуре 4 показана блок-схема примерной декодирующей системы (400), в связи с которой могут быть реализованы некоторые описанные варианты осуществления. Декодирующая система (400) может быть универсальным декодирующим средством, способным работать в любом из нескольких режимов декодирования, например режиме декодирования с малой задержкой для связи в режиме реального времени и нормальном режиме декодирования для воспроизведения мультимедиа из файла или потока, или упомянутая система может быть специализированным декодирующим средством, адаптированным для одного упомянутого режима декодирования. Декодирующая система (400) может быть выполнена в виде модуля операционной системы, в виде составной части библиотеки приложений или в виде автономного приложения. В общем, декодирующая система (400) принимает кодированные данные из канала (410) и формирует реконструированные кадры в качестве выходных данных для приемника (490) выходных данных. Кодированные данные могут содержать, по меньшей мере, один синтаксический элемент, который указывает ограничение на задержку (например, задержку переупорядочивания кадров) для поддержки декодирования с сокращенной задержкой.

Декодирующая система (400) содержит канал (410), который может представлять собой запоминающее устройство, соединение связи или другой канал для кодированных данных в качестве входных данных. Канал (410) формирует кодированные данные, которые кодированы в канале. Канальный декодер (420) может обрабатывать кодированные данные. Например, канальный декодер (420) распаковывает данные, которые были агрегированы для передачи в виде потока мультимедиа, при этом канальный декодер (420) может посредством анализа выявлять в качестве составной части синтаксиса потока передачи мультимедиа, синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку. Или канальный декодер (420) разделяет кодированные видеоданные, которые были агрегированы для хранения в виде файла, при этом канальный декодер (420) может выявлять посредством анализа, в качестве составной части синтаксиса файла хранения мультимедиа, синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку. Или, в общем, канальный декодер (420) может реализовать, по меньшей мере, один демультиплексирующий протокол или транспортный протокол системы передачи мультимедийных данных, при этом канальный декодер (420) может выявлять посредством анализа, в качестве составной части синтаксиса протокола(ов), синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку.

Кодированные данные (421), которые выводятся из канального декодера (420) сохраняются во временной области (430) кодированных данных, пока не получено достаточное количество упомянутых данных. Кодированные данные (421) содержат кодированные кадры (431) и управляющие сигналы (432) для управления памятью. Кодированные данные (421) в области (430) кодированных данных могут содержать, в качестве части синтаксиса элементарного кодированного видеопотока, по меньшей мере, один синтаксический элемент, который указывает ограничение на задержку. Или кодированные данные (421) в области (430) кодированных данных могут содержать синтаксический(ие) элемент(ы), который(ые) указывает(ют) ограничение на задержку, в виде составной части метаданных мультимедиа, относящихся к кодированным видеоданным (например, в качестве, по меньшей мере, одного параметра в, по меньшей мере, одном сообщении SEI (о дополнительной расширенной информации) или сообщении VUI (об информации применимости видео). В общем, область (430) кодированных данных временно сохраняет кодированные данные (421), пока упомянутые кодированные данные (421) не используются декодером (450). Тогда кодированные данные для кодированного кадра (431) и управляющие сигналы (432) для управления памятью передаются их области (430) кодированных данных в декодер (450). По мере того как декодирование продолжается, в область (430) кодированных данных вводятся новые кодированные данные и кодированные данные, дольше всех остающиеся в области (430) кодированных данных, передаются в декодер (450).

Декодер (450) периодически декодирует кодированный кадр (431) для формирования соответствующего декодированного кадра (451). По мере необходимости, при выполнении процесса декодирования, декодер (450) может использовать, по меньшей мере, один ранее декодированный кадр (469) в качестве опорного кадра для межкадрового предсказания. Декодер (450) считывает упомянутые ранее декодированные кадры (469) из области (460) памяти временного хранения декодированных кадров. В общем, декодер (450) содержит несколько декодирующих модулей, которые выполняют задачи декодирования, например статистическое декодирование, обратное квантование, обратные преобразования частоты и компенсацию движения. Точные операции, выполняемые декодером (450), могут изменяться в зависимости от формата сжатия.

Область (460) памяти временного хранения декодированных кадров содержит несколько областей (461, 462,..., 46n) памяти кадровых буферов. Область (460) памяти декодированных кадров является примером буфера декодированных изображений. Декодер (450) использует управляющие сигналы (432) для управления памятью, чтобы идент