×
20.01.2016
216.013.a25a

КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002573204
Дата охранного документа
20.01.2016
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к средствам кодирования видео. Техническим результатом является повышение эффективности кодирования. В способе определяют для текущего изображения младшие биты значения счета порядка изображений, идентифицирующего долговременное опорное изображение, подлежащее использованию при кодировании части текущего изображения, определяют старшие биты значения счета порядка изображений. В способе число младших битов в несжатой форме, при суммировании с числом старших битов в несжатой форме, дает в результате сумму, которая меньше общего числа битов для задания значения счета порядка изображений в несжатой форме, задают младшие биты и старшие биты значения счета порядка изображений в потоке битов, представляющем закодированную версию видеоданных, кодируют часть текущего изображения с использованием долговременного опорного изображения. 8 н. и 70 з.п. ф-лы, 7 ил., 4 табл.
Реферат Свернуть Развернуть

[0001] Данная заявка притязает на приоритет предварительной заявки на патент (США) № 61/566359, поданной 2 декабря 2011 года, предварительной заявки на патент (США) № 61/589295, поданной 20 января 2012 года, и предварительной заявки на патент (США) № 61/624933, поданной 16 апреля 2012 года, содержимое каждой из которых полностью содержится в данном документе по ссылке.

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

[0002] Данное раскрытие сущности относится к кодированию видео.

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

[0003] Возможности цифрового видео могут быть встроены в широкий диапазон устройств, включающих в себя цифровые телевизоры, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, устройства для видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, устройства видеоконференц-связи и т.п. Стандарты кодирования видео включают в себя ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), включающий в себя расширения масштабируемого кодирования видео (SVC) и кодирования многовидового видео (MVC). Последний совместный проект MVC описывается в документе ″Advanced video coding for generic audiovisual services″, ITU-T Recommendation H.264, март 2010 года.

[0004] Технологии сжатия видео выполняют пространственное прогнозирование и/или временное прогнозирование для того, чтобы уменьшать или удалять избыточность, внутренне присутствующую в видеопоследовательностях. Для кодирования видео на основе блоков видеокадр или слайс (вырезка) может быть сегментирован на блоки. Каждый блок может быть дополнительно сегментирован. Блоки во внутренне кодированном (I-) кадре или внутренне кодированном (I-) слайсе кодируются с использованием пространственного прогнозирования относительно соседних блоков. Блоки во внешне кодированном (P- или B-) кадре или внешне кодированном слайсе (P- или B-) могут использовать пространственное прогнозирование относительно соседних блоков в идентичном кадре или слайсе либо временное прогнозирование относительно других опорных кадров.

[0005] Прилагаются усилия для того, чтобы разрабатывать новые стандарты кодирования видео на основе H.264/AVC. Один такой стандарт представляет собой стандарт масштабируемого кодирования видео (SVC), который является масштабируемым расширением H.264/AVC. Другой стандарт представляет собой стандарт кодирования многовидового видео (MVC), который становится многовидовым расширением H.264/AVC. Совместный проект MVC описан в документе JVT-AB204 ″Joint Draft 8.0 on Multiview Video Coding″, 28th JVT meeting, Ганновер, Германия, июль 2008 года, доступном по адресу http://wftp3.itu.int/av-arch/jvt-site/2008_07_Hannover/JVT-AB204.zip. Версия AVC-стандарта описывается в документе JVT-AD007 ″Editors' draft revision to ITU-T Rec. H.264 ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form)″, 30th JVT meeting, Женева, CH, февраль 2009 года″, доступном по адресу http://wftp3.itu.int/av-arch/jvt-site/2009_01_Geneva/JVT-AD007.zip. Этот документ интегрирует SVC и MVC в технических требованиях AVC.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробное описание изобретения

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

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

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

[0034] В наборе параметров изображения (PPS) или наборе параметров последовательности (SPS), ассоциированном с заголовком слайса текущего изображения, видеокодер может передавать в служебных сигналах RPS. RPS текущего изображения включает в себя идентификационную информацию для опорных изображений, которые могут быть использованы для того, чтобы прогнозировать текущее изображение, и изображений, которые могут быть использованы для того, чтобы прогнозировать изображения после текущего изображения в порядке декодирования. Только опорные изображения в RPS могут быть включены в список 0 или список 1.

[0035] Идентификационная информация для опорных изображений может включать в себя одно или более значений счета порядка изображений (POC). POC-значения задают порядок, в котором изображения в кодированной видеопоследовательности выводятся или отображаются (т.е. порядок отображения изображений). Например, изображение с более низким POC-значением отображается раньше изображения с более высоким POC-значением в идентичной кодированной видеопоследовательности.

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

[0037] В соответствии с первым аспектом технологий, описанных в этом раскрытии сущности, вместо кодирования дельта-POC LSB, которые идентифицируют долговременное опорное изображение, которое присутствует в буфере декодированных изображений, но не задается в ассоциированной SPS, с использованием экспоненциального кодирования кодом Голомба, видеокодер может непосредственно задавать (передавать в служебных сигналах) POC LSB такого долговременного опорного изображения с использованием переменно-фиксированных унарных кодов. Иными словами, видеокодер может задавать число битов, используемое для того, чтобы передавать в служебных сигналах эти POC LSB, которые передаются в служебных сигналах в заголовке слайса, ассоциированном с текущим изображением. Указанное число битов сообщает в служебных сигналах в видеодекодер число битов, которые должны быть синтаксически проанализированы из потока битов и которые представляют POC LSB, которые идентифицируют долговременное опорное изображение, которое присутствует в буфере декодированных изображений, но не задается в ассоциированной SPS. С учетом более широкого распределения значений в контексте таких POC LSB-значений, технологии могут способствовать экономии битов посредством кодирования этих POC LSB в качестве двоичных чисел без знака одинаковой длины (и переменных, в том смысле, что одинаковая длина может передаваться в служебных сигналах или извлекаться для каждого слайса), обозначаемых как ″u(v)″ в различных стандартах кодирования видео.

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

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

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

[0041] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может использовать технологии, описанные в этом раскрытии сущности, для извлечения RPS и передачи в служебных сигналах LTRP. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое передает кодированное видео в устройство-адресат 14 через канал 16 связи. Устройство-источник 12 и устройство-адресат 14 могут содержать любые из широкого диапазона устройств. В некоторых случаях, устройство-источник 12 и устройство-адресат 14 могут содержать устройства беспроводной связи, такие как беспроводные переносные телефоны, так называемые сотовые или спутниковые радиотелефоны или любые беспроводные устройства, которые могут передавать видеоинформацию по каналу 16 связи, когда канал 16 связи является беспроводным. Технологии этого раскрытия сущности не обязательно ограничены приложениями или настройками беспроводной связи. Например, эти технологии могут применяться к телевизионным широковещательным передачам по радиоинтерфейсу, кабельным телевизионным передачам, спутниковым телевизионным передачам, передачам видео по Интернету, кодированному цифровому видео, которое кодируется на носитель данных, или к другим сценариям. Соответственно, канал 16 связи может содержать любую комбинацию беспроводных, проводных сред или носителей данных, подходящих для передачи или хранения кодированных видеоданных.

[0042] В примере по фиг. 1, устройство-источник 12 включает в себя видеоисточник 18, видеокодер 20, модулятор/демодулятор (модем) 22 и передающее устройство 24. Устройство-адресат 14 включает в себя приемное устройство 26, модем 28, видеодекодер 30 и устройство 32 отображения. Видеокодер 20 может быть сконфигурирован с возможностью применять технологии этого раскрытия сущности. В других примерах, устройство-источник и устройство-адресат могут включать в себя другие компоненты или компоновки. Например, устройство-источник 12 может принимать видеоданные из внешнего видеоисточника, такого как внешняя камера. Аналогично, устройство-адресат 14 может взаимодействовать с внешним устройством отображения вместо включения в себя интегрированного устройства отображения.

[0043] Система 10 по фиг. 1 является просто одним примером. Технологии для кодирования видеоданных могут выполняться посредством другого устройства кодирования и/или декодирования цифрового видео. Технологии этого раскрытия сущности могут выполняться посредством видеокодера/декодера, типично называемого ″кодеком″. Кроме того, технологии этого раскрытия сущности также могут выполняться посредством видеопрепроцессора. Устройство-источник 12 и устройство-адресат 14 являются просто примерами таких устройств кодирования. В некоторых примерах, устройства 12, 14 могут работать практически симметрично, так что каждое из устройств 12, 14 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю и двухстороннюю передачу видео между устройством-источником 12 и устройством-адресатом 14, к примеру, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии.

[0044] Видеоисточник 18 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или видеопередачу от поставщика видеосодержимого. В качестве дополнительной альтернативы, видеоисточник 18 может формировать основанные на компьютерной графике данные в качестве видео источника или комбинацию передаваемого вживую видео, архивного видео и генерируемого компьютером видео. В некоторых случаях, если видеоисточником 18 является видеокамера, устройство-источник 12 и устройство-адресат 14 могут формировать так называемые камерофоны или видеофоны. В каждом случае, захваченное, предварительно захваченное или генерируемое компьютером видео может быть кодировано посредством видеокодера 20. Кодированная видеоинформация затем может быть модулирована посредством модема 22 согласно стандарту связи и передана в устройство-адресат 14 через передающее устройство 24. Модем 22 может включать в себя различные микшеры, фильтры, усилители или другие компоненты, спроектированные с возможностью модуляции сигналов. Передающее устройство 24 может включать в себя схемы, спроектированные с возможностью передачи данных, включающие в себя усилители, фильтры и одну или более антенн.

[0045] Приемное устройство 26 устройства-адресата 14 принимает информацию по каналу 16, и модем 28 демодулирует информацию. Информация, передаваемая по каналу 16 связи, может включать в себя синтаксическую информацию, заданную посредством видеокодера 20, которая включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например, групп изображений (GOP). Устройство 32 отображения отображает декодированные видеоданные пользователю. Устройство 32 отображения может содержать любое из множества устройств отображения, таких как дисплей на электронно-лучевой трубке (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.

[0046] В примере по фиг. 1, канал 16 связи может содержать любую беспроводную и проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи, либо любую комбинацию беспроводных и проводных сред. Канал 16 связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Канал 16 связи может представлять любую надлежащую среду связи или набор различных сред связи для передачи видеоданных из устройства-источника 12 в устройство-адресат 14, включающих в себя надлежащие комбинации проводных или беспроводных сред. Канал 16 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для того, чтобы упрощать связь из устройства-источника 12 в устройство-адресат 14. В других примерах, устройство-источник 12 может сохранять кодированные данные на носитель данных вместо передачи данных. Аналогично, устройство-адресат 14 может быть сконфигурировано с возможностью извлекать кодированные данные из носителя данных.

[0047] Видеокодер 20 и видеодекодер 30 могут работать согласно такому стандарту сжатия видео, как стандарт ITU-T H.264, альтернативно называемый MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), либо разрабатываемому стандарту высокоэффективного кодирования видео, который также может широко упоминаться как H.265. Хотя технологии, в общем, описываются в этом раскрытии сущности относительно HEVC, технологии также могут быть реализованы или иным образом использованы для альтернативных стандартов кодирования видео, таких как стандарт H.264/усовершенствованное кодирование видео (AVC). HEVC разрабатывается посредством Объединенной группы для совместной работы над видеостандартами (JCT-VC) Экспертной группы в области кодирования видео (VCEG) ITU-T и Экспертной группы по киноизображению (MPEG) ISO/IEC. Последний рабочий проект (WD) HEVC, называемый ″HEVC WD6″ в дальнейшем в этом документе, авторов Bross и др., озаглавлен ″High efficiency video coding (HEVC) text specification draft 6″, Объединенная группа для совместной работы над видеостандартами (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 8th Meeting, Сан-Хосе, Калифорния, США, 1-10 февраля 2012 года, доступен по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip. Дополнительно, также утверждены другие WD HEVC, самый последний из них называется ″HEVC WD9″, авторов Bross и др., озаглавлен ″High efficiency video coding (HEVC) text specification draft 9″, Объединенная группа для совместной работы над видеостандартами (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 11th Meeting: Шанхай, Китай, 10-19 октября 2012 года, JCTVC-K1003_v9, доступный по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v9.zip

[0048] Стандарт ITU H.264/MPEG-4 (AVC) сформулирован посредством Экспертной группы в области кодирования видео (VCEG) ITU-T совместно с Экспертной группой по киноизображению (MPEG) ISO/IEC как продукт совместного партнерского проекта, известного как Объединенная группа по видеостандартам (JVT). В некоторых аспектах, технологии, описанные в этом раскрытии сущности, могут быть применены к устройствам, которые, в общем, соответствуют стандарту H.264. Стандарт H.264 описан в ITU-T Recommendation H.264 ″Advanced Video Coding for Generic Audiovisual Services″ от Исследовательской группы ITU-T и датирован мартом 2005 года, который может упоминаться в данном документе как стандарт H.264 или спецификация H.264 либо стандарт или спецификация H.264/AVC. Объединенная группа по видеостандартам (JVT) продолжает работать над дополнениями к H.264/MPEG-4 AVC.

[0049] Стандарты кодирования видео включают в себя ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), включающий в себя расширения масштабируемого кодирования видео (SVC) и кодирования многовидового видео (MVC). Последний совместный проект MVC описывается в документе ″Advanced video coding for generic audiovisual services″, ITU-T Recommendation H.264, март 2010 года.

[0050] Тем не менее, технологии этого раскрытия сущности не ограничены каким-либо конкретным стандартом кодирования. Другие примеры включают в себя MPEG-2 и ITU-T H.263. Хотя не показано на фиг. 1, в некоторых аспектах, видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудио-кодером и декодером, соответственно, и могут включать в себя соответствующие модули мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение для того, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, блоки мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).

[0051] Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из множества надлежащих схем кодера или декодера при соответствующих условиях, к примеру, как один или более микропроцессоров, процессоры цифровых сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логическая схема, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо любые комбинации вышеозначенного. Термин ″процессор″ может, в общем, использоваться для того, чтобы означать любую комбинацию вышеприведенного, и может включать в себя невременные считываемые компьютером носители, имеющие сохраненные инструкции, которые при выполнении побуждают этот процессор выполнять различные технологии, описанные в этом раскрытии сущности. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного видеокодера/декодера (кодека). Устройство, включающее в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон, камера, компьютер, мобильное устройство, абонентское устройство, устройство широковещательной передачи, абонентская приставка, игровое устройство, сервер и т.п.

[0052] Видеопоследовательность типично включает в себя последовательность видеокадров, альтернативно называемых ″изображениями″. Группа изображений (GOP), в общем, содержит последовательность из одного или более видеокадров (что представляет собой другой общеизвестный способ упоминать изображение). GOP может включать в себя в заголовке GOP, в заголовке одного или более кадров GOP или в другом месте синтаксические данные, которые описывают число кадров, включенных в GOP. Каждый кадр может включать в себя синтаксические данные кадра, которые описывают режим кодирования для соответствующего кадра. Видеокодер 20 типично управляет видеоблоками в пределах отдельных видеокадров с тем, чтобы кодировать видеоданные. Видеоблок может соответствовать макроблоку или сегменту макроблока в H.264 или CU (которая может включать в себя одну или более единиц прогнозирования (PU) и/или единиц преобразования (TU)) HEVC. Видеоблоки могут иметь фиксированный или варьирующийся размер и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеокадр может включать в себя множество слайсов. Каждый слайс может включать в себя множество макроблоков (или LCU), которые могут быть сегментированы на субблоки (или CU).

[0053] В качестве примера, стандарт ITU-T H.264 поддерживает внутреннее прогнозирование для различных размеров блоков, таких как 16×16, 8×8 или 4×4 для компонентов сигнала яркости и 8х8 для компонентов сигнала цветности, а также внешнее прогнозирование для различных размеров блоков, таких как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для компонентов сигнала яркости и соответствующие масштабированные размеры для компонентов сигнала цветности. В этом раскрытии сущности, ″N×N″ и ″N на N″ могут быть использованы взаимозаменяемо для того, чтобы означать размеры в пикселах блока с точки зрения размеров по вертикали и горизонтали, например, 16×16 пикселов или 16 на 16 пикселов. В общем, блок 16×16 должен иметь 16 пикселов в вертикальном направлении (y=16) и 16 пикселов в горизонтальном направлении (x=16). Аналогично, блок N×N, в общем, имеет N пикселов в вертикальном направлении и N пикселов в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение. Пикселы в блоке могут размещаться в строках и столбцах. Кроме того, блок не обязательно должен иметь совпадающее число пикселов в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать N×M пикселов, причем M не обязательно равно N.

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

[0055] Меньшие видеоблоки могут предоставлять лучшее разрешение и могут быть использованы для местоположений видеокадра, которые включают в себя высокие уровни детальности. В общем, блоки и различные сегменты, иногда называемые ″субблоками″, могут считаться видеоблоками. Помимо этого, слайс может считаться множеством видеоблоков, таких как блоки и/или субблоки. Каждый слайс может быть независимо декодируемой единицей видеокадра. Альтернативно, сами кадры могут быть декодируемыми единицами, или другие части кадра могут быть заданы как декодируемые единицы. Термин ″кодированная единица″ или ″единица кодирования″ может означать любую независимо декодируемую единицу видеокадра, такую как весь кадр, слайс кадра, GOP, также называемая ″последовательностью″, либо другая независимо декодируемая единица, заданная согласно применимым технологиям кодирования. GOP также может упоминаться в качестве кодированной видеопоследовательности, например, в H.264/AVC и HEVC.

