RU2803479C2 - Адаптивная точность вектора движения для кодирования видеосигналов на основе аффинной модели движения - Google Patents

Адаптивная точность вектора движения для кодирования видеосигналов на основе аффинной модели движения Download PDF

Info

Publication number
RU2803479C2
RU2803479C2 RU2021108183A RU2021108183A RU2803479C2 RU 2803479 C2 RU2803479 C2 RU 2803479C2 RU 2021108183 A RU2021108183 A RU 2021108183A RU 2021108183 A RU2021108183 A RU 2021108183A RU 2803479 C2 RU2803479 C2 RU 2803479C2
Authority
RU
Russia
Prior art keywords
motion vector
pel
affine
motion
block
Prior art date
Application number
RU2021108183A
Other languages
English (en)
Other versions
RU2021108183A (ru
Inventor
Юйвэнь ХЭ
Сяоюй СЮ
Янь Е
Цзяньцун ЛО
Original Assignee
Вид Скейл, Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Вид Скейл, Инк. filed Critical Вид Скейл, Инк.
Publication of RU2021108183A publication Critical patent/RU2021108183A/ru
Application granted granted Critical
Publication of RU2803479C2 publication Critical patent/RU2803479C2/ru

Links

Images

Abstract

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Получают информацию, идентифицирующую первый и второй предикторы вектора движения для блока с аффинным кодированием в видеосигнале. Получают по меньшей мере первую разность векторов движения и вторую разность векторов движения. Получают информацию, идентифицирующую точность первой и второй разностей векторов движения из первого набора доступных значений точности, причем первый набор доступных значений точности отличается от второго набора доступных значений точности, используемого для неаффинного внешнего кодирования. Генерируют первый вектор движения контрольной точки на основе первого предиктора вектора движения и первой разности векторов движения и второй вектор движения контрольной точки на основе второго предиктора вектора движения и второй разности векторов движения. Генерируют прогнозирование блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения контрольной точки и вторым вектором движения контрольной точки. 4 н. и 21 з.п. ф-лы, 25 ил.

Description

Перекрестные ссылки на смежные заявки
Настоящая заявка представляет собой обычную заявку, претендующую на привилегии в соответствии с § 119(е) раздела 35 Свода законов США (U.S.C.) в связи с подачей предварительной заявки на патент США № 62/724,500 (поданной 29 августа 2018 г.), предварительной заявки на патент США № 62/773,069 (поданной 29 ноября 2018 г.) и предварительной заявки на патент США № 62/786,768 (поданной 31 декабря 2018 г.), все из которых озаглавлены «Adaptive Motion Vector Precision for Affine Motion Model Based Video Coding», все из которых полностью включены в настоящий документ путем ссылки.
Предпосылки создания изобретения
Системы кодирования видеосигналов широко применяют для сжатия цифровых видеосигналов со снижением потребности в хранении и/или уменьшении ширины полосы пропускания таких сигналов. Среди различных типов систем кодирования видеосигналов, таких как системы на основе блоков, на основе вейвлетов и на основе объектов, в настоящее время чаще всего используют и развертывают гибридные системы кодирования видеосигналов на основе блоков. Примеры систем видеокодирования на основе блоков включают международные стандарты видеокодирования, такие как MPEG1/2/4 часть 2, H.264/MPEG-4 часть 10 AVC, VC-1 и последний стандарт видеокодирования, называемый High Efficiency Video Coding (высокоэффективное видеокодирование) (HEVC), который был разработан JCT-VC (Joint Collaborative Team on Video Coding (объединенной совместной группой по видеокодированию)) ITU-T/SG16/Q.6/VCEG и ISO/IEC/MPEG.
Первая версия стандарта HEVC была завершена в октябре 2013 г. Ее реализация позволила сократить скорость передачи информации приблизительно на 50% или обеспечить эквивалентное качество восприятия по сравнению со стандартом кодирования видеосигналов предыдущего поколения H.264/MPEG AVC. Хотя стандарт HEVC обеспечивает значительные улучшения в отношении кодирования по сравнению с его предшественником, существуют доказательства того, что при использовании дополнительных инструментов кодирования можно добиться более высокой эффективности кодирования по сравнению со стандартом HEVC. На основании вышеизложенного рабочие группы VCEG и MPEG приступили к разработке новых технологий кодирования для будущей стандартизации кодирования видеосигналов. В октябре 2015 г. ITU-T VECG и ISO/IEC MPEG сформировали Объединенную группу экспертов по видеосигналам (JVET) (JVET), которая приступила к масштабному исследованию усовершенствованных технологий, способных обеспечить значительное повышение эффективности кодирования по сравнению со стандартом HEVC. В то же время для будущей работы по исследованию кодирования видеосигналов была создана кодовая база программного обеспечения, получившая название Объединенная исследовательская модель (JEM). Эталонное программное обеспечение JEM было основано на тестовой модели HEVC (HM), разработанной JCT-VC для HEVC. В программное обеспечение JEM можно интегрировать любые дополнительные предложенные средства кодирования и протестировать их с использованием общих условий тестирования JVET (CTC).
В октябре 2017 г. ITU-T и ISO/IEC опубликовали совместное заявление о представлении предложений (CfP) по сжатию видеосигналов, позволяющих улучшить характеристики по сравнению с возможностями стандарта HEVC. В апреле 2018 г. на 10-м заседании JVET было рассмотрено и оценено 22 ответа на предложение CfP в категории стандартного динамического диапазона, продемонстрировавших повышение эффективности сжатия по сравнению с HEVC приблизительно на 40%. На основании таких результатов оценки Объединенная группа экспертов по видеосигналам (JVET) запустила новый проект для разработки стандарта кодирования видеосигналов следующего поколения, который получил название Versatile Video Coding (VVC — универсальное кодирование видеосигналов). В том же месяце для демонстрации эталонной реализации стандарта VVC была создана эталонная кодовая база программного обеспечения, получившая название «тестовая модель VVC (VTM)». В первоначальной версии VTM-1.0 большинство модулей кодирования, включая внутреннее прогнозирование, внешнее прогнозирование, преобразование/обратное преобразование и квантование/деквантование, а также внутрипетлевые фильтры, соответствуют существующей структуре HEVC, за исключением того, что в VTM используется древовидная структура блочного разбиения множественного типа. При этом для упрощения оценки новых инструментов кодирования также была создана другая эталонная база программного обеспечения, получившая название «эталонный набор критериев (BMS). В кодовой базе BMS в качестве эталона при оценке аналогичных технологий кодирования в процессе стандартизации VVC включен наследованных из JEM перечень инструментов кодирования, который обеспечивает более высокую эффективность кодирования и умеренную сложность реализации. В частности, в BMS-1.0 встроены 9 инструментов кодирования JEM, включая 65 угловых направлений внутреннего прогнозирования, кодирование модифицированных коэффициентов, расширенное множественное преобразование (AMT) + 4 × 4 неразделимое вторичное преобразование (NSST), аффинную модель движения, обобщенный адаптивный контурный фильтр (GALF), усовершенствованное временное прогнозирование вектора движения (ATMVP), адаптивную точность вектора движения, уточнение вектора движения на стороне декодера (DMVR) и режим линейной цветовой модели (LM).
Изложение сущности изобретения
Варианты осуществления, описанные в настоящем документе, включают способы, используемые при кодировании и декодировании видеосигналов (в совокупности называются «кодированием»). В некоторых вариантах осуществления предлагается способ декодирования видеосигналов из битового потока, причем способ включает для по меньшей мере одного текущего блока в видеосигнале: считывание из битового потока соответствующей информации, идентифицирующей по меньшей мере первый предиктор вектора движения и второй предиктор вектора движения; считывание из битового потока информации, идентифицирующей одно из множества значений точности в предварительно заданном наборе значений точности; считывание из битового потока по меньшей мере первой разности векторов движения и второй разности векторов движения, причем первая и вторая разности векторов движения имеют идентифицированную точность; генерирование по меньшей мере (i) первого вектора движения контрольной точки на основе первого предиктора вектора движения и первой разности векторов движения и (ii) второго вектора движения контрольной точки на основе второго предиктора вектора движения и второй разности векторов движения; и генерирование прогнозирования текущего блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения контрольной точки и вторым вектором движения контрольной точки.
Множество значений точности в предварительно заданном наборе значений точности может включать значения точности (пэл) 1/4 пэл, 1/16 пэл и 1 пэл. Заданный набор значений точности отличается от заданного набора значений точности, используемого для неаффинного внешнего кодирования в одном и том же видеосигнале.
Аффинная модель движения может представлять собой модель движения с четырьмя параметрами или модель движения с шестью параметрами. Если аффинная модель движения представляет собой модель движения с шестью параметрами, способ может дополнительно включать: считывание из битового потока информации, идентифицирующей третий предиктор вектора движения; считывание из битового потока третьей разности векторов движения, имеющей идентифицированную точность; и генерирование третьего вектора движения контрольной точки на основе третьего предиктора вектора движения и третьей разности векторов движения; при этом аффинная модель движения характеризуется первым вектором движения контрольной точки, вторым вектором движения контрольной точки и третьим вектором движения контрольной точки.
Информация, идентифицирующая одно из множества значений точности, может считываться из битового потока на поблочной основе, что позволяет использовать различные значения точности для различных блоков изображения.
В некоторых вариантах осуществления предикторы вектора движения округляются до идентифицированной точности. Каждый из векторов движения контрольной точки может генерироваться посредством прибавления соответствующей разности векторов движения к соответствующему предиктору вектора движения.
В некоторых вариантах осуществления прогнозирование текущего блока генерируется посредством: определения соответствующего вектора движения подблоков для каждого из множества подблоков текущего блока с использованием аффинной модели движения; и генерирование внешнего прогнозирования каждого из подблоков с использованием соответствующего вектора движения подблоков.
В некоторых вариантах осуществления способ дополнительно включает: считывание из битового потока остаточного значения для текущего блока; и восстановление текущего блока путем прибавления остаточного значения к прогнозированию текущего блока.
Кроме того, описываются системы и способы адаптивного выбора точности аффинных векторов движения и выполнения оценки движения для аффинных моделей движения.
В дополнительных вариантах осуществления предложены системы кодера и декодера для осуществления способов, описанных в настоящем документе. Система кодера или декодера может содержать процессор и энергонезависимый машиночитаемый носитель, на котором хранятся инструкции для выполнения способов, описанных в настоящем документе. Дополнительные варианты осуществления включают энергонезависимый машиночитаемый носитель данных, на котором хранится видеосигнал, закодированный с помощью любого из способов, описанных в настоящем документе.
Краткое описание графических материалов
На фиг. 1A представлена схема системы, иллюстрирующая пример системы связи, в которой могут быть реализованы один или более описанных вариантов осуществления.
На фиг. 1B представлена схема системы, иллюстрирующая пример модуля беспроводной передачи/приема (WTRU), который может быть использован в системе связи, проиллюстрированной на фиг. 1A, в соответствии с одним вариантом осуществления.
На фиг. 2A показана функциональная блок-схема видеокодера на основе блоков, такого как кодер, используемый для VVC.
На фиг. 2B представлена функциональная блок-схема видеодекодера на основе блоков, такого как декодер, используемый для VVC.
На фиг. 3A–3E представлены разделения блоков в древовидной структуре множественного типа: тетрарное разделение (фиг. 3A); вертикальное бинарное разделение (фиг. 3B); горизонтальное бинарное разделение (фиг. 3C); вертикальное тернарное разделение (фиг. 3D); горизонтальное тернарное разделение (фиг. 3E).
На фиг. 4A–4B проиллюстрирована аффинная модель движения с четырьмя параметрами. На фиг. 4A проиллюстрирована аффинная модель. На фиг. 4B проиллюстрировано выведение движения на уровне подблоков для аффинных блоков.
На фиг. 5 представлены кандидаты на аффинное объединение. Порядок проверки наличия кандидатов — N0, N1, N2, N3, N4.
На фиг. 6 проиллюстрировано выведение вектора движения в контрольных точках для аффинных моделей движения.
На фиг. 7 проиллюстрирована структура предиктора вектора движения на основе векторов движения в блоках {A,B,C}, {D,E} и {F,G}.
На фиг. 8 проиллюстрирован пример временного масштабирования вектора движения (MV) для генерации предиктора аффинного MV.
На фиг. 9 проиллюстрированы соседние блоки, используемые для выведения контекста для блока BC.
На фиг. 10 представлен способ принятия решения о кодировании CU без разделения.
На фиг. 11 проиллюстрированы модель движения и способ выбора точности для значений точности, отличных от точности по умолчанию (1/4 пэл для трансляционной модели движения, (1/4 пэл, 1/4 пэл) для аффинной модели движения).
На фиг. 12 проиллюстрирован способ аффинной оценки движения для значений точности (p0 пэл, p1 пэл).
На фиг. 13 проиллюстрировано уточнение MV0 с использованием ближайших 8 положений. Стадия 1: выбор наилучшего положения в {P1, P2, P3, P4}. Стадия 2: выбор наилучшего значения из двух соседей, если MV0 был обновлен на стадии 1.
На фиг. 14 проиллюстрирован аффинный режим с шестью параметрами: V0, V1 и V2 — контрольные точки; (MVx, MVy) — вектор движения подблока с центром с координатами (x, y).
На фиг. 15 представлена схема, иллюстрирующая пример структуры кодированного битового потока.
На фиг. 16 представлена схема, иллюстрирующая пример системы связи.
На фиг. 17 проиллюстрировано выведение вектора движения для подблока для блока кодирования 8×4.
На фиг. 18 представлен способ, выполняемый декодером в некоторых вариантах осуществления.
Примеры сетей в соответствии с вариантами осуществления
На фиг. 1A представлена схема, иллюстрирующая пример системы 100 связи, в которой могут быть реализованы один или более описанных вариантов осуществления. Система 100 связи может представлять собой систему множественного доступа, от которой множество пользователей беспроводной связи получают содержимое, такое как голосовая информация, данные, видео, обмен сообщениями, широковещание и т. д. Система 100 связи может быть выполнена с возможностью предоставления множеству пользователей беспроводной связи доступа к такому содержимому посредством совместного использования системных ресурсов, включая ширину полосы пропускания беспроводного соединения. Например, в системах 100 связи может быть использован один или более способов доступа к каналу, таких как множественный доступ с кодовым разделением каналов (CDMA), множественный доступ с временным разделением каналов (TDMA), множественный доступ с частотным разделением каналов (FDMA), множественный доступ с ортогональным частотным разделением каналов (OFDMA), FDMA с одной несущей (SC-FDMA), расширенное OFDM с безызбыточным расширенным дискретным преобразованием Фурье (DFT) с синхропакетом (ZT UW DTS-s OFDM), OFDM с синхропакетом (UW-OFDM), OFDM с фильтрацией ресурсного блока, блок фильтров с множеством несущих (FBMC) и т. п.
Как показано на фиг. 1A, система 100 связи может содержать модули 102a, 102b, 102c, 102d беспроводной передачи/приема (WTRU), RAN 104, CN 106, коммутируемую телефонную сеть 108 общего пользования (PSTN), сеть Интернет 110 и другие сети 112, хотя следует понимать, что в описанных вариантах осуществления предполагается возможность применения любого количества модулей WTRU, базовых станций, сетей и/или элементов сети. Каждый из WTRU 102a, 102b, 102c, 102d может представлять собой устройство любого типа, выполненное с возможностью функционирования и/или взаимодействия в среде беспроводной связи. Например, WTRU 102a, 102b, 102c, 102d, любой из которых может называться станцией и/или STA, могут быть выполнены с возможностью передачи и/или приема радиосигналов и могут включать оборудование пользователя (UE), мобильную станцию, стационарный или мобильный абонентский модуль, абонентский модуль, пейджер, сотовый телефон, карманный персональный компьютер (PDA), смартфон, ноутбук, нетбук, персональный компьютер, беспроводной датчик, точку доступа или устройство Mi-Fi, устройство Интернета физических объектов (IoT), часы или другие носимые устройства, устанавливаемый на голове дисплей (HMD), транспортное средство, беспилотный радиоуправляемый летательный аппарат, медицинское устройство и приложения (например, применяемые в дистанционной хирургии), промышленное устройство и приложения (например, робот и/или другие беспроводные устройства, работающие в условиях промышленной и/или автоматизированной технологической цепочки), устройство, относящееся к бытовой электронике, устройство, работающее в коммерческой и/или промышленной беспроводной сети, и т. п. Любой из WTRU 102a, 102b, 102c и 102d можно взаимозаменяемо называть UE.
Системы 100 связи могут также содержать базовую станцию 114a и/или базовую станцию 114b. Каждая из базовых станций 114a, 114b может представлять собой устройство любого типа, выполненное с возможностью беспроводного взаимодействия с по меньшей мере одним из WTRU 102a, 102b, 102c, 102d для облегчения доступа к одной или более сетям связи, таким как CN 106, сеть Интернет 110 и/или другие сети 112. В качестве примера базовые станции 114a, 114b могут представлять собой базовые приемопередающие станции (BTS), станции Node-B, станции eNode B, станции Home Node B, станции Home eNode B, базовую станцию следующего поколения (gNB), NodeB на основании NR, контроллер пункта связи, точку доступа (AP), беспроводной маршрутизатор и т. п. Хотя каждая из базовых станций 114a, 114b показана как отдельный элемент, следует понимать, что базовые станции 114a, 114b могут включать любое количество взаимно соединенных базовых станций и/или элементов сети.
Базовая станция 114a может быть частью RAN 104, которая может также включать другие базовые станции и/или элементы сети (не показаны), такие как контроллер базовой станции (BSC), контроллер радиосети (RNC), ретрансляционные узлы и т. п. Базовая станция 114a и/или базовая станция 114b могут быть выполнены с возможностью передачи и/или приема радиосигналов на одной или более частотах несущих, которые могут называться сотой (не показана). Эти частоты могут относиться к лицензированному спектру, нелицензированному спектру или к сочетанию лицензированного и нелицензированного спектров. Сота может обеспечивать покрытие для беспроводного сервиса в конкретной географической зоне, которая может быть относительно фиксированной или которая может изменяться со временем. Сота может быть дополнительно разделена на сектора соты. Например, сота, связанная с базовой станцией 114a, может быть разделена на три сектора. Таким образом, в одном варианте осуществления базовая станция 114a может содержать три приемопередатчика, т. е. по одному для каждого сектора соты. В варианте осуществления в базовой станции 114a может быть использована технология «множественный вход — множественный выход» (MIMO), и может быть задействовано множество приемопередатчиков для каждого сектора соты. Например, для передачи и/или приема сигналов в требуемых пространственных направлениях можно использовать формирование лучей.
Базовые станции 114a, 114b могут обмениваться данными с одним или более из WTRU 102a, 102b, 102c, 102d посредством радиоинтерфейса 116, который может представлять собой любую подходящую систему беспроводной связи (например, для передачи сигналов в радиочастотном (РЧ), микроволновом спектре, спектре сантиметровых волн, спектре микрометровых волн, инфракрасном (ИК), ультрафиолетовом (УФ) спектре, спектре видимого света и т. д.). Радиоинтерфейс 116 может быть установлен с использованием любой подходящей технологии радиодоступа (RAT).
Более конкретно, как указано выше, система 100 связи может представлять собой систему множественного доступа, и в ней можно использовать одну или более схем доступа к каналу, например, CDMA, TDMA, FDMA, OFDMA, SC-FDMA и т. п. Например, в базовой станции 114a в RAN 104 и WTRU 102a, 102b, 102c может быть реализована технология радиосвязи, такая как универсальный наземный доступ (UTRA) для универсальной системы мобильной связи (UMTS), в которой может быть установлен радиоинтерфейс 116 с использованием широкополосного CDMA (WCDMA). WCDMA может включать в себя протоколы связи, такие как высокоскоростной пакетный доступ (HSPA) и/или усовершенствованный HSPA (HSPA+). Протокол HSPA может включать в себя высокоскоростной пакетный доступ по нисходящей (DL) линии связи (HSDPA) и/или высокоскоростной пакетный доступ по восходящей (UL) линии связи (HSUPA).
В варианте осуществления в базовой станции 114a и WTRU 102a, 102b, 102c может быть реализована такая технология радиосвязи, как усовершенствованная сеть наземного радиодоступа UMTS (E-UTRA), которая может устанавливать радиоинтерфейс 116 с использованием стандарта долгосрочного развития сетей связи (LTE), и/или LTE-Advanced (LTE-A), и/или LTE-Advanced Pro (LTE-A Pro).
В варианте осуществления в базовой станции 114a и WTRU 102a, 102b, 102c может быть реализована такая технология радиосвязи, как новая технология радиодоступа (NR Radio Access), которая может устанавливать радиоинтерфейс 116 с использованием технологии New Radio (NR).
В варианте осуществления в базовой станции 114a и WTRU 102a, 102b, 102c может быть реализовано множество технологий радиодоступа. Например, в совокупности в базовой станции 114a и WTRU 102a, 102b, 102c может быть реализован радиодоступ LTE и радиодоступ NR, например, с использованием принципов двойного подключения (DC). Таким образом, радиоинтерфейс, используемый WTRU 102a, 102b, 102c, может характеризоваться применением множества типов технологий радиодоступа и/или передачами, отправляемыми на базовые станции/с базовых станций, относящихся к множеству типов (например, eNB и gNB).
В других вариантах осуществления в базовой станции 114a и WTRU 102a, 102b, 102c могут быть реализованы технологии радиосвязи, такие как IEEE 802.11 (т. е. WiFi), IEEE 802.16 (т. е. глобальная совместимость для микроволнового доступа (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, временный стандарт 2000 (IS-2000), временный стандарт 95 (IS-95), временный стандарт 856 (IS-856), глобальная система мобильной связи (GSM), развитие стандарта GSM с увеличенной скоростью передачи данных (EDGE), GSM EDGE (GERAN) и т.п.
Базовая станция 114b, показанная на фиг. 1A, может представлять собой, например, беспроводной маршрутизатор, Home Node B, Home eNode B или точку доступа, и в ней можно использовать любую подходящую RAT для облегчения беспроводной связи в локализованной зоне, такой как коммерческое предприятие, жилое помещение, транспортное средство, учебное заведение, промышленный объект, воздушный коридор (например, для использования беспилотными радиоуправляемыми летательными аппаратами), проезжая часть и т.п. В одном варианте осуществления в базовой станции 114b и WTRU 102c, 102d может быть реализована технология радиосвязи, такая как IEEE 802.11, для создания беспроводной локальной сети (WLAN). В варианте осуществления в базовой станции 114b и WTRU 102c, 102d может быть реализована технология радиосвязи, такая как IEEE 802.15, для создания беспроводной персональной сети (WPAN). В еще одном варианте осуществления в базовой станции 114b и WTRU 102c, 102d можно использовать RAT на основе сот (например, WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR и т.д.) для создания пикосоты или фемтосоты. Как показано на фиг. 1A, базовая станция 114b может иметь прямое соединение с сетью Интернет 110. Таким образом, для базовой станции 114b может не требоваться доступ к сети Интернет 110 посредством CN 106.
RAN 104 может обмениваться данными с CN 106, которая может представлять собой сеть любого типа, выполненную с возможностью предоставления услуг передачи голосовой информации, данных, приложений и/или голосовой связи по протоколу (VoIP) Интернета одному или более из WTRU 102a, 102b, 102c, 102d. К данным могут предъявляться различные требования по качеству обслуживания (QoS), например, различные требования по производительности, требования к задержке, требования к отказоустойчивости, требования к надежности, требования к скорости передачи данных, требования к мобильности и т.п. В сети CN 106 может быть обеспечено управление вызовами, услуги биллинга, услуги мобильной связи на основе местоположения, предварительно оплаченные вызовы, возможность связи с сетью Интернет, распределение видеосигналов и т. п., и/или выполнены функции высокоуровневой защиты, такие как аутентификация пользователей. Хотя на фиг. 1A это не показано, следует понимать, что RAN 104 и/или CN 106 могут прямо или косвенно обмениваться данными с другими RAN, которые используют такую же RAT, что и RAN 104, или другую RAT. Например, в дополнение к связи с RAN 104, в которой может быть использована технология радиосвязи NR, CN 106 может также осуществлять связь с другой RAN (не показана), использующей технологию радиосвязи GSM, UMTS, CDMA 2000, WiMAX, E-UTRA или WiFi.
CN 106 может также выступать в качестве шлюза для WTRU 102a, 102b, 102c, 102d для обеспечения доступа к сети PSTN 108, сети Интернет 110 и/или другим сетям 112. PSTN 108 может включать телефонные сети с коммутацией каналов, которые предоставляют традиционные услуги телефонной связи (POTS). Интернет 110 может включать глобальную систему взаимно соединенных компьютерных сетей и устройств, которые используют распространенные протоколы связи, такие как протокол управления передачей (TCP), протокол пользовательских дейтаграмм (UDP) и/или протокол Интернета (IP) в наборе протоколов Интернета TCP/IP. Сети 112 могут включать проводные и/или беспроводные сети связи, которые принадлежат другим поставщикам услуг и/или предоставлены ими для использования. Например, сети 112 могут включать другую CN, соединенную с одной или более RAN, в которых можно использовать такую же RAT, как RAN 104, или другую RAT.
Некоторые или все из WTRU 102a, 102b, 102c, 102d в системе 100 связи могут включать многорежимные возможности (например, WTRU 102a, 102b, 102c, 102d могут включать множество приемопередатчиков для связи с разными беспроводными сетями по разным беспроводным линиям связи). Например, WTRU 102c, показанный на фиг. 1A, может быть выполнен с возможностью обмена данными с базовой станцией 114a, которая может использовать технологию радиосвязи на основе сот, а также с базовой станцией 114b, которая может использовать технологию радиосвязи IEEE 802.
На фиг. 1B представлена схема системы, иллюстрирующая пример WTRU 102. Как показано на фиг. 1B, WTRU 102 может содержать, помимо прочего, процессор 118, приемопередатчик 120, передающий/приемный элемент 122, динамик/микрофон 124, клавиатуру 126, дисплей/сенсорную панель 128, несъемное запоминающее устройство 130, съемное запоминающее устройство 132, источник 134 питания, набор 136 микросхем глобальной системы определения местоположения (GPS) и/или другие периферийные устройства 138. Следует понимать, что WTRU 102 может содержать любую подкомбинацию вышеперечисленных элементов и при этом соответствовать варианту осуществления.
Процессор 118 может представлять собой процессор общего назначения, процессор специального назначения, традиционный процессор, цифровой сигнальный процессор (DSP), множество микропроцессоров, один или более микропроцессоров, связанных с ядром DSP, контроллер, микроконтроллер, специализированные интегральные схемы (ASIC), схемы программируемых пользователем вентильных матриц (FPGA), интегральную схему (IC) любого другого типа, конечный автомат и т.п. Процессор 118 может выполнять кодирование сигналов, обработку данных, управление мощностью, обработку ввода/вывода и/или иметь любые другие функциональные возможности, с помощью которых WTRU 102 работает в среде беспроводной связи. Процессор 118 может быть соединен с приемопередатчиком 120, который может быть соединен с передающим/приемным элементом 122. Хотя на фиг. 1B процессор 118 и приемопередатчик 120 показаны в виде отдельных компонентов, следует понимать, что процессор 118 и приемопередатчик 120 могут быть выполнены за единое целое и встроены в электронный блок или микросхему.
50 Передающий/приемный элемент 122 может быть выполнен с возможностью передачи сигналов на базовую станцию (например, базовую станцию 114a) по радиоинтерфейсу 116 или приема от нее сигналов. Например, в одном варианте осуществления передающий/приемный элемент 122 может представлять собой антенну, выполненную с возможностью передачи и/или приема РЧ-сигналов. В варианте осуществления передающий/приемный элемент 122 может представлять собой излучатель/детектор, выполненный с возможностью передачи и/или приема, например, сигналов в ИК-, УФ- или спектре видимого света. В еще одном варианте осуществления передающий/приемный элемент 122 может быть выполнен с возможностью передачи и/или приема сигналов как в РЧ-спектре, так и в спектре видимого света. Следует понимать, что передающий/приемный элемент 122 может быть выполнен с возможностью передачи и/или приема любой комбинации беспроводных сигналов.
Хотя на фиг. 1B передающий/приемный элемент 122 показан в виде единственного элемента, WTRU 102 может содержать любое количество передающих/приемных элементов 122. Более конкретно, в WTRU 102 может быть использована технология MIMO. Таким образом, в одном варианте осуществления WTRU 102 может содержать два или более передающих/приемных элементов 122 (например, множество антенн) для передачи и приема беспроводных сигналов по радиоинтерфейсу 116.
Приемопередатчик 120 может быть выполнен с возможностью модуляции сигналов, которые подлежат передаче посредством передающего/приемного элемента 122, а также демодуляции сигналов, принятых посредством передающего/приемного элемента 122. Как указано выше, WTRU 102 может иметь многорежимные возможности. Таким образом, приемопередатчик 120 может включать множество приемопередатчиков, с помощью которых WTRU 102 получает возможность взаимодействия посредством множества RAT, таких как, например, NR и IEEE 802.11.
Процессор 118 WTRU 102 может быть соединен с динамиком/микрофоном 124, клавиатурой 126 и/или дисплеем/сенсорной панелью 128 (например, жидкокристаллическим дисплеем (LCD) или дисплеем на органических светодиодах (OLED)) и может принимать от них данные, вводимые пользователем. Процессор 118 может также выводить пользовательские данные на динамик/микрофон 124, клавиатуру 126 и/или дисплей/сенсорную панель 128. Кроме того, процессор 118 может иметь доступ к информации с подходящего запоминающего устройства любого типа, такого как несъемное запоминающее устройство 130 и/или съемное запоминающее устройство 132, и хранить на нем данные. Несъемное запоминающее устройство 130 может включать оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), жесткий диск или запоминающее устройство любого другого типа. Съемное запоминающее устройство 132 может включать карту модуля идентификации абонента (SIM), карту памяти, безопасную цифровую карту памяти (SD) и т.п. В других вариантах осуществления процессор 118 может осуществлять доступ к информации с запоминающего устройства, которое физически размещено не в WTRU 102, а, например, на сервере или домашнем компьютере (не показан), и хранить на нем данные.
Процессор 118 может принимать питание от источника 134 питания и может быть выполнен с возможностью управления питанием и/или распределения питания на другие компоненты в WTRU 102. Источник 134 питания может представлять собой любое подходящее устройство для подачи питания на WTRU 102. Например, источник 134 питания может включать одну или более сухих батарей (например, никель-кадмиевых (NiCd), никель-цинковых (NiZn), никель-металл-гидридных (NiMH), литий-ионных (Li-ion) и т.д.), солнечных элементов, топливных элементов и т.п.
Процессор 118 также может быть соединен с набором 136 микросхем GPS, который может быть выполнен с возможностью предоставления информации о местоположении (например, долготы и широты) относительно текущего местоположения WTRU 102. Дополнительно или вместо информации от набора 136 микросхем GPS WTRU 102 может принимать информацию о местоположении по радиоинтерфейсу 116 от базовой станции (например, от базовых станций 114a, 114b) и/или определять местоположение на основе синхронизации сигналов, принимаемых от двух или более соседних базовых станций. Следует понимать, что WTRU 102 может получать информацию о местоположении посредством любого подходящего способа определения местоположения и при этом соответствовать варианту осуществления.
Процессор 118 может быть дополнительно соединен с другими периферийными устройствами 138, которые могут включать один или более программных и/или аппаратных модулей, в которых предусмотрены дополнительные признаки, функциональные возможности и/или возможности по установлению проводной или беспроводной связи. Например, периферийные устройства 138 могут содержать акселерометр, электронный компас, спутниковый приемопередатчик, цифровую камеру (для фото- и видеосъемки), порт универсальной последовательной шины (USB), вибрационное устройство, телевизионный приемопередатчик, беспроводную гарнитуру, модуль Bluetooth®, радиомодуль с частотной модуляцией (FM), цифровой музыкальный проигрыватель, мультимедийный проигрыватель, модуль устройства для воспроизведения видеоигр, Интернет-браузер, устройство виртуальной реальности и/или дополненной реальности (VR/AR), трекер активности и т.п. Периферийные устройства 138 могут содержать один или более датчиков, причем датчики могут представлять собой один или более из гироскопа, акселерометра, датчика Холла, магнитометра, датчика ориентации, датчика приближения, датчика температуры, датчика времени; датчика географического положения; высотомера, датчика освещенности, датчика касания, магнитометра, барометра, датчика жеста, биометрического датчика и/или датчика влажности.
WTRU 102 может содержать полнодуплексное радиоустройство, для которого передача и прием некоторых или всех сигналов, например, связанных с конкретными подкадрами как для UL (например, для передачи), так и для нисходящей линии связи (например, для приема), могут быть осуществлены совместно и/или одновременно. Полнодуплексное радиоустройство может содержать блок управления помехами для снижения уровня и/или по существу устранения собственных помех с помощью либо аппаратного обеспечения (например, дросселя), либо обработки сигнала с помощью процессора (например, отдельного процессора (не показан) или процессора 118). В варианте осуществления WRTU 102 может содержать полудуплексное радиоустройство для передачи и приема некоторых или всех сигналов (например, связанных с конкретными подкадрами либо для UL (например, для передачи), либо для нисходящей линии связи (например, для приема)).
Хотя WTRU описан на фиг. 1A–1B как беспроводной терминал, предполагается, что в определенных типовых вариантах осуществления с таким терминалом можно использовать (например, временно или постоянно) проводные интерфейсы связи с сетью связи.
В типовых вариантах осуществления другая сеть 112 может представлять собой WLAN.
С учетом фиг. 1A–1B и соответствующего описания одна или более или все из функций, описанных в настоящем документе, могут быть выполнены одним или более устройствами эмуляции (не показаны). Устройства эмуляции могут представлять собой одно или более устройств, выполненных с возможностью эмуляции одной или более или всех функций, описанных в настоящем документе. Например, устройства эмуляции можно применять для испытания других устройств и/или для моделирования функций сети и/или WTRU.
Устройства эмуляции могут быть выполнены с возможностью выполнения одного или более испытаний других устройств в лабораторной среде и/или в сетевой среде оператора. Например, одно или более устройств эмуляции могут выполнять одну или более функций или все функции, при этом они полностью или частично реализованы и/или развернуты в качестве части проводной и/или беспроводной сети связи, для испытания других устройств в сети связи. Одно или более устройств эмуляции могут выполнять одну или более функций или все функции, при этом они временно реализованы/развернуты в качестве части проводной и/или беспроводной сети связи. Устройство эмуляции может быть непосредственно соединено с другим устройством для испытания и/или выполнения испытания с использованием беспроводной связи посредством канала беспроводной связи.
Одно или более устройств эмуляции могут выполнять одну или более функций, включая все функции, и при этом не быть реализованными/развернутыми в качестве части проводной и/или беспроводной сети связи. Например, устройства эмуляции можно использовать в сценарии испытания в испытательной лаборатории и/или в неразвернутой (например, испытательной) проводной и/или беспроводной сети связи для проведения испытания одного или более компонентов. Одно или более устройств эмуляции могут представлять собой испытательное оборудование. Для передачи и/или приема данных в устройствах эмуляции можно использовать прямое РЧ-соединение и/или беспроводные связи посредством РЧ-схемы (которая может, например, содержать одну или более антенн).
ПОДРОБНОЕ ОПИСАНИЕ
Кодирование видеосигналов на основе блоков
Аналогично HEVC VVC построен на основе гибридной структуры кодирования видеосигналов на основе блоков. На фиг. 2A представлена блок-схема примера гибридной системы кодирования видеосигналов на основе блоков. Входной видеосигнал 103 обрабатывается поблочно (при этом блоки называют блоками кодирования (CU)). В VTM-1.0 блок CU может иметь размер до 128x128 пикселей. Однако в отличие от стандарта HEVC, который разделяет блоки на основании только четверичных деревьев, в VTM-1.0 один элемент кодового дерева (CTU) разделяется на блоки CU для адаптации к изменяющимся локальным характеристикам на основании тетрарного/бинарного/тернарного дерева. Кроме того, отменяется концепция разделения множества типов единиц, применяемая в HEVC, т.е. в VVC-1.0 разделения CU, элемента прогнозирования (PU) и элемента преобразования (TU) больше не существует; вместо этого каждый блок CU всегда используется как базовая единица как для прогнозирования, так и для преобразования без дополнительных разделений. В древовидной структуре множественного типа один CTU сначала разделяется с применением тетрарной древовидной структуры. Затем каждый оконечный листовой узел тетрарной древовидной структуры может быть дополнительно разделен с применением бинарной и тернарной древовидной структуры. Как показано на фиг. 3A–3E, существуют пять типов разделения, тетрарное разделение, горизонтальное бинарное разделение, вертикальное бинарное разделение, горизонтальное тернарное разделение и вертикальное тернарное разделение. Как показано на фиг. 2A, может выполняться пространственное прогнозирование (160) и/или временное прогнозирование (162). Пространственное прогнозирование (или «внутреннее прогнозирование») для прогнозирования текущего видеоблока использует в одном и том же видеоизображении/срезе пикселы из семплов уже закодированных соседних блоков (которые называются эталонными семплами). Пространственное прогнозирование уменьшает пространственную избыточность, характерную для видеосигнала. Временное прогнозирование (также называемое «внешним прогнозированием» и/или «прогнозированием с компенсацией движения») для прогнозирования текущего видеоблока использует воссозданные пиксели из ранее закодированных видеоизображений. Временное прогнозирование снижает временную избыточность, характерную для видеосигнала. Сигнал временного прогнозирования для данного CU обычно сигнализируют посредством одного или более векторов движения (MV), которые указывают величину и/или направление движения между текущим CU и его временным эталоном. Кроме того, если поддерживается множество эталонных изображений, дополнительно отправляется один индекс эталонного изображения, который используется для идентификации эталонного изображения в хранилище (164) эталонных изображений, от которого поступает сигнал временного прогнозирования. После пространственного и/или временного прогнозирования блок (180) принятия решения о режиме в кодере выбирает оптимальный режим прогнозирования, например на основании способа оптимизации зависимости искажений от скорости передачи. Затем блок прогнозирования вычитают из текущего видеоблока (117), а остаточное значение прогнозирования декоррелируют с использованием преобразования (105) и квантуют (107). Квантованные остаточные коэффициенты обратно квантуют (111) и/или обратно преобразуют (113) для формирования восстановленного остатка, который затем снова прибавляют к блоку (127) прогнозирования для формирования восстановленного сигнала CU. Далее внутрипетлевой фильтр, такой как фильтр деблокирования, может применяться (166) к восстановленному CU перед его помещением в хранилище (164) эталонных изображений и/или использованием для кодирования будущих видеоблоков. Для формирования выходного битового видеопотока 121 режим кодирования (например, внешний или внутренний), информация о режиме прогнозирования, информация о движении и квантованные остаточные коэффициенты передают в элемент (109) энтропийного кодирования для дополнительного сжатия и упаковки для формирования битового потока.
На фиг. 2B представлена блок-схема примера видеодекодера на основе блоков. Битовый видеопоток 202 сначала распаковывают и энтропийно декодируют в элементе 208 энтропийного декодирования. Информация о режиме кодирования и о прогнозировании может быть отправлена в блок 260 пространственного прогнозирования (если выполнялось внутреннее кодирование) и/или в блок 262 временного прогнозирования (если выполнялось внешнее кодирование). Остаточные коэффициенты преобразования отправляют в элемент 210 обратного квантования и/или элемент 212 обратного преобразования для восстановления остаточного блока. Блок прогнозирования и остаточный блок складывают друг с другом в 226. Восстановленный блок может дополнительно проходить через внутрипетлевое средство фильтрации перед сохранением в хранилище 264 эталонных изображений. Затем восстановленное видео в хранилище эталонных изображений отправляют для приведения в действие устройства отображения, а также используют для прогнозирования будущих видеоблоков.
Как упоминалось ранее, BMS-1.0 использует тот же рабочий процесс кодирования/декодирования VTM-1.0, как показано на фиг. 2A и 2B. Однако несколько модулей кодирования, особенно связанных с временным прогнозированием, дополнительно расширены и улучшены. Далее кратко описан аффинный алгоритм компенсации движения как один из инструментов внешнего кодирования, включенный в BMS-1.0 или предыдущий JEM.
Аффинный режим
В HEVC для прогнозирования с компенсацией движения применяется только трансляционная модель движения. С другой стороны, в реальном мире существует множество видов движения, например увеличение/уменьшение масштаба, вращение, перспективные движения и другие неоднородные движения. В BMS применяется упрощенное прогнозирование с компенсацией движения по методу аффинного преобразования. Для каждого CU с внешним кодированием сигнализируют флаг, указывающий, какая именно модель движения применяется ли для внешнего прогнозирования, трансляционная или аффинная.
Упрощенная аффинная модель движения представляет собой модель с четырьмя параметрами: два параметра описывают поступательное перемещение в горизонтальном и вертикальном направлениях, один параметр описывает движение масштабирования и один параметр описывает вращательное движение. Параметр горизонтального масштабирования равен параметру вертикального масштабирования. Параметр горизонтального вращения равен параметру вертикального вращения. Аффинная модель движения по четырем параметрам кодируется в BMS с использованием двух векторов движения в виде одной пары в двух положениях контрольных точек, заданных в левом верхнем углу и правом верхнем углу текущего CU. Как показано на фиг. 4A, аффинное поле движения блока описывается двумя векторами движения контрольной точки (V0, V1). На основе движения контрольной точки поле (vx, vy) движения блока, закодированного с применением аффинного алгоритма, может быть описано как:
(1)
где (v0x, v0y) — вектор движения контрольной точки в левом верхнем углу, а (v1x, v1y) — вектор движения контрольной точки в правом верхнем углу, как показано на фиг. 4A. Кроме того, при кодировании блока в аффинном режиме его поле движения выводится на основе гранулярности подблоков. Более конкретно, для выведения вектора движения каждого подблока вектор движения центрального семпла каждого подблока (как показано на фиг. 4B) рассчитывается в соответствии с (1) и округляется с точностью до 1/16 пэл. Затем выведенные векторы движения могут использоваться на стадии компенсации движения для генерирования сигнала прогнозирования каждого подблока внутри текущего блока. Кроме того, размер подблоков, который применяется для аффинного алгоритма компенсации движения, рассчитывается как:
(2)
где (v2x, v2y) — вектор движения левой нижней контрольной точки, w, а h — ширина CU и высота CU, рассчитанные согласно (1); M и N представляют собой ширину и высоту выведенного размера подблока.
Четыре параметра аффинной модели можно оценивать итерационно. На стадии k пары MV обозначают как {, }, сигнал исходной яркости как , сигнал прогнозируемой яркости как . Пространственный градиент и получают с помощью фильтра Собеля, примененного к сигналу прогнозирования в горизонтальном и вертикальном направлении соответственно. Ур. (1) примет вид:
(3)
где (a, b) — параметры дельта-вектора поступательного перемещения, а (c, d) — параметры дельта-вектора масштабирования и вращения на стадии k.
(4)
(5)
На основании уравнения оптического потока соотношение между изменением яркости и пространственным градиентом и временными характеристиками движения можно представить следующим уравнением:
(6)
При подстановке выражения для и в ур. (3) можно получить уравнение для параметра (a, b, c, d).
(7)
Поскольку все семплы в CU удовлетворяют ур. (7), решение относительно набора параметров (a, b, c, d) может быть получено с помощью метода наименьших квадратов. Векторы MV в двух контрольных точках {, } на стадии (k+1) можно определить с помощью ур. (4) и (5), затем значения округляют до заданной точности (т.е. 1/4 пэл). Используя итерацию, векторы MV в двух контрольных точках можно уточнять до полного схождения, т. е. до того момента, когда все параметры (a, b, c, d) станут равны нулю или количество итераций достигнет заданного предела.
Как показано на фиг. 14, для CU с аффинным кодированием по 6 параметрам существуют три контрольные точки: левый верхний, правый верхний и левый нижний. Движение в левой верхней контрольной точке представляет собой поступательное движение, движение в правой верхней контрольной точке связано с движением вращения и масштабирования в горизонтальном направлении, а движение в левой нижней контрольной точке связано с движением вращения и масштабирования в вертикальном направлении. Для аффинной модели движения по 4 параметрам движения вращения и масштабирования по горизонтали и вертикали одинаковы. Вектор движения каждого подблока (MVx, MVy) выводится с использованием трех векторов MV в контрольных точках, как показано ниже:
(8)
(9)
где (x, y) — центральная позиция подблока, w и h — ширина и высота CU.
Аффинный режим объединения
Если CU кодируется в аффинном режиме, два набора векторов движения для этих двух контрольных точек для каждого референтного списка сигнализируют с помощью прогнозирующего кодирования. Различия между MV и его предиктором кодируются без потерь, и передача этой служебной информации сигнализации усложняется, особенно при низкой скорости передачи. Чтобы сократить объем служебной информации сигнализации, в BMS также применяют аффинный режим объединения, принимая во внимание локальную непрерывность поля движения. Векторы движения в двух контрольных точках текущего блока CU выводятся с использованием аффинного движения соответствующего кандидата на аффинное объединение, выбранного из соседних с ним блоков. Если текущий блок CU кодируется в аффинном режиме объединения, как показано на фиг. 5, выполняется проверка пяти соседних блоков в порядке от N0 до N4. В результате первый соседний блок с аффинным кодированием будет использован в качестве кандидата на аффинное объединение. Например, как показано на фиг. 6, текущий блок CU кодируют в аффинном режиме объединения, а его соседний блок (N0), расположенный слева и снизу от него, выбирают как кандидата на аффинное объединение. Ширину и высоту блока N0, содержащего блок CU, обозначают как nw и nh. Ширину и высоту текущего блока CU обозначают как cw и ch. MV в позиции Pi обозначают как (vix, viy). MV (v0x, v0y) в контрольной точке P0 выводят следующим образом:
(10)
(11)
74 MV (v1x, v1y) в контрольной точке P1 выводят следующим образом:
(12)
(13)
75 MV (v2x, v2y) в контрольной точке P2 выводят следующим образом:
(14)
(15)
После выведения MV в двух контрольных точках (P0 и P1) MV каждого подблока в текущем блоке CU выводят, как описано выше, и этот выведенный подблок MV может использоваться для компенсации движения на основе подблоков и временного прогнозирования вектора движения для будущего кодирования изображения.
Аффинное прогнозирование MV
Для блоков CU с аффинным кодированием без объединения сигнализация векторов MV в контрольных точках является дорогостоящей, и для сокращения объема служебной информации сигнализации используется прогнозирующее кодирование. В BMS аффинный предиктор MV генерируется на основе движения соседних кодированных блоков. Существуют два вида предикторов для прогнозирования MV в блоке CU с аффинным кодированием: (a) сгенерированное аффинное движение от соседних блоков контрольных точек; (b) поступательное движение, которое применяется для традиционного прогнозирования MV, оно используется, только когда количество аффинных предикторов, полученное в (а), является недостаточным (менее 2 в BMS).
Для генерирования множества аффинных предикторов движения используются три набора векторов MV. Как показано на фиг. 7, эти три набора MV являются следующими: (1) MV от соседних блоков {A, B, C} в углу P0 состоит из набора S1, обозначенного как {MVA, MVB, MVC}; (2) MV от соседних блоков {D, E} в углу P1 состоит из набора S2, обозначенного как {MVD, MVE}; (3) MV от соседних блоков {F, G} в углу P2 состоит из набора S3, обозначенного как {MVF, MVG}. MV из соседнего блока выводится следующим образом. Сначала выполняют проверку пространственного соседнего блока; если соседний блок представляет собой блок внешнего кодирования, MV будет использован непосредственно, а эталонное изображение соседнего блока будет таким же, как эталонное изображение текущего блока CU; или в случае, если эталонное изображение соседнего блока отличается от эталонного изображения текущего блока CU, MV подвергнется масштабированию в соответствии с временным расстоянием. Как показано на фиг. 8, временное расстояние между текущим изображением и эталонным изображением текущего CU обозначают как TB, а временное расстояние между текущим изображением и эталонным изображением соседнего блока — как TD. MV1 соседнего блока масштабируют следующим образом:
(16)
MV2 используют в наборе векторов движения.
Если соседний блок не является блоком внешнего кодирования, будет выполнена проверка расположенного по соседству блока в расположенном по соседству эталонном изображении. Если временной расположенный по соседству блок представляет собой блок внешнего кодирования, масштабирование MV осуществляется с помощью ур. (18) в зависимости от временного расстояния. Если временной расположенный по соседству блок не является блоком внешнего кодирования, MV в этом соседнем блоке принимается равным нулю.
После получения трех наборов векторов MV аффинный предиктор MV получают путем выбора одного MV из каждого из трех наборов векторов MV. Размеры S1, S2 и S3 составляют 3, 2, 2 соответственно. Всего можно получить 12 комбинаций (3x2x2). В BMS кандидат будет отброшен, если связанные с масштабированием или вращением параметры, представленные тремя векторами MV, превысят предварительно заданное пороговое значение. Можно обозначить одну комбинацию как (MV0, MV1, MV2) для трех углов CU: левый верхний, правый верхний и левый нижний. Можно проверить следующее условие.
(17)
где T представляет собой (1/2). Кандидат отбрасывается, если условие выполняется, т. е. если масштабирование или вращение слишком велико.
Все остальные кандидаты сортируют в BMS. Триплет из трех векторов MV представляет модель движения с 6 параметрами, включая поступательное перемещение, масштабирование и вращение в горизонтальном и вертикальном направлениях. Критерии расположения представляют собой разность между этой моделью движения с 6 параметрами и моделью движения с 4 параметрами, представленной (MV0, MV1). Кандидат с меньшей разностью будет иметь меньший индекс в упорядоченном списке кандидатов. Разность между аффинным движением, представленным (MV0, MV1, MV2), и аффинной моделью движения, представленной (MV0, MV1), оценивается по ур. (18).
(18)
Аффинное кодирование MV
Если CU кодируется в соответствии с аффинным режимом, он может представлять собой аффинный режим объединения или аффинный режим без объединения. Для вышеописанного аффинного режима объединения аффинные векторы MV в этих контрольных точках получают из аффинных векторов MV соседнего блока CU с аффинным кодированием. Следовательно, нет необходимости в передаче информации о MV для аффинного режима объединения. Для аффинного режима без объединения векторы MV в контрольных точках кодируют с помощью дифференциального кодирования. Предикторы MV генерируются с использованием соседних векторов MV, как описано выше, в этом случае кодируют разность между текущим MV и его предиктором. Разность MV, о которой необходимо сигнализировать, обозначают как MVD. Аффинная модель с четырьмя параметрами имеет две контрольные точки, поэтому в случае одностороннего прогнозирования для сигнализации используются две MVD, а в случае двустороннего прогнозирования для сигнализации используются четыре MVD. Аффинная модель с шестью параметрами имеет три контрольные точки, поэтому в случае одностороннего прогнозирования для сигнализации используются три MVD, а в случае двустороннего прогнозирования для сигнализации используются шесть MVD. Поскольку MVD является двухмерным вектором (с горизонтальным и вертикальным компонентами) и кодируется без потерь, ее сжатие представляет собой сложную задачу. В текущей конструкции VVC (VTM-1.0/BMS-1.0) точность MVD для сигнализации представляет собой точность в четверть пиксела.
Адаптивная точность MVD
Для блока CU, кодированного с применением неаффинного внешнего режима без объединения, MVD между текущим MV блока CU и его предиктором может быть закодирована в различных разрешениях. Это может быть точность 1/4 пэл, 1 пэл или 4 пэл. 1/4 пэл — дробная точность. 1 пэл и 4 пэл относятся к целочисленной точности. Точность сигнализируют с помощью двух флагов для каждого CU, указывающих точность MVD. Первый флаг указывает, составляет ли точность 1/4 пэл. Если точность не составляет 1/4 пэл, сигнализируется второй флаг, указывающий, что точность составляет 1 пэл или 4 пэл. При оценке движения, как правило, поиск дельта-вектора MV происходит вблизи от начального MV, который принимается за начальное положение. Начальное положение может быть выбрано по его пространственному и временному предикторам. Для упрощения реализации начальный MV округляют до точности для сигнализации MVD, в этом случае будет осуществляться поиск только тех кандидатов MVD, которые имеют желаемую точность. Предиктор MV также округляют до точности MVD. В эталонном программном обеспечении VTM/BMS кодер проверяет стоимостные критерии зависимости искажения от скорости передачи данных (RD) для различной точности MVD и выбирает оптимальную точность MVD с минимальным стоимостным критерием RD. Стоимостный критерий RD рассчитывается как взвешенная сумма искажения величины семпла и скорости кодирования и представляет собой измеренную эффективность кодирования. Режим кодирования с более низким стоимостным критерием RD обеспечит лучшую общую эффективность кодирования. Чтобы сократить объем служебной информации сигнализации, флаг, связанный с точностью MVD, сигнализируют, только когда сигнализируемая MVD не равна нулю. Если сигнализируемая MVD равна нулю, она логически выводится как точность 1/4 пэл.
Кодирование MVD
В VVC способ энтропийного кодирования MVD является одинаковым как для аффинного, так и для неаффинного режима кодирования. Он независимо кодирует два компонента. Знак MVD каждого компонента кодируется 1 битом. Абсолютное значение кодируется в двух частях. (1) Значения 0 и 1 кодируются с помощью флагов. Первый флаг указывает, превышает ли абсолютное значение 0; если это значение больше 0, второй флаг указывает, превышает ли абсолютное значение 1. (2) Если абсолютное значение v больше 1, то оставшаяся часть (v-2) бинаризируется экспоненциальным кодом Голомба (EG) первого порядка, и эти бинаризованные двоичные значения кодируются равномерной кодировкой. Например, бинаризация оставшейся части (v-2) с использованием EG-кодов первого порядка приведена в таблице 1.
Таблица 1. Бинаризация абсолютного значения MVD одного компонента с использованием EG-кодов первого порядка
абсолютное значение (v-2) Бинаризация для кодирования
0 00
1 01
2 1000
3 1001
4 1010
5 1011
6 110000
Длина кодового слова EG-кодов различных порядков при кодировании одного и того же значения может быть разной. Для кодов меньшего порядка длина кодового слова для малых величин обычно меньше, а для более больших величин длина кодового слова больше. Для аффинного режима кодирования MVD этих контрольных точек может иметь различную статистику. EG-коды одного и того же порядка могут не являться оптимальными для кодирования MVD всех контрольных точек.
Проблемы, рассмотренные в некоторых вариантах осуществления
Как было сказано выше, при передаче служебной информации сигнализации для CU, кодированного с применением явного аффинного метода, сигнализация MVD усложняется по сравнению с внешним CU, кодированным с применением трансляционной модели движения, поскольку она имеет больше разностей MVD, подлежащих сигнализации: два набора разностей MVD для аффинной модели с 4 параметрами и 3 разности MVD для аффинной модели с 6 параметрами. Адаптивная точность MVD для сигнализации обеспечивает лучший компромисс между эффективностью компенсации движения и служебной информацией сигнализации. Однако использование векторов движения в контрольных точках в аффинной модели отличается от вектора движения для традиционной трансляционной модели движения: векторы MV в контрольных точках не используются для компенсации движения напрямую; на их основе выводят MV подблока, а уже MV подблока используют для компенсации движения для этого подблока.
Процесс оценки движения (ME) для аффинной модели движения, описанной выше, отличается от способа поиска движения в традиционной трансляционной модели движения в VTM/BMS. Процесс ME, используемый для поиска оптимальных векторов MV в двух контрольных точках, основан на оценке оптического поля потока. Для каждой итерации дельта-вектор MV, выведенный на основе оценки оптического потока, имеет различные значения, и при каждой итерации сложно контролировать размер шага. Напротив, в случае ME для трансляционной модели движения для того, чтобы найти оптимальный MV для блока кодирования, как правило, используется метод пошагового поиска положения в определенном диапазоне. В пределах диапазона поиска вокруг начального MV можно оценить и сравнить стоимостные критерии ME для каждого возможного положения, например, как в полной схеме поиска, а затем выбрать оптимальное положение, имеющее минимальные стоимостные критерии ME. Стоимостные критерии ME обычно оцениваются как взвешенная сумма ошибки прогнозирования и битов для сигнализации, связанной с MV, включая индекс эталонного изображения и MVD. Ошибка прогнозирования может измеряться суммой абсолютных разностей (SAD) между исходным сигналом и сигналом прогнозирования блока кодирования.
В этом детерминированном процессе ME для трансляционной модели движения существует множество способов быстрого поиска для адаптивного регулирования размера шага поиска во время итераций. Например, поиск может начинаться с большого размера шага в пределах окна поиска. После получения оптимального положения при большом размере шага этот размер шага можно уменьшить, а окно поиска можно также уменьшить до меньшего окна с центром в последнем оптимальном положении, полученном из предыдущего окна поиска. Такой итерационный поиск может быть прекращен, когда размер шага поиска уменьшится до значения, не превышающего предварительно определенного порога, или общее время поиска достигнет предварительно определенного порога.
Процесс ME для аффинной модели отличается от процесса ME для трансляционной модели. В настоящем описании описываются способы ME для аффинной модели с различной точностью MVD.
Обзор некоторых вариантов осуществления
Чтобы обеспечить оценку движения для аффинной модели, в настоящем описании описаны адаптивные способы определения точности MVD для повышения эффективности кодирования аффинных моделей движения. Некоторые варианты осуществления обеспечивают улучшенный компромисс между сигнализацией и эффективностью прогнозирования с компенсацией движения. Кроме того, предложены способы определения адаптивной точности MVD.
В некоторых вариантах осуществления точность MVD для аффинной модели адаптивно выбирается из набора множественных значений точности для двух контрольных точек. Значения точности для MVD в разных контрольных точках могут быть разными.
В некоторых вариантах осуществления предложены способы поиска MV для аффинной модели при различных значениях точности MVD для повышения точности и снижения сложности кодирования.
В некоторых вариантах осуществления для аффинного предиктора вектора движения (MVP) контрольной точки и MV поддерживается высокая точностью, но MVD округляется до более низкой точности. Это позволяет повысить точность компенсации движения при использовании MV высокой точности.
Для удобства изложения в представленном ниже описании в качестве примера приведена аффинная модель движения с 4 параметрами. Но предложенные способы также могут напрямую распространяться на аффинную модель движения с 6 параметрами.
Адаптивная точность MVD для аффинной модели
В VTM/BMS разность MVD в контрольной точке для аффинной модели всегда сигнализируют с точностью 1/4 пэл. Фиксированная точность не может обеспечить хорошего компромисса между служебной информацией сигнализации MVD и эффективностью аффинного алгоритма компенсации движения. Благодаря повышению точности MVD в этих контрольных точках MV, выведенный из ур. (1) для каждого подблока, будет более точным. Таким образом, можно улучшить прогнозирование движения. Однако в этом случае для сигнализации MVD будет использовано больше битов. В настоящем описании предложены способы для определения адаптивной точности MVD в контрольных точках. Движение левой верхней контрольной точки связано с поступательным движением каждого подблока внутри этого CU, а разность движений между двумя контрольными точками связана с масштабирующим и вращательным движением каждого подблока. Эти блоки, кодируемые с применением аффинной модели движения, могут иметь различные характеристики движения. Некоторые аффинные блоки могут осуществлять поступательное и вращательное движение с высокой точностью, а некоторые аффинные блоки могут осуществлять поступательное движение с низкой точностью. В некоторых вариантах осуществления поступательное движение и вращательное/масштабирующее движение аффинного блока могут осуществляться с разными значениями точности. На основании вышеизложенного некоторые примеры осуществления сигнализируют различные значения точности для кодирования MVD в различных контрольных точках.
Сигнализация точности отдельно для каждой контрольной точки повысит объем служебной информации сигнализации для блока CU с аффинным кодированием. Один вариант осуществления предусматривает общую для двух контрольных точек сигнализацию точности. Сигнализация будет охватывать только часто используемые комбинации. Например, пара значений точности (prec0, prec1) может использоваться для указания точности prec0 для левой верхней контрольной точки и точности prec1 для правой верхней контрольной точки. В примерах осуществления используются следующие четыре набора значений точности:
S1 {(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл)},
S2 {(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/4 пэл, 1/8 пэл)},
S3 {(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/8 пэл, 1/8 пэл)}, и
S4 {(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/4 пэл, 1/8 пэл), (1/8 пэл, 1/8 пэл)}.
Точность (1/4 пэл, 1/4 пэл) используется для аффинных блоков в качестве стандартного значения точности. Точность (1 пэл, 1/4 пэл) используется для аффинных блоков, которые совершают поступательное движение с низкой точностью, но при этом осуществляют вращение/масштабирование со стандартной точностью. Точность (1/4 пэл, 1/8 пэл) используется для аффинных блоков, осуществляющих вращение/масштабирование с высокой точностью. Точность (1/8 пэл, 1/8 пэл) используется для аффинных блоков, осуществляющих как поступательное движение, так и вращение/масштабирование с высокой точностью. Сигнализация о наборе значений точности может передаваться, например, в наборе параметров последовательности, наборе параметров изображения или заголовке среза.
В некоторых вариантах осуществления точность одной контрольной точки будет применяться к MVD в двух списках, если текущий аффинный CU кодируется с помощью режима двустороннего прогнозирования. В некоторых вариантах осуществления для снижения избыточности сигнализации точность сигнализируется, только если MVD в этой контрольной точке не равна нулю. Если MVD в контрольной точке равна нулю, нет необходимости сигнализировать информацию о точности для этой контрольной точки, поскольку на MVD, равную нулю, точность не оказывает никакого влияния. Например, если MVD в левом верхнем углу равна нулю, то точность (1 пэл, 1/4 пэл) будет неприменима к текущему CU. Следовательно, в этом случае, если заданным набором значений точности является S1, передается дополнительная сигнализация точности. Значения точности (1/4 пэл, 1/4 пэл) и (1/8 пэл, 1/8 пэл) допустимы, если заданным набором значений точности является S3. Точность MVD, равной нулю, может быть выведена как точность по умолчанию, например (1/4 пэл, 1/4 пэл). В другом варианте осуществления сигнализация о точности может передаваться всегда, даже если MVD равна нулю, поскольку это может привести к высокой точности MV от связанного с ним предиктора. Например, предиктор MV был выведен из соседнего CU с аффинным кодированием. Высокая точность позволит получить предиктор MV с высокой точностью, поэтому результирующая точность MV будет высокой.
В таблице 2, таблице 3, таблице 4 и таблице 5 представлены результаты бинаризаций этих наборов значений точности, и бинаризованное двоичное значение будет закодировано.
Таблица 2. Бинаризация для S1
Точность Бинаризация
(1 пэл, 1/4 пэл) 1
(1/4 пэл, 1/4 пэл) 0
Таблица 3. Бинаризация для S2
Точность Бинаризация
(1 пэл, 1/4 пэл) 1
(1/4 пэл, 1/4 пэл) 00
(1/4 пэл, 1/8 пэл) 01
Таблица 4. Бинаризация для S3
Точность Бинаризация
(1 пэл, 1/4 пэл) 1
(1/4 пэл, 1/4 пэл) 00
(1/8 пэл, 1/8 пэл) 01
Таблица 5. Бинаризация для S4
Точность Бинаризация
(1 пэл, 1/4 пэл) 1
(1/4 пэл, 1/4 пэл) 000
(1/4 пэл, 1/8 пэл) 001
(1/8 пэл, 1/8 пэл) 01
Для кодирования точности в качестве примера используется S3. Существуют два двоичных значения, которые необходимо закодировать для набора S3 после бинаризации, в соответствии с таблицей 4. Второе двоичное значение кодируется, только когда первое двоичное значение равно 0. Двоичное значение будет кодироваться с применением контекстно-адаптивного двоичного арифметического кодирования (CABAC). Контекст для одного двоичного значения в CABAC используется для записи вероятности, равной нулю или единице. Контекст для первого двоичного значения может быть выведен на основе его соседей слева и сверху, как показано на фиг. 9. Необходимо определить две функции: (1) Model(CU) для указания, является ли модель движения CU аффинной моделью; (2) Prec(CU) для указания, используется ли для CU точность (1 пэл, 1/4 пэл).
(19)
(20)
При сравнении точности соседнего CU и текущего CU можно получить два флага: equalPrec(BL), equalPrec(BA) согласно оценке по ур. (21), (22).
(21)
(22)
Индекс контекста для первого двоичного значения выражается ур. (23).
(23)
Второе двоичное значение может быть закодировано с использованием одного фиксированного контекста. Или оно может быть закодировано с использованием 1-битного кода фиксированной длины.
В альтернативном варианте осуществления точность 1 пэл для левой верхней контрольной точки может быть заменена точностью 1/2 пэл в вышеуказанной схеме сигнализации, основанной на парах значений точности.
В другом варианте осуществления сигнализация точности передается отдельно для каждой контрольной точки. Например, передается сигнализация одной точности, выбранной из набора {1 пэл, 1/4 пэл, 1/8 пэл}, для левой верхней контрольной точки, и сигнализация одной точности, выбранной из набора {1/2 пэл, 1/4 пэл, 1/8 пэл}, для правой верхней контрольной точки. Причина того, что наборы значений точности для двух контрольных точек отличаются, заключается в том, что точность 1 пэл является слишком грубой для правого верхнего MV, который связан с движением вращения и масштабирования, поскольку движения вращения и масштабирования сопровождаются эффектом депланации, т.е. являются более сложными, чем поступательное движение. Если аффинный блок осуществляет поступательное движение с низкой точностью, для левой верхней контрольной точки может быть выбрана точность 1 пэл; если аффинный блок осуществляет поступательное движение с высокой точностью, для левой верхней контрольной точки может быть выбрана точность 1/8 пэл. Если аффинный блок осуществляет движение вращения или масштабирования с высокой точностью, для правой верхней контрольной точки может быть выбрана точность 1/8 пэл. На основании статистики для кодирования точности, выбранной для двух контрольных точек, можно использовать приведенную ниже таблицу бинаризации (таблица 6, таблица 7). Бинарные коды представляют собой кодовые слова, и их можно кодировать с применением различных способов энтропийного кодирования, таких как CABAC. На стороне декодера предиктор аффинного MV в каждой контрольной точке можно округлить до точности, которую имеет MVD, а затем масштабировать до высокой точности для сохранения полученного MV (например, 1/16 пэл в VVC). Декодированную MVD сначала масштабируют до высокой точности для сохранения полученного MV в зависимости от ее точности. Затем масштабированную MVD прибавляют к предиктору MV для получения восстановленного MV с точностью, используемой для сохранения поля движения. Восстановленный MV в контрольных точках будет использоваться для выведения MV каждого подблока с применением ур. (1) для компенсации движения каждого подблока с получением прогнозированного значения семпла для этого подблока.
Таблица 6. Бинаризация для кодирования точности левой верхней контрольной точки
Точность Бинаризация
1 пэл 1
1/4 пэл 00
1/8 пэл 01
Таблица 7. Бинаризация для кодирования точности правой верхней контрольной точки
Точность Бинаризация
1/2 пэл 00
1/4 пэл 1
1/8 пэл 01
В другом варианте осуществления набор значений точности для обеих контрольных точек может быть таким же, как {1/2 пэл, 1/4 пэл, 1/8 пэл}, но бинаризация кодирования точности для двух контрольных точек может отличаться. Пример бинаризации кодирования точности для двух контрольных точек предложен в таблице 8.
Таблица 8. Бинаризация для кодирования точности контрольных точек
Точность Бинаризация левой верхней контрольной точки Бинаризация правой верхней контрольной точки
1/2 пэл 1 00
1/4 пэл 00 1
1/8 пэл 01 01
В некоторых вариантах осуществления управление точностью для контрольных точек применяется только к таким большим блокам CU, что позволяет сократить объем служебной информации сигнализации, поскольку в общем случае аффинная модель движения чаще используется для больших блоков CU. Например, в некоторых вариантах осуществления сигнализация точности MVD для контрольных точек может передаваться только в том случае, когда площадь CU превышает некоторое пороговое значение (например, 16×16). Для малых блоков CU точность для обеих контрольных точек может быть выведена как (1/4 пэл).
В некоторых вариантах осуществления набор значений точности изменяется на уровне изображения. В конфигурации произвольного доступа существуют различные временные уровни, и на различных уровнях могут быть использованы различные параметры квантования (QP). Например, для изображений с низким временным уровнем и малым QP может существовать большее число вариантов точности, и может быть выбрана более высокая точность, например 1/8 пэл. И можно применить набор значений точности {1/2 пэл, 1/4 пэл, 1/8 пэл}. Для изображений с высоким временным уровнем с большим QP может существовать меньшее число вариантов точности, и может быть выбрана более низкая точность, например 1 пэл. И можно применить набор значений точности {1 пэл, 1/4 пэл} или {1 пэл, 1/2 пэл, 1/4 пэл}.
Для аффинной модели с 6 параметрами движение левой верхней точки связано с поступательным движением, разность в движении между правой верхней и левой верхней точками связана с вращением и масштабированием в горизонтальном направлении, а разность в движении между левой нижней и левой верхней точками связана с вращением и масштабированием в вертикальном направлении. Можно указать точность триплета (p0, p1, p2) для аффинной модели с 6 параметрами, где p0, p1 и p2 — значения точности для левой верхней, правой верхней и левой нижней контрольных точек. В одном варианте осуществления для сигнализации MVD в правой верхней и в левой нижней контрольных точках задается одинаковая точность. Например, точность трех контрольных точек может представлять собой одно значение из набора {(1 пэл, 1/4 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл, 1/4 пэл), (1/8 пэл, 1/8 пэл, 1/8 пэл)}. В другом варианте осуществления для правой верхней и левой нижней контрольных точек задаются различные значения точности. В целях сохранения служебной информации сигнализации желательно как можно больше уменьшить число наборов значений точности. В некоторых вариантах осуществления набор значений точности выбирают на основании формы блока CU. Если его ширина равна высоте (т. е. CU имеет квадратную форму), точность для правой верхней и левой нижней точек может быть одинаковой, например точность может быть равна {(1 пэл, 1/4 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл, 1/4 пэл), (1/8 пэл, 1/8 пэл, 1/8 пэл)}. Если его ширина больше высоты (т. е. CU имеет удлиненную по горизонтали форму), точность для правой верхней контрольной точки может быть больше или равна точности левой нижней контрольной точки, например может быть выбран набор значений точности {(1 пэл, 1/4 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл, 1/4 пэл), (1/8 пэл, 1/8 пэл, 1/4 пэл)}. Если его ширина меньше высоты (т. е. CU имеет удлиненную по вертикали форму), точность правой верхней контрольной точки может быть меньше или равна точности левой нижней контрольной точки, например может быть выбран набор значений точности {(1 пэл, 1/4 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл, 1/4 пэл), (1/8 пэл, 1/4 пэл, 1/8 пэл)}.
Пример способа, выполняемого декодером в некоторых вариантах осуществления, показан на фиг. 18. Декодер принимает битовый поток (блок 1802) и считывает из битового потока информацию, идентифицирующую по меньшей мере первый предиктор вектора движения (блок 1804) и второй предиктор вектора движения (блок 1806), информацию, идентифицирующую одно из множества значений точности в предварительно заданном наборе значений точности (блок 1808), а также по меньшей мере первую разность векторов движения (блок 1810) и вторую разность векторов движения (блок 1812). Первая и вторая разности векторов движения имеют точность, идентифицированную посредством информации, считанной в блоке 1808. Синтаксис и семантика, с помощью которых кодируется информация в битовом потоке, в различных вариантах осуществления могут отличаться. Декодер генерирует по меньшей мере первый вектор движения контрольной точки на основе первого предиктора вектора движения и первой разности векторов движения (блок 1814) и второй вектор движения контрольной точки на основе второго предиктора вектора движения и второй разности векторов движения (блок 1816). Затем декодер генерирует прогнозирование текущего блока с использованием аффинной модели движения (блок 1818). Аффинная модель движения характеризуется по меньшей мере первым вектором движения контрольной точки и вторым вектором движения контрольной точки.
Оценка движения для аффинной модели движения с адаптивной точностью MVD
Когда адаптивная точность MVD применяется для двух аффинных контрольных точек, кодер стремится определить оптимальную точность, которая будет влиять на эффективность кодирования аффинной модели движения. Кодер также стремится применить оптимальный способ оценки движения с заданной точностью для определения параметров аффинной модели.
Блок-схема принятия решения о режиме CU в стандарте VVC показана на фиг. 10. В ней кодер проверяет различные режимы кодирования и выбирает наилучший режим кодирования с минимальным стоимостным критерием RD. Существуют три способа проверки стоимостного критерия RD для явного внешнего режима с различной точностью для трансляционной модели: 1/4 пэл, 1 пэл, 4 пэл. Для снижения сложности кодирования стоимостный критерий RD на основе точности 4 пэл рассчитывают, только когда стоимостный критерий RD для точности 1 пэл меньше или сопоставим со стоимостным критерием RD для точности 1/4 пэл. В процессе расчета стоимостного критерия RD при точности 1/4 пэл кодер сравнит стоимостный критерий оценки движения для трансляционной модели и аффинной модели движения и выберет модель движения с минимальным стоимостным критерием ME. Точность для аффинной модели движения составляет (1/4 пэл, 1/4 пэл) для двух контрольных точек.
В некоторых вариантах осуществления для адаптивной точности MVD в аффинной модели движения вводятся дополнительные значения точности. Например, в аффинной модели в дополнение к точности (1/4 пэл, 1/4 пэл) добавляют точность (1 пэл, 1/4 пэл), (1/8 пэл, 1/8 пэл). В приведенном ниже описании эти три значения точности для аффинной модели используются в качестве примера. Однако в других вариантах осуществления можно использовать другие значения точности или комбинации с дополнительными значениями точности. Точность (1/4 пэл, 1/4 пэл) для аффинной модели можно использовать в качестве точности по умолчанию. Чтобы снизить сложность, можно следить за процессом проверки стоимостного критерия RD для 1/4 пэл, в котором будет оцениваться аффинная модель с точностью (1/4 пэл, 1/4 пэл). Можно добавить оставшуюся проверку аффинной точности к проверке стоимостного критерия RD для точности 1 пэл.
На фиг. 11 представлена блок-схема одного варианта осуществления, в котором применяется стоимостный критерий RD при точности 1 пэл. Выполняется одна оценка движения по трансляционной модели при точности 1 пэл (блок 1102) и две оценки движения по аффинной модели при точности (1 пэл, 1/4 пэл) (блок 1104) и (1/8 пэл, 1/8 пэл) (блок 1106) соответственно. Модель движения и соответствующая точность выбираются путем сравнения их стоимостных критериев ME (блок 1108). Для снижения сложности кодирования какие-либо оценки движения по аффинной модели при этих двух значениях точности выполняются, только кв случае, когда наилучший текущий режим представляет собой режим внешнего кодирования с аффинной моделью движения, и после того как кодер проверит точность (1/4 пэл, 1/4 пэл) для аффинной модели. Причина этого заключается в том, что различные значения точности аффинной модели эффективны только тогда, когда текущий CU осуществляет аффинное движение. Для дополнительного снижения сложности кодирования в некоторых вариантах осуществления кодер может проверять эти стоимостные критерии ME для аффинной модели, только когда наилучший текущий режим кодирования представляет собой аффинный режим без объединения или когда наилучший текущий режим кодирования представляет собой аффинный режим без пропуска, поскольку объединение и пропуск указывают на то, что текущий CU был ранее эффективно закодирован и возможное улучшение крайне ограничено.
Значения точности (1 пэл, 1/4 пэл) и (1/2 пэл, 1/4 пэл) заданы меньше точности по умолчанию (1/4 пэл, 1/4 пэл). Замечено, что способ итерационного поиска на основе оптического потока является недостаточным, поскольку точность левой верхней контрольной точки является грубой, а кодеру в этом случае проще достичь локального минимума. В данном случае для такого рода низкой точности предлагается комбинированный способ поиска. На фиг. 12 представлена блок-схема одного примера способа поиска.
В первую очередь применяют итерационный поиск на основе оптического потока, описанный выше в разделе «Аффинный режим». Затем можно получать (MV0, MV1) в качестве входных данных для следующей стадии, где MV0 представляет собой MV в левой верхней контрольной точке, а MV1 представляет собой MV в правой верхней контрольной точке (блок 1202). Следующая стадия представляет собой уточнение MV0 путем проверки ближайших 8 соседних положений (блок 1204). Пример показан на фиг. 13. Если P0 обозначает положение, на которое указывает MV0, то оно имеет 8 ближайших соседних положений. Р1, расстояние между P0 и P4, представляет собой точность для MV0, например, 1 пэл или 1/2 пэл. Когда MV0 изменяется и начинает указывать на соседнее положение, соответствующее MV1 оценивается способом поиска на основе оптического потока, а стоимостный критерий ME рассчитывается с помощью обновленного (MV0, MV1). Эти 8 соседей объединены в две группы. Первая группа содержит 4 ближайших соседа {P1, P2, P3, P4}, а вторая группа включает {P5, P6, P7, P8}. Сначала можно сравнить стоимостный критерий ME в положении P0 и стоимостный критерий ME соседа из {P1, P2, P3, P4}. Если стоимостный критерий в P0 будет наименьшим, то уточнение MV0 прекратится. Если какой-либо сосед из первой группы имеет более низкий стоимостный критерий ME, чем в положении P0, будет проведено дополнительное сравнение двух других соседей из {P5, P6, P7, P8}. Например, если на первой стадии наименьший стоимостный критерий имеет Р2, будет проведена дополнительная проверка Р5 и Р6. Таким образом, максимальное количество проверок стоимостных критериев составляет 6, а не 8.
После определения MV0 проводится дополнительное уточнение MV1 (блок 1204). Уточнение представляет собой итерационный поиск с квадратной структурой. Для каждой итерации имеется центральное положение, которое является наилучшим положением, определенным в последней итерации. Кодер рассчитывает стоимостный критерий ME в 8 соседних к нему положениях, сравнивает его с текущим наилучшим стоимостным критерием ME и перемещает центральное положение в новое положение, имеющее минимальный стоимостный критерий ME из центрального положения и 8 соседних к нему положений. Если соседнее положение уже проверено в предыдущих итерациях, проверку такого положения при текущей итерации можно пропустить. Поиск прекращается при отсутствии обновления текущей итерации, что означает, что центр находится в наилучшем положении. Или поиск прекращается, если время поиска достигнет предварительно заданного порогового значения (например, 8 или 16).
В случае аффинной модели с 6 параметрами способ поиска, предложенный для аффинной модели с 4 параметрами, может быть расширен. Можно предположить, что требуется выполнить поиск (MV0, MV1, MV2) для аффинного движения с 6 параметрами. Этот поиск можно выполнить с использованием по меньшей мере трех стадий: поиск первоначального движения, уточнение параметра поступательного движения, уточнение параметра движения вращения и масштабирования. Первая стадия и вторая стадия являются такими же, как стадии аффинного поиска с 4 параметрами. Третья стадия состоит в уточнении MV1 и MV2. Для снижения сложности поиска можно уточнить эти два параметра методом итерационного уточнения. Например, можно фиксировать MV0, MV2 и уточнить MV1 с использованием той же схемы, что и при уточнении MV1 для аффинной модели с 4 параметрами. После уточнения MV1 можно фиксировать MV0, MV1 и уточнить MV2 с использованием той же схемы. Затем можно снова уточнить MV1. Таким образом, можно итерационно уточнять эти два вектора MV, которые связаны с вращательным и масштабирующим движением, пока один MV не будет изменен или время итерации не достигнет заданного порога. Для быстрой сходимости можно выбрать начальный MV для уточнения в данной схеме итерационного уточнения следующим образом. Выбор первого вектора (MV1 или MV2) для уточнения может зависеть от их собственной точности. Обычно сначала уточняют вектор MV с более низкой точностью. Если они имеют одинаковую точность, можно выбрать вектор MV, контрольная точка которого находится на большем расстоянии от левой верхней контрольной точки.
Для дополнительного снижения сложности кодирования можно учитывать размер CU и временной уровень, когда кодер проверяет различную точность в контрольных точках для кодирования на основе аффинной модели. Точное решение может быть принято только для больших блоков CU. Например, пример способа определения точности может применяться только к тем блокам CU, площадь которых превышает заданное пороговое значение (например, 16×16). Для тех блоков CU, площадь которых меньше порогового значения, точность (1/4 пэл, 1/4 пэл) используют для двух контрольных точек. Для изображений с различными временными уровнями, имеющих различные настройки QP, на каждом временном уровне кодер может проверять только эти вероятные точности. Например, для изображений с более высокими временными уровнями (например, изображений с наиболее высоким временным уровнем) могут быть проверены только точности (1 пэл, 1/4 пэл) (1/4 пэл, 1/4 пэл). А для изображений с более низкими временными уровнями (например, изображений с наиболее низким временным уровнем) могут быть проверены только точности (1/4 пэл, 1/4 пэл) (1/8 пэл, 1/8 пэл). Для изображений со средними уровнями может быть проверен полный набор значений точности.
Компенсация и аффинная оценка движения на основе подблоков
Аффинная оценка движения представляет собой процесс итерационной оценки. В каждой итерации соотношение между временной разностью между исходным сигналом и сигналом прогнозирования с компенсацией движения с использованием текущего вектора движения, пространственного градиента и локальными аффинными параметрами (a, b, c, d в ур. (3)) представлено ур. (7), которое основано на уравнении оптического потока. Однако для уменьшения ширины полосы выборки из запоминающего устройства на стороне декодера аффинное прогнозирование компенсации движения осуществляется на основе подблока (например, 4×4), а не на основе семпла. Причина заключается в том, что для выведения значения семпла при компенсации движения, когда вектор движения указывает в дробное положение, обычно применяется интерполяционный фильтр. Этот процесс интерполяции может значительно улучшить прогнозирование по сравнению со способом, когда непосредственно используется значение семпла в ближайшем соседнем целочисленном положении. Но интерполяция относится к множеству соседних семплов в целочисленных положениях. С учетом векторов MV в контрольных точках MV каждого подблока может выводиться с использованием ур. (1) на основе центрального положения подблока. Пусть размер подблока равен 1x1, что означает, что компенсация движения осуществляется на основе семплов и каждый семпл может осуществлять различное движение. Можно предположить, что имеется отделимый интерполяционный фильтр с длиной N передаточной функции, а размер подблоков равен SxS. Применительно к одному семплу результатом его действия является извлечение (S+N-1)x(S+N-1) семплов в целочисленных положениях, расположенных вокруг контрольного положения, на который указывает вектор MV, для интерполяции как в горизонтальном, так и в вертикальном направлениях. В среднем результатом действия является извлечение ((S+N-1)x(S+N-1)/(SxS)) контрольных семплов в целочисленном положении на каждый семпл. Для аффинной компенсации движения на основе семплов, где S равно 1, этот показатель составляет NxN. Например, если размер подблока составляет 4×4, в HEVC и VTM значение N составляет 8, а выборка из запоминающего устройства на каждый семпл составляет (121/16). При этом величина выборки из запоминающего устройства для интерполяции на основе семплов составляет 64 на каждый семпл, что в 8,5 раз больше, чем при компенсации движения на основе подблоков размера 4×4. Следовательно, для аффинного прогнозирования движения применяется компенсация движения на основе подблоков. В способе аффинной оценки движения, описанном в разделе «Аффинный режим», используется прогнозирование на основе семплов, которое не учитывает эту компенсацию движения на основе подблоков. Из ур. (3) известно, что дельта-движение для каждого положения связано с соответствующим положением внутри блока CU с учетом этих аффинных параметров. Соответственно, если использовать подблок, находящийся в центральном положении, для выведения движения для всех семплов в границах одного подблока с помощью ур. (3), эти семплы, принадлежащие одному подблоку, будут иметь одинаковое дельта-движение. Например, если местоположение семпла внутри блока CU составляет (i, j), то центральное положение подблока, к которому он принадлежит, оценивается из ур. (24).
(24)
121 Затем можно заменить ур. (3) на ур. (25), подставив (ib, jb) вместо (i, j).
(25)
122 Подставив и в ур. (6) с помощью ур. (25), можно получить ур. (26).
(26)
В некоторых вариантах осуществления ур. (26) используется для оценки оптимальных аффинных параметров (a, b, c, d) по методу наименьших квадратов. В таких вариантах осуществления для оценки движения дельта-движение для тех семплов, которые принадлежат одному подблоку, является одинаковым. Следовательно, результирующие векторы MV в контрольных точках позволяют точнее прогнозировать движение с использованием компенсации на основе подблоков по сравнению со способом оценки на основе семплов в соответствии с ур. (7).
При аффинной компенсации движения положение, используемое для выведения вектора MV подблока внутри блока CU, может не являться фактическим центральным положением подблока. Как показано на фиг. 17, аффинный CU составляет 8×4, а размер подблоков для компенсации движения составляет 4×4. Положение, используемое для выведения вектора MV подблока, можно рассчитать по ур. (24) с учетом положения семпла (i, j). Такими положениями являются P0 и P1 для левого подблока 4×4 и правого подблока 4×4 соответственно. На основе координат P0 и P1 можно вывести вектор MV из ур. (1) для аффинной модели с 4 параметрами или ур. (8), (9) для аффинной модели с 6 параметрами. Однако в случае, когда применяется ур. (24), P0 и P1 не являются центром этих двух подблоков. Векторы MV0 и MV1 могут не обеспечивать точность прогнозирования с компенсацией движения на основе подблоков. В одном варианте осуществления предлагается использовать ур. (27) при расчете положения для выведения вектора MV подблока.
(27)
В ур. (27) вместо P0 можно подставить P0’, где P0’ является центром левого подблока 4×4. Таким образом, соответствующий вектор MV0’ является более точным по сравнению с вектором MV0. Ур. (27) можно применять вместо ур. (24) в способах аффинной оценки движения, описанных в настоящем документе, для повышения точности аффинной оценки движения. С учетом векторов MV в контрольных точках для CU, кодированного с применением аффинного метода, в качестве MV подблока для компонента цветности может повторно использоваться MV для компонента яркости, или эти векторы могут быть выведены по отдельности с использованием ур. (27).
Округление аффинной MVD
В некоторых вариантах осуществления аффинной компенсации движения, хотя векторы MV подблоков, выведенные из векторов MV контрольных точек, определены с точностью 1/16 пэл, векторы MV контрольных точек округляются до точности 1/4 пэл. Вектор MV контрольной точки выводят путем сложения MVD и предиктора MV. MVD сигнализируют с точностью 1/4 пэл. Перед применением предикторов MV для выведения векторов MV контрольных точек предикторы округляют до точности 1/4 пэл. Благодаря адаптивной точности аффинной MVD предикторы MV, используемые для выведения векторов MV контрольных точек текущего блока кодирования, могут иметь более высокую точность, чем точность MV текущего CU. В этом случае предиктор MV округляется до более низкой точности. Округление приводит к потере информации. В некоторых вариантах осуществления, предложенных в настоящем документе, векторы MV контрольных точек и предикторы MV сохраняются с наибольшей точностью, например 1/16 пэл, в то время как MVD округлены до желаемой точности.
При оценке аффинного движения аффинные параметры могут оцениваться итерационно. Для каждой итерации дельта-вектор между векторами MV контрольных точек может быть выведен с использованием метода оптического потока, как описано в ур. (4) и ур. (5). В варианте осуществления в VTM векторы MV контрольных точек на стадии k обновляются в соответствии со следующим уравнением:
(28)
где i представляет собой индекс вектора MV контрольной точки. Функция используется для округления до требуемой точности . Кроме того,, начальные векторы MV контрольных точек, округляются до требуемой точности. Таким образом, также имеет требуемую точность.
В примере осуществления способа, предложенного в настоящем документе, векторы MV контрольных точек на стадии k обновляются с применением следующих стадий. Вектор MV левой верхней контрольной точки обновляется в соответствии с ур. (29)–(31)
(29)
(30)
(31)
Векторы MV правой верхней и левой нижней контрольных точек обновляются в соответствии с ур. (32)–(33), где i равно 1 или 2.
(32)
(33)
(34)
В ур. (29)–(34) представляет собой разность MVD на стадии k, заданную с высокой точностью. Затем эту разность MVD, заданную с высокой точностью, округляют до требуемой точности, как показано в ур. (30) и (33). Вектор MV контрольной точки на стадии k выводится из ур. (31) и ур. (34).
Поскольку точность составляет 1/16 пэл, точность также составляет 1/16 пэл. Сигнализируемая MVD, которая выводится из ур. (33) и (34), имеет требуемую точность (например, низкую точность). Таким образом, точность MV сохраняется даже несмотря на низкую точность сигнализируемой MVD. Таким образом, повышается точность прогнозирования с компенсацией движения с использованием вектора MV.
Адаптивное кодирование аффинной MVD
Аффинная MVD, заданная с различной точностью, может иметь различные характеристики. MVD контрольной точки может иметь различные физические значения. Например, при точности (1/8 пэл, 1/8 пэл, 1/8 пэл) или (1/16 пэл, 1/16 пэл, 1/16 пэл) в среднем абсолютное значение MVD может быть меньше, чем при точности (1/4 пэл, 1/4 пэл, 1/4 пэл). Как описано выше в разделе «Кодирование MVD», длина кодового слова EG-кодов различных порядков отличается. В общем при EG меньшего порядка кодовые слова EG-кодов для малых значений будет короче, тогда как кодовые слова EG-кодов для больших значений будут длиннее. Некоторые варианты осуществления для кодирования MVD используют адаптивный порядок EG, в котором учитывается точность MVD и физический характер движения (например, вращение, масштабирование в разных направлениях). В некоторых вариантах осуществления (MVD0x, MVD0y) левой верхней точки имеет тот же порядок EG, что и при кодировании неаффинной MVD, поскольку компоненты MVD, MVD0x и MVD0y выведены для поступательного движения. Для аффинной модели с 6 параметрами компоненты MVD, MVD1y и MVD2x, связаны с вращательным движением, а компоненты MVD, MVD1x и MVD2y связаны с масштабирующим движением. Для аффинной модели с 4 параметрами компонент MVD, MVD1y связан с вращательным движением, а компонент MVD, MVD1x связан с масштабирующим движением.
В некоторых вариантах осуществления порядок EG-кодов для различных алгоритмов кодирования MVD отличается, поскольку значения MVD имеют разные характеристики. В некоторых вариантах осуществления для MVD, относящихся к поступательному движению (MVD0x, MVD0y), порядок EG не сигнализируется; вместо этого такая MVD может использовать тот же порядок EG (например, 1), что и при кодировании неаффинной MVD.
В некоторых вариантах осуществления порядок EG сигнализируется для экспоненциальных кодов Голомба, используемых для различных компонентов MVD, соответствующих непоступательному движению, таких как компоненты MVD, перечисленные в таблице 9, для трех уровней точности MVD. В варианте осуществления, представленном в таблице 9, в битовом потоке содержится сигнализация о шести порядках EG (от EG-order[0] до EG-order[5]). Диапазон порядков EG составляет от 0 до 3, в нем для кодирования используют 2 бита. Индикатор точности MVD указывает на различные значения точности MVD. Например, индикатор точности MVD «0» указывает на точность (1/4 пэл, 1/4 пэл, 1/4 пэл); Индикатор точности MVD «1» указывает на точность (1/16 пэл, 1/16 пэл, 1/16 пэл); индикатор точности MVD «2» указывает на точность (1 пэл, 1 пэл, 1 пэл). Эти сигнализируемые порядки EG будут указывать порядок EG, используемый для бинаризации EG различных компонентов MVD с различными значениями точности MVD. Например, порядок EG-order[0] будет использован для компонента MVD, MVD1y и MVD2x, с индикатором точности MVD «0» (т.е. набором значений точности (1/4 пэл, 1/4 пэл, 1/4 пэл)). Для аффинной модели с 4 параметрами кодировать разности MVD2x и MVD2y не требуется, и в таблице 9 кодируются только разности MVD1x и MVD1y.
Таблица 9. Сигнализация порядка EG для экспоненциальных кодов Голомба, используемых для следующих компонентов MVD
Сигнализируемый порядок EG (по 2 бита каждый) Индикатор точности MVD Компоненты MVD
Порядок EG-order[0] 0 MVD1y, MVD2x
EG-order[1] 0 MVD1x, MVD2y
EG-order[2] 1 MVD1y, MVD2x
EG-order[3] 1 MVD1x, MVD2y
EG-order[4] 2 MVD1y, MVD2x
EG-order[5] 2 MVD1x, MVD2y
Сигнализация о порядке EG может осуществляться, например, в наборах параметров изображения или заголовке среза. В вариантах осуществления, в которых сигнализация о порядке EG осуществляется в заголовке среза, кодер может выбирать порядок EG на основании ранее закодированного изображения на том же временном уровне. После кодирования каждого внешнего изображения кодер может сравнивать общее количество двоичных значений, связанных с использованием различных кодов EG, с различными порядками для всех разностей MVD в этой категории. Например, для всех MVD1y и MVD2x с точностью MVD «0» кодер сравнит общее количество двоичных значений с порядком EG 0, порядком EG 1, порядком EG 2 и порядком EG 3 и выберет порядок с минимальным значением общего количества двоичных значений. Затем выбранный порядок будет использован для кодирования следующего изображения в том же временном уровне, и выбранный порядок также будет закодирован в заголовке среза следующего изображения в том же временном уровне.
Дополнительные варианты осуществления
В некоторых вариантах осуществления предложен способ декодирования видеосигналов из битового потока. Способ включает по меньшей мере для одного блока в видеосигнале: считывание из информации битового потока, идентифицирующей один из множества элементов в выбранном заданном наборе значений точности, причем идентифицированный элемент выбранного заданного набора значений точности указывает по меньшей мере на выбранную первую точность и выбранную вторую точность; и декодирование блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения, имеющим выбранную первую точность, и вторым вектором движения, имеющим выбранную вторую точность. Способ может включать считывание из информации битового потока, указывающей первый вектор движения и второй вектор движения. Информация, указывающая первый вектор движения и второй вектор движения, может включать первую разность векторов движения и вторую разность векторов движения.
В некоторых вариантах осуществления информацию, идентифицирующую один из множества элементов, считывают из битового потока на поблочной основе.
В некоторых вариантах осуществления первый вектор движения связан с первой контрольной точкой блока, а второй вектор движения связан со второй контрольной точкой блока.
В некоторых вариантах осуществления каждый из элементов выбранного заданного набора значений точности включает доступную первую точность и доступную вторую точность. Доступная вторая точность может быть не меньше, чем доступная первая точность.
В некоторых вариантах осуществления информация, идентифицирующая выбранный заданный набор значений точности из множества доступных заданных наборов значений точности, считывается из битового потока. В некоторых таких вариантах осуществления сигнализация об информации, идентифицирующей выбранный заданный набор значений точности, передается в наборе параметров изображения, в наборе параметров последовательности или в заголовке среза. Примеры заданных наборов положений включают:
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл)},
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/4 пэл, 1/8 пэл)},
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/8 пэл, 1/8 пэл)}, и
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/4 пэл, 1/8 пэл), (1/8 пэл, 1/8 пэл)}.
В некоторых вариантах осуществления аффинная модель движения дополнительно характеризуется третьим вектором движения, имеющим выбранную третью точность, причем идентифицированный элемент выбранного заданного набора значений точности дополнительно указывает выбранную третью точность.
В некоторых вариантах осуществления информацию, идентифицирующую один из множества элементов, кодируют в битовом потоке с применением контекстно-адаптивного двоичного арифметического кодирования.
В некоторых вариантах осуществления определяют, превышает ли размер блока пороговый размер, причем информация, идентифицирующая один из множества элементов, считывается из битового потока для данного блока, только если размер этого блока превышает пороговый размер.
В некоторых вариантах осуществления выбранный предварительно заданный набор значений точности выбирают на основании временного слоя изображения, включая блок.
В некоторых вариантах осуществления выбранный заданный набор значений точности выбирают на основе формы блока.
В некоторых вариантах осуществления предложен способ декодирования видеосигналов в битовом потоке. Способ включает по меньшей мере для одного блока в видеосигнале: считывание из битового потока (i) первой информации, указывающей первую точность из первого заданного набора доступных значений точности, и (ii) второй информации, указывающей вторую точность из второго заданного набора доступных значений точности; декодирование блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения, имеющим выбранную первую точность, и вторым вектором движения, имеющим выбранную вторую точность; и сигнализацию в битовом потоке (i) первой информации, указывающей первую точность из первого заданного набора доступных значений точности, и (ii) второй информации, указывающей вторую точность из второго заданного набора доступных значений точности. Первое заданное значение и второе заданное значение могут быть разными.
В некоторых вариантах осуществления первый заданный набор представляет собой {1 пэл, 1/4 пэл, 1/8 пэл}, а второй заданный набор представляет собой {1/2 пэл, 1/4 пэл, 1/8 пэл}.
В некоторых вариантах осуществления первый вектор движения связан с первой контрольной точкой блока, а второй вектор движения связан со второй контрольной точкой блока.
В некоторых вариантах осуществления предложен способ кодирования видеосигналов в битовом потоке. Способ включает по меньшей мере для одного блока в видеосигнале: кодирование блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения, имеющим выбранную первую точность, и вторым вектором движения, имеющим выбранную вторую точность; и сигнализацию в информации битового потока, идентифицирующей один из множества элементов в выбранном заданном наборе значений точности, причем идентифицированный элемент выбранного заданного набора значений точности указывает по меньшей мере на выбранную первую точность и выбранную вторую точность. Способ может дополнительно включать сигнализацию в информации битового потока, указывающей первый вектор движения и второй вектор движения. Информация, указывающая первый вектор движения и второй вектор движения, может включать первую разность векторов движения и вторую разность векторов движения.
В некоторых вариантах осуществления информацию, идентифицирующую один из множества элементов, отправляют на поблочной основе.
В некоторых вариантах осуществления первый вектор движения связан с первой контрольной точкой блока, а второй вектор движения связан со второй контрольной точкой блока.
В некоторых вариантах осуществления каждый из элементов выбранного заданного набора значений точности включает доступную первую точность и доступную вторую точность. В некоторых вариантах осуществления доступная вторая точность не меньше, чем доступная первая точность.
В некоторых вариантах осуществления способ включает сигнализацию в информации битового потока, идентифицирующей выбранный заданный набор значений точности из множества доступных заданных наборов значений точности. Информация, идентифицирующая выбранный заданный набор значений точности, может быть передана, например, в наборе параметров изображения, наборе параметров последовательности или заголовке среза.
Примеры заданных наборов положений включают:
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл)},
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/4 пэл, 1/8 пэл)},
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/8 пэл, 1/8 пэл)}, и
{(1 пэл, 1/4 пэл), (1/4 пэл, 1/4 пэл), (1/4 пэл, 1/8 пэл), (1/8 пэл, 1/8 пэл)}.
В некоторых вариантах осуществления аффинная модель движения дополнительно характеризуется третьим вектором движения, имеющим выбранную третью точность, а идентифицированный элемент выбранного заданного набора значений точности дополнительно указывает выбранную третью точность.
В некоторых вариантах осуществления информацию, идентифицирующую один из множества элементов, кодируют в битовом потоке с применением контекстно-адаптивного двоичного арифметического кодирования.
В некоторых вариантах осуществления способ включает определение того, превышает ли размер блока пороговый размер, и информацию, идентифицирующую один из множества элементов, сигнализируют в битовом потоке для данного блока, только если размер блока превышает пороговый размер.
В некоторых вариантах осуществления выбранный предварительно заданный набор значений точности выбирают на основании временного слоя изображения, включая блок.
В некоторых вариантах осуществления выбранный заданный набор значений точности выбирают на основе формы блока.
В некоторых вариантах осуществления предложен способ кодирования видеосигналов в битовом потоке. Способ включает по меньшей мере для одного блока в видеосигнале: кодирование блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения, имеющим выбранную первую точность, и вторым вектором движения, имеющим выбранную вторую точность; и сигнализацию в битовом потоке (i) первой информации, указывающей первую точность из первого заданного набора доступных значений точности, и (ii) второй информации, указывающей вторую точность из второго заданного набора доступных значений точности. Первое заданное значение и второе заданное значение могут быть разными.
В некоторых вариантах осуществления первый заданный набор представляет собой {1 пэл, 1/4 пэл, 1/8 пэл}, а второй заданный набор представляет собой {1/2 пэл, 1/4 пэл, 1/8 пэл}.
В некоторых вариантах осуществления первый вектор движения связан с первой контрольной точкой блока, а второй вектор движения связан со второй контрольной точкой блока.
Некоторые варианты осуществления включают способ кодирования видеосигналов в битовом потоке, причем способ включает по меньшей мере для одного блока в видеосигнале: определение первого стоимостного критерия зависимости искажения от скорости передачи данных при кодировании блока с использованием трансляционной модели движения; определение второго стоимостного критерия зависимости искажения от скорости передачи данных при кодировании блока с использованием аффинной модели прогнозирования с первым набором значений точности аффинной модели; определение, является ли второй стоимостный критерий зависимости искажения от скорости передачи данных меньше, чем первый стоимостный критерий зависимости искажения от скорости передачи данных; если будет определено, что второй стоимостный критерий зависимости искажения от скорости передачи данных меньше, чем первый стоимостный критерий зависимости искажения от скорости передачи данных, то определение по меньшей мере третьего стоимостного критерия зависимости искажения от скорости передачи данных для кодирования блока с использованием аффинной модели прогнозирования с применением второго набора значений точности аффинной модели; и кодирование блока в битовом потоке с использованием модели кодирования, связанной с наименьшим определенным стоимостным критерием зависимости искажения от скорости передачи данных.
В некоторых вариантах осуществления в случае, если будет определено, что второй стоимостный критерий зависимости искажения от скорости передачи данных меньше, чем первый стоимостный критерий зависимости искажения от скорости передачи данных, определяют четвертый стоимостный критерий зависимости искажения от скорости передачи данных для кодирования блока с использованием аффинной модели прогнозирования с применением четвертого набора значений точности аффинной модели.
В некоторых вариантах осуществления предложен способ кодирования видеосигналов в битовом потоке. Способ включает по меньшей мере для одного блока в видеосигнале: определение аффинных параметров a, b, c и d с использованием уравнения
где представляет собой сигнал исходной яркости, представляет собой сигнал прогнозируемой яркости, и представляют собой пространственные градиенты, применяемые к , и
где S представляет собой размер подблока, превышающий единицу; и кодирование блока в битовом потоке с использованием определенных аффинных параметров a, b, c и d.
В некоторых вариантах осуществления предложен способ кодирования видеосигналов. Способ включает по меньшей мере для одного блока в видеосигнале: идентификацию предиктора вектора движения (MVP) по меньшей мере для одной контрольной точки, причем предиктор вектора движения имеет первую точность; идентификацию значения разности векторов движения (MVD) для контрольной точки, причем значение разности векторов движения имеет вторую точность, которая меньше, чем первая точность; вычисление вектора движения для контрольной точки посредством сложения по меньшей мере значения разности векторов движения с предиктором вектора движения, причем рассчитанный вектор движения имеет первую точность; и прогнозирование блока методом аффинного прогнозирования с помощью рассчитанного вектора движения по меньшей мере для одной контрольной точки. Значение разности векторов движения может сигнализироваться в битовом потоке кодером или подвергаться анализу из битового потока декодером.
В некоторых вариантах осуществления этот способ выполняется кодером, и идентификация разности векторов движения включает итерационно: определение дельта-вектора движения для контрольной точки на основе начального вектора движения; обновление разности векторов движения на основе дельта-вектора движения; округление разности векторов движения до второй точности; и сложение округленной разности векторов движения и предиктора вектора движения для генерирования обновленного вектора движения, предиктора вектора движения и обновленного вектора движения, имеющего первую точность.
В некоторых вариантах осуществления первая точность составляет точность 1/16 пэл, а вторая точность составляет точность 1/4 пэл.
В некоторых вариантах осуществления прогнозирование блока методом аффинного прогнозирования осуществляется с использованием двух контрольных точек, причем соответствующая разность векторов движения идентифицируется для каждой контрольной точки, при этом каждая соответствующая разность векторов движения имеет вторую точность.
В некоторых вариантах осуществления прогнозирование блока методом аффинного прогнозирования осуществляется с использованием трех контрольных точек, причем соответствующая разность векторов движения идентифицируется для каждой контрольной точки, при этом каждая соответствующая разность векторов движения имеет вторую точность.
В некоторых вариантах осуществления предложен способ декодирования видеосигналов из битового потока. Способ включает по меньшей мере для одного блока в видеосигнале: определение соответствующего порядка кодирования для каждого из множества компонентов разности векторов движения (MVD) по меньшей мере частично на основании информации, закодированной в битовом потоке; считывание каждого из компонентов MVD из битового потока с использованием соответствующего определенного порядка кодирования; и декодирование блока с использованием аффинной модели движения, причем аффинная модель движения по меньшей мере частично характеризуется компонентами MVD.
В некоторых вариантах осуществления способ включает считывание из информации битового потока, идентифицирующей соответствующие значения точности для компонентов MVD, причем порядок кодирования для компонентов MVD определяется частично на основе соответствующих значений точности. Компоненты MVD могут кодироваться с использованием экспоненциального кодирования Голомба, а порядок кодирования может представлять собой порядок экспоненциального кодирования Голомба.
Некоторые варианты осуществления включают способ декодирования видеосигналов из битового потока. Способ включает по меньшей мере для одного блока в видеосигнале: определение соответствующего порядка кодирования для каждого из множества компонентов разности векторов движения (MVD), при этом соответствующий порядок кодирования для компонента MVD определяется на основании (i) точности компонента MVD и (ii) того, относится ли компонент к вращательному движению или движению масштабирования; считывание каждого из компонентов MVD из битового потока с использованием соответствующего определенного порядка кодирования; и декодирование блока с использованием аффинной модели движения, причем аффинная модель движения по меньшей мере частично характеризуется компонентами MVD.
Некоторые варианты осуществления дополнительно включают информацию о порядке считывания информации из битового потока, причем информация о порядке идентифицирует:
первый порядок кодирования, связанный с (i) точностью ¼ пэл и (ii) вращательным движением;
второй порядок кодирования, связанный с (i) точностью ¼ пэл и (ii) масштабирующим движением;
третий порядок кодирования, связанный с (i) точностью 1/16 пэл и (ii) вращательным движением;
четвертый порядок кодирования, связанный с (i) точностью 1/16 пэл и (ii) масштабирующим движением;
пятый порядок кодирования, связанный с (i) точностью 1 пэл и (ii) вращательным движением; и
шестой порядок кодирования, связанный с (i) точностью 1 пэл и (ii) масштабирующим движением.
Соответствующий порядок кодирования выполняется с использованием информации о порядке. Информация о порядке может быть закодирована, например, в наборе параметров изображения или заголовке среза.
В некоторых вариантах осуществления компоненты MVD кодируются с использованием экспоненциального кодирования Голомба, а порядок кодирования представляет собой порядок экспоненциального кодирования Голомба.
В некоторых вариантах осуществления предложен способ кодирования видеосигналов в битовом потоке, причем способ включает по меньшей мере для одного блока в видеосигнале: выбор информации о порядке, причем информация о порядке идентифицирует порядок кодирования для компонента разности векторов движения (MVD) на основании (i) точности компонента MVD и (ii) того, относится ли компонент к вращательному движению или масштабирующему движению; кодирование информации о порядке в битовом потоке; и кодирование блока с использованием аффинной модели движения, причем аффинная модель движения по меньшей мере частично характеризуется множеством компонентов MVD, при этом каждый из множества компонентов MVD кодируется в битовом потоке с использованием порядка кодирования, определяемого информацией о порядке.
В некоторых вариантах осуществления информация о порядке идентифицирует:
первый порядок кодирования, связанный с (i) точностью ¼ пэл и (ii) вращательным движением;
второй порядок кодирования, связанный с (i) точностью ¼ пэл и (ii) масштабирующим движением;
третий порядок кодирования, связанный с (i) точностью 1/16 пэл и (ii) вращательным движением;
четвертый порядок кодирования, связанный с (i) точностью 1/16 пэл и (ii) масштабирующим движением;
пятый порядок кодирования, связанный с (i) точностью 1 пэл и (ii) вращательным движением; и
шестой порядок кодирования, связанный с (i) точностью 1 пэл и (ii) масштабирующим движением.
Определение соответствующего порядка кодирования может осуществляться с использованием информации о порядке. Информация о порядке может быть закодирована, например, в наборе параметров изображения или заголовке среза.
В некоторых вариантах осуществления компоненты MVD кодируются с использованием экспоненциального кодирования Голомба, а порядок кодирования представляет собой порядок экспоненциального кодирования Голомба.
Некоторые варианты осуществления включают энергонезависимый машиночитаемый носитель данных, на котором хранится видеосигнал, закодированный с помощью любого из способов, описанных в настоящем документе. Некоторые варианты осуществления включают энергонезависимый машиночитаемый носитель данных, на котором хранятся инструкции, используемые для выполнения любого из способов, описанных в настоящем документе.
Структура закодированного битового потока
На фиг. 15 представлена схема, иллюстрирующая пример структуры кодированного битового потока. Закодированный битовый поток 1300 состоит из ряда элементов 1301 NAL (слой сетевой абстракции). Элемент NAL может содержать закодированные данные семпла, такие как закодированный срез 1306, или метаданные синтаксиса высокого уровня, такие как данные набора параметров, данные заголовка 1305 среза или данные 1307 информации для дополнительной оптимизации (которые могут называться сообщением SEI). Наборы параметров представляют собой структуры синтаксиса высокого уровня, содержащие существенные элементы синтаксиса, которые могут применяться к множеству уровней битового потока (например, набор 1302 параметров видеосигнала (VPS)), либо могут применяться к кодированной видеопоследовательности в пределах одного уровня (например, набор параметров последовательности 1303 (SPS)), либо могут применяться к ряду кодированных изображений в пределах одной кодированной видеопоследовательности (например, набор 1304 параметров изображения (PPS)). Наборы параметров могут быть отправлены вместе с кодированными изображениями битового видеопотока или отправлены другими средствами (включая внеполосную передачу с использованием надежных каналов, жесткого кодирования и т.п.). Заголовок 1305 среза также представляет собой структуру синтаксиса высокого уровня, которая может содержать некоторую информацию, связанную с изображением, которая имеет относительно малый объем или актуальна только для определенных типов срезов или изображений. Сообщения 1307 SEI содержат информацию, которая может не требоваться для процесса декодирования, но может применяться для различных других целей, таких как синхронизация вывода или отображение изображения, а также обнаружение и маскирование потерь.
Устройства и системы связи
На фиг. 16 представлена схема, иллюстрирующая пример системы связи. Система 1400 связи может содержать кодер 1402, сеть 1404 связи и декодер 1406. Кодер 1402 может обмениваться данными с сетью 1404 посредством соединения 1408, которое может представлять собой проводное соединение или беспроводное соединение. Кодер 1402 может быть аналогичен видеокодеру на основе блоков, показанному на фиг. 2A. Кодер 1402 может содержать однослойный кодек (например, см. фиг. 2A) или многослойный кодек. Декодер 1406 может обмениваться данными с сетью 1404 посредством соединения 1410, которое может представлять собой проводное соединение или беспроводное соединение. Декодер 1406 может быть аналогичен видеодекодеру на основе блоков, показанному на фиг. 2B. Декодер 1406 может содержать однослойный кодек (например, см. фиг. 2B) или многослойный кодек.
Кодер 1402 и/или декодер 1406 могут быть встроены в широкий спектр устройств проводной связи и/или модулей беспроводной передачи/приема (WTRU), таких как, без ограничений, цифровые телевизоры, беспроводные широковещательные системы, сетевой элемент/терминал, серверы, такие как контент-серверы или веб-серверы (например, сервер обработки запросов по протоколу передачи гипертекстовых данных (HTTP), карманные персональные компьютеры (PDA), ноутбуки или настольные компьютеры, планшетные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства для видеоигр, видеоигровые консоли, сотовые или спутниковые радиотелефоны, цифровые мультимедийные проигрыватели и/или т. п.
Сеть 1404 связи может представлять собой сеть связи подходящего типа. Например, сеть 1404 связи может представлять собой систему коллективного доступа, которая предоставляет содержимое, такое как голосовая информация, данные, видео, сообщения, широковещание и т. п., для множества пользователей беспроводной связи. Сеть 1404 связи может быть выполнена с возможностью предоставления множеству пользователей беспроводной связи доступа к такому содержимому посредством совместного использования системных ресурсов, включая ширину полосы беспроводного соединения. Например, в сети 1404 связи может быть использован один или несколько способов доступа к каналам, таких как множественный доступ с кодовым разделением каналов (CDMA), множественный доступ с временным разделением каналов (TDMA), множественный доступ с частотным разделением каналов (FDMA), множественный доступ с ортогональным частотным разделением каналов (OFDMA), ортогональное частотное разделение каналов с мультиплексированием на одной несущей (SC-FDMA) и т.п. Сеть 1404 связи может включать множество подключенных сетей связи. Сеть 1404 связи может включать Интернет и/или одну или более частных коммерческих сетей, таких как сотовые сети, точки доступа в сеть Wi-Fi, сети поставщика услуг Интернета (ISP) и/или т.п.
Следует отметить, что различные аппаратные элементы одного или более описанных вариантов осуществления называются «модулями», которые выполняют (т. е. осуществляют, задействуют и т.п.) различные функции, описанные в настоящем документе применительно к соответствующим модулям. В контексте данного документа модуль включает аппаратное обеспечение (например, один или более процессоров, один или более микропроцессоров, один или более микроконтроллеров, одну или более микросхем, одну или более специализированных интегральных микросхем (ASIC), одну или более программируемых пользователем вентильных матриц (FPGA), одно или более устройств памяти), которое специалисты в данной области считают подходящим для данного варианта осуществления. Каждый описанный модуль может также включать инструкции, исполняемые для выполнения одной или более функций, описанных как выполняемые соответствующим модулем, и отмечено, что эти инструкции могут иметь форму аппаратных (т. е. запрограммированных) команд, инструкций встроенного программного обеспечения, программных команд и/или т. п или включать их и могут храниться на любом подходящем энергонезависимом машиночитаемом носителе или носителях, которые принято называть ОЗУ, ПЗУ и т.д.
Хотя признаки и элементы описаны выше в конкретных комбинациях, специалисту в данной области будет очевидно, что каждый признак или элемент можно использовать отдельно или в любой комбинации с другими признаками и элементами. Кроме того, описанные в настоящем документе способы могут быть реализованы в компьютерной программе, программном обеспечении или программно-аппаратном обеспечении, встроенном в машиночитаемый носитель и предназначенном для исполнения компьютером или процессором. Примеры машиночитаемого носителя информации включают в себя, без ограничений, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), регистр, кэш-память, полупроводниковые устройства хранения данных, магнитные носители, такие как внутренние жесткие диски и съемные диски, магнитооптические носители и оптические носители, такие как диски CD-ROM и цифровые универсальные диски (DVD). Процессор в сочетании с программным обеспечением можно использовать для реализации радиочастотного приемопередатчика, предназначенного для применения в составе WTRU, UE, терминала, базовой станции, RNC и/или любого главного компьютера.

