ЭФФЕКТИВНОЕ КОДИРОВАНИЕ ВЕКТОРОВ ГЛОБАЛЬНОГО ДВИЖЕНИЯ Российский патент 2023 года по МПК H04N19/105 

Описание патента на изобретение RU2806444C2

Перекрестные ссылки на родственные заявки

Настоящая заявка претендует на преимущества от приоритета предварительной заявки на выдачу патента США No. 62/838,521, которая подана 25 апреля 2019 г. под названием «ЭФФЕКТИВНЫЙ СПОСОБ КОДИРОВАНИЯ ВЕКТОРОВ ГЛОБАЛЬНОГО ДВИЖЕНИЯ» (“Efficient Coding of Global Motion Vectors”), и которая включена сюда посредством ссылки во всей своей полноте.

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

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

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

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

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

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

Процедура компенсации движения может представлять собой способ предсказания кадра видео или части этого кадра с использованием опорного кадра, такого как предшествующий и/или будущий кадры, с учетом движения видеокамеры и/или объектов на видео. Это может быть использовано при кодировании и декодировании данных видео для сжатия видео, например, при кодировании и декодировании с использованием разработанного Группой экспертов по кинематографии (Motion Picture Experts Group (MPEG)) стандарта MPEG-2 (также называется усовершенствованным видео кодированием (advanced video coding (AVC)) и H.264). Процедура компенсации движения может описывать изображение в терминах преобразования опорного изображения в текущее изображение. Опорное изображение может быть предшествующим во времени при сравнении с текущим изображением, или может быть взято из будущего по сравнению с текущим изображением. Когда есть возможность точно синтезировать изображение из ранее переданных или сохраненных изображений, можно повысить эффективность сжатия.

Раскрытие сущности изобретения

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

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

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

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

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

фиг. 1 представляет диаграмму, иллюстрирующую векторы движения примера кадра с глобальным и локальным движением;

фиг. 2 иллюстрирует три примера моделей движения, которые могут быть использованы для глобального движения, с указанием величин их индексов (0, 1 или 2);

фиг. 3 представляет логическую схему способа согласно некоторым примерам вариантов реализации предмета настоящего изобретения;

фиг. 4 представляет блок-схему системы для примера декодирующего устройства согласно некоторым примерам вариантов реализации предмета настоящего изобретения;

фиг. 5 представляет логическую схему способа согласно некоторым примерам вариантов реализации предмета настоящего изобретения;

фиг. 6 представляет блок-схему системы для примера кодирующего устройства согласно некоторым примерам вариантов реализации предмета настоящего изобретения; и

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

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

Осуществление изобретения

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

На фиг. 1 представлена диаграмма, иллюстрирующая варианты векторов движения примера кадра 100 с глобальным и локальным движением. Кадр 100 может содержать ряд блоков пикселей, изображенных в виде квадратов, и ассоциированных с этими блоками векторов движения, изображенных в виде стрелок. Квадраты (например, блоки пикселей) со стрелками, указывающими вверх и влево, могут указывать блоки с движением, которое может считаться глобальным движением, и квадраты со стрелками, указывающими в других направлениях, (обозначены поз. 104), могут указывать блоки с локальным движением. В иллюстрируемом на фиг. 1 примере многие блоки имеют одно и то же глобальное движение. Передача сигнализации о глобальном движении в заголовке, таком как набор параметров изображения (picture parameter set (PPS)) или набор параметров последовательности (sequence parameter set (SPS)) и использование глобального движения, о котором передана сигнализация, может уменьшить объем информации вектора движения, необходимой блокам, и может иметь в качестве результата улучшенное предсказание. Хотя для иллюстративных целей описанные ниже примеры относятся к определению и/или применению векторов глобального или локального движения на уровне блоков, вектор глобального движения может быть определен и/или применен для любой области кадра и/или изображения, включая, образованные из нескольких блоков, области, ограниченные контуром какой-либо геометрической формы, такие как, без ограничений, области, определяемые геометрическим и/или экспоненциальным кодированием, в которых одна или несколько прямых и/или кривых линий, ограничивающих профиль, могут быть наклонными или искривленными, и/или для целиком кадра и/или изображения. Хотя передача в виде сигнализации описана здесь, как осуществляемая на уровне кадров и/или в заголовке и/или в наборе параметров кадра, такая сигнализация может быть в качестве альтернативы или в дополнение осуществлена на уровне суб-изображения, где такое суб-изображение может представлять собой какую-либо область кадра и/или изображения, как описано выше.

В качестве примера, и по-прежнему ссылаясь на фиг. 1, простое поступательное перемещение может быть описано с использованием вектора движения (motion vector (MV)) с двумя компонентами MVx, MVy, каковые векторы описывают смещение блоков и/или пикселей в текущем кадре. Более сложное движение, такое как поворот (вращение), зуммирование и деформирование, могут быть описаны с использованием векторов аффинного движения, где «вектор аффинного движения», как это используется в настоящем описании, представляет собой вектор, характеризующий однородное смещение группы пикселей или точек, представленных в изображении видео и/или в картинке, такой как группы пикселей, иллюстрирующей движение объекта через поле зрения в видеоролике без изменения видимой формы в процессе движения. Некоторые подходы к кодированию и/или декодированию видео используют 4-параметрические или 6-параметрические аффинные модели для компенсации движения в ходе межкадрового кодирования изображения.

Например, 6-параметрическая аффинная модель движения может быть описана как:

x’ = ax + by + c

y’ = dx + ey + f

