Перекрестные ссылки на родственные заявки
Настоящее заявка претендует на преимущества от приоритета предварительной заявки на выдачу патента США No. 62/838,509, которая подана 25 апреля 2019 г. под названием «СПОСОБ ПЕРЕДАЧИ ВЕКТОРА ГЛОБАЛЬНОГО ДВИЖЕНИЯ ПОСРЕДСТВОМ СИГНАЛИЗАЦИИ В ЗАГОЛОВКЕ ИЗОБРАЖЕНИЯ» (“Signaling of Global Motion Vector in Picture Header”) и которая включена сюда посредством ссылки во всей свой полноте.
Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к области сжатия видео. В частности, настоящее изобретение направлено на передачу посредством сигнализации глобального вектора движения в заголовке изображения.
Уровень техники
Видео кодек может содержать электронную схему или программное обеспечение, которое сжимает или распаковывает цифровое видео. Кодек может преобразовывать несжатое видео в сжатый формат или наоборот. В контексте сжатия видео устройство, которое сжимает видео (и/или осуществляет некоторые функции сжатия) может обычно называться кодирующим устройством, а устройство, которое распаковывает видео (и/или осуществляет некоторые функции распаковки) может обычно называться декодирующим устройством.
Раскрытие сущности изобретения
Согласно одному из аспектов, декодирующее устройство содержит схему, конфигурированную для приема потока битов данных, выделения заголовка, определения, с использованием заголовка, глобальной модели движения, и декодирования текущего блока из текущего кадра с использованием глобальной модели движения.
Согласно другому аспекту, способ содержит прием, декодирующим устройством, потока битов данных. Способ содержит выделение заголовка из потока битов данных. Способ содержит определение, с использованием заголовка, глобальной модели движения. Способ содержит декодирование текущего блока текущего кадра с использованием глобальной модели движения.
Подробности одного или более вариантов описываемого здесь предмета настоящего изобретения приведены на прилагаемых чертежах и в описании ниже. Другие признаки и преимущества предмета настоящего изобретения, рассматриваемого здесь, станут ясны из описания и чертежей и из Формулы изобретения.
Описание чертежей
Для целей иллюстрации настоящего изобретения, чертежи показывают аспекты одного или более вариантов настоящего изобретения. Однако должно быть понятно, что варианты настоящего изобретения не исчерпываются точно теми конструкциями и приборами, какие показаны на чертежах. На которых:
Фиг. 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-параметрические аффинные модели для компенсации движения в ходе межкадрового кодирования изображения.
Например, и по-прежнему обращаясь к Фиг. 1, 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:
SliceTopLeftTileIdx[ i ] % NumTileColumns = = 0 ) )
slice_height_in_tiles_minus1[ i ] = = 0 &&
RowHeight[ SliceTopLeftTileIdx[ i ] / NumTileColumns ] > 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:
.
.
Аналогично, и по-прежнему обращаясь к Фиг. 2, набор PPS может содержать поле pps_global_motion_parameters для кадра, например, как показано в Табл. 3:
.
.
Более подробно, и продолжая обращаться к Фиг. 2, набор PPS может содержать поля, характеризующие параметры глобального движения с использованием векторов движения контрольных точек, например, как показано в Табл. 4:
В качестве еще одного неограничивающего примера, Табл. 5 ниже может представлять пример набора SPS:
pic_width_max_in_luma_samples > CtbSizeY )
pic_height_max_in_luma_samples > CtbSizeY )
sps_max_sublayers_minus1
Таблица набора SPS, приведенная выше, может быть расширена, как описано выше, с целью включения в нее индикатора присутствия глобального движения, как это показано в Табл. 6:
.
.
Дополнительные поля могут быть включены в набор SPS для отражения других индикаторов, как это описано в настоящей заявке.
В одном из вариантов, и по-прежнему обращаясь к Фиг. 2, флаг sps_affine_enabled_flag может специфицировать, может ли компенсация движения на основе аффинной модели быть использована для межкадрового прогнозирования. Если флаг sps_affine_enabled_flag равен 0, синтаксис может быть ограничен таким образом, так что никакая компенсация движения на основе аффинной модели не используется в последовательности видео с запаздывающим кодированием (code later video sequence (CLVS)), при этом в синтаксической единице кодирования последовательности CLVS могут не присутствовать флаг inter_affine_flag и флаг cu_affine_type_flag. В противном случае (флаг sps_affine_enabled_flag равен 1), в последовательности CLVS может быть использована компенсация движения на основе аффинной модели CLVS.
Продолжая обращаться к Фиг. 2, флаг sps_affine_type_flag может специфировать, может ли для внутрикадрового прогнозирования использоваться компенсация движения на основе 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 разности векторов движения, что может быть определено в виде неисчерпывающего примера, как показано в Табл. 2, приведенной ниже. Индексы 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
Продолжая обращаться к Фиг. 2, глобальное движение может рассматриваться относительно ранее кодированного кадра. Когда присутствует только один набор параметров глобального движения, это движение может рассматриваться относительно кадра, непосредственно предшествующего текущему кадру.
На Фиг. 3 представлена логическая схема, иллюстрирующая пример процедуры 300 передачи в виде сигнализации глобальной модели движения для декодирования, которая может повысить эффективность сжатия.
На этапе 305, и по-прежнему обращаясь к Фиг. 3, декодирующее устройство принимает поток битов данных. В потоке битов данных, принимаемом декодирующим устройством, может находиться текущий блок. Поток битов данных может содержать, например, данные из потока битов, поступающего на вход декодирующего устройства, когда используется сжатие данных. Этот поток битов данных может содержать информацию, необходимую для декодирования видео. Процедура приема может содержать выделение и/или синтаксический анализ блока и ассоциированной сигнализационной информации из потока битов данных. В некоторых вариантах реализации, текущий блок может представлять собой единицу дерева кодирования (coding tree unit (CTU)), единицу кодирования (coding unit (CU)) или единицу прогнозирования (prediction unit (PU)). На этапе 310, из потока битов данных может быть выделен заголовок. На этапе 315, глобальная модель движения может быть определена с использованием этого заголовка; определение глобальной модели движения может быть выполнено, как указано выше, включая по определению, как это сигнализировано в наборе PPS и/или в наборе SPS. На этапе 320, текущий блок текущего кадра может быть декодирован с использованием найденной глобальной модели движения.
На Фиг. 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, которое может быть первоначально сегментировано или разбито в соответствии со схемой обработки видео, такой как схема разбиения макроблоков в структуре дерева (например, дерево квадратов плюс двоичное дерево). Пример схемы разбиения макроблоков в структуре дерева может содержать разбиение кадра изображения на большие элементы блоков, называемые единицами дерева кодирования (coding tree units (CTU)). В некоторых вариантах, каждая единица CTU может быть далее разбита один или более раз на некоторое число субблоков, называемые единицами кодирования (coding unit (CU)). Конечный результат такого разбиения может содержать группу субблоков, которые могут называться единицами прогнозирования (prediction unit (PU)). Также могут быть использованы единицы преобразования (transform units (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 для оценки/компенсации движения, способным передавать сигнализацию о глобального движении и обрабатывать это движение.
Хотя выше были описаны подробно несколько вариантов, возможны также другие модификации или дополнения. Например, в некоторых вариантах, текущие блоки могут представлять собой какие-либо симметричные блоки (8x8, 16x16, 32x32, 64x64, 128 x 128 и другие подобные блоки), равно как какие-либо асимметричные блоки (8x4, 16x8 и другие подобные блоки).
В некоторых вариантах реализации, может быть осуществлено дерево принятия решений со структурой дерево квадратов плюс двоичное (quadtree plus binary decision tree (QTBT)). В структуре дерева QTBT, на уровне единицы дерева кодирования, параметры разбиения в структуре дерева QTBT определяют динамически для адаптации к локальным характеристикам без передачи каких-либо издержек. После этого, на уровне единиц кодирования, структура дерева принятия решений с объединенным классификатором может исключать ненужные итерации и бороться с риском ложного прогнозирования. В некоторых вариантах реализации, режим обновления блоков кадра LTR (долговременная опора) может быть доступным в качестве дополнительной опции, доступной в каждом концевом узле («листе») дерева QTBT.
В некоторых вариантах реализации, дополнительные синтаксические элементы могут быть сообщены в виде сигнализации на уровнях иерархии потока битов данных. Например, флаг может быть активизирован для всей последовательности путем включения кодированного флага активизации для всей последовательности в набор параметров последовательности (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 с одной или несколькими из совокупности разнообразных сетей 755 и одним или несколькими удаленными устройствами 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 вместе». В дополнение к этому, использование термина «на основе…», выше и в Формуле изобретения должно означать «на основе по меньшей мере частично…», так что неупомянутые выше признак или элемент также допустимы.
Описываемый здесь предмет настоящего изобретения может быть осуществлен в системах, аппаратуре, способах и/или изделиях в зависимости от желаемой конфигурации. Описанные выше варианты реализации не представляют все варианты реализации, согласованные с предметом настоящего изобретения, рассматриваемым здесь. Напротив, это просто некоторые примеры, согласованные с аспектами, относящимися к рассматриваемому предмету настоящего изобретения. Хотя выше были подробно описаны несколько вариантов, возможны также другие модификации или дополнения. В частности, могут быть созданы другие признаки и/или варианты в дополнение к тому, что описано здесь. Например, описанные выше варианты реализации могут быть направлены на различные комбинации и субкомбинации описываемых признаков и/или комбинации и субкомбинации нескольких других признаков, описываемых выше. В дополнение к этому, логические схемы, показываемые на прилагаемых чертежах и/или описываемые здесь, не обязательно требуют выполнения в показанном конкретном порядке или в последовательном порядке для достижения желаемых результатов. Другие варианты реализации могут быть в пределах объема следующей ниже Формулы изобретения.
Изобретение относится к области сжатия видео, а в частности к передаче посредством сигнализации глобального вектора движения в заголовке изображения. Техническим результатом является повышения эффективности сжатия видео. Результат достигается тем, что декодирующее устройство содержит схему для приема потока битов данных, выделения заголовка, определения, с использованием этого заголовка, глобальной модели движения и декодирования текущего блока из текущего кадра с использованием этой глобальной модели движения. 9 з.п. ф-лы, 7 ил., 6 табл.
1. Декодирующее устройство, содержащее схему, выполненную с возможностью:
приема потока битов данных, включающего в себя текущий кодированный блок текущего изображения;
определения заголовка для текущего кодированного блока в битовом потоке;
определения, с использованием указанного заголовка, глобальной модели движения для текущего блока, причем глобальная модель движения является одной из модели поступательного движения, 4-параметрической аффинной модели движения или 6-параметрической аффинной модели движения, а параметры для определенной глобальной модели движения не сигнализируются явным образом в битовом потоке; и
декодирования текущего блока из текущего изображения с использованием определенной глобальной модели движения.
2. Декодирующее устройство по п. 1, в котором указанный заголовок содержит набор параметров последовательности.
3. Декодирующее устройство по п. 1, в котором указанный заголовок содержит набор параметров изображения.
4. Декодирующее устройство по п. 1, в котором глобальная модель движения содержит модель поступательного движения.
5. Декодирующее устройство по п. 1, в котором глобальная модель движения представляет собой 4-параметрическую аффинную модель движения.
6. Декодирующее устройство по п. 1, в котором глобальная модель движения представляет собой 6-параметрическую аффинную модель движения.
7. Декодирующее устройство по п. 1 дополнительно содержащее:
процессор энтропийного декодирующего устройства, выполненный с возможностью приема потока битов данных и декодирования указанного потока битов данных в квантованные коэффициенты;
процессор обратного квантования и обратного преобразования, выполненный с возможностью обработки квантованных коэффициентов с использованием обратного дискретного косинусного преобразования;
фильтр удаления блочности;
буфер кадров; и
процессор внутрикадрового прогнозирования.
8. Декодирующее устройство по п. 1, в котором текущий блок составляет часть дерева принятия решения со структурой дерева квадратов плюс двоичное дерево.
9. Декодирующее устройство по п. 1, в котором текущий блок представляет собой единицу дерева кодирования.
10. Декодирующее устройство по п. 1, в котором текущий блок представляет собой единицу кодирования.
WO 2017087751 A1, 2017.05.26 | |||
US 2019045192 A1, 2019.02.07 | |||
US 2017332095 A1, 2017.11.16 | |||
JP 2010011075 A, 2010.01.14 | |||
СПОСОБ ПРЕДСКАЗАНИЯ ИЗОБРАЖЕНИЙ И СВЯЗАННОЕ УСТРОЙСТВО | 2015 |
|
RU2671307C1 |
Авторы
Даты
2023-11-30—Публикация
2020-04-24—Подача