[0056] Видеокодер 20 может формировать единицы уровня абстрагирования от сети (NAL). NAL-единица может представлять собой синтаксическую структуру, содержащую индикатор относительно типа данных в NAL-единице и байты, содержащие данные. Например, NAL-единица может содержать данные, представляющие набор параметров последовательности (SPS), набор параметров изображения (PPS), кодированный слайс, дополнительную улучшающую информацию (SEI), разделитель единиц доступа, заполняющие данные или другой тип данных. Данные NAL-единицы могут иметь форму первичной байтовой последовательности данных (RBSP) со вставкой в промежутке битов предотвращения эмуляции. RBSP может представлять собой синтаксическую структуру, содержащую целое число байтов, которое инкапсулируется в NAL-единице.

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

[0058] SEI-сообщения могут содержать информацию, которая не требуется для декодирования выборок кодированных изображений из VCL NAL-единиц, но может помогать в процессах, связанных с декодированием, отображением, устойчивостью к ошибкам и другими целями. SEI-сообщения могут содержаться в не-VCL NAL-единицах. SEI-сообщения представляют собой нормативную часть некоторых стандартных технических требований и в силу этого не всегда являются обязательными для совместимой со стандартом реализации декодера. SEI-сообщения могут представлять собой SEI-сообщения уровня последовательности или SEI-сообщения уровня изображения. Некоторая информация уровня последовательности может содержаться в SEI-сообщениях, к примеру, в SEI-сообщениях с информацией масштабируемости в примере SVC и SEI-сообщениях с информацией масштабируемости просмотра в MVC. Эти примерные SEI-сообщения могут передавать информацию относительно, например, извлечения рабочих точек и характеристик рабочих точек.

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

[0060] Видеодекодер также может быть сконфигурирован с

возможностью составлять списки опорных изображений, которые задают то, какие опорные изображения используются для целей внешнего прогнозирования. Два из этих списков опорных изображений упоминаются в качестве списка 0 и списка 1, соответственно. Видеодекодер 30 может сначала использовать технологии составления по умолчанию для того, чтобы составлять список 0 и список 1 (например, предварительно конфигурируемые схемы составления для составления списка 0 и списка 1, к примеру, схемы составления, изложенные в HEVC WD6 в качестве одного примера). Необязательно, видеокодер 20 может быть сконфигурирован с возможностью передавать в служебных сигналах элементы синтаксиса, которые задают то, какие изображения, сохраненные в DPB, должны быть использованы при составлении списка 0 и списка 1. Таким образом, после того, как начальный список 0 и список 1 составлены, видеодекодер 30 может декодировать элементы синтаксиса, если присутствуют, которые побуждают видеодекодер 30 модифицировать начальный список 0 и список 1.

[0061] Видеокодер 30 может передавать в служебных сигналах элементы синтаксиса, которые служат признаком идентификатора(ов) опорных изображений в DPB. Видеокодер 30 также может передавать в служебных сигналах элементы синтаксиса, которые включают в себя индексы, в списке 0, списке 1 либо как в списке 0, так и в списке 1, которые задают то, какое опорное изображение или изображения, сохраненные в DPB, должны быть использованы для того, чтобы декодировать кодированный блок текущего изображения. Видеодекодер 30, в свою очередь, использует принимаемый для того, чтобы идентифицировать значение или значения индекса для опорного изображения или опорных изображений, перечисленных в списке 0, списке 1 либо как в списке 0, так и в списке 1. Из значения(й) индекса, а также идентификатора(ов) опорного изображения или опорных изображений, видеодекодер 30 извлекает опорное изображение или опорные изображения из DPB, формирует список 0 и список 1 и декодирует кодированный блок текущего изображения.

[0062] В наборе параметров изображения (PPS) или наборе параметров последовательности (SPS), ассоциированном с заголовком слайса текущего изображения, видеокодер 20 может передавать в служебных сигналах набор опорных изображений (который снова может упоминаться в качестве ″RPS″). RPS текущего изображения включает в себя идентификационную информацию для опорных изображений, которые могут быть использованы для того, чтобы прогнозировать текущее изображение, и изображений, которые могут быть использованы для того, чтобы прогнозировать изображения после текущего изображения в порядке декодирования. Только опорные изображения в RPS могут быть включены в список 0 или список 1.

[0063] Идентификационная информация для опорных изображений может включать в себя одно или более значений счета порядка изображений (POC). POC-значения задают порядок, в котором изображения выводятся или отображаются (т.е. порядок отображения изображений). Например, изображение с более низким POC-значением отображается раньше изображения с более высоким POC-значением в идентичной кодированной видеопоследовательности.

[0064] HEVC WD6 и последующие рабочие проекты, например, HEVC WD9, типично предусматривают два различных типа опорных изображений, называемых ″кратковременными опорными изображениями (STRP)″ и ″долговременными опорными изображениями (LTRP)″. Кратковременные опорные изображения представляют собой изображения, которые типично располагаются рядом во времени с текущим изображением в порядке вывода.

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

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

[0067] Чтобы задавать эти долговременные опорные изображения, видеокодер 20 может предоставлять список долговременных опорных изображений, которые могут быть ассоциированы и использованы для того, чтобы декодировать одно или более изображений в SPS. В заголовках слайсов (которые также могут упоминаться в качестве ″заголовков слайсов″) ассоциированных одного или более изображений, видеокодер 20, в некоторых случаях, может задавать то, какие из этих долговременных опорных изображений, указываемых в SPS, должны быть использованы при декодировании конкретного изображения. Зачастую, видеокодер 20 указывает индекс, идентифицирующий каждое из долговременных опорных изображений, указываемых в SPS, которые должны быть использованы при декодировании конкретного изображения. Типично, требуется, чтобы все заголовки слайсов изображения ссылались на идентичную передачу в служебных сигналах наборов опорных изображений.

[0068] В некоторых случаях, видеокодер 20 может определять то, что одно или более долговременных опорных изображений, которые присутствуют в буфере декодированных изображений, но которые не задаются в списке долговременных опорных изображений, указываемых в SPS, должны быть использованы при декодировании конкретного изображения. В этом случае, видеокодер 20 может задавать (или, в контексте кодирования видео, ″передавать в служебных сигналах″) POC-значения, которые назначаются одному или более долговременных опорных изображений, присутствующих в DPB, но которые не задаются в списке долговременных опорных изображений, указываемых в SPS.

[0069] Чтобы уменьшать число битов, требуемое для того, чтобы передавать в служебных сигналах эти POC-значения, видеокодер 20 может определять POC-значение в качестве функции от POC-значения, назначаемого одному из изображений (которое может упоминаться в качестве ″текущего изображения″ в том смысле, что это изображение представляет собой изображение, которое в данный момент декодируется), которому соответствует слайс (который может упоминаться в качестве ″текущего слайса″ по аналогичным причинам), которая должна быть декодирована. В качестве иллюстрации, видеокодер 20 может вычитать POC-значение долговременного опорного изображения из POC-значения текущего изображения, которому соответствует текущий слайс, чтобы извлекать дельта-POC-значение. В частности, дельта-POC-значение может быть представлено посредством выбранного числа младших битов (LSB) дельта-POC-значения. Посредством передачи в служебных сигналах только дельта-POC LSB в заголовке слайса, видеокодер 20 может уменьшать число битов, требуемое для того, чтобы идентифицировать долговременные опорные изображения, которые присутствуют в буфере декодированных изображений, но не задаются в SPS, ассоциированном с текущим слайсом; эти долговременные опорные изображения также упоминаются как непосредственно передаваемые в служебных сигналах в заголовках слайсов.

[0070] Ранее, дельта-POC LSB для задания POC-значения долговременного опорного изображения энтропийно кодированы для того, чтобы повышать устойчивость к ошибкам и уменьшать число битов, требуемое для того, чтобы задавать POC-значение в потоке битов. В частности, эти предшествующие видеокодеры кодируют дельта-POC LSB долговременных опорных изображений, непосредственно передаваемых в служебных сигналах в заголовках слайсов, с использованием формы кодирования, обозначаемой как ″ue(v)″ в различных стандартах кодирования видео, включающих в себя HEVC. Термин ″ue(v)″ означает форму кодирования, называемую ″экспоненциальным кодированием кодом Голомба″.

[0071] Когда значение, которое должно указываться, не имеет знака (что составляет ″u″ в ″ue(v)″, в то время как ″e″ означает экспоненциал в экспоненциальных кодах Голомба), экспоненциальное кодирование кодом Голомба заключает в себе передачу в служебных сигналах числа битов, используемого для того, чтобы кодировать данное значение, посредством задания числа нулей, которое составляет на единицу меньше числа битов для того, чтобы кодировать данное значение, и затем задания данного значения плюс единица. Если дельта-POC LSB-значение равно 0001, например, видеокодер кодирует это значение в качестве 0 (чтобы задавать, что значение может быть передано в служебных сигналах с использованием одного бита, т.е. 1 в этом примере) и далее посредством 10 (при условии, что значение в единицу плюс единица равно двум, что в двоичном файле задается в качестве 10), с выводом экспоненциального кода Голомба 010.

[0072] Поскольку экспоненциальные коды Голомба представляют собой форму кодирования переменной длины (что означает тот факт, что эти коды не имеют фиксированной или одинаковой длины и вместо этого варьируются на основе того, какое значение кодируется), только экспоненциальное кодирование кодом Голомба, в общем, подходит для кодирования информации, имеющей определенные статистические распределения значений. Более конкретно, экспоненциальное кодирование кодом Голомба подходит для кодирования информации, которая со статистической вероятностью должна указываться в качестве небольшого числа. Вычисление дельта-POC LSB для задания POC-значения текущего изображения, в общем, участвующего в вычислении значения в единицу (при условии, что текущее POC-значение вычтено из POC-значения предыдущего изображения, чтобы извлекать дельта-POC LSB в контексте передачи в служебных сигналах POC-значения текущего изображения). Соответственно, экспоненциальное кодирование кодом Голомба выбрано, чтобы кодировать эти дельта-POC LSB-значения для задания POC-значения текущего изображения. Тем не менее, значения дельта-POC LSB для идентификации долговременных опорных изображений представляют информацию, которая имеет существенно отличающееся распределение, которое не является оптимальным для экспоненциального кодирования кодом Голомба.

[0073] В соответствии с первым аспектом технологий, описанных в этом раскрытии сущности, вместо кодирования дельта-POC LSB, которые идентифицируют долговременное опорное изображение, которое присутствует в буфере декодированных изображений, но не задается в ассоциированной SPS, с использованием экспоненциального кодирования кодом Голомба, видеокодер 20 может непосредственно задавать (или, другими словами, передавать в служебных сигналах) POC LSB такого долговременного опорного изображения с использованием переменно-фиксированных унарных кодов. Иными словами, видеокодер 20 может задавать число битов, используемое для того, чтобы передавать в служебных сигналах эти POC LSB в заголовке слайса, ассоциированном с текущим изображением. Указанное число битов сообщает в служебных сигналах в видеодекодер число битов, которые должны быть синтаксически проанализированы из потока битов и которые представляют POC LSB, которые идентифицируют долговременное опорное изображение, которое присутствует в буфере декодированных изображений, но не задается в ассоциированной SPS. С учетом более широкого распределения значений в контексте таких POC LSB-значений, технологии могут способствовать экономии битов посредством кодирования этих POC LSB в качестве двоичных чисел без знака одинаковой длины (и переменных, в том смысле, что одинаковая длина может передаваться в служебных сигналах или извлекаться для каждого слайса), обозначаемых как ″u(v)″ в различных стандартах кодирования видео.

[0074] При работе, видеокодер 20 может определять, для текущего изображения видеоданных, долговременное опорное изображение, которое должно быть использовано, при кодировании, по меньшей мере, части текущего изображения видеоданных способом, описанным выше. Видеокодер 20 затем может определять число битов, которое должно быть использовано для того, чтобы представлять набор из одного или более LSB POC-значения, которое идентифицирует долговременное опорное изображение в потоке битов, представляющем закодированную версию видеоданных. Другими словами, видеокодер 20 может определять ″v″ при двоичном кодировании без знака, обозначаемом как ″u(v)″, при этом ″u″ снова обозначает двоичное кодирование без знака.

[0075] Зачастую, это число LSB задается на основе числа LSB, требуемых для того, чтобы разрешать неоднозначность LTRP относительно других LTRP или любого другого опорного изображения, сохраненного в DPB. Другими словами, это число может варьироваться на основе слайса, изображения или GOP. В некоторых случаях, число LSB может быть задано для всего потока битов или его частей. В некоторых случаях, число LSB, используемых для того, чтобы идентифицировать POC-значение, предварительно задается, так что нет необходимости передавать в служебных сигналах число LSB. В некоторых случаях, число LSB может быть передано в служебных сигналах для каждого изображения, например, в заголовке слайса. В некоторых случаях, число LSB может быть передано в служебных сигналах для числа изображений, например, в SPS или PPS. В некоторых случаях, число LSB, используемых для того, чтобы идентифицировать POC-значение, может извлекаться на основе элементов синтаксиса, определенных для текущего изображения и/или ранее закодированных изображений видеоданных, при этом видеокодер 20, возможно, после этого не должен передавать в служебных сигналах число битов, используемое для того, чтобы представлять этот POC LSB, при условии, что видеодекодер 30 может выполнять аналогичный процесс извлечения для того, чтобы извлекать число ″v″ битов, используемых для того, чтобы представлять POC LSB.

[0076] В любом случае, видеокодер 20 затем может задавать набор из одного или более LSB POC-значения, которое идентифицирует LTRP в потоке битов с использованием определенного числа битов, используемого для того, чтобы представлять номер набора одного или более LSB POC-значения, которое идентифицирует долговременное опорное изображение. Другими словами, видеокодер 20 может задавать POC LSB, отмеченные выше, в потоке битов с использованием числа ″v″ битов в качестве двоичного числа без знака. Видеокодер 20 также может кодировать, по меньшей мере, часть текущего изображения с использованием LTRP. Видеокодер 20 может кодировать, по меньшей мере, часть текущего изображения до, после или параллельно с заданием в потоке битов POC LSB в качестве двоичного значения без знака длиной ″v″ битов. Видеокодер 20 затем может передавать этот поток битов в видеодекодер 30 или сохранять этот поток битов для последующего извлечения посредством видеодекодера 30.

[0077] Видеодекодер 30 может принимать поток битов, представляющий кодированные видеоданные, кодированные в соответствии с технологиями, описанными в этом раскрытии сущности. Модуль 150 энтропийного декодирования видеодекодера 30 может сначала определять, для слайса текущего изображения закодированных видеоданных, число битов, используемое для того, чтобы задавать набор из одного или более LSB POC-значения, которое идентифицирует LTRP для использования при декодировании текущего изображения. В некоторых примерах, число битов может быть явно передано в служебных сигналах в потоке битов в качестве элемента синтаксиса, например, в заголовке слайса, SPS или PPS, как описано выше. В других примерах, число битов может извлекаться в качестве функции от других элементов синтаксиса, указываемых в любом одном или более из SPS, PPS и заголовка слайса.

[0078] Видеодекодер 30 затем может синтаксически анализировать определенное число битов из потока битов, при этом синтаксически проанализированное определенное число битов представляет набор из одного или более LSB POC-значения, которое идентифицирует долговременное опорное изображение, которое должно быть использовано при декодировании, по меньшей мере, части текущего изображения. Определенное число битов может задавать то, что упоминается в качестве POC LSB выше. Видеодекодер 30 затем может извлекать, из буфера декодированных изображений, LTRP, которое должно быть использовано при декодировании, по меньшей мере, части текущего изображения, на основе POC LSB.

[0079] Чтобы извлекать это LTRP из буфера декодированных изображений, видеодекодер 30 может сравнивать младшие биты POC-значения, которое идентифицирует LTRP, с идентичным числом младших битов POC-значения, ассоциированного с по меньшей мере одним изображением, сохраненным в буфере декодированных изображений. Видеодекодер 30 извлекает одно, по меньшей мере, из одного изображения, сохраненного в буфере декодированных изображений, для использования в качестве долговременного опорного изображения при декодировании текущего изображения, которое имеет идентичные LSB для POC-значения, ассоциированного с одним, по меньшей мере, из одного изображения, сохраненного в буфере декодированных изображений в качестве определенных младших битов LTRP, которое должно быть использовано для того, чтобы декодировать текущее изображение. Другими словами, видеодекодер 30 может сопоставлять POC LSB с младшими битами POC-значений для изображений, сохраненных в буфер декодированных изображений, и идентифицировать изображение с совпадающими POC LSB в качестве долговременного опорного изображения, которое присутствует в буфере декодированных изображений, но не задается в SPS, ассоциированном с текущим изображением.

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

[0081] Как отмечено выше, видеокодер 20 может задавать (или ″передавать в служебных сигналах″) младшие биты дельта-значения счета порядка изображений (″дельта-POC LSB″) или прямые POC LSB в заголовках слайсов для текущих изображений, чтобы идентифицировать долговременные опорные изображения, присутствующие в буфере декодированных изображений, но не указываемые в наборе параметров последовательности (SPS), ассоциированном с текущим изображением. При указании этих (дельта-)POC LSB видеокодер 20 обычно анализирует каждый из этих указанных (дельта-)POC LSB, чтобы обеспечивать то, что один или более этих (дельта-)POC LSB не являются избыточными или идентичными.

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

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

1: indexA//идентифицирует POC-значение 400110

2: indexB//идентифицирует POC-значение 401010

3: POCLSBA//идентифицирует POC-значение 500110