4-параметрическая аффинная модель движения может быть описана как:

x’ = ax + by + c

y’ = -bx + ay + f

где (x,y) и (x’,y’) обозначают позиции пикселей в текущем и опорном изображениях, соответственно; a, b, c, d, e и f представляют параметры аффинной модели движения.

Продолжая обращаться к фиг. 1, параметры, используемые для описания аффинного движения, могут быть сообщены в виде сигнализации декодирующему устройству для применения компенсации движения в этом декодирующем устройстве. Согласно некоторым способам, параметры движения можно передавать в виде сигнализации в явном виде или посредством передачи сигнализации векторов поступательного движения контрольных точек (control point motion vector (CPMV)) и затем определения параметров аффинного движения на основе этих векторов поступательного движения. Два вектора движения контрольных точек (CPMV) могут быть использованы для определения параметров аффинного движения для 4-параметрической модели аффинного движения и три вектора поступательного движения контрольных точек (CPMV) могут быть использованы для получения параметров для 6-параметрической модели движения. Передача в виде сигнализации параметров аффинного движения с использованием векторов движения контрольных точек может позволить использовать эффективные способы кодирования векторов движения для передачи в виде сигнализации параметров аффинного движения.

В некоторых вариантах реализации и продолжая обращаться к фиг. 1, сигнализация о глобальном движении может быть включена в заголовок, такой как набор PPS или набор SPS. Глобальное движение может варьироваться от изображения к изображению. Векторы движения, передаваемые в виде сигнализации в заголовках изображения, могут описывать движение относительно ранее декодированных кадров. В некоторых вариантах реализации, глобальное движение может быть поступательным или аффинным. Используемая модель движения (например, число параметров, является ли модель аффинной, поступательной или другой) может также быть сообщена в виде сигнализации в заголовке изображения. Фиг. 2 иллюстрирует три примера моделей 200 движения, которые могут быть использованы для моделирования глобальное движение, с указанием индексов (0, 1 или 2) этих моделей.

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

По-прежнему обращаясь к фиг. 2, к набору PPS могут быть добавлены дополнительные поля для сигнализации о глобальном движении. В случае глобального движения, о присутствии параметров глобального движения в последовательности изображений может быть сообщено в наборе SPS, а набор PPS может обращаться к этому набору SPS посредством идентификатора SPS ID. Набор SPS в некоторых способах декодирования может быть модифицирован для добавления поля с целью сигнализации о присутствии параметров глобального движения в этом наборе SPS. Например, к набору SPS может быть добавлено однобитовое поле. Если бит global_motion_present равен 1, можно ожидать присутствия параметров, относящихся к глобальному движению в наборе PPS; если бит global_motion_present равен 0, полей относящихся к параметрам глобального движения может не быть в наборе PPS. Например, набор PPS, иллюстрируемый в таблице 1, может быть расширен для включения в него поля global_motion_present, например, как показано в таблице 2:

Аналогично, набор PPS может содержать поле pps_global_motion_parameters для кадра, например, как показано в таблице 3:

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

В качестве еще одного неограничивающего примера, таблица 5 ниже может представлять пример набора SPS:

Таблица набора SPS, приведенная выше, может быть расширена, как описано выше, с целью включения в нее индикатора присутствия глобального движения, как это показано в таблице 6:

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

В одном из вариантов, и по-прежнему обращаясь к фиг. 2, флаг sps_affine_enabled_flag в наборе PPS и/или в наборе SPS может специфицировать, может ли компенсация движения на основе аффинной модели быть использована для межкадрового предсказания. Если флаг sps_affine_enabled_flag равен 0, синтаксис может быть ограничен таким образом, что никакая компенсация движения на основе аффинной модели не используется в последовательности видео с запаздывающим кодированием (code later video sequence (CLVS)), при этом в синтаксической единице кодирования последовательности CLVS могут не присутствовать флаг inter_affine_flag и флаг cu_affine_type_flag. В противном случае (флаг sps_affine_enabled_flag равен 1), в последовательности CLVS может быть использована компенсация движения на основе аффинной модели.

Продолжая обращаться к фиг. 2, флаг sps_affine_type_flag в наборе PPS и/или в наборе SPS может специфировать, может ли для межкадрового предсказания использоваться компенсация движения на основе 6-параметрической аффинной модели. Если флаг sps_affine_type_flag равен 0, синтаксис может быть ограничен таким образом, что никакая компенсация движения на основе 6-параметрической аффинной модели не используется в последовательности CLVS, и флаг cu_affine_type_flag может не присутствовать в синтаксисе единицы кодирования в последовательности CLVS. В противном случае (флаг sps_affine_type_flag равен 1), в последовательности CLVS может использоваться компенсация движения на основе 6-параметрической аффинной модели. Когда флаг sps_affine_type_flag не присутствует, его можно считать равным 0.

По-прежнему обращаясь к фиг. 2, векторы CPMV для поступательного движения могут быть сообщены в виде сигнализации в наборе PPS. Контрольные точки могут быть определены предварительно. Например, контрольная точка (вектор) MV 0 может относиться к верхнему левому углу изображения, точка (вектор) MV 1 может относиться к верхнему правому углу и точка (вектор) MV 3 может относиться к нижнему левому углу изображения. Таблица 4 иллюстрирует пример способа передачи в виде сигнализации данных векторов CPMV в зависимости от используемой модели движения.

