Декодирование и кодирование изображений видеопоследовательности

Группа изобретений относится к декодированию и кодированию изображений видеопоследовательности и, в частности, к выводу или выталкиванию “bumping” изображений из буфера декодированных изображений в связи с кодированием и декодированием изображений. Техническим результатом является сокращение задержки вывода изображений. В представленном решении осуществляют определение, после того как текущее изображение было декодировано и сохранено в буфере декодированных изображений, DPB, некоторого числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Это число сравнивается, после того как текущее изображение было декодировано и сохранено в DPB, со значением, полученным из по меньшей мере одного синтаксического элемента, представленного или подлежащего представлению, в битовом потоке, представляющем изображения видеопоследовательности. Если это число больше, чем значение, изображение, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, предпочтительно выводится и маркируется в качестве не являющегося необходимым для вывода. 12 н. и 8 з.п. ф-лы, 30 ил.

 

Область техники

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

Уровень техники

Сжатие видео H.264

H.264 (Экспертная Группа-4 по Движущемуся Изображению, Усовершенствованное Кодирование Видео (MPEG-4 AVC)) является стандартом кодирования видео уровня техники. Он состоит из гибридной схемы кодирования видео на основе блоков, которая использует временные и пространственные избыточности. Стандарт Н.264/AVC определен в тексте спецификации, которая содержит множество процессов декодирования, которые должны быть исполнены в точно определенной последовательности для того, чтобы декодер был совместимым со стандартом. К кодеру нет никаких требований, но часто имеет место, что кодер также исполняет большинство из процессов для того, чтобы достичь хорошей эффективности сжатия.

H.264/AVC определяет буфер декодированных изображений (DPB), который сохраняет декодированные изображения после того как они были декодированы. Это означает, что декодеру необходимо использовать некоторый заданный объем памяти для того, чтобы декодировать последовательность. DPB содержит изображения, которые используются для ссылки (обращения) во время декодирования будущих изображений. "Используемое для ссылки" означает в данном документе, что некоторое конкретное изображение используется для предсказания, когда декодируется другое изображение. Пиксельные значения изображения, которое используется для ссылки, затем могут быть использованы для предсказания пиксельных значений изображения, которое декодируется в настоящее время. Это также называется внешним (интер-) предсказанием. DPB дополнительно содержит изображения, которые ожидают вывода. "Вывод" здесь означает функцию, где декодер выводит изображение за пределы декодера. Спецификация H.264 описывает, как битовый поток преобразуется в декодированные изображения, которые затем выводятся, см. Фиг. 1. Выводимые изображения могут, например, быть отображены или записаны на диск.

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

Фиг. 2 показывает пример трех изображений: A, B, и C. Порядок декодирования является порядком, в котором изображения в сжатом формате подаются в декодер. Обычно он аналогичен порядку, в котором изображения кодируются кодером. Фиг. 2 показывает, что порядок декодирования в этом примере представляет собой A, B и C. Порядок вывода является порядком, в котором выводятся декодированные изображения. Порядок вывода не должен быть таким же, как порядок декодирования, как проиллюстрировано в примере на Фиг. 2, где порядок вывода представляет собой A, C, B. Стрелки на фигуре показывают для каждого изображения, какие изображения используются для ссылки: изображение A используется для ссылки и для изображения B, и для C.

На Фиг. 2, изображение C декодируется после B, но выводится до него. Когда изображение B было декодировано, оно не может быть незамедлительно выведено, поскольку изображение C еще не было декодировано и должно быть выведено до изображения B. Поэтому, изображение B должно быть сохранено в DPB после того как оно было декодировано, даже если оно не используется для ссылки любым другим изображением. При декодировании изображения C, изображение A также должно быть представлено в DPB, поскольку изображение C использует изображение A для ссылки.

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

В качестве продолжения описания DPB, H.264/AVC содержит три процесса, которые происходят после того, как изображение было декодировано: процесс маркирования изображения, процесс вывода изображения и процесс освобождения.

Процесс маркирования изображения маркирует изображения либо в качестве "используемого для ссылки", либо в качестве "неиспользуемого для ссылки". Изображение, маркированное в качестве "используемого для ссылки", доступно для ссылки, что означает, что последующее изображение в порядке декодирования может использовать изображение для ссылки в своих процессах декодирования. Изображение, маркированное в качестве "неиспользуемого для ссылки", не может быть использовано для ссылки последующими изображениями. Этот процесс управляется кодером через битовый поток. В битовом потоке H.264/AVC имеется необязательный синтаксис, который, если присутствует, указывает, какие изображения следует маркировать в качестве "неиспользуемых для ссылки". Эта операция часто упоминается как операция контроля управления памятью (MMCO). Если необязательного синтаксиса MMCO нет, определяется механизм первый на входе, первый на выходе, называемый процессом "скользящего окна". Процесс скользящего окна означает то, что когда последнее декодированное изображение привело бы к слишком большому количеству изображений в DPB, самое старое изображение в порядке декодирования автоматически маркируется в качестве "неиспользуемого для ссылки".

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

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

Размер DPB в H.264/AVC ограничен. Это означает, что число изображений, которые могут быть сохранены, поскольку они ожидают вывода или стали доступными для ссылки, ограничено. Переменная max_dec_frame_buffering обозначает размер DPB, иногда упоминаемый как число слотов изображений, которые имеются в DPB. Кодер должен гарантировать, что размер DPB никогда не выходит за пределы.

Три процесса описываются в стандарте. Это означает, что декодер управляется кодером и поэтому декодер не имеет никакой свободы относительно порядка вывода. Это все определяется процессом вывода изображения и связанными элементами в битовом потоке, отправляемом кодером. Упрощенная блок-схема последовательности операций для этапов декодирования H.264/AVC показана на Фиг 3.

Процесс вывода изображения в H.264 задает порядок, в котором изображения должны быть выведены. Декодер, который выводит изображения в правильном порядке, является совместимым с порядком вывода. Декодер может следовать процессу вывода изображения, описанному в H.264, но иногда возможно использовать переменную num_reorder_frames, чтобы выводить изображения раньше, чем задано процессом вывода изображения. num_reorder_frames указывает максимальное число изображений, которые предшествуют какому-либо изображению в порядке декодирования и следуют за ним в порядке вывода.

Фиг. 4 показывает пример, где только что было декодировано изображение B. Но изображение B не может быть выведено поскольку неизвестно, должно ли изображение C быть выведено до или после изображения B. Если кодер решил, что порядок вывода является таким же, как порядок декодирования, он может указать декодеру значение num_reorder_frames равное 0. Кодер посредством этого обеспечил то, что изображение C в примере будет выведено после изображения B и декодер сможет незамедлительно вывести изображение B, когда оно будет декодировано. В этом случае, когда num_reorder_frames равно 0, в декодере отсутствует дополнительная задержка переупорядочения. Если num_reorder_frames в примере установлено в 1, возможно, что изображение C должно быть выведено до изображения B. С num_reorder_frames равным 1, имеется дополнительная задержка переупорядочения в 1 изображение, с num_reorder_frames равным 2, задержка переупорядочения будет составляет 2 изображения и так далее.

Сжатие видео HEVC

Высокоэффективное Видеокодирование (HEVC), также упоминаемое как H.265, является стандартом видеокодирования, разрабатываемым Объединенной Группой по Видеокодированию (JCT-VC). JCT-VC является совместным проектом между MPEG и Сектором Стандартизации Телекоммуникаций Международного Телеграфного Союза (ITU-T). HEVC включает в себя большое количество новых инструментальных средств и является значительно более эффективным, чем H.264/AVC. HEVC также задает temporal_id для каждого изображения в соответствии с временным уровнем, к которому принадлежит упомянутое изображение. Временные уровни упорядочены и имеют свойство, что более низкий временной уровень никогда не зависит от более высокого временного уровня. Таким образом, более высокие временные уровни могут быть удалены без оказания воздействия на более низкие временные уровни. Удаление временных уровней может упоминаться как временное масштабирование. Битовый поток HEVC содержит синтаксический элемент, max_sub_layers_minus1, который точно определяет максимальное число временных уровней, которые могут быть представлены в битовом потоке. Декодер может декодировать все временные уровни или декодировать только поднабор временных уровней. Наивысший временной уровень, который фактически декодирует декодер, упоминается, как наивысший временной подуровень и может быть установлен равным или более низким, чем максимальные количества уровней, которые точно определены посредством max_sub_layers_minus1. Декодер затем декодирует все уровни, которые равны или более низкие, чем наивысший временной подуровень. Наивысший временной подуровень может быть установлен внешним средством.

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

Поток декодирования в соответствии с HEVC немного отличается от H.264/AVC. HEVC обладает DPB, процессом маркирования изображения, который маркирует изображения в качестве "используемых для ссылки" и "неиспользуемых для ссылки", процессом вывода изображения, который маркирует изображения в качестве "необходимых для вывода" и "не являющихся необходимыми для вывода" и процессом освобождения. Подобно H.264/AVC, HEVC также использует значения РОС для задания порядка вывода изображения. Значение POC в HEVC представлено переменной PicOrderCntVal, где изображения выводятся в порядке возрастания PicOrderCntVal.

HEVC, однако, не обладает MMCO или процессом скользящего окна. Вместо этого, HEVC точно определяет, что список изображений, которые маркированы в качестве "используемых для ссылки", явно отправляется в каждом заголовке слайса. Маркирование изображения в HEVC использует этот список и гарантирует, что все изображения в DPB, которые перечислены, маркируются в качестве "используемых для ссылки" и, что все изображения в DPB, которые не перечислены, маркируются в качестве "неиспользуемых для ссылки". Список называется набором опорных (ссылочных) изображений (RPS) и отправка одного в каждом заголовке слайса означает, что состояние маркирования опорного изображения в DPB является явным и повторяется в каждом слайсе, что не имеет место в H.264/AVC.

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

Функциональность num_reorder_frames, как описано для H.264/AVC, также представлена в HEVC. Битовый поток HEVC содержит синтаксический элемент для каждого временного уровня, обозначаемый max_num_reorder_pics[ i ], где i является временным уровнем. Функция max_num_reorder_pics[ i ] является такой же как num_reorder_frames, но каждое кодовое слово здесь указывает максимально допустимое число изображений в том же самом или более низком временном уровне, который предшествует изображению в порядке декодирования и следует за этим изображением в порядке вывода.

Рассмотрим пример на Фиг. 6, где порядок декодирования представляет собой A, B, C, D, E и порядок вывода представляет собой A, D, C, E, B. Он представляет собой структуру изображений, которая использует временные уровни, где изображения A и B принадлежат к низшему временному уровню (уровню 0), изображение C принадлежит к среднему временному уровню (уровню 1) и изображения D и E принадлежат к высшему временному уровню (уровню 2). Стрелки на фигуре показывают, какие изображения используются для ссылки другими изображениями. Например, изображение A используется для ссылки изображением B, поскольку имеется стрелка от изображения A к изображению B. Лучшим применением max_num_reorder_pics в HEVC является установить его настолько малым, насколько это возможно, для сокращения задержки вывода насколько это возможно. Наименьшие возможные значения max_num_reorder_pics для каждого временного уровня показаны на Фиг. 6. Причина 0 для низшего уровня состоит в том, что в уровне 0 отсутствует изображение, которое предшествует какому-либо изображению в порядке декодирования, но следует за ним в порядке вывода. Для уровня 1 мы имеем изображение B, которое предшествует изображению C в порядке декодирования, но следует за ним в порядке вывода, и для уровня 2 мы имеем изображения B и C, которые оба предшествуют изображению D в порядке декодирования, но следуют за ним в порядке вывода.

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

JCTVC-K0030_v3, Предложенное редакционное улучшение для проекта 8 текстовой спецификации Высокоэффективного Видеокодирования (HEVC), Bross и другие, JCT-VC ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 11-ое Заседание: Шанхай, 10-19 октября 2012, которое опубликовано 12 сентября 2012, обсуждает использование max_num_reorder_pics в разделе 7.4.2.1 на странице 62 и разделе 7.4.2.2 на странице 64.

no_output_of_prior_pics_flag

И битовый поток H.264, и битовый поток HEVC точно определяют флаг, называемый no_output_of_prior_pics_flag. Этот флаг представляет в заголовке слайса изображений произвольного доступа (RAP). Изображения произвольного доступа являются изображениями, с которых возможно встроиться в поток. Они гарантируют, что декодирование будущих изображений может быть осуществлено корректно, если декодер начинает декодирование от точки произвольного доступа. Декодеру не необходимости обеспечивать какие-либо данные, содержащие изображения, которые предшествуют изображению произвольного доступа в порядке декодирования, для настройки работы.

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

Рассмотрим Фиг. 7, которая показывает пример, где max_num_reorder_pics равен 0 и изображение C является изображением произвольного доступа с no_output_of_prior_pics_flag равным 1. В H.264, было бы возможно вывести изображение B незамедлительно после того как оно было декодировано. В текущей спецификации HEVC дело обстоит не так, поскольку декодер не знает незамедлительно после того как изображение B было декодировано, является ли изображение C изображением RAP с no_output_of_prior_pics_flag равным 1 или нет. Если изображение C не является таким изображением, изображение B может быть выведено незамедлительно после того как оно было декодировано. Но если изображение C в самом деле является изображением RAP с no_output_of_prior_pics_flag равным 1, изображение B не должно быть выведено, поскольку изображение B маркируется в качестве "необходимого для вывода", когда декодируется заголовок слайса изображения C.

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

