СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И НОСИТЕЛЬ ЗАПИСИ, ХРАНЯЩИЙ БИТОВЫЙ ПОТОК
METHOD AND APPARATUS FOR ENCODING/DECODING AN IMAGE AND RECORD MEDIUM STORING A BITSTREAM

Область техники
[0001] Настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения и носителю записи для хранения битового потока. Более конкретно, настоящее изобретение относится к способу и устройству для кодирования/декодирования изображения, которые используют список информации движения, хранящий предварительно восстановленную информацию движения.
Предшествующий уровень техники
[0002] В последнее время, потребности в изображениях высокого разрешения и высокого качества, таких как изображения высокой четкости (HD) и изображения ультравысокой четкости (UHD), возросли в различных областях применения. По мере повышения разрешения и качества данных изображения, объемы данных возрастают по сравнению с данными обычного изображения. Поэтому при передаче данных изображения с использованием носителя, такого как традиционный проводной/беспроводной широкополосный канал, или при хранении с использованием известного носителя хранения, затраты на передачу и хранение увеличиваются. Чтобы решить эти проблемы, вызванные повышением разрешения и качества данных изображения, требуется высокоэффективный метод кодирования/декодирования изображения для изображения, имеющего высокое разрешение и качество.
[0003] В качестве метода сжатия изображения, существуют различные методы, такие как метод интер-предсказания для предсказания пиксельных значений, включенных в текущую картинку, из картинки перед или после текущей картинки; метод интра-предсказания для предсказания пиксельных значений, включенных в текущую картинку, с использованием пиксельной информации в текущей картинке; метод преобразования и квантования для сжатия энергии остаточного сигнала и метод энтропийного кодирования для выделения короткого кода значению с высокой частотой появления и длинного кода значению с низкой частотой появления. Такие технологии сжатия изображения могут быть использованы, чтобы эффективно сжимать и передавать или сохранять данные изображения.
Раскрытие
Техническая задача
[0004] Задачей настоящего изобретения является обеспечить способ и устройство для кодирования и декодирования изображения и носитель записи, хранящий битовый поток, которые повышают эффективность сжатия с использованием списка информации движения, хранящего предварительно восстановленную информацию движения.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
[0005] Способ декодирования изображения в соответствии с вариантом осуществления настоящего изобретения, способ может содержать генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком, выведение информации движения текущего блока с использованием списка кандидатов, генерирование блока предсказания текущего блока с использованием выведенной информации движения, обновление выведенной информации движения в списке информации движения, причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну из информации движения, включенной в обновленный список информации движения в блоке, который декодируется перед текущим блоком.
[0006] В способе декодирования изображения в соответствии с настоящим изобретением, список информации движения инициализируется, когда декодирование предопределенной области завершено, так что область изменяется.
[0007] В способе декодирования изображения в соответствии с настоящим изобретением, предопределенная область представляет собой любое одно из блока, составленного из одной или более единиц кодирования (CU), или блока, состоящего из одной или более единиц дерева кодирования (CTU).
[0008] В способе декодирования изображения в соответствии с настоящим изобретением, когда существует множество информаций движения в обновленном списке информации движения в блоке, декодированном перед текущим блоком, генерирование списка кандидатов выполняется таким образом, чтобы включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.
[0009] В способе декодирования изображения в соответствии с настоящим изобретением, когда информация движения обновленного списка информации движения в блоке, декодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, генерирование списка кандидатов выполняется таким образом, чтобы не включать информацию движения списка информации движения в список кандидатов.
[0010] В способе декодирования изображения в соответствии с настоящим изобретением, когда текущий блок представляет собой режим предсказания IBC и список кандидатов представляет собой совместно используемый список слияния, обновление выведенной информации движения в списке информации движения опускается.
[0011] В способе декодирования изображения в соответствии с настоящим изобретением, список информации движения имеет ограничение предопределенного размера.
[0012] В способе декодирования изображения в соответствии с настоящим изобретением, когда количество информации движения, сохраненной в списке информации движения, представляет собой предопределенное значение, обновление выведенной информации движения в списке информации движения включает в себя удаление информации движения, сохраненной первой в списке информации движения, и сохранение выведенной информации движения.
[0013] Способ кодирования изображение в соответствии с вариантом осуществления настоящего изобретения, причем способ может содержать генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком, выведение информации движения текущего блока с использованием списка кандидатов, генерирование блока предсказания текущего блока с использованием выведенной информации движения, обновление выведенной информации движения в списке информации движения, и причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну из информации движения, включенной в обновленный список информации движения в блоке, который закодирован перед текущим блоком.
[0014] В способе кодирования изображения в соответствии с настоящим изобретением, список информации движения инициализируется, когда кодирование предопределенной области завершено, так что область изменяется.
[0015] В способе кодирования изображения в соответствии с настоящим изобретением, предопределенная область представляет собой любое одно из блока, состоящего из одной или более единиц кодирования (CU), или блока, состоящего из одной или более единиц дерева кодирования (CTU).
[0016] В способе кодирования изображения в соответствии с настоящим изобретением, когда существует множество информаций движения в обновленном списке информации движения в блоке, закодированном перед текущим блоком, генерирование списка кандидатов выполняется таким образом, чтобы включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.
[0017] В способе кодирования изображения в соответствии с настоящим изобретением, когда информация движения обновленного списка информации движения в блоке, закодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, генерирование списка кандидатов выполняется таким образом, чтобы не включать информацию движения списка информации движения в список кандидатов.
[0018] В способе кодирования изображения в соответствии с настоящим изобретением, когда текущий блок представляет собой режим предсказания IBC и список кандидатов представляет собой совместно используемый список слияния, обновление выведенной информации движения в списке информации движения опускается.
[0019] В способе кодирования изображения в соответствии с настоящим изобретением, список информации движения имеет ограничение предопределенного размера.
[0020] В способе кодирования изображения в соответствии с настоящим изобретением, когда количество информации движения, хранящейся в списке информации движения, представляет собой предопределенное значение, обновление выведенной информации движения в списке информации движения включает в себя удаление информации движения, сохраненной первой в списке информации движения, и сохранение выведенной информации движения.
[0021] В долговременном считываемом компьютером носителе записи, содержащем битовый поток, декодированный способом декодирования изображения в соответствии с вариантом осуществления настоящего изобретения, способ декодирования изображения может содержать генерирование списка кандидатов, включающего в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком, выведение информации движения текущего блока с использованием списка кандидатов, генерирование блока предсказания текущего блока с использованием выведенной информации движения, обновление выведенной информации движения в списке информации движения, и причем генерирование списка кандидатов выполняется таким образом, чтобы включать по меньшей мере одну информацию из информации движения, включенной в обновленный список информации движения в блоке, декодированном перед текущим блоком.
ПОЛЕЗНЫЕ РЕЗУЛЬТАТЫ
[0022] Настоящее изобретение может обеспечить способ и устройство для кодирования и декодирования изображения и носитель записи, хранящий битовый поток, которые повышают эффективность сжатия с использованием списка информации движения, хранящего предварительно восстановленную информацию движения.
[0023] В соответствии с настоящим изобретением, когда имеется мало информации движения или информация движения отсутствует в списке информации движения, хранящем предварительно восстановленную информацию движения, информация предсказания может храниться в списке информации движения и использоваться, чтобы более точно выполнять интер-предсказание.
[0024] В соответствии с настоящим изобретением, может быть повышена эффективность кодирования и декодирования изображения.
[0025] В соответствии с настоящим изобретением, может быть снижена вычислительная сложность кодера и декодера изображения.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0026] Фиг. 1 представляет собой блок-схему, иллюстрирующую конфигурацию устройства кодирования в соответствии с вариантом осуществления настоящего изобретения.
[0027] Фиг. 2 представляет собой блок-схему, иллюстрирующую конфигурацию устройства декодирования в соответствии с вариантом осуществления настоящего изобретения.
[0028] Фиг. 3 представляет диаграмму, схематично иллюстрирующую структуру разбиения изображения при кодировании и декодировании изображения.
[0029] Фиг. 4 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интра-предсказания.
[0030] Фиг. 5 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интер-предсказания.
[0031] Фиг. 6 представляет собой диаграмму, иллюстрирующую процесс преобразования и квантования.
[0032] Фиг. 7 представляет собой диаграмму, иллюстрирующую опорные выборки, доступные для интра-предсказания.
[0033] Фиг. 8 и 9 представляют собой диаграммы, иллюстрирующие кодер и декодер, использующие список информации движения.
[0034] Фиг. 10 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения в соответствии с настоящим изобретением.
[0035] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения.
[0036] Фиг. 12 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания, в котором предсказание списка информации движения выполняется в момент времени инициализации списка информации движения и момент времени добавления информации движения.
[0037] Фиг. 13 и 14 представляют собой диаграммы, иллюстрирующие кодер и декодер, включающие в себя предсказатель списка информации движения.
[0038] Фиг. 15 представляет собой диаграмму, иллюстрирующую вариант осуществления выполнения сигнализации, включающий в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров последовательности (SPS).
[0039] Фиг. 16 представляет собой диаграмму, иллюстрирующую вариант осуществления выполнения сигнализации, включающий в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров картинки (PPS).
[0040] Фиг. 17 представляет собой диаграмму, иллюстрирующую вариант осуществления выполнения сигнализации, включающий в себя указатель, указывающий, следует ли применить список информации движения к синтаксису заголовка слайса.
[0041] Фиг. 18 представляет собой диаграмму, иллюстрирующую пример предсказания информации движения текущего списка информации движения из области, смежной по времени с текущим блоком.
[0042] Фиг. 19 представляет собой диаграмму, иллюстрирующую пример предсказания информации движения текущего списка информации движения из области, пространственно смежной с текущим блоком кодирования.
[0043] Фиг. 20 представляет собой диаграмму, иллюстрирующую пример способа выполнения предсказания текущего списка информации движения со ссылкой на список информации движения предварительно восстановленной UPU.
[0044] Фиг. 21 представляет собой диаграмму, иллюстрирующую способ выполнения предсказания списка информации движения из информации движения, хранящейся в текущем списке информации движения.
[0045] Фиг. 22 представляет собой диаграмму, иллюстрирующую пример процесса выведения информации движения предсказания путем изменения опорной картинки существующей информации движения и соответственной корректировки вектора движения.
[0046] Фиг. 23 представляет собой диаграмму, иллюстрирующую способ предсказания списка информации движения, который не перекрывается с кандидатом способа предсказания движения.
[0047] Фиг. 24 представляет собой диаграмму, иллюстрирующую вариант осуществления настройки положения, которое является опорным для предсказания списка информации движения в единице CTU, когда положение временного кандидата способа предсказания движения является тем же самым, что и положения C и H на фиг. 23.
[0048] Фиг. 25 и 26 представляют собой диаграммы, иллюстрирующие вариант осуществления способа использования предсказанной информации движения и общей информации движения по отдельности.
[0049] Фиг. 27 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования изображения в соответствии с вариантом осуществления настоящего изобретения.
режим ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
[0050] Множество модификаций может быть выполнено в настоящем изобретении, и имеются различные варианты осуществления настоящего изобретения, примеры которых будут представлены далее и подробно описаны со ссылками на чертежи. Однако настоящее изобретение не ограничено ими, хотя примерные варианты осуществления могут быть истолкованы как включающие все модификации, эквиваленты или замены в техническом принципе и техническом объеме настоящего изобретения. Сходные ссылочные позиции относятся к одинаковым или сходным функциям в различных аспектах. На чертежах, формы и размеры элементов могут быть преувеличены для ясности. В последующем подробном описании настоящего изобретения ссылки даются на приложенные чертежи, которые показывают, для иллюстрации, конкретные варианты осуществления, в которых может быть реализовано настоящее изобретение. Эти варианты осуществления описаны достаточно детально, чтобы позволить специалистам в данной области реализовать настоящее раскрытие. Многочисленные варианты осуществления настоящего раскрытия, хотя и различные, не обязательно являются взаимно исключающими. Например, конкретные признаки, структуры и характеристики, описанные здесь в связи с одним вариантом осуществления, могут быть реализованы в других вариантах осуществления без отклонения от сущности и объема настоящего раскрытия. Кроме того, должно быть понятно, что местоположение или компоновка отдельных элементов в каждом раскрытом варианте осуществления может модифицироваться без отклонения от сущности и объема настоящего раскрытия. Поэтому последующее подробное описание не следует понимать в ограничивающем смысле, и объем настоящего раскрытия определяется только приложенными пунктами формулы изобретения, интерпретируемыми надлежащим образом, вместе с полным диапазоном эквивалентов того, что заявляется в пунктах формулы изобретения.
[0051] Используемые в спецификации термины ‘первый’, ‘второй’ и т.д. могут использоваться для описания различных компонентов, но компоненты не должны подразумеваться ограниченными этими терминами. Эти термины используются только для различения одного компонента от других компонентов. Например, ‘первый’ компонент может именоваться ‘вторым’ компонентом без отклонения от объема настоящего изобретения, и ‘второй’ компонент может также аналогичным образом именоваться ‘первым’ компонентом. Термин ‘и/или’ включает в себя комбинацию множества элементов или любой один из множества членов.
[0052] Следует понимать, что когда элемент просто упоминается как ‘соединенный с’ или ‘связанный с’ другим элементом, не будучи ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ другим элементом в настоящем описании, он может быть ‘непосредственно соединенным с’ или ‘непосредственно связанным с’ другим элементом или быть соединенным или связанным с другим элементом, имея другой элемент, промежуточный между ними. Напротив, следует понимать, что когда элемент упоминается как “непосредственно связанный” или “непосредственно соединенный” с другим элементом, то не имеется промежуточных элементов.
[0053] Кроме того, составные части, показанные в вариантах осуществления настоящего изобретения, показаны независимо, чтобы представлять характерные функции, отличающиеся друг от друга. Таким образом, это не означает, что каждая составная часть содержится в составном блоке отдельного аппаратного средства или программного обеспечения. Иными словами, каждая составная часть включает в себя каждую из пронумерованных составных частей, для удобства. Таким образом, по меньшей мере две составные части каждой составной части могут объединяться, чтобы образовывать одну составную часть, или одна составная часть может быть разделена на множество составных частей, чтобы выполнять каждую функцию. Вариант осуществления, где каждая составная часть объединена, и вариант осуществления, где одна составная часть разделена, также включены в объем настоящего изобретения, если это не приводит к отклонению от сущности настоящего изобретения.
[0054] Термины, используемые в настоящей спецификации, используются просто для описания конкретных вариантов осуществления и не подразумевают ограничения настоящего изобретения. Выражение, использованное в единственном числе, включает в себя выражение во множественном числе, если только это не имеет явно отличающегося значения в контексте. В настоящей спецификации, следует понимать, что такие термины, как “включающий в себя”, “имеющий” и т.д., предназначены, чтобы указывать наличие признаков, количеств, этапов, действий, элементов, частей или их комбинаций, раскрытых в спецификации, не должны исключать возможность того, один или более других признаков, количеств, этапов, действий, элементов, частей или их комбинаций могут существовать или могут добавляться. Иными словами, когда конкретный элемент упоминается как “включенный”, элементы иные, чем соответствующий элемент, не исключаются, но дополнительные элементы могут быть включены в варианты осуществления настоящего изобретения или объем настоящего изобретения.
[0055] Кроме того, некоторые из компонентов могут не являться необходимыми компонентами, выполняющими существенные функции настоящего изобретения, а являются конкретными компонентами, лишь улучшающими его рабочие характеристики. Настоящее изобретение может быть реализовано путем включения в него только необходимых составных частей для реализации сущности настоящего изобретения, исключая компоненты, используемые для улучшения рабочих характеристик. Структура, включающая в себя только необходимые компоненты, исключая конкретные компоненты, используемые только для улучшения рабочих характеристик, также включена в объем настоящего изобретения.
[0056] Далее, варианты осуществления настоящего изобретения будут описаны подробно со ссылками на приложенные чертежи. При описании примерных вариантов осуществления настоящего изобретения, хорошо известные функции или конструкции не будут подробно описываться, поскольку они могли бы ненужным образом усложнить понимание настоящего изобретения. Одинаковые компоненты на чертежах обозначены теми же самыми ссылочными позициями, и повторное описание одних и тех же элементов будет опущено.
[0057] Далее, изображение может означать картинку, конфигурирующую видео, или может означать само видео. Например, “кодирование или декодирование, или оба из них, изображения” может означать “кодирование или декодирование, или оба из них, движущейся картинки” и может означать “кодирование или декодирование, или оба из них, одного изображения среди изображений движущейся картинки”.
[0058] Далее, термины “движущаяся картинка” и “видео” могут использоваться как имеющие одно и то же значение и могут заменять друг друга.
[0059] Далее, целевое изображение может быть целевым изображением кодирования, которое является целью кодирования, и/или целевым изображением декодирования, которое является целью декодирования. Также, целевое изображение может быть входным изображением, введенным в устройство кодирования, и входным изображением, введенным в устройство декодирования. Здесь, целевое изображение может иметь то же самое значение, что и текущее изображение.
[0060] Далее, термины “изображение”, “картинка”, “кадр” и “экран” могут использоваться как имеющие то же самое значение и заменять друг друга.
[0061] Далее, целевой блок может представлять собой целевой блок кодирования, который является целью кодирования, и/или целевой блок декодирования, который является целью декодирования. Также целевой блок может представлять собой текущий блок, который является целью текущего кодирования и/или декодирования. Например, термины “целевой блок” и “текущий блок” могут использоваться как имеющие то же самое значение и заменять друг друга.
[0062] Далее, термины “блок” и “единица” могут использоваться как имеющие то же самое значение и заменять друг друга. Или “блок” может представлять конкретную единицу.
[0063] Далее, термины “область” и “сегмент” могут заменять друг друга.
[0064] Далее, конкретный сигнал может быть сигналом, представляющим конкретный блок. Например, исходный сигнал может быть сигналом, представляющим целевой блок. Сигнал предсказания может быть сигналом, представляющим блок предсказания. Остаточный сигнал может быть сигналом, представляющим остаточный блок.
[0065] В вариантах осуществления, каждое из конкретной информации, данных, флага, индекса, элемента и атрибута и т.д. может иметь значение. Значение информации, данных, флага, индекса, элемента и атрибута, равное “0”, может представлять логическое “ложно” или первое предопределенное значение. Иными словами, значение “0”, “ложно”, логическое “ложно” и первое предопределенное значение могут быть взаимозаменяемыми. Значение информации, данных, флага, индекса, элемента и атрибута, равное “1”, может представлять логическое “истинно” или второе предопределенное значение. Иными словами, значение “1”, “истинно”, логическое “истинно” и второе предопределенное значение могут быть взаимозаменяемыми.
[0066] Когда переменная i или j используется для представления столбца, строки или индекса, значение i может быть целым числом равным или большим, чем 0, или равным или большим, чем 1. То есть, столбец, строка, индекс и т.д. могут отсчитываться от 0 или могут отсчитываться от 1.
[0067]
[0068] Описание терминов
[0069] Кодер: означает устройство, выполняющее кодирование. То есть, означает устройство кодирования.
[0070] Декодер: означает устройство, выполняющее декодирование. То есть, означает устройство декодирования.
[0071] Блок: представляет собой M×N массив выборки. Здесь, M и N могут означать положительные целые числа, и блок может означать массив выборки двумерной формы. Блок может относиться к единице. Текущий блок может означать целевой блок кодирования, который становится целью при кодировании, или целевой блок декодирования, который становится целью при декодировании. Кроме того, текущий блок может быть по меньшей мере одним из блока кодирования, блока предсказания, остаточного блока и блока преобразования.
Bd-1
[0072] Выборка: представляет собой базовую единицу, образующую блок. Она может быть выражена как значение от 0 до 2 в соответствии с битовой глубиной (Bd). В настоящем изобретении, выборка может использоваться как обозначение пиксела. То есть, выборка, элемент изображения, пиксел могут иметь то же самое значение.
[0073] Единица: может относиться к единице кодирования и декодирования. При кодировании и декодировании изображения, единица может представлять собой область, генерируемую разбиением одного изображения. Кроме того, единица может означать подразделенную единицу, когда одно изображение разбивается на подразделенные единицы во время кодирования или декодирования. То есть, изображение может разбиваться на множество единиц. При кодировании и декодировании изображения, предопределенный процесс может выполняться для каждой единицы. Одна единица может разбиваться на под-единицы, которые имеют размеры меньше, чем размер единицы. В зависимости от функций, единица может означать блок, макроблок, единицу дерева кодирования, блок дерева кодирования, единицу кодирования, блок кодирования, единицу предсказания, блок предсказания, остаточную единицу, остаточный блок, единицу преобразования, блок преобразования и т.д. Кроме того, чтобы различать единицу от блока, единица может включать блок компонента яркости, блок компонента цветности, ассоциированный с блоком компонента яркости, и синтаксический элемент каждого блока цветового компонента. Единица может иметь различные размеры и формы, в частности, форма единицы может быть двумерной геометрической фигурой, такой как квадратная форма, прямоугольная форма, трапецеидальная форма, треугольная форма, пятиугольная форма и т.д. Кроме того, информация единицы может включать по меньшей мере одно из типа единицы, указывающего единицу кодирования, единицу предсказания, единицу преобразования и т.д., и размера единицы, глубины единицы, последовательности кодирования и декодирования единицы и т.д.
[0074] Единица дерева кодирования: конфигурируется с одним блоком дерева кодирования компонента яркости Y и двумя блоками дерева кодирования, относящимися к компонентам цветности Cb и Cr. Кроме того, это может означать, что включаются блоки и синтаксический элемент каждого блока. Каждая единица дерева кодирования может быть подразделена с использованием по меньшей мере одного из способа разбиения квадродерева, способа разбиения двоичного дерева и способа разбиения троичного дерева, чтобы конфигурировать более низкую единицу, такую как единица кодирования, единица предсказания, единица преобразования и т.д. Это может использоваться как термин для обозначения блока выборки, который становится единицей обработки при кодировании/декодировании изображения в качестве входного изображения. Здесь, квадродерево может означать квартернарное дерево.
[0075] Когда размер блока кодирования находится в пределах предопределенного диапазона, деление возможно с использованием только разбиения квадродерева. Здесь, предопределенный диапазон может быть определен как по меньшей мере одно из максимального размера и минимального размера блока кодирования, в котором разделение возможно с использованием только разбиения квадродерева. Информация, указывающая максимальный/минимальный размер блока кодирования, в котором разрешено разбиение квадродерева, может сигнализироваться битовым потоком, и информация может сигнализироваться по меньшей мере в одной единице последовательности, параметре картинки, группе мозаичных элементов или слайсе (сегменте). Альтернативно, максимальный/минимальный размер блока кодирования может быть фиксированным размером, предварительно определенным в кодере/декодере. Например, когда размер блока кодирования соответствует от 256×256 до 64×64, разделение возможно только с использованием разбиения квадродерева. Альтернативно, когда размер блока кодирования больше, чем размер максимального блока преобразования, разделение возможно только с использованием разбиения квадродерева. Здесь, блок, подлежащий разделению, может быть по меньшей мере одним из блока кодирования и блока преобразования. В этом случае, информация, указывающая разделение кодированного блока (например, split_flag) может представлять собой флаг, указывающий, следует ли или нет выполнять разбиение квадродерева. Когда размер блока кодирования попадает в предопределенный диапазон, разделение возможно только с использованием разбиения двоичного дерева или троичного дерева. В этом случае, приведенное выше описание разбиения квадродерева может применяться к разбиению двоичного дерева или разбиению троичного дерева одинаковым образом.
[0076] Блок дерева кодирования: может быть использован как термин для обозначения любого одного из Y блока дерева кодирования, Cb блока дерева кодирования и Cr блока дерева кодирования.
[0077] Соседний блок: может означать блок, смежный с текущим блоком. Блок, смежный с текущим блоком, может означать блок, который контактирует с границей текущего блока, или блок, позиционированный в пределах предопределенного расстояния от текущего блока. Соседний блок может означать блок, смежный с вершиной текущего блока. Здесь, блок, смежный с вершиной текущего блока, может означать блок, вертикально смежный с соседним блоком, который является горизонтально смежным с текущим блоком, или блок, горизонтально смежный с соседним блоком, который является вертикально смежным с текущим блоком.
[0078] Восстановленный соседний блок: может означать соседний блок, смежный с текущим блоком и который уже был пространственно/по времени кодирован или декодирован. Здесь, восстановленный соседний блок может означать восстановленную соседнюю единицу. Восстановленный пространственный соседний блок может быть блоком в пределах текущей картинки, который уже был восстановлен посредством кодирования или декодирования или обоих из них. Восстановленный временной соседний блок представляет собой блок в соответствующем положении как у текущего блока текущей картинки в пределах опорного изображения или его соседнего блока.
[0079] Глубина единицы: может означать степень разбиения единицы. В древовидной структуре, наивысший узел (корневой узел) может соответствовать первой единице, которая не разделена. Также, наивысший узел может иметь наименьшее значение глубины. В этом случае, наивысший узел может иметь глубину уровня 0. Узел, имеющий глубину уровня 1, может представлять единицу, генерируемую путем разбиения первой единицы однократно. Узел, имеющий глубину уровня 2, может представлять единицу, генерируемую путем разбиения первой единицы дважды. Узел, имеющий глубину уровня n, может представлять единицу, генерируемую путем разбиения первой единицы n раз. Листовой узел может быть самым низким узлом и узлом, который не может далее разделяться. Глубина листового узла может соответствовать максимальному уровню. Например, предопределенное значение максимального уровня может быть равно 3. Глубина корневого узла может быть самой низкой, а глубина листового узла может быть самой глубокой. Кроме того, когда единица выражена как древовидная структура, уровень, в котором присутствует единица, может означать глубину единицы.
[0080] Битовый поток: может означать битовый поток, включающий в себя информацию кодирования изображения.
[0081] Набор параметров: соответствует информации заголовка среди конфигурации в битовом потоке. По меньшей мере один из набора параметров видео, набора параметров последовательности, набора параметров картинки и набора параметров адаптации может быть включен в набор параметров. Кроме того, набор параметров может включать в себя заголовок слайса, заголовок группы мозаичных элементов и информацию заголовка мозаичного элемента. Термин “группа мозаичных элементов” означает группу мозаичных элементов и имеет то же самое значение, что и слайс.
[0082] Синтаксический анализ: может означать определение значения синтаксического элемента путем выполнения энтропийного декодирования или может означать само энтропийное декодирование.
[0083] Символ: может означать по меньшей мере одно из синтаксического элемента, параметра кодирования и значения коэффициента преобразования целевой единицы кодирования/ декодирования. Кроме того, символ может означать цель энтропийного кодирования или результат энтропийного декодирования.
[0084] Режим предсказания: может быть информацией, указывающей режим, кодированный/декодированный с интра-предсказанием, или режим, кодированный/декодированный с интер-предсказанием.
[0085] Единица предсказания: может означать базовую единицу при выполнении предсказания, такого как интер-предсказание, интра-предсказание, интер- (взаимная) компенсация, интра- (внутренняя) компенсация и компенсация движения. Одна единица предсказания может разбиваться во множество разбиений, имеющих меньший размер, или может разбиваться на множество более низких единиц предсказания. Множество разбиений может представлять собой базовую единицу при выполнении предсказания или компенсации. Разбиение, которое генерируется путем разделения единицы предсказания, может также представлять собой единицу предсказания.
[0086] Разбиение единицы предсказания: может означать форму, полученную путем разбиения единицы предсказания.
[0087] Список опорных картинок: может относиться к списку, включающему в себя одну или более опорных картинок, используемых для интер-предсказания или компенсации движения. Имеется несколько типов используемых списков опорных картинок, включая LC (объединенный список), L0 (список 0), L1 (список 1), L2 (список 2), L3 (список 3).
[0088] Указатель интер-предсказания: может относиться к направлению интер-предсказания (однонаправленное предсказание, двунаправленное предсказание и т.д.) текущего блока. Альтернативно, он может относиться к числу опорных картинок, используемых для генерации блока предсказания текущего блока. Альтернативно, он может относиться к числу блоков предсказания, используемых во время выполнения интер-предсказания или компенсации движения над текущим блоком.
[0089] Флаг использования списка предсказания: указывает, генерируется ли блок предсказания с использованием по меньшей мере одной опорной картинки в конкретном списке опорных картинок. Указатель интер-предсказания может быть выведен с использованием флага использования списка предсказания, и наоборот, флаг использования списка предсказания может быть выведен с использованием указателя интер-предсказания. Например, когда флаг использования списка предсказания имеет первое значение, равное нулю (0), это означает, что опорная картинка в списке опорных картинок не используется для генерации блока предсказания. С другой стороны, когда флаг использования списка предсказания имеет второе значение, равное единице (1), это означает, что список опорных картинок используется для генерирования блока предсказания.
[0090] Индекс опорной картинки: может относиться к индексу, указывающему конкретную опорную картинку в списке опорных картинок.
[0091] Опорная картинка: может означать опорную картинку, на которую ссылается конкретный блок для целей интер-предсказания или компенсации движения конкретного блока. Альтернативно, опорная картинка может представлять собой картинку, включающую в себя опорный блок, на который ссылается текущий блок для интер-предсказания или компенсации движения. Далее, термины “опорная картинка” и “опорное изображение” имеют то же самое значение и могут использоваться взаимозаменяемым образом.
[0092] Вектор движения: может представлять собой двумерный вектор, используемый для интер-предсказания или компенсации движения. Вектор движения может означать смещение между целевым блоком кодирования/декодирования и опорным блоком. Например, (mvX, mvY) может представлять вектор движения. Здесь, mvX может представлять горизонтальный компонент, и mvY может представлять вертикальный компонент.
[0093] Диапазон поиска: может представлять собой двумерную область, в которой осуществляется поиск, чтобы извлечь вектор движения во время интер-предсказания. Например, размер диапазона поиска может быть M×N. Здесь, M и N оба являются целыми числами.
[0094] Кандидат вектора движения: может относиться к блоку кандидата предсказания или вектору движения блока кандидата предсказания при предсказании вектора движения. Кроме того, кандидат вектора движения может быть включен в список кандидатов вектора движения.
[0095] Список кандидатов вектора движения: может означать список, составленный из одного или более кандидатов вектора движения.
[0096] Индекс кандидата вектора движения: может означать указатель, указывающий кандидата вектора движения в списке кандидатов вектора движения. Альтернативно, он может представлять собой индекс предсказателя вектора движения.
[0097] Информация движения: может означать информацию, включающую в себя по меньшей мере один из элементов, включая вектор движения, индекс опорной картинки, указатель интер-предсказания, флаг использования списка предсказания, информацию списка опорных картинок, опорную картинку, кандидат вектора движения, индекс кандидата вектора движения, кандидат слияния и индекс слияния.
[0098] Список кандидатов слияния: может означать список, составленный из одного или более кандидатов слияния.
[0099] Кандидат слияния: может означать пространственный кандидат слияния, временной кандидат слияния, объединенный кандидат слияния, объединенный би-предиктивный кандидат слияния, или нулевой кандидат слияния. Кандидат слияния может включать информацию движения, такую как указатель интер-предсказания, индекс опорной картинки для каждого списка, вектор движения, флаг использования списка предсказания и указатель интер-предсказания.
[00100] Индекс слияния: может означать указатель, указывающий кандидата слияния в списке кандидатов слияния. Альтернативно, индекс слияния может указывать блок, из которого был выведен кандидат слияния, среди восстановленных блоков пространственно/по времени смежных с текущим блоком. Альтернативно, индекс слияния может указывать по меньшей мере одну часть информации движения кандидата слияния.
[00101] Единица преобразования: может означать базовую единицу при выполнении кодирования/декодирования, такого как преобразование, обратное преобразование, квантование, деквантование, кодирование/декодирование коэффициентов преобразования остаточного сигнала. Одна единица преобразования может разбиваться на множество единиц преобразования более низкого уровня, имеющих меньший размер. Здесь, преобразование/обратное преобразование может содержать по меньшей мере одно из первого преобразования/первого обратного преобразования и второго преобразования/второго обратного преобразования.
[00102] Масштабирование: может означать процесс умножения квантованного уровня на коэффициент. Коэффициент преобразования может генерироваться путем масштабирования квантованного уровня. Масштабирование может также упоминаться как деквантование.
[00103] Параметр квантования: может означать значение, используемое при генерировании квантованного уровня с использованием коэффициента преобразования при квантовании. Параметр квантования также может означать значение, используемое при генерировании коэффициента преобразования путем масштабирования квантованного уровня при деквантовании. Параметр квантования может представлять собой значение, отображаемое на размер шага квантования.
[00104] Дельта-параметр квантования: может означать разностное значение между предсказанным параметром квантования и параметром квантования целевой единицы кодирования/ декодирования.
[00105] Сканирование: может означать способ упорядочения коэффициентов в пределах единицы, блока или матрицы. Например, переход от двумерной матрицы коэффициентов к одномерной матрице может упоминаться как сканирование, и переход от одномерной матрицы коэффициентов к двумерной матрице может упоминаться как сканирование или обратное сканирование.
[00106] Коэффициент преобразования: может означать значение коэффициента, генерируемое после выполнения преобразования в кодере. Он может означать значение коэффициента, генерируемое после выполнения по меньшей мере одного из энтропийного декодирования и деквантования в декодере. Квантованный уровень, полученный путем квантования коэффициента преобразования или остаточного сигнала, или уровень квантованного коэффициента преобразования также может охватываться смысловым значением коэффициента преобразования.
[00107] Квантованный уровень: может означать значение, генерируемое квантованием коэффициента преобразования или остаточного сигнала в кодере. Альтернативно, квантованный уровень может означать значение, которое является целью деквантования для выполнения деквантования в декодере. Аналогичным образом, уровень квантованного коэффициента преобразования, который является результатом преобразования и квантования, также может охватываться смысловым значением квантованного уровня.
[00108] Ненулевой коэффициент преобразования: может означать коэффициент преобразования, имеющий значение иное, чем нуль, или уровень коэффициента преобразования или квантованный уровень, имеющий значение иное, чем нуль.
[00109] Матрица квантования: может означать матрицу, используемую в процессе квантования или процессе деквантования, выполняемом для улучшения субъективного или объективного качества изображения. Матрица квантования также может упоминаться как список масштабирования.
[00110] Коэффициент матрицы квантования: может означать каждый элемент в матрице квантования. Коэффициент матрицы квантования также может упоминаться как коэффициент матрицы.
[00111] Матрица по умолчанию: может означать предопределенную матрицу квантования, заранее определенную в кодере или декодере.
[00112] Матрица не по умолчанию: может означать матрицу квантования, которая не определена заранее в кодере или декодере, а сигнализируется пользователем.
[00113] Статистическое значение: статистическое значение для по меньшей мере одного из переменной, параметра кодирования, постоянного значения и т.д., которые имеют вычисляемое конкретное значение, может быть одним или более из среднего значения, суммарного значения, взвешенного среднего значения, взвешенного суммарного значения, минимального значения, максимального значения, наиболее частого значения, медианного значения, интерполированного значения соответствующего конкретного значения.
[00114] Фиг. 1 представляет собой блок-схему, показывающую конфигурацию устройства кодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.
[00115] Устройство 100 кодирования может быть кодером, устройством кодирования видео или устройством кодирования изображения. Видео может включать по меньшей мере одно изображение. Устройство 100 кодирования может последовательно кодировать по меньшей мере одно изображение.
[00116] Со ссылкой на фиг. 1, устройство 100 кодирования может включать в себя модуль 111 предсказания движения, модуль 112 компенсации движения, модуль 120 интра-предсказания, переключатель 115, вычитатель 125, модуль 130 преобразования, модуль 140 квантования, модуль 150 энтропийного кодирования, модуль 160 деквантования, модуль 170 обратного преобразования, сумматор 175, модуль 180 фильтрации и буфер 190 опорных картинок.
[00117] Устройство 100 кодирования может выполнять кодирование входного изображения с использованием интра-режима или интер-режима или их обоих. Кроме того, устройство 100 кодирования может генерировать битовый поток, включающий в себя кодированную информацию, посредством кодирования входного изображения, и выводить сгенерированный битовый поток. Сгенерированный битовый поток может быть сохранен в считываемом компьютером носителе записи или может передаваться потоком по проводной/беспроводной среде передачи. Когда интра-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интра-режим. Альтернативно, когда интер-режим используется в качестве режима предсказания, переключатель 115 может переключаться на интер-режим. Здесь, интра-режим может означать режим интра-предсказания, и интер-режим может означать режим интер-предсказания. Устройство 100 кодирования может генерировать блок предсказания для входного блока входного изображения. Кроме того, устройство 100 кодирования может кодировать остаточный блок с использованием остатка входного блока и блока предсказания после генерации блока предсказания. Входное изображение может называться текущим изображением, которое представляет собой текущую цель кодирования. Входной блок может называться текущим блоком, который представляет собой текущую цель кодирования, или целевым блоком кодирования.
[00118] Когда режим предсказания является интра-режимом, модуль 120 интра-предсказания может использовать выборку блока, который уже был кодирован/декодирован и является смежным с текущим блоком, в качестве опорной выборки. Модуль 120 интра-предсказания может выполнять пространственное предсказание для текущего блока с использованием опорной выборки или генерировать выборки предсказания входного блока путем выполнения пространственного предсказания. Здесь, внутреннее (интра) предсказание может означать интра-предсказание,
[00119] Когда режим предсказания является интер-режимом, модуль 111 предсказания движения может извлекать область, которая наилучшим образом согласуется с входным блоком, из опорного изображения при выполнении предсказания движения и выводить вектор движения с использованием извлеченной области. В этом случае, область поиска может быть использована в качестве упомянутой области. Опорное изображение может быть сохранено в буфере 190 опорных картинок. Здесь, когда кодирование/ декодирование для опорного изображения выполнено, оно может быть сохранено в буфере 190 опорных картинок.
[00120] Модуль 112 компенсации движения может генерировать блок предсказания путем выполнения компенсации движения для текущего блока с использованием вектора движения. Здесь, интер-предсказание может означать интер-предсказание или компенсацию движения.
[00121] Когда значение вектора движения не является целым числом, модуль 111 предсказания движения и модуль 112 компенсации движения могут генерировать блок предсказания путем применения интерполяционного фильтра к частичной области опорной картинки. Чтобы выполнить предсказание между картинками или компенсацию движения над единицей кодирования, может определяться, какой режим из режима пропуска, режима слияния, режима расширенного предсказания вектора движения (AMVP) и режима ссылки на текущую картинку используется для предсказания движения и компенсации движения единицы предсказания, включенной в соответствующую единицу кодирования. Затем, предсказание между картинками или компенсация движения могут выполняться по-разному в зависимости от определенного режима.
[00122] Вычитатель 125 может генерировать остаточный блок с использованием разности входного блока и блока предсказания. Остаточный блок может называться остаточным сигналом. Остаточный сигнал может означать разность между исходным сигналом и сигналом предсказания. Кроме того, остаточный сигнал может быть сигналом, генерируемым путем преобразования или квантования или преобразования и квантования разности между исходным сигналом и сигналом предсказания. Остаточный блок может быть остаточным сигналом единицы блока.
[00123] Модуль 130 преобразования может генерировать коэффициент преобразования путем выполнения преобразования остаточного блока и выводить сгенерированный коэффициент преобразования. Здесь, коэффициент преобразования может быть значением коэффициента, генерируемым путем выполнения преобразования остаточного блока. Когда применяется режим пропуска преобразования, модуль 130 преобразования может пропустить преобразование остаточного блока.
[00124] Квантованный уровень может генерироваться путем применения квантования к коэффициенту преобразования или к остаточному сигналу. Далее, квантованный уровень может также называться коэффициентом преобразования в вариантах осуществления.
[00125] Модуль 140 квантования может генерировать квантованный уровень путем квантования коэффициента преобразования или остаточного сигнала в соответствии с параметром и выводить сгенерированный квантованный уровень. Здесь, модуль 140 квантования может квантовать коэффициент преобразования с использованием матрицы квантования.
[00126] Модуль 150 энтропийного кодирования может генерировать битовый поток путем выполнения энтропийного кодирования в соответствии с распределением вероятности по значениям, вычисленным модулем 140 квантования, или по значениям параметра кодирования, вычисленным при выполнении кодирования, и выводить сгенерированный битовый поток. Модуль 150 энтропийного кодирования может выполнять энтропийное кодирование информации выборки изображения и информации для декодирования изображения. Например, информация для декодирования изображения может включать синтаксический элемент.
[00127] Когда применяется энтропийное кодирование, символы представляются таким образом, что меньшее число битов назначается символу, имеющему высокую вероятность генерации, и большее число битов назначается символу, имеющему низкую вероятность генерации, и, таким образом, размер битового потока для символов, подлежащих кодированию, может уменьшаться. Модуль 150 энтропийного кодирования может использовать способ кодирования для энтропийного кодирования, такой как экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.д. Например, модуль 150 энтропийного кодирования может выполнять энтропийное кодирование с использованием таблицы кодирования/кода переменной длины (VLC). Кроме того, модуль 150 энтропийного кодирования может выводить способ бинаризации целевого символа и модель вероятности целевого символа/бина и выполнять арифметическое кодирование с использованием выведенного способа бинаризации и контекстной модели.
[00128] Чтобы кодировать уровень коэффициента преобразования (квантованный уровень), модуль 150 энтропийного кодирования может преобразовать коэффициент в форме двумерного блока в форму одномерного вектора с использованием способа сканирования коэффициентов преобразования.
[00129] Параметр кодирования может включать информацию (флаг, индекс, и т.д.), такую как синтаксический элемент, который кодируется в кодере и сигнализируется в декодер, и информацию, выведенную при выполнении кодирования или декодирования. Параметр кодирования может означать информацию, требуемую при кодировании или декодировании изображения. Например, по меньшей мере одно значение или форма комбинации из размера единицы/блока, глубины единицы/блока, информации разбиения единицы/блока, формы единицы/блока, структуры разбиения единицы/блока, следует ли разбивать в форме квадродерева, следует ли разбивать в форме двоичного дерева, направления разбиения формы двоичного дерева (горизонтальное направление или вертикальное направление), формы разбиения в форме двоичного дерева (симметричное разбиение или асимметричное разбиение), разбита ли текущая единица кодирования путем разбиения троичного дерева, направления (горизонтальное или вертикальное направление) разбиения троичного дерева, типа (симметричный или асимметричный тип) разбиения троичного дерева, разбита ли текущая единица кодирования путем разбиения дерева множества типов, направления (горизонтальное или вертикальное направление) разбиения дерева множества типов, типа (симметричный или асимметричный тип) разбиения дерева множества типов и структуры дерева (двоичное дерево или троичное дерево) разбиения дерева множества типов, режима предсказания (интра-предсказание или интер-предсказание), режима/направления интра-предсказания яркости, режима/направления интра-предсказания цветности, информации интра-разбиения, информации интер-разбиения, флага разбиения блока кодирования, флага разбиения блока предсказания, флага разбиения блока преобразования, способа фильтрации опорной выборки, отвода фильтра опорной выборки, коэффициента фильтра опорной выборки, способа фильтрации блока предсказания, отвода фильтра блока предсказания, коэффициента фильтра блока предсказания, способа фильтрации границы блока предсказания, отвода фильтра границы блока предсказания, коэффициента фильтра границы блока предсказания, режима интра-предсказания, режима интер-предсказания, информации движения, вектора движения, разности векторов движения, индекса опорной картинки, угла интер-предсказания, указателя интер-предсказания, флага использования списка предсказания, списка опорных картинок, опорной картинки, индекса предсказателя вектора движения, кандидата предсказателя вектора движения, списка кандидатов вектора движения, следует ли использовать режим слияния, индекса слияния, кандидата слияния, списка кандидатов слияния, следует ли использовать режим пропуска, типа фильтра интерполяции, отвода фильтра интерполяции, коэффициента фильтра интерполяции, размера вектора движения, точности представления вектора движения, типа преобразования, размера преобразования, информации, используется ли первичное (первое) преобразование, информации, используется ли вторичное преобразование, индекса первичного преобразования, индекса вторичного преобразования, информации, представлен ли остаточный сигнал, шаблона кодированного блока, флага кодированного блока (CBF), параметра квантования, остатка параметра квантования, матрицы квантования, следует ли применять внутриконтурный фильтр, коэффициента внутриконтурного фильтра, отвода внутриконтурного фильтра, формы внутриконтурного фильтра, следует ли применять фильтр устранения блочности, коэффициента фильтра устранения блочности, отвода фильтра устранения блочности, силы фильтра устранения блочности, формы фильтра устранения блочности, следует ли применять адаптивное смещение выборки, значения адаптивного смещения выборки, категории адаптивного смещения выборки, типа адаптивного смещения выборки, следует ли применять адаптивный контурный фильтр, коэффициента адаптивного контурного фильтра, отвода адаптивного контурного фильтра, формы адаптивного контурного фильтра, способа бинаризации/обратной бинаризации, способа определения контекстной модели, способа обновления контекстной модели, следует ли выполнять регулярный режим, следует ли выполнять режим обхода, бина контекста, бина обхода, флага значимого коэффициента, флага последнего значимого коэффициента, кодированного флага для единицы группы коэффициентов, положения последнего значимого коэффициента, флага для того, является ли значение коэффициента большим, чем 1, флага для того, является ли значение коэффициента большим, чем 2, флага для того, является ли значение коэффициента большим, чем 3, информации об остаточном значении коэффициента, информации знака, восстановленной выборки яркости, восстановленной выборки цветности, остаточной выборки яркости, остаточной выборки цветности, коэффициента преобразования яркости, коэффициента преобразования цветности, квантованного уровня яркости, квантованного уровня цветности, способа сканирования уровня коэффициента преобразования, размера области поиска вектора движения на стороне декодера, формы области поиска вектора движения на стороне декодера, числа раз поиска вектора движения на стороне декодера, информации о размере CTU, информации о минимальном размере блока, информации о максимальном размере блока, информации о максимальной глубине блока, информации о минимальной глубине блока, последовательности отображения/вывода изображения, информации идентификации слайса, типа слайса, информации разбиения слайса, информации идентификации мозаичного элемента, типа мозаичного элемента, информации мозаичного разбиения, информации идентификации группы мозаичных элементов, типа группы мозаичных элементов, информации разбиения группы мозаичных элементов, типа картинки, битовой глубины входной выборки, битовой глубины восстановленной выборки, битовой глубины остаточной выборки, битовой глубины коэффициента преобразования, битовой глубины квантованного уровня и информации о сигнале яркости или информации о сигнале цветности могут быть включены в параметр кодирования.
[00130] Здесь, сигнализация флага или индекса может означать, что соответствующий флаг или индекс энтропийно закодирован и включен в битовый поток кодером, и может означать, что соответствующий флаг или индекс энтропийно декодируется из битового потока декодером.
[00131] Когда устройство 100 кодирования выполняет кодирование посредством интер-предсказания, кодированное текущее изображение может быть использовано как опорное изображение для другого изображения, которое обрабатывается после этого. Соответственно, устройство 100 кодирования может восстанавливать или декодировать закодированное текущее изображение, или сохранять восстановленное или декодированное изображение как опорное изображение в буфере 190 опорных картинок.
[00132] Квантованный уровень может деквантоваться в модуле 160 деквантования или может обратно преобразовываться в модуле 170 обратного преобразования. Деквантованный и/или обратно преобразованный коэффициент может суммироваться с блоком предсказания посредством сумматора 175. Путем суммирования деквантованного и/или обратно преобразованного коэффициента с блоком предсказания может генерироваться восстановленный блок. Здесь, деквантованный и/или обратно преобразованный коэффициент может означать коэффициент, над которым выполнено по меньшей мере одно из деквантования и обратного преобразования, и может означать восстановленный остаточный блок.
[00133] Восстановленный блок может проходить через модуль 180 фильтрации. Модуль 180 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки (SAO) и адаптивного контурного фильтра (ALF) к восстановленной выборке, восстановленному блоку или восстановленному изображению. Модуль 180 фильтрации может упоминаться как контурный фильтр.
[00134] Фильтр устранения блочности может устранять блочное искажение, генерируемое на границах между блоками. Для определения того, следует ли применять фильтр устранения блочности, может определяться, следует ли применять фильтр устранения блочности к текущему блоку, на основе выборок, включенных в различные строки или столбцы, которые включены в блок. Когда фильтр устранения блочности применяется к блоку, другой фильтр может быть применен в соответствии с требуемой силой (уровнем) фильтрации устранения блочности.
[00135] Для того чтобы скомпенсировать ошибку кодирования, надлежащее значение смещения может быть добавлено к значению выборки с использованием адаптивного смещения выборки. Адаптивное смещение выборки может корректировать смещение изображения с устраненной блочностью относительно исходного изображения на единицу выборки. Может использоваться способ разбиения выборок изображения на предопределенное количество областей, определения области, к которой применяется смещение, и применения смещения к определенной области, или способ применения смещения с учетом краевой информации по каждой выборке.
[00136] Адаптивный контурный фильтр может выполнять фильтрацию на основе результата сравнения отфильтрованного восстановленного изображения и исходного изображения. Выборки, включенные в изображение, могут разбиваться на предопределенные группы, может определяться фильтр для применения к каждой группе, и может выполняться дифференциальная фильтрация для каждой группы. Информация о том, следует ли применять ALF, может сигнализироваться посредством единиц кодирования (CU), и форма и коэффициент ALF, подлежащего применению к каждому блоку, могут варьироваться.
[00137] Восстановленный блок или восстановленное изображение, после прохождения через модуль 180 фильтрации, может сохраняться в буфере 190 опорных картинок. Восстановленный блок, обработанный модулем 180 фильтрации, может быть частью опорного изображения. То есть, опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 180 фильтрации. Сохраненное опорное изображение может быть использовано позже в интер-предсказании или компенсации движения.
[00138] Фиг. 2 представляет собой блок-схему, показывающую конфигурацию устройства декодирования в соответствии с вариантом осуществления, в котором применимо настоящее изобретение.
[00139] Устройство 200 декодирования может представлять собой декодер, устройство декодирования видео или устройство декодирования изображения.
[00140] Со ссылкой на фиг. 2, устройство 200 декодирования может включать в себя модуль 210 энтропийного декодирования, модуль 220 деквантования, модуль 230 обратного преобразования, модуль 240 интра-предсказания, модуль 250 компенсации движения, сумматор 225, модуль 260 фильтрации и буфер 270 опорных картинок.
[00141] Устройство 200 декодирования может принимать битовый поток, выведенный из устройства 100 кодирования. Устройство 200 декодирования может принимать битовый поток, сохраненный в считываемом компьютером носителе записи, или может принимать битовый поток, передаваемый путем потоковой передачи посредством проводной/беспроводной среды передачи. Устройство 200 декодирования может декодировать битовый поток с использованием интра-режима или интер-режима. Кроме того, устройство 200 декодирования может генерировать восстановленное изображение, генерируемое путем декодирования, или декодированное изображение и выводить восстановленное изображение или декодированное изображение.
[00142] Когда режим предсказания, используемый при декодировании, является интра-режимом, переключатель может быть переключен на интра-режим. Альтернативно, когда режим предсказания, используемый при декодировании, является интер-режимом, переключатель может быть переключен на интер-режим.
[00143] Устройство 200 декодирования может получать восстановленный остаточный блок путем декодирования входного битового потока и генерировать блок предсказания. Когда восстановленный остаточный блок и блок предсказания получены, устройство 200 декодирования может генерировать восстановленный блок, который становится целью декодирования, путем суммирования восстановленного остаточного блока с блоком предсказания. Целевой блок декодирования может называться текущим блоком.
[00144] Модуль 210 энтропийного декодирования может генерировать символы путем энтропийного декодирования битового потока в соответствии с распределением вероятности. Сгенерированные символы могут включать в себя символ формы квантованного уровня. Здесь, способ энтропийного декодирования может быть процессом, обратным способу энтропийного кодирования, описанному выше.
[00145] Для того чтобы декодировать уровень коэффициента преобразования (квантованный уровень), модуль 210 энтропийного декодирования может преобразовать коэффициент в форме одномерного вектора в форму двумерного блока с использованием способа сканирования коэффициента преобразования.
[00146] Квантованный уровень может быть деквантован в модуле 220 деквантования или обратно преобразован в модуле 230 обратного преобразования. Квантованный уровень может быть результатом деквантования и/или обратного преобразования и может генерироваться как восстановленный остаточный блок. Здесь, модуль 220 деквантования может применять матрицу квантования к квантованному уровню.
[00147] Когда используется интра-режим, модуль 240 интра-предсказания может генерировать блок предсказания путем выполнения, для текущего блока, пространственного предсказания, которое использует значение выборки блока, смежного с целевым блоком декодирования, и который уже был декодирован.
[00148] Когда используется интер-режим, модуль 250 компенсации движения может генерировать блок предсказания путем выполнения, для текущего блока, компенсации движения, которая использует вектор движения и опорное изображение, сохраненное в буфере 270 опорных картинок.
[00149] Сумматор 225 может генерировать восстановленный блок путем суммирования восстановленного остаточного блока с блоком предсказания. Модуль 260 фильтрации может применять по меньшей мере одно из фильтра устранения блочности, адаптивного смещения выборки и адаптивного контурного фильтра к восстановленному блоку или восстановленному изображению. Модуль 260 фильтрации может выводить восстановленное изображение. Восстановленный блок или восстановленное изображение может сохраняться в буфере 270 опорных картинок и использоваться при выполнении интер-предсказания. Восстановленный блок, обработанный модулем 260 фильтрации, может быть частью опорного изображения. То есть, опорное изображение представляет собой восстановленное изображение, составленное из восстановленных блоков, обработанных модулем 260 фильтрации. Сохраненное опорное изображение может быть использовано позже при интер-предсказании или компенсации движения.
[00150] Фиг. 3 представляет собой вид, схематично показывающий структуру разбиения изображения при кодировании и декодировании изображения. Фиг. 3 схематично показывает пример разбиения одной единицы во множество более низких единиц.
[00151] Для того чтобы эффективно разбивать изображение, при кодировании и декодировании, может быть использована единица кодирования (CU). Единица кодирования может быть использована как базовая единица при кодировании/декодировании изображения. Кроме того, единица кодирования может быть использована в качестве единицы для различения режима интра-предсказания и режима интер-предсказания при кодировании/декодировании изображения. Единица кодирования может быть базовой единицей, используемой для предсказания, преобразования, квантования, обратного преобразования, деквантования или процесса кодирования/декодирования коэффициента преобразования.
[00152] Со ссылкой на фиг. 3, изображение 300 последовательно разбивается на наибольшую единицу кодирования (LCU), и единица LCU определяется как структура разбиения. Здесь, LCU может быть использована в том же смысле, что и единица дерева кодирования (CTU). Разбиение единицы может означать разбиение блока, ассоциированного с единицей. В информацию разбиения блока может быть включена информация о глубине единицы. Информация глубины может представлять число раз и/или степень, в которой разбивается единица. Одна единица может разбиваться на множество единиц более низкого уровня, иерархически ассоциированных с информацией глубины на основе древовидной структуры. Иными словами, некоторая единица и единица более низкого уровня, генерируемая путем разбиения данной единицы, могут соответствовать узлу и дочернему узлу данного узла, соответственно. Каждая разделенная более низкая единица может иметь информацию глубины. Информация глубины может представлять собой информацию, представляющую размер CU, и может быть сохранена в каждой CU. Глубина единицы представляет число раз и/или степеней разбиения единицы. Поэтому информация разбиения единицы более низкого уровня может содержать информацию о размере единицы более низкого уровня.
[00153] Структура разбиения может означать распределение единицы кодирования (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.
[00154] Кроме того, информация о том, следует ли разбивать CU, может быть представлена с использованием информации разбиения CU. Информация разбиения может представлять собой 1-битовую информацию. Все CU, за исключением SCU, могут включать информацию разбиения. Например, когда значение информации разбиения равно первому значению, CU может не разбиваться, когда значение информации разбиения равно второму значению, CU может разбиваться.
[00155] Со ссылкой на фиг. 3, LCU, имеющая глубину 0, может представлять собой 64×64 блок. 0 может быть минимальной глубиной. SCU, имеющая глубину 3, может представлять собой 8×8 блок. 3 может быть максимальной глубиной. CU в виде 32×32 блока и 16×16 блока могут быть соответственно представлены как глубина 1 и глубина 2.
[00156] Например, когда одна единица кодирования разбивается на четыре единицы кодирования, горизонтальный размер и вертикальный размер четырех разделенных единиц кодирования могут быть равны половинному размеру горизонтального и вертикального размера CU перед разбиением. В одном варианте осуществления, когда единица кодирования, имеющая размер 32×32, разбивается на четыре единицы кодирования, каждая из четырех разделенных единиц кодирования может иметь размер 16×16. Когда одна единица кодирования разбивается на четыре единицы кодирования, можно сказать, что единица кодирования может разбиваться в форму квадродерева.
[00157] Например, когда одна единица кодирования разбита на две под-единицы кодирования, горизонтальный или вертикальный размер (ширина или высота) каждой из двух под-единиц кодирования может быть половиной горизонтального или вертикального размера исходной единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32, вертикально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 16×32. Например, когда единица кодирования, имеющая размер 8×32, горизонтально разбита на две под-единицы кодирования, каждая из двух под-единиц кодирования может иметь размер 8×16. Когда одна единица кодирования разбита на две под-единицы кодирования, можно сказать, что единица кодирования двоично разбита или разбита посредством структуры разбиения двоичного дерева.
[00158] Например, когда одна единица кодирования разбита на три под-единицы кодирования, горизонтальный или вертикальный размер единицы кодирования может разбиваться в отношении 1:2:1, тем самым формируя три под-единицы кодирования, горизонтальный или вертикальный размеры которых находятся в отношении 1:2:1. Например, когда единица кодирования, имеющая размер 16×32, горизонтально разбита на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 16×8, 16×16 и 16×8, соответственно, в порядке от самой верхней до самой нижней под-единицы кодирования. Например, когда единица кодирования, имеющая размер 32×32 вертикально разделяется на три под-единицы кодирования, три под-единицы кодирования могут иметь размеры 8×32, 16×32 и 8×32, соответственно, в порядке от левой до правой под-единицы кодирования. Когда одна единица кодирования разбита на три под-единицы кодирования, можно сказать, что единица кодирования троично разбита или разбита посредством структуры разбиения троичного дерева.
[00159] На фиг. 3, единица дерева кодирования (CTU) 320 является примером CTU, к которой применяются структура разбиения квадродерева, структура разбиения двоичного дерева и структура разбиения троичного дерева.
[00160] Как описано выше, для того чтобы разбить CTU, может применяться по меньшей мере одна из структуры разбиения квадродерева, структуры разбиения двоичного дерева и структуры разбиения троичного дерева. Различные структуры древовидного разбиения могут последовательно применяться к CTU, в соответствии с предопределенным порядком приоритета. Например, структура разбиения квадродерева может преимущественным образом применяться к CTU. Единица кодирования, которая больше не может быть разбита с использованием структуры разбиения квадродерева, может соответствовать листовому узлу квадродерева. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла структуры разбиения двоичного и/или троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может быть далее разбита согласно структуре разбиения двоичного дерева или структуре разбиения троичного дерева или может больше не разбиваться. Поэтому, путем запрещения блоку кодирования, который является результатом разбиения двоичного дерева или разбиения троичного дерева единицы кодирования, соответствующей листовому узлу квадродерева, подвергаться дальнейшему разбиению квадродерева, может эффективно выполняться разбиение блока и/или сигнализация информации разбиения.
[00161] Тот факт, что единица кодирования, соответствующая узлу квадродерева, является разделенной, может сигнализироваться с использованием информации квадро-разбиения. Информация квадро-разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не разбита согласно структуре разбиения квадродерева. Информация квадро-разбиения может представлять собой флаг, имеющий предопределенную длину (например, один бит).
[00162] Может не иметься приоритета между разбиением двоичного дерева и разбиением троичного дерева. То есть, единица кодирования, соответствующая листовому узлу квадродерева, может далее подвергаться произвольному разбиению из разбиения двоичного дерева и разбиения троичного дерева. Кроме того, единица кодирования, сгенерированная посредством разбиения двоичного дерева или разбиения троичного дерева, может подвергаться дальнейшему разбиению двоичного дерева или дальнейшему разбиению троичного дерева или может не разбиваться далее.
[00163] Древовидная структура, в которой не имеется приоритета среди разбиения двоичного дерева и разбиения троичного дерева, упоминается как структура дерева множества типов. Единица кодирования, соответствующая листовому узлу квадродерева, может служить в качестве корневого узла дерева множества типов. То, следует ли разбивать единицу кодирования, которая соответствует узлу дерева множества типов, может сигнализироваться с использованием по меньшей мере одной из информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения. Для разбиения единицы кодирования, соответствующей узлу дерева множества типов, информация указания разбиения дерева множества типов, направление разбиения и информация дерева разбиения могут последовательно сигнализироваться.
[00164] Информация указания разбиения дерева множества типов, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна подвергаться разбиению дерева множества типов. Информация указания разбиения дерева множества типов, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования не должна подвергаться разбиению дерева множества типов.
[00165] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, единица кодирования может включать информацию направления разбиения. Информация направления разбиения может указывать, в каком направлении следует разбивать текущую единицу кодирования для разбиения дерева множества типов. Информация направления разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться по вертикали. Информация направления разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться по горизонтали.
[00166] Когда единица кодирования, соответствующая узлу дерева множества типов, дополнительно разбивается согласно структуре разбиения дерева множества типов, текущая единица кодирования может включать информацию дерева разбиения. Информация дерева разбиения может указывать структуру дерева разбиения, которая должна использоваться для разбиения узла дерева множества типов. Информация дерева разбиения, имеющая первое значение (например, “1”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения двоичного дерева. Информация дерева разбиения, имеющая второе значение (например, “0”), может указывать, что текущая единица кодирования должна разбиваться согласно структуре разбиения троичного дерева.
[00167] Информация указания разбиения, информация дерева разбиения и информация направления разбиения могут, каждая, представлять собой флаг, имеющий предопределенную длину (например, один бит).
[00168] По меньшей мере любая одна из информации указания разбиения квадродерева, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения может энтропийно кодироваться/декодироваться. Для энтропийного кодирования/декодирования этих типов информации, может использоваться информация о соседней единице кодирования, смежной с текущей единицей кодирования. Например, существует высокая вероятность того, что тип разбиения (разбита или неразбита, дерево разбиения и/или направление разбиения) левой соседней единицы кодирования и/или верхней соседней единицы кодирования текущей единицы кодирования подобен таковому для текущей единицы кодирования. Поэтому, контекстная информация для энтропийного кодирования/декодирования информации о текущей единице кодирования может быть выведена из информации о соседних единицах кодирования. Информация о соседних единицах кодирования может включать по меньшей мере любое одно из информации квадро-разбиения, информации указания разбиения дерева множества типов, информации направления разбиения и информации дерева разбиения.
[00169] В качестве другого примера, из разбиения двоичного дерева и разбиения троичного дерева, предпочтительно может выполняться разбиение двоичного дерева. То есть, текущая единица кодирования может главным образом подвергаться разбиению двоичного дерева, и затем единица кодирования, соответствующая листовому узлу двоичного дерева, может быть установлена в качестве корневого узла для разбиения троичного дерева. В этом случае, ни разбиение квадродерева, ни разбиение двоичного дерева может не выполняться над единицей кодирования, соответствующей узлу троичного дерева.
[00170] Единица кодирования, которая не может разбиваться согласно структуре разбиения квадродерева, структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, становится базовой единицей для кодирования, предсказания и/или преобразования. То есть, единица кодирования не может далее разбиваться для предсказания и/или преобразования. Поэтому, информация структуры разбиения и информация разбиения, используемая для разбиения единицы кодирования в единицы предсказания и/или единицы преобразования, может не быть представлена в битовом потоке.
[00171] Однако, когда размер единицы кодирования (т.е., базовой единицы для разбиения) больше, чем размер максимального блока преобразования, единица кодирования может рекурсивно разбиваться до тех пор, пока размер единицы кодирования не уменьшится, чтобы стать равным или меньшим, чем размер максимального блока преобразования. Например, когда размер единицы кодирования равен 64×64 и когда размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на четыре 32×32 блока для преобразования. Например, когда размер единицы кодирования равен 32×64 и размер максимального блока преобразования равен 32×32, единица кодирования может разбиваться на два 32×32 блока для преобразования. В этом случае, разбиение единицы кодирования для преобразования не сигнализируется отдельно и может определяться путем сравнения между горизонтальным или вертикальным размером единицы кодирования и горизонтальным или вертикальным размером максимального блока преобразования. Например, когда горизонтальный размер (ширина) единицы кодирования больше, чем горизонтальный размер (ширина) максимального блока преобразования, единица кодирования может быть вертикально разделена пополам. Например, когда вертикальный размер (длина) единицы кодирования больше, чем вертикальный размер (длина) максимального блока преобразования, единица кодирования может быть горизонтально разделена пополам.
[00172] Информация о максимальном и/или минимальном размере единицы кодирования и информация о максимальном и/или минимальном размере блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Более высокий уровень может представлять собой, например, уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Например, минимальный размер единицы кодирования может быть определен как 4×4. Например, максимальный размер блока преобразования может быть определен как 64×64. Например, минимальный размер блока преобразования может быть определен как 4×4.
[00173] Информация о минимальном размере (минимальном размере квадродерева) единицы кодирования, соответствующей листовому узлу квадродерева, и/или информация о максимальной глубине (максимальной глубине дерева для дерева множества типов) от корневого узла до листового узла дерева множества типов может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о минимальном размере квадродерева и/или информация о максимальной глубине дерева множества типов может сигнализироваться или определяться для каждого из внутри-картинного слайса и меж-картинного слайса.
[00174] Разностная информация между размером CTU и максимальным размером блока преобразования может сигнализироваться или определяться на более высоком уровне единицы кодирования. Например, более высокий уровень может представлять собой уровень последовательности, уровень картинки, уровень слайса, уровень группы мозаичных элементов, уровень мозаичного элемента или т.п. Информация о максимальном размере единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как максимальный размер двоичного дерева), может определяться на основе размера единицы дерева кодирования и разностной информации. Максимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как максимальный размер троичного дерева), может варьироваться в зависимости от типа слайса. Например, для внутри-картинного слайса, максимальный размер троичного дерева может быть 32×32. Например, для меж-картинного слайса, максимальный размер троичного дерева может быть 128×128. Например, минимальный размер единиц кодирования, соответствующих соответственным узлам двоичного дерева (далее упоминается как минимальный размер двоичного дерева), и/или минимальный размер единиц кодирования, соответствующих соответственным узлам троичного дерева (далее упоминается как минимальный размер троичного дерева), может быть установлен в качестве минимального размера блока кодирования.
[00175] В качестве другого примера, максимальный размер двоичного дерева и/или максимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса. Альтернативно, минимальный размер двоичного дерева и/или минимальный размер троичного дерева может сигнализироваться или определяться на уровне слайса.
[00176] В зависимости от размера и информации глубины вышеописанных различных блоков, информация квадро-разбиения, информация указания разбиения дерева множества типов, информация дерева разбиения и/или информация направления разбиения могут включаться или могут не включаться в битовый поток.
[00177] Например, когда размер единицы кодирования не больше, чем минимальный размер квадродерева, единица кодирования не содержит информацию квадро-разбиения. Таким образом, информация квадро-разбиения может быть выведена из второго значения.
[00178] Например, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, больше, чем максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования может не быть двоично разделенной или троично разделенной. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.
[00179] Альтернативно, когда размеры (горизонтальный и вертикальный размеры) единицы кодирования, соответствующей узлу дерева множества типов, являются теми же самыми, что и максимальные размеры (горизонтальный и вертикальный размеры) двоичного дерева и/или в два раза больше, чем максимальные размеры (горизонтальный и вертикальный размеры) троичного дерева, единица кодирования не может далее двоично разделяться или троично разделяться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения. Это объясняется тем, что когда единица кодирования разбивается согласно структуре разбиения двоичного дерева и/или структуре разбиения троичного дерева, генерируется единица кодирования меньшая, чем минимальный размер двоичного дерева и/или минимальный размер троичного дерева.
[00180] Альтернативно, разбиение двоичного дерева или разбиение троичного дерева может быть ограничено на основе размера единицы данных виртуального конвейера (далее, размер буфера конвейера). Например, когда единица кодирования разделяется на под-единицы кодирования, которые не соответствуют размеру буфера конвейера, посредством разбиения двоичного дерева или разбиения троичного дерева, соответствующее разбиение двоичного дерева или разбиение троичного дерева может ограничиваться. Размер буфера конвейера может быть размером максимального блока преобразования (например, 64×64). Например, когда размер буфера конвейера составляет 64×64, разделение, приведенное ниже, может ограничиваться.
[00181] - N×M (N и/или M равно 128) Разбиение троичного дерева для единиц кодирования
[00182] - 128×N (N<=64) Разбиение двоичного дерева в горизонтальном направлении для единиц кодирования
[00183] - N×128 (N<=64) Разбиение двоичного дерева в вертикальном направлении для единиц кодирования
[00184] Альтернативно, когда глубина единицы кодирования, соответствующей узлу дерева множества типов, равна максимальной глубине дерева множества типов, единица кодирования не может далее двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.
[00185] Альтернативно, только когда по меньшей мере одно из разбиения двоичного дерева в вертикальном направлении, разбиения двоичного дерева в горизонтальном направлении, разбиения троичного дерева в вертикальном направлении и разбиения троичного дерева в горизонтальном направлении возможно для единицы кодирования, соответствующей узлу дерева множества типов, может сигнализироваться информация указания разбиения дерева множества типов. В противном случае, единица кодирования не может двоично разбиваться и/или троично разбиваться. Соответственно, информация указания разбиения дерева множества типов может не сигнализироваться, а может выводиться из второго значения.
[00186] Альтернативно, только когда для единицы кодирования, соответствующей узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение двоичного дерева в горизонтальном направлении, или как разбиение троичного дерева в вертикальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация направления разбиения может сигнализироваться. В противном случае, информация направления разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможные направления разбиения.
[00187] Альтернативно, только когда для дерева кодирования, соответствующего узлу дерева множества типов, возможны как разбиение двоичного дерева в вертикальном направлении, так и разбиение троичного дерева в вертикальном направлении, или как разбиение двоичного дерева в горизонтальном направлении, так и разбиение троичного дерева в горизонтальном направлении, информация дерева разбиения может сигнализироваться. В противном случае, информация дерева разбиения может не сигнализироваться, а может выводиться из значения, указывающего возможное разбиение древовидной структуры.
[00188] Фиг. 4 представляет собой вид, показывающий процесс интра-предсказания.
[00189] Стрелки от центра наружу на фиг. 4 могут представлять направления предсказания режимов интра-предсказания.
[00190] Интра-кодирование и/или декодирование может выполняться с использованием опорной выборки соседнего блока текущего блока. Соседний блок может быть восстановленным соседним блоком. Например, интра-кодирование и/или декодирование может выполняться с использованием параметра кодирования или значения опорной выборки, включенной в восстановленный соседний блок.
[00191] Блок предсказания может означать блок, сгенерированный посредством выполнения интра-предсказания. Блок предсказания может соответствовать по меньшей мере одной из 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 и т.д.
[00192] Интра-предсказание может выполняться согласно режиму интра-предсказания для текущего блока. Количество режимов интра-предсказания, которые может иметь текущий блок, может быть фиксированным значением и может быть значением, определяемым по-разному в соответствии с атрибутом блока предсказания. Например, атрибут блока предсказания может содержать размер блока предсказания и форму блока предсказания и т. д.
[00193] Количество режимов интра-предсказания может быть зафиксировано равным N независимо от размера блока. Или количество режимов интра-предсказания может быть 3, 5, 9, 17, 34, 35, 36, 65 или 67 и т.д. Альтернативно, количество режимов интра-предсказания может варьироваться в соответствии с размером блока или типом цветового компонента или обоими. Например, количество режимов интра-предсказания может варьироваться в соответствии с тем, является ли цветовой компонент сигналом яркости или сигналом цветности. Например, когда размер блока становится большим, количество режимов интра-предсказания может увеличиваться. Альтернативно, количество режимов интра-предсказания блока компонента яркости может быть больше, чем количество режимов интра-предсказания блока компонента цветности.
[00194] Режим интра-предсказания может быть неугловым режимом или угловым режимом. Неугловой режим может быть режимом DC или планарным режимом, а угловой режим может быть режимом предсказания, имеющим конкретное направление или угол. Режим интра-предсказания может быть выражен по меньшей мере одним из номера режима, значения режима, символа номера режима, угла режима и направления режима. Количество режимов интра-предсказания может быть M, которое больше 1, включая неугловой и угловой режим. Для интра-предсказания текущего блока может быть выполнен этап определения того, могут ли выборки, включенные в восстановленный соседний блок, использоваться в качестве опорных выборок текущего блока. Когда присутствует выборка, которая не может использоваться в качестве опорной выборки текущего блока, значение, полученное путем дублирования или выполнения интерполяции по меньшей мере одного значения выборки среди выборок, включенных в восстановленный соседний блок, или оба могут использоваться для замены неиспользуемым значением выборки для выборки, таким образом, замененное значение выборки используется в качестве опорной выборки текущего блока.
[00195] Фиг. 7 представляет собой диаграмму, иллюстрирующую опорные выборки, которые могут использоваться для интра-предсказания.
[00196] Как показано на фиг. 7, по меньшей мере одна из линии 0 опорной выборки и линии 3 опорной выборки может использоваться для интра-предсказания текущего блока. На фиг. 7, выборки сегмента A и сегмента F могут быть дополнены выборками, ближайшими к сегменту B и сегменту E, соответственно, вместо извлечения из восстановленного соседнего блока. Информация индекса, указывающая линию опорной выборки, которая должна использоваться для интра-предсказания текущего блока, может сигнализироваться. Когда верхняя граница текущего блока является границей CTU, может быть доступна только линия 0 опорной выборки. Следовательно, в этом случае информация индекса может не сигнализироваться. Когда используется линия опорной выборки, отличная от линии 0 опорной выборки, фильтрация для блока предсказания, который будет описан далее, может не выполняться.
[00197] При интра-предсказании, фильтр может применяться по меньшей мере к одной из опорной выборки и выборки предсказания на основе режима интра-предсказания и текущего размера блока.
[00198] В случае планарного режима, при генерации блока предсказания текущего блока, в соответствии с положением целевой выборки предсказания в блоке предсказания, значение выборки целевой выборки предсказания может быть сгенерировано с использованием взвешенной суммы опорной выборки верхней и левой стороны для текущей выборки, и опорной выборки правой верхней стороны и левой нижней стороны текущего блока. Кроме того, в случае режима DC, при генерации блока предсказания текущего блока, может использоваться среднее значение опорных выборок верхней и левой стороны текущего блока. Кроме того, в случае углового режима, блок предсказания может быть сгенерирован с использованием опорной выборки верхней стороны, левой стороны, правой верхней стороны и/или левой нижней стороны текущего блока. Чтобы сгенерировать значение выборки предсказания, может выполняться интерполяция единицы действительного числа.
[00199] В случае интра-предсказания между цветовыми компонентами, блок предсказания для текущего блока второго цветового компонента может быть сгенерирован на основе соответствующего восстановленного блока первого цветового компонента. Например, первый цветовой компонент может быть компонентом яркости, а второй цветовой компонент может быть компонентом цветности. Для интра-предсказания между цветовыми компонентами, параметры линейной модели между первым цветовым компонентом и вторым цветовым компонентом могут быть получены на основе шаблона. Шаблон может включать в себя верхние и/или левые соседние выборки текущего блока и верхние и/или левые соседние выборки восстановленного блока первого цветового компонента, соответствующего ему. Например, параметры линейной модели могут быть выведены с использованием значения выборки первого цветового компонента, имеющего максимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему, и значения выборки первого цветового компонента, имеющего минимальное значение среди выборок в шаблоне, и значения выборки второго цветового компонента, соответствующего ему. Когда параметры линейной модели выведены, соответствующий восстановленный блок может быть применен к линейной модели, чтобы сгенерировать блок предсказания для текущего блока. В соответствии с форматом видео, субдискретизация может выполняться над соседними выборками восстановленного блока первого цветового компонента и соответствующего восстановленного блока. Например, когда одна выборка второго цветового компонента соответствует четырем выборкам первого цветового компонента, четыре выборки первого цветового компонента могут быть субдискретизированы для вычисления одной соответствующей выборки. В этом случае выведение параметров линейной модели и интра-предсказание между цветовыми компонентами может выполняться на основе соответствующих субдискретизированных выборок. Следует ли или нет выполнять интра-предсказание между цветовыми компонентами и/или диапазон шаблона, может сигнализироваться как режим интра-предсказания.
[00200] Текущий блок может разбиваться на два или четыре подблока в горизонтальном или вертикальном направлении. Разбитые подблоки могут быть последовательно восстановлены. То есть, интра-предсказание может выполняться над подблоком, чтобы сгенерировать подблок предсказания. Кроме того, деквантование и/или обратное преобразование может выполняться над подблоками для генерации остаточных подблоков. Восстановленный подблок может быть сгенерирован путем добавления подблока предсказания к остаточному подблоку. Восстановленный подблок может быть использован в качестве опорной выборки для интра-предсказания под-подблоков. Подблок может быть блоком, содержащим предопределенное количество (например, 16) или более выборок. Соответственно, например, когда текущий блок является блоком 8×4 или 4×8, текущий блок может разбиваться на два подблока. Кроме того, когда текущий блок является блоком 4×4, текущий блок не может разбиваться на подблоки. Когда текущий блок имеет другие размеры, текущий блок может разбиваться на четыре подблока. Информация о том, выполнять ли интра-предсказание на основе подблоков и/или направление разбиения (горизонтальное или вертикальное), может сигнализироваться. Интра-предсказание, основанное на подблоках, может быть ограничено выполнением только тогда, когда используется линия 0 опорной выборки. Когда выполняется интра-предсказание на основе подблока, фильтрация для блока предсказания, которая будет описана позже, может не выполняться.
[00201] Окончательный блок предсказания может быть сгенерирован путем выполнения фильтрации над блоком предсказания, который является интра-предсказанным. Фильтрация может быть выполнена путем применения предопределенных весов к целевой выборке фильтрации, левой опорной выборке, верхней опорной выборке и/или верхней левой опорной выборке. Вес и/или опорная выборка (диапазон, положение и т.д.), используемые для фильтрации, могут быть определены на основе по меньшей мере одного из размера блока, режима интра-предсказания и положения целевой выборки фильтрации в блоке предсказания. Фильтрация может выполняться только в случае предопределенного режима интра-предсказания (например, DC, планарный, вертикальный, горизонтальный, диагональный и/или смежный диагональный режимы). Смежный диагональный режим может быть режимом, в котором k добавляется к диагональному режиму или вычитается из него. Например, k может быть целым положительным числом 8 или меньше.
[00202] Режим интра-предсказания текущего блока может быть энтропийно закодирован/декодирован посредством предсказания режима интра-предсказания блока, расположенного смежно с текущим блоком. Когда режимы интра-предсказания текущего блока и соседнего блока идентичны, информация о том, что режимы интра-предсказания текущего блока и соседнего блока идентичны, может сигнализироваться с использованием информации предопределенного флага. Кроме того, может сигнализироваться информация указателя режима интра-предсказания, который идентичен режиму интра-предсказания текущего блока среди режимов интра-предсказания множества соседних блоков. Когда режимы интра-предсказания текущего блока и соседнего блока различны, информация режима интра-предсказания текущего блока может быть энтропийно кодирована/декодирована посредством выполнения энтропийного кодирования/декодирования на основе режима интра-предсказания соседнего блока.
[00203] Фиг. 5 представляет собой диаграмму, иллюстрирующую вариант осуществления процесса интер-предсказания.
[00204] На фиг. 5 прямоугольник может представлять картинку. На фиг. 5 стрелка представляет направление предсказания. Картинки могут быть классифицированы на внутренние картинки (I-картинки), картинки с предсказанием (предиктивные) (P-картинки) и картинки с двунаправленным предсказанием (би-предиктивные) (B-картинки) в соответствии с их типом кодирования.
[00205] I-картинка может кодироваться посредством интра-предсказания без необходимости меж-картинного (межкадрового) предсказания. Р-картинка может кодироваться посредством меж-картинного предсказания с использованием опорной картинки, которая присутствует в одном направлении (то есть, в прямом направлении или обратном направлении) относительно текущего блока. B-картинка может кодироваться посредством меж-картинного предсказания с использованием опорных картинок, которые предварительно установлены в двух направлениях (то есть прямом направлении и обратном направлении) относительно текущего блока. Когда используется меж-картинное предсказание, кодер может выполнять интер-предсказание или компенсацию движения, а декодер может выполнять соответствующую компенсацию движения.
[00206] Ниже будет подробно описан вариант осуществления меж-картинного (интер-) предсказания.
[00207] Интер-предсказание или компенсация движения могут выполняться с использованием опорной картинки и информации движения.
[00208] Информация движения текущего блока может быть выведена во время интер-предсказания каждым из устройства 100 кодирования и устройства 200 декодирования. Информация движения текущего блока может быть выведена с использованием информации движения восстановленного соседнего блока, информации движения совмещенного блока (также называемого col-блоком или совмещенным блоком) и/или блока, смежного с совмещенным блоком. Совмещенный блок может означать блок, который пространственно расположен в том же положении, что и текущий блок, в ранее восстановленной совмещенной картинке (также упоминаемой как col-картинка или совмещенная картинка). Совмещенная картинка может быть одной картинкой из одной или более опорных картинок, включенных в список опорных картинок.
[00209] Способ выведения информации движения может отличаться в зависимости от режима предсказания текущего блока. Например, режим предсказания, применяемый для интер-предсказания, включает в себя режим AMVP, режим слияния, режим пропуска, режим слияния с разностью векторов движения, режим слияния подблоков, режим треугольного разбиения, режим интер-интра комбинированного предсказания, аффинный режим и т.п. Здесь режим слияния может упоминаться как режим слияния движения.
[00210] Например, когда AMVP используется в качестве режима предсказания, по меньшей мере один из векторов движения восстановленных соседних блоков, векторов движения совмещенных блоков, векторов движения блоков, смежных с совмещенными блоками, и (0, 0) вектор движения могут быть определены в качестве кандидатов вектора движения для текущего блока, и список кандидатов вектора движения генерируется с использованием кандидатов вектора движения. Кандидат вектора движения текущего блока может быть выведен с использованием сгенерированного списка кандидатов вектора движения. Информация движения текущего блока может быть определена на основе выведенного кандидата вектора движения. Векторы движения совмещенных блоков или векторы движения блоков, смежных с совмещенными блоками, могут упоминаться как временные кандидаты вектора движения, а векторы движения восстановленных соседних блоков могут упоминаться как пространственные кандидаты вектора движения.
[00211] Устройство 100 кодирования может вычислять разность векторов движения (MVD) между вектором движения текущего блока и кандидатом вектора движения и может выполнять энтропийное кодирование разности векторов движения (MVD). Кроме того, устройство 100 кодирования может выполнять энтропийное кодирование индекса кандидата вектора движения и генерировать битовый поток. Индекс кандидата вектора движения может указывать оптимального кандидата вектора движения среди кандидатов вектора движения, включенных в список кандидатов вектора движения. Устройство декодирования может выполнять энтропийное декодирование над индексом кандидата вектора движения, включенным в битовый поток, и может выбирать кандидата вектора движения целевого блока декодирования из числа кандидатов вектора движения, включенных в список кандидатов вектора движения, с использованием энтропийно декодированного индекса кандидата вектора движения. Кроме того, устройство 200 декодирования может суммировать энтропийно декодированную MVD и кандидат вектора движения, извлеченный посредством энтропийного декодирования, тем самым выводя вектор движения целевого блока декодирования.
[00212] Между тем, устройство 100 кодирования может выполнять энтропийное кодирование над информацией разрешения вычисленной MVD. Устройство 200 декодирования может регулировать разрешение энтропийно декодированной MVD с использованием информации разрешения MVD.
[00213] Между тем, устройство 100 кодирования вычисляет разность векторов движения (MVD) между вектором движения и кандидатом вектора движения в текущем блоке на основе аффинной модели и выполняет энтропийное кодирование над MVD. Устройство 200 декодирования выводит вектор движения для каждого подблока путем выведения вектора движения аффинного управления целевого блока декодирования через сумму энтропийно декодированной MVD и кандидата вектора движения аффинного управления.
[00214] Битовый поток может включать в себя индекс опорной картинки, указывающий опорную картинку. Индекс опорной картинки может энтропийно кодироваться устройством 100 кодирования и затем сигнализироваться как битовый поток в устройство 200 декодирования. Устройство 200 декодирования может генерировать блок предсказания из целевого блока декодирования на основе выведенного вектора движения и информации индекса опорной картинки.
[00215] Другим примером способа выведения текущей информации движения может быть режим слияния. Режим слияния может означать способ слияния движения множества блоков. Режим слияния может означать режим выведения информации движения текущего блока из информации движения соседних блоков. Когда применяется режим слияния, список кандидатов слияния может генерироваться с использованием информации движения восстановленных соседних блоков и/или информации движения совмещенных блоков. Информация движения может включать в себя по меньшей мере одно из вектора движения, индекса опорной картинки и указателя интер-предсказания. Указатель предсказания может указывать однонаправленное предсказание (предсказание L0 или предсказание L1) или двунаправленное предсказание (предсказание L0 и предсказание L1).
[00216] Список кандидатов слияния может быть списком сохраненной информации движения. Информация движения, включенная в список кандидатов слияния, может быть по меньшей мере одной из информации движения (кандидата пространственного слияния) соседнего блока, смежного с текущим блоком, информации движения (кандидата временного слияния) совмещенного блока текущего блока в опорной картинке, новой информации движения, сгенерированной комбинацией информации движения, выходящей из списка кандидатов слияния, информации движения (кандидата слияния на основе истории) блока, который кодирован/декодирован перед текущим блоком, и нулевого кандидата слияния.
[00217] Устройство 100 кодирования может генерировать битовый поток путем выполнения энтропийного кодирования по меньшей мере над одним из флага слияния и индекса слияния и может сигнализировать битовый поток устройству 200 декодирования. Флаг слияния может быть информацией, указывающей, следует ли выполнять режим слияния для каждого блока, и индекс слияния может быть информацией, указывающей, какой соседний блок среди соседних блоков текущего блока является целевым блоком слияния. Например, соседние блоки текущего блока могут включать в себя левый соседний блок с левой стороны текущего блока, верхний соседний блок, расположенный над текущим блоком, и временной соседний блок, смежный по времени с текущим блоком.
[00218] Между тем, устройство 100 кодирования выполняет энтропийное кодирование над информацией коррекции для коррекции вектора движения среди информации движения кандидата слияния и сигнализирует об этом в устройство 200 декодирования. Устройство 200 декодирования может корректировать вектор движения кандидата слияния, выбранный индексом слияния, на основе информации коррекции. Здесь информация коррекции может включать в себя по меньшей мере одну из информации о том, выполнять ли коррекцию или нет, информации направления коррекции и информации размера коррекции. Как описано выше, режим предсказания, который корректирует вектор движения кандидата слияния на основе сигнализированной информации коррекции, может упоминаться как режим слияния, имеющий разность векторов движения.
[00219] Режим пропуска может быть режимом, в котором информация движения соседнего блока применяется к текущему блоку как есть. Когда применяется режим пропуска, устройство 100 кодирования может выполнять энтропийное кодирование информации о том, что информация движения конкретного блока должна быть использована в качестве информации движения текущего блока для генерации битового потока, и может сигнализировать битовый поток к устройству 200 декодирования. Устройство 100 кодирования может не сигнализировать синтаксический элемент касательно по меньшей мере любого одного из информации о разности векторов движения, флага блока кодирования и уровня коэффициентов преобразования в устройство 200 декодирования.
[00220] Режим слияния подблоков может означать режим, который выводит информацию движения в единицах подблоков блока кодирования (CU). Когда применяется режим слияния подблоков, список кандидатов слияния подблока может быть сгенерирован с использованием информации движения (кандидат временного слияния на основе подблока) подблока, совмещенного с текущим подблоком в опорном изображении, и/или кандидата слияния вектора движения точки аффинного управления.
[00221] Режим треугольного разбиения может означать режим, который выводит информацию движения путем разбиения текущего блока на диагональные направления, выводит каждую выборку предсказания с использованием каждой выведенной информации движения и извлекает выборку предсказания текущего блока путем взвешивания каждой из выведенных выборок предсказания.
[00222] Режим объединенного интер-интра предсказания может означать режим, который выводит выборку предсказания текущего блока путем взвешивания выборки предсказания, сгенерированной с помощью интер-предсказания, и выборки предсказания, сгенерированной с помощью интра-предсказания.
[00223] Устройство 200 декодирования может самостоятельно корректировать выведенную информацию движения. Устройство 200 декодирования может осуществлять поиск в заданной области на основе опорного блока, указанного выведенной информацией движения, и выводить информацию движения, имеющую минимальную SAD, как скорректированную информацию движения.
[00224] Устройство 200 декодирования может компенсировать выборку предсказания, выведенную посредством интер-предсказания, с использованием оптического потока.
[00225] Фиг. 6 представляет собой диаграмму, иллюстрирующую процесс преобразования и квантования.
[00226] Как показано на фиг. 6, процесс преобразования и/или квантования выполняется над остаточным сигналом, чтобы сгенерировать сигнал квантованного уровня. Остаточный сигнал представляет собой разницу между исходным блоком и блоком предсказания (то есть, блоком интра-предсказания или блоком интер-предсказания). Блок предсказания представляет собой блок, сгенерированный посредством интра-предсказания или интер-предсказания. Преобразование может быть первичным преобразованием, вторичным преобразованием или и тем, и другим. Первичное преобразование остаточного сигнала приводит к коэффициентам преобразования, а вторичное преобразование коэффициентов преобразования приводит к вторичным коэффициентам преобразования.
[00227] По меньшей мере одна схема, выбранная из различных схем преобразования, которые предварительно определены, используется для выполнения первичного преобразования. Например, примеры предопределенных схем преобразования включают дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) и преобразование Карунена-Лоэва (KLT). Коэффициенты преобразования, сгенерированные посредством первичного преобразования, могут подвергаться вторичному преобразованию. Схемы преобразования, используемые для первичного преобразования и/или вторичного преобразования, могут быть определены согласно параметрам кодирования текущего блока и/или соседних блоков текущего блока. Альтернативно может сигнализироваться информация о преобразовании, указывающая схему преобразования. Преобразование на основе DCT может включать в себя, например, DCT-2, DCT-8 и т.п. Преобразование на основе DST может включать, например, DST-7.
[00228]
[00229] Сигнал квантованного уровня (коэффициенты квантования) может быть сгенерирован путем выполнения квантования остаточного сигнала или результата выполнения первичного преобразования и/или вторичного преобразования. Сигнал квантованного уровня может сканироваться согласно по меньшей мере одному из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования, в зависимости от режима интра-предсказания блока или размера/формы блока. Например, когда коэффициенты сканируются при диагональном сканировании вверх-вправо, коэффициенты в блочной форме преобразуются в форму одномерного вектора. Помимо диагонального сканирования вверх-вправо, горизонтальная развертка горизонтального сканирования двумерной формы блока коэффициентов или вертикальная развертка вертикального сканирования двумерной формы блока коэффициентов может использоваться в зависимости от режима интра-предсказания и/или размера блока преобразования. Отсканированные коэффициенты квантованного уровня могут быть энтропийно закодированы для вставки в битовый поток.
[00230] Декодер выполняет энтропийное декодирование битового потока для получения коэффициентов квантованного уровня. Коэффициенты квантованного уровня могут быть скомпонованы в двумерной форме блока посредством обратного сканирования. Для обратного сканирования может использоваться по меньшей мере одно из диагонального сканирования вверх-вправо, вертикального сканирования и горизонтального сканирования.
[00231] Коэффициенты квантованного уровня затем могут быть деквантованы, затем могут быть подвергнуты вторичному обратному преобразованию, если необходимо, и, наконец, первичному обратному преобразованию, если необходимо, для генерации восстановленного остаточного сигнала.
[00232] Обратное отображение в динамическом диапазоне может выполняться для компонента яркости, восстановленного посредством интра-предсказания или интер-предсказания, перед внутриконтурной фильтрацией. Динамический диапазон может разбиваться на 16 равных частей, и функция отображения для каждой части может сигнализироваться. Функция отображения может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Функция обратного отображения для выполнения обратного отображения может быть выведена на основе функции отображения. Контурная фильтрация, сохранение опорных картинок и компенсация движения выполняются в области обратного отображения, и блок предсказания, сгенерированный посредством интер-предсказания, преобразуется в отображаемую область посредством отображения с использованием функции отображения, а затем используется для генерации восстановленного блока. Однако, поскольку интра-предсказание выполняется в отображаемой области, блок предсказания, сгенерированный посредством интра-предсказания, может использоваться для генерации восстановленного блока без отображения/обратного отображения.
[00233] Когда текущий блок является остаточным блоком цветового компонента, остаточный блок может быть преобразован в область обратного отображения путем выполнения масштабирования компонента цветности отображенной области. Доступность масштабирования может сигнализироваться на уровне слайса или уровне группы мозаичных элементов. Масштабирование может применяться только тогда, когда доступно отображение для компонента яркости, и разделение компонента яркости и разделение компонента цветности следуют одной и той же древовидной структуре. Масштабирование может выполняться на основе среднего значения выборок блока предсказания яркости, соответствующего блоку цветовой разности. В этом случае, когда текущий блок использует интер-предсказание, блок предсказания яркости может означать отображенный блок предсказания яркости. Значение, необходимое для масштабирования, может быть получено путем обращения к поисковой таблице с использованием индекса фрагмента, которому принадлежит среднее значение выборок блока предсказания яркости. Наконец, путем масштабирования остаточного блока с использованием выведенного значения, остаточный блок может быть переключен в область обратного отображения. Затем восстановление блока компонента цветности, интра-предсказание, интер-предсказание, контурная фильтрация и сохранение опорных картинок могут выполняться в области обратного отображения.
[00234] Информация, указывающая, доступно ли отображение/обратное отображение компонента яркости и компонента цветности, может сигнализироваться через набор параметров последовательности.
[00235] Блок предсказания текущего блока может быть сгенерирован на основе вектора блока, указывающего смещение между текущим блоком и опорным блоком в текущем изображении. Таким образом, режим предсказания для генерации блока предсказания со ссылкой на текущую картинку называется режимом внутриблочного копирования (IBC). Режим IBC может применяться к единицам кодирования M×N (M<=64, N<=64). Режим IBC может включать в себя режим пропуска, режим слияния, режим AMVP и т.п. В случае режима пропуска или режима слияния, формируется список кандидатов слияния, и индекс слияния сигнализируется, так что может быть указан один кандидат слияния. Вектор блока указанного кандидата слияния может использоваться как вектор блока текущего блока. Список кандидатов слияния может включать в себя по меньшей мере одно из пространственного кандидата, кандидата на основе истории, кандидата, основанного на среднем двух кандидатов, и кандидата нулевого слияния. В случае режима AMVP может сигнализироваться вектор разностного блока. Кроме того, вектор блока предсказания может быть выведен из левого соседнего блока и верхнего соседнего блока текущего блока. Индекс для соседнего блока, который должен использоваться, может сигнализироваться. Блок предсказания в режиме IBC включается в текущую CTU или левую CTU и ограничивается блоком в уже восстановленной области. Например, значение вектора блока может быть ограничено таким образом, чтобы блок предсказания текущего блока располагался в области из трех блоков 64×64, предшествующих блоку 64×64, которому принадлежит текущий блок, в порядке кодирования/декодирования. Путем ограничения значения вектора блока таким образом, потребление памяти и сложность устройства в соответствии с реализацией режима IBC могут быть уменьшены.
[00236]
[00237] Далее, будет описан способ генерации списка информации движения в соответствии с вариантом осуществления настоящего изобретения.
[00238] Далее, список информации движения может относиться к списку, в котором хранится информация движения, сгенерированная при кодировании или декодировании изображения.
[00239] В соответствии с вариантом осуществления настоящего изобретения, информация движения, сгенерированная в интер-предсказании, может храниться в списке информации движения, и информация движения может генерироваться с использованием списка информации движения в интер-предсказании следующего целевого блока кодирования/декодирования.
[00240] Здесь, информация движения может означать по меньшей мере одно из вектора движения, индекса опорной картинки, указателя интер-предсказания, как описано выше, а также флага использования списка предсказания, информации списка опорных картинок, опорной картинки, кандидата вектора движения, индекса кандидата вектора движения, кандидата слияния, индекса слияния и тому подобного.
[00241] Список информации движения может хранить информацию движения, сгенерированную в предопределенной области.
[00242] В качестве примера, список информации движения может инициализироваться удалением информации движения из списка информации движения или генерацией нового списка информации движения, когда кодирование/декодирование завершено в предопределенной области, так что область меняется.
[00243] То есть, список информации движения может генерироваться на основе предопределенной области (или предопределенной секции, предопределенной единицы). Здесь, предопределенная область, относящаяся к списку информации движения, может быть единицей, большей, чем единица, в которой выполняется интер-предсказание.
[00244] В качестве примера, предопределенная область, относящаяся к списку информации движения, может представлять собой любое одно из блока, состоящего из одной или более CU, CTU, блока, состоящего из одной или более CTU (например, строки CTU), бруска (кирпичика), мозаичного элемента, слайса, картинки, кадра и группы картинок (GOP).
[00245] Предопределенная область, ассоциированная со списком информации движения, может называться верхней единицей предсказания (UPU) или областью инициализации.
[00246] Между тем, список информации движения может называться списком появления адаптивного вектора движения (AMVOL) или списком предсказателя вектора движения на основе истории (списком HMVP) в соответствии с вариантом осуществления.
[00247] Между тем, список информации движения может использоваться, только когда кодер/декодер работает в режиме интер-предсказания или режиме IBC.
[00248] Фиг. 8 и 9 представляют собой диаграммы, иллюстрирующие кодер и декодер, использующие список информации движения.
[00249] Со ссылкой на фиг. 8 и 9, кодер и декодер могут повышать эффективность предсказания с использованием информации движения, сохраненной в списке информации движения в процессе интер-предсказания или процессе предсказания IBC.
[00250]
[00251] Между тем, список информации движения может инициализироваться или генерироваться, когда начинается кодирование/декодирование новой UPU. Поэтому, когда начинается кодирование/декодирование новой UPU, список информации движения может не иметь информации движения, поскольку интер-предсказание не выполнено в новой UPU. Поскольку список информации движения не имеет информации движения, список информации движения может не использоваться в интер-предсказании. Кроме того, когда количество информации движения, сохраненной в списке информации движения, мало, сложно ожидать эффективного кодирования, поскольку существует мало информации, используемой для интер-предсказания.
[00252] В настоящем изобретении, при выполнении интер-предсказания (или предсказания IBC), когда имеется мало или не имеется информации движения, сохраненной в списке информации движения, предлагается способ дополнительного сохранения предсказанной информации движения в списке информации движения, чтобы генерировать список информации движения.
[00253] Посредством вышеописанного способа, можно повысить эффективность кодирования путем более точного выполнения интер-предсказания с использованием списка информации движения.
[00254]
[00255] Список информации движения в соответствии с настоящим изобретением может хранить информацию движения, сгенерированную в текущей UPU.
[00256] Фиг. 10 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения в соответствии с настоящим изобретением.
[00257] Со ссылкой на фиг. 10, когда начинается кодирование/декодирование новой UPU, этап инициализации списка информации движения является этапом удаления всей информации в списке информации движения или возвращение ее в установленное по умолчанию значение.
[00258] Этап предсказания списка информации движения является этапом предсказания информации движения, подлежащей вводу в список информации движения, и добавления ее в список информации движения.
[00259] Здесь, этап предсказания списка информации движения может добавлять множество предсказанной информации движения в список информации движения.
[00260] Этап интер-предсказания включает в себя этап предсказания информации движения и является этапом предсказания текущего блока через опорную картинку.
[00261] Этап добавления информации движения является этапом добавления информации движения, полученной в результате интер-предсказания, в список информации движения. В соответствии с вариантом осуществления, этап добавления информации движения может опускаться или изменяться. Например, когда выполняется режим троичного разбиения, этап добавления информации движения может опускаться. То есть, когда блоки, являющиеся результатом разбиения в диагональном направлении, совместно используют один и тот же список информации движения в режиме троичного разбиения, этап добавления информации движения может опускаться.
[00262] Этап интер-предсказания и этап добавления информации движения могут выполняться в единицах блоков и могут выполняться для всех блоков в соответствующей UPU.
[00263] После проверки, завершено ли исполнение для всех блоков в UPU, когда исполнение не завершено, процесс переходит к следующему блоку, так что интер-предсказание может выполняться.
[00264] Когда интер-предсказание выполнено над всеми блоками в UPU и список информации движения UPU больше не используется, список информации движения может инициализироваться.
[00265] Фиг. 11 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания с использованием списка информации движения. Описание каждого этапа, проиллюстрированного в блок-схеме последовательности операций на фиг. 11, может быть тем же самым, что и описание фиг. 10.
[00266] Однако, момент времени, в который выполняется этап предсказания списка информации движения согласно фиг. 11, может отличаться от момента времени согласно фиг. 10.
[00267] На фиг. 10, этап предсказания списка информации движения может выполняться после того, как выполнен этап инициализации списка информации движения. То есть, этап предсказания списка информации движения может выполняться вместе с этапом инициализации списка информации движения, и, таким образом, этап предсказания списка информации движения может выполняться, когда UPU изменяется.
[00268] На фиг. 11, этап предсказания списка информации движения может выполняться после того, как выполнен этап добавления информации движения. То есть, предсказание списка информации движения может выполняться всякий раз, когда информация движения добавляется в список информации движения.
[00269] Фиг. 11 отличается от фиг. 10 тем, что дополнительная информация движения может быть предсказана с использованием информации движения, хранящейся в текущем списке информации движения.
[00270] Кроме того, в случае фиг. 11, предсказанная информация движения может также непрерывно обновляться или добавляться в список информации движения путем предсказания более эффективных кандидатов, но предсказание списка информации движения выполняется над каждым блоком, так что объем вычислений системы может возрасти.
[00271] В блок-схемах последовательности операций примеров согласно фиг. 10 и 11, порядок каждого этапа может изменяться. При кодировании/декодировании блока другой UPU в ситуации, где кодирование/декодирование текущей UPU не завершено, каждый этап на фиг. 10 и 11 может применяться или опускаться в различном порядке.
[00272] Когда отсутствует отношение пространственной привязки между блоками на границе UPU, как в случае, когда UPU представляет собой единицу картинки, единицу слайса или единицу мозаичного элемента, порядок кодирования/декодирования не может проходить между UPU, отличающимися друг от друга. В этом случае, когда кодирование/декодирование текущей UPU не закончено, кодирование может выполняться в той же самой UPU даже после перехода к следующему блоку.
[00273] Однако, когда UPU разделена на множество единиц в пределах одной и той же картинки, слайса или мозаичного элемента, случай, в котором следующий блок кодирования/ декодирования принадлежит другой UPU, может возникать, даже когда кодирование/декодирование не закончено в текущей UPU в соответствии с последовательностью кодирования/декодирования. В этом случае, отличающиеся друг от друга UPU могут иметь различные списки информации движения, и информация кодирования текущего блока может храниться в списке информации движения UPU, которой принадлежит текущий блок. В этом случае, список информации движения может также быть предсказан из списка информации движения, сохраненного в другой UPU до настоящего времени.
[00274] Между тем, этап предсказания списка информации движения может выполняться как в момент времени инициализации списка информации движения, так и в момент времени добавления информации движения.
[00275] Фиг. 12 представляет собой блок-схему последовательности операций, иллюстрирующую способ интер-предсказания, в котором предсказание списка информации движения выполняется в момент времени инициализации списка информации движения и в момент времени добавления информации движения. Описание каждого этапа, проиллюстрированного в блок-схеме последовательности операций на фиг. 12, может быть тем же самым, что и на фиг. 10.
[00276] Способ интер-предсказания с использованием списка информации движения был описан на фиг. 10-12. Этап интер-предсказания на фиг. 10-12 может заменяться на этап предсказания IBC, и вектор блока, сгенерированный посредством этапа предсказания IBC, может быть включен в список информации движения. В следующем описании имеется в виду, что интер-предсказание включает в себя предсказание IBC.
[00277] Между тем, при использовании совместно используемого списка слияния в предсказании IBC, этап добавления информации движения может опускаться.
[00278]
[00279] Фиг. 13 и 14 иллюстрируют кодер и декодер, включающие в себя предсказатель списка информации движения.
[00280] Со ссылкой на фиг. 13 и 14, модуль интер-предсказания выполняет интер-предсказание над текущим блоком посредством опорной картинки. Здесь, модуль интер-предсказания может выполнять интер-предсказание, обращаясь к списку информации движения.
[00281] Модуль добавления списка информации движения может добавлять информацию движения, сгенерированную в результате интер-предсказания, в список информации движения.
[00282] Модуль инициализации списка информации движения может инициализировать информацию, сохраненную в списке информации движения, в соответствии с изменением UPU или созданием нового списка информации движения.
[00283] Модуль предсказания списка информации движения может предсказывать информацию движения и сохранять информацию движения в списке информации движения. Здесь, можно обращаться к различным типам информации в соответствии со способом предсказания списка информации движения, выполняемым модулем предсказания списка информации движения.
[00284] Соединение (A) показывает соединение между модулями в случае, если модуль предсказания списка информации движения использует информацию текущего блока, такую как пространственное и временное положение текущего блока; соединение (B) показывает соединение между модулями в случае, если модуль предсказания списка информации движения использует информацию блоков, пространственно и во времени смежных с текущим блоком, или информацию опорной картинки с различными типами информации, к которым может обращаться текущий блок; и соединение (C) показывает соединение между модулями в случае, если модуль предсказания списка информации движения использует информацию, сохраненную в текущем списке информации движения. Поэтому, по меньшей мере одно из соединения (A), (B) и (C) может быть опущено в соответствии со способом предсказания, выполняемым модулем предсказания списка информации движения.
[00285] Также, как показано на фиг. 10, модуль предсказания списка информации движения может выполняться, когда список информации движения инициализируется. В этом случае, модуль предсказания списка информации движения может работать путем приема сигнала от модуля инициализации списка информации движения через соединение (D). Как показано на фиг. 11, при работе модуля предсказания списка информации движения независимо от инициализации списка информации движения, соединение (D) может быть опущено.
[00286] Между тем, модуль кодирования информации движения на фиг. 13 может кодировать информацию движения, сгенерированную в результате интер-предсказания. Модуль декодирования информации движения, показанный на фиг. 14, декодирует сигнал, закодированный модулем кодирования информации движения согласно фиг. 13, и позволяет выполнять интер-предсказание так же, как и кодер, посредством декодированного сигнала.
[00287]
[00288] Указатель, указывающий, следует ли применить список информации движения во время интер-предсказания, может передаваться в наборе параметров, таком как набор параметров последовательности или набор параметров картинки, заголовок мозаичного элемента, заголовок слайса и тому подобное.
[00289] Фиг. 15 представляет собой диаграмму, иллюстрирующую вариант осуществления, который выполняет сигнализацию, включающую в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров последовательности (SPS).
[00290] Фиг. 16 представляет собой диаграмму, иллюстрирующую вариант осуществления, который выполняет сигнализацию, включающую в себя указатель, указывающий, следует ли применить список информации движения к синтаксису набора параметров картинки (PPS).
[00291] Фиг. 17 представляет собой диаграмму, иллюстрирующую вариант осуществления, который выполняет сигнализацию, включающую в себя указатель, указывающий, следует ли применить список информации движения к синтаксису заголовка слайса.
[00292] На фиг. 15-17, amvol_enable_flag является информацией, указывающей, разрешено ли интер-предсказание с использованием списка информации движения. Когда amvol_enable_flag имеет значение “истинно”, это указывает, что интер-предсказание с использованием списка информации движения разрешено, а когда имеет значение “ложно”, это указывает, что интер-предсказание с использованием списка информации движения не разрешено.
[00293] Кроме того, amvol_prediction_flag является информацией, указывающей, выполняется ли предсказание списка информации движения. То есть, amvol_prediction_flag может указывать, следует ли выполнить этап предсказания списка информации движения согласно фиг. 10-12. amvol_prediction_flag может сигнализироваться, только когда amvol_enable_flag имеет значение “истинно”.
[00294] Между тем, когда amvol_enable_flag и amvol_prediction_flag сигнализируются в заголовке слайса, как в примере на фиг. 17, сигнализация выполняется, когда тип слайса не является I-слайсом. Это объясняется тем, что слайс типа I-слайса не выполняет интер-предсказание, так что интер-предсказание с использованием списка информации движения не выполняется. Однако когда IBC выполняется в слайсе типа I-слайса и список информации движения доступен в IBC, amvol_enable_flag может сигнализироваться. Кроме того, когда IBC выполняется над слайсом типа I-слайса и предсказание списка информации движения доступно, amvol_prediction_flag может сигнализироваться.
[00295]
[00296] Далее, будет описан способ предсказания списка информации движения в соответствии с настоящим изобретением.
[00297] В настоящей спецификации, текущая UPU может означать UPU, которой принадлежит текущий блок, и текущий список информации движения может означать список информации движения текущего блока.
[00298] Кроме того, предсказание списка информации движения означает предсказание информации движения с целью включения в инициализированный или вновь сгенерированный список информации движения.
[00299] Информация движения текущего списка информации движения может быть предсказана с использованием области, в которой кодирование/декодирование завершено раньше, чем текущая UPU (то есть, предварительно восстановленной области).
[00300] Поскольку информация движения изображения имеет тенденцию, подобную смежной по пространству и по времени области, текущая UPU может иметь информацию движения, аналогичную другим смежным по пространству и по времени областям. Поэтому, путем обращения к информации движения в предварительно восстановленной области, можно предсказать информацию движения списка информации движения текущей UPU.
[00301] Например, может существовать способ предсказания информации движения списка информации движения из области, смежной по пространству и времени, для текущего блока и способ предсказания информации движения списка информации движения текущей UPU из списка информации движения предварительно восстановленной UPU.
[00302]
[00303] 1. Способ предсказания информации движения списка информации движения из области, смежной по пространству и времени с текущим блоком
[00304]
[00305] Возможно предсказать информацию движения текущего списка информации движения из областей, смежных по пространству и времени и принадлежащих UPU, отличающимся от текущей UPU, включающей в себя текущий блок.
[00306] Фиг. 18 является примером предсказания информации движения текущего списка информации движения из области, смежной по времени с текущим блоком.
[00307] На фиг. 18 предполагается, что UPU является единицей картинки. Поэтому, когда картинка изменяется, список информации движения может быть также инициализирован.
[00308] Фиг. 18 иллюстрирует способ предсказания информации движения списка информации движения (AMOVL) из опорной картинки, к которой обращается текущая картинка. Здесь, опорная картинка является предварительно восстановленной картинкой и может содержать информацию движения, используемую, чтобы восстановить картинку.
[00309] Со ссылкой на фиг. 18, информация движения может быть предсказана из соответствующего блока (далее упоминается как “временной соседний блок”) опорной картинки, который пространственно идентичен, но по времени отличается от текущего блока кодирования (например, CU, PU, макроблока, CTU и т.д.), подлежащего кодированию/декодированию в текущей картинке, и может добавляться в текущий список информации движения.
[00310] Поскольку список информации движения инициализируется в момент времени, когда восстановлен первый блок кодирования текущей картинки, не должно иметься информации, сохраненной в списке информации движения. Однако, в примере на фиг. 18, к которому применяется настоящее изобретение, можно видеть, что информация движения A’, B’ и C’, выведенная из временных соседних блоков опорной картинки, добавляется в список информации движения.
[00311] Фиг. 19 представляет собой диаграмму, иллюстрирующую пример предсказания информации движения текущего списка информации движения из области, пространственно смежной с текущим блоком кодирования.
[00312] На фиг. 19, предполагается, что UPU является единицей слайса. Поэтому, может существовать множество UPU в одной картинке.
[00313] Фиг. 19 показывает способ предсказания информации движения списка информации движения (AMOVL) блока, пространственно смежного с текущим блоком кодирования (далее упоминается как “пространственный соседний блок”).
[00314] Со ссылкой на фиг. 19, UPU 0 состоит из трех блоков и соответствует предварительно восстановленной области, которая уже была восстановлена.
[00315] Поскольку список информации движения инициализируется в момент времени, когда восстановлен первый блок кодирования UPU 1, не должно иметься информации, сохраненной в списке информации движения. Однако, в примере на фиг. 18, к которому применяется настоящее изобретение, информация движения списка информации движения может быть предсказана путем обращения к информации движения области, пространственно смежной с текущим блоком кодирования, из предварительно восстановленной UPU 0. Поэтому, можно видеть, что информация движения A и B добавляется в список информации движения UPU 1.
[00316] Между тем, описание выше было приведено на основе блока кодирования согласно фиг. 18 и 19, но может быть описано на основе единицы дерева кодирования (CTU), единицы кодирования (CU), единицы предсказания (PU), единицы преобразования (TU), макроблока или блока предопределенного размера.
[00317]
[00318] Блок кодирования может хранить информацию движения в единицах подблоков. Соответственно, разная информация движения может обеспечиваться в единицах подблоков, и к информации движения можно обращаться независимо от типа разбиения блока кодирования.
[00319] Даже в случае предсказания списка информации движения из области, смежной по пространству и времени, можно обращаться к подблоку смежного по пространству и времени блока кодирования. Здесь, поскольку обращение ко всем подблокам требует большого количества вычислений, предсказание списка информации движения может выполняться посредством обращения к подблоку, имеющем предопределенный диапазон или положение. Репрезентативное значение n подблоков может использоваться вместо минимальной единицы, так что информация движения всех подблоков не сохраняется.
[00320] В качестве примера, когда размер подблока составляет 4×4, четыре подблока принадлежат области 8×8. Путем выбора репрезентативного значения из четырех подблоков и сохранения только одной информации движения в области 8×8, можно уменьшить использование памяти для хранения информации движения подблока. Здесь, предсказание списка информации движения может обращаться к информации движения, указанной в качестве репрезентативной в области 8×8.
[00321] Диапазон для выбора репрезентативного значения подблоков может быть задан в различных размерах, таких как 4×4, 8×8, 16×16 и т.п. Способ выбора репрезентативного значения из подблоков может включать в себя способ использования фиксированного положения в диапазоне выбора репрезентативного значения, способ учета частоты появления, способ использования среднего значения и т.п. Кроме того, репрезентативное значение может определяться с использованием по меньшей мере одного из взвешенной суммы, взвешенного среднего значения, медианного значения, минимального значения и максимального значения, в дополнение к среднему значению.
[00322]
[00323] При предсказании списка информации движения из смежной по времени области, поскольку картинка временного соседнего блока отличается от текущей картинки, и опорная картинка временного соседнего блока отличается от опорной картинки текущего блока, временное расстояние, указанное информацией движения, может варьироваться.
[00324] Например, в случае, где текущей картинкой является POC 4, картинкой временного соседнего блока, к которой обращаются для предсказания списка информации движения, является POC 8, опорной картинкой текущего блока является POC 8, и опорной картинкой временного соседнего блока является POC 1, временное расстояние между текущей картинкой и опорной картинкой текущего блока имеет различие на четыре относительно POC, и временное расстояние между картинкой временного соседнего блока и опорной картинкой временного соседнего блока имеет различие на семь относительно POC. Кроме того, поскольку текущий блок обращается к будущей картинке, а временной соседний блок обращается к прошлой картинке, можно видеть, что временные направления обращения также противоположны друг другу.
[00325] Поэтому, необходимо предсказывать и корректировать изменение в информации движения во временных интервалах. Это называется масштабированием информации движения.
[00326] Когда предсказание списка информации движения выполняется из смежной по времени области, масштабирование информации движения может также применяться к информации движения, к которой обращаются для предсказания списка информации движения.
[00327] Даже в случае предсказания списка информации движения из временного соседнего блока, можно ожидать повышения эффективности кодирования за счет масштабирования информации движения.
[00328] Однако масштабирование информации движения может требовать большого объема вычислений. Поэтому, при выполнении предсказания списка информации движения, масштабирование информации движения может опускаться, или информация движения, требующая масштабирования информации движения, может не использоваться для предсказания.
[00329] Когда имеет место незначительное движение временного соседнего блока, масштабирование информации движения может не требоваться.
[00330] Альтернативно, масштабирование информации движения может опускаться, когда временной интервал между текущей картинкой и опорной картинкой текущего блока равен временному интервалу между картинкой временного соседнего блока и опорной картинкой временного соседнего блока или меньше, чем предопределенный диапазон.
[00331] Как таковая, только информация движения, которая не требует масштабирования информации движения, используется для предсказания, и соответственно можно избежать увеличения объема вычислений из-за масштабирования информации движения.
[00332] Между тем, информации движения, требующей масштабирования информации движения, может назначаться более низкий приоритет, чем информации движения, которая не требует масштабирования информации движения при предсказании.
[00333]
[00334] 2. Способ предсказания информации движения списка информации движения из списка информации движения предварительно восстановленной UPU
[00335]
[00336] Настоящий способ является способом выполнения предсказания списка информации движения текущей UPU с использованием списка информации движения предварительно восстановленной UPU.
[00337] UPU могут иметь списки информации движения, отличающиеся друг от друга, и смежные по пространству и времени UPU могут иметь списки информации движения, сходные друг с другом. Поэтому, текущая UPU может предсказывать информацию движения текущего списка информации движения путем обращения к списку информации движения смежной по пространству и времени UPU, которая предварительно восстановлена.
[00338]
[00339] Фиг. 20 представляет собой диаграмму, иллюстрирующую пример способа выполнения предсказания текущего списка информации движения с обращением к списку информации движения предварительно восстановленной UPU.
[00340] На фиг. 20 показан момент времени, когда первый блок кодирования UPU 1 восстановлен, и список информации движения может быть инициализирован в этот момент времени, так что информация движения, сгенерированная из текущей UPU (UPU 1), не может быть добавлена.
[00341] В примере на фиг. 20, к которому применяется настоящее изобретение, с обращением к списку информации движения предварительно восстановленной UPU 0, предсказание списка информации движения выполняется путем добавления информации движения списка информации движения UPU 0 в список информации движения UPU 1.
[00342] После того, как интер-предсказание первого блока текущей картинки окончено, информация движения первого блока может быть добавлена в список информации движения. Здесь, соответствующая информация движения может быть установлена, чтобы иметь самое низкое значение индекса в списке информации движения. Значения индекса информации движения, существующей в существующем списке информации движения, могут увеличиваться на единицу и таким образом сохраняться.
[00343] Альтернативно, информация движения первого блока может быть установлена, чтобы иметь предопределенное значение индекса в списке информации движения. Значение индекса информации движения, существующей в существующем списке информации движения, может сохраняться при увеличении на единицу.
[00344]
[00345] Между тем, когда вся картинка представляет собой UPU, последний блок предварительно восстановленной картинки кодируется/декодируется, и затем окончательный список информации движения, в котором сохранена информация движения блока, используется для предсказания списка информации движения первого блока текущей картинки.
[00346] То есть, вся или часть информации движения, сохраненной в окончательном списке информации движения UPU предварительно восстановленной картинки, используется, чтобы предсказывать или инициализировать список информации движения текущей UPU, которая является текущей картинкой. Здесь, UPU предварительно восстановленной картинки может называться опорной UPU.
[00347] Список информации движения может не хранить информацию движения из текущей картинки перед тем, как выполняется интер-предсказание первого блока текущей картинки. Это объясняется тем, что отсутствует информация движения в текущей картинке. Здесь, список информации движения может быть предсказан или инициализирован путем сохранения некоторой или всей информации движения, сохраненной в окончательном списке информации движения опорной UPU, в текущем списке информации движения. Информация движения, сохраненная в текущем списке информации движения через предсказание или инициализацию списка информации движения, может использоваться для интер-предсказания первого блока текущей картинки.
[00348]
[00349] Когда текущей список информации движения предсказывается из списка информации движения предварительно восстановленной области, можно обращаться к промежуточно сконфигурированному списку информации движения вместо окончательно сконфигурированного списка информации движения, в предварительно восстановленной области.
[00350] Список информации движения может накапливать и сохранять информацию движения, сгенерированную в соответствующей UPU, и может также удалять сохраненную информацию движения. Поэтому, по мере выполнения кодирования/декодирования, сохраненная информация может изменяться. При предсказании или инициализации текущего списка информации движения, в случае, когда местоположение блока кодирования для выполнения предсказания посредством текущего списка информации движения удалено от местоположения генерации информации движения, окончательно сохраненной списком информации движения в предварительно восстановленной области, к которой обращается текущий список информации движения, эффективность предсказания списка информации движения может снижаться.
[00351] Например, когда UPU является единицей картинки, информация движения, окончательно сохраненная в списке информации движения, может быть информацией движения, сгенерированной из блока кодирования снизу справа картинки. Здесь, когда количество информации движения, сохраненной в списке информации движения, ограничено, информация движения, сгенерированная рядом с верхним левым концом, который является начальной частью картинки из окончательно сохраненной информации движения, удаляется из списка информации движения, а информация движения рядом с нижним правым концом, который является конечной частью картинки, может сохраняться в списке информации движения. Поскольку первый блок кодирования текущей UPU соответствует верхней левой области картинки, информация движения, сгенерированная из нижней правой области опорной картинки, имеет низкую корреляцию, при этом эффективность предсказания невысока. При предсказании или инициализации списка информации движения, эффективность кодирования может быть выше при обращении к списку информации движения во время сохранения информации рядом с верхней левой областью, вместо предварительно восстановленного списка информации движения, который окончательно создан, чем при обращении к окончательному списку информации движения.
[00352] Однако, использование памяти значительно выше, когда список информации движения сохраняется на всех этапах. Соответственно, после копирования и сохранения предопределенного списка информации движения в конкретный момент времени так, что использование памяти может быть уменьшено, можно отдельно использовать буфер опорного списка информации движения, который может использоваться, чтобы предсказывать или инициализировать список информации движения.
[00353] Например, списки информации движения верхней левой и нижней правой областей единицы UPU могут сохраняться в буфере опорного списка информации движения.
[00354]
[00355] Кроме того, когда список информации движения предварительно восстановленной картинки используется для предсказания списка информации движения, текущая картинка отличается от предварительно восстановленной картинки, и опорная картинка текущего блока отличается от опорной картинки, к которой обращается информация движения в списке информации движения предварительно восстановленной картинки. Здесь, поскольку эффективность предсказания может снижаться вследствие разницы временного расстояния между предварительно восстановленной картинкой и опорной картинкой, к которой обращается информация движения, может использоваться коррекция, такая как масштабирование информации движения и тому подобное.
[00356]
[00357] Кроме того, вышеописанный способ может назначать UPU для обращения. В качестве способа назначения UPU для обращения, существует способ разрешения кодеру и декодеру обращаться к одной и той же UPU путем передачи и приема закодированного сигнала и способ пропуска дополнительной передачи и приема сигнала за счет выбора UPU предопределенным способом.
[00358] Хотя на фиг. 20 описан способ копирования всего списка информации движения опорной UPU в качестве способа предсказания текущего списка информации движения, может применяться способ копирования только части информации движения из списка информации движения в текущий список информации движения.
[00359] В качестве примера, только информация движения ниже предопределенного индекса из списка информации движения опорной UPU может добавляться в текущий список информации движения.
[00360]
[00361] 3. Способ предсказания информации движения текущего списка информации движения из информации движения, ранее включенной в текущий список информации движения
[00362]
[00363] Когда количество информации движения, сохраненной в списке информации движения, является недостаточным, недостаточное количество списка информации движения может быть предсказано и добавлено из текущего списка информации движения.
[00364] Дополнительное предсказание информации движения текущего списка информации движения из информации движения, ранее включенной в текущий список информации движения, может выполняться по меньшей мере в один из момента времени после добавления информации движения в список информации движения, момента времени, который добавлен, и момента времени, в который информация движения генерируется в блоке кодирования, прежде чем информация движения добавляется в список информации движения.
[00365]
[00366] Фиг. 21 представляет собой диаграмму, иллюстрирующую способ выполнения предсказания списка информации движения из информации движения, хранящейся в текущем списке информации движения.
[00367] Со ссылкой на фиг. 21, можно видеть, что информация движения А, сгенерированная интер-предсказанием первого блока кодирования, добавляется в список информации движения (обновление AMVOL). Это означает состояние, в котором только одна информация движения сохранена в списке информации движения. Поэтому, когда интер-предсказание выполняется посредством списка информации движения, эффективность кодирования может ухудшаться.
[00368] На фиг. 21 можно видеть, что предсказание списка информации движения выполняется перед выполнением интер-предсказания следующего блока кодирования (или после обновления списка информации движения). Количество информации движения, хранящейся в списке информации движения, может быть увеличено путем предсказания информации движения A’ и A’’ из информации движения А, сохраненной в текущем списке информации движения, и сохранения ее в списке информации движения. Путем увеличения количества информации движения в текущем списке информации движения, эффективность интер-предсказания с использованием списка информации движения может быть улучшена.
[00369]
[00370] Далее, информация движения, существующая в текущем списке информации движения, называется существующей информацией движения, и вновь предсказанная информация движения называется предсказанной информацией движения.
[00371] Следующие способы 1)-3) являются примерами способа выведения предсказанной информации движения с использованием существующей информации движения.
[00372]
[00373] 1) Способ преобразования вектора движения существующей информации движения и выведения предсказанной информации движения
[00374]
[00375] Вектор движения представляет, как движение, пространственное расстояние между блоком, использующим соответствующую информацию движения, и областью, к которой следует обращаться. Поэтому, когда вектор движения преобразуется, область, к которой следует обращаться, изменяется.
[00376] Например, существует способ модифицирования вектора движения существующей информации движения с использованием предопределенного способа.
[00377] Способ модифицирования вектора движения может быть по меньшей мере одним из добавления смещения, масштабирования и зеркального отражения.
[00378] Добавление смещения является способом модифицирования вектора движения путем добавления предопределенного смещения к вектору движения.
[00379] В качестве примера, вектор движения может быть выражен как MV(x, y), имеющий смещение по оси x и смещение по оси y, и путем добавления предопределенного смещения dx, dy к MV(x, y) можно сгенерировать модифицированный вектор движения MV’(x+dx, y+dy). Здесь, dx и dy могут быть целыми, и dx и dy могут быть значениями, отличающимися друг от друга.
[00380] Масштабирование является способом модифицирования вектора движения путем умножения предопределенного коэффициента увеличения sx и sy на вектор движения MV(x, y). Может генерироваться MV’(sx*x, sy*y), который представляет собой вектор движения, модифицированный посредством масштабирования. С использованием разных коэффициентов увеличения, могут генерироваться различные модифицированные векторы движения. Здесь, sx и sy могут быть целыми, и sx и sy могут быть значениями, отличающимися друг от друга.
[00381] Зеркальное отражение является способом модифицирования вектора движения путем реверсирования направления при поддержании размера вектора движения. Например, когда зеркальное отражение оси x и оси y применяется к вектору движения MV(x, y), можно сгенерировать MV’(-x, -y), который представляет собой модифицированный вектор движения. Путем определения применяемой оси, можно сгенерировать различные модифицированные векторы движения.
[00382]
[00383] 2) Способ преобразования опорной информации существующей информация движения и выведения предсказанной информации движения
[00384]
[00385] Опорная информация является информацией об опорной картинке, включающей в себя область, к которой обращаются в интер-предсказании. Путем изменения опорной информации, включенной в информацию движения, опорная картинка изменяется так, что область, к которой обращаются, может изменяться. Даже в случае того же самого вектора движения, когда опорная картинка изменяется, информация пиксела, к которому обращаются, может изменяться, и, таким образом, результат интер-предсказания может изменяться. Здесь, вектор движения корректируется с использованием расстояния на временной оси между текущей картинкой и опорной картинкой существующей информации движения и расстояния на временной оси между текущей картинкой и измененной опорной картинкой, тем самым улучшая точность предсказания информации движения.
[00386] Фиг. 22 является примером, иллюстрирующим процесс выведения предсказанной информации движения путем изменения опорной картинки существующей информации движения и корректирования вектора движения соответствующим образом.
[00387] Со ссылкой на фиг. 22, текущая картинка расположена в точке t на временной оси, и опорная картинка, к которой может обращаться текущая картинка, расположена в точках t-k, t-m и t+n на временной оси. Текущий список информации движения имеет вектор движения А, обращающийся к L0 опорной картинке 0, которая является опорной картинкой в момент времени t-m с нулевым индексом.
[00388] Информация движения А может быть скорректирована с учетом расстояния (картинка счетчика, POC) на временной оси между текущей картинкой и каждой опорной картинкой, предполагая, что движение объекта близко к линейному в пределах короткого промежутка времени.
[00389] Когда опорная информация изменяется на L0 опорную картинку 1, которая является опорной картинкой в момент времени t-k, и L1 опорную картинку 0, которая является опорной картинкой в момент времени t+n, информация движения А может быть скорректирована в A’ и A’’, соответственно, с учетом расстояния на временной оси между картинкой и опорной картинкой. Предсказанная информация движения, выведенная вышеописанным образом, может добавляться в список информации движения.
[00390]
[00391] 3) Способ выведения предсказанной информации движения с использованием множества существующей информации движения
[00392]
[00393] Когда две или более информаций движения присутствуют в списке информации движения, предсказанная информация движения может выводиться путем частичного использования каждой из существующей информации движения или использования среднего из двух или более информаций движения.
[00394] Кроме того, по меньшей мере одно из статистических значений, таких как взвешенная сумма, взвешенное среднее значение, медианное значение, минимальное значение, максимальное значение и тому подобное, может использоваться, в дополнение к среднему.
[00395] Между тем, опорная информация любой одной из существующей информации движения может использоваться в качестве опорной информации предсказанной информации движения.
[00396] Альтернативно, может выводиться предсказанная информация движения, имеющая опорную информацию, отличающуюся от опорной информации существующей информации движения.
[00397] В качестве примера, опорная информация может сигнализироваться в верхнем наборе параметров, заголовке слайса или тому подобном, и картинка, указанная первым индексом списка опорных картинок, может использоваться в качестве опорной информации предсказанной информации движения.
[00398]
[00399] 4. Способ предсказания предопределенной информации движения как информации движения текущего списка информации движения
[00400]
[00401] Данный способ является способом предсказания предопределенной информации движения как информации движения текущего списка информации движения. Конкретно, информация движения, определенная аналогично в кодере и декодере, может добавляться в текущий список информации движения.
[00402] Предопределенная информация движения может включать в себя информацию вектора движения, имеющего конкретное значение движения в направлениях x и y, такое как (0, 0), (0, 1), (0, -1), (1, 0), (-1, 0) и тому подобное.
[00403] Кроме того, опорная информация предопределенной информации движения может определяться заранее, например, “0”-ая картинка списка L0 опорных картинок или “0”-ая картинка списка L1 опорных картинок.
[00404] С другой стороны, кодер может генерировать флаг, указывающий, следует или нет использовать предопределенную информацию движения, и доставлять его на декодер.
[00405] Когда существует множество предопределенной информации движения, кодер может генерировать идентификатор (или индекс и т.д.), указывающий, какую информацию движения следует применить, и передавать его на декодер.
[00406] Декодер может определять, следует ли применить предопределенную информацию движения и какую информацию движения следует применить, на основе переданной информации.
[00407]
[00408] Может существовать случай, когда отсутствует предварительно восстановленная область, к которой может обращаться текущая UPU, или случай, когда количество информации движения, которая может предсказываться из предварительно восстановленной области, к которой обращаются, достаточно. В таких случаях, вышеописанные способы 3 и 4 могут использоваться для предсказания списка информации движения.
[00409]
[00410] 5. Способ исключения кандидатов, перекрытых другими способами предсказания движения
[00411]
[00412] Множество способов интер-предсказания могут использоваться в кодировании и декодировании, и информация движения, включенная в список информации движения, может использоваться для предсказания информации движения в различных способах интер-предсказания. Здесь, кандидат предсказания движения, используемый способом интер-предсказания, может перекрываться предсказанной информацией движения списка информации движения.
[00413] В качестве примера, информация движения кандидата временного слияния в режиме слияния и информация движения, предсказанная для списка информации движения, идентичны и, таким образом, перекрываются друг с другом.
[00414] В вышеуказанном случае, при использовании той же самой информации движения для интер-предсказания, эффективность предсказания может ухудшаться. Поэтому, с учетом способа предсказания движения (например, кандидат слияния в режиме слияния, кандидат вектора движения в режиме AMVP и т.д.), используемого для интер-предсказания, информация движения может устанавливаться, чтобы иметь более разнообразную предсказанную информацию без перекрытия.
[00415]
[00416] Когда кандидаты способа предсказания движения и предсказанная информация движения списка информации движения перекрывают друг друга, можно определить, следует ли использовать предсказанную информацию движения списка информации движения в соответствии с приоритетом.
[00417] Когда приоритет кандидатов способа предсказания движения является высоким, предсказанная информация движения списка информации движения может не использоваться. То есть, предсказанная информация движения может не включаться в список информации движения.
[00418] Напротив, когда приоритет кандидатов способа предсказания движения является низким, может использоваться предсказанная информация движения списка информации движения. То есть, предсказанная информация движения может включаться в список информации движения. Кандидат способа предсказания движения может не включаться в список информации движения.
[00419] Кроме того, когда приоритет кандидатов способа предсказания движения и приоритет предсказанной информации движения списка информации движения являются одинаковыми, предсказанная информация движения списка информации движения может использоваться или может заменяться на предопределенную информацию движения.
[00420]
[00421] Чтобы препятствовать перекрытию предсказанной информации движения списка предсказания движения и кандидата способа предсказания движения, предсказанный список информации движения списка информации движения может быть установлен, чтобы выводиться в предопределенном положении, которое не перекрывается с положением блока кандидата способа предсказания движения в момент времени, когда начинается кодирование/ декодирование.
[00422] Например, может быть назначена совмещенная единица CTU, и информация движения может выводиться из предопределенного положения в CTU.
[00423]
[00424] Фиг. 23 представляет собой диаграмму, иллюстрирующую способ предсказания списка информации движения, который не перекрывается с кандидатом способа предсказания движения. На фиг. 23, положения C и H, указанные диагональным шаблоном (диагональный шаблон от верхнего правого конца в нижний левый конец), могут обращаться к положениям временных кандидатов, которые могут использоваться в интер-предсказании текущего блока кодирования.
[00425] Со ссылкой на фиг. 23, предварительно восстановленная область, используемая для предсказания списка информации движения, может быть установлена в область в положении, отличающемся от положений C и H.
[00426] Как показано на фиг. 23, информация движения списка информации движения может быть установлена как подлежащая выводу в положениях a, b, c, d и e за исключением положений C и H.
[00427] Кроме того, при добавлении информации движения в список информации движения, та же самая информация движения, что и информация движения положений C или H, не может добавляться в список информации движения.
[00428] Фиг. 24 представляет собой диаграмму, иллюстрирующую вариант осуществления установки положения, к которому обращаются для предсказания списка информации движения в единицах CTU, когда положения временных кандидатов способа предсказания движения являются теми же самыми, что и положения C и H на фиг. 23.
[00429] При конфигурировании опорного положения в единицах CTU таким же образом, что и на фиг. 24, можно упростить структуру предсказания списка информации движения с использованием фиксированного положения при повышении эффективности кодирования путем обращения к области, не предсказанной существующим способом предсказания движения.
[00430] На фиг. 24, блок диагонального шаблона (блок диагонального шаблона сверху справа вниз налево) и блок обратного диагонального шаблона (блок диагонального шаблона сверху слева вниз направо) могут означать положения информации движения, к которой обращаются для предсказания текущего списка информации движения в совмещенной CTU. Блок диагонального шаблона означает опорную область, имеющую более высокий приоритет, чем блок обратного диагонального шаблона.
[00431]
[00432] Между тем, когда кандидат предсказания движения, используемый способом интер-предсказания, перекрывается предсказанной информацией движения списка информации движения, перекрытая предсказанная информация движения не может использоваться для интер-предсказания.
[00433]
[00434] 6. Способ использования предсказанной информации движения отдельно от общей информации движения
[00435]
[00436] В настоящей спецификации, общая информация движения может означать информацию движения, добавленную в список информации движения в качестве информации движения, сгенерированной интер-предсказанием, и информацию движения, добавленную в список информации движения на этапе добавления информации движения согласно фиг. 10 и 11. Предсказанная информация движения может означать информацию движения, сгенерированную посредством предсказания списка информации движения, как описано выше, и может являться информацией движения, добавленной в список информации движения на этапах предсказания списка информации движения согласно фиг. 10 и 11.
[00437]
[00438] Предсказанная информация движения может иметь более низкую эффективность предсказания информации движения, чем общая информация движения. Поэтому, когда предсказанная информация движения имеет более высокий приоритет, чем общая информация движения, эффективность кодирования может быть снижена. Поэтому предсказанная информация движения может создаваться отдельно от общей информации движения, так что приоритет предсказанной информации движения может снижаться или корректироваться.
[00439] Кроме того, в случае, если добавляется общая информация движения, когда список информации движения уже имел ограниченное максимальное количество информации движения, предсказанная информация движения может удаляться первой.
[00440]
[00441] Фиг. 25 и 26 являются диаграммами, иллюстрирующими вариант осуществления способа отдельного использования предсказанной информации движения и общей информации движения. Информация движения может добавляться в список информации движения на фиг. 25 и 26 по правилу “первым пришел - первым обслужен” (FIFO), и размер списка информации движения ограничен пятью. Здесь, размер списка информации движения также включает в себя размер под-списка движения.
[00442] Со ссылкой на фиг. 25, может существовать список информации движения (AMVOL), хранящий общую информацию движения, и под-список информации движения (под-AMVOL), хранящий список предсказанной информации движения.
[00443] До выполнения интер-предсказания первого блока кодирования, никакая информация не хранится в списке информации движения, а информация движения A’, B’ и C’, предсказанная из опорной картинки, может сохраняться в под-списке информации движения.
[00444] Затем, информация движения может добавляться в список информации движения по мере того как выполняется интер-предсказание каждого блока кодирования.
[00445] Здесь, при достижении максимального размера списка информации движения, информация движения сначала удаляется из под-списка информации движения, в котором хранится предсказанная информация движения, и новая информация движения может добавляться в список информации движения.
[00446] Между тем, информация, указывающая, используется ли под-список информации движения, информация размера списка информации движения или информация размера под-списка информации движения, может быть информацией, предварительно установленной в кодере/декодере.
[00447] Альтернативно, информация, указывающая, используется ли под-список информации движения, информация размера списка информации движения или информация размера под-списка информации движения, может быть информацией, сигнализируемой от кодера на декодер.
[00448] Здесь, размер списка информации движения может быть ограничен предварительно установленным диапазоном. Например, предварительно установленный диапазон может составлять от 0 до 5.
[00449] Кроме того, размер списка информации движения может быть ограничен информацией, сигнализируемой от кодера на декодер. Информация, указывающая размер списка информации движения, может сигнализироваться на более высоком уровне битового потока, таком как набор параметров последовательности, набор параметров картинки, заголовок слайса, заголовок мозаичного элемента, заголовок группы мозаичных элементов и тому подобное.
[00450]
[00451] Фиг. 26 представляет собой диаграмму, иллюстрирующую вариант осуществления, в котором один список информации движения используется без использования под-списка информации движения, в отличие от фиг. 25.
[00452] В примере на фиг. 26, список информации движения может управляться способом FIFO. То есть, список информации движения использует способ добавления сгенерированной информации движения в последнюю часть списка информации движения и удаления сначала предшествующей информации движения, которая введена первой, при превышении максимального размера списка информации движения.
[00453] Другими словами, когда количество информации движения, сохраненной в списке информации движения, достигает максимального значения, информация движения, указанная в последнем индексе списка информации движения, удаляется, и вновь выведенная информация движения добавляется в список информации движения. Здесь, индекс информации движения, включенной в список информации движения, может увеличиваться на единицу. Вновь добавленная информация движения может добавляться в список информации движения таким образом, чтобы указываться индексом 0.
[00454]
[00455] Кроме того, информация движения, сохраненная в списке информации движения, может иметь приоритет тем выше, чем ниже индекс.
[00456] Здесь, информация движения, сохраненная предсказанием списка информации движения, может обрабатываться отдельно от общей информации движения списка информации движения, сгенерированной и сохраненной в текущей UPU.
[00457] Поскольку предсказанная информация движения имеет низкий приоритет, когда вновь добавляется общая информация движения, может назначаться индекс ниже, чем в случае информации движения в списке предсказанной информации движения.
[00458] Кроме того, при достижении максимального размера списка информации движения, предсказанная информация движения может предпочтительно удаляться, и новая информация движения может добавляться в список информации движения.
[00459]
[00460] При этом, чем ниже индекс, тем выше приоритет, как описано ранее. Напротив, чем выше индекс, тем ниже приоритет.
[00461] Поэтому, способ FIFO для списка информации движения может также выполняться, как описано далее. То есть, когда количество информации движения, сохраненной в списке информации движения, достигает максимального значения, информация движения, указанная индексом 0 списка информации движения, может удаляться, и вновь выведенная информация движения может быть добавлена в список информации движения. Здесь, индекс информации движения, включенной в список информации движения, может уменьшаться на единицу. Вновь добавленная информация движения может добавляться в список информации движения таким образом, чтобы указываться наибольшим индексом среди информации движения, включенной в список информации движения.
[00462] Между тем, когда вновь добавленная информация движения сохраняется в списке информации движения, ранее сохраненная информация движения, которая перекрывается, удаляется из списка информации движения, и вновь выведенная информация движения может быть включена в список информации движения. Здесь, индексы информации движения списка информации движения, имеющие значение индекса больше, чем удаленная информация движения, могут уменьшаться на единицу. Вновь добавленная информация движения может добавляться в список движения таким образом, чтобы указываться наибольшим индексом среди информации движения, включенной в список информации движения.
[00463]
[00464] Информация движения, включенная в список информации движения, может иметь приоритет при использовании для предсказания информации движения. Информация движения может быть неявно выражена в соответствии с порядком, в котором информация движения сохраняется в списке информации движения, приоритет явно устанавливается как кандидаты при выполнении интер-предсказания с использованием списка информации движения, или возможно избирательное использование по приоритету.
[00465] Кроме того, поскольку список информации движения может иметь ограниченный размер, при достижении ограниченного размера, информация движения, сохраненная в списке информации движения, может удаляться и новая информация движения может быть добавлена в соответствии с приоритетом.
[00466]
[00467] Между тем, предсказанная информация движения может иметь эффективность предсказания ниже, чем эффективность предсказания нормальной информации движения. Однако, поскольку это не во всех случаях, приоритет предсказанной информации движения может быть перенастроен.
[00468]
[00469] Для перенастройки приоритета предсказанной информации движения может использоваться дополнительная информация.
[00470] Список информации движения может включать в себя дополнительную информацию в дополнение к информации движения. Здесь, дополнительная информация может означать информацию, указывающую эффективность интер-предсказания информации движения, включенной в список информации движения, и может также называться потенциальной информацией предсказания. Например, дополнительная информация может являться информацией, выведенной на основе числа появлений той же самой информации движения в UPU.
[00471] Дополнительная информация может представлять относительную изменчивость эффективности кодирования при использовании списка информации движения для интер-предсказания.
[00472] В качестве способа для определения дополнительной информации, может существовать способ определения на основе частоты появления информации движения, способ определения на основе эффективности предсказания с использованием информации движения, способ определения на основе местоположения, где выведена информация движения, и способ определения на основе того, следует ли использовать информацию движения.
[00473] Способ определения на основе частоты появления информации движения является способом определения дополнительной информации на основе числа раз, когда та же самая информация движения, что и информация движения, сохраненная в списке информации движения, генерируется в UPU.
[00474] Способ определения на основе эффективности предсказания с использованием информации движения является способом определения дополнительной информации на основе распределения энергии остаточного сигнала или среднего значения энергии остаточного сигнала в блоке кодирования, в котором используется информация движения, сохраненная в списке информации движения.
[00475] Способ определения на основе местоположения, из которого выведена информация движения, является способом определения дополнительной информации на основе пространственного и временного расстояния между текущим блоком кодирования и блоком кодирования, в котором выведена информация движения, сохраненная в списке информации движения.
[00476] В то же время, приоритет предсказанной информации движения может переустанавливаться на основе того, используется ли предсказанная информация движения для интер-предсказания. Причина в том, что соответствующая предсказанная информация движения вероятно будет использоваться в будущем, когда она используется для интер-предсказания.
[00477] Информация, необходимая для переустановки приоритета предсказанной информации движения, может быть информацией, которая предварительно установлена в кодере/декодере или сигнализируется от кодера на декодер.
[00478]
[00479] Фиг. 27 представляет собой блок-схему последовательности операций, иллюстрирующую способ декодирования изображения в соответствии с вариантом осуществления настоящего изобретения.
[00480] Со ссылкой на фиг. 27, устройство декодирования изображения может генерировать список кандидатов, включающий в себя информацию движения, выведенную из пространственного соседнего блока и временного соседнего блока, смежных с текущим блоком (S2710).
[00481] Здесь, список кандидатов может представлять собой любое одно из списка кандидатов слияния в режиме слияния, списка кандидатов векторов движения в режиме AMVP, списка кандидатов слияния в режиме IBC, списка кандидатов векторов блока в режиме IBC и совместно используемого списка слияния в режиме IBC.
[00482] Кроме того, устройство декодирования изображения может вывести информацию движения текущего блока с использованием списка кандидатов (S2720).
[00483] Устройство декодирования изображения может генерировать блок предсказания текущего блока с использованием выведенной информации движения (S2730). Подробно, устройство декодирования изображения может генерировать блок предсказания текущего блока путем выполнения интер-предсказания или предсказания IBC.
[00484] Кроме того, устройство декодирования изображения может обновлять выведенную информацию движения в списке информации движения (S2740). Этап S2740 может быть тем же самым, что и этап добавления информации движения на фиг. 10 и 11, описанный выше.
[00485] При этом может генерироваться список кандидатов, включающий в себя по меньшей мере одну из информации движения, включенной в список информации движения, обновленный в блоке, декодированном перед текущим блоком. Здесь, список информации движения может представлять собой вышеописанный список AMVOL или HMVP.
[00486] Между тем, когда декодирование предопределенной области завершено, так что область в списке информации движения изменяется, устройство декодирования изображения может инициализировать список информации движения. Здесь, предопределенная область может представлять собой любое одно из блока, состоящего из одной или более CU, или блока, состоящего из одной или более CTU. Вышеописанная инициализация может быть той же самой, что и этап инициализации информации движения на фиг. 10 и 11.
[00487] Между тем, список информации движения может иметь ограничение предопределенного размера. Здесь, предопределенный размер может составлять шесть.
[00488] Между тем, когда существует множество информаций движения в списке информации движения, обновленном в блоке, декодированном перед текущим блоком, устройство декодирования изображения может включать среднее по меньшей мере двух или более информаций движения из множества информаций движения в список кандидатов.
[00489] Между тем, когда информация движения списка информации движения, обновленная в блоке, декодированном перед текущим блоком, является той же самой, что и информация движения, ранее включенная в список кандидатов, устройство декодирования изображения может разрешать не включать информацию движения списка информации движения в список кандидатов.
[00490] Кроме того, когда текущей блок является режимом предсказания IBC и список кандидатов представляет собой совместно используемый список слияния, способ обновления выведенной информации движения в списке информации движения может опускаться.
[00491] Между тем, когда количество информации движения, сохраненной в списке информации движения, является предварительно установленным значением, устройство декодирования изображения может удалять информацию движения, сохраненную первой в списке информации движения, и сохранять информацию движения, выведенную на этапе S2720.
[00492] Способ декодирования изображения был описан выше со ссылкой на фиг. 27. Поскольку способ кодирования изображения настоящего изобретения может быть описан аналогично способу декодирования изображения, описанному со ссылкой на фиг. 27, избыточное описание опускается.
[00493] Битовый поток, сгенерированный способом кодирования изображения настоящего изобретения, может временно храниться в считываемом компьютером долговременном носителе записи и может декодироваться вышеописанным способом декодирования изображения.
[00494]
[00495] Вышеупомянутые варианты осуществления могут выполняться одним и тем же способом в кодере и декодере.
[00496] По меньшей мере один или комбинация вышеупомянутых вариантов осуществления могут использоваться для кодирования/декодирования видео.
[00497] Последовательность применения к вышеуказанному варианту осуществления может быть разной для кодера и декодера, или последовательность, применяемая к вышеуказанному варианту осуществления, может быть одинаковой в кодере и декодере.
[00498] Вышеупомянутый вариант осуществления может выполняться для каждого сигнала яркости и сигнала цветности, или указанный выше вариант осуществления может идентично выполняться для сигналов яркости и цветности.
[00499] Форма блока, к которой применяются вышеупомянутые варианты осуществления настоящего изобретения, может быть квадратной или неквадратной формой.
[00500] Вышеупомянутый вариант осуществления настоящего изобретения может применяться в зависимости от размера по меньшей мере одного из блока кодирования, блока предсказания, блока преобразования, блока, текущего блока, единицы кодирования, единицы предсказания, единицы преобразования, единицы и текущей единицы. Здесь, размер может быть определен как минимальный размер или максимальный размер, или и то, и другое, чтобы применять вышеупомянутые варианты осуществления, или может быть определен как фиксированный размер, к которому применяется вышеупомянутый вариант осуществления. Кроме того, в вышеупомянутых вариантах осуществления, первый вариант осуществления может применяться к первому размеру, и второй вариант осуществления может применяться ко второму размеру. Другими словами, вышеуказанные варианты осуществления могут применяться в комбинации в зависимости от размера. Кроме того, вышеупомянутые варианты осуществления могут применяться, когда размер равен или больше минимального размера и равен или меньше максимального размера. Другими словами, вышеупомянутые варианты осуществления могут применяться, когда размер блока входит в определенный диапазон.
[005001] Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 8×8 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока составляет 4×4 или больше. Например, описанные выше варианты осуществления могут применяться, когда размер текущего блока составляет 16×16 или больше. Например, вышеупомянутые варианты осуществления могут применяться, когда размер текущего блока равен или больше 16×16 и равен или меньше 64×64.
[00502] Вышеупомянутые варианты осуществления настоящего изобретения могут применяться в зависимости от временного уровня. Чтобы идентифицировать временной уровень, к которому могут применяться вышеупомянутые варианты осуществления, может сигнализироваться соответствующий идентификатор, и вышеупомянутые варианты осуществления могут применяться к указанному временному уровню, идентифицированному соответствующим идентификатором. Здесь, идентификатор может быть определен как самый низкий уровень или самый высокий уровень, или оба, к которым может применяться вышеупомянутый вариант осуществления, или может быть определен для указания конкретного уровня, к которому применяется этот вариант осуществления. Кроме того, может быть определен фиксированный временной уровень, к которому применяется вариант осуществления.
[00503] Например, описанные выше варианты осуществления могут применяться, когда временной уровень текущего изображения является самым низким уровнем. Например, вышеупомянутые варианты осуществления могут применяться, когда идентификатор временного уровня текущего изображения равен или больше 1. Например, вышеупомянутые варианты осуществления могут применяться, когда временной уровень текущего изображения является наивысшим уровнем.
[00504] Тип слайса или тип группы мозаичных элементов, к которым применяются вышеприведенные варианты осуществления настоящего изобретения, может быть определен, и вышеупомянутые варианты осуществления могут применяться в зависимости от соответствующего типа слайса или типа группы мозаичных элементов.
[00505] В вышеописанных вариантах осуществления, способы описаны на основе блок-схем последовательности операций с последовательностью этапов или модулей, но настоящее изобретение не ограничивается порядком этапов, и, скорее, некоторые этапы могут выполняться одновременно или в другом порядке с другими этапами. Кроме того, специалисту в данной области техники должно быть понятно, что этапы в блок-схемах последовательностей операций не исключают друг друга и что другие этапы могут быть добавлены к блок-схемам последовательностей операций, или некоторые из этапов могут быть удалены из блок-схем последовательностей операций, не влияя на объем настоящего изобретения.
[00506] Варианты осуществления включают различные аспекты примеров. Все возможные комбинации для различных аспектов могут быть не описаны, но специалисты в данной области техники смогут распознать различные комбинации. Соответственно, настоящее изобретение может включать все замены, модификации и изменения в пределах объема формулы изобретения.
[00507] Варианты осуществления настоящего изобретения могут быть реализованы в форме программных инструкций, которые исполняются различными компьютерными компонентами и записываются на считываемый компьютером носитель записи. Считываемый компьютером носитель записи может включать в себя отдельно или в комбинации программные инструкции, файлы данных, структуры данных и т.д. Программные инструкции, записанные на считываемом компьютером носителе записи, могут быть специально разработаны и сконструированы для настоящего изобретения или хорошо известны специалисту в области компьютерных программных технологий. Примеры считываемого компьютером носителя записи включают в себя магнитные носители записи, такие как жесткие диски, гибкие диски и магнитные ленты; оптические носители данных, такие как CD-ROM или DVD-ROM; магнитооптические носители, такие как флоптические диски; и аппаратные устройства, такие как постоянная память (ROM), память с произвольным доступом (RAM), флэш-память и т.д., которые конкретно структурированы для хранения и реализации программной инструкции. Примеры программных инструкций включают в себя не только механический код языка, форматируемый компилятором, но высокоуровневый код языка, который может быть реализован компьютером с использованием интерпретатора. Аппаратные устройства могут быть сконфигурированы для работы с одним или более программными модулями или, наоборот, для выполнения процессов в соответствии с настоящим изобретением.
[00508] Хотя настоящее изобретение было описано в терминах специфических объектов, таких как детальные элементы, а также ограниченные варианты осуществления и чертежи, они предоставлены только для облегчения более общего понимания изобретения, и настоящее изобретение не ограничивается приведенными выше вариантами осуществления. Специалистам в области техники, к которой относится настоящее изобретение, будет понятно, что на основе приведенного выше описания могут быть сделаны различные модификации и изменения.
[00509] Поэтому сущность настоящего изобретения не должна ограничиваться описанными выше вариантами осуществления, и весь объем прилагаемой формулы изобретения и ее эквивалентов будет находиться в пределах объема и сущности изобретения.
Промышленная применимость
[00510] Настоящее изобретение может быть использовано для кодирования или декодирования изображения.