СПОСОБ И УСТРОЙСТВО ДЛЯ ОТДЕЛЕНИЯ НОМЕРА КАДРА И/ИЛИ СЧЕТЧИКА ОЧЕРЕДНОСТИ ИЗОБРАЖЕНИЯ (РОС) ДЛЯ МУЛЬТИВИДОВОГО ВИДЕОКОДИРОВАНИЯ И ВИДЕОДЕКОДИРОВАНИЯ
METHOD AND APPARATUS FOR DECOUPLING FRAME NUMBER AND/OR PICTURE ORDER COUNT (POC) FOR MULTI-VIEW VIDEO ENCODING AND DECODING

Перекрестные ссылки на родственные заявки
Настоящая заявка испрашивает приоритет предварительной патентной заявки США №60/818874, поданной 6 июля 2006 года, и предварительной патентной заявки США №60/807706, поданной 18 июля 2006 года, содержание которых включено в настоящий документ посредством ссылки. Кроме того, настоящая заявка является родственной по отношению к непредварительной заявке "Method and Apparatus for Decoupling Frame Number and/or Picture Order Count (POC) for Multi-view Video Encoding and Decoding" (дело патентного поверенного №PU060220), права на которую принадлежат правопреемнику настоящего изобретения, содержание которой включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к видеокодированию и видеодекодированию и, в частности, касается способа и устройства для отделения номера кадра и/или счетчика очередности изображения (POC) для мультивидового видеокодирования и видеодекодирования.
Уровень техники
В стандарте The International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 recommendation (Стандарт усовершенствованного видеокодирования (AVC), Часть 10, (MPEG-4) Экспертной группы по кинематографии Международной организации по стандартизации/Международной электротехнической комиссии (ISO/IEC)/Рекомендация H.264, Сектор телекоммуникаций (ITU-T) Международного союза телекоммуникаций) (далее называемый «стандарт MPEG-4 AVC») в качестве идентификатора для изображений используется синтаксический элемент frame_num, который имеет ряд ограничений, определенных в стандарте MPEG-4 AVC. Основным назначением элемента frame_num является выполнение функции счетчика, который увеличивает свое значение на единицу каждый раз, когда декодируется изображение, так что, если имеют место потери данных, декодер может обнаружить, что некоторое изображение (изображения) было утеряно, и способен скрыть эту проблему. Элемент frame_num увеличивается в порядке декодирования блоков доступа и не обязательно должен указывать последовательность отображения. В операциях управления памятью (MMCO) значение frame_num используется для маркировки изображений в качестве долгосрочных и краткосрочных опорных изображений или маркировки опорных изображений как не используемых в качестве опорных. Элемент frame_num также используют для упорядочивания стандартного списка опорных изображений для P- и SP-слоев.
Счетчик очередности изображения в стандарте MPEG-4 AVC указывает моменты времени или порядок вывода конкретного изображения. Счетчик очередности изображения является переменной, значение которой не убывает по мере увеличения позиции изображения в выходной последовательности по отношению к предыдущему изображению IDR (с мгновенным обновлением при декодировании) в порядке декодирования или относительно предыдущего изображения, содержащего операцию управления памятью, которая маркирует все опорные изображения как «не используемые в качестве опорных». Счетчик очередности изображения получают из синтаксических элементов заголовка слоя. Счетчик очередности изображения используют при получении векторов движения при работе во временном режиме DIRECT, неявном предсказании с взвешиванием и упорядочивании стандартного начального списка опорных изображений для B-слоев.
В частности, параметры движения в режиме DIRECT, с использованием временной корреляции, как правило, получают для текущего макроблока/блока с учетом информации о движении в смежной позиции в последующем опорном изображении или, точнее, в первом опорном изображении списка 1. Обратимся к фиг.1, где под ссылочной позицией 100 показана схема, иллюстрирующая временное предсказание DIRECT при кодировании В-слоя. Если предположить, что объект движется с постоянной скоростью, то эти параметры масштабируются в соответствии с временными интервалами (как показано на фиг.1) опорных изображений, включенных в схему. Векторы движения  для кодированного блока DIRECT, исходя из вектора движения  для его смежной позиции в первом опорном изображении списка 1, вычисляются следующим образом:
B
D
В вышеуказанных уравнениях TD и TD - временные интервалы или, точнее, интервалы счетчика очередности изображения (POC) для опорного изображения, используемого вектором движения списка 0 смежного блока в изображении списка 1 по сравнению с текущим изображением и изображением списка 1 соответственно. Опорное изображение списка 1 и опорное изображение в списке 0, к которым обращаются векторы движения смежного блока в списке 1, используются в качестве двух опорных изображений режима DIRECT. Если ссылочный индекс refIdxL0 относится к долговременному опорному изображению, или DiffPicOrderCnt (pic1, pic0) равен 0, то векторы движения  и  для участка прямого режима получают следующим образом:
=mv смежного макроблока
=0.
0
1
0
1
Средство неявного предсказания с взвешиванием также использует информацию счетчика очередности изображения для определения весов. В режиме неявного предсказания с взвешиванием (WP) весовые коэффициенты не передаются в явном виде в заголовке слоя, а вместо этого их получают на основе относительных расстояний между текущим изображением и опорными изображениями. Неявный режим используют только для кодированных макроблоков и частей макроблоков с двунаправленным предсказанием в B-слоях, включая те, где используется режим DIRECT. Для неявного режима используется формула, показанная в уравнении (1), за исключением того, что в этом случае значения сдвига О и О равны нулю, а весовые коэффициенты W и W получают с использованием формул, показанных ниже в уравнениях с (6) по (10).
Эта безопасная 16-разрядная операция, не содержащая деление, реализуется следующим образом:
D
B
D
0
1
где TD- разница во времени между опорным изображением списка 1 и опорным изображением списка 0, ограниченная диапазоном [-128, 127], а TD - разница между текущим изображением и опорным изображением списка 0, ограниченная диапазоном [-128, 127]. При мультивидовом видеокодировании могут возникнуть случаи, когда TD можно считать равным нулю (это происходит, когда DiffPicOrderCnt (pic1, pic2) в Уравнении (11) становится равным нулю). В указанном случае веса W и W устанавливают равными 32.
В текущем варианте реализации мультивидового видеокодирования MVC, совместимом со стандартом MPEG-4 AVC, базовое программное обеспечение обеспечивает мультивидовое предсказание путем перемежения всех видеопоследовательностей в едином потоке. Таким образом, элемент frame_num и счетчик очередности изображения между видами соединены вместе. Это связано с рядом недостатков. Один из них состоит в том, что появляются пропуски в значении frame_num при частичном декодировании. Это может усложнить управление списками опорных изображений или сделать невозможным обнаружение ошибки на основе пропуска frame_num. Другой недостаток состоит в том, что счетчик очередности изображения не имеет реального физического смысла, что может вывести из строя средство кодирования, которое полагается на информацию счетчика очередности изображения, например, во временном режиме DIRECT или при неявном предсказании с взвешиванием. Еще один недостаток заключается в том, что указанное соединение затрудняет параллельное кодирование мультивидовых последовательностей.
Сущность изобретения
Настоящее изобретение имеет своей целью преодоление этих и других недостатков и несовершенств известного уровня техники и создание способа и устройства для отделения номера кадра и счетчика очередности изображения (POC) для мультивидового видеокодирования и видеодекодирования.
Согласно одному аспекту настоящего изобретения предлагается устройство. Это устройство включает в себя кодер для кодирования по меньшей мере одного изображения, соответствующего по меньшей мере одному из по меньшей мере двух видов мультивидового видеоконтента, для формирования результирующего битового потока. В результирующем битовом потоке по меньшей мере одна из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения отделена от по меньшей мере одного вида, которому соответствует по меньшей мере одно изображение.
Согласно другому аспекту настоящего изобретения предлагается способ. Этот способ включает в себя кодирование по меньшей мере одного изображения, соответствующего по меньшей мере одному из по меньшей мере двух видов мультивидового видеоконтента, для формирования результирующего битового потока. В результирующем битовом потоке по меньшей мере одна из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения отделена от по меньшей мере одного вида, которому соответствует по меньшей мере одно изображение.
Согласно еще одному аспекту настоящего изобретения предлагается устройство. Это устройство включает в себя кодер для кодирования по меньшей мере одного из по меньшей мере двух видов, соответствующих мультивидовому видеоконтенту. Кодер кодирует по меньшей мере один из по меньшей мере двух видов с использованием переопределенных переменных в процессе построения стандартного списка опорных изображений и переупорядочивания списка опорных изображений согласно стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Согласно следующему аспекту настоящего изобретения предлагается устройство. Это устройство включает в себя кодер для кодирования по меньшей мере одного из по меньшей мере двух видов, соответствующих мультивидовому видеоконтенту. Кодер кодирует по меньшей мере один из по меньшей мере двух видов с использованием переопределенных переменных в процессе маркировки декодированных опорных изображений согласно стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Согласно еще одному аспекту настоящего изобретения предлагается способ. Этот способ включает в себя кодирование по меньшей мере одного из по меньшей мере двух видов, соответствующих мультивидовому видеоконтенту. На этапе кодирования кодируется по меньшей мере один из по меньшей мере двух видов с использованием переопределенных переменных в процессе построения стандартного списка опорных изображений и переупорядочивания списка опорных изображений согласно стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Согласно еще одному аспекту настоящего изобретения предлагается способ. Этот способ включает в себя кодирование по меньшей мере одного из по меньшей мере двух видов, соответствующих мультивидовому видеоконтенту. На шаге кодирования кодируется по меньшей мере один из по меньшей мере двух видов с использованием переопределенных переменных в процессе маркировки декодированных опорных изображений согласно стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Вышеуказанные и другие аспекты, признаки и преимущества настоящего изобретения станут более очевидными из последующего подробного описания примерных вариантов, которые следует рассматривать вместе с сопроводительными чертежами.
Краткое описание чертежей
Настоящее изобретение станет более понятным при рассмотрении следующих примерных чертежей, на которых:
Фиг.1 - схема, иллюстрирующая временное предсказание DIRECT при кодировании B-слоя;
фиг.2А - блок-схема примерного кодера для мультивидового видеокодирования (MVC), к которому можно применить настоящее изобретение, согласно варианту настоящего изобретения;
фиг.2В - блок-схема примерного декодера для мультивидового видеокодирования (MVC), к которому можно применить настоящее изобретение, согласно варианту настоящего изобретения;
фиг.3 - блок-схема примерного способа кодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений согласно варианту настоящего изобретения;
фиг.4 - блок-схема примерного способа декодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений согласно варианту настоящего изобретения;
фиг.5 - блок-схема примерного способа кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений согласно варианту настоящего изобретения;
фиг.6 - блок-схема другого примерного способа кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений согласно варианту настоящего изобретения;
фиг.7 - блок-схема еще одного примерного способа кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений согласно варианту настоящего изобретения;
фиг.8 - блок-схема примерного способа декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений согласно варианту настоящего изобретения;
фиг.9 - блок-схема другого примерного способа декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений согласно варианту настоящего изобретения;
фиг.10 - блок-схема еще одного примерного способа декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений согласно варианту настоящего изобретения;
фиг.11 - блок-схема примерного способа кодирования мультивидового видеоконтента с использованием временного режима DIRECT и неявного предсказания с взвешиванием согласно варианту настоящего изобретения;
фиг.12 - блок-схема другого примерного способа кодирования мультивидового видеоконтента с использованием временного режима DIRECT и неявного предсказания с взвешиванием согласно варианту настоящего изобретения;
фиг.13 - блок-схема примерного способа декодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений согласно варианту настоящего изобретения;
фиг.14 - блок-схема другого примерного способа декодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений согласно варианту настоящего изобретения;
фиг.15 - блок-схема примерного способа кодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений согласно варианту настоящего изобретения;
фиг.16 - блок-схема примерного способа декодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений согласно варианту настоящего изобретения;
фиг.17 - блок-схема примерного способа кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений и вычисления номера кадра согласно варианту настоящего изобретения;
фиг.18 - блок-схема другого примерного способа кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений и вычисления номера кадра согласно варианту настоящего изобретения;
фиг.19 - блок-схема примерного способа декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений и вычисления номера кадра согласно варианту настоящего изобретения;
фиг.20 - блок-схема другого примерного способа декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений и вычисления номера кадра согласно варианту настоящего изобретения;
фиг.21 - блок-схема примерного способа кодирования мультивидового видеоконтента с использованием инициализации модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR) согласно варианту настоящего изобретения;
фиг.22 - блок-схема другого примерного способа кодирования мультивидового видеоконтента с использованием инициализации модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR) согласно варианту настоящего изобретения;
фиг.23 - блок-схема примерного способа декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR) согласно варианту настоящего изобретения; и
фиг.24 - блок-схема другого примерного способа декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR) согласно варианту настоящего изобретения.
Раскрытие изобретения
Настоящее изобретение имеет своей целью создание способа и устройства для отделения номера кадра и счетчика очередности изображения для мультивидового видеокодирования и видеодекодирования.
Данное описание иллюстрирует принципы настоящего изобретения. Опираясь на него, специалисты в данной области техники без труда смогут предложить различные конфигурации, которые (хотя они описаны или показаны здесь не в явном виде) воплощают настоящее изобретение и не будут выходить за рамки его существа и объема.
Все изложенные здесь примеры и принятый условный язык преследуют педагогические цели, помогающие читателю понять принципы настоящего изобретения и концепции, предложенные изобретателем (изобретателями) для развития современного уровня техники в данной области, причем следует понимать, что указанные принципы и концепции не сводятся к приведенным здесь частным примерам и условиям.
Кроме того, подразумевается, что все положения, излагающие принципы, аспекты и варианты настоящего изобретения, а также конкретные примеры охватывают как структурные, так и функциональные эквиваленты изобретения. Вдобавок, предполагается, что указанные эквиваленты включают в себя как известные на сегодняшний день эквиваленты, так и эквиваленты, которые могут быть разработаны в будущем, то есть любые разработанные элементы, которые выполняют аналогичную функцию независимо от их структуры.
Таким образом, специалистам в данной области техники должно быть ясно, например, что представленные здесь блок-схемы демонстрируют концептуальные иллюстративные варианты схем, воплощающих настоящее изобретение. Аналогичным образом должно быть ясно, что любые блок-схемы, диаграммы переходов из состояния в состояние, псевдокод и т.п. представляют различные процессы, которые по существу могут быть представлены на считываемом компьютером носителе и могут выполняться компьютером или процессором независимо от того, показан ли в явном виде указанный компьютер или процессор или нет.
Показанные на чертежах функции различных элементов могут быть обеспечены посредством использования специализированного аппаратного обеспечения, а также аппаратного обеспечения, способного исполнять программы, связанные с соответствующим программным обеспечением. При наличии процессора эти функции могут быть обеспечены одним специализированным процессором, одним процессором совместного использования или множеством отдельных процессоров, часть из которых может быть использована совместно. Кроме того, использование в явном виде термина «процессор» или «контроллер» не должно рассматриваться как имеющее отношение исключительно к аппаратному обеспечению, способному выполнять программы программного обеспечения, и может в неявном виде включать в себя без ограничений аппаратное обеспечение цифрового процессора сигналов (DSP), память только для считывания (ROM) для хранения программного обеспечения, память с произвольной выборкой (RAM) и энергонезависимое запоминающее устройство.
Также сюда можно включить другое аппаратное обеспечение, стандартное и/или выполненное на заказ. Аналогичным образом, любые показанные на чертежах переключатели являются только концептуальными. Их функция может быть реализована посредством операций программной логики, специализированной логики, посредством взаимодействия программного управления и специализированной логики или даже вручную, причем конкретный способ выбирается тем, кто реализует изобретение с учетом конкретного контекста.
В формуле изобретения подразумевается, что любой элемент, представленный как средство для выполнения заданной функции, включает в себя любой способ выполнения этой функции, в том числе, например: а) комбинацию схемных элементов, которые выполняют указанную функцию или b) программное обеспечение в любой форме, включая программно-аппаратные средства, микрокод или т.п. в сочетании с соответствующими схемами для выполнения указанного программного обеспечения, реализующего упомянутую функцию. Настоящему изобретению, определенному упомянутой формулой изобретения, присуще то, что функциональные возможности, обеспечиваемые различными перечисленными средствами, скомбинированы и сведены вместе таким образом, как это заявлено в формуле изобретения. Таким образом, любые средства, которые могут обеспечить указанные функциональные возможности, эквивалентны показанным здесь средствам.
Ссылка в этом описании на «один вариант» или «вариант» настоящего изобретения означает, что конкретный признак, структура, характеристика и т.д., описанные в связи с данным вариантом изобретения, входят по меньшей мере в один вариант настоящего изобретения. Таким образом, встречающиеся в различных местах по всему описанию словосочетания «в одном варианте» или «в варианте» не обязательно относятся все к одному и тому же варианту.
Используемое здесь словосочетание «синтаксис высокого уровня» относится к синтаксису, представленному в битовом потоке, который по иерархии находится над уровнем макроблоков. Например, используемый здесь синтаксис высокого уровня может относиться, но не только, к синтаксису на уровне заголовка слоя, уровне SEI (дополнительная информация о расширении), уровне набора параметров изображения, уровне набора параметров следования и уровне заголовка блока NAL.
Кроме того, используемое здесь словосочетание «не использованный ранее синтаксис» относится к синтаксису, которого еще нет в существующих и известных на сегодняшний день стандартах видеокодирования, а также относящихся к ним рекомендациям и расширениям, включая, но не только, стандарт MPEG-4 AVC.
Также используемое здесь словосочетание «информация о порядке кодирования» относится к информации, представленной в битовом видеопотоке, которая указывает порядок, в котором кодируются и/или декодируются изображения в битовом потоке. Информация о порядке кодирования может включать в себя, например, frame_num.
Вдобавок, используемое здесь словосочетание «информация о порядке вывода» относится к информации, представленной в битовом видеопотоке, которая указывает порядок, в котором выводятся изображения в битовом потоке. Информация о порядке вывода может включать себя, например, значение счетчика очередности изображения (POC).
Кроме того, очевидно, что, хотя настоящее изобретение описано здесь применительно к стандарту MPEG-4 AVC, оно не ограничивается только этим стандартом, и может быть использовано применительно к другим стандартам видеокодирования и их расширениям, включая расширения стандарта MPEG-4 AVC, оставаясь при этом в рамках существа настоящего изобретения.
Кроме того, используемые здесь взаимозаменяемые термины «перекрестное изображение» (cross-view) и «межвидовое» (inter-view) относятся к изображениям, принадлежащим к виду, отличному от текущего.
Обратимся к фиг.2А, где под ссылочной позицией 100 показан в общем виде кодер для мультивидового видеокодирования (MVC). Кодер 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.
Обратимся к фиг.2В, где под ссылочной позицией 3200 показан примерный декодер для мультивидового видеокодирования (MVC) в целом. Декодер 3200 включает в себя энтропийный декодер 3205, выход которого соединен с входом обратного квантователя 3210. Выход обратного квантователя соединен с входом обратного преобразователя 3215. Выход обратного преобразователя 3215 соединен с первым, не инвертирующим входом сумматора 3220. Выход сумматора 3220 соединен с входом деблокирующего фильтра 3225 и входом внутрикадрового предсказателя 3230. Выход деблокирующего фильтра 325 соединен с входом блока 3240 хранения опорных изображений (для вида i). Выход блока 3240 хранения опорных изображений соединен с первым входом компенсатора 3235 движения.
Выход блока 3245 хранения опорных изображений (для других видов) соединен с первым входом компенсатора 3250 рассогласования.
Вход энтропийного кодера 3205 является входом всего декодера 3200 и служит для приема остаточного битового потока. Кроме того, управляющий вход переключателя 3255 также является входом декодера 3200, предназначенным для приема синтаксиса управления для управления процессом выбора входа переключателем 3255. Кроме того, второй вход компенсатора 3235 движения является входом всего декодера 3200, предназначенным для приема векторов движения. Также входом всего декодера 3200 является второй вход компенсатора 3250 рассогласования, причем этот вход предназначен для приема векторов рассогласования.
Выход переключателя 3255 соединен со вторым, не инвертирующим входом сумматора 3220. Первый вход переключателя 3255 соединен с выходом компенсатора 3250 рассогласования. Второй вход переключателя 3255 соединен с выходом компенсатора 3235 движения. Третий вход переключателя 3255 соединен с входом внутрикадрового предсказателя 3230. Выход модуля 3260 режима соединен с переключателем 3255 для управления выбором входа, осуществляемым переключателем 3255. Выход деблокирующего фильтра 3225 является выходом всего декодера.
Согласно настоящему изобретению предлагается ряд изменений синтаксиса высокого уровня в стандарте MPEG-4 AVC для обеспечения эффективного кодирования мультивидовой видеопоследовательности. В одном варианте предлагается отделять значения номера кадра (frame_num) и счетчика очередности изображения (POC) между видами при кодировании мультивидовой видеопоследовательности. Одним из возможных применений является использование процесса декодирования и вывода, совместимого со стандартом MPEG-4 AVC, независимо для каждого вида. В одном варианте значения номера кадра и/или счетчика очередности изображения между видами отделяются путем посылки идентификатора вида для каждого из видов. Ранее было предложено просто добавлять идентификатор вида (view_id) в синтаксисе высокого уровня, поскольку информация view_id необходима для удовлетворения нескольких требований мультивидового видеокодирования (MVC), включая интерполяцию/синтез вида, произвольную выборку вида, параллельную обработку и т.д. Информация view_id также может быть полезной для специальных режимов кодирования, которые относятся только к межвидовому предсказанию. Этот идентификатор view_id используется согласно настоящему изобретению для отделения значений номера кадра и счетчика очередности изображения между видами мультивидового видеоконтента. Кроме того, в одном варианте предлагается решение для закрепления инструментальных средств кодирования в стандарте MPEG-4 AVC применительно к мультивидовому видеокодированию.
В одном варианте каждый вид будет иметь свой view_id, что позволяет многократно использовать одинаковые frame_num и POC для разных видов.
T0
T8
T4
T2
T6
T1
T3
T5
T7
(Время)
S0
I0
I8
B4
B2
B6
B1
B3
B5
B7
(Типы слоя для вида 0)
S1
B0
B8
B4
B2
B6
B1
B3
B5
B7
(Типы слоя для вида 1)
S2
P0
P8
B4
B2
B6
B1
B3
B5
B7
(Типы слоя для вида 2)
0
1
2
3
4
5
6
7
8
(frame_num)
Имеется несколько возможных способов кодирования разных видов, позволяющих параллельную обработку. Один из возможных способов заключается в таком кодировании, при котором изображения в одном виде кодируются сначала для группы GOP, после чего следуют изображения из другого вида для того же самого размера GOP, пока не будут закодированы все виды для этой группы GOP. Затем процесс повторяется для других групп GOP. В показанной выше таблице сначала кодируют изображения в виде S0, а затем изображения из вида S2, а затем из вида S1.
Другой возможный способ состоит сначала в кодировании всех изображений во всех видах, принадлежащих одному и тому же моменту времени, после чего следует кодирование другого набора изображений, принадлежащих другому моменту времени, во всех видах. Этот процесс повторяется до тех пор, пока не будут закодированы все изображения. В вышеуказанном примере сначала кодируют все изображения в виде S0, S1, S2 в момент времени Т0, после чего следует кодирование для моментов времени Т8, Т4 и т.д. Данное изобретение не зависит от порядка, в котором кодируют изображения.
Далее обсуждаются изменения в стандарте MPEG-4 AVC согласно различным вариантам настоящего изобретения. Также будет показано, каким образом одно или несколько изменений открывает возможность параллельного кодирования мультивидовых последовательностей. Однако, должно быть ясно, что, хотя настоящее изобретение в основном описано применительно к стандарту MPEG-4 AVC, оно может быть без труда реализовано специалистами в данной области техники в соответствии с расширениями стандарта MPEG-4 AVC, а также применительно к другим стандартам видеокодирования, их рекомендациям и расширениям, при сохранении исходного объема настоящего изобретения.
Процесс маркировки декодированных опорных изображений
В известном на сегодняшний день стандарте MPEG-4 AVC не разрешается иметь множество изображений с одинаковым frame_num в буфере декодированных изображений (DPB). Однако согласно одному варианту настоящего изобретения это ограничение может быть снято при мультивидовом видеокодировании (MVC), поскольку frame_num и/или счетчик очередности изображения отделены, то есть предполагается, что каждый вид имеет собственные независимые значения frame_num и/или счетчика очередности изображения. Чтобы это обеспечить, в одном варианте с декодированными изображениями связывают идентификатор view_id. Это вводит еще одну размерность для каждого изображения. Таким образом, в одном варианте процесс маркировки декодированных опорных изображений переопределяют для включения в него view_id.
Имеется два способа, с помощью которых стандарт MPEG-4 AVC обеспечивает маркировку декодированных опорных изображений. Первый способ маркировки декодированных опорных изображений в стандарте MPEG-4 AVC включает маркировку декодированных опорных изображений с использованием окна передачи переменной длительности.
Второй способ маркировки декодированных опорных изображений в стандарте MPEG-4 AVC включает маркировку декодированных опорных изображений с адаптивным управлением памятью.
Согласно различным вариантам настоящего изобретения один или несколько из этих способов видоизменяют, чтобы учесть новый view_id, который представлен в заголовке слоя. В Таблице 1 показан синтаксис заголовка слоя согласно одному варианту настоящего изобретения.
Для первого способа маркировки декодированных опорных изображений в стандарте MPEG-4 AVC необходимо задать стандартный режим, когда имеются изображения с одинаковым значением frame_num/POC, но с разными значениями view_id. Один вариант указанного стандартного режима согласно настоящему изобретению состоит в применении команд MMCO только к изображениям с тем же view_id, что и декодируемое в настоящий момент изображение.
Для второго способа маркировки декодированных опорных изображений в стандарте MPEG-4 AVC согласно настоящему изобретению предусмотрены различные варианты, когда вводятся новые команды операций управления памятью (MMCO) и/или модифицируются существующие в стандарте MPEG-4 AVC команды MMCO, чтобы учесть view_id изображения, которое должно быть маркировано. Один вариант переопределения существующих операций MMCO (когда memory_management_control_operation равен 1) включает в себя следующее:
пусть picNumX задано следующим выражением:
picNumX=CurrPicNum-(difference_of_pic_nums_minus1+1),
viewIdX=CurrViewid-(difference_of_view_Ids_minus1+1),
где picNumX, CurrPicNum, difference_of_pic_nums_minus1 определены в текущем стандарте MPEG-4 AVC, а viewIdX - идентификатор вида изображения, которое следует маркировать с использованием команды MMCO, CurrViewid - идентификатор вида текущего декодируемого изображения, difference_of_view_Ids_minus1 - разность между текущим view_id и view_id изображения, которое должно быть маркировано с использованием команды MMCO.
Вдобавок, для стандартного режима процесса маркировки декодированных опорных изображений с использованием окна передачи переменной длительности в качестве текущего изображения должны рассматриваться только изображения с одинаковым view_id с целью их маркировки как «не используемых в качестве опорных».
Обратимся к фиг.3, где в общем под ссылочной позицией 300 показан примерный способ кодирования мультивидового видеоконтента с использованием модифицированной маркировки декодированных опорных изображений, где используется первое кодирование.
Способ 300 включает в себя стартовый блок 305, который передает управление функциональному блоку 310. Функциональный блок 310 считывает файл конфигурации кодера и передает управление функциональному блоку 315. Функциональный блок 315 задает количество видов, равное N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 320 принятия решения. Блок 320 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в блок 325 принятия решения. В противном случае, управление передается блоку 399 окончания.
Блок 325 принятия решения определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 330. В противном случае управление передается функциональному блоку 350.
Функциональный блок 330 кодирует изображение j в виде i, выполняет приращение j и передает управление в блок 335 принятия решения. Блок 335 принятия решения определяет, связана ли команда операций управления памятью (MMCO) с текущим изображением. Если это так, то управление передается функциональному блоку 340. В противном случае управление переходит к функциональному блоку 355.
Функциональный блок 340 вычисляет difference_of_pic_ nums_minus1 и difference_of_view_ids_minus1 для определения изображения и view_id опорного изображения маркируемого как «не используемое в качестве опорного», и управление передается функциональному блоку 345. Функциональный блок 345 вводит текущее изображение в буфер декодированных изображений (DPB), и управление передается функциональному блоку 360. Функциональный блок 360 изменяет frame_num и счетчик очередности изображения (POC) для текущего view_id, и управление возвращается к функциональному блоку 325.
Функциональный блок 350 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается к блоку 320 принятия решения.
Функциональный блок 355 выбирает изображение с view_id, равным view_id текущего изображения, подлежащего маркировке как «не используемое в качестве опорного», для использования процессом MPEG-4 AVC с целью маркировки опорных изображений с использованием окна передачи переменной длительности, после чего управление передается функциональному блоку 355.
Обратимся к фиг.4, где в общем под ссылочной позицией 400 показан примерный способ декодирования мультивидового видеоконтента с использованием модифицированной маркировки декодированных опорных изображений.
Способ 400 включает в себя стартовый блок 405, который передает управление функциональному блоку 410. Функциональный блок 410 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC) и передает управление функциональному блоку 415. Функциональный блок 415 декодирует текущее изображение и передает управление блоку 420 принятия решения. Блок 420 принятия решения определяет, присутствует ли команда операций управления памятью (MMCO). Если это так, то управление передается функциональному блоку 425. В противном случае управление передается функциональному блоку 440.
Функциональный блок 425 выполняет синтаксический анализ difference_of_pic_nums_minus1 и difference_of_view_ids_minus1 для определения изображения и view_id опорного изображения, маркируемого как «неиспользуемое в качестве эталонного», и передает управление функциональному блоку 430. Функциональный блок 430 вводит текущее изображение в буфер декодированных изображений (DPB) и передает управление блоку 435 принятия решения. Блок 435 принятия решения определяет, все ли изображения декодированы. Если это так, то управление передается блоку 499 окончания. В противном случае, управление возвращается к функциональному блоку 410.
Функциональный блок 440 выбирает изображение с view_id, равным view_id текущего изображения, маркируемого как «не используемое в качестве опорного», для использования процессом MPEG-4 AVC для маркировки декодированных опорных изображений с использованием окна передачи переменной длительности, и передает управление функциональному блоку 430.
Обратимся к фиг.15, где в общем под ссылочной позицией 1500 показан примерный способ кодирования мультивидового видеоконтента с использованием модифицированной маркировки декодированных опорных изображений.
Способ 1500 включает в себя стартовый блок 1505, который передает управление функциональному блоку 1510. Функциональный блок 1510 считывает файл конфигурации кодера и передает управление функциональному блоку 1515. Функциональный блок 1515 задает количество видов, равное N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 1520 принятия решения. Блок 1520 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в блок 1525 принятия решения. В противном случае, управление передается блоку 1599 окончания.
Блок 1525 принятия решения определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 1530. В противном случае управление передается функциональному блоку 1550.
Функциональный блок 1530 кодирует изображение j в виде i, выполняет приращение j и передает управление в блок 1535 принятия решения. Блок 1535 принятия решения определяет, связана ли команда операций управления памятью (MMCO) с текущим изображением. Если это так, то управление передается функциональному блоку 1540. В противном случае управление переходит к функциональному блоку 1555.
Функциональный блок 1540 выполняет соответствующую команду MMCO только применительно к изображению с view_id, равным view_id текущего изображения, и передает управление функциональному блоку 1545. Функциональный блок 1545 вводит текущее изображение в буфер декодированных изображений (DPB), и управление передается функциональному блоку 1560. Функциональный блок 1560 изменяет frame_num и счетчик очередности изображения (POC) для текущего view_id, и управление возвращается к функциональному блоку 1525.
Функциональный блок 1550 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается к блоку 1520 принятия решения.
Функциональный блок 1555 выбирает изображение с view_id, равным view_id текущего изображения, подлежащего маркировке как «не используемое в качестве опорного», для использования процессом MPEG-4 AVC для маркировки опорных изображений с использованием окна передачи переменной длительности, после чего управление передается функциональному блоку 1555.
Обратимся к фиг.16, где в общем под ссылочной позицией 1600 показан примерный способ декодирования мультивидового видеоконтента с использованием модифицированной маркировки декодированных опорных изображений.
Способ 1600 включает себя стартовый блок 1605, который передает управление функциональному блоку 1610. Функциональный блок 1610 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC) и передает управление функциональному блоку 1615. Функциональный блок 1615 декодирует текущее изображение и передает управление блоку 1620 принятия решения. Блок 1620 принятия решения определяет, присутствует ли команда операций управления памятью (MMCO). Если это так, то управление передается функциональному блоку 1625. В противном случае управление передается функциональному блоку 1640.
Функциональный блок 1625 выполняет синтаксический анализ команд MMCO и выполняет команды MMCO только применительно к изображению с view_id, равным view_id текущего изображения, и передает управление функциональному блоку 1630. Функциональный блок 1630 вводит текущее изображение в буфер декодированных изображений (DPB) и передает управление блоку 1635 принятия решения. Блок 1635 принятия решения определяет, все ли изображения декодированы. Если это так, то управление передается блоку 1699 окончания. В противном случае, управление возвращается к функциональному блоку 1610.
Функциональный блок 1640 выбирает изображение с view_id, равным view_id текущего изображения, маркируемого как «не используемое в качестве опорного», для использования процессом MPEG-4 AVC для маркировки декодированных опорных изображений с использованием окна передачи переменной длительности, и передает управление функциональному блоку 1630.
Построение списков опорных изображений
Согласно варианту настоящего изобретения идентификатор view_id связывают с декодированными опорными изображениями. Соответственно, в одном варианте переопределяют процесс инициализации для опорных изображений и процесс переупорядочивания списков опорных изображений для внесения view_id.
Стандарт MPEG-4 AVC задает стандартный процесс инициализации списков опорных изображений для Р- и В-слоев. Затем этот стандартный процесс может быть модифицирован специальными командами переупорядочивания списков опорных изображений, которые присутствуют в битовом потоке.
Указанные стандартное упорядочивание и переупорядочивание опорных изображений основаны на значениях frame_num и счетчика очередности изображения. Однако, поскольку в буфере изображений декодера (DPB) разрешено присутствие изображения с одинаковым значением frame_num/POC, необходимо различать одинаковые значения frame_num/POC с использованием view_id. В одном варианте для установки списков опорных изображений изменяется один или несколько из указанных процессов.
Один вариант стандартного процесса инициализации для инициализации списков опорных изображений для Р- и В-слоев включает в себя разрешение в списке опорных изображений только временных опорных изображений и игнорирование всех изображений с view_id, который отличается от view_id текущего изображения. Временные опорные изображения следуют одному и тому же стандартному процессу инициализации, заданному в стандарте MPEG-4 AVC. Другой вариант включает в себя помещение в список только перекрестного опорного изображения, так чтобы ближайший view_id размещался в списке раньше. Другой вариант включает в себя инициализацию списков опорных изображений с использованием сначала временных опорных изображений с последующим размещением кадров перекрестного опорного изображения в некоторых фиксированных положениях, например, в конце выстраиваемых списков опорных изображений.
В одном варианте для команд переупорядочивания списков опорных изображений с целью переупорядочивания указанного списка вводятся новые команды, и/или семантику существующих команд модифицируют, чтобы учесть view_id изображения, которое должно перемещаться.
В одном варианте переопределяют переменные стандарта MPEG-4 AVC, используемые в этом процессе, как показано ниже, так что команды переупорядочивания списков опорных изображений, заданные в стандарте MPEG-4 AVC, остаются без изменений. Ниже показан один вариант, где переопределяют переменные стандарта MPEG-4 AVC, относящиеся к переупорядочиванию списков опорных изображений. В этом варианте применяется следующее:
FrameNum=frame_num*N+view_id; и
(log2_max_frame_num_minus4+4)
MaxFrameNum=2*N
Переменную CurrPicNum получают следующим образом: если field_pic_flag равно 0, то CurrPicNum устанавливают равным frame_num*N+view_id; в противном случае, если field_pic_flag равен 1, то тогда CurrPicNum устанавливают равным 2* (frame_num*N+view_id)+1.
Счетчик очередности изображения для слоя в стандарте MPEG-4 AVC определяется следующим образом:
если (picX - кадр или дополняющая пара полей)
PicOrderCnt(picX)=Min(TopFieldOrderCnt,BottomFieldOrderCnt) кадра или дополняющей пары полей picX
в противном случае, если (picX является верхним полем)
PicOrderCnt(picX)=TopFieldOrderCnt поля picX
В противном случае, если (picX является нижним полем) PicOrderCnt(picX)=BottomFieldOrderCnt поля picX
Для слоев мультивидового видеокодирования значение счетчика очередности изображения получают, как изложено ниже для процесса декодирования для построения списка опорных изображений и процесса маркировки декодированных опорных изображений:
PicOrderCnt(picX)=PicOrderCnt(picX)*N+view_id,
где N обозначает количество видов. Количество видов указывают с использованием синтаксиса высокого уровня в битовом потоке, причем оно может передаваться внутри или вне полосы. В одном варианте этот параметр включают в наборы параметров стандарта MPEG-4 AVC (например, набор параметров следования (SPS), набор параметров изображения (PPS) или набор параметров вида (VPS)).
Ниже показан другой вариант переопределения переменных стандарта MPEG-4 AVC, относящийся к переупорядочиванию списков опорных изображений. В этом варианте применяется следующее:
FrameNum=GOP_length*view_id+frame_num.
Для слоев мультивидового видеокодирования счетчик очередности изображения получают, как изложено ниже для процесса декодирования для построения списка опорных изображений и процесса маркировки декодированных опорных изображений:
PicOrderCnt(picX)=PicOrderCnt(picX)+GOP_length*view_id,
где GOP_length определяют как базовое изображение плюс все изображения, которые временно находятся между этим базовым изображением и предыдущим базовым изображением для каждого вида.
В другом варианте изменяют семантику существующих команд RPLR, так чтобы они использовали только те изображения, которые имеют тот же view_id, что и текущий вид.
Обратимся к фиг.5, где в общем под ссылочной позицией 500 показан примерный способ кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений. Способ 500 включает в себя стартовый блок 505, который передает управление функциональному блоку 510. Функциональный блок 510 считывает файл конфигурации кодера и передает управление функциональному блоку 515. Функциональный блок 515 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 520 принятия решения. Блок 520 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 525. В противном случае, управление передается блоку 599 окончания.
Функциональный блок 525 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 530. В противном случае управление передается функциональному блоку 545.
Функциональный блок 530 для межкадровых изображений включает только изображения с view_id, равным view_id текущего изображения, для использования процессором MPEG-4 AVC при инициализации списка опорных изображений, и передает управление функциональному блоку 532. Функциональный блок 532 переупорядочивает указанный список опорных изображений и передает управление функциональному блоку 535. Функциональный блок 535 кодирует изображение j в виде i, выполняет приращение j и передает управление функциональному блоку 540. Функциональный блок 540 выполняет приращение frame_num и счетчика очередности изображения (POC) и возвращает управление в блок 525 принятия решения.
Функциональный блок 545 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается к блоку 520 принятия решения.
Обратимся к фиг.6, где в общем под ссылочной позицией 600 показан виде другой примерный способ кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений.
Способ 600 включает в себя стартовый блок 605, который передает управление функциональному блоку 610. Функциональный блок 610 считывает файл конфигурации кодера и передает управление функциональному блоку 615. Функциональный блок 615 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 620 принятия решения. Блок 620 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 625. В противном случае, управление передается блоку 699 окончания.
Функциональный блок 625 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 630. В противном случае управление передается функциональному блоку 645.
Функциональный блок 630 для межкадровых изображений инициализирует списки опорных изображений только с изображениями с view_id, отличными от view_id текущего изображения, отобранными в тот же момент времени, что и текущее изображение, и упорядоченными так, чтобы ближайшие идентификаторы view_id находились в списке раньше, после чего управление передается функциональному блоку 632. Функциональный блок 632 переупорядочивает указанный список опорных изображений и передает управление функциональному блоку 635. Функциональный блок 635 кодирует изображение j в виде i, выполняет приращение j и передает управление функциональному блоку 640. Функциональный блок 640 выполняет приращение frame_num и счетчика очередности изображения (POC) и возвращает управление в блок 625 принятия решения.
Функциональный блок 645 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается к блоку 620 принятия решения.
Обратимся к фиг.7, где под ссылочной позицией 700 показан в общем виде еще один примерный способ кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений.
Способ 700 включает в себя стартовый блок 705, который передает управление функциональному блоку 710. Функциональный блок 710 считывает файл конфигурации кодера и передает управление функциональному блоку 715. Функциональный блок 715 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 720 принятия решения. Блок 520 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 725. В противном случае, управление передается блоку 799 окончания.
Функциональный блок 725 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 730. В противном случае управление передается функциональному блоку 745.
Функциональный блок 730 включает только изображения с view_id, равным view_id текущего изображения, для использования процессором MPEG-4 AVC для инициализации списка опорных изображений, и передает управление функциональному блоку 732. Функциональный блок 732 вставляет перекрестные изображения с тем же временным положением, что и текущее изображение, в конец списка опорных изображений и передает управление функциональному блоку 735. Функциональный блок 735 кодирует изображение j в виде i, выполняет приращение j и передает управление функциональному блоку 740. Функциональный блок 740 выполняет приращение frame_num и счетчика очередности изображения (POC) и возвращает управление в блок 725 принятия решения.
Функциональный блок 745 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается к блоку 720 принятия решения.
Обратимся к фиг.8, где в общем под ссылочной позицией 800 показан примерный способ декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений. Способ 800 включает в себя стартовый блок 805, который передает управление функциональному блоку 810. Функциональный блок 810 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC), а затем передает управление функциональному блоку 815. Функциональный блок 815 включает только изображения с view_id, равным view_id текущего изображения, для использования процессом MPEG-4 AVC для инициализации списка опорных изображений, а затем передает управление функциональному блоку 820. Функциональный блок 820 декодирует текущее изображение и передает управление функциональному блоку 825. Функциональный блок 825 вводит текущее изображение в буфер декодированных изображений и передает управление блоку 830 принятия решения. Блок 830 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление переходит к блоку 899 окончания. В противном случае, управление возвращается к функциональному блоку 810.
Обратимся к фиг.9, где под ссылочной позицией 900 в общем виде показан другой примерный способ декодирования видеоконтента с использованием построения модифицированного списка опорных изображений. Способ 900 включает в себя стартовый блок 905, который передает управление функциональному блоку 910. Функциональный блок 910 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC), а затем передает управление функциональному блоку 915. Функциональный блок 915 инициализирует списки опорных изображений только изображениями, у которых view_id отличается от view_id текущего изображения, отобранными в тот же момент времени, что и текущее изображение, и упорядоченными так, что ближайшие идентификаторы view_id размещаются в списки раньше, после чего управление передается функциональному блоку 920. Функциональный блок 920 декодирует текущее изображение и передает управление функциональному блоку 925. Функциональный блок 925 вводит текущее изображение в буфер декодированных изображений (DPB) и передает управление блоку 930 принятия решения. Блок 930 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление переходит к блоку 999 окончания. В противном случае, управление возвращается к функциональному блоку 910.
Обратимся к фиг.10, где под ссылочной позицией 1000 в общем виде показан еще один примерный способ декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений. Способ 1000 включает в себя стартовый блок 1005, который передает управление функциональному блоку 1010. Функциональный блок 1010 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC), а затем передает управление функциональному блоку 1015. Функциональный блок 1015 включает только изображения с view_id, равным view_id текущего изображения, для использования процессом MPEG-4 AVC для инициализации списка опорных изображений, а затем передает управление функциональному блоку 1020. Функциональный блок 1020 вставляет перекрестные изображения с тем же временным расположением, что и текущее изображение, в конец списка опорных изображений, а затем управление передается функциональному блоку 1025. Функциональный блок 1025 вводит текущее изображение в буфер декодированных изображений и передает управление блоку 1030 принятия решения. Блок 1030 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление переходит к блоку 1099 окончания. В противном случае, управление возвращается к функциональному блоку 1010.
Обратимся к фиг.17, где в общем под ссылочной позицией 1700 показан примерный способ кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений.
Способ 1700 включает в себя стартовый блок 1705, который передает управление функциональному блоку 1710. Функциональный блок 1710 считывает файл конфигурации кодера и передает управление функциональному блоку 1715. Функциональный блок 1715 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 1720 принятия решения. Блок 1720 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 1725. В противном случае, управление передается блоку 1799 окончания.
Функциональный блок 1725 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 1730. В противном случае управление передается функциональному блоку 1745.
Функциональный блок 1730 устанавливает frame_num=frame_num*N+view_id, устанавливает PicOrderCnt(picX)=PicOrderCnt(picX)*N+view_id и передает управление функциональному блоку 1735. Функциональный блок 1735 кодирует изображение j в виде i, выполняет приращение j и передает управление функциональному блоку 1740. Функциональный блок 1740 выполняет приращение frame_num и счетчика очередности изображения (POC) и возвращает управление в блок 1725 принятия решения.
Функциональный блок 1745 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается к блоку 1720 принятия решения.
Обратимся к фиг.18, где в общем под ссылочной позицией 1800 показан другой примерный способ кодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений и вычисления номера кадра.
Способ 1800 включает в себя стартовый блок 1805, который передает управление функциональному блоку 1810. Функциональный блок 1810 считывает файл конфигурации кодера и передает управление функциональному блоку 1815. Функциональный блок 1815 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 1820 принятия решения. Блок 1820 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 1825. В противном случае, управление передается блоку 1899 окончания.
Функциональный блок 1825 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 1830. В противном случае управление передается функциональному блоку 1845.
Функциональный блок 1830 устанавливает frame_num=GOP_length*view_id+frame_num, устанавливает PicOrderCnt(picX)=PicOrderCnt(picX)+GOP_length*view_id и передает управление функциональному блоку 1835. Функциональный блок 1835 кодирует изображение j в виде i, выполняет приращение j и передает управление функциональному блоку 1840. Функциональный блок 1840 выполняет приращение frame_num и счетчика очередности изображения (POC) и возвращает управление в блок 1825 принятия решения.
Функциональный блок 1845 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается к блоку 1820 принятия решения.
Обратимся к фиг.19, где в общем под ссылочной позицией 1900 показан примерный способ декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений и вычисления номера кадра. Способ 1900 включает в себя стартовый блок 1905, который передает управление функциональному блоку 1910. Функциональный блок 1910 выполняет синтаксический анализ битового потока view_id, frame_num и счетчика очередности изображения (POC) и передает управление функциональному блоку 1915. Функциональный блок 1915 устанавливает frame_num=frame_num*N+view_id, устанавливает PicOrderCnt(picX)=PicOrderCnt(picX)*N+view_id и передает управление функциональному блоку 1920. Функциональный блок 1920 декодирует текущее изображение и передает управление функциональному блоку 1925. Функциональный блок 1925 вставляет текущее изображение в буфер декодированных изображений (DPB) и передает управление блоку 1930 принятия решения. Блок 1930 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление передается блоку 1999 окончания. В противном случае управление возвращается в функциональный блок 1910.
Обратимся к фиг.20, где в общем под ссылочной позицией 2000 показан другой примерный способ декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений и вычисления номера кадра. Способ 2000 включает в себя стартовый блок 2005, который передает управление функциональному блоку 2010. Функциональный блок 2010 выполняет синтаксический анализ битового потока view_id, frame_num и счетчика очередности изображения (POC) и передает управление функциональному блоку 2015. Функциональный блок 2015 устанавливает frame_num=GOP_length*view_id+frame_num, устанавливает PicOrderCnt(picX)=PicOrderCnt(picX)+GOP_length*view_id и передает управление функциональному блоку 2020. Функциональный блок 2020 декодирует текущее изображение и передает управление функциональному блоку 2025. Функциональный блок 2025 вставляет текущее изображение в буфер декодированных изображений (DPB) и передает управление блоку 2030 принятия решения. Блок 2030 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление передается блоку 2099 окончания. В противном случае управление возвращается в функциональный блок 2010.
Обратимся к фиг.21, где в общем под ссылочной позицией 2100 показан примерный способ кодирования мультивидового видеоконтента с использованием инициализации модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR).
Способ 2100 включает в себя стартовый блок 2105, который передает управление функциональному блоку 2110. Функциональный блок 2110 считывает файл конфигурации кодера и передает управление функциональному блоку 2115. Функциональный блок 2115 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 2120 принятия решения. Блок 2120 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 2125. В противном случае, управление передается блоку 2199 окончания.
Функциональный блок 2125 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 2130. В противном случае управление передается функциональному блоку 2145.
Функциональный блок 2130 для межкадровых изображений выполняет стандартную инициализацию списка опорных изображений и передает управление функциональному блоку 2132. Функциональный блок 2132 считывает команды RPLR из файла конфигурации кодера и передает управление функциональному блоку 2134. Функциональный блок 2134 выполняет команды RPLR только применительно к изображению с view_id, равным view_id текущего изображения, и передает управление функциональному блоку 2135. Функциональный блок 2135 кодирует изображение j в виде i, выполняет приращение j, и передает управление функциональному блоку 2140. Функциональный блок 2140 выполняет приращение frame_num и счетчика очередности изображения (POC), после чего управление возвращается к блоку 2130 принятия решения.
Функциональный блок 2145 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается в блок 2120 принятия решения.
Обратимся к фиг.22, где в общем под ссылочной позицией 2200 показан другой примерный способ кодирования мультивидового видеоконтента с использованием инициализации модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR).
Способ 2200 включает в себя стартовый блок 2205, который передает управление функциональному блоку 2210. Функциональный блок 2210 считывает файл конфигурации кодера и передает управление функциональному блоку 2215. Функциональный блок 2215 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 2220 принятия решения. Блок 2220 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 2225. В противном случае, управление передается блоку 2299 окончания.
Функциональный блок 2225 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается функциональному блоку 2230. В противном случае управление передается функциональному блоку 2245.
Функциональный блок 2230 для межкадровых изображений выполняет стандартную инициализацию списка опорных изображений и передает управление функциональному блоку 2232. Функциональный блок 2232 считывает команды RPLR из файла конфигурации кодера и передает управление функциональному блоку 2234. Функциональный блок 2234 выполняет команды RPLR для изображения, заданного в view_id, указанном в команде RPLR, и передает управление функциональному блоку 2235. Функциональный блок 2235 кодирует изображение j в виде i, выполняет приращение j, и передает управление функциональному блоку 2240. Функциональный блок 2240 выполняет приращение frame_num и счетчика очередности изображения (POC), после чего управление возвращается к блоку 2230 принятия решения.
Функциональный блок 2245 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения (POC), после чего управление возвращается в блок 2220 принятия решения.
Обратимся к фиг.23, где под ссылочной позицией 2300 в общем виде показан примерный способ декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR). Способ 2300 включает в себя стартовый блок 2305, который передает управление функциональному блоку 2310. Функциональный блок 2310 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC), а затем передает управление функциональному блоку 2315. Функциональный блок 2315 вводит только изображение с view_id, равным view_id текущего изображения, для использования процессом MPEG-4 AVC для инициализации списка опорных изображений, а затем передает управление функциональному блоку 2317. Функциональный блок 2317 считывает команды RPLR и передает управление функциональному блоку 2319. Функциональный блок 2319 выполняет команды RPLR только применительно к изображению с view_id, равным view_id текущего изображения, и передает управление функциональному блоку 2320. Функциональный блок 2320 декодирует текущее изображение и передает управление функциональному блоку 2325. Функциональный блок 2325 вводит текущее изображение в буфер декодированных изображений и передает управление блоку 2330 принятия решения. Блок 2330 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление переходит к блоку 2399 окончания. В противном случае, управление возвращается к функциональному блоку 2310.
Обратимся к фиг.24, где под ссылочной позицией 2400 в общем виде показан другой примерный способ декодирования мультивидового видеоконтента с использованием построения модифицированного списка опорных изображений с помощью команд переупорядочивания списка опорных изображений (RPLR). Способ 2400 включает в себя стартовый блок 2405, который передает управление функциональному блоку 2410. Функциональный блок 2410 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC), а затем передает управление функциональному блоку 2415. Функциональный блок 2415 вводит только изображение с view_id, равным view_id текущего изображения, для использования процессом MPEG-4 AVC для инициализации списка опорных изображений, а затем передает управление функциональному блоку 2417. Функциональный блок 2417 считывает команды RPLR и передает управление функциональному блоку 2419. Функциональный блок 2419 выполняет команды RPLR для изображения, определенного в view_id, указанном в команде RPRL, и передает управление функциональному блоку 2420. Функциональный блок 2420 декодирует текущее изображение и передает управление функциональному блоку 2425. Функциональный блок 2425 вводит текущее изображение в буфер декодированных изображений и передает управление блоку 2430 принятия решения. Блок 2430 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление переходит к блоку 2499 окончания. В противном случае, управление возвращается к функциональному блоку 2410.
Временный режим DIRECT
В вышеупомянутом временном режиме DIRECT для получения вектора движения для данного макроблока используется информация счетчика очередности изображения. После отделения значения frame_num и/или счетчика очередности изображения, введения идентификатора view_id для каждого вида мультивидового видеоконтента и разрешения размещения перекрестных изображений в буфере изображения декодера и списках опорных изображений, в одном варианте указанный режим также уточняется, чтобы обеспечить корректную обработку дериваций, где перекрестные изображения относятся к изображениям с вида, который отличается от текущего вида.
Во временном режиме DIRECT имеются следующие примерные случаи:
(1) изображение в списке 1 опорных изображений и изображение в списке 0 опорных изображений имеют разные POC и одинаковый view_id;
(2) изображение в списке 1 опорных изображений и изображение в списке 0 опорных изображений имеют разные POC и разные view_id;
(3) изображение в списке 1 опорных изображений и изображение в списке 0 опорных изображений имеют одинаковый POC и разные view_id; и
(4) изображение в списке 1 опорных изображений и изображение в списке 0 опорных изображений имеют одинаковый POC и одинаковый view_id.
Один вариант получения вектора движения во временном режиме DIRECT состоит в использовании существующего способа MPEG-4 AVC, состоящего просто в игнорировании информации view_id, присутствующей в битовом потоке. В другом варианте временный режим DIRECT переопределяется для учета информации view_id вместе с информацией счетчика очередности изображения.
Неявное предсказание с взвешиванием
По аналогии с временным режимом DIRECT при неявном предсказании с взвешиванием (как обсуждалось выше) также используются значения счетчика очередности изображения для определения весов, применяемых к опорным изображениям. В результате, в одном варианте все изменения, используемые для временного режима DIRECT, будут косвенно устанавливать режим неявного предсказания с взвешиванием. В другом варианте способ получения весов в режиме неявного предсказания с взвешиванием может быть переопределен для учета информации view_id наряду с информацией счетчика очередности изображения. Например, можно вычислить значение счетчика очередности изображения, учтя информацию view_id и количество видов, как было описано выше, а затем использовать различие между значениями счетчика очередности изображения, чтобы получить требуемые значения для выполнения неявного предсказания с взвешиванием.
Обратимся к фиг.11, где в общем под ссылочной позицией 1100 показан примерный способ кодирования мультивидового видеоконтента с использованием временного режима DIRECT и неявного предсказания с взвешиванием.
Способ 1100 включает в себя стартовый блок 1105, который передает управление функциональному блоку 1110. Функциональный блок 1110 считывает файл конфигурации кодера и передает управление функциональному блоку 1115. Функциональный блок 1115 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 1120 принятия решения. Блок 1120 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 1125. В противном случае, управление передается блоку 1199 окончания.
Функциональный блок 1125 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается блоку 1132 принятия решения. В противном случае управление передается функциональному блоку 1145.
Блок 1132 принятия решения определяет, разрешается ли предсказание с взвешиванием для текущего слоя. Если это так, то управление передается функциональному блоку 1134. В противном случае, управление передается функциональному блоку 1136.
Функциональный блок 1134 игнорирует информацию view_id для предсказания с взвешиванием и передает управление функциональному блоку 1136.
Функциональный блок 1136 начинает кодирование текущего макроблока и передает управление в блок 1138 принятия решения. Блок 1138 принятия решения определяет, выбрать ли для данного макроблока режим DIRECT. Если да, то управление передается функциональному блоку 1142. В противном случае управление передается функциональному блоку 1152.
Функциональный блок 1142 игнорирует view_id для режима DIRECT и передает управление функциональному блоку 1152.
Функциональный блок 1152 кодирует текущий макроблок и передает управление блоку 1154 принятия решений. Блок 1154 принятия решений определяет, все ли макроблоки были закодированы. Если это так, то управление передается функциональному блоку 1156. В противном случае, управление возвращается в функциональный блок 1136.
Функциональный блок 1156 выполняет приращение переменной j и передает управление функциональному блоку 1140. Функциональный блок 1140 выполняет приращение frame_num и счетчика очередности изображения и возвращает управление в блок 1125 принятия решения.
Функциональный блок 1145 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения, а затем возвращает управление в блок 1120 принятия решения.
Обратимся к фиг.12, где в общем под ссылочной позицией 1200 показан другой примерный способ кодирования мультивидового видеоконтента с использованием временного режима DIRECT и неявного предсказания с взвешиванием.
Способ 1200 включает в себя стартовый блок 1205, который передает управление функциональному блоку 1210. Функциональный блок 1210 считывает файл конфигурации кодера и передает управление функциональному блоку 1215. Функциональный блок 1215 задает количество видов, равное переменной N, причем переменные i (индекс вида) и j (индекс изображения) устанавливаются равными нулю, а управление переходит к блоку 1220 принятия решения. Блок 1220 принятия решения определяет, меньше ли i, чем N. Если это так, то управление передается в функциональный блок 1225. В противном случае, управление передается блоку 1299 окончания.
Функциональный блок 1225 определяет, меньше ли j количества изображений в виде i. Если это так, то тогда управление передается блоку 1232 принятия решения. В противном случае управление передается функциональному блоку 1245.
Блок 1232 принятия решения определяет, разрешается ли предсказание с взвешиванием для текущего слоя. Если это так, то управление передается функциональному блоку 1234. В противном случае, управление передается функциональному блоку 1236.
Функциональный блок 1234 игнорирует информацию view_id для предсказания с взвешиванием и передает управление функциональному блоку 1236.
Функциональный блок 1236 приступает к кодированию текущего макроблока и передает управление в блок 1238 принятия решения. Блок 1238 принятия решения определяет, выбрать ли для данного макроблока режим DIRECT. Если да, то управление передается функциональному блоку 1242. В противном случае управление передается функциональному блоку 1252.
Функциональный блок 1242 учитывает view_id для режима DIRECT и передает управление функциональному блоку 1252.
Функциональный блок 1252 кодирует текущий макроблок и передает управление блоку 1254 принятия решений. Блок 1254 принятия решений определяет, все ли макроблоки были закодированы. Если это так, то управление передается функциональному блоку 1256. В противном случае, управление возвращается в функциональный блок 1236.
Функциональный блок 1256 выполняет приращение переменной j и передает управление функциональному блоку 1240. Функциональный блок 1240 выполняет приращение frame_num и счетчика очередности изображения и возвращает управление в блок 1225 принятия решения.
Функциональный блок 1245 выполняет приращение i, сбрасывает frame_num и счетчик очередности изображения, а затем возвращает управление в блок 1220 принятия решения.
Обратимся к фиг.13, где в общем под ссылочной позицией 1300 показан примерный способ декодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений.
Способ 1300 включает в себя стартовый блок 1305, который передает управление функциональному блоку 1310. Функциональный блок 1310 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC), а затем передает управление функциональному блоку 1315. Функциональный блок 1315 выполняет синтаксический анализ режима макроблока, вектора движения, ref_idx и передает управление блоку 1320 принятия решения. Блок 1320 принятия решения определяет, разрешено ли предсказание с взвешиванием для данного изображения. Если разрешено, то управление передается функциональному блоку 1325. В противном случае, управление передается блоку 1330 принятия решения.
Функциональный блок 1325 игнорирует информацию view_id для предсказания с взвешиванием и передает управление блоку 1330 принятия решения.
Блок 1330 принятия решения определяет, является ли макроблок макроблоком режима DIRECT. Если это так, то управление передается функциональному блоку 1355. В противном случае, управление передается функциональному блоку 1335.
Функциональный блок 1355 игнорирует информацию view_id для прямого режима и передает управление функциональному блоку 1335.
Функциональный блок 1335 декодирует текущий макроблок и передает управление блоку 1340 принятия решения. Блок 1340 принятия решения определяет, все ли макроблоки были закодированы. Если это так, то управление передается функциональному блоку 1345. В противном случае, управление возвращается в функциональный блок 1315.
Функциональный блок 1345 вставляет текущее изображение в буфер декодированных изображений и передает управление блоку 1350 принятия решения. Блок 1350 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление передается в блок 1399 окончания. В противном случае, управление возвращается в функциональный блок 1310.
Обратимся к фиг.14, где в общем под ссылочной позицией 1400 показан другой примерный способ декодирования мультивидового видеоконтента с использованием маркировки модифицированных декодированных опорных изображений.
Способ 1400 включает в себя стартовый блок 1405, который передает управление функциональному блоку 1410. Функциональный блок 1410 выполняет синтаксический анализ битового потока, view_id, frame_num и счетчика очередности изображения (POC), а затем передает управление функциональному блоку 1415. Функциональный блок 1415 выполняет синтаксический анализ режима макроблока, вектора движения, ref_idx и передает управление блоку 1420 принятия решения. Блок 1420 принятия решения определяет, разрешено ли предсказание с взвешиванием для данного изображения. Если разрешено, то управление передается функциональному блоку 1425. В противном случае, управление передается блоку 1430 принятия решения.
Функциональный блок 1425 игнорирует информацию view_id для предсказания с взвешиванием и передает управление блоку 1430 принятия решения.
Блок 1430 принятия решения определяет, является ли макроблок макроблоком режима DIRECT. Если это так, то управление передается функциональному блоку 1455. В противном случае, управление передается функциональному блоку 1435.
Функциональный блок 1455 учитывает информацию view_id для прямого режима и передает управление функциональному блоку 1435.
Функциональный блок 1435 декодирует текущий макроблок и передает управление блоку 1440 принятия решения. Блок 1440 принятия решения определяет, все ли макроблоки были закодированы. Если это так, то управление передается функциональному блоку 1445. В противном случае, управление возвращается в функциональный блок 1415.
Функциональный блок 1445 вставляет текущее изображение в буфер декодированных изображений и передает управление блоку 1450 принятия решения. Блок 1450 принятия решения определяет, все ли изображения были декодированы. Если это так, то управление передается в блок 1499 окончания. В противном случае, управление возвращается в функциональный блок 1410.
Параллельное кодирование при MVC
Из-за большого объема данных, включаемых в обработку последовательностей мультивидового видеоконтента, для многих приложений оказывается очень важным поддержание параллельного кодирования/декодирования при мультивидовом видеокодировании, особенно в случаях наличия ограничений, накладываемых режимом реального времени. В современном варианте реализации мультивидового видеокодирования, совместимом со стандартом MPEG-4 AVC, разрешено предсказание перекрестного изображения, но нет возможностей отличить временные опорные изображения от перекрестных опорных изображений. Благодаря добавлению view_id, поддерживаемому в кодере и/или декодере при мультивидовом видеокодировании, и включению идентификаторов view_id в структуру управления декодированными опорными изображениями и процесс построения списка опорных изображений, как здесь было предложено, устанавливается безусловная независимость данных в механизмах параллельной обработки, что облегчает параллельную реализацию кодека MVC.
Далее описываются некоторые из множества сопутствующих преимуществ/признаков настоящего изобретения, часть которых упоминалась выше. Например, одним из преимуществ/признаков является устройство, которое включает в себя кодер для кодирования по меньшей мере одного изображения, соответствующего по меньшей мере одному из по меньшей мере дух видов мультивидового видеоконтента, для формирования результирующего битового потока. В результирующем битовом потоке по меньшей мере одно из: информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения отделяется по меньшей мере от одного вида, которому соответствует по меньшей мере одно изображение.
Другим преимуществом/признаком является устройство, имеющее кодер, описанный выше, где этот кодер отделяет по меньшей мере одно из: информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием по меньшей мере одного существующего синтаксического элемента (frame_num и/или pic_order_cnt_lsb), соответствующего стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Еще одним преимуществом/признаком является устройство, имеющее вышеописанный кодер, где этот кодер отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида.
Следующим преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, где идентификатор вида присутствует на уровне слоев в результирующем битовом потоке.
Еще одним преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, где идентификатор вида присутствует в результирующем битовом потоке на уровне, более высоком, чем уровень макроблоков.
Кроме того, другим преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, присутствующего на более высоком уровне, как было описано выше, причем указанный кодер включает идентификатор вида в результирующий битовый поток для его использования в процессе маркировки декодированных опорных изображений.
Также еще одним преимуществом/признаком является устройство, имеющее кодер, который включает идентификатор вида в результирующий битовый поток для его использования в процессе маркировки декодированных опорных изображений, как было описано выше, где указанный кодер включает идентификатор вида в результирующий битовый поток, чтобы указать, к какому из по меньшей мере двух видов принадлежит конкретное изображение, подлежащее маркировке в процессе маркировки декодированных опорных изображений.
Кроме того, другим преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, описанного выше, где кодер использует по меньшей мере один существующий синтаксический элемент (no_output_of_prior_pics_flag, long_term_reference_flag, adaptive_ref_pic_marking_mode_flag, memory_management_control_operation, difference_of_pic_nums_minus1, long_term_pic_num, long_term_frame_idx, max_long_term_frame_idx_plus1), причем семантика по меньшей мере одного существующего синтаксического элемента переопределена для использования в переопределенном процессе маркировки декодированных опорных изображений, соответствующем стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation, для поддержки использования идентификатора вида в переопределенном процессе маркировки декодированных опорных изображений.
Вдобавок, другим преимуществом/признаком является устройство, имеющее кодер, который использует идентификатор вида и по меньшей мере один существующий синтаксический элемент, как было описано выше, где в переопределенном процессе маркировки декодированных опорных изображений маркируют только изображения с тем же идентификатором вида, что и декодируемое в настоящий момент изображение.
Кроме того, другим преимуществом/признаком является устройство, имеющее кодер, который использует идентификатор вида и по меньшей мере один существующий синтаксический элемент, как было описано выше, где применяется по меньшей мере один из процесса маркировки декодированных опорных изображений с использованием окна передачи переменной длительности и процесса маркировки декодированных опорных изображений с адаптивным управлением памятью.
Еще одним преимуществом/признаком является устройство, имеющее кодер, который использует идентификатор вида и по меньшей мере один существующий синтаксический элемент, как было описано выше, где в переопределенном процессе маркировки декодированных опорных изображений маркируют изображения, которые имеют идентификатор вида, отличный по меньшей мере от одного изображения, с использованием ранее не использованного синтаксического элемента (difference_of_view_ids_minus1).
Кроме того, другим преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, причем указанный кодер включает идентификатор вида в результирующий битовый поток для построения стандартного списка опорных изображений.
Вдобавок, другим преимуществом/признаком является устройство, имеющее кодер, который включает идентификатор вида в результирующий битовый поток для построения стандартного списка опорных изображений, как было описано выше, где в список опорных изображений запрещено добавлять межвидовые опорные изображения для процесса создания стандартного списка опорных изображений, соответствующего построению списка опорных изображений согласно по меньшей мере одному существующему синтаксическому элементу (frame_num и pic_order_cnt_lsb), существующей семантике и существующему процессу декодирования для построения списка опорных изображений с дополнительной поддержкой от идентификатора вида, существующего синтаксиса, существующей семантики и существующего процесса декодирования, соответствующих стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Вдобавок, еще одним преимуществом/признаком является устройство, имеющее кодер, который включает идентификатор вида в результирующий битовый поток для построения стандартного списка опорных изображений, как было описано выше, где в список опорных изображений добавляются только межвидовые опорные изображения для процесса создания стандартного списка опорных изображений, соответствующего построению списка опорных изображений согласно по меньшей мере одному существующему синтаксическому элементу (frame_num и pic_order_cnt_lsb) для построения стандартного списка опорных изображений с дополнительной поддержкой от идентификатора вида.
Кроме того, другим преимуществом/признаком является устройство, имеющее кодер, где к списку опорных изображений добавляются только межвидовые опорные изображения для процесса создания стандартного списка опорных изображений, описанного выше, причем межвидовые опорные изображения добавляются после временных опорных изображений.
Кроме того, другим преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и/или информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, причем указанный кодер использует по меньшей мере один существующий синтаксический элемент (ref_pic_list_reordering_flag_IO, reordering_of_pic_nums_idc, abs_diff_pic_num_minus1, long_term_pic_num, ref_pic_list_reordering_flag_l1, reordering_of_pic_nums_idc, abs_diff_pic_num_minus1, long_term_pic_num), переопределенный для использования в переопределенном процессе переупорядочивания списка опорных изображений, соответствующем стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation, для поддержки использования идентификатора вида в переопределенном процессе переупорядочивания списка опорных изображений.
Также еще одним преимуществом/признаком является устройство, имеющее кодер, который использует идентификатор вида и по меньшей мере один существующий синтаксический элемент, как было описано выше, где в переопределенном процессе переупорядочивания списка опорных изображений переупорядочивают только изображения с тем же идентификатором вида, что и декодируемое в настоящий момент изображение.
Вдобавок, другим преимуществом/признаком является устройство, имеющее кодер, где переупорядочивают только изображения с тем же идентификатором вида, что и декодируемое в настоящий момент изображение, как было описано выше, причем идентификатор вида указывает, какому из по меньшей мере двух видов соответствует конкретное изображение, подлежащее перемещению на текущий индекс в соответствующем списке опорных изображений.
Кроме того, другим преимуществом/признаком является устройство, имеющее кодер, где переупорядочивают только изображения с тем же идентификатором вида, что и декодируемое в настоящий момент изображение, как было описано выше, причем идентификатор вида требуется только тогда, когда идентификатор вида опорного изображения, подлежащего упорядочиванию, отличается по меньшей мере у одного изображения.
Также еще одним преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, причем указанный кодер использует существующий синтаксический элемент (pic_order_cnt_lsb), переопределенный для временного режима DIRECT, при этом указанный существующий синтаксис соответствует стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation, для поддержки использования идентификатора вида во временном режиме DIRECT.
Кроме того, следующим преимуществом/признаком является устройство, имеющее кодер, который использует идентификатор вида и существующий синтаксический элемент, как было описано выше, где временный режим RIRECT получают на основе по меньшей мере одного из значения счетчика очередности изображения и идентификатора вида.
Также еще одним преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, причем указанный кодер использует существующий синтаксический элемент (pic_order_cnt_lsb), существующую семантику и существующий процесс декодирования для временного режима DIRECT, при этом указанный существующий синтаксис, существующая семантика и существующий процесс декодирования соответствуют стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Вдобавок, другим преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, причем указанный кодер использует существующий синтаксический элемент (pic_order_cnt_lsb), переопределенный для неявного предсказания с взвешиванием, при этом указанный существующий синтаксис соответствует стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation, для поддержки использования идентификатора вида при неявном предсказании с взвешиванием.
Кроме того, еще одним преимуществом/признаком является устройство, имеющее кодер, который использует идентификатор вида и существующий синтаксический элемент, как было описано выше, где неявное предсказание с взвешиванием получают на основе по меньшей мере одного из значения счетчика очередности изображения и идентификатора вида.
Вдобавок, другим преимуществом/признаком является устройство, имеющее кодер, который отделяет по меньшей мере одно из информации о порядке кодирования и информации о порядке вывода по меньшей мере для одного изображения с использованием идентификатора вида, как было описано выше, причем указанный кодер использует существующий синтаксический элемент (pic_order_cnt_lsb), существующую семантику и существующий процесс декодирования для неявного предсказания с взвешиванием, при этом указанный существующий синтаксис, существующая семантика и существующий процесс декодирования соответствует стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Также еще одним преимуществом /признаком является устройство, имеющее описанный выше кодер, где этот кодер использует один из по меньшей мере двух видов, соответствующих конкретному изображению, для задания межвидовой независимости при параллельном кодировании разных видов из по меньшей мере двух видов.
Еще одним преимуществом/признаком является устройство, которое включает в себя кодер для кодирования одного из по меньшей мере двух видов, соответствующих мультивидовому видеоконтенту. Кодер кодирует по меньшей мере один из по меньшей мере дух видов, используя переопределенные переменные в процессе построения стандартного списка опорных изображений и переупорядочивание списка опорных изображений согласно стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Кроме того, другим преимуществом/признаком является устройство, которое включает в себя вышеописанный кодер, где по меньшей мере одно из количества видов и информации об идентификаторе видов используется для переопределения указанных переменных.
Другим преимуществом/признаком является устройство, которое включает в себя вышеописанный кодер, где по меньшей мере одно из длины группы изображений и информации об идентификаторе вида используется для переопределения указанных переменных.
Еще одним преимуществом/признаком является устройство, которое включает в себя кодер для кодирования по меньшей мере одного из по меньшей мере двух видов, соответствующих мультивидовому видеоконтенту. Кодер кодирует по меньшей мере один из по меньшей мере двух видов, используя переопределенные переменные в процессе маркировки декодированных опорных изображений согласно стандарту The International Organization for Standardization/International Electrotechnical Commission Moving Picture Experts Group-4 Part 10 Advanced Video Coding standard/International Telecommunication Union, Telecommunication Sector H.264 recommendation.
Кроме того, другим преимуществом/признаком является устройство, которое включает в себя вышеописанный кодер, где по меньшей мере одно из количества видов и информации об идентификаторе видов используется для переопределения указанных переменных.
Другим преимуществом/признаком является устройство, которое включает в себя вышеописанный кодер, где по меньшей мере одно из длины группы изображений и информации об идентификаторе вида используется для переопределения указанных переменных.
Следует особо отметить, что выбор конкретных синтаксических имен, в частности, ранее не использованных синтаксических имен, описанных в связи с различными новыми аспектами настоящего изобретения, носит иллюстративный характер, и, следовательно, опираясь на раскрытые здесь идеи изобретения, вместо и/или вдобавок к приведенным здесь синтаксическим именам можно также использовать другие имена и/или символы и т.д., при сохранении существа настоящего изобретения.
Эти и другие признаки и преимущества настоящего изобретения могут быть без труда выяснены специалистами в данной области техники на основе изложенных здесь идей. Также должно быть ясно, что идеи изобретения могут быть реализованы в различных вариантах аппаратного обеспечения, программного обеспечения, программно-аппаратных средств, специализированных процессоров или их комбинаций.
Наиболее предпочтительно, чтобы идеи настоящего изобретения были реализованы в виде комбинации аппаратных и программных средств. Кроме того, программное обеспечение может быть реализовано в виде прикладной программы, материально воплощенной в блоке памяти программ. Эта прикладная программа может быть загружена и реализована машиной, имеющей любую подходящую архитектуру. Предпочтительно, чтобы эта машина была реализована на компьютерной платформе, имеющей аппаратное обеспечение, например, один или несколько центральных процессоров (CPU), память с произвольной выборкой (RAM) и интерфейсы ввода/вывода (I/O). Компьютерная платформа может также включать в себя операционную систему и микрокомандный код. Описанные здесь различные процессы и функции могут либо являться частью микрокомандного кода, либо частью прикладной программы или любой их комбинации, которая может быть выполнена блоком CPU. Вдобавок, к этой компьютерной платформе могут быть подсоединены различные другие периферийные блоки, например, дополнительный блок памяти данных и печатающее устройство.
Кроме того, должно быть ясно, что, поскольку некоторые из составляющих системных компонентов и способов, показанные в сопроводительных чертежах, предпочтительно реализуются программными средствами, действительные соединения между системными компонентами или функциональными блоками обработки могут отличаться в зависимости от способа программирования, используемого при реализации настоящего изобретения. Опираясь на изложенные здесь идеи, специалисты в данной области техники смогут рассмотреть эти и аналогичные варианты реализации или конфигурации настоящего изобретения.
Хотя иллюстративные варианты были описаны здесь со ссылками на сопроводительные чертежи, должно быть ясно, что настоящее изобретение не ограничивается этими конкретными вариантами, и что специалисты в данной области техники могут внести в них различные изменения и модификации, не выходя за рамки объема или существа настоящего изобретения. Предполагается, что все указанные изменения и модификации входят в объем настоящего изобретения, изложенный в прилагаемой формуле изобретения.