RU2800579C1 - Способ кодирования и декодирования облака точек - Google Patents

Способ кодирования и декодирования облака точек Download PDF

Info

Publication number
RU2800579C1
RU2800579C1 RU2022134821A RU2022134821A RU2800579C1 RU 2800579 C1 RU2800579 C1 RU 2800579C1 RU 2022134821 A RU2022134821 A RU 2022134821A RU 2022134821 A RU2022134821 A RU 2022134821A RU 2800579 C1 RU2800579 C1 RU 2800579C1
Authority
RU
Russia
Prior art keywords
parent
node
attributes
parent nodes
threshold value
Prior art date
Application number
RU2022134821A
Other languages
English (en)
Inventor
Вэй Чжан
Мэри-Люк Джорджес Генри ЧАМПЕЛ
Original Assignee
Бейдзин Сяоми Мобайл Софтвэр Ко., Лтд.
Сидянь Юниверсити
Filing date
Publication date
Application filed by Бейдзин Сяоми Мобайл Софтвэр Ко., Лтд., Сидянь Юниверсити filed Critical Бейдзин Сяоми Мобайл Софтвэр Ко., Лтд.
Application granted granted Critical
Publication of RU2800579C1 publication Critical patent/RU2800579C1/ru

Links

Abstract

Изобретение относится к кодеру, декодеру, машиночитаемым носителям данных и способам кодирования и декодирования атрибутов облака точек. Технический результат заключается в повышении эффективности сжатия атрибутов облака точек. Способ кодирования содержит этапы, на которых выполняют определение истинного коэффициента преобразования путем применения RAHT к атрибутам текущего узла; определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом; выбор второго набора из первого набора родительских узлов в соответствии с упомянутой разностью; определение предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов; определение предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла; определение остатка на основе истинного коэффициента преобразования и предсказанного коэффициента преобразования; и кодирование остатка для получения кодированных данных атрибутов облака точек для битового потока. 6 н. и 20 з.п. ф-лы, 9 ил., 2 табл.

Description