4: POCLSBB//идентифицирует POC-значение 450010

5: POCLSBC//идентифицирует POC-значение 500510

[0084] Нижеприведенные описания основаны на POC LSB. Тем не менее идентичные описания также являются применимыми для дельта-POC LSB.

[0085] Как отмечено выше, каждый из вышеуказанных пунктов 1-5 эффективно идентифицирует различное POC-значение. Тем не менее, в различных случаях, при передаче в служебных сигналах только прямых POC LSB, могут быть проблемы (вследствие неоднозначностей), которые могут исключать возможность для видеодекодера 30 эффективно определять то, какие долговременные опорные изображения должны быть использованы для того, чтобы декодировать текущий слайс. При условии, что только три младших бита используются для того, чтобы передавать в служебных сигналах POCLSBA, в таком случае POCLSBA равен 0012. Тем не менее indexA также идентифицирует POC-значение 400110, что означает то, что POC-значение 400110 также присутствует в буфере декодированных изображений. При условии, что существует два изображения в буфере декодированных изображений, имеющем POC LSB 0012, видеодекодер 30 может быть неспособен извлекать любое LTRP для текущего изображения, поскольку непонятно то, какое LTRP видеодекодер 30 должен использовать при декодировании текущего изображения.

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

[0087] Тем не менее, обеспечение того, что POC-значения, передаваемые в служебных сигналах в заголовке слайса, уникально передаются в служебных сигналах друг относительно друга, является недостаточным для того, чтобы позволять видеодекодеру надлежащим образом извлекать эти долговременные опорные изображения из буфера декодированных изображений. В качестве иллюстрации, рассмотрим вышеприведенный пример, но также допустим, что существует другое долговременное опорное изображение в буфере декодированных изображений, идентифицированное посредством POC-значения 400510. При проверке, чтобы обеспечивать то, что нет конфликта с любым другим POC-значением, указываемым в заголовке слайса, видеокодер определяет то, что это значение не передает в служебных сигналах неоднозначно POC-значение 500510 в контексте других POC-значений, передаваемых в служебных сигналах в заголовке слайса и указывающих POCLSBC в качестве 1012 (которое составляет просто 510), без задания вообще старших битов.

[0088] В соответствии с этими допущениями, видеодекодер 30 должен синтаксически анализировать POCLSBC из потока битов для текущего слайса и пытаться извлекать долговременное опорное изображение, идентифицированное посредством POCLSBC (1012 или 510). Тем не менее, при условии, что существует два изображения в буфере декодированных изображений, имеющем POC LSB 1012, видеодекодер 30 может быть неспособен извлекать любое LTRP для текущего изображения, поскольку непонятно то, какое LTRP видеодекодер 30 должен использовать при декодировании текущего изображения.

[0089] В соответствии с технологиями, описанными в этом раскрытии сущности, видеокодер 20 сконфигурирован с возможностью анализировать каждое изображение, присутствующее во всем буфере декодированных изображений, при определении того, необходимо или нет передавать в служебных сигналах дополнительную информацию старших битов (MSB) для разрешения неоднозначности дельта-POC LSB. Другими словами, видеокодер 20 определяет POC LSB (или дельта-POC LSB в зависимости от реализации) для каждого POC-значения, которое идентифицирует изображение в буфере декодированных изображений. При выполнении анализа POC LSB, передаваемых в служебных сигналах в заголовке слайса, видеокодер 20 определяет то, являются или нет POC LSB, определенные для каждого из долговременных опорных изображений, передаваемых в служебных сигналах в заголовке слайса, уникальными относительно каждого из POC LSB, определенных для каждого POC-значения, которое идентифицирует изображение в буфере декодированных изображений. Если один из этих POC LSB, передаваемых в служебных сигналах в заголовке слайса, определяется как неуникальный, видеокодер 20 затем может передавать в служебных сигналах достаточное число старших битов (MSB) для POC-значения, с тем чтобы предоставлять возможность корректной идентификации POC-значения долговременного опорного изображения посредством видеодекодера 30. В некоторых случаях, число из одного или более младших битов, при суммировании с числом из одного или более старших битов, дает в результате сумму, которая меньше общего числа битов для того, чтобы задавать значение счета порядка изображений.

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

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

[0092] Другими словами, вместо определения только того, что POC LSB, которые идентифицируют долговременное опорное изображение, являются достаточными для того, чтобы уникально идентифицировать долговременное опорное изображение из любого другого долговременного опорного изображения, задаваемого в SPS, PPS и/или заголовке слайса, видеокодер 20 может определять то, что POC LSB, которые идентифицируют долговременное опорное изображение, являются достаточными для того, чтобы уникально идентифицировать долговременное опорное изображение из любого другого долговременного опорного изображения, сохраненного во всем DPB. С другой стороны, число из одного или более младших битов, при суммировании с числом из одного или более старших битов, дает в результате сумму, которая меньше общего числа битов для того, чтобы задавать значение счета порядка изображений. В этом отношении, видеокодер 20 может не допускать этих случаев, которые приводят к проблемам, отмеченным выше, когда видеодекодер неспособен корректно идентифицировать долговременное опорное изображение посредством передаваемых в служебных сигналах POC LSB, когда два или более долговременных опорных изображения, имеющие идентичные POC LSB, сохраняются в DPB, но только одно из этих долговременных опорных изображений указано в SPS, PPS и/или заголовке слайса. Как результат, посредством реализации этих технологий, видеокодер 20 может более надежно кодировать видеоданные по сравнению с традиционными видеокодерами, которые только идентифицируют, когда более надежно кодировать передаваемое в служебных сигналах долговременное опорное изображение относительно этих долговременных опорных изображений, передаваемых в служебных сигналах в SPS, PPS и/или заголовке слайса.

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

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

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

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

[0097] Фиг. 2 является блок-схемой, которая иллюстрирует примерную конфигурацию видеокодера 20, который сконфигурирован с возможностью реализовывать технологии этого раскрытия сущности. Фиг. 2 предоставляется для целей пояснения и не должен считаться ограничением технологий, широко проиллюстрированных и описанных в этом раскрытии сущности. Для целей пояснения, это раскрытие сущности описывает видеокодер 20 в контексте HEVC-кодирования. Тем не менее, технологии этого раскрытия сущности, как отмечено выше, могут быть применимыми к другим стандартам или способам кодирования.

[0098] В примере по фиг. 2, видеокодер 20 включает в себя множество функциональных компонентов. Функциональные компоненты видеокодера 20 включают в себя модуль 100 прогнозирования, модуль 102 формирования остатков, модуль 104 преобразования, модуль 106 квантования, модуль 108 обратного квантования, модуль 110 обратного преобразования, модуль 112 восстановления и буфер 114 декодированных изображений и модуль 116 энтропийного кодирования. Модуль 100 прогнозирования включает в себя модуль 122 оценки движения, модуль 124 компенсации движения и модуль 126 внутреннего прогнозирования.

[0099] В других примерах, видеокодер 20 может включать в себя большее, меньшее число или другие функциональные компоненты. Например, видеокодер 20 может включать в себя фильтр удаления блочности, чтобы фильтровать вывод модуля 112 восстановления, чтобы удалять артефакты блочности из восстановленного видео. Кроме того, модуль 122 оценки движения и модуль 124 компенсации движения могут иметь высокую степень интеграции, но представляются в примере по фиг. 4 отдельно для целей пояснения.

[0100] Видеокодер 20 может принимать видеоданные. В различных примерах, видеокодер 20 может принимать видеоданные из различных источников. Например, видеокодер 20 может принимать видеоданные из видеоисточника 18 (фиг. 1) или другого источника. Видеоданные могут представлять последовательности изображений. Изображения могут включать в себя вид текстуры и виды глубины. Чтобы кодировать видеоданные, видеокодер 20 может выполнять операцию кодирования для каждой последовательности изображений. В качестве части выполнения операции кодирования для последовательности изображений, видеокодер 20 может выполнять операции кодирования для каждого изображения в последовательности изображений. В качестве части выполнения операции кодирования для изображения, видеокодер 20 может выполнять операции кодирования для каждого слайса в изображении. Когда видеокодер 20 выполняет операцию кодирования для слайса, видеокодер 20 формирует кодированный слайс. Кодированный слайс является слайсом в кодированной форме. Кодированный слайс может включать в себя заголовок слайса и данные слайса. Заголовок слайса может содержать элементы синтаксиса, ассоциированные со слайсом.

[0101] В качестве части выполнения операции кодирования для слайса, видеокодер 20 может выполнять операции кодирования для древовидных блоков в слайсе. Когда видеокодер 20 выполняет операцию кодирования для древовидного блока, видеокодер 20 может формировать кодированный древовидный блок. Кодированный древовидный блок может содержать данные, представляющие закодированную версию древовидного блока. Другими словами, кодированный древовидный блок может быть древовидным блоком в кодированной форме. Технологии, хотя описаны выше относительно H.264/AVC, как описано ниже, также могут применяться относительно HEVC. В этом отношении, технологии не должны быть ограничены или H.264 или HEVC и могут применяться в контексте как H.264/AVC, так и HEVC.

[0102] В качестве части выполнения операции кодирования для древовидного блока, модуль 100 прогнозирования может выполнять сегментирование на дерево квадрантов для древовидного блока, чтобы разделять древовидный блок на постепенно меньшие CU. Например, модуль 100 прогнозирования может сегментировать древовидный блок на четыре суб-CU одинакового размера, сегментировать одну или более суб-CU на четыре субсуб-CU одинакового размера и т.д.

[0103] Размеры CU могут колебаться от 8х8 пикселов вплоть до размера древовидного блока максимум в 64х64 пикселов или более. В этом раскрытии сущности, ″N×N″ и ″N на N″ могут быть использованы взаимозаменяемо для того, чтобы означать размеры в пикселах видеоблока с точки зрения размеров по вертикали и горизонтали, например, 16×16 пикселов или 16 на 16 пикселов. В общем, блок 16×16 должен иметь 16 пикселов в вертикальном направлении (y=16) и 16 пикселов в горизонтальном направлении (x=16). Аналогично, блок N×N, в общем, имеет N пикселов в вертикальном направлении и N пикселов в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение.

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

[0105] Каждый узел структуры данных в виде дерева квадрантов может предоставлять синтаксические данные для соответствующей CU. Например, узел в дереве квадрантов может включать в себя флаг разбиения, указывающий то, секционируется или нет (т.е. разбивается или нет) CU, соответствующая узлу, на четыре суб-CU. Элементы синтаксиса для CU могут быть заданы рекурсивно и могут зависеть от того, разбивается или нет CU на суб-CU. CU, которая не сегментируется, может соответствовать концевому узлу в структуре данных в виде дерева квадрантов. Концевой узел в структуре данных в виде дерева квадрантов может упоминаться в качестве ″узла кодирования″. Кодированный древовидный блок может включать в себя данные на основе структуры данных в виде дерева квадрантов для соответствующего древовидного блока. Кодированный древовидный блок является древовидным блоком в кодированной форме. Кодированный древовидный блок соответствует древовидному блоку, когда кодированный древовидный блок является древовидным блоком в кодированной форме.

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

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

[0108] Чтобы выполнять внешнее прогнозирование для CU, модуль 122 оценки движения может сегментировать CU на одну или более единиц прогнозирования (PU). Видеокодер 20 и видеодекодер 30 могут поддерживать различные PU-размеры. При условии, что размер конкретной CU составляет 2N×2N, видеокодер 20 и видеодекодер 30 могут поддерживать PU-размеры 2N×2N или N×N и внешнее прогнозирование при симметричных PU-размерах 2N×2N, 2N×N, N×2N, N×N, 2N×nU, nL×2N, nR×2N или аналогичных. Видеокодер 20 и видеодекодер 30 также могут поддерживать асимметричное сегментирование для PU-размеров 2N×nU, 2N×nD, nL×2N и nR×2N. В некоторых примерах, модуль 122 оценки движения может сегментировать CU на PU вдоль границы, которая не соответствует сторонам CU под прямым углом.

[0109] Модуль 122 оценки движения может выполнять операцию оценки движения относительно каждой PU CU. Когда модуль 122 оценки движения выполняет операцию оценки движения относительно PU, модуль 122 оценки движения может формировать один или более векторов движения для PU. Например, слайсы могут быть I-слайсами, P-слайсами или B-слайсами. Модуль 122 оценки движения и модуль 124 компенсации движения могут выполнять различные операции для PU CU в зависимости от того, находится CU в I-слайсе, в P-слайсе или в B-слайсе. В I-слайсе все CU внутренне прогнозируются. Следовательно, если CU находится в I-слайсе, модуль 122 оценки движения и модуль 124 компенсации движения не выполняют внешнее прогнозирование для CU.

[0110] Если CU находится в P-слайсе, изображение, содержащее CU, ассоциировано со списком опорных изображений, называемым ″списком 0″. Каждое из опорных изображений в списке 0 содержит выборки, которые могут быть использованы для внешнего прогнозирования последующих изображений в порядке декодирования. Когда модуль 122 оценки движения выполняет операцию оценки движения относительно PU в P-слайсе, модуль 122 оценки движения выполняет поиск в опорных изображениях в списке 0 на предмет опорной выборки для PU. Опорная выборка PU может быть набором пиксельных значений, который наиболее близко соответствует пиксельным значениям PU. Модуль 122 оценки движения может использовать множество показателей, чтобы определять то, как близко набор пиксельных значений в опорном изображении соответствует пиксельным значениям PU. Например, модуль 122 оценки движения может определять то, как близко набор пиксельных значений в опорном изображении соответствует пиксельным значениям PU, посредством суммы абсолютных разностей (SAD), суммы квадратов разностей (SSD) или других разностных показателей.

[0111] После идентификации опорной выборки PU CU в P-слайсе модуль 122 оценки движения может формировать опорный индекс, который указывает опорное изображение в списке 0, содержащем опорную выборку и вектор движения, который указывает пространственное смещение между PU и опорной выборкой. В различных примерах, модуль 122 оценки движения может формировать векторы движения с различными степенями точности. Например, модуль 122 оценки движения может формировать векторы движения с точностью в одну четверть пиксела, точностью в одну восьмую пиксела или другой дробнопиксельной точностью. Модуль 122 оценки движения может выводить информацию движения для PU в модуль 56 энтропийного кодирования и модуль 124 компенсации движения. Информация движения для PU может включать в себя опорный индекс и вектор движения PU. Модуль 124 компенсации движения может использовать информацию движения PU CU, чтобы идентифицировать и извлекать опорные выборки PU. Модуль 124 компенсации движения затем может использовать пиксельные значения опорных выборок PU, чтобы формировать прогнозирующие данные для CU.

[0112] Если CU находится в B-слайсе, изображение, содержащее CU, может быть ассоциировано с двумя списками опорных изображений, называемыми ″списком 0″ и ″списком 1″. Каждое из опорных изображений в списке 0 содержит выборки, которые могут быть использованы для внешнего прогнозирования последующих изображений в порядке декодирования. Опорные изображения в списке 1 предусмотрены перед изображением в порядке декодирования, но после изображения в порядке представления. В некоторых примерах, изображение, содержащее B-слайс, может быть ассоциировано с комбинацией списков, которая представляет собой комбинацию списка 0 и списка 1.

[0113] Кроме того, если CU находится в B-слайсе, модуль 122 оценки движения может выполнять однонаправленное прогнозирование или двунаправленное прогнозирование для PU CU. Когда модуль 122 оценки движения выполняет однонаправленное прогнозирование для PU, модуль 122 оценки движения может выполнять поиск в опорных изображениях списка 1 на предмет опорной выборки для PU. Модуль 122 оценки движения затем может формировать опорный индекс, который указывает опорное изображение в списке 1, который содержит опорную выборку и вектор движения, который указывает пространственное смещение между PU и опорной выборкой. Модуль 122 оценки движения может выводить информацию движения для PU CU в модуль 56 энтропийного кодирования и модуль 124 компенсации движения. Информация движения для PU может включать в себя опорный индекс, индикатор направления прогнозирования и вектор движения PU. Индикатор направления прогнозирования может задавать, указывает опорный индекс опорное изображение в списке 0 или списке 1. Модуль 124 компенсации движения может использовать информацию движения PU CU, чтобы идентифицировать и извлекать опорные выборки PU. Модуль 124 компенсации движения затем может использовать пиксельные значения опорных выборок PU, чтобы формировать прогнозирующие данные для CU.

[0114] Когда модуль 122 оценки движения выполняет двунаправленное прогнозирование для PU, модуль 122 оценки движения может выполнять поиск в опорных изображениях в списке 0 на предмет опорной выборки для PU и также может выполнять поиск в опорных изображениях в списке 1 на предмет другой опорной выборки для PU. Модуль 122 оценки движения затем может формировать опорные индексы, которые задают опорные выборки и векторы движения, которые задают пространственные смещения между опорными выборками и PU. Модуль 122 оценки движения может выводить информацию движения PU в модуль 116 энтропийного кодирования и модуль 124 компенсации движения. Информация движения для PU может включать в себя опорные индексы и векторы движения PU. Модуль 124 компенсации движения может использовать информацию движения, чтобы идентифицировать и извлекать опорные выборки PU. Модуль 124 компенсации движения затем может интерполировать пиксельные значения прогнозирующих данных CU из пиксельных значений в опорных выборках PU CU.

