Область техники
[0001] Настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения и носителю записи, хранящему битовый поток. Более конкретно, настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения и носителю записи, хранящему битовый поток, на основе списка кандидатов и списка режимов интра-предсказания.
Предшествующий уровень техники
[0002] В последнее время потребности в изображениях высокого разрешения и высокого качества, таких как изображения высокой четкости (HD) и изображения ультравысокой четкости (UHD), возросли в различных областях применения. Однако данные изображения более высокого разрешения и качества имеют увеличенные объемы данных по сравнению с данными обычного изображения. Поэтому при передаче данных изображения с использованием носителя, такого как традиционные проводные и беспроводные широкополосные сети, или при хранении данных изображения с использованием традиционных носителей хранения, затраты на передачу и хранение увеличиваются. Чтобы решить эти проблемы, возникающие с увеличением разрешения и качества данных изображения, требуются высокоэффективные методы кодирования/декодирования изображения для изображений более высокого разрешения и более высокого качества.
[0003] Технология сжатия изображений включает в себя различные методы, в том числе: метод интер-предсказания путем предсказания пиксельного значения, включенного в текущую картинку, из предыдущей или последующей картинки относительно текущей картинки; метод интра-предсказания путем предсказания пиксельного значения, включенного в текущую картинку, с использованием пиксельной информации в текущей картинке; метод преобразования и квантования для сжатия энергии остаточного сигнала; метод энтропийного кодирования путем назначения короткого кода значению с высокой частотой появления и назначения длинного кода значению с низкой частотой появления и т.д. Данные изображения могут быть эффективно сжаты с использованием такой технологии сжатия изображения и могут передаваться или сохраняться.
Раскрытие
Техническая задача
[0004] Задачей настоящего изобретения является обеспечить способ и устройство для кодирования/декодирования изображения, имеющие повышенную эффективность сжатия, и носитель записи, хранящий битовый поток, сгенерированный способом и устройством для кодирования/декодирования изображения.
[0005] Кроме того, задачей настоящего изобретения является обеспечить способ и устройство для кодирования/декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка кандидатов.
[0006] Другой задачей настоящего изобретения является обеспечить способ и устройство для кодирования/декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка режимов интра-предсказания.
Техническое решение
[0007] В соответствии с настоящим изобретением, способ декодирования изображения содержит выведение первого списка кандидатов текущего блока с использованием информации движения соседнего блока текущего блока, чтобы вывести первый список кандидатов для текущего блока, выведение второго списка кандидатов для текущего блока с использованием ранее восстановленной информации движения, выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов и генерирование блока предсказания для текущего блока с использованием третьего списка кандидатов.
[0008] В способе декодирования видео, соседний блок включает в себя по меньшей мере одно из пространственно соседнего блока и соседнего по времени блока.
[0009] В способе декодирования видео, выведение второго списка кандидатов включает в себя добавление ранее восстановленной информации движения во второй список кандидатов, причем ранее восстановленная информация движения представляет собой информацию движения блока кодирования, декодированного непосредственно перед декодированием текущего блока.
[0010] Способ декодирования видео дополнительно содержит инициализацию второго списка кандидатов, причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).
[0011] Способ декодирования видео дополнительно содержит, когда число частей информации движения, включенной во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенной во второй список кандидатов.
[0012] В способе декодирования видео, ранее восстановленная информация движения добавляется в следующем порядке информации движения, включенной во второй список кандидатов последней.
[0013] Способ декодирования видео дополнительно содержит, когда та же самая информация движения, что и ранее восстановленная информация движения, уже включена во второй список кандидатов, удаление той же самой информации движения из второго списка кандидатов.
[0014] В способе декодирования видео, ранее восстановленная информация движения добавляется в следующем порядке информации движения, включенной во второй список кандидатов последней.
[0015] В способе декодирования видео, максимальное число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.
[0016] Способ декодирования видео дополнительно содержит выведение средней информации движения путем вычисления среднего значения множества частей информации движения, включенных в третий список кандидатов, и добавление средней информации движения в третий список кандидатов.
[0017] Способ декодирования видео дополнительно содержит разделение текущего блока на первую область и вторую область, причем генерирование блока предсказания для текущего блока включает в себя генерирование блоков предсказания для первой области и второй области с использованием третьего списка кандидатов.
[0018] В способе декодирования видео, третий список кандидатов используется для генерирования блока предсказания внутриблочного копирования (IBC) для текущего блока.
[0019] В соответствии с настоящим изобретением, способ декодирования изображения содержит определение информации движения текущего блока, выведение первого списка кандидатов для текущего блока с использованием информации движения соседнего блока текущего блока, выведение второго списка кандидатов для текущего блока с использованием ранее кодированной информации движения и выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов.
[0020] В способе кодирования видео, выведение второго списка кандидатов включает в себя добавление ранее кодированной информации движения во второй список кандидатов, причем ранее кодированная информация движения представляет собой информацию движения блока кодирования, кодированного непосредственно перед кодированием текущего блока.
[0021] Способ кодирования видео дополнительно содержит инициализацию второго списка кандидатов, причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).
[0022] Способ декодирования видео дополнительно содержит, когда число частей информации движения, включенных во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенных во второй список кандидатов.
[0023] Способ декодирования видео дополнительно содержит, когда та же самая информация движения, что и ранее кодированная информация движения, уже включена во второй список кандидатов, удаление той же самой информации движения из второго списка кандидатов.
[0024] В способе кодирования видео, число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.
[0025] В соответствии с настоящим изобретением, считываемый компьютером носитель записи хранит битовый поток, который принимается устройством декодирования изображения и используется для восстановления текущего блока, включенного в текущую картинку, причем битовый поток включает в себя информацию о предсказании текущего блока, информация о предсказании используется, чтобы вывести первый список кандидатов для текущего блока с использованием информации движения соседнего блока текущего блока, информация о предсказании используется, чтобы вывести второй список кандидатов для текущего блока с использованием ранее восстановленной информации движения, и первый список кандидатов и второй список кандидатов используются, чтобы вывести третий список кандидатов, используемый для генерирования блока предсказания для текущего блока.
ПОЛЕЗНЫЕ ЭФФЕКТЫ
[0026] В соответствии с настоящим изобретением, можно обеспечить способ и устройство для кодирования/декодирования изображения, имеющие повышенную эффективность сжатия, и носитель записи, хранящий битовый поток, сгенерированный способом и устройством для кодирования/декодирования изображения.
[0027] Кроме того, в соответствии с настоящим изобретением, можно обеспечить способ и устройство для кодирования/ декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка кандидатов.
[0028] Кроме того, в соответствии с настоящим изобретением, можно обеспечить способ и устройство для кодирования/ декодирования изображения и носитель записи, хранящий битовый поток, которые имеют повышенную эффективность сжатия, с использованием списка режимов интра-предсказания.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0029] Фиг. 1 представляет собой блок-схему, показывающую конфигурацию устройства кодирования, в котором применимо настоящее изобретение.
[0030] Фиг. 2 представляет собой блок-схему, показывающую конфигурацию устройства декодирования, в котором применимо настоящее изобретение.
[0031] Фиг. 3 представляет собой вид, схематично показывающий структуру разбиения при кодировании и декодировании изображения.
[0032] Фиг. 4 представляет собой вид, показывающий пример интра-предсказания.
[0033] Фиг. 5 представляет собой вид, показывающий пример интер-предсказания.
[0034] Фиг. 6 представляет собой вид, показывающий пример преобразования и квантования.
[0035] Фиг. 7 представляет собой вид, показывающий опорные выборки, которые полезны для интра-предсказания.
[0036] Фиг. 8 представляет собой диаграмму, иллюстрирующую верхнюю единицу предсказания (UPU) используемую в некоторых вариантах осуществления настоящего изобретения.
[0037] Фиг. 9 представляет собой диаграмму, иллюстрирующую структуру кодера в соответствии с вариантом осуществления настоящего изобретения.
[0038] Фиг. 10 представляет собой диаграмму, иллюстрирующую структуру декодера в соответствии с вариантом осуществления настоящего изобретения.
[0039] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования/декодирования в соответствии с вариантом осуществления настоящего изобретения.
[0040] Фиг. 12 представляет собой диаграмму, иллюстрирующую структуру кодера и декодера в соответствии с другим вариантом осуществления настоящего изобретения.
[0041] Фиг. 13 представляет собой диаграмму, иллюстрирующую список кандидатов в соответствии с вариантом осуществления настоящего изобретения.
[0042] Фиг. 14 представляет собой диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.
[0043] Фиг. 15 представляет собой другую диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.
[0044] Фиг. 16 представляет собой диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.
[0045] Фиг. 17-20 представляют собой диаграммы, иллюстрирующие структуру синтаксиса в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0046] Фиг. 21 и 22 представляют собой диаграммы, иллюстрирующие блок-схемы последовательностей операций кодера и декодера для аппроксимации информации движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0047] Фиг. 23 и 24 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для аппроксимации информации движения, в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0048] Фиг. 25 и 26 представляют собой диаграммы, иллюстрирующие способ вычисления потенциала списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0049] Фиг. 27 и 28 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для вычисления потенциала списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0050] Фиг. 29 представляет собой диаграмму, иллюстрирующую структуру кодера и декодера для вычисления потенциала предсказания списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0051] Фиг. 30 представляет собой диаграмму, иллюстрирующую генерацию смешанного списка кандидатов в соответствии с вариантом осуществления настоящего изобретения.
[0052] Фиг. 31 и 32 представляют собой диаграммы, иллюстрирующие способ инициализации списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0053] Фиг. 33 представляет собой диаграмму, иллюстрирующую масштабирование информации движения.
[0054] Фиг. 34 представляет собой диаграмму, иллюстрирующую масштабирование информации движения в соответствии с вариантом осуществления настоящего изобретения.
[0055] Фиг. 35-39 представляют собой диаграммы, иллюстрирующие способ обновления и совместного использования списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0056] Фиг. 40 представляет собой диаграмму, иллюстрирующую список кандидатов, составленный из одной UPU, и список кандидатов, составленный из множества UPU в соответствии с вариантом осуществления настоящего изобретения.
[0057] Фиг. 41 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования в соответствии с вариантом осуществления настоящего изобретения.
[0058] Фиг. 42 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования в соответствии с вариантом осуществления настоящего изобретения.
[0059] Фиг. 43 и 44 представляют собой диаграммы, иллюстрирующие кандидатов MPM.
[0060] Фиг. 45 представляет собой диаграмму, иллюстрирующую пример выбора режима интра-предсказания.
[0061] Фиг. 46 представляет собой диаграмму, иллюстрирующую случай, когда режим интра-предсказания текущего блока не включен в список MPM.
[0062] Фиг. 47 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0063] Фиг. 48 представляет собой другую диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0064] Фиг. 49 иллюстрирует способ, иллюстрирующий основанный на счете список режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0065] Фиг. 50 представляет собой диаграмму, иллюстрирующую способ конфигурирования основанного на затратах списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0066] Фиг. 51 и 52 представляют собой диаграммы, иллюстрирующие способ изменения индекса списка режимов интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0067] Фиг. 53 и 54 представляют собой диаграммы, иллюстрирующие область, конфигурирующую список режимов интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0068] Фиг. 55 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0069] Фиг. 56-58 представляют собой диаграммы, иллюстрирующие способ распределения индекса режима интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0070] Фиг. 59 представляет собой диаграмму, иллюстрирующую способ конфигурирования множества списков режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0071] Фиг. 60 и 61 представляют собой диаграммы, иллюстрирующие способ конфигурирования множества списков режимов интра-предсказания с учетом направления режима предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0072] Фиг. 62 представляет собой схему, иллюстрирующую структуру кодера и декодера для дополнения списка интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0073] Фиг. 63 представляет собой диаграмму, иллюстрирующую способ дополнения списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0074] Фиг. 64 представляет собой диаграмму, иллюстрирующую способ изменения порядка подстановки с учетом режима интра-предсказания соседнего блока в соответствии с вариантом осуществления настоящего изобретения.
[0075] Фиг. 65 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму MPM в соответствии с одним вариантом осуществления настоящего изобретения. Фиг. 66 представляет собой диаграмму для описания способа применения списка режимов интра-предсказания к режиму не-MPM кодером в соответствии с вариантом осуществления настоящего изобретения.
[0076] Фиг. 66 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM кодером в соответствии с вариантом осуществления настоящего изобретения.
[0077] Фиг. 67 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM декодером в соответствии с вариантом осуществления настоящего изобретения.
[0078] Фиг. 68 представляет собой диаграмму, иллюстрирующую способ кодирования/декодирования изображения с использованием списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0079] Фиг. 69 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0080] Фиг. 70 и 71 представляют собой диаграммы, иллюстрирующие способ кодирования/декодирования в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0081] Фиг. 72 представляет собой диаграмму, иллюстрирующую способ инициализации списка интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[0082] Фиг. 73 представляет собой диаграмму, иллюстрирующую синтаксис списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
Наилучший режим
[0083] Множество модификаций может быть выполнено в настоящем изобретении, и имеются различные варианты осуществления настоящего изобретения, примеры которых будут представлены далее и подробно описаны со ссылками на чертежи. Однако настоящее изобретение не ограничено ими, хотя примерные варианты осуществления могут быть истолкованы как включающие все модификации, эквиваленты или замены в техническом принципе и техническом объеме настоящего изобретения. Сходные ссылочные позиции относятся к одинаковым или сходным функциям в различных аспектах. На чертежах, формы и размеры элементов могут быть преувеличены для ясности. В последующем подробном описании настоящего изобретения ссылки даются на приложенные чертежи, которые показывают, для иллюстрации, конкретные варианты осуществления, в которых может быть реализовано настоящее изобретение. Эти варианты осуществления описаны достаточно детально, чтобы позволить специалистам в данной области реализовать настоящее раскрытие. Должно быть понятно, что многочисленные варианты осуществления настоящего раскрытия, хотя и различные, не обязательно являются взаимно исключающими. Например, конкретные признаки, структуры и характеристики, описанные здесь в связи с одним вариантом осуществления, могут быть реализованы в другом варианте осуществления без отклонения от сущности и объема настоящего раскрытия. Кроме того, должно быть понятно, что местоположение или компоновка отдельных элементов в каждом раскрытом варианте осуществления может модифицироваться без отклонения от сущности и объема настоящего раскрытия. Поэтому последующее подробное описание не следует понимать в ограничивающем смысле, и объем настоящего раскрытия определяется только приложенными пунктами формулы изобретения, интерпретируемыми надлежащим образом, вместе с полным диапазоном эквивалентов того, что заявляется в пунктах формулы изобретения.
[0084] Используемые в описании термины ‘первый’, ‘второй’ и т.д. могут использоваться для описания различных компонентов, но компоненты не должны подразумеваться ограниченными этими терминами. Эти термины используются только для различения одного компонента от других компонентов. Например, ‘первый’ компонент может именоваться ‘вторым’ компонентом без отклонения от объема настоящего изобретения, и ‘второй’ компонент может также аналогичным образом именоваться ‘первым’ компонентом. Термин ‘и/или’ включает в себя комбинацию множества элементов или любой один из множества членов.
[0085] Следует понимать, что когда элемент просто упоминается как ‘соединенный с’ или ‘связанный с’ другим элементом, не будучи ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ другим элементом в настоящем описании, он может быть ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ с другим элементом или быть соединенным или связанным с другим элементом, имея другой элемент, промежуточный между ними. Напротив, следует понимать, что когда элемент упоминается как “непосредственно связанный” или “непосредственно соединенный” с другим элементом, то не имеется промежуточных элементов.
[0086] Кроме того, составные части, показанные в вариантах осуществления настоящего изобретения, показаны независимо, чтобы представлять характерные функции, отличающиеся друг от друга. Таким образом, это не означает, что каждая составная часть содержится в составном блоке отдельного аппаратного средства или программного обеспечения. Иными словами, каждая составная часть включает в себя каждую из пронумерованных составных частей, для удобства. Таким образом, по меньшей мере две составные части каждой составной части могут объединяться, чтобы образовывать одну составную часть, или одна составная часть может быть разделена на множество составных частей, чтобы выполнять каждую функцию. Вариант осуществления, где каждая составная часть объединена, и вариант осуществления, где одна составная часть разделена, также включены в объем настоящего изобретения, если это не приводит к отклонению от сущности настоящего изобретения.
[0087] Термины, используемые в настоящем описании, используются просто для описания конкретных вариантов осуществления и не подразумевают ограничения настоящего изобретения. Выражение, использованное в единственном числе, включает в себя выражение во множественном числе, если только это не имеет явно отличающегося значения в контексте. В настоящем описании, следует понимать, что такие термины, как “включающий в себя”, “имеющий” и т.д., предназначены, чтобы указывать наличие признаков, количеств, этапов, действий, элементов, частей или их комбинаций, раскрытых в описании, не должны исключать возможность того, один или более других признаков, количеств, этапов, действий, элементов, частей или их комбинаций могут существовать или могут добавляться. Иными словами, когда конкретный элемент упоминается как “включенный”, элементы иные, чем соответствующий элемент, не исключаются, но дополнительные элементы могут быть включены в варианты осуществления настоящего изобретения или объем настоящего изобретения.
[0088] Кроме того, некоторые из компонентов могут не являться необходимыми компонентами, выполняющими существенные функции настоящего изобретения, а являются конкретными компонентами, лишь улучшающими его рабочие характеристики. Настоящее изобретение может быть реализовано путем включения в него только необходимых составных частей для реализации сущности настоящего изобретения, исключая компоненты, используемые для улучшения рабочих характеристик. Структура, включающая в себя только необходимые компоненты, исключая конкретные компоненты, используемые только для улучшения рабочих характеристик, также включена в объем настоящего изобретения.
[0089] Далее, варианты осуществления настоящего изобретения будут описаны подробно со ссылками на приложенные чертежи. При описании примерных вариантов осуществления настоящего изобретения, хорошо известные функции или конструкции не будут подробно описываться, поскольку они могли бы ненужным образом усложнить понимание настоящего изобретения. Одинаковые компоненты на чертежах обозначены теми же самыми ссылочными позициями, и повторное описание одних и тех же элементов будет опущено.
[0090] Далее, изображение может означать картинку, конфигурирующую видео, или может означать само видео. Например, “кодирование или декодирование, или оба из них, изображения” может означать “кодирование или декодирование, или оба из них, движущейся картинки” и может означать “кодирование или декодирование, или оба из них, одного изображения среди изображений движущейся картинки”.
[0091] Далее, термины “движущаяся картинка” и “видео” могут использоваться как имеющие одно и то же значение и могут заменять друг друга.
[0092] Далее, целевое изображение может быть целевым изображением кодирования, которое является целью кодирования, и/или целевым изображением декодирования, которое является целью декодирования. Также, целевое изображение может быть входным изображением, введенным в устройство кодирования, и входным изображением, введенным в устройство декодирования. Здесь, целевое изображение может иметь то же самое значение, что и текущее изображение.
[0093] Далее, термины “изображение”, “картинка”, “кадр” и “экран” могут использоваться как имеющие то же самое значение и заменять друг друга.
[0094] Далее, целевой блок может представлять собой целевой блок кодирования, который является целью кодирования, и/или целевой блок декодирования, который является целью декодирования. Также целевой блок может представлять собой текущий блок, который является целью текущего кодирования и/или декодирования. Например, термины “целевой блок” и “текущий блок” могут использоваться как имеющие то же самое значение и заменять друг друга.
[0095] Далее, термины “блок” и “единица” могут использоваться как имеющие то же самое значение и заменять друг друга. Или “блок” может представлять конкретную единицу.
[0096] Далее, термины “область” и “сегмент” могут заменять друг друга.
[0097] Далее, конкретный сигнал может быть сигналом, представляющим конкретный блок. Например, исходный сигнал может быть сигналом, представляющим целевой блок. Сигнал предсказания может быть сигналом, представляющим блок предсказания. Остаточный сигнал может быть сигналом, представляющим остаточный блок.
[0098] В вариантах осуществления, каждое из конкретной информации, данных, флага, индекса, элемента и атрибута и т.д. может иметь значение. Значение информации, данных, флага, индекса, элемента и атрибута, равное “0”, может представлять логическое “ложно” или первое предопределенное значение. Иными словами, значение “0”, “ложно”, логическое “ложно” и первое предопределенное значение могут быть взаимозаменяемыми. Значение информации, данных, флага, индекса, элемента и атрибута, равное “1”, может представлять логическое “истинно” или второе предопределенное значение. Иными словами, значение “1”, “истинно”, логическое “истинно” и второе предопределенное значение могут быть взаимозаменяемыми.
[0099] Когда переменная i или j используется для представления столбца, строки или индекса, значение i может быть целым числом равным или большим, чем 0, или равным или большим, чем 1. То есть столбец, строка, индекс и т.д. могут отсчитываться от 0 или могут отсчитываться от 1.
[00100]
[00101] Описание терминов
[00102] Кодер: означает устройство, выполняющее кодирование. То есть означает устройство кодирования.
[00103] Декодер: означает устройство, выполняющее декодирование. То есть, означает устройство декодирования.
[00104] Блок: представляет собой M×N массив выборки. Здесь, M и N могут означать положительные целые числа, и блок может означать массив выборки двумерной формы. Блок может относиться к единице. Текущий блок может означать целевой блок кодирования, который становится целью при кодировании, или целевой блок декодирования, который становится целью при декодировании. Кроме того, текущий блок может быть по меньшей мере одним из блока кодирования, блока предсказания, остаточного блока и блока преобразования.
[00105] Выборка: представляет собой базовую единицу, образующую блок. Она может быть выражена как значение от 0 до 2Bd-1 в соответствии с битовой глубиной (Bd). В настоящем изобретении, выборка может использоваться как обозначение пиксела. То есть выборка, элемент изображения, пиксел могут иметь то же самое значение.
[00106] Единица: может относиться к единице кодирования и декодирования. При кодировании и декодировании изображения, единица может представлять собой область, генерируемую разбиением одного изображения. Кроме того, единица может означать подразделенную единицу, когда одно изображение разбивается на подразделенные единицы во время кодирования или декодирования. То есть изображение может разбиваться на множество единиц. При кодировании и декодировании изображения, предопределенный процесс может выполняться для каждой единицы. Одна единица может разбиваться на под-единицы, которые имеют размеры меньше, чем размер единицы. В зависимости от функций, единица может означать блок, макроблок, единицу дерева кодирования, блок дерева кодирования, единицу кодирования, блок кодирования, единицу предсказания, блок предсказания, остаточную единицу, остаточный блок, единицу преобразования, блок преобразования и т.д. Кроме того, чтобы различать единицу от блока, единица может включать блок компонента яркости, блок компонента цветности, ассоциированный с блоком компонента яркости, и синтаксический элемент каждого блока цветового компонента. Единица может иметь различные размеры и формы, в частности, форма единицы может быть двумерной геометрической фигурой, такой как квадратная форма, прямоугольная форма, трапецеидальная форма, треугольная форма, пятиугольная форма и т.д. Кроме того, информация единицы может включать по меньшей мере одно из типа единицы, указывающего единицу кодирования, единицу предсказания, единицу преобразования и т.д., и размера единицы, глубины единицы, последовательности кодирования и декодирования единицы и т.д.
[00107] Единица дерева кодирования: конфигурируется с одним блоком дерева кодирования компонента яркости Y и двумя блоками дерева кодирования, относящимися к компонентам цветности Cb и Cr. Кроме того, это может означать, что включаются блоки и синтаксический элемент каждого блока. Каждая единица дерева кодирования может быть подразделена с использованием по меньшей мере одного из способа разбиения квадродерева, способа разбиения двоичного дерева и способа разбиения троичного дерева, чтобы конфигурировать более низкую единицу, такую как единица кодирования, единица предсказания, единица преобразования и т.д. Это может использоваться как термин для обозначения блока выборки, который становится единицей обработки при кодировании/декодировании изображения в качестве входного изображения. Здесь, квадродерево может означать квартернарное дерево.
[00108] Когда размер блока кодирования находится в пределах предопределенного диапазона, деление возможно с использованием только разбиения квадродерева. Здесь, предопределенный диапазон может быть определен как по меньшей мере одно из максимального размера и минимального размера блока кодирования, в котором разделение возможно с использованием только разбиения квадродерева. Информация, указывающая максимальный/минимальный размер блока кодирования, в котором разрешено разбиение квадродерева, может сигнализироваться битовым потоком, и информация может сигнализироваться в по меньшей мере одной единице последовательности, параметре картинки, группе мозаичных элементов или слайсе (сегменте). Альтернативно, максимальный/минимальный размер блока кодирования может быть фиксированным размером, предварительно определенным в кодере/декодере. Например, когда размер блока кодирования соответствует от 256×256 до 64×64, разделение возможно только с использованием разбиения квадродерева. Альтернативно, когда размер блока кодирования больше, чем размер максимального блока преобразования, разделение возможно только с использованием разбиения квадродерева. Здесь, блок, подлежащий разделению, может быть по меньшей мере одним из блока кодирования и блока преобразования. В этом случае, информация, указывающая разделение кодированного блока (например, split_flag) может представлять собой флаг, указывающий, следует ли или нет выполнять разбиение квадродерева. Когда размер блока кодирования попадает в предопределенный диапазон, разделение возможно только с использованием разбиения двоичного дерева или троичного дерева. В этом случае, приведенное выше описание разбиения квадродерева может применяться к разбиению двоичного дерева или разбиению троичного дерева одинаковым образом.
[00109] Блок дерева кодирования: может быть использован как термин для обозначения любого одного из Y блока дерева кодирования, Cb блока дерева кодирования и Cr блока дерева кодирования.
[00110] Соседний блок: может означать блок, смежный с текущим блоком. Блок, смежный с текущим блоком, может означать блок, который контактирует с границей текущего блока, или блок, позиционированный в пределах предопределенного расстояния от текущего блока. Соседний блок может означать блок, смежный с вершиной текущего блока. Здесь, блок, смежный с вершиной текущего блока, может означать блок, вертикально смежный с соседним блоком, который является горизонтально смежным с текущим блоком, или блок, горизонтально смежный с соседним блоком, который является вертикально смежным с текущим блоком.
[00111] Восстановленный соседний блок: может означать соседний блок, смежный с текущим блоком и который уже был пространственно/по времени кодирован или декодирован. Здесь, восстановленный соседний блок может означать восстановленную соседнюю единицу. Восстановленный пространственный соседний блок может быть блоком в пределах текущей картинки и уже восстановлен посредством кодирования или декодирования или обоих из них. Восстановленный временной соседний блок представляет собой блок в соответствующем положении как у текущего блока текущей картинки в пределах опорного изображения или его соседнего блока.
[00112] Глубина единицы: может означать степень разбиения единицы. В древовидной структуре, наивысший узел (корневой узел) может соответствовать первой единице, которая не разделена. Также, наивысший узел может иметь наименьшее значение глубины. В этом случае, наивысший узел может иметь глубину уровня 0. Узел, имеющий глубину уровня 1, может представлять единицу, генерируемую путем разбиения первой единицы однократно. Узел, имеющий глубину уровня 2, может представлять единицу, генерируемую путем разбиения первой единицы дважды. Узел, имеющий глубину уровня n, может представлять единицу, генерируемую путем разбиения первой единицы n раз. Листовой узел может быть самым низким узлом и узлом, который не может далее разделяться. Глубина листового узла может соответствовать максимальному уровню. Например, предопределенное значение максимального уровня может быть равно 3. Глубина корневого узла может быть самой низкой, а глубина листового узла может быть самой глубокой. Кроме того, когда единица выражена как древовидная структура, уровень, в котором присутствует единица, может означать глубину единицы.
[00113] Битовый поток: может означать битовый поток, включающий в себя информацию кодирования изображения.
[00114] Набор параметров: соответствует информации заголовка среди конфигурации в битовом потоке. По меньшей мере один из набора параметров видео, набора параметров последовательности, набора параметров картинки и набора параметров адаптации может быть включен в набор параметров. Кроме того, набор параметров может включать в себя заголовок слайса, заголовок группы мозаичных элементов и информацию заголовка мозаичного элемента. Термин “группа мозаичных элементов” означает группу мозаичных элементов и имеет то же самое значение, что и слайс.
[00115] Синтаксический анализ: может означать определение значения синтаксического элемента путем выполнения энтропийного декодирования или может означать само энтропийное декодирование.
[00116] Символ: может означать по меньшей мере одно из синтаксического элемента, параметра кодирования и значения коэффициента преобразования целевой единицы кодирования/ декодирования. Кроме того, символ может означать цель энтропийного кодирования или результат энтропийного декодирования.
[00117] Режим предсказания: может быть информацией, указывающей режим, кодированный/декодированный с интра-предсказанием, или режим, кодированный/декодированный с интер-предсказанием.
[00118] Единица предсказания: может означать базовую единицу при выполнении предсказания, такого как интер-предсказание, интра-предсказание, интер- (взаимная) компенсация, интра- (внутренняя) компенсация и компенсация движения. Одна единица предсказания может разбиваться во множество разбиений, имеющих меньшие размеры, или может разбиваться на множество более низких единиц предсказания. Множество разбиений может представлять собой базовую единицу при выполнении предсказания или компенсации. Разбиение, которое генерируется путем разделения единицы предсказания, может также представлять собой единицу предсказания.
[00119] Разбиение единицы предсказания: может означать форму, полученную путем разбиения единицы предсказания.
[00120] Список опорных картинок может относиться к списку, включающему в себя одну или более опорных картинок, используемых для интер-предсказания или компенсации движения. Имеется несколько типов используемых списков опорных картинок, включая LC (объединенный список), L0 (список 0), L1 (список 1), L2 (список 2), L3 (список 3).
[00121] Указатель интер-предсказания может относиться к направлению интер-предсказания (однонаправленное предсказание, двунаправленное предсказание и т.д.) текущего блока. Альтернативно, он может относиться к числу опорных картинок, используемых для генерации блока предсказания текущего блока. Альтернативно, он может относиться к числу блоков предсказания, используемых во время выполнения интер-предсказания или компенсации движения над текущим блоком.
[00122] Флаг использования списка предсказания указывает, генерируется ли блок предсказания с использованием по меньшей мере одной опорной картинки в конкретном списке опорных картинок. Указатель интер-предсказания может быть выведен с использованием флага использования списка предсказания, и наоборот, флаг использования списка предсказания может быть выведен с использованием указателя интер-предсказания. Например, когда флаг использования списка предсказания имеет первое значение, равное нулю (0), это означает, что опорная картинка в списке опорных картинок не используется для генерации блока предсказания. С другой стороны, когда флаг использования списка предсказания имеет второе значение, равное единице (1), это означает, что список опорных картинок используется для генерирования блока предсказания.
[00123] Индекс опорной картинки может относиться к индексу, указывающему конкретную опорную картинку в списке опорных картинок.
[00124] Опорная картинка может означать опорную картинку, на которую ссылается конкретный блок для целей интер-предсказания или компенсации движения конкретного блока. Альтернативно, опорная картинка может представлять собой картинку, включающую в себя опорный блок, на который ссылается текущий блок для интер-предсказания или компенсации движения. Далее, термины “опорная картинка” и “опорное изображение” имеют то же самое значение и могут использоваться взаимозаменяемым образом.
[00125] Вектор движения может представлять собой двумерный вектор, используемый для интер-предсказания или компенсации движения. Вектор движения может означать смещение между целевым блоком кодирования/декодирования и опорным блоком. Например, (mvX, mvY) может представлять вектор движения. Здесь, mvX может представлять горизонтальный компонент, и mvY может представлять вертикальный компонент.
[00126] Диапазон поиска может представлять собой двумерную область, в которой осуществляется поиск, чтобы извлечь вектор движения во время интер-предсказания. Например, размер диапазона поиска может быть M×N. Здесь, M и N оба являются целыми числами.
[00127] Кандидат вектора движения может относиться к блоку кандидата предсказания или вектору движения блока кандидата предсказания при предсказании вектора движения. Кроме того, кандидат вектора движения может быть включен в список кандидатов вектора движения.
[00128] Список кандидатов вектора движения может означать список, составленный из одного или более кандидатов вектора движения.
[00129] Индекс кандидата вектора движения может означать указатель, указывающий кандидата вектора движения в списке кандидатов вектора движения. Альтернативно, он может представлять собой индекс предсказателя вектора движения.
[00130] Информация движения может означать информацию, включающую в себя по меньшей мере один из элементов, включая вектор движения, индекс опорной картинки, указатель интер-предсказания, флаг использования списка предсказания, информацию списка опорных картинок, опорную картинку, кандидат вектора движения, индекс кандидата вектора движения, кандидат слияния и индекс слияния.
[00131] Список кандидатов слияния может означать список, составленный из одного или более кандидатов слияния.
[00132] Кандидат слияния может означать пространственный кандидат слияния, временной кандидат слияния, объединенный кандидат слияния, объединенный би-предиктивный кандидат слияния, или нулевой кандидат слияния. Кандидат слияния может включать информацию движения, такую как указатель интер-предсказания, индекс опорной картинки для каждого списка, вектор движения, флаг использования списка предсказания и указатель интер-предсказания.
[00133] Индекс слияния может означать указатель, указывающий кандидата слияния в списке кандидатов слияния. Альтернативно, индекс слияния может указывать блок, из которого был выведен кандидат слияния, среди восстановленных блоков пространственно/по времени смежных с текущим блоком. Альтернативно, индекс слияния может указывать по меньшей мере одну часть информации движения кандидата слияния.
[00134] Единица преобразования: может означать базовую единицу при выполнении кодирования/декодирования, такого как преобразование, обратное преобразование, квантование, деквантование, кодирование/декодирование коэффициентов преобразования остаточного сигнала. Одна единица преобразования может разбиваться на множество единиц преобразования более низкого уровня, имеющих меньший размер. Здесь, преобразование/обратное преобразование может содержать по меньшей мере одно из первого преобразования/первого обратного преобразования и второго преобразования/второго обратного преобразования.
[00135] Масштабирование: может означать процесс умножения квантованного уровня на коэффициент. Коэффициент преобразования может генерироваться путем масштабирования квантованного уровня. Масштабирование может также упоминаться как деквантование.
[00136] Параметр квантования: может означать значение, используемое при генерировании квантованного уровня с использованием коэффициента преобразования при квантовании. Параметр квантования также может означать значение, используемое при генерировании коэффициента преобразования путем масштабирования квантованного уровня при деквантовании. Параметр квантования может представлять собой значение, отображаемое на размер шага квантования.
[00137] Дельта-параметр квантования: может означать разностное значение между предсказанным параметром квантования и параметром квантования целевой единицы кодирования/ декодирования.
[00138] Сканирование: может означать способ упорядочения коэффициентов в пределах единицы, блока или матрицы. Например, переход от двумерной матрицы коэффициентов к одномерной матрице может упоминаться как сканирование, и переход от одномерной матрицы коэффициентов к двумерной матрице может упоминаться как сканирование или обратное сканирование.
[00139] Коэффициент преобразования: может означать значение коэффициента, генерируемое после выполнения преобразования в кодере. Он может означать значение коэффициента, генерируемое после выполнения по меньшей мере одного из энтропийного декодирования и деквантования в декодере. Квантованный уровень, полученный путем квантования коэффициента преобразования или остаточного сигнала, или уровень квантованного коэффициента преобразования также может охватываться смысловым значением коэффициента преобразования.
[00140] Квантованный уровень: может означать значение, генерируемое квантованием коэффициента преобразования или остаточного сигнала в кодере. Альтернативно, квантованный уровень может означать значение, которое является целью деквантования для выполнения деквантования в декодере. Аналогичным образом, уровень квантованного коэффициента преобразования, который является результатом преобразования и квантования, также может охватываться смысловым значением квантованного уровня.
[00141] Ненулевой коэффициент преобразования: может означать коэффициент преобразования, имеющий значение иное, чем нуль, или уровень коэффициента преобразования или квантованный уровень, имеющий значение иное, чем нуль.
[00142] Матрица квантования: может означать матрицу, используемую в процессе квантования или процессе деквантования, выполняемом для улучшения субъективного или объективного качества изображения. Матрица квантования также может упоминаться как список масштабирования.
[00143] Коэффициент матрицы квантования: может означать каждый элемент в матрице квантования. Коэффициент матрицы квантования также может упоминаться как коэффициент матрицы.
[00144] Матрица по умолчанию: может означать предопределенную матрицу квантования, заранее определенную в кодере или декодере.
[00145] Матрица не по умолчанию: может означать матрицу квантования, которая не определена заранее в кодере или декодере, а сигнализируется пользователем.
[00146] Статистическое значение: статистическое значение для по меньшей мере одного из переменной, параметра кодирования, постоянного значения и т.д., которые имеют вычисляемое конкретное значение, может быть одним или более из среднего значения, суммарного значения, взвешенного среднего значения, взвешенного суммарного значения, минимального значения, максимального значения, наиболее частого значения, медианного значения, интерполированного значения соответствующего конкретного значения.
[00147] Фиг. 1 представляет собой блок-схему, показывающую конфигурацию устройства кодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.
[00148] Устройство 100 кодирования может быть кодером, устройством кодирования видео или устройством кодирования изображения. Видео может включать по меньшей мере одно изображение. Устройство 100 кодирования может последовательно кодировать по меньшей мере одно изображение.
[00149] Со ссылкой на фиг. 1, устройство 100 кодирования может включать в себя модуль 111 предсказания движения, модуль 112 компенсации движения, модуль 120 интра-предсказания, переключатель 115, вычитатель 125, модуль 130 преобразования, модуль 140 квантования, модуль 150 энтропийного кодирования, модуль 160 деквантования, модуль 170 обратного преобразования, сумматор 175, модуль 180 фильтрации и буфер 190 опорных картинок.
[00150] Устройство 100 кодирования может выполнять кодирование входного изображения с использованием интра-режима или интер-режима или их обоих. Кроме того, устройство 100 кодирования может генерировать битовый поток, включающий в себя кодированную информацию, посредством кодирования входного изображения, и выводить сгенерированный битовый поток. Сгенерированный битовый поток может быть сохранен в считываемом компьютером носителе записи или может передаваться потоком по проводной/беспроводной среде передачи. Когда интра-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интра-режим. Альтернативно, когда интер-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интер-режим. Здесь, интра-режим может означать режим интра-предсказания, и интер-режим может означать режим интер-предсказания. Устройство 100 кодирования может генерировать блок предсказания для входного блока входного изображения. Кроме того, устройство 100 кодирования может кодировать остаточный блок с использованием остатка входного блока и блока предсказания после генерации блока предсказания. Входное изображение может называться текущим изображением, которое представляет собой текущую цель кодирования. Входной блок может называться текущим блоком, который представляет собой текущую цель кодирования, или целевым блоком кодирования.
[00151] Когда режим предсказания является интра-режимом, модуль 120 интра-предсказания может использовать выборку блока, который уже был кодирован/декодирован и является смежным с текущим блоком, в качестве опорной выборки. Модуль 120 интра-предсказания может выполнять пространственное предсказание для текущего блока с использованием опорной выборки или генерировать выборки предсказания входного блока путем выполнения пространственного предсказания. Здесь, внутреннее (интра) предсказание может означать интра-предсказание,
[00152] Когда режим предсказания является интер-режимом, модуль 111 предсказания движения может извлекать область, которая наилучшим образом согласуется с входным блоком, из опорного изображения при выполнении предсказания движения и выводить вектор движения с использованием извлеченной области. В этом случае, область поиска может быть использована в качестве упомянутой области. Опорное изображение может быть сохранено в буфере 190 опорных картинок. Здесь, когда кодирование/ декодирование для опорного изображения выполнено, оно может быть сохранено в буфере 190 опорных картинок.
[00153] Модуль 112 компенсации движения может генерировать блок предсказания путем выполнения компенсация движения для текущего блока с использованием вектора движения. Здесь, интер-предсказание может означать интер-предсказание или компенсацию движения.
[00154] Когда значение вектора движения не является целым числом, модуль 111 предсказания движения и модуль 112 компенсации движения могут генерировать блок предсказания путем применения интерполяционного фильтра к частичной области опорной картинки. Чтобы выполнить предсказание между картинками или компенсацию движения над единицей кодирования, может определяться, какой режим из режима пропуска, режима слияния, режима расширенного предсказания вектора движения (AMVP) и режима ссылки на текущую картинку используется для предсказания движения и компенсации движения единицы предсказания, включенной в соответствующую единицу кодирования. Затем, предсказание между картинками или компенсация движения могут выполняться по-разному в зависимости от определенного режима.
[00155] Вычитатель 125 может генерировать остаточный блок с использованием разности входного блока и блока предсказания. Остаточный блок может называться остаточным сигналом. Остаточный сигнал может означать разность между исходным сигналом и сигналом предсказания. Кроме того, остаточный сигнал может быть сигналом, генерируемым путем преобразования или квантования или преобразования и квантования разности между исходным сигналом и сигналом предсказания. Остаточный блок может быть остаточным сигналом единицы блока.
[00156] Модуль 130 преобразования может генерировать коэффициент преобразования путем выполнения преобразования остаточного блока и выводить сгенерированный коэффициент преобразования. Здесь, коэффициент преобразования может быть значением коэффициента, генерируемым путем выполнения преобразования остаточного блока. Когда применяется режим пропуска преобразования, модуль 130 преобразования может пропустить преобразование остаточного блока.
[00157] Квантованный уровень может генерироваться путем применения квантования к коэффициенту преобразования или к остаточному сигналу. Далее, квантованный уровень может также называться коэффициентом преобразования в вариантах осуществления.
[00158] Модуль 140 квантования может генерировать квантованный уровень путем квантования коэффициента преобразования или остаточного сигнала в соответствии с параметром и выводить сгенерированный квантованный уровень. Здесь, модуль 140 квантования может квантовать коэффициент преобразования с использованием матрицы квантования.
[00159] Модуль 150 энтропийного кодирования может генерировать битовый поток путем выполнения энтропийного кодирования в соответствии с распределением вероятности по значениям, вычисленным модулем 140 квантования, или по значениям параметра кодирования, вычисленным при выполнении кодирования, и выводить сгенерированный битовый поток. Модуль 150 энтропийного кодирования может выполнять энтропийное кодирование информации выборки изображения и информации для декодирования изображения. Например, информация для декодирования изображения может включать синтаксический элемент.
[00160] Когда применяется энтропийное кодирование, символы представляются таким образом, что меньшее число битов назначается символу, имеющему высокую вероятность генерации, и большее число битов назначается символу, имеющему низкую вероятность генерации, и, таким образом, размер битового потока для символов, подлежащих кодированию, может уменьшаться. Модуль 150 энтропийного кодирования может использовать способ кодирования для энтропийного кодирования, такой как экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.д. Например, модуль 150 энтропийного кодирования может выполнять энтропийное кодирование с использованием таблицы кодирования/кода переменной длины (VLC). Кроме того, модуль 150 энтропийного кодирования может выводить способ бинаризации целевого символа и модель вероятности целевого символа/бина и выполнять арифметическое кодирование с использованием выведенного способа бинаризации и контекстной модели.
[00161] Чтобы кодировать уровень коэффициента преобразования (квантованный уровень), модуль 150 энтропийного кодирования может преобразовать коэффициент в форме двумерного блока в форму одномерного вектора с использованием способа сканирования коэффициентов преобразования.
[00162] Параметр кодирования может включать информацию (флаг, индекс, и т.д.), такую как синтаксический элемент, который кодируется в кодере и сигнализируется в декодер, и информацию, выведенную при выполнении кодирования или декодирования. Параметр кодирования может означать информацию, требуемую при кодировании или декодировании изображения. Например, по меньшей мере одно значение или форма комбинации из размера единицы/блока, глубины единицы/блока, информации разбиения единицы/блока, формы единицы/блока, структуры разбиения единицы/блока, следует ли разбивать в форме квадродерева, следует ли разбивать в форме двоичного дерева, направления разбиения формы двоичного дерева (горизонтальное направление или вертикальное направление), формы разбиения в форме двоичного дерева (симметричное разбиение или асимметричное разбиение), разбита ли текущая единица кодирования путем разбиения троичного дерева, направления (горизонтальное или вертикальное направление) разбиения троичного дерева, типа (симметричный или асимметричный тип) разбиения троичного дерева, разбита ли текущая единица кодирования путем разбиения дерева множества типов, направления (горизонтальное или вертикальное направление) разбиения дерева множества типов, типа (симметричный или асимметричный тип) разбиения дерева множества типов и структуры дерева (двоичное дерево или троичное дерево) разбиения дерева множества типов, режима предсказания (интра-предсказание или интер-предсказание), режима/направления интра-предсказания яркости, режима/направления интра-предсказания цветности, информации интра-разбиения, информации интер-разбиения, флага разбиения блока кодирования, флага разбиения блока предсказания, флага разбиения блока преобразования, способа фильтрации опорной выборки, отвода фильтра опорной выборки, коэффициента фильтра опорной выборки, способа фильтрации блока предсказания, отвода фильтра блока предсказания, коэффициента фильтра блока предсказания, способа фильтрации границы блока предсказания, отвода фильтра границы блока предсказания, коэффициента фильтра границы блока предсказания, режима интра-предсказания, режима интер-предсказания, информации движения, вектора движения, разности векторов движения, индекса опорной картинки, угла интер-предсказания, указателя интер-предсказания, флага использования списка предсказания, списка опорных картинок, опорной картинки, индекса предсказателя вектора движения, кандидата предсказателя вектора движения, списка кандидатов вектора движения, следует ли использовать режим слияния, индекса слияния, кандидата слияния, списка кандидатов слияния, следует ли использовать режим пропуска, типа фильтра интерполяции, отвода фильтра интерполяции, коэффициента фильтра интерполяции, размера вектора движения, точности представления вектора движения, типа преобразования, размера преобразования, информации, используется ли первичное (первое) преобразование, информации, используется ли вторичное преобразование, индекса первичного преобразования, индекса вторичного преобразования, информации, представлен ли остаточный сигнал, шаблона кодированного блока, флага кодированного блока (CBF), параметра квантования, остатка параметра квантования, матрицы квантования, следует ли применять внутриконтурный фильтр, коэффициента внутриконтурного фильтра, отвода внутриконтурного фильтра, формы внутриконтурного фильтра, следует ли применять фильтр устранения блочности, коэффициента фильтра устранения блочности, отвода фильтра устранения блочности, силы фильтра устранения блочности, формы фильтра устранения блочности, следует ли применять адаптивное смещение выборки, значения адаптивного смещения выборки, категории адаптивного смещения выборки, типа адаптивного смещения выборки, следует ли применять адаптивный контурный фильтр, коэффициента адаптивного контурного фильтра, отвода адаптивного контурного фильтра, формы адаптивного контурного фильтра, способа бинаризации/обратной бинаризации, способа определения контекстной модели, способа обновления контекстной модели, следует ли выполнять регулярный режим, следует ли выполнять режим обхода, бина контекста, бина обхода, флага значимого коэффициента, флага последнего значимого коэффициента, кодированного флага для единицы группы коэффициентов, положения последнего значимого коэффициента, флага для того, является ли значение коэффициента большим, чем 1, флага для того, является ли значение коэффициента большим, чем 2, флага для того, является ли значение коэффициента большим, чем 3, информации об остаточном значении коэффициента, информации знака, восстановленной выборки яркости, восстановленной выборки цветности, остаточной выборки яркости, остаточной выборки цветности, коэффициента преобразования яркости, коэффициента преобразования цветности, квантованного уровня яркости, квантованного уровня цветности, способа сканирования уровня коэффициента преобразования, размера области поиска вектора движения на стороне декодера, формы области поиска вектора движения на стороне декодера, числа раз поиска вектора движения на стороне декодера, информации о размере CTU, информации о минимальном размере блока, информации о максимальном размере блока, информации о максимальной глубине блока, информации о минимальной глубине блока, последовательности отображения/вывода изображения, информации идентификации слайса, типа слайса, информации разбиения слайса, информации идентификации мозаичного элемента, типа мозаичного элемента, информации мозаичного разбиения, информации идентификации группы мозаичных элементов, типа группы мозаичных элементов, информации разбиения группы мозаичных элементов, типа картинки, битовой глубины входной выборки, битовой глубины восстановленной выборки, битовой глубины остаточной выборки, битовой глубины коэффициента преобразования, битовой глубины квантованного уровня и информации о сигнале яркости или информации о сигнале цветности могут быть включены в параметр кодирования.
[00163] Здесь, сигнализация флага или индекса может означать, что соответствующий флаг или индекс энтропийно закодирован и включен в битовый поток кодером, и может означать, что соответствующий флаг или индекс энтропийно декодируется из битового потока декодером.
[00164] Когда устройство 100 кодирования выполняет кодирование посредством интер-предсказания, кодированное текущее изображение может быть использовано как опорное изображение для другого изображения, которое обрабатывается после этого. Соответственно, устройство 100 кодирования может восстанавливать или декодировать закодированное текущее изображение, или сохранять восстановленное или декодированное изображение как опорное изображение в буфере 190 опорных картинок.
[00165] Квантованный уровень может деквантоваться в модуле 160 деквантования, или может обратно преобразовываться в модуле 170 обратного преобразования. Деквантованный и/или обратно преобразованный коэффициент может суммироваться с блоком предсказания посредством сумматора 175. Путем суммирования деквантованного и/или обратно преобразованного коэффициента с блоком предсказания может генерироваться восстановленный блок. Здесь, деквантованный и/или обратно преобразованный коэффициент может означать коэффициент, над которым выполнено по меньшей мере одно из деквантования и обратного преобразования, и может означать восстановленный остаточный блок.
[00166] Восстановленный блок может проходить через модуль 180 фильтрации. Модуль 180 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки (SAO) и адаптивного контурного фильтра (ALF) к восстановленной выборке, восстановленному блоку или восстановленному изображению. Модуль 180 фильтрации может упоминаться как контурный фильтр.
[00167] Фильтр устранения блочности может устранять блочное искажение, генерируемое на границах между блоками. Для определения того, следует ли применять фильтр устранения блочности, может определяться, следует ли применять фильтр устранения блочности к текущему блоку, на основе выборок, включенных в различные строки или столбцы, которые включены в блок. Когда фильтр устранения блочности применяется к блоку, другой фильтр может быть применен в соответствии с требуемой силой (уровнем) фильтрации устранения блочности.
[00168] Для того чтобы скомпенсировать ошибку кодирования, надлежащее значение смещения может быть добавлено к значению выборки с использованием адаптивного смещения выборки. Адаптивное смещение выборки может корректировать смещение изображения с устраненной блочностью относительно исходного изображения на единицу выборки. Может использоваться способ разбиения выборок изображения на предопределенное количество областей, определения области, к которой применяется смещение, и применения смещения к определенной области, или способ применения смещения с учетом краевой информации по каждой выборке.
[00169] Адаптивный контурный фильтр может выполнять фильтрацию на основе результата сравнения отфильтрованного восстановленного изображения и исходного изображения. Выборки, включенные в изображение, могут разбиваться на предопределенные группы, может определяться фильтр для применения к каждой группе, и может выполняться дифференциальная фильтрация для каждой группы. Информация о том, следует ли применять ALF, может сигнализироваться посредством единиц кодирования (CU), и форма и коэффициент ALF, подлежащего применению к каждому блоку, могут варьироваться.
[00170] Восстановленный блок или восстановленное изображение, после прохождения через модуль 180 фильтрации, может сохраняться в буфере 190 опорных картинок. Восстановленный блок, обработанный модулем 180 фильтрации, может быть частью опорного изображения. То есть, опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 180 фильтрации. Сохраненное опорное изображение может быть использовано позже в интер-предсказании или компенсации движения.
[00171] Фиг. 2 представляет собой блок-схему, показывающую конфигурацию устройства декодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.
[00172] Устройство 200 декодирования может представлять собой декодер, устройство декодирования видео или устройство декодирования изображения.
[00173] Со ссылкой на фиг. 2, устройство 200 декодирования может включать в себя модуль 210 энтропийного декодирования, модуль 220 деквантования, модуль 230 обратного преобразования, модуль 240 интра-предсказания, модуль 250 компенсации движения, сумматор 225, модуль 260 фильтрации и буфер 270 опорных картинок.
[00174] Устройство 200 декодирования может принимать битовый поток, выведенный из устройства 100 кодирования. Устройство 200 декодирования может принимать битовый поток, сохраненный в считываемом компьютером носителе записи, или может принимать битовый поток, передаваемый путем потоковой передачи посредством проводной/беспроводной среды передачи. Устройство 200 декодирования может декодировать битовый поток с использованием интра-режима или интер-режима. Кроме того, устройство 200 декодирования может генерировать восстановленное изображение, генерируемое путем декодирования, или декодированное изображение и выводить восстановленное изображение или декодированное изображение.
[00175] Когда режим предсказания, используемый при декодировании, является интра-режимом, переключатель может быть переключен на интра-режим. Альтернативно, когда режим предсказания, используемый при декодировании, является интер-режимом, переключатель может быть переключен на интер-режим.
[00176] Устройство 200 декодирования может получать восстановленный остаточный блок путем декодирования входного битового потока и генерировать блок предсказания. Когда восстановленный остаточный блок и блок предсказания получены, устройство 200 декодирования может генерировать восстановленный блок, который становится целью декодирования, путем суммирования восстановленного остаточного блока с блоком предсказания. Целевой блок декодирования может называться текущим блоком.
[00177] Модуль 210 энтропийного декодирования может генерировать символы путем энтропийного декодирования битового потока в соответствии с распределением вероятности. Сгенерированные символы могут включать в себя символ формы квантованного уровня. Здесь, способ энтропийного декодирования может быть процессом, обратным способу энтропийного кодирования, описанному выше.
[00178] Для того чтобы декодировать уровень коэффициента преобразования (квантованный уровень), модуль 210 энтропийного декодирования может преобразовать коэффициент в форме одномерного вектора в форму двумерного блока с использованием способа сканирования коэффициента преобразования.
[00179] Квантованный уровень может быть деквантован в модуле 220 деквантования или обратно преобразован в модуле 230 обратного преобразования. Квантованный уровень может быть результатом деквантования и/или обратного преобразования и может генерироваться как восстановленный остаточный блок. Здесь, модуль 220 деквантования может применять матрицу квантования к квантованному уровню.
[00180] Когда используется интра-режим, модуль 240 интра-предсказания может генерировать блок предсказания путем выполнения, для текущего блока, пространственного предсказания, которое использует значение выборки блока, смежного с целевым блоком декодирования, и который уже был декодирован.
[00181] Когда используется интер-режим, модуль 250 компенсации движения может генерировать блок предсказания путем выполнения, для текущего блока, компенсации движения, которая использует вектор движения и опорное изображение, сохраненное в буфере 270 опорных картинок.
[00182] Сумматор 225 может генерировать восстановленный блок путем суммирования восстановленного остаточного блока с блоком предсказания. Модуль 260 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки и адаптивного контурного фильтра к восстановленному блоку или восстановленному изображению. Модуль 260 фильтрации может выводить восстановленное изображение. Восстановленный блок или восстановленное изображение может сохраняться в буфере 270 опорных картинок и использоваться при выполнении интер-предсказания. Восстановленный блок, обработанный модулем 260 фильтрации, может быть частью опорного изображения. То есть опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 260 фильтрации. Сохраненное опорное изображение может быть использовано позже при интер-предсказании или компенсации движения.
[00183] Фиг. 3 представляет собой вид, схематично показывающий структуру разбиения изображения при кодировании и декодировании изображения. Фиг. 3 схематично показывает пример разбиения одной единицы во множество более низких единиц.
[00184] Для того чтобы эффективно разбивать изображение, при кодировании и декодировании, может быть использована единица кодирования (CU). Единица кодирования может быть использована как базовая единица при кодировании/декодировании изображения. Кроме того, единица кодирования может быть использована в качестве единицы для различения режима интра-предсказания и режима интер-предсказания при кодировании/декодировании изображения. Единица кодирования может быть базовой единицей, используемой для предсказания, преобразования, квантования, обратного преобразования, деквантования или процесса кодирования/декодирования коэффициента преобразования.
[00185] Со ссылкой на фиг. 3, изображение 300 последовательно разбивается на наибольшую единицу кодирования (LCU), и единица LCU определяется как структура разбиения. Здесь, LCU может быть использована в том же смысле, что и единица дерева кодирования (CTU). Разбиение единицы может означать разбиение блока, ассоциированного с единицей. В информацию разбиения блока может быть включена информация о глубине единицы. Информация глубины может представлять число раз и/или степень, в которой разбивается единица. Одна единица может разбиваться на множество единиц более низкого уровня, иерархически ассоциированных с информацией глубины на основе древовидной структуры. Иными словами, некоторая единица и единица более низкого уровня, генерируемая путем разбиения данной единицы, могут соответствовать узлу и дочернему узлу данного узла, соответственно. Каждая разделенная более низкая единица может иметь информацию глубины. Информация глубины может представлять собой информацию, представляющую размер CU, и может быть сохранена в каждой CU. Глубина единицы представляет число раз и/или степеней разбиения единицы. Поэтому информация разбиения единицы более низкого уровня может содержать информацию о размере единицы более низкого уровня.
[00186] Структура разбиения может означать распределение единицы кодирования (CU) в пределах LCU 310. Такое распределение может быть определено в соответствии с тем, следует ли разбивать одну CU на множество (положительное целое число, равное или большее чем 2, включая 2, 4, 8, 16 и т.д.) CU. Горизонтальный размер и вертикальный размер CU, генерируемой путем разбиения, может соответственно быть половиной горизонтального размера и вертикального размера CU перед разбиением или может соответственно иметь размеры меньше, чем горизонтальный размер и вертикальный размер перед разбиением, в соответствии с числом раз разбиения. CU может рекурсивно разбиваться во множество CU. Путем рекурсивного разбиения, по меньшей мере одно из высоты и ширины CU после разбиения может уменьшаться по сравнению с по меньшей мере одним из высоты и ширины CU перед разбиением. Разбиение CU может рекурсивно выполняться до предопределенной глубины или предопределенного размера. Например, глубина LCU может быть равна 0, а глубина наименьшей единицы кодирования (SCU) может быть предопределенной максимальной глубиной. Здесь, LCU может представлять собой единицу кодирования, имеющую максимальный размер единицы кодирования, и SCU может представлять собой единицу кодирования, имеющую минимальный размер единицы кодирования, как описано выше. Разбиение начинается от LCU 310, глубина CU возрастает на 1, по мере того как горизонтальный размер и/или вертикальный размер CU уменьшается путем разбиения. Например, для каждой глубины, CU, которая не разделена, может иметь размер 2N×2N. Также, в случае CU, которая разделена, CU с размером 2N×2N может разбиваться на четыре CU с размером N×N. Размер N может уменьшаться наполовину, когда глубина возрастает на 1.
[00187] Кроме того, информация о том, следует ли разбивать CU, может быть представлена с использованием информации разбиения CU. Информация разбиения может представлять собой 1-битовую информацию. Все CU, за исключением SCU, могут включать информацию разбиения. Например, когда значение информации разбиения равно первому значению, CU не может разбиваться, когда значение информации разбиения равно второму значению, CU может разбиваться.
[00188] Со ссылкой на фиг. 3, LCU, имеющая глубину 0, может представлять собой 64×64 блок. 0 может быть минимальной глубиной. SCU, имеющая глубину 3, может представлять собой 8×8 блок. 3 может быть максимальной глубиной. CU в виде 32×32 блока и 16×16 блока могут быть соответственно представлены как глубина 1 и глубина 2.
[00189] Например, когда одна единица кодирования разбивается на четыре единицы кодирования, горизонтальный размер и вертикальный размер четырех разделенных единиц кодирования могут быть равны половинному размеру горизонтального и вертикального размера CU перед разбиением. В одном варианте осуществления, когда единица кодирования, имеющая размер 32×32, разбивается на четыре единицы кодирования, каждая из четырех разделенных единиц кодирования может иметь размер 16×16. Когда одна единица кодирования разбивается на четыре единицы кодирования, можно сказать, что единица кодирования может разбиваться в форму квадродерева.
[00190] Например, когда одна единица кодирования разбита на две под-единицы кодирования, горизонтальный или вертикальный размер (ширина или высота) каждой из двух под-единиц кодирования может быть половиной горизонтального или вертикального размера исходной единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32, вертикально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 16×32. Например, когда единица кодирования, имеющая размер 8×32, горизонтально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 8×16. Когда одна единица кодирования разбита на две под-единицы кодирования, можно сказать, что единица кодирования двоично разбита или разбита посредством структуры разбиения двоичного дерева.
[00191] Например, когда одна единица кодирования разбита на три под-единицы кодирования, горизонтальный или вертикальный размер единицы кодирования может разбиваться в отношении 1:2:1, тем самым формируя три под-единицы кодирования, горизонтальный или вертикальный размеры которых находятся в отношении 1:2:1. Например, когда единица кодирования, имеющая размер 16×32, горизонтально разбита на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 16×8, 16×16 и 16×8, соответственно, в порядке от самой верхней до самой нижней под-единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32 вертикально разделяется на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 8×32, 16×32 и 8×32, соответственно, в порядке от левой до правой под-единицы кодирования. Когда одна единица кодирования разбита на три под-единицы кодирования, можно сказать, что единица кодирования троично разбита или разбита посредством структуры разбиения троичного дерева.
[00192] На фиг. 3, единица дерева кодирования (CTU) 320 является примером CTU, к которой применяются структура разбиения квадродерева, структура разбиения двоичного дерева и структура разбиения троичного дерева.
[00193] Как описано выше, для того чтобы разбить CTU, может применяться по меньшей мере одна из структуры разбиения квадродерева, структуры разбиения двоичного дерева и структуры разбиения троичного дерева. Различные структуры древовидного разбиения могут последовательно применяться к CTU, в соответствии с предопределенным порядком приоритета. Например, структура разбиения квадродерева может преимущественным образом применяться к CTU. Единица кодирования, которая больше не может быть разбита с использованием структуры разбиения квадродерева, может соответствовать листовому узлу квадродерева. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла структуры разбиения двоичного и/или троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может быть далее разбита согласно структуре разбиения двоичного дерева или структуре разбиения троичного дерева или может больше не разбиваться. Поэтому, путем запрещения блоку кодирования, который является результатом разбиения двоичного дерева или разбиения троичного дерева единицы кодирования, соответствующей листовому узлу квадродерева, подвергаться дальнейшему разбиению квадродерева, может эффективно выполняться разбиение блока и/или сигнализация информации разбиения.
[00194] Тот факт, что единица кодирования, соответствующая узлу квадродерева, является разделенной, может сигнализироваться с использованием информации квадро-разбиения. Информация квадро-разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения может представлять собой флаг, имеющий предопределенную длину (например, один бит).
[00195] Может не иметься приоритета между разбиением двоичного дерева и разбиением троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может далее подвергаться произвольному разбиению из разбиения двоичного дерева и разбиения троичного дерева. Кроме того, единица кодирования, сгенерированная посредством разбиения двоичного дерева или разбиения троичного дерева, может подвергаться дальнейшему разбиению двоичного дерева или дальнейшему разбиению троичного дерева или может не разбиваться далее.
[00196] Древовидная структура, в которой не имеется приоритета среди разбиения двоичного дерева и разбиения троичного дерева, упоминается как структура дерева множества типов. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла дерева множества типов. То, следует ли разбивать единицу кодирования, которая соответствует узлу дерева множества типов, может сигнализироваться с использованием по меньшей мере одной из информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения. Для разбиения единицы кодирования, соответствующей узлу дерева множества типов, информация указания разбиения дерева множества типов, направление разбиения и информация дерева разбиения могут последовательно сигнализироваться.
[00197] Информация указания разбиения дерева множества типов, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна подвергаться разбиению дерева множества типов. Информация указания разбиения дерева множества типов, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не должна подвергаться разбиению дерева множества типов.
[00198] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, единица кодирования может включать информацию направления разбиения. Информация направления разбиения может указывать, в каком направлении следует разбивать текущую единицу кодирования для разбиения дерева множества типов. Информация направления разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться по вертикали. Информация направления разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться по горизонтали.
[00199] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, текущая единица кодирования может включать информацию дерева разбиения. Информация дерева разбиения может указывать структуру дерева разбиения, которая должна использоваться для разбиения узла дерева множества типов. Информация дерева разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения двоичного дерева. Информация дерева разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения троичного дерева.
[00200] Информация указания разбиения, информация дерева разбиения и информация направления разбиения могут, каждая, представлять собой флаг, имеющий предопределенную длину (например, один бит).
[00201] По меньшей мере любая одна из информации указания разбиения квадродерева, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения может энтропийно кодироваться/декодироваться. Для энтропийного кодирования/декодирования этих типов информации, может использоваться информация о соседней единице кодирования, смежной с текущей единицей кодирования. Например, существует высокая вероятность того, что тип разбиения (разбита или неразбита, дерево разбиения и/или направление разбиения) левой соседней единицы кодирования и/или верхней соседней единицы кодирования текущей единицы кодирования подобен таковому для текущей единицы кодирования. Поэтому контекстная информация для энтропийного кодирования/декодирования информации о текущей единице кодирования может быть выведена из информации о соседних единицах кодирования. Информация о соседних единицах кодирования может включать по меньшей мере любое одно из информации квадро-разбиения, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения.
[00202] В качестве другого примера, из разбиения двоичного дерева и разбиения троичного дерева, предпочтительно может выполняться разбиение двоичного дерева. То есть, текущая единица кодирования может главным образом подвергаться разбиению двоичного дерева, и затем единица кодирования, соответствующая листовому узлу двоичного дерева, может быть установлена в качестве корневого узла для разбиения троичного дерева. В этом случае, ни разбиение квадродерева, ни разбиение двоичного дерева может не выполняться над единицей кодирования, соответствующей узлу троичного дерева.
[00203] Единица кодирования, которая не может разбиваться согласно структуре разбиения квадродерева, структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, становится базовой единицей для кодирования, предсказания и/или преобразования. То есть, единица кодирования не может далее разбиваться для предсказания и/или преобразования. Поэтому, информация структуры разбиения и информация разбиения, используемая для разбиения единицы кодирования в единицы предсказания и/или единицы преобразования, не может быть представлена в битовом потоке.
[00204] Однако, когда размер единицы кодирования (т.е. базовой единицы для разбиения) больше, чем размер максимального блока преобразования, единица кодирования может рекурсивно разбиваться до тех пор, пока размер единицы кодирования не уменьшится, чтобы стать равным или меньшим, чем размер максимального блока преобразования. Например, когда размер единицы кодирования равен 64×64 и когда размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на четыре 32×32 блока для преобразования. Например, когда размер единицы кодирования равен 32×64 и размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на два 32×32 блока для преобразования. В этом случае, разбиение единицы кодирования для преобразования не сигнализируется отдельно и может определяться путем сравнения между горизонтальным или вертикальным размером единицы кодирования и горизонтальным или вертикальным размером максимального блока преобразования. Например, когда горизонтальный размер (ширина) единицы кодирования больше, чем горизонтальный размер (ширина) максимального блока преобразования, единица кодирования может быть вертикально разделена пополам. Например, когда вертикальный размер (длина) единицы кодирования больше, чем вертикальный размер (длина) максимального блока преобразования, единица кодирования может быть горизонтально разделена пополам.
[00205] Информация о максимальном и/или минимальном размере единицы кодирования и информация о максимальном и/или минимальном размере блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Более высокий уровень может представлять собой, например, уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Например, минимальный размер единицы кодирования может быть определен как 4×4. Например, максимальный размер блока преобразования может быть определен как 64×64. Например, минимальный размер блока преобразования может быть определен как 4×4.
[00206] Информация о минимальном размере (минимальном размере квадродерева) единицы кодирования, соответствующей листовому узлу квадродерева, и/или информация о максимальной глубине (максимальной глубине дерева для дерева множества типов) от корневого узла до листового узла дерева множества типов может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о минимальном размере квадродерева и/или информация о максимальной глубине дерева множества типов может сигнализироваться или определяться для каждого из внутри-картинного слайса и меж-картинного слайса.
[00207] Разностная информация между размером CTU и максимальным размером блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о максимальном размере единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как максимальный размер двоичного дерева), может определяться на основе размера единицы дерева кодирования и разностной информации. Максимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как максимальный размер троичного дерева), может варьироваться в зависимости от типа слайса. Например, для внутри-картинного слайса, максимальный размер троичного дерева может быть 32×32. Например, для меж-картинного слайса, максимальный размер троичного дерева может быть 128×128. Например, минимальный размер единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как минимальный размер двоичного дерева), и/или минимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как минимальный размер троичного дерева), может быть установлен в качестве минимального размера блока кодирования.
[00208] В качестве другого примера, максимальный размер двоичного дерева и/или максимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса. Альтернативно, минимальный размер двоичного дерева и/или минимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса.
[00209] В зависимости от размера и информации глубины вышеописанных различных блоков, информация квадро-разбиения, информация указания разбиения дерева множества типов, информация дерева разбиения и/или информация направления разбиения могут включаться или могут не включаться в битовый поток.
[00210] Например, когда размер единицы кодирования не больше, чем минимальный размер квадродерева, единица кодирования не содержит информацию квадро-разбиения. Таким образом, информация квадро-разбиения может быть выведена из второго значения.
[00211] Например, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, больше, чем максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования не может быть двоично разделенной или троично разделенной. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.
[00212] Альтернативно, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, являются теми же самыми, что и максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или в два раза больше, чем максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования не может далее двоично разделяться или троично разделяться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения. Это объясняется тем, что когда единица кодирования разбивается согласно структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, генерируется единица кодирования меньшая, чем минимальный размер двоичного дерева и/или минимальный размер троичного дерева.
[00213] Альтернативно, разбиение двоичного дерева или разбиение троичного дерева может быть ограничено на основе размера единицы данных виртуального конвейера (далее, размер буфера конвейера). Например, когда единица кодирования разделяется на под-единицы кодирования, которые не соответствуют размеру буфера конвейера, посредством разбиения двоичного дерева или разбиения троичного дерева, соответствующее разбиение двоичного дерева или разбиение троичного дерева может ограничиваться. Размер буфера конвейера может быть размером максимального блока преобразования (например, 64×64). Например, когда размер буфера конвейера составляет 64×64, разделение, приведенное ниже, может ограничиваться.
[00214] - N×M (N и/или M равно 128) Разбиение троичного дерева для единиц кодирования
[00215] - 128×N (N<=64) Разбиение двоичного дерева в горизонтальном направлении для единиц кодирования
[00216] - N×128 (N<=64) Разбиение двоичного дерева в вертикальном направлении для единиц кодирования
[00217] Альтернативно, когда глубина единицы кодирования, соответствующей узлу дерева множества типов, равна максимальной глубине дерева множества типов, единица кодирования не может далее двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.
[00218] Альтернативно, только когда по меньшей мере одно из разбиения двоичного дерева в вертикальном направлении, разбиения двоичного дерева в горизонтальном направлении, разбиения троичного дерева в вертикальном направлении и разбиения троичного дерева в горизонтальном направлении возможно для единицы кодирования, соответствующей узлу дерева множества типов, может сигнализироваться информация указания разбиения дерева множества типов. В противном случае, единица кодирования не может двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.
[00219] Альтернативно, только когда для единицы кодирования, соответствующей узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение двоичного дерева в горизонтальном направлении, или как разбиение троичного дерева в вертикальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация направления разбиения может сигнализироваться. В противном случае, информация направления разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможные направления разбиения.
[00220] Альтернативно, только когда для дерева кодирования, соответствующего узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение троичного дерева в вертикальном направлении, или как разбиение двоичного дерева в горизонтальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация дерева разбиения может сигнализироваться. В противном случае, информация дерева разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможное разбиение древовидной структуры.
[00221] Фиг. 4 представляет собой вид, показывающий процесс интра-предсказания.
[00222] Стрелки от центра наружу на фиг. 4 могут представлять направления предсказания режимов интра-предсказания.
[00223] Интра-кодирование и/или декодирование может выполняться с использованием опорной выборки соседнего блока текущего блока. Соседний блок может быть восстановленным соседним блоком. Например, интра-кодирование и/или декодирование может выполняться с использованием параметра кодирования или значения опорной выборки, включенной в восстановленный соседний блок.
[00224] Блок предсказания может означать блок, сгенерированный посредством выполнения интра-предсказания. Блок предсказания может соответствовать по меньшей мере одной из CU, PU и TU. Единица блока предсказания может иметь размер одной из CU, PU и TU. Блок предсказания может быть квадратным блоком, имеющим размер 2×2, 4×4, 16×16, 32×32 или 64×64 и т.д., или может быть прямоугольным блоком, имеющим размер 2×8, 4×8, 2×16, 4×16 и 8×16 и т.д.
[00225] Интра-предсказание может выполняться согласно режиму интра-предсказания для текущего блока. Количество режимов интра-предсказания, которые может иметь текущий блок, может быть фиксированным значением и может быть значением, определяемым по-разному в соответствии с атрибутом блока предсказания. Например, атрибут блока предсказания может содержать размер блока предсказания и форму блока предсказания и т. д.
[00226] Количество режимов интра-предсказания может быть зафиксировано равным N независимо от размера блока. Или количество режимов интра-предсказания может быть 3, 5, 9, 17, 34, 35, 36, 65 или 67 и т.д. Альтернативно, количество режимов интра-предсказания может варьироваться в соответствии с размером блока или типом цветового компонента или обоими. Например, количество режимов интра-предсказания может варьироваться в соответствии с тем, является ли цветовой компонент сигналом яркости или сигналом цветности. Например, когда размер блока становится большим, количество режимов интра-предсказания может увеличиваться. Альтернативно, количество режимов интра-предсказания блока компонента яркости может быть больше, чем количество режимов интра-предсказания блока компонента цветности.
[00227] Режим интра-предсказания может быть неугловым режимом или угловым режимом. Неугловой режим может быть режимом DC или планарным режимом, а угловой режим может быть режимом предсказания, имеющим конкретное направление или угол. Режим интра-предсказания может быть выражен по меньшей мере одним из номера режима, значения режима, символа номера режима, угла режима и направления режима. Количество режимов интра-предсказания может быть M, которое больше 1, включая неугловой и угловой режим. Для интра-предсказания текущего блока может быть выполнен этап определения того, могут ли выборки, включенные в восстановленный соседний блок, использоваться в качестве опорных выборок текущего блока. Когда присутствует выборка, которая не может использоваться в качестве опорной выборки текущего блока, значение, полученное путем дублирования или выполнения интерполяции по меньшей мере одного значения выборки среди выборок, включенных в восстановленный соседний блок, или оба могут использоваться для замены неиспользуемым значением выборки для выборки, таким образом, замененное значение выборки используется в качестве опорной выборки текущего блока.
[00228] Фиг. 7 представляет собой диаграмму, иллюстрирующую опорные выборки, которые могут использоваться для интра-предсказания.
[00229] Как показано на фиг. 7, по меньшей мере одна из линии 0 опорной выборки и линии 3 опорной выборки может использоваться для интра-предсказания текущего блока. На фиг. 7, выборки сегмента A и сегмента F могут быть дополнены выборками, ближайшими к сегменту B и сегменту E, соответственно, вместо извлечения из восстановленного соседнего блока. Информация индекса, указывающая линию опорной выборки, которая должна использоваться для интра-предсказания текущего блока, может сигнализироваться. Когда верхняя граница текущего блока является границей CTU, может быть доступна только линия 0 опорной выборки. Следовательно, в этом случае информация индекса может не сигнализироваться. Когда используется линия опорной выборки, отличная от линии 0 опорной выборки, фильтрация для блока предсказания, который будет описан далее, может не выполняться.
[00230] При интра-предсказании, фильтр может применяться по меньшей мере к одной из опорной выборки и выборки предсказания на основе режима интра-предсказания и текущего размера блока.
[00231] В случае планарного режима, при генерации блока предсказания текущего блока, в соответствии с положением целевой выборки предсказания в блоке предсказания, значение выборки целевой выборки предсказания может быть сгенерировано с использованием взвешенной суммы опорной выборки верхней и левой стороны для текущей выборки, и опорной выборки правой верхней стороны и левой нижней стороны текущего блока. Кроме того, в случае режима DC, при генерации блока предсказания текущего блока, может использоваться среднее значение опорных выборок верхней и левой стороны текущего блока. Кроме того, в случае углового режима, блок предсказания может быть сгенерирован с использованием опорной выборки верхней стороны, левой стороны, правой верхней стороны и/или левой нижней стороны текущего блока. Чтобы сгенерировать значение выборки предсказания, может выполняться интерполяция единицы действительного числа.
[00232] В случае интра-предсказания между цветовыми компонентами, блок предсказания для текущего блока второго цветового компонента может быть сгенерирован на основе соответствующего восстановленного блока первого цветового компонента. Например, первый цветовой компонент может быть компонентом яркости, а второй цветовой компонент может быть компонентом цветности. Для интра-предсказания между цветовыми компонентами, параметры линейной модели между первым цветовым компонентом и вторым цветовым компонентом могут быть получены на основе шаблона. Шаблон может включать в себя верхние и/или левые соседние выборки текущего блока и верхние и/или левые соседние выборки восстановленного блока первого цветового компонента, соответствующего ему. Например, параметры линейной модели могут быть выведены с использованием значения выборки первого цветового компонента, имеющего максимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему, и значения выборки первого цветового компонента, имеющего минимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему. Когда параметры линейной модели выведены, соответствующий восстановленный блок может быть применен к линейной модели, чтобы сгенерировать блок предсказания для текущего блока. В соответствии с форматом видео, субдискретизация может выполняться над соседними выборками восстановленного блока первого цветового компонента и соответствующего восстановленного блока. Например, когда одна выборка второго цветового компонента соответствует четырем выборкам первого цветового компонента, четыре выборки первого цветового компонента могут быть субдискретизированы для вычисления одной соответствующей выборки. В этом случае выведение параметров линейной модели и интра-предсказание между цветовыми компонентами может выполняться на основе соответствующих субдискретизированных выборок. Следует ли или нет выполнять интра-предсказание между цветовыми компонентами и/или диапазон шаблона, может сигнализироваться как режим интра-предсказания.
[00233] Текущий блок может разбиваться на два или четыре подблока в горизонтальном или вертикальном направлении. Разбитые подблоки могут быть последовательно восстановлены. То есть интра-предсказание может выполняться над подблоком, чтобы сгенерировать подблок предсказания. Кроме того, деквантование и/или обратное преобразование может выполняться над подблоками для генерации остаточных подблоков. Восстановленный подблок может быть сгенерирован путем добавления подблока предсказания к остаточному подблоку. Восстановленный подблок может быть использован в качестве опорной выборки для интра-предсказания под-подблоков. Подблок может быть блоком, содержащим предопределенное количество (например, 16) или более выборок. Соответственно, например, когда текущий блок является блоком 8×4 или 4×8, текущий блок может разбиваться на два подблока. Кроме того, когда текущий блок является блоком 4×4, текущий блок не может разбиваться на подблоки. Когда текущий блок имеет другие размеры, текущий блок может разбиваться на четыре подблока. Информация о том, выполнять ли интра-предсказание на основе подблоков и/или направление разбиения (горизонтальное или вертикальное), может сигнализироваться. Интра-предсказание, основанное на подблоках, может быть ограничено выполнением только тогда, когда используется линия 0 опорной выборки. Когда выполняется интра-предсказание на основе подблока, фильтрация для блока предсказания, которая будет описана позже, может не выполняться.
[00234] Окончательный блок предсказания может быть сгенерирован путем выполнения фильтрации на блоке предсказания, который является интра-предсказанным. Фильтрация может быть выполнена путем применения предопределенных весов к целевой выборке фильтрации, левой опорной выборке, верхней опорной выборке и/или верхней левой опорной выборке. Вес и/или опорная выборка (диапазон, положение и т.д.), используемые для фильтрации, могут быть определены на основе по меньшей мере одного из размера блока, режима интра-предсказания и положения целевой выборки фильтрации в блоке предсказания. Фильтрация может выполняться только в случае предопределенного режима интра-предсказания (например, DC, планарный, вертикальный, горизонтальный, диагональный и/или смежный диагональный режимы). Смежный диагональный режим может быть режимом, в котором k добавляется к диагональному режиму или вычитается из него. Например, k может быть целым положительным числом 8 или меньше.
[00235] Режим интра-предсказания текущего блока может быть энтропийно закодирован/декодирован посредством предсказания режима интра-предсказания блока, расположенного смежно с текущим блоком. Когда режимы интра-предсказания текущего блока и соседнего блока идентичны, информация о том, что режимы интра-предсказания текущего блока и соседнего блока идентичны, может сигнализироваться с использованием информации предопределенного флага. Кроме того, может сигнализироваться информация указателя режима интра-предсказания, который идентичен режиму интра-предсказания текущего блока среди режимов интра-предсказания множества соседних блоков. Когда режимы интра-предсказания текущего блока и соседнего блока различны, информация режима интра-предсказания текущего блока может быть энтропийно кодирована/декодирована посредством выполнения энтропийного кодирования/декодирования на основе режима интра-предсказания соседнего блока.
[00236] Фиг. 5 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интер-предсказания.
[00237] На фиг. 5 прямоугольник может представлять картинку. На фиг. 5 стрелка представляет направление предсказания. Картинки могут быть классифицированы на внутренние картинки (I-картинки), картинки с предсказанием (предиктивные) (P-картинки) и картинки с двунаправленным предсказанием (би-предиктивные) (B-картинки) в соответствии с их типом кодирования.
[00238] I-картинка может кодироваться посредством интра-предсказания без необходимости межкартинного (межкадрового) предсказания. Р-картинка может кодироваться посредством межкартинного предсказания с использованием опорной картинки, которая присутствует в одном направлении (то есть в прямом направлении или обратном направлении) относительно текущего блока. B-картинка может кодироваться посредством межкартинного предсказания с использованием опорных картинок, которые предварительно установлены в двух направлениях (то есть прямом направлении и обратном направлении) относительно текущего блока. Когда используется межкартинное предсказание, кодер может выполнять интер-предсказание или компенсацию движения, а декодер может выполнять соответствующую компенсацию движения.
[00239] Ниже будет подробно описан вариант осуществления меж-картинного (интер-) предсказания.
[00240] Интер-предсказание или компенсация движения могут выполняться с использованием опорной картинки и информации движения.
[00241] Информация движения текущего блока может быть выведена во время интер-предсказания каждым из устройства 100 кодирования и устройства 200 декодирования. Информация движения текущего блока может быть выведена с использованием информации движения восстановленного соседнего блока, информации движения совмещенного блока (также называемого col-блоком или совмещенным блоком) и/или блока, смежного с совмещенным блоком. Совмещенный блок может означать блок, который пространственно расположен в том же положении, что и текущий блок, в ранее восстановленной совмещенной картинке (также упоминаемой как col-картинка или совмещенная картинка). Совмещенная картинка может быть одной картинкой из одной или нескольких опорных картинок, включенных в список опорных картинок.
[00242] Способ выведения информации движения может отличаться в зависимости от режима предсказания текущего блока. Например, режим предсказания, применяемый для интер-предсказания, включает в себя режим AMVP, режим слияния, режим пропуска, режим слияния с разностью векторов движения, режим слияния подблоков, режим треугольного разбиения, режим интер-интра комбинированного предсказания, аффинный режим и т.п. Здесь режим слияния может упоминаться как режим слияния движения.
[00243] Например, когда AMVP используется в качестве режима предсказания, по меньшей мере один из векторов движения восстановленных соседних блоков, векторов движения совмещенных блоков, векторов движения блоков, смежных с совмещенными блоками, и (0, 0) вектор движения могут быть определены в качестве кандидатов вектора движения для текущего блока, и список кандидатов вектора движения генерируется с использованием кандидатов вектора движения. Кандидат вектора движения текущего блока может быть выведен с использованием сгенерированного списка кандидатов вектора движения. Информация движения текущего блока может быть определена на основе выведенного кандидата вектора движения. Векторы движения совмещенных блоков или векторы движения блоков, смежных с совмещенными блоками, могут упоминаться как временные кандидаты вектора движения, а векторы движения восстановленных соседних блоков могут упоминаться как пространственные кандидаты вектора движения.
[00244] Устройство 100 кодирования может вычислять разность векторов движения (MVD) между вектором движения текущего блока и кандидатом вектора движения и может выполнять энтропийное кодирование разности векторов движения (MVD). Кроме того, устройство 100 кодирования может выполнять энтропийное кодирование индекса кандидата вектора движения и генерировать битовый поток. Индекс кандидата вектора движения может указывать оптимального кандидата вектора движения среди кандидатов вектора движения, включенных в список кандидатов вектора движения. Устройство декодирования может выполнять энтропийное декодирование над индексом кандидата вектора движения, включенным в битовый поток, и может выбирать кандидата вектора движения целевого блока декодирования из числа кандидатов вектора движения, включенных в список кандидатов вектора движения, с использованием энтропийно декодированного индекса кандидата вектора движения. Кроме того, устройство 200 декодирования может суммировать энтропийно декодированную MVD и кандидат вектора движения, извлеченный посредством энтропийного декодирования, тем самым выводя вектор движения целевого блока декодирования.
[00245] Между тем устройство 100 кодирования может выполнять энтропийное кодирование над информацией разрешения вычисленной MVD. Устройство 200 декодирования может регулировать разрешение энтропийно декодированной MVD с использованием информации разрешения MVD.
[00246] Между тем устройство 100 кодирования вычисляет разность векторов движения (MVD) между вектором движения и кандидатом вектора движения в текущем блоке на основе аффинной модели и выполняет энтропийное кодирование над MVD. Устройство 200 декодирования выводит вектор движения для каждого подблока путем выведения вектора движения аффинного управления целевого блока декодирования через сумму энтропийно декодированной MVD и кандидата вектора движения аффинного управления.
[00247] Битовый поток может включать в себя индекс опорной картинки, указывающий опорную картинку. Индекс опорной картинки может энтропийно кодироваться устройством 100 кодирования и затем сигнализироваться как битовый поток в устройство 200 декодирования. Устройство 200 декодирования может генерировать блок предсказания из целевого блока декодирования на основе выведенного вектора движения и информации индекса опорной картинки.
[00248] Другим примером способа выведения текущей информации движения может быть режим слияния. Режим слияния может означать способ слияния движения множества блоков. Режим слияния может означать режим выведения информации движения текущего блока из информации движения соседних блоков. Когда применяется режим слияния, список кандидатов слияния может генерироваться с использованием информации движения восстановленных соседних блоков и/или информации движения совмещенных блоков. Информация движения может включать в себя по меньшей мере одно из вектора движения, индекса опорной картинки и указателя интер-предсказания. Указатель предсказания может указывать однонаправленное предсказание (предсказание L0 или предсказание L1) или двунаправленное предсказание (предсказание L0 и предсказание L1).
[00249] Список кандидатов слияния может быть списком сохраненной информации движения. Информация движения, включенная в список кандидатов слияния, может быть по меньшей мере одной из информации движения (кандидата пространственного слияния) соседнего блока, смежного с текущим блоком, информации движения (кандидата временного слияния) совмещенного блока текущего блока в опорной картинке, новой информации движения, сгенерированной комбинацией информации движения, выходящей из списка кандидатов слияния, информации движения (кандидата слияния на основе истории) блока, который кодирован/декодирован перед текущим блоком, и нулевого кандидата слияния.
[00250] Устройство 100 кодирования может генерировать битовый поток путем выполнения энтропийного кодирования по меньшей мере на одном из флага слияния и индекса слияния и может сигнализировать битовый поток устройству 200 декодирования. Флаг слияния может быть информацией, указывающей, следует ли выполнять режим слияния для каждого блока, и индекс слияния может быть информацией, указывающей, какой соседний блок среди соседних блоков текущего блока является целевым блоком слияния. Например, соседние блоки текущего блока могут включать в себя левый соседний блок с левой стороны текущего блока, верхний соседний блок, расположенный над текущим блоком, и временной соседний блок, смежный по времени с текущим блоком.
[00251] Между тем устройство 100 кодирования выполняет энтропийное кодирование над информацией коррекции для коррекции вектора движения среди информации движения кандидата слияния и сигнализирует об этом в устройство 200 декодирования. Устройство 200 декодирования может корректировать вектор движения кандидата слияния, выбранный индексом слияния, на основе информации коррекции. Здесь информация коррекции может включать в себя по меньшей мере одну из информации о том, выполнять ли коррекцию или нет, информации направления коррекции и информации размера коррекции. Как описано выше, режим предсказания, который корректирует вектор движения кандидата слияния на основе сигнализированной информации коррекции, может упоминаться как режим слияния, имеющий разность векторов движения.
[00252] Режим пропуска может быть режимом, в котором информация движения соседнего блока применяется к текущему блоку как есть. Когда применяется режим пропуска, устройство 100 кодирования может выполнять энтропийное кодирование информации о том, что информация движения конкретного блока должна быть использована в качестве информации движения текущего блока для генерации битового потока, и может сигнализировать битовый поток к устройству 200 декодирования. Устройство 100 кодирования может не сигнализировать синтаксический элемент касательно по меньшей мере любого одного из информации о разности векторов движения, флага блока кодирования и уровня коэффициентов преобразования в устройство 200 декодирования.
[00253] Режим слияния подблоков может означать режим, который выводит информацию движения в единицах подблоков блока кодирования (CU). Когда применяется режим слияния подблоков, список кандидатов слияния подблока может быть сгенерирован с использованием информации движения (кандидат временного слияния на основе подблока) подблока, совмещенного с текущим подблоком в опорном изображении, и/или кандидата слияния вектора движения точки аффинного управления.
[00254] Режим треугольного разбиения может означать режим, который выводит информацию движения путем разбиения текущего блока на диагональные направления, выводит каждую выборку предсказания с использованием каждой выведенной информации движения и извлекает выборку предсказания текущего блока путем взвешивания каждой из выведенных выборок предсказания.
[00255] Режим объединенного интер-интра предсказания может означать режим, который выводит выборку предсказания текущего блока путем взвешивания выборки предсказания, сгенерированной с помощью интер-предсказания, и выборки предсказания, сгенерированной с помощью интра-предсказания.
[00256] Устройство 200 декодирования может самостоятельно корректировать выведенную информацию движения. Устройство 200 декодирования может осуществлять поиск в заданной области на основе опорного блока, указанного выведенной информацией движения, и выводить информацию движения, имеющую минимальную SAD, как скорректированную информацию движения.
[00257] Устройство 200 декодирования может компенсировать выборку предсказания, выведенную посредством интер-предсказания, с использованием оптического потока.
[00258] Фиг. 6 представляет собой диаграмму, иллюстрирующую процесс преобразования и квантования.
[00259] Как показано на фиг. 6, процесс преобразования и/или квантования выполняется над остаточным сигналом, чтобы сгенерировать сигнал квантованного уровня. Остаточный сигнал представляет собой разницу между исходным блоком и блоком предсказания (то есть блоком интра-предсказания или блоком интер-предсказания). Блок предсказания представляет собой блок, сгенерированный посредством интра-предсказания или интер-предсказания. Преобразование может быть первичным преобразованием, вторичным преобразованием или и тем, и другим. Первичное преобразование остаточного сигнала приводит к коэффициентам преобразования, а вторичное преобразование коэффициентов преобразования приводит к вторичным коэффициентам преобразования.
[00260] По меньшей мере одна схема, выбранная из различных схем преобразования, которые предварительно определены, используется для выполнения первичного преобразования. Например, примеры предопределенных схем преобразования включают дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) и преобразование Карунена-Лоэва (KLT). Коэффициенты преобразования, сгенерированные посредством первичного преобразования, могут подвергаться вторичному преобразованию. Схемы преобразования, используемые для первичного преобразования и/или вторичного преобразования, могут быть определены согласно параметрам кодирования текущего блока и/или соседних блоков текущего блока. Альтернативно может сигнализироваться информация о преобразовании, указывающая схему преобразования. Преобразование на основе DCT может включать в себя, например, DCT-2, DCT-8 и т.п. Преобразование на основе DST может включать, например, DST-7.
[00261]
[00262] Сигнал квантованного уровня (коэффициенты квантования) может быть сгенерирован путем выполнения квантования остаточного сигнала или результата выполнения первичного преобразования и/или вторичного преобразования. Сигнал квантованного уровня может сканироваться согласно по меньшей мере одному из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования, в зависимости от режима интра-предсказания блока или размера/формы блока. Например, когда коэффициенты сканируются при диагональном сканировании вверх-вправо, коэффициенты в блочной форме преобразуются в форму одномерного вектора. Помимо диагонального сканирования вверх-вправо, горизонтальная развертка горизонтального сканирования двумерной формы блока коэффициентов или вертикальная развертка вертикального сканирования двумерной формы блока коэффициентов может использоваться в зависимости от режима интра-предсказания и/или размера блока преобразования. Отсканированные коэффициенты квантованного уровня могут быть энтропийно закодированы для вставки в битовый поток.
[00263] Декодер выполняет энтропийное декодирование битового потока для получения коэффициентов квантованного уровня. Коэффициенты квантованного уровня могут быть скомпонованы в двумерной форме блока посредством обратного сканирования. Для обратного сканирования может использоваться по меньшей мере одно из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования.
[00264] Коэффициенты квантованного уровня затем могут быть деквантованы, затем могут быть подвергнуты вторичному обратному преобразованию, если необходимо, и, наконец, первично-обратному преобразованию, если необходимо, для генерации восстановленного остаточного сигнала.
[00265] Обратное отображение в динамическом диапазоне может выполняться для компонента яркости, восстановленного посредством интра-предсказания или интер-предсказания, перед внутриконтурной фильтрацией. Динамический диапазон может разбиваться на 16 равных частей, и функция отображения для каждой части может сигнализироваться. Функция отображения может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Функция обратного отображения для выполнения обратного отображения может быть выведена на основе функции отображения. Контурная фильтрация, сохранение опорных картинок и компенсация движения выполняются в области обратного отображения, и блок предсказания, сгенерированный посредством интер-предсказания, преобразуется в отображаемую область посредством отображения с использованием функции отображения, а затем используется для генерации восстановленного блока. Однако, поскольку интра-предсказание выполняется в отображаемой области, блок предсказания, сгенерированный посредством интра-предсказания, может использоваться для генерации восстановленного блока без отображения/обратного отображения.
[00266] Когда текущий блок является остаточным блоком цветового компонента, остаточный блок может быть преобразован в область обратного отображения путем выполнения масштабирования компонента цветности отображенной области. Доступность масштабирования может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Масштабирование может применяться только тогда, когда доступно отображение для компонента яркости, и разделение компонента яркости и разделение компонента цветности следуют одной и той же древовидной структуре. Масштабирование может выполняться на основе среднего значения выборок блока предсказания яркости, соответствующего блоку цветовой разности. В этом случае, когда текущий блок использует интер-предсказание, блок предсказания яркости может означать отображенный блок предсказания яркости. Значение, необходимое для масштабирования, может быть получено путем обращения к поисковой таблице с использованием индекса фрагмента, которому принадлежит среднее значение выборок блока предсказания яркости. Наконец, путем масштабирования остаточного блока с использованием выведенного значения, остаточный блок может быть переключен в область обратного отображения. Затем восстановление блока компонента цветности, интра-предсказание, интер-предсказание, контурная фильтрация и сохранение опорных картинок могут выполняться в области обратного отображения.
[00267] Информация, указывающая, доступно ли отображение/обратное отображение компонента яркости и компонента цветности, может сигнализироваться через набор параметров последовательности.
[00268] Блок предсказания текущего блока может быть сгенерирован на основе вектора блока, указывающего смещение между текущим блоком и опорным блоком в текущем изображении. Таким образом, режим предсказания для генерации блока предсказания со ссылкой на текущую картинку называется режимом внутриблочного копирования (IBC). Режим IBC может применяться к единицам кодирования M×N (M<=64, N<=64). Режим IBC может включать в себя режим пропуска, режим слияния, режим AMVP и т.п. В случае режима пропуска или режима слияния, формируется список кандидатов слияния, и индекс слияния сигнализируется, так что может быть указан один кандидат слияния. Вектор блока указанного кандидата слияния может использоваться как вектор блока текущего блока. Список кандидатов слияния может включать в себя по меньшей мере одно из пространственного кандидата, кандидата на основе истории, кандидата, основанного на среднем двух кандидатов, и кандидата нулевого слияния. В случае режима AMVP может сигнализироваться вектор разностного блока. Кроме того, вектор блока предсказания может быть выведен из левого соседнего блока и верхнего соседнего блока текущего блока. Индекс для соседнего блока, который должен использоваться, может сигнализироваться. Блок предсказания в режиме IBC включается в текущую CTU или левую CTU и ограничивается блоком в уже восстановленной области. Например, значение вектора блока может быть ограничено таким образом, чтобы блок предсказания текущего блока располагался в области из трех блоков 64×64, предшествующих блоку 64×64, которому принадлежит текущий блок, в порядке кодирования/декодирования. Путем ограничения значения вектора блока таким образом, потребление памяти и сложность устройства в соответствии с реализацией режима IBC могут быть уменьшены.
[00269]
[00270] Далее способ кодирования/декодирования изображения в соответствии с настоящим изобретением будет описан на основе приведенного выше описания.
[00271] В настоящем изобретении будет описан способ генерирования списка кандидатов для выполнения предсказания движения. В следующем варианте осуществления, список кандидатов может означать список появления адаптивного вектора движения (AMVOL). В качестве другого примера, в следующем варианте осуществления, список кандидатов может означать список предсказателей вектора движения на основе истории (HMVP). Кодер или декодер может выполнять предсказание движения более точно и эффективно путем генерирования и использования списка кандидатов в соответствии с настоящим изобретением, тем самым повышая эффективность кодирования.
[00272] В соответствии с настоящим изобретением, при выполнении предсказания движения кодер или декодер может выполнять предсказание движения с использованием информации движения, полученной в предопределенной секции или области.
[00273] Информация движения может храниться и использоваться в блоке, имеющем более высокий уровень, чем блок, в котором выполняется предсказание информации движения. Пример единицы, в которой выполняется предсказание движения, включает в себя CU, PU, блок, макроблок и т.п. Единица, имеющая более высокий уровень, чем единица, в которой выполняется предсказание информации движения, может включать все единицы большие, чем единица, в которой выполняется предсказание информации движения. Например, единица, имеющая более высокий уровень здесь, может включать в себя по меньшей мере одно из блока, CTU, бруска (кирпичика), мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или более CU.
[00274] В следующих вариантах осуществления, более высокая единица, большая, чем единица, в которой выполняется предсказание информации движения, может быть представлена более высокой единицей предсказания (UPU). То есть, в следующих вариантах осуществления, UPU может означать по меньшей мере одно из блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или нескольких CU.
[00275] Фиг. 8 представляет собой диаграмму, иллюстрирующую более высокую верхнюю единицу предсказания (UPU), используемую в некоторых вариантах осуществления настоящего изобретения.
[00276] В настоящем описании, UPU может означать набор единиц, в которых выполняется предсказание движения, и структуру, имеющую один или более списков кандидатов. Далее, блок, принадлежащий конкретной UPU, может быть выражен как блок, имеющий более низкий уровень, чем соответствующая UPU, или блок, включенный в UPU. Список кандидатов для конкретной UPU может быть построен с использованием информации движения, сгенерированной из блоков, имеющих более низкий уровень, чем UPU. Список кандидатов может быть сконфигурирован для хранения всей или части информации движения, сгенерированной из блоков, имеющих более низкий уровень, чем UPU. Размеры или единицы различных UPU могут быть одинаковыми или могут быть установлены по-разному.
[00277] Со ссылкой на фиг. 8 описывается UPU, которая может использоваться в некоторых вариантах осуществления настоящего изобретения. Картинка на фиг. 8 включает в себя множество блоков кодирования.
[00278] Фиг. 8(a) иллюстрирует случай, когда множество картинок принадлежит одной UPU. То есть фиг. 8(a) иллюстрирует случай, когда UPU является единицей GOP. В этом случае UPU может иметь список кандидатов, сгенерированный с использованием информации движения, сгенерированной из картинок, включенных в UPU.
[00279] Фиг. 8(b) иллюстрирует случай, когда одна картинка принадлежит одной UPU. В этом случае, UPU может иметь список кандидатов, сгенерированный с использованием информации движения, сгенерированной в каждом изображении.
[00280] Фиг. 8(c)-8(e) иллюстрируют случаи, в которых одна картинка включает в себя множество UPU. То есть фиг. 8(c)-8(e) иллюстрируют случаи, в которых UPU является единицей, имеющей более низкий уровень, чем картинка. Например, UPU можно установить, выполняя четвертное разбиение картинки по горизонтали (фиг. 8(c)) или выполняя четвертное разбиение картинки по вертикали. В качестве другого примера, UPU может быть установлена путем выполнения n-разбиения картинки.
[00281] Между тем фиг. 8(d) может быть примером, в котором UPU состоит из блоков CTU, образующих одну строку. То есть UPU может быть установлена в единице строки CTU. Здесь, UPU может иметь список кандидатов, сгенерированный с использованием информации движения, сгенерированной в каждой строке CTU.
[00282] Хотя это не показано на фиг. 8, UPU может быть установлена в единице CTU и может быть установлена в единице слайса, кирпичика и множества CU.
[00283] Далее, информация движения, включенная в список кандидатов, может включать в себя по меньшей мере одно из информации, необходимой для предсказания движения, такой как вектор движения, номер опорной картинки (индекс, идентификатор и т.д.), список опорных картинок, направление предсказания движения и т.п.
[00284] Единица, в которой хранится информация движения, сгенерированная в блоках, включенных в UPU, может называться списком кандидатов. Информация движения, хранящаяся в списке кандидатов, может использоваться, когда кодер или декодер работает в режиме интер-предсказания или режиме IBC. Список кандидатов может включать в себя дополнительную информацию, которая может использоваться для использования списка кандидатов в дополнение к информации движения. Дополнительная информация, которая может быть включена в список кандидатов, может включать в себя, например, информацию частоты появления информации движения, информацию положения, где появляется информация движения, и т.п.
[00285] Фиг. 9 представляет собой схему, иллюстрирующую структуру кодера в соответствии с вариантом осуществления настоящего изобретения.
[00286] Согласно фиг. 9, информация движения, сгенерированная в результате интер-предсказания, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. В качестве другого примера, хотя он и не показан на фиг. 9, информация движения, сгенерированная в результате предсказания IBC, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. Затем список кандидатов может использоваться для интер-предсказания или IBC, тем самым повышая эффективность кодирования.
[00287] Фиг. 10 представляет собой схему, иллюстрирующую структуру декодера в соответствии с вариантом осуществления настоящего изобретения.
[00288] Согласно фиг. 10, информация движения, восстановленная посредством интер-предсказания, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. В качестве другого примера, хотя он и не показан на фиг. 10, информация движения, восстановленная посредством предсказания IBC, может быть добавлена в список кандидатов в соответствии с настоящим изобретением. Затем список кандидатов может быть снова использован в интер-предсказании или IBC для восстановления информации движения для текущего блока.
[00289] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования/декодирования в соответствии с вариантом осуществления настоящего изобретения.
[00290] Фиг. 11(а) показывает способ кодирования кодера, в котором применяется настоящее изобретение. Общее предсказание информации движения кодера может ссылаться на способ предсказания информации движения, выполняемый кодером согласно предшествующему уровню техники. Предсказание информации движения в списке кандидатов может означать предсказание информации движения с использованием списка кандидатов в соответствии с настоящим изобретением. Этап предсказания движения означает этап предсказания движения текущего блока, и результат предсказания информации движения может быть использован в этом процессе. Выбор оптимального предсказания может означать выбор предсказания, наиболее оптимального для кодирования, из результатов предсказания информации движения, выведенных из общего предсказания информации движения, и результатов предсказания информации движения, выведенных из предсказания информации движения с использованием списка кандидатов. Кодирование информации движения может означать этап способа кодирования согласно результату выбора оптимального предсказания, дополнительной информации, относящейся к нему, и информации, относящейся к информации движения. Добавление информации движения из списка кандидатов может включать в себя добавление ранее сгенерированной информации движения в список кандидатов. Информация движения, добавленная при добавлении информации движения из списка кандидатов, может использоваться позже в интер-предсказании кодера.
[00291] Фиг. 11(b) показывает способ декодирования декодера, в котором применяется настоящее изобретение. Декодирование информации движения может быть этапом декодирования сигнала, закодированного кодером. Декодированный сигнал может включать способ декодирования для декодирования текущего блока, дополнительную информацию о способе декодирования и информацию, относящуюся к информации движения. Общее предсказание информации движения может ссылаться на способ предсказания информации движения, выполняемый в обычном декодере. Предсказание информации движения списка кандидатов может означать предсказание информации движения с использованием списка кандидатов в соответствии с настоящим изобретением. Имеется множество результатов общего предсказания информации движения и предсказания информации движения списка кандидатов. Декодер может определить, является ли оптимальное предсказание предсказанием информации движения с использованием списка кандидатов, тем самым выбирая способ предсказания информации движения, который будет использоваться для декодирования, среди способа предсказания информации движения списка кандидатов и общего способа предсказания информации движения. Способ предсказания информации движения может быть определен посредством информации, сигнализированной кодером. Компенсация движения может означать этап декодирования информации движения действительного блока и может означать этап декодирования информации движения текущего блока с использованием декодированного сигнала и результата предсказания информации движения. Добавление информации движения списка кандидатов может быть этапом добавления окончательно декодированной информации движения в список кандидатов. Информация движения, добавленная при добавлении информации движения списка кандидатов, может использоваться позже в интер-предсказании декодера.
[00292] Фиг. 12 представляет собой диаграмму, иллюстрирующую структуры кодера и декодера в соответствии с другим вариантом осуществления настоящего изобретения.
[00293] На фиг. 12(а) показана конфигурация кодера, в котором применяется настоящее изобретение. Модуль общего предсказания информации движения может означать модуль предсказания информации движения, выполняемый кодером. Модуль предсказания информации движения списка кандидатов может относиться к конфигурации для выполнения предсказания информации движения с использованием информации движения, сохраненной в списке кандидатов в соответствии с настоящим изобретением. Имеется множество результатов предсказания информации движения модуля общего предсказания информации движения и модуля предсказания информации движения списка кандидатов. Модуль предсказания движения относится к конфигурации для предсказания движения текущего блока, и в этом процессе может использоваться результат предсказания информации движения. Модуль выбора оптимального предсказания может быть сконфигурирован для выбора предсказания, оптимального для кодирования текущего блока, среди результатов предсказания информации движения, выведенных из общего предсказания информации движения, и результатов предсказания информации движения, выведенных из предсказания информации движения списка кандидатов. Модуль кодирования информации движения может быть сконфигурирован для кодирования способа кодирования согласно результату выбора модуля выбора оптимального предсказания, дополнительной информации, связанной с ним, и информации, относящейся к информации движения. Модуль добавления списка кандидатов может быть сконфигурирован для добавления ранее сгенерированной информации движения в список кандидатов. Информация движения, добавленная модулем добавления списка кандидатов, может использоваться позже в интер-предсказании или IBC кодером.
[00294] Фиг. 11(b) представляет собой диаграмму, показывающую устройство интер-предсказания декодера, в котором применяется настоящее изобретение. Модуль декодирования информации движения может быть сконфигурирован для декодирования сигнала, закодированного кодером. Декодированный сигнал может включать способ декодирования для декодирования текущего блока, дополнительную информацию о способе декодирования и информацию, относящуюся к информации движения. Модуль общего предсказания информации движения может относиться к конфигурации, которая выполняет способ предсказания информации движения, выполняемый обычным декодером. Модуль предсказания информации движения списка кандидатов может относиться к конфигурации для выполнения предсказания информации движения с использованием информации движения, сохраненной в списке кандидатов. Имеется множество результатов общего предсказания информации движения и предсказания информации движения списка кандидатов. Компенсатор движения может декодировать информацию движения текущего блока с использованием сигнала, декодированного модулем декодирования информации движения, и результата предсказания информации движения. Модуль добавления списка кандидатов может быть сконфигурирован для добавления окончательно декодированной информации движения в список кандидатов. Информация движения, добавленная модулем добавления списка кандидатов, может использоваться позже в интер-предсказании или IBC декодера.
[00295] Когда новая информация движения или кандидат сохраняется в списке кандидатов, та же самая информация движения или кандидат может не храниться в списке кандидатов. Кодер или декодер может определить, включена ли информация движения, перекрывающаяся с новой информацией движения, в текущий список кандидатов. Кодер или декодер могут выполнять разные операции в соответствии с тем, перекрываются ли они.
[00296] Здесь критерий для определения той же самой информации движения может быть связан с тем, одинакова ли вся информация, включенная в информацию движения, и являются ли некоторые части из нее одинаковыми. Например, учитывая, что информация движения состоит из вектора движения и номера опорной картинки, когда только вектор движения сравнивается, и векторы движения являются теми же самыми, кодер или декодер может определить, что информация движения, подлежащая добавлению, является той же самой, что и информация движения, включенная в список кандидатов. Кроме того, кодер или декодер может определить, что информация движения, подлежащая добавлению, является той же самой, что и информация движения, включенная в список кандидатов, только тогда, когда как вектор движения, так и номер опорной картинки являются теми же самыми.
[00297] Информация движения из списка кандидатов в соответствии с настоящим изобретением может определять потенциал предсказания информации движения, а также сохранять и обновлять информацию, представляющую то же самое. Здесь, кандидаты из списка кандидатов могут быть упорядочены в соответствии с потенциалом предсказания информации движения. Далее будет описан способ определения потенциала предсказания списка кандидатов.
[00298] Размер списка кандидатов в соответствии с настоящим изобретением может быть ограничен. Здесь, размер списка кандидатов может означать максимальную информацию движения или количество кандидатов, которые могут храниться в списке кандидатов. Когда количество частей информации движения, сохраненной в списке кандидатов, достигает максимального значения, кодер или декодер может добавлять (сохранять) или пропускать сохранение новой информации движения в списке кандидатов согласно следующему примеру.
[00299] Размер списка кандидатов может быть ограничен предварительно установленным значением в кодере или декодере. Например, предварительно установленное значение может быть значением от 1 до 6. В качестве другого примера, размер списка кандидатов может быть ограничен значением, сигнализируемым из кодера в декодер. Информация о значениях для ограничения размера списка кандидатов может сигнализироваться на более высоком уровне битового потока, таком как набор параметров последовательности, набор параметров картинки, заголовок слайса, заголовок мозаичного элемента и заголовок группы мозаичных элементов.
[00300] Например, когда количество частей информации движения, сохраненных в списке кандидатов, достигает максимального значения, вновь выведенная информация движения может быть опущена без сохранения в списке кандидатов.
[00301] В качестве другого примера, когда количество частей информации движения, сохраненных в списке кандидатов, достигает максимального значения, потенциал предсказания вновь выведенной информации движения сравнивается с потенциалом предсказания информации движения, сохраненной в существующем списке кандидатов, так что информация движения с высоким потенциалом предсказания добавляется в список кандидатов, а информация движения с самым низким потенциалом предсказания может быть удалена из списка кандидатов. Здесь, когда потенциал предсказания вновь выведенной информации движения ниже, чем потенциал предсказания информации движения, сохраненной в существующем списке кандидатов, вновь выведенная информация движения может быть опущена без сохранения в списке кандидатов.
[00302] В качестве другого примера, когда количество частей информации движения, сохраненной в списке кандидатов, достигает максимального значения, информация движения, сохраненная первой среди информации движения, сохраненной в списке кандидатов, удаляется, и вновь выведенная информация движения может быть добавлена к списку кандидатов. То есть, вновь сгенерированная информация движения может быть добавлена в список кандидатов по правилу “первым пришел - первым обслужен” (FIFO).
[00303] То есть когда количество частей информации движения, сохраненной в списке кандидатов, достигает максимального значения, информация движения, указанная индексом 0 списка кандидатов, может быть удалена, а вновь выведенная информация движения может быть добавлена в список кандидатов. Здесь, индекс информации движения, включенной в список кандидатов, может быть уменьшен на единицу. Вновь добавляемая информация движения может быть добавлена в список кандидатов и указывается наибольшим индексом среди информации движения, включенной в список кандидатов.
[00304] Процесс добавления информации движения в список кандидатов может быть опущен.
[00305] Например, когда та же самая информация движения уже сохранена в списке кандидатов, вновь выведенная информация движения может не добавляться в список кандидатов. В качестве другого примера, когда сходная информация движения уже сохранена в списке кандидатов, вновь выведенная информация движения может не добавляться в список кандидатов. В качестве другого примера, когда количество частей информации движения, хранящихся в списке кандидатов, уже достигло максимума, вновь выведенная информация движения может не добавляться в список кандидатов. В качестве другого примера, когда потенциал предсказания информации движения, подлежащей сохранению, является низким, вновь выведенная информация движения может не добавляться в список кандидатов.
[00306] В качестве другого примера, когда информация движения, которая должна быть вновь добавлена, уже сохранена в списке кандидатов, предварительно сохраненная перекрывающаяся информация движения может быть удалена из списка кандидатов, а вновь выведенная информация движения может быть добавлена в список кандидатов. Здесь, индексы информации движения из списка кандидатов, имеющие значение индекса больше, чем удаленная информация движения, могут быть уменьшены на единицу. Вновь добавленная информация движения может быть добавлена в список кандидатов и указывается наибольшим индексом среди информации движения, включенной в список кандидатов.
[00307] Здесь, то, что информация движения сходна, может означать случай, когда разность положения опорной области, указанной информацией движения, равна или меньше, чем предопределенное пороговое значение. Вектор движения может быть выражен как комбинация (dx, dy) смещения dx по оси x и смещения dy по оси y. dx представляет, насколько далеко опорная область отделена от положения текущего блока по оси x, а dy представляет, насколько далеко опорная область отделена от положения текущего блока по оси y. Например, MV1 выражен как (2, 3), MV2 выражен как (3, 3), MV3 выражен как (10, 5), и предопределенное пороговое значение может быть 3 по оси x и 3 по оси y. Здесь, поскольку MV1 и MV2 имеют разность 1 по оси x и 0 по оси y, все из которых меньше или равны пороговому значению, MV1 и MV2 могут быть определены как имеющие информацию движения сходную друг с другом. Между тем, поскольку MV1 и MV3 имеют разность 8 по оси x и 2 по оси y, что превышает пороговое значение по оси x, определяется, что MV1 и MV3 не являются сходной информацией движения.
[00308] Процесс сравнения разности между пороговым значением и парой информации движения и процесс сравнения разности между парой информации движения и разницей между другой парой информации движения может упоминаться как сравнение сходства информации движения. Здесь, сравнение сходства может выполняться для всей информации, которая содержится в информации движения, и сравнение сходства может выполняться только для некоторой информации из информации движения. Например, когда информация движения состоит из информации, которая показывает вектор движения и опорную картинку, сравнение сходства может быть выполнено только для вектора движения, и сравнение сходства может быть выполнено путем сравнения всей информации, показывающей вектор движения, и опорной картинки.
[00309] Информация движения, сохраненная в списке кандидатов, может использоваться в качестве кандидата для предсказания информации движения. То есть информация движения может использоваться в качестве кандидата для всех способов предсказания информации движения, которые предсказывают текущую информацию движения со ссылкой на другую информацию движения. Например, информация движения, сохраненная в списке кандидатов, может использоваться в качестве одного из кандидатов информации движения, когда кодер или декодер работает в режиме слияния, и кодер или декодер работает в режиме AMVP или режиме IBC.
[00310] При использовании информации движения, сохраненной в списке кандидатов, в качестве кандидата предсказания информации движения, информация движения, используемая в качестве кандидата, может быть определена как кандидат списка кандидатов в соответствии с настоящим изобретением.
[00311] Кандидат, используемый для обычного предсказания информации движения, и кандидат в списке кандидатов могут использоваться одновременно, и предсказание информации движения может выполняться с использованием только кандидатов из списка кандидатов.
[00312] Например, когда кандидат из списка кандидатов используется вместе с обычным кандидатом предсказания информации движения, могут генерироваться кандидаты в списке кандидатов, исключая информацию движения из списка кандидатов, имеющие более высокий приоритет, чем кандидат из списка кандидатов, или имеющие ту же информацию движения, что и ранее сгенерированный кандидат. Здесь приоритет может означать приоритет кандидатов информации движения, на которых ссылаются в интер-предсказании или IBC. Поскольку приоритет кандидата информации движения выше, кодер может выполнять сигнализацию, назначая меньшее количество битов кандидату.
[00313] Кроме того, при конфигурировании AMVP или списка кандидатов слияния, когда размер кандидата AMVP или списка кандидатов слияния ограничен, AMVP или список кандидатов слияния может быть сконфигурирован согласно приоритету. Например, начиная с кандидата с более высоким приоритетом, он может добавляться в AMVP или список кандидатов слияния. Когда информация движения кандидата сохраняется в списке кандидатов до максимального размера AMVP или списка кандидатов слияния, кандидат с низким приоритетом не добавляется в список кандидатов и не может использоваться для предсказания информации движения.
[00314] Кроме того, когда AMVP или список кандидатов слияния сконфигурирован с использованием информации движения с высоким приоритетом, кодер или декодер может сигнализировать информацию, указывающую конкретного кандидата.
[00315] Фиг. 13 представляет собой диаграмму, иллюстрирующую список кандидатов в соответствии с вариантом осуществления настоящего изобретения.
[00316] Фиг. 13 иллюстрирует случай, когда вариант осуществления настоящего изобретения применяется к режиму слияния и режиму AMVP.
[00317] В списке кандидатов слияния приоритет может быть установлен в порядке пространственного кандидата, временного кандидата, кандидата смешанного списка и кандидата нулевого вектора. Пространственные кандидаты могут иметь приоритет в порядке A1, B1, B0, A0 и B2. Временной кандидат может иметь приоритет в порядке H и C, и по меньшей мере один из двух кандидатов может быть добавлен в список кандидатов слияния. Кандидат смешанного списка для двунаправленного предсказания может генерироваться путем объединения пространственного кандидата и временного кандидата, добавленных в список кандидатов. Кандидат нулевого вектора может генерировать кандидата, имеющего вектор движения в качестве нулевого вектора, указывающего, что движение отсутствует.
[00318] Соответственно, кандидат слияния может иметь приоритет в порядке A1, B1, B0, A0, B2, H или C, кандидат смешанного списка и кандидат нулевого вектора, и кандидаты, доступные в порядке высокого приоритета, могут быть добавлены к списку кандидатов слияния. При этом когда кандидаты добавляются до максимального размера списка кандидатов, больше кандидатов нельзя добавить в список кандидатов.
[00319] Здесь, кандидаты из списка кандидатов в соответствии с настоящим изобретением могут быть добавлены в список кандидатов слияния. Кандидаты, добавленные в список кандидатов слияния, могут располагаться в любых положениях, например, впереди, сзади, посредине и т.д. кандидатов, не использующих список кандидатов в соответствии с настоящим изобретением, и множество кандидатов могут быть добавлены посредством различных приоритетов. Фиг. 13 иллюстрирует ситуацию, когда кандидаты из двух списков кандидатов добавляются в список кандидатов слияния после пространственного кандидата и временного кандидата. Кандидаты в список кандидатов могут быть добавлены в различных положениях, например, перед пространственными кандидатами, между пространственными кандидатами, перед временными кандидатами, позади временных кандидатов, а также могут быть добавлены в двух или более положениях. Здесь, кандидаты из одного или нескольких списков кандидатов могут быть добавлены в список кандидатов слияния.
[00320] Список кандидатов может быть сконфигурирован путем применения различных способов, описанных в данном документе, с использованием информации движения всех блоков, закодированных перед текущим блоком. Кроме того, посредством субдискретизации информации движения блоков в картинке (например, выбора информации движения блоков, включая M-ую информацию движения или положение M-го пиксела) или посредством субдискретизации положения пиксела в картинке с регулярными интервалами и выбора информации движения блока, включающего в себя соответствующее положение пиксела, различные способы, описанные в данном документе, применяются с использованием выбранной информации движения, тем самым конфигурируя список кандидатов.
[00321] Здесь информация движения первого кодированного блока в одной картинке упоминается как первая информация движения, а информация движения M-го кодированного блока упоминается как M-я информация движения. M может быть положительным целым числом больше нуля.
[00322] Некоторая или вся информация движения, включенная в список кандидатов, сконфигурированный, как описано выше, может быть выбрана в качестве кандидатов списка кандидатов согласно различным включенным здесь способам, а затем добавлена в список кандидатов слияния. Альтернативно, список кандидатов для предсказания информации движения может быть сконфигурирован с использованием только кандидатов списка кандидатов в соответствии с настоящим изобретением, и может сигнализироваться индекс (указатель), указывающий кандидата, необходимого для декодирования соответствующего блока.
[00323] Чтобы кодировать блоки, включенные в K-ю строку CTU, подлежащую текущему кодированию, информация движения блоков, смежных с нижней границей K-1-й строки CTU, может использоваться в качестве кандидатов в режиме слияния и AMVP. Для этого информацию движения и информацию положения соответствующих блоков необходимо сохранить в буфере (далее называемом построчным буфером) (K - любое целое число больше 1).
[00324] Например, используя кандидатов из списка кандидатов в соответствии с настоящим изобретением, а не соответствующую информацию движения (информацию о соседнем блоке, расположенном на границе строки CTU), кодер или декодер не будет использовать построчный буфер. Другими словами, при использовании информации движения, включенной в K-1-ю строку CTU, среди блоков, включенных в K-ю строку CTU, в качестве кандидата слияния или AMVP, соответствующая информация движения не используется, и используется список кандидатов из списка кандидатов в соответствии с настоящим изобретением.
[00325] Например, кандидаты из списка кандидатов могут хранить только информацию движения блоков, смежных с нижней границей K-1-й строки CTU. Кроме того, может быть сохранена только некоторая часть из информации движения блоков, смежных с нижней границей K-1-й строки CTU. Например, в список кандидатов может быть включена только информация движения блока, включающая в себя положение N-го пиксела слева от картинки. Здесь, N - целое число, равное 4 или более, и может быть 4, 8, 16, 32, 64 или 128.
[00326] В режиме AMVP, приоритет может быть задан в порядке пространственного кандидата, временного кандидата и кандидата нулевого вектора. Один кандидат может быть выбран в области A и области B как пространственный кандидат. Область A может означать кандидатов A0 и A1 и имеет приоритет в порядке A0, A1, масштабированный A0 и масштабированный A1, и среди них может быть выбран по меньшей мере один кандидат. В данном случае масштабируемый кандидат относится к кандидату, генерируемому путем коррекции вектора движения, когда опорная картинка пространственного вектора движения отличается от опорной картинки блока, в текущее время искомой. Область B может означать кандидата B0, B1 или B2, и может быть выбран по меньшей мере один кандидат из B0, B1, B2, масштабированного B0, масштабированного B1 и масштабированного B2. Временной кандидат может иметь порядок приоритета H и C, и по меньшей мере один из двух может быть добавлен в список кандидатов AMVP. Кандидат нулевого вектора может генерировать кандидата, имеющего вектор движения как нулевой вектор, указывающий, что движение отсутствует.
[00327] Следовательно, кандидат может иметь приоритет кандидата A области, кандидата B, H или C области, кандидата нулевого вектора, и доступные кандидаты могут быть добавлены в список кандидатов AMVP в порядке высокого приоритета. Здесь, когда кандидаты добавлены до максимального размера списка кандидатов AMVP, больше кандидатов не может добавляться в список кандидатов.
[00328] Здесь, кандидаты списка кандидатов в соответствии с настоящим изобретением могут быть добавлены в список кандидатов AMVP. Кандидаты списка кандидатов в соответствии с настоящим изобретением, добавленные в список кандидатов AMVP, могут располагаться в любых положениях, например перед, после, посредине и т.д. кандидата, который не использует список кандидатов в соответствии с настоящим изобретением, и множество кандидатов могут добавляться в список кандидатов AMVP как приоритеты, отличные друг от друга. Фиг. 13 иллюстрирует ситуацию, в которой кандидаты двух списков кандидатов добавляются в список кандидатов AMVP после пространственного кандидата и временного кандидата. Кандидаты в списке кандидатов могут добавляться в различных положениях, например, перед пространственными кандидатами, между пространственными кандидатами, перед временными кандидатами, за временными кандидатами и т.д. или могут быть добавлены в двух или более положениях. Кроме того, кандидаты в одном или более списках кандидатов могут добавляться в список кандидатов AMVP.
[00329] В качестве другого примера, кандидаты списка кандидатов в соответствии с настоящим изобретением могут добавляться в список кандидатов для предсказания IBC. Кандидаты списка кандидатов, добавляемые в список кандидатов IBC в соответствии с настоящим изобретением, могут располагаться в любых положениях, например перед, после, посредине и т.д. кандидатов, которые не используют список кандидатов в соответствии с настоящим изобретением, и множество кандидатов имеют разные приоритеты и могут быть добавлены в список кандидатов IBC. Кроме того, кандидаты одного или более списков кандидатов могут добавляться в список кандидатов IBC.
[00330] Фиг. 14 представляет собой диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.
[00331] Фиг. 14 показывает процесс, в котором информация движения, сгенерированная как предсказание, добавляется в список кандидатов. На фиг. 14, (a), (b), (c), (d), (e), (f), (g), (h) и (i) означают временной порядок процесса кодирования/ декодирования, кодирование/декодирование происходит в направлении стрелки между этапами. Каждая прямоугольная область может означать единицу кодирования или единицу предсказания и может означать единицу, в которой выполняется предсказание, так что генерируется информация движения. Серый блок кодирования может относиться к текущему блоку, в котором кодирование/декодирование выполняется в текущий момент времени, на каждом чертеже. На фиг. 14, вся область означает UPU, и UPU может состоять из набора блоков кодирования. Список кандидатов для каждого этапа показан вверху, и каждый столбец списка кандидатов может означать сохраненную информацию движения. Здесь число, показанное в списке кандидатов, может указывать значение индекса списка кандидатов. Окрашенная информация среди информации движения, сохраненной в списке кандидатов, может означать вновь добавленную информацию движения на соответствующем этапе. Заглавные буквы, записанные в блоке кодирования и списке кандидатов, могут означать информацию движения соответствующего блока кодирования, и разные буквы могут означать разную информацию движения. Размытая информация движения относится к предварительно восстановленной информации движения, и информация движения, отображаемая темным цветом, может означать вновь сгенерированную информацию движения в текущем блоке кодирования.
[00332] На фиг. 14, этап (а) показывает процесс, в котором декодируется первый кодированный блок среди блоков кодирования, включенных в UPU. Поскольку предварительно созданная информация движения еще не создана, в списке кандидатов нет сохраненной информации движения. На этапе (b) информация движения А, восстановленная на этапе (a), добавляется в список кандидатов. Следовательно, в предсказании информации движения текущего блока кодирования можно ссылаться на информацию движения А, сохраненную в списке кандидатов.
[00333] Затем, по мере перехода к следующим этапам, информация движения, восстановленная на предыдущем этапе, может добавляться в список кандидатов по очереди. Здесь информация движения, перекрывающаяся с информацией движения, уже присутствующей в списке кандидатов, не может быть снова добавлена в список кандидатов. Например, информация движения, сгенерированная на этапе (d), уже включена в список кандидатов как A и, таким образом, не добавляется. Поэтому на этапе (e) вновь добавленная информация движения может не существовать в списке кандидатов. Аналогично, информация движения, сгенерированная на этапе (e), уже включена в список кандидатов как C и, таким образом, не добавляется. Поэтому вновь добавленная информация движения в списке кандидатов может не существовать на этапе (f).
[00334] В качестве другого примера, даже если информация движения уже существует в списке кандидатов, такая как информация движения, сгенерированная на этапах (d) и (e), информация движения может быть последовательно добавлена в список кандидатов. В этом случае список кандидатов на этапе (e) может быть A, B, C, A и C последовательно, начиная с индекса 0.
[00335] Фиг. 15 представляет собой другую диаграмму, иллюстрирующую способ, в котором информация движения добавляется в список кандидатов в соответствии с настоящим изобретением.
[00336] Фиг. 15 показывает другой пример, в котором информация движения добавляется в список кандидатов. Согласно фиг. 15, информация движения может генерироваться таким же образом, как на фиг. 14, и информация движения может быть добавлена в список кандидатов одновременно. Однако фиг. 15 иллюстрирует способ добавления информации движения в список кандидатов способом, отличным от способа согласно фиг. 14.
[00337] На фиг. 14 информация движения добавляется к последнему положению индекса списка кандидатов, но в примере на фиг. 15 вновь выведенная информация движения может быть добавлена к положению индекса 0 списка кандидатов. Кроме того, информация движения, сохраненная в списке кандидатов, существующая в положении индекса 0, может изменять порядок в списке кандидатов, добавляя единицу к индексу, когда добавляется новая информация движения. Другими словами, изменяя порядок списка кандидатов, можно изменить порядок или приоритет обращения к списку кандидатов в предсказании движения.
[00338] Фиг. 16 представляет собой другую диаграмму, иллюстрирующую способ добавления информации движения в список кандидатов в соответствии с одним вариантом осуществления настоящего изобретения.
[00339] Фиг. 16 иллюстрирует способ реконфигурирования порядка информации движения в списке кандидатов, когда та же информация движения, что и вновь введенная информация движения, существует среди ранее введенной информации движения в способе согласно фиг. 15. Информация движения А, сгенерированная на этапе (d), является той же информацией движения, что и информация движения, добавленная в список кандидатов на этапе (b). Следовательно, на фиг. 16, на этапе (e) информация движения А не может добавляться в список кандидатов. На этапе (е) на фиг. 16, порядок в списке кандидатов информации движения А может быть изменен на индекс 0. Альтернативно, существующая информация движения А может быть удалена, и информация движения А может быть вновь добавлена в положении индекса 0. Индекс другой ранее введенной информации движения получается путем добавления единицы, и порядок и индекс между кандидатами могут быть изменены.
[00340] Это может быть способом изменения приоритета с новой введенной информацией, когда та же самая информация движения вновь возникает с учетом приоритета в соответствии с порядком, в котором вводится информация движения. При этом на этапе (f) может быть подтверждено, что, когда порядок (индекс) информации движения в списке кандидатов является более поздним, чем перекрывающаяся информация движения (когда индекс больше), порядок не изменяется. То есть, в примере на фиг. 16, когда возникает перекрывающаяся информация движения С, когда порядок C изменяется на индекс 0, индекс A, который ниже, чем у C, становится +1, тогда как индекс B, который выше, чем у C, может не изменяться.
[00341] Между тем, по меньшей мере один из указателя (флага, индекса), указывающего, следует ли использовать список кандидатов в соответствии с настоящим изобретением, типа применяемой UPU, размера UPU может сигнализироваться посредством по меньшей мере одного из набора параметров, такого как набор параметров последовательности или набор параметров картинки, или заголовка слайса.
[00342] Фиг. 17-20 представляют собой диаграммы, иллюстрирующие структуру синтаксиса в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00343] В последующем описании, представленный синтаксис является одним примером, и объем настоящего изобретения не ограничивается следующим выражением синтаксиса. Синтаксис, имеющий то же значение или функцию, что и синтаксис для списка кандидатов в соответствии с настоящим изобретением, может быть включен в объем настоящего изобретения.
[00344] Фиг. 17 показывает пример, в котором сигнализация включения списка кандидатов включена в синтаксис набора параметров последовательности (SPS). Фиг. 18 иллюстрирует пример, в котором сигнализация включения списка кандидатов включена в синтаксис набора параметров картинки (PPS).
[00345] Сигнал включения списка кандидатов может означать сигнал, указывающий, используется ли список кандидатов в соответствии с настоящим изобретением при кодировании/ декодировании. В таблицах на фиг. 17 и 18, amvol_enable_flag может быть сигналом включения списка кандидатов, указывающим, используется ли список кандидатов при кодировании/декодировании. Когда amvol_enable_flag имеет значение “истинно”, кодирование и декодирование могут выполняться с использованием списка кандидатов.
[00346] upu_type_idx может быть сигналом, сигнализируемым, когда кодирование и декодирование выполняются с использованием списка кандидатов. upu_type_idx представляет собой сигнал, определяющий тип UPU, и может быть сигналом, определяющим единицу, к которой применяется UPU. Здесь, единица, к которой применяется UPU, может быть по меньшей мере одним из блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящей из одной или нескольких CU, и UPU может иметь область, которая совпадает с областью определенной единицы.
[00347] В данном случае кодирование может выполняться путем назначения единицы, к которой применяется UPU, и присвоения ей конкретного значения. UPU_TYPE_COSTOM может быть синтаксисом, указывающим, что единица UPU не является предопределенной единицей среди единиц, к которым применима UPU. Когда единицей, к которой применяется UPU, является UPU_TYPE_COSTOM, может выполняться дополнительная сигнализация для установки диапазона UPU. Например, сигналы upu_width и upu_height на фиг. 17 и 18 могут быть синтаксисом для сигнализации размера, к которому применяется UPU, по ширине и высоте.
[00348] upu_type_idx может быть опущен, когда UPU формирует список кандидатов с фиксированным размером или тип UPU может быть выведен из другого сигнала. Когда UPU применяется только в единице или размере, указанном заранее, сигнализация синтаксиса для установки UPU_TYPE_COSTOM и диапазона UPU может быть опущена.
[00349] Фиг. 19 иллюстрирует случай, в котором сигнализация включения списка кандидатов включена в синтаксис заголовка слайса. amvol_enable_flag может быть сигналом, указывающим, используется ли список кандидатов в соответствии с настоящим изобретением для кодирования/декодирования. Когда amvol_enable_flag имеет значение “истинно”, кодирование и декодирование могут выполняться с использованием списка кандидатов в соответствии с настоящим изобретением.
[00350] Upu_type_idx может быть сигналом, который может передаваться и приниматься при выполнении кодирования и декодирования с использованием списка кандидатов. upu_type_idx представляет собой сигнал, определяющий тип UPU, и может быть сигналом, определяющим единицу, к которой применяется UPU. Здесь единица, к которой применяется UPU, может быть по меньшей мере одним из блока, CTU, кирпичика, плитки, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или более CU, и UPU может иметь область, которая совпадает с областью определенной единицы.
[00351] В данном случае кодирование может выполняться путем назначения единицы, к которой применяется UPU, и присвоения ей конкретного значения. UPU_TYPE_COSTOM может быть синтаксисом, указывающим, что единица UPU не является предопределенной единицей среди единиц, к которым применима UPU. Когда единицей, к которой применяется UPU, является UPU_TYPE_COSTOM, может выполняться дополнительная сигнализация для установки диапазона UPU. Например, сигналы upu_width и upu_height на фиг. 17 и 18 могут быть синтаксисом для сигнализации размера, к которому применяется UPU, по ширине и высоте.
[00352] upu_type_idx может быть опущен, когда UPU формирует список кандидатов с фиксированным размером или тип UPU может быть выведен из другого сигнала. Когда UPU применяется только в единице или размере, указанных заранее, сигнализация синтаксиса для установки UPU_TYPE_COSTOM и диапазона UPU может быть опущена.
[00353] Здесь вся сигнализация относительно списка кандидатов может быть опущена, когда тип слайса является конкретным типом. Например, вся сигнализация, относящаяся к списку кандидатов, может быть опущена, когда типом текущего слайса является I-слайс. Поскольку список кандидатов представляет собой способ кодирования и декодирования, используемый для предсказания движения, сигнализация может быть опущена в случае I-слайса, которая не выполняет предсказание движения.
[00354] Фиг. 20 показывает пример, когда индекс списка кандидатов включен в синтаксис единицы кодирования. Сигнал индекса списка кандидатов в соответствии с настоящим изобретением может быть синтаксисом, указывающим, какая информация движения-кандидат из кандидатов списка кандидатов используется для предсказания информации движения, когда используется предсказание информации движения с использованием списка кандидатов.
[00355] В качестве примера, сигнал индекса списка кандидатов может использоваться в сочетании с режимом слияния, режимом AMVP, режимом IBC и т.д. и может использоваться вместе с другими сигналами без какой-либо отдельной сигнализации. Альтернативно, сигнализация может быть опущена с использованием ранее назначенной информации движения кандидата. В качестве другого примера, сигнал индекса списка кандидатов может быть опущен, когда текущий блок кодирования не находится в режиме интер-предсказания.
[00356] На фиг. 20, cu_inter_pred_mode может быть сигналом, указывающим, каким способом кодирования кодируется/декодируется текущий блок, когда текущая CU находится в режиме интер-предсказания. Когда cu_inter_pred_mode указывает способ кодирования/декодирования с использованием списка кандидатов в соответствии с настоящим изобретением, может сигнализироваться сигнал индекса списка кандидатов. В качестве другого примера, сигнализация cu_inter_pred_mode может быть опущена, и способ кодирования/декодирования текущего блока кодирования может быть выбран предопределенным способом. Способ кодирования/ декодирования текущего блока кодирования выбирается предопределенным способом, и когда предопределенный способ кодирования/декодирования является способом кодирования/ декодирования с использованием списка кандидатов в соответствии с настоящим изобретением, может сигнализироваться сигнал индекса списка кандидатов.
[00357] В качестве примера, MODE_AMVOL может быть синтаксисом, указывающим способ кодирования/декодирования с использованием списка кандидатов в соответствии с настоящим изобретением. amvol_idx может указывать индекс списка кандидатов. Посредством сигнализированного amvol_idx можно определить, какая информация движения среди информации движения, сохраненной в списке кандидатов, используется в качестве кандидата для предсказания движения.
[00358]
[00359] Далее будет описан способ аппроксимации информации движения, включенной в список кандидатов в соответствии с настоящим изобретением.
[00360] Информация движения, сохраняемая в списке кандидатов в соответствии с настоящим изобретением, может быть сходной друг с другом. Когда сходная информация движения существует в большом количестве списков кандидатов, может возникнуть проблема, связанная с тем, что характеристики информации движения, которая является кандидатом, смещены, так что эффективность предсказания информации движения снижается. Здесь, вышеупомянутая проблема может быть решена путем преобразования и использования сходных кандидатов в одной аппроксимированной информации движения.
[00361] Момент времени, когда генерируется аппроксимированная информация движения, является одним из момента времени, когда информация движения сохраняется в списке кандидатов в соответствии с настоящим изобретением, момента времени, когда кандидат списка кандидатов генерируется из списка кандидатов, и момента времени, когда информация движения, сохраняемая в списке кандидатов для каждого периода, аппроксимируется.
[00362] Фиг. 21 и 22 представляют собой диаграммы, иллюстрирующие блок-схемы последовательностей операций кодера и декодера, которые аппроксимируют информацию движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00363] Фиг. 21 и 22 иллюстрируют блок-схемы последовательностей операций кодера/декодера, использующего способ аппроксимации информации движения списка кандидатов в соответствии с настоящим изобретением. Фиг. 21 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время добавления информации движения в список кандидатов, а фиг. 22 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время генерации кандидатов списка кандидатов.
[00364] Фиг. 21 и 22 могут быть примерами, в которых этап аппроксимации информации движения добавляется к блок-схеме последовательностей операций на фиг. 11. Кодер или декодер может аппроксимировать информацию движения во время добавления информации движения в список кандидатов. Информация движения, аппроксимированная на этапе аппроксимации информации движения, может быть вновь добавлена в список кандидатов на этапе добавления информации движения списка кандидатов.
[00365] На фиг. 22, когда кодер или декодер генерирует кандидата списка кандидатов из информации движения в списке кандидатов, кодер или декодер может аппроксимировать информацию движения кандидата списка кандидатов. Этап предсказания информации движения списка кандидатов может выполняться посредством кандидатов списка кандидатов, имеющих аппроксимированную информацию движения. Кроме того, поскольку каждый этап на фиг. 21 и 22 может быть таким же, как каждый этап на фиг. 11, его описание будет опущено.
[00366] Фиг. 23 и 24 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для аппроксимации информации движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00367] Фиг. 23 и 24 показывают примеры схем устройств под-декодеров, использующих способ аппроксимации информации движения списка кандидатов. Фиг. 23 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время добавления информации движения в список кандидатов, и фиг. 24 иллюстрирует случай, когда информация движения списка кандидатов аппроксимируется во время генерации кандидата списка кандидатов.
[00368] Фиг. 23 и 24 иллюстрируют примеры, в которых модуль аппроксимации информации движения списка кандидатов добавлен к схеме устройства на фиг. 12. Модуль аппроксимации информации движения списка кандидатов может аппроксимировать информацию движения, когда информация движения добавляется в список кандидатов. Информация движения, аппроксимированная модулем аппроксимации информации движения списка кандидатов, может быть вновь добавлена в список кандидатов модулем добавления информации движения в список кандидатов.
[00369] Модуль аппроксимации информации движения списка кандидатов согласно фиг. 24 может аппроксимировать информацию движения кандидатов в списке кандидатов при генерировании кандидата списка кандидатов из информации движения в списке кандидатов. Модуль предсказания информации движения списка кандидатов может выполнять предсказание информации движения с использованием кандидатов списка кандидатов, имеющих аппроксимированную информацию движения. Кроме того, поскольку каждый компонент на фиг. 23 и 24 могут быть такими же, как каждый компонент на фиг. 12, его описание будет опущено.
[00370] Далее будет описан способ аппроксимации информации движения кодером или декодером в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00371] В качестве примера, информация движения может быть аппроксимирована с использованием среднего значения информации движения. Кодер или декодер может аппроксимировать информацию движения, соответствующую определенному диапазону сходства, путем получения среднего значения информации движения, соответствующей определенному диапазону сходства. Здесь, по меньшей мере одно из среднего арифметического, среднего взвешенного и медианы может использоваться в качестве способа вычисления среднего. Кроме того, среднее значение информации движения может быть вычислено в пределах диапазона, определенного независимо от сходства.
[00372] В качестве другого примера, информация движения может быть аппроксимирована посредством репрезентативного выбора по частоте появления информации движения. После получения такого же количества частей информации движения в пределах предопределенного диапазона, кодер или декодер может аппроксимировать ту же самую информацию движения в пределах предопределенного диапазона путем определения наибольшего количества частей информации движения в качестве репрезентативной информации движения. Например, когда предопределенным диапазоном является CTU, кодер или декодер может сравнивать всю информацию движения, сгенерированную в одной CTU, и определять информацию движения с наибольшим количеством появлений в качестве репрезентативной информации движения текущей CTU. Репрезентативная информация движения может использоваться как аппроксимированная информация движения.
[00373] Кроме того, вышеописанное определение репрезентативной информации движения может быть выполнено с использованием сходной информации движения вместо той же самой информации движения. В этом случае, сходная информация движения может означать информацию движения, имеющую различие в пределах конкретного порогового значения относительно опорной информации движения. Кодер или декодер может подтвердить количество появлений путем обработки сходной информации движения как той же самой информации движения, описанной выше, и определять репрезентативную информацию движения на ее основе.
[00374] В качестве другого примера, информация движения может быть аппроксимирована с учетом участка области, из которой выводится информация движения. Участок области, из которого выводится информация движения, может быть различным для каждой части информации движения. Кодер или декодер может аппроксимировать информацию движения с учетом участка области, из которой выводится информация движения. Например, информация движения выводится из большой области, кодер или декодер может вычислять среднее взвешенное значение путем придания более высокого веса, или аппроксимировать информацию движения путем выбора информации движения, выведенной из наибольшей области, в качестве репрезентативной информации движения. В этом случае, когда информация движения, полученная из областей, отличающихся друг от друга, имеет одинаковое движение по отношению друг к другу, области могут суммироваться и учитываться.
[00375] В качестве другого примера, информация движения может быть аппроксимирована с учетом потенциала предсказания информации движения. Кодер или декодер может сравнивать части информации о потенциале предсказания с информацией движения, которая должна быть добавлена в список кандидатов, чтобы выбрать информацию движения, имеющую высокий потенциал предсказания, в качестве репрезентативной информации движения, или вычислять репрезентативную информацию движения с использованием среднего взвешенного значения в соответствии с потенциалом предсказания. Здесь, кодер или декодер может установить диапазон для сравнения потенциала предсказания или аппроксимировать информацию движения путем сравнения потенциала предсказания только между сходными частями информации движения.
[00376] Здесь, потенциал предсказания информации движения может быть информацией, указывающей, насколько высока точность предсказания информации движения или эффективность кодирования, когда используется предсказание информации движения с использованием списка кандидатов в соответствии с настоящим изобретением. Способ определения потенциала предсказания информации движения будет описан ниже.
[00377] В качестве другого примера, информация движения может быть аппроксимирована путем установки разрешения информации движения в конкретной пиксельной единице. Вектор движения, который должен быть добавлен в список кандидатов, может быть аппроксимирован до конкретной пиксельной единицы. Например, конкретный пиксел может быть одной из целочисленной пиксельной единицы, 1/2-пиксельной единицы, 1/4-пиксельной единицы и четырех-пиксельной единицы. Например, когда разрешение вектора движения, добавляемого в список кандидатов, аппроксимируется до 1/16-пиксельной единицы и целочисленной пиксельной единицы, значение вектора движения может быть аппроксимировано до ближайшего целочисленного значения. В качестве другого примера, при аппроксимации до 1/2-пиксельной единицы, значение вектора движения может быть аппроксимировано до ближайшего значения 1/2 единицы. Например, когда значение вектора движения равно (2,6; 3,7), при аппроксимации до ближайшего значения 1/2 единицы, значение вектора движения может аппроксимироваться до (2,5; 3,5).
[00378] Аппроксимация информации движения может выполняться с использованием вышеописанных вариантов осуществления по отдельности. Кроме того, аппроксимация информации движения может выполняться посредством по меньшей мере одной комбинации вышеописанных вариантов осуществления.
[00379]
[00380] Далее будет описан способ выполнения предсказания с использованием потенциала предсказания информации движения списка кандидатов в соответствии с настоящим изобретением.
[00381] Информация движения, сохраненная в списке кандидатов в соответствии с настоящим изобретением, может включать в себя дополнительную информацию для более эффективного использования списка кандидатов в дополнение к информации для предсказания движения. Потенциал предсказания информации движения, включенной в список кандидатов, может быть определен с использованием некоторой или всей информации движения и дополнительной информации, включенной в список кандидатов.
[00382] В настоящем описании, потенциал предсказания может быть информацией, указывающей, насколько высока точность предсказания или эффективность кодирования информации движения при использовании для предсказания информации движения с использованием списка кандидатов. Следовательно, можно повысить эффективность кодирования, выбирая сначала информацию движения, имеющую высокий потенциал предсказания, и генерируя кандидатов для списка кандидатов.
[00383] Способ определения потенциала предсказания информации движения в соответствии с настоящим изобретением может включать в себя способ вычисления глобального потенциала информации движения, принадлежащей списку кандидатов в UPU, и способ вычисления локального потенциала для блока (единицы), подлежащей кодированию в текущее время.
[00384] Способ вычисления глобального потенциала может быть способом оценки того, насколько перспективна каждая часть информации движения, включенной в список кандидатов, для всей UPU. Способ вычисления локального потенциала может быть способом оценки того, насколько перспективна каждая часть информации движения, включенной в список кандидатов, для предсказания информации движения конкретного блока.
[00385] фиг. 25 и 26 представляют собой диаграммы, иллюстрирующие способ вычисления потенциала списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00386] Фиг. 25 и 26 показывают блок-схемы последовательностей операций кодера и декодера, которые вычисляют потенциал предсказания информации движения. Фиг. 25 иллюстрирует случай, когда потенциал предсказания информации движения вычисляется во время добавления информации движения в список кандидатов, и фиг. 26 иллюстрирует случай, когда потенциал предсказания информации движения, включаемой в список кандидатов, вычисляется во время генерации кандидата списка кандидатов.
[00387] Фиг. 25 и 26 могут быть примерами, в которых этап вычисления потенциала предсказания добавляется к блок-схеме последовательностей операций на фиг. 11. Например, вычисление потенциала предсказания списка кандидатов согласно фиг. 25 может выполняться описанным выше способом вычисления глобального потенциала. Информация движения, добавленная в список кандидатов, может включать в себя информацию о потенциале предсказания. Когда та же самая информация движения существует в существующем списке кандидатов, информация о потенциале предсказания может быть обновлена.
[00388] Например, этап вычисления потенциала предсказания на фиг. 26 может выполняться с использованием описанного выше способа вычисления локального потенциала.
[00389] Этапы предсказания информации движения списка кандидатов на фиг. 25 и 26 могут выполняться с учетом выведенной информации о потенциале предсказания. Кроме того, поскольку каждый этап на фиг. 25 и 26 может быть таким же, как каждый этап на фиг. 11, его описание будет опущено.
[00390] Фиг. 27 и 28 представляют собой диаграммы, иллюстрирующие структуру кодера и декодера для вычисления потенциала предсказания списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00391] Фиг. 27 и 28 показывают примеры схем устройств кодера и декодера, которые вычисляют потенциал предсказания информации движения. Фиг. 27 иллюстрирует случай, когда потенциал информации движения вычисляется во время добавления информации движения в список кандидатов, и фиг. 28 иллюстрирует случай, когда потенциал информации движения списка кандидатов вычисляется во время генерации кандидатов списка кандидатов.
[00392] Фиг. 27 и 28 показывают примеры, в которых вычислитель потенциала предсказания добавлен к схеме устройства на фиг. 12. Например, вычислитель потенциала предсказания согласно фиг. 27 вычисляет потенциал информации движения, которая должна быть добавлена в список кандидатов, и может вычислять потенциал предсказания с использованием способа вычисления глобального потенциала, описанного выше. Информация движения, добавленная в список кандидатов, может включать в себя информацию о потенциале предсказания. Когда та же самая информация движения существует в существующем списке кандидатов, потенциальная информация может быть обновлена.
[00393] Между тем вычислитель потенциала предсказания согласно фиг. 28 вычисляет потенциал предсказания при генерации кандидата списка кандидатов, и потенциал предсказания может быть вычислен с помощью способа вычисления локального потенциала предсказания, описанного выше.
[00394] Модули предсказания информации движения списка кандидатов согласно фиг. 27 и 28 могут предсказывать информацию движения с учетом выведенной информации о потенциале предсказания. Кроме того, поскольку каждый компонент на фиг. 27 и фиг. 28 может быть таким же, как каждый компонент на фиг. 12, его описание опущено.
[00395] Фиг. 29 представляет собой диаграмму, иллюстрирующую генерацию смешанного список кандидатов в соответствии с вариантом осуществления настоящего изобретения.
[00396] Фиг. 29 показывает пример схемы устройства кодера и декодера для вычисления потенциала предсказания информации движения с использованием способа вычисления глобального потенциала и вычисления локального потенциала. Схема устройства на фиг. 29, может быть получена путем замены вычислителя потенциала предсказания согласно фиг. 27 вычислителем глобального потенциала и замены вычислителя потенциала предсказания согласно фиг. 28 вычислителем локального потенциала. Согласно фиг. 29, кандидаты списка кандидатов могут быть сгенерированы с учетом как глобального потенциала, так и локального потенциала, которые могут использоваться в модуле предсказания информации движения списка кандидатов.
[00397] Далее будет описан способ вычисления потенциала предсказания информации движения в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00398] В качестве примера, потенциал предсказания может быть вычислен с учетом частоты появления информации движения. Потенциал предсказания информации движения может вычисляться путем проверки, насколько много информации движения в списке кандидатов уже сгенерировано. Когда частота появления той же самой информации движения или сходной информации движения, с которой можно обращаться как с той же самой информацией движения, высока, кодер или декодер может определить, что потенциал предсказания соответствующей информации движения является высоким. Здесь, частота появления может быть измерена с использованием количества появлений той же самой информации движения, области, имеющей ту же самую информацию движения, и т.п. Здесь, частота появления может быть измерена путем ограничения области, где измеряется частота появления. Например, частота появления до настоящего времени может быть измерена для всей области UPU, или частота появления может быть измерена только в пределах предопределенного диапазона или конкретной области на основе единицы, которая кодируется в текущее время. Частота появления, измеренная таким образом, может быть использована для вычисления потенциала предсказания информации движения.
[00399] В качестве другого примера, потенциал предсказания может быть вычислен с учетом точности интер-предсказания. Поскольку каждая часть информации движения, принадлежащей списку кандидатов, представляет собой информацию движения, используемую для восстановления другого блока, кодер или декодер может знать эффективность кодирования блока, восстановленного с использованием соответствующей информации движения.
[00400] Эффективность кодирования информации движения может быть определена на основе распределения энергии или среднего значения остаточного сигнала. Энергия остаточного сигнала может означать разницу в значении яркости или разницу в пиксельном значении между текущим блоком и блоком предсказания, сгенерированным посредством интер-предсказания. Среднее значение энергии остаточного сигнала может означать среднее значение разности между значением яркости или пиксельным значением, сгенерированным в каждом пиксельном положении текущего блока и блока предсказания. Распределение энергии остаточного сигнала может быть значением, вычисленным через положение энергии остаточного сигнала для каждого пиксельного положения в дифференциальном блоке и величину энергии. Например, распределение энергии остаточного сигнала может быть значением момента остаточных сигналов, имеющих энергию предопределенной величины или более. Здесь, значение момента остаточных сигналов может означать центральное положение распределения значений яркости, которое вычисляется посредством положений соответствующих остаточных сигналов и значений яркости соответствующих остаточных сигналов.
[00401] По энергии остаточного сигнала может быть вычислено распределение и среднее значение и т.п. в преобразованном по частоте дифференциальном блоке. Например, значение DC может использоваться как среднее значение в частотной области, и распределение энергии остаточных сигналов может быть определено через отношение энергии для каждой частотной области. Здесь, чтобы кодер и декодер работали одинаково, может использоваться квантованный дифференциальный блок или преобразованный по частоте разностный блок. Кроме того, при использовании квантованного дифференциального блока или преобразованного по частоте дифференциального блока, может использоваться параметр квантования или значение шага квантования. Например, при сравнении распределения энергии или среднего значения остаточного сигнала двух блоков с использованием различных параметров квантования друг от друга, распределение энергии или среднее значение дифференциального сигнала может быть скорректировано посредством разности параметра квантования.
[00402] Например, после того, как энергия дифференциального сигнала, имеющего больший параметр квантования, масштабируется n раз, можно вычислить распределение энергии или среднее значение дифференциального сигнала, чтобы сравнить энергию остаточных сигналов между двумя блоками. Кроме того, поскольку высокочастотная составляющая предпочтительно уменьшается во время квантования, при сравнении энергии остаточного сигнала в частотной области, вычисление может выполняться путем присвоения отдельного веса низкочастотной составляющей и высокочастотной составляющей.
[00403] Здесь, когда значение средней энергии остаточного сигнала высокое, определяется, что потенциал предсказания низкий. Потенциал предсказания может быть определен с помощью способа сравнения распределения энергии остаточного сигнала путем изменения его приоритета в соответствии с положением распределения энергии остаточного сигнала и способа сравнения распределения энергии остаточного сигнала в соответствии с частотной областью, такой как высокочастотная область и низкочастотная область.
[00404] То есть, когда эффективность кодирования высока при использовании соответствующей информации движения, сравнивая эффективность кодирования восстановленных блоков с использованием каждой части информации движения, кодер или декодер может определить, что соответствующая информация движения имеет высокий потенциал предсказания.
[00405] В качестве другого примера, потенциал предсказания может быть вычислен с учетом расстояния между положением текущего блока и положением области, в которой появилась информация движения. Информация движения, выведенная из определенной области, с большей вероятностью будет сходна с конкретной областью, которая во времени и пространстве смежна с текущим блоком. С учетом такой характеристики, потенциал предсказания может быть определен в соответствии с пространственным и временным расстоянием между положением генерации каждой части информации движения, включенной в список кандидатов, и положением текущего блока.
[00406] Здесь, в случае той же самой информации движения, включенной в список кандидатов, кодер или декодер может сократить операции, необходимые для вычисления расстояния, посредством использования аппроксимированной информации положения или способа обновления самого последнего положения. В качестве примера способа вычисления аппроксимированной информации положения, когда информация движения генерируется в единицах блоков кодирования, может использоваться способ упрощения вычисления расстояния с учетом только информации положения CTU, включающей в себя соответствующий блок кодирования.
[00407] Когда список кандидатов в соответствии с настоящим изобретением используется в сочетании с режимом слияния, режимом AMVP, режимом IBC или т.п., потенциал предсказания может быть определен, исключая способ определения смежной области, который учитывается существующим способом предсказания информации движения.
[00408] Вычисление потенциала предсказания информации движения может выполняться с использованием описанных выше вариантов осуществления по отдельности. Кроме того, вычисление потенциала предсказания информации движения может выполняться посредством по меньшей мере одной комбинации описанных выше вариантов осуществления. Когда вышеописанные варианты осуществления объединяются для вычисления потенциала предсказания, потенциал предсказания может быть вычислен путем взвешивания каждого значения результата определения и последующего применения важности каждого результата определения по-разному.
[00409]
[00410] Далее будет описан способ генерирования списка виртуальных кандидатов в соответствии с вариантом осуществления настоящего изобретения.
[00411] Кандидаты списка кандидатов в соответствии с настоящим изобретением могут быть сгенерированы с помощью информации движения, ранее сохраненной в списке кандидатов. Например, кандидаты списка кандидатов могут быть сгенерированы с использованием всей или некоторой части информации движения, ранее сохраненной в списке кандидатов. Далее, кандидат, имеющий информацию движения, которая выведена из информации движения, ранее сохраненной в списке кандидатов, но не идентичной информации движения, ранее сохраненной в списке кандидатов, определяется как виртуальный кандидат. В соответствии с вариантом осуществления настоящего изобретения, виртуальный кандидат может быть добавлен в список кандидатов.
[00412] Далее будет описан способ генерирования виртуального кандидата.
[00413] Например, виртуальный кандидат может означать кандидата из смешанного списка кандидатов. Например, может иметься случай, когда предсказание выполняется с использованием множества частей информации движения. В частности, предсказание с использованием двух частей информации движения может называться двунаправленным предсказанием.
[00414] Информация движения, используемая для интер-предсказания с использованием множества частей информации движения, может быть сконфигурирована как набор из множества частей информации движения. Кандидаты в списке кандидатов, имеющем набор из множества частей информации движения в качестве информации движения, могут быть сгенерированы из информации движения, сохраненной в различных списках кандидатов для каждой части информации движения, составляющей набор. Когда информация движения, сохраненная в списке кандидатов, представляет собой набор из множества частей информации движения, кандидаты смешанного списка кандидатов могут быть сгенерированы с использованием некоторой или всей информации движения.
[00415] Фиг. 30 представляет собой диаграмму, иллюстрирующую генерацию смешанного список кандидатов в соответствии с вариантом осуществления настоящего изобретения.
[00416] Фиг. 30 показывает пример, в котором генерируется информация движения смешанного списка кандидатов. Пример на фиг. 30 показывает случай, когда информация движения смешанного списка кандидатов имеет информацию движения для списков L0 и L1 опорных картинок, и каждая часть информации движения состоит из вектора движения и номера опорной картинки (индекс, идентификатор, номер и т.д.). В примере на фиг. 30, смешанный список кандидатов имеет два набора информации движения A и B, и каждый набор информации движения включает в себя информацию движения из списка L0 опорных картинок и информацию движения из L1.
[00417] Здесь, C1 и C2 могут означать информацию движения смешанного списка кандидатов, сгенерированную из наборов информации движения A и B. Здесь, C1 может генерироваться из информации движения А из L0 и информации движения В из L1, а C2 может генерироваться из информации движения В из L0 и информации движения А из L1.
[00418] В качестве другого примера, кандидаты нового списка кандидатов могут быть сгенерированы посредством среднего или среднего взвешенного значения некоторой или всей информации движения, ранее сохраненной в списке кандидатов. Виртуальные кандидаты, полученные этим способом, могут быть определены как средний кандидат.
[00419] Например, средний кандидат может быть выведен из двух или более частей информации движения, выведенной предопределенным способом, может использоваться информация движения вне списка кандидатов, не сохраненная в информации движения списка кандидатов, предопределенная информация движения и т.п. в процессе выведения информации движения. В процессе генерации среднего кандидата может использоваться среднее значение всей информации движения и может использоваться среднее значение некоторой информации движения. Например, когда информация движения состоит из вектора движения и номера опорной картинки, среднее значение вектора движения и номера опорной картинки может быть вычислено для генерации среднего кандидата, и среднее одного из вектора движения и номера опорной картинки вычисляется для генерации среднего кандидата.
[00420] Кодер или декодер может добавить выведенного среднего кандидата в список кандидатов. Например, когда добавляется средний кандидат, наибольшее значение индекса может назначаться в списке кандидатов. Здесь могут быть различные способы конфигурирования веса. Например, вес может быть задан согласно потенциалу предсказания.
[00421] Генерация виртуального кандидата может быть выполнена путем использования вышеописанных вариантов осуществления отдельно. Кроме того, генерация виртуальных кандидатов может выполняться посредством комбинации по меньшей мере одного из вышеописанных вариантов осуществления.
[00422]
[00423] Далее будет описан способ инициализации информация движения списка кандидатов в соответствии с настоящим изобретением.
[00424] Список кандидатов в соответствии с настоящим изобретением может быть сгенерирован в единице UPU, описанной выше. Здесь UPU может быть одним из блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра и группы картинок (GOP), состоящих из одной или более CU. В единице UPU, список кандидатов вновь создается, используется и инициализируется. Далее будет описана инициализация списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00425] Например, список кандидатов в соответствии с настоящим изобретением может заново создаваться и использоваться для каждой UPU. То есть список кандидатов может инициализироваться для каждой UPU. Список кандидатов может не иметь кандидатов движения, сохраненных сразу после инициализации. Список кандидатов может генерироваться для каждой UPU, и между списками кандидатов каждой UPU может не быть корреляции. Например, список кандидатов может инициализироваться для каждой CTU.
[00426] В соответствии со способом инициализации, можно предотвратить появление неоднородной информации движения в качестве кандидата и заново выполнить кодирование от начальной точки UPU без предыдущей информации предсказания.
[00427] В качестве другого примера, список кандидатов текущей UPU может инициализироваться с использованием информации движения UPU, которая уже закодирована, или списка кандидатов UPU. Здесь, может указываться UPU, на которую следует ссылаться, и список кандидатов текущей UPU может инициализироваться с использованием информации движения или списка кандидатов соответствующей UPU.
[00428] Здесь, указание UPU, на которую следует ссылаться, может выполняться с помощью способа, позволяющего кодеру и декодеру ссылаться на одну и ту же UPU посредством сигнализируемого сигнала, и способа пропуска передачи/приема дополнительного сигнала путем выбора UPU предопределенным способом.
[00429] Инициализация текущего списка кандидатов может быть выполнена путем копирования всего или части списка кандидатов UPU, на которую он ссылается. Альтернативно, текущий список кандидатов может инициализироваться с учетом потенциала предсказания или приоритета информации движения, которая выводится или копируется.
[00430] Фиг. 31 и 32 представляют собой диаграммы, иллюстрирующие способ инициализации списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00431] Фиг. 31 показывает пример инициализации списка кандидатов текущей UPU с использованием списка кандидатов восстановленной UPU, когда UPU является единицей картинки. Согласно фиг. 31, информация движения A’, В’ и С’ добавляется в список кандидатов, прежде чем восстановить первую информацию движения текущей картинки, которая копируется из списка кандидатов опорной картинки, которая представляет собой восстановленную UPU.
[00432] Фиг. 31 показывает случай копирования части списка кандидатов восстановленной UPU. На фиг. 31, индекс списка кандидатов указывает потенциал предсказания или приоритет кандидата списка кандидатов, что указывает, что чем меньше число, тем выше потенциал предсказания или выше приоритет. Согласно фиг. 31, текущий кадр может быть восстановлен путем конфигурирования приоритета скопированной информации движения. Здесь приоритет ранее скопированной информации движения A’, B’ и C’ может устанавливаться так, чтобы иметь более высокий приоритет, чем для вновь добавленной информации движения A и B.
[00433] Фиг. 32 показывает пример копирования информации движения для инициализации списка кандидатов как в направлении L0, так и в направлении L1. Как показано на фиг. 31, восстановленная UPU может использоваться для инициализации списка кандидатов, и UPU может устанавливаться в единице картинки. Согласно фиг. 32, текущий список кандидатов может инициализироваться путем копирования информации движения из списков кандидатов картинок, используемых для опоры в направлении L0 и направлении L1. Например, три информации движения A’, B’ и C’ могут быть скопированы из списка L0, и две информации движения A’’, B’’ могут быть скопированы из списка L1. Как описано выше, при копировании информации движения, используемой для инициализации списка кандидатов из UPU, отличных друг от друга, количество частей информации движения, на которые ссылаются из каждой восстановленной UPU, может устанавливаться по-разному.
[00434] Информация о том, выполняется ли инициализация списка кандидатов, информация картинки, на которую ссылаются для инициализации, количество частей информации движения, на которые ссылаются для инициализации, и т.д. может сигнализироваться на более высоком уровне битового потока, таком как набор параметров последовательности, набор параметров картинки, заголовок слайса и т.п.
[00435]
[00436] Далее будет описан способ масштабирования информации движения списка кандидатов в соответствии с настоящим изобретением.
[00437] При выполнении интер-предсказания, предсказание может выполняться над текущей картинкой с использованием смежной по времени опорной картинки. Текущая картинка и опорная картинка могут существовать в разных положениях на временной оси. Когда выполняется интер-предсказание, информация движения может быть выведена с учетом движения объекта или фона в картинке из-за разности во времени между текущей картинкой и опорной картинкой.
[00438] Здесь, опорная картинка, на которую ссылается текущий блок, и опорная картинка, на которую ссылается блок-кандидат, могут отличаться друг от друга. Следовательно, при выведении информации движения с использованием блока-кандидата, необходимо скорректировать информацию движения текущего блока с учетом временного расстояния между картинками, к которым принадлежат ссылающийся блок и блок, на который ссылаются.
[00439] Путем сравнения временного расстояния между картинкой, которой принадлежит текущий блок, и картинкой, на которую ссылается текущий блок, и временного расстояния между картинкой, которой принадлежит блок-кандидат, и картинкой, на которую ссылается блок-кандидат, способ корректировки информации движения блока-кандидата для большего сходства с информацией движения текущего блока, называется масштабированием информации движения. Масштабирование информации движения может использоваться в методе интер-предсказания с использованием кандидатов, таком как режим AMVP, режим слияния и т.п.
[00440] фиг. 33 представляет собой диаграмму, иллюстрирующую масштабирование информации движения.
[00441] фиг. 33 показывает пример масштабирования информации движения. t может означать положение на временной оси текущей картинки, и t-n может означать положение на временной оси опорной картинки блока-кандидата. t-m может означать положение на временной оси опорной картинки текущего блока. Когда положение на временной оси каждой картинки изменяется, может определяться движение изображения в картинке. A может означать текущий блок, и B может означать блок-кандидат. A’ может означать положение в опорной картинке текущего блока, имеющего то же самое пространственное положение, что и текущий блок A. B' может означать положение в опорной картинке блока-кандидата, имеющего то же самое пространственное положение, что и блок-кандидат В.
[00442] Так как блок-кандидат В выполняет интер-предсказание из опорной картинки блока-кандидата, можно вывести положение блока D как результат интер-предсказания, и выразить это положение как вектор движения MV1. При выведении вектора движения текущего блока A из блока-кандидата B, временное расстояние между текущей картинкой и опорной картинкой блока A (например, t-(t-m)=m) и временное расстояние между текущей картинкой и опорной картинкой блока B (например, t-(t-n)=n) отличаются друг от друга, можно применить масштабирование информации движения.
[00443] Например, на фиг. 33, используя вектор движения MV1 блока B, временное расстояние m между текущей картинкой и опорной картинкой блока A и временное расстояние n между текущей картинкой и опорной картинкой блока B, можно вывести вектор движения (MV1*m/n) текущего блока A. Поскольку вектор движения (MV1*m/n), к которому применяется масштабирование информации движения, сходен с вектором движения MV0 текущего блока больше, чем MV1, эффективность предсказания информации движения может быть увеличена.
[00444] Масштабирование информации движения может быть способом масштабирования информации движения с использованием временного расстояния между картинками, предполагая, что движущийся объект в каждой картинке видео имеет линейное движение.
[00445] Поскольку текущий блок А выполняет интер-предсказание из опорной картинки текущего блока, положение блока С может быть выведено, и это положение может быть выражено как вектор движения MV0. При этом, так как картинки, на которые ссылаются блоки А и В, отличаются друг от друга, область, подходящая для предсказания текущего блока в каждой опорной картинке, может отличаться друг от друга. Следовательно, между MV0 и MV1 появляется разность размеров.
[00446] Здесь, масштабирование информации движения может применяться с использованием расстояния между текущей картинкой и опорной картинкой блока-кандидата на временной оси и расстояния между текущей картинкой и опорной картинкой текущего блока на временной оси. Скорректированная информация движения более вероятно будет сходна с информацией движения текущего блока, чем нескорректированная информация движения. Можно повысить эффективность кодирования с использованием для предсказания более сходной информации движения.
[00447] То есть когда масштабирование вектора движения применяется к MV1 на фиг. 33, может быть выведен вектор движения, модифицированный близко к MV0. Кодер или декодер может повысить эффективность кодирования с использованием масштабированного вектора движения.
[00448] Поскольку кандидаты списка кандидатов в соответствии с настоящим изобретением могут также иметь опорные картинки, отличные от текущего блока, необходимо выполнить масштабирование информации движения с учетом временного интервала между текущим блоком и опорной картинкой и временного интервала между кандидатами списка кандидатов и опорной картинкой кандидата. Например, когда кандидаты списка кандидатов используют информацию движения соседних по времени блоков, может потребоваться вышеописанное масштабирование информации движения. Поэтому информация для масштабирования информации движения может храниться как дополнительная информация в информации движения, сохраненной в списке кандидатов.
[00449] Например, информация для масштабирования информации движения может включать в себя по меньшей мере одно из номера POC опорной картинки, номера POC картинки, в которой появляется информация движения, и информации временного расстояния между картинкой, в которой появляется информация движения, и опорной картинкой.
[00450] Когда UPU является единицей, включающей в себя множество картинок, такой как GOP, информация движения, сохраненная в кандидате, может относиться к опорным картинкам, отличным друг от друга. Когда информация движения предсказывается с использованием информации движения, сохраненной в списке кандидатов, опорная картинка информации движения, включенная в список кандидатов, на который ссылаются, и опорная картинка текущего блока могут отличаться друг от друга. Кроме того, когда UPU включает в себя множество картинок, картинки, в которых может появляться информация движения, сохраненная в списке кандидатов, могут отличаться друг от друга.
[00451] Например, информация движения A, ссылающаяся на POC 2 в картинке POC1, может храниться в списке кандидатов, и информация движения B, ссылающаяся на POC 4 в картинке POC 3, может храниться в списке кандидатов. В этом случае картинка, в которой появляется информация движения A, сохраненная в списке кандидатов, может быть POC 1, и картинка, в которой появляется информация движения B, сохраненная в AMVOL, может быть POC 3. Картинка, на которую ссылается информация движения A, может быть POC 2 и картинка, на которую ссылается информация движения B, может быть POC 4.
[00452] В случае UPU, включающей в себя множество картинок, картинка, в которой появляется информация движения, сохраненная в списке кандидатов, и опорная картинка могут отличаться друг от друга. Кроме того, картинка, в которой появляется информация движения, сохраненная в списке кандидатов, и текущая картинка, включающая в себя текущий блок, могут также отличаться друг от друга, и опорная картинка информации движения, сохраненной в списке кандидатов, и опорная картинка текущего блока также могут отличаться друг от друга. Здесь, когда информация движения текущего блока предсказывается через информацию движения списка кандидатов, можно повысить эффективность кодирования посредством вышеописанного масштабирования информации движения.
[00453] Фиг. 34 представляет собой диаграмму для объяснения масштабирования информации движения в соответствии с вариантом осуществления настоящего изобретения.
[00454] Например, когда UPU является единицей картинки, масштабирование может выполняться, как показано на фиг. 34. В примере на фиг. 34, UPU A может хранить информацию движения, сгенерированную в картинке POC 8, в списке кандидатов, и UPU B может хранить информацию движения, сгенерированную в картинке POC 4, в списке кандидатов. Картинка POC 8 может выполнять предсказание движения, ссылаясь на картинку POC 1, и картинка POC 4 может выполнять предсказание движения, ссылаясь на картинку POC 8. Когда картинка POC 4 является текущей картинкой, которая должна кодироваться в текущее время, POC 8 представляет собой картинку, которая уже была восстановлена, список кандидатов UPU B может инициализироваться путем обращения к списку кандидатов, используемый в UPU A.
[00455] Однако информация движения, сохраненная в списке кандидатов UPU A, является информацией движения, сгенерированной со ссылкой на картинку POC 8, и, таким образом, отличается по временному расстоянию между картинками в случае, когда картинка POC 4 ссылается на картинку POC 8. Между тем поскольку картинка, которая должна кодироваться со ссылкой на информацию движения, сохраненную в списке кандидатов UPU B, является POC 4, а картинка, на которую ссылается картинка POC 4, является POC 8, информация движения списка кандидатов UPU A используется как есть, так что в случае инициализации списка кандидатов UPU B эффективность предсказания информации движения снижается. Здесь, когда информация движения UPU A корректируется посредством масштабирования информации движения, и масштабированная информация движения используется для инициализации списка кандидатов UPU B, эффективность кодирования может быть улучшена.
[00456]
[00457] Далее будет описан способ совместного использования списка кандидатов в соответствии с настоящим изобретением.
[00458] При выполнении кодирования и декодирования, информация списка кандидатов может варьироваться в соответствии с моментом времени, когда ссылаются на каждый блок кодирования, выполняющий интер-предсказание. Поскольку информация движения списка кандидатов может добавляться, удаляться или изменяться, информация или конфигурация, включенная в список кандидатов, может варьироваться в соответствии с моментом времени, когда выполняется интер-предсказание. То есть, когда момент времени, в который каждая область, выполняющая интер-предсказание, обращается к списку кандидатов, варьируется, опорная информация может изменяться. Поскольку список кандидатов в соответствии с настоящим изобретением может обновляться в результате выполнения интер-предсказания, интер-предсказание должно выполняться последовательно.
[00459] В нижеследующем описании область, состоящая из одного или нескольких блоков кодирования, может быть определена как общая (совместно используемая) область. Когда выполняется интер-предсказание, блоки кодирования, включенные в общую область, могут совместно использовать список кандидатов, сконфигурированный в определенное время ранее, чем момент времени кодирования или декодирования всех блоков кодирования, включенных в общую область. Здесь, общая область может быть сконфигурирована посредством по меньшей мере одной единицы или набора единиц CTU, CU и PU.
[00460] Соответственно, интер-кодирование может выполняться независимо или параллельно для каждого блока кодирования в соответствующей общей области. Когда интер-предсказание выполняется посредством обращения к списку кандидатов независимо или параллельно в общей области, каждый блок кодирования, включенный в общую область и выполняющий интер-предсказание, может обращаться к списку кандидатов, который ранее сконфигурирован. Здесь предварительно сконфигурированный список кандидатов может означать список кандидатов, сконфигурированный до начала кодирования или декодирования.
[00461] Здесь, блоки кодирования в общей области могут совместно использовать предварительно сконфигурированный список кандидатов или могут совместно использовать кандидатов из списка кандидатов, сгенерированных с использованием списка кандидатов. Кандидат из списка кандидатов, подходящий для каждого блока кодирования, может быть отдельно сгенерирован путем обращения к предварительно сконфигурированному списку кандидатов во время интер-предсказания блоков кодирования, включенных в общую область. То есть когда применяется настоящий способ, предварительно сконфигурированный список кандидатов, к которому обращаются блоки кодирования, включенные в общую область, может совместно использоваться, и кандидаты из списка кандидатов могут генерироваться независимо. Альтернативно, блоки кодирования, включенные в общую область, могут совместно использовать не только предварительно сконфигурированный список кандидатов, но также кандидатов списков кандидатов, выведенных из общего списка кандидатов.
[00462] После того, как предсказание выполнено в блоках кодирования, включенных в соответствующую общую область, список кандидатов может обновляться независимо или параллельно с использованием информации движения или информации предсказания, сгенерированной в каждом из блоков кодирования. При этом список кандидатов может обновляться в предопределенном порядке после того, как все предсказания во всех блоках кодирования, включенных в общую область, завершены. Соответственно, кодер и декодер могут генерировать один и тот же список кандидатов при кодировании/декодировании текущего блока.
[00463] Например, когда текущий блок кодируется/ декодируется в режиме треугольного разбиения, текущий блок может разбиваться на две треугольные области. Здесь информация о направлении разбиения для разбиения текущего блока на две треугольные области может быть кодирована/декодирована. Чтобы кодировать/декодировать каждую из двух областей, разделенных на треугольные области, информация движения для кодирования/ декодирования каждой области может быть выбрана из списка кандидатов. Здесь две треугольные области, полученные посредством выполнения треугольного разбиения, могут совместно использовать список кандидатов блоков перед разделением.
[00464] Когда текущий блок кодируется/декодируется в режиме треугольного разбиения, первая информация движения и вторая информация движения могут быть определены в общем списке кандидатов через первый индекс и второй индекс для текущего блока. Кодер или декодер может вывести первый блок предсказания для текущего блока, используя первую информацию движения, и второй блок предсказания для текущего блока, используя вторую информацию движения.
[00465] Кодер или декодер может сгенерировать окончательный блок предсказания для текущего блока путем взвешивания первого блока предсказания и второго блока предсказания. Здесь, взвешенная сумма блоков предсказания может быть получена путем взвешивания первой области по отношению к первому блоку предсказания и взвешивания второй области по отношению ко второму блоку предсказания.
[00466]
[00467] Фиг. 35-39 представляют собой диаграммы, иллюстрирующие способ обновления и совместного использования списка кандидатов в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00468] Фиг. 35 показывает пример, в котором список кандидатов обновляется с течением времени, и пример списка кандидатов, к которому обращается единица кодирования. Фиг. 35 иллюстрирует случай, когда кодируется/декодируется блок кодирования 0, а затем кодируется/декодируется блок кодирования 1. Блок кодирования, показанный серым, означает блок кодирования, который в текущее время кодируется/декодируется. Блок кодирования 0 может кодироваться/декодироваться со ссылкой на список кандидатов, сформированный до момента времени, в который кодируется/декодируется блок кодирования 0.
[00469] После этого список кандидатов может обновляться посредством информации движения закодированного/декодированного блока кодирования 0. К обновленному списку кандидатов можно обращаться при кодировании/декодировании блока кодирования 1, который является следующим блоком кодирования. Информация движения восстановленного блока кодирования 1 может использоваться для повторного обновления списка кандидатов. Затем к обновленному списку кандидатов можно вновь обращаться в следующем блоке кодирования. Поэтому, чтобы кодировать/ декодировать блок кодирования 1, сначала необходимо кодировать/декодировать блок кодирования 0.
[00470] Фиг. 36 иллюстрирует случай, в котором список кандидатов обновляется с течением времени, и способ обращения к списку кандидатов в каждом блоке, когда блок кодирования 0 и блок кодирования 1 составляют одну общую область. Поскольку блок кодирования 0 и блок кодирования 1 включены в одну общую область, кодер или декодер может выполнять предсказание с использованием общего списка кандидатов для блока кодирования 0 и блока кодирования 1. Соответственно, в отличие от примера на фиг. 35, кодер или декодер может выполнять интер-предсказание на блоке кодирования 0 и блоке кодирования 1 независимо или параллельно.
[00471] Фиг. 36 показывает состояние, в котором предсказание выполняется параллельно с использованием того же списка кандидатов, который ранее был восстановлен в то же самое время. В отличие от примера на фиг. 35, поскольку ранее восстановленный список кандидатов является общим, блок кодирования 1 может обращаться к списку кандидатов в момент времени, требуемый для кодирования/декодирования, даже если блок кодирования 0 не кодируется/декодируется.
[00472] В примере на фиг. 36, поскольку как блок кодирования 0, так и блок кодирования 1 кодируются/декодируются, показано, что информация движения “E”, сгенерированная из блока кодирования 0, и информация движения “F”, сгенерированная из блока кодирования 1, отражаются (обновляются) в списке кандидатов. Здесь, список кандидатов может быть обновлен в момент времени, когда кодирование/декодирование общей области завершено. Фиг. 36 иллюстрирует случай, в котором размер списка кандидатов равен 5, и показывает пример, в котором одна информация движения A из списка кандидатов удалена в соответствии с обновлением информации движения.
[00473] Фиг. 37 показывает пример обновления списка кандидатов и кодирования/декодирования блоков кодирования 0 и 1 с использованием обновленного списка кандидатов с течением времени. Кандидат из списка кандидатов, подходящий для текущего блока кодирования, может быть сгенерирован из обновленного последнего списка кандидатов, и блок кодирования может кодироваться/декодироваться со ссылкой на кандидата из сгенерированного списка кандидатов. Информация движения вновь закодированного/декодированного блока кодирования используется для обновления списка кандидатов.
[00474] В примере на фиг. 37, блок кодирования 0 может быть закодирован/декодирован раньше, чем блок кодирования 1. Соответственно, кандидаты для списков кандидатов, соответствующих блоку кодирования 0, могут быть сгенерированы с использованием обновленного списка кандидатов, прежде чем блок кодирования 0 будет кодирован/декодирован, и блок кодирования 0 может быть закодирован/декодирован на основе списка кандидатов. Информация движения, закодированная/декодированная в блоке кодирования 0, может использоваться для обновления списка кандидатов, и список кандидатов для блока кодирования 1 может быть сгенерирован с использованием обновленного списка кандидатов. Блок кодирования 1 может кодироваться/декодироваться с использованием кандидата из списка кандидатов, сгенерированного для блока кодирования 1. То есть, согласно фиг. 37, блоки кодирования 0 и 1 могут быть последовательно кодированы/декодированы.
[00475] Фиг. 38 иллюстрирует пример обновления общего списка кандидатов с течением времени и кодирования/декодирования блока кодирования в каждой общей области с использованием обновленного общего списка кандидатов. В этом примере, общая область может состоять из блока кодирования 0 и блока кодирования 1. Блок кодирования 0 и блок кодирования 1 могут генерировать кандидатов, используя список кандидатов, обновленный перед кодированием/декодированием двух блоков кодирования в общей области. Соответственно, кодер или декодер может выполнять предсказание независимо или параллельно относительно блока кодирования 0 и блока кодирования 1.
[00476] В отличие от примера на фиг. 37, поскольку на фиг. 38 используется общий список кандидатов, даже если блок кодирования 0 не кодируется/декодируется первым, блок кодирования 1 может кодироваться/декодироваться вместе с блоком кодирования 0. То есть, согласно примеру на фиг. 38, блок кодирования 0 и блок кодирования 1 могут кодироваться/ декодироваться параллельно в одно и то же время.
[00477] Согласно фиг. 38(a), блок кодирования 0 и блок кодирования 1 используют общий список кандидатов, но могут кодироваться/декодироваться с использованием кандидатов из разных списков кандидатов. Со ссылкой на фиг. 38(b), блок кодирования 0 и блок кодирования 1 могут генерировать кандидатов из общего списка кандидатов с использованием общего списка кандидатов и могут кодироваться/декодироваться с использованием сгенерированного одного и того же кандидата.
[00478] Каждая область, в которой кодирование/ декодирование выполняется независимо или параллельно, может состоять из множества блоков, и предсказание может выполняться для каждого блока. Здесь, предсказание может выполняться путем генерирования соответствующих списков кандидатов в каждой области.
[00479] Например, когда мозаичные элементы А и мозаичные элементы B, составляющие одну картинку, кодируются/декодируются параллельно, каждая область может кодироваться/декодироваться с использованием списков кандидатов, отличных друг от друга. Например, кодер или декодер может хранить информацию движения, сгенерированную в блоке, принадлежащем мозаичному элементу A, в списке кандидатов мозаичного элемента A. Кроме того, кодер или декодер может хранить информацию движения, сгенерированную в блоке, принадлежащем мозаичному элементу B, в списке кандидатов мозаичного элемента В.
[00480] Список кандидатов, вновь сгенерированный каждой областью для независимого или параллельного кодирования/ декодирования, можно инициализировать или ему следовать путем обращения или копирования списка кандидатов, который предварительно сконфигурирован. После инициализации, список кандидатов каждой области может обновляться только информацией в каждой области. Соответственно, каждая область может кодироваться/декодироваться независимо друг от друга. Затем такой список кандидатов определяется как под-список кандидатов.
[00481] Фиг. 39 показывает пример, в котором один или несколько мозаичных элементов, составленных из одного или нескольких блоков кодирования, кодируются/декодируются параллельно. Кодер или декодер может следовать восстановленному общему списку кандидатов для каждого мозаичного элемента в качестве начального значения списка кандидатов каждого мозаичного элемента. Под-списки кандидатов, отличающиеся друг от друга, могут быть сгенерированы для каждого мозаичного элемента на основе ранее унаследованного списка кандидатов.
[00482] Здесь, по меньшей мере одна из информации (флаг, индекс, указатель и т.д.), указывающей, нужно ли следовать восстановленному общему списку кандидатов, в качестве начального значения списка кандидатов каждого мозаичного элемента, информации картинки, на которую ссылаются для инициализации, информации мозаичного элемента, на которую ссылаются для инициализации, и информации о количестве частей информации движения, на которую ссылаются для инициализации, может сигнализироваться посредством по меньшей мере одного из набора параметров последовательности, набора параметров картинки и заголовка слайса.
[00483] Согласно фиг. 39, кодер или декодер может сгенерировать соответствующие под-списки кандидатов для мозаичного элемента 0 и мозаичного элемента 1, следуя восстановленному общему списку кандидатов. Первый блок кодирования, включенный в мозаичный элемент 0, может быть закодирован/декодирован с использованием унаследованного списка кандидатов. Здесь, список кандидатов мозаичного элемента 0 может быть обновлен с использованием выведенной информации движения E. После завершения кодирования/декодирования первого блока кодирования, информация движения E первого блока может быть добавлена в под-список кандидатов.
[00484] Затем второй блок кодирования мозаичного элемента 0 может быть закодирован/декодирован со ссылкой на обновленный под-список кандидатов, включающий в себя информацию движения E. Кодер или декодер может выводить информацию движения F блока и выполнять предсказание для блока на основе информации движения F. Здесь, под-список кандидатов мозаичного элемента 0 может быть обновлен снова с использованием выведенной информации движения F.
[00485] Фиг. 39 иллюстрирует случай, в котором размер списка кандидатов равен 5, и показывает пример, в котором одна часть предварительно сохраненной информации движения A удаляется, и информация движения F движения в список кандидатов согласно обновлению информации движения. Здесь информация движения, удаленная из под-списка кандидатов, может быть информацией движения, имеющей самый низкий или самый высокий индекс, или информацией движения, имеющей самый низкий потенциал предсказания.
[00486] Кодер или декодер кодирует/декодирует первый блок кодирования с помощью унаследованного списка кандидатов мозаичного элемента 1 и может обновлять список кандидатов мозаичного элемента 1 с помощью информации движения G, полученной из первого блока кодирования, который кодируется/декодируется. Соответственно, под-список кандидатов, обновленный после завершения кодирования/декодирования первого блока кодирования, дополнительно включает в себя информацию движения G первого блока. Даже при следовании общему списку кандидатов после того, как предсказание для каждого мозаичного элемента выполнено, под-списки кандидатов мозаичного элемента 0 и мозаичного элемента 1 могут включать в себя информацию движения, отличную друг от друга.
[00487] Затем второй блок кодирования мозаичного элемента 1 может быть закодирован/декодирован со ссылкой на обновленный под-список кандидатов, включающий в себя информацию движения G. Здесь под-список кандидатов мозаичного элемента 1 может быть обновлен снова с использованием выведенной информации движения G.
[00488] Поскольку информация движения G уже добавлена в под-список кандидатов мозаичного элемента 1 посредством ранее кодированной/декодированной информации движения, добавление избыточной информации движения G может быть опущено. Как описано выше, под-список кандидатов каждого мозаичного элемента, следующий общему списку кандидатов, может формироваться в отличающейся форме, когда каждый блок кодирования кодируется/ декодируется. Поскольку перекрестная ссылка между разными мозаичными элементами не требуется, каждый мозаичный элемент может кодироваться/декодироваться независимо или параллельно.
[00489]
[00490] Далее будет описан способ повышения эффективности предсказания списка кандидатов, описанный выше, посредством конфигурации UPU.
[00491] Используя список кандидатов в соответствии с настоящим изобретением, информация движения, сгенерированная в предыдущем блоке, может быть сохранена для накопления и последующего управления. Информация движения, накопленная в списке кандидатов, улучшает эффективность кодирования таким образом, чтобы обращаться к информации движения области, к которой невозможно обращаться посредством существующего способа предсказания.
[00492] Однако информация движения, сгенерированная в слишком удаленном положении, имеет проблему, заключающуюся в том, что эффективность предсказания может снижаться в предсказании текущего блока. Подробнее, когда размер списка кандидатов ограничен, ситуация, в которой только информация движения, сгенерированная в слишком удаленном положении, сохраняется в списке кандидатов, может вызвать снижение эффективности кодирования. Здесь, надлежащая конфигурация UPU может решить или смягчить эту проблему.
[00493] Фиг. 40 представляет собой диаграмму, иллюстрирующую список кандидатов, состоящий из одной UPU, и список кандидатов, состоящий из множества UPU, в соответствии с вариантом осуществления настоящего изобретения.
[00494] Фиг. 40(a) показывает пример структуры списка кандидатов, состоящей из одной UPU. Фиг. 40 показывает пример, в котором UPU распределяется на основе картинки, и размер списка кандидатов ограничен восемью. Порядок кодирования соответствует слева направо, и большое количество разбиений блоков происходит на правом конце картинки, и информация движения крайних правых восьми блоков кодирования сохраняется в списке кандидатов. Здесь текущий блок присутствует на левом конце, так что текущий блок находится слишком далеко от блока кодирования, на который ссылается информация движения, сохраненная в списке кандидатов, что снижает эффективность кодирования.
[00495] Фиг. 40(b) иллюстрирует пример конфигурации UPU, к которой применяется вариант осуществления в соответствии с настоящим изобретением. Кодер или декодер может разделить картинку по вертикали, так что картинка включает n UPU. Здесь, поскольку каждая UPU имеет отдельный список кандидатов, текущий блок может быть закодирован/декодирован со ссылкой на список кандидатов UPU 0. Согласно конфигурации UPU, даже когда строка блоков кодирования изменяется, расстояние между текущим блоком и блоком кодирования, на который ссылается информация движения, может быть ближе, чем таковое на фиг. 40(а). Точно так же, когда будущий блок кодируется, ссылаются на список кандидатов UPU n, тем самым предотвращая случай обращения к области кодирования, которая находится слишком далеко.
[00496] То есть, кодер или декодер могут использовать разные списки кандидатов в соответствии с UPU, которой принадлежит местоположение текущего блока. Соответственно, кодер или декодер могут предотвратить снижение эффективности кодирования. Здесь список кандидатов, принадлежащий каждой UPU, может ссылаться на ранее сгенерированный список кандидатов, принадлежащий UPU, отличающимся друг от друга. Например, список кандидатов UPU n может быть сгенерирован со ссылкой на по меньшей мере одну из UPU от UPU 0 до UPU n-1.
[00497]
[00498] Фиг. 41 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования в соответствии с вариантом осуществления настоящего изобретения.
[00499] Со ссылкой на фиг. 41, способ декодирования в соответствии с настоящим изобретением может включать выведение первого списка кандидатов с использованием информации движения соседнего блока (S4110), выведение второго списка кандидатов с использованием предварительно восстановленной информации движения (S4120), выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов (S4130) и генерацию блока предсказания с использованием третьего списка кандидатов (S4140).
[00500] Здесь, ранее восстановленная информация движения может быть информацией движения декодированного блока кодирования непосредственно перед декодированием текущего блока.
[00501] Фиг. 42 представляет собой блок-схему последовательности операций, иллюстрирующую способ кодирования в соответствии с вариантом осуществления настоящего изобретения.
[00502] Со ссылкой на фиг. 42, способ кодирования в соответствии с настоящим изобретением может включать определение информации движения текущего блока (S4210), выведение первого списка кандидатов с использованием информации движения соседнего блока (S4220) и выведение второго списка кандидатов с использованием закодированной информации движения (S4230) и выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов (S4240).
[00503] По меньшей мере один или комбинация по меньшей мере одного из вышеописанных вариантов осуществления могут использоваться для выполнения способа кодирования/декодирования, показанного на фиг. 41 и 42. Например, первый список кандидатов может означать существующий список кандидатов, а второй список кандидатов может означать список кандидатов в соответствии с настоящим изобретением. То есть, первый список кандидатов может быть по меньшей мере одним из списков кандидатов, используемых в режиме AMVP, режиме слияния и режиме IBC.
[00504] Здесь, предварительно кодированная информация движения может быть информацией движения блока кодирования, закодированного непосредственно перед кодированием текущего блока.
[00505] Далее будет описан способ кодирования/декодирования изображения с использованием списка режимов адаптивного внутри- (интра-) картинного предсказания.
[00506] При сжатии изображения, требуются шесть или более битов данных для представления 32 или более режимов внутри- картинного предсказания. Для представления 64 или более режимов интра-предсказания требуется семь или более битов данных. Способ кодирования/декодирования изображения использует наиболее вероятный режим (MPM) для уменьшения количества битов, представляющих режимы интра-предсказания.
[00507] Фиг. 43 и 44 представляют собой диаграммы, иллюстрирующие кандидатов MPM.
[00508] Фиг. 43 представляет собой диаграмму, иллюстрирующую пример кандидата, который может использоваться как текущий блок и MPM, при этом затененные серым блоки, соответствующие C1-C17, являются областями, в которых существует соседний блок, и могут использоваться как MPM. В технологии сжатия изображения, кодер конфигурирует кандидата MPM и список MPM путем выведения режима интра-предсказания из соседних блоков текущего блока, и когда тот же режим предсказания, что и режим интра-предсказания, определенный в текущем блоке, присутствует в списке MPM, можно уменьшить количество битов представления в режиме интра-предсказания путем передачи индекса кандидата MPM вместо режима интра-предсказания текущего блока.
[00509] Фиг. 43 показывает пример кандидата, который может использоваться в MPM, все или часть кандидатов от C1 до C17 могут использоваться в MPM согласно способу сжатия изображения и согласно режиму предсказания соседнего блока, в список MPM может быть добавлен по меньшей мере один из DC режима предсказания, планарного режима предсказания и направленного режима интра-предсказания. Кроме того, направленный режим, полученный путем добавления или вычитания смещения к/от направленному(го) режиму(а) интра-предсказания соседнего блока, может быть добавлен в список MPM.
[00510] Кроме того, как показано в примере на фиг. 44, можно сконфигурировать список MPM путем выведения режима интра-предсказания из блока соседней области вместо смежной области текущего блока.
[00511] Фиг. 45 представляет собой диаграмму, иллюстрирующую пример выбора режима интра-предсказания, и фиг. 46 представляет собой диаграмму, иллюстрирующую случай, когда режим интра-предсказания текущего блока не включен в список MPM.
[00512] Фиг. 45 представляет собой диаграмму, представляющую пример режима интра-предсказания текущего блока и соседнего блока в процессе кодирования/декодирования изображения, при этом затененные серым блоки представляют собой области, включенные в соседний блок, и числа для каждой области означают значение режима интра-предсказания соседней области, включающей соответствующую область. Когда соседние блоки текущего блока, как показано на фиг. 45, не включают в себя тот же режим предсказания, что и текущий блок, и когда режим интра-предсказания текущего блока не включен в список MPM, сконфигурированный, как показано на фиг. 46, MPM для текущего блока не выбирается, но режим предсказания текущего блока может непосредственно сигнализироваться и передаваться.
[00513] В качестве примера, когда MPM не выбран, в качестве способа сжатия и передачи режима предсказания текущего блока, имеется способ его передачи путем классификации режима предсказания текущего блока на выбранный режим и невыбранный режим (оставшийся режим). Для оставшегося режима интра-предсказания, за исключением номеров режимов интра-предсказания, возникающих для кандидата MPM во всех возможных режимах интра-предсказания, выбранный режим сжимает и передает флаг выбранного режима и номер режима интра-предсказания 1/N, когда режим интра-предсказания кратен N (N - целое число, большее или равное 2), и сжимает и передает невыбранный режим вместе с флагом выбранного режима, если он не кратен N. Между тем в случае использования невыбранного режима, кодер может выполнять передачу путем кодирования режима интра-предсказания (кодирования оставшегося интра-режима), который не включен в MPM, с использованием такого способа, как усеченное двоичное кодирование.
[00514] Кроме того, когда MPM не выбран, требуются log N битов представления при представлении N режимов предсказания (N - целое число, равное 2 или более) для представления режима интра-предсказания текущего блока. Кроме того, существует проблема, заключающаяся в том, что генерируется больше битов, чем индекс MPM, даже если используется способ выбранного режима.
[00515] В соответствии с настоящим изобретением, можно увеличить избирательность MPM с использованием списка режимов интра-предсказания. В соответствии с некоторыми вариантами осуществления настоящего изобретения, предлагается способ сигнализации индекса адаптивно сконфигурированного списка режимов интра-предсказания, когда MPM не выбран, и способ применения списка режимов интра-предсказания к выбранному режиму и невыбранному режиму для сокращения бита представления режима предсказания. Поскольку к списку режимов интра-предсказания в соответствии с настоящим изобретением всегда может обращаться кодер и декодер изображения без дополнительной сигнализации, список режимов интра-предсказания может использоваться в качестве опорной информации в процессах кодирования/ декодирования, отличных от описанного выше MPM, выбранного режима и невыбранного режима.
[00516]
[00517] Далее будет описан способ конфигурирования списка режимов интра-предсказания в соответствии с настоящим изобретением.
[00518] После выполнения интра-предсказания путем применения различных режимов интра-предсказания, кодер определяет режим предсказания, имеющий наивысшую степень сжатия среди них, как оптимальный режим предсказания, и декодер изображения выполняет предсказание и восстановление с использованием режима интра-предсказания, определенного кодером. Поскольку кодер и декодер изображения выполняют предсказание и восстановление с использованием того же самого режима предсказания, декодер изображения также должен иметь возможность выводить список режимов интра-предсказания, выведенный из кодера. Поскольку декодер выполняет то же самое предсказание посредством режима интра-предсказания, определенного кодером, когда правила для конфигурирования списка режимов интра-предсказания кодера и декодера одинаковы, кодер и декодер могут конфигурировать список режимов интра-предсказания тем же путем без дополнительной сигнализации. Список режимов интра-предсказания, сконфигурированный в кодере и декодере, может использоваться при выводе режима предсказания.
[00519] Фиг. 47 представляет собой диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00520] Фиг. 47 показывает пример процесса конфигурирования списка режимов интра-предсказания в кодере и декодере. Согласно фиг. 47, список режимов интра-предсказания может быть сконфигурирован на основе частоты появления режима интра-предсказания. На фиг. 47, каждый из квадратов, составляющих 16 блоков, представляет блок кодирования единицы, выводящий каждый режим предсказания, затенения серым представляют текущий блок, и значения в затенениях означают средние значения, обновленные в списке счета, отсчитывающем частоту появления каждого режима интра-предсказания (интра-режима).
[00521] Индекс в списке счета означает число режимов интра-предсказания. Здесь число режимов интра-предсказания может означать значение, представляющее режим интра-предсказания. То есть, на фиг. 47, число в каждой единице предсказания представляет значение, указывающее режим интра-предсказания, и пунктирная стрелка представляет временной поток. То есть интра-предсказание может выполняться над текущим блоком в порядке от (a) до (i) на фиг. 47.
[00522] Поскольку значение режима интра-предсказания, определенного на фиг. 47(a), равно пяти, значение 5 режима интра-предсказания списка счета увеличивается на один. Затем, поскольку значение режима интра-предсказания, определенного на фиг. 47(b), равно четырем, значение 4 режима интра-предсказания списка счета обновляется. Аналогично, значение режима интра-предсказания в списке счета может быть увеличено согласно режиму интра-предсказания, определенному на фиг. 47(c)-(i), соответственно. Список режима интра-предсказания, используемый для сигнализации режима предсказания в интра-предсказании, может быть отдельно сконфигурирован со ссылкой на сконфигурированный список счета или может быть реализован таким образом, чтобы непосредственно обращаться к списку счета.
[00523] Фиг. 47 иллюстрирует пример процесса выведения списка режимов интра-предсказания, и кодер или декодер может конфигурировать список режимов интра-предсказания путем вычисления затрат в способе, отличном от счета. Кроме того, способ выведения списка режимов интра-предсказания может быть реализован иначе. Например, затраты могут быть определены с использованием остаточного сигнала для каждого режима интра-предсказания. В качестве другого примера, список режимов интра-предсказания может быть сконфигурирован путем комбинирования частоты появления и результата затрат режима интра-предсказания.
[00524] Фиг. 48 представляет собой другую диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00525] Фиг. 48 иллюстрирует пример конфигурации списка режимов интра-предсказания согласно определенному режиму интра-предсказания. В примере на фиг. 48, поскольку соседние блоки, смежные сверху и слева от каждого блока, и соответствующие блоки отличаются друг от друга в режиме предсказания, MPM не может использоваться. Соответственно, согласно способу в предшествующем уровне техники, кодер должен сигнализировать все режимы предсказания, и когда используются 35 режимов, 5 битов должны быть выделены каждому режиму предсказания для представления 32 режимов, которые не включены в список MPM. Следовательно, чтобы кодировать/декодировать область на фиг. 48, для каждых 5 битов в 16 блоках должно сигнализироваться всего 80 битов.
[00526] Между тем, в соответствии с настоящим изобретением, кодер или декодер может конфигурировать список режимов интра-предсказания предопределенной длины. Когда режим интра-предсказания для текущего блока присутствует в списке режимов интра-предсказания, кодер или декодер может уменьшить количество битов, требуемых сигнализацией индекса в списке режимов интра-предсказания для режима интра-предсказания.
[00527] Фиг. 48 показывает пример конфигурирования списка режимов интра-предсказания, имеющего длину 4, на основе счета, который является частотой появления режима предсказания. После обновления счета для каждого режима предсказания, кодер или декодер назначает индекс списка режимов интра-предсказания от значения 0 в порядке от наивысшего счета (в порядке значений 4, 3 и 5 режима интра-предсказания), тем самым конфигурируя список режимов интра-предсказания. Кроме того, кодер или декодер может генерировать список режимов интра-предсказания путем добавления или вычитания предопределенного веса к/от счету(а) для некоторых режимов предсказания.
[00528] В примере на фиг. 48, когда сигнализируется только индекс для списка режима интра-предсказания, поскольку сигнализируется индекс списка длины 4, кодер или декодер может сигнализировать режим интра-предсказания, используя 2 бита на блок, и сигнализировать режим интра-предсказания, используя 32 бита для 16 блоков. То есть, используя список режимов интра-предсказания согласно настоящему изобретению, можно повысить эффективность кодирования изображения за счет значительного сокращения битов представления режима предсказания.
[00529] Фиг. 49 представляет собой диаграмму, иллюстрирующую способ конфигурирования основанного на счете списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00530] Когда значения счета одинаковы для всех режимов интра-предсказания, кодер или декодер последовательно конфигурирует режим интра-предсказания до тех пор, пока список режимов интра-предсказания не будет заполнен, или использует режим предсказания, аналогичный режиму предсказания соседнего блока, для конфигурирования режима интра-предсказания.
[00531] Фиг. 49 показывает пример способа конфигурирования списка режимов интра-предсказания, когда тот же самый счет возникает в основанном на счете списке режимов интра-предсказания. Со ссылкой на фиг. 49, счет для значений 2, 3, 4, 5 и 6 режима интра-предсказания может иметь наивысшее значение из трех идентичным образом. В этом случае, как показано слева на фиг. 49, кодер или декодер последовательно выполняет сканирование от 0, так что режимы предсказания, сгенерированные с тем же самым счетом, могут добавляться в список интра-предсказания до тех пор, пока все списки режимов интра-предсказания не будут заполнены.
[00532] Альтернативно, как показано справа на фиг. 49, кодер или декодер предпочтительно добавляет режимы предсказания левого и верхнего соседних блоков текущего блока к режиму предсказания, имеющему то же самое значение счета, тем самым конфигурируя список режимов интра-предсказания. Даже если счет не имеет наивысшего значения, кодер или декодер может применить приоритет к режимам предсказания левого и верхнего соседних блоков по отношению к режиму предсказания, имеющему тот же счет.
[00533] Фиг. 50 представляет собой диаграмму, иллюстрирующую способ конфигурирования основанного на затратах списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00534] В качестве другого примера, даже если счет одинаков, кодер или декодер могут конфигурировать режим интра-предсказания, используя предопределенное условие. Например, предопределенное условие может быть частотой появления режима предсказания смежных или соседних блоков текущего блока. Список режимов интра-предсказания может быть сконфигурирован посредством предпочтительного использования режима предсказания, имеющего наиболее оптимальные затраты, путем вычисления затрат для каждого режима предсказания.
[00535] Измерение затрат может вычисляться с использованием частоты появления каждого режима предсказания, остаточного сигнала, сгенерированного для каждого режима предсказания, и т.п. для режима интра-предсказания, выбранного в качестве оптимального режима предсказания. Кроме того, затраты может вычисляться путем применения веса к режиму интра-предсказания, определенного в соседнем блоке, смежном с текущим блоком, или применения веса к направлению, аналогично режиму интра-предсказания, возникающему в соседнем блоке, смежном с текущим блоком.
[00536] Фиг. 50 показывает пример способа конфигурирования списка режимов интра-предсказания на основе затрат. Затененная часть фиг. 50 означает текущий блок, и каждое число может означать режим интра-предсказания. На фиг. 50, режим интра-предсказания, возникающий в каждом блоке, может быть сохранен в списке режимов истории. Со ссылкой на фиг. 50, список затрат может конфигурироваться с использованием абсолютного значения разности между режимами предсказания списка режимов истории как затрат, на основе среднего режимов предсказания блоков, смежных с верхним и левым от текущего блока, как опорного значения. Здесь, кодер или декодер могут конфигурировать список режимов интра-предсказания путем преимущественного добавления режима предсказания, имеющего низкие затраты
[00537] При конфигурировании списка режимов интра-предсказания, когда вновь добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания, индекс соответствующего режима интра-предсказания может быть назначен низким. Значение индекса может использоваться в качестве идентификатора для выбора одного из режимов интра-предсказания, включенных в список режимов интра-предсказания. Здесь кодер или декодер могут повысить эффективность сигнализации, поскольку меньшее количество битов, сигнализируемых декодеру, назначается по мере уменьшения значения индекса.
[00538] Фиг. 51 и 52 представляют собой диаграммы, иллюстрирующие способ изменения индекса списка режимов интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00539] Поскольку режим интра-предсказания текущего блока более вероятно будет сходным с режимом интра-предсказания следующего блока, чем режим интра-предсказания ранее закодированных блоков, при добавлении режима интра-предсказания текущего блока к списку режимов интра-предсказания, может назначаться самое низкое значение “0” индекса.
[00540] Фиг. 51 показывает пример способа применения самого низкого индекса к режиму интра-предсказания, когда добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания. Согласно фиг. 51, когда значения режима интра-предсказания 0, 22, 3, 11 и 7 присутствуют в списке режимов интра-предсказания, и добавленный режим интра-предсказания равен 3, кодер или декодер может изменить значение индекса режима интра-предсказания 3, который уже присутствует в списке режимов интра-предсказания, в нуль.
[00541] Фиг. 52 показывает пример способа уменьшения индекса для режима интра-предсказания, когда добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания. Когда имеются значения режима интра-предсказания 0, 22, 3, 11 и 7 в списке режимов интра-предсказания и добавленный режим интра-предсказания равен трем, кодер или декодер может изменить индекс режима 3 интра-предсказания, уже присутствующего в списке режимов интра-предсказания, с третьего на второй. Альтернативно, при конфигурировании списка режимов интра-предсказания, когда вновь добавленный режим интра-предсказания существует в существующем списке режимов интра-предсказания, кодер или декодер может назначить предопределенный индекс соответствующему режиму интра-предсказания.
[00542] Фиг. 53 и 54 представляют собой диаграммы, иллюстрирующие область, конфигурирующую список режимов интра-предсказания, в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00543] Список режимов интра-предсказания может быть сконфигурирован с использованием конкретной единицы кодирования/декодирования, такой как блок, CTU, кирпичик, мозаичный элемент, слайс, субкартинка, картинка, кадр и группа картинок (GOP), составленных из одной или более CU. Поскольку смежные блоки имеют более высокую вероятность генерирования того же самого режима предсказания, кодер или декодер может конфигурировать список режимов интра-предсказания в таких единицах, как CTU или слайс. Когда недостаточно кандидатов для интра-предсказания, список режимов интра-предсказания конфигурируется в единицах картинки, тем самым выводя более точные предсказания. Кроме того, поскольку изображение имеет высокое сходство между картинками, кодер или декодер могут повысить эффективность кодирования путем конфигурирования списка режимов интра-предсказания для каждой GOP. Кроме того, поскольку смежные блоки имеют относительно высокую вероятность генерирования того же самого режима предсказания, кодер или декодер может формировать список режимов интра-предсказания для каждой предопределенной области в картинке.
[00544] Здесь предопределенная область может быть ограничена соседней областью текущего блока, как показано на фиг. 53, или может быть сформирована путем назначения области посредством выполнения N-разбиения на экране (N - целое число, равное 1 или более), как показано на фиг. 54. Список режимов интра-предсказания в соответствии с настоящим изобретением генерируется и используется не только для блока, CTU, кирпичика, мозаичного элемента, слайса, субкартинки, картинки, кадра, единицы группы картинок (GOP), состоящих из одной или более CU, но также различных единиц, которые можно использовать в области сжатия видео, включая метод сжатия неподвижного изображения. Кроме того, список режимов интра-предсказания может конфигурироваться для всех режимов предсказания или может конфигурироваться как отдельный список только для режима предсказания, имеющего высокую вероятность выбора.
[00545] Фиг. 55 представляет собой еще одну диаграмму, иллюстрирующую способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00546] Фиг. 55 показывает другой пример способа, в котором кодер или декодер изображения конфигурирует список режимов интра-предсказания. В примере на фиг. 55, когда список режимов интра-предсказания заполнен, список режимов интра-предсказания может конфигурироваться по правилу “первым пришел - первым обслужен” (FIFO), которое заменяет первый добавленный компонент новым значением. Когда список режимов интра-предсказания заполнен, порядок замены может быть изменен с учетом направления интра-предсказания соседнего блока.
[00547] В нижеследующем описании будет описан список режимов интра-предсказания, в котором порядок замены следует правилу “первым пришел - первым обслужен” (FIFO). На фиг. 55, каждый из квадратов, составляющих 16 блоков, может означать единичный блок для выведения режима предсказания, и затенение серым может означать текущий блок. Числа в каждой единице предсказания указывают режим интра-предсказания, а пунктирные стрелки указывают порядок интра-предсказания. То есть интра-предсказание может выполняться в порядке от (a) до (f) на фиг. 55.
[00548] Поскольку значение режима интра-предсказания, определенное на фиг. 55(a) равно пяти, режим номер пять может быть добавлен в список режимов интра-предсказания. Затем, поскольку значение режима интра-предсказания, определенного на фиг. 55(b), равно четырем, режим номер 4 может быть последовательно добавлен в список режимов интра-предсказания. Аналогично, режимы интра-предсказания, соответственно определенные на фиг. 55(c)-55(f), могут быть последовательно добавлены в список режимов интра-предсказания. Когда режим интра-предсказания, добавленный в процессе добавления каждого режима интра-предсказания в список режимов интра-предсказания, существует в списке режимов интра-предсказания, перекрывающийся режим интра-предсказания не может быть добавлен в список режимов интра-предсказания.
[00549] Кроме того, как показано на фиг. 55(f), когда списки режимов интра-предсказания заполнены, каждый компонент может быть последовательно заменен новым режимом интра-предсказания в порядке первого добавления среди компонентов списка режимов интра-предсказания. На фиг. 55, размер списка режимов интра-предсказания равен четырем, но размер списка режимов интра-предсказания может быть установлен по-разному. В качестве другого примера, когда список режимов интра-предсказания заполнен, добавляемый режим интра-предсказания может добавляться в предопределенное положение в списке режимов интра-предсказания.
[00550] Индекс списка режимов интра-предсказания может использоваться как идентификатор, указывающий один из режимов интра-предсказания, включенных в список режимов интра-предсказания. Здесь, кодер или декодер могут повысить эффективность сигнализации путем назначения меньшего количества битов, сигнализируемых декодеру, когда значение индекса меньше.
[00551] Когда режим интра-предсказания текущего блока более вероятно сходен с режимом интра-предсказания следующего блока, чем режим интра-предсказания ранее кодированных блоков, когда режим интра-предсказания добавляется в список режимов интра-предсказания, кодер или декодер может назначить самый низкий индекс добавленному режиму интра-предсказания. Например, на фиг. 55(b), кодер или декодер изменяет значение режима интра-предсказания, равное пяти, которое имеет значение существующего индекса № 0, на значение индекса № 1, и значение режима интра-предсказания, равное 4 в текущем блоке кодирования может быть присвоено значению индекса № 0.
[00552] Фиг. 56-58 представляют собой диаграммы, иллюстрирующие способ распределения индекса режима интра-предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00553] Фиг. 56 показывает пример способа назначения самого низкого значения индекса добавленному режиму интра-предсказания. Самое низкое значение индекса 0 может быть назначено последнему добавленному режиму интра-предсказания, и более низкие значения индекса могут быть назначены каждому режиму интра-предсказания в порядке позже добавленных режимов интра-предсказания для оставшихся номеров режимов интра-предсказания.
[00554] В качестве другого примера, кодер или декодер может последовательно суммировать выведенный режим интра-предсказания, переупорядочивать значения индексов и назначать значение “0”, начиная с последнего добавленного режима интра-предсказания. Например, на фиг. 55(f), список режимов интра-предсказания может быть сконфигурирован так, чтобы значения режимов интра-предсказания были в порядке 4, 3, 6 и 8, и здесь значения индекса находятся в порядке 3, 2, 1 и 0, в котором режиму 4 интра-предсказания может быть назначено значение индекса 3, режиму 3 интра-предсказания - значение индекса 2, режиму 6 интра-предсказания - значение индекса 1 и режиму 8 интра-предсказания - значение индекса 0, соответственно.
[00555] Фиг. 57 показывает пример способа назначения самого низкого значения индекса недавно добавленному режиму. Самое низкое значение индекса, равное нулю, может быть назначено последнему добавленному режиму интра-предсказания, и более низкие значения индекса могут быть назначены в порядке позже добавленных режимов интра-предсказания для оставшихся режимов интра-предсказания.
[00556] Когда добавленный режим интра-предсказания уже существует в списке режимов интра-предсказания, режиму интра-предсказания может быть присвоен “ноль”, который является самым низким значением индекса. Фиг. 58 иллюстрирует пример способа назначения самого низкого значения индекса в списке режимов интра-предсказания режиму интра-предсказания, когда режим интра-предсказания уже существует в списке режимов интра-предсказания. Со ссылкой на фиг. 58(d), в процессе добавления значения 4 режима интра-предсказания, поскольку режим 4 интра-предсказания уже существует в режиме интра-предсказания, кодер или декодер может присвоить ноль, что является самым низким значением индекса для значения 4 режима интра-предсказания.
[00557]
[00558] Далее будет описан способ конфигурирования множества списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00559] В определенной области может иметься множество списков режимов интра-предсказания. В частности, когда множество списков режимов предсказания с внутренним кодированием сконфигурировано для каждого направления или каждой области режима предсказания, выгодно учитывать направленность режима предсказания, характеристики пикселов определенной области и т.п., вместо конфигурирования одного списка режимов интра-предсказания для всех режимов предсказания и всех областей.
[00560] Фиг. 59 представляет собой диаграмму, иллюстрирующую способ конфигурирования множества списка режимов интра-предсказания, в соответствии с вариантом осуществления настоящего изобретения.
[00561] Фиг. 59 показывает пример способа конфигурирования одного списка режимов интра-предсказания и способа конфигурирования множества списков режимов интра-предсказания для каждой области. Фиг. 59(a) иллюстрирует пример конфигурирования одного списка режимов интра-предсказания, имеющего длину 2. Фиг. 59(b) иллюстрирует пример конфигурирования списка режимов интра-предсказания, имеющего длину 2, для левой области (первая область) и правой области (вторая область) относительно центра блока.
[00562] На фиг. 59(a), поскольку один список режимов интра-предсказания конфигурируется без различия между левой и правой областями, характеристика генерации сходных режимов интра-предсказания для каждой области может не учитываться. Между тем, на фиг. 59(b), список режимов интра-предсказания может быть индивидуально сконфигурирован с учетом положения и ориентации для каждой области относительно центра. При конфигурировании множества списков интра-предсказания для каждой области могут быть приняты во внимание характеристики генерации режима интра-предсказания для каждой области, тем самым повышая эффективность кодирования.
[00563] В примере на фиг. 59, блок разделен на левую и правую области, но вариант осуществления согласно фиг. 59 является только примером, в котором предопределенная область может быть разбита на N произвольных областей (N - целое число, равное 1 или более), чтобы сформировать N списков интра-предсказания. Здесь предопределенная область может быть ограничена периферийной областью текущего блока или может означать область, полученную путем выполнения N-разбиения на экране (N - целое число, равное 1 или более) на слайсы, картинки и т.п. вместо блоков. Кроме того, кодер или декодер может использовать режим интра-предсказания частичной области для конфигурирования режима интра-предсказания другой частичной области.
[00564] Фиг. 60 представляет собой диаграмму для описания способа конфигурирования множества списков режимов интра-предсказания с учетом направленности режима предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00565] Фиг. 60 показывает пример способа конфигурирования одного списка режимов интра-предсказания и способа конфигурирования множества списков интра-предсказания для каждого направления. Фиг. 60(a) иллюстрирует пример конфигурирования одного списка режимов интра-предсказания, имеющего длину два, и фиг. 60(b) иллюстрирует пример способа конфигурирования списка режимов интра-предсказания, имеющего длину два для горизонтального направления и вертикального направления, на основе направленности режима предсказания.
[00566] Поскольку режимы предсказания, имеющие аналогичную направленность в интра-предсказании, имеют характеристики, которые появляются смежным образом, кодер или декодер формирует список режимов интра-предсказания для каждого направления и затем выполняет поиск режима предсказания текущего блока в списке интра-предсказания, сходного направлению соседнего блока, с учетом направления режима предсказания соседнего блока текущего блока. При выборе списка режимов интра-предсказания с учетом направленности, возможность найти тот же самый режим интра-предсказания может быть увеличена. Соответственно, конфигурация списка режимов предсказания для каждого направления, как показано на фиг. 60, может повысить эффективность кодирования.
[00567] В примере на фиг. 60, направление предсказания классифицируется на горизонтальное и вертикальное направления, но вариант осуществления на фиг. 60 является только примером, в котором направление может быть классифицировано различными путями, так что могут быть сконфигурированы N или более (N - целое число от 1 или более) списков интра-предсказания.
[00568] Фиг. 61 иллюстрирует способ различения направления при конфигурировании N или более списков интра-предсказания. Фиг. 61(a) иллюстрирует пример способа различения двух направлений, и фиг. 61(b) иллюстрирует пример способа различения четырех направлений.
[00569] Фиг. 62 представляет собой схему, иллюстрирующую структуру кодера и декодера, которая дополняет список режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00570] Схема устройства на фиг. 62 может иметь генератор списка режимов интра-предсказания, добавленный к схемам устройств на фиг. 1 и 2. Генератор списка режимов интра-предсказания может конфигурировать список режимов интра-предсказания, чтобы уменьшить количество битов сигнализации режима интра-предсказания, используемых для интра-предсказания. Кроме того, кодер или декодер может использовать способ использования компонента списка режимов интра-предсказания в качестве кандидата MPM без сигнализации индекса списка режимов интра-предсказания.
[00571] Фиг. 63 представляет собой диаграмму, иллюстрирующую способ дополнения списка режимов интра-предсказания в соответствии с одним вариантом осуществления настоящего изобретения.
[00572] Фиг. 63 показывает пример способа конфигурирования списка режимов интра-предсказания в кодере и декодере. Фиг. 63(a) показывает блок-схему последовательности операций, в которой кодер конфигурирует список режимов интра-предсказания. Когда режим интра-предсказания текущего блока определяется в кодере, кодер может добавить определенный режим интра-предсказания в список режимов интра-предсказания. Здесь, когда список режимов интра-предсказания заполнен, режим интра-предсказания может быть добавлен согласно правилу “первым пришел - первым обслужен” (FIFO), которое заменяет первый добавленный компонент новым значением.
[00573] Когда список режимов интра-предсказания заполнен, порядок замены может быть частично изменен, как показано на фиг. 64 с учетом режима интра-предсказания соседнего блока. Со ссылкой на фиг. 64(h), в процессе добавления значения 4 режима интра-предсказания, значение 6 режима интра-предсказания индекса № 0 должно быть заменено на 4 в порядке FIFO. Однако, поскольку значения режимов интра-предсказания смежных левого и верхнего блоков текущего блока равны 5 и 7, соответственно, кодер или декодер заменяет режим интра-предсказания 34, имеющий наибольшее отличие от среднего значения 6 значений 5 и 7 режима интра-предсказания в списке режимов интра-предсказания, на значение 4 режима интра-предсказания, тем самым конфигурируя список режимов интра-предсказания, отражающий тенденцию режима предсказания периферийной области текущего блока. Фиг. 64 иллюстрирует пример способа изменения порядка подстановки, в котором критерии для изменения порядка подстановки могут определяться не только средним значением режимов интра-предсказания соседних блоков, но также средним значением соседних блоков несмежных текущих блоков, как показано на фиг. 64. Кроме того, режим интра-предсказания соседнего блока может использоваться как опора для изменения порядка замены. Кроме того, по меньшей мере одно из статистических значений, такое как взвешенная сумма, средневзвешенное значение, медианное значение, минимальное значение, максимальное значение и т.д., в дополнение к среднему значению, может использоваться для определения критериев для изменения порядка подстановки.
[00574] Фиг. 63(b) показывает блок-схему последовательности операций, в которой декодер конфигурирует список режимов интра-предсказания. Декодер может декодировать режим предсказания, сигнализированный из кодера, и добавлять его в качестве компонента списка режимов интра-предсказания. Когда список режимов интра-предсказания заполнен, режим интра-предсказания может быть добавлен в соответствии с правилом “первым пришел - первым обслужен” (FIFO), которое заменяет первый добавленный компонент новым значением, как в кодере.
[00575] Когда список режимов интра-предсказания заполнен, порядок подстановки может быть частично изменен с учетом режима интра-предсказания соседнего блока.
[00576] Фиг. 65 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к MPM в соответствии с вариантом осуществления настоящего изобретения.
[00577] Фиг. 65 показывает пример способа обращения к списку режимов интра-предсказания при конфигурировании списка MPM в кодере и декодере. Фиг. 65(a) показывает пример способа выведения всех или некоторых компонентов MPM из списка режимов интра-предсказания. При использовании схемы 3 MPM для конфигурирования списка MPM с использованием трех MPM, кодер или декодер может вывести режим интра-предсказания из верхнего и левого смежных блоков.
[00578] Здесь, когда режимы интра-предсказания двух соседних блоков одинаковы, компонент списка MPM конфигурируется через режим интра-предсказания соседнего блока, и один или два компонента из оставшихся двух компонентов могут быть определены с использованием компонентов в списке режимов интра-предсказания. Кроме того, даже когда режимы интра-предсказания двух смежных блоков различны, другой режим интра-предсказания может быть определен с использованием компонентов списка режимов интра-предсказания. Аналогичным образом, даже при конфигурировании списка MPM, составляющего шесть MPM, частичные кандидаты списка MPM могут быть определены через список кандидатов режима интра-предсказания.
[00579] Кроме того, как показано на фиг. 65(b), когда режим интра-предсказания не может быть выведен из соседнего блока текущего блока, список MPM может быть сконфигурирован с использованием компонентов списка режимов интра-предсказания. Хотя вышеприведенное описание описывает, что некоторые условия конфигурации MPM применимы к варианту осуществления настоящего изобретения, этот метод не означает, что настоящее изобретение ограничено только 3 MPM и 6 MPM. Чтобы сконфигурировать различные типы списков MPM, можно использовать список режимов интра-предсказания в соответствии с настоящим изобретением.
[00580] Фиг. 66 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM в соответствии с вариантом осуществления настоящего изобретения.
[00581] Фиг. 66 показывает пример способа обращения к списку интра-предсказания в кодере в случае не-MPM. Кодер может проверить, включен ли текущий режим интра-предсказания в список MPM. Когда текущий режим интра-предсказания включен в список MPM, кодер кодирует флаг MPM и индекс MPM и передает их декодеру, и процесс кодирования для режима интра-предсказания может быть завершен.
[00582] Когда кодер работает в режиме не-MPM, флаг MPM может быть закодирован в 0 и сигнализирован в декодер. Когда текущий режим интра-предсказания отсутствует в списке MPM, кодер может определить, существует ли текущий режим интра-предсказания в списке режимов интра-предсказания, и может сигнализировать идентификатор (или флаг, индекс и т.д.), указывающий, следует ли обращаться к списку режимов интра-предсказания.
[00583] Когда текущий режим интра-предсказания находится в списке режимов интра-предсказания, кодер может кодировать идентификатор, указывающий, следует ли обращаться к списку режимов интра-предсказания, в первое значение (например, “1”), и кодировать индекс списка режима интра-предсказания, который соответствует текущему режиму интра-предсказания, чтобы сигнализировать это декодеру.
[00584] Когда текущий режим интра-предсказания не находится в списке режимов интра-предсказания, кодер может кодировать идентификатор, указывающий, следует ли обращаться к списку режимов интра-предсказания, во второе значение (например, “0”), чтобы сигнализировать это декодеру, и кодировать текущий режим интра-предсказания, чтобы сигнализировать его декодеру.
[00585] На фиг. 66, поскольку определяется, следует ли выбирать список режимов интра-предсказания для режима, не выбранного в MPM, при работе в режиме не-MPM, ситуация, в которой режим интра-предсказания, присутствующий в списке MPM, является режимом предсказания текущего блока, не возникает. Поэтому, в случае режима не-MPM в соответствии с настоящим изобретением, список режимов интра-предсказания может быть сконфигурирован с использованием режима, исключающего компоненты MPM.
[00586] В режиме кодирования не-MPM, кодирование режима может выполняться для остальных режимов, за исключением кандидата MPM. Например, в случае, когда 67 режимов используются в режиме интра-предсказания и используется 3 MPM, когда кодер или декодер работает в режиме не-MPM, кодирование может выполняться для 64 режимов, за исключением трех режимов, составляющих MPM, из 67 режимов интра-предсказания. В соответствии с настоящим изобретением, когда кодер или декодер имеет N режимов предсказания, используя n1 (n1 - натуральное число) кандидатов MPM и используя режим предсказания, выведенный из n2 (n2 - натуральное число) списков режимов интра-предсказания, кодер может выполнять кодирование CABAC в N-n1-n2 режимах.
[00587] В режиме не-MPM, кодер может использовать список режимов интра-предсказания даже в способе выбранного режима. Выбранный режим представляет собой способ, используемый в режиме не-MPM, и способ кодирования, который различает n (n - натуральное число) выбранных режимов и N-n невыбранных режимов, чтобы распределять меньше битов выбранному режиму, для N режимов (N - натуральное число), которые могут появляться в режиме не-MPM,
[00588] При использовании списка режимов интра-предсказания, компонент списка режимов интра-предсказания может быть добавлен к способу выбранного режима. Здесь, поскольку частота выбора выбранного режима может быть увеличена без дополнительной передачи флага выбора списка режима интра-предсказания, эффективность кодирования может быть увеличена. Альтернативно, кодер или декодер может конфигурировать список режимов интра-предсказания в режимах, которые не являются кратными a, так что компонент списка режимов интра-предсказания не перекрывается с выбранным режимом, тем самым минимизируя появление оставшихся режимов.
[00589] Фиг. 67 представляет собой диаграмму, иллюстрирующую способ применения списка режимов интра-предсказания к режиму не-MPM декодером в соответствии с вариантом осуществления настоящего изобретения.
[00590] Фиг. 67 показывает пример способа обращения к списку интра-предсказания декодером в случае режима не-MPM. Декодер может принимать и декодировать флаг MPM для идентификации, применять ли MPM, переданный из кодера. Когда флаг MPM равен 1, индекс MPM может декодироваться для восстановления режима интра-предсказания из списка MPM и для завершения процесса восстановления режима интра-предсказания.
[00591] В случае режима не-MPM, в котором флаг MPM равен 0, в соответствии с настоящим изобретением, декодер может декодировать флаг обращения к списку режимов интра-предсказания. Когда флаг обращения к списку режимов интра-предсказания равен 1, декодер может декодировать индекс списка режимов интра-предсказания, восстановить режим интра-предсказания через индекс списка режимов интра-предсказания и завершить процесс восстановления режима интра-предсказания.
[00592] Когда флаг обращения к списку режимов интра-предсказания равен 0, текущий режим интра-предсказания может быть декодирован через CABAC. Здесь операции декодера могут заменяться друг на друга в случаях, когда флаг MPM равен 1 и 0. Кроме того, операции декодера могут заменяться друг на друга в случаях, когда флаг обращения к списку режимов интра-предсказания равен 1 и 0.
[00593] На фиг. 67, поскольку список режимов интра-предсказания выбран для режима, не выбранного в MPM, при задействовании режима не-MPM, отсутствует случай, когда режим интра-предсказания, присутствующий в списке MPM, тот же самый, что и режим предсказания текущего блока. Поэтому, в случае режима не-MPM в соответствии с настоящим изобретением, список режимов интра-предсказания может конфигурироваться с использованием режима, за исключением компонентов MPM.
[00594] Декодирование режима для не-MPM должно выполняться таким же образом, как в случае кодера. Поэтому, способ конфигурирования списка режимов интра-предсказания и выбранного режима декодера, который связан с выбранным режимом и невыбранным режимом, может выполняться тем же способом, что и в вышеописанном кодере. К списку режимов интра-предсказания также можно обращаться и использовать его в режимах интра-предсказания иных, чем MPM, выбранный режим и невыбранный режим.
[00595] Фиг. 68 представляет собой диаграмму, иллюстрирующую способ кодирования/декодирования изображения с использованием списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00596] Чтобы сконфигурировать список режимов интра-предсказания, кодер или декодер может вычислить затраты для каждого режима предсказания. Фиг. 68(a) иллюстрирует блок-схему последовательности операций способа конфигурирования списка режимов интра-предсказания кодером, и фиг. 68(b) иллюстрирует блок-схему последовательности операций способа конфигурирования списка режимов интра-предсказания декодером. Как показано на фиг. 68(a), когда режим интра-предсказания определен, кодер может обновить затраты для соответствующего режима интра-предсказания. Здесь, затраты могут быть значением, выведенным с использованием частоты появления или остаточного сигнала каждого режима интра-предсказания. Затраты могут быть сконфигурированы в форме списка или т.п. и может использоваться в качестве информации для конфигурирования списка режимов интра-предсказания.
[00597] В соответствии с настоящим изобретением, когда список режимов интра-предсказания сконфигурирован на основе затрат каждого режима предсказания, и тот же режим интра-предсказания, что и режим предсказания текущего блока, находится в списке режимов интра-предсказания, кодер может не сигнализировать непосредственно режим интра-предсказания, а сигнализировать индекс списка режимов интра-предсказания. Декодер конфигурирует список режимов интра-предсказания таким же образом, как и кодер, на основе информации, сигнализированной от кодера, и использует список режимов интра-предсказания в качестве опорной информации для восстановления режима предсказания, как показано на фиг. 68(b). Список режимов интра-предсказания может использоваться в качестве опорной информации в различных способах предсказания, связанных с сигнализацией режима интра-предсказания.
[00598] Фиг. 69 представляет собой вид, иллюстрирующий способ конфигурирования списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00599] В способе конфигурирования списка режимов интра-предсказания на основе затрат каждого режима интра-предсказания, пример способа вычисления затрат проиллюстрирован на фиг. 69. Затраты могут быть вычислены с использованием по меньшей мере одного из счета, соответствующего частоте появления, или остаточного сигнала после предсказания. Фиг. 69(a) иллюстрирует способ конфигурирования списка режимов интра-предсказания на основе счета, который является частотой появления каждого режима предсказания, и фиг. 69(b) иллюстрирует способ вычисления как счета, так и остаточного сигнала и конфигурирования списка режимов интра-предсказания на основе среднего остаточных сигналов для каждого режима предсказания.
[00600] Поскольку режим предсказания, который часто встречается при интра-предсказании, с большей вероятностью будет использоваться повторно, список режимов интра-предсказания может быть сконфигурирован путем предоставления приоритета режиму предсказания, имеющему высокий счет, согласно фиг. 69(а).
[00601] Между тем, поскольку во время выполнения интра-предсказания генерируется менее точный остаточный сигнал, выполняется более точное предсказание, список режимов интра-предсказания может быть сконфигурирован путем предоставления приоритета режиму предсказания, имеющему низкое среднее значение остаточных сигналов, согласно фиг. 69(b).
[00602] Затраты, используемые в способе конфигурирования списка режимов интра-предсказания, может быть вычислена согласно всем критериям, которые могут конфигурировать список режимов интра-предсказания, таких как способ проверки частоты появления каждого режима предсказания для соседних областей текущего блока.
[00603] Фиг. 70 и 71 представляют собой диаграммы, иллюстрирующие способ кодирования/декодирования в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[00604] Список режимов интра-предсказания может не конфигурироваться отдельно, как в приведенном выше примере, но также может конфигурироваться способом прямого обращения к затратам, вычисленным для каждого режима предсказания. В этом случае, блок-схема последовательности операций такова, как показано на фиг. 70. В соответствии с другим вариантом осуществления настоящего изобретения, как показано на фиг. 71, список режимов интра-предсказания может конфигурироваться без измерения затрат. В этом случае, список режимов интра-предсказания может адаптивно конфигурироваться с использованием режима интра-предсказания соседнего блока, смежного с текущим блоком.
[00605] Фиг. 72 представляет собой диаграмму, иллюстрирующую способ инициализации списка интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00606] Список режимов интра-предсказания не может формироваться, пока не будет выполнено внутри-картинное предсказание. Соответственно, кодер или декодер может присвоить начальное значение списку режимов интра-предсказания. Фиг. 72 показывает пример инициализированного списка режимов интра-предсказания. Кодер или декодер может предпочтительно назначать низкий индекс режиму, который используется в большинстве случаев статистически для списка режимов интра-предсказания.
[00607] На фиг. 72, PLANAR_IDX означает номер планарного режима для интра-предсказания, DC_IDX означает номер режима DC для DC-предсказания, и VER_IDX является номером режима для направленного интра-предсказания в вертикальном направлении, а HOR_IDX означает номер режима для направленного интра-предсказания в горизонтальном направлении. Статистически, когда PLANAR_IDX, DC_IDX, VER_IDX и HOR_IDX встречаются часто, в примере на фиг. 72, кодер или декодер может назначать индексы от 0 до 3 для PLANAR_IDX, DC_IDX, VER_IDX и HOR_IDX. Затем кодер или декодер может последовательно добавлять режимы, путем суммирования и вычитания значений смещения к/от направленным(ых) режимам(ов) VER_IDX и HOR_IDX, в список режимов интра-предсказания. В примере на фиг. 72, смещение 1 и смещение 2 соответствуют значениям смещения, и, по мере увеличения индекса в списке, значение смещения может увеличиваться.
[00608] То есть на фиг. 72, смещение 2 > смещение 1. Таким образом, кодер или декодер может инициализировать список режимов интра-предсказания, используя режим интра-предсказания, статистически имеющий высокую частоту появления. Режим направленного предсказания, имеющий малое отличие от режима интра-предсказания, имеющего высокую частоту появления, может быть установлен как начальное значение, при этом возможность обращения к списку режимов интра-предсказания может быть увеличена.
[00609] Кроме того, в качестве примера, смещение 2 может быть определено путем добавления или вычитания заранее определенного значения к/от значению(я) смещения 1. В примере на фиг. 72, VER_IDX и HOR_IDX установлены как направленные режимы добавления или вычитания смещения. Однако это является значением, определенным произвольно для удобства описания, и это значение может варьироваться в зависимости от ситуации кодирования/декодирования. Кроме того, в качестве способа определения направленного режима, установленного в качестве значения инициализации, может применяться способ использования первого номера режима направленного интра-предсказания, определенного как режим предсказания.
[00610] Таблица 1 ниже представляет собой таблицу, показывающую биты представления, которые могут указывать режим интра-предсказания при интра-предсказании.
[00611] [Таблица 1]
[00612]
(35 режимов)
(67 режимов)
[00613] В соответствии с таблицей 1, 1 бит может быть выделен для флага MPM, и 2 бита могут быть выделены для представления трех режимов MPM. В качестве битов представления для режима не-MPM, пять битов могут использоваться при распределении 32 режимов, и шесть битов могут использоваться при распределении 64 режимов.
[00614] Таблица 2 ниже представляет собой таблицу, показывающую пример бита представления режима интра-предсказания в соответствии с настоящим изобретением.
[00615] [Таблица 2]
[00616]
(35 режимов)
(67 режимов)
[00617] В варианте осуществления 1, использующем 35 режимов, длина списка режимов интра-предсказания может быть установлена равной четырем, и в варианте осуществления 2, использующем 67 режимов, длина списка режимов интра-предсказания может быть установлена равной восьми.
[00618] Для удобства описания ниже, список режимов интра-предсказания определяется как список интра-режимов, флаг, указывающий, выбран ли список режимов интра-предсказания, - как флаг списка интра-режимов, и режим списка режимов интра-предсказания - как режимы списка интра-режимов.
[00619] В Варианте осуществления 1, 1 бит может быть выделен флагу списка интра-режимов, и 2 бита могут быть выделены для представления четырех режимов, включенных в список режимов интра-предсказания. Пять битов могут быть выделены как биты для представления оставшихся режимов интра-предсказания, не включенных в список режимов интра-предсказания. В примере 1 таблицы 1, 5 битов постоянно выделены для режима, в котором не выбран MPM. Однако когда используется список режимов интра-предсказания, режим интра-предсказания может быть закодирован с использованием 3 битов, включая флаг, тем самым повышая эффективность кодирования.
[00620] Аналогично, в варианте осуществления 2, 1 бит может быть выделен для флага списка интра-режимов, и 3 бита могут быть выделены для представления 8 режимов, включенных в список режимов интра-предсказания. Шесть битов могут быть выделены как биты для представления оставшихся режимов интра-предсказания, не включенных в список режимов интра-предсказания. В примере 2 таблицы 1, 6 битов постоянно выделены для режима, в котором не выбран MPM. Однако когда используется список режимов интра-предсказания, режиму интра-предсказания может быть выделено 4 бита, включая флаг, тем самым повышая эффективность кодирования.
[00621] В таблице 3 показан пример битов представления режима интра-предсказания, в котором количество режимов предсказания MPM сокращено, и размер списка режимов предсказания с внутренним кодированием увеличен по сравнению с таблицей 2. Например, размер списка MPM и размер списка режимов интра-предсказания в кодере и декодере, к которому добавлен список режимов интра-предсказания, может быть установлен по-разному.
[00622] [Таблица 3]
[00623]
(35 режимов)
(67 режимов)
[00624] Таблица 4 ниже является таблицей, показывающей биты представления режима интра-предсказания, которые могут использоваться при использовании множества списков режимов интра-предсказания.
[00625] [Таблица 4]
[00626]
(35 режимов)
(67 режимов)
[00627] В первом варианте осуществления, список режимов интра-предсказания может иметь всего четыре списка для каждого направления, каждая длина равна четырем, и множество списков режимов интра-предсказания может кодировать всего 16 режимов. В этом случае, кодер или декодер может выбрать один список из множества списков режимов интра-предсказания на основе направления MPM или соседнего блока и установить флаг списка внутреннего режима в 1.
[00628] Аналогично, в варианте осуществления 2, список режимов интра-предсказания может иметь всего четыре списка для каждого направления, каждая длина равна восьми, а список режимов интра-предсказания может указывать всего 32 режима. Аналогично, кодер или декодер может выбрать один список из множества списков интра-предсказания на основе направления MPM или соседнего блока и установить флаг списка интра-режимов как 1.
[00629] Таблица 5 показывает метод кодирования режима интра-предсказания, включая выбранный режим и невыбранный режим.
[00630][Таблица 5]
[00631]
[00632] Таблица 5 показывает метод кодирования режима интра-предсказания, включая выбранный режим и невыбранный режим. В способе кодирования, показанном в таблице 5, выбранные режимы могут быть реализованы с использованием списка режимов интра-предсказания для повышения избирательности. Кроме того, бит представления может быть сокращен применением способа, использующего список режимов интра-предсказания, к невыбранным режимам или применением только невыбранных режимов к режиму интра-предсказания, не включенному в список режимов интра-предсказания.
[00633] Фиг. 73 представляет собой диаграмму, иллюстрирующую синтаксис списка режимов интра-предсказания в соответствии с вариантом осуществления настоящего изобретения.
[00634] Фиг. 73 показывает пример конфигурации синтаксиса, включая информацию списка режимов интра-предсказания. Декодер в соответствии с настоящим изобретением может сигнализировать Intra_mode_list_flag, выбран ли список режимов интра-предсказания для режимов, не включенных в MPM. Когда Intra_mode_list_flag равен 1, декодер может восстановить режим интра-предсказания путем сигнализации Intra_mode_list_index, который является индексом в списке режимов интра-предсказания.
[00635]
[00636] Вышеупомянутые варианты осуществления могут выполняться одним и тем же способом в кодере и декодере.
[00637] По меньшей мере один или комбинация вышеупомянутых вариантов осуществления могут использоваться для кодирования/декодирования видео.
[00638] Последовательность применения к вышеуказанному варианту осуществления может быть разной для кодера и декодера, или последовательность, применяемая к вышеуказанному варианту осуществления, может быть одинаковой в кодере и декодере.
[00639] Вышеупомянутый вариант осуществления может выполняться для каждого сигнала яркости и сигнала цветности, или указанный выше вариант осуществления может идентично выполняться для сигналов яркости и цветности.
[00640] Форма блока, к которой применяются вышеупомянутые варианты осуществления настоящего изобретения, может быть квадратной или неквадратной формой.
[00641] Вышеупомянутый вариант осуществления настоящего изобретения может применяться в зависимости от размера по меньшей мере одного из блока кодирования, блока предсказания, блока преобразования, блока, текущего блока, единицы кодирования, единицы предсказания, единицы преобразования, единицы и текущей единицы. Здесь размер может быть определен как минимальный размер или максимальный размер, или и то, и другое, чтобы применять вышеупомянутые варианты осуществления, или может быть определен как фиксированный размер, к которому применяется вышеупомянутый вариант осуществления. Кроме того, в вышеупомянутых вариантах осуществления, первый вариант осуществления может применяться к первому размеру, и второй вариант осуществления может применяться ко второму размеру. Другими словами, вышеуказанные варианты осуществления могут применяться в комбинации в зависимости от размера. Кроме того, вышеупомянутые варианты осуществления могут применяться, когда размер равен или больше минимального размера и равен или меньше максимального размера. Другими словами, вышеупомянутые варианты осуществления могут применяться, когда размер блока входит в определенный диапазон.
[00642] Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 8×8 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока составляет 4×4 или больше. Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 16×16 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока равен или больше 16×16 и равен или меньше 64×64.
[00643] Вышеупомянутые варианты осуществления настоящего изобретения могут применяться в зависимости от временного уровня. Чтобы идентифицировать временной уровень, к которому могут применяться вышеупомянутые варианты осуществления, может сигнализироваться соответствующий идентификатор, и вышеупомянутые варианты осуществления могут применяться к указанному временному уровню, идентифицированному соответствующим идентификатором. Здесь, идентификатор может быть определен как самый низкий уровень или самый высокий уровень, или оба, к которым может применяться вышеупомянутый вариант осуществления, или может быть определен для указания конкретного уровня, к которому применяется этот вариант осуществления. Кроме того, может быть определен фиксированный временной уровень, к которому применяется вариант осуществления.
[00644] Например, описанные выше варианты осуществления могут применяться, когда временной уровень текущего изображения является самым низким уровнем. Например, вышеупомянутые варианты осуществления могут применяться, когда идентификатор временного уровня текущего изображения равен 1. Например, вышеупомянутые варианты осуществления могут применяться, когда временной уровень текущего изображения является наивысшим уровнем.
[00645] Тип слайса или тип группы мозаичных элементов, к которым применяются вышеприведенные варианты осуществления настоящего изобретения, может быть определен, и вышеупомянутые варианты осуществления могут применяться в зависимости от соответствующего типа слайса или типа группы мозаичных элементов.
[00646] В вышеописанных вариантах осуществления, способы описаны на основе блок-схем последовательности операций с последовательностью этапов или модулей, но настоящее изобретение не ограничивается порядком этапов, и, скорее, некоторые этапы могут выполняться одновременно или в другом порядке с другими этапами. Кроме того, специалисту в данной области техники должно быть понятно, что этапы в блок-схемах последовательностей операций не исключают друг друга и что другие этапы могут быть добавлены к блок-схемам последовательностей операций, или некоторые из этапов могут быть удалены из блок-схем последовательностей операций, не влияя на объем настоящего изобретения.
[00647] Варианты осуществления включают различные аспекты примеров. Все возможные комбинации для различных аспектов могут быть не описаны, но специалисты в данной области техники смогут распознать различные комбинации. Соответственно, настоящее изобретение может включать все замены, модификации и изменения в пределах объема формулы изобретения.
[00648] Варианты осуществления настоящего изобретения могут быть реализованы в форме программных инструкций, которые исполняются различными компьютерными компонентами и записываются на считываемый компьютером носитель записи. Считываемый компьютером носитель записи может включать в себя отдельно или в комбинации программные инструкции, файлы данных, структуры данных и т.д. Программные инструкции, записанные на считываемом компьютером носителе записи, могут быть специально разработаны и сконструированы для настоящего изобретения или хорошо известны специалисту в области компьютерных программных технологий. Примеры считываемого компьютером носителя записи включают в себя магнитные носители записи, такие как жесткие диски, гибкие диски и магнитные ленты; оптические носители данных, такие как CD-ROM или DVD-ROM; магнитооптические носители, такие как флоптические диски; и аппаратные устройства, такие как постоянная память (ROM), память с произвольным доступом (RAM), флэш-память и т.д., которые конкретно структурированы для хранения и реализации программной инструкции. Примеры программных инструкций включают в себя не только механический код языка, форматируемый компилятором, но высокоуровневый код языка, который может быть реализован компьютером с использованием интерпретатора. Аппаратные устройства могут быть сконфигурированы для работы с одним или несколькими программными модулями или, наоборот, для выполнения процессов в соответствии с настоящим изобретением.
[00649] Хотя настоящее изобретение было описано в терминах специфических объектов, таких как детальные элементы, а также ограниченные варианты осуществления и чертежи, они предоставлены только для облегчения более общего понимания изобретения, и настоящее изобретение не ограничивается приведенными выше вариантами осуществления. Специалистам в области техники, к которой относится настоящее изобретение, будет понятно, что на основе приведенного выше описания могут быть сделаны различные модификации и изменения.
[00650] Поэтому сущность настоящего изобретения не должна ограничиваться описанными выше вариантами осуществления, и весь объем прилагаемой формулы изобретения и ее эквивалентов будет находиться в пределах объема и сущности изобретения.
Промышленная применимость
[00651] Настоящее изобретение может быть использовано для кодирования или декодирования изображения.
Изобретение относится к способу и устройству для кодирования/декодирования изображения и носителю записи, хранящему битовый поток, на основе списка кандидатов и списка режимов интра-предсказания. Технический результат заключается в повышении эффективности сжатия. Предложен способ кодирования/декодирования изображения, который содержит выведение первого списка кандидатов текущего блока с использованием информации движения соседнего блока текущего блока, чтобы вывести первый список кандидатов для текущего блока, выведение второго списка кандидатов для текущего блока с использованием ранее восстановленной информации движения, выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов и генерирование блока предсказания для текущего блока с использованием третьего списка кандидатов. 3 н. и 11 з.п. ф-лы, 73 ил., 5 табл.
1. Способ декодирования изображения, причем способ содержит:
выведение первого списка кандидатов текущего блока с использованием информации движения множества соседних блоков текущего блока, чтобы вывести первый список кандидатов для текущего блока;
выведение второго списка кандидатов для текущего блока с использованием ранее восстановленной информации движения;
выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов; и
генерирование блока предсказания для текущего блока с использованием третьего списка кандидатов, при этом
упомянутое множество соседних блоков включает в себя пространственно соседний блок и соседний по времени блок, и
когда та же самая информация движения, что и ранее восстановленная информация движения, уже включена во второй список кандидатов, ту же самую информацию движения удаляют из второго списка кандидатов и ранее восстановленную информацию движения добавляют к последнему положению индекса второго списка кандидатов.
2. Способ по п. 1, причем выведение второго списка кандидатов включает в себя:
добавление ранее восстановленной информации движения во второй список кандидатов,
причем ранее восстановленная информация движения представляет собой информацию движения блока кодирования, декодированного непосредственно перед декодированием текущего блока.
3. Способ по п. 2, дополнительно содержащий:
инициализацию второго списка кандидатов,
причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).
4. Способ по п. 2, дополнительно содержащий:
когда число частей информации движения, включенной во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенной во второй список кандидатов.
5. Способ по п. 2, причем максимальное число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.
6. Способ по п. 1, дополнительно содержащий:
выведение средней информации движения путем вычисления среднего значения множества частей информации движения, включенной в третий список кандидатов; и
добавление средней информации движения в третий список кандидатов.
7. Способ по п. 1, в котором дополнительно:
первый блок предсказания и второй блок предсказания генерируются с использованием третьего списка кандидатов,
блок предсказания для текущего блока генерируется на основе первого блока предсказания и второго блока предсказания,
первая частичная область блока предсказания для текущего блока генерируется на основе первого блока предсказания, и
вторая частичная область блока предсказания для текущего блока генерируется на основе второго блока предсказания.
8. Способ по п. 1, причем третий список кандидатов используется для генерирования блока предсказания внутриблочного копирования (IBC) для текущего блока.
9. Способ кодирования изображения, причем способ содержит:
определение информации движения текущего блока;
выведение первого списка кандидатов для текущего блока с использованием информации движения множества соседних блоков текущего блока;
выведение второго списка кандидатов для текущего блока с использованием ранее кодированной информации движения; и
выведение третьего списка кандидатов с использованием первого списка кандидатов и второго списка кандидатов, при этом
упомянутое множество соседних блоков включает в себя пространственно соседний блок и соседний по времени блок, и
когда та же самая информация движения, что и ранее восстановленная информация движения, уже включена во второй список кандидатов, ту же самую информацию движения удаляют из второго списка кандидатов и ранее восстановленную информацию движения добавляют к последнему положению индекса второго списка кандидатов.
10. Способ по п. 9, причем выведение второго списка кандидатов включает в себя:
добавление ранее кодированной информации движения во второй список кандидатов,
причем ранее кодированная информация движения представляет собой информацию движения блока кодирования, кодированного непосредственно перед кодированием текущего блока.
11. Способ по п. 10, дополнительно содержащий:
инициализацию второго списка кандидатов,
причем второй список кандидатов инициализируется на основе границы строки единицы дерева кодирования (CTU).
12. Способ по п. 10, дополнительно содержащий:
когда число частей информации движения, включенной во второй список кандидатов, является предопределенным значением, удаление информации движения, включенной во второй список кандидатов первой среди частей информации движения, включенной во второй список кандидатов.
13. Способ по п. 10, причем число частей информации движения, которая может быть включена во второй список кандидатов, является предопределенным.
14. Считываемый компьютером носитель записи, хранящий битовый поток, который принимается устройством декодирования изображения и используется для восстановления текущего блока, включенного в текущую картинку,
причем битовый поток включает в себя информацию о предсказании текущего блока,
информация о предсказании используется, чтобы вывести первый список кандидатов для текущего блока с использованием информации движения множества соседних блоков текущего блока,
информация о предсказании используется, чтобы вывести второй список кандидатов для текущего блока с использованием ранее восстановленной информации движения,
первый список кандидатов и второй список кандидатов используются, чтобы вывести третий список кандидатов, используемый для генерации блока предсказания для текущего блока,
упомянутое множество соседних блоков включает в себя пространственно соседний блок и соседний по времени блок, и
когда та же самая информация движения, что и ранее восстановленная информация движения, уже включена во второй список кандидатов, ту же самую информацию движения удаляют из второго списка кандидатов и ранее восстановленную информацию движения добавляют к последнему положению индекса второго списка кандидатов.
US 2017318312 A1, 02.11.2017 | |||
US 2017188044 A1, 29.06.2017 | |||
LI ZHANG et al., CE4-related: History-based Motion Vector Prediction, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET- K0104-v4, 11th Meeting, Ljubljana, 10-18 July 2018 | |||
US 2009220005 A1, 03.09.2009 | |||
US 2017054996 A1, 23.02.2017 | |||
СПОСОБ И УСТРОЙСТВО ДЛЯ СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ СПИСКА КАНДИДАТОВ | 2012 |
|
RU2632155C1 |
Авторы
Даты
2022-04-11—Публикация
2019-07-16—Подача