ОБЛАСТЬ ТЕХНИКИ
Настоящая заявка в целом относится к сжатию атрибутов точек облака точек и, в частности, к способу кодирования и декодирования, а также к кодеру и декодеру для улучшенного кодирования атрибутов облака точек.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
В качестве альтернативы трехмерным сеткам недавно появились трехмерные облака точек как популярное представление трехмерной мультимедийной информации. Варианты использования, связанные с данными облака точек, очень разнообразны и включают:
- 3D-pecypcbi в кинопроизводстве,
- 3D-pecypcbi для трехмерного иммерсивного телеприсутствия в реальном времени или приложений виртуальной реальности,
- 3D-видео со свободной точкой обзора (например, для просмотра спортивных передач),
- Географические информационные системы (картография),
- Культурное наследие (хранение хрупких ресурсов в цифровом виде),
- Автономное вождение (построение крупномасштабной 3D-Kapibi окружения)...
Облако точек представляет собой набор точек в трехмерном пространстве, каждая из которых имеет связанные с ней атрибуты, например цвет, свойства материала и т.д. Облака точек можно использовать для реконструкции объекта или сцены как композиции таких точек. Они могут быть получены с помощью нескольких камер и датчиков глубины в различных установках и могут состоять из тысяч и миллиардов точек для реалистичного представления реконструированных сцен.
Для каждой точки облака точек необходимо сохранить ее положение (обычно информацию X, Y, Z, кодированную как число с плавающей запятой с 32 или 64 битами) и ее атрибуты (обычно по меньшей мере цвет RGB, кодированный 24 битами). Имея иногда миллиарды точек в облаке точек, можно легко понять, что исходные данные облака точек могут составлять несколько гигабайт данных: следовательно, существует острая потребность в технологиях сжатия для уменьшения объема данных, необходимых для представления облака точек.
Для сжатия облака точек были разработаны два разных подхода:
Во-первых, в подходе сжатия облака точек на основе видео (VPCC, Video based Point Cloud Compression) облако точек сжимается путем выполнения нескольких его проекций на 3 разные оси X, Y, Z и на разной глубине, чтобы все точки присутствовали в одном проецируемом изображении. Затем спроецированные изображения обрабатываются в патчи (для устранения избыточности) и перекомпоновываются в окончательное изображение, при этом используют дополнительные метаданные для преобразования положений пикселей в положения точек в пространстве. Затем выполняют сжатие с использованием традиционных кодеров изображения/видео MPEG. Преимущество этого подхода заключается в том, что он использует существующие кодеры и естественным образом поддерживает динамические облака точек (с использованием видеокодеров), но его неудобно использовать для редких облаков точек, и ожидается, что выигрыш от сжатия будет выше при использовании специальных способов для облаков точек.
Во-вторых, в подходе сжатия облака точек на основе геометрии (GPCC, Geometry based Point Cloud Compression) положения точек (обычно называемые геометрией) и атрибуты (цвет, прозрачность...) соответствующих точек кодируют отдельно. Для кодирования геометрии используют структуру октодерева. Все облако точек помещается в куб, который непрерывно делится на восемь подкубов, пока каждый из подкубов не будет содержать только одну точку. Таким образом, положение точек заменяется деревом информации о занятости в каждом узле.
Атрибуты могут кодироваться с помощью адаптивного к области иерархического преобразования (RAHT, Region-Adaptive Hierarchal Transform). Преобразование RAHT известно, например, из US 10,223,810 В2 и представляет собой двухточечное преобразование по отношению к иерархии, определяемой кодами Мортона местоположений вокселей. Оно рекурсивно выполняется на глубине октодерева снизу вверх, например, от листьев октодерева к его корню. На каждой глубине дерева происходит зацикливание на каждом узле. Для каждого узла зацикливание осуществляется в трех направлениях. При этом DC-коэффициенты или коэффициенты верхних частот сохраняют для следующего шага, в то время как АС-коэффициенты или коэффициенты нижних частот квантуют и кодируют в битовый поток.
Целью настоящего изобретения является предоставление эффективного способа кодирования и декодирования, а также кодера и декодера для обеспечения улучшенного сжатия атрибутов облака точек.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В одном из аспектов настоящего изобретения предлагается способ кодирования атрибутов точек облака точек для создания битового потока сжатых данных облака точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, путем рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом способ включает этапы:
определение истинного коэффициента преобразования путем применения адаптивного к области иерархического преобразования (RAHT) к атрибутам текущего узла;
определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом, при этом текущий родительский узел является родительским узлом текущего узла;
выбор второго набора из первого набора родительских узлов в соответствии с упомянутой разностью, при этом второй набор родительских узлов предпочтительно включает текущий родительский узел;
определение предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов;
определение предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла;
определение остатка на основе истинного коэффициента преобразования и предсказанного коэффициента преобразования; и
кодирование остатка для получения кодированных данных атрибутов облака точек для битового потока.
При этом для кодирования текущего узла, подлежащего кодированию, истинные коэффициенты преобразования определяют путем применения RAHT к атрибутам текущего узла. Кроме того, определяют предсказанные значения для атрибутов текущего узла, подлежащего декодированию, и RAHT снова применяют к предсказанным значениям для определения предсказанных коэффициентов преобразования атрибутов текущего узла.
На основе предсказанных коэффициентов преобразования и истинных коэффициентов преобразования определяют остаток, и остаток предпочтительно включают посредством энтропийного кодирования в битовый поток для получения кодированных данных атрибутов точки.
При этом для определения предсказанного значения атрибутов текущего узла определяют разность между атрибутами родительского узла текущего узла, обозначенного как текущий родительский узел, и каждого узла из первого набора узлов, имеющих общую грань или ребро с текущим узлом, подлежащим кодированию. При этом набор узлов, имеющих общую грань или ребро с текущим узлом, всегда содержит шесть узлов. Из набора шести узлов выбирают второй набор в соответствии с определяемой разностью. Предпочтительно, чтобы во второй набор также включался текущий родительский узел. Таким образом, второй набор может включать от одного до семи родительских узлов (находящихся на уровне D-1 в древовидной структуре) для предсказания предсказанного значения атрибутов текущего узла (находящегося на уровне D в древовидной структуре). Из предсказанного значения определяют предсказанный коэффициент преобразования путем применения RAHT, при этом предсказанный коэффициент преобразования используют для определения остатка для атрибута текущего узла.
При этом описанные выше шаги повторяют от корня к листьям дерева для каждого занятого узла, чтобы определить остатки для каждого занятого узла в древовидной структуре. Остатки затем кодируют и предпочтительно энтропийно кодируют в битовый поток.
Таким образом, для определения предсказанного значения не всегда учитывают все родительские узлы, имеющие общую грань или ребро с текущим узлом.
Родительские узлы из первого набора родительских узлов рассматривают в соответствии с разностью атрибутов между каждым из родительских узлов из первого набора родительских узлов и текущим родительским узлом. Таким образом, не нужно выбирать все родительские узлы из первого набора родительских узлов и текущего родительского узла. Как следствие, может быть определено улучшенное значение предсказания, в частности, если присутствуют значительные изменения в родительских узлах. Затем родительские узлы с большим отклонением от истинного значения атрибута текущего узла исключают в соответствии с упомянутой разностью для предсказания предсказанного значения.
Таким образом, предсказанное значение атрибута текущего узла оказывается ближе к исходному или истинному значению атрибута текущего узла, что уменьшает остаток. Следовательно, в битовый поток будут включены меньшие остатки, что повышает эффективность кодирования атрибута.
Предпочтительно определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение максимальной разности между каждым из родительских узлов в первом наборе родительских узлов и текущим родительским узлом для количественной оценки однородности атрибутов по всем узлам;
предоставление первого порогового значения и,
если максимальная разность меньше первого порогового значения (т.е. если значения атрибутов достаточно однородны между всеми узлами), выбирают все родительские узлы из первого набора родительских узлов.
Таким образом, если максимальная разность между каждым из родительских узлов в первом наборе узлов и текущим узлом меньше заданного первого порогового значения, соответствующие родительские узлы принадлежат однородной области в облаке точек, и, таким образом, все они могут быть выбраны, чтобы быть во втором наборе и использоваться для предсказания предсказанного значения атрибута текущего узла. Таким образом, в однородной области облака точек все родительские узлы, имеющие общую грань или ребро с текущим узлом, а также текущий родительский узел, используются для предсказания предсказанного значения.
Предпочтительно определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение разности между атрибутами каждого из родительских узлов в первом наборе родительских узлов и текущего родительского узла для количественной оценки неоднородности значений атрибутов во всех узлах;
предоставление второго порогового значения и
выбор родительских узлов из первого набора родительских узлов, если соответствующая разность меньше второго порогового значения.
Таким образом, для каждого узла i в первом наборе родительских узлов определяют разность deltaAttri и сравнивают ее со вторым пороговым значением. Если разность для конкретного узла i меньше второго порогового значения, этот узел выбирают для включения во второй набор и рассматривают для предсказания предсказанного значения атрибута текущего узла. Следовательно, выбирают только те узлы, которые отличаются не слишком сильно, т.е. не больше, чем на заданное второе пороговое значение. Следовательно, в частности, в неоднородной области атрибутов в облаке точек родительские узлы, имеющие значительно отличающиеся атрибуты, исключают при определении предсказанного значения атрибутов текущего узла. Таким образом, отклонение между предсказанным значением и истинным значением атрибута текущего узла уменьшается, что обеспечивает более точное предсказанное значение и тем самым уменьшает остатки, которые должны кодироваться в битовом потоке.
Предпочтительно первое пороговое значение является фиксированным и известно кодеру и декодеру. Альтернативно или дополнительно второе пороговое значение является фиксированным. Таким образом, первое пороговое значение и/или второе пороговое значение могут быть реализованы в кодере или декодере, и их не нужно кодировать в битовый поток.
Предпочтительно первое пороговое значение определяют в соответствии с распределением атрибутов полного облака точек. Таким образом, для более однородного распределения атрибутов внутри облака точек первое пороговое значение может быть ниже. Альтернативно или дополнительно второе пороговое значение определяют в соответствии с распределением атрибутов в полном облаке точек. При этом первое пороговое значение и/или второе пороговое значение могут быть
включены в битовый поток для каждого облака точек, например, в метаданные. Таким образом, первое пороговое значение и/или второе пороговое значение являются фиксированными для полного облака точек, но могут различаться между двумя последовательными облаками точек.
Предпочтительно первое пороговое значение и/или второе пороговое значение определяют в соответствии с первым набором родительских узлов. Таким образом, индивидуальное первое пороговое значение и/или индивидуальное второе пороговое значение может быть определено для каждого текущего узла и, таким образом, адаптировано к конкретному изменению атрибутов вокруг текущего узла. При этом первое пороговое значение и/или второе пороговое значение может быть включено в битовый поток, передаваемый от кодера к декодеру для декодирования.
Предпочтительно, первое пороговое значение и/или второе пороговое значение определены в соответствии с первым набором родительских узлов и наследуются всеми подузлами до тех пор, пока для поддерева первого набора родительских узлов не будет присвоено другое значение для первого порогового значения или второго порогового значения. Таким образом, индивидуальное первое пороговое значение и/или индивидуальное второе пороговое значение может быть определено для каждого текущего узла и, таким образом, адаптировано к конкретному изменению атрибутов вокруг текущего узла. При этом первое пороговое значение и/или второе пороговое значение могут быть включены в битовый поток, передаваемый от кодера к декодеру для декодирования, на вершине поддерева, к которому они относятся, или могут наследоваться (и, следовательно, не включаться в битовый поток) для узлов, которые не находятся на вершине таких поддеревьев.
Предпочтительно второе пороговое значение представляет собой процент от первого порогового значения. Таким образом, если первое пороговое значение увеличивается, второе пороговое значение, являющееся процентом от первого порогового значения, соответственно увеличивается. При этом процент может быть фиксированным и определяемым в соответствии с распределением атрибутов в полном облаке точек или в соответствии с распределением атрибутов в первом наборе родительских узлов. Таким образом, либо первое пороговое значение, либо второе пороговое значение включают в битовый поток, передаваемый от кодера к декодеру, вместе с соответствующим процентом.
Предпочтительно первое пороговое значение и/или второе пороговое значение определяют в соответствии с соотношением между атрибутами текущего узла и атрибутами родительских узлов из первого набора родительских узлов. При этом одно из среднего значения, максимального значения и минимального значения атрибутов родительских узлов из первого набора родительских узлов определяют и учитывают для упомянутого соотношения. В качестве альтернативы соотношение между атрибутами текущего узла и каждым из атрибутов родительских узлов первого набора родительских узлов используют для определения первого порогового значения и/или второго порогового значения.
Предпочтительно первое пороговое значение и/или второе пороговое значение включают в битовый поток.
Предпочтительно, первое пороговое значение и/или второе пороговое значение включают в битовый поток только на вершине по меньшей мере одного поддерева структуры на основе вокселей, для которого должны использоваться первое и/или второе пороговое значение, и наследуются всеми узлами в поддереве, для которых нет явной сигнализации другого первого или второго порогового значения. Таким образом, первое пороговое значение и второе пороговое значение включают в битовый поток только в случае их обновления, и они остаются действительными для поддерева до тех пор, пока не будут обновлены. Если первое пороговое значение и/или второе пороговое значение обновляют посредством сигнализации первого или второго порогового значения в битовом потоке, новое поддерево начинается с обновленных пороговых значений.
Предпочтительно первое пороговое значение и второе пороговое значение равны. Альтернативно, первое пороговое значение и второе пороговое значение различны.
В аспекте настоящего изобретения предлагается способ декодирования битового потока сжатых данных облака точек для создания атрибутов точек в реконструированном облаке точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, путем рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом способ включает этапы:
декодирование остатка атрибутов текущего узла облака точек из битового потока;
определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом, при этом текущий родительский узел является родительским узлом текущего узла;
выбор второго набора из первого набора родительских узлов в соответствии с упомянутой разностью, при этом второй набор родительских узлов предпочтительно включает текущий родительский узел;
определение предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов;
определение предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла; и
определение атрибутов текущего узла на основе упомянутого остатка и предсказанного коэффициента преобразования путем применения обратного RAHT.
Предпочтительно способ декодирования можно получить согласно признакам, описанным выше в отношении способа кодирования. Эти признаки можно свободно сочетать со способом декодирования.
В аспекте настоящего изобретения предлагается кодер для кодирования облака точек для создания битового потока сжатых данных облака точек, причем геометрия облака точек представлена структурой на основе октодерева с множеством узлов, имеющих отношения родитель-потомок, путем рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе октодерева, при этом кодер содержит:
процессор и
запоминающее устройство, в котором хранятся инструкции, исполняемые процессором, при исполнении которых обеспечивается выполнение процессором способа в соответствии с описанными выше способами кодирования и декодирования.
В аспекте настоящего изобретения предлагается декодер для декодирования битового потока сжатых данных облака точек для создания реконструированного облака точек, причем геометрия облака точек представлена структурой на основе октодерева с множеством узлов, имеющих отношения родитель-потомок, путем
рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе октодерева, при этом декодер содержит: процессор и
запоминающее устройство, в котором хранятся инструкции, исполняемые процессором, при исполнении которых обеспечивается выполнение процессором описанного выше способа декодирования.
В одном из аспектов настоящего изобретения предлагается машиночитаемый носитель для хранения данных, хранящий исполняемые процессором инструкции, которые при их исполнении процессором обеспечивают выполнение процессором описанного выше способа кодирования и/или декодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Теперь в качестве примера будет сделана ссылка на прилагаемые чертежи, на которых показаны примеры осуществления настоящего изобретения:
на фиг. 1 показан вариант осуществления способа кодирования согласно настоящему изобретению,
на фиг. 2 показан вариант осуществления способа декодирования согласно настоящему изобретению,
на фиг. 3 показан пример этапов кодирования согласно настоящему изобретению,
на фиг. 4 показан пример этапов декодирования согласно настоящему изобретению,
на фиг. 5 показана иллюстрация определения предсказанного значения согласно настоящему изобретению,
на фиг. 6 показан подробный вариант осуществления настоящего изобретения,
на фиг. 7 показан подробный вариант осуществления настоящего изобретения,
на фиг. 8 показано схематическое изображение устройства кодера, и
на фиг. 9 показано схематичное изображение устройства декодера.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В настоящей заявке описаны способы кодирования и декодирования атрибутов точек в облаке точек, а также кодеры и декодеры для кодирования и декодирования атрибутов точек в облаке точек.
Настоящее изобретение относится к способу кодирования атрибутов точек облака точек для создания битового потока сжатых данных облака точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, посредством рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом способ включает этапы:
определение истинного коэффициента преобразования путем применения адаптивного к области иерархического преобразования (RAHT) к атрибутам текущего узла;
определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом, при этом текущий родительский узел является родительским узлом текущего узла;
выбор второго набора из первого набора родительских узлов в соответствии с упомянутой разностью, при этом второй набор родительских узлов предпочтительно включает текущий родительский узел;
определение предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов;
определение предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла;
определение остатка на основе истинного коэффициента преобразования и предсказанного коэффициента преобразования; и
кодирование остатка для получения кодированных данных атрибутов облака точек для битового потока.
Другие аспекты и признаки настоящего изобретения будут понятны специалистам в данной области техники из прочтения следующего описания примеров в сочетании с сопровождающими чертежами.
Иногда в приведенном ниже описании термины «узел» и «подобьем» могут использоваться взаимозаменяемо. Следует понимать, что узел связан с подобъемом. Узел это определенная точка дерева, которая может быть внутренним узлом или листовым узлом. Подобьем это ограниченное физическое пространство, которое представляет узел. Термин «объем» может использоваться для обозначения наибольшего ограниченного пространства, определенного так, чтобы оно содержало облако точек. Объем рекурсивно делится на подобъемы для построения древовидной структуры взаимосвязанных узлов для кодирования данных облака точек. Кроме того, термин «родительский узел» относится к узлу на следующем более высоком уровне дерева. В то время как узел может находиться на уровне или глубине D в дереве, родительский узел является узлом на уровне или глубине D-1.
Облако точек - это набор точек в трехмерной системе координат. Точки часто предназначены для представления внешней поверхности одного или более объектов. Каждая точка имеет местоположение (положение) в трехмерной системе координат. Положение может быть представлено тремя координатами (X, Y, Z), которые могут быть декартовой или любой другой системой координат. Точки имеют также связанные с ними атрибуты, такие как цвет, который в некоторых случаях также может быть трехкомпонентным значением, например R, G, В или Y, Сb, С2. Другие связанные атрибуты могут включать прозрачность, отражательную способность, вектор нормали и т.д., в зависимости от требуемого приложения для данных облака точек.
Облака точек могут быть статическими или динамическими. Например, подробное сканирование или картографирование объекта или топография могут предоставлять данные статического облака точек. Сканирование окружающей среды на основе LiDAR для целей машинного зрения может быть динамическим в том смысле, что облако точек (по меньшей мере потенциально) меняется со временем, например, при каждом последующем сканировании объема. Таким образом, динамическое облако точек представляет собой упорядоченную во времени последовательность облаков точек.
Данные облака точек могут использоваться в ряде приложений, включая сохранение (сканирование исторических или культурных объектов), картографирование, машинное зрение (например, автономные или полуавтономные автомобили) и системы виртуальной реальности в качестве некоторых примеров.
Данные динамического облака точек для таких приложений, как машинное зрение, могут сильно отличаться от данных статического облака точек, например, для целей сохранения. Автомобильное зрение, например, обычно включает относительно низкое разрешение, бесцветные и высокодинамичные облака точек, полученные с помощью датчиков LiDAR (или аналогичных) с высокой частотой захвата. Такие облака точек предназначены не для использования или просмотра человеком, а скорее, для машинного обнаружения/классификации объектов в процессе принятия решений. Например, типичные кадры LiDAR содержат порядка десятков тысяч точек, тогда как для высококачественных приложений виртуальной реальности требуется несколько миллионов точек. Можно ожидать, что со временем возникнет спрос на данные с более высоким разрешением по мере увеличения скорости вычислений и поиска новых приложений.
Хотя данные облака точек полезны, отсутствие эффективного и действенного сжатия атрибутов и геометрии такого облака точек, т.е. процессов кодирования и декодирования, может препятствовать их использованию и распространению.
Одним из наиболее распространенных механизмов кодирования данных облака точек является использование древовидных структур. В древовидной структуре ограничивающий трехмерный объем для облака точек рекурсивно делится на подобъемы. Узлы дерева соответствуют подобъемам. Решение о том, следует ли далее делить подобъем, может быть основано на разрешающей способности дерева и/или наличии каких-либо точек, содержащихся в подобъеме. Листовой узел может иметь флаг занятости, который указывает, содержит ли связанный с ним подобъем точку или нет.Флаги разделения могут сигнализировать о том, есть ли у узла дочерние узлы (т.е. был ли текущий объем далее разделен на подобъемы). В некоторых случаях эти флаги могут энтропийно кодироваться, а в некоторых случаях может использоваться кодирование с предсказанием. Обычно используемой древовидной структурой является октодерево. В этой структуре все объемы/подобъемы являются кубами, и каждое разделение подобъема приводит к восьми дополнительным подобъемам/подкубам.
Базовый процесс создания октодерева для кодирования облака точек может включать следующие этапы:
Начать с ограничивающего объема (куба), содержащего облако точек в системе координат:
1. Разделить объем на 8 подобъемом (восемь подкубов);
2. Для каждого подобъема отметить подобъем числом 0, если подобъем пуст, или числом 1, если в нем есть хотя бы одна точка;
3. Для всех подобъемов, отмеченных числом 1, повторить этап 1, чтобы разделить эти подобъемы, пока не будет достигнута максимальная глубина разделения; и
4. Для всех листовых подобъемом (подкубов) максимальной глубины отметить листовой куб числом 1, если он непустой, и числом 0 в противном случае.
Дерево может быть пройдено в заранее заданном порядке (сначала в ширину или в глубину и в соответствии с шаблоном/порядком сканирования в каждом разделенном подобъеме) для получения последовательности битов, представляющих шаблон занятости каждого узла.
Как упоминалось выше, точки в облаке точек могут включать атрибуты. Эти атрибуты кодируют независимо от кодирования геометрии облака точек. Таким образом, каждый занятый узел, т.е. узел, включающий по меньшей мере одну точку облака точек, связан с одним или более атрибутами для дальнейшего определения свойств облака точек.
Настоящее изобретение обеспечивает способ кодирования атрибутов точек облака точек. Способ показан на фиг. 1.
Предлагается способ кодирования атрибутов точек облака точек для создания битового потока сжатых данных облака точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, посредством рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом способ включает этапы:
определение S01 истинного коэффициента преобразования путем применения адаптивного к области иерархического преобразования (RAHT) к атрибутам текущего узла;
определение S02 разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом, при этом текущий родительский узел является родительским узлом текущего узла;
выбор S03 второго набора из первого набора родительских узлов в соответствии с упомянутой разностью, при этом второй набор родительских узлов предпочтительно включает текущий родительский узел;
определение S04 предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов;
определение S05 предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла;
определение S06 остатка на основе истинного коэффициента преобразования и предсказанного коэффициента преобразования; и
кодирование S07 остатка для получения кодированных данных атрибутов облака точек для битового потока.
На фиг. 3 показан способ кодирования атрибутов текущего узла. В примере на фиг. З определенное количество занятых узлов 10 показано на уровне D структуры 12 октодерева. Незаштрихованные кубы относятся к незанятым узлам. При этом, например, атрибуты текущего узла 14 должны кодироваться в битовый поток на данном этапе. При этом на фиг. За занятые узлы представлены истинными атрибутами. Эти истинные атрибуты на фиг. За преобразуют с помощью адаптивного к области иерархического преобразования (RAHT) для получения истинного коэффициента преобразования в соответствии с этапом S01. Преобразование RAHT хорошо известно, например, из US 10,223,810 В2, который полностью включен в настоящее описание посредством ссылки. При этом на фиг. За другие родительские узлы могут содержать дополнительные занятые узлы на уровне D, которые не отмечены для ясности.
Кроме того, в соответствии с фиг. ЗЬ рассматривают соседние родительские узлы 16 текущего родительского узла 18, при этом текущий родительский узел 18 содержит текущий узел 14, подлежащий кодированию. Таким образом, на фиг. ЗЬ заштрихованы только те соседние родительские узлы 16, которые не являются пустыми, т.е. содержат по меньшей мере одну точку облака точек. Как правило, имеется шесть соседних родительских узлов, имеющих общую грань с текущим родительским узлом 18, и двенадцать соседних родительских узлов, имеющих общее ребро с текущим родительским узлом 18. Один из этих узлов, более одного из этих узлов или все эти узлы могут быть пустым или могут включать точку облака точек и, следовательно, могут не быть пустыми. При этом текущий родительский узел 18 и соседние родительские узлы 16 находятся на глубине D-1 в древовидной структуре.
В соответствии с этапом S02 определяют разность между атрибутами текущего родительского узла 18 и занятых соседних родительских узлов. Однако разность между атрибутами текущего родительского узла 18 и соседних родительских узлов 16 не вычисляют для каждого текущего и занятого соседнего родительского узла 16. Первый набор родительских узлов включает только те соседние родительские узлы 16, которые имеют общую грань или ребро с текущим узлом 14 на глубине D в древовидной структуре. Таким образом, первый набор родительских узлов может содержать максимум семь родительских узлов, если все эти родительские узлы заняты точкой облака точек, включая сам текущий родительский узел 18. В примере на фиг. 3 для текущего узла 14 первый набор содержит три соседних родительских узла 20 (здесь предполагается, что за текущим родительским узлом 18 соседний родительский узел 16 пуст).
Из определенных разностей между атрибутами текущего родительского узла 18 и родительских узлов 20 первого набора выбирают второй набор в соответствии с определяемой разностью. Кроме того, текущий родительский узел 18 также включен во второй набор. В примере на фиг. 3 второй набор может содержать от 1 до 4 узлов в зависимости от разностей атрибутов.
В соответствии с этапом S04 предсказанное значение атрибутов текущего узла 14 определяют в соответствии с атрибутами второго набора родительских узлов. На фиг. 4 показан вариант осуществления этапа определения предсказанного значения в 2D. В примере 2D второй набор родительских узлов может содержать только четыре родительских узла, включая текущий родительский узел. Для определения предсказанного значения атрибутов текущего узла 14 в примере на фиг. 4 учитывают все соседние родительские узлы 22, имеющие общее ребро или грань с текущим узлом 14, включая текущий родительский узел 24 текущего узла 14. Из атрибутов ак родительских узлов 22, 24 второго набора осуществляют взвешенное предсказание для предсказанного значения текущего узла 14 в соответствии с
где dk обозначает расстояние между центром текущего узла 14 и центром соответствующего родительского узла 22, 24. Как упоминалось выше, на фиг. 4 рассматривают все родительские узлы второго набора. Однако количество рассматриваемых родительских узлов может быть меньше.
Вернемся к фиг. 3. На фиг. 3с указано предсказанное значение текущего узла 14. При этом описанные выше этапы повторяют для других занятых узлов 10 в текущем родительском узле 18. Таким образом, как показано фиг. 3с, для каждого занятого узла 10 на глубине D в текущем родительском узле 18 определяют предсказанное значение. Каждое предсказанное значение преобразуют путем применения RAHT, чтобы получить предсказанные коэффициенты преобразования для каждого из занятых узлов 10 в пределах текущего родительского узла 18.
На основе предсказанного коэффициента преобразования и истинного коэффициента преобразования определяют остатки для каждого из узлов, включая текущий узел 14, в соответствии с этапом S06. Остатки энтропийно кодируют для получения кодированных данных атрибутов для битового потока в соответствии с этапом S07.
Таким образом, в соответствии с разностью между текущим родительским узлом 18 и соседними родительскими узлами 20, имеющими общую грань или ребро с текущим узлом 14, во втором наборе выбирают только те соседние родительские узлы 20, которые имеют достаточно малое отклонение друг от друга. Таким образом, остаток для каждого из узлов уменьшается, что повышает эффективность кодирования атрибутов в битовый поток.
Например, если на фиг. 3b соседние родительские узлы 25 принадлежат области облака точек с другим цветом, отличающимся от цвета текущего узла 14, включение этих соседних родительских узлов на этапе определения предсказанного значения приведет к сбою предсказания и к увеличению остатков, подлежащих кодированию. Таким образом, в этом примере соседние родительские узлы 25 из первого набора родительских узлов не будут выбраны для включения во второй набор, и поэтому атрибуты этих родительских узлов 25 не будут учитываться во взвешенном предсказании, как описано выше.
Настоящее изобретение обеспечивает способ декодирования атрибутов точек облака точек. Способ показан на фиг. 2.
Предлагается способ декодирования битового потока сжатых данных облака точек для создания атрибутов точек в реконструированном облаке точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, путем рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом способ включает этапы:
декодирование S10 остатка атрибутов текущего узла облака точек из битового потока;
определение S11 разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом, при этом текущий родительский узел является родительским узлом текущего узла;
выбор S12 второго набора из первого набора родительских узлов в соответствии с упомянутой разностью, при этом второй набор родительских узлов предпочтительно включает текущий родительский узел;
определение S13 предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов;
определение S14 предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла; и
определение S15 атрибутов текущего узла на основе упомянутого остатка и предсказанного коэффициента преобразования путем применения обратного RAHT.
Этапы способа декодирования битового потока для получения атрибутов текущей точки в облаке точек также показаны на фиг. 4, при этом остатки, представленные на фиг. 4 с1, предоставляются декодированным битовым потоком. Эти остатки объединяют с предсказанными значениями, при этом предсказание, показанное на фиг. 4b и 4 с, идентично этапам соответствующего кодирования, описанным выше. При этом следует отметить, что декодирование производится от корня к листьям. Таким образом, атрибуты родительского узла на глубине D-1, имеющего общую грань или ребро с текущим узлом 14, уже известны.
Из предсказанного значения, преобразованного с помощью RAHT, и остатков, полученных путем декодирования битового потока, получают атрибуты текущего узла 14 с помощью обратного RAHT.
На фиг. 6 показан подробный вариант осуществления изобретения. При этом определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение S21 максимальной разности между каждым из родительских узлов в первом наборе родительских узлов и текущим родительским узлом;
предоставление S22 первого порогового значения и,
если максимальная разность меньше первого порогового значения, выбирают S23 все родительские узлы из первого набора родительских узлов.
Таким образом, путем определения максимальной разности между каждым из родительских узлов в первом наборе родительских узлов и текущим родительским узлом определяют однородность рассматриваемого объема в облаке точек. Таким образом, если разность меньше первого порогового значения, атрибуты достаточно однородны, и их можно учитывать для предсказания предсказанного значения атрибутов текущего узла 14.
На фиг. 7 показан подробный вариант осуществления изобретения. При этом определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение S31 разности между атрибутами каждого из родительских узлов в первом наборе родительских узлов и текущего родительского узла;
предоставление S32 второго порогового значения и
выбор S33 родительских узлов из первого набора родительских узлов, если соответствующая разность меньше второго порогового значения.
В частности, если однородность атрибутов в рассматриваемом объеме облака точек, т.е. максимальная разность между каждым текущим узлом в первом наборе родительских узлов, выше первого порогового значения, определяют разность для атрибутов каждого из родительских узлов i в первом наборе родительских узлов и атрибута текущего узла, где При этом выбирают те родительские узлы в первом наборе родительских узлов, для которых меньше второго порогового значения.
Конечно, определение разности между каждым из родительских узлов первого набора родительских узлов и текущим родительским узлом и сравнение этой разности со вторым пороговым значением для выбора родительских узлов первого набора родительских узлов может использоваться независимо от определения однородности атрибутов в рассматриваемом объеме, как описано выше.
В одном варианте осуществления изобретения первое пороговое значение является фиксированным. Таким образом, фиксированное первое пороговое значение известно кодеру и декодеру, и его не нужно включать в передаваемый битовый поток.
В одном варианте осуществления изобретения второе пороговое значение является фиксированным. Таким образом, фиксированное второе пороговое значение известно кодеру и декодеру, и его не нужно включать в передаваемый битовый поток.
В одном варианте осуществления изобретения первое пороговое значение включают в битовый поток, передаваемый от кодера к декодеру.
В одном варианте осуществления изобретения второе пороговое значение включают в битовый поток, передаваемый от кодера к декодеру.
В одном варианте осуществления изобретения первое пороговое значение определяют в соответствии с распределением атрибутов в полном облаке точек. Таким образом, для неоднородного распределения атрибута первое пороговое значение можно соответствующим образом адаптировать. При этом определенное первое пороговое значение необходимо передавать только один раз для каждого облака точек, кодированного в битовый поток, например, в метаданных.
В одном варианте осуществления изобретения второе пороговое значение определяют в соответствии с распределением атрибутов в полном облаке точек. Таким образом, для неоднородного распределения атрибута второе пороговое значение можно соответствующим образом адаптировать. При этом определенное второе пороговое значение необходимо передавать только один раз для каждого облака точек, кодированного в битовый поток, например, в метаданных.
В одном варианте осуществления изобретения первое пороговое значение определяют в соответствии с первым набором родительских узлов. Таким образом, первое пороговое значение может индивидуально адаптировать в соответствии с распределением атрибутов среди родительских узлов в первом наборе родительских узлов. В этом случае индивидуальное пороговое значение может предоставляться для этапа предсказания каждого узла в отдельности и соответствующим образом адаптироваться для обеспечения достаточных результатов. Альтернативно, первое пороговое значение может быть определено в соответствии со средним значением атрибутов в первом наборе по сравнению с атрибутом текущего родительского узла. Альтернативно, первое пороговое значение может быть определено в соответствии с минимальным значением или максимальным значением атрибутов в первом наборе по сравнению с атрибутом текущего родительского узла. При этом первое пороговое значение должно быть включено в битовый поток, передаваемый от кодера к декодеру.
В одном варианте осуществления изобретения второе пороговое значение определяют в соответствии с первым набором родительских узлов. Таким образом, второе пороговое значение можно индивидуально адаптировать в соответствии с распределением атрибутов среди родительских узлов в первом наборе родительских узлов. В этом случае индивидуальное пороговое значение может предоставляться для этапа предсказания каждого узла в отдельности и соответствующим образом адаптироваться для обеспечения достаточных результатов. Альтернативно, второе пороговое значение может быть определено в соответствии со средним значением атрибутов в первом наборе по сравнению с атрибутом текущего родительского узла. Альтернативно, второе пороговое значение может быть определено в соответствии с минимальным значением или максимальным значением атрибутов в первом наборе по сравнению с атрибутом текущего родительского узла. При этом второе пороговое значение должно быть включено в битовый поток, передаваемый от кодера к декодеру.
В одном варианте осуществления изобретения первое пороговое значение и/или второе пороговое значение определяют в соответствии с первым набором родительских узлов, и они наследуются всеми подузлами до тех пор, пока для поддерева первого набора родительских узлов не будет присвоено другое первое пороговое значение или второе пороговое значение. Таким образом, индивидуальное первое пороговое значение и/или индивидуальное второе пороговое значение может быть определено для текущего узла и, таким образом, адаптировано к конкретному изменению атрибутов вокруг текущего узла. При этом первое пороговое значение и/или второе пороговое значение могут быть включены в битовый поток для передачи от кодера к декодеру для декодирования на вершине поддерева, к которому они относятся, или могут наследоваться (и, следовательно, не включаться в битовый поток) для узлов, которые не находятся на вершине таких поддеревьев.
В одном варианте осуществления изобретения второе пороговое значение представляет собой процент от первого порогового значения. Таким образом, если первое пороговое значение увеличивается, второе пороговое значение, являющееся процентом от первого порогового значения, соответственно увеличивается. При этом процент может быть фиксированным и определяемым в соответствии с распределением атрибутов в полном облаке точек или в соответствии с распределением атрибутов в первом наборе родительских узлов. При этом первое пороговое значение и процент включают в битовый поток. Если либо первое пороговое значение, либо процент являются фиксированными, эту информацию не нужно передавать, и, таким образом, должны быть включены только остальные данные.
В одном варианте осуществления изобретения первое пороговое значение и второе пороговое значение установлены равными. В другом варианте осуществления первое пороговое значение и второе пороговое значение различны.
В одном варианте осуществления изобретения первое пороговое значение определяют в соответствии с соотношением между атрибутами текущего узла и атрибутами родительских узлов первого набора родительских узлов. При этом упомянутое соотношение может быть определено в соответствии со средним, максимальным или минимальным значением атрибутов в первом наборе родительских узлов. Альтернативно, первое пороговое значение может быть определено индивидуально для каждого из родительских узлов в первом наборе родительских узлов как соотношение атрибутов текущего родительского узла и соответствующего родительского узла из первого набора родительских узлов.
В одном варианте осуществления изобретения второе пороговое значение определяют в соответствии с соотношением между атрибутами текущего узла и атрибутами родительских узлов из первого набора родительских узлов. При этом упомянутое соотношение может быть определено в соответствии со средним, максимальным или минимальным значением атрибутов в первом наборе родительских узлов. Альтернативно, второе пороговое значение может быть определено индивидуально для каждого из родительских узлов в первом наборе родительских узлов как соотношение атрибутов текущего родительского узла и соответствующего родительского узла из первого набора родительских узлов.
Различные варианты осуществления изобретения можно свободно комбинировать. В частности, различные определения первого порогового значения и второго порогового значения могут быть свободно выбраны из описанных выше вариантов осуществления изобретения и адаптированы к требованиям конкретного применения.
Таким образом, в соответствии с настоящим изобретением распределение/отклонение атрибута учитывают при предсказании предсказываемых значений для текущего узла, подлежащего кодированию. Таким образом, учитывают не всю возможную информацию. Вместо этого для определения значения предсказания рассматривают только ту информацию, которая достаточно подобна атрибутам текущего узла, подлежащего кодированию. Таким образом, уменьшаются ошибки предсказания, хорошо учитываются неоднородности в распределении атрибутов внутри облака точек и уменьшаются ошибки предсказания. Как следствие, из-за уменьшенных ошибок предсказания также уменьшаются остатки, и повышается эффективность кодирования этих остатков в битовый поток облака точек.
Таким образом, может быть достигнуто значительное сокращение данных по меньшей мере на один процент по сравнению с известными способами кодирования атрибутов облака точек.
Результаты в условиях теста С1
Результаты в условиях теста С2
Моделирование, представленное в таблицах выше, было выполнено на последней платформе TMC13v10 с фиксированными значениями обоих пороговых значений, т.е. первого порогового значения и второго порогового значения, для всех последовательностей.
Теперь обратимся к фиг. 8, на которой показана упрощенная структурная схема примера осуществления кодера 1100. Кодер 1100 содержит процессор 1102 и запоминающее устройство 1104. Запоминающее устройство 1104 может хранить компьютерную программу или приложение, содержащее инструкции, при исполнении которых обеспечивается выполнение процессором 1102 операций, например, описанных здесь. Например, инструкции могут кодировать и выводить битовые потоки, кодированные в соответствии с описанными здесь способами. Понятно, что инструкции могут быть сохранены на машиночитаемом носителе для хранения данных, таком как компакт-диск, устройство флэш-памяти, оперативная память, жесткий диск и т.д. Когда инструкции исполняются, процессор 1102 выполняет операции и функции, указанные в инструкциях, для функционирования в качестве процессора специального назначения, осуществляющего описанный(е) процесс(ы). В некоторых примерах такой процессор может упоминаться как «процессорная схема» или «процессорные схемы».
Теперь делается ссылка на фиг. 9, на которой показана упрощенная структурная схема примера осуществления декодера 1200. Декодер 1200 содержит процессор 1202 и запоминающее устройство 1204. Запоминающее устройство 1204 может включать компьютерную программу или приложение, содержащее инструкции, при исполнении которых обеспечивается выполнение процессором 1202 операций, например, описанных здесь. Понятно, что инструкции могут быть сохранены на машиночитаемом носителе, таком как компакт-диск, устройство флэш-памяти, оперативная память, жесткий диск и т.д. Когда инструкции исполняются, процессор 1202 выполняет операции и функции, указанные в инструкциях, для функционирования в качестве процессора специального назначения, осуществляющего описанный(е) процесс(ы) и способы. Такой процессор может упоминаться как «процессорная схема» или «процессорные схемы».
Следует понимать, что декодер и/или кодер в соответствии с настоящей заявкой могут быть реализованы в ряде вычислительных устройств, включая, не ограничиваясь этим, серверы, надлежащим образом запрограммированные компьютеры общего назначения, системы машинного зрения и мобильные устройства. Декодер или кодер могут быть реализованы посредством программного обеспечения, содержащего инструкции для конфигурирования процессора или процессоров для выполнения описанных здесь функций. Инструкции программного обеспечения могут храниться на любом подходящем машиночитаемом носителе для хранения данных, включая компакт-диски, RAM, ROM, флэш-память и т.д.
Понятно, что описанные здесь декодер и/или кодер, а также модуль, подпрограмма, процесс, поток или другой программный компонент, реализующий описанный способ/процесс для конфигурирования кодера или декодера, могут быть реализованы с использованием стандартных способов и языков компьютерного программирования. Настоящая заявка не ограничивается конкретными процессорами, компьютерными языками, соглашениями по компьютерному программированию, структурами данных и другими подобными деталями реализации. Специалистам в данной области техники будет понятно, что описанные процессы могут быть реализованы как часть исполняемого компьютером кода, хранящегося в энергозависимой или энергонезависимой памяти, как часть специализированной интегральной микросхемы (ASIC, application-specific integrated chip) и т.д.
Настоящая заявка также обеспечивает машиночитаемый сигнал, кодирующий данные, полученные посредством применения процесса кодирования в соответствии с настоящей заявкой.
Могут быть сделаны определенные адаптации и модификации описанных вариантов осуществления изобретения. Следовательно, представленные выше варианты осуществления изобретения являются иллюстративными и не ограничивают изобретение. В частности, варианты осуществления изобретения можно свободно комбинировать друг с другом.

