СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ ВИДЕОСИГНАЛА ПОСРЕДСТВОМ ИСПОЛЬЗОВАНИЯ ВНЕШНЕГО ПРОГНОЗИРОВАНИЯ
METHOD AND APPARATUS FOR PROCESSING A VIDEO SIGNAL USING EXTERNAL PREDICTION

Перекрестная ссылка на родственные заявки
Эта заявка представляет собой подачу заявки на национальной фазе в соответствии 35 U.S.C. 371 международной заявки № PCT/KR2020/000032, поданной 2 января 2020 года, которая испрашивает приоритет заявки на патент США № 62/787,384, поданной 2 января 2019 года, содержимое которых настоящим полностью содержится по ссылке в данном документе.
Область техники, к которой относится изобретение
[1] Варианты осуществления раскрытия сущности относятся к способам и устройствам для обработки видеосигналов с использованием внешнего прогнозирования (внешнего предсказания, inter prediction), а более конкретно, к способам и устройствам для конструирования списка опорных кадров для прогнозирования текущего кадра.
Уровень техники
[2] Кодирование со сжатием означает технологию для последовательности обработок сигналов для передачи оцифрованной информации через линию связи либо ее сохранения в подходящем формате на носителе хранения данных. Видео, изображения, голос или другое мультимедиа могут представлять собой цели для кодирования со сжатием. В частности, технология кодирования со сжатием, нацеленная на видео, известна как сжатие видео.
[3] Видеоконтент следующего поколения должен демонстрировать высокое пространственное разрешение, высокую частоту кадров и большое число размерностей представления сцены. Для обработки такого контента, в результате должен получаться существенный рост с точки зрения объема запоминающего устройства, частоты обращений к запоминающему устройству и мощности обработки.
[4] Таким образом, существует потребность в проектировании инструментального средства кодирования для эффективной обработки видеоконтента следующего поколения. В частности, стандарты видеокодеков после стандарта высокоэффективного кодирования видео (HEVC) требуют технологии прогнозирования, допускающей точное формирование прогнозных выборок при более эффективном использовании ресурсов.
Подробное описание изобретения
Техническая задача
[5] Варианты осуществления раскрытия сущности предоставляют способ и устройство для конструирования списка опорных кадров, необходимого для прогнозирования текущего кадра.
[6] Варианты осуществления раскрытия сущности предоставляют способ и устройство для получения информации, необходимой для конструирования списка опорных кадров.
[7] Варианты осуществления раскрытия сущности предоставляют способ и устройство для задания числа записей, необходимых для конструирования списка опорных кадров.
[8] Варианты осуществления раскрытия сущности предоставляют способ и устройство для уменьшения количества синтаксических элементов, необходимых для конструирования списка опорных кадров.
[9] Варианты осуществления раскрытия сущности предоставляют способ и устройство для подсчета числа пометок опорных кадров в ходе конструирования списка опорных кадров.
[10] Задачи раскрытия сущности не ограничены вышеприведенным, и другие неупомянутые задачи должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.
Техническое решение
[11] Варианты осуществления раскрытия сущности предоставляют способы и устройства для декодирования видеосигналов с использованием внешнего прогнозирования. Согласно варианту осуществления раскрытия сущности, способ для обработки видеосигнала содержит конструирование списка опорных кадров для текущего кадра в видеосигнале и выполнение прогнозирования для текущего кадра посредством использования списка опорных кадров, при этом конструирование списка опорных кадров содержит, если первая запись списка опорных кадров соответствует кратковременному опорному кадру (STRP, short-term reference picture), получение разности порядковых номеров кадров (POC, picture order count) между кадром, связанным с первой записью, и другим кадром, и если вторая запись списка опорных кадров соответствует долговременному опорному кадру (LTRP, long-term reference picture), получение значения по модулю POC для кадра, связанного со второй записью.
[12] Согласно варианту осуществления, конструирование списка опорных кадров может содержать получение числа записей списка опорных кадров и выполнение пометки опорных кадров для каждой из записей списка опорных кадров в качестве LTRP или STRP посредством числа записей.
[13] Согласно варианту осуществления, число записей может иметь максимальное значение в качестве максимального требуемого размера буфера декодированных кадров плюс 14.
[14] Согласно варианту осуществления, выполнение пометки опорных кадров может содержать получение числа STRP-записей и LTRP-записей и выполнение STRP-пометки посредством числа STRP-записей и выполнение LTRP-пометки посредством числа LTRP-записей.
[15] Согласно варианту осуществления, конструирование списка опорных кадров может содержать получение первого флага и определение того, соответствует запись списка опорных кадров STRP-записи или LTRP-записи, на основе первого флага.
[16] Согласно варианту осуществления, POC-разность может составлять абсолютное значение POC другого кадра минус POC для кадра, связанного с первой записью.
[17] Согласно варианту осуществления, конструирование списка опорных кадров может содержать, если абсолютное значение больше 0, получение второго флага, указывающего знак POC-разности.
[18] Согласно варианту осуществления раскрытия сущности, способ кодирования видеосигнала содержит конструирование списка опорных кадров для текущего кадра в видеосигнале, выполнение прогнозирования для текущего кадра посредством использования списка опорных кадров и кодирование информации для конструирования списка опорных кадров. Информация для конструирования списка опорных кадров может включать в себя разность порядковых номеров кадров (POC) между кадром, связанным с записью с кратковременным опорным кадром (STRP), и другим кадром в списке опорных кадров, и значение по модулю POC для кадра, в котором вторая запись связана с записью с долговременным опорным кадром (LTRP) в списке опорных кадров.
[19] Согласно варианту осуществления, информация кодирования для конструирования списка опорных кадров дополнительно может содержать число записей списка опорных кадров. Число записей может иметь максимальное значение в качестве максимального требуемого размера буфера декодированных кадров плюс 14.
[20] Согласно варианту осуществления, информация кодирования для конструирования списка опорных кадров дополнительно может содержать первый флаг, указывающий то, соответствует или нет запись списка опорных кадров STRP-записи.
[21] Согласно варианту осуществления, информация кодирования для конструирования списка опорных кадров дополнительно может содержать второй флаг, указывающий знак POC-разности для записи, POC-разность которой больше 0.
[22] Согласно варианту осуществления, информация кодирования для конструирования списка опорных кадров может включаться в набор параметров последовательности (SPS), набор параметров кадра (PPS) или заголовок среза в потоке битов, связанном с видеосигналом.
[23] Согласно другому варианту осуществления раскрытия сущности, устройство для декодирования видеосигнала включает в себя запоминающее устройство для сохранения видеосигнала и процессор, соединенный с запоминающим устройством. Процессор выполнен с возможностью конструировать список опорных кадров для текущего кадра в видеосигнале и выполнять прогнозирование относительно текущего кадра с использованием списка опорных кадров. Для конструирования списка опорных кадров, процессор выполнен с возможностью, если первая запись списка опорных кадров соответствует кратковременному опорному кадру (STRP), получать разность порядковых номеров кадров (POC) между кадром, связанным с первой записью, и другим кадром, и если вторая запись списка опорных кадров соответствует долговременному опорному кадру (LTRP), получать значение по модулю POC для кадра, связанного со второй записью.
[24] Согласно другому варианту осуществления раскрытия сущности, устройство для кодирования видеосигнала включает в себя запоминающее устройство для сохранения видеосигнала и процессор, соединенный с запоминающим устройством. Процессор выполнен с возможностью конструировать список опорных кадров для текущего кадра в видеосигнале и кодировать информацию для конструирования списка опорных кадров. Информация кодирования для конструирования списка опорных кадров может содержать разность порядковых номеров кадров (POC) между кадром, связанным с первой записью, и другим кадром в списке опорных кадров и по модулю POC для кадра, связанного со второй записью в списке опорных кадров.
[25] Согласно другому варианту осуществления раскрытия сущности, предусмотрен некратковременный компьютерно-читаемый носитель, сохраняющий одну или более инструкций. Одна или более инструкций, выполняемых посредством одного или более процессоров, управляют устройством обработки видеосигналов таким образом, чтобы конструировать список опорных кадров для текущего кадра в видеосигнале и выполнять прогнозирование относительно текущего кадра с использованием списка опорных кадров. Одна или более инструкций управляют устройством обработки видеосигналов, для конструирования списка опорных кадров, если первая запись списка опорных кадров соответствует кратковременному опорному кадру (STRP), таким образом, чтобы получать разность порядковых номеров кадров (POC) между кадром, связанным с первой записью, и другим кадром, и если вторая запись списка опорных кадров соответствует долговременному опорному кадру (LTRP), получать значение по модулю POC для кадра, связанного со второй записью.
Преимущества изобретения
[26] Согласно варианту осуществления раскрытия сущности, список опорных кадров, необходимый для прогнозирования текущего кадра, может конструироваться посредством пометки опорного кадра.
[27] Согласно варианту осуществления раскрытия сущности, надлежащая информация может получаться согласно типу опорного кадра.
[28] Согласно варианту осуществления раскрытия сущности, число записей, необходимых для конструирования списка опорных кадров, может задаваться, обеспечивая эффективное управление запоминающим устройством, необходимым для сохранения кадров.
[29] Согласно варианту осуществления раскрытия сущности, объем данных, необходимый для конструирования списка опорных кадров, может опускаться для того, чтобы синтаксически анализировать некоторые синтаксические элементы.
[30] Согласно варианту осуществления раскрытия сущности, синтаксис для конструирования списка опорных кадров может эффективно реализовываться посредством подсчета счетчика пометок опорных кадров.
[31] Преимущества раскрытия сущности не ограничены вышеприведенным, и другие неупомянутые преимущества должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.
Краткое описание чертежей
[32] Более полная оценка раскрытия сущности и множество ее сопутствующих аспектов должны легко получаться, поскольку они лучше понимаются в отношении нижеприведенного подробного описания при рассмотрении в связи с прилагаемыми чертежами, на которых:
[33] Фиг. 1 иллюстрирует примерную систему кодирования видео согласно варианту осуществления раскрытия сущности;
[34] Фиг. 2 является блок-схемой, схематично иллюстрирующей оборудование кодирования для кодирования видеосигналов/сигналов изображений согласно варианту осуществления раскрытия сущности;
[35] Фиг. 3 является блок-схемой, схематично иллюстрирующей оборудование декодирования для декодирования видеосигналов согласно варианту осуществления раскрытия сущности;
[36] Фиг. 4 является видом, иллюстрирующим структуру системы потоковой передачи контента согласно варианту осуществления раскрытия сущности;
[37] Фиг. 5 является блок-схемой, иллюстрирующей примерное устройство для обработки видеосигналов согласно варианту осуществления раскрытия сущности;
[38] Фиг. 6A, 6B, 6C и 6D являются видами, иллюстрирующими примерные структуры разбиения на блоки посредством дерева квадрантов (QT), двоичного дерева (BT), троичного дерева (TT) и асимметричного дерева (AT), соответственно, согласно варианту осуществления раскрытия сущности;
[39] Фиг. 7 и 8 иллюстрируют процедуру кодирования видео/изображений на основе внешнего прогнозирования и модуль внешнего прогнозирования в оборудовании кодирования согласно варианту осуществления раскрытия сущности;
[40] Фиг. 9 и 10 иллюстрируют процедуру декодирования видео/изображений на основе внешнего прогнозирования и модуль внешнего прогнозирования в оборудовании декодирования согласно варианту осуществления раскрытия сущности;
[41] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей пример конструирования списка опорных кадров согласно варианту осуществления раскрытия сущности;
[42] Фиг. 12 и 13 являются блок-схемами последовательности операций способа, иллюстрирующими пример пометки опорных кадров согласно варианту осуществления раскрытия сущности;
[43] Фиг. 14 является блок-схемой последовательности операций способа, иллюстрирующей другой пример пометки опорных кадров согласно варианту осуществления раскрытия сущности; и
[44] Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей пример видеосигналов обработки согласно варианту осуществления раскрытия сущности.
Режим для осуществления на практике раскрытия сущности
[45] В дальнейшем в этом документе, подробно описываются предпочтительные варианты осуществления раскрытия сущности со ссылкой на прилагаемые чертежи. Нижеприведенное подробное описание, рассматриваемое в сочетании с прилагаемыми чертежами, предназначено для описания примерных вариантов осуществления раскрытия сущности, а не для представления единственного варианта осуществления раскрытия сущности. Нижеприведенное подробное описание включает в себя конкретные подробности, чтобы передавать полное понимание раскрытия сущности. Тем не менее, специалисты в данной области техники должны принимать во внимание, что варианты осуществления раскрытия сущности могут осуществляться на практике даже без таких подробностей.
[46] В некоторых случаях, чтобы исключать неоднозначность в понятии, известные структуры или устройства могут опускаться или показываться на блок-схемах с фокусированием на базовых признаках каждой структуры и устройства.
[47] Хотя варианты осуществления раскрытия сущности описываются главным образом с помощью стандартных терминов, которые являются общеупотребительными в настоящее время, некоторые конкретные термины могут выбираться авторами изобретения. В таком случае, могут приводиться определения авторов изобретения для терминов. Таким образом, термины, используемые в данном документе, должны интерпретироваться в свете определений, задаваемых авторами изобретения, а не простых словарных определений.
[48] Терминология, используемая в данном документе, предоставляется для лучшего понимания раскрытия сущности, и изменения могут вноситься в нее без отступления от технической сущности раскрытия сущности. Например, термины "сигнал", "данные", "выборка", "изображение", "срез", "плитка", "кадр" и "блок" могут надлежащим образом заменяться и интерпретироваться в каждом процессе кодирования.
[49] При использовании в данном документе, термин "единица обработки" означает единицу обработки, такой как кодирование/декодирование, например, прогнозирование, преобразование и/или квантование. "Единица обработки" может интерпретироваться как охватывающая единицу для компонента сигнала яркости и единицу для компонента сигнала цветности. Например, единица обработки может соответствовать блоку, единице кодирования (CU), единице прогнозирования (PU) или единице преобразования (TU).
[50] Единица обработки также может интерпретироваться в качестве единицы для компонента сигнала яркости или единицы для компонента сигнала цветности. Например, единица обработки может соответствовать блоку дерева кодирования, блоку кодирования (CB), PU или блоку преобразования (TB) для компонента сигнала яркости. Альтернативно, единица обработки может соответствовать CTB, CB, PU или TB для компонента сигнала цветности. Тем не менее, без ограничений означенным, единица обработки также может интерпретироваться как включающая в себя единицу для компонента сигнала яркости и единицу для компонента сигнала цветности.
[51] Дополнительно, единица обработки не обязательно ограничивается квадратными блоками, а вместо этого может представлять собой многоугольник с тремя или более вершинами.
[52] При использовании в данном документе, "пиксел" и "коэффициент" (например, коэффициент преобразования или коэффициент преобразования, который подвергнут первому преобразованию) могут совместно называться "выборкой". Когда выборка используется, это может означать то, что, например, используются пиксельное значение или коэффициент (например, коэффициент преобразования или коэффициент преобразования, который подвергнут первому преобразованию).
[53] Фиг. 1 иллюстрирует примерную систему кодирования видео согласно варианту осуществления раскрытия сущности.
[54] Система кодирования видео может включать в себя исходное устройство 10 и приемное устройство 20. Исходное устройство 10 может передавать кодированную информацию или данные видео/изображений в форме файла или потоковой передачи в приемное устройство 20 через цифровой носитель хранения данных или сеть.
[55] Исходное устройство 10 может включать в себя видеоисточник 11, оборудование 12 кодирования и передатчик 13. Приемное устройство 20 может включать в себя приемник 21, оборудование 22 декодирования и модуль 23 рендеринга. Оборудование 12 кодирования может называться "оборудованием кодирования видео/изображений", и оборудование 22 декодирования может называться "оборудованием декодирования видео/изображений". Передатчик 13 может включаться в оборудование 12 кодирования. Приемник 21 может включаться в оборудование 22 декодирования. Модуль 23 рендеринга может включать в себя модуль отображения, и модуль отображения может быть сконфигурирован как отдельное устройство или внешний компонент.
[56] Видеоисточник может получать видео/изображение посредством захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер и архив видео/изображений, включающий в себя ранее захваченные видео/изображения. Устройство формирования видео/изображений может включать в себя, например, компьютер, планшетный PC или смартфон и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться, например, через компьютер, причем в этом случае процесс для формирования его связанных данных может заменять процесс захвата видео/изображений.
[57] Оборудование 12 кодирования может кодировать входное видео/изображение. Оборудование 12 кодирования может выполнять последовательность процессов, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[58] Передатчик 13 может передавать кодированную информацию или данные видео/изображений, которая выведена в форме потока битов, в форме файла или потоковой передачи в приемник приемного устройства через цифровой носитель хранения данных или сеть. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как носители по стандарту универсальной последовательной шины (USB), по стандарту Secure Digital (SD), компакт-диск (CD), цифровой видеодиск (DVD), Blu-Ray, жесткий диск или твердотельный накопитель (SSD). Передатчик 13 может включать в себя элемент для формирования мультимедийных файлов в предварительно определенном формате файлов и элемент для передачи по широковещательной сети/сети связи. Приемник 21 может извлекать поток битов и передавать поток битов в оборудование 22 декодирования.
[59] Оборудование 22 декодирования может выполнять последовательность процедур, таких как обратное квантование, обратное преобразование и прогнозирование, соответствующих операциям оборудования 12 кодирования, для декодирования видео/изображения.
[60] Модуль 23 рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться на модуле отображения.
[61] Фиг. 2 является блок-схемой, схематично иллюстрирующей оборудование кодирования для кодирования видеосигналов/сигналов изображений согласно варианту осуществления раскрытия сущности.
[62] Ссылаясь на фиг 2, оборудование 100 кодирования может включать в себя модуль 110 сегментации изображений, вычитатель 115, модуль 120 преобразования, модуль 130 квантования, модуль 140 обратного квантования, модуль 150 обратного преобразования, сумматор 155, модуль 160 фильтрации, запоминающее устройство 170, модуль 180 внешнего прогнозирования, модуль 185 внутреннего прогнозирования (внутреннего предсказания, intra prediction) и модуль 190 энтропийного кодирования. Модуль 180 внешнего прогнозирования и модуль 185 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Другими словами, модуль прогнозирования может включать в себя модуль 180 внешнего прогнозирования и модуль 185 внутреннего прогнозирования. Модуль 120 преобразования, модуль 130 квантования, модуль 140 обратного квантования и модуль 150 обратного преобразования могут включаться в остаточный процессор. Остаточный процессор дополнительно может включать в себя вычитатель 115. Вышеописанный модуль 110 сегментации изображений, вычитатель 115, модуль 120 преобразования, модуль 130 квантования, модуль 140 обратного квантования, модуль 150 обратного преобразования, сумматор 155, модуль 160 фильтрации, модуль 180 внешнего прогнозирования, модуль 185 внутреннего прогнозирования и модуль 190 энтропийного кодирования могут быть сконфигурированы как один аппаратный компонент (например, кодер или процессор) согласно варианту осуществления. Согласно варианту осуществления, запоминающее устройство 170 может быть сконфигурировано как один аппаратный компонент (например, запоминающее устройство или цифровой носитель хранения данных), и запоминающее устройство 170 может включать в себя буфер 175 декодированных кадров (DPB).
[63] Модуль 110 сегментации изображений может разбивать изображение (либо кадр или кинокадр), вводимое в оборудование 100 кодирования, на одну или более единиц обработки. В качестве примера, единица обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно разбиваться на единицу дерева кодирования (CTU) или наибольшую единицу кодирования (LCU) согласно структуре в виде дерева квадрантов и двоичного дерева (QTBT). Например, одна единица кодирования может разбиваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов и/или структуры в виде двоичного дерева. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, а затем структура в виде двоичного дерева. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно варианту осуществления раскрытия сущности может выполняться на основе конечной единицы кодирования, которая более не разбивается. В этом случае, наибольшая единица кодирования может сразу использоваться в качестве конечной единицы кодирования, например, на основе эффективности кодирования согласно свойствам изображения, или, при необходимости, единица кодирования может рекурсивно разбиваться на единицы кодирования нижней глубины, и единица кодирования оптимального размера может использоваться в качестве конечной единицы кодирования. Процедура кодирования может включать в себя, например, прогнозирование, преобразование или восстановление, описанное ниже. В качестве примера, единица обработки дополнительно может включать в себя единицу PU прогнозирования или единицу TU преобразования. В этом случае, единица прогнозирования и единица преобразования могут разбиваться или сегментироваться на/из вышеописанной конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[64] Термин "единица" может взаимозаменяемо использоваться с "блоком" или "зоной" в некоторых случаях. Обычно, блок MxN может обозначать набор выборок или коэффициентов преобразования, состоящий из M столбцов и N строк. Обычно, выборка может обозначать пиксельное или пиксельное значение либо может обозначать пиксел/пиксельное значение только компонента сигнала яркости или пиксел/пиксельное значение только компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего пикселу или элементу отображения одного кадра (или изображения).
[65] Оборудование 100 кодирования может формировать остаточный сигнал (остаточный блок или массив остаточных выборок) посредством вычитания прогнозного сигнала (прогнозированного блока или массива прогнозных выборок), выводимого из модуля 180 внешнего прогнозирования или модуля 185 внутреннего прогнозирования, из сигнала входного изображения (необработанного блока или массива необработанных выборок), и сформированный остаточный сигнал передается в модуль 120 преобразования. В этом случае, как показано, модуль для вычитания прогнозного сигнала (блока прогнозирования или массива прогнозных выборок) из сигнала входного изображения (необработанного блока или массива необработанных выборок) в оборудовании 100 кодирования может называться "вычитателем 115". Модуль прогнозирования может выполнять прогнозирование относительно целевого блока для обработки (далее текущего блока) и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или внешнее прогнозирование, в каждом блоке или единице CU. Модуль прогнозирования может формировать различные фрагменты информации для прогнозирования, к примеру, информацию режима прогнозирования, как описано ниже в связи с каждым режимом прогнозирования, и передавать сформированную информацию в модуль 190 энтропийного кодирования. Связанная с прогнозированием информация может кодироваться посредством модуля 190 энтропийного кодирования и выводиться в форме потока битов.
[66] Модуль 185 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки, на которые ссылаются, могут быть соседними или позиционироваться на большом расстоянии от текущего блока в зависимости от режима прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленные режимы могут включать в себя, например, DC-режим и планарный режим. Направленные режимы могут включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования в зависимости от того, насколько тщательно продуманным является направление прогнозирования. Тем не менее, это представляет собой просто пример, и большее или меньшее число режимов направленного прогнозирования может использоваться. Модуль 185 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, с использованием режима прогнозирования, применяемого к соседнему блоку.
[67] Модуль 180 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в расчете на блок, субблок или выборку на основе корреляции в информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае внешнего прогнозирования, соседние блоки могут включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временный соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, может быть идентичным или отличающимся от опорного кадра, включающего в себя временно соседний блок. Временно соседний блок может называться, например, "совместно размещенным опорным блоком" или "совместно размещенной CU (colCU)", и опорный кадр, включающий в себя временно соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 180 внешнего прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в режиме пропуска или режиме объединения, модуль 180 внешнего прогнозирования может использовать информацию движения для соседнего блока в качестве информации движения для текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В режиме прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и разность векторов движения может передаваться в служебных сигналах, за счет этого указывая вектор движения текущего блока.
[68] Прогнозный сигнал, сформированный через модуль 180 внешнего прогнозирования или модуль 185 внутреннего прогнозирования, может использоваться для того, чтобы формировать восстановленный сигнал или остаточный сигнал.
[69] Модуль 120 преобразования может применять схему преобразования к остаточному сигналу, с формированием коэффициентов преобразования. Например, схема преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). GBT означает преобразование, полученное из графи, в котором представляется информация для взаимосвязи между пикселами. CNT означает преобразование, которое получается на основе формирования сигнала прогнозирования с использованием всех ранее восстановленных пикселов. Дополнительно, процесс преобразования может применяться к квадратным пиксельным блокам с идентичным размером или также может применяться к неквадратным блокам переменного размера.
[70] Модуль 130 квантования может квантовать коэффициенты преобразования и передавать квантованные коэффициенты преобразования в модуль 190 энтропийного кодирования, и модуль 190 энтропийного кодирования может кодировать квантованный сигнал (информацию для квантованных коэффициентов преобразования) и выводить кодированный сигнал в потоке битов. Информация для квантованных коэффициентов преобразования может называться "остаточной информацией". Модуль 130 квантования может пересортировывать блочные квантованные коэффициенты преобразования в форме одномерного вектора, на основе порядка сканирования коэффициентов и формировать информацию для квантованных коэффициентов преобразования на основе одномерной формы квантованных коэффициентов преобразования. Модуль 190 энтропийного кодирования может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC) или контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Модуль 190 энтропийного кодирования может кодировать значения фрагментов информации (например, синтаксических элементов), необходимых для того, чтобы восстанавливать видео/изображение, наряду с или отдельно от квантованных коэффициентов преобразования. Кодированная информация (например, информация видео/изображений) может передаваться или сохраняться в форме потока битов на основе единицы слоя абстрагирования от сети (NAL). Поток битов может передаваться через сеть или сохраняться на цифровом носителе хранения данных. Сеть может включать в себя, например, широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя, например, USB, SD, CD, DVD, Blu-Ray, HDD, SSD или другие различные носители хранения данных. Передатчик (не показан) для передачи и/или модуль хранения (не показан) для сохранения сигнала, выводимого из модуля 190 энтропийного кодирования, может быть сконфигурирован как внутренний/внешний элемент оборудования 100 кодирования, или передатчик может представлять собой компонент модуля 190 энтропийного кодирования.
[71] Квантованные коэффициенты преобразования, выводимые из модуля 130 квантования, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал может восстанавливаться за счет применения обратного квантования и обратного преобразования к квантованным коэффициентам преобразования через модуль 140 обратного квантования и модуль 150 обратного преобразования в контуре. Сумматор 155 может суммировать восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 180 внешнего прогнозирования или модуля 185 внутреннего прогнозирования, за счет этого формируя восстановленный сигнал (восстановленный кадр, восстановленный блок или массив восстановленных выборок). Как и в случае, когда режим пропуска применяется, когда отсутствует остаток для целевого блока для обработки, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 155 может обозначаться как "модуль восстановления" или "формирователь восстановленных блоков". Восстановленный сигнал может использоваться для внутреннего прогнозирования следующего целевого блока обработки в текущем кадре и, как описано ниже, фильтроваться и затем использоваться для внешнего прогнозирования следующего кадра.
[72] Модуль 160 фильтрации может повышать субъективное/объективное качество изображений за счет применения фильтрации к восстановленному сигналу. Например, модуль 160 фильтрации может формировать модифицированный восстановленный кадр за счет применения различных способов фильтрации к восстановленному кадру и передавать модифицированный восстановленный кадр в буфер 170 декодированных кадров. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивную контурную фильтрацию и билатеральную фильтрацию. Модуль 160 фильтрации может формировать различные фрагменты информации для фильтрации и передавать результирующую информацию в модуль 190 энтропийного кодирования, как описано ниже в связи с каждым способом фильтрации. Связанная с фильтрацией информация может кодироваться посредством модуля 190 энтропийного кодирования и выводиться в форме потока битов.
[73] Модифицированный восстановленный кадр, передаваемый в буфер 170 декодированных кадров, может использоваться в качестве опорного кадра в модуле 180 внешнего прогнозирования. Оборудование 100 кодирования, когда внешнее прогнозирование применяется таким способом, может исключать рассогласование прогнозирования между оборудованием 100 кодирования и оборудованием 200 декодирования и повышать эффективность кодирования.
[74] Буфер 170 декодированных кадров может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 180 внешнего прогнозирования.
[75] Фиг. 3 является блок-схемой, схематично иллюстрирующей оборудование декодирования для декодирования видеосигналов согласно варианту осуществления раскрытия сущности.
[76] Ссылаясь на фиг 3, оборудование 200 декодирования может включать в себя модуль 210 энтропийного декодирования, модуль 220 обратного квантования, модуль 230 обратного преобразования, сумматор 235, модуль 240 фильтрации, запоминающее устройство 250, модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования. Модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Другими словами, модуль прогнозирования может включать в себя модуль 180 внешнего прогнозирования и модуль 185 внутреннего прогнозирования. Модуль 220 обратного квантования и модуль 230 обратного преобразования могут совместно называться "остаточным процессором". Другими словами, остаточный процессор может включать в себя модуль 220 обратного квантования и модуль 230 обратного преобразования. Модуль 210 энтропийного декодирования, модуль 220 обратного квантования, модуль 230 обратного преобразования, сумматор 235, модуль 240 фильтрации, модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования могут быть сконфигурированы в одном аппаратном компоненте (например, в декодере или процессоре) согласно варианту осуществления. Буфер 250 декодированных кадров может реализовываться как один аппаратный компонент (например, запоминающее устройство или цифровой носитель хранения данных) согласно варианту осуществления. Запоминающее устройство 250 может включать в себя DPB 175 и сконфигурировано из цифрового носителя хранения данных.
[77] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 200 декодирования может восстанавливать изображение, соответствующее обработке информации видео/изображений в оборудовании 100 кодирования по фиг. 2. Например, оборудование 200 декодирования может выполнять декодирование с использованием единицы обработки, применяемой в оборудовании 100 кодирования. Таким образом, после декодирования, единица обработки, например, может представлять собой единицу кодирования, и единица кодирования может разбиваться из единицы дерева кодирования или наибольшей единицы кодирования, согласно структуре в виде дерева квадрантов и/или структуре в виде двоичного дерева. Восстановленный сигнал изображения, декодированный и выводимый через оборудование 200 декодирования, может воспроизводиться через проигрыватель.
[78] Оборудование 200 декодирования может принимать сигнал, выводимый из оборудования 100 кодирования по фиг. 2, в форме потока битов, и принимаемый сигнал может декодироваться через модуль 210 энтропийного декодирования. Например, модуль 210 энтропийного декодирования может синтаксически анализировать поток битов и извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Например, модуль 210 энтропийного декодирования может декодировать информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и может выводить значения синтаксических элементов, необходимых для восстановления изображений, и квантованные значения коэффициентов преобразования относительно остатка. В частности, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования для соседнего целевого блока и целевого блока декодирования или информации для символа/элемента разрешения, декодированной на предшествующем этапе, прогнозировать вероятность появления элемента разрешения согласно определенной контекстной модели и выполнять арифметическое декодирование элемента разрешения. В это время, после определения контекстной модели, способ энтропийного CABAC-декодирования может обновлять контекстную модель с использованием информации для символа/элемента разрешения, декодированной для контекстной модели следующего символа/элемента разрешения. Из фрагментов информации, декодированных посредством модуля 210 энтропийного декодирования, информация для прогнозирования может предоставляться в модуль прогнозирования (например, в модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования), и остаточное значение, энтропийно декодированное посредством модуля 210 энтропийного декодирования, т.е. квантованные коэффициенты преобразования и релевантная информация процессора, может вводиться в модуль 220 обратного квантования. Из фрагментов информации, декодированных посредством модуля 210 энтропийного декодирования, информация для фильтрации может предоставляться в модуль 240 фильтрации. Между тем, приемник (не показан) для приема сигнала, выводимого из оборудования 100 кодирования, дополнительно может быть сконфигурирован как внутренний/внешний элемент оборудования 200 декодирования, или приемник может представлять собой компонент модуля 210 энтропийного декодирования.
[79] Модуль 220 обратного квантования может обратно квантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Модуль 220 обратного квантования может пересортировывать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, пересортировка может выполняться на основе порядка сканирования коэффициентов, в котором работает оборудование 100 кодирования. Модуль 220 обратного квантования может обратно квантовать квантованные коэффициенты преобразования с использованием параметров квантования (например, информации размера шага квантования), с получением коэффициентов преобразования.
[80] Модуль 230 обратного преобразования может выводить остаточный сигнал (остаточный блок или массив остаточных выборок) за счет применения обратного преобразования для коэффициентов преобразования.
[81] Модуль 230 прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, какое из внутреннего прогнозирования или внешнего прогнозирования применяется к текущему блоку, на основе информации для прогнозирования, выводимой из модуля 210 энтропийного декодирования, и определять конкретный режим внутреннего/внешнего прогнозирования.
[82] Модуль 265 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки, на которые ссылаются, могут быть соседними или позиционироваться на большом расстоянии от текущего блока в зависимости от режима прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 265 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, с использованием режима прогнозирования, применяемого к соседнему блоку.
[83] Модуль 260 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в расчете на блок, субблок или выборку на основе корреляции в информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию для направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае внешнего прогнозирования, соседние блоки могут включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временный соседний блок, присутствующий в опорном кадре. Например, модуль 260 внешнего прогнозирования может конструировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения и/или индекс опорного кадра текущего блока на основе принимаемой информации выбора возможных вариантов. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования. Информация для прогнозирования может включать в себя информацию, указывающую режим внешнего прогнозирования для текущего блока.
[84] Сумматор 235 может суммировать полученный остаточный сигнал с прогнозным сигналом (например, прогнозированным блоком или массивом прогнозных выборок), выводимым из модуля 260 внешнего прогнозирования или модуля 265 внутреннего прогнозирования, за счет этого формируя восстановленный сигнал (восстановленный кадр, восстановленный блок или массив восстановленных выборок). Как и в случае, когда режим пропуска применяется, когда отсутствует остаток для целевого блока для обработки, прогнозированный блок может использоваться в качестве восстановленного блока.
[85] Сумматор 235 может обозначаться как "модуль восстановления" или "формирователь восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего целевого блока обработки в текущем кадре и, как описано ниже, фильтроваться и затем использоваться для внешнего прогнозирования следующего кадра.
[86] Модуль 240 фильтрации может повышать субъективное/объективное качество изображений за счет применения фильтрации к восстановленному сигналу. Например, модуль 240 фильтрации может формировать модифицированный восстановленный кадр за счет применения различных способов фильтрации к восстановленному кадру и передавать модифицированный восстановленный кадр в буфер 250 декодированных кадров. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение (SAO), адаптивную контурную фильтрацию (ALF) и билатеральную фильтрацию.
[87] Модифицированный восстановленный кадр, передаваемый в буфер 250 декодированных кадров, может использоваться в качестве опорного кадра посредством модуля 260 внешнего прогнозирования.
[88] В раскрытии сущности, варианты осуществления, описанные выше в связи с модулем 160 фильтрации, модулем 180 внешнего прогнозирования и модулем 185 внутреннего прогнозирования оборудования 100 кодирования, могут применяться аналогично или соответствовать модулю 240 фильтрации, модулю 260 внешнего прогнозирования и модулю 265 внутреннего прогнозирования оборудования декодирования.
[89] Фиг. 4 является видом, иллюстрирующим структуру системы потоковой передачи контента согласно варианту осуществления раскрытия сущности.
[90] Система потоковой передачи контента, к которой применяется раскрытие сущности, может главным образом включать в себя сервер 410 кодирования, веб-сервер 430, хранилище 440 мультимедиа, пользовательское устройство 450 и устройство 460 ввода мультимедиа.
[91] Сервер 410 кодирования может сжимать контент, вводимый из устройств ввода мультимедиа, таких как смартфоны, камеры или записывающие видеокамеры, в цифровые данные, формировать поток битов и передавать поток битов на потоковый сервер 420. В качестве примера, когда устройства 460 ввода мультимедиа, такие как смартфоны, камеры или записывающие видеокамеры, непосредственно формируют поток битов, сервер 410 кодирования может опускаться.
[92] Поток битов может формироваться посредством способа кодирования или формирования потоков битов, к которому применяется раскрытие сущности, и потоковый сервер 420 может временно сохранять поток битов при передаче или приеме потока битов.
[93] Потоковый сервер 420 может передавать мультимедийные данные в пользовательское устройство 450 на основе пользовательского запроса через веб-сервер 430, и веб-сервер 430 играет роль в качестве агента, чтобы уведомлять пользователя в отношении того, какие услуги предоставляются. Когда пользователь отправляет запрос на требуемую услугу в веб-сервер 430, веб-сервер 430 передает запрос на потоковый сервер 420, и потоковый сервер 420 передает мультимедийные данные пользователю. Система потоковой передачи контента может включать в себя отдельный сервер управления, причем в этом случае, сервер управления управляет командами/ответами между устройствами в системе потоковой передачи контента.
[94] Потоковый сервер 420 может принимать контент из хранилища 440 мультимедиа и/или сервера 410 кодирования. Например, потоковый сервер 420 может принимать, в реальном времени, контент из сервера 410 кодирования. В этом случае, чтобы прозрачно предоставлять услугу, потоковый сервер 420 может сохранять поток битов в течение предварительно определенного времени.
[95] Например, примеры пользовательского устройства 450 могут включать в себя мобильные телефоны, смартфоны, переносные компьютеры, цифровые широковещательные терминалы, персональные цифровые устройства (PDA), портативные мультимедийные проигрыватели (PMP), навигационные устройства, грифельные планшетные PC, планшетные PC, ультрабуки, носимые устройства, такие как интеллектуальные часы, интеллектуальные очки или наголовные дисплеи (HMD), цифровые телевизоры, настольные компьютеры или устройства системы цифровых информационных табло.
[96] В системе потоковой передачи контента, серверы могут представлять собой распределенные серверы, причем в этом случае, данные, принимаемые посредством каждого сервера, могут распределяться и обрабатываться.
[97] Фиг. 5 является блок-схемой, иллюстрирующей примерное устройство для обработки видеосигналов согласно варианту осуществления раскрытия сущности. Устройство обработки видеосигналов по фиг. 5 может соответствовать оборудованию 100 кодирования по фиг. 2 или оборудованию 200 декодирования по фиг. 3.
[98] Согласно варианту осуществления раскрытия сущности, устройство обработки видеосигналов 500 может включать в себя запоминающее устройство 520 для сохранения видеосигналов и процессор 510, соединенный с запоминающим устройством, чтобы обрабатывать видеосигналы.
[99] Согласно варианту осуществления раскрытия сущности, процессор 510 может быть сконфигурирован как, по меньшей мере, одна схема обработки для обработки видеосигналов и может выполнять инструкции для кодирования или декодирования видеосигналов, чтобы за счет этого обрабатывать видеосигналы. Другими словами, процессор 510 может кодировать видеосигналы или декодировать кодированные видеосигналы посредством осуществления способов кодирования или декодирования, описанных ниже.
[100] Согласно варианту осуществления раскрытия сущности, процессор 510 может быть сконфигурирован как, по меньшей мере, одна схема обработки для обработки сигналов изображений и может выполнять инструкции для кодирования или декодирования сигналов изображений, чтобы за счет этого обрабатывать сигналы изображений. Другими словами, процессор 510 может кодировать данные необработанных изображений или декодировать кодированные сигналы изображений посредством осуществления способов кодирования или декодирования, описанных выше.
[101] Фиг. 6A, 6B, 6C и 6D являются видами, иллюстрирующим примерные структуры разбиения на блоки посредством дерева квадрантов (QT), двоичного дерева (BT), троичного дерева (TT) и асимметричного дерева (AT), соответственно, согласно варианту осуществления раскрытия сущности.
[102] При кодировании видео, один блок может разбиваться на основе QT. Один субблок, разбитый посредством QT, дополнительно может разбиваться рекурсивно посредством QT. Блок-лист, который более не разбивается посредством QT, может разбиваться по меньшей мере посредством одной схемы из BT, TT или AT. BT может иметь два типа разбиения, к примеру, горизонтальное BT (2NxN, 2NxN) и вертикальное BT (Nx2N, Nx2N). TT может иметь два типа разбиения, к примеру, горизонтальное TT (2Nx1/2N, 2NxN, 2Nx1/2N) и вертикальное TT (1/2Nx2N, Nx2N, 1/2Nx2N). AT может иметь четыре типа разбиения, к примеру, AT вверх по горизонтали (2Nx1/2N, 2Nx3/2N), AT вниз по горизонтали (2Nx3/2N, 2Nx1/2N), AT влево по вертикали (1/2Nx2N, 3/2Nx2N) и AT вправо по вертикали (3/2Nx2N, 1/2Nx2N). BT, TT и AT дополнительно могут разбиваться рекурсивно с использованием BT, TT и AT.
[103] Фиг. 6A показывает пример QT-разбиения. Блок A может разбиваться на четыре субблока (A0, A1, A2, A3) посредством QT. Субблок A1 может разбиваться снова на четыре субблока (B0, B1, B2, B3) посредством QT.
[104] Фиг. 6B показывает пример BT-разбиения. Блок B3, который более не разбивается посредством QT, может разбиваться на вертикальное BT (C0, C1) или горизонтальное BT (D0, D1). Аналогично блоку C0, каждый субблок дополнительно может разбиваться рекурсивно, например, в форме горизонтального BT (E0, E1) или вертикального BT (F0, F1).
[105] Фиг. 6C показывает пример TT-разбиения. Блок B3, который более не разбивается посредством QT, может разбиваться на вертикальное TT (C0, C1, C2) или горизонтальное TT (D0, D1, D2). Аналогично блоку C1, каждый субблок дополнительно может разбиваться рекурсивно, например, в форме горизонтального TT (E0, E1, E2) или вертикального TT (F0, F1, F2).
[106] Фиг. 6D показывает пример AT-разбиения. Блок B3, который более не разбивается посредством QT, может разбиваться на вертикальное AT (C0, C1) или горизонтальное AT (D0, D1). Аналогично блоку C1, каждый субблок дополнительно может разбиваться рекурсивно, например, в форме горизонтального AT (E0, E1) или вертикального TT (F0, F1).
[107] Между тем, BT, TT и AT могут использоваться вместе для разбиения. Например, субблок, разбитый посредством BT, может разбиваться посредством TT или AT. Дополнительно, субблок, разбитый посредством TT, может разбиваться посредством BT или AT. Субблок, разбитый посредством AT, может разбиваться посредством BT или TT. Например, после разбиения посредством горизонтального BT, каждый субблок может разбиваться посредством вертикального BT, либо, после разбиения посредством вертикального BT, каждый субблок сможет разбиваться посредством горизонтального BT. В этом случае, хотя различные порядки разбиения применяются, конечная форма после разбиения может быть идентичной.
[108] Когда блок разбивается, различные порядки поиска блока могут задаваться. Обычно, поиск выполняется слева направо или сверху вниз. Поиск блока может означать порядок определения того, следует или нет дополнительно разбивать каждый разбитый субблок, либо если блок более не разбивается, порядок кодирования каждого субблока или порядок поиска, когда субблок ссылается на другой соседний блок.
[109] Фиг. 7 и 8 иллюстрируют процедуру кодирования видео/изображений на основе внешнего прогнозирования и модуль внешнего прогнозирования в оборудовании кодирования согласно варианту осуществления раскрытия сущности.
[110] Оборудование 100 кодирования выполняет внешнее прогнозирование для текущего блока (S710). Оборудование 100 кодирования может извлекать движение i и режим внешнего прогнозирования текущего блока и формировать прогнозные выборки текущего блока. Здесь, определение режима внешнего прогнозирования, извлечение информации движения и формирование прогнозных выборок могут выполняться одновременно, либо любое из означенного может выполняться раньше остальных. Например, модуль 180 внешнего прогнозирования оборудования 100 кодирования может включать в себя модуль 181 определения режима прогнозирования, модуль 182 извлечения информации движения и модуль 183 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования для текущего блока, модуль 182 извлечения информации движения может извлекать информацию движения для текущего блока, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль 180 внешнего прогнозирования оборудования 100 кодирования может выполнять поиск блока, аналогичного текущему блоку, в предварительно определенной зоне (зоне поиска) опорных кадров через оценку движения, и извлекать опорный блок с минимальной разностью либо предварительно определенной разностью или меньше относительно текущего блока. На основе этого, индекс опорного кадра, указывающий опорный кадр, в котором позиционируется опорный блок, может извлекаться, и вектор движения может извлекаться на основе разности в позиции между опорным блоком и текущим блоком. Оборудование 100 кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование 100 кодирования может сравнивать RD-затраты для различных режимов прогнозирования и определять оптимальный режим прогнозирования для текущего блока.
[111] Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование 100 кодирования может конструировать список возможных вариантов объединения, описанный ниже, и извлекать опорный блок, который имеет минимальную разность либо предварительно определенную разность или меньше относительно текущего блока, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с блоком извлеченного опорного варианта, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в оборудование 200 декодирования. Информация движения для текущего блока может извлекаться с использованием информации движения для выбранного возможного варианта объединения.
[112] В качестве примера, когда (A)MVP-режим применяется к текущему блоку, оборудование 100 кодирования может конструировать список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных вариантов предикторов векторов движения (MVP), включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант, имеющий вектор движения с наименьшей разностью относительно вектора движения текущего блока из возможных MVP-вариантов, может представлять собой выбранный возможный MVP-вариант. Разность векторов движения (MVD), которая представляет собой вектор движения текущего блока меньше MVP, может извлекаться. В этом случае, информация для MVD может передаваться в служебных сигналах в оборудование 200 декодирования. Дополнительно, когда (A)MVP-режим применяется, значение индекса опорного кадра может быть сконфигурировано как информация индекса опорного кадра и отдельно передаваться в служебных сигналах в оборудование 200 декодирования.
[113] Оборудование 100 кодирования может извлекать остаточные выборки на основе прогнозных выборок (S720). Оборудование 100 кодирования может извлекать остаточные выборки через сравнение между необработанными выборками текущего блока и прогнозными выборками.
[114] Оборудование 100 кодирования кодирует информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S730). Оборудование 100 кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию движения и информацию режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима), в качестве фрагментов информации, связанных с процедурой прогнозирования. Информация движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Дополнительно, информация движения может включать в себя информацию для вышеописанной MVD и/или информацию индекса опорного кадра. Информация движения может включать в себя информацию, указывающую то, применяется L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию для остаточных выборок. Остаточная информация может включать в себя информацию для квантованных коэффициентов преобразования для остаточных выборок.
[115] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в оборудование декодирования либо может передаваться в оборудование декодирования через сеть.
[116] Между тем, как изложено выше, оборудование кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Именно в силу этого оборудование 100 кодирования извлекает результат прогнозирования, идентичный результату прогнозирования, полученному посредством оборудования 200 декодирования, и за счет этого может повышаться эффективность кодирования. Таким образом, оборудование 100 кодирования может сохранять восстановленный кадр (либо восстановленные выборки или восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для внешнего прогнозирования. Как описано выше, например, внутриконтурная фильтрация дополнительно может выполняться для восстановленного кадра.
[117] Фиг. 9 и 10 иллюстрируют процедуру декодирования видео/изображений на основе внешнего прогнозирования и модуль внешнего прогнозирования в оборудовании декодирования согласно варианту осуществления раскрытия сущности.
[118] Оборудование 200 декодирования может выполнять операции, соответствующие операциям, выполняемым посредством оборудования 100 кодирования. Оборудование 200 декодирования может выполнять прогнозирование относительно текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[119] В частности, оборудование 200 декодирования может определять режим прогнозирования для текущего блока на основе принимаемой информации прогнозирования (S910). Оборудование 200 декодирования может определять то, какой режим внешнего прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[120] Например, оборудование 200 декодирования может определять то, какой из режима объединения или (A)MVP-режима применяется к текущему блоку, на основе флага объединения. Альтернативно, оборудование 200 декодирования может выбирать один из числа различных возможных вариантов режима внешнего прогнозирования на основе индекса режима. Возможные варианты режима внешнего прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим либо другие различные режимы внешнего прогнозирования, описанные ниже.
[121] Оборудование 200 декодирования извлекает информацию движения для текущего блока на основе определенного режима внешнего прогнозирования (S920). Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование 200 декодирования может конструировать список возможных вариантов объединения, описанный ниже, и выбирать один из числа возможных вариантов объединения, включенных в список возможных вариантов объединения. Выбор возможного варианта объединения может выполняться на основе индекса объединения. Информация движения для текущего блока может извлекаться из информации движения для выбранного возможного варианта объединения. Информация движения для выбранного возможного варианта объединения может использоваться в качестве информации движения для текущего блока.
[122] В качестве примера, когда (A)MVP-режим применяется к текущему блоку, оборудование 200 декодирования может конструировать список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор MVP может выполняться на основе вышеописанной информации выбора (MVP-флага или MVP-индекса). В этом случае, оборудование 200 декодирования может извлекать MVD текущего блока на основе информации для MVD и извлекать вектор движения текущего блока на основе MVD и MVP текущего блока. Дополнительно, оборудование 200 декодирования может извлекать индекс опорного кадра текущего блока на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров для текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для внешнего прогнозирования текущего блока.
[123] Между тем, как описано ниже, информация движения для текущего блока может извлекаться без конфигурирования списка возможных вариантов, причем в этом случае, информация движения для текущего блока может извлекаться согласно процедуре, инициируемой в режиме прогнозирования, описанном ниже. В этом случае, вышеописанное конфигурирование списка возможных вариантов может опускаться.
[124] Оборудование 200 декодирования может формировать прогнозные выборки для текущего блока на основе информации движения для текущего блока (S930). В этом случае, оборудование 200 декодирования может извлекать опорный кадр на основе индекса опорного кадра текущего блока и извлекать прогнозные выборки текущего блока с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока в опорном кадре. В этом случае, фильтрация прогнозных выборок дополнительно может выполняться для всех или некоторых прогнозных выборок текущего блока согласно случаям, как описано ниже.
[125] Например, модуль 260 внешнего прогнозирования оборудования 200 декодирования может включать в себя модуль 261 определения режима прогнозирования, модуль 262 извлечения информации движения и модуль 263 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования для текущего блока на основе принимаемой информации режима прогнозирования, модуль 182 извлечения информации движения может извлекать информацию движения (вектор движения и/или индекс опорного кадра) для текущего блока на основе информации для принимаемой информации движения, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.
[126] Оборудование 200 декодирования формирует остаточные выборки для текущего блока на основе принимаемой остаточной информации (S940). Оборудование 200 декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и, на их основе, формировать восстановленный кадр (S950). После этого, внутриконтурная фильтрация дополнительно может выполняться для восстановленного кадра, как описано выше.
[127] Как описано выше, процедура внешнего прогнозирования может включать в себя этапы определения режима внешнего прогнозирования, извлечения информации движения согласно определенному режиму прогнозирования и выполнения прогнозирования на основе извлеченной информации движения (формирования прогнозных выборок).
[128] Различные режимы внешнего прогнозирования могут использоваться для того, чтобы прогнозировать текущий блок в кадре. Например, могут использоваться режим объединения, режим пропуска, MVP-режим и аффинный режим. Режим детализации векторов движения на стороне декодера (DMVR) и режим адаптивного разрешения векторов движения (AMVR) дополнительно могут использоваться в качестве дополнительных режимов. Аффинный режим также может называться "режимом аффинного прогнозирования движения". MVP-режим также может называться "режимом усовершенствованного прогнозирования векторов движения (AMVP)".
[129] Информация режима прогнозирования, указывающая режим внешнего прогнозирования текущего блока, может передаваться в служебных сигналах из оборудования кодирования в оборудование 200 декодирования. Информация режима прогнозирования может включаться в поток битов и приниматься посредством оборудования 200 декодирования. Информация режима прогнозирования может включать в себя информацию индекса, указывающую одни из нескольких возможных вариантов режимов. Альтернативно, режим внешнего прогнозирования может указываться через иерархическую передачу в служебных сигналах информации флага. В этом случае, информация режима прогнозирования может включать в себя один или более флагов. Например, оборудование 100 кодирования может передавать в служебных сигналах флаг пропуска, чтобы указывать то, следует или нет применять режим пропуска, и когда режим пропуска не применяется, передавать в служебных сигналах флаг объединения, чтобы указывать то, следует или нет применять режим объединения, и когда режим объединения не применяется, указывать необходимость применять MVP-режим либо дополнительно передавать в служебных сигналах флаг для дополнительного различения. Аффинный режим может передаваться в служебных сигналах в качестве независимого режима или в качестве режима, зависимого от режима объединения или MVP-режима. Например, аффинный режим может быть сконфигурирован как один возможный вариант в списке возможных вариантов объединения или списке возможных MVP-вариантов, как описано ниже.
[130] Оборудование 100 кодирования или оборудование 200 декодирования может выполнять внешнее прогнозирование с использованием информации движения для текущего блока. Оборудование 100 кодирования может извлекать оптимальную информацию движения для текущего блока через процедуру оценки движения. Например, оборудование 100 кодирования может выполнять поиск аналогичных опорных блоков с высокой корреляцией, в пределах предварительно определенного диапазона поиска в опорном кадре, на основе дробного пиксела, с использованием необработанных блоков в необработанном кадре для текущего блока и, на основе этого, извлекать информацию движения. Подобие блока может извлекаться на основе разности между выборочными значениями на основе фазы. Например, подобие блоков может вычисляться на основе суммы абсолютных разностей (SAD) между текущим блоком (или эталоном текущего блока) и опорным блоком (или эталоном опорного блока). В этом случае, информация движения может извлекаться на основе опорного блока с наименьшей SAD в зоне поиска. Извлеченная информация движения может передаваться в служебных сигналах в оборудование декодирования на основе режима внешнего прогнозирования посредством различных способов.
[131] Когда режим объединения применяется, информация движения для текущего блока прогнозирования не передается непосредственно, а вместо этого извлекается с использованием информации движения для его соседних блоков прогнозирования. Таким образом, оборудование 100 кодирования может указывать информацию движения для текущего блока прогнозирования посредством передачи информации флага, указывающей то, что использован режим объединения, и индекса объединения, указывающего то, какой соседний блок прогнозирования использован.
[132] Оборудование 100 кодирования должно выполнять поиск возможных вариантов блоков объединения, используемых для того, чтобы извлекать информацию движения для текущего блока прогнозирования, с тем чтобы удовлетворять режиму объединения. Например, могут использоваться вплоть до пяти возможных вариантов блоков объединения, но варианты осуществления раскрытия сущности не ограничены этим. Максимальное число возможных вариантов блоков объединения может передаваться в заголовке среза, но варианты осуществления раскрытия сущности не ограничены этим. После обнаружения возможных вариантов блоков объединения, оборудование 100 кодирования может формировать список возможных вариантов объединения и, из них, выбирать возможный вариант блока объединения с наименьшими затратами в качестве конечного возможного варианта блока объединения.
[133] Различные варианты осуществления для возможных вариантов блоков объединения, составляющих список возможных вариантов объединения, описываются в данном документе.
[134] Список возможных вариантов объединения может использовать, например, пять возможных вариантов блоков объединения. Например, четыре пространственных возможных варианта объединения и один временной возможный вариант объединения могут быть применены.
[135] Ниже описывается способ для конфигурирования списка опорных кадров для вышеописанного внешнего прогнозирования.
[136] Высокоуровневый синтаксис (HLS) существует в системе кодирования видео, чтобы полностью управлять совместным использованием общей информацией. HLS имеет целью управлять кинокадрами таким образом, чтобы уменьшать число битов, что обеспечивает эффективное использование запоминающего устройства. HLS использует систему управления опорными кадрами, которая активирует процесс, обозначаемый как "пометка опорных кадров". Этот процесс помечает каждый кинокадр согласно удобству и простоте использования для декодирования текущего кинокадра. Проектирование и реализация HLS имеют целью иметь упрощенное и эффективное средство для того, чтобы идентифицировать кадры, необходимые для декодирования текущего кадра.
Вариант 1 осуществления
[137]
[138] В этом варианте осуществления, вводится система управления списками опорных кадров (RPL), которые непосредственно передаются в служебных сигналах и извлекаются. Используются два списка (например, список 0 опорных кадров и список 1 опорных кадров). Информация для извлечения двух списков опорных кадров передается в служебных сигналах в качестве синтаксических элементов в заголовках срезов, наборе параметров последовательности (SPS) и наборе параметров кадра (PPS). Два списка формируются для всех типов срезов. Тем не менее, тогда как I-срез не использует ни один из фрагментов информации из списков, P-срез использует информацию только из List0, и B-срез использует информацию из обоих списков. Кадры идентифицируются с использованием порядковых номеров кадров (POC). Каждый кадр может классифицироваться в качестве долговременного опорного кадра (LTRP) или кратковременного опорного кадра (STRP). Кадры, классифицированные в качестве LTRP или STRP, символизируют то, что они представляют собой активные кадры и могут использоваться при декодировании, и неактивные кадры представляют собой кадры, не используемые во время процесса декодирования.
[139] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей пример конструирования списка опорных кадров согласно варианту осуществления раскрытия сущности. Операции по фиг. 11 могут выполняться посредством оборудования 200 декодирования.
[140] Фиг. 11 иллюстрирует начальную часть процесса конфигурирования списков опорных кадров. Во-первых, на этапе S1105, оборудование 200 декодирования синтаксически анализирует общее число записей в списке. После этого, для каждой записи, кадр помечается как LTRP или STRP через процесс пометки опорных кадров (S1120). В этом раскрытии сущности, пометка кадра означает добавление или обновление информации (параметра), связанной с кадром. В частности, оборудование 200 декодирования инициализирует индекс (i) записи (S1110), и когда индекс (i) записи равен или меньше общего числа записей (S1115), выполняет пометку опорных кадров (S1120). Когда пометка опорных кадров закончена, оборудование декодирования обновляет индекс (i) записи (S1125). Согласно варианту осуществления раскрытия сущности, предлагается совершенно новая архитектура для того, чтобы улучшать систему управления опорными кадрами.
[141] Фиг. 12 и 13 являются блок-схемами последовательности операций способа, иллюстрирующими пример пометки опорных кадров согласно варианту осуществления раскрытия сущности.
[142] Табл. 1
[143] Таблица 1 показывает пример синтаксиса, конфигурирующего список опорных кадров. Здесь, настоящий вариант осуществления предоставляет структуру, допускающую управление опорным кадром. Функция ref_pic_list_struct принимает listIdx, указываемый с помощью rpl1_same_as_rpl0_flag, в качестве первого ввода. Другими словами, когда флаг (rpl1_same_as_rpl0_flag) представляет собой "истина", это обозначает то, что списки являются идентичными, и один список (L0 или L1) может логически выводиться из другого (L1 или L0). Второй ввод rplsIdx функции ref_pic_list_struct обозначает число списков опорных кадров, используемых в кодированной видеопоследовательности, указываемой в SPS; num_ref_entries обозначает число записей в ref_pic_list_struct(listIdx, rpIsIdx). Когда LRTP-кадры используются для каждой записи, флаг синтаксически анализируется из списка, чтобы считывать то, трактуется кинокадр в качестве LTRP или STRP. Когда запись представляет собой STRP и представляет собой первую STRP-запись в синтаксической структуре ref_pic_list_struct(listIdx, rpIsIdx), это обозначает абсолютную разность между POC текущего кадра и POC кадра, на который ссылаются посредством i-ой записи, либо если i-ая запись представляет собой STRP-, но не первую, запись, это указывает абсолютную разность между POC кадра, на который ссылаются посредством i-ой записи, и POC кадра, указываемого посредством предыдущего STRP. (Если запись представляет собой STRP, она представляет собой первую STRP-запись в синтаксической структуре ref_pic_list_struc(listIdx, rpIsIdx), и она указывает абсолютную разность в POC текущего кадра и кадра, на который ссылаются посредством i-ой записи, либо когда i-ая запись представляет собой STRP-запись, но не первую запись, то она указывает абсолютную разность между POC кадра, на который ссылаются посредством i-ой записи и посредством предыдущего STRP). Когда abs_delta_poc i-ой записи больше 0, информация кода пометки флагов для STRP передается в служебных сигналах. Тем не менее, когда st_ref_pic_flag равен 0, i-ая запись обозначает долговременный опорный кадр. LTRP передаются в служебных сигналах посредством младшего бита (LSB) POC.
[144] Синтаксические элементы, связанные с таблицей 1, могут задаваться следующим образом:
[145] num_ref_entries[listIdx][rplsIdx] обозначает число записей в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx). num_ref_entries[listIdx][rplsIdx] может иметь значение от 0 до sps_max_dec_pic_buffering_minus1+14.
[146] Когда rpl1_same_as_rpl0_flag равен 1, синтаксические структуры num_ref_pic_lists_in_sps[1] и ref_pic_list_struct(1, rplsIdx) отсутствуют, и применимо следующее.
[147] num_ref_pic_lists_in_sps[1] логически выводится как имеющий значение, идентичное значению num_ref_pic_lists_in_sps[0].
[148] - В ref_pic_list_struct(1, rplsIdx), значение каждого синтаксического элемента логически выводится идентичным значению синтаксического элемента в ref_pic_list_struct(0, rplsIdx) для rplsIdx, который может составлять значение от 0 до num_ref_pic_lists_in_sps[0]-1.
[149] Когда long_term_ref_pics_flag равен 0, это обозначает то, что LTRP не используется для внешнего прогнозирования любого кодированного кадра в кодированной видеопоследовательности (CVS). Когда long_term_ref_pics_flag равен 1, это обозначает то, что LTRP используется для внешнего прогнозирования одного или более кодированных кадров в CVS.
[150] Когда st_ref_pic_flag[listIdx][rplsIdx][i] равен 1, i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) представляет собой STRP-запись. Когда st_ref_pic_flag[listIdx][rplsIdx][i] равен 0, i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) представляет собой LTRP-запись. Если не присутствует, значение st_ref_pic_flag[listIdx][rplsIdx][i] выводится логически равным 1.
[151] abs_delta_poc_st[listIdx][rplsIdx][i] обозначает абсолютную разность в значении порядковых номеров кадрв между кадром, на который ссылаются посредством i-ой записи, и текущим кадром, когда i-ая запись представляет собой первый STRP в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx), либо абсолютную разность в значении порядковых номеров кадров между кадрами посредством предыдущего STRP в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) и i-ой записи, если i-ая запись представляет собой STRP-, но не первую, запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx).
[152] abs_delta_poc_st[listIdx][rplsIdx][i] имеет значение от 0 до 215-1.
[153] Когда strp_entry_sign_flag[listIdx][rplsIdx][i] равен 1, это обозначает то, что i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) имеет значение, равное или большее 0. Когда strp_entry_sign_flag[listIdx][rplsIdx][i] равен 0, это обозначает то, что i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) имеет значение, меньшее 0. Если не присутствует, значение strp_entry_sign_flag[i][j] выводится логически равным 1.
[154] poc_lsb_lt[listIdx][rplsIdx][i] обозначает порядковый номер кадра MaxPicOrderCntLsb по модулю кадра, на который ссылаются посредством i-ой записи в ref_pic_list_struct(listIdx, rplsIdx). Длина poc_lsb_lt[listIdx][rplsIdx][i] составляет log2_max_pic_order_cnt_lsb_minus4+4 бита.
[155] Вышеприведенные описания синтаксических элементов могут обобщаться так, как указано в нижеприведенной таблице 2:
[156] Табл. 2
num_ref_entries[listIdx][rplsIdx] указывает число записей в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx). Значение num_ref_entries[listIdx][rplsIdx] должно составлять в диапазоне от 0 до sps_max_dec_pic_buffering_minus1+14, включительно.
rpl1_same_as_rp10_flag, равный 1, указывает то, что синтаксические структуры num_ref_pic_lists_in_sps[1] и ref_pic_list_struct(1, rplsIdx) не присутствуют, и применимо следующее:
- Значение num_ref_pic_lists_in_sps[1] логически выводится равным значению num_ref_pic_lists_in_sps[0].
- Значение каждого из синтаксических элементов в ref_pic_list_struct(1, rplsIdx) логически выводится равным значению соответствующего синтаксического элемента в ref_pic_list_struct(0, rplsIdx) для rplsIdx в пределах от 0 до num_ref_pic_lists_in_sps[0]-1.
long_term_ref_pics_flag, равный 0, указывает то, что LTRP не используется для внешнего прогнозирования кодированных кадров в CVS; long_term_ref_pics_flag, равный 1, указывает то, что LTRP могут использоваться для внешнего прогнозирования одного или более кодированных кадров в CVS.
st_ref_pic_flag[listIdx][rplsIdx][i], равный 1, указывает то, что i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) представляет собой STRP-запись.
st_ref_pic_flag[listIdx][rplsIdx][i], равный 0, указывает то, что i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) представляет собой LTRP-запись. Когда не присутствует, значение st_ref_pic_flag[listIdx][rplsIdx][i] логически выводится равным 1.
abs_delta_poc_st[listIdx][rplsIdx][i], когда i-ая запись представляет собой первую STRP-запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx), указывает абсолютную разность между значениями порядковых номеров кадров для текущего кадра и кадра, на который ссылаются посредством i-ой записи, либо когда i-ая запись представляет собой STRP-запись, но не первую STRP-запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx), указывает абсолютную разность между значениями порядковых номеров кадров для кадров, на которые ссылаются посредством i-ой записи и посредством предыдущей STRP-записи в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx). Значение abs_delta_poc_st[listIdx][rplsIdx][i] должно составлять в диапазоне от 0 до 215-1, включительно.
strp_entry_sign_flag[listIdx][rplsIdx][i], равный 1, указывает то, что i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) имеет значение, большее или равное 0; strp_entry_sign_flag[listIdx][rplsIdx], равный 0, указывает то, что i-ая запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) имеет значение, меньшее 0. Когда не присутствует, значение strp_entry_sign_flag[i][j] логически выводится равным 1.
poc_lsb_lt[listIdx][rplsIdx][i] указывает значение порядкового номера кадра MaxPicOrderCntLsb по модулю кадра, на который ссылаются посредством i-ой записи в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx). Длина синтаксического элемента poc_lsb_lt[listIdx][rplsIdx][i] составляет log2_max_pic_order_cnt_lsb_minus4+4 бита.
[157] Ссылаясь на фиг 12, оборудование 200 декодирования идентифицирует то, используется или нет LTRP в записи списка опорных кадров, через long_term_ref_pics_flag (S1205), и когда LTRP используется (когда long_term_ref_pics_flag равен 1), синтаксически анализирует st_ref_pic_flag (S1210) и идентифицирует то, представляет или нет st_ref_pic_flag собой "истина" (S1215). Когда st_ref_pic_flag представляет собой "истина" (1) (т.е. когда текущая запись представляет собой STRP), оборудование 200 декодирования синтаксически анализирует abs_delta_poc_st. Другими словами, когда текущая запись соответствует STRP-записи, оборудование 200 декодирования получает POC-разность между кадром, связанным с текущей записью, и предыдущим кадром.
[158] Когда long_term_ref_pics_flag представляет собой "ложь" на этапе S1205, оборудование декодирования сразу синтаксически анализирует abs_delta_poc_st. После этого, оборудование 200 декодирования идентифицирует то, больше или нет abs_delta_poc_st 0 (S1225), и когда abs_delta_poc_st больше 0, синтаксически анализирует strp_entry_sign_flag (S1230).
[159] Когда st_ref_pic_flag представляет собой "ложь" (0) на этапе S1215, оборудование 200 декодирования синтаксически анализирует poc_lsb_lt (S1235). Другими словами, когда текущая запись соответствует LTRP-записи, оборудование 200 декодирования получает значение по модулю POC для кадра, связанного с текущей записью. Значение по модулю POC для кадра используется для того, чтобы извлекать POC-значение кадра, и может комбинироваться со старшим битом (MSB) POC, чтобы за счет этого извлекать POC-значение кадра.
[160] Вышеописанный процесс конфигурирования списка опорных кадров может представляться в двух блоках, как показано на фиг. 13. Операции каждого этапа могут реализовываться посредством идентичных или различных элементов аппаратных средств. Оборудование 200 декодирования может получать флаг (long_term_ref_pic_flag), указывающий то, используется или долговременный опорный кадр, и число записей (num_ref_entries) (1310), и определять то, представляет каждая запись собой LTRP- или STRP-запись (1320).
Вариант 2 осуществления
[161]
[162] В этом варианте осуществления, предлагается ограничение параметра num_ref_entries, описанного выше в связи с таблицей 1. Типично, num_ref_entries[listIdx][rpIsIdx] обозначает число записей в ref_pic_list_struct(listIdx, rpIsIdx). Идентифицируется то, что num_ref_entries может иметь значение от 0 до sps_max_dec_pic_buffering_minus1+14. Чтобы использовать меньшее количество кинокадров, диапазон num_ref_entries может быть ограничен. Сценарий по принципу наихудшего случая возникает, когда еще 14 кинокадров требуются по сравнению со значением, указываемым посредством sps_max_dec_pic_buffering_minus1. Это означает то, что буфер декодированных кадров обязательно должен иметь достаточный объем запоминающего устройства для того, чтобы сохранять столько кинокадров. Вместо достижения этого, наложение ограничения на иерархические группы структур (GOP) может приспосабливаться с учетом TemporalId (временного идентификатора) слоя.
[163] Дополнительный синтаксис может задаваться так, как показано в таблице 3; sps_max_dec_pic_buffering_minus1 плюс 1, в качестве единицы буфера для хранения кадров, обозначает максимальный требуемый размер одного буфера декодированных кадров в CVS; sps_max_dec_pic_buffering_minus1 может иметь значение от 0 до MaxDpbSize-1, и MaxDpbSize может отдельно задаваться.
[164] Табл. 3
sps_max_dec_pic_buffering_minus1 плюс 1 указывает максимальный требуемый размер буфера декодированных кадров для CVS в единицах буферов для хранения кадров. Значение sps_max_dec_pic_buffering_minusl должно составлять в диапазоне от 0 до MaxDpbSize-1, включительно, где MaxDpbSize является таким, как указано в другом месте.
[165] Другими словами, число записей в списке опорных кадров может иметь максимальное значение в качестве максимального требуемого размера буфера декодированных кадров плюс 14. Дополнительно, согласно настоящему варианту осуществления (варианту 2 осуществления), число записей в списке опорных кадров может иметь максимальное значение в качестве максимального требуемого размера буфера декодированных кадров.
Вариант 3 осуществления
[166]
[167] В настоящем варианте осуществления, предлагается способ удаления синтаксического элемента long_term_ref_pics_flag из ref_pic_list_struct(listIdx, rpIsIdx). Когда синтаксический элемент (long_term_ref_pics_flag равен 0, это обозначает то, что LTRP более не используется для внешнего прогнозирования кодированных кадров в CVS. Когда long_term_ref_pics_flag равен 1, это обозначает то, что LTRP используется для внешнего прогнозирования одного или более кодированных фильтров в CVS. Посредством удаления синтаксического элемента long_term_ref_pics_flag, можно логически выводить то, что LTRP используется по умолчанию, в CVS. Это является полезным, поскольку LTRP представляют собой высоконадежные кадры в DPB.
Вариант 4 осуществления
[168]
[169] Фиг. 14 является блок-схемой последовательности операций способа, иллюстрирующей другой пример пометки опорных кадров согласно варианту осуществления раскрытия сущности.
[170] Предоставляется другой вариант осуществления для ref_pic_list_struct(listIdx, rpIsIdx). В частности, ref_pic_list_struct(listIdx, rpIsIdx) может быть сконфигурирован с учетом того, когда LTRP и STRP передаются в служебных сигналах отдельно. Это может представляться так, как указано в нижеприведенной таблице 4. Здесь, согласно варианту осуществления раскрытия сущности, предусмотрен способ ограничения num_strp_entries[listIdx][rpIsIdx], который указывает общее число используемых STRP, и num_ltrp_entries[listIdx][rpIsIdx], который указывает общее число LTRP.
[171] Фиг. 14 иллюстрирует общее представление предложенной структуры, в которой LTRP-счетчик и STRP-счетчик отдельно передаются в служебных сигналах. Здесь, STRP- и LTRP-счетчики сначала синтаксически анализируются с использованием LTRP согласно long_term_ref_pics_flag. После этого, для каждой записи, синтаксически анализируется lt_ref_pic_flag, который указывает то, представляет собой кадр или нет LTRP. Когда lt_ref_pic_flag представляет собой "истина", LTRP-счетчик увеличивается. В противном случае, STRP-счетчик увеличивается. Когда lt_ref_pic_flag представляет собой "ложь", STRP идентифицируется посредством синтаксического анализа delta_poc_st и его информации кодирования (когда delta_poc_st больше 0). В противном случае, LTRP идентифицируется посредством LSB POC.
[172] Нижеприведенная таблица 4 показывает пример синтаксиса для конфигурирования списка опорных кадров согласно варианту осуществления.
[173] Табл. 4
[174] num_strp_entries[listIdx][rplsIdx] обозначает число STRP-записей в ref_pic_list_struct(listIdx, rplsIdx).
[175] num_ltrp_entries[listIdx][rplsIdx] обозначает число LTRP-записей в ref_pic_list_struct(listIdx, rplsIdx).
[176] Когда lt_ref_pic_flag[listIdx][rplsIdx] отсутствует, значение lt_ref_pic_flag[listIdx][rplsIdx] логически выводится следующим образом.
[177] Когда num_ltrp_entries[listIdx][rplsIdx] равен 0, значение (lt_ref_pic_flag[listIdx][rplsIdx]) логически выводится равным 0. В противном случае, оно логически выводится как, когда numLtrps (число LTRP) равен num_ltrp_entries[listIdx][rplsIdx], и как 0, когда numStrps (число STRP) равен num_strp_entries[listIdx][rplsIdx].
[178] Табл. 5
num_strp_entries[listIdx][rplsIdx] указывает число STRP-записей в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx).
num_ltrp_entries[listIdx][rplsIdx] указывает число LTRP-записей в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx).
lt_ref_pic_flag[listIdx][rplsIdx]: Когда не присутствует, значение lt_ref_pic_flag[listIdx][rplsIdx][i] логически выводится следующим образом:
Если num_ltrp_entries[listIdx][rplsIdx] равен 0, значение логически выводится равным 0. В противном случае, значение логически выводится равным 0, когда numLtrps равен num_ltrp_entries[listIdx][rplsIdx], и 0, когда numStrps равен num_strp_entries[listIdx][rplsIdx].
[179] Ссылаясь на фиг 14, оборудование 200 декодирования начинает конструировать опорный список (S1405) и синтаксически анализирует число STRP-записей (num_strp_entries) (S1410). Оборудование декодирования идентифицирует то, используется или нет LTRP (S1415), и когда LTRP используется, синтаксически анализирует число LTRP (num_ltrp_entries) (S1420). Оборудование 200 декодирования инициализирует переменную i, numLtrps и numStrps равной 0 (S1425), определяет то, равна или меньше переменная i либо нет числа записей (num_ref_entires) (S1430), и когда i равна или меньше числа записей (num_ref_entires), выполняет операцию пометки опорных кадров (S1435) и обновляет i (S1440).
[180] Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей пример видеосигналов обработки согласно варианту осуществления раскрытия сущности. Операции по фиг. 15 могут выполняться посредством оборудования 200 декодирования.
[181] На этапе S1510, оборудование 200 декодирования конструирует список опорных кадров для текущего кадра в видеосигнале. Оборудование 200 декодирования получает POC-разность (например, abs_delta_poc_st) между кадром, связанным с первой записью, и предшествующим кадром, когда первая запись списка опорных кадров соответствует STRP-записи, и когда вторая запись списка опорных кадров соответствует LTRP-записи, получает значение по модулю POC (например, poc_lsb_lt) кадра, связанного со второй записью.
[182] Согласно варианту осуществления, в процессе конфигурирования списка опорных кадров, оборудование 200 декодирования может получать число записей (num_ref_entries) в списке опорных кадров и выполнять пометку опорных кадров с LTRP или STRP на каждой записи в списке опорных кадров столько раз, сколько составляет число записей.
[183] Согласно варианту осуществления, максимальное число записей может составлять максимальный требуемый размер буфера декодированных кадров плюс 14 (например, sps_max_dec_pic_buffering_minus1+14) либо максимальный требуемый размер буфера декодированных кадров (например, sps_max_dec_pic_buffering_minus1).
[184] Согласно варианту осуществления, в процессе выполнения пометки опорных кадров, оборудование 200 декодирования может получать число STRP-записей (например, num_strp_entries) и число LTRP-записей (например, num_ltrp_entries), как показано в таблице 4, выполнять STRP-пометку столько раз, сколько составляет число STRP, и LTRP-пометку столько раз, сколько составляет число LTRP-записей.
[185] Согласно варианту осуществления, в процессе конфигурирования списка опорных кадров, оборудование 200 декодирования может получать первый флаг и определять то, представляет запись в списке опорных кадров собой STRP- или LTRP-запись, на основе первого флага. Например, оборудование 200 декодирования может определять то, представляет текущая запись собой STRP- или LTRP-запись, с использованием флага (например, st_ref_pic_flag), указывающего то, соответствует или нет кадр, связанный с текущей записью, STRP.
[186] Согласно варианту осуществления, POC-разность обозначает абсолютное значение POC предшествующего кадра минус POC кадра, связанного с первой записью. Когда абсолютное значение (абсолютная POC-разность) (например, abs_delta_poc_st) больше 0, оборудование 200 декодирования может получать второй флаг (например, strp_entry_sign_flag), указывающий знак POC-разности.
[187] На этапе S1520, оборудование 200 декодирования выполняет прогнозирование относительно текущего кадра с использованием списка опорных кадров. Например, оборудование 200 декодирования может формировать прогнозные выборки с использованием выборочного значения, указываемого посредством вектора движения в опорном кадре, включенном в первый список опорных кадров (L0) или второй список опорных кадров (L1).
[188] Варианты осуществления раскрытия сущности предоставляют способ и устройство для кодирования информации, необходимой для конструирования списка опорных кадров. Оборудование 100 кодирования может конструировать список опорных кадров и выполнять прогнозирование с использованием опорного кадра в списке опорных кадров.
[189] Дополнительно, для каждой записи в списке опорных кадров, оборудование 100 кодирования может кодировать информацию для конфигурирования списка опорных кадров в расчете на запись. Например, информация для конфигурирования списка опорных кадров включает в себя разность (например, abs_delta_poc_st) в POC между кадром, соответствующим STRP, и предшествующим кадром, и включает в себя значение по модулю POC (например, poc_lsb_lt) кадра, соответствующего LTRP.
[190] Оборудование 100 кодирования может включать первый флаг (например, st_ref_pic_flag) для указания того, представляет кадр записи в списке опорных кадров собой STRP или LTRP, в информацию для конфигурирования списка опорных кадров и выполнять кодирование. Дополнительно, когда POC-разность (예, abs_delta_poc_st) больше 0, второй флаг (например, strp_entry_sign_flag) может включаться для того, чтобы указывать знак POC-разности. Информация для конфигурирования списка опорных кадров может включаться в SPS, PPS или заголовок среза и передаваться в служебных сигналах.
[191] Способы обработки, к которым применяются варианты осуществления раскрытия сущности, могут создаваться в форме программы, выполняемой на компьютерах, и могут сохраняться в компьютерно-читаемых носителях записи. Мультимедийные данные со структурой данных согласно раскрытию сущности также могут сохраняться на компьютерно-читаемых носителях записи. Компьютерно-читаемые носители записи включают в себя все виды устройств хранения данных и распределенных устройств хранения данных, которые могут сохранять компьютерно-читаемые данные. Компьютерно-читаемые носители записи могут включать в себя, например, Blu-Ray-диски (BD), накопители по стандарту универсальной последовательной шины (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитные ленты, гибкие диски и оптическое устройство хранения данных. Компьютерно-читаемые носители записи могут включать в себя среды, реализованные в форме несущих волн (например, как передачи по Интернету). Потоки битов, сформированные посредством способа кодирования, могут сохраняться на компьютерно-читаемых носителях записи либо передаваться через сеть проводной/беспроводной связи.
[192] Варианты осуществления раскрытия сущности могут реализовываться как компьютерные программы посредством программных кодов, которые могут выполняться на компьютерах согласно варианту осуществления раскрытия сущности. Машинные коды могут сохраняться на компьютерно-читаемом носителе.
[193] Устройства декодирования и оборудование кодирования, к которому применяются варианты осуществления раскрытия сущности, могут включать в себя цифровые устройства. Цифровые устройства охватывают все виды или типы цифровых устройств, допускающих выполнение, по меньшей мере, одной из передачи, приема, обработки и вывода, например, данных, контента или услуг. Обработка данных, контента или услуг посредством цифрового устройства включает в себя кодирование и/или декодирование данных, контента или услуг. Такое цифровое устройство может спариваться или соединяться с другим цифровым устройством или внешним сервером через проводную/беспроводную сеть, передачу или прием данных либо, при необходимости, преобразование данных.
[194] Цифровые устройства могут включать в себя, например, сетевые телевизоры, гибридные широковещательные широкополосные телевизоры, интеллектуальные телевизоры, телевизоры по Интернет-протоколу (IPTV), персональные компьютеры или другие стоящие устройства либо мобильные или карманные устройства, такие как персональные цифровые устройства (PDA), смартфоны, планшетные PC или переносные компьютеры. В раскрытии сущности, цифровой телевизор на фиг. 31 и мобильное устройство на фиг. 30 рассматриваются в качестве примерных цифровых устройств в качестве иллюстрации.
[195] При использовании в данном документе, "проводная/беспроводная сеть" совместно означает сети связи, поддерживающие различные стандарты или протоколы связи для обмена данными и/или взаимного соединения между цифровыми устройствами или между цифровым устройством и внешним сервером. Такие проводные/беспроводные сети могут включать в себя сети связи, в данный момент поддерживаемые или поддерживаться в будущем, и протоколы связи для таких сетей связи, и могут формироваться, например, посредством стандартов связи для проводного соединения, включающих в себя USB (универсальную последовательную шину), CVBS (композитный гасящий синхронизирующий видеосигнал), компонентное соединение, S-видео-соединение (аналоговое), DVI (цифровой видеоинтерфейс), HDMI (мультимедийный интерфейс высокой четкости), RGB или D-SUB, и стандартов связи для беспроводного соединения, включающих в себя Bluetooth, RFID (радиочастотную идентификацию), IrDA (стандарт Ассоциации по передаче данных в инфракрасном диапазоне), UWB (стандарт сверхширокополосной связи), ZigBee, DLNA (стандарт Альянса цифровых домашних сетей), WLAN (беспроводную LAN) (Wi-Fi), WiBro (стандарт беспроводной широкополосной связи), Wimax (стандарт общемировой совместимости широкополосного беспроводного доступа), HSDPA (высокоскоростной пакетный доступ по нисходящей линии связи), LTE (стандарт долгосрочного развития) или стандарт Wi-Fi Direct.
[196] Вышеописанные варианты осуществления рассматривают предварительно определенные комбинации компонентов и признаков раскрытия сущности. Каждый компонент или признак должен считаться необязательным, если явно не указано иное. Каждый компонент или признак может осуществляться на практике таким образом, что он не комбинируется с другими компонентами или признаками. Дополнительно, некоторые компоненты и/или признаки могут комбинироваться между собой, чтобы конфигурировать вариант осуществления раскрытия сущности. Порядок операций, описанных в связи с вариантами осуществления раскрытия сущности, может варьироваться. Некоторые компоненты или признаки одного варианта осуществления могут быть включены в другой вариант осуществления либо могут заменяться соответствующими компонентами или признаками другого варианта осуществления. Очевидно, что формула изобретения может комбинироваться, чтобы составлять вариант осуществления, если в явной форме не указано иное, либо такие комбинации могут добавляться в новой формуле изобретения посредством изменения после подачи заявки.
[197] При реализации в микропрограммном обеспечении или аппаратных средствах, вариант осуществления раскрытия сущности может реализовываться как модуль, процедура или функция, выполняющая вышеописанные функции или операции. Программный код может сохраняться в запоминающем устройстве и направляться посредством процессора. Запоминающее устройство может позиционироваться внутри или снаружи процессора, чтобы обмениваться данными с процессором посредством различных известных средств.
[198] Специалистам в данной области техники должно быть очевидным, что раскрытие сущности может осуществляться в других конкретных формах без отступления от существенных признаков раскрытия сущности. Таким образом, вышеприведенное описание должно интерпретироваться не в качестве ограничивающего во всех аспектах, а в качестве примерного. Объем раскрытия сущности должен определяться посредством обоснованных интерпретаций прилагаемой формулы изобретения, и все эквиваленты раскрытия сущности принадлежат объему раскрытия сущности.
Промышленная применимость
[199] Вышеописанные предпочтительные варианты осуществления раскрытия сущности предоставлены в качестве иллюстрации, и специалисты в данной области техники должны принимать во внимание, что различные изменения или изменения могут вноситься в них, либо они могут добавляться или заменяться другими вариантами осуществления, без отступления от технической сущности и объема раскрытия сущности, заданных в прилагаемой формуле изобретения.