СПОСОБЫ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО С НЕСКОЛЬКИМИ ПРЕДСТАВЛЕНИЯМИ
MULTI-VIEW VIDEO CODING METHODS AND DEVICE

Перекрестные ссылки на родственные заявки
Данная заявка притязает на приоритет предварительной заявки (США) под номером 60/757289, озаглавленной "Multi-View Video Coding System", поданной 9 января 2006 года, которая вставлена в данный документ по ссылке. Кроме того, данная заявка связана с непредварительной заявкой, под номером поверенного PU060004, озаглавленной "Methods and Apparatus for Multi-View Video Coding", которая является общеназначенной, полностью содержится по ссылке и подана параллельно с данной заявкой.
Область техники, к которой относится изобретение
Настоящее изобретение, в общем, относится к видеокодерам и декодерам, а более конкретно к способам и устройству кодирования видео с несколькими представлениями (многовидового видео).
Уровень техники
Кодирование видео с несколькими представлениями (Multi-view video coding, сокращенно MVC) - это структура сжатия для кодирования последовательностей с несколькими представлениями. Последовательность кодирования видео с несколькими представлениями (MVC) - это набор из двух или более видеопоследовательностей, которые фиксируют одну и ту же сцену с различной точки обзора.
Общепризнанно, что кодирование видео с несколькими представлениями является ключевой технологией, которая служит для множества вариантов применения, включая варианты применения свободной точки обзора и трехмерного видео, домашние развлекательные приложения и наблюдение. В этих вариантах применения с несколькими представлениями объем используемых видеоданных огромный. Таким образом, имеется потребность в технологиях эффективного сжатия, чтобы повысить эффективность кодирования текущих решений по кодированию видео, выполняющих одновременную передачу независимых видов.
В последние годы прилагались значительные усилия по проектированию эффективных способов сжатия стереоскопического видео. Традиционные способы моноскопического сжатия могут быть применены независимо к левому и правому представлению пары стереоизображения. Тем не менее, более высокие коэффициенты сжатия могут быть достигнуты, если используется высокая кросс-видовая корреляция.
Касательно подхода предшествующего уровня техники, при котором оба представления пары стереоскопического изображения кодируются, профиль с несколькими представлениями (MVP) задан в стандарте Экспертной группы по киноизображению-2 (MPEG-2) Международной организации по стандартизации/Международной электротехнической комиссии (ISO/IEC), чтобы передавать пару видеосигналов. MVP базируется на подходе многослойного представления сигнала, с тем чтобы одно представление (зачастую левое представление) назначалось основному уровню, а другое представление назначалось уровню улучшения. Моноскопическое кодирование с помощью таких же средств, что и основной профиль (MP), применяется к основному уровню. Уровень улучшения кодируется с помощью средств временной масштабируемости и гибридного прогнозирования полей движения и несоразмерности.
В способах предшествующего уровня техники, относящихся к стандарту улучшенного видеокодирования (AVC) часть 10 Экспертной группы по киноизображению-4 (MPEG-4) Международной организации по стандартизации/Международной электротехнической комиссии (ISO/IEC)/рекомендации H.264 Международного союза электросвязи - сектор телекоммуникаций (ITU-T) (далее "стандарт MPEG-4 AVC"), кодирование стереоскопического видео может осуществляться двумя различными способами: (i) в качестве конкретного случая кодирования черезстрочных изображений, где все поля конкретной четности назначаются левому представлению, а все поля противоположной четности считаются правым представлением содержимого стереопредставления; либо альтернативно (ii) посредством чередования кадров из левого и правого представлений, чтобы создать одну моноскопическую видеопоследовательность. Сообщение информации дополнительного улучшения (SEI) стереовидения предоставляет индикатор декодеру в отношении того, представляет или нет кодированная видеопоследовательность стереоскопическое содержимое, и какой способ использован для того, чтобы кодировать соответствующее содержимое.
Эти ранее известные способы требуют минимальных модификаций существующих методик моноскопического кодирования. Тем не менее, они демонстрируют ограниченную способность к снижению избыточности, имеющейся между двумя представлениями в стереоскопической паре. Как результат, кодирование стереопредставления приводит к значительной дополнительной служебной информации в сравнении с кодированием одного моноскопического представления. Более того, отсутствует предшествующая поддержка в кодировании более двух представлений камеры.
Раскрытие изобретения
Эти и другие недостатки и изъяны предшествующего уровня техники разрешаются посредством настоящего изобретения, которое направлено на способы и устройства кодирования видео с несколькими представлениями.
Согласно аспекту настоящего изобретения предусмотрен видеокодер. Видеокодер включает в себя кодер для кодирования блока в изображении с помощью, по меньшей мере, одного из двух списков кросс-видовых опорных изображений. Изображение является одним из набора изображений, соответствующих видеосодержимому с несколькими представлениями и имеющих различные точки обзора в отношении одной или аналогичной сцены. Изображение представляет текущую одну из различных точек обзора. Два списка кросс-видовых опорных изображений соответствуют опорным изображениям, имеющим различные точки обзора, отличные от текущей точки обзора.
Согласно другому аспекту настоящего изобретения предусмотрен видеокодер. Видеокодер включает в себя, по меньшей мере, один буфер для сохранения декодированных изображений, соответствующих содержимому с несколькими представлениями для различных точек обзора одной или аналогичной сцены.
Согласно еще одному другому аспекту настоящего изобретения предусмотрен способ кодирования видео. Способ включает в себя кодирование блока в изображении с помощью, по меньшей мере, одного из двух списков кросс-видовых опорных изображений. Изображение является одним из набора изображений, соответствующих видеосодержимому с несколькими представлениями и имеющих различные точки обзора в отношении одной или аналогичной сцены. Изображение представляет текущую одну из различных точек обзора. Два списка кросс-видовых опорных изображений соответствуют опорным изображениям, имеющим различные точки обзора, отличные от текущей точки обзора.
Согласно еще одному другому аспекту настоящего изобретения, предусмотрен способ кодирования видео. Способ включает в себя сохранение, по меньшей мере, в одном буфере декодированных изображений, соответствующих содержимому с несколькими представлениями для различных точек обзора одной или аналогичной сцены.
Согласно дополнительному аспекту настоящего изобретения, предусмотрен видеодекодер. Видеодекодер включает в себя декодер для декодирования блока в изображении с помощью, по меньшей мере, одного из двух списков кросс-видовых опорных изображений. Изображение является одним из набора изображений, соответствующих видеосодержимому с несколькими представлениями и имеющих различные точки обзора в отношении одной или аналогичной сцены. Изображение представляет текущую одну из различных точек обзора. Два списка кросс-видовых опорных изображений соответствуют опорным изображениям, имеющим различные точки обзора, отличные от текущей точки обзора.
Согласно еще одному дополнительному аспекту настоящего изобретения, предусмотрен видеодекодер. Видеодекодер включает в себя, по меньшей мере, один буфер для сохранения декодированных изображений, соответствующих содержимому с несколькими представлениями для различных точек обзора одной или аналогичной сцены.
Согласно дополнительному аспекту настоящего изобретения, предусмотрен способ декодирования видео. Способ включает в себя декодирование блока в изображении с помощью, по меньшей мере, одного из двух списков кросс-видовых опорных изображений. Изображение является одним из набора изображений, соответствующих видеосодержимому с несколькими представлениями и имеющих различные точки обзора в отношении одной или аналогичной сцены. Изображение представляет текущую одну из различных точек обзора. Два списка кросс-видовых опорных изображений соответствуют опорным изображениям, имеющим различные точки обзора, отличные от текущей точки обзора.
Согласно дополнительному аспекту настоящего изобретения, предусмотрен способ декодирования видео. Способ включает в себя сохранение, по меньшей мере, в одном буфере декодированных изображений, соответствующих содержимому с несколькими представлениями для различных точек обзора одной или аналогичной сцены.
Эти и другие аспекты, признаки и преимущества настоящего изобретения должны стать очевидными из последующего Осуществления изобретения с подробным описанием примерных вариантов осуществления, которые должны рассматриваться в связи с прилагаемыми чертежами.
Краткое описание чертежей
Настоящее изобретение может стать более понятным в соответствии со следующими примерными чертежами, на которых:
Фиг.1 - это блок-схема примерного кодера для кодирования видео с несколькими представлениями (MVC), к которому могут быть применены настоящие принципы, в соответствии с вариантом осуществления настоящих принципов;
Фиг.2 - это блок-схема примерного декодера для кодирования видео с несколькими представлениями (MVC), к которому могут быть применены настоящие принципы, в соответствии с вариантом осуществления настоящих принципов;
Фиг.3 - это блок-схема последовательности операций примерного способа составления списка эталонов для видеосодержимого с несколькими представлениями в соответствии с вариантом осуществления настоящих принципов;
Фиг.4 - это блок-схема последовательности операций примерного способа принятия решения по временному режиму/кросс-видовому режиму в соответствии с вариантом осуществления настоящих принципов;
Фиг.5 - это блок-схема последовательности операций примерного способа обработки векторов движения и несоразмерности для одной серии макроблоков, соответствующей видеосодержимому с несколькими представлениями, в соответствии с вариантом осуществления настоящих принципов; и
Фиг.6 - это блок-схема последовательности операций другого способа обработки векторов движения и несоразмерности для видеосодержимого с несколькими представлениями в соответствии с вариантом осуществления настоящих принципов.
Осуществление изобретения
Настоящее изобретение направлено на способы и устройства кодирования видео с несколькими представлениями.
Настоящее «Осуществление изобретения» иллюстрирует принципы настоящего изобретения. Таким образом, следует принимать во внимание, что специалисты в данной области техники должны иметь возможность разрабатывать различные компоновки, которые, хотя не описаны или показаны явно в данном документе, осуществляют принципы изобретения и включаются в его идею и область применения.
Все примеры и условный язык, применяемые в данном документе, предназначены для педагогических целей, чтобы помочь читателю в понимании принципов изобретения и понятий, вносимых автором изобретения в продвижение уровня техники, и должны рассматриваться как не налагающие ограничения на данные конкретно упоминаемые примеры и условия.
Более того, все заявления в данном документе, касающиеся принципов, аспектов и вариантов осуществления изобретения, а также его конкретных примеров предназначены для того, чтобы содержать в себя структурные и функциональные эквиваленты. Дополнительно, предназначено, чтобы эти эквиваленты включали в себя как известные в данный момент эквиваленты, так и эквиваленты, разрабатываемые в будущем, т.е. любые разрабатываемые элементы, которые выполняют ту же функцию, вне зависимости от структуры.
Таким образом, к примеру, специалисты в данной области техники должны признавать, что блок-схемы, представляемые в данном документе, означают концептуальные представления иллюстративной схемы, осуществляющей принципы изобретения. Аналогично, следует принимать во внимание, что все блок-схемы последовательности операций, блок-схемы, схемы переходов состояния, псевдокод и т.п. представляют различные процессы, которые могут быть большей частью представлены в машиночитаемых носителях и тем самым приведены в исполнение посредством компьютера или процессора, независимо от того, показан или нет в явной форме такой компьютер или процессор.
Функции различных элементов, показанных на чертежах, могут быть предоставлены посредством использования специализированных аппаратных средств, а также аппаратных средств, допускающих приведение в исполнение программного обеспечения, ассоциативно связанного с соответствующим программным обеспечением. Когда предоставляются посредством процессора, функции могут предоставляться посредством одного выделенного процессора, посредством одного совместно используемого процессора или посредством множества отдельных процессоров, некоторые из которых могут совместно использоваться. Кроме того, явное использование термина "процессор" или "контроллер" не должно рассматриваться так, чтобы ссылаться исключительно на аппаратные средства, допускающие приведение в исполнение программного обеспечения, и может неявно включать в себя, без ограничений, аппаратные средства процессора цифровых сигналов (DSP), постоянное запоминающее устройство (ROM) для сохранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое устройство хранения.
Другие аппаратные средства, традиционные и/или специализированные, также могут быть включены. Аналогично, все переключатели, показанные на чертежах, являются только концептуальными. Их функция может выполняться посредством операции программной логики, посредством специализированной логики, посредством взаимодействия программного управления и специализированной логики или даже вручную, при этом конкретная методика выбирается посредством средства реализации, как более четко ясно из контекста.
В формуле изобретения любой элемент, выраженный как средство для выполнения указанной функции, предназначен, чтобы содержать в себя любой способ выполнения этой функции, включая, к примеру, a) комбинацию схемных элементов, которые выполняют эту функцию, или b) программное обеспечение в любой форме, включая, таким образом, микропрограммное обеспечение, микрокод и т.п., комбинированное с надлежащей схемой для приведения в исполнение этого программного обеспечения, чтобы осуществлять функцию. Изобретение, задаваемое посредством данной формулы изобретения, базируется на том, что функциональность, предоставляемая посредством различных перечисленных средств, комбинируется и объединяется способом, который требуется формулой изобретения. Таким образом, считается, что любое средство, которое может предоставлять такую функциональность, эквивалентно показанным в данном документе.
Ссылка в этом подробном описании на "один вариант осуществления" или "вариант осуществления" настоящих принципов означает, что конкретный признак, структура, характеристика и т.п., описываемые в связи с вариантом осуществления, включены, по меньшей мере, в один вариант осуществления настоящих принципов. Таким образом, вхождения фразы "в одном варианте осуществления" или "в варианте осуществления" в различных местах подробного описания не обязательно все ссылаются на один и тот же вариант осуществления.
Обращаясь к Фиг.1, примерный кодер для кодирования видео с несколькими представлениями (MVC), в общем, показан ссылкой с номером 100. Кодер 100 включает в себя сумматор 105, имеющий выход, соединенный для обмена сигналами с входом модуля 110 преобразования. Выход модуля 110 преобразования соединен для обмена сигналами с входом квантователя 115. Выход квантователя 115 соединен для обмена сигналами с входом энтропийного кодера 120 и входом обратного квантователя 125. Выход обратного квантователя 125 соединен для обмена сигналами с входом модуля 130 обратного преобразования. Выход модуля 130 обратного преобразования соединен для обмена сигналами с первым неинвертирующим входом сумматора 135. Выход сумматора 135 соединен для обмена сигналами с входом модуля 145 внутреннего прогнозирования и входом деблокирующего фильтра 150. Выход деблокирующего фильтра 150 соединен для обмена сигналами с входом хранилища 155 опорных изображений (для представления i). Выход хранилища 155 опорных изображений соединен для обмена сигналами с первым входом модуля 175 компенсации движения и первым входом модуля 180 оценки движения. Выход модуля 180 оценки движения соединен для обмена сигналами со вторым входом модуля 175 компенсации движения.
Выход хранилища 160 опорных изображений (для других представлений) соединен для обмена сигналами с первым входом модуля 170 оценки несоразмерности/освещенности и первым входом модуля 165 компенсации несоразмерности/освещенности. Выход модуля 170 оценки несоразмерности/освещенности соединен для обмена сигналами со вторым входом модуля 165 компенсации несоразмерности/освещенности.
Выход энтропийного декодера 120 доступен в качестве выхода кодера 100. Неинвертирующий вход сумматора 105 доступен в качестве входа кодера 100 и соединен для обмена сигналами со вторым входом модуля 170 оценки несоразмерности/освещенности и вторым входом модуля 180 оценки движения. Выход переключателя 185 соединен для обмена сигналами со вторым неинвертирующим входом сумматора 135 и с инвертирующим входом сумматора 105. Переключатель 185 включает в себя первый вход, соединенный для обмена сигналами с выходом модуля 175 компенсации движения, второй вход, соединенный для обмена сигналами с выходом модуля 165 компенсации несоразмерности/освещенности, и третий вход, соединенный для обмена сигналами с выходом модуля 145 внутреннего прогнозирования.
Модуль 140 выбора режима имеет выход, соединенный с переключателем 185, для управления тем, какой вход выбран посредством переключателя 185.
Обращаясь к Фиг.2, примерный декодер для кодирования видео с несколькими представлениями (MVC) указан, в общем, посредством ссылки с номером 200. Декодер 200 включает в себя энтропийный декодер 205, имеющий выход, соединенный для обмена сигналами с входом обратного квантователя 210. Выход обратного квантователя соединен для обмена сигналами с входом модуля 215 обратного преобразования. Выход модуля 215 обратного преобразования соединен для обмена сигналами с первым неинвертирующим входом сумматора 220. Выход сумматора 220 соединен для обмена сигналами с входом деблокирующего фильтра 225 и входом модуля 230 внутреннего прогнозирования. Выход деблокирующего фильтра 225 соединен для обмена сигналами с входом хранилища 240 опорных изображений (для представления i). Выход хранилища 240 опорных изображений соединен для обмена сигналами с первым входом модуля 235 компенсации движения.
Выход хранилища 245 опорных изображений (для других представлений) соединен для обмена сигналами с первым входом модуля 250 компенсации несоразмерности/освещенности.
Вход энтропийного кодера 205 доступен в качестве входа в декодер 200 для приема остаточного потока битов. Кроме того, вход модуля 260 режима также доступен в качестве входа в декодер 200 для приема управляющего синтаксиса, чтобы управлять тем, какой вход выбран посредством переключателя 255. Более того, второй вход модуля 235 компенсации движения доступен в качестве входа декодера 200 для приема векторов движения. Так же, второй вход модуля 250 компенсации несоразмерности/освещенности доступен в качестве входа в декодер 200 для приема векторов несоразмерности и синтаксиса компенсации освещенности.
Выход переключателя 255 соединен для обмена сигналами со вторым неинвертирующим входом сумматора 220. Первый вход переключателя 255 соединен для обмена сигналами с выходом модуля 250 компенсации несоразмерности/освещенности. Второй вход переключателя 255 соединен для обмена сигналами с выходом модуля 235 компенсации движения. Третий вход переключателя 255 соединен для обмена сигналами с выходом модуля 230 внутреннего прогнозирования. Выход модуля 260 режима соединен для обмена сигналами с переключателем 255 для управления тем, какой вход выбирается посредством переключателя 255. Выход деблокирующего фильтра 225 доступен в качестве выхода декодера.
Кодирование видео с несколькими представлениями (MVC) - это структура сжатия для кодирования последовательностей с несколькими представлениями. Последовательность кодирования видео с несколькими представлениями (MVC) - это набор из двух или более видеопоследовательностей, которые фиксируют одну и ту же сцену с различной точки обзора.
Поскольку источник видео с несколькими представлениями включает в себя несколько представлений одной сцены, имеется высокая степень корреляции между изображениями нескольких представлений. Следовательно, избыточность представлений может быть использована в дополнение к временной избыточности и достигается посредством выполнения прогнозирования для различных представлений. Соответственно, варианты осуществления настоящих принципов, описанных в данном документе, могут влечь за собой как временное прогнозирование, так и кросс-видовое прогнозирование.
В иллюстративных целях варианты осуществления настоящих принципов описаны в данном документе относительно стандарта MPEG-4 AVC. Тем не менее, следует принимать во внимание, что настоящее изобретение не ограничено стандартом MPEG-4 AVC и, с учетом методик настоящих принципов, предоставленных в данном документе, специалисты в данной области техники должны рассматривать эти и другие стандарты кодирования видео, допускающие кодирование видео с несколькими представлениями, к которым могут быть применены настоящие принципы, при сохранении области применения настоящих принципов. Варианты осуществления настоящих принципов, описанные в данном документе, относящиеся к стандарту MPEG-4 AVC, могут включать в себя, к примеру, изменения деблокирующего фильтра и/или энтропийное кодирование синтаксисов.
В варианте осуществления, на уровне серии макроблоков списки кросс-видового прогнозирования вводятся с тем, чтобы обеспечить прогнозирование несоразмерности, и синтаксис типа кросс-видового кодирования добавлен, чтобы указать тип кодирования прогнозирования несоразмерности. На уровне макроблока (MB) синтаксис флага вводится, чтобы указать то, используется компенсация движения или компенсация несоразмерности для каждого блока сигнала. Более того, другие изменения, которые могут быть использованы в вариантах осуществления, направленных на стандарт MPEG-4 AVC, включают в себя, к примеру, фильтр деблокирования, контексты для контекстного адаптивного двоичного арифметического кодирования (CABAC) по новым синтаксисам и дополнительные синтаксисы на уровне набора параметров и уровне заголовка серии макроблоков.
Далее приводится описание, касающееся типа кросс-видового кодирования и списков кросс-видовых эталонов в соответствии с вариантом осуществления настоящих принципов.
Стандарт MPEG-4 AVC выполняет межкадровое прогнозирование посредством формирования двух списков прогнозирования, List0 и List1. Следовательно, блок изображений в текущем кадре может компенсироваться либо посредством использования только опорного изображения в List0, либо посредством использования двух опорных изображений, по одному из каждого списка. В заголовке серии макроблоков синтаксис slice_type сообщается, чтобы указать тип временного кодирования для каждой серии макроблоков. Когда slice_type=P_SLICE, только List0 должен быть использован при компенсации движения. Когда slice_type=B_SLICE, List0 и List1, вероятно, могут быть использованы при компенсации движения.
Чтобы обеспечить кросс-видовое прогнозирование для различных представлений, вариант осуществления настоящих принципов влечет за собой использование двух новых списков прогнозирования: ViewList0 и ViewList1. Изображения в ViewList0/ViewList1 являются опорными изображениями из представлений камеры, отличных от текущего представления. Новый синтаксис view_slice_type в заголовке серии макроблоков используется для того, чтобы указать тип кодирования для кросс-видового прогнозирования. Например, если конкретная серия макроблоков имеет slice_type=B_SLICE и view_slice_type=P_SLICE, то макроблок (MB) в этой серии макроблоков может быть либо кодирован во времени как тип кодирования B_SLICE, либо кодирован кросс-видовым образом как тип кодирования P_SLICE.
Альтернативный способ активации кросс-видовых прогнозирований в архитектуре стандарта MPEG-4 AVC включает в себя вставку опорных изображений из другого представления в списки List0/List1 без введения новых списков прогнозирования представлений и типа кросс-видового кодирования. Тем не менее, преимущества первого подхода следующие. Одно преимущество первого подхода заключается в том, что поскольку опорные изображения в ViewList0/ViewList1 включают в себя только кросс-видовые эталоны, служебные сигналы в ref_idx расходуют меньше битов, чем при наличии как эталонов этого же представления, так и кросс-видовых эталонов в одном списке. Другое преимущество первого подхода состоит в том, что наличие двух новых списков в ViewList0/ViewList1 предоставляет отдельный способ обработки временных прогнозирований и кросс-видовых прогнозирований. Это связано со случаем, когда List0/List1 включает в себя как временные эталоны, так и кросс-видовые эталоны, так что процесс переупорядочения стандарта MPEG-4 AVC для составления списков опорных изображений потребуется модифицировать, и он обязательно станет более сложным.
В варианте осуществления списки кросс-видовых эталонов для каждой серии макроблоков могут быть сформированы согласно следующим правилам. Касательно первого правила, в заголовке серии макроблоков число кросс-видовых опорных изображений и их view_id сообщаются для ViewList0 и ViewList1. View_id отличаются в каждом из двух списков кросс-видового прогнозирования. Касательно второго правила, опорные изображения в списке кросс-видового прогнозирования упорядочиваются в той же последовательности, что они отображаются в заголовке серии макроблоков. Для каждого упоминаемого представления опорное изображение с ближайшим порядковым номером изображения (POC) (в отношении POC текущей серии макроблоков) используется в списке кросс-видового прогнозирования текущей серии макроблоков.
Дополнительные синтаксисы переупорядочения эталонов могут быть включены, чтобы обеспечить более гибкую обработку кросс-видовых опорных изображений.
Обращаясь к Фиг.3, примерный способ составления списка эталонов для видеосодержимого с несколькими представлениями указывается, в общем, посредством ссылки с номером 300. Способ 300 включает в себя начальный этап 305, который передает управление этапу 310 принятия решения. Этап 310 принятия решения определяет, является или нет тип текущей серии макроблоков P-серией или B-серией. Если да, то управление передается функциональному этапу 315. В противном случае, управление передается этапу 330 принятия решения.
Функциональный этап 315 составляет List0 с помощью временных эталонов и передает управление этапу 320 принятия решения. Этап 320 принятия решения определяет то, является или нет текущий тип серии макроблоков B-серией. Если да, то управление передается функциональному этапу 325. В противном случае, управление передается этапу 330 принятия решения.
Функциональный этап 325 составляет List1 с помощью временных эталонов и передает управление этапу 330 принятия решения.
Этап 330 принятия решения определяет то, является или нет тип серии макроблоков текущего представления P-серией или B-серией. Если да, то управление передается функциональному этапу 335. В противном случае, управление передается этапу 350 границы цикла.
Функциональный этап 335 составляет ViewList0 с помощью кросс-видовых эталонов и передает управление этапу 340 принятия решения. Этап 340 принятия решения определяет то, является или нет тип серии макроблоков текущего представления B-серией. Если да, то управление передается функциональному этапу 345. В противном случае, управление передается этапу 350 границы цикла.
Функциональный этап 345 составляет ViewList0 с помощью кросс-видовых эталонов и передает управление этапу 350 границы цикла.
Этап 350 границы цикла начинает цикл по каждому макроблоку, включая задание диапазона для контура с помощью переменной mb = от 0 до MacroBlockslnPic-1, и передает управление функциональному этапу 355. Функциональный этап 355 кодирует текущий макроблок с помощью List0/List1 и передает управление этапу 360 принятия решения. Этап 360 принятия решения определяет то, равен или нет тип серии макроблоков текущего представления P-серии или B-серии. Если да, то управление передается функциональному этапу 365. В противном случае, управление передается функциональному этапу 370.
Функциональный этап 365 кодирует текущий макроблок с помощью ViewList0/ViewList1 и передает управление функциональному этапу 370.
Функциональный этап 370 выбирает оптимальный режим, задает mvc_prediction_flag и передает управление функциональному этапу 375. Функциональный этап 375 выполняет обработку буфера векторов движения/несоразмерности и передает управление этапу 380 границы контура. Этап границы контура завершает контур и передает управление функциональному этапу 385. Функциональный этап 385 сохраняет кодированное изображение в буфере декодированных изображений (dpb) и передает управление завершающему этапу 390.
Поскольку кросс-видовое прогнозирование каждой серии макроблоков является полностью конфигурируемым с помощью типа кросс-видового кодирования и списков прогнозирования представлений, кодек для кодирования видео с несколькими представлениями (MVC) может поддерживать произвольный порядок кодирования представлений и масштабируемость представлений.
В варианте осуществления на MB-уровне новый синтаксис, называемый mvc_pred_flag, указывает то, используется временное прогнозирование или кросс-видовое прогнозирование для кодирования каждого блока сигналов. В случае mvc_pred_flag=0, List0/List1 должен быть использован для компенсации движения в зависимости от slice_type. Когда mvc_pred_flag=1, то ViewList0/ViewList1 должен быть использован в зависимости от view_slice_type.
Обращаясь к Фиг.4, примерный способ осуществления выбора временного/кросс-видового режима указывается, в общем, посредством ссылки с номером 400. Способ 400 включает в себя начальный этап 405, который передает управление этапу 410 принятия решения. Этап 410 принятия решения определяет, является или нет тип текущей серии макроблоков P-серией или B-серией. Если да, то управление передается функциональному этапу 415. В противном случае, управление передается этапу 430 принятия решения.
Функциональный этап 415 составляет List0 с помощью временных эталонов и передает управление этапу 420 принятия решения. Этап 420 принятия решения определяет то, является или нет текущий тип серии макроблоков B-серией. Если да, то управление передается функциональному этапу 425. В противном случае, управление передается этапу 430 принятия решения.
Функциональный этап 425 составляет List1 с помощью временных эталонов и передает управление этапу 430 принятия решения.
Этап 430 принятия решения определяет то, является или нет тип серии макроблоков текущего представления P-серией или B-серией. Если да, то управление передается функциональному этапу 435. В противном случае, управление передается этапу 450 границы цикла.
Функциональный этап 435 составляет ViewList0 с помощью кросс-видовых эталонов и передает управление этапу 440 принятия решения. Этап 440 принятия решения определяет то, является или нет тип серии макроблоков текущего представления B-серией. Если да, то управление передается функциональному этапу 445. В противном случае, управление передается этапу 450 границы цикла.
Функциональный этап 445 составляет ViewList0 с помощью кросс-видовых эталонов и передает управление этапу 450 границы цикла.
Этап 450 границы цикла начинает цикл для каждого макроблока, включая задание диапазона для контура с помощью переменной mb = от 0 до MacroBlockslnPic-1, и передает управление этапу 455 принятия решения. Этап 455 принятия решения определяет то, равен или нет 1 mvc_prediction_flag. Если да, то управление передается функциональному этапу 460. В противном случае, управление передается функциональному этапу 465.
Функциональный этап 460 декодирует макроблок с помощью ViewList0/ViewList1 и передает управление функциональному этапу 470.
Функциональный этап 465 декодирует макроблок с помощью List0/List1 и передает управление функциональному этапу 470.
Функциональный этап 470 выполняет обработку буфера векторов движения/несоразмерности и передает управление этапу 475 границы контура. Этап 475 границы контура завершает контур и передает управление функциональному этапу 480. Функциональный этап 480 сохраняет декодированное изображение в буфере декодированных изображений (dpb) и передает управление завершающему этапу 485.
Три новых контекста CABAC добавлено для кодирования синтаксиса mvc_pred_dir. Моделирование контекста такое же, как и для синтаксиса transform_size_8×8_flag.
В дополнении по нескольким представлениям стандарта MPEG-4 AVC буфер декодированных изображений (dpb) должен иметь возможность обрабатывать декодированные изображения из нескольких представлений. При условии, что имеется N входных представлений, вариант осуществления настоящего изобретения может включать в себя N отдельных dpb. Каждый dpb сохраняет декодированные изображения из одного конкретного представления.
Альтернативный способ управления dpb состоит в том, что поместить изображения всех представлений в один dpb. Тем не менее, первый подход имеет следующие преимущества. Одно преимущество первого подхода состоит в том, что каждое представление имеет собственный dpb, с таким же процессом пометки декодированных эталонов, как и в стандарте MPEG-4 AVC. Этот более простой подход снижает сложность управления изображениями различных представлений в одном dpb. Другое преимущество первого подхода связано с нежелательностью снижения числа доступных временных опорных кадров, поскольку временная корреляция, в общем, сильнее, чем кросс-видовая корреляция. За счет управления посредством каждого представления собственными опорными изображениями в dpb временное прогнозирование должно иметь такую же способность прогнозирования нескольких опорных кадров, как и одновременная передача.
Характерной чертой MVC в сравнении с традиционным кодированием видео является совместное присутствия и движения, и несоразмерности. Блоки, которые прогнозируются во времени, должны сообщить векторы движения (MV), в отличие от векторов несоразмерности (DV) для кросс-видового прогнозирования.
Два примерных способа описаны в данном документе для обработки и векторов движения и векторов несоразмерности в одной серии макроблоков. Тем не менее, следует принимать во внимание, что с учетом методик настоящего изобретения, предоставленных в данном документе, специалисты в данной области техники должны рассматривать эти и другие способы для этого, при сохранении области применения настоящего изобретения.
В первом способе для каждого блока сообщается и сохраняется либо вектор движения, либо вектор несоразмерности, но не и того, и другого. То, сообщается и сохраняется вектор движения или вектор несоразмерности, зависит от синтаксиса mvc_pred_flag. Это должно требовать меньше объема памяти, но комбинированное векторное поле не будет согласованным.
Во втором способе для каждого блока сообщается и сохраняется и вектор движения, и вектор несоразмерности. Это может быть достигнуто либо посредством сообщения обоими векторами, либо посредством сообщения одного и заполнения другого с помощью интерполяции векторных полей. Данный подход требует большего объема памяти, но непротиворечивость полей движения и несоразмерности может поддерживаться более оптимально.
Примерный вариант осуществления первого способа показан и описан касательно Фиг.5. Примерный вариант осуществления второго способа показан и описан касательно Фиг.6.
Обращаясь к Фиг.5, примерный способ обработки векторов движения и несоразмерности для одной серии макроблоков, соответствующей видеосодержимому с несколькими представлениями, указан, в общем, посредством ссылки с номером 500. Способ 500 включает в себя начальный этап 505, который передает управление этапу 510 принятия решения. Этап 510 принятия решения определяет то, равен или нет mvc_pred_flag 0. Если да, то управление передается функциональному этапу 515. В противном случае, управление передается функциональному этапу 520. Функциональный этап 515 формирует прогнозирующий параметр вектора несоразмерности, обрабатывает вектор несоразмерности DV, сохраняет вектор несоразмерности DV в VectorBuffer и передает управление завершающему этапу 525.
Функциональный этап 520 формирует прогнозирующий параметр векторов движения, обрабатывает вектор движения MV, сохраняет вектор движения MV в VectorBuffer и передает управление завершающему этапу 525.
Обращаясь к Фиг.6, другой способ обработки векторов движения и несоразмерности для видеосодержимого с несколькими представления указывается, в общем, посредством ссылки с номером 600. Способ 600 включает в себя начальный этап 605, который передает управление функциональному этапу 610. Функциональный этап 610 формирует прогнозирующий параметр вектора несоразмерности, обрабатывает вектор несоразмерности DV, сохраняет вектор несоразмерности DV в VectorBuffer1 и передает управление функциональному этапу 615. Функциональный этап 615 формирует прогнозирующий параметр векторов движения, обрабатывает вектор движения MV, сохраняет вектор движения MV в VectorBuffer2 и передает управление завершающему этапу 620.
Следствие наличия векторов движения и несоразмерности при кодировании одной серии макроблоков возникает в следующих аспектах: (1) кодирование с прогнозированием векторов движения/несоразмерности; и (2) режимы направления и пропуска.
В стандарте MPEG-4 AVC компоненты векторов движения кодируются дифференциально с помощью либо медианного, либо направленного прогнозирования из соседних блоков. При кодировании видео с несколькими представлениями соседние блоки могут иметь другое направление(я) прогнозирования, чем текущий блок. Чтобы сэкономить биты при кодировании векторов движения/несоразмерности, предпочтительно иметь наиболее коррелированную информацию, чтобы сформировать прогнозирующий параметр. В зависимости от того, доступны ли как векторы движения, так и векторы несоразмерности для соседних блоков, в первом способе используются только те соседние блоки, которые имеют такое же направление прогнозирования; во втором способе используются только векторы движения соседних блоков при формировании прогнозирующего параметра вектора движения и используются только векторы несоразмерности соседних блоков при формировании прогнозирующего параметра несоразмерности.
Помимо пространственно соседних блоков, ближайшие по времени блоки также могут быть использованы для того, чтобы улучшать прогнозирование несоразмерности, поскольку поля несоразмерности обычно являются стационарными во временном измерении.
Режимы пропуска и направления в стандарте MPEG-4 AVC являются эффективными средства кодирования, которые более оптимально используют пространственно-временную корреляцию, которая имеется между соседними макроблоками, поскольку они представляют движения без необходимости передавать векторы движения. При кодировании видео с несколькими представлениями эти режимы должны быть приспособлены так, чтобы учитывать дополнительную кросс-видовую корреляцию.
Для режимов P_Skip восстановленный сигнал получается аналогично сигналу прогнозирования типа макроблока P_16×16, который ссылается на изображение, которое находится под индексом 0 в List0. Вектор движения, используемый для восстановления макроблока P_Skip, аналогичен прогнозирующему параметру вектора движения для блока 16×16. В MVC вышеупомянутое приспособление прогнозирующего параметра вектора движения/несоразмерности должно помочь сделать режим P_Skip более полезным.
При кодировании B_SLICE режимы B_Skip/B_Direct_16×16/B_Direct_8×8 должны быть приспособлены, чтобы учитывать смешение движения и несоразмерности. Поддерживается два различных режима направления в стандарте MPEG-4 AVC, а именно временное направление и пространственное направление.
В режиме временного направления векторы движения извлекаются из ближайшей позиции в первом эталоне List1. Когда первый эталон List1 прогнозируется по несоразмерности, система может либо искать векторы движения в ближайшей позиции в других эталонах List1 (ref_idx>0), либо использовать прогнозирующий параметр пространственных векторов движения.
В режиме пространственного направления векторы движения извлекаются способом, аналогичным используемому посредством P_SKIP, но с учетом обоих List0/List1. Такое же приспособление, выполненное в P_SKIP, может быть расширено также на List1.
Таблицы 1-4 иллюстрируют различные синтаксисы кодирования видео с несколькими представлениями, включая и синтаксисы в соответствии с различными вариантами осуществления настоящих принципов. Таблица 1 иллюстрирует синтаксис набора параметров последовательности RBSP для кодирования видео с несколькими представлениями. Таблица 2 иллюстрирует синтаксис набора параметров изображений RBSP для кодирования видео с несколькими представлениями. Таблица 3 иллюстрирует синтаксис заголовка серии макроблоков для кодирования видео с несколькими представлениями. Таблица 4 иллюстрирует синтаксис уровня макроблоков для кодирования видео с несколькими представлениями.
Таблица 1
<img file="00000001.tif" he="46" wi="135" img-content="undefined" img-format="tif" />
Таблица 2
<img file="00000002.tif" he="36" wi="135" img-content="undefined" img-format="tif" />
Таблица 3
<img file="00000003.tif" he="126" wi="133" img-content="undefined" img-format="tif" />
Таблица 4
<img file="00000004.tif" he="36" wi="133" img-content="undefined" img-format="tif" />
Далее приводится описание некоторых из множества сопутствующих преимуществ/особенностей настоящего изобретения, некоторые из которых упомянуты выше. Например, одно преимущество/особенность - это видеокодер, который включает в себя кодер для кодирования блока с помощью, по меньшей мере, одного из двух списков кросс-видовых опорных изображений. Изображение является одним из набора изображений, соответствующих видеосодержимому с несколькими представлениями и имеющих различные точки обзора в отношении одной или аналогичной сцены. Изображение представляет текущую одну из различных точек обзора. Два списка кросс-видовых опорных изображений соответствуют опорным изображениям, имеющим различные точки обзора, отличные от текущей точки обзора.
Другое преимущество/особенность - это видеокодер, описанный выше, при этом два списка кросс-видовых опорных изображений отличаются от List0 и List1 стандарта улучшенного видеокодирования часть 10 Экспертной группы по киноизображению-4 Международной организации по стандартизации/Международной электротехнической комиссии/рекомендации H.264 Международного союза электросвязи - сектор телекоммуникаций и ее дополнением.
Еще другое преимущество/особенность - это видеокодер, который включает в себя, по меньшей мере, один буфер для сохранения декодированных изображений, соответствующих содержимому с несколькими представлениями для различных точек обзора одной или аналогичной сцены.
Кроме того, другое преимущество/особенность - это видеокодер как описан выше, при этом, по меньшей мере, один буфер включает в себя отдельный буфер для каждой из различных точек обзора.
Эти и другие признаки и преимущества настоящего изобретения легко могут быть установлены специалистами в данной области техники на основе методик данного документа. Следует понимать, что методики настоящего изобретения могут быть реализованы в различных формах аппаратных средств, программного обеспечения, микропрограммного обеспечения, процессоров специального назначения или их комбинаций.
Предпочтительно, методики настоящего изобретения реализуются как комбинация аппаратных средств и программного обеспечения. Более того, программное обеспечение может быть реализовано как прикладная программа, материально осуществленная на устройстве хранения программ. Прикладная программа может быть выгружена или приведена в исполнение посредством машины, содержащей любую надлежащую архитектуру. Предпочтительно, машина реализуется на вычислительной платформе, имеющей аппаратные средства, такие как один или более центральных процессоров (CPU), оперативное запоминающее устройство (RAM) и интерфейсы ввода-вывода. Вычислительная платформа также может включать в себя операционную систему и код микрокоманд. Различные процессы и функции, описанные в данном документе, могут быть либо частью кода микрокоманд, либо частью прикладной программы или комбинации вышеозначенного, которая может приводиться в исполнение посредством CPU. Помимо этого, различные другие периферийные устройства могут быть подключены к вычислительной платформе, такие как дополнительное устройство хранения данных и печатающее устройство.
Дополнительно следует понимать, что поскольку некоторые из составляющих системных компонентов и способов, изображенных на прилагаемых чертежах, предпочтительно реализуются в программном обеспечении, фактические связи между системными компонентами или функциональными этапами процесса могут отличаться в зависимости от способа, которым запрограммировано настоящее изобретение. С учетом предлагаемых в данном документе методик, специалисты в данной области техники должны иметь возможность рассматривать эти и аналогичные реализации или конфигурации настоящего изобретения.
Хотя иллюстративные варианты осуществления описаны в данном документе со ссылкой на прилагаемые чертежи, следует понимать, что настоящее изобретение не ограничено исключительно этими вариантами осуществления и что различные изменения и модификации могут быть внесены в него специалистами в данной области техники без отступления от области применения и духа настоящего изобретения. Все эти изменения и модификации предназначены для того, чтобы быть включенными в область применения настоящего изобретения, задаваемую прилагаемой формулой изобретения.