Claims (55)

1. Способ кодирования атрибутов точек облака точек для создания битового потока сжатых данных облака точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, посредством рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом способ включает этапы:
определение истинного коэффициента преобразования путем применения адаптивного к области иерархического преобразования (RAHT) к атрибутам текущего узла;
определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом, при этом текущий родительский узел является родительским узлом текущего узла;
выбор второго набора из первого набора родительских узлов в соответствии с упомянутой разностью, при этом второй набор родительских узлов предпочтительно включает текущий родительский узел;
определение предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов;
определение предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла;
определение остатка на основе истинного коэффициента преобразования и предсказанного коэффициента преобразования; и
кодирование остатка для получения кодированных данных атрибутов облака точек для битового потока.
2. Способ по п. 1, отличающийся тем, что определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение максимальной разности между каждым из родительских узлов в первом наборе родительских узлов и текущим родительским узлом;
предоставление первого порогового значения и,
если максимальная разность меньше первого порогового значения, выбор всех родительских узлов из первого набора родительских узлов.
3. Способ по п. 1 или 2, отличающийся тем, что определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение разности между атрибутами каждого из родительских узлов в первом наборе родительских узлов и текущего родительского узла;
предоставление второго порогового значения и
выбор родительских узлов из первого набора родительских узлов, если соответствующая разность меньше второго порогового значения.
4. Способ по любому из пп. 1-3, отличающийся тем, что первое пороговое значение и/или второе пороговое значение являются фиксированными.
5. Способ по любому из пп. 1-4, отличающийся тем, что первое пороговое значение и/или второе пороговое значение определяют в соответствии с распределением атрибутов в полном облаке точек.
6. Способ по любому из пп. 1-5, отличающийся тем, что первое пороговое значение и/или второе пороговое значение определяют согласно первому набору родительских узлов.
7. Способ по любому из пп. 1-6, отличающийся тем, что второе пороговое значение представляет собой процент от первого порогового значения.
8. Способ по любому из пп. 1-7, отличающийся тем, что первое пороговое значение и второе пороговое значение равны или различны.
9. Способ по любому из пп. 1-8, отличающийся тем, что первое пороговое значение и/или второе пороговое значение определяют в соответствии с соотношением между атрибутами текущего узла и атрибутами родительских узлов из первого набора родительских узлов.
10. Способ по любому из пп. 1-8, отличающийся тем, что первое пороговое значение и/или второе пороговое значение включают в битовый поток.
11. Способ по п. 10, отличающийся тем, что первое пороговое значение и/или второе пороговое значение включают в битовый поток только на вершине по меньшей мере одного поддерева, для которого должны использоваться первое пороговое значение и/или второе пороговое значение, которые наследуются всеми узлами в поддереве, для которых нет явной сигнализации другого первого или второго порогового значения.
12. Кодер для кодирования атрибутов точек облака точек для создания битового потока сжатых данных облака точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, путем рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом кодер содержит:
процессор и
запоминающее устройство, в котором хранятся исполняемые процессором инструкции, при исполнении которых обеспечивается выполнение процессором способа по любому из пп. 1-11.
13. Машиночитаемый носитель для хранения данных, на котором хранятся исполняемые процессором инструкции, при исполнении которых процессором обеспечивается выполнение процессором способа по любому из пп. 1-11.
14. Способ декодирования битового потока сжатых данных облака точек для создания атрибутов точек в реконструированном облаке точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, путем рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом способ включает этапы:
декодирование остатка атрибутов текущего узла облака точек из битового потока;
определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов, имеющих общую грань или ребро с текущим узлом, при этом текущий родительский узел является родительским узлом текущего узла;
выбор второго набора из первого набора родительских узлов в соответствии с упомянутой разностью, при этом второй набор родительских узлов предпочтительно включает текущий родительский узел;
определение предсказанного значения для атрибутов текущего узла в соответствии с атрибутами второго набора родительских узлов;
определение предсказанного коэффициента преобразования путем применения RAHT к предсказанному значению атрибутов текущего узла; и
определение атрибутов текущего узла на основе упомянутого остатка и предсказанного коэффициента преобразования путем применения обратного RAHT.
15. Способ по п. 14, отличающийся тем, что определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение максимальной разности между каждым из родительских узлов в первом наборе родительских узлов и текущим родительским узлом;
предоставление первого порогового значения и,
если максимальная разность меньше первого порогового значения, выбор всех родительских узлов из первого набора родительских узлов.
16. Способ по п. 14 или 15, отличающийся тем, что определение разности между атрибутами текущего родительского узла и каждого из родительских узлов в первом наборе родительских узлов включает:
определение разности между атрибутами каждого из родительских узлов в первом наборе родительских узлов и текущего родительского узла;
предоставление второго порогового значения; и
выбор родительских узлов из первого набора родительских узлов, если соответствующая разность меньше второго порогового значения.
17. Способ по любому из пп. 14-16, отличающийся тем, что первое пороговое значение и/или второе пороговое значение являются фиксированными.
18. Способ по любому из пп. 14-17, отличающийся тем, что первое пороговое значение и/или второе пороговое значение определяют в соответствии с распределением атрибутов в полном облаке точек.
19. Способ по любому из пп. 14-18, отличающийся тем, что первое пороговое значение и/или второе пороговое значение определяют согласно первому набору родительских узлов.
20. Способ по любому из пп. 14-19, отличающийся тем, что второе пороговое значение представляет собой процент от первого порогового значения.
21. Способ по любому из пп. 14-20, отличающийся тем, что первое пороговое значение и второе пороговое значение равны или различны.
22. Способ по любому из пп. 14-21, отличающийся тем, что первое пороговое значение и/или второе пороговое значение определяют в соответствии с соотношением между атрибутами текущего узла и атрибутами родительских узлов из первого набора родительских узлов.
23. Способ по любому из пп. 14-21, отличающийся тем, что первое пороговое значение и/или второе пороговое значение включены в битовый поток.
24. Способ по п. 23, отличающийся тем, что первое пороговое значение и/или второе пороговое значение включены в битовый поток только на вершине по меньшей мере одного поддерева, для которого должны использоваться первое пороговое значение и/или второе пороговое значение, которые наследуются всеми узлами в поддереве, для которых нет явной сигнализации другого первого или второго порогового значения.
25. Декодер для декодирования битового потока сжатых данных облака точек для создания атрибутов точек реконструированного облака точек, причем геометрия облака точек представлена структурой на основе вокселей с множеством узлов, имеющих отношения родитель-потомок, путем рекурсивного разделения объемного пространства, содержащего облако точек, на подобъемы, каждый из которых связан с узлом структуры на основе вокселей, при этом декодер содержит:
процессор и
запоминающее устройство, в котором хранятся исполняемые процессором инструкции, при исполнении которых обеспечивается выполнение процессором способа по любому из пп. 14-24.
26. Машиночитаемый носитель для хранения данных, на котором хранятся исполняемые процессором инструкции, при исполнении которых процессором обеспечивается выполнение процессором способа по любому из пп. 14-24.
RU2022134821A 2020-06-24 Способ кодирования и декодирования облака точек RU2800579C1 (ru)