В одном из примеров вариантов и по-прежнему обращаясь к фиг. 2, параметр amvr_precision_idx массива, который может быть сообщен в виде сигнализации в единице кодирования, дереве кодирования или другом подобном объекте, может специфицировать разрешение AmvrShift разности векторов движения, что может быть определено в виде неисчерпывающего примера, как показано в таблице 7, приведенной ниже. Индексы x0, y0 массива могут специфицировать позицию ( x0, y0 ) верхнего левого отсчета яркостной составляющей рассматриваемого блока кодирования относительно верхнего левого отсчета яркостной составляющей изображения; когда параметр amvr_precision_idx[ x0 ][ y0 ] не присутствует, его можно признать равным 0. Там, где флаг inter_affine_flag[ x0 ][ y0 ] равен 0, переменные MvdL0[ x0 ][ y0 ][ 0 ], MvdL0[ x0 ][ y0 ][ 1 ], MvdL1[ x0 ][ y0 ][ 0 ], MvdL1[ x0 ][ y0 ][ 1 ], представляющие разности векторов движения, соответствующих рассматриваемому блоку, могут быть модифицированы путем сдвига таких величин на AmvrShift, например, с использованием MvdL0[ x0 ][ y0 ][ 0 ] = MvdL0[ x0 ][ y0 ][ 0 ] << AmvrShift; MvdL0[ x0 ][ y0 ][ 1 ] = MvdL0[ x0 ][ y0 ][ 1 ] << AmvrShift; MvdL1[ x0 ][ y0 ][ 0 ] = MvdL1[ x0 ][ y0 ][ 0 ] << AmvrShift; и MvdL1[ x0 ][ y0 ][ 1 ] = MvdL1[ x0 ][ y0 ][ 1 ] << AmvrShift. Когда флаг inter_affine_flag[ x0 ][ y0 ] равен 1, переменные MvdCpL0[ x0 ][ y0 ][ 0 ][ 0 ], MvdCpL0[ x0 ][ y0 ][ 0 ][ 1 ], MvdCpL0[ x0 ][ y0 ][ 1 ][ 0 ], MvdCpL0[ x0 ][ y0 ][ 1 ][ 1 ], MvdCpL0[ x0 ][ y0 ][ 2 ][ 0 ] и MvdCpL0[ x0 ][ y0 ][ 2 ][ 1 ] могут быть модифицированы посредством сдвига, например, следующим образом: MvdCpL0[ x0 ][ y0 ][ 0 ][ 0 ] = MvdCpL0[ x0 ][ y0 ][ 0 ][ 0 ] << AmvrShift; MvdCpL1[ x0 ][ y0 ] [ 0 ][ 1 ] = MvdCpL1[ x0 ][ y0 ][ 0 ][ 1 ] << AmvrShift; MvdCpL0[ x0 ][ y0 ][ 1 ][ 0 ] = MvdCpL0[ x0 ][ y0 ][ 1 ][ 0 ] << AmvrShift; MvdCpL1[ x0 ][ y0 ] [ 1 ][ 1 ] = MvdCpL1[ x0 ][ y0 ][ 1 ][ 1 ] << AmvrShift; MvdCpL0[ x0 ][ y0 ][ 2 ][ 0 ] = MvdCpL0[ x0 ][ y0 ][ 2 ][ 0 ] << AmvrShift; и MvdCpL1[ x0 ][ y0 ] [ 2 ][ 1 ] = MvdCpL1[ x0 ][ y0 ][ 2 ][ 1 ] << AmvrShift

amvr_flag amvr_precision_idx AmvrShift inter_affine_flag = =1 CuPredMode[ chType ][ x0 ][ y0 ] = = MODE_IBC ) inter_affine_flag = =0
&&
CuPredMode[ chType ][ x0 ][ y0 ] != MODE_IBC
0 - 2 (1/4 отсчета яркостной составляющей) - 2 (1/4 отсчета яркостной составляющей) 1 0 0 (1/16 отсчета яркостной составляющей) 4 (1 отсчета яркостной составляющей) 3 (1/2 отсчета яркостной составляющей) 1 1 4 (1 отсчета яркостной составляющей) 6 (4 отсчета яркостной составляющей) 4 (1 отсчета яркостной составляющей) 1 2 - - 6 (4 отсчета яркостной составляющей)

Продолжая обращаться к фиг. 2, глобальное движение может рассматриваться относительно ранее кодированного кадра. Когда присутствует только один набор параметров глобального движения, это движение может рассматриваться относительно кадра, непосредственно предшествующего текущему кадру.

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

Продолжая обращаться к фиг. 2, текущее изображение, кодируемое как изображение с межкадровым предсказанием, может использовать оценку движения для улучшения сжатия. Векторы глобального движения для текущего изображения могут быть сообщены в виде сигнализации в наборе PPS. В некоторых способах сжатия видео, при кодировании параметров глобального движения (например, векторов движения контрольных точек) в текущем кадре может уже быть декодирована и доступна следующая информация: 1) параметры глобального движения из предыдущего кадра; 2) параметры глобального движения относительно доступных опорных изображений в списке List0, уже кодированные в текущем кадре; и 3) векторы движения контрольных точек в кодируемых параметрах глобального движения.

По-прежнему обращаясь к фиг. 2, предсказываемый вектор движения (predicted motion vector (PMV)) для векторов движения контрольных точек (CPMV) может быть определен на основе ранее кодированных векторов движения, и разность между вектором CPMV и вектором PMV может быть кодирована для уменьшения числа битов и повышения эффективности сжатия.