Claims (59)

1. Способ декодирования видеосигнала, включающий:
получение информации, идентифицирующей по меньшей мере первый предиктор вектора движения и второй предиктор вектора движения для блока с аффинным кодированием в видеосигнале;
получение по меньшей мере первой разности векторов движения и второй разности векторов движения;
получение информации, идентифицирующей точность первой и второй разностей векторов движения из первого набора доступных значений точности, причем первый набор доступных значений точности отличается от второго набора доступных значений точности, используемого для неаффинного внешнего кодирования;
генерирование по меньшей мере (i) первого вектора движения контрольной точки на основе первого предиктора вектора движения и первой разности векторов движения и (ii) второго вектора движения контрольной точки на основе второго предиктора вектора движения и второй разности векторов движения; и
генерирование прогнозирования блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения контрольной точки и вторым вектором движения контрольной точки.
2. Способ по п. 1, в котором множество значений точности (пэл) в наборе значений точности включает значения точности 1/4 пэл, 1/16 пэл и 1 пэл.
3. Способ по п. 1, в котором аффинная модель движения представляет собой модель движения с четырьмя параметрами.
4. Способ по п. 1, в котором информацию, идентифицирующую одно из множества значений точности, считывают из битового потока на поблочной основе.
5. Способ по п. 1, дополнительно включающий:
считывание из битового потока остаточного значения для блока; и
восстановление блока путем прибавления остаточного значения к прогнозированию блока.
6. Устройство видеодекодера, включающее по меньшей мере один процессор, выполненный с возможностью по меньшей мере:
получения информации, идентифицирующей по меньшей мере первый предиктор вектора движения и второй предиктор вектора движения для блока с аффинным кодированием в видеосигнале;
получения по меньшей мере первой разности векторов движения и второй разности векторов движения;
получения информации, идентифицирующей точность первой и второй разностей векторов движения из первого набора доступных значений точности, причем первый набор доступных значений точности отличается от второго набора доступных значений точности, используемого для неаффинного внешнего кодирования;
генерирования по меньшей мере (i) первого вектора движения контрольной точки на основе первого предиктора вектора движения и первой разности векторов движения и (ii) второго вектора движения контрольной точки на основе второго предиктора вектора движения и второй разности векторов движения; и
генерирования прогнозирования блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения контрольной точки и вторым вектором движения контрольной точки.
7. Устройство по п. 6, в котором множество значений точности (пэл) в первом наборе доступных значений точности включает значения точности 1/4 пэл, 1/16 пэл и 1 пэл.
8. Устройство по п. 6, в котором аффинная модель движения представляет собой модель движения с четырьмя параметрами.
9. Устройство по п. 6, в котором аффинная модель движения представляет собой модель движения с шестью параметрами, дополнительно включающую:
получение информации, идентифицирующей третий предиктор вектора движения;
получение третьей разности векторов движения, имеющей идентифицированную точность; и
генерирование третьего вектора движения контрольной точки на основе третьего предиктора вектора движения и третьей разности векторов движения;
при этом аффинная модель движения характеризуется первым вектором движения контрольной точки, вторым вектором движения контрольной точки и третьим вектором движения контрольной точки.
10. Устройство по п. 6, в котором информацию, идентифицирующую одно из множества значений точности, считывают из битового потока на поблочной основе.
11. Устройство по п. 6, дополнительно включающее округление по меньшей мере одного из предикторов вектора движения до идентифицированной точности.
12. Устройство по п. 6, в котором каждый из векторов движения контрольной точки генерируется посредством прибавления соответствующей разности векторов движения к соответствующему предиктору вектора движения.
13. Устройство по п. 6, в котором генерирование прогнозирования блока включает:
определение соответствующего вектора движения подблоков для каждого из множества подблоков блока с использованием аффинной модели движения; и
генерирование внешнего прогнозирования каждого из подблоков с использованием соответствующего вектора движения подблоков.
14. Способ кодирования видеосигнала, включающий:
получение информации, идентифицирующей по меньшей мере первый предиктор вектора движения и второй предиктор вектора движения для блока с аффинным кодированием в видеосигнале;
получение по меньшей мере первой разности векторов движения и второй разности векторов движения;
получение информации, идентифицирующей точность первой и второй разностей векторов движения из первого набора доступных значений точности, причем первый набор доступных значений точности отличается от второго набора доступных значений точности, используемого для неаффинного внешнего кодирования;
генерирование по меньшей мере (i) первого вектора движения контрольной точки на основе первого предиктора вектора движения и первой разности векторов движения и (ii) второго вектора движения контрольной точки на основе второго предиктора вектора движения и второй разности векторов движения; и
генерирование прогнозирования блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения контрольной точки и вторым вектором движения контрольной точки.
15. Способ по п. 14, в котором множество значений точности (пэл) в наборе значений точности включает значения точности 1/4 пэл, 1/16 пэл и 1 пэл.
16. Способ по п. 14, в котором аффинная модель движения представляет собой модель движения с четырьмя параметрами.
17. Способ по п. 14, в котором информацию, идентифицирующую одно из множества значений точности, считывают из битового потока на поблочной основе.
18. Устройство видеокодера, включающее по меньшей мере один процессор, выполненный с возможностью по меньшей мере:
получения информации, идентифицирующей по меньшей мере первый предиктор вектора движения и второй предиктор вектора движения для блока с аффинным кодированием в видеосигнале;
получения по меньшей мере первой разности векторов движения и второй разности векторов движения;
получения информации, идентифицирующей точность первой и второй разностей векторов движения из первого набора доступных значений точности, причем первый набор доступных значений точности отличается от второго набора доступных значений точности, используемого для неаффинного внешнего кодирования;
генерирования по меньшей мере (i) первого вектора движения контрольной точки на основе первого предиктора вектора движения и первой разности векторов движения и (ii) второго вектора движения контрольной точки на основе второго предиктора вектора движения и второй разности векторов движения; и
генерирования прогнозирования блока с использованием аффинной модели движения, причем аффинная модель движения характеризуется по меньшей мере первым вектором движения контрольной точки и вторым вектором движения контрольной точки.
19. Устройство по п. 18, в котором множество значений точности (пэл) в первом наборе доступных значений точности включает значения точности 1/4 пэл, 1/16 пэл и 1 пэл.
20. Устройство по п. 18, в котором аффинная модель движения представляет собой модель движения с четырьмя параметрами.
21. Устройство по п. 18, в котором аффинная модель движения представляет собой модель движения с шестью параметрами, дополнительно включающую:
получение информации, идентифицирующей третий предиктор вектора движения;
получение третьей разности векторов движения, имеющей идентифицированную точность; и
генерирование третьего вектора движения контрольной точки на основе третьего предиктора вектора движения и третьей разности векторов движения;
при этом аффинная модель движения характеризуется первым вектором движения контрольной точки, вторым вектором движения контрольной точки и третьим вектором движения контрольной точки.
22. Устройство по п. 18, в котором информацию, идентифицирующую одно из множества значений точности, считывают из битового потока на поблочной основе.
23. Устройство по п. 18, дополнительно включающие округление по меньшей мере одного из предикторов вектора движения до идентифицированной точности.
24. Устройство по п. 18, в котором каждый из векторов движения контрольной точки генерируется посредством прибавления соответствующей разности векторов движения к соответствующему предиктору вектора движения.
25. Устройство по п. 18, в котором генерирование прогнозирования блока включает:
определение соответствующего вектора движения подблоков для каждого из множества подблоков блока с использованием аффинной модели движения; и
генерирование внешнего прогнозирования каждого из подблоков с использованием соответствующего вектора движения подблоков.
RU2021108183A 2018-08-29 2019-08-28 Адаптивная точность вектора движения для кодирования видеосигналов на основе аффинной модели движения RU2803479C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US62/724,500 2018-08-29
US62/773,069 2018-11-29
US62/786,768 2018-12-31

