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

Настоящая заявка выделена из заявки №2014119545 на выдачу патента РФ на изобретение, поданной 08.11.2012, с испрашиванием приоритета по дате подачи первых заявок KR 10-2011-0116126 и KR 10-2012-0125799, поданных в патентное ведомство Кореи 08.11.2011 и 08.11.2012, соответственно.
Область техники, к которой относится изобретение
Настоящее изобретение относится к кодированию и декодированию видеоданных, более конкретно, к способу декодирования видеосигнала.
Уровень техники
В последнее время в различных отраслях растет потребность в использовании видеоданных с большим разрешением и высоким качеством, таких как видеоданные высокого качества (HD; high-definition) и сверхвысокого качества (UHD; ultrahigh-definition). По мере повышения разрешения и качества видеоданных возрастает и объем данных по отношению к существующим в настоящее время обычным видеоданным. Соответственно, при передаче видеоданных с использованием, например, существующих в настоящее время проводных и беспроводных широкополосных линий связи или хранении видеоданных на существующих в настоящее время носителях информации возрастают затраты на передачу и хранение видеоданных. Для решения этих проблем, возникающих при увеличении разрешения и качества видеоданных, могут быть использованы высокоэффективные способы сжатия видеоданных.
Способ сжатия видеоданных содержит различные способы, такие как способ межкадрового предсказания для предсказания значений пикселей, содержащихся в текущем изображении, на основании предыдущих или последующих изображений относительно текущего изображения, способ внутрикадрового предсказания для предсказаний значений пикселей в текущем изображении с использованием информации о пикселе в текущем изображении и способ энтропийного кодирования путем присваивания короткого кода значению с высокой частотой появления и присваивания длинного кода значению с низкой частотой появления. Видеоданные могут быть эффективно сжаты и переданы или сохранены с использованием таких способов сжатия видеоданных.
Раскрытие изобретения
Целью аспекта настоящего изобретения является предложение способа декодирования видеосигнала для повышения эффективности декодирования видеосигнала.
В варианте осуществления настоящего изобретения предлагается способ декодирования видеосигнала. Способ включает получение индекса опорного изображения из битового потока; получение пространственного вектора-кандидата перемещения по соседнему в пространстве блоку относительно текущего блока; выбор связанного изображения, относящегося к временному вектору-кандидату перемещения текущего блока, на основании индекса опорного изображения; получение временного вектора-кандидата перемещения текущего блока по связанному блоку, при этом связанный блок включен в связанное изображение; генерирование списка векторов-кандидатов перемещения, содержащего пространственный вектор-кандидат перемещения и временной вектор-кандидат перемещения; определение предсказателя вектора перемещения на основании списка векторов-кандидатов перемещения и индекса кандидата текущего блока, при этом индекс кандидата указывает один из векторов-кандидатов перемещения, содержащихся в списке векторов-кандидатов перемещения; определение вектора перемещения текущего блока с использованием предсказателя вектора перемещения и разности векторов перемещения; и получение образцов предсказания текущего блока с использованием вектора перемещения и опорного изображения текущего блока.
В таком способе связанное изображение может иметь временной порядок, отличный от текущего изображения, содержащего текущий блок.
Связанный блок может представлять собой блок, соответствующий той же позиции, что и текущий блок.
Соседний в пространстве блок может включать по меньшей мере один из числа левого соседнего блока и верхнего соседнего блока.
Множество векторов-кандидатов перемещения в списке векторов-кандидатов перемещения может быть расположено в порядке приоритета.
Множество векторов-кандидатов перемещения может быть расположено в порядке, соответствующем пространственному вектору-кандидату перемещения и временному вектору-кандидату перемещения.
Технический результат
В соответствии с настоящим изобретением способ декодирования видеосигнала повышает эффективность декодирования видеоизображения.
Краткое описание чертежей
На фиг. 1 показана функциональная схема устройства кодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 2 показана функциональная диаграмма устройства декодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 3 схематично показан способ сканирования коэффициентов в соответствии с настоящим изобретением.
На фиг. 4 показан способ определения и кодирования способа сканирования на основании режима деления блока предсказания в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 5 показан способ определения и кодирования способа сканирования в делении асимметричного перемещения (asymmetric motion partition, AMP) в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 6 показан способ определения и кодирования способа сканирования для внутрикадрового предсказания на малых расстояниях (short distance intra prediction, SDIP) в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 7 показана обобщенная схема операции кодирования видеоданных в соответствии с настоящим изобретением.
На фиг. 8 показана обобщенная схема операции декодирования видеоданных в соответствии с настоящим изобретением.
Осуществление изобретения
Настоящее изобретение может быть изменено или модифицировано различными способами и может быть проиллюстрировано со ссылкой на различные примеры вариантов осуществления, некоторые из которых будут описаны и показаны на чертежах. Однако эти варианты осуществления не предназначены для ограничения изобретения, но предполагают включение всех модификаций, аналогов и замен, соответствующих духу и объему охраны изобретения. Одинаковые обозначения позиций на чертежах относятся к одним и тем же элементам во всем документе.
Хотя могут быть использованы термины «первый», «второй» и т.д. для описания различных элементов, эти элементы не должны ограничиваться этими терминами. Эти термины использованы только для различения одного элемента от другого элемента. Например, первый элемент может быть назван вторым элементом, а второй элемент подобным образом может быть назван первым элементом без выхода за пределы сущности настоящего изобретения. Термин «и/или» включает все и любые комбинации множества соответствующих перечисленных элементов.
Следует понимать, что когда элемент описывают как «соединенный с» или «связанный с» другим элементом, такой элемент может быть напрямую соединен или связан с другим элементом или промежуточными элементами. С другой стороны, когда элемент описывают как «напрямую соединенный с» или «напрямую связанный с» другим элементом, промежуточные элементы отсутствуют.
Использованная в данном документе терминология используется только с целью описания частных вариантов осуществления и не предназначена для ограничения изобретения. Как использовано в данном документе, формы единственного числа предполагают также включение форм множественного числа кроме случаев, когда из контекста ясно следует обратное. Также ясно, что термины «содержит», «включает» и/или «имеет», использованные в данном описании, указывают на наличие указанных признаков, целых систем, шагов, операций, элементов и/или других компонентов, но не препятствуют наличию или добавлению одного или более других признаков, целых систем, шагов, операций, элементов, компонентов и/или их объединений.
В дальнейшем примерные варианты осуществления изобретения будут описаны детально со ссылкой на сопровождающие чертежи. Одинаковые ссылочные обозначения на чертежах относятся к аналогичным элементам во всем документе, и избыточные описания одинаковых элементов будут здесь опущены.
На фиг. 1 показана функциональная схема устройства кодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
Как показано на фиг. 1, устройство 100 кодирования видеоданных содержит модуль 110 деления изображения, модули 120 и 125 предсказания, модуль 130 преобразования, модуль 135 квантизации (квантования), модуль 160 переупорядочения, модуль 165 энтропийного кодирования, модуль 140 деквантизации, модуль 145 обратного преобразования, модуль 150 фильтрации и память (запоминающее устройство) 155.
Хотя с целью пояснения различных отличительных функций устройства кодирования видеоданных элементы на фиг. 1 показаны независимо, данная конфигурация не означает, что каждый элемент представляет собой отдельный аппаратный компонент или программный компонент. Иными словами, элементы показаны независимыми для удобства описания; тогда как для выполнения функций два или более элементов могут быть объединены в один элемент, или один элемент может быть разделен на несколько элементов. Варианты осуществления изобретения, в которых некоторые элементы объединены в один составной элемент и/или элемент разделен на несколько самостоятельных элементов, входят в объем охраны настоящего изобретения без выхода за пределы сущности настоящего изобретения.
Некоторые элементы не являются необходимыми для основных функций изобретения и могут быть необязательными компонентами лишь для улучшения характеристик. Изобретение может быть осуществлено включением только необходимых для варианта осуществления изобретения компонентов, за исключением компонентов, использованных лишь для улучшения характеристик. Структура, включающая в себя только необходимые компоненты, за исключением оптических компонентов, использованных лишь для улучшения характеристик, входит в объем охраны изобретения.
Модуль 110 деления изображения может разделять входное изображение на по меньшей мере один блок обработки (process unit). При этом блок обработки может быть блоком предсказания (prediction unit, PU), блоком преобразования (transform unit, TU) или блоком кодирования (coding unit, CU). Модуль 110 деления изображения может разделять одно изображение на множество комбинаций блоков CU, PU и TU и выбирать одну комбинацию CU, PU и TU на основании заранее заданного критерия (например, функции стоимости), тем самым кодируя изображение.
Например, одно изображение может быть разделено на несколько CU. Рекурсивная структура дерева, такая как структура дерева квадрантов, может быть использована для деления изображения на блоки CU. CU, для которого изображение или CU максимального размера может быть корнем, может быть разделен на подблоки кодирования с таким же количеством дочерних узлов, как и у разделяемых блоков CU. CU, который более не разделяют в соответствии с заранее заданным ограничением, является листовым (концевым) узлом. Иными словами, при условии, что CU может быть разделен только на квадранты, одиночный CU может быть разделен самое большее на четыре различных CU.
В вариантах осуществления изобретения CU может быть использован для ссылки не только на блок для кодирования, но также на блок для декодирования.
PU может быть разделен на по меньшей мере одну квадратную или прямоугольную форму с тем же размером, что у CU. Форма PU, выделенных из одного и того же CU, может отличаться друг от друга.
При генерировании PU для внутрикадрового предсказания на основании CU и при условии, что CU не является минимальным CU, CU могут подвергать внутрикадровому предсказанию без деления на несколько PU (N×N).
Модули 120 и 125 предсказания могут включать модуль 120 межкадрового предсказания для выполнения межкадрового предсказания и модуль 125 внутрикадрового предсказания для выполнения внутрикадрового предсказания. Модули 120 и 125 предсказания могут определять, какое из предсказаний, межкадровое или внутрикадровое, должно быть выполнено для PU, и могут определять характерную информацию (например, режим внутрикадрового предсказания, вектор перемещения и опорное изображение) определенного таким образом способа предсказания. При этом блок обработки, для которого выполняют предсказание, может быть отличным от блока обработки, для которого определены способ предсказания и характерная информация. Например, способ предсказания и режим предсказания могут быть определены для каждого PU, тогда как предсказание может быть выполнено для каждого TU. Разностное значение (разностный блок) между сгенерированным предсказанным блоком и оригинальным блоком может быть введено в модуль 130 преобразования. Кроме того, информация о режиме предсказания, информация о векторе перемещения и т.п., использованные для предсказания, могут быть закодированы вместе с разностным значением модулем 165 энтропийного кодирования и переданы в устройство декодирования. При использовании конкретного режима кодирования оригинальный блок может быть закодирован и передан в устройство декодирования без генерирования блока предсказания модулями 120 и 125 предсказания.
Модуль 120 межкадрового предсказания может предсказывать PU на основании информации о по меньшей мере одном изображении из числа изображения, предшествовавшего текущему изображению, и изображения, следующему за текущим изображением. Модуль 120 межкадрового предсказания может содержать модуль интерполяции опорного изображения, модуль предсказания перемещения и модуль компенсации перемещения.
Модуль интерполяции опорного изображения может получать информацию об опорном изображении из памяти 155 и генерировать информацию о пикселе менее, чем целый пиксел от опорного изображения. Для пикселов яркостного канала может быть использован 8-элементный интерполяционный фильтр с дискретным косинусным преобразованием (DCT) с переменным коэффициентом фильтра для генерирования информации о пикселе менее, чем целый пиксел в элементах 1/4 пиксела. В случае пикселов цветностного канала может быть использован 4-элементный интерполяционный фильтр с дискретным косинусным преобразованием (DCT) с переменным коэффициентом фильтра для генерирования информации о пикселе менее, чем целый пиксел в элементах 1/8 пиксела.
Модуль предсказания перемещения может выполнять предсказание перемещения (motion prediction) на основании опорного изображения, интерполированного модулем интерполяции опорного изображения. Для вычисления вектора перемещения могут быть использованы различные подходы, такие как алгоритм блочного сравнения на основе полного поиска (full search-based block matching algorithm, FBMA), алгоритм трехшагового поиска (three-step search, TSS) и новый алгоритм трехшагового поиска (new three-step search, NTS). Вектор перемещения имеет значение вектора перемещения в элементах 1/2 или 1/4 пиксела на основании интерполированного пиксела. Модуль предсказания перемещения может предсказывать текущий PU с использованием различных способов предсказания перемещения. В качестве способа предсказания перемещения могут быть использованы различные способы, такие как режим пропуска, режим слияния и улучшенное предсказание вектора перемещения (advanced motion vector prediction, AMVP) и т.д.
Модуль 125 внутрикадрового предсказания может генерировать PU на основании информации об опорном пикселе, соседнем с текущим блоком. Информация об опорном пикселе, соседнем с текущим блоком, является информацией о пикселе в текущем изображении. Если опорный пиксел является пикселом, для которого выполняется межкадровое предсказание, поскольку блок, который включает в себя опорный пиксел, соседний с текущим PU, является блоком, для которого выполняется межкадровое предсказание, информация об опорном пикселе, включенная в блок, для которого выполняется межкадровое предсказание, может быть замещена информацией об опорном пикселе в блоке, для которого выполняется внутрикадровое предсказание. Иными словами, если опорный пиксел недоступен, информация о недоступном пикселе может быть замещена информацией о по меньшей мере одном опорном пикселе из доступных опорных пикселов.
Режим предсказания для внутрикадрового предсказания включает режим направленного предсказания, в котором используется информация об опорном пикселе в соответствии с направлением предсказания и режим ненаправленного предсказания, в котором информацию о направлении не используют для выполнения предсказания. Режим для предсказания информации о яркостном канале и режим для предсказания информации о цветностном канале могут отличаться друг от друга. Кроме того, информацию о режиме внутрикадрового предсказания, использованную для получения информации о яркостном канале или информации о предсказанном сигнале яркостного канала можно использовать для предсказания информации о цветностном канале.
Если PU и TU имеют одинаковый размер при выполнении внутрикадрового предсказания, внутрикадровое предсказание для PU можно выполнить на основании левых пикселов, верхнего левого пиксела и верхних пикселов PU. С другой стороны, если PU и TU имеют различные размеры при выполнении внутрикадрового предсказания, внутрикадровое предсказание можно выполнить с использованием опорных пикселов на основании TU. Внутрикадровоое предсказание с использованием деления N×N можно выполнить только для минимального CU.
В способе внутрикадрового предсказания предсказанный блок может быть сгенерирован в соответствии с режимом предсказания после применения фильтра адаптивного внутрикадрового сглаживания (adaptive intra smoothing, AIS). К опорным пикселам могут быть применены различные типы фильтров AIS. В способе внутрикадрового предсказания режим внутрикадрового предсказания текущего PU может быть предсказан по режиму внутрикадрового предсказания PU, соседнего с текущим PU. При предсказании режима предсказания для текущего PU с использованием информации о режиме, предсказанной по соседнему PU, когда текущий PU и соседний PU имеют одинаковый режим внутрикадрового предсказания, информация, указывающая на то, что текущий PU и соседний PU имеют одинаковый режим предсказания, может быть передана с использованием заранее заданной информации о флаге. Если текущий PU и соседний PU имеют различные режимы предсказания, информацию о режиме предсказания для текущего блока можно закодировать посредством энтропийного кодирования.
Может быть сгенерирован разностный блок, содержащий разностную информацию, представляющую собой разность между оригинальным блоком PU и предсказанным блоком PU, сгенерированного на основании PU, сгенерированного модулями 120 и 125 предсказания. Сгенерированный разностный блок можно передать в модуль 130 преобразования.
Модуль 130 преобразования может преобразовывать разностный блок с использованием способа преобразования, такого как дискретное косинусное преобразование (Discrete Cosine Transform, DCT) или дискретное синусное преобразование (Discrete Sine Transform, DST). Разностный блок содержит информацию о разности между PU, сгенерированном модулями 120 и 125 предсказания, и оригинальным блоком. Способ преобразования, подлежащий использованию для преобразования разностного блока, может быть выбран среди DCT и DST на основании информации о режиме внутрикадрового предсказания, примененного к PU, который использовался для генерирования разностного блока.
Модуль 135 квантизации (квантования) может квантовать значения, преобразованные в частотную область модулем 130 преобразования. Коэффициент квантования может меняться в соответствии с конкретным блоком или значимостью изображения. Значения, выгруженные из модуля 135 квантизации, могут передаваться в модуль 140 деквантизации и модуль 160 переупорядочения.
Модуль 160 переупорядочения может переупорядочивать коэффициенты в соответствии с квантованными разностными значениями.
Модуль 160 переупорядочения может менять двумерный (2D) блок коэффициентов на одномерный (1B) вектор коэффициентов путем сканирования коэффициентов. Например, модуль 125 переупорядочения может менять двумерный блок коэффициентов на одномерный вектор коэффициентов путем сканирования от коэффициентов постоянной составляющей (DC) до коэффициентов высокочастотной области с использованием сканирования зигзагом. Вместо сканирования зигзагом может быть использовано вертикальное сканирование для сканирования двумерного блока коэффициентов в вертикальном направлении и горизонтальное сканирование для сканирования двумерного блока коэффициентов в горизонтальном направлении в зависимости от размера TU и режима внутрикадрового предсказания. Иными словами, используемый способ сканирования может быть выбран на основании размера TU и режима внутрикадрового предсказания среди сканирования зигзагом, вертикального сканирования и горизонтального сканирования.
Модуль 165 энтропийного кодирования может выполнять энтропийное кодирование на основании значений, полученных модулем 160 переупорядочения. Для энтропийного кодирования могут быть использованы различные способы кодирования, такие как экспоненциальный код Голомба (exponential Golomb coding), контекстно-адаптивное кодирование переменной длины (context-adaptive variable length coding, CAVLC) или контекстно-адаптивное двоичное арифметическое кодирование (context-adaptive binary arithmetic coding, CABAC).
Модуль 165 энтропийного кодирования может кодировать разнообразную информацию, такую как информацию о разностных коэффициентах или информацию о типе блока для CU, информацию о режиме предсказания, информацию о блоке деления, информацию о PU, информацию о блоке передачи, информацию о векторе перемещения, информацию об опорном кадре, информацию о блоке интерполяции и информацию о фильтрации из модуля 160 переупорядочения и модулей 120 и 125 предсказания.
Модуль 165 энтропийного кодирования может осуществлять энтропийное кодирование коэффициентов CU, введенных из модуля 160 переупорядочения.
Модуль 140 деквантизации и модуль 145 обратного преобразования деквантуют значения, которые квантованы модулем 135 квантизации и выполняют обратное преобразование значений, преобразованных модулем 130 преобразования. Разностные значения, сгенерированные модулем 140 деквантизации и модулем 145 обратного преобразования, могут быть добавлены в предсказанный PU. Предсказанный PU может быть предсказан модулем предсказания вектора перемещения, модулем компенсации перемещения и модулем внутрикадрового предсказания модулей 120 и 125 предсказания. Реконструированный блок может быть сгенерирован путем добавления разностных значений к предсказанному PU (предсказанным значениям).
Модуль 150 фильтрации может содержать по меньшей мере один из числа фильтра подавления блочности, модуля смещения и адаптивного петлевого фильтра (adaptive loop filter, ALF).
Фильтр подавления блочности (deblocking filter) может удалять искажения блока, сгенерированные на границах между блоками в реконструированном изображении. Решение о применении фильтра подавления блочности к текущему блоку может быть принято на основании пикселов, содержащихся в нескольких строках или колонках блока. Если к блоку применяют фильтр подавления блочности, может быть применен сильный фильтр или слабый фильтр в зависимости от требуемой интенсивности фильтрации подавления блочности. При выполнении горизонтальной фильтрации и вертикальной фильтрации при использовании фильтра подавления блочности, горизонтальная фильтрация и вертикальная фильтрация могут быть выполнены параллельно.
Модуль смещения может применять смещение от оригинального изображения в единицах пиксела к изображению, для которого завершена операция подавления блочности. Область, к которой может быть применено смещение, может быть определена после деления пикселов изображения на заранее определенное количество областей. Смещение может быть применено к определенной таким образом области с учетом информации о границах каждого пиксела и способа применения смещения к определенной области.
ALF может выполнять фильтрацию на основании результата сравнения прошедшего фильтрацию реконструированного изображения и оригинального изображения. Пикселы, содержащиеся в изображении, могут быть разделены на заранее заданные группы, может быть определен фильтр, применяемый к каждой группе, и для каждой группы может быть выполнена дифференциальная фильтрация. Информация о том, следует ли применять ALF, может быть передана для каждого блока кодирования (CU), и размер и коэффициент применяемого ALF может различаться для каждого блока. ALF может быть нескольких типов, и количество коэффициентов, содержащихся в соответствующем фильтре, может различаться. Кроме того, фильтр ALF той же формы (фиксированной формы) может быть применен к блоку независимо от свойств блока.
Память (запоминающее устройство) 155 может хранить реконструированный блок или изображение, выданное модулем 150 фильтрации, и сохраненный реконструированный блок или изображение могут быть поданы в модули 120 и 125 предсказания при выполнении межкадрового предсказания.
На фиг. 2 показана функциональная схема устройства декодирования видеоданных в соответствии с примерным вариантом осуществления настоящего изобретения.
Как показано на фиг. 2, устройство 200 декодирования видеоданных может содержать модуль 210 энтропийного декодирования, модуль 215 переупорядочения, модуль 220 деквантизации (деквантования), модуль 225 обратного преобразования, модули 230 и 235 предсказания, модуль 240 фильтрации и память 245.
При поступлении битового потока видеоданных от устройства кодирования видеоданных входной битовый поток может быть декодирован в соответствии с операцией, обратной к операции кодирования видеоданных, выполняемой в устройстве кодирования видеоданных.
Модуль 210 энтропийного декодирования может выполнять энтропийное декодирование в соответствии с операцией, обратной к операции энтропийного кодирования модулем энтропийного кодирования устройства кодирования видеоданных. Например, для энтропийного кодирования могли быть использованы различные способы, такие как экспоненциальный код Голомба, CAVLC или САВАС в соответствии со способом, использованным устройством кодирования видеоданных.
Модуль 210 энтропийного декодирования может декодировать информацию, связанную с межкадровым предсказанием и внутрикадровым предсказанием, выполняемым устройством кодирования.
Модуль 215 переупорядочения может переупорядочивать битовый поток, прошедший энтропийное декодирование в модуле 210 энтропийного декодирования, на основании способа переупорядочения модуля кодирования. Модуль 215 переупорядочения может реконструировать и переупорядочивать коэффициенты в форме одномерного вектора в коэффициенты в двумерном блоке. Модуль 215 переупорядочения может получать информацию о сканировании коэффициентов, выполненном устройством кодирования, и может выполнять переупорядочение с использованием способа обратного сканирования коэффициентов на основании порядка сканирования, в котором сканирование выполнено устройством кодирования.
Модуль 220 деквантизации выполнен с возможностью выполнять деквантование на основании параметра квантования (квантизации), полученного из устройства кодирования, и переупорядоченных коэффициентов блока.
Модуль 225 обратного преобразования может выполнять обратное DCT и обратное DST результата квантования, выполненного устройством кодирования видеоданных, подвергнутого DCT и DST в модуле преобразования. Обратное преобразование можно выполнять на основании блока передачи, определенного устройством кодирования видеоданных. Модуль преобразования устройства кодирования видеоданных может выборочно выполнять DCT и DST в зависимости от множества элементов информации, таких как способ предсказания, размер текущего блока и направление предсказания и т.д., а модуль 225 обратного преобразования устройства декодирования видеоданных может выполнять обратное преобразование на основании информации о преобразовании, выполненном модулем преобразования устройства кодирования видеоданных.
Модули 230 и 235 предсказания могут генерировать блок предсказания (предсказанный блок) на основании информации о генерировании блока предсказания, полученной от модуля 210 энтропийного декодирования, и информации о декодированном ранее блоке или изображении, поступившей из памяти 245.
По аналогии с операцией устройства кодирования видеоданных, как описано выше, если PU и TU имеют одинаковый размер при выполнении внутрикадрового предсказания, внутрикадровое предсказание для PU выполняют на основании левых пикселов, верхнего левого пиксела и верхних пикселов PU. С другой стороны, если PU и TU имеют различные размеры при выполнении внутрикадрового предсказания, внутрикадровое предсказание можно выполнить с использованием опорных пикселов на основании TU. Внутрикадровое предсказание с использованием деления N×N можно использовать только для минимального CU.
Модули 230 и 235 предсказания могут содержать модуль определения PU, модуль межкадрового предсказания и модуль внутрикадрового предсказания. Модуль определения PU может принимать различную информацию, такую как информацию о PU, информацию о режиме предсказания способа внутрикадрового предсказания и информацию, относящуюся к предсказанию перемещения способа межкадрового предсказания и т.д. из модуля 210 энтропийного декодирования, и определять PU для текущего CU. Модуль определения PU может определять, выполнять ли межкадровое или внутрикадровое предсказание для PU. Модуль 230 межкадрового предсказания может выполнять межкадровое предсказание для текущего PU на основании информации о по меньшей мере одном изображении из числа предыдущего изображения и последующего изображения относительно текущего изображения, включающего текущий PU. Модуль 230 межкадрового предсказания может использовать информацию, необходимую для межкадрового предсказания для текущего PU, полученную от устройства кодирования видеоданных.
Для выполнения межкадрового предсказания на основании CU может быть определено, является ли способ предсказания перемещения для PU, содержащегося в CU, режимом пропуска, режимом слияния или режимом AMVP.
Модуль 235 внутрикадрового предсказания может генерировать блок предсказания на основании информации о пикселе в текущем изображении. Если PU является блоком PU, для которого выполняется внутрикадровое предсказание, внутрикадровое предсказание можно выполнить на основании информации о режиме внутрикадрового предсказания для PU, полученной от устройства кодирования видеоданных. Модуль 235 внутрикадрового предсказания может содержать фильтр AIS, модуль интерполяции опорного пиксела и фильтр DC. Фильтр AIS выполняет фильтрацию опорных пикселов текущего блока. Фильтр AIS может принимать решение о применении фильтра в зависимости от режима предсказания для текущего PU. Фильтрация AIS может выполняться для опорных пикселов текущего блока с использованием режима предсказания для PU и информации о фильтре AIS, полученной от устройства кодирования видеоданных. Если режим предсказания для текущего блока является режимом, где фильтрация AIS не применяется, фильтр AIS можно не применять.
Если режим предсказания для PU является режимом предсказания с выполнением внутрикадрового предсказания на основании значений пикселов, полученных интерполяцией опорных пикселов, модуль интерполяции опорных пикселов может генерировать опорные пикселы в единицах дробных пикселей меньших, чем целый пиксел (т.е. полный пиксел) путем интерполяции опорных пикселов. Если режим предсказания текущего PU является режимом предсказания с генерированием блока предсказания без интерполяции опорных пикселов, опорные пикселы можно не интерполировать. Фильтр DC может генерировать блок предсказания посредством фильтрации, если режим предсказания для текущего блока является режимом DC.
Реконструированный блок или изображение может быть передан в модуль 240 фильтрации. Модуль 240 фильтрации содержит фильтр подавления блочности, модуль смещения и ALF.
Устройство кодирования видеоданных может предоставлять информацию о том, применен ли фильтр подавления блочности к соответствующему блоку или изображению, и информацию о применении сильного фильтра или слабого фильтра при использовании фильтра подавления блочности. В фильтр подавления блочности устройства кодирования видеоданных из устройства кодирования видеоданных может быть передана информация о фильтре подавления блочности, и он может выполнять фильтрацию подавления блочности в отношении соответствующего блока.
Модуль смещения может применять смещение к реконструированному изображению на основании информации о типе смещения и значении смещения, примененных к изображению при операции кодирования.
ALF может быть применен к CU на основании информации о применении ALF, информации о коэффициентах ALF и т.д., полученной от устройства кодирования. Информация об ALF может быть включена и передана в отдельном наборе параметров.
Память 245 может хранить реконструированное изображение или блок для использования в качестве опорного изображения или опорного блока и передавать реконструированное изображение в модуль вывода.
Как описано выше, в вариантах осуществления изобретения, термин «блок кодирования» используют для блока для кодирования в целях удобства описания. Однако термин «блок кодирования» можно также использовать для блока для декодирования.
Далее на фиг. 3-8 будут проиллюстрированы способы сканирования, основанные на режимах предсказания и режимах деления в соответствии с примерными вариантами осуществления настоящего изобретения, реализуемые в соответствии с функциями модулей устройства кодирования и устройства декодирования, описанных выше на фиг. 1 и 2, которые подпадают в границы охраны настоящего изобретения.
На фиг. 3 схематично показаны способы сканирования коэффициентов в соответствии с настоящим изобретением.
Как показано на фиг. 3, способы сканирования могут включать горизонтальное сканирование 310, вертикальное сканирование 320, сканирование 330 зигзагом или вертикально-диагональное сканирование 340. В данном случае один из этих способов сканирования, показанных на фиг. 3, можно использовать на основании формы деления PU, и двумерный блок квантованных коэффициентов преобразования может быть заменен на одномерный вектор коэффициентов преобразования посредством сканирования.
Горизонтальное сканирование 310, сканирующее коэффициенты преобразования в горизонтальном направлении, может быть применено, например, если PU является делением, являющимся вертикально ориентированным блоком, таким как блок N×2N. Вертикально ориентированный блок с большой вероятностью включает текстуру вертикального компонента, где коэффициенты преобразования с большой вероятностью распределяются в горизонтальном направлении. Таким образом, порядок сканирования, показанный в способе 310 на фиг. 3, может быть применен к сканированию коэффициентов преобразования.
Вертикальное сканирование 320, сканирующее коэффициенты преобразования в вертикальном направлении, может быть применено, например, если PU является делением, являющимся горизонтально ориентированным блоком, таким как блок 2N×N. Горизонтально ориентированный блок с большой вероятностью включает текстуру горизонтального компонента, в котором коэффициенты преобразования с большой вероятностью распределяются в вертикальном направлении. Таким образом, порядок сканирования, показанный в способе 320 на фиг. 3, может быть применен к сканированию коэффициентов преобразования.
Сканирование 330 зигзагом или вертикально-диагональное сканирование 340 может быть применени, если PU не обладает выраженной анизотропией (направленностью) или определенным компонентом текстуры. Например, сканирование 330 зигзагом или вертикально-диагональное сканирование 340 может быть применено к квадратному блоку 2N×2N или N×N.
На фиг. 3 в качестве примеров осуществления настоящего изобретения приведены способы сканирования, и настоящее изобретение ими не ограничивается. Альтернативные способы сканирования, выполняемые в другом порядке, также могут быть использованы наряду со способами сканирования на фиг. 3.
Как описано выше, если PU является делением, таким как блок Nx2N или блок 2NxN, эти блоки могут с большой вероятностью обладать определенным компонентом текстуры или сильной анизотропией. Соответственно, в зависимости от формы деления PU используют горизонтальное сканирование или вертикальное сканирование. Однако несмотря на то, что PU является делением, таким как блок N×2N или блок 2N×N, эти блоки могут обладать незначительной анизотропией или не содержать определенный компонент текстуры. В таком случае использование определенных способов сканирования, например, горизонтального сканирования блока N×2N и вертикального сканирования блока 2N×N, может не быть эффективным. Таким образом, требуется способ эффективного сканирования и кодирования коэффициентов преобразования.
На фиг. 4 показан способ определения способа сканирования и кодирования информации о нем на основании режима деления PU в соответствии с примерным вариантом осуществления настоящего изобретения.
Как показано на фиг. 4, одиночный CU в режиме межкадрового предсказания может быть разделен на PU одинакового размера или разных размеров. Например, CU может быть разделен на блок 400 2N×N, блок 410 N×2N, блок 420 2N×2N или блок 430 N×N. Режимы деления PartMode PU могут быть определены на основании размеров разделенных PU.
Режимы деления PartMode PU могут включать режим PART_2N×N, в котором CU разделяют на блоки 400 2N×N, режим PART_N×2N, в котором CU разделяют на блоки 410 N×2N, режим PART_2N×2N, в котором CU разделяют на блоки 420 2N×2N и режим PART_N×N, в котором CU разделяют на блоки 430 N×N.
В настоящем варианте осуществления изобретения способ сканирования определяют на основании режима деления PU, в котором может быть учтена форма деления режима деления. Иными словами, могут быть получены возможные способы сканирования с учетом форм деления блоков PU, среди которых способ сканирования может быть определен на основании RDO.
Если режим деления указывает на горизонтально ориентированную форму, например, режим деления является режимом PART_2N×N, в котором CU разделен на блоки 400 2N×N, блоки с вероятностью могут содержать определенный компонент текстуры или обладать анизотропией (например, горизонтальный компонент текстуры или коэффициенты преобразования, распределенные в вертикальном направлении). Как возможный способ сканирования может быть определено вертикальное сканирование с учетом такой формы деления. Также как возможный способ сканирования может быть определено сканирование зигзагом (или вертикально-диагональное сканирование), учитывая, что блоки с вероятностью могут не содержать определенного компонента текстуры или обладать анизотропией. Иными словами, для режима деления горизонтально ориентированной формы из двух возможных способов сканирования, а именно вертикального сканирования и сканирования зигзагом (или вертикально-диагонального сканирования), может быть выбран способ сканирования, имеющий минимальную RDO.
В то же время, если режим деления указывает на вертикально ориентированную форму, например, режим деления является режимом PART_N×2N, в котором CU разделен на блоки 410 N×2N, блоки с вероятностью могут содержать определенный компонент текстуры или обладать анизотропией (например, вертикальный компонент текстуры или коэффициенты преобразования, распределенные в горизонтальном направлении). Как возможный способ сканирования может быть определено горизонтальное сканирование с учетом такой формы деления. Также как возможный способ сканирования может быть определено сканирование зигзагом (или вертикально-диагональное сканирование), учитывая, что блоки с вероятностью могут не содержать определенного компонента текстуры или обладать анизотропией. Иными словами, для режима деления вертикально ориентированной формы из двух возможных способов сканирования, а именно горизонтального сканирования и сканирования зигзагом (или вертикально-диагонального сканирования), может быть выбран способ сканирования, имеющий минимальную RDO.
Между тем, для режима деления квадратной формы, например, режима PART_2N×2N, в котором CU разделен на блоки 420 2N×2N, или режима PART_N×N, в котором CU разделен на блоки 430 N×N, может быть использовано сканирование зигзагом (или вертикально-диагональное сканирование).
В таблице 1 представлены доступные способы сканирования в соответствии с режимами деления PU в соответствии с примерным вариантом осуществления настоящего изобретения. Здесь в режиме PART_2N×N и режиме PART_N×2N может быть выбран один способ сканирования с учетом RDO двух возможных способов сканирования.
Когда способ сканирования определен на основании режима деления PU, как описано выше, коэффициенты преобразования могут быть просканированы с использованием определенного таким образом способа сканирования. Информация об определенном способе сканирования может быть закодирована и передана в устройство декодирования. Информацию о способе сканирования можно указать с использованием флага, например, флага isZigZagScanFlag, указывающего, используется ли сканирование зигзагом.
Например, когда режим деления PU является режимом PART_2N×N, информацию об определенном таким образом способе сканирования вертикальным сканированием и сканированием зигзагом (или вертикально-диагональным сканированием) можно закодировать с использованием флага, и информацию о флаге можно передать в устройство декодирования. В режиме PART_2N×N флаг isZigZagScanFlag может быть установлен равным 1, если определено выполнение сканирования зигзагом, и флаг isZigZagScanFlag может быть установлен равным 1, если определено выполнение вертикального сканирования. В то же время, если режим деления PU является режимом PART_N×2N, информацию об определенном таким образом способе сканирования горизонтальным сканированием и сканированием зигзагом (или вертикально-диагональным сканированием) можно закодировать с использованием флага, например, флага isZigZagScanFlag, и информацию о флаге можно передать в устройство декодирования.
На фиг. 5 показан способ определения способа сканирования и кодирования информации о нем в делении асимметричного перемещения (asymmetric motion partition, AMP) в соответствии с примерным вариантом осуществления настоящего изобретения.
Как описано выше, одиночный CU в режиме межкадрового предсказания может быть разделен на PU одинакового размера или разных размеров. Как показано на фиг. 5, блок 64×64 может быть разделен на блок 16×64, блок 48×64, блок 64×16 или блок 64×48, т.е. блоки различной формы. Этот режим деления называют AMP. AMP можно применять к делению CU для повышения эффективности кодирования, если изображение содержит нерегулярные структуры изображения.
Слева направо на фиг. 5 AMP содержит режим PART_nL×2N, в котором CU разделен на блоки 500 размером nL×2N, режим PART_nR×2N, в котором CU разделен на блоки 510 размером nR×2N, режим PART_2N×nU, в котором CU разделен на блоки 520 размером 2N×nU, и режим PART_2N×nD, в котором CU разделен на блоки 530 размером 2N×nD. Здесь в режиме PART_nL×2N и режиме PART_nR×2N PU может иметь размер 501 и 512 1/2N×2N или размер 502 и 511 3/2N×2N. В режиме PART_2N×nU и PART_2N×nD PU может иметь размер 521 и 532 2N×1/2N или размер 522 и 531 2N×3/2N.
Как описано на фиг. 4, в соответствии с вариантом осуществления настоящего изобретения способ сканирования может быть определен на основании режима деления, иными словами, размера разделенного блока в AMP. Иными словами, возможные способы сканирования могут быть получены с учетом форм деления AMP, среди которых способ сканирования можно определять на основании RDO.
Например, для вертикально ориентированного блока (блока, чья высота больше, чем его ширина) в режиме 1/2N×2N, такого как левый блок 501 блока 500 nL×2N и правый блок 512 блока 510 блока nR×2N, как возможные способы сканирования могут быть определены горизонтальное сканирование с учетом определенного компонента текстуры или анизотропии, которыми может обладать вертикально ориентированный блок (например, вертикальный компонент текстуры и коэффициенты преобразования, распределенные в горизонтальном направлении), или сканирование зигзагом (или вертикально-диагональное сканирование) с учетом того, что вертикально ориентированный блок не обладает определенным компонентом текстуры или анизотропией. В данном случае из двух возможных способов сканирования можно выбирать способ сканирования, обладающий минимальной RDO.
В то же время, для горизонтально ориентированного блока (блока, чья ширина больше, чем его высота) в режиме 2N×1/2N, такого как верхний блок 521 блока 520 2N×nU и нижний блок 532 блока 530 2N×nD, как возможные способы сканирования могут быть определены вертикальное сканирование с учетом определенного компонента текстуры или анизотропии, которыми может обладать горизонтально ориентированный блок (например, горизонтальная текстура или коэффициенты преобразования, распределенные в вертикальном направлении), или сканирование зигзагом (или вертикально-диагональное сканирование) с учетом того, что горизонтально ориентированный блок не обладает определенным компонентом текстуры или анизотропией. В данном случае из двух возможных способов сканирования можно выбирать способ сканирования, обладающий минимальной RDO.
Между тем, сканирование зигзагом (или вертикально-диагональное сканирование) можно использовать для  разделенных частей nL×2N 500, nR×2N 510, 2N×nU 520 и 2N×nD 530 (т.е. режимов 3/2N×2N и 2N×3/2N). Иными словами, сканирование зигзагом (или вертикально-диагональное сканирование) можно использовать для правого деления 502 блока 500 nL×2N, левого деления 512 блока 510 nR×2N, нижнего деления 522 блока 520 2N×nU и верхнего деления 53 блока 530 2N×nD.
Когда способ сканирования определен на основании режима AMP, как описано выше, информация об определенном таким образом способе сканирования может быть закодирована. Например, как описано выше на фиг. 4, в режиме PART_nL×2N и режиме PART_nR×2N и для вертикально ориентированных блоков 501 и 512 (т.е. режима 1/2N×2N) флаг isZigZagScanFlag может быть установлен равным 1, если используется сканирование зигзагом, и флаг isZigZagScanFlag может быть установлен равным 0, если используется горизонтальное сканирование. В режимах PART_2N×nU и PART_2N×nD и для горизонтально ориентированных блоков 521 и 532 (т.е. режима 2N×1/2N) флаг isZigZagScanFlag может быть установлен равным 1, если используется сканирование зигзагом, и флаг isZigZagScanFlag может быть установлен равным 0, если используется вертикальное сканирование. Эта информация о флаге может быть закодирована и передана в устройство декодирования.
На фиг. 6 показан способ определения способа сканирования и кодирования информации о нем для внутрикадрового предсказания на малых расстояниях (short distance intra prediction, SDIP) в соответствии с примерным вариантом осуществления настоящего изобретения.
SDIP относится к способу деления CU на PU размером 2N×2N, PU размером N×N, PU размером 1/2N×2N или PU размером 2N×1/2N и выполнению внутрикадрового предсказания для разделенного PU. При выполнении SDIP расстояние между опорным пикселом внутрикадрового предсказания и целевым опорным пикселом может быть уменьшено в сравнении с обычным внутрикадровым предсказанием с использованием квадратного PU. Таким образом, разностное значение, являющееся значением разности между оригинальным пикселом и предсказанным целевым пикселом (предсказанным пикселом), уменьшается, что приводит к повышению эффективности кодирования.
Как показано на фиг. 6, один CU может быть разделен на PU с различными размерами в зависимости от свойств изображения. Например, CU размером 32×32 можно разделять на четыре PU 610, 620, 630 и 640 размером 16×16. PU 610 размером 16×16 можно дополнительно разделять на четыре PU 611, 612, 613 и 615 размером 4×16, из которых PU 611 размером 4×16 можно дополнительно разделять на четыре PU 611-1, 611-2, 611-3 и 611-4 размером 1×16.
Таким же образом PU 630 размером 16×16 можно дополнительно разделять на четыре PU 8×8. PU 631 размером 8×8 можно дополнительно разделять на четыре PU 631-1, 631-2, 631-3 и 631-4 размером 2×8. Также PU 632 размером 8×8 можно дополнительно разделять на четыре PU размером 4×4, из которых PU 632-1 размером 4×4 можно дополнительно разделять на четыре PU размером 1×4.
Как описано выше со ссылкой на фиг. 4 и 5, способ сканирования определяют на основании режима деления PU в SDIP, иными словами, размера PU в настоящем варианте осуществления изобретения. Иными словами, возможные способы сканирования получают с учетом форм деления PU, среди которых определяют способ сканирования на основании RDO.
Например, если режимом деления PU в SDIP является режим 1/2N×2N, который имеет вертикально ориентированную форму деления, такую как PU 611, 612, 613 и 614 размером 4×16, PU 631-1, 631-2, 631-3 и 631-4 размером 2×8 и PU размером 1×4, как возможные способы сканирования могут быть определены горизонтальное сканирование и сканирование зигзагом (или вертикально-диагональное сканирование) с учетом определенного компонента текстуры или анизотропии (например, вертикальная текстура и коэффициенты преобразования, распределенные в горизонтальном направлении). В данном случае из двух возможных способов сканирования можно выбрать способ сканирования, обладающий минимальной RDO.
В то же время, если режимом деления PU в SDIP является режим 2N×1/2N, имеющий горизонтально ориентированную форму деления, такую как PU размером 16×4, PU размером 8×2 и PU размером 4×1, как возможные способы сканирования могут быть определены вертикальное сканирование и сканирование зигзагом (или вертикально-диагональное сканирование) с учетом определенного компонента текстуры или анизотропии (например, горизонтальная текстура и коэффициенты преобразования, распределенные в вертикальном направлении). В данном случае из двух возможных способов сканирования можно выбрать способ сканирования, обладающий минимальной RDO.
Информация об определенном таким образом способе сканирования может быть закодирована с использованием флага, например, флага isZigZagScanFlag, и передана в устройство декодирования, как описано выше на фиг. 4 и 5.
На фиг. 7 показана обобщенная схема способа кодирования видеоданных в соответствии с настоящим изобретением. Каждый шаг на фиг. 7 может выполняться соответствующими модулями устройства кодирования видеоданных на фиг. 1.
Как показано на фиг. 7, CU текущего изображения вводится в устройство кодирования (S700). Если введенный CU является блоком CU режима межкадрового предсказания, CU режима межкадрового предсказания («межкадровый CU») может содержать множество блоков PU режима межкадрового предсказания («межкадровый PU») и обладать одним из двух режимов предсказания (PreMode), режимом пропуска («MODE_SKIP») и межкадровым режимом («MODE_INTER»).
CU в режиме MODE_SKIP более не разделяют на меньшие PU, и для него размещают информацию о перемещении о PU в режиме деления PartMode в PART_2N×2N.
CU в режиме MODE_NTER может быть разделен на PU четырех типов, в которых в устройство декодирования посредством синтаксических конструкций на уровне CU может быть передана информация о том, что режим предсказания является режимом MODE_NTER (PredMode==MODE_INTER), и информация о том, какой из режимов деления PART_2N×2N, PART_2N×N, PART_N×2N и PART_N×N используется (т.е. информация о том, что PartMode==PART_2N×2N, PartMode==PART_2N×N, PartMode==PART_N×2N или PartMode==PART_N×N).
Устройство кодирования выполняет предсказание перемещения для текущего межкадрового PU (S710). Когда CU разделен на множество PU, вводят кодируемый в настоящий момент PU («текущий PU»). Устройство кодирования может выполнять предсказание перемещения для текущего PU с использованием предыдущего кадра, последующего кадра или предыдущего и последующего кадров по отношению к текущему кадру. Информация о перемещении для текущего PU, такая как вектор перемещения, индекс опорного изображения и индекс направления предсказания, могут быть получены посредством предсказания перемещения.
Устройство кодирования может определять значение предсказания перемещения текущего PU в режиме межкадрового предсказания (S720). Информацию о перемещении для текущего PU не передают устройству декодирования в неизменном виде, однако разностные значения от предсказанных значений, полученных от соседних блоков во времени и пространстве, передают в устройство декодирования для повышения эффективности сжатия. Способ предсказания перемещения может включать режим слияния и режим AMVP, которые могут быть использованы для определения значения предсказания перемещения.
В режиме слияния кандидаты на слияние получают на основании информации о перемещении блоков, соседних с текущим PU во времени и пространстве. Если среди кандидатов имеется кандидат, имеющий ту же информацию о перемещении, что и текущий PU, устройство кодирования может передать флаг Merge_Flag, указывающий на использование режима слияния, и индекс кандидата, имеющего ту же информацию о перемещении, что и текущий PU, в устройство декодирования. Конкретно, устройство кодирования определяет значение доступного временного предсказателя вектора перемещения (motion vector predictor, MVP) с использованием индекса refldxLX опорного изображения, указывающего на опорное изображение, полученное при предсказании перемещения, и создает список кандидатов на слияние (MergeCandList). Если в списке имеется кандидат, имеющий ту же информацию о перемещении, что и текущий PU, устройство кодирования назначает флагу Merge_Flag значение 1 и кодирует индекс Merge_Idx кандидата.
uiotsAD
В режиме AMVP устройство кодирования определяет кандидатов AMVP на основании информации о перемещении для блоков, соседних с текущим PU во времени и пространстве. Иными словами, устройство кодирования определяет значение предсказателя вектора перемещения mvpLX для компонента яркостного канала. Конкретно, устройство кодирования определяет пространственные векторы-кандидаты перемещения (MVP) соседних PU для текущего PU. Устройство кодирования определяет временной вектор-кандидат перемещения связанного блока с использованием индекса RefldxLX опорного изображения, полученного при предсказании перемещения. Устройство кодирования создает список MVP mvpListLX на основании пространственных векторов-кандидатов перемещения и временного вектора-кандидата перемещения. Если большинство векторов перемещения имеет одинаковое значение в списке MVP, устройство кодирования удаляет векторы перемещения, отличные от вектора перемещения, имеющего наибольший приоритет, из списка MVP. В данном случае векторы перемещения могут обладать приоритетом в порядке векторов (mvLXA) перемещения левых соседних блоков с текущим PU, векторов (mvLXB) перемещения верхних соседних блоков с текущим PU и вектора (mvLXCol) перемещения временного связанного блока, являющихся доступными. Из списка MVP выбирают вектор перемещения наилучшего предсказателя среди векторов-кандидатов перемещения в качестве предсказанного значения mvpLX. Наилучший предсказатель является блоком-кандидатом, минимизирующим функцию стоимости соотношения между скоростью и искажениями (rate-distortion, RD), например, J с учетом стоимости передачи бита и суммы абсолютной разницы (sum of absolute difference, SAD).
Устройство кодирования кодирует информацию о перемещении для текущего PU (S730). Когда для предсказания перемещения текущего PU используется режим слияния, если кандидат, имеющий ту же информацию о перемещении, что и текущий PU, присутствует среди кандидатов на слияние, устройство кодирования указывает на то, что к текущему PU применяют режим слияния, и кодирует и передает флаг Merge_Flag, указывающий на использование режима слияния, и индекс Merge_Idx кандидата, имеющего ту же информацию о перемещении, что и текущий PU, в устройство декодирования.
Если для предсказания перемещения текущего PU используют режим AMVP, устройство кодирования определяет кандидата, минимизирующего функцию стоимости, среди кандидатов AMVP путем сравнения информации о векторе перемещения кандидатов AMVP с информацией о векторе перемещения текущего PU. Устройство кодирования выполняет компенсацию перемещения с использованием кандидата, минимизирующего функцию стоимости, и разностного значения между информацией о перемещении кандидата, минимизирующего функцию стоимости, и информацией о перемещении текущего PU, тем самым получая разностный сигнал. Иными словами, устройство кодирования может выполнять энтропийное кодирование разности между вектором перемещения текущего PU и вектором перемещения наилучшего предсказателя.
Устройство кодирования получает разностный сигнал путем определения разности в пикселах между значением пиксела текущего блока и значением пиксела блока предсказания посредством компенсации перемещения (S740) и преобразует разностный сигнал (S750).
Разностный сигнал кодируется путем преобразования, в котором для преобразования может быть использовано ядро транскодирования. Ядро транскодирования может иметь форму 2×2, 4×4, 8×8, 16×16, 32×32 или 64×64, при этом ядро, используемое для преобразования, может быть определено заблаговременно. В данном случае коэффициенты преобразования генерируются путем преобразования и формируют двумерный блок. Например, коэффициенты C преобразования для блока n×n могут быть выведены по формуле 1.
[формула 1]
В данном случае C(n, n) - матрица n×n коэффициентов преобразования, T(n, n) - матрица n×n ядра преобразования, а B(n, n) - матрица n×n разностного блока.
Коэффициенты преобразования, вычисленные по формуле 1, квантуют.
На основании RDO устройство кодирования определяет, что именно передавать: разностный сигнал или коэффициенты преобразования (S760). Если предсказание выполнено надлежащим образом, разностный сигнал может быть передан в неизмененном виде, без транскодирования. В данном случае устройство кодирования может сравнивать функции стоимости до/после транскодирования и выбирать способ с минимальной стоимостью.
Устройство кодирования может передавать тип сигнала, предназначенного для передачи (например, разностный сигнал или коэффициенты преобразования), в отношении текущего блока и передавать сигнал в устройство декодирования. Например, если передача разностного сигнала в неизменном виде без транскодирования имеет минимальную стоимость, устройство кодирования может передать разностный сигнал в отношении текущего блока. Если передача коэффициентов преобразования имеет минимальную стоимость, устройство кодирования может передать коэффициенты преобразования в отношении текущего блока.
Устройство кодирования сканирует коэффициенты преобразования (S770). Устройство кодирования посредством сканирования преобразует квантованные коэффициенты преобразования формы двумерного блока в коэффициенты преобразования формы одномерного вектора. В данном случае на основании размера PU, иными словами, режима деления PU может быть выбрано горизонтальное сканирование, вертикальное сканирование и сканирование зигзагом (или вертикально-диагональное сканирование) для сканирования коэффициентов преобразования.
Конкретно, на основании форм деления PU могут быть определены возможные режимы (способы) сканирования, среди которых режим сканирования определяют на основании RDO. Если режим деления PU имеет вертикально ориентированную форму деления, в качестве возможных режимов сканирования определяют горизонтальное сканирование и сканирование зигзагом (или вертикально-диагональное сканирование). Если режим деления PU имеет горизонтально ориентированную форму деления, в качестве возможных режимов сканирования определяют вертикальное сканирование и сканирование зигзагом (или вертикально-диагональное сканирование). Затем из возможных режимов сканирования выбирают режим сканирования с минимальной RDO.
В данном случае, как описано выше на фиг. 4 и 6, такие режимы сканирования могут быть применены к режимам деления PU при межкадровом предсказании, например, режимам блока N×2N, блока 2N×N, блока 2N×2N, блока N×N, блока 2N×nU, блока 2N×nD, блока nL×2N и блока nR×2N и режимам деления PU в режиме внутрикадрового предсказания (например, SDIP), например, режимам блока 1/2N×2N, блока 2N×1/2N, блока N×N и блока 2N×2N. В этом отношении соответствующие описания опущены, поскольку уже полностью приведены ранее.
Устройство кодирования может осуществлять энтропийное кодирование передаваемой информации (S780). Иными словами, устройство кодирования может осуществлять энтропийное кодирование сканированных коэффициентов преобразования и информации о режиме предсказания. Закодированная информация может формировать сжатый битовый поток и храниться или передаваться через абстрактный уровень сети (network abstraction layer, NAL).
На фиг. 8 показана обобщенная схема способа декодирования видеоданных в соответствии с настоящим изобретением. Каждый шаг на фиг. 8 может быть выполнен соответствующими модулями устройства декодирования видеоданных на фиг. 2.
Как показано на фиг. 8, устройство декодирования может выполнять энтропийное декодирование принятого битового потока (S800). Устройство декодирования может идентифицировать тип блока по таблице переменной длины кодирования (variable length coding, VLC) для распознавания режима предсказания текущего блока. Дополнительно устройство кодирования может идентифицировать информацию о том, является ли переданная информация о текущем блоке разностным сигналом или коэффициентами преобразования. В зависимости от результата устройство декодирования может получать разностный сигнал или коэффициенты преобразования для текущего блока.
Устройство декодирования может определять способ сканирования (S810). Иными словами, устройство декодирования определяет способ сканирования на основании режима деления PU с использованием информации, переданной из устройства кодирования. Переданная информация может быть флагом, указывающим, используется ли сканирование зигзагом (например, флагом isZigZagScanFlag).
Конкретно, если режим деления PL) имеет вертикально ориентированную форму деления или горизонтально ориентированную форму деления, устройство декодирования декодирует флаг, указывающий на использование сканирования зигзагом, и определяет способ сканирования на основании значения декодированного флага. Если режим деления PU имеет вертикально ориентированную форму деления, устройство декодирования выбирает сканирование зигзагом или горизонтальное сканирование на основании значения декодированного флага. Если режим деления PU имеет горизонтально ориентированную форму деления, устройство декодирования выбирает сканирование зигзагом или вертикальное сканирование на основании значения декодированного флага. Например, если флаг isZigZagScanFlag равен 1, выбирают сканирование зигзагом, тогда как горизонтальное сканирование (для режима деления, имеющего вертикально ориентированную форму деления)/вертикальное сканирование (для режима деления, имеющего горизонтально ориентированную форму деления) может быть использовано, если флаг isZigZagScanFlag равен 0.
В данном случае, как описано выше на фиг. 4 и 6, эти способы сканирования могут применяться для режимов деления PU при межкадровом предсказании, например, режимов блока N×2N, блока 2N×N, блока 2N×2N, блока N×N, блока 2N×nU, блока 2N×nD, блока nL×2N и блока nR×2N и режимов деления PU при внутрикадровом предсказании (например, SDIP), например, режимов блока 1/2N×2N, блока 2N×1/2N, блока N×N и блока 2N×2N. В этом отношении соответствующие описания опущены, поскольку уже полностью приведены ранее.
Между тем, сканирование зигзагом может использоваться для режима деления, имеющего квадратную форму, такого как режим блока 2N×2N и блока N×N или для правого деления режима блока nL×2N, левого деления режима блока nR×2N, нижнего деления режима блока 2N×nU или верхнего деления режима блока 2N×nD как больших частей деления в AMP.
Устройство декодирования может выполнять обратное сканирование прошедшего энтропийное декодирование разностного сигнала или коэффициентов преобразования (S820). Устройство декодирования может генерировать разностный блок посредством обратного сканирования в случае разностного сигнала и может генерировать двумерный блок преобразования посредством обратного сканирования в случае коэффициентов преобразования. Когда блок преобразования сгенерирован, устройство декодирования может деквантовать и выполнить обратное преобразование блока преобразования, тем самым получая разностный блок. Операция получения разностного блока путем обратного преобразования блока преобразования выражена в формуле 2.
[формула 2]
В данном случае B(n, n) - матрица n×n разностного блока, T(n, n) - матрица n×n ядра преобразования и C(n, n) - матрица n×n коэффициентов преобразования.
Устройство декодирования может выполнять межкадровое предсказание (S830). Устройство декодирования может декодировать информацию о режиме предсказания и выполнять межкадровое предсказание в соответствии с режимом предсказания.
Например, если режим PredMode предсказания является режимом слияния (например, PredMode==MODE_SKIP && Merge_Flag==1), устройство декодирования может определять вектор mvLX перемещения компоненты яркостного канала и индекс refldxLX опорного изображения для режима слияния. С этой целью устройство декодирования может определять кандидатов на слияние по делениям PU (т.е. блоков предсказаний), соседних с текущим PU в пространстве. Устройство декодирования может определять индекс refldxLX опорного изображения с тем, чтобы получить временного кандидата на слияние для текущего PU. Устройство декодирования может определять значение доступного временного предсказателя вектора перемещения (motion vector predictor, MVP) с использованием определенного таким образом индекса опорного изображения. Если количество NumMergeCand кандидатов в списке MergeCandList кандидатов на слияние, составленном из пространственных кандидатов на слияние и временного кандидата на слияние, равно 1, устройство декодирования назначает индекс (Merge_Idx) кандидата на слияние равным 1. В противном случае устройство декодирования может назначить индекс кандидата на слияние равным принятому индексу слияния. Устройство декодирования определяет вектор (mvLX) перемещения кандидата на слияние, указанного принятым индексом слияния и индексом (refldxLX) опорного изображения. Устройство декодирования может использовать определенные таким образом вектор перемещения и индекс опорного изображения для компенсации перемещения.
Если режим PredMode предсказания является режимом AMVP, устройство декодирования может определять индекс (refldxLX) опорного изображения для текущего PU и может определять значение (mvpLX) предсказателя вектора перемещения компонента яркостного канала с использованием индекса опорного изображения. Конкретно, устройство декодирования может определять пространственные векторы-кандидаты перемещения (MVP) соседних PU для текущего PU и определять временной вектор-кандидат перемещения (MVP) связанного блока, на который указывает индекс опорного изображения. Устройство декодирования может генерировать список MVP (mvpListLX) на основании определенных таким образом пространственных векторов-кандидатов перемещения и временного вектора-кандидата перемещения. Если множество векторов перемещения в списке MVP имеет одинаковое значение, устройство декодирования может удалить векторы перемещения, отличающиеся от вектора перемещения с наибольшим приоритетом, из списка MVP. В данном случае, как описано выше, векторы перемещения обладают приоритетом в порядке вектора (mvLXA) перемещения левого соседнего блока с текущим PU, вектора (mvLXB) перемещения верхнего соседнего блока с текущим PU и вектора (mvLXCol) перемещения временного связанного блока, которые являются доступными. Если количество NumMVPCand(LX) кандидатов MVP в списке MVP равно 1, устройство декодирования может установить индекс mvpldx кандидата MVP равным 0. Если количество кандидатов MVP равно 2 или более, устройство декодирования может установить индекс mvpldx кандидата MVP равным принятому значению индекса. Устройство декодирования может определять вектор перемещения, указанный mvpldx, среди кандидатов MVP в списке MVP (mvpListLX) как значение mvpLX предсказателя вектора перемещения. Устройство декодирования может определять вектор mvLX перемещения с использованием значения mvpLX предсказателя вектора перемещения и формулы 3.
[формула 3]
В данном случае mvLX[0], mvdLX[0] и mvpLX[0] - компоненты x информации о векторе LX перемещения (т.е. компоненты x mvLX, mvdLX и mvpLX), а mvLX[1], mvdLX[1] и mvpLX[1] - компоненты у информации о векторе LX перемещения (т.е. компоненты у mvLX, mvdLX и mvpLX).
Устройство декодирования может определить реконструированный сигнал (S840). Например, устройство декодирования может добавлять разностный сигнал к сигналу предыдущего кадра (т.е. предсказанный сигнал) для генерирования реконструированного сигнала. Устройство декодирования может добавлять сигнал предсказания предыдущего кадра, который получен компенсацией перемещения с использованием определенного вектора перемещения, к декодированному разностному сигналу для текущего PU, тем самым генерируя реконструированный сигнал.
Хотя способы были описаны в виде последовательности этапов или блоков на основании обобщенных схем вышеупомянутых вариантов осуществления изобретения, настоящее изобретение не ограничивается вышеупомянутой последовательностью этапов. Некоторые этапы могут выполняться в порядке, отличном от описанного выше, или одновременно. Также специалистам в данной области должно быть понятно, что этапы, показанные на обобщенных схемах, не являются ограничивающими, и в схему могут включаться дополнительные этапы, либо один или более этапов могут быть удалены из схемы без влияния на объем настоящего изобретения.
Тогда как было показано и описано со ссылкой на сопроводительные чертежи несколько примерных вариантов осуществления изобретения, специалистам в данной области должно быть очевидно, что на основании приведенных выше описаний могут сделаны различные модификации и вариации без отхода от сущности настоящего изобретения. Примерные варианты осуществления изобретения приведены не для ограничения принципа настоящего изобретения, но для иллюстрации настоящего изобретения и не для ограничения пределов сущности настоящего изобретения. Пределы сущности настоящего изобретения определены приложенной формулой изобретения, и все различия в пределах сущности предполагают включение их в приложенную формулу настоящего изобретения.