[0115] В общем, модуль 100 прогнозирования может реализовывать технологии, описанные в этом раскрытии сущности, чтобы формировать вышеуказанный RPS и формировать элементы синтаксиса уровня SPS и/или слайса, идентифицирующие опорные изображения в RPS. Модуль 100 прогнозирования может представлять аппаратный или комбинированный программно-аппаратный модуль (который может быть включен в больший аппаратный или комбинированный программно-аппаратный модуль), который реализует технологии, подробнее описанные выше.

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

[0117] Чтобы выполнять внутреннее прогнозирование для CU, модуль 126 внутреннего прогнозирования может использовать несколько режимов внутреннего прогнозирования, чтобы формировать несколько наборов из прогнозирующих данных для CU. Когда модуль 126 внутреннего прогнозирования использует режим внутреннего прогнозирования, чтобы формировать набор прогнозирующих данных для CU, модуль 126 внутреннего прогнозирования может сегментировать CU на одну или более PU. Модуль 126 внутреннего прогнозирования затем может, для каждой из PU, расширять пиксельные значения от соседних PU через PU в направлении и/или градиенте, ассоциированном с режимом внутреннего прогнозирования. Соседние PU могут располагаться выше, выше и справа, выше и слева или слева от PU, при условии порядка кодирования слева направо, сверху вниз для PU, CU и древовидных блоков. Модуль 46 внутреннего прогнозирования может использовать различные числа режимов внутреннего прогнозирования, например, 33 режимов направленного внутреннего прогнозирования, в зависимости от размера CU.

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

[0119] Модуль 100 прогнозирования может выбирать прогнозирующие данные для CU из числа прогнозирующих данных, сформированных посредством модуля 124 компенсации движения для CU, или прогнозирующие данные, сформированные посредством модуля 126 внутреннего прогнозирования для CU. В некоторых примерах, модуль 100 прогнозирования выбирает прогнозирующие данные для CU на основе ошибки (т.е. искажения) в наборах прогнозирующих данных.

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

[0121] CU может иметь одну или более единиц преобразования (TU). Каждая TU CU может соответствовать различной части остаточных данных CU. Размеры TU CU могут быть основаны или не быть основаны на размерах PU CU. В некоторых примерах, CU может подразделяться на меньшие единицы с использованием структуры в виде дерева квадрантов, известной как ″остаточное дерево квадрантов″ (RQT). TU могут соответствовать концевым узлам RQT.

[0122] Модуль 104 преобразования может формировать один или более блоков коэффициентов для каждой TU CU посредством применения преобразования к остаточным данным, соответствующим TU. Каждый из блоков коэффициентов может представлять собой двумерную матрицу коэффициентов. В различных примерах, модуль 104 преобразования может применять различные преобразования к остаточным данным, соответствующим TU. Например, модуль преобразования может применять дискретное косинусное преобразование (DCT), направленное преобразование или концептуально аналогичное преобразование.

[0123] После того, как модуль 104 преобразования формирует блок коэффициентов для TU, модуль 106 квантования может квантовать коэффициенты в блоке коэффициентов. Квантование, в общем, означает процесс, в котором коэффициенты в блоке коэффициентов квантуются, чтобы, возможно, уменьшать объем данных, используемых для того, чтобы представлять коэффициенты, обеспечивая дополнительное сжатие. Квантование может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, n-битовое значение может быть округлено в меньшую сторону до m-битового значения в ходе квантования, при этом n больше m.

[0124] Модуль 108 обратного квантования и модуль 110 обратного преобразования могут применять обратное квантование и обратное преобразование к блоку коэффициентов, соответственно, чтобы восстанавливать остаточные данные из блока коэффициентов. Модуль 112 восстановления может суммировать восстановленные остаточные данные с прогнозирующими данными, сформированными посредством модуля 124 компенсации движения или модуля 126 внутреннего прогнозирования, чтобы формировать восстановленный видеоблок для хранения в буфере 114 декодированных изображений. Модуль 122 оценки движения и модуль 124 компенсации движения могут использовать опорное изображение, которое содержит восстановленный видеоблок, чтобы выполнять внешнее прогнозирование для CU последующих изображений. Помимо этого, модуль 126 внутреннего прогнозирования может использовать восстановленные пиксельные значения CU текущего изображения, чтобы выполнять внутреннее прогнозирование.

[0125] Модуль 116 энтропийного кодирования может принимать данные из других функциональных компонентов видеокодера 20. Например, модуль 116 энтропийного кодирования может блоки коэффициентов из модуля 106 квантования и может принимать элементы синтаксиса из модуля 100 прогнозирования. Когда модуль 116 энтропийного кодирования принимает данные, модуль 116 энтропийного кодирования может выполнять одну или более операций энтропийного кодирования, чтобы формировать энтропийно кодированные данные. Например, видеокодер 20 может выполнять операцию контекстно-адаптивного кодирования переменной длины (CAVLC), CABAC-операцию, операцию синтаксического контекстно-адаптивного двоичного арифметического кодирования (SBAC), операцию энтропийного кодирования на основе сегментирования на интервалы вероятности (PIPE) или другой тип операции энтропийного кодирования для данных.

[0126] Модуль 116 энтропийного кодирования выводит поток битов, который включает в себя последовательность NAL-единиц. Как пояснено выше, каждая из NAL-единиц может представлять собой синтаксическую структуру, содержащую индикатор относительно типа данных в NAL-единице и байты, содержащие данные. Каждая NAL-единица кодированного слайса в потоке битов содержит кодированный слайс. Кодированный слайс включает в себя заголовок кодированного слайса и данные слайса. Данные слайса могут включать в себя кодированные древовидные блоки. Кодированные древовидные блоки могут включать в себя одну или более кодированных CU. Каждая кодированная CU может включать в себя один или более энтропийно кодированных блоков коэффициентов. Модуль 116 энтропийного кодирования может выводить поток битов для декодирования в реальном времени или практически в реальном времени либо для хранения и последующего декодирования посредством декодера 30.

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

[0128] Модуль 122 оценки движения затем может определять число битов, которое должно быть использовано для того, чтобы представлять один или более LSB POC-значения, которое идентифицирует долговременное опорное изображение в потоке битов, представляющем закодированную версию видеоданных. Другими словами, модуль 122 оценки движения может определять ″v″ при двоичном кодировании без знака, обозначаемом как ″u(v)″, при этом ″u″ снова обозначает двоичное кодирование без знака. Зачастую, это число LSB задается на основе числа LSB, требуемых для того, чтобы разрешать неоднозначность LTRP относительно других LTRP или любого другого опорного изображения, сохраненного в DPB. Другими словами, это число может варьироваться на основе слайса, изображения или GOP. В некоторых случаях, число LSB может быть задано для всего потока битов или его частей. В некоторых случаях, число LSB, используемых для того, чтобы идентифицировать эту разность, статически или предварительно задано, к примеру, в HEVC-стандарте. В некоторых случаях, число LSB, используемых для того, чтобы идентифицировать LTRP, может извлекаться на основе элементов синтаксиса, определенных для текущего изображения и/или ранее закодированных изображений видеоданных, при этом модуль 122 оценки движения, возможно, после этого не должен передавать в служебных сигналах число битов, используемое для того, чтобы представлять этот POC LSB, при условии, что модуль 122 оценки движения может выполнять аналогичный процесс извлечения для того, чтобы извлекать число ″v″ битов, используемых для того, чтобы представлять POC LSB.

[0129] В любом случае, модуль 122 оценки движения затем может передавать эти один или более LSB POC-значения в модуль 116 энтропийного кодирования, который может задавать один или более LSB POC-значения, которое идентифицирует LTRP в потоке битов, с использованием определенного числа битов, используемого для того, чтобы представлять один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение. Другими словами, модуль 116 энтропийного кодирования может задавать POC LSB, отмеченные выше, в потоке битов с использованием числа ″v″ битов в качестве двоичного числа без знака. Типично, модуль 116 энтропийного кодирования указывает один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, в заголовке слайса, ассоциированном с по меньшей мере частью текущего изображения.

[0130] В некоторых случаях, модуль 122 оценки движения определяет число битов, которое должно быть использовано для того, чтобы представлять один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение в потоке битов, на основе элементов синтаксиса, ранее определенных для одного или более из текущего изображения и ранее закодированных изображений видеоданных, с тем чтобы не допускать задания в потоке битов определенного числа битов, которое должно быть использовано для того, чтобы представлять один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение. В некоторых случаях, к примеру, когда число ″v″ битов не извлекается из других элементов синтаксиса (зачастую в качестве выбора реализации), модуль 116 энтропийного кодирования также указывает определенное число битов, используемое для того, чтобы представлять один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение в потоке битов. Различные модули видеокодера 20, включающие в себя модуль 122 оценки движения, модуль 124 компенсации движения, сумматор 102, модуль 104 преобразования, модуль 106 квантования и модуль 116 энтропийного кодирования, затем могут кодировать, по меньшей мере, часть текущего изображения с использованием LTRP.

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

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

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

[0134] Модуль 122 оценки движения затем может перенаправлять эти младшие биты и старшие биты в модуль 116 энтропийного кодирования. Модуль 116 энтропийного кодирования может задавать и определенный один или более младших битов и определенный один или более старших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое должно быть использовано при кодировании, по меньшей мере, части текущего изображения в потоке битов, представляющем закодированную версию видеоданных. Различные модули видеокодера 20, включающие в себя модуль 122 оценки движения, модуль 124 компенсации движения, сумматор 102, модуль 104 преобразования, модуль 106 квантования и модуль 116 энтропийного кодирования, затем могут кодировать, по меньшей мере, часть текущего изображения с использованием LTRP.

[0135] Другими словами, вместо определения только того, что POC LSB, которые идентифицируют долговременное опорное изображение, являются достаточными для того, чтобы уникально идентифицировать долговременное опорное изображение из любого другого долговременного опорного изображения, задаваемого в SPS, PPS и/или заголовке слайса, модуль 122 оценки движения может определять то, что POC LSB, которые идентифицируют долговременное опорное изображение, являются достаточными для того, чтобы уникально идентифицировать долговременное опорное изображение из любого другого долговременного опорного изображения, сохраненного в буфере 114 декодированных изображений. В этом отношении, видеокодер 20 может не допускать этих случаев, которые приводят к проблемам, отмеченным выше, когда видеодекодер неспособен корректно идентифицировать долговременное опорное изображение посредством передаваемых в служебных сигналах POC LSB, когда два или более долговременных опорных изображения, имеющие идентичные POC LSB, сохраняются в DPB, но только одно из этих долговременных опорных изображений указано в SPS, PPS и/или заголовке слайса. Как результат, посредством реализации этих технологий, видеокодер 20 может более надежно кодировать видеоданные по сравнению с традиционными видеокодерами, которые только идентифицируют, когда более надежно кодировать передаваемое в служебных сигналах долговременное опорное изображение относительно этих долговременных опорных изображений, передаваемых в служебных сигналах в SPS, PPS и/или заголовке слайса.

[0136] Фиг. 3 является блок-схемой, которая иллюстрирует примерную конфигурацию видеодекодера 30. Фиг. 3 предоставляется для целей пояснения и не является ограничением на технологии, широко проиллюстрированные и описанные в этом раскрытии сущности. Для целей пояснения, это раскрытие сущности описывает видеодекодер 30 в контексте HEVC-кодирования. Тем не менее, технологии этого раскрытия сущности могут быть применимыми к другим стандартам или способам кодирования.

[0137] В примере по фиг. 3, видеодекодер 30 включает в себя множество функциональных компонентов. Функциональные компоненты видеодекодера 30 включают в себя модуль 150 энтропийного декодирования, модуль 152 прогнозирования, модуль 154 обратного квантования, модуль 156 обратного преобразования, модуль 158 восстановления и буфер 160 декодированных изображений. Модуль 152 прогнозирования включает в себя модуль 162 компенсации движения и модуль 164 внутреннего прогнозирования. В некоторых примерах, видеодекодер 30 может выполнять проход декодирования, в общем, взаимно-обратный по отношению к проходу кодирования, описанному относительно видеокодера 20 по фиг. 2. В других примерах, видеодекодер 30 может включать в себя большее, меньшее число или другие функциональные компоненты. Например, видеодекодер 30 может включать в себя фильтр удаления блочности, чтобы фильтровать вывод модуля 158 восстановления, чтобы удалять артефакты блочности из восстановленного видео.

[0138] Видеодекодер 30 может принимать поток битов, который содержит кодированные видеоданные. Когда видеодекодер 30 принимает поток битов, модуль 150 энтропийного декодирования выполняет операцию синтаксического анализа для потока битов. В результате выполнения операции синтаксического анализа для потока битов, модуль 150 энтропийного декодирования может формировать энтропийно декодированные элементы синтаксиса. Энтропийно декодированные элементы синтаксиса могут включать в себя энтропийно декодированные блоки коэффициентов. Модуль 152 прогнозирования, модуль 154 обратного квантования, модуль 156 обратного преобразования и модуль 158 восстановления могут выполнять операцию декодирования, которая использует элементы синтаксиса, чтобы формировать декодированные видеоданные.

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

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

[0141] Помимо этого, NAL-единицы потока битов могут включать в себя NAL-единицы кодированных слайсов. В качестве части выполнения операции синтаксического анализа для потока битов, модуль 150 энтропийного декодирования может выполнять операции синтаксического анализа, которые извлекают и энтропийно декодируют кодированные слайсы из NAL-единиц кодированных слайсов. Каждый из кодированных слайсов может включать в себя заголовок слайса и данные слайса. Заголовок слайса может содержать элементы синтаксиса, связанные со слайсом. Элементы синтаксиса в заголовке слайса могут включать в себя элемент синтаксиса, который идентифицирует набор параметров изображения, ассоциированный с изображением, которое содержит слайс. Модуль 150 энтропийного декодирования может выполнять операцию энтропийного декодирования, к примеру, операцию CAVLC-декодирования, для заголовка кодированного слайса, чтобы восстанавливать заголовок слайса.

[0142] После извлечения данных слайса из NAL-единиц кодированных слайсов модуль 150 энтропийного декодирования может извлекать кодированные древовидные блоки из данных слайса. Модуль 150 энтропийного декодирования затем может извлекать кодированные CU из кодированных древовидных блоков. Модуль 150 энтропийного декодирования может выполнять операции синтаксического анализа, которые извлекают элементы синтаксиса из кодированных CU. Извлеченные элементы синтаксиса могут включать в себя энтропийно кодированные блоки коэффициентов. Модуль 150 энтропийного декодирования затем может выполнять операции энтропийного декодирования для элементов синтаксиса. Например, модуль 150 энтропийного декодирования может выполнять CABAC-операции для блоков коэффициентов.

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

После того, как модуль 150 энтропийного декодирования выполняет операцию синтаксического анализа для несегментированной CU, видеодекодер 30 может выполнять операцию декодирования для несегментированной CU. Чтобы выполнять операцию декодирования для несегментированной CU, видеодекодер 30, на каждом уровне остаточного дерева квадрантов CU, может выполнять операцию декодирования для каждой TU CU. Посредством выполнения операции декодирования для каждой TU CU видеодекодер 30 может восстанавливать остаточные данные CU.

[0144] В качестве части выполнения операции декодирования для несегментированной TU, модуль 154 обратного квантования может обратно квантовать, т.е. деквантовать, блоки коэффициентов, ассоциированные с TU. Модуль 154 обратного квантования может обратно квантовать блоки коэффициентов способом, аналогичным процессам обратного квантования, предложенным для HEVC или заданным посредством стандарта декодирования H.264. Модуль 154 обратного квантования может использовать параметр QPY квантования, вычисленный посредством видеокодера 20 для CU блока коэффициентов, чтобы определять степень квантования и, аналогично, степень обратного квантования для применения посредством модуля 154 обратного квантования.

[0145] После того, как модуль 154 обратного квантования обратно квантует блок коэффициентов, модуль 156 обратного преобразования может формировать остаточные данные для TU, ассоциированной с блоком коэффициентов. Модуль 156 обратного преобразования может формировать остаточные данные для TU, по меньшей мере, частично посредством применения обратного преобразования к блоку коэффициентов. Например, модуль 156 обратного преобразования может применять обратное DCT, обратное целочисленное преобразование, обратное преобразование Карунена-Лоэва (KLT), обратное вращательное преобразование, обратное направленное преобразование или другое обратное преобразование к блоку коэффициентов. В некоторых примерах, модуль 156 обратного преобразования может определять обратное преобразование, которое должно применяться к блоку коэффициентов, на основе передачи служебных сигналов из видеокодера 20. В таких примерах, модуль 156 обратного преобразования может определять обратное преобразование на основе передаваемого в служебных сигналах преобразования в корневом узле дерева квадрантов для древовидного блока, ассоциированного с блоком коэффициентов. В других примерах, модуль 156 обратного преобразования может логически выводить обратное преобразование из одной или более характеристик кодирования, таких как размер блока, режим кодирования и т.п. В некоторых примерах, модуль 156 обратного преобразования может применять каскадное обратное преобразование.

[0146] Если CU кодирована с использованием внешнего прогнозирования, модуль 162 компенсации движения может выполнять компенсацию движения, чтобы формировать прогнозирующие данные для CU. Модуль 162 компенсации движения может использовать информацию движения для PU CU, чтобы идентифицировать опорные выборки для PU. Информация движения для PU может включать в себя вектор движения, индекс опорного изображения и направление прогнозирования. Модуль 162 компенсации движения затем может использовать опорные выборки для PU, чтобы формировать прогнозирующие данные для CU.

