КОДИРОВАНИЕ ВИДЕО ИЛИ ИЗОБРАЖЕНИЙ НА ОСНОВЕ ВНУТРИБЛОЧНОГО КОДИРОВАНИЯ
VIDEO OR IMAGE ENCODING BASED ON IN-BLOCK CODING

Уровень техники
Область техники, к которой относится изобретение
[1] Настоящий документ относится к кодированию видео или изображений на основе внутриблочного кодирования (IBC).
Описание уровня техники
[2] В последнее время, спрос на высококачественное изображение/видео высокого разрешения, к примеру, изображение/видео сверхвысокой четкости (UHD) формата 4K или 8K либо выше, растет в различных областях техники. Поскольку данные изображений/видео имеют высокое разрешение и высокое качество, объем информации или битов, который должен передаваться, увеличивается относительно существующих данных изображений/видео, и в силу этого, передача данных изображений с использованием носителя, такого как существующая проводная/беспроводная широкополосная линия или существующий носитель хранения данных, либо сохранение данных изображений/видео с использованием существующего носителя хранения данных увеличивает затраты на передачу и затраты на хранение.
[3] Помимо этого, интерес и спрос на иммерсивное мультимедиа, такое как контент виртуальной реальности (VR) и искусственной реальности (AR) или голограммы, в последнее время растет, и широковещательная передача для изображения/видео, имеющего характеристики, отличающиеся от изображений реальности, таких как игровые изображения, увеличивается.
[4] Соответственно, требуется технология высокоэффективного сжатия изображений/видео, чтобы эффективно сжимать, передавать, сохранять и воспроизводить информацию высококачественного изображения/видео высокого разрешения, имеющего различные характеристики, как описано выше.
[5] Помимо этого, проводится обсуждение на предмет технологии внутриблочного кодирования (IBC), чтобы повышать эффективность сжатия и повышать эффективность кодирования для экранного контента. Чтобы эффективно применять эти технологии, существует потребность в способе для эффективной передачи в служебных сигналах связанной информации.
Сущность изобретения
[6] Согласно варианту осуществления настоящего документа, предоставляются способ и оборудование для повышения эффективности кодирования изображений.
[7] Согласно варианту осуществления настоящего документа, предоставляются способ и оборудование эффективного применения фильтрации.
[8] Согласно варианту осуществления настоящего документа, предоставляются способ и оборудование эффективного IBC-применения.
[9] Согласно варианту осуществления настоящего документа, предоставляются способ и оборудование для передачи в служебных сигналах информации относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для IBC.
[10] Согласно варианту осуществления настоящего документа, предоставляются способ и оборудование для отдельной передачи в служебных сигналах информации относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов объединения для IBC-объединения, и информации относительно максимального числа возможных вариантов векторов движения, включенных в список возможных вариантов объединения для режима объединения взаимного прогнозирования.
[11] Согласно варианту осуществления настоящего документа, предоставляется способ декодирования видео/изображений, осуществляемый посредством оборудования декодирования.
[12] Согласно варианту осуществления настоящего документа, предоставляется оборудование декодирования для выполнения декодирования видео/изображений.
[13] Согласно варианту осуществления настоящего документа, предоставляется способ кодирования видео/изображений, осуществляемый посредством оборудования кодирования.
[14] Согласно варианту осуществления настоящего документа, предоставляется оборудование кодирования для выполнения кодирования видео/изображений.
[15] Согласно одному варианту осуществления настоящего документа, предоставляется машиночитаемый цифровой носитель хранения данных, на котором сохраняется кодированная информация видео/изображений, сформированная согласно способу кодирования видео/изображений, раскрытому, по меньшей мере, в одном из вариантов осуществления настоящего документа.
[16] Согласно варианту осуществления настоящего документа, предоставляется машиночитаемый цифровой носитель хранения данных, на котором сохраняется кодированная информация или кодированная информация видео/изображений, инструктирующая осуществление способа декодирования видео/изображений, раскрытого, по меньшей мере, в одном из вариантов осуществления настоящего документа, посредством оборудования декодирования.
Преимущества изобретения
[17] Согласно варианту осуществления настоящего документа, может повышаться полная эффективность сжатия изображений/видео.
[18] Согласно варианту осуществления настоящего документа, субъективное/объективное визуальное качество может повышаться посредством эффективной фильтрации.
[19] Согласно варианту осуществления настоящего документа, список возможных вариантов объединения для IBC может конструироваться.
[20] Согласно варианту осуществления настоящего документа, информация относительно максимального числа возможных вариантов, включенных в список возможных вариантов объединения для IBC, может передаваться в служебных сигналах.
[21] Согласно варианту осуществления настоящего документа, степень свободы для кодека может увеличиваться, и эффективность кодирования может повышаться.
Краткое описание чертежей
[22] Фиг. 1 иллюстрирует пример системы кодирования видео/изображений, к которой могут применяться варианты осуществления настоящего документа.
[23] Фиг. 2 является схемой, принципиально иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому могут применяться варианты осуществления настоящего документа.
[24] Фиг. 3 является схемой, схематично иллюстрирующей конфигурацию оборудования декодирования видео/изображений, к которому могут применяться варианты осуществления настоящего документа.
[25] Фиг. 4 является чертежом для пояснения способа извлечения информации движения через режим взаимного прогнозирования.
[26] Фиг. 5 и фиг. 6 иллюстрируют способ кодирования изображений на основе режима IBC-прогнозирования и модуль прогнозирования оборудования кодирования, осуществляющий способ кодирования изображений.
[27] Фиг. 7 и фиг. 8 иллюстрируют способ декодирования изображений на основе режима IBC-прогнозирования и модуль прогнозирования оборудования декодирования, осуществляющий способ декодирования изображений.
[28] Фиг. 9 и фиг. 10 схематично показывают пример способа кодирования видео/изображений и связанных компонентов согласно варианту(ам) осуществления настоящего документа.
[29] Фиг. 11 и фиг. 12 схематично показывают пример способа декодирования изображений/видео и связанных компонентов согласно варианту осуществления настоящего документа.
[30] Фиг. 13 показывает пример системы потоковой передачи контента, к которой могут применяться варианты осуществления, раскрытые в настоящем документе.
Подробное описание вариантов осуществления
[31] Настоящий документ может модифицироваться в различных формах, и его конкретные варианты осуществления описываются и показываются на чертежах. Тем не менее, варианты осуществления не имеют намерение для ограничения настоящего документа. Термины, используемые в нижеприведенном описании, используются для того, чтобы просто описывать конкретные варианты осуществления, но не имеют намерение ограничивать настоящий документ. Выражение единственного числа включает в себя выражение множественного числа до этих пор, до тех пор, пока они четко трактуются по-разному. Такие термины, как "включать в себя" и "иметь", предназначены для того, чтобы указывать то, что существуют признаки, числа, этапы, операции, элементы, компоненты либо комбинации вышеозначенного, используемые в нижеприведенном описании, и в силу этого следует понимать, что не исключается возможность наличия или добавления одного или более других признаков, чисел, этапов, операций, элементов, компонентов либо комбинаций вышеозначенного.
[32] Между тем каждая конфигурация на чертежах, описанная в настоящем документе, показывается независимо для удобства описания относительно различных характеристических функций и не означает, что каждая конфигурация реализуется как отдельные аппаратные средства или отдельное программное обеспечение. Например, два или более компонентов для каждого компонента могут комбинироваться, чтобы формировать один компонент, либо один компонент может разделяться на множество компонентов. Варианты осуществления, в которых каждый компонент интегрируется и/или отделяется, также включаются в объем раскрытия сущности настоящего документа.
[33] В дальнейшем в этом документе подробно описываются примеры настоящего варианта осуществления со ссылкой на прилагаемые чертежи. Помимо этого, аналогичные ссылки с номерами используются для того, чтобы указывать аналогичные элементы на всех чертежах, и идентичные описания аналогичных элементов опускаются.
[34] Фиг. 1 иллюстрирует пример системы кодирования видео/изображений, к которой могут применяться варианты осуществления настоящего документа.
[35] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое устройство (исходное устройство) и второе устройство (приемное устройство). Исходное устройство может передавать кодированную информацию или данные видео/изображений в приемное устройство через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи.
[36] Исходное устройство может включать в себя видеоисточник, оборудование кодирования и передатчик. Приемное устройство может включать в себя приемник, оборудование декодирования и модуль рендеринга. Оборудование кодирования может называться "оборудованием кодирования видео/изображений", и оборудование декодирования может называться "оборудованием декодирования видео/изображений". Передатчик может включаться в оборудование кодирования. Приемник может включаться в оборудование декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[37] Видеоисточник может получать видео/изображение посредством процесса захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[38] Оборудование кодирования может кодировать входное видео/изображение. Оборудование кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[39] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в оборудование декодирования.
[40] Оборудование декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе оборудования кодирования.
[41] Модуль рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[42] Настоящий документ относится к кодированию видео/изображений. Например, способ/вариант осуществления, раскрытый в этом документе, может применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC), стандарте фундаментального кодирования видео (EVC), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, H.267, H.268 и т.п.).
[43] Настоящий документ предлагает различные варианты осуществления кодирования видео/изображений, и вышеуказанные варианты осуществления также могут выполняться в комбинации между собой, если не указано иное.
[44] В настоящем документе, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу, представляющую одно изображение в конкретном временном кадре, и срез/плитка означает единицу, составляющую часть кадра с точки зрения кодирования. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток. Один кадр может состоять из одной или более групп плиток. Одна группа плиток может включать в себя одну или более плиток. Кирпич может представлять прямоугольную область CTU-строк в плитке в кадре. Плитка может сегментироваться на несколько кирпичей, каждый из которых может конструироваться с одной или более CTU-строк в плитке. Плитка, которая не сегментируется на несколько кирпичей, также может называться "кирпичом". Кирпичное сканирование может представлять конкретное последовательное упорядочение CTU, сегментирующих кадр, при этом CTU могут упорядочиваться при растровом сканировании CTU в кирпиче, и кирпичи в плитке могут упорядочиваться последовательно при растровом сканировании кирпичей плитки, и плитки в кадре могут упорядочиваться последовательно при растровом сканировании плиток кадра. Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно при растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно при растровом сканировании плиток кадра. Срез включает в себя собой целое число кирпичей кадра, которые могут содержаться исключительно в одной NAL-единице. Срез может состоять либо из определенного числа полных плиток, либо только из жесткой последовательности полных кирпичей одной плитки. В настоящем документе, группа плиток и срез могут использоваться друг вместо друга. Например, в настоящем документе, группа плиток/заголовок группы плиток может называться "срезом/заголовком среза".
[45] Между тем, один кадр может разделяться на два или более субкадров. Субкадр может представлять собой прямоугольную область одного или более срезов в кадре.
[46] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.
[47] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, Cb, Cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк. Альтернативно, выборка может означать пиксельное значение в пространственной области и когда такое пиксельное значение преобразуется в частотную область, это может означать коэффициент преобразования в частотной области.
[48] В настоящем документе, "A или B" может означать "только A", "только B" или "как A, так и B". Другими словами, "A или B" в настоящем документе может интерпретироваться в качестве "A и/или B". Например, в настоящем документе "A, B или C (A, B или C) " означает "только A", "только B", "только C" либо "любая комбинация A, B и C".
[49] Наклонная черта (/) или запятая (запятая), используемая в настоящем документе, может означать "и/или". Например, "A/B" может означать "A и/или B". Соответственно, "A/B" может означать "только A", "только B" либо "как A, так и B". Например, "A, B, C" может означать "A, B или C".
[50] В настоящем документе, "по меньшей мере, одно из A и B" может означать "только A", "только B" или "как A, так и B". Кроме того, в настоящем документе, выражение "по меньшей мере, одно из A или B" или "по меньшей мере, одно из A и/или B" может интерпретироваться идентично "по меньшей мере, одно из A и B".
[51] Кроме того, в настоящем документе, "по меньшей мере, одно из A, B и C" означает "только A", "только B", "только C" либо "любая комбинация A, B и C". Кроме того, "по меньшей мере, одно из A, B или C" или "по меньшей мере, одно из A, B и/или C" может означать "по меньшей мере, одно из A, B и C".
[52] Кроме того, круглые скобки, используемые в настоящем документе, могут означать "например". В частности, когда "прогнозирование (внутреннее прогнозирование) " указывается, "внутреннее прогнозирование" может предлагаться в качестве примера "прогнозирования". Другими словами, "прогнозирование" в настоящем документе не ограничено "внутренним прогнозированием", и "внутреннее прогнозирование" может предлагаться в качестве примера "прогнозирования". Кроме того, даже когда "прогнозирование (т.е. внутреннее прогнозирование) " указывается, "внутреннее прогнозирование" может предлагаться в качестве примера "прогнозирования".
[53] Технические признаки, которые отдельно описываются на одном чертеже в настоящем документе, могут реализовываться отдельно или одновременно.
[54] Фиг. 2 является схемой, принципиально иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому могут применяться варианты осуществления настоящего документа. В дальнейшем в этом документе, то, что называется "оборудованием кодирования видео", может включать в себя оборудование кодирования изображений.
[55] Ссылаясь на фиг. 2, оборудование 200 кодирования включает в себя модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230 и энтропийный кодер 240, сумматор 250, фильтр 260 и запоминающее устройство 270. Модуль 220 прогнозирования может включать в себя модуль 221 взаимного прогнозирования и модуль 222 внутреннего прогнозирования. Остаточный процессор 230 может включать в себя преобразователь 232, квантователь 233, деквантователь 234 и обратный преобразователь 235. Остаточный процессор 230 дополнительно может включать в себя вычитатель 231. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230, энтропийный кодер 240, сумматор 250 и фильтр 260 могут быть сконфигурированы, по меньшей мере, посредством одного аппаратного компонента (например, набора микросхем или процессора кодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 270 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 270 в качестве внутреннего/внешнего компонента.
[56] Модуль 210 сегментации изображений может сегментировать входное изображение (либо кадр или кадр), вводимое в оборудование 200 кодирования, на один более блоков обработки. Например, блок обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно сегментироваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию сущности может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристикам изображений, или при необходимости, единица кодирования может рекурсивно сегментироваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, блок обработки дополнительно может включать в себя единицу прогнозирования (PU) или единицу преобразования (TU). В этом случае, единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[57] Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка, в общем, может представлять пиксел или значение пиксела, может представлять только пиксел/пиксельное значение компонента сигнала яркости либо представлять только пиксел/пиксельное значение компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего одному кадру (или изображению) для пиксела или пела.
[58] В оборудовании 200 кодирования, прогнозный сигнал (прогнозированный блок, массив прогнозных выборок), выводимый из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, вычитается из сигнала входного изображения (исходного блока, массива исходных выборок), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных выборок), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как показано, модуль для вычитания прогнозного сигнала (прогнозированного блока, массива прогнозных выборок) из сигнала входного изображения (исходного блока, массива исходных выборок) в кодере 200 может называться "вычитателем 231". Модуль прогнозирования может выполнять прогнозирование для блока, который должен обрабатываться (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, на основе текущего блока или CU. Как описано ниже в описании каждого режима прогнозирования, модуль прогнозирования может формировать различную информацию, связанную с прогнозированием, к примеру, информацию режима прогнозирования, и передавать сформированную информацию в энтропийный кодер 240. Информация относительно прогнозирования может кодироваться в энтропийном кодере 240 и выводиться в форме потока битов.
[59] Модуль 222 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены независимо согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 222 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[60] Модуль 221 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU) " и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 221 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 221 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может указываться посредством передачи в служебных сигналах разности векторов движения.
[61] Модуль 220 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять как внутренние прогнозирование, так и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в настоящем раскрытии сущности. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[62] Прогнозный сигнал, сформированный посредством модуля прогнозирования (включающего в себя модуль 221 взаимного прогнозирования и/или модуль 222 внутреннего прогнозирования), может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, сформированное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
[63] Квантователь 233 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать блочные квантованные коэффициенты преобразования в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Информация относительно коэффициентов преобразования может формироваться. Энтропийный кодер 240 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 240 может кодировать информацию, необходимую для восстановления видео/изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах NAL (слоя абстрагирования от сети) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В настоящем раскрытии сущности, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из оборудования кодирования в оборудование декодирования, могут включаться в информацию видео/кадров. Информация видео/изображений может кодироваться через вышеописанную процедуру кодирования и включаться в поток битов. Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 240, и/или модуль хранения (не показан), сохраняющий сигнал, могут включаться в качестве внутреннего/внешнего элемента оборудования 200 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 240.
[64] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и обратный преобразователь 235. Сумматор 250 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[65] Между тем преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться во время кодирования и/или восстановления кадров.
[66] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[67] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 взаимного прогнозирования. Когда взаимное прогнозирование применяется посредством оборудования кодирования, рассогласование прогнозирования между оборудованием 200 кодирования и оборудованием 300 декодирования может исключаться, и эффективность кодирования может повышаться.
[68] DPB запоминающего устройства 270 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 взаимного прогнозирования. Запоминающее устройство 270 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 221 взаимного прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 222 внутреннего прогнозирования.
[69] Фиг. 3 является принципиальной схемой, иллюстрирующей конфигурацию оборудования декодирования видео/изображений, к которому может применяться вариант(ы) осуществления настоящего раскрытия сущности.
[70] Ссылаясь на фиг. 3, оборудование 300 декодирования может включать в себя энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340, фильтр 350, запоминающее устройство 360. Модуль 330 прогнозирования может включать в себя модуль 331 взаимного прогнозирования и модуль 332 внутреннего прогнозирования. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340 и фильтр 350 могут быть сконфигурированы посредством аппаратного компонента (например, набора микросхем или процессора декодера) согласно варианту осуществления. Помимо этого, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.
[71] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 300 декодирования может восстанавливать изображение, соответствующее процессу, в котором информация видео/изображений обрабатывается в оборудовании кодирования по фиг. 2. Например, оборудование 300 декодирования может извлекать единицы/блоки на основе связанной с сегментацией на блоки информации, полученной из потока битов. Оборудование 300 декодирования может выполнять декодирование с использованием блока обработки, применяемого в оборудовании кодирования. Таким образом, блок обработки декодирования, например, может представлять собой единицу кодирования, и единица кодирования может сегментироваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 300 декодирования, может воспроизводиться посредством оборудования воспроизведения.
[72] Оборудование 300 декодирования может принимать сигнал, выводимый из оборудования кодирования по фиг. 2 в форме потока битов, и принимаемый сигнал может декодироваться через энтропийный декодер 310. Например, энтропийный декодер 310 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Оборудование декодирования дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные далее в настоящем раскрытии сущности, могут декодироваться, могут декодировать процедуру декодирования и получаться из потока битов. Например, энтропийный декодер 310 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования целевого блока декодирования или информации символа/элемента разрешения, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для элемента разрешения посредством прогнозирования вероятности появления элемента разрешения согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/элемента разрешения для контекстной модели следующего символа/элемента разрешения после определения контекстной модели. Информация, связанная с прогнозированием, из информации, декодированной посредством энтропийного декодера 310, может предоставляться в модуль прогнозирования (модуль 332 взаимного прогнозирования и модуль 331 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 310, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в остаточный процессор 320. Остаточный процессор 320 может извлекать остаточный сигнал (остаточный блок, остаточные выборки, массив остаточных выборок). Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 310, может предоставляться в фильтр 350. Между тем, приемник (не показан) для приема сигнала, выводимого из оборудования кодирования, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента оборудования 300 декодирования, либо приемник может представлять собой компонент энтропийного декодера 310. Между тем, оборудование декодирования согласно этому документу может называться "оборудованием декодирования видео/изображений/кадров", и оборудование декодирования может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 310, и выборочный декодер может включать в себя, по меньшей мере, одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, запоминающего устройства 360, модуля 332 взаимного прогнозирования и модуля 331 внутреннего прогнозирования.
[73] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерной блочной формы. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[74] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[75] Модуль 230 прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 310, и может определять конкретный режим внутреннего/взаимного прогнозирования.
[76] Модуль 320 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в настоящем раскрытии сущности. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[77] Модуль 331 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены независимо согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[78] Модуль 332 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 332 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[79] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 332 взаимного прогнозирования и/или модуль 331 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока.
[80] Сумматор 340 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, может выводиться посредством фильтрации, как описано ниже, или может использоваться для взаимного прогнозирования следующего кадра.
[81] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[82] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 взаимного прогнозирования. Запоминающее устройство 360 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 331 внутреннего прогнозирования.
[83] В настоящем документе, варианты осуществления, описанные в фильтре 260, модуле 221 взаимного прогнозирования и модуле 222 внутреннего прогнозирования оборудования 200 кодирования, могут быть идентичными или надлежащим образом применяться, так что они соответствуют фильтру 350, модулю 332 взаимного прогнозирования и модулю 331 внутреннего прогнозирования оборудования 300 декодирования. То же также может применяться к модулю 332 и модулю 331 внутреннего прогнозирования.
[84] Как описано выше, при кодировании видео, прогнозирование выполняется для того, чтобы повышать эффективность сжатия. Через это, можно формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока, который представляет собой блок, который должен кодироваться. Здесь, прогнозированный блок включает в себя прогнозные выборки в пространственной области (или пиксельной области). Прогнозированный блок извлекается одинаково из устройства кодирования и устройства декодирования, и устройство кодирования декодирует информацию (остаточную информацию) относительно остатка между исходным блоком и прогнозированным блоком, а не исходное выборочное значение самого исходного блока. Посредством передачи служебных сигналов в устройство может увеличиваться эффективность кодирования изображений. Оборудование декодирования может извлекать остаточный блок, включающий в себя остаточные выборки на основе остаточной информации, и формировать восстановленный блок, включающий в себя восстановленные выборки, посредством суммирования остаточного блока с прогнозированным блоком и формировать восстановленный кадр, включающий в себя восстановленные блоки.
[85] Остаточная информация может формироваться через процессы преобразования и квантования. Например, оборудование кодирования может извлекать остаточный блок между исходным блоком и прогнозированным блоком и выполнять процесс преобразования для остаточных выборок (массива остаточных выборок), включенных в остаточный блок, чтобы извлекать коэффициенты преобразования, и после этого, посредством выполнения процесса квантования для коэффициентов преобразования, извлекать квантованные коэффициенты преобразования, чтобы передавать в служебных сигналах остаточную связанную информацию в оборудование декодирования (через поток битов). Здесь, остаточная информация может включать в себя информацию местоположения, технологию преобразования, ядро преобразования и параметр квантования, информацию значений квантованных коэффициентов преобразования и т.д. Оборудование декодирования может выполнять процесс деквантования/обратного преобразования на основе остаточной информации и извлекать остаточные выборки (или остаточные блоки). Оборудование декодирования может формировать восстановленное изображение на основе прогнозированного блока и остаточного блока. Оборудование кодирования также может деквантовать/обратно преобразовывать квантованные коэффициенты преобразования для ссылки для взаимного прогнозирования более позднего кадра, чтобы извлекать остаточный блок и формировать восстановленный кадр на его основе. В настоящем документе, по меньшей мере, одно из квантования/деквантования и/или преобразования/обратного преобразования может опускаться. Когда квантование/деквантование опускается, квантованный коэффициент преобразования может называться "коэффициентом преобразования". Когда преобразование/обратное преобразование опускается, коэффициенты преобразования могут называться "коэффициентами" или "остаточными коэффициентами" либо по-прежнему могут называться "коэффициентами преобразования" для единообразности выражения. В настоящем документе, квантованный коэффициент преобразования и коэффициент преобразования могут называться "коэффициентом преобразования" и "масштабированным коэффициентом преобразования", соответственно. В этом случае, остаточная информация может включать в себя информацию относительно коэффициента(ов) преобразования, и информация относительно коэффициента(ов) преобразования может передаваться в служебных сигналах через синтаксис остаточного кодирования. Коэффициенты преобразования могут извлекаться на основе остаточной информации (или информации относительно коэффициента(ов) преобразования), и масштабированные коэффициенты преобразования могут извлекаться через обратное преобразование (масштабирование) для коэффициентов преобразования. Остаточные выборки могут извлекаться на основе обратного преобразования (преобразования) масштабированных коэффициентов преобразования. Это также может применяться/выражаться в других частях настоящего документа.
[86] Внутреннее прогнозирование может означать прогнозирование, которое формирует прогнозные выборки для текущего блока на основе опорных выборок в кадре, которому принадлежит текущий блок (далее называется "текущим кадром"). Когда внутреннее прогнозирование применяется к текущему блоку, соседние опорные выборки, которые должны использоваться для внутреннего прогнозирования текущего блока, могут извлекаться. Соседние опорные выборки текущего блока могут включать в себя выборки, смежные с левой границей относительно текущего блока, имеющего размер nWxnH, и в сумме 2xnH выборок, граничащих с левой нижней частью, выборки, смежные с верхней границей относительно текущего блока, и в сумме 2xnW выборок, граничащих с правой верхней частью, и одну выборку, граничащую с левой верхней частью относительно текущего блока. Альтернативно, соседние опорные выборки текущего блока могут включать в себя множество верхних соседних выборок и множество левых соседних выборок. Помимо этого, соседние опорные выборки текущего блока могут включать в сумме nH выборок, смежных с правой границей относительно текущего блока, имеющего размер nWxnH, в сумме nW выборок, смежных с нижней границей относительно текущего блока, и одну выборку, смежную с правой нижней частью относительно текущего блока.
[87] Тем не менее некоторые соседние опорные выборки текущего блока могут еще не декодироваться или не быть доступными. В этом случае, декодер может конфигурировать соседние опорные выборки, которые следует использовать для прогнозирования, посредством подстановки вместо выборок, которые не доступны, доступных выборок. Альтернативно, соседние опорные выборки, которые должны использоваться для прогнозирования, могут быть сконфигурированы через интерполяцию доступных выборок.
[88] Когда соседние опорные выборки извлекаются, (i) прогнозная выборка может извлекаться на основе среднего или интерполяции соседних опорных выборок текущего блока, и (ii) прогнозная выборка может извлекаться на основе опорной выборки, присутствующей в конкретном направлении (прогнозирования) для прогнозной выборки из периферийных опорных выборок текущего блока. Случай (i) может называться "ненаправленным режимом" или "неугловым режимом", и случай (ii) может называться "направленным режимом" или "угловым режимом".
[89] Кроме того, прогнозная выборка также может формироваться через интерполяцию между второй соседней выборкой и первой соседней выборкой, расположенной в направлении, противоположном направлению прогнозирования режима внутреннего прогнозирования текущего блока на основе прогнозной выборки текущего блока из соседних опорных выборок. Вышеописанный случай может называться "внутренним прогнозированием с линейной интерполяцией (LIP)". Помимо этого, выборки прогнозирования сигналов цветности могут формироваться на основе выборок сигнала яркости с использованием линейной модели. Этот случай может называться "LM-режимом".
[90] Помимо этого, временная прогнозная выборка текущего блока может извлекаться на основе фильтруемых соседних опорных выборок и, по меньшей мере, одной опорной выборки, извлекаемой согласно режиму внутреннего прогнозирования из существующих соседних опорных выборок, т.е. нефильтрованные соседние опорные выборки и временная прогнозная выборка могут суммироваться со взвешиванием, чтобы извлекать прогнозную выборку текущего блока. Вышеописанный случай может называться "позиционно-зависимым внутренним прогнозированием (PDPC)".
[91] Помимо этого, линия опорных выборок, имеющая наибольшую точность прогнозирования из соседних множественных опорных примерных линий текущего блока, может выбираться, чтобы извлекать прогнозную выборку посредством использования опорной выборки, расположенной в направлении прогнозирования на соответствующей линии, и затем линия опорных выборок, используемая в данном документе, может указываться (передаваться в служебных сигналах) в оборудование декодирования, за счет этого выполняя внутреннее прогнозирующее кодирование. Вышеописанный случай может называться "внутренним прогнозированием на основе множественной опорной линии (MRL) " или "внутренним прогнозированием на основе MRL".
[92] Помимо этого, внутреннее прогнозирование может выполняться на основе идентичного режима внутреннего прогнозирования посредством разделения текущего блока на вертикальные или горизонтальные субсегменты, и соседние опорные выборки могут извлекаться и использоваться в единице субсегментов. Таким образом, в этом случае, режим внутреннего прогнозирования для текущего блока в равной степени применяется к субсегментам, и производительность внутреннего прогнозирования может повышаться в некоторых случаях посредством извлечения и использования соседних опорных выборок в единице субсегментов. Такой способ прогнозирования может называться "внутренним прогнозированием на основе внутренних субсегментов (ISP) или на основе ISP".
[93] Вышеописанные способы внутреннего прогнозирования могут называться "типом внутреннего прогнозирования" отдельно от режима внутреннего прогнозирования. Тип внутреннего прогнозирования может называться с помощью различных терминов, таких как "технология внутреннего прогнозирования" или "дополнительный режим внутреннего прогнозирования". Например, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования) может включать в себя, по меньшей мере, одно из вышеописанных LIP, PDPC, MRL и ISP. Общий способ внутреннего прогнозирования, за исключением конкретного типа внутреннего прогнозирования, такого как LIP, PDPC, MRL или ISP, может называться "типом нормального внутреннего прогнозирования". Тип нормального внутреннего прогнозирования, в общем, может применяться, когда конкретный тип внутреннего прогнозирования не применяется, и прогнозирование может выполняться на основе режима внутреннего прогнозирования, описанного выше. Между тем, постфильтрация может выполняться для прогнозированной выборки, извлекаемой по мере необходимости.
[94] В частности, процедура внутреннего прогнозирования может включать в себя этап определения режима/типа внутреннего прогнозирования, этап извлечения соседних опорных выборок и этап извлечения прогнозных выборок на основе режима/типа внутреннего прогнозирования. Помимо этого, этап постфильтрации может выполняться для прогнозированной выборки, извлекаемой по мере необходимости.
[95] Когда внутреннее прогнозирование применяется, режим внутреннего прогнозирования, применяемый к текущему блоку, может определяться с использованием режима внутреннего прогнозирования соседнего блока. Например, оборудование декодирования может выбирать один из возможных вариантов наиболее вероятного режима (MPM) MPM-списка, извлекаемого на основе режима внутреннего прогнозирования соседнего блока (например, левого и/или верхнего соседних блоков) относительно текущего блока на основе принимаемого MPM-индекса и выбирать один из других оставшихся вводных режимов прогнозирования, не включенных в возможные MPM-варианты (и в планарный режим), на основе информации оставшегося режима внутреннего прогнозирования. MPM-список может быть выполнен с возможностью включать в себя или не включать в себя планарный режим в качестве возможного варианта. Например, если MPM-список включает в себя планарный режим в качестве возможного варианта, MPM-список может иметь шесть возможных вариантов. Если MPM-список не включает в себя планарный режим в качестве возможного варианта, MPM-список может иметь три возможных варианта. Когда MPM-список не включает в себя планарный режим в качестве возможного варианта, непланарный флаг (например, intra_luma_not_planar_flag), указывающий то, не представляет собой либо представляет собой режим внутреннего прогнозирования текущего блока планарный режим, может передаваться в служебных сигналах. Например, MPM-флаг может передаваться в служебных сигналах сначала, и MPM-индекс и непланарный флаг могут передаваться в служебных сигналах, когда значение MPM-флага равно 1. Помимо этого, MPM-индекс может передаваться в служебных сигналах, когда значение непланарного флага равно 1. Здесь, MPM-список выполнен с возможностью как не включать в себя планарный режим, поскольку возможный вариант не должен передавать в служебных сигналах непланарный флаг первым, чтобы сначала проверять то представляет он собой или нет планарный режим, поскольку планарный режим всегда рассматривается в качестве MPM.
[96] Например, то, находится режим внутреннего прогнозирования, применяемый к текущему блоку, в возможных MPM-вариантах (и в планарном режиме) или в оставшемся режиме, может указываться на основе MPM-флага (например, intra_luma_mpm_flag). Значение 1 MPM-флага может указывать то, что режим внутреннего прогнозирования для текущего блока находится в возможных MPM-вариантах (и в планарном режиме), и значение 0 MPM-флага может указывать то, что режим внутреннего прогнозирования для текущего блока не находится в возможных MPM-вариантах (и планарном режиме). Значение 0 непланарного флага (например, intra_luma_not_planar_flag) может указывать то, что режим внутреннего прогнозирования для текущего блока представляет собой планарный режим, и значение 1 не значения планарного флага может указывать то, что режим внутреннего прогнозирования для текущего блока не представляет собой планарный режим. MPM-индекс может передаваться в служебных сигналах в форме синтаксического элемента mpm_idx или intra_luma_mpm_idx, и информация оставшегося режима внутреннего прогнозирования может передаваться в служебных сигналах в форме синтаксического элемента rem_intra_luma_pred_mode или intra_luma_mpm_remainder. Например, информация оставшегося режима внутреннего прогнозирования может индексировать оставшиеся режимы внутреннего прогнозирования, не включенные в возможные MPM-варианты (и в планарный режим), из всех режимов внутреннего прогнозирования в порядке номера режима прогнозирования, чтобы указывать один из них. Режим внутреннего прогнозирования может представлять собой режим внутреннего прогнозирования для компонента (выборки) сигнала яркости. В дальнейшем в этом документе, информация режима внутреннего прогнозирования может включать в себя, по меньшей мере, одно из MPM-флага (например, intra_luma_mpm_flag), непланарного флага (например, Intra_luma_not_planar_flag), MPM-индекса (например, mpm_idx или intra_luma_mpm_idx) и информации оставшегося режима внутреннего прогнозирования (rem_intra_luma_pred_mode или intra_luma_mpm_remainder). В настоящем документе, MPM-список может называться с помощью различных терминов, таких как "список возможных MPM-вариантов" и "candModeList". Когда MIP применяется к текущему блоку, отдельный MPM-флаг (например, intra_mip_mpm_flag), MPM-индекс (например, intra_mip_mpm_idx) и информация оставшегося режима внутреннего прогнозирования (например, intra_mip_mpm_remainder) для MIP могут передаваться в служебных сигналах, и непланарный флаг не передается в служебных сигналах.
[97] Другими словами, в общем, когда разбиение блоков выполняется для изображения, текущий блок и соседний блок, которые должны кодироваться, имеют аналогичные характеристики изображений. Следовательно, текущий блок и соседний блок имеют высокую вероятность наличия идентичного или аналогичного режима внутреннего прогнозирования. Таким образом, кодер может использовать режим внутреннего прогнозирования соседнего блока для того, чтобы кодировать режим внутреннего прогнозирования текущего блока.
[98] Например, кодер/декодер может конфигурировать список наиболее вероятных режимов (MPM) для текущего блока. MPM-список также может называться "списком возможных MPM-вариантов". В данном документе, MPM может означать режим, используемый для того, чтобы повышать эффективность кодирования с учетом подобия между текущим блоком и соседним блоком при кодировании режима внутреннего прогнозирования. Как описано выше, MPM-список может быть выполнен с возможностью включать в себя планарный режим или может быть выполнен с возможностью исключать планарный режим. Например, когда MPM-список включает в себя планарный режим, число возможных вариантов в MPM-списке может быть равным 6. Так же, если MPM-список не включает в себя планарный режим, число возможных вариантов в MPM-списке может быть равным 5.
[99] Кодер/декодер может конфигурировать MPM-список, включающий в себя 5 или 6 MPM.
[100] Чтобы конфигурировать MPM-список, три типа режимов могут рассматриваться: внутренние режимы по умолчанию, соседние внутренние режимы и извлеченные внутренние режимы.
[101] Для соседних внутренних режимов, могут рассматриваться два соседних блока, т.е. левый соседний блок и верхний соседний блок.
[102] Как описано выше, если MPM-список выполнен с возможностью не включать в себя планарный режим, планарный режим исключается из списка, и число возможных вариантов MPM-списков может задаваться равным 5.
[103] Помимо этого, ненаправленный режим (или неугловой режим) из режимов внутреннего прогнозирования может включать в себя DC-режим на основе среднего соседних опорных выборок текущего блока или планарный режим на основе интерполяции.
[104] Когда взаимное прогнозирование применяется, модуль прогнозирования оборудования кодирования/оборудования декодирования может извлекать прогнозную выборку посредством выполнения взаимного прогнозирования в единицах блоков. Взаимное прогнозирование может представлять собой прогнозирование, извлекаемое таким способом, который зависит от элементов данных (например, выборочных значений или информаций движения) кадра(ов), отличного от текущего кадра. Когда взаимное прогнозирование применяется к текущему блоку, прогнозированный блок (массив прогнозных выборок) для текущего блока может извлекаться на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения на опорном кадре, указываемом посредством индекса опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения текущего блока может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU) " и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, список возможных вариантов информации движения может быть сконфигурирован на основе соседних блоков текущего блока, и информация флага или индекса, указывающая то, какой возможный вариант выбирается (используется), может передаваться в служебных сигналах, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть идентичной информации движения соседнего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения выбранного соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может передаваться в служебных сигналах. В этом случае, вектор движения текущего блока может извлекаться с использованием суммы предиктора вектора движения и разности векторов движения.
[105] Информация движения может включать в себя L0-информацию движения и/или L1-информацию движения согласно типу взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). Вектор движения в L0-направлении может называться "L0-вектором движения" или "MVL0", и вектор движения в L1-направлении может называться "L1-вектором движения" или "MVL1". Прогнозирование на основе L0-вектора движения может называться "L0-прогнозированием", прогнозирование на основе L1-вектора движения может называться "L1-прогнозированием", и прогнозирование на основе как L0-вектора движения, так и L1-вектора движения может называться "бипрогнозированием". Здесь, L0-вектор движения может указывать вектор движения, ассоциированный со списком L0 опорных кадров (L0), и L1-вектор движения может указывать вектор движения, ассоциированный со списком L1 опорных кадров (L1). Список L0 опорных кадров может включать в себя кадры, которые находятся раньше в порядке вывода, чем текущий кадр, в качестве опорных кадров, и список L1 опорных кадров может включать в себя кадры, которые находятся позже в порядке вывода, чем текущий кадр. Предыдущие кадры могут называться "прямыми (опорными) кадрами", и последующие кадры могут называться "обратными (опорными) кадрами". Список L0 опорных кадров дополнительно может включать в себя кадры, которые находятся позже в порядке вывода, чем текущий кадр, в качестве опорных кадров. В этом случае, предыдущие кадры могут индексироваться сначала в списке L0 опорных кадров, и последующие кадры могут индексироваться позже. Список L1 опорных кадров дополнительно может включать в себя предыдущие кадры в порядке вывода относительно текущего кадра в качестве опорных кадров. В этом случае, последующие кадры могут индексироваться сначала в списке 1 опорных кадров, и предыдущие кадры могут индексироваться позже. Порядок вывода может соответствовать порядку номеров в последовательности кадров (POC).
[106] Фиг. 4 является чертежом для пояснения способа извлечения информации движения через режим взаимного прогнозирования. Здесь, из режимов взаимного прогнозирования, ниже описываются режим объединения, режим прогнозирования векторов движения (MVP) (или усовершенствованное прогнозирование векторов движения (AMVP)), режим попарного среднего объединения и режим MVP на основе предыстории (HMVP).
[107] Когда режим объединения применяется, информация движения текущего блока прогнозирования непосредственно не передается, и информация движения текущего блока прогнозирования извлекается с использованием информации движения соседнего блока прогнозирования. Следовательно, информация движения текущего блока прогнозирования может указываться посредством передачи информации флага, указывающей то, что режим объединения используется, и индекса объединения, указывающего то, какие соседние блоки прогнозирования используются.
[108] Кодер должен выполнять поиск возможного варианта блока объединения, используемого для того, чтобы извлекать информацию движения текущего блока прогнозирования, чтобы выполнять режим объединения. Например, могут использоваться вплоть до пяти возможных вариантов блоков объединения, но настоящий документ не ограничен этим. Максимальное число возможных вариантов блоков объединения может передаваться в заголовке среза, заголовке группы плиток или наборе параметров (т.е. наборе параметров последовательности (SPS)), и настоящий документ не ограничен этим. После нахождения возможных вариантов блоков объединения, кодер может формировать список возможных вариантов объединения и выбирать возможный вариант блока объединения, имеющий наименьшие затраты из них, в качестве конечного возможного варианта блока объединения.
[109] Настоящий документ предоставляет различные варианты осуществления возможного варианта блока объединения, конфигурирующего список возможных вариантов объединения.
[110] Список возможных вариантов объединения может использовать, например, пять возможных вариантов блоков объединения. Например, могут использоваться четыре пространственных возможных варианта объединения и один временной возможный вариант объединения. В качестве конкретного примера, в случае пространственного возможного варианта объединения, блоки, показанные на фиг. 4, могут использоваться в качестве пространственного возможного варианта объединения.
[111] Список возможных вариантов объединения для текущего блока может быть сконфигурирован, например, на основе следующей процедуры.
[112] Оборудование кодирования (кодер/декодер) вставляет пространственные возможные варианты объединения, извлекаемые посредством поиска пространственных соседних блоков текущего блока, в список возможных вариантов объединения (S310). Например, пространственные соседние блоки могут включать в себя левый нижний угловой соседний блок, левый соседний блок, правый верхний угловой соседний блок, верхний соседний блок и левый верхний угловой соседний блок относительно текущего блока. Тем не менее, это представляет собой просто пример, и в дополнение к вышеописанным пространственным соседним блокам, дополнительные соседние блоки, такие как правый соседний блок, нижний соседний блок и правый нижний соседний блок, могут использоваться в качестве пространственных соседних блоков. Оборудование кодирования может выполнять поиск пространственных соседних блоков на основе приоритета, с тем чтобы обнаруживать доступные блоки, и извлекать информацию движения обнаруженных блоков в качестве пространственных возможных вариантов объединения. Например, кодер и декодер могут выполнять поиск пяти блоков, показанных на фиг. 1.3.2-1 в порядке A1, B1, B0, A0, B2, и последовательно индексировать доступные возможные варианты, чтобы конфигурировать список возможных вариантов объединения.
[113] Оборудование кодирования вставляет временной возможный вариант объединения, извлекаемый посредством выполнения поиска во временном соседнем блоке текущего блока, в список возможных вариантов объединения (S320). Временной соседний блок может быть расположен в опорном кадре, т.е. в кадре, отличающемся от текущего кадра, в котором расположен текущий блок. Опорный кадр, в котором расположен временной соседний блок, может называться "совместно размещенным кадром" или "совместно размещ. кадром". Можно выполнять поиск временного соседнего блока в порядке из правого нижнего углового соседнего блока и правого нижнего центрального блока относительно совместно размещенного блока для текущего блока в совместно размещ. кадре. Между тем, когда сжатие данных движения применяется, конкретная информация движения может сохраняться в качестве характерной информации движения для каждой предварительно определенной единицы хранения в совместно размещ. кадре. В этом случае, необязательно сохранять информацию движения для всех блоков в предварительно определенной единице хранения, за счет этого получая преимущество сжатия данных движения. В этом случае, предварительно определенная единица хранения может заранее определяться, например, в единицах выборок 16×16, единицах выборок 8×8 и т.п., либо информация размера относительно предварительно определенной единицы хранения может передаваться в служебных сигналах из кодера в декодер. Когда сжатие данных движения применяется, информация движения временного соседнего блока может заменяться характерной информацией движения предварительно определенной единицы хранения, в которой расположен временной соседний блок. Таким образом, в этом случае, с точки зрения реализации, предварительно определенное значение арифметически сдвигается вправо на основе координат (левой верхней выборочной позиции) временного соседнего блока, и после этого, временной возможный вариант объединения может извлекаться на основе информации движения блока прогнозирования, покрывающего арифметически сдвинутую влево позицию. Например, в случае, когда единица выборок, имеющая предварительно определенную единицу хранения, составляет 2nx2n, если координаты временного соседнего блока представляют собой (xTnb, yTnb), информация движения блока прогнозирования, расположенного в модифицированной позиции ((xTnb>>n)<<n), (yTnb>>n)<<n)). В частности, например, в случае если предварительно определенная единица хранения составляет единицу выборок 16×16, если координаты временного соседнего блока представляют собой (xTnb, yTnb), информация движения блока прогнозирования, расположенного в модифицированной позиции ((xTnb>>4)<<4), (yTnb>>4)<<4)), может использоваться для временного возможного варианта объединения. Альтернативно, например, в случае если предварительно определенная единица хранения составляет единицу выборок 8×8, если координаты временного соседнего блока представляют собой (xTnb, yTnb), информация движения блока прогнозирования, расположенного в модифицированной позиции ((xTnb>>3)<<3), (yTnb>>3)<<3)), может использоваться для временного возможного варианта объединения.
[114] Оборудование кодирования может определять то, меньше или нет число текущих возможных вариантов объединения максимального числа возможных вариантов объединения (максимального числа возможных вариантов, включенных в список возможных вариантов объединения) (S330). Максимальное число возможных вариантов объединения может быть предварительно задано или передаваться в служебных сигналах из кодера в декодер (т.е. через заголовок группы плиток или SPS). Например, кодер может формировать информацию относительно максимального числа возможных вариантов объединения (максимального числа возможных вариантов, включенных в список возможных вариантов объединения), кодировать информацию и передавать кодированную информацию в декодер в форме потока битов. Если максимальное число возможных вариантов объединения заполняется, последующий процесс добавления возможного варианта может не выполняться.
[115] В результате проверки, если число текущих возможных вариантов объединения меньше максимального числа возможных вариантов объединения, оборудование кодирования вставляет дополнительный возможный вариант объединения в список возможных вариантов объединения (S340). Дополнительный возможный вариант объединения может включать в себя, например, ATMVP и комбинированный бипрогнозирующий возможный вариант объединения (когда тип среза/плитки текущей группы срезов/плиток представляет собой B) и/или возможный вариант объединения с нулевым вектором.
[116] В результате проверки, если число текущих возможных вариантов объединения не меньше числа максимальных возможных вариантов объединения, оборудование кодирования может завершать конструирование списка возможных вариантов объединения. В этом случае, кодер может выбирать оптимальный возможный вариант объединения из возможных вариантов объединения, конфигурирующих список возможных вариантов объединения, на основе функции затрат на искажение в зависимости от скорости передачи (RD) и информации выбора сигналов (например, индекса объединения), указывающей выбранный возможный вариант объединения для декодера. Декодер может выбирать оптимальный возможный вариант объединения на основе списка возможных вариантов объединения и информации выбора.
[117] Как описано выше, информация движения выбранного возможного варианта объединения может использоваться в качестве информации движения текущего блока, и прогнозные выборки текущего блока могут извлекаться на основе информации движения текущего блока. Кодер может извлекать остаточные выборки текущего блока на основе прогнозных выборок и может передавать в служебных сигналах остаточную информацию относительно остаточных выборок в декодер. Декодер может формировать восстановленные выборки на основе остаточных выборок и прогнозированных выборок, извлекаемых на основе остаточной информации, и формировать восстановленный кадр на основе этого, как описано выше.
[118] Когда режим пропуска применяется, информация движения текущего блока может извлекаться таким же образом, как информация движения для случая, в котором режим объединения применяется. Тем не менее, когда режим пропуска применяется, остаточный сигнал для соответствующего блока опускается, и в силу этого прогнозные выборки могут использоваться в качестве восстановленных выборок.
[119] Когда режим прогнозирования векторов движения (MVP) применяется, список возможных вариантов предикторов векторов движения (MVP) может формироваться с использованием вектора движения восстановленного пространственного соседнего блока (который может представлять собой соседний блок по фиг. 4) и/или вектора движения временного соседнего блока (либо Col-блока). Таким образом, вектор движения, соответствующий восстановленному пространственному соседнему блоку, и/или вектор движения, соответствующий временному соседнему блоку, могут использоваться в качестве возможного варианта предиктора вектора движения. Когда бипрогнозирование применяется, список возможных MVP-вариантов для извлечения L0-информации движения и список возможных MVP-вариантов для извлечения L1-информации движения могут формироваться и использоваться отдельно. Вышеописанная информация прогнозирования (или информация относительно прогнозирования) может включать в себя информацию выбора (например, MVP-флаг или MVP-индекс), указывающую оптимальный возможный вариант предиктора вектора движения, выбранный из возможных вариантов предикторов векторов движения, включенных в список. В этом случае, модуль прогнозирования может выбирать предиктор вектора движения текущего блока из возможных вариантов предикторов векторов движения, включенных в список возможных вариантов векторов движения, с использованием информации выбора. Модуль прогнозирования оборудования кодирования может получать разность векторов движения (MVD) между вектором движения текущего блока и предиктором вектора движения, кодировать ее и выводить означенное в форме потока битов. Таким образом, MVD может получаться в качестве значения, полученного посредством вычитания предиктора вектора движения из вектора движения текущего блока. В этом случае, модуль прогнозирования оборудования декодирования может получать разность векторов движения, включенную в информацию относительно прогнозирования, и извлекать вектор движения текущего блока посредством суммирования разности векторов движения и предиктора вектора движения. Модуль прогнозирования оборудования декодирования может получать или извлекать индекс опорного кадра, указывающий опорный кадр, из информации относительно прогнозирования.
[120] Возможные варианты объединения для MVP на основе предыстории (HMVP) могут добавляться в список для объединения после пространственного MVP и TMVP. В этом способе, информация движения ранее кодированного блока сохраняется в таблице и используется в качестве MVP для текущей CU. Таблица с несколькими возможными HMVP-вариантами поддерживается во время процесса кодирования/декодирования. Таблица сбрасывается (опустошается), когда встречается новая CTU-строка. Каждый раз, когда имеется несубблочно взаимно кодированная CU, ассоциированная информация движения добавляется в последнюю запись таблицы в качестве нового возможного HMVP-варианта.
[121] Размер S HMVP-таблицы задается равным 6, что указывает то, что вплоть до 6 возможных вариантов MVP на основе предыстории (HMVP) могут добавляться в таблицу. При вставке нового возможного варианта движения в таблицу, используется ограниченное правило "первый на входе - первый на выходе" (FIFO), при этом контроль по избыточности во-первых применяется, чтобы обнаруживать то, имеется или нет идентичное HMVP в таблице. Если обнаружено, идентичное HMVP удаляется из таблицы, и все возможные HMVP-варианты после него перемещаются вперед,
[122] Возможные HMVP-варианты могут использоваться в процессе конструирования списков возможных вариантов объединения. Последние несколько возможных HMVP-вариантов в таблице проверяются по порядку и вставляются в список возможных вариантов после возможного TMVP-варианта. Контроль по избыточности применяется для возможных HMVP-вариантов относительно пространственного или временного возможного варианта объединения.
[123] Чтобы сокращать число операций контроля по избыточности, следующие упрощения вводятся:
[124] 1) Число возможных HMPV-вариантов, используемых для формирования списков для объединения, задается как (N<=4)? M: (8-N), при этом N указывает число существующих возможных вариантов в списке для объединения, и M указывает число доступных возможных HMVP-вариантов в таблице.
[125] 2) После того как общее число доступных возможных вариантов объединения достигает максимально разрешенных возможных вариантов объединения минус 1, процесс конструирования списков возможных вариантов объединения из HMVP завершается.
[126] Попарные средние возможные варианты формируются посредством усреднения предварительно заданных пар возможных вариантов в существующем списке возможных вариантов объединения, и предварительно заданные пары задаются как {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, где числа обозначают индексы объединения в список возможных вариантов объединения. Усредненные векторы движения вычисляются отдельно для каждого опорного списка. Если оба вектора движения доступны в одном списке, эти два вектора движения усредняются, даже когда они указывают на различные опорные кадры; если только один вектор движения доступен, следует использовать его непосредственно; если вектор движения не доступен, следует поддерживать этот список недопустимым.
[127] Когда список для объединения не является полным после того, как попарные средние возможные варианты объединения добавляются, нулевые MVP вставляются в список до тех пор, пока не встречается максимальное число возможных вариантов объединения.
[128] В дальнейшем в этом документе, приводится подробное описание IBC, которое может выполняться посредством модуля прогнозирования оборудования по фиг. 2 или фиг. 3. IBC может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в настоящем документе. Например, IBC может использовать, по меньшей мере, один из вышеописанных способов для извлечения информации движения (вектора движения). IBC может ссылаться на текущий кадр и в силу этого может называться "ссылкой на текущие кадры (CPR)". Когда вышеописанные способы прогнозирования применяются в IBC, вектор движения (информация движения), в общем, может называться (заменяться или смешиваться) "блочным вектором (информацией блоков)".
[129] Для IBC, оборудование кодирования может выполнять поблочное сопоставление (BM), чтобы извлекать оптимальный блочный вектор (или вектор движения) для текущего блока (например, CU). Извлеченный блочный вектор (или вектор движения) может передаваться в служебных сигналах в оборудование декодирования через поток битов с использованием способа, аналогичного передаче в служебных сигналах информации блоков (вектора движения) при взаимном прогнозировании, описанной выше. Оборудование декодирования может извлекать опорный блок для текущего блока в текущем кадре через передаваемый в служебных сигналах блочный вектор (вектор движения), за счет этого запуская прогнозный сигнал (прогнозированный блок или прогнозированные выборки) для текущего блока. Здесь, блочный вектор (или вектор движения) может представлять смещение от текущего блока до опорного блока, расположенного в зоне, уже восстановленной в текущем кадре. Таким образом, блочный вектор (или вектор движения) может называться "вектором смещения". В дальнейшем в этом документе, в IBC, вектор движения может соответствовать блочному вектору или вектору смещения. Вектор движения текущего блока может включать в себя вектор движения для компонента сигнала яркости (вектор движения сигнала яркости) или вектор движения для компонента сигнала цветности (вектор движения сигнала цветности). Например, вектор движения сигнала яркости для IBC-кодированной CU может представлять собой целочисленную единицу выборок (т.е. целочисленную точность). Векторы движения сигнала цветности также могут отсекаться в целочисленных единицах выборок. Как упомянуто выше, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, например, 1-пелная и 4-пелная точность векторов движения может переключаться, когда применяется IBC, к примеру, AMVR.
[130] Чтобы уменьшать потребление запоминающего устройства и сложность декодера, может использоваться только восстановленная часть предварительно заданной зоны, включающая в себя текущую CTU. Это ограничение обеспечивает возможность реализации IBC-режима с использованием локального внутримикросхемного запоминающего устройства для аппаратных реализаций.
[131] На стороне кодера, оценка движения на основе хэша выполняется для IBC. Кодер выполняет RD-проверку для блоков с шириной или с высотой, не большей 16 выборок сигнала яркости. Для режима без объединения, блочный векторный поиск выполняется с использованием поиска на основе хэша сначала. Если хэш-поиск не возвращает допустимый возможный вариант, то должен выполняться локальный поиск на основе поблочного сопоставления.
[132] В поиске на основе хэша, сопоставление хэш-ключей (32-битовый CRC) между текущим блоком и опорным блоком расширяется на все разрешенные размеры блоков. Вычисление хэш-ключей для каждой позиции в текущем кадре основано на субблоках 4×4. Для текущего блока большего размера, хэш-ключ определяется как совпадающий с хэш-ключом опорного блока, когда все хэш-ключи всех субблоков 4×4 совпадают с хэш-ключами в соответствующих опорных местоположениях. Если обнаружено, что хэш-ключи нескольких опорных блоков совпадают с хэш-ключом текущего блока, затраты в виде блочных векторов каждой совпадающей ссылки вычисляются, и выбирается блочный вектор с минимальными затратами.
[133] В поиск на основе поблочного сопоставления, диапазон поиска задается равным N выборок влево и вверх относительно текущего блока в текущей CTU. В начале CTU, значение N инициализируется равным 128, если отсутствует временной опорной кадр, и инициализируется равным 64, если имеется, по меньшей мере, один временной опорный кадр. Процент хэш-совпадений задается как процентная доля от выборок в CTU, которая обнаруживает совпадение с использованием поиска на основе хэша. При кодировании текущей CTU, если процент хэш-совпадений составляет ниже 5%, N уменьшается наполовину.
[134] На уровне CU, IBC-режим передается в служебных сигналах с информацией флага (т.е. с информацией флага, указывающей то, применяется или нет IBC, pred_mode_ibc_flag), и он может передаваться в служебных сигналах в качестве IBC AMVP-режима или режима IBC-пропуска/объединения следующим образом.
[135] - Режим IBC-пропуска/объединения: индекс возможного варианта объединения используется для того, чтобы указывать то, какие из блочных векторов в списке из соседних возможных вариантов IBC-кодированных блоков используются для того, чтобы прогнозировать текущий блок. Список для объединения состоит из пространственных, HMVP- и попарных возможных вариантов.
[136] - IBC AMVP-режим: разность блочных векторов кодируется аналогично разности векторов движения. Способ прогнозирования блочных векторов использует два возможных варианта в качестве предикторов, один из левого соседнего узла и один из вышележащего соседнего узла (в случае IBC-кодирования). Когда любой соседний узел не доступен, блочный вектор по умолчанию используется в качестве модуля прогнозирования. Флаг передается в служебных сигналах, чтобы указывать индекс предиктора блочного вектора.
[137] Фиг. 5 и фиг. 6 иллюстрируют способ кодирования изображений на основе режима IBC-прогнозирования и модуль прогнозирования оборудования кодирования, осуществляющий способ кодирования изображений.
[138] Оборудование кодирования может извлекать режим прогнозирования и вектор движения текущего блока и формировать прогнозные выборки текущего блока. Режим прогнозирования может включать в себя, по меньшей мере, один из режимов взаимного прогнозирования, описанных выше. Здесь, определение режима прогнозирования, извлечение векторов движения и процедура формирования прогнозных выборок могут выполняться одновременно, или одна процедура может выполняться перед другой. Например, модуль прогнозирования оборудования кодирования может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок. Модуль определения режима прогнозирования может определять режим прогнозирования для текущего блока, модуль извлечения векторов движения может извлекать вектор движения текущего блока, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Как описано выше, вектор движения может называться "блочным вектором". Например, модуль прогнозирования оборудования кодирования может выполнять поиск блока, аналогичного текущему блоку, в восстановленной области (либо в предварительно определенной области (области поиска)) посредством поблочного сопоставления (BM), и извлекать опорный блок, разность которого с текущим блоком составляет минимум либо определенное опорное значение или меньше. Модуль прогнозирования может извлекать вектор движения на основе разности смещений между опорным блоком и текущим блоком. Оборудование кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование кодирования может сравнивать RD-затраты на основе различных режимов прогнозирования и определять оптимальный режим прогнозирования для текущего блока.
[139] Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование кодирования может конфигурировать список возможных вариантов объединения, описанный выше, и извлекать опорный блок, имеющий разность относительно текущего блока, равную или меньшую минимума или предварительно определенного критерия. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в оборудование декодирования. Вектор движения текущего блока может извлекаться с использованием вектора движения выбранного возможного варианта объединения.
[140] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, оборудование кодирования может конфигурировать список возможных (A)MVP-вариантов, описанный выше, и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных вариантов MVP (предикторов векторов движения), включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант, имеющий вектор движения, разность которого относительно вектора движения текущего блока, из возможных MVP-вариантов, является наименьшей, может представлять собой выбранный возможный MVP-вариант. Разность векторов движения (MVP), которая представляет собой разность, из которой вычтен MVP, может извлекаться из вектора движения текущего блока. В этом случае, информация относительно MVD может передаваться в служебных сигналах в оборудование декодирования.
[141] Оборудование кодирования может извлекать остаточные выборки на основе прогнозных выборок (S510). Оборудование кодирования может извлекать остаточные выборки посредством сравнения исходных выборок текущего блока с прогнозными выборками.
[142] Оборудование кодирования кодирует информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S520). Оборудование кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя вектор режима прогнозирования (т.е. флаг пропуска, флаг объединения или индекс режима) и информацию относительно вектора движения в качестве информации, связанной с процедурой прогнозирования. Информация относительно вектора движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Помимо этого, информация относительно вектора движения может включать в себя информацию относительно MVD, описанную выше. Информация относительно вектора движения может включать в себя информацию, указывающую то, применяется L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.
[143] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и доставляться в оборудование декодирования либо может доставляться в оборудование декодирования через сеть.
[144] Между тем, как описано выше, оборудование кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это обусловлено тем, что оборудование кодирования должно извлекать результат прогнозирования, идентичный результат прогнозирования, выполняемому в оборудовании декодирования, и в силу этого эффективность кодирования может повышаться. Следовательно, оборудование кодирования может сохранять восстановленный кадр (либо восстановленные выборки, восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для взаимного прогнозирования.
[145] Фиг. 7 и фиг. 8 иллюстрируют способ декодирования изображений на основе режима IBC-прогнозирования и модуль прогнозирования оборудования декодирования, осуществляющий способ декодирования изображений.
[146] Оборудование декодирования может выполнять операцию, соответствующую операции, выполняемой в оборудовании кодирования. Оборудование декодирования может выполнять IBC-прогнозирование для текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[147] В частности, оборудование декодирования может определять режим прогнозирования для текущего блока на основе принимаемой информации прогнозирования (S700). Оборудование декодирования может определять то, какой режим взаимного прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[148] Например, оборудование декодирования может определять то, применяется или нет режим объединения к текущему блоку, либо то, определяется или нет (A)MVP-режим, на основе флага объединения. Альтернативно, один из различных возможных вариантов режимов взаимного прогнозирования может выбираться на основе индекса режима. Возможные варианты режима взаимного прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим либо могут включать в себя различные режимы взаимного прогнозирования, описанные на фиг. 4.
[149] Оборудование декодирования извлекает вектор движения текущего блока на основе определенного режима прогнозирования (S710). Как описано выше, вектор движения может называться "блочным вектором". Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование декодирования может конфигурировать список возможных вариантов объединения, как описано выше, и выбирать один из возможных вариантов объединения, включенных в список возможных вариантов объединения. Выбор может выполняться на основе вышеприведенной информации выбора (индекса объединения). Вектор движения текущего блока может извлекаться с использованием вектора движения выбранного возможного варианта объединения. Вектор движения выбранного возможного варианта объединения может использоваться в качестве вектора движения текущего блока.
[150] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, оборудование декодирования может конфигурировать список возможных (A)MVP-вариантов, как описано выше, и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе вышеописанной информации выбора (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP и MVD текущего блока. Помимо этого, индекс опорного кадра текущего блока может извлекаться на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров для текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для взаимного прогнозирования текущего блока.
[151] Между тем, как описано выше, вектор движения текущего блока может извлекаться без конфигурирования списка возможных вариантов, и в этом случае, вектор движения текущего блока может извлекаться согласно процедуре, раскрытой в соответствующем режиме прогнозирования. В этом случае, конфигурирование списка возможных вариантов, как описано выше, может опускаться.
[152] Оборудование декодирования может формировать прогнозные выборки для текущего блока на основе вектора движения для текущего блока (S720). Оборудование декодирования может извлекать прогнозные выборки текущего блока с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока в текущем кадре. В этом случае, процедура фильтрации прогнозных выборок дополнительно может выполняться для всех или некоторых прогнозных выборок текущего блока.
[153] Например, модуль прогнозирования оборудования декодирования может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок. Режим прогнозирования для текущего блока может определяться на основе вектора режима прогнозирования, принимаемого из модуля определения режима прогнозирования, вектор движения текущего блока может извлекаться на основе информации относительно вектора движения, принимаемой из модуля 262 извлечения векторов движения, и модуль извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.
[154] Оборудование декодирования формирует остаточные выборки для текущего блока на основе принимаемой остаточной информации (S730). Оборудование декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановленный кадр на их основе (S740). После этого, процедура внутриконтурной фильтрации и т.п. дополнительно может применяться к восстановленному кадру, как описано выше.
[155] В дальнейшем описываются варианты осуществления, связанные с режимом объединения и режимом пропуска, из режимов IBC-прогнозирования, вместе со следующими таблицами. В частности, показывается способ для определения максимального числа возможных вариантов режимов объединения, извлекаемых для того, чтобы находить вектор движения текущего блока, когда IBC используется.
[156] Следующая таблица представляет собой примерный синтаксис заголовка группы плиток.
[157] Табл. 1
[158] В технологии на основе видеокодеков следующего поколения, когда тип групп плиток (tile_group_type) представляет собой P (однонаправленное прогнозирование) или B (двунаправленное прогнозирование), максимальное число общих возможных вариантов режимов объединения определяется посредством синтаксического элемента six_minus_max_num_merge_cand, и максимальное число возможных вариантов режимов объединения для IBC может определяться с его помощью.
[159] Когда тип групп плиток (tile_group_type) представляет собой I (внутреннее прогнозирование), общий режим объединения не присутствует, в силу чего идентичный синтаксис, six_minus_max_num_merge_cand, передается, чтобы определять максимальное число возможных вариантов режимов объединения для IBC.
[160] IBC-технология представляет собой технологию для выполнения компенсации движения в кадре и может иметь различные характеристики по сравнению с режимом объединения существующего взаимного прогнозирования, и способ для конструирования возможных вариантов режимов объединения может отличаться. Следовательно, использование идентичного числа возможных вариантов объединения может не быть эффективным с точки зрения производительности сжатия.
[161] В одном примере, синтаксис заголовка группы плиток может быть таким, как показано в следующей таблице.
[162] Табл. 2
[163] Семантика синтаксических элементов, включенных в синтаксис таблицы 2, может выражаться, например, так, как показано в следующей таблице.
[164] Табл. 3
- six_minus_max_num_ibc_merge_cand указывает максимальное число возможных вариантов прогнозирования векторов движения (MVP) для объединения, поддерживаемых в группе плиток, вычитаемое из 6. Максимальное число возможных MVP-вариантов для объединения, MaxNumibcMergeCand, извлекается следующим образом:
MaxNumibcMergeCand=6-six_minus_max_num_ibc_merge_cand
Значение MaxNumibcMergeCand должно составлять в диапазоне от 1 до 6, включительно.
[165] В другом примере, синтаксис заголовка группы плиток может быть таким, как показано в следующей таблице.
[166] Табл. 4
[167] Семантика синтаксических элементов, включенных в синтаксис таблицы 4, может выражаться, например, так, как показано в следующей таблице.
[168] Табл. 5
- five_minus_max_num_ibc_merge_cand указывает максимальное число возможных вариантов прогнозирования векторов движения (MVP) для объединения, поддерживаемых в группе плиток, вычитаемое из 5. Максимальное число возможных MVP-вариантов для объединения, MaxNumibcMergeCand, извлекается следующим образом:
MaxNumibcMergeCand=5-five_minus_max_num_ibc_merge_cand
Значение MaxNumibcMergeCand должно составлять в диапазоне от 1 до 5, включительно.
[169] В другом примере, синтаксис заголовка группы плиток может быть таким, как показано в следующей таблице.
[170] Табл. 6
[171] Семантика синтаксических элементов, включенных в синтаксис таблицы 6, может выражаться, например, так, как показано в следующей таблице.
[172] Табл. 7
- four_minus_max_num_ibc_merge_cand указывает максимальное число возможных вариантов прогнозирования векторов движения (MVP) для объединения, поддерживаемых в группе плиток, вычитаемое из 4. Максимальное число возможных MVP-вариантов для объединения, MaxNumibcMergeCand, извлекается следующим образом:
MaxNumibcMergeCand=4-four_minus_max_num_ibc_merge_cand
Значение MaxNumibcMergeCand должно составлять в диапазоне от 1 до 4, включительно.
[173] В другом примере, синтаксис заголовка группы плиток может быть таким, как показано в следующей таблице.
[174] Табл. 8
[175] Семантика синтаксических элементов, включенных в синтаксис таблицы 8, может выражаться, например, так, как показано в следующей таблице.
[176] Табл. 9
- three_minus_max_num_ibc_merge_cand указывает максимальное число возможных вариантов прогнозирования векторов движения (MVP) для объединения, поддерживаемых в группе плиток, вычитаемое из 3. Максимальное число возможных MVP-вариантов для объединения, MaxNumibcMergeCand, извлекается следующим образом:
MaxNumibcMergeCand=3-three_minus_max_num_ibc_merge_cand
Значение MaxNumibcMergeCand должно составлять в диапазоне от 1 до 3, включительно.
[177] В другом примере, синтаксис заголовка группы плиток может быть таким, как показано в следующей таблице.
[178] Табл. 10
[179] Семантика синтаксических элементов, включенных в синтаксис таблицы 10, может выражаться, например, так, как показано в следующей таблице.
[180] Табл. 11
- two_minus_max_num_ibc_merge_cand указывает максимальное число возможных вариантов прогнозирования векторов движения (MVP) для объединения, поддерживаемых в группе плиток, вычитаемое из 2. Максимальное число возможных MVP-вариантов для объединения, MaxNumibcMergeCand, извлекается следующим образом:
MaxNumibcMergeCand=2-two_minus_max_num_ibc_merge_cand
Значение MaxNumibcMergeCand должно составлять в диапазоне от 1 до 2, включительно.
[181] Когда вышеуказанные примеры описываются в формате документа по стандартизации, они могут выражаться следующим образом, и подробности являются очевидными для специалистов в данной области техники.
[182] Табл. 12
8.6.2. Процесс извлечения для компонентов вектора движения для IEC-блоков
8.6.2.1. Общие сведения
Вводы в этот процесс представляют собой следующее:
- местоположение (xCb, yCb) сигнала яркости левой верхней выборки текущего блока кодирования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная cbWidth, указывающая ширину текущего блока кодирования в выборках сигнала яркости,
- переменная cbHeight, указывающая высоту текущего блока кодирования в выборках сигнала яркости.
Выводы этого процесса представляют собой:
- вектор mvL движения сигнала яркости с 1/16 дробновыборочной точностью.
Вектор mvL движения сигнала яркости извлекается следующим образом:
Если merge_flag[xCb][yCb] равен 1, процесс извлечения для векторов движения сигнала яркости для режима объединения, как указано в разделе 8.6.2.2, активируется с вводами в качестве местоположения (xCb, yCb) сигнала яркости, переменных cbWidth и cbHeight, и выводом, представляющим собой вектор mvL движения сигнала яркости.
Иначе, применимо следующее:
1. Переменная mvd извлекается следующим образом:
mvd[0]=MvdL0[xCb][yCb][0] (8-967)
mvd[1]=MvdL0[xCb][yCb][1] (8-210)
2. Процесс извлечения для прогнозирования векторов движения сигнала яркости в разделе 8.6.2.6 активируется с местоположением (xCb, yCb) блока кодирования сигналов яркости, шириной cbWidth блока кодирования и высотой cbHeight блока кодирования в качестве вводов и с выводом, представляющим собой MVP.
3. Вектор mvL движения сигнала яркости извлекается следующим образом:
18
18
u[0]=(mvp[0]+mvd[0]+2)%2 (8-968)
17
18
mvL[0]=(u[0]>=2)?(u[0]-2):u[0] (8-969)
18
18
u[1]=(mvp[1]+mvd[1]+2)%2 (8-970)
17
18
mvL[l]=(u[l]>=2)?(u[1]-2):u[l] (8-971)
17
17
Примечание 1. Результирующие значения mvL[0] и mvL[1], как указано выше, всегда должны составлять в диапазоне от -2до 2-1, включительно.
Процесс обновления для списка предикторов векторов движения на основе предыстории, как указано в разделе 8.6.2.10, активируется с вектором mvL движения сигнала яркости.
Требование соответствия потока битов заключается в том, что вектор mvL движения сигнала яркости должен подчиняться следующим ограничениям:
Когда процесс извлечения для доступности блоков, как указано в разделе 6.4.X [Ed. (BB): Процесс проверки доступности соседних блоков, подлежит уточнению] активируется с текущим местоположением (xCurr, yCurr) сигнала яркости, заданным равным (xCb, yCb), и соседним местоположением сигнала яркости (xCb+(mvL[0]>>4), yCb+(mvL[1]>>4)) в качестве вводов, и вывод должен быть равным "истина".
Когда процесс извлечения для доступности блоков, как указано в разделе 6.4.X [Ed. (BB): Процесс проверки доступности соседних блоков, подлежит уточнению] активируется с текущим местоположением (xCurr, yCurr) сигнала яркости, заданным равным, (xCb, yCb), и соседним местоположением сигнала яркости (xCb+(mvL[0]>>4)+cbWidth-1, yCb+(mvL[1]>>4)+cbHeight-1) в качестве вводов, и вывод должен быть равным "истина".
[183] Один или оба следующие условия должны представлять собой "истина":
Значение (mvL[0]>>4)+cbWidth меньше или равно 0.
Значение (mvL[1]>>4)+cbHeight меньше или равно 0. Следующие условия должны представлять собой "истина":
(yCb+(mvL[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY (8-972)
(yCb+(mvL[1]>>4)+cbHeight-1)>>CtbLog2SizeY=yCb>>CtbLog2SizeY (8-973)
(xCb+(mvL[0]>>4))>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1 (8-974)
(xCb+(mvL[0]>>4)+cbWidth-1)>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY) (8-975)
[Ed. (SL): условия (8-218) и (8-216), возможно, проверены посредством 6.4.X]
- Когда (xCb+(mvL[0]>>4))>>CtbLog2SizeY равен (xCb>>CtbLog2SizeY)-1, процесс извлечения для доступности блоков, как указано в разделе 6.4.X [Ed. (BB): Процесс проверки доступности соседних блоков, подлежит уточнению], активируется с текущим местоположением (xCurr, yCurr) сигнала яркости, заданным равным (xCb, yCb), и соседним местоположением (((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1), ((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1)) сигнала яркости в качестве вводов, и вывод должен быть равным "ложь".
8.6.2.2. Процесс извлечения для вектора движения сигнала яркости для режима объединения
Этот процесс активируется только тогда, когда merge_flag[xCb][yPb] равен 1, и CuPredMode[xCb][yPb] равен MODE_IBC, где (xCb, yCb) указывает левую верхнюю выборку текущего блока кодирования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра.
Вводы в этот процесс представляют собой следующее:
- местоположение (xCb, yCb) сигнала яркости левой верхней выборки текущего блока кодирования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная cbWidth, указывающая ширину текущего блока кодирования в выборках сигнала яркости,
- переменная cbHeight, указывающая высоту текущего блока кодирования в выборках сигнала яркости.
Выводы этого процесса представляют собой:
- векторы mvL движения сигнала яркости с 1/16 дробновыборочной точностью.
Вектор mvL движения сигнала яркости извлекается посредством следующих упорядоченных этапов:
1. Процесс извлечения для возможных вариантов объединения из соседних единиц кодирования, как указано в разделе 8.6.2.3, активируется с местоположением (xCb, yCb) блока кодирования сигналов яркости, шириной cbWidth блока кодирования сигналов яркости и высотой cbHeight блока кодирования сигналов яркости в качестве вводов и выводами, представляющими собой флаги availableFlagA0, availableFlagA1, availableFlagB0, availableFlagB1 и availableFlagB2 доступности и векторы mvA0, mvA1, mvB0, mvB1 и mvB2 движения.
2. Список возможных вариантов векторов движения для объединения, mergeMvCandList, конструируется следующим образом:
i=0
if(availableFlagA1)
mergeMvCandList [i++]=mvA1
if(availableFlagB1)
mergeMvCandList [i++]=mvB1
if(availableFlagB0) (8-976)
mergeMvCandList [i++]=mvB0
if(availableFlagA0)
mergeMvCandList [i++]=mvA0
[184] if(availableFlagB2)
mergeMvCandList [i++]=mvB2
3. Переменная numCurrMergeCand задается равной числу возможных вариантов объединения в mergeMvCandList.
4. Когда numCurrMergeCand меньше (MaxNumibcMergeCand-1), и NumHmvpIbcCand превышает 0, процесс извлечения возможных вариантов объединения на основе предыстории, как указано в 8.6.2.5, активируется с mergeMvCandList и numCurrMergeCand в качестве вводов и модифицированными mergeMvCandList и numCurrMergeCand в качестве выводов.
5. Когда numCurrMergeCand меньше MaxNumibcMergeCand и больше 1, процесс извлечения для попарного среднего возможного варианта объединения, указываемый в разделе 8.6.2.4, активируется с mergeMvCandList и numCurrMergeCand в качестве вводов, и выводы назначаются mergeMvCandList и numCurrMergeCand.
6. Следующие назначения осуществляются:
mvL[0]=mergeMvCandList[merge_idx[xCb][yCb]][0] (8-977)
mvL[1]=mergeMvCandList[merge_idx[xCb][yCb]][1] (8-978)
[185] Чертежи создаются для того, чтобы пояснять конкретный пример настоящего документа. Поскольку название конкретного оборудования, описанного на чертежах, либо название конкретного сигнала/сообщения/поля представляется в качестве примера, технические признаки настоящего документа не ограничены конкретным названием, используемым на чертежах.
[186] Фиг. 9 и фиг. 10 схематично показывают пример способа кодирования видео/изображений и связанных компонентов согласно варианту(ам) осуществления настоящего документа. Способ, раскрытый на фиг. 9, может осуществляться посредством оборудования кодирования, раскрытого на фиг. 2. В частности, например, S900 и S910 по фиг. 9 могут выполняться посредством модуля 220 прогнозирования оборудования кодирования, и S920 и S930 по фиг. 9 могут выполняться посредством энтропийного кодера 240 оборудования кодирования. Способ, раскрытый на фиг. 9, может включать в себя варианты осуществления, описанные выше в настоящем документе.
[187] Ссылаясь на фиг. 9, оборудование кодирования может извлекать режим прогнозирования для текущего блока в текущем кадре в качестве режима IBC-прогнозирования (S900). Режим IBC-прогнозирования может включать в себя режим IBC-объединения, IBC (A)MVP-режим, IBC HMVP-режим и режим попарного среднего IBC-объединения. В одном примере, режим IBC-прогнозирования может представлять собой режим IBC-объединения (режим объединения для IBC).
[188] Оборудование кодирования может извлекать список возможных вариантов для режима IBC-прогнозирования (S910). Список возможных вариантов для режима IBC-прогнозирования может включать в себя возможные варианты блочных векторов, указывающие опорный блок в текущем кадре. В одном примере, список возможных вариантов для режима IBC-прогнозирования может представлять собой список возможных вариантов объединения для режима IBC-прогнозирования. Таблица 12, описанная выше, показывает mvL[0] и mvL[1] в качестве примерных списков возможных вариантов.
[189] Оборудование кодирования может формировать информацию индекса, указывающую (представляющую, задающую) блочный вектор текущего блока на основе списка возможных вариантов для режима IBC-прогнозирования (S920). Например, информация индекса может представлять собой merge_idx[xCb][yCb], включенный в таблицу 12, описанную выше.
[190] Оборудование кодирования может кодировать информацию видео/изображений (S930). Информация изображений/видео может включать в себя информацию индекса, указывающую блочный вектор текущего блока. Информация для формирования выборок сигнала яркости может включать в себя, например, связанную с прогнозированием информацию (информацию режима прогнозирования) и остаточную информацию. Связанная с прогнозированием информация включает в себя информацию относительно различных режимов прогнозирования (т.е. режим объединения взаимного прогнозирования, MVP-режим взаимного прогнозирования, режим IBC-прогнозирования (режим IBC-объединения, IBC (A)MVP-режим, IBC HMVP-режим) и т.д.). MVD-информация, информация относительно списка возможных вариантов, информация относительно максимального числа блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, информация относительно максимального числа блочных векторов, включенных в список возможных вариантов для режима IBC-объединения, информация режима взаимного прогнозирования относительно максимального числа блочных векторов, включенных в список возможных вариантов, информация относительно максимального числа векторов движения, включенных в список возможных вариантов для режима объединения взаимного прогнозирования, информация относительно блочных векторов (векторов движения) и т.д. может включаться. Кроме того, информация изображений может включать в себя информацию флага (т.е. pred_mode_ibc_flag), указывающую то, применяется или нет режим IBC-прогнозирования.
[191] В одном варианте осуществления, информация изображений может включать в себя набор параметров последовательности (SPS), и SPS включает в себя флаг активации IBC, указывающий то, активируется или нет режим IBC-прогнозирования. Например, когда значение флага активации IBC равно 1, информация относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, может формироваться.
[192] В одном варианте осуществления, максимальное число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, может извлекаться на основе разности между 6 и значением информации относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования. Например, максимальное число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, может извлекаться на основе уравнения, включенного в таблицу 3 (MaxNumibcMergeCand=6-six_minus_max_num_ibc_merge_cand). В уравнении, MaxNumibcMergeCand может представлять максимальное число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, и six_minus_max_num_ibc_merge_cand может представлять значение информации относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования.
[193] В одном варианте осуществления, информация изображений может включать в себя информацию относительно максимального числа возможных вариантов векторов движения, включенных в список возможных вариантов для режима взаимного прогнозирования, и информация относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, (например, six_minus_max_num_merge_cand), может отличаться от информации относительно максимального числа возможных вариантов векторов движения, включенных в список возможных вариантов для режима взаимного прогнозирования (например, six_minus_max_num_ibc_merge_cand).
[194] В одном варианте осуществления, когда число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, меньше максимального числа и больше 1, процесс извлечения попарных средних возможных вариантов объединения может выполняться. Альтернативно, когда число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, меньше максимального числа (либо максимального числа-1, MaxNumMergeCand-1), и число возможных вариантов прогнозирования векторов движения на основе предыстории (HMVP) превышает 0, процесс извлечения возможных вариантов объединения на основе предыстории может выполняться.
[195] Кодированная информация изображений/видео может выводиться в форме потока битов. Поток битов может передаваться в оборудование декодирования через сеть или (цифровой) носитель хранения данных.
[196] Информация изображений может включать в себя различную информацию согласно варианту осуществления настоящего документа. Например, информация изображений может включать в себя, по меньшей мере, одну информацию или, по меньшей мере, один синтаксический элемент, раскрытый, по меньшей мере, в одной из таблиц 1, 2, 4, 6, 8 и 10, описанных выше.
[197] В одном примере, оборудование кодирования может извлекать остаточные выборки на основе прогнозных выборок и исходных выборок. В этом случае, остаточная информация может извлекаться на основе остаточных выборок. Восстановленные выборки могут формироваться на основе остаточной информации. Восстановленный блок и восстановленный кадр могут извлекаться на основе восстановленных выборок.
[198] Фиг. 11 и фиг. 12 схематично показывают пример способа декодирования изображений/видео и связанных компонентов согласно варианту осуществления настоящего документа. Способ, раскрытый на фиг. 11, может осуществляться посредством оборудования декодирования, проиллюстрированного на фиг. 3. В частности, например, S1100 по фиг. 11 может выполняться посредством энтропийного декодера 310 оборудования декодирования, S1110-S1140 могут выполняться посредством модуля 330 прогнозирования оборудования декодирования, и S1150 может выполняться посредством сумматора 340 оборудования декодирования. Способ, раскрытый на фиг. 11, может включать в себя варианты осуществления, описанные выше в настоящем документе.
[199] Ссылаясь на фиг. 11, оборудование декодирования может принимать/получать информацию изображений/видео. Например, оборудование декодирования может принимать/получать информацию изображений/видео через поток битов. Оборудование декодирования может получать информацию индекса для извлечения блочного вектора через поток битов (S1100). Например, информация индекса может представлять собой merge_idx[xCb][yCb], включенный в таблицу 12, описанную выше. Помимо этого, оборудование декодирования дополнительно может получать информацию флага (т.е. pred_mode_ibc_flag), указывающую то, применяется или нет режим IBC-прогнозирования через поток битов.
[200] Информация изображений/видео может включать в себя различную информацию согласно варианту осуществления настоящего документа. Например, информация изображений/видео может включать в себя информацию, раскрытую, по меньшей мере, в одну из таблиц 1, 2, 4, 6, 8 и 10, описанных выше.
[201] Оборудование декодирования может извлекать режим прогнозирования для текущего блока в текущем кадре в качестве режима IBC-прогнозирования (S1110). Режим IBC-прогнозирования может включать в себя режим IBC-объединения, IBC (A)MVP-режим, IBC HMVP-режим и режим попарного среднего IBC-объединения. В одном примере, режим IBC-прогнозирования может представлять собой режим IBC-объединения (режим объединения для IBC).
[202] Оборудование декодирования может извлекать список возможных вариантов для режима IBC-прогнозирования (S1120). Список возможных вариантов для режима IBC-прогнозирования может включать в себя возможные варианты блочных векторов, указывающие опорный блок в текущем кадре. В одном примере, список возможных вариантов для режима IBC-прогнозирования может представлять собой список возможных вариантов объединения для режима IBC-прогнозирования. Таблица 12, описанная выше, показывает mvL[0] и mvL[1] в качестве примерных списков возможных вариантов.
[203] Оборудование декодирования может извлекать блочный вектор для текущего блока на основе списка возможных вариантов для режима IBC-прогнозирования и информации индекса (S1130).
[204] Оборудование декодирования может формировать прогнозные выборки текущего блока на основе блочного вектора (S1140). Прогнозные выборки для текущего блока могут формироваться на основе опорных выборок в опорном блоке, указываемом посредством блочного вектора. Здесь, опорный блок может включаться в текущий кадр.
[205] Оборудование декодирования может формировать восстановленные выборки на основе прогнозных выборок (S1150). Оборудование декодирования может получать остаточную информацию из информации изображений и может извлекать остаточные выборки на основе остаточной информации. Оборудование декодирования может формировать (извлекать) восстановленные выборки на основе остаточных выборок и прогнозных выборок. Например, оборудование декодирования может формировать (извлекать) восстановленные выборки посредством суммирования остаточных выборок с прогнозными выборками.
[206] В одном варианте осуществления, информация изображений может включать в себя набор параметров последовательности (SPS), и SPS включает в себя флаг активации IBC, указывающий то, активируется или нет режим IBC-прогнозирования. Например, когда значение флага активации IBC равно 1, информация относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, может передаваться в служебных сигналах/синтаксически анализироваться.
[207] В одном варианте осуществления, максимальное число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, может извлекаться на основе разности между 6 и значением информации относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования. Например, максимальное число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, может извлекаться на основе уравнения, включенного в таблицу 3 (MaxNumibcMergeCand=6-six_minus_max_num_ibc_merge_cand). В уравнении, MaxNumibcMergeCand может представлять максимальное число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, и six_minus_max_num_ibc_merge_cand может представлять значение информации относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования.
[208] В одном варианте осуществления, информация изображений может включать в себя информацию относительно максимального числа возможных вариантов векторов движения, включенных в список возможных вариантов для режима взаимного прогнозирования, и информация относительно максимального числа возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, (например, six_minus_max_num_merge_cand), может отличаться от информации относительно максимального числа возможных вариантов векторов движения, включенных в список возможных вариантов для режима взаимного прогнозирования (например, six_minus_max_num_ibc_merge_cand).
[209] В одном варианте осуществления, когда число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, меньше максимального числа и больше 1, процесс извлечения попарных средних возможных вариантов объединения может выполняться. Альтернативно, Когда число возможных вариантов блочных векторов, включенных в список возможных вариантов для режима IBC-прогнозирования, меньше максимального числа (или максимальное число 1, MaxNumMergeCand-1), и число возможных вариантов прогнозирования векторов движения на основе предыстории (HMVP) превышает 0, процесс извлечения возможных вариантов объединения на основе предыстории может выполняться.
[210] В вышеописанном варианте осуществления, способы описываются на основе блок-схемы последовательности операций способа, имеющей последовательность этапов или блоков. Настоящее раскрытие сущности не ограничено порядком вышеуказанных этапов или блоков. Некоторые этапы или блоки могут возникать одновременно или в порядке, отличном от других этапов или блоков, как описано выше. Дополнительно, специалисты в данной области техники должны понимать, что этапы, показанные на вышеприведенной блок-схеме последовательности операций способа, не являются исчерпывающими, и другие этапы могут включаться, либо один или более этапов на блок-схеме последовательности операций способа могут удаляться без влияния на объем настоящего раскрытия сущности.
[211] Способ согласно вышеописанным вариантам осуществления настоящего документа может реализовываться в программной форме, и оборудование кодирования и/или оборудование декодирования согласно настоящему документу, например, может включаться в оборудование, которое выполняет обработку изображений, для телевизора, компьютера, смартфона, абонентской приставки, устройства отображения и т.д.
[212] Когда варианты осуществления в настоящем документе реализуются в программном обеспечении, вышеописанный способ может реализовываться как модуль (процесс, функция и т.д.), который выполняет вышеописанную функцию. Модуль может сохраняться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может быть внутренним или внешним для процессора и может соединяться с процессором посредством различных известных средств. Процессор может включать в себя специализированную интегральную схему (ASIC), другие наборы микросхем, логические схемы и/или устройства обработки данных. Запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, карты памяти, носители хранения данных и/или другие устройства хранения данных. Таким образом, варианты осуществления, описанные в настоящем документе, могут выполняться посредством реализации на процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, показанные на каждом чертеже, могут реализовываться и выполняться на компьютере, процессоре, микропроцессоре, контроллере или микросхеме. В этом случае, информация относительно инструкций или алгоритма для реализации может сохраняться в цифровом носителе хранения данных.
[213] Помимо этого, оборудование декодирования и оборудование кодирования, к которому применяется настоящее раскрытие сущности, могут включаться в мультимедийное широковещательное приемо-передающее оборудование, терминал мобильной связи, видеооборудование системы домашнего кинотеатра, видеооборудование системы цифрового кинотеатра, камеру наблюдения, оборудование проведения видеочатов, оборудование связи в реальном времени, к примеру, видеосвязи, мобильное оборудование потоковой передачи, носитель хранения данных, записывающую видеокамеру, оборудование предоставления VoD-услуг, видеооборудование поверх сетей (OTT), оборудование предоставления услуг потоковой передачи по Интернету, трехмерное видеооборудование, видеооборудование телеконференц-связи, транспортировочное абонентское устройство (т.е. абонентское устройство в транспортном средстве, абонентское устройство в самолете, абонентское устройство в морском судне и т.д.) и медицинское видеооборудование, и могут использоваться для того, чтобы обрабатывать видеосигналы и сигналы данных. Например, видеоборудование поверх сетей (OTT) может включать в себя игровую приставку, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.
[214] Дополнительно, способ обработки, к которому применяется настоящий документ, может формироваться в форме программы, которая должна выполняться посредством компьютера, и может сохраняться на машиночитаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно настоящему раскрытию сущности, также могут сохраняться на машиночитаемых носителях записи. Машиночитаемые носители записи включают в себя все типы устройств хранения данных, на которых сохраняются данные, считываемые посредством компьютерной системы. Машиночитаемые носители записи, например, могут включать в себя BD, универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Кроме того, машиночитаемые носители записи включают в себя среды, реализованные в форме несущих волн (т.е. как передача через Интернет). Помимо этого, поток битов, сформированный посредством способа кодирования, может сохраняться на машиночитаемом носителе записи или может передаваться по сетям проводной/беспроводной связи.
[215] Помимо этого, варианты осуществления настоящего документа могут реализовываться с компьютерным программным продуктом согласно программным кодам, и программные коды могут выполняться в компьютере посредством вариантов осуществления настоящего документа. Программные коды могут сохраняться на носителе, который может считываться посредством компьютера.
[216] Фиг. 13 показывает пример системы потоковой передачи контента, к которой могут применяться варианты осуществления, раскрытые в настоящем документе.
[217] Ссылаясь на фиг. 13, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[218] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы формировать поток битов и передавать поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.
[219] Поток битов может формироваться посредством способа кодирования или способа формирования потока битов, к которому применяется вариант(ы) осуществления настоящего документа, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
[220] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер доставляет ее на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.
[221] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.
[222] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п. Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.
[223] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.
[224] Формула изобретения, описанная в данном документе, может комбинироваться различными способами. Например, технические признаки формулы изобретения на способ настоящего документа могут комбинироваться и реализовываться в качестве оборудования, и технические признаки формулы изобретения на оборудование настоящего документа могут комбинироваться и реализовываться в качестве способа. Помимо этого, технические признаки пункта формулы изобретения на способ настоящего документа и технические признаки пункта формулы изобретения на оборудование могут комбинироваться для реализации в качестве оборудования, и технические признаки пункта формулы изобретения на способ настоящего документа и технические признаки пункта формулы изобретения на оборудование могут комбинироваться и реализовываться в качестве способа.