Информация об использовании no_output_of_prior_pics_flag раскрыта в разделе 7.4.7.1 на странице 75 и в разделе C.5.2 на странице 26 в JCTVC-K0030_v3.

Преимущество использования RPS в HEVC заключается в том, что оно является гораздо более устойчивым к ошибкам по сравнению со способом H.264/AVC. Также, временная масштабируемость является более простой. Проблема с решением HEVC заключается в том, что оно вводит дополнительную задержку относительно вывода изображения в сравнении с H.264/AVC. В H.264/AVC, изображения могут быть выведены после того как изображение было декодировано. В HEVC, декодер должен ожидать анализа заголовка слайса следующего изображения до тех пор, пока не будут выведены изображения. Это вызывает задержку.

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

Сущность изобретения

Главной целью является обеспечение улучшенного декодирования и кодирования изображений видеопоследовательности.

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

Как раскрыто в этом документе, эти и другие цели достигаются вариантами осуществления.

Аспект вариантов осуществления относится к способу, выполняемому декодером. Способ содержит определение, после того как текущее изображение было декодировано и сохранено в буфере декодированных изображений (DPB), некоторого числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Способ также содержит сравнение числа со значением sps_max_num_reorder_pics[ HighestTid ]. HighestTid точно определяет наивысший уровень, который декодируется декодером видеопоследовательности. Способ дополнительно содержит вывод изображения, которое является первым изображением в порядке вывода изображений в DPB, которые маркированы в качестве необходимых для вывода, если число больше, чем значение. Изображение также маркируется в качестве не являющегося необходимым для вывода, если число больше, чем значение.

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

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

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

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

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

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

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

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

Еще один аспект вариантов осуществления относится к способу, выполняемому кодером. Способ содержит маркирование всех изображений в DPB, которые не представлены в RPS для текущего изображения видеопоследовательности, в качестве неиспользуемых для ссылки и маркирование нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB, в качестве не являющихся необходимыми для вывода. Способ также содержит выгрузку, из DPB, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB. Способ дополнительно содержит декодирование текущего изображения. Число изображений в DPB, которые маркированы в качестве необходимых для вывода, определяется и сравнивается со значением, полученным из по меньшей мере одного заданного синтаксического элемента. Способ также содержит маркирование изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если число больше, чем значение. В предпочтительном варианте осуществления, определение числа изображений, сравнение числа и маркирование изображения выполняются после декодирования текущего изображения.

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

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

Дополнительные аспекты вариантов осуществления относятся к мобильному терминалу, содержащему декодер, согласно вышеуказанному, и/или кодер, согласно вышеуказанному, и сетевому узлу, содержащему декодер, согласно вышеуказанному, и/или кодер, согласно вышеуказанному.

Краткое описание чертежей

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

Фиг. 1 представляет собой схематический общий вид декодера H.264/AVC;

Фиг. 2 иллюстрирует порядок декодирования и вывода для примера многоуровневой видеопоследовательности;

Фиг. 3 представляет собой упрощенную блок-схему последовательности операций декодирования H.264/AVC;

Фиг. 4 иллюстрирует порядок декодирования и вывода для примера многоуровневой видеопоследовательности;

Фиг. 5 представляет собой упрощенную блок-схему последовательности операций декодирования HEVC;

Фиг. 6 иллюстрирует порядок декодирования и вывода и временные уровни для примера многоуровневой видеопоследовательности;

Фиг. 7 иллюстрирует порядок декодирования и вывода для примера видеопоследовательности;

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

Фиг. 9 представляет собой блок-схему последовательности операций дополнительных, необязательных этапов способа по Фиг. 8;

Фиг. 10 представляет собой блок-схему последовательности операций дополнительного, необязательного этапа способа по Фиг. 8;

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

Фиг. 12 представляет собой блок-схему последовательности операций дополнительных, необязательных этапов способа по Фиг. 9 или 11;

Фиг. 13 представляет собой блок-схему последовательности операций дополнительного, необязательного этапа способа по Фиг. 8 или 11;

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

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

Фиг. 16 представляет собой схематическую блок-схему декодера согласно варианту осуществления;

Фиг. 17 представляет собой схематическую блок-схему декодера согласно другому варианту осуществления;

Фиг. 18 представляет собой схематическую блок-схему декодера согласно дополнительному варианту осуществления;

Фиг. 19 представляет собой схематическую блок-схему декодера согласно еще одному варианту осуществления;

Фиг. 20 представляет собой схематическую блок-схему декодера согласно дополнительному варианту осуществления;

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

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

Фиг. 23 представляет собой схематическую блок-схему кодера согласно варианту осуществления;

Фиг. 24 представляет собой схематическую блок-схему кодера согласно другому варианту осуществления;

Фиг. 25 представляет собой схематическую блок-схему кодера согласно дополнительному варианту осуществления;

Фиг. 26 представляет собой схематическую блок-схему кодера согласно еще одному варианту осуществления;

Фиг. 27 представляет собой схематическую блок-схему кодера согласно дополнительному варианту осуществления;

Фиг. 28 представляет собой схематическую блок-схему мобильного терминала согласно варианту осуществления;

Фиг. 29 представляет собой схематическую блок-схему сетевого узла согласно варианту осуществления; и

Фиг. 30 иллюстрирует порядок декодирования и вывода для примера многоуровневой видеопоследовательности.

Подробное описание

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

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

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

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

Маркированное в качестве необходимого для вывода означает в этом документе, что изображение ожидает вывода, например, для отображения или сохранения. Соответственно, маркированное в качестве не являющегося необходимым для вывода означает в этом документе, что изображение не ожидает вывода, и может, например, уже быть выведено. Соответственно, маркированное в качестве используемого для ссылки означает, что изображение используется для предсказания, когда декодируется другое изображение. Маркированное в качестве неиспользуемого для ссылки означает, что изображение не может быть использовано для ссылки или предсказания последующими изображениями. Маркирование, как упомянуто выше по тексту, не должно быть интерпретировано буквально как маркирование изображений меткой "необходимое для вывода", "не являющееся необходимым для вывода", "используемое для ссылки" или "неиспользуемое для ссылки". Точнее, маркирование должно быть интерпретировано таким образом, что изображение идентифицируется некоторым образом, в соответствии с которым оно должно быть/не должно быть выведено и может быть использовано в качестве опорного изображения/не может быть использовано в качестве опорного изображения. Маркирование может быть реализовано в различных вариантах осуществления. Например, изображение может быть сохранено в конкретной части DPB, выделенной для изображений, которые должны быть выведены или которые не должны быть выведены, или изображений, которые могут быть использованы в качестве опорного изображения или которые не должны быть использованы в качестве опорного изображения. В качестве альтернативы, изображение может быть помечено или иначе ассоциировано с флагом или другим кодовым словом, идентифицирующим изображение в качестве необходимого для вывода, против, не являющегося необходимым для вывода и используемого для ссылки, против, неиспользуемого для ссылки. В случае реализации флага, флаг может иметь первое значение (0bin или 1bin) (“bin” - бин) для указания одной из альтернатив и затем иметь второе значение (1bin или 0bin) для указания другой альтернативы. Например, первый флаг может быть использован в отношении вывода изображений и второй флаг может быть использован в отношении ссылки.

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

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

Фиг. 8 представляет собой блок-схему последовательности операций способа, выполняемого декодером, согласно варианту осуществления. Способ содержит определение, на этапе S1 и после того как текущее изображение было декодировано и сохранено в DPB, числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Следующий этап S2 содержит сравнение этого числа со значением sps_max_num_reorder_pics[ HighestTid ]. Если число больше, чем значение способ переходит к этапу S3. Этот этап S3 содержит вывод изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода. Изображение, которое было выведено на этапе S3, затем маркируется в качестве не являющегося необходимым для вывода на этапе S4. Следовательно, этот этап S4 выполняется, если число больше, чем значение.

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

В варианте осуществления, sps_max_num_reorder_pics[ i ] указывает максимально допустимое число изображений, которые могут предшествовать любому изображению в кодированной видеопоследовательности в порядке декодирования и следовать за этим изображением в порядке вывода, когда HighestTid равен i. Префикс sps у max_num_reorder_pics[ i ] указывает, что синтаксический элемент предпочтительно представляется в наборе параметров последовательности (SPS) битового потока.

Таким образом, в этом варианте осуществления может быть одно значение, полученное из расчета на уровень в битовом потоке, и причем значение для использования в сравнении, выполняемом на этапе S2, является значением, которое получается для наивысшего уровня, который фактически декодируется декодером видеопоследовательности. Следует отметить, что этот наивысший декодированный уровень может быть равным или более низким, чем максимальное число уровней в видеопоследовательности, что точно определено синтаксическим элементом max_sub_layers_minus1, таким как vps_max_sub_layers_minus1 или sps_max_sub_layers_minus1, в зависимости от того, извлекается ли синтаксический элемент из набора параметров видео (VPS) или SPS.

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

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

В варианте осуществления, если число не больше, чем значение, что определено в сравнении на этапе S2, способ предпочтительно завершается и никакое изображение не выводится или не маркируется. Таким образом, в таком случае, этапы S3 и S4 пропускаются и не выполняются, см. пунктирную линию справа.

В варианте осуществления, этапы S2-S4 могут быть выполнены только один раз, после того как текущее изображение было декодировано и сохранено в DPB. В качестве альтернативы, цикл, сформированный этапами S2-S4, см. пунктирную линию слева, может быть выполнен до тех пор, пока число изображений в DPB, которые маркированы в качестве необходимых для вывода, уже не больше, чем значение sps_max_num_reorder_pics[ HighestTid ]. Каждый раз, когда выполняется цикл этапов S2-S4, число изображений в DPB, которые маркированы в качестве необходимых для вывода, сокращается на единицу посредством маркирования, на этапе S4, изображения, выведенного на этапе S3, в качестве не являющегося необходимым для вывода. Это означает, что этапы S3 или S4 могут быть выполнены, после того как текущее изображение было декодировано и сохранено в DPB, ноль раз, если число≤sps_max_num_reorder_pics[ HighestTid ]; один раз, если число=sps_max_num_reorder_pics[ HighestTid ]+1; или более, чем один раз, если число>sps_max_num_reorder_pics[ HighestTid ]+1, то есть, n раз, если число=sps_max_num_reorder_pics[ HighestTid ]+n. Как только сравнение на этапе S2 определяет, что число уже не больше, чем значение sps_max_num_reorder_pics[ HighestTid ], способ завершается.

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

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

Фиг. 9 представляет собой блок-схему последовательности операций дополнительных, необязательных этапов способа по Фиг. 8. Способ начинается на этапе S10, который содержит анализ заголовка слайса текущего изображения, которое должно быть декодировано, видеопоследовательности. Следующий этап S11 определяет набор опорных изображений (RPS) для текущего изображения на основании проанализированного заголовка слайса. Все изображения в DPB, которые не представлены в RPS, маркируются в качестве неиспользуемых для ссылки на этапе S12. Следующий этап S13 содержит вывод нуля, одного или множества, то есть более, чем одного, изображений, которые маркированы в качестве необходимых для вывода, из изображений в DPB. Этот этап S13 также содержит маркирование выводимых нуля, одного или множества изображений в качестве не являющихся необходимыми для вывода. Этап S14 содержит выгрузку или удаление, из DPB, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB. Текущее изображение затем декодируется на этапе S15. Способ затем переходит к этапу S1 на Фиг. 8. Следовательно, в этом варианте осуществления, определение числа изображений на этапе S1, сравнение числа на этапе S2, вывод изображения на этапе S3 и маркирование изображения на этапе S4 выполняются после декодирования текущего изображения на этапе S15.

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

В общем, кодированная видеопоследовательность, то есть, битовый поток, содержит единицы уровня абстракции сети (NAL). В основном, одна единица NAL содержит слайс с соответствующим заголовком слайса, включающим в себя информацию управления для этого слайса и данные полезной нагрузки видео, либо единица NAL содержит набор параметров, такой как VPS, SPS и набор параметров изображения (PPS). Набор параметров содержит информацию управления. Изображение видеопоследовательности может состоять из одного слайса или многочисленных слайсов. Этап S10 с Фиг. 9 таким образом содержит анализ части заголовка слайса единицы NAL, содержащей слайс изображения. Если изображение содержит многочисленные слайсы и в силу этого распределяется между многочисленными единицами NAL, содержащими соответствующий заголовок слайса, тогда этап S10 предпочтительно выполняется для каждого слайса изображения. Однако этапы с S11 по S14 предпочтительно выполняются только для одного из слайсов в изображении, обычно первого слайса в изображении.

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

Информация, получаемая на этапе S10 и используемая для определения RPS на этапе S11, может, например, содержать идентификатор для структуры синтаксиса RPS, включенной в набор параметров, такой как SPS, применимый к текущему слайсу. Примером такого идентификатора, применимого для HEVC, является short_term_ref_pic_set_idx. Набор параметров затем содержит синтаксические элементы, задающие один или более RPS, такие как num_short_term_ref_pic_sets, задающий число синтаксических элементов short_term_ref_pic_set( ), включенных в SPS, где синтаксический элемент short_term_ref_pic_set( ) задает возможный RPS для текущего изображения.