[0147] В некоторых примерах, модуль 162 компенсации движения может уточнять прогнозирующие данные для CU посредством выполнения интерполяции на основе интерполяционных фильтров. Идентификаторы для интерполяционных фильтров, которые должны использоваться для компенсации движения с субпиксельной точностью, могут быть включены в элементы синтаксиса. Модуль 162 компенсации движения может использовать идентичные интерполяционные фильтры, используемые посредством видеокодера 20 во время формирования прогнозирующих данных CU, чтобы вычислять интерполированные значения для субцелочисленных пикселов опорного блока. Модуль 162 компенсации движения может определять интерполяционные фильтры, используемые посредством видеокодера 20 согласно принимаемой синтаксической информации, и использовать интерполяционные фильтры, чтобы формировать прогнозирующие данные.

[0148] Если CU кодируется с использованием внутреннего прогнозирования, модуль 164 внутреннего прогнозирования может выполнять внутреннее прогнозирование, чтобы формировать прогнозирующие данные для CU. Например, модуль 164 внутреннего прогнозирования может определять режим внутреннего прогнозирования для CU на основе элементов синтаксиса в потоке битов. Модуль 164 внутреннего прогнозирования затем может использовать режим внутреннего прогнозирования, чтобы формировать прогнозирующие данные (например, прогнозные пиксельные значения) для CU на основе пиксельных значений соседних CU.

[0149] Модуль 158 восстановления может использовать остаточные данные CU и прогнозирующие данные для CU, чтобы восстанавливать пиксельные значения для CU. В некоторых примерах, видеодекодер 30 может применять фильтр удаления блочности, чтобы удалять артефакты блочности из фильтра восстановленных пиксельных значений слайса или изображения. Буфер 160 декодированных изображений может сохранять декодированные пиксельные значения для изображений видеоданных. Буфер 160 декодированных изображений может предоставлять опорные изображения для последующей компенсации движения, внутреннего прогнозирования и представления на устройстве отображения, таком как устройство 32 отображения по фиг. 1.

[0150] Как описано выше, видеодекодер 30 может реализовывать или сконфигурирован с возможностью осуществлять первый аспект технологий, описанных выше. Модуль 150 энтропийного декодирования видеодекодера 30 может принимать поток битов, представляющий кодированные видеоданные, кодированные в соответствии с первым аспектом технологий, описанных в этом раскрытии сущности. Модуль 150 энтропийного декодирования может сначала определять, для части текущего изображения закодированных видеоданных, число битов, используемое для того, чтобы задавать один или более LSB POC-значения, которое идентифицирует LTRP для использования при декодировании текущего изображения. В некоторых примерах, число битов может быть явно передано в служебных сигналах в потоке битов в качестве элемента синтаксиса, например, в заголовке слайса, как описано выше. В других примерах, модуль 150 энтропийного декодирования может извлекать число битов в качестве функции от других элементов синтаксиса, указываемых в любом одном или более из SPS, набора параметров изображения (PPS) и заголовка слайса.

[0151] Модуль 150 энтропийного декодирования затем может синтаксически анализировать определенное число битов из потока битов, при этом синтаксически проанализированное определенное число битов представляет один или более LSB POC, который идентифицирует LTRP. Зачастую, значение счета порядка изображений, которое идентифицирует долговременное опорное изображение, является значением счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое присутствует в буфере 160 декодированных изображений, но которое не задается в качестве одного или более долговременных опорных изображений в наборе параметров последовательности, ассоциированном с текущим изображением. Определенное число битов может задавать то, что упоминается в качестве POC LSB выше. Модуль 150 энтропийного декодирования может передавать LSB POC-значения в модуль 162 компенсации движения. Модуль 162 компенсации движения затем может извлекать из буфера 160 декодированных изображений LTRP, которое должно быть использовано при декодировании, по меньшей мере, части текущего изображения, на основе POC LSB.

[0152] Чтобы извлекать это LTRP из буфера декодированных изображений, модуль 162 компенсации движения может сравнивать младшие биты POC-значения, которое идентифицирует LTRP, с идентичным числом младших битов POC-значения, ассоциированного с по меньшей мере одним изображением, сохраненным в буфере 160 декодированных изображений. Модуль 162 компенсации движения извлекает одно, по меньшей мере, из одного изображения, сохраненного в буфере 160 декодированных изображений для использования в качестве долговременного опорного изображения при декодировании текущего изображения, которое имеет идентичные LSB для POC-значения, ассоциированного с одним, по меньшей мере, из одного изображения, сохраненного в буфере 160 декодированных изображений в качестве определенных младших битов LTRP, которое должно быть использовано для того, чтобы декодировать текущее изображение. Другими словами, модуль 162 компенсации движения может сопоставлять POC LSB с младшими битами POC-значений для изображений, сохраненных в буфер 160 декодированных изображений, и идентифицировать изображение с совпадающими POC LSB в качестве долговременного опорного изображения, которое присутствует в буфере 160 декодированных изображений, но не задается в SPS, ассоциированном с текущим изображением.

[0153] Модуль 162 компенсации движения затем может использовать долговременное опорное изображение, идентифицированное посредством извлеченного значения счета порядка изображений, чтобы декодировать часть текущего изображения. Другими словами, один или более векторов движения, указываемых для единицы кодирования текущего слайса текущего изображения, могут ссылаться на LTRP, идентифицированное посредством POC LSB. Модуль 162 компенсации движения может извлекать различные блоки LTRP, идентифицированного посредством этих векторов движения, с использованием этих различных блоков в качестве опорных блоков при выполнении компенсации движения. Видеодекодер 30 может суммировать остаточные данные, кодированные для блоков текущего слайса текущего изображения, с этими опорными блоками, чтобы формировать декодированные блоки видеоданных и за счет этого восстанавливать видеоданные источника, как описано выше. Видеодекодер 30 может сохранять декодированные блоки видеоданных в буфере 160 декодированных изображений для последующего использования при декодировании последующих изображений. Видеодекодер затем может декодировать другие слайсы, если таковые имеются, текущего изображения, аналогично тому, как описано выше.

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

[0155] В этом отношении, даже когда дельта-POC LSB являются уникальными для данного поднабора изображений, сохраненных в буфер 160 декодированных изображений, модуль 150 энтропийного декодирования может определять старшие биты значения счета порядка изображений, которое идентифицирует долговременное опорное изображение. Старшие биты в комбинации с определенными младшими битами являются потенциально достаточными для того, чтобы отличать значение счета порядка изображений, которое идентифицирует долговременное опорное изображение, от любого другого значения счета порядка изображений, которое идентифицирует любое другое изображение в буфере 160 декодированных изображений. Модуль 150 энтропийного декодирования может передавать младшие биты и старшие биты в модуль 162 компенсации движения. Модуль 162 компенсации движения затем может извлекать долговременное опорное изображение из буфера 160 декодированных изображений на основе определенных младших битов значения счета порядка изображений и определенных старших битов значения счета порядка изображений. Модуль 162 компенсации движения (в сочетании с одним или более модулей 154, 156 и 158) затем может использовать долговременное опорное изображение, идентифицированное посредством определенного значения счета порядка изображений, чтобы декодировать часть текущего изображения способом, аналогичным способу, описанному выше.

[0156] Фиг. 4 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу видеокодера при выполнении первого аспекта технологий, описанных в этом раскрытии сущности. В качестве одного примера, видеокодер 20, показанный в примере по фиг. 2, может кодировать видеоданные в соответствии с первыми аспектами технологий этого раскрытия сущности. Чтобы кодировать видеоданные в соответствии с первым аспектом технологий, модуль 122 оценки движения видеокодера 20 может определять, для текущего изображения видеоданных, долговременное опорное изображение, которое должно быть использовано при выполнении внешнего прогнозирования для текущего изображения видеоданных способом, описанным выше (170). В некоторых случаях, это долговременное опорное изображение представляет собой долговременное опорное изображение, которое присутствует в буфере 114 декодированных изображений, но которое не задается в качестве одного или более долговременных опорных изображений в наборе параметров последовательности, ассоциированном с текущим изображением.

[0157] Модуль 122 оценки движения может идентифицировать это выбранное долговременное опорное изображение посредством вышеописанного значения счета порядка изображений. Модуль 122 оценки движения может осуществлять доступ к набору параметров последовательности, чтобы определять то, присутствует или нет значение счета порядка изображений, которое идентифицирует выбранное долговременное опорное изображение, в наборе параметров последовательности, который, как отмечено выше, может обозначаться как ″SPS″ (172). Другими словами, модуль 122 оценки движения может определять то, передает или нет этот SPS уже в служебных сигналах это долговременное опорное изображение, посредством определения того, включает или нет SPS в себя, в качестве одного примера, значение счета порядка изображений, которое идентифицирует это выбранное долговременное опорное изображение. Когда SPS включает в себя значение счета порядка изображений (″Да″, 172), модуль 122 оценки движения определяет индекс этого долговременного опорного изображения, идентифицированного посредством значения счета порядка изображений, в качестве одного примера, в списке значений счета порядка изображений, которые передаются в служебных сигналах в SPS для использования при кодировании текущего изображения (и возможно других изображений) (174). Модуль 122 оценки движения затем может передавать этот индекс в модуль 116 энтропийного кодирования. Модуль 116 энтропийного кодирования затем может задавать этот индекс долговременного опорного изображения в потоке битов, представляющем закодированную версию видеоданных (176).

[0158] Тем не менее, если значение счета порядка изображений, которое идентифицирует выбранное долговременное опорное изображение, не задается в SPS (″Нет″, 172), модуль 122 оценки движения затем может определять число битов, которое должно быть использовано для того, чтобы представлять один или более LSB POC-значения, которое идентифицирует долговременное опорное изображение, как описано выше (178). Модуль 122 оценки движения затем может передавать эти один или более LSB POC-значения в модуль 116 энтропийного кодирования. Модуль 116 энтропийного кодирования может задавать один или более LSB POC-значения, которое идентифицирует LTRP в потоке битов с использованием определенного числа битов, используемого для того, чтобы представлять один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение (180).

[0159] Видеокодер 20 затем может использовать долговременное опорное изображение, идентифицированное посредством значения счета порядка изображений, чтобы кодировать часть текущего изображения. Другими словами, модуль 124 компенсации движения также может быть сконфигурирован с возможностью определять прогнозированный блок посредством выполнения внешнего прогнозирования с использованием долговременного опорного изображения способом, описанным выше (182). Модуль 124 компенсации движения затем определяет остаточный видеоблок на основе прогнозированного блока (184). Иными словами, модуль 124 компенсации движения затем определяет остаточный видеоблок посредством вычитания пиксельных значений прогнозированного блока из пиксельных значений текущего кодируемого видеоблока, формируя остаточные данные в качестве значений пиксельных разностей. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания.

[0160] Модуль 104 преобразования затем преобразует остаточный блок, чтобы определять коэффициенты преобразования, с использованием преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование (186). Модуль 104 преобразования может преобразовывать остаточные видеоданные из пиксельной (пространственной) области в область преобразования, к примеру, в частотную область. Модуль 104 преобразования может отправлять результирующие коэффициенты преобразования в блок 54 квантования. Модуль 106 квантования квантует коэффициенты преобразования, чтобы дополнительно уменьшать скорость передачи битов (188). Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. После квантования модуль 116 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования (190), вставляя энтропийно квантованные коэффициенты преобразования в поток битов, ассоциированный с индексом и/или младшими битами значения счета порядка изображений (которые обычно задаются в заголовке слайса, ассоциированном с кодированным блоком видеоданных).

[0161] Фиг. 5 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу видеодекодера при выполнении первого аспекта технологий, описанных в этом раскрытии сущности. В качестве одного примера, видеодекодер 30 реализует или сконфигурирован с возможностью осуществлять первый аспект технологий, описанных выше. Модуль 150 энтропийного декодирования может энтропийно декодировать поток битов, представляющий кодированные видеоданные, чтобы определять квантованные коэффициенты преобразования, соответствующие блоку (который может представлять часть) кодированных видеоданных (200). Модуль 150 энтропийного декодирования затем может передавать их квантованный коэффициент преобразования в модуль 154 обратного квантования. Модуль 154 обратного квантования может выполнять обратное квантование относительно квантованных коэффициентов преобразования, чтобы определять коэффициенты преобразования (202). Модуль 156 обратного преобразования затем может выполнять обратное преобразование относительно коэффициентов преобразования, чтобы формировать остаточные данные для текущего изображения (204).

[0162] Модуль 150 энтропийного декодирования также может синтаксически анализировать поток битов для того, чтобы определять, для блока текущего изображения, долговременное опорное изображение, используемое при выполнении внешнего прогнозирования для блока текущего изображения (206). Модуль 150 энтропийного декодирования может определять то, долговременное опорное изображение уже передано в служебных сигналах или нет в SPS, ассоциированном с текущим изображением (208). Если это долговременное опорное изображение уже передано в служебных сигналах в SPS (″Да″, 208), модуль 150 энтропийного декодирования может определять индекс этого долговременного опорного изображения, как указано в списке долговременных опорных изображений в SPS (210). Модуль 150 энтропийного декодирования затем может определять значение счета порядка изображений (POC), которое идентифицирует долговременное опорное изображение из SPS, на основе индекса (212).

[0163] Тем не менее, если долговременное опорное изображение не задается в SPS (″Нет″, 208), модуль 150 энтропийного декодирования определяет число битов, используемое для того, чтобы передавать в служебных сигналах один или более LSB POC-значения, которое идентифицирует долговременное опорное изображение для использования при декодировании текущего изображения (214). В некоторых примерах, число битов может быть явно передано в служебных сигналах в потоке битов в качестве элемента синтаксиса, например, в заголовке слайса, как описано выше. В других примерах, модуль 150 энтропийного декодирования может извлекать число битов в качестве функции от других элементов синтаксиса, указываемых в любом одном или более из SPS, набора параметров изображения (PPS) и заголовка слайса.

[0164] Модуль 150 энтропийного декодирования затем может синтаксически анализировать определенное число битов из потока битов, при этом синтаксически проанализированное определенное число битов представляет один или более LSB POC, который идентифицирует LTRP в качестве двоичного числа без знака (216). Зачастую, значение счета порядка изображений, которое идентифицирует долговременное опорное изображение, является значением счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое присутствует в буфере 160 декодированных изображений, но которое не задается в качестве одного или более долговременных опорных изображений в наборе параметров последовательности, ассоциированном с текущим изображением. С другой стороны, определенное число битов может задавать то, что упоминается в качестве POC LSB выше. Модуль 150 энтропийного декодирования может передавать LSB POC-значения в модуль 162 компенсации движения. Модуль 162 компенсации движения затем может извлекать из буфера 160 декодированных изображений LTRP, которое должно быть использовано при декодировании, по меньшей мере, части текущего изображения, на основе POC LSB способом, описанным выше (218).

[0165] Модуль 162 компенсации движения извлекает одно, по меньшей мере, из одного изображения, сохраненного в буфере 160 декодированных изображений для использования в качестве долговременного опорного изображения при декодировании текущего изображения, которое имеет идентичные LSB для POC-значения, ассоциированного с одним, по меньшей мере, из одного изображения, сохраненного в буфере 160 декодированных изображений в качестве определенных младших битов LTRP, которое должно быть использовано для того, чтобы декодировать текущее изображение. Другими словами, модуль 162 компенсации движения может сопоставлять POC LSB с младшими битами POC-значений для изображений, сохраненных в буфер 160 декодированных изображений, и идентифицировать изображение с совпадающими POC LSB в качестве долговременного опорного изображения, которое присутствует в буфере 160 декодированных изображений, но не задается в SPS, ассоциированном с текущим изображением.

[0166] Модуль 162 компенсации движения затем может использовать долговременное опорное изображение, идентифицированное посредством извлеченного значения счета порядка изображений, чтобы декодировать часть текущего изображения. Другими словами, один или более векторов движения, указываемых для единицы кодирования текущего слайса текущего изображения, могут ссылаться на LTRP, идентифицированное посредством POC LSB. Модуль 162 компенсации движения может извлекать различные блоки LTRP, идентифицированного посредством этих векторов движения, с использованием этих различных блоков в качестве опорных блоков при выполнении компенсации движения. Видеодекодер 30 может суммировать остаточные данные, кодированные для блоков текущего слайса текущего изображения, с этими опорными блоками, чтобы формировать декодированные блоки видеоданных и за счет этого восстанавливать видеоданные источника, как описано выше. В этом смысле, видеодекодер 30 может восстанавливать блок текущего изображения на основе долговременного опорного изображения и остаточных данных (220). Видеодекодер 30 может сохранять декодированные блоки видеоданных в буфере 160 декодированных изображений для последующего использования при декодировании последующих изображений. Видеодекодер затем может декодировать другие слайсы, если таковые имеются, текущего изображения, аналогично тому, как описано выше.

[0167] Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу видеокодера при выполнении второго аспекта технологий, описанных в этом раскрытии сущности. В качестве одного примера, видеокодер 20 сконфигурирован с возможностью реализовывать вторые аспекты технологий, описанных в этом раскрытии сущности, потенциально в сочетании с первым аспектом технологий. В соответствии со вторыми аспектами технологий, модуль 122 оценки движения видеокодера 20 может определять, для текущего изображения видеоданных, долговременное опорное изображение, которое следует использовать при выполнении внешнего прогнозирования для текущего изображения (230). Модуль 122 оценки движения может определять один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение (232). Модуль 122 оценки движения затем может определять то, являются или нет эти младшие биты достаточными для того, чтобы однозначно идентифицировать долговременное опорное изображение из любого другого опорного изображения, сохраненного в буфере 114 декодированных изображений, в который также сохраняется долговременное опорное изображение (или должно быть сохранено в зависимости от порядка, в котором долговременное опорное изображение сохраняется по сравнению с тем, когда выполняется это определение), способом, описанным выше.

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