Например, и продолжая обращаться к фиг. 2, векторы CPMV0i, CPMV1i и CPMV2i могут представлять собой три вектора движения контрольных точек в кадре ‘i', подлежащем кодированию. В одном из примеров способа, вектор CPMV0i-1, представляющий компонент вектора и/или вектор, определяемый для кадра, предшествующего текущему кадру, включая без ограничений опорный кадр и/или непосредственно предшествующий кадр, может быть использован в качестве предсказания для вектора CPMV0i, и разность между векторами движения может быть кодирована. Разность между компонентами x и y вектора движения и его предсказания может быть кодирована.

По-прежнему обращаясь к фиг. 2, для вектора CPMV(j,i), j, индекс j в диапазоне 0 <= j < 3 может представлять собой номер вектора движения, и индекс i, в диапазоне 0 <= i <= ref_pic_count, может представлять собой индекс опорного изображения. Параметр ref_pic_count = 0 может относиться к текущему изображению. Вектор CPMV(j,1) может быть использован в качестве предсказания для вектора CPMV(j,0). Контрольные точки для глобального движения в кадре могут располагаться в углах кадра, а векторы CPMV в соответствующих углах кадра, вероятно, могут быть аналогичны и служить для лучшего предсказания.

Продолжая обращаться к фиг. 2, и в качестве неисчерпывающего примера, более сложное предсказание вектора движения может использовать вектор CPMV для всех доступных опорных изображений в списке. В этом примере способа, вектор CPMV(j,i) может быть использован в качестве предсказания для вектора CPMV(j,0). В этом случае, индекс i может также быть кодирован вместе с разностями векторов движения.

По-прежнему обращаясь к фиг. 2, ранее кодированный вектор CPMV может быть использован в качестве предсказания для кодирования последующего вектора CPMV, который может быть непосредственно следующим вектором CPMV. Например, вектор CPMV(j,i-1) может быть использован в качестве предсказания для вектора CPMV(j,i). В этом случае, индекс i может также быть кодирован вместе с разностями векторов движения. Когда кодируют только одну группу векторов CPMV, вектор CPMV0 может быть предсказанием для вектора CPMV1 и вектора CPMV2.

Далее обращаясь к фиг. 2, в качестве неисчерпывающего примера, таблица 5 показывает пример набора PPS с глобальными параметрами движения с использованием векторов движения контрольных точек.

Таблица 6 показывает другой пример набора PPS с дифференциально кодированными параметрами глобального движения для одного или более кадров в списке опорных изображений.

Продолжая обращаться к фиг. 2, далее приведен пример псевдокода для определения предсказываемого вектора CPMV в соответствии с одним из примеров вариантов:

get_cpmv_pred(i, j){

if(i == 0){

if(j == 0){

pmv.x = 0;

pmv.y = 0;

}else{

pmv.x = mv0_x;

pmv.y = mv0_y;

}

}else{

pmv[j] = cpmv(j, i-1)

}

return pmv;

}

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

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

На фиг. 3 представлена логическая схема, иллюстрирующая пример процедуры 300 предсказания векторов глобального движения для текущего кадра на основе ранее кодированных векторов глобального движения для предыдущего кадра. На этапе 305, и по-прежнему обращаясь к фиг. 3, декодирующее устройство принимает поток битов данных. В потоке битов данных, принимаемом декодирующим устройством, может находиться текущий блок. Поток битов данных может содержать, например, данные из потока битов, поступающего на вход декодирующего устройства, когда используется сжатие данных. Этот поток битов данных может содержать информацию, необходимую для декодирования видео. Процедура приема может содержать выделение и/или синтаксический анализ блока и ассоциированной сигнализационной информации из потока битов данных. В некоторых вариантах реализации, текущий блок может представлять собой единицу дерева кодирования (coding tree unit (CTU)), единицу кодирования (coding unit (CU)) или единицу предсказания (prediction unit (PU)).

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

На фиг. 4 представлена блок схема системы, иллюстрирующая пример декодирующего устройства 400, способного декодировать поток 428 битов данных с предсказанием векторов глобального движения в текущем кадре на основе ранее кодированных векторов глобального движении для предыдущего кадра. Декодирующее устройство 400 может содержать процессор 404 энтропийного декодирующего устройства, процессор 408 для обратного квантования и обратного преобразования, фильтр удаления блочности 412, буфер 416 кадра, процессор 420 для компенсации движения и/или процессор 424 для внутрикадрового предсказания.

Во время работы, и по-прежнему обращаясь к фиг. 4, поток 428 битов данных может быть принят декодирующим устройством 400 и передан на вход процессора 404 энтропийного декодирующего устройства, который осуществляет энтропийное декодирование частей потока битов данных и превращение их в квантованные коэффициенты. Эти квантованные коэффициенты могут быть переданы в процессор 408 для обратного квантования и обратного преобразования, способный осуществить обратное квантование и обратное преобразование для получения сигнала остатка, который может быть суммирован с выходными данными процессора 420 для компенсации движения или процессора 424 для внутрикадрового предсказания в соответствии с режимом обработки сигнала. Выходные данные процессора 420 для компенсации движения и процессора 424 для внутрикадрового предсказания могут содержать предсказание блока на основе ранее декодированного блока. Сумма предсказания и остатка может быть обработана деблокирующим фильтром 630 и сохранена в буфере 640 кадра.

