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

Настоящая заявка выделена из заявки № 2014117489 на выдачу патента РФ на изобретение, поданной 18.10.2012, с испрашиванием приоритета по дате подачи первой заявки KR 10-2011-0106624, поданной в патентное ведомство Кореи 18.10.2011.
Область техники, к которой относится изобретение
Настоящее изобретение относится к кодированию и декодированию видеоданных, и, более конкретно, к способу декодирования видеосигнала.
Уровень техники
В последнее время в различных областях практики возросла потребность в видеоизображениях высокого качества и высокого разрешения, например, в видеоизображениях высокого (high-definition, HD) и сверхвысокого (ultrahigh-definition, UHD) разрешения.
Поскольку разрешение и качество видеоизображений повышается, объем видеоданных по сравнению с используемым в настоящее время возрастает. Соответственно, при передаче видеоданных с использованием таких носителей информации, как уже находящиеся в эксплуатации проводные или беспроводные широкополосные линии связи, возрастают стоимость передачи и стоимость хранения.
Для устранения указанных недостатков, сопровождающих рост разрешения и качества видеоданных, могут использоваться высокоэффективные способы сжатия видеоданных.
В технике сжатия видеоданных используются различные способы, например, межкадровое предсказание, в котором значения пикселов текущего изображения предсказывают, исходя из изображений, предшествующих или следующих за текущим изображением; внутрикадровое предсказание, в котором значения пикселов текущего изображения предсказывают, используя информацию пикселов в текущем изображении; преобразование информации пикселов в частотную область в заранее заданном элементе с квантованием коэффициента преобразования; и энтропийное кодирование, в котором значению с более высокой частотой появления задают более короткий код, а значению с более низкой частотой появления задают более длинный код.
С использованием таких способов сжатия видеоданные могут быть эффективно сжаты и переданы либо сохранены.
Раскрытие изобретения
Задача изобретения
В аспекте настоящего изобретения предлагается способ для эффективного декодирования видеосигнала.
Техническое решение
В варианте осуществления настоящего изобретения предлагается способ декодирования видеосигнала в устройстве декодирования, включающий: получение возможного временного вектора перемещения из объединенного блока для текущего блока, при этом объединенный блок включен в объединенное изображение, заданное индексом опорного изображения для текущего блока; формирование списка возможных векторов перемещения, содержащего несколько возможных векторов перемещения, причем несколько возможных векторов перемещения включают возможный временной вектор перемещения; определение предиктора вектора перемещения для текущего блока на основании списка возможных векторов перемещения и возможного индекса, при этом возможный индекс задает один из нескольких возможных векторов перемещения, содержащихся в списке возможных векторов перемещения; и получение образцов предсказания текущего блока на основании предиктора вектора перемещения.
Объединенное изображение может иметь отличия во временном порядке от текущего изображения, содержащего текущий блок.
Объединенный блок может представлять блок, соответствующий тому же положению, что и текущий блок.
Технический результат
Согласно настоящему изобретению, становится возможным эффективное выполнение преобразования и обратного преобразования над остаточной (разностной) информацией.
Таким образом, предлагаемый способ обеспечивает эффективное осуществление декодирования видеосигнала.
Краткое описание чертежей
На фиг. 1 показана функциональная схема устройства кодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 2 показана функциональная схема устройства декодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 3 схематично показаны режимы предсказания, используемые для внутрикадрового предсказания.
На фиг. 4 схематично показан режим с пропуском преобразования.
На фиг. 5 показана блок-схема, схематично поясняющая операцию кодирования, в которой используются режим с пропуском преобразования и второе преобразование в соответствии с настоящим изобретением.
На фиг. 6 схематично показана информация о прилегающем (соседнем) блоке, которая может быть использована в режиме с пропуском преобразования, в режиме слияния и в режиме AMVP.
На фиг. 7 показана блок-схема, схематично поясняющая операцию декодирования, в которой используется режим с пропуском преобразования и второе преобразование в соответствии с настоящим изобретением.
Осуществление изобретения
Настоящее изобретение может быть различным образом изменено и модифицировано, а его пояснение возможно с использованием различных примерных вариантов осуществления, некоторые из которых описываются далее и поясняются чертежами. Однако данные варианты осуществления не имеют целью ограничение настоящего изобретения, а подразумеваются содержащими все модификации, эквиваленты и замены, охватываемые сущностью и техническим содержанием настоящего изобретения. Везде на чертежах одинаковые ссылочные обозначения относятся к аналогичным элементам.
При описании различных элементов могут использоваться обозначения «первый», «второй» и т.д., но эти обозначения не накладывают ограничений на указанные элементы. Данные обозначения используются только для того, чтобы отличать один элемент от другого элемента. Например, без отступления от сути настоящего изобретения первый элемент может быть назван вторым элементом, а второй элемент аналогично может быть назван первым элементом. Конструкция «и/ или» включает любой элемент и все сочетания элементов перечня, связанного с данной конструкцией.
Следует понимать, что если об элементе говорится, что он соединен или связан с другим элементом, то данный элемент может быть непосредственно соединен или связан с указанным другим элементом или с промежуточными элементами. Если же об элементе говорится, что он непосредственно соединен или непосредственно связан с другим элементом, то промежуточные элементы отсутствуют.
Использованная в настоящем раскрытии терминология предназначена только для описания конкретных вариантов осуществления и не подразумевает ограничений настоящего изобретения. В настоящем раскрытии подразумевается, что формы единственного числа также включают формы множественного числа, если из контекста явным образом не следует иное. Также необходимо понимать, что термины «содержит» и/или «имеет» в данном документе следует трактовать как указывающие на наличие особенностей, систем, шагов, операций, элементов и/ или компонентов, но не запрещающие наличие или добавление одной или более других особенностей, систем, шагов, операций, элементов, компонентов и/ или групп вышеперечисленного.
Далее со ссылкой на сопровождающие чертежи подробно описываются примерные варианты осуществления настоящего изобретения. На чертежах одинаковые ссылочные обозначения относятся к аналогичным элементам, и повторное описание подобных элементов не приводится.
На фиг. 1 показана функциональная схема устройства кодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
Как показано на фиг. 1, устройство 100 кодирования видеоданных содержит модуль 105 разбиения изображения, модуль 110 предсказания, модуль 115 преобразования, модуль 120 квантования, модуль 125 переупорядочения, модуль 130 энтропийного кодирования, модуль 135 деквантования, модуль 140 обратного преобразования, модуль 145 фильтрации и память (запоминающее устройство) 150.
Несмотря на то, что для пояснения различных функциональных модулей устройства кодирования видеоданных элементы на фиг. 1 показаны отдельными, это не означает, что каждый элемент образован отдельным аппаратным модулем или программным модулем. Иными словами, для удобства описания элементы показаны независимыми, но для выполнения функций два или более элементов могут быть объединены в один элемент, либо один элемент может быть разделен на несколько элементов. Варианты осуществления изобретения, в которых некоторые элементы объединены в один составной элемент и/ или элемент разделен на несколько самостоятельных элементов, входят в объем охраны настоящего изобретения без отступления от сущности настоящего изобретения.
Некоторые элементы, представляя собой необязательные составляющие, служащие только для улучшения технических характеристик, могут быть несущественны для основных функций настоящего изобретения. Настоящее изобретение может быть осуществлено с использованием лишь составляющих, существенных для вариантов осуществления настоящего изобретения, а составляющие, служащие только для улучшения технических характеристик, могут быть исключены. Конфигурации, содержащие только существенные составляющие без необязательных составляющих, служащих только для улучшения технических характеристик, входят в объем охраны настоящего изобретения.
Модуль 105 разбиения изображения может разбивать входное изображение на по меньшей мере один элемент обработки. Элементом обработки здесь может быть элемент предсказания (PU, prediction unit), элемент преобразования (TU, transform unit) или элемент кодирования (CU, coding unit). Модуль 105 разбиения изображения может разбивать одно изображение на множество комбинаций элементов кодирования, элементов предсказания и элементов преобразования и выбирать одну комбинацию элементов кодирования, элементов предсказания и элементов преобразования на основании заранее заданного критерия (например, функции стоимости), тем самым выполняя кодирование изображения.
Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения изображения на элементы кодирования может использоваться древовидная рекурсивная структура, например, дерево квадрантов. Имея в качестве корневого узла дерева изображение или элемент кодирования наибольшего размера, элемент кодирования может подвергаться дальнейшему разбиению на субэлементы кодирования с таким же числом дочерних узлов, как у уже прошедших разбиение элементов кодирования. Элемент кодирования, не подвергаемый дальнейшему разбиению в соответствии с заранее заданным ограничением, представляет собой листовой узел. Иными словами, если принято, что элемент кодирования может быть разбит только на квадранты, то один элемент кодирования может быть разбит, самое большее, на четыре различных элемента кодирования.
В вариантах осуществления настоящего изобретения термин «элемент кодирования» может использоваться для обозначения не только элемента для кодирования, но и элемента для декодирования.
Элемент предсказания может быть разбит на по меньшей мере один квадратный или прямоугольный элемент одинакового размера в элементе кодирования или может быть разбит таким образом, что форма полученного в результате разбиения элемента предсказания отлична от формы других элементов предсказания в элементе кодирования.
Если элемент предсказания, в котором должно быть выполнено внутрикадровое предсказание, сформирован на основе элемента кодирования, и указанный элемент кодирования не является наименьшим элементом кодирования, то внутрикадровое предсказание может быть выполнено без разбиения указанного элемента кодирования на множество элементов предсказания (N×N).
Модуль 110 предсказания может содержать модуль межкадрового предсказания, предназначенный для выполнения межкадрового предсказания, и модуль внутрикадрового предсказания, предназначенный для выполнения внутрикадрового предсказания. Модуль предсказания может принимать решение о том, какое предсказание, межкадровое предсказание или внутрикадровое предсказание, должно быть выполнено для элемента предсказания, и может в соответствии с выбранным способом предсказания задавать конкретную информацию (например, режим внутрикадрового предсказания, вектор перемещения (motion vector), опорное изображение и т.п.). При этом элемент обработки, для которого выполняется предсказание, может отличаться от элемента обработки, для которого выбирается способ предсказания и задается конкретная информация. Например, способ предсказания и режим предсказания могут определяться для каждого элемента предсказания, тогда как предсказание может выполняться для каждого элемента преобразования. Значение остатка (разности) (остаточный блок, разностный блок, residual block) между сформированным предсказанным блоком и исходным блоком может передаваться в модуль 115 преобразования. Затем модуль 130 энтропийного кодирования вместе со значением остатка может кодировать и передавать в декодер информацию о режиме предсказания, информацию о векторе перемещения и другую информацию, использованную для предсказания. При использовании специального режима кодирования исходный блок может кодироваться и передаваться в устройство декодирования без формирования предсказанного блока модулем 110 предсказания.
Модуль внутрикадрового предсказания может выполнять предсказание для элемента предсказания на основании информации по меньшей мере одного изображения из числа предыдущего и последующего изображений относительно текущего изображения. Модуль внутрикадрового предсказания может содержать модуль интерполяции опорного изображения, модуль предсказания перемещения и модуль компенсации перемещения.
Модуль интерполяции опорного изображения может принимать из памяти 150 информацию опорного изображения и на основании опорного изображения формировать информацию пикселов более часто по сравнению с целочисленными позициями пикселов (с целым межпиксельным шагом или расстоянием между пикселами). В случае пикселов яркости для формирования информации пиксела более часто по сравнению с целочисленными позициями пикселов, с шагом 1/4 межпиксельного шага (с шагом 1/4 пиксела), может использоваться 8-отводный интерполирующий фильтр на основе ДКП с переменным коэффициентом фильтра. В случае пикселов цветности для формирования информации пиксела более часто по сравнению с целочисленными позициями пикселов, с шагом 1/8 межпиксельного шага, может использоваться 4-отводный интерполирующий фильтр на основе ДКП с переменным коэффициентом фильтра.
Модуль предсказания перемещения может выполнять предсказание перемещения на основании опорного изображения, интерполированного модулем интерполяции опорного изображения. Для вычисления вектора перемещения могут использоваться различные способы, например, алгоритм нахождения соответствия блоков, основанный на полном поиске (full search-based block matching algorithm, FBMA), алгоритм трехстадийного поиска (three-step search, TSS) и новый алгоритм трехстадийного поиска (new three-step search, NTS). Вектор перемещения характеризуется величиной вектора перемещения, выражаемой в единицах 1/2 или 1/4 межпиксельного шага в базисе интерполированных пикселов. Модуль предсказания перемещения может выполнять предсказание для текущего элемента предсказания с использованием различных способов предсказания перемещения. Для предсказания перемещения могут использоваться различные способы, например, пропуск, слияние, улучшенное предсказание вектора перемещения (advanced motion vector prediction, AMVP) и т.п.
Модуль внутрикадрового предсказания может формировать блок предсказания на основании информации опорного пиксела, прилегающего к текущему блоку, представляющему собой информацию пиксела в текущем изображении. Если блоком, прилегающим к текущему элементу предсказания, является блок, прошедший межкадровое предсказание, а опорным пикселом является пиксел, прошедший межкадровое предсказание, то информация опорного пиксела, содержащаяся в указанном блоке, прошедшем межкадровое предсказание, может быть заменена информацией опорного пиксела в блоке, прошедшем внутрикадровое предсказание. Иными словами, если опорный пиксел отсутствует, то информация отсутствующего опорного пиксела может быть заменена по меньшей мере информацией одного опорного пиксела из числа опорных пикселов, имеющихся в наличии.
В число режимов предсказания при внутрикадровом предсказании входят режимы предсказания с выделенным направлением, в которых информация опорного пиксела используется в соответствии с направлением предсказания, и режимы предсказания без выделенного направления, в которых при выполнении предсказания информация о направлении не используется. Режим для предсказания информации о яркости и режим для предсказания информации о цветности могут различаться. Для предсказания информации о цветности могут быть использованы информация внутрикадрового режима предсказания, использованная для получения информации о яркости, или предсказанная информация сигнала яркости.
Если элемент предсказания и элемент преобразования при выполнении внутрикадрового предсказания имеют одинаковый размер, то внутрикадровое предсказание для элемента предсказания может выполняться на основании левых пикселов, верхнего левого пиксела и верхних пикселов элемента предсказания. Если же элемент предсказания и элемент преобразования при выполнении внутрикадрового предсказания имеют различные размеры, то внутрикадровое предсказание может выполняться с использованием опорных пикселов на основании элемента преобразования. Внутрикадровое предсказание с разбиением N×N может осуществляться только для наименьшего элемента кодирования.
В способе внутрикадрового предсказания до формирования предсказанного блока к опорным пикселам в соответствии с режимом предсказания может применяться адаптивный фильтр внутрикадрового сглаживания (adaptive intra smoothing filter, AIS). К опорным пикселам могут применяться фильтры AIS различных типов. В способе внутрикадрового предсказания режим внутрикадрового предсказания текущего элемента предсказания может быть предсказан, исходя из режима внутрикадрового предсказания элемента предсказания, прилегающего к текущему элементу предсказания (соседнего с ним). При предсказании режима предсказания текущего элемента предсказания с использованием информации о режиме, предсказанной исходя из прилегающего элемента предсказания, в случае, когда текущий элемент предсказания и прилегающий элемент предсказания имеют один и тот же режим внутрикадрового предсказания, с использованием заранее определенной флаговой информации может передаваться информация, указывающая, что текущий элемент предсказания и прилегающий элемент предсказания имеют один и тот же режим предсказания. Если текущий элемент предсказания и прилегающий элемент предсказания имеют различные режимы предсказания, то информация о режиме предсказания текущего блока может быть закодирована с использованием энтропийного кодирования.
Остаточный (разностный) блок, содержащий информацию остатка, представляющего собой разность между предсказанным блоком и исходным блоком элемента предсказания, может быть сформирован модулем 110 предсказания на основании элемента предсказания. Сформированный остаточный (разностный) блок может передаваться в модуль 115 преобразования.
Модуль 115 преобразования может преобразовывать остаточный блок, содержащий информацию остатка элемента предсказания, сформированную на основании исходного блока модулем 110 предсказания, с использованием одного из способов преобразования, например, дискретного косинусного преобразования (ДКП) или дискретного синусного преобразования (ДСП). Способ преобразования, который должен использоваться для преобразования остаточного блока, может выбираться из ДКП и ДСП на основании информации внутрикадрового режима предсказания элемента предсказания, использованного для формирования остаточного блока.
Модуль 120 квантования может квантовать значения, преобразованные в частотную область модулем 115 преобразования. Параметр квантования может меняться в зависимости от блока или значимости изображения. Данные из модуля 120 квантования могут передаваться в модуль 135 деквантования и в модуль 125 переупорядочения.
Модуль 125 переупорядочения может переупорядочивать коэффициенты для квантованных значений остатка.
Модуль 125 переупорядочения может преобразовывать двумерный блок коэффициентов в одномерный вектор коэффициентов путем сканирования коэффициентов. Например, модуль 125 переупорядочения может преобразовывать двумерный блок коэффициентов в одномерный вектор коэффициентов с использованием прямого сканирования. Вместо прямого сканирования в зависимости от размера элемента преобразования и режима внутрикадрового предсказания может использоваться вертикальное сканирование двумерного блока коэффициентов в направлении столбцов и горизонтальное сканирование двумерного блока коэффициентов в направлении строк. Иными словами, используемый способ сканирования может быть выбран на основании размера элемента преобразования и режима внутрикадрового предсказания из числа прямого сканирования, вертикального сканирования и горизонтального сканирования.
Модуль 130 энтропийного кодирования может выполнять энтропийное кодирование на основании данных, полученных модулем 125 переупорядочения. Для энтропийного кодирования могут использоваться различные способы кодирования, например, экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование с переменной длиной (context-adaptive variable length coding, CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (context-adaptive binary arithmetic coding, CABAC).
Модуль 130 энтропийного кодирования может кодировать разнообразную информацию, которая может быть принята из модуля 125 переупорядочения и из модуля 110 предсказания, например, информацию о коэффициенте остатка и информацию о типе блока, относящуюся к элементу кодирования, информацию о режиме предсказания, информацию об элементе разбиения, информацию об элементе предсказания, информацию об элементе передачи, информацию о векторе перемещения, информацию об опорном кадре, информацию о блочной интерполяции и информацию о фильтрации.
Модуль 130 энтропийного кодирования может выполнять энтропийное кодирование коэффициентов элемента кодирования, принятых из модуля 125 переупорядочения.
Модуль 135 деквантования и модуль 140 обратного преобразования выполняют деквантование (обратное квантование) данных, квантование которых выполнено модулем 120 квантования, и выполняют обратное преобразование данных, преобразование которых выполнено модулем 115 преобразования. Остаток, сформированный модулем 135 деквантования и модулем 140 обратного преобразования, может складываться с предсказанным блоком, предсказание которого выполнено модулем предсказания вектора перемещения, модулем компенсации перемещения и модулем внутрикадрового предсказания модуля 110 предсказания, в результате чего формируется восстановленный блок.
Модуль 145 фильтрации может содержать по меньшей мере один из следующих элементов: фильтр подавления блочности, модуль коррекции смещения, адаптивный петлевой фильтр (adaptive loop filter, ALF).
Фильтр 145 подавления блочности может удалять блочные искажения, возникающие на границах между блоками в восстановленном изображении. Необходимость применения фильтра подавления блочности к текущему блоку может определяться на основании пикселов, содержащихся в нескольких строках или столбцах блока. При применении фильтра подавления блочности к блоку в зависимости от требуемой интенсивности подавления блочности может использоваться сильный фильтр или слабый фильтр. Кроме того, если при применении фильтра подавления блочности выполняются горизонтальная фильтрация и вертикальная фильтрация, то горизонтальная фильтрация и вертикальная фильтрация могут выполняться одновременно.
Модуль коррекции смещения может корректировать смещение на пиксел изображения, прошедшего фильтр подавления блочности, относительно исходного изображения. Для коррекции смещения в конкретном изображении может быть использован способ, в котором пикселы изображения разбивают на заранее заданное число областей, определяют область, подлежащую коррекции смещения, и выполняют коррекцию смещения в определенной указанным образом области, либо способ, в котором коррекцию смещения выполняют с учетом информации о границе для каждого пиксела.
ALF может выполнять фильтрацию на основании сравнения результата фильтрации восстановленного изображения и исходного изображения. Пикселы, содержащиеся в изображении, могут быть разбиты на заранее определенные группы, для каждой группы может определяться фильтр, подлежащий применению, и к каждой группе может применяться свой вид фильтрации. Информация о необходимости применения фильтра ALF может передаваться в каждом элементе кодирования, а форма и коэффициент фильтра ALF, подлежащие применению к каждому блоку, могут быть разными. Могут использоваться фильтры ALF разных типов, а количество коэффициентов, используемых в соответствующем фильтре, может быть разным. Кроме того, к блоку независимо от его параметров может применяться фильтр ALF одного типа (фиксированного типа).
Память 150 может хранить восстановленный блок или изображение, переданные из модуля 145 фильтрации, а сохраненный восстановленный блок или изображение могут передаваться в модуль 110 предсказания при выполнении межкадрового предсказания.
На фиг. 2 показана функциональная схема, поясняющая устройство декодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
Как показано на фиг. 2, устройство 200 декодирования видеоданных может содержать модуль 210 энтропийного декодирования, модуль 215 переупорядочения, модуль 220 деквантования, модуль 225 обратного преобразования, модуль 230 предсказания, модуль 235 фильтрации и память (запоминающее устройство) 240.
Если из устройства кодирования видеоданных принимается битовый поток видеоданных, то входной битовый поток может быть декодирован в соответствии с операцией, обратной операции кодирования видеоданных в устройстве кодирования видеоданных.
Модуль 210 энтропийного декодирования может выполнять энтропийное декодирование в соответствии с операцией, обратной операции энтропийного кодирования, выполняемой модулем энтропийного кодирования устройства кодирования видеоданных. Для энтропийного декодирования могут использоваться различные способы, соответствующие способу, использованному в устройстве кодирования видеоданных, например, экспоненциальное кодирование Голомба, CAVLC и CABAC.
Модуль 210 энтропийного декодирования может декодировать информацию, относящуюся к внутрикадровому предсказанию и межкадровому предсказанию, выполняемым устройством кодирования.
Модуль 215 переупорядочения может выполнять переупорядочение над битовым потоком, прошедшим энтропийное декодирование в модуле 210 энтропийного декодирования, на основании способа переупорядочения, использованного в устройстве кодирования. Модуль 215 переупорядочения может восстанавливать и переупорядочивать коэффициенты, представленные в форме одномерного вектора, в двумерный блок коэффициентов. Модуль 215 переупорядочения, в который может передаваться информация, относящаяся к сканированию коэффициентов, выполняемому модулем кодирования, может с использованием способа обратного сканирования переупорядочивать указанные коэффициенты на основании порядка сканирования, в соответствии с которым устройство кодирования выполняет сканирование.
Модуль 220 деквантования может выполнять деквантование (обратное квантование) на основании параметра квантования, переданного из устройства кодирования, и переупорядоченных коэффициентов блока.
Модуль 225 обратного преобразования может выполнять обратное ДКП и обратное ДСП по отношению к ДКП и ДСП, выполняемым модулем преобразования, где указанные ДКП и ДСП были применены к результату квантования, выполненного устройства кодирования видеоданных. Обратное преобразование может выполняться на основании элемента преобразования, заданного устройством кодирования видеоданных. Модуль преобразования устройства кодирования видеоданных может избирательно выполнять ДКП и ДСП в зависимости от множества элементов информации, например, в зависимости от способа предсказания, размера текущего блока и направления предсказания и т.д., а модуль 225 обратного преобразования декодера может выполнять обратное преобразование на основании информации о преобразовании, выполняемом модулем преобразования устройства кодирования видеоданных.
Модуль 230 предсказания может формировать предсказанный блок на основании информации формирования предсказанного блока, переданной из модуля 210 энтропийного декодирования, и информации о ранее декодированном блоке или изображении, переданной из памяти 240.
Как и при описанной выше работе устройства кодирования видеоданных, если элемент предсказания и элемент преобразования при выполнении внутрикадрового предсказания имеют одинаковый размер, то внутрикадровое предсказание для элемента предсказания выполняется на основании левых пикселов, верхнего левого пиксела и верхних пикселов элемента предсказания. Если же элемент предсказания и элемент преобразования при выполнении внутрикадрового предсказания имеют различные размеры, то внутрикадровое предсказание может выполняться с использованием опорных пикселов на основании элемента преобразования. Внутрикадровое предсказание с разбиением N×N может осуществляться только для наименьшего элемента кодирования.
Модуль 230 предсказания содержит модуль выбора элемента предсказания, модуль межкадрового предсказания и модуль внутрикадрового предсказания. В модуль выбора элемента предсказания может передаваться различная информация, например, информация об элементе предсказания, принятая из модуля энтропийного декодирования, информация о режиме предсказания для способа внутрикадрового предсказания и информация, относящаяся к предсказанию перемещения для способа межкадрового предсказания. Модуль выбора элемента предсказания может выбирать элемент предсказания в текущем элементе кодирования и может определять, использовать ли для выбранного элемента предсказания межкадровое предсказание или внутрикадровое предсказание. Модуль межкадрового предсказания может выполнять межкадровое предсказание для текущего элемента предсказания на основании информации по меньшей мере одного изображения из числа предыдущего и последующего изображений относительно текущего изображения, содержащего текущий элемент предсказания, с использованием информации, необходимой для межкадрового предсказания для текущего элемента предсказания, переданного из устройства кодирования видеоданных.
Для выполнения межкадрового предсказания на основании элемента кодирования может определяться, является ли способом предсказания перемещения для элемента предсказания, содержащегося в элементе кодирования, режим пропуска, режим слияния или режим AMVP.
Модуль внутрикадрового предсказания может формировать предсказанный блок на основании информации пикселов в текущем изображении. Если элементом предсказания является элемент предсказания, для которого выполняется внутрикадровое предсказание, то внутрикадровое предсказание может быть выполнено на основании информации режима внутрикадрового предсказания элемента предсказания, переданного из устройства кодирования видеоданных. Модуль внутрикадрового предсказания может содержать фильтр AIS, модуль интерполяции опорного пиксела и фильтр постоянной составляющей (DC). Фильтр AIS выполняет фильтрацию над опорными пикселами текущего блока, а необходимость применения фильтра AIS может быть определена в зависимости от режима предсказания для текущего элемента предсказания. Фильтрация AIS может выполняться над опорными пикселами текущего блока с использованием режима предсказания для данного элемента предсказания и информации о фильтре AIS, переданной из устройства кодирования видеоданных. Если режимом предсказания для текущего блока является режим, в котором фильтрация AIS не используется, то фильтр AIS может не применяться.
Если режимом предсказания для текущего элемента предсказания является режим, в котором выполняется внутрикадровое предсказание на основании значений пикселов, полученных путем интерполирования опорных пикселов, то модуль интерполяции опорного пиксела может формировать опорные пикселы с шагом, меньшим шага между целочисленными позициями пикселов, путем интерполирования опорных пикселов. Если режимом предсказания для текущего элемента предсказания является режим предсказания, в котором предсказанный блок формируют без интерполирования опорных пикселов, то опорные пикселы могут не интерполироваться. Если режимом предсказания для текущего блока является режим постоянной составляющей, то предсказанный блок может формироваться фильтром постоянной составляющей путем фильтрации.
Восстановленный блок или изображение могут быть переданы в модуль 235 фильтрации. Модуль 235 фильтрации может содержать фильтр подавления блочности, модуль коррекции смещения или фильтр ALF.
Из устройства кодирования видеоданных может передаваться информация о том, применен ли к соответствующему блоку или изображению фильтр подавления блочности, и, в случае использования фильтра подавления блочности, информация о том, какой фильтр, сильный фильтр или слабый фильтр, применен. Фильтр подавления блочности декодера, в который из устройства кодирования видеоданных может передаваться информация о применении фильтра подавления блочности, может выполнять над соответствующим блоком фильтрацию для подавления блочности.
Модуль коррекции смещения может выполнять над восстановленным изображением коррекцию смещения на основании типа коррекции смещения и информации о величине смещения, примененного к изображению в операции кодирования.
На основании информации о применении или неприменении фильтра ALF к элементу кодирования может применяться фильтр ALF, а информация о коэффициентах фильтра ALF может передаваться из устройства кодирования видеоданных. Информация о фильтре ALF может включаться в специальный набор параметров и передаваться в указанном наборе.
Память 240 может хранить восстановленное изображение или блок, предназначенные для использования в качестве опорного изображения или опорного блока, и может передавать указанное восстановленное изображение в выходной модуль.
Как указано выше, в вариантах осуществления настоящего изобретения термин «элемент кодирования» используется для обозначения элемента для кодирования, но также может быть использован для обозначения элемента для декодирования.
Как показано на фиг. 1 и 2, модули преобразования устройства кодирования и устройства декодирования могут выполнять преобразование на основе блоков, например, ДСП или ДКП, над остаточным (разностным) блоком (блоком преобразования).
При этом, если остаточный блок сформирован на основании предсказанного блока, сформированного внутрикадровым предсказанием, то преобразование может быть определено в соответствии с режимом предсказания.
На фиг. 3 схематично показаны режимы предсказания, используемые для внутрикадрового предсказания. Как показано на фиг. 3, внутрикадровое предсказание выполняется с использованием двух режимов предсказания без выделенного направления и 32 режимов предсказания с выделенным направлением.
Устройство кодирования и устройство декодирования могут выполнять внутрикадровое предсказание для текущего блока с использованием режима предсказания, выбранного из числа двух режимов предсказания без выделенного направления, режима предсказания по плоскости, режима постоянной составляющей и 32 режимов предсказания с выделенным направлением, соответствующих направлениям, показанным на фиг. 3.
При использовании режима внутрикадрового предсказания с выделенным направлением устройство кодирования и устройство декодирования могут выполнять предсказание для текущего блока с целью формирования предсказанного блока на основании образцов, расположенных на соответствующем направлении, из числа образцов, прилегающих к текущему блоку.
Таким образом, в соответствии с вышеприведенным описанием устройство кодирования и устройство декодирования могут определять способ преобразования на основании режима предсказания, использованного для формирования предсказанного блока.
Если обрабатываемый сигнал мало меняется или имеет различные характеристики по горизонтали и по вертикали, то для такого сигнала вертикальное преобразование, горизонтальное преобразование или оба преобразования могут быть пропущены, что снизит сложность обработки в декодере и повысит эффективность кодирования.
Пропуск преобразования (transform skip mode, TSM) в устройстве кодирования представляет собой способ повышения эффективности кодирования, в котором либо выполняют все двумерные преобразования, либо пропускают вертикальное преобразование или горизонтальное преобразование, либо пропускают и горизонтальное, и вертикальное преобразования.
В число режимов с пропуском преобразования входят режим TS0, в котором над блоком преобразования выполняют двумерное преобразование, режим TS1 (преобразование над строками), в котором в блоке преобразования преобразование выполняют только над строками, режим TS2 (преобразование над столбцами), в котором в блоке преобразования преобразование выполняют только над столбцами, и режим TS3, в котором не выполняют ни преобразование над строками (горизонтальное преобразование), ни преобразование над столбцами (вертикальное преобразование).
Пропуск преобразования в декодере представляет собой способ, в котором либо выполняют все двумерные обратные преобразования, либо пропускают вертикальное обратное преобразование или горизонтальное обратное преобразование, либо пропускают и горизонтальное, и вертикальное обратные преобразования.
В операции декодирования в число режимов пропуска преобразования входят, например, режим TS0, в котором над блоком преобразования выполняют двумерное обратное преобразование, режим TS1 (обратное преобразование над строками), в котором в блоке преобразования обратное преобразование выполняют только над строками, режим TS2 (обратное преобразование над столбцами), в котором в блоке преобразования обратное преобразование выполняют только над столбцами, и режим TS3, в котором не выполняют ни обратное преобразование над строками (горизонтальное обратное преобразование), ни обратное преобразование над столбцами (вертикальное обратное преобразование).
На фиг. 4 схематично поясняются режимы с пропуском преобразования.
Если в устройстве кодирования используется режим TS0 (400), то к блоку преобразования применяется двумерное преобразование. При использовании режима TS0 (400) горизонтальное преобразование может выполняться перед вертикальным преобразованием, либо вертикальное преобразование может выполняться перед горизонтальным преобразованием. При использовании режима TS1 (420) над блоком преобразования выполняется горизонтальное преобразование. При использовании режима TS2 (440) над блоком преобразования выполняется вертикальное преобразование. При использовании режима TS3 (460) над блоком преобразования не выполняется ни горизонтальное преобразование, ни вертикальное преобразование.
При использовании в устройстве декодирования режима TS0 (400) к блоку преобразования применяется двумерное обратное преобразование. При использовании режима TS0 (400) горизонтальное обратное преобразование может выполняться перед вертикальным обратным преобразованием, или вертикальное обратное преобразование может выполняться перед горизонтальным обратным преобразованием. При использовании режима TS1 (420) над блоком преобразования выполняется горизонтальное обратное преобразование. При использовании режима TS2 (440) над блоком преобразования выполняется вертикальное обратное преобразование. При использовании режима TS3 (460) над блоком преобразования не выполняется ни горизонтальное обратное преобразование, ни вертикальное обратное преобразование.
В таблице 1 представлены кодовые слова, назначенные каждому из режимов с пропуском преобразования.
Таблица 1
Режим
Преобразование по строкам
Преобразование по столбцам
Кодовое слово
Примечание
TS0
O
O
1
Двумерное преобразование
TS1
O
-
01
Одномерное преобразование
TS2
-
O
001
Одномерное преобразование
TS3
-
-
000
Без преобразования
При использовании режима с пропуском преобразования может выполняться масштабирование без замены или изменения матрицы квантования.
Формула 1 иллюстрирует пример масштабирования, которое могут выполнять устройство кодирования и устройство декодирования.
[Формула 1]
В формуле 1 x представляет собой параметр, к которому применяется масштабирование, а y представляет собой значение параметра после масштабирования. Коэффициент, используемый в операции сдвига (shift), может адаптивно определяться в устройстве кодирования или задаваться заранее.
Коэффициент масштабирования (scale) зависит от размера элемента преобразования и может определяться на основании размера элемента преобразования. В таблице 2 показана связь коэффициента масштабирования с размером блока (например, элемента преобразования).
Таблица 2
N
4
8
16
32
Масштаб
128
181
256
362
Как показано в таблице 2, коэффициент масштабирования может задаваться в соответствии с размером блока (NxN), например, коэффициент масштабирования для блока 4x4 равен 128, коэффициент масштабирования для блока 8x8 равен 181, коэффициент масштабирования для блока 16x16 равен 256, коэффициент масштабирования для блока 32x32 равен 362.
Хотя режим с пропуском преобразования в вышеприведенном описании поясняется с использованием режима внутрикадрового предсказания, настоящее изобретение этим не ограничивается, и режим с пропуском преобразования также может быть использован при межкадровом предсказании.
При использовании внутрикадрового предсказания режим с пропуском преобразования может задаваться на основании используемого режима внутрикадрового предсказания, а при использовании межкадрового предсказания режим с пропуском преобразования может задаваться на основании формы блока.
Формами блоков, к которым может быть применено межкадровое предсказание, являются квадратный блок 2Nx2N, блок NxN наименьшего размера и асимметричные блоки 2NxN, Nx2N, 2NxnU, 2NxnD, nLx2N и nRx2N, и на основании формы блока может задаваться режим с пропуском преобразования.
В таблице 3 представлены режимы с пропуском преобразования, которые могут использоваться при межкадровом предсказании.
Таблица 3
Режим
Преобразование по строкам
Преобразование по столбцам
Кодовое слово
Примечание
TS0
O
O
1
Двумерное преобразование
TS1
O
-
01
Одномерное преобразование
TS2
-
O
001
Одномерное преобразование
TS3
-
-
000
Без преобразования
После выполнения преобразования над блоком преобразования к низкочастотной области может применяться еще одно преобразование, которое здесь для удобства называется вторым преобразованием. Например, для повышения эффективности кодирования над низкочастотной областью может выполняться ДСП по каждому блоку 4x4.
Дискретным синусным преобразованием, применяемым в качестве второго преобразования, может быть двумерное ДСП, горизонтальное ДСП или вертикальное ДСП в соответствии с режимами внутрикадрового предсказания, показанными на фиг. 3. В таблице 4 показаны типы ДСП, которые могут быть применены в соответствии с режимами внутрикадрового предсказания.
Таблица 4
Как видно из таблицы 4, решение о применении горизонтального ДСП (horizTrType =1) или вертикального ДСП (vertTrType =1) принимают на основании режима внутрикадрового предсказания.
Хотя в таблице 4 показано, что решение о выполнении горизонтального ДСП или вертикального ДСП принимают на основании режима внутрикадрового предсказания, независимо от режимов внутрикадрового предсказания могут использоваться и вертикальное ДСП, и горизонтальное ДСП блоками 4x4.
При использовании режима с пропуском преобразования может возникнуть вопрос о том, как применять второе преобразование. Здесь второе преобразование может выполняться на основании использованного режима с пропуском преобразования.
Например, ДСП во втором преобразовании может выполняться с использованием такого же способа преобразования, как в режиме с пропуском преобразования. Здесь в качестве примера выбора такого же способа преобразования, как и в режиме с пропуском преобразования, может быть принято во внимание направление преобразования. Конкретнее, если в качестве режима с пропуском преобразования использован режим TS0 (двумерное преобразование), то в качестве второго преобразования может использоваться двумерное ДСП. Если в качестве режима с пропуском преобразования использован режим TS1 (горизонтальное преобразование), то в качестве второго преобразования может использоваться горизонтальное ДСП. Если в качестве режима с пропуском преобразования использован режим TS2 (вертикальное преобразование), то в качестве второго преобразования может использоваться вертикальное ДСП. При использовании режима TS3, то есть когда не используется ни горизонтальное преобразование, ни вертикальное преобразование, второе преобразование может не применяться.
В таблице 5 представлены типы (режимы) второго преобразования, соответствующие режиму с пропуском преобразования.
Таблица 5
Режим
TS0
TS1
TS2
TS3
Второе преобразование
horizTrType=1
1
1
0
0
vertTrType=1
1
0
1
0
Несмотря на то, что второе преобразование пояснялось при внутрикадровом предсказании, настоящее изобретение этим не ограничено, и таким же образом второе преобразование может использоваться при межкадровом предсказании. Например, в случае выполнения межкадрового предсказания второе преобразование может быть применено на основании режима с пропуском преобразования, использованного для соответствующего блока. Конкретнее, если в качестве режима с пропуском преобразования использован режим TS0 (двумерное преобразование), то в качестве второго преобразования может использоваться двумерное ДСП. Если в качестве режима с пропуском преобразования использован режим TS1 (горизонтальное преобразование), то в качестве второго преобразования может использоваться горизонтальное ДСП. Если в качестве режима с пропуском преобразования использован режим TS2 (вертикальное преобразование), то в качестве второго преобразования может использоваться вертикальное ДСП. При использовании режима TS3, то есть когда не используется ни горизонтальное преобразование, ни вертикальное преобразование, второе преобразование может не применяться.
На фиг. 5 показана блок-схема, схематично поясняющая операцию кодирования, в которой используются режим с пропуском преобразования и второе преобразование в соответствии с настоящим изобретением.
Как показано на фиг. 5, устройство кодирования может выполнять разбиение входного изображения (S510). Входное изображение может разбиваться на блоки, например, элементы кодирования, элементы предсказания и элементы преобразования.
Устройство кодирования может выполнять предсказание для целевого блока обработки, которым является текущий блок (S520). Для текущего блока устройство кодирования может выполнять межкадровое предсказание или внутрикадровое предсказание, в результате чего формируется предсказанный блок и на основании данного предсказанного блока формируется остаточный (разностный) блок.
Устройство кодирования может кодировать информацию предсказания (S530). Устройство кодирования при использовании межкадрового предсказания может кодировать информацию о перемещении, а при использовании внутрикадрового предсказания может кодировать информацию, указывающую режим внутрикадрового предсказания.
Устройство кодирования может преобразовывать остаточный (разностный) сигнал и кодировать указанный преобразованный остаточный сигнал (S540). Устройство кодирования может применять к остаточному сигналу режим с пропуском преобразования и выполнять второе преобразование на основании указанного режима с пропуском преобразования.
Устройство кодирования может выбирать информацию для передачи (S550). Устройство кодирования, используя оптимизацию по скорости передачи и искажениям, может выбирать, передавать ли остаточный блок или коэффициенты преобразования.
Для передачи коэффициентов преобразования устройство кодирования может выполнять сканирование коэффициентов преобразования (S560). Путем сканирования выполняется переупорядочение коэффициентов преобразования.
Устройство кодирования может выполнять энтропийное кодирование прошедших сканирование коэффициентов преобразования (S570). Устройство кодирования может передавать прошедшие энтропийное кодирование коэффициенты преобразования в виде битового потока.
Далее подробно описывается операция кодирования, показанная на фиг. 5.
Устройство кодирования может выполнять разбиение входного изображения (S510). Разбиение входного изображения выполняют с целью кодирования. Например, текущее изображение или кадр могут быть разбиты на элементы кодирования.
Один межкадровый элемент кодирования может содержать множество межкадровых элементов предсказания и иметь множество режимов предсказания PreMode. Например, в указанное множество режимов предсказания может входить режим с пропуском MODE_SKIP и межкадровый режим MODE_INTER. В режиме с пропуском предсказание может выполняться для блока, режимом PartMode разбиения которого является режим PART_2Nx2N, без разбиения на более мелкие элементы предсказания. Таким образом, предсказание осуществляется с использованием в качестве информации о перемещении, задаваемой для элемента предсказания с режимом PART_2Nx2N, информации о перемещении, относящейся к прилегающему блоку, а остаточный сигнал не передается.
В межкадровом режиме элемент кодирования может содержать разбиения на элементы предсказания четырех типов, например, PART_2Nx2N, PART_2NxN, PART_Nx2N и PART_NxN. В этом случае устройство кодирования может сообщать в устройство декодирования, что режимом предсказания PreMode является межкадровый режим MODE_INTER, и сообщать в устройство декодирования информацию PartMode, указывающую тип разбиения из числа указанных четырех типов.
Если элемент кодирования разбит на множество элементов предсказания, то предсказание может выполняться для элемента предсказания, подлежащего кодированию в данный момент (для текущего блока).
Устройство кодирования может выполнять предсказание для целевого блока предсказания, который является текущим блоком (S520).
Если для текущего блока или текущего элемента предсказания выполняется межкадровое предсказание, то устройство кодирования может выполнять предсказание перемещения для текущего блока с использованием предыдущих изображений. Как вариант, если для текущего блока или текущего элемента предсказания выполняется межкадровое предсказание, то устройство кодирования может выполнять предсказание перемещения для текущего блока с использованием кадров; или предыдущих и последующих изображений; или кадров. Информация о перемещении, содержащая вектор перемещения, список опорных изображений и т.п., может быть получена посредством предсказания перемещения. Если для текущего блока выполняется внутрикадровое предсказание, то устройство кодирования может выполнять внутрикадровое предсказание для текущего блока с использованием образцов, прилегающих к текущему блоку, и определять режим внутрикадрового предсказания.
С целью повышения эффективности сжатия возможна передача не самой информации текущего элемента предсказания, a разностного значения относительно значения, предсказанного по прилегающим блокам. Здесь в режиме с пропуском предсказание осуществляется с использованием в качестве информации о перемещении для текущего блока информации о перемещении, относящейся к прилегающему блоку, а разностное значение не передается.
В режиме слияния и в режиме AMVP предсказание выполняется с использованием информации о перемещении, относящейся к прилегающему блоку, при этом передается разностное значение (остаточный сигнал).
На фиг. 6 схематично показана информация о прилегающем блоке, которая может быть использована в режиме обхода, в режиме слияния и в режиме AMVP.
Чтобы получить значение предсказанного перемещения для текущего блока 600, устройство кодирования может строить список возможных блоков слияния и список возможных блоков AMVP. Указанные списки возможных блоков могут быть построены с использованием пространственных возможных блоков A0, A1, B0, B1 и B2, прилегающих к текущему блоку 600, и соответствующего блока в объединенном изображении 610 в качестве возможного временного блока. Здесь возможным временным блоком может быть любой один из блоков C0, C3, BR и H. В списке возможных блоков слияния по порядку могут проверяться возможные блоки A (A0→A1), B (B0→B1→B2) и возможный временной блок. В списке возможных блоков AMVP возможные блоки могут проверяться в том же порядке, что и в списке возможных блоков слияния, либо возможные блоки могут проверяться в следующем порядке: возможный временной блок, A (A0→A1) и B (B0→B1→B2).
Устройство кодирования может выполнять предсказание для текущего блока с использованием информации о перемещении, относящейся к указанным возможным блокам.
При использовании режима слияния устройство кодирования определяет возможные блоки слияния из информации о перемещении для блоков, смежных во времени и пространстве с текущим блоком (например, элементом предсказания). Если блок, имеющий такую же информацию о перемещении, как и текущий блок, есть среди возможных блоков, то устройство кодирования передает флаг, указывающий на использование режима слияния, и индекс возможного блока, имеющего такую же информацию о перемещении, как у текущего блока. Например, в режиме слияния (i) устройство кодирования может вычислять значение возможного временного вектора предсказания перемещения с использованием вычисленного индекса опорного изображения (refIdxLX, X=0 или 1). (ii) Кодер может строить список возможных блоков для слияния (MergeCandList). (iii) Если есть возможный блок, имеющий такую же информацию о перемещении, как и текущий блок, то устройство кодирования устанавливает флаг слияния (Merge_flag) равным 1 и кодирует индекс (Merge_Idx) для возможного блока.
В режиме AMVP устройство кодирования определяет возможные блоки AMVP из информации о перемещении для блоков, прилегающих во времени и пространстве к текущему блоку (например, элементу предсказания). (i) Устройство кодирования определяет возможные предикторы пространственного вектора перемещения (MVP) по блокам (например, элементам предсказания), прилегающим к текущему блоку. Для определения возможных пространственных векторов перемещения могут использоваться прилегающие блоки, показанные на фиг. 6. (ii) Устройство кодирования определяет возможный временной вектор перемещения объединенного блока с использованием индекса опорного изображения (RefIdxLX), полученного в операции измерения перемещения. (iii) Устройство кодирования строит список предикторов вектора перемещения (mvpListLX). При этом возможные векторы перемещения по порядку приоритета могут быть расположены следующим образом: (1) вектор перемещения временного объединенного блока (mvLXCol, например, таким объединенным блоком может быть одним из соответствующих блоков C0, C3, BR и H на фиг. 6), (2) векторы перемещения блоков, прилегающих к левой стороне текущего блока (mvLXA), и (3) векторы перемещения блоков, прилегающих к верхней стороне текущего блока (mvLXB). Блоки, которые могут быть использованы, например объединенный блок, блоки, прилегающие к левой стороне текущего блока, и блоки, прилегающие к верхней стороне текущего блока, показаны на фиг. 6. (iv) Если несколько векторов перемещения имеют одинаковое значение, то устройство кодирования удаляет из списка предикторов вектора перемещения все векторы перемещения, имеющие одинаковое значение, кроме вектора перемещения, имеющего среди указанных векторов перемещения наивысший приоритет. (v) Устройство кодирования в качестве предиктора вектора перемещения для текущего блока задает оптимальный предиктор вектора перемещения из числа векторов перемещения, входящих в список предикторов вектора перемещения (mvListLX). Оптимальным является предиктор вектора перемещения возможного блока, при котором функция стоимости имеет наименьшее значение.
В то же время при использовании режима внутрикадрового предсказания устройство кодирования выполняет предсказание с использованием образцов, прилегающих к текущему блоку. Устройство кодирования может выбирать оптимальный режим внутрикадрового предсказания с использованием оптимизации по скорости передачи и искажениям (rate-distortion optimization). В режиме постоянной составляющей или в режиме предсказания по плоскости устройство кодирования может формировать предсказанный блок для текущего блока с использованием значения пиксела, вычисленного на основании среднего значения пиксела прилегающих образцов или значений пикселов прилегающих образцов без учета направления указанных прилегающих образцов. При использовании режима с выделенным направлением устройство кодирования может формировать предсказанный блок для текущего блока с использованием образцов в направлении, указываемом внутрикадровым режимом предсказания для текущего блока.
Устройство кодирования может кодировать указанную информацию предсказания (S530).
В режиме слияния, если среди возможных блоков слияния есть блок с такой же информацией о перемещении, как у текущего блока (например, элемента предсказания), то устройство кодирования указывает, что текущий блок находится в режиме слияния и передает флаг слияния, извещающий об использовании режима слияния, и индекс слияния (Merge_Idx), указывающий, какой из возможных блоков слияния выбран. Устройство кодирования формирует разностный сигнал (остаточный сигнал) между текущим блоком и блоком, предсказанным режимом слияния после компенсации движения. При отсутствии остаточного сигнала, подлежащего передаче, устройство кодирования может передавать информацию, указывающую, что используется режим с пропуском слияния.
В режиме AMVP устройство кодирования выбирает из числа возможных блоков AMVP блок, для которого функция стоимости имеет наименьшее значение, путем сравнения информации о векторе перемещения возможных блоков AMVP и информации о векторе перемещения, кодируемого в настоящее время. Устройство кодирования формирует разностное значение для информации о перемещении текущего блока и возможного блока, для которого функция стоимости имеет наименьшее значение, и остаточный сигнал путем компенсации движения с использованием указанного возможного блока AMVP. Устройство кодирования выполняет энтропийное кодирование разностного вектора перемещения между вектором перемещения текущего блока (например, элемента предсказания) и вектором перемещения блока с наименьшим значением функции стоимости (оптимальным предиктором).
Если используется внутрикадровое предсказание, то устройство кодирования вычисляет остаточный сигнал как разность между текущим блоком и предсказанным блоком, сформированным с использованием режима внутрикадрового предсказания. Устройство кодирования может выполнять энтропийное кодирование остаточного сигнала. Устройство кодирования также может кодировать информацию, указывающую на использование режима внутрикадрового предсказания.
Как указано выше, устройство кодирования может преобразовывать и кодировать остаточный сигнал, сформированный посредством предсказания (S540). Устройство кодирования может формировать остаточный сигнал, для каждого пиксела вычисляя разность между значением пиксела текущего блока и значением пиксела предсказанного блока.
Устройство кодирования может преобразовывать и кодировать сформированный указанным образом остаточный сигнал. Здесь возможными ядрами преобразования и кодирования могут быть блоки 2x2, 4x4, 8x8, 16x16, 32x32 и 64x64, из числа которых предварительно определенное ядро кодирования может быть заранее задано в качестве ядра, подлежащего использованию для преобразования.
При использовании внутрикадрового предсказания устройство кодирования может выбирать режим с пропуском преобразования на основании направления режима внутрикадрового предсказания. Хотя в вышеприведенном описании режим с пропуском преобразования выбирается в соответствии с направлением режима внутрикадрового предсказания, устройство кодирования также может выбирать режим с пропуском преобразования на основании оптимизации по скорости передачи и искажениям и может сообщать информацию о выбранном режиме с пропуском преобразования. При этом количество возможных режимов с пропуском преобразования может определяться по-разному в зависимости от направлений режимов внутрикадрового предсказания. Кроме того, информация, указывающая режимы с пропуском преобразования, может кодироваться с использованием различных кодовых слов в зависимости от направлений режимов внутрикадрового предсказания.
При использовании внутрикадрового предсказания устройство кодирования может выбирать режим с пропуском преобразования на основании формы текущего блока (например, элемента предсказания). Хотя в вышеприведенном описании режим с пропуском преобразования выбирается на основании формы текущего блока, устройство кодирования также может выбирать режим с пропуском преобразования на основании оптимизации по скорости передачи и искажениям и может сообщать информацию о выбранном режиме с пропуском преобразования. При этом количество возможных режимов с пропуском преобразования может определяться по-разному на основании формы текущего блока. Кроме того, информация, указывающая режимы с пропуском преобразования, может кодироваться с использованием различных кодовых слов на основании формы текущего блока.
Устройство кодирования может выполнять двумерное преобразование, одномерное преобразование (преобразование над столбцами и преобразование над строками) или пропуск преобразования в соответствии с режимом с пропуском преобразования.
К компоненту цветности может применяться такой же режим с пропуском преобразования, как и к компоненту яркости.
После применения режима с пропуском преобразования устройство кодирования может выполнять второе преобразование на основании использованного режима с пропуском преобразования. Второе преобразование может осуществляться путем применения ДСП к каждому блоку 4x4. Устройство кодирования определяет тип второго преобразования на основании режима с пропуском преобразования и применяет найденный указанным образом тип второго преобразования к низкочастотной области. Например, устройство кодирования может выполнять над низкочастотной областью ДСП с размером блока 4x4.
Как указано выше, конкретный способ второго преобразования определяется в соответствии с режимами пропуска преобразования: если в качестве режима с пропуском преобразования использовался режим TS0 двумерного преобразования, то в качестве второго преобразования используется двумерное ДСП; если в качестве режима с пропуском преобразования использовался режим TS1 горизонтального преобразования, то в качестве второго преобразования используется горизонтальное ДСП; если в качестве режима с пропуском преобразования использовался режим TS2 вертикального преобразования, то в качестве второго преобразования используется вертикальное ДСП; а если в качестве режима с пропуском преобразования использовался режим TS3, в котором не выполняется ни горизонтальное преобразование, ни вертикальное преобразование, то второе преобразование может не применяться.
При этом коэффициент преобразования C для блока n x n может определяться по формуле 2.
[Формула 2]
В формуле 2 через T обозначена матрица преобразования, а через B – остаточный блок.
Устройство кодирования выполняет квантование коэффициентов преобразования.
Устройство кодирования может выбирать информацию, подлежащую передаче (S550). Устройство кодирования, используя оптимизацию по скорости передачи и искажениям, может принимать решение о том, что передавать: остаточный сигнал или коэффициенты преобразования. Если остаточный сигнал вследствие должным образом выполненного предсказания невелик, то устройство кодирования может передавать остаточный сигнал в неизменном виде. Как вариант, устройство кодирования может передавать информацию, соответствующую наименьшему значению стоимости, сравнивая стоимость до и после преобразования и кодирования. Когда информация, подлежащая передаче, выбрана, устройство кодирования может сообщать тип выбранной информации: остаточный сигнал или коэффициенты преобразования.
Для передачи коэффициентов преобразования устройство кодирования может выполнять сканирование коэффициентов преобразования (S560). Путем сканирования выполняется переупорядочение коэффициентов преобразования.
Устройство кодирования может выполнять энтропийное кодирование прошедших сканирование коэффициентов преобразования (S570). Устройство кодирования может передавать прошедшие энтропийное кодирование коэффициенты преобразования в виде битового потока.
На фиг. 7 показана блок-схема, схематично поясняющая операцию декодирования, в которой используется режим с пропуском преобразования и второе преобразование в соответствии с настоящим изобретением.
Как показано на фиг. 7, устройство декодирования выполняет энтропийное декодирование битового потока, принятого из устройства кодирования (S710). Устройство декодирования может выполнять энтропийное декодирование с использованием способа, соответствующего способу энтропийного кодирования, использованному устройством кодирования.
Устройство декодирования может выполнять обратное преобразование информации, прошедшей энтропийное декодирование (S720). Устройство декодирования с целью формирования двумерного блока может выполнять обратное сканирование информации, прошедшей энтропийное декодирование.
Устройство декодирования выполняет предсказание для текущего блока (например, элемента предсказания) (S730). Устройство декодирования может формировать предсказанный блок для текущего блока в соответствии со способом предсказания, использованным в устройстве кодирования.
Устройство декодирования может формировать восстановленный сигнал для текущего блока (S740). Устройство декодирования может складывать предсказанный блок и остаточный блок с целью восстановления текущего блока.
Далее подробно описывается операция декодирования, показанная на фиг. 7.
Вначале устройство декодирования выполняет энтропийное декодирование битового потока, принятого из устройства кодирования (S710). Из принятого битового потока устройство декодирования может получать тип текущего блока и информацию о режиме предсказания для текущего блока. Например, если при энтропийном кодировании к текущему блоку применялось кодирование с переменной длиной слова (variable length coding, VLC), то тип блока может быть определен по таблице VLC.
По типу информации устройство декодирования может определить, является ли переданная информация о текущем блоке остаточным сигналом или коэффициентами преобразования. Устройство декодирования может получать информацию об остаточном сигнале или коэффициентах преобразования текущего блока.
Устройство декодирования может выполнять обратное преобразование информации, прошедшей энтропийное декодирование (S720). Декодер может выполнять обратное сканирование прошедших энтропийное декодирование остаточного сигнала или коэффициентов преобразования с целью формирования двумерного блока.
Если к текущему блоку применено внутрикадровое предсказание, то устройство декодирования может задавать режим с пропуском преобразования на основании режима внутрикадрового предсказания и выполнять обратное преобразование в соответствии с заданным режимом с пропуском преобразования. Если режим с пропуском преобразования задается без учета режима внутрикадрового предсказания (например, на основании оптимизации по скорости передачи и искажениям), то устройство декодирования может декодировать принятую из устройства кодирования информацию, указывающую режим с пропуском преобразования, и выполнять обратное преобразование в соответствии с указанным режимом с пропуском преобразования.
Если к текущему блоку применено межкадровое предсказание, то устройство декодирования может задавать режим с пропуском преобразования на основании формы текущего блока (например, элемента предсказания) и выполнять обратное преобразование в соответствии с заданным режимом с пропуском преобразования. Если режим с пропуском преобразования задается без учета формы текущего блока (например, на основании оптимизации по скорости передачи и искажениям), то устройство декодирования может декодировать принятую из устройства кодирования информацию, указывающую режим с пропуском преобразования, и выполнять обратное преобразование в соответствии с данной информацией, принятой из устройства кодирования.
Тот же режим с пропуском преобразования, который использовался для компонента яркости, может быть использован и для определения режима с пропуском преобразования для компонента цветности.
После применения режима с пропуском преобразования устройство декодирования на основании режима с пропуском преобразования, использованного для текущего блока, может выполнять второе обратное преобразование. Второе обратное преобразование может выполняться путем применения обратного ДСП к каждому блоку 4x4. Устройство декодирования определяет тип способа второго обратного преобразования на основании режима с пропуском преобразования и применяет найденный указанным образом тип второго обратного преобразования к низкочастотной области. Например, устройство декодирования может выполнять над низкочастотной областью обратное ДСП с размером блока 4x4.
Тип второго обратного преобразования определяется в соответствии с режимом пропуска преобразования: если в качестве режима с пропуском преобразования использовано обратное двумерное преобразование TS0, то в качестве второго обратного преобразования используется обратное двумерное ДСП; если в качестве режима с пропуском преобразования использовано обратное горизонтальное преобразование TS1, то в качестве второго обратного преобразования используется обратное горизонтальное ДСП; если в качестве режима с пропуском преобразования использовано обратное вертикальное преобразование TS2, то в качестве второго обратного преобразования используется обратное вертикальное ДСП; а если в качестве режима с пропуском преобразования использован режим TS3, то есть когда не используется ни обратное горизонтальное преобразование, ни обратное вертикальное преобразование, то второе обратное преобразование может не применяться.
Если переданный сигнал представляет собой остаточный сигнал, то устройство декодирования может на основании указанного остаточного сигнала формировать остаточный блок.
Если переданный сигнал представляет собой коэффициент преобразования, то устройство декодирования может на основании указанного коэффициента преобразования формировать блок коэффициентов преобразования. Устройство декодирования может выполнять деквантование и обратное преобразование блока коэффициентов преобразования для формирования остаточного блока.
Формула 3 дает пример обратного преобразования, применяемого к текущему блоку коэффициентов преобразования.
[Формула 3]
Все элементы, входящие в формулу 3, описаны выше при рассмотрении формулы 2.
Устройство декодирования выполняет предсказание для текущего блока (например, элемента предсказания) (S730).
В режиме слияния, даже если информация, переданная из устройства кодирования, указывает, что режимом предсказания является режим с преобразованием (PredMode=MODE_SKIP), устройство декодирования может получать вектор перемещения (mvLX) и индекс опорного изображения с использованием режима слияния, если флаг слияния имеет значение 1.
Устройство декодирования может определять возможные блоки для слияния из числа блоков (например, элементов предсказания), прилегающих к текущему блоку (например, элементу предсказания). Кроме того, устройство декодирования, чтобы найти возможный временной блок слияния, может определять индекс опорного изображения (refIdxLX). Возможные блоки слияния показаны на фиг. 6.
Устройство декодирования определяет значение возможного предиктора временного вектора перемещения с использованием указанного индекса опорного изображения.
Устройство декодирования может задавать индекс слияния (Merge_Idx) равным 1, если количество возможных элементов (NumMergeCand) в списке возможных элементов слияния (MergeCandList) равно 1, Устройство декодирования может задавать индекс слияния равным значению индекса, принятому из устройства декодирования, в остальных случаях.
Устройство декодирования может определять вектор перемещения (mvLX) возможных элементов слияния, указываемых индексом слияния и индексом опорного изображения (refIdxLX), и может выполнять компенсацию перемещения с использованием указанных вектора перемещения и индекса опорного изображения.
При использовании режима AMVP устройство декодирования может определять индекс опорного изображения (refIdxLX) текущего блока (например, элемента предсказания).
Устройство декодирования может определять значение предиктора вектора перемещения с использованием индекса опорного изображения.
С этой целью устройство декодирования может определять возможные пространственные векторы перемещения по блокам (например, элементам предсказания), прилегающим к текущему блоку. Устройство декодирования также может определять предиктор временного вектора перемещения объединенного блока, указываемого индексом опорного изображения. Устройство декодирования может строить список предикторов вектора перемещения (mvpListLX). При этом возможные векторы перемещения по порядку приоритета могут быть расположены следующим образом: (1) вектор перемещения временного объединенного блока (mvLXCol, например, указанным временным объединенным блоком может быть одним из соответствующих блоков C0, C3, BR и H на фиг. 6), (2) векторы перемещения блоков, прилегающих к левой стороне текущего блока (mvLXA), и (3) векторы перемещения блоков, прилегающих к верхней стороне текущего блока (mvLXB).
Если несколько векторов перемещения имеют одинаковое значение, то устройство декодирования может удалять из списка предикторов вектора перемещения все векторы перемещения, имеющие одинаковое значение, кроме вектора перемещения, имеющего среди указанных векторов перемещения наивысший приоритет.
Если количество (NumMVPCand(LX)) возможных предикторов в списке предикторов вектора перемещения равно 1, то устройство декодирования может задавать значение mvpIdx равным 1. Если количество возможных предикторов два или более, то устройство декодирования может задавать значение mvpIdx равным значению индекса, принятому из устройства кодирования. В качестве значения mvpLX предиктора вектора перемещения устройство декодирования задает из числа возможных предикторов вектора перемещения в списке mvpListLX вектор перемещения, указываемый индексом mvpIdx.
Устройство декодирования может определять вектор перемещения для текущего блока с использованием формулы 4.
[Формула 4]
В формуле 4 mvLX представляет собой x-компоненту вектора перемещения для текущего блока, mvdLX представляет собой x-компоненту разностного значения вектора перемещения для текущего блока, а mvpLX представляет собой x-компоненту значения предиктора вектора перемещения для текущего блока. mvLX представляет собой y-компоненту вектора перемещения для текущего блока, mvdLX представляет собой y-компоненту разностного значения вектора перемещения для текущего блока, а mvpLX представляет собой y-компоненту значения предиктора вектора перемещения для текущего блока.
В то же время при использовании внутрикадрового предсказания устройство декодирования может формировать предсказанный блок для текущего блока на основании прилегающих образцов с использованием внутрикадрового режима предсказания для текущего блока.
Устройство декодирования может формировать восстановленный сигнал для текущего блока (S740). При использовании межкадрового предсказания устройство декодирования может формировать предсказанный блок с использованием определенного вектора перемещения и с целью восстановления текущего блока складывать предсказанный блок с остаточным блоком. При использовании внутрикадрового предсказания устройство декодирования также может, как описано, с целью восстановления текущего блока складывать предсказанный блок с остаточным блоком.
Несмотря на то, что в вышеупомянутых вариантах осуществления способы раскрывались путем описания последовательностей шагов или блоков в блок-схемах, настоящее изобретение не ограничено вышеописанной последовательностью шагов. Некоторые шаги могут выполняться в ином порядке, чем указано выше, или одновременно. Кроме того, вышеупомянутые варианты осуществления содержат примеры различных аспектов. Например, в рамках настоящего изобретения проиллюстрированные варианты осуществления могут быть осуществлены в разных сочетаниях. Специалистам в данной области техники должно быть понятно, что в приведенных примерных вариантах осуществления изобретения могут быть сделаны замены, модификации и использованы альтернативные варианты без выхода за пределы принципов и сущности настоящего изобретения, объем охраны которого определен в прилагаемой формуле изобретения и ее эквивалентах.