RU2767775C1 - Обработка облака точек - Google Patents
Обработка облака точек Download PDFInfo
- Publication number
- RU2767775C1 RU2767775C1 RU2021102866A RU2021102866A RU2767775C1 RU 2767775 C1 RU2767775 C1 RU 2767775C1 RU 2021102866 A RU2021102866 A RU 2021102866A RU 2021102866 A RU2021102866 A RU 2021102866A RU 2767775 C1 RU2767775 C1 RU 2767775C1
- Authority
- RU
- Russia
- Prior art keywords
- block
- fragment
- point cloud
- occupancy map
- pixels
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Изобретение относится к области обработки данных, в частности, обработки облака точек путем удаления незначимых точек облака точек. Технический результат заключается в повышении эффективности кодирования или декодирования видео. Указанный результат достигается тем, что получают 2-D фрагмент облака точек посредством проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов. Фрагмент разделяют на множество меньших блоков. Определяют количество пикселов в каждом из множества меньших блоков. Получают обновленную карту заполненности на основе определенного количества пикселов в каждом из множества меньших блоков. Получают восстановленное облако точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек. 3 н. и 12 з.п. ф-лы, 10 ил.
Description
Область техники
По меньшей мере один из настоящих вариантов относится, в общем, к обработке облака точек и, в частности, к способу и устройству для эффективной обработки облака точек путем удаления незначимых точек облака точек.
ПРЕдшествующий Уровень техники
Настоящий раздел предназначен, чтобы представить читателю различные аспекты уровня техники, которые могут быть связаны с различными аспектами по меньшей мере одного из настоящих вариантов осуществления, которые описаны и/или заявлены ниже. Это обсуждение представляется полезным для обеспечения читателя информацией предшествующего уровня техники для облегчения лучшего понимания различных аспектов по меньшей мере одного варианта осуществления.
Облака точек могут использоваться для различных целей, например, в случае культурного наследия/зданий, в которых объекты, такие как изваяния или сооружения, сканируются в 3D, чтобы совместно использовать пространственную конфигурацию объекта без отправки или посещения его. Кроме того, существует способ обеспечения сохранения знаний об объекте в случае, когда он может быть разрушен; например, как храм, разрушенный из-за землетрясения. Такие облака точек обычно являются статическими, цветными и очень большими.
Другим случаем использования является топография и картография, в которых использование 3D представлений обеспечивает получение карт, которые не ограничиваются планом, а могут включать в себя рельеф. Google-карты теперь являются хорошим примером 3D карт, но использует сетки вместо облаков точек. Тем не менее, облака точек могут быть подходящим форматом данных для трехмерных карт, и такие облака точек обычно являются статическими, цветными и очень большими.
Автомобильная промышленность и автономный автомобиль (без водителя) также представляют области, в которых могут использоваться облака точек. Автономные автомобили должны иметь возможность “зондировать” их окружающую среду, чтобы принимать правильные решения по вождению на основе реальности их непосредственных соседей. Типовые датчики, такие как лидары (оптические системы обнаружения и определения дальности), формируют динамические облака точек, которые используются средством принятия решения. Эти облака точек не предназначены для просмотра человеком, и они обычно являются небольшими, не обязательно цветными и динамическими с высокой частотой захвата. Эти облака точек могут иметь другие атрибуты, такие как отражательная способность, обеспечиваемая лидаром, поскольку этот атрибут обеспечивает надежную информацию о материале зондируемого объекта и может помочь в принятии решений.
Виртуальная реальность и иммерсивные миры стали в последнее время важными темами и прогнозируются многими как будущее 2D плоского видео. Основная идея заключается в погружении зрителя в среду, которая окружает зрителя, в отличие от стандартного телевизора, в котором зритель может только смотреть на виртуальный мир перед зрителем. Существует несколько градаций в иммерсивности (степени погружения) в зависимости от свободы зрителя в окружающей среде. Облако точек является хорошим кандидатом формата для распространения миров виртуальной реальности (VR).
Во многих применениях важно иметь возможность распространять динамические облака точек к конечному пользователю (или хранить их в сервере), потребляя только разумную величину битовой скорости (или пространства хранения для приложений хранения), при сохранении приемлемого (или предпочтительно очень хорошего) качества восприятия. Эффективное сжатие этих динамических облаков точек является ключевым моментом для того, чтобы сделать практичной цепочку распространения многих иммерсивных миров.
По меньшей мере, один вариант осуществления был разработан с учетом вышеизложенного.
Краткое описание Сущности изобретения
Ниже представлено упрощенное краткое описание по меньшей мере одного из настоящих вариантов осуществления для обеспечения базового понимания некоторых аспектов настоящего раскрытия. Это краткое описание не является исчерпывающим обзором варианта осуществления. Оно не предназначено для идентификации ключевых или критических элементов варианта осуществления. Последующее краткое описание сущности изобретения просто представляет некоторые аспекты по меньшей мере одного из настоящих вариантов осуществления в упрощенной форме в качестве вводной части к более подробному описанию, предоставленному далее в настоящем документе.
В соответствии с общим аспектом по меньшей мере одного варианта осуществления, обеспечен способ сокращения облака точек, представляющего изображение, содержащий: получение 2-D фрагмента (патча) облака точек путем проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; разделение фрагмента на множество меньших блоков; определение количества пикселов в каждом из множества меньших блоков; получение обновленной карты заполненности (занятости) на основе определенного количества пикселов в каждом из множества меньших блоков; и получение восстановленного облака точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
В соответствии с другим общим аспектом по меньшей мере одного варианта осуществления, обеспечено устройство для сокращения облака точек, представляющего изображение, содержащее: средство для получения 2-D фрагмента облака точек посредством проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; средство для разделения фрагмента на множество меньших блоков; средство для определения количества пикселов в каждом из множества меньших блоков; средство для получения обновленной карты заполненности на основе определенного количества пикселов в каждом из множества меньших блоков; и средство для получения восстановленного облака точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
В соответствии с другим общим аспектом по меньшей мере одного варианта осуществления, обеспечено устройство для сокращения облака точек, представляющего изображение, содержащее один или более процессоров, причем один или более процессоров выполнены с возможностью: получать 2-D фрагмент облака точек посредством проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; разделять фрагмент на множество меньших блоков; определять количество пикселов в каждом из множества меньших блоков; получать обновленную карту заполненности на основе определенного количества пикселов в каждом из множества меньших блоков; и получать восстановленное облако точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
В соответствии с другим вариантом осуществления, обеспечен битовый поток, содержащий восстановленное облако точек, при этом битовый поток формируется посредством: получения 2-D фрагмента облака точек посредством проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; разделение фрагмента на множество меньших блоков; определение количества пикселов в каждом из множества меньших блоков; получение обновленной карты заполненности на основе определенного количества пикселов в каждом из множества меньших блоков; и получение восстановленного облака точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
Один или более из по меньшей мере одного варианта осуществления также обеспечивают устройство, компьютерный программный продукт, долговременный машиночитаемый носитель и сигнал.
Конкретный характер по меньшей мере одного из настоящих вариантов осуществления, а также других объектов, преимуществ, признаков и применений по меньшей мере одного из настоящих вариантов осуществления станет очевидным из последующего описания примеров, рассматриваемых совместно с прилагаемыми чертежами.
Краткое Описание Чертежей
На чертежах проиллюстрированы примеры нескольких вариантов осуществления. На чертежах показано следующее:
Фиг. 1 иллюстрирует блок-схему примера двухуровневой структуры кодирования облака точек в соответствии с по меньшей мере одним из настоящих вариантов осуществления;
Фиг. 2 иллюстрирует блок-схему примера двухуровневой структуры декодирования облака точек в соответствии с по меньшей мере одним из настоящих вариантов осуществления;
Фиг. 3 иллюстрирует блок-схему примера кодера облака точек на основе изображения в соответствии с по меньшей мере одним из настоящих вариантов осуществления;
Фиг. 4 иллюстрирует блок-схему примера декодера облака точек на основе изображения в соответствии с по меньшей мере одним из настоящих вариантов осуществления;
Фиг. 5 иллюстрирует пример холста, содержащего 2 фрагмента и их 2D ограничивающие прямоугольники;
Фиг. 6 иллюстрирует пример двух промежуточных выборок, расположенных между двумя 3D выборками вдоль линии проекции;
Фиг. 7 схематично иллюстрирует пример синтаксиса битового потока, представляющего базовый уровень BL в соответствии с по меньшей мере одним из настоящих вариантов осуществления;
Фиг 8 и фиг. 8A иллюстрируют два варианта осуществления того, как исходный фрагмент облака точек обрабатывается или восстанавливается с помощью карты заполненности и индекса блока к фрагменту; и
Фиг. 9 иллюстрирует блок-схему примера системы, в которой реализованы различные аспекты и варианты осуществления.
Подробное Описание
По меньшей мере один из настоящих вариантов осуществления описан более подробно ниже со ссылкой на прилагаемые чертежи, на которых показаны примеры по меньшей мере одного из настоящих вариантов осуществления. Однако вариант осуществления может быть воплощен во многих альтернативных формах и не должен рассматриваться как ограниченный примерами, изложенными в настоящем документе. Соответственно, должно быть понятно, что не существует намерения ограничивать варианты осуществления конкретными раскрытыми формами. Напротив, раскрытие предназначено для охвата всех модификаций, эквивалентов и альтернатив, попадающих в сущность и объем этой заявки.
Когда на чертеже представлена блок-схема последовательности операций, следует понимать, что она также предоставляет блок-схему соответствующего устройства. Аналогично, когда на чертеже представлена блок-схема, следует понимать, что она также предоставляет блок-схему соответствующего способа/процесса.
Одинаковые или подобные элементы на чертежах обозначены одинаковыми ссылочными позициями.
Аспекты, описанные и рассматриваемые ниже, могут быть реализованы во многих различных формах. На фиг. 1-9 представлены некоторые варианты осуществления, но возможны другие варианты осуществления, и обсуждение, представленное на фиг. 1-9, не ограничивает широту вариантов осуществления.
По меньшей мере один из аспектов, в общем, относится к кодированию и декодированию облака точек, и по меньшей мере один другой аспект, в общем, относится к передаче сгенерированного или закодированного битового потока.
Более точно, различные способы и другие аспекты, описанные здесь, могут использоваться для модификации модулей, например основанных на изображениях кодера 3000 и декодера 4000, как показано на фиг. 3 и фиг. 4 соответственно.
Кроме того, настоящие аспекты не ограничиваются стандартами MPEG, такими как MPEG-1 часть 5, который относится к сжатию облака точек, и могут быть применены, например, к другим стандартам и рекомендациям, уже существующим или будущим, и расширениям любых таких стандартов и рекомендаций (включая MPEG-1 часть 5). Если не указано иначе или технически не исключено, аспекты, описанные в настоящей заявке, могут быть использованы по отдельности или в комбинации.
В дальнейшем, данные изображения относятся к данным, например, к одному или нескольким массивам 2D выборок в конкретном формате изображения/видео. Конкретный формат изображения/видео может специфицировать информацию, относящуюся к пиксельным значениям изображения (или видео). Конкретный формат изображения/видео может также специфицировать информацию, которая может использоваться дисплеем и/или любым другим устройством, например, для визуализации и/или декодирования изображения (или видео). Изображение обычно включает в себя первый компонент в форме первого 2D массива выборок, обычно представляющего сигнал яркости (или яркость) изображения. Изображение может также включать в себя второй компонент и третий компонент в форме других 2D массивов выборок, обычно представляющих сигнал цветности (или цветность) изображения. Некоторые варианты осуществления представляют одну и ту же информацию с использованием набора 2D массивов цветовых выборок, таких как традиционное трехцветное RGB представление.
Пиксельное значение представлено в одном или нескольких вариантах осуществления вектором С значений, где С - количество компонентов. Каждое значение вектора обычно представляется количеством битов, которые могут определять динамический диапазон пиксельных значений.
Блок изображения означает набор пикселов, принадлежащих к изображению. Пиксельные значения блока изображения (или данные блока изображения) относятся к значениям пикселов, которые относятся к этому блоку изображения. Блок изображения может иметь произвольную форму, хотя обычно это прямоугольники.
Облако точек может быть представлено набором 3D выборок в 3D объемном пространстве, которые имеют уникальные координаты и которые также могут иметь один или более атрибутов.
3D выборка этого набора данных может быть определена ее пространственным положением (координатами X, Y и Z в 3D пространстве) и, возможно, одним или несколькими ассоциированными атрибутами, такими как цвет, представленный в цветовом пространстве RGB или YUV, например прозрачность, отражательная способность, двухкомпонентный нормальный вектор или любой признак, представляющий признак этой выборки. Например, 3D выборка может быть определена 6 компонентами (X, Y, Z, R, G, B) или эквивалентно (X, Y, Z, y, U, V), где (X, Y, Z) определяет координаты точки в 3D пространстве, и (R, G, B) или (y, U, V) определяет цвет этой 3D выборки. Один и тот же тип атрибута может присутствовать несколько раз. Например, множество цветовых атрибутов могут предоставлять цветовую информацию с различных точек зрения.
Облако точек может быть статическим или динамическим в зависимости от того, изменяется или нет облако в зависимости от времени. Статическое облако точек или экземпляр динамического облака точек обычно называют кадром облака точек. Следует отметить, что в случае динамического облака точек, количество точек, как правило, не является постоянным, а наоборот, обычно изменяется во времени. Более обобщенно, облако точек может рассматриваться как динамическое, если что-либо изменяется во времени, например, количество точек, положение одной или нескольких точек или любой атрибут любой точки.
В качестве примера, 2D выборка может быть определена 6 компонентами (u, v, Z, R, G, B) или эквивалентно (u, v, Z, y, U, V). (u, v) определяет координаты 2D выборки в 2D пространстве плоскости проекции. Z является значением глубины проецируемой 3D выборки на эту плоскость проекции. (R, G,B) или (y, U,V) определяет цвет этой 3D выборки.
Фиг. 1 иллюстрирует блок-схему примера двухуровневой структуры 1000 кодирования облака точек в соответствии с по меньшей мере одним из настоящих вариантов осуществления.
Двухуровневая структура 1000 кодирования облака точек может обеспечивать битовый поток В, представляющий входной кадр IPCF облака точек. Возможно, входной кадр IPCF облака точек представляет кадр динамического облака точек. Тогда кадр динамического облака точек может кодироваться двухуровневой структурой 1000 кодирования облака точек независимо от другого кадра.
В основном, двухуровневая структура 1000 кодирования облака точек может обеспечивать возможность структурировать битовый поток В как базовый уровень BL и расширенный уровень EL. Базовый уровень BL может обеспечивать представление с потерями входного кадра IPCF облака точек, и расширенный уровень EL может обеспечить представление более высокого качества (возможно без потерь) путем кодирования изолированных точек, не представленных базовым уровнем BL.
Базовый уровень BL может быть обеспечен основанным на изображении кодером 3000, как показано на фиг. 3. Основанный на изображении кодер 3000 может предоставлять геометрические/текстурные изображения, представляющие геометрию/атрибуты 3D выборок входного кадра IPCF облака точек. Это может позволить отбрасывать изолированные трехмерные выборки. Базовый уровень BL может быть декодирован основанным на изображении декодером 4000, как показано на фиг. 4, который может обеспечить промежуточный восстановленный кадр IRPCF облака точек.
Затем, возвращаясь к двухуровневому кодированию 1000 облака точек согласно фиг. 1, компаратор COMP может сравнивать 3D выборки входного кадра IPCF облака точек с 3D выборками промежуточного восстановленного кадра IRPCF облака точек для того, чтобы обнаружить/локализовать пропущенные/изолированные 3D выборки. Затем кодер ENC может кодировать пропущенные 3D выборки и может обеспечивать расширенный уровень EL. Наконец, базовый уровень BL и расширенный уровень EL могут быть мультиплексированы вместе мультиплексором MUX так, чтобы сгенерировать битовый поток В.
В соответствии с одним вариантом осуществления, кодер ENC может содержать детектор, который может обнаруживать и ассоциировать 3D опорную выборку R промежуточного восстановленного кадра IRPCF облака точек с пропущенными 3D выборками M.
Например, 3D опорная выборка R, ассоциированная с пропущенной 3D выборкой M, может быть ближайшим соседом М в соответствии с заданной метрикой.
В соответствии с вариантом осуществления, кодер ENC может затем кодировать пространственные местоположения пропущенных 3D выборок M и их атрибуты как разности, определенные в соответствии с пространственными местоположениями и атрибутами 3D опорных выборок R.
В одном варианте, эти разности могут кодироваться отдельно.
Например, для пропущенной 3D выборки M с пространственными координатами x(M), y(M) и z(M), разность Dx(M) положения x-координаты, разность Dy(M) положения y-координаты, разность Dz(M) положения z-координаты, разность Dr(M) компонента R-атрибута, разность Dg(M) компонента G-атрибута и разность Db(M) компонента В-атрибута могут быть вычислены следующим образом:
Dx(M)=x(M)-x(R),
где х(М) представляет собой х-координату 3D выборки M, соответственно R в геометрическом изображении, представленном на фиг. 3,
Dy(M)=y(M)-y(R)
где y(M) представляет собой y-координату 3D выборки M, соответственно R в геометрическом изображении, представленном на фиг. 3,
Dz(M)=z(M)-z(R)
где z(M) представляет собой z-координату 3D выборки M, соответственно R в геометрическом изображении, представленном на фиг. 3,
Dr(M)=R(M)-R(R)
где R(M), соответственно R(R) представляет собой r-цветовой компонент атрибута цвета 3D выборки M, соответственно R,
Dg(M)=G(M)-G(R)
где G(M), соответственно G(R) представляет собой g-цветовой компонент атрибута цвета 3D выборки M, соответственно R,
Db(M)=B(M)-B(R)
где В(M), соответственно В(R) представляет собой b-цветовой компонент атрибута цвета 3D выборки M, соответственно R.
Фиг. 2 иллюстрирует блок-схему примера двухуровневой структуры 2000 декодирования облака точек в соответствии с по меньшей мере одним из настоящих вариантов осуществления.
Поведение двухуровневой структуры 2000 декодирования облака точек зависит от ее возможностей.
Двухуровневая структура 2000 декодирования облака точек с ограниченными возможностями может осуществлять доступ только к базовому уровню BL из битового потока В с использованием демультиплексора DMUX, а затем может предоставлять верную (но с потерями) версию IRPCF входного кадра IPCF облака точек путем декодирования базового уровня BL с помощью декодера 4000 Облака точек, как показано на фиг. 4.
Двухуровневая структура 2000 декодирования облака точек с полными возможностями может осуществлять доступ как к базовому уровню BL, так и к расширенному уровню EL из битового потока В с использованием демультиплексора DMUX. Декодер 4000 облака точек, как показано на фиг. 4, может определять промежуточный восстановленный кадр IRPCF облака точек из основного уровня BL. Декодер DEC может определять комплементарный кадр CPCF облака точек из расширенного уровня EL. Объединитель COM затем может объединять вместе промежуточный восстановленный кадр IRPCF облака точек и комплементарный кадр CPCF облака точек, чтобы, таким образом, обеспечить более высококачественное (возможно без потерь) представление (восстановление) CRPCF входного кадра IPCF облака точек.
Фиг. 3 иллюстрирует блок-схему примера основанного на изображении кодера 3000 облака точек в соответствии с по меньшей мере одним из настоящих вариантов осуществления.
Основанный на изображении кодер 3000 облака точек использует существующие кодеки видео для сжатия информации о геометрии и текстуре (атрибуте) динамического облака точек. Это достигается по существу путем преобразования данных облака точек в набор различных последовательностей видео.
В конкретных вариантах осуществления, два видео, одно для захвата геометрической информации данных облака точек и другое для захвата текстурной информации, могут быть сгенерированы и сжаты с использованием существующих кодеков видео. Примером существующего кодека видео является кодер/декодер главного профиля HEVC (ITU-T H.265 Telecommunication standardization sector of ITU (02/2018), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265).
Дополнительные метаданные, которые используются для интерпретации двух видео, обычно также генерируются и сжимаются по отдельности. Такие дополнительные метаданные включают в себя, например, карту заполненности ОМ и/или вспомогательную информацию PI о фрагменте.
Сгенерированные битовые потоки видео и метаданные могут быть затем мультиплексированы вместе для формирования комбинированного битового потока.
Следует отметить, что метаданные, как правило, представляют малый объем во всей информации. Основной объем информации приходится на битовые потоки видео.
Пример такого процесса кодирования/декодирования облака точек задается алгоритмом Тестовой модели Категории 2 (также обозначается как Сжатие облака на основе видео, сокращенно как V-PCC), который реализует проект стандарта MPEG, как определено в ISO/IEC JTC1/SC29/WG1 1 MPEG2019/w18180 (January 2019, Marrakesh).
На этапе 3100, модуль PGM может генерировать по меньшей мере один фрагмент путем разложения 3D выборок набора данных, представляющего входной кадр IPCF облака точек, на 2D выборки на плоскости проекции, используя стратегию, которая обеспечивает наилучшее сжатие.
Фрагмент может быть определен как набор 2D выборок.
Например, в V-РСС, нормаль в каждой 3D выборке сначала оценивается, как описано, например, в Hoppe et al. (Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, Werner Stuetzle. Surface reconstruction from unorganized points. ACM SIGGRAPH 1992 Proceedings, 71-78). Далее, начальную кластеризацию входного кадра IPCF облака получают путем ассоциирования каждой 3D выборки с одной из шести ориентированных плоскостей 3D ограничивающего прямоугольника, окружающего 3D выборки входного кадра IPCF облака точек. Более точно, каждая 3D выборка кластеризуется и ассоциируется с ориентированной плоскостью, которая имеет ближайшую нормаль (т.е. максимизирует скалярное произведение нормали точки и нормали плоскости). Затем 3D выборки проецируются на ассоциированные с ними плоскости. Набор 3D выборок, который образует связанную область в своей плоскости, упоминается как связанный компонент. Связанный компонент представляет собой набор из по меньшей мере одной 3D выборки, имеющей одинаковую нормаль и ту же самую ассоциированную ориентированную плоскость. Начальная кластеризация затем уточняется путем итерационного обновления кластера, ассоциированного с каждой 3D выборкой, на основе ее нормали и кластеров ее ближайших соседних выборок. Последний этап состоит в генерации одного фрагмента из каждого связанного компонента, что осуществляется путем проецирования 3D выборок каждого связанного компонента на ориентированную плоскость, ассоциированную со связанным компонентом. Фрагмент ассоциируется с вспомогательной информацией PI фрагмента, которая представляет вспомогательную информацию фрагмента, определенную для каждого фрагмента, для интерпретации спроецированных 2D выборок, которые соответствуют информации о геометрии и/или атрибуте.
В V-РСС, например, вспомогательная информация PI фрагмента включает в себя 1) информацию, указывающую одну из шести ориентированных плоскостей 3D ограничивающего прямоугольника, охватывающего 3D выборки связанного компонента; 2) информацию относительно нормали к плоскости; 3) информацию, определяющую 3D местоположение связанного компонента относительно фрагмента, представленного в терминах глубины, тангенциального сдвига и би-тангенциального сдвига; и 4) информацию, такую как координаты (u0, v0, u1, v1) в плоскости проекции, определяющей 2D ограничивающий прямоугольник, охватывающий фрагмент.
На этапе 3200, модуль компоновки фрагмента, PPM, может отображать (помещать) по меньшей мере один сгенерированный фрагмент на 2D сетку (также называемую холстом) без какого-либо перекрытия способом, который обычно минимизирует неиспользуемое пространство, и может гарантировать, что каждый блок T×T (например, 16×16) 2D сетки ассоциирован с уникальным фрагментом. Заданный минимальный размер блока T×T 2D сетки может специфицировать минимальное расстояние между отдельными фрагментами, помещенными на эту 2D сетку. Разрешение 2D сетки может зависеть от размера входного облака точек, и его ширина W и высота H и размер Т блока могут передаваться как метаданные в декодер.
Вспомогательная информация PI фрагмента может дополнительно включать в себя информацию относительно ассоциации между блоком 2D сетки и фрагментом.
В V-PCC, вспомогательная информация PI может включать в себя информацию индекса блока к фрагменту (BlockToPatch), которая определяет ассоциацию между блоком 2D сетки и индексом фрагмента.
На фиг. 5 показан пример холста С, содержащего 2 фрагмента Р1 и Р2 и ассоциированные с ними 2D ограничивающие прямоугольники В1 и В2. Следует отметить, что два ограничивающих прямоугольника могут перекрываться в холсте С, как показано на фиг. 5. 2D сетка (разделение холста) представлена только внутри ограничивающего прямоугольника, но разделение холста также происходит за пределами этих ограничивающих прямоугольников. Ограничивающий прямоугольник, ассоциированный с фрагментом, может быть разделен на блоки T×T, как правило, T=16.
Блоки T×T, содержащие 2D выборки, принадлежащие фрагменту, могут рассматриваться как занятые (заполненные) блоки. Каждый заполненный блок холста представлен конкретным пиксельным значением (например 1) в карте заполненности ОМ, и каждый незаполненный блок холста представлен другим конкретным значением, например 0. Тогда пиксельное значение карты заполненности ОМ может указывать, заполнен ли блок T×T холста, то есть содержит 2D выборки, которые принадлежат фрагменту.
На фиг. 5, заполненный блок представлен белым блоком, а светло-серые блоки представляют незаполненные блоки. Процессы генерации изображения (этапы 3300 и 3400 на фиг. 3) используют отображение по меньшей мере одного сгенерированного фрагмента на 2D сетку, вычисленную на этапе 3200, для сохранения геометрии и текстуры входного кадра IPCF облака точек как изображений.
На этапе 3300, генератор геометрического изображения, GIG, может генерировать по меньшей мере одно геометрическое изображение G1 из входного кадра IPCF облака точек, карты заполненности ОМ и вспомогательной информации PI фрагмента. Генератор GIG геометрического изображения может использовать информацию карты заполненности для того, чтобы обнаружить (локализовать) заполненные блоки и, таким образом, непустые пикселы в геометрическом изображении GI.
Геометрическое изображение GI может представлять геометрию входного кадра IPCF облака точек и может представлять собой монохроматическое изображение W×H пикселов, представленных, например, в YUV420-8-битовом формате.
Для того чтобы лучше обрабатывать случай, когда множество 3D выборок проецируется (отображается) на одну и ту же 2D выборку плоскости проекции (вдоль одного и того же направления (линии) проекции), может генерироваться множество изображений, упоминаемых как уровни. Таким образом, различные значения глубины D1, …, Dn могут быть ассоциированы с 2D выборкой фрагмента, и затем может быть сгенерировано множество геометрических изображений.
В V-PCC, 2D выборки фрагмента проецируются на два уровня. Первый уровень, также называемый ближним уровнем, может хранить, например, значения D0 глубины, ассоциированные с 2D выборками с меньшими глубинами. Второй уровень, упоминаемый как дальний уровень, может хранить, например, значения D1 глубины, ассоциированные с 2D выборками с большими глубинами. Альтернативно, второй уровень может сохранять значения разности между значениями D1 и D0 глубины. Например, информация, сохраненная вторым изображением глубины, может находиться в интервале [0, Δ], соответствующем значениям глубины в диапазоне [D0, D0+Δ], где Δ является параметром, определяемым пользователем, который описывает толщину поверхности.
Таким образом, второй уровень может содержать существенные контурно-подобные высокочастотные признаки. Таким образом, очевидно, что изображение второй глубины может быть трудным для кодирования с использованием унаследованного кодера видео, и поэтому значения глубины могут плохо восстанавливаться из декодированного изображения второй глубины, что приводит к плохому качеству геометрии восстановленного кадра облака точек.
Согласно варианту осуществления модуль GIG генерации геометрического изображения может кодировать (получать) значения глубины, ассоциированные с 2D выборками первого и второго уровней, с использованием вспомогательной информации PI фрагмента.
В V-РСС, местоположение 3D выборки во фрагменте с соответствующим связанным компонентом может быть выражено в терминах глубины δ(u, v), тангенциального сдвига s(u, v) и би-тангенциального сдвига r(u, v) следующим образом:
δ(u, v) = δ0+g(u, v)
s(u, v) = s0 - u0+u
r(u, v) = r0 - v0+v
где g(u, v) представляет собой компонент яркости геометрического изображения, (u, v) представляет собой пиксел, ассоциированный с 3D выборкой на плоскости проекции, (δ0, s0, r0) представляет собой 3D местоположение соответствующего фрагмента связанного компонента, которому принадлежит 3D выборка, и (u0, v0, u1, v1) являются координатами в плоскости проекции, определяющей 2D ограничивающий прямоугольник, охватывающий проекцию фрагмента, ассоциированного со связанным компонентом.
Таким образом, модуль GIG генерации геометрического изображения может кодировать (получать) значения глубины, ассоциированные с 2D выборками уровня (первого или второго или обоих) в качестве компонента яркости g(u, v), заданного посредством: g(u, v) = δ(u, v) - δ0. Следует отметить, что эта взаимосвязь может использоваться для восстановления местоположений 3D выборки (δ0, s0, r0) из восстановленного геометрического изображения g(u, v) с сопутствующей вспомогательной информацией PI фрагмента.
В соответствии с вариантом осуществления, режим проекции может использоваться для указания того, может ли первое геометрическое изображение GI0 сохранять значения глубины 2D выборок либо первого, либо второго уровня, и второе геометрическое изображение GI1 может сохранять значения глубины, ассоциированные с 2D выборками либо второго, либо первого уровня.
Например, когда режим проекции равен 0, то первое геометрическое изображение GI0 может сохранять значения глубины 2D выборок первого уровня, и второе геометрическое изображение GI1 может сохранять значения глубины, ассоциированные с 2D выборками второго уровня. Взаимно, когда режим проекции равен 1, первое геометрическое изображение GI0 может сохранять значения глубины 2D выборок второго уровня, и второе геометрическое изображение GI1 может сохранять значения глубины, ассоциированные с 2D выборками первого уровня.
В соответствии с вариантом осуществления, режим проекции кадра может использоваться для указания того, используется ли режим фиксированной проекции для всех фрагментов, или используется ли режим переменной проекции, в котором каждый фрагмент может использовать другой режим проекции.
Режим проекции и/или режим проекции кадра могут быть переданы как метаданные.
Алгоритм принятия решения о режиме проекции кадра может быть обеспечен, например, в разделе 2.2.1 V-PCC.
В соответствии с вариантом осуществления, когда проекция кадра указывает, что может использоваться режим переменной проекции, может использоваться режим проекции фрагмента для указания соответствующего режима для использования, чтобы (де-) проецировать фрагмент.
Режим проекции фрагмента может быть передан как метаданные и может представлять собой, возможно, информацию, включенную во вспомогательную информацию PI фрагмента.
Алгоритм принятия решения о режиме проекции фрагмента обеспечен, например, в разделе 2.2.1.3.2 V-PCC.
В соответствии с вариантом осуществления этапа 3300, пиксельное значение в первом геометрическом изображении, например, GI0, соответствующее 2D выборке (u, v) фрагмента, может представлять значение глубины по меньшей мере одной промежуточной 3D выборки, определенной вдоль линии проекции, соответствующей 2D выборке (u, v). Более точно, промежуточные 3D выборки располагаются вдоль линии проекции и совместно используют те же координаты 2D выборки (u, v), значение D1 глубины которой закодировано во втором геометрическом изображении, например GI1. Кроме того, промежуточные 3D выборки могут иметь значения глубины между значением D0 глубины и значением D1 глубины. Назначенный бит может быть ассоциирован с каждой из промежуточных 3D выборок и установлен в 1, если существует промежуточная 3D выборка, и 0 в противном случае.
Фиг. 6 иллюстрирует пример двух промежуточных 3D выборок Рi1 и Pi2, расположенных между двумя 3D выборками P0 и P1 вдоль линии PL проекции. 3D выборки P0 и P1 имеют соответственно значения глубины, равные D0 и D1. Значения глубины Di1 и Di2 соответственно двух промежуточных 3D выборок Рi1 и Pi2 больше чем D0, и меньше чем D1.
Затем все назначенные биты по линии проекции могут быть конкатенированы для формирования кодового слова, обозначаемого далее как кодовое слово расширенной карты заполненности (EOM). Как показано на фиг. 6, в предположении кодового слова EOM длиной 8 битов, 2 бита равны 1 для указания местоположения двух 3D выборок Рi1 и Pi2. Наконец, все кодовые слова ЕОМ могут быть упакованы в изображение, например карту заполненности OM. В этом случае, по меньшей мере один фрагмент холста может содержать по меньшей мере одно кодовое слово EOM. Такой фрагмент обозначен как опорный фрагмент, и блок опорного фрагмента обозначается как опорный блок EOM. Таким образом, пиксельное значение карты заполненности ОМ может быть равно первому значению, например 0, для указания незаполненного блока холста или другому значению, например больше 0, для указания либо заполненного блока холста, например, когда D1-D0<=1, либо для указания опорного блока ЕОМ холста, когда, например, D1-D0>1.
Местоположения пикселов в карте заполненности ОМ, которая указывает опорные блоки ЕОМ, и значения битов кодового слова EOM, которые получаются из значений этих пикселов, указывают 3D координаты промежуточных 3D выборок.
На этапе 3400, генератор TIG текстурного изображения может генерировать по меньшей мере одно текстурное изображение TIG из входного кадра IPCF облака точек, карты заполненности ОМ, вспомогательной информации PI фрагмента и геометрии восстановленного кадра облака точек, полученного из по меньшей мере одного декодированного геометрического изображения DGI, выведенного из декодера видео VDEC (этап 4200 на фиг. 4).
Текстурное изображение TI может представлять текстуру входного кадра IPCF облака точек и может быть изображением W×H пикселов, представленным, например, в YUV420-8-битовом формате.
Генератор TG текстурного изображения может использовать информацию карты заполненности для того, чтобы обнаруживать (локализовать) заполненные блоки и, таким образом, непустые пикселы в текстурном изображении.
Генератор TIG текстурного изображения может быть приспособлен, чтобы генерировать и ассоциировать текстурное изображение TI с каждым геометрическим изображением/уровнем DGI.
В соответствии с вариантом осуществления, генератор TIG текстурного изображения может кодировать (сохранять) значения T0 текстуры (атрибута), ассоциированные с 2D выборками первого уровня, как пиксельные значения первого текстурного изображения TI0 и значения T1 текстуры, ассоциированные с 2D выборками второго уровня, как пиксельные значения второго текстурного изображения TI1.
Альтернативно, модуль TIG генерации текстурного изображения может кодировать (сохранять) значения T1 текстуры, ассоциированные с 2D выборками второго уровня, как пиксельные значения первого текстурного изображения TI0 и значения D0 текстуры, ассоциированные с 2D выборками первого уровня, как пиксельные значения второго геометрического изображения GI1.
Например, цвета 3D выборок могут быть получены, как описано в разделе 2.2.3, 2.2.4, 2.2.5, 2.2.8 или 2.5 V-PCC.
Значения текстуры двух 3D выборок хранятся либо в первом, либо во втором текстурных изображениях. Но значения текстуры промежуточных 3D выборок не могут быть сохранены ни в этом первом текстурном изображении TI0, ни во втором текстурном изображении TI1, потому что местоположения проецируемых промежуточных 3D выборок соответствуют заполненным блокам, которые уже используются для хранения значения текстуры другой 3D выборки (P0 или Р1), как показано на фиг. 6. Таким образом, значения текстуры промежуточных 3D выборок сохраняются в текстурных блоках ЕОМ, расположенных где-то либо в первом, либо во втором текстурном изображении в местоположениях, определенных согласно процедуре (раздел 9.4.5 V-PCC). Вкратце, этот процесс определяет местоположения незаполненных блоков в текстурном изображении и сохраняет значения текстуры, ассоциированные с промежуточными 3D выборками в качестве пиксельных значений незаполненных блоков текстурного изображения, обозначенных текстурными блоками EOM.
В соответствии с вариантом осуществления, процесс заполнения может быть применен к геометрическому и/или текстурному изображению. Процесс заполнения может использоваться для заполнения пустого пространства между фрагментами для генерации кусочно-гладкого изображения, подходящего для сжатия видео.
Пример заполнения изображения предоставлен в секциях 2.2.6 и 2.2.7 V-PCC.
На этапе 3500, кодер видео VENC может кодировать сгенерированные изображения/уровни T1 и G1.
На этапе 3600, кодер OMENC может кодировать карту заполненности в качестве изображения, как подробно описано, например, в разделе 2.2.2 V-PCC. Может использоваться кодирование с потерями или без потерь.
В соответствии с вариантом осуществления, кодер видео ENC и/или OMENC может представлять собой HEVC-кодер.
На этапе 3700, кодер PIENC может кодировать вспомогательную информацию PI фрагмента и, возможно, дополнительные метаданные, такие как размер T блока, ширина W и высота H геометрического/текстурного изображений.
В соответствии с вариантом осуществления, вспомогательная информация фрагмента может быть дифференциально кодирована (как определено, например, в разделе 2.4.1 V-PCC).
На этапе 3800, мультиплексор может быть применен к сгенерированным выходам этапов 3500, 3600 и 3700, и в результате эти выходы могут быть мультиплексированы вместе для генерации битового потока, представляющего базовый уровень BL. Следует отметить, что информация метаданных представляет малую часть всего битового потока. Объем информации сжимается с использованием кодеков видео.
На фиг. 4 показана блок-схема примера основанного на изображении декодера 4000 облака точек в соответствии по меньшей мере с одним из настоящих вариантов осуществления.
На этапе 4100, демультиплексор DMUX может применяться для демультиплексирования кодированной информации битового потока, представляющего базовый уровень BL.
На этапе 4200, декодер видео VDEC может декодировать кодированную информацию, чтобы получить по меньшей мере одно декодированное геометрическое изображение DGI и по меньшей мере одно декодированное текстурное изображение DTI.
На этапе 4300, декодер OMDEC может декодировать кодированную информацию, чтобы получить декодированную карту заполненности DOM.
В соответствии с вариантом осуществления, декодер видео VDEC и/или OMDEC может представлять собой HEC-декодер.
На этапе 4400, декодер PIDEC может декодировать кодированную информацию, чтобы получить вспомогательную информацию DPI фрагмента.
Возможно, метаданные также могут быть получены из битового потока BL.
На этапе 4500, модуль генерации геометрии, GGM, может получать геометрию RG восстановленного кадра IRPCF облака точек из по меньшей мере одного декодированного геометрического изображения DGI, декодированной карты заполненности DOM, декодированной вспомогательной информации DPI фрагмента и возможных дополнительных метаданных.
Модуль GGM генерации геометрии может использовать декодированную информацию карты заполненности DOM для того, чтобы определить местоположение непустых пикселов в по меньшей мере одном декодированном геометрическом изображении DGI.
Непустые пикселы принадлежат либо заполненным блокам, либо опорным блокам ЕОМ в зависимости от пиксельных значений декодированной информации заполненности DOM и значения D1-D0, как объяснено выше.
В соответствии с вариантом осуществления этапа 4500, модуль GGM генерации геометрии может получать две из 3D координат промежуточных 3D выборок из координат непустых пикселов.
В соответствии с вариантом осуществления этапа 4500, когда непустые пикселы принадлежат опорному блоку EOM, модуль GGM генерации геометрии может получить третью из 3D координат промежуточных 3D выборок из битовых значений кодовых слов ЕОМ.
Например, согласно примеру, показанному на фиг. 6, кодовое слово EOM, EOMC, используется для определения 3D координат промежуточных 3D выборок Рi1 и Pi2. Третья координата промежуточной 3D выборки Рi1 может быть получена, например, из DO посредством Di1=D0+3, и третья координата восстановленной 3D выборки Pi2 может быть получена, например, из D0 посредством Di2=D0+5. Значение смещения (3 или 5) представляет собой количество интервалов между D0 и D1 вдоль линии проекции.
В соответствии с вариантом осуществления, когда непустые пикселы принадлежат заполненному блоку, модуль GGM генерации геометрии может получить 3D координаты восстановленных 3D выборок из координат непустых пикселов, значений непустых пикселов одного из по меньшей мере одного декодированного геометрического изображения DGI, декодированной вспомогательной информации фрагмента и, возможно, из дополнительных метаданных.
Использование непустых пикселов основано на соотношении 2D пикселов с 3D выборками. Например, при проецировании в V-PCC, 3D координаты восстановленных 3D выборок могут быть выражены в терминах глубины δ(u, v), тангенциального сдвига s(u, v) и би-тангенциального сдвига r(u, v) следующим образом:
δ(u, v) = δ0+g(u, v)
s(u, v) = s0 - u0+u
r(u, v) = r0 - v0+v
где g(u, v) представляет собой компонент яркости декодированного геометрического изображения DGI, (u, v) представляет собой пиксел, ассоциированный с восстановленной 3D выборкой, (δ0, s0, r0) представляет собой 3D местоположение связанного компонента, которому принадлежит восстановленная 3D выборка, и (u0, v0, u1, v1) являются координатами в плоскости проекции, определяющей 2D ограничивающий прямоугольник, охватывающий проекцию фрагмента, ассоциированного со связанным компонентом.
На этапе 4600, модуль TGM генерации текстуры может получить текстуру восстановленного кадра IRPCF облака точек из геометрии RG и по меньшей мере одного декодированного текстурного изображения DTI.
В соответствии с вариантом осуществления этапа 4600, модуль TGM генерации текстуры может получить текстуру непустых пикселов, которые принадлежат опорному блоку EOM, из соответствующего текстурного блока EOM. Местоположения текстурных блоков EOM в текстурном изображении определяются согласно процедуре (раздел 9.4.5 V-PCC).
В соответствии с вариантом осуществления этапа 4600, модуль TGM генерации текстуры может вывести текстуру непустых пикселов, которые принадлежат заполненному блоку, непосредственно как пиксельные значения либо первого, либо второго текстурного изображения.
Фиг. 7 схематично иллюстрирует примерный синтаксис битового потока 7000, представляющего базовый уровень BL в соответствии с по меньшей мере одним из настоящих вариантов осуществления.
Битовый поток содержит заголовок SH 7100 битового потока и по меньшей мере одну группу потока кадров GOFS 7110,… 7120,… 7130 и т.д.
Группа потока кадров GOFS содержит заголовок HS 7121, по меньшей мере один синтаксический элемент OMS 7122, представляющий карту заполненности ОМ, по меньшей мере один синтаксический элемент GVS 7123, представляющий по меньшей мере одно геометрическое изображение (или видео), по меньшей мере один синтаксический элемент TVS 7125, представляющий по меньшей мере одно текстурное изображение (или видео), и по меньшей мере один синтаксический элемент PIS 7124, представляющий вспомогательную информацию фрагмента и другие дополнительные метаданные.
В одном варианте, группа потоков кадров GOFS содержит по меньшей мере один поток кадров.
В V-PCC, метаданные могут быть разделены на две категории:
- Метаданные на фрагмент описывают координаты каждого фрагмента в 2D изображениях глубины и текстуры (цвета) (U0 и V0) и в 3D пространстве (U1, V1 и D1), а также ширину и высоту фрагмента (deltaSizeU0 и deltSizeV0).
- Метаданные на блок обеспечивают, для каждого блока N×N изображений глубины и текстуры, информацию, которая указывает:
- какому фрагменту принадлежит текущий блок (информация индекса блока к фрагменту); и
- какие пикселы в текущем блоке соответствуют спроецированным точкам (карта заполненности).
Метаданные на фрагмент, требуемые, чтобы де-проецировать каждый 2D фрагмент в 3D пространство, относительно невелики. Имеется только несколько параметров для посылки на фрагмент (7 в текущей версии V-PCC), и количество фрагментов обычно мало (сотни).
Карта заполненности и метаданные индекса блока к фрагменту, однако, требуются для всех пикселов мозаичного изображения. Для облака точек, которое использует 10 битов на пространственную координату, размер изображения фрагмента обычно составляет 1280×1280 пикселов, приводя к намного большему количеству данных для кодирования.
В V-РСС, способ пытается уменьшить размер кодированной карты заполненности и метаданных отображения блока на фрагмент посредством (1) смешивания кодирования карты заполненности и метаданных индекса блока к фрагменту и (2) снижения точности обоих, причем вместо кодирования информации для каждого пиксела она кодируется только один раз для блоков N×N пикселов. Хотя это несколько снижает эффективность кодирования изображений фрагмента глубины и цвета (поскольку они больше, чем они были бы в противном случае), это значительно уменьшает размер метаданных. Для индекса блока к фрагменту, N обычно равно 16, что уменьшает объем данных в 256 раз. Для карты заполненности, N может быть 1, 2, 4, 8 или 16; 4 является типичным, что уменьшает объем данных в 16 раз.
Определим следующее:
1 - Карта заполненности с полной точностью: она содержит информацию для каждого пиксела. Карта заполненности доступна только на уровне кодера.
2 - Карта заполненности с блочной точностью (4 в типовом случае): она содержит информацию для блока с точностью карты заполненности. Эта точность называется "малым блоком". Она доступна на стороне кодера и передается на декодер.
3 - Индекс блока к фрагменту при блочном разрешении (16 в типовом случае): это содержит информацию для блока с разрешением карты заполненности. Она доступна на стороне кодера и передается на декодер.
Настоящие варианты осуществления обеспечивают способ и/или устройство для удаления незначимых или менее значимых точек облака точек путем изменения некоторых пиксельных значений в карте заполненности и/или в карте блока на индекс поблочных метаданных, предусмотренных для блока изображения глубины и текстуры, полученного проецированием точек облака точек на плоскость проекции.
Первый вариант осуществления
Фиг. 8 иллюстрирует первый вариант осуществления того, как исходное облако точек (8100 на фиг.8, 32×32 - полное разрешение) может обрабатываться и восстанавливаться в восстановленное облако точек (8400 на фиг. 8 - уменьшенное разрешение) с использованием карты заполненности (8200 на фиг. 8 - уменьшенное разрешение с использованием блоков 4×4) и индекса блока к фрагменту (8300 на фиг. 8 - дополнительно уменьшенное разрешение с использованием блоков 16×16).
Вариант осуществления предлагает способ, который сокращает данные карты заполненности и фрагмента на индекс, когда несколько точек присутствуют в блоке на стороне кодера, чтобы избежать создания множества неполезных точек (3D выборок) в восстановленном облаке точек. Этот способ уменьшает данные, подлежащие кодированию посредством:
Обновление карты заполненности для малых блоков.
Для каждого малого блока (обычно 4×4), выполнить:
а. отсчитать количество точек NPsmall_block в исходном облаке точек с использованием полной точности карты заполненности,
b. если NPsmall_block≤Thsmall_block, где Thsmall_block является заданным значением, установить карту заполненности на незаполненную, в противном случае, установить заполненность блока на единицу. Типовое число для Thsmall_block равно 1.
Пусть ОМreduce будет обновленной картой заполненности исходного облака точек при полном разрешении.
В соответствии с одним вариантом, этот первый вариант осуществления способа дополнительно содержит:
Из ОМreduce, обновить индекс блока к фрагменту при блочном разрешении. Для каждого блока, выполнить:
с. отсчитать количество заполненных блоков: NBblock
d. если NBblock=0, маркировать блок как незаполненный в индекс блока к фрагменту. В противном случае, маркировать блок как заполненный.
Однако, как показано на фиг. 8, когда блок заполнен, следствием является то, что многочисленные точки будут восстанавливаться во время процесса декодирования (если точность заполненности установлена на 4, количество восстанавливаемых точек на блок равно 16). В частности, если одна точка заполняет малый блок 4×4 на стороне кодера, то индекс блока к фрагменту указывает блок как заполненный. Во время процесса декодирования, 16 точек будут генерироваться вместо 1.
Соответственно, фиг. 8а иллюстрирует другую альтернативу первого варианта осуществления, из исходного облака точек (8100a на фиг. 8а, полная точность карты заполненности), выполнить следующее:
а. отсчитать количество точек в блоке при разрешении блока: NPblock
b. если NPblock≤Thblock, где Thblock является заданным значением, удалить блок из индекса блока к фрагменту. Типовое значение для Thblock равно 4.
Наконец, получить обновленную карту заполненности для малых блоков (8200 на фиг. 8a) и обновленный фрагмент к индексу для блочного разрешения (8300 на фиг. 8а). Они указывают данные, которые будут переданы на сторону декодера.
Соответственно, дальнейшие улучшения в эффективности показаны на фиг. 8а по сравнению с вариантом осуществления на фиг. 8. Как можно видеть, дальнейшее улучшение на фиг. 8а приводит к дальнейшему подавлению малых областей исходного облака точек, которые являются незначимыми или менее значимыми. Даже если некоторая информация пропущена, восстановленное облако точек является менее плотным, чем то, которое показано на фиг. 8 и более соответствующим исходному.
Второй вариант осуществления
Второй вариант осуществления основан на вычислении расстояния для каждого блока для того, чтобы оценить, является ли восстановленное облако точек близким или отдаленным относительно исходного облака точек. Расстояние представляет собой расстояние, от точки до точки, между двумя облаками точек.
Пусть А и В представляют собой два набора точек в 3D пространстве. Расстояние от А до В определяется как
где норма представляет евклидово расстояние, и ближайшее (closest) B от точки p в А определяется как
Этот вариант осуществления избегает отправки восстановленного облака точек, которое имеет вычисленное расстояние, которое больше, чем пороговое расстояние, и, таким образом, избегает слишком плотного восстановления облака точек. Поэтому этот вариант осуществления также уменьшает объем данных, подлежащих сжатию.
Что касается выигрыша: мы наблюдали выигрыш 1% в метриках (но это было сделано для другого алгоритма и должно быть сделано только на V-PCC).
На фиг. 9 показана блок-схема, иллюстрирующая пример системы, в которой реализованы различные аспекты и варианты осуществления.
Система 9000 может быть воплощена как одно или более устройств, включающих в себя различные компоненты, описанные ниже, и выполнена с возможностью выполнения одного или нескольких аспектов, описанных в этом документе. Примеры оборудования, которое может формировать всю или часть системы 9000, включают в себя персональные компьютеры, ноутбуки, смартфоны, планшетные компьютеры, цифровые мультимедийные телевизионные приставки, цифровые телевизионные приемники, персональные системы записи видео, соединенные домашние электронные приборы, соединенные транспортные средства и ассоциированные с ними системы обработки, наголовные устройства отображения (HMD, прозрачные очки), проекторы (излучатели), “caves” (система, включающая в себя множество дисплеев), серверы, кодеры видео, декодеры видео, пост-процессоры, обрабатывающие вывод из декодера видео, пре-процессоры, обеспечивающие ввод в кодер видео, web-серверы, телевизионные приставки и любое другое устройство для обработки облака точек, видео или изображения или другие коммуникационные устройства. Элементы системы 9000, отдельно или в комбинации, могут быть реализованы в одной интегральной схеме, множестве ИС и/или на дискретных компонентах. Например, по меньшей мере в одном варианте осуществления, элементы обработки и кодера/декодера системы 9000 могут быть распределены по нескольким ИС и/или дискретным компонентам. В различных вариантах осуществления, система 9000 может быть коммуникативно связана с другими подобными системами или с другими электронными устройствами, например, через коммуникационную шину или через специализированные порты ввода и/или вывода. В различных вариантах осуществления, система 9000 может быть выполнена с возможностью реализации одного или нескольких аспектов, описанных в этом документе.
Система 9000 может включать в себя по меньшей мере один процессор 9010, выполненный с возможностью исполнения инструкций, загружаемых в него для реализации, например, различных аспектов, описанных в этом документе. Процессор 9010 может включать в себя встроенную память, интерфейс ввода/вывода и различные другие схемы, известные в данной области техники. Система 9000 может включать в себя по меньшей мере одну память 9020 (например, энергозависимое устройство памяти и/или энергонезависимое устройство памяти).
Система 9000 может включать в себя устройство хранения 9040, которое может включать в себя энергонезависимую память и/или энергозависимую память, включая, но без ограничения, электрически стираемую программируемую постоянную память (EEPROM), постоянную память (ROM), программируемую постоянную память (PROM), память с произвольным доступом (RAM), динамическую память с произвольным доступом (DRAM), статическую память с произвольным доступом (SRAM), флэш-память, накопитель на магнитных дисках и/или накопитель на оптических дисках. Устройство хранения 9040 может включать в себя внутреннее устройство хранения, присоединенное устройство хранения и/или сетевое устройство хранения, в качестве неограничивающих примеров.
Система 9000 может включать в себя модуль 9030 кодера/декодера, выполненный, например, с возможностью обработки данных для обеспечения кодированных данных или декодированных данных, и модуль 9030 кодера/декодера может включать в себя свой собственный процессор и память. Модуль 9030 кодера/декодера может представлять модуль(и), который может быть включен в устройство для выполнения функций кодирования и/или декодирования. Как известно, устройство может включать в себя один или оба из модуля кодирования и декодирования. Кроме того, модуль 9030 кодера/декодера может быть реализован как отдельный элемент системы 9000 или может быть встроен в процессор 9010 как комбинация аппаратных средств и программного обеспечения, как известно специалистам в данной области техники.
Программный код для загрузки в процессор 9010 или кодер/декодер 9030 для выполнения различных аспектов, описанных в этом документе, может храниться в устройстве хранения 9040 и затем загружаться в память 9020 для исполнения процессором 9010. В соответствии с различными вариантами осуществления, одно или более из процессора 9010, памяти 9020, устройства хранения 9040 и модуля 9030 кодера/декодера могут хранить один или более различных элементов во время выполнения процессов, описанных в этом документе. Такие сохраненные элементы могут включать в себя, но без ограничения, кадр облака точек, кодированные/декодированные геометрические/текстурные видео/ изображения или части кодированных/декодированных геометрических/текстурных видео/изображений, битовый поток, матрицы, переменные и промежуточные или конечные результаты из обработки уравнений, формул, операций и операционной логики.
В некоторых вариантах осуществления, память в процессоре 9010 и/или модуле 9030 кодера/декодера может использоваться для хранения инструкций и обеспечения рабочей памяти для обработки, которая может выполняться во время кодирования или декодирования.
В других вариантах осуществления, однако, память, внешняя по отношению к устройству обработки (например, устройство обработки может быть либо процессором 9010, либо модулем 9030 кодера/декодера), может использоваться для одной или нескольких из этих функций. Внешняя память может представлять собой память 9020 и/или устройство хранения 9040, например, динамическую энергозависимую память и/или энергонезависимую флэш-память. В нескольких вариантах осуществления, внешняя энергонезависимая флэш-память может использоваться для хранения операционной системы телевизора. По меньшей мере в одном варианте осуществления, быстродействующая внешняя динамическая энергозависимая память, такая как RAM, может использоваться в качестве рабочей памяти для операций кодирования и декодирования видео, таких как для MPEG-2 часть 2 (также известно как рекомендация Н.261 ITU-T и ISO/IEC 13818-2, также известно как MPEG-2 Video), HEVC (Высокоэффективное кодирование видео) или VVC (Универсальное кодирование видео).
Ввод в элементы системы 9000 может обеспечиваться через различные устройства ввода, как показано в блоке 9130. Такие устройства ввода включают в себя, но без ограничения, (i) RF-часть, которая может принимать RF-сигнал, передаваемый, например, посредством беспроводной связи вещательной станцией, (ii) терминал полного ввода, (iii) USB-терминал ввода и/или (iv) HDMI-терминал ввода.
В различных вариантах осуществления, устройства ввода блока 9130 могут иметь ассоциированные соответствующие элементы обработки ввода, как известно в данной области техники. Например, RF-часть может быть ассоциирована с элементами, необходимыми для (i) выбора требуемой частоты (также упоминается как выбор сигнала или ограничение по полосе сигнала до некоторой полосы частот), (ii) понижающего преобразования выбранного сигнала, (iii) ограничения по полосе повторно до более узкой полосы частот, чтобы выбрать (например) полосу частот сигнала, которая может упоминаться как канал в некоторых вариантах осуществления, (iv) демодуляции преобразованного с понижением и ограниченного по полосе сигнала, (v) выполнения коррекции ошибок и (vi) демультиплексирования для выбора требуемого потока пакетов данных. RF-часть различных вариантов осуществления может включать в себя один или более элементов для выполнения этих функций, например селекторы частоты, селекторы сигнала, ограничители полосы, селекторы канала, фильтры, понижающие преобразователи, демодуляторы, корректоры ошибок и демультиплексоры. RF-часть может включать в себя тюнер, который выполняет различные из этих функций, включая, например, понижающее преобразование принятого сигнала на более низкую частоту (например, промежуточную частоту или частоту, близкую к базовой полосе) или в базовую полосу.
В одном варианте осуществления с телевизионной приставкой, RF-часть и ассоциированный с ней элемент обработки ввода могут принимать RF-сигнал, передаваемый по проводному (например, кабельному) носителю. Тогда, RF-часть может выполнять выбор частоты путем фильтрации, понижающего преобразования и повторной фильтрации до требуемой полосы частот.
Различные варианты осуществления переупорядочивают очередность описанных выше (и других) элементов, удаляют некоторые из этих элементов и/или добавляют другие элементы, выполняющие аналогичные или различные функции.
Добавление элементов может включать в себя вставку элементов между существующими элементами, например, вставку усилителей и аналого-цифрового преобразователя. В различных вариантах осуществления, RF-часть может включать в себя антенну.
Кроме того, USB- и/или HDMI-терминалы могут включать в себя соответствующие процессоры интерфейса для соединения системы 9000 с другими электронными устройствами через USB- и/или HDMI-соединения. Следует понимать, что различные аспекты обработки ввода, например коррекции ошибок Рида-Соломона, могут быть реализованы, например, в отдельной ИС обработки ввода или в процессоре 9010 по мере необходимости. Аналогично, аспекты обработки USB- или HDMI-интерфейса могут быть реализованы в отдельных ИС интерфейса или в процессоре 9010 по мере необходимости. Демодулированный, скорректированный и демультиплексированный поток может быть предоставлен в различные элементы обработки, включая, например, процессор 9010 и кодер/декодер 9030, работающие в комбинации с элементами памяти и хранения для обработки потока данных, как это необходимо для представления на устройстве вывода.
Различные элементы системы 9000 могут быть предусмотрены в интегрированном корпусе. Внутри интегрированного корпуса различные элементы могут быть соединены между собой и могут передавать данные между собой с использованием подходящего соединительного устройства 9140, например внутренней шины, как известно в данной области техники, включая шину I2C, разводку и печатные платы.
Система 9000 может включать в себя интерфейс 9050 связи, который обеспечивает связь с другими устройствами по каналу 9060 связи. Интерфейс 9050 связи может включать в себя, но без ограничения, приемопередатчик, выполненный с возможностью передачи и приема данных по каналу 9060 связи. Интерфейс 9050 связи может включать в себя, но без ограничения, модем или сетевую карту, и канал 9060 связи может быть реализован, например, в проводной и/или беспроводной среде.
Данные могут передаваться в потоковом режиме в систему 9000, в различных вариантах осуществления, используя сеть Wi-Fi, такую как IEEE 802.11. Сигнал Wi-Fi этих вариантов осуществления может приниматься по каналу 9060 связи и интерфейсу 9050 связи, которые адаптированы для связи Wi-Fi. Канал 9060 связи этих вариантов осуществления может быть, как правило, соединен с точкой доступа или маршрутизатором, который обеспечивает доступ к внешним сетям, включая Интернет, для обеспечения возможности потоковой передачи приложений и других передач доставки контента на пользовательский терминал поверх сетей провайдеров связи.
Другие варианты осуществления могут предоставлять потоковые данные в систему 9000 с использованием телевизионной приставки, которая доставляет данные по HDMI-соединению блока 9130 ввода.
Другие варианты осуществления могут предоставлять потоковые данные в систему 9000 с использованием RF-соединения блока 9130 ввода.
Следует понимать, что сигнализация может быть выполнена множеством способов. Например, один или более синтаксических элементов, флагов и т.д. могут использоваться, чтобы сигнализировать информацию на соответствующий декодер в различных вариантах осуществления.
Система 9000 может выдавать выходной сигнал на различные устройства вывода, включая дисплей 9100, громкоговорители 9110 и другие периферийные устройства 9120. Другие периферийные устройства 9120 могут включать в себя, в различных примерах вариантов осуществления, один или более из автономного DVR, проигрывателя дисков, стереосистемы, системы освещения и других устройств, которые обеспечивают функцию на основе вывода системы 9000.
В различных вариантах осуществления, управляющие сигналы могут передаваться между системой 9000 и дисплеем 9100, громкоговорителями 9110 или другими периферийными устройствами 9120, используя сигнализацию, такую как AV.Link (Аудио/видео линия), CEC (Управление бытовыми электронными приборами) или другие протоколы связи, которые обеспечивают управление от устройства к устройству с вмешательством пользователя или без него.
Устройства вывода могут быть коммуникативно связаны с системой 9000 по выделенным соединениям через соответствующие интерфейсы 9070, 9080 и 9090.
Альтернативно, устройства вывода могут быть соединены с системой 9000 с использованием канала 9060 связи через интерфейс 9050 связи. Дисплей 9100 и громкоговорители 9110 могут быть интегрированы в один блок с другими компонентами системы 9000 в электронном устройстве, таком как, например, телевизор.
В различных вариантах осуществления, интерфейс 9070 дисплея может включать в себя драйвер дисплея, такой как, например, микросхема контроллера синхронизации (T Con).
Дисплей 9100 и громкоговоритель 9110 могут альтернативно быть отдельными от одного или нескольких других компонентов, например, если RF-часть ввода 9130 является частью отдельной телевизионной приставки. В различных вариантах осуществления, в которых дисплей 9100 и громкоговорители 9110 могут быть внешними компонентами, выходной сигнал может предоставляться через выделенные выходные соединения, включая, например, HDMI-порты, USB-порты или COMP-выводы.
В соответствии с другим вариантом осуществления, предложен способ сокращения облака точек, представляющего изображение, содержащий: получение 2-D фрагмента облака точек путем проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; разделение фрагмента на множество меньших блоков; определение количества пикселов в каждом из множества меньших блоков; получение обновленной карты заполненности на основе определенного количества пикселов в каждом из множества меньших блоков; и получение восстановленного облака точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
В соответствии с другим вариантом осуществления, предложено устройство для сокращения облака точек, представляющего изображение, содержащее: средство для получения 2-D фрагмента облака точек посредством проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; средство для разделения фрагмента на множество меньших блоков; средство для определения количества пикселов в каждом из множества меньших блоков; средство для получения обновленной карты заполненности на основе определенного количества пикселов в каждом из множества меньших блоков; и средство для получения восстановленного облака точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
В соответствии с другим вариантом осуществления, предложено устройство для сокращения облака точек, представляющего изображение, содержащее один или более процессоров, причем один или более процессоров выполнены с возможностью: получать 2-D фрагмент облака точек посредством проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; разделять фрагмент на множество меньших блоков; определять количество пикселов в каждом из множества меньших блоков; получать обновленную карту заполненности на основе определенного количества пикселов в каждом из множества меньших блоков; и получать восстановленное облако точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
В соответствии с другим вариантом осуществления, предлагается битовый поток, содержащий восстановленное облако точек, при этом битовый поток формируется посредством: получения 2-D фрагмента облака точек посредством проецирования 3-D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов; разделения фрагмента на множество меньших блоков; определения количества пикселов в каждом из множества меньших блоков; получения обновленной карты заполненности на основе определенного количества пикселов в каждом из множества меньших блоков; и получения восстановленного облака точек на основе обновленной карты заполненности, при этом восстановленное облако точек является менее плотным представлением облака точек.
В соответствии с другим вариантом осуществления, вариант осуществления дополнительно содержит получение обновленного индекса блока к фрагменту на основе обновленной карты заполненности, причем разрешение обновленной карты заполненности выше, чем разрешение обновленного индекса блока к фрагменту.
В соответствии с другим вариантом осуществления, вариант осуществления дополнительно содержит сравнение количества пикселов в каждом из множества меньших блоков с некоторым значением.
В соответствии с другим вариантом осуществления, вариант осуществления дополнительно содержит установку соответствующего меньшего блока на незаполненный, если количество пикселов в соответствующем меньшем блоке меньше, чем пороговое значение.
В соответствии с другим вариантом осуществления, значение равно 1 или 4.
В соответствии с другим вариантом осуществления, множество меньших блоков являются блоками 4×4.
В соответствии с другим вариантом осуществления, разрешение обновленного индекса блока к фрагменту равно 16×16.
Кроме того, вариант осуществления обеспечивает компьютерную программу, содержащую инструкции, которые при исполнении одним или несколькими процессорами побуждают один или более процессоров выполнять способ кодирования или способ декодирования в соответствии с любым из вариантов осуществления, описанных выше. Один или более из настоящих вариантов осуществления также обеспечивают машиночитаемый носитель хранения, имеющий сохраненные на нем инструкции для кодирования или декодирования данных видео в соответствии со способами, описанными выше. Один или более вариантов осуществления также обеспечивают машиночитаемый носитель хранения, имеющий сохраненный на нем битовый поток, сгенерированный в соответствии со способами, описанными выше. Один или более вариантов осуществления также обеспечивают способ и устройство для передачи или приема битового потока, сгенерированного в соответствии со способами, описанными выше.
Здесь описаны различные способы, и каждый из способов включает в себя один или более этапов или действий для реализации описанного способа. Если только конкретный порядок этапов или действий не требуется для надлежащей работы способа, порядок и/или использование конкретных этапов и/или действий могут быть изменены или объединены.
Некоторые примеры описаны в отношении блок-схем и операционных блок-схем. Каждый блок представляет схемный элемент, модуль или часть кода, которая включает в себя одну или более исполняемых инструкций для реализации указанной логической функции(й). Следует также отметить, что в других реализациях, функция(и), указанная в блоках, может выполняться не в указанном порядке. Например, два блока, показанные последовательно, фактически могут исполняться по существу одновременно, или блоки могут иногда исполняться в обратном порядке в зависимости от используемых функциональных возможностей.
Реализации и аспекты, описанные здесь, могут быть реализованы, например, в виде способа или процесса, устройства, компьютерной программы, потока данных, битового потока или сигнала. Даже если обсуждается только в контексте одной формы реализации (например, обсуждается только как способ), реализация обсуждаемых признаков также может быть осуществлена в других формах (например, как устройство или компьютерная программа).
Способы могут быть реализованы, например, в процессоре, который относится к устройствам обработки в общем, включая, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя устройства связи.
Кроме того, способы могут быть реализованы посредством инструкций, выполняемых процессором, и такие инструкции (и/или значения данных, созданные реализацией) могут храниться на машиночитаемом носителе хранения. Машиночитаемый носитель хранения может принимать форму машиночитаемого программного продукта, реализованного на одном или нескольких машиночитаемых носителях и имеющего машиночитаемый программный код, реализованный на нем, который может исполняться компьютером. Машиночитаемый носитель хранения, используемый здесь, может рассматриваться как долговременный (энергонезависимый) носитель хранения с присущей ему способностью сохранять в себе информацию, а также присущей ему способностью предоставлять извлечение из него информации. Машиночитаемый носитель хранения может представлять собой, например, но без ограничения, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, устройство или прибор или любую подходящую комбинацию вышеупомянутого. Следует понимать, что следующее, хотя и обеспечивает более конкретные примеры машиночитаемых носителей хранения, к которым могут быть применены настоящие варианты осуществления, является просто иллюстративным и не исчерпывающим перечнем, как легко понять специалисту в данной области техники: переносная компьютерная дискета; жесткий диск; постоянная память (ROM); стираемая программируемая постоянная память (EPROM или флэш-память); переносная постоянная память на компакт-диске (CD-ROM); оптическое устройство хранения; магнитное устройство хранения или любая подходящая комбинация вышеупомянутого.
Инструкции могут формировать прикладную программу, материально воплощенную на машиночитаемом носителе.
Инструкции могут представлять собой, например, аппаратные средства, микропрограммное обеспечение, программное обеспечение или комбинацию. Инструкции могут быть, например, в операционной системе, отдельном приложении или их комбинации. Таким образом, процессор может быть охарактеризован, например, как устройство, выполненное с возможностью исполнения процесса, и устройство, которое включает в себя машиночитаемый носитель (такой как устройство хранения), имеющий инструкции для выполнения процесса. Кроме того, машиночитаемый носитель может хранить, в дополнение или вместо инструкций, значения данных, созданные реализацией.
Устройство может быть реализовано, например, в соответствующих аппаратных средствах, программном обеспечении и микропрограммном обеспечении. Примеры таких устройств включают в себя персональные компьютеры, ноутбуки, смартфоны, планшетные компьютеры, цифровые мультимедийные телевизионные приставки, цифровые телевизионные приемники, персональные системы записи видео, соединенные домашние электронные приборы, наголовные устройства отображения (HMD, прозрачные очки), проекторы (излучатели), “caves” (система, включающая в себя множество дисплеев), серверы, кодеры видео, декодеры видео, пост-процессоры, обрабатывающие вывод из декодера видео, пре-процессоры, обеспечивающие ввод в кодер видео, web-серверы, телевизионные приставки и любое другое устройство для обработки облака точек, видео или изображения или другие коммуникационные устройства. Как должно быть ясно, оборудование может быть мобильным и даже установленным в подвижном транспортном средстве.
Компьютерное программное обеспечение может быть реализовано процессором 9010 или аппаратными средствами, или комбинацией аппаратных средств и программного обеспечения. В качестве неограничивающего примера, варианты осуществления могут быть также реализованы посредством одной или нескольких интегральных схем. Память 9020 может быть любого типа, соответствующего технического окружения, и может быть реализована с использованием любой подходящей технологии хранения данных, такой как оптические устройства хранения, магнитные устройства хранения, полупроводниковые устройства памяти, стационарная память и сменная память, в качестве неограничивающих примеров. Процессор 9010 может быть любого типа, пригодного для технического окружения, и может включать в себя один или более микропроцессоров, компьютеров общего назначения, компьютеров специального назначения и процессоров на основе многоядерной архитектуры, в качестве неограничивающих примеров.
Как будет очевидно специалисту в данной области техники, реализации могут формировать множество сигналов, отформатированных для переноса информации, которая может быть, например, сохранена или передана. Информация может включать в себя, например, инструкции для выполнения способа или данные, созданные одной из описанных реализаций. Например, сигнал может быть отформатирован для переноса битового потока описанного варианта осуществления. Такой сигнал может быть отформатирован, например, как электромагнитная волна (например, с использованием радиочастотной части спектра) или как сигнал базовой полосы. Форматирование может включать в себя, например, кодирование потока данных и модуляцию носителя закодированным потоком данных. Информация, которая переносит сигнал, может представлять собой, например, аналоговую или цифровую информацию. Сигнал может передаваться по множеству различных проводных или беспроводных линий связи, как известно. Сигнал может храниться на считываемом процессором носителе.
Используемая здесь терминология предназначена только для описания конкретных вариантов осуществления и не предназначена для ограничения. Как используется здесь, формы единственного числа могут включать в себя также формы множественного числа, если контекст ясно не указывает иное. Кроме того, следует понимать, что термины "включает в себя/содержит" и/или "включающий в себя/содержащий" при использовании в спецификации, могут определять присутствие указанных, например, признаков, целых чисел, этапов, операций, элементов и/или компонентов, но не исключают присутствия или добавления одного или нескольких других признаков, целых чисел, этапов, операций, элементов, компонентов и/или их групп. Кроме того, когда элемент упоминается как "реагирующий" или "соединенный" с другим элементом, он может непосредственно реагировать на другой элемент или быть соединенным с другим элементом, или могут присутствовать промежуточные элементы. В отличие от этого, когда элемент упоминается как "непосредственно реагирующий" или "непосредственно соединенный" с другим элементом, промежуточные элементы отсутствуют.
Следует принимать во внимание, что использование любого из символов/терминов "/", "и/или" или "по меньшей мере одно из", например, в случае "А/В" и "по меньшей мере одно из А и В", может быть предназначено для того, чтобы охватывать выбор только первой упомянутой опции (А) или выбор только второй упомянутой опции (В) или выбор обоих опций (A и А). В качестве дополнительного примера, в случаях "А, B и/или C" и "по меньшей мере одного из А, B и C", такая фраза предназначена, чтобы охватывать выбор только первой упомянутой опции (A) или выбор только упомянутой опции (В) или выбор только третьей упомянутой опции (C), или выбор только первой и второй упомянутых опций (A и B), или только выбор первой и третьей упомянутых опций (A и C), или только выбор второй и третьей упомянутых опций (B и C), или выбор всех трех упомянутых опций (A и B и C). Это может быть расширено, как очевидно специалисту в данной области техники, на многие элементы, которые перечислены.
В настоящей заявке могут использоваться различные числовые значения, например пороговое значение 1 или 4 для сравнения с количеством пикселов в соответствующем меньшем блоке фрагмента. Конкретные значения могут быть приведены для иллюстративных целей, и описанные аспекты не ограничиваются этими конкретными значениями.
Следует понимать, что хотя термины "первый", "второй" и т.д. могут использоваться здесь для описания различных элементов, эти элементы не ограничиваются этими терминами. Эти термины используются только для различения одного элемента от другого. Например, первый элемент может быть назван вторым элементом, и, аналогично, второй элемент может быть назван первым элементом, не выходя за рамки объема настоящей заявки. Не подразумевается никакого упорядочения между первым элементом и вторым элементом.
Ссылки на "один вариант осуществления" или "вариант осуществления", или "одну реализацию", или "реализацию", а также другие их вариации, часто используются для указания того, что конкретный признак, структура, характеристика и т.д. (описанные в связи с вариантом осуществления/реализацией) включены в по меньшей мере один вариант осуществления/реализацию. Таким образом, появление фразы "в одном варианте осуществления" или "в варианте осуществления", или "в одной реализации", или "в реализации", а также любые другие вариации, появляющиеся в различных местах в этой заявке, не обязательно все ссылаются на один и тот же вариант осуществления.
Подобным образом, ссылка здесь на "в соответствии с вариантом осуществления/примером/реализацией" или "в варианте осуществления/примере/реализации", а также другие их вариации часто используется для указания того, что конкретный признак, структура или характеристика (описанные в связи с вариантом осуществления/примером/реализацией) могут быть включены по меньшей мере в один вариант осуществления/пример/реализацию. Таким образом, появление выражения "в соответствии с вариантом осуществления/примером/реализацией" или "в варианте осуществления/примере/реализации" в различных местах спецификации не обязательно все относятся к одному и тому же варианту осуществления/примеру/реализации, и не являются отдельными или альтернативными вариантами осуществления/ примерами/реализацией, обязательно взаимно исключающими другие варианты осуществления/примеры/реализацию.
Ссылочные позиции, появляющиеся в формуле изобретения, представлены только в качестве иллюстрации и не должны ограничивать объем формулы изобретения. Хотя это и не описано явно, настоящие варианты осуществления/примеры и варианты могут использоваться в любой комбинации или подкомбинации.
Когда на чертеже представлена блок-схема последовательности операций, следует понимать, что она также предоставляет блок-схему соответствующего устройства. Аналогично, когда на чертеже представлена блок-схема устройства, следует понимать, что она также предоставляет блок-схему последовательности операций соответствующего способа/процесса.
Хотя некоторые из схем включают в себя стрелки на линиях связи для того, чтобы показать основное направление связи, должно быть понятно, что связь может происходить в противоположном направлении по отношению к показанным стрелкам.
Различные реализации включают в себя декодирование. "Декодирование", как используется в настоящей заявке, может охватывать все или часть процессов, выполняемых, например, над принятым кадром облака точек (включая, возможно, принятый битовый поток, в котором закодирован один или более кадров облака точек) для того, чтобы сформировать конечный выходной сигнал, подходящий для отображения или для дальнейшей обработки в области восстановленного облака точек. В различных вариантах осуществления, такие процессы включают в себя один или более процессов, обычно выполняемых основанным на изображении декодером. В различных вариантах осуществления, такие процессы также, или альтернативно, включают в себя процессы, выполняемые декодером различных реализаций, описанных в этой заявке, например, декодером 2000 согласно фиг. 2 или декодером 4000 согласно фиг. 4.
В качестве дополнительных примеров, в одном варианте осуществления "декодирование" может относиться только к энтропийному декодированию, в другом варианте осуществления "декодирование" может относиться только к дифференциальному декодированию, и в другом варианте осуществления "декодирование" может относиться к комбинации энтропийного декодирования и дифференциального декодирования. То, предполагается ли, что фраза "процесс декодирования" относится конкретно к поднабору операций или, в общем, к более широкому процессу декодирования, будет ясно на основе контекста конкретных описаний и считается хорошо понятным специалистам в данной области техники.
Различные реализации включают в себя кодирование. Аналогичным образом, как описано выше для "декодирования", "кодирование", как используется в этой заявке, может охватывать все или часть процессов, выполняемых, например, над входным кадром облака точек для того, чтобы сформировать кодированный битовый поток. В различных вариантах осуществления, такие процессы включают в себя один или более процессов, обычно выполняемых основанным на изображении декодером. В различных вариантах осуществления, такие процессы также, или альтернативно, включают в себя процессы, выполняемые кодером различных реализаций, описанных в этой заявке, например, кодером 1000 согласно фиг. 1 или кодером 3000 согласно фиг. 3.
Кроме того, эта заявка ссылается на "определение" различных частей информации. Определение информации может включать в себя одно или более из, например, оценки информации, вычисления информации, предсказания информации или извлечения информации из памяти.
Кроме того, эта заявка может ссылаться на "осуществление доступа" к различным частям информации. Осуществление доступа к информации может включать в себя одно или более из, например, приема информации, извлечения информации (например, из памяти), сохранения информации, перемещения информации, копирования информации, вычисления информации, определения информации, предсказания информации или оценки информации.
Кроме того, эта заявка может ссылаться на "прием" различных частей информации. Прием, как и в случае "осуществления доступа", предполагается в качестве широкого термина. Прием информации может включать в себя одно или более из, например, осуществления доступа к информации или извлечения информации (например, из памяти). Кроме того, "прием" обычно осуществляется, тем или иным образом, при выполнении операций, таких как, например, хранение информации, обработка информации, передача информации, перемещение информации, копирование информации, стирание информации, вычисление информации, определение информации, предсказание информации или оценка информации.
Было описано несколько реализаций. Тем не менее, следует понимать, что могут выполняться различные модификации. Например, элементы различных реализаций могут быть объединены, дополнены, модифицированы или удалены для создания других реализаций. Кроме того, специалисту в данной области техники будет понятно, что другие структуры и процессы могут заменять раскрытые, и полученные реализации будут выполнять по меньшей мере по существу ту же функцию(и) по меньшей мере по существу таким же образом, чтобы достичь по меньшей мере, по существу, того же результата(ов), что и раскрытые реализации. Соответственно, эти и другие реализации предполагаются настоящей заявкой.
Claims (27)
1. Способ, содержащий кодирование облака точек, причем кодирование облака точек содержит этапы, на которых:
получают карту заполненности, содержащую данные, указывающие, является ли пиксел изображения глубины или текстурного изображения заполненным или нет,
для по меньшей мере одного блока карты заполненности, который имеет первый размер, определяют количество заполненных пикселов,
в ответ на определение того, что количество заполненных пикселов в этом по меньшей мере одном блоке меньше или равно заданному значению, обновляют карту заполненности,
кодируют обновленную карту заполненности.
2. Способ по п.1, в котором упомянутое обновление карты заполненности содержит этап, на котором устанавливают пикселы блока в карте заполненности как незаполненные.
3. Способ по п.1 или 2, дополнительно содержащий этап, на котором обновляют данные индекса блока к фрагменту из обновленной карты заполненности, причем данные индекса блока к фрагменту указывают, какому фрагменту принадлежит блок, при этом фрагмент получается посредством проецирования 3D точек облака точек на плоскость проекции.
4. Способ по п.3, в котором упомянутое обновление данных индекса блока к фрагменту при блочном разрешении содержит этапы, на которых:
для по меньшей мере одного второго блока карты заполненности, который имеет второй размер больший, чем первый размер, определяют второе количество заполненных пикселов в обновленной карте заполненности,
в ответ на определение того, что второе количество заполненных пикселов в этом по меньшей мере одном втором блоке равно 0, устанавливают данные индекса блока к фрагменту для данного по меньшей мере одного второго блока как незаполненные.
5. Способ по п.4, в котором упомянутое обновление данных индекса блока к фрагменту при блочном разрешении дополнительно содержит этап, на котором, в ответ на определение того, что второе количество заполненных пикселов в упомянутом по меньшей мере одном втором блоке меньше, чем заданное второе значение, дополнительно обновляют карту заполненности.
6. Устройство, содержащее один или более процессоров, выполненный с возможностью кодировать облако точек, причем кодирование облака точек содержит:
получение карты заполненности, содержащей данные, указывающие, является ли пиксел изображения глубины или текстурного изображения заполненным или нет,
для по меньшей мере одного блока карты заполненности, который имеет первый размер, определение количества заполненных пикселов,
в ответ на определение того, что количество заполненных пикселов в этом по меньшей мере одном блоке меньше или равно заданному значению, обновление карты заполненности,
кодирование обновленной карты заполненности.
7. Устройство по п.6, в котором упомянутое обновление карты заполненности содержит установку пикселов блока в карте заполненности как незаполненных.
8. Устройство по п.6, в котором один или более процессоров дополнительно выполнены с возможностью обновления данных индекса блока к фрагменту из обновленной карты заполненности, причем данные индекса блока к фрагменту указывают, какому фрагменту принадлежит блок, при этом фрагмент получается посредством проецирования 3D точек облака точек на плоскость проекции.
9. Устройство по п.8, в котором упомянутое обновление данных индекса блока к фрагменту при блочном разрешении содержит:
для по меньшей мере одного второго блока карты заполненности, который имеет второй размер больший, чем первый размер, определение второго количества заполненных пикселов в обновленной карте заполненности,
в ответ на определение того, что второе количество заполненных пикселов в этом по меньшей мере одном втором блоке равно 0, установку данных индекса блока к фрагменту для данного по меньшей мере одного второго блока как незаполненных.
10. Устройство по п.9, в котором упомянутое обновление данных индекса блока к фрагменту при блочном разрешении дополнительно содержит, в ответ на определение того, что второе количество заполненных пикселов в упомянутом по меньшей мере одном втором блоке меньше, чем заданное второе значение, дополнительное обновление карты заполненности.
11. Устройство по любому одному из пп.8-10, в котором один или более процессоров дополнительно выполнены с возможностью кодирования обновленных данных индекса блока к фрагменту.
12. Устройство по любому одному из пп.6-11, в котором упомянутое получение карты заполненности содержит получение 2D фрагмента облака точек посредством проецирования 3D точек облака точек на плоскость проекции, причем фрагмент имеет множество пикселов.
13. Устройство по п.12, при этом фрагмент имеет более высокое разрешение, чем обновленная карта заполненности.
14. Устройство по любому одному пп.8-13, при этом разрешение обновленной карты заполненности выше, чем разрешение обновленного индекса блока к фрагменту.
15. Долговременный машиночитаемый носитель, заключающий в себе содержимое данных, сгенерированное согласно способу по любому одному из пп.1-5 или устройством по любому одному из пп.6-14.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18305930.2 | 2018-07-11 | ||
EP18305930 | 2018-07-11 | ||
EP19305049 | 2019-01-16 | ||
EP19305049.9 | 2019-01-16 | ||
PCT/US2019/041145 WO2020014319A1 (en) | 2018-07-11 | 2019-07-10 | Processing a point cloud |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2767775C1 true RU2767775C1 (ru) | 2022-03-21 |
Family
ID=67390126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021102866A RU2767775C1 (ru) | 2018-07-11 | 2019-07-10 | Обработка облака точек |
Country Status (6)
Country | Link |
---|---|
US (1) | US20210272323A1 (ru) |
EP (1) | EP3821607A1 (ru) |
JP (1) | JP2021530890A (ru) |
CN (1) | CN112673635A (ru) |
RU (1) | RU2767775C1 (ru) |
WO (1) | WO2020014319A1 (ru) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2431938C2 (ru) * | 2006-03-31 | 2011-10-20 | Конинклейке Филипс Электроникс Н.В. | Эффективное кодирование множества видов |
US20170347120A1 (en) * | 2016-05-28 | 2017-11-30 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
US20180268570A1 (en) * | 2017-03-16 | 2018-09-20 | Samsung Electronics Co., Ltd. | Point cloud and mesh compression using image/video codecs |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026183A (en) * | 1995-10-27 | 2000-02-15 | Texas Instruments Incorporated | Content-based video compression |
EP1111904A3 (en) * | 1999-12-20 | 2005-03-16 | Texas Instruments Incorporated | Digital camera system and method |
EP3023940B1 (en) * | 2005-05-27 | 2019-02-27 | Telefonaktiebolaget LM Ericsson (publ) | Weight based image processing |
JP2010154269A (ja) * | 2008-12-25 | 2010-07-08 | Toshiba Corp | 画像高品質化方法、装置およびプログラム |
US9237326B2 (en) * | 2012-06-27 | 2016-01-12 | Imec Taiwan Co. | Imaging system and method |
US20140119456A1 (en) * | 2012-11-01 | 2014-05-01 | Microsoft Corporation | Encoding video into lower resolution streams |
US10574974B2 (en) * | 2014-06-27 | 2020-02-25 | A9.Com, Inc. | 3-D model generation using multiple cameras |
EP3301926A1 (en) * | 2016-09-30 | 2018-04-04 | Thomson Licensing | A method and a device for reconstructing a point cloud representative of a scene using light-field data |
CN106600710B (zh) * | 2016-10-18 | 2019-06-14 | 浙江大学 | 一种几何网格模型邻接拓扑关联的层切多连通域构建方法 |
KR101949609B1 (ko) * | 2016-12-20 | 2019-02-19 | 한국과학기술원 | 대표 광선 기반의 점유맵 업데이트 방법 및 시스템 |
-
2019
- 2019-07-10 RU RU2021102866A patent/RU2767775C1/ru active
- 2019-07-10 US US17/259,040 patent/US20210272323A1/en active Pending
- 2019-07-10 EP EP19742508.5A patent/EP3821607A1/en active Pending
- 2019-07-10 CN CN201980045838.3A patent/CN112673635A/zh active Pending
- 2019-07-10 JP JP2020572374A patent/JP2021530890A/ja active Pending
- 2019-07-10 WO PCT/US2019/041145 patent/WO2020014319A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2431938C2 (ru) * | 2006-03-31 | 2011-10-20 | Конинклейке Филипс Электроникс Н.В. | Эффективное кодирование множества видов |
US20170347120A1 (en) * | 2016-05-28 | 2017-11-30 | Microsoft Technology Licensing, Llc | Motion-compensated compression of dynamic voxelized point clouds |
US20180268570A1 (en) * | 2017-03-16 | 2018-09-20 | Samsung Electronics Co., Ltd. | Point cloud and mesh compression using image/video codecs |
Non-Patent Citations (3)
Title |
---|
RICARDO L. DE QUEIROZ et al., Compression of 3D Point Clouds Using a Region-Adaptive Hierarchical Transform, IEEE Transactions on Image Processing, vol.25, Issue 8, Aug. 2016. * |
US 2018268570 A1 - 2018.09.20. XU YILING et al., Introduction to Point Cloud Compression, published 2018-08-24. US 2017347120 A1 - 2017.11.30. RU 2431938 C2 - 2011.10.20. RICARDO L. DE QUEIROZ et al., Compression of 3D Point Clouds Using a Region-Adaptive Hierarchical Transform, IEEE Transactions on Image Processing, vol.25, Issue 8, Aug. 2016. * |
XU YILING et al., Introduction to Point Cloud Compression, published 2018-08-24. * |
Also Published As
Publication number | Publication date |
---|---|
JP2021530890A (ja) | 2021-11-11 |
EP3821607A1 (en) | 2021-05-19 |
WO2020014319A1 (en) | 2020-01-16 |
CN112673635A (zh) | 2021-04-16 |
US20210272323A1 (en) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7476104B2 (ja) | 点群処理 | |
KR102640992B1 (ko) | 포인트 클라우드 프로세싱 | |
US20240114143A1 (en) | Encoding and decoding a point cloud using patches for in-between samples | |
US20220164993A1 (en) | Processing missing points of a point cloud | |
WO2021001193A1 (en) | Processing a point cloud | |
US20220164992A1 (en) | Processing a point cloud | |
RU2767775C1 (ru) | Обработка облака точек | |
CN114556432A (zh) | 处理点云 | |
EP3713238A1 (en) | Processing a point cloud | |
US20220405975A1 (en) | Transporting format of a coded point cloud | |
US20220109882A1 (en) | Processing a point cloud | |
EP3713240A1 (en) | Processing a point cloud |