В качестве альтернативы, информация, получаемая на этапе S10, может быть использована непосредственно для определения RPS на этапе S11. Эта информация может, например, содержать синтаксический элемент short_term_ref_pic_set( ), где синтаксический элемент short_term_ref_pic_set( ) задает RPS текущего изображения.

Больше информации об определении RPS может быть найдено в WO 2013/002700 и разделах 7.3.2.2, 7.3.5.1, 7.3.5.2, 7.4.2.2, 7.4.5.1, 7.4.5.2 и 8.3.2 в JCTVC-J1003_d7, проекте 8 текстовой спецификации Высокоэффективного Видеокодирования (HEVC), В. Bross и другие, JCT-VC ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 10-е Собрание: Стокгольм, 11-20 июля 2012.

RPS точно определяет, как упомянуто выше по тексу, изображения видеопоследовательности, которые должны быть удержаны в DPB, то есть, быть доступными для использования в качестве опорных изображений при декодировании текущего изображения и/или при декодировании изображений, следующих за текущим изображением в порядке декодирования. Это означает, что любые опорные изображения, сохраненные в DPB, но не перечисленные в RPS, больше не будут использованы в качестве опорного изображения. Следовательно, этап S12 в связи с этим содержит маркирование таких изображений в DPB, но не идентифицированных в RPS, в качестве неиспользуемых для ссылки.

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

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

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

Декодирование текущего изображения выполняется согласно хорошо известным способам декодирования изображений, таким, которые точно определены в стандарте HEVC/H.265. Следовательно, декодирование на этапе S35 влечет за собой генерирование пиксельных значений пикселей или отсчетов в текущем изображении, обычно с использованием пиксельных значений одного или более ранее декодированных изображений, сохраненных в DPB, в качестве опорных изображений.

В варианте осуществления, показанном на Фиг. 9, способ, показанный на Фиг. 8 и содержащий этапы S1-S4, может рассматриваться как дополнительный или вспомогательный процесс вывода изображения, который был упомянут выше по тексту как процесс #2 вывода изображения. Этот вариант осуществления в связи с этим обеспечивает возможность вывода изображений на этапе S3 даже после того, как текущее изображение было декодировано на этапе S15, но перед началом обработки следующего изображения в битовом потоке, то есть, перед выполнением этапа S10 для следующего изображения в порядке декодирования.

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

1. Анализируется заголовок слайса, включающий в себя RPS, заголовка первого слайса изображения P.

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

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

4. Декодируется изображение P.

5. После того как изображение P декодировано, декодер определяет число изображений в DPB, которые маркированы в качестве необходимых для вывода, и сравнивает это число со значением, которое получается из синтаксических элементов, показанных на примере sps_max_num_reorder_pics[ HighestTid ], в битовом потоке.

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

7. Следующее изображение Q декодируется повторением вышеуказанных этапов 1-6 для изображения Q.

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

Модификация обеспечивает решение проблемы с no_output_of_prior_pics_flag, рассмотренной в разделе Уровень техники. Решение является аналогичным вариантам осуществления, рассмотренным выше по тексту, но с изменением, что вместо добавления дополнительного процесса вывода, существующий процесс вывода HEVC модифицируется, когда no_output_of_prior_pics_flag равен 1.

Фиг. 10 представляет собой блок-схему последовательности операций дополнительного, необязательного этапа способа по Фиг. 8, при реализации вышеупомянутого варианта осуществления. Этап S20 содержит анализ заголовка слайса изображения произвольного доступа (RAP), также упоминаемого как интра-изображение точки произвольного доступа (IRAP) в области техники, из видеопоследовательности для получения значения флага no_output_of_prior_pics_flag. Если значение флага no_output_of_prior_pics_flag равно 1, способ переходит к этапу S1 на Фиг. 8. Следовательно, в этом варианте осуществления, определение числа на этапе S1, сравнение числа на этапе S2, вывод изображения на этапе S3 и маркирование изображения на этапе S4 выполняются, если значение no_output_of_prior_pics_flag равно единице.

Соответственно, если значение у значения no_output_of_prior_pics_flag равно нулю (0), способ завершается и модифицированный процесс вывода не выполняется.

Когда этот вариант осуществления применяется к HEVC, способ предпочтительно содержит дополнительные этапы определения RPS для изображения произвольного доступа на основании заголовка слайса, проанализированного на этапе S20 (в сравнении с этапом S11 на Фиг. 9). Способ также содержит маркирование всех изображений в DPB, которые не перечислены в RPS, в качестве неиспользуемых для ссылки (в сравнении с этапом S12 на Фиг. 9). Декодируется изображение произвольного доступа (в сравнении с этапом S15 на Фиг. 9). В этом варианте осуществления, определение числа на этапе S1, сравнение числа на этапе S2, вывод изображения на этапе S3 и маркирование изображения на этапе S4 выполняются после маркирования изображений, не перечисленных в RPS, но перед декодированием изображения произвольного доступа.

Фиг. 15 представляет собой упрощенную блок-схему последовательности операций декодирования этого варианта осуществления. Способ декодера может содержать и/или декодер может быть сконфигурирован для выполнения следующих упорядоченных этапов согласно варианту осуществления:

1) Анализируется заголовок слайса заголовка первого слайса изображения P.

2) Осуществляется процесс маркирования изображения.

3) Осуществляется процесс вывода изображения, в котором могут быть выведены изображения. Процесс вывода изображения модифицируется так, что если no_output_of_prior_pics_flag равен 1, применяется следующее:

a. Декодер определяет число изображений в DPB, которые маркированы в качестве необходимых для вывода, и сравнивает это число со значением, которое получается из синтаксических элементов в битовом потоке.

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

c. Все оставшиеся изображения в DPB, которые маркированы в качестве необходимых для вывода, маркируются в качестве не являющихся необходимыми для вывода. Они не выводятся.

4) Декодируется изображение P.

Фиг. 11 представляет собой блок-схему последовательности операций способа, выполняемого декодером согласно другому варианту осуществления. Способ содержит анализ заголовка слайса текущего изображения, которое должно быть декодировано, видеопоследовательности на этапе S30. RPS определяется для текущего изображения на основании проанализированного заголовка слайса на этапе S31. Следующий этап S32 содержит маркирование всех изображений в DPB, которые не представлены в RPS, в качестве неиспользуемых для ссылки. Ноль, одно или множество изображений, маркированных в качестве необходимых для вывода, из изображений в DPB, выводятся и маркируются в качестве не являющихся необходимыми для вывода на этапе S33. Следующий этап S34 содержит выгрузку или удаление какого-либо изображения, из DPB, которое маркируется в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB. Текущее изображение затем декодируется на этапе S35.

Эти этапы с S30 по S35 по существу соответствуют этапам S10-S15, рассмотренным выше по тексту и проиллюстрированным на Фиг. 9.

Способ затем переходит к этапу S36, который содержит определение числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Это число сравнивается на этапе S37 со значением, полученным из по меньшей мере одного синтаксического элемента, представленного в битовом потоке, представляющем изображения видеопоследовательности. Если число больше, чем значение способ переходит к этапам S38 и S39. Этап S38 содержит вывод изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода. Этап S39 содержит маркирование изображения, выведенного на этапе S38, в качестве не являющегося необходимым для вывода.

В этом варианте осуществления, определение числа изображений на этапе S37, сравнение числа на этапе S38, вывод изображения на этапе S38 и маркирование изображения на этапе S39 выполняются после декодирования текущего изображения на этапе S35.

Этапы с S36 по S39 соответствуют этапам с S1 по S4, рассмотренным выше по тексту и показанным на Фиг. 8, но с отличием в том, что значение, с которым сравнивается определенное число на этапе S37, необязательно должно быть sps_max_num_reorder_pics[ HighestTid ], но вместо этого может быть значением, полученным из другого(их) синтаксического элемента(ов), имеющегося в битовом потоке, что дополнительно рассмотрено ниже по тексту.

В варианте осуществления, если число не больше, чем значение, что определено сравнением на этапе S37, способ предпочтительно завершается и никакое изображение не выводится или не маркируется. Таким образом, в таком случае, этапы S38 и S39 пропускаются и не выполняются, см. пунктирную линию справа.

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

Фиг. 12 представляет собой блок-схему последовательности операций дополнительных, необязательных этапов способа по Фиг. 11, но также применимых к вариантам осуществления, показанным на Фиг. 8 и 9. Способ продолжается с этапа S35 на Фиг. 11 или этапа S15 на Фиг. 9, на которых было декодировано текущее изображение. Следующий этап S40 содержит сохранение декодированного текущего изображения в DPB в пустом буфере хранения изображений, то есть, слоте изображения. Декодированное текущее изображение маркируется на этапе S41 в качестве необходимого для вывода или в качестве не являющегося необходимым для вывода. Изображение также необязательно маркируется в качестве используемого для кратковременной ссылки, то есть, используемого в качестве опорного изображения. Этот этап S41 предпочтительно выполняется на основании PicOutputFlag, назначенного текущему изображению. Таким образом, если флаг имеет значение 1, декодированное текущее изображение затем маркируется в качестве необходимого для вывода и иначе, то есть, флаг имеет значение 0, декодированное текущее изображение маркируется в качестве не являющегося необходимым для вывода. PicOutputFlag может быть получен из синтаксического элемента в битовом потоке, применимого к настоящему текущему изображению, например, на основании синтаксического элемента pic_output_flag, который может быть представлен в заголовке слайса текущего изображения.

Способ затем переходит к этапу S36 с Фиг. 11 или этапу S1 с Фиг. 8, где определяется число изображений в DPB, маркированных в качестве необходимых для вывода.

В этом документе далее будут описаны различные варианты осуществления выбора значения, используемого в сравнении на этапе S37 с Фиг. 11 и на этапе S2 с Фиг. 8.

В варианте осуществления, видеопоследовательность является многоуровневой видеопоследовательностью, содержащей множество уровней изображений. Каждый уровень из упомянутого множества уровней, затем имеет ассоциированный синтаксический элемент, задающий соответствующее значение, используемое в процессе вывода. Способ дополнительно содержит дополнительный, необязательный этап, показанный на блок-схеме последовательности операций с Фиг. 13. Способ продолжается с этапа S35 на Фиг. 11 или с этапа S1 на Фиг. 8. Следующий этап S50 содержит выбор значения, полученного из синтаксического элемента, ассоциированного с наивысшим уровнем, который декодируется декодером, упомянутого множества уровней. Способ затем переходит к этапу S37 на Фиг. 11 или этапу S2 на Фиг. 8, где используется это выбранное значение.

Этап S37 и этап S2 предпочтительно содержат, в этом варианте осуществления, сравнение числа, определяемого на этапе S36 или S1, со значением sps_max_num_reorder_pics[ HighestTid ]. Если число больше, чем значение sps_max_num_reorder_pics[ HighestTid ], способ переходит к этапу S38 или S3, которые содержат, в этом варианте осуществления, вывод изображения в DPB с наименьшим значением PicOrderCntVal всех изображений в DPB, которые маркированы в качестве необходимых для вывода. PicOrderCntVal представляет значение счета порядка изображения у изображения, которое в свою очередь предпочтительно задает порядок вывода изображений, сохраненных в DPB.

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

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

Этап S37 предпочтительно содержит, в этом варианте осуществления, сравнение числа, определяемого на этапе S36, со значением sps_max_num_reorder_pics[ sps_max_sub_layers_minus1 ]. Если число больше, чем значение sps_max_num_reorder_pics[ sps_max_sub_layers_minus1 ], способ переходит к этапу S38, который содержит, в этом варианте осуществления, вывод изображения в DPB с наименьшим значением PicOrderCntVal всех изображений в DPB, которые маркированы в качестве необходимых для вывода. Синтаксический элемент sps_max_sub_layers_minus1 точно определяет максимальное число уровней видеопоследовательности.

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

В дополнительном варианте осуществления, видеопоследовательность является многоуровневой видеопоследовательностью, содержащей множество уровней изображений. Каждый уровень из упомянутого множества уровней, затем имеет ассоциированный синтаксический элемент, задающий соответствующее значение. Способ дополнительно содержит дополнительный, необязательный этап, показанный на блок-схеме последовательности операций с Фиг. 13. Способ продолжается с этапа S36 на Фиг. 11. Следующий этап S50 содержит выбор значения, полученного из синтаксического элемента, ассоциированного с уровнем из упомянутого множества уровней, к которому принадлежит декодированное текущее изображение. Способ затем переходит к этапу S37, где используется это выбранное значение.

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

Способ, как показано на Фиг. 11, может быть применен к текущему изображению, которое является изображением произвольного доступа видеопоследовательности. В таком случае, этап S30 предпочтительно содержит анализ заголовка слайса изображения произвольного доступа для получения значения флага no_output_prior_flag. В таком случае, определение числа на этапе S36, сравнение числа на этапе S37, вывод изображения на этапе S38 и маркирование изображения на этапе S39 могут быть обусловлены на основании значения этого флага. Следовательно, в необязательном варианте осуществления эти этапы S36-S39 выполняются, если значение флага no_output_prior_flag равно 1.