Publications (2)

Publication Number Publication Date
RU2021108183A RU2021108183A (ru) 2022-09-26
RU2803479C2 true RU2803479C2 (ru) 2023-09-14

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150195562A1 (en) * 2014-01-09 2015-07-09 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
RU2580054C2 (ru) * 2011-07-01 2016-04-10 Квэлкомм Инкорпорейтед Кодирование видео, используя адаптивное разрешение вектора движения
WO2017157259A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
WO2018064524A1 (en) * 2016-09-29 2018-04-05 Qualcomm Incorporated Motion vector coding for video coding
US20180098089A1 (en) * 2016-10-04 2018-04-05 Qualcomm Incorporated Adaptive motion vector precision for video coding
WO2018065296A1 (en) * 2016-10-03 2018-04-12 Thomson Licensing Method and apparatus for encoding and decoding motion information

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
RU2580054C2 (ru) * 2011-07-01 2016-04-10 Квэлкомм Инкорпорейтед Кодирование видео, используя адаптивное разрешение вектора движения
US20150195562A1 (en) * 2014-01-09 2015-07-09 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
WO2017157259A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
WO2018064524A1 (en) * 2016-09-29 2018-04-05 Qualcomm Incorporated Motion vector coding for video coding
WO2018065296A1 (en) * 2016-10-03 2018-04-12 Thomson Licensing Method and apparatus for encoding and decoding motion information
US20180098089A1 (en) * 2016-10-04 2018-04-05 Qualcomm Incorporated Adaptive motion vector precision for video coding

Similar Documents

Publication Publication Date Title
US12069275B2 (en) Adaptive motion vector precision for affine motion model based video coding
AU2023202182B2 (en) Methods and apparatus for reducing the coding latency of decoder-side motion refinement
KR102612975B1 (ko) 광류를 사용한 인터 예측 개선을 위한 시스템, 장치 및 방법
JP7553659B2 (ja) 双方向オプティカルフローのための複雑性低減およびビット幅制御
US20240107024A1 (en) Affine motion model derivation method
US20240196004A1 (en) Affine motion estimation for affine model-based video coding
JP7552988B2 (ja) オプティカルフローによる動き補償のための精度精緻化
RU2803479C2 (ru) Адаптивная точность вектора движения для кодирования видеосигналов на основе аффинной модели движения
RU2811563C2 (ru) Системы, устройства и способы для уточнения интерпрогнозирования с помощью оптического потока
RU2803895C2 (ru) Уточнение прогнозирования с компенсацией движения с помощью оптического потока
US20220132136A1 (en) Inter prediction bandwidth reduction method with optical flow compensation