ПРОСТРАНСТВЕННО ИЗМЕНЯЮЩЕЕСЯ ПРЕОБРАЗОВАНИЕ С ТИПОМ АДАПТИВНОГО ПРЕОБРАЗОВАНИЯ
SPATIALLY VARYING TRANSFORM WITH ADAPTIVE TRANSFORM TYPE

Область техники, к которой относится изобретение
Настоящее изобретение относится к технологиям декодирования видео и, в частности, к способу декодирования видео и соответствующему устройству, использующему пространственно изменяющееся преобразование с типом адаптивного преобразования.
Уровень техники
Кодирование видео по H.265 основано на структуре «предсказание плюс преобразование». В кодере блок изображения (содержащий множество пикселей) может быть разложен на блок предсказания и остаточный блок, и информация предсказания (например, режим предсказания и информация вектора движения) и остаточная информация (например, режим преобразования, коэффициенты преобразования и параметр квантования) кодируются в битовый поток. В декодере анализируются информация предсказания и остаточная информация. Согласно информации предсказания, выполняется внутреннее или внешнее предсказание для генерирования выборок предсказания. Согласно остаточной информации, последовательно выполняются обратное квантование и обратное преобразование для генерирования остаточных выборок. Для получения восстановленных выборок добавляются выборки предсказания и остаточные выборки.
Для повышения эффективности кодирования видео было разработано пространственно изменяющееся преобразование (SVT). Для прямоугольного остаточного блока шириной w и высотой h (то есть, w × h) для преобразования части остаточного блока используется блок преобразования, меньший, чем остаточный блок и остальная часть остаточного блока не кодируется. Обоснование SVT состоит в том, что остаток не может равномерно распределяться в остаточном блоке. Использование меньшего блока преобразования с адаптивной позицией может захватить основной остаток в остаточном блоке и, таким образом, может обеспечить лучшую эффективность кодирования, чем преобразование всего остатка в остаточном блоке.
Когда SVT применяется для остаточного блока размером w × h, информация о размере и позиции блока преобразования кодируется в битовый поток видео и, таким образом, декодер может восстановить блок преобразования и составить его в нужном месте блока предсказания, ассоциированного с остаточным блоком.
В одном примере для остаточного блока могут использоваться три типа блока SVT, как показано на фиг. 1.
1) SVT-I: w_t = w/2, h_t = h/2, где w_t и h_t обозначают ширину и высоту блока преобразования, соответственно, и w и h обозначают ширину и высоту остаточного блока. Другими словами, ширина и высота блока преобразования равны их половине остаточного блока.
2) SVT -II: w_t = w/4, h_t = h;
3) SVT-III: w_t = w, h_t = h/4;
Информация о SVT типе блока кодируется в битовый поток.
Позиция блока преобразования представлено смещением (x, y) позиции в верхний левый угол остаточного блока, где x означает расстояние по горизонтали между верхним левым углом блока преобразования и того же остаточного блока в единицах пикселей, и y означает расстояние по вертикали между верхним левым углом блока преобразования и того же остаточного блока в единицах пикселей. Каждая позиция блока преобразования внутри остаточного блока, является кандидатом позиции. Для остаточного блока количество кандидатов позиций составляет (w-w_t + 1) × (h-h_t + 1) для SVT типа. Более конкретно, для остаточного блока 16 × 16, когда используется SVT-I, имеется 81 кандидатов позиций; когда используется SVT-II или SVT-III, существует 13 кандидатов позиций. Значения x и y кодируются в битовый поток. Для снижения сложности для SVT-I, выбирается подмножество 32 позиций из 81 кандидатов позиций в качестве разрешенных позиций кандидатов для SVT-I.
Одним из недостатков SVT схемы являются большие накладные расходы на сигнализацию информации местоположения. Дополнительно, сложность кодера может быть значительно увеличена за счет количества позиций, проверенных при выполнении способа оптимизации по скорости-искажению (RDO). Поскольку количество кандидатов позиций увеличивается с размером остаточного блока, накладные расходы могут быть еще больше для больших остаточных блоков, например 32 × 32 или 64 × 128.
Другой недостаток SVT схемы состоит в том, что размер блока преобразования составляет 1/4 остаточного блока. Блок преобразования, вероятно, недостаточно велик, чтобы охватить основной остаток в остаточном блоке.
Следовательно, разработана упрощенная SVT схема. Для остаточного кодирования используются два SVT типа блоков, обозначенных как SVT-H и SVT-V, как показано на фиг. 2.
1) SVT-V: w_t = w/2 и h_t = h.
2) SVT-H: w_t = w и h_t = h/2.
SVT-V аналогичен SVT-II и SVT-H аналогичен SVT-III. По сравнению с SVT-II и SVT-III, блок преобразования в SVT-V и SVT-H увеличивается до половины остаточного блока, который может охватывать больше остатка в остаточном блоке.
Кандидаты позиций определяются размером шага кандидата позиции (CPSS). Соответственно, кандидаты позиций разделяются на равные пространства, указанные CPSS. Количество кандидатов позиций сокращается до не более 5, что снижает накладные расходы на информацию местоположения и уменьшает сложность кодера для определения наилучшей позиции блока преобразования.
Сущность изобретения
Настоящее изобретение раскрывает способ декодирования видео и соответствующее устройство, использующее пространственно изменяющееся преобразование с типом адаптивного преобразования для повышения качества декодирования.
Вышеупомянутые и другие задачи решаются предметом изобретения независимых пунктов формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и чертежей.
Согласно первому аспекту, изобретение относится к способу декодирования видео. Способ выполняется устройством для декодирования видео. Способ включает в себя: определение использования пространственно изменяющегося преобразования (SVT) для остаточного блока; определение SVT типа для остаточного блока, когда SVT используется для остаточного блока, в котором SVT типом для остаточного блока является SVT-V или SVT-H; определение позиции блока преобразования блока преобразования остаточного блока; определение типа преобразования блока преобразования, в котором тип преобразования указывает горизонтальное преобразование и вертикальное преобразование для блока преобразования, в котором, по меньшей мере, одно из горизонтальное преобразование и вертикальное преобразование является DST-7; и восстановление остаточного блока на основании типа преобразования, позиции блока преобразования и коэффициентов преобразования блока преобразования.
В возможной форме реализации способа согласно первому аспекту, когда SVT типом для остаточного блока является SVT-V, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую верхний левый угол остаточного блока, горизонтальное преобразование является DCT-8 и вертикальное преобразование является DST-7.
В возможной форме реализации способа согласно первому аспекту, когда SVT типом для остаточного блока является SVT-V, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую правый нижний угол остаточного блока, горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
В возможной форме реализации способа согласно первому аспекту, когда SVT типом для остаточного блока является SVT-H, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую верхний левый угол остаточного блока, горизонтальное преобразование является DST-7 и вертикальное преобразование является DCT-8.
В возможной форме реализации способа согласно первому аспекту, когда SVT типом для остаточного блока является SVT-H, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую правый нижний угол остаточного блока, горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
Согласно второму аспекту изобретение относится к устройству для декодирования видео, содержащему: блок, выполненный с возможностью определять использование пространственно изменяющегося преобразования (SVT) для остаточного блока; блок, выполненный с возможностью определять SVT тип для остаточного блока, когда SVT используется для остаточного блока, в котором SVT типом для остаточного блока является либо SVT-V, либо SVT-H; блок, выполненный с возможностью определять позицию блока преобразования блока преобразования остаточного блока; блок, выполненный с возможностью определять тип преобразования блока преобразования, в котором тип преобразования указывает горизонтальное преобразование и вертикальное преобразование для блока преобразования, в котором, по меньшей мере, одно из горизонтальное преобразование и вертикальное преобразование является DST-7; и блок, выполненный с возможностью восстанавливать остаточный блок на основании типа преобразования, позиции блока преобразования и коэффициентов преобразования блока преобразования.
В возможной форме реализации способа согласно второму аспекту, когда SVT типом для остаточного блока является SVT-V, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую верхний левый угол остаточного блока, горизонтальное преобразование является DCT-8 и вертикальное преобразование является DST-7.
В возможной форме реализации способа согласно второму аспекту, когда SVT типом для остаточного блока является SVT-V, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую правый нижний угол остаточного блока, горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
В возможной форме реализации способа согласно второму аспекту, когда SVT типом для остаточного блока является SVT-H, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую верхний левый угол остаточного блока, горизонтальное преобразование является DST-7 и вертикальное преобразование является DCT-8.
В возможной форме реализации способа согласно второму аспекту, когда SVT типом для остаточного блока является SVT-H, и позиция блока преобразования блока преобразования представляет собой позицию, охватывающую правый нижний угол остаточного блока, горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
Согласно третьему аспекту изобретение относится к устройству для декодирования видео, содержащему: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, когда выполняются процессорами, конфигурирует декодер для выполнения способа согласно первому аспекту.
Согласно четвертому аспекту, изобретение относится к постоянному машиночитаемому носителю данных, хранящему компьютерные инструкции, которые при выполнении одним или несколькими процессорами побуждают один или несколько процессоров выполнять этапы способа в соответствии с первым аспектом.
Очевидно, что настоящее изобретение адаптивно использует несколько типов преобразования для блока преобразования на основании SVT типа и информации позиции, таким образом, может повысить качество декодирования и эффективность декодирования; кроме того, количество алгоритмов преобразования ограничено в некоторых вариантах осуществления, таким образом, можно упростить реализацию устройства для декодирования.
Краткое описание чертежей
Фиг. 1 является иллюстрацией SVT-I, SVT-II и SVT-III;
фиг. 2 является иллюстрацией SVT-V и SVT-H;
фиг. 3 является иллюстрацией кандидатов позиций SVT-V и SVT-H блоков;
фиг. 4 является иллюстрацией SVT-V и SVT-H с 3 кандидатами позиций;
фиг. 5 является блок-схемой алгоритма способа декодирования видео согласно варианту осуществления настоящего изобретения;
фиг. 6 является схемой устройства для декодирования видео согласно варианту осуществления настоящего изобретения.
Описание вариантов осуществления
Настоящее изобретение представляет улучшенную SVT схему. Улучшение состоит в том, что тип горизонтального преобразования и тип вертикального преобразования SVT блока определяются на основании SVT типа и SVT позиции блока. Горизонтальное преобразование может отличаться от вертикального преобразования.
Первый вариант осуществления описывает процесс декодирования остаточного блока. Декодируется битовый поток, содержащий, по меньшей мере, одно изображение видеоданных. Изображение разделяется на множество прямоугольных областей изображения, и каждая область соответствует блоку кодового дерева (CTU). CTU разделен на множество блоков, таких как блоки кодирования в HEVC, в соответствии с информацией о разделении блоков, содержащейся в битовом потоке. Информация кодирования блоков анализируется из битового потока, и пиксели блоков восстанавливаются на основании информации кодирования.
В одном варианте осуществления SVT ограничен использованием для внешне- предсказанных блоков. В другом варианте осуществления SVT также может использоваться для внутренне-предсказанных блоков.
В одном примере SVT может применяться для блоков, использующих конкретный способ внешнего предсказания (например, компенсация движения на основании модели трансляции), но не для блоков, использующих некоторые другие способы внешнего предсказания (например, компенсация движения на основании аффинной модели). В другом примере SVT может быть применено для блоков предсказания с использованием режима объединения или режима AMVP (расширенное предсказание вектора движения) с точностью разности векторов движения 1/4 пикселя, но не разрешено для блоков предсказания с использованием режима аффинного объединения, режима аффинного взаимодействия или AMVP режима с точностью разности векторов движения 1 или 4 пикселя. В другом примере SVT может быть разрешено для блоков предсказания с использованием режима объединения с индексом объединения меньше 2, но не разрешено для блоков предсказания с использованием режима объединения с индексом объединения не менее 2. Можно ссылаться на режим объединения и режим AMVP в стандарте H.265/HEVC. Режим аффинного объединения и режим аффинного взаимодействия могут упоминаться в кодеке JEM (Joint Exploration Model) JVET (Joint Video Exploration Team).
В одном примере блок может относиться к блоку кодирования, где блок кодирования может содержать один блок предсказания и один остаточный блок. Блок предсказания может содержать все выборки предсказания блока кодирования, остаточный блок может содержать все остаточные выборки блока кодирования, и блок предсказания имеет тот же размер, что и остаточный блок. В другом примере блок может относиться к блоку кодирования, блок кодирования может содержать два блока предсказания и один остаточный блок, каждый блок предсказания может содержать часть выборок предсказания блока кодирования, и остаточный блок может содержать все остаточные выборки блока кодирования. В другом примере блок может относиться к блоку кодирования, блок кодирования может содержать два блока предсказания и четыре остаточных блока. Шаблон разделения остаточных блоков в блоке кодирования может сигнализироваться в битовом потоке, например, в остаточном дереве квадратов (RQT) в HEVC.
Блок может содержать только компонент Y (яркость) выборок изображения (или пикселей), или может содержать компоненты Y, U (цветность) и V (цветность) выборок изображения.
Остаточный блок Ro размера w × h может быть восстановлен с помощью следующих этапов.
Этап 1. Определить размер блока преобразования остаточного блока Ro.
Этап 1.1. Определить использование SVT в соответствии с элементом синтаксиса. Для остаточного блока, которому разрешено использовать SVT, если остаточный блок имеет ненулевые коэффициенты преобразования компонента Y (или имеет ненулевые коэффициенты преобразования любого цветового компонента), анализируется флаг (а именно, svt_flag) из битового потока. Флаг указывает, кодируется ли остаточный блок с использованием блока преобразования того же размера, что и остаточный блок (например, svt_flag = 0), или остаточный блок кодируется с блоком преобразования размера, меньшего, чем размер остаточного блока (например, svt_flag = 1). То, имеет ли блок ненулевые коэффициенты преобразования цветового компонента, может указываться флагом кодированного блока (cbf) цветового компонента, как используется в HEVC. То, имеет ли блок ненулевые коэффициенты преобразования любого цветового компонента, может быть указано с помощью флага корневого кодированного блока (root cbf), как используется в HEVC.
В одном примере блоку разрешено использовать SVT при удовлетворении следующих условий:
1) блок предсказывается с использованием внешнего предсказания;
2) ширина или высота блока находится в заранее определенном диапазоне [a1, a2], например, a1 = 16 и a2 = 64, или a1 = 8 и a2 = 64, или a1 = 16 и a2 = 128. Значения a1 и a2 могут быть фиксированными. Значение также может быть получено из набора параметров последовательности (SPS) или заголовка сегмента.
В другом примере блоку разрешено использовать SVT при удовлетворении следующих условий:
1) блок предсказывается с использованием режима объединения с индексом объединения меньше порогового значения (например, 1, 2 или 3) или с использованием режима AMVP с точностью разности вектора движения 1/4 пикселя;
2) одно измерение блока находится в заранее определенном диапазоне [a1, a2], и другое измерение блока не превышает пороговое значение a3, например, a1 = 8, a2 = 32 и a3 = 32. Параметр a1 может быть установлен как двойной минимальный размер преобразования, a2 и a3 оба могут быть установлены как максимальный размер преобразования. Значения a1, a2 и a3 могут быть фиксированными. Значение также может быть получено из набора параметров последовательности (SPS) или заголовка сегмента.
Если блок не использует SVT, размер блока преобразования устанавливается как w × h. В противном случае для определения размера преобразования применяется этап 1.2.
Этап 1.2. Определить SVT тип в соответствии с элементом синтаксиса и получить размер блока преобразования в соответствии с SVT типом. Допустимые SVT типы для остаточного блока определяются на основании ширины и высоты остаточного блока. SVT-V разрешен, если w находится в диапазоне [a1, a2] и h не больше, чем a3; SVT-H разрешен, если h находится в диапазоне [a1, a2], и w не превышает a3. SVT может использоваться только для компонента Y, или он может использоваться для всех трех компонентов, то есть, компонента Y, компонента U и компонента V. Когда SVT используется только для компонента Y, остаток компонента Y преобразуется с помощью SVT и компоненты U и V преобразуются в соответствии с размером остаточного блока.
Когда разрешены и SVT-V, и SVT-H, из битового потока анализируется один флаг (а именно, svt_type_flag), который указывает, используется ли SVT-V (например, svt_type_flag = 0) или используется SVT-H (например, , svt_type_flag = 1) для остаточного блока, и размер блока преобразования устанавливается в соответствии с сигнализируемым SVT типом (т. е. w_t = w/2 и h_t = h для SVT-V, и w_t = w и h_t = h/2 для SVT-H). Когда разрешен только SVT-V или разрешен только SVT-H, svt_type_flag не анализируется из битового потока, и размер блока преобразования устанавливается в соответствии с разрешенным SVT типом.
Этап 2. Определить позицию блока преобразования согласно элементу синтаксиса и определить тип преобразования для блока преобразования на основании SVT типа и информации о позиции блока преобразования.
Этап 2.1: Определить позицию блока преобразования в соответствии с элементом синтаксиса.
Индекс Р позиции анализируется из битового потока, и смещение Z позиции верхнего левого угла блока преобразования в верхний левый угол остаточного блока определяется как Z = s × P, где s является кандидатом размер шага позиции (CPSS). Значение P находится в диапазоне 0, 1,…, , если используется SVT-V, или значение P среди 0, 1,…, , если используется SVT-H. Более конкретно, допустим, что (0, 0) представляет координату верхнего левого угла остаточного блока, координата верхнего левого угла блока преобразования равна (Z, 0) для SVT-V или (0, Z) для SVT -Н.
В одном примере CPSS вычисляется как s = w/M1 для SVT-V или s = h/M2 для SVT-H, где w и h являются шириной и высотой остаточного блока, соответственно, и M1 и M2 являются заранее определенными целыми числами в диапазоне от 2 до 8. Допускается больше кандидатов позиций с большим значением M1 или M2. В этом примере M1 и M2 оба установлены как 8. Следовательно, значение P находится в диапазоне от 0 до 4. Возможные позиции показаны на фиг. 3.
В другом примере CPSS вычисляется как s = max (w/M1, Th1) для SVT-V или s = max (h/M2, Th2) для SVT-H, где Th1 и Th2 являются предварительно определенными целыми числами, определяющие минимальный размер шага. Th1 и Th2 являются целыми числами не меньше 2. В этом примере Th1 и Th2 установлены как 4, и M1 и M2 установлены как 8. В этом примере разные размеры блоков могут иметь разное количество кандидатов позиций. Например, когда w = 8, доступны для выбора 2 кандидата позиций (как показано на фиг. 5 (a) и фиг. 5 (e)); когда w = 16, доступны для выбора 3 кандидата позиций (как показано на фиг. 5 (a), фиг. 5 (c) и фиг. 5 (e)); если w> 16, можно выбрать 5 позиций.
В другом примере CPSS вычисляется как s = w / M1 для SVT-V или s = h / M2 для SVT-H, где M1 и M2 установлены как 4. Соответственно, разрешены 3 кандидата позиций.
В другом примере CPSS вычисляется как s = w / M1 для SVT-V или s = h / M2 для SVT-H, где M1 и M2 установлены как 2. Соответственно, разрешены 2 кандидата позиций.
В другом примере CPSS вычисляется как s = max (w / M1, Th1) для SVT-V или s = max (h / M2, Th2) для SVT-H, где T1 и T2 установлены как 2 , M1 устанавливается как 8, если w ≥ h, или устанавливается как 4, если w <h, и M2 устанавливается как 8, если h ≥ w, или устанавливается как 4, если h <w. В этом случае количество кандидатов позиций для SVT-H или SVT-V может дополнительно зависеть от соотношения сторон остаточного блока.
В другом примере CPSS вычисляется как s = max (w / M1, Th1) для SVT-V или s = max (h / M2, Th2) для SVT-H, где значения M1, M2, Th1 и Th2 являются производными от высокоуровневой синтаксической структуры в битовом потоке (например, набора параметров последовательности). M1 и M2 могут совместно использовать одно и то же значение, полученное из синтаксического элемента, Th1 и Th2 могут совместно использовать одно и то же значение, проанализированное из другого синтаксического элемента.
Индекс Р позиции может быть преобразован в двоичную форму в один или несколько бинов с использованием усеченного унарного кода. Например, если значение P находится в диапазоне от 0 до 4, значения P 0, 4, 2, 3 и 1 преобразуются в двоичную форму как 0, 01, 001, 0001 и 0000 соответственно; если значение P находится в диапазоне от 0 до 1, значения P 0 и 1 преобразуются в двоичную форму как 0 и 1 соответственно.
Индекс P позиции может быть преобразован в двоичную форму в один или несколько бинов с использованием одной наиболее вероятной позиции и нескольких оставшихся позиций. Когда доступны левые и верхние соседние позиции, наиболее вероятная позиция может быть установлена как позиция, охватывающая нижний правый угол остаточного блока. В одном примере, если значение P находится в диапазоне от 0 до 4 и позиция 4 установлена как наиболее вероятная позиция, значения P 4, 0, 1, 2 и 3 преобразуются в двоичную форму как 1, 000, 001, 010 и 011. соответственно; если значение P находится в диапазоне от 0 до 2 и позиция 2 установлена как наиболее вероятная позиция, P значения 2, 0 и 1 преобразуются в двоичную форму как 1, 01 и 00 соответственно.
Этап 2.2: определить тип преобразования для блока преобразования на основании SVT типа и информации о позиции блока преобразования. Тип преобразования включает в себя горизонтальное преобразование и вертикальное преобразование двухмерного разделимого преобразования.
Рассмотрим случай, когда допустимы 3 кандидата позиции для примера, как показано на фиг. 4. Позиция 0 охватывает верхний левый угол и позиция 2 охватывает нижний правый угол. Позиция 1 находится в середине остаточного блока. Как для SVT-V, так и для SVT-H есть три позиции, как показано на фиг. 4.
В другом примере разрешены 2 кандидата позиций. Позиция 0 охватывает верхний левый угол, и позиция 1 охватывает нижний правый угол (то же, что и позиция 2 на фиг. 4). То есть, разрешены две позиции для SVT-V и SVT-H.
Двумерное преобразование может быть разделено на одномерное горизонтальное преобразование и вертикальное преобразование. Прямое двумерное преобразование, которое преобразовывает остаток в коэффициенты преобразования, может быть реализовано путем сначала применения горизонтального преобразования к остаточному блоку для генерирования блока TA, и затем применения вертикального преобразования к блоку TA для генерирования блока коэффициента преобразования, как реализовано в JEM кодеке. Соответственно, обратное двумерное преобразование, которое преобразовывает коэффициенты преобразования обратно в остаточные, может быть реализовано сначала путем применения обратного вертикального преобразования к блоку коэффициента преобразования для генерирования блока TB, и затем применения обратного горизонтального преобразования к блоку TB для генерирования остаточного блока, как реализовано в JEM кодеке.
В одном примере горизонтальное и вертикальное преобразования для позиции 0 SVT-V являются DCT-8 и DST-7; горизонтальное и вертикальное преобразования для позиции 1 SVT-V являются DST-1 и DST-7; горизонтальное и вертикальное преобразования для позиции 2 SVT-V являются DST-7 и DST-7; горизонтальное и вертикальное преобразования для позиции 0 SVT-H являются DST-7 и DCT-8; горизонтальное и вертикальное преобразования для позиции 1 SVT-H являются DST-7 и DST-1; горизонтальное и вертикальное преобразования для позиции 2 SVT-H являются DST-7 и DST-7, как указано в таблице I. В этом примере вертикальное преобразование для SVT-V и горизонтальное преобразование для SVT-H установлено как DST-7, и другое преобразование основано на SVT позиции.
Таблица I. Пример одномерных горизонтальных и вертикальных преобразований для различных SVT типов и позиций.
SVT тип, позиция
Горизонтальное преобразование
Вертикальное преобразование
SVT-V, позиция 0
DCT-8
DST-7
SVT-V, позиция 1
DST-1
DST-7
SVT-V, позиция 2
DST-7
DST-7
SVT-H, позиция 0
DST-7
DCT-8
SVT-H, позиция 1
DST-7
DST-1
SVT-H, позиция 2
DST-7
DST-7
В другом примере горизонтальное преобразование и вертикальное преобразование для различных SVT типов и позиций перечислены в таблице II. В этом примере вертикальное преобразование для SVT-V и горизонтальное преобразование для SVT-H установлено как DCT-2, и другое преобразование основано на SVT позиции.
Таблица II. Пример одномерных горизонтальных и вертикальных преобразований для различных SVT типов и позиций.
SVT тип, позиция
Горизонтальное преобразование
Вертикальное преобразование
SVT-V, позиция 0
DCT-8
DCT-2
SVT-V, позиция 1
DST-1
DCT-2
SVT-V позиция 2
DST-7
DCT-2
SVT-H, позиция 0
DCT-2
DCT-8
SVT-H, позиция 1
DCT-2
DST-1
SVT-H, позиция 2
DCT-2
DST-7
В другом примере горизонтальное преобразование и вертикальное преобразование для различных SVT типов и позиций перечислены в таблице III. В этом примере горизонтальное преобразование и вертикальное преобразование определяется только SVT позицией.
Таблица III. Пример одномерных горизонтальных и вертикальных преобразований для различных SVT типов и позиций.
SVT тип, позиция
Горизонтальное преобразование
Вертикальное преобразование
SVT-V, позиция 0
DCT-8
DCT-8
SVT-V, позиция 1
DST-1
DST-1
SVT-V, позиция 2
DST-7
DST-7
SVT-H, позиция 0
DCT-8
DCT-8
SVT-H, позиция 1
DST-1
DST-1
SVT-H, позиция 2
DST-7
DST-7
В другом примере горизонтальное преобразование и вертикальное преобразование для различных SVT типов и позиций перечислены в таблице IV.
Таблица IV. Пример одномерных горизонтальных и вертикальных преобразований для различных SVT типов и позиций.
SVT тип, позиция
Горизонтальное преобразование
Вертикальное преобразование
SVT-V, позиция 0
DST-7
DCT-8
SVT-V, позиция 1
DST-7
DST-1
SVT-V, позиция 2
DST-7
DST-7
SVT-H, позиция 0
DCT-8
DST-7
SVT-H, позиция 1
DST-1
DST-7
SVT-H, позиция 2
DST-7
DST-7
В другом примере горизонтальное преобразование и вертикальное преобразование для различных SVT типов и позиций перечислены в таблице V.
Таблица V. Пример одномерных горизонтальных и вертикальных преобразований для различных SVT типов и позиций.
SVT тип, позиция
Горизонтальное преобразование
Вертикальное преобразование
SVT-V, позиция 0
DCT-8
DST-7
SVT-V, позиция 1
DCT-2
DST-7
SVT-V, позиция 2
DST-7
DST-7
SVT-H, позиция 0
DST-7
DCT-8
SVT-H, позиция 1
DST-7
DCT-2
SVT-H, позиция 2
DST-7
DST-7
В другом примере горизонтальное преобразование и вертикальное преобразование для различных SVT типов и позиций перечислены в таблице VI.
Таблица VI. Пример одномерных горизонтальных и вертикальных преобразований для различных SVT типов и позиций.
SVT тип, позиция
Горизонтальное преобразование
Вертикальное преобразование
SVT-V, позиция 0
DCT-8
DCT-2
SVT-V, позиция 1
DCT-2
DCT-2
SVT-V, позиция 2
DST-7
DCT-2
SVT-H, позиция 0
DCT-2
DCT-8
SVT-H, позиция 1
DCT-2
DCT-2
SVT-H, позиция 2
DCT-2
DST-7
Зависящие от позиции множественные преобразования могут применяться только к блоку преобразования яркости, и соответствующие блоки преобразования цветности всегда используют обратный DCT-2 в процессе обратного преобразования.
Этап 3. Анализировать коэффициенты преобразования блока преобразования на основании размера блока преобразования.
Данный процесс является обычно используемым процессом при декодировании видео, такой как анализ коэффициентов преобразования в HEVC или H.264/AVC. Коэффициенты преобразования могут кодироваться с использованием кодирования длин последовательности или более сложным кодированием как набор групп коэффициентов преобразования (CG).
Этап 3 может быть выполнен перед этапом 2.
Этап 4. Восстановить остаточный блок Ro на основании коэффициентов преобразования, позиции блока преобразования и типа обратного преобразования.
Обратное квантование и обратное преобразование размера w_t × h_t применяются к коэффициентам преобразования для восстановления остаточных выборок. Размер остаточных выборок равен w_t × h_t, что совпадает с размером блока преобразования. Обратное преобразование представляет собой двухмерное разделимое преобразование. Блок коэффициентов деквантованного преобразования сначала преобразуется с помощью обратного вертикального преобразования для генерирования блока TC, и затем блок TC преобразуется с помощью обратного горизонтального преобразования, в котором решение об обратном горизонтальном преобразовании и обратном вертикальном преобразовании принимается на этапе 2.2 на основании позиции блока преобразования или на основании как позиции блока преобразования, так и SVT типа блока преобразования.
Остаточные выборки назначаются соответствующей области внутри остаточного блока Ro в соответствии с позицией блока преобразования, и остальные выборки внутри остаточного блока устанавливаются равными нулю. Например, если используется SVT-V и количество кандидатов позиций равно 5, и индекс позиции равен 4, восстановленные остаточные выборки назначаются области A на фиг. 3 (e) и области размера (w / 2) × h слева от области A имеет нулевую невязку.
После выполнения этапов с 1 по 4 восстановленный остаточный блок может быть скомпонован с блоком предсказания для генерирования восстановленных выборок в блоке кодирования. Процесс фильтрации может быть применен к восстановленным выборкам позже, такой как фильтр деблокинга и обработка адаптивного смещения выборки (SAO) в HEVC.
В отличие от существующих решений, настоящее изобретение адаптивно использует несколько типов преобразования для блока преобразования на основании SVT типа и информации позиции.
Фиг. 5 является блок-схемой алгоритма примерного способа декодирования видео, использующего пространственно изменяющееся преобразование с типом адаптивного преобразования. Способ может быть инициирован в декодере после приема битового потока. Способ использует битовый поток для определения блоков предсказания и преобразованных остаточных блоков. Способ также может определять блоки преобразования, которые используются для определения остаточных блоков. Остаточные блоки и блоки предсказания затем используются для восстановления блоков изображения. Следует отметить, что хотя способ описан с точки зрения декодера, аналогичный способ может использоваться (например, в обратном направлении) для кодирования видео с использованием SVT. Где способ включает в себя:
Этап 501, определить использование SVT для остаточного блока. Конкретный процесс определения аналогичен этапу 1.1.
Этап 502, определить SVT тип для остаточного блока, когда SVT используется для остаточного блока, в котором SVT тип для остаточного блока является либо SVT-V типом, либо SVT-H типом, где SVT-V тип указывает, что ширина блока преобразования остаточного блока равна половине ширины остаточного блока и высота блока преобразования равна высоте остаточного блока (как показано на фиг. 4); где SVT-H тип указывает, что ширина блока преобразования равна ширине остаточного блока и высота блока преобразования равна половине высоты остаточного блока (как показано на фиг. 4). Конкретный процесс определения аналогичен этапу 1.2.
Этап 503, получить размер блока преобразования блока преобразования согласно SVT типу. Конкретный процесс получения аналогичен этапу 1.2.
Этап 504, определить позицию блока преобразования блока преобразования. Конкретный процесс определения может быть аналогичен этапу 2.1.
В качестве альтернативы, когда кандидаты позиций для SVT типа равны двум, может использоваться однобитовый флаг для указания позиции блока преобразования блока преобразования остаточного блока. Например, когда для SVT-V используются только позиции 0 и 2 на фиг. 4, однобитового флага достаточно, чтобы указать, является ли позиция блока преобразования позицией 0 или позицией 2. Когда для SVT-H используются только позиции 0 и 2 на фиг. 4, однобитового флага достаточно, чтобы указать, является ли позиция блока преобразования позицией 0 или позицией 2.
Этап 505, определить тип преобразования блока преобразования согласно SVT типу и позиции блока преобразования блока преобразования, в котором тип преобразования указывает горизонтальное преобразование и вертикальное преобразование для блока преобразования, в котором, по меньшей мере, одно горизонтальное преобразование и вертикальное преобразование является DST-7. Конкретный процесс определения может быть аналогичен этапу 2.2.
Конкретный тип преобразования может быть любым типом преобразования любой из таблиц I, IV и V, как описано выше, или может быть любым типом преобразования, который включает в себя DST-7 любой из таблиц II, III и VI, как описано выше.
Например, когда SVT типом для остаточного блока является SVT-V тип, и позиция блока преобразования блока преобразования является позицией, охватывающей верхний левый угол остаточного блока (то есть, позиция 0 на фиг. 4), горизонтальное преобразование является DCT-8 и вертикальное преобразование является DST-7.
Например, когда SVT типом для остаточного блока является SVT-V тип и позиция блока преобразования блока преобразования является позицией, охватывающей правый нижний угол остаточного блока (то есть, позиция 2 на фиг. 4), горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
Например, когда SVT типом для остаточного блока является SVT-H тип и позиция блока преобразования блока преобразования является позицией, охватывающей верхний левый угол остаточного блока (то есть, позиция 0 на фиг. 4), горизонтальное преобразование является DST-7 и вертикальное преобразование является DCT-8.
Например, когда SVT типом для остаточного блока является SVT-H тип и позиция блока преобразования блока преобразования является позицией, охватывающей правый нижний угол остаточного блока (то есть, позиция 2 на фиг. 4), горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
Этап 506, анализ коэффициентов преобразования блока преобразования согласно размеру блока преобразования. Конкретный процесс синтаксического анализа может быть аналогичен этапу 3.
Этап 507, восстановление остаточного блока на основании типа преобразования, позиции блока преобразования и коэффициентов преобразования блока преобразования. Конкретный процесс определения может быть аналогичен этапу 4.
Можно видеть, что настоящее изобретение адаптивно использует несколько типов преобразования для блока преобразования на основании SVT типа и информации позиции, таким образом, может повысить качество декодирования и эффективность декодирования; кроме того, количество алгоритмов преобразования ограничено в некоторых вариантах осуществления, таким образом, можно упростить реализацию устройства для декодирования.
Настоящее изобретение раскрывает устройство для декодирования видео, которое выполнено с возможностью реализации способов настоящего изобретения, при этом устройство для декодирования видео включает в себя:
блок, выполненный с возможностью определять использование пространственно изменяющегося преобразования (SVT) для остаточного блока. Конкретный процесс определения аналогичен этапу 1.1.
блок, выполненный с возможностью определять SVT тип для остаточного блока, когда SVT используется для остаточного блока, в котором SVT тип для остаточного блока является либо SVT-V типом, либо SVT-H типом, где SVT-V тип указывает, что ширина блока преобразования остаточного блока равна половине ширины остаточного блока и высота блока преобразования равна размеру высоты остаточного блока, в котором SVT-H тип указывает, что ширина блока преобразования равна ширине остаточного блока и высота блока преобразования равна половине высоты остаточного блока. Конкретный процесс определения аналогичен этапу 1.2.
блок, выполненный с возможностью получать размер блока преобразования блока преобразования в соответствии с SVT типом. Конкретный процесс получения аналогичен этапу 1.2.
блок, выполненный с возможностью определять позицию блока преобразования блока преобразования. Конкретный процесс определения может быть аналогичен этапу 2.1. В качестве альтернативы, когда кандидаты позиций для SVT типа равны двум, может использоваться однобитовый флаг для указания позиции блока преобразования блока преобразования остаточного блока. Например, когда для SVT-V используются только позиции 0 и 2 на фиг. 4, однобитового флага достаточно, чтобы указать, является ли позиция блока преобразования позицией 0 или позицией 2. Когда только позиции 0 и 2 на фиг. 4 используются для SVT-H, однобитового флага достаточно, чтобы указать, является ли позиция блока преобразования позицией 0 или позицией 2.
блок, выполненный с возможностью определять тип преобразования блока преобразования в соответствии с SVT типом и позицией блока преобразования блока преобразования, в котором тип преобразования указывает горизонтальное преобразование и вертикальное преобразование для блока преобразования, в котором, по меньшей мере, одно из: горизонтальное преобразование и вертикальное преобразование является DST-7. Конкретный процесс определения может быть аналогичен этапу 2.2.
блок, выполненный с возможностью выполнять синтаксический анализ коэффициентов преобразования блока преобразования в соответствии с размером блока преобразования. Конкретный процесс синтаксического анализа может быть аналогичен этапу 3.
блок, выполненный с возможностью восстановления остаточного блока на основании типа преобразования, позиции блока преобразования и коэффициентов преобразования блока преобразования. Конкретный процесс определения может быть аналогичен этапу 4.
Конкретный тип преобразования может быть любым типом преобразования любой из таблиц I, IV и V, как описано выше, или может быть любым типом преобразования, который включает в себя DST-7 любой из таблиц II, III и VI, как описано выше.
Например, когда SVT тип для остаточного блока является SVT-V типом и позиция блока преобразования блока преобразования является позицией, охватывающей верхний левый угол остаточного блока (то есть, позиция 0 на фиг. 4), горизонтальное преобразование является DCT-8 и вертикальное преобразование является DST-7.
Например, когда SVT типом для остаточного блока является SVT-V тип и позиция блока преобразования блока преобразования является позицией, охватывающей правый нижний угол остаточного блока (то есть, позиция 2 на фиг. 4), горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
Например, когда SVT типом для остаточного блока является SVT-H тип и позиция блока преобразования блока преобразования является позицией, охватывающей верхний левый угол остаточного блока (то есть, позиция 0 на фиг. 4), горизонтальное преобразование является DST-7 и вертикальное преобразование является DCT-8.
Например, когда SVT типом для остаточного блока является SVT-H тип и позиция блока преобразования блока преобразования является позицией, охватывающей правый нижний угол остаточного блока (то есть, позиция 2 на фиг. 4), горизонтальное преобразование является DST-7 и вертикальное преобразование является DST-7.
Настоящее изобретение раскрывает другое устройство для декодирования видео, которое выполнено с возможностью реализации способов настоящего изобретения, в котором устройство для декодирования видео включает в себя: один или несколько процессоров; и постоянный машиночитаемый носитель данных, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программирование, когда выполняется процессорами, конфигурирует устройство декодирования видео для выполнения любого из способов, как указано выше.
Настоящее изобретение раскрывает постоянный машиночитаемый носитель данных, хранящий компьютерные инструкции, которые при выполнении одним или несколькими процессорами побуждают один или несколько процессоров выполнять этапы любого из способов, как указано выше.
Фиг. 9 является схемой устройства 900 для кодирования согласно варианту осуществления изобретения. Устройство 900 для кодирования выполнено с возможностью реализовывать раскрытые варианты осуществления, как описано в настоящем документе. Устройство 900 для кодирования содержит входные порты 910 и блоки (Rx) 920 приема для приема данных; процессор, логический блок или центральный процессор (CPU) 930 для обработки данных; блоки (Tx) 940 передачи и выходные порты 950 для передачи данных; и память 960 для хранения данных. Устройство 900 для кодирования может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 910, блокам 920 приема, блокам 940 передачи и выходным портам 950 для вывода или ввода оптических или электрических сигналов.
Процессор 930 реализован аппаратным и программным обеспечением. Процессор 930 может быть реализован как одна или несколько микросхем CPU, ядер (например, как многоядерный процессор), программируемых вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 930 поддерживает связь с входными портами 910, блоков 920 приемника, блоков 940 передатчика, выходными портами 950 и памятью 960. Процессор 930 содержит модуль 970 кодирования. Модуль 970 кодирования выполняет раскрытые описанные выше варианты осуществления. Например, модуль 970 кодирования выполняет, обрабатывает, анализирует, подготавливает или предоставляет различные процессы обработки графических данных и вычислений. Использование модуля 970 кодирования предоставляет возможность, по сущности, улучшить функциональность устройства 900 и эффектов преобразования устройства 900 для различных состояний. Альтернативно, модуль 970 кодирования реализован как инструкции, сохраненные в памяти 960 и выполняемые процессором 930.
Память 960 содержит один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве запоминающего устройства для переполнения данных, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые читаются во время выполнения программы. Память 960 может быть энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), памятью с произвольным доступом (RAM), троичной памятью с адресацией по содержимому (TCAM) и/или статической памятью с произвольным доступом (SRAM).
Следующие ссылки включены в настоящий документ посредством ссылки, как если бы они были воспроизведены полностью:
Хотя в настоящем изобретении было предоставлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах без отступления от сущности или объема настоящего изобретения. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и задача не ограничиваться приведенными здесь деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.
Дополнительно, способы, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как отдельные или отдельные, могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами без отклонения от объема настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Другие примеры изменений, замен и модификаций могут быть установлены специалистом в данной области техники и могут быть сделаны без отступления от сущности и объема, раскрытых в данном документе.