В варианте осуществления, маркирование изображения, как выполнено на этапе S12 с Фиг. 9 и S32 с Фиг. 11, предпочтительно содержит маркирование всех изображений в DPB, которые не представлены в RPS, в качестве неиспользуемых для ссылки. Эти этапы также необязательно содержат маркирование всех изображений в DPB, которые представлены в RPS, в качестве используемых для ссылки. Однако в общем изображение маркируется в качестве используемого для ссылки как только оно декодируется и сохраняется в DPB. Следовательно, этап S12 и S32 типично влекут за собой перемаркирование изображений, которые уже не являются необходимыми для ссылки.

В варианте осуществления, вывод изображения, выполняемый на этапе S3 с Фиг. 8 и этапе S38 с Фиг. 11, предпочтительно содержит вывод изображения с наименьшим значением счета порядка изображения из изображений в DPB, которые маркированы в качестве необходимых для вывода, если число больше, чем значение, что определено на этапе S2 или S37. Значение счета порядка изображения предпочтительно представляется параметром PicOrderCntVal.

В варианте осуществления, вывод изображения, выполняемый на этапе S3 с Фиг. 8 и этапе S38 с Фиг. 11, предпочтительно выполняется до анализа заголовка слайса следующего изображения, которое должно быть декодировано, кодированной видеопоследовательности.

В варианте осуществления, способ, выполняемый так, как показано на Фиг. 8 или Фиг. 11, содержит дополнительный этап, на котором извлекают упомянутый по меньшей мере один синтаксический элемент, из набора параметров, ассоциированного с битовым потоком и выбранного из группы, состоящей из PPS, SPS и VPS. PPS идентифицируется на основании идентификатора PPS, присутствующего в заголовке слайса текущего изображения. SPS, который применяется к текущему изображению, идентифицируется идентификатором SPS, присутствующим в PPS, идентифицированном идентификатором PPS, присутствующим в заголовке слайса текущего изображения. Соответственно, VPS, который применяется к текущему изображению, идентифицируется идентификатором VPS, присутствующим в SPS, который применяется к текущему изображению. В конкретном варианте осуществления, упомянутый по меньшей мере один синтаксический элемент извлекается из SPS.

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

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

Здесь ниже по тексту будут дополнительно рассматриваться различные примерные варианты осуществления.

Примерный вариант осуществления 1

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

Способ декодера может содержать и/или декодер может быть сконфигурирован для выполнения следующих упорядоченных этапов согласно варианту осуществления:

1. Анализируется заголовок слайса заголовка первого слайса изображения P.

2. Осуществляется процесс маркирования изображения.

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

4. Декодируется изображение P.

5. После того как декодируется изображение P, декодер определяет число изображений в DPB, которые маркированы "необходимыми для вывода", и сравнивает это число со значением, которое получается из синтаксических элементов (показано на примере варианта осуществления 9) в битовом потоке.

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

7. Декодируется следующее изображение Q.

Примерный вариант осуществления 2

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

Примерный вариант осуществления 3

Такой же, как примерный вариант осуществления 2, где значение представляется кодовым словом в наборе параметров последовательности, например, наборе параметров изображения (PPS), наборе параметров последовательности (SPS) или наборе параметров видео (VPS).

Примерный вариант осуществления 4

Такой же, как вариант осуществления 1-3, где есть одно зависящее от уровня значение, полученное из расчета на уровень в битовом потоке, и причем значение для использования в сравнении является значением, которое получается для того же самого уровня в качестве изображения P.

Примерный вариант осуществления 5

Такой же, как вариант осуществления 1-3, где есть одно значение, полученное из расчета на уровень в битовом потоке, и причем значение для использования в сравнении является значением, которое получается для наивысшего уровня в битовом потоке.

Примерный вариант осуществления 6

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

Примерный вариант осуществления 7

Такой же, как вариант осуществления 5, где наивысший уровень задается в качестве наивысшего подуровня.

Примерный вариант осуществления 8

Такой же, как вариант осуществления 1-7, где первое изображение в порядке вывода задается в качестве изображения в DPB с наименьшим значением PicOrderCntVal. PicOrderCntVal задает POC и описывается выше по тексту.

Примерный вариант осуществления 9

Такой же, как вариант осуществления 4-8, где уровни являются временными уровнями.

Примерный вариант осуществления 10

Комбинация вариантов осуществления 1, 2, 3, 5, 8 и 9 является одним предпочтительным вариантом осуществления. Определение этого варианта осуществления в текущей спецификации HEVC (JCTVC-K0030_v3) может привести в результате к следующим изменения спецификации HEVC в разделе C.5.3 где жирный текст означает добавленный текст:

C.5.3 Декодирование изображения, маркирование и сохранение и возможный вывод одного изображения

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

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

1. Если текущее декодированное изображение имеет PicOutputFlag равный 1, оно маркируется "необходимым для вывода".

2. Иначе (текущее декодированное изображение имеет PicOutputFlag равный 0), оно маркируется "не являющимся необходимым для вывода".

Если текущее декодированное изображение является опорным изображением, оно маркируется "используемым для ссылки", иначе (текущее декодированное изображение является неопорным изображением), оно маркируется "неиспользуемым для ссылки".

Когда число изображений в DPB, которые маркированы "необходимыми для вывода" больше, чем sps_max_num_reorder_pics[ sps_max_sub_layers_minus1 ] после того, как текущее декодированное изображение было сохранено в DPB, изображение в DPB с наименьшим значением PicOrderCntVal из всех изображений в DPB кадрируется, выводится и маркируется "не являющимся необходимым для вывода".

Примерный вариант осуществления 11

Комбинация вариантов осуществления 1, 2, 3, 7, 8 и 9 является другим предпочтительным вариантом осуществления. Определение этого варианта осуществления в текущей спецификации HEVC (JCTVC-K0030_v3) может привести в результате к следующим изменениям спецификации HEVC в разделе C.5.3, где жирный текст означает добавленный текст:

C.5.3 Декодирование изображения, маркирование и сохранение и возможный вывод одного изображения

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

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

1. Если текущее декодированное изображение имеет PicOutputFlag равный 1, оно маркируется "необходимым для вывода".

2. Иначе (текущее декодированное изображение имеет PicOutputFlag равный 0), оно маркируется "не являющимся необходимым для вывода".

Если текущее декодированное изображение является опорным изображением, оно маркируется "используемым для ссылки", иначе (текущее декодированное изображение является неопорным изображением), оно маркируется "неиспользуемым для ссылки".

Когда число изображений в DPB, которые маркированы "необходимыми для вывода" больше, чем sps_max_num_reorder_pics[ HighestTid ] после того, как текущее декодированное изображение было сохранено в DPB, изображение в DPB с наименьшим значением PicOrderCntVal из всех изображений в DPB кадрируется, выводится и маркируется "не являющимся необходимым для вывода".

Примерный вариант осуществления 12

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

Модификация обеспечивает решение проблемы с no_output_of_prior_pics_flag, описанной выше по тексту. Решение является аналогичным примерным вариантам осуществления 1-11, но с изменением, что вместо добавления дополнительного процесса вывода, существующий процесс вывода HEVC модифицируется, когда no_output_of_prior_pics_flag равен 1, как показано ниже по тексту.

Способ декодера может содержать и/или декодер может быть сконфигурирован для выполнения следующих упорядоченных этапов согласно варианту осуществления:

1. Анализируется заголовок слайса заголовка первого слайса изображения P.

2. Осуществляется процесс маркирования изображения.

3. Осуществляется процесс вывода изображения, в котором могут быть выведены изображения. Процесс вывода изображения модифицируется, так что если no_output_of_prior_pics_flag равен 1, применяется следующее:

a. Декодер определяет число изображений в DPB, которые маркированы "необходимыми для вывода", и сравнивает это число со значением, которое получается из синтаксических элементов в битовом потоке.

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

c. Все оставшиеся изображения в DPB, которые маркированы "необходимыми для вывода", маркируются "не являющимися необходимыми для вывода". Они не выводятся.

4. Декодируется изображение P.

Примерные варианты осуществления 2-12 также применяются к этому примерному варианту осуществления 12.

Примерный вариант осуществления 13

Комбинация примерного варианта осуществления 12 и примерных вариантов осуществления 2, 3, 7, 8 и 9 является предпочтительным вариантом осуществления. Определение этого варианта осуществления в текущей спецификации HEVC (JCTVC-K0030_v3) может привести в результате к следующим изменениям спецификации HEVC в разделе C.3.1, где жирный текст означает добавленный текст:

C.3.1 Удаление изображений из DPB

Удаление изображений из DPB до декодирования текущего изображения (но после анализа заголовка слайса первого слайса текущего изображения) происходит мгновенно во время удаления из CPB первой единицы декодирования единицы n доступа (содержащей текущее изображение) и продолжается следующим образом.

Вызывается процесс декодирования для набора опорных изображений, что точно определено в подпункте 8.3.2.

Если текущее изображение является изображением IDR или BLA, применяется следующее:

1. Когда изображение IDR или BLA не является первым декодированным изображением и значение pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ] для какого-либо возможного значения i, полученного из активного набора параметров последовательности, отличается от значения pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ], полученного из набора параметров последовательности, который был активным для предшествующего изображения, соответственно, no_output_of_prior_pics_flag подразумевается посредством HRD равным 1, независимо от фактического значения no_output_of_prior_pics_flag.

СЛЕДУЕТ ОТМЕТИТЬ, ЧТО - Реализации декодера должны пытаться обрабатывать изменения размера DPB или изображения более изящно, чем HRD в отношении изменений в pic_width_in_luma_samples, pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ].

2. Когда no_output_of_prior_pics_flag равен 1 или подразумевается равным 1, применяются следующие упорядоченные этапы:

1. Когда число изображений в DPB, которые маркированы "необходимыми для вывода" больше, чем sps_max_num_reorder_pics[ HighestTid ], изображение в DPB с наименьшим значением PicOrderCntVal из всех изображений в DPB кадрируется, выводится и маркируется "не являющимся необходимым для вывода".

2. Все буферы хранения изображений в DPB выгружаются без вывода изображений, которые они содержат, и заполненность DPB устанавливается на 0.

Все изображения k в DPB, для которых все из следующих условий истинны, удаляются из DPB:

- изображение k маркируется "неиспользуемым для ссылки",

- изображение k имеет PicOutputFlag равный 0 или время его вывода из DPB меньше, чем или равно времени удаления из CPB первой единицы декодирования (обозначенной единицей m декодирования) текущего изображения n; то есть, to,dpb( k ) <= tr( m )

Когда изображение удаляется из DPB, заполненность DPB уменьшается на единицу.

Преимущество вариантов осуществления, раскрытых в этом документе, над уровнем техники, как представлено разделом C.5.1 на страницах 216-217 в JCTVC-K0030_v3 будет описано ниже по тексту со ссылкой на Фиг. 30. Решение уровня техники в JCTVC-K0030_v3 использует параметр sps_max_num_reorder_pics[ TemporalID ] для определения, выводить ли какое-либо изображение. В частности, JCTVC-K0030_v3 утверждает, что когда число изображений в DPB, которые маркированы в качестве необходимых для вывода, больше, чем sps_max_num_reorder_pics[ TemporalID ], тогда процесс выталкивания, точно определенный в подпункте C.5.2.1 вызывается многократно до тех пор пока не опустеет буфер хранения изображений для сохранения текущего декодированного изображения.

Числа, представленные на Фиг. 30, указывают порядок декодирования изображений в видеопоследовательности. Изображения должны быть выведены слева направо, то есть, I0, b5, B3, b6, B2, b7, B4, B8 и P1. Фигура также указывает номер уровня, то есть, TemporalId, для различных уровней и параметр sps_max_num_reorder_pics для каждого уровня. Если будет осуществляться выталкивание или вывод изображений в связи с анализом заголовков слайса с использованием sps_max_num_reorder_pics[ TemporalID ], как предложено в JCTVC-K0030_v3, тогда процесс вывода будет происходить в соответствии со следующим:

Изображение Еще не выведено sps_max_num_reorder_pics Действие
I0 - 0 Нет действия
B1 I0 0 Вывод I0
B2 B1 1 Нет действия
B3 B1 B2 2 Нет действия
B4 B1 B2 B3 2 Вывод B3

Однако вывод изображения B3 при обработке изображения B4 является неверным, поскольку изображение b5 должно быть выведено раньше, чем изображение B3.

При использовании варианта осуществления, раскрытого в этом документе, с выталкиванием, то есть, выводом, после декодирования текущего изображения и с использованием HighestTid=3, тогда достигается следующий результат:

Изображение Еще не выведено sps_max_num_reorder_pics Действие
I0 I0 4 Нет действия
B1 I0 B2 4 Нет действия
B2 I0 B1 B2 4 Нет действия
B3 I0 B1 B2 B3 4 Нет действия
B4 I0 B1 B2 B3 B4 4 Вывод I0
B5 B1 B2 B3 B4 b5 4 Вывод b5

Если использовать временное масштабирование и декодировать только уровни 0-2, тогда HighestTid будет равен 2 и согласно варианту осуществления достигается следующий результат:

