Область техники, к которой относится изобретение
[1] Варианты осуществления настоящего раскрытия относятся к способу и устройству для обработки видеосигналов, а более конкретно, к способу и устройству для кодирования/декодирования видеосигналов посредством выполнения преобразования на основе сокращенного преобразования.
Уровень техники
[2] Кодирование со сжатием означает технологию обработки сигналов для передачи оцифрованной информации через линию связи либо ее сохранения в соответствующей форме на носителе хранения данных. Мультимедиа, к примеру, видео, изображения и аудио, могут представлять собой объекты кодирования со сжатием, и, в частности, технология выполнения кодирования со сжатием для изображений называется "сжатием видеоизображений".
[3] Видеоконтент следующего поколения должен иметь признаки высокого пространственного разрешения, высокой частоты кинокадров и большого числа размерностей представления сцен. Чтобы обрабатывать такой контент, размер запоминающего устройства, частота обращений к запоминающему устройству и мощность обработки должны значительно увеличиваться.
[4] Следовательно, необходимо проектировать инструментальное средство кодирования с возможностью более эффективной обработки видеоконтента следующего поколения. В частности, стандарты видеокодеков после стандарта высокоэффективного кодирования видео (HEVC) требуют эффективной технологии преобразования для преобразования видеосигнала пространственной области в сигнал частотной области наряду с технологией предсказания с большей точностью.
Сущность изобретения
Техническая задача
[5] Цель вариантов осуществления настоящего раскрытия заключается в том, чтобы предоставлять способ выполнения первичного преобразования для предварительно заданной области согласно конкретным условиям.
[6] Технические цели, которые должны достигаться посредством настоящего раскрытия, не ограничены вышеуказанными техническими целями, и другие технические цели, не описанные выше, могут очевидно пониматься специалистами в области техники, к которой относится настоящее раскрытие, из нижеприведенного описания.
Техническое решение
[7] В одном аспекте вариантов осуществления настоящего раскрытия, способ декодирования видеосигнала на основе сокращенного преобразования может включать в себя: получение, из видеосигнала, индекса преобразования, указывающего ядра преобразования, применяемые к горизонтальному и вертикальному направлениям текущего блока; определение области, в которой преобразование применяется к текущему блоку, на основе ядер преобразования, указываемых посредством индекса преобразования и размера текущего блока; извлечение, в качестве нулевых, коэффициентов оставшейся области, отличной от области, к которой применяется преобразование в текущем блоке; и выполнение обратного преобразования в отношении области, к которой применяется преобразование, с использованием ядер преобразования, указываемых посредством индекса преобразования.
[8] Предпочтительно, определение области, к которой применяется преобразование, может выполняться посредством определения области, имеющей ширину и/или высоту, соответствующие предварительно заданному размеру, в качестве области, к которой применяется преобразование, когда ядра преобразования, указываемые посредством индекса преобразования, представляют собой предварительно заданное преобразование, и ширина и/или высота текущего блока превышают предварительно заданный размер.
[9] Предпочтительно, предварительно заданное преобразование может представлять собой одно из множества сочетаний преобразований DST7 и/или DCT8.
[10] Предпочтительно, предварительно заданный размер может быть равен 16.
[11] Предпочтительно, определение области, к которой применяется преобразование, может выполняться посредством определения меньшего значения между шириной текущего блока и 32 в качестве ширины области, к которой применяется преобразование, и определения меньшего значения между высотой текущего блока и 32 в качестве высоты области, к которой применяется преобразование, когда ядра преобразования, указываемые посредством индекса преобразования, принадлежат первой группе преобразований, и определения меньшего значения между шириной текущего блока и 16 в качестве ширины области, к которой применяется преобразование, и определения меньшего значения между высотой текущего блока и 16 в качестве высоты области, к которой применяется преобразование, когда ядра преобразования, указываемые посредством индекса преобразования, принадлежат второй группе преобразований.
[12] Предпочтительно, способ дополнительно может включать в себя получение синтаксического элемента, указывающего позицию последнего значимого коэффициента в порядке сканирования в текущем блоке, при этом коэффициенты, к которым применяется обратное преобразование, могут получаться из видеосигнала на основе позиции последнего значимого коэффициента.
[13] Предпочтительно, синтаксический элемент может преобразовываться в двоичную форму на основе усеченного унарного способа, и максимальное значение синтаксического элемента может определяться на основе области, извлекаемой в качестве нулевой.
[14] В одном аспекте вариантов осуществления настоящего раскрытия, устройство для декодирования видеосигнала на основе сокращенного преобразования может включать в себя: запоминающее устройство, выполненное с возможностью хранить видеосигнал; и процессор, соединенный с запоминающим устройством, при этом процессор может быть выполнен с возможностью: получать, из видеосигнала, индекс преобразования, указывающий ядра преобразования, применяемые к горизонтальному и вертикальному направлениям текущего блока; определять область, в которой преобразование применяется к текущему блоку, на основе ядер преобразования, указываемых посредством индекса преобразования и размера текущего блока; извлекать, в качестве нулевых, коэффициенты оставшейся области, отличной от области, к которой применяется преобразование в текущем блоке; и выполнять обратное преобразование в отношении области, к которой применяется преобразование, с использованием ядер преобразования, указываемых посредством индекса преобразования.
Преимущества изобретения
[15] Согласно вариантам осуществления настоящего раскрытия, можно значительно сокращать сложность посредством выполнения преобразования только для предварительно заданной области согласно конкретным условиям.
[16] Преимущества, которые могут получаться посредством настоящего раскрытия, не ограничены вышеуказанными преимуществами, и другие технические преимуществам, не описанные выше, могут очевидно пониматься специалистами в области техники, к которой относится настоящее раскрытие, из нижеприведенного описания.
Краткое описание чертежей
[17] Прилагаемые чертежи, которые включены в данный документ в качестве части описания для помощи в понимании настоящего раскрытия, предоставляют варианты осуществления настоящего раскрытия и описывают технические признаки настоящего раскрытия с помощью нижеприведенного описания.
[18] Фиг. 1 показывает пример системы кодирования видео в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[19] Фиг. 2 является принципиальной блок-схемой устройства кодирования, которое кодирует видеосигналы/сигналы изображений в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[20] Фиг. 3 является принципиальной блок-схемой устройства декодирования, которое декодирует сигналы изображений в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[21] Фиг. 4 является схемой конфигурации системы потоковой передачи контента вариант осуществления, к которому применяется настоящее раскрытие.
[22] Фиг. 5 показывает варианты осуществления, к которым является применимым настоящее раскрытие, фиг. 5a является схемой для описания структуры разделения на сегменты в форме блоков согласно QT (дереву квадрантов), фиг. 5b является схемой для описания структуры разделения на сегменты в форме блоков согласно BT (двоичному дереву), фиг. 5c является схемой для описания структуры разделения на сегменты в форме блоков согласно TT (троичному дереву), и фиг. 5d является схемой для описания структуры разделения на сегменты в форме блоков согласно AT (асимметричному дереву).
[23] Фиг. 6 и 7 показывают варианты осуществления, к которым применяется настоящее раскрытие, фиг. 6 является принципиальной блок-схемой модуля преобразования и квантования и модуля обратного квантования и обратного преобразования в устройстве кодирования, и фиг. 7 является принципиальной блок-схемой модуля обратного квантования и обратного преобразования в устройстве декодирования.
[24] Фиг. 8 является блок-схемой последовательности операций способа, показывающей процесс, в котором выполняется адаптивное множественное преобразование (AMT).
[25] Фиг. 9 является блок-схемой последовательности операций способа, показывающей процесс декодирования, в котором выполняется AMT.
[26] Фиг. 10 является блок-схемой последовательности операций способа, показывающей процесс обратного преобразования на основе MTS согласно варианту осуществления настоящего раскрытия.
[27] Фиг. 11 является блок-схемой устройства для выполнения декодирования на основе MTS согласно варианту осуществления настоящего раскрытия.
[28] Фиг. 12 и 13 являются блок-схемами последовательности операций способа, показывающими кодирование/декодирование, к которым применяется вторичное преобразование, в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[29] Фиг. 14 и 15 показывают вариант осуществления, к которому применяется настоящее раскрытие, фиг. 14 является схемой для описания вращения Гивенса, и фиг. 15 показывает конфигурацию одного раунда в неразделимом вторичном преобразовании (NSST) 4×4, состоящем из слоев вращений Гивенса и перестановок.
[30] Фиг. 16 показывает операцию сокращенного вторичного преобразования (RST) в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[31] Фиг. 17 является схемой, показывающей процесс выполнения обратного сканирования от шестьдесят четвертого коэффициента до семнадцатого коэффициента в обратном порядке сканирования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[32] Фиг. 18 является примерной блок-схемой последовательности операций способа, показывающей кодирование с использованием индикатора одного преобразования (STI) в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[33] Фиг. 19 является примерной блок-схемой последовательности операций способа, показывающей кодирование с использованием индикатора унифицированного преобразования (UTI) в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[34] Фиг. 20 иллюстрирует две примерных блок-схемы последовательности операций способа, показывающих кодирование с использованием UTI в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[35] Фиг. 21 является примерной блок-схемой последовательности операций способа, показывающей кодирование для выполнения преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[36] Фиг. 22 примерной блок-схемой последовательности операций способа, показывающей декодирование для выполнения преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[37] Фиг. 23 является подробной блок-схемой, показывающей пример модуля 120 преобразования в устройстве 100 кодирования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[38] Фиг. 24 является подробной блок-схемой, показывающей пример модуля 230 обратного преобразования в устройстве 200 декодирования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[39] Фиг. 25 является блок-схемой последовательности операций способа обработки видеосигнала в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[40] Фиг. 26 является блок-схемой последовательности операций, иллюстрирующей способ преобразования видеосигнала согласно варианту осуществления, к которому применяется настоящее раскрытие.
[41] Фиг. 27 является схемой, иллюстрирующей способ кодирования видеосигнала с использованием сокращенного преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[42] Фиг. 28 является схемой, иллюстрирующей способ декодирования видеосигнала с использованием сокращенного преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[43] Фиг. 29 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видеосигнала на основе сокращенного преобразования согласно варианту осуществления настоящего раскрытия.
[44] Фиг. 30 является примерной блок-схемой устройства для обработки видеосигнала в качестве варианта осуществления, к которому применяется настоящее раскрытие.
Режим для раскрытия
[45] В дальнейшем подробно описываются некоторые варианты осуществления настоящего раскрытия со ссылкой на прилагаемые чертежи. Подробное описание, которое раскрывается вместе с прилагаемыми чертежами, имеет намерение описывать некоторые варианты осуществления настоящего раскрытия и не имеет намерение описывать единственный вариант осуществления настоящего раскрытия. Нижеприведенное подробное описание включает в себя дополнительные сведения, которые предоставляют полное понимание настоящего раскрытия. Тем не менее специалисты в данной области техники должны понимать, что настоящее раскрытие может реализовываться без таких дополнительных сведений.
[46] В некоторых случаях, чтобы исключать то, чтобы концепция настоящего раскрытия становится неопределенной, известные структуры и устройства опускаются либо могут показываться в форме блок-схемы на основе базовых функций каждой структуры и устройства.
[47] Хотя большинство терминов, используемых в настоящем раскрытии, выбрано из общеупотребительных терминов, широко используемых в данной области техники, некоторые термины произвольно выбраны заявителем, и их смысловые значения подробно поясняются в нижеприведенном описании по мере необходимости. Таким образом, настоящее раскрытие должно пониматься на основе подразумеваемых смысловых значений терминов, а не их простых названий или смысловых значений.
[48] Конкретные термины, используемые в нижеприведенном описании, предоставлены для того, чтобы помогать в понимании настоящего раскрытия, и использование таких конкретных терминов может изменяться в различных формах без отступления от технической сущности настоящего раскрытия. Например, сигналы, данные, дискретные отсчеты, кадры, кинокадры, блоки и т.п. могут надлежащим образом заменяться и интерпретироваться в каждом процессе кодирования.
[49] В настоящем описании, "единица обработки" означает единицу, в которой выполняется процесс кодирования/декодирования, такой как предсказание, преобразование и/или квантование. Дополнительно, единица обработки может интерпретироваться как смысловое значение, включающее в себя единицу для компонента сигнала яркости и единицу для компонента сигнала цветности. Например, единица обработки может соответствовать блоку, единице кодирования (CU), единице предсказания (PU) или единице преобразования (TU).
[50] Помимо этого, единица обработки может интерпретироваться как единица для компонента сигнала яркости или единица для компонента сигнала цветности. Например, единица обработки может соответствовать блоку дерева кодирования (CTB), блоку кодирования (CB), PU или блоку преобразования (TB) для компонента сигнала яркости. Дополнительно, единица обработки может соответствовать CTB, CB, PU или TB для компонента сигнала цветности. Кроме того, единица обработки не ограничена этим и может интерпретироваться как смысловое значение, включающее в себя единицу для компонента сигнала яркости и единицу для компонента сигнала цветности.
[51] Помимо этого, единица обработки не обязательно ограничивается квадратным блоком и может быть сконфигурирована как многоугольная форма, имеющая три или более вершин.
[52] Кроме того, в настоящем описании, пиксел называется "дискретным отсчетом". Помимо этого, использование дискретного отсчета может означать использование пиксельного значения и т.п.
[53] Фиг. 1 показывает пример системы кодирования видео в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[54] Система кодирования видео может включать в себя исходное устройство 10 и приемное устройство 20. Исходное устройство 10 может передавать кодированную информацию или данные видео/изображений в приемное устройство 20 в форме файла или потоковой передачи через цифровой носитель хранения данных или сеть.
[55] Исходное устройство 10 может включать в себя видеоисточник 11, устройство 12 кодирования и передатчик 13. Приемное устройство 20 может включать в себя приемник, устройство 22 декодирования и модуль 23 визуализации. Устройство 12 кодирования может называться "устройством кодирования видео/изображений", и устройство 20 декодирования может называться "устройством декодирования видео/изображений". Передатчик 13 может включаться в устройство 12 кодирования. Приемник 21 может включаться в устройство 22 декодирования. Модуль 23 визуализации может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[56] Видеоисточник может получать видео/изображение через процесс захвата, объединения или формирования видео/изображений. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архив видео/изображений, включающий в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютер, планшетный компьютер, смартфон и т.п. и (электронно) формировать видео/изображение. Например, виртуальное видео/изображение может формироваться через компьютер и т.п., и, в этом случае, процесс захвата видео/изображений может заменяться связанным процессом формирования данных.
[57] Устройство 12 кодирования может кодировать входное видео/изображение. Устройство 12 кодирования может выполнять последовательность процедур, таких как предсказание, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[58] Передатчик 13 может передавать кодированную информацию или данные видео/изображений, выводимые в форме потока битов, в приемный модуль приемного устройства в форме файла или потоковой передачи через цифровой носитель хранения данных или сеть. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD и SSD. Передатчик 13 может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и элемент для передачи через широковещательную передачу/сеть связи. Приемник 21 может извлекать поток битов и передавать поток битов в устройство 22 декодирования.
[59] Устройство 22 декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как обратное квантование, обратное преобразование и предсказание, соответствующих операции устройства 12 кодирования.
[60] Модуль 23 визуализации может выполнять визуализацию декодированного видео/изображения. Подготовленное посредством визуализации видео/изображение может отображаться через дисплей.
[61] Фиг. 2 является принципиальной блок-схемой устройства кодирования, которое кодирует видеосигнал/сигнал изображения в качестве варианта осуществления, к которому применяется настоящее раскрытие. Устройство 100 кодирования может соответствовать устройству 12 кодирования по фиг. 1.
[62] Модуль 110 сегментации изображений может разделять входное изображение (либо кадр или кинокадр), вводимое в устройство 100 кодирования, на одну или более единиц обработки. Например, единица обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно разделяться на сегменты из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) согласно структуре в виде дерева квадрантов и двоичного дерева (QTBT). Например, одна единица кодирования может разделяться на сегменты в форме множества единиц кодирования с большей глубиной на основе структуры в виде дерева квадрантов и/или структуры в виде двоичного дерева. В этом случае, сначала может применяться структура в виде дерева квадрантов, а затем структура в виде двоичного дерева. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию может выполняться на основе конечной единицы кодирования, которая более не разделяется на сегменты. В этом случае, наибольшая единица кодирования может непосредственно использоваться в качестве конечной единицы кодирования, или единица кодирования может рекурсивно разделяться на сегменты в форме единиц кодирования с большей глубиной, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования при необходимости на основе эффективности кодирования согласно характеристикам изображений. Здесь, процедура кодирования может включать в себя такие процедуры, как предсказание, преобразование и восстановление, которые описываются ниже. Альтернативно, единица обработки дополнительно может включать в себя единицу предсказания (PU) или единицу преобразования (TU). В этом случае, единица предсказания и единица преобразования могут разделяться на сегменты или сегментироваться из вышеуказанной конечной единицы кодирования. Единица предсказания может представлять собой единицу выборочного предсказания, и единица преобразования может представлять собой единицу извлечения коэффициента преобразования и/или единицу извлечения остаточного сигнала из коэффициента преобразования.
[63] Единица может взаимозаменяемо использоваться с термином "блок" или "зона". Обычно, блок M×N представляет набор выборок или коэффициентов преобразования в M столбцов и N строк. Дискретный отсчет, в общем, может представлять пиксел или пиксельное значение и может представлять только пиксел/пиксельное значение компонента сигнала яркости или только пиксел/пиксельное значение компонента сигнала цветности. Дискретный отсчет может использоваться в качестве термина, соответствующего кадру (изображению), пикселу или пелу.
[64] Устройство 100 кодирования может формировать остаточный сигнал (остаточный блок или массив остаточных выборок) посредством вычитания предсказанного сигнала (предсказанного блока или массива предсказанных выборок), выводимого из модуля 180 интер-предсказания или модуля 185 интра-предсказания, из входного видеосигнала (исходного блока или массива исходных выборок), и сформированный остаточный сигнал передается в модуль 120 преобразования. В этом случае, единица, которая вычитает предсказанный сигнал (предсказанный блок или массив предсказанных выборок) из входного видеосигнала (исходного блока или массива исходных выборок) в кодере 100, может называться "вычитателем 115", как показано. Модуль предсказания может выполнять предсказание для целевого блока обработки (далее называемого "текущим блоком") и формировать предсказанный блок, включающий в себя предсказанные дискретные отсчеты относительно текущего блока. Модуль предсказания может определять то, применяется либо нет интра-предсказание или интер-предсказание к текущему блоку или единицам CU. Модуль предсказания может формировать различные типы информации относительно предсказания, такие как информация режима предсказания, и передавать информацию в модуль 190 энтропийного кодирования, как описано ниже в описании каждого режима предсказания. Информация относительно предсказания может кодироваться в модуле 190 энтропийного кодирования и выводиться в форме потока битов.
[65] Модуль 185 интра-предсказания может предсказывать текущий блок со ссылкой на дискретные отсчеты в текущем кадре. Дискретные отсчеты для ссылки могут граничить с текущим блоком или могут отделяться от него согласно режиму предсказания. При интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленные режимы могут включать в себя, например, DC-режим и планарный режим. Направленные режимы могут включать в себя, например, 33 режима направленного предсказания или 65 режимов направленного предсказания согласно степени незначительности направления предсказания. Тем не менее это является примерным, и число режимов направленного предсказания, равное или большее 65 или равное или меньшее 33, может использоваться согласно настройкам. Модуль 185 интра-предсказания может определять режим предсказания, который должен применяться к текущему блоку, с использованием режима предсказания, применяемого к соседним блокам.
[66] Модуль 180 интер-предсказания может извлекать предсказанный блок относительно текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блока, субблока или дискретного отсчета на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, бипредсказание и т.д.). В случае интер-предсказания, соседние блоки могут включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временный соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, может быть идентичным или отличающимся от опорного кадра, включающего в себя временной соседний блок. Временной соседний блок может называться "совместно размещенным опорным блоком" или "совместно размещенной CU (colCU)", и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 180 интер-предсказания может формировать список потенциально подходящих вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой потенциально подходящий вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания, и в случае режима пропуска и режима объединения, модуль 180 интер-предсказания может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, остаточный сигнал может не передаваться по-другому по сравнению с режимом объединения. В случае режима предсказания векторов движения (MVP), вектор движения текущего блока может указываться посредством использования вектора движения соседнего блока в качестве предиктора вектора движения и передачи в служебных сигналах разности векторов движения.
[67] Предсказанный сигнал, сформированный через модуль 180 интер-предсказания или модуль 185 интра-предсказания, может использоваться для того, чтобы формировать восстановленный сигнал или остаточный сигнал.
[68] Модуль 120 преобразования может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из DCT (дискретного косинусного преобразования), DST (дискретного синусного преобразования), KLT (преобразования Карунена-Лоэва), GBT (преобразования на основе графа) и CNT (условно нелинейного преобразования). Здесь, GBT означает преобразование, полученное из графа, представляющего информацию относительно взаимосвязи между пикселами. CNT означает преобразование, полученное на основе предсказанного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Дополнительно, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или применяться к неквадратным блокам, имеющим переменные размеры.
[69] Модуль 130 квантования может квантовать коэффициенты преобразования и передавать квантованные коэффициенты преобразования в модуль 190 энтропийного кодирования, и модуль 190 энтропийного кодирования может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить кодированный сигнал в качестве потока битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Модуль 130 квантования может перекомпоновывать квантованные коэффициенты преобразования в форме блока в форму одномерного вектора на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в форме одномерного вектора. Модуль 190 энтропийного кодирования, например, может выполнять различные способы кодирования, такие как кодирование экспоненциальным кодом Голомба, CAVLC (контекстно-адаптивное кодирование переменной длины) и CABAC (контекстно-адаптивное двоичное арифметическое кодирование). Модуль 190 энтропийного кодирования может кодировать информацию, необходимую для видео/восстановления изображений (например, значения синтаксических элементов и т.п.), наряду с или отдельно от квантованных коэффициентов преобразования. Кодированная информация (например, информация видео/изображений) может передаваться или храниться в форме потока битов в единице слоя абстрагирования от сети (NAL). Поток битов может передаваться через сеть или храниться на цифровом носителе хранения данных. Здесь, сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD и SSD. Передатчик (не показан), который передает сигнал, выводимый из модуля 190 энтропийного кодирования, и/или хранилище (не показано), которое хранит сигнал, могут быть сконфигурированы как внутренние/внешние элементы устройства 100 кодирования, и передатчик может представлять собой компонент модуля 190 энтропийного кодирования.
[70] Квантованные коэффициенты преобразования, выводимые из модуля 130 квантования, могут использоваться для того, чтобы формировать предсказанный сигнал. Например, остаточный сигнал может восстанавливаться посредством применения обратного квантования и обратного преобразования к квантованным коэффициентам преобразования через модуль 140 обратного квантования и модуль 150 обратного преобразования в контуре. Сумматор 155 может суммировать восстановленный остаточный сигнал с предсказанным сигналом, выводимым из модуля 180 интер-предсказания или модуля 185 интра-предсказания, так что может формироваться восстановленный сигнал (восстановленный кадр, восстановленный блок или массив восстановленных выборок). Когда отсутствует остаток относительно целевого блока обработки, как в случае, в котором режим пропуска применяется, предсказанный блок может использоваться в качестве восстановленного блока. Сумматор 155 также может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для интра-предсказания следующего целевого блока обработки в текущем кадре или использоваться для интер-предсказания следующего кадра посредством фильтрации, которая описывается ниже.
[71] Модуль 160 фильтрации может повышать субъективное/объективное качество кадров посредством применения фильтрации к восстановленному сигналу. Например, модуль 160 фильтрации может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и передавать модифицированный восстановленный кадр в буфер 170 декодированных кадров. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивную контурную фильтрацию и билатеральную фильтрацию. Модуль 160 фильтрации может формировать различные типы информации относительно фильтрации и передавать информацию в модуль 190 энтропийного кодирования, как описано ниже в описании каждого способа фильтрации. Информация относительно фильтрации может кодироваться в модуле 190 энтропийного кодирования и выводиться в форме потока битов.
[72] Модифицированный восстановленный кадр, передаваемый в буфер 170 декодированных кадров, может использоваться в качестве опорного кадра в модуле 180 интер-предсказания. Соответственно, устройство кодирования может исключать рассогласование между устройством 100 кодирования и устройством декодирования и повышать эффективность кодирования, когда применяется интер-предсказание.
[73] Буфер 170 декодированных кадров может хранить модифицированный восстановленный кадр, так что модифицированный восстановленный кадр используется в качестве опорного кадра в модуле 180 интер-предсказания.
[74] Фиг. 3 является принципиальной блок-схемой устройства декодирования, которое выполняет декодирование видеосигнала в качестве варианта осуществления, к которому применяется настоящее раскрытие. Устройство 200 декодирования по фиг. 3 соответствует устройству 22 декодирования по фиг. 1.
[75] Ссылаясь на фиг 3, устройство 200 декодирования может включать в себя модуль 210 энтропийного декодирования, модуль 220 обратного квантования, модуль 230 обратного преобразования, сумматор 235, модуль 240 фильтрации, буфер 250 декодированных кадров (DPB), модуль 260 интер-предсказания и модуль 265 интра-предсказания. Модуль 260 интер-предсказания и модуль 265 интра-предсказания могут совместно называться "модулем предсказания". Таким образом, модуль предсказания может включать в себя модуль 180 интер-предсказания и модуль 185 интра-предсказания. Модуль 220 обратного квантования и модуль 230 обратного преобразования могут совместно называться "остаточным процессором". Таким образом, остаточный процессор может включать в себя модуль 220 обратного квантования и модуль 230 обратного преобразования. Вышеуказанные модуль 210 энтропийного декодирования, модуль 220 обратного квантования, модуль 230 обратного преобразования, сумматор 235, модуль 240 фильтрации, модуль 260 интер-предсказания и модуль 265 интра-предсказания могут быть сконфигурированы как один аппаратный компонент (например, декодер или процессор) согласно варианту осуществления. Дополнительно, буфер 250 декодированных кадров может быть сконфигурирован как один аппаратный компонент (например, запоминающее устройство или цифровой носитель хранения данных) согласно варианту осуществления.
[76] Когда поток битов, включающий в себя информацию видео/изображений, вводится, устройство 200 декодирования может восстанавливать изображение посредством процесса, соответствующего процессу обработки информации видео/изображений в устройстве 100 кодирования по фиг. 2. Например, устройство 200 декодирования может выполнять декодирование с использованием единицы обработки, применяемой в устройстве 100 кодирования. Соответственно, единица обработки декодирования может представлять собой единицу кодирования, например, и единица кодирования может разделяться на сегменты из единицы дерева кодирования или наибольшей единицы кодирования согласно структуре в виде дерева квадрантов и/или структуре в виде двоичного дерева. Помимо этого, восстановленный видеосигнал, декодированный и выводимый посредством устройства 200 декодирования может воспроизводиться через устройство воспроизведения.
[77] Устройство 200 декодирования может принимать сигнал, выводимый из устройства 100 кодирования по фиг. 2 в форме потока битов, и принимаемый сигнал может декодироваться через модуль 210 энтропийного декодирования. Например, модуль 210 энтропийного декодирования может анализировать (осуществлять парсинг) поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Например, модуль 210 энтропийного декодирования может декодировать информацию в потоке битов на основе такого способа кодирования, как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выводить значения синтаксических элементов, необходимые для восстановления изображений, и квантованные значения коэффициентов преобразования относительно остатка. Более конкретно, способ энтропийного CABAC-декодирования принимает элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определяет контекстную модель с использованием декодирования информации целевых синтаксических элементов и декодирования информации соседних и декодируемых целевых блоков либо информации относительно символов/элементов разрешения, декодированных на предыдущей стадии, предсказывает вероятность формирования элементов разрешения согласно определенной контекстной модели и выполняет арифметическое декодирование элементов разрешения, чтобы формировать символ, соответствующий каждому значению синтаксического элемента. Здесь, способ энтропийного CABAC-декодирования может обновлять контекстную модель с использованием информации относительно символов/элементов разрешения, декодированных для следующей контекстной модели на основе символов/элементов разрешения, после того как контекстная модель определяется. Информация относительно предсказания из числа информации, декодированной в модуле 210 энтропийного декодирования, может предоставляться в модуль предсказания (модуль 260 интер-предсказания и модуль 265 интра-предсказания), и остаточные значения, для которых энтропийное декодирование выполнено в модуле 210 энтропийного декодирования, т.е. квантованные коэффициенты преобразования и связанная информация параметров, могут вводиться в модуль 220 обратного квантования. Дополнительно, информация относительно фильтрации из числа информации, декодированной в модуле 210 энтропийного декодирования, может предоставляться в модуль 240 фильтрации. Между тем приемник (не показан), которое принимает сигнал, выводимый из устройства 100 кодирования, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента устройства 200 декодирования, или приемник может представлять собой компонент модуля 210 энтропийного декодирования.
[78] Модуль 220 обратного квантования может обратно квантовать квантованные коэффициенты преобразования, чтобы выводить коэффициенты преобразования. Модуль 220 обратного квантования может перекомпоновывать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов в устройстве 100 кодирования. Модуль 220 обратного квантования может выполнять обратное квантование для квантованных коэффициентов преобразования с использованием параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[79] Модуль 230 обратного преобразования обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок или массив остаточных выборок).
[80] Модуль предсказания может выполнять предсказание относительно текущего блока и формировать предсказанный блок, включающий в себя предсказанные дискретные отсчеты относительно текущего блока. Модуль предсказания может определять то, применяется либо нет интра-предсказание или интер-предсказание к текущему блоку, на основе информации относительно предсказания, выводимой из модуля 210 энтропийного декодирования, и определять конкретный режим интра-/интер-предсказания.
[81] Модуль 265 интра-предсказания может предсказывать текущий блок со ссылкой на дискретные отсчеты в текущем кадре. Дискретные отсчеты для ссылки могут граничить с текущим блоком или могут отделяться от текущего блока согласно режиму предсказания. При интра-предсказании, режимы предсказания могут включать в себя множество ненаправленных режимов и множество направленных режимов. Интра-предсказание 265 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, применяемого к соседним блокам.
[82] Модуль 260 интер-предсказания может извлекать предсказанный блок относительно текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться в единицах блока, субблока или дискретного отсчета на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, бипредсказание и т.д.). В случае интер-предсказания, соседние блоки могут включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временный соседний блок, присутствующий в опорном кадре. Например, модуль 260 интер-предсказания может формировать список потенциально подходящих вариантов информации движения на основе соседних блоков и извлекать вектор движения и/или индекс опорного кадра текущего блока на основе принимаемой информации выбора потенциально подходящих вариантов. Интер-предсказание может выполняться на основе различных режимов предсказания, и информация относительно предсказания может включать в себя информацию, указывающую режим интер-предсказания для текущего блока.
[83] Сумматор 235 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок или массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с предсказанным сигналом (предсказанным блоком или массивом предсказанных выборок), выводимым из модуля 260 интер-предсказания или модуля 265 интра-предсказания. Когда отсутствует остаток относительно целевого блока обработки, как в случае, в котором режим пропуска применяется, предсказанный блок может использоваться в качестве восстановленного блока.
[84] Сумматор 235 также может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для интра-предсказания следующего целевого блока обработки в текущем кадре или использоваться для интер-предсказания следующего кадра посредством фильтрации, которая описывается ниже.
[85] Модуль 240 фильтрации может повышать субъективное/объективное качество кадров посредством применения фильтрации к восстановленному сигналу. Например, модуль 240 фильтрации может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и передавать модифицированный восстановленный кадр в буфер 250 декодированных кадров. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение (SAO), адаптивную контурную фильтрацию (ALF) и билатеральную фильтрацию.
[86] Модифицированный восстановленный кадр, передаваемый в буфер 250 декодированных кадров, может использоваться в качестве опорного кадра посредством модуля 260 интер-предсказания.
[87] В настоящем описании, варианты осуществления, описанные в модуле 160 фильтрации, модуле 180 интер-предсказания и модуле 185 интра-предсказания устройства 100 кодирования, могут применяться к модулю 240 фильтрации, модулю 260 интер-предсказания и модулю 265 интра-предсказания устройства декодирования в равной степени или соответствующим способом.
[88] Фиг. 4 является схемой конфигурации системы потоковой передачи контента в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[89] Система потоковой передачи контента, к которой применяется настоящее раскрытие, может включать в себя сервер 410 кодирования, потоковый сервер 420, веб-сервер 430, хранилище 440 мультимедиа, абонентское устройство 450 и устройства 460 ввода мультимедиа.
[90] Сервер 410 кодирования служит для того, чтобы сжимать контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера и записывающая видеокамера, в цифровые данные, с тем чтобы формировать поток битов и передавать поток битов на потоковый сервер 420. В качестве другого примера, когда устройства 460 ввода мультимедиа, такие как смартфон, камера и записывающая видеокамера, непосредственно формируют потоки битов, сервер 410 кодирования может опускаться.
[91] Поток битов может формироваться посредством способа кодирования или способа формирования потоков битов, к которому применяется настоящее раскрытие, и потоковый сервер 420 может временно хранить поток битов в процессе передачи или приема потока битов.
[92] Потоковый сервер 420 передает мультимедийные данные в абонентское устройство 450 на основе пользовательского запроса через веб-сервер 430, и веб-сервер 430 служит в качестве среды, которая информирует пользователя в отношении услуг. Когда пользователь отправляет запрос на требуемую услугу в веб-сервер 430, веб-сервер 430 доставляет запрос на потоковый сервер 420, и потоковый сервер 420 передает мультимедийные данные пользователю. Здесь, система потоковой передачи контента может включать в себя дополнительный сервер управления, и в этом случае, сервер управления служит для того, чтобы управлять командами/ответами между устройствами в системе потоковой передачи контента.
[93] Потоковый сервер 420 может принимать контент из хранилища 440 мультимедиа и/или сервера 410 кодирования. Например, когда контент принимается из сервера 410 кодирования, потоковый сервер 420 может принимать контент в реальном времени. В этом случае, потоковый сервер 420 может хранить потоки битов в течение предварительно определенного времени, чтобы предоставлять услугу плавной потоковой передачи.
[94] Примеры абонентского устройства 450 могут включать в себя сотовый телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, PDA (персональное цифровое устройство), PMP (портативный мультимедийный проигрыватель), навигационное устройство, грифельный планшетный PC, планшетный PC, ультрабук, носимое устройство (например, интеллектуальные часы, интеллектуальные очки и HMD (наголовный дисплей)), цифровой телевизор, настольный компьютер, систему цифровых информационных табло и т.д.
[95] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, и в этом случае, данные, принимаемые посредством каждого сервера, могут обрабатываться распределенно.
[96] Фиг. 5 показывает варианты осуществления, к которым является применимым настоящее раскрытие, фиг. 5a является схемой для описания структуры разделения на сегменты в форме блоков согласно QT (дереву квадрантов), фиг. 5b является схемой для описания структуры разделения на сегменты в форме блоков согласно BT (двоичному дереву), фиг. 5c является схемой для описания структуры разделения на сегменты в форме блоков согласно TT (троичному дереву), фиг. 5d является схемой для описания структуры разделения на сегменты в форме блоков согласно AT (асимметричному дереву).
[97] При кодировании видео, один блок может разделяться на сегменты на основе QT. Дополнительно, один субблок, разделенный на сегменты согласно QT, дополнительно может рекурсивно разделяться на сегменты с использованием QT. Блок-лист, который более не разделяется на сегменты согласно QT, может разделяться на сегменты с использованием, по меньшей мере, одного из BT, TT и AT. BT может иметь два типа разделения на сегменты: горизонтальное BT (2N×N, 2N×N); и вертикальное BT (N×2N, N×2N). TT может иметь два типа разделения на сегменты: горизонтальное TT (2N×1/2N, 2N×N, 2N×1/2N); и вертикальное TT (1/2N×2N, N×2N, 1/2N×2N). AT может иметь четыре типа разделения на сегменты: AT вверх по горизонтали (2N×1/2N, 2N×3/2N); AT вниз по горизонтали (2N×3/2N, 2N×1/2N); AT влево по вертикали (1/2N×2N, 3/2N×2N); и AT вправо по вертикали (3/2N×2N, 1/2N×2N). Каждый тип BT, TT и AT дополнительно может рекурсивно разделяться на сегменты с использованием BT, TT и AT.
[98] Фиг. 5a показывает пример разделения на QT-сегменты. Блок A может разделяться на сегменты в форме четырех субблоков A0, A1, A2 и A3 согласно QT. Субблок A1 дополнительно может разделяться на сегменты в форме четырех субблоков B0, B1, B2 и B3 согласно QT.
[99] Фиг. 5b показывает пример разделения на BT-сегменты. Блок B3, который более не разделяется на сегменты согласно QT, может разделяться на сегменты в форме вертикального BT (C0 и C1) или горизонтального BT (D0 и D1). Каждый субблок, к примеру, блок C0 дополнительно может рекурсивно разделяться на сегменты в форме горизонтального BT (E0 и E1) или вертикального BT (F0 и F1).
[100] Фиг. 5c показывает пример разделения на TT-сегменты. Блок B3, который более не разделяется на сегменты согласно QT, может разделяться на сегменты в форме вертикального TT (C0, C1 и C2) или горизонтального TT (D0, D1 и D2). Каждый субблок, к примеру, блок C1 дополнительно может рекурсивно разделяться на сегменты в форме горизонтального TT (E0, E1 и E2) или вертикального TT (F0, F1 и F2).
[101] Фиг. 5d показывает пример разделения на AT-сегменты. Блок B3, который более не разделяется на сегменты согласно QT, может разделяться на сегменты в форме вертикального AT (C0 и C1) или горизонтального AT (D0 и D1). Каждый субблок, к примеру, блок C1 дополнительно может рекурсивно разделяться на сегменты в форме горизонтального AT (E0 и E1) или вертикального TT (F0 и F1).
[102] Между тем разделение на BT-, TT- и AT-сегменты может использоваться объединенным способом. Например, субблок, разделенный на сегменты согласно BT, может разделяться на сегменты согласно TT или AT. Дополнительно, субблок, разделенный на сегменты согласно TT, может разделяться на сегменты согласно BT или AT. Субблок, разделенный на сегменты согласно AT, может разделяться на сегменты согласно BT или TT. Например, каждый субблок может разделяться на сегменты в форме вертикального BT после разделения на горизонтальные BT-сегменты, или каждый субблок может разделяться на сегменты в форме горизонтального BT после разделения на вертикальные BT-сегменты. В этом случае, конечные формы после на разделения сегменты являются идентичными, хотя порядки разделения на сегменты отличаются.
[103] Дополнительно, когда блок разделяется на сегменты, порядок блочного поиска может задаваться различными способами. В общем, поиск выполняется слева направо и сверху вниз, и блочный поиск может означать порядок определения того, должен или нет каждый разделенный на сегменты субблок дополнительно разделяться на сегменты, порядок кодирования субблоков, когда субблоки более не разделяются на сегменты, или порядок поиска, когда субблок ссылается на информацию соседних других блоков.
[104] Преобразование может выполняться для единиц обработки (или блоков преобразования), разделенных на сегменты согласно структурам разделения на сегменты, как показано на фиг. 5a в 5d, и, в частности, разделение на сегменты может выполняться в направлении строк и в направлении столбцов, и матрица преобразования может применяться. Согласно варианту осуществления настоящего раскрытия, различные типы преобразования могут использоваться согласно длине единицы обработки (или блока преобразования) в направлении строк или в направлении столбцов.
[105] Преобразование применяется к остаточным блокам, чтобы декоррелировать остаточные блоки в максимально возможной степени, концентрировать коэффициенты на низкой частоте и формировать нулевую хвостовую часть в конце блока. Часть преобразования в программном JEM-обеспечении включает в себя две главных функции (базовое преобразование и вторичное преобразование). Базовое преобразование состоит из семейств преобразований из дискретного косинусного преобразования (DCT) и дискретного синусного преобразования (DST), применяемых ко всем строкам и столбцам остаточного блока. После этого, вторичное преобразование дополнительно может применяться к левому верхнему углу вывода базового преобразования. Аналогично, обратное преобразование может применяться в порядке обратного вторичного преобразования и обратного базового преобразования. Во-первых, обратное вторичное преобразование может применяться к левому верхнему углу блока коэффициентов. Затем обратное базовое преобразование применяется к строкам и столбцам вывода обратного вторичного преобразования. Базовое преобразование или обратное преобразование может называться "первичным преобразованием" или "обратным преобразованием".
[106] Фиг. 6 и 7 показывают варианты осуществления, к которым применяется настоящее раскрытие, фиг. 6 является принципиальной блок-схемой модуля 120/130 преобразования и квантования и модуля 140/150 обратного квантования и обратного преобразования в устройстве 100 кодирования, и фиг. 7 является принципиальной блок-схемой модуля 220/230 обратного квантования и обратного преобразования в устройстве 200 декодирования.
[107] Ссылаясь на фиг 6, модуль 120/130 преобразования и квантования может включать в себя модуль 121 первичного преобразования, модуль 122 вторичного преобразования и модуль 130 квантования. Модуль 140/150 обратного квантования и обратного преобразования может включать в себя модуль 140 обратного квантования, модуль 151 обратного вторичного преобразования и модуль 152 обратного первичного преобразования.
[108] Ссылаясь на фиг 7, модуль 220/230 обратного квантования и обратного преобразования может включать в себя модуль 220 обратного квантования, модуль 231 обратного вторичного преобразования и модуль 232 обратного первичного преобразования.
[109] В настоящем раскрытии, преобразование может выполняться через множество стадий. Например, два состояния из первичного преобразования и вторичного преобразования могут применяться, как показано на фиг. 6, либо более двух каскадов преобразования могут использоваться согласно алгоритмам. Здесь, первичное преобразование может называться "базовым преобразованием".
[110] Модуль 121 первичного преобразования может применять первичное преобразование к остаточному сигналу. Здесь, первичное преобразование может быть предварительно задано в качестве таблицы в кодере и/или декодере.
[111] Модуль 122 вторичного преобразования может применять вторичное преобразование к первично преобразованному сигналу. Здесь, вторичное преобразование может быть предварительно задано в качестве таблицы в кодере и/или декодере.
[112] В варианте осуществления, неразделимое вторичное преобразование (NSST) может условно применяться в качестве вторичного преобразования. Например, NSST применяется только к блокам интра-предсказания и может иметь набор для преобразования, применимый в расчете на группу режимов предсказания.
[113] Здесь, группа режимов предсказания может задаваться на основе симметрии относительно направления предсказания. Например, режим 52 предсказания и режим 16 предсказания являются симметричными на основе режима 34 предсказания (диагонального направления), и в силу этого одна группа может формироваться, и идентичный набор для преобразования может применяться к ней. Здесь, когда преобразование для режима 52 предсказания применяется, входные данные транспонируются, и после этого преобразование применяется, поскольку набор для преобразования режима 52 предсказания является идентичным набору для преобразования режима 16 предсказания.
[114] В случае планарного режима и DC-режима, отсутствует симметрия относительно направлений, и в силу этого они имеют соответствующие наборы для преобразования, и соответствующий набор для преобразования может состоять из двух преобразований. Каждый набор для преобразования может состоять из трех преобразований для оставшихся направленных режимов.
[115] Модуль 130 квантования может выполнять квантование для вторично преобразованного сигнала.
[116] Модуль 140/150 обратного квантования и обратного преобразования выполняет в обратном порядке вышеуказанную процедуру, и избыточное описание опускается.
[117] Фиг. 7 является принципиальной блок-схемой модуля 220/230 обратного квантования и обратного преобразования в устройстве 200 декодирования.
[118] Ссылаясь на фиг 7, модуль 220/230 обратного квантования и обратного преобразования может включать в себя модуль 220 обратного квантования, модуль 231 обратного вторичного преобразования и модуль 232 обратного первичного преобразования.
[119] Модуль 220 обратного квантования получает коэффициенты преобразования из энтропийно декодированного сигнала с использованием информации размера шага квантования.
[120] Модуль 231 обратного вторичного преобразования выполняет обратное вторичное преобразование для коэффициентов преобразования. Здесь, обратное вторичное преобразование означает обратное преобразование по отношению ко вторичному преобразованию, описанному на фиг. 6.
[121] Модуль 232 обратного первичного преобразования выполняет обратное первичное преобразование для обратно вторично преобразованного сигнала (или блока) и получает остаточный сигнал. Здесь, обратное первичное преобразование означает обратное преобразование по отношению к первичному преобразованию, описанному на фиг. 6.
[122] В дополнение к DCT-2 и DST-4 4×4, применяемым к HEVC, адаптивное множественное преобразование или явное множественное преобразование (AMT или EMT) используется для остаточного кодирования для интер- и интра-кодированных блоков. Множество преобразований, выбранных из DCT/DST-семейств, используются в дополнение к преобразованиям в HEVC. Матрицы преобразования, заново введенные в JEM, представляют собой DST-7, DCT-8, DST-1 и DCT-5. Следующая таблица 1 показывает базовые функции выбранного DST/DCT.
[123] Табл. 1
[124] EMT может применяться к CU, имеющим ширину и высоту, равную или меньшую 64, и то, применяется или нет EMT, может управляться посредством флага уровня CU. Когда флаг уровня CU равен 0, DCT-2 применяется к CU, чтобы кодировать остаток. Два дополнительных флага передаются в служебных сигналах для того, чтобы идентифицировать горизонтальные и вертикальные преобразования, которые должны использоваться для блока кодирования сигналов яркости в CU, к которой применяется EMT. Аналогично HEVC, остаток блока может кодироваться в режиме пропуска преобразования в JEM. Для остаточного интра-кодирования, зависимый от режима процесс выбора потенциально подходящих вариантов преобразования используется вследствие другой статистики по остаткам других режимов интра-предсказания. Три поднабора для преобразования задаются так, как показано в следующей таблице 2, и поднабор для преобразования выбирается на основе режима интра-предсказания, как показано в таблице 3.
[125] Табл. 2
[126] Наряду с понятием поднабора, поднабор для преобразования первоначально подтверждается на основе таблицы 2 посредством использования режима интра-предсказания CU, имеющей EMT_CU_flag уровня CU в 1. После этого, для каждого из горизонтальных (EMT_TU_horizontal_flag) и вертикальных (EMT_TU_vertical_flag) преобразований, один из двух потенциально подходящих вариантов преобразования в подтвержденном поднаборе для преобразования выбирается на основе явной передачи служебных сигналов с использованием флагов согласно таблице 3.
[127] Табл. 3
[128] Табл. 4
[129] Таблица 4 показывает конфигурационную группу преобразований, к которой применяется адаптивное множественное преобразование (AMT) в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[130] Ссылаясь на таблицу 4, конфигурационные группы преобразований определяются на основе режима предсказания, и число групп может быть равно 6 (G0-G5). Помимо этого, G0-G4 соответствуют случаю, в котором интра-предсказание применяется, и G5 представляет сочетания преобразований (либо набор для преобразования или набор сочетаний преобразований), применяемые к остаточному блоку, сформированному согласно интер-предсказанию.
[131] Одно сочетание преобразований может состоять из горизонтального преобразования (или построчного преобразования), применяемого к строкам соответствующего двумерного блока, и вертикального преобразования (или постолбцового преобразования), применяемого к его столбцам.
[132] Здесь, каждая из конфигурационных групп преобразований может иметь четыре потенциально подходящих варианта сочетаний преобразований. Четыре потенциально подходящих варианта сочетаний преобразований могут выбираться или определяться с использованием индексов 0-3 сочетаний преобразований, и индекс сочетания преобразований может кодироваться и передаваться из кодера в декодер.
[133] В варианте осуществления, остаточные данные (или остаточный сигнал), полученные через интра-предсказание, могут иметь различные статистические характеристики согласно режимам интра-предсказания. Соответственно, преобразования, отличные от нормального косинусного преобразования, могут применяться для соответствующих интра-предсказаний, как показано в таблице 4. В настоящем описании, тип преобразования может представляться, например, как DCT-тип 2, DCT-II или DCT-2.
[134] Ссылаясь на таблицу 4, показаны случай, в котором используются 35 режимов интра-предсказания, и случай, в котором используются 67 режимов интра-предсказания. Множество сочетаний преобразований могут применяться для каждой конфигурационной группы преобразований, классифицированной в каждом столбце режимов интра-предсказания. Например, множество сочетаний преобразований могут состоять из четырех сочетаний (преобразований в направлении строк и преобразований в направлении столбцов). В качестве конкретного примера, DST-7 и DCT-5 могут применяться к группе 0 и в (горизонтальном) направлении строк и в (вертикальном) направлении столбцов, и в силу этого могут применяться в сумме четыре группы.
[135] Поскольку в сумме четыре сочетания ядер преобразования могут применяться к каждому режиму интра-предсказания, индекс сочетания преобразований для выбора одной из них может передаваться в расчете на единицу преобразования. В настоящем описании, индекс сочетания преобразований может называться "AMT-индексом" и может представляться посредством amt_idx.
[136] Кроме того, случай, в котором DCT-2 является оптимальным как для направления строк, так и для направления столбцов, может формироваться вследствие характеристик остаточного сигнала в дополнение к ядрам преобразования, показанным в таблице 4. Соответственно, преобразование может адаптивно применяться посредством задания AMT-флага для каждой единицы кодирования. Здесь, DCT-2 может применяться как к направлению строк, так и к направлению столбцов, когда AMT-флаг равен 0, и одна из четырех сочетаний может выбираться или определяться через AMT-индекс, когда AMT-флаг равен 1.
[137] В варианте осуществления, если число коэффициентов преобразования меньше 3 для одной единицы преобразования, когда AMT-флаг равен 0, ядра преобразования таблицы 4 не применяется, и DST-7 может применяться как к направлению строк, так и к направлению столбцов.
[138] В варианте осуществления, если значения коэффициентов преобразования заранее анализируются, и в силу этого число коэффициентов преобразования меньше 3, AMT-индекс не анализируется, и DST-7 применяется, и в силу этого объем передачи дополнительной информации может уменьшаться.
[139] В варианте осуществления, AMT может применяться только тогда, когда как ширина, так и высота единицы преобразования равна или меньше 32.
[140] В варианте осуществления, таблица 4 может быть предварительно установлена посредством оффлайнового обучения.
[141] В варианте осуществления, AMT-индекс может задаваться как один индекс, который может указывать сочетание горизонтального преобразования и вертикального преобразования. Альтернативно, AMT-индекс может задаваться как отдельный индекс горизонтального преобразования и индекс вертикального преобразования.
[142] Фиг. 8 является блок-схемой последовательности операций способа, показывающей процесс выполнения адаптивного множественного преобразования (AMT).
[143] Хотя вариант осуществления относительно разделимого преобразования, которое отдельно применяется в горизонтальном направлении и вертикальном направлении, по существу описывается в настоящем описании, сочетание преобразований может состоять из неразделимых преобразований.
[144] Альтернативно, сочетание преобразований может быть сконфигурировано как смесь разделимых преобразований и неразделимых преобразований. В этом случае, построчный/постолбцовый выбор преобразования или выбор в горизонтальном/вертикальном направлении является необязательным, когда разделимое преобразование используется, и сочетания преобразований из таблицы 4 могут использоваться только тогда, когда выбирается разделимое преобразование.
[145] Помимо этого, способы, предложенные в настоящем описании, могут применяться независимо от первичного преобразования и вторичного преобразования. Таким образом, способы могут применяться к обоим преобразованиям. Здесь, первичное преобразование может означать преобразование для первоначального преобразования остаточного блока, и вторичное преобразование может означать преобразование для применения преобразования к блоку, сформированному в результате первичного преобразования.
[146] Во-первых, устройство 100 кодирования может определять группу преобразований, соответствующую текущему блоку (S805). Здесь, группа преобразований может означать группу преобразований из таблицы 4, но настоящее раскрытие не ограничено этим, и группа преобразований может состоять из других сочетаний преобразований.
[147] Устройство 100 кодирования может выполнять преобразование для доступных потенциально подходящих вариантов сочетаний преобразований в группе преобразований (S810). В результате преобразования, устройство 100 кодирования может определять или выбирать сочетание преобразований с наименьшим значением функции затрат на искажение в зависимости от скорости передачи (RD) (S815). Устройство 100 кодирования может кодировать индекс сочетания преобразований, соответствующий выбранному сочетанию преобразований (S820).
[148] Фиг. 9 является блок-схемой последовательности операций способа, показывающей процесс декодирования для выполнения AMT.
[149] Во-первых, устройство 200 декодирования может определять группу преобразований для текущего блока (S905). Устройство 200 декодирования может анализировать индекс сочетания преобразований, и индекс сочетания преобразований может соответствовать одной из множества сочетаний преобразований в группе преобразований (S910). Устройство 200 декодирования может извлекать сочетание преобразований, соответствующее индексу сочетания преобразований (S915). Здесь, хотя сочетание преобразований может означать сочетание преобразований, показанное в таблице 4, настоящее раскрытие не ограничено этим. Таким образом, сочетание преобразований может быть сконфигурировано как другие сочетания преобразований.
[150] Устройство 200 декодирования может выполнять обратное преобразование в отношении текущего блока на основе сочетания преобразований (S920). Когда сочетание преобразований состоит из построчного преобразования и постолбцового преобразования, построчное преобразование может применяться, и затем постолбцовое преобразование может применяться. Тем не менее настоящее раскрытие не ограничено этим, и построчное преобразование может применяться после того, как постолбцовое преобразование применяется, и когда сочетание преобразований состоит из неразделимых преобразований, неразделимое преобразование может сразу применяться.
[151] В другом варианте осуществления, процесс определения группы преобразований и процесса анализа индекса сочетания преобразований могут выполняться одновременно.
[152] В варианте осуществления настоящего раскрытия, вышеуказанный термин "AMT" может переопределяться в качестве "множественного набора для преобразования или множественного выбора преобразования (MTS)". Связанные с MTS синтаксисы и семантика, описанные ниже, обобщаются в стандарте универсального кодирования видео (VVC) JVET-K1001-v4.
[153] В варианте осуществления настоящего раскрытия, два потенциально подходящих потенциально подходящих MTS-варианта могут использоваться для направленных режимов, и четыре потенциально подходящих потенциально подходящих MTS-варианта могут использоваться для ненаправленных режимов следующим образом.
[154] A) Ненаправленные режимы (DC- и планарный)
[155] DST-7 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 0.
[156] DST-7 используется для вертикального преобразования, и DCT-8 используется для горизонтальных преобразований, когда MTS-индекс равен 1.
[157] DCT-8 используется для вертикального преобразования, и DST-7 используется для горизонтальных преобразований, когда MTS-индекс равен 2.
[158] DCT-8 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 3.
[159] B) Режимы, принадлежащие горизонтальным групповым режимам
[160] DST-7 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 0.
[161] DCT-8 используется для вертикального преобразования, и DST-7 используется для горизонтальных преобразований, когда MTS-индекс равен 1.
[162] C) Режимы, принадлежащие вертикальным групповым режимам
[163] DST-7 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 0.
[164] DST-7 используется для вертикального преобразования, и DCT-8 используется для горизонтальных преобразований, когда MTS-индекс равен 1.
[165] Здесь (в VTM 2.0, в котором используются 67 режимов), горизонтальные групповые режимы включают в себя режимы 2-34 интра-предсказания, и вертикальные режимы включают в себя режимы 35-66 интра-предсказания.
[166] В другом варианте осуществления настоящего раскрытия, три потенциально подходящих потенциально подходящих MTS-варианта используются для всех режимов интра-предсказания.
[167] DST-7 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 0.
[168] DST-7 используется для вертикального преобразования, и DCT-8 используется для горизонтальных преобразований, когда MTS-индекс равен 1.
[169] DCT-8 используется для вертикального преобразования, и DST-7 используется для горизонтальных преобразований, когда MTS-индекс равен 2.
[170] В другом варианте осуществления настоящего раскрытия, два потенциально подходящих потенциально подходящих MTS-варианта используются для режимов направленного предсказания, и три потенциально подходящих потенциально подходящих MTS-варианта используются для ненаправленных режимов.
[171] A) Ненаправленные режимы (DC- и планарный)
[172] DST-7 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 0.
[173] DST-7 используется для вертикального преобразования, и DCT-8 используется для горизонтальных преобразований, когда MTS-индекс равен 1.
[174] DCT-8 используется для вертикального преобразования, и DST-7 используется для горизонтальных преобразований, когда MTS-индекс равен 2.
[175] B) Режимы предсказания, соответствующие горизонтальным групповым режимам
[176] DST-7 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 0.
[177] DCT-8 используется для вертикального преобразования, и DST-7 используется для горизонтальных преобразований, когда MTS-индекс равен 1.
[178] C) Режимы предсказания, соответствующие вертикальным групповым режимам
[179] DST-7 используется для горизонтальных и вертикальных преобразований, когда MTS-индекс равен 0.
[180] DST-7 используется для вертикального преобразования, и DCT-8 используется для горизонтальных преобразований, когда MTS-индекс равен 1.
[181] В другом варианте осуществления настоящего раскрытия, один потенциально подходящий потенциально подходящий MTS-вариант (например, DST-7) может использоваться для всех интра-режимов. В этом случае, время кодирования может уменьшаться на 40% с некоторыми незначительными потерями при кодировании. Помимо этого, один флаг может использоваться для того, чтобы указывать между DCT-2 и DST-7.
[182] Фиг. 10 является блок-схемой последовательности операций способа, показывающей процесс обратного преобразования на основе MTS согласно варианту осуществления настоящего раскрытия.
[183] Устройство 200 декодирования, к которому применяется настоящее раскрытие, может получать sps_mts_intra_enabled_flag или sps_mts_inter_enabled_flag (S1005). Здесь, sps_mts_intra_enabled_flag указывает то, присутствует или нет cu_mts_flag в синтаксисе остаточного кодирования модуля интра-кодирования. Например, cu_mts_flag не присутствует в синтаксисе остаточного кодирования модуля интра-кодирования, если sps_mts_intra_enabled_flag=0, и cu_mts_flag присутствует в синтаксисе остаточного кодирования модуля интра-кодирования, если sps_mts_intra_enabled_flag=1. Помимо этого, sps_mts_inter_enabled_flag указывает то, присутствует или нет cu_mts_flag в синтаксисе остаточного кодирования единицы интер-кодирования. Например, cu_mts_flag не присутствует в синтаксисе остаточного кодирования единицы интер-кодирования, если sps_mts_inter_enabled_flag=0, и cu_mts_flag присутствует в синтаксисе остаточного кодирования единицы интер-кодирования, если sps_mts_inter_enabled_flag=1.
[184] Устройство 200 декодирования может получать cu_mts_flag на основе sps_mts_intra_enabled_flag или sps_mts_inter_enabled_flag (S1010). Например, устройство 200 декодирования может получать cu_mts_flag, когда sps_mts_intra_enabled_flag=1, или sps_mts_inter_enabled_flag=1. Здесь, cu_mts_flag указывает то, применяется или нет MTS к остаточному дискретному отсчету блока преобразования сигналов яркости. Например, MTS не применяется к остаточному дискретному отсчету блока преобразования сигналов яркости, если cu_mts_flag=0, и MTS применяется к остаточному дискретному отсчету блока преобразования сигналов яркости, если cu_mts_flag=1.
[185] Устройство 200 декодирования может получать mts_idx на основе cu_mts_flag (S1015). Например, когда cu_mts_flag=1, устройство 200 декодирования может получать mts_idx. Здесь, mts_idx указывает то, какое ядро преобразования применяется к остаточным дискретным отсчетам сигнала яркости текущего блока преобразования в горизонтальном направлении и/или вертикальном направлении.
[186] Например, по меньшей мере, один из вариантов осуществления, описанных в настоящем описании, может применяться к mts_idx.
[187] Устройство 200 декодирования может извлекать ядро преобразования, соответствующее mts_idx (S1020). Например, ядро преобразования, соответствующее mts_idx, может отдельно задаваться в качестве горизонтального преобразования и вертикального преобразования.
[188] Например, когда MTS применяется к текущему блоку (т.е. cu_mts_flag=1), устройство 200 декодирования может конфигурировать потенциально подходящие MTS-варианты на основе режима интра-предсказания текущего блока. В этом случае, блок-схема последовательности операций способа декодирования по фиг. 10 дополнительно может включать в себя этап конфигурирования потенциально подходящих MTS-вариантов. Затем устройство 200 декодирования может определять потенциально подходящий MTS-вариант, который должен применяться к текущему блоку, из числа сконфигурированных потенциально подходящих MTS-вариантов с использованием mts_idx.
[189] В качестве другого примера, различные ядра преобразования могут применяться к горизонтальному преобразованию и вертикальному преобразованию. Тем не менее настоящее раскрытие не ограничено этим, и идентичное ядро преобразования может применяться к горизонтальному преобразованию и вертикальному преобразованию.
[190] Устройство 200 декодирования может выполнять обратное преобразование на основе ядра преобразования (S1025).
[191] Кроме того, в этом подробном описании, MTS может представляться как AMT или EMT, и mts_idx может представляться как AMT_idx, EMT_idx, AMT_TU_idx EMT_TU_idx и т.п., но настоящее раскрытие не ограничено этим.
[192] Настоящее раскрытие описывается посредством разделения на случай, в котором MTS применяется, и случай, в котором MTS не применяется, на основе MTS-флага, но не ограничено таким выражением. Например, то применяется или нет MTS, может иметь идентичное смысловое значение с тем, следует или нет использовать другие типы преобразования (или ядра преобразования), отличные от предварительно заданного конкретного типа преобразования (который может называться "базовым типом преобразования", "типом преобразования по умолчанию" и т.д.). Если MTS применяется, тип преобразования (например, любой один тип преобразования или объединенный тип преобразования из двух или более типов преобразования из множества типов преобразования), отличный от базового типа преобразования, может использоваться для преобразования. Дополнительно, если MTS не применяется, базовый тип преобразования может использоваться для преобразования. В варианте осуществления, базовый тип преобразования может конфигурироваться (или задаваться) в качестве DCT2.
[193] В качестве примера, когда применяются синтаксис MTS-флага, указывающий то, применяется или нет MTS к текущему блоку преобразования, и MTS, синтаксис MTS-индекса, указывающий тип преобразования, применяемый к текущему блоку преобразования, также может отдельно передаваться из кодера в декодер. В качестве другого примера, когда применяются то, применяется или нет MTS к текущему блоку преобразования, и MTS, синтаксис (например, MTS-индекс), включающий в себя все типы преобразования, применяемые к текущему блоку преобразования, также может передаваться из кодера в декодер. Таким образом, во втором примере, синтаксис (или синтаксический элемент), указывающий тип преобразования, применяемый к текущему блоку (или единице) преобразования, может передаваться из кодера в декодер во всех группах типов преобразования (или наборах типов преобразования), включающих в себя вышеописанный базовый тип преобразования.
[194] Соответственно, несмотря на выражение, синтаксис (MTS-индекс), указывающий тип преобразования, применяемый к текущему блоку преобразования, может включать в себя информацию относительно того, применяется или нет MTS. Другими словами, во втором примере, только MTS-индекс может передаваться в служебных сигналах без MTS-флага, и в этом случае, очевидно, что DCT2 включается в MTS. Тем не менее в настоящем раскрытии описывается то, что применение DCT2 означает то, что MTS не применяется. Тем не менее технический диапазон относительно MTS не ограничен соответствующим определением.
[195] Фиг. 11 является блок-схемой устройства, которое выполняет декодирование на основе MTS согласно варианту осуществления настоящего раскрытия.
[196] Устройство 200 декодирования, к которому применяется настоящее раскрытие, может включать в себя модуль 1105 получения параметров последовательности, модуль 1110 получения MTS-флагов, модуль 1115 получения MTS-индексов и модуль 1120 извлечения ядер преобразования.
[197] Модуль 1105 получения параметров последовательности может получать sps_mts_intra_enabled_flag или sps_mts_inter_enabled_flag. Здесь, sps_mts_intra_enabled_flag указывает то, присутствует или нет cu_mts_flag в синтаксисе остаточного кодирования модуля интра-кодирования, и sps_mts_inter_enabled_flag указывает то, присутствует или нет cu_mts_flag в синтаксисе остаточного кодирования единицы интер-кодирования. Описание со ссылкой на фиг. 10 может применяться к конкретному примеру.
[198] Модуль 1110 получения MTS-флагов может получать cu_mts_flag на основе sps_mts_intra_enabled_flag или sps_mts_inter_enabled_flag. Например, модуль 1110 получения MTS-флагов может получать cu_mts_flag, когда sps_mts_intra_enabled_flag=1, или sps_mts_inter_enabled_flag=1. Здесь, cu_mts_flag указывает то, применяется или нет MTS к остаточному дискретному отсчету блока преобразования сигналов яркости. Описание со ссылкой на фиг. 10 может применяться к конкретному примеру.
[199] Модуль 1115 получения MTS-индексов может получать mts_idx на основе cu_mts_flag. Например, модуль 1115 получения MTS-индексов может получать mts_idx, когда cu_mts_flag=1. Здесь, mts_idx указывает то, какое ядро преобразования применяется к остаточным дискретным отсчетам сигнала яркости текущего блока преобразования в горизонтальном направлении и/или вертикальном направлении. Описание со ссылкой на фиг. 10 может применяться к конкретному примеру.
[200] Модуль 1120 извлечения ядер преобразования может извлекать ядро преобразования, соответствующее mts_idx. Затем устройство 200 декодирования может выполнять обратное преобразование на основе извлеченного ядра преобразования.
[201] Зависимое от режима неразделимое вторичное преобразование (MDNSST) вводится. Чтобы поддерживать низкую сложность, MDNSST применяется только к низкочастотным коэффициентам после первичного преобразования. Дополнительно, неразделимое преобразование, в основном применяемое к низкочастотным коэффициентам, может называться "LFNST (низкочастотным неразделимым преобразованием)". Если как ширина (W), так и высота (H) блока коэффициентов преобразования равны или выше 8, неразделимое вторичное преобразование 8×8 применяется к верхней левой области 8x8 блока коэффициентов преобразования. Неразделимое вторичное преобразование 4×4 применяется, если ширина или высота меньше 8, и неразделимое вторичное преобразование 4×4 может выполняться для верхнего левого min (8, W) × min (8, H) блока коэффициентов преобразования. Здесь, min(A, B) представляет собой функцию вывода меньшего значения между A и B. Дополнительно, WxH является размером блока, W представляет ширину, и H представляет высоту.
[202] В сумме 35x3 неразделимых вторичных преобразований могут присутствовать для размеров блоков, 4×4 и 8×8. Здесь, 35 является числом наборов для преобразования, указываемых посредством режимов интра-предсказания, и 3 является числом потенциально подходящих NSST-вариантов для каждого режима предсказания. Преобразование из режимов интра-предсказания в наборы для преобразования может задаваться в следующей таблице 5.
[203] Табл. 5
[204] Чтобы указывать ядро преобразования из наборов для преобразования, NSST-индекс (NSST idx) может кодироваться. Когда NSST не применяется, NSST-индекс, равный 0, передается в служебных сигналах.
[205] Фиг. 12 и 13 являются блок-схемами последовательности операций способа, показывающими кодирование/декодирование, к которым применяется вторичное преобразование, в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[206] В JEM, вторичное преобразование (MDNSST) не применяется для блока, кодированного с режимом пропуска преобразования. Когда MDNSST-индекс передается в служебных сигналах для CU и не равен нулю, MDNSST не используется для блока компонента, который кодируется с режимом пропуска преобразования в CU. Общая структура кодирования, включающая в себя кодирование коэффициентов и кодирование NSST-индексов, показывается на фиг. 12 и 13. CBF-флаг кодируется, чтобы определять то, выполняются или нет кодирование коэффициентов и NSST-кодирование. На фиг. 12 и 13, CBF-флаг может представлять CBF-флаг блока сигналов яркости (флаг cbf_luma) или CBF-флаг блока сигналов цветности (флаг cbf_cb или флаг cbf_cr). Когда CBF-флаг равен 1, коэффициенты преобразования кодируются.
[207] Ссылаясь на фиг 12, устройство 100 кодирования проверяет то, равен или нет CBF 1 (S1205). Если CBF равен 0, устройство 100 кодирования не выполняет кодирование коэффициентов преобразования и кодирование NSST-индексов. Если CBF равен 1, устройство 100 кодирования выполняет кодирование для коэффициентов преобразования (S1210). После этого, устройство 100 кодирования определяет то, следует или нет выполнять кодирование NSST-индексов (S1215), и выполняет кодирование NSST-индексов (S1220). Когда кодирование NSST-индексов не применяется, устройство 100 кодирования может завершать процедуру преобразования без применения NSST и выполнять следующий этап (например, квантование).
[208] Ссылаясь на фиг 13, устройство 200 декодирования проверяет то, равен или нет CBF 1 (S1305). Если CBF равен 0, устройство 200 декодирования не выполняет декодирование коэффициентов преобразования и декодирование NSST-индексов. Если CBF равен 1, устройство 200 декодирования выполняет декодирование для коэффициентов преобразования (S1310). После этого, устройство 200 декодирования определяет то, следует или нет выполнять кодирование NSST-индексов (S1315) и анализировать NSST-индекс (S1320).
[209] NSST может применяться к верхней левой области 8×8 или 4×4 вместо применения ко всему блоку (TU в случае HEVC), к которому применяется первичное преобразование. Например, NSST 8×8 может применяться, когда размер блока составляет 8×8 или более (т.е. как ширина, так и высота блока превышает или равна 8), и NSST 4×4 может применяться, когда размер блока меньше 8×8 (т.е. как ширина, так и высота меньше 8). Дополнительно, когда NSST 8×8 применяется (т.е. когда размер блока составляет 8x8 или больше), NSST 4×4 может применяться в расчете на блок 4×4 (т.е. левая верхняя область 8×8 разделяется на блоки 4×4, и NSST 4×4 применяется к каждому блоку 4×4). Как NSST 8×8, так и NSST 4×4 могут определяться согласно вышеописанной конфигурации наборов для преобразования, и NSST 8×8 может иметь 64 фрагмента входных данных и 64 фрагмента выходных данных, и NSST 4×4 может иметь 16 вводов и 16 выводов, поскольку они представляют собой неразделимые преобразования.
[210] Фиг. 14 и 15 показывают вариант осуществления, к которому применяется настоящее раскрытие, фиг. 14 является схемой для описания вращения Гивенса, и фиг. 15 показывает конфигурацию одного раунда в NSST 4×4, состоящем из слоев вращений Гивенса и перестановок.
[211] Как NSST 8×8, так и NSST 4×4 могут быть сконфигурированы как иерархические сочетания вращений Гивенса. Матрица, соответствующая одному вращению Гивенса, представляется как уравнение 1, и матричное произведение представляется как фиг. 14.
[212] уравнение 1
[213] На фиг. 14 вывод tm и tn согласно вращению Гивенса может вычисляться так, как представлено посредством уравнения 2.
[214] уравнение 2
[215] Поскольку вращение Гивенса вращает два фрагмента данных, как показано на фиг. 14, 32 или 8 вращений Гивенса требуются, чтобы обрабатывать 64 (в случае NSST 8×8) или 16 (в случае NSST 4×4) фрагментов данных. Соответственно, группа из 32 или 8 вращений Гивенса может формировать слой вращений Гивенса. Как показано на фиг. 15, выходные данные для одного слоя вращений Гивенса передаются как входные данные для следующего слоя вращений Гивенса через перестановку (перемешивание). Шаблон, переставляемый так, как показано на фиг. 15, регулярно задается, и в случае NSST 4×3, четыре слоя вращений Гивенса и соответствующие перестановки формируют один раунд. NSST 4×4 выполняется посредством двух раундов, и NSST 8×8 выполняется посредством четырех раундов. Хотя различные раунды используют идентичный шаблон перестановок, применяемые углы вращения Гивенса отличаются. Соответственно, угловые данные для всех вращений Гивенса, составляющих каждую перестановку, должны храниться.
[216] В качестве конечного этапа, еще одна перестановка в завершение выполняется для данных, выводимых через слои вращений Гивенса, и информация относительно соответствующей перестановки хранится отдельно для каждой перестановки. Соответствующая перестановка выполняется в конце прямого NSST, и соответствующая обратная перестановка первоначально применяется в обратном NSST.
[217] Обратное NSST выполняет в обратном порядке вращения в слоях вращений Гивенса и перестановки, применяемые к прямому NSST, и выполняет вращение посредством принятия отрицательного значения для каждого угла вращения Гивенса.
[218] RST (сокращенное вторичное преобразование)
[219] Фиг. 16 показывает операцию RST в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[220] Когда ортогональная матрица, представляющая преобразование, составляет N×N, сокращенное преобразование (RT) оставляет только R из N базовых векторов преобразования (R<N). Матрица относительно прямого RT, которое формирует коэффициенты преобразования, может задаваться посредством уравнения 3.
[221] уравнение 3
[222] Поскольку матрица относительно обратного RT представляет собой транспонированную матрицу для матрицы прямого RT, применение прямого RT и обратного RT схематично иллюстрируется, как показано на фиг. 16A и 16B.
[223] RT, применяемое к верхнему левому блоку 8x8 из блока коэффициентов преобразования, к которому применяется первичное преобразование, может называться "RST 8×8". Когда R задается равным 16 в уравнении 3, прямое RST 8×8 имеет форму матрицы 16×64, и обратное RST 8×8 имеет форму матрицы 64×16. В этом случае, матрица M×N может состоять из M строк и N столбцов. Дополнительно, конфигурация наборов для преобразования, как показано в таблице 5, может применяться к RST 8×8. Таким образом, RST 8×8 может определяться на основе наборов для преобразования согласно режимам интра-предсказания, как показано в таблице 5. Поскольку один набор для преобразования состоит из двух или трех преобразований согласно режиму интра-предсказания, может выбираться один максимум из четырех преобразований, включающих в себя случай, в котором вторичное преобразование не применяется (одно преобразование может соответствовать анизотропной матрице). Когда индексы 0, 1, 2 и 3 назначаются четырем преобразованиям, преобразование, которое должно применяться, может быть обозначено посредством передачи в служебных сигналах синтаксического элемента, соответствующего NSST-индексу для каждого блока коэффициентов преобразования. Например, индекс 9 может назначаться анизотропной матрице, т.е. случаю, в котором вторичное преобразование не применяется. Следовательно, NSST 8×8 может быть обозначено согласно JEM NSST, и RST 8×8 может быть обозначено согласно конфигурации RST для верхнего левого блока 8×8 через NSST-индекс.
[224] Фиг. 17 является схемой, показывающей процесс выполнения обратного сканирования от шестьдесят четвертого коэффициента до семнадцатого коэффициента в обратном порядке сканирования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[225] Когда RST 8×8, как представлено посредством уравнения 3, применяется, 16 допустимых коэффициентов преобразования формируются, и в силу этого 64 фрагмента входных данных, составляющих область 8×8, уменьшаются до 16 фрагментов выходных данных, и только четверть области заполняется допустимыми коэффициентами преобразования согласно точке зрения двумерной области. Соответственно, 16 фрагментов выходных данных, полученных посредством применения прямого RST 8×8, заполняют верхнюю левую область по фиг. 17.
[226] На фиг. 17, верхняя левая область 4×4 становится интересующей областью (ROI), заполненной допустимыми коэффициентами преобразования, и оставшаяся область является незанятой. Незанятая область может заполняться 0 в качестве значения по умолчанию. Если ненулевые допустимые коэффициенты преобразования обнаруживаются в областях, отличных от ROI по фиг. 17, RST 8×8 определенно не применяется, и в силу этого соответствующее кодирование может опускаться для соответствующего NSST-индекса. С другой стороны, если ненулевые допустимые коэффициенты преобразования не обнаруживаются в областях, отличных от ROI по фиг. 17 (RST 8×8 применяется, или области, отличные от ROI, заполняются 0), NSST-индекс может кодироваться, поскольку может применяться RST 8×8. Такое условное кодирование NSST-индексов требует проверки присутствия или отсутствия ненулевого коэффициента преобразования и в силу этого может выполняться после процесса остаточного кодирования.
[227] Фиг. 18 является примерной блок-схемой последовательности операций способа, показывающей кодирование с использованием индикатора одного преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[228] В варианте осуществления настоящего раскрытия, индикатор одного преобразования (STI) вводится. Одно преобразование может применяться, когда STI активируется (STI-кодирование == 1) вместо последовательно используемых двух преобразований (первичного преобразования и вторичного преобразования). Здесь, одно преобразование может представлять собой любой тип преобразования. Например, одно преобразование может представлять собой разделимое преобразование или неразделимое преобразование. Одно преобразование может представлять собой преобразование, аппроксимированное из неразделимого преобразования. Индекс одного преобразования (ST_idx на фиг. 18) может передаваться в служебных сигналах, когда STI активирован. Здесь, индекс одного преобразования может указывать преобразование, которое должно применяться, из числа доступных потенциально подходящих вариантов преобразования.
[229] Ссылаясь на фиг 18, устройство 100 кодирования определяет то, равен или нет CBF 1 (S1805). Когда CBF равен 1, устройство 100 кодирования определяет то, применяется или нет STI-кодирование (S1810). Когда STI-кодирование применяется, устройство 100 кодирования кодирует STI-индекс STI_idx (S1845) и выполняет кодирование для коэффициента преобразования (S1850). Когда STI-кодирование не применяется, устройство 100 кодирования кодирует флаг EMT_CU_Flag, указывающий то, применяется или нет EMT (или MTS) на уровне CU (S1815). После этого, устройство 100 кодирования выполняет кодирование для коэффициентов преобразования (S1820). Затем устройство 100 кодирования определяет то, применяется или нет EMT к единице преобразования (TU) (S1825). Когда EMT применяется к TU, устройство 100 кодирования кодирует индекс EMT_TU Idx первичного преобразования, применяемый к TU (S1830). Затем, устройство 100 кодирования определяет то, применяется или нет NSST (S1835). Когда NSST применяется, устройство 100 кодирования кодирует индекс NSST_Idx, указывающий NSST, которое должно применяться (S1840).
[230] В примере, если условия кодирования одного преобразования удовлетворяются/активируются (например, STI_coding == 1), индекс ST_Idx одного преобразования может неявно извлекаться вместо передачи в служебных сигналах. ST_idx может неявно определяться на основе размера блока и режима интра-предсказания. Здесь, ST_Idx может указывать преобразование (или ядро преобразования), применяемое к текущему блоку преобразования.
[231] STI может активироваться, если одно или более следующих условий удовлетворяются (STI_coding == 1).
[232] 1) Размер блока соответствует предварительно определенному значению, такому как 4 или 8.
[233] 2) Ширина блока== высота блока (квадратный блок)
[234] 3) Режим интра-предсказания представляет собой один из предварительно определенных режимов, таких как DC- и планарные режимы.
[235] В другом примере, флаг STI-кодирования может передаваться в служебных сигналах для того, чтобы указывать то, применяется или нет одно преобразование. Флаг STI-кодирования может передаваться в служебных сигналах на основе значения STI-кодирования и CBF. Например, флаг STI-кодирования может передаваться в служебных сигналах, когда CBF равен 1, и STI-кодирование активируется. Кроме того, флаг STI-кодирования может условно передаваться в служебных сигналах с учетом размера блока, формы блока (квадратный блок или неквадратный блок) или режима интра-предсказания.
[236] Чтобы использовать информацию, полученную во время кодирования коэффициентов, ST_idx может определяться после кодирования коэффициентов. В примере, ST_idx может неявно определяться на основе размера блока, режима интра-предсказания и числа ненулевых коэффициентов. В другом примере, ST_idx может условно кодироваться/декодироваться на основе размера блока, формы блока, режима интра-предсказания и/или числа ненулевых коэффициентов. В другом примере, ST_idx-передача служебных сигналов может опускаться в зависимости от распределения ненулевых коэффициентов (т.е. позиций ненулевых коэффициентов). В частности, когда ненулевые коэффициенты обнаруживаются в области, отличной от верхней левой области 4×4, ST_idx-передача служебных сигналов может опускаться.
[237] Фиг. 19 является примерной блок-схемой последовательности операций способа, показывающей кодирование с использованием индикатора унифицированного преобразования (UTI) в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[238] В варианте осуществления настоящего раскрытия, индикатор унифицированного преобразования вводится. UTI включает в себя индикатор первичного преобразования и индикатор вторичного преобразования.
[239] Ссылаясь на фиг 19, устройство 100 кодирования определяет то, равен или нет CBF 1 (S1905). Когда CBF равен 1, устройство 100 кодирования определяет то, применяется или нет UTI-кодирование (S1910). Когда UTI-кодирование применяется, устройство 100 кодирования кодирует UTI-индекс UTI_idx (S1945) и выполняет кодирование для коэффициента преобразования (S1950). Когда UTI-кодирование не применяется, устройство 100 кодирования кодирует флаг EMT_CU_Flag, указывающий то, применяется или нет EMT (или MTS) на уровне CU (S1915). После этого, устройство 100 кодирования выполняет кодирование для коэффициентов преобразования (S1920). Затем устройство 100 кодирования определяет то, применяется или нет EMT к единице преобразования (TU) (S1925). Когда EMT применяется к TU, устройство 100 кодирования кодирует индекс EMT_TU Idx первичного преобразования, применяемый к TU (S1930). Затем, устройство 100 кодирования определяет то, применяется или нет NSST (S1935). Когда NSST применяется, устройство 100 кодирования кодирует индекс NSST_Idx, указывающий NSST, которое должно применяться (S1940).
[240] UTI может кодироваться для каждой предварительно определенной единицы (CTU или CU).
[241] Режим UTI-кодирования может зависеть от следующих условий.
[242] 1) Размер блока
[243] 2) Форма блока
[244] 3) Режим интра-предсказания
[245] То, как выводить/извлекать индекс базового преобразования из UTI, задается заранее. То, как выводить/извлекать индекс вторичного преобразования из UTI, задается заранее.
[246] Синтаксическая структура для UTI может необязательно использоваться. UTI может зависеть от CU-(TU)-размера. Например, меньшая CU (TU) может иметь UTI-индекс в более узком диапазоне. В примере, UTI может указывать только индекс базового преобразования, если предварительно заданное условие (например, размер блока меньше предварительно заданного порогового значения) удовлетворяется.
[247] Табл. 6
[248] В другом примере, UTI-индекс может считаться индексом базового преобразования, когда вторичное преобразование не указывается для использования (например, индекс вторичного преобразования == 0, либо вторичное преобразование уже предварительно определяется). Идентично этому, UTI-индекс может считаться индексом вторичного преобразования, когда индекс базового преобразования считается известным. В частности, с учетом режима интра-предсказания и размера блока, предварительно определенное базовое преобразование может использоваться.
[249] Фиг. 20 иллюстрирует две примерных блок-схемы последовательности операций способа, показывающих кодирование с использованием UTI в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[250] В другом примере, структура кодирования с преобразованием может использовать кодирование UTI-индексов, как показано на фиг. 20. Здесь, UTI-индекс может кодироваться раньше кодирования коэффициентов или позже кодирования коэффициентов.
[251] Ссылаясь на левую блок-схему последовательности операций способа по фиг. 20, устройство 100 кодирования проверяет то, равен или нет CBF 1 (S2005). Когда CBF равен 1, устройство 100 кодирования кодирует UTI-индекс UTI_idx (S2010) и выполняет кодирование для коэффициентов преобразования (S2015).
[252] Ссылаясь на правую блок-схему последовательности операций способа по фиг. 20, устройство 100 кодирования проверяет то, равен или нет CBF 1 (S2055). Когда CBF равен 1, устройство 100 кодирования выполняет кодирование для коэффициентов преобразования (S2060) и кодирует UTI-индекс UTI_idx (S2065).
[253] В другом варианте осуществления настоящего раскрытия, вводятся способы скрытия данных и неявного кодирования для индикаторов преобразований. Здесь, индикаторы преобразований могут включать в себя ST_idx, UTI_idx, EMT_CU_Flag, EMT_TU_Flag, NSST_Idx и любой вид связанного с преобразованием индекса, который может использоваться для того, чтобы указывать ядро преобразования. Вышеуказанный индикатор преобразования может не передаваться в служебных сигналах, но соответствующая информация может вставляться в процесс кодирования коэффициентов (она может извлекаться во время процесса кодирования коэффициентов). Процесс кодирования коэффициентов может включать в себя следующие части.
[254] - Last_position_x, Last_position_y
[255] - Флаг группы
[256] - Карта значимости
[257] - Флаг Greather_than_1
[258] - Флаг Greather_than_2
[259] - Кодирование по оставшимся уровням
[260] - Кодирование по знакам
[261] Например, информация индикатора преобразования может вставляться в один или более вышеуказанных процессов кодирования коэффициентов. Чтобы вставлять информацию индикатора преобразования, следующее может рассматриваться совместно.
[262] - Шаблон кодирования по знакам
[263] - Абсолютное значение оставшегося уровня
[264] - Число для флага Greather_than_1
[265] - Значения Last_position_X и Last_position_Y
[266] Вышеуказанный способ скрытия данных может рассматриваться условно. Например, способ скрытия данных может зависеть от числа ненулевых коэффициентов.
[267] В другом примере, NSST_idx и EMT_idx могут быть зависимыми. Например, NSST_idx может не быть нулевым, когда EMT_CU_Flag равен нулю (или единице). В этом случае, NSST_idx-1 может передаваться в служебных сигналах вместо NSST_idx.
[268] В другом варианте осуществления настоящего раскрытия, преобразование наборов для NSST-преобразования на основе режима интра-предсказания вводится, как показано в следующей таблице 7. Хотя NSST описывается ниже в качестве примера неразделимого преобразования, другая известная терминология (например, LFNST) может использоваться для неразделимого преобразования. Например, NSST-набор и NSST-индекс могут заменяться LFNST-набором и LFNST-индексом. Дополнительно, RST, описанное в этом подробном описании, также может заменяться LFNST в качестве примера неразделимого преобразования (например, LFNST) с использованием неквадратной матрицы преобразования, имеющей уменьшенную входную длину и/или уменьшенную выходную длину в квадратной матрице неразделимого преобразования, применяемой, по меньшей мере, к области (к верхней левой области 4×4 или 8×8 либо к области, отличной от нижней правой области 4×4 в блоке 8×8) блока преобразования.
[269] Табл. 7
[270] Число NSST-наборов может перекомпоновываться от 0 до 3, как показано в таблице 8.
[271] Табл. 8
[272] В наборе для NSST-преобразования, используются только четыре набора для преобразования (вместо 35), так что требуемое пространство запоминающего устройства может уменьшаться.
[273] Помимо этого, различные числа ядер преобразования в расчете на набор для преобразования могут использоваться следующим образом.
[274] Случай A: Два доступных ядра преобразования для каждого набора для преобразования используются, так что диапазон NSST-индексов составляет 0-2. Например, когда NSST-индекс равен 0, вторичное преобразование (обратное вторичное преобразование на основе декодера) может не применяться. Когда NSST-индекс равен 1 или 2, вторичное преобразование может применяться. Набор для преобразования может включать в себя два ядра преобразования, в которые может преобразовываться индекс 1 или 2.
[275] Табл. 9
[276] Ссылаясь на таблицу 9, два ядра преобразования используются для каждого из наборов 0-3 для неразделимого преобразования (NSST или LFNST).
[277] Случай B: Два доступных ядра преобразования используются для набора 0 для преобразования, и один используется для других. Доступные NSST-индексы для набора 0 для преобразования (DC- и планарный) равны 0-2. Тем не менее NSST-индексы для других режимов (наборы 1, 2 и 3 для преобразования) равны 0-1.
[278] Табл. 10
[279] Ссылаясь на таблицу 10, два ядра неразделимого преобразования задаются для набора для неразделимого преобразования (NSST), соответствующего индексу 0, и одно ядро неразделимого преобразования задается для каждого из наборов для неразделимого преобразования (NSST), соответствующих индексам 1, 2 и 3.
[280] Случай C: Одно ядро преобразования используется в расчете на ядро преобразования, и диапазон NSST-индексов равен 0-1.
[281] Табл. 11
[282] Фиг. 21 является примерной блок-схемой последовательности операций способа, показывающей кодирование для выполнения преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[283] Устройство 100 кодирования выполняет первичное преобразование для остаточного блока (S2105). Первичное преобразование может называться "базовым преобразованием". В качестве варианта осуществления, устройство 100 кодирования может выполнять первичное преобразование с использованием вышеуказанного MTS. Дополнительно, устройство 100 кодирования может передавать MTS-индекс, указывающий конкретный MTS из числа потенциально подходящих MTS-вариантов, в устройство 200 декодирования. Здесь, потенциально подходящие MTS-варианты могут быть сконфигурированы на основе режима интра-предсказания текущего блока.
[284] Устройство 100 кодирования определяет то, следует или нет применять вторичное преобразование (S2110). Например, устройство 100 кодирования может определять то, следует или нет применять вторичное преобразование, на основе коэффициентов преобразования первично преобразованного остаточного блока. Например, вторичное преобразование может представлять собой NSST или RST.
[285] Устройство 100 кодирования определяет вторичное преобразование (S2115). Здесь, устройство 100 кодирования может определять вторичное преобразование на основе набора для NSST-(или RST-)преобразования, обозначенного согласно режиму интра-предсказания.
[286] Например, устройство 100 кодирования может определять область, к которой должно применяться вторичное преобразование, на основе размера текущего блока до этапа S2115.
[287] Устройство 100 кодирования выполняет вторичное преобразование, определенное на этапе S2115 (S2120).
[288] Фиг. 22 примерной блок-схемой последовательности операций способа, показывающей декодирование для выполнения преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[289] Устройство 200 декодирования определяет то, следует или нет применять обратное вторичное преобразование (S2205). Например, обратное вторичное преобразование может представлять собой NSST или RST. Например, устройство 200 декодирования может определять то, следует или нет применять обратное вторичное преобразование, на основе флага вторичного преобразования, принимаемого из устройства 100 кодирования.
[290] Устройство 200 декодирования определяет обратное вторичное преобразование (S2210). Здесь, устройство 200 декодирования может определять обратное вторичное преобразование, применяемое к текущему блоку, на основе набора для NSST-(или RST-)преобразования, обозначенного согласно вышеуказанному режиму интра-предсказания.
[291] Дополнительно, например, устройство 200 декодирования может определять область, к которой должно применяться обратное вторичное преобразование, на основе размера текущего блока до этапа S2210.
[292] Устройство 200 декодирования выполняет обратное вторичное преобразование для обратно квантованного остаточного блока с использованием обратного вторичного преобразования, определенного на этапе S2210 (S2215).
[293] Устройство декодирования выполняет обратное первичное преобразование для обратно вторично преобразованного остаточного блока (S2220). Обратное первичное преобразование может называться "обратным базовым преобразованием". В варианте осуществления, устройство 200 декодирования может выполнять обратное первичное преобразование с использованием вышеуказанного MTS. Дополнительно, в качестве примера, устройство 200 декодирования может определять то, применяется или нет MTS к текущему блоку, до этапа S2220. В этом случае, блок-схема последовательности операций способа декодирования по фиг. 22 дополнительно может включать в себя этап определения того, применяется или нет MTS.
[294] Например, когда MTS применяется к текущему блоку (т.е. cu_mts_flag=1), устройство 200 декодирования может конфигурировать потенциально подходящие MTS-варианты на основе режима интра-предсказания текущего блока. В этом случае, блок-схема последовательности операций способа декодирования по фиг. 22 дополнительно может включать в себя этап конфигурирования потенциально подходящих MTS-вариантов. Помимо этого, устройство 200 декодирования может определять обратное первичное преобразование, применяемое к текущему блоку, с использованием mtx_idx, указывающего конкретный MTS из числа сконфигурированных потенциально подходящих MTS-вариантов.
[295] Фиг. 23 является подробной блок-схемой модуля 120 преобразования в устройстве 100 кодирования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[296] Устройство 100 кодирования, к которому применяется вариант осуществления настоящего раскрытия, может включать в себя модуль 2310 первичного преобразования, модуль 2320 определения необходимости применения вторичного преобразования, модуль 2330 определения вторичного преобразования и модуль 2340 вторичного преобразования.
[297] Модуль 2310 первичного преобразования может выполнять первичное преобразование для остаточного блока. Первичное преобразование может называться "базовым преобразованием". В качестве варианта осуществления, модуль 2310 первичного преобразования может выполнять первичное преобразование с использованием вышеуказанного MTS. Дополнительно, модуль 2310 первичного преобразования может передавать MTS-индекс, указывающий конкретный MTS из числа потенциально подходящих MTS-вариантов, в устройство 200 декодирования. Здесь, потенциально подходящие MTS-варианты могут быть сконфигурированы на основе режима интра-предсказания текущего блока.
[298] Модуль 2320 определения необходимости применения вторичного преобразования может определять то, следует или нет применять вторичное преобразование. Например, модуль 2320 определения необходимости применения вторичного преобразования может определять то, следует или нет применять вторичное преобразование, на основе коэффициентов преобразования первично преобразованного остаточного блока. Например, вторичное преобразование может представлять собой NSST или RST.
[299] Модуль 2330 определения вторичного преобразования определяет вторичное преобразование. Здесь, модуль 2330 определения вторичного преобразования может определять вторичное преобразование на основе набора для NSST-(или RST-)преобразования, обозначенного согласно режиму интра-предсказания, как описано выше.
[300] Например, модуль 2330 определения вторичного преобразования может определять область, к которой должно применяться вторичное преобразование, на основе размера текущего блока.
[301] Модуль 2340 вторичного преобразования может выполнять определенное вторичное преобразование.
[302] Фиг. 24 является подробной блок-схемой модуля 230 обратного преобразования в устройстве 200 декодирования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[303] Устройство 200 декодирования, к которому применяется настоящее раскрытие, включает в себя модуль 2410 определения необходимости применения обратного вторичного преобразования, модуль 2420 определения обратного вторичного преобразования, модуль 2430 обратного вторичного преобразования и модуль 2440 обратного первичного преобразования.
[304] Модуль 2410 определения необходимости применения обратного вторичного преобразования может определять то, следует или нет применять обратное вторичное преобразование. Например, обратное вторичное преобразование может представлять собой NSST или RST. Например, модуль 2410 определения необходимости применения обратного вторичного преобразования может определять то, следует или нет применять обратное вторичное преобразование, на основе флага вторичного преобразования, принимаемого из устройства 100 кодирования.
[305] Модуль 2420 определения обратного вторичного преобразования может определять обратное вторичное преобразование. Здесь, модуль 2420 определения обратного вторичного преобразования может определять обратное вторичное преобразование, применяемое к текущему блоку, на основе набора для NSST-(или RST-)преобразования, обозначенного согласно режиму интра-предсказания.
[306] Дополнительно, например, модуль 2420 определения обратного вторичного преобразования может определять область, к которой должно применяться обратное вторичное преобразование, на основе размера текущего блока.
[307] Модуль 2430 обратного вторичного преобразования может выполнять обратное вторичное преобразование для обратно квантованного остаточного блока с использованием определенного обратного вторичного преобразования.
[308] Модуль 2440 обратного первичного преобразования может выполнять обратное первичное преобразование для обратно вторично преобразованного остаточного блока. В варианте осуществления, модуль 2440 обратного первичного преобразования может выполнять обратное первичное преобразование с использованием вышеуказанного MTS. Дополнительно, в качестве примера, модуль 2440 обратного первичного преобразования может определять то, применяется или нет MTS к текущему блоку.
[309] Например, когда MTS применяется к текущему блоку (т.е. cu_mts_flag=1), модуль 2440 обратного первичного преобразования может конфигурировать потенциально подходящие MTS-варианты на основе режима интра-предсказания текущего блока. Помимо этого, модуль 2440 обратного первичного преобразования может определять обратное первичное преобразование, применяемое к текущему блоку, с использованием mtx_idx, указывающего конкретный MTS из числа сконфигурированных потенциально подходящих MTS-вариантов.
[310] Фиг. 25 является блок-схемой последовательности операций способа обработки видеосигнала в качестве варианта осуществления, к которому применяется настоящее раскрытие. Процесс блок-схемы последовательности операций способа по фиг. 25 может выполняться посредством устройства 200 декодирования или модуля 230 обратного преобразования.
[311] Во-первых, устройство 200 декодирования может определять то, применяется или нет обратное неразделимое преобразование к текущему блоку, на основе индекса неразделимого преобразования и ширины и высоты текущего блока. Например, если индекс неразделимого преобразования не равен 0, и ширина и высота текущего блока равны или выше 4, устройство 200 декодирования может определять то, что неразделимое преобразование применяется. Если индекс неразделимого преобразования равен 0, либо ширина или высота текущего блока меньше 4, устройство 200 декодирования может опускать обратное неразделимое преобразование и выполнять обратное первичное преобразование.
[312] На этапе S2505, устройство 200 декодирования определяет индекс набора для неразделимого преобразования, указывающий набор для неразделимого преобразования, используемый для неразделимого преобразования текущего блока, из числа наборов для неразделимого преобразования, предварительно заданных на основе режима интра-предсказания текущего блока. Индекс набора для неразделимого преобразования может задаваться таким образом, что он выделяется каждому из четырех наборов для преобразования, сконфигурированных согласно диапазону режима интра-предсказания, как показано в таблице 7 или таблице 8. Таким образом, индекс набора для неразделимого преобразования может определяться в качестве первого значения индекса, когда режим интра-предсказания равен 0 и 1, определяться в качестве второго значения индекса, когда режим интра-предсказания равен 2-12 или 56-66, определяться в качестве третьего значения индекса, когда режим интра-предсказания равен 13-23 или 45-55, и определяться в качестве четвертого значения индекса, когда режим интра-предсказания равен 24-44, как показано в таблице 7 или таблице 8.
[313] Здесь, каждый из предварительно заданных наборов для неразделимого преобразования может включать в себя два ядра преобразования, как показано в таблице 9. Дополнительно, каждый из предварительно заданных наборов для неразделимого преобразования может включать в себя одно или два ядра преобразования, как показано в таблице 10 или 11.
[314] На этапе S2510, устройство 200 декодирования определяет, в качестве матрицы неразделимого преобразования, ядро преобразования, указываемое посредством индекса неразделимого преобразования для текущего блока, из числа ядер преобразования, включаемых в набор для неразделимого преобразования, указываемый посредством индекса набора для неразделимого преобразования. Например, два ядра неразделимого преобразования могут быть сконфигурированы для каждого значения индекса набора для неразделимого преобразования, и устройство 200 декодирования может определять матрицу неразделимого преобразования на основе ядра преобразования, указываемого посредством индекса неразделимого преобразования, между двумя ядрами матрицы преобразования, соответствующими индексу набора для неразделимого преобразования.
[315] На этапе S2515, устройство 200 декодирования применяет матрицу неразделимого преобразования к левой верхней области текущего блока, определенной на основе ширины и высоты текущего блока. Например, неразделимое преобразование может применяться к верхней левой области 8×8 текущего блока, если как ширина, так и высота текущего блока равна или выше 8, и неразделимое преобразование может применяться к области 4×4 текущего блока, если ширина или высота текущего блока меньше 8. Размер неразделимого преобразования также может задаваться равным размеру (например, 48×16, 16×16), соответствующему 8×8 или 4×4, в ответ на область, к которой должно применяться неразделимое преобразование.
[316] Кроме того, устройство 200 декодирования может применять горизонтальное преобразование и вертикальное преобразование к текущему блоку, к которому применяется неразделимое преобразование. Здесь, горизонтальное преобразование и вертикальное преобразование могут определяться на основе MTS-индекса для выбора режима предсказания и матрицы преобразования, применяемой к текущему блоку.
[317] [318] В дальнейшем в этом документе, описывается способ применения первичного преобразования и вторичного преобразования объединенным способом. Таким образом, вариант осуществления настоящего раскрытия предлагает способ эффективного проектирования преобразования, используемого в первичном преобразовании и вторичном преобразовании. В этом случае, способы, проиллюстрированные на фиг. 1-25, могут применяться, и избыточное описание опускается.
[319] Как описано выше, первичное преобразование представляет преобразование, которое сначала применяется к остаточному блоку в кодере. Если вторичное преобразование применяется, кодер может выполнять вторичное преобразование для первичного преобразованного остаточного блока. Если вторичное преобразование применено, вторичное обратное преобразование может выполняться перед первичным обратным преобразованием в декодере. Декодер может выполнять первичное обратное преобразование для вторично обратно преобразованного блока коэффициентов преобразования, чтобы извлекать остаточный блок.
[320] Помимо этого, как описано выше, неразделимое преобразование может использоваться в качестве вторичного преобразования, и вторичное преобразование может применяться только к коэффициентам низкой частоты левой верхней конкретной области, чтобы поддерживать низкую сложность. Вторичное преобразование, применяемое к этим коэффициентам низкой частоты, может называться "неразделимым вторичным преобразованием (NSST)", "низкочастотным неразделимым преобразованием (LFNST)" или "сокращенным вторичным преобразованием (RST)". Первичное преобразование может называться "базовым преобразованием".
[321] В варианте осуществления настоящего раскрытия, потенциально подходящий вариант первичного преобразования, используемый в первичном преобразовании, и ядро вторичного преобразования, используемое во вторичном преобразовании, могут быть предварительно заданы в качестве различных сочетаний. В настоящем раскрытии, потенциально подходящий вариант первичного преобразования, используемый в первичном преобразовании, может называться "потенциально подходящим MTS-вариантом", но не ограничен названием. Например, потенциально подходящий вариант первичного преобразования может представлять собой сочетание ядер преобразования (или типов преобразования), соответственно, применяемых к горизонтальному и вертикальному направлениям, и ядро преобразования может представлять собой одно из DCT2, DST7 и/или DCT8. Другими словами, потенциально подходящий вариант первичного преобразования может представлять собой, по меньшей мере, одно сочетание DCT2, DST7 и/или DCT8. Нижеприведенное описание приводится с подробными примерами.
[322] - Сочетание A
[323] В сочетании A, как проиллюстрировано в следующей таблице 12, потенциально подходящий вариант первичного преобразования и ядро вторичного преобразования могут задаваться согласно режиму интра-предсказания.
[324] Табл. 12
4 потенциально подходящих MTS-варианта для неуглового режима
2 ядра преобразования для неуглового режима
4 потенциально подходящих MTS-варианта для неуглового режима
2 ядра преобразования для неуглового режима
4 потенциально подходящих MTS-варианта для неуглового режима
1 ядро преобразования для неуглового режима
[325] Ссылаясь на вышеприведенную таблицу 12, в качестве примера (случай 1), два потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания имеет направленность, и четыре потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания не имеет направленности (например, DC-режим, планарный режим). В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования независимо от направленности режима интра-предсказания. Таким образом, как описано выше, множество наборов ядер вторичного преобразования могут быть предварительно заданы согласно режиму интра-предсказания, и каждый из множества из предварительно заданных наборов ядер вторичного преобразования может включать в себя два ядра преобразования.
[326] Дополнительно, в качестве примера (случай 2), два потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания имеет направленность, и четыре потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания не имеет направленности. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования, если режим интра-предсказания имеет направленность, и потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования, если режим интра-предсказания не имеет направленности.
[327] Дополнительно, в качестве примера (случай 3), два потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания имеет направленность, и четыре потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания не имеет направленности. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования независимо от направленности режима интра-предсказания.
[328] - Сочетание B
[329] В сочетании B, как проиллюстрировано в следующей таблице 13, потенциально подходящий вариант первичного преобразования и ядро вторичного преобразования могут задаваться согласно режиму интра-предсказания.
[330] Табл. 13
3 потенциально подходящих MTS-варианта для неуглового режима
2 ядра преобразования для неуглового режима
3 потенциально подходящих MTS-варианта для неуглового режима
2 ядра преобразования для неуглового режима
3 потенциально подходящих MTS-варианта для неуглового режима
1 ядро преобразования для неуглового режима
[331] Ссылаясь на вышеприведенную таблицу 13, в качестве примера (случай 1), три потенциально подходящих варианта первичного преобразования могут использоваться независимо от направленности режима интра-предсказания. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования независимо от направленности режима интра-предсказания. Таким образом, как описано выше, множество наборов ядер вторичного преобразования могут быть предварительно заданы согласно режиму интра-предсказания, и каждый из множества из предварительно заданных наборов ядер вторичного преобразования может включать в себя два ядра преобразования.
[332] Дополнительно, в качестве примера (случай 2), три потенциально подходящих варианта первичного преобразования могут использоваться независимо от направленности режима интра-предсказания. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования, если режим интра-предсказания имеет направленность, и потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования, если режим интра-предсказания не имеет направленности.
[333] Дополнительно, в качестве примера (случай 3), три потенциально подходящих варианта первичного преобразования могут использоваться независимо от направленности режима интра-предсказания. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования независимо от направленности режима интра-предсказания.
[334] - Сочетание C
[335] В сочетании C, как проиллюстрировано в следующей таблице 14, потенциально подходящий вариант первичного преобразования и ядро вторичного преобразования могут задаваться согласно режиму интра-предсказания.
[336] Табл. 14
3 потенциально подходящих MTS-варианта для неуглового режима
2 ядра преобразования для неуглового режима
3 потенциально подходящих MTS-варианта для неуглового режима
2 ядра преобразования для неуглового режима
3 потенциально подходящих MTS-варианта для неуглового режима
1 ядро преобразования для неуглового режима
[337] Ссылаясь на вышеприведенную таблицу 14, в качестве примера (случай 1), два потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания имеет направленность, и три потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания не имеет направленности (например, DC-режим, планарный режим). В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования независимо от направленности режима интра-предсказания. Таким образом, как описано выше, множество наборов ядер вторичного преобразования могут быть предварительно заданы согласно режиму интра-предсказания, и каждый из множества из предварительно заданных наборов ядер вторичного преобразования может включать в себя два ядра преобразования.
[338] Дополнительно, в качестве примера (случай 2), два потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания имеет направленность, и три потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания не имеет направленности. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования, если режим интра-предсказания имеет направленность, и потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования, если режим интра-предсказания не имеет направленности.
[339] Дополнительно, в качестве примера (случай 3), два потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания имеет направленность, и три потенциально подходящих варианта первичного преобразования могут использоваться, если режим интра-предсказания не имеет направленности. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования независимо от направленности режима интра-предсказания.
[340] Вышеуказанное описание приведено с акцентированием внимания на случае использования множества потенциально подходящих вариантов первичного преобразования. Далее описываются сочетания первичного преобразования и вторичного преобразования в случае использования фиксированного потенциально подходящего варианта первичного преобразования, в качестве примера.
[341] - Сочетание D
[342] В сочетании D, как проиллюстрировано в следующей таблице 15, потенциально подходящий вариант первичного преобразования и ядро вторичного преобразования могут задаваться согласно режиму интра-предсказания.
[343] Табл. 15
2 ядра преобразования для неуглового режима
2 ядра преобразования для неуглового режима
1 ядро преобразования для неуглового режима
[344] Ссылаясь на вышеприведенную таблицу 15, в качестве варианта осуществления, один потенциально подходящий вариант первичного преобразования может фиксированно использоваться независимо от режима интра-предсказания. Например, фиксированный потенциально подходящий вариант первичного преобразования может представлять собой, по меньшей мере, одно сочетание DCT2, DST7 и/или DCT8.
[345] В качестве примера (случай 1), один потенциально подходящий вариант первичного преобразования может фиксированно использоваться независимо от режима интра-предсказания. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования независимо от направленности режима интра-предсказания. Таким образом, как описано выше, множество наборов ядер вторичного преобразования могут быть предварительно заданы согласно режиму интра-предсказания, и каждый из множества из предварительно заданных наборов ядер вторичного преобразования может включать в себя два ядра преобразования.
[346] Дополнительно, в качестве примера (случай 2), один потенциально подходящий вариант первичного преобразования может фиксированно использоваться независимо от режима интра-предсказания. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования, если режим интра-предсказания имеет направленность, и потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования, если режим интра-предсказания не имеет направленности.
[347] Дополнительно, в качестве примера (случай 3), один потенциально подходящий вариант первичного преобразования может фиксированно использоваться независимо от режима интра-предсказания. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования независимо от направленности режима интра-предсказания.
[348] - Сочетание E
[349] В сочетании E, как проиллюстрировано в следующей таблице 16, потенциально подходящий вариант первичного преобразования и ядро вторичного преобразования могут задаваться согласно режиму интра-предсказания.
[350] Табл. 16
2 ядра преобразования для неуглового режима
2 ядра преобразования для неуглового режима
1 ядро преобразования для неуглового режима
[351] Ссылаясь на вышеприведенную таблицу 16, при условии, что DCT2 применяется в качестве первичного преобразования, вторичное преобразование может задаваться. Другими словами, если MTS не применяется (т.е. если DCT2 применяется в качестве первичного преобразования), вторичное преобразование может применяться. Как проиллюстрировано на фиг. 10 выше, настоящее раскрытие описывается посредством разделения на случай, в котором MTS применяется, и случай, в котором MTS не применяется, но не ограничено таким выражением. Например, то, применяется или нет MTS, может иметь идентичное смысловое значение с тем, следует или нет использовать тип преобразования (или ядро преобразования), отличный от предварительно заданного конкретного типа преобразования (который может называться "базовым типом преобразования", "типом преобразования по умолчанию" и т.д.). Если MTS применяется, тип преобразования (например, любой один тип преобразования или объединенный тип преобразования из двух или более типов преобразования из множества типов преобразования), отличный от базового типа преобразования, может использоваться для преобразования. Дополнительно, если MTS не применяется, базовый тип преобразования может использоваться для преобразования. В варианте осуществления, базовый тип преобразования может конфигурироваться (или задаваться) в качестве DCT2.
[352] В качестве примера (случай 1), когда DCT2 применяется к первичному преобразованию, вторичное преобразование может применяться. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования независимо от направленности режима интра-предсказания. Таким образом, как описано выше, множество наборов ядер вторичного преобразования могут быть предварительно заданы согласно режиму интра-предсказания, и каждый из множества из предварительно заданных наборов ядер вторичного преобразования может включать в себя два ядра преобразования.
[353] Дополнительно, в качестве примера (случай 2), когда DCT2 применяется к первичному преобразованию, вторичное преобразование может применяться. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования, если режим интра-предсказания имеет направленность, и потенциально подходящий вариант вторичного преобразования может включать в себя два ядра преобразования, если режим интра-предсказания не имеет направленности.
[354] Дополнительно, в качестве примера (случай 3), когда DCT2 применяется к первичному преобразованию, вторичное преобразование может применяться. В этом случае, потенциально подходящий вариант вторичного преобразования может включать в себя одно ядро преобразования независимо от направленности режима интра-предсказания.
[355] Фиг. 26 является блок-схемой последовательности операций, иллюстрирующей способ преобразования видеосигнала согласно варианту осуществления, к которому применяется настоящее раскрытие.
[356] Ссылаясь на фиг 26, настоящее раскрытие описывается на основе декодера для удобства пояснения, но не ограничено этим. Способ преобразования для видеосигнала согласно варианту осуществления раскрытия может практически в равной степени применяться даже к кодеру. Блок-схема последовательности операций способа, проиллюстрированная на фиг. 26, может выполняться посредством устройства 200 декодирования или модуля 230 обратного преобразования.
[357] Устройство 200 декодирования анализирует первый синтаксический элемент, указывающий ядро первичного преобразования, применяемое к первичному преобразованию текущего блока, на S2601.
[358] Устройство 200 декодирования определяет то, является или нет вторичное преобразование применимым к текущему блоку, на основе первого синтаксического элемента на S2602.
[359] Если вторичное преобразование является применимым к текущему блоку, устройство 200 декодирования анализирует второй синтаксический элемент, указывающий ядро вторичного преобразования, применяемое к вторичному преобразованию текущего блока, на S2603.
[360] Устройство 200 декодирования извлекает вторично обратно преобразованный блок посредством выполнения вторичного обратного преобразования для левой верхней конкретной области текущего блока с использованием ядра вторичного преобразования, указываемого посредством второго синтаксического элемента, на S2604.
[361] Устройство 200 декодирования извлекает остаточный блок текущего блока посредством выполнения первичного обратного преобразования для вторично обратно преобразованного блока с использованием ядра первичного преобразования, указываемого посредством первого синтаксического элемента, на S2605.
[362] Как описано выше, этап S2602 может выполняться посредством определения того, что вторичное преобразование является применимым к текущему блоку, если первый синтаксический элемент указывает предварительно заданное первое ядро преобразования. В этом случае, первое ядро преобразования может задаваться как DCT2.
[363] Дополнительно, как описано выше, устройство 200 декодирования может определять набор ядер вторичного преобразования, используемый для вторичного преобразования текущего блока, из предварительно заданных наборов ядер вторичного преобразования на основе режима интра-предсказания текущего блока. Второй синтаксический элемент может указывать ядро вторичного преобразования, применяемое к вторичному преобразованию текущего блока, в определенном наборе ядер вторичного преобразования.
[364] Дополнительно, как описано выше, каждый из предварительно заданных наборов ядер вторичного преобразования может включать в себя два ядра преобразования.
[365] В варианте осуществления настоящего раскрытия, в дальнейшем описывается пример синтаксической структуры, в которой используется множественный набор для преобразования (MTS).
[366] Например, следующая таблица 17 показывает пример синтаксической структуры набора параметров последовательности.
[367] Табл. 17
[368] Ссылаясь на таблицу 17, то, может или нет использоваться MTS согласно варианту осуществления настоящего раскрытия, может передаваться в служебных сигналах через синтаксис набора параметров последовательности. Здесь, sps_mts_intra_enabled_flag указывает присутствие или отсутствие MTS-флага или MTS-индекса в низкоуровневом синтаксисе (например, в синтаксисе остаточного кодирования или в синтаксисе единицы преобразования) относительно модуля интра-кодирования. Помимо этого, sps_mts_inter_enabled_flag указывает присутствие или отсутствие MTS-флага или MTS-индекса в низкоуровневом синтаксисе относительно единицы интер-кодирования.
[369] В качестве другого примера, следующая таблица 18 показывает пример синтаксической структуры единицы преобразования.
[370] Табл. 18
((CuPredMode[x0][y0]==MODE_INTER) && sps_mts_inter_enabled_flag))
&& tu_cbf_luma[x0][y0] && treeType! =DUAL_TREE_CHROMA
&& (tbWidth<=32) && (tbHeight<=32))
[371] Ссылаясь на таблицу 18, cu_mts_flag указывает то, применяется или нет MTS к остаточному дискретному отсчету блока преобразования сигналов яркости. Например, MTS не применяется к остаточному дискретному отсчету блока преобразования сигналов яркости, если cu_mts_flag=0, и MTS применяется к остаточному дискретному отсчету блока преобразования сигналов яркости, если cu_mts_flag=1.
[372] Хотя случай, в котором MTS применяется, и случай, в котором MTS не применяется на основе MTS-флага, отдельно описываются в настоящем раскрытии, как описано выше, настоящее раскрытие не ограничено этим. Например, то, применяется или нет MTS, может означать то, используется или нет тип преобразования (или ядро преобразования), отличный от предварительно заданного конкретного типа преобразования (который может называться "базовым типом преобразования", "типом преобразования по умолчанию" и т.п.). Тип преобразования (например, любой один из множества типов преобразования либо сочетание двух или более из них), отличный от типа преобразования по умолчанию, может использоваться для преобразования, если MTS применяется, и тип преобразования по умолчанию может использоваться, если MTS не применяется. В варианте осуществления, тип преобразования по умолчанию может задаваться (или определяться) в качестве DCT2.
[373] Например, синтаксис MTS-флага, указывающий то применяется или нет MTS к текущему блоку преобразования, и синтаксис MTS-флага, указывающий тип преобразования, применяемый к текущему блоку, когда MTS применяется, могут отдельно передаваться из кодера в декодер. В качестве другого примера, синтаксис (например, MTS-индекс), включающий в себя как информацию относительно того, применяется или нет MTS к текущему блоку преобразования, так и тип преобразования, применяемый к текущему блоку, когда MTS применяется, может передаваться из кодера в декодер. Таким образом, во втором варианте осуществления, синтаксис (или синтаксический элемент), указывающий тип преобразования, применяемый к текущему блоку (или единице) преобразования в группах типов преобразования (или в наборе типов преобразования), включающих в себя вышеуказанный тип преобразования по умолчанию, может передаваться из кодера в декодер.
[374] Соответственно, синтаксис (MTS-индекс), указывающий тип преобразования, применяемый к текущему блоку преобразования, может включать в себя информацию относительно того, применяется или MTS нет, несмотря на выражение. Другими словами, хотя только MTS-индекс может передаваться в служебных сигналах без MTS-флага во втором варианте осуществления, и в силу этого этот случай может интерпретироваться в качестве случая, в котором MTS включает в себя DCT2, случай, в котором DCT2 применяется, может описываться как случай, в котором MTS не применяется в настоящем раскрытии, но объем относительно MTS не ограничен этим.
[375] В качестве другого примера, следующая таблица 19 показывает пример синтаксической структуры остаточной единицы.
[376] Табл. 19
(log2TbWidth<=2) && (log2TbHeight<=2))
[lastSubBlock][0]
[lastSubBlock][1]
DiagScanOrder[log2SbSize][log2SbSize][lastScanPos][0]
DiagScanOrder[log2SbSize][log2SbSize][lastScanPos][1]
[lastSubBlock][0]
[lastSubBlock][1]
sig_coeff_flag[xC][yC]+par_level_flag[n]+2 * rem_abs_gt1_flag[n]
2 * (rem_abs_gt2_flag[n]+abs_remainder[n])
(! signHidden | | (n!=firstSigScanPosSb)))
DiagScanOrder[log2SbSize][log2SbSize][n][0]
DiagScanOrder[log2SbSize][log2SbSize][n][1]
(2 * AbsLevel[xC][yC] – (QState>1? 1 : 0 ) ) *
(1 – 2 * coeff_sign_flag[n])
DiagScanOrder[log2SbSize][log2SbSize][n][0]
DiagScanOrder[log2SbSize][log2SbSize][n][1]
AbsLevel[xC][yC] * (1 – 2 * coeff_sign_flag[n])
-TransCoeffLevel[x0][y0][cIdx][xC][yC]
! transform_skip_flag[x0][y0][cIdx] &&
((CuPredMode[x0][y0]==MODE_INTRA && numSigCoeff>2) | |
(CuPredMode[x0][y0]==MODE_INTER))){
[377] [378] [379] Ссылаясь на таблицу 19, синтаксис (или синтаксический элемент) transform_skip_flag и/или mts_idx может передаваться в служебных сигналах через остаточный синтаксис. Тем не менее это представляет собой просто пример, и настоящее раскрытие не ограничено этим. Например, синтаксис transform_skip_flag и/или mts_idx может передаваться в служебных сигналах через синтаксис единицы преобразования.
[380] [381] В дальнейшем в этом документе, предлагается способ снижения сложности посредством применения первичного преобразования только к предварительно заданной области. Когда сочетания различных преобразований (или ядер преобразования), к примеру, MTS (например, DCT2, DST7, DCT8, DST1, DCT5 и т.д.) избирательно применяются к первичному преобразованию, сложность может возрастать. В частности, различные преобразования должны рассматриваться по мере того, как размер блока кодирования (или блока преобразования) увеличивается, что может значительно повышать сложность.
[382] Соответственно, в варианте осуществления настоящего раскрытия, предлагается способ выполнения преобразования только для предварительно заданной области согласно конкретным условиям вместо выполнения преобразования (или применения) для/ко всем областям, чтобы уменьшать сложность.
[383] В качестве варианта осуществления, кодер может получать блок преобразования R×R вместо блока преобразования M×M посредством применения прямого первичного преобразования к пиксельному блоку M×M (к блоку сигналов яркости) на основе способа сокращенного преобразования (RT), описанного выше относительно фиг. 16-24. Например, область R×R может представлять собой левую верхнюю область R×R в текущем блоке (в блоке кодирования или в блоке преобразования). Декодер может получать блок преобразования M×M посредством выполнения обратного первичного преобразования только в отношении области R×R (M≥R).
[384] Следовательно, ненулевые коэффициенты могут присутствовать только в области R×R. В этом случае, декодер может обнулять коэффициенты, присутствующие в областях, отличных от области R×R, без выполнения вычисления для них. Кодер может выполнять прямое преобразование таким образом, что остается только область R×R (таким образом, что ненулевые коэффициенты присутствуют только в области R×R).
[385] Дополнительно, декодер может применять первичное преобразование (т.е. обратное преобразование) только к предварительно заданной области, определенной согласно размеру блока кодирования (или блока преобразования) и/или типу преобразования (или ядра преобразования). Следующая таблица 20 показывает сокращенное адаптивное множественное преобразование (RAMT) с использованием предварительно заданного R-значения (которое может называться "сокращенным коэффициентом", "коэффициентом сокращенного преобразования" и т.п.) в зависимости от размера преобразования (или размера блока преобразования). В настоящем раскрытии, сокращенное адаптивное множественное преобразование (RAMT), представляющее сокращенное преобразование, адаптивно определенное в зависимости от размера блока, может называться "сокращенным MTS (множественным выбором преобразования)", "сокращенным явным множественным преобразованием", "сокращенным первичным преобразованием" и т.п.
[386] Табл. 20
[387] Ссылаясь на таблицу 20, по меньшей мере, одно сокращенное преобразование может задаваться в зависимости от размера преобразования (или размера блока преобразования). В варианте осуществления, то, какое сокращенное преобразование из числа сокращенных преобразований, показанных в таблице 20, используется, может определяться согласно преобразованию (или ядру преобразования), применяемому к текущему блоку (к блоку кодирования или к блоку преобразования). Хотя случай, в котором используются три сокращенных преобразования, допускается в таблице 20, настоящее раскрытие не ограничено этим, и одно или более различных сокращенных преобразований могут быть предварительно заданы в зависимости от размеров преобразования.
[388] Дополнительно, в варианте осуществления настоящего раскрытия, коэффициент (R) сокращенного преобразования может определяться в зависимости от первичного преобразования при применении вышеуказанного сокращенного адаптивного множественного преобразования. Например, когда первичное преобразование представляет собой DCT2, ухудшение производительности кодирования может минимизироваться посредством неиспользования сокращенного преобразования для небольшого блока или посредством использования относительно большого R-значения, поскольку вычислительная сложность DCT2 ниже вычислительной сложности других первичных преобразований (например, сочетания DST7 и/или DCT8). Следующая таблица 21 показывает сокращенное адаптивное множественное преобразование (RAMT) с использованием предварительно заданного R-значения в зависимости от размера преобразования (или размера блока преобразования) и ядра преобразования.
[389] Табл. 21
[390] Ссылаясь на таблицу 21, в случае, в котором преобразование, применяемое в качестве первичного преобразования, представляет собой DCT2 и в случае, в котором преобразование, применяемое в качестве первичного преобразования, представляет собой преобразование, отличное от DCT2 (например, сочетание DST7 и/или DCT8), различные коэффициенты сокращенного преобразования могут использоваться.
[391] Фиг. 27 является схемой, иллюстрирующей способ кодирования видеосигнала с использованием сокращенного преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[392] Ссылаясь на фиг. 27, кодер определяет то, следует или нет применять преобразование к текущему блоку (S2701). Кодер может кодировать флаг пропуска преобразования согласно результату определения. В этом случае, этап кодирования флага пропуска преобразования может включаться в этап S2701.
[393] Когда преобразование применяется к текущему блоку, кодер определяет ядро преобразования, применяемое к первичному преобразованию текущего блока (S2702). Кодер может кодировать индекс преобразования, указывающий определенное ядро преобразования. В этом случае, этап кодирования индекса преобразования может включаться в этап S2702.
[394] Кодер определяет область, в которой значимый коэффициент присутствует в текущем блоке, на основе ядра преобразования, применяемого к первичному преобразованию текущего блока, и размера текущего блока (S2703).
[395] В качестве варианта осуществления, кодер может определять область, имеющую ширину и/или высоту, соответствующие предварительно заданному размеру, в качестве области, в которой присутствует значимый коэффициент, когда ядро преобразования, указываемое посредством индекса преобразования, представляет собой предварительно заданное преобразование, и ширина и/или высота текущего блока превышают предварительно заданный размер.
[396] Например, предварительно заданное преобразование может представлять собой одну из множества сочетаний преобразований DST7 и/или DCT8, и предварительно заданный размер может быть равен 16. Альтернативно, предварительно заданное преобразование может представлять собой преобразование, отличное от DCT2. В качестве примера, кодер может определять область, имеющую ширину и/или высоту в 32, в качестве области, к которой применяется первичное преобразование, когда ядро преобразования, указываемое посредством индекса преобразования, представляет собой DCT2, и ширина и/или высота текущего блока превышают 32.
[397] Дополнительно, в качестве варианта осуществления, кодер может определять меньшее значение между шириной текущего блока и первым пороговым значением в качестве ширины области, к которой применяется первичное преобразование, и определять меньшее значение между высотой текущего блока и первым пороговым значением в качестве высоты области, в которой присутствует значимый коэффициент, когда ядро преобразования, указываемое посредством индекса преобразования, принадлежит первой группе преобразований. Например, первое пороговое значение может быть равно 32, но настоящее раскрытие не ограничено этим, и первое пороговое значение может быть равно 4, 8 или 16, как показано в таблице 20 или таблице 21.
[398] Помимо этого, кодер может определять меньшее значение между шириной текущего блока и вторым пороговым значением в качестве ширины области, к которой применяется первичное преобразование, и определять меньшее значение между высотой текущего блока и вторым пороговым значением в качестве высоты области, в которой присутствует значимый коэффициент, когда ядро преобразования, указываемое посредством индекса преобразования, принадлежит второй группе преобразований. Например, второе пороговое значение может быть равно 16, но настоящее раскрытие не ограничено этим, и второе пороговое значение может быть равно 4, 6, 8, 12 или 32, как показано в таблице 20 или таблице 21.
[399] В качестве варианта осуществления, первая группа преобразований может включать в себя DCT2, и вторая группа преобразований может включать в себя множество сочетаний преобразований DST7 и/или DCT8.
[400] Кодер выполняет прямое первичное преобразование с использованием ядра преобразования, применяемого к первичному преобразованию текущего блока (S2704). Кодер может получать первично преобразованные коэффициенты преобразования в области, в которой значимый коэффициент присутствует, посредством выполнения прямого первичного преобразования. В качестве варианта осуществления, кодер может применять вторичное преобразование к первично преобразованным коэффициентам преобразования. В этом случае, могут применяться способы, описанные выше со ссылкой на фиг. 6-26.
[401] Фиг. 28 является схемой, иллюстрирующей способ декодирования видеосигнала с использованием сокращенного преобразования в качестве варианта осуществления, к которому применяется настоящее раскрытие.
[402] Декодер проверяет то, применяется или нет пропуск преобразования к текущему блоку (S2801).
[403] Когда пропуск преобразования не применяется к текущему блоку, декодер получает индекс преобразования, указывающий ядро преобразования, применяемое к текущему блоку, из видеосигнала (S2802).
[404] Декодер определяет область, в которой первичное преобразование (т.е. первичное обратное преобразование) применяется к текущему блоку, на основе ядра преобразования, указываемого посредством индекса преобразования и размера (т.е. ширины и/или высоты) текущего блока (S2803).
[405] В качестве варианта осуществления, декодер может задавать коэффициенты оставшейся области, отличной от области, к которой применяется первичное преобразование, как равные 0.
[406] Помимо этого, в качестве варианта осуществления, когда ядро преобразования, указываемое посредством индекса преобразования, представляет собой предварительно заданное преобразование, и ширина и/или высота текущего блока превышают предварительно заданный размер, декодер может определять область, имеющую ширину и/или высоту, соответствующие предварительно заданному размеру, в качестве области, к которой применяется первичное преобразование.
[407] Например, предварительно заданное преобразование может представлять собой любую из множества сочетаний преобразований DST7 и/или DCT8, и предварительно заданный размер может быть равен 16. Альтернативно, предварительно заданное преобразование может представлять собой преобразование, отличное от DCT2. Например, когда ядро преобразования, указываемое посредством индекса преобразования, представляет собой DCT, и ширина и/или высота текущего блока превышают 32, декодер может определять область, имеющую ширину и/или высоту в 32, в качестве области, к которой применяется первичное преобразование.
[408] Кроме того, в качестве варианта осуществления, декодер может определять меньшее значение между шириной текущего блока и первым пороговым значением в качестве ширины области, к которой применяется первичное преобразование, и определять меньшее значение между высотой текущего блока и первым пороговым значением в качестве высоты области, к которой применяется первичное преобразование, когда ядро преобразования, указываемое посредством индекса преобразования, принадлежит первой группе преобразований. Например, первое пороговое значение может быть равно 32, но настоящее раскрытие не ограничено этим, и первое пороговое значение может быть равно 4, 8 или 16, как показано в таблице 20 или таблице 21.
[409] Помимо этого, декодер может определять меньшее значение между шириной текущего блока и вторым пороговым значением в качестве ширины области, к которой применяется первичное преобразование, и определять меньшее значение между высотой текущего блока и вторым пороговым значением в качестве высоты области, к которой применяется первичное преобразование, присутствует, когда ядро преобразования, указываемое посредством индекса преобразования, принадлежит второй группе преобразований. Например, второе пороговое значение может быть равно 16, но настоящее раскрытие не ограничено этим, и второе пороговое значение может быть равно 4, 6, 8, 12 или 32, как показано в таблице 20 или таблице 21.
[410] В качестве варианта осуществления, первая группа преобразований может включать в себя DCT2, и вторая группа преобразований может включать в себя множество сочетаний преобразований DST7 и/или DCT8.
[411] Декодер выполняет обратное первичное преобразование в отношении области, к которой применяется первичное преобразование, с использованием ядра преобразования, указываемого посредством индекса преобразования (S2804). Декодер может получать первично обратно преобразованные коэффициенты преобразования посредством выполнения обратного первичного преобразования. В качестве варианта осуществления, декодер может применять вторичное преобразование к обратно квантованным коэффициентам преобразования до первичного преобразования. В этом случае, могут применяться способы, описанные выше со ссылкой на фиг. 6-26.
[412] Согласно вариантам осуществления настоящего раскрытия, можно значительно сокращать сложность по принципу наихудшего случая посредством выполнения преобразования только для предварительно заданной области согласно конкретным условиям.
[413] Помимо этого, в варианте осуществления настоящего раскрытия, когда MTS- (EMT- или AMT-)флаг равен 0 (т.е. когда DCT-2 преобразование применяется и в горизонтальном (поперечном) направлении и в вертикальном (продольном) направлении), кодер/декодер может выполнять обнуление для высокочастотных компонентов (т.е. извлекать или задавать высокочастотные компоненты как равные 0), за исключением 32 левых верхних коэффициентов в горизонтальном и вертикальном направлениях. Хотя настоящий вариант осуществления называется "первым вариантом осуществления" для удобства описания в вариантах осуществления, которые описываются ниже, варианты осуществления настоящего раскрытия не ограничены этим.
[414] Например, в случае TU (или CU) 64×64, кодер/декодер может хранить коэффициенты преобразования только для левой верхней области 32×32 и выполнять обнуление для коэффициентов оставшейся области. Дополнительно, в случае TU 64×16, кодер/декодер может хранить коэффициенты преобразования только для левой верхней области 32×16 и выполнять обнуление для коэффициентов оставшейся области. Помимо этого, в случае 8×64 TU, кодер/декодер может хранить коэффициенты преобразования только для левой верхней области 8×32 и выполнять обнуление для коэффициентов оставшейся области. Таким образом, коэффициенты преобразования могут задаваться таким образом, что коэффициенты преобразования присутствуют только для максимальной длины в 32 в горизонтальном и вертикальном направлениях, что позволяет повышать эффективность преобразования.
[415] В качестве варианта осуществления, такой способ обнуления может применяться только к остаточному сигналу, к которому применяется интра-предсказание, применяться только к остаточному сигналу, к которому применяется интер-предсказание, либо применяться как к остаточному сигналу, к которому применяется интра-предсказание, так и к остаточному сигналу, к которому применяется интер-предсказание.
[416] Помимо этого, в варианте осуществления настоящего раскрытия, когда MTS-флаг равен 1 (т.е. когда преобразование (например, DST-7 или DCT-8), отличное от DCT-2-преобразования, применяется в горизонтальном направлении и вертикальном направлении), кодер/декодер может выполнять обнуление для высокочастотных компонентов (т.е. извлекать или задавать высокочастотные компоненты как равные 0), за исключением коэффициентов конкретной левой верхней области. Хотя настоящий вариант осуществления называется "вторым вариантом осуществления" для удобства описания в вариантах осуществления, которые описываются ниже, варианты осуществления настоящего раскрытия не ограничены этим.
[417] В качестве варианта осуществления, кодер/декодер может хранить только область коэффициентов преобразования, соответствующую части левой верхней области, как указано в нижеприведенных примерах. Таким образом, кодер/декодер может предварительно устанавливать длину (или число) коэффициентов преобразования в горизонтальном и/или вертикальном направлениях, к которым применяется первичное преобразование, в зависимости от ширины и/или высоты. Например, коэффициенты из числа длины, к которой применяется первичное преобразование, могут обнуляться.
[418] - Когда ширина (w) равна или выше 2n, коэффициенты преобразования только для длины в w/2p с левой стороны могут храниться, и коэффициенты преобразования оставшейся области могут фиксированно задаваться (или задаваться) равными 0 (обнуляться).
[419] - Когда высота (h) равна или выше 2m, коэффициенты преобразования только для длины в h/2q сверху могут храниться, и коэффициенты преобразования оставшейся области могут задаваться фиксированно равными 0.
[420] Например, значения m, n, p и q могут быть предварительно заданы в качестве различных значений. Например, значения m, n, p и q могут задаваться равными целочисленным значениям, равным или большим 0. Альтернативно, они могут задаваться так, как указано в нижеприведенных примерах.
[421] 2) (m, n, p, q)=(5, 5, 1, 1)
[422] 2) (m, n, p, q)=(4, 4, 1, 1)
[423] Когда конфигурация 1) предварительно задается, например, коэффициенты преобразования могут храниться только для левой верхней области 16×16 относительно TU 32×16, и коэффициенты преобразования могут храниться только для левой верхней области 8×16 относительно 8×32 TU.
[424] В качестве варианта осуществления, такой способ обнуления может применяться только к остаточному сигналу, к которому применяется интра-предсказание, применяться только к остаточному сигналу, к которому применяется интер-предсказание, либо применяться как к остаточному сигналу, к которому применяется интра-предсказание, так и к остаточному сигналу, к которому применяется интер-предсказание.
[425] В другом варианте осуществления настоящего раскрытия, когда MTS-флаг равен 1 (т.е. когда преобразование (например, DST-7 или DCT-8), отличное от DCT-2-преобразования, является применимым в горизонтальном направлении и вертикальном направлении), кодер/декодер может выполнять обнуление для высокочастотных компонентов (т.е. извлекать или задавать высокочастотные компоненты как равные 0), за исключением коэффициентов конкретной левой верхней области. Более конкретно, кодер может хранить коэффициенты конкретной левой верхней области и выполнять обнуление для оставшихся высокочастотных компонентов, и декодер может распознавать область обнуления заранее и выполнять декодирование с использованием коэффициентов области без обнуления. Тем не менее варианты осуществления настоящего раскрытия не ограничены этим, и процесс обнуления с точки зрения декодера может пониматься как процесс извлечения (распознавания или задания) области обнуления как 0. Хотя настоящий вариант осуществления называется "третьим вариантом осуществления" для удобства описания в вариантах осуществления, которые описываются ниже, варианты осуществления настоящего раскрытия не ограничены этим.
[426] В качестве варианта осуществления, кодер/декодер может хранить только область коэффициентов преобразования, соответствующую части левой верхней области, как указано в нижеприведенных примерах. Таким образом, кодер/декодер может предварительно устанавливать длину (или число) коэффициентов преобразования в горизонтальном и/или вертикальном направлениях, к которым применяется первичное преобразование, в зависимости от ширины и/или высоты. Например, коэффициенты из числа длины, к которой применяется первичное преобразование, могут обнуляться.
[427] - Когда высота (h) равна или выше ширины (w) и равна или выше 2n, коэффициенты преобразования только левой верхней области в wx(h/2p) могут храниться, и коэффициенты преобразования оставшейся области могут фиксированно задаваться (или задаваться) равными 0 (обнуляться).
[428] - Когда ширина (w) больше высоты (h) и равна или больше 2m, коэффициенты преобразования только левой верхней области в (w/2q)xh могут храниться, и коэффициенты преобразования оставшейся области могут задаваться фиксированно равными 0.
[429] Хотя длина в вертикальном направлении уменьшается (h/2p), когда высота (h) равна ширине (w) в вышеописанном примере, длина в горизонтальном направлении может уменьшаться (w/2q).
[430] Например, значения m, n, p и q могут быть предварительно заданы в качестве различных значений. Например, значения m, n, p и q могут задаваться равными целочисленным значениям, равным или большим 0. Альтернативно, они могут задаваться так, как указано в нижеприведенных примерах.
[431] 2) (m, n, p, q)=(4, 4, 1, 1)
[432] 2) (m, n, p, q)=(5, 5, 1, 1)
[433] Когда конфигурация 1) предварительно задается, например, коэффициенты преобразования могут храниться только для левой верхней области 16×16 относительно TU 32×16, и коэффициенты преобразования могут храниться только для левой верхней области 8×8 относительно TU 8×16.
[434] В качестве варианта осуществления, такой способ обнуления может применяться только к остаточному сигналу, к которому применяется интра-предсказание, применяться только к остаточному сигналу, к которому применяется интер-предсказание, либо применяться как к остаточному сигналу, к которому применяется интра-предсказание, так и к остаточному сигналу, к которому применяется интер-предсказание.
[435] Первый вариант осуществления, связанный со способом ограничения области коэффициентов преобразования, когда MTS-флаг равен 0, и второй и третий варианты осуществления, связанные со способом ограничения области коэффициентов преобразования, когда MTS-флаг равен 1, могут применяться отдельно либо могут применяться объединенным способом.
[436] В качестве варианта осуществления, могут применяться конфигурации, объединенные следующим образом.
[437] 1) Первый вариант осуществления + второй вариант осуществления
[438] 2) Первый вариант осуществления + третий вариант осуществления
[439] Как упомянуто во втором и третьем вариантах осуществления, способ обнуления может применяться только к остаточному сигналу, к которому применяется интра-предсказание, применяться только к остаточному сигналу, к которому применяется интер-предсказание, или применяться как к остаточному сигналу, к которому применяется интра-предсказание, так и к остаточному сигналу, к которому применяется интер-предсказание, в качестве варианта осуществления. Соответственно, конфигурации, объединенные следующим образом, могут применяться к случаю, в котором MTS-флаг равен 1. Здесь, первый вариант осуществления может применяться к случаю, в котором MTS-флаг равен 0.
[440] Табл. 22
[441] [442] В варианте осуществления настоящего раскрытия, кодер/декодер может не выполнять остаточное кодирование в отношении области, рассматриваемой в качестве области, имеющей коэффициенты преобразования в 0 согласно обнулению. Таким образом, кодер/декодер может задаваться таким образом, что он выполняет остаточное кодирование только для областей, отличных от областей обнуления.
[443] В вышеописанных первом, втором и третьем вариантах осуществления, область (или коэффициент), которая должна иметь значение 0, явно определяется. Таким образом, области, отличные от левой верхней области, в которой разрешается присутствие коэффициентов преобразования, обнуляются. Соответственно, в процессе энтропийного кодирования (или остаточного кодирования), кодер/декодер может быть выполнен с возможностью обходить область, которая гарантированно имеет значение 0, без выполнения остаточного кодирования для нее.
[444] В варианте осуществления, кодер/декодер может кодировать флаг (называемый "subblock_flag") (либо синтаксис или синтаксический элемент), указывающий присутствие или отсутствие ненулевого коэффициента преобразования в группе коэффициентов (CG). Здесь, CG представляет собой субблок TU и может задаваться равной блоку 4×4 или 2×2 согласно форме TU-блока и/или тому, представляет или нет TU собой компонент сигнала цветности/сигнала яркости.
[445] Здесь, кодер/декодер может сканировать CG, чтобы кодировать значения коэффициентов (или значения уровня коэффициентов) только в случае, если subblock_flag равен 1. Соответственно, кодер/декодер может конфигурировать CG, принадлежащие области обнуления, так что они имеют значение в 0 по умолчанию, без выполнения кодирования subblock_flag для них.
[446] Помимо этого, в варианте осуществления, кодер может кодировать позицию последнего коэффициента (либо синтаксис или синтаксический элемент, указывающий позицию последнего значимого коэффициента) в прямом порядке сканирования сначала. Например, кодер может кодировать last_coefficient_position_x, который представляет собой позицию в горизонтальном направлении, и last_coefficient_position_y, который представляет собой позицию в вертикальном направлении.
[447] Хотя максимальные значения доступных значений last_coefficient_position_x и last_coefficient_position_y могут определяться в качестве (ширина-1) и (высота-1) TU, когда область, в которой могут присутствовать ненулевые коэффициенты, ограничена согласно обнулению, максимальные значения для доступных значений last_coefficient_position_x и last_coefficient_position_y также могут быть ограничены.
[448] Соответственно, кодер/декодер может ограничивать максимальные значения для доступных значений last_coefficient_position_x и last_coefficient_position_y с учетом обнуления и затем кодировать их. Например, когда способ преобразования в двоичную форму, применяемый к last_coefficient_position_x, и last_coefficient_position_y, представляет собой способ усеченного унарного (или усеченным кодом Райса (TR), или усеченного двоичного (TB)) преобразования в двоичную форму, кодер/декодер может управлять (уменьшать) максимальную длину усеченного унарного кода таким образом, что она соответствует отрегулированным максимальным значениям (т.е. доступным максимальным значениям last_coefficient_position_x и last_coefficient_position_y).
[449] Хотя некоторые вышеописанные варианты осуществления настоящего раскрытия классифицированы для удобства описания, настоящее раскрытие не ограничено этим. Таким образом, вышеописанные варианты осуществления могут выполняться независимо, либо один или более вариантов осуществления могут выполняться объединенным способом.
[450] Фиг. 29 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видеосигнала на основе сокращенного преобразования согласно варианту осуществления настоящего раскрытия.
[451] Ссылаясь на фиг 29, хотя описание основано на декодере для удобства, настоящее раскрытие не ограничено этим, и способ преобразования видеосигнала согласно настоящему варианту осуществления может практически в равной степени применяться к кодеру. Блок-схема последовательности операций способа по фиг. 29 может выполняться посредством устройства 200 декодирования или модуля 230 обратного преобразования.
[452] Декодер получает индекс преобразования, указывающий ядра преобразования, применяемые к текущему блоку в горизонтальном и вертикальном направлении, из видеосигнала (S2901).
[453] Декодер определяет область, в которой преобразование (т.е. обратное преобразование) применяется к текущему блоку, на основе ядер преобразования, указываемых посредством индекса преобразования и размера текущего блока (S2902).
[454] Декодер задает, как 0, коэффициенты оставшейся области, отличной от области, к которой применяется преобразование в текущем блоке (S2903).
[455] Декодер выполняет обратное преобразование в отношении области, к которой применяется преобразование, с использованием ядер преобразования, указываемых посредством индекса преобразования (S2904).
[456] Как описано выше, при определении области, к которой применяется преобразование, когда ядра преобразования, указываемые посредством индекса преобразования, представляют собой предварительно заданное преобразование, и ширина и/или высота текущего блока превышают предварительно заданный размер, область, имеющая ширину и/или высоту, соответствующие предварительно заданному размеру, может определяться в качестве области, к которой применяется преобразование.
[457] Как описано выше, предварительно заданное преобразование может представлять собой любую из множества сочетаний преобразований DST7 и/или DCT8.
[458] Как описано выше, предварительно заданный размер может быть равен 16.
[459] Как описано выше, при определении области, к которой применяется преобразование, меньшее значение между шириной текущего блока и 32 может определяться в качестве ширины области, к которой применяется преобразование, и меньшее значение между высотой текущего блока и 32 может определяться в качестве высоты области, к которой применяется преобразование, когда ядра преобразования, указываемые посредством индекса преобразования, принадлежат первой группе преобразований, и меньшее значение между шириной текущего блока и 16 может определяться в качестве ширины области, к которой применяется преобразование, и меньшее значение между высотой текущего блока и 16 может определяться в качестве высоты области, к которой применяется преобразование, когда ядра преобразования, указываемые посредством индекса преобразования, принадлежат второй группе преобразований. В качестве варианта осуществления, первая группа преобразований может включать в себя DCT2, и вторая группа преобразований может включать в себя множество сочетаний преобразований DST7 и/или DCT8.
[460] Как описано выше, способ дополнительно может включать в себя этап получения синтаксического элемента, указывающего позицию последнего значимого коэффициента в порядке сканирования в текущем блоке, и коэффициенты, к которым применяется обратное преобразование, могут получаться из видеосигнала на основе позиции последнего значимого коэффициента.
[461] Как описано выше, синтаксический элемент может преобразовываться в двоичную форму на основе усеченного унарного способа, и максимальное значение синтаксического элемента может определяться на основе области, заданной как 0.
[462] Фиг. 30 является примерной блок-схемой устройства для обработки видеосигнала в качестве варианта осуществления, к которому применяется настоящее раскрытие. Устройство обработки видеосигналов по фиг. 30 может соответствовать устройству кодирования по фиг. 1 или устройству декодирования по фиг. 2.
[463] Устройство 3000 видеообработки для обработки видеосигналов включает в себя запоминающее устройство 3020 для сохранения видеосигналов и процессор 3010, который соединяется с запоминающим устройством и обрабатывает видеосигналы.
[464] Процессор 3010 согласно варианту осуществления настоящего раскрытия может быть сконфигурирован как, по меньшей мере, одна схема обработки для обработки видеосигналов и может обрабатывать видеосигналы посредством выполнения команд для кодирования или декодирования видеосигналов. Таким образом, процессор 3010 может кодировать исходные видеоданные или декодировать кодированные видеосигналы посредством выполнения вышеописанных способов кодирования или декодирования.
[465] Кроме того, способы обработки, к которым применяется настоящее раскрытие, могут изготавливаться в форме программы, выполняемой посредством компьютера и сохраненной на машиночитаемых носителях записи. Мультимедийные данные, имеющие структуру данных согласно настоящему раскрытию, также могут храниться на машиночитаемых носителях записи. Машиночитаемые носители записи включают в себя все типы устройств хранения данных и распределенных устройств хранения данных, в которых хранятся данные, считываемые посредством компьютера. Машиночитаемые носители записи могут включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Кроме того, машиночитаемые носители записи включают в себя среды, реализованные в форме несущих волн (например, как передача через Интернет). Кроме того, поток битов, сформированный посредством способа кодирования, может храниться на машиночитаемом носителе записи или может передаваться по сетям проводной/беспроводной связи.
[466] Кроме того, варианты осуществления настоящего раскрытия могут реализовываться как компьютерные программные продукты согласно программному коду, и программный код может выполняться в компьютере согласно варианту осуществления настоящего раскрытия. Программный код может храниться на машиночитаемых носителях.
[467] Как описано выше, варианты осуществления настоящего раскрытия могут реализовываться и выполняться на процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, показанные на каждом чертеже, могут реализовываться и выполняться на компьютере, процессоре, микропроцессоре, контроллере или микросхеме.
[468] Кроме того, декодер и кодер, к которым применяется настоящее раскрытие, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминалы мобильной связи, видеосистемы для домашнего кинотеатра, видеосистемы для цифрового кинотеатра, камеры для мониторинга, устройство для видеобесед, устройство связи в реальном времени, к примеру, видеосвязи, мобильные устройства потоковой передачи, носители хранения данных, записывающие видеокамеры, устройство предоставления услуг "видео по запросу" (VoD), видеосистемы поверх сетей (OTT), устройство предоставления услуг потоковой передачи по Интернету, трехмерные видеосистемы, видеотелефонные системы, медицинские видеосистемы и т.д. и могут использоваться для того, чтобы обрабатывать видеосигналы или сигналы данных. Например, OTT-видеосистемы могут включать в себя игровые приставки, Blu-Ray-проигрыватели, телевизоры с доступом в Интернет, системы домашнего кинотеатра, смартфоны, планшетные PC, цифровые записывающие видеоустройства (DVR) и т.д.
[469] Кроме того, способы обработки, к которым применяется настоящее раскрытие, могут изготавливаться в форме программы, выполняемой посредством компьютера и сохраненной на машиночитаемых носителях записи. Мультимедийные данные, имеющие структуру данных согласно настоящему раскрытию, также могут храниться на машиночитаемых носителях записи. Машиночитаемые носители записи включают в себя все типы устройств хранения данных и распределенных устройств хранения данных, в которых хранятся данные, считываемые посредством компьютера. Машиночитаемые носители записи могут включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Кроме того, машиночитаемые носители записи включают в себя среды, реализованные в форме несущих волн (например, как передача через Интернет). Кроме того, поток битов, сформированный посредством способа кодирования, может храниться на машиночитаемом носителе записи или может передаваться по сетям проводной/беспроводной связи.
[470] Кроме того, варианты осуществления настоящего раскрытия могут реализовываться как компьютерные программные продукты согласно программному коду, и программный код может выполняться в компьютере согласно варианту осуществления настоящего раскрытия. Программный код может храниться на машиночитаемых носителях.
[471] Варианты осуществления, описанные выше, представляют собой сочетания элементов и признаков настоящего раскрытия. Элементы или признаки могут считаться избирательными, если не указано иное. Каждый элемент или признак может осуществляться на практике без объединения с другими элементами или признаками. Дополнительно, вариант осуществления настоящего раскрытия может конструироваться посредством объединения частей элементов и/или признаков. Порядок операций, описанных в вариантах осуществления настоящего раскрытия, может перекомпоновываться. Некоторые структуры любого варианта осуществления могут быть включены в другой вариант осуществления и могут заменяться соответствующими структурами другого варианта осуществления. Специалистам в данной области техники должно быть очевидным, что пункты формулы изобретения, которые не приводятся явно в сочетании друг с другом в прилагаемой формуле изобретения, могут представляться в сочетании в качестве примерного варианта осуществления либо включаться в качестве нового пункта в силу последующего изменения после того, как подана заявка.
[472] Реализации настоящего раскрытия могут осуществляться посредством различных средств, например, аппаратных средств, микропрограммного обеспечения, программного обеспечения либо сочетании вышеозначенного. В аппаратной конфигурации, способы согласно реализациям настоящего раскрытия могут осуществляться посредством одной или более специализированных интегральных схем (ASIC), процессоров цифровых сигналов (DSP), устройств обработки цифровых сигналов (DSPD), программируемых логических устройств (PLD), программируемых пользователем вентильных матриц (FPGA), процессоров, контроллеров, микроконтроллеров, микропроцессоров и т.д.
[473] В микропрограммной или программной конфигурации, реализации настоящего раскрытия могут осуществляться в форме модуля, процедуры, функции и т.д. Программный код может храниться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может находиться внутри или за пределами процессора и может передавать и принимать данные в/из процессора через различные известные средства.
[474] Специалисты в данной области техники должны принимать во внимание, что настоящее раскрытие может осуществляться конкретными способами, отличными от способов, изложенных в данном документе, без отступления от сущности и важнейших характеристик настоящего раскрытия. Соответственно, вышеприведенные варианты осуществления должны рассматриваться во всех аспектах как иллюстративные, а не ограничительные. Объем настоящего раскрытия должен определяться посредством прилагаемой формулы изобретения и ее юридических эквивалентов, а не посредством вышеприведенного описания, и все изменения, попадающие в рамки смыслового значения и в диапазон эквивалентности прилагаемой формулы изобретения, должны включаться в него.
Промышленная применимость
[475] Хотя примерные аспекты настоящего раскрытия описываются в качестве иллюстрации, специалисты в данной области техники должны принимать во внимание, что различные модификации, добавления и замены являются возможными, без отступления от важнейших характеристик раскрытия.
Изобретение относится к области обработки видеосигналов стандарта высокоэффективного кодирования видео (HEVC). Техническим результатом является выполнение эффективности преобразования видеосигнала пространственной области в сигнал частотной области наряду с технологией предсказания с большей точностью. Предложены способ кодирования/декодирования видеосигнала на основе сокращенного преобразования, которые содержат этапы: получения, из видеосигнала, индекса преобразования, указывающего ядра преобразования, применяемые к горизонтальному и вертикальному направлениям текущего блока; определения области, в которой преобразование применяется к текущему блоку, на основе ядер преобразования, указываемых посредством индекса преобразования и размера текущего блока; извлечения, в качестве нулевых, коэффициентов оставшейся области, отличной от области, к которой применяется преобразование в текущем блоке; и выполнения обратного преобразования в отношении области, к которой применяется преобразование, с использованием ядер преобразования, указываемых посредством индекса преобразования. 3 н. и 12 з.п. ф-лы, 34 ил.
1. Способ декодирования видеосигнала, содержащий этапы, на которых:
получают из видеосигнала индекс преобразования, указывающий то, какие ядра преобразования применяются вдоль горизонтального и вертикального направлений текущего блока;
определяют область, к которой преобразование применяется в текущем блоке, на основе ядер преобразования, указываемых посредством индекса преобразования и ширины и/или высоты текущего блока;
извлекают, в качестве нулевых, коэффициенты оставшейся области, отличной от области, к которой применяется преобразование в текущем блоке; и
выполняют обратное преобразование в отношении области, к которой применяется преобразование, на основе ядер преобразования, указываемых посредством индекса преобразования.
2. Способ по п.1, в котором определение области, к которой применяется преобразование, выполняется посредством этапа, на котором определяют область, имеющую ширину и/или высоту, соответствующие предварительно заданному размеру, в качестве области, к которой применяется преобразование, на основе того, что ядра преобразования, указываемые посредством индекса преобразования, представляют собой предварительно заданное преобразование, и ширины и/или высоты текущего блока.
3. Способ по п.2, в котором предварительно заданное преобразование представляет собой одно из множества сочетаний преобразований DST7 и/или DCT8.
4. Способ по п.2, в котором предварительно заданный размер равен 16 или 32.
5. Способ по п.1, в котором определение области, к которой применяется преобразование, выполняется посредством этапа, на котором определяют меньшее значение между шириной текущего блока и 32 в качестве ширины области, к которой применяется преобразование, и определяют меньшее значение между высотой текущего блока и 32 в качестве высоты области, к которой применяется преобразование, на основе того, что ядра преобразования, указываемые посредством индекса преобразования, принадлежат первой группе преобразований, и
определяют меньшее значение между шириной текущего блока и 16 в качестве ширины области, к которой применяется преобразование, и определяют меньшее значение между высотой текущего блока и 16 в качестве высоты области, к которой применяется преобразование, на основе того, что ядра преобразования, указываемые посредством индекса преобразования, принадлежат второй группе преобразований.
6. Способ по п.1, дополнительно содержащий этап, на котором получают синтаксический элемент, указывающий позицию последнего значимого коэффициента в порядке сканирования в текущем блоке, при этом коэффициенты, к которым применяется обратное преобразование, получаются из видеосигнала на основе позиции последнего значимого коэффициента.
7. Способ по п.6, в котором синтаксический элемент преобразуется в двоичную форму на основе усеченного унарного способа, и максимальное значение синтаксического элемента определяется на основе оставшейся области.
8. Способ кодирования видеосигнала, содержащий этапы, на которых:
извлекают ядра преобразования, применяемые к текущему блоку, при этом ядра преобразования включают в себя ядро горизонтального преобразования и ядро вертикального преобразования;
определяют область, в которой преобразование применяется к текущему блоку, на основе ядер преобразования и ширины и/или высоты текущего блока;
извлекают, в качестве нулевых, коэффициенты оставшейся области, отличной от области, к которой применяется преобразование в текущем блоке;
выполняют преобразование в отношении текущего блока на основе ядер преобразования; и
формируют индекс преобразования, указывающий то, какие ядра преобразования применяются вдоль горизонтального и вертикального направлений текущего блока.
9. Способ по п.8, в котором определение области, к которой применяется преобразование, выполняется посредством этапа, на котором определяют область, имеющую ширину и/или высоту, соответствующие предварительно заданному размеру, в качестве области, к которой применяется преобразование, на основе того, что ядра преобразования представляют собой предварительно заданное преобразование, и ширины и/или высоты текущего блока.
10. Способ по п.9, в котором предварительно заданное преобразование представляет собой одно из множества сочетаний преобразований DST7 и/или DCT8.
11. Способ по п.9, в котором предварительно заданный размер равен 16 или 32.
12. Способ по п.8, в котором определение области, к которой применяется преобразование, выполняется посредством этапа, на котором определяют меньшее значение между шириной текущего блока и 32 в качестве ширины области, к которой преобразование применяется, и определяют меньшее значение между высотой текущего блока и 32 в качестве высоты области, к которой применяется преобразование, на основе того, что ядра преобразования принадлежат первой группе преобразований, и
определяют меньшее значение между шириной текущего блока и 16 в качестве ширины области, к которой применяется преобразование, и определяют меньшее значение между высотой текущего блока и 16 в качестве высоты области, к которой применяется преобразование, на основе того, что ядра преобразования принадлежат второй группе преобразований.
13. Способ по п.8, дополнительно содержащий этап, на котором формируют синтаксический элемент, указывающий позицию последнего значимого коэффициента в порядке сканирования в текущем блоке, при этом коэффициенты, к которым применяется преобразование, формируются на основе позиции последнего значимого коэффициента.
14. Способ по п.13, в котором синтаксический элемент преобразуется в двоичную форму на основе усеченного унарного способа, и максимальное значение синтаксического элемента определяется на основе оставшейся области.
15. Машиночитаемый носитель, хранящий поток битов, предписывающий устройству декодирования изображений осуществлять способ декодирования изображений, при этом способ декодирования изображений содержит этапы, на которых:
получают из потока битов индекс преобразования, указывающий то, какие ядра преобразования применяются вдоль горизонтального и вертикального направлений текущего блока;
определяют область, к которой преобразование применяется в текущем блоке, на основе ядер преобразования, указываемых посредством индекса преобразования и ширины и/или высоты текущего блока;
извлекают, в качестве нулевых, коэффициенты оставшейся области, отличной от области, к которой применяется преобразование в текущем блоке; и
выполняют обратное преобразование в отношении области, к которой применяется преобразование, на основе ядер преобразования, указываемых посредством индекса преобразования.
KR 20180104599 A - 2018.09.21 | |||
WO 2018065154 A1 - 2018.04.12 | |||
US 2013195177 A1 - 2013.08.01 | |||
СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА | 2012 |
|
RU2626013C1 |
УСТРОЙСТВО АРИФМЕТИЧЕСКОГО ДЕКОДИРОВАНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И УСТРОЙСТВО АРИФМЕТИЧЕСКОГО КОДИРОВАНИЯ | 2012 |
|
RU2628130C2 |
KOO, MOONMO et al., Description of SDR video coding technology proposal by LG Electronics, Joint Video Exploration Team (JVET) of ITU -T SG16 WP3 and ISO/IEC JTC1/SC 29/WG11, JVET-J0017, San Diego, |
Авторы
Даты
2022-03-15—Публикация
2019-09-23—Подача