На фиг. 5 представлена логическая схема процедуры, иллюстрирующая пример процедуры 500 кодирования видео с предсказанием векторов глобального движения в текущем кадре на основе ранее кодированных векторов глобального движения из предыдущего кадра согласно некоторым аспектам предмета настоящего изобретения, что может уменьшить сложность кодирования и повысить эффективность сжатия. На этапе 505, кадр видео может быть подвергнут первоначальной сегментации на блоки, например, с использованием схемы разбиения макроблоков в соответствии со структурой дерева, что может содержать разбиение кадра изображения на единицы CTU и единицы CU. На этапе 510, может быть определен остаток вектора движения контрольной точки для текущего кадра. На этапе 515, блок может быть кодирован и вставлен в поток битов данных. Процедура кодирования может содержать использование режимов межкадрового предсказания и внутрикадрового предсказания, например.

На фиг. 6 представлена блок-схема системы, иллюстрирующая пример варианта кодирующего устройства 600 для видео, способного предсказывать векторы глобального движения для текущего кадра на основе ранее кодированных векторов глобального движения для предыдущего кадра согласно некоторым аспектам предмета настоящего изобретения. Этот пример кодирующего устройства 600 для видео может принимать входное видео 604, которое может быть первоначально сегментировано и/или разбито в соответствии со схемой обработки видео, такой как схема разбиения макроблоков в структуре дерева (например, дерево квадратов плюс двоичное дерево). Пример схемы разбиения макроблоков в структуре дерева может содержать разбиение кадра изображения на большие элементы блоков, называемые единицами дерева кодирования (CTU). В некоторых вариантах, каждая единица CTU может быть далее разбита один или несколько раз на некоторое число субблоков, называемые единицами кодирования (CU). Конечный результат такого разбиения может содержать группу субблоков, которые могут называться единицами предсказания (PU). Также могут быть использованы единицы преобразования (transform unit (TU)).

По-прежнему обращаясь к фиг. 6, пример кодирующего устройства 600 для видео может содержать процессор 608 для внутрикадрового предсказания, процессор 612 для оценки/компенсации движения, который может также называться процессором межкадрового предсказания и который способен поддерживать предсказание векторов глобального движения для текущего кадра на основе ранее кодированных векторов глобального движения для предыдущего кадра согласно некоторым аспектам предмета настоящего изобретения, процессор 616 для преобразования/квантования, процессор 620 для обратного квантования/обратного преобразования, внутриконтурный фильтр 624, буфер 628 декодированного изображения и/или процессор 632 для энтропийного кодирования. В этот процессор 632 для энтропийного кодирования могут быть введены параметры потока битов данных для вставки в выходной поток 636 битов данных.

Во время работы и продолжая обращаться к фиг. 6, для каждого блока кадра входного видео 604 может быть определено, следует ли обрабатывать этот блок, посредством внутрикадрового предсказания изображения или с использованием оценки/компенсации движения. Блок может быть передан процессору 608 для внутрикадрового предсказания или процессору 612 для оценки/компенсации движения. Если блок должен быть обработан посредством внутрикадрового предсказания, процессор 608 для внутрикадрового предсказания может осуществить обработку для передачи на выход предиктора. Если блок должен быть обработан посредством оценки/компенсации движения, процессор 612 для оценки/компенсации движения может осуществить обработку, содержащую предсказание векторов глобального движения для текущего кадра на основе ранее кодированных векторов глобального движения для предыдущего кадра согласно некоторым аспектам предмета настоящего изобретения, если это применимо.

По-прежнему обращаясь к фиг. 6, может быть сформирован остаток путем вычитания предиктора из входного видео. Остаток может быть принят процессором 616 для преобразования/квантования, который может осуществить процедуру преобразования (например, дискретное косинусное преобразование (discrete cosine transform (DCT))) для генерации коэффициентов, которые могут быть квантованы. Квантованные коэффициенты и какая-либо ассоциированная сигнализационная информация может быть передана процессору 632 для энтропийного кодирования с целью осуществления энтропийного кодирования и вставки результата в выходной поток 636 битов данных. Процессор 632 для энтропийного кодирования может поддерживать кодирование сигнализационной информации относительно кодирования текущего блока. В дополнение к этому, квантованные коэффициенты могут быть переданы процессору 620 для обратного квантования/обратного преобразования, который может воспроизводить пиксели, каковые могут быть объединены с предиктором и обработаны внутриконтурным фильтром 624, а выходные данные этого фильтра могут быть сохранены в буфере 628 декодированного изображения для использования процессором 612 для оценки/компенсации движения, способным предсказывать векторы глобального движения для текущего кадра на основе ранее кодированных векторов глобального движения для предыдущего кадра согласно некоторым аспектам предмета настоящего изобретения.

По-прежнему обращаясь к фиг. 6, хотя выше были описаны подробно несколько вариантов, возможны также другие модификации или дополнения. Например, в некоторых вариантах, текущие блоки могут представлять собой какие-либо симметричные блоки (8x8, 16x16, 32x32, 64x64, 128 x 128 и другие подобные блоки), равно как какие-либо асимметричные блоки (8x4, 16x8 и другие подобные блоки).

В некоторых вариантах реализации, и продолжая обращаться к фиг. 6, может быть осуществлено дерево принятия решений со структурой дерево квадратов плюс двоичное дерево (quadtree plus binary decision tree (QTBT)). В структуре дерева QTBT, на уровне единицы дерева кодирования, параметры разбиения в структуре дерева QTBT могут быть определены динамически для адаптации к локальным характеристикам без передачи каких-либо издержек. После этого, на уровне единиц кодирования, структура дерева принятия решений с объединенным классификатором может исключать ненужные итерации и бороться с риском ложного предсказания. В некоторых вариантах реализации, режим обновления блоков кадра LTR (долговременная опора) может быть доступным в качестве дополнительной опции, доступной в каждом концевом узле («листе») дерева QTBT.

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