Изображение Еще не выведено sps_max_num_reorder_pics Действие
I0 I0 2 Нет действия
B1 I0 B1 2 Нет действия
B2 I0 B1 B2 2 Вывод I0
B3 B1 B2 B3 2 Вывод B3
B4 B1 B2 B4 2 Вывод B2

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

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

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

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

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

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

Примеры схем обработки включают в себя, но без ограничения упомянутым, один или более микропроцессоров, один или более процессоров цифровых сигналов (DSP), один или более центральных процессоров (CPU), аппаратное обеспечение ускорения обработки видео и/или любую подходящую программируемую логическую схему, такую как одна или более программируемых пользователем вентильных матриц (FPGA) или один или более программируемых логических контроллеров (PLC).

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

Согласно аспекту, обеспечивается декодер, сконфигурированный для выполнения способа согласно любому из вариантов осуществления, раскрытых выше по тексту. Декодер сконфигурирован для определения, после того как текущее изображение битового потока, представляющего изображения видеопоследовательности, было декодировано и сохранено в DPB, некоторого числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Декодер также сконфигурирован для сравнения числа со значением sps_max_num_reorder_pics[ HighestTid ]. Декодер дополнительно сконфигурирован для вывода изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, если число больше, чем значение. Декодер дополнительно сконфигурирован для маркирования (вывода) изображения в качестве не являющегося необходимым для вывода, если число больше, чем значение.

Декодер 100 содержит, в варианте осуществления, процессор 110, сконфигурированный для выполнения этапов способа, ранее раскрытых в этом документе, см. Фиг. 8 и необязательно Фиг. 9, 10 и 12-14. Декодер 100 также может содержать память 120, соединенную с процессором 110, см. Фиг. 16.

Фиг. 16 представляет собой схематическую блок-схему декодера 100 согласно варианту осуществления. Декодер 100 сконфигурирован для приема битового потока 10, представляющего изображения видеопоследовательности, и декодирования битового потока 10. Декодер 100 содержит процессор 110 и память 120, содержащую DPB 125. Процессор 110 сконфигурирован для определения, после того как текущее изображение было декодировано и сохранено в DPB 125, числа изображений в DPB 125, которые маркированы в качестве необходимых для вывода. Процессор 110 также сконфигурирован для сравнения числа со значением sps_max_num_reorder_pics[ HighestTid ] 14. Процессор 110 дополнительно сконфигурирован для вывода изображения, которое является первым изображением в порядке вывода, из изображений в DPB 125, которые маркированы в качестве необходимых для вывода, если число больше, чем значение. Процессор 110 дополнительно сконфигурирован для маркирования изображения в качестве не являющегося необходимым для вывода, если число больше, чем значение.

На Фиг. 16, декодер 100 был проиллюстрирован как содержащий процессор 110. Этот процессор 110 может быть реализован в качестве одного процессора или множества процессоров, как например, в форме схемы обработки.

Фиг. 16 посредством этого иллюстрирует компьютерную реализацию декодера 100. В этом конкретном примере, по меньшей мере некоторые из этапов, функций, процедур, модулей и/или блоков, описанных выше по тексту, реализуются в компьютерной программе, которая загружается в память 120 для исполнения процессором 110. Процессор 110 и память 120 взаимосвязаны друг с другом для обеспечения возможности нормального исполнения программного обеспечения. Необязательное устройство ввода/вывода (не показано) также может быть взаимосвязано с процессором 110 и/или памятью 120 для обеспечения возможности ввода битового потока 10 кодированных изображений и вывода декодированных изображений.

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

В варианте осуществления, процессор 110 предпочтительно сконфигурирован для анализа заголовка 12 слайса текущего изображения, которое должно быть декодировано, видеопоследовательности. Процессор 110 также сконфигурирован для определения RPS для текущего изображения на основании проанализированного заголовка 12 слайса. Процессор 110 дополнительно сконфигурирован для маркирования всех изображений в DPB 125, которые не представлены в RPS, в качестве неиспользуемых для ссылки. Процессор 110 дополнительно сконфигурирован для вывода нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB 125, и маркирования нуля, одного или множества изображений в качестве не являющихся необходимыми для вывода. Процессор 110 также предпочтительно сконфигурирован для выгрузки или удаления, из DPB 125, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB 125. Процессор 110 дополнительно сконфигурирован для декодирования текущего изображения, предпочтительно с использованием данных 16 полезной видеонагрузки, обеспеченных в кодированной форме. В этом варианте осуществления, процессор 110 сконфигурирован для определения числа изображений, сравнения числа, вывода изображения и маркирования изображения после декодирования текущего изображения.

В варианте осуществления, процессор 110 необязательно сконфигурирован для анализа заголовка 12 слайса изображения произвольного доступа видеопоследовательности для получения значения флага no_output_prior_pics_flag. В таком случае, процессор 110 необязательно сконфигурирован для определения числа, сравнения числа, вывода изображения и маркирования изображения, если (и только если) значение флага no_output_prior_pics_flag равно единице.

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

Кодер 100 содержит, в варианте осуществления, процессор 110, сконфигурированный для выполнения этапов способа, ранее раскрытых в этом документе, см. Фиг. 11 и необязательно Фиг. 12, 13 и 15. Кодер 100 также может содержать память 120, соединенную с процессором 110, см. Фиг. 16.

В этом варианте осуществления, декодер 100 поэтому содержит процессор 110 и память 120, содержащую DPB 125. Процессор 110 сконфигурирован для анализа заголовка 12 слайса текущего изображения, которое должно быть декодировано, видеопоследовательности. Процессор 110 также сконфигурирован для определения RPS для текущего изображения на основании проанализированного заголовка 12 слайса. Процессор 110 дополнительно сконфигурирован для маркирования всех изображений в DPB 125, которые не представлены в RPS, в качестве неиспользуемых для ссылки. Процессор 110 дополнительно сконфигурирован для вывода нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB 125, и маркирования нуля, одного или множества изображений в качестве не являющихся необходимыми для вывода. Процессор 110 также предпочтительно сконфигурирован для выгрузки или удаления, из DPB 125, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB 125. Процессор 110 дополнительно сконфигурирован для декодирования текущего изображения. В этом варианте осуществления, процессор 110 сконфигурирован для определения числа изображений в DPB 125, которые маркированы в качестве необходимых для вывода. Процессор 110 также сконфигурирован для сравнения числа со значением, полученным из по меньшей мере одного синтаксического элемента 14, представленного в битовом потоке 10. Процессор 110 дополнительно сконфигурирован для вывода изображения, которое является первым изображением в порядке вывода, из изображений в DPB 125, которые маркированы в качестве необходимых для вывода, если число больше, чем значение. Процессор 110 дополнительно сконфигурирован для маркирования изображения в качестве не являющегося необходимым для вывода, если число больше, чем значение. Это означает, что в этом варианте осуществления, процессор 110 сконфигурирован для определения числа изображений, сравнения числа, вывода изображения и маркирования изображения после декодирования текущего изображения.

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

Процессор 110, в варианте осуществления реализации, предпочтительно сконфигурирован для сравнения числа со значением sps_max_num_reorder_pics[ HighestTid ]. В этом варианте осуществления реализации, процессор 110 сконфигурирован для вывода изображения в DPB 125 с наименьшим значением PicOrderCntVal из всех изображений в DPB 125, которые маркированы в качестве необходимых для вывода, если число больше, чем значение sps_max_num_reorder_pics[ HighestTid ].

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

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

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

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

Фиг. 17 является схематической блок-схемой другого примера реализации декодера 200. Этот пример в частности является подходящим для аппаратной реализации декодера 200. Декодер 200 содержит узел 210 ввода, сконфигурированный для приема битового потока, представляющего изображения видеопоследовательности, и сохранения битового потока в подсоединенной памяти 220, содержащей DPB 225. Декодер также содержит узел 230 определения числа, соединенный с памятью 220. Этот узел 230 определения числа сконфигурирован для определения, после того как текущее изображение было декодировано и сохранено в DPB 225, числа изображений в DPB 225, которые маркированы в качестве необходимых для вывода. Средство 240 сравнения соединено с узлом 230 определения числа и сконфигурировано для сравнения числа со значением sps_max_num_reorder_pics[ HighestTid ]. Декодер 200 также содержит узел 250 вывода, соединенный со средством 240 сравнения и предпочтительно с памятью 220. Узел 250 вывода сконфигурирован для вывода изображения, которое является первым изображением в порядке вывода, из изображений в DPB 225, которые маркированы в качестве необходимых для вывода, если число больше, чем значение. Узел 260 маркирования соединен с памятью 220 и сконфигурирован для маркирования изображения в качестве не являющегося необходимым для вывода, если число больше, чем значение.

Средство 240 сравнения предпочтительно соединено с узлом 230 определения числа для того, чтобы принимать число изображений, определяемое узлом 230 определения числа. Соответственно, узел 250 вывода предпочтительно соединен со средством 240 сравнения для того, чтобы принимать информацию, больше ли определенное число, чем значение sps_max_num_reorder_pics[ HighestTid ], от средства 240 сравнения. Узел 260 маркирования предпочтительно соединен с узлом 250 вывода для того, чтобы принимать информацию о том, какое изображение было выведено узлом 250 вывода.

Фиг. 18 является схематической блок-схемой еще одного примера реализации декодера 300. Этот пример в частности является подходящим для аппаратной реализации декодера 300. Декодер 300 содержит узел 310 ввода, сконфигурированный для приема битового потока, представляющего изображения видеопоследовательности, и сохранения битового потока в подсоединенной памяти 320, содержащей DPB 325. Узел 370 анализа, соединенный с памятью 320, сконфигурирован для анализа заголовка слайса текущего изображения, которое должно быть декодировано, видеопоследовательности. Декодер 300 содержит узел 380 определения набора опорных изображений, соединенный с узлом 370 анализа и предпочтительно с памятью 320. Узел 380 определения набора опорных изображений сконфигурирован для определения RPS для текущего изображения на основании проанализированного заголовка слайса. Узел 360 маркирования соединен с памятью 320 и сконфигурирован для маркирования всех изображений в DPB 325, которые не представлены в RPS, в качестве неиспользуемых для ссылки. Декодер 300 также содержит узел 350 вывода, соединенный с памятью 320 и предпочтительно со средством 340 сравнения. Узел 350 вывода сконфигурирован для вывода нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB 325, при этом узел 360 маркирования сконфигурирован для маркирования упомянутых нуля, одного или множества изображений в качестве не являющихся необходимыми для вывода. Узел 390 выгрузки изображения соединен с памятью 320 и сконфигурирован для выгрузки или удаления, из DPB 325, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB 325. Узел 305 декодирования соединен с памятью 320 и сконфигурирован для декодирования текущего изображения.

Декодер 300 с Фиг. 18 также содержит узел 330 определения числа, соединенный с памятью 320 и также предпочтительно с узлом 370 анализа и средством 340 сравнения. Узел 330 определения числа сконфигурирован для определения числа изображений в DPB 325, которые маркированы в качестве необходимых для вывода. Ранее упомянутое средство 340 сравнения сконфигурировано для сравнения числа со значением, полученным из по меньшей мере одного синтаксического элемента, представленного в битовом потоке. В этом варианте осуществления узел 350 вывода также сконфигурирован для вывода изображения, которое является первым изображением в порядке вывода, из изображений в DPB 325, которые маркированы в качестве необходимых для вывода, если число больше, чем значение. Узел 360 маркирования также сконфигурирован для маркирования изображения в качестве не являющегося необходимым для вывода, если число больше, чем значение.

В предпочтительном варианте осуществления, узел 330 определения числа сконфигурирован для определения числа изображений, средство 340 сравнения сконфигурировано для сравнения числа, узел 350 вывода сконфигурирован для вывода изображения и узел 360 маркирования сконфигурирован для маркирования изображения после того как узел 305 декодирования декодировал текущее изображение.

Узел 380 определения набора опорных изображений предпочтительно соединен с узлом 370 анализа для того, чтобы принимать информацию, присутствующую в проанализированном заголовке слайса и используемую для того, чтобы определять RPS. Узел 380 определения набора опорных изображений также предпочтительно соединен с узлом 360 маркирования для того, чтобы обеспечивать RPS или информацию изображений, перечисленных в RPS, в узел 360 маркирования. Средство 340 сравнения предпочтительно соединено с узлом 330 определения числа для того, чтобы принимать число изображений, определяемое узлом 330 определения числа. Соответственно, узел 350 вывода предпочтительно соединен со средством 340 сравнения для того, чтобы принимать информацию, больше ли определенное число, чем значение, от средства 340 сравнения. Узел 360 маркирования предпочтительно соединен с узлом 350 вывода для того, чтобы принимать информацию о том, какое изображение было выведено узлом 350 вывода.

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

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

