СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА
METHOD OF VIDEO SIGNAL DECODING

Настоящая заявка выделена из заявки № 2014119544 на выдачу патента РФ на изобретение, поданной 02.11.2012, с испрашиванием приоритета по дате подачи первых заявок KR 10-2011-0116130 и KR 10-2012-0123519, поданных в патентное ведомство Кореи 08.11.2011 и 02.11.2012 соответственно.
Область техники, к которой относится изобретение
Настоящее изобретение относится к обработке изображений, в частности к способу декодирования видеосигнала.
Уровень техники
В последнее время возрастает потребность в видеоданных высокого качества, в том числе видеоданных высокого разрешения (HD) и сверхвысокого разрешения (UHD).
Необходимость повышения качества и разрешающей способности видеоданных неизбежно влечет за собой увеличение объема видеоданных. Поэтому стоимость передачи и хранения видеоданных для видеоданных высокого качества возрастает по сравнению с обычными способами обработки видеоданных. Для решения этих проблем, вызванных повышением разрешения и качества видеоданных, можно использовать высокоэффективные технологии сжатия видеоданных.
В качестве технологии сжатия видеоданных применяются различные технические решения, в том числе межкадровое предсказание для предсказания значений пикселей, содержащихся в текущем изображении, используя информацию об отличных от текущего изображений, внутрикадровое предсказание для предсказания значений пикселей, содержащихся в текущем изображении с использованием информации о других пикселях в текущем изображении, а также способ энтропийного кодирования/декодирования, предполагающий назначение более коротких кодов более часто встречающимся или возникающим сигналам.
Раскрытие изобретения
Задачи изобретения
Одним из аспектов настоящего изобретения является предоставление способа декодирования видеосигнала, способного повысить эффективность декодирования видеосигнала.
Техническое решение
Вариант осуществления настоящего изобретения предлагает способ декодирования видеосигнала, включающий получение разностных коэффициентов текущего блока из видеосигнала; определение прошедших обратную квантизацию разностных коэффициентов путем выполнения обратной квантизации разностных коэффициентов; определение разностных образцов текущего блока путем выполнения обратного преобразования прошедших обратную квантизацию разностных коэффициентов; выбор опорного изображения для текущего блока с использованием опорного индекса текущего блока; определение опорного блока в опорном изображении с использованием вектора движения текущего блока; формирование опорных образцов в опорном блоке, причем формирование опорных образцов включает определение первого субобразца на основании интерполяционного фильтра для горизонтальной интерполяции и операции сдвига с использованием первого значения сдвига, причем интерполяционный фильтр для горизонтальной интерполяции применяют к целому образцу в опорном изображении; и определение второго субобразца на основании интерполяционного фильтра для вертикальной интерполяции и операции сдвига с использованием второго значения сдвига, причем интерполяционный фильтр для вертикальной интерполяции применяют к первому субобразцу, а второй субобразец представляет собой один из числа двух образцов в четвертьпиксельном положении и образца в полупиксельном положении, выровненный вертикально под первым субобразцом; получение образцов предсказания текущего блока путем использования опорных образцов; и воссоздание текущего блока путем использования разностных образцов и образцов предсказания, причем коэффициенты интерполяционного фильтра для вертикальной интерполяции, определенные для каждого из указанных двух образцов в четвертьпиксельном положении и образца в полупиксельном положении, отличны друг от друга, и первое значение сдвига определяют на основании битовой глубины компоненты яркости, а второе значение сдвига представляет собой фиксированное значение.
Способ может дополнительно включать формирование списка кандидатов на слияние для текущего блока, причем указанный список кандидатов на слияние включает множество кандидатов на слияние; и получение опорного индекса и вектора движения текущего блока с использованием того кандидата на слияние среди множества кандидатов на слияние, который соответствует индексу слияния текущего блока.
Множество кандидатов на слияние может включать соседний в пространстве блок относительно текущего блока и соседний во времени блок относительно текущего блока.
Количество имеющих ненулевую вещественную часть коэффициентов фильтра для интерполяционного фильтра для вертикальной интерполяции, используемого для определения одного из числа двух образцов в четвертьпиксельном положении и образца в полупиксельном положении, может отличаться от количества имеющих ненулевую вещественную часть коэффициентов фильтра для интерполяционного фильтра для горизонтальной интерполяции.
Технический результат
Согласно способу декодирования видеосигнала можно повысить эффективность декодирования видеосигнала.
Краткое описание чертежей
На фиг. 1 приведена блок-схема устройства для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
На фиг. 2 приведена блок-схема устройства для декодирования видеоданных согласно примеру осуществления настоящего изобретения.
Фиг. 3 схематически иллюстрирует интерполяцию при межкадровом предсказании согласно примеру осуществления настоящего изобретения.
Фиг. 4 схематически иллюстрирует применение интерполяционного фильтра с отводами при использовании асимметричного разбиения по движению (AMP) в вертикальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Фиг. 5 схематически иллюстрирует применение интерполяционного фильтра с отводами при использовании AMP в горизонтальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
На фиг. 6 показана диаграмма, схематически иллюстрирующая процесс выполнения межкадрового предсказания для полученного асимметричным разбиением PU в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Фиг. 7 схематически иллюстрирует применение интерполяционного фильтра с отводами, подходящего для вертикальной или горизонтальной длины полученного разбиением PU при использовании AMP в вертикальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Фиг. 8 схематически иллюстрирует применение интерполяционного фильтра с отводами, подходящего для вертикальной или горизонтальной длины полученного разбиением PU при использовании AMP в горизонтальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
На фиг. 9 показана диаграмма, схематически иллюстрирующая способ кодирования видеоданных согласно примеру осуществления настоящего изобретения.
На фиг. 10 показана диаграмма, схематически иллюстрирующая способ декодирования видеоданных согласно примеру осуществления настоящего изобретения.
Осуществление изобретения
Настоящее изобретение может быть изменено и модифицировано различными способами, а также проиллюстрировано согласно различным примерам осуществления, некоторые из которых будут описаны и показаны на чертежах.
Однако эти варианты осуществления не направлены на ограничение изобретения, а интерпретируются как включающие в себя все модификации, эквиваленты и замены, соответствующие духу и техническому объему данного изобретения.
Несмотря на то, что при описании различных элементов могут быть использованы термины "первый", "второй" и т.д., эти термины не следует воспринимать в ограничительном смысле. Эти термины используются лишь для различения одного элемента от другого. Например, первый элемент может быть назван вторым элементом, а второй элемент, наоборот, первым элементом без какого-либо противоречия принципам настоящего изобретения. Термин "и/или" включает любую или все комбинации множества соответствующих перечисленных пунктов.
Если в отношении элемента сказано, что он "соединен" или "связан" с другим элементом, то следует понимать это так, что данный элемент можно непосредственно соединить или связать с другим элементом или промежуточными элементами. Напротив, если в отношении элемента сказано, что он "непосредственно соединен" или "непосредственно связан" с другим элементом, то между ними не имеется никаких промежуточных элементов.
Используемая в настоящем документе терминология применена исключительно для раскрытия конкретных вариантов осуществления и не направлена на ограничение объема изобретения. Подразумевается, что использованные для раскрытия изобретения термины в единственном числе, а также с уточнением "один из", "этот" или "данный", включают в себя также и формы множественного числа, кроме случаев, когда контекст явно указывает на обратное. Кроме того, термины "включает ", "содержит" и/или "имеет", используемые в настоящем описании, следует понимать как указывающие на наличие заявленных свойств, составляющих, шагов, операций, элементов и/или компонентов, но не как исключающие наличие или добавление одного или нескольких других свойств, составляющих, шагов, операций, элементов и/или компонентов и/или их групп.
Если не оговорено иное, все используемые в настоящем документе термины (включая технические и научные термины) имеют то же значение, что и принятое среди специалистов в данной области, к которой принадлежит настоящее изобретение. При этом в дальнейшем понимается, что термины, в том числе определенные в традиционных словарях, должны интерпретироваться в значении, совместимом с их значением в контексте соответствующей области техники и не должны интерпретироваться в отвлеченном или излишне формальном смысле, если последнее не оговорено явно в данном документе.
Ниже будут подробно раскрыты примеры реализации настоящего изобретения со ссылкой на прилагаемые чертежи. Для удобства изложения одинаковые ссылочные обозначения на фигурах соответствуют одним и тем же элементам в рамках всего настоящего документа, а дублирующие друг друга описания аналогичных элементов будут опущены.
На фиг. 1 приведена блок-схема устройства для кодирования видеоданных согласно примеру осуществления настоящего изобретения. Показанное на фиг. 1 устройство для кодирования видеоданных может содержать модуль 110 разбиения изображения, модуль 120 межкадрового предсказания, модуль 125 внутрикадрового предсказания, модуль 130 преобразования, модуль 135 квантизации, модуль 140 деквантизации, модуль 145 обратного преобразования, модуль 150 фильтрации, память 155, модуль 160 переупорядочения и модуль 165 энтропийного кодирования.
Модуль 110 разбиения изображения может разделять входное изображение на один или более элементов кодирования. Элемент кодирования (CU, coding unit) представляет собой элемент для кодирования, выполняемого в устройстве для кодирования видеоданных, и может быть рекурсивно подразделен, при этом информация о глубине основывается на структуре дерева квадрантов. CU может иметь различные размеры, в том числе 8 x 8, 16 x 16, 32 x 32 и 64 x 64. CU максимального размера называют наибольшим элементом кодирования (LCU, largest coding unit), а CU минимального размера называют наименьшим элементом кодирования (SCU, smallest coding unit).
Модуль 110 разбиения изображения может выполнять разбиение CU для формирования элемента предсказания (PU, prediction unit) и элемента преобразования (TU, transform unit). PU может иметь размер, меньший или равный размеру CU, и необязательно должен быть квадратным блоком, а может быть и прямоугольным блоком.
Как правило, внутрикадровое предсказание осуществляется по блокам 2N*2N или N*N. Здесь N представляет собой натуральное число, обозначающее количество пикселей, а 2N*2N или N*N может обозначать размер PU (и/или режим разбиения). Однако при внутрикадровом предсказании на малых расстояниях (SDIP, short distance intra prediction) для повышения эффективности внутрикадрового предсказания можно использовать не только PU размером 2N*2N, но и еще более мелкие полученные разбиением PU размером hN*2N/2N*hN (где h=1/2). Использование размеров hN*2N или 2N*hN PU позволяет эффективно отражать направленность границы в блоке и соответственно уменьшать энергию сигнала ошибки предсказания для сокращения необходимого для кодирования числа битов, таким образом повышая эффективность кодирования.
Межкадровое предсказание можно осуществлять по блокам 2N*2N, 2N*N, N*2N или N*N. Здесь N представляет собой натуральное число, обозначающее количество пикселей, а 2N*2N, 2N*N, N*2N или N*N может обозначать размер PU (и/или режим разбиения). Кроме того, для повышения эффективности межкадрового предсказания последнее, помимо размеров PU 2N*2N, 2N*N, N*2N или N*N, можно осуществлять в элементах PU размером 2NxnU, 2NxnD, nLx2N или nRx2N. Здесь 2NxnU, 2NxnD, nLx2N или nRx2N могут обозначать размер PU (и/или режим разбиения). В режимах разбиения 2NxnU и 2NxnD PU может иметь размер 2Nx(1/2)N или 2Nx(3/2)N, тогда как в режимах разбиения nLx2N и nRx2N PU может иметь размер (1/2)Nx2N или (3/2)Nx2N.
В режиме межкадрового предсказания модуль 120 межкадрового предсказания может выполнять предсказание движения (ME, motion estimation) и компенсацию движения (MC, motion compensation) Модуль 120 межкадрового предсказания может формировать блок предсказания на основе информации о по меньшей мере одном изображении из числа предыдущего или последующего относительно текущего изображения.
Модуль 120 межкадрового предсказания может выполнять предсказание движения на основе подвергнутого разбиению целевого блока предсказания и по меньшей мере одного опорного блока, хранящегося в памяти 155. Модуль 120 межкадрового предсказания может формировать информацию о движении, включающую вектор движения (MV, motion vector), индекс опорного блока, режим предсказания и т.д. в качестве результата предсказания движения.
Кроме того, модуль 120 межкадрового предсказания может выполнять компенсацию движения, используя информацию о движении и опорный блок. В этом случае модуль 120 межкадрового предсказания может формировать блок предсказания на основе опорного блока, соответствующего входному блоку, и выдавать предсказанный блок.
В режиме внутрикадрового предсказания модуль 125 внутрикадрового предсказания может формировать блок предсказания на основе информации о пикселях, содержащихся в текущем изображении. В режиме внутрикадрового предсказания модуль 125 внутрикадрового предсказания может выполнять предсказание для текущего блока на основе целевого блока предсказания и воссозданного блока, ранее воссозданного после преобразования и квантизации. В этом случае воссозданный блок может представлять собой воссозданное изображение, не обрабатывавшееся в модуле 150 фильтрации.
В описанных выше режимах межкадрового предсказания или внутрикадрового предсказания предсказание можно выполнять в отношении целевого блока предсказания для формирования блока предсказания. В этом случае можно сформировать разностный блок на основе значения разности между целевым блоком предсказания (исходным блоком) и сформированным блоком предсказания.
Модуль 130 преобразования может преобразовывать разностный блок по каждому TU для формирования коэффициента преобразования. TU может иметь древовидную структуру с размерами от максимального до минимального. С помощью флага можно указать, разделяется ли текущий блок на подблоки по каждому TU. Модуль 130 преобразования может выполнять преобразование с использованием дискретного косинусного преобразования (ДКП, DCT) или дискретного синусного преобразования (ДСП, DST).
Модуль 135 квантизации может выполнять квантизацию значений, преобразованных модулем 130 преобразования. Коэффициент квантизации может изменяться согласно блоку или приоритету изображения. Квантизированный коэффициент преобразования может быть подан в модуль 160 переупорядочения и модуль 140 деквантизации.
Модуль 160 переупорядочения может преобразовывать двумерный блок квантизированных коэффициентов преобразования в одномерный вектор коэффициентов преобразования путем сканирования с целью повышения эффективности энтропийного кодирования. Модуль 160 переупорядочения может изменять порядок сканирования согласно стохастической статистике с целью повышения эффективности энтропийного кодирования.
Модуль 165 энтропийного кодирования может выполнять энтропийное кодирование значений, полученных в модуле 160 переупорядочения. При энтропийном кодировании более часто встречающимся значениям синтаксических элементов можно назначать кодовое слово с меньшим числом битов, а менее часто встречающимся значениям синтаксических элементов можно назначать кодовое слово с большим числом битов. Таким образом размер битовой строки для кодируемых символов можно сократить, повысив тем самым эффективность сжатия при кодировании видеоданных. Для энтропийного кодирования можно применять различные способы кодирования, например, экспоненциальный код Голомба (exponential Golomb coding), контекстно-адаптивное кодирование переменной длины (context-adaptive variable length coding, CAVLC) или контекстно-адаптивное двоичное арифметическое кодирование (context-adaptive binary arithmetic coding, CABAC). Кодированную информацию можно организовать в виде сжатого битового потока и передавать через абстрактный уровень сети (NAL, network abstraction layer).
Mодуль 140 деквантизации может выполнять деквантизацию коэффициентов преобразования, прошедших квантизацию в модуле 135 квантизации, а модуль 145 обратного преобразования может осуществлять обратное преобразование деквантизированных коэффициентов преобразования для формирования воссозданного разностного блока. Воссозданный разностный блок можно добавить к блоку предсказания, сформированному в модуле 120 межкадрового предсказания или модуле 125 внутрикадрового предсказания, для формирования воссозданного блока. Воссозданный блок может быть подан в модуль 125 внутрикадрового предсказания и модуль 150 фильтрации.
Модуль 150 фильтрации может выполнять фильтрацию воссозданного разностного блока с помощью деблокирующего фильтра, адаптивного нелинейного фильтра SAO (sample adaptive offset) и/или адаптивного петлевого фильтра (ALF, adaptive loop filter). Кроме того, деблокирующий фильтр может осуществлять фильтрацию воссозданного блока для устранения искажений на границах между блоками, возникающих при кодировании и декодировании. SAO представляет собой процесс фильтрации с обратной связью, выполняемый в отношении блока, для которого был выполнен процесс деблокирующей фильтрации, с целью сокращения разницы с исходным изображением на пиксель. В качестве SAO можно использовать диапазонное смещение и краевое смещение. При диапазонном смещении пиксели разделяют на 32 диапазона согласно интенсивности, и применяют смещения к двум полученным делением группам из 16 диапазонов в краевой области и 16 диапазонов в центральной области. Фильтрация ALF позволяет минимизировать ошибку между целевым блоком предсказания и результирующим воссозданным блоком. ALF может выполнять фильтрацию на основе значения, полученного путем сравнения воссозданного блока, прошедшего фильтрацию с помощью деблокирующего фильтра, с текущим целевым блоком предсказания, при этом информацию о коэффициентах фильтрации ALF можно передавать из устройства для кодирования в устройство для декодирования в заголовке слайса (slice header).
Память 155 может сохранять результирующий воссозданный блок из модуля 150 фильтрации, а также результирующий воссозданный блок может быть передан в модуль 120 межкадрового предсказания для выполнения межкадрового предсказания.
На фиг. 2 приведена блок-схема устройства для декодирования видеоданных согласно примеру осуществления настоящего изобретения. Показанное на фиг. 2 устройство для декодирования видеоданных может содержать модуль 210 энтропийного декодирования, модуль 215 переупорядочения, модуль 220 деквантизации, модуль 225 обратного преобразования, модуль 230 межкадрового предсказания, модуль 235 внутрикадрового предсказания, модуль 240 фильтрации и память 245.
Модуль 210 энтропийного декодирования может получать от NAL сжатый битовый поток. Модуль 210 энтропийного декодирования может выполнять энтропийное декодирование полученного битового потока, а также энтропийное декодирование информации о режиме предсказания и информации о векторе движения, если битовый поток содержит информацию о режиме предсказания и информацию о векторе движения. При энтропийном декодировании более часто встречающимся значениям синтаксических элементов может быть назначено кодовое слово с меньшим числом битов, а менее часто встречающимся значениям синтаксических элементов может быть назначено кодовое слово с большим числом битов. Таким образом размер битовой строки для кодируемых символов можно сократить, повысив тем самым эффективность при декодировании видеоданных.
Полученный в результате энтропийного декодирования коэффициент преобразования или разностный сигнал можно подать в модуль 215 переупорядочения. Модуль 215 переупорядочения может выполнять обратное сканирование декодированного коэффициента преобразования или разностного сигнала для формирования двумерного (2D) блока коэффициентов преобразования.
Модуль 220 деквантизации может выполнять деквантизацию переупорядоченных коэффициентов преобразования. Модуль 225 обратного преобразования может выполнять обратное преобразование деквантизированных коэффициентов преобразования для формирования разностного блока.
Разностный блок можно добавить к блоку предсказания, сформированному в модуле 230 межкадрового предсказания или модуле 235 внутрикадрового предсказания, для формирования воссозданного блока. Воссозданный блок можно подать в модуль 235 внутрикадрового предсказания и модуль 240 фильтрации. Модуль 230 межкадрового предсказания и модуль 235 внутрикадрового предсказания выполняют операции, идентичные или эквивалентные операциям модуля 120 межкадрового предсказания и модуля 125 внутрикадрового предсказания устройства для кодирования видеоданных, поэтому соответствующие описания будут опущены.
Модуль 240 фильтрации может выполнять фильтрацию воссозданного блока с помощью деблокирующего фильтра, SAO или ALF. Деблокирующий фильтр может осуществлять фильтрацию воссозданного блока для устранения искажений на границах между блоками, возникающих при кодировании и декодировании. SAO можно применять к воссозданному блоку, для которого был выполнен процесс деблокирующей фильтрации, с целью сокращения разницы с исходным изображением на пиксель. ALF можно выполнять для фильтрации воссозданного блока, для которого была выполнена фильтрация SAO, для минимизации ошибки между целевым блоком предсказания и результирующим воссозданным блоком.
Память 245 может хранить результирующий воссозданный блок, полученный из модуля 240 фильтрации, и результирующий воссозданный блок может быть передан в модуль 230 межкадрового предсказания для выполнения межкадрового предсказания.
Ниже под блоком может пониматься элемент кодирования и декодирования видеоданных. Таким образом, в настоящем описании под блоком может пониматься CU, PU или TU. Кроме того, под целевым блоком кодирования/декодирования может пониматься в совокупности также целевой блок преобразования/обратного преобразования, если выполняется преобразование/обратное преобразование, и целевой блок предсказания, если выполняется предсказание.
Фиг. 3 схематически иллюстрирует интерполяцию при межкадровом предсказании согласно примеру осуществления настоящего изобретения. Как показано на фиг. 3, когда устройство для кодирования (и/или устройство для декодирования) формирует сигнал PU, используя информацию о движении при межкадровом предсказании, можно использовать 8-отводный интерполяционный фильтр.
Как показано на фиг. 3, интерполяция осуществляется для каждой позиции в горизонтальном направлении или вертикальном направлении для предсказания значения пикселя (включая значения яркости и цветности). Как было раскрыто выше, применение 8-отводного интерполяционного фильтра означает, что если PU представляет собой заранее определенный блок 4 x 4 (т.е. указан текущий блок 310), то при интерполяции для предсказания значений пикселей текущего блока 310 должным образом используются восемь значений пикселей в направлении вправо и в направлении влево (т.е. в горизонтальном направлении) по отношению к блоку 4 x 4, или в направлении вверх и в направлении вниз (т.е. в вертикальном направлении) по отношению к блоку 4 x 4. Несмотря на то, что на фиг. 3 показано использование только 8-отводного фильтра, настоящее изобретение этим не ограничивается.
0,0
В настоящем варианте осуществления можно выполнять интерполяцию с использованием 8 отводов в горизонтальном направлении, а затем выполнять интерполяцию с использованием 8 отводов в вертикальном направлении. Во-первых, в предположении, что известно значение пикселя для верхнего левого пикселя каждого блока 4 x 4, можно путем интерполяции предсказать значение пикселя (a) непосредственно справа от верхнего левого пикселя, используя значения пикселя для верхних левых пикселей трех блоков 4 x 4 слева от текущего блока и значения пикселя для верхних левых пикселей четырех блоков 4 x 4 справа от текущего блока, что выражается приведенной ниже формулой.
[Формула 1]
Здесь shift1=BitDepthY (битовая глубина компонента Y) – 8. Таким образом с помощью интерполяции можно предсказать значения пикселя для других пикселей текущего блока 310, что выражается приведенной ниже формулой.
[Формула 2]
Здесь shift2=8. Как следует из формулы 2, значения пикселя для трех верхних пикселей и трех левых пикселей, отличных от верхнего левого пикселя текущего блока 310, можно предсказать путем горизонтальной или вертикальной интерполяции, используя значения пикселя для верхних левых пикселей соседних по горизонтали или вертикали блоков 4 x 4, а значения пикселя для остальных пикселей можно предсказать путем вертикальной или горизонтальной интерполяции с использованием значений пикселя для верхних пикселей семи соседних по горизонтали или вертикали блоков 4 x 4. Используя формулу 1 или формулу 2, можно определить значения пикселей PU, предсказываемого в текущий момент, и сформировать сигнал предсказания, соответствующий этому PU.
Фиг. 4 схематически иллюстрирует применение интерполяционного фильтра с отводами при использовании асимметричного разбиения по движению (AMP, asymmetric motion partitioning) при асимметрии в вертикальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Согласно фиг. 4, если PU подвергается разбиению с AM, и применяется фильтр с отводами большой длины, например 8-отводный фильтр, для более короткого направления асимметричного разделения, то пиксели другого разделения также участвуют в интерполяции. В этом случае пиксели имеют слабую корреляцию в случае, если они принадлежат к различным разделениям, и поэтому эффективность интерполяции может быть снижена. Таким образом, если блок 412 и блок 414 интерполируются вместе, эффективность интерполяции снижается ввиду слабой корреляции между блоком 412 и блоком 414. Такой же результат будет получен для блока 422 и блока 424.
Согласно настоящему варианту осуществления, если PU подвергается разбиению с AMP, то для интерполяции в направлении асимметрии асимметрично разбитого PU меньшей длины применяется фильтр с отводами меньшей длины, чем традиционный фильтр с отводами. Например, для выполнения интерполяции асимметрично разбитого PU с меньшей длиной можно использовать фильтр с отводами меньшей длины, чем 8-отводный фильтр. В режиме межкадрового предсказания PU может иметь формат 2N*2N, 2N*N, N*2N, N*N, 2NxnU, 2NxnD, nLx2N или nRx2N. 8-отводный фильтр может использоваться для интерполяции асимметрично разбитого PU, например, PU размера 2N*2N, 2N*N, N*2N и N*N.
Как видно из левой части фиг. 4, если разбиение PU осуществляется для формы блока 410 2N x nU, который делится асимметрично в вертикальном направлении, то верхний блок 412 представляет собой полученный разбиением блок меньшей длины. Блок 410 может включать верхний блок 412 и нижний блок 414, при этом отношение между длинами верхнего блока 412 и нижнего блока 414 в вертикальном направлении может составлять 16:48. Как видно из правой части фиг. 4, если разбиение PU осуществляется для формы блока 420 2N x nD, который делится асимметрично в вертикальном направлении, то нижний блок 424 представляет собой полученный разбиением блок меньшей длины. Блок 420 может включать верхний блок 422 и нижний блок 424, при этом отношение между длинами верхнего блока 422 и нижнего блока 424 в вертикальном направлении может составлять 48:16. При асимметричном разбиении в вертикальном направлении верхний блок 412, входящий в блок 410 2N x nU, и нижний блок 424, входящий в блок 420 размера 2N x nD, можно интерполировать с использованием меньшего числа отводов в вертикальном направлении в сравнении с горизонтальным направлением. Например, при использовании в горизонтальном направлении 8-отводного фильтра в вертикальном направлении можно использовать фильтр с отводами меньшей длины, чем 8-отводный фильтр.
Фиг. 5 схематически иллюстрирует применение интерполяционного фильтра с отводами при использовании AMP с асимметрией в горизонтальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Как видно из левой части фиг. 5, если разбиение PU осуществляется для формы блока 510 nL x 2N, который делится асимметрично в горизонтальном направлении, то левый блок 512 представляет собой полученный разбиением блок меньшей длины. Блок 510 может включать левый блок 512 и правый блок 514, причем длины левого блока 512 и правого блока 514 в вертикальном направлении могут быть одинаковыми, т.е. 64, а отношение между их длинами в горизонтальном направлении может составлять 16:48. Как видно из правой части фиг. 5, если разбиение PU осуществляется для формы блока 520 nR x 2N, который делится асимметрично в горизонтальном направлении, то правый блок 524 представляет собой полученный разбиением блок меньшей длины. Блок 520 может включать левый блок 522 и правый блок 524, при этом отношение между длинами левого блока 522 и правого блока 524 в горизонтальном направлении может составлять 48:16. При асимметричном разбиении в горизонтальном направлении левый блок 512, входящий в блок 510 nL x 2N, и правый блок 524, входящий в блок 520 nR x 2N, можно интерполировать с использованием фильтра с отводами меньшей длины в вертикальном направлении в сравнении с горизонтальным направлением. Например, в горизонтальном направлении можно использовать фильтр с отводами меньшей длины, чем 8-отводный фильтр.
Несмотря на то, что примеры вариантов осуществления, иллюстрируемые фиг. 4 и фиг. 5, описаны для блока 64 x 64, данные примеры осуществления могут также быть применены к блокам различных размеров или форм, отличным от блока 64 x 64.
На фиг. 6 показана диаграмма, схематически иллюстрирующая процесс выполнения межкадрового предсказания для асимметрично разбитого PU в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения. Согласно фиг. 6, процесс межкадрового предсказания может включать получение информации о разбиении (S610), определение длины в направлении асимметрии (S620), определение длины фильтра в отводах (S630) и выполнение интерполяции (S640).
Как показано на фиг. 6, на этапе получения информации о разбиении (S610) определяется информация о разбиении, относящаяся к асимметрично разбитому блоку. В процессе кодирования информацию о разбиении можно включить в информацию о движении по текущему PU посредством предсказания движения. Информация о движении может содержать информацию о векторе движения PU, индекс опорного изображения, индекс направления предсказания, режим предсказания и информацию о форме PU.
Согласно настоящему варианту осуществления, поскольку можно сформировать битовый поток, содержащий информацию о длине интерполяционного фильтра с отводами для PU, соответствующего целевому блоку кодирования в процессе кодирования, устройство для декодирования может получить из принятого битового потока информацию о длине интерполяционного фильтра с отводами для PU, соответствующего целевому блоку декодирования. В этом случае определение длины (S620) и определение длины фильтра с отводами (S630) можно пропустить. Если битовый поток не содержит информацию о длине фильтра с отводами, то ее можно определить следующим образом: получить информацию о форме PU, затем определить длину (S620) и определить длину фильтра с отводами (S630).
На этапе определения длины в направлении асимметрии (S620) устройство для кодирования (и/или устройство для декодирования) определяет длину в направлении асимметрии (либо в вертикальном, либо в горизонтальном направлении) для PU, соответствующего целевому блоку кодирования (и/или декодирования) на основе полученной информации о разбиении. Таким образом устройство для кодирования определяет, имеет ли асимметрично разбитый блок большую или меньшую длину в горизонтальном направлении.
Затем на этапе определения длины фильтра с отводами (S630) определяется длина фильтра с отводами для интерполяции PU, соответствующего целевому блоку кодирования (или декодирования) на основе результатов определения длины. Как было раскрыто выше, длина фильтра с отводами определяется на основе полученной в результате разбиения длины в направлении асимметрии. Например, длину фильтра с отводами можно определить таким образом, чтобы к асимметрично разбитому блоку, имеющему меньшую длину в вертикальном направлении, применялся фильтр с отводами меньшей длины в вертикальном направлении в сравнении с горизонтальным направлением, а к асимметрично разбитому блоку, имеющему меньшую длину в горизонтальном направлении, применялся фильтр с отводами меньшей длины в горизонтальном направлении в сравнении с вертикальным направлением.
На этапе интерполяции (S640) устройство для кодирования (и/или устройство для декодирования) выполняет интерполяцию на основе длины фильтра с отводами, определенной на этапе определения длины фильтра (S630).
Согласно настоящему варианту осуществления, в процессе кодирования осуществляется интерполяция на основе определенной таким образом длины фильтра с отводами и формируется битовый поток, содержащий информацию о длине фильтра с отводами.
Фиг. 7 схематически иллюстрирует применение интерполяционного фильтра с длиной, соответствующей вертикальной или горизонтальной длине полученных разбиением PU при использовании AMP в вертикальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Как видно из фиг. 7, интерполяцию для большего по площади полученного разбиением блока можно осуществить с помощью фильтра с большей длиной в отводах, чем для меньшего полученного асимметричным разбиением блока. Кроме того, общая длина фильтра с отводами в направлении асимметрии по меньшей мере двух полученных разбиением блоков может быть больше длины фильтра с отводами в направлении, не являющемся направлением асимметрии.
Как видно из левой части фиг. 7, блок 2N x nU асимметрично разбит в вертикальном направлении, причем верхний блок 710 представляет полученный разбиением блок меньшей длины. Верхний блок 710, входящий в блок 2N x nU, имеет меньшую длину в вертикальном направлении в сравнении с нижним блоком 720, при этом отношение между длинами верхнего блока 710 и нижнего блока 720 может составлять 16:48. В этом случае для нижнего блока 720 большей площади может применяться фильтр с отводами большей длины, чем для верхнего блока 710 меньшей площади. Кроме того, общая длина фильтра с отводами в направлении асимметрии, то есть общая длина вертикального фильтра с отводами верхнего блока 710 и вертикального фильтра с отводами нижнего блока 720 может быть больше длины горизонтального фильтра с отводами для верхнего блока 710 и нижнего блока 720.
Например, можно использовать 4-отводный фильтр для верхнего блока 710 при интерполяции для вертикального направления и 6-отводный фильтр для нижнего блока 720 при интерполяции для вертикального направления. Таким образом, общая длина фильтра с отводами для 4-отводного фильтра и 6-отводного фильтра составляет 10, что превышает длину горизонтального фильтра с отводами, равную 8.
Как видно из правой части фиг. 7, такой же принцип можно использовать для блока 2N x nD, в этом случае можно использовать 6-отводный фильтр для верхнего блока 730 при интерполяции для вертикального направления и 4-отводный фильтр для нижнего блока 740 при интерполяции для вертикального направления.
Фиг. 8 схематически иллюстрирует применение интерполяционного фильтра с отводами, подходящего для вертикальной или горизонтальной длины полученного разбиением PU при использовании AMP в горизонтальном направлении в устройстве для кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Как видно из левой части фиг. 8, блок nL x 2N асимметрично разбит в горизонтальном направлении, причем левый блок 810 представляет собой полученный разбиением блок меньшей длины. Левый блок 810, входящий в блок nL x 2N, имеет меньшую длину в горизонтальном направлении в сравнении с правым блоком 820, при этом отношение между длинами левого блока 810 и правого блока 820 может составлять 16:48. В этом случае для правого блока 820 большей площади может применяться фильтр с отводами большей длины, чем для левого блока 810 меньшей площади. Кроме того, общая длина фильтра с отводами в направлении асимметрии, то есть общая длина горизонтального фильтра с отводами для левого блока 810 и горизонтального фильтра с отводами для правого блока 820 может быть больше длины вертикального фильтра с отводами для левого блока 810 и правого блока 820.
Например, можно использовать 4-отводный фильтр для левого блока 810 при интерполяции для горизонтального направления и 6-отводный фильтр для правого блока 820 при интерполяции для горизонтального направления.
Как видно из правой части фиг. 8, такой же принцип можно использовать для блока nR x 2N, в этом случае можно использовать 6-отводный фильтр для левого блока 830 при интерполяции для горизонтального направления и 4-отводный фильтр для правого блока 840 при интерполяции для горизонтального направления.
В таблице 1 указаны количества отводов вертикального и горизонтального интерполяционных фильтров с отводами для асимметричных блоков.
Таблица 1
Вертикальный фильтр с отводами
Горизонтальный фильтр с отводами
2N x nU (верхний блок)
4
8
2N x nU (нижний блок)
6
8
2N x nD (верхний блок)
6
8
2N x nD (нижний блок)
4
8
nL x 2N (левый блок)
4
8
nL x 2N (правый блок)
6
8
nR x 2N (левый блок)
6
8
nR x 2N (правый блок)
4
8
На фиг. 9 показана диаграмма, схематически иллюстрирующая способ кодирования видеоданных согласно примеру осуществления настоящего изобретения.
Как видно из фиг. 9, устройство для кодирования может определить предсказанное значение движения для текущего межкадрового PU (S910). Информация о движении для текущего PU не передается как таковая, вместо этого передается разностное значение относительно предсказанного значения, полученное по соседним во времени и пространстве блокам, что позволяет повысить эффективность сжатия. Устройство для кодирования может определять список кандидатов на слияние и список кандидатов улучшенного предсказания вектора движения (AMVP, advanced motion vector prediction) для текущего межкадрового PU, таким образом определяя предсказанное значение движения.
Устройство для кодирования может формировать PU, используя информацию о движении (S920). В частности, можно выполнять интерполяцию, используя фильтр с отводами меньшей длины для асимметрично разбитого PU в направлении более короткой длины, полученной в результате разбиения. Способы интерполяции для асимметрично разбитого PU были раскрыты выше, и последующее их описание будет опущено.
Устройство для кодирования может кодировать информацию о движении по текущему блоку (S930). В режиме слияния, если среди кандидатов на слияние присутствует кандидат, имеющий ту же информацию о движении, что и текущий PU, устройство для кодирования отмечает, что текущий PU находится в режиме слияния, и передает флаг, указывающий на использование режима слияния, и индекс, указывающий, какой именно кандидат из числа кандидатов на слияние используется. В режиме AMVP устройство для кодирования определяет среди кандидатов AMVP кандидата, минимизирующего функцию стоимости, путем сравнения информации о векторе движения между кандидатами AMVP и текущим PU, и выполняет компенсацию движения, используя определенный таким образом кандидат и разностное значение в информации о движении между текущим PU и кандидатом AMVP для получения разностного сигнала.
Устройство для кодирования может формировать разностный блок, соответствующий текущему блоку (S940). Как было раскрыто выше, устройство для кодирования может выполнять межкадровое предсказание и/или внутрикадровое предсказание в отношении текущего блока, формируя таким образом блок предсказания, соответствующий текущему блоку. В этом случае устройство для кодирования может формировать разностный сигнал, то есть разностный блок, путем формирования разницы по пикселям между значением пикселя текущего блока и значением пикселя блока предсказания.
Как видно из фиг. 9, устройство для кодирования может преобразовывать разностный сигнал, то есть разностный блок (S950). Устройство для кодирования может выполнять транскодирование разностного сигнала, используя ядро преобразования, при этом ядро преобразования может иметь размер 2x2, 4x4, 8x8, 16x16, 32x32 или 64x64. В одном из примеров осуществления можно вычислить коэффициент преобразования C для блока nxn согласно следующей формуле:
[Формула 3]
C(n,n)=T(n,n) x B(n,n) x T(n,n)T
Здесь C(n,n) представляет собой матрицу коэффициентов преобразования размером nxn, T(n,n) представляет собой матрицу ядра преобразования размером nxn, а B(n,n) представляет собой матрицу для разностного блока размером nxn.
Когда коэффициент преобразования формируется путем преобразования, устройство для кодирования может квантизировать сформированный коэффициент преобразования.
Устройство для кодирования на основе RDO может определять, что именно необходимо передать, разностный блок или коэффициент преобразования. Если предсказание выполнено правильно, то разностный блок, т.е. разностный сигнал можно передавать как таковой, без транскодирования. Устройство для кодирования может сравнивать функции стоимости до и после транскодирования и выбирать способ, имеющий минимальную стоимость. В этом случае устройство для кодирования может передавать информацию о типе передаваемого сигнала (разностный сигнал или коэффициент преобразования), соответствующего текущему блоку, в устройство для декодирования.
На фиг. 9 показано, что устройство для кодирования может сканировать коэффициент преобразования (S960).
После завершения сканирования устройство для кодирования может выполнять энтропийное кодирование просканированного коэффициента преобразования и дополнительной информации (например, информации о режиме межкадрового предсказания текущего блока) (S970). Кодированную информацию можно организовать в форме сжатого битового потока и сохранить в памяти или передать через NAL.
Несмотря на то, что способ кодирования описан здесь как содержащий последовательность этапов согласно диаграмме на фиг. 9, настоящее изобретение этим не ограничивается. Некоторые из этапов, показанных на фиг. 9, можно выполнять в порядке, отличном от описанного выше, или параллельно. Кроме того, между этапами на диаграмме можно добавить дополнительные этапы, или исключить один или более этапов из показанной на фиг. 9 диаграммы, не выходя за рамки настоящего изобретения.
На фиг. 10 показана диаграмма, схематически иллюстрирующая способ декодирования видеоданных согласно примеру осуществления настоящего изобретения.
Как видно из фиг. 10, устройство для декодирования может осуществлять энтропийное декодирование битового потока, принятого из устройства для кодирования (S1010). Например, устройство для декодирования может определять режим предсказания и разностный сигнал текущего блока на основе таблицы кодирования переменной длины (VLC, variable length coding) и/или CABAC. Устройство для декодирования может получать информацию о том, является ли принятый сигнал, соответствующий текущему блоку, разностным сигналом или коэффициентом преобразования. Также устройство для декодирования может получать разностный сигнал или одномерный (1D) вектор коэффициентов преобразования для текущего блока. Если принятый битовый поток содержит дополнительную информацию, необходимую для декодирования, то и битовый поток, и дополнительную информацию могут пройти энтропийное декодирование.
Как показано на фиг. 10, устройство для декодирования может выполнять обратное сканирование прошедшего энтропийное декодирование разностного сигнала или коэффициентов преобразования для формирования двумерного блока (S1020). При этом в случае разностного сигнала можно сформировать разностный блок, а в случае коэффициентов преобразования можно сформировать двумерный блок коэффициентов преобразования. После формирования коэффициентов преобразования путем энтропийного декодирования устройство для декодирования может деквантизировать сформированные коэффициенты преобразования (S1030).
Устройство для декодирования может выполнять обратное преобразование деквантизированных коэффициентов преобразования, формируя таким образом разностный блок (S1040). Обратное преобразование можно выразить с помощью формулы 4.
[Формула 4]
T
B(n,n)=T(n,n) x C(n,n) x T(n,n)
После формирования разностного блока устройство для декодирования может выполнить межкадровое предсказание на основе разностного блока (S1050). Устройство для декодирования выполняет межкадровое предсказание, используя либо режим слияния, либо режим AMVP для получения информации о движении.
Устройство для декодирования может формировать PU, используя полученную информацию о движении. Можно выполнить интерполяцию, используя фильтр с отводами меньшей длины для асимметрично разбитого PU в направлении меньшей полученной разбиением длины. Способы интерполяции для асимметрично разбитого PU были раскрыты выше и последующее их описание будет опущено.
Устройство для декодирования может добавить сигнал разностного блока к сигналу, полученному с использованием предыдущего кадра, для формирования воссозданного блока, таким образом воссоздавая изображение (S1070). Как было раскрыто выше, устройство для декодирования может выполнять межкадровое предсказание или внутрикадровое предсказание также в отношении целевого блока декодирования для формирования блока предсказания, соответствующего целевому блоку декодирования. В этом случае устройство для декодирования может добавлять к значению пикселя блока предсказания и значению пикселя остаточного блока пиксель, формируя таким образом воссозданный блок.
Несмотря на то, что способ декодирования описан как содержащий последовательность этапов согласно диаграмме на фиг. 10, настоящее изобретение этим не ограничивается. Некоторые из этапов, показанных на фиг. 10, можно выполнять в порядке, отличном от описанного выше, или параллельно. Кроме того, между этапами этой диаграммы можно добавить дополнительные этапы, или исключить один или более этапов из показанной на фиг. 10 диаграммы, не выходя за рамки настоящего изобретения.
Несмотря на то, что способы описаны как содержащие последовательность этапов или блоков согласно диаграммам, приведенным при раскрытии вышеописанных вариантов осуществления, настоящее изобретение не ограничивается вышеописанными последовательностями этапов. Некоторые из этих этапов можно выполнять в порядке, отличном от приведенного выше, или одновременно. Кроме того, специалистам должно быть понятно, что этапы, показанные на диаграммах, не являются единственно возможными, и в диаграммы можно добавить дополнительные этапы или исключить из них один или более этапов без изменения объема настоящего изобретения.
Настоящее изобретение раскрыто со ссылкой на примеры вариантов осуществления, при этом описанные выше примеры вариантов осуществления включают различные аспекты примеров. Несмотря на то, что при иллюстрировании различных аспектов настоящего изобретения могли быть упомянуты не все возможные сочетания, специалистам должно быть ясно, что в эти примеры осуществления можно внести различные изменения, модификации и альтернативные решения, не затрагивающие принципов и сущности настоящего изобретения, объем которого определен в прилагаемой формуле и ее эквивалентах.