СПОСОБ И УСТРОЙСТВО ДЛЯ УЛУЧШЕННОГО НЕЯВНОГО ВЫБОРА ПРЕОБРАЗОВАНИЯ
METHOD AND DEVICE FOR IMPROVED IMPLICIT CONVERSION SELECTION

[0001] Настоящее изобретение испрашивает приоритет патентной заявки США №16/883,545, "METHOD AND APPARATUS FOR IMPROVED IMPLICIT TRANSFORM SELECTION", поданной 26 мая 2020 г., которая испрашивает приоритет предварительной заявки США №62/858,887, "IMPLICIT TRANSFORM SELECTION", поданной 07 июня 2019 г. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее изобретение представляет набор усовершенствованных технологий видеокодирования. В частности, предложен модифицированный подход к неявному указанию преобразования.
УРОВЕНЬ ТЕХНИКИ
[0003] Описание уровня техники приведено здесь с целью представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники, лежащим в основе настоящего изобретения.
[0004] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.
[0005] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, так чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. Достижимая степень сжатия может отражать, что более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.
[0006] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.
[0007] Технологии видеокодека могут включать в себя методы, известные как внутреннее кодирование. При внутреннем (интра-) кодировании значения отсчетов представляются без ссылки на отсчеты или другие данные из ранее реконструированных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, изображение называется интра-изображением. Интра-изображения и их производные, например, изображения, полученные в режиме независимого обновления декодера, могут использоваться для сброса состояния декодера, что позволяет использовать их как первое изображение в битовом потоке кодированного видео и видеосеансе, или как неподвижное изображение. Отсчеты интра-блока могут подвергаться преобразованию, и коэффициенты преобразования могут квантоваться до энтропийного кодирования. Внутреннее предсказание может быть методом минимизации значений отсчетов в области предварительного преобразования. В ряде случаев, чем меньше значение DC (постоянной составляющей) после преобразования, и чем меньше коэффициенты АС (переменных составляющих), тем меньше битов требуется при данном размере шага квантования для представления блока после энтропийного кодирования.
[0008] Традиционное внутреннее кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует внутреннего предсказания. Однако некоторые более современные технологии сжатия видео включают в себя методы, которые пытаются, например, из данных окружающих отсчетов и/или метаданных, полученных в ходе кодирования/декодирования пространственно соседних и предшествующих в порядке декодирования, блоков данных. Такие методы далее именуются методами "внутреннего предсказания". Заметим, что по меньшей мере в некоторых случаях внутреннее предсказание осуществляется только с использованием опорных данных из текущего изображения, подлежащего реконструкции, но не из опорных изображений.
[0009] Может существовать много разных форм внутреннего предсказания. Когда в данной технологии видеокодирования может использоваться более одного из таких методов, используемый метод может кодироваться в режиме внутреннего предсказания. В некоторых случаях, режимы могут иметь подрежимы и/или параметры, которые могут кодироваться по отдельности или включаться в кодовое слово режима. Использование того или иного кодового слова для данной комбинации режимов/подрежимов/параметров может оказывать влияние на выигрыш в эффективности кодирования посредством внутреннего предсказания и, следовательно, на технологию энтропийного кодирования, используемую для перевода кодовых слов в битовый поток.
[0010] Определенный режим внутреннего предсказания впервые был задан в Н.264, уточнен в Н.265, и дополнительно уточнен в более современных технологиях кодирования, например, модели совместного исследования (JEM, joint exploration model), универсального видеокодирования (VVC, versatile video coding) и наборе эталонов (BMS, benchmark set). Блок предсказателя может формироваться с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения соседних отсчетов копируются в блок предсказателя согласно направлению. Ссылка на используемое направление может кодироваться в битовом потоке или может сама предсказываться.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0011] Аспекты изобретения предусматривают способы и устройства для кодирования/декодирования видеосигнала. В некоторых примерах устройство для видеодекодирования включает в себя схему прием и схему обработки.
[0012] Согласно аспекту изобретения, предусмотрен способ видеодекодирования для декодера. Согласно способу, информацию сигнализации блока преобразования получают из битового потока кодированного видео. Кроме того, производится определение, указывает ли информация сигнализации блока преобразования неявную схему преобразования, и является ли по меньшей мере одно из низкочастотного неразделяемого преобразования (LFNST, low-frequency non-separable transform) и режима внутреннего предсказания на матричной основе (MIP, matrix-based intra prediction) недействительным. В ответ на определение, что информация сигнализации блока преобразования указывает неявную схему преобразования, и по меньшей мере одно из LFNST и MIP сигнализируется как недействительное, тип первичного преобразования определяется на основании размера блока кодирования (CU, coding block unit), и первичное преобразование осуществляется для блока преобразования, полученного делением CU в соответствии с определенным типом первичного преобразования.
[0013] В некоторых вариантах осуществления, для определения типа первичного преобразования, можно производить определение, разрешен ли режим пропуска преобразования. В ответ на определение, что режим пропуска преобразования не разрешен, тип преобразования DST-7 может определяться для горизонтального преобразования для блока преобразования, если ширина CU больше или равна Т1 и меньше или равна Т2. Тип преобразования DCT-2 может определяться для горизонтального преобразования для блока преобразования, если ширина CU меньше Т1 или больше Т2. Тип преобразования DST-7 может определяться для вертикального преобразования для блока преобразования, если высота CU больше или равна Т1 и меньше или равна Т2. Тип преобразования DCT-2 может определяться для вертикального преобразования для блока преобразования, если высота CU меньше Т1 или больше Т2.
[0014] В некоторых вариантах осуществления, Т1 может быть равно 2 пикселям, 4 пикселям или 8 пикселям, и Т2 равно одному из 4 пикселей, 8 пикселей, 16 пикселей, или 32 пикселей.
[0015] В ответ на определение, что информация сигнализации блока преобразования указывает неявную схему преобразования, и по меньшей мере один из LFNST или MIP сигнализируется как TRUE, в первом примере, первый тип преобразования DCT-2 может определяться для блока преобразования. Во втором примере, второй тип преобразования, который не является DCT-7, может определяться для блока преобразования, где второй тип преобразования включает в себя по меньшей мере одно из DST-1, DCT-5, составного ортонормального преобразования (СОТ, compound orthonormal transform) или преобразования Карунена-Лева.
[0016] В ответ на определение, что информация сигнализации блока преобразования указывает неявную схему преобразования, и MIP сигнализируется как FALSE, что указывает, что MIP не применяется для блока преобразования, тип преобразования DST-7 может определяться для горизонтального преобразования для блока преобразования, если ширина CU больше или равна Т1 и меньше или равна Т2. Тип преобразования DCT-2 может определяться для горизонтального преобразования для блока преобразования, если ширина CU меньше Т1 или больше Т2. Тип преобразования DST-7 может определяться для вертикального преобразования для блока преобразования, если высота CU больше или равна Т1 и меньше или равна Т2. Тип преобразования DCT-2 может определяться для вертикального преобразования для блока преобразования, если высота CU меньше Т1 или больше Т2.
[0017] В первом примере, Т1 может быть равно 2 пикселям, и Т2 может быть равно одному из 4 пикселей или 8 пикселей. Во втором примере, Т1 может быть равно 4 пикселям, и Т2 может быть равно одному из 4 пикселей или 8 пикселей. В третьем примере, Т1 может быть равно 8 пикселям, и Т2 может быть равно одному из 8 пикселей, 16 пикселей или 32 пикселей. В четвертом примере, Т1 может быть равно 16 пикселей, и Т2 может быть равно одному из 16 пикселей или 32 пикселей.
[0018] В некоторых вариантах осуществления, в ответ на определение, что информация сигнализации блока преобразования указывает неявную схему преобразования, и оба LFNST и MIP сигнализируются как FALSE, что указывает, что ни LFNST, ни MIP не применяется для блока преобразования, тип преобразования DST-7 может определяться для горизонтального преобразования для блока преобразования, если ширина CU больше или равна Т1 и меньше или равна Т2. Тип преобразования DCT-2 может определяться для горизонтального преобразования для блока преобразования, если ширина CU меньше Т1 или больше Т2. Тип преобразования DST-7 может определяться для вертикального преобразования для блока преобразования, если высота CU больше или равна Т1 и меньше или равна Т2. Тип преобразования DCT-2 может определяться для вертикального преобразования блока преобразования, если высота CU меньше Т1 или больше Т2.
[0019] Согласно другому аспекту изобретения, предусмотрен способ видеодекодирования для декодера. Согласно способу, информация сигнализации блока преобразования получается из битового потока кодированного видео. Тип первичного преобразования определяется на основании информации сигнализации блока преобразования и размера блока кодирования (CU). Первичное преобразование осуществляется для блока преобразования, полученного делением CU, в соответствии с определенным типом первичного преобразования.
[0020] В некоторых вариантах осуществления, для определения типа первичного преобразования, тип преобразования DST-7 может определяться для горизонтального преобразования для блока преобразования, если ширина CU больше или равна Т1 и меньше или равна Т2. Тип преобразования на основании сигнализируемого индекса из информации сигнализации блока преобразования может определяться для горизонтального преобразования блока преобразования, если ширина CU больше Т2 и меньше или равна Т3. Сигнализируемый индекс указывает, что тип преобразования является одним из DCT-2 или DST-7. Тип преобразования DCT-2 может определяться для горизонтального преобразования для блока преобразования, если ширина CU меньше Т1 или больше Т3.
[0021] В некоторых вариантах осуществления, для определения типа первичного преобразования, тип преобразования DST-7 может определяться для вертикального преобразования для блока преобразования, если высота CU больше или равна Т1 и меньше или равна Т2. Тип преобразования на основании сигнализируемого индекса из информации сигнализации блока преобразования может определяться для вертикального преобразования для блока преобразования, если высота CU больше Т2 и меньше или равна T3. Сигнализируемый индекс указывает, что тип преобразования является одним из DCT-2 или DST-7. Тип преобразования DCT-2 может определяться для вертикального преобразования для блока преобразования, если высота CU меньше Т1 или больше T3.
[0022] В некоторых вариантах осуществления, Т1 может быть равно одному из 2 пикселей, 4 пикселей или 8 пикселей. Т2 может быть равно одному из 4 пикселей, 8 пикселей, 16 пикселей или 32 пикселей, и T3 может быть равно одному из 8 пикселей, 16 пикселей, 32 пикселей или 64 пикселей.
[0023] Аспекты изобретения также предусматривают компьютерно-считываемый носитель, где хранятся инструкции, которые при выполнении компьютером для видеодекодирования предписывают компьютеру осуществлять способ видеодекодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0024] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:
[0025] фиг. 1 - упрощенная блок-схема системы (100) связи в соответствии с вариантом осуществления;
[0026] фиг. 2 - упрощенная блок-схема системы (200) связи в соответствии с вариантом осуществления;
[0027] фиг. 3 - упрощенная блок-схема декодера в соответствии с вариантом осуществления;
[0028] фиг. 4 - упрощенная блок-схема кодера в соответствии с вариантом осуществления;
[0029] фиг. 5 - блок-схема кодера в соответствии с другим вариантом осуществления;
[0030] фиг. 6 - блок-схема декодера в соответствии с другим вариантом осуществления;
[0031] фиг. 7A-7D - четыре иллюстративных режима преобразования подблоков;
[0032] фиг. 8 - первое иллюстративное деление внутренне предсказанного блока яркости на основании режима кодирования с интра-разбиением (ISP, Intra Sub-Partitions);
[0033] фиг. 9 - второе иллюстративное деление внутренне предсказанного блока яркости на основании режима кодирования с интра-разбиением (ISP);
[0034] фиг. 10 - сокращенное вторичное преобразование (RST, reduced secondary transform) с использованием ядра вторичного преобразования 16×64;
[0035] фиг. 11 - сокращенное вторичное преобразование (RST) с использованием ядра вторичного преобразования 16×48;
[0036] фиг. 12А - прямое сокращенное преобразование;
[0037] фиг. 12 В - обратное сокращенное преобразование;
[0038] фиг. 13А - первый вариант осуществления RST8x8;
[0039] фиг. 13 В - второй вариант осуществления RST8x8;
[0040] фиг. 14 - режим внутреннего предсказания на матричной основе (MIP);
[0041] фиг. 15 - блок-схема операций примера процесса согласно некоторым вариантам осуществления изобретения;
[0042] фиг. 16 - схема компьютерной системы в соответствии с вариантом осуществления.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0043] На фиг. 1 показана упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего изобретения. Система (100) связи включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (150). Например, система (100) связи включает в себя первую пару оконечных устройств (110) и (120), соединенных между собой через сеть (150). В примере, приведенном на фиг. 1, первая пара оконечных устройств (110) и (120) осуществляет однонаправленную передачу данных. Например, оконечное устройство (110) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (110)), для передачи в другое оконечное устройство (120) через сеть (150). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (120) может принимать кодированные видеоданные из сети (150), декодировать кодированные видеоданные для восстановления видеоизображений и отображения видеоизображений согласно восстановленным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0044] В другом примере, система (100) связи включает в себя вторую пару оконечных устройств (130) и (140) которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (130) и (140) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (130) и (140) через сеть (150). Каждое оконечное устройство из оконечных устройств (130) и (140) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (130) и (140), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно восстановленным видеоданным.
[0045] В примере, приведенном на фиг. 1, оконечные устройства (110), (120), (130) и (240) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (110), (120), (130) и (140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0046] На фиг. 2 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.
[0047] Система потоковой передачи может включать в себя подсистему (213) захвата, которая может включать в себя источник (201) видеосигнала, например, цифровую камеру, создающую, например, поток (202) видеоизображений, не подвергнутых сжатию. Например, поток (202) видеоизображений включает в себя отсчеты, взятые цифровой камерой. Поток (202) видеоизображений, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (204) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (220), которое включает в себя видеокодер (203), подключенный к источнику (201) видеосигнала. Видеокодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (204) (или битовый поток (204) кодированного видео), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком (202) видеоизображений, могут храниться на потоковом сервере (205) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (406) и (208) на фиг. 2, могут осуществлять доступ к потоковому серверу (205) для извлечения копий (207) и (209) кодированных видеоданных (204). Клиентская подсистема (206) может включать в себя видеодекодер (210), например, в электронном устройстве (230). Видеодекодер (210) декодирует входящую копию (207) кодированных видеоданных и создает исходящий поток (211) видеоизображений, который может визуализироваться на дисплее (212) (например, отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (204), (207) и (209) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-Т Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под официальным названием "универсальное видеокодирование" (VVC, универсальное видеокодирование). Раскрытое изобретение может использоваться в контексте VVC.
[0048] Заметим, что электронные устройства (220) и (230) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (220) может включать в себя видеодекодер (не показан), и электронное устройство (230) также может включать в себя видеокодер (не показан).
[0049] На фиг. 3 показана блок-схема видеодекодера (310) согласно варианту осуществления настоящего изобретения. Видеодекодер (310) может входить в состав электронного устройства (330). Электронное устройство (330) может включать в себя приемник (331) (например, приемные схемы). Видеодекодер (310) может использоваться вместо видеодекодера (210) в примере, приведенном на фиг. 2.
[0050] Приемник (331) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (310); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (301), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (331) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие и объекты (не показаны). Приемник (331) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (515) может быть подключена между приемником (331) и энтропийным декодером / анализатором (320) (далее "анализатором (320)"). В некоторых вариантах применения буферная память (315) входит в состав видеодекодера (310). В других она может не входить в состав видеодекодера (310) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (310), например, для борьбы с джиттером сети, помимо другой буферной памяти (315) в составе видеодекодера (310), например, для управления временем проигрывания. Когда приемник (331) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (315) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (315) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (310).
[0051] Видеодекодер (310) может включать в себя анализатор (320) для реконструкции символов (321) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (310), и возможно информацию для управления устройством визуализации, например, устройством (312) визуализации (например, отображающим экраном), которое не является неотъемлемой частью электронного устройства (330), но может быть подключено к электронному устройству (330), как показано на фиг. 3. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, блоки кодирования (CU, Coding Units), блоки (blocks), блоки преобразования (TU, Transform Units), блоки предсказания (PU, Prediction Units) и т.д. Анализатор (320) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0052] Анализатор (320) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (315), для создания символов (321).
[0053] Для реконструкции символов (321) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и множественными модулями для простоты не показан.
[0054] Помимо ранее упомянутых функциональных блоков, видеодекодер (310) может принципиально делиться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное деление на нижеперечисленные функциональные модули.
[0055] Первым модулем является модуль (351) масштабирования / обратного преобразования. Модуль (351) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Модуль (351) масштабирования / обратного преобразования может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).
[0056] В ряде случаев, выходные отсчеты блока (351) масштабирования / обратного преобразования могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (352) предсказания внутри изображения. В ряде случаев модуль (352) предсказания внутри изображения генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера (358) текущего изображения. Буфер (358) текущего изображения буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (355) в ряде случаев добавляет, для каждого отсчета, информацию предсказания, сгенерированную модулем (352) внутреннего предсказания, в информацию выходных отсчетов, обеспеченную модулем (351) масштабирования / обратного преобразования.
[0057] В других случаях выходные отсчеты модуля (351) масштабирования / обратного преобразования могут относиться к внешне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль (353) предсказания с компенсацией движения может осуществлять доступ к памяти (357) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля (351) масштабирования / обратного преобразования (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти (357) опорных изображений, откуда модуль (353) предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю (553) предсказания с компенсацией движения, в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (357) опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.
[0058] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле (356) контурного фильтра. Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую битовым потоком кодированного видео) и становиться доступными модулю (356) контурного фильтра в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.
[0059] Модуль (356) контурного фильтра может выдавать поток отсчетов, который может поступать на устройство (312) визуализации, а также сохраняться в памяти (357) опорных изображений для использования в будущем предсказании между изображениями.
[0060] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (320)), буфер (358) текущего изображения может становиться частью памяти (357) опорных изображений, и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.
[0061] Видеодекодер (310) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.
[0062] Согласно варианту осуществления, приемник (331) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (310) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямое коррекции ошибок и т.д.
[0063] На фиг. 4 показана блок-схема видеокодера (403) согласно варианту осуществления настоящего изобретения. Видеокодер (403) входит в состав электронного устройства (420). Электронное устройство (420) включает в себя передатчик (440) (например, передающую схему). Видеокодер (403) может использоваться вместо видеокодера (203) в примере, приведенном на фиг. 2.
[0064] Видеокодер (403) может принимать отсчеты видео от источника (401) видеосигнала (который не входит в состав электронного устройства (420) в примере, показанном на фиг. 4), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (403). В другом примере источник (401) видеосигнала входит в состав электронного устройства (420).
[0065] Источник (401) видеосигнала может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (403) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например, 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (401) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В система видеоконференцсвязи источником (401) видеосигнала может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание касается отсчетов.
[0066] Согласно варианту осуществления, видеокодер (403) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). В некоторых вариантах осуществления контроллер (450) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (450), могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизации скорости-искажения, …), размер изображения, схему групп изображений (GOP), максимальную зону поиска вектора движения и т.д. Контроллер (450) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (403), оптимизированному для той или иной конструкции системы.
[0067] В некоторых вариантах осуществления видеокодер (403) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя кодер (430) источника (например, отвечающий за создание символов, например, потока символов, на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (433), встроенный в видеокодер (403). Декодер (433) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти (434) опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.
[0068] "Локальный" декодер (433) может действовать таким же образом, как "удаленный" декодер, например, видеодекодер (310), подробно вышеописанный со ссылкой на фиг. 5. Однако, опять же, согласно фиг. 3, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и анализатором (420) может осуществляться без потерь, части энтропийного декодирования видеодекодера (410), включающие в себя буферную память (415) и анализатор (420), могут быть не полностью реализованы в локальном декодере (433).
[0069] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.
[0070] Согласно некоторым примерам, в ходе работы кодер (430) источника может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина (432) кодирования кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.
[0071] Локальный видеодекодер (433) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных кодером (430) источника. Операции машины (432) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 4), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти (434) опорных изображений. Таким образом, видеокодер (403) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).
[0072] Предсказатель (435) может осуществлять поиски предсказания для машины (432) кодирования. Таким образом, для нового изображения, подлежащего кодированию, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе "блоки отсчетов - пиксельные блоки" для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (434) опорных изображений.
[0073] Контроллер (450) может управлять операциями кодирования кодера (430) источника, включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0074] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер (445) переводит символы, генерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно таким технологиям как, например, кодирование по Хаффману, кодирование с переменной длиной серии, арифметическое кодирование и т.д.
[0075] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданные энтропийным кодером (445), для подготовки к передаче через канал (460) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (403) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0076] Контроллер (450) может управлять работа видеокодера (403). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:
[0077] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.
[0078] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0079] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредоказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.
[0080] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[0081] Видеокодер (403) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (403) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.
[0082] Согласно варианту осуществления, передатчик (440) может передавать дополнительные данные с кодированным видео. Кодер (430) источника может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.
[0083] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое внутренним или интра- предсказанием) использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется текущим изображением, разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который именуется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множественных опорных изображений.
[0084] В некоторых вариантах осуществления, метод двойного предсказания может использоваться в предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого опорного блока и второго опорного блока.
[0085] Дополнительно, метод режима объединения может использоваться в предсказании между изображениями для повышения эффективности кодирования.
[0086] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения, осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на пакеты дерева кодирования (CTU, coding tree units) для сжатия, CTU в изображении имеют одинаковый размер, например 64×64 пикселя, 32×32 пикселя или 16×16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или несколько блоков кодирования (CU). Например, CTU размером 64×64 пикселя может делиться на один CU размером 64×64 пикселя или 4 CU размером 32×32 пикселя или 16 CU размером 16×16 пикселей. Например, каждый CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на один или более блоков предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. В целом, каждый PU включает в себя блок (РВ) предсказания яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется по блокам предсказания. Если взять блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.
[0087] На фиг. 5 показана схема видеокодера (503) согласно другому варианту осуществления изобретения. Видеокодер (503) выполнен с возможностью приема блока обработки (например, блока предсказания) значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое составляет часть кодированной видеопоследовательности. Например, видеокодер (503) используется вместо видеокодера (203) в примере, приведенном на фиг. 2.
[0088] В примере HEVC видеокодер (503) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8×8 отсчетов и т.п. Видеокодер (503) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интеррежиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (503) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (503) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования, режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (503) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.
[0089] В примере, приведенном на фиг. 5, видеокодер (503) включает в себя интер-кодер (530), интра-кодер (522), вычислитель (523) остатка, переключатель (526), кодер (524) остатка, общий контроллер (521) и энтропийный кодер (725), соединенные друг с другом как показано на фиг. 5.
[0090] Интер-кодер (530) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.
[0091] Интра-кодер (522) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (522) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.
[0092] Общий контроллер (721) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. Например, общий контроллер (721) определяет режим блока и выдает сигнал управления на переключатель (726) на основе режима. Например, когда режим является интра-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата интра-режима для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата внешнего предсказания для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внешнего предсказания и включения информации внешнего предсказания в битовый поток.
[0093] Вычислитель (523) остатка выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (522) или интер-кодера (530). Кодер (524) остатка выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка для генерации коэффициентов преобразования. Например, кодер (524) остатка выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (503) также включает в себя декодер (528) остатка. Декодер (528) остатка выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (522) и интер-кодером (530). Например, интеркодер (530) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (522) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.
[0094] Энтропийный кодер (525) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (525) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (725) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что, согласно раскрытому изобретению, при кодировании блока в подрежиме объединения любого из интер-режима и режима двойного предсказания, информация остатка отсутствует.
[0095] На фиг. 6 показана схема видеодекодера (610) согласно другому варианту осуществления изобретения. Видеодекодер (610) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной
видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (610) используется вместо видеодекодера (210) в примере, приведенном на фиг. 2.
[0096] В примере, приведенном на фиг. 6, видеодекодер (610) включает в себя энтропийный декодер (671), интер-декодер (680), декодер (673) остатка, модуль (674) реконструкции и интра-декодер (672), соединенные друг с другом как показано на фиг. 6.
[0097] Энтропийный декодер (671) может быть выполнен с возможностью реконструкции, из кодированного изображения, некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (672) или интер-декодером (680), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (680); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает на интра-декодер (672). Информация остатка может подвергаться обратному квантованию и поступать на декодер (673) остатка.
[0098] Интер-декодер (680) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.
[0099] Интра-декодер (672) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.
[0100] Декодер (673) остатка выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (673) остатка также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (671) (путь данных не показан, поскольку это может быть только информация управления малого объема).
[0101] Модуль (674) реконструкции выполнен с возможностью объединения, в пространственной области, остатка на выходе декодера (673) остатка и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., может осуществляться для повышения визуального качества.
[0102] Заметим, что видеокодеры (203), (403) и (503) и видеодекодеры (210), (410) и (610) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления, видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (203), (403) и (503) и видеодекодеры (210), (310) и (610) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.
[0103] Аспекты изобретения предусматривают набор усовершенствованных технологий видеокодирования. В частности, предложен модифицированный подход к неявному преобразованию.
[0104] В сообществе специалистов по видеокодированию, ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) опубликовали в 2013 г. стандарт H.265/HEVC (высокопроизводительное видеокодирование, High Efficiency Video Coding) (вариант 1), 2014 (вариант 2), 2015 (вариант 3) и 2016 (вариант 4). Затем ITU-T и ISO/IEC изучали возможную необходимость в стандартизации перспективной технологии видеокодирования, где возможности сжатия значительно выше, чем в стандарте HEVC (включая его расширения). В октябре 2017 г. ITU-T и ISO/IEC выпустили "Объединенный конкурс проектов по сжатию видео за пределами HEVC" [Joint Call for Proposals on Video Compression with Capability beyond HEVC] (CfP). К 15 февраля 2018 г. было подано всего 22 ответа CfP по стандартному динамическому диапазону (SDR, standard dynamic range), 12 ответов CfP по высокому динамическому диапазону (HDR, high dynamic range) и 12 ответов CfP по 360 категориям видео, соответственно. В апреле 2018 г. все принятые ответы CfP были оценены на 122 MPEG / 10-ой встрече JVET (Объединенной исследовательской группы по видео Объединенной экспертной группы по видео, Joint Video Exploration Team - Joint Video Expert Team). JVET официально положила начало стандартизации видеокодирования за пределами HEVC нового поколения (т.е. универсального видеокодирования (VVC)) и современному варианту VTM (испытательной модели VVC, VVC Test Model) (т.е. VTM3).
[0105] В HEVC первичные преобразования могут представлять собой 4-точечное, 8-точечное, 16-точечное и 32-точечное DCT-2, и матрицы ядра преобразования могут быть представлены с использованием 8-битовых целых чисел, т.е. 8-битового ядра преобразования. Матрицы ядра преобразования меньшего DCT-2 составляют часть большего DCT-2, как показано ниже.
Преобразование 4×4
Преобразование 8×8
Пеобразование 16×16
Преобразование 32×32
[0106] Ядра DCT-2 демонстрируют симметричные/антисимметричные характеристики. Таким образом, так называемая реализация "частичная бабочка" поддерживается для уменьшения количества счетчиков операции (операций умножения, сложения/вычитания, сдвигов), и идентичные результаты умножения матриц можно получать с использованием частичной бабочки.
[0107] В VVC предусмотрены два преобразования подблоков. Первым преобразованием подблоков является SVT или SBT. В JVET-J0024, JVET-K0139 и JVET-L0358 предложена схема пространственно изменяющегося преобразования (SVT, spatially varying transform). В SVT, для остатков внешнего предсказания, в блоке кодирования может существовать только остаточный блок. Поскольку остаточный блок меньше размера блока кодирования, размер преобразования в SVT меньше размера блока кодирования. Для области, не покрытой остаточным блоком или преобразованием, можно предположить нулевой остаток.
[0108] В частности, в JVET-L0358, SVT также может именоваться преобразованием подблоков (SBT, Sub-block Transform). Типы подблоков (SVT-H, SVT-V), размеры и позиции (левая половина, левая четверть, правая половина, правая четверть, верхняя половина, верхняя четверть, нижняя половина, нижняя четверть) поддерживаемые в SBT могут быть показаны на фиг. 7A-7D. На фиг. 7A-7D показаны типы подблоков (SVT-H, SVT-V), и позиции (левая половина, правая половина, верхняя половина, нижняя половина), поддерживаемые в SBT, соответственно. Заштрихованная область, обозначенная буквой "А", является остаточным блоком с преобразованием, и другая область предполагается нулевым остатком без преобразования.
[0109] Вторым преобразованием подблоков является интра-разбиение (ISP). Режим кодирования ISP делит внутренне предсказанные блоки яркости вертикально или горизонтально на 2 или 4 части в зависимости от размеров блока, как показано в таблице 1. Фиг. 8 и фиг. 9 демонстрируют примеры двух возможностей. На фиг. 8 показано иллюстративное деление блока 4×8 или блока 8×4. На фиг. 9 показано иллюстративное деление блока, который не является одним из блока 4×8, блока 8×4 или блока 4×4. Все части удовлетворяют условию наличия по меньшей мере 16 отсчетов. Для компонент цветности ISP не применяется.
[0110] В некоторых вариантах осуществления, для каждой из этих частей, остаточный сигнал может генерироваться путем энтропийного декодирования коэффициентов, отправленных кодером, и затем обратного квантования и обратного преобразования коэффициентов. Затем часть внутренне предсказывается, и наконец, соответствующие реконструированные отсчеты получаются суммированием остаточного сигнала с сигналом предсказания. Поэтому реконструированные значения каждой части могут быть доступны для генерации предсказания следующей, которая может повторять процесс и т.д. Все части совместно используют один и тот же интра-режим.
[0111] В некоторых вариантах осуществления, алгоритм ISP будет испытываться только с интра-режимами, входящими в список МРМ. По этой причине, если блок использует ISP, то флагу МРМ может быть присвоено значение 1. Кроме того, если ISP используется для определенного блока, то список МРМ может модифицироваться для исключения режима DC и для отдания приоритата горизонтальным интра-режимам для горизонтального разделения ISP и вертикальным интра-режимам для вертикального.
[0112] В ISP, каждую часть можно рассматривать как под-TU, поскольку преобразование и реконструкция осуществляются по отдельности для каждой части.
[0113] В современном VVC, помимо 4-точечного, 8-точечного, 16-точечного и 32-точечного преобразований, которые присутствуют и в HEVC, дополнительные 2-точечное и 64-точечное DCT-2 также включены для первичного преобразования. Ядро 64-точечного DCT-2, заданное в VVC, может быть показано ниже в виде матрицы 64×64:
где
[0114] Помимо DCT-2 и 4×4 DST-7, которые использовались в HEVC, схема адаптивного множественного преобразования (АМТ, Adaptive Multiple Transform, также известное как расширенное множественное преобразование (ЕМТ, Enhanced Multiple Transform), или как выбор множественного преобразования (MTS, Multiple Transform Selection)) использовалась в VVC для кодирования остатка как для интер-, так и для интра-кодированных блоков. MTS использует множественные преобразования, выбранные из семейств DCT/DST, отличных от современных преобразований в HEVC. Вновь введенные матрицы преобразования представляют собой DST-7, DCT-8. В таблице 2 приведены базисные функции выбранного DST/DCT.
[0115] Все матрицы первичного преобразования в VVC можно использовать с 8-битовым представлением. АМТ применяется к CU, ширина и высота которых меньше или равны 32, и применять АМТ или нет, определяется флагом, обозначенным mts_flag. Когда mts_flag равен 0, для кодирования остатка может применяться только DCT-2. Когда mts_flag равен 1, индекс mts-idx дополнительно сигнализируется с использованием 2 бинов для указания горизонтального и вертикального преобразования, подлежащих использованию согласно таблице 3, где значение 1 означает использование DST-7, и значение 2 означает использование DCT-8.
[0116] В VVC проект 4, неявный MTS также можно применять в случае, когда вышеупомянутый MTS на основе сигнализации (т.е. явный MTS) не используется. При неявном MTS, выбор преобразования производится согласно ширине и высоте блока вместо сигнализации. В частности, при неявном MTS, предложенном в JVET-M0303, DST-7 выбирается для более короткой стороны блока, и DCT-2 выбирается для более длинной стороны блока. Ядро преобразования DST-7, которое является матрицей, образованной базисными векторами, также можно представить ниже:
4-точечное DST-7:
где {а, b, с, d}={29, 55, 74, 84}.
8-точечное DST-7:
где {a,b,c,d,e,f,h,h}={17,32,46,60,71,78,85,86}.
16-точечное DST-7:
где {a, b, с, d, е, f, g, h, i, j, к, 1, m, n, o, p}={% 17, 25, 33, 41, 49, 56, 62, 66, 72, 77, 81, 83, 87, 89, 90}.
32-точечное DST-7:
где {a, b, с, d, е, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, А, В, C, D, E, F}={4, 9, 13, 17, 21, 26, 30, 34, 38, 42, 45, 50, 53, 56, 60, 63, 66, 68, 72, 74, 77, 78, 80, 82, 84, 85, 86, 88, 88, 89, 90, 90}.
4-точечное DCT-8:
где {a, b, c, d}={84, 74, 55, 29}.
8-точечное DCT-8:
где {a, b, c, d, e, f, g, h}={86, 85, 78, 71, 60, 46, 32, 17}.
16-точечное DCT-8:
где {a, b, с, d, е, f, g, h, i, j, к, 1, m, n, o, p}={90, 89, 87, 83, 81, 77, 72, 66, 62, 56, 49, 41, 33, 25, 17, 9}.
32-точечное DCT-8:
где {a, b, с, d, е, f, g, h, i, j, к, 1, m, n, o, p, q, r, s, t, u, v, w, x, y, z, А, В, C, D, E, F}={90, 90, 89, 88, 88, 86, 85, 84, 82, 80, 78, 77, 74, 72, 68, 66, 63, 60, 56, 53, 50, 45, 42, 38, 34, 30, 26, 21, 17, 13, 9, 4}.
[0117] В VVC, в некоторых примерах, когда и высота, и ширина блока кодирования меньше или равна 64, размер преобразования всегда совпадает с размером блока кодирования. Когда высота или ширина блока кодирования больше 64, при осуществлении преобразования или внутреннего предсказания, блок кодирования дополнительно делится на множественные подблоки, где ширина и высота каждого подблока меньше или равна 64, и одно преобразование осуществляется на каждом подблоке.
[0118] В VVC проект v5, MTS может быть разрешен или запрещен в SPS с синтаксисом, приведенным в таблице 4.
[0119] В VVC проект v5, для некоторых случаев, DST-7 и/или DCT-8 можно использовать без явной сигнализации, т.е. DST-7 и/или DCT-8 можно использовать неявно на основании информации, доступной как для кодера, так и декодера. Эти случаи включают в себя:
(a) интра-разбиение (ISP): для режима ISP, горизонтальное преобразование выбирается как DST-7 при условии, что ширина блока больше или равна 4 и меньше или равна 16, и вертикальное преобразование выбирается как DST-7 при условии, что высота блока больше или равна 4 и меньше или равна 16.
(b) преобразование подблоков (SBT): для режима SBT, для под-TU, расположенной в левой половине (или четверти) и правой половине (или четверти) текущего CU, горизонтальное преобразование представляет собой DCT-8 и DST-7, соответственно. В противном случае, когда под-TU имеет такую же ширину, что и текущий CU, используется DCT-2. Для под-TU, расположенной в верхней половине (или четверти) и нижней половине (или четверти) текущего CU, вертикальное преобразование представляет собой DCT-8 и DST-7, соответственно. В противном случае, когда под-TU имеет такую же высоту, что и текущий CU, используется DCT-2.
(с) MTS, запрещенный в SPS: когда sps_mts_enabled_flag сигнализируется как TRUE, но оба sps_explicit_mts-intra_enabled_flag и sps_explicit_mts_inter_enabled_flag сигнализируются как FALSE, для остатков внутреннего предсказания, горизонтальное преобразование выбирается как DST-7 при условии, что ширина блока больше или равна 4 и меньше или равна 16, и вертикальное преобразование выбирается как DST-7 при условии, что высота блока больше или равна 4 и меньше или равна 16.
[0120] В VVC, зависящее от режима неразделяемое вторичное преобразование (NSST, non-separable secondary transform) может применяться между ядром прямого преобразования и квантованием (в кодере), и между деквантованием и ядром обратного преобразования (в декодере). Для поддержания низкой сложности, NSST применяется только к низкочастотным коэффициентам после первичного преобразования. Если и ширина (W), и высота (Н) блока коэффициентов преобразования больше или равна 8, то неразделяемое вторичное преобразование 8x8 может применяться к верхней левой области 8×8 блока коэффициентов преобразования. В противном случае, если W либо Н блока коэффициентов преобразования равна 4, может применяться неразделяемое вторичное преобразование 4×4, и неразделяемое преобразование 4×4 может осуществляться на верхней левой min(8,W)×min(8,H) области блока коэффициентов преобразования. Вышеупомянутое правило выбора преобразования может применяться для обеих компонент яркости и цветности.
[0121] Реализация матричного умножения неразделяемого преобразования описано ниже в формуле (1) путем использования входного блока 4×4 в порядке примера. Для применения неразделяемого преобразованиях, входной блок 4×4 X.
представляется вектором X:
[0122] Неразделяемое преобразование вычисляется как  где  указывает вектор коэффициентов преобразования, и T - матрица преобразования 16×16. Затем вектор  коэффициентов 16×1 реорганизуется в блок 4×4 с использованием порядка сканирования для этого блока (горизонтального, вертикального или диагонального). Коэффициенты с меньшим индексом могут располагаться с меньшим индексом сканирования в блоке коэффициентов 4×4. В JEM, вместо матричного умножения для снижения сложности неразделяемого преобразование используется преобразование гиперкуба Гивенса (HyGT, Hypercube-Givens Transform) с реализацией бабочки.
[0123] В одной конфигурации NSST, может существовать всего 35×3 неразделяемых вторичных преобразований для обоих размеров блока 4×4 и 8×8, где 35 - количество наборов преобразований, заданных режимом внутреннего предсказания, обозначенных как набор, и 3 - количество кандидатов в NSST для каждого режима внутреннего предсказания. Отображение из режима внутреннего предсказания в набор преобразований задано в таблице 5. Набор преобразований, применяемых к коэффициентам преобразования яркости/цветности, задается соответствующими режимами внутреннего предсказания яркости/цветности, согласно таблице 5. Для режимов внутреннего предсказания, больших, чем 34 (диагональное направление предсказания), блок коэффициентов преобразования транспонируется до/после вторичного преобразования на кодере/декодере.
[0124] Для каждого набора преобразований, выбранный кандидат для неразделяемого вторичного преобразования дополнительно задается явно сигнализируемым индексом NSST на уровне CU. Индекс может сигнализироваться в битовом потоке однократно для каждого интра-CU после использования коэффициентов преобразования и усеченной унарной бинаризации. Усеченное значение равно 2 в случае планарного или DC режима и 3 для углового режима внутреннего предсказания. Этот индекс NSST может сигнализироваться только при наличии более одного ненулевого коэффициента в CU. Значение, принятое по умолчанию, может быть равно нулю, когда оно не сигнализируется. Нулевое значение этого синтаксического элемента может указывать, что вторичное преобразование не применяется к текущему CU, значения 1-3 указывают, какое вторичное преобразование из набора нужно применять.
[0125] В некоторых вариантах осуществления, для каждого набора преобразований, выбранный кандидат для неразделяемого вторичного преобразования может дополнительно задаваться явно сигнализируемым индексом NSST на уровне CU. Индекс сигнализируется в битовом потоке однократно для каждого интра-CU после использования коэффициентов преобразования и усеченной унарной бинаризации. Усеченное значение равно 2 в случае планарного или DC режима и 3 для углового режима внутреннего предсказания. Этот индекс NSST сигнализируется только при наличии более одного ненулевого коэффициента в CU. Значение, принятое по умолчанию, равно нулю, когда оно не сигнализируется. Нулевое значение этого синтаксического элемента указывает вторичное преобразование не применяется к текущему CU. Значения 1-3 указывают, какое вторичное преобразование из набора нужно применять.
[0126] Разновидность NSST, использующая схему преобразования с обнулением, а именно, преобразование сокращенного размера (RST, Reduced Size Transform), которое также именуется низкочастотным неразделяемым вторичным преобразованием (LFNST) в VVC проект 5, была предложена в JVET-N0193. JVET-N0193 проверяет, является ли режим внутреннего предсказания планарным или DC для энтропийного кодирования индекса преобразования NSST. В JVET-N0193 применяются 4 набора преобразований, и каждый набор преобразований включает в себя три ядра преобразования RST. Три ядра преобразования RST могут быть либо размера 16×48 (или 16×64) (применяемого для блока коэффициентов преобразования, высота и ширина которого больше или равна 8), либо 16×16 (применяемого для блока коэффициентов преобразования, высота или ширина которого равна 4). Для удобства обозначения, преобразование 16×48 (или 16×64) обозначается как RST8×8, а преобразование 16×16 как RST4×4. Для RST8×8, две альтернативы использования ядер преобразования 16×64 и ядер преобразования 16×48 показаны на фиг. 10 и фиг. 11, соответственно. На фиг. 10 показано сокращенное вторичное преобразование (RST) с использованием ядра вторичного преобразования 16×64. На фиг. 11 показано сокращенное вторичное преобразование (RST) с использованием ядра вторичного преобразования 16×48. Преобразование с использованием ядер преобразования 16×48 применяется в VVC проект 5.
[0127] Индекс, указывающий выбор ядра LFNST, т.е. lfnst_idx, сигнализируется в конце синтаксиса уровня CU, как указано в таблице 6. Таблица 6 обеспечивает синтаксис на уровне CU.
[0128] В некоторых примерах, сокращенное преобразование (RT, Reduced Transform) отображает N-мерный вектор в R-мерный вектор в другом пространстве, где R/N (R<N) - коэффициент сокращения.
Матрица RST является матрицей R×N согласно формуле (2):
где R строк преобразования являются R базисными векторами N-мерного пространства. Матрица обратного преобразования для RT получается транспонированием матрицы прямого преобразования. На фиг. 12А показана схема прямого сокращенного преобразования, и на фиг. 12 В показана схема обратного сокращенного преобразования.
[0129] Можно применять RST8×8 с коэффициентом сокращения 4 (1/4 размера). Поэтому, вместо 64×64, что является традиционным размером матрицы неразделяемого преобразования 8×8, используется прямая матрица 16×64. Другими словами, обратная матрица RST 64×16 используется на стороне декодера для генерации коэффициентов (первичного) преобразования ядра в верхних левых областях 8×8. Прямое RST8×8 использует матрицы 16×64 (или 8×64 для блока 8×8), благодаря чему прямое RST8×8 создает ненулевые коэффициенты только в верхней левой области 4×4 в данной верхней левой области 8×8. Другими словами, если применяется RST, то область 8×8 кроме верхней левой области 4×4 может иметь только нулевые коэффициенты. Для RST4×4 может применяться умножение прямых матриц 16×16 (или 8×16 для блока 4×4).
[0130] Кроме того, для RST8×8, чтобы дополнительно сократить размер матрицы преобразования, вместо использования всех верхних левых 8×8 коэффициентов в качестве входа для вычисления вторичного преобразования, верхние левые три из 4×4 коэффициентов используются в качестве входа для вычисления вторичного преобразования. Фиг. 13А-13 В демонстрируют другие альтернативы RST8×8. На фиг. 13А показаны иллюстративные матрицы преобразования 16×64, и все верхние левые 8×8 коэффициентов применяются в качестве входных данных для вычисления вторичного преобразования. На фиг. 13 В показаны иллюстративные матрицы преобразования 16×46, и верхние левые три из 4×4 коэффициентов используются в качестве входных данных для вычисления вторичного преобразования.
[0131] В некоторых вариантах осуществления, обратное RST может условно применяться при выполнении следующих двух условий: (а) размер блока больше или равен данному порогу (W>=4 && Н>=4); (b) флаг режима пропуска преобразования равен нулю.
[0132] Если и ширина (W), и высота (Н) блока коэффициентов преобразования больше 4, то RST8×8 применяется к верхней левой области 8×8 блока коэффициентов преобразования. В противном случае, RST4×4 применяется на верхней левой min(8, W)×min(8, Н) области блока коэффициентов преобразования.
[0133] Если индекс RST равен 0, RST не применяется. В противном случае, если индекс RST равен единице, применяется RST, ядро которого выбирается с индексом RST.
[0134] Кроме того, RST применяется для интра-CU как в интра-, так и интер-слайсах, и как для яркости, так и для цветности. Если двойственное дерево разрешено, индексы RST для яркости и цветности сигнализируются по отдельности. Для интер-слайса (двойственное дерево запрещено), единый индекс RST сигнализируется и используется для обеих компонент яркости и цветности. При выборе режима ISP, RST запрещено, и индекс RST не сигнализируется.
[0135] В некоторых вариантах осуществления, матрица RST может выбираться из четырех наборов преобразований, и каждый из наборов преобразований состоит из двух преобразований. Какой набор преобразований применять, определяется по режиму внутреннего предсказания следующим образом: (а), если указан один из трех режимов CCLM, выбирается набор преобразований 0; (b) в противном случае, выбор набора преобразований осуществляется согласно таблице 7:
Индекс (т.е. IntraPredMode) для осуществления доступа к таблице 7 имеет значения в диапазоне [-14, 83], который является преобразованным индексом режима, используемым для широкоугольного внутреннего предсказания.
[0136] VVC также включает в себя режим внутреннего предсказания на матричной основе (MIP). Для предсказания отсчетов прямоугольного блока шириной W и высотой Я, MIP берет одну строку из Н реконструированных соседних граничных отсчетов, которые располагаются слева от блока, и одну строку из W реконструированных соседних граничных отсчетов над блоком в качестве входных данных. Если реконструированные отсчеты отсутствуют, они генерируются так же, как в традиционном внутреннем предсказании.
[0137] Генерация сигнала предсказания базируется на следующих трех этапах:
(a) из граничных отсчетов четыре отсчета в случае W=Н=4 и восемь отсчетов во всех остальных случаях извлекаются путем усреднения.
(b) векторное умножение матриц, сопровождаемое прибавлением смещения, осуществляется путем ввода усредненных отсчетов. Результатом является сокращенный сигнал предсказания на прореженном наборе отсчетов в исходном блоке.
(c) Сигнал предсказания в остальных позициях генерируется из сигнала предсказания на прореженном наборе путем линейной интерполяции, которая является одношаговой линейной интерполяцией в каждом направлении.
0
1
2
0
0
1
1
2
2
[0138] Матрицы и векторы смещения, необходимые для генерации сигнала предсказания, берутся из трех наборов S, S, S матриц. Набор S состоит из 18 матриц , и каждая из матриц имеет 16 строк, 4 столбца и 18 векторов смещения  Каждый из векторов смещения  имеет размер 16. Матрицы и векторы смещения набора S используются для блоков размером 4×4. Набор S состоит из 10 матриц  каждая из матриц имеет 16 строк, 8 столбцов и 10 векторов смещения  Каждый из векторов смещения  имеет размер 16. Матрицы и векторы смещения набора S используются для блоков размерами 4×8, 8×4 и 8×8. Наконец, набор S состоит из 6 матриц  каждая из матриц имеет 64 строки, 8 столбцов и 6 векторов смещения  размером 64. Матрицы и векторы смещения набора S или части этих матриц и векторов смещения используются для всех остальных форм блоков.
1
[0139] На фиг. 14 представлено иллюстративное MIP для блоков 8×8. Как показано на фиг. 14, при наличии блока 8×8, MIP берет четыре средних вдоль каждой оси границы. Полученные восемь входных отсчетов подвергаются векторному умножению матриц. Матрицы берутся из набора S.Это дает 16 отсчетов в нечетных позициях блока предсказания. Таким образом, осуществляются всего (8⋅16)/(8⋅8)=2 операций умножения для каждого отсчета. После прибавления смещения, эти отсчеты интерполируются по вертикали путем использования сокращенной верхней границы. Затем осуществляется горизонтальная интерполяция путем использования исходной левой границы. В этом случае процесс интерполяции не требует никаких операций умножения.
[0140] Что касается сигнализации режима MIP, для каждого блока кодирования (CU) в интра-режиме, флаг указывающий, применяется ли режим MIP к соответствующему блоку предсказания (PU) или не отправляется в битовом потоке. Если применяется режим MIP, индекс predmode режима MIP сигнализируется с использованием списка МРМ, включающего в себя 3 МРМ.
[0141] При этом вывод МРМ осуществляется с использованием интра-режимов верхнего и левого PU следующим образом. Существуют три фиксированные таблицы отображения  idx ∈ {0,1,2}, и каждая таблица связывает каждый традиционный режим внутреннего предсказания  с конкретным режимом MIP, как описано в нижеследующей формуле (4).
где  - фиксированная поисковая таблица. Индекс таблицы отображения определяется на основании ширины W и высоты Н PU, и доступны всего три индекса, как описано ниже в формуле (5)
Формула (5) указывает, из какого из трех наборов следует брать параметры MIP.
[0142] Для генерации списка МРМ для текущего блока, который кодируется в режиме MIP, верхний режим MIP, а именно  и левый режим MIP, а именно  выводятся в первую очередь. Значение  выводится следующим образом:
(a), если верхняя PU  доступна и принадлежит тому же CTU, где находится текущий PU, и  кодируется посредством MIP с использованием режима MIP  и
(b), если верхний PU  доступен и принадлежит тому же CTU, где находится текущая PU, и  кодируется с использованием традиционного режима внутреннего предсказания
(c) в противном случае,
и это означает, что этот режим недоступен. Значение  выводится таким же образом, как  но без проверки, принадлежит ли левый PU тому же CTU, где находится текущий PU.
idx
[0143] Наконец, при наличии выведенных  и  и трех заранее заданных фиксированных принятых по умолчанию списков МРМ list, idx∈[0,1,2], где каждый из списков МРМ содержит три различных режима MIP, строится список МРМ. Список МРМ строится на основании данного принятого по умолчанию списка  и  и  путем замены -1 принятыми по умолчанию значениями, а также удаления дублирующих режимов MIP.
[0144] Флаги, сигнализирующие режимы MIP, могут быть проиллюстрированы в таблице 8, которая является таблицей синтаксиса уровня CU.
MIP
[0145] В некоторых вариантах осуществления, режимы MIP могут быть гармонизированы с кодированием на основе МРМ традиционных режимов внутреннего предсказания следующим образом. Процессы вывода списка МРМ яркости и цветности для традиционных режимов внутреннего предсказания используют отдельные фиксированные таблицы  idx ∈ {0,1,2}, которые отображают режим MIP predmode в один из традиционных режимов внутреннего предсказания
где  - фиксированная поисковая таблица. Для вывода списка МРМ яркости,
всякий раз, когда соседний яркостный блок кодируется в режиме MIP  этот блок обрабатывается, как в случае использования традиционного режима внутреннего предсказания  Для вывода списка МРМ цветности, всякий раз, когда текущий яркостный блок использует режим MIP, то же самое отображение используется для перехода от режима MIP в традиционный режим внутреннего предсказания.
[0146] Хотя выше были рассмотрены различные способы, вышеописанные способы имеют ряд недостатков. Например, в настоящее время, когда применяется LFNST, sps_mts_enabled_flag сигнализируется как TRUE, но оба sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag сигнализируются как FALSE. Для малых размеров блока, первичное преобразование выбирается с использованием неявной схемы преобразования, рассмотренной выше, что означает, что DST-7 всегда разрешено. Однако ядра LFNST могут не очень эффективно работать с DST-7.
[0147] Кроме того, в настоящее время, когда применяется MIP, sps_mts_enabled_flag сигнализируется как TRUE, но оба sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag сигнализируются как FALSE. Для малых размеров блока, первичное преобразование выбирается с использованием неявной схемы преобразования, рассмотренной выше, что означает, что DST-7 всегда разрешено. Однако DST-7 может не очень эффективно работать в режимах MIP.
[0148] Согласно вариантам осуществления настоящего изобретения, предложены способы улучшенного выбора неявного преобразования. Дополнительно, каждый из способов (или вариантов осуществления), кодер и декодер могут быть реализованы схемой обработки (например, один или более процессоров или одна или более интегральных схем). В одном примере, один или более процессоров выполняют программу, которая хранится на компьютерно-считываемом носителе. В дальнейшем описании изобретения, термин "блок" можно интерпретировать как блок предсказания, блок кодирования или пакет кодирования, т.е. CU.
[0149] Согласно вариантам осуществления настоящего изобретения, термин NSST также может означать сокращенное вторичное преобразование (RST), которое является альтернативной конфигурацией неразделяемого вторичного преобразования, например, как описано в JVET-M0292 или JVET-N0193, оно также может означать низкочастотное неразделяемое вторичное преобразование (LFNST), применяемое в VVC проект v5.
[0150] Согласно вариантам осуществления настоящего изобретения, DST-7 также может быть заменено на DST-4.
H
[0151] Согласно вариантам осуществления настоящего изобретения, "неявное преобразование" указывает схему преобразования, выбирающую группу преобразований e-DCT2 (например, DST-1, DCT-5, DST-7, DCT-8, DST-4, DCT-4) без какой-либо сигнализации индекса преобразования. В связи с этим, группа преобразований не-DCT2 может выбираться с использованием ранее кодированной информации, которая доступна как кодеру, так и декодеру, включающей, но без ограничения этим, режим внутреннего предсказания (планарный режим, режим DC, угловой режим), размер блока, ширину блока, высоту блока, форматное соотношение блока, площадь блока, режим интра-кодирования (используется ли MRL, ISP, MIP), позицию выбранных кандидатов пространственного объединения (верхний кандидат на объединение, левый кандидат на объединение), режим внешнего предсказания (режим интер-PDPC, режим CIIP и т.д.).
[0152] В дальнейшем описании изобретения, "явное преобразование" указывает схему преобразования, выбирающую одно преобразование из группы возможных типов преобразования (например, DCT-2, DST-1, DCT-5, DST-7, DCT-8, DST-4, DCT-4), где индекс сигнализируется для указания выбранного типа преобразования.
[0153] В первом варианте осуществления раскрытый способ включает в себя получение информации сигнализации блока преобразования из битового потока кодированного видео для определения, применяется ли неявная схема преобразования для выбора типа первичного преобразования. Когда выбрана неявная схема преобразования, что означает, что флаг sps_mts_enabled_flag сигнализируется как TRUE, а флаг sps_explicit_mts_intra_enabled_flag и флаг sps_explicit_mts_inter_enabled_flag оба сигнализируются как FALSE. Кроме того, для блока WxH, если индекс LFNST (lfnst_idx) сигнализируется как 0 (т.е. ошибка), и, если TSM не разрешен, первичное преобразование выбирается согласно следующему алгоритму:
(a) горизонтальное преобразование является DST-7, если W>=T1 и W<=T2. В противном случае горизонтальное преобразование является DCT-2. Иллюстративные значения ТТ включают в себя 2 пикселя, 4 пикселя или 8 пикселей. Иллюстративные значения Т2 включают в себя 4, 8, 16 или 32.
(b) вертикальное преобразование является DST-7, если Н>=Т1 и Н<=Т2. В противном случае вертикальное преобразование является DCT-2. Иллюстративные значения Т1 включают в себя 2, 4 или 8. Иллюстративные значения Т2 включают в себя 4, 8, 16 или 32.
[0154] Напротив, в некоторых вариантах осуществления, если индекс LFNST не сигнализируется как 0 (т.е. LFNST применяется), первичное преобразование может выбираться следующим образом:
(a) в порядке примера, всегда выбирается DCT-2.
(b) в другом примере, выбирается заранее заданный тип преобразования, отличный от DCT-7, например, преобразование Адамара, DST-1, DCT-5, составное ортонормальное преобразование (СОТ), преобразование Карунена-Лева (KLT, Karhunen-Loeve Transform).
[0155] Изменения предложенного способа в первом варианте осуществления сверх VVC проект v5 могут быть показаны ниже, и изменения выделены жирным шрифтом.
[0156] В порядке примера, входные данные способа, раскрытого выше в первом варианте осуществления, могут представлять собой:
(a) местоположение яркости (xTbY, yTbY) указывающее верхний левый отсчет текущего яркостного блока преобразования относительно верхнего левого отсчета яркости текущего изображения,
(b) переменную nTbW, указывающую ширину текущего блока преобразования,
(c) переменную nTbH, указывающую высоту текущего блока преобразования,
(d) переменную cIdx, указывающую цветовую компоненту текущего блока, и
(e) массив d[х][у] масштабированных коэффициентов преобразования размерами (nTbW)×(nTbH), где х=0..nTbW-1, у=0..nTbH-1.
Соответствующие выходные данные вышеописанного способа в первом варианте осуществления могут представлять собой массив r[х][у] остаточных отсчетов размерами (nTbW)×(nTbH), где х=0..nTbW - 1, у=0..nTbH-1.
[0157] Переменная implicitMtsEnabled в первом варианте осуществления может выводиться следующим образом:
(a), если sps_mts_enabled_flag равен 1, и выполняется одно из следующих условий, implicitMtsEnabled устанавливается равным 1;
(b) IntraSubPartitionsSplitType не равен ISP_NO_SPLIT;
(c) cu_sbt_flag равен 1, и Мах(nTbW, nTbH) меньше или равен 32;
(d) sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag оба равны 0, и CuPredMode[xTbY] [yTbY] равен MODE_INTRA, и lfnst_idx[x0][y0] равен 0;
(e) в противном случае, implicitMtsEnabled устанавливается равным 0.
[0158] Переменная trTypeHor, указывающая ядро горизонтального преобразования, и переменная trTypeVer, указывающая ядро вертикального преобразования в первом варианте осуществления может выводиться следующим образом:
(a), если cldx больше 0, trTypeHor и trTypeVer устанавливаются равными 0;
(b) в противном случае, если implicitMtsEnabled равен 1, применяется следующее:
(i), если IntraSubPartitionsSplitType не равен ISP-NO_SPLIT, или sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag оба равны 0, и CuPredMode[xTbY][yTbY] равен MODE_INTRA, trTypeHor и trTypeVer выводятся следующим образом:
(ii) в противном случае (cu_sbt_flag равен 1), trTypeHor и trTypeVer задаются в нижеследующей таблице 10 в зависимости от cu_sbt_horizontal_flag и cu_sbt_pos_flag;
(iii) в противном случае, trTypeHor и trTypeVer задаются в нижеследующей таблице 9 в зависимости от tu_mts_idx[xTbY][yTbY].
[0159] В таблицах 9-10 заданы trTypeHor и trTypeVer, связанные со способом в первом варианте осуществления.
[0160] Во втором варианте осуществления, когда неявная схема преобразования применяется для выбора типа первичного преобразования (например, sps_mts_enabled_flag сигнализируется как TRUE, но оба sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag сигнализируются как FALSE), для блока W×H, причем флаг MIP (intra mip flag) сигнализируется как 0 (т.е. MIP не применяется), если TSM не разрешен, первичное преобразование может выбираться согласно следующему алгоритму:
(a) горизонтальное преобразование является DST-7, если W>=T1 и W<=T2. В противном случае горизонтальное преобразование является DCT-2. Иллюстративные значения Т1 включают в себя: 2, 4 или 8. Иллюстративные значения Т2 включают в себя 4, 8, 16 или 32;
(b) вертикальное преобразование является DST-7, если Н>=Т1 и Н<=Т2. В противном случае вертикальное преобразование является DCT-2. Иллюстративные значения Т1 включают в себя 2, 4 или 8. Иллюстративные значения Т2 включают в себя 4, 8, 16 или 32.
[0161] Когда флаг MIP не сигнализируется как 0 (т.е. MIP применяется), в порядке примера, первичное преобразование использует DCT-2. В другом примере, первичное преобразование использует не-DST-7, например, преобразование Адамара, DST-1, DCT-5, СОТ, KLT.
[0162] Альтернативно, когда флаг MIP (intra_mip_flag) не равен 0 (т.е. MIP применяется), неявная схема преобразования все еще может применяться. Однако пороги Т1 и Т2 могут отличаться от порогов, используемых для неявного преобразования, описанных выше. В порядке примера, ТТ равен 2, Т2 равен 4 или 8. В другом примере, Т1 равен 4, Т2 равен 4 или 8. В еще одном примере, ТТ равен 8, Т2 равен 8, 16 или 32. Т1 также может быть равен 16, Т2 равен 16 или 32.
[0163] Пример изменений предложенного способа во втором варианте осуществления сверх VVC проект v5 показан ниже, изменения выделены жирным шрифтом.
[0164] Входные данные способа во втором варианте осуществления могут представлять собой:
(a) местоположение яркости (xTbY, yTbY), указывающее верхний левый отсчет текущего яркостного блока преобразования относительно верхнего левого отсчета яркости текущего изображения,
(b) переменную nTbW, указывающую ширину текущего блока преобразования,
(c) переменную nТbН, указывающую высоту текущего блока преобразования,
(d) переменную cldx, указывающую цветовую компоненту текущего блока, и
(e) массив d[х][у] масштабированных коэффициентов преобразования размерами (nTbW)x(nTbH), где х=0..nTbW 1, у=0..nТbН 1.
Выходом этого процесса является массив r[х][у] остаточных отсчетов размерами (nTbW)x(nTbH), где х=0..nTbW - 1, у=0..nTbH - 1.
[0165] Переменная implicitMtsEnabled выводится следующим образом:
(a), если sps_mts_enabled_flag равен 1, и выполняется одно из следующих условий, implicitMtsEnabled устанавливается равным 1;
(b) IntraSubPartitionsSplitType не равен ISP_NO_SPLIT;
(c) cu_sbt_flag равен 1, и Мах(nTbW, nТbН) меньше или равен 32;
(d) sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag оба равны 0, и CuPredMode[xTbY][yTbY] равен MODE_INTRA, и intra_mip_flag [x0][y0] равен 0;
(e) в противном случае, implicitMtsEnabled устанавливается равным 0.
[0166] Переменная trTypeHor, указывающая ядро горизонтального преобразования, и переменная trTypeVer, указывающая ядро вертикального преобразования, во втором варианте осуществления может выводиться следующим образом:
(a), если cIdx больше 0, trTypeHor и trTypeVer устанавливаются равными 0;
(b) в противном случае, если implicitMtsEnabled равен 1, применяется следующее:
(i), если IntraSubPartitionsSplitType не равен ISP_NO_SPLIT, или sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag оба равны 0, и CuPredMode[xTbY][yTbY] равен MODE_INTRA, trTypeHor и trTypeVer выводятся следующим образом:
(ii) в противном случае (cu_sbt_flag равен 1), trTypeHor и trTypeVer задаются в таблице 10 в зависимости от cu_sbt_horizontal_flag и cu_sbt_pos_flag;
(iii) в противном случае, trTypeHor и trTypeVer задаются в таблице 9 в зависимости от tu_mts_idx_[xTbY] [yTbY].
[0167] в третьем варианте осуществления, первый вариант осуществления и второй вариант осуществления могут объединяться, и спец. текстовые изменения предложенного способа сверх VVC проект v5 показаны ниже, изменения выделены жирным шрифтом.
[0168] Входные данные способа в третьем варианте осуществления могут представлять собой:
(a) местоположение яркости (xTbY, yTbY) указывающее верхний левый отсчет текущего яркостного блока преобразования относительно верхнего левого отсчета яркости текущего изображения,
(b) переменную nTbW, указывающую ширину текущего блока преобразования,
(c) переменную пТЬН, указывающую высоту текущего блока преобразования,
(d) переменную cldx, указывающую цветовую компоненту текущего блока, и
(e) массив d[х][у] масштабированных коэффициентов преобразования размерами (nTbW)×(nTbH), где х=0..nTbW - 1, у=0..nTbH - 1.
Выходом этого процесса является массив r[х][у] остаточных отсчетов размерами (nTbW)×(nTbH), где х=0..nTbW 1, у=0..nTbH 1.
[0169] Переменная implicitMtsEnabled в третьем варианте осуществления может выводиться следующим образом:
(a), если sps_mts_enabled_flag равен 1, и выполняется одно из следующих условий, implicitMtsEnabled устанавливается равным 1;
(b) IntraSubPartitionsSplitType не равен ISP_NO_SPLIT;
(c) cu_sbt_flag равен 1, и Мах(nTbW, nTbH) меньше или равен 32;
(d) sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag оба равны 0, и CuPredMode[xTbY][yTbY] равен MODE_INTRA, и lfnst_idx[x0][y0] равен 0 и intra_mip_flag[x0][y0] равен 0;
(e) в противном случае, implicitMtsEnabled устанавливается равным 0.
[0170] Переменная trTypeHor, указывающая ядро горизонтального преобразования, и переменная trTypeVer, указывающая ядро вертикального преобразования, в третьем варианте осуществления выводятся следующим образом:
(a), если cldx больше 0, trTypeHor и trTypeVer устанавливаются равными 0;
(b) в противном случае, если implicitMtsEnabled равен 1, применяется следующее:
(i), если IntraSubPartitionsSplitType не равен ISP_NO_SPLIT, или sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag оба равны 0, и CuPredMode[xTbY][yTbY] равен MODE_INTRA, trTypeHor и trTypeVer выводятся следующим образом:
(ii) в противном случае (cu_sbt_flag равен 1), trTypeHor и trTypeVer задаются в таблице 10 в зависимости от cu_sbt_horizontal_flag и cu_sbt_pos_flag;
(iii) в противном случае, trTypeHor и trTypeVer задаются в таблице 9 в зависимости от tu_mts_idx[xTbY] [yTbY].
[0171] В четвертом варианте осуществления настоящего изобретения может применяться комбинация сигнализации неявного преобразования и явного преобразования. Для горизонтального (или вертикального) преобразования можно использовать либо неявное преобразование, либо явное преобразование.
[0172] В порядке примера, для блока W×H, если W больше или равна Т1 и W меньше или равна Т2, то тип горизонтального преобразования является DST-7. В противном случае, если W больше Т2 и меньше или равна T3, тип горизонтального преобразования может быть либо DCT-2, либо DST-7, и выбор сигнализируется. В противном случае, если W больше T3 или меньше Т1, применяется принятый по умолчанию тип преобразования, например, DCT-2. Иллюстративные значения Т1 включают в себя 2, 4 или 8. Иллюстративные значения Т2 включают в себя 4, 8, 16 или 32. Иллюстративные значения T3 включают в себя 8, 16, 32 или 64. Комбинированное задание T1, Т2 и T3 может состоять в том, что Т1 равен 4 (или 2), Т2 равен 16, и T3 равен 32 (или 64).
[0173] В другом примере, для блока WxH, если Н больше или равен Т1 и Н меньше или равен Т2, то тип вертикального преобразования является DST-7. В противном случае, если Н больше Т2 и меньше или равен T3, тип вертикального преобразования может быть либо DCT-2, либо DST-7, и выбор сигнализируется. В противном случае, если Н больше T3 или меньше Т1, применяется принятый по умолчанию тип преобразования, например, DCT-2. Иллюстративные значения Т1 включают в себя 2, 4 или 8. Иллюстративные значения Т2 включают в себя 4, 8, 16 или 32. Иллюстративные значения T3 включают в себя 8, 16, 32 или 64. Комбинированное задание T1, Т2 и T3 может состоять в том, что Т1 равен 4 (или 2), Т2 равен 16, и T3 равен 32 (или 64).
[0174] На фиг. 15 показана блок-схема операций процесса (1500) согласно некоторым вариантам осуществления изобретения. Процесс (1500) может использоваться при реконструкции блока, кодированного в интра-режиме, для генерации блока предсказания для реконструируемого блока. В различных вариантах осуществления, процесс (1500) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (110), (120), (130) и (140), схемой обработки, которая осуществляет функции видеокодера (203), схемой обработки, которая осуществляет функции видеодекодера (210), схемой обработки, которая осуществляет функции видеодекодера (310), схемой обработки, которая осуществляет функции видеокодера (403) и т.п. В некоторых вариантах осуществления, процесс (1500) может осуществляться в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки осуществляет процесс (1500). Процесс начинается с этапа (S1501) и переходит к (S1510).
[0175] На этапе (S1510) информация сигнализации блока преобразования получается из битового потока кодированного видео. Информация сигнализации блока преобразования может включать в себя по меньшей мере один из флага sps_mts_enabled_flag, флага sps_explicit_mts_intra_enabled_flag или флага режима пропуска преобразования (TSM) и т.п. Информация сигнализации блока преобразования также может включать в себя индекс LFNST (lfnst_idx) или флаг MIP (intra_mip_flag). Когда флаг sps_mts_enabled_flag сигнализируется как TRUE, но флаг sps_explicit_mts_intra_enabled_flag и флаг sps_explicit_mts_inter_enabled_flag оба сигнализируются как FALSE, неявная схема преобразования применяется для выбора типа первичного преобразования.
[0176] На этапе (S1520) определения декодер может определять, указывает ли информация сигнализации блока преобразования неявную схему преобразования, и является ли по меньшей мере одно из низкочастотного неразделяемого преобразования (LFNST) и режима внутреннего предсказания на матричной основе (MIP) недействительным. Если применяется неявная схема преобразования, и по меньшей мере одно из низкочастотного неразделяемого преобразования (LFNST) и режима внутреннего предсказания на матричной основе (MIP) является недействительным, процесс 1500 переходит к (S1530).
[0177] На этапе (S1530), в ответ на определение, что информация сигнализации блока преобразования указывает неявную схему преобразования, и по меньшей мере одно из LFNST и MIP сигнализируется как недействительное, тип первичного преобразования определяется на основании размера блока кодирования (CU). Затем процесс 1500 переходит к (S1540), где первичное преобразование осуществляется для блока преобразования, полученного делением CU в соответствии с определенным типом первичного преобразования.
[0178] На этапе (S1520), если определено, что применяется неявная схема преобразования, но по меньшей мере одно из низкочастотного неразделяемого преобразования (LFNST) и режима внутреннего предсказания на матричной основе (MIP) является действительным, процесс 1500 переходит к (S1550), где в ответ на определение, может выбираться DCT-2 или тип преобразования, отличный от DCT-7. Тип преобразования, отличный от DCT-7, может включать в себя преобразование Адамара, DST-1, DCT-5, СОТ и KLT.
[0179] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 16 показана компьютерная система (1600), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.
[0180] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.
[0181] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0182] Компоненты компьютерной системы (1600), показанные на фиг. 16, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (1600).
[0183] Компьютерная система (1600) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).
[0184] Устройства ввода интерфейса с человеком могут включать в себя один или более из (по одному из изображенных): клавиатуры (1601), мыши (1602), сенсорной панели (1603), сенсорного экрана (1610), информационной перчатки (не показана), джойстика (1605), микрофона (1606), сканера (1607), камеры (1608).
[0185] Компьютерная система (1600) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (1610), информационной перчатки (не показана) или джойстика (1605), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители (1609), наушники (не показаны)), устройства визуального вывода (например, экраны (1610), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны).
[0186] Компьютерная система (1600) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (1620) с носителями (1621) CD/DVD и т.п., карты (1622) флэш-памяти, сменный жесткий диск или твердотельный диск (1623), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.
[0187] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0188] Компьютерная система (1600) также может включать в себя интерфейс к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1649) (например, USB-порты компьютерной системы (1600)); другие обычно встраиваются в ядро компьютерной системы (1600) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1600) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.
[0189] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (1640) компьютерной системы (1600).
[0190] Ядро (1640) может включать в себя один или более центральных процессоров (CPU) (1641), графические процессоры (GPU) (1642), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) (1643), аппаратные ускорители
(1644) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (1645), оперативной памятью (1646), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками (1647), недоступными пользователю, SSD и т.п., могут соединяться посредством системной шины (1648). В некоторых компьютерных системах системная шина (1648) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине (1648) ядра, либо через периферийную шину (1649). Архитектуры периферийной шины включают в себя PCI, USB и т.п.
[0191] CPU (1641), GPU (1642), FPGA (1643) и ускорители (1644) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1645) или RAM (1646). Переходные данные также могут храниться в RAM (1646), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (1647) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (1641), GPU (1642), хранилищем (1647) данных большой емкости, ROM (1645), RAM (1646) и т.п.
[0192] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0193] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (1600), и, в частности, ядро (1640) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (1640), носящим долговременный характер, например, внутренним хранилищем (1647) данных большой емкости или ROM (1645). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1640). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (1640) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (1646), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (1644)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.
Приложение А: Аббревиатуры
JEM: модель совместного исследования
VVC: универсальное видеокодирование
BMS: набор эталонов
MV: вектор движения
HEVC: высокопроизводительное видеокодирование
SEI: информация дополнительного улучшения
VUI: информация пригодности видео
GOP: группа изображений
TU: блок преобразования,
PU: блок предсказания
CTU: пакет дерева кодирования
СТВ: блок дерева кодирования
РВ: блок предсказания
HRD: гипотетический эталонный декодер
SNR: отношение сигнал/шум
CPU: центральный процессор
GPU: графический процессор
CRT: кинескоп
LCD: жидкокристаллический дисплей
OLED: органический светодиод
CD: компакт-диск
DVD: цифровой видеодиск
ROM: постоянная память
RAM: оперативная память
ASIC: специализированная интегральная схема
PLD: программируемое логическое устройство
LAN: локальная сеть
GSM: глобальная система мобильной связи
LTE: проект долгосрочного развития систем связи
CANBus: шина контроллерной сети
USB: универсальная последовательная шина
PCI: межсоединение периферийных компонентов
FPGA: вентильная матрица, программируемая пользователем
SSD: твердотельный привод
IC: интегральная схема
CU: блок кодирования
[0194] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.