Компьютерная программа, находящаяся в памяти 120, таким образом, может быть организована как надлежащие функциональные модули, сконфигурированные для выполнения, при исполнении процессором 110, по меньшей мере части этапов и/или задач, описанных выше по тексту. Пример таких функциональных модулей, проиллюстрирован на Фиг. 19. Фиг. 19 посредством этого представляет собой схематическую блок-схему, иллюстрирующую пример декодера 400, содержащего группу функциональных модулей 410-440. Эти модули содержат модуль 410 определения числа для определения, после того как текущее изображение битового потока, представляющего изображения видеопоследовательности, было декодировано и сохранено в DPB, некоторого числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Декодер 400 также содержит модуль 420 сравнения для сравнения числа, предпочтительно по мере приема от модуля 410 определения числа, со значением sps_max_num_reorder_pics[ HighestTid ]. Модуль 430 вывода декодера 400 предназначен для вывода изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, если число больше, чем значение, что необязательно, но предпочтительно, определяется модулем 420 сравнения. Декодер 400 дополнительно содержит модуль 440 маркирования для маркирования изображения в качестве не являющегося необходимым для вывода, если число больше, чем значение, что необязательно, но предпочтительно, определяется модулем 420 сравнения.

Фиг. 20 представляет собой схематическую блок-схему, иллюстрирующую другой пример декодера 500 с группой функциональных модулей 510-580. Декодер 500 содержит модуль 510 анализа для анализа заголовка слайса текущего изображения, которое должно быть декодировано, битового потока, представляющего изображения видеопоследовательности. Модуль 520 определения набора опорных изображений декодера 500 предназначен для определения RPS для текущего изображения на основании заголовка слайса, предпочтительно проанализированного модулем 510 анализа. Декодер 500 также содержит модуль 530 маркирования для маркирования всех изображений в DPB, которые не представлены в RPS, необязательно, но предпочтительно, определенном модулем 520 определения набора опорных изображений, в качестве неиспользуемых для ссылки и модуль 540 вывода для вывода нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB. В варианте осуществления, модуль 530 маркирования дополнительно предназначен для маркирования упомянутых нуля, одного или множества изображений в качестве не являющихся необходимыми для вывода. Декодер 500 дополнительно содержит модуль 550 выгрузки для выгрузки или удаления, из DPB, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB, и модуль 560 декодирования для декодирования текущего изображения. Декодер 500 дополнительно содержит модуль 560 определения числа для определения числа изображений в DPB, которые маркированы в качестве необходимых для вывода, и модуль 570 сравнения для сравнения числа, необязательно, но предпочтительно определенного модулем 560 определения числа, со значением, полученным из по меньшей мере одного синтаксического элемента, представленного в битовом потоке.

В варианте осуществления, модуль 540 вывода дополнительно предназначен для вывода изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, если число больше, чем значение, что необязательно, но предпочтительно определяется модулем 570 сравнения. Модуль 530 маркирования предназначен дополнительно для маркирования изображения в качестве не являющегося необходимым для вывода, если число больше, чем значение, что необязательно, но предпочтительно определяется модулем 570 сравнения.

В варианте осуществления, модуль 570 определения числа, определяющий число изображений, модуль 580 сравнения, сравнивающий число, модуль 540 вывода, выводящий изображение, и модуль 530 маркирования, маркирующий упомянутое изображение, после модуля 560 декодирования, декодирующего текущее изображение.

Варианты осуществления декодера 400, 500, как показано на Фиг. 19 и 20, могут необязательно также быть пригодными для выполнения этих различных вариантов осуществления реализации, как раскрыто выше по тексту этого документа, например, со ссылкой на Фиг. 9, 10, 12-15.

В варианте осуществления, компьютерная программа содержит программный код, который при исполнении процессором 110, см. Фиг. 16, или компьютером, побуждает процессор 110 или компьютер выполнять этапы, функции, процедуры и/или блоки, описанные выше по тексту и показанные на Фиг. 8-15.

Программное обеспечение или компьютерная программа могут быть реализованы как компьютерный программный продукт, который обычно переносится или сохраняется на считываемом компьютером носителе. Считываемый компьютером носитель может включать в себя одно или более съемных или несъемных запоминающих устройств, включающих в себя, но без ограничения упомянутым, ROM, RAM, компакт-диск (CD), универсальный цифровой диск (DVD), память с подключением через универсальную последовательную шину (USB), устройство хранения типа жесткого диска (HDD), флеш-память или любое другое традиционное запоминающее устройство. Компьютерная программа таким образом может быть загружена в операционную память компьютера или эквивалентного устройства обработки для исполнения его схемой обработки.

Декодер 100, 200, 300, 400, 500, показанный на Фиг. 16-20, предпочтительно является декодером совместимым с HEVC. Однако необходимо отметить, что варианты осуществления не ограничиваются HEVC.

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

Фиг. 21 представляет собой блок-схему последовательности операций способа, выполняемого кодером, согласно варианту осуществления. Способ содержит определение, на этапе S60 и после того как текущее изображение было декодировано и сохранено в DPB, числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Следующий этап S61 содержит сравнение числа со значением sps_max_num_reorder_pics[ HighestTid ], при этом HighestTid точно определяет наивысший уровень, который декодируется кодером видеопоследовательности. Если число больше, чем значение, способ продолжается на этапе S62, который содержит маркирование изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода.

Способ, выполняемый в кодере на Фиг. 21, по существу является аналогичным соответствующему способу, выполняемому в соответствующем декодере, см. Фиг. 8. Хотя различие заключается в том, что кодер, в общем не выводит какие-либо изображения, что выполняется в декодере. Следовательно, варианту осуществления способа, показанного на Фиг. 21, предпочтительно недостает этапа S3 вывода соответствующего способа, выполняемого декодером, с Фиг. 8.

В варианте осуществления, когда текущее изображение было декодировано, предпочтительно произошло два маркирования, одно для вывода и одно для ссылки. Следовательно, в варианте осуществления эти маркирования предпочтительно осуществляются раньше, чем этап S60, поскольку это влияет на число изображений, которые маркированы в качестве необходимых для вывода. Если текущее изображение имеет PicOutputFlag=1, текущее изображение также предпочтительно подсчитывается.

В варианте осуществления, если число не больше, чем значение, что определено в сравнении на этапе S61, способ предпочтительно завершается и никакое изображение не маркируется. Таким образом, в этом случае, этап S62 пропускается и не выполняется, см. пунктирную линию справа.

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

Фиг. 22 представляет собой блок-схему последовательности операций способа, выполняемого кодером, согласно другому варианту осуществления. Способ содержит маркирование, на этапе S70, всех изображений в DPB, которые не представлены в RPS для текущего изображения набора видеопоследовательности, в качестве неиспользуемых для ссылки. Способ также содержит маркирование, на этапе S71, нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB, в качестве не являющихся необходимыми для вывода. Любое изображение, маркированное в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB, выгружается или удаляется на этапе S72 из DPB. Следующий этап S73 содержит декодирование текущего изображения. Способ дополнительно содержит определение, на этапе S74, числа изображений в DPB, которые маркированы в качестве необходимых для вывода, и сравнение, на этапе S75, числа со значением, полученным из по меньшей мере одного заданного синтаксического элемента. Если это число больше, чем значение, способ продолжается на этапе S76, который содержит маркирование изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода. В предпочтительном варианте осуществления, определение числа изображений на этапе S74, сравнение числа на этапе S75 и маркирование изображения на этапе S76 выполняются после декодирования текущего изображения на этапе S73.

Способ, выполняемый в кодере, с Фиг. 22, по существу является аналогичным соответствующему способу, выполняемому в соответствующем декодере, см. Фиг. 11. Хотя различие заключается в том, что кодер, в общем, не выводит какие-либо изображения, что выполняется в декодере. Следовательно, варианту осуществления способа, показанного на Фиг. 22, предпочтительно недостает этапов S33 и S38 вывода соответствующего способа, выполняемого декодером, с Фиг. 11. Кроме того, в способе с Фиг. 22 кодер не принимает какой-либо битовый поток и вследствие этого нет необходимости в анализе заголовка слайса для того, чтобы получать информацию для определения RPS для текущего изображения. Для явного сравнения, кодер сам генерирует и определяет RPS для текущего изображения. Следовательно, этапы S30 и S31 соответствующего способа, выполняемого декодером на Фиг. 11, типично не выполняются кодером.

В варианте осуществления, если число не больше, чем значение, определенное в сравнении на этапе S75, способ предпочтительно завершается и никакое изображение не маркируется. Таким образом, в таком случае, этап S76 пропускается и не выполняется, см. пунктирную линию справа.

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

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

Например, способ кодера может содержать и/или кодер может быть сконфигурирован для выполнения следующих упорядоченных этапов согласно варианту осуществления:

1. Кодируется изображение P.

2. После того как изображение P кодировано, кодер определяет число изображений в DPB, которые маркированы "необходимыми для вывода", и сравнивает это число со значением, которое может быть получено из синтаксических элементов в битовом потоке. Следует отметить, что это относится к DPB в кодере. Статус DPB в кодере и декодере является одним и тем же. Сравнение в декодере будет точно таким же. Спецификация HEVC точно определяет, что будет делать декодер, но кодер должен следить за этим, то есть, кодер делает то, что будет делать декодер.

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

4. Кодируется следующее изображение Q.

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

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

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

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

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

Примеры схем обработки включают в себя, но без ограничения упомянутым, один или более микропроцессоров, один или более DSP, один или более CPU, аппаратное обеспечение ускорения обработки видео и/или какая-либо подходящая программируемая логическая схема, такая как одна или более FPGA или одна или более PLC.

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

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

Кодер 600 содержит, в варианте осуществления, процессор 610, сконфигурированный для выполнения этапов способа, ранее раскрытых в этом документе, см. Фиг. 21. Декодер 600 также может содержать память 620, соединенную с процессором 610, см. Фиг. 23.

Фиг. 23 представляет собой схематическую блок-схему кодера 600 согласно варианту осуществления. Кодер 600 сконфигурирован для кодирования изображений видеопоследовательности в битовый поток 10. Кодер 600 содержит процессор 610 и память 620. Память 620 содержит DPB 625. В варианте осуществления, процессор 610 сконфигурирован для определения, после того как текущее изображение было декодировано и сохранено в DPB 625, числа изображений в DPB 625, которые маркированы в качестве необходимых для вывода. Процессор 610 также сконфигурирован для сравнения числа со значением sps_max_num_reorder_pics[ HighestTid ]. Процессор 610 дополнительно сконфигурирован для маркирования изображения, которое является первым изображением в порядке вывода, из изображений в DPB 625, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если число больше, чем значение.

На Фиг. 23, кодер 600 был проиллюстрирован как содержащий процессор 610. Этот процессор 610 может быть реализован в качестве одного процессора или нескольких процессоров, как например, в форме схемы обработки.

Фиг. 23 посредством этого иллюстрирует компьютерную реализацию кодера 600. В этом конкретном примере, по меньшей мере некоторые из этапов, функций, процедур, модулей и/или блоков, описанных выше по тексту, реализуются в компьютерной программе, которая загружается в память 620 для исполнения процессором 610. Процессор 610 и память 620 взаимосвязаны друг с другом для обеспечения возможности нормального исполнения программного обеспечения. Необязательное устройство ввода/вывода (не показано) также может быть взаимосвязано с процессором 610 и/или памятью 620 для обеспечения возможности ввода изображений, которые должны быть кодированы, и вывода битового потока 10.

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

Кодер 600 содержит, в варианте осуществления, процессор 610, сконфигурированный для выполнения этапов способа, ранее раскрытых в этом документе, см. Фиг. 22. Декодер 600 также может содержать память 620, соединенную с процессором 610, смотреть Фиг. 23.

Фиг. 23 представляет собой схематическую блок-схему кодера 600 согласно варианту осуществления. Кодер 600 сконфигурирован для кодирования изображений видеопоследовательности в битовый поток 10. Кодер 600 содержит процессор 610 и память 620. Память 620 содержит DPB 625. В варианте осуществления, процессор 610, сконфигурированный для маркирования всех изображений в DPB 625, которые не представлены в RPS для текущего изображения видеопоследовательности, в качестве неиспользуемых для ссылки. Процессор 610 также сконфигурирован для маркирования нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB 625 в качестве не являющихся необходимыми для вывода. Процессор 610 дополнительно сконфигурирован для выгрузки или удаления, из DPB 625, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB 625. В этом варианте осуществления, процессор 610 также сконфигурирован для декодирования текущего изображения и определения числа изображений в DPB 625, которые маркированы в качестве необходимых для вывода. Процессор 610 дополнительно сконфигурирован для сравнения числа со значением, полученным из по меньшей мере одного заданного синтаксического элемента. Процессор 610 дополнительно сконфигурирован для маркирования изображения, которое является первым изображением в порядке вывода, из изображений в DPB 625, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если число больше, чем значение. В этом варианте осуществления, процессор 610 сконфигурирован для определения числа изображений, сравнения числа и маркирования изображения после декодирования текущего изображения.

Фиг. 24 представляет собой схематическую блок-схему другого примера реализации кодера 700. Этот пример в частности является подходящим для аппаратной реализации кодера 700. Кодер 700 содержит узел 730 определения числа, соединенный с памятью 720, содержащей DPB 725. Узел 730 определения числа сконфигурирован для определения, после того как текущее изображение видеопоследовательности было декодировано и сохранено в DPB 725, некоторого числа изображений в DPB 725, которые маркированы в качестве необходимых для вывода. Кодер 700 также содержит средство 740 сравнения, соединенное с узлом 730 определения числа и предпочтительно с памятью 720. Средство 740 сравнения сконфигурировано для сравнения числа со значением sps_max_num_reorder_pics[ HighestTid ]. Узел 760 маркирования кодера соединен с памятью 720 и сконфигурирован для маркирования изображения, которое является первым изображением в порядке вывода, из изображений в DPB 725, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если число больше, чем значение.