Следует отметить, что любые один или несколько аспектов и вариантов, описываемых здесь, могут быть обычно реализованы с использованием компьютерной аппаратуры на основе цифровых электронных схем, интегральных схем, специализированных интегральных схем (application specific integrated circuit (ASIC)), программируемых пользователем вентильных матриц (field programmable gate array (FPGA)), встроенного программного обеспечения, загружаемого программного обеспечения и/или комбинаций этих компонентов, как это реализовано в одной или более машинах (например, одно или несколько компьютерных устройств, используемых в качестве пользовательских компьютерных устройств для электронной документации, одно или несколько серверных устройств, таких как сервер документов, и т.п.), запрограммированных в соответствии с положениями настоящей заявки, как должно быть понятно даже рядовым специалистам в компьютерной технике. Эти разнообразные аспекты или признаки могут содержать реализацию одной или более компьютерных программ и/или программного обеспечения, выполняемых и/или интерпретируемых в программируемой системе, содержащей по меньшей мере один программируемый процессор, который может быть процессором специального или общего назначения, соединенным для приема данных и команд от системы хранения информации и передачи данных и команд в эту систему хранения информации, по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Соответствующие коды программного обеспечения могут быть легко подготовлены квалифицированными программистами на основе положений настоящего изобретения, как это должно быть ясно даже рядовым специалистам в программировании. Аспекты и варианты реализации, обсуждаемые выше и использующие программное обеспечение и/или программные модули, могут также содержать соответствующую аппаратуру, способствующую осуществлению выполняемых машиной команд программного обеспечения и/или программных модулей.