[0169] Другими словами, модуль 122 оценки движения может сравнивать определенные младшие биты с младшими битами каждого из значений счета порядка изображений, которые идентифицируют каждое другое изображение, сохраненное в буфер 114 декодированных изображений (234). Когда один или более младших битов любых других значений счета порядка изображений, которые идентифицируют любое другое изображение, сохраненное в буфер 114 декодированных изображений, в который также сохраняется долговременное опорное изображение, являются идентичным определенному одному или более младшим битам значения счета порядка изображений, которое идентифицирует долговременное опорное изображение (″Да″, 236), модуль 122 оценки движения может определять один или более старших битов определенного значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое должно быть использовано при кодировании, по меньшей мере, части текущего изображения способом, описанным выше (238).

[0170] Модуль 122 оценки движения затем может перенаправлять эти младшие биты и старшие биты в модуль 116 энтропийного кодирования. Модуль 116 энтропийного кодирования может задавать старшие биты значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое должно быть использовано при кодировании, по меньшей мере, части текущего изображения в потоке битов, представляющем закодированную версию видеоданных (240). Модуль 116 энтропийного кодирования также может задавать определенный один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое должно быть использовано при кодировании, по меньшей мере, части текущего изображения в потоке битов (242).

[0171] Тем не менее, когда один или более младших битов из любых других значений счета порядка изображений, которые идентифицируют любое другое изображение, сохраненное в буфер 114 декодированных изображений, в который также сохраняется долговременное опорное изображение, не являются идентичным определенному одному или более младшим битам значения счета порядка изображений, которое идентифицирует долговременное опорное изображение (″Нет″, 236), модуль 122 оценки движения может перенаправлять только определенные младшие биты значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, без определения в ином случае старших битов, поскольку младшие биты уникально идентифицируют долговременное опорное изображение относительно этих изображений, сохраненных в буфер 114 декодированных изображений. Модуль 122 энтропийного кодирования затем может задавать определенный один или более младших битов значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое должно быть использовано при кодировании, по меньшей мере, части текущего изображения в потоке битов, без повторного задания старших битов, поскольку младшие биты уникально идентифицируют долговременное опорное изображение относительно этих изображений, сохраненных в буфер 114 декодированных изображений (242).

[0172] Видеокодер 20 затем может использовать долговременное опорное изображение, идентифицированное посредством значения счета порядка изображений, чтобы кодировать часть текущего изображения. Другими словами, модуль 124 компенсации движения также может быть сконфигурирован с возможностью определять прогнозированный блок посредством выполнения внешнего прогнозирования с использованием долговременного опорного изображения способом, описанным выше (244). Модуль 124 компенсации движения затем определяет остаточный видеоблок на основе прогнозированного блока (246). Иными словами, модуль 124 компенсации движения затем определяет остаточный видеоблок посредством вычитания пиксельных значений прогнозированного блока из пиксельных значений текущего кодируемого видеоблока, формируя остаточные данные в качестве значений пиксельных разностей. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания.

[0173] Модуль 104 преобразования затем преобразует остаточный блок, чтобы определять коэффициенты преобразования, с использованием преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование (248). Модуль 104 преобразования может преобразовывать остаточные видеоданные из пиксельной (пространственной) области в область преобразования, к примеру, в частотную область. Модуль 104 преобразования может отправлять результирующие коэффициенты преобразования в блок 54 квантования. Модуль 106 квантования квантует коэффициенты преобразования, чтобы дополнительно уменьшать скорость передачи битов (250). Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. После квантования модуль 116 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования (252), вставляя энтропийно квантованные коэффициенты преобразования в поток битов, ассоциированный с индексом и/или младшими битами значения счета порядка изображений (которые обычно задаются в заголовке слайса, ассоциированном с кодированным блоком видеоданных).

[0174] Фиг. 7 является блок-схемой последовательности операций способа, иллюстрирующей примерную работу видеодекодера при выполнении второго аспекта технологий, описанных в этом раскрытии сущности. В качестве одного примера, видеодекодер 30 может реализовывать вторые аспекты технологий, описанных в этом раскрытии сущности, потенциально в сочетании с первым аспектом технологий, описанных в этом раскрытии сущности. Модуль 150 энтропийного декодирования может энтропийно декодировать поток битов, представляющий кодированные видеоданные, чтобы определять квантованные коэффициенты преобразования, соответствующие блоку (который может представлять часть) кодированных видеоданных (260). Модуль 150 энтропийного декодирования затем может передавать их квантованный коэффициент преобразования в модуль 154 обратного квантования. Модуль 154 обратного квантования может выполнять обратное квантование относительно квантованных коэффициентов преобразования, чтобы определять коэффициенты преобразования (262). Модуль 156 обратного преобразования затем может выполнять обратное преобразование относительно коэффициентов преобразования, чтобы формировать остаточные данные для текущего изображения (264).

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

[0176] Если эти старшие биты присутствуют (″Да″, 268), модуль 150 энтропийного декодирования может энтропийно декодировать поток битов для того, чтобы определять старшие биты значения счета порядка изображений, которое идентифицирует долговременное опорное изображение, которое должно быть использовано при выполнении внешнего прогнозирования для текущего изображения (270). Модуль 150 энтропийного декодирования может передавать младшие биты и старшие биты в модуль 162 компенсации движения. Модуль 162 компенсации движения затем может извлекать долговременное опорное изображение из буфера 160 декодированных изображений на основе определенных младших битов значения счета порядка изображений и определенных старших битов значения счета порядка изображений (272). Если эти старшие биты не присутствуют (″Нет″, 268), модуль 150 энтропийного декодирования может передавать младшие биты в модуль 162 компенсации движения. Модуль 162 компенсации движения затем может извлекать долговременное опорное изображение из буфера 160 декодированных изображений на основе определенных младших битов значения счета порядка изображений (274).

[0177] После извлечения этого долговременного опорного изображения модуль 162 компенсации движения (в сочетании с одним или более модулей 154, 156 и 158) затем может использовать долговременное опорное изображение, идентифицированное посредством определенного значения счета порядка изображений, чтобы декодировать часть текущего изображения способом, аналогичным способу, описанному выше. Другими словами, один или более векторов движения, указываемых для единицы кодирования текущего слайса текущего изображения, могут ссылаться на LTRP, идентифицированное посредством POC LSB. Модуль 162 компенсации движения может извлекать различные блоки LTRP, идентифицированного посредством этих векторов движения, с использованием этих различных блоков в качестве опорных блоков при выполнении компенсации движения. Видеодекодер 30 может суммировать остаточные данные, кодированные для блоков текущего слайса текущего изображения, с этими опорными блоками, чтобы формировать декодированные блоки видеоданных и за счет этого восстанавливать видеоданные источника, как описано выше. В этом смысле, видеодекодер 30 может восстанавливать блок текущего изображения на основе долговременного опорного изображения и остаточных данных (276). Видеодекодер 30 может сохранять декодированные блоки видеоданных в буфере 160 декодированных изображений для последующего использования при декодировании последующих изображений. Видеодекодер затем может декодировать другие слайсы, если таковые имеются, текущего изображения, аналогично тому, как описано выше.

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

[0179] Помимо этого, описываются различные другие технологии, которые связаны с первыми и вторыми аспектами технологий и в некоторой степени описаны ниже. Как отмечено выше, последняя версия HEVC WD6 использует механизм на основе наборов опорных изображений (RPS), чтобы управлять опорными изображениями. RPS означает набор опорных изображений, ассоциированных с изображением, состоящий из всех опорных изображений, которые находятся до ассоциированного изображения в порядке декодирования, который может быть использован для внешнего прогнозирования ассоциированного изображения или любого изображения после ассоциированного изображения в порядке декодирования. Порядок декодирования может означать порядок, в котором элементы синтаксиса обрабатываются посредством процесса декодирования.

[0180] В HEVC, RPS для каждого кодированного изображения может быть непосредственно передан в служебных сигналах. Элементы синтаксиса для передачи в служебных сигналах RPS включаются как в набор параметров последовательности (SPS), так и в заголовок слайса, ассоциированный с каждым кодированным изображением. Для конкретного кодированного изображения, RPS может быть одним из альтернативных наборов, включенных в SPS, как указано посредством флага в заголовке слайса, или непосредственно передаваемых в служебных сигналах в заголовке слайса.

[0181] RPS для каждого изображения состоит из пяти различных списков опорных изображений, которые также могут означать пять RPS-поднаборов. Первый RPS-поднабор может ссылаться на RefPicSetStCurrBefore, который включает в себя все кратковременные опорные изображения (STRP), которые находятся до текущего изображения как в порядке декодирования, так и в порядке вывода, и которые могут быть использованы при внешнем прогнозировании текущего изображения. Второй RPS-поднабор может ссылаться на RefPicSetStCurrAfter, который включает в себя все кратковременные опорные изображения, которые находятся до текущего изображения в порядке декодирования, которые находятся после текущего изображения в порядке вывода, и которые могут быть использованы при внешнем прогнозировании текущего изображения. Третий RPS-поднабор может ссылаться на RefPicSetStFoll, который включает в себя все кратковременные опорные изображения, которые могут быть использованы при внешнем прогнозировании одного или более изображений после текущего изображения в порядке декодирования и которые не используются при внешнем прогнозировании текущего изображения. Четвертый RPS-поднабор может ссылаться на RefPicSetLtCurr, который включает в себя все долговременные опорные изображения (LTRP), которые могут быть использованы при внешнем прогнозировании текущего изображения. Пятый RPS-поднабор может ссылаться на RefPicSetLtFoll, который включает в себя все долговременные опорные изображения, которые могут быть использованы при внешнем прогнозировании одного или более изображений после текущего изображения в порядке декодирования и которые не используются при внешнем прогнозировании текущего изображения. Порядок вывода может означать порядок, в котором декодированные изображения выводятся из буфера декодированных изображений (DPB) в случае, если декодированные изображения должны выводиться из DPB. Порядок вывода изображения может указываться посредством значения счета порядка изображений (POC), зачастую независимо от того, должно или нет выводиться изображение.

[0182] В любом случае, имеется ряд потенциальных проблем относительно того, как HEVC WD6 указывает то, что эти RPS-поднаборы могут извлекаться и передаваться в служебных сигналах. Первая проблема касается (HEVC WD6, подраздел 8.3.2) уравнения (уравнения) 8-6, при этом извлечение RPS-поднаборов согласно этому уравнению 8-6 может зависеть от состояния опорных изображений в DPB в качестве результата предыдущего изображения (вследствие формулировки ″существует долговременное опорное изображение picX в DPB″ или аналогичной). Тем не менее, эта формулировка в подразделе 8.3.2 может противоречить основному принципу RPS, что состояние опорных изображений в DPB ″внутренне кодируется″, что может означать то, что оно не должно зависеть от предшествующего состояния. Другими словами, определение текущего RPS для текущего изображения может зависеть от предыдущего сохранения LTRP (″picX″) в DPB, хотя основной принцип RPS состоит в том, что состояние опорного изображения в DPB внутренне кодируется и не кодируется внешне и, следовательно, должно быть использовано для принятия решений на основе временного внешнего кодирования.

[0183] Вторая проблема касается извлечения LTRP в RPS. Из уравнения 8-6 в подразделе 8.3.2 HEVC WD6, LTRP идентифицируется посредством младшего бита (LSB) POC (который обозначается как ″pic_order_cnt_lsb″), если delta_poc_msb_present_flag[i] равен 0, или полного POC-значения (обозначаемого посредством ″PicOrderCntVal″) в противном случае. Тем не менее, во втором случае, часть в уравнении 8-5 HEVC WD6 для извлечения полного POC-значения LTRP, ″((PicOrderCntVal-DeltaPocLt[i]+MaxPicOrderCntLsb)%MaxPicOrderCntLsb)-(DeltaPocMSBCycleLt[i])*MaxPicOrderCntLsb″, может быть некорректной.

[0184] Например, если MaxPicOrderCntLsb=256, и текущее изображение имеет полное POC-значение, равное 256*10+100 (LSB равен 100), изображения с полными POC-значениями 256*8+100 и 256*6+100 приводят к двум LTRP с идентичным POC LSB-значением в 100. С учетом вышеизложенного, DeltaPocMSBCycleLt[i] для двух LRTP должен быть равен 2 и 4, соответственно. Согласно уравнению 8-5, полные POC-значения двух LTRP должны составлять -256*2 и -256*4, соответственно, что является некорректным.

[0185] Третья проблема, ассоциированная с извлечением RPS в HEVC WD6, может состоять в том, что как только изображение передается в служебных сигналах в качестве LTRP, оно никогда не сможет передаваться в служебных сигналах в качестве кратковременного опорного изображения (STRP).

[0186] Четвертая проблема, ассоциированная с извлечением RPS в HEVC WD6, может состоять в том, что POC LSB LTRP, которое должно быть включено в RPS изображения, передается в служебных сигналах в заголовке слайса в качестве дельты LSB дельта-POC-значений, кодированных с использованием ue(v). Это может быть неэффективным, поскольку дельты LSB дельта-POC-значений типично являются большими для LTRP, в силу этого требуя большого числа битов для представления. Также кодерам сложно выяснить то, какое значение следует передавать в служебных сигналах в заголовке слайса.

[0187] Пятая проблема, ассоциированная с извлечением RPS в HEVC WD6, может состоять в том, что когда предусмотрено два или более LTRP, имеющих идентичное значение POC LSB, полные POC-значения всех этих LTRP должны быть переданы в служебных сигналах, в котором POC MSB-значения передаются в служебных сигналах в качестве дельты двух непрерывных LTRP, имеющих идентичные POC LSB, с использованием ue(v). Для первого набора непрерывно передаваемых в служебных сигналах LTRP, имеющих идентичные POC LSB, POC MSB непосредственно передается в служебных сигналах, с использованием ue(v). Здесь может быть два аспекта неэффективности. Первый заключается в том, дельта POC MSB-значений и непосредственно передаваемого в служебных сигналах POC MSB-значения для первого LTRP в наборе может быть большой и, как следствие, может требовать большого числа битов для того, чтобы представлять значения. Второй заключается в том, что в большинстве случаев добавление еще нескольких LSB (или эквивалентно, незначительное увеличение длины MSB) позволяет обеспечивать уникальный идентификатор всех LTRP. Соответственно, может быть необязательным передавать в служебных сигналах все MSB-значения для LTRP, имеющих идентичные LSB-значения.

[0188] Чтобы потенциально разрешать вышеобозначенные проблемы, ниже описываются различные технологии для извлечения набора опорных изображений (RPS) и передачи в служебных сигналах долговременных опорных изображений (LTRP), которые должны быть включены в RPS кодированного изображения, включающие в себя вышеуказанные первые и вторые аспекты технологий, описанных выше относительно фиг. 1-7. С другой стороны, хотя описаны ниже относительно HEVC WD6, технологии могут быть реализованы относительно любого стандарта кодирования видео или других технологий кодирования, заключающих в себе внешнее прогнозирование относительно эталонных данных. Кроме того, выделение серым используется ниже для того, чтобы обозначать изменения HEVC WD6.

[0189] В одном аспекте, синтаксис и семантика заголовка слайса, как указано в HEVC WD6, могут быть модифицированы, при этом синтаксис заголовка слайса изменяется следующим образом: элементы poc_lsb_len_delta[i] и poc_lsb_lt[i] синтаксиса добавляются, а элементы delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] и delta_poc_msb_cycle_lt_minus1[i] синтаксиса удаляются, при этом другие элементы синтаксиса остаются неизменными. Следовательно, синтаксис заголовка слайса может напоминать синтаксис заголовка слайса, показанный ниже в таблице 1, в которой полужирные и курсивные части, показанные ниже, отражают дополнения или изменения HEVC для поддержки одного или более аспектов технологий, описанных в этом раскрытии сущности.

[0190] Семантика заголовка слайса также может быть изменена следующим образом: семантика элементов poc_lsb_len_delta[i] и poc_lsb_lt[i] синтаксиса добавляется, а семантика элементов delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] и delta_poc_msb_cycle_lt_minus1[i] синтаксиса удаляются, при этом семантика для других элементов синтаксиса остается неизменной.

[0191] Элемент poc_lsb_len_delta[i] синтаксиса может задавать число битов для того, чтобы представлять poc_lsb_lt[i].

[0192] Переменная PocLsbLtLen[i] может извлекаться следующим образом:

if(i==0)

PocLsbLtLen[i]=log2_max_pic_order_cnt_lsb_minus4+4+poc_lsb_len_delta[i]

else

PocLsbLtLen[i]=PocLsbLtLen[i-1]+poc_lsb_len_delta[i]

[0193] Элемент poc_lsb_lt[i] синтаксиса может задавать младшие биты значения счета порядка изображений i-того долговременного опорного изображения, которое включается в набор долговременных опорных изображений для текущего изображения. Этот элемент poc_lsb_lt[i] синтаксиса может быть в диапазоне от 0 до (1<<PocLsbLtLen[i])-1, включительно. Длина poc_lsb_lt[i] может составлять PocLsbLtLen[i]. Альтернативно, переменная PocLsbLtLen[i] может извлекаться следующим образом:

PocLsbLtLen[i]=log2_max_pic_order_cnt_lsb_minus4+4+poc_lsb_len_delta[i]

