СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ ИНТРА-ПРЕДСКАЗАНИЯ В СИСТЕМЕ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ
METHOD AND DEVICE FOR IMAGE DECODING BASED ON INTRA-PREDICTIONS IN THE IMAGE CODING SYSTEM

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[1] Настоящее изобретение относится к технологии кодирования изображения и, более конкретно, к способу и устройству декодирования изображения в соответствии с интра-предсказанием в системе кодирования изображения.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[2] Потребность в изображениях высокого качества с высоким разрешением, таких изображения HD (высокой четкости) и изображения UHD (ультра-высокой четкости), возросла во многих областях. Поскольку данные изображения имеют высокое разрешение и высокое качество, количество информации или битов, которые требуется передавать, увеличивается относительно данных унаследованного изображения. Поэтому, когда данные изображения передаются с использованием среды передачи, такой как обычная проводная/беспроводная широкополосная линия, или данные изображения сохраняются с использованием существующих носителей хранения, затраты на передачу и затраты на носители хранения возрастают.
[3] Соответственно, существует потребность в высокоэффективном методе сжатия изображения для эффективной передачи, хранения и воспроизведения информации изображений высокого разрешения и высокого качества.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[4] Настоящее изобретение обеспечивает способ и устройство для повышения эффективности кодирования изображения.
[5] Настоящее изобретение дополнительно обеспечивает способ и устройство интра-предсказания для генерации опорной выборки на основе множества соседних выборок текущего блока и выполнения операций на основе опорной выборки.
[6] В одном аспекте, обеспечен способ декодирования изображения, выполняемый устройством декодирования. Способ включает в себя получение режима интра-предсказания текущего блока; получение множества строк верхних соседних выборок и множества столбцов левых соседних выборок текущего блока; получение одной строки верхних опорных выборок на основе верхних соседних выборок; получение одного столбца левых опорных выборок на основе левых соседних выборок; и генерацию выборки предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания.
[7] В другом аспекте, обеспечено устройство декодирования для декодирования изображения. Устройство декодирования включает в себя модуль энтропийного декодирования для получения информации предсказания на текущем блоке; и модуль предсказания для получения режима интра-предсказания текущего блока, получение множества строк верхних соседних выборок и множества столбцов левых соседних выборок текущего блока, получение одной строки верхних опорных выборок на основе верхних соседних выборок, получение одного столбца левых опорных выборок на основе левых соседних выборок, и генерацию выборки предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания.
[8] В другом аспекте, обеспечен способ кодирования видео, выполняемый устройством кодирования видео. Способ включает в себя определение режима интра-предсказания текущего блока; получение множества строк верхних соседних выборок и множества столбцов левых соседних выборок текущего блока; получение одной строки верхних опорных выборок на основе верхних соседних выборок; получение одного столбца левых опорных выборок на основе левых соседних выборок; генерацию выборки предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания; и генерацию, кодирование и вывод информации предсказания текущего блока.
[9] В другом аспекте, обеспечено устройство кодирования видео. Устройство кодирования включает в себя модуль предсказания для определения режима интра-предсказания текущего блока, получение множества строк верхних соседних выборок и множества столбцов левых соседних выборок текущего блока, извлечение одной строки верхних опорных выборок на основе верхних соседних выборок, извлечение одного столбца левых опорных выборок на основе левых опорных выборок, и генерацию выборки предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания; и модуль энтропийного кодирования для генерации, кодирования и вывода информации предсказания текущего блока.
[ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫ]
[10] В соответствии с настоящим изобретением, опорная выборка текущего блока может быть получена на основе множества соседних выборок, и посредством выполнения интра-предсказанием на основе опорной выборки точность предсказания текущего блока может быть улучшена, тем самым повышая в целом эффективность кодирования.
[11] В соответствии с настоящим изобретением, опорная выборка может быть получена на основе множества соседних выборок, расположенных в направлении предсказания режима интра-предсказания текущего блока, и посредством выполнения интра-предсказания на основе опорной выборки точность предсказания текущего блока может быть улучшена, тем самым повышая в целом эффективность кодирования.
[12] В соответствии с настоящим изобретением, веса множества соседних выборок могут быть получены, опорная выборка может быть получена на основе весов и соседних выборок, и посредством выполнения интра-предсказания на основе опорной выборки точность предсказания текущего блока может быть улучшена, тем самым повышая в целом эффективность кодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[13] Фиг. 1 является схематичной диаграммой, иллюстрирующей конфигурацию устройства кодирования видео, в котором применимо настоящее изобретение.
[14] Фиг. 2 является схематичной диаграммой, иллюстрирующей конфигурацию устройство декодирования видео, в котором применимо настоящее изобретение.
[15] Фиг. 3 иллюстрирует левые соседние выборки и верхние соседние выборки, используемые для интра-предсказания текущего блока.
[16] Фиг. 4 иллюстрирует пример получения опорной выборки на основе множества соседних выборок текущего блока.
[17] Фиг. 5 иллюстрирует пример получения опорной выборки на основе множества соседних выборок текущего блока.
[18] Фиг. 6 иллюстрирует пример генерации верхних опорных выборок текущего блока на основе верхних соседних выборок, включающих в себя дополнительно сгенерированные верхние опорные выборки.
[19] Фиг. 7 иллюстрирует пример получения соседней выборки, расположенной в положении дробной выборки.
[20] Фиг. 8 иллюстрирует пример генерации верхних опорных выборок текущего блока на основе верхних соседних выборок, включающих в себя дополнительно сгенерированные верхние опорные выборки.
[21] Фиг. 9 иллюстрирует пример режимов интра-предсказания с разделением в соответствии с направлением предсказания.
[22] Фиг. 10 иллюстрирует пример генерации верхних опорных выборок текущего блока на основе верхних соседних выборок, включающих в себя дополнительно сгенерированные верхние опорные выборки.
[23] Фиг. 11 схематично иллюстрирует способ кодирования видео устройством кодирования в соответствии с настоящим изобретением.
[24] Фиг. 12 схематично иллюстрирует способ декодирования видео устройством декодирования в соответствии с настоящим изобретением.
ОПИСАНИЕ ПРИМЕРНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[25] Настоящее изобретение может быть модифицировано в различных формах, и его конкретные варианты осуществления будут описаны и проиллюстрированы на чертежах. Однако варианты осуществления не предназначены для ограничения изобретения. Термины, используемые в последующем описании, использованы только для описания конкретных вариантов осуществления, но не предназначены для ограничения изобретения. Выражение в форме единственного числа включает в себя выражение в форме множественного числа, если только явно не указано иное. Такие термины, как ʺвключать в себяʺ и ʺиметьʺ предназначены, чтобы указывать, что признаки, числа, этапы, операции, элементы, компоненты или их комбинации, используемые в последующем описании, существуют и, таким образом, следует понимать, что не исключается возможность существования или добавления одного или более других признаков, чисел, этапов, операций, элементов, компонентов или их комбинаций.
[26] С другой стороны, элементы на чертежах, описанных в изобретении, изображены независимо в целях удобства для пояснения различных конкретных функций, и не означают, что элементы воплощены независимыми аппаратными средствами или независимым программным обеспечением. Например, два или более элементов могут быть скомбинированы, чтобы образовать единый элемент, или один элемент может быть разделен на множество элементов. Варианты осуществления, в которых элементы скомбинированы и/или разделены, принадлежат изобретению без отклонения от принципа изобретения.
[27] Далее, варианты осуществления настоящего изобретения будут описаны детально со ссылкой на приложенные чертежи. Кроме того, одинаковые ссылочные позиции используются для указания подобных элементов на чертежах, и то же самое описание подобных элементов будет опущено.
[28] В настоящей спецификации, в общем, ʺкартинкаʺ (кадр) означает единицу, представляющую изображение в конкретный момент времени, ʺвырезкаʺ является единицей, образующей часть картинки. Одна картинка может состоять из множества вырезок, и термины ʺкартинкаʺ и ʺвырезкаʺ могут смешиваться друг с другом, если того требует ситуация.
[29] ʺПикселʺ или ʺпелʺ может означать минимальную единицу, составляющую одну картинку (или изображение). Кроме того, ʺвыборкаʺ может использоваться в качестве термина, соответствующего пикселу. Выборка может, в общем, представлять пиксел или значение пиксела, может представлять только пиксел (пиксельное значение) компонента яркости и может представлять только пиксел (пиксельное значение) компонента цветности.
[30] Единица указывает базовую единицу обработки изображения. Единица может включать в себя по меньшей мере одно из конкретной области или информации, относящейся к области. Опционально, единица может смешиваться с такими терминами, как блок, область и т.п. В типичном случае, блок M×N может представлять набор выборок или коэффициентов преобразования, упорядоченных в M столбцов и N строк.
[31] Фиг. 1 кратко иллюстрирует структуру устройства кодирования видео, в котором применимо настоящее изобретение.
[32] Со ссылкой на фиг. 1, устройство 100 кодирования видео может включать в себя модуль разделения 105 картинки, модуль предсказания 110, модуль вычитания 115, модуль преобразования 120, модуль квантования 125, модуль переупорядочивания 130, энтропийный кодер 135, процессор 140 остатка, сумматор 150, фильтр 155 и память 160. Процессор 140 остатка может включать в себя модуль обратного квантования 141, модуль обратного преобразования 142.
[33] Модуль разделения 105 картинки может разделять входную картинку по меньшей мере на одну единицу обработки.
[34] В примере, единица обработки может упоминаться как единица кодирования (CU). В этом случае, единица кодирования может рекурсивно разбиваться из наибольшей единицы кодирования (LCU) в соответствии со структурой двоичного дерева квадродерева (QTBT). Например, одна единица кодирования может разбиваться на множество единиц кодирования большей глубины на основе структуры квадродерева и/или структуры двоичного дерева. В этом случае, например, структура квадродерева может применяться первой, а затем может применяться структура двоичного дерева. Альтернативно, структура двоичного дерева может применяться первой. Процедура кодирования в соответствии с настоящим изобретением может выполняться на основе конечной единицы кодирования, которая дальше не разбивается. В этом случае, наибольшая единица кодирования может использоваться как конечная единица кодирования на основе эффективности кодирования или подобного, в зависимости от характеристик изображения, или единица кодирования может рекурсивно разбиваться на единицы кодирования меньшей глубины, как необходимо, и единица кодирования, имеющая оптимальный размер, может использоваться как конечная единица кодирования. Здесь, процедура кодирования может включать в себя такую процедуру, как предсказание, преобразование и восстановление, что будет описано далее.
[35] В другом примере, единица обработки может включать в себя единицу кодирования (CU), единицу предсказания (PU) или единицу преобразования (TU). Единица кодирования может разбиваться из наибольшей единицы кодирования (LCU) в единицы кодирования большей глубины в соответствии со структурой квадродерева. В этом случае, наибольшая единица кодирования может быть непосредственно использована как конечная единица кодирования на основе эффективности кодирования или тому подобного, в зависимости от характеристик изображения, или единица кодирования может рекурсивно разбиваться в единицы кодирования большей глубины, как необходимо, и единица кодирования, имеющая оптимальный размер, может использоваться как конечная единица кодирования. Когда установлена наименьшая единица кодирования (SCU), единица кодирования не может разбиваться в единицы кодирования меньше, чем наименьшая единица кодирования. Здесь, конечная единица кодирования относится к единице кодирования, которая разделена или разбита до единицы предсказания или единицы преобразования. Единица предсказания является единицей, которая разделена из единицы кодирования, и может быть единицей предсказания выборки. Здесь, единица предсказания может быть разделена в подблоки. Единица преобразования может быть разделена из единицы кодирования в соответствии со структурой квадродерева и может быть единицей для получения коэффициента преобразования и/или единицей для получения остаточного сигнала из коэффициента преобразования. Далее, единица кодирования может упоминаться как блок кодирования (CB), единица предсказания может упоминаться как блок предсказания (PB), и единица преобразования может упоминаться как блок преобразования (TB). Блок предсказания или единица предсказания может относиться к конкретной области в форме блока в картинке и может включать массив выборок предсказания. Также, блок преобразования или единица преобразования может относиться к конкретной области в форме блока в картинке и включать в себя коэффициент преобразования или массив остаточных выборок.
[36] Модуль предсказания 110 может выполнять предсказание на целевом блоке обработки (далее, текущий блок) и может генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Единица предсказания, выполняемая в модуле предсказания 110, может быть блоком кодирования или может быть блоком преобразования или может быть блоком предсказания.
[37] Модуль предсказания 110 может определять, применяется ли интра-предсказание или применяется интер-предсказание к текущему блоку. Например, модуль предсказания 110 может определять, применяется ли интра-предсказание или интер-предсказание к единице CU.
[38] В случае интра-предсказания, модуль предсказания 110 может получать выборку предсказания для текущего блока на основе опорной выборки вне текущего блока в картинке, которой принадлежит текущий блок (далее, текущая картинка). В этом случае, модуль предсказания 110 может получать выборку предсказания на основе среднего или интерполяции соседних опорных выборок текущего блока (случай (i)), или может получать выборку предсказания на основе опорной выборки, существующей в конкретном направлении (предсказания), что касается выборки предсказания среди соседних опорных выборок текущего блока (случай (ii)). Случай (i) может называться ненаправленным режимом или не-угловым режимом, и случай (ii) может называться направленным режимом или угловым режимом. В интра-предсказании, режимы предсказания могут включать в себя, в качестве примера, 33 направленных режима и по меньшей мере два ненаправленных режима. Ненаправленные режимы могут включать в себя DC режим и планарный режим. Модуль предсказания 110 может определять режим предсказания, подлежащий применению к текущему блоку, посредством использования режима предсказания, применяемого к соседнему блоку.
[39] В случае интер-предсказания, модуль предсказания 110 может получать выборки предсказания для текущего блока на основе выборки, заданной вектором движения на опорной картинке. Модуль предсказания 110 может получать выборку предсказания для текущего блока посредством применения любого одного из режима пропуска, режима объединения и режима предсказания вектора движения (MVP). В случае режима пропуска и режима объединения, модуль предсказания 110 может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, в отличие от режима объединения, различие (остаток) между выборкой предсказания и исходной выборкой не передается. В случае режима MVP, вектор движения соседнего блока используется в качестве модуля предсказания вектора движения и, таким образом, используется в качестве модуля предсказания вектора движения текущего блока, чтобы получить вектор движения текущего блока.
[40] В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок, существующий в текущей картинке, и временной соседний блок, существующий в опорной картинке. Опорная картинка, включающая в себя временной соседний блок, может называться совместно расположенной картинкой (colPic). Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация такая, как информация режима предсказания и информация движения, может (энтропийно) кодироваться и затем выводиться в форме битового потока.
[41] Когда информация движения временного соседнего блока используется в режиме пропуска и режиме объединения, наивысшая картинка в списке опорных картинок может использоваться в качестве опорной картинки. Опорные картинки, включенные в список опорных картинок, могут быть выровнены на основе разности порядкового отсчета картинок (POC) между текущей картинкой и соответствующей опорной картинкой. POC соответствует порядку отображения и может различаться из порядка кодирования.
[42] Модуль вычитания 115 генерирует остаточную выборку, которая является разностью между исходной выборкой и выборкой предсказания. Если применяется режим пропуска, остаточная выборка может не генерироваться, как описано выше.
[43] Модуль преобразования 120 преобразует остаточные выборки в единицах блока преобразования, чтобы генерировать коэффициент преобразования. Модуль преобразования 120 может выполнять преобразование на основе размера соответствующего блока преобразования и режима предсказания, применяемого к блоку кодирования или блоку предсказания, пространственно перекрывающемуся с блоком преобразования. Например, остаточные выборки могут преобразовываться с использованием ядра преобразования дискретного синусного преобразования (DST), если интра-предсказание применяется к блоку кодирования или блоку предсказания, перекрывающемуся с блоком преобразования, и блок преобразования является остаточным массивом 4×4 и преобразуется с использованием ядра преобразования дискретного косинусного преобразования (DCT) в других случаях.
[44] Модуль квантования 125 может квантовать коэффициенты преобразования, чтобы генерировать квантованные коэффициенты преобразования.
[45] Модуль переупорядочивания 130 переупорядочивает квантованные коэффициенты преобразования. Модуль переупорядочивания 130 может переупорядочивать коэффициенты преобразования в форме блока в одномерный вектор посредством способа сканирования коэффициентов. Хотя модуль переупорядочивания 130 описан как отдельный компонент, модуль переупорядочивания 130 может быть частью модуля квантования 125.
[46] Энтропийный кодер 135 может выполнять энтропийное кодирование на квантованных коэффициентах преобразования. Энтропийное кодирование может включать в себя способ кодирования, например, экспоненциальное Golomb кодирование, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) или тому подобное. Энтропийный кодер 135 может выполнять кодирование совместно или отдельно на информации (например, значение синтаксического элемента или подобное), требуемой для восстановления видео в дополнение к квантованным коэффициентам преобразования. Энтропийно-кодированная информация может быть передана или сохранена в единице уровня сетевой абстракции (NAL) в форме битового потока.
[47] Модуль обратного квантования 141 обратно квантует значения (коэффициенты преобразования), квантованные модулем квантования 125, и модуль обратного преобразования 142 обратно преобразует значения, обратно квантованные модулем обратного квантования 141, чтобы генерировать остаточную выборку.
[48] Сумматор 150 суммирует остаточную выборку с выборкой предсказания, чтобы восстановить картинку. Остаточная выборка может суммироваться с выборкой предсказания в единицах блока, чтобы генерировать восстановленный блок. Хотя сумматор 150 описан в качестве отдельного компонента, сумматор 150 может быть частью модуля предсказания 110. При этом сумматор 150 может упоминаться как модуль восстановления или генератор восстановленного блока.
[49] фильтр 155 может применять фильтрацию устранения блочности и/или адаптивное к выборке смещение к восстановленной картинке. Артефакты на границе блока в восстановленной картинке или искажение в квантовании могут быть скорректированы посредством фильтрации устранения блочности и/или адаптивного к выборке смещения. Адаптивное к выборке смещение может применяться в единицах выборки после завершения фильтрации устранения блочности. Фильтр 155 может применять адаптивный контурный фильтр (ALF) к восстановленной картинке. ALF может применяться к восстановленной картинке, к которой применялась фильтрация устранения блочности и/или адаптивное к выборке смещение.
[50] Память 160 может хранить восстановленную картинку (декодированную картинку) или информацию, необходимую для кодирования/декодирования. Здесь, восстановленная картинка может быть восстановленной картинкой, отфильтрованной фильтром 155. Сохраненная восстановленная картинка может использоваться как опорная картинка для (интер) предсказания других картинок. Например, память 160 может хранить (опорные) картинки, используемые для интер-предсказания. Здесь, картинки, используемые для интер-предсказания, могут быть указаны в соответствии с набором опорных картинок или списком опорных картинок.
[51] Фиг. 2 кратко иллюстрирует структуру устройства декодирования видео, в котором может применяться настоящее изобретение.
[52] Со ссылкой на фиг. 2, устройство 200 декодирования видео может включать в себя энтропийный декодер 210, процессор 220 остатка, модуль предсказания 230, сумматор 240, фильтр 250 и память 260. Процессор 220 остатка может включать в себя модуль переупорядочивания 221, модуль обратного квантования 222 и модуль обратного преобразования 223.
[53] Когда введен битовый поток, включающий в себя информацию видео, устройство 200 декодирования видео может восстанавливать видео в ассоциации с процессом, посредством которого информация видео обрабатывается в устройстве кодирования видео.
[54] Например, устройство 200 декодирования видео может выполнять декодирование видео с использованием единицы обработки, применяемой в устройстве кодирования видео. Таким образом, блок единицы обработки декодирования видео может быть, например, единицей кодирования и, в другом примере, единицей кодирования, единицей предсказания или единицей преобразования. Единица кодирования может разбиваться из наибольшей единицы кодирования в соответствии со структурой квадродерева и/или структурой двоичного дерева.
[55] Единица предсказания и единица преобразования могут дополнительно использоваться в некоторых случаях, и в этом случае блоком предсказания является блок, полученный или разделенный из единицы кодирования, и может быть единицей предсказания выборки. Здесь, единица предсказания может быть разделена на подблоки. Единица преобразования может разбиваться из единицы кодирования в соответствии со структурой квадродерева и может быть единицей, которая получает коэффициент преобразования, или единицей, которая получает остаточный сигнал из коэффициента преобразования.
[56] Энтропийный декодер 210 может анализировать битовый поток, чтобы вывести информацию, требуемую для восстановления видео или восстановления картинки. Например, энтропийный декодер 210 может декодировать информацию в битовом потоке на основе способа кодирования, такого как способ экспоненциального кодирования Golomb, CAVLC, CABAC или т.п., и может выводить значение синтаксического элемента, требуемого для восстановления видео, и квантованного значения коэффициента преобразования в отношении остатка.
[57] Более конкретно, способ энтропийного декодирования CABAC может принимать бин, соответствующий каждому синтаксическому элементу в битовом потоке, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования и информации декодирования соседнего и целевого блоков декодирования или информации символа/бина, декодированного на предыдущем этапе, предсказывать вероятность генерации бина в соответствии с определенной контекстной моделью и выполнять арифметическое декодирование бина, чтобы генерировать символ, соответствующий каждому значению синтаксического элемента. Здесь, способ энтропийного декодирования ABAC может обновлять контекстную модель с использованием информации символа/бина, декодированного для контекстной модели следующего символа/бина после определения контекстной модели.
[58] Информация о предсказании среди информации, декодированной в энтропийном декодере 210, может быть предоставлена на модуль предсказания 250, и остаточные значения, то есть, квантованные коэффициенты преобразования, на которых энтропийное декодирование было выполнено посредством энтропийного декодера 210, могут быть введены в модуль переупорядочивания 221.
[59] Модуль переупорядочивания 221 может переупорядочивать квантованные коэффициенты преобразования в форму двумерного блока. Модуль переупорядочивания 221 может выполнять переупорядочивание в соответствии со сканированием переупорядочивания, выполняемым устройством кодирования. Хотя модуль переупорядочивания 221 описан как отдельный компонент, модуль переупорядочивания 221 может быть частью модуля обратного квантования 222.
[60] Модуль обратного квантования 222 может обратно квантовать квантованные коэффициенты преобразования на основе параметра (обратного) квантования, чтобы вывести коэффициент преобразования. В этом случае, информация для получения параметра квантования может сигнализироваться из устройства кодирования.
[61] Модуль обратного преобразования 223 может обратно преобразовывать коэффициенты преобразования, чтобы получить остаточные выборки.
[62] Модуль предсказания 230 может выполнять предсказание на текущем блоке и может генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Единица предсказания, выполняемая в модуле предсказания 230, может быть блоком кодирования или может быть блоком преобразования или может быть блоком предсказания.
[63] Модуль предсказания 230 может определять, следует ли применять интра-предсказание или интер-предсказание, на основе информации о предсказании. В этом случае, единица для определения, какое одно из интра-предсказания и интер-предсказания, может отличаться от единицы для генерации выборки предсказания. Кроме того, единица для генерации выборки предсказания может также отличаться в интер-предсказании и интра-предсказании. Например, какое одно из интер-предсказания и интра-предсказания будет применяться, может быть определено в единице CU. Кроме того, например, в интер-предсказании, выборка предсказания может генерироваться при определении режима предсказания в единице PU, и в интра-предсказании, выборка предсказания может генерироваться в единице TU посредством определения режима предсказания в единице PU.
[64] В случае интра-предсказания, модуль предсказания 230 может получать выборку предсказания для текущего блока на основе соседней опорной выборки в текущей картинке. Модуль предсказания 230 может получать выборку предсказания для текущего блока посредством применения направленного режима или ненаправленного режима на основе соседней опорной выборки текущего блока. В этом случае, режим предсказания, подлежащий применению к текущему блоку, может быть определен с использованием режима интра-предсказания соседнего блока.
[65] В случае интер-предсказания, модуль предсказания 230 может получать выборку предсказания для текущего блока на основе выборки, заданной в опорной картинке в соответствии с вектором движения. Модуль предсказания 230 может получать выборку предсказания для текущего блока с использованием одного из режима пропуска, режима объединения и режима MVP. Здесь, информация движения, требуемая для интер-предсказания текущего блока, обеспечиваемая устройством кодирования видео, например, вектор движения и информация об индексе опорной картинки, может быть получена или выведена на основе информации о предсказании.
[66] В режиме пропуска и режиме объединения, информация движения соседнего блока может использоваться в качестве информации движения текущего блока. Здесь, соседний блок может включать в себя пространственный соседний блок и временной соседний блок.
[67] Модуль предсказания 230 может формировать список кандидатов объединения с использованием информации движения доступных соседних блоков и информации использования, указанной индексом объединения на списке кандидатов объединения, в качестве вектора движения текущего блока. Индекс объединения может сигнализироваться устройством кодирования. Информация движения может включать в себя вектор движения и опорную картинку. Когда информация движения временного соседнего блока используется в режиме пропуска и режиме объединения, наивысшая картинка в списке опорных картинок может использоваться в качестве опорной картинки.
[68] В случае режима пропуска, разность (остаток) между выборкой предсказания и исходной выборкой не передается, в отличие от режима объединения.
[69] В случае режима MVP, вектор движения текущего блока может быть получен с использованием вектора движения соседнего блока в качестве модуля предсказания вектора движения. Здесь, соседний блок может включать в себя пространственный соседний блок и временной соседний блок.
[70] Когда применяется режим объединения, например, список кандидатов объединения может генерироваться с использованием вектора движения восстановленного пространственного соседнего блока и/или вектора движения, соответствующего Col блоку, который является временным соседним блоком. Вектор движения блока-кандидата, выбранного из списка кандидатов объединения, используется в качестве вектора движения текущего блока в режиме объединения. Вышеупомянутая информация о предсказании может включать в себя индекс объединения, указывающий блок-кандидат, имеющий наилучший вектор движения, выбранный из блоков-кандидатов, включенных в список кандидатов объединения. Здесь, модуль предсказания 230 может получать вектор движения текущего блока с использованием индекса объединения.
[71] Когда режим MVP (предсказания вектора движения) применяется в качестве другого примера, список кандидатов модуля предсказания вектора движения может генерироваться с использованием вектора движения восстановленного пространственного соседнего блока и/или вектора движения, соответствующего Col блоку, который является временным соседним блоком. То есть, вектор движения восстановленного пространственного соседнего блока и/или вектор движения, соответствующий Col блоку, который является временным соседним блоком, могут использоваться в качестве кандидатов вектора движения. Вышеуказанная информация о предсказании может включать в себя индекс вектора движения предсказания, указывающий наилучший вектор движения, выбранный из кандидатов вектора движения, включенных в список. Здесь, модуль предсказания 230 может выбирать вектор движения предсказания текущего блока из кандидатов вектора движения, включенных в список кандидатов вектора движения с использованием индекса вектора движения. Модуль предсказания устройства кодирования может получать разность вектора движения (MVD) между вектором движения текущего блока и модулем предсказания вектора движения, кодировать MVD и выводить кодированный MVD в форме битового потока. То есть, MVD может быть получен посредством вычитания модуля предсказания вектора движения из вектора движения текущего блока. Здесь, модуль предсказания 230 может получать вектор движения, включенный в информацию о предсказании, и получать вектор движения текущего блока посредством суммирования разности векторов движения с модулем предсказания вектора движения. Кроме того, модуль предсказания может получать или выводить индекс опорной картинки, указывающий опорную картинку, из вышеупомянутой информации о предсказании.
[72] Сумматор 240 может суммировать остаточную выборку с выборкой предсказания, чтобы восстановить текущий блок или текущую картинку. Сумматор 240 может восстанавливать текущую картинку посредством суммирования остаточной выборки с выборкой предсказания в единицах блока. Когда применяется режим пропуска, остаток не передается, и, таким образом, выборка предсказания может стать восстановленной выборкой. Хотя сумматор 240 описан как отдельный компонент, сумматор 240 может быть частью модуля предсказания 230. При этом сумматор 240 может упоминаться как модуль восстановления или генератор восстановленного блока.
[73] Фильтр 250 может применять фильтрацию устранения блочности, адаптивное к выборке смещение и/или ALF к восстановленной картинке. Здесь, адаптивное к выборке смещение может применяться в единицах выборки после фильтрации устранения блочности. ALF может применяться после фильтрации устранения блочности и/или применения адаптивного к выборке смещения.
[74] Память 260 может хранить восстановленную картинку (декодированную картинку) или информацию, необходимую для декодирования. Здесь, восстановленная картинка может быть восстановленной картинкой, отфильтрованной посредством фильтра 250. Например, память 260 может хранить картинки, используемые для интер-предсказания. Здесь, картинки, используемые для интер-предсказания, могут быть указаны в соответствии с набором опорных картинок или списком опорных картинок. Восстановленная картинка может использоваться как опорная картинка для других картинок. Память 260 может вывести восстановленные картинки в порядке вывода.
[75] Как описано выше, когда выполняется интра-предсказание текущего блока, интра-предсказание может выполняться на основе соседних выборок, которые уже были кодированы/декодированы в момент времени декодирования текущего блока. То есть, выборка предсказания текущего блока может быть восстановлена с использованием левых соседних выборок и верхних соседних выборок уже восстановленного текущего блока. Левые соседние выборки и верхние соседние выборки могут быть представлены, как показано на фиг. 3.
[76] Фиг. 3 иллюстрирует левые соседние выборки и верхние соседние выборки, используемые для интра-предсказания текущего блока. Когда интра-предсказание выполняется в текущем блоке, режим интра-предсказания текущего блока может быть получен, и выборки предсказания текущего блока могут генерироваться с использованием по меньшей мере одной из левых соседних выборок и верхних соседних выборок в соответствии с режимом интра-предсказания. Здесь, режимы интра-предсказания могут включать в себя, например, два ненаправленных режима интра-предсказания и 33 направленных режима интра-предсказания. Здесь, 0-ой и 1-ый режимы интра-предсказания являются ненаправленными режимами интра-предсказания, 0-ой режим интра-предсказания указывает интра-планарный режим, и 1-ый режим интра-предсказания указывает режим интра-DC. Остальные 2-ой и 34-ый режимы интра-предсказания являются направленными режимами интра-предсказания и имеют, каждое, направления предсказания. Направленный режим интра-предсказания может упоминаться как интра-угловой режимe. Значение выборки предсказания текущей выборки текущего блока может быть получено на основе режима интра-предсказания текущего блока.
[77] Например, когда режимом интра-предсказания текущего блока является один из направленных интра-режимов, значение соседней выборки, позиционированное в направлении предсказания режима интра-предсказания текущего блока, может быть получено как значение выборки предсказания текущей выборки на основе текущей выборки в текущем блоке. Когда соседняя выборка целочисленной единицы выборки не позиционирована в направлении предсказания на основе текущей выборки, посредством получения выборки дробной единицы выборки в соответствующем положении направления предсказания на основе интерполяции соседних выборок целочисленной единицы выборки, позиционированной в окрестности соответствующего направления предсказания, значение выборки дробной единицы выборки может быть получено как значение выборки предсказания текущей выборки.
[78] Как описаны выше, когда выборка предсказания текущего блока генерируется с использованием по меньшей мере одной из левых соседних выборок и верхних соседних выборок, когда расстояние между выборками предсказания и соседней выборкой увеличивается, точность предсказания может быть снижена. Кроме того, поскольку выборка предсказания генерируется со ссылкой только на одну строку или столбец из соседних выборок, когда информация шума включена в выборки, смежные с текущим блоком, точность предсказания текущего блока заметно ухудшается, и, таким образом, эффективность кодирования в целом может быть ухудшена. Поэтому, настоящее изобретение предлагает способ генерации опорных выборок на основе множества левых соседних выборок и верхних соседних выборок, т.е., множества столбцов левых соседних выборок и множества строк верхних соседних выборок, и выполнения интра-предсказания на основе сгенерированных опорных выборок, чтобы улучшить точность предсказания интра-предсказания и улучшить эффективность кодирования. В следующих вариантах осуществления, описан способ генерации одной левой опорной выборки (или верхней опорной выборки) на основе четырех левых соседних выборок (или верхних соседних выборок), но случайное n (N>1) число левых соседних выборок (или верхних соседних выборок) может использоваться, и, таким образом, может генерироваться левая опорная выборка (или верхняя опорная выборка).
[79] Фиг. 4 иллюстрирует пример получения опорной выборки на основе множества соседних выборок текущего блока. Со ссылкой на фиг. 4, когда размер текущего блока равен размеру N×N, 2N верхних опорных выборок могут быть сгенерированы на основе верхних соседних выборок в области размером 2N×4, и 2N левых опорных выборок могут быть сгенерированы на основе левых соседних выборок в области размером 4×2N. Конкретно, одна верхняя опорная выборка, позиционированная в конкретном столбце, может генерироваться на основе четырех верхних соседних выборок, позиционированных в конкретном столбце среди верхних соседних выборок, и одна левая опорная выборка, позиционированная в конкретной строке, может генерироваться на основе четырех левых соседних выборок, позиционированных в конкретной строке среди левых соседних выборок. Например, среднее значение значений выборок из четырех верхних соседних выборок, позиционированных в x-ом столбце среди верхних соседних выборок, может быть получено как значение выборки верхних опорных выборок x-го столбца. Дополнительно, среднее значение значений выборок из четырех левых соседних выборок, позиционированных в y-ом столбце среди левых соседних выборок, может быть получено как значение выборки y-ой строки левых опорных выборок.
[80] Как описано выше, тот же самый вес {1/4, 1/4, 1/4, 1/4} может быть распределен для соседних выборок, используемых для генерации опорной выборки, но, иными словами, вес соседних выборок для генерации опорной выборки может быть тем же самым, что и 1/4, но точность предсказания может быть снижена в пропорции к расстоянию между соседней выборкой и текущим блоком, подлежащим кодированию. Поэтому, когда четыре верхние соседние выборки представлены как первая строка верхней соседней выборки, вторая строка верхней соседней выборки, третья строка верхней соседней выборки и четвертая строка верхней соседней выборки в направлении вверх от нижней стороны, вес первой строки верхней соседней выборки может быть распределен как 1/2, вес второй строки верхней соседней выборки может быть распределен как 1/4, и вес третьей строки верхней соседней выборки и четвертой строки верхней соседней выборки может быть распределен как 1/8. Тем самым, выборки, в которых расстояние до текущего блока мало среди верхних соседних выборок, могут быть в большей степени использованы для генерации верхней опорной выборки. Кроме того, когда четыре левые соседние выборки представлены как первый столбец левой соседней выборки, второй столбец левой соседней выборки, третий столбец левой соседней выборки и четвертый столбец левой соседней выборки в направлении справа налево, вес первого столбца левой соседней выборки может быть распределен как 1/2, вес второго столбца левой соседней выборки может быть распределен как 1/4, и вес третьего столбца левой соседней выборки и четвертого столбца левой соседней выборки может быть распределен как 1/8.
[81] Кроме того, в другом примере, вес первой строки верхней соседней выборки и второй строки верхней соседней выборки может быть распределен как 2/5, и вес третей строки верхней соседней выборки и четвертой строки верхней соседней выборки может быть распределен как 1/10. Кроме того, вес первого столбца левой соседней выборки может быть распределен как 1/2, вес второго столбца левой соседней выборки может быть распределен как 1/4, and вес третьего столбца левой соседней выборки и четвертого столбца левой соседней выборки может быть распределен как 1/8.
[82] Кроме того, способ распределения веса каждой соседней выборке может включать в себя различные способы, иные, чем вышеупомянутый пример. Например, вес каждой соседней выборке может быть распределен в соответствии с расстоянием между каждой соседней выборкой и текущим блоком, вес каждой соседней выборке может быть распределен в соответствии с размером текущего блока, и вес каждой соседней выборке может быть распределен в соответствии с параметром квантования (QP) текущего блока. Кроме того, вес каждой соседней выборке может быть распределен на основе различных критериев. Верхняя опорная выборка может быть получена на основе верхних соседних выборок, и вес распределен каждой из верхних соседних выборок. Кроме того, левая опорная выборка может быть получена на основе левых соседних выборок, и вес распределен каждой из левых соседних выборок. Кроме того, верхняя опорная выборка или левая опорная выборка может быть получена на основе следующего уравнения.
[83] [Уравнение 1]
D'=w1_D=w2*C=w3*B=w4*A
[84] Здесь D' может представлять верхнюю опорную выборку (или левую опорную выборку), w1 может представлять вес первой строки верхней соседней выборки (или первого столбца левой соседней выборки), w2 может представлять вес второй строки верхней соседней выборки (или второго столбца левой соседней выборки), w3 может представлять вес третьей строки верхней соседней выборки (или третьего столбца левой соседней выборки), и w4 может представлять вес четвертой строки верхней соседней выборки (или четвертого столбца левой соседней выборки). Кроме того, D может представлять первую строку верхней соседней выборки (или первый столбец левой соседней выборки), C может представлять вторую строку верхней соседней выборки (или второй столбец левой соседней выборки), B может представлять третью строку верхней соседней выборки (или третий столбец левой соседней выборки), и A может представлять четвертую строку верхней соседней выборки (или четвертый столбец левой соседней выборки).
[85] Как описано выше, опорные выборки текущего блока могут быть получены на основе 2N соседних выборок из множества столбцов и строк, но опорные выборки могут быть получены на основе соседних выборок более чем 2N соседних выборок из множества столбцов и строк в соответствии с направлением предсказания текущего блока.
[86] Фиг. 5 иллюстрирует пример получения опорной выборки на основе множества соседних выборок текущего блока. Со ссылкой на фиг. 5, может быть получен режим интра-предсказания текущего блока и может быть получено направление предсказания в соответствии с режимом интра-предсказания. Опорные выборки текущего блока могут генерироваться на основе соседних выборок, позиционированных в направлении предсказания. В этом случае, как показано на фиг. 5, направление предсказания текущего блока может быть направлено от верхней правой стороны к нижней левой стороне, и верхние соседние выборки, позиционированные в дополнительной области 510, показанной на фиг. 5, могут потребоваться для предсказания текущего блока. Иными словами, L верхних соседних выборок и 2N верхних соседних выборок, позиционированных в первой строке, могут потребоваться для предсказания текущего блока. Кроме того, M верхних соседних выборок и 2N верхних соседних выборок, позиционированных в четвертой строке, могут потребоваться для предсказания текущего блока. Поэтому, могут генерироваться соседние выборки, позиционированные в дополнительной области 510, и опорные выборки текущего блока могут генерироваться на основе соседних выборок, позиционированных в направлении предсказания текущего блока среди соседних выборок, включающих в себя дополнительную область 510. Выборки, позиционированные в дополнительной области 510, могут генерироваться посредством заполнения значением выборки крайней справа верхней соседней выборки среди верхних соседних выборок каждой строки. То есть, значение выборки выборок, позиционированных в дополнительной области 510, может быть получено равным значению выборки крайней справа верхней соседней выборки среди верхних соседних выборок каждой строки. Хотя пример генерации выборок, позиционированных в дополнительной области левых соседних выборок, не показан на чертежах, подобно примеру генерацию выборок, позиционированных в дополнительной области 510, могут генерироваться выборки, позиционированные в дополнительной области левых соседних выборок. Конкретно, выборки, позиционированные в дополнительной области левых соседних выборок, могут генерироваться посредством заполнения значением выборки крайней слева соседней выборки среди левых соседних выборок каждого столбца.
[87] Когда верхние соседние выборки, включающие в себя верхние соседние выборки дополнительной области 510, получены, верхние опорные выборки текущего блока могут генерироваться на основе верхних соседних выборок. Вариант осуществления, в котором генерируются верхние опорные выборки, может быть показан на следующем чертеже.
[88] Фиг. 6 иллюстрирует пример генерации верхних опорных выборок текущего блока на основе верхних соседних выборок, включающих в себя дополнительно сгенерированные верхние опорные выборки. Фиг. 6(b) иллюстрирует положение заново сгенерированной верхней опорной выборки. В этом случае, в положении верхней опорной выборки 610, верхние соседние выборки в положениях, соответствующих направлению предсказания текущего блока, могут использоваться для генерации верхней опорной выборки 610. Например, как показано на фиг. 6(a), в положении верхней опорной выборки 610, верхняя соседняя выборка A, верхняя соседняя выборка B, верхняя соседняя выборка C и верхняя соседняя выборка D, которые являются верхними соседними выборками в положениях, соответствующих направлению предсказания текущего блока, могут использоваться для генерации верхней опорной выборки 610. Когда все положения верхней соседней выборки A, верхней соседней выборки B, верхней соседней выборки C и верхней соседней выборки D являются целочисленными положениями выборок, т.е., когда все из верхней соседней выборки A, верхней соседней выборки B, верхней соседней выборки C и верхней соседней выборки D являются целочисленными выборками, верхняя опорная выборка 610 может генерироваться на основе значений выборок верхней соседней выборки A, верхней соседней выборки B, верхней соседней выборки C и верхней соседней выборки D. Аналогичным образом, левые соседние выборки, позиционированные в направлении предсказания текущего блока, могут быть получены на основе положения левой опорной выборки, и левая опорная выборка может генерироваться на основе левых соседних выборок.
[89] Когда имеется положение иное, чем положение целочисленных выборок среди положений верхней соседней выборки A, верхней соседней выборки B, верхней соседней выборки C и верхней соседней выборки D, т.е., когда имеется дробная выборка из верхней соседней выборки A, верхней соседней выборки B, верхней соседней выборки C и верхней соседней выборки D, дробная выборка может быть получена, как показано на следующей фигуре.
[90] Фиг. 7 иллюстрирует пример получения соседней выборки, расположенной в положении дробной выборки. Со ссылкой на фиг. 7, значение выборки соседней выборки X, которая является дробной выборкой, может генерироваться посредством линейной интерполяции значений выборки целочисленной выборки D1 и D2 смежных слева и справа от соседней выборки. То есть, когда верхняя соседняя выборка A, верхняя соседняя выборка B, верхняя соседняя выборка C или верхняя соседняя выборка D является дробной выборкой, дробная выборка может быть получена на основе верхних соседних выборок положений целочисленных выборок, смежных с дробной выборкой. Дробная выборка может быть получена на основе следующего уравнения.
[91] [Уравнение 2]
X=(D1*d1+D2*d2+(d1+d2)/2)/(d1+d2)
[92] где X может представлять дробную выборку, D1 может представлять целочисленную выборку, смежную слева от дробной выборки, D2 может представлять целочисленную выборку, смежную справа от дробной выборки, d1 может представлять расстояние между D2 и X, и d2 может представлять расстояние между D1 и X.
[93] Значение каждой из верхних соседних выборок для генерации верхней опорной выборки может быть получено посредством вышеописанного способа. Когда получены верхние соседние выборки положения целочисленной выборки или положения дробной выборки, верхняя опорная выборка может генерироваться на основе верхних соседних выборок. Верхняя опорная выборка может генерироваться посредством распределения того же самого веса каждой верхней опорной выборке, как описано выше. Альтернативно, вес каждой опорной выборки может быть распределен с учетом расстояния между текущим блоком и каждой верхней опорной выборкой, и верхняя опорная выборка может генерироваться на основе каждой верхней опорной выборки и веса. Альтернативно, вес каждой верхней опорной выборки может быть распределен на основе различных критериев, таких как QP или размер текущего блока, и верхняя опорная выборка может генерироваться на основе каждой верхней опорной выборки и веса. Кроме того, верхняя опорная выборка может генерироваться посредством подстановки верхних соседних выборок и веса, распределенного каждой из верхних соседних выборок в Уравнении 1. Кроме того, когда имеется дробная выборка в левых соседних выборках, дробная выборка может быть получена подобно приведенному выше описанию, и левая опорная выборка может быть получена на основе дробной выборки.
[94] Когда опорная выборка генерируется на основе соседних выборок, позиционированных в направлении предсказания текущего блока, тот же вес {1/4, 1/4, 1/4, 1/4} может быть распределен соседним выборкам, используемым для генерации опорной выборки, или вес каждой соседней выборке может быть распределен в соответствии с расстоянием между каждой соседней выборкой и текущим блоком, как описано выше. Альтернативно, вес каждой соседней выборке может быть распределен в соответствии с размером текущего блока или параметром квантования (QP) текущего блока. Кроме того, вес каждой соседней выборке может быть распределен на основе различных критериев. Верхняя опорная выборка может быть получена на основе верхних соседних выборок и веса, распределенного каждой из верхних соседних выборок. Кроме того, левая опорная выборка может быть получена на основе левых соседних выборок и веса, распределенного каждой из левых соседних выборок.
[95] Как описано выше, когда опорные выборки получены на основе числа 2N соседних выборок из множества столбцов и строк и соседних выборок, включенных в дополнительную область в соответствии с направлением предсказания текущего блока, выборки, позиционированные в дополнительной области, могут генерироваться посредством заполнения, как описано выше, но когда соседние выборки, позиционированные в дополнительной области, уже были восстановлены, могут использоваться восстановленные соседние выборки дополнительной области, а когда соседние выборки, позиционированные в дополнительной области, не восстановлены, соседние выборки могут генерироваться посредством вышеописанного заполнения.
[96] Фиг. 8 иллюстрирует пример генерации верхних опорных выборок текущего блока на основе верхних соседних выборок, включающих в себя дополнительно сгенерированные верхние опорные выборки. Как описано выше, может быть получен режим интра-предсказания текущего блока, и опорные выборки текущего блока могут генерироваться на основе соседних выборок, позиционированных в направлении предсказания. В этом случае, как показано на фиг. 8(a), направление предсказания текущего блока может быть направлено от верхней правой стороны к нижней левой стороне, и верхние соседние выборки, позиционированные в дополнительной области 810, показанной на фиг. 8(a), могут потребоваться для предсказания текущего блока. Когда верхние соседние выборки, включенные в дополнительную область 810, уже были восстановлены, восстановленные верхние соседние выборки могут использоваться для генерации верхних опорных выборок. Как показано на фиг. 8(b), когда верхние соседние выборки, позиционированные в дополнительной области 820, не восстановлены, выборки, позиционированные в дополнительной области 820, могут генерироваться посредством заполнения значением выборки крайней справа верхней соседней выборки среди верхних соседних выборок каждой строки. То есть, значение выборки выборок, позиционированных в дополнительной области 820, может быть получено равным значению выборки крайней справа верхней соседней выборки среди верхних соседних выборок каждой строки. Хотя дополнительная область левых соседних выборок не показана на чертеже, подобно способу получения верхних соседних выборок, включенных в дополнительную область 810, могут быть получены левые соседние выборки, включенные в дополнительную область левых соседних выборок.
[97] Варианты осуществления генерации вышеописанной опорной выборки могут быть выбраны на основе направления предсказания текущего блока. То есть, опорные выборки текущего блока могут генерироваться посредством других способов в соответствии с режимами интра-предсказания.
[98] Фиг. 9 иллюстрирует пример разделения режимов интра-предсказания в соответствии с направлением предсказания. Со ссылкой на фиг. 9, режимы интра-предсказания могут быть разделены на четыре области в соответствии с направлением предсказания. Как показано на фиг. 9, режимы интра-предсказания могут быть включены в область A, область B, область C или область D в соответствии с направлением предсказания. Конкретно, например, с 2-го по 9-ый режимы интра-предсказания из режимов интра-предсказания могут быть включены в область A, с 10-го по 17-ый режимы интра-предсказания могут быть включены в область B, с 18-го по 26-ой режимы интра-предсказания могут быть включены в область C, и с 27-го по 34-ой режимы интра-предсказания могут быть включены в область D. Может быть определен способ получения опорных выборок текущего блока на основе режима интра-предсказания, применимого к текущему блоку.
[99] Например, когда режим интра-предсказания, включенный в область D, применим к текущему блоку, опорные выборки текущего блока может быть получены посредством способа, показанного на фиг. 8. Иными словами, может генерироваться 2N верхних соседних выборок из множества строк текущего блока и верхних соседних выборок дополнительной области, и в положении верхней опорной выборки текущего блока среди 2N верхних соседних выборок из множества строк и верхних соседних выборок дополнительной области, может генерироваться верхняя опорная выборка текущего блока на основе соседних выборок, позиционированных в направлении предсказания. Когда верхние соседние выборки дополнительной области уже были восстановлены, восстановленные верхние соседние выборки могут использоваться для генерации опорных выборок текущего блока, а когда верхние соседние выборки дополнительной области не восстановлены, верхние соседние выборки могут генерироваться посредством заполнения значения выборки крайней справа верхней соседней выборки среди 2N верхних соседних выборок каждой строки.
[100] В качестве другого примера, когда режим интра-предсказания, включенный в область C, применим к текущему блоку, опорные выборки текущего блока могут генерироваться, как показано на фиг. 10.
[101] Фиг. 10 иллюстрирует пример генерацию верхних опорных выборок текущего блока на основе верхних соседних выборок, включающих в себя дополнительно сгенерированные верхние опорные выборки. Когда генерируется верхняя опорная выборка D', показанная на фиг. 10(b), D' может генерироваться на основе верхних соседних выборок A, B, C и D в положениях, соответствующих направлению предсказания текущего блока, в положении D', показанном на фиг. 10(a). Когда все положения верхних соседних выборок A, B, C и D являются положениями целочисленных выборок, т.е., все из A, B, C и D являются целочисленными выборками, D' может генерироваться на основе значений выборок A, B, C и D. Когда имеется выборка положения дробной выборки среди положений верхних соседних выборок A, B, C и D, т.е., когда имеется дробная выборка среди A, B, C и D, значения выборок целочисленных выборок, смежных слева и справа от дробной выборки могут генерироваться линейной интерполяцией, и D' может генерироваться на основе сгенерированной дробной выборки, как описано выше. Кроме того, в положении H', показанном на фиг. 10(a), H' может генерироваться на основе верхних соседних выборок E, F, G и H в положениях, соответствующих направлению предсказания текущего блока. Когда все положения верхних соседних выборок E, F, G и H являются положениями целочисленной выборки, т.е., когда все из H, F, G и H являются целочисленными выборками, H' может генерироваться на основе значений выборки E, F, G и H. Когда имеется выборка положения дробной выборки среди положений верхних соседних выборок E, F, G и H, т.е., когда имеется дробная выборка среди E, F, G и H, значения выборки целочисленных выборок, смежных слева и справа от дробной выборки, могут генерироваться линейной интерполяцией, и H' может генерироваться на основе сгенерированной дробной выборки, как описано выше.
[102] Когда режим интра-предсказания, включенный в область B, применяется к текущему блоку и когда режим интра-предсказания, включенный в область C, применяется к текущему блоку, опорные выборки текущего блока могут генерироваться посредством того же самого способа, что и способ получения опорных выборок текущего блока. Кроме того, когда режим интра-предсказания, включенный в область A, применяется к текущему блоку и когда режим интра-предсказания, включенный в область D, применяется к текущему блоку, опорные выборки текущего блока могут генерироваться посредством того же способа, что и способ получения опорных выборок текущего блока.
[103] Фиг. 11 схематично иллюстрирует способ кодирования видео устройством кодирования в соответствии с настоящим изобретением. Способ, раскрытый на фиг. 11, может выполняться устройством кодирования, раскрытым на фиг. 1. Конкретно, например, S1100-S1140 согласно фиг. 11 могут выполняться модулем предсказания устройства кодирования, и S1150 может выполняться модулем энтропийного кодирования устройства кодирования.
[104] Устройство кодирования определяет режим интра-предсказания текущего блока (S1100). Устройство кодирования может выполнять различные режимы интра-предсказания, чтобы получить режим интра-предсказания, имеющий оптимальную стоимость RD, в качестве режима интра-предсказания текущего блока. Режимом интра-предсказания может быть один из двух ненаправленных режимов предсказания и 33 направленных режимов предсказания. Как описано выше, два ненаправленных режимов предсказания могут включать в себя интра-DC режим и интра-планарный режим.
[105] Устройство кодирования получает множество строк верхних соседних выборок и множество столбцов левых соседних выборок текущего блока (S1110). Устройство кодирования может получать множество строк верхних соседних выборок текущего блока. Например, устройство кодирования может получать 4 строки из верхних соседних выборок текущего блока. Кроме того, например, когда размер текущего блока равен N×N, устройство кодирования может получать 2N верхних соседних выборок в каждой строке из множества строк. 2N верхних соседних выборок каждой строки могут упоминаться как первые верхние соседние выборки.
[106] Верхняя опорная выборка может быть получена на основе конкретных верхних соседних выборок, полученных на основе положения верхней опорной выборки и направления предсказания режима интра-предсказания текущего блока, как описано далее. В этом случае, верхние соседние выборки иные, чем первые верхние соседние выборки, могут использоваться для получения верхней опорной выборки в соответствии с направлением предсказания текущего блока.
[107] Например, когда размер текущего блока равен N×N, число верхних соседних выборок n-ой строки среди множества строк верхних соседних выборок может быть больше, чем 2N. В качестве другого примера, когда n-ая строка является первой строкой, число верхних соседних выборок n-ой строки равно 2N, и число верхних соседних выборок (n+1)-ой строки может быть больше, чем 2N. Кроме того, число верхних соседних выборок n-ой строки среди множества строк верхних соседних выборок текущего блока может быть меньше, чем число верхних соседних выборок (n+1)-ой строки. Конкретно, число верхних соседних выборок (n+1)-ой строки может быть больше, чем 2N, и верхние соседние выборки после 2N-ой верхней соседней выборки среди верхних соседних выборок (n+1)-ой строки могут быть получены посредством заполнения 2N-ой верхней соседней выборкой среди верхних соседних выборок (n+1)-ой строки. Альтернативно, перед генерацией выборки предсказания текущего блока, когда сгенерированы восстановленные выборки, соответствующие верхним соседним выборкам после 2N-ой верхней выборки среди верхних соседних выборок (n+1)-ой строки, восстановленные выборки могут быть получены в качестве верхних соседних выборок после 2N-ой верхней соседней выборки.
[108] В качестве другого примера, когда размер текущего блока равен N×N, устройство кодирования может получать вторую верхнюю соседнюю выборку каждой строки на основе направления предсказания текущего блока. Здесь, вторая верхняя соседняя выборка может представлять верхние соседние выборки иные, чем первая верхняя соседняя выборка каждой строки. Число вторых верхних соседних выборок каждой строки может быть определено на основе направления предсказания. Вторая верхняя соседняя выборка каждой строки может быть получена посредством заполнения второй верхней соседней выборки, позиционированной на крайней правой стороне среди первых верхних соседних выборок каждой строки. Альтернативно, перед генерацией выборки предсказания текущего блока, когда сгенерирована восстановленная выборка второй верхней соседней выборки, восстановленная выборка может быть получена как вторая верхняя соседняя выборка, и перед генерацией выборки предсказания текущего блока, когда восстановленная выборка второй верхней соседней выборки не генерируется, вторая верхняя соседняя выборка каждой строки может быть получена посредством заполнения второй верхней соседней выборкой, позиционированной на крайней правой стороне среди первых верхних соседних выборок каждой строки.
[109] Кроме того, в другом примере, устройство кодирования может получать множество столбцов левых соседних выборок текущего блока. Например, устройство кодирования может получать четыре столбца левых соседних выборок текущего блока. Кроме того, например, когда размер текущего блока равен N×N, устройство кодирования может получать 2N левых соседних выборок в каждом столбце из множества столбцов. 2N левых соседних выборок каждого столбца могут упоминаться как первые левые соседние выборки.
[110] Левая опорная выборка может быть получена на основе конкретных левых соседних выборок, полученных на основе положения левой опорной выборки и направления предсказания режима интра-предсказания текущего блока, как описано далее. В этом случае, левые соседние выборки иные, чем первые левые соседние выборки, могут использоваться для получения левой опорной выборки в соответствии с направлением предсказания текущего блока.
[111] Например, когда размер текущего блока равен N×N, номер n-го столбца левых соседних выборок среди множества столбцов левых соседних выборок может быть больше, чем 2N. В другом примере, когда n-ый столбец является первым столбцом, номер n-го столбца левых соседних выборок равен 2N и номер (n+1)-го столбца левых соседних выборок может быть больше, чем 2N. Кроме того, номер n-го столбца левых соседних выборок среди множества столбцов левых соседних выборок текущего блока может быть меньше, чем таковой (n+1)-го столбца левых соседних выборок. Конкретно, номер (n+1)-го столбца левых соседних выборок может быть больше, чем 2N, и левые соседние выборки после 2N-ой левой соседней выборки среди (n+1)-го столбца левых соседних выборок могут быть получены посредством заполнения 2N-ой левой соседней выборки среди (n+1)-го столбца левых соседних выборок. Альтернативно, перед генерацией выборки предсказания текущего блока, когда сгенерированы восстановленные выборки, соответствующие левым соседним выборкам после 2N-ой левой соседней выборки среди (n+1)-го столбца левых соседних выборок, восстановленные выборки могут быть получены в качестве левых соседних выборок после 2N-ой левой соседней выборки.
[112] В качестве другого примера, когда размер текущего блока равен N×N, устройство кодирования может получать вторую левую соседнюю выборку каждого столбца на основе направления предсказания текущего блока. Здесь, вторая левая соседняя выборка может представлять левую соседнюю выборку иную, чем первая левая соседняя выборка каждой строки. Число вторых левых соседних выборок каждого столбца может быть определено на основе направления предсказания. Вторая левая соседняя выборка каждого столбца может быть получена посредством заполнения второй левой соседней выборкой, позиционированной на крайней нижней стороне среди первых левых соседних выборок каждого столбца. Альтернативно, перед генерацией выборки предсказания текущего блока, когда сгенерирована восстановленная выборка второй левой соседней выборки, восстановленная выборка может быть получена как вторая левая соседняя выборка, и перед генерацией выборки предсказания текущего блока, когда восстановленная выборка второй левой соседней выборки не сгенерирована, вторая левая соседняя выборка каждого столбца может быть получена посредством заполнения второй левой соседней выборкой, позиционированной на крайней нижней стороне среди первых левых соседних выборок каждого столбца.
[113] Устройство кодирования получает одну строку верхних опорных выборок на основе верхних соседних выборок (S1120). Устройство кодирования может получать одну строку верхних опорных выборок на основе множества строк верхних соседних выборок.
[114] Например, верхняя опорная выборка, позиционированная в x-ом столбце среди верхних опорных выборок, может быть получена на основе верхних соседних выборок, позиционированных в x-ом столбце среди верхних соседних выборок. В этом случае, среднее значение значений выборок верхних соседних выборок, позиционированных в x-ом столбце, может быть получена как значение выборки верхней опорной выборки, позиционированной в x-ом столбце. Кроме того, могут быть получены веса верхних соседних выборок, позиционированных в x-ом столбце, и верхние опорные выборки, позиционированные в x-ом столбце, могут быть получены на основе весов и верхних соседних выборок, позиционированных в x-ом столбце. Когда веса верхних соседних выборок, позиционированных в x-ом столбце, получены, верхняя опорная выборка может быть получена на основе Уравнения 1.
[115] Например, веса могут быть получены на основе расстояния между верхними соседними выборками и верхней опорной выборкой, позиционированной в x-ом столбце. То есть, вес соответствующей верхней соседней выборки среди верхних соседних выборок, позиционированных в x-ом столбце, может быть получен на основе расстояния между соответствующей верхней соседней выборкой и верхней опорной выборкой, и, например, вес соответствующей верхней соседней выборки может быть обратно пропорционален расстоянию между соответствующей верхней соседней выборкой и верхней опорной выборкой. Конкретно, когда получены четыре строки верхних соседних выборок, веса верхних соседних выборок могут быть получены как 1/2, 1/4, 1/8 и 1/8 в порядке снизу вверх. Альтернативно, веса верхних соседних выборок могут быть получены как 2/5, 2/5, 1/10 и 1/10 в порядке снизу вверх.
[116] Кроме того, в другом примере, веса могут быть получены на основе параметра квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[117] В качестве другого примера, первая верхняя опорная выборка среди верхних опорных выборок может быть получена на основе конкретных верхних соседних выборок, полученных на основе положения первой верхней опорной выборки и направления предсказания текущего блока. В частности, конкретные верхние соседние выборки, позиционированные в направлении предсказания текущего блока, могут быть получены на основе положения верхней опорной выборки, и верхняя опорная выборка может быть получена на основе конкретных верхних соседних выборок. В этом случае, среднее значение значений выборок конкретных верхних соседних выборок может быть получено как значение выборки первой верхней опорной выборки. Кроме того, могут быть получены веса конкретных верхних соседних выборок, и первые верхние опорные выборки могут быть получены на основе весов и конкретных верхних соседних выборок. Когда веса конкретных верхних соседних выборок получены, первые верхние опорные выборки могут быть получены на основе Уравнения 1.
[118] Например, веса могут быть получены на основе расстояния между конкретными верхними соседними выборками и первой верхней опорной выборкой. То есть, вес соответствующей конкретной верхней соседней выборки среди конкретных верхних соседних выборок может быть получен на основе расстояния между соответствующей конкретной верхней соседней выборкой и первой верхней опорной выборкой, и, например, вес соответствующей конкретной верхней соседней выборки может быть обратно пропорциональным расстоянию между соответствующей конкретной верхней соседней выборкой и первой верхней опорной выборкой.
[119] Кроме того, в другом примере, веса могут быть получены на основе параметра квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[120] Когда конкретные верхние соседние выборки, полученные на основе направления предсказания текущего блока, включают в себя верхнюю соседнюю выборку, которая является дробной выборкой, значение выборки верхней соседней выборки, которая является дробной выборкой, дробные выборки могут быть получены посредством линейной интерполяции между значениями выборок целочисленных выборок, смежных слева и справа от верхней соседней выборки, которая является дробной выборкой. Например, значение выборки верхней соседней выборки, которая является дробной выборкой, может быть получено на основе Уравнения 2.
[121] Может быть определен способ получения верхних опорных выборок на основе режима интра-предсказания текущего блока. Например, когда режимом интра-предсказания текущего блока является режим, имеющий угол предсказания больше, чем таковой вертикального режима, т.е., когда режимом интра-предсказания текущего блока является один из 27-го по 34-ый режимы интра-предсказания, соответствующая верхняя опорная выборка из верхних опорных выборок может быть получена на основе конкретных верхних соседних выборок, позиционированных в направлении предсказания текущего блока на основе положения соответствующей верхней опорной выборки. Здесь, вертикальный режим может соответствовать 26-му режиму интра-предсказания. Кроме того, когда режимом интра-предсказания текущего блока является режим, имеющий угол предсказания, меньший или равный углу вертикального режима, т.е., когда режимом интра-предсказания текущего блока является один из 18-го по 26-ой режимы интра-предсказания, соответствующая верхняя опорная выборка верхних опорных выборок может быть получена на основе верхних соседних выборок, позиционированных в том же самом столбце, что и таковая соответствующей верхней опорной выборки.
[122] Устройство кодирования получает одну строку левых опорных выборок на основе левых соседних выборок (S1130). Устройство кодирования может получать один столбец левых опорных выборок на основе множества столбцов левых соседних выборок.
[123] Например, левая опорная выборка, позиционированная в y-ой строке среди левых опорных выборок, может быть получена на основе левых соседних выборок, позиционированных в y-ой строке среди левых соседних выборок. В этом случае, среднее значение значений выборок левых соседних выборок, позиционированных в y-ой строке, может быть получено как значение выборки левой опорной выборки, позиционированной в y-ой строке. Кроме того, могут быть получены веса левых соседних выборок, позиционированных в y-ой строке, и левая опорная выборка, позиционированная в y-ой строке, может быть получена на основе весов и левых соседних выборок, позиционированных в y-ой строке. Когда получены веса левых соседних выборок, позиционированных в y-ой строке, левая опорная выборка может быть получена на основе Уравнения 1.
[124] Например, веса могут быть получены на основе расстояния между левыми соседними выборками и левой опорной выборкой, позиционированной в y-ой строке. То есть, вес соответствующей левой соседней выборки среди левых соседних выборок, позиционированных в y-ой строке, может быть получен на основе расстояния между соответствующей левой соседней выборкой и левой опорной выборкой, и, например, вес соответствующей левой соседней выборки может быть обратно пропорциональным расстоянию между соответствующей левой соседней выборкой и левой опорной выборкой. Конкретно, когда получены четыре столбца левых соседних выборок, веса левых соседних выборок могут быть получены как 1/2, 1/4, 1/8 и 1/8 в порядке справа налево. Альтернативно, веса левых соседних выборок могут быть получены как 2/5, 2/5, 1/10 и 1/10 в порядке справа налево.
[125] Кроме того, в другом примере, веса могут быть получены на основе параметра квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[126] В качестве другого примера, первая левая опорная выборка левых опорных выборок может быть получена на основе конкретных левых соседних выборок, полученных на основе положения первой левой опорной выборки и направления предсказания текущего блока. В частности, конкретные левые соседние выборки, позиционированные в направлении предсказания текущего блока, могут быть получены на основе положения левой опорной выборки, и левая опорная выборка может быть получена на основе конкретных левых соседних выборок. В этом случае, среднее значение значений выборок конкретных левых соседних выборок может быть получено как значение выборки первой левой опорной выборки. Кроме того, веса конкретных левых соседних выборок могут быть получены, и первая левая опорная выборка может быть получена на основе весов и конкретных левых соседних выборок. Когда веса конкретных левых соседних выборок получены, первая левая опорная выборка может быть получена на основе Уравнения 1.
[127] Например, веса могут быть получены на основе расстояния между конкретными левыми соседними выборками и первой левой опорной выборкой. То есть, вес соответствующей конкретной левой соседней выборки среди конкретных левых соседних выборок может быть получен на основе расстояния между соответствующей конкретной левой соседней выборкой и первой левой опорной выборкой, и, например, вес соответствующей конкретной левой соседней выборки может быть обратно пропорциональным расстоянию между соответствующей конкретной левой соседней выборкой и первой левой опорной выборкой.
[128] Кроме того, в другом примере, веса могут быть получены на основе параметра квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[129] Когда конкретные левые соседние выборки, полученные на основе направления предсказания текущего блока, включают в себя левую соседнюю выборку, которая является дробной выборкой, значение выборки левой соседней выборки, которая является дробной выборкой, может быть получена посредством линейной интерполяции между значениями выборок целочисленных выборок, смежных слева и справа от левой соседней выборки, которая является дробной выборкой. Например, значение выборки левой соседней выборки, которая является дробной выборкой, может быть получено на основе Уравнения 2.
[130] Может быть определен способ получения левых опорных выборок на основе режима интра-предсказания текущего блока. Например, когда режимом интра-предсказания текущего блока является режим, имеющий угол предсказания больше, чем таковой горизонтального режима, т.е., когда режимом интра-предсказания текущего блока является один из 2-го по 9-ый режимы интра-предсказания, соответствующая левая опорная выборка левых опорных выборок может быть получена на основе конкретных левых соседних выборок, позиционированных в направлении предсказания текущего блока на основе положения соответствующей левой опорной выборки. Здесь, горизонтальный режим может соответствовать 10-му режиму интра-предсказания. Кроме того, когда режим интра-предсказания текущего блока является режимом, имеющим угол предсказания, меньший или равный таковому горизонтального режима, т.е., когда режим интра-предсказания текущего блока является одним из 10-го по 17-ый режимы интра-предсказания, соответствующая левая опорная выборка левых опорных выборок может быть получена на основе левых соседних выборок, позиционированных в той же строке, что и таковая соответствующей левой опорной выборки.
[131] Устройство кодирования генерирует выборку предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания (S1140). Устройство кодирования может генерировать выборки предсказания на основе верхней опорной выборки или левой опорной выборки, позиционированных в направлении предсказания режима интра-предсказания на основе положения выборки предсказания.
[132] Устройство кодирования генерирует, кодирует и выводит информацию предсказания текущего блока (S1150). Устройство кодирования может кодировать информацию о режиме интра-предсказания текущего блока и выводить кодированную информацию в форме битового потока. Устройство кодирования может генерировать информацию о режиме интра-предсказания, представляющую режим интра-предсказания, и кодировать сгенерированную информацию, чтобы вывести кодированную информацию в форме битового потока. Информация о режиме интра-предсказания может включать в себя информации, непосредственно указывающую режим интра-предсказания текущего блока, или может включать в себя информацию, указывающую любого одного кандидата в списке кандидатов режима интра-предсказания, полученном на основе режима интра-предсказания левого блока или верхнего блока текущего блока.
[133] Фиг. 12 схематично иллюстрирует способ декодирования видео устройством декодирования в соответствии с настоящим изобретением. Способ, раскрытый на фиг. 12, может выполняться устройством декодирования, раскрытым на фиг. 2. Конкретно, например, S1200-S1240 согласно фиг. 12 могут выполняться модулем предсказания устройства декодирования.
[134] Устройство декодирования получает режим интра-предсказания текущего блока (S1200). Устройство декодирования может получать информацию предсказания о текущем блоке посредством битового потока. Информация предсказания может включать в себя информацию, которая непосредственно указывает режим интра-предсказания текущего блока или информацию, указывающую любого одного кандидата в списке кандидатов режима интра-предсказания, полученном на основе режима интра-предсказания левого блока или верхнего блока текущего блока. Устройство декодирования может получать режим интра-предсказания текущего блока на основе полученной информации предсказания. Режим интра-предсказания может быть одним из двух ненаправленных режимов предсказания и 33 направленных режимов предсказания. Как описано выше, два ненаправленных режима предсказания могут включать в себя интра-DC режим и планарный режим.
[135] Устройство декодирования получает множество строк верхних соседних выборок и множество столбцов левых соседних выборок текущего блока (S1210). Устройство декодирования может получать множество строк верхних соседних выборок текущего блока. Например, устройство декодирования может получать четыре строки верхних соседних выборок текущего блока. Кроме того, например, когда размер текущего блока равен N×N, устройство декодирования может получать 2N верхних соседних выборок в каждой строке множества строк. 2N верхних соседних выборок каждой строки могут упоминаться как первые верхние соседние выборки.
[136] Верхняя опорная выборка может быть получена на основе конкретных верхних соседних выборок, полученных на основе положения верхней опорной выборки и направления предсказания режима интра-предсказания текущего блока, как описано ниже. В этом случае, верхние соседние выборки иные, чем первые верхние соседние выборки, могут использоваться для получения верхней опорной выборки в соответствии с направлением предсказания текущего блока.
[137] Например, когда размер текущего блока равен N×N, число верхних соседних выборок n-ой строки среди множества строк верхних соседних выборок может быть больше, чем 2N. В качестве другого примера, когда n-ая строка является первой строкой, число верхних соседних выборок n-ой строки равно 2N, и число верхних соседних выборок (n+1)-ой строки может быть больше, чем 2N. Кроме того, число верхних соседних выборок n-ой строки среди множества строк верхних соседних выборок текущего блока может быть меньше, чем таковое верхних соседних выборок (n+1)-ой строки. Конкретно, число верхних соседних выборок (n+1)-ой строки может быть больше, чем 2N, и верхние соседние выборки после 2N-ой верхней соседней выборки среди верхних соседних выборок (n+1)-ой строки могут быть получены посредством заполнения 2N-ой верхней соседней выборки среди верхних соседних выборок (n+1)-ой строки. Альтернативно, перед генерацией выборки предсказания текущего блока, когда сгенерированы восстановленные выборки, соответствующие верхним соседним выборкам после 2N-ой верхней соседней выборки среди верхних соседних выборок (n+1)-ой строки, восстановленные выборки могут быть получены как верхние соседние выборки после 2N-ой верхней соседней выборки.
[138] В качестве другого примера, когда размер текущего блока равен N×N, устройство декодирования может получать вторую верхнюю соседнюю выборку каждой строки на основе направления предсказания текущего блока. Здесь, вторая верхняя соседняя выборка может представлять верхнюю соседнюю выборку каждой строки иной, чем первая верхняя соседняя выборка. Число вторых верхних соседних выборок каждой строки может быть определено на основе направления предсказания. Вторая верхняя соседняя выборка каждой строки может быть получена посредством заполнения первой верхней соседней выборкой, позиционированной на крайней правой стороне среди первых верхних соседних выборок каждой строки. Альтернативно, перед генерацией выборки предсказания текущего блока, когда генерируется восстановленная выборка второй верхней соседней выборки, восстановленная выборка может быть получена как вторая верхняя соседняя выборка, и перед генерацией выборки предсказания текущего блока, когда восстановленная выборка второй верхней соседней выборки не генерируется, вторая верхняя соседняя выборка каждой строки может быть получена посредством заполнения первой верхней соседней выборки, позиционированной на крайней правой стороне среди первых верхних соседних выборок каждой строки.
[139] Кроме того, в другом примере, устройство декодирования может получать множество столбцов левых соседних выборок текущего блока. Например, устройство декодирования может получать четыре столбца левых соседних выборок текущего блока. Кроме того, например, когда размер текущего блока равен N×N, устройство декодирования может получать 2N левых соседних выборок в каждом столбце из множества столбцов. 2N левых соседних выборок каждого столбца могут упоминаться как первые левые соседние выборки.
[140] Левая опорная выборка может быть получена на основе конкретных левых соседних выборок, полученных на основе положения левой опорной выборки и направления предсказания режима интра-предсказания текущего блока, как описано далее. В этом случае, левые соседние выборки иные, чем первые левые соседние выборки, могут использоваться для получения левой опорной выборки в соответствии с направлением предсказания текущего блока.
[141] Например, когда размер текущего блока равен N×N, число левых соседних выборок n-го столбца среди множества столбцов левых соседних выборок может быть больше, чем 2N. В другом примере, когда n-ый столбец является первым столбцом, число левых соседних выборок n-го столбца равно 2N, и число левых соседних выборок (n+1)-го столбца может быть больше, чем 2N. Кроме того, число левых соседних выборок n-го столбца среди множества столбцов левых соседних выборок текущего блока может быть меньше, чем таковое левых соседних выборок (n+1)-го столбца. Конкретно, число левых соседних выборок (n+1)-го столбца может быть больше, чем 2N, и левые соседние выборки после 2N-ой левой соседней выборки среди левых соседних выборок (n+1)-го столбца могут быть получены посредством заполнения 2N-ой левой соседней выборкой среди левых соседних выборок (n+1)-го столбца. Альтернативно, перед генерацией выборки предсказания текущего блока, когда сгенерированы восстановленные выборки, соответствующие левым соседним выборкам после 2N-ой левой соседней выборки среди левых соседних выборок (n+1)-го столбца, восстановленные выборки могут быть получены для левых соседних выборок после 2N-ой левой соседней выборки.
[142] В качестве другого примера, когда размер текущего блока равен N×N, устройство декодирования может получать вторую левую соседнюю выборку каждого столбца на основе направления предсказания текущего блока. Число вторых левых соседних выборок каждого столбца может быть определено на основе направления предсказания. Вторая левая соседняя выборка каждого столбца может быть получена посредством заполнения первой левой соседней выборки, позиционированной на крайней нижней стороне среди первых левых соседних выборок каждого столбца. Альтернативно, перед генерацией выборки предсказания текущего блока, когда генерируется восстановленная выборка второй левой соседней выборки, восстановленная выборка может быть получена для второй левой соседней выборки, а перед генерацией выборки предсказания текущего блока, когда восстановленная выборка второй левой соседней выборки не генерируется, вторая левая соседняя выборка каждого столбца может быть получена посредством заполнения первой левой соседней выборкой, позиционированной на крайней нижней стороне среди первых левых соседних выборок каждого столбца.
[143] Устройство декодирования получает одну строку верхних опорных выборок на основе верхних соседних выборок (S1220). Устройство декодирования может получать одну строку верхних опорных выборок на основе множества строк верхних соседних выборок.
[144] Например, верхняя опорная выборка, позиционированная в x-ом столбце среди верхних опорных выборок, может быть получена на основе верхних соседних выборок, позиционированных в x-ом столбце среди верхних соседних выборок. В этом случае, среднее значение значений выборок верхних соседних выборок, позиционированных в x-ом столбце, может быть получено как значение выборки верхней опорной выборки, позиционированной в x-ом столбце. Кроме того, веса верхних соседних выборок, позиционированных в x-ом столбце, могут быть получены, и верхние опорные выборки, позиционированные в x-ом столбце, могут быть получены на основе весов и верхних соседних выборок, позиционированных в x-ом столбце. Когда веса верхних соседних выборок, позиционированных в x-ом столбце, получены, верхняя опорная выборка может быть получена на основе Уравнения 1.
[145] Например, веса могут быть получены на основе расстояния между верхними соседними выборками и верхней опорной выборкой, позиционированной в x-ом столбце. То есть, вес соответствующей верхней соседней выборки среди верхних соседних выборок, позиционированных в x-ом столбце, может быть получен на основе расстояния между соответствующей верхней соседней выборкой и верхней опорной выборкой, и, например, вес соответствующей верхней соседней выборки может быть обратно пропорциональным расстоянию между соответствующей верхней соседней выборкой и верхней опорной выборкой. Конкретно, когда четыре строки верхних соседних выборок получены, веса верхних соседних выборок могут быть получены как 1/2, 1/4, 1/8 и 1/8 в порядке снизу вверх. Альтернативно, веса верхних соседних выборок могут быть получены как 2/5, 2/5, 1/10 и 1/10 в порядке снизу вверх.
[146] Кроме того, в другом примере, веса могут быть получены на основе параметра квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[147] В качестве другого примера, первая верхняя опорная выборка среди верхних опорных выборок может быть получена на основе конкретных верхних соседних выборок, полученных на основе положения первой верхней опорной выборки и направления предсказания текущего блока. В частности, конкретные верхние соседние выборки, позиционированные в направлении предсказания текущего блока, могут быть получены на основе положения верхней опорной выборки, и верхняя опорная выборка может быть получена на основе конкретных верхних соседних выборок. В этом случае, среднее значение значений выборок конкретных верхних соседних выборок может быть получено как значение выборки первой верхней опорной выборки. Кроме того, веса конкретных верхних соседних выборок могут быть получены, и первая верхняя опорная выборка может быть получена на основе весов и конкретных верхних соседних выборок. Когда веса конкретных верхних соседних выборок получены, первая верхняя опорная выборка может быть получена на основе Уравнения 1.
[148] Например, веса могут быть получены на основе расстояния между конкретными верхними соседними выборками и первой верхней опорной выборкой. То есть, вес соответствующей конкретной верхней соседней выборки среди конкретных верхних соседних выборок может быть получен на основе расстояния между соответствующей конкретной верхней соседней выборкой и первой верхней опорной выборкой, и, например, вес соответствующей конкретной верхней соседней выборки может быть обратно пропорциональным расстоянию между соответствующей конкретной верхней соседней выборкой и первой верхней опорной выборкой.
[149] Кроме того, в другом примере, веса могут быть получены на основе параметра квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[150] Когда конкретные верхние соседние выборки, полученные на основе направления предсказания текущего блока, включают в себя верхнюю соседнюю выборку, которая является дробной выборкой, значение выборки, которая является дробной выборкой, из верхних соседних выборок, являющихся дробными выборками, может быть получено посредством линейной интерполяции между значениями выборки целочисленных выборок, смежных слева и справа от верхней соседней выборки, которая является дробной выборкой. Например, значение выборки верхней соседней выборки, которая является дробной выборкой, может быть получена на основе Уравнения 2.
[151] Может быть определен способ получения верхних опорных выборок на основе режима интра-предсказания текущего блока. Например, когда режим интра-предсказания текущего блока является режимом, имеющим угол предсказания больше, чем таковой вертикального режима, т.е., когда режимом интра-предсказания текущего блока является один из 27-го до 34-го режимов интра-предсказания, соответствующая верхняя опорная из выборка верхних опорных выборок может быть получена на основе конкретных верхних соседних выборок, позиционированных в направлении предсказания текущего блока на основе положения соответствующей верхней опорной выборки. Здесь, вертикальный режим может соответствовать 26-му режиму интра-предсказания. Когда режимом интра-предсказания текущего блока является режим, имеющий угол предсказания, меньший или равный таковому вертикального режима, т.е., когда режимом интра-предсказания текущего блока является один из 18-го по 26-ый режимы интра-предсказания, соответствующая верхняя опорная выборка из верхних опорных выборок может быть получена на основе верхних соседних выборок, позиционированных в том же столбце, что и соответствующая верхняя опорная выборка.
[152] Устройство декодирования получает одну строку левых опорных выборок на основе левых соседних выборок (S1230). Устройство декодирования может получать одну строку левых опорных выборок на основе множества столбцов левых соседних выборок.
[153] Например, левая опорная выборка, позиционированная в y-ой строке среди левых опорных выборок, может быть получена на основе левых соседних выборок, позиционированных в y-ой строке среди левых соседних выборок. В этом случае, среднее значение значений выборок левых соседних выборок, позиционированных в y-ой строке, может быть получено как значение выборки левой опорной выборки, позиционированной в y-ой строки. Кроме того, веса левых соседних выборок, позиционированных в y-ой строке, могут быть получены, и левая опорная выборка, позиционированная в y-ой строке, может быть получена на основе весов и левых соседних выборок, позиционированных в y-ой строке. Когда веса левых соседних выборок, позиционированных в y-ой строке, получены, левая опорная выборка может быть получена на основе Уравнения 1.
[154] Например, веса могут быть получены на основе расстояния между левыми соседними выборками и левой опорной выборкой, позиционированной в y-ой строке. То есть, вес соответствующей левой соседней выборки среди левых соседних выборок, позиционированных в y-ой строке, может быть получен на основе расстояния между соответствующей левой соседней выборкой и левой опорной выборкой, и, например, вес соответствующей соседней выборки может быть обратно пропорциональным расстоянию между соответствующей левой соседней выборкой и левой опорной выборкой. Конкретно, когда четыре столбца левых соседних выборок получены, веса левых соседних выборок могут быть получены как 1/2, 1/4, 1/8 и 1/8 в порядке справа налево. Альтернативно, веса левых соседних выборок могут быть получены как 2/5, 2/5, 1/10 и 1/10 в порядке справа налево.
[155] Кроме того, в другом примере, веса могут быть получены на основе параметров квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[156] В качестве другого примера, первая левая опорная выборка среди левых опорных выборок может быть получена на основе конкретных левых соседних выборок, полученных на основе положения первой левой опорной выборки и направления предсказания текущего блока. В частности, конкретные левые соседние выборки, позиционированные в направлении предсказания текущего блока, могут быть получены на основе положения левой опорной выборки, и левая опорная выборка может быть получена на основе конкретных левых соседних выборок. В этом случае, среднее значение значений выборок конкретных левых соседних выборок может быть получено как значение выборки первой левой опорной выборки. Кроме того, веса конкретных левых соседних выборок могут быть получены, и первая левая опорная выборка может быть получена на основе весов и конкретных левых соседних выборок. Когда веса конкретных левых соседних выборок получены, первая левая опорная выборка может быть получена на основе Уравнения 1.
[157] Например, веса могут быть получены на основе расстояния между конкретными левыми соседними выборками и первой левой опорной выборкой. То есть, вес соответствующей конкретной левой соседней выборки среди конкретных левых соседних выборок может быть получен на основе расстояния между соответствующей конкретной левой соседней выборкой и первой левой опорной выборкой, и, например, вес соответствующей конкретной левой соседней выборки может быть обратно пропорциональным расстоянию между соответствующей конкретной левой соседней выборкой и первой левой опорной выборкой.
[158] Кроме того, в другом примере, веса могут быть получены на основе параметра квантования (QP) или размера текущего блока. Кроме того, веса могут быть получены на основе различных критериев.
[159] Когда конкретные левые соседние выборки, полученные на основе направления предсказания текущего блока, включают в себя левую соседнюю выборку, которая является дробной выборкой, значение выборки левой соседней выборки, которая является дробной выборкой, может быть получено посредством линейной интерполяции между значениями выборок целочисленных выборок, смежных слева и справа от левой соседней выборки, которая является дробной выборкой. Например, значение выборки левой соседней выборки, которая является дробной выборкой, может быть получена на основе Уравнения 2.
[160] Может быть определен способ получения левых опорных выборок на основе режима интра-предсказания текущего блока. Например, когда режим интра-предсказания текущего блока является режимом, имеющим угол предсказания больший, чем таковой в горизонтальном режиме, т.е., когда режим интра-предсказания текущего блока одним из 2-го по 9-ый режимы интра-предсказания, соответствующая левая опорная выборка из левых опорных выборок может быть получена на основе конкретных левых соседних выборок, позиционированных в направлении предсказания текущего блока на основе положения соответствующей левой опорной выборки. Здесь, горизонтальный режим может соответствовать 10-му режиму интра-предсказания. Кроме того, когда режим интра-предсказания текущего блока является режимом, имеющим угол предсказания меньший или равный таковому для горизонтального режима, т.е., когда режим интра-предсказания текущего блока является одним из 10-го по 17-ый режимы интра-предсказания, соответствующая левая опорная выборка из левых опорных выборок может быть получена на основе левых соседних выборок, позиционированных в той же самой строке, что и таковая соответствующей левой опорной выборки.
[161] Устройство декодирования генерирует выборку предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания (S1240). Устройство декодирования может генерировать выборки предсказания на основе верхней опорной выборки или левой опорной выборки, позиционированных в направлении предсказания режима интра-предсказания на основе положения выборки предсказания.
[162] Хотя не показано на чертежах, устройство декодирования может сразу использовать выборку предсказания как восстановленную выборку в соответствии с режимом предсказания или может суммировать остаточную выборку с выборкой предсказания, чтобы генерировать восстановленную выборку. Когда имеется остаточная выборка целевого блока, устройство декодирования может принимать информацию об остаточной выборке целевого блока, и информация об остаточной выборке может быть включена в информацию о шаге. Информация об остаточной выборке может включать в себя коэффициент преобразования, относящийся к остаточной выборке. Устройство декодирования может получать остаточную выборку (или массив остаточных выборок) целевого блока на основе остаточной информации. Устройство декодирования может генерировать восстановленную выборку на основе выборки предсказания и остаточной выборки и может получать восстановленный блок или восстановленную картинку на основе восстановленной выборки. Поэтому, указывается, что устройство декодирования может применять фильтрацию устранения блочности и/или процедуру контурной фильтрации, такую как процедура SAO, к восстановленной картинке, чтобы улучшить субъективное/ объективное качество картинки, как требуется.
[163] В соответствии с настоящим изобретением, опорная выборка текущего блока может быть получена на основе множества соседних выборок и посредством выполнения интра-предсказания на основе опорной выборки, точность предсказания текущего блока может быть улучшена, тем самым повышая в целом эффективность кодирования.
[164] Кроме того, в соответствии с настоящим изобретением, опорная выборка может быть получена на основе множества соседних выборок, позиционированных в направлении предсказания режима интра-предсказания текущего блока, и посредством выполнения интра-предсказания на основе опорной выборки точность предсказания текущего блока может быть улучшена, тем самым повышая в целом эффективность кодирования.
[165] Кроме того, в соответствии с настоящим изобретением, могут быть получены веса множества соседних выборок, опорная выборка может быть получена на основе весов и соседних выборок, и посредством выполнения интра-предсказания на основе опорной выборки точность предсказания текущего блока может быть улучшена, тем самым повышая в целом эффективность кодирования.
[166] В вышеописанном варианте осуществления, способы описаны на основе блок-схемы последовательности операций, имеющей последовательность этапов или блоков. Настоящее раскрытие не ограничено порядком вышеописанных этапов или блоков. Некоторые этапы или блоки могут быть реализованы одновременно или в другом порядке, отличном от этапов или блоков, как описано выше. Кроме того, специалисты в данной области техники поймут что этапы, показанные в приведенной выше блок-схеме последовательности операций, не являются исключительными, что дополнительно могут быть включены этапы, или один или более этапов в блок-схеме последовательности операций могут быть удалены, не оказывая влияния на объем настоящего раскрытия.
[167] Способ в соответствии с настоящим изобретением, описанный выше, может быть реализован в программном обеспечении. Устройство кодирования и/или устройство декодирования в соответствии с настоящим изобретением может быть включено в устройство, которое выполняет обработку изображения, например, для TV, компьютера, смартфона, телевизионной приставки или устройства отображения.
[168] Когда варианты осуществления настоящего изобретения реализованы в программном обеспечении, вышеописанный способ может быть реализован модулями (процессами, функциями и так далее), которые выполняют функции, описанные выше. Такие модули могут сохраняться в памяти и исполняться процессором. Память может быть внутренней или внешней для процессора, и память может быть связана с процессором с использованием различных хорошо известных средств. Процессор может содержать специализированную интегральную схему (ASIC), другие чипсеты, логическую схему и/или устройство обработки данных. Память может включать в себя ROM (постоянную память), RAM (память с произвольным доступом), флэш-память, карту памяти, носитель хранения и/или другое устройство хранения.
Положение 1. Способ декодирования видео, выполняемый устройством декодирования, причем способ содержит:
получение режима интра-предсказания текущего блока;
получение множества строк верхних соседних выборок и множества столбцов левых соседних выборок текущего блока;
получение одной строки верхних опорных выборок на основе верхних соседних выборок;
получение одного столбца левых опорных выборок на основе левых соседних выборок; и
генерацию выборки предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания.
Положение 2. Способ согласно Положению 1, в котором верхнюю опорную выборку, позиционированную в x-ом столбце среди верхних опорных выборок, получают на основе верхних соседних выборок позиционированных в x-ом столбце среди верхних соседних выборок.
Положение 3. Способ согласно Положению 2, в котором получают верхние соседние выборки, позиционированные в x-ом столбце, и причем верхнюю опорную выборку, позиционированную в x-ом столбце, получают на основе веса и верхних соседних выборок, позиционированных в x-ом столбце.
Положение 4. Способ согласно Положению 1, в котором первую верхнюю опорную выборку верхних опорных выборок получают на основе конкретных верхних соседних выборок, полученных на основе положения первой верхней опорной выборки и направления предсказания текущего блока.
Положение 5. Способ согласно Положению 4, в котором получают веса конкретных верхних соседних выборок, полученных на основе направления предсказания текущего блока, и первую верхнюю опорную выборку получают на основе веса и конкретных верхних соседних выборок.
Положение 6. Способ согласно Положению 5, в котором веса получают на основе расстояния между конкретными верхними соседними выборками и первой верхней опорной выборкой.
Положение 7. Способ согласно Положению 4, в котором число верхних соседних выборок n-ой строки среди множества строк верхних соседних выборок текущего блока меньше, чем таковое верхних соседних выборок (n+1)-ой строки, когда размер текущего блока равен N×N.
Положение 8. Способ согласно Положению 7, в котором номер (n+1)-ой строки верхних соседних выборок больше, чем 2N, и верхние соседние выборки после 2N-ой верхней соседней выборки среди (n+1)-ой строки верхних соседних выборок получают посредством заполнения 2N-ой верхней соседней выборкой среди (n+1)-ой строки верхних соседних выборок.
Положение 9. Способ согласно Положению 7, в котором, перед генерацией выборки предсказания текущего блока, когда сгенерированы восстановленные выборки, соответствующие верхним соседним выборкам, после 2N-ой верхней соседней выборки среди (n+1)-ой строки верхних соседних выборок, восстановленные выборки получают как верхние соседние выборки после 2N-ой верхней соседней выборки строки.
Положение 10. Способ согласно Положению 4, в котором, когда верхняя соседняя выборка, которая является дробной выборкой, включена в конкретные верхние соседние выборки, полученные на основе направления предсказания текущего блока, значение выборки верхней соседней выборки, которая является дробной выборкой, получают посредством линейной интерполяции между значениями выборок целочисленных выборок, смежных слева и справа от верхней соседней выборки, которая является дробной выборкой.
Положение 11. Устройство декодирования для декодирования изображения, причем устройство декодирования содержит:
модуль энтропийного декодирования для получения информации предсказания на текущем блоке; и
модуль предсказания для получения режима интра-предсказания текущего блока, получения множества строк верхних соседних выборок и множества столбцов левых соседних выборок текущего блока, получение одной строки верхних опорных выборок на основе верхних соседних выборок, получение одного столбца левых опорных выборок на основе левых соседних выборок и генерацию выборки предсказания текущего блока с использованием по меньшей мере одной из верхних опорных выборок и левых опорных выборок в соответствии с режимом интра-предсказания.
Положение 12. Устройство декодирования согласно Положению 11, причем верхнюю опорную выборку, позиционированную в x-ом столбце среди верхних опорных выборок, получают на основе верхних соседних выборок, позиционированных в x-ом столбце среди верхних соседних выборок.
Положение 13. Устройство декодирования согласно Положению 11, причем первую верхнюю опорную выборку из верхних опорных выборок получают на основе конкретных верхних соседних выборок, полученных на основе положения первой верхней опорной выборки и направления предсказания текущего блока.
Положение 14. Устройство декодирования согласно Положению 13, причем число верхних соседних выборок n-ой строки среди множества строк верхних соседних выборок текущего блока меньше, чем таковое верхних соседних выборок (n+1)-ой строки, когда размер текущего блока равен N×N.
Положение 15. Устройство декодирования согласно Положению 14, причем номер (n+1)-ой строки верхних соседних выборок больше, чем 2N,
перед генерацией выборки предсказания текущего блока, когда сгенерированы восстановленные выборки, соответствующие соседним выборкам после 2N-ой соседней выборки среди (n+1)-ой строки верхних соседних выборок, восстановленные выборки получают как соседние выборки после 2N-ой соседней выборки, и
перед генерацией выборки предсказания текущего блока, когда восстановленные выборки, соответствующие соседним выборкам после 2N-ой соседней выборки среди (n+1)-ой строки верхних соседних выборок, не сгенерированы, верхние соседние выборки после 2N-ой верхней соседней выборки среди (n+1)-ой строки верхних соседних выборок получают посредством заполнения 2N-ой верхней соседней выборкой среди (n+1)-ой строки верхних соседних выборок.