Такое программное обеспечение может представлять собой компьютерный программный продукт, использующий машиночитаемый носитель для хранения информации. Машиночитаемый носитель для хранения информации может представлять собой какой-либо носитель, способный сохранять и/или кодировать последовательность команд для выполнения машиной (например, компьютерным устройством) с целью осуществлять какой-либо один из способов и/или вариантов, описываемых здесь. К примерам такого машиночитаемого носителя относятся, не ограничиваясь, магнитный диск, оптический диск (например, CD, CD-R, DVD, DVD-R и т.п.), магнитооптический диск, постоянное запоминающее устройство (ПЗУ (“ROM”)), запоминающее устройство с произвольной выборкой (ЗУПВ (“RAM”), магнитная карточка, оптическая карточка, твердотельное запоминающее устройство, СППЗУ (EPROM), ЭСППЗУ (EEPROM), программируемые логические устройства (Programmable Logic Devices (PLDs)),и/или какие-либо комбинации перечисленных носителей. Термин «машиночитаемый носитель», как он используется здесь, предназначен обозначать как единственный носитель, так и набор физически раздельных носителей, таких как, например, набор компакт-дисков, либо один или несколько накопителей на жестких дисках в сочетании с компьютерным запоминающем устройством. Как используется здесь, термин «машиночитаемый носитель для хранения информации» не охватывает временные, энергозависимые формы передачи сигнала.

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

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

На фиг. 7 показано схематичное представление одного из вариантов компьютерного устройства в примере компьютерной системы 700, где могут быть выполнены набор команд, при выполнении которых система управления осуществляет какие-либо один или несколько аспектов и/или способов согласно настоящему изобретению. Здесь также подразумевается, что несколько компьютерных устройств могут быть использованы для осуществления специально конфигурированного набора команд, побуждающих одно или несколько компьютерных устройств реализовывать один или несколько аспектов и/или способов согласно настоящему изобретению. Компьютерная система 700 содержит процессор 704 и запоминающее устройство 708, осуществляющие связь один с другим и с другими компонентами по шине 712. Шина 712 может представлять собой какой-либо из нескольких типов структур шин, включая, не ограничиваясь этим, шину памяти, контроллер памяти, периферийную шину, локальную шину или какою-либо комбинацию этих типов шин с использованием какой-либо из разнообразных архитектур шин.

Запоминающее устройство 708 может содержать различные компоненты (например, машиночитаемые носители информации), включая, не ограничиваясь этим, компонент запоминающего устройства с произвольной выборкой, компонент постоянного запоминающего устройства и какие-либо комбинации этих компонентов. В одном из примеров, в запоминающем устройстве 708 может быть сохранена базовая система ввода/вывода 716 (BIOS), содержащая заданные процедуры, помогающие передавать информацию между элементами внутри компьютерной системы 700, например, при запуске системы. Запоминающее устройство 708 может также содержать (например, сохраненные на одном или более машиночитаемых носителях) команды (например, программное обеспечение) 720, реализующие какие-либо один или несколько аспектов и/или способов настоящего изобретения. В другом примере, запоминающее устройство 708 может далее содержать какое-либо количество программных модулей, включая, без ограничений, операционную систему, одну или несколько прикладных программ, другие программные модули, программные данные или какие-либо комбинации этих компонентов.

Компьютерная система 700 может также содержать устройство 724 для хранения информации. К примерам устройств для хранения информации (например, устройства 724 для хранения информации) относятся, без ограничений, накопитель на жестком диске, накопитель на магнитном диске, накопитель на оптическом диске в сочетании с оптическим носителем информации, твердотельное запоминающее устройство и какие-либо комбинации таких компонентов. Устройство 724 для хранения информации может быть соединено с шиной 712 посредством соответствующего интерфейса (не показан). К примерам интерфейсов относятся, не ограничиваясь этим, интерфейс SCSI, присоединение по усовершенствованной технологии (advanced technology attachment (ATA)), последовательный интерфейс serial ATA, универсальная последовательная шина (universal serial bus (USB)), IEEE 1394 (FIREWIRE) и какие-либо комбинации этих интерфейсов. В одном из примеров, устройство 724 для хранения информации (либо один или несколько компонентов этого устройства) может быть сопряжено с компьютерной системой 700 (например, через внешний соединитель порта (не показан)) так, что его можно отделять. В частности, устройство 724 для хранения информации и ассоциированный с ним машиночитаемый носитель 728 для хранения информации могут обеспечивать энергонезависимое и/или энергозависимое хранение машиночитаемых команд, структур данных, программных модулей и/или другие данные для компьютерной системы 700. В одном из примеров, программное обеспечение 720 может быть резидентно, полностью или частично, на машиночитаемом носителе 728. В другом примере, программное обеспечение 720 может быть резидентно, полностью или частично, в процессоре 704.

Компьютерная система 700 может также содержать устройство 732 ввода. В одном из примеров, пользователь компьютерной системы 700 может вводить команды и/или другую информацию в компьютерную систему 700 через это устройство 732 ввода. К примерам устройств 732 ввода относятся, без ограничений, алфавитно-цифровое устройство ввода (например, клавиатура), указательное устройство, джойстик, игровая панель, устройство аудио ввода (например, микрофон, система с речевым ответом и т.п.), устройство управления курсором (например, мышь), сенсорная панель, оптический сканер, устройство захвата изображения (например, фотоаппарат, видеокамера), сенсорный экран или какая-либо комбинация перечисленных компонентов. Устройство 732 ввода может быть сопряжено с шиной 712 через какой-либо из разнообразных интерфейсов (не показан), включая, без ограничений, последовательный интерфейс, параллельный интерфейс, игровой порт, USB-интерфейс, интерфейс FIREWIRE, прямой интерфейс с шиной 712, и какие-либо комбинации перечисленных интерфейсов. Устройство 732 ввода может содержать интерфейс сенсорного экрана, который может быть частью дисплейного устройства 736 или отдельным от него устройством, что далее обсуждается ниже. Устройство 732 ввода может быть использовано в качестве пользовательского селекторного устройства для выбора одного или более графических представлений в графическом интерфейсе, как описано выше.

Пользователь может также вводить команды и/или другую информацию в компьютерную систему 700 через устройство 724 для хранения информация (например, накопитель на сменных дисках, флэшка и т.п.) и/или устройство 740 сетевого интерфейса. Устройство сетевого интерфейса, такое как устройство 740 сетевого интерфейса, может быть использовано для соединения компьютерной системы 700 с одной или несколькими из совокупности разнообразных сетей 744 и одним или несколькими удаленными устройствами 748, соединенными с этими сетями. К примерам устройств сетевых интерфейсов относятся, без ограничений, карта сетевого интерфейса, (например, карта интерфейса сети мобильной связи, карта локальной сети связи (LAN)), модем или какая-либо комбинация этих компонентов. К примерам сетей связи относятся, без ограничений, широкомасштабная сеть связи (например, Интернет, сеть предприятия), локальная сеть связи (например, сеть связи, ассоциированная с офисом, зданием, кампусом или другим относительно небольшим географическим пространством), сеть телефонной связи, сеть передачи данных, ассоциированная с провайдером телефонной/голосовой связи (например, провайдером мобильной связи и/или провайдером сети передачи данных и/или сети голосовой связи), прямое соединение между двумя компьютерными устройствами и какая-либо комбинация перечисленных сетей. Сеть связи, такая как сеть 744 связи может использовать проводную и/или беспроводную связь. В общем случае, может быть использована любая сетевая топология. Информация (например, данные, программное обеспечение 720 и т.п.) может быть передана компьютерной системе 700 через устройство 740 сетевого интерфейса.

Компьютерная система 700 может далее содержать адаптер 752 видео дисплея для передачи представляемого изображения дисплейному устройству, такому как дисплейное устройство 736. К примерам дисплейных устройств относятся, без ограничений, жидкокристаллический дисплей (liquid crystal display (LCD)), электронно-лучевая трубка (cathode ray tube (CRT)), плазменный дисплей, дисплей на светодиодах (light emitting diode (LED)) и какая-либо комбинация таких дисплеев. Адаптер 752 дисплея и дисплейное устройство 736 могут быть использованы в сочетании с процессором 704 для создания графических представлений аспектов настоящего изобретения. В дополнение к дисплейному устройству компьютерная система 700 может содержать одно или более других периферийных устройств, включая, без ограничений, аудио громкоговоритель, принтер и какую-либо комбинацию этих устройств. Такие периферийные устройства вывода могут быть соединены с шиной 712 через периферийный интерфейс 756. К примерам периферийных интерфейсов относятся, без ограничений, последовательный порт, USB-соединение, соединение FIREWIRE, параллельное соединение и какие-либо комбинации перечисленных объектов.

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

В приведенном выше описании такие фразы, как «по меньшей мере одно из» или «одно или несколько из» могут следовать после связанного (конъюнктивного) списка элементов или признаков. Термин «и/или» может также появляться в списке из двух или более элементов или признаков. Если это не опровергается в неявной или в явной форме контекстом, в котором такая фраза используется, это должно означать какой-либо из перечисленных в списке элементов или признаков индивидуально или в комбинации с какими-либо другими из этих элементов или признаков. Например, каждая из фраз «по меньшей мере одно из A и B»; «одно или несколько из A и B» и «A и/или B» должна означать «A отдельно, B отдельно или A и B вместе». Аналогичная интерпретация также предполагается для списков, содержащих три или более объектов. Например, каждая из фраз «по меньшей мере одно из A, B и C»; «одно или несколько из A, B и C»; и «A, B и/или C» должна означать «только A, только B, только C, A и B вместе, A и C вместе, B и C вместе или A и B и C вместе». В дополнение к этому, использование термина «на основе…», выше и в Формуле изобретения должно означать «на основе по меньшей мере частично…», так что неупомянутые выше признак или элемент также допустимы.

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

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

название год авторы номер документа
ОГРАНИЧЕННЫЙ ГЛОБАЛЬНЫМ ДВИЖЕНИЕМ ВЕКТОР ДВИЖЕНИЯ ПРИ МЕЖКАДРОВОМ ПРОГНОЗИРОВАНИИ 2020
  • Калва, Хари
  • Фёрхт, Боривой
  • Аджич, Велибор
RU2806442C2
СИГНАЛИЗАЦИЯ ГЛОБАЛЬНОГО ВЕКТОРА ДВИЖЕНИЯ В ЗАГОЛОВКЕ ИЗОБРАЖЕНИЯ 2020
  • Калва, Хари
  • Фёрхт, Боривой
  • Аджич, Велибор
RU2808638C2
СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ ДЛЯ ВЫПОЛНЕНИЯ ВЗАИМНОГО ПРОГНОЗИРОВАНИЯ, КОГДА РЕЖИМ ПРОГНОЗИРОВАНИЯ ДЛЯ ТЕКУЩЕГО БЛОКА В КОНЕЧНОМ СЧЕТЕ НЕ МОЖЕТ ВЫБИРАТЬСЯ, И УСТРОЙСТВО ДЛЯ ЭТОГО 2020
  • Дзанг, Хиеонгмоон
  • Парк, Наери
  • Ким, Сеунгхван
RU2793902C1
СПОСОБ И АППАРАТУРА ПРЕДСКАЗАНИЯ ВИДЕОИЗОБРАЖЕНИЙ 2019
  • Чэнь, Хуаньбан
  • Ян, Хайтао
RU2787812C2
СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО И ВИДЕОДЕКОДЕР 2019
  • Чэнь, Хуаньбан
  • Ян, Хайтао
RU2783337C2
СПОСОБ И АППАРАТУРА ПРЕДСКАЗАНИЯ ВИДЕОИЗОБРАЖЕНИЙ 2019
  • Чэнь, Хуаньбан
  • Ян, Хайтао
RU2778993C2
Способ и устройство для видеокодирования 2020
  • Ли Гуйчунь
  • Ли Сян
  • Сюй Сяочжун
  • Лю Шань
RU2789146C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ ВИДЕО 2020
  • Чжао Синь
  • Сюй Сяочжун
  • Ли Сян
  • Лю Шань
RU2782435C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2021
  • Ли Гуйчунь
  • Ли Сян
  • Сюй Сяочжун
  • Лю Шань
RU2810318C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2021
  • Ли Гуйчунь
  • Ли Сян
  • Сюй Сяочжун
  • Лю Шань
RU2820768C2

Иллюстрации к изобретению RU 2 806 444 C2

Реферат патента 2023 года ЭФФЕКТИВНОЕ КОДИРОВАНИЕ ВЕКТОРОВ ГЛОБАЛЬНОГО ДВИЖЕНИЯ

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

Формула изобретения RU 2 806 444 C2

1. Декодирующее устройство, содержащее схему для:

приема потока битов данных, содержащего данные кодированного изображения для последовательности кодированных изображений, содержащей текущее изображение, причем текущее изображение содержит множество блоков кодирования n x n, содержащее первое последовательное множество кодированных блоков с общим движением и второе последовательное множество кодированных блоков с локальным движением и информацию разности вектора движения для трех контрольных точек векторов движения для 6-параметрической аффинной модели для компенсации движения;

объединения информации разности вектора движения потока битов с предсказанием векторов движения трех контрольных точек определенных от трех ранее использованных векторов движения для формирования векторов движения трех текущих контрольных точек; и

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

2. Декодирующее устройство по п. 1, дополнительно содержащее:

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

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

фильтр удаления блочности;

буфер кадров; и

процессор внутрикадрового предсказания.

3. Декодирующее устройство по п. 1, в котором первое последовательное множество кодированных блоков и второе последовательное множество блоков содержат целое изображение.

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

5. Декодирующее устройство по п. 1, в котором п имеет одно из значений 16, 32, 64 или 128.

6. Декодирующее устройство, характеризующееся тем, что выполнено с возможностью:

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

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2023 года RU2806444C2

US 2018098063 A1, 2018.04.05
WO 2017192995 A1, 2017.11.09
WO 2018061563 A1, 2018.04.05
US 2019116376 A1, 2019.04.18
US 2019110064 A1, 2019.04.11
WO 2017087751 A1, 2017.05.26
US 2019045192 A1, 2019.02.07
СПОСОБ ПРЕДСКАЗАНИЯ ИЗОБРАЖЕНИЙ И СВЯЗАННОЕ УСТРОЙСТВО 2015
  • Ян Хайтао
  • Лян Фань
  • Линь Сисинь
  • Чэнь Хуаньбан
RU2671307C1

RU 2 806 444 C2

Авторы

Калва, Хари

Фёрхт, Боривой

Аджич, Велибор

Даты

2023-11-01Публикация

2020-04-24Подача