[0194] Процесс декодирования для наборов опорных изображений, указываемый в разделе 8.3.3 HEVC WD6, может быть изменен следующим образом, при этом выделение серым или затенение указывает дополнения и/или изменения в разделе 8.3.2 HEVC WD6, как указано в настоящее время. Далее представлена большая часть раздела 8.3.2 HEVC WD6.

Этот процесс активируется один раз в расчете на изображение после декодирования заголовка слайса, но до декодирования единиц кодирования и до процесса декодирования для составления списков опорных изображений слайса, как указано в подразделе 8.3.3 HEVC WD6. Процесс может приводить к пометке одного или более опорных изображений как ″не используется для ссылки″.

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

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

[0195] Пять списков значений счета порядка изображений или младшие биты счета порядка изображений составлены для того, чтобы извлекать набор опорных изображений: PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr и PocLtFoll с числом NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr и NumPocLtFoll элементов, соответственно.

- Если текущее изображение представляет собой IDR-изображение, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr и PocLtFoll задаются как пустые, а NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr и NumPocLtFoll задаются равными 0.

- В противном случае, следующее применимо для извлечения пяти списков значений счета порядка изображений и номеров записей.

for(i=0, j=0, k=0; i<NumNegativePics[StRpsIdx]; i++)

if(UsedByCurrPicS0[StRpsIdx][i])

PocStCurrBefore[j++]=PicOrderCntVal+DeltaPocS0[StRpsIdx][i]

else

PocStFoll[k++]=PicOrderCntVal+DeltaPocS0[StRpsIdx][i]

NumPocStCurrBefore=j

for(i=0, j=0; i<NumPositivePics[StRpsIdx]; i++)

if(UsedByCurrPicS1[StRpsIdx][i])

PocStCurrAfter[j++]=PicOrderCntVal+DeltaPocS1[StRpsIdx][i]

else

PocStFoll[k++]=PicOrderCntVal+DeltaPocS1[StRpsIdx][i]

NumPocStCurrAfter=j

NumPocStFoll=k (8-5)

for(i=0, j=0, k=0; i<num_long_term_pics; i++)

if(used_by_curr_pic_lt_flag[i]) {

PocLtCurr[j]=poc_lsb_lt[i]

PocLsbLenCurr[j]=PocLsbLtLen[i]

j++

}

else {

PocLtFoll[k]=poc_lsb_lt[i]

ExtPocLsbLenFoll[k]=PocLsbLtLen[i]

k++

}

NumPocLtCurr=j

NumPocLtFoll=k,

где PicOrderCntVal является счетом порядка изображений для текущего изображения, как указано в подразделе 8.2.1 HEVC WD6.

Примечание 2. Значение StRpsIdx в диапазоне от 0 до num_short_term_ref_pic_sets-1, включительно, указывает то, что используется набор кратковременных опорных изображений из активного набора параметров последовательности, где StRpsIdx является индексом набора кратковременных опорных изображений в списке наборов кратковременных опорных изображений в порядке, в котором они передаются в служебных сигналах в наборе параметров последовательности. StRpsIdx, равный num_short_term_ref_pic_sets, указывает то, что используется набор кратковременных опорных изображений, явно передаваемый в служебных сигналах в заголовке слайса.

Набор опорных изображений состоит из пяти списков опорных изображений: RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr и RefPicSetLtFoll. Переменная NumPocTotalCurr задается равной NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurr. При декодировании P- или B-слайса требование соответствия потока битов заключается в том, что значение NumPocTotalCurr не должно быть равным 0.

Примечание 3. RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetLtCurr содержат все опорные изображения, которые могут быть использованы при внешнем прогнозировании текущего изображения, и которые могут быть использованы при внешнем прогнозировании одного или более изображений после текущего изображения в порядке декодирования. RefPicSetStFoll и RefPicSetLtFoll состоят из всех опорных изображений, которые не используются при внешнем прогнозировании текущего изображения, но могут быть использованы при внешнем прогнозировании одного или более изображений после текущего изображения в порядке декодирования.

Пометка опорного изображения может представлять собой ″не используется для ссылки″, ″используется для кратковременной ссылки″ или ″используется для долговременной ссылки″, но только один из трех вышеуказанных вариантов. Когда опорное изображение упоминается как помеченное как ″используется для ссылки″, оно совместно означает изображение, помеченное как ″используется для кратковременной ссылки″ или ″используется для долговременной ссылки″ (но не оба). Опорное изображение, которое помечается как ″используется для кратковременной ссылки″, упоминается в качестве кратковременного опорного изображения. Опорное изображение, которое помечается как ″используется для долговременной ссылки″, упоминается в качестве долговременного опорного изображения.

[0196] Процесс извлечения для набора опорных изображений и пометки изображений выполняется согласно следующим упорядоченным этапам, при этом DPB означает буфер декодированных изображений, как описано в приложении C HEVC WD6:

1. Применимо следующее:

for(i=0; i<NumPocStCurrBefore; i++)

if(there is the reference picture picX in the DPB with PicOrderCntVal equal to PocStCurrBefore[i])

RefPicSetStCurrBefore[i]=picX

else

RefPicSetStCurrBefore[i]=″no reference picture″

for(i=0; i<NumPocStCurrAfter; i++)

if(there is the reference picture picX in the DPB with PicOrderCntVal equal to PocStCurrAfter[i])

RefPicSetStCurrAfter[i]=picX

else

RefPicSetStCurrAfter[i]=″no reference picture″ (8-6)

for(i=0; i<NumPocStFoll; i++)

if(there is the reference picture picX in the DPB with PicOrderCntVal equal to PocStFoll[i])

RefPicSetStFoll[i]=picX

else

RefPicSetStFoll[i]=″no reference picture″

2. Все опорные изображения, включенные в RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetStFoll, помечаются как ″используется для кратковременной ссылки″.

3. Применимо следующее:

for(i=0; i<NumPocLtCurr; i++) {

if(there is the reference picture picX in the DPB, not included in RefPicSetStCurrBefore,

RefPicSetStCurrAfter or RefPicSetStFoll, with PicOrderCntVal for which

Abs(PicOrderCntVal)%(2PocLsbLenCurr[i]) is equal to PocLtCurr[i])

RefPicSetLtCurr[i]=picX

else

RefPicSetLtCurr[i]=″no reference picture″

}

for(i=0; i<NumPocLtFoll; i++) {

if(there is the reference picture picX in the DPB, not included in RefPicSetStCurrBefore,

RefPicSetStCurrAfter or RefPicSetStFoll, with PicOrderCntVal for which

Abs(PicOrderCntVal)%(2PocLsbLenFoll[i]) is equal to PocLtFoll[i])

RefPicSetLtFoll[i]=picX

else

RefPicSetLtFoll[i]=″no reference picture″

}

4. Все опорные изображения, включенные в RefPicSetLtCurr и RefPicSetLtFoll, помечаются как ″используется для долговременной ссылки″.

5. Все опорные изображения в буфере декодированных изображений, которые не включаются в RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll, помечаются как ″не используется для ссылки″.

Примечание 4. Может быть предусмотрено одно или более опорных изображений, которые включаются в набор опорных изображений, но которые не присутствуют в буфере декодированных изображений. Когда первое кодированное изображение в потоке битов представляет собой IDR-изображение, или текущее кодированное изображение не представляет собой начальное изображение относительно первого кодированного изображения в потоке битов, должны игнорироваться записи в RefPicSetStFoll или RefPicSetLtFoll, которые не равны ″no reference picture″. Когда первое кодированное изображение в потоке битов не представляет собой CRA-изображение, или текущее кодированное изображение не представляет собой начальное изображение относительно первого кодированного изображения в потоке битов, непреднамеренная потеря изображений должна логически выводиться для каждой записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetLtCurr, которая равна ″no reference picture″.

Альтернативно, на вышеуказанных этапах, слова ″there is the reference picture picX″ (″предусмотрено опорное изображение picX″) изменяются на ″there is the picture picX″ (″предусмотрено изображение picX″).

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

- Не должно быть опорных изображений с temporal_id, превышающим temporal_id текущего изображения, включенного в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetLtCurr.

- Для каждого значения i в диапазоне от 0 до NumPocLtCurr-1, включительно, не должно быть более одного опорного изображения в DPB, которое не включается в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll, и которое имеет PicOrderCntVal, для которого Abs (PicOrderCntVal)%(2PocLsbLenCurr[i]) равно PocLtCurr[i]. Для каждого значения i в диапазоне от 0 до NumPocLtFoll-1, включительно, не должно быть более одного опорного изображения в DPB, которое не включается в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll, и которое имеет PicOrderCntVal, для которого Abs (PicOrderCntVal)%(2PocLsbLenFoll[i]) равно PocLtFoll[i].

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

- Когда первое кодированное изображение в потоке битов представляет собой IDR-изображение, или текущее кодированное изображение не представляет собой начальное изображение относительно первого кодированного изображения в потоке битов, не должно быть записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetLtCurr, которая равна ″no reference picture″.

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

[0197] В другом аспекте, технологии могут модифицировать синтаксис и семантику заголовка слайса, чтобы добавлять элементы poc_lsb_lt[i], add_poc_lsb_len[i] и add_poc_lsb[i] синтаксиса и удалять элементы delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] и delta_poc_msb_cycle_lt_minus1[i] синтаксиса, оставляя другие элементы синтаксиса неизменными. Следующая таблица 2 иллюстрирует эти изменения, при этом дополнения и/или изменения обозначаются с использованием выделения серым или затенения:

[0198] Семантика заголовка слайса может быть изменена, чтобы добавлять семантику элементов poc_lsb_lt[i], add_poc_lsb_len[i] и add_poc_lsb[i] синтаксиса и удалять семантику элементов delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] и delta_poc_msb_cycle_lt_minus1[i] синтаксиса, оставляя неизменной семантику для других элементов синтаксиса.

[0199] Элемент poc_lsb_lt[i] синтаксиса может задавать младшие биты значения счета порядка изображений i-того долговременного опорного изображения, которое включается в набор долговременных опорных изображений для текущего изображения. Длина poc_lsb_lt[i] может составлять log2_max_pic_order_cnt_lsb_minus4+4 бита.

[0200] Элемент синтаксиса add_poc_lsb_Len[i] может задавать число дополнительных младших битов значения счета порядка изображений i-того долговременного опорного изображения, которое включается в набор долговременных опорных изображений для текущего изображения. Add_poc_lsb_Len[i] должно быть в диапазоне от 0 до 32-log2_max_pic_order_cnt_lsb_minus4-4, включительно.

[0201] Элемент синтаксиса add_poc_lsb[i] может задавать значение дополнительных младших битов значения счета порядка изображений i-того долговременного опорного изображения, которое включается в набор долговременных опорных изображений для текущего изображения. Poc_lsb_lt[i] должно быть в диапазоне от 1 до (1<<add_poc_lsb_Len[i])-1, включительно. Длина add_poc_lsb[i] составляет add_poc_lsb_Len[i] битов.

[0202] Процесс декодирования для набора опорных изображений, указываемый в разделе 8.3.3 HEVC WD6, может быть изменен следующим образом, при этом также выделение серым или затенение указывает дополнения и/или изменения в разделе 8.3.2 HEVC WD6, как указано в настоящее время. Далее представлена большая часть раздела 8.3.2 HEVC WD6.

[0203] Этот процесс активируется один раз в расчете на изображение после декодирования заголовка слайса, но до декодирования единиц кодирования и до процесса декодирования для составления списков опорных изображений слайса, как указано в подразделе 8.3.3. Процесс может приводить к пометке одного или более опорных изображений как ″не используется для ссылки″.

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

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

[0204] Пять списков значений счета порядка изображений или младшие биты счета порядка изображений составлены для того, чтобы извлекать набор опорных изображений: PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr и PocLtFoll с числом NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr и NumPocLtFoll элементов, соответственно.

- Если текущее изображение представляет собой IDR-изображение, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr и PocLtFoll задаются как пустые, а NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr и NumPocLtFoll задаются равными 0.

- В противном случае, следующее применимо для извлечения пяти списков значений счета порядка изображений и номеров записей.

for(i=0, j=0, k=0; i<NumNegativePics[StRpsIdx]; i++)

if(UsedByCurrPicS0[StRpsIdx][i])

PocStCurrBefore[j++]=PicOrderCntVal+DeltaPocS0[StRpsIdx][i]

else

PocStFoll[k++]=PicOrderCntVal+DeltaPocS0[StRpsIdx][i]

NumPocStCurrBefore=j

for(i=0, j=0; i<NumPositivePics[StRpsIdx]; i++)

if(UsedByCurrPicS1[StRpsIdx][i])

PocStCurrAfter[j++]=PicOrderCntVal+DeltaPocS1[StRpsIdx][i]

else

PocStFoll[k++]=PicOrderCntVal+DeltaPocS1[StRpsIdx][i]

NumPocStCurrAfter=j

NumPocStFoll=k (8-5)

for(i=0, j=0, k=0; i<num_long_term_pics; i++)

if(used_by_curr_pic_lt_flag[i]) {

PocLtCurr[j]=add_poc_lsb[i]*MaxPicOrderCntLsb+poc_lsb_lt[i]

ExtPocLsbLenCurr[j]=log2_max_pic_order_cnt_lsb_minus4+4+add_poc_lsb_Len[i]

j++

}

else {

PocLtFoll[k]=add_poc_lsb[i]*MaxPicOrderCntLsb+poc_lsb_lt[i]

ExtPocLsbLenFoll[k]=log2_max_pic_order_cnt_lsb_minus4+4+add_poc_lsb_Len[i]

k++

}

NumPocLtCurr=j

NumPocLtFoll=k,

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

Примечание 2. Значение StRpsIdx в диапазоне от 0 до num_short_term_ref_pic_sets-1, включительно, указывает то, что используется набор кратковременных опорных изображений из активного набора параметров последовательности, где StRpsIdx является индексом набора кратковременных опорных изображений в списке наборов кратковременных опорных изображений в порядке, в котором они передаются в служебных сигналах в наборе параметров последовательности. StRpsIdx, равный num_short_term_ref_pic_sets, указывает то, что используется набор кратковременных опорных изображений, явно передаваемый в служебных сигналах в заголовке слайса.

Набор опорных изображений состоит из пяти списков опорных изображений: RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr и RefPicSetLtFoll. Переменная NumPocTotalCurr задается равной NumPocStCurrBefore+NumPocStCurrAfter+NumPocLtCurr. При декодировании P- или B-слайса требование соответствия потока битов заключается в том, что значение NumPocTotalCurr не должно быть равным 0.

Примечание 3. RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetLtCurr содержат все опорные изображения, которые могут быть использованы при внешнем прогнозировании текущего изображения, и которые могут быть использованы при внешнем прогнозировании одного или более изображений после текущего изображения в порядке декодирования. RefPicSetStFoll и RefPicSetLtFoll состоят из всех опорных изображений, которые не используются при внешнем прогнозировании текущего изображения, но могут быть использованы при внешнем прогнозировании одного или более изображений после текущего изображения в порядке декодирования.

Пометка опорного изображения может представлять собой ″не используется для ссылки″, ″используется для кратковременной ссылки″ или ″используется для долговременной ссылки″, но только один из трех вышеуказанных вариантов. Когда опорное изображение упоминается как помеченное как ″используется для ссылки″, оно совместно означает изображение, помеченное как ″используется для кратковременной ссылки″ или ″используется для долговременной ссылки″ (но не оба). Опорное изображение, которое помечается как ″используется для кратковременной ссылки″, упоминается в качестве кратковременного опорного изображения. Опорное изображение, которое помечается как ″используется для долговременной ссылки″, упоминается в качестве долговременного опорного изображения.

[0205] Процесс извлечения для набора опорных изображений и пометки изображений выполняется согласно следующим упорядоченным этапам, при этом DPB означает буфер декодированных изображений, как описано в приложении C HEVC WD6:

1. Применимо следующее:

for(i=0; i<NumPocStCurrBefore; i++)

if(there is the reference picture picX in the DPB with PicOrderCntVal equal to PocStCurrBefore[i])

RefPicSetStCurrBefore[i]=picX

else

RefPicSetStCurrBefore[i]=″no reference picture″

for(i=0; i<NumPocStCurrAfter; i++)

if(there is the reference picture picX in the DPB with PicOrderCntVal equal to PocStCurrAfter[i])

RefPicSetStCurrAfter[i]=picX

else

RefPicSetStCurrAfter[i]=″no reference picture″ (8-67)

for(i=0; i<NumPocStFoll; i++)

if(there is the reference picture picX in the DPB with PicOrderCntVal equal to PocStFoll[i])

RefPicSetStFoll[i]=picX

else

RefPicSetStFoll[i]=″no reference picture″

2. Все опорные изображения, включенные в RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetStFoll, помечаются как ″используется для кратковременной ссылки″.

3. Применимо следующее:

for(i=0; i<NumPocLtCurr; i++) {

if(there is the reference picture picX in the DPB, not included in RefPicSetStCurrBefore,

RefPicSetStCurrAfter or RefPicSetStFoll, with PicOrderCntVal for which

Abs(PicOrderCntVal)%(2ExtPocLsbLenCurr[i]) is equal to PocLtCurr[i])

RefPicSetLtCurr[i]=picX

else

RefPicSetLtCurr[i]=″no reference picture″

}

for(i=0; i<NumPocLtFoll; i++) {

if(there is the reference picture picX in the DPB, not included in RefPicSetStCurrBefore,

RefPicSetStCurrAfter or RefPicSetStFoll, with PicOrderCntVal for which

Abs (PicOrderCntVal)%(2ExtPocLsbLenFoll[i]) is equal PocLtFoll[i]),

RefPicSetLtFoll[i]=picX

else

RefPicSetLtFoll[i]=″no reference picture″

}

