СПОСОБ И УСТРОЙСТВО ДЛЯ ГЕНЕРАЦИИ ТОЧЕК ТРЕХМЕРНОЙ (3D) СЦЕНЫ
METHOD AND DEVICE FOR GENERATION OF POINTS OF THREE-DIMENSIONAL (3D) SCENE

1. ОБЛАСТЬ ТЕХНИКИ
Настоящий документ относится к области обработки трехмерной (3D) сцены. В частности, но не исключительно, область техники настоящего изобретения относится к обработке точек в облаке точек, представляющем собой геометрию и/или структуру трехмерной сцены или ее части, например, геометрию и/или структуру трехмерного объекта. Область техники настоящего изобретения также может относиться к кодированию/декодированию данных трехмерного изображения, использующего схему проекции структуры и глубины.
2. УРОВЕНЬ ТЕХНИКИ
Этот раздел предназначен для ознакомления читателя с различными аспектами данной области техники, которые могут относиться к различным аспектам настоящего документа, которые описаны и/или заявлены ниже. Предполагается, что польза этого обсуждения состоит в предоставлении читателю справочной информации для обеспечения более полного понимания различных аспектов настоящего изобретения. Соответственно, эти утверждения следует понимать в этом свете, а не как признание предшествующего уровня техники.
Хорошо известно представление 3D объекта с помощью облака точек или сетки.
Сетка содержит элементы сетки (например, треугольники), каждый из которых представлен вершинами и ребрами, соединяющими вершины. Сетка обычно предназначена для представления внешней поверхности трехмерного объекта.
Облако точек является набором точек, которые обычно предназначены для представления внешней поверхности трехмерного объекта, но также и для более сложных геометрий, таких как волосы, мех, которые не могут быть эффективно представлены с помощью других форматов данных, таких как сетки. Каждая точка облака точек часто определяется трехмерным пространственным местоположением (координаты X, Y и Z в трехмерном пространстве) и, возможно, другими соответствующими атрибутами, такими как, например, цвет, представленный в цветовом пространстве RGB или YUV, прозрачность, коэффициент отражения, двухкомпонентный вектор нормали и т. д. Можно рассматривать облако цветных точек, то есть набор 6-компонентных точек (X, Y, Z, R, G, B) или, эквивалентно, (X, Y, Z, Y, U, V), где (X, Y, Z) определяет пространственное местоположение точки в трехмерном пространстве, а (R, G, B) или (Y, U, V) определяет цвет или текстуру этой точки.
Облако точек может быть представлено с помощью текстуры и проекций глубины, соответствующих представлению облака точек на основе изображения.
После сжатия по глубине некоторые точки трехмерной сцены могут быть реконструированы ошибочно или просто отсутствовать, что приводит к появлению дырок в трехмерной сцене, которые могут быть видны из точки обзора.
3. СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Ссылки в описании на «один вариант осуществления», «вариант осуществления», «иллюстративный вариант осуществления», «конкретный вариант осуществления» указывают, что описанный вариант осуществления может включать в себя конкретный признак, структуру или характеристику, но каждый вариант осуществления не обязательно может включать в себя конкретный признак, структуру или характеристику. Более того, такие фразы не обязательно относятся к одному и тому же варианту осуществления. Кроме того, когда конкретный признак, структура или характеристика описывается применительно к одному варианту осуществления, предполагается, что специалисту в данной области техники известно, что это влияет на такой признак, структуру или характеристику применительно к другим вариантам осуществления, независимо от того, описано ли это явно.
Настоящий документ относится к способу генерации точек трехмерной сцены из изображения глубины, причем способ содержит этапы, на которых:
- для текущего пикселя изображения глубины сравнивают информацию о глубине, ассоциированную с текущим пикселем, с информацией о глубине, ассоциированной с пикселями, пространственно смежными с текущим пикселем на изображении глубины;
- когда разность глубин между текущим пикселем и смежным пикселем больше первого значения и меньше второго значения, генерируют по меньшей мере одну дополнительную точку трехмерной сцены в дополнение к текущей точке, ассоциированной с текущим пикселем изображения глубины, при этом число дополнительных точек зависит от этой разности.
Настоящий документ также относится к устройству, выполненному с возможностью генерации точек трехмерной сцены из изображения глубины, при этом устройство содержит память, связанную по меньшей мере с одним процессором, выполненным с возможностью:
- для текущего пикселя изображения глубины сравнения информации о глубине, ассоциированной с текущим пикселем, с информацией о глубине, ассоциированной с пикселями, пространственно смежными с текущим пикселем на изображении глубины;
- когда разность глубин между текущим пикселем и смежным пикселем больше первого значения и меньше второго значения, генерации по меньшей мере одной дополнительной точки трехмерной сцены в дополнение к текущей точке, ассоциированной с текущим пикселем изображения глубины, при этом число дополнительных точек зависит от разности.
Настоящий документ также относится к устройству, выполненному с возможностью генерации точек трехмерной сцены из изображения глубины, при этом устройство содержит:
- средство для сравнения для текущего пикселя изображения глубины информации о глубине, ассоциированной с текущим пикселем, с информацией о глубине, ассоциированной с пикселями, пространственно смежными с текущим пикселем на изображении глубины;
- средство для генерации по меньшей мере одной дополнительной точки трехмерной сцены в дополнение к текущей точке, ассоциированной с текущим пикселем изображения глубины, когда разность глубин между текущим пикселем и смежным пикселем больше первого значения и меньше второе значение, при этом число дополнительных точек зависит от этой разности.
В соответствии с одной характеристикой выбирается смежный пиксель, имеющий наибольшую разность глубин с текущим пикселем, среди смежных пикселей, имеющих разность глубин с текущим пикселем, лежащую между первым значением и вторым значением, при этом число сгенерированных дополнительных точек зависит от самой большой разности глубин.
В соответствии с одной конкретной характеристикой с точкой трехмерной сцены ассоциирована единица объема, при этом разность глубин соответствует некоторому числу единиц объема, а число сгенерированных точек соответствует разности глубин минус 1.
В соответствии с другой характеристикой определяются атрибуты, которые должны быть ассоциированы по меньшей мере с одной дополнительной точкой, при этом атрибуты определяются по атрибутам, ассоциированным с текущей точкой и смежным пикселем.
В соответствии с одной дополнительной характеристикой атрибуты, которые должны быть ассоциированы по меньшей мере с одной дополнительной точкой, содержат информацию о глубине и/или информацию о текстуре.
В соответствии с дополнительной характеристикой изображение глубины декодируется из принятого битового потока.
В соответствии с другой характеристикой точки трехмерной сцены являются частью облака точек.
Настоящий документ также относится к компьютерному программному продукту, содержащему инструкции программного кода для выполнения по меньшей мере одним процессором вышеупомянутого способа генерирования точек трехмерной сцены из изображения глубины, когда программа выполняется на компьютере.
Настоящий документ также относится к процессорно-читаемому носителю (долговременного хранения), хранящему инструкции, вызывающие выполнение процессором по меньшей мере вышеупомянутого способа генерации точек трехмерной сцены из изображения глубины.
4. СПИСОК ЧЕРТЕЖЕЙ
Настоящий документ будет более понятен, и другие конкретные особенности и преимущества станут понятны после прочтения следующего описания, причем описание ссылается на прилагаемые чертежи, на которых:
- фиг. 1 показывает пример трехмерного объекта трехмерной сцены в соответствии с одним примером настоящего изобретения;
- фиг. 2А и 2В показывают примеры изображения атрибутов, ассоциированных с трехмерным объектом на фиг. 1, в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 3 показывает первый пример получения изображения атрибутов фиг. 2А и 2В в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 4 показывает второй пример получения изображения атрибутов фиг. 2А и 2В в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 5А и 5В показывают точки трехмерного объекта на фиг. 1 в соответствии с определенной точкой обзора в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 6А и 6В показывают трехмерное представление некоторых точек трехмерного объекта на фиг. 1 и соответствующее изображение глубины в соответствии с неограничивающим вариантом воплощения настоящего изобретения;
- каждая из фиг. 7А и 7В показывает двухмерное представление дырок, имеющихся в трехмерном представлении фиг. 6А, в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 8 показывает способ генерации одной или нескольких точек трехмерной сцены на фиг. 1 в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 9 показывает пример архитектуры устройства для реализации способа, показанного на фиг. 8, 12 и/или 13, в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 10 показывает пример схемы кодирования/декодирования облака точек, представляющего трехмерный объект на фиг. 1, в соответствии с одним примером настоящего изобретения;
- фиг. 11 показывает пример синтаксиса сигнала, передающего битовый поток, полученный по схеме на фиг. 10, в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения;
- фиг. 12 показывает пример процесса, реализованного при кодировании облака точек, представляющего трехмерный объект на фиг. 1, в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения; и
- фиг. 13 показывает пример процесса декодирования битового потока для получения декодированного облака точек, представляющего трехмерный объект на фиг. 1, в соответствии с одним неограничивающим вариантом осуществления настоящего изобретения.
5. ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Теперь будет описан предмет изобретения со ссылкой на чертежи, на которых везде одинаковые номера позиций используются для обозначения одинаковых элементов. В следующем ниже описании с целью объяснения излагаются многочисленные конкретные подробности для обеспечения полного понимания предмета изобретения. Однако может быть очевидно, что варианты осуществления изобретения могут быть осуществлены на практике без этих конкретных подробностей.
В соответствии с неограничивающими вариантами осуществления раскрыты способ и устройство для генерации точек трехмерной (3D) сцены.
В описании ниже изображение содержит один или несколько массивов дискретных значений (пиксельных значений) в определенном формате изображения/видео, которые определяют всю информацию касательно пиксельных значений изображения (или видео) и всю информацию, которая может использоваться, например, дисплеем и/или любым другим устройством для визуализации и/или декодирования изображения (или видео). Изображение содержит по меньшей мере один компонент в виде первого массива дискретных значений, как правило компонент яркости (или яркость), и, возможно, по меньшей мере один другой компонент в виде по меньшей мере одного другого массива дискретных значений, как правило цветовой компонент. Или, эквивалентно, та же самая информация может также быть представлена в виде набора массивов дискретных значений цветов, например, традиционного трехцветного RGB-представления.
В дальнейшем кадр может рассматриваться как изображение, то есть массив дискретных значений, или как набор изображений.
nv
nv
Пиксельное значение представлено вектором из  значений, где  является числом компонентов. Каждое значение вектора представлено некоторым числом битов, которое определяет максимальный динамический диапазон пиксельных значений.
Настоящие принципы будут описаны со ссылкой на конкретный вариант осуществления способа (и устройства, выполненного с возможностью) генерации одной или нескольких точек трехмерной сцены, например, одной или нескольких точек трехмерного объекта трехмерной сцены в дополнение к существующим точкам. С существующими точками трехмерной сцены могут быть ассоциированы атрибуты, соответствующие информации о текстуре (атрибуты текстуры) и/или информации о глубине (атрибуты глубины). Атрибуты глубины (или расстояния) сохраняются в изображении глубины, то есть ассоциированы с пикселями изображения глубины, а атрибуты текстуры (или цвета) сохраняются в изображении текстуры, то есть ассоциированы с пикселями изображения текстуры. Информация о глубине, ассоциированная с текущим пикселем изображения глубины, сравнивается с информацией о глубине, ассоциированной с пикселями изображения глубины, которые находятся рядом с текущим пикселем. Текущий пиксель с его смежными пикселями формирует блок из 9 пикселей с 8 смежными пикселями, окружающими текущий пиксель. Этот блок из 9 пикселей ассоциирован с набором из 9 точек трехмерной сцены, при этом 8 точек ассоциированы с 8 смежными пикселями, образуя окрестность текущей точки, ассоциированной с текущим пикселем. Для по меньшей мере одного из смежных пикселей, имеющих разность глубин относительно текущего пикселя, которая меньше первого значения и больше второго значения, генерируется одна или более дополнительных точек трехмерной сцены в дополнение к текущей точке, ассоциированной с текущим пикселем карты глубины. Число генерируемых дополнительных точек зависит от разности глубин: чем больше разность глубин, тем больше количество сгенерированных дополнительных точек.
Окрестность точки трехмерной сцены на изображении глубины (соответственно, изображении текстуры) соответствует пикселям изображения глубины (соответственно, изображения текстуры), расположенным в окрестности пикселя изображения глубины (соответственно, изображения текстуры), причем последний соответствует указанной точке трехмерного объекта. Окрестность пикселя может, например, охватывать все пиксели, смежные с упомянутым пикселем, не ограничиваясь таким примером. Например, окрестность может охватывать пиксели, смежные с упомянутым пикселем, и все пиксели, смежные с каждым пикселем, смежным с упомянутым пикселем, или даже больше.
Генерация дополнительных точек трехмерной сцены позволяет заполнить дырки в трехмерной сцене, которые могут быть видны при изменении точки обзора. Также это может позволить увеличить плотность точек в некоторых областях трехмерной сцены. Использование изображения глубины (вместо трехмерного пространства трехмерного объекта) позволяет быстро идентифицировать дырки, которые должны быть заполнены.
Даже если описание дано со ссылкой на одно изображение глубины трехмерной сцены, настоящие принципы применимы в равной степени ко множеству изображений глубины.
Фиг. 1 показывает два разных представления трехмерного объекта или его части в соответствии с неограничивающим вариантом осуществления. Трехмерный объект может, например, входить в трехмерную сцену, содержащую один или несколько трехмерных объектов. В соответствии с примером на фиг. 1, объект является человеком, например, движущимся внутри сцены, а часть объекта, соответствующая голове, показана на фиг. 1. Фиг. 1 также может изображать трехмерную (3D) модель объекта 10 и точки облака 11 точек, соответствующие трехмерной модели 10. Модель 10 может быть трехмерным сеточным представлением, а точки облака 11 точек могут быть вершинами сетки. Точки 11 также могут быть точками, распределенными по поверхности граней сетки. Модель 10 также может быть представлена в виде сплэттинговой (т.е. созданной методом «бросания снежков») версии облака 11 точек, при этом поверхность модели 10 создается путем сплэттинга («бросания снежков») точки из облака 11 точек. Модель 10 может быть представлена с помощью множества различных представлений, таких как вокселы или сплайны. Фиг. 1 иллюстрирует тот факт, что всегда можно задать облако точек по представлению поверхности трехмерного объекта, и наоборот, всегда можно создать представление поверхности трехмерного объекта по точкам облака. В настоящем описании проекция точек трехмерного объекта (посредством распространения точек трехмерной сцены) на изображение эквивалентна проецированию любого представления этого трехмерного объекта на объект.
Первое представление 10 части объекта является облаком точек. Облако точек соответствует большому набору точек, представляющих объект, например, внешнюю поверхность или внешнюю форму объекта. Облако точек можно рассматривать как структуру на основе векторов, в которой каждая точка имеет свои координаты (например, трехмерные координаты XYZ или глубину/расстояние от заданной точки обзора) и один или несколько атрибутов, также называемых компонентом. Примером компонента является компонент цвета, который может быть выражен в различных цветовых пространствах, например, RGB (красный, зеленый и синий) или YUV (Y является компонентом яркости, а UV являются двумя компонентами цветности). Облако точек является представлением объекта, каким его можно видеть из данной точки обзора или диапазона точек обзора. Облако точек может быть получено разными способами, например:
путем захвата реального объекта, снятого стендом камер, опционально дополненного активным датчиком глубины;
путем захвата виртуального/синтетического объекта, снятого стендом виртуальных камер в инструменте для моделирования;
из комбинации как реальных, так и виртуальных объектов.
В первом случае (путем захвата реального объекта) набор камер генерирует набор изображений или последовательности изображений (видео), соответствующие различным ракурсам (различным точкам обзора). Информация о глубине, то есть расстоянии от центра каждой камеры до поверхности объекта, получается либо с помощью активного датчика глубины, например, в инфракрасном диапазоне и на основе анализа структурированного света или времени распространения, либо на основе алгоритмов диспаратности. В обоих случаях все камеры должны быть откалиброваны, внутренне и внешне. Алгоритмы диспаратности состоят в поиске похожих визуальных признаков на паре скорректированных изображений с камер, которое обычно выполняется вдоль одномерной линии: чем больше различие в столбцах пикселей, тем ближе поверхность этого признака. В случае массива камер глобальная информация о глубине может быть получена путем объединения множества информации о попарной диспаратности, используя преимущества множества пар камер, тем самым улучшая отношение сигнал/шум.
Во втором случае (синтетический объект) инструмент для моделирования предоставляет непосредственно информацию о глубине.
Облако 10 точек может быть динамическим облаком точек, которое эволюционирует со временем, т.е. число точек может изменяться со временем и/или в зависимости от местоположения (например, по меньшей мере одной из координат X, Y и Z) одной или нескольких точек. Эволюция облака точек может соответствовать движению объекта, представленного облаком точек, и/или любому изменению формы объекта или части(ей) объекта.
Облако 10 точек может быть представлено на кадре или в одной или нескольких группах последовательно сменяющих друг друга кадров, при этом каждый кадр содержит представление облака точек в определенное время «t». Одна или несколько групп последовательно сменяющих друг друга кадров могут образовывать видео, представляющее, по меньшей мере, часть облака 10 точек.
State of the Art in Surface Reconstruction from Point Clouds
Второе представление 11 части объекта может быть получено из представления 10 в виде облака точек, второе представление соответствует представлению в виде поверхности. Облако точек может быть обработано для вычисления его поверхности. С этой целью для данной точки облака точек используются соседние точки этой заданной точки для вычисления нормали к локальной поверхности в этой заданной точке, при этом элемент поверхности, ассоциированный с этой заданной точкой, получается из этой нормали. Процесс повторяется для всех точек, чтобы получить поверхность. Методы восстановления поверхности по облаку точек описаны, например, Matthew Berger и др. в “”, State of the Art Report, 2014. Согласно одному варианту осуществления, элемент поверхности, ассоциированный с данной точкой облака точек, получается путем применения рендеринга сплэт-метода («бросания снежков») к этой заданной точке. Поверхность объекта (также называемая предполагаемой поверхностью или внешней поверхностью объекта) получается путем смешивания всех «следов от снежков» (например, эллипсоидов), ассоциированных с точками облака точек.
В одном конкретном варианте осуществления облако точек представляет только частичные ракурсы объекта, а не объект в целом, и это соответствует тому, как объект должен выглядеть с отрисовываемой стороны, например, в кинематографической сцене. Например, при съемке персонажа, обращенного к плоскому массиву камер, генерируется облако точек только на стороне стенда. Задняя часть персонажа вообще не существует, объект не является замкнутым, и поэтому геометрическими характеристиками этого объекта является совокупность всех поверхностей, ориентированных в направлении стенда (угол между нормалью к каждой локальной поверхности и лучом обратно к захватывающему устройству равен, например, менее 90°).
Каждая из фиг. 2A и 2B показывает кадр облака 10 точек в соответствии с конкретными неограничивающими вариантами осуществления настоящих принципов.
Фиг. 2А показывает первый пример кадра 20 облака точек, например, кадр GOP (группы кадров, Group of Pictures) облака точек. Кадр 20 состоит из набора из n изображений 201, 202, 203, 20n, где n является целым числом, большим или равным 2. Каждое из изображений с 201 по 20n соответствует массиву пикселей, размер и/или определение которого может варьироваться от одного изображения к другому изображению. Например, определения изображений 201 и 20n одинаковы, в то время как определения изображений 202, 203 отличаются друг от друга и от определения изображений 201 и 20n. В примере на фиг. 2А изображения с 201 по 20n пространственно расположены так, что они покрывают весь кадр 20 без перекрытия между изображениями. Согласно одному варианту осуществления, изображения с 201 по 20n не покрывают весь кадр, существует пространство между изображениями с 201 по 202 или между по меньшей мере некоторыми из них, то есть края двух соседних изображений могут не соприкасаться. С каждым пикселем изображений с 201 по 20n могут быть ассоциированы данные, например, информация о текстуре и/или информация о глубине. Информация о текстуре, например, может храниться в виде уровней серого, ассоциированных с каждым каналом цветового пространства (например, цветового пространства RGB или цветового пространства YUV), причем уровень серого для каждого канала, например, выражается с помощью первого определенного числа битов, например, 8, 10 или 12 бит. Информация о глубине, например, может храниться в виде значения, например, в α-канале с помощью второго определенного числа битов, например, 8, 10 или 12 бит. Таким образом, четыре компонента RGBα или YUVα (например, четыре 10-битных канала) могут быть ассоциированы, например, с каждым пикселем на рисунке 20 для представления облака точек в определенное время «t». В соответствии с одним вариантом осуществления, первый кадр 20 используется для хранения информации о текстуре (например, 3 компонента RGB или YUV), а второй кадр с тем же самым расположением изображений используется для хранения информации о глубине, причем оба изображения представляют облако точек в момент времени «t». Набор изображений, формирующих кадр 20, может быть получен, например, путем проецирования точек облака точек в соответствии с проекцией(ями), например, разные проекции на каждое первое изображение, как показано на рисунке 3.
Фиг. 3 изображает куб 31, ограничивающий по меньшей мере часть облака 10 точек в соответствии с неограничивающим примером настоящих принципов.
Куб 31 разбит, например, на 8 подкубов (для ясности показан только один подкуб 32 из 8 подкубов) на первом уровне разбиения. Подкуб 32 также разбит на 8 подкубов (для ясности показан только один подкуб 33 из 8 подкубов) на втором уровне разбиения. На каждом уровне разбиения часть точек облака точек может быть спроецирована (например, в соответствии с ортогональной проекцией) на одну или несколько граней куба(ов) (например, грани с серой заливкой). Например, точки облака точек проецируются на грань 301 куба 31, на грань 302 куба 32 и на грань 303 куба 33. Например, грани дискретизируются, образуя массивы пикселей с определениями/размерами, которые зависят от уровня разбиения куба. Например, для пикселя грани куба точка облака точек, которая проецируется на упомянутый пиксель, соответствует точке облака точек, которая находится ближе всего к указанному пикселю при трассировке луча от указанного пикселя и ортогонально к грани, содержащей указанный пиксель. Атрибуты, ассоциированные с упомянутым пикселем, соответствуют атрибутам (текстура и/или глубина) точки, спроецированной на упомянутый пиксель.
Грань 301 используется, например, для формирования изображения 201, грань 302 для формирования изображения 302 и грань 303 для формирования изображения 303.
Фиг. 2В иллюстрирует второй пример кадра 21 облака точек, например, кадр GOP облака точек. Кадр 21 состоит из набора из m изображений 211, 212, 213, 214, 21m, где m является целым числом, большим или равным 2. Расположение изображений с 211 по 21m может отличаться от расположения кадра 20, например, со свободным пространством между изображениями с 211 по 21m. Изображения с 211 по 21m могут иметь различные размеры и/или определения. Каждое изображение может принимать атрибуты от точек облака точек, причем указанные атрибуты ассоциированы по меньшей мере с некоторыми из пикселей каждого изображения с 211 по 21m. Например, часть каждого изображения, которая получает атрибуты из облака точек, показана в виде серой области, а часть изображения, которая не получает атрибуты из облака точек, показана в виде белой области, причем указанная белая область может быть заполнена значением по умолчанию, как свободное пространство между изображениями. Как и для кадра 20 на фиг. 2А, данные, ассоциированные с пикселями изображений с 211 по 21n, могут соответствовать информации о текстуре и/или информации о глубине. В одном варианте осуществления первый кадр 21 используется для хранения информации о текстуре (например, 3 компонента RGB или YUV), а второй кадр 21 с таким же расположением изображений с 211 по 21m используется для хранения информации о глубине, причем оба изображения представляют точку облака в момент времени «t».
Набор изображений, формирующих кадр 21, может содержать, например, одно или несколько первых изображений и, потенциально, одно или несколько вторых изображений. Первое изображение(я) (по меньшей мере серая область каждого первого изображения) может быть получено, например, путем проецирования точек облака точек в соответствии с первой проекцией(ями), например, разная первая проекция на каждое первое изображение, как показано на фиг. 4.
Фиг. 4 изображает получение первых изображений набора изображений, образующих кадр 21, в соответствии с неограничивающим примером настоящих принципов. Облако точек, представляющее трехмерный объект 4, разбивается на множество трехмерных частей, например, 50, 100, 1000 или более трехмерных частей, 3 из которых показаны на фиг. 4, то есть трехмерные части 42, 43 и 44, причем трехмерная часть 44 содержит точки облака точек, представляющие собой часть головы человека (соответствующую, например, облаку 10 точек на фиг. 1), трехмерная часть 42 содержит точки облака точек, представляющих собой подмышку человека, а трехмерная часть 43 содержит точки облака точек, представляющих собой руку человека. Одно или несколько изображений каждой трехмерной части или части трехмерных частей генерируются для того, чтобы представлять каждую трехмерную часть в двух измерениях, то есть в соответствии с двумерной параметризацией. Например, двумерная параметризация 401 получается для трехмерной части 44, двумерная параметризация 402 получается для трехмерной части 42, и 2 различные двумерные параметризации 403 и 404 получаются для трехмерной части 43. Двумерная параметризация может меняться от одной трехмерной части к другой. Например, двумерная параметризация 401, ассоциированная с трехмерной частью 41, является линейной перспективной проекцией, в то время как двумерная параметризация 402, ассоциированная с трехмерной частью 42, является LLE, а двумерные параметризации 403 и 404, ассоциированные с трехмерной частью 43, обе являются ортогональными проекциями, соответствующими разным точкам обзора. В соответствии с одним вариантом осуществления, все двумерные параметризации, ассоциированные со всеми трехмерными частями, имеют один и тот же тип, например, линейная перспективная проекция или ортографическая проекция. В соответствии с одним вариантом осуществления, могут использоваться разные двумерные параметризации для одной и той же трехмерной детали.
Двухмерная параметризация, ассоциированная с одной данной трехмерной частью облака точек, соответствует просмотру в двух измерениях данной трехмерной части облака точек, позволяющей дискретизировать заданную трехмерную часть, то есть двухмерное представление содержимого (т.е. точка(и)) этой данной трехмерной части содержит множество дискретных значений (которые могут соответствовать пикселям первого изображения), число которых зависит от применяемого шага дискретизации. Двухмерная параметризация может быть получена различным образом, например, путем реализации любого из следующих способов:
- линейная перспективная проекция точек трехмерной части облака точек на плоскость, ассоциированную с точкой обзора, при этом параметры, характеризующие линейную перспективную проекцию, включают в себя местоположение виртуальной камеры, шаг пространственной дискретизации и поле обзора в двух измерениях;
- ортографическая проекция точек трехмерной части облака точек на поверхность, при этом параметры, характеризующие ортографическую проекцию, включают в себя геометрию (форму, размер и ориентацию) проектирующей поверхности и шаг пространственной дискретизации;
- LLE (локально-линейное вложение, Locally-Linear Embedding), которое соответствует математической операции уменьшения размерности, здесь применяется для конвертации/преобразования из 3D в 2D, при этом параметры, характеризующие LLE, включают в себя коэффициенты преобразования.
Каждое изображение предпочтительно имеет прямоугольную форму для облегчения процесса упаковки на кадре 21.
Фиг. 5А и 5В показывают двухмерное представление части трехмерной сцены фиг. 1 в соответствии с неограничивающим примером настоящих принципов.
На фиг. 5А представлен пример двухмерного представления 5А части трехмерного объекта 10, например, поперечное сечение трехмерного объекта 10. Точки поперечного сечения 5А представлены квадратом, который соответствует кубу или вокселю в трехмерном представлении 10. Например, квадрат (или куб) 510 представлен точкой 51. Кубы или воксели ассоциированы с точками трехмерной сцены (или точками облака точек, когда трехмерная сцена представлена облаком точек), чтобы заполнить пространство трехмерной сцены. Некоторые из квадратов, представленных на фиг. 5А, могут быть пустыми, то есть нет никакой точки трехмерной сцены, ассоциированной с ними, то есть нет текстуры и глубины, ассоциированной с ними. Поверхность трехмерного объекта 10 представлена прямой линией 50, а точки с 501 по 506 соответствуют точкам, видимым из точки 52 обзора. Квадраты, ассоциированные с точками с 501 по 506, показаны с помощью оттенка серого. При проецировании этих точек с 501 по 506 на соответствующее изображение глубины в соответствии с точкой 52 обзора получается столбец пикселей, ассоциированных с точками с 501 по 506, причем один пиксель ассоциирован с одной точкой.
3
3
Естественно, с точками трехмерной сцены могут быть ассоциированы элементы объема, отличные от квадрата, например, сферы. В оставшейся части описания будет использоваться выражение «единица объема» для обозначения элемента объема, ассоциированного с точкой, при этом единица объема соответствует, например, вокселю размером 1 на 1 на 1, например, 1 мм на 1 мм на 1 мм (с объемом 1 мм) или 1 см на 1 см на 1 см (с объемом 1 см) или любым другим размером.
Фиг. 5В изображает двумерное представление 5В той же самой части трехмерного объекта 10, что и часть, изображенная на фиг. 5А, причем двумерное представление 5В получено путем обратного проецирования точек с 501 по 506 из изображения глубины, полученного из двумерного представления 5А в соответствии с точкой 52 обзора. Точки (и соответствующие единицы объема) с 501 по 506 показаны с помощью оттенка серого. Точки (и ассоциированные единицы объема) с 511 по 518 показаны с рисунком диагональных полосок, они соответствуют дыркам трехмерного объекта 10, если смотреть из точки 53 обзора. Эти дырки могут быть результатом реконструкции трехмерного объекта с использованием изображения глубины, полученного при проецировании точек в соответствии с точкой 52 обзора, которая отличается от точки 53 обзора, при этом такие дырки приводят к видимым артефактам при просмотре реконструированного трехмерного объект из точки 53 обзора. С точками с 511 по 518, соответствующими дыркам, не ассоциирована никакая информация о текстуре и о глубине.
Фиг. 6А показывает подмножество 6А точек трехмерного объекта на фиг. 1 в трех измерениях, а фиг.а 6В показывает часть 6В изображения глубины, ассоциированного с подмножеством 6А, в соответствии с неограничивающим примером настоящих принципов.
Фиг. 6А показывает подмножество 6А точек трехмерного объекта и ассоциированных с ними единиц 601, 602, 603, 604, 605, 606, 607, 608 и 609 объема, показанных с помощью кубов или вокселей на фиг. 6А. Кубы с 601 по 609 простираются в трех измерениях X, Y и Z, при этом ось Z представляет собой глубину, X представляет собой ось абсцисс, а Y представляет собой ось ординат. Стрелки 61, 62 и 63 представляют собой разные точки обзора, из которых можно смотреть на подмножество 6А. Точка 61 обзора позволяет смотреть на подмножество 6А со стороны оси Z; точка 62 обзора позволяет смотреть на подмножество 6А со стороны оси Y; и точка 63 обзора позволяет смотреть на подмножество 6А со стороны оси X. Кубы с 602 по 609 (или, эквивалентно, точки с 602 по 609) могут рассматриваться как образующие окрестность куба 601 (или, эквивалентно, точки 601).
Фиг. 6В показывает часть 6В изображения глубины, ассоциированного с подмножеством 6А. Часть 6B изображения глубины может быть получена путем проецирования кубов (точек) с 601 по 609 в соответствии с точкой 61 обзора и соответствующей осью Z. Как видно на фиг. 6В, часть 6В образует блок из 9 пикселей, 8 смежных пикселей с 612 по 619 (каждый из которых соответствует/относится к соответствующим кубам/точкам с 602 по 609 соответственно из подмножества 6А), окружающих пиксель 611 (который соответствует/относится к ассоциированному кубу/точке 601 из подмножества 6А). Кубы/точки с 602 по 609 соответствуют окрестности куба/точки 601, как и их соответствующие пиксели 612-619 соответствующего изображения глубины соответствуют соседним пикселям изображения глубины, окружающим пиксель 611, соответствующий кубу/точке 601.
При просмотре из точки 61 обзора в подмножестве 6А нет дырок (ракурс в соответствии с точкой 61 обзора соответствует части 6В изображения глубины). Но при просмотре из других точек обзора может появиться дырка(и). Например, при просмотре из точки 62 обзора, между кубами/точками 601 и 602 появляется дырка, пространство, занимаемое такой дыркой, соответствует пространству куба 6001, показанного с помощью полосок. Такая дырка 6001 показана на фиг. 7А. Фиг. 7А изображает часть ракурса подмножества 6А из точки 62 обзора, в частности, часть, содержащую кубы 601 и 602, и свободное пространство между ними, то есть пространство, не занятое кубом/точкой из подмножества 6А. При просмотре из точки 63 обзора между кубами/точками 601 и 604 появляется дырка, пространство, занимаемое такой дыркой, соответствует пространству двух кубов, показанных с помощью полосок, то есть кубов 6001 и 6002. Такая дырка 6001, 6002 показана на фиг. 7В, при этом фиг. 7В показывает часть ракурса подмножества 6А из точки 63 обзора, в частности, часть, содержащую кубы 601 и 604, и свободное пространство между ними, то есть пространство, не занятое кубом/точкой из подмножества 6А.
Изображение глубины, ассоциированное с трехмерной сценой, может использоваться для определения, где могут быть расположены дырки в области(ях) в трехмерной сцене. Например, для получения местоположения дырки(дырок) обрабатывается и анализируется, как объясняется ниже, часть 6B изображения глубины, ассоциированная с (и полученная из) частью 6A точек трехмерного объекта 10. А именно, для получения местоположения дырки(дырок) 6001, 6002 используется информация о глубине, ассоциированная с пикселями с 611 по 619. Блок 6C на фиг. 6B показывает информацию о глубине, ассоциированную с пикселями с 611 по 619. Такой процесс, например, применяется к текущему пикселю, а именно к текущему пикселю 611 (который ассоциирован с текущей точкой 601) в примере на фиг. 6A и 6B. В примере на фиг. 6B с текущим пикселем 611 ассоциирована опорная глубина, например опорная глубина равна 0. Глубина, ассоциированная с пикселями с 612 по 619, смежными с текущим пикселем 611, выражается в единицах объема (единицах объема, соответствующих кубу/вокселю в примере на фиг. 6А, 6В). Что касается текущего пикселя, глубина, ассоциированная с соседним пикселем 612, равна +2 единицам объема; глубина, ассоциированная с соседним пикселем 613, равна +1 единице объема; глубина, ассоциированная с соседним пикселем 614, равна +3 единицам объема; глубина, ассоциированная с соседним пикселем 615, равна 0 единиц объема; глубина, ассоциированная с соседним пикселем 616, равна -1 единице объема; глубина, ассоциированная с соседним пикселем 617, равна 0 единиц объема; глубина, ассоциированная с соседним пикселем 618, равна 0 единиц объема; и глубина, ассоциированная с соседним пикселем 619, равна +1 единице объема. Естественно, глубина, ассоциированная с пикселями, может быть выражена с помощью любой другой метрики, например, с помощью числа единиц объема, отделяющих точки (то есть ассоциированные кубы) от точек обзора, ассоциированных с изображением глубины, то есть расстояния между точкой обзора и точками трехмерной сцены (например, глубина, ассоциированная с текущим пикселем 611, может быть равна 1254 единицам объема, глубина, ассоциированная с соседними пикселями с 612 по 619, тогда будет равна 1256, 1255, 1257, 1254, 1253, 1254, 1254 и 1255 соответственно). В соответствии с другим примером глубина может быть выражена в сантиметрах или метрах или с помощью любой другой метрики, соответствующей расстоянию, выраженному в сантиметрах или метрах от точки обзора, ассоциированной с изображением глубины.
Информация о глубине, ассоциированная с каждым соседним пикселем с 612 по 619, сравнивается с информацией о глубине, ассоциированной с текущим пикселем 611. Например, вычисляется разность глубин между каждым смежным пикселем с 612 по 619 и текущим пикселем 611. Когда разность больше или равна первому определенному значению (например, 2 единицам объема, когда глубина выражается с помощью числа единиц объема), это означает, что кубы, ассоциированные с рассматриваемым смежным пикселем и с текущим пикселем, не являются смежными в пространстве трехмерной сцены, что означает, что они не соприкасаются друг с другом в трехмерной сцене, что означает, что между ними есть дырка. Например, разность глубин между пикселями 612 и 611 равна +2, что означает, что между соответствующими кубами 601 и 602 в трехмерной сцене есть дырка, как это ясно видно на фиг. 6А (дырка, соответствующая пустому пространству, показана с помощью куба 6001). Разность глубин между пикселями 614 и 611 равна +3, что означает, что между соответствующими кубами 601 и 604 в трехмерной сцене есть дырка, как это ясно видно на фиг. 6А (дырка, соответствующая пустому пространству, показана с помощью кубов 6001 и 6002). В соответствии с другим примером, разность глубин между пикселями 617 и 611 равна +0, что означает, что между соответствующими кубами 607 и 601 в трехмерной сцене нет дырки, как это ясно видно на фиг. 6А (кубы 607 и 601 контактируют друг с другом, поскольку они оба принадлежат плоскости, заданной осями X и Y; они имеют общую грань). В соответствии с другим примером разность глубин между пикселями 619 и 611 равна +1, что означает, что между соответствующими кубами 609 и 601 в трехмерной сцене нет дырки, как это ясно видно на фиг. 6А (кубы 609 и 601 контактируют друг с другом, поскольку они имеют общий угол).
Та же самая обработка может выполняться для каждой точки трехмерной сцены (или по меньшей мере для каждой точки части точек трехмерной сцены, например, для каждой точки каждые две точки или каждой точки каждые 8 точек), т.е. каждая точка может обрабатываться как текущая точка, и ее глубина сравнивается с глубиной ее окрестности (т.е. в пространстве соответствующего изображения глубины).
В соответствии с одним вариантом осуществления, рассматриваются только положительные разности глубин, и они сравниваются с первым определенным значением. Отрицательную разность глубин можно рассматривать, принимая соседний пиксель, имеющий отрицательную разность глубин, в качестве нового или другого текущего пикселя. При рассмотрении только положительных разностей глубин ускоряется обработка трехмерной сцены для обнаружения дырки(ок).
В соответствии с другим вариантом осуществления, разность глубин между двумя смежными пикселями также сравнивается со вторым определенным значением, и только разности глубин, которые меньше или равны этому второму определенному значению, могут рассматриваться для определения, существует ли дырка между кубами, ассоциированными с соседними пикселями. Сравнение со вторым определенным значением позволяет гарантировать, что два куба принадлежат одному и тому же объекту трехмерной сцены или одной и той же части трехмерного объекта. Действительно, если разность глубин между двумя соседними пикселями (то есть между двумя соответствующими кубами) слишком велика, то это означает, что эти два куба не принадлежат одной и той же поверхности. Второе определенное значение может быть равно, например, 10, 50 или 100 единицам объема. Дырка между двумя кубами определяется при выполнении следующих условий:
Th1≤d≤Th2 Уравнение 1
где d соответствует разности глубин между двумя рассматриваемыми пикселями (и соответствующими кубами); Th1 соответствует первому определенному значению; и Th2 соответствует второму определенному значению.
Чтобы заполнить определенную дырку(и), можно генерировать дополнительные кубы/точки между двумя кубами/точками, имеющими разность глубин d (на изображении глубины), удовлетворяющими уравнению 1. Дополнительные кубы/точки могут генерироваться путем вычисления их соответствующей глубины и текстуры по глубине и текстуре, ассоциированной с кубами, используемыми для определения дырки (например, путем интерполяции точек/кубов, используемых для определения наличия дырки). Число сгенерированных дополнительных точек может быть функцией разности глубин, например, равной d минус 1 (d-1), когда разность глубин выражается с помощью числа единиц объема. Например, число точек/кубов, сгенерированных между точками/кубами 601 и 602, равно 1, а разность глубин между соответствующими пикселями 611 и 612 изображения глубины равна 2. В соответствии с другим примером, число точек/кубов, сгенерированных между точками/кубами 601 и 604, равно 2, при этом разность глубин между соответствующими пикселями 611 и 614 изображения глубины равна 3.
601
Дополнительная точка/куб 6001, сгенерированная между существующими точками/кубами 601 и 602, может принимать в качестве информации о текстуре среднее значение значений текстуры, ассоциированных с точками/кубами 601 и 602, а в качестве информации о глубине значение глубины, ассоциированное с точкой/кубом 601 плюс 1 (d+1).
601
601
Дополнительные точки/кубы 6001 и 6002, сгенерированные между существующими точками/кубами 601 и 604, могут получить в качестве информации о текстуре среднее значение значений текстуры, ассоциированных с точками/кубами 601 и 604, а в качестве информации о глубине значение глубины точки 601 плюс 1 для куба 6001 (d+1) и значение глубины точки 601 плюс 2 (d+2) для куба 6002.
В соответствии с одним вариантом осуществления, с текстурой существующих точек/кубов ассоциирован вес для определения текстуры дополнительной точки/куба. Например, больший вес может быть ассоциирован с текстурой точки 601, чем с текстурой точки 604 при вычислении текстуры дополнительной точки 6001, поскольку дополнительная точка 6001 находится ближе к точке 601, чем к точке 604. И наоборот, больший вес может быть ассоциирован с текстурой точки 604, чем с текстурой точки 601 при вычислении текстуры дополнительной точки 6002, поскольку дополнительная точка 6002 находится ближе к точке 604, чем к точке 601. Например, вес, ассоциированный со значением текстуры при интерполяции значения текстуры, которое должно быть ассоциировано со сгенерированной дополнительной точкой, может быть обратно пропорционален расстоянию (глубине), отделяющему генерируемую дополнительную точку от точки, использованной для ее генерации. Например, при вычислении текстуры дополнительной точки 6001 вес, равный 2, может быть ассоциирован с текстурой точки 601, и вес, равный 1, может быть ассоциирован с текстурой точки 604, при этом расстояние (разность глубин) между дополнительной точкой 6001 и точкой 601 равна 1 единице объема, в то время как расстояние (разность глубин) между дополнительной точкой 6001 и точкой 604 равна 2 единицам объема.
В соответствии с другим вариантом осуществления информация о текстуре, которая должна быть ассоциирована со сгенерированной дополнительной точкой, соответствует информации о текстуре одной из точек, использованных для ее генерации. Например, информация о текстуре точки 601 может быть применена к сгенерированной дополнительной точке 6001, а информация о текстуре точки 604 может быть применена к сгенерированной дополнительной точке 6002.
max
max
612
619
max
В соответствии с дополнительным опциональным вариантом осуществления, вместо генерации дополнительной точки(ек) каждый раз, когда определено, что разность глубин d (между текущим пикселем и пикселем, смежным с этим текущим пикселем) больше или равна первому определенному значению Th1 и меньше или равна второму определенному значению Th2, дополнительные точки генерируются только между текущим пикселем и пикселем, смежным с пикселем, имеющим наибольшую разность глубин d в пределах интервала [Th1; Th2]. Например, вместо создания дважды точки/куба 6001 (один раз c использованием точек/кубов 601 и 602 и один раз с использованием точки/кубов 601 и 604), точка/куб 6001 генерируется только один раз с использованием точек/кубов 601 и 604, поскольку разность глубин (т.е. +3) между точками 601 и 604 больше, чем разность глубин (то есть +2) между точками 601 и 602. Для достижения этой цели выбирается наибольшая разность глубин d (которая меньше или равна Th2) среди всех разностей глубин с d по d блока пикселей 6B, и только соседний пиксель 614, соответствующий наибольшей разности глубин d среди всех соседних пикселей с 612 по 619, рассматривается с текущим пикселем 611 для генерации дополнительных точек/кубов (из соответствующих точек/кубов 601 и 604).
Фиг. 8 показывает способ генерации одной или нескольких точек трехмерной сцены, реализованный, например, в устройстве 9 (описанном со ссылкой на фиг.9), в соответствии с неограничивающим вариантом осуществления настоящих принципов.
В первой операции 81 информация о глубине, ассоциированная с текущим пикселем, сравнивается с информацией о глубине, ассоциированной с пикселями, пространственно смежными с текущим пикселем на изображении глубины. Изображение глубины ассоциировано с существующими точками трехмерной сцены или частью трехмерной сцены (например, существующими точками трехмерного объекта). Каждый пиксель изображения глубины ассоциирован с соответствующей точкой трехмерной сцены, причем изображение глубины получается путем проецирования точек трехмерной сцены на соответствующие пиксели, а атрибуты глубины точек сохраняются в изображении глубины и ассоциируются с соответствующими пикселями.
Во второй операции 82 генерируются одна или несколько дополнительных точек трехмерной сцены в дополнение к текущей точке, которая ассоциирована с текущим пикселем. Текущая точка, например, генерируется путем обратного проецирования текущего пикселя, используя параметры проецирования, использованных для получения изображения глубины из существующих точек трехмерной сцены. Одна или более точек генерируются, например, путем использования текущей точки и точки трехмерной сцены, полученной путем обратного проецирования пикселя изображения глубины, смежного с текущим пикселем, когда разность глубин между текущим пикселем и соседним пикселем больше, чем первое значение Th1 и меньше, чем второе значение Th2. Дополнительные точки могут быть сгенерированы, например, для каждой пары точек (каждая пара включает в себя текущую точку и точку из окрестности текущей точки, соответствующую пикселю изображения глубины, смежному с текущим пикселем), имеющей разность глубин, лежащую между первым значением и вторым значением. Число генерируемых дополнительных точек зависит от разности глубин: чем больше разность глубин, тем больше число генерируемых дополнительных точек.
В соответствии с одним вариантом осуществления, смежный пиксель, имеющий наибольшую разность глубин с текущим пикселем, выбирается среди смежных пикселей, имеющих разность глубин с текущим пикселем, лежащую между первым значением и вторым значением, и дополнительные точки генерируются с использованием только текущей точка и соседней точки, соответствующей упомянутому смежному пикселю, имеющему наибольшую разность глубин.
Атрибуты, которые должны быть ассоциированы с дополнительными точками, в частности, атрибуты текстуры, определяются с использованием атрибутов текущих точек и соседних точек (соответствующих, соответственно, текущему пикселю и смежному пикселю), используемых для генерации дополнительных точек. Атрибуты текстуры получаются, например, путем интерполяции атрибутов текстуры текущей точки и соседней точки.
Первая и вторая операции могут повторяться для множества текущих пикселей (или, эквивалентно, соответствующих текущих точек трехмерной сцены), например, для каждого пикселя изображения глубины или для каждого пикселя части пикселей изображения глубины.
Фиг. 9 показывает пример архитектуры устройства 9, выполненного с возможностью реализации по меньшей мере одного из способов, описанных со ссылкой на фиг. 6 и 8, в соответствии с неограничивающим вариантом осуществления настоящих принципов.
Устройство 9 содержит следующие элементы, которые связаны шиной данных и адресной шиной 91:
- микропроцессор 92 (или CPU), который является, например, DSP (цифровым сигнальным процессором, Digital Signal Processor);
- ROM (или постоянную память) 93;
- RAM (или оперативную память) 94;
- интерфейс 95 хранения;
- интерфейс 96 ввода-вывода для приема данных для передачи из приложения; и
- источник питания, например, батарею.
В соответствии с одним примером, источник питания является внешним по отношению к устройству. Для каждой памяти, упомянутой выше, слово «регистр», используемое в описании, может соответствовать области небольшого размера (несколько битов) или очень большой области (например, всей программе или большому количеству принятых или декодированных данных). ROM 93 содержит по меньшей мере программу и параметры. ROM 93 может хранить алгоритмы и инструкции для выполнения способов в соответствии с настоящими принципами. При включении CPU 92 загружает программу в RAM и выполняет соответствующие инструкции.
RAM 94 содержит в регистре программу, выполняемую CPU 92 и загружаемую после включения устройства 9, входные данные в регистре, промежуточные данные способа в различных состояниях в регистре и другие переменные, используемые для выполнение способа в регистре.
Описанные здесь реализации могут быть реализованы, например, в способе или процессе, устройстве, компьютерном программном продукте, потоке данных или сигнале. Даже если реализация обсуждалась только в контексте одной формы реализации (например, обсуждалась только как способ или устройство), реализация обсуждавшихся признаков также может быть реализована в других формах (например, в форме программы). Устройство может быть реализовано, например, в подходящем аппаратном обеспечении, программном обеспечении и микропрограммном обеспечении. Способы могут быть реализованы, например, в устройстве, таком как, например, процессор, который относится к устройствам обработки, включающим в себя, в общем, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/персональные цифровые помощники («PDA») и другие устройства, обеспечивающие передачу информации между конечными пользователями.
Точки трехмерной сцены (например, точки облака точек) и ассоциированные данные/атрибуты (например, глубина и текстура точек) получают из источника. Например, источник принадлежит набору, содержащему:
- локальную память (93 или 94), например, видеопамять или RAM (оперативная память, Random-Access Memory), флэш-память, ROM (постоянная память, Read Only Memory), жесткий диск;
- интерфейс (95) хранения, например, интерфейс с поддержкой запоминающего устройства большой емкости, RAM, флэш-памяти, ROM, оптических или магнитных дисков;
- интерфейс связи (96), например, проводной интерфейс (например, интерфейс шины, интерфейс глобальной сети, интерфейс локальной сети) или беспроводной интерфейс (такой как интерфейс IEEE 802.11 или интерфейс Bluetooth); и
- пользовательский интерфейс, такой как графический пользовательский интерфейс, позволяющий пользователю вводить данные.
В соответствии с примерами декодирования/рендеринга или декодера(ов)/рендера(ов), декодированные точки или реконструированная трехмерная сцена посылается адресату; а именно, адресат принадлежит набору, содержащему:
- локальную память (93 или 94), например, видеопамять или RAM, флэш-память, жесткий диск;
- интерфейс (95) хранения, например, интерфейс с поддержкой запоминающего устройства большой емкости, RAM, флэш-памяти, ROM, оптических или магнитных дисков; и
- интерфейс связи (96), например, проводной интерфейс (например, интерфейс шины (например, USB (универсальная последовательная шина, Universal Serial Bus)), интерфейс глобальной сети, интерфейс локальной сети, HDMI (мультимедийный интерфейс высокой четкости, High Definition Multimedia Interface)) или беспроводной интерфейс (такой как интерфейс IEEE 802.11, WiFi  или Bluetooth ).
В соответствии с примерами устройство 9 выполнено с возможностью реализации способа, описанного со ссылкой на по меньшей мере одну из фиг. с 6 по 8, и принадлежит набору, содержащему:
- мобильное устройство;
- устройство связи;
- игровое устройство;
- планшет (или планшетный компьютер);
- ноутбук;
- фотоаппарат;
- видеокамеру;
- микросхему кодирования;
- сервер (например, широковещательный сервер, сервер видео по запросу или веб-сервер);
- телеприставку;
- телевизор; и
- дисплей (например, HMD).
Фиг. 10 показывает схему кодирования/декодирования трехмерной сцены, например облака 103 точек, в соответствии с конкретным и не ограничивающим вариантом осуществления настоящих принципов.
Облако 103 точек кодируется в кодированные данные в виде битового потока 104 посредством процесса 101 кодирования, реализованного в модуле M101. Битовый поток передается в модуль M102, который реализует процесс 102 декодирования для декодирования кодированных данных для получения декодированного облака 105 точек. Модули M101 и M102 могут быть аппаратным обеспечением, программным обеспечением или комбинацией аппаратного и программного обеспечения.
Облако 103 точек соответствует большому набору точек, представляющих объект, например внешнюю поверхность или внешнюю форму объекта. Облако точек может рассматриваться как структура на основе векторов, в которой каждая точка имеет свои координаты (например, трехмерные координаты XYZ или глубину/расстояние от данной точки обзора) и один или несколько компонентов. Примером компонента является компонент цвета, который может быть выражен в различных цветовых пространствах, например, RGB (красный, зеленый и синий) или YUV (Y является компонентом яркости, а UV являются двумя компонентами цветности). Облако точек может быть представлением объекта, как его можно видеть из одной или нескольких точек обзора. Облако точек может быть получено разными способами, например:
путем захвата реального объекта, снятого одной или несколькими камерами, опционально дополненными активным датчиком глубины;
путем захвата виртуального/синтетического объекта, снятого одной или несколькими виртуальными камерами в инструменте для моделирования;
из комбинации как реальных, так и виртуальных объектов.
Облако 103 точек может быть динамическим облаком точек, которое эволюционирует со временем, т.е. число точек может изменяться со временем и/или в зависимости от местоположения (например, по меньшей мере одной из координат X, Y и Z) одной или нескольких точек. Эволюция облака точек может соответствовать движению объекта, представленного облаком точек, и/или любому изменению формы объекта или части(ей) объекта.
Облако 103 точек может быть представлено в кадре или в одной или нескольких группах последовательно сменяющих друг друга кадров, причем каждый кадр содержит представление облака точек в определенное время «t». Одна или несколько групп последовательно сменяющих друг друга кадров могут формировать видео, представляющее, по меньшей мере, часть облака 103 точек.
Процесс 101 кодирования может, например, реализовывать внутрикадровое кодирование и/или межкадровое кодирование. Внутрикадровое кодирование основано на внутрикадровном предсказании, которое использует пространственную избыточность, то есть корреляцию между пикселями в пределах одного изображения, путем вычисления значений предсказания посредством экстраполяции из уже кодированных пикселей для эффективного дельта-кодирования. Межкадровое кодирование основано на межкадровном предсказании, которое использует временную избыточность. Кодируемые независимо во времени так называемые кадры «I» с внутренним кодированием используют только внутреннее кодирование. Предсказанные кадры «P» (или «B») с временным кодированием могут использовать внутрикадровое и межкадровое предсказание.
Процесс 102 декодирования может соответствовать, например, обратным операциям процесса 101 кодирования для декодирования данных, закодированных с помощью процесса кодирования.
Фиг. 11 показывает пример синтаксиса сигнала, передаваемого, например, между двумя удаленными устройствами, когда данные передаются по протоколу передачи на основе пакетов. Каждый передаваемый пакет P содержит заголовок H и данные PAYLOAD полезной информации.
В соответствии с вариантами осуществления, полезная информация PAYLOAD может содержать по меньшей мере один из следующих элементов:
- биты, которые представляют собой по меньшей мере одно изображение, представляющее собой облако точек в определенное время t, например, биты могут представлять собой информацию о текстуре и/или информацию о глубине, ассоциированную с пикселями по меньшей мере одного изображения;
- биты, которые представляют собой данные информации о проекции и соответствии между проекциями и изображениями по меньшей мере одного кадра.
Фиг. 12 показывает операции для кодирования трехмерной сцены, например, облака 103 точек в соответствии с конкретным и неограничивающим вариантом осуществления настоящих принципов. Операции могут быть частью процесса 101 кодирования и могут быть реализованы устройством 9 на фиг. 9.
В операции 120 данные кадра 20 облака точек кодируются кодером ENC1. Кадр 20 является, например, частью группы кадров (GOP) и содержит данные, представляющие собой облако точек в определенное время «t». Кадр 20 может содержать набор изображений, при этом по меньшей мере одно из изображений набора содержит атрибуты, которые соответствуют по меньшей мере части данных кадра 20. Атрибуты могут быть получены путем проецирования, в соответствии с определенной проекцией, части облака точек в каждом изображении, при этом атрибуты соответствуют атрибутам точек части облака точек, проецируемой на упомянутое каждое изображение. Атрибуты могут соответствовать информации о текстуре (или цвете) и/или информации о глубине (или расстоянии до точки обзора). Кодер ENC1, например, совместим с традиционным кодером, таким как:
JPEG, спецификация ISO/CEI 10918-1 Рекомендация UIT-T T.81, https://www.itu.int/rec/T-REC-T.81/en,
AVC, также называемый MPEG-4 AVC или h264. Описывается в UIT-T H.264 и ISO/CEI MPEG-4, Часть 10 (ISO/CEI 14496-10), http://www.itu.int/rec/T-REC-H.264/en,
HEVC (его описание можно найти на веб-сайте ITU, рекомендация T, серия H, h265, <http://www.itu.int/rec/T-REC-H.265-201612-I/en>) или
3D-HEVC (расширение HEVC, описание которого находится на веб-сайте ITU, рекомендация T, серия H, h265, http://www.itu.int/rec/T-REC-H.265-201612-I/en Приложение G и I).
Кодированные данные кадра 20 могут быть сохранены и/или переданы в битовом потоке 104.
В операции 121 кодированные данные кадра 20 декодируются декодером DEC1. Декодер DEC1 совместим с кодером ENC1, например, совместим с традиционным декодером, таким как:
JPEG,
AVC, также называемым MPEG-4 AVC или h264,
HEVC или
3D-HEVC (расширение HEVC).
Атрибуты, закодированные в операции 120, декодируются и извлекаются в операции 121, например, сохраняются в буферной памяти для использования при генерации опорного кадра 125, ассоциированного с кадром 20.
В операции 122, реализуемой с помощью модуля M122, каждое изображение обрабатывается, как описано со ссылкой на фиг. 6 и/или 8 для генерации точек облака точек и для заполнения дырок, которые могут быть, например, результатом процессов 120, 121 кодирования/декодирования.
Опорный кадр 125 может быть получен из скорректированного изображения(ий), полученного из модуля M122.
Опорный кадр 125 может использоваться в операции 124, реализуемой с помощью модуля M124. Операция 124 содержит, например, генерацию предсказателей для внешнего предсказания для кодирования одного или нескольких кадров облака точек, отличающихся от кадра 20 (например, кадров облака точек в определенные моменты времени, отличные от времени t кадра 20). Облако 103 точек или кадры, представляющие собой облако точек, затем могут быть закодированы посредством обращения к опорному кадру 125. В соответствии с одним вариантом осуществления, модуль M124 является частью кодера ENC1.
Естественно, таким же образом, как опорный кадр 125, может быть получено множество опорных кадров, при этом каждый опорный кадр из этого множества получается из конкретного кадра, представляющего собой облако точек, и при этом кодирование облака 103 точек обращается к одному или нескольким опорным кадрам.
Фиг. 13 показывает операции для декодирования кодированной версии облака 103 точек из потока 104 битов в соответствии с конкретным и неограничивающим вариантом осуществления настоящих принципов. Операции могут быть частью процесса 102 декодирования и могут быть реализованы устройством 9 на фиг. 9.
В операции 131 кодированные данные одного или нескольких кадров (например, кадров одной или нескольких GOP или внутреннего периода) облака точек декодируются декодером DEC2 из принятого битового потока 104. Битовый поток 104 содержит закодированные данные одного или нескольких кадров. Каждый кадр содержит набор изображений, по меньшей мере одно из изображений из этого набора содержит атрибуты, которые соответствуют по меньшей мере части данных изображения, которое было закодировано. Атрибуты могут быть получены путем проецирования в соответствии с первой проекцией части облака точек в каждом первом изображении, при этом атрибуты соответствуют атрибутам точек части облака точек, проецируемых на упомянутое каждое первое изображение. Атрибуты могут соответствовать информации о текстуре (или цвете) и/или информации о глубине (или расстоянии до точки обзора). Декодер DEC2 может соответствовать декодеру DEC1 на фиг. 12, и он совместим, например, с традиционным декодером, таким как:
JPEG,
AVC, также называемым MPEG-4 AVC или H264,
HEVC или
3D-HEVC (расширение HEVC).
Атрибуты, декодированные в операции 131, извлекаются, например, сохраняются в буферной памяти, для использования при генерации одного или более опорных кадров 135, при этом каждый опорный кадр ассоциирован с одним кадром. В дальнейшем для ясности и краткости будет рассматриваться только один опорный кадр, ассоциированный с одним кадром.
В операции 132, реализуемой с помощью модуля M132 (который может быть идентичен модулю M122 на фиг. 12), обрабатываются декодированные атрибуты, как описано со ссылкой на фиг. 6 и/или 8, для генерации точек облака точек и для заполнения дырок, которые могут возникать, например, в результате процессов 120, 131 кодирования/декодирования.
Опорный кадр 135 (который может быть идентичен опорному кадру 125 фиг. 12) может быть получен из кадра путем слияния декодированных первых атрибутов, полученных в операции 121, со вторыми атрибутами, полученными в операции 123. Опорный кадр может содержать ту же самую структуру, что и кадр, то есть такое же пространственное расположение множества изображений, но с другими данными, то есть с декодированными первыми атрибутами и полученными вторыми атрибутами. Подробное описание примера процесса для получения опорного кадра было представлено выше при описании фиг. 9.
Опорный кадр 135 может использоваться в операции 134, реализованной с помощью модуля М134. Операция 134 содержит, например, генерацию предсказателей для внешнего предсказания при декодировании закодированных данных, содержащихся в битовом потоке. Эти данные, ассоциированные с генерацией предсказателя, могут содержать
- тип предсказания, например флаг, указывающий, является ли режим предсказания внутренним или внешним,
- вектор движения и/или
- индекс для указания опорного кадра в списке опорных кадров.
Естественно, таким же образом, как опорный кадр 135, может быть получено множество опорных кадров, при этом каждый опорный кадр из этого множества получается из декодированных данных конкретного кадра, представляющего собой облако точек, при этом декодирование данных битового потока 104 может быть основано на одном или нескольких опорных кадрах для получения декодированного облака 105 точек.
Естественно, настоящий документ не ограничен вариантами осуществления, описанными выше.
Настоящий документ не ограничен способом генерации точки(ек) трехмерной сцены, но также распространяется на способ кодирования и/или декодирования трехмерной сцены/облака точек и/или на способ и устройство для передачи битового потока, полученного путем кодирования трехмерной сцены/облака точек, и/или способ и устройство для приема битового потока, полученного путем кодирования трехмерной сцены/облака точек. Настоящий документ также распространяется на способ и устройство для рендеринга и/или отображения декодированной трехмерной сцены/облака точек, то есть изображений трехмерного объекта, представленного декодированным облаком точек, причем с каждым изображением ассоциирована точка обзора.
Реализации, описанные здесь, могут быть реализованы, например, в способе или процессе, устройстве, программно реализованной программе, потоке данных или сигнале. Даже если реализация обсуждалась только в контексте одной формы реализации (например, обсуждалась только как способ или устройство), реализация обсуждавшихся признаков также может быть реализована в других формах (например, в форме программы). Устройство может быть реализовано, например, в подходящем аппаратном обеспечении, программном обеспечении и микропрограммном обеспечении. Способы могут быть реализованы, например, в устройстве, таком как, например, процессор, который относится к устройствам обработки, включающим в себя, в общем, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя коммуникационные устройства, такие как, например, смартфоны, планшеты, компьютеры, мобильные телефоны, портативные/персональные цифровые помощники ("PDA") и другие устройства, которые обеспечивают передачу информации между конечными пользователями.
Реализации различных процессов и признаков, описанных в настоящем описании, могут быть воплощены во множестве различных приложений или оборудовании, в частности, например, приложениях или оборудовании, связанных с кодированием данных, декодированием данных, созданием визуализации, обработкой текстур и другой обработкой изображений и соответствующей информации о текстурах и/или информации о глубине. Примеры такого оборудования включают в себя кодер, декодер, постпроцессор, обрабатывающие выходные данные декодера, препроцессор, обеспечивающий входные данные для кодера, видеокодер, видеодекодер, видеокодек, веб-сервер, абонентскую приставку, ноутбук, персональный компьютер, сотовый телефон, PDA, HMD (шлем-дисплей, Head-Mounting Display), умные очки и другие устройства связи. Как должно быть ясно, оборудование может быть мобильным и даже установленным в мобильном транспортном средстве.
Дополнительно способы могут быть реализованы с помощью инструкций, выполняемых процессором, и такие инструкции (и/или значения данных, создаваемых реализацией) могут храниться на процессорно-читаемом носителе, таком как, например, интегральная схема, программный носитель или другое запоминающее устройство, такое как, например, жесткий диск, компактная дискета (“CD”), оптический диск (такой как, например, DVD, часто называемый цифровым универсальным диском или цифровым видеодиском), оперативная память (“RAM”) или постоянная память (“ROM”). Инструкции могут формировать прикладную программу, материально воплощенную на процессорно-читаемом носителе. Инструкции могут быть, например, в аппаратном обеспечении, микропрограммном обеспечении, программном обеспечении или их комбинации. Инструкции могут быть найдены, например, в операционной системе, отдельном приложении или их комбинации. Поэтому процессор может быть охарактеризован как, например, и устройство, выполненное с возможностью выполнения процесса, и устройство, которое включает в себя процессорно-читаемый носитель (такой как запоминающее устройство), имеющий инструкции для выполнения процесса. Кроме того, процессорно-читаемый носитель может хранить, в дополнение или вместо инструкций, значения данных, создаваемых реализацией.
Как будет очевидно специалисту в данной области техники, реализации могут создавать множество сигналов, отформатированных для переноса информации, которая, например, может сохраняться или передаваться. Информация может включать в себя, например, инструкции для выполнения способа или данные, создаваемые одной из описанных реализаций. Например, сигнал может быть отформатирован для переноса в качестве данных правил для записи или чтения синтаксиса описанного варианта осуществления или переноса в качестве данных фактических значений синтаксиса, записанных с помощью описанного варианта осуществления. Такой сигнал может быть отформатирован, например, как электромагнитная волна (например, используя радиочастотную часть спектра) или как сигнал основной полосы частот. Форматирование может включать в себя, например, кодирование потока данных и модуляцию несущей с потоком кодированных данных. Информация, которую переносит сигнал, может быть, например, аналоговыми или цифровыми данными. Как известно, сигнал может быть передан по множеству различных проводных или беспроводных линий связи. Сигнал может быть сохранен на процессорно-читаемом носителе.
Выше был описан ряд реализаций. Однако следует иметь в виду, что могут быть сделаны различные модификации. Например, элементы различных реализаций могут быть объединены, дополнены, модифицированы или удалены для создания других реализаций. Кроме того, специалисту в данной области техники будет понятно, что другие структуры и процессы могут заменить раскрытые, и полученные реализации будут выполнять по меньшей мере по существу ту же самую функцию(и) по меньшей мере по существу таким же образом, чтобы достигнуть по меньшей мере по существу тот же самый результат(ы), как и раскрытые реализации. Соответственно, эти и другие реализации предусматриваются этой заявкой.