Перекрестная ссылка на родственную заявку
Настоящая заявка испрашивает приоритет и преимущество предварительной заявки на патент США серийный номер 62/797,820, поданной 28 января 2019 года и озаглавленной "INTER PREDICTION IN GEOMETRIC PARTITIONING WITH AN ADAPTIVE NUMBER OF REGIONS", которая во всей своей полноте включена в данный документ путем ссылки.
Область техники, к которой относится изобретение
Настоящее изобретение относится, в общем, к области сжатия видео. В частности, настоящее изобретение направлено на межкадровое предсказание при геометрическом разбиении с адаптивным количеством областей.
Уровень техники
Видеокодек может включать в себя электронную схему или программное обеспечение, которое сжимает или распаковывает цифровое видео. Он может конвертировать несжатое видео в сжатый формат и наоборот. В контексте сжатия видео, устройство, которое сжимает видео (и/или выполняет некоторые его функции), как правило, может называться кодером, и устройство, которое распаковывает видео (и/или выполняет некоторые его функции), может называться декодером.
Формат сжатых данных может соответствовать стандартной спецификации сжатия видео. Сжатие может быть с потерями в том смысле, что в сжатом видео отсутствует некоторая информация, присутствующая в исходном видео. Следствием этого может быть то, что распакованное видео может иметь более низкое качество, чем исходное несжатое видео, так как для недостаточно информации точного восстановления исходного видео.
Сложные взаимосвязи могут существовать между качеством видео, объемом данных, используемых для представления видео (например, который определяется скоростью передачи данных), сложностью алгоритмов кодирования и декодирования, чувствительностью к потерям и ошибкам данных, простотой редактирования, произвольным доступом, сквозной задержкой (например, запаздыванием) и т.п.
Раскрытие сущности изобретения
В одном аспекте декодер включает в себя схему, выполненную с возможностью приема битового потока, разделения текущего блока с использованием режима геометрического разделения на первую область, вторую область и третью область, определения вектора движения, ассоциированного с областью из первой область, второй области и третьей области, причем определение дополнительно включает в себя формирование списка кандидатов и декодирование текущего блока с использованием определенного вектора движения.
В другом аспекте способ включает в себя прием, декодером, битового потока. Способ включает в себя разделение, декодером, текущего блока с использованием режима геометрического разделения на первую область, вторую область и третью область. Способ включает в себя определение, декодером, вектора движения, ассоциированного с областью из первой область, второй области и третьей области, причем определение включает в себя формирование списка кандидатов. Способ включает в себя декодирование, декодером, текущего блока с использованием определенного вектора движения.
Подробности одного или более вариантов предмета изобретения, описанного в данном документе, изложены ниже на сопроводительных чертежах и в описании. Другие признаки и преимущества объекта изобретения, описанного в данном документе, будут очевидны из описания и чертежей и из формулы изобретения.
Краткое описание чертежей
В целях иллюстрации изобретения на чертежах показаны аспекты одного или более вариантов осуществления изобретения. Однако следует понимать, что настоящее изобретение не ограничивается точными компоновками и инструментальными средствами, показанными на чертежах, на которых:
фиг.1 - иллюстрация, показывающая пример остаточного блока (например, текущего блока) с геометрическим разделением, где имеются три области;
фиг.2 - схема, иллюстрирующая примерные позиции потенциальных кандидатов вектора пространственного движения по отношению к первой области (области S0) примерного текущего блока, разделенного в соответствии с геометрическим разделением;
фиг.3 иллюстрирует фиг.2 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое верхнее местоположение яркости первой области S0;
фиг.4 - схема, иллюстрирующая примерные позиции потенциальных кандидатов вектора движения по отношению ко второй области S1 примерного текущего блока, разделенного в соответствии с геометрическим разделением;
фиг.5 иллюстрирует фиг.4 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое нижнее местоположение яркости третьей области S2 и крайнее правое верхнее местоположение яркости второй области S1;
фиг.6 - схема, иллюстрирующая примерные позиции потенциальных кандидатов вектора пространственного движения по отношению к третьей области (области S2) примерного текущего блока, разделенного в соответствии с геометрическим разделением;
фиг.7 иллюстрирует фиг.6 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое нижнее местоположение яркости третьей области S2 и крайнее правое верхнее местоположение яркости второй области S1; и
фиг.8 - блок-схема системы, иллюстрирующая примерный видеокодер, выполненный с возможностью кодирования видео с использованием межкадрового предсказания с геометрическим разделением с адаптивным количеством областей;
фиг.9 - блок-схема последовательности операций процесса, иллюстрирующая примерный процесс кодирования видео с геометрическим разделением с адаптивным количеством областей и межкадровым предсказанием согласно некоторым аспектам данного предмета изобретения, который позволяет снизить сложность кодирования при одновременном повышении эффективности сжатия;
фиг.10 - блок-схема системы, иллюстрирующая примерный декодер, выполненный с возможностью декодирования битового потока с использованием межкадрового предсказания и геометрического разделения с адаптивным количеством областей, что позволяет снизить сложность и повысить производительность обработки при кодировании и декодировании видео;
фиг.11 - блок-схема последовательности операций процесса, иллюстрирующая примерный процесс декодирования битового потока с использованием межкадрового предсказания при геометрическом разделении с адаптивным количеством областей, который позволяет снизить сложность и повысить производительность обработки при кодировании и декодировании видео;
фиг.12 - блок-схема вычислительной системы, которая может использоваться для реализации любой одной или более методологий, раскрытых в данном документе и любой одной или более их частей.
Чертежи необязательно выполнены в масштабе, и возможны иллюстрации с использованием пунктирных линий, схематичных представлений и фрагментарных видов. В некоторых случаях могут быть опущены детали, которые не являются необходимыми для понимания вариантов осуществления или которые затрудняют восприятие других деталей. Одинаковые ссылочные позиции на различных чертежах обозначают одинаковые элементы.
Осуществление изобретения
Некоторые реализации данного предмета изобретения включают в себя выполнение межкадрового предсказания с областями, которые были разделены в режиме геометрического разделения с адаптивным количеством областей, в которых прямоугольный блок может быть разделен на три или более непрямоугольных областей. Выполнение межкадрового предсказания с непрямоугольными блоками, которые были разделены с использованием геометрического разделения с адаптивным количеством областей, позволяет провести разделение, которое будет более точно следовать за границами объекта, что приведет к более низкой ошибке предсказания компенсации движения, меньшим остаткам и, таким образом, к повышению эффективности сжатия. Во время межкадрового предсказания компенсация движения может выполняться с использованием векторов движения, предсказанных для блоков (например, единиц кодирования, единиц предсказания и т.п.), определенных согласно режиму геометрического разделения. Векторы движения могут быть предсказаны с использованием улучшенного предсказания вектора движения (AMVP) и/или с использованием режима слияния, где вектор движения выбирается из списка кандидатов вектора движения без кодирования разности векторов движения.
Данный предмет раскрытия может применяться к относительно большим блокам, таким, например, как блоки размером 128x128 или 64x64. В некоторых реализациях геометрическое разделение может включать в себя разделение текущего блока на адаптивное количество областей, например, три или более областей для данного текущего блока, и информация движения может быть определена для каждой области.
Компенсация движения может включать в себя подход к предсказанию видеокадра или его части с учетом предыдущих и/или будущих кадров путем учета движения камеры и/или объектов в видео. Компенсация движения может использоваться при кодировании и декодировании видеоданных для сжатия видео, например, при кодировании и декодировании с использованием стандарта экспертной группы по вопросам движущегося изображения (MPEG)-2 (также называемого усовершенствованным кодированием видео (AVC)). Компенсация движения позволяет описать картинку в терминах преобразования контрольной картинки в текущую картинку. Контрольная картинка может быть предыдущей или будущей во времени картинкой по сравнению с текущей картинкой. Когда изображения могут быть точно синтезированы из ранее переданных и/или сохраненных изображений, эффективность сжатия может быть повышена.
Блочное разделение может относиться к способу кодирования видео для нахождения областей схожего движения. Некоторую форму разделения блоков можно найти в стандартах видеокодеков, включая MPEG-2, H.264 (также называемый AVC или MPEG-4 часть 10) и H.265 (также называемый высокоэффективным кодированием видео (HEVC)). В примерных подходах к разделению блоков неперекрывающиеся блоки видеокадра могут быть разделены на прямоугольные подблоки для нахождения разделений блоков, которые содержат пиксели со схожим движением. Этот подход может хорошо работать тогда, когда все пиксели разделения блока имеют схожее движение. Движение пикселей в блоке может определяться относительно ранее кодированных кадров.
Предсказание вектора движения может быть эффективно реализовано при геометрическом разделении с адаптивным количеством областей. Более подробно, геометрическое разделение с адаптивным количеством областей может включать в себя технологии кодирования и декодирования видео, в которых прямоугольный блок дополнительно разделяется на две или более областей, которые могут быть непрямоугольными. Например, на фиг.1 показана иллюстрация, показывающая пример остаточного блока (например, текущего блока) 100 с геометрическим разделением, где имеются три сегмента, S0, S1 и S2. Текущий блок 100 может иметь ширину M пикселей и высоту N пикселей, обозначенных как MxN пикселей, например, 64x64 или 128x128. Текущий блок может быть геометрически разделен в соответствии с двумя линейными сегментами (P1P2 и P3P4), которые могут разделить текущий блок на три области S0, S1 и S2. Когда пиксели в S0 имеют аналогичное движение, вектор движения может описывать движение всех пикселей в этой области. Как более подробно описано ниже, соответствующие векторы движения могут определяться в соответствии с режимом AMVP или режимом слияния. Вектор движения может использоваться для сжатия области S0. Аналогичным образом, когда пиксели в области S1 имеют аналогичное движение, ассоциированный вектор движения может описывать движение пикселей в области S1. Аналогичным образом, когда пиксели в области S2 имеют аналогичное движение, ассоциированный вектор движения может описывать движение пикселей в области S2. Такое геометрическое разделение может быть просигнализировано в приемник (например, в декодер) путем кодирования позиций P1, P2, P3, P4 (или представлений этих позиций, например, с использованием полярных координат, индексов в заданных шаблонах или других характеристик разделений.) в битовом потоке видео.
По-прежнему со ссылкой на фиг.1, при кодировании видеоданных с использованием геометрического разделения на уровне пикселей может быть определен линейный сегмент P1P2 (или, более конкретно, точки P1 и P2). Чтобы определить линейный сегмент P1P2 (или, более конкретно, точки P1 и P2), который наилучшим образом разделяет блок при использовании геометрического разделения на уровне пикселей, возможные комбинации точек P1 и P2 зависят от M и N, которые представляют собой ширину блока и высоту. Для блока размером MxN существует (M-1)x(N-1)x3 возможных разделений. Таким образом, определение правильного разделения может стать вычислительно затратной задачей оценки движения для всех возможных разбиений, что может увеличить количество времени и/или повысить вычислительную мощность, необходимую для кодирования видео, по сравнению с кодированием, использующем прямоугольное разбиение (например, без геометрического разбиения) на уровне пикселей). То, что составляет лучшее или правильное разбиение, может быть определено в соответствии с метрикой и может изменяться от реализации к реализации.
В некоторых реализациях, по-прежнему со ссылкой на фиг.1, разбиение происходит итерационно, в том смысле, что может быть определено первое разбиение (например, определена линия P1P2 и ассоциированные области), образующие две области, и затем дополнительно разбивается одна из этих областей. Например, разделение, описанное со ссылкой на фиг.1 может выполняться для разделения блока на две области. Одна из этих областей может быть дополнительно разделена (например, для образования новой области S1 и новой области S2). Процесс может продолжать выполнять геометрическое разделение на уровне блоков до тех пор, пока не будет достигнут критерий остановки.
По-прежнему со ссылкой на фиг.1, межкадровое предсказание может выполняться с использованием областей, которые были геометрически разделены. Векторы движения для компенсации движения могут быть получены с использованием AMVP или режима слияния. В режиме AMVP предсказание вектора движения может быть выполнено путем сигнализации индекса в список кандидатов вектора движения, и разность векторов движения (например, остаток) может быть закодирована и включена в битовый поток. В режиме слияния вектор движения выбирается из списка кандидатов вектора движения без кодирования разности векторов движения, тем самым позволяя текущему блоку принимать информацию движения другого ранее декодированного блока. Как в режиме AMVP, так и в режиме слияния список кандидатов может быть сформирован как кодером, так и декодером, и индекс в списке кандидатов может быть просигнализирован в битовом потоке.
На фиг.2 показана схема, иллюстрирующая неограничивающие примеры позиций потенциальных кандидатов вектора пространственного движения по отношению к первой области (области S0) примерного текущего блока 200, разделенного в соответствии с геометрическим разделением. Потенциальные кандидаты векторов пространственного движения могут рассматриваться для формирования списка кандидатов векторов движения в режиме AMVP или режиме слияния. Текущий блок 200 может быть разделен на три области S0, S1 и S2 прямыми линиями между точками P0, P1 и между точками P2, P3, соответственно. Каждая из области S0, области S1 и области S2 может быть предсказана в одном или двух направлениях. Пространственные кандидаты для первой области (область S0), например, как показано на фиг.2 может включать в себя нижний левый кандидат A0, левый кандидат A1, верхний левый кандидат B2, верхний кандидат B1 и верхний правый кандидат B0.
По-прежнему со ссылкой на фиг.2, как проиллюстрировано и в некоторых реализациях, каждое местоположение (A0, A1, B2, B1 и B0) может представлять блок в соответствующем местоположении. Например, левый верхний кандидат B2 может быть блоком, который находится в местоположении, которое находится непосредственно слева и непосредственно над областью S0; например, если местоположение яркости верхнего левого угла S0 равно (0, 0), то верхний левый кандидат B2 может находиться в местоположении (-1, -1). Нижний левый кандидат A0 может располагаться непосредственно слева и ниже от P1; или, например, если местоположение яркости P1 равно (P1x, P1y), нижний левый кандидат A0 может находиться в местоположении (P1x-1, P1y+1). Левый кандидат A1 может располагаться непосредственно слева от P1; например, левый кандидат A1 может постоянно находиться в местоположении (P1x-1, P1y). Верхний кандидат B1 может быть расположен непосредственно над P0; например, если местоположение яркости P0 является (P0x, P0y), верхний кандидат B1 может быть расположен в (P0x, P0y-1). Верхний правый кандидат B0 может располагаться непосредственно выше и справа от P0; например, верхний правый кандидат B0 может находиться в местоположении (P0x+1, P0y-1). Возможны и другие местоположения, как будет очевидно специалистам в данной области после ознакомления настоящего раскрытия в целом. Фиг.3 иллюстрирует фиг.2 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое верхнее местоположение яркости первой области S0.
В некоторых реализациях, по-прежнему со ссылкой на фиг.3, при формировании списка кандидатов для области S0 некоторые потенциальные кандидаты могут быть автоматически помечены как недоступные и удалены из списка кандидатов, так как при геометрическом разделении такое разделение может выполняться для разделения областей (или объектов) в кадре, которые имеют разную информацию движения. Соответственно, можно сделать вывод, что блоки, ассоциированные с этими кандидатами, вероятно, представляют другой объект с другим движением, и поэтому эти кандидаты могут быть автоматически помечены как недоступные (например, дополнительно нерассмотренные, удаленные из списка и т.п.). В примере, проиллюстрированном со ссылкой на фиг.2 выше, для области S0 нижний левый кандидат A0 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S0 совместно не использует информацию движения с блоком, расположенным в нижнем левом кандидате A0. Аналогичным образом, для области S0 верхний правый кандидат B0 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S0 совместно не использует информацию движения с блоком, расположенным в верхнем правом кандидате B0. В некоторых реализациях может быть определено то, может или нет левый нижний кандидат A0 и/или верхний правый кандидат B0 совместно использовать информацию движения, путем оценки линейного сегмента P0P1 (или точки P0, P1), например, путем определения наклона линейного сегмента P0P1, расширения линейного сегмента в блоке нижнего левого кандидата A0 и/или блоке верхнего правого кандидата B0 и определения того, находится ли нижний левый кандидат A0 и/или верхний правый кандидат B0 на одной и той же стороне продолжающегося отрезка прямой как первая область S0.
На фиг.4 показана схема, иллюстрирующая неограничивающие примерные позиции потенциальных кандидатов вектора пространственного движения по отношению ко второй области (области S1) примерного текущего блока 400, разделенного в соответствии с геометрическим разделением. Потенциальные кандидаты векторов пространственного движения могут рассматриваться для формирования списка кандидатов векторов движения в режиме AMVP или режиме слияния. Текущий блок 400 мог быть разделен на три области S0, S1 и S2 прямыми линиями между точками P0, P1 и между точками P2, P3, соответственно. Каждая из области S0, области S1 и области S2 может быть предсказана в одном или двух направлениях. Неограничивающие примеры пространственных кандидатов для второй области (области S1) проиллюстрированы на фиг.4 и включают в себя нижний левый кандидата A0, левый кандидат A1, верхний левый кандидат B2, верхний кандидат B1 и верхний правый кандидат B0.
Как проиллюстрировано и по-прежнему со ссылкой на фиг.4, каждое местоположение (A0, A1, B2, B1 и B0) может представлять блок в соответствующем местоположении. Например, левый верхний кандидат B2 может быть блоком, который находится в местоположении яркости, которое находится непосредственно слева и непосредственно над крайним левым верхним местоположением области S1; например, если местоположение яркости в верхнем левом углу S1 находится рядом с P0 с координатами местоположения яркости (P0x+1, P0y), то верхний левый кандидат B2 может находиться в местоположении (P0x, P0y-1). Левый нижний кандидат A0 расположен непосредственно под крайним левым нижним местоположением третьей области (области S2); например, если крайнее левое нижнее местоположение третьей области (области S2) находится в (0, N-1), то левый нижний кандидат A0 может находиться в местоположении (0, N). Левый кандидат A1 может быть расположен непосредственно слева от крайнего нижнего левого местоположения третьей области (области S2); например, левый кандидат A1 может находиться в местоположении (0, N-1). Верхний кандидат B1 может быть расположен непосредственно над крайним правым верхним местоположением области S1; например, если крайнее правое верхнее местоположение области S1 находится в (M-1, 0), то B1 может находиться в местоположении (M-1, -1). Правый верхний кандидат B0 может быть расположен непосредственно выше и справа от крайнего правого верхнего местоположения области S1; например, верхний правый кандидат B0 может находиться в местоположении (M, -1). Фиг.5 иллюстрирует фиг.4 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое нижнее местоположение яркости третьей области S2 и крайнее правое верхнее местоположение яркости второй области S1.
В некоторых реализациях, по-прежнему со ссылкой на фиг.5, при формировании списка кандидатов для области S1 некоторые потенциальные кандидаты могут быть автоматически помечены как недоступные и удалены из списка кандидатов, так как при геометрическом разделении такое разделение может выполняться для разделения областей (или объектов) в кадре, которые имеют разную информацию движения. Соответственно, можно сделать вывод, что блоки, ассоциированные с этими кандидатами, вероятно, представляют другой объект с другим движением, и поэтому эти кандидаты могут быть автоматически помечены как недоступные (например, дополнительно нерассмотренные, удаленные из списка кандидатов и т.п.). В неограничивающем примере, проиллюстрированном выше со ссылкой на фиг.4, для области S1 левый верхний кандидат B2 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S1 совместно не использует информацию движения с блоком, расположенным в верхнем левом кандидате B2. Аналогичным образом, в некоторых реализациях для области S1 левый кандидат A1 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S1 совместно не использует информацию движения с блоком, расположенным в левом кандидате A1, который может быть третьей областью S2. Аналогичным образом, в некоторых реализациях для области S1 левый нижний кандидат A0 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S1 совместно не использует информацию движения с блоком, расположенным в нижнем левом кандидате A0, который может быть ниже третьей области S2.
На фиг.6 показана схема, иллюстрирующая примерные позиции потенциальных кандидатов вектора пространственного движения по отношению к третьей области (области S2) примерного текущего блока 600, разделенного в соответствии с геометрическим разделением. Потенциальные кандидаты векторов пространственного движения могут рассматриваться для формирования списка кандидатов векторов движения в режиме AMVP или режиме слияния. Текущий блок 600 может быть разделен на три области S0, S1 и S2 прямыми линиями между точками P0, P1 и между точками P2, P3, соответственно. Каждая из области S0, области S1 и области S2 может быть предсказана в одном или двух направлениях. Неограничивающие примеры пространственных кандидатов для третьей области (области S2) проиллюстрированы на фиг.6 и могут включать в себя нижний левый кандидат A0, левый кандидат A1, верхний левый кандидат B2, верхний кандидат B1 и верхний правый кандидат B0.
Как показано на фиг.6, каждое местоположение (A0, A1, B2, B1 и B0) может представлять блок в соответствующем местоположении. Например, верхний левый кандидат может быть блоком, который находится в местоположении яркости, которое находится выше и слева от области S2; например, верхний левый кандидат B2 может быть первой областью S0. Если S0 расположен в (0,0), то левый верхний кандидат B2 может быть расположен в (0,0). Левый нижний кандидат A0 может быть расположен непосредственно слева и непосредственно под крайним левым нижним местоположением области S2; например, если крайнее левое нижнее местоположение области S2 расположено в (0, N-1), то левый нижний кандидат A0 может находиться в (-1, N). Левый кандидат A1 может быть расположен непосредственно слева от крайнего нижнего левого местоположения области S2; например, левый кандидат A1 может находиться в (-1, N-1). Верхний кандидат B1 может быть расположен выше и слева от области S2, которая может быть соседней точкой P1; например, если точка P1 расположена в (P1x, P1y), то верхний кандидат B1 может быть расположен в (P1x-1, P1y). Правый верхний кандидат B0 может быть блоком, который находится в местоположении яркости, которое находится выше и справа от области S2; например, верхний правый кандидат B0 может быть второй областью S1. Например, правый верхний кандидат может быть расположен в правом верхнем углу S1, который может находиться в (M-1, 0). Фиг.7 иллюстрирует фиг.6 с аннотацией, показывающей местоположения яркости, в том числе крайнее левое нижнее местоположение яркости третьей области S2 и крайнее правое верхнее местоположение яркости второй области S1.
В некоторых реализациях, по-прежнему со ссылкой на фиг.7, при формировании списка кандидатов для области S2 некоторые потенциальные кандидаты могут быть автоматически помечены как недоступные и удалены из списка кандидатов, так как при геометрическом разделении такое разделение может выполняться для разделения областей (или объектов) в кадре, которые имеют разную информацию движения. Соответственно, можно сделать вывод, что блоки, ассоциированные с этими кандидатами, вероятно, представляют другой объект с другим движением, и поэтому эти кандидаты могут быть автоматически помечены как недоступные (например, дополнительно нерассмотренные, удаленные из списка кандидатов и т.п.). В неограничивающем примере, представленном выше на фиг.6, для области S2 верхний левый кандидат B2 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S2 совместно не использует информацию движения с блоком, расположенным в верхнем левом кандидате B2 (например, S0). Аналогичным образом, в некоторых реализациях для области S2 верхний правый кандидат A0 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S2 совместно не использует информацию движения с блоком, расположенным в левом кандидате B0, который может быть второй областью S1. Аналогичным образом, в некоторых реализациях для области S2 верхний кандидат B1 может быть автоматически помечен как недоступный, так как вполне вероятно, что область S2 совместно не использует информацию движения с блоком, расположенным в верхнем кандидате B1, который находится слева от первой области S0.
На фиг.8 показана блок-схема системы, иллюстрирующая примерный видеокодер 800, выполненный с возможностью кодирования видео с использованием межкадрового предсказания с геометрическим разделением с адаптивным количеством областей. Примерный видеокодер 800 принимает входное видео 805, которое может быть изначально сегментировано или разделено в соответствии со схемой обработки, такой как схема разделения макроблоков со структурой дерева (например, квадродерево плюс двоичное дерево). Пример схемы разделения макроблоков со структурой дерева может включать в себя разделение кадра картинки на большие блочные элементы, называемые единицами дерева кодирования (CTU). В некоторых реализациях каждая CTU может быть дополнительно разделен один или несколько раз на ряд подблоков, называемых единицами кодирования (CU). Конечный результат этого разделения может включать в себя группу подблоков, которые можно назвать блоками предсказания (PU). Кроме того, могут также использоваться единицы преобразования (TU). Такая схема разделения может включать в себя выполнение геометрического разделения с адаптивным количеством областей в соответствии с некоторыми аспектами данного предмета изобретения.
По-прежнему со ссылкой на фиг.8, примерный видеокодер 800 может включать в себя процессор 815 внутрикадрового предсказания, процессор 820 оценки/компенсации движения (также называемый процессором межкадрового предсказания), выполненный с возможностью поддержания геометрического разделения с адаптивным количеством областей, включая режим AMVP и режим слияния, процессор 825 преобразования/квантования, процессор 830 обратного квантования/обратного преобразования, внутриконтурный фильтр 835, буфер 840 декодированных картинок и процессор 845 энтропийного кодирования. В некоторых реализациях процессор 820 оценки/компенсации движения может выполнять геометрическое разделение с адаптивным количеством областей, включая использование режима AMVP и режима слияния. Параметры битового потока, которые сигнализируют режимы геометрического разделения, режим AMVP и режим слияния, могут вводиться в процессор 845 энтропийного кодирования для включения в выходной битовый поток 850.
В процессе работы и по-прежнему со ссылкой на фиг.8, для каждого блока кадра входного видео 805 может быть определено то, обрабатывать ли блок с помощью внутрикадрового предсказания изображения или с использованием оценки/компенсации движения. Блок может быть предоставлен в процессор 810 внутрикадрового предсказания или процессор 820 оценки/компенсации движения. Если блок должен обрабатываться посредством внутрикадрового предсказания, процессор 810 внутрикадрового предсказания может выполнять обработку для вывода предиктора. Если блок должен обрабатываться посредством оценки/компенсации движения, процессор 820 оценки/компенсации движения может выполнять обработку, включая использование геометрического разделения в режиме AMVP и режиме слияния для вывода предиктора.
По-прежнему со ссылкой на фиг.8, остаток может быть сформирован путем вычитания предиктора из входного видео. Остаток может приниматься процессором 825 преобразования/квантования, который может выполнять обработку преобразования (например, дискретное косинусное преобразование (DCT)) для получения коэффициентов, которые можно квантовать. Квантованные коэффициенты и любая ассоциированная информация сигнализации может быть предоставлена в процессор 845 энтропийного кодирования для энтропийного кодирования и включения в выходной битовый поток 850. Процессор 845 энтропийного кодирования может поддерживать кодирование информации сигнализации, относящейся к режимам геометрического разделения, режиму AMVP и режиму слияния. В дополнение к этому, квантованные коэффициенты могут быть предоставлены в процессор 830 обратного квантования/обратного преобразования, который может воспроизводить пиксели, которые могут быть объединены с предиктором и обработаны контурным фильтром 835, выходные данные которого могут быть сохранены в буфере 840 декодированных картинок для использования процессором 820 оценки/компенсации движения, который выполнен с возможностью поддержания режимом геометрического разделения, режима AMVP и режима слияния.
На фиг.9 показана блок-схема последовательности операций, иллюстрирующая примерный процесс 300 кодирования видео с геометрическим разделением и межкадровым предсказанием в соответствии с некоторыми аспектами данного предмета изобретения, который позволяет снизить сложность кодирования при одновременном повышении эффективности сжатия. На этапе 910 видеокадр может подвергаться начальной блочной сегментации, например, с использованием разделения макроблоков со структурой дерева, которая может включать в себя разделение кадра картинки на CTU и CU. На 920 блок может быть выбран для геометрического разделения с адаптивным количеством областей. Выбор может включать в себя идентификацию в соответствии с правилом метрики того, что блок должен быть обработан в соответствии с режимом геометрического разделения.
На этапе 930, по-прежнему со ссылкой на фиг.9, может быть определено геометрическое разделение с тремя или более областями. Могут быть определены по меньшей мере два линейных сегмента, которые будут разделять пиксели, содержащиеся в блоке, в соответствии с их перемещением между кадрами, на три или более областей (например, область 0, область 1 и область 2) таким образом, чтобы пиксели (например, выборки яркости) в пределах каждая из соответствующих областей имели аналогичное движение, которое может отличаться от движения пикселей в пределах других областей (например, в пределах области 1).
На этапе 940, по-прежнему со ссылкой на фиг.9, информация движения каждой области может быть определена и обработана с использованием режима AMVP или режима слияния. При обработке области с использованием режима AMVP список кандидатов может быть сформирован путем рассмотрения как пространственных, так и временных кандидатов, которые могут включать в себя пространственные кандидаты, описанные выше, и которые могут включать в себя пометку некоторых кандидатов как недоступных. Вектор движения может быть выбран из списка кандидатов вектора движения в качестве предсказания вектора движения, и может быть вычислена разность векторов движения (например, остаток). Индекс может быть определен в списке кандидатов. В режиме слияния список кандидатов может быть сформирован путем рассмотрения как пространственных, так и временных кандидатов, которые могут включать в себя пространственные кандидаты, как описано выше, и которые могут включать в себя пометку некоторых кандидатов как недоступных. Вектор движения может быть выбран из списка кандидатов вектора движения для области, чтобы получить информацию движения другого блока. Индекс может быть определен в списке кандидатов.
На этапе 950, по-прежнему со ссылкой на фиг.9, информация об определенном геометрическом разделе и движении может передаваться в битовом потоке. Геометрические разделы сигнализации в битовом потоке могут включать в себя, например, местоположения P0, P1, P2, P3; указатель одного или более заданных шаблонов и т.п. Сигнализация информации движения при обработке области с использованием AMVP может включать в себя включение разности векторов движения (например, остатка) и индекса в список кандидатов вектора движения в битовом потоке. Сигнализация информации движения при обработке области с использованием режима слияния может включать в себя включение индекса в список кандидатов вектора движения в битовом потоке.
На фиг.10 показана блок-схема системы, иллюстрирующая примерный декодер 1000, выполненный с возможностью декодирования битового потока 1070 с использованием межкадрового предсказания и геометрического разделения с адаптивным количеством областей, которая позволяет снизить сложность и повысить производительность обработки при кодировании и декодировании видео. Декодер 1000 может включать в себя процессор 1010 энтропийного декодера, процессор 1020 обратного квантования и обратного преобразования, фильтр 1030 удаления блочности, буфер 1040 кадров, процессор 1050 компенсации движения и процессор 1060 внутрикадрового предсказания. В некоторых реализациях битовый поток 1070 может включать в себя параметры, которые сигнализируют режим геометрического разделения, режим AMVP и/или режим слияния. Процессор 1050 компенсации движения может восстанавливать информацию о пикселях, используя геометрическое разделение, как описано в данном документе.
В процессе работы и по-прежнему со ссылкой на фиг.10, битовый поток 1070 может быть принят декодером 1000 и введен в процессор 1010 энтропийного декодера, который может энтропийно декодировать битовый поток в квантованные коэффициенты. Квантованные коэффициенты могут быть предоставлены в процессор 1020 обратного квантования и обратного преобразования, который может выполнять обратное квантование и обратное преобразование для создания сигнала остатка. Сигнал остатка может быть добавлен в выходной сигнал процессора 1050 компенсации движения или процессора 1060 интра-предсказания в соответствии с режимом обработки. Выход процессора 1050 компенсации движения и процессора 1060 интра-предсказания может включать в себя предсказание блока на основе ранее декодированного блока. Сумма предсказания и остатка может быть обработана фильтром 1030 удаления блочности и сохранена в буфере 1040 кадров. Для заданного блока (например, CU или PU), когда битовый поток 1070 сигнализирует, что режим разбиения представляет собой геометрическое разбиение, процессор 1050 компенсации движения может построить предсказание на основе подхода геометрического разбиения, описанного в данном документе.
На фиг.11 является блок-схемой процесса, иллюстрирующей примерный процесс 1100 декодирования битового потока с использованием межкадрового предсказания при геометрическом разделении с адаптивным количеством областей, который позволяет снизить сложность и повысить производительность обработки при кодировании и декодировании видео. На этапе 1110 принимается битовый поток, который может включать в себя текущий блок (например, CTU, CU, PU). Прием может включать в себя извлечение и/или синтаксический анализ текущего блока и ассоциированной с ним информации сигнализации из битового потока. Декодер может извлекать или определять один или несколько параметров, характеризующих геометрическое разбиение. Эти параметры могут включать в себя, например, индексы начала и конца линейного сегмента (например, P1, P2, P3, P4). Извлечение или определение может включать в себя идентификацию и извлечение параметров из битового потока (например, синтаксический анализ битового потока).
На этапе 1120, по-прежнему со ссылкой на фиг.11, первая область, вторая область и третья область текущего блока могут быть определены в соответствии с режимом геометрического разделения. Определение может включать в себя определение того, включен ли режим геометрического разделения (например, параметр "истина") для текущего блока. Если режим геометрического разделения не включен (например, параметр "ложь"), декодер может обработать блок, используя альтернативный режим разделения. Если режим геометрического разделения включен (например, параметр "истина"), могут быть определены и/или обработаны три или более областей.
На этапе 1130, по-прежнему со ссылкой на фиг.11, может быть определен вектор движения, ассоциированный с областью из первой области, второй области и третьей области Определение вектора движения может включать в себя определение того, должна ли быть определена информация движения области с использованием режима AMVP или режима слияния. При обработке области с использованием режима AMVP, список кандидатов может быть сформирован с учетом как пространственных, так и временных кандидатов, которые могут включать в себя пространственные кандидаты, описанные выше и которые могут включать в себя пометку некоторых кандидатов как недоступных. Вектор движения может быть выбран из списка кандидатов вектора движения в качестве предсказания вектора движения, и может быть вычислена разность вектора движения (например, остатка). В режиме слияния, определение может включать в себя формирование списка кандидатов пространственных кандидатов и временных кандидатов для каждой области. Формирование списка кандидатов может включать в себя автоматическую пометку кандидатов как недоступных и удаление недоступных кандидатов из списка кандидатов. Индекс в сформированном списке кандидатов может быть синтаксически проанализирован из битового потока и может использоваться для выбора окончательного кандидата из списка кандидатов. Информация движения для текущей области может быть определена так же, как информация движения окончательного кандидата (например, вектор движения для области может быть заимствован из окончательного кандидата).
По-прежнему со ссылкой на фиг.11, на этапе 1140 текущий блок может быть декодирован с использованием определенного вектора движения.
Хотя несколько вариантов подробно описаны выше, возможны и другие модификации или дополнения. Например, геометрическое разделение может сигнализироваться в битовом потоке на основе решений относительно скорости-искажения в кодере. Кодирование может быть основано на комбинации регулярных заранее определенных разделов (например, шаблонов), пространственно-временном предсказании разделения и/или дополнительных смещениях. Каждая геометрически разделенная область может использовать предсказание с компенсацией движения или внутрикадровое предсказание. Граница предсказываемых областей может быть сглажена перед добавлением остатка.
В некоторых реализациях может быть реализовано квадродерево плюс двоичное дерево решений (QTBT). В QTBT на уровне единицы дерева кодирования параметры разделения QTBT могут быть получены динамически для адаптации к локальным характеристикам без передачи каких-либо служебных данных. Далее, на уровне единицы кодирования, структура дерева решений совместного классификатора может исключить ненужные итерации и контролировать риск ложного предсказания. В некоторых реализациях геометрическое разделение с адаптивным количеством областей может быть доступно в качестве дополнительной опции разделения, доступной в каждом листовом узле QTBT.
В некоторых реализациях декодер может включать в себя процессор разделения, который вырабатывает геометрическое разделение для текущего блока и предоставляет всю информацию, относящуюся к разделу, для зависимых процессов. Процессор разделения может напрямую влиять на компенсацию движения, так как она может выполняться посегментно в случае, если блок разделен геометрически. Кроме того, процессор разделения может предоставлять информацию о форме в процессор внутрикадрового предсказания и процессор кодирования с преобразованием.
В некоторых реализациях дополнительные элементы синтаксиса могут сигнализироваться на разных иерархических уровнях битового потока. Для того, чтобы разрешить геометрическое разделение с адаптивным количеством областей для всей последовательности, флаг разрешения может быть закодирован в наборе параметров последовательности (SPS). Кроме того, флаг CTU может быть закодирован на уровне единицы дерева кодирования (CTU) для того, чтобы указать то, используют ли какие-либо единицы кодирования (CU) геометрическое разделение с адаптивным количеством областей. Флаг CU может быть закодирован для того, чтобы указать то, использует ли текущая единица кодирования геометрическое разделение с адаптивным количеством областей. Параметры, которые точно определяют кривую линию на блоке, могут быть закодированы. Для каждой области может быть декодирован флаг, который точно определяет то, предсказана ли текущая область с использованием межкадрового или внутрикадрового предсказания.
В некоторых реализациях может быть указан минимальный размер области.
Предмет изобретения, описанный в данном документе, обеспечивает множество технических преимуществ. Например, некоторые реализации данного предмета изобретения могут предусматривать разделение блоков, которое снижает сложность при одновременном повышении эффективности сжатия. В некоторых реализациях можно уменьшить блокирующие артефакты на границах объекта.
Следует отметить, что любой один или несколько аспектов и вариантов осуществления, описанных в данном документе, могут быть беспрепятственно реализованы с использованием цифровых электронных схем, интегральных схем, специализированных интегральных схем (ASIC), разработанных специально для конкретных приложений, компьютерных аппаратных средств с программируемыми вентильными матрицами (FPGA), аппаратно-программного обеспечения, программного обеспечения и/или их комбинаций, как реализованные и/или осуществленные в одной или более машинах (например, в одном или более вычислительных устройствах, которые используются в качестве пользовательского вычислительного устройства для электронного документа, одном или более серверных устройствах, таких как сервер документов и т.д.), запрограммированных в соответствии с идеями изобретения, представленными в настоящем описания, как будет очевидно специалистам в области компьютерной техники. Эти различные аспекты или особенности могут включать реализацию в одной или более компьютерных программах и/или программном обеспечении, которые являются исполняемыми и/или интерпретируемыми в программируемой системе, включающей в себя по меньшей мере один программируемый процессор, который может быть специального или общего назначения и может быть подключен, для приема данных и инструкций из системы хранения и для передачи данных и инструкций в систему хранения, по меньшей мере к одному устройству ввода и по меньшей мере к одному устройству вывода. Соответствующее кодирование программного обеспечения может быть легко подготовлено квалифицированными программистами на основе идей настоящего раскрытия, как будет очевидно специалистам в области программного обеспечения. Рассмотренные выше аспекты и реализации, использующие программное обеспечение и/или программные модули, могут также включать в себя соответствующие аппаратные средства для содействия в реализации машиноисполняемых инструкций программного обеспечения и/или программного модуля.
Такое программное обеспечение может быть компьютерным программным продуктом, который использует машиночитаемый носитель информации. Машиночитаемый носитель информации может быть любым носителем информации, который способен хранить и/или кодировать последовательность инструкций для исполнения машиной (например, вычислительным устройством) и которые предписывают машине выполнять любую из методологий и/или вариантов осуществления, описанных в данном документе. Примеры машиночитаемого носителя информации включают в себя, но без ограничения, магнитный диск, оптический диск (например, CD, CD-R, DVD, DVD-R и т.д.), магнитооптический диск, постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), магнитную карту, оптическую карту, твердотельное запоминающее устройство, EPROM, EEPROM, программируемые логические устройства (PLD) и/или любые их комбинации. Используемый в данном документе термин "машиночитаемый носитель информации" предназначен для того, чтобы включать в себя один носитель информации, а также набор физически отдельных носителей информации, таких, например, как набор компакт-дисков или один или несколько жестких дисков в сочетании с компьютерной памятью. Используемый в данном документе термин "машиночитаемый носитель информации" не включает в себя временные формы передачи сигнала.
Такое программное обеспечение может также включать в себя информацию (например, данные), переносимую в виде сигнала передачи данных на переносчике информации, например, на несущей. Например, машиноисполняемая информация может быть включена в качестве сигнала, переносящего данные и воплощенного в виде переносчика информации, где сигнал кодирует последовательность инструкций или их часть для исполнения машиной (например, вычислительным устройством) и любую связанную с ними информацию (например, структуры данных и данные), которые предписывают машине выполнять любую из методологий и/или вариантов осуществления, описанных в данном документе.
Примеры вычислительного устройства включают в себя, но не ограничиваются ими, устройство для чтения электронных книг, компьютерную рабочую станцию, терминальный компьютер, серверный компьютер, портативное устройство (например, планшетный компьютер, смартфон и т.д.), веб-устройство, сетевой маршрутизатор, сетевой коммутатор, сетевой мост, любой компьютер, способный выполнять последовательность инструкций, определяющих действие, которое должно быть выполнено на этом компьютере, и любые их комбинации. В одном примере вычислительное устройство может включать и/или быть включено в киоск.
На фиг.12 показано схематичное представление одного варианта осуществления вычислительного устройства в примерном виде компьютерной системы 1200, в которой может исполняться набор инструкций для предписания системе управления выполнять любой один или несколько аспектов и/или методологий настоящего раскрытия. Кроме того, также предполагается, что несколько вычислительных устройств могут использоваться для реализации специально сконфигурированного набора инструкций, которые предписывают одному или нескольким устройствам выполнять любой один или несколько аспектов и/или методологий настоящего раскрытия. Компьютерная система 1200 включает в себя процессор 1204 и память 1208, которые обмениваются данными друг с другом и с другими компонентами через шину 1212. Шина 1212 может включать в себя любой из нескольких типов шинных структур, в том числе, но без ограничения, шину памяти, контроллер памяти, периферийную шину, локальную шину и любые их комбинации, которые используют любую из множества шинных архитектур.
Память 1208 может включать в себя различные компоненты (например, машиночитаемые носители информации), в том числе, но без ограничения, компонент памяти с произвольным доступом, компонент только для считывания и любые их комбинации. В одном примере основная система 1216 ввода/вывода (BIOS), в том числе основные процедуры, которые помогают передавать информацию между элементами в компьютерной системе 1200, например, во время запуска, может храниться в памяти 1208. Память 1208 может также включать в себя (например, сохраненные на одном или более машиночитаемых носителях информации) инструкции (например, программное обеспечение) 1220, воплощающие любой один или несколько аспектов и/или методологий настоящего раскрытия. В другом примере память 1208 может дополнительно включать в себя любое количество программных модулей, в том числе, но без ограничения, операционную систему, одну или несколько прикладных программ, другие программные модули, данные программы и любые их комбинации.
Компьютерная система 1200 может также включать в себя запоминающее устройство 1224. Примеры запоминающего устройства (например, запоминающего устройства 1224), включают в себя, но не ограничиваются ими, накопитель на жестком диске, накопитель на магнитных дисках, накопитель на оптических дисках в сочетании с оптическим носителем информации, устройство твердотельной памяти и любые их комбинации. Запоминающее устройство 1224 может быть подключено к шине 1212 посредством соответствующего интерфейса (не показан). Примеры интерфейсов включают в себя, но не ограничиваются ими, SCSI, усовершенствованную технологию подключения (ATA), последовательную ATA, универсальную последовательную шину (USB), IEEE 1394 (FIREWIRE) и любые их комбинации. В одном примере, запоминающее устройство 1224 (или один или несколько их компонентов) может подключаться с помощью интерфейса к компьютерной системе 1200 (например, через разъем внешний порта (не показан)). В частности, запоминающее устройство 1224 и ассоциированный с ним машиночитаемый носитель 1228 информации может обеспечивать энергонезависимое и/или энергонезависимое хранение машиночитаемых инструкций, структур данных, программных модулей и/или других данных для компьютерной системы 1200. В одном примере, программное обеспечение 1220 может находиться, полностью или частично, на машиночитаемом носителе 1228 информации. В другом примере, программное обеспечение 1220 может находиться, полностью или частично, в процессоре 1204.
Компьютерная система 1200 также может включать в себя устройство 1232 ввода. В одном примере, пользователь компьютерной системы 1200 может вводить команды и/или другую информацию в компьютерную систему 1200 через устройство 1232 ввода. Примеры устройства 1232 ввода включают в себя, но не ограничиваются ими, устройство буквенно-цифрового ввода (например, клавиатуру), указательное устройство, джойстик, игровой пульт, устройство ввода аудио (например, микрофон, система голосового ответа и т.д.), устройство управления курсором (например, мышь), сенсорную панель, оптический сканер, устройство захвата видео (например, фотоаппарат, видеокамеру), сенсорный экран и любые их комбинации. Устройство 1232 ввода может быть подключено с помощью интерфейса к шине 1212 через любой из множества интерфейсов (не показаны), в том числе, помимо прочего, последовательный интерфейс, параллельный интерфейс, игровой порт, интерфейс USB, интерфейс FIREWIRE, прямой интерфейс к шине 1212 и любые их комбинации. Устройство 1232 ввода может включать в себя интерфейс сенсорного экрана, который может быть частью 1236 отображения или находиться отдельно от него, что дополнительно обсуждено ниже. Устройство 1232 ввода может использоваться как устройство выбора пользователя для выбора одного или более графических представлений в графическом интерфейсе, как описано выше.
Пользователь может также вводить команды и/или другую информацию в компьютерную систему 1200 через запоминающее устройство 1224 (например, съемный диск, флэш-диск и т.д.) и/или устройство 1240 сетевого интерфейса. Устройство сетевого интерфейса, такое как устройство 1240 сетевого интерфейса, может использоваться для подключения компьютерной системы 1200 к одной или нескольким из множества сетей, таких как сеть 1244, и к одному или нескольким удаленным устройствам 1248, подключенных к ней. Примеры устройства сетевого интерфейса включают в себя, но не ограничиваются ими, карту сетевого интерфейса (например, карту интерфейса мобильной сети, карту LAN), модем и любые их комбинации. Примеры сети включают в себя, но не ограничиваются ими, сеть (например, Интернет, сеть организации), локальную сеть (например, сеть, ассоциированную с офисом, зданием, комплексом зданий или другим относительно небольшим географическим пространством), телефонную сеть, сеть передачи данных, ассоциированную с провайдером телефонной/голосовой связи (например, с данными провайдера мобильной связи и/или телефонной сетью), прямое соединение между двумя вычислительными устройствами и любые их комбинации. Сеть, такая как сеть 1244, может использовать проводной и/или беспроводной режим связи. В общем, можно использовать любую топологию сети. Информация (например, данные, программное обеспечение 1220 и т.д.) может передаваться в и/или из компьютерной системы 1200 с помощью сетевого интерфейса устройства 1240.
Компьютерная система 1200 может дополнительно включать в себя адаптер 1252 отображения видео для передачи отображаемого изображения в устройство отображения, такое как устройство 1236 отображения. Примеры устройства отображения включают в себя, но не ограничивается ими, жидкокристаллический дисплей (LCD), электронно-лучевую трубку (CRT), плазменный дисплей, светоизлучающий диод (LED), и любые их комбинации. Адаптер 1252 дисплея и устройство 1236 отображения можно использовать в сочетании с процессором 1204, чтобы обеспечить графическое представление аспектов настоящего раскрытия. В дополнение к устройству отображения компьютерная система 1200 может включать в себя одно или несколько других периферийных устройств вывода, в том числе, помимо прочего, звуковой динамик, принтер и любые их комбинации. Такие периферийные устройства вывода могут быть подключены к шине 1212 через периферийный интерфейс 1256. Примеры периферийного интерфейса включают в себя, но не ограничиваются ими, последовательный порт, USB соединение, соединение FIREWIRE, параллельное соединение, и любые их комбинации.
Выше было приведено подробное описание иллюстративных вариантов осуществления настоящего изобретения. Различные модификации и дополнения могут быть сделаны без отступления от сущности и объема настоящего изобретения. Признаки каждого из различных вариантов осуществления, описанных выше, могут быть объединены с признаками других описанных вариантов осуществления в соответствующих случаях с тем, чтобы обеспечить множество комбинаций признаков в ассоциированных новых вариантах осуществления. Кроме того, несмотря на то, что выше был описан ряд отдельных вариантов осуществления, то, что было описано в данном документе, является лишь иллюстрацией применения принципов настоящего изобретения. В дополнение к этому, хотя конкретные способы в данном документе могут быть проиллюстрированы и/или описаны как выполняемые в определенном порядке, порядок выполнения сильно варьируется в пределах средней квалификации для достижения вариантов осуществления, раскрытых в данном документе. Соответственно, это описание предназначено для использования только в качестве примера и не ограничивает иным образом объем данного изобретения.
В приведенных выше описаниях и формуле изобретения фразы, такие как "по меньшей мере один из" или "один или более" могут возникать с последующим конъюнктивным списком элементов или признаков. Термин "и/или" может также иметь место в списке из двух или более элементов или признаков. Если иное неявно или явно противоречит контексту, в котором это используется, такая фраза означает любой из перечисленных элементов или признаки по отдельности, или любой из указанных элементов или признаков в сочетании с любым из других указанных элементов или признаков. Например, каждая из фраз "по меньшей мере один из А и В", "один или более из А и В" и "А и/или В" означает "А, взятый отдельно", "В, взятый отдельно" или "А и В вместе". Аналогичная интерпретация также предназначена для списков, включающих в себя три или более пунктов. Например, каждая из фраз "по меньшей мере один из А, В и С", "один или более из А, В и С" и "А, В, и/или С" означает "А, взятый отдельно", "В, взятый отдельно", "С, взятый отдельно", "А и В вместе", "А и С вместе", "В и С вместе" или "А и В, и С вместе". В дополнение к этому, использование термина "на основе" в описании выше и в формуле изобретения означает "на основе по меньшей мере частично", поэтому неуказанный признак или элемент также является допустимым.
Предмет изобретения, описанный в данном документе, может быть воплощен в системах, устройствах, способах и/или изделиях в зависимости от желаемой конфигурации. Реализации, изложенные в предыдущем описании, не представляют все реализации, согласующиеся с предметом изобретения, описанным в данном документе. Вместо этого они представляют собой лишь некоторые примеры, согласующиеся с аспектами, относящимися к описанному предмету изобретения. Хотя некоторые варианты были подробно описаны выше, возможны и другие модификации или дополнения. В частности, дополнительные признаки и/или варианты могут быть предоставлены в дополнение к тем, которые изложены в данном описании. Например, реализации, описанные выше, могут быть направлены на различные комбинации и подкомбинации раскрытых признаков и/или комбинации и подкомбинации нескольких дополнительных признаков, раскрытых выше. В дополнение к этому, логические потоки, изображенные на сопроводительных чертежах и/или описанные в данном документе, необязательно требуют конкретного показанного порядка или последовательного порядка для достижения желаемых результатов. Другие реализации могут находиться в пределах объема последующей формулы изобретения.
Изобретение относится к средствам декодирования. Технический результат – повышение точности восстановления исходного видео. Принимают битовый поток, причем битовый поток содержит текущее изображение, а текущее изображение включает в себя текущий блок, имеющий по меньшей мере первую границу разделения, разделяющую блок на первую и вторую непрямоугольные области, и вторую границу разделения, пересекающую по меньшей мере первую границу разделения и разделяющую вторую область для разделения текущего блока на три части. Определяют первый предиктор для использования в первой непрямоугольной области с использованием первого вектора движения, выбранного из первого списка кандидатов векторов движения. Определяют второй предиктор для использования во второй непрямоугольной области с использованием второго вектора движения, выбранного из второго списка кандидатов векторов движения. Декодируют текущий блок с использованием первого предиктора и второго предиктора, при этом декодирование дополнительно содержит сглаживание указанных первого предиктора и второго предиктора вдоль по меньшей мере первой границы разделения. 6 н. и 4 з.п. ф-лы, 12 ил.
1. Декодер, содержащий схему, выполненную с возможностью:
приема битового потока, причем битовый поток содержит текущее изображение, а текущее изображение включает в себя текущий блок, имеющий по меньшей мере первую границу разделения, разделяющую блок на первую и вторую непрямоугольные области, и вторую границу разделения, пересекающую по меньшей мере первую границу разделения и разделяющую вторую область для разделения текущего блока на три части;
определения первого предиктора для использования в первой непрямоугольной области с использованием первого вектора движения, выбранного из первого списка кандидатов векторов движения;
определения второго предиктора для использования во второй непрямоугольной области с использованием второго вектора движения, выбранного из второго списка кандидатов векторов движения; и
декодирования текущего блока с использованием первого предиктора и второго предиктора, при этом декодирование дополнительно содержит сглаживание указанных первого предиктора и второго предиктора вдоль по меньшей мере первой границы разделения.
2. Декодер по п. 1, в котором текущий блок является текущей единицей дерева кодирования.
3. Декодер по п. 1, в котором первое разделение включает в себя первое геометрическое разделение.
4. Декодер по п. 1, в котором второе разделение включает в себя второе геометрическое разделение.
5. Декодер, содержащий схему, выполненную с возможностью:
приема битового потока, причем битовый поток содержит текущее изображение, а текущее изображение включает в себя текущий блок, имеющий размер блока N×N, где N равно 64 или 128, и содержащий по меньшей мере первую границу геометрического разделения, разделяющую блок на первую и вторую непрямоугольные области, и вторую границу геометрического разделения, пересекающую по меньшей мере первую границу геометрического разделения и разделяющую вторую непрямоугольную область для разделения текущего блока на три части;
определения первого предиктора для использования в первой непрямоугольной области с использованием первого вектора движения, выбранного из первого списка кандидатов векторов движения;
определения второго предиктора для использования во второй непрямоугольной области с использованием второго вектора движения, выбранного из второго списка кандидатов векторов движения; и
декодирования текущего блока с использованием первого предиктора и второго предиктора, при этом декодирование дополнительно содержит сглаживание указанных первого предиктора и второго предиктора вдоль по меньшей мере первой границы геометрического разделения.
6. Декодер по п. 5, в котором текущий блок является текущей единицей дерева кодирования.
7. Кодер для обеспечения кодированного битового потока для декодирования совместимым декодером, причем кодированный битовый поток содержит текущее изображение, а текущее изображение включает в себя текущий блок, имеющий по меньшей мере первую границу разделения, разделяющую блок на первую и вторую непрямоугольные области, и вторую границу разделения, пересекающую по меньшей мере первую границу разделения и разделяющую вторую область для разделения текущего блока на три части, а указанный декодер выполнен с возможностью:
приема указанного битового потока;
определения первого предиктора для использования в первой непрямоугольной области с использованием первого вектора движения, выбранного из первого списка кандидатов векторов движения;
определения второго предиктора для использования во второй непрямоугольной области с использованием второго вектора движения, выбранного из второго списка кандидатов векторов движения; и
декодирования текущего блока с использованием первого предиктора и второго предиктора, при этом декодирование дополнительно содержит сглаживание указанных первого предиктора и второго предиктора вдоль по меньшей мере первой границы разделения.
8. Кодер для обеспечения кодированного битового потока для декодирования совместимым декодером, причем кодированный битовый поток содержит текущее изображение, а текущее изображение включает в себя текущий блок, имеющий размер блока N×N, где N равно 64 или 128, и содержащий по меньшей мере первую границу геометрического разделения, разделяющую блок на первую и вторую непрямоугольные области, и вторую границу геометрического разделения, пересекающую по меньшей мере первую границу геометрического разделения и разделяющую вторую непрямоугольную область для разделения текущего блока на три части, а указанный декодер выполнен с возможностью:
приема указанного битового потока;
определения первого предиктора для использования в первой непрямоугольной области с использованием первого вектора движения, выбранного из первого списка кандидатов векторов движения;
определения второго предиктора для использования во второй непрямоугольной области с использованием второго вектора движения, выбранного из второго списка кандидатов векторов движения; и
декодирования текущего блока с использованием первого предиктора и второго предиктора, при этом декодирование дополнительно содержит сглаживание указанных первого предиктора и второго предиктора вдоль по меньшей мере первой границы геометрического разделения.
9. Машиночитаемый носитель информации, хранящий кодированный битовый поток, декодируемый посредством реализации способа декодирования, содержащего этапы, на которых:
принимают битовый поток, причем битовый поток содержит текущее изображение, а текущее изображение включает в себя текущий блок, имеющий по меньшей мере первую границу разделения, разделяющую блок на первую и вторую непрямоугольные области, и вторую границу разделения, пересекающую по меньшей мере первую границу разделения и разделяющую вторую область для разделения текущего блока на три части;
определяют первый предиктор для использования в первой непрямоугольной области с использованием первого вектора движения, выбранного из первого списка кандидатов векторов движения;
определяют второй предиктор для использования во второй непрямоугольной области с использованием второго вектора движения, выбранного из второго списка кандидатов векторов движения; и
декодируют текущий блок с использованием первого предиктора и второго предиктора, при этом этап декодирования дополнительно содержит подэтап, на котором сглаживают указанные первый предиктор и второй предиктор вдоль по меньшей мере первой границы разделения.
10. Машиночитаемый носитель информации, хранящий кодированный битовый поток, декодируемый посредством реализации способа декодирования, содержащего этапы, на которых:
принимают битовый поток, причем битовый поток содержит текущее изображение, а текущее изображение включает в себя текущий блок, имеющий размер блока N×N, где N равно 64 или 128, и содержащий по меньшей мере первую границу геометрического разделения, разделяющую блок на первую и вторую непрямоугольные области, и вторую границу геометрического разделения, пересекающую по меньшей мере первую границу геометрического разделения и разделяющую вторую непрямоугольную область для разделения текущего блока на три части;
определяют первый предиктор для использования в первой непрямоугольной области с использованием первого вектора движения, выбранного из первого списка кандидатов векторов движения;
определяют второй предиктор для использования во второй непрямоугольной области с использованием второго вектора движения, выбранного из второго списка кандидатов векторов движения; и
декодируют текущий блок с использованием первого предиктора и второго предиктора, при этом этап декодирования дополнительно содержит подэтап, на котором сглаживают указанные первый предиктор и второй предиктор вдоль по меньшей мере первой границы геометрического разделения.
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
JIANLE CHEN et al | |||
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. | 1921 |
|
SU3A1 |
Монтажный инструмент | 1935 |
|
SU45226A1 |
MPEG MEETING; 20181008 - 20181012; MACAO; MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11, [Найдено 24.01.2023] в Интернет URL |
Авторы
Даты
2024-11-29—Публикация
2020-01-28—Подача