4. Все опорные изображения, включенные в RefPicSetLtCurr и RefPicSetLtFoll, помечаются как ″используется для долговременной ссылки″.

5. Все опорные изображения в буфере декодированных изображений, которые не включаются в RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll, помечаются как ″не используется для ссылки″.

Примечание 4. Может быть предусмотрено одно или более опорных изображений, которые включаются в набор опорных изображений, но которые не присутствуют в буфере декодированных изображений. Когда первое кодированное изображение в потоке битов представляет собой IDR-изображение, или текущее кодированное изображение не представляет собой начальное изображение относительно первого кодированного изображения в потоке битов, должны игнорироваться записи в RefPicSetStFoll или RefPicSetLtFoll, которые не равны ″no reference picture″. Когда первое кодированное изображение в потоке битов не представляет собой CRA-изображение, или текущее кодированное изображение не представляет собой начальное изображение относительно первого кодированного изображения в потоке битов, непреднамеренная потеря изображений должна логически выводиться для каждой записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetLtCurr, которая равна ″no reference picture″.

Альтернативно, на вышеуказанных этапах, слова ″there is the reference picture picX″ (″предусмотрено опорное изображение picX″) изменяются на ″there is the picture picX″ (″предусмотрено изображение picX″).

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

- Не должно быть опорных изображений с temporal_id, превышающим temporal_id текущего изображения, включенного в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetLtCurr.

- Для каждого значения i в диапазоне от 0 до NumPocLtCurr-1, включительно, не должно быть более одного опорного изображения в DPB, которое не включается в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll, и которое имеет PicOrderCntVal, для которого Abs (PicOrderCntVal)%(2ExtPocLsbLenCurr[i]) равно PocLtCurr[i]. Для каждого значения i в диапазоне от 0 до NumPocLtFoll-1, включительно, не должно быть более одного опорного изображения в DPB, которое не включается в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll, и которое имеет PicOrderCntVal, для которого Abs (PicOrderCntVal)%(2ExtPocLsbLenFoll[i]) равно PocLtFoll[i].

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

- Когда первое кодированное изображение в потоке битов представляет собой IDR-изображение, или текущее кодированное изображение не представляет собой начальное изображение относительно первого кодированного изображения в потоке битов, не должно быть записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetLtCurr, которая равна ″no reference picture″.

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

[0207] Третий аспект технологий может быть основан на первом аспекте технологий, описанных выше. В этом третьем аспекте, в синтаксисе заголовка слайса, еще один элемент синтаксиса может добавляться для каждого LTRP, которое должно быть включено в RPS, чтобы передавать в служебных сигналах стартовый бит POC LTRP, при этом значение 0 указывает, в качестве одного примера, начало с младшего бита (бита 0), значение 1 указывает начало со второго младшего бита (бита 1), и т.д. PocLsbLtLen[i] затем может извлекаться идентично первому аспекту технологий, описанных выше, где PocLsBLtLen[i] извлекается на основе poc_lsb_len_delta[i]. Тем не менее, в этом третьем аспекте технологий, PocLsbLtLen[i] может представлять число битов POC LTRP, начиная со стартового бита, идентифицированного выше посредством дополнительного элемента синтаксиса, где poc_lsb_lt[i] указывает значение PocLsbLtLen[i] битов POC LRTP, начиная со стартового бита, идентифицированного выше посредством дополнительного элемента синтаксиса.

[0208] В таком случае может требоваться, чтобы в DPB было предусмотрено только одно опорное изображение (или, альтернативно, только одно изображение), которое имеет идентичный набор битов POC-значения, равный набору битов POC-значения, указываемому для LTRP, за исключением POC-значений, включенных в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll. Таким образом, LTRP затем может быть уникально идентифицировано посредством набора битов, и в уравнении 8-7 HEVC WD6 это условие (вместо такого условия, что набор младших битов POC-значения равен набору, указываемому для LTRP) может быть использовано для того, чтобы идентифицировать опорное изображение (или, альтернативно, изображение), которое должно быть включено в RefPicSetLtCurr[i] или RefPicSetLtFoll[i]. Другие части третьего аспекта технологий могут быть аналогичными частям, описанным выше относительно первого аспекта технологий.

[0209] Четвертый аспект технологий, описанных в этом раскрытии сущности, может представлять изменение вторых аспектов технологий, описанных выше. В этом четвертом аспекте, синтаксис заголовка слайса может включать в себя add_poc_lsb_Len[i], который представляет дельту длины дополнительного LSB, передаваемого в служебных сигналах посредством add_poc_lsb[i]. Если i равен 0, add_poc_lsb_Len[i] может задавать длину дополнительного LSB, передаваемого в служебных сигналах посредством add_poc_lsb[i]; в противном случае add_poc_lsb_Len[i] может задавать разность между длиной add_poc_lsb[i] и длиной add_poc_lsb[i-1]. Другие части четвертого аспекта технологий могут быть аналогичными частям, описанным выше относительно второго аспекта технологий.

[0210] Пятый аспект технологий может быть основан на первом аспекте технологий, описанных выше. В этом пятом аспекте, чтобы передавать в служебных сигналах LTRP, вместо передачи в служебных сигналах POC LSB начиная с самого младшего бита, может быть передан в служебных сигналах усеченный POC LSB.

[0211] Синтаксис заголовка слайса может быть изменен, чтобы добавлять элементы poc_lsb_len_delta[i] и poc_lsb_lt[i] синтаксиса и удалять удаляемые элементы delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] и delta_poc_msb_cycle_lt_minus1[i] синтаксиса, оставляя другие элементы синтаксиса неизменными. Следующая таблица 3 иллюстрирует то, как эти изменения могут влиять на заголовок слайса, при этом выделение серым или затенение обозначает изменения и/или дополнения.

[0212] Poc_lsb_len_truncated_delta[i] может быть использован для того, чтобы задавать число битов для того, чтобы представлять poc_lsb_truncated_lt[i]. Переменная PocLsbLtTrunLen[i] может извлекаться следующим образом:

if(i==0)

PocLsbLtTrunLen[i]=

log2_max_pic_order_cnt_lsb_minus4+4+poc_lsb_len_truncated_delta[i]-NumTruncatedBits

else

PocLsbLtTrunLen[i]=

PocLsbLtTrunLen[i-1]+poc_lsb_len_truncated_delta[i]

NumTruncatedBits может задаваться равным log2_max_pic_order_cnt_lsb_minus4+4, и в этом случае PocLsbLtTrunLen[0] равен poc_lsb_len_truncated_delta[0]. Это значение также может быть передано в служебных сигналах в PPS или SPS.

[0213] Poc_lsb_truncated_lt[i] может задавать младшие биты, после усечения битов NumTruncatedBits, значения счета порядка изображений i-того долговременного опорного изображения, которое включается в набор долговременных опорных изображений для текущего изображения, другими словами, от бита NumTruncatedBits до бита NumTruncatedBits+PocLsbLtTrunLen[i]-1, включительно и значение счета порядка изображений i-того долговременного опорного изображения, которое включается в набор долговременных опорных изображений для текущего изображения. Эти биты упоминаются в качестве усеченного набора битов для i-того LTRP, которое включается в набор долговременных опорных изображений для текущего изображения. Элемент poc_lsb_truncted_lt[i] синтаксиса может быть в диапазоне от 0 до (1<<PocLsbLtTrunLen[i])-1, включительно. Длина poc_lsb_lt[i], в качестве одного примера, может составлять PocLsbLtTrunLen[i].

[0214] Долговременные опорные изображения типично идентифицируются посредством усеченного набора битов своих значений PicOrderCntVal. Два опорных изображения (или, альтернативно, два изображения) в DPB (за исключением POC-значений, включенных в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetStFoll) не могут иметь идентичное значение для идентичного набора битов для своих значений PicOrderCntVal. Таким образом, LTRP может быть уникально идентифицировано посредством усеченного набора битов, и в уравнении 8-7 HEVC WD6 это условие (вместо такого условия, что набор младших битов POC-значения равен набору, указываемому для LTRP) используется для того, чтобы идентифицировать опорное изображение (или, альтернативно, изображение), которое должно быть включено в RefPicSetLtCurr[i] или RefPicSetLtFoll[i].

[0215] В качестве альтернативы, NumTruncatedBits может быть передан в служебных сигналах в каждом слайсе, когда изображения LTRP передаются в служебных сигналах. Таблица 4 иллюстрирует эту альтернативу, при этом выделение серым или затенение обозначает изменения и/или дополнения:

В таблице 4, num_truncated_bits может задавать младшие биты POC-значения, которые должны усекаться при идентификации LTRP из POC LSB. Этот элемент синтаксиса может быть в диапазоне от 0 до log2_max_pic_order_cnt_lsb_minus4+4, включительно, и длина может составлять ceil(log2 (log2_max_pic_order_cnt_lsb_minus4+4+1)). В качестве еще одной другой альтернативы, num_truncated_bits может быть передан в служебных сигналах в ue(v) и может быть больше log2_max_pic_order_cnt_lsb_minus4+4.

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

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

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

[0218] В качестве примера, а не ограничения, эти считываемые компьютером носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптических дисках, устройство хранения на магнитных дисках или другие магнитные устройства хранения, флэш-память либо любой другой носитель, который может быть использован для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Так же, любое подключение корректно называть считываемым компьютером носителем. Например, если инструкции передаются из веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, ″витой пары″, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, ″витая пара″, DSL или беспроводные технологии, такие как инфракрасные, радиопередающие и микроволновые среды, включаются в определение носителя. Тем не менее, следует понимать, что считываемые компьютером носители данных и носители данных не включают в себя соединения, несущие, сигналы или другие энергозависимые носители, а вместо этого направлены на энергонезависимые материальные носители данных. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в число считываемых компьютером носителей.

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

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

[0221] Описаны различные примеры. Эти и другие примеры находятся в пределах объема прилагаемой формулы изобретения.


КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ
КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ
КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ
КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ
КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ
КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ
КОДИРОВАНИЕ ЗНАЧЕНИЙ СЧЕТА ПОРЯДКА ИЗОБРАЖЕНИЙ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОВРЕМЕННЫЕ ОПОРНЫЕ КАДРЫ
Источник поступления информации: Роспатент

Показаны записи 1-10 из 1 148.
10.01.2013
№216.012.1a18

Обнаружение многолучевого распространения для принимаемого sps-сигнала

Изобретение относится к спутниковой системе определения местоположения (SPS), предназначено для обнаружения и/или оценки многолучевых сигналов и позволяет повысить точность измерения псевдодальности и координат местоположения приемного устройства. Изобретение раскрывает, в частности, способ...
Тип: Изобретение
Номер охранного документа: 0002472172
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a3c

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

Изобретение относится к указанию направления и местоположения элементов графического пользовательского интерфейса. Техническим результатом является повышение удобства и простоты использования многопанельных электронных устройств. Способ включает в себя прием пользовательского ввода на первой...
Тип: Изобретение
Номер охранного документа: 0002472208
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8c

Виртуальное планирование в неоднородных сетях

Заявленное изобретение относится к обеспечению виртуального управления беспроводными ресурсами в среде мобильной связи. Техническим результатом является значительное снижение помех для макрозоны охвата или близлежащих зон охвата. В качестве примера, терминалы доступа в среде связи могут...
Тип: Изобретение
Номер охранного документа: 0002472288
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8f

Кодирование и мультиплексирование управляющей информации в системе беспроводной связи

Изобретение относится к связи, в частности к технологиям отправки управляющей информации в системе беспроводной связи. Техническим результатом является повышение эффективности передачи управляющей информации, в частности ACK- и CQI-информации. Указанный результат достигается тем, что в способе...
Тип: Изобретение
Номер охранного документа: 0002472291
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a94

Система беспроводной связи с конфигурируемой длиной циклического префикса

Изобретение относится к системам связи. Технический результат заключается в том, чтобы снизить отрицательное воздействие разброса задержек. Для этого сначала определяются ожидаемые зоны покрытия для множества передач, которые должны передаваться в нескольких временных интервалах. Длина...
Тип: Изобретение
Номер охранного документа: 0002472296
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a96

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

Изобретение относится к системам определения местоположения. Технический результат заключается в улучшении качества услуги определения местоположения. Описаны методики для запроса информации о сеансах определения местоположения в архитектуре определения местоположения плоскости пользователя. В...
Тип: Изобретение
Номер охранного документа: 0002472298
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9c

Универсальная корректировка блочности изображения

Изобретение относится к области обработки изображения и, более конкретно, к способам универсальной корректировки блочности изображения при низком быстродействии (малом количестве миллионов команд в секунду) (MIP). Техническим результатом является создание способа универсальной корректировки...
Тип: Изобретение
Номер охранного документа: 0002472304
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9f

Основанная на местоположении и времени фильтрация информации широковещания

187 Изобретение относится к связи, в частности к способам посылки и приема информации широковещания. Техническим результатом является обеспечение автоматической идентификации информации широковещания, представляющей потенциальный интерес для пользователя. Указанный технический результат...
Тип: Изобретение
Номер охранного документа: 0002472307
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa1

Способ и устройство для поддержки экстренных вызовов (ecall)

Изобретение относится к области услуг или возможностей, предназначенных для беспроводных сетей связи, а именно к технологиям для поддержки неотложных вызовов (еСаll). Техническим результатом является эффективный обмен сигнализацией между терминалом и беспроводной сетью неотложного вызова при...
Тип: Изобретение
Номер охранного документа: 0002472309
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa2

Виртуальная sim-карта для мобильных телефонов

Изобретение относится к области управления сетевыми данными, такими как данные пользователя или абонента, а именно к предоставлению возможности резервировать информацию о подготовке к работе сотового телефона и личные данные с мобильного телефона на сервер. Технический результат заключается в...
Тип: Изобретение
Номер охранного документа: 0002472310
Дата охранного документа: 10.01.2013
Показаны записи 1-10 из 663.
10.01.2013
№216.012.1a18

Обнаружение многолучевого распространения для принимаемого sps-сигнала

Изобретение относится к спутниковой системе определения местоположения (SPS), предназначено для обнаружения и/или оценки многолучевых сигналов и позволяет повысить точность измерения псевдодальности и координат местоположения приемного устройства. Изобретение раскрывает, в частности, способ...
Тип: Изобретение
Номер охранного документа: 0002472172
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a3c

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

Изобретение относится к указанию направления и местоположения элементов графического пользовательского интерфейса. Техническим результатом является повышение удобства и простоты использования многопанельных электронных устройств. Способ включает в себя прием пользовательского ввода на первой...
Тип: Изобретение
Номер охранного документа: 0002472208
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8c

Виртуальное планирование в неоднородных сетях

Заявленное изобретение относится к обеспечению виртуального управления беспроводными ресурсами в среде мобильной связи. Техническим результатом является значительное снижение помех для макрозоны охвата или близлежащих зон охвата. В качестве примера, терминалы доступа в среде связи могут...
Тип: Изобретение
Номер охранного документа: 0002472288
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8f

Кодирование и мультиплексирование управляющей информации в системе беспроводной связи

Изобретение относится к связи, в частности к технологиям отправки управляющей информации в системе беспроводной связи. Техническим результатом является повышение эффективности передачи управляющей информации, в частности ACK- и CQI-информации. Указанный результат достигается тем, что в способе...
Тип: Изобретение
Номер охранного документа: 0002472291
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a94

Система беспроводной связи с конфигурируемой длиной циклического префикса

Изобретение относится к системам связи. Технический результат заключается в том, чтобы снизить отрицательное воздействие разброса задержек. Для этого сначала определяются ожидаемые зоны покрытия для множества передач, которые должны передаваться в нескольких временных интервалах. Длина...
Тип: Изобретение
Номер охранного документа: 0002472296
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a96

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

Изобретение относится к системам определения местоположения. Технический результат заключается в улучшении качества услуги определения местоположения. Описаны методики для запроса информации о сеансах определения местоположения в архитектуре определения местоположения плоскости пользователя. В...
Тип: Изобретение
Номер охранного документа: 0002472298
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9c

Универсальная корректировка блочности изображения

Изобретение относится к области обработки изображения и, более конкретно, к способам универсальной корректировки блочности изображения при низком быстродействии (малом количестве миллионов команд в секунду) (MIP). Техническим результатом является создание способа универсальной корректировки...
Тип: Изобретение
Номер охранного документа: 0002472304
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9f

Основанная на местоположении и времени фильтрация информации широковещания

187 Изобретение относится к связи, в частности к способам посылки и приема информации широковещания. Техническим результатом является обеспечение автоматической идентификации информации широковещания, представляющей потенциальный интерес для пользователя. Указанный технический результат...
Тип: Изобретение
Номер охранного документа: 0002472307
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa1

Способ и устройство для поддержки экстренных вызовов (ecall)

Изобретение относится к области услуг или возможностей, предназначенных для беспроводных сетей связи, а именно к технологиям для поддержки неотложных вызовов (еСаll). Техническим результатом является эффективный обмен сигнализацией между терминалом и беспроводной сетью неотложного вызова при...
Тип: Изобретение
Номер охранного документа: 0002472309
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa2

Виртуальная sim-карта для мобильных телефонов

Изобретение относится к области управления сетевыми данными, такими как данные пользователя или абонента, а именно к предоставлению возможности резервировать информацию о подготовке к работе сотового телефона и личные данные с мобильного телефона на сервер. Технический результат заключается в...
Тип: Изобретение
Номер охранного документа: 0002472310
Дата охранного документа: 10.01.2013
+ добавить свой РИД