СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ/КОДИРОВАНИЯ СИГНАЛА ВИДЕО
METHOD AND DEVICE FOR DECODING/CODING OF VIDEO SIGNAL

Область техники
Настоящее изобретение относится к способу и устройству для декодирования/кодирования сигнала видео.
Предшествующий уровень техники
Кодирование со сжатием означает ряд способов обработки сигналов для передачи оцифрованной информации через схему связи или сохранение оцифрованной информации в форме, подходящей для носителя данных. Объекты для кодирования со сжатием включают в себя аудио, видео, текст и т.п. В частности, способ выполнения кодирования со сжатием в отношении последовательности называется сжатием последовательности видео. Последовательность видео в общем случае характеризуется наличием пространственной избыточности и временной избыточности.
Раскрытие изобретения
Техническая задача
Задача настоящего изобретения заключается в повышении эффективности кодирования сигнала видео.
Техническое решение
Задачей настоящего изобретения является кодирование сигнала видео эффективным образом посредством определения информации кадра для идентификации кадра (представления) изображения.
Другая задача настоящего изобретения состоит в повышении эффективности кодирования посредством кодирования сигнала видео на основании межкадровой опорной информации.
Другая задача настоящего изобретения состоит в обеспечении масштабируемости кадра (представления) сигнала видео посредством определения информации уровня кадра.
Другая задача настоящего изобретения состоит в кодировании сигнала видео эффективным образом посредством определения идентификатора предсказания межкадрового синтеза, указывающего, получить ли изображение виртуального кадра.
Полезные результаты
При кодировании сигнала видео настоящее изобретение обеспечивает более эффективное выполнение кодирования посредством выполнения межкадрового предсказания, используя информацию кадра (представления) для идентификации кадра изображения. И с помощью определения заново информации уровня, указывающей информацию для иерархической структуры, чтобы обеспечить масштабируемость кадра, настоящее изобретение способно обеспечить последовательность кадров, подходящую для пользователя. Кроме того, посредством определения кадра, соответствующего самому низкому уровню в качестве опорного кадра, настоящее изобретение обеспечивает совместимость с обычным декодером. Кроме того, настоящее изобретение повышает эффективность кодирования с помощью определения, предсказать ли изображение виртуального кадра при выполнении межкадрового предсказания. В случае предсказания изображения виртуального кадра настоящее изобретение обеспечивает более точное предсказание, таким образом сокращая количество битов, подлежащих передаче.
Краткое описание чертежей
Фиг.1 - схематическая блок-схема устройства для декодирования сигнала видео согласно настоящему изобретению.
Фиг.2 - диаграмма информации конфигурации для мультикадрового видео, добавляемого к кодированному потоку битов мультикадрового видео согласно варианту осуществления настоящего изобретения.
Фиг.3 - внутренняя блок-схема модуля 620 создания списка опорных изображений согласно варианту осуществления настоящего изобретения.
Фиг.4 - диаграмма иерархической структуры информации уровня для обеспечения масштабируемости кадра сигнала видео согласно варианту осуществления настоящего изобретения.
Фиг.5 - диаграмма конфигурации NAL-блока, включающего в себя информацию уровня в пределах области расширения NAL-заголовка согласно одному варианту осуществления настоящего изобретения.
Фиг.6 - диаграмма полной структуры предсказания мультикадрового сигнала видео согласно варианту осуществления настоящего изобретения, для описания концепции группы межкадровых изображений.
Фиг.7 - диаграмма структуры предсказания согласно варианту осуществления настоящего изобретения для объяснения концепции заново определенной группы межкадровых изображений.
Фиг.8 - схематическая блок-схема устройства для декодирования мультикадрового видео, используя идентификационную информацию группы межкадровых изображений согласно варианту осуществления настоящего изобретения.
Фиг.9 - последовательность операций процесса для построения списка опорных изображений согласно варианту осуществления настоящего изобретения.
Фиг.10 - диаграмма для пояснения способа инициализации списка опорных изображений, когда текущей вырезкой является P-вырезка согласно одному варианту осуществления настоящего изобретения.
Фиг.11 - диаграмма для пояснения способа инициализации списка опорных изображений, когда текущей вырезкой является B-вырезка согласно одному варианту осуществления настоящего изобретения.
Фиг.12 - внутренняя блок-схема модуля 630 переупорядочения списка опорных изображений согласно варианту осуществления настоящего изобретения.
Фиг.13 - внутренняя блок-схема модуля 643B или 645B изменения назначения ссылочного индекса согласно одному варианту осуществления настоящего изобретения.
Фиг.14 - диаграмма для пояснения процесса для переупорядочения списка опорных изображений, используя информацию кадра согласно одному варианту осуществления настоящего изобретения.
Фиг.15 - внутренняя блок-схема модуля 630 переупорядочения списка опорных изображений согласно другому варианту осуществления настоящего изобретения.
Фиг.16 - внутренняя блок-схема модуля 970 переупорядочения списка опорных изображений для межкадрового предсказания согласно варианту осуществления настоящего изобретения.
Фиг.17 и фиг.18 - диаграммы синтаксиса для переупорядочения списка опорных изображений согласно одному варианту осуществления настоящего изобретения.
Фиг.19 - диаграмма синтаксиса для переупорядочения списка опорных изображений согласно другому варианту осуществления настоящего изобретения.
Фиг.20 - диаграмма для процесса для получения значения разности освещения текущего блока согласно одному варианту осуществления настоящего изобретения.
Фиг.21 - последовательность операций процесса для выполнения компенсации освещения текущего блока согласно варианту осуществления настоящего изобретения.
Фиг.22 - диаграмма процесса для получения значения предсказания разности освещения текущего блока, используя информацию для соседнего блока, согласно одному варианту осуществления настоящего изобретения.
Фиг.23 - последовательность операций процесса для выполнения компенсации освещения, используя информацию для соседнего блока согласно одному варианту осуществления настоящего изобретения.
Фиг.24 - последовательность операций процесса для выполнения компенсации освещения, используя информацию для соседнего блока согласно другому варианту осуществления настоящего изобретения.
Фиг.25 - диаграмма процесса для предсказания текущего изображения, используя изображение в виртуальном кадре согласно одному варианту осуществления настоящего изобретения.
Фиг.26 - последовательность операций процесса для синтеза изображения в виртуальном кадре при выполнении межкадрового предсказания в MVC согласно варианту осуществления настоящего изобретения.
Фиг.27 - последовательность операций способа выполнения взвешенного предсказания согласно типу вырезки при кодировании сигнала видео согласно настоящему изобретению.
Фиг.28 - диаграмма типов макроблока, допустимых в типе вырезки при кодировании сигнала видео согласно настоящему изобретению.
Фиг.29 и фиг.30 - диаграммы синтаксиса для выполнения взвешенного предсказания согласно вновь определенному типу вырезки согласно одному варианту осуществления настоящего изобретения.
Фиг.31 - последовательность операций способа выполнения взвешенного предсказания, используя информацию флага, указывающую, выполнить ли межкадровое взвешенное предсказание при кодировании сигнала видео согласно настоящему изобретению.
Фиг.32 - диаграмма для пояснения способа взвешенного предсказания согласно информации флага, указывающей, выполнить ли взвешенное предсказание, используя информацию для изображения в кадре, отличном от такового текущего изображения согласно одному варианту осуществления настоящего изобретения.
Фиг.33 - диаграмма синтаксиса для выполнения взвешенного предсказания согласно вновь определенной информации флага согласно одному варианту осуществления настоящего изобретения.
Фиг.34 - последовательность операций способа выполнения взвешенного предсказания согласно типу блока NAL (сетевого уровня абстракции) согласно варианту осуществления настоящего изобретения.
Фиг.35 и фиг.36 - диаграммы синтаксиса для выполнения взвешенного предсказания в случае, когда тип NAL-блока предназначен для мультикадрового кодирования видео согласно одному варианту осуществления настоящего изобретения.
Фиг.37 - частичная блок-схема устройства декодирования сигнала видео согласно вновь определенному типу вырезки согласно варианту осуществления настоящего изобретения.
Фиг.38 - последовательность операций для пояснения способа декодирования сигнала видео в устройстве, показанном на фиг.37 согласно настоящему изобретению.
Фиг.39 - диаграмма режима предсказания макроблока согласно одному варианту осуществления настоящего изобретения.
Фиг.40 и фиг.41 - диаграммы синтаксиса, имеющего тип вырезки и режим макроблока, применяемый к нему, согласно настоящему изобретению.
Фиг.42 - диаграмма вариантов осуществления, к которым применяются типы вырезки согласно фиг.41.
Фиг.43 - диаграмма различных вариантов осуществления типа вырезки, включенного в типы вырезки, показанные на фиг.41.
Фиг.44 - диаграмма макроблока, допустимого для смешанного типа вырезки в соответствии с предсказанием двух смешанных предсказаний согласно одному варианту осуществления настоящего изобретения.
фиг.45 - 47 - диаграммы типа макроблока для макроблока, существующего в смешанной вырезке в соответствии с предсказанием двух смешанных предсказаний согласно одному варианту осуществления настоящего изобретения.
Фиг.48 - частичная блок-схема устройства кодирования сигнала видео согласно вновь определенному типу вырезки согласно варианту осуществления настоящего изобретения.
Фиг.49 - последовательность операций способа кодирования сигнала видео в устройстве, показанном на фиг.48, согласно настоящему изобретению.
Лучший режим выполнения изобретения
Чтобы достичь этих и других преимуществ и в соответствии с целью настоящего изобретения, которое реализовано и подробно описано, способ декодирования сигнала видео включает в себя этапы проверки схемы кодирования сигнала видео, получения информации конфигурации для сигнала видео согласно схеме кодирования, распознавания общего количества кадров, используя информацию конфигурации, распознавания межкадровой опорной информации на основании общего количества кадров, и декодирование сигнала видео на основании межкадровой опорной информации, причем информация конфигурации включает в себя по меньшей мере информацию кадра для идентификации кадра сигнала видео.
Чтобы дополнительно получить эти и другие преимущества и в соответствии с целью настоящего изобретения, способ декодирования сигнала видео включает в себя этапы: проверку схемы кодирования сигнала видео, получение информации конфигурации для сигнала видео согласно схеме кодирования, проверку уровня для масштабируемости кадра сигнала видео из информации конфигурации, распознавание межкадровой опорной информации, используя информацию конфигурации, и декодирование сигнала видео на основании уровня и межкадровой опорной информации, причем информация конфигурации включает в себя информацию кадра для идентификации кадра изображения.
Режим для изобретения
Ниже делается ссылка на подробное описание предпочтительных вариантов осуществления настоящего изобретения, примеры которого иллюстрируются на сопроводительных чертежах.
Методика сжатия и кодирования данных сигнала видео рассматривает пространственную избыточность, временную избыточность, масштабируемую избыточность, и межкадровую избыточность. И, также возможно выполнить кодирование со сжатием, рассматривая взаимную избыточность между кадрами в процессе кодирования со сжатием. Методика для кодирования со сжатием, которая рассматривает межкадровую избыточность, является только вариантом осуществления настоящего изобретения. И техническая идея настоящего изобретения применима к временной избыточности, масштабируемой избыточности и т.д.
Если рассмотреть конфигурацию битового потока в H.264/AVC, существует структура отдельного уровня, называемая NAL (сетевой уровень абстракции) между VCL (уровнем кодирования видео), имеющая дело непосредственно с процессом кодирования движущихся изображений и более низкой (низкоуровневой) системой, которая транспортирует и хранит кодированную информацию. Выходной сигнал из процесса кодирования представляют собой VCL-данные и отображаются NAL-блоком до транспортировки или сохранения. Каждый NAL-блок включает в себя сжатые данные видео или RBSP (необработанные полезные данные последовательности байтов: данные результата сжатия движущихся изображений), которые являются данными, соответствующими информации заголовка.
NAL-блок в основном включает в себя NAL-заголовок и RBSP. NAL-заголовок включает в себя информацию флага (nal_ref_idc), указывающую, включена ли вырезка в качестве опорного изображения NAL-блока, и идентификатор (nal_unit_type), указывающий тип NAL-блока. Сжатые первоначальные данные сохранены в RBSP. И, хвостовой бит RBSP добавляют к последней части RBSP, чтобы представить длину RBSP в качестве 8-битового умножения. В качестве типа NAL-блока имеется изображение IDR (мгновенное обновление декодирования), SPS (набор параметров последовательности), PPS (набор параметров изображения), SEI (дополнительная информация расширения), или подобное.
При стандартизации устанавливают ограничения для различных профилей и уровней, чтобы разрешить реализацию целевого продукта с подходящей стоимостью. В этом случае декодер должен удовлетворить ограничению, определенному согласно соответствующим профилю и уровню. Таким образом, определены две концепции - 'профиль' и 'уровень', чтобы указать функцию или параметр для представления - насколько декодер может справиться с диапазоном сжатой последовательности. И, индикатор (profile_idc) профиля может идентифицировать, что битовый поток основан на предписанном профиле. Индикатор профиля означает флаг, указывающий профиль, на котором основан битовый поток. Например, в H.264/AVC, если индикатор профиля равен 66, это означает, что битовый поток основан на базовом профиле. Если индикатор профиля равен 77, это означает, что битовый поток основан на главном профиле. Если индикатор профиля равен 88, это означает, что битовый поток основан на расширенном профиле. И, идентификатор профиля может быть включен в набор параметров последовательности.
Итак, чтобы иметь дело с мультикадровым видео, необходимо идентифицировать, является ли профиль введенного битового потока мультикадровым профилем. Если профиль введенного битового потока является мультикадровым профилем, необходимо добавить синтаксис, чтобы разрешить передачу по меньшей мере одной дополнительной информации для множества кадров. В этом случае мультикадровый профиль указывает режим профиля, обрабатывающий мультикадровое видео в качестве методики внесения поправки в H.264/AVC. В MVC может быть более эффективно добавить синтаксис в качестве дополнительной информации для режима MVC вместо безусловного синтаксиса. Например, когда индикатор профиля для AVC указывает мультикадровый профиль, если информация для мультикадрового видео добавлена, возможно повысить эффективность кодирования.
Набор параметров последовательности указывает информацию заголовка, содержащую информацию, собранную при кодировании полной последовательности, такую как профиль, уровень и т.п. Целиком сжатое движущееся изображение, то есть последовательность должна начинаться с заголовка последовательности. Так, набор параметров последовательности, соответствующий информации заголовка, должен приходить на декодер прежде, чем прибывают данные, ссылающиеся на набор параметров. А именно, набор RBSP параметров последовательности играет роль информации заголовка для результирующих данных сжатия движущегося изображения. Как только битовый поток введен, индикатор профиля предпочтительно идентифицирует, что введенный битовый поток основан на каком-то одном из множества профилей. Таким образом, добавляя часть для определения, относится ли введенный битовый поток к мультикадровому профилю (например, 'IF (profile_idc == MULTI_VIEW_PROFILE)') к синтаксису, принимается решение, относится ли введенный битовый поток к мультикадровому профилю. Различные виды информации конфигурации могут быть добавлены только если введенный битовый поток определен как относящийся к мультикадровому профилю. Например, возможно добавить ряд полных кадров, ряд мультикадровых опорных изображений (List0/1) в случае группы межкадровых изображений, ряд мультикадровых опорных изображений (List0/1) в случае группы не межкадровых изображений и т.п. И, различная информация для кадра используется для генерации и управления списком опорных изображений в буфере декодированных изображений.
Фиг.1 иллюстрирует схематичную блок-схему устройства для декодирования сигнала видео согласно настоящему изобретению.
Со ссылками на фиг.1 устройство для декодирования сигнала видео согласно настоящему изобретению включает в себя синтаксический анализатор 100 NAL, модуль 200 статистического декодирования, модуль 300 инверсного квантования / обратного преобразования, модуль 400 внутреннего (интра-) предсказания, модуль 500 фильтра устранения блочности, буферный модуль 600 декодированных изображений, модуль 700 внешнего (интер-) предсказания и т.п.
Буферный модуль 600 декодированных изображений включает в себя модуль 610 сохранения опорного изображения, модуль 620 создания списка опорных изображений, модуль 650 управления опорными изображениями и т.п. И, модуль 620 создания списка опорных изображений включает в себя модуль 625 получения переменной, модуль 630 инициализации списка опорных изображений и модуль 640 переупорядочения списка опорных изображений.
И, модуль 700 интер-предсказания включает в себя модуль 710 компенсации движения, модуль 720 компенсации освещения, модуль 730 предсказания разности освещения, модуль 740 предсказания синтеза кадра и т.п.
Синтаксический анализатор 100 NAL выполняет синтаксический анализ посредством NAL-блока, чтобы декодировать принятую последовательность видео. Вообще, по меньшей мере один набор параметров последовательности и по меньшей мере один набор параметров изображения передается декодеру прежде, чем декодируются заголовок вырезки (часть массива информации) и данные вырезки. В этом случае различные виды информации конфигурации могут быть включены в область NAL-заголовка или область расширения NAL-заголовка. Так как MVC является методикой поправки для обычной методики AVC, может быть более эффективным добавлять информацию конфигурации только в случае битового потока MVC вместо безусловного добавления. Например, возможно добавить информацию флага для идентификации присутствия или неприсутствия битового потока MVC в области NAL-заголовка или области расширения NAL-заголовка. Только если введенный битовый поток является кодированным битовым потоком мультикадрового видео согласно информации флага, возможно добавить информацию конфигурации для мультикадрового видео. Например, информация конфигурации может включать в себя временную информацию уровня, информацию уровня кадра, идентификационную информацию группы межкадровых изображений, идентификационную информацию кадра и т.п. Это описано подробно ниже со ссылками на фиг.2.
Фиг.2 показывает диаграмму информации конфигурации для мультикадрового видео, добавляемую к кодированному битовому потоку мультикадрового видео согласно одному варианту осуществления настоящего изобретения. Подробности информации конфигурации для мультикадрового видео описаны в нижеследующем описании.
Прежде всего, временная информация уровня указывает информацию для иерархической структуры, чтобы обеспечить временную масштабируемость из сигнала видео ((1)). Посредством временной информации уровня возможно обеспечить пользователя последовательностями в отношении различных временных зон.
Информация уровня кадра указывает информацию для иерархической структуры, чтобы обеспечить масштабируемость кадра из сигнала видео ((2)). В мультикадровом видео необходимо определить уровень для времени и уровень для кадра, чтобы обеспечить пользователя различными временными и кадровыми последовательностями. В случае определения вышеупомянутой информации уровня возможно использовать временную масштабируемость и масштабируемость кадра. Поэтому пользователь способен выбрать последовательность в конкретное время и кадр, или выбранная последовательность может быть ограничена условием.
Информации уровня могут быть установлены различными способами согласно конкретному условию. Например, информация уровня может быть установлена по-разному согласно расположению камеры (фотоаппарата) или выравниванию камеры (фотоаппарата). И, информация уровня может быть определена, рассматривая зависимость кадра. Например, уровень для кадра, имеющего I-изображение в группе межкадровых изображений, установлен в 0, уровень для кадра, имеющего P-изображение в группе межкадровых изображений, установлен в 1, и уровень для кадра, имеющего B-изображение в группе межкадровых изображений, установлен равным 2. Кроме того, информации уровня могут быть случайно установлены не на основании специального условия. Информация уровня кадра описана подробно со ссылками на фиг.4 и фиг.5 ниже.
Идентификационная информация группы межкадровых изображений указывает информацию для идентификации, является ли кодированное изображение текущего NAL-блока группой межкадровых изображений ((3)). В этом случае группа межкадровых изображений означает кодированное изображение, в котором все вырезки ссылаются только на вырезки с одним и тем же порядковым индексом изображения. Например, группа межкадровых изображений означает кодированное изображение, которое ссылается на вырезки только в отличном кадре без ссылки на вырезки в текущем кадре. В процессе декодирования мультикадровое видео может быть необходим межкадровый произвольный доступ. Идентификационная информация группы межкадровых изображений может быть необходима, чтобы реализовать эффективный произвольный доступ. И, межкадровая опорная (ссылочная) информация может быть необходима для межкадрового предсказания. Так, идентификационная информация группы межкадровых изображений может использоваться, чтобы получить межкадровую опорную информацию. Кроме того, идентификационная информация группы межкадровых изображений может использоваться, чтобы добавить опорные изображения для межкадрового предсказания при построении списка опорных изображений. Кроме того, идентификационная информация группы межкадровых изображений может использоваться, чтобы управлять добавленными опорными изображениями для межкадрового предсказания. Например, опорные изображения могут быть классифицированы в группы межкадровых изображений и группы немежкадровых изображений, и классифицированные опорные изображения могут быть затем промаркированы так, что опорные изображения, не используемые для межкадрового предсказания, не должны использоваться. Между тем, идентификационная информация группы межкадровых изображений применима к гипотетическому опорному декодеру. Подробности идентификационной информации группы межкадровых изображений описаны со ссылками на фиг.6 ниже.
Идентификационная информация кадра означает информацию для различения изображения в текущем кадре от изображения в отличном кадре ((4)). При кодировании сигнала видео POC (порядковый индекс изображения) или 'frame_num' может использоваться, чтобы идентифицировать каждое изображение. В случае последовательности мультикадрового видео может быть выполнено межкадровое предсказание. Поэтому необходима идентификационная информация для различения изображения в текущем кадре от изображения в другом кадре. Итак, необходимо определить идентификационную информацию кадра для идентификации кадра изображения. Эта идентификационная информация кадра может быть получена из области заголовка сигнала видео. Например, область заголовка может быть областью NAL-заголовка, областью расширения NAL-заголовка или областью заголовка вырезки. Информацию для изображения в кадре, отличном от таковой текущего изображения, получают, используя идентификационную информацию кадра, и можно декодировать сигнал видео с использованием информации изображения в отличном кадре. Идентификационная информация кадра применима к полному процессу кодирования / декодирования сигнала видео. И идентификационная информация кадра может быть применима к кодированию мультикадрового видео, используя 'frame_num', который рассматривает кадр вместо рассмотрения идентификатора конкретного кадра.
Между тем, модуль 200 статистического декодирования выполняет статистическое декодирование в отношении синтаксически разобранного битового потока, и затем извлекает коэффициент каждого макроблока, вектор движения и т.п. Блок 300 инверсного квантования/обратного преобразования получает значение преобразованного коэффициента посредством умножения принятого квантованного значения на константу и затем обратно преобразовывает значение коэффициента, чтобы восстановить значение пикселей. Используя восстановленное значение пикселей модуль 400 внутреннего (интра-) предсказания выполняет внутреннее (интра-) предсказание из декодированной выборки в пределах текущего изображения. Между тем, модуль 500 фильтра устранения блочности применяется к каждому кодированному макроблоку, чтобы уменьшить блочное искажение. Фильтр сглаживает край блока, чтобы повысить качество изображения декодированного кадра. Выбор процесса фильтрования зависит от уровня границы и градиента выборки изображения вокруг границы. Изображения через фильтрование выдаются или сохраняются в буферном модуле 600 декодированных изображений, чтобы использоваться в качестве опорного изображения.
Буферный модуль 600 декодированных изображений играет роль в сохранении или открытии ранее кодированных изображений, чтобы выполнить внешнее (интер-) предсказание. В этом случае для сохранения изображений в буферном модуле 600 декодированных изображений или для открытия изображений, используется 'frame_num' и POC (порядковый индекс изображения) каждого изображения. Итак, так как существуют изображения в кадре, отличном от такового текущего изображения среди ранее кодированных изображений, информация кадра для идентификации кадра изображения может быть использована для использования вместе с 'frame_num' и POC. Буферный модуль 600 декодированных изображений включает в себя модуль 610 сохранения опорного изображения, модуль 620 создания списка опорных изображений и модуль 650 управления опорными изображениями. Модуль 610 сохранения опорного изображения хранит изображения, на которые будут ссылаться для кодирования текущего изображения. Модуль 620 создания списка опорных изображений конструирует список опорных изображений для предсказания между изображениями. При кодировании мультикадрового видео может быть необходимо межкадровое предсказание. Так, если текущее изображение ссылается на изображение в другом кадре, может быть необходимо создать список опорных изображений для межкадрового предсказания. В этом случае модуль 620 создания списка опорных изображений может использовать информацию для кадра при генерации списка опорных изображений для межкадрового предсказания. Подробности модуля 620 создания списка опорных изображений описаны ниже со ссылками на фиг.3.
Фиг.3 изображает внутреннюю блок-схему модуля 620 создания списка опорных изображений согласно варианту осуществления настоящего изобретения.
Модуль 620 создания списка опорных изображений включает в себя модуль 625 получения (вывода) переменной, модуль 630 инициализации списка опорных изображений и модуль 640 переупорядочения опорного списка.
Модуль 625 получения переменной получает (выводит) переменные, используемые для инициализации списка опорных изображений. Например, переменная может быть получена, используя 'frame_num', указывающий идентификационный номер изображения. В частности, переменные FrameNum и FrameNumWrap могут быть использованы для каждого краткосрочного опорного изображения. Прежде всего, переменная FrameNum равна значению элемента frame_num синтаксиса. Переменная FrameNumWrap может использоваться для буферного модуля 600 декодированных изображений, чтобы назначить малый номер каждому опорному изображению. И, переменная FrameNumWrap может быть получена из переменной FrameNum. Так, возможно получить переменную PicNum, используя полученную переменную FrameNumWrap. В этом случае переменная PicNum может означать идентификационный номер изображения, используемого буферным модулем 600 декодированных изображений. В случае указания долгосрочного опорного изображения может быть использована переменная LongTermPicNum.
Чтобы создать список опорных изображений для межкадрового предсказания, можно получить (вывести) первую переменную (например, ViewNum) для создания списка опорных изображений для межкадрового предсказания. Например, можно получить вторую переменную (например, Viewld), используя 'view_id' для идентификации кадра изображения. Прежде всего, вторая переменная может быть равна значению элемента 'view_id' синтаксиса. И, третья переменная (например, ViewIdWrap) может использоваться для буферного модуля 600 декодированных изображений для назначения малого идентификационного номера кадра каждому опорному изображению и может быть получена из второй переменной. В этом случае первая переменная ViewNum может означать идентификационный номер кадра изображения, используемого буферным модулем 600 декодированных изображений. Однако, так как количество опорных изображений, используемых для межкадрового предсказания при кодировании мультикадрового видео, может быть относительно меньшим, чем таковое, используемое для временного предсказания, можно не определять другую переменную для указания идентификационного номера кадра долгосрочного опорного изображения.
Модуль 630 инициализации списка опорных изображений инициализирует список опорных изображений, используя вышеупомянутые переменные. В этом случае процесс инициализации для списка опорных изображений может отличаться согласно типу вырезки. Например, в случае декодирования P-вырезки возможно назначить ссылочный индекс на основании порядка декодирования. В случае декодирования B-вырезки возможно назначить ссылочный индекс на основании порядка вывода изображения. В случае инициализации списка опорных изображений для межкадрового предсказания можно назначить индекс опорному изображению на основании первой переменной, то есть переменной, полученной из информации кадра.
Модуль 640 переупорядочения списка опорных изображений играет роль при повышении эффективности сжатия, назначая меньший индекс изображению, на который часто ссылаются в инициализированном списке опорных изображений. Это происходит потому, что маленький бит назначается, если ссылочный индекс для кодирования становится меньше.
И, модуль 640 переупорядочения списка опорных изображений включает в себя модуль 642 проверки типов вырезки, модуль 643 переупорядочения списка 0 опорных изображений, и модуль 645 переупорядочения списка 1 опорных изображений. Если вводится инициализированный список опорных изображений, модуль 642 проверки типов вырезки проверяет тип вырезки, которую нужно декодировать, и затем решает, переупорядочить ли список-0 опорных изображений или список-1 опорных изображений. Так, модуль 643, 645 переупорядочивания списка 0/1 опорных изображений выполняет переупорядочение списка 0 опорных изображений, если тип вырезки не является I-вырезкой, и также выполняет переупорядочение списка 1 опорных изображений дополнительно, если тип вырезки есть B-вырезка. Таким образом, после завершения процесса переупорядочения, создается список опорных изображений.
Модуль 643, 645 переупорядочивания списка 0/1 опорных изображений включает в себя модуль 643A, 645A получения идентификационной информации и модуль 643B, 645B изменения назначения ссылочного индекса, соответственно. Модуль 643A, 645A получения идентификационной информации принимает идентификационную информацию (reordering_of_pic_nums_idc), указывающую способ назначения ссылочного индекса, если переупорядочение списка опорных изображений выполняется согласно информации флага, указывающей, выполнять ли переупорядочение списка опорных изображений. И, модуль 643B, 645B изменения назначения ссылочного индекса переупорядочивает список опорных изображений посредством изменения назначения ссылочного индекса согласно идентификационной информации.
И, модуль 640 переупорядочения списка опорных изображений работает другим способом. Например, переупорядочение может быть выполнено посредством проверки типа NAL-блока, переданного до прохождения через модуль 642 проверки типов вырезки, и затем посредством классификации типа NAL-блока в случае MVC NAL и случая не-MVC NAL.
Модуль 650 управления опорным изображением управляет опорными изображениями для выполнения внешнего предсказание более гибко. Например, используются операционный способ управления памятью и способ подвижного окна. Это должно обеспечить управление памятью опорных изображений и памятью не опорных изображений посредством объединения блоков памяти в одну память и реализовать эффективное управление памятью с маленькой памятью. При кодировании мультикадрового видео, так как изображения в направлении кадра имеют тот же самый порядковый индекс изображения, информация для идентификации кадра каждого из изображений пригодна для использования при маркировке изображений в направлении кадра. И, опорные изображения, управляемые вышеупомянутым способом, могут использоваться модулем 700 интерпредсказания.
Модуль 700 интерпредсказания выполняет внешнее (интер) предсказание, используя опорные изображения, сохраненные в буферном модуле 600 декодированных изображений. Интеркодированный макроблок может быть разделен на части макроблока. И каждая из частей макроблока может быть предсказана, исходя из одного или двух опорных изображений. Модуль 700 интерпредсказания включает в себя модуль 710 компенсации движения, модуль 720 компенсации освещения, модуль 730 предсказания разности освещения, модуль 740 предсказания синтеза кадра, модуль 750 взвешенного предсказания и т.п.
Модуль 710 компенсации движения компенсирует движение текущего блока, используя информации, переданные из модуля 200 статистического декодирования. Векторы движения соседних блоков текущего блока извлекаются из сигнала видео, и затем блок предсказания вектора движения текущего блока выводится из векторов движения соседних блоков. И, движение текущего блока компенсируют, используя полученный блок предсказания вектора движения и разностный вектор движения, извлеченный из сигнала видео. И, возможно выполнить компенсацию движения, используя одно опорное изображение или множество изображений. При кодировании мультикадрового видео в случае, если это текущее изображение ссылается на изображения в отличных кадрах, возможно выполнить компенсация движения, используя информацию списка опорных изображений для межкадрового предсказания, сохраненного в буферном модуле 600 декодированных изображений. И, также возможно выполнить компенсацию движения, используя информацию кадра для идентификации кадра опорного изображения. Прямым режимом является режим кодирования для предсказания информации движения текущего блока из информации движения для кодированного блока. Так как этот способ способен сэкономить ряд битов, требуемых для кодирования информации движения, эффективность сжатия повышается. Например, режим временного направления предсказывает информацию движения для текущего блока, используя корреляцию информации движения во временном направлении. Используя способ, подобный этому способу, настоящее изобретение способно предсказать информацию движения для текущего блока, используя корреляцию информации движения в направлении кадров.
Между тем, в случае, если введенный битовый поток соответствует мультикадровому видео, так как соответствующие последовательности кадров получены отличной камерой, разность в освещении генерируется внутренними и внешними факторами этих камер. Чтобы предотвратить это, модуль 720 компенсации освещения компенсирует разность в освещении. При выполнении компенсации освещения возможно использовать информацию флага, указывающую, выполнить ли компенсацию освещения в отношении конкретного уровня сигнала видео. Например, возможно выполнить компенсацию освещения, используя информацию флага, указывающую, выполнить ли компенсацию освещения в отношении соответствующей вырезки или макроблока. При выполнении компенсации освещения, используя информацию флага, компенсация освещения применима к различным типам макроблоков (например, интеррежим 16×16, режим B-skip, прямой режим и т.д.).
При выполнении компенсации освещения возможно использовать информацию для соседнего блока или информацию для блока в кадре, отличном от такового текущего блока, чтобы восстановить текущий блок. И также возможно использовать значение разности освещения текущего блока. В этом случае, если текущий блок ссылается на блоки в отличном кадре, возможно выполнить компенсацию освещения, используя информацию списка опорных изображений для межкадрового предсказания, сохраненную в буферном модуле 600 декодированных изображений. В этом случае значение разности освещения текущего блока указывает разность между средним значением пикселей текущего блока и средним значением пикселей опорного блока, соответствующего текущему блоку. В качестве примера использования значения разности освещения, значение предсказания разности освещения текущего блока получают, используя соседние блоки текущего блока, и используется значение разности (остаточная разность освещения) между значением разности освещения и этим значением предсказания разности освещения. Следовательно, модуль декодирования способен восстановить значение разности освещения текущего блока, используя остаточную разность освещения и значение предсказания разности освещения. При получении значения предсказания разности освещения текущего блока возможно использовать информацию для соседнего блока. Например, возможно предсказать значение разности освещения текущего блока, используя значение разности освещения соседнего блока. До предсказания проверяют, является ли ссылочный индекс текущего блока равным таковому соседнего блока. Согласно результату проверки, затем решается - какой вид из соседнего блока или значения будет использоваться.
Модуль 740 предсказания синтеза кадра используется, чтобы синтезировать изображения в виртуальном кадре, используя изображения в кадре, соседнем для кадра текущего изображения, и предсказывать текущее изображение, используя синтезируемые изображения в виртуальном кадре. Модуль декодирования способен решить, синтезировать ли изображение в виртуальном кадре согласно идентификатору предсказания межкадрового синтеза, переданного от модуля кодирования. Например, если view_synthesize_pred_flag = 1 или view_syn_pred_flag = 1, то синтезируется вырезка или макроблок в виртуальном кадре. В этом случае, когда идентификатор предсказания межкадрового синтеза информирует, что виртуальный кадр будет сформирован, возможно сгенерировать изображение в виртуальном кадре, используя информацию кадра для идентификации кадра изображения. И, при предсказании текущего изображения из синтезированных изображений в виртуальном кадре возможно использовать информацию кадра, чтобы использовать изображение в виртуальном кадре как опорное изображение.
Модуль 750 взвешенного предсказания используется, чтобы компенсировать явление, при котором качество изображения последовательности значительно ухудшается в случае кодирования последовательности, яркость которого изменяется во времени. В MVC, взвешенное предсказание может быть выполнено, чтобы компенсировать разность яркости из последовательности в отличном кадре, также как это выполняется для последовательности, яркость которого изменяется во времени. Например, способ взвешенного предсказания может быть классифицирован в способ явного взвешенного предсказания и способ неявного взвешенного предсказания.
В частности, явный способ взвешенного предсказания может использовать одно опорное изображение или два опорных изображения. В случае использования одного опорного изображения сигнал предсказания получают из умножения сигнала предсказания, соответствующего компенсации движения, на весовой коэффициент. В случае использования двух опорных изображений сигнал предсказания получают из суммирования значения смещения к значению, получаемому из умножения сигнала предсказания, соответствующего компенсации движения, на весовой коэффициент.
И, неявное взвешенное предсказание выполняет взвешенное предсказание, используя расстояние от опорного изображения. В качестве способа получения расстояния от опорного изображения возможно использовать POC (порядковый индекс изображения), указывающий порядок вывода изображения, например. В этом случае POC может быть получен, рассматривая идентификационную информацию кадра каждого изображения. При получении весового коэффициента для изображения в отличном кадре возможно использовать информацию кадра для идентификации кадра изображения, чтобы получить расстояние между кадрами соответствующих изображений.
При кодировании сигнала видеоинформация глубины пригодна для использования для конкретного приложения или другой цели. В этом случае информация глубины может означать информацию, способную указывать разность межкадрового рассогласования. Например, возможно получить вектор рассогласования в соответствии с межкадровым предсказанием. И полученный вектор рассогласования должен быть передан устройству декодирования для компенсации рассогласования текущего блока. Однако, если карта глубины получена и затем передана к устройству декодирования, вектор рассогласования может быть логически выведен из карты глубины (или карты рассогласования) без передачи вектора рассогласования устройству декодирования. В этом случае это выгодно тем, что количество битов информации глубины, которое должно быть передано устройству декодирования, может быть уменьшено. Так, получая вектор рассогласования из карты глубины, возможно обеспечить новый способ компенсации рассогласования. Таким образом, в случае использования изображения в отличном кадре в ходе получения вектора рассогласования из карты глубины, может использоваться информация кадра для идентификации кадра изображения.
Интерпредсказанные или интрапредсказанные изображения посредством выше описанного процесса, выбирают согласно режиму предсказания, чтобы восстановить текущее изображение. В нижеследующем описании описываются различные варианты осуществления, обеспечивающие эффективный способ декодирования сигнала видео.
Фиг.4 - диаграмма иерархической структуры информации уровня для обеспечения масштабируемости кадра сигнала видео согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.4 информация уровня для каждого кадра может быть определена, рассматривая межкадровую опорную информацию. Например, так как невозможно декодировать P-изображение и B-изображение без I-изображения, возможно назначить 'level=0' основному виду, группа межкадровых изображений которого есть I-изображение, 'level=1' основному виду, группа межкадровых изображений которого есть P-изображение, и 'level=2' основному виду, группа межкадровых изображений которого есть B-изображение. Однако также возможно определить информацию уровня случайным образом согласно конкретному стандарту.
Информация уровня может быть случайным образом определена согласно конкретному стандарту или без стандарта. Например, в случае, когда информация уровня определена на основании кадра, возможно установить кадр V0 в качестве основного кадра в уровень 0 кадра, кадр изображений, предсказанных с использованием изображения в одном кадре в уровень 1 кадра, и кадр изображений, предсказанных с использованием изображения во множестве кадров, в уровень 2 кадра. В этом случае может быть необходима по меньшей мере одна последовательность кадров, чтобы иметь совместимость с обычным декодером (например, H.264/AVC, MPEG-2, MPEG-4, и т.д.). Этот основной кадр становится основой кодирования мультикадрового видео, которое может соответствовать опорному кадру для предсказания другого кадра. Последовательность, соответствующая основному кадру в MVC (мультикадровое кодирование видео), может быть конфигурирована в независимый битовый поток посредством кодирования в соответствии с обычной схемой кодирования последовательности (MPEG-2, MPEG-4, H.263, H.264 и т.д.). Последовательность, соответствующая основному кадру, является совместимой с H.264/AVC, или может не быть таковой. Однако, последовательность в кадре, совместимом с H.264/AVC, соответствует основному кадру.
Как можно видеть на фиг.4, возможно установить кадр V2 изображений, предсказанных, используя изображения в кадре V0, кадр V4 изображений, предсказанных используя изображения в кадре V2, кадр V6 изображений, предсказанных используя изображения в кадре V4, и кадр V7 изображений, предсказанных используя изображения в кадре V6 в уровень 1 кадра. И, возможно установить кадр V1 изображений, предсказанных используя изображения в кадрах V0 и V2, и кадр V3, предсказанный тем же самым способом, и кадр V5, предсказанный тем же самым способом, в уровень 2 кадра. Так, в случае когда декодер пользователя является не способным просмотреть последовательность мультикадрового видео, он декодирует последовательности в кадре, соответствующие только уровню 0 кадров. В случае, если декодер пользователя ограничен информацией профиля, возможно декодировать информацию только ограниченного уровня кадров. В этом случае профиль означает, что технические элементы для алгоритма в процессе кодирования/ декодирования видео являются стандартизированными. В частности, профиль является набором технических элементов, требуемых для декодирования битовой последовательности сжатой последовательности и может быть своего рода подстандартизацией.
Согласно другому варианту осуществления настоящего изобретения информация уровня может измениться согласно расположению камеры. Например, принимая, что кадры V0 и V1 являются последовательностями, полученными камерой, расположенной впереди, что кадры V2 и V3 являются последовательностями, расположенными сзади, что кадры V4 и V5 являются последовательностями, расположенными слева, и что кадры V6 и V7 являются последовательностями, расположенными справа, возможно установить кадры V0 и V1 в уровень 0 кадров, кадры V2 и V3 в уровень 1 кадров, кадры V4 и V5 в уровень 2 кадров, и кадры V6 и V7 в уровень 3 кадров. Альтернативно, информация уровня может измениться согласно выравниванию камеры. Альтернативно, информация уровня может быть случайным образом определена не на основании конкретного стандарта.
Фиг.5 - диаграмма конфигурации NAL-блока, включающего в себя информацию уровня в области расширения NAL-заголовка согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.5, NAL-блок в основном включает в себя NAL-заголовок и RBSP. NAL-заголовок включает в себя информацию флага (nal_ref_idc), указывающую, включена ли вырезка, становящаяся опорным изображением NAL-блока, и идентификатор (nal_unit_type), указывающий тип NAL-блока. И NAL-заголовок может также включать в себя информацию уровня (view_level), указывающую информацию для иерархической структуры, чтобы обеспечить масштабируемость кадра.
Сжатые первоначальные данные сохранены в RBSP, и хвостовой бит RBSP добавляют к последней части RBSP, чтобы представить длину RBSP в качестве 8-битового номера перемножения. В качестве типов NAL-блока существуют IDR (мгновенное обновление декодирования), SPS (набор параметров последовательности), PPS (набор параметров изображения), SEI (дополнительная информация расширения), и т.д.
NAL-заголовок включает в себя информацию для идентификатора кадра. И последовательность видео соответствующего уровня кадров декодируется со ссылкой на идентификатор кадра в ходе выполнения декодирования согласно уровню кадров.
NAL-блок включает в себя NAL-заголовок 51 и уровень 53 вырезки. NAL-заголовок 51 включает в себя расширение 52 NAL-заголовка. И, уровень 53 вырезки включает в себя заголовок 54 вырезки и данные 55 вырезки.
NAL-заголовок 51 включает в себя идентификатор (nal_unit_type), указывающий тип NAL-блока. Например, идентификатор, указывающий тип NAL-блока, может быть идентификатором и для масштабируемого кодирования и мультикадрового кодирования видео. В этом случае расширение 52 NAL-заголовка может включать в себя информацию флага, различающую, является ли текущий NAL NAL для масштабируемого кодирования видео или NAL для мультикадрового кодирования видео. И, расширение 52 NAL-заголовка может включать в себя информацию расширения для текущего NAL согласно информации флага. Например, в случае, когда текущий NAL есть NAL для кодирования мультикадрового видео согласно информации флага, расширение 52 NAL-заголовка может включать в себя информацию уровня (view_level), указывающую информацию для иерархической структуры, чтобы обеспечить масштабируемость кадра.
Фиг.6 - диаграмма полной структуры предсказания сигнала мультикадрового видео согласно одному варианту осуществления настоящего изобретения, чтобы объяснить концепцию группы межкадровых изображений.
Со ссылками на фиг.6, Т0 - T100 по горизонтальной оси указывают кадры согласно времени, и S0 - S7 на вертикальной оси указывают кадры согласно кадру. Например, изображения в момент T0 означают кадры, зафиксированные различными камерами в одной и той же временной зоне T0, в то время как изображения в S0 означают последовательности, зафиксированные отдельной камерой на различных временных зонах. И, стрелки на чертеже указывают направления предсказания и порядки предсказания соответствующих изображений. Например, изображение Р0 в кадре S2 во временной зоне T0 является изображением, предсказанным из I0, которое становится опорным изображением изображения Р0 в кадре S4 во временной зоне Т0. И, оно становится опорным изображением изображений B1 и B2 во временных зонах T4 и T2 в кадре S2, соответственно.
В процессе мультикадрового декодирования видео может быть необходим межкадровый произвольный доступ. Так, доступ к случайному кадру должен быть возможен посредством минимизации усилия декодирования. В этом случае может быть необходима концепция группы межкадровых изображений, чтобы реализовать эффективный доступ. Группа межкадровых изображений означает кодированное изображение, в котором все вырезки ссылаются только на вырезки с одним и тем же порядковым индексом изображения. Например, группа межкадровых изображений означает кодированное изображение, которое ссылается на вырезки только на отличном кадре без ссылки на вырезки в текущем кадре. На фиг.6, если изображение I0 в кадре S0 во временной зоне Т0 есть группа межкадровых изображений, все изображения в различных кадрах в отношении одной и той же временной зоны, то есть временной зоны Т0, становятся группами мультикадровых изображений. В качестве другого примера, если изображение I0 в кадре S0 во временной зоне T8 есть группа межкадровых изображений, все изображения в отличных кадрах на той же самой временной зоне, то есть временной зоне T8, являются группами мультикадровых изображений. Аналогично, все изображения в T16,..., T96, и T100 также становятся группами мультикадровых изображений.
Фиг.7 иллюстрирует диаграмму структуры предсказания согласно варианту осуществления настоящего изобретения, чтобы объяснить концепцию вновь определенной группы межкадровых изображений.
В общей структуре предсказания MVC, GOP может начинать с I-изображения. И это I-изображение является совместимым с H.264/AVC. Так, все группы межкадровых изображений, совместимые с H.264/AVC, могут всегда стать I-изображением. Однако в случае, если I-изображения заменены P-изображением, разрешается более эффективное кодирование. В частности, более эффективное кодирование разрешается, используя структуру предсказания, допускающую GOP для начала c P-изображения, совместимого с H.264/AVC.
В этом случае, если группа межкадровых изображений заново определена, все вырезки станут кодированным изображением, способным ссылаться не только на вырезку в кадре в некоторой временной зоне, но также и вырезку в том же самом кадре в отличной временной зоне. Однако в случае ссылки на вырезку в отличной временной зоне в том же самом кадре, это может быть ограничено группой мультикадровых изображений, совместимых только с H.264/AVC. Например, P-изображение во временной точке T8 в кадре S0 на фиг.6 может стать вновь определенной группой мультикадровых изображений. Аналогично, P-изображение во временной точке T96 в кадре S0 или P-изображение во временной точке T100 в кадре S0 может стать вновь определенной группой мультикадровых изображений. И, группа межкадровых изображений может быть определена, только если она есть основной кадр.
После того, как группа межкадровых изображений декодирована, все последовательно кодированные изображения декодируются из изображений, декодированных перед группой мультикадровых изображений в порядке вывода без интерпредсказания.
Рассматривая общую структуру кодирования мультикадрового видео, показанную на фиг.6 и фиг.7, так как межкадровая опорная информация группы межкадровых изображений отличается от таковой группы не межкадровых изображений, необходимо отличать группу межкадровых изображений и группу немежкадровых изображений друг от друга согласно идентификационной информации группы межкадровых изображений.
Межкадровая опорная информация означает информацию, способную распознавать структуру предсказания между межкадровыми изображениями. Она может быть получена из области данных сигнала видео. Например, она может быть получена из области набора параметров последовательности. И, межкадровая опорная информация может быть распознана, используя количество опорных изображений и информацию кадра для опорных изображений. Например, получают количество полных кадров, и информация кадра для идентификации каждого кадра может быть затем получена на основании количества полных кадров. И, возможно получить количество опорных изображений для направления ссылки для каждого кадра. Согласно количеству опорных изображений возможно получить информацию кадра для каждого из опорных изображений. Таким образом, может быть получена межкадровая опорная информация. И, межкадровая опорная информация может быть распознана посредством различения группы межкадровых изображений и группы немежкадровых изображений. Она может быть распознана, используя идентификационную информацию группы межкадровых изображений, указывающую, является ли кодированная вырезка в текущем NAL группой мультикадровых изображений. Подробности идентификационной информации группы межкадровых изображений описываются со ссылками на фиг.8 ниже.
Фиг.8 - схематическая блок-схема устройства для декодирования мультикадрового видео, используя группу межкадровых изображений, идентифицирующую информацию согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.8 устройство декодирования согласно одному варианту осуществления настоящего изобретения включает в себя модуль 81 определения битового потока, модуль 82 получения идентификационной информации группы межкадровых изображений и модуль 83 декодирования мультикадрового видео.
Если битовый поток введен, модуль 81 определения битового потока определяет, является ли введенный битовый поток кодированным битовым потоком для масштабируемого кодирования видео или кодированным битовым потоком для кодирования мультикадрового видео. Это может быть определено из информации флага, включенной в битовый поток.
Модуль 82 получения идентификационной информации группы межкадровых изображений может получать идентификационную информацию группы межкадровых изображений, если введенный битовый поток является битовым потоком для кодирования мультикадрового видео в результате определения. Если полученная идентификационная информация группы межкадровых изображений есть 'истина', это означает, что кодированная вырезка текущего NAL есть группа межкадровых изображений. Если полученная идентификационная информация группы межкадровых изображений есть 'ложь', это означает, что кодированная вырезка текущего NAL есть группа немежкадровых изображений. Идентификационная информация группы межкадровых изображений может быть получена из области расширения NAL-заголовка или области уровня вырезки.
Модуль 83 декодирования мультикадрового видео декодирует мультикадровое видео согласно идентификационной информации группы межкадровых изображений. Согласно общей структуре кодирования последовательности мультикадрового видео, межкадровая опорная (ссылочная) информация группы межкадровых изображений отличается от таковой группы немежкадровых изображений. Так, возможно использовать идентификационную информацию группы межкадровых изображений для добавления опорных изображений для межкадрового предсказания, чтобы сгенерировать список опорных изображений, например, И, также возможно использовать идентификационную информацию группы межкадровых изображений для управления опорными изображениями для межкадрового предсказания. Кроме того, идентификационная информация группы межкадровых изображений применима к гипотетическому опорному декодеру.
В качестве другого примера использования идентификационной информации группы межкадровых изображений, в случае использования информации в отличном кадре для каждого процесса декодирования используется межкадровая опорная информация, включенная в набор параметров последовательности. В этом случае информация для различения, является ли текущее изображение группой межкадровых изображений или группой не межкадровых изображений, то есть идентификационная информация группы межкадровых изображений, может требоваться. Так, возможно использовать отличную межкадровую опорную информацию для каждого процесса декодирования.
Фиг.9 - последовательность операций процесса для формирования списка опорных изображений согласно варианту осуществления настоящего изобретения.
Со ссылками на фиг.9, буферный модуль 600 декодированных изображений играет роль при сохранении или открытии предварительно кодированных изображений для выполнения интер-предсказания для изображения.
Прежде всего, изображения, кодированные до текущего изображения, сохраняют в модуле 610 сохранения опорного изображения, чтобы использоваться в качестве опорного изображения (S91).
При кодировании мультикадрового видео, так как некоторые из предварительно кодированных изображений находятся в кадре, отличном от такового текущего изображения, информация кадра для идентификации кадра изображения может использоваться, чтобы использовать эти изображения в качестве опорного изображения. Так, декодер должен получить информацию кадра для идентификации кадра изображения (S92). Например, информация кадра может включать в себя 'view_id' для идентификации кадра изображения.
Буферный модуль 600 декодированных изображений необходим для получения переменной, используемой в нем, чтобы сформировать список опорных изображений. Так как межкадровое предсказание может требоваться для кодирования мультикадрового видео, если текущее изображение ссылается на изображение в отличном кадре, может быть необходимо сформировать список опорных изображений для межкадрового предсказания. В этом случае буферный модуль 600 декодированных изображений необходим для получения переменной, используемой для формирования списка опорных изображений для межкадрового предсказания, используя полученную информацию кадра (S93).
Список опорных изображений для временного предсказания или список опорных изображений для межкадрового предсказания может быть сгенерирован отличным способом согласно типу вырезки текущей вырезки (S94). Например, если тип вырезки есть P/SP вырезка, формируют список 0 опорных изображений (S95). В случае, когда типом вырезки является B-вырезка, формируют список 0 опорных изображений и список 1 опорных изображений (S96). В этом случае список 0 или 1 опорных изображений может включать в себя только список опорных изображений для временного предсказания или оба из списка опорных изображений для временного предсказания и списка опорных изображений для межкадрового предсказания. Это описан подробно со ссылками на фиг.8 и фиг.9 ниже.
Инициализированный список опорных изображений подвергается процессу назначения меньшего номера для часто ссылаемых изображении, чтобы дополнительно повысить коэффициент сжатия (S97). И, это может называться процессом переупорядочения для списка опорных изображений, который описан подробно со ссылками на фиг.12 - 19 ниже. Текущее изображение декодирует, используя переупорядоченный список опорных изображений, и буферный модуль 600 декодированных изображений необходим для управления декодированными опорными изображениями, чтобы использовать буфер более эффективно (S98). Опорные изображения, управляемые вышеупомянутым процессом, считываются модулем 700 интерпредсказания, чтобы использоваться для интерпредсказания. При кодировании мультикадрового видео интерпредсказание может включать в себя межкадровое предсказание. В этом случае используется список опорных изображений для межкадрового предсказания.
Подробные примеры для способа формирования списка опорных изображений согласно типу вырезки описываются со ссылками на фиг.10 и фиг.11 ниже.
Фиг.10 - диаграмма для пояснения способа инициализации списка опорных изображений, когда текущая вырезка есть P-вырезка, согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.10 время обозначается как T0, T1, … TN, в то время как кадр обозначен V0, V1,., V4. Например, текущее изображение указывает изображение в момент T3 в кадре V4. И, тип вырезки текущего изображения есть P-вырезка. 'PN' является аббревиатурой переменной PicNum, 'LPN' является аббревиатурой переменной LongTermPicNum, и 'VN' является аббревиатурой переменной ViewNum. Цифра, добавленная к конечной части каждой из переменных, указывает индекс, указывающий время каждого изображения (для PN или LPN) или кадр каждого изображения (для VN). Это применимо к фиг.11 равным образом.
Список опорных изображений для временного предсказания или список опорных изображений для межкадрового предсказания может быть сформирован другим способом согласно типу вырезки текущей вырезки. Например, тип вырезки на фиг.12 есть P/SP вырезка. В этом случае формируют список 0 опорных изображений. В частности, список 0 опорных изображений может включать в себя список опорных изображений для временного предсказания и/или список опорных изображений для межкадрового предсказания. В данном варианте осуществления принимается, что список опорных изображений включает в себя как список опорных изображений для временного предсказания так и список опорных изображений для межкадрового предсказания.
Имеются различные способы для упорядочения опорных изображений. Например, опорные изображения могут быть выстроены согласно порядку декодирования или вывода изображения. Альтернативно, опорные изображения могут быть выстроены на основании переменной, полученной с использованием информации кадра. Альтернативно, опорные изображения могут быть выстроены согласно межкадровой опорной информации, указывающей структуру межкадрового предсказания.
В случае списка опорных изображений для временного предсказания, краткосрочные опорные изображения и долгосрочные опорные изображения могут быть выстроены на основании порядка декодирования. Например, они могут быть выстроены согласно значению переменной PicNum или LongTermPicNum, полученных из значения, указывающего идентификационный номер изображения (например, frame_num или Longtermframeidx). Прежде всего, краткосрочные опорные изображения могут быть инициализированы до долгосрочных опорных изображений. Порядок выстраивания краткосрочных опорных изображений может быть установлен от опорного изображения, имеющего самое высокое значение переменной PicNum, к опорному изображению, имеющему самое низкое значение переменной. Например, краткосрочные опорные изображения могут быть выстроены в порядке PN1, имеющем самую высокую переменную, PN2, имеющую промежуточную переменную, и PN0, имеющем самую низкую переменную среди PN0 - PN2. Порядок выстраивания долгосрочных опорных изображений может быть установлен от опорного изображения, имеющего самое низкое значение переменной LongTermPicNum, к опорному изображению, имеющему самое низкое значение. Например, долгосрочные опорные изображения могут быть выстроены в порядке LPN0, имеющем самое высокое значение переменной и LPN1, имеющем самое низкое значение переменной.
В случае списка опорных изображений для межкадрового предсказания опорные изображения могут быть выстроены на основании первой переменной ViewNum, полученной с использованием информации кадра. В частности, опорные изображения могут быть выстроены в порядке от опорного изображения, имеющего самое высокое значение первой переменной (ViewNum), к опорному изображению, имеющему самое низкое значение первой переменной (ViewNum). Например, опорные изображения могут быть выстроены в порядке VN3, имеющем самую высокую переменную, VN2, VN1 и VN0, имеющим самую низкую переменную среди VN0, VN1, VN2 и VN3.
Таким образом, оба из списка опорных изображений для временного предсказания и списка опорных изображений для межкадрового предсказания могут управляться как один список опорных изображений. Альтернативно, оба из списка опорных изображений для временного предсказания и списка опорных изображений для межкадрового предсказания могут управляться как отдельные списки опорного изображения, соответственно. В случае управления обоими из списка опорных изображений для временного предсказания и списка опорных изображений для межкадрового предсказания как одним списком опорных изображений, они могут быть инициализированы согласно порядку или одновременно. Например, в случае инициализации обоих из списка опорных изображений для временного предсказания и списка опорных изображений для межкадрового предсказания согласно порядку, предпочтительно инициализируется список опорных изображений для временного предсказания, и список опорных изображений для межкадрового предсказания затем инициализируется дополнительно. Эта концепция также применима к фиг.11.
Случай, когда типом вырезки текущего изображения является B-вырезка, описан со ссылками на фиг.11 ниже.
Фиг.11 - диаграмма для пояснения способа инициализации списка опорных изображений, когда текущая вырезка есть B-вырезка согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.9, в случае, если типом вырезки является B-вырезка, формируют список 0 опорных изображений и список 1 опорных изображений. В этом случае список 0 опорных изображений или список 1 опорных изображений может включать в себя только список опорных изображений для временного предсказания или оба - как список опорных изображений для временного предсказания,так и список опорных изображений для межкадрового предсказания.
В случае списка опорных изображений для временного предсказания способ выстраивания краткосрочных опорных изображений может отличиться от способа выстраивания долгосрочных опорных изображений. Например, в случае краткосрочных опорных изображений опорные изображения могут быть выстроены согласно порядковому индексу изображения (в дальнейшем сокращенно - POC). В случае долгосрочных опорных изображений опорные изображения могут быть выстроены согласно значению переменной (LongtermPicNum). И, краткосрочные опорные изображения могут быть инициализированы до долгосрочных опорных изображений.
В порядке выстраивания краткосрочных опорных изображений списка 0 опорных изображений, опорные изображения предпочтительно выстраивают от опорного изображения, имеющего самое высокое значение POC, к опорному изображению, имеющему самое низкое значение POC, среди опорных изображений, имеющих POC значения, меньшие чем таковое у текущего изображения, и затем выстраивают от опорного изображения, имеющего самое низкое значение POC, к опорному изображению, имеющему самое высокое значение POC среди опорных изображений, имеющих POC значения, большие чем таковое текущего изображения. Например, опорные изображения могут быть, предпочтительно, выстроены от PN1, имеющего самое высокое значение POC в опорных изображениях PN0 и PN1, имеющих значения POC, меньшие, чем таковое текущего изображения, к PN0, и затем выстроены от PN3, имеющего самое низкое значение POC в опорных изображениях PN3 и PN4, имеющих значение POC, меньшие чем таковое текущего изображения, к PN4.
В порядке выстраивания долгосрочных опорных изображений списка 0 опорных изображений опорные изображения выстраивают от опорного изображения, имеющего самую низкую переменную LongtermPicNum, к опорному изображению, имеющему самую высокую переменную. Например, опорные изображения выстраивают от LPN0, имеющего самое низкое значение в LPN0 и LPN1, к LPN1, имеющему вторую самую низкую переменную.
В случае списка опорных изображений для межкадрового предсказания опорные изображения могут быть выстроены на основании первой переменной ViewNum, полученной с использованием информации кадра. Например, в случае списка 0 опорных изображений для межкадрового предсказания опорные изображения могут быть выстроены от опорного изображения, имеющего самое высокое значение первой переменной среди опорных изображений, имеющих значения первой переменной ниже, чем таковое текущего изображения, к опорному изображению, имеющему самое низкое значение первой переменной. Опорные изображения затем выстраивают от опорного изображения, имеющего самое низкое значение первой переменной среди опорных изображений, имеющих значение первой переменная большее, чем таковое текущего изображения, к опорному изображению, имеющему самое высокое значение первой переменной. Например, опорные изображения предпочтительно выстраивают от VN1, имеющего самое высокое значение первой переменной в VN0 и VN1, имеющих значение первой переменной, меньшее, чем таковое текущего изображения, к VN0, имеющему самое низкое значение первой переменной, и затем выстраивают от VN3, имеющего самое низкое значение первой переменной в VN3 и VN4, имеющим значение первой переменной большее, чем таковое текущего изображения, к VN4, имеющему самое высокое значение первой переменной.
В случае списка 1 опорных изображений вышеописанный способ выстраивания списка 0 опорного является применимым аналогично.
Прежде всего, в случае списка опорных изображений для временного предсказания, в порядке выстраивания (упорядочения) краткосрочного опорного изображения списка 1 опорных изображений опорные изображения предпочтительно выстраиваются от опорного изображения, имеющего самое низкое значение POC, к опорному изображению, имеющему самое высокое значение POC среди опорных изображений, имеющих POC значения, большие чем таковые текущего изображения, и затем выстраиваются от опорного изображения, имеющего самое высокое значение POC, к опорному изображению, имеющему самое низкое значение POC среди опорных изображений, имеющих значения POC, меньшие, чем таковое текущего изображения. Например, опорные изображения могут быть предпочтительно выстроены от PN3, имеющего самое низкое значение POC в опорных изображениях PN3 и PN4, имеющих POC значения, большие чем таковое текущего изображения, к PN4, и затем выстроены от PN1, имеющего самое высокое значение POC в опорных изображениях PN0 и PN1, имеющих POC значения, большие чем таковое текущего изображения, к PN0.
В порядке выстраивания (упорядочения) долгосрочных опорных изображений списка 1 опорных изображений, опорные изображения выстраиваются от опорного изображения, имеющего самую низкую переменную LongtermPicNum, к опорному изображению, имеющему самую высокую переменную. Например, опорные изображения выстроены от LPN0, имеющего самое низкое значение в LPN0 и LPN1, к LPN1, имеющему самую низкую переменную.
В случае списка опорных изображений для межкадрового предсказания опорные изображения могут быть выстроены на основании первой переменной ViewNum, полученной с использованием информации кадра. Например, в случае 1 списка опорных изображений для межкадрового предсказания, опорные изображения могут быть выстроены от опорного изображения, имеющего самое низкое значение первой переменной среди опорных изображений, имеющих значение первой переменной, большее чем таковое текущего изображения, к опорному изображению, имеющему самое высокое значение первой переменной. Опорные изображения затем выстраивают (упорядочивают) от опорного изображения, имеющего самое высокое значение первой переменной среди опорных изображений, имеющих значение первой переменной, меньшее чем таковое текущего изображения, к опорному изображению, имеющему самое низкое значение первой переменной. Например, опорные изображения предпочтительно выстраивают от VN3, имеющего самое низкое значение первой переменной в VN3 и VN4, имеющих значение первой переменной, большее чем таковое текущего изображения, к VN4, имеющему самое высокое значение первой переменной, и затем выстраивают от VN1, имеющему самое высокое значение первой переменной в VN0 и VN1, имеющих значение первой переменной, меньшее чем таковое текущего изображения, к VN0, имеющему самое низкое значение первой переменной.
Список опорных изображений, инициализированный вышеупомянутым процессом, передают модулю 640 переупорядочения списка опорных изображений. Инициализированный список опорных изображений затем переупорядочивают для более эффективного кодирования. Процесс переупорядочения должен уменьшить частоту следования битов, назначая малое количество опорному изображению, имеющему самую высокую вероятность выбора в качестве опорного изображения, используя буфер декодированных изображений. Различные способы переупорядочения списка опорных изображений описываются со ссылками на фиг.12-19 ниже.
Фиг.12 иллюстрирует внутреннюю блок-схему модуля 640 переупорядочения списка опорных изображений согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.12 модуль 640 переупорядочения списка опорных изображений в основном включает в себя модуль 642 проверки типов вырезки, модуль 643 переупорядочения списка 0 опорных изображений и модуль 645 переупорядочения списка 1 опорных изображений.
В частности, модуль 643 переупорядочения списка 0 опорных изображений включает в себя первый модуль 643A получения идентификационной информации и первый модуль 643B изменения назначения ссылочного индекса. И, модуль 645 переупорядочения списка 1 опорных изображений включает в себя второй модуль 645A получения идентификационной информации и второй модуль 645B изменения назначения ссылочного индекса.
Модуль 642 проверки типов вырезки проверяет тип вырезки текущей вырезки. Затем принимается решение - переупорядочить ли список 0 опорных изображений и/или список 1 опорных изображений согласно типу вырезки. Например, если тип вырезки текущей вырезки есть I-вырезка, оба из списка 0 опорных изображений и списка 1 опорных изображений не переупорядочиваются. Если тип вырезки текущей вырезки есть P-вырезка, переупорядочивается только список 0 опорных изображений. Если тип вырезки текущей вырезки есть B-вырезка, переупорядочиваются оба из списка 0 опорных изображений и списка 1 опорных изображений.
Модуль 643 переупорядочения списка 0 опорных изображений активизируется, если информация флага для выполнения переупорядочения списка опорных изображений равна 'истина', и если тип вырезки текущей вырезки не есть I-вырезка. Первый модуль 643A получения идентификационной информации получает идентификационную информацию, указывающую способ назначения ссылочного индекса. Первый модуль 643B изменения назначения ссылочного индекса изменяет ссылочный индекс, назначенный каждому опорному изображению списка 0 опорных изображений согласно этой идентификационной информации.
Аналогично, модуль 645 переупорядочения списка 1 опорных изображений активизируется, если информация флага для выполнения переупорядочения списка 1 опорных изображений равна 'истина' и если типом вырезки текущей вырезки является B-вырезка. Второй модуль 645A получения идентификационной информации получает идентификационную информацию, указывающую способ назначения ссылочного индекса. Второй модуль 645B изменения назначения ссылочного индекса изменяет ссылочный индекс, назначенный каждому опорному изображению списка 1 опорных изображений, согласно этой идентификационной информации.
Так, информацию списка опорных изображений, используемую для фактического интерпредсказания, формируют посредством модуля 643 переупорядочения списка 0 опорных изображений и модуля 645 переупорядочения списка 1 опорных изображений.
Способ изменения ссылочного индекса, назначенного каждому опорному изображению посредством модуля 643B или 645B изменения назначения первого или второго ссылочного индекса, описан со ссылками на фиг.13 ниже.
Фиг.13 - внутренняя блок-схема модуля 643B или 645B изменения назначения ссылочного индекса согласно одному варианту осуществления настоящего изобретения. В следующем описании модуль 643 переупорядочения списка 0 опорных изображений и модуль 645 переупорядочения списка 1 опорных изображений, показанные на фиг.12, описаны вместе.
Со ссылками на фиг.13 каждый из первого и второго модуля 643B и 645B изменения назначения ссылочного индекса включает в себя модуль 644A изменения назначения ссылочного индекса для временного предсказания, модуль 644B изменения назначения ссылочного индекса для долгосрочного опорного изображения, модуль 644C изменения назначения ссылочного индекса для межкадрового предсказания, и модуль 644D окончания (завершения) изменения назначения ссылочного индекса. Согласно идентификационным информациям, полученным первым или вторым модулями 643B или 645B изменения назначения ссылочного индекса, части в первом или втором модулях 643B и 645B изменения назначения ссылочного индекса активизируются, соответственно. И процесс переупорядочения продолжает выполнение, пока не будет введена идентификационная информация для завершения изменения назначения ссылочного индекса.
Например, если идентификационная информация для изменения назначения ссылочного индекса для временного предсказания получена от первого или второго модуля 643B или 645B изменения назначения ссылочного индекса, активизируется модуль 644A изменения назначения ссылочного индекса для временного предсказания. Этот модуль 644A изменения назначения ссылочного индекса для временного предсказания получает разность номеров изображения согласно принятой идентификационной информации. В этом случае разность номеров изображения означает разность между номером изображения текущего изображения и номером предсказанного изображения. И номер предсказанного изображения может указывать номер опорного изображения, назначенного непосредственно перед (ним). Так, возможно изменить назначение ссылочного индекса, используя полученную разность номеров изображения. В этом случае разность номеров изображения может быть добавлена/вычтена к/из предсказанного номера изображения согласно идентификационной информации.
Для другого случая, если принята идентификационная информация для изменения назначения ссылочного индекса для назначенного долгосрочного опорного изображения, активизируется модуль 644B изменения назначения ссылочного индекса для долгосрочного опорного изображения. Модуль 644B изменения назначения ссылочного индекса для долгосрочного опорного изображения получает номер долгосрочного опорного изображения обозначенного изображения согласно идентификационному номеру.
Для другого случая, если принята идентификационная информация для изменения назначения ссылочного индекса для межкадрового предсказания, активизируется модуль 644С изменения назначения ссылочного индекса для межкадрового предсказания. Модуль 644С изменения назначения ссылочного индекса для межкадрового предсказания получает разность информации кадра согласно идентификационной информации. В этом случае разность информации кадра означает разность между номером кадра текущего изображения и номером предсказанного кадра. И, предсказанный номер кадра может указывать номер кадра опорного изображения, назначенный непосредственно до него. Так, возможно изменить назначение ссылочного индекса, используя полученную разность информации кадра. В этом случае разность информации кадра может быть добавлена/вычтена к/из предсказанного номера кадра согласно идентификационной информации.
Для другого случая, если принята идентификационная информация для завершения изменения назначения ссылочного индекса, активизируется модуль 644D окончания изменения назначения ссылочного индекса. Модуль 644D окончания изменения назначения ссылочного индекса заканчивает изменение назначения ссылочного индекса согласно принятой идентификационной информации. Так, модуль 640 переупорядочения списка опорных изображений генерирует информацию списка опорных изображений.
Таким образом, опорные изображения, используемые для межкадрового предсказания, могут управляться вместе с опорными изображениями, используемыми для временного предсказания. Альтернативно, опорные изображения, используемые для межкадрового предсказания, могут управляться отдельно от опорных изображений, используемых для временного предсказания. Для этого могут требоваться новые информации для управления опорными изображениями, используемыми для межкадрового предсказания. Это будет описано со ссылками на фиг.15-19 ниже.
Подробности модуля 644C изменения назначения ссылочного индекса для межкадрового предсказания описаны со ссылками на фиг.14 ниже.
Фиг.14 - диаграмма для пояснения процесса для переупорядочения списка опорных изображений, используя информацию кадра согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.14, если номер VN кадра текущего изображения равен 3, если размер буфера DPBsize декодированного изображения равен 4, и если тип вырезки текущей вырезки есть P-вырезка, процесс переупорядочения для списка 0 опорных изображений описан ниже.
Прежде всего, первоначально предсказанный номер кадра равен '3', который является номером кадра текущего изображения. И, начальное упорядочение списка 0 опорных изображений для межкадрового предсказания равно '4, 5, 6, 2' ((1)). В этом случае, если принята идентификационная информация для изменения назначения ссылочного индекса для межкадрового предсказания посредством вычитания разности информации кадра, '1' получают в качестве разности информации кадра согласно принятой идентификационной информации. Вновь предсказанный номер кадра (=2) вычисляют, вычитая разность информации кадра (=1) из предсказанного номера кадра (=3). В частности, первый индекс списка 0 опорных изображений для межкадрового предсказания назначается опорному изображению, имеющему номер кадра 2. И, изображение, ранее назначенное первому индексу, может быть перемещено в самую заднюю часть списка 0 опорных изображений. Таким образом, переупорядоченный список опорных изображений равен '2, 5, 6, 4' ((2)). Затем, если принята идентификационная информация для изменения назначения ссылочного индекса для межкадрового предсказания посредством вычитания разности информации кадра, '-2' получают в качестве разности информации кадра согласно этой идентификационной информации. Вновь предсказанный номер кадра затем вычисляют, вычитая разность информации кадра (= -2) из предсказанного номера кадра. В частности, второй индекс списка 0 опорных изображений для межкадрового предсказания назначают опорному изображению, имеющему номер кадра 4. Следовательно, переупорядоченный список 0 опорных изображений есть '2, 4, 6, 5' ((3)). Затем, если принята идентификационная информация для завершения изменения назначения ссылочного индекса, список 0 опорных изображений, имеющий переупорядоченный список 0 опорных изображений в качестве окончания, формируют согласно принятой идентификационной информации ((4)). Следовательно, порядок окончательно сформированного списка 0 опорных изображений для межкадрового предсказания равен '2, 4, 6, 5'.
Для другого случая переупорядочения остальных изображений после того, как первый индекс списка 0 опорных изображений для межкадрового предсказания был назначен, изображение, назначенное каждому индексу, может быть перемещено вправо в позицию сразу позади таковой соответствующего изображения. В частности, второй индекс назначен изображению, имеющему номер кадра 4, третий индекс назначен изображению (номер кадра 5), которому был назначен второй индекс, и четвертый индекс назначен изображению (номер кадра 6), которому был назначен третий индекс. Следовательно, переупорядоченный список 0 опорных изображений становится равным '2, 4, 5, 6'. И, последующий процесс переупорядочения может быть выполнен таким же образом.
Список опорных изображений, сформированный вышеупомянутым процессом, используется для интер- (внешнего) предсказания. Оба из списка опорных изображений для межкадрового предсказания и списка опорных изображений для временного предсказания могут управляться как один список опорных изображений. Альтернативно, каждый из списка опорных изображений для межкадрового предсказания и списка опорных изображений для временного предсказания может управляться как отдельный список опорных изображений. Это описано со ссылками на фиг. от 15 до 19 ниже.
Фиг.15 - внутренняя блок-схема модуля 640 переупорядочения списка опорных изображений согласно другому варианту осуществления настоящего изобретения.
Со ссылками на фиг.15, чтобы управлять списком опорных изображений для межкадрового предсказания как отдельным списком опорных изображений, новая информация может быть необходимо. Например, список опорных изображений для временного предсказания переупорядочивается, и список опорных изображений для межкадрового предсказания затем переупорядочивается в некоторых случаях.
Модуль 640 переупорядочения списка опорных изображений в основном включает в себя модуль 910 переупорядочения списка опорных изображений для временного предсказания, модуль 960 проверки типа NAL, и модуль 970 переупорядочения списка опорных изображений для меж-кадрового предсказания.
Модуль 910 переупорядочения списка опорных изображений для временного предсказания включает в себя модуль 642 проверки типов вырезки, третий модуль 920 получения идентификационной информации, третий модуль 930 изменения назначения ссылочного индекса, четвертый модуль 940 получения идентификационной информации, и четвертый модуль 950 изменения назначения ссылочного индекса. Третий модуль 930 изменения назначения ссылочного индекса включает в себя модуль 930A изменения назначения ссылочного индекса для временного предсказания, модуль 930B изменения назначения ссылочного индекса для долгосрочного опорного изображения, и модуль 930C завершения изменения назначения ссылочного индекса. Аналогично, четвертый модуль 950 изменения назначения ссылочного индекса включает в себя модуль 950A изменения назначения ссылочного индекса для временного предсказания, модуль 950B изменения назначения ссылочного индекса для долгосрочного опорного изображения, и модуль 950C завершения изменения назначения ссылочного индекса.
Модуль 910 переупорядочения списка опорных изображений для временного предсказания переупорядочивает опорные изображения, используемые для временного предсказания. Операции модуля 910 переупорядочения списка опорных изображений для временного предсказания идентичны таковым вышеупомянутого модуля 640 переупорядочения списка опорных изображений, показанного на фиг.10, кроме информации для опорных изображений для межкадрового предсказания. Таким образом, подробности модуля 910 переупорядочения списка опорных изображений для временного предсказания опущены в нижеследующем описании.
Блок проверки типа NAL 960 проверяет тип NAL принятого битового потока. Если тип NAL есть NAL для мультикадрового кодирования видео, опорные изображения, используемые для межкадрового предсказания, переупорядочивают посредством модуля 970 переупорядочения списка опорных изображений для временного предсказания. Сформированный список опорных изображений для межкадрового предсказания используется для интер-предсказания вместе со списком опорных изображений, сформированным модулем 970 переупорядочения списка опорных изображений для временного предсказания. Однако, если тип NAL есть не NAL для мультикадрового кодирования видео, список опорных изображений для межкадрового предсказания не переупорядочивают. В этом случае формируют только список опорных изображений для временного предсказания. И, модуль 970 переупорядочивания списка опорных изображений межкадрового предсказания переупорядочивает опорные изображения, используемые для межкадрового предсказания. Это описано подробно со ссылками на фиг.16 ниже.
Фиг.16 - внутренняя блок-схема модуль 970 переупорядочения списка опорных изображений для межкадрового предсказания согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.16, модуль 970 переупорядочения списка опорных изображений для межкадрового предсказания включает в себя модуль 642 проверки типов вырезки, пятый модуль 971 получения идентификационной информации, пятый модуль 972 изменения назначения ссылочного индекса, шестой модуль 973 получения идентификационной информации, и шестой модуль 974 изменения назначения ссылочного индекса.
Модуль 642 проверки типов вырезки проверяет тип вырезки текущей вырезки. Если да, затем принимается решение, выполнить ли переупорядочение списка 0 опорных изображений и/или списка 1 опорных изображений согласно типу вырезки. Подробности модуля 642 проверки типов вырезки могут быть выведены из фиг.10, которые опущены в нижеследующем описании.
Каждый из пятого и шестого модулей 971 и 973 получения идентификационной информации получает идентификационную информацию, указывающую способ назначения ссылочного индекса. И, каждый из пятого и шестого модулей 972 и 974 изменения назначения ссылочного индекса изменяет ссылочный индекс, назначенный каждому опорному изображению списка 0 и/или 1 опорных изображений. В этом случае ссылочный индекс может означать только номер кадра опорных изображений. И, идентификационная информация, указывающая способ назначения ссылочного индекса, может быть информацией флага. Например, если информация флага истинна, назначение номера кадра изменяется. Если информация флага есть 'ложь', процесс переупорядочения номера кадра может быть закончен. Если информация флага есть 'истина', каждый из пятого и шестого модулей 972 и 974 изменения назначения ссылочного индекса может получить разность номеров кадра согласно информации флага. В этом случае разность номеров кадров означает разность между номером кадра текущего изображения и номером кадра предсказанного изображения. И, номер кадра предсказанного изображения может означать номер кадра опорного изображения, назначенного как раз перед ним. Затем можно изменить назначение номера кадра, используя разность номеров кадров. В этом случае разность номеров кадров может быть добавлена/вычтена к/из количества кадра предсказанного изображения согласно идентификационной информации.
Таким образом, чтобы управлять списком опорных изображений для межкадрового предсказания в качестве отдельного списка опорных изображений, необходимо заново определить структуру синтаксиса. Как один вариант осуществления содержания, описанного на фиг.15 и фиг.16, синтаксис описан со ссылками на фиг.17, фиг.18 и фиг.19 ниже.
Фиг.17 и фиг.18 - диаграммы синтаксиса для переупорядочения списка опорных изображений согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.17, работа модуля 910 переупорядочения списка опорных изображений для временного предсказания, показанного на фиг.15, представлена в виде синтаксиса. По сравнению с блоками, показанными на фиг.15, модуль 642 проверки типов вырезки соответствует S1 и S6, и четвертый модуль 940 получения идентификационной информации соответствует S7. Внутренние блоки третьего модуля 930 изменения назначения ссылочного индекса соответствуют S3, S4 и S5, соответственно. И, внутренние блоки четвертого модуля 950 изменения назначения ссылочного индекса соответствуют S8, S9 и S10, соответственно.
Со ссылками на фиг.18, работа модуля 960 проверки типа NAL и модуля 970 переупорядочивания списка опорных мультикадровых изображений представлены как синтаксис. По сравнению с соответствующими блоками, показанными на фиг.15 и фиг.16, модуль 960 проверки типа NAL соответствует S11, модуль 642 проверки типов вырезки соответствует S13 и S16, пятый модуль 971 получения идентификационной информации соответствует S14, и шестой 973 модуль получения идентификационной информации соответствует S17. Пятый модуль 972 изменения назначения ссылочного индекса соответствует S15, и шестой модуль 974 изменения назначения ссылочного индекса соответствует S18.
Фиг.19 - диаграмма синтаксиса для переупорядочения списка опорных изображений согласно другому варианту осуществления настоящего изобретения.
Со ссылками на фиг.19, работа модуля 960 проверки типа NAL и модуля 970 переупорядочивания списка опорных межкадровых изображений представлены как синтаксис. По сравнению с соответствующими блоками, показанными на фиг.15 и фиг.16, модуль 960 проверки типа NAL соответствует S21, модуль 642 проверки типов вырезки соответствует S22 и S25, пятый модуль 971 получения идентификационной информации соответствует S23, и шестой 973 модуль получения идентификационной информации соответствует S26. Пятый модуль 972 изменения назначения ссылочного индекса соответствует S24, и шестой модуль 974 изменения назначения ссылочного индекса соответствует S27.
Как упомянуто в предшествующем описании, список опорных изображений для межкадрового предсказания может использоваться модулем 700 интерпредсказания и также пригоден для использования для выполнения компенсации освещения. Компенсация освещения применима в ходе выполнения компенсации движения / оценки движения. В случае, когда текущее изображение использует опорное изображение в отличном кадре, возможно выполнить компенсацию освещения более эффективно с использованием списка опорных изображений для межкадрового предсказания. Компенсации освещения согласно вариантам осуществления настоящего изобретения описываются ниже.
Фиг.20 - диаграмма процесса для получения значения разности освещения текущего блока согласно одному варианту осуществления настоящего изобретения.
Компенсация освещения означает процесс для декодирования адаптивно скомпенсированного по движению сигнала видео согласно изменению освещения. И, это применимо к структуре предсказания сигнала видео, например, межкадрового предсказания, внутрикадрового предсказания и т.п.
Компенсация освещения означает процесс для декодирования сигнала видео с использованием остаточной разности освещения и значения предсказания разности освещения, соответствующего блоку, подлежащего декодированию. В этом случае значение предсказания разности освещения может быть получено из соседнего блока текущему блоку. Процесс для получения значения предсказания разности освещения от соседнего блока может быть определен, используя опорную информацию для соседнего блока, и последовательность и направление могут быть приняты в рассмотрение в ходе поиска соседних блоков. Соседний блок означает уже декодированный блок и также означает блок, декодированный посредством рассмотрения избыточности в пределах того же самого изображения для кадра или времени, или последовательности, декодированной посредством рассмотрения избыточности в пределах различных изображений.
При сравнении подобий между текущим блоком и опорным блоком-кандидатом разность освещения между этими двумя блоками должна быть учтена. Чтобы компенсировать разность освещения, выполняется новая оценка / компенсация движения. Новый SAD может быть найден, используя Формулу 1.
[Формула 1]
cur
M=
Mref(p,q)=
[Формула 2]
NewSAD(x,y)=
В этом случае 'Mcur' указывает среднее значение пикселей текущего блока и 'Mref' указывает среднее значение пикселей опорного блока. 'f(i,j)' указывает значение пикселей текущего блока и 'r (i+x, j+y)' указывает значение пикселей опорного блока. Выполняя оценку движения на основании нового SAD согласно Формуле 2, можно получить среднее значение разности пикселей между текущим блоком и опорным блоком. И, полученное среднее значение разности пикселей может быть названо значением разности освещения (IC_offset).
В случае выполнения оценки движения, к которой применяется компенсация освещения, формируют значение разности освещения и вектор движения. И, компенсация освещения выполняется согласно Формуле 3 с использованием значения разности освещения и вектора движения.
[Формула 3]
cur
ref
NewR(i,j)={f(i,j)-M}-{r(i+x',j+y')-M(m+x',n+y')} =
cur
ref
{f(i,j) -r(i+x',j+y')} - {М-M(m+x',n+y')} =
{(f(i,j)-r(i+x',j+y')}-IC_offset
В этом случае NewR(i,j) указывает компенсированное по освещению значение ошибки (остаточное) и (x', y') указывает вектор движения.
curr
ref
Значение разности освещения (M-M) должно быть передано на модуль декодирования. Модуль декодирования выполняет компенсацию освещения следующим образом.
[Формула 4]
cur
ref
f'(i,j) = {NewR"(x',y',i,j)+r(i+x',j+y')}+{M-M(m+x', n+y')} = {NewR''(x',y',i, j) +r (i+x', j + y')} +IC_offset
В Формуле 4 NewR"(i,j) указывает восстановленное компенсированное по освещению значение ошибки (остаточное) и f'(i,j) указывает значение пикселей восстановленного текущего блока.
Чтобы восстановить текущий блок, значение разности освещения должно быть передано модулю декодирования. И значение разности освещения может быть предсказано из информации соседних блоков. Чтобы дополнительно уменьшить количество битов для кодирования значения разности освещения, можно послать только значение разности (RIC_offset) между значением разности освещения текущего блока и значением разности освещения соседнего блока. Это представлено в виде Формулы 5.
[Формула 5]
RIC_offset = IC_offset - predIC_offset
Фиг.21 - последовательность операций процесса для выполнения компенсации освещения текущего блока согласно варианту осуществления настоящего изобретения.
Со ссылками на фиг.21, прежде всего, значение разности освещения соседнего блока, указывающее среднее значение разности пикселей между соседним блоком текущего блока и блока, на который ссылается соседний блок, извлекают из сигнала видео (S2110).
Затем значение предсказания разности освещения для компенсации освещения текущего блока получают, используя это значение разности освещения (S2120). Так, возможно восстановить значение разности освещения текущего блока, используя полученное значение предсказания разности освещения.
При получении значения предсказания разности освещения можно использовать различные способы. Например, прежде чем значение разности освещения текущего блока предсказывается из значения разности освещения соседнего блока, проверяют, является ли ссылочный индекс текущего блока равным таковому соседнего блока. Затем можно решить, какой соседний блок или значение будут использоваться согласно результату проверки. Для другого случая, при получении значения предсказания разности освещения, может использоваться информация флага (IC_flag), указывающая, выполнить ли компенсацию освещения текущего блока. И, информация флага для текущего блока может быть предсказана, используя также информацию соседних блоков. Для другого случая возможно получить значение предсказания разности освещения, используя оба из способа проверки ссылочного индекса и способа предсказания информации флага. Они описаны подробно со ссылками на фиг.22 - 24 ниже.
Фиг.22 - блок-схема процесса для получения значения предсказания разности освещения текущего блока, используя информацию для соседнего блока согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.22, можно использовать информацию для соседнего блока при получении значения предсказания разности освещения текущего блока. В настоящем раскрытии, блок может включать в себя макроблок или подмакроблок. Например, возможно предсказать значение разности освещения текущего блока, используя значение разности освещения соседнего блока. Перед этим проверяют, является ли ссылочный индекс текущего блока равным таковому соседнего блока. Согласно результату проверки, затем возможно решить какой соседний блок или значение будет использоваться. На фиг.22 'refIdxLX' указывает ссылочный индекс текущего блока, 'refIdxLXN' указывает ссылочный индекс блока-N. В этом случае 'N' является меткой блока-соседа текущего блока и указывает A, B или C. И, 'PredIC_offsetN' указывает значение разности освещения для компенсации освещения соседнего блока-N. Если невозможно использовать блок C, который расположен в верхнем правом конце текущего блока, возможно использовать блок - D вместо блока - C. В частности, информация для блока - D пригодна для использования в качестве информации для блока C. Если невозможно использовать оба из блока - B и блока - C, возможно использовать блок А вместо этого. А именно, возможно использовать информацию для блока А в качестве информации для блока - B или блока - C.
Для другого случая, при получении значения предсказания разности освещения можно использовать информацию флага (IC_flag), указывающую, выполнить ли компенсацию освещения текущего блока. Альтернативно, возможно использовать оба из способа проверки ссылочного индекса и способа предсказания информации флага при получении значения предсказания разности освещения. В этом случае, если информация флага для соседнего блока указывает, что компенсация освещения не выполнена, то есть, если IC_falg == 0, значение разности освещения 'PredIC_offsetN' соседнего блока установлена в 0.
Фиг.23 - последовательность операций процесса для выполнения компенсации освещения, используя информацию для соседнего блока, согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.23, модуль декодирования извлекает среднее значение пикселей опорного блока, ссылочный индекс текущего блока, ссылочный индекс опорного блока, и т.п. из сигнала видео, и затем может получить значение предсказания разности освещения текущего блока, используя извлеченную информацию. Модуль декодирования получает значение разности (остаточную разность освещения) между значением разности освещения текущего блока и значением предсказания разности освещения, и затем способен восстановить значение разности освещения текущего блока, используя полученную остаточную разность освещения и значение предсказания разности освещения. В этом случае возможно использовать информацию для соседнего блока, чтобы получить значение предсказания разности освещения текущего блока. Например, можно предсказать значение разности освещения текущего блока, используя значение разности освещения соседнего блока. Перед этим проверяют, является ли ссылочный индекс текущего блока равным таковому соседнего блока. Согласно результату проверки затем можно решить какой соседний блок или значение будет использоваться.
В частности, значение разности освещения соседнего блока, указывающее среднее значение разности пикселей между соседним блоком текущего блока и блоком, на который ссылается соседний блок, извлекают из сигнала видео (S2310).
Затем проверяют, является ли ссылочный индекс текущего блока равным ссылочному индексу одного из множества соседних блоков (S2320).
В результате этапа S2320 проверки, если существует по меньшей мере один соседний блок, имеющий тот же самый ссылочный индекс, что и таковой текущего блока, проверяют, существуют ли один соответствующий соседний блок или нет (S2325).
В результате этапа S2325 проверки, если существует только один соседний блок, имеющий тот же самый ссылочный индекс текущего блока, значение разности освещения соседнего блока, имеющего тот же самый ссылочный индекс текущего блока, назначают значению предсказания разности освещения текущего блока (S2330). В частности, это есть 'PredIC_offset = PredIC_offsetN'.
Если соседний блок, имеющий тот же самый ссылочный индекс как таковой текущего блока, не существует в результате этапа S2320 проверки или если существуют по меньшей мере два соседних блока, имеющих тот же самый ссылочный индекс как таковой у текущего блока в результате этапа S2325 проверки, среднее из значений разности освещения (PredIC_offsetN, N = A, B, или C) соседних блоков назначают значению предсказания разности освещения текущего блока (S650). В частности, это есть 'PredIC_offset = Среднее(PredIC_offsetA, PredIC_offsetB, PredIC_offsetC)'.
Фиг.24 - последовательность операций процесса для выполнения компенсации освещения, используя информацию для соседнего блока, согласно другому варианту осуществления настоящего изобретения.
Со ссылками на фиг.24 модуль декодирования должен восстановить значение разности освещения текущего блока, чтобы выполнить компенсацию освещения. В этом случае возможно использовать информацию для соседнего блока, чтобы получить значение предсказания разности освещения текущего блока. Например, возможно предсказать значение разности освещения текущего блока, используя значение разности освещения соседнего блока. Перед этим проверяют, является ли ссылочный индекс текущего блока равным таковому соседнего блока. Согласно результату проверки, затем возможно решить какой соседний блок или значение будет использоваться.
В частности, значение разности освещения соседнего блока, указывающее среднее значение разности пикселей между соседним блоком текущего блока и блоком, на который ссылается соседний блок, извлекают из сигнала видео (S2410).
Затем проверяют, является ли ссылочный индекс текущего блока равным ссылочному индексу одного из множества соседних блоков (S2420).
В результате этапа S720 проверки, если существует по меньшей мере один соседний блок, имеющий тот же самый ссылочный индекс, как таковой у текущего блока, проверяют, существуют ли один соответствующий соседний блок или нет (S2430).
В результате этапа S2430 проверки, если существует только один соседний блок, имеющий тот же самый ссылочный индекс как таковой у текущего блока, значение разности освещения соседнего блока, имеющего тот же самый ссылочный индекс, как таковой у текущего блока, назначают значению предсказания разности освещения текущего блока (S2440). В частности, это есть 'PredIC_offset = PredIC_offsetN'.
Если соседний блок, имеющий тот же самый ссылочный индекс, как таковой у текущего блока, не существует в результате этапа S2420 проверки, то значение предсказания разности освещения текущего блока устанавливают в 0 (S2460). В частности, это есть 'PredIC_offset = 0'.
Если существуют по меньшей мере два соседних блока, имеющие тот же самый ссылочный индекс как таковой у текущего блока в результате этапа S2430 проверки, соседний блок, имеющий ссылочный индекс, отличный от такового у текущего блока, устанавливают в 0, и среднее значений разности освещения соседних блоков, включая значение, установленное в 0, назначают значению предсказания разности освещения текущего блока (S2450). В частности, это есть 'PredIC_offset = Сретнее(PredIC_offsetA, PredIC_offsetB, PredIC_offsetC)'. Однако в случае, если существует соседний блок, имеющий ссылочный индекс, отличный от такового текущего блока, значение '0' может быть включено в PredIC_offsetA, PredIC_offsetB, или PredIC_offsetC.
Между тем, информация кадра для идентификации кадра изображения, и список опорных изображений для межкадрового предсказания применим к синтезу изображения в виртуальном кадре. В процессе для синтеза изображения в виртуальном кадре на изображение в отличном кадре можно ссылаться. Так, если используются информация кадра и список опорных изображений для межкадрового предсказания, можно синтезировать изображение в виртуальном кадре более эффективно. В нижеследующем описании описываются способы синтеза изображения в виртуальном кадре согласно вариантам осуществления настоящего изобретения.
Фиг.25 - блок-схема процесса для предсказания текущего изображения, используя изображение в виртуальном кадре, согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.25 при выполнении межкадрового предсказания при кодировании мультикадрового видео возможно предсказать текущее изображение, используя изображение в кадре, отличном от такового текущего кадра, в качестве опорного изображения. Однако, изображение в виртуальном кадре получают, используя изображения в кадре, соседнем таковому текущего изображения, и текущее изображение затем предсказывают, используя полученное изображение в виртуальном кадре. Если так, предсказание может быть выполнено более точно. В этом случае идентификатор кадра, указывающий кадр изображения, может использоваться, чтобы использовать изображения в соседних кадрах или изображениях в конкретном кадре. В случае, когда виртуальный кадр генерируется, должен существовать специальный синтаксис для индикации, генерировать ли виртуальный кадр. Если синтаксис указывает, что виртуальный кадр должен быть сгенерирован, возможно сформировать виртуальный кадр, используя идентификатор кадра. Изображения в виртуальном кадре, полученном модулем 740 предсказания синтеза кадра, пригодны для использования в качестве опорных изображений. В этом случае идентификатор кадра может быть назначен изображениям в виртуальном кадре. В процессе выполнения предсказания вектора движения для передачи вектора движения соседние блоки текущего блока могут ссылаться на изображения, полученные модулем 740 предсказания синтеза кадра. В этом случае, чтобы использовать изображение в виртуальном кадре как опорное изображение, может использоваться идентификатор кадра, указывающий кадр изображения.
Фиг.26 - последовательность операций процесса для синтеза изображения виртуального кадра при выполнении межкадрового предсказания в MVC согласно варианту осуществления настоящего изобретения.
Со ссылками на фиг.26, изображение в виртуальном кадре синтезируют, используя изображения в кадре, соседнем таковому текущего изображения. Текущее изображение затем предсказывают, используя синтезируемое изображение в виртуальном кадре. Если так, возможно достичь более точного предсказания. В случае, когда изображение в виртуальном кадре синтезируется, существует специальный синтаксис, указывающий, выполнять ли предсказание текущего изображения, посредством синтеза изображения в виртуальном кадре. Если решено, выполнять ли предсказание текущего изображения, возможно более эффективное кодирование. Специальный синтаксис определяется как идентификатор предсказания межкадрового синтеза, который описан ниже. Например, изображение в виртуальном кадре синтезируется посредством уровня вырезки, чтобы определить 'view_synthesize pred_flag', указывающий, выполнить ли предсказание текущего изображения. И, изображение в виртуальном кадре синтезируется посредством уровня макроблоков, чтобы определить 'view_syn_pred_flag', указывающий, выполнить ли предсказание текущего изображения. Если 'view_synthesize_pred_flag = 1', текущая вырезка синтезирует вырезку в виртуальном кадре, используя вырезку в кадре, соседнем таковому текущей вырезки. Затем возможно предсказать текущую вырезку, используя синтезированную вырезку. Если 'view_synthesize_pred_flag = 0', вырезка в виртуальном кадре не синтезируется. Аналогично, если 'view_syn_pred_flag = 1', текущий макроблок синтезирует макроблок в виртуальном кадре, используя макроблок в кадре, соседнем таковому текущего макроблока. Затем возможно предсказать текущий макроблок, используя синтезированный макроблок. Если 'view_syn_pred_flag = 0', макроблок в виртуальном кадре не синтезируется. Следовательно, в настоящем изобретении идентификатор предсказания межкадрового синтеза, указывающий, получить ли изображение в виртуальном кадре, извлекается из сигнала видео. Затем возможно получить изображение в виртуальном кадре, используя этот идентификатор предсказания межкадрового синтеза.
Как упомянуто в предшествующем описании, информация кадра для идентификации кадра изображения, и список опорных изображений для межкадрового предсказания могут использоваться модулем 700 интерпредсказания. И, они могут также использоваться при выполнении взвешенного предсказания. Взвешенное предсказание применимо к процессу для выполнения компенсации движения. При этом, если текущее изображение использует опорное изображение в отличном кадре, возможно выполнить взвешенное предсказание более эффективно с использованием информации кадра и списка опорных изображений для межкадрового предсказания. Взвешенные способы предсказания согласно вариантам осуществления настоящего изобретения описываются ниже.
Фиг.27 - последовательность операций способа выполнения взвешенного предсказания согласно типу вырезки при кодировании сигнала видео согласно настоящему изобретению.
Со ссылками на фиг.27, взвешенное предсказание является способом масштабирования выборки скомпенсированных по движению данных предсказания в макроблоке P-slice или B-slice. Способ взвешенного предсказания включает в себя явный режим для выполнения взвешенного предсказания для текущего изображения, используя информацию взвешенного коэффициента, полученную из информации для опорных изображений, и неявный режим для выполнения взвешенного предсказания для текущего изображения, используя информацию взвешенного коэффициента, полученную из информации для расстояния между текущим изображением и одним из опорных изображений. Способ взвешенного предсказания может применяться отличным образом согласно типу вырезки текущего макроблока. Например, в явном режиме, информация взвешенного коэффициента может быть изменена согласно тому, является ли текущий макроблок, в отношении которого выполняется взвешенное предсказание, макроблоком P-вырезки или макроблоком B-вырезки. И, взвешенный коэффициент явного режима может быть определен кодером и может быть передан как включенный в заголовок вырезки. С другой стороны, в неявном режиме взвешенный коэффициент может быть получен на основании относительной временной позиции Списка 0 и Списка 1. Например, если опорное изображение является по времени близким к текущему изображению, применим большой взвешенный коэффициент. Если опорное изображение по времени удалено от текущего изображения, применяется малый взвешенный коэффициент.
Прежде всего тип вырезки макроблока для применения взвешенного предсказания к нему извлекают из сигнала видео (S2710).
Затем взвешенное предсказание может быть выполнено в отношении макроблока согласно извлеченному типу вырезки (S2720).
В этом случае тип вырезки может включать в себя макроблок, к которому применяется межкадровое предсказание. Межкадровое предсказание означает, что текущее изображение предсказывают, используя информацию для изображения в кадре, отличном от такового текущего изображения. Например, тип вырезки может включать в себя макроблок, к которому применяется временное предсказание для выполнения предсказания, используя информацию для изображения в том же самом кадре, что и таковая текущего изображения, макроблок, к которому применяется межкадровое предсказание, и макроблок, к которому применяются оба из временного предсказания и межкадрового предсказания. И, тип вырезки может включать в себя макроблок, к которому применяется только временное предсказание, макроблок, к которому применяется только межкадровое предсказание, или макроблок, к которому применяются оба из временного предсказания и межкадрового предсказания. Кроме того, тип вырезки может включать в себя два из типов макроблока или все три типа макроблока. Это описано подробно со ссылками на фиг.28 ниже. Таким образом, в случае, если тип вырезки, включающий в себя макроблок с применяемым межкадровым предсказанием, извлечен из сигнала видео, выполняется взвешенное предсказание, используя информацию для изображения в кадре, отличном от такового текущего изображения. При этом идентификатор кадра для идентификации кадра изображения может использоваться, чтобы использовать информацию для изображения в отличном кадре.
Фиг.28 - диаграмма типов макроблоков, допустимых в типе вырезки при кодировании сигнала видео согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.28, если тип P-вырезки посредством межкадрового предсказания определен как VP (View_P), интра-макроблок I, макроблок P, предсказанный из одного изображения в текущем кадре, или макроблок VP, предсказанный из одного изображения в отличном кадре, допустим для этого типа P-вырезки в соответствии с меж-кадровым предсказанием (2810).
В случае, когда тип B-вырезки в соответствии с межкадровым предсказанием определен как VB (View_B), макроблок P или B, предсказанный из по меньшей мере одного изображения в текущем кадре, или макроблок VP или VB, предсказанный из по меньшей мере одного изображения в отличном кадре, является допустимым (2820).
В случае, если тип вырезки, в отношении которого выполнено предсказание, используя временное предсказание, межкадровое предсказание, или оба из временного предсказания и межкадрового предсказания, определен как 'Смешанный', интра-макроблок I, макроблок P или B, предсказанный из по меньшей мере одного изображения в текущем кадре, макроблок VP или VB, предсказанный из по меньшей мере одного изображения в отличном кадре, или макроблок 'Смешанный', предсказанный с использованием обоих из изображения в текущем кадре и изображения в отличном кадре, допустимы для смешанного типа вырезки (2830). В этом случае, чтобы использовать изображение в отличном кадре, можно использовать идентификатор кадра для идентификации кадра изображения.
Фиг.29 и фиг.30 - диаграммы синтаксиса для выполнения взвешенного предсказания согласно вновь определенному типу вырезки согласно одному варианту осуществления настоящего изобретения.
Как упомянуто в предшествующем описании фиг.28, если тип вырезки определен как VP, VB, или Mixed (Смешанный), синтаксис для выполнения обычного взвешенного предсказания (например, H.264) может быть модифицирован в фиг.29 или фиг.30.
Например, если типом вырезки является P-вырезка в соответствии с временным предсказанием, добавляют часть 'if(slice_type! = VP Il slice_type! = VB)' (2910).
Если тип вырезки есть B-вырезка в соответствии с временным предсказанием, условный оператор может изменяться на 'if(slice_type == B Il slice_type == Смешанный)' (2920).
Заново определяя тип вырезки VP и тип вырезки VB, формат, подобный фиг.29, может быть вновь добавлен (2930, 2940). В этом случае, так как информация для кадра добавляется, элементы синтаксиса включают в себя части 'кадра', соответственно. Например, имеется 'luma_Iog2_view_weiht_denom, chroma_log2_view_weight_denom'.
Фиг.31 - последовательность операций способа выполнения взвешенного предсказания, используя информацию флага, указывающую, выполнить ли меж-кадровое взвешенное предсказание при кодировании сигнала видео согласно настоящему изобретению.
Со ссылками на фиг.31, при кодировании сигнала видео, к которому настоящее изобретение применяется, в случае использования информации флага, указывающей, будет ли взвешенное предсказание выполнено, разрешается более эффективное кодирование.
Информация флага может быть определена на основании типа вырезки. Например, может существовать информация флага, указывающая, будет ли взвешенное предсказание применяться к P-вырезке или SP-вырезке, или информация флага, указывающая, будет ли взвешенное предсказание применяться к B-вырезке.
В частности, информация флага может быть определена как 'weighted_pred_flag' или 'weighted_bipred_idc'. Если 'weighted_pred_flag=0', это указывает, что взвешенное предсказание не применяется к P-вырезке и SP-вырезке. Если 'weighted_pred_flag=1', это указывает, что взвешенное предсказание применяется к P-вырезке и SP-вырезке. Если 'weighted_bipred_idc=0', это указывает, что заданное по умолчанию взвешенное предсказание применяется к B-вырезке. Если 'weighted_bipred_idc=1', это указывает, что явное взвешенное предсказание применяется к B-вырезке. Если 'weighted_bipred_idc= 2', это указывает, что неявное взвешенное предсказание применяется к B-вырезке.
При кодировании мультикадрового видео информация флага, указывающая, будет ли выполнено взвешенное предсказание, используя информацию для межкадрового изображения, может быть определена на основании тип вырезки.
Прежде всего, тип вырезки и информацию флага, указывающую, будет ли выполнено меж-кадровое взвешенное предсказание, извлекают из сигнала видео (S3110, S3120). В этом случае тип вырезки может включать в себя макроблок, к которому временное предсказание для выполнения предсказания, используя информацию для изображения в том же самом кадре, что и таковая текущего изображения, применяется, и макроблок, к которому применяется межкадровое предсказание для выполнения предсказания, используя информацию для изображения в кадре, отличном от такового текущего изображения.
Затем можно определить взвешенный режим предсказания на основании извлеченного типа вырезки и извлеченной информации флага (S3130).
Затем можно выполнить взвешенное предсказание согласно определенному взвешенному режиму (S3140) предсказания. В этом случае информация флага может включать в себя информацию флага, указывающую, будет ли выполнено взвешенное предсказание, используя информацию для изображения в кадре, отличном от такового текущего изображения, а также вышеупомянутые 'weighted_pred_flag' и 'weighted_bipred_flag'. Это описано подробно со ссылками на фиг.32 ниже.
Следовательно, в случае, если тип вырезки текущего макроблока является типом вырезки, включающим в себя макроблок, к которому применяется межкадровое предсказание, обеспечивается более эффективное кодирование, чем случай использования информации флага, указывающей, будет ли выполнено взвешенное предсказание, используя информацию для изображения в отличном кадре.
Фиг.32 - диаграмма для пояснения способа взвешенного предсказания согласно информации флага, указывающей, выполнить ли взвешенное предсказание, используя информацию для изображения в кадре, отличном от такового текущего изображения согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.32, например, информация флага, указывающая, будет ли выполнено взвешенное предсказание, используя информацию для изображения в кадре, отличном от такового текущего изображения, может быть определена как 'view_weighted_pred_flag' или 'view_weighted_bipred_flag'.
Если 'view_weighted_pred_flag=0', это указывает, что взвешенное предсказание не применяется к VP-вырезке. Если 'view_weighted_pred_flag=1', явное взвешенное предсказание применяется к VP-вырезке. Если 'view_weighted_bipred_flag=0', это указывает, что заданное по умолчанию взвешенное предсказание применяется к VB-вырезке. Если 'view_weighted_bipred_flag=1', это указывает, что явное взвешенное предсказание применяется к VB-вырезке. Если 'view_weighted_bipred_flag=2', это указывает, что неявное заданное по умолчанию взвешенное предсказание применяется к VB-вырезке.
В случае, когда неявное взвешенное предсказание применяется к VB-вырезке, весовой коэффициент может быть получен из относительного расстояния между текущим кадром и отличным кадром. В случае, когда неявное взвешенное предсказание применяется к VB-вырезке, взвешенное предсказание может быть выполнено, используя идентификатор кадра, идентифицирующий кадр изображения, или порядковый индекс изображения (POC), воспроизведенный посредством рассмотрения разрешения каждого кадра.
Вышеупомянутая информация флага могут быть включена в набор параметров изображения (PPS). В этом случае набор параметров изображения (PPS) означает информацию заголовка, указывающую режим кодирования всех изображений (например, режим статистического кодирования, начальное значение параметра квантования единицей изображения и т.д.). Однако набор параметров изображения не применяется ко всем изображениям. Если набор параметров изображения не существует, набор параметров изображения, существующий непосредственно прежде, используется в качестве информации заголовка.
Фиг.33 - диаграмма синтаксиса для выполнения взвешенного предсказания согласно вновь определенной информации флага согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.33 при кодировании мультикадрового видео, к которому применятся настоящее изобретение, в случае, если тип вырезки, включающий в себя макроблок, примененный к межкадровому предсказанию, и информация флага, указывающая, будет ли выполнено взвешенное предсказание, используя информацию для изображения в кадре, отличную от такового текущего изображения, определены, необходимо определить, какое взвешенное предсказание будет выполнено согласно типу вырезки.
Например, если тип вырезки, как показано на фиг.33, извлеченный из сигнала видео, есть P-вырезка или SP-вырезка, взвешенное предсказание может быть выполнено если 'weighted_pred_flag=1'. В случае, когда типом вырезки является B-вырезка, взвешенное предсказание может быть выполнено, если 'weighted_bipred_flag=1'. В случае, когда типом вырезки является VP-вырезка, взвешенное предсказание может быть выполнено, если 'view_weighted_pred_flag=1'. В случае, когда типом вырезки является VB-вырезка, взвешенное предсказание может быть выполнено, если 'view_weighted_bipred_flag=1'.
Фиг.34 - последовательность операций способа выполнения взвешенного предсказания согласно NAL (сетевой уровень абстракции)-блоку согласно варианту осуществления настоящего изобретения.
Со ссылками на фиг.34, прежде всего, тип NAL-блока (nal_unit_type) извлекают из сигнала видео (S910). В этом случае тип NAL-блока означает идентификатор, указывающий тип NAL-блока. Например, если 'nal_unit_type=5', NAL-блоком является вырезка изображения IDR. И, IDR (мгновенное восстановление декодирования) изображение означает головное изображение последовательности видео.
Затем проверяют, является ли извлеченный тип NAL-блока типом NAL-блока для мультикадрового кодирования видео (S3420).
Если типом NAL-блока есть тип NAL-блока для мультикадрового кодирования видео, взвешенное предсказание выполняют с использованием информации для изображения в кадре, отличном от такового текущего изображения (S3430). Тип NAL-блока может быть типом NAL-блока, применимым как к масштабируемому кодированию видео, так и мультикадровому кодированию видео или типом NAL-блока только для мультикадрового кодирования видео. Таким образом, если тип NAL-блока предназначен для кодирования мультикадрового видео, взвешенное предсказание должно быть выполнено, используя информацию для изображения в кадре, отличном от такового текущего изображения. Так, необходимо определить новый синтаксис. Это описано подробно со ссылками на фиг.35 и фиг.36 ниже.
Фиг.35 и фиг.36 - диаграммы синтаксиса для выполнения взвешенного предсказания в случае, если тип NAL-блока предназначен для мультикадрового кодирования видео, согласно одному варианту осуществления настоящего изобретения.
Прежде всего, если тип NAL-блока есть тип NAL-блока для кодирования мультикадрового видео, синтаксис для выполнения обычного взвешенного предсказания (например, H.264) может изменяться в синтаксис, показанный на фиг.35 или фиг.36. Например, ссылочная позиция 3510 указывает часть синтаксиса для выполнения обычного взвешенного предсказания, и ссылочная позиция 3520 указывает часть синтаксиса для выполнения взвешенного предсказания при кодировании мультикадрового видео. Так, взвешенное предсказание выполнено частью 3520 синтаксиса только, если типом NAL-блока является тип NAL-блока для мультикадрового кодирования видео. В этом случае, так как информация для кадра добавлена, каждый элемент синтаксиса включает в себя часть 'Кадр'. Например, имеется 'Iuma_view_log2_weight_denom, chroma_view_log2_weight_denom' или подобное. И, ссылочная позиция 3530 на фиг.36 указывает часть синтаксиса для выполнения обычного взвешенного предсказания и ссылочная позиция 3540 на фиг.36 указывает часть синтаксиса для выполнения взвешенного предсказания при кодировании мультикадрового видео. Так, взвешенное предсказание выполнено частью 3540 синтаксиса, только если типом NAL-блока является тип NAL-блока для мультикадрового кодирования видео. Аналогично, так как добавлена информация для кадра, каждый элемент синтаксиса включает в себя часть 'кадр'. Например, имеется 'luma_view_weight_l1_flag, chroma_view_weight_l1_flag' или подобное. Таким образом, если тип NAL-блока для мультикадрового кодирования видео определен, более эффективное кодирование допускается в отношении способа выполнения взвешенного предсказания, используя информацию для изображения в кадре, отличном от такового текущего изображения.
Фиг.37 - блок-схема устройства для декодирования сигнала видео согласно варианту осуществления настоящего изобретения.
Со ссылками на фиг.37 устройство для декодирования сигнала видео согласно настоящему изобретению включает в себя модуль 3710 извлечения типа вырезки, модуль 3720 извлечения режима предсказания и модуль 3730 декодирования.
Фиг.38 - последовательность операций способа декодирования сигнала видео в устройстве декодирования, показанном на фиг.37, согласно одному варианту осуществления настоящего изобретения.
Со ссылками на фиг.38 способ декодирования сигнала видео согласно одному варианту осуществления настоящего изобретения включает в себя этап S3810 извлечения типа вырезки и режима предсказания макроблока, и этап S3820 декодирования текущего макроблока согласно типу вырезки и/или режиму предсказания макроблока.
Сначала схема предсказания, используемая вариантом осуществления настоящего изобретения, описана для помощи в понимании настоящего изобретения. Схема предсказания может быть классифицирована на внутри(интра)кадровое предсказание (например, предсказание между изображениями в одном и том же кадре) и межкадровое предсказание (например, предсказание между изображениями в различных кадрах). И, внутрикадровое предсказание может быть той же схемой предсказания, что и обычное временное предсказание.
Согласно настоящему изобретению, модуль 3710 извлечения типа вырезки извлекает тип вырезки для вырезки, включающей в себя текущий макроблок (S3810).
В этом случае поле (slice_type) типа вырезки, указывающее тип вырезки для внутрикадрового предсказания и/или поле типа вырезки (view_slice_type), указывающее тип вырезки для межкадрового предсказания, могут быть обеспечены как часть синтаксиса сигнала видео, чтобы обеспечить тип вырезки. Это описано более подробно ниже со ссылками на фиг.6(a) и 6(b). И, каждый из типа вырезки (slice_type) для внутрикадрового предсказания и типа вырезки (view_slice_type) для межкадрового предсказания может указывать, например, тип I-вырезки (I_SLICE), тип P-вырезки (P_SLICE), или тип B-вырезки (B_SLICE).
Например, если 'slice_type' конкретной вырезки есть B-вырезка и 'view_slice_type' является P-вырезка, макроблок в конкретной вырезке декодируется посредством схемы кодирования B-вырезки (B_SLICE) во внутрикадровом направлении (то есть временном направлении) и/или схемы кодирования P-вырезки (P_SLICE) в направлении кадра.
Между тем, тип вырезки способен включать в себя тип P-вырезки (VP) для межкадрового предсказания, тип B-вырезки (VB) для межкадрового предсказания и тип смешанной вырезки (Mixed) для предсказания, полученным от смешивания обоих типов предсказания. А именно, тип смешанной вырезки обеспечивает предсказание, используя комбинацию внутрикадрового и межкадрового предсказания.
В этом случае тип P-вырезки для межкадрового предсказания означает случай, когда каждый макроблок или часть макроблока, включенный в вырезку, предсказывается из одного изображения в текущем кадре или одного изображения в отличном кадре. Тип B-вырезки для межкадрового предсказания означает случай, когда каждый макроблок или часть макроблока, включенный в вырезку, предсказывается из 'одного или двух изображений в текущем кадре' или 'одного изображения в отличном кадре или двух изображений в различных кадрах, соответственно'. И, смешанный тип вырезки для предсказания, полученный из смешения обоих предсказаний, означает случай, когда каждый макроблок или часть макроблока, включенный в вырезку, предсказывается из 'одного или двух изображений в текущем кадре', 'одного изображения в отличном кадре или двух изображений в отличных кадрах, соответственно', или 'одного или двух изображений в текущем кадре и одном изображении в отличном кадре или двух изображений в различных кадрах, соответственно'.
Другими словами, ссылочное (опорное) изображение и разрешенный тип макроблока отличаются по каждому типу вырезки, что описано подробно со ссылками на фиг.43 и фиг.44 ниже.
И, синтаксис среди вышеупомянутых вариантов осуществления типа вырезки описан подробно со ссылками на фиг.40 и фиг.41 ниже.
Модуль 3720 извлечения режима предсказания может извлекать индикатор режима предсказания макроблока, указывающий, является ли текущий макроблок макроблоком в соответствии с внутрикадровым предсказанием, макроблоком в соответствии с межкадровым предсказанием или макроблоком в соответствии с предсказанием, полученным из смешивания обоих типов предсказания (S3820). Для этого настоящее изобретение определяет режим (mb_pred_mode) предсказания макроблока. Один вариант осуществления режимов предсказания макроблока описан подробно со ссылками на фиг.39, 40 и фиг.41 ниже.
Модуль 3730 декодирования декодирует текущий макроблок согласно типу вырезки и/или режиму предсказания макроблока, чтобы принять/получить текущий макроблок. В этом случае текущий макроблок может быть декодирован согласно типу макроблока текущего макроблока, определенного из информации типа макроблока. И, тип макроблока может быть определен согласно режиму предсказания макроблока и типу вырезки.
В случае, когда режим предсказания макроблока является режимом для внутрикадрового предсказания, тип макроблока определяют согласно типу вырезки для внутрикадрового предсказания, и текущий макроблок затем декодируют в соответствии с внутрикадровым предсказанием согласно определенному типу макроблока.
В случае, когда режим предсказания макроблока является режимом для межкадрового предсказания, тип макроблока определяют согласно типу вырезки для межкадрового предсказания, и текущий макроблок затем декодируют в соответствии с межкадровым предсказанием согласно определенному типу макроблока.
В случае, когда режим предсказания макроблока является режимом для предсказания, полученным из смешивания обоих предсказаний, тип макроблока определяют согласно типу вырезки для внутрикадрового предсказания и типу вырезки для межкадрового предсказания, и текущий макроблок затем декодируют в соответствии с предсказанием, полученным смешиванием обоих предсказаний согласно каждому из определенных типов макроблоков.
В этом случае тип макроблока зависит от режима предсказания макроблока и типа вырезки. В частности, схема предсказания, которую нужно использовать для типа макроблока, может быть определена из режима предсказания макроблока, и тип макроблока затем определен из информации типа макроблока по типу вырезки согласно схеме предсказания. А именно, один или оба из извлеченных slice_type и view_slice_type выбирают на основании режима предсказания макроблока.
Например, если режимом предсказания макроблока является режим для межкадрового предсказания, тип макроблока может быть определен из таблицы макроблоков типов вырезки (I, P, B), соответствующих типу вырезки (view_slice_type) для межкадрового предсказания. Отношение между режимом предсказания макроблоков и типом макроблоков описан подробно со ссылками на фиг.39, 40 и фиг.41 ниже.
Фиг.39 - диаграмма режимов предсказания макроблоков согласно вариантам осуществления примера настоящего изобретения.
На фиг.39(a) изображена таблица, соответствующая одному варианту осуществления режимов (mb_pred_mode) предсказания макроблоков согласно настоящему изобретению.
В случае внутрикадрового предсказания, то есть используется только временное предсказание для макроблока, '0' назначают значению 'mb_pred_mode'. В случае, если используется только межкадровое предсказание для макроблока, '1' назначается значению 'mb_pred_mode'. В случае, если используются и временное искажение и межкадровое предсказание для макроблока, '2' назначают значению 'mb_pred_mode'.
В этом случае, если значение 'mb_pred_mode' является '1', то есть если 'mb_pred_mode' указывает межкадровое предсказание, List0 направления кадра (ViewList0) или List1 направление кадра (ViewList1) определяется в качестве списка опорных изображений для межкадрового предсказания.
На фиг.39 (b) показано соотношение между режимом предсказания макроблоков и типом макроблоков согласно другому варианту осуществления.
Если значение 'mb_pred_mode' равно '0', используется только временное предсказание. И, тип макроблока определяется согласно типу вырезки (slice_type) для внутрикадрового предсказания.
Если значение 'mb_pred_mode' равно '1', используется только межкадровое предсказание. И, тип макроблока определяется согласно типу вырезки (view_slice_type) для межкадрового предсказания.
Если значение 'mb_pred_mode' равно '2', используется смешанное предсказание как временного, так и внутрикадрового предсказания. И, два типа макроблоков определяются согласно типу вырезки (slice_type) для внутрикадрового предсказания и типу вырезки (view_slice_type) для межкадрового предсказания.
На основании режима предсказания макроблока тип макроблока задается на основании типа вырезки, как показано в таблицах 1-3 ниже. [Пожалуйста, вставьте таблицы 7-12 - 7-14 в N6540 здесь как таблицы 1-3].
Другими словами, в этом варианте осуществления схема предсказания, используемая для макроблока и тип вырезки, на которые ссылаются, определяются режимом предсказания макроблоков. И, тип макроблока определяют согласно типу вырезки.
Фиг.40 и фиг.41 - диаграммы вариантов осуществления примера синтаксиса части сигнала видео, принятого устройством для декодирования сигнала видео. Как показано, синтаксис имеет тип вырезки и информацию режима предсказания макроблоков согласно варианту осуществления настоящего изобретения.
На фиг.40 показывается примерный синтаксис. В этом синтаксисе поле 'slice_type' и поле 'view_slice_type' обеспечивает типы вырезки, и поле 'mb_pred_mode' обеспечивает режим предсказания макроблока.
Согласно настоящему изобретению, поле 'slice_type' обеспечивает тип вырезки для внутрикадрового предсказания и поле 'view_slice_type' обеспечивает тип вырезки для межкадрового предсказания. Каждый тип вырезки может стать типом I-вырезки, типом P-вырезки или типом B-вырезки. Если значение 'mb_pred_mode' равно '0' или '1', определяется один тип макроблока. Однако в случае, если это значение 'mb_pred_mode' равно '2', можно видеть, что другой тип макроблока (или два типа) дополнительно определяется. Другими словами, синтаксис, показанный на (a) на фиг.40, указывает, что 'view_slice_type' добавляется, чтобы далее применить обычные типы вырезки (I, P, B) для мультикадрового кодирования видео.
На фиг.41 показывается другой примерный синтаксис. В этом синтаксисе поле 'slice_type' используется, чтобы обеспечить тип вырезки и поле 'mb_pred_mode' используется, чтобы обеспечить режим предсказания макроблока.
Согласно настоящему изобретению поле 'slice_type' может включать в себя, помимо прочего, тип (VP) вырезки для межкадрового предсказания, тип-B вырезки (VB) для межкадрового предсказания и смешанный тип вырезки (Mixed) для предсказания, полученного из смешивания как внутрикадрового и межкадрового предсказаний.
Если значение в поле 'mb_pred_mode' равно '0' или '1', один тип макроблока определяется. Однако в случае, если значение в поле 'mb_pred_mode' равно '2', можно видеть, что определяется дополнительный (то есть общее количество равное двум) тип макроблока. В этом варианте осуществления информация типа вырезки существует в заголовке вырезки, который описан подробно со ссылками на фиг.42. Другими словами, синтаксис, показанный на фиг.41, указывает, что типы вырезки VP, VB и Mixed добавлены к обычному типу вырезки (slice_type).
Фиг.42 изображают диаграммы примеров для применения типов вырезки, показанных на фиг.41.
Диаграмма на фиг.42(a) показывает, что тип P-вырезки (VP) для межкадрового предсказания, тип B-вырезки (VB) для межкадрового предсказания и смешанный тип вырезки (Mixed) для предсказания, полученного из смешивания обоих предсказания, может существовать в качестве типа вырезки, в дополнение к другим типам вырезки, в заголовке вырезки. В частности, тип вырезки VP, VB и Mixed согласно варианту осуществления примера добавлены к типам вырезки, которые могут существовать в общем заголовке вырезки.
Диаграмма на фиг.42 (b) показывает, что тип P-вырезки (VP) для межкадрового предсказания, тип B-вырезки (VB) для межкадрового предсказания и смешанный тип вырезки (Mixed) для предсказания, полученный из смешивания обоих предсказаний, может существовать в качестве типа вырезки в заголовке вырезки для кодирования мультикадрового видео (MVC). В частности, типы вырезки согласно примерному варианту осуществления определены в заголовке вырезки для кодирования мультикадрового видео.
Диаграмма на фиг.42(c) показывает, что тип вырезки (VP) для межкадрового предсказания, тип B-вырезки (VB) для межкадрового предсказания и смешанный тип вырезки (Mixed) для предсказания, полученный из смешивания обоих предсказаний, может существовать в качестве типа вырезки, в дополнение к существующему типу вырезки для масштабируемого кодирования видео в заголовке вырезки для масштабируемого кодирования видео (SVC). В частности, тип вырезки VP, VB и Mixed согласно варианту осуществления примера добавлены к типам вырезки, которые могут существовать в заголовке вырезки стандарта масштабируемого кодирования видео (SVC).
Фиг.43 - диаграмма различных примеров типов вырезки, включенных в тип вырезки, показанный на фиг.41.
На фиг.43(a) показывается случай, когда тип вырезки предсказан из одного изображения в отличном кадре. Так, тип вырезки становится типом вырезки (VP) для межкадрового предсказания.
На фиг.43(b) показывается случай, когда тип вырезки предсказан из двух изображений в различных кадрах, соответственно. Так, тип вырезки становится типом B-вырезки (VB) для межкадрового предсказания.
На фиг.43(c) и 43(f) показывается случай, когда тип вырезки предсказан из одного или двух изображений в текущем кадре и одном изображении в отличном кадре. Так, тип вырезки становится смешанным типом вырезки (Mixed) для предсказания, полученного из смешивания обоих предсказаний. Также, на фиг.43(d) и 43(e) показывается случай, когда тип вырезки предсказывается из одного или двух изображений в текущем кадре и двух изображениях в различных кадрах. Так, тип вырезки также становится смешанным (Mixed) типом вырезки.
Фиг.44 - диаграмма макроблока, разрешенного для типов вырезки, показанных на фиг.41.
Со ссылками на фиг.44, интрамакроблок (I), макроблок (P) предсказанный из одного изображения в текущем кадре, или макроблок (VP) предсказанный из одного изображения в отличном кадре, разрешены для типа P-вырезки (VP) в соответствии с межкадровым предсказанием.
Интрамакроблок (I), макроблок (P или B), предсказанные из одного или двух изображений в текущем кадре, или макроблок VP или VB, предсказанный из одного изображения в отличном кадре или двух изображений в различных кадрах, соответственно, разрешены для типа B-вырезки (VB) в соответствии с межкадровым предсказанием.
И, интрамакроблок (I); макроблок (P или B), предсказанный из одного или двух изображений в текущем кадре; макроблок (VP или VB), предсказанный из одного изображения в отличном кадре или двух изображений в различных кадрах, соответственно, или макроблок (Mixed), предсказанный из одного или двух изображений в текущем кадре, одного изображения в отличном кадре или двух изображений в различных кадрах, соответственно, разрешены для смешанного типа вырезки (Mixed).
Фиг.45-47 - диаграммы типа макроблока для макроблока, существующего в смешанном типе вырезки (Mixed) согласно вариантам осуществления настоящего изобретения.
На фиг.45(a) и 45(b) показываются схемы конфигурации для типа макроблока (mb_type) и типа подмакроблока (sub_mb_type) для макроблока, существующего в смешанной вырезки, соответственно.
На фиг.46 и 47 показывается двоичный кадр направления(й) предсказания макроблока, существующего в смешанной вырезке, и фактическое направление(я) предсказания смешанной вырезки, соответственно.
Согласно варианту осуществления настоящего изобретения, тип макроблока (mb_type) подготавливают посредством рассмотрения и размера (Partition_Size) части макроблока и направления (Direction) предсказания части макроблока.
И, тип подмакроблока (sub_mb_type) подготавливают посредством рассмотрения и размера (Sub_Partition_Size) части подмакроблока и направления предсказания (Sub_Direction) каждого части подмакроблока.
Со ссылками на фиг.45(a) 'Direction0' и 'Direction1' указывают направление предсказания первого части макроблока и направление предсказания второго части макроблока, соответственно. В частности, в случае макроблока 8×16, 'Direction0' указывает направление предсказания для левой части макроблока 8×16, и 'Direction1' указывает направление предсказания для правой части макроблока 8×16. Конфигурационный принцип типа макроблока (mb_type) описан подробно ниже. Сначала первые два бита указывают размер части (Partition_Size) соответствующего макроблока, и значение 0~3 доступно для этих первых двух битов. И, четыре бита, следующие после первых двух битов, указывают направление предсказания (Direction) в случае, когда макроблок разделен на части.
Например, в случае макроблока 16×16 четыре бита, указывающие направление предсказания макроблока присоединены позади первых двух битов. В случае макроблока 16×8 четыре бита после первых двух битов указывает направление предсказания (Direction0) первой части, и другие четыре бита присоединены к упомянутым четырем битам, чтобы указать направление предсказания (Direction1) второй части. Аналогично, в случае макроблока 8×16 восемь битов присоединены позади первых двух битов. В этом случае первые четыре бита из восьми битов, присоединенных к первым двум битам, указывают направление предсказания первой части, и следующие четыре бита указывают направление предсказания второй части.
Со ссылками на фиг.45(b) направление предсказания (Sub_Direction) подмакроблока используется тем же самым способом, что и направление предсказания (Direction) части макроблока, показанного на фиг.45(a). Принцип конфигурирования типа подмакроблока (sub_mb_type) описан подробно ниже.
Сначала первые два бита указывают размер части (Partition_Size) соответствующего макроблока и вторые два бита, следующие за упомянутыми двумя битами, указывают размер части (Sub_Partition_Size) подмакроблока соответствующего макроблока. Значение 0-3 доступно для каждого из первых и вторых двух битов. Затем четыре бита, присоединенные ко вторым двум битам, указывают направление предсказания (Sub_Direction) в случае, когда макроблок разделен на части подмакроблока. Например, если размер (Partition_Size) части макроблока равен 8×8, и если размер (Sub_Partition_Size) части подмакроблока равен 4×8, первые два бита имеют значение 3, вторые два бита имеют значение 2, первые четыре бита вслед за вторыми двумя битами указывают направление предсказания для левого блока 4×8 из двух 4×8 блоков, и вторые четыре бита вслед за первыми четырьмя битами указывают направление предсказания для правого блока 4×8.
Со ссылками на фиг.46, направление предсказания макроблока создается четырьмя битами. И, можно видеть, что каждое двоичное представление становится равным '1' согласно случаю ссылки на изображение в левой (L), верхней (T), правой (R) или нижней (B) позициях текущего изображения.
Со ссылками на фиг.47, например, в случае, если направление предсказания является верх (T), изображение, расположенное сверху в направлении кадра текущего изображения, является опорным. В случае, когда направление предсказания соответствует всем направлениям (LTRB), можно видеть, что изображения во всех направлениях (LTRB) текущего изображения являются опорными.
Фиг.48 - блок-схема устройства для кодирования сигнала видео согласно варианту осуществления настоящего изобретения.
Со ссылками на фиг.48 (изображено) устройство для кодирования сигнала видео согласно варианту осуществления настоящего изобретения. Устройство включает в себя модуль 4810 определения типа макроблока, модуль 4820 формирования макроблока и модуль 4830 кодирования.
Фиг.49 иллюстрирует последовательность операций способа кодирования сигнала видео в устройстве кодирования, показанном на фиг.48, согласно варианту осуществления настоящего изобретения.
Со ссылками на фиг.49 способ кодирования сигнала видео согласно варианту осуществления настоящего изобретения включает в себя этап S4910 определения первого типа макроблока для внутрикадрового предсказания и второго типа макроблока для межкадрового предсказания, этап S4920 формирования первого макроблока, имеющего первый тип макроблока, и второго макроблока, имеющего второй тип макроблока, этап S4930 формирования третьего макроблока, используя первый и второй макроблоки, и этап S4940 кодирования типа макроблока текущего макроблока и режима предсказания макроблока.
Согласно настоящему изобретению модуль 4810 определения типа макроблока определяет первый тип макроблока для внутрикадрового предсказания и второй тип макроблока для межкадрового предсказания (S4910), как описано подробно выше.
Затем модуль 4820 формирования макроблока формирует первый макроблок, имеющий первый тип макроблока, и второй макроблок, имеющий второй тип макроблока (S4920), с использованием известных способов предсказания, и затем формирует третий макроблок, используя первый и второй макроблоки (S4930). В этом случае третий макроблок формируют согласно среднему значению между первым и вторым макроблоками.
Наконец, модуль 4830 кодирования кодирует тип макроблока (mb_type) текущего макроблока и режим (mb_pred_mode) предсказания макроблока текущего макроблока, сравнивая эффективности кодирования первого - третьего макроблоков (S4940).
В этом случае имеются различные способы измерить эффективности кодирования. В частности способ, использующий RD-стоимость (искажения частоты следования битов) используется в этом варианте осуществления настоящего изобретения. Как известно, в способе RD-стоимости соответствующая стоимость вычисляется с двумя компонентами: количество битов кодирования, сформированных из кодирования соответствующего блока, и значение искажения, указывающее ошибку от фактической последовательности.
Первый и второй типы макроблоков могут быть определены способом выбора типа макроблока, имеющего минимальное значение выше описанной RD стоимости. Например, тип макроблока, имеющий минимальное значение RD-стоимости среди типов макроблока в соответствии с внутрикадровым предсказанием, определяется как первый тип макроблока. И, тип макроблока, имеющий минимальное значение RD-стоимости среди типа макроблока в соответствии с межкадровым предсказанием определяется как второй тип макроблока.
На этапе кодирования типа макроблока и режима предсказания макроблока, тип макроблока и режим предсказания, связанные с этими первым и вторым макроблоками, имеющих меньшую RD-стоимость, может быть выбраны. Затем определяется RD-стоимость третьего макроблока. Наконец, тип макроблока и режим предсказания макроблока текущего макроблока кодируют посредством сравнения RD-стоимости выбранного первого или второго макроблока и RD-стоимости третьего макроблока друг с другом.
Если RD-стоимость выбранного первого или второго макроблока равна или больше, чем RD-стоимость третьего макроблока, тип макроблока становится типом макроблока, соответствующим выбранному первому или второму макроблоку.
Например, если RD-стоимость первого макроблока меньше, чем таковая второго и третьего макроблоков, текущий макроблок устанавливается как первый тип макроблока. И, режим предсказания макроблока (то есть внутрикадровое предсказания) становится схемой предсказания макроблока, соответствующего RD-стоимости.
Например, если RD-стоимость второго макроблока меньше, чем таковая первого и третьего макроблоков, схема межкадрового предсказания в качестве схемы предсказания второго макроблока становится режимом предсказания макроблока текущего макроблока.
Между тем, если RD-стоимость третьего макроблока меньше, чем RD стоимости первого и второго макроблоков, типы макроблоков соответствуют и первому и второму типам макроблоков. В частности, типы макроблока внутрикадрового предсказания и межкадрового предсказания становятся типами макроблока текущего макроблока. И, режим предсказания макроблока становится схемой смешанного предсказания, полученной из смешивания внутрикадрового предсказания и меж-кадрового предсказания.
Соответственно, настоящее изобретение обеспечивает по меньшей мере следующий эффект или преимущество.
Настоящее изобретение способно исключить информацию избыточности между кадрами из-за различных схем предсказания между кадрами и такую информацию, как типы вырезки, типы макроблока и режимы предсказания макроблока; таким образом повышая производительность кодирования/эффективность декодирования.
Промышленная применимость
Хотя настоящее изобретение было описано и проиллюстрировано со ссылками на предпочтительные варианты его осуществления, специалистам очевидно, что различные модификации и изменения могут быть сделаны без отхода от объема и сущности изобретения. Таким образом, предполагается, что настоящее изобретение охватывает модификации и изменения этого изобретения, которые определяются прилагаемой формулой изобретения и ее эквивалентами.