Publications (1)

Publication Number Publication Date
RU2800579C1 true RU2800579C1 (ru) 2023-07-24

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
WO2017209961A1 (en) * 2016-05-28 2017-12-07 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
WO2019195922A1 (en) * 2018-04-09 2019-10-17 Blackberry Limited Methods and devices for predictive coding of point clouds
US20200021844A1 (en) * 2018-07-10 2020-01-16 Tencent America LLC Method and apparatus for video coding
WO2020072665A1 (en) * 2018-10-02 2020-04-09 Futurewei Technologies, Inc. Hierarchical tree attribute coding in point cloud coding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170347122A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
WO2017209961A1 (en) * 2016-05-28 2017-12-07 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
WO2019195922A1 (en) * 2018-04-09 2019-10-17 Blackberry Limited Methods and devices for predictive coding of point clouds
US20200021844A1 (en) * 2018-07-10 2020-01-16 Tencent America LLC Method and apparatus for video coding
WO2020072665A1 (en) * 2018-10-02 2020-04-09 Futurewei Technologies, Inc. Hierarchical tree attribute coding in point cloud coding

Similar Documents

Publication Publication Date Title
JP7425899B2 (ja) 点群の符号化及び復号方法
EP3991437B1 (en) Context determination for planar mode in octree-based point cloud coding
EP3991438B1 (en) Planar mode in octree-based point cloud coding
WO2021207947A1 (en) Method and apparatus for processing a point cloud
KR20200141065A (ko) 포인트 클라우드의 이진 엔트로피 코딩을 위한 방법 및 장치
KR20200109334A (ko) 포인트 클라우드를 엔트로피 코딩하는 방법 및 디바이스
CN112438049B (zh) 编码和解码方法、编码器、解码器以及存储介质
WO2021069949A1 (en) Methods and devices for tree switching in point cloud compression
WO2022073156A1 (en) Method of encoding and decoding, encoder, decoder and software
RU2800579C1 (ru) Способ кодирования и декодирования облака точек
EP4364416A1 (en) Method for encoding and decoding a point cloud
WO2023056677A1 (en) Method of encoding and decoding, encoder, decoder and software for encoding and decoding a point cloud
RU2812090C1 (ru) Способ кодирования и декодирования, кодер и декодер
WO2024082145A1 (en) Method for encoding and decoding a point cloud
CN118119975A (zh) 编码和解码方法、编码器、解码器及软件,以对点云编码和解码