Средство 740 сравнения предпочтительно соединено с узлом 730 определения числа для того, чтобы принимать число изображений, определяемое узлом 730 определения числа.

Фиг. 25 представляет собой схематическую блок-схему еще одного примера реализации кодера 800 в частности подходящего для аппаратной реализации. Кодер 800 содержит узел 860 маркирования, соединенный с памятью 820, содержащей DPB 825. Узел 860 маркирования сконфигурирован для i) маркирования всех изображений в DPB 825, которые не представлены в RPS для текущего изображения видеопоследовательности, в качестве неиспользуемых для ссылки и ii) маркирования нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB 825, в качестве не являющихся необходимыми для вывода. Узел 890 выгрузки изображения соединен с памятью 820 и сконфигурирован для выгрузки или удаления, из DPB 825, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB 825. Кодер 800 также содержит узел 805 декодирования, соединенный с памятью 820 и сконфигурированный для декодирования текущего изображения. Узел 830 определения числа кодера 800 соединен с памятью 830 и сконфигурирован для определения числа изображений в DPB 825, которые маркированы в качестве необходимых для вывода. Кодер 800 дополнительно содержит средство 840 сравнения, соединенное с узлом 830 определения числа и предпочтительно с памятью 820. Средство 840 сравнения сконфигурировано для сравнения числа со значением, полученным из по меньшей мере одного заданного синтаксического элемента. В этом варианте осуществления, узел 860 маркирования также сконфигурирован для маркирования изображения, которое является первым изображением в порядке вывода, из изображений в DPB 825, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если число больше, чем значение. В предпочтительном варианте осуществления, узел 830 определения числа сконфигурирован для определения числа изображений, средство 840 сравнения сконфигурировано для сравнения числа и узел 840 маркирования сконфигурирован для маркирования изображения после того как узел 805 декодирования декодировал текущее изображение.

Средство 840 сравнения предпочтительно соединено с узлом 830 определения числа для того, чтобы принимать число изображений, определяемое узлом 830 определения числа.

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

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

Компьютерная программа, находящаяся в памяти 620 может быть таким образом организована как надлежащие функциональные модули, сконфигурированные для выполнения, при исполнении процессором 610, по меньшей мере части этапов и/или задач, описанных выше по тексту. Пример таких функциональных модулей иллюстрируется на Фиг. 26. Фиг. 26 в этой связи представляет собой схематическую блок-схему, иллюстрирующую пример кодера 900, содержащего группу функциональных модулей 910-930. Эти модули содержат модуль 910 определения числа для определения, после того как текущее изображение битового потока, представляющего изображения видеопоследовательности, было декодировано и сохранено в DPB, некоторого числа изображений в DPB, которые маркированы в качестве необходимых для вывода. Кодер 900 также содержит модуль 920 сравнения для сравнения числа, необязательно, но предпочтительно определенного модулем 910 определения числа, со значением sps_max_num_reorder_pics[ HighestTid ]. Кодер 900 дополнительно содержит модуль 930 маркирования для маркирования изображения, которое является первым изображением в порядке вывода, из изображений в DPB, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если число больше, чем значение, что необязательно, но предпочтительно определяется модулем 920 сравнения.

Фиг. 27 представляет собой схематическую блок-схему, иллюстрирующую другой пример кодера 1000 с группой функциональных модулей 1000-1050. Кодер 1000 содержит модуль 1010 маркирования для маркирования всех изображений в DPB, которые не представлены в RPS для текущего изображения видеопоследовательности, в качестве неиспользуемых для ссылки и маркирования нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из изображений в DPB, в качестве не являющихся необходимыми для вывода. Кодер 1000 дополнительно содержит модуль 1020 выгрузки для выгрузки или удаления, из DPB, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из изображений в DPB, и модуль 1030 декодирования для декодирования текущего изображения. Кодер 1000 дополнительно содержит модуль 1040 определения числа для определения числа изображений в DPB, которые маркированы в качестве необходимых для вывода, и модуль 1050 сравнения для сравнения числа, необязательно, но предпочтительно определенного модулем 1040 определения числа, со значением, полученным из по меньшей мере одного синтаксического элемента, представленного в битовом потоке.

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

В варианте осуществления, модуль 1040 определения числа, определяющий число изображений, модуль 1050 сравнения, сравнивающий число, и модуль 1010 маркирования, маркирующий упомянутое изображение, после модуля 1030 декодирования, декодирующего текущее изображение.

В варианте осуществления, компьютерная программа содержит программный код, который при исполнении процессором 610, см. Фиг. 23 или компьютером, побуждает процессор 610 или компьютер выполнять этапы, функции, процедуры и/или блоки, описанные выше по тексту и показанные на Фиг. 21 или 22.

Программное обеспечение или компьютерная программа могут быть реализованы как компьютерный программный продукт, который обычно переносится или сохраняется на считываемом компьютером носителе. Считываемый компьютером носитель может включать в себя одно или более съемных или несъемных запоминающих устройств, включающих в себя, но без ограничения упомянутым, ROM, RAM, CD, DVD, память USB, устройство хранения HDD, флэш-память или любое другое традиционное запоминающее устройство. Компьютерная программа может быть таким образом загружена в операционную память компьютера или эквивалентного устройства обработки для исполнения его схемой обработки.

Кодер 600, 700, 800, 900, 1000, как показано на Фиг. 23-27, предпочтительно является кодером совместимым с HEVC. Однако необходимо отметить, что варианты осуществления не ограничиваются HEVC.

Декодер 100, 200, 300, 400, 500 на любой из Фиг. 16-20 и кодер 600, 700, 800, 900, 1000 на любой из Фиг. 23-27 могут быть реализованы, например, в мобильном терминале. Например, декодер 100, 200, 300, 400, 500 может, например, быть расположен в приемнике в видеокамере или любом другом устройстве для отображения видеопотока. Кодер 600, 700, 800, 900, 1000 может, например, быть расположен в передатчике в видеокамере в, например, мобильном устройстве.

Фиг. 28 представляет собой схематическую блок-схему мобильного терминала 1100 согласно варианту осуществления. Мобильный терминал 1100 содержит декодер 100, 200, 300, 400, 500 согласно вариантам осуществления и/или кодер 600, 700, 800, 900, 1000 согласно вариантам осуществления, например декодер, показанный на любой из Фигур 16-20 и/или кодер, показанный на любой из Фигур 23-27.

Мобильный терминал 1100 также предпочтительно содержит узел 1110 ввода и вывода (I/O) для обеспечения возможности связи, обычно беспроводной связи, но в качестве альтернативы или в дополнение, проводной связи с внешними узлами. Узел 1110 I/O может быть реализован в качестве передатчика и приемника или приемопередатчика для беспроводной связи. В качестве альтернативы, узел 1110 I/O может быть традиционным узлом I/O или портом 1110 способным выполнять проводную связь. Если мобильный терминал 1100 реализуется с кодером 600, 700, 800, 900, 1000, узел 1110 I/O предпочтительно сконфигурирован для передачи или вывода битового потока, представляющего кодированную видеопоследовательность, которая генерируется кодером 600, 700, 800, 900, 1000. Соответственно, если мобильный терминал 1100 содержит декодер 100, 200, 300, 400, 500, узел 1110 I/O предпочтительно сконфигурирован для приема или ввода битового потока, представляющего кодированную видеопоследовательность.

Мобильный терминал 1100 содержит память 1120, сконфигурированную для сохранения кодированных изображений кодированной видеопоследовательности. Эти кодированные изображения могут быть сгенерированы самим мобильным терминалом 1100. В таком случае, мобильный терминал 1100 предпочтительно содержит модуль мультимедиа или устройство записи (не показано) вместе с соединенным кодером 600, 700, 800, 900, 1000. В качестве альтернативы, кодированная видеопоследовательность генерируется некоторыми другими устройствами и передается мобильному терминалу 1100.

Кодированные изображения доставляются из памяти 1120 декодеру 100, 200, 300, 400, 500. Декодер 100, 200, 300, 400, 500 затем декодирует кодированные изображения в декодированные изображения. Декодированные изображения обеспечиваются мультимедийному проигрывателю 1130, который сконфигурирован для визуализации декодированных изображений видеопоследовательности в видеоданные, которые могут быть отображены на устройстве отображения или экране 1140 мобильного терминала 1100 или соединенном с ним.

На Фиг. 28, мобильный терминал 1100 был проиллюстрирован как содержащий и декодер 100, 200, 300, 400, 500 и мультимедийный проигрыватель 1130, с декодером 100, 200, 300, 400, 500, реализованным в качестве части мультимедийного проигрывателя 1130. Однако это должно быть рассмотрено лишь в качестве иллюстративного, но неограничивающего примера варианта осуществления реализации для мобильного терминала 1100. Также распределенные реализации возможны, где декодер 100, 200, 300, 400, 500 и мультимедийный проигрыватель 1130 обеспечиваются в двух физически отделенных устройствах, возможны и в пределах объема мобильного терминала 1100, как использовано в этом документе. Устройство отображения 1140 также может быть обеспечено как отдельное устройство, соединенное с мобильным терминалом 1100, где происходит обработка фактических данных.

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

Кодер 600, 700, 800, 900, 1000 вариантов осуществления, такой как показан на любой из Фиг. 23-27, и/или декодер 100, 200, 300, 400, 500 вариантов осуществления, такой как показан на любой из Фиг. 16-20, может быть реализован в сетевом узле 2, показанном на Фиг. 29.

Как проиллюстрировано на Фиг. 29, кодер 600, 700, 800, 900, 1000 и/или декодер 100, 200, 300, 400, 500 могут быть реализованы в сетевом узле 2 в сети 1 связи между узлом 3 отправки и узлом 4 приема. Такой сетевой узел 2 может быть устройством для преобразования видео между, например, различными разрешениями видео, частотами кадров, качествами, скоростями прохождения битов (битрейтами) и стандартами кодирования. Сетевой узел 2 может быть в форме базовой радиостанции, узла-B или любого другого сетевого узла в сети 1 связи, такой как радиосеть.

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

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

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

1. Способ декодирования, выполняемый декодером (100, 200, 400), упомянутый способ содержит:

определение (S1), после того как текущее изображение из битового потока было декодировано и сохранено в буфере (125, 225) декодированных изображений, некоторого числа изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, упомянутое текущее изображение принадлежит уровню, отличному от наивысшего уровня, который декодируется упомянутым декодером (100, 200, 400), многоуровневой видеопоследовательности, содержащей многочисленные уровни изображений;

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

вывод (S3) изображения, которое является первым изображением в порядке вывода упомянутых изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, если упомянутое число изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid]; и

маркирование (S4) упомянутого изображения в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid].

2. Способ по п. 1, дополнительно содержащий:

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

определение (S11) набора опорных изображений для упомянутого текущего изображения на основании упомянутого проанализированного заголовка слайса;

маркирование (S12) всех изображений в упомянутом буфере (125, 225) декодированных изображений, которые не представлены в упомянутом наборе опорных изображений, в качестве неиспользуемых для ссылки;

вывод (S13) нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из упомянутых изображений в упомянутом буфере (125, 225) декодированных изображений и маркирование упомянутых нуля, одного или множества изображений в качестве не являющихся необходимыми для вывода;

выгрузку (S14), из упомянутого буфера (125, 225) декодированных изображений, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода из упомянутых изображений в упомянутом буфере (125, 225) декодированных изображений; и

декодирование (S15) упомянутого текущего изображения, при этом определение (S1) упомянутого числа изображений, вывод (S3) упомянутого изображения и маркирование (S4) упомянутого изображения выполняются после декодирования (S15) упомянутого текущего изображения.

3. Способ по любому из пп. 1 и 2, при этом

вывод (S3, S38) упомянутого изображения содержит вывод (S3, S38) изображения в упомянутом буфере (125, 225, 325) декодированных изображений с наименьшим значением PicOrderCntVal из всех изображений в упомянутом буфере (125, 225, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, если упомянутое число изображений в упомянутом буфере (125, 225, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid], при этом PicOrderCntVal представляет значение счета порядка изображения.

4. Способ декодирования, выполняемый декодером (100, 300, 500), упомянутый способ содержит:

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

определение (S31) набора опорных изображений для упомянутого текущего изображения на основании упомянутого проанализированного заголовка слайса;

маркирование (S32) всех изображений в буфере (125, 325) декодированных изображений, которые не представлены в упомянутом наборе опорных изображений, в качестве неиспользуемых для ссылки;

вывод (S33) нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из упомянутых изображений в упомянутом буфере (125, 325) декодированных изображений и маркирование упомянутых нуля, одного или множества изображений в качестве не являющихся необходимыми для вывода;

выгрузку (S34) какого-либо изображения, из упомянутого буфера (125, 325) декодированных изображений, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода из упомянутых изображений в упомянутом буфере (125, 325) декодированных изображений;

декодирование (S35) упомянутого текущего изображения;

определение (S36) некоторого числа изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода;

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

вывод (S38) изображения, которое является первым изображением в порядке вывода, из упомянутых изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, если упомянутое число изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid]; и

маркирование (S39) упомянутого изображения в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid], при этом определение (S36) упомянутого числа изображений, вывод (S38) упомянутого изображения и маркирование (S39) упомянутого изображения выполняются после декодирования (S35) упомянутого текущего изображения.

5. Способ по п. 4, дополнительно содержащий:

сохранение (S40) упомянутого декодированного текущего изображения в упомянутом буфере (125, 325) декодированных изображений; и

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

6. Способ по любому из пп. 4 и 5, при этом

вывод (S3, S38) упомянутого изображения содержит вывод (S3, S38) изображения в упомянутом буфере (125, 225, 325) декодированных изображений с наименьшим значением PicOrderCntVal из всех изображений в упомянутом буфере (125, 225, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, если упомянутое число изображений в упомянутом буфере (125, 225, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid], при этом PicOrderCntVal представляет значение счета порядка изображения.

7. Декодер (100, 200), сконфигурированный для:

определения, после того как текущее изображение битового потока (10), представляющего изображения многоуровневой видеопоследовательности, содержащей многочисленные уровни изображений, было декодировано и сохранено в буфере (125, 225) декодированных изображений, некоторого числа изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, упомянутое текущее изображение принадлежит уровню, отличному от наивысшего уровня, который декодируется упомянутым декодером (100, 200), многоуровневой видеопоследовательности;

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

вывода изображения, которое является первым изображением в порядке вывода, из упомянутых изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, если упомянутое число изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid]; и

маркирования упомянутого изображения в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (125, 225) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid].

8. Декодер по п. 7, при этом упомянутый декодер (100, 200, 300, 400, 500) является декодером (100, 200, 300, 400, 500), совместимым с высокоэффективным видеокодированием, HEVC.

9. Декодер (100, 300), сконфигурированный для:

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

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

маркирования всех изображений в буфере (125, 325) декодированных изображений, которые не представлены в упомянутом наборе опорных изображений, в качестве неиспользуемых для ссылки;

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

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

декодирования упомянутого текущего изображения;

определения некоторого числа изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода;

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

вывода изображения, которое является первым изображением в порядке вывода, из упомянутых изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, если упомянутое число изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid]; и

маркирования упомянутого изображения в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (125, 325) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid], при этом упомянутый декодер (100, 300) сконфигурирован для определения упомянутого числа изображений, вывода упомянутого изображения и маркирования упомянутого изображения после декодирования упомянутого текущего изображения.

10. Декодер по п. 9, при этом упомянутый декодер (100, 200, 300, 400, 500) является декодером (100, 200, 300, 400, 500), совместимым с высокоэффективным видеокодированием, HEVC.

11. Способ кодирования, выполняемый кодером (600, 700, 900), упомянутый способ содержит:

определение (S60), после того как текущее изображение было декодировано и сохранено в буфере (625, 725) декодированных изображений, некоторого числа изображений в упомянутом буфере (625, 725) декодированных изображений, которые маркированы в качестве необходимых для вывода, упомянутое текущее изображение принадлежит уровню, отличному от наивысшего уровня, который декодируется упомянутым кодером (600, 700, 900), многоуровневой видеопоследовательности, содержащей многочисленные уровни изображений;

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

маркирование (S62) изображения, которое является первым изображением в порядке вывода, из упомянутых изображений в упомянутом буфере (625, 725) декодированных изображений, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (625, 725) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid].

12. Способ кодирования, выполняемый кодером (600, 800), упомянутый способ содержит:

маркирование (S70) всех изображений в буфере (625, 825) декодированных изображений, которые не представлены в наборе опорных изображений для текущего изображения многоуровневой видеопоследовательности, содержащей многочисленные уровни изображений, в качестве неиспользуемых для ссылки, упомянутое текущее изображение принадлежит уровню, отличному от наивысшего уровня, который декодируется упомянутым кодером (600, 800), упомянутой многоуровневой видеопоследовательности;

маркирование (S71) нуля, одного или множества изображений, маркированных в качестве необходимых для вывода, из упомянутых изображений в упомянутом буфере (625, 825) декодированных изображений, в качестве не являющихся необходимыми для вывода;

выгрузку (S72), из упомянутого буфера (625, 825) декодированных изображений, какого-либо изображения, маркированного в качестве неиспользуемого для ссылки и не являющегося необходимым для вывода, из упомянутых изображений в упомянутом буфере (625, 825) декодированных изображений;

декодирование (S73) упомянутого текущего изображения;

определение (S74) некоторого числа изображений в упомянутом буфере (625, 825) декодированных изображений, которые маркированы в качестве необходимых для вывода;

выбор (S50) значения sps_max_num_reorder_pics[HighestTid] для синтаксического элемента в наборе параметров последовательности, при этом HighestTid точно определяет упомянутый наивысший уровень, каждый уровень i из упомянутых многочисленных уровней имеет ассоциированное значение sps_max_num_reorder_pics[i], и упомянутое значение sps_max_num_reorder_pics[i] указывает максимально допустимое число изображений, которые могут предшествовать какому-либо изображению в упомянутой многоуровневой видеопоследовательности в порядке декодирования и следовать за этим изображением в порядке вывода, когда HighestTid равен i;

маркирование (S76) изображения, которое является первым изображением в порядке вывода, из упомянутых изображений в упомянутом буфере (625, 825) декодированных изображений, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (625, 825) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid], при этом определение (S74) упомянутого числа изображений и маркирование (S76) упомянутого изображения выполняются после декодирования (S73) упомянутого текущего изображения.

13. Кодер (600, 700), сконфигурированный для:

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

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

маркирования изображения, которое является первым изображением в порядке вывода, из упомянутых изображений в упомянутом буфере (625, 725) декодированных изображений, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (625, 725) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid].

14. Кодер по п. 13, при этом упомянутый кодер (600, 700, 800, 900, 1000) является кодером (600, 700, 800, 900, 1000), совместимым с высокоэффективным видеокодированием, HEVC.

15. Кодер (600, 800), сконфигурированный для:

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

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

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

декодирования упомянутого текущего изображения;

определения некоторого числа изображений в упомянутом буфере (625, 825) декодированных изображений, которые маркированы в качестве необходимых для вывода;

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

маркирования изображения, которое является первым изображением в порядке вывода, из упомянутых изображений в упомянутом буфере (625, 825) декодированных изображений, которые маркированы в качестве необходимых для вывода, в качестве не являющегося необходимым для вывода, если упомянутое число изображений в упомянутом буфере (625, 825) декодированных изображений, которые маркированы в качестве необходимых для вывода, больше, чем упомянутое значение sps_max_num_reorder_pics[HighestTid], при этом упомянутый кодер (600, 800) сконфигурирован для выполнения определения упомянутого числа изображений и маркирования упомянутого изображения после декодирования упомянутого текущего изображения.

16. Кодер по п. 15, при этом упомянутый кодер (600, 700, 800, 900, 1000) является кодером (600, 700, 800, 900, 1000), совместимым с высокоэффективным видеокодированием, HEVC.

17. Мобильный терминал (1100), содержащий декодер (100, 200, 300, 400, 500) по любому из пп. с 7 по 10.

18. Мобильный терминал (1100), содержащий кодер (600, 700, 800, 900, 1000) по любому из пп. с 13 по 16.

19. Сетевой узел (2), содержащий декодер (100, 200, 300, 400, 500) по любому из пп. с 7 по 10.

20. Сетевой узел (2), содержащий кодер (600, 700, 800, 900, 1000) по любому из пп. с 13 по 16.



 

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

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

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

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

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

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

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

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

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

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

Изобретение относится к технологиям обработки видеоданных, а именно раскрывает картинки произвольного доступа, используемые в видеоданных. Техническим результатом является повышение эффективности кодирования изображений. Предложен способ обработки видеоданных для определения буфера кодированных картинок (СРВ). Способ содержит этап, на котором осуществляют прием видеоданных в потоке битов, представляющем множество картинок, включая одну или более картинок чистого произвольного доступа (CRA) или одну или более картинок доступа с разорванной ссылкой (BLA). Далее, согласно способу, осуществляют прием, от внешнего устройства, сообщения, указывающего значение переменной UseAltCpbParamsFlag, причем переменная UseAltCpbParamsFlag указывает, использовать ли альтернативный набор параметров буфера кодированных картинок (СРВ) для по меньшей мере одной из одной или более картинок CRA или одной или более картинок BLA. 4 н. и 39 з.п. ф-лы, 9 ил., 1 табл.

Изобретение относится к технологиям кодирования и декодирования изображений. Техническим результатом является повышение эффективности кодирования/декодирования изображений. Предложен способ кодирования изображений для кодирования изображения. Способ содержит этап квантования множества коэффициентов частоты, включенных во множество блоков, включенных в изображение. Далее, согласно способу, осуществляют кодирование информации коэффициентов, указывающей упомянутое множество коэффициентов частоты, и информации квантования, которая используется при квантовании. При этом информация квантования включает в себя по меньшей мере один из: первого флага, указывающего, квантуется ли упомянутое множество блоков с использованием множества матриц квантования, каждая из которых имеет коэффициенты, соответственно соответствующие упомянутому множеству коэффициентов частоты, второго флага, указывающего, включено ли упомянутое множество матриц квантования в набор параметров последовательности, и третьего флага, указывающего, включено ли упомянутое множество матриц квантования в набор параметров картинки. 3 н.п. ф-лы, 38 ил.

Изобретение относится к цифровому кодированию видео и более конкретно к способам кодирования видео с использованием различных режимов предсказания. Техническим результатом является повышение эффективности предсказания видео. Указанный технический результат достигается тем, что секция (13) определения набора предсказания выбирает набор предсказания из группы наборов предсказания, включающей в себя множество наборов предсказания, имеющих различные комбинации режимов предсказания, соответствующих различным направлениям предсказания. Дополнительно секция (11) определения режима предсказания выбирает режим предсказания из набора предсказания, выбранного таким образом. Секция (4) статистического кодирования кодирует набор предсказания, таким образом выбранный, режим предсказания, таким образом выбранный, и остаточные данные между входным изображением и предсказанным изображением, сформированным на основе набора предсказания и режима предсказания, что позволяет выполнять предсказания из большего количества различных углов, таким образом улучшая эффективность предсказания. 2 н. и 2 з.п. ф-лы, 37 табл., 73 ил.

Изобретение относится к области обработки видеоизображений и, в частности, к способу кодирования/декодирования матрицы квантования в изображении. Техническим результатом является обеспечение высокоэффективного кодирования/декодирования матриц квантования посредством горизонтального/вертикального сканирования при кодировании матриц квантования. Предложено устройство кодирования изображений, содержащее: средство получения для получения значений разности между элементами для по меньшей мере части элементов из числа множества элементов в матрице квантования, которая может быть выражена в двумерном массиве, который используется, когда данные изображения, которые должны подвергаться кодированию, квантуются, при этом средство получения получает значение разности, получаемое вычитанием элемента, соответствующего первой строке и p-му столбцу (p является натуральным числом, равным или превышающим 2) в матрице квантования, из элемента, соответствующего (p + 1)-й строке и первому столбцу в матрице квантования. 3 н. и 4 з.п. ф-лы, 40 ил.

Изобретение относится к кодированию без преобразования блоков видеоконтента в соответствии с оптимальным порядком сканирования. Техническим результатом является уменьшение количества дублирующей информации, чтобы уменьшить количество битов, используемых для кодирования с предсказанием. Предложено непреобразованные блоки видеоконтента кодировать путем избирательного изменения порядка сканирования. Кодер или декодер может выполнять процесс сканирования над блоком в соответствии с порядком сканирования. Если блок не был преобразован, кодер или декодер может избирательно изменять порядок сканирования на другой порядок. Например, если блок ассоциирован с конкретным типом предсказания, порядок сканирования может быть изменен на другой порядок. В другом примере, если непреобразованный блок имеет размер, который меньше, чем заданный размер, порядок сканирования может быть изменен на другой порядок. 3 н. и 7 з.п. ф-лы, 5 ил.

Изобретение относится к технологиям сжатия потоков видео и/или аудио файлов. Техническим результатом является улучшение качества сжатия для потока данных. Предложен способ сжатия первоначального потока (F1) в сжатый поток (F2). Способ содержит этап, на котором подают предварительно фильтрованный поток на кодер, сконфигурированный с возможностью кодирования фильтрованного потока (FX1) в закодированный поток (FX2) со скоростью кодирования (Q), измеренной в битах в секунду, причем указанная скорость кодирования (Q) не зависит от числа (N) элементов в секунду. При этом упомянутый первоначальный поток (F1) содержит, по меньшей мере, один заголовок (Т1) и ряд последовательных элементов (E1…EN…EZ), а заголовок первоначального потока содержит частоту восстановления для элементов упомянутого ряда. Пропускают первоначальный поток через предфильтр (X1) перед кодером-декодером для замены в заголовке (Т1) первоначального потока частоты восстановления (R) частотой уплотнения (RK), затем для передачи фильтрованного таким образом потока (FX1) в упомянутый кодер-декодер. 9 н. и 10 з.п. ф-лы, 1 ил.

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

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

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