Способ и устройство для составления всенаправленного изображения в выходной формат макета
METHOD AND DEVICE FOR COMPOSING OMNIDIRECTIONAL IMAGE INTO OUTPUT FORMAT OF LAYOUT

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящее изобретение заявляет приоритет предварительной патентной заявки США, серийный номер 62/332,505, поданной 6 мая 2016 г., и предварительной патентной заявки США, серийный номер 62/356,571, поданной 30 июня 2016 г. Предварительные патентные заявки США включены в настоящее описание путем отсылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное изобретение относится к видео 360 градусов. В частности, данное изобретение относится к составлению набора всенаправленных изображений, преобразованных из каждого сферического изображения в панорамный видеоряд 360 градусов, с использованием выбранного проекционного формата, в выходной формат.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Достижения в области стандартов цифрового кодирования видео привели к успеху мультимедийных систем, таких как смартфоны, цифровые телевизоры и цифровые камеры в течение последнего десятилетия. После стандартизации H.261, MPEG-1, MPEG-2, H.263, MPEG-4 и H.264 / AVC спрос на улучшение сжатия видео по-прежнему остается высоким из-за требований более высокого разрешения изображения, более высокой частоты кадров и лучшего качества видео. Поэтому разработка новых способов кодирования видео для улучшения эффективности кодирования по сравнению с H.264 / AVC всегда остается актуальной. HEVC основан на гибридной блочной архитектуре трансформационного кодирования с компенсацией движения.
Трехмерное (3D) телевидение остается  в последние годы технологической тенденцией, направленной на то, чтобы обеспечить зрителям новые ощущения от просмотра.  Среди прочего, разработаны различные технологии для 3D-просмотра, и мультивидовое видео является ключевой технологий для 3D-решений в области телевидения. Например, видео может представлять собой двухмерную (2D) среду, которая предоставляет зрителям только один вид сцены с точки зрения камеры. Тем не менее, мультивидовое видео способно предложить произвольные точки зрения динамических сцен и дает зрителям ощущение реалистичности. 3D-форматы видео могут также включать карты глубины, связанные с соответствующими изображениями текстур. Карты глубины также должны быть закодированы для рендеринга трехмерного вида или мультивида. В связи с большой потребностью в улучшении эффективности кодирования 3D-видео и мультивидовых видео, вызванной требованиями кодирования данных нескольких видов, большего разрешения изображения и лучшего качества, были предложены различные способы.
В качестве дополнения к HEVC и стандарту 3D-кодирования следующего поколения стандартизация кодирования 3D-HEVC была официально объявлена Совместной коллективной командой по разработке расширения кодирования 3D-видео (JCT-3V) в июле 2012 года и завершена после 11-й встречи JCT-3V, состоявшейся в феврале 2015 года. Для более практической поддержки авто-стереоскопического мультивидового отображения в качестве нового формата 3D-видео для 3D-HEVC был представлен формат многоканального видео и глубины (MVD). Формат MVD состоит из изображения текстуры и соответствующей карты глубины. В отличие от изображения текстуры, представляющего информацию о яркости и цветности объекта, карта глубины представляет собой изображение, содержащее информацию, относящуюся к расстоянию объектов от захваченной камерой плоскости, и обычно используется для рендеринга виртуального вида в качестве невизуальной информации.
Виртуальная реальность (VR) со шлемами виртуальной реальности (HMD) связана с различными приложениями. Возможность показывать пользователю широкий охват поля зрения может быть использована для визуальных впечатлений с погружением. Реалистичная среда должна захватываться во всех направлениях, что приводит к всенаправленному видео, соответствующему сфере просмотра. Благодаря достижениям в камерах и HMD доставка VR-контента вскоре может стать ограничением из-за высокой скорости передачи, необходимой для представления такого контента. Поскольку всенаправленные видео часто имеют разрешение 4K или выше, сжатие имеет решающее значение в уменьшении скорости передачи. Предоставляемые всенаправленные видео являются равнопромежуточной проекцией. На фиг. 1 показан пример изображения всенаправленного видео (известного как «Hangpai_2») в формате равнопромежуточной проекции. Хотя исходное изображение - полноцветное, на фиг. 1 показана  черно-белая версия, поскольку черно-белое изображение является достаточным для иллюстрации настоящего изобретения.
Равнопромежуточный формат может быть преобразован в различные форматы, как показано на фиг. 2: (a) cubemap, (b) Cubemap_32, (c) Cubemap_180, (d) Plane_poles, (e) Plane_poles_6, (f) Plane_poles_cubemap, (g) Plane_cubemap, (h) Plane_cubemap_32, (i) Flat_fixed, (j) 3D видео 180 градусов (т. e., 180-3D) и (k) Cylindermap / Cylindrical. Изображения на фиг. 2а-2i основаны на изображении на фиг. 1.
На фиг. 3 показан пример преобразования формата равнопромежуточной проекции в кубический формат с использованием преобразования 310 проекции, где изображения, отмеченные как 1-6, соответствуют изображениям на шести гранях куба для представления видео 360 градусов. Четыре часто используемых макета, т. е. макет 410 1x6, макет 420 2x3, макет 430 3x2 430 и макет 440 6x1) показаны на фиг.4. В каждом макете изображения из 6 граней собраны в одно прямоугольное изображение. На фиг. 5 показано сравнение геометрии между равнопромежуточным форматом и кубическим форматом.равнопромежуточная геометрия 510 и кубическая геометрия 520 показаны на фиг. 5.Изображение 512 является примером равнопромежуточного формата, а изображение 522 является примером кубического формата.
В существующем подходе для преобразования кубических граней в выходной формат всегда используется один и тот же выходной формат макета, и шесть граней назначаются выходному формату макета фиксированным образом. Хотя фиксированное составление является простым, оно не позволяет использовать другой формат макета для удовлетворения потребностей пользователя. Кроме того, после того, как кубические грани преобразуются в выходной формат макета, преобразованные выходные изображения часто сжимаются, чтобы сократить требуемое пространство. Выбранный выходной формат макета и фиксированное составление могут оказаться неэффективными с точки зрения сжатия.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Раскрыты способы и устройства обработки всенаправленных изображений. В соответствии с одним из способов принимается текущий набор всенаправленных изображений, преобразованных из каждого сферического изображения в панорамном видеоряде 360 градусов с использованием выбранного проекционного формата, где выбранный проекционный формат относится к группе проекционных форматов, содержащей кубический формат, и текущий набор всенаправленных изображений с кубическим форматом состоит из шести кубических граней. Если выбранный проекционный формат соответствует кубическому формату, сигнализируется один или более синтаксических элементов составления для составления текущего набора всенаправленных изображений в текущее изображение кубической карты (cubemap). Затем кодированные данные предоставляются в битовом потоке, включающем в себя один или более синтаксических элементов составления, для текущего набора всенаправленных изображений.
Группа проекционного формата может дополнительно содержать равнопромежуточный формат, формат 180-3D и формат цилиндрической карты (cylindermap). Если текущий набор всенаправленных изображений находится в равнопромежуточном формате, текущий набор всенаправленных изображений преобразуется в формат кубических граней (cubicface), синтаксические элементы составления сигнализируются для преобразованного текущего набора всенаправленных изображений путем обработки преобразованного текущего набора всенаправленных изображений как изображения формата кубических граней.
Синтаксические элементы составления могут содержать текущий кубический тип, связанный с текущим изображением кубической карты, и текущий кубический тип принадлежит к набору текущего выходного формата макета, состоящему из макета кубической карты 1х6, 2х3, 3х2 и 6х1. Синтаксические элементы составления могут дополнительно содержать индексы составления макета, где каждый индекс составления макета связывает одну кубическую грань текущего набора всенаправленных изображений с одним местоположением текущего изображения кубической карты. Один индекс составления макета может сигнализироваться для каждой кубической грани текущего набора всенаправленных изображений, за исключением последней кубической грани текущего набора всенаправленных изображений. Каждый индекс составления макета может быть закодирован с использованием кодовой таблицы с количеством записей, равным количеству оставшихся кубических граней для составления.  В другом варианте осуществления каждый индекс составления макета может быть закодирован с использованием кодовой таблицы с количеством записей, равным количеству кубических граней для составления.
В другом варианте осуществления синтаксические элементы составления могут дополнительно содержать индексы поворота, где каждый индекс поворота указывает угол поворота для одной кубической грани текущего набора всенаправленных изображений в одном местоположении текущего изображения кубической карты. Один индекс поворота может сигнализироваться для каждой кубической грани текущего набора всенаправленных изображений. Каждый индекс поворота кодируется с использованием кодовой таблицы, чтобы указать один угол поворота, выбранный из набора углов поворота, соответствующий {0° и 90°}, {0°, +90°, -90° и 180°} или {0°, 90°, 180° и 270°}.
Синтаксические элементы составления далее содержат флаг макета по умолчанию, указывающий, используется ли изображение кубической карты по умолчанию для текущего набора всенаправленных изображений с текущим кубическим типом, и где индексы составления макета и индексы поворота сигнализируются для текущего набора всенаправленных изображений, только если флаг макета по умолчанию указывает, что изображение в кубической карте по умолчанию не используется для текущего набора всенаправленных изображений. Если флаг макета по умолчанию указал, что для текущего набора всенаправленных изображений используется изображение кубической карты по умолчанию, для текущего набора всенаправленных изображений используются индексы составления макета по умолчанию и индексы поворота по умолчанию.
Выходной формат макета, используемый для текущего набора всенаправленных изображений, может сигнализироваться на уровне последовательности, уровне вида, уровне изображения, уровне среза, уровне набора параметров последовательности (SPS), уровне набора видеопараметров (VPS) или уровне набора прикладных параметров (APS) в битовом потоке для панорамного видеоряда 360 градусов. Синтаксические элементы составления могут сигнализироваться на уровне последовательности, уровне вида, уровне изображения, уровне среза, SPS, VPS или APS в битовом потоке для панорамного видеоряда 360 градусов.
Синтаксические элементы составления могут сигнализироваться в порядке прогноза на основе одного или более опорных синтаксических элементов составления. В одном варианте осуществления множество наборов одного или более опорных синтаксических элементов составления сигнализируются на уровне последовательности, уровне вида или уровне изображения в битовом потоке панорамного видеоряда 360 градусов, и флаг сигнализируется на уровне среза или уровне изображения для выбора синтаксических элементов составления из множества наборов одного или более опорных синтаксических элементов составления для текущего набора всенаправленных изображений. В другом варианте осуществления опорные синтаксические элементы составления могут быть выбраны в порядке прогноза с помощью одного или более первых синтаксических элементов составления из предыдущего изображения, среза или кадра.
КРАТКОЕ РАСКРЫТИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
На фиг. 1 показан пример изображения всенаправленного видео (известного как «Hangpai_2») в формате равнопромежуточной проекции.
На фиг. 2 показаны различные примеры выходных форматов макета, включая (a) cubemap, (b) Cubemap_32, (с) Cubemap_180, (d) Plane_poles, (e) Plane_poles_6, (f) Plane_poles_cubemap, (g) Plane_cubemap, (h) Plane_cubemap_32, (i) Flat_fixed, (j) 180 градусов 3D видео (т. е., 180-3D) и (k) Cylindermap / Cylindrical.
На фиг. 3 показан пример преобразования формата равнопромежуточной проекции в кубический формат с использованием преобразования проекции, где изображения, отмеченные как 1-6, соответствуют изображениям на шести кубических гранях для представления видео 360 градусов.
На фиг. 4 показаны четыре обычно используемых макета: макет 1x6, макет 2x3, макет 3x2 и макет 6x1.
На фиг. 5 показано сравнение геометрии между равнопромежуточным форматом и кубическим форматом.
На фиг. 6 показан пример составления шести кубических граней в макет 1х6.
На фиг. 7 показан пример составления шести кубических граней в макет 2x3.
На фиг. 8 показан пример составления шести кубических граней в макет 1x6, где (a) грань № 5 назначена на первую позицию макета на шаге 1, (b) грань № 4 назначена на вторую позицию макета на шаге 2, и (с) грань № 6 назначена на третью позицию макета на шаге 3.
На фиг. 9 показан пример составления шести кубических граней в макет 1x6, где кубическая грань № 1 назначается с (поворотом -90 градусов) на четвертую позицию в выходном макете.
На фиг. 10 показан пример прогнозирования поворота, где опорный выходной макет используется для прогнозирования целевого выходного макета.
На фиг. 11 показан пример обозначения шести кубических граней индексов кубических граней и соответствующее равнопромежуточное изображение.
На фиг. 12 показан пример порядка позиции в каждом кубическом макете для макета 1x6, макета 2x3, макета 3x2 и макета 6x1.
На фиг. 13 показан пример макета по умолчанию для шести кубических граней и целевой кубический макет 3×2.
На фиг. 14 показан пример относительного местоположения кубических граней по умолчанию и их индексы для индекса кубической грани и соответствующей равнопромежуточной проекции.
На фиг. 15 показан примерный порядок позиций в каждом кубическом макете для макета 1x6, макета 2x3, макета 3x2 и макета 6x1.
На фиг. 16 показаны примеры другого заранее заданного макета для (a) другого кубического макета 6x1, (b) другого кубического макета 3x2, (с) другого кубического макета 2x3 и (d) другого кубического макета 1x6.
На фиг. 17 показана примерная блок-схема системы, обрабатывающей всенаправленные изображения, в соответствии с вариантом осуществления настоящего изобретения.
ПОДРОБНОЕ РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Следующее раскрытие относится к наилучшему варианту осуществления изобретения. Это раскрытие подготовлено с целью иллюстрации общих принципов изобретения и не является ограничивающим. Объем изобретения наилучшим образом определяется формулой изобретения.
В одном из аспектов настоящего изобретения набор различных выходных макетов заранее определен, и явный флаг передается в битовом потоке на уровне последовательности, уровне вида, уровне изображения, уровне среза, уровне набора параметров последовательности (SPS), уровне набора видеопараметров (VPS) или уровне набора прикладных параметров (APS) для выбора выходного макета из набора различных выходных макетов.Например, набор различных выходных макетов может включать в себя по меньшей мере два выходных формата макета, выбранных из группы, содержащей макет cubemap, макет cubemap_32, макет cubemap_180, макет plane_poles, макет plane_poles_6, макет plane_poles_cubemap, макет plane_cubemap, макет plane_cubemap_32, макет flat_fixed, макет cubemap_1x6, макет cubemap_2x3, макет cubemap_3x2 и макет cubmap_6x1.
В другом примере набор выходных форматов макетов включает только макет cubemap_1x6, макет cubemap_2x3, макет cubemap_3x2 и макет cubmap_6x1.Флаг передается для выбора выходного макета среди макетов cubemap_1x6, cubemap_2x3, cubemap_3x2 и cubmap_6x1.
На фиг. 6 и фиг. 7 показан пример составления шести кубических граней на двух возможных макетах, где шесть кубических граней составляются на макете 1x6 на фиг. 6, и шесть кубических граней составляются на макете 2x3 на фиг. 7.
В соответствии с одним из способов по настоящему изобретению, шесть кубических граней могут быть назначены на возможный макет в соответствии со следующими шагами:
Шаг 1:Передача (на стороне кодировщика) / получение (на стороне декодировщика) флага для назначения одной из шести кубических граней на первую позицию в макете.На фиг. 8a показан пример назначения грани № 5 на первую позицию макета 1x6.
Шаг 2:Передача / получение флага для назначения одной из оставшихся пяти кубических граней на вторую позицию в макете.На фиг. 8b показан пример назначения грани № 4 на вторую позицию макета 1x6.
Шаг 3:Передача / получение флага для назначения одной из оставшихся четырех кубических граней на третью позицию в макете.На фиг.8с показан пример назначения грани № 6 на третью позицию макета 1x6.
Шаг 4: Передача / получение флага для назначения одной из оставшихся трех кубических граней на четвертую позицию в макете.
Шаг 5: Передача / получение флага для назначения одной из оставшихся двух кубических граней на пятую позицию в макете.
Шаг 6:Назначение последней оставшейся грани на конечную позиции в макете. Нет необходимости сигнализировать флаг на последнюю грань, поскольку остается только одна грань.
В предложенном выше способе флаг может передаваться с использованием усеченного унарного кода, как показано в Таблице 1.На шаге 1 первый флаг кодируется с использованием усеченного унарного кода с размером 6 для выбора одной из шести кубических граней.На шаге 2 второй флаг кодируется с использованием усеченного унарного кода с размером 5 для выбора одной из пяти оставшихся кубических граней и т. д.
Таблица 1.
n (неотрицательный)
n (строго положительный)
Усеченный унарный код
Альтернатива
0
1
0
1
1
2
10
01
2
3
110
001
3
4
1110
0001
4
5
11110
00001
5
6
11111
00000
В другом варианте осуществления поворот грани также определяется для составления кубической грани в одном выходном макете.Например, шесть кубических граней назначены на возможные макеты в соответствии со следующими шагами:
Шаг 1:Передача (на стороне кодировщика) / получение (на стороне декодировщика) флага для назначения одной из шести кубических граней на первую позицию в макете.Передача / получение другого флага для определения поворота выбранной грани.
Шаг n (n от 2 до 5):Передача / получение флага для назначения одной из оставшихся (6-n+1) кубических граней на n-ю позицию в макете.Передача / получение другого флага для определения поворота выбранной грани.
Шаг 6: Назначение последней оставшейся грани на конечную позиции в макете. Передача / получение другого флага для определения поворота выбранной грани.
Поворот этих шести граней может также быть передан после назначения шести граней, как показано на следующем шаге:
Шаг 1-a:Передача (на стороне кодировщика) / получение (на стороне декодировщика) флага для назначения одной из шести кубических граней на первую позицию в макете.
Шаг n-a (n от 2 до 5):Передача / получение флага для назначения одной из оставшихся (6-n+1) кубических граней на n-ю позицию в макете.
Шаг 6-a:Назначение последней оставшейся грани на конечную позиции в макете.
Шаг n-b (n от 1 до 6):Передача / получение флага для определения поворота n-й грани.
С другой стороны, назначение грани и поворота этой грани также может быть объединено как один флаг, как показано на следующих шагах:
Шаг 1:Передача (на стороне кодировщика) / получение (на стороне декодировщика) флага для назначения одной из шести кубических граней и ее поворота на первую позицию в макете.
Шаг n (n от 2 до 5):Передача / получение флага для назначения одной из оставшихся (6-n+1) кубических граней и ее поворота на n-ю позицию в макете.
Шаг 6: Назначение последней оставшейся грани на конечную позиции в макете. Передача / получение флага для определения поворота шестой грани.
Поворот грани может быть выбран из множества {0 градусов, 90 градусов}.В другом варианте осуществления поворот грани также может быть выбран из множества {0 градусов, 90 градусов, 180 градусов и 270 градусов} или {0 градусов, 90 градусов, -90 градусов, 180 градусов}.Например, на шаге 4 флаг передается или принимается для назначения кубической грани № 1 с поворотом в четвертую позицию на макете.В этом примере после шагов 1-3 оставшиеся грани - это {грань № 1, грань № 2 и грань № 3}.Основываясь на следующей усеченной унарной таблице, индекс 0 (неотрицательный) / индекс 1 (строго положительный) передается с кодом «0» для назначения грани № 1 на четвертую позицию, как показано в Таблице 2, и кодом поворота «10», показанным в Таблице 3 (или код поворота «1», показанный в Таблице 4), чтобы определить поворот на -90 градусов.
Таблица 2.
n (неотрицательный)
n (строго положительный)
Усеченный унарный код
Альтернатива
0
1
0
1
1
2
10
01
2
3
11
00
Таблица 3.
n (неотрицательный)
Угол поворота Тип 1
Усеченный унарный код
Альтернатива
0
0 градусов
0
1
1
-90 градусов
10
01
2
+90 градусов
110
001
3
+180 градусов
111
000
Таблица 4.
n (неотрицательный)
Угол поворота Тип 1
Усеченный унарный код
Альтернатива
0
0 градусов
0
1
1
-90 градусов
1
0
На фиг. 9 показан пример назначения кубической грани № 1 (с поворотом -90 градусов) в четвертую позицию на макете.
Вышеуказанный предложенный способ для сигнализации равнопромежуточного формата на макет может быть передан в битовом потоке на уровне последовательности, уровне вида, уровне изображения, уровне среза, уровне SPS, VPS или APS.В другом варианте осуществления N наборов форматов составления для равнопромежуточной проекции для выходного макета сигнализируются на уровне последовательности, уровне вида, уровне изображения, уровне SPS, VPS или APS, как показано ниже:
Формат составления:
Индекс 1: {грань № 1 (угол поворота), грань № 2 (угол поворота), грань № 3 (угол поворота), грань № 4 (угол поворота), грань № 5 (угол поворота), грань № 6 (угол поворота)}
Индекс 2: {грань № 1 (угол поворота), грань № 2 (угол поворота), грань № 3 (угол поворота), грань № 5 (угол поворота), грань № 4 (угол поворота), грань № 6 (угол поворота)}
……
Индекс N: {грань № 2 (угол поворота), грань № 3 (угол поворота), грань № 1 (угол поворота), грань № 5 (угол поворота), грань № 4 (угол поворота), грань № 6 (угол поворота)}
Затем флаг далее передается на уровне среза или изображения для выбора одного формата составления из {Индекс 1, Индекс 2, …, Индекс N}.
В другом варианте осуществления формат составления может быть спрогнозирован из другого формата составления.Например, следующий опорный формат составления может быть выбран из N наборов форматов составления, передаваемых на уровне последовательности, уровне вида или уровне изображения. В еще одном варианте осуществления формат составления из предыдущего изображения / среза / кадра может быть использован в качестве формата составления для прогнозирования текущего формата составления. Опорный формат составления {грань № 1, грань № 2, грань № 3, грань № 4, грань № 5, грань № 6} известен и используется для прогнозирования текущего формата составления.
Предположим, что целевой формат составления - это {грань № 1, грань № 2, грань № 4, грань № 3, грань № 5, грань № 6}, чтобы спрогнозировать целевой формат составления из {грань № 1, грань № 2, грань № 3, грань № 4, грань № 5, грань № 6}, алгоритм прогнозирования может быть показан следующим образом:
Шаг 1:Оставшиеся грани, согласно порядку, следующие: {грань № 1, грань № 2, грань № 3, грань № 4, грань № 5, грань № 6}.Индекс 0 передается на выбранную грань № 1 в первую позицию в макете {грань № 1, ---, ---, ---, ---, ---}.
Шаг 2:Оставшиеся грани, согласно порядку, следующие: {грань № 2, грань № 3, грань № 4, грань № 5, грань № 6}.Индекс 0 передается на выбранную грань № 2 во вторую позицию в макете {грань № 1, грань № 2, ---, ---, ---, ---}.
Шаг 3:Оставшиеся грани, согласно порядку, следующие: {грань № 3, грань № 4, грань № 5, грань № 6}.Индекс 1 передается на выбранную грань № 4 в третью позицию в макете {грань № 1, грань № 2, грань № 4, ---, ---, ---}.
Шаг 4: Оставшиеся грани, согласно порядку, следующие: {грань № 3, грань № 5, грань № 6}.Индекс 0 передается на выбранную грань № 3 в четвертую позицию в макете {грань № 1, грань № 2, грань № 4, грань № 3, ---, ---}.
Шаг 5: Оставшиеся грани, согласно порядку, следующие: {грань № 5, грань № 6}.Индекс 0 передается на выбранную грань № 5 в пятую позицию в макете {грань № 1, грань № 2, грань № 4, грань № 3, грань № 5, ---}.
Шаг 6:Оставшаяся грань - {грань № 6}, и она выбирается как последняя позиция в макете {грань № 1, грань № 2, грань № 4, грань № 3, грань № 5, грань № 6}.
Поворот также может быть спрогнозирован из опорного макета. На фиг. 10 показан пример прогнозирования поворота, где изображение 1010 соответствует шести кубическим граням, изображение 1020 соответствует опорному макету, а изображение 1030 соответствует целевому макету. На фиг. 10 первые три позиции в целевом макете поворачиваются.
В приведенном выше примере следующие шаги могут быть применены для прогнозирования целевого макета из опорного макета.В этом примере опорный макет - это {грань № 1 (0), грань № 2 (0), грань № 3 (0), грань № 4 (0), грань № 5 (0), грань № 6 (0)}, а целевой макет - {грань № 1 (-90), грань № 2 (-90), грань № 3 (-90), грань № 5 (0), грань № 4 (0), грань № 6 (0)}, где (0) обозначает 0 градусов, и (-90) обозначает -90 градусов.
Шаг 1:Оставшиеся грани, согласно порядку, следующие: {грань № 1 (0), грань № 2 (0), грань № 3 (0), грань № 4 (0), грань № 5 (0), грань № 6 (0)}.Индекс 0 передается на выбранную грань № 1 в первую позицию в макете {грань № 1, ---, ---, ---, ---, ---}. Усеченный унарный код с размером 6, как показано в Таблице 5, может быть использован для кодирования Индекса 0, где строка выбранного кода обозначена полужирным курсивом.Разность угла (-90) передается далее, и окончательный угол реконструируется следующим образом: опорный угол + разность угла = (0) + (-90) = (-90). Разность угла (-90) может быть закодирована с использованием либо кода поворота Типа 1 в Таблице 6, либо кода поворота Типа 2 (Таблица 4) в Таблице 7, где строка выбранного кода указана полужирным курсивом.
Таблица 5.
n (неотрицательный)
n (строго положительный)
Усеченный унарный код
Альтернатива
0
1
0
1
1
2
10
01
2
3
110
001
3
4
1110
0001
4
5
11110
00001
5
6
11111
00000
Таблица 6.
n (неотрицательный)
Угол поворота Тип 1
Усеченный унарный код
Альтернатива
0
0 градусов
0
1
1
-90 градусов
10
01
2
+90 градусов
110
001
3
+180 градусов
111
000
Таблица 7.
n (неотрицательный)
Угол поворота Тип 1
Усеченный унарный код
Альтернатива
0
0 градусов
0
1
1
-90 градусов
1
0
Шаг 2:Оставшиеся грани, согласно порядку, следующие: {грань № 2 (0), грань № 3 (0), грань № 4 (0), грань № 5 (0), грань № 6 (0)}.Индекс 0 передается на выбранную грань № 2 во вторую позицию в макете {грань № 1, грань № 2, ---, ---, ---, ---}.Далее передается разность угла (-90). В этом случае усеченный унарный код с размером 5, как показано в Таблице 8, может быть использован для кодирования Индекса 0, где строка выбранного кода обозначена полужирным курсивом.
Таблица 8.
n (неотрицательный)
n (строго положительный)
Усеченный унарный код
Альтернатива
0
1
0
1
1
2
10
01
2
3
110
001
3
4
1110
0001
4
5
1111
0000
Шаг 3:Оставшиеся грани, согласно порядку, следующие: {грань № 3 (0), грань № 4 (0), грань № 5 (0), грань № 6 (0)}.Индекс 1 передается на выбранную грань № 3 в третью позицию в макете {грань № 1, грань № 2, грань № 3, ---, ---, ---}.Далее передается разность угла (-90). В этом случае усеченный унарный код с размером 4, как показано в Таблице 9, может быть использован для кодирования Индекса 0, где строка выбранного кода обозначена полужирным курсивом.
Таблица 9.
n (неотрицательный)
n (строго положительный)
Усеченный унарный код
Альтернатива
0
1
0
1
1
2
10
01
2
3
110
001
3
4
111
000
Шаг 4: Оставшиеся грани, согласно порядку, следующие: {грань № 4 (0), грань № 5 (0), грань № 6 (0)}.Индекс 1 передается на выбранную грань № 5 в четвертую позицию в макете {грань № 1, грань № 2, грань № 3, грань № 5, ---, ---}.Далее передается разность угла (0). В этом случае усеченный унарный код с размером 3, как показано в Таблице 10, может быть использован для кодирования Индекса 1, где строка выбранного кода обозначена полужирным курсивом.
Таблица 10.
n (неотрицательный)
n (строго положительный)
Усеченный унарный код
Альтернатива
0
1
0
1
1
2
10
01
2
3
11
00
Шаг 5:Оставшиеся грани, согласно порядку, следующие: {грань № 4 (0), грань № 6 (0)}.Индекс 0 передается на выбранную грань № 4 в пятую позицию в макете {грань № 1, грань № 2, грань № 3, грань № 5, грань № 4, ---}.Далее передается разность угла (0). В этом случае усеченный унарный код с размером 2, как показано в Таблице 11, может быть использован для кодирования Индекса 0, где строка выбранного кода обозначена полужирным курсивом.
Таблица 11.
n (неотрицательный)
n (строго положительный)
Усеченный унарный код
Альтернатива
0
1
0
1
1
2
1
0
Шаг 6:Оставшаяся грань - {грань № 6}, и она выбирается как последняя позиция в макете {грань № 1, грань № 2, грань № 4, грань № 3, грань № 5, грань № 6}.Далее передается разность угла (0).
Например, индекс может быть сначала передан на уровне изображения / среза / кадра, чтобы выбрать один макет составления в качестве опорного макета.Способ прогнозирования затем применяется для прогнозирования целевого макета для текущего изображения / среза / кадра из опорного макета.В другом примере опорный макет может быть унаследован от предыдущего кодированного изображения / среза / кадра, и способ прогнозирования затем применяется для прогнозирования целевого макета для текущего изображения / среза / кадра.
В вышеуказанных предложенных способах усеченный унарный код также может быть заменен на другой способ энтропийного кодирования.Например, один из следующих способов энтропийного кодирования может быть применен в этом изобретении.
- ae(v): контекстно-адаптивный синтаксический элемент арифметического энтропийного кодирования.
- b(8): байт с любой комбинацией битовой строки (8 бит). Парсинг для этого дескриптора указывается возвращаемым значением функции read_bits(8).
- f(n): фиксированная битовая строка с использованием n записанных бит (слева направо), первый бит - слева. Парсинг для этого дескриптора указывается возвращаемым значением функции read_bits(n).
- se(v): синтаксический элемент с целым числом со знаком 0-го порядка экспоненциального кода Голомба, первый бит - слева.
- u(n): целое число без знака с использованием n бит. Когда n - это «v» в таблице синтаксиса, количество бит варьируется в зависимости от значения других синтаксических элементов. Парсинг дескриптора указывается возвращаемым значением функции read_bits (n), интерпретируемым как двоичное представление целого числа без знака с самым значимым битом, записанным первым.
- ue(v): синтаксический элемент с целым числом без знака 0-го порядка экспоненциального кода Голомба, первый бит слева.
Примерная конструкция синтаксиса для сигнализации макета в соответствии с вариантом осуществления настоящего изобретения показана следующим образом:
Таблица 12.
layout_mapping_extension() {
Дескриптор
…
for (i=0; i<num_of_layout_faces-1; i++) {
layout_face[i]
ue(v)
}
…
}
В вышеуказанной таблице синтаксиса синтаксис num_of_layout_faces обозначает общее число граней в макете. Синтаксис layout_face[i] обозначает индекс в оставшихся (num_of_layout_faces - i) гранях в качестве соответствующей грани для i-й позиции в макете, и значение layout_face[i] должно быть в диапазоне от 0 до (num_of_layout_faces - i - 1), включительно.Предполагается, что синтаксис layout_face[num_of_layout_faces-1] равен последней оставшейся грани.
Примерная конструкция синтаксиса для сигнализации макета с поворотом в соответствии с вариантом осуществления настоящего изобретения показана следующим образом:
Таблица 13.
layout_mapping_extension() {
Дескриптор
…
for (i=0; i<num_of_layout_faces-1; i++) {
layout_face[i]
ue(v)
layout_rotation[i]
ue(v)
}
layout_rotation[num_of_layout_faces-1]
ue(v)
}
В вышеуказанной таблице синтаксиса синтаксис num_of_layout_faces обозначает индекс в оставшихся num_of_layout_faces - i гранях в качестве соответствующей грани для i-й позиции в макете, и значение layout_face[i] должно быть в диапазоне от 0 до (num_of_layout_faces - i - 1), включительно.Предполагается, что синтаксис layout_face[num_of_layout_faces-1] равен последней оставшейся грани.Синтаксис layout_face[i] обозначает соответствующий угол поворота грани для i-ой позиции в макете, как указано в Таблице 14 или Таблице 15, и значение layout_face[i] должно быть в диапазоне от 0 до 3 (или 1), включительно.
Таблица 14.
layout_rotation[i]
Угол поворота
0
0°
1
-90°
2
+90°
3
+180°
Таблица 15.
layout_rotation[i]
Угол поворота
0
0°
1
-90°
В соответствии с другим вариантом осуществления примерная конструкция синтаксиса для сигнализации макета показана в Таблице 16a и Таблице 16b, где дополнительный синтаксис сигнализируются для информации перестановки и поворота этих шести кубических граней.Относительное положение кубических граней по умолчанию. Первоначальный массив кубических граней равен {Левая, Передняя, Правая, Задняя, Верхняя, Нижняя}. Обозначение индексов кубических граней и соответствующей равнопромежуточной проекции показано на фиг. 11.
Таблица 16а.
Extension_data(i) {
Дескриптор
While (next_bits(32) == extension_start_code) {
extension_start_code
f(32)
if (i == 0) {
if (next_bits(4) == ‘0010’)
sequence_display_extension()
else if (next_bits(4) == ‘0011’)
temporal_scalability_extension()
else if (next_bits(4) == ‘0100’)
copyright_extension()
else if (next_bits(4) == ‘1010’)
mastering_display_and_content_metadata_extension()
else if (next_bits(4) == ‘1011’)
camera_parameters_extension()
else if (next_bits(4) == ‘1100’)
layout_mapping_extension()
else
…
Таблица 16b.
layout_mapping_extension() {
Дескриптор
num_of_layout_face_minus1
ue(v)
for (i=0; i<num_of_layout_face_minus1; i++) {
layout_face[i]
ue(v)
layout_rotation[i]
ue(v)
}
layout_rotation[num_of_layout_face_minus1]
ue(v)
}
В вышеуказанной таблице синтаксиса num_of_layout_face_minus1 обозначает общее количество граней в макете. Предполагается, чтосинтаксис num_of_layout_faces - это num_of_layout_face_minus1 + 1. Синтаксис layout_face[i]обозначаетиндексвоставшихся (num_of_layout_faces - i) граняхвкачествесоответствующейгранидля i-йпозициивмакете, изначение layout_face[i] должнобытьвдиапазонеот 0 до (num_of_layout_face_minus1 - i), включительно. Предполагается, что синтаксис layout_face[num_of_layout_face_minus1]равенпоследнейоставшейсяграни. Синтаксис layout_rotation[i] обозначает поворот соответствующей грани для i-й позиции в макете, как указано в Таблице 17, и значение layout_rotation[i] должно быть в диапазоне от 0 до 3, включительно.
Таблица 17.
layout_rotation[i]
Угол поворота(против часовой стрелки)
0
0°
1
-90°
2
+90°
3
+180°
Порядок позиции в каждом кубическом макете (т. е., layout_face [i]) показан на фиг. 12 для макета 1210 1x6, макета 1220 2x3, макета 1230 3x2 и макета 1240 6x1. На фиг. 13 показан пример макета 1310 по умолчанию для шести кубических граней и целевой кубический макет 1320 3×2.
Пример сигнализации кубического макета граней в соответствии с вышеуказанным раскрытием показан в следующей Таблице. Для i=0, 1 и 2 первые три выбора макета грани соответствуют первым позициям в списке (т. е., 0 {Левая}, 0 {Передняя} и 0 {Правая}). Соответственно, индекс 0 выбирается для i=0, 1 и 2. Для i-3 выбирается вторая позиция в списке (т. е. 1 {Верхняя}). Соответственно, сигнализируется индекс 1. Для i=4 выбирается первая вторая позиция в списке (т. е. 0 {Задняя}). Соответственно, сигнализируется индекс 0. Нет необходимости сигнализировать индекс для последнего макет кубических граней, поскольку остается только одна кубическая грань. Однако layout_rotation [i] по-прежнему требуется для последней кубической грани (т. е. i=5).
Таблица 18.
Шаг № 0: num_of_layout_face_minus1 = 5
Шаг № 1:
Оставшиеся грани в массиве кубических граней
layout_face[i]
layout_rotation[i]
i = 0
{Левая(0), Передняя(1), Правая(2), Задняя(3), Верхняя(4), Нижняя(5)}
0 {Левая}
0
i = 1
{Передняя(0), Правая(1), Задняя(2), Верхняя(3), Нижняя(4)}
0 {Передняя}
0
i = 2
{Правая(0), Задняя(1), Верхняя(2), Нижняя(3)}
0 {Правая}
0
i = 3
{Задняя(0), Верхняя(1), Нижняя(2)}
1 {Верхняя}
1
i = 4
{Задняя(0), Нижняя(1)}
0 {Задняя}
2
Шаг № 2:Последняя позиция макета - кубическая грань {Нижняя} и layout_rotation [num_of_layout_face_minus1] = 1
В другом варианте осуществления конструкция синтаксиса для сигнализации макета включает в себя дополнительный синтаксис, чтобы сигнализировать информацию о перестановке и повороте этих шести кубических граней. Относительное положение кубических граней по умолчанию и их индексы показаны на фиг. 14, где показан индекс 1410 кубической грани и соответствующая равнопромежуточная проекция 1420.
Примерная конструкция синтаксиса в соответствии с вышеуказанным вариантом осуществления показана в Таблице 19а и Таблице 19b. В Таблице 19a, mapping_extension() определяется так, как обозначено курсивом. Детали mapping_extension() показаны в Таблице 19b.
Таблица 19а.
Extension_data(i) {
Дескриптор
While (next_bits(32) == extension_start_code) {
extension_start_code
f(32)
if (i == 0) {
if (next_bits(4) == ‘0010’)
sequence_display_extension()
else if (next_bits(4) == ‘0011’)
temporal_scalability_extension()
else if (next_bits(4) == ‘0100’)
copyright_extension()
else if (next_bits(4) == ‘1010’)
mastering_display_and_content_metadata_extension()
else if (next_bits(4) == ‘1011’)
camera_parameters_extension()
else if (next_bits(4) == ‘xxxx’)
mapping_extension()
else
…
Таблица 19b.
mapping_extension() {
Дескриптор
num_of_layout_face_minus1
ue(v)
for (i=0; i<num_of_layout_face_minus1; i++) {
layout_face[i]
ue(v)
layout_rotation[i]
ue(v)
}
layout_rotation[num_of_layout_face_minus1]
ue(v)
}
В вышеуказанных таблицах синтаксис num_of_layout_face_minus1 обозначает общее число граней в макете.Предполагается, чтосинтаксис num_of_layout_faces - это num_of_layout_face_minus1 + 1.Синтаксис layout_face[i] обозначает индекс кубической грани в качестве соответствующей грани для i-й позиции в макете, и значение layout_face[i] должно быть в диапазоне от 0 до (num_of_layout_face_minus1), включительно. Предполагается, что синтаксис layout_face[num_of_layout_face_minus1] равен последней оставшейся грани.Синтаксис layout_rotation[i] обозначает поворот соответствующей грани для i-й позиции в макете, как указано в Таблице 20, и значение layout_rotation[i] должно быть в диапазоне от 0 до 3, включительно.
Таблица 20.
layout_rotation[i]
Угол поворота(против часовой стрелки)
0
0°
1
-90°
2
+90°
3
+180°
Другой примерный порядок позиции в каждом кубическом макете (т. е., layout_face[i]) показан на фиг. 15 для макета 1510 1x6, макета 1520 2x3, макета 1530 3x2 и макета 1540 6x1.
Другая примерная конструкция синтаксиса в соответствии с вышеуказанным вариантом осуществления показана в Таблице 21.
Таблица 21.
mapping_extension() {
Дескриптор
mapping_format
ue(v)
if (mapping_format == ‘CUBICFACE’) {
cubic_type
ue(v)
default_layout_flag
u(1)
if(!default_layout_flag) {
for (i=0; i<5; i++) {
layout_face[i]
ue(v)
layout_rotation[i]
ue(v)
}
layout_rotation[5]
ue(v)
}
}
else if (mapping_format == ‘EQUIRECTANGULAR’)
…
else if (mapping_format == ‘180-3D’)
…
else if (mapping_format == ‘CYLINDERMAP’)
…
}
В указанной выше Таблице map_format обозначает входной формат составления видео 360 градусов, как указано в следующей Таблице, где значение mapping_format должно находиться в диапазоне от 0 до 3, включительно.
Таблица 22.
Значение
Описание
0
CUBICFACE
1
EQUIRECTANGULAR
2
180-3D
3
CYLINDERMAP
В таблице 21 cubic_type обозначает кубический тип в кубическом формате, как указано в Таблице 23, а значение cubic_type должно быть в диапазоне от 0 до 3, включительно.
Таблица 23.
Значение
Описание
0
Кубический формат 1x6
1
Кубический формат 2x3
2
Кубический формат 3x2
3
Кубический формат 6x1
Синтаксис default_layout_flag, равный 1, указывает, что кубический макет следует макету по умолчанию, как указано в Таблице 24.Синтаксис default_layout_flag, равный 0, указывает, что кубический макет по умолчанию отсутствует, а соответствующая грань и поворот для каждой позиции явно сигнализируется. В Таблице 24 указан макет по умолчанию. Соответствующая грань и поворот для каждой позиции в кубическом макете в соответствии с порядком, раскрытым на фиг. 12, задается следующим образом. Составление из равнопромежуточной проекции в кубические грани определено на фиг. 11.
Таблица 24.
Cubic_type
Макет по умолчанию
кубический формат 1x6
{Левая(-90°), Передняя(-90°), Правая(-90°), Верхняя(+180°), Задняя(0°), Нижняя(+180°)}
кубический формат 2x3
{Левая(-90°), Верхняя(+180°), Передняя(-90°), Задняя(0°), Правая(-90°), Нижняя(+180°)}
кубический формат 3x2
{Левая(0°), Передняя(0°), Правая(0°), Верхняя(-90°), Задняя(+90°), Нижняя(-90°)}
кубический формат 6x1
{Левая(0°), Передняя(0°), Правая(0°), Верхняя(-90°), Задняя(+90°), Нижняя(-90°)}
В таблице 21 layout_face [i] обозначает индекс в оставшихся гранях как соответствующая грань i-й позиции в макете. Грань и поворот для каждой позиции (т. е. layout_face[i] и layout_rotation[i]) в соответствии с порядком, раскрытым на фиг. 12, сигнализируются итеративно следующим образом. Первоначальный массив (выбор грани) включает все шесть граней по порядку {Левая, Передняя, Правая, Задняя, Верхняя, Нижняя}. Для первой позиции layout_face [0] сигнализируется, чтобы указать индекс выбранной грани в массиве (т. е. {Левая, Передняя, Правая, Задняя, Верхняя, Нижняя}) в качестве соответствующей грани для позиции 0. Значение layout_face[0] должно находиться в диапазоне от 0 до 5 включительно. После этого выбранная грань для позиции 0 удаляется из массива оставшихся претендентов. Для i-й позиции layout_face[i] сигнализируется, чтобы указать индекс в обновленном массиве, состоящем из оставшихся невыбранных граней, в качестве соответствующей грани для позиции i. Значение layout_face[i] должно находиться в диапазоне от 0 до 5 - i включительно. После этого соответствующая выбранная грань для позиции i удаляется из массива оставшихся претендентов. Для последней позиции предполагается, что это последняя оставшаяся не выбранная грань.
В таблице 21 layout_rotation[i] обозначает поворот соответствующей грани для i-й позиции в макете, как указано в Таблице 20, и значение layout_rotation[i] должно быть в диапазоне от 0 до 3, включительно.
В соответствии с другим вариантом осуществления примерный синтаксис для сигнализации макета показан в Таблице 25, где дополнительный синтаксис сигнализируются для информации перестановки и поворота этих шести кубических граней.
Таблица 25.
mapping_extension() {
Дескриптор
mapping_format
u(8)
if (mapping_format == ‘CUBICFACE’) {
cubic_type
u(4)
default_layout_flag
u(1)
if(!default_layout_flag) {
for (i=0; i<6; i++) {
layout_face[i]
u(3)
layout_rotation[i]
u(2)
}
}
}
else if (mapping_format == ‘EQUIRECTANGULAR’)
…
else if (mapping_format == ‘180-3D’)
…
else if (mapping_format == ‘CYLINDERMAP’)
…
}
В другом варианте осуществления настоящего изобретения, если кубическая грань выбрана в качестве формата макета, второй флаг передается на уровне последовательности, уровне вида, уровне изображения. уровне среза, уровне плитки, уровне SPS, VPS или APS битового потока, чтобы выбрать один кубический тип из набора кубических типов, который включает в себя по меньшей мере два из кубических форматов 1х6, 2x3, 3x2 и 6x1.
В другом варианте осуществления флаг передается на уровне последовательности, уровне вида, уровне изображения, уровне среза, уровне плитки, уровне SPS, VPS или APS битового потока, чтобы указать, используется ли заранее определенный макет по умолчанию для кубического или другого формата.Если используется заранее заданный макет по умолчанию для кубического или другого формата, то макет явно передается в битовый поток.Заранее заданный макет для кубической грани может быть определен как в Таблице 24.
Также могут быть использованы и другие заранее определенные макеты. Например, другой кубический макет 6x1 может быть также определен, как показано на фиг. 16a. Отличный кубический макет 3х2 показан на фиг. 16b. Два отличных кубических макета 2х3 (1610 и 1611) показаны на фиг. 16с. Шесть отличных кубических макетов 1х6 (1620-1625) показаны на фиг. 16d.
Для явной сигнализации макета соответствующие грани и / или повороты, связанные с каждой соответствующей гранью, передаются в битовый поток.В одном из примеров начальный массив (выбор грани) включает в себя по меньшей мере два элемента из {Левая, Передняя, Правая, Задняя, Верхняя, Нижняя} с заранее определенным порядком.
Для первой позиции синтаксис сигнализируется, чтобы указать индекс выбранной грани в данном массиве как соответствующую грань для первой позиции, и значение синтаксиса должно находиться в диапазоне от 0 до (N - 1), где N - общее число граней.
Для i-й позиции другой синтаксис сигнализируется, чтобы указать индекс в обновленном массиве, состоящем из оставшихся невыбранных граней, как соответствующая грань для позиции i, а значение этого синтаксиса должно находиться в диапазоне от 0 до (N - 1) включительно. Для последней позиции предполагается, что это последняя оставшаяся не выбранная грань.
В другом примере начальный массив (выбор грани) включает в себя по меньшей мере два элемента из {Левая, Передняя, Правая, Задняя, Верхняя, Нижняя} с заранее определенным порядком.
Для первой позиции синтаксис сигнализируется, чтобы указать индекс выбранной грани в данном массиве как соответствующую грань для первой позиции, и значение синтаксиса должно находиться в диапазоне от 0 до (N - 1), где N - общее число граней. Затем выбранная грань для первой позиции удаляется из массива.
Для i-й позиции другой синтаксис сигнализируется, чтобы указать индекс в обновленном массиве, состоящем из оставшихся невыбранных граней, как соответствующая грань для позиции i, а значение этого синтаксиса должно находиться в диапазоне от 0 до (N - 1 - i) включительно. После этого соответствующая выбранная грань для позиции i удаляется из массива. Для последней позиции предполагается, что это последняя оставшаяся не выбранная грань.
Чтобы указать соответствующий поворот грани для каждой позиции в макете, синтаксис для каждой позиции передается для указания соответствующего поворота грани из набора претендентов поворота, который включает по меньшей мере два элемента из (-90°, +90°, +180°, 0°).Указание индекса поворота может быть определено как в Таблице 20.
На фиг. 17 показана примерная блок-схема системы, обрабатывающей всенаправленные изображения, в соответствии с вариантом осуществления настоящего изобретения. Шаги, показанные на блок-схеме, а также другие блок-схемы в этом раскрытии могут быть реализованы в виде программных кодов, исполняемых на одном или нескольких процессорах (например, одном или нескольких ЦП) на стороне кодировщика и / или декодировщика. Шаги, показанные на блок-схеме, также могут быть реализованы на базе аппаратных средств, таких как одно или несколько электронных устройств или процессоров, реализованных с возможностью выполнения шагов, показанных на блок-схеме. В соответствии с этим способом на шаге 1710 принимается текущий набор всенаправленных изображений, преобразованных из каждого сферического изображения в панорамном видеоряде 360 градусов с использованием выбранного проекционного формата, где выбранный проекционный формат принадлежит к группе проекционного формата, содержащей кубический формат, и текущий набор всенаправленных изображений с кубическим содержит шесть кубических граней. Проверка того, соответствует ли выбранный проекционный формат формату кубических граней, выполняется на шаге 1720. Если выбранный проекционный формат соответствует формату кубических граней, выполняются шаги 1730 и 1740. В противном случае (т. е. линия «Нет» для формата, не являющегося форматом кубических граней) шаги 1730 и 1740 пропускаются. На шаге 1730 один или более синтаксических элементов составления сигнализируются для составления текущего набора всенаправленных изображений в текущее изображение кубической карты, принадлежащее набору выходного формата макета, где набор выходного формата макета содержит по меньшей мере два выходных формата макета, выбранных из группы макетов, содержащей кубический макет и равнопромежуточный формат. На шаге 1740 предоставляются кодированные данные в битовом потоке, включающем в себя один или более синтаксических элементов составления для текущего набора всенаправленных изображений.
Блок-схема, показанная выше, предназначена для использования в качестве примеров, иллюстрирующих варианты осуществления настоящего изобретения. Специалист в данной области техники может практиковать настоящее изобретение, изменяя отдельные шаги, разделяя или комбинируя шаги без отдаления от сущности настоящего изобретения.
Вышеуказанное раскрытие представлено, чтобы дать возможность специалисту в данной области техники практиковать настоящее изобретение, как это предусмотрено в контексте конкретной области применения и ее требований. Различные модификации раскрытого варианта осуществления будут понятны специалистам в данной области техники, и общие принципы, указанные здесь, могут быть применены к другим вариантам осуществления. Таким образом, данное изобретение не ограничено определенными показанными и раскрытыми вариантами осуществления, но может применяться в самой широкой области в соответствии с принципами и новыми функциями, раскрытыми здесь. В подробном раскрытии выше различные определенные детали показаны, чтобы обеспечить глубокое понимание настоящего изобретения. Несмотря на это, специалистам в данной области техники должно быть понятно, что данное изобретение может быть осуществлено.
Вариант осуществления настоящего изобретения, как описано выше, может быть реализован в различных аппаратных средствах, программных кодах или их сочетаниях. Например, вариантом осуществления настоящего изобретения может быть одна или несколько электронных схем, встроенных в микросхему сжатия видео, или программный код, интегрированный в программное обеспечение для сжатия видео, для выполнения раскрытой в настоящем документе обработки. Вариантом осуществления настоящего изобретения может быть также программный код для исполнения на цифровом сигнальном процессоре (DSP) для выполнения раскрытой в настоящем документе обработки. Изобретение также может включать в себя ряд функций, выполняемых компьютерным процессором, цифровым сигнальным процессором или микропроцессором, или программируемой логической интегральной схемой (FPGA). Эти процессоры могут быть реализованы с возможностью выполнения конкретных задач в соответствии с изобретением путем выполнения машиночитаемого программного кода или микропрограммного кода, который определяет конкретные способы, воплощенные в изобретении. Программный код или микропрограммный код может быть разработан на разных языках программирования и в разных форматах или стилях. Программный код также может быть скомпилирован для разных целевых платформ. Однако различные форматы кода, стили и языки программных кодов и другие средства конфигурирования кода для выполнения задач в соответствии с изобретением не будут отходить от сущности и объема изобретения.
Изобретение может быть осуществлено в других специальных формах без отступления от сущности или существенных характеристик. Раскрытые примеры следует рассматривать во всех отношениях только как иллюстративные и не имеющие ограничительного характера. Объем изобретения, таким образом, лучше всего отражается прилагаемой формулой изобретения, а не следующим раскрытием. Все изменения, относящиеся к значению и диапазону эквивалентности формулы